kui-vault/02.Volume/CleanCode/80대20 원칙(The Pareto Princip...

2.7 KiB

id created tags aliases
80대20 원칙(The Pareto Principle) 20260318 2026-03-18 10:08
클린코드

💡 생각

코드를 단순화하는 것은 어려운 일이기 때문에 모든 코드를 단순화하는 것은 엄청난 낭비가 될 수 있다. 그렇기 때문에 전체 가치의 80%를 창출해내는 20%의 자주 쓰이는 코드를 단순화하는 것에 집중해야 한다.

🔗 관련 노트


저자가 80:20의 법칙을 언급하는 이유

1. 노력 대 결과의 불균형

프로그래밍에서 80%의 가치는 전체 노력의 20%만 들여도 달성할 수 있다는 점을 강조합니다.

  • 핵심 기능 우선: 사용자에게 진짜 필요한 핵심 기능(20%)을 먼저 완벽하게 만드는 것이, 나머지 잔기능(80%)에 매달리는 것보다 훨씬 가치 있습니다.

  • 복잡성의 함정: 나머지 20%의 가치(예외 케이스, 아주 희귀한 최적화 등)를 채우기 위해 전체 노력의 80%를 쏟아붓는 순간, 코드는 급격히 복잡해지고 유지보수가 불가능해집니다.

2. '충분히 좋은(Good Enough)' 코드

저자는 완벽함은 단순함의 적이라고 말합니다.

  • 파레토의 법칙에 따르면, 100% 완벽한 코드를 만들려는 노력은 비효율적입니다.

  • 대신 80%의 성능과 안정성을 보장하는 단순한 코드를 빠르게 작성하고, 실제 문제가 발생하는 지점만 나중에 정밀하게 타격(최적화)하는 것이 훨씬 똑똑한 전략입니다.

3. 기능 구현에서의 80/20

새로운 기능을 추가할 때도 이 법칙이 적용됩니다.

  • YAGNI(You Ain't Gonna Need It)와의 연결: "혹시 필요할지 모르는" 기능들을 다 넣으려 하지 마세요. 실제 사용자는 제공된 기능의 20%만 주로 사용합니다.

  • 그 20%의 기능을 가장 단순하고 견고하게 만드는 데 집중하는 것이 이 장의 핵심 레슨입니다.


[!note] 왜 자꾸 20%의 코드에 집중해야한다고 강조하느냐면 단순한 코드를 작성하는 것은 쉬운일이 아니기 떄문입니다.

  • "모든 곳을 단순하게 만들려고 애쓰는 것 자체가 복잡함의 시작이다. 진짜 중요한 20%만 단순하게 유지하고 나머지는 최소한의 노력만 들여라."

  • "단순함은 기술(Skill)이고, 파레토 법칙은 그 기술을 사용할 전략(Strategy)이다. 전략 없는 기술은 개발자를 지치게 만든다."

  • "단순함은 복잡함보다 어렵다. 생각을 명확히 해서 단순하게 만들려면 정말 열심히 노력해야 한다." - 스티브잡스