캐디는 자동 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.가 주도적으로 유지·보수를 담당하고 있다.
주요 특징
-
자동 HTTPS
- 서버 실행 시 자동으로 Let's Encrypt 또는 ACME 프로토콜을 이용해 TLS 인증서를 발급·갱신한다.
- 별도 인증서 관리가 필요 없어 배포 과정이 간소화된다.
-
간편한 설정 파일(Caddyfile)
- 인간이 읽기 쉬운 구문을 사용해 라우팅, 리버스 프록시, 정적 파일 제공 등을 정의한다.
- JSON 기반의 고급 설정도 지원한다.
-
플러그인·모듈 시스템
- 인증, 로드밸런싱, 캐싱, 압축 등 다양한 기능을 플러그인 형태로 추가·제거할 수 있다.
- 공식 레지스트리와 서드파티 레포지토리에서 수많은 모듈이 제공된다.
-
성능
- 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월
본 항목은 공개적으로 검증된 자료를 기반으로 작성되었으며, 최신 버전과 기능에 대한 상세 내용은 공식 문서를 참고한다.