본문 바로가기
📔개발자 일기 | | TIL

[20220317] 개발자 일기&TIL

by 캔 2022. 3. 17.

고객사의 개발 요구 사항이 계속 이어지고 있다. 유지보수인 건이긴 한데 고친 부분이 너무 많다 보니, 원래 고객사가 원하던 기능에서 멀어진 것 같다. 게다가 만들어진 기능을 조금 써보고 마음에 안 드는 부분 얘기하고 또 써보고 바꿔달라고 하고, 이 과정이 반복되다 보니까 조금씩 지치고 있다. 언제쯤 이 프로젝트가 끝날지 모르겠다.

 


JNDI의 개념

DB에 접속하기 위해서는 driver class, url, username, password 등의 접속 정보가 필요하다. 웹 애플리케이션이 DB에 접속하기 위해서는 그 안에 접속 정보를 가지고 있어야 한다. 그러면 만약에 하나의 WAS에 여러 개의 웹 애플리케이션들이 작동하는 환경을 가정해보자. 각각의 웹 애플리케이션들은 같은 DB에 접속한다고 하더라도 자신의 웹 애플리케이션 내에 접속 정보를 저장해놓고 사용한다. 그렇다면 만약에 DB 정보가 변경되었다고 생각해보자.(DB 정보가 노출되어서 비밀번호를 바꾼다든지의 상황) 각각의 웹 애플리케이션들 안에 있는 접속 정보들을 일일이 변경해주어야 한다. 개발자들이 개발과 무관하게 접속 정보 변경하는데 시간을 써야 한다.

 

이때, JNDI를 사용하게 되면 웹 애플리케이션은 DB 접속 정보에 신경을 쓸 필요가 없다. 웹 애플리케이션이 JNDI API를 사용하고 웹서버에 DB 접속 정보를 가진 resource(또는 datasource)를 등록해놓으면 JNDI API가 WAS의 그 접속 정보를 이용해서 DB에 접속한다. 즉, WAS가 가진 접속 정보만 변경해주면 되고 웹 애플리케이션에서는 JNDI API만 사용하면 될 뿐 접속 정보를 바꿔줄 필요가 없다.