CUD(Create Update Delete. Command)는 normalized된 데이터를 가지고 ORM 등을 가지고 아름답게 처리 가능한데, R(Retrieve. Query)는 점차 요구사항이 증가하면서 denormalized되는 경향이 있음. 이걸 한 모델(시스템)로 처리하려고 하면 normalized된 데이터를 사용하는 복잡한 Biz Logic이 denormalized된 조회 로직 때문에 더렵혀지고, 복잡해 짐 CUD는 깨끗한 객체지향 세계에서 보호하고 R은 다양한 Needs에 맞게 그때 그때 만드는 것이 지속 가능한 SW 개발에 도움이 되는 것 같음. 즉 시스템이 복잡해 지는 것은 복잡한 Biz Logic 때문이 아니라 그때 그때 나오는 다양한 조회 로직 때문이라고 여겨짐 그래서 둘을 분리하는 것이 필요함. CUD는 Domain Driven Design이니 OOP 등을 잘 준수하고 R은 그냥 절차지향적으로 만드는 것이 맞다고 생각함. 범균님 동의하나요 ^^
안녕하세요 범균님. 범균님의 ddd start2를 여러번 읽으며 제 업무코드에 반영하려 노력중인 주니어개발자입니다. 하지만 적용이 잘 안되었습니다. 왜냐하면 저희 업무는 명령은 거의 없이 쿼리에만 초점이 맞춰져 있다는 사실을 알게되었습니다. 그럼에도 if문으로 모든 업무를 처리하는게 안타까워 개선하고싶습니다. 이런 경우 프론트엔드 프레임워크나 함수형 프로그래밍에서 해결책을 찾을 수 있을까요? DDD는 별 도움이 안되는 것일까요? 아직까지도 너무나 혼란스러운 상황입니다.
DDD를 한다는 게 꼭 무슨 패턴을 써야 하고 그런 건 압니다. 도메인을 중심으로 코드를 만드는 노력이 중요하겠죠. 조회 기능이라고 해도, 결국 도메인 내에서의 조회 기능이니, if 문을 쓰더라도 로직의 중복을 최소화하면서 도메인이 잘 드러나게 하면 된다고 합니다. 이것은 객체 지향, 함수형이나, 프레임워크니 하는 것 하고는 별개구요.
CQRS에서 Query 에 해당하는 클래스명에 대해 고민이 있는데, 10분 30초에서는 OrderListDataDao라고 예시가 나와있습니다. CQRS 패턴을 도입했다는 것을 좀 더 확실히 하기 위해 Dao 대신 Query를 사용하여 OrderListDataQuery 등의 명명법에 대해서는 어떻게 생각하시나요?
안녕하세요! 개발자님의 책 2권을 읽고 팬이된 취준생 개발자입니다. 남들보다 앞서가고 최신 기술 트랜드를 빠르게 익혀서 이렇게 남들에게 공유까지 할 수 있는 역량을 가지려면, 영어를 잘 해야 되겠죠? 저도 나중에 영어 실력도 키워서 직접 최신 기술을 스스로 익혀서 한국 사람들에게 번역하여 책이나 영상을 통해 알려줄 수 있는 수준이 되고 싶네요!
안녕하세요 @Jason 님. 저는 기술 문서를 사전 찾아 가면서 읽고 해석할 수 있는 수준입니다. 좀 오래 걸려도 일부러 원서를 사서 읽는 연습도 하구요. 듣기는 거의 안 되서 유튜브 자막 틀어 놓고 0.5 배속이나 0.75 배속으로 놓고 읽으면서 봅니다. 영어를 잘 하는 분들에 비하면 진도가 상당히 느린데 무식하게 꾸역 꾸역 읽다 보면 그래도 몇 달 걸려 원서 한 권 읽는 게 가능해 졌습니다.
CUD(Create Update Delete. Command)는 normalized된 데이터를 가지고 ORM 등을 가지고 아름답게 처리 가능한데,
R(Retrieve. Query)는 점차 요구사항이 증가하면서 denormalized되는 경향이 있음.
이걸 한 모델(시스템)로 처리하려고 하면 normalized된 데이터를 사용하는 복잡한 Biz Logic이
denormalized된 조회 로직 때문에 더렵혀지고, 복잡해 짐
CUD는 깨끗한 객체지향 세계에서 보호하고
R은 다양한 Needs에 맞게 그때 그때 만드는 것이 지속 가능한 SW 개발에 도움이 되는 것 같음.
즉 시스템이 복잡해 지는 것은 복잡한 Biz Logic 때문이 아니라
그때 그때 나오는 다양한 조회 로직 때문이라고 여겨짐
그래서 둘을 분리하는 것이 필요함.
CUD는 Domain Driven Design이니 OOP 등을 잘 준수하고
R은 그냥 절차지향적으로 만드는 것이 맞다고 생각함.
범균님 동의하나요 ^^
대체로 동의하는데요, 추가로 의견을 적어보자면 하위 도메인 내에서의 R은 여러 데이터에 대한 조인이 어느 정도는 괜찮을 것 같고, R이라도 서로 다른 하위 도메인 간에는 DB 수준에서의 결합(조인)을 최대한 끊어야 한다고 생각합니다.
오오.. 이게 정말 필요한 내용이었습니다!
항상 조금만 프로젝트가 커져도 뇌정지가 왔는데 이런 지식들이 필요했던거 같습니다! 감사합니다!
정말 소름돋네요...
강의를 보면 볼수록 많은 것을 얻어갑니다!
좋은 강의 감사해요~~
이번에 새로운 프로젝트를 맡게되면서 코드 분석을 하다보니 CQRS패턴이 적용되어 있더군요.
다시 한번 복습합니다. 감사합니다~!
선생님 도메인 주도 개발하기 책 너무 잘 읽었습니다! CQRS가 잘 이해가 안됐는데 영상도 잘 보고 갑니다 ^^!!
큰 틀을 잡는데 많은 도움이 되네요 ㄷㄷ 앞으로도 기대하겠습니다
정말 이번 영상은 한마디한마디 많은 도움이 되었습니다. 감사합니다
너무 좋네요......
영상 잘 보았습니다! 학시리 cqrs 아는척 할 수 있을거 같아요 ㅋ
척하는데 도움이 되었으면 합니다. 2편도 같이 보시면 더 도움되실 거에요.
@@madvirus 네 꼭 보겠습니다 ㅎ
앞으로도 유익한 영상 많이 기대하겠습니다~
👏👏👏감사합니다
요즘 출근길 유일한 낙입니다❤
잘들었습니다 감사합니다
안녕하세요 범균님. 범균님의 ddd start2를 여러번 읽으며 제 업무코드에 반영하려 노력중인 주니어개발자입니다. 하지만 적용이 잘 안되었습니다. 왜냐하면 저희 업무는 명령은 거의 없이 쿼리에만 초점이 맞춰져 있다는 사실을 알게되었습니다. 그럼에도 if문으로 모든 업무를 처리하는게 안타까워 개선하고싶습니다. 이런 경우 프론트엔드 프레임워크나 함수형 프로그래밍에서 해결책을 찾을 수 있을까요? DDD는 별 도움이 안되는 것일까요? 아직까지도 너무나 혼란스러운 상황입니다.
DDD를 한다는 게 꼭 무슨 패턴을 써야 하고 그런 건 압니다. 도메인을 중심으로 코드를 만드는 노력이 중요하겠죠. 조회 기능이라고 해도, 결국 도메인 내에서의 조회 기능이니, if 문을 쓰더라도 로직의 중복을 최소화하면서 도메인이 잘 드러나게 하면 된다고 합니다. 이것은 객체 지향, 함수형이나, 프레임워크니 하는 것 하고는 별개구요.
답변 감사드립니다. 실버불렛은 없다 느낌으로 받아들이면 될까요. 종말시대에 나를 구원해줄 메시아가 잇을꺼란 믿음이 잇엇는데, 그렇지않나봅니다. 왕초식 영상 다시금 돌려보며 마음다잡아보겟습니다. 감사합니다!
역쉬 굿입니다~
안녕하세요 범균님
영상 정말 잘 보고 있습니다.
3:00에서 나오는 UML에서 query package에 있는 MemberDao는 domain package에 있는 MemberRepository를 사용하나요? 아니면 다른 것을 사용하나요?
쿼리 패키지의 Dao는 도메인 리포지토리를 사용하지 않고 자체적으로 조회 기능을 구현합니다.
@@madvirus 감사합니다! 해당 영상 덕분에 CQRS가 왜 좋은지 알게됐습니다~
CQRS에서 Query 에 해당하는 클래스명에 대해 고민이 있는데, 10분 30초에서는 OrderListDataDao라고 예시가 나와있습니다.
CQRS 패턴을 도입했다는 것을 좀 더 확실히 하기 위해 Dao 대신 Query를 사용하여 OrderListDataQuery 등의 명명법에 대해서는 어떻게 생각하시나요?
제 경우는 AnyQueryService라는 이름을 주로 쓰고 쿼리를 실행하는 코드는 Dao라는 이름을 씁니다. 명령에 해당하는 디비 연동 코드는 Repository라는 이름을 쓰고요.
감사합니다
안녕하세요! 개발자님의 책 2권을 읽고 팬이된 취준생 개발자입니다. 남들보다 앞서가고 최신 기술 트랜드를 빠르게 익혀서 이렇게 남들에게 공유까지 할 수 있는 역량을 가지려면, 영어를 잘 해야 되겠죠? 저도 나중에 영어 실력도 키워서 직접 최신 기술을 스스로 익혀서 한국 사람들에게 번역하여 책이나 영상을 통해 알려줄 수 있는 수준이 되고 싶네요!
안녕하세요 @Jason 님. 저는 기술 문서를 사전 찾아 가면서 읽고 해석할 수 있는 수준입니다. 좀 오래 걸려도 일부러 원서를 사서 읽는 연습도 하구요. 듣기는 거의 안 되서 유튜브 자막 틀어 놓고 0.5 배속이나 0.75 배속으로 놓고 읽으면서 봅니다.
영어를 잘 하는 분들에 비하면 진도가 상당히 느린데 무식하게 꾸역 꾸역 읽다 보면 그래도 몇 달 걸려 원서 한 권 읽는 게 가능해 졌습니다.
저도 속도가 느리더라도 여러 번 반복하고 끝까지 파고드는 노력을 해야겠네요! 답변 감사합니다!! :)
와..범균님 정말 멋있으세요 노력의 결과군요
어 나 아는 척하구 싶었는 데~~
ㅋㅋㅋ 유정님. 이제 아는 척 해 보는 겁니까?