잡담··6 min read

주말 프로젝트는 왜 항상 미완성인가

GitHub에 프라이빗 레포가 23개 있고 그중 완성된 건 2개다

금요일 밤의 열정은 어디로 가는 걸까

금요일 저녁 9시. 한 주가 끝나고 맥주를 한 캔 따면서 "이번 주말에는 그거 만들어야지" 한다. 열정이 최고조다. GitHub에 새 레포를 만들고, README에 기능 목록을 적고, 초기 세팅을 한다. Next.js 프로젝트를 create-next-app으로 만들고 tailwind 설정까지. 여기까지 1시간 30분. 기분이 좋다.

토요일 아침. 일어나서 커피를 마시고 노트북을 켠다. 금요일 밤에 만든 레포를 연다. 코드를 좀 짠다. 2~3시간 정도. 근데 점심을 먹고 나면 의욕이 사라진다. "이거 생각보다 복잡한데?" "디자인을 좀 더 고민해야 하는데?" 핑계를 대기 시작한다.

일요일. 코드를 안 열어본다. 넷플릭스를 보거나 낮잠을 잔다. "다음 주말에 하자"고 결심한다. 그 다음 주말은 오지 않는다.

내 레포 상태를 직시한다

GitHub 프라이빗 레포를 세어봤다. 23개. 이 중에서 실제로 완성해서 배포한 건 2개. 나머지 21개는 README와 초기 세팅만 있거나, 중간에 멈춘 상태다. 마지막 커밋이 6개월 이상 된 게 14개.

레포 이름만 봐도 그때 뭘 하려고 했는지 기억난다.

  • my-budget-app - 가계부 앱. 3일 만에 포기.
  • dev-news-aggregator - 개발 뉴스 수집기. 크롤러까지 만들고 멈춤.
  • pomodoro-cli - 뽀모도로 CLI 도구. npm publish까지 했는데 다운로드 수 7.
  • recipe-share - 레시피 공유 앱. 데이터베이스 설계만 하고 끝.

왜 이러는 걸까

분석해봤다. (이런 분석에 시간 쓰는 것도 문제인 건 안다.)

첫째, 기획을 너무 크게 잡는다. "가계부 앱"이 아니라 "AI가 소비 패턴을 분석하고 절약 방법을 추천하는 스마트 가계부"가 되어버린다. 금요일 밤에는 이게 가능할 것 같다. 토요일 오후에 현실을 깨닫는다.

둘째, 재미있는 부분만 하고 싶다. 새 프레임워크 세팅하는 건 재밌다. 첫 컴포넌트를 만드는 것도 재밌다. 근데 로그인 구현, 에러 핸들링, 배포 설정. 이런 지루한 부분이 전체의 60%다. 거기서 멈추는 거다.

셋째, 혼자라서 책임감이 없다. 회사 프로젝트는 마감이 있고 팀원이 있다. 사이드 프로젝트는 내가 안 해도 아무도 모른다.

완성한 2개는 뭐가 달랐나

하나는 이 블로그. 이건 "배포해놓고 글을 하나씩 올리면 된다"는 점에서 완성의 기준이 낮았다. 완벽하지 않아도 일단 올릴 수 있으니까.

다른 하나는 회사 동료와 같이 만든 VS Code 익스텐션. 이건 상대방이 있으니까 포기를 못 했다. 주말마다 "여기까지 했어요" 하고 공유하는 게 강제력이 됐다.

패턴이 보인다. 작은 스코프 + 외부 강제력. 이 두 개가 있으면 완성할 수 있다.

시도 중인 방법

최근에 "1주일 프로젝트" 규칙을 정했다. 주말 하나에 시작하고 끝낼 수 있는 것만 한다. 기능은 1개. 디자인은 최소. 배포까지가 목표.

지난주에 이 규칙으로 만든 건 "매일 뭘 먹었는지 기록하는 초간단 웹앱"이다. Next.js + localStorage. 서버도 없고 DB도 없다. 토요일 오전에 시작해서 저녁에 Vercel에 배포했다. 코드가 127줄이다.

완성도가 높냐고 물으면 아니다. 디자인이 예쁘냐고 물으면 아니다. 근데 완성했다. 배포했다. 이게 중요하다.

미완성 레포를 어떡할까

정리해야 하는 건 알겠는데 삭제하기가 좀 그렇다. "언젠가 다시 할 수도 있잖아"라는 미련. 근데 솔직히 6개월 동안 안 열어본 레포를 다시 열 일은 없다.

다음 주에 아카이브 처리를 하려고 한다. 삭제는 못 하겠으니까 적어도 눈에 안 띄게는 해놓자. 그리고 새 레포를 만들 때는 "이거 일요일 저녁까지 배포할 수 있나?"를 먼저 물어보기로 했다.

23개 중에 21개가 실패라는 건 좀 우울한 숫자다. 근데 뒤집어 보면 21번 시작할 수 있는 에너지가 있다는 거니까. 문제는 에너지가 아니라 방향이다. 아마.

관련 글