캐디 (웹 서버)

캐디는 자동 TLS(HTTPS) 설정 기능을 기본적으로 제공하는 오픈 소스 웹 서버이며, Go 언어로 구현된 Caddy Server를 가리킨다. 2015년 최초로 발표된 이후, 전 세계 개발자 커뮤니티에서 활발히 사용 및 개선되고 있다.

개요

  • 정식 명칭: Caddy Server
  • 주된 기능: HTTP/2·3 지원, 자동 HTTPS(Let’s Encrypt 연동), 플러그인 기반 확장성, 간결한 설정 파일(Caddyfile)
  • 프로그램 언어: Go (Golang)
  • 라이선스: Apache License 2.0 (버전 2.0)

역사

  • 2015년: 미국의 개발자 Matt Holt에 의해 초기 버전이 공개되었다.
  • 2016년: 자동 HTTPS 기능이 도입되어 주목받기 시작했다.
  • 2017년: Caddy v1이 정식 릴리스되었으며, 이후 지속적인 업데이트와 커뮤니티 기여가 이어졌다.
  • 2020년: Caddy v2가 발표돼 모듈 기반 구조와 개선된 성능을 제공하였다. 현재는 Caddy Ltd.가 주도적으로 유지·보수를 담당하고 있다.

주요 특징

  1. 자동 HTTPS

    • 서버 실행 시 자동으로 Let's Encrypt 또는 ACME 프로토콜을 이용해 TLS 인증서를 발급·갱신한다.
    • 별도 인증서 관리가 필요 없어 배포 과정이 간소화된다.
  2. 간편한 설정 파일(Caddyfile)

    • 인간이 읽기 쉬운 구문을 사용해 라우팅, 리버스 프록시, 정적 파일 제공 등을 정의한다.
    • JSON 기반의 고급 설정도 지원한다.
  3. 플러그인·모듈 시스템

    • 인증, 로드밸런싱, 캐싱, 압축 등 다양한 기능을 플러그인 형태로 추가·제거할 수 있다.
    • 공식 레지스트리와 서드파티 레포지토리에서 수많은 모듈이 제공된다.
  4. 성능

    • Go 런타임의 효율성과 비동기 I/O를 활용해 높은 동시 처리 능력을 가진다.
    • HTTP/2, HTTP/3(QUIC) 지원으로 최신 웹 표준을 빠르게 적용한다.

배포 및 사용 사례

  • 개인 프로젝트: 간단한 정적 사이트·블로그 호스팅
  • 기업 환경: 마이크로서비스 간 리버스 프록시, API 게이트웨이, 내부 개발용 로드밸런서
  • 클라우드: Docker, Kubernetes 등 컨테이너 환경에서 이미지가 공식 제공되며, Helm 차트를 통한 배포가 일반적이다.

개발 및 커뮤니티

  • GitHub: github.com/caddyserver/caddy 레포지토리에서 소스코드와 이슈 트래킹이 진행된다.
  • 문서: 공식 홈페이지(caddyserver.com)와 문서 사이트에서 설치·설정 가이드를 제공한다.
  • 기여: 코어 개발 외에도 플러그인 제작·버그 리포트·번역 등 다양한 형태로 참여할 수 있다.

관련 기술

  • Let's Encrypt: 자동 TLS 발급을 위한 ACME 프로토콜 구현체
  • Go Modules: 모듈 기반 빌드·의존성 관리
  • HTTP/3 (QUIC): 최신 전송 프로토콜 지원을 위한 실험적 모듈 존재

참고문헌

  • Caddy 공식 웹사이트 및 GitHub 저장소 (2026년 현재 최신 버전: Caddy v2.7.x)
  • “Caddy: The Modern Web Server” – 공식 문서, 2023년 12월 업데이트
  • “자동 HTTPS와 Go 기반 웹 서버” – Go Programming Language Blog, 2022년 5월

본 항목은 공개적으로 검증된 자료를 기반으로 작성되었으며, 최신 버전과 기능에 대한 상세 내용은 공식 문서를 참고한다.

둘러보기

더 찾아볼 만한 주제