Avatar
๐Ÿ˜‰

Organizations

  • ๋ถ„์‚ฐ ์‹œ์Šคํ…œ์—์„œ ์—ฌ๋Ÿฌ ๋Œ€์˜ ์„œ๋ฒ„๊ฐ€ ๋™์ผํ•œ ์ž์›์— ๋™์‹œ์— ์ ‘๊ทผํ•  ๋•Œ, ๋ฐ์ดํ„ฐ์˜ ์ผ๊ด€์„ฑ์„ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ์ˆ ์ด ๋ฐ”๋กœ **๋ถ„์‚ฐ๋ฝ(Distributed Lock)**์ž…๋‹ˆ๋‹ค.

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


    1. ๋ถ„์‚ฐ๋ฝ์ด ํ•„์š”ํ•œ ์ด์œ 

    ๋™์ผํ•œ DB ๋ ˆ์ฝ”๋“œ์— ๋Œ€ํ•ด ์—ฌ๋Ÿฌ ์ธ์Šคํ„ด์Šค๊ฐ€ ๋™์‹œ์— ์ˆ˜์ • ์š”์ฒญ์„ ๋ณด๋‚ผ ๋•Œ, **๋ ˆ์ด์Šค ์ปจ๋””์…˜(Race Condition)**์ด ๋ฐœ์ƒํ•˜์—ฌ ๋ฐ์ดํ„ฐ๊ฐ€ ๊ผฌ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    Created Fri, 13 Feb 2026 11:14:05 +0900
  • Redis๋ฅผ ํ™œ์šฉํ•œ ๋ฉ”์‹œ์ง• ์‹œ์Šคํ…œ์˜ ๋‘ ๊ธฐ๋Šฅ์€ ๋ชจ๋‘ “๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•œ๋‹ค"๋Š” ๋ชฉ์ ์€ ๊ฐ™์ง€๋งŒ, **์ฒ ํ•™(Philosophy)**๊ณผ ๋ฐ์ดํ„ฐ ๋ณด์กด ๋ฐฉ์‹์—์„œ ๊ฒฐ์ •์ ์ธ ์ฐจ์ด๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

    ํ•œ๋งˆ๋””๋กœ ์š”์•ฝํ•˜์ž๋ฉด: **Pub/Sub์€ ‘๋ฐฉ์†ก’**์ด๊ณ , **Streams๋Š” ‘๊ธฐ๋ก์ด ๋‚จ๋Š” ๋กœ๊ทธ’**์ž…๋‹ˆ๋‹ค.


    1. Redis Pub/Sub (Publish/Subscribe)

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

    • ํœ˜๋ฐœ์„ฑ (Fire and Forget): ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๋‚ธ ํ›„ ์–ด๋””์—๋„ ์ €์žฅํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ˆ˜์‹ ์ž๊ฐ€ ์˜คํ”„๋ผ์ธ ์ƒํƒœ๋ผ๋ฉด ๊ทธ ๋ฉ”์‹œ์ง€๋Š” ์˜์›ํžˆ ์‚ฌ๋ผ์ง‘๋‹ˆ๋‹ค.
    • ์‹ค์‹œ๊ฐ„์„ฑ: ์ง€์—ฐ ์‹œ๊ฐ„์ด ๊ฑฐ์˜ ์—†์–ด ์‹ค์‹œ๊ฐ„ ์•Œ๋ฆผ์ด๋‚˜ ์ฑ„ํŒ…์— ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค.
    • ํŒฌ์•„์›ƒ(Fan-out): ํ•˜๋‚˜์˜ ๋ฉ”์‹œ์ง€๋ฅผ ์ˆ˜์ฒœ ๋ช…์˜ ๊ตฌ๋…์ž์—๊ฒŒ ๋™์‹œ์— ๋ฟŒ๋ฆด ๋•Œ ๋งค์šฐ ํšจ์œจ์ ์ž…๋‹ˆ๋‹ค.

    2. Redis Streams

    Kafka์™€ ์œ ์‚ฌํ•œ ๊ธฐ๋Šฅ์„ Redis์— ๊ตฌํ˜„ํ•œ ๋ชจ๋ธ์ž…๋‹ˆ๋‹ค. ๋‹จ์ˆœ ์ „๋‹ฌ์„ ๋„˜์–ด ๋ฐ์ดํ„ฐ์˜ ‘์ด๋ ฅ’์„ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

    Created Thu, 12 Feb 2026 11:14:05 +0900
  • Spring Boot(๋˜๋Š” Java)์—์„œ Future ํŒจํ„ด์€ ๋น„๋™๊ธฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์œ„ํ•œ ํ•ต์‹ฌ ๋””์ž์ธ ํŒจํ„ด์ž…๋‹ˆ๋‹ค. ์‰ฝ๊ฒŒ ๋งํ•ด, **“์ง€๊ธˆ ๋‹น์žฅ ๊ฒฐ๊ณผ๋ฅผ ์ค„ ์ˆ˜๋Š” ์—†์ง€๋งŒ, ๋ฏธ๋ž˜์˜ ์–ด๋А ์‹œ์ ์— ์ž‘์—…์ด ์™„๋ฃŒ๋˜๋ฉด ๊ฒฐ๊ณผ๋ฌผ์„ ๋„˜๊ฒจ์ฃผ๊ฒ ๋‹ค”**๋Š” ์•ฝ์†(Promise)๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.


    1. Future ํŒจํ„ด์˜ ํ•ต์‹ฌ ๊ฐœ๋…

    ์ผ๋ฐ˜์ ์ธ ๋™๊ธฐ(Synchronous) ๋ฐฉ์‹์—์„œ๋Š” ์ž‘์—…์ด ๋๋‚  ๋•Œ๊นŒ์ง€ ์Šค๋ ˆ๋“œ๊ฐ€ ์•„๋ฌด๊ฒƒ๋„ ๋ชป ํ•˜๊ณ  ๊ธฐ๋‹ค๋ ค์•ผ ํ•ฉ๋‹ˆ๋‹ค(Blocking). ๋ฐ˜๋ฉด, Future ํŒจํ„ด์„ ์‚ฌ์šฉํ•˜๋ฉด ์ž‘์—…์„ ๋ณ„๋„์˜ ์Šค๋ ˆ๋“œ์— ๋งก๊ธฐ๊ณ  ๋ฉ”์ธ ์Šค๋ ˆ๋“œ๋Š” ์ž๊ธฐ ํ•  ์ผ์„ ๊ณ„์†ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ์ฃผ์š” ํŠน์ง•

    • ๋น„์ฐจ๋‹จ(Non-blocking): ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜ฌ ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆฌ์ง€ ์•Š๊ณ  ๋‹ค๋ฅธ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์–ด ํšจ์œจ์ ์ž…๋‹ˆ๋‹ค.
    • ์ง€์—ฐ ์‹คํ–‰: ๊ฒฐ๊ณผ๊ฐ€ ์‹ค์ œ๋กœ ํ•„์š”ํ•œ ์‹œ์ ๊นŒ์ง€ ๋ฐ์ดํ„ฐ ๊ณ„์‚ฐ์„ ๋ฏธ๋ฃฐ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ๊ฒฐํ•ฉ์„ฑ: ์—ฌ๋Ÿฌ ๋น„๋™๊ธฐ ์ž‘์—…์˜ ๊ฒฐ๊ณผ๋ฅผ ํ•ฉ์น˜๊ฑฐ๋‚˜, ์ˆœ์ฐจ์ ์œผ๋กœ ์‹คํ–‰ํ•˜๋Š” ํ๋ฆ„์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    2. Spring Boot์—์„œ์˜ ๊ตฌํ˜„ ๋ฐฉ์‹

    Spring Boot์—์„œ๋Š” ์ฃผ๋กœ CompletableFuture์™€ @Async ์–ด๋…ธํ…Œ์ด์…˜์„ ์กฐํ•ฉํ•˜์—ฌ ์ด ํŒจํ„ด์„ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค.

    Created Tue, 27 Jan 2026 11:25:18 +0900
  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„ค๊ณ„์—์„œ **์ •๊ทœํ™”(Normalization)**์™€ **๋ฐ˜์ •๊ทœํ™”(Denormalization)**๋Š” ๋ฐ์ดํ„ฐ์˜ **๋ฌด๊ฒฐ์„ฑ(Integrity)**๊ณผ ์„ฑ๋Šฅ(Performance) ์‚ฌ์ด์˜ ๊ท ํ˜•์„ ๋งž์ถ”๋Š” ํ•ต์‹ฌ์ ์ธ ๊ฐœ๋…์ž…๋‹ˆ๋‹ค.

    ์ด ๋‘˜์˜ ๊ด€๊ณ„๋Š” ํ”ํžˆ **“๋ฐ์ดํ„ฐ ์ •ํ•ฉ์„ฑ vs. ์ฝ๊ธฐ ์„ฑ๋Šฅ”**์˜ ํŠธ๋ ˆ์ด๋“œ์˜คํ”„(Trade-off)๋กœ ์š”์•ฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ ๊ฐœ๋…์˜ ํŠน์ง•๊ณผ ํŠธ๋ ˆ์ด๋“œ์˜คํ”„ ์š”์†Œ๋ฅผ ์ƒ์„ธํžˆ ๋ถ„์„ํ•ด ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.


    1. ํ•ต์‹ฌ ํŠธ๋ ˆ์ด๋“œ์˜คํ”„ ์š”์•ฝ

    ๊ฐ€์žฅ ๋จผ์ € ์ดํ•ดํ•ด์•ผ ํ•  ํฐ ๊ทธ๋ฆผ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

    • ์ •๊ทœํ™”: ๋ฐ์ดํ„ฐ๋ฅผ ์ชผ๊ฐœ์„œ ์ค‘๋ณต์„ ์ œ๊ฑฐํ•˜๊ณ  ๋ฌด๊ฒฐ์„ฑ์„ ์ง€ํ‚ต๋‹ˆ๋‹ค. (์“ฐ๊ธฐ ์„ฑ๋Šฅ ํ–ฅ์ƒ, ์ฝ๊ธฐ ์‹œ JOIN ๋น„์šฉ ๋ฐœ์ƒ)
    • ๋ฐ˜์ •๊ทœํ™”: ์„ฑ๋Šฅ์„ ์œ„ํ•ด ์˜๋„์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ค‘๋ณต์‹œํ‚ต๋‹ˆ๋‹ค. (์ฝ๊ธฐ ์„ฑ๋Šฅ ํ–ฅ์ƒ, ์“ฐ๊ธฐ ์‹œ ๋™๊ธฐํ™” ๋น„์šฉ ๋ฐœ์ƒ)

    2. ์ •๊ทœํ™” (Normalization)

    ๋ฐ์ดํ„ฐ์˜ ์ค‘๋ณต์„ ์ตœ์†Œํ™”ํ•˜๊ณ , ์ด์ƒ ํ˜„์ƒ(Anomaly)์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ํ…Œ์ด๋ธ”์„ ๋ถ„๋ฆฌํ•˜๋Š” ๊ณผ์ •์ž…๋‹ˆ๋‹ค.

    Created Wed, 21 Jan 2026 21:20:45 +0900
  • ์žฅ๋‹จ์ 

    ์Šคํ”„๋ง๋ถ€ํŠธ(Spring Boot)์™€ JPA(Hibernate) ํ™˜๊ฒฝ์—์„œ **์ŠคํŠธ๋ฆฌ๋ฐ ์ฟผ๋ฆฌ(Streaming Query)**๋Š” ๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•  ๋•Œ ๋ฉ”๋ชจ๋ฆฌ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ๋งค์šฐ ์ค‘์š”ํ•œ ๊ธฐ์ˆ ์ž…๋‹ˆ๋‹ค.

    ์ผ๋ฐ˜์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ List<T> ํ˜•ํƒœ๋กœ ์กฐํšŒํ•˜๋ฉด ๋ชจ๋“  ๊ฒฐ๊ณผ๊ฐ€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฉ”๋ชจ๋ฆฌ(RAM)์— ์ ์žฌ๋˜์ง€๋งŒ, ์ŠคํŠธ๋ฆฌ๋ฐ ์ฟผ๋ฆฌ๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ปค์„œ(Cursor)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ•„์š”ํ•œ ๋งŒํผ๋งŒ ์กฐ๊ธˆ์”ฉ ๊ฐ€์ ธ์™€ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.

    ์š”์ฒญํ•˜์‹  ์ŠคํŠธ๋ฆฌ๋ฐ ์ฟผ๋ฆฌ์˜ ํŠน์ง•๊ณผ ์žฅ๋‹จ์ ์„ ์ •๋ฆฌํ•ด ๋“œ๋ฆฝ๋‹ˆ๋‹ค.


    1. ์ŠคํŠธ๋ฆฌ๋ฐ ์ฟผ๋ฆฌ์˜ ์ฃผ์š” ํŠน์ง•

    ์ŠคํŠธ๋ฆฌ๋ฐ ์ฟผ๋ฆฌ๋Š” Java 8์˜ Stream<T> API๋ฅผ ํ™œ์šฉํ•˜์—ฌ DB ๊ฒฐ๊ณผ๋ฅผ ๋ฌผ ํ๋ฅด๋“ฏ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

    • ์ปค์„œ(Cursor) ๊ธฐ๋ฐ˜ ๋™์ž‘: ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋‚ด๋ถ€์˜ ์ปค์„œ๋ฅผ ์ด๋™์‹œํ‚ค๋ฉฐ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆœ์ฐจ์ ์œผ๋กœ ์ฝ์–ด์˜ต๋‹ˆ๋‹ค.
    • ์ง€์—ฐ ๋กœ๋”ฉ(Lazy Loading)๊ณผ ์œ ์‚ฌ: Stream ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•œ ์‹œ์ ์—๋Š” ์ฟผ๋ฆฌ๋งŒ ์‹คํ–‰๋˜๊ณ , ์‹ค์ œ ๋ฐ์ดํ„ฐ๋Š” stream.forEach()๋‚˜ next() ๋“ฑ์„ ํ˜ธ์ถœํ•  ๋•Œ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.
    • ํŠธ๋žœ์žญ์…˜ ์˜์กด์„ฑ: ์ŠคํŠธ๋ฆผ ์ฒ˜๋ฆฌ๊ฐ€ ๋๋‚  ๋•Œ๊นŒ์ง€ DB ์—ฐ๊ฒฐ(Connection)์„ ์œ ์ง€ํ•ด์•ผ ํ•˜๋ฏ€๋กœ, ๋ฐ˜๋“œ์‹œ ํ™œ์„ฑํ™”๋œ ํŠธ๋žœ์žญ์…˜ ์•ˆ์—์„œ ์ˆ˜ํ–‰๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

    2. ์žฅ์  (Pros)

    ๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ(Batch ์ž‘์—…, ์—‘์…€ ๋‹ค์šด๋กœ๋“œ ๋“ฑ)์—์„œ ๊ฐ•๋ ฅํ•œ ์ด์ ์„ ๊ฐ€์ง‘๋‹ˆ๋‹ค.

    Created Tue, 20 Jan 2026 21:20:45 +0900
  • Memcached์™€ Redis๋Š” ๋‘˜ ๋‹ค ๊ณ ์„ฑ๋Šฅ ์ธ๋ฉ”๋ชจ๋ฆฌ(In-memory) ํ‚ค-๊ฐ’(Key-Value) ์ €์žฅ์†Œ๋กœ, ์ฃผ๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ถ€ํ•˜๋ฅผ ์ค„์ด๊ณ  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์†๋„๋ฅผ ๋†’์ด๋Š” ์บ์‹œ(Cache) ์šฉ๋„๋กœ ์‚ฌ์šฉ๋œ๋‹ค๋Š” ๊ณตํ†ต์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

    ํ•˜์ง€๋งŒ “๋‹จ์ˆœํ•จ๊ณผ ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋“œ(Memcached)” ๋Œ€ **“๊ฐ•๋ ฅํ•œ ๊ธฐ๋Šฅ๊ณผ ์œ ์—ฐ์„ฑ(Redis)”**์ด๋ผ๋Š” ๋ช…ํ™•ํ•œ ์ฐจ์ด๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

    ๋‘ ๊ธฐ์ˆ ์˜ ํ•ต์‹ฌ์ ์ธ ์ฐจ์ด๋ฅผ 4๊ฐ€์ง€ ๊ด€์ (๋ฐ์ดํ„ฐ ๊ตฌ์กฐ, ์•„ํ‚คํ…์ฒ˜, ์˜์†์„ฑ, ํ™•์žฅ์„ฑ)์—์„œ ์ •๋ฆฌํ•ด ๋“œ๋ฆฝ๋‹ˆ๋‹ค.


    1. ํ•œ๋ˆˆ์— ๋ณด๋Š” ๋น„๊ต (Executive Summary)

    ํŠน์ง• Memcached Redis
    ์ฃผ์š” ์ปจ์…‰ ๊ณ ์„ฑ๋Šฅ, ๋‹จ์ˆœํ•จ, ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋“œ ๋‹ค์–‘ํ•œ ์ž๋ฃŒ๊ตฌ์กฐ, ์˜์†์„ฑ, ๊ธฐ๋Šฅ ํ’๋ถ€
    ์ž๋ฃŒ ๊ตฌ์กฐ String (๋‹จ์ˆœ ๋ฌธ์ž์—ด/๋ฐ”์ด๋„ˆ๋ฆฌ) String, List, Set, Hash, Sorted Set, Geo ๋“ฑ
    ์Šค๋ ˆ๋“œ ๋ชจ๋ธ ๋ฉ€ํ‹ฐ ์Šค๋ ˆ๋“œ (Multi-threaded) ์‹ฑ๊ธ€ ์Šค๋ ˆ๋“œ (Single-threaded) (I/O๋Š” ๋ฉ€ํ‹ฐ ๊ฐ€๋Šฅ)
    ๋ฐ์ดํ„ฐ ์˜์†์„ฑ ์ง€์› ์•ˆ ํ•จ (์žฌ๋ถ€ํŒ… ์‹œ ๋ฐ์ดํ„ฐ ์†Œ๋ฉธ) ์ง€์› (RDB, AOF)
    ํ™•์žฅ์„ฑ(Clustering) ํด๋ผ์ด์–ธํŠธ ์ธก ๋ถ„์‚ฐ (Consistent Hashing) ์„œ๋ฒ„ ์ธก ๋ถ„์‚ฐ (Redis Cluster)
    ๋ณต์ œ(Replication) ์ง€์› ์•ˆ ํ•จ Master-Slave ๋ณต์ œ ์ง€์›
    ์ฃผ์š” ์šฉ๋„ ๋‹จ์ˆœ ์บ์‹ฑ (์„ธ์…˜, HTML ์กฐ๊ฐ) ๋ณต์žกํ•œ ์บ์‹ฑ, ๋ฆฌ๋”๋ณด๋“œ, ๋Œ€๊ธฐ์—ด, ๋ฉ”์‹œ์ง€ ๋ธŒ๋กœ์ปค

    2. ์ƒ์„ธ ์ฐจ์ด์  ๋ถ„์„

    โ‘  ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ (Data Structures)

    • Memcached: ์˜ค์ง **๋ฌธ์ž์—ด(String)**๋งŒ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ๋ฆฌ์ŠคํŠธ๋‚˜ ํ•ด์‹œ ๊ฐ™์€ ๊ตฌ์กฐ๋ฅผ ์ €์žฅํ•˜๋ ค๋ฉด JSON ๋“ฑ์œผ๋กœ ์ง๋ ฌํ™”(Serialize)ํ•ด์„œ ๋ฌธ์ž์—ด๋กœ ๋งŒ๋“  ๋’ค ์ €์žฅํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ •ํ•˜๋ ค๋ฉด ์ „์ฒด ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์™€์„œ ์ˆ˜์ •ํ•œ ๋’ค ๋‹ค์‹œ ๋ฎ์–ด์จ์•ผ ํ•˜๋Š” ๋‹จ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.
    • Redis: ๋‹ค์–‘ํ•œ ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ๋ฆฌ์ŠคํŠธ(List)์— ์š”์†Œ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜, ํ•ด์‹œ(Hash)์˜ ํŠน์ • ํ•„๋“œ๋งŒ ์ˆ˜์ •ํ•˜๋Š” ๋“ฑ ํšจ์œจ์ ์ธ ๋ฐ์ดํ„ฐ ์กฐ์ž‘์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
    • ํ™œ์šฉ ์˜ˆ: ‘์‹ค์‹œ๊ฐ„ ๋žญํ‚น’ ๊ตฌํ˜„ ์‹œ Redis์˜ Sorted Set์„ ์“ฐ๋ฉด ๋งค์šฐ ์‰ฝ๊ฒŒ ๊ตฌํ˜„ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

    โ‘ก ์Šค๋ ˆ๋“œ ๋ชจ๋ธ (Architecture)

    ๊ฐ€์žฅ ํฐ ์•„ํ‚คํ…์ฒ˜ ์ฐจ์ด์ž…๋‹ˆ๋‹ค.

    Created Tue, 20 Jan 2026 09:41:22 +0900
Next