목록 보기
Skia Python 적용기
백엔드

Skia Python 적용기

엔라이즈
엔라이즈
2016년 7월 1일

두줄요약

Skia를 Python에 바인딩한 SIPSkia로 ImageMagick 기반 카드 변환을 교체했습니다. 평균 4배 성능과 이미지 변환 서버 CPU 사용률 30~40% 감소를 확인했습니다.

문제 상황

  • Python·Flask·Celery와 ImageMagick·Wand 기반의 대규모 카드 이미지 변환 처리
  • 매일 수백만 장 업로드 환경에서 이미지 변환 서버의 CPU 비용 절감 요구

해결 방법

  • Skia 기반 이미지 처리 라이브러리 SIPSkia 구현과 crop·resize·JPEG 인코딩 API 구성
  • boost.Python으로 C++ Skia와 Python 바인딩, distutils setup.py 빌드 구성
  • Celery 카드 변환 코드에 SIPSkia 머지 후 서버 배포

주의할 점

  • Skia master 브랜치의 JPEG 인코딩 문제와 Chrome 릴리즈 브랜치 선택 필요
  • JPEG 바이너리의 널 문자 처리, distutils 컴파일 옵션, Ubuntu용 PIC·PIE 빌드 설정 이슈
  • imageFilterQuality 조정을 통한 이미지 안티앨리어싱 품질 문제 해결

성능/운영 포인트

  • ImageMagick 대비 평균 약 4배, 최대 5배 이상의 이미지 변환 성능
  • 무한 반복 변환 테스트로 메모리 누수 점검 및 수정
  • 전체 업로드 중 변환 비중은 약 10%이나 이미지 변환 서버 CPU 사용률 약 30~40% 감소

다음 읽기

#Python 주제를 이어서 읽기

모씨 서비스 구성에 대해

AWS와 다중 데이터베이스를 조합한 모씨 서비스의 운영 구성을 소개했습니다. 캐시·검색·비동기 처리와 성능 제약 대응 사례를 정리했습니다.

엔라이즈
엔라이즈
데브옵스

댓글 0개

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

댓글을 불러오는 중...