๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
728x90

์ „์ฒด ๋ณด๊ธฐ118

Redis: ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ์บ์‹ฑ์˜ ํ˜์‹  Redis: ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ์บ์‹ฑ์˜ ํ˜์‹  ์†Œ๊ฐœ Redis(๋ฆฌ๋””์Šค)๋Š” ์˜คํ”ˆ ์†Œ์Šค, ์ธ๋ฉ”๋ชจ๋ฆฌ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ ์Šคํ† ์–ด๋กœ, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค, ์บ์‹œ, ๋ฉ”์‹œ์ง€ ๋ธŒ๋กœ์ปค ๋“ฑ ๋‹ค์–‘ํ•œ ์šฉ๋„๋กœ ์‚ฌ์šฉ๋˜๋Š” ํ‚ค-๊ฐ’ ์ €์žฅ ์‹œ์Šคํ…œ์ž…๋‹ˆ๋‹ค. ์ด๋Š” ์„ฑ๋Šฅ ํ–ฅ์ƒ์„ ์œ„ํ•ด ๋ฉ”๋ชจ๋ฆฌ์— ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋ฉฐ, ๋””์Šคํฌ ๊ธฐ๋ฐ˜์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‹œ์Šคํ…œ๊ณผ ๋น„๊ตํ•ด ๋น ๋ฅธ ์‘๋‹ต ์‹œ๊ฐ„์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. Redis์˜ ์—ญํ•  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค: ์ฃผ๋กœ ์ธ๋ฉ”๋ชจ๋ฆฌ ๊ธฐ๋ฐ˜์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋กœ ์‚ฌ์šฉ๋˜๋ฉฐ, ๋†’์€ ์ฝ๊ธฐ/์“ฐ๊ธฐ ์„ฑ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์บ์‹œ: ๋ฐ์ดํ„ฐ ์บ์‹ฑ์— ๋งŽ์ด ์‚ฌ์šฉ๋˜์–ด ๋น ๋ฅธ ์‘๋‹ต์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค. ๋ฉ”์‹œ์ง€ ๋ธŒ๋กœ์ปค: Publish-Subscribe ํŒจํ„ด์„ ์ง€์›ํ•˜์—ฌ ๋ฉ”์‹œ์ง€ ๊ธฐ๋ฐ˜ ํ†ต์‹ ์„ ์šฉ์ดํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค. Redis์˜ ์žฅ๋‹จ์  ์žฅ์  ๋†’์€ ์„ฑ๋Šฅ: ๋ฐ์ดํ„ฐ๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅํ•˜๊ณ  ๋น„๋™๊ธฐ์ ์œผ๋กœ ๋””์Šคํฌ์— ์ €์žฅํ•จ์œผ๋กœ์จ ๋น ๋ฅธ .. 2024. 3. 5.
Pub-Sub Pattern: ์ด๋ฒคํŠธ ๊ธฐ๋ฐ˜ ํ†ต์‹ ์˜ ํ•ต์‹ฌ Pub-Sub Pattern: ์ด๋ฒคํŠธ ๊ธฐ๋ฐ˜ ํ†ต์‹ ์˜ ํ•ต์‹ฌ ์†Œ๊ฐœ Pub-Sub Pattern(๋ฐœํ–‰-๊ตฌ๋… ํŒจํ„ด)์€ ์†Œํ”„ํŠธ์›จ์–ด ์•„ํ‚คํ…์ฒ˜์—์„œ ์ด๋ฒคํŠธ ๊ธฐ๋ฐ˜ ํ†ต์‹ ์„ ๊ตฌํ˜„ํ•˜๋Š” ํŒจํ„ด ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค. ์ด ํŒจํ„ด์€ ํŠน์ • ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ, ๋ฐœํ–‰์ž(Publisher)๊ฐ€ ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๋‚ด๊ณ , ํ•ด๋‹น ์ด๋ฒคํŠธ์— ๊ด€์‹ฌ์ด ์žˆ๋Š” ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๊ตฌ๋…์ž(Subscriber)๊ฐ€ ์ด๋ฅผ ์ˆ˜์‹ ํ•˜๋Š” ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. Pub-Sub Pattern์˜ ๊ตฌ์„ฑ์š”์†Œ Publisher(๋ฐœํ–‰์ž): ์ด๋ฒคํŠธ๋ฅผ ๋ฐœ์ƒ์‹œํ‚ค๋Š” ์ฃผ์ฒด๋กœ, ์ด๋ฒคํŠธ์™€ ๊ด€๋ จ๋œ ๋ฉ”์‹œ์ง€๋ฅผ ์ƒ์„ฑํ•˜๊ณ  Pub-Sub ์‹œ์Šคํ…œ์— ์ „์†กํ•ฉ๋‹ˆ๋‹ค. Subscriber(๊ตฌ๋…์ž): ํŠน์ • ์ด๋ฒคํŠธ์— ๊ด€์‹ฌ์ด ์žˆ๋Š” ์ฃผ์ฒด๋กœ, ๋ฐœํ–‰์ž๊ฐ€ ๋ณด๋‚ธ ๋ฉ”์‹œ์ง€๋ฅผ ์ˆ˜์‹ ํ•˜๊ณ  ๊ทธ์— ๋”ฐ๋ฅธ ๋™์ž‘์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. Topic(์ฃผ์ œ ๋˜๋Š” ์ฑ„๋„): ์ด๋ฒคํŠธ์˜ ์œ .. 2024. 3. 2.
Builder Pattern: ๊ฐ์ฒด ์ƒ์„ฑ์˜ ์œ ์—ฐํ•จ๊ณผ ์žฌ์‚ฌ์šฉ์„ฑ์„ ๋†’์ด๋‹ค Builder Pattern: ๊ฐ์ฒด ์ƒ์„ฑ์˜ ์œ ์—ฐํ•จ๊ณผ ์žฌ์‚ฌ์šฉ์„ฑ์„ ๋†’์ด๋‹ค ์†Œ๊ฐœ ๋นŒ๋” ํŒจํ„ด(Builder Pattern)์€ ๊ฐ์ฒด์˜ ์ƒ์„ฑ ๊ณผ์ •์„ ์ถ”์ƒํ™”ํ•˜์—ฌ ๋ณต์žกํ•œ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋””์ž์ธ ํŒจํ„ด ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค. ์ด ํŒจํ„ด์€ ๊ฐ์ฒด์˜ ํ‘œํ˜„๊ณผ ์ƒ์„ฑ ๊ณผ์ •์„ ๋ถ„๋ฆฌํ•˜์—ฌ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋กœ ๋‹ค๋ฅธ ํ‘œํ˜„์˜ ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. ๋นŒ๋” ํŒจํ„ด์€ ์ฃผ๋กœ ๋งŽ์€ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ๊ฐ–๋Š” ๊ฐ์ฒด์˜ ์ƒ์„ฑ์ด๋‚˜ ๋ณต์žกํ•œ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•  ๋•Œ ์œ ์šฉํ•˜๊ฒŒ ์“ฐ์ž…๋‹ˆ๋‹ค. Builder Pattern์˜ ๊ตฌ์กฐ ๋นŒ๋” ํŒจํ„ด์€ ์ผ๋ฐ˜์ ์œผ๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ตฌ์กฐ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค. Product(์ƒ์„ฑ๋  ๊ฐ์ฒด): ๋นŒ๋”๋ฅผ ํ†ตํ•ด ์ƒ์„ฑ๋˜๋Š” ๊ฐ์ฒด์ž…๋‹ˆ๋‹ค. Builder(๋นŒ๋” ์ธํ„ฐํŽ˜์ด์Šค): ๊ฐ์ฒด ์ƒ์„ฑ์— ํ•„์š”ํ•œ ๋ฉ”์†Œ๋“œ๋“ค์„ ์„ ์–ธํ•˜๋Š” ์ธํ„ฐํŽ˜์ด์Šค์ž…๋‹ˆ๋‹ค. ConcreteBuilder(๋นŒ๋” ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌ.. 2024. 3. 2.
์žฌ๋ฌด ์ง€์‹: ๋ˆ์„ ํ‚ค์šฐ๊ณ  ๋ฏธ๋ž˜๋ฅผ ์ค€๋น„ํ•˜์ž ์žฌ๋ฌด ์ง€์‹: ๋ˆ์„ ํ‚ค์šฐ๊ณ  ๋ฏธ๋ž˜๋ฅผ ์ค€๋น„ํ•˜์ž ์†Œ๊ฐœ ํ˜„๋Œ€ ์‚ฌํšŒ์—์„œ ์žฌ๋ฌด ์ง€์‹์€ ๋” ์ด์ƒ ๋ถ€๊ฐ€ ๊ฐ€์น˜๊ฐ€ ์•„๋‹Œ ํ•„์ˆ˜ ์š”์†Œ๋กœ ์ž๋ฆฌ๋งค๊น€ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธˆ์ „์ ์ธ ์•ˆ์ •๊ณผ ๋ฏธ๋ž˜๋ฅผ ์œ„ํ•œ ๊ณ„ํš์„ ์„ธ์šฐ๊ธฐ ์œ„ํ•ด์„œ๋Š” ๊ธฐ๋ณธ์ ์ธ ๊ธˆ์œต ์›๋ฆฌ๋ฅผ ์ดํ•ดํ•˜๊ณ  ํšจ๊ณผ์ ์œผ๋กœ ํ™œ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ธ€์—์„œ๋Š” ํŠนํžˆ ๋ถ€์ž๋“ค์ด๋‚˜ ์„ฑ๊ณตํ•œ ์ธ๋ฌผ๋“ค์ด ๊ฐ•์กฐํ•˜๋Š” ๊ธˆ์œต ์ง€์‹๊ณผ ๊ทธ ์ค‘์š”์„ฑ์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ธˆ์œต ์ง€์‹์˜ ์ค‘์š”์„ฑ ์˜ˆ์‚ฐ ๊ด€๋ฆฌ: ์ •๊ธฐ์ ์ธ ์†Œ๋“๊ณผ ์ง€์ถœ์„ ๊ณ„ํšํ•˜๊ณ  ๊ด€๋ฆฌํ•˜์—ฌ ๋ถˆํ•„์š”ํ•œ ์†Œ๋น„๋ฅผ ์ค„์ด๊ณ  ๊ธˆ์ „์  ์•ˆ์ •์„ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค. ํˆฌ์ž ๊ธฐํšŒ ํ™œ์šฉ: ๊ธˆ์œต ์ง€์‹์„ ํ†ตํ•ด ๋‹ค์–‘ํ•œ ํˆฌ์ž ๊ธฐํšŒ๋ฅผ ํŒŒ์•…ํ•˜๊ณ  ํšจ๊ณผ์ ์œผ๋กœ ์ž์‚ฐ์„ ์ฆ์‹์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ถ€์˜ ์œ ์ง€: ๊ธˆ์œต ์‹œ์žฅ์˜ ์›€์ง์ž„์„ ์˜ˆ์ธกํ•˜๊ณ , ์ด๋ฅผ ํ† ๋Œ€๋กœ ์ž์‚ฐ์„ ํšจ๊ณผ์ ์œผ๋กœ ๊ด€๋ฆฌํ•ด ๋ถ€์˜ ์œ ์ง€์— ์„ฑ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๊ธˆ์œต ์œ„๊ธฐ ๋Œ€.. 2024. 3. 1.