DDD(Domain Driven Design)란?
DDD(Domain Driven Design)는 우리말로 도메인 주도 설계 정도로 해석할 수 있는데, 용어의 의미 그대로 도메인 위주의 설계 기법을 의미합니다.
그런데 성능, 생산성, 안정성 면에서 뛰어난 애플리케이션을 만들기 위해 가장 중요한 영역인 애플리케이션의 설계는 구현보다 더 어렵습니다.
그래서 오래 전부터 많은 사람들이 어떻게하면 좀 더 나은 애플리케이션을 잘 설계할 수 있을까라고 고민한 결과물 중 하나가 바로 DDD(Domain Driven Design)입니다.
DDD 자체는 굉장히 뛰어난 설계 및 구현 기법이라 생각하지만 DDD의 개념을 완벽히 이해하는 것이 쉽지 않기 때문에 많은 학습과 설계 경험이 필요하다고 생각합니다.
그런데 Spring Data JDBC라는 기술이 DDD와 밀접한 관련이 있기 때문에, Spring Data JDBC에서 사용하는 DDD에 대한 기본 개념 정도는 이해하고 있어야 됩니다.
도메인(Domain)이란?
애플리케이션 개발에서 흔하게 사용하는 도메인이란 용어는 주로 비즈니스적인 어떤 업무 영역과 관련이 있습니다.
예를 들어, 여러분들이 새로운 배달 주문 앱을 만들어야 한다면 고객과 음식점, 배달원, 그리고 카드사 또는 은행 등 배달 주문 앱을 구현하기 위해 필요한 업무들을 자세히 알면 알수록 퀄리티가 높은 애플리케이션을 만들 가능성이 높습니다.
즉, 고객이 음식을 주문하는 과정, 주문받은 음식을 처리하는 과정, 조리된 음식을 배달하는 과정 등의 도메인 지식(Domain Knowledge)들을 서비스 계층에서 비즈니스 로직으로 구현해야 하는 것입니다.
도메인이 무엇인지 이해가 되었을까요? 그래도 잘 이해가 안된다면 그냥 아래 문장만 기억을 하고 있으면 될 것 같습니다.
“도메인이란 용어 자체는 한 마디로 우리가 실제로 현실 세계에서 접하는 업무의 한 영역이다”
'TIL' 카테고리의 다른 글
[SpringMVC][Rest Client] (0) | 2022.10.31 |
---|---|
[SpringMVC][HTTP헤더] (0) | 2022.10.30 |
[도메인 엔티티 및 테이블 설계][Sample] (0) | 2022.10.27 |
[SpringMVC][Spring Data JDBC] (0) | 2022.10.27 |
[SpringBoot][SpringBoot란?] (0) | 2022.10.22 |