Back End/유지보수
-
Dynamic DTO 만들기Back End/유지보수 2023. 5. 8. 18:04
우리는 가끔 마주한다. Third-Party API 의 응답값이 동적으로 오는 경우를 말이다. 무시무시한 API 우리는 이러한 응답을 받고, API 제공자에게 `event=true` 이면 가격은 0원이라는 어마어마한 비지니스 로직을 전달받는다. ...그래... 그럴 수 있지... 이럴 때 Response DTO 를 작성하는 법을 기록한다. (더 좋은 방법이 있다면 업데이트 하겠습니다.) Dynamic DTO 만들기 data class ProductApiResponse( val name: String, @JsonProperty("price", required = false) val price: Int?, @JsonProperty("event", required = false) val event: Boole..
-
커스텀 어노테이션을 직접만들어 개발비용을 줄여보자!Back End/유지보수 2023. 3. 26. 16:26
개인적인 주관이 섞여있는 포스팅으로 정답은 아닙니다. 범용적이고 관례적인 어노테이션은 동료개발자와 협업에 유리한 이점이 있다는 것 고려하시며 Trade-off 를 저울질 해보시길 바랍니다. 커스텀 어노테이션을 동료개발자와 충분한 협의 없이 사용 시 유지보수비용이 증가하게 됩니다. 필자가 불편했던 어노테이션들 대표적으로 @PreAuthorize, @Sql, @RequestMapping 등과 같이 String 값을 반복적으로 넣어주어야 하는 어노테이션들이 매우 불편하게 느껴졌다. 사용빈도는 꽤 큰 것에 비해, IDE 자동완성 기능 이후 따로 String 값을 지정해주어야 하는 두번의 작업으로 느껴졌다. @GetMapping("/product/vip") @PreAuthorize("hasRole('ROLE_VI..