인프런 커뮤니티 질문&답변
application.properties 작성 관련 질문
작성
·
23
0
안녕하세요, 강의 잘 듣고 있습니다.
'데이터베이스 연동하기 - I' 강의에서 application.properties 파일에
spring.datasource.password=1234
로 작성하셨는데, 실제로 프로젝트를 할 때에도 이렇게 비밀번호를 직접 노출하는 방식으로 작성을 하나요? 뭔가 비밀번호이다 보니 코드로 이렇게 노출시키면 안 될 것 같은 느낌이 들어서 궁금합니다!
답변 2
0
돌돌님 안녕하세요.
좋은 질문이에요. 결론부터 말씀드리면, 실제 프로젝트에서는 데이터베이스 비밀번호를 코드에 직접 노출하는 방식은 거의 사용하지 않습니다.
강의에서 spring.datasource.password=1234처럼 작성한 이유는 학습 편의성과 빠른 실행 확인을 위한 것이에요. 하지만 실무에서는 보안상 이유로 다른 방식을 사용합니다.
비밀번호를 코드에 직접 작성하면 다음과 같은 문제가 있습니다.
깃허브와 같은 저장소에 업로드될 경우 비밀번호가 그대로 노출될 수 있습니다.
팀원뿐만 아니라 외부인도 접근할 가능성이 있습니다.
해킹이나 데이터 유출로 이어질 위험이 있습니다.
이러한 이유로 실무에서는 보다 안전한 방법을 사용합니다.
가장 기본적이고 널리 사용되는 방법은 환경 변수를 활용하는 방식입니다. 개발 서버나 운영 서버의 시스템(OS) 환경 변수에 비밀번호를 설정하고, 애플리케이션에서는 이를 참조하는 형태로 사용합니다.
예를 들면 다음과 같습니다.
시스템(OS) 환경 변수
DB_PASSWORD=1234application-local.properties
spring.datasource.password=1234application-dev.properties
spring.datasource.password=${DB_PASSWORD}application-prod.properties
spring.datasource.password=${DB_PASSWORD}
이렇게 구성하면 코드에는 비밀번호가 포함되지 않고, 서버 환경에 따라 다른 값을 유연하게 사용할 수 있습니다.
이 내용을 직접 실습해보면 가장 이해가 잘 되는데, 아직 서버(예: Ubuntu) 환경이 준비되지 않은 것 같아요.
그래서 제 블로그 글을 통해 간접적으로라도 실습 흐름을 따라가 보시는 것을 추천드립니다.
https://hoazzinews.tistory.com/4
https://hoazzinews.tistory.com/5
천천히 읽어보시면 전체 흐름을 이해하는 데 도움이 되실 거예요~~~
처음에는 이런 설정 하나하나가 낯설고 어렵게 느껴질 수 있어요. 하지만 지금처럼 “왜 이렇게 해야 하지?”라고 고민하고 질문하는 과정 자체가 실력을 빠르게 성장시키는 가장 좋은 방법입니다.
지금 배우고 있는 내용들은 당장 눈에 띄는 결과보다, 나중에 프로젝트를 할 때 큰 차이를 만들어주는 중요한 기반이 돼요. 조금씩이라도 이해하면서 쌓아가다 보면, 어느 순간 전체 흐름이 자연스럽게 연결되는 시점이 올 거예요.
지금처럼 차근차근 꾸준히 공부해보세요. 충분히 잘 해내실 수 있습니다. 응원합니다~
0
안녕하세요, 인프런 AI 인턴입니다. 돌돌님.
스프링 부트나 그 외의 프레임워크에서 데이터베이스 연결 정보인 application.properties 파일을 설정할 때 비밀번호를 포함한 민감한 정보를 바로 노출하는 것은 보안상 좋지 않습니다. 말씀하신 느낌이 정확하며, 실제 프로젝트에서는 보안에 더 신경 써야 합니다.
비밀번호 보안 처리 방법
환경 변수 또는 외부 설정 파일 사용: 환경 변수를 통해 데이터베이스 비밀번호를 설정하고,
application.properties파일에서는 환경 변수를 참조할 수 있습니다.spring.datasource.password=${DB_PASSWORD}Spring Cloud Config 또는 Vault 사용: 스프링 클라우드 설정 서버나 HashiCorp Vault 같은 비밀 관리 시스템을 사용하여 민감한 정보를 중앙에서 안전하게 관리할 수 있습니다.
Jasypt 같은 암호화 라이브러리 사용:
Jasypt와 같은 라이브러리를 사용하여 암호화된 상태로 비밀번호를 저장하고 실행 시 복호화하는 방법도 있습니다.
추가 링크
이 링크에서 더 많은 정보를 얻을 수 있으며, 다양한 보안 조치 방법을 찾을 수 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.




