Domain-Driven Design

    DDD 세레나데 2주차 - 크게 소리 내어 모델링하기

    NEXTSTEP에서 진행하는 교육과정 DDD 세레나데 2기다. DDD(Domain-Driven Design) 세레나데 edu.nextstep.camp 교육을 수강한 지 1년이 지났지만, 이제야 후기를 작성한다. 2주차 후기 2주차는 모델링을 주제로 유비쿼터스 언어, 바운디드 컨텍스트, 이벤트 스토밍을 배우는데 간단하게 설명하면 유비쿼터스 언어는 구성원이 사용하는 비즈니스 용어를 하나로 통일한 언어이며 바운디드 컨텍스트는 도메인 범위를 정한다고 볼 수 있다. 이벤트 스토밍은 비즈니스 도메인을 빠르게 탐색하고 학습하여 유비쿼터스 언어와 바운디드 컨텍스트를 정하는 데 큰 도움을 준다. 이번에 배운 내용은 DDD를 적용하는 회사가 아니더라도 적용할 수 있는 좋은 내용이다. 이벤트 스토밍으로 구성원간 서로 다른 ..

    이벤트 스토밍(Event Storming)

    시작하면서 구성원이 수긍하는 유비쿼터스 언어나 바운디드 컨텍스트를 정하려면 어떻게 해야 할까? 비즈니스에 참여하는 구성원이 모여서 소통하고 정해야 할 것이다. 그러면 책상에 앉아 회의처럼 이야기해야 할까? 그럼 전체적으로 정하는데 많은 시간이 소비되고 피로도가 쌓일 것이다. 어떤 방식으로 해야할까? 알베르토 브란돌리니(Alberto Brandolini)가 제안한 비즈니스 도메인을 빠르게 탐색하고 학습할 수 있는 이벤트 스토밍에 대해 알아보자. 이벤트 스토밍이란? 도메인 전문가와 개발자를 학습 과정에 참여시키기 위한 빠른 설계 기술이다. 클래스와 데이터베이스가 아닌 비즈니스 및 비즈니스 프로세스에 중점을 둔다. 모든 사람이 동일한 수준으로 접근할 수 있게 시각적인 접근 한다. 진행 방법 큰 벽이나 화이트보..

    DDD 세레나데 1주차 - 도메인 주도 설계 이해

    NEXTSTEP에서 진행하는 교육과정 DDD 세레나데 2기다. DDD(Domain-Driven Design) 세레나데 edu.nextstep.camp 교육을 수강한 지 1년이 지났지만, 이제야 후기를 작성한다. 1주차 후기 1주차는 레거시 코드를 통해 도메인 주도 설계 등장 배경을 겪어보고, 왜 도메인 주도 설계인가를 알아본다. 리팩토링을 하기 위한 첫걸음으로 테스트 코드를 학습한다. 테스트 코드를 작성하는 방법은 여러 가지로 모두 경험해보고 어느 상황에 사용하면 좋을지 알아본다. 텐트를 세우기 위해 말뚝이 필요하듯이 리팩터링을 하기 위해선 테스트 코드가 필요하다. 나는 TDD, 클린코드 with Java 11기가 끝난 지 얼마 안 된 시점이라 생소한 개념이 많아서 따라가기 힘들었는데 아래의 개념을 들어..