하위 태스크 1

프로파일 개념 복습

dev/prod 프로파일 개념 정리

프로파일은 Spring Boot 설정을 분리해 관리하는 기능이다. 애플리케이션이 실행되는 환경에 따라 데이터베이스 연결 정보나 포트 등을 다르게 적용하기 위해 사용한다.

하위 태스크 3

application-dev/prod 생성

프로파일별 설정 파일 생성

공통/환경별 설정 분리

공통 설정과 환경별 설정을 구분

application-dev.properties, application-pord.properties 프로퍼티 파일을 생성하고 application.properties에 공통 설정만 남긴다.

application-dev.properties는 개발 환경에서의 설정이며 H2 데이터베이스를 사용한다.

  • server.port=<포트 번호>: 애플리케이션이 실행될 포트를 지정한다.
  • spring.jpa.hibernate.ddl-auto=none: Hibernate가 엔티티 클래스를 보고 자동으로 테이블을 생성 및 수정하는 기능을 끈다.
  • spring.sql.init.mode=always: 애플리케이션을 시작할 때 schema.sqldata.sql을 항상 실행한다.
  • spring.session.jdbc.initialize-schema=always: Spring Session을 사용하기 위한 테이블을 시작할 때마다 자동으로 생성한다.
server.port=8080
 
spring.datasource.url=jdbc:h2:mem:demo
spring.datasource.driver-class-name=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=
spring.jpa.hibernate.ddl-auto=none
spring.sql.init.mode=always
spring.session.jdbc.initialize-schema=always
spring.h2.console.enabled=true
 
logging.level.org.hibernate.SQL=DEBUG

application-prod.properties는 운영 환경에서의 설정이며 MySQL 데이터베이스를 사용한다.

server.port=8090
 
spring.datasource.url=jdbc:mysql://localhost:3306/demo
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.username=root
spring.datasource.password=0000
spring.jpa.hibernate.ddl-auto=none
spring.sql.init.mode=never
spring.session.jdbc.initialize-schema=always
 
logging.level.org.hibernate.SQL=INFO

application.properties는 모든 프로파일에서 사용하는 공통 설정을 담도록 수정한다.

  • spring.profiles.active: 기본 활성 프로파일을 dev로 설정한다.
spring.application.name=demo
spring.profiles.active=dev

하위 태스크 4

dev/prod 실행 테스트

—spring.profiles.active 로 각각 실행

dev 프로파일로 애플리케이션을 실행한다.

.\gradlew.bat bootRun --args='--spring.profiles.active=dev'

로그에서 dev 프로파일이 활성화된 것을 확인할 수 있다.

prod 프로파일로 애플리케이션을 실행한다.

.\gradlew.bat bootRun --args='--spring.profiles.active=prod'

로그에서 prod 프로파일이 활성화된 것을 확인할 수 있다.

하위 태스크 5

Gradle 빌드 수행

./gradlew build 로 JAR 생성

애플리케이션을 빌드한다.

./gradlew build

하위 태스크 6

JAR 실행 + 프로파일

java -jar … —spring.profiles.active=… 실행

java 명령어로 빌드된 JAR 파일을 실행한다.

java -jar build/libs/bbs-0.0.1-SNAPSHOT.jar --spring.profiles.active=prod

로그에서 prod 프로파일이 활성화된 것을 확인할 수 있다.