강의

멘토링

로드맵

인프런 커뮤니티 질문&답변

조윤호님의 프로필 이미지
조윤호

작성한 질문수

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

회원 목록 조회

질문있습니다

해결된 질문

작성

·

230

0

 

기본적으로 전달할 데이터가 별로 없을시 간단하게 파라미터로 service 계층으로 전달하여 처리하고

만약 전달할 데이터들이 많으면 service계층에서 쓰이는 DTO를  만들어 전달해줘서 처리하는걸로 이해했습니다.

 

이후에 공부하다가 궁금한점이 생겼습니다. 강의에서는 등록Form(MemberForm) 1개만 만들어 주었지만

보통 김영한님이 말씀하신것처럼 수정에서 쓰이는 수정Form도 따로 만들어준다고했습니다

(전달할 데이터가 다르므로)

그럼 궁금한점이 DTO에 전달할 데이터가 많은경우 이 DTO 자체를 service계층으로 전달해야하는데 

제가 생각한 방법은 등록Form과 수정Form이 타입이 서로 다른 클래스이기 때문에 

2개의 메서드를 만드는 방법이 생각나는데 이게 맞는건지 궁금합니다

 

예시)

@Transactional
public Long join(Member등록Form memberForm) {
validateDuplicateMember(memberForm);
// Member 엔티티로 변환 로직 추가
memberRepository.save(member);
return member.getId();
}

@Transactional
public Long join(Member수정Form memberForm) {
validateDuplicateMember(memberForm);
// Member 엔티티로 변환 로직 추가
memberRepository.save(member);
return member.getId();
}

퀴즈

회원 가입 시 화면 입력 데이터를 엔티티 객체 대신 별도의 Form 객체로 받는 주된 이유는 무엇일까요?

데이터베이스 성능을 최적화하기 위해서

화면 종속적인 데이터나 유효성 검증 로직을 분리하기 위해서

JPA 영속성 컨텍스트와 직접적인 관계를 맺기 위해서

코드의 자동 생성 기능을 활용하기 위해서

답변 1

0

안녕하세요. 조윤호님, 공식 서포터즈 David입니다.

네, 생각하신게 맞습니다.

감사합니다.

조윤호님의 프로필 이미지
조윤호

작성한 질문수

질문하기