🥕 profile
이번에 프로젝트를 진행하면서 사용한 개념이 있다.
바로 profile!
application.yml파일에 profile별로 구동 환경을 다르게 해서 개발을 진행했다.
application.yml
spring:
config:
activate:
on-profile: local
---
spring:
config:
activate:
on-profile: aws
local환경은 local로, 배포 환경은 aws라는 이름을 주었다.
즉, profile은 서버를 실행할 때 환경을 다르게 해주는 방법이다.
나는 local에서는 h2를, aws에서는 rds를 사용했다.
local에서 h2를 사용한 이유는 h2는 memory에 데이터를 저장하는 경량 DB이므로 휘발성이다. 즉 우리는 코드에만 집중할 수 있게 되기 때문이다.
spring boot에서 profile은 - - - 을 구분선으로 한다.
이 선을 기준으로 profile이 구분된다.
🥒 실제 예시
배포를 위한 aws환경에서는 rds를 사용했기 때문에 aws에서 설정한 url, username, password를 가져온다
url, username, password는 중요 정보이기 때문에 하드코딩은 금지다!
그럼 어디에 저장되어있나?
application-aws.yml
url: rds의 url
username: rds의 username
password: rds의 password
위와 같이 작성해주면 된다.
우리가 해당 파일을 application-aws.yml이라고 작성해주었기 때문에 application.yml에서 on-profile: aws를 보고 아 우리가 필요한 정보가 application-aws.yml에 있구나!를 자동으로 파악하여 application-aws.yml에서 필요한 정보를 가져온다고 한다.
그럼 배포 환경에서 어떻게 원하는 profile을 실행시킬까?
java -jar 우리 애플리케이션의 jar 파일 --spring.profiles.active=profile 이름(ex. dev, aws)
위의 명령어를 입력하면 된다.
그럼 jar파일이 구동될 때 저절로 작성한 profile의 실행 환경이 구동된다.
'springboot' 카테고리의 다른 글
[SETTING] intellij에서 JAVA JDK 버전 바꾸기 (0) | 2023.11.30 |
---|---|
[JPA] @NotNull vs nullable = false (0) | 2023.08.13 |
error-[errno: 150] "foreign key constraint is incorrectly formed" (0) | 2023.08.06 |
error-Failed to start bean 'documentationPluginsBootstrapper'; nested exception is java.lang.NullPointerException (0) | 2023.08.06 |