ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • ๋ถ„์‚ฐ ์‹œ์Šคํ…œ ๋””์ž์ธ
    ML engineer/System designs 2023. 1. 19. 01:17
    ๋ฐ˜์‘ํ˜•

    ๐Ÿ•“ 3 mins read

    ์ž‘๊ฒŒ๋“  ํฌ๊ฒŒ๋“  ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ์ž๋ผ๋ฉด ์–ธ์  ๊ฐ€๋Š” ์‹œ์Šคํ…œ ๋””์ž์ธ์˜ ๊ฐ ์š”์†Œ๋“ค์„ ํ•œ๋ฒˆ์ฏค์€ ์ ‘ํ•  ์ผ์ด ์ƒ๊น๋‹ˆ๋‹ค.

    ํ•™์ƒ๋•Œ ๋ฐฐ์šฐ๋Š” ๋‚ด์šฉ์ด๊ฑฐ๋‚˜, ์ฑ„์šฉ ๋ฉด์ ‘์„ ์ค€๋น„ํ•˜๋ฉด์„œ ๋ณธ ๋‚ด์šฉ์ด๊ฑฐ๋‚˜, ์ง์ ‘ ๊ฐ ์š”์†Œ๋ฅผ ํ•ธ๋“ค๋ง ํ•ด์•ผํ•˜๋Š” ์ž…์žฅ์ผ ์ˆ˜ ๋„ ์žˆ๊ฒ ์ฃ .

    ์–ด๋–ค ๊ฒฝ์šฐ๋“ , ๋ฏธ๋ฆฌ ๋‹ค์Œ์˜ ํฐ ์š”์†Œ๋“ค์€ ๋จธ๋ฆฌ์†์— ์ •๋ฆฌ๊ฐ€ ๋˜์–ด์žˆ๋‹ค๋ฉด, ์ œ๋ฒ• scalableํ•œ ์‹œ์Šคํ…œ์„ ์‹œ์Šคํ…œ์„ ๋””์ž์ธ ํ•˜๋Š”๋ฐ์— ๋„์›€์ด ๋ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

    - ๊ธฐ๋ณธ์ ์œผ๋กœ CS ๋ฐฐ๊ฒฝ ์ง€์‹์ด ์—†๋‹ค๋ฉด, Karan Pratap Singh๋‹˜์˜ ์‹œ์Šคํ…œ ๋””์ž์ธ ํ”„๋ผ์ด๋จธ๋„ ํ•œ๋ฒˆ ๋ณด์‹œ๋ฉด ์ข‹์Šต๋‹ˆ๋‹ค.

    https://github.com/karanpratapsingh/system-design#distributed-cache


    # ๊ธฐ๋ณธ ์š”์†Œ

    ๊ธฐ๋ณธ ์š”์†Œ๋ผ๊ณ  ๊ตณ์ด ๋ถ€๋ฅด๋Š” ์ด์œ ๋Š”, ํ–ฅํ›„์— ์‹œ์Šคํ…œ ๋””์ž์ธ์„ ํ• ๋•Œ ๋‹ค์Œ ์š”์†Œ๋“ค์„ ํ•œ๋ฒˆ ์ˆ™์ง€ ํ•˜๊ณ  ๋‚˜๋ฉด, ์‹œ์Šคํ…œ ๊ฐ ์š”์†Œ์˜ ๊ตฌ์ฒด์ ์ธ ์„ค๊ณ„๋‚˜ ๊ธฐ๋Šฅ ๋ช…์„ธ๋ฅผ ๋ชจ๋ฅด๋”๋ผ๋„ ์ „์ฒด ์‹œ์Šคํ…œ์˜ ๊ธฐ๋ณธ์ ์ธ ๊ตฌ์กฐ๋ฅผ ๊ตฌ์„ฑํ•˜๊ณ  ์„ค๊ณ„ํ•˜๋Š”๋ฐ ์ถฉ๋ถ„ ํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

    ๋ฌผ๋ก  ์‹ค๋ฌด ๊ฐœ๋ฐœ ๋ ˆ๋ฒจ์—์„  ๊ตฌํ˜„ํ•˜๋Š” ์„œ๋น„์Šค๋‚˜ ๊ธฐ๋Šฅ์— ๋”ฐ๋ผ ๋ถ„๋ช… ์—ฌ๊ธฐ์„œ ์–ธ๊ธ‰๋˜๋Š” ๊ธฐ๋ณธ ์š”์†Œ๋“ค ์ด์™ธ์—๋„ ์ฑ™๊ฒจ์•ผํ•  ๋””ํ…Œ์ผ์ด ๋งŽ๊ฒ ์ฃ . 

    ๋ฌด์—‡๋ณด๋‹ค๋„, ์•„๋งˆ์กด ์›น์„œ๋น„์Šค(AWS)๋ฅผ ๋น„๋กฏํ•ด, Azure, GCP๋“ฑ์˜ ์‚ฌ์„ค ํด๋ผ์šฐ๋“œ ์„œ๋น„์Šค์—์„œ ์ „๋ถ€ ์ œ๊ณตํ•˜๋Š” ์š”์†Œ๋“ค์ด๊ธฐ ๋•Œ๋ฌธ์— ํด๋ผ์šฐ๋“œ ํ™˜๊ฒฝ์ด ๋ณดํŽธํ™”๋œ ํ˜„ ์‹œ์ (2023๋…„)์— ๊ฐœ๋ฐœ์ž๋“ค์ด ์•Œ์•„ ๋‘˜๋งŒํ•œ ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค.

    ๊ฐ ์š”์†Œ์˜ ์„ธ๋ถ€ ๋‚ด์šฉ์€ ์ฐจ์ฐจ ํฌ์ŠคํŒ… ํ•ด๋ณด๋„๋ก ํ•˜๊ณ  ๊ฐ„๋‹จํ•˜๊ฒŒ ์˜์กด์„ฑ์ด ๋‚ฎ์€ ์ˆœ์œผ๋กœ(๋””์ž์ธ์ƒ bottom up ์‹์œผ๋กœ) ๋‚˜์—ดํ•ด๋ดค์Šต๋‹ˆ๋‹ค.

    1. Domain Name System (DNS)

    ๋‹ค์–‘ํ•œ ์ธํ„ฐ๋„ท ํ”„๋กœํ† ์ฝœ์„ ํ†ตํ•ด ์—ฐ๊ฒฐ๋œ ๊ณ„์ธต / ๋ถ„์‚ฐํ™”๋œ ๋„ค์ด๋ฐ ์‹œ์Šคํ…œ์ด ์–ด๋–ป๊ฒŒ ๊ตฌ์„ฑ๋˜๋Š”์ง€๋ฅผ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    ์†์นญ tier-0 load balancer ๋ผ๊ณ ๋„ ํ•ฉ๋‹ˆ๋‹ค.

    2. Load Balancers

    ์—ฌ๊ธฐ์—์„  load balancer์˜ ๋””์ž์ธ์„ ์ดํ•ดํ•˜๊ณ , ์œ ์ž…๋˜๋Š” ํด๋ผ์ด์–ธํŠธ ์š”์ฒญ์„ ์–ด๋–ป๊ฒŒ ๋ถ„์‚ฐ ์‹œ์ผœ ์‹œ์Šคํ…œ ๋ถ€ํ•˜๋ฅผ ์ค„์ด๊ณ  ์˜ค๋ฅ˜์— ๊ฐ•๊ฑดํ•œ ์‹œ์Šคํ…œ์„ ๊ตฌ์ถ•ํ•˜๋Š”์ง€ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์„œ๋น„์Šค availability ๋ณด์žฅ์„ ์œ„ํ•ด, ์„œ๋ฒ„ ์˜ค๋ฅ˜ ๋Œ€์‘, ์„œ๋ฒ„ ์ถ”๊ฐ€/์‚ญ์ œ ๋“ฑ์˜ scale out๋“ฑ, ํด๋Ÿฌ์Šคํ„ฐ ๊ตฌ์ถ•์— ๋ฐ˜๋“œ์‹œ ํ•„์š”ํ•œ ์กด์žฌ์ฃ .

    3. Databases

    ๊ฐ์ข… ๋ฐ์ดํ„ฐ์˜ ์ €์žฅ, ์‚ญ์ œ , ์—…๋ฐ์ดํŠธ ๋“ฑ์„ ๊ด€์žฅํ•˜๊ณ , ๋ฐ์ดํ„ฐ๊ฐ€ ์–ด๋–ป๊ฒŒ ๋ถ„์‚ฐํ™˜๊ฒฝ์—์„œ ๊ด€๋ฆฌ ๋˜๋Š”์ง€๋ฅผ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    ์ „์— ํ•œ๋ฒˆ consistency model์— ๋Œ€ํ•œ ๊ธ€์„ ์ ์€ ์ ์ด ์žˆ๋Š”๋ฐ ์ด์™€ ๋ฐ€์ ‘ํ•œ ๊ด€๊ณ„์ธ ์š”์†Œ์ž…๋‹ˆ๋‹ค. ๋ ˆํ”Œ๋ฆฌ์ผ€์ด์…˜, ํŒŒํ‹ฐ์…”๋‹ ๋“ฑ์„ ์œ„์ฃผ๋กœ ํ•œ๋ฒˆ ๋‹ค๋ค„ ๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

    4. Key-value Store

    ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ํ•œ ์œ ํ˜•์ธ๋ฐ, noSQL์ด๋ผ๊ณ ๋„ ๋ถ€๋ฅด์ฃ . ๊ด€๊ณ„ํ˜•(RDBMS) DB์™€๋Š” ๋‹ฌ๋ฆฌ ์ฃผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๋ชฉ์ ์ด ์ •ํ•ด์ ธ ์žˆ๋Š” ํŽธ์ธ๋ฐ, RDBMS์™€ ์–ด๋–ค ๊ฐœ๋…์ด ๋‹ค๋ฅธ์ง€, ์–ด๋–ป๊ฒŒ scalability๋ฅผ ํ™•๋ณดํ•˜๋Š”์ง€, ์–ด๋–ค ๋ชฉ์ ์œผ๋กœ ์ฃผ๋กœ ์“ฐ์ด๋Š”์ง€๋ฅผ ์•Œ์•„ ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

    5. Content Delivery Network (CDN)

    ์›น์ƒ์—์„œ ๋น„๋””์˜ค, ์ด๋ฏธ์ง€, ์˜ค๋””์˜ค๋“ฑ์˜ ์šฉ๋Ÿ‰์ด ํฐ ์ปจํ…์ธ ๋ฅผ ์–ด๋–ป๊ฒŒ ์ฒ˜๋ฆฌ ํ•ด์•ผ ์‚ฌ์šฉ์ž(end user)์—๊ฒŒ ํšจ๊ณผ์ ์œผ๋กœ ์ „๋‹ฌ๋ ์ง€, ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์ด ์–ด๋–ป๊ฒŒ ๊ฐœ์„  ๋˜๊ณ  ๋ฐ์ดํ„ฐ ์„ผํ„ฐ์— ๋ถ€ํ•˜๋ฅผ ์ค„์—ฌ์ฃผ๋Š”์ง€๋ฅผ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    6. Sequencer

    ์ด๊ฒŒ ์™œ ๊ธฐ๋ณธ์š”์†Œ๋ƒ๊ณ  ์ƒ๊ฐํ•˜์‹ค ์ˆ˜ ๋„ ์žˆ์ง€๋งŒ, ๋ถ„์‚ฐ ํ™˜๊ฒฝ์—์„œ unique ID๋ฅผ ์–ด๋–ป๊ฒŒ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š”์ง€, consistency๋ฅผ ์–ด๋–ป๊ฒŒ ์œ ์ง€ํ•˜๋Š”์ง€ ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ•๋ก ์„ ๋‹ค๋ค„๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. (๊ฐ„๋‹จํžˆ, unique ID generator ๋ผ๊ณ  ๋ณด์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.)

    7. Service Monitoring

    ์‹œ์Šคํ…œ์„ ๊ตฌ์ถ•ํ–ˆ์œผ๋ฉด ๋ชจ๋‹ˆํ„ฐ๋ง์„ ํ•ด์•ผ๊ฒ ์ฃ ? ๋”์šฑ์ด ๋ถ„์‚ฐ ์‹œ์Šคํ…œ์ด๋ผ๋ฉด ๋ฌธ์ œ๊ฐ€ ๋” ์ปค์ ธ์„œ ์„œ๋น„์Šค์— ๊ธ‰๊ฒฉํ•œ ๋ณ€ํ™”๋ฅผ ์ผ์œผํ‚ค๊ธฐ ์ „์— ์กฐ๊ธฐ์— ํƒ์ง€ํ•˜์—ฌ ๋Œ€์‘ํ•ด์ค˜์•ผํ•ฉ๋‹ˆ๋‹ค. ๋ฌธ์ œ์˜ ์œ ํ˜•์— ๋”ฐ๋ผ์„œ ๋ฐœ์ƒํ•˜์ง€ ์•Š๋”๋ผ๋„, ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒ ํ•  ์ˆ˜ ์žˆ๋Š” ์กฐ์ง์„ ๋ฏธ๋ฆฌ ํŒŒ์•…ํ•˜๋Š”๊ฒƒ๋„ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

    8. Distributed Caching

    ์บ์‹ฑ์€ ์„œ๋น„์Šค ์‘๋‹ต ์†๋„๋ฅผ ๊ฐœ์„ ํ•˜๋Š”๋ฐ์— ๊ธฐ๋ณธ ์š”์†Œ์ธ๋ฐ, ๋ถ„์‚ฐํ™˜๊ฒฝ์—์„œ ์บ์‹ฑ์„ ์–ด๋–ป๊ฒŒ ์ด๋ฃจ์–ด์ง€๋Š”์ง€ ๋‹ค๋ค„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

    9. Distributed Messaging Queue

    ๊ธฐ๋ณธ ์ž๋ฃŒ ๊ตฌ์กฐ์ค‘์— ํ•˜๋‚˜์ง€๋งŒ, ๋ฉ”์„ธ์ง• ํ๊ฐ€ ํ•œ๋Œ€์˜ ์„œ๋ฒ„์— ์žˆ์ง€ ์•Š๊ณ  ์—ฌ๋Ÿฌ๋Œ€์˜ ์„œ๋ฒ„์— ๊ฑธ์ณ ๋ถ„์‚ฐ๋˜์–ด์žˆ๋‹ค๋ฉด ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•ด์•ผํ•˜๋Š”์ง€, ์–ด๋–ค์‹์œผ๋กœ producer, consumer๊ฐ„์˜ ์ƒํ˜ธ์ž‘์šฉ์ด ์ผ์–ด๋‚˜๋Š”์ง€์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐ ํ•ด๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

    10. Publish-Subscribe System

    Pub-sub ํŒจํ„ด์€ ํŠน์ˆ˜ํ•œ ๊ฒฝ์šฐ์—๋งŒ ์“ฐ์ผ๊ฒƒ ๊ฐ™์ง€๋งŒ, ์ƒ๊ฐ๋ณด๋‹ค ๋น„๋™๊ธฐ ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜์ด ํ•„์š”ํ•œ๊ณณ์—์„œ ํ”ํžˆ ์“ฐ์ด๋Š” ๋ฐฉ๋ฒ•๋ก ์ž…๋‹ˆ๋‹ค. Serverless, ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์•„ํ‚คํ…์ณ(MSA: ์š”์ƒŒ ๋„ˆ๋ฌด ๋‚จ์šฉํ•˜๋Š” ๊ฒฝํ–ฅ์ด ์žˆ๋Š”๋ฐ ์ด๊ฒƒ๋„ ๋‚˜์ค‘์— ์‹œ๊ฐ„ ๋ ๋•Œ ๋”ฐ๋กœ ์ด์•ผ๊ธฐ ํ•ด๋ณผ๊ฒŒ์š”.) ๊ทธ๋ฆฌ๊ณ  ๋ฐ์ดํ„ฐ ํ”„๋กœ์„ธ์‹ฑ ๊ด€์ ์—์„œ ๋งŽ์ด ์“ฐ์ž…๋‹ˆ๋‹ค.

    11. Rate Limiter

    ์“ฐ๋กœํ‹€๋ง(throttling)์ด๋ผ๊ณ ๋„ ํ•˜์ฃ . ํŠน์ • ์„œ๋น„์Šค์˜ ์š”์ฒญ์ด ๋„ˆ๋ฌด ๋งŽ์ด ๋“ค์–ด์˜ฌ ๊ฒฝ์šฐ ์‚ฌ์ „์— ์ •์˜ํ•ด๋‘” ํ•œ๊ณ„๋‚ด์—์„œ ๋™์ž‘ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ฃผ๋Š” ์š”์†Œ์ž…๋‹ˆ๋‹ค. ์ฃผ๋กœ ์„œ๋น„์Šค๋ฅผ ๋ฐฉ์–ดํ•˜๋Š” ๋ ˆ์ด์–ด๋กœ์จ ์‹œ์Šคํ…œ ๋ถ€ํ•˜๋ฅผ ์ผ์ • ์ˆ˜์ค€ ์ด๋‚ด๋กœ ์œ ์ง€ํ•˜๋Š”๋ฐ ์“ฐ์ž…๋‹ˆ๋‹ค.

    12. Blob Store

    ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋‚˜  key-value store ๋ฐ‘์—์„œ ๊ฐ™์ด ๋‹ค๋ฃฐ๊นŒ ํ•˜๋‹ค๊ฐ€ ๋”ฐ๋กœ ๋บ€ ์š”์†Œ์ž…๋‹ˆ๋‹ค. ๋น„์ •ํ˜• ๋ฐ์ดํ„ฐ๋ฅผ(๋ฉ€ํ‹ฐ๋ฏธ๋””์–ด, ๋ฐ”์ด๋„ˆ๋ฆฌ) ๋‹ค๋ฃฌ๋‹ค๋Š” ๊ด€์ ์—์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ž‘ ๋น„๊ตํ•ด๋ณด์‹œ๋ฉด ์ข‹์„ ๋‚ด์šฉ์ด ๋ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

    13. Distributed Search

    ์ด์ œ๋Š” ์‹œ์Šคํ…œ ๋นŒ๋”ฉ ๋ธ”๋ก์ด๋ผ๊ณ  ๋ถ€๋ฅด๊ธฐ์—” ๋‹จ๋… ์‘์šฉ์„œ๋น„์Šค๋ผ๊ณ ๋„ ๋ถ€๋ฅผ ์ˆ˜ ์žˆ๊ฒ ๋Š”๋ฐ์š”, ์‚ฌ์šฉ์ž๋กœ ๋ถ€ํ„ฐ ๋ฐ›์€ ์ฟผ๋ฆฌ(query: ์˜์–ด๋ก  ํ€ด๋ฆฌ๊ฐ€ ์‹ค์ œ ๋ฐœ์Œ์— ๋” ๊ฐ€๊น์ง€๋งŒ ์–ด์งธ์„ ์ง€ ํ•™ํšŒ์—์„œ ์ฟผ๋ฆฌ๋ผ๊ณ  ์ฝ์œผ๋ฉด ํ•œ๊ตญ์‚ฌ๋žŒ์ด๋ผ๊ณ  ํ•  ์ •๋„๋กœ ์ฟผ๋ฆฌ๊ฐ€ ์ต์ˆ™ํ•˜๋„ค์š”)์— ๋Œ€ํ•ด ์—ฐ๊ด€์„ฑ์ด ๋†’์€ ๋ฐ์ดํ„ฐ๋ฅผ ๋น ๋ฅด๊ฒŒ ํƒ์ƒ‰ํ•ด์ฃผ๋Š” ์š”์†Œ์ฃ . ํฌ๊ฒŒ ํฌ๋กค๋ง(crawl), ์ƒ‰์ธ(index), ๊ฒ€์ƒ‰(search)๋กœ ๋‚˜๋ˆ ์„œ ๋‹ค๋ค„๋ณผ๊ฒŒ์š”.

    14. Distributed Logging

    ๊ธฐ๋Šฅ๋งŒ์„ ๋ณธ๋‹ค๋ฉด, ๋‹ค๋Ÿ‰์˜ I/O ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•ด์•ผํ•˜๋‹ˆ ๋งŒํผ ์„œ๋น„์Šค ์‘๋‹ต ์ง€์—ฐ์— ํฌ๊ฒŒ ํ•œ๋ชซ ์ฐจ์ง€ํ•˜๋Š” ์š”์†Œ์ด๊ธฐ๋„ ํ•œ๋ฐ์š”, ์‹ค์ œ๋กœ๋Š” ์„œ๋น„์Šค ์‘๋‹ต ์†๋„์— ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š๊ฒŒ๋” ๋””์ž์ธ ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์–ด๋–ป๊ฒŒ ์‘๋‹ต ์ง€์—ฐ์„ ์ผ์œผํ‚ค์ง€ ์•Š๊ณ  ํšจ๊ณผ์ ์œผ๋กœ ๋ถ„์‚ฐ ํ™˜๊ฒฝ์—์„œ ๋กœ๊น…์„ ํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ์•Œ์•„๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

    15. Distributed Task Scheduling

    ๋ถ„์‚ฐ ํ™˜๊ฒฝ์—์„œ๋Š” ๋ณต์žกํ•œ๊ฒŒ ๋งŽ์ฃ . ๋‹จ์ˆœํžˆ ์š”์ฒญ์ด ์˜ค๊ฐ€๋Š”๊ฒƒ๋งŒ ํ•ด๋„, ์•„๋‹ˆ ๊ทธ๋ƒฅ unique ID๋ฅผ ๋ณด์žฅํ•˜๋Š”๊ฒƒ๋งŒ ํ•ด๋„ ๊ฐ„๋‹จํ•˜์ง„ ์•Š์€๋ฐ task scheduling ๊นŒ์ง€ ํ•˜๋ ค๋ฉด ๋„ˆ๋ฌด ๋ณต์žกํ•ด์ง‘๋‹ˆ๋‹ค. ์ฃผ๋กœ offload๋ฅผ ๋ฐฑ๊ทธ๋ผ์šด๋“œ์—์„œ ์ฒ˜๋ฆฌํ•˜๊ณ  ๋น„๋™๊ธฐ์ ์œผ๋กœ task๊ฐ€ ์™„๋ฃŒ๋˜๋„๋ก ํ•˜๋Š” ์ „๋žต์„ ์ทจํ•ฉ๋‹ˆ๋‹ค.

    16. Sharded Counters

    ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ €์žฅํ•˜๋Š”๊ฒƒ๊ณผ ํฌ๊ฒŒ ๋‹ค๋ฅด์ง„ ์•Š์„ ์ˆ˜ ์žˆ์ง€๋งŒ, ๋กœ๊ทธ์™€๋Š” ๋‹ค๋ฅด๊ฒŒ, ์˜ˆ๋ฅผ๋“ค์–ด SNS์ƒ์— ์ข‹์•„์š” ๋ฒ„ํŠผ ๊ฐ™์€ ์š”์†Œ๋“ค์€ ๋ถ„์‚ฐํ™˜๊ฒฝ์—์„œ ๊ฑฐ์˜ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์นด์šดํŒ…์„ ํ•ด์ค˜์•ผํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ์–ด๋–ป๊ฒŒ ํšจ์œจ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๋Š”์ง€ ์•Œ์•„ ๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

     

    ์ด์ •๋„ ๊ฐœ๋…์„ ์ˆ™์ง€ํ•œ๋‹ค๋ฉด, ์„ธ๋ถ€ ๋‚ด์šฉ์„ ๊ธฐ์–ตํ•˜์ง€ ๋ชปํ•˜๊ฒŒ ๋˜๋”๋ผ๋„, ํด๋ผ์šฐ๋“œ ํ™˜๊ฒฝ์—์„œ ์‹œ์Šคํ…œ ๋””์ž์ธ ํ•˜๋Š”๋ฐ์—” ๋ฌด๋ฆฌ๊ฐ€ ์—†์ง€ ์•Š์„๊นŒ ์‹ถ์Šต๋‹ˆ๋‹ค. (์ด๊ฒƒ๋„ ๋งŽ์€๊ฑฐ ๊ฐ™์€๋ฐ ์ด๊ฑธ ์–ธ์ œ ๋‹ค ์ปค๋ฒ„ํ•˜์ง€...)

    ํ•˜๋‹ค๋ชปํ•ด ์ฑ„์šฉ ๋ฉด์ ‘์—์„œ "~ ํ•˜๋Š” ์‹œ์Šคํ…œ์„ ์„ค๊ณ„ํ•ด๋ณด์„ธ์š”" ๋ผ๊ณ  ํ–ˆ์„๋•Œ ์•„๋งˆ์ถ”์–ด ์ฒ˜๋Ÿผ ๋Œ€๋œธ "์ž๋ฐ”๋กœ ์—ฌ๊ธฐ์„œ ์ด๋ ‡๊ฒŒ ์ด๋Ÿฐ ํด๋ž˜์Šค ๋งŒ๋“ค์–ด์„œ... ์—ฌ๊ธฐ์„  ์†๋„๋ฅผ ๊ฐœ์„ ํ•˜๊ธฐ ์œ„ํ•ด C๋กœ ๊ตฌํ˜„ํ•˜๋ฉด..." ์ด๋Ÿฐ ๋ฐ”๋ณด ๊ฐ™์€ ์†Œ๋ฆฌ๋Š” ํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. (์ž๋ฐ”๋‚˜ C๋ฅผ ๋น„ํ•˜ํ•˜๋Š”๊ฒŒ ์•„๋‹™๋‹ˆ๋‹ค..)

     

    ๋ฐ˜์‘ํ˜•

    'ML engineer > System designs' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

    IaaS / PaaS / SaaS  (0) 2023.09.22
    Domain Name System (DNS) ๊ฐœ์š”  (0) 2023.01.22
    Consistency Model์˜ ์ข…๋ฅ˜  (0) 2023.01.02

    ๋Œ“๊ธ€

Designed by naubull2.