Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python xdrlib 모듈로 XDR 데이터 인코딩·디코딩하기

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 등 다른 직렬화 방식을 사용하는 것이 권장됩니다.