๐๏ธ ์์คํ ๋์์ธ ์ธํฐ๋ทฐ์ ๊ณจ๋ ๋ฃฐ
์์คํ ๋์์ธ์ ๋ณต์กํ๊ณ ํ๋์ ๋์์ธ์ด ๋ชจ๋ ๊ฒฝ์ฐ์ ์ ํฉํ ๊ฒ๋ ์๋๋๋ค. ์๋์์ ๋ฉด์ ์์ ์ฌ์ฉํ ์ ์๋ ์ ์ฉํ ๊ท์น์ ๊ณต์ ํ๊ฒ ์ต๋๋ค. ย ๐ ์ฝ๊ธฐ๊ฐ ๋ง์ ์์คํ ์ ๊ฒฝ์ฐ- ์บ์ ์ฌ์ฉ์ ๊ณ ๋ ค ๐ ์ฐ๊ธฐ๊ฐ ๋ง์ ์์คํ ์ ๊ฒฝ์ฐ - ๋น๋๊ธฐ ์ฒ๋ฆฌ๋ฅผ ์ํด Message Queue ์ฌ์ฉย ย ๐ ๋ฎ์ ์ง์ฐ์๊ฐ์ ์๊ตฌํ๋ ๊ฒฝ์ฐ - ์บ์ ๋ฐ CDN ์ฌ์ฉ์ ๊ณ ๋ ค ๐ ACID ์์น์ด ํ์ํ ๊ฒฝ์ฐ - RDBMS/SQL DB๋ก ์ด๋ย ๐ ๋น์ ํ ๋ฐ์ดํฐ์ ๊ฒฝ์ฐ - NoSQL DB๋ก ์ด๋ ๐ ๋ณต์กํ ๋ฐ์ดํฐ(๋น๋์ค, ์ด๋ฏธ์ง, ํ์ผ)์ ๊ฒฝ์ฐ - Blob/Object ์ ์ฅ์๋ก ์ด๋ ๐ ๋ณต์กํ ์ฌ์ ๊ณ์ฐ์ด ํ์ํ ๊ฒฝ์ฐ - Message Queue & ์บ์๋ฅผ ์ด์ฉ ๐ ๋์ฉ๋ ๋ฐ์ดํฐ ๊ฒ์ - ๊ฒ์ ์ธ๋ฑ์ค, ํธ๋ฆฌ ๋๋ ๊ฒ์ ์์ง์ ๊ณ ๋ ค ๐ SQL ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ์ฅ - ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ค๋ฉ์ ๊ตฌํ ๐ ๊ณ ๊ฐ์ฉ์ฑ, ์ฑ๋ฅ ๋ฐ ์ฒ๋ฆฌ๋ - ๋ก๋ ๋ฐธ๋ฐ์๋ฅผ ์ฌ์ฉ ๐ ๊ธ๋ก๋ฒ ๋ฐ์ดํฐ ์ ์ก - CDN ์ฌ์ฉ์ ๊ณ ๋ ค ๐ ๊ทธ๋ํ ๋ฐ์ดํฐ(๋ ธ๋, ์ฃ์ง ๋ฐ ๊ด๊ณ๊ฐ ์๋ ๋ฐ์ดํฐ) - ๊ทธ๋ํ DB๋ฅผ ์ฌ์ฉ ๐ ๋ค์ํ ์ปดํฌ๋ํธ ํ์ฅ - ์ํ ํ์ฅ์ ๊ตฌํ ๐ ๊ณ ์ฑ๋ฅ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฟผ๋ฆฌ - DB ์ธ๋ฑ์ค ์ฌ์ฉย ๐ ์ผ๊ด ์์ ์ฒ๋ฆฌ - ๋ฐฐ์น ๋ฐ Message Queue ์ฌ์ฉ ๐ ์๋ฒ ๋ถํ ๊ด๋ฆฌ ๋ฐ DOS ๊ณต๊ฒฉ ๋ฐฉ์ง - Rate Limiter ์ฌ์ฉ ๐ ๋ง์ดํฌ๋ก์๋น์ค ์ํคํ ์ฒ - API Gateway ์ฌ์ฉ ๐ Single Point of Failure - ์ด์คํ ๊ตฌํ ๐ ๋ด๊ฒฐํจ์ฑ ๋ฐ ๋ด๊ตฌ์ฑ - ๋ฐ์ดํฐ ๋ณต์ ๊ตฌํ ๐ ์ฌ์ฉ์ ๊ฐ์ ๋น ๋ฅธ ํต์ - Websocket ์ฌ์ฉ ๐ ๋ถ์ฐ ์์คํ ์ ์ฅ์ ๊ฐ์ง - Heartbeat ๊ตฌํ ๐ ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ - Checksum Algorithm ์ฌ์ฉ ๐ ํจ์จ์ ์ธ ์๋ฒ ํ์ฅ - Hashing ๊ตฌํ ๐ ๋ถ์ฐํ ๋ฐ์ดํฐ ์ ์ก - Gossip ํ๋กํ ์ฝ ๊ณ ๋ ค ๐ ์์น ๊ธฐ๋ฐ ๊ธฐ๋ฅ - Quadtree, Geohash ๋ฑ์ ์ฌ์ฉ ๐ ํน์ ๊ธฐ์ ์ด๋ฆ ํผํ๊ธฐ - ์ผ๋ฐ์ ์ธ ์ฉ์ด ์ฌ์ฉ ๐ ๊ณ ๊ฐ์ฉ์ฑ๊ณผ ์ผ๊ด์ฑ ํธ๋ ์ด๋ ์คํ - ๊ถ๊ทน์ ์ธ ์ผ๊ด์ฑ ๐ IP ํ์ธ ๋ฐ ๋๋ฉ์ธ ์ด๋ฆ ์ฟผ๋ฆฌ - DNS ์ธ๊ธ ๐ ๋คํธ์ํฌ ์์ฒญ์์ ๋์ฉ๋ ๋ฐ์ดํฐ ์ฒ๋ฆฌ - ํ์ด์ง๋ค์ด์ ๊ตฌํ ๐ ์บ์ ์ ๊ฑฐ ์ ์ฑ - LRU ์บ์ย ๐ ํธ๋ํฝ ๊ธ์ฆ ์ฒ๋ฆฌ - ์คํ ์ค์ผ์ผ๋ง ๊ตฌํํ์ฌ ๋ฆฌ์์ค๋ฅผ ๋์ ์ผ๋ก ๊ด๋ฆฌ ๐ ๋ถ์์ด ํ์ํ ๋ - data lake ๋๋ ์ ์ฉ DB ์ฌ์ฉ ๊ณ ๋ ค ๐ ๋๊ท๋ชจ ๋์ ์ฐ๊ฒฐ ์ฒ๋ฆฌ - connection pooling์ ์ฌ์ฉํ๊ณ Protobuf๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ ํ์ด๋ก๋ ์ต์ํ ๋ฒ์ญ: [https://ducktopia.tistory.com/112] ์๋ฌธ: