목록 보기
데이터 분석 라이브러리 개발기 (2) - 통합 테스팅과 문서화를 동시에 잡는 방법
백엔드

데이터 분석 라이브러리 개발기 (2) - 통합 테스팅과 문서화를 동시에 잡는 방법

데브시스터즈
데브시스터즈
2020년 12월 4일

두줄요약

MinIO와 pytest fixture로 S3 의존성 없는 PySpark 통합 테스트 환경을 구축했습니다.\npytest doctest와 Sphinx를 결합해 실행 가능한 API 문서를 유지했습니다.

문제 상황

  • PySpark와 Amazon S3 입출력에 의존하는 데이터 분석 라이브러리의 복잡한 통합 테스트
  • 실제 S3 기반 테스트의 권한 제약, 느린 실행, 테스트 데이터 생성 부담, 실행 환경 미격리
  • 함수 변경 시 누락되기 쉬운 docstring 용례와 레퍼런스 문서 관리

해결 방법

  • pytest fixture로 Spark Session, 설정, 버킷, 테스트 데이터를 조합한 테스트 환경 구성
  • MinIO 서버를 테스트마다 로컬 S3 호환 스토리지로 사용해 실제 S3 의존성 제거
  • pytest doctest로 docstring의 실행 예제와 기대 결과 검증

구조와 흐름

  • MinIO fixture 기동 후 버킷 생성과 Parquet 테스트 데이터 적재
  • MinIO 엔드포인트·접근 키를 주입한 Spark Session으로 S3A 요청 연결
  • 데이터 fixture와 DevPlay Analytics fixture를 테스트 함수 인자로 주입

성능/운영 포인트

  • 외부 S3 권한 없이 빠르고 격리된 로컬 통합 테스트 환경
  • Sphinx automodule 기반 레퍼런스 문서와 실행 가능한 doctest의 단일 소스화
  • API 문서화 커버리지와 pytest 테스트 커버리지의 동시 확대

다음 읽기

#Python 주제를 이어서 읽기

데이터 분석 라이브러리 개발기 (1)

PySpark 분석의 경로·설정 관리와 Notebook·batch 환경 차이를 DevPlay Analytics로 추상화했습니다. SQL 인터페이스와 문서화·테스트를 제공해 일일 200종 이상 테이블 적재에 활용했습니다.

데브시스터즈
데브시스터즈
백엔드

댓글 0개

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...