결합도 분리
구성 요소 사이를 큐·토픽으로 끊어 서로의 장애를 격리
이게 뭔가요? / What is this?
디커플링은 특정 상품 이름이 아니라, 두 시스템이 서로의 상태를 몰라도 되도록 사이를 끊어 놓는 설계 방식(추상적 개념)입니다. 웨이터가 주방에 직접 요리를 시키는 대신 주문서를 주방 창구에 걸어 두기만 하면 주방이 자기 속도로 처리할 수 있는 것처럼, SQS나 SNS 같은 실제 서비스를 중간에 끼워 이 원리를 구현합니다.
개요 / Overview
디커플링은 생산자가 소비자의 상태를 몰라도 되게 만드는 설계입니다. 한쪽이 느려지거나 죽어도 요청이 유실되지 않고 각자 독립적으로 확장할 수 있습니다.
동작 원리 / How it works
디커플링은 구성 요소가 서로의 상태·속도·가용성을 몰라도 되게 만드는 설계입니다. 동기 직접 호출에서는 뒷단이 느려지면 앞단이 함께 느려지고, 뒷단이 죽으면 요청이 사라집니다. 사이에 큐나 토픽을 넣으면 앞단은 메시지를 넣고 즉시 응답하고, 뒷단은 자기 속도로 처리하며, 장애 시에도 메시지가 큐에 남아 있습니다.
결과적으로 세 가지가 동시에 좋아집니다 — 버스트 흡수(큐가 버퍼), 독립 확장(각 계층이 자기 지표로 조정), 장애 격리(한쪽이 죽어도 다른 쪽은 계속). SQS는 1:1 작업 분배, SNS는 1:N 브로드캐스트, EventBridge는 내용 기반 라우팅에 씁니다.
시험은 무엇을 보는가 / What the exam is testing
시험은 "구성 요소를 분리하라", "확장성을 높여라", "한쪽 장애가 전체에 영향을 주지 않게" 같은 표현으로 이 개념을 부릅니다. 정답은 대개 큐나 토픽을 삽입하는 것이며, 동기 호출을 유지하면서 인스턴스만 늘리는 선택지는 오답입니다.
시험 포인트 / Exam points
"한 구성 요소의 장애가 전체를 멈춘다", "트래픽 급증에 뒷단이 무너진다"는 문제는 SQS를 사이에 넣는 것이 정답입니다.
한 이벤트를 여러 시스템이 각자 처리해야 하면 SNS 토픽에 여러 SQS 큐를 구독시킵니다.
자주 틀리는 함정 / Common traps
큐를 넣었지만 워커를 고정 대수로 두는 것 — 버스트가 큐에만 쌓이고 처리는 밀립니다. 큐 깊이 기준 ASG가 함께 필요합니다.
Decoupling
Separating components with queues and topics so failures do not propagate
이게 뭔가요? / What is this?
Decoupling is not the name of a product — it is an abstract design approach that separates two systems so neither needs to know the state of the other. Like a waiter clipping an order ticket to the kitchen window instead of personally directing the chef, letting the kitchen work at its own pace, this principle is implemented in practice by inserting a real service such as SQS or SNS in between.
개요 / Overview
Decoupling lets a producer stay ignorant of its consumer, so a slow or failed component neither loses requests nor blocks independent scaling.
동작 원리 / How it works
Decoupling makes components independent of each other's state, speed, and availability. With synchronous direct calls, a slow backend slows the frontend and a dead backend loses requests. Inserting a queue or topic lets the frontend enqueue and respond immediately, the backend work at its own pace, and messages survive an outage in the queue.
Three things improve at once: burst absorption (the queue buffers), independent scaling (each tier scales on its own metric), and fault isolation (one side failing does not stop the other). SQS handles one-to-one work distribution, SNS one-to-many broadcast, and EventBridge content-based routing.
시험은 무엇을 보는가 / What the exam is testing
The exam invokes this with phrasings like "decouple the components", "increase scalability", and "a failure in one part must not affect the whole". The answer is usually inserting a queue or topic; options that keep synchronous calls and merely add instances are wrong.
시험 포인트 / Exam points
"A failure in one component stops everything" or "spikes overwhelm the backend" is answered by inserting SQS between them.
When several systems must each handle the same event, subscribe multiple SQS queues to one SNS topic.
자주 틀리는 함정 / Common traps
Inserting a queue but keeping a fixed worker count — bursts pile up in the queue and processing falls behind. An ASG scaling on queue depth is also needed.
AWS SAA Hub Pro는 독립 학습 자료이며 Amazon Web Services, Inc.의 공식 서비스가 아닙니다. 시험 정책과 서비스 사양은 AWS 공식 문서를 기준으로 확인하세요.