[옛날 글들] 도메인 주도 설계
-
도메인 주도 설계의 본질 - 2부[끝][옛날 글들] 도메인 주도 설계 2024. 5. 29. 16:05
이전 글 : 도메인 주도 설계의 본질 - 1부순수의 시대제조, 건축 메타포로부터 파생된 분석/설계/구현의 명확한 분리가 소프트웨어 개발에 적용하기에는 부적합하다는 깨달음과, 애자일 방법론의 대두로 인한 프로세스와 문서화로부터 개인과 팀, 소프트웨어로의 무게 중심 이동, 리팩토링과 피드백을 통한 점진적인 설계 기법의 적용을 통한 분석/설계/구현 사이클 통합, 그리고 엔터프라이즈 애플리케이션 환경에서 표현적 차이를 줄일 수 있는 POJO 중심의 경량 프레임워크의 대두로 소프트웨어 업계는 기민함과 가벼움의 시대로 접어 들었다. 애자일 동맹은 소프트웨어 개발이 기계적인 작업이 아닌 사람의 창조성과 협업에 의한 작업이라는 사실을 일깨워 주었다. POJO와 경량 프레임워크는 소프트웨어가 기술이 아닌 도메인에 의해 ..
-
도메인 주도 설계의 본질 - 1부[옛날 글들] 도메인 주도 설계 2024. 5. 29. 10:20
은 총알은 없다1986년 소프트웨어 공학의 선구자인 Frederick Brooks는 그의 기념비적인 논문 “은 총알은 없다(No Silver Bullet)”에서 소프트웨어가 태생적으로 안고 있는 본질적인 문제(essence)로 인해 앞으로 10년 내에 생산성, 신뢰성, 단순성을 단 열 배라도 향상시켜줄 기술이나 기법은 출현하지 않을 것이라고 예견했다. Frederick Brooks는 소프트웨어와 관련된 본질적인 어려움을 복잡성, 순응성, 변경 가능성, 비가시성으로 보고, 이러한 본질적인 문제가 해결되지 않는 한 소프트웨어를 프로그래밍 언어로 표현하기 위한 고수준 언어, 통합 환경과 같은 부차적인 작업(accidents)에 많은 노력을 쏟는 것 만으로는 소프트웨어 개발에 있어 비약적인 생산성 향상을 기대할..
-
도메인 주도 설계의 적용-4.ORM과 투명한 영속성 5부[끝][옛날 글들] 도메인 주도 설계 2024. 5. 8. 08:55
이전글 : 도메인 주도 설계의 적용-4.ORM과 투명한 영속성 4부이 글은 제가 2008년 6월부터 10월까지 5개월간 마이크로소프트웨어에 연재했던 "도메인 주도 설계의 적용"이라는 원고의 원글입니다. 잡지에 맞추어 편집을 하는 과정에서 지면 상의 제약으로 인해 수정되거나 삭제된 부분이 있어 제 블로그에 원글을 올립니다. 도메인 주도 설계(Domain-Driven Design)에 관심 있는 분들에게 도움이 되었으면 합니다. Hibernate에서 사용할 맵핑 파일의 작성이 끝났으므로 Hibernate와 Spring 통합을 위해 Spring 빈 컨텍스트에 Hibernate 관련 빈을 추가하자. 우선 데이터소스를 추가하자. 이제 데이터 소스를 사용하여 Hibernat..
-
도메인 주도 설계의 적용-4.ORM과 투명한 영속성 4부[옛날 글들] 도메인 주도 설계 2024. 5. 2. 20:01
이전글 : 도메인 주도 설계의 적용-4.ORM과 투명한 영속성 3부 이 글은 제가 2008년 6월부터 10월까지 5개월간 마이크로소프트웨어에 연재했던 "도메인 주도 설계의 적용"이라는 원고의 원글입니다. 잡지에 맞추어 편집을 하는 과정에서 지면 상의 제약으로 인해 수정되거나 삭제된 부분이 있어 제 블로그에 원글을 올립니다. 도메인 주도 설계(Domain-Driven Design)에 관심 있는 분들에게 도움이 되었으면 합니다. 영속성 관리 리포지토리Hibernate는 투명한 영속성을 지원하는 오픈 소스 ORM으로 Java 커뮤니티에서 사용되는 ORM의 표준이다. Hibernate는 EJB 3.0의 엔티티 빈 스펙인 JPA에 큰 영향을 끼쳤으며 JBoss의 엔티티빈 구현체로 포함되어 있다. Spring 프..
-
도메인 주도 설계의 적용-4.ORM과 투명한 영속성 3부[옛날 글들] 도메인 주도 설계 2024. 5. 1. 07:36
이전글 : 도메인 주도 설계의 적용-4.ORM과 투명한 영속성 2부 이 글은 제가 2008년 6월부터 10월까지 5개월간 마이크로소프트웨어에 연재했던 "도메인 주도 설계의 적용"이라는 원고의 원글입니다. 잡지에 맞추어 편집을 하는 과정에서 지면 상의 제약으로 인해 수정되거나 삭제된 부분이 있어 제 블로그에 원글을 올립니다. 도메인 주도 설계(Domain-Driven Design)에 관심 있는 분들에게 도움이 되었으면 합니다. 객체 관계 맵핑과 도메인 모델3부에서 살펴본 바와 같이 상태와 행위를 함께 가지는 풍부한 객체 모델로 도메인 레이어를 구성하는 것을 도메인 모델(DOMAIN MODEL) 패턴이라고 한다. 도메인 모델 패턴은 상속, 캡슐화, 다형성과 같은 객체 지향의 장점을 십분 활용함으로써 수정이..
-
도메인 주도 설계의 적용-4.ORM과 투명한 영속성 2부[옛날 글들] 도메인 주도 설계 2024. 4. 24. 14:48
이전글 : 도메인 주도 설계의 적용-4.ORM과 투명한 영속성 1부 이 글은 제가 2008년 6월부터 10월까지 5개월간 마이크로소프트웨어에 연재했던 "도메인 주도 설계의 적용"이라는 원고의 원글입니다. 잡지에 맞추어 편집을 하는 과정에서 지면 상의 제약으로 인해 수정되거나 삭제된 부분이 있어 제 블로그에 원글을 올립니다. 도메인 주도 설계(Domain-Driven Design)에 관심 있는 분들에게 도움이 되었으면 합니다. 엔티티의 생명 주기엔터프라이즈 어플리케이션을 구성하는 도메인 객체의 생명 주기를 바라보는 시각은 크게 두 가지로 나눌 수 있다. 첫 번째는 도메인 객체의 생명주기를 구현 기술에 종속적인 시각으로 바라보는 것이다. 예를 들어 퍼시스턴스 메커니즘으로 JDBC를 직접 사용하는 트랜잭션..
-
도메인 주도 설계의 적용-4.ORM과 투명한 영속성 1부[옛날 글들] 도메인 주도 설계 2024. 4. 23. 07:59
이전글 : 도메인 주도 설계의 적용 - 3. 의존성 주입과 관점 지향 프로그래밍 5부 이 글은 제가 2008년 6월부터 10월까지 5개월간 마이크로소프트웨어에 연재했던 "도메인 주도 설계의 적용"이라는 원고의 원글입니다. 잡지에 맞추어 편집을 하는 과정에서 지면 상의 제약으로 인해 수정되거나 삭제된 부분이 있어 제 블로그에 원글을 올립니다. 도메인 주도 설계(Domain-Driven Design)에 관심 있는 분들에게 도움이 되었으면 합니다. 코드와 모델을 밀접하게 연관시키는 것은 코드에 의미를 부여하고 모델을 적절하게 한다.-Eric Evans뒤돌아보기“우리는 주문 시스템이 필요해요.” 모든 것은 이 한마디로부터 시작됐다. 고객은 주문 시스템을 원한다. 이 시스템이 무엇을 해야 하는지는 아직 잘 모르..
-
도메인 주도 설계의 적용 - 3. 의존성 주입과 관점 지향 프로그래밍 5부[옛날 글들] 도메인 주도 설계 2024. 4. 20. 09:12
이전글 : 도메인 주도 설계의 적용 - 3. 의존성 주입과 관점 지향 프로그래밍 4부 이 글은 제가 2008년 6월부터 10월까지 5개월간 마이크로소프트웨어에 연재했던 "도메인 주도 설계의 적용"이라는 원고의 원글입니다. 잡지에 맞추어 편집을 하는 과정에서 지면 상의 제약으로 인해 수정되거나 삭제된 부분이 있어 제 블로그에 원글을 올립니다. 도메인 주도 설계(Domain-Driven Design)에 관심 있는 분들에게 도움이 되었으면 합니다. 너무 큰 보폭으로 진행한 것 같다. 잠시 숨을 고르고 ProductRepository에 대한 테스트를 추가하자. 지금 까지는 JUnit에서 제공하는 TestCase 클래스를 상속 받아 테스트 클래스를 작성했지만 Spring을 사용할 경우 빈컨텍스트에 대한 세밀한..