본문 바로가기
💻 개발로그 (Tech Log)/Spring & Java & 웹개발 실무노트

IntelliJ에서 Spring Boot VM Options 설정하기

by zzjjing 2025. 7. 22.
반응형

스프링부트 개발하면서 IntelliJ에서 VM Options 설정하는 방법을 정리했다.

VM Options란?

JVM(Java Virtual Machine)에 전달되는 시스템 프로퍼티나 환경변수를 설정하는 방법이다.

쉽게 말해서 코드에 박기 곤란한 설정값들을 실행할 때 주입해주는 거다.

IntelliJ에서 VM Options 설정하는 방법

1. Run Configuration 열기

  • 상단 메뉴바에서 Run > Edit Configurations 클릭
  • 또는 실행 버튼 옆 드롭다운에서 Edit Configurations 선택

2. 실행옵션추가 -> VM Options 입력

  • VM Options 필드에 -D 옵션으로 시작하는 프로퍼티들을 입력
  • 각 옵션은 줄바꿈 또는 공백으로 구분

3. 설정 예시와 용도

AWS SES 설정 (이메일 발송용)

-Dses.username=*********************
-Dses.password=************************

회원가입 인증메일, 비밀번호 찾기 메일 보낼 때 사용. AWS SES 계정 정보를 코드에 박지 말고 VM 옵션으로 빼둠.

JWT 토큰 암호화 키

-Djwt.secret=*******************

로그인 JWT 토큰 생성/검증할 때 사용하는 시크릿 키. 이거 노출되면 토큰 위조 가능해서 절대 코드에 박으면 안됨.

데이터베이스 연결 정보

-Ddb.url=10.**.0.***:3308
-Ddb.name=dev
-Ddb.username=dev
-Ddb.password=******

개발용 DB 접속할 때 사용. application.yml에서 ${db.url}, ${db.name} 이런 식으로 참조함. 개발/운영 DB 분리할 때 편함.

암호화용 IV

-Dencryption_iv=**********

개인정보나 민감한 데이터 암호화할 때 사용하는 초기화 벡터. AES 암호화 같은 거 쓸 때 필요함.

주요 용도

  • 민감한 정보 분리: DB 패스워드, API 키 같은 거 코드에서 빼기
  • 환경별 설정: 개발용 DB와 운영용 DB 주소 다르게 설정
  • 암호화 키 관리: JWT 시크릿, 암호화 키 등 보안 관련 설정
  • 외부 서비스 인증: AWS, 구글 API 같은 외부 서비스 연동 정보

언제 사용하나?

  • 회원가입/로그인 기능 만들 때 (JWT, 이메일 발송)
  • 개인정보 암호화 저장할 때
  • 외부 API 연동할 때
  • 개발/스테이징/운영 환경 분리할 때

장점

  • 코드에 민감한 정보 하드코딩 안해도 됨
  • 환경별로 다른 설정값 쉽게 관리
  • IDE에서 바로 실행하면서 테스트하기 편함
  • Git에 올라가면 안되는 정보들 안전하게 관리

주의사항

  • 민감한 정보는 절대 Git에 올리지 말기
  • 실제 서비스할 때는 환경변수나 외부 설정 파일 쓰기
  • VM Options는 IntelliJ에서 실행할 때만 적용됨 (jar 배포할 때는 별도 설정)
728x90
반응형