ArticlePageResponse 클래스 질문
안녕하세요 강의 듣다가 문득 궁금한점이 생겨서 질문드립니다.
ArticlePageResponse 클래스에
List<ArticleResponse> articles; 를 구성으로 하여 클래스를 생성해주셨는데
ArtlcieResponse를 상속하여 만들어진 ArticlePageResponse를 활용하여도 상관 없을까요??
자바, 스프링을 동시에 공부하고 있다보니.. 주니어의 허접한 질문에 답변해주시면 감사드리겠습니다..
답변 2
0
동관님, 안녕하세요!
ArticleResponse 리스트를 상속으로 표현한다는 것이 어떤 구조인지 잘 이해를 못했습니다!
게시글 목록을 상속으로 만들 수가 있는걸까요?
의도한 응답을 만들 수 있으면, 구성/상속 어떠한 것으로 만들든 상관 없지만,
굳이 복잡한 구조로 풀어낼 필요는 없을 것 같습니다.
또, 개인적으로는 상속 구조를 선호하진 않습니다.
코드 추적이나 이해가 어려워지고, 클래스 간에 코드가 강결합되기 때문에 재사용이나 유연하게 다루기도 어렵고, 다중 상속도 안돼서 제한되는 부분 등의 단점이 있는데, 인터넷 찾아봐도 많이 나오고 직접 경험해봐야 와닿는 부분이라 가볍게 언급 드려봅니다.
그래서 가능하다면 구성으로 푸는 것을 선호하는 편입니다!
0
안녕하세요, 인프런 AI 인턴입니다. 동관님.
스프링 부트와 자바를 공부하시다가 ArticlePageResponse 클래스에 대해 궁금하신 점이 있으시군요. 질문해주신 부분에 대해 설명드리겠습니다.
클래스 설계 시 상속의 활용
상속 사용 여부:
ArticlePageResponse클래스가ArticleResponse를 상속하여 사용할 수 있는지에 대한 질문을 주셨습니다. 상속은 ‘is-a’ 관계를 나타냅니다. 즉, ArticlePageResponse가 ArticleResponse의 더 구체적인 형태라면 상속을 사용할 수 있습니다.
- 예를 들어,
ArticlePageResponse가 단순히 여러 개의ArticleResponse객체를 담고 있는 목록이라면 상속보다는 현재 사용 방식대로List<ArticleResponse>형태의 필드를 포함시켜서 관리하는 것이 더 적절할 수 있습니다. 이는 ‘has-a’ 관계를 나타내며, 컴포지션(구성)을 활용한 설계라고 볼 수 있습니다.
상속의 부작용:
- 상속을 남발하게 되면 불필요한 의존성과 복잡한 구조를 만들어 코드의 가독성과 유지 보수성이 떨어질 수 있습니다. 따라서 필요하지 않은 경우 컴포지션을 사용하는 것이 일반적으로 추천됩니다.
- 상속을 남발하게 되면 불필요한 의존성과 복잡한 구조를 만들어 코드의 가독성과 유지 보수성이 떨어질 수 있습니다. 따라서 필요하지 않은 경우 컴포지션을 사용하는 것이 일반적으로 추천됩니다.
Java에서 상속과 컴포지션에 대한 실제 사용 예를 알아보는 것도 도움이 될 것입니다. 아래 링크를 통해 유사한 사례에 대한 설명을 참고하실 수 있습니다:
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
@Version 어노테이션이 붙은 필드는 낙관적 락이든 비관적 락이든 업데이트가 됩니다.
0
31
1
consumer에서 에러가 발생할 경우 데이터 유실 문의
0
48
2
게시글 테스트 데이터 삽입
0
51
2
정렬, 필터, 검색 등의 조건이 붙을 경우 최적화할 수 있는 방법이 무엇이 있을까요?
0
104
2
좋아요 기능 정합성 보장 방법
0
98
2
좋아요 동시성처리 최적의 선택?
1
136
2
프론트엔드 msa 환경 api 주소 통합? 과 서버끼리 통신 방식에대해
0
92
2
안녕하세요 무한스크롤 강의듣다가 질문이 있습니다.
0
59
1
조회수 조회 로직 질문
1
67
2
비로그인 유저도 어뷰징 방지 정책
1
73
2
CommentServiceTest의 테스트 로직 질문
0
54
2
무한 스크롤 방식에서 페이지 번호 방식 쿼리의 문제점 의문
1
74
2
path 쿼리 관련 질문드립니다!
0
60
2
antigravity 에디터를 쓰신다면 종료해주세요
1
123
0
프로젝트 구조
0
88
2
article_like_count api test
0
79
2
이벤트 페이로드 객체의 생성 방식이 팩토리 메서드 패턴이 아닌 빌더 패턴인 이유가 궁금합니다!.
0
104
2
[33. 좋아요 수 구현] 에서 테스트 하는 화면 동시성 문제
0
92
2
findByPath에서 articleId로도 검색을 해야 할 것 같아요.
0
92
3
jpa ddl-auto none을 하는 이유와 join 방법
0
97
2
팩터리 메소드와 response 객체 사용 이유가 궁금합니다!
0
90
2
커서 기반 페이지네이션 과 무한 스크롤링
0
110
2
게시글 생성 로직에서 오류 발생시 redis 게시글 수 되돌리기
0
97
2
멀티 모듈이 아닌 MSA 환경에서 common
0
156
2





