์ธํ”„๋Ÿฐ ์˜๋ฌธ ๋ธŒ๋žœ๋“œ ๋กœ๊ณ 
์ธํ”„๋Ÿฐ ์˜๋ฌธ ๋ธŒ๋žœ๋“œ ๋กœ๊ณ 

๋ ˆ๋””์Šค์˜ ๋ชจ๋“  ๊ฒƒ (feat. Node.js)

๋ ˆ๋””์Šค A to Z๋กœ ๋ ˆ๋””์Šค ์ฒซ ์‹œ์ž‘์„ ํƒ„ํƒ„ํ•˜๊ฒŒ! ๊ณ ๋“ฑํ•™์ƒ์ด ๋ด๋„ ์™„๋ฒฝํžˆ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ์‰ฝ๊ณ  ์žฌ๋ฐŒ๋Š” ๋ ˆ๋””์Šค์˜ ๋ชจ๋“  ๊ฒƒ

Thumbnail

์ž…๋ฌธ์ž๋ฅผ ์œ„ํ•ด ์ค€๋น„ํ•œ
[๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค, Redis] ๊ฐ•์˜์ž…๋‹ˆ๋‹ค.

์ด๋Ÿฐ ๊ฑธ ๋ฐฐ์šธ ์ˆ˜ ์žˆ์–ด์š”

  • Redis

  • Redis๋ฅผ ํ™œ์šฉํ•œ ๋ฐฑ์—”๋“œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜

๋ช…๋ น์–ด๋งŒ ๋ฐฐ์šฐ๋Š” ๊ฐ•์˜๋Š” ๊ทธ๋งŒ!
์›๋ฆฌ๋ฅผ ์ดํ•ดํ•˜๋ฉฐ ๋ฐฐ์šฐ๋Š” ์ง„์งœ ๋ ˆ๋””์Šค ๊ฐ•์˜

์•„๋ž˜ ๋ฉด์ ‘ ์งˆ๋ฌธ์—
๋Œ€๋‹ตํ•˜์‹ค ์ˆ˜ ์žˆ์œผ์‹ ๊ฐ€์š”?
๐Ÿคทโ€โ™‚๏ธ

Q1) Redis์˜ replication์— ๋Œ€ํ•ด ์•„๋Š”๋Œ€๋กœ ์„ค๋ช…ํ•˜๊ณ  quorum์— ๋Œ€ํ•ด ์„ค๋ช…ํ•˜์„ธ์š”.

Q2) ๋ ˆ๋””์Šค์™€ ์“ฐ๋ ˆ๋“œ์— ๋Œ€ํ•ด ์•„๋Š” ๋Œ€๋กœ ์—ฐ๊ด€ ์ง€์–ด ์„ค๋ช…ํ•ด๋ณด์„ธ์š”.

Q3) delete์™€ unlink๋Š” ๋ฌด์Šจ ์ฐจ์ด์ ์ด ์žˆ์„๊นŒ์š”?

Q4) ๋ฐฑ์—…์˜ ๋Œ€ํ‘œ์ ์ธ ๋ฐฉ๋ฒ• 2๊ฐ€์ง€์— ๋Œ€ํ•ด ์„ค๋ช…ํ•˜๊ณ  ๊ฐ๊ฐ ์žฅ๋‹จ์ ์„ ์„ค๋ช…ํ•˜์„ธ์š”.

Q5) ์šด์˜์ค‘์— ๋ ˆ๋””์Šค์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ๋ฐ”๊พธ๊ณ  ์‹ถ์„ ๋•Œ๋Š” ์–ด๋–ป๊ฒŒ ํ•˜๋‚˜์š”?


๋ ˆ๋””์Šค์˜ ๋ช…๋ น์–ด ๋ช‡ ๊ฐ€์ง€๋ฅผ ์•„๋Š” ๊ฒƒ๊ณผ ๋ ˆ๋””์Šค๋ฅผ ํ•  ์ค„ ์•ˆ๋‹ค๋Š” ๊ฒƒ์€ ๋‹ค๋ฆ…๋‹ˆ๋‹ค.
 ๋ ˆ๋””์Šค์˜ ์„ค์น˜, ์‹คํ–‰, ์‘์šฉ์„ ํ•ด๋ณด๋ฉฐ ๋ช…๋ น์–ด๋ถ€ํ„ฐ ๋‚ด๋ถ€๋™์ž‘ ์›๋ฆฌ์™€ ๋ ˆ๋””์Šค ์ƒํƒœ๊ณ„๊นŒ์ง€ ๋ชจ๋“  ๊ฒƒ์„ ๋ฐฐ์›Œ๋ด…์‹œ๋‹ค!


์™œ IT/Tech ๊ธฐ์—…๋“ค์€
Redis๋ฅผ ์„ ํ˜ธํ• ๊นŒ์š”?
 

๋ฐ”๋กœ ์†๋„, ๊ฐ„๋‹จํ•œ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ, ํ™•์žฅ์„ฑ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. Redis๋Š” ๋ฉ”๋ชจ๋ฆฌ ๊ธฐ๋ฐ˜์œผ๋กœ ๋งค์šฐ ๋น ๋ฅธ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ์†๋„๋ฅผ ์ œ๊ณตํ•˜๋ฉฐ, ํ‚ค-๊ฐ’ ์ €์žฅ์†Œ๋กœ ๋ณต์žกํ•œ ์ฟผ๋ฆฌ ์—†์ด ๋ฐ์ดํ„ฐ๋ฅผ ๋น ๋ฅด๊ฒŒ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ํด๋Ÿฌ์Šคํ„ฐ์™€ ๋ณต์ œ ๊ธฐ๋Šฅ์„ ํ†ตํ•ด ๊ณ ๊ฐ€์šฉ์„ฑ๊ณผ ํ™•์žฅ์„ฑ์„ ์ง€์›ํ•ด ๋Œ€๊ทœ๋ชจ ํŠธ๋ž˜ํ”ฝ ์ฒ˜๋ฆฌ์— ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค. ๋„ค์นด๋ผ์ฟ ๋ฐฐ ์ฑ„์šฉ ๊ณต๊ณ ์—๋„ ํ•ญ์ƒ Redis ์šฐ๋Œ€, Redis ํ•„์ˆ˜ ์‚ฌํ•ญ์œผ๋กœ ๋ช…์‹œ๋˜์–ด ์žˆ๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

<์นด์นด์˜ค ์ฑ„์šฉ๊ณต๊ณ >

<๋ฐฐ๋‹ฌ์˜๋ฏผ์กฑ ์ฑ„์šฉ๊ณต๊ณ >


์‹ค๋ฌด๋ถ€ํ„ฐ ๋ฉด์ ‘๊นŒ์ง€
Redis์˜ ์—‘๊ธฐ์Šค๋งŒ ๋‹ด์•˜์Šต๋‹ˆ๋‹ค โœจ

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

โœ… ์‹ค๋ฌด์ฒ˜๋Ÿผ ์ง์ ‘ ์„ค์น˜ํ•ด๋ณด๋Š” Redis

โœ… ์ง๊ด€์ ์ธ ๊ทธ๋ฆผ ์„ค๋ช…์œผ๋กœ ์ดํ•ดํ•˜๋Š” Redis์˜ ๋™์ž‘์›๋ฆฌ ์ดํ•ด

โœ… Node.js ์ฝ”๋“œ๋กœ Redis ํ™œ์šฉ ์˜ˆ์ œ ํ’€์–ด๋ณด๊ธฐ

โœ… ์ค‘๊ฐ„์ค‘๊ฐ„ ๋“ฑ์žฅํ•˜๋Š” ์‹ค๋ฌด์ž์˜ Redis ๊ฟ€ํŒ!


๊ฐ•์˜์—์„œ๋Š” 
์ด๋Ÿฐ ๋‚ด์šฉ์„ ๋ฐฐ์›Œ์š” ๐Ÿƒ

1. ์‹ค๋ฌด ๋ ˆ๋””์Šค ๊ตฌ์„ฑ

์ปจํ…Œ์ด๋„ˆ(Docker)์™€ VM์„ ํ™œ์šฉํ•˜์—ฌ 100% ์‹ค์ „๊ณผ ๊ฐ™์€ ๋ ˆ๋””์Šค ํ™˜๊ฒฝ์„ ๊ตฌ์ถ•ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ๋ ˆ๋””์Šค ์ž๋™์‹คํ–‰์„ ์œ„ํ•œ ์„ค์ •, ๋ฐฑ์—… ์ž‘์—…์„ ํšจ์œจ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ๋””์Šคํฌ ๋ณ‘๋ ฌํ™” ๊ธฐ๋ฒ•, ๋ ˆ๋””์Šค ๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ ๋ฐ ๋ชจ๋‹ˆํ„ฐ๋ง์„ ์œ„ํ•œ Redis Insignt๊นŒ์ง€ ํ•™์Šตํ•ฉ๋‹ˆ๋‹ค.

2. ๋ ˆ๋””์Šค ๋ช…๋ น์–ด ํ•™์Šต

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

3. ์‹ค์ „ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜(feat. Node.js) ๊ฐœ๋ฐœ

Node.js๋กœ ๊ฐ„๋‹จํ•œ OTP ์ƒ์„ฑ, ์บ์‹œ ๋™๊ธฐํ™”, ๋ฐ”์ด๋„ˆ๋ฆฌ ๋ฐ์ดํ„ฐ ์บ์‹ฑ ๋“ฑ์„ ๊ตฌํ˜„ํ•˜๊ณ , ๋ถ„์‚ฐ ๋ฝ์„ ์ด์šฉํ•œ ํ‹ฐ์ผ“ํŒ… ์‹œ์Šคํ…œ, ์ฟ ํ‚ค/์„ธ์…˜ ๊ด€๋ฆฌ, ์‹ค์‹œ๊ฐ„ ์ธ๊ธฐ ๊ฒ€์ƒ‰์–ด ์ ์ˆ˜ํŒ ๋ฐ ์ฑ„ํŒ… ์‹œ์Šคํ…œ์„ ํ†ตํ•ด Redis์˜ ๋‹ค์–‘ํ•œ ํ™œ์šฉ ๋ฐฉ๋ฒ•์„ ๋ฐฐ์›๋‹ˆ๋‹ค.

4. ๋ ˆ๋””์Šค ์ž๋ฃŒ๊ตฌ์กฐ

๋ ˆ๋””์Šค์—์„œ ์“ฐ์ด๋Š” ์ž๋ฃŒ๊ตฌ์กฐ์™€ ๋ฐ์ดํ„ฐ ํƒ€์ž…์„ ์‰ฝ๊ฒŒ ์ง๊ด€์ ์œผ๋กœ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์‹ํ™”ํ•˜์—ฌ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. 


์ด๋Ÿฐ ๋ถ„๋“ค์—๊ฒŒ ์ถ”์ฒœํ•ด์š” ๐Ÿ‘

๐Ÿ’ก DBA(์ธํ”„๋ผ ์šด์˜)๋ฅผ ์ค€๋น„ํ•˜์‹œ๋Š” ๋ถ„!

๐Ÿ’ก ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž๋ฅผ ์ค€๋น„ํ•˜์‹œ๋Š” ๋ถ„!

๐Ÿ’ก ๋‹น์žฅ Redis๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํ”„๋กœ์ ํŠธ์— ํˆฌ์ž…๋๋Š”๋ฐ, Redis์— ๋Œ€ํ•ด 1๋„ ๋ชจ๋ฅด์‹œ๋Š” ๋ถ„!


Q&A ๐Ÿ’ฌ

Q. ๋น„์ „๊ณต์ž๋„ ๋“ค์„ ์ˆ˜ ์žˆ๋‚˜์š”?

๊ณ ๋“ฑํ•™์ƒ์ด ๋“ค์–ด๋„ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋„๋ก ๋‚ด์šฉ ์ดํ•ด์— ํ•„์š”ํ•œ ์ง€์‹์„ ์ฒœ์ฒœํžˆ ์ •๋ฆฌํ•ด๊ฐ€๋ฉฐ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

Q. Node.js ์ฝ”๋“œ๋งŒ ์‹ค์Šต์„ ํ•œ ์ด์œ ๊ฐ€ ์žˆ๋‚˜์š”?

์‹ค์Šต ์ง„ํ–‰์†๋„๊ฐ€ Java, C# ๋“ฑ์— ๋น„ํ•ด ๋น ๋ฅด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ Spring(Java, Kotlin)์ด๋‚˜ .Net(C#) ๊ฐœ๋ฐœ์—๋„ ๋กœ์ง์€ ๊ทธ๋Œ€๋กœ ์ ์šฉ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

Q. ์ด ๊ฐ•์˜๋งŒ ๋“ค์œผ๋ฉด Redis์— ๋Œ€ํ•ด ๋ชจ๋“  ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‚˜์š”?

์ด ๊ฐ•์˜๋Š” ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ ๊ฐ•์˜๊ธฐ ๋•Œ๋ฌธ์— NestJS ์„น์…˜์—์„œ ๋ฐฑ์—”๋“œ์˜ ์„ค๋ช…๊ณผ ์ฝ”๋“œ ํ’ˆ์งˆ์„ ๊ณ ๋ คํ•œ ์ฝ”๋”ฉ์€ ๋”ฐ๋กœ ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์˜ค๋กœ์ง€ NestJS์—์„œ ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ๋ฅผ ์–ด๋–ป๊ฒŒ ํšจ์œจ์ ์œผ๋กœ ์“ธ ์ˆ˜ ์žˆ์„์ง€๋งŒ์„ ๊ณ ๋ คํ•œ ์„น์…˜์ž…๋‹ˆ๋‹ค. ์†”์งํžˆ 100%๋ฅผ ์•Œ ์ˆ˜๋Š” ์—†๊ณ , 80%๋Š” ์•Œ ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ž๋ถ€ํ•ฉ๋‹ˆ๋‹ค. 10%๋Š” ์šด์˜ ๊ฒฝํ—˜์ด ์žˆ์–ด์•ผ๋งŒ ์ฑ„์›Œ์ง€๋Š” ๋ถ€๋ถ„์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. (๋‚˜๋จธ์ง€ 10%๋Š” ๋ ˆ๋””์Šค์˜ ๋‚ด๋ถ€ rust, c ์ฝ”๋“œ๋ฅผ ๋ดค์„ ๋•Œ ์ฑ„์›Œ์ง€๋Š” ๋ถ€๋ถ„์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๊ฐ•์˜๊ฐ€ ๋„ˆ๋ฌด ๋ฌด๊ฑฐ์›Œ์ ธ ์ถ”๊ฐ€ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.)

Q. Redis Stream์— ๋Œ€ํ•ด ์„ค๋ช…ํ•˜์ง€๋Š” ์•Š๋‚˜์š”?

Redis Stream์€ ์„นํ„ฐ 2~3๊ฐœ์˜ ๋ถ„๋Ÿ‰์ด ๋‚˜์˜ฌ๋ฟ๋”๋Ÿฌ, ์ œ ๊ฒฝํ—˜์ƒ ์‹ค๋ฌด์—์„œ๋Š” Redis Stream์„ ์“ฐ๋Š” ์ผ์ด ๋งŽ์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ์šฉ๋„์— ๋งž๊ฒŒ Apache Kafka, Elastic Search๋ฅผ ์ฃผ๋กœ ์“ฐ๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ•์˜์—์„œ ๊ณผ๊ฐํžˆ ๋บ์Šต๋‹ˆ๋‹ค. 

์ด๋Ÿฐ ๋ถ„๋“ค๊ป˜
์ถ”์ฒœ๋“œ๋ ค์š”!

ํ•™์Šต ๋Œ€์ƒ์€
๋ˆ„๊ตฌ์ผ๊นŒ์š”?

  • ๋ ˆ๋””์Šค๋ฅผ ์ œ๋Œ€๋กœ ๋ฐฐ์›Œ๋ณด๊ณ  ์‹ถ์œผ์‹  ๋ถ„!

  • DBA๋ฅผ ์ค€๋น„ํ•˜์‹œ๋Š” ๋ถ„!

  • ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž๋ฅผ ์ค€๋น„ํ•˜์‹œ๋Š” ๋ถ„!

์•ˆ๋…•ํ•˜์„ธ์š”
yongsoocho์ž…๋‹ˆ๋‹ค.

349

๋ช…

์ˆ˜๊ฐ•์ƒ

13

๊ฐœ

์ˆ˜๊ฐ•ํ‰

33

๊ฐœ

๋‹ต๋ณ€

5.0

์ 

๊ฐ•์˜ ํ‰์ 

2

๊ฐœ

๊ฐ•์˜

์•ˆ๋…•ํ•˜์„ธ์š”! ์ œ ๊ฒฝํ—˜์„ ์ž์œ ๋กญ๊ฒŒ ๊ณต์œ ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.
yongsoocho578@gmail.com ์œผ๋กœ ํ”ผ๋“œ๋ฐฑ๊ณผ ์˜๊ฒฌ์€ ํ™˜์˜์ž…๋‹ˆ๋‹ค.

์ปค๋ฆฌํ˜๋Ÿผ

์ „์ฒด

42๊ฐœ โˆ™ (7์‹œ๊ฐ„ 43๋ถ„)

ํ•ด๋‹น ๊ฐ•์˜์—์„œ ์ œ๊ณต:

์ˆ˜์—…์ž๋ฃŒ
๊ฐ•์˜ ๊ฒŒ์‹œ์ผ: 
๋งˆ์ง€๋ง‰ ์—…๋ฐ์ดํŠธ์ผ: 

์ˆ˜๊ฐ•ํ‰

์•„์ง ์ถฉ๋ถ„ํ•œ ํ‰๊ฐ€๋ฅผ ๋ฐ›์ง€ ๋ชปํ•œ ๊ฐ•์˜์ž…๋‹ˆ๋‹ค.
๋ชจ๋‘์—๊ฒŒ ๋„์›€์ด ๋˜๋Š” ์ˆ˜๊ฐ•ํ‰์˜ ์ฃผ์ธ๊ณต์ด ๋˜์–ด์ฃผ์„ธ์š”!

โ‚ฉ22,000