0611 Query 레이어와 컴포넌트 레이어 의존도 끊기 고민
흠...
Query 레이어와 컴포넌트 레이어 간 상호의존도를 아예 끊자는 명목으로 response type을 export하지 않도록 수정했음
그래서 위와 같이 컴포넌트 레이어 어딘가에 쿼리로 받아온 데이터를 위한 타입을 따로 선언해 붙여줘야 하는 상황
왜 똑같은 코드를 두 번 복붙하냐?는 질문은 '우연히 똑같이 생긴 것일 뿐 네트워크로 받아온 DTO와 컴포넌트가 필요로 하는 객체는 다를 수 있다' 는 전제로 방어할 수 있음
그렇지만 위처럼 쿼리 훅의 응답 타입을 추출할 수 있는 유틸 타입이 존재하고 꽤 많은 곳에서 쓰이고 있는 실정. 원칙을 위배하면서까지 이런 유틸타입이 삐져나올 수 있는 배경은 개발자 경험(DX)이 좋지 못하다는 것으로 볼 수 있음 시간 문자열을 컴포넌트에서 문자열이 아닌 Dayjs 객체로 다루기 위한 Timestone ValueObject로 일괄적으로 사용하고 안전성을 보장하기 위해서는 서버 응답과 컴포넌트 데이터 타입을 끊어주는게 맞지만, 거의 대부분의 필드들은 원시값 그대로 쓰는 경우가 많기 때문에 불편함을 느낄 수 밖에 없긴 하다
좋은 방법이 없을까? 다른 팀원이 말씀해주셨던 쿼리 레이어와 컴포넌트 레이어 사이에 타입 레이어를 추가해주는 방식?