inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판

게시글 목록 API - 페이지 번호 구현

XxxResponse를 service 패키지에 두신 이유가 궁금합니다.

해결된 질문

187

soap

작성한 질문수 37

0

XxxRequest / XxxResponse 클래스를 controller 패키지 하위가 아닌 Service 패키지 하위에 두신 이유가 궁금합니다.

 

의존성 방향을 Controller부터 단방향을 유지하기 위해 하신것으로 유추 하는 바입니다. 하지만 XxxRequest / XxxResponse가 service 패키지 클래스에 있는게 조금 어색해 보여서요.

 

저는 controller 하위 패키지에 requeset / response를 두고

facade 혹은 service에 클래스로 묶어서 넘길경우 에는는 domain 계층에 만든 dto를 생성해서 넘깁니다.

 

제가 생각한게 맞는지 답변 부탁드립니다~

 

(강의 최고입니다. 저만 듣고 싶어요 흙흙)

 

java mysql spring-boot kafka redis

답변 1

1

쿠케

dncjf64님, 안녕하세요!

 

경계에 대한 고민이 없으면 대수롭지 않게 넘어갈 수 있는데, 아주 좋은 질문입니다!

일단 말씀하신대로 의존성 방향을 단방향으로 유지하기 위해서 service 패키지에 위치한게 맞습니다.

자바 언어 자체로는 패키지 간 import 제약이 없다보니, 이러한 관점에 대해 직접 신경쓰면서 개발하게 되는 부분이네요.

 

request/response라는 용어가 컨트롤러 API 요청/응답에서의 용어라는 관점을 벗겨내면 크게 어려움 없이 이해되실 수 있을 것 같은데요,

서비스 레이어의 요청/응답 객체라는 관점으로 request/response라는 네이밍을 지었습니다!

동일한 용어로 보이더라도 도메인 또는 경계마다 의미와 해석이 달라질 수 있어서, 이러한 관점이라고 봐주시면 될 것 같네요!

 

저는 controller 하위 패키지에 requeset / response를 두고

facade 혹은 service에 클래스로 묶어서 넘길경우 에는는 domain 계층에 만든 dto를 생성해서 넘깁니다.

위처럼 해도 문제는 없습니다!

다만, 레이어 넘어가면서 요청/응답 객체를 부가적으로 변환하고 새롭게 선언해야하는 과정이 번거로워서

서비스 레이어에서 요청/응답 객체를 만들었네요.

이것도 Request/Response라는 네이밍을 붙였을 뿐이지, 그냥 동일한 DTO라고 봐주시면 됩니다!

 

혹시 더 궁금한 점 있으시면 편히 문의 주세요!

감사합니다!

consumer에서 에러가 발생할 경우 데이터 유실 문의

0

38

2

게시글 테스트 데이터 삽입

0

43

2

정렬, 필터, 검색 등의 조건이 붙을 경우 최적화할 수 있는 방법이 무엇이 있을까요?

0

95

2

좋아요 기능 정합성 보장 방법

0

90

2

좋아요 동시성처리 최적의 선택?

1

115

2

프론트엔드 msa 환경 api 주소 통합? 과 서버끼리 통신 방식에대해

0

85

2

안녕하세요 무한스크롤 강의듣다가 질문이 있습니다.

0

54

1

조회수 조회 로직 질문

1

64

2

비로그인 유저도 어뷰징 방지 정책

1

63

2

CommentServiceTest의 테스트 로직 질문

0

50

2

무한 스크롤 방식에서 페이지 번호 방식 쿼리의 문제점 의문

1

69

2

path 쿼리 관련 질문드립니다!

0

55

2

antigravity 에디터를 쓰신다면 종료해주세요

1

122

0

프로젝트 구조

0

83

2

article_like_count api test

0

70

2

이벤트 페이로드 객체의 생성 방식이 팩토리 메서드 패턴이 아닌 빌더 패턴인 이유가 궁금합니다!.

0

101

2

[33. 좋아요 수 구현] 에서 테스트 하는 화면 동시성 문제

0

88

2

findByPath에서 articleId로도 검색을 해야 할 것 같아요.

0

87

3

jpa ddl-auto none을 하는 이유와 join 방법

0

92

2

팩터리 메소드와 response 객체 사용 이유가 궁금합니다!

0

85

2

커서 기반 페이지네이션 과 무한 스크롤링

0

97

2

게시글 생성 로직에서 오류 발생시 redis 게시글 수 되돌리기

0

95

2

멀티 모듈이 아닌 MSA 환경에서 common

0

146

2

2Depth 강의 도중 궁금한 점 있어요!!

0

73

2