반응형
스프링 부트 특징
- 임베디드 톰캣, 제티, 언더토우를 사용하여 독립 실행이 가능한 스프링 애플리케이션 개발
- 통합 스타터를 제공하여 메이븐/그레이들 구성 간소화
- 스타터를 통한 자동화된 스프링 설정 제공
- JAR를 사용하여 자바 옵션마으로도 배포 가능
- 애플리케이션의 모니터링과 관리를 위한 스프링 액츄에이터 제공
장점
- 각각의 의존성 버전을 올리는 것이 수월 (스프링 부트의 버전이 올라갈때마다 각 버전의 호환성에 대한 충분한 테스트를 거치고 릴리스 되기 때문)
- 간단한 어노테이션 설정이나 프로퍼티 설정으로 세부적인 설정 없이 원하는 기능을 빠르게 적용
- 별도의 외장 톰캣을 설치할 필요가 없으며 톰캣버전도 더욱 편리하게 관리
단점
- 설정을 개인화(커스터마이징)하면 버전을 올릴때 기존 스프링 프레임워크를 사용하는 것과 동일한 불편함
- 특정 설정을 개인화 혹은 설정 자체를 변경하고 싶다면 내부의 설정 코드를 살펴봐야함
그레이들
- 그레이들은 앤트로부터 기본적인 빌드 도구의 기능과 메이븐으로부터 의존 라이브러리 관리 기능을 차용함.
- 멀티 프로젝트 구성시에는 메이븐처럼 상속 구조가 아닌 설정 주입방식을 사용하여 유연하게 빌드 환경을 구성가능.
그레이들 래퍼
- 스프링 이니셜라이저로 프로젝트를 생성하면 해당 프로젝트에 그레이들이 자동으로 설치된다.
|-- gradle
| `-- wrapper
| |-- gradle-wrapper.jar
| `-- gradle-wrapper.properties
|-- gradlew
|-- gradlew.bat
gradlew: 리눅스 및 맥OS용 셸 스크립트
gradlew.bat: 윈도우용 배치 스크립트
gradle-wrapper.jar: Wrapper JAR
gradle-wrapper.properties: 그레이들 설정 정보 프로퍼티 파일(버전 정보)
- 그레이들 래퍼와 관련된 설정을 자동으로 해준다.
- 따라서 그레이들 래퍼를 설치하여 깃과 같은 VCS에서 관리하면 공동작업자들이 그레이들 설치 및 버전 관리를 편리하게 할수 있다.
그레이들 버전 변경
gradle-wrapper.properties에서 distributionUrl을 원하는 그레이드 버전으로 수정.
실행권한
chmod 755 gardlew
그레이들 버전 변경
./gradlew wrapper --gardle-version 4.8.1
그레이들 버전 확인
./gradlew -v
그레이들 멀티 프로젝트
- 일반적으로 공통 코드를 하나의 프로젝트로 분리하고 이를 재사용할때 유용하게 사용한다.
예) 웹, API, 배치
모두 공통된 도메인이나 유틸리티를 사용하는데, 관련 코드를 별도의 프로젝트로 분리하여 관리한다.
setting.gradle 설정
rootProject.name = 'demo'
demo-web 모듈 생성시
rootProject.name = 'demo'
include 'demo-web'
장점
- 다양한 프로젝트를 더 많이 구성할수 있고, 코드 재사용성이 높아지고 한 서비스에 관련된 여러 프로젝트를 하나의 통합 프로젝트처럼 관리할수 있다.
프로파일에 따른 환경 구성 분리
- yml에서 '---' 기준으로 설정값 나누기
application.yml
server:
port: 80
---
spring:
profiles: local
server:
port: 8080
---
spring:
profiles: dev
server:
port: 8081
---
spring:
profiles: prod
server:
port: 8082
- application-{profile}.yml
{profile}에 원하는 프로파일 값으로 파일을 추가한다.
애플리케이션 실행시 지정한 프로파일 값을 바탕으로 실행된다.
java -jar ... -Dspring.profiles.active=dev
application-dev.yml 파일을 읽어 들어 애플리케이션 환경이 구성됨
디폴트 프로퍼티를 정의하려면 application.yml 파일에 정의한다.
application-dev.yml > application.yml 우선순위가된다.
출저 - 처음배우는 스프링 부트 2
저자 - 김영재
반응형
'JAVA > Spring Boot' 카테고리의 다른 글
Swagger-UI url 변경 (0) | 2021.05.31 |
---|---|
스프링 부트 기본-#2 (0) | 2020.10.15 |
Spring MyBatis사용 및 설정 (1) | 2020.10.13 |
메이븐 멀티 프로젝트 구성 (0) | 2020.09.04 |
Spring Data JPA 사용 및 설정 (0) | 2020.08.22 |