일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
- ExceptionHandlerFilter
- Spring Reactive Programming
- REDIS
- 비동기
- Apple 로그인
- ExecutorService
- 티스토리챌린지
- 스레드
- 비사이드프로젝트
- querydsl
- Spring Cloud OpenFeign
- 프로세스
- spring boot
- Spring Security
- springboot
- 멀티스레드
- 오블완
- asciidoctor
- 코드로 배우는 스프링 부트 웹 프로젝트
- 멀티프로세싱
- 도메인 주도 설계(DDD) 기반 마이크로서비스(MSA) 모델링
- 멀티태스킹
- 네이버클라우드 서버
- 사이드 프로젝트
- OpenFeign
- 2024년 상반기 회고
- microsoft
- FeignClients
- OAuth2.0
- JWT
- Today
- Total
기록하기
[디프만 13기] 인프런 강의 수강 일기 본문
디프만 13기 SERVER 파트에 참여하게 되었다🥳
초반에는 팀 별로 같이 아이디어 회의를 통해 기능을 도출하는 시간이기 때문에 SERVER 파트끼리는 사용해보고 싶은 기술 스택이나 아키텍처에 대해 이야기를 나눌 시간이 주어졌다.
이번에 우리 팀에서는 헥사고날 아키텍처를 경험해보고 싶다는 의견과 + 그 내부적인 도메인을 DDD 로 설계하고 싶다는 의견이 나왔다. 그리고 멀티 모듈을 활용하여 설계를 하고 싶다는 의견을 같이 더하여 결국 하고 싶었던 것, 공부해보고 싶었던 것 다 해보자! 라는 결론이 나오게 되었다.
하고 싶은 거 다 해보기! 그러나 DDD 어떻게 설계해야 복잡성이 좀 줄어들 수 있을까?
필자는 레이어드 아키텍처만 경험을 해보고 헥사고날, DDD 를 제대로 경험한 적이 없었다. 또한 멀티 모듈도 흔히 common 모듈이 비대해지는 문제를 명확하게 해결해 본 적이 없었다..
다른 팀원들의 경우에는 헥사고날이나 DDD 에 대해 설계 및 스터디 경험이 있었으나 여전히 어려움이 있다고 말해주어 이번에 디프만 13기에서 지원해준 인프런 쿠폰을 활용하여 강의를 구매하여 공부를 진행하게 되었다.
여러 강의들 중에 우리 팀이 선택한 강의는 이 강의이다.
왼쪽 강의도 고민이 되었으나, DDD 내용을 더 다룬 것은 오른쪽이라고 판단하여 이 강의로 결정하게 되었다.
강의 후기
먼저 후기를 말씀드리자면, 현재 miro 를 통해 이벤트 스토밍을 실습해보면서 강의를 수강중인데 여전히 Aggregate, Bounded Context 개념이 어렵게 다가오는 것 같다.
여기서 Aggregate 란 아래의 설명과 같다.
- 엔티티를 의미하며,
- Aggregate Root 를 통해 다른 엔티티 및 VO 에 접근할 수 있다.
- 비대해지는 것을 경계하여 작게 설계를 해야하고, 하나의 일을 잘 수행할 수 있는 작은 Aggregate 로 분리해야 한다.
- Aggregate 단위도 마이크로 서비스가 될 수 있으며,
- 한 Aggregate 에서 다른 Aggregate 의 참조는 식별자를 통해서만 참조해야한다.
이를 통해 도메인 주도 설계는 의존관계가 적어야 독립적으로 설계가 가능하게 됨을 알 수 있다.
또한 아래의 용어에 대한 설명도 추가로 정리해보고자 한다.
- Ubiquitous Language : 비즈니스 도메인에 관련된 용어, 정확하고 일관, 도메인 내에서 공통적으로 사용하는 언어
- Bounded Context : 맥락의 경계, 모델의 경계, 도메인 간의 경계
- Context Map : 바운디드 컨텍스트 간의 접점
설명만 정리하려니 잘 이해가 안 되어.. miro 실습 결과를 같이 공유해보고자 한다.
도서 대여 프로그램이라는 하나의 예시를 바탕으로 같이 이벤트 스토밍을 진행했는데, 물론 이 내용만으로는 모든 것을 이해하기는 어렵지만 같이 따라해보니 회원이 다른 도메인에서는 대여자, 연체자가 될 수도 있고 크게 회원, 도서, 대여의 도메인으로 묶을 수도 있음을 알게 되었다.
이 강의를 듣고 팀원들과 스터디를 진행하여 현재까지 진행된 아이디어로 이벤트 스토밍을 진행할 예정인데 위 그림을 좀 더 디벨롭 시켜서 같이 도메인을 나누면 더 개념이 명확해질 것 같다.
또한 강의 내용 뿐만 아니라 강의 내용에서 추천해주신 책을 같이 스터디하면서 진행하면, 아주 정확한 DDD + 헥사고날 아키텍처 설계는 어려워도 우리 팀만의 아키텍처를 만들어 볼 수 있을 거라고 기대한다.