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

euni님의 프로필 이미지
euni

작성한 질문수

호돌맨의 요절복통 개발쇼 (SpringBoot, Vue.JS, AWS)

게시글 수정

부끄럽지만 아래 글을 읽고도 PostEditor의 목적을 잘 모르겠습니다

작성

·

637

3

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
 
 
 
아래 글의 답변을 읽고 이해한 바로는 반드시 title과 content를 모두 가져오기 위해 (해당 프로젝트에서 그렇게 하기로 협의가 되어있으므로)
PostEditor를 사용해서 title과 content를 강제하는 목적으로 만들었다는 뜻으로 이해했는데요
 
그게 그냥 response용으로 만든 Edit이라는 DTO 객체에 NotEmpty를 쓰는 것과 무엇이 다른가요?
오히려 분산함으로써 관리만 더 번거로워진 게 아닌가 하는 생각이 들어서요..
 
아니면 해당 예제는 간단하게 만든 것이라 별다른 차이를 느낄 수 없는 것이고 추후 확장성을 고려해서 요구사항이 늘어날 때 Post 엔티티를 오염시키거나 서비스 - 레파지토리 사이의 DTO에 대한 역방향 의존성을 주지 않고 도메인 계층에서 로직을 해결하기 위해서 분리한 건가요?
 
아직 아는 게 별로 없어서 질문의 핀트를 잡지 못해 다소 장황하게 질문 드린 점 죄송합니다 ㅜ 짧은 답변이라도 주신다면 정말 감사하겠습니다!

답변 2

2

호돌맨님의 프로필 이미지
호돌맨
지식공유자

안녕하세요. 호돌맨입니다.
질문을 남겨주셔서 감사합니다.
(혹시 "그게 그냥 response용으로 만든 Edit이라는 DTO 객체에.." 에서 response가 아니라 request를 의미하신 게 맞으실까요?)

사실 Editor 방식을 통해 entity를 수정하는 건 다른데서도 사용하는지 잘 모르겠습니다. 그냥 제가 편하고자 만든 패턴이라..

우선 답변만 말씀드리자면 말씀하신 게 맞습니다.
EditRequest -> Editor -> Entity -> (DTO, 강의에서는 복잡해질까봐 생략함) -> Response 로 각 관심사를 분리하기 위함입니다.
그리고 추가적으로.. Entity를 수정할때 EditRequest를 직접 꺼내서 사용해도 되지 않나? 하는 궁금함이 있으시죠.

예를들어 지갑(request)에서 100원(request.title), 500원(request.content) 짜리를 꺼내서 자판기(entity)에 동전을 넣으려고합니다.
그런데 자판기 동전 투입구(editor)가 100원짜리 크기(editor.title)만 존재한다면 우리는 "이 자판기는 500원짜리(request.content)를 투입할 수 없구나" 라는 걸 알게됩니다. 동전투입구(editor)가 변경점을 제한해주기 때문입니다.
사실 지금은 동전투입구(editor)가 100원, 500원 모두 받을 수 있는 상태이기 때문에 동전 투입구(editor)가 딱히 필요하지 않을거라 느낄 수 있다고 봅니다. 지갑(request)을 자판기(entity) 내부로 쑤셔넣어도 괜찮긴하죠

질문하는데 죄성함은 없다고 생각합니다 언제든 편하게 질문해주세요.

감사합니다.

1

euni님의 프로필 이미지
euni
질문자

많은 도움 되었습니다! 감사합니다🙇‍♂️

euni님의 프로필 이미지
euni

작성한 질문수

질문하기