웹프로그래밍/웹프로젝트

중요한 데이터 Properties로 관리하기

Uisin 2025. 1. 13. 20:31

API키나 DB에 접근하기 위한 아이디, Pw, URL 등은 소스코드에 직접 적으면 안되는데 이런 보안상 중요한 데이터들을 관리하는 방법으로 properties 파일로 데이터를 따로 빼내어 관리하는 것이다. properties 파일은 key 와 value의 형태로 저장이 되어 key를 통해 해당하는 value를 꺼내올 수 있다.

 

 

프로젝트와 DB를 연결해주는 JDBC 객체에서 데이터베이스의 아이디, 비밀번호, 그리고 url을 요구하고 있는데 지금 까지는 코드에 직접적으로 데이터를 넣어서 사용해왔다. 하지만 이러한 중요한 정보를 소스코드에 그대로 담아 공유하는 것은 보안상 매우 부적절한 일이기 때문에 수정하고자 한다

 

우선 properties 파일들이 저장되어있는 경로를 찾아 연결해주어야 한다.

 

<context:property-placeholder location="classpath:properties/dbConnection.properties" />

 

Spring은 기본적으로 resources 폴더를 클래스패스에서 정적 리소스를 찾는 기본 위치로 지정한다. 그렇기 때문에 경로에 classpath를 적어주면 Spring이 알아서 main 폴더안의 resources 폴더에 접근을 한다. (webapp안의 resources폴더가 아니다)

이렇게 resources 폴더안에 필요한 properties 파일들을 넣고 필요한 데이터를 Key = Value 형태로 저장해주면

<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName" value="com.mysql.cj.jdbc.Driver" />
        <property name="url" value="${mysql.url}" />
        <property name="username" value="${mysql.username}" />
        <property name="password" value="${mysql.password}" />
</bean>

 

이런식으로 EL태그를 통해 xml 파일에서 properties 안의 데이터를 가져와 사용이 가능해진다.