xdrlib 모듈은 외부 데이터 표현(External Data Representation, XDR) 형식의 데이터를 인코딩하고 디코딩하기 위한 인코더와 디코더를 제공하는 파이썬 표준 라이브러리입니다.
XDR이란 무엇인가?
XDR은 서로 다른 시스템과 외부 소스 간에 데이터를 전송할 때 널리 사용되는 표준 데이터 직렬화 형식입니다. 이기종 환경에서 복잡한 데이터 구조를 만들고 전송하는 데 유용하며, OSI 7계층 모델의 표현 계층(Presentation Layer)에서 제공하는 서비스와 연관된 기술입니다.
xdrlib를 활용한 데이터 패킹 예제
아래 프로그램은 xdrlib 모듈을 사용해 데이터를 패킹(pack)하고 언패킹(unpack)하는 과정을 보여줍니다.
import xdrlib p = xdrlib.Packer() print(type(p)) lst = [1, 2, 3] p.pack_list(lst, p.pack_int) print(p) u = xdrlib.Unpacker(p) print(type(u)) print(lst)
위 코드를 실행하면 다음과 같은 결과를 확인할 수 있습니다.
실행 결과
<class 'xdrlib.Packer'> <xdrlib.Packer object at 0x000002272F3D6FD0> [1, 2, 3]
코드 설명
- Packer 객체 생성:
xdrlib.Packer()로 인코더 인스턴스를 만들어 XDR 형식으로 데이터를 직렬화할 준비를 합니다. - 데이터 패킹:
pack_list()메서드는 리스트와 각 요소를 변환할 함수(pack_int)를 인자로 받아, 정수 리스트 전체를 XDR 형식으로 패킹합니다. - Unpacker 객체 생성:
xdrlib.Unpacker(p)로 디코더를 만들어 패킹된 버퍼에서 원래 데이터를 복원할 수 있습니다.
참고: xdrlib 모듈은 Python 3.9부터 지원 중단(Deprecated) 상태였으며, Python 3.13에서 공식적으로 제거되었습니다. 최신 프로젝트에서는 JSON, Protocol Buffers 등 다른 직렬화 방식을 사용하는 것이 권장됩니다.