LLM과 함께, 코드도 이야기처럼 읽을 수 있을까?

by DD
3개월 전
조회수 20

리터러시 프로그래밍(Literate Programming)은 코드와 설명을 융합하여 코드베이스를 서술형으로 이해하도록 돕는 방식이다.

저자는 코딩 에이전트(Coding Agent)를 활용하여 Org Mode 기반의 리터러시 프로그래밍의 단점을 극복할 수 있다고 주장한다.

커뮤니티에서는 자연어의 모호성, 코드의 그래프 구조, 그리고 툴링의 부재를 리터러시 프로그래밍의 주요 문제점으로 지적한다.

일부 개발자들은 가벼운 형태의 리터러시 프로그래밍과 코드 자동 생성의 결합을 통해 생산성을 향상시킬 수 있다고 제안한다.

리터러시 프로그래밍(Literate Programming)의 부활 가능성

게시글의 저자는 코딩 에이전트(Coding Agent)를 활용하여 리터러시 프로그래밍의 단점을 극복하고, 코드베이스를 서술형으로 관리하는 새로운 접근 방식을 제시한다. 특히, Org Mode와 같은 마크업 언어를 사용하여 코드와 설명을 통합하고, LLM을 통해 코드의 자동 생성 및 문서화를 수행하는 방식을 제안한다. 이러한 접근 방식은 코드와 문서 간의 동기화 문제를 해결하고, 개발자가 코드의 의도를 쉽게 파악할 수 있도록 돕는다.

자연어의 모호성과 코드의 그래프 구조

댓글에서는 자연어의 모호성으로 인해 리터러시 프로그래밍이 어려울 수 있다는 점을 지적한다. 자연어(Natural Language)는 프로그래밍 언어에 비해 의미가 불분명하며, 문서가 코드와 동기화되지 않을 경우 오해를 불러일으킬 수 있다. 또한, 코드는 선형적인 내러티브(Narrative)가 아닌 그래프 구조로 구성되므로, 코드의 흐름을 따라가기 어렵다는 문제도 제기된다. 이러한 문제점들은 리터러시 프로그래밍의 실용성을 제한하는 요인으로 작용한다.

LLM 기반 코드 자동 생성의 한계

일부 개발자들은 LLM을 사용하여 코드를 자동 생성하는 방식에 대해 회의적인 시각을 보인다. LLM(Large Language Model)은 코드 번역에는 능숙하지만, 개발자의 의도를 정확하게 파악하여 코드를 생성하는 데는 한계가 있다. 특히, 여러 파일에 걸쳐 변경이 필요한 경우, LLM이 모든 부분을 정확하게 반영하기 어렵다는 점이 문제로 지적된다. 또한, LLM이 생성한 코드의 품질을 보장하기 어렵다는 점도 고려해야 한다.

가벼운 형태의 리터러시 프로그래밍(Literate Programming) 제안

다른 의견에서는 가벼운 형태의 리터러시 프로그래밍과 코드 자동 생성의 결합을 통해 생산성을 향상시킬 수 있다고 제안한다. API 표면(API Surface)이 작고, 컨벤션(Convention)을 중시하는 언어를 사용하면, LLM이 코드를 생성하기 용이하다는 것이다. 또한, 모듈 수준의 주석과 각 코드 블록에 대한 설명을 추가하여 코드의 가독성을 높이는 방법을 제시한다. 이러한 접근 방식은 코드의 유지보수성을 높이고, 개발자가 코드의 의도를 쉽게 파악할 수 있도록 돕는다.

We should revisit literate programming in the agent era