처리중입니다. 잠시만 기다려주세요.
TTJ 코딩클래스
정규반 단과 자료실 테크 뉴스 코딩 퀴즈
테크 뉴스
Hacker News 2026.06.29 77

YAGNI가 진짜 막으려던 비용은 '낭비'가 아니었다 — 켄트 벡의 재정의

Hacker News 원문 보기
YAGNI가 진짜 막으려던 비용은 '낭비'가 아니었다 — 켄트 벡의 재정의

"그거 나중에 필요 없을걸?" — YAGNI 다시 보기

개발하다 보면 한 번쯤 들어본 말이 있어요. YAGNI. 'You Aren't Gonna Need It'의 줄임말인데, 우리말로 풀면 '너 그거 안 쓸 거야'쯤 돼요. 지금 당장 필요하지도 않은 기능이나 일반화를 '나중에 쓸지도 모르니까' 하며 미리 만들어두지 말라는 원칙이에요. 익스트림 프로그래밍(XP)에서 나온 오래된 격언인데, 이걸 만든 사람 중 하나인 켄트 벡(Kent Beck)이 최근 'YAGNI가 막으려던 비용은 사실 그게 아니었다'는 글을 썼어요. 수십 년 묵은 원칙을 만든 장본인이 직접 의미를 다시 짚은 거라 곱씹어볼 만해요.

흔한 오해: "괜히 만들면 그 시간이 아깝다"

대부분의 사람들은 YAGNI를 이렇게 이해해요. '미리 만들어뒀는데 결국 안 쓰면, 그거 만드느라 들인 시간이 낭비잖아.' 그러니까 비용 = 헛수고한 개발 시간, 이렇게 보는 거죠. 일리 있어 보여요. 안 쓸 기능을 만들면 그만큼 시간을 버린 거니까요. 그런데 벡은 바로 이 지점에서 '아니, 진짜 문제는 그게 아니다'라고 말해요.

켄트 벡의 핵심: 진짜 비용은 '계속 짊어지는 비용'

벡이 말하는 진짜 비용은 '만드는 비용'이 아니라 '계속 짊어지고 가는 비용(carrying cost)'이에요. 이게 무슨 말이냐면, 안 쓸 기능을 한 번 만들고 끝이 아니라는 거예요. 그 코드는 일단 만들어지면 계속 거기 남아서, 앞으로의 모든 작업에 세금처럼 따라붙어요.

생각해보세요. 누군가 그 코드를 읽을 때마다 '이건 왜 있지? 어디서 쓰지?' 하고 머리를 굴려야 해요. 다른 기능을 고칠 때마다 '혹시 이 부분이랑 엮여 있나?' 확인해야 하고요. 테스트도 같이 유지해야 하고, 리팩터링할 때도 이 미리 만든 구조가 발목을 잡아요. 게다가 미래를 예측해서 만든 일반화는 십중팔구 실제 필요와 어긋나기 마련이라, 정작 진짜 요구사항이 오면 그 어긋난 구조를 '되돌리는' 추가 작업까지 생겨요. 만드는 데 든 한 시간보다, 그 뒤로 몇 달 몇 년간 그걸 이고 지고 가는 비용이 훨씬 크다는 거죠.

왜 이 구분이 중요한가

이 구분이 왜 중요하냐면, 비용을 '만드는 시간'으로만 보면 이런 변명이 가능해져요. '에이, 이거 만드는 데 10분밖에 안 걸려. 미리 해두자.' 만드는 비용이 싸 보이니까 자꾸 미래를 위한 코드를 더하게 되는 거예요. 하지만 진짜 비용이 '계속 짊어지는 무게'에 있다는 걸 알면, 만드는 게 아무리 빨라도 함부로 추가하지 않게 돼요. 10분 만에 만든 추상화가 앞으로 2년간 코드를 읽는 모든 사람의 머리를 무겁게 한다면, 그건 결코 싼 게 아니거든요.

업계 맥락

이 이야기는 사실 소프트웨어 설계의 오래된 지혜들과 맞닿아 있어요. '성급한 추상화는 성급한 최적화만큼 위험하다'는 말이나, 산디 메츠(Sandi Metz)의 유명한 격언 '잘못된 추상화보다 중복이 차라리 싸다(duplication is far cheaper than the wrong abstraction)'가 대표적이에요. 똑같은 코드가 두세 번 반복되기 전까지는 섣불리 공통 함수로 묶지 말라는 '3의 규칙(rule of three)'도 같은 맥락이고요. 벡의 이번 글은 이 지혜들이 왜 옳은지를 '비용의 종류'라는 렌즈로 더 또렷하게 설명해준 셈이에요.

한국 개발자에게

실무에서 우리는 '확장성'이라는 이름으로 미래를 위한 코드를 참 많이 넣어요. 아직 요구사항도 없는데 인터페이스를 추상화하고, 설정값을 외부화하고, 플러그인 구조를 만들죠. 물론 정말 필요한 곳도 있어요. 하지만 벡의 관점을 빌리면, 그때마다 스스로에게 물어야 해요. '이걸 지금 넣으면 앞으로 이 코드를 만지는 모든 사람이 이걸 이해하고 피해 다녀야 하는데, 그 누적 비용을 감당할 만큼 확실한 미래인가?' 코드 리뷰에서도 '이거 동작해요?'만큼 '이거 지금 꼭 필요해요?'라는 질문이 중요하다는 걸 보여줘요. 당장 필요한 것만 깔끔하게 만들고, 진짜 필요가 생겼을 때 그때 확장하는 습관이 장기적으로 팀을 가볍게 해줘요.

마무리

YAGNI는 '헛수고 줄이기'가 아니라 '미래의 짐 줄이기'예요. 만드는 비용은 한 번이지만 짊어지는 비용은 매일이거든요. 여러분의 코드베이스에는 '혹시 몰라서' 넣어둔 채 아무도 안 쓰는 구조가 얼마나 있을까요? 오늘 한번 찾아보면 어떨까요?


🔗 출처: Hacker News

이 뉴스가 유용했나요?

TTJ 코딩클래스 정규반

월급 외 수입,
코딩으로 만들 수 있습니다

17가지 수익 모델을 직접 실습하고, 1,300만원 상당의 자동화 도구와 소스코드를 받아가세요.

144+실전 강의
17개수익 모델
4.9수강생 평점
정규반 자세히 보기

"비전공 직장인인데 반년 만에 수익 파이프라인을 여러 개 만들었습니다"

실제 수강생 후기
  • 비전공자도 6개월이면 첫 수익
  • 20년 경력 개발자 직강
  • 자동화 프로그램 + 소스코드 제공

매일 AI·개발 뉴스를 받아보세요

주요 테크 뉴스를 매일 아침 이메일로 전해드립니다.

스팸 없이, 언제든 구독 취소 가능합니다.