WET(Write Everything Twice)는 비슷한 코드를 곧바로 하나로 합치지 않고, 몇 차례 따로 작성하며 공통점을 확인하자는 조언이다. [[DRY]]를 적용할 시점을 묻는 데 유용하다. 「Stop trying to be so DRY, instead Write Everything Twice」는 두 번의 작성을 허용하고 세 번째에는 공통 부분을 추출할지 살피는 방법을 제안한다. ([WET를 제안하는 글](https://dev.to/wuz/stop-trying-to-be-so-dry-instead-write-everything-twice-wet-5g33)) ## 두 벌을 나란히 놓기 - 전시 안내 웹 페이지 두 개를 만든다고 가정해보자. 지금은 제목과 날짜가 같은 자리에 있어도, 하나에는 예약이 필요하고 다른 하나에는 작품 목록이 필요할 수 있다. 먼저 각각의 요구를 적어보자. - 중복을 남겼다면 같은 오류를 여러 곳에서 고쳐야 할 가능성도 살펴야 한다. [[중복을 남기는 이유]]와 함께 복사한 위치를 기록해두면 이후의 판단에 도움이 된다. - 두 번이라는 숫자를 모든 작업의 규칙으로 고정할 필요는 없다. [[AHA]]와 [[단일 책임 원칙]]을 함께 읽으며 반복 횟수와 변경 이유를 구별하자. 이미 같은 규칙임이 분명한 내용까지 일부러 복제할 이유는 없다. ## 기타 등등 - WET를 제안한 위 글에는 독자의 의견을 반영해 ‘DRY는 지식에 관한 원칙’이라는 자료가 추가돼 있다. 제안문 안에도 DRY를 어떻게 읽을지에 관한 반론이 남아 있다. [출처](https://dev.to/wuz/stop-trying-to-be-so-dry-instead-write-everything-twice-wet-5g33) - 글의 마지막 조건은 WET와 DRY 모두에서 추상화한 이유를 주석으로 남기라는 것이다. 복사할 횟수뿐 아니라 다음 작업자에게 판단을 전달하는 일도 다룬다. [출처](https://dev.to/wuz/stop-trying-to-be-so-dry-instead-write-everything-twice-wet-5g33) #원칙 #프로그래밍 #설계