티스토리 뷰
🥕 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' 카테고리의 다른 글
[JPA] ddl-auto 옵션 (1) | 2024.11.18 |
---|---|
[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 |
- Total
- Today
- Yesterday
- 일급컬렉션
- Java
- 유효성 검사
- lowerBound
- N+1문제
- checkedException
- JPA
- 메인메소드
- 동등성
- StreamAPI
- ddl-auto
- Thymeleaf
- NPE
- 이진탐색
- 생성자
- 티스토리챌린지
- Optional
- 오블완
- @ConfigurationProperties
- @Value
- @Spring
- uncheckedException
- id생성전략
- 자바
- springboot
- null
- upperBound
- @NoArgsConstructor
- 백준
- Spring
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |