메뉴 바로가기 검색 및 카테고리 바로가기

한빛미디어

독자리뷰

Spring + JPA 주니어 개발자가 읽으면 많이 도움될 것 같아요!

hsy0***

|

2022-04-24

도메인 주도 개발 시작하기

실제 업무에 도메인 주도 설계(DDD)를 적용할 수 있도록 기본적인 DDD의 핵심 개념을 익히고 구현을 통해 학습할 수 있도록 구성한 DDD 입문서

  • 저자 : 최범균
  • 출간 : 2022-03-21

 

서론



입사 1년차 때, 새로운 웹 서비스 개발을 했었다.

첫 프로젝트였고 DDD(Domain Driven Design)로 구현을 했었다.

신입이었기에 DDD가 뭔지 잘 모른채 개발을 했었고, 기억에 남은 것은 자바 애플리케이션 패키지 구조 (controller, service, repository) 와 Domain 단위로 나눴었다는 점?

그래서 DDD를 단순하게 생각했을지도 모른다.

여태 DDD로 프로젝트를 한 경험이 있다했지만, DDD 그 자체를 이해하지 못했었고, 진짜로 DDD를 적용을 해 구현을 했는가? 이것 또한 잘 모르겠다.

그래서 이 책을 통해 DDD를 조금이라도 알고 쓰자 싶었다.



PS. DDD는 여러 IT 회사 모집 공고의 자격 요건에도 간혹 등장한다.

- DDD 기반 프로젝트 경험





이 책을 잘 읽으려면

- Java와 Spring MVC, JPA 기반의 예제로 이루어져 있어, 해당 코드를 읽을 수 있어야 할 것 같다.



본문

아래 이미지는 "온라인 서점" 이라는 도메인의 하위 도메인들이다

도메인은 개발자 입장에서 구현해야 할 소프트웨어의 대상. 소프트웨어로 해결하고자 하는 문제 영역 이다.

도메인은 다수의 하위 도메인으로 구성된다. 각 하위 도메인이 다루는 영역은 서로 다르며, 같은 용어라도 하위 도메인마다 의미가 달라질 수 있다!

따라서, 여러 하위 도메인을 하나의 다이어그램에 모델링 하면 안 된다. (하나의 도메인을 이해하는데 방해가 됨)

(자세한 내용은 책 29 p참고! )

도메인 모델을 표현하는 방법이 두 가지가 있었다. 나는 객체 모델 밖에 몰랐는데 상태 다이어그램을 통해서도 모델링을 할 수 있었다.

주문이라는 도메인의 상태 주문전, 결제 대기중, 상품 준비중 등 상태 전이를 모델링하는 것도 도메인 모델을 표현하는 방법 중 하나였다.



1장에는 내가 알고있는 개념들과 헷갈렸던 도메인 관련 개념들이 있다.



일반적인 애플리케이션 아키텍처를 짚고 넘어갈 수 있었다.

표현 - 응용 - 도메인 - 인프라 - DB



쉽게 접할 수 있는 온라인 서점 을 주제로 하여 쉬운 예제들로 설명이 되어있다.

또한, 코드 가독성 및 이해를 높일 수 있는 팁에 대해서도 많이 소개를 하고 있었다. (예를 들면, 밸류타입)



6장 응용 서비스와 표현 영역에서 처음보는 좋은 것들이 많았다.

권한 검사라는 내용이 있다. 서비스 단에서 권한 검사를 하기도 한다는 점과 할 수 있는 법을 처음 알았다.



정말 이렇게 공부하다보면,, 모르는게 진짜 많다는 걸 알게 된다..



결론

우리 회사에서 JPA + Spring Boot 프로젝트를 많이 진행하고 있다. DDD를 보통 적용하려고 하고 있다.

하지만 나를 포함해 DDD에 대한 이해는 낮은 것 같다. 팀 단위로 같이 이 책을 스터디하여 적용을 한다면 DDD의 좋은 이점을 프로젝트에 많이 적용할 수 있지 않을까 싶다.

더 꼼꼼히 읽어 팀에 공유해야지~!

Spring boot + JPA 주니어 개발자 에게 추천합니다~~!!

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

닫기

해당 상품을 장바구니에 담았습니다.이미 장바구니에 추가된 상품입니다.
장바구니로 이동하시겠습니까?