JNDI (Java Naming and Directory Interface)
JNDI란
- JNDI는 디렉터리 서비스에서 제공하는 데이터 및 객체를 발견(discover)하고 참고(lookup) 하기 위한 자바 API
- 필요한 자원을 키/값으로 저장한 후 필요할 때 키를 이용해 값을 얻는 방법
JNDI사용 이유
1) 개발을 한 사람과 실제 서비스를 운영하는 Admin은 다른 경우가 많기 때문에 소스 레벨에서 설정되어 있는 것보다 WAS에서 설정되어 있는 것을 선호한다.
2) 또한 WAS에 여러 개의 웹 애플리케이션을 올려서 사용하기 때문에 WAS에서 한 번에 설정해 주는 것이 자원낭비를 줄일 수 있습니다.
3) 또한 장애가 나거나 성능이 정상적이지 못하면 다른 한 서버가 대신 일을 해줄 수 있습니다.
-> 정리하자면 운영, 관리, 최적화 문제 대처에 다양한 이점이 있기 때문에 JNDI를 사용한다.
JNDI 사용 예
- 웹 브라우저에서 name/value쌍으로 전송한 후 서블릿에서 getParameter(name)로 값을 가져올 때
- 해시맵이나 해시테이블에 키/값으로 저장한 후 키를 이용해 값을 가져올 때
- 웹 브라우저에서 도메인네임으로 DNS서버에 요청할 경우 도메인 네임에 대한 IP주소를 가져올 때
DataSource
DataSource는 DriverManager를 통해 DB 커넥션을 얻는 것 보다 더 좋은 기법을 제공한다.
✔ 첫째, DataSource는 서버에서 관리하기 때문에 DB나 JDBC 드라이버가 변경이 수월하다.
✔ 둘째, Connection, Statement 객체를 pooling할 수 있으며 분산 트랜잭션을 다룰 수 있다. (자체적으로 Connection Pool 기능을 구현)
JNDI가 접속정보를 암호화 하는 역할이라고 생각했는데
찾아보니 암호화와 JNDI는 별개의 개념이었다.
일단..적용해보자.
이 두개를 섞어야 할 것 같은데..
'차근차근 > Spring' 카테고리의 다른 글
jasypt2 (0) | 2022.07.25 |
---|---|
db접속 정보 암호화 (2) | 프로퍼티 | Jasypt (0) | 2022.06.08 |
스프링 빈(bean) 및 서블릿(servlet) 객체 직접 얻기 출처: https://offbyone.tistory.com/144 [쉬고 싶은 개발자] (0) | 2022.04.29 |
컨트롤러에서 알럿 | controller message alert (1) (0) | 2022.04.27 |
web.xml (0) | 2022.02.03 |