- aggregate : 사용자 객체 설정
- db : .dat or .txt로 대체
- repository : db와 연동하는 곳
- run : 사용자 화면 & Application
- service : 비즈니스 로직 처리하는 곳
- stream : db의 file stream 처리하는 곳
이제서야 알았습니다. CQRS(아직 적용 X)의 필요성을 느껴보는 프로젝트였구나!
1. Controller의 필요한 이유
- POST 도메인에서 MEMBER 도메인의 정보가 필요하면 POST의 service층에서 POST controller에게 요청을 보낸다.
- POST controller에서 응답하기 위해 자신의 (controller -> service -> repository -> db -> repository -> service -> controller)로 해결을 한 후 MEMBER service에게 응답을 한다. (추후에 이 데이터를 json형식으로 주고 받는다.)
- 이후 MEMBER service에서 요긴하게 활용.
물론 이게 Controller의 필요 이유는 아니다. 그 역할 중 하나이다.
2. 그럼 각 도메인에서 Repository들을 Interface로 관리하면 안되나?
- 그래서 Spring에 그런 Interface가 있다!!
- 그 인터페이스는 기본적인 쿼리문을 작동시켜주는데 조회할 때 문제가 된다.
- 조회할 때 가져오고 싶은 값, 형식 등이 다 다를 수도 있으니 이럴때 동적조회를 사용한다.
- 이 동적 조회를 위해서는 우리가 코드를 직접 작성해서 사용해야한다.
3. CQRS가 필요한 이유!?
위와 같은 것들을 관리하기 위해 CQRS라는 개념이 생긴 것 같다.
CQRS는 앞으로 더 알아봐야 할 듯 싶다. 일단 지금 시점에서는 이 정도만 알고 넘어가자!
'TIL' 카테고리의 다른 글
[24.08.15] java, spring Annotation 정리 (0) | 2024.08.15 |
---|---|
[24.08.12] AOP, Filter, interceptor 차이가 뭐지? (0) | 2024.08.13 |
[24.08.08] CQRS (0) | 2024.08.11 |
[24.08.09]Spring Framework의 Spring Core Container 나만의 용어 정리 (0) | 2024.08.09 |
[24.08.02] 생각 정리 (0) | 2024.08.02 |