Challenge, and Growth ! Who am I
                                                                                                             

Welcome to my blog 🫧

Total

Today

Yesterday













IDE/IntelliJ

[Springboot] IntelliJ 환경변수 추가하는 법 (+ yml 파일 여러개인 경우)

뽀시라운 2024. 11. 9. 14:42
반응형
SMALL

[목차여기]

 

 

IntelliJ에서 Springboot 프로젝트를 개발할 때, 환경변수를 적용하는 방법을 알아보겠습니다.

 

 

 

 

0. IntelliJ 버전 확인

IntelliJ 버전
✔️ IntelliJ IDEA 2023.3.4 (Ultimate Edition)

 

IntelliJ의 UI가 한 번 완전히 개편된 것으로 알고 있는데, 저는 개편된 최신 버전을 사용하고 있습니다. 그리고 학생 계정을 인증받아서 Ultimate 버전입니다!

 

 

1. application.yml 파일

 

SpringBoot 프로젝트를 개발하면 무조건 만나게되는 파일이 application.yml 입니다. 보통 자주 사용하는 변수나, 비밀번호처럼 공개되면 안되는 값을 저장하기 위해 사용합니다. 그래서 깃허브에서 application.yml 파일을 올리지 않고 .gitignore 처리하거나, 환경변수를 이용해서 값을 숨기는 방법을 사용합니다.

 

그런데 application.yml 파일을 올리지 않고 파일을 팀원들과 따로 공유하게 되면 수정할 때마다 매번 공유해야하는 번거로움이 있습니다. 개발 단계에서는 덜 불편할 수 있지만 배포를 하거나 팀의 인원이 많아지는 경우에는 관리가 훨씬 복잡해집니다. 이러한 이유로, 저는 주로 application.yml을 깃허브에 올리고 환경변수를 이용해서 값을 숨기는 방법을 사용합니다. 

 

 

 

src > main > resources > application.yml 에 위치하고 있습니다.

 

 

application.yml

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/newsee
    username: ${LOCAL_USERNAME}
    password: ${LOCAL_PASSWORD}
    driver-class-name: com.mysql.cj.jdbc.Driver
  jpa:
    generate-ddl: false
    show-sql: false

  jwt:
    secret: ${JWT_SECRET_KEY}

security:
  kakao:
    client_id: ${CLIENT_ID}
    redirect_uri: ${REDIRECT_URI}

 

작성된 파일의 코드를 보면 환경 변수가 5개 보입니다. 환경변수는 다음과 같이 표현합니다.

 

${환경변수이름}

 

 

2. IntelliJ 환경변수 추가

 

➡️ 빨간색 화살표를 따라와주세요~

 

 

 

Edit를 클릭합니다.

 

 

 

 

아무 것도 없는 경우에 + 버튼을 클릭하여 Configuration을 설정해주겠습니다. 현재 프로젝트의 종류에 맞게 SpringBoot를 클릭합니다.

 

 

 

 

 

처음에는 <no module> 이라는 문구를 확인할 수 있습니다. 현재 프로젝트의 모듈을 선택합니다.

 

 

 

그리고 Main class의 경로를 작성하고 Modfiy options를 선택합니다.

 

 

 

 

 

Enviroment variables(환경변수)를 선택합니다.

 

 

 

 

 

$ 모양을 클릭했다면 + 버튼을 클릭하여 환경변수를 추가할 수 있습니다.

 

 

3. yml 파일이 여러 개인 경우

 

사용 목적에 따라서 yml 파일을 여러개 만드는 경우가 있습니다.

application.yml ➡️ 사용할 yml 파일 지정 용도
application-dev.yml  ➡️ 로컬 개발 시 사용
application-prod.yml ➡️ 배포 시 사용

 

 

 

그럴 때는 똑같이 환경변수를 저장하고 Active profiles에 활성화할 yml 파일의 이름을 명시하면 됩니다.

application-{이름}.yml

 

 

 

 

감사합니다.

반응형
LIST
loading