Pulse 게시 ·

C·CGI로 상용 웹앱 구현, 단일 실행 파일 배포 경험 공개

Corey Prophitt가 OpenBSD·C·httpd·SQLite로 상용 웹앱 marketyour.games를 구현한 경험을 공개했다. JavaScript 없이 계정·검색·Stripe 결제 등을 제공하며, 정적 자산도 실행 파일에 넣었다. 요청마다 새 프로세스를 실행해 파일 교체로 배포하지만, 입력 검증·이스케이프 등은 직접 구현해야 했다고 설명했다.

내용·출처 업데이트 · 2026. 10. 13. 오전 2:01

SQLite의 C API로 데이터베이스 파일을 직접 열며, 별도 프레임워크나 템플릿 언어 없이 C에서 HTML을 출력한다.

libcurl은 외부 요청, libsodium은 비밀번호 해싱·난수 식별자·Stripe 웹훅 HMAC 검증, libcjson은 JSON 파싱에 사용했다.

SQLite와 libcjson은 소스에 포함해 빌드하며, 외부 빌드 의존성은 libcurl·libsodium이라고 설명했다.

httpd의 기본 chroot와 OpenBSD의 pledge·unveil을 활용한다.

쿠키·쿼리·폼 처리와 입력 검증·출력 이스케이프를 직접 작성했으며, 이 방식이 최선인지는 확신하지 못한다고 밝혔다.

프로세스 생성 비용에 대한 정량 벤치마크는 제시하지 않았다.

데이터베이스 서버와 앱 서버의 운영 부담을 줄이는 대신, 프레임워크가 맡던 요청 처리·보안 유틸리티를 개발자가 책임지는 선택이다.

원문