쉬운·기술사전비유로 이해하는 AI·개발 용어
개발자처럼 생각하기

YAGNI

YAGNI

아직 필요하지 않은 건 만들지 않아도 돼요.

YAGNI 개념 다이어그램

YAGNI는 'You Aren't Gonna Need It'의 줄임말이에요. 제가 셀 수 없을 만큼 많이 붙잡아준 네 글자예요.

함정은 이래요. 분명 본 적 있는 상황일 거예요. 단순한 것 하나를 만들려고 앉는데, 머릿속이 속삭이기 시작하죠. "나중에 다국어 지원이 필요해지면? 지금 언어 설정을 추가해두자. 천 명이 한꺼번에 몰려오면? 그걸 대비해서 만들자. 다크 모드, 관리자 패널, 아무도 요청하지 않은 설정 페이지가 필요해지면?"

그건 지금 만들려던 것과 달라요. 앞으로 필요할 거라고 상상하는 것이죠. YAGNI는 이렇게 말해요. 멈추세요. 지금 눈앞에 있는 것을 만드세요. 언젠가의 것은 그 언젠가가 실제로 올 때까지 기다리면 돼요.

왜 이게 들리는 것보다 훨씬 중요할까요. 미래를 대비한 기능은 한 번 내고 끝나는 비용이 아니에요. 평생 먹여야 하는 반려동물이에요. 일단 존재하게 되면:

만드는 데 비용을 썼고, 이제 매달 그 비용을 내고 있는 거예요. 열 번 중 아홉 번은 오지 않는 "언젠가"를 위해서요.

일상적인 비유로 하면, 해변 여행에 눈길용 체인을 챙기는 것과 같아요. 갑작스러운 눈보라가 안 온다고 확신할 수는 없죠. 그래도 해변에 가는 길이잖아요. 체인은 무겁고 짐칸을 다 차지하며, 스스로 만들어낸 문제를 위한 짐이에요. 실제로 가는 여행에 맞게 짐을 싸세요.

AI로 뭔가를 만들기 시작하는 순간 바로 부딪히는 문제예요. 이게 핵심인데, 거의 아무도 미리 알려주지 않아요.

AI에게 무언가를 만들어달라고 하면, AI는 기꺼이 과잉 납품해요. 단순한 문의 양식을 요청했더니 스팸 방지 기능, 요청하지 않은 필드 세 개, 설정 패널, 파일 업로드 지원까지 달린 양식을 건네는 거예요. 배려처럼 느껴지고, 선물 같기도 하죠. 하지만 조용히 반려동물 네 마리를 떠넘기는 셈이에요.

그래서 프롬프트에 명시적으로 적어야 해요:

이 문제만 정확히 해결하는 가장 단순한 버전을 만들어라.
요청하지 않은 기능은 추가하지 마라. "혹시 몰라서" 넣는 것도 금지다.
추가할 가치가 있다고 생각되면, 만들기 전에 먼저 물어봐라.

마지막 줄이 핵심이에요. AI의 적극성을 나중에 치르는 세금에서, 지금 바로 답할 수 있는 예/아니오 질문으로 바꿔주거든요.

솔직히 한계도 있어요. YAGNI가 남용되는 경우도 있으니까요. 이건 대충 만들어도 된다는 핑계가 아니에요. "지금 필요하지 않다"는 말은 기능에 적용되는 거예요. 미래의 내가 원할 것 같다고 추측하는 것들에요. 버전 관리를 건너뛰거나 아예 생각을 안 해도 된다는 뜻이 아니에요. 상상 속 대성당을 짓지 마세요. 지금 서 있는 방 하나를 잘 지으면 돼요.

제가 실제로 쓰는 기준이 있어요. 뭔가를 만들기 전에 스스로 물어보는 거예요. 지금 당장 있는 문제를 해결하는 건가, 아니면 머릿속으로 그리는 문제를 해결하는 건가? 오늘 눈앞에 실제로 있는 문제라면 만드세요. "만약 ~라면"이라면, 목록에 적고 자리를 뜨세요. 목록은 공짜예요. 기능은 아니니까요.

진짜 필요한 날이 오면 그때 추가하면 돼요. 필요도 없는 것을 만드는 데 쓴 시간은 거의 돌아오지 않아요.