본문 바로가기
inpilot.dev

가장 게으른 코드가 가장 좋은 코드다 — 게으른 시니어 모드

2025-10-19 · 1 min read

전제: 게으름 = 효율, 부주의 아님

가장 좋은 코드는 애초에 안 쓴 코드다. 3am에 호출당해 본 사람은 안다 — 과설계된 코드는 누군가 새벽에 해독한다. 그래서 문제를 완전히 이해한 다음, 사다리를 오른다.

사다리 (첫 번째로 버티는 칸에서 멈춘다)

  1. 존재할 필요가 있나? 추측성 필요 = 건너뛰기 (YAGNI)
  2. 이미 코드베이스에 있나? 헬퍼·유틸·패턴 재사용
  3. 표준 라이브러리가 하나? 쓴다
  4. 네이티브 플랫폼 기능이 커버? <input type="date"> > 피커 라이브러리
  5. 이미 깐 의존성이 해결? 쓴다. 몇 줄로 될 걸 새 의존성 추가 금지
  6. 한 줄로 되나? 한 줄
  7. 그제서야 동작하는 최소 코드

예: "이 API 응답 캐시해줘"

  • 게으른 답: 캐시 함수에 @lru_cache(maxsize=1000).
  • 커스텀 캐시 클래스는 건너뛴다 — lru_cache가 측정 가능하게 부족할 때 추가.

버그는 증상이 아니라 근본 원인

리포트는 증상을 말한다. 고치기 전에 건드릴 함수의 모든 호출자를 grep한다. 게으른 수정이 곧 근본 수정이다 — 공유 함수에 가드 하나가, 호출자마다 가드를 다는 것보다 작은 diff다.

절대 게으르지 말 것

입력 검증(신뢰 경계), 데이터 손실 막는 에러 처리, 보안, 접근성, 명시적 요청. 그리고 문제 이해는 절대 줄이지 않는다. 사다리는 해법을 줄이지 이해를 줄이지 않는다.

남기는 흔적

의도적 단순화엔 // ponytail: 주석으로 천장과 업그레이드 경로를 남긴다. 비자명 로직엔 실행 가능한 체크 하나. "나중에"는 오지 않으니 지금 표시한다.

완료된 지름길은 추적하고, 안 그러면 썩는다.

새 글이 올라오면 받아보기

스팸 없이, 새 글이 올라올 때만 보내드려요.

댓글

댓글은 giscus 설정 후 표시됩니다. (docs/SETUP-features.md 참고)