Home
boookk
Cancel

Transaction

๐Ÿ’จ Monoliths โ†” MSA ์ „ํ™˜ Application Logic layer๋ถ€ํ„ฐ ์ˆœ์ฐจ์ ์œผ๋กœ ๋ถ„ํ•ด Router ๊ตฌ์ถ• Monoliths๊ฐ€ router๋ฅผ ํ†ตํ•ด ์š”์ฒญ ๋ฐ›๊ฒŒ ํ•˜๊ธฐ API๋กœ ํ†ต์‹  ๊ฐ€๋Šฅํ•œ ์ž‘์€ ๊ทœ๋ชจ์˜ ์„œ๋น„์Šค๋ฅผ ๋ถ„๋ฆฌํ•˜์—ฌ microservice 1๊ฐœ ๊ตฌ์ถ• ๊ตฌ์ถ•๋œ ์„œ๋น„์Šค๋งŒ proxy ์ „ํ™˜ DB ๋˜๋Š” schema ๋ถ„๋ฆฌ ...

Netflixed

๐Ÿง Netflixed ๋ฏธ๊ตญ ์‹ค๋ฆฌ์ฝ˜๋ฐธ๋ฆฌ์—์„œ ๊ธฐ์กด ๋น„์ฆˆ๋‹ˆ์Šค ๋ชจ๋ธ์ด ๋ถ•๊ดด๋˜์—ˆ์„ ๋•Œ๋ฅผ ์ผ์ปซ๋Š” ๋ง โœจ Netflix OpenSource Software ๊ธฐ์กด Legacy ์‹œ์Šคํ…œ์„ ํด๋ผ์šฐ๋“œ ํ™˜๊ฒฝ์˜ MSA๋กœ ์ „ํ™˜ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•œ ๊ธฐ์ˆ ์„ ๊ณต๊ฐœํ•œ ๊ฒƒ ๐Ÿƒ Netflix๋Š” MSA์˜ ์„ ๊ตฌ์ž ๐Ÿงถ Eureka Client์™€ Applicati...

Micro Service Architecture

โ“ Monoliths ์ „ํ†ต์ ์ธ ์‹œ์Šคํ…œ ๊ตฌ์กฐ๋กœ ํ•˜๋‚˜์˜ ๋‹จ์œ„๋กœ ๊ฐœ๋ฐœํ•˜๋Š” ๋‹จ์ผ ์„œ๋น„์Šค ๊ฐœ๋ฐœ ๋ฐฉ์‹ ๐Ÿ“ Monolith ๋‹จ์  ๊ธด ๋นŒ๋“œ ์‹œ๊ฐ„ ๋ฐ ํ…Œ์ŠคํŠธ ์‹œ๊ฐ„ ํŠน์ • ๊ฐœ๋ฐœ ์–ธ์–ด, DB์— ์ข…์† ์„ ํƒ์ ์œผ๋กœ ํ™•์žฅ ๋ถˆ๊ฐ€๋Šฅ ์„œ๋น„์Šค ๊ฐ„ ๋†’์€ ์˜์กด์„ฑ โ“ Software ๋ชจ๋“ˆํ™” ํฐ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์ž‘์€ ๋‹จ์œ„๋กœ ๋‚˜๋ˆ„์–ด ๊ฐœ๋ฐœํ•˜๋Š” ๋ฐฉ๋ฒ•...

Domain Driven

๐Ÿƒ ๊ธฐ์กด์˜ ๊ฐœ๋ฐœ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์— ์ข…์† ์ตœ์ดˆ ์„ค๊ณ„ ๋ฐ์ดํ„ฐ์˜ ๋ชจ๋ธ๋ง์˜ ๋ณ€๊ฒฝ๊ณผ ํ™•์žฅํ•˜๊ธฐ ์–ด๋ ค์›€ ๋ชจ๋ธ๋ง๊ณผ ์‹ค์ œ ๊ฐœ๋ฐœ์˜ ๋ถˆ์ผ์น˜ ๋ˆ„์  ๐ŸŽจ Domain Driven Design ๋ฐ์ดํ„ฐ๋ฅผ ๊ธฐ๋Šฅ๊ณผ ๋ถ„๋ฆฌํ•ด์„œ ์‹๋ณ„ํ•˜์ง€ ์•Š๊ณ , ๋ณ„๋„์˜ ๋„๋ฉ”์ธ ๋ชจ๋ธ๋กœ ์ •์˜ ์šฉ์–ด ์‚ฌ์ „์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๋„๋ฉ”์ธ ์„ค๊ณ„ ๋„๋ฉ”์ธ ๋ณ„๋กœ ์„ค๊ณ„์™€ ๊ตฌํ˜„ ๊ฐ€๋Šฅ ๐Ÿง ์šฉ์–ด ์‚ฌ์ „...

WebFlux

โ“ WebFlux Client์™€ Server์—์„œ reactive ์Šคํƒ€์ผ์˜ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ์„ ๋„์™€์ฃผ๋Š” ๋ชจ๋“ˆ Spring5์—์„œ reactive stack์„ ์ง€์›ํ•˜๋Š” web container framework ๐Ÿ”Ž WebFlux ํŠน์ง• Non-Blocking IO ์ตœ์†Œํ•œ์˜ ๋ฆฌ์†Œ์Šค๋กœ ํšจ์œจ์ ์ธ ์šด์˜ Singler worker ...

Reactor Operations

๐Ÿงถ ์ƒ์„ฑ Create https://reactivex.io/ Observable ์ƒ์„ฑ Just https://reactivex.io/documentation/operators/just.html ํ•˜๋‚˜์˜ item๋งŒ ๋ฐฉ์ถœ(emit)ํ•˜๋Š” observable ์ƒ์„ฑ From https://reactivex.io/doc...

Reactive Programming

โ“ Reactive System ์‘๋‹ต์ด ์ž˜ ๋˜๊ณ , ํƒ„๋ ฅ์ ์ด๋ฉฐ ์œ ์—ฐํ•˜๊ณ  ๋ฉ”์‹œ์ง€ ๊ธฐ๋ฐ˜์œผ๋กœ ๋™์ž‘ํ•˜๋Š” ์‹œ์Šคํ…œ ๐Ÿ“œ ๋ฆฌ์•กํ‹ฐ๋ธŒ ์„ ์–ธ๋ฌธ ์œ ์—ฐํ•˜๊ณ , ๋А์Šจํ•œ ๊ฒฐํ•ฉ์„ ๊ฐ€์ง€๋ฉฐ, ํ™•์žฅ์„ฑ์ด ์žˆ๋‹ค. ์ด๋กœ ์ธํ•ด ๊ฐœ๋ฐœ ๋ฐ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ ์šฉํ•˜๊ธฐ ์‰ฝ๋‹ค. ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•˜๋”๋ผ๋„, ๊ฐ„๋‹จํ•œ ๋ฐฉ์‹์œผ๋กœ ํ•ด๊ฒฐํ•œ๋‹ค. ๋†’์€ ์‘๋‹ต์„ฑ์„ ๊ฐ€์ง€๋ฉฐ, ์‚ฌ์šฉ์ž์—๊ฒŒ ํšจ๊ณผ์ ์ธ ์ƒํ˜ธ์  ํ”ผ๋“œ๋ฐฑ...

Even Driven

โ“ Event Driven Architecture ์ด๋ฒคํŠธ ๊ธฐ๋ฐ˜์˜ ์•„ํ‚คํ…์ฒ˜ ์„ค๊ณ„ ๋ฐฉ์‹ ๋น„๋™๊ธฐ ํ†ต์‹  ๋ฐฉ์‹์„ ์ด์šฉํ•ด ๋А์Šจํ•œ ๊ฒฐํ•ฉ์„ ์ง€ํ–ฅํ•˜๋Š” ์•„ํ‚คํ…์ฒ˜ MSA ์‹œ์Šคํ…œ์—์„œ producer๊ฐ€ ์ด๋ฒคํŠธ๋ฅผ publishํ•˜๊ณ , ์ด๋ฒคํŠธ๋ฅผ ๊ตฌ๋…ํ•˜๊ณ  ์žˆ๋˜ consumer๊ฐ€ ์ด๋ฒคํŠธ๋ฅผ ๋ฐ›์•„ ์ฒ˜๋ฆฌํ•˜๋Š” ์‹œ์Šคํ…œ ๐Ÿ“‹ Event Dri...

Async-Nonblocking

๐Ÿ“š Synchronous ํŠน์ • ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•œ ๋’ค ํ•ด๋‹น ํ•จ์ˆ˜์˜ ๋ฆฌํ„ด ๊ฐ’์„ ํ™•์ธํ•˜๋ฉฐ ์‘๋‹ต์„ ๋ฐ›๊ธฐ ์ „๊นŒ์ง€ ๋™์ž‘์„ ๋ฉˆ์ถ˜๋‹ค. ๐Ÿ“š Asynchronous ์š”์ฒญ์„ ๋ณด๋‚ธ ํ›„ ์‘๋‹ต๊ณผ๋Š” ์ƒ๊ด€์—†์ด ๋‹ค์Œ ๋™์ž‘์„ ์‹คํ–‰ํ•œ๋‹ค. ๐Ÿ“Š Sync&Async Comparison ์š”์ฒญ์ž์™€ ์ฒ˜๋ฆฌ์ž๊ฐ€ ์„œ๋กœ์˜ ์‹œ๊ฐ„์„ ๊ณต์œ ํ•˜๋Š”์ง€ ์—ฌ๋ถ€์— ๋”ฐ๋ผ ๋™๊ธฐ, ๋น„๋™๊ธฐ๋กœ ๊ตฌ๋ถ„๋œ๋‹ค. ...

[BOJ] ์œ„์ƒ ์ •๋ ฌ ๐Ÿฅ‡3

๐Ÿ“š Topological Sort ์ถœ์ฒ˜ : https://www.acmicpc.net/problem/9470 ๐Ÿ’ก ํ’€์ด import sys from collections import deque input = sys.stdin.readline T = int(input()) for _ in range(T): k, m, p = map(i...