inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

Http request data의 검증과 컨트롤러에서 엔티티 객체 생성

401

ㅎㅇㅎㅇㅎㅇ

작성한 질문수 26

0

영한님 안녕하세요 

현재 강의 queryDSL까지 듣고 요즘 개인프로젝트 진행중입니다.

진행하면서 생긴 궁금증에 대해 여쭤보려고 합니다.

 

 http request가 오는데, 특정 값의 범위에 대한 validating은 어느 계층에서 하면 되나요?

예로들어서 회원가입 기능을 만드는데 비밀번호에 대소문자 특수기호가 있어야합니다.

그러면 비밀번호의 값 validating은 Service계층에서 하는게 맞을까요?

제가 생각하는 controller 계층은 HTTP request를 받고 핵심 비즈니스 로직에게 dto를 던져주고 service 계층으로부터 받은 결과를 적당한 http status code, header, body를 통해서 클라이언트에게 전달하는 역할이라고 생각합니다. 이 계층은 HTTP 요청을 받고 전달하는게 주된 역할이라고 생각합니다.

만약, controller에서 검증 하게된다면 회원가입 API가 추가될때마다 controller에 매번 검증 로직을 넣어야하는데 Service에 넣으면 그럴필요가 없다고 생각합니다.

그래서 Service계층에서 검증하는게 맞다고 생각하는데 적절한 논리인가요?

 

 Controller 계층에서 엔티티 객체 생성? or dto를 전달하여 service에서 생성?

Controller에서 엔티티를 생성하고 service계층으로 넘기면 dto를 전달할 필요가 없어서 좋고

dto를 전달하면 controller가 비즈니스로직에 관여하지 않아서 좀더 controller의 역할이라고 생각이 듭니다. (하지만 service의 파라미터도 dto로 의존하게 되어 다른 controller에서 호출할 때 같은 service의 함수를 이용할 수 없게 된다고 생각합니다)

여기서 주로 영한님은 어느 방법을 이용하시나요? (강의에서는 전자의 방법을 자주 이용하시는 것 같은데)

 

 

 

java spring-boot spring JPA 웹앱

답변 1

0

OMG

안녕하세요. 김선도님, 공식 서포터즈 OMG입니다.

두 가지 질문을 주셨네요, 각각에 대해 영한님의 설명 링크 첨부합니다.

읽어보시면 많은 도움이 되리라 생각합니다.

 

1) http request가 오는데, 특정 값의 범위에 대한 validating은 어느 계층에서 하면 되나요?

Update 할 때 조건검사(price >= 0) 는 어디서 하는게 좋은 방법일까요? - 인프런 | 질문 & 답변 (inflearn.com)

 

2) Controller 계층에서 엔티티 객체 생성? or dto를 전달하여 service에서 생성?

UI 계층에서 Entity Object 생성 질문 - 인프런 | 질문 & 답변 (inflearn.com)

 

감사합니다.

OrderServiceTest 상문주문 테스트 시 update 쿼리 문의

0

40

1

sdk 설정 오류

0

83

2

오탈자 - @Transactional

0

76

1

src/test/resources 테스트 경로 문제

0

75

1

상품 등록후 H2 db 출력 순서 바꿀 수 있나요?

0

74

1

MemberRepositoryTest 실행오류

0

98

1

boot 4.x >>> trasasction rolled back log & p6spy(영한님, 수업 자료 업데이트 해주시면 감사하겠습니다!!)

1

204

2

강의 마지막 QueryDSL 사용 부분 질문있습니다

1

161

2

클라이언트에서 isbn과 author 수정 요청을 한 경우에 대해 질문드립니다.

0

61

1

도메인 모델 패턴 vs 트랜잭션 스크립트 패턴

0

90

1

기본 생성자

0

69

1

h2 DB 연결시 jdbc url 변경 이유가 궁금합니다.

0

109

1

멤버서비스테스트 부분에서 막힙니다.

0

188

4

실무에서도 EntityManager를 이용해서 많이 작업하는 편일까요?

0

130

1

초반에 h2 다운로드 과정 꼭 필요한가요?

0

134

2

자신 필드에도 get으로 접근하는 이유가 있을까요?

0

126

1

24분 27초 연관관계 편의 메서드 위치

0

120

1

단건 주문만 가능하게 한건 의도한 부분이신가요?

0

120

2

빌드 툴, Gradle

0

73

1

h2연결은 된 것 같은데 엔티티 테이블까지 작성 후 확인해보아도 테이블이 안보입니다

0

85

2

Repository에서 EntityManager 주입 방식 차이

0

100

1

롬복과 사용자 정의 setter 메서드

0

80

1

주문 목록 조회 fetch join 질문드립니다

0

93

1

dirty checking 질문드립니다.

0

91

1