application.properties ? application.yml ?
자바 프로젝트를 생성하면 리소스 아래에 application.~라는 파일을 볼 수 있다.
이는 자바 애플리케이션에서 사용하는 설정값, 환경변수들을 관리하는 파일로 서버의 포트번호, 연결할 DB에 관한 정보, AWS의 연결 정보 등을 관리할 수 있다.
보통 Git을 사용해 프로젝트를 관리하곤 하는데 Git에 DB연결 관련 정보같은 내용들이 그대로 올라간다면 보안이 박살날 수 밖에 없다. 따라서 노출되면 안되는 정보들은 Git에 올라가지 않게 따로 관리를 하는데 이에 대해 작성하려한다.
application-?.yml 작성
먼저 따로 관리할 값들에 대한 파일을 생성한다.
예를 들어, DB에 관한 정보를 관리할 경우 application.yml과 동일한 위치에 application-db.yml과 같은 이름으로 파일을 생성 한다.
그 후 아래와 같이 관리할 정보들을 작성한다. 아래는 MySQL연결 정보와 관련된 내용이다.
spring:
datasource:
url: jdbc:mysql://{도메인:3306}/{DB명}?useUnicode=true&serverTimezone=Asia/Seoul
username: username
password: pw
driver-class-name: com.mysql.cj.jdbc.Driver
아래는 AWS의 S3연결과 관련된 정보를 관리하기 위해 application-s3.yml 파일을 생성하였다.
cloud:
aws:
credentials:
accessKey: 발급받은 accessKey
secretKey: 발급받은 secretKey
s3:
bucket: bucket네임
region:
static: region명
작성한 파일들 포함관계 설정
자바에서 application.yml을 최우선적으로 살펴보기에 위에서 작성한 application-s3.yml 등을 포함시켜줘야한다
applicatoin.yml에 아래와 같이 포함할 파일들을 작성해주면 된다.
---
spring:
profiles.include:
- db
- s3
.gitigroe 작성
열심히 따로 파일을 작성했는데 깃에 올라가면 OMG...
.gitignore에 아래와 같은 내용들을 추가해준다
### yml
application-db.yml
application-s3.yml
설정파일의 환경변수 사용법
@Value 어노테이션을 통해 application.yml파일의 설정값을 사용할 수 있다.
- @Value : 값들을 정의해놓은 파일에 접근해 원하는 데이터를 가져옴
예를 들어 application-s3.yml에 작성해놓은 accessKey를 가져오고 싶은경우 아래와 같이 코드를 작성하면 설정값을 가져올 수 있다.
@Value("${cloud.aws.credentials.accessKey}")
private String accessKey;
'⌨Programming > Spring' 카테고리의 다른 글
JPA 복합키 삭제 에러, 이슈 (0) | 2023.06.07 |
---|---|
스프링에서 S3로 파일업로드하기 (0) | 2023.05.30 |