브루클린에 있는 리커스 센터(Recurse Center, RC)는 정해진 커리큘럼도, 강사도, 학위도 없는 프로그래밍 리트리트다. 참가자들이 스스로 스터디를 만들고 일정을 잡으며, 서로의 프로젝트를 구경하고 함께 문제를 푼다. 한 참가자가 여름을 보내며 남긴 회고는 이 자율적 학습 공간이 실제로 어떻게 돌아가는지, 그리고 LLM이 일상 도구가 된 시점에 개발자가 무엇을 붙들고 배우는지를 구체적인 사례로 보여준다. 매주 금요일 옛 Advent of Code 문제를 함께 풀고, 딥러닝 책을 같이 읽고, 보드게임 AI 코드를 뜯어보는 식의 스터디가 누구의 제안으로든 열린다는 점이 핵심이다.
기초를 다시 손으로 구현하는 일
이 회고에서 가장 눈에 띄는 대목은 최신 도구가 넘쳐나는 시대에 오히려 밑바닥 원리를 손으로 다시 구현했다는 것이다. 저자는 ZIP 파일 포맷을 다룬 발표에서 압축 알고리즘 DEFLATE에 흥미를 느껴 동료와 함께 이를 러스트(Rust)로 재구현했다. DEFLATE는 반복 구간을 '몇 바이트 뒤로 가서 몇 바이트를 복사하라'는 역참조로 바꾸는 LZ77과, 자주 나오는 바이트에 짧은 비트열을 배정하는 허프만 코드를 합친 방식이다. 스펙만 보고 디컴프레서를 구현하는 과정에서 비트 패킹의 개념적 어려움은 도구로 사라지지 않았고, 예상 비트열을 손으로 적어 실제 출력과 대조하며 디버깅해야 했다. 러스트가 'C가 이랬으면'하고 바라던 언어처럼 느껴졌다는 소감도 함께 남겼다.
흥미로운 지점은 같은 발표에서 언급된 보안 함의다. 바이러스 검사기가 쓰는 압축 해제기와 사용자가 쓰는 해제기가 엣지 케이스를 조금 다르게 처리하면, 검사기가 악성코드를 풀어보지 못해 무해한 파일로 오인할 수 있다. 포맷 구현체 사이의 미세한 불일치가 실제 취약점이 된다는 이야기는, 표준을 다루는 실무자에게 낯설지 않은 교훈이다.
LLM을 코드 작성자가 아니라 협력자로
저자가 LLM을 다루는 방식은 참고할 만하다. RC 지원 과정에서 만든 미니 언어 '도도(dodo)'를 마무리하며 가장 까다로운 match 문의 재귀 구현을 직접 작성했는데, 코드는 한 줄도 LLM에 맡기지 않는 대신 스펙 정리와 테스트 케이스, 예제 프로그램 작성에는 적극 활용했다. 결과물을 온라인 REPL로 손쉽게 공유한 것도 LLM의 몫이었다. 반면 리듬 게임을 만들 때는 프로토타입 열 개를 뽑아 그중 마음에 드는 것을 고르는 식으로 LLM의 생성 능력을 전면에 세웠다. 어디까지 맡기고 어디를 붙드는지가 작업의 성격에 따라 갈린다는 점을 보여준다.
에이전트를 게임 메커니즘 자체로 넣는 실험에서는 프롬프트 설계의 현실적 한계가 드러났다. 같은 단어에 서로 다른 힌트를 내야 하는 협력 게임 'Just One'에서 여러 에이전트가 온도 1에서도 놀랄 만큼 자주 같은 힌트를 냈고, 저자는 각 에이전트에 '스포츠'나 '히피' 같은 주제를 성격처럼 부여해 다양성을 확보했다. 반대로 플레이어가 원하는 것을 줄 때까지 돕지 말라고 지시한 외교 게임에서는 캐릭터가 뻣뻣하고 시비조로만 굴었다. 프롬프트 몇 줄로 자연스러운 상호작용을 만들기가 생각보다 어렵다는 실패담이다.
익숙하지 않은 영역으로 확장하기
여름 후반부에는 자신의 기존 역량 밖의 질문으로 도구를 밀어붙였다. 두 언어에서 발음이 같거나 비슷한 단어 시퀀스를 찾는 트리 탐색을 만들어봤고(인도네시아어와 페르시아어를 골랐지만 결과는 '평범한 시 한 편'에 그쳤다), 이어 PHOIBLE의 음소 데이터와 APiCS의 피진·크리올 문법 자료를 근거로 새 인공어를 설계하는 데까지 나아갔다. 서로 다른 문법 체계에 익숙한 사람들이 협업하며 실제로 수렴한 형태를 참고하니 자연스럽게 중국어나 베트남어처럼 어형 변화 대신 기능어를 쓰는 분석적 언어에 가까워졌다는 관찰이 인상적이다. 공용 데이터셋과 학술 자료를 LLM 워크플로에 엮어 비전문 영역의 질문에 접근하는 방식의 한 예다.
한국의 실무자에게 이 회고가 주는 함의는 두 가지다. 하나는 페어링과 체크인 같은 가벼운 사회적 장치가 자기주도 학습을 지탱한다는 점이다. 저자는 스스로를 RC 기준으로도 내향적이라고 하면서도 수도쿠를 SAT 솔버로 풀고, 게임 오브 라이프와 마스터마인드를 함께 구현했으며, 매일의 체크인을 회고의 원천으로 삼았다. 다른 하나는 LLM을 만능 대체재가 아니라 스펙·테스트·프로토타이핑·공유를 가속하는 협력자로 자리매김할 때 실질적 성과가 나온다는 점이다. 다만 이 글은 한 개인의 리트리트 경험담일 뿐, 성과의 재현성이나 팀·제품 환경으로의 이식 가능성까지 보장하지는 않는다는 한계도 함께 읽어야 한다.