정보기술 · 정보통신 ·
COBOL로 구현한 웹 서버 'Webbol' 공개...60년 역사 언어의 현대적 활용 제시
개발자 jmsdnns가 COBOL 언어로 작성된 최소한의 정적 웹 서버 'Webbol'을 GitHub에 오픈소스로 공개했다.
[한국정보기술신문] COBOL 언어로 작성된 정적 웹 서버 'Webbol'이 GitHub를 통해 공개되며, 1959년 탄생한 프로그래밍 언어의 현대적 활용 가능성을 보여주고 있다. 이 프로젝트는 COBOL이 금융권 레거시 시스템에만 활용되는 것이 아니라 현대적인 시스템 프로그래밍 작업에도 사용될 수 있음을 입증했다.
Webbol은 GnuCOBOL 컴파일러를 사용하여 구현된 최소한의 웹 서버로, 정적 파일 서빙, 자동 MIME 타입 감지, HTTP 상태 코드 처리 등의 기능을 제공한다. 서버는 현재 디렉토리에서 파일을 제공하며, 루트 경로 요청 시 자동으로 index.html을 서빙한다.
주요 기능과 보안 체계
이 웹 서버는 200(OK), 403(Forbidden), 404(Not Found), 413(Payload Too Large) 등의 HTTP 상태 코드를 지원하며, 경로 탐색 공격 방지 기능을 내장했다. HTML, CSS, JavaScript, JSON, 이미지 파일 등 다양한 파일 형식의 MIME 타입을 자동으로 감지한다.
보안 측면에서는 점점(..) 시퀀스를 포함한 요청을 차단하여 경로 탐색 공격을 방지하고, 현재 디렉토리와 하위 디렉토리의 파일만 접근 가능하도록 제한했다. 모든 경로는 파일 시스템 접근 전에 검증 절차를 거친다.
설치 및 사용 방법
Webbol은 macOS, Ubuntu, Debian, Fedora 등 POSIX 호환 운영체제에서 실행 가능하다. macOS에서는 'brew install gnucobol', Ubuntu/Debian에서는 'sudo apt-get install gnucobol' 명령으로 GnuCOBOL을 설치한 후 'make' 명령으로 컴파일할 수 있다.
서버는 기본적으로 8080 포트에서 실행되며, config.cpy 파일의 SERVER-PORT 값을 수정하여 포트를 변경할 수 있다. 서버 실행 후 'curl http://localhost:8080/' 명령으로 테스트할 수 있다.
기술적 제약과 프로젝트 구조
현재 Webbol은 단일 스레드로 동작하여 한 번에 하나의 요청만 처리하며, SSL/TLS를 지원하지 않는다. 최대 파일 크기는 64KB로 제한되어 있고, 캐싱이나 압축 기능은 제공하지 않는다.
프로젝트는 웹 서버 메인 프로그램(webserver.cbl), HTTP 요청/응답 처리(http-handler.cbl), MIME 타입 감지(mime-types.cbl), 파일 작업(file-ops.cbl) 등 모듈화된 구조로 설계되었다. 이 프로젝트는 퍼블릭 도메인으로 공개되어 누구나 자유롭게 사용할 수 있다.
한국정보기술신문 정보통신분과 송유찬 기자 news@kitpa.org