목록2024/01/30 (3)
공부 기록
✅ 들어가며 학원에서 프로젝트를 진행했을 때 유효성 검사를 제대로 진행해보지 않아 이번 프로젝트에서 간단하게라도 유효성 검사 코드를 작성해보고자 한다. 스프링 부트에서 유효성 검사를 위한 어노테이션을 제공하고 있어서 프로젝트에 적용하기 위해 정리해보았다. ✅ 유효성 검사 📌 유효성 검사란? 데이터의 값이 유효한지, 조건이 타당한지 확인하는 것으로 올바르지 않은 데이터가 서버나 DB에 전송되는 것을 막기 위해 실시한다. 스프링부트에서는 @Valid나 @Validated 어노테이션을 이용하여 쉽게 유효성 검사를 진행할 수 있다. 📌 사용방법 0. 의존성 추가하기 implementation 'org.springframework.boot:spring-boot-starter-validation' 1. @Valid..
✅ 들어가며 프로젝트의 Food도메인에서 Entity와 DTO의 변환 계층으로 Service계층을 선택하였다. 선택의 이유는, Controller계층은 요청을 받고 메서드를 호출하여 그 결과를 응답하는 역할을 하므로 Entity와 DTO의 변환 코드는 Service에 있어야 한다고 생각하였고, Service에서 유효성 검사를 하게 될 것이라고 생각했기 때문이다. 앞으로 식당, 주문 도메인을 진행하면서도 Entity와 DTO 변환을 해야하므로 어느 계층에서 변환을 하는 것이 좋을지 고민해보았다. ✅ Entity와 DTO의 변환 계층(Layer) 여러 블로그 글을 읽어 보았을 때 Entity와 DTO 변환을 Controller에서 하는 방법, Service에서 하는 방법은 각각의 장단점이 있고 상황에 따라 ..
✅ 들어가며 첫 번째 Pull Request에서 받은 코드리뷰를 통해 고민해 오던 Entity에 Setter를 없애는 방법에 대한 힌트를 얻게 되었다. 나는 프로젝트에서 Entity↔DTO 변환을 위해 BeanUtils.copyProperties()를 사용하였다. 해당 방법을 사용하면서 Entity에 Setter를 생성해야 했어서 이전에 공부한 도메인 중심 개발과 상충되는 부분이 생겨 고민을 했었는데, 송아쌤과 스터디메이트의 코드를 보고 builder에 대해 공부해 보고 적용해보고자 한다. ✅ Builder 생성자에 @Builder를 붙여주면 빌더 패턴 코드가 빌드된다. 각 인자가 어떤 의미인지 알기 쉽다. Setter가 없으므로 불변 객체를 만들 수 있다. 한 번에 객체를 생성하므로 객체 일관성이 깨지..