WIPIVERSE

체리파이 (웹 프레임워크)

체리파이(CherryPy)는 파이썬 프로그래밍 언어를 사용하는 객체 지향 웹 애플리케이션 프레임워크이다. HTTP 프로토콜을 래핑하여 웹 애플리케이션의 신속한 개발을 위해 설계되었지만, 낮은 수준으로 유지되며 RFC 7231에 정의된 것 이상의 기능은 제공하지 않는다.

개요

체리파이는 자체적으로 웹 서버로 동작할 수 있으며, WSGI 호환 환경을 통해 실행할 수도 있다. 출력 렌더링을 위한 템플릿 작성이나 백엔드 액세스와 같은 작업은 프레임워크의 범위에 포함되지 않으며, 이러한 부분은 개발자가 선택한 외부 라이브러리로 처리한다. 프레임워크는 요청/응답 처리의 정의된 지점에서 호출되는 필터(도구)를 통해 확장 가능하다.

역사

  • 개발자: CherryPy 팀
  • 최초 발표: 2002년 6월 (약 24년 전)
  • 최신 안정 버전: 18.10.0 (2024년 6월 15일)
  • 프로젝트 창시자: Remi Delon

주요 특징

  • 파이썬다운 인터페이스(Pythonic Interface): 일반 파이썬 모듈처럼 사용할 수 있도록 설계되어, 개발자가 웹 애플리케이션임을 의식하지 않고 개발할 수 있다.
  • HTTP/1.1 및 WSGI 호환: 자체 스레드 풀 기반 웹 서버를 내장하며, Apache, IIS, lighttpd, FastCGI, SCGI, mod_wsgi 등 다른 WSGI 지원 서버와도 연동 가능하다.
  • 멀티 HTTP 서버: 여러 포트에서 동시에 수신 대기할 수 있다.
  • 플러그인 시스템: 서버 시작, 종료 등의 이벤트에 연결되어 실행되는 코드를 작성할 수 있다.
  • 내장 도구: 캐싱, 인코딩, 세션, 인증, 정적 콘텐츠 제공 등을 위한 도구를 기본 제공한다.
  • 설정 시스템: 사이트, 애플리케이션, 컨트롤러 수준에서 파이썬 딕셔너리, 설정 파일 등을 통해 설정을 구성할 수 있다.
  • ORM, 템플릿 언어, JS 라이브러리 강제하지 않음: SQLAlchemy, SQLObject, Jinja, Mako 등 다양한 라이브러리와 자유롭게 조합하여 사용할 수 있다.

사용 예시

import cherrypy

class HelloWorld:
    @cherrypy.expose
    def index(self):
        return "Hello World!"

cherrypy.quickstart(HelloWorld())

라이선스

BSD 라이선스로 배포된다.

활용 사례

  • TurboGears: TurboGears 1.x 및 2.x의 핵심 구성 요소로 사용되었다.
  • Netflix: 고성능 RESTful API 및 웹 인터페이스 구축에 체리파이를 사용한다.
  • Splunk Enterprise: CherryPy 3.1.2를 사용한다.

공식 웹사이트

  • cherrypy.dev
  • GitHub 저장소: github.com/cherrypy/cherrypy
둘러보기

더 찾아볼 만한 주제

    전체 문서 보기