- 도서 주문 시스템
- Spring web
- Lombok
- MySQL
- Testcontainers
- gson
- JDBC
- Thymeleaf
회원을 생성, 조회, 업데이트, 삭제할 수 있다.
주문을 생성, 조회, 업데이트, 삭제할 수 있다.
상품을 생성, 조회, 업데이트, 삭제할 수 있다.
DTO변환을 컨트롤러에서 하느냐 서비스에서 하느냐 가 고민거리였습니다. 컨트롤러에서 하자니 컨트롤러가 지저분해지는 것 같았고 서비스에서 하자니 DTO변환은 비지니스 로직과 거리가 멀게 느껴졌기 때문입니다. 고민끝에 컨트롤러는 클라이언트와 서버를 이어주는 다리역할만 해야 한다고 결정을 했고, DTO변환까지는 서비스에서 해도 무방하지 않을까 라고 생각을 하게 되었습니다. 또한 서비스에서 DTO변환을 지금까지 해본적이 없어서 이번에는 DTO변환을 서비스에서 진행하였습니다.
DTO변환을 해주는 메서드를 mapstruct 라는 라이브러리를 사용하면 각 도메인 별로 DTO변환 메서드를 관리할 수 있었습니다. 처음에는 이것을 사용하여 코드를 작성하였는데 도메인을 생성, 업데이트 하기 위한 DTO가 별도로 존재한다면 이것 역시 관리가 잘 되지 않는 것 같았고, 해당 DTO가 변환하는 기능까지 담당해야 한다고 생각을 하여 mapstruct를 사용하지 않고 그냥 DTO에 변환 메서드를 작성하였습니다.