1. CAP ์ด๋ก
๐ฏ ํต์ฌ ํ ์ค ์์ฝ
๋ถ์ฐ ์์คํ ์์ ์ผ๊ด์ฑ, ๊ฐ์ฉ์ฑ, ๋ถํ ํ์ฉ์ฑ ์ค 2๊ฐ๋ง ์ ํ ๊ฐ๋ฅ
๐ ๊ธฐ๋ณธ ๊ฐ๋
CAP๋?
- C: Consistency (์ผ๊ด์ฑ) - ๋ชจ๋ ๋ ธ๋๊ฐ ๊ฐ์ ๋ฐ์ดํฐ
- A: Availability (๊ฐ์ฉ์ฑ) - ํญ์ ์๋ต ๊ฐ๋ฅ
- P: Partition Tolerance (๋ถํ ํ์ฉ์ฑ) - ๋คํธ์ํฌ ๋์ด์ ธ๋ ๋์
์ 3๊ฐ ๋ค ์ ๋๋?
๋คํธ์ํฌ ๋ถํ ์ โ ์ผ๊ด์ฑ vs ๊ฐ์ฉ์ฑ ์ค ์ ํํด์ผ ํจ

โ๏ธ 3๊ฐ์ง ์กฐํฉ
์ ํ | ์๋ฏธ | ์ฌ์ฉ ์ฉ๋ | ์์ |
CP | ์ ํ์ฑ ์ฐ์ ์๋น์ค ์ค๋จ ํ์ฉ | ๋, ์๋ฃ | MongoDB, Redis |
AP | ์๋ ์ฐ์ ๋ฐ์ดํฐ ์ฐจ์ด ํ์ฉ | SNS, ์์ | Cassandra, DynamoDB |
CA | ์ด๋ก ์๋ง ์กด์ฌ ๋ถ์ฐํ๊ฒฝ ๋ถ๊ฐ | ๋จ์ผ์๋ฒ | MySQL, PostgreSQL |
๐ก ์ค๋ฌด ์ ํ๋ฒ
CP ์ ํ โ ์ ํํด์ผ ํ๋ ๊ฒ
- ์ํ (๊ณ์ข์ด์ฒด)
- ๊ฒฐ์ ์์คํ
- ์ฌ๊ณ ๊ด๋ฆฌ
AP ์ ํ โ ๋นจ๋ผ์ผ ํ๋ ๊ฒ
- ํ์ด์ค๋ถ (์ข์์)
- ์ ํ๋ธ (์กฐํ์)
- ๋ก๊ทธ ์์ง
๐ฃ๏ธ ๋ฉด์ ์ง๋ฌธ & ๋ต๋ณ
Q: CAP ์ด๋ก ์ค๋ช ํด์ฃผ์ธ์
A: ๋ถ์ฐ์์คํ ์์ ์ผ๊ด์ฑ, ๊ฐ์ฉ์ฑ, ๋ถํ ํ์ฉ์ฑ ์ค 2๊ฐ๋ง ๋ณด์ฅ ๊ฐ๋ฅํ๋ค๋ ์ด๋ก ์ ๋๋ค. ๋คํธ์ํฌ ๋ถํ ์ ์ผ๊ด์ฑ๊ณผ ๊ฐ์ฉ์ฑ ์ค ํ๋๋ฅผ ํฌ๊ธฐํด์ผ ํ๊ธฐ ๋๋ฌธ์ ๋๋ค.
Q: CP์ AP ์ฐจ์ด์ ์?
A:
- CP: ์ ํํ ๋ฐ์ดํฐ๊ฐ ์ค์ํ ์์คํ (์ํ, ๊ฒฐ์ )
- AP: ๋น ๋ฅธ ์๋ต์ด ์ค์ํ ์์คํ (SNS, ์ฝํ ์ธ )
Q: ์ค์ ์์คํ ์์๋?
A:
- MongoDB(CP): ๋ง์คํฐ ์ฅ์ ์ ์ ๋ง์คํฐ ์ ์ถ๊น์ง ์ฐ๊ธฐ ์ค๋จ
- Cassandra(AP): ์ผ๋ถ ๋ ธ๋ ์ฅ์ ํด๋ ๋ค๋ฅธ ๋ ธ๋์์ ๊ณ์ ์๋น์ค
๐ฏ ์๊ธฐ ํฌ์ธํธ
CAP = Consistency + Availability + Partition ์ค 2๊ฐ๋ง!
CP = ์ ํ์ฑ ์ฐ์ (์ํ)
AP = ์๋ ์ฐ์ (SNS)
์์คํ ๋ถ๋ฅ
CP๊ณ์ด: MongoDB, Redis, HBase
AP๊ณ์ด: Cassandra, DynamoDB, Couchbase
CA๊ณ์ด: MySQL, PostgreSQL (๋จ์ผ์๋ฒ๋ง)
'๐ Backend' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[FastAPI] N+1 Problem (0) | 2025.05.07 |
---|---|
[Swift + Supabase] OAuth - Sign in with Apple (0) | 2025.04.28 |
[FastAPI] Middleware ๋ฏธ๋ค์จ์ด (CORS, Logging) (0) | 2025.04.20 |
[FastAPI] SSE (Server-Sent Events) (0) | 2025.04.16 |
[FastAPI] SQLModel (0) | 2025.03.14 |