-
Edge API로 전환 작업을 하며 고민했던 사항 [진행 중]실무에서 알게된 내용 2022. 7. 15. 01:11
고민했던 사항
1. 모듈 간 의존성 방향은 api 모듈 → service 모듈 → domain 모듈 ← client 모듈 방향을 지키도록 한다.
- 이를 통해 domain 모듈은 client 모듈의 구현으로부터 독립되도록 한다.
2. api 모듈에서는 domain 모듈에 있는 객체를 웬만하면 바로 반환하지 않고 common-web 모듈에다가 화면에 fit 한 response객체를 만들어 이를 반환하도록 한다.
- 왜냐하면, domain 모듈에 있는 객체를 바로 반환하게 되면 신규 입사자가 domain 모듈에 있는 객체의 필드를 변경하게 됐을 때, 컴파일 시점에 에러를 잡을 수 없을뿐더러 이 영향이 클라이언트까지 미칠 수 있기 때문이다.
3. response 객체에 있는 Enum 타입 필드들은 Enum 값으로 내리지 않고 common 모듈에 있는 EnumPrintFormat 타입으로 변경해서 내리도록 한다.
- 프런트의 편의성을 위해 합의한 부분이다.
data class EnumPrintFormat(val code: String, val name: String)
4. in-memory cache는 service 모듈에서 사용하도록 한다.
- 만약 in-memory cache를 client 모듈에 적용 한다면 해당 client를 사용하는 모든 기능에 영향을 줄 수 있기 때문이다.
'실무에서 알게된 내용' 카테고리의 다른 글
복잡했던 조회 및 CSV 다운로드 API 이관기 (0) 2022.07.21 좌충우돌 Coroutine 적용기 (0) 2022.07.01 모듈간 의존성 개선 및 정리 작업 (0) 2022.06.30 로그가 간헐적으로 중복 노출되는 이슈 (0) 2022.06.29 ClientAbortException은 언제 발생하는가? (0) 2022.06.23