강의

멘토링

로드맵

Inflearn brand logo image

인프런 커뮤니티 질문&답변

한재현님의 프로필 이미지
한재현

작성한 질문수

실리콘밸리 빅테크 29개의 실습으로 배우는 시스템 디자인 설계

CAP 이론 개념 및 적용 시나리오 [업데이트]

AP 시스템이 전자상거래에 적용될 수 있는 이유

해결된 질문

작성

·

65

·

수정됨

0

CAP 이론 강의 관련 질문입니다.

5분 19초에 Dynamo DB가 전자상거래에 적용이 될 수 있다고 하신 부분에 대해 궁금한 점이 있습니다. 영상 해당 시점의 강의자료에는 CP에 금융, 주문 시스템이 있고, 제 막연한 생각으로는 거래 같은 경우 일관성이 가장 중요할 것 같다고 추측됩니다. Dynamo DB를 이용한 AP가 전자상거래에 적용될 수 있는 이유가 궁금합니다.

답변 2

0

미국달팽이님의 프로필 이미지
미국달팽이
지식공유자

안녕하세요 한재현님, 수강 감사드리며, 좋은 포인트를 짚어주셨습니다.

전 세계 사용자에게 끊김 없는 경험을 제공하기 위해 전자상거래 사이트는 전 세계에 흩어진 수많은 고객에게 빠른 페이지 응답을 보장해야 합니다. 네트워크 지연이나 일부 서버 장애가 발생해도 “읽기, 쓰기 요청을 계속 받아들이는” AP 계열 데이터베이스, 예를 들어 DynamoDB 같은 시스템은 글로벌 쇼핑몰의 요구사항과 잘 맞습니다.

왜냐하면, 즉시 완벽한 일관성이 아니어도 되는 영역이 많아서 물론 결제나 주문 확정 같은 부분은 강한 일관성이 필요하지만, 상품 상세 조회나 장바구니처럼 “약간의 지연”이 사용자에게 큰 불편을 주지 않는 경우가 많습니다. 예컨대 재고 수량이 실제보다 몇 초 늦게 업데이트돼도, 고객 경험에는 크게 영향을 주지 않죠. 그렇기 때문에, 이런 영역은 AP 모델의 ‘최종 일관성’을 받아들이고, 백그라운드 동기화로 데이터를 맞춰 갈 수 있습니다.

중요한 트랜잭션은 보강해서 처리할 수 있다는 점은 DynamoDB에도 트랜잭션 기능이 있어서, 결제나 주문 확정과 같이 “절대 놓칠 수 없는” 작업은 CP처럼 처리하도록 설계할 수 있습니다. 즉, 전체 서비스는 AP로 운영하면서도, 민감한 도메인에서는 트랜잭션을 걸어 강한 일관성을 확보하는 하이브리드 구조를 만드는 것이 가능합니다.

감사합니다. 좋은 하루 되세요!

한재현님의 프로필 이미지
한재현
질문자

상품에 대한 정보를 제공할 때는 가용성을 우선적으로 고려하고, 결제나 주문 도메인에서는 일관성을 우선하도록 안에서도 구조를 나눌 수 있다는 뜻이군요.

답변 감사합니다!

0

안녕하세요, 인프런 AI 인턴입니다. 한재현님 질문 주셔서 감사합니다.

DynamoDB와 같은 AP 시스템이 전자상거래에 적용될 수 있는 이유는 이론과 실무에서 다양한 측면을 고려해야 합니다:

AP 시스템의 특성

  1. 가용성(Availability): AP 시스템은 일반적으로 데이터를 여러 복제본에 분산하여 고가용성을 유지합니다. 이는 시스템의 일부가 실패하더라도 데이터에 접근 가능하도록 하며, 인터넷 기반 대규모 전자상거래 시스템에서 지속적인 서비스 제공을 위해 중요합니다.

  2. 네트워크 파티션 허용(Partition tolerance): 네트워크가 분리되었을 때도 데이터를 제공할 수 있는 능력은 글로벌하게 운영되는 전자상거래 플랫폼에서 필수적입니다. 다양한 지역에 걸쳐 고객에게 끊김 없는 서비스를 제공할 수 있습니다.

전자상거래에서의 AP 적용

  • 일관성 모델의 조정 가능성: DynamoDB는 최종 일관성을 제공하면서도 요구에 맞춰 일관성을 조정할 수 있는 모델을 가지고 있습니다. 즉, 일반적인 조회에는 최종 일관성을 사용하여 더 낮은 지연시간과 높은 성능을 유지하면서, 중요 업무(예: 결제, 주문 최종 확인 등)에는 강한 일관성을 적용할 수 있습니다.

  • 속도와 확장성: DynamoDB는 매우 낮은 지연시간과 뛰어난 확장성을 제공하므로, 전자상거래의 트래픽 급증에 빠르게 대응할 수 있습니다. 이는 특히 프로모션 기간이나 쇼핑 성수기에 유용합니다.

다만, 전자상거래에서 거래의 무결성과 일관성은 여전히 중요하기 때문에, 실질적인 구현에서는 AP 시스템만 사용하는 것이 아니라 CQRS 패턴 또는 데이터베이스 트랜잭션 관리 시스템과 같이 강한 일관성을 보장할 수 있는 다른 요소와 결합해서 사용하는 경우가 많습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

한재현님의 프로필 이미지
한재현

작성한 질문수

질문하기