챗GPT, 개발 공부에 있어서 든든한 친구 같은 존재이죠. 내일배움캠프의 수강생들도 혼자 공부할 때에는 챗GPT의 도움을 받고 있는데요. 오늘은 내일배움캠프 수료생들의 챗GPT 경험담을 보고, 여러분의 개발 공부에 적용해봅시다.
프로젝트에서 CQRS를 적용하며 생겼던 질문들에 대한 답변을 얻었던 상황이 있습니다. 제가 한 질문은 다음과 같았는데, CQRS 패턴에서 쓰기 작업 중에 읽기를 수행하는 방법에 대한 질문이었습니다. 이 질문에 대하여 ChatGPT는 다음과 같은 답변을 저에게 제공하였습니다.
CQRS 패턴에서 쓰기 작업 중에 읽기를 수행하는 방법
읽기와 쓰기 분리하되 최종 일관성 허용
쓰기 작업을 먼저 수행하고 비동기적으로 읽기 모델을 업데이트합니다. 쓰기 직후 읽기 모델이 최신 상태를 반영하지 않을 수 있으며, 클라이언트는 이를 인식해야 합니다.
커맨드 핸들러를 사용하여 읽기 모델 업데이트
쓰기 모델과 관련된 읽기 모델을 동일한 트랜잭션 내에서 업데이트하는 커맨드 핸들러를 설계합니다. 이렇게 하면 읽기 작업이 쓰기 작업과 원자적으로 일어납니다. 하지만, 읽기 모델이 다른 데이터 저장소에 있거나 확장 요구 사항이 있는 경우 복잡성이 증가할 수 있습니다.
이벤트를 사용하여 읽기 모델 동기화
쓰기 작업이 발생할 때마다 이벤트를 발생시키고, 이를 통해 읽기 모델을 업데이트합니다. 이는 최종 일관성을 유지하면서 다양한 읽기 모델을 업데이트할 수 있는 유연성을 제공합니다.
조정을 위한 사가 사용
사가 또는 프로세스 매니저를 사용하여 여러 집계와 읽기 모델에 걸친 활동을 조정합니다. 이를 통해 여러 구성 요소와 읽기 모델 간의 일관성을 보장할 수 있습니다.
혼합된 접근 방식
특정 요구 사항에 따라 위의 방법들을 조합하여 사용할 수 있습니다. 예를 들어, 일부 읽기 모델에는 즉시 일관성을 사용하고, 다른 모델에는 지연 일관성을 사용할 수 있습니다.
위와 같은 답변으로 인하여 저희는 CQRS 패턴을 적용하며, Create의 과정에서 Read가 필요할 경우에는 Read의 기능을 사용하는 방향으로 프로젝트를 진행하였습니다.
추가적으로 이러한 전략선택을 하기 위한 상황에서 ChatGPT에게 질문할 때에는 저희가 진행하는 프로젝트의 구체적인 상황 설명이 필요하며 추가적으로 사용 중인 기술 스택을 ChatGPT에게 제공하므로써 ChatGPT에게 좀 더 자세한 정보를 얻을 수 있을 것이라고 생각합니다.
내일배움캠프가 여러분의 러닝메이트가 되어드리겠습니다
내일배움캠프의 많은 수강생들이 부트캠프 생활을 수료하고 현업에서 개발자로 활약하고 있습니다. 내일배움캠프는 모든 운영진이 교육, 특강, 12시간 밀착 케어, 찐한 관리, 인재 채용까지 열과 성을 다해 수강생들의 꿈을 지원하고 있습니다. 수많은 장애물을 넘을 수 있도록 내일배움캠프가 든든한 러닝메이트가 되어드리겠습니다. 내일배움캠프과 함께 여러분의 개발자 여정을 시작하세요.