window
width : 0
clientWidth : 0
height : 0
heightVH : 0
content
left : 0
width : 0
padding : 0
column
left : 0
width : 0
gap : 0

사용자정의함수

1 Contents
최신순

BeeAI 활용 교육 영상(06) - [2단계] Python 사용자 정의 함수(UDF)를 만들어서 데이터 처리하기

파이썬(Python)은 방대한 라이브러리 생태계를 보유하고 있어 데이터 분석과 과학 계산 분야에서 필수적인 언어로 자리 잡았습니다. 그러나 분산 환경인 스파크(Spark) 기반 시스템에서 개별 파이썬 스크립트를 통합하여 실행하는 과정은 기술적인 복잡함을 수반합니다. BeeAI는 이러한 허들을 낮추기 위해 파이썬 UDF(사용자 정의 함수)를 도커(Docker) 이미지 기술과 결합했습니다. 이를 통해 개발자는 익숙한 언어로 로직을 구성하면서도 플랫폼 내에서 안정적으로 데이터 처리 기능을 확장할 수 있게 되었습니다. 이 기능의 핵심은 온디맨드 익스터널 서빙(On-demand External Serving) 엔진을 활용하는 것입니다. 사용자는 엔진 설정에서 포트 번호와 도커 이미지 이름, 그리고 파이썬 코드가 저장된 경로를 지정하기만 하면 됩니다. 설정을 마치고 실행하면 시스템은 사용자의 코드를 포함한 도커 컨테이너를 자동으로 빌드합니다. 이렇게 컨테이너화된 환경은 독립적인 실행을 보장하며, 지정된 포트를 통해 데이터가 유입되면 컨테이너 내부의 파이썬 라이브러리가 로직을 수행한 뒤 그 결과를 다시 외부로 전달하는 구조를 가집니다. 파이썬 UDF를 구현할 때 주의할 점 중 하나는 REST API의 입출력 형식이 현재 문자열 위주로 구성되어 있다는 점입니다. 따라서 이미지나 수치 배열 같은 복잡한 데이터를 처리할 때는 이를 바이트 데이터(Byte Stream)나 문자열 형태로 변환하여 전송해야 합니다. 파이썬 코드 내부에서는 전달받은 문자열을 다시 원래의 데이터 형식으로 복원하여 연산을 수행하고, 결과물을 다시 문자열로 인코딩하여 반환하는 과정이 필요합니다. 이러한 처리 방식은 데이터의 종류에 상관없이 일관된 통신 인터페이스를 유지하게 해줍니다. 라이브러리 의존성 관리는 텍스트 파일을 통해 간편하게 이루어집니다. 필요한 라이브러리 목록을 파일에 적어두면 도커 이미지가 생성될 때 해당 라이브러리들이 자동으로 설치되어 환경이 구축됩니다. 실제 실습에서는 JSON 문자열 처리부터 넘파이(NumPy)를 활용한 난수 평균 계산, 그리고 필로우(Pillow) 라이브러리를 이용한 이미지 변환까지 다양한 사례가 확인되었습니다. 이는 개발자가 익숙한 도구를 그대로 사용하면서도 플랫폼의 워크플로우에 자신의 로직을 쉽게 통합할 수 있음을 보여줍니다. 파이썬 UDF의 통합은 데이터 개발 주기의 효율성을 극대화하는 중요한 요소입니다. 이를 통해 사용자는 데이터 수집과 적재라는 1단계를 넘어, 배치 처리와 스트림 처리 그리고 사용자 정의 함수를 활용한 고도화된 2단계 데이터 처리 과정까지 완벽하게 수행할 수 있습니다. 스파크의 강력한 분산 처리 능력과 파이썬의 방대한 분석 기능을 하나의 플랫폼에서 유기적으로 연결함으로써, 복잡한 데이터 파이프라인을 더욱 정교하고 유연하게 설계할 수 있는 기반이 마련된 것입니다.

BeeAI 활용 교육 영상(06) - [2단계] Python 사용자 정의 함수(UDF)를 만들어서 데이터 처리하기
한국전자통신연구원
  • 공학·기술