Hacker News웹 · 프론트엔드

작지만 단순하지 않은 코드의 함정

원제 Simple Is Not Small

257 포인트댓글 88
Key Point

작은 코드가 항상 유지보수하기 쉬운 것은 아니라는 점을 깨닫는 것은 아키텍처 결정 방향을 바꿀 수 있습니다. 프로그래밍할 때 '작음'이 아닌 '단순함'을 목표로 해야 하는 이유를 설명합니다.

핵심 요약

  • 작은 프로그램이 반드시 단순한 것은 아니다. Unix 파이프라인은 작지만 여러 기능이 얽혀 있어 복잡하다.
  • 예를 들어 'sort | uniq -c'는 정렬과 집계를 강제로 결합하기 때문에, 출력 순서를 원본 파일 순서로 바꾸려면 복잡한 임시 파일과 조인 작업이 필요해진다.
  • 반면 Google Drive처럼 대규모 프로그램도 사용자 입장에서는 단순할 수 있다. 크기와 단순성은 별개다.
  • 단순성이란 Rich Hickey의 정의에 따르면 여러 것을 얽지 않은(sim-plex) 상태를 의미한다.
  • 복잡성은 대부분 기능들 간의 불필요한 결합(coupling)에서 비롯된다. 예를 들어 Rust의 HashMap은 키가 있는지 확인해야 하지만, struct는 필드가 존재함을 보장한다.
AI 요약 안내

AI가 한국어로 정리한 내용입니다. 정확한 정보는 원문을 확인해 주세요.

요약 원칙 ↗