오늘의 미션은 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 |