개발공간/HW

🔎 DDD를 기반으로 Controller, Service, Repository 3대장을 알아보자

로지네 2023. 4. 7. 10:19

오늘의 미션은 DDD를 기반으로 Controller, Service, Repository 3대장을 알아보기! 

나는 예시를 활용한 공부가 가장 잘 맞기 때문에 예시를 활용해 공부해보자 ✍🏻

 

💡Controller, Service, Repository가 대체 뭔데?

쉬운 이해를 위해 쇼핑몰 애플리케이션을 만든다고 가정해보자! 이 애플리케이션에는 상품을 등록하고, 주문을 처리하는 기능이 있고, 이를 DDD 아키텍처를 적용해 설계한다고 생각해보기 🤔

 

1. Controller

- 사용자의 요청을 받고, 해당 요청을 처리하는 기능을 담당

- ex) 사용자가 상품을 등록하려면 ProductController이 필요함

- ProductController는 사용자로부터 받은 상품 정보를 검증하고, ProductService를 호출해 상품을 등록한다!

 

2. Service

- ProductService는 비지니스 로직을 수행함

- 즉, 상품을 등록하고, 관련된 로그를 기록하고, 예외 처리 등을 수행

- 이 서비스는 ProductController로부터 요청을 받아, 해당 요청이 성공적으로 처리되도록 하는 역할을 수행

 

3. Repository

- ProductRepository는 데이터베이스와의 상호작용을 추상화함

- 즉, ProductRepository를 통해 데이터베이스에 저장된 상품 정보를 가져오거나, 상품을 추가하는 등의 작업을 수행

- 이 레포지토리는 ProductService에서 사용됨

 

-> 이렇게 DDD 아키텍처를 적용하면, 쇼핑몰을 좀 더 효과적으로 관리 가능, 각각의 역할을 수행하는 컴포넌트들은 서로 독립적이기 때문에, 시스템의 유지보수성과 확장성을 높일 수 있음.

 

여태 사용해왔던 것이 DDD 아키텍처였는데 DDD 아키텍처의 존재도 모르고 사용했다는 것이 어이없고 웃겼다,, ㅎㅎㅎㅎ

개념을 알고 나니 신기하고 흥미로운 스프링 세상 ~~~ 🌱 

'개발공간 > HW' 카테고리의 다른 글

❓HTTP  (1) 2023.04.11
🔎 비지니스 로직이 뭔데?  (0) 2023.04.07
❓Entity & DTO & VO  (0) 2023.04.05
❓DDD 설계와 SQL 중심 설계  (0) 2023.04.05
❓Spring에서 DI, IoC란 무엇일까?  (0) 2023.04.04