개발 이야기
[데이터중심애플리케이션설계] Part 2. 분산 데이터
경이로운아일라
2025. 5. 16. 17:06
이 글은 <데이터 중심 애플리케이션 설계,마틴 클레프만 지음>을 참고하여 작성하였습니다.
Part 2. 분산 데이터이 글은 <데이터 중심 애플리케이션 설계,마틴 클레프만 지음>을 참고하여 작성하였습니다.

데이터중심애플리케이션설계, 마틴 클레프만 지음
📦 Part 2. 분산 데이터베이스가 뭐길래?
이번 파트에서는 왜 데이터를 분산해서 저장해야 하는지, 그리고 그걸 어떻게 할 수 있는지에 대해 알아볼게요!
❓왜 굳이 분산을 해야 할까?
처음엔 하나의 서버만 써도 괜찮아요.
근데 유저가 많아지고, 저장할 데이터도 엄청 많아지면...?
하나의 서버로는 버틸 수가 없어요! 🥵
그래서 여러 대의 서버를 나눠서 쓰는 분산 시스템이 필요해요.
이렇게 하면 뭐가 좋을까요?
- 🚀 확장성: 필요할 때 서버를 더 붙이기만 하면 돼요
- 💥 내결함성 / 고가용성: 한 서버가 죽어도 다른 서버가 계속 서비스를 유지해줘요
- ⚡ 낮은 지연시간: 여러 서버가 동시에 처리하니까 빠르게 응답할 수 있어요
🛠️ 고부하일 때 선택할 수 있는 구조
서버가 감당하기 힘들 정도로 일이 많아졌을 때, 우리는 시스템 구조를 고민해야 해요.
대표적인 구조는 세 가지예요:
- 공유 메모리 아키텍처
👉 여러 서버가 하나의 메모리를 같이 써요
❗ 속도는 빠르지만 충돌 위험이 있어요 - 공유 디스크 아키텍처
👉 서버는 따로지만 디스크는 같이 써요
❗ 저장소에서 병목 생기기 쉬워요 - 비공유 아키텍처 (Shared-Nothing)
👉 서버마다 메모리도, 디스크도 전부 독립!
💪 확장도 쉽고 장애에도 강해요
✅ 우리가 볼 구조는 바로 비공유 아키텍처!
많은 분산 데이터베이스들이 이 방식을 써요.
🧩 복제 vs. 파티셔닝
서버를 여러 대로 나눈다고 했잖아요?
그럼 데이터를 어떻게 나눌지도 정해야 해요. 여기엔 두 가지 방법이 있어요:
📚 복제 (Replication)
- 같은 데이터를 여러 서버에 복사해요
- 서버 하나가 망가져도 다른 복사본이 있어서 안전해요!
- 읽기 속도도 빨라져요
예: 친구가 노트 복사해서 나눠준 느낌!
🧱 파티셔닝 (Partitioning)
- 데이터를 조각조각 나눠서 여러 서버에 나눠 저장해요
- 한 서버에 몰리지 않으니까 쓰기도 빠르고 확장도 쉬워요
예: 과제 분담해서 나눠하는 느낌!
📌 실제 시스템에서는 복제랑 파티셔닝을 같이 쓰는 경우가 많아요!