몇 달 동안 손으로 코딩하는 중이에요
(miguelconner.substack.com)- AI 코딩 에이전트가 보편화된 시점에 오히려 LLM 없이 손으로 코딩하는 3개월 리트릿(Retreat)에 참여한 개발자의 기록
- Brooklyn의 Recurse Center에서 6주차를 보내며 LLM을 직접 처음부터 구축하고, Python 실력을 다지며 컴퓨터의 여러 추상화 계층에 대한 이해도 함께 강화 중
- 코딩 에이전트가 빠른 반복과 배포를 가능케 하지만, 직접 손으로 코드를 쓸 때는 원하는 것을 표현하는 동시에 코드베이스를 학습하는 두 가지 행위가 동시에 일어남
- Cal Newport가 말한 "글쓰기가 운동과 같다" 는 비유처럼, 코드를 짓는 정신적 노력이 기술의 핵심 요소라는 관점을 공유
- AI 도구의 활용력이 뛰어난 엔지니어일수록 깊은 지식을 갖추고 있다는 관찰을 바탕으로, AI 시대에도 기초 역량이 레버리지를 만든다는 점을 강조
LLM과 코딩 경험
- 지난 2년간 Barcelona의 Aily Labs에서 AI 에이전트를 구축해 옴
- 2024년 초 내부용 웹 검색 에이전트를 만들었으며, 이는 Anthropic의 "Building Effective AI Agents" 글보다 약 6개월, OpenAI의 DeepResearch보다 약 1년 앞섬
- Cursor 초기 사용자였고, LLM을 활용한 지식 그래프 구축에도 일찍 참여
- 매주 진행한 저널 클럽을 이끌며 오픈소스 LLM 구축 관련 논문 발표
- DeepSeek R1, Ai2의 Olmo 3, Meta의 Llama 3 페이퍼 등을 다룸
- 내부 모델 학습과 SOTA 폐쇄형 모델 기반 워크플로우 구축 사이의 트레이드오프를 이해하는 데 도움
- 2023년 처음 LLM을 사용한 이후 지속적으로 동작 원리와 응용에 관심을 가져옴
기술의 핵심 요소로서의 직접 코딩
- LLM을 공부하는 동시에 코딩에도 활용하며 깨달은 점
- "손으로" 코드를 쓸 때는 원하는 것을 작성하는 동시에 코드베이스를 학습하는 두 가지 일을 동시에 수행
- 코딩 에이전트 사용 시에는 프롬프트에 지정한 내용만 정확히 얻게 되며, 원하는 바가 불명확하면 에이전트가 많은 가정(assumption) 을 대신 내려줌
- 이 경우 학습이 줄고 코드베이스에 대한 이해도가 떨어짐
- 동시에 코딩 에이전트는 빠른 반복과 안정적 소프트웨어 배포를 가능케 하며, 훌륭한 튜터 역할도 수행
- Cal Newport의 NYT 칼럼 인용
- "당신의 글쓰기는 당신의 것이어야 한다. 명확한 메모나 보고서를 쓰는 데 필요한 긴장은 운동선수의 체육관 운동에 해당하는 정신적 작용이며, 제거해야 할 성가심이 아니라 기술의 핵심 요소"
- 이 비유가 코드 작성에도 동일하게 적용된다고 봄
- Aily에서 함께 일한 뛰어난 프로그래머들은 대체로 AI를 뛰어나게 활용하는 사람들이기도 했으며, 깊은 지식이 AI 도구에 대한 레버리지를 만들어줌
코드 리트릿이란 무엇인가
- Recurse Center(RC) 는 Brooklyn에 위치한 자기주도적, 풀타임 프로그래밍 리트릿(Retreat)
- Retreat : "일상에서 잠시 물러나 특정 활동에 집중하는 기간"
- 지원서와 코딩 인터뷰 후 참여, 6주 또는 12주간 프로그래밍에 몰두
- 다양한 전문성을 가진 코호트 기반 협업 환경이 특징이며, 수십 년 경력의 프로그래머도 다수 참여
- 무료로 운영됨
- Recurse Center에서의 목표
-
처음부터 LLM 학습
- 사전학습과 사후학습을 포함해, 미리 만들어진 코드베이스를 포크하는 대신 직접 Transformer를 작성하는 목표
-
Python을 손으로 더 잘 쓰기
- 몇 년간 Python으로 일했지만 여전히 배울 것이 많다고 느끼며, 문서 참조나 LLM 질문을 최소화하고 프로젝트 구성에 대한 직관을 키우고 싶은 목표
-
컴퓨터를 더 깊이 이해하기
- 컴퓨터가 여러 추상화 계층에서 동작하는 매우 복잡한 기계라는 인식
- 정규 Computer Science 교육을 받지 않았기 때문에, 계층들이 어떻게 함께 작동하는지에 대한 더 나은 정신 모델을 만들고 싶은 목표
- 구체적 계획은 많지 않지만 RC가 적합한 장소라는 판단
-
진행 상황
-
1. LLM을 처음부터 학습시키기
- Stanford의 CS336: Language Modeling from Scratch 과정 첫 번째 과제를 LLM 코딩 도움 없이 완료
- 50페이지 분량의 과제를 다른 Recurser와 함께 수행
- Python으로 최적화된 tokenizer를 작성하고, PyTorch로 업그레이드된 GPT-2 스타일 아키텍처 구현
- Tiny Stories 데이터셋으로 하이퍼파라미터 튜닝을 위한 ablation 다수 수행 후, OpenWebText의 약 90억 토큰에 적용
- 직접 작성한 17M 파라미터 모델의 learning rate 스윕 결과, 높은 learning rate는 불안정성 유발. A100에서 약 1시간 학습
- 이후 계획
- CS336의 나머지 과제 수행: 언어 모델 최적화, scaling law 추정/계산, 원시 텍스트의 사전학습 데이터 변환, 모델 post-training
- 두 번째 과제인 GPU 프로파일링과 Triton에서 FlashAttention2 구현을 이미 시작
- 최종적으로 직접 post-training한 모델 확보 목표
- Stanford의 CS336: Language Modeling from Scratch 과정 첫 번째 과제를 LLM 코딩 도움 없이 완료
-
2. Python 실력 향상
- Python과 PyTorch로 작은 에이전트와 신경망을 다수 작성하며 연습
- 가장 도움이 된 것은 10년 이상 Python 경력자와의 페어 프로그래밍
- 한 페어 파트너는 문법이나 동작이 기억나지 않을 때 터미널을 바로 열어 간단한 예제를 입력해 1분 이내에 동작을 확인
- Google 검색이나 LLM 질의 없이 문제를 해결하는 이 근육 기억화된 프로세스가 막힘 해소에 크게 기여
- Advent of Code 같은 문제를 페어 프로그래밍으로 풀며 이 방향을 지속할 계획
- 실시간 협업이 초기에는 긴장되지만, 그로 인해 빠른 성장을 체감
-
3. 컴퓨터에 대한 이해 심화
- 1983년 Apple IIe 컴퓨터에서 BASIC으로 fizzbuzz 작성
- 수동적인 코드 편집 및 실행 과정을 직접 체험, 과거와 현재 컴퓨터의 차이와 유사성을 함께 인식
- CTF Fridays 참여로 Unix/터미널 실력 강화
- Bandit 등 "war games" 챌린지를 터미널로 풀며 패스워드 수집과 레벨업 수행
- 이제 Claude Code가 자기 컴퓨터에서 무엇을 실행하려는지 파악 가능
- Vim에서 단일 레이어 퍼셉트론을 손으로 코딩
- 초반에는 매우 지루했으나 다른 Recurser의 팁과 단축키 학습으로 개선
- 클라우드 GPU에서 학습 작업 중 막바지 파일 수정이 필요할 때 매우 유용
- Clojure 워크숍 참가 (15년 이상 경력자가 진행)
- 함수형 언어 경험이 적어 주제 자체가 흥미로웠음
- 짧은 소개 후 mob programming으로 진행, 참가자들이 돌아가며 1~2분씩 문제 해결에 기여
- 주간 5분 기술 발표 참여
- "Running Rust Code", "GPUs for Dummies", "Typesafe APIs for Type B Personalities", "Some Useless Agents"(본인 발표) 등 다양한 주제
- 본인은 지금까지 2회 발표(단순 에이전트 아키텍처, MCP 도구의 효율적 확장)했으며, 이번 주에는 GPU 최적화 방법에 대해 발표 예정
- 다른 참가자들의 프로젝트와 커리어를 듣는 것만으로도 컴퓨터가 해결 가능한 문제 영역에 대한 이해가 넓어짐
- 1983년 Apple IIe 컴퓨터에서 BASIC으로 fizzbuzz 작성
남은 6주
- 리트릿 이후에는 새로운 기술과 스킬을 가지고 에이전트 프로덕션 배포 및 eval 실행 작업으로 복귀 예정
- 남은 6주로는 리스트의 모든 항목을 끝내기 어렵다는 우려
- 그러나 RC의 진정한 가치는 모든 항목을 완수하는 것이 아니라 코딩에 시간을 쏟는 것 자체에 있음
댓글과 토론
일을 위한 코드는 AI 에이전트에게, 최대한 루프 길게 가져가게 전부 맡겨버리고
취미용 개인 프로젝트는 AI 어시스턴트, AI 자동완성도 사용하지 않고 직접 개발합니다 (...)
AI 를 위해서 vim 을 버리고 vscode 로 갈아탔는데,
개발할때의 기쁨을 잃어버린 느낌이 들어서 vim으로 돌아왔습니다.
ai 는 assistant 로서 쓰고 있는데 확실히 개발의 기쁨을 되찾은 것 같아요.
Hacker News 의견들
-
나는 이번 학기에 18세 학생들에게 에뮬레이트한 Apple II Plus로 6502 어셈블리를 가르치고 있음
학생들은 이미 현대적인 환경에서 Python, 자료구조, 객체지향을 배운 상태였음
총 10시간 정도 수업과 실습으로 레지스터, 명령어, 주소 지정 방식, 메모리 맵, Apple 모니터 루틴을 익힌 뒤 40x40 저해상도 그래픽으로 그림 프로그램, 튕기는 공, 직접 만든 스프라이트와 간단한 충돌 판정까지 같이 구현했음
과제로는 Snake나 Tetris 같은 간단한 게임을 직접 만들고 시연한 뒤, 동작 방식을 발표하게 했음
처음엔 라인 에디터를 싫어했지만, 곧 코드를 쓰기 전에 먼저 계획하고 토론하기 시작했음
예전 수업에서 늘 강조했지만 잘 안 되던 습관이, 강한 도구가 없으니 오히려 자연스럽게 자리 잡았음
나중에는 화면에 코드를 다 띄워보지 않아도 머릿속에 코드가 들어 있다고 학생들이 말했음
결국 다시 현대적 도구로 돌아가겠지만, 이런 경험은 분명 큰 의미가 있다고 느낌- 내가 코딩을 가르치며 느낀 점은 Python이 첫 언어로는 애매함이라는 점이었음
가장 큰 이유는 타입을 항상 의식해야 하는데, Python은 그 부분을 오히려 흐리게 만들기도 함
공백도 어떤 때는 필수이고 어떤 때는 아닌데, 익숙한 사람에겐 숨 쉬듯 자연스러워도 초보자에겐 헷갈릴 수 있음 - 나도 9년 전에 거의 비슷한 수업을 들었는데, CS 학위 과정에서 가장 도움 된 경험 중 하나였음
저수준 환경과 제한된 도구 덕분에 코드를 쓰기 전에 먼저 생각하는 습관이 생겼음
나는 지금도 그린필드 작업에선 펜과 모눈종이부터 꺼내서 함수나 클래스 후보를 느슨한 그래프로 그리고 화살표로 연결해봄
물론 이걸 과하게 밀어붙이면 워터폴 계획의 다른 형태가 되니 적당함이 중요함
몇 시간만 미리 구조를 고민해도 실제 코딩 시간은 크게 줄어든다고 느낌
실제 결과물이 종이 설계와 똑같았던 적은 거의 없지만, 큰 그림을 먼저 생각하는 과정 자체가 생산성을 높여줌
에디터 안에서 스캐폴딩하면 금세 실제 구현으로 빠지는데, 종이에 쓰면 어차피 다시 타이핑해야 하니 변수명이나 메서드 선택 같은 잡생각에서 벗어날 수 있었음
몇 번 vibe coding을 할 때도 이 방식이 특히 유용했고, 덕분에 훨씬 더 구체적이고 집중된 프롬프트를 줄 수 있었음 - 처음에는 왜 굳이 라인 에디터를 쓰게 하나, 분명 문법 하이라이팅 되는 VS Code 플러그인이 있을 텐데 싶었음
그런데 학생들 머릿속에 코드가 자리 잡았다는 대목에서 생각이 바뀌었음
Zed Shaw도 비슷하게, IDE 없이 쓴 코드가 이상하게 더 좋아 보인다고 말한 적이 떠올랐음
비슷한 맥락으로 나는 "From Nand to Tetris" 같은 책으로 공부했는데, 컴퓨터와 어셈블러, 컴파일러가 어떻게 돌아가는지 이해하는 데 정말 큰 도움이 되었음 - 내 초반 엔지니어 시절 가장 인상적이었던 경험 중 하나는 아주 시니어한 엔지니어와 함께 일한 일이었음
그분은 문제를 받으면 곧바로 타이핑하지 않고 먼저 생각하고, 종이에 조금 끄적이고, 산책까지 한 다음에야 컴퓨터 앞에 앉았음
그리고는 거의 한 번에 입력해서 마지막에 컴파일만 했는데, 실제로 잘 돌아가곤 했음
오타조차 드물었음
이 경험 덕분에 문제 공간과 프로그램을 머릿속에 먼저 세우고 추론하는 능력이 얼마나 중요한지 강하게 느꼈음
그러면 기대하는 결과가 더 분명해지고, 예상 밖의 일이 생겼을 때도 더 빨리 눈치챌 수 있음 - 나는 학부 과정에 어셈블리 언어 수업을 넣으려 할 때마다 늘 힘든 싸움을 했음
윗선에서는 너무 어렵다, 이제 아무도 안 쓴다며 과목을 없애곤 했음
그래도 시스템 프로그래밍, 컴퓨터 언어, 컴퓨터 구조 같은 다른 수업 안에 몰래 조금씩 끼워 넣었음
내가 자라던 시절에는 어셈블리가 교육 과정의 일부였고, C/C++ 같은 고급 언어와 하드웨어 사이의 간극을 메워주는 역할을 했음
왜 특정 언어 기능이 존재하는지, 많은 언어 구성 요소가 실제로 어떻게 작동하는지도 이해하게 해줬음
무엇보다 위 댓글들처럼 CPU를 한 줄 한 줄 따라가며 사고하는 훈련이 된다는 점이 정말 훌륭했음
정식 과목은 자주 졌지만, 적어도 학생들 안에 씨앗은 심어뒀기를 바라고 있음
누구나 적어도 한 번쯤은 한 종류의 어셈블리를 배워볼 가치가 있다고 믿음
- 내가 코딩을 가르치며 느낀 점은 Python이 첫 언어로는 애매함이라는 점이었음
-
나는 AI 자동완성 워크플로에 더 많은 투자가 있었으면 좋겠다고 느낌
그게 꽤 괜찮은 중간 지점이었음
지금 이른바 옛 방식이라고 불리는 것도, 더 넓게 보면 에이전트식 워크플로와 비교해 여전히 충분히 경쟁력이 있다고 봄
직접 치면서 코드베이스 지식을 훨씬 더 잘 유지하게 되고, 능동적으로 떠올리고 검증하는 과정 덕분에 개념 이해도도 더 깊어짐- 나는 요즘 에이전트 워크플로를 뒤집어서 쓰는 걸 꽤 즐기고 있음
코드는 내가 직접 쓰고, 에이전트에게는 코드 리뷰를 맡김
그러면 내 코딩 감각과 코드베이스 이해는 유지되면서, 커밋 전에 버그도 잘 잡아줌 - 나도 완전히 같은 느낌이었음
초창기 Cursor는 정말 놀라웠는데, 그 뒤로는 자동완성이 거의 정체된 느낌이었고 최신 Cursor마저 다른 도구들처럼 점점 에이전트 쪽으로 기울고 있음
언젠가 diffusion 모델이 더 탄력을 받으면 자동완성 근처의 워크플로에 다시 생기가 돌 수도 있다고 기대함
Inception Labs의 Mercury 모델은 응답이 거의 즉각적이라 아직도 약간 마법처럼 느껴짐
다만 Cursor 수준의 정교함과 깊은 에디터 통합이 아직 부족한 점이 아쉬움
그리고 diffusion 계열은 로컬 사용에 정말 잘 맞아 보이는데, 의미 있는 오픈 웨이트 모델이 거의 없는 점도 아쉽게 느껴짐 - 내 경험도 비슷했음
내가 직접 지루한 글루 코드를 쓰면 프로젝트의 지도가 머릿속에 생김
반대로 에이전트가 구조를 너무 많이 만들어버리면 당장은 돌아가도, 일주일 뒤 작은 수정 하나 하려 할 때마다 어디에 뭘 넣어놨는지부터 찾게 됨 - 나는 AI 자동완성은 별로였다고 느낌
다들 금방 다른 쪽으로 넘어간 이유가 있었고, 결국 유용한 인터페이스가 아니었다고 봄 - 수동 코딩의 논리는 이해하지만, 내겐 그게 비행기 대신 차로 대륙을 횡단하는 느낌임
한 번 비행기를 타보고 나면 다시 돌아가기가 정말 어려워짐
- 나는 요즘 에이전트 워크플로를 뒤집어서 쓰는 걸 꽤 즐기고 있음
-
이 제목은 여기서 본 것 중 가장 우울한 제목 중 하나로 느껴졌음
- 이 댓글이 정반대로도 읽히는 점이 재밌었음
손코딩이 이제 블로그에 쓸 만큼 낯선 일이 되어서 우울하다는 뜻일 수도 있고, 반대로 AI 최대주의자가 인간 코딩을 비꼬는 뜻일 수도 있음
글 이력을 보니 아마 전자 해석이 맞아 보였음 - 이제 Python을 직접 쓴다는 말이 곧 LLM 없이 쓴다는 뜻이 된 셈인가 싶었음
마치 한때 유행어가 된 wild swimming처럼, 뭔가 너무 멀리 와버린 느낌임
정말 상어를 뛰어넘은 상황처럼 보였음 - 원래 Hacker News는 자기 생각을 나누고 다른 사람과 토론하는 곳이라고 생각했는데, 이런 식의 반응을 보니 Facebook 댓글창 같아진 느낌도 들었음
그래도 참 인상적인 기여였다고 느꼈음 - 나도 처음엔 농담인 줄 확인하러 들어갔음
보고 나니 정말 어이없음 - 이건 시작에 불과하다고 느낌
곧 손코딩 얘기했다는 이유로 정신병원에 보내는 세상도 농담처럼 상상하게 됨
- 이 댓글이 정반대로도 읽히는 점이 재밌었음
-
내 커리어 초반 몇 년은 SPARC 기반 Solaris에서 vi로, 그것도 vim도 아닌 vi로 주로 Perl 코드를 쓰며 보냈음
O’Reilly의 Perl Cookbook이 거의 유일한 길잡이였고, 인터넷 포럼도 많지 않았으며 검색 엔진도 원시적이라 막히면 도움받기가 훨씬 어려웠음
대신 그 환경이 Perl 문법, 터미널 도구, 특히 vi 키스트로크를 아주 깊게 익히게 만들었음
문법 하이라이팅이나 인텔리센스도 없었고, 그래서 오히려 더 많이 몸에 남았음
지금 돌아보면 그때는 방해 요소와 잡음이 훨씬 적었음
물론 커리어 초반이라 기대치가 낮아서 그렇게 느끼는 면도 있겠지만, 지금은 모든 게 지나치게 층층이 쌓이고 복잡해졌다고 느낌- 내 경우 시작점은 GW-BASIC이었고, 지금 우리가 아는 의미의 에디터도 거의 없었음
그건 즉각적인 보상과 빠른 개발, 불필요한 레이어가 없는 꽤 순수한 경험이었고, 바로 그 점이 나를 이 길로 끌어들였음
아이러니하게도 agentic coding은 그때의 설렘을 일부 되돌려줬음
복잡한 엔터프라이즈 고려사항을 내가 직접 다 씨름하지 않아도 되니, 생각과 결과 사이의 연결이 다시 가까워졌기 때문임
- 내 경우 시작점은 GW-BASIC이었고, 지금 우리가 아는 의미의 에디터도 거의 없었음
-
업계 변화가 정말 놀랍다고 느낌
불과 2년 전만 해도 거의 모든 개발자가 할 법한 말이었는데, 이제는 손으로 코딩한다고 말하는 사람이 멸종위기종처럼 보일 정도임- 나는 특히 근육 기억이 사라지는 게 걱정됨
지난 1년 동안 다뤄온 새로운 기술과 언어일수록, 이제는 너무 쉽게 결과를 내다 보니 오히려 내 안에 지식 부채를 쌓고 있다는 느낌이 있음
다음 세대 소프트웨어 엔지니어가 이런 것들에 대한 깊은 이해를 과연 어떻게 익힐지, 아니면 아예 못 익히게 될지 많이 우려됨 - 내게는 2년 전의 손으로 쓰기가 지금의 LLM 없는 코딩처럼 느껴짐
그전 세대로 비유하면 IDE 없이 코딩하는 것과 비슷했고, 실제로 그런 방식도 이미 드문 편이었음
- 나는 특히 근육 기억이 사라지는 게 걱정됨
-
나는 AI 전반, 특히 GenAI를 꽤 지지하는 편이지만 여전히 손으로 코딩하는 시간도 많이 씀
많아야 Copilot 보조를 켜두는 정도임
때로는 SpecKit + OpenCode 같은 도구로 spec-driven development를 하거나, 그냥 vibe code를 하기도 함
그래도 코드를 이해해야 할 내 책임을 내려놓고, 직접 작성하는 능력 자체를 버릴 생각은 아직 없음
그래서 최근에도 LISP와 Java 책을 몇 권 새로 샀고, 그 전에는 Forth 책도 샀음
적어도 한동안은, 어쩌면 영원히 완전히 코딩을 그만둘 생각은 없음- 내 책임은 코드를 직접 한 줄씩 확인하는 데 있다기보다, 코드가 기능 요구사항과 비기능 요구사항을 만족하는지 보장하는 데 있다고 봄
핵심은 구현이 아니라 행동 이해임
그 검증은 자동화된 단위 테스트, 통합 테스트, 부하 테스트가 해줌
누군가는 내가 내부용 웹 관리자 사이트를 vibe coded로 만들고도 코드 한 줄 안 보고 보안 요구사항을 만족한다고 말한 걸 순진하다고 봤음
하지만 요구사항은 사이트 접근 권한이 있는 사람은 무엇이든 할 수 있어야 한다는 것이었고, 접근은 Amazon Cognito 자격 증명으로 보호했고, 이를 제공하는 Lambda에는 최소 권한 역할을 붙였음
만약 그 두 불변식이 깨졌다면, 그건 Claude가 거대한 AWS 취약점을 찾아낸 수준일 것이라고 봄
- 내 책임은 코드를 직접 한 줄씩 확인하는 데 있다기보다, 코드가 기능 요구사항과 비기능 요구사항을 만족하는지 보장하는 데 있다고 봄
-
나는 AI를 최대한 활용해 많은 것을 만들되, 동시에 AI가 만든 코드가 내 인지 부하 기준을 통과하는지 검토하는 시간을 꼭 씀
그 과정에는 코드 다듬기와 문서화도 포함되고, 이 AGENTS.md 예시를 바탕으로 많은 부분을 수월하게 처리하고 있음
그래도 이상한 방향으로 가는 순간은 감지할 수 있어서 그때는 다시 내가 방향을 잡음
그리고 크레딧이 다 떨어지면 그때가 진짜 내 차례임
이미 코드가 잘 정리돼 있고 추상화도 말이 되며 주석도 도움이 되니, 그 위에서 유기적인 인간 코딩을 이어가기가 좋음
이제는 한도에 가까워질수록 AI에게 무대를 미리 세팅해두라고 요청함
예전엔 크레딧이 떨어지면 이해하려면 공부가 필요한 코드를 남겨둬서 답답했는데, 지금은 오히려 다음 brain time hand-out이 기다려질 정도임
이상하게 들릴 수 있지만, 내겐 이것도 일종의 팀워크처럼 느껴짐
더 비싼 요금제를 쓸 수도 있지만, 나는 내 뇌를 계속 활동하게 두고 싶음- 인용한 원칙 중 DRY를 남용하지 말라는 부분이 흥미로웠음
원칙 자체에는 동의하지만, 적어도 Claude는 로직을 너무 자주 복제해서 오히려 반대 방향의 유도가 필요하다고 느꼈음 - 나는 그걸 팀워크라고 느끼기가 어려움
LLM이 나 대신 코드를 쓰면, 그 코드는 내게 거의 손댈 수 없는 블랙박스처럼 보임
돌아가면 쓰긴 하지만 신뢰하지는 못하고, 망가지면 그냥 답답해짐
결국 나에게 맞는 방식은 내가 항상 운전대를 잡고, LLM은 질문에 답하거나 아이디어를 같이 브레인스토밍해주고, 내가 이미 이해한 개념을 특정 언어의 문법으로 표현하는 걸 도와주는 조수 역할임
사실 나는 개념 이해보다도 그걸 문법으로 옮기는 일이 늘 조금 버거웠음 - 공유해줘서 고맙게 느꼈음
나도 에이전트에게 일부를 맡기되 일부 작업은 의도적으로 내 몫으로 남겨서 뇌를 계속 쓰게 하는 방식에 대해 생각해왔음
어쩌면 Claude Code용 skill이나 hook을 만들어봐야겠다는 생각이 듦
- 인용한 원칙 중 DRY를 남용하지 말라는 부분이 흥미로웠음
-
3개월 동안 자기주도적으로 깊게 배우는 여정을 보낼 수 있다는 건 정말 멋진 일처럼 느껴짐
이런 깊은 기술은 장기적으로도 가치가 있을 것 같고, 이번 변화가 어셈블리에서 C로 넘어간 것과 완전히 같은 종류의 추상화인지는 아직 확신이 없음
요즘 내 코드 대부분은 LLM이 생성하는데, 하루가 끝났을 때 즐거움이나 성취감, 만족감은 솔직히 별로 없음
다만 동시에 내가 원래 코딩에서 진짜 즐기는 부분은 5~10% 정도뿐이고, 나머지는 흥미로운 핵심을 떠받치는 지루하고 반기계적인 작업이었다는 것도 깨닫게 됐음
인류 역사 전체로 보면 컴퓨터로 일하는 시기 자체가 아주 짧은 순간이고, 100년 뒤에는 손코딩의 시대가 어떻게 보일지 궁금함
어쩌면 그저 각주로 남거나, 기계가 스스로 자동화되기 이전의 모든 시절로 한데 묶일지도 모르겠음- 지금 변화는 과거의 어셈블리에서 컴파일 언어로의 전환과 비슷할 수도 있다고 봄
예전엔 직접 어셈블리로 작성했지만 이후 C 같은 컴파일 언어로 이동했고, 어셈블리는 유용하지만 틈새적인 기술로 남았음
이제는 코드를 컴파일러에 맡기고 대부분은 그 내부 출력을 보지 않듯, 앞으로는 개발 다수가 LLM 추상화 계층으로 옮겨갈 수도 있다고 느낌
핵심 역량도 좋은 프롬프트 작성, 컨텍스트 윈도 관리, 에이전트와 메모리 운영 같은 쪽으로 이동할 수 있음
일부 개발자는 여전히 LLM이 만든 코드를 읽고 문제를 찾아낼 수 있겠지만, 대부분은 그러지 못할 수도 있음
나도 감정이 복잡함
ChatGPT 등장 이후 몇 달 전까지만 해도 LLM 프로그래밍에 꽤 회의적이었고, 새 모델이 나와도 결국 비슷한 품질 낮은 출력의 변주처럼 느껴졌음
그런데 최근에는 모델들이 어떤 임계점을 넘은 듯 보였고, 나도 Claude를 아직 조심스럽게 쓰긴 하지만 기능 구현 속도를 크게 줄이거나 로그만 보고 버그 위치를 찾는 데 실제로 도움을 받았음
아직 코딩이 해결됐다는 식의 과장에는 동의하지 않지만, 적어도 고급 언어 도입 이후 가장 큰 변화 중 하나를 보고 있다는 생각은 듦
- 지금 변화는 과거의 어셈블리에서 컴파일 언어로의 전환과 비슷할 수도 있다고 봄
-
나는 반쯤 타협안으로 Zed를 쓰기 시작했음
앞으로는 AI를 구현 자체보다 계획과 단계 제안 쪽에 더 써볼 생각임
요즘은 비기술 직군 사람들도 Claude로 앱을 만들기 시작하는 모습이 보이고, Openclaw를 비롯한 에이전트 집착 흐름을 보면 AI 과몰입의 길을 계속 가는 게 실용적이진 않다고 느낌
나는 삶의 다른 영역에서 늘 내부 디테일까지 신경 쓰고, 새로운 문제에 직접 손을 더럽히며 해결하는 능력으로 평가받아왔음
시장이 앞으로 어떻게 적응할지, 그리고 사람들이 이런 뉘앙스를 다루는 능력을 어떻게 전달하고 증명하게 될지 궁금함 -
Recurse Center 사이트에서 “교사나 정해진 커리큘럼이 없고, 리트릿 동안 풀타임 헌신만 요구된다”는 문구를 보고 궁금해졌음
풀타임으로 일하는 사람이 이런 코딩 리트릿에 보통 어떻게 참여하는지 알고 싶었음
주로 업계 입문자나 이직 사이 공백기에 있는 사람을 위한 프로그램인지도 궁금했음
글 자체는 리트릿에서 무엇을 만들었는지에 대한 이야기였지만, 오히려 나는 직접 가보고 싶어졌음- 나는 Recurse Center 공동창업자로서 답하자면, 대부분은 직장 사이 공백기에 참여함
RC를 위해 일부러 퇴사하거나, 실직 후 지원하는 경우가 흔함
정식 안식년, garden leave, 대학생과 대학원생의 여름방학 기간을 활용하는 경우도 많음
프리랜서나 독립 계약자, 은퇴자도 적지 않게 옴
업계 진입을 위해 오는 사람도 있지만, 참가자 다수는 이미 프로그래머로 일한 경험이 있음
참가 연령은 12세부터 70대 초반까지 다양하지만, 주된 분포는 20대부터 40대까지임 - 맞음, 대체로는 이직 사이 시기에 많이 감
자세한 참가자 정보는 Recurse Center 소개 페이지에서 볼 수 있음
아니면 현재 직장으로 복귀할 수 있는 6주 정도의 안식년을 낼 수 있어야 현실적임
- 나는 Recurse Center 공동창업자로서 답하자면, 대부분은 직장 사이 공백기에 참여함