더 나은 설계를 위하여 (진짜 초간단하자나요! 이거 치트키 아닌가요?)
👉 현실 상황은 불확실성이 높아요.
👉 우리는 변화에 기민하게 대응할 수 있어야 합니다.
변화에 기민하게 대응한다라.. 잘 와닿지 않는데요?
초간단 고찰이니 초간단 구현 사항을 생각해볼까요?
아이스 아메리카노를 뽑을 수 있는 커피 자판기를 구현해라.
현실에 빗대어 앞으로의 기능을 예상해볼 수 있겠죠.
메뉴가 많아질 것 같아요.
사용자에게 돈을 받고 잔돈을 반환하는 기능도 추가될 것 같아요.
😀 아메리카노
라는 메뉴가 나와서 커피 메뉴가 바뀔 것이라 기대할수는 있지만,
😢 아직 돈을 받는다는 요구사항 관련해서는 나오지 않았어요.
너무 간 느낌이죠. (YAGNI 위배)
확장성을 너무 고려하여 키워드에 빠지지는 말자
요구사항이 추가/변경될 때 변하는 부분과 변하지 않는 부분을 찾아보는 방식으로 적절한 확장성을 가지도록 해봅시다.
(진짜 초간단 글이지만 코치 준과 우테코 크루들의 생각이 많이 섞여있고 그걸 정리한 겁니다..!)