원문 캡처 · cphiri.dev
원문 캡처 · cphiri.dev

재미와 호기심을 위해 코드를 짜는 ‘취미 코딩’은 업무나 수익, 외부 요구에서 벗어나 프로그래밍 자체를 즐기는 방식이다. 거창한 결과물이나 사업성이 없어도 작은 실험을 이어가며 배울 수 있고, 재미가 사라지면 멈추는 것이 원칙이다.

취미 코딩이란

취미 코딩은 프로그래밍 자체에서 즐거움을 얻기 위한 코딩이다. 작동 원리가 궁금해 무언가를 만들거나, 새 언어가 어떤 느낌인지 알아보거나, 머릿속에만 있는 문제를 풀어보는 활동이 여기에 해당한다. 실제로 겪지 않는 문제를 해결하는 도구를 만들거나, 코드를 쓰며 스스로 웃게 되는 것도 마찬가지다.

부업이나 창업 가능성을 염두에 둔 프로젝트, 경력 개발을 위한 기술 연마, 튜토리얼을 그대로 따라 하는 일, 면접 코딩 문제를 반복해서 푸는 일, 다른 사람이 기대하는 것을 만드는 일과는 다르다. 핵심은 외부의 압박이 아니라 내적 동기다. 이런 활동은 내재적 동기를 되살려 번아웃을 막고, 부담이 적은 탐색을 통해 직관을 키우며, 장기적으로 프로그래밍에 대한 열정을 유지하는 데 도움이 될 수 있다. 예상하지 못한 발견과 배움으로 이어지기도 한다.

취미 코딩의 여러 방식

취미 코딩을 하는 방식은 다양하다. 라이브 탐험가는 스트리밍이나 블로그로 만드는 과정을 공개하며, 막다른 길과 버그, 다시 시작하는 과정도 보여준다. 커뮤니티는 꾸준히 이어갈 동력과 책임감을 주며, 프로젝트는 실용적인 도구부터 순수한 실험까지 폭넓다.

깊이 파고드는 유형은 작동 원리를 이해하는 데 몰두한다. 복잡한 시스템을 단순한 모형으로 직접 만들고, 결과물을 내는 것보다 배우는 일을 중시한다. 교육을 목적으로 여러 구현을 만들기도 한다. 창의적인 기술자는 코드를 예술적 매체로 활용한다. 생성 예술, 음악 합성, 상호작용형 설치 작품처럼 기술을 창작의 목적에 맞게 쓰며 다른 분야와 결합하기도 한다.

문제 해결형은 개인적으로 불편한 점을 코드로 해결한다. 사소하지만 거슬리는 일을 처리하는 도구를 만들고, 자신에게 잘 작동하는 ‘충분히 좋은’ 해법을 찾는다. 그렇게 만든 것이 뜻밖에 다른 사람에게도 유용할 수 있다. 언어 탐험가는 새 언어와 프로그래밍 방식을 꾸준히 시험하고, 같은 개념을 여러 언어로 구현해 본다. 낯설거나 실험적인 언어에 끌리며 코딩을 지적 호기심의 대상으로 삼는다.

이 유형들에는 공통점이 있다. 사업성을 입증하지 않아도 되고, 호기심만으로 만들 이유는 충분하다. 실패한 실험도 배움으로 남으므로 취미 코딩에는 투자 대비 수익률을 따지는 기준을 적용할 필요가 없다. 계획보다 에너지를 따라 프로젝트를 바꾸고, 흥미를 잃어 중단한 저장소가 여러 개 있어도 실패로 여기지 않는다. 지루함은 무엇에 관심이 있는지 알려주는 신호다.

결과만이 아니라 과정을 기록하는 것도 좋다. 과정을 설명하면 더 깊이 이해할 수 있고, 비슷한 관심사를 가진 사람들과 연결될 수 있다. 초보자의 마음으로 새로운 분야를 대하고 모르는 상태를 편하게 받아들이며, 완벽한 결과보다 배움을 우선한다. 결정을 내린 이유를 기록하고 완성도보다 진전을 중시하는 태도가 핵심이다.

나만의 실험 공간 만들기

실험 전용 폴더나 저장소를 마련하면 부담을 줄일 수 있다. 운영 환경을 고려하지 않아도 되므로 설정은 간단하게 하고, 지속적 통합·배포(CI/CD)에 대한 압박 없이 시작할 수 있다. 프로젝트를 빠르게 초기화하는 스크립트를 둘 수도 있으며, 버전 관리는 선택 사항이다.

시도해 볼 만한 방법으로는 새 기술을 2~4시간 탐색하는 주간 실험, 자주 쓰는 도구를 단순한 모형으로 직접 만드는 도전, 개인적인 불편을 해결하는 프로젝트, 만들면서 설명을 덧붙이는 교육 프로젝트가 있다. 같은 문제를 여러 언어로 푸는 방식도 가능하다. 생각의 기준을 “해야 한다”에서 “만약 이렇게 하면 어떨까”로 바꾸고, 생산성보다 호기심, 출시보다 배움을 앞세운다.

다양한 사례와 시작 과제

지카니 니렌다(Zikani Nyirenda)는 브라우저 자동화, 파일 정리 도구, Git 유틸리티처럼 무작위로 시작하지만 유용한 도구를 만든다. Go, Rust, Python, Vue, React를 오가며 “오늘 해결할 수 있는 작은 문제는 무엇일까?”라는 접근을 보여준다. 개인적인 불편을 코드로 해결하는 사례다. GitHub 저장소

제레미아 치엔다(Jeremiah Chienda)는 여러 아키텍처 패턴과 프레임워크를 탐색하고, 새 기술을 배우면서 실제 문제를 해결하는 도구를 만든다. 취미 코딩이 기술 스택 전반으로 확장될 수 있음을 보여준다. GitHub 저장소

쓰오딩 데일리(Tsoding Daily)는 매일 4시간 넘게 스트리밍하며 다양한 프로젝트를 처음부터 만든다. 텍스트 편집기와 프로그래밍 언어, 광선 추적기를 직접 만들고, 실패와 디버깅을 포함한 전체 과정을 공개한다. “이렇게 하면 무슨 일이 생길까?”라는 태도로 실험한다.

더 프라임에이전(ThePrimeagen)은 개인 작업 흐름을 개선하는 CLI 도구와 Neovim 플러그인을 만든다. 개발 도구와 성능에 대한 열정을 드러내고, 다른 개발자의 코드와 접근 방식을 살펴보고 비평한다. 최적화와 도구 만들기를 역동적인 활동으로 보여준다.

케이시 무라토리(Casey Muratori)는 스트리밍으로 게임 전체를 처음부터 만드는 프로젝트 Handmade Hero를 진행한다. 모든 코드와 시스템 설계의 이유를 설명하고, 라이브러리 없이 원리부터 이해하는 방식을 보여준다. 프레임워크 없이도 현대적인 소프트웨어를 만들 수 있다는 사례다.

벤 이터(Ben Eater)는 브레드보드로 컴퓨터를 만들며 부품 하나하나를 설명하고, CPU와 메모리, 네트워크의 작동 원리를 다루는 영상 시리즈를 제작한다. 5달러에 살 수 있는 것을 만드는 데 몇 달을 들이기도 하지만, 하드웨어의 기초를 흥미롭게 소개한다.

댄 루(Dan Luu)는 성능이 예상과 다른 이유를 조사해 상세한 블로그 글로 쓴다. 키보드, 터미널, 프로그래밍 언어 등을 벤치마크하며 “왜 이것은 느릴까?”라는 호기심을 긴 조사로 발전시킨다. 취미로 시작한 탐구가 업계 전반의 문제를 발견할 수도 있음을 보여준다.

시작할 실험은 매일 쓰는 도구를 일부러 가장 형편없는 방식으로 만들어 보기, 궁금했던 언어를 2시간 동안 써 보기, 작은 문제를 해결하는 과정을 기록하기, 흥미로운 프로젝트를 포크해 수정하기, 라이브 코딩이나 스트리밍을 시도하기 중에서 고를 수 있다. 재미가 사라지면 멈추면 된다.

목표는 이 사례에 나온 프로그래머 중 하나가 되는 것이 아니다. 코딩을 처음 시작한 이유를 되새기고, 직업과 함께 그 호기심을 이어가는 데 있다.