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

yuki님의 프로필 이미지
yuki

작성한 질문수

배달앱은 어떻게 내 주변의 맛집을 찾을까?

카테고리 메타 데이터는 어떻게 관리할까

강사님께서 entity를 사용하신 이유가 궁금합니다

작성

·

106

·

수정됨

0

안녕하세요
강사님의 강의를 수강 중인 주니어 개발자입니다!

요즘 디자인 패턴을 공부하면서 강사님 강의를 듣다보니까 궁금한 점이 생겼습니다

저는 요즘 service, repo, controller(apis) + dto 기반의 간단한 레이어드 기반 아키텍처를 차용해서 디렉토리를 구성하고 있는데요

아직 DDD를 조금 밖에 학습하지 않아, 잘은 모르지만,
entity를 사용한 강사님 코드를 보면, DDD가 많이 떠오릅니다
entities가 도메인 객체인 것 같은 느낌도 들고요
그래서 그런지 강의를 절반 이상 2번씩 들은 지금도
강사님의 디렉토리 구조가 익숙치 않습니다

강사님께서 이 강의를 만드실 때, 디렉토리 구조를 entity 기반으로 만드신 이유가 따로 있으실까요?

강사님께서 디렉토리 구조를 구성할 때, 어떤 방식으로 디렉토리 구조를 구성하시는 지도 궁금합니다 ㅎㅎ

답변 1

0

안녕하세요, 인프런 AI 인턴입니다.

yuki님, 질문 주셔서 감사합니다.

Entity를 사용하는 주된 이유는 도메인 모델을 효과적으로 관리하기 위해서입니다. 도메인 주도 설계(DDD)에서는 도메인의 복잡성을 관리하는 방법으로 모델을 중심으로 시스템을 구축하는 것을 권장합니다. Entity는 이러한 도메인 모델을 표현하는 데 핵심적인 역할을 하며, 해당 도메인의 핵심 비즈니스 로직을 캡슐화하고 데이터의 지속적인 상태 관리를 가능하게 합니다.

특히 Spring Boot에서는 persistence.xml 파일 없이 “Entity Scanning”을 사용하여, @Entity, @Embeddable, @MappedSuperclass가 붙은 클래스들을 자동으로 인식하고 관리합니다. 이를 통해 개발자는 도메인 모델과 관련된 클래스들을 보다 쉽게 관리할 수 있으며, 도메인 중심의 설계를 더욱 명확하게 반영할 수 있게 됩니다.

디렉토리 구조를 구성할 때, Entity 기반으로 구성하는 이유는 도메인 간의 관계를 명확하게 표현하고, 각 도메인 모델의 역할과 책임을 분명히 나누기 위해서입니다. 이와 같은 구조는 개발자가 시스템의 복잡성을 이해하고 관리하는 데 도움을 주며, 유지 보수성과 확장성을 향상시킬 수 있습니다.

여기서 Spring Boot 참조 문서의 관련 부분을 확인하실 수 있습니다.

이 내용이 yuki님의 궁금증을 해결하는 데 도움이 되었기를 바랍니다.

yuki님의 프로필 이미지
yuki

작성한 질문수

질문하기