포스트

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는 생산성과 유지보수성을 모두 높이는 실전 원칙입니다.

sticker


이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.