전체 글 (47) 썸네일형 리스트형 JPA는 레이어드 아키텍처에서 어디에 속할까? *상위 문서: 코드 리뷰: 불완전한 객체에서 나타난 문제들 JPA를 사용하던 중 도메인 모델링의 규칙과 JPA의 규칙이 상충하는 일이 생겼습니다. Progress라는 Help가 가진 값객체에서 Optional한 필드를 만들고 싶었지만 값객체가 JPA의 @Embeddable로 구현되어 있어 JPA 오류가 생겼습니다. A. 문제가 생긴 이유 JPA를 처음 배울때 객체지향 방식을 따라서 데이터 베이스에 영속화 시켜주기에 도메인의 엔티티들과 자연스럽게 같이 프로젝트에서 사용되었습니다. 그러나 프로젝트는 꼭 JPA를 영속화도구로 이용하지 않을 수 있습니다. Mapper를 이용한 MyBatis, iBatis를 사용할수도 있고 preparedstatement나 statement를 이용하거나 JdbcTemp.. DDD관점에서의 레이어드 아키텍처 *'레이어드 아키텍처(Layered Architecture) feat.DDD' 에서 이어지는 아티클입니다. A. 기존 아키텍처에서 생길 수 있는 문제점. (도메인 레이어의 중요성) '레이어드 아키텍처' 아티클의 '레이어드 아키텍처의 계층' 파트를 보시면 계층간 높은 결합도 외에도 유지보수를 어렵게 만드는 것이 하나 더 있습니다. 아래는 문제의 파트인 레이어드 아키텍처의 Business Layer 에서 나타날 수 있는 문제들입니다. 문제 1. 하나의 도메인 서비스가 너무 많은 책임을 가지고 있습니다.문제 2. Application Layer가 과도한 책임을 가져서 빈약한 도메인 모델(Anemic Domain Model) 안티패턴이 나타납니다. 둘다 결국 도메인 모델링의 문제인데, 도메인.. 레이어드 아키텍처 (Layered Architecture) feat. DDD *상위 문서: 코드 리뷰: 불완전한 객체에서 나타난 문제들A. 레이어드 아키텍처(Layered Architecture) 란 레이어드 아키텍처는 소프트웨어 시스템을 여러개의 “논리적인 계층”으로 나누어 사용하는 설계 방법 입니다. 논리적으로 계층을 나누는 것은 ‘관심사의 분리’(Separation of Concerns)를 달성하기 위함으로 이를 통해 각 계층의 책임 범위를 제한합니다. 이러한 조치는 각 계층의 응집도를 높이고 서로간 결합도는 낮추어 계층간 일관성 있는 책임과 역할을 확실히 하여 유지보수와 변경에 유연한 소프트웨어를 설계할 수 있습니다. 관심사를 계층별로 분리를 하였지만, 소프트웨어가 응답을 하기 위해서는 각 계층 간의 협력이 필요합니다. 레이어드 아키텍처에서는 협력을 하면서.. 이전 1 2 3 4 5 6 7 ··· 16 다음