핵심 요약
- 인터넷에서 리스프가 비실용적이라는 주장을 반박하고자 한 개발자가 JVM 기반 ABCL로 웹 앱 만들기에 도전했습니다.
- 프레임워크 호환성 문제 등을 겪으며 4일간의 고군분투와 ABCL 패치 제출 끝에 결국 작동에 성공했습니다.
- Jooby와 Netty, Pebble 템플릿을 조합해 자바 라이브러리를 연동하며 코드를 완성했습니다.
요약 인터넷에서 "커먼 리스프(Common Lisp)는 현대 웹 개발에서 실용적이지 않다"는 주장을 반박하기 위해 직접 검증에 나선 개발자의 후기가 개발자 커뮤니티에서 눈길을 끌었습니다. 글쓴이는 JVM 기반으로 돌아가는 Common Lisp 구현체인 ABCL(Armed Bear Common Lisp)을 활용해 실제 동작하는 웹 애플리케이션 구축을 시도했습니다. ABCL은 JVM의 거대한 라이브러리 생태계를 그대로 활용할 수 있어 이론적으로는 매우 강력한 도구로 평가받습니다.
하지만 실제 구현 과정은 험난했습니다. 마이크로넛(Micronaut)이나 저지(Jersey) 같은 프레임워크는 어노테이션 기반의 동적 검사(reflection)에 크게 의존해 타 언어 FFI 환경에서 다루기 까다로웠고, 스파크(Spark)는 웹소켓 종속성 문제가 발생했습니다. 결국 작성자는 주비(Jooby)와 네티(Netty) 조합을 선택하고 템플릿 엔진으로는 페블(Pebble)을 채택했습니다.
메이븐(Maven) 의존성 관리 도구인 abcl-asdf를 통해 자바 패키지를 로드하고, FFI 호출을 위해 JSS 구문을 적용하여 클래스를 초기화하고 라우트를 등록하는 작업을 진행했습니다. 결국 작성자는 4일간의 삽질과 ABCL 자체에 대한 패치까지 직접 제출한 끝에 마침내 리스프 코드로 동작하는 웹 서버를 완성해 냈습니다.
Sponsored · 광고