728x90
보안 등의 이유로 특정 값을 코드나 깃허브에 노출하고 싶지 않을 때 환경변수를 설정하고 참조하는 방식으로 처리를 하게 된다. 이 글에서는 인텔리제이에서 환경변수를 참조하는 방법을 두 가지 소개한다.
📌 1. 애너테이션 사용
💡 특징
- env.yml or env.properties에 값을 넣고 깃허브에는 올리지 않는다.(.gitignore에 추가)
- 깃허브에는 레파지토리 설정을 통해 따로 환경변수를 설정해주면 된다.
- 애너테이션 추가 위치에 따라 애플리케이션 전체를 커버할 수도 있다.
- env.yml 파일을 생성하고 파일 안에 환경 변수명과 값을 설정한다.
- 애플리케이션 실행 클래스나, 적용할 특정 클래스에 @PropertySource 애너테이션을 붙이고 yml이나 properties의 경로를 적는다.
- 애플리케이션 실행 클래스에 붙이면 테스트 패키지를 포함한 코드 전범위에서 사용이 가능하다.
- 적용할 필드에 @Value 애너테이션을 붙이고 yml이나 properties에 적은 변수명과 같은 이름을 "${}" 중괄호 안에 적으면 끝이다.
- 참고로 @Value 애너테이션은 lombok이 아니라,
import org.springframework.beans.factory.annotation.Value;
- 위의 스프링프레임워크에서 제공하는 @Value를 사용해야 한다.
참고로 리스트 형식의 데이터라면
@Value("#{'${addresses}'.split(',')}")
private List<String> addresses;
- 위와 같은 방식으로 설정한 후 yml or properties에는
- addresses : http://address1.com,http://address2.com,http://address3.com,http://address4.com
- addresses= http://address1.com,http://address2.com,http://address3.com,http://address4.com
- 라고 적어주면 콤마(,)를 기준으로 나뉘어져 문자열 리스트 형태로 적용된다.
📌 2. 인텔리제이 내 Configuration에서 설정
💡 특징
- env.yml or properties를 사용하지 않는다.
- 애너테이션을 이용하는 방법과 마찬가지로 코드 내에 있는 ${Name}을 통해 환경변수를 불러올 수 있다.
- 설정 파일을 따로 사용하지 않으므로 노출 위험이 상대적으로 적다.
- 테스트 패키지에는 따로 적용해주어야 한다.
- 즉, configuration마다 환경변수 설정을 따로 해야하는 듯하다.(내가 방법을 모르는 것 일수도 있다.)
- 인텔리제이 상단에 Configuration이 모여있는 곳을 클릭한다.
- Modify Options를 클릭한다.
- Override configuration properties를 클릭한다.
- NAME에 변수명을 적는다.
- Value에는 설정할 값을 적는다.
- 전부 체크 후 Apply를 누른다.
728x90
'어딘가에 맞춰질 퍼즐 조각들' 카테고리의 다른 글
MAC 터미널에서 ll 리눅스 명령어를 사용하는 방법(allias) (0) | 2023.05.17 |
---|---|
Postman 환경변수 설정으로 Header, URI 입력 자동화하기(1분 안에 이해 가능) (0) | 2023.01.14 |
프로젝트 용어 정리 (0) | 2022.12.19 |
DDD(Domain Driven Design) & 애그리거트(Aggregate) (0) | 2022.11.22 |
[JAVA] 추상클래스(Abstract class)와 인터페이스(Interface) (0) | 2022.09.19 |