디렉터리 서비스를 제공하기 위한 프로토콜
디렉터리 서비스
- 이름을 기준으로 대상을 찾아 조회하거나 편집할 수 있는 서비스
- DNS도 디렉터리 서비스의 일종
- DNS은 도메인 이름으로 IP 주소를 조회
프로토콜
- 프로토콜(Protocol): 약속, 규약, 협약을 의미하는 단어
- 컴퓨터 내부, 또는 컴퓨터 사이에서 데이터의 교환 방식을 정의하는 규칙 체계
LDAP(Lightweight Directory Access Protocol)은 디렉토리 서비스를 제공하기 위한 프로토콜입니다. 기업 시스템과 보안 서비스에서 사용자 관리 및 인증 등에 사용됩니다.
LDAP 이란?
LDAP 이란 네트워크상에서 조직이나 개인, 파일, 디바이스 등을 찾아볼 수 있게 해주는 소프트웨어 프로토콜입니다. LDAP 이전에는 DAP(Directory Access Procotocol)이 존재하였지만, 이는 OSI 계층 전체의 프로토콜을 지원하고 통신 간에 네트워크 자원을 많이 소비하는 등 운영 환경에 제약이 많았습니다. LDAP은 이름 그대로, DAP을 기반으로 경량화(Lightweight)된 DAP 버전입니다.
여기서 Lightweight는 통신 네트워크 대역폭 상의 가벼움을 의미합니다.
OSI 계층 전체가 아닌 TCP/IP 위에서 운용되고 DAP의 스펙을 최대한 유지하면서도 경량화하여 네트워크 부담을 줄이도록 설계되었습니다.
LDAP은 비동기 프로토콜입니다. 세션을 하나만 열어서 여러 메시지 요청을 보낼 수 있고, 각각의 요청에 대한 응답이 다른 시점에 올 수도 있습니다. 응답마다 어떤 요청의 응답인지 식별할 수 있는 아이디가 부여됩니다.
MySQL, Oracle DB는 관계형 데이터베이스(RDC)이지만 LDAP의 경우 데이터가 트리 구조로 이루어진 계층형 데이터베이스입니다. 각 Entry는 Attribute로 이루어진 데이터들과 함께 하위에 여러 자식 Entry를 가지는 그룹 형태를 반복해 트리와 같은 계층 형태의 데이터로 표현할 수 있습니다. 이러한 LDAP의 계층 구조는 검색과 읽기 작업에 강점을 지닙니다. 데이터가 위치한 계층에 접근해 필요한 데이터를 바로 꺼내올 수 있고 해당 계층의 같은 성격을 가진 데이터의 속성과 스키마 설정을 통해 보다 상세히 비교할 수 있습니다. 이러한 특징 때문에 검색 및 읽기 작업에서 관게형 데이터베이스보다 유리합니다.
검색 및 읽기 처리 방식의 차이
LDAP은 저장된 데이터를 신속하게 조회하기 위해 단순 쿼리 위주로 작업을 처리합니다.
하지만 관계형 데이터베이스는 여러 데이터, 테이블의 관계를 통해 필요한 데이터를 종합적으로 가져오는 복합적 쿼리를 처리하는데에 중점을 둡니다. 하지만 이러한 읽기와 달리 추가, 삭제와 같은 쓰기 작업에서는 관계형 데이터베이스보다 안정성이 떨어집니다. 관게형 데이터베이스와 다르게 트랜잭션과 같은 유효성 검사가 제한적이기에 쓰기보다 읽기 작업이 많은 데이터 서비스에 주로 활용됩니다.
Reference
'Development' 카테고리의 다른 글
[Web] 웹 개발 개념 정리 (기초) (0) | 2024.03.30 |
---|---|
프로토콜이란? (0) | 2024.03.30 |
[ReactJS] ReactJS란? (0) | 2024.03.25 |
[JS] 자바스크립트에서 사용되는 연산자 및 표현식 (1) | 2024.03.25 |
NGINX란? (1) | 2024.03.25 |