본문 바로가기

JAVA/Spring Boot

스프링 부트 기본-#1

반응형

스프링 부트 특징

  • 임베디드 톰캣, 제티, 언더토우를 사용하여 독립 실행이 가능한 스프링 애플리케이션 개발
  • 통합 스타터를 제공하여 메이븐/그레이들 구성 간소화
  • 스타터를 통한 자동화된 스프링 설정 제공
  • 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