프로젝트를 진행 중에 수정사항이 너무도 많다는 것을 알게 되었다. 예전에 학원에서 프로젝트를 할 때는 어떻게 만들든 기한이 정해져 있었기 때문에 완성도가 우선이었고, 유지보수에 대한 프로그래밍에 신경을 쓰지 않았었다.
하지만 실제로 제대로 된 프로그래밍을 하다 보니 예전 버릇이 나오게 되었고, 이번 리뷰를 받은 김에 리팩터링을 빠르게 하며 정리를 해볼 생각이다.
RestFul Api 의 return 값
1. 되도록 체이닝 하는 방식을 사용
2. response에 해당되는 헤더 메시지(상태 코드, 메시지 등등), 바디 값을 다 넣도록 노력하자
DTO, VO 간의 매핑
현재 Mybatis를 사용중이므로 테이블 자체의 Entity는 VO
service < - > mapper 계층 이동 시 VO를 이용해야 함 (이유? DB를 표현한 직접적인 객체이기 때문이다!)
하지만 매핑을 하는 메서드들을 만들자니 필드가 워낙 많아 복잡하다.
그래서 친절히 누군가 만들어 놓은 라이브러리를 이용할 것이다~
=> ModelMapper는 Service에서 자주 사용될 것이므로 아예 Bean으로 등록했다.
상수화
당연히 리터럴 값은 존재하면 그 값은 의미없는 값이자 객체지향적인 설계가 아니다.
상수화를 하거나 Enum을 만들어 관리하자
Mysql Index 관련
product 테이블의 select 쿼리 관련해서 Primary Key인 product_no 컬럼을 이용하려 그랬다.
하지만 상품 추가 액션에서 추가 후 추가된 상품 내역을 응답하는 로직에서
sql은 아직 받아오지 못한 product_no로 찾고 있었다.
해서 Index를 추가해서 쿼리 성능을 높이는 방식을 택했다.
반응형
'📕 Spring Framework > Spring Project' 카테고리의 다른 글
2022.05.12 「ResponseEntity body & BuilderPattern & Join」 (0) | 2022.05.12 |
---|---|
2022.05.11 「SHA-256 + Salt & 인증」 (0) | 2022.05.11 |
2022.05.06 「Git Flow 이슈」 (0) | 2022.05.06 |
2022.05.03 「주석을 작성하는 방법 & Back 중심 개발 수정 및 시작」 (0) | 2022.05.03 |
2022.05.01 「View 만들기, Insert, Select 작업」 (0) | 2022.05.01 |