강의

멘토링

커뮤니티

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

www님의 프로필 이미지
www

작성한 질문수

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

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

작성

·

12

0

[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)

[질문 내용]
주문 서비스에서 주문, 주문 취소 메서드 비즈니스 로직이 엔티티에 있는데 이렇게 엔티티가 비즈니스 로직을 가지는 도메인 모델 패턴과 서비스에서 비즈니스 로직을 처리하는 트랜잭션 스크립트 패턴 중에 실무에서는 보통 어떤 것을 사용하나요? 각각의 장단점이 있는지도 궁금합니다

답변 1

0

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

도메인 모델 패턴과 트랜잭션 스크립트 패턴은 각각의 특성에 따라 사용되는 상황이 다릅니다. 두 패턴 모두 장단점이 있으며, 실무에서는 프로젝트의 특성과 요구사항에 따라 적절한 패턴을 선택해 사용합니다.

도메인 모델 패턴

장점:

  1. 응집력: 비즈니스 로직이 엔티티에 포함되어 있어 관련 로직이 한곳에 모여있습니다.
  2. 재사용성: 객체 지향 원칙을 따르므로, 코드의 재사용성이 높습니다.
  3. 유지보수 용이: 변경이 일어날 때, 응집된 로직 덕분에 한 번에 처리할 수 있습니다.

단점:

  1. 복잡성 증가: 복잡한 비즈니스 로직을 처리할 경우, 엔티티가 무거워질 수 있습니다.
  2. 기술 종속성: 특정 ORM 기술에 의존적일 수 있어, 기술 변경 시 리팩토링 부담이 커질 수 있습니다.

트랜잭션 스크립트 패턴

장점:

  1. 단순성: 간단한 흐름의 로직을 처리할 때, 이해하기 쉬운 코드 작성이 가능합니다.
  2. 기술 독립성: 특정 기술에 종속적이지 않아, 기술 변화에 유연하게 대처할 수 있습니다.

단점:

  1. 중복 코드 증가: 비즈니스 로직이 여러 서비스에 흩어져 있을 경우, 중복이 발생할 수 있습니다.
  2. 유지보수 어려움: 중복된 코드로 인해, 작은 변경이라도 여러 곳을 수정해야 하는 경우가 생길 수 있습니다.

실무에서는 프로젝트의 규모, 복잡성, 팀의 경험 등의 다양한 요인을 고려해 두 패턴을 조합해 사용하기도 합니다. 도메인 모델 패턴은 복잡한 비즈니스 로직 처리가 필요한 곳에, 트랜잭션 스크립트 패턴은 간단한 처리에 적합합니다.

관련 질문 및 설명을 보실 수 있는 링크:

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

www님의 프로필 이미지
www

작성한 질문수

질문하기