목록프로그래밍/프로젝트 (3)
공부 기록
✅ 들어가며 프로젝트의 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가 없으므로 불변 객체를 만들 수 있다. 한 번에 객체를 생성하므로 객체 일관성이 깨지..
✅ 프로젝트 적용 0. Docker와 mariadb설치 [맥북/맥 Mac] 도커(Docker)로 MariaDB 설치하기 안녕하세요, 송아지할때 송아 김송아입니다. Docker Desktop을 설치하셨다면, 👉🏻 1분만에 설치하기 https://songacoding.tistory.com/56 우리는 맥/맥북 Terminal (또는 윈도우 cmd) 을 이용해서 Docker hub에 있는 songacoding.tistory.com 1-1. 의존성 추가 1-2. mariadb와 연결하기 2. Entity 수정 @Entity @Getter //lombok 어노테이션 : 클래스 내 모든 필드의 Getter 메서드 자동 생성 public class Food { @Id @GeneratedValue(strategy = ..