문제
민감한 정보에 접근할 수 있는 SecretKey나 코드상에 존재하기에는 적절하지 않는 값들은 어떻게 보관 및 사용해야 할까?
해결 방법
프로퍼티 파일을 통해 민감한 코드나 값을 보관하고, ignore시켜 공유하지 않을 수 있습니다.
- application.properties
- {key=value}를 통해 값을 저장합니다.
- 간단한 설정에 적합하고, 긴 값, 중첩된 설정에는 가독성이 떨어질 수 있습니다.
- application.yml
- {key:value}를 통해 값을 저장합니다.
- YAML (YAML Ain't Markup Languege) 형식을 사용해 설정 정보를 저장합니다.
- 프로퍼티 파일에 비해 비교적 가독성 좋습니다.
선택
본 프로젝트에서는 가독성을 위해서 YAML 파일을 선택하였습니다.
➕
기존에는 properties파일만 존재했으나 앞에서 말한 단점들을 보완하기 위해 Spring Boot 이후 yml파일이 나오게 되었습니다. 기존 프로젝트에 properties파일이 존재해도 yml파일을 추가로 생성하여 프로젝트 설정을 이어나가도 문제가 발생하지 않습니다. 그러나 yml파일이 properties파일보다 우선순위가 높기 때문에 같은 값을 설정할 경우 프로젝트는 yml파일의 값을 인식합니다.
'개발 > withfriend 🫱🏼🫲🏽🥕' 카테고리의 다른 글
[개발 이슈] 사용자 간 거래 → point로 구현하다 (0) | 2023.11.01 |
---|---|
[프로젝트 회고] 결제 구현, portone, PG사 회고 (0) | 2023.11.01 |
[개발 이슈] 서비스가 이벤트를 발생시키는 주체가 어떤 사용자인지 어떻게 구분하지? / access token, session, refresh token (0) | 2023.10.30 |
[개발 이슈] 사용자 경험을 고려한 로그인 구현 / OAuth (0) | 2023.10.30 |
[프로젝트 회고] 의존성 주입의 여러 방법들 (0) | 2023.10.27 |