분산 시스템
분산 시스템은 한 대로는 버거운 큰 일을 여러 대의 노드에 나누어 맡기고, 그 노드들이 협력해 사용자에게는 한 대처럼 보이게 하는 구조다. 용량·처리·고장이라는 한 대의 한계를 나누기·겹치기·나눠 보내기로 넘어서며, 그 과정에서 일관성·가용성·지연이 서로 맞바뀐다.
목차
1. 개요
분산 시스템이란 한 대로는 감당하기 어려운 큰 일을 여러 대의 컴퓨터, 곧 노드에 나누어 맡기고 그 노드들이 서로 협력해 사용자에게는 한 대처럼 보이게 만드는 구조다.1 컴퓨터 한 대가 버티는 저장 용량과 처리 속도에는 천장이 있고, 게다가 기계는 언제든 고장 날 수 있다. 이 세 가지 한계—용량·처리·고장—를 넘어서려는 것이 분산의 출발점이다. 그래서 데이터를 조각내 나누거나 같은 데이터를 여러 곳에 겹쳐 두는 샤딩과 복제, 큰 파일을 블록으로 쪼개 흩어 저장하는 분산 파일 시스템, 어느 노드가 무엇을 맡을지 위계를 정하는 마스터-슬레이브 구조, 자주 쓰는 데이터를 앞단에 미리 얹어 두는 캐시 메모리, 밀려드는 요청을 여러 서버로 고르게 나눠 보내는 로드밸런싱이 모두 이 큰 그림의 부품이다. 요청을 어느 서버로 흘려보낼지는 이름을 주소로 바꿔 주는 인터넷 주소 체계와도 맞닿는다. 수능 독서에서 이 개념은 용어 암기가 아니라 '한 대로는 부족하다'는 문제를 어떻게 푸는지 읽는 논리 문제로 나온다.2
2. 상세
2.1. 여러 대인데 한 대처럼 — 노드와 조율
분산 시스템의 첫 관문은 '여러 대인데 한 대처럼'이라는 착시다. 속을 들여다보면 여러 노드가 저마다 일부만 맡고 있지만, 사용자는 그 내부 분업을 몰라도 서비스를 쓸 수 있다. 이 착시를 유지하려면 노드들이 끊임없이 상태를 주고받으며 누가 무엇을 맡는지 조율해야 한다. 조율이 없으면 여러 대는 그저 따로 노는 여러 대일 뿐, 하나처럼 움직이지 못한다.
2.2. 나누기·겹치기·나눠 보내기
큰 그림은 세 동작으로 요약된다.3 첫째는 나누기다. 한 서버에 다 담기지 않는 데이터를 조각으로 쪼개 여러 서버에 흩으면 용량과 처리량의 천장을 넘는다. 둘째는 겹치기다. 똑같은 데이터의 사본을 여러 곳에 두면 한 곳이 죽어도 나머지가 그 일을 이어받는다. 셋째는 나눠 보내기다. 들어오는 요청 자체를 여러 서버로 고르게 흩뿌리면 한 곳에 몰리는 병목이 사라진다. 앞의 두 동작은 저장된 데이터를 다루고, 마지막 동작은 오가는 트래픽을 다룬다.
2.3. 일관성·가용성·지연은 서로 잡아당긴다
분산이 공짜는 아니다. 사본을 여러 곳에 두는 순간 '어느 사본을 읽어도 늘 같은 최신값이 나오는가'라는 물음이 생긴다. 모든 사본을 항상 똑같이 맞추려 들면(일관성) 맞춰질 때까지 기다리느라 응답이 느려지고(지연), 기다리지 않고 아무 사본이나 바로 돌려주면(가용성) 잠깐 옛값이 섞일 수 있다. 이 셋은 한쪽을 당기면 다른 쪽이 끌려오는 관계라, 결국 상황에 맞춰 어디에 무게를 둘지 고르는 문제로 바뀐다.4 이 상충을 어떻게 판단하느냐가 지문 독해의 한 축이 된다.
2.4. 단일 장애점 — 분산의 목적이자 함정
노드 하나가 멈추면 전체가 멈추는 지점을 단일 장애점이라 부른다. 분산을 하는 큰 이유 중 하나가 바로 이 단일 장애점을 없애는 것이다. 그런데 역설적이게도, 모든 결정을 한 노드에 몰아 주는 방식을 쓰면 그 노드가 새로운 단일 장애점이 된다. 그래서 그 노드가 죽으면 남은 노드끼리 새 대표를 뽑아 빈자리를 메우는데, 이 위계 구조의 자세한 이야기는 마스터-슬레이브 구조 문서에서 다룬다.
3. 수능에서는 이렇게 나온다
평가원은 분산 시스템을 스펙 암기가 아니라 과정을 논리로 따라가는 힘으로 묻는다. 구체적인 출제 이력은 아래 위젯을 참조하라. 이런 각도로 나온다.
- 단계 관계: 쓰기 다음에 복제, 그다음 확인처럼, 또는 요청·분배·처리·응답처럼 순서가 정해진 과정을 제시하고 특정 단계가 하는 일을 묻는다. 단계의 앞뒤를 슬쩍 바꿔 놓은 선지가 함정이다.
- 비교·대조: 나눔과 겹침, 중앙 집중과 대등 분산처럼 짝을 이루는 개념을 놓고 '무엇을 기준으로 갈리는가'를 묻는다.
- 맞교환(trade-off): 사본을 늘리면 안정성은 오르지만 맞추는 비용이 커지는 식으로, 한쪽 이득이 다른 쪽 손해로 되돌아오는 관계를 묻는다.
- 목적·수단의 인과: '고장이 잦다'는 문제 상황과 '그래서 복제로 대비한다'는 해결책을 바르게 연결짓는지 확인한다.
4. 헷갈리기 쉬운 것들
| 흔한 오해 | 왜 틀렸나 | 바르게 이해하기 |
|---|---|---|
| 서버를 많이 두기만 하면 곧 분산 시스템이다 | 대수만 늘린다고 여러 대가 한 대처럼 협력하지는 않는다 | 조율·복제·분배가 함께 설계돼 '한 대처럼' 묶여야 분산 시스템이다 |
| 서버를 늘리면 일관성·가용성·속도가 다 좋아진다 | 이 셋은 서로 잡아당기는 상충 관계라 동시에 최고가 될 수 없다 | 무엇을 얼마나 포기할지 고르는 선택 문제로 읽는다 |
| 단일 장애점은 서버 대수를 늘리면 저절로 사라진다 | 결정을 한 노드에 몰면 그 노드가 새 단일 장애점이 된다 | 복제와 자동 대표 선출로 완화하는 것이지 대수만의 문제가 아니다 |
5. 관련 개념
- 샤딩과 복제 — 데이터를 나누는 샤딩과 겹치는 복제, 두 축을 함께 다룬다
- 분산 파일 시스템 — 파일을 블록으로 잘게 나눠 여러 노드에 흩고 복제까지 하는 대표 사례
- 마스터-슬레이브 구조 — 노드 역할을 위계로 나눈 구조와 그 약점인 단일 장애점
- 캐시 메모리 — 자주 쓰는 데이터를 앞단에 얹어 응답을 앞당기는 성능 기법
- 로드밸런싱 — 요청을 여러 서버로 고르게 흩뿌려 병목을 없애는 분배 기법
- 인터넷 주소 체계 — 요청을 어느 서버로 보낼지 이름을 주소로 바꿔 찾아 주는 층
각주
-
정의와 개념 관계는 평가원 기출 기반 배경지식 자료(기술·분산 시스템)의 공식 문서 합성 서술을 따랐다. ↩
-
'여러 대인데 한 대처럼'이라는 착시가 이 단원의 입구다. 선지가 '분산 시스템은 사용자가 노드 개수를 직접 지정해 쓰는 방식'이라며 내부 분업을 사용자에게 떠넘기면 대개 함정이니, 착시의 방향을 먼저 붙들어 두자. ↩
-
'나누기·겹치기·나눠 보내기' 세 동사로 목차를 세워 두면, 분산 시스템 지문에 어떤 장치가 나오든 이 셋 중 하나에 꽂아 읽을 수 있다. 나누기는 샤딩, 겹치기는 복제, 나눠 보내기는 로드밸런싱·캐시 쪽이다. ↩
-
일관성·가용성·지연을 삼각형으로 그려 두면 편하다. 한 꼭짓점을 세게 당기면 반대편이 늘어난다고 외워 두면, '셋 다 좋아진다'는 선지를 반사적으로 걸러낼 수 있다. ↩
출제 사례(아직 매칭된 출제 기록이 없어요)
이 개념이 어느 시험·지문에 등장했는지의 기록입니다. 개념 자체의 난이도가 아니라 출제 맥락을 보여줍니다.
출제 기록이 확인되면 여기에 시험·지문·문항이 채워집니다.
이 문서를 가리키는 문서
잘못된 내용을 발견하셨나요? 신고해 주시면 검토 후 반영합니다.