Java에서 JNDI와 그 용도
이 기사에서는 JNDI(Java Naming and Directory Interface
)가 무엇인지, 주요 용도 및 사용 시기에 대해 설명합니다. 또한 Java에서 JNDI
의 장단점을 비교합니다.
Java의 Java 명명 및 디렉토리 인터페이스(JNDI
)
Java 프로그램은 애플리케이션 프로그래밍 인터페이스(API
)인 JNDI
의 이름 및 디렉토리 기능을 사용할 수 있습니다.
분산 시스템에서도 활용이 가능합니다. 즉, 시스템에 여러 서버가 있어도 모든 서버에서 정보를 공유할 수 있습니다.
- 예를 들어
JNDI
디렉토리를 사용하여 애플리케이션 서버의 IP 주소와 같은 구성 데이터를 저장할 수 있으며 앱은 이 정보를 검색할 수 있습니다. JNDI
는 디렉토리 서비스 구현과 독립적으로 작동하도록 의도되었습니다. 결과적으로 사용자는 신규, 개발 및 이미 구현된 디렉토리를 포함하여 광범위한 디렉토리에 액세스할 수 있습니다.
Java에서 JNDI
사용
JNDI
를 사용하여 개체, 장치, 이름 파일 및 디렉터리 서비스 등과 같은 다양한 종류의 데이터에 액세스할 수 있습니다. 예를 들어 EJB
는 이를 사용하여 원격 개체를 찾습니다.
‘JNDI’는 ‘DNS’, ‘NDS’, ‘LDAP’, ‘CORBA’ 및 ‘RMI’와 같은 기존 서비스에 표준화된 진입점을 제공하기 위해 개발되었습니다.
따라서 JNDI
클래스와 하나 이상의 서비스 공급자가 있어야 JNDI
를 활용할 수 있습니다. Java 2 SDK는 아래 나열된 이름 및 디렉토리 서비스에 대해 세 가지 다른 서비스 공급자를 제공합니다.
- 경량 디렉터리 액세스 프로토콜(
LDAP
) - Common Object Request Broker Architecture(
CORBA
) Common Object Services(COS
) 이름 서비스 - Java 원격 메소드 호출(
RMI
) 레지스트리
따라서 먼저 개체를 빌드한 다음 디렉터리 서비스에 등록하여 나중에 개체를 조회하고 작업을 수행할 수 있습니다.
Java에서 JNDI
의 장단점
다음은 JNDI
가 제공하는 몇 가지 이점입니다.
- 애플리케이션이
devl->int->test->prod
환경에서 마이그레이션되는 배포 시퀀스를 사용하는 경우 각 환경에서 동일한JNDI
이름을 사용하여 사용되는 실제 데이터베이스를 은폐할 수 있습니다. - 응용 프로그램이 환경 간에 마이그레이션될 때 변경할 필요가 없습니다.
- 읽기 작업 및 네임스페이스 수정 작업과 같은 명명 작업은
JNDI
를 사용하여 실행할 수 있습니다. - 프로덕션에서 데이터베이스에 액세스해야 하는 사람의 수는 최소한으로 유지될 수 있습니다.
JNDI
의 사용법은 Java EE 애플리케이션 서버를 제외한 모든 사람에게 숨겨질 수 있습니다. - 리소스가
JNDI
디렉토리에 나열되어 있는 한 코드는 단일 컴퓨터 또는 분산 환경에서 리소스에 액세스할 수 있습니다. - 강력하고 휴대 가능한 새로운 앱을 만들 수 있습니다. 또한 Java의 객체 모델을 사용하며 배포되는 환경과 잘 연결되어 있습니다.
단점 중 하나는 다음과 같습니다.
- 단점 중 하나는 기본 보안 모델이 없다는 것입니다. 그러나 일부 구현에서는 디렉토리 서비스에 대한 암호화된 연결을 설정하기 위한
API
를 제공합니다.
I have been working as a Flutter app developer for a year now. Firebase and SQLite have been crucial in the development of my android apps. I have experience with C#, Windows Form Based C#, C, Java, PHP on WampServer, and HTML/CSS on MYSQL, and I have authored articles on their theory and issue solving. I'm a senior in an undergraduate program for a bachelor's degree in Information Technology.
LinkedIn