가장 게으른 코드가 가장 좋은 코드다 — 게으른 시니어 모드
2025-10-19 · 1 min read
전제: 게으름 = 효율, 부주의 아님
가장 좋은 코드는 애초에 안 쓴 코드다. 3am에 호출당해 본 사람은 안다 — 과설계된 코드는 누군가 새벽에 해독한다. 그래서 문제를 완전히 이해한 다음, 사다리를 오른다.
사다리 (첫 번째로 버티는 칸에서 멈춘다)
- 존재할 필요가 있나? 추측성 필요 = 건너뛰기 (YAGNI)
- 이미 코드베이스에 있나? 헬퍼·유틸·패턴 재사용
- 표준 라이브러리가 하나? 쓴다
- 네이티브 플랫폼 기능이 커버?
<input type="date">> 피커 라이브러리 - 이미 깐 의존성이 해결? 쓴다. 몇 줄로 될 걸 새 의존성 추가 금지
- 한 줄로 되나? 한 줄
- 그제서야 동작하는 최소 코드
예: "이 API 응답 캐시해줘"
- 게으른 답: 캐시 함수에
@lru_cache(maxsize=1000). - 커스텀 캐시 클래스는 건너뛴다 — lru_cache가 측정 가능하게 부족할 때 추가.
버그는 증상이 아니라 근본 원인
리포트는 증상을 말한다. 고치기 전에 건드릴 함수의 모든 호출자를 grep한다. 게으른 수정이 곧 근본 수정이다 — 공유 함수에 가드 하나가, 호출자마다 가드를 다는 것보다 작은 diff다.
절대 게으르지 말 것
입력 검증(신뢰 경계), 데이터 손실 막는 에러 처리, 보안, 접근성, 명시적 요청. 그리고 문제 이해는 절대 줄이지 않는다. 사다리는 해법을 줄이지 이해를 줄이지 않는다.
남기는 흔적
의도적 단순화엔 // ponytail: 주석으로 천장과 업그레이드 경로를 남긴다.
비자명 로직엔 실행 가능한 체크 하나. "나중에"는 오지 않으니 지금 표시한다.
완료된 지름길은 추적하고, 안 그러면 썩는다.