KISS는 Keep It Simple, Stupid의 약자예요. 1960년대 미 해군 설계자에게서 나온 실제 공학 원칙이고, 여기서 'stupid'는 당신이 아니라 해결책을 겨냥한 말이에요.
일찍 알았더라면 좋았을 버전: 영리한 해결책이 결국 발목을 잡아요.
무언가를 만들다 보면 두 갈래 길이 나타나요. 하나는 명백하고 조금 지루해요. 다른 하나는 세련되고 간결하며, 생각해낸 것만으로도 스마트한 기분이 드는 종류예요. 영리한 쪽이 그 순간에는 더 나은 것처럼 느껴지죠. 그리고 그게 바로 나중에 아무도 읽을 수 없는 코드가 돼요. 작성한 본인을 포함해서요.
그 '본인'은 보통 6개월 후의 당신이에요. 과거의 자신이 무슨 생각을 했는지 전혀 기억나지 않는 상태로요.
단순한 버전이 이기는 이유는 나중에도 이해할 수 있기 때문이에요. 그게 전부예요. 코드는 읽기 어렵다고 인상적인 게 아니에요. 작동하면서 다음 사람이 수수께끼처럼 해독하지 않아도 될 때 비로소 인상적인 거예요.
집 가는 길 안내라고 생각해 보세요.
- 영리한 버전: "지역 주민들이 '옛 물방앗간'이라 부르는 곳 지나서 세 번째 좌회전인데, 화요일이면 그 길이 막히니까 뒷길로 돌아오면 돼."
- 단순한 버전: "주유소에서 좌회전. 파란 집이 우리 집."
둘 다 오늘은 누군가를 데려다줄 수 있어요. 하지만 밤에, 비가 오는 날, 전화를 받을 수 없는 상황에서 낯선 사람을 데려다줄 수 있는 건 하나뿐이에요.
AI로 무언가를 만들 때는 이게 두 배로 중요해요. AI는 기회만 주면 기꺼이 영리한 버전을 내놓거든요. 뭔가를 요청하면 기술적으로는 작동하는 빽빽하고 '스마트한' 코드 덩어리를 뽑아내요. 그러니 단순함 자체를 명시적으로 요청해야 해요.
프롬프트에 직접 명시하세요. 요청에 "단순하고 읽기 쉽게, 영리한 트릭 없이"를 추가하면 돼요. AI는 요청한 것에 맞게 최적화해요. 지루한 걸 요청하면 그대로 나와요.
수락하기 전에 다시 읽어보세요. 코드가 평범한 말로 무엇을 하는지 따라갈 수 없다면 그건 당신의 문제가 아니에요. 너무 영리하다는 신호예요. AI에게 더 단순하게 다시 만들라고 하면 돼요.
친구에게 설명할 수 있는 버전을 고르세요. "솔직히 이 부분이 어떻게 동작하는지 잘 모르겠어"라고 말해야 하는 부분이 있다면, 그 부분은 삭제하세요.
경험 법칙이 있어요. 두 해결책이 모두 작동한다면, 더 짧거나 세련된 쪽이 아니라 이해하기 쉬운 쪽을 택하세요.
영리함은 나중에 이자까지 붙여서 내는 세금이에요. 단순하고 다소 지루한 버전은 6개월 후에 읽어도 바로 이해돼요.
의심스러울 때는 명백한 것을 택하세요.