What I did at Recurse Center
Recurse Center에서 보낸 여름
프로그래밍 리트릿 Recurse Center에서 여름을 보낸 저자가 스터디 그룹, Rust로 구현한 DEFLATE 압축 해제기, 미니 언어 개발과 LLM 활용 프로젝트를 소개합니다. 정해진 성과보다 자율적인 학습과 협업을 중시하는 공간에서 무엇을 만들고 배웠는지 구체적으로 보여줍니다.
- 주제
AI 요약
저자는 친구의 추천으로 브루클린의 프로그래밍 리트릿 Recurse Center(RC)에서 여름을 보냈습니다. RC에서는 참가자가 스터디 그룹을 직접 꾸려 함께 배우고, 각자 관심을 둔 프로젝트를 진행합니다. 저자는 여러 그룹에 참여하면서 머신러닝부터 수학, 보드게임 AI, 프로그래밍 언어까지 다양한 주제를 다뤘습니다.
LLM과 머신러닝 스터디
Agentic Adventures에서는 매주 다른 방식으로 LLM과 에이전트를 살펴봤습니다. 에이전트가 위험한 권한으로 실행하는 바이브 코딩 작업을 위한 원격 샌드박스를 만들었고, Ollama와 Docker를 활용해 로컬 에이전트를 격리하는 방법도 배웠습니다. 에이전트들이 협력하는 방식은 보드게임 Just One으로 시험했습니다. minGPT로 셰익스피어풍 문장을 만드는 작은 모델을 학습하고, LoRA로 모델의 대화 방식을 조정하기도 했습니다.
Practical Deep Learning 그룹은 Jeremy Howard와 Sylvain Gugger의 책을 따라 고전적인 머신러닝부터 사전 학습 모델 활용, 신경망 구현까지 익혔습니다. 저자는 연구자가 되기보다 모델이 어떻게 작동하고 무엇을 만들 수 있는지 이해하는 수준을 원했고, 책이 실무자 관점의 직관을 쌓는 데 맞았다고 설명합니다.
수학, 게임 AI, 언어 구현
Math Monday에서는 모임 시간의 절반가량을 주제를 배우는 데 쓰고, 나머지는 짝을 지어 관련 프로그램을 만들었습니다. Project Euler 문제와 수학 퍼즐을 풀고 프랙탈과 생성 예술을 그렸습니다. Voronoi diagram을 활용한 게임을 만들고, Rocq 증명 보조기(proof assistant)로 불리언 항등식을 다루거나 펜 플로터로 그릴 Hilbert curve를 생성하는 프로그램도 작성했습니다.
또 다른 짧은 모임에서는 보드게임 Race for the Galaxy의 Keldon AI 코드를 분석했습니다. 코드를 살펴보니 사람이 직접 고른 특징을 사용하는 2층 신경망이었습니다. Claude는 신경망 가중치가 어떤 반응을 나타내는지 해석하는 데 도움이 됐습니다. 분석 과정에서 기본 게임에서는 경제 전략이 군사 전략보다 강하다는 점을 확인했고, 가중치가 큰 노드 상당수가 특정 카드의 존재와 연결된다는 점도 눈에 띄었습니다.
저자는 RC 지원 과정에서 만들었던 미니 언어 dodo도 마무리했습니다. 특히 match 구문을 구현하는 재귀 코드를 작성하는 일이 까다로웠습니다. 코드 자체는 LLM에 맡기지 않았지만, 명세와 테스트 사례, 예제 프로그램을 준비하는 데는 LLM이 유용했다고 합니다.
Rust로 DEFLATE 압축 해제기 구현
ZIP 파일 형식과 구현체 사이의 불일치를 다룬 발표를 듣고, 저자는 Kevan과 함께 ZIP에서 사용하는 DEFLATE 알고리즘의 압축 해제기를 Rust로 구현했습니다. 서로 다른 압축 해제기가 예외 상황을 다르게 처리하면 바이러스 검사기는 악성 파일을 놓치고 사용자는 감염된 파일을 열 수 있다는 보안 문제도 발표에서 다뤘습니다.
DEFLATE는 LZ77 방식의 역참조와 Huffman 부호화를 결합합니다. 반복되는 문자열을 이전 위치와 길이로 표현하고, 자주 나오는 바이트에는 짧은 비트열을, 드문 바이트에는 긴 비트열을 배정합니다. 두 사람은 명세를 읽으며 Rust로 압축 해제기를 작성했습니다. 저자는 Rust가 자신이 C에 바라던 언어에 가까웠지만, 수명 규칙을 모두 이해하지는 못했다고 말합니다. 비트 패킹의 개념적 어려움은 언어를 바꿔도 그대로였고, 디버깅할 때마다 예상 비트열을 적어 실제 결과와 비교해야 했습니다.
LLM으로 작은 프로젝트 만들기
저자는 RC에 오기 전부터 LLM을 익히고 싶었습니다. 리듬 게임을 만들 때는 LLM에게 시제품 열 가지를 만들게 한 뒤 마음에 드는 것을 골랐습니다. Amanda와는 학술 논문을 바탕으로 기후를 모델링하는 판타지 지도 생성기를 만들며 에이전트에 얼마나 큰 작업을 맡길 수 있는지 시험했습니다. 브라우저 게임에서 이용자가 자기 API 키나 WebLLM을 통한 GPU를 쓰도록 하는 구성 요소도 만들었습니다.
에이전트끼리 단어 힌트를 주는 Just One 게임에서는 모델들이 temperature를 1로 설정해도 비슷한 답을 자주 내놨습니다. 각 에이전트에게 스포츠나 히피 문화 같은 주제 기반 성격을 부여하자 답변을 달리하는 데 도움이 됐습니다. 반면 플레이어와 협상하는 외교 게임에서는 에이전트에게 원하는 것을 얻기 전까지 돕지 말라고 지시하자 캐릭터가 딱딱하고 적대적으로 변했습니다.
저자는 언어학처럼 익숙하지 않은 분야에도 바이브 코딩을 적용했습니다. PHOIBLE의 음운 자료를 활용해 인도네시아어와 페르시아어에서 발음이 비슷한 단어열을 찾으려 했지만 결과는 만족스럽지 못한 시에 그쳤습니다. 이후 여러 언어권에서 알아듣기 쉬운 국제 보조어를 만들기 위해 공통 음운 체계와 문법, 어휘를 구성했습니다. 문법은 자연어 문법 기술 설문과 피진·크리올 언어 자료를 참고했습니다. 어휘는 여러 언어 사전을 바탕으로 국제적으로 통용되는 단어를 빌리고, 나머지는 널리 알아볼 수 있는 정도와 언어 계열의 대표성을 함께 고려해 고르려 했습니다. 다만 어휘 선택 최적화는 제대로 작동하지 않아 발표용 예시 대본은 Claude가 그럴듯하게 보완했다고 밝혔습니다.
짝 프로그래밍과 RC의 생활
저자는 다른 참가자와 SAT solver로 스도쿠를 풀고, Game of Life와 Mastermind를 구현했습니다. Emacs Lisp 경험이 거의 없는 상태로 Magit 화면을 새로 만들려다 범위가 지나치게 커졌지만, Doom Emacs를 써보는 계기가 됐습니다. RC에서는 펜 플로터와 3D 프린터를 사용하고, 보드게임 모임과 바둑 수업도 열었습니다. 참가자들의 사진 스튜디오, 소음에 반응하는 장식, 영수증 프린터를 활용한 게임 같은 프로젝트도 소개합니다. 글은 RC를 마친 뒤 작성하는 짧은 회고문인 ‘return statement’로 끝납니다.
Hacker News 반응
- @rus20376 — 여기는 어른들을 위한 어린이집처럼 들립니다. 여기서 한 작업을 바탕으로 창업한 사례가 있나요? 발표할 만한 연구 결과는요? 두 번째는 기준이 꽤 낮은 편인데도, 그런 사례가 있다면 쉽게 찾기 어렵네요.
- @thomascountz — 왜 어린이집이 사업이나 새로운 발견으로 이어지는지 묻는지 이해가 안 됩니다. 어린이집은 호기심을 키우고 사회적으로 어울리는 환경에서 성장하도록 돕는 곳입니다. Recurse Center도 비슷합니다.
- @saulpw — 요점을 놓치셨습니다. 탐색과 활용이라는 축에서 RC는 거의 100% 탐색 쪽입니다. 배우는 것, 특히 가르침을 받지 않고 배우는 능력을 키우는 것이 목적입니다. 같은 일을 하려는 호기심 많고 의욕적인 사람들과 함께하는 공동체에 참여하는 것도 목적입니다.
- @blululu — 꽤 공격적인 질문에 솔직하게 답하자면, 어른들을 위한 어린이집이라는 표현은 Recurse Center와 거의 정반대입니다. RC는 대체로 구조가 없어서 참가자들이 흥미를 느끼는 일을 하고 스스로 계획을 세웁니다. RC보다 구조와 지도, 의무적인 시간 낭비가 더 많은 회사는 어디에나 있을 겁니다. 12주 동안 큰 연구를 수행하기는 어렵지만, RC는 스타트업 인큐베이터가 아닙니다. 자유롭게 배우고 탐색하는 곳입니다. RC에서 나온 회사도 몇 곳 있고 흥미로운 연구도 있습니다. Dan Luu의 키보드 입력 지연 연구, Raph Levien의 Xi 작업, Andrew Kelly의 Zig 작업이 바로 떠오릅니다. 학교는 교육받은 사람을 길러내는 곳입니다. RC는 언스쿨에 더 가깝습니다. 먼저 사람들의 학습과 사고를 돕는다는 기준으로 평가해야 합니다.
- @simonw — Greg Brockman은 2015년 여름 Recurse를 거쳤고, 그해 12월 OpenAI를 공동 창업했습니다.
- @jdelman — 이 글을 읽으니 몇 가지 감정이 들었습니다. 경력 중 여러 시점에 안식년을 보내며 RC에 가고 싶었습니다. 에이전트 코딩 세계에서 지난 1년을 보낸 지금은 코드를 직접 쓰는 일이 진부하고 시대에 뒤처진 것처럼 느껴집니다. 많은 사람이 이런 상실감을 말해왔으니 새로운 이야기는 아니지만, 2026년에 RC에 관한 글을 읽으니 앞으로는 코드를 손으로 직접 쓰지 않게 될 것 같다는 생각이 굳어졌습니다.
- @gwern — 에이전트들이 temperature를 1로 설정해도 같은 힌트를 자주 냈다는 대목이 있습니다. mode collapse는 davinci-002 이후 거의 모든 챗봇의 특징이며, 창작이나 게임 같은 작업에서 큰 과제입니다.
- @rtpg — match 구문을 구현하려고 까다로운 재귀 코드를 썼다는 대목이 눈에 들어왔습니다. 학교 다닐 때 《The Implementation of Functional Programming Languages》라는 책을 발견했습니다. 읽어보면 패턴 매칭을 비롯해 더 복잡해 보이는 함수형 프로그래밍 기능을 어떻게 구현하는지 어느 정도 명확해집니다. 1987년에 나온 책입니다. 문제에 맞는 관점과 추상화를 찾으면 많은 일이 쉬워진다는 점을 깨닫게 됩니다. 언어 구현에 관심이 있다면 훑어볼 만합니다. 모든 내용을 완벽히 이해하지 못해도 괜찮습니다.
- @eclectric — 늘 해보고 싶었습니다. 인도에서 원격으로 참가한 사람도 있나요?
원문: 개인 블로그 / 번역·요약: Trawling