대규모 언어모델(LLM)의 등장으로 개발 속도가 급격히 빨라지면서, 이제 소프트웨어 개발의 핵심 병목은 코드를 작성하는 것에서 '작성된 코드가 제대로 작동하는지 확인하는 과정', 즉 피드백 루프의 효율성으로 이동하고 있습니다. 기존에는 사람이 코드를 작성하는 시간이 길었기에 컴파일이나 재시작 대기 시간의 중요성이 상대적으로 낮았지만, LLM이 순식간에 코드를 생성하면서 이제는 이 피드백 루프의 길이가 전체 개발 속도를 좌우하게 된 것입니다.
이러한 변화 속에서 Common Lisp이 새로운 강자로 떠오르고 있습니다. Common Lisp은 프로그램을 메모리 내의 '실행 중인 이미지'로 유지하기 때문에, 새로운 함수를 추가하거나 기존 함수를 수정해도 프로그램을 재빌드하거나 재시작할 필요 없이 즉시 반영됩니다. 이는 개발자가 코드 변경 후 결과를 확인하기 위해 기다려야 하는 시간을 획기적으로 줄여줍니다. 또한, 오류 발생 시 프로그램이 종료되지 않고 디버거를 통해 전체 스택과 변수에 접근하여 수정 후 실행을 재개할 수 있는 기능은 LLM이 충돌 로그를 분석하고 코드를 수정한 뒤 다시 처음부터 프로그램을 실행해야 하는 비효율적인 과정을 크게 단축시킬 수 있습니다. Common Lisp의 '코드와 데이터가 같은 리스트(List) 구조'라는 특징과 '매크로(Macro)'를 통한 언어 확장성도 주목할 만합니다. 매크로는 반복되는 패턴을 추상화하여 언어 자체에 새로운 구문을 추가할 수 있게 하며, 이를 통해 특정 문제 영역에 최적화된 도메인 언어(DSL)를 구축할 수 있습니다. 이는 LLM이 제품의 설계 원칙을 유지하면서 사용자별 맞춤 변경을 수행하도록 돕는 기반이 될 수 있습니다. 또한, 매크로를 활용한 간결한 코드는 LLM의 토큰 비용을 절감하고 더 많은 코드를 컨텍스트 윈도(Context Window)에 담아 LLM이 전체적인 의도를 파악하고 더 나은 결정을 내리도록 돕습니다.
물론 Common Lisp이 작은 라이브러리 생태계와 개발자 채용의 어려움 같은 단점을 가지고 있지만, LLM 시대에는 이러한 단점들이 상쇄될 수 있다는 주장도 나옵니다. LLM이 필요한 라이브러리 기능을 직접 구현하거나 다른 언어의 라이브러리를 이식하는 데 활용될 수 있으며, 개발자 채용 시에도 Common Lisp 숙련도보다는 새로운 기술을 빠르게 학습하는 능력을 중점적으로 평가하는 방식으로 대응할 수 있다는 것입니다. 이러한 Common Lisp의 특성들은 LLM과 시너지를 내어 개발 생산성을 극대화하고, 특히 기업용 자원 관리 시스템(ERP)처럼 사용자 맞춤형 변경이 잦은 소프트웨어 개발에 새로운 가능성을 제시할 수 있습니다. LLM 시대에 개발자들이 직면한 새로운 병목 현상을 해결할 대안으로서 Common Lisp의 재조명은 앞으로의 소프트웨어 개발 패러다임에 중요한 시사점을 던지고 있습니다.