YAGNI (You Aren't Gonna Need it;너 그거 필요 없을 거야) 원칙
YAGNI 원칙은 소프트웨어 개발의 중요한 철학 중 하나로, 다음과 같이 요약됩니다:
🧩 YAGNI란?
YAGNI = You Aren’t Gonna Need It (너 그거 필요 없을 거야)
📖 정의
“아직 필요하지 않은 기능은 미리 만들지 마라.” 나중에 쓸지도 모른다고 생각해서 미리 구현하는 건 낭비이며 위험하다는 원칙입니다.
🎯 핵심 메시지
| 잘못된 습관 | YAGNI의 조언 |
|---|---|
| “이거 나중에 쓰일 수도 있으니까 만들어놔야지!” | ❌ 지금 당장 필요하지 않으면 만들지 마! |
| “확장성을 고려해서 미리 구현해둬야지!” | ❌ 필요할 때가 오면 그때가서 정확하게 만들면 돼! |
💡 왜 중요한가?
| 이유 | 설명 |
|---|---|
| 💸 시간 낭비 방지 | 필요 없는 기능에 시간/리소스 쓰지 않음 |
| 🧱 복잡도 최소화 | 코드가 단순하고 유지보수 쉬움 |
| 🧪 테스트 감소 | 테스트 대상 줄어듦 → 품질 높아짐 |
| 🔄 요구 변화 대응력 ↑ | 진짜 필요한 기능만 갖고 있으므로 빠르게 수정 가능 |
🛠 예시 ❌ 안 좋은 코드
1
2
3
4
5
# 아직 기능도 없는데 미래를 위해 유저 블록 기능을 설계함
class User:
def __init__(self):
self.blocked_users = [] # 아직 block 기능 없음
✅ YAGNI 기반 코드
1
2
3
4
class User:
def __init__(self):
pass # block 기능이 실제 필요해질 때 추가
🧘 YAGNI와 잘 어울리는 개발 방식
| 철학 | 설명 |
|---|---|
| Agile | 반복해서 필요한 것만 추가하는 방식 |
| Lean Startup | 기능은 “최소한의 가설 검증”만 할 만큼만 |
| KISS 원칙 | 단순함 유지 (Keep It Simple, Stupid) |
✅ 결론
“지금 필요하지 않으면 만들지 마세요.” YAGNI는 생산성과 유지보수성을 모두 높이는 실전 원칙입니다.
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.
