계층 간 날짜 데이터를 전달할 때 생긴 고민

유재민·2023년 5월 8일
0
post-thumbnail

네이버 검색 API에서 데이터를 응답받을 때 날짜 속성도 있다. 그런데 날씨 타입이 밀리세컨드 형태가 아닌 문자열 타입으로 전달받는다. 그래서 고민이 생겼다.

{
    "title": "에코플로우 맥스프로 3600wh의 <b>괴물</b> 캠핑용 파워팩 베터리",
    "link": "https://blog.naver.com/eric20300/222954417004",
    "description": "오늘 입고된 제품은 에코플로우의 <b>괴물</b>베터리 맥스프로입니다 상당한 크기에 녀석이고 베터리 용량도 확장성도 엄청난 녀석입니다. 우선 스펙부터 보실까요 에코플로우 델타프로 파워뱅크 EcoFlow 총 3600wh의... ",
    "bloggername": "캠핑리버-자동차캐리어 멀티샵 01079414124",
    "bloggerlink": "blog.naver.com/eric20300",
    "postdate": "20221213"
}

이 날짜 데이터를 어떤 형태로 UI에 보내줘야하는가?

만약 ms 형태로 전달받았으면 변환해주는 작업이 필요할 것이다. 그런데, 이미 문자열로 전달받은 것이다. 그러면 그대로 넘겨줘도 되지 않을까? 그래서 필요하다면 2022-12-13 이던지 2022/12/13 이던지 문자열을 가공하면 되지 않을까? 라는 생각을 했다.

그래도 뭔가의 찝찝함은 있었다.

왜냐하면 너무 UI에 맞춰져있는 날짜 형태가 아닌가.. 라는 생각이 들었기 때문이다. Domain 계층에서는 데이터 값을 전달받을 때 원시 데이터 값을 전달받는 것이 좋다. Domain 모듈 자체는 순수 Entity 이고 다른 프레임워크에서 사용할 수 있는 형태가 되어야하며 안드로이드에 의존되어서는 안된다. (사실상 100% 의존을 막기는 힘들 것이다.) 그렇기 때문에 신경쓰이는 부분이 존재했다.

멘토님께 여쭤보았고 문제를 해결할 수 있었다. 실무에서는 API 전달 자체를 ms로 하겠지만 만약 문자열 형태로 전달하더라도 ms 형태로 변환해주는 것이 좋다고 하셨다. 아무래도 나중에 데이터가 어떻게 가공되어야 할지도 모르고 Date 간의 비교가 필요한 로직이 추가될 수 있고 여러 확장성 측면에서 봤을 때 raw data 을 넘겨줘야 할 것이다. 현업에서는 사소한 부분을 하나하나 모두 신경써야하기 때문에 지금 편할 수 있지 라는 생각은 하면 안될 것 같다. 조금 귀찮더라도 확장과 유지보수에 적합한 코드를 짜도록 노력해야겠다.

profile
유잼코딩

0개의 댓글