- Service
- 도메인 업무 영역을 구현하는 비즈니스 로직과 관련
- 빈약한 도메인 모델 / 풍부한 도메인 모델
- DDD(Domain Driven Design) 도메인 주도 설계
postMember()
: 1명의 회원 등록을 위한 요청 전달 받음patchMember()
: 1명의 회원 수정을 위한 요청 전달 받음getMember()
: 1명의 회원 정보 조회를 위한 요청 전달 받음getMembers()
: N명의 회원 정보 조회를 위한 요청 전달 받음deleteMember()
: 1명의 회원 정보 삭제를 위한 요청 전달 받음✔ MemberService 클래스 기본 구조 작성
- Member 클래스의 역할
API 계층에서 전달 받은 요청 데이터를 기반으로 서비스 계층에서 비즈니스 로직을 처리하기 위해 필요한 데이터를 전달 받고, 비즈니스 로직을 처리한 후에는 결과 값을 다시 API계층으로 리턴해주는 역할Member클래스 처럼 서비스 계층에서 데이터 액세스 계층과 연동하면서 비즈니스 로직을 처리하기 위해 필요한 데이터를 담는 역할을 하는 클래스를
도메인 엔티티 클래스
라고한다.✔ Member 클래스 구현
@Getter
@Setter
: lombok 라이브러리 제공 애너테이션, DTO 클래스를 작성하면서 각 멤버 변수에 해당하는 게터세터 메서드를 일일이 작성하지 않아도 됨.@AllArgsConstructor
: 현재 Member 클래스에 추가된 모든 멤버 변수를 파라미터로 갖는 Member 생성자를 자동 생성@NoArgsConstructor
: 파라미터가 없는 기본 생성자를 자동으로 생성
https://projectlombok.org/features/ (lombok)
✔ MemberService 클래스 구현
createMember()
메서드의 파라미터로 전달하기 위해 MemberPostDto 클래스의 정보를 Member 클래스에 채워넣는다.updateMember()
메서드의 파라미터로 전달하기 위해 MemberPatchDto 클래스의 정보를 Member클래스에 채워넣는다.findMember()
메서드 호출 (연결 지점)@Autowired
붙여야함.
✔ MemberResponseDto 클래스 생성
✔ 적용
MapStruct는 DTO 클래스처럼 Java Bean 규약을 지키는 객체들 간의 변환 기능을 제공하는 매퍼 구현 클래스를 자동으로 생성해주는 코드 자동 생성기
https://mapstruct.org/
✔ MapStruct 의존 라이브러리 설정
build.gradle 파일에 추가
✔ MapStruct 기반의 매퍼 인터페이스 정의
gradle 실행하면 숨김 파일로 mapper 클래스 생성됨.