Rain Lag

5분 코드 컴퍼스 카드: 키보드 치기 전에 매 세션의 방향을 잡는 포켓 루틴

매번 코딩 세션을 시작할 때 5분만 투자해 방향을 정하고, 스코프 크립을 줄이고, 자신감을 쌓고, 의지력이나 거창한 계획 없이도 실제 작업을 시작하기 쉽게 만들어 주는 간단한 워밍업 루틴.

5분 코드 컴퍼스 카드: 키보드 치기 전에 매 세션의 방향을 잡는 포켓 루틴

우리는 코딩 중간에 막히는 게 아니다.

대부분 시작에서 막힌다.

에디터는 열려 있고, 문제는 거대하다. 머리는 전체 코드베이스를 한 번에 RAM 에 다 올리려 한다. 슬랙은 계속 울리고, 브라우저는 “탭 하나만 확인해 보지 그래?” 하고 속삭인다. 15분이 지나도 코딩도 아니고 휴식도 아닌 어정쩡한 상태, 그냥 멈춰 있을 뿐이다.

5분 코드 컴퍼스 카드(Five-Minute Code Compass Card) 는 바로 그 멈춤 상태를 깨기 위해 만든 아주 작은 의식이다.

이건 거창한 생산성 시스템도 아니고, 정교한 계획 방법론도 아니다. 그냥 5분짜리 워밍업이다. 이 5분은 당신에게:

  • 머리를 하나의 작고, 거의 바보 같을 정도로 단순한 문제에 겨냥하게 만들고
  • 과도하게 생각할 틈이 없도록 단단한 시간 제한을 걸어두며
  • 마지막에는 하찮더라도 무언가를 실제로 하나 배송(ship) 하게 만든다.

비행기 이륙 전에 하는 체크리스트라고 생각하면 된다. 짧고, 가볍고, 본격적으로 이륙하기 전에 끝나는 것.


5분 코드 컴퍼스 카드가 뭐죠?

"컴퍼스 카드(Compass Card)" 는 매번 코딩 세션을 시작하기 전에 하는 마이크로 루틴이다.

  1. 작고, 거의 “쓸데없이 멍청해 보이는” 문제 하나를 고른다.
  2. 딱 5분짜리 타이머를 건다.
  3. 그 문제만 푼다(또는 시도한다) — 스코프는 절대 키우지 않는다.
  4. 결과물을 공개(또는 반공개) 공간 어딘가에 올린다.
  5. 그리고 나서 “진짜” 작업을 시작한다.

정말 이게 전부다.

목표는 대단한 무언가를 만드는 게 아니다. 목표는 뇌의 방향을 맞추고, 부드럽게 움직이기 시작하게 만드는 것이다.

지금 만드는 건 기능(feature)이 아니라, 당신 안의 내부 나침반이다.


1단계: “쓸데없이 멍청해 보이는” 문제를 고르기

여기서 핵심 형용사는 작다(tiny) 이다.

대부분의 코딩 세션은 시작에서 실패한다. 처음에 잡는 문제가 이미 너무 크기 때문이다.

  • “결제 플로우 전체 리팩터링하기”
  • “간헐적으로 깨지는 통합 테스트 디버깅하기”
  • “데이터 레이어 아키텍처 다시 설계하기”

뇌는 이런 문제를 보는 순간 조용히 부팅을 거부한다.

대신, 거의 나에게는 너무 쉬워 보이는 것부터 시작하자.

  • snake_casecamelCase 로 바꾸는 함수를 하나 만든다.
  • 특정 디렉터리의 코드 라인 수를 세는 스크립트를 쓴다.
  • CLI 플래그 하나에만 입력 검증을 추가한다.
  • 라이브러리 함수 하나를 어떻게 쓰는지 보여주는 아주 작은 데모를 만든다.
  • 특정 텍스트 포맷을 변환해 주는 일회성 정규식 도우미를 만든다.

“이거 너무 소소해서 의미 없는데?” 라는 생각이 든다면, 딱 좋은 크기를 고른 거다.

지금 당신은 제품을 출시하려는 게 아니다. 당신이 하려는 건 관성(inertia)을 0으로 만드는 것이다.

이걸 본 운동이 아니라 스트레칭이라고 생각하라.


2단계: 가차 없이 5분 타이머 설정하기

이제 정말로 딱 5분짜리 타이머를 건다. 10분도 아니고, 15분도 아니다.

5분이 중요한 이유는:

  • 집중을 강요한다 – 완벽주의를 부릴 시간이 없다.
  • 과도한 계획을 막는다 – 5분 안에 아키텍처를 설계할 수는 없다.
  • 부풀리기를 막는다 – “여기까지 온 김에 이것도…” 할 여유가 없다.

지금 하는 건 산책이 아니라 스프린트다.

타이머가 시작되면:

  • 꼭 필요하지 않다면 탭을 더 열지 않는다.
  • 이름을 예쁘게 바꾸느라 시간을 쓰지 않는다.
  • 이미 있는 구린 코드를 발견했다고 해서 “잠깐만 리팩터링만…” 같은 짓을 하지 않는다.

5분이 바로 당신의 컨테이너다. 문제는 그 안에 들어가야 한다.

만약 못 들어가면? 괜찮다. 타이머가 끝나면 그냥 멈추고, 지금까지 한 걸 그대로 올리면 된다.


3단계: 결과물이 아니라 나침반이라고 생각하기

이 루틴이 먹히게 만드는 정신적 트릭은, 이걸 자존심과 분리하는 것이다.

5분 컴퍼스 카드의 포인트는:

  • 머리를 코드 쪽으로 돌려 놓고
  • 손과 뇌를 가볍게 워밍업하고
  • 아주 작은 관성(모멘텀)을 만드는 것이다.

포인트가 아닌 것은:

  • 우아한 추상화를 만드는 것
  • 내가 얼마나 똑똑한지 증명하는 것
  • 포트폴리오에 올릴 만한 결과물을 만드는 것

오히려 결과가 지루하고 평범할수록 더 잘 작동한다.

당신이 길들이려는 건 이런 습관이다:

“앉으면, 나는 작은 문제 하나를 후다닥 풀고, 그걸 바로 올린다.”

문제가 화려한지 여부보다 이 습관 자체가 훨씬 더 중요하다.


4단계: 뭐가 됐든 항상 어딘가에 올리기

타이머가 끝나면, 당신은 지금까지 한 걸 그대로 올린다(Ship).

다듬지 않는다. “정리 좀 하고 올려야지”도 없다.

그냥 어딘가에 올린다:

  • GitHub Gist
  • code-compass-warmups 같은 이름의 스크래치용 레포
  • 회사 보안 요구가 있다면 비공개 레포
  • 팀 슬랙이나 디스코드의 스니펫 채널

이게 왜 중요하냐면:

  1. 배송(Shipping) 습관을 만든다.
    • 스스로에게 이렇게 가르치는 셈이다: “완벽하지 않아도 공유할 수 있다.”
  2. 미완성 작업을 보여주는 데 대한 두려움이 줄어든다.
    • 시간이 지나면 “이거 대충 만든 건데 한 번 봐줘”가 자연스러워진다.
  3. 작은 발자국(breadcrumb) 기록이 생긴다.
    • 의욕이 떨어지는 날, 수십 개의 작은 승리를 눈으로 직접 확인할 수 있다.

좋아요나 리뷰는 필요 없다.

‘Publish(올리기)’ 버튼을 누르는 행위 자체가 훈련이다.


5단계: AI를 활용하되, 과제는 끝까지 작게 유지하기

코드 어시스턴트 같은 AI 도구를 이 5분 워밍업에 충분히 동원해도 된다. 단, 스코프만큼은 당신이 끝까지 쥐고 있어야 한다.

이 루틴에서 AI 를 잘 쓰는 방법 예시:

  • “이 타임스탬프 포맷을 파싱하는 작은 함수 하나 같이 써 줘.”
  • “라이브러리 X 로 Y 를 하는 최소 예제를 만들어 줘.”
  • “이 작은 헬퍼 함수에 대한 테스트 케이스를 몇 개 제안해 줘.”

이 루틴에서 AI 를 나쁘게 쓰는 방법:

  • “내 코드베이스 전체를 헥사고날 아키텍처로 리팩터링해 줘.”
  • “5분 안에 이 간헐적인 프로덕션 버그를 잡아 줘.”
  • “이 거대한 클래스를 완벽한 디자인 패턴 구현으로 갈아엎어 줘.”

이 시간은 깊은 버그를 쫓거나, 영웅적인 리팩터링을 할 때가 아니다. 워밍업 시간이다. AI 가 당신을 토끼굴로 끌고 들어가지 못하게, 과제 크기를 계속 작게 유지해야 한다.

AI 는 이 5분을 빠르게 만드는 데 쓰고, 부풀리는 데 쓰지 마라.


이 루틴이 스코프 크립을 시작 전에 막는 방법

코딩 세션이 망가지는 가장 흔한 이유는 스코프 드리프트(scope drift) 때문이다.

버그 하나를 고치려고 앉는다 → 옆 코드가 난장판인 게 보인다 → 리팩터링을 시작한다 → 그러다 보니 테스트가 낡았다 → 테스트 폴더 구조를 정리하기로 한다 → 어느새 모듈 전체를 재설계 중이다.

5분 컴퍼스 카드는 세 가지 방식으로 이걸 막는다.

  1. 시간이 상한선을 가진다.
    • 5분은 “온 김에 이것도…” 프로젝트를 벌일 수 없을 만큼 작다.
  2. 문제 크기에 상한선을 둔다.
    • 의도적으로 작고, 다소 사소해 보이는 문제를 고른다.
  3. 기대치에도 상한선을 둔다.
    • 미션은 “워밍업하고 방향 맞추기”지, “걸작을 내놓기”가 아니다.

이 작은 워밍업을 마치고 “진짜” 작업으로 넘어갈 즈음에는, 이미 작게, 구체적으로 머무는 근육을 한 번 쓴 상태가 된다. 이 정신 상태가 그대로 메인 작업으로 전이된다.

이제 새로운 기능을 시작할 때, 더 이상:

“여기 있는 거 싹 다 고치자.”

가 아니라,

“지금 당장 가장 작은 조각 하나만 옮기자.”

라는 관점으로 들어가게 된다.


복리 효과: 모멘텀, 자신감, 꾸준함

한 번만 보면 5분은 정말 사소해 보인다. 하지만 세션마다 하면, 당신의 코딩 습관을 조용히 바꿔 버린다.

시간이 지나면 이런 변화가 보이기 시작한다.

  • 모멘텀 – 항상 작은 진입로(on-ramp)가 있어서 시작이 훨씬 쉬워진다.
  • 자신감 – 수십 개의 미니 문제를 해결하면서 뇌에 이렇게 각인된다: “그래, 나는 결국 해결해 낼 수 있다.”
  • 꾸준함 – 에너지가 바닥인 날에는, 이 5분 워밍업만 하고 끝낼 수도 있다. 그래도 완전히 0은 아니다.

덤으로 따라오는 효과들:

  • 작고 재사용 가능한 스니펫 라이브러리가 하나씩 쌓인다.
  • 문제를 아주 작은 단위로 쪼개는 능력이 좋아진다.
  • 빈 파일을 마주하는 두려움이 줄어든다. 당신은 “그냥 일단 시작해 보는 사람”이 되어 있으니까.

가장 큰 변화는 정체성이다.

“코딩을 미루는 사람”이 아니라, “항상 아주 작은 한 걸음은 떼는 사람”으로 자신을 보게 된다.


바로 쓸 수 있는 간단한 템플릿

아래는 노트나 파일로 저장해 둘 수 있는 가벼운 템플릿, 말 그대로 당신의 실제 "컴퍼스 카드"다.

5분 코드 컴퍼스 카드

  1. 날짜 & 시간: ____
  2. 아주 작은 문제 (1–2문장):
    • ____
  3. 타이머: 5분 시작 → 종료 시각 ____
  4. 결과:
    • 무엇을 작동시키거나(또는) 배웠는가? ____
  5. 스니펫 / Gist / Repo 링크: ____
  6. Next (선택):
    • 시간이 10분 더 있었다면 무엇을 했을까? ____

코딩 세션마다 이걸 한 번 채워 넣어라. 깊게 생각하지 말고, 그냥 쓰고 끝내라.


전체 흐름 정리: 실제 세션에서의 모습

실제 세션에서 이 루틴이 어떻게 보일지 예를 들어 보자.

  1. 새로운 기능을 구현하려고 자리에 앉는다.
  2. 컴퍼스 카드를 연다.
  3. 작은 워밍업을 고른다: “에러 메시지를 일관된 포맷으로 포매팅하는 함수 하나 작성하기.”
  4. 5분 타이머를 시작한다.
  5. 빠르게 구현한다 — 필요하다면 AI 에게 기본 뼈대를 부탁해도 좋다.
  6. 타이머가 끝난다. 정리하지 않는다. 그대로 Gist 에 올린다.
  7. 한 줄 메모를 쓴다: “완료. 이제 메인 작업(새 가입 플로우 구현) 시작.”
  8. 이제 이미 뇌는 한 번 풀린 상태이고, 작은 승리를 하나 챙긴 채로 진짜 작업에 들어간다.

이게 루틴의 전부다.


마무리: 먼저 조준하고, 그다음 깊이 잠수하라

대부분의 “더 좋은 개발자가 되는 법” 조언은 무엇을 할지에 집중한다. 프레임워크, 패턴, 시스템 디자인, 알고리즘 같은 것들.

5분 코드 컴퍼스 카드는 어떻게 시작할지에 집중한다.

  • 작고, 거의 우스울 정도의 문제 하나로 시작하고
  • 딱 5분 안에 가둬 두고
  • 이걸 걸작이 아니라 나침반이라고 생각하며
  • 매번 결과를 어딘가에 올리고
  • AI 를 쓰더라도 과제는 끝까지 작게 유지하라.

이걸 매 코딩 세션 전에 해 보면:

  • 스코프 크립을 애초에 피해 갈 수 있고
  • 원할 때마다 모멘텀을 끌어올릴 수 있고
  • 덜 다듬어진 작업을 보여주는 데 대한 두려움이 줄어들고
  • 시작이 무겁지 않고, 가볍게 느껴지기 시작한다.

코딩 인생을 바꾸는 데 거대한 시스템이 꼭 필요한 건 아니다.

그저, 항상 당신을 올바른 방향으로 돌려 세워 주는 5분짜리 습관 하나면 된다.

그리고 나서 — 타이핑을 시작하면 된다.

5분 코드 컴퍼스 카드: 키보드 치기 전에 매 세션의 방향을 잡는 포켓 루틴 | Rain Lag