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

์ „์ฒด ๊ธ€216

[๋…ํ›„๊ฐ] ์•…์˜(ๆƒกๆ„) ํžˆ๊ฐ€์‹œ๋…ธ ๊ฒŒ์ด๊ณ ์˜ ๋ฅผ ์˜ค๋žœ๋งŒ์— ๋‹ค์‹œ ์ฝ์–ด ๋ณด์•˜๋‹ค.์œผ๋กœ ํžˆ๊ฐ€์‹œ๋…ธ๋ฅผ ์•Œ๊ฒŒ ๋˜์—ˆ๊ณ , ๊ณ ๋“ฑํ•™์ƒ์ด์—ˆ๋˜ ๋‚˜์—๊ฒŒ ๋…์„œ์˜ ์žฌ๋ฏธ๋ฅผ ์•Œ๋ ค์ค€ ์ฑ…์ด์—ˆ๋‹ค.๊ทธ๋•Œ๋ถ€ํ„ฐ ๋‚˜๋Š” ํžˆ๊ฐ€์‹œ๋…ธ ๊ฒŒ์ด๊ณ ๋ผ๋Š” ์ž‘๊ฐ€์˜ ์ฑ…์„ ์ข‹์•„ํ–ˆ๋‹ค.๊ธ€์˜ ํก์ž…๋ ฅ๊ณผ ์Šคํ† ๋ฆฌ ์„ค๊ณ„ํ•˜๋Š” ๋Šฅ๋ ฅ์ด ์—„์ฒญ๋‚˜๋‹ค๊ณ  ์ƒ๊ฐํ•œ๋‹ค.๋ฌด์—‡๋ณด๋‹ค๋„ ์ด ์‚ฌ๋žŒ์ด ์˜๋„ํ•œ ๋Œ€๋กœ ๋‚ด๊ฐ€ ์ฑ…์„ ์ฝ์–ด ๋‚˜๊ฐ€๊ฒŒ ๋œ๋‹ค๋Š” ๊ฒƒ์ด ํ•„๋ ฅ์ด ์ •๋ง ๋›ฐ์–ด๋‚˜๋‹ค๊ณ  ๋А๋ผ๊ฒŒ ํ•ด์ฃผ๋Š” ์š”์†Œ๋‹ค.๋Š” ์˜ˆ์ „์— ํ•œ๋ฒˆ ์ฝ์—ˆ๋‹ค.๊ทธ๋Ÿฐ๋ฐ ์ตœ๊ทผ์— ์ง€์ธ์ด ์ด ์ฑ…์„ ์ฝ๊ณ  ์žˆ๋Š” ๊ฒƒ์„ ๋ณด๊ณ  ์–˜๊ธฐํ•˜๋ ค๊ณ  ๋ณด๋‹ˆ ๋ง‰์ƒ ๋‚ด์šฉ์ด ์ž˜ ๊ธฐ์–ต๋‚˜์ง€ ์•Š์•„์„œ ๋‹ค์‹œ ์ฝ์–ด๋ณด๊ฒŒ ๋˜์—ˆ๋‹ค. ์•…์˜๋Œ€๋ถ€๋ถ„ ์‚ฌ๋žŒ์˜ ๋งˆ์Œ ์†์—๋Š” ์•…์˜๊ฐ€ ํ•˜๋‚˜์ฏค์€ ์žˆ๊ฑฐ๋‚˜ ์žˆ์—ˆ์„ ๊ฒƒ์ด๋ผ ์˜ˆ์ƒํ•œ๋‹ค.๊ทธ๋ฆฌ๊ณ  ์•ž์œผ๋กœ ๋˜ ๋‹ค๋ฅธ ์•…์˜๋ฅผ ํ’ˆ๊ฒŒ ๋˜๋Š” ์ˆœ๊ฐ„์ด ์˜ฌ์ง€๋„ ๋ชจ๋ฅด๊ฒ ๋‹ค.๋ชจ๋“  ์‚ฌ๋žŒ์ด๋ผ๊ณ  ํ•˜๊ณ  ์‹ถ์ง€๋งŒ, 100% ๋‹จ์–ธํ•˜๋Š” ๊ฒƒ์€ ์ข‹์ง€ ์•Š๋‹ค .. 2025. 1. 28.
AI ์ž˜ ์“ฐ๋Š” ๊ฐœ๋ฐœ์ž? ์˜ค๋Š˜ ๋ฌธ๋“ '๋‚˜๋Š” AI๋ฅผ ์ž˜ ํ™œ์šฉํ•˜๋Š” ๊ฐœ๋ฐœ์ž์ธ๊ฐ€?' ๋ผ๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค.์ด์ œ ๊ฐœ๋ฐœ์ž์™€ ChatGPT์™€ ๊ฐ™์€ LLM์€ ๋—„ ์ˆ˜ ์—†๋Š” ์‚ฌ์ด๊ฐ€ ๋˜์—ˆ๋‹ค๊ณ  ์ƒ๊ฐํ•œ๋‹ค.๋‚˜๋Š” ์ด๋Ÿฌํ•œ ์‹œ๋Œ€ ํ๋ฆ„์— ๋งž์ถฐ AI๋ฅผ ์ž˜ ํ™œ์šฉํ•˜๋Š” ์‚ฌ๋žŒ์ธ๊ฐ€?์— ๋Œ€ํ•œ ์˜๋ฌธ์ด ๋“ค์—ˆ๋‹ค.์‚ฌ์‹ค ์˜๋ฌธ์ด๋ผ๊ธฐ ๋ณด๋‹ค๋Š” "์•„๋‹ˆ๋‹ค" ๋ผ๋Š” ๋‹ต์ด ์ด๋ฏธ ์ •ํ•ด์ ธ ์žˆ๋Š” ์งˆ๋ฌธ์ด์—ˆ๋‹ค. ๋‚˜๋Š” ์–ด๋–ป๊ฒŒ AI๋ฅผ ์“ฐ๊ณ ์žˆ๋Š”๊ฐ€?๋‚ด๊ฐ€ ๋ฌธ์ œ๋ผ๊ณ  ๋А๋‚€ ์ง€์ ๋‚˜๋Š” ํ˜„์žฌ ChatGPT ์œ ๋ฃŒ ๋ฒ„์ „๊ณผ, Cursor AI ์œ ๋ฃŒ ๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค.๋ฌด๋ ค 2๊ฐœ์˜ AIํˆด์„ ์œ ๋ฃŒ๋กœ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์œผ๋‹ˆ, ๋‚˜๋Š” ์™„์ „ ํŠธ๋ Œ๋””ํ•œ ๊ฐœ๋ฐœ์ž์ž–์•„ ~ ๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ์„๊นŒ?๊ทธ๋ ‡๋‹ค๊ธฐ์—” ๋‚ด๊ฐ€ ์ตœ๊ทผ์— CursorAI(์ •ํ™•ํžˆ๋Š” ์—ฌ๋Ÿฌ ๋ชจ๋ธ ์ค‘ Claude ์‚ฌ์šฉ ์ค‘)์—๊ฒŒ ๊ฐ€์žฅ ๋งŽ์ด ํ•œ ๋ง์€ 2๊ฐ€์ง€๋‹ค."์•„๋‹ˆ ๊ทธ๊ฒŒ ์•„๋‹ˆ๋ผ""์—ฌ์ „ํžˆ ๋‚ด๊ฐ€ ์›ํ•˜๋Š”๋Œ€๋กœ .. 2024. 12. 19.
์•ˆ์ • ํ•ด์‹œ ์„ค๊ณ„ ์–ธ์ œ?์–ธ์ œ ์šฐ๋ฆฌ๋Š” ์•ˆ์ • ํ•ด์‹œ๋ฅผ ํ•„์š”๋กœ ํ• ๊นŒ๋Œ€์šฉ๋Ÿ‰ ํŠธ๋ž˜ํ”ฝ์— ๋ฒ„ํ‹ฐ๊ธฐ ์œ„ํ•ด์„œ DB๋ฅผ ๋ถ„ํ• ํ•˜์—ฌ ์—ฌ๋Ÿฌ ๋Œ€์˜ ์ƒค๋“œ๋ฅผ ๊ตฌ์ถ•ํ–ˆ๋‹ค๊ณ  ํ•˜์ž์ˆ˜ํ‰์  ๊ทœ๋ชจ ํ™•์žฅ์„ฑ์„ ๋‹ฌ์„ฑํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์—ฌ๋Ÿฌ ์ƒค๋“œ์— ๊ท ๋“ฑํ•˜๊ฒŒ ๋‚˜๋ˆ„๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค.API ์š”์ฒญ์— ๋Œ€ํ•ด์„œ๋„ ๋™์ผํ•˜๋‹ค. ์š”์ฒญ์ด ์—ฌ๋Ÿฌ ์„œ๋ฒ„์— ๊ท ๋“ฑํ•˜๊ฒŒ ๋‚˜๋ˆ ์ง€๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค.์•ˆ์ • ํ•ด์‹œ๋Š” ์ด ๋ชฉํ‘œ๋ฅผ ๋‹ฌ์„ฑํ•˜๊ธฐ ์œ„ํ•ด ๋ณดํŽธ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ์ˆ  ํ•ด์‹œ ํ‚ค ์žฌ๋ฐฐ์น˜ ๋ฌธ์ œ์—ฌ๋Ÿฌ ๋Œ€์˜ ์„œ๋ฒ„๋ฅผ ๋’€๋Š”๋ฐ, ๊ทธ ์ค‘์— ํ•˜๋‚˜๊ฐ€ ๊ณ ์žฅ๋‚œ๋‹ค๋ฉด?N๊ฐœ์˜ ์บ์‹œ ์„œ๋ฒ„๊ฐ€ ์žˆ๋‹ค๊ณ  ํ•ด๋ณด์ž.์ด ์„œ๋ฒ„๋“ค์— ๋ถ€ํ•˜๋ฅผ ๊ท ๋“ฑํ•˜๊ฒŒ ๋‚˜๋ˆ„๋Š” ๋ณดํŽธ์ ์ธ ๋ฐฉ๋ฒ•์€ ์•„๋ž˜์˜ ํ•ด์‹œ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด๋‹ค.serverIndex = hash(key) % N[์˜ˆ์‹œ]ํ‚คํ•ด์‹œํ•ด์‹œ % 4 (์„œ๋ฒ„ ์ธ๋ฑ์Šค)key0183586171key1261435840key2181311462.. 2024. 8. 29.
์ฒ˜๋ฆฌ์œจ ์ œํ•œ ์žฅ์น˜์˜ ์„ค๊ณ„ ์ฒ˜๋ฆฌ์œจ ์ œํ•œ ์žฅ์น˜?๋„คํŠธ์›Œํฌ ์‹œ์Šคํ…œ์—์„œ ์ฒ˜๋ฆฌ์œจ ์ œํ•œ ์žฅ์น˜๋ž€?ํด๋ผ์ด์–ธํŠธ ๋˜๋Š” ์„œ๋น„์Šค๊ฐ€ ๋ณด๋‚ด๋Š” ํŠธ๋ž˜ํ”ฝ์˜ ์ฒ˜๋ฆฌ์œจ(rate)์„ ์ œ์–ดํ•˜๊ธฐ ์œ„ํ•œ ์žฅ์น˜HTTP๋ฅผ ์˜ˆ๋กœ ๋“ค๋ฉด, ํŠน์ • ๊ธฐ๊ฐ„ ๋‚ด์— ์ „์†ก๋˜๋Š” ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ ํšŸ์ˆ˜๋ฅผ ์ œํ•œํ•˜๋Š” ์žฅ์น˜๊ฐ€ ๋  ๊ฒƒAPI ์š”์ฒญ ํšŸ์ˆ˜๊ฐ€ ์ž„๊ณ„์น˜๋ฅผ ๋„˜์–ด์„œ๋ฉด, ์ดํ›„์˜ ์š”์ฒญ์€ ์ฐจ๋‹จ๋œ๋‹ค ์˜ˆ์‹œ์ฒ˜๋ฆฌ์œจ ์ œํ•œ ์žฅ์น˜ ์‚ฌ์šฉ ์˜ˆ์‹œ์‚ฌ์šฉ์ž๋Š” ์ดˆ๋‹น 2ํšŒ ์ด์ƒ ์ƒˆ ๊ธ€์„ ์˜ฌ๋ฆด ์ˆ˜ ์—†๋‹ค.๊ฐ™์€ IP ์ฃผ์†Œ๋กœ๋Š” ํ•˜๋ฃจ์— 10๊ฐœ ์ด์ƒ์˜ ๊ณ„์ •์„ ์ƒ์„ฑํ•  ์ˆ˜ ์—†๋‹ค.๊ฐ™์€ ๋””๋ฐ”์ด์Šค๋กœ๋Š” ์ฃผ๋‹น 5ํšŒ ์ด์ƒ ๋ฆฌ์›Œ๋“œ๋ฅผ ์š”์ฒญํ•  ์ˆ˜ ์—†๋‹ค. ์žฅ์ ?์ฒ˜๋ฆฌ์œจ ์ œํ•œ ์žฅ์น˜๋ฅผ ๋‘๋Š” ์ด์œ DoS(Denial of Service) ๊ณต๊ฒฉ์— ์˜ํ•œ ์ž์› ๊ณ ๊ฐˆ์„ ๋ฐฉ์ง€์„œ๋ฒ„์˜ ์ˆ˜๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ์–ด, ๋น„์šฉ์ ์ธ ์ธก๋ฉด์—์„œ ์œ ๋ฆฌ์‚ฌ์šฉ์ž์˜ ์ž˜๋ชป๋œ ์ด์šฉ ํŒจํ„ด์œผ๋กœ ์ธํ•œ ์„œ๋ฒ„์˜ ๊ณผ๋ถ€ํ•˜๋ฅผ ๋ง‰์„ ์ˆ˜ .. 2024. 8. 29.
2024 ์ƒ๋ฐ˜๊ธฐ ์ทจ์—…์ค€๋น„ ํšŒ๊ณ  ์ƒ๋ฐ˜๊ธฐ์— ๋งŽ๋‹ค๋ฉด ๋งŽ์€ ์ผ์ด ์žˆ์—ˆ๊ณ , ๊ทธ ์†์—์„œ ๋งŽ์€ ๊ณ ๋ฏผ๋“ค์„ ํ–ˆ๋‹ค.์ด ๊ณผ์ •๋“ค์ด ๋ˆ„๊ตฐ๊ฐ€ ๋˜๋Š” ํ•˜๋ฐ˜๊ธฐ์˜ ๋‚˜์—๊ฒŒ ๋„์›€์ด ๋˜์ง€ ์•Š์„๊นŒ ํ•ด์„œ ์ด๋ ‡๊ฒŒ ๊ธ€๋กœ ๋‚จ๊ธฐ๊ฒŒ ๋˜์—ˆ๋‹ค.4ํ•™๋…„์ด๋ผ๋ฉด ๋Œ€๋ถ€๋ถ„์ด ์ทจ์—…์— ๋Œ€ํ•œ ๊ณ ๋ฏผ์„ ํ•  ๊ฒƒ์ด๋ผ ์˜ˆ์ƒํ•œ๋‹ค.์–ด๋–ค ๊ฑธ ํ•ด์•ผ ์ทจ์—…์— ๋„์›€์ด ๋ ๊นŒ?์–ด์ฉŒ๋ฉด ๋งˆ์ง€๋ง‰ ๋ฐฉํ•™์ด ๋  ์ˆ˜๋„ ์žˆ๋Š” ์—ฌ๋ฆ„ ๋ฐฉํ•™์—๋Š” ์‹œ๊ฐ„์„ ์–ด๋–ป๊ฒŒ ๋ณด๋‚ด๋Š” ๊ฒŒ ์ข‹์„๊นŒ?์ด์™ธ์—๋„ ๋‹ค์–‘ํ•œ ๊ณ ๋ฏผ๋“ค์ด ์žˆ์„ ๊ฒƒ์ด๊ณ , ๋‚˜ ๋˜ํ•œ ์ด๋Ÿฐ ๊ณ ๋ฏผ๋“ค์„ ๋งŽ์ด ํ–ˆ๋‹ค.์ƒ๋ฐ˜๊ธฐ์— ๋‚ด๊ฐ€ ์ง€์›ํ–ˆ๋˜ ๊ฒƒ๊ณผ ๊ทธ ๊ณผ์ •์„ ๋‹ค์‹œ ๋– ์˜ฌ๋ ค๋ณด๋ ค ํ•œ๋‹ค. 1. SW ๋งˆ์—์ŠคํŠธ๋กœ (a.k.a ์†Œ๋งˆ)๊ฐœ๋ฐœ์ž๋ฅผ ๊ฟˆ๊พธ๋Š” ๋Œ€ํ•™์ƒ๋“ค์ด๋ผ๋ฉด ๋ˆ„๊ตฌ๋‚˜ ๋“ค์–ด๋ดค์„ ๋งŒํ•œ ๊ต์œก ํ”„๋กœ๊ทธ๋žจ์ด๋‹ค.๋‚ด๊ฐ€ ์†Œ๋งˆ๋ฅผ ์ง€์›ํ•œ ์ด์œ ๋Š” ๋งŽ์€ ํ˜œํƒ๋“ค๋„ ์žˆ์ง€๋งŒ, ๊ทธ ์ค‘์—์„œ ๋ฉ˜ํ† ๋‹˜๋“ค์„ ๊ฐ€์žฅ ๋ต™๊ณ  ์‹ถ์—ˆ๋‹ค.ํ•ญ์ƒ ๊ฐœ๋ฐœ์„ ํ•˜๋ฉด์„œ, ์ง€๊ธˆ ๋‚ด๊ฐ€ ์งœ๊ณ  ์žˆ๋Š”.. 2024. 6. 28.
Redis ์‹คํ–‰ํ•ด๋ณด๊ธฐ Redis๋ฅผ ์ง์ ‘ ์„ค์น˜ํ•˜๊ณ , ์‹คํ–‰์„ ํ•ด๋ณด์žgit clone https://github.com/valkey-io/valkeymakeValkey(Redis)๋Š” Linux ํ™˜๊ฒฝ์—์„œ ์‹คํ–‰์„ ํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์—, Mac ๋˜๋Š” WSL ํ™˜๊ฒฝ์—์„œ ๋นŒ๋“œํ•ด์•ผ ํ•œ๋‹ค๋‚˜๋Š” Mac์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ณ„๋„์˜ ์„ธํŒ…์€ ํ•˜์ง€ ์•Š์•˜๋‹ค Redis์˜ ๋””๋ ‰ํ† ๋ฆฌ ๊ตฌ์กฐRedis ํ”„๋กœ์ ํŠธ๋Š” ์–ด๋–ค ๋””๋ ‰ํ† ๋ฆฌ๋“ค์„ ๊ฐ–๊ณ  ์žˆ์„๊นŒdepsํ•„์š”ํ•œ dependency๋“ค์„ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ๋Š” ๋””๋ ‰ํ† ๋ฆฌutilstestsํ…Œ์ŠคํŠธ์‹œ์— ์‚ฌ์šฉ๋œ๋‹คsrc ๋งŒ์•ฝ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์„ ์ƒ์„ฑํ•ด์„œ Contribution์„ ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉดmake test ๋ช…๋ น์„ ์‹คํ–‰ํ•œ ํ›„์— ํ†ต๊ณผ๋ฅผ ํ•ด์•ผ ํ•œ๋‹ค Redis ์‹คํ–‰ํ•˜๊ธฐRedis ์„œ๋ฒ„๋ฅผ ์‹คํ–‰ํ•ด๋ณด์žcd src./valkey-server์œ„ ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด์„œ ๋ ˆ๋””์Šค.. 2024. 5. 28.
10. Louvain Algorithm ์ ์šฉ ๋ฐ ๋กœ๊ทธ์ธ ๊ตฌํ˜„ ์ด๋ฒˆ ํ™œ๋™ ์š”์•ฝ์ง€๋‚œ ๋ฒˆ์— ์œ ๋‹ˆ์˜จ ํŒŒ์ธ๋“œ์˜ ์‚ฌ์šฉ์œผ๋กœ ๋ฐœ์ƒํ•œ ๋ฌธ์ œ์ ์„ ํ•ด๊ฒฐํ•˜๊ณ ์ž ์ƒˆ๋กœ์šด ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๋„์ž…ํ–ˆ๋‹ค์ด์ „์—๋Š” ์ปค๋ฎค๋‹ˆํ‹ฐ๋ฅผ ํƒ์ง€ํ•˜๊ธฐ ์œ„ํ•ด์„œ Union-Find ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ–ˆ๋‹ค.์ฒ˜์Œ์—” ํš๊ธฐ์ ์ธ ์ƒ๊ฐ์ด๋ผ๊ณ  ์—ฌ๊ฒผ์ง€๋งŒ, ๋ฐ์ดํ„ฐ๊ฐ€ ๋งŽ์•„์ง€๋‹ค๋ณด๋‹ˆ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค.๋ฐ์ดํ„ฐ๊ฐ€ ๋งŽ์•„์ง€๋‹ค๋ณด๋‹ˆ ์ž„์˜์˜ ๋‘ ๋ฐ์ดํ„ฐ ๊ฐ„์— ์–ด๋–ป๊ฒŒ๋“  ํƒ€๊ณ  ํƒ€๊ณ  ์—ฐ๊ฒฐ์ด ๋˜์–ด ์žˆ์—ˆ๊ณ , ๊ทธ๋Ÿฌ๋‹ค๋ณด๋‹ˆ Union-Find๋กœ ์ง‘ํ•ฉ์„ ์ฐพ์•˜์„ ๋•Œ๋Š” ๋ชจ๋“  ๋ฐ์ดํ„ฐ๊ฐ€ ํ•˜๋‚˜์˜ ์ง‘ํ•ฉ์— ์†Œ์†๋œ ๊ฒƒ์œผ๋กœ ์ธ์‹๋œ๋‹ค๋Š” ๋ฌธ์ œ ๊ฐ€ ์žˆ์—ˆ๋‹ค Modularity๋„คํŠธ์›Œํฌ ๋‚ด์˜ ์ปค๋ฎค๋‹ˆํ‹ฐ๊ฐ€ ์–ผ๋งˆ๋‚˜ ๋ชจ๋“ˆํ™” ๋˜์–ด ์žˆ๋Š”๊ฐ€ ๋ฅผ ์ •๋Ÿ‰์ ์œผ๋กœ ๋‚˜ํƒ€๋‚ด๊ธฐ ์œ„ํ•œ ๊ฐ’์ง€๋‚œ ๋ฏธํŒ…๋•Œ ์กฐ๊ต๋‹˜์ด Modularity ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํ•œ๋ฒˆ ์•Œ์•„๋ณด๋ผ๊ณ  ์ถ”์ฒœํ•ด์ฃผ์…จ๋‹คModulairty๋Š” ์ปค๋ฎค๋‹ˆํ‹ฐ ๋‚ด๋ถ€์— ํŽผ์ณ์ ธ ์žˆ๋Š” ๋งํฌ๋“ค์ด ๋ฌด์ž‘์œ„์ ์ธ ์—ฐ๊ฒฐ.. 2024. 5. 17.
[c++] map๊ณผ unordered_set์˜ ์ฐจ์ด ๊ณต๋ถ€ ๊ณ„๊ธฐ์˜ค๋Š˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ๋ฅผ ํ’€๋‹ค๊ฐ€, map์„ ์‚ฌ์šฉํ–ˆ์„ ๋•Œ๋Š” ์‹œ๊ฐ„์ดˆ๊ณผ๊ฐ€ ๋ฐœ์ƒํ–ˆ์ง€๋งŒ unordered_set์„ ์‚ฌ์šฉํ–ˆ์„ ๋•Œ๋Š” ํ†ต๊ณผํ–ˆ๋‹ค์ž…๋ ฅ๋œ ๊ฐ’์ค‘์— ํŠน์ • ๊ฐ’์ด ์žˆ๋Š”์ง€ ์—†๋Š”์ง€๋ฅผ ํŒŒ์•…ํ•˜๊ธฐ ์œ„ํ•ด์„œ ํ•ด์‹œ๋ฅผ ์‚ฌ์šฉํ•ด์„œ O(1) ๋งŒ์— ํƒ์ƒ‰ํ•˜๊ณ ์ž ํ–ˆ๋‹ค๊ทธ๋ž˜์„œ ๋‚˜๋Š” map์ด key, value๋กœ ์ €์žฅํ•˜๋Š” ๊ฒƒ์„ ๋– ์˜ฌ๋ ค ๋‹น์—ฐํžˆ ํ•ด์‹œ์ผ ๊ฒƒ์ด๋ผ ์ƒ๊ฐํ•˜๊ณ  ์‚ฌ์šฉํ–ˆ๋‹ค๊ทธ๋Ÿฐ๋ฐ, map์„ ์‚ฌ์šฉํ–ˆ์„ ๋•Œ๋Š” ์‹œ๊ฐ„์ดˆ๊ณผ๊ฐ€ ๋ฐœ์ƒํ–ˆ๊ณ  ํ•ด์‹œ๊ฐ€ ์•„๋‹Œ ๊ฒƒ์„ ๊นจ๋‹ฌ์•˜๋‹ค ํ’€์—ˆ๋˜ ๋ฌธ์ œhttps://www.acmicpc.net/problem/19585 mapSTL์—์„œ ์ œ๊ณตํ•˜๋Š” key, value ์ž๋ฃŒ๊ตฌ์กฐmap์€ key, value๊ฐ€ pair ํ˜•ํƒœ๋กœ ์ €์žฅ์ด ๋˜๋ฉฐ, ํ•ด์‹œ ํ…Œ์ด๋ธ”์ด ์•„๋‹Œ ์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ(BST) ๊ธฐ๋ฐ˜์œผ๋กœ ํƒ์ƒ‰ ์„ ํ•œ๋‹ค๋”ฐ๋ผ์„œ ํƒ์ƒ‰ ์‹œ๊ฐ„์€ O(logN)์ •ํ™•ํžˆ๋Š”.. 2024. 5. 15.
Two-Phase Locking (2PL) 2PL ๋“ฑ์žฅ ๋ฐฐ๊ฒฝ2PL์€ ์™œ ์ฐฉ์•ˆ๋˜๊ฒŒ ๋˜์—ˆ์„๊นŒ?๊ฐ’์— ์ ‘๊ทผํ•˜๊ธฐ ์ „์— lock์„ ์žก๊ณ , ์ ‘๊ทผ์ด ๋๋‚œ ํ›„์— lock์„ ํ•ด์ œํ–ˆ๋‹ค์–ธ๋œป๋ณด๋ฉด lock์„ ๊ต‰์žฅํžˆ ์ž˜ ์‚ฌ์šฉํ•œ ๊ฒƒ ๊ฐ™๋‹ค๊ทธ๋Ÿฐ๋ฐ ์ •์ƒ์ ์ธ ๊ฒฐ๊ณผ(serialํ•˜๊ฒŒ ์ˆ˜ํ–‰)๋ฅผ ์ƒ๊ฐํ•ด๋ณด๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด ๋‚˜์™€์•ผ ํ•œ๋‹คbalx = 220, baly = 330 (T9 -> T10)balx = 210, baly = 340 (T10 -> T9)ํ•˜์ง€๋งŒ ์ˆ˜ํ–‰ ๊ฒฐ๊ณผ๋Š” balx = 220, baly = 340 ์ด๋ผ๋Š” ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์™”๋‹คlock์„ ์‚ฌ์šฉํ•˜์˜€์Œ์—๋„ serializable ํ•˜์ง€ ์•Š์€ schedule์ด ๋ฐœ์ƒํ–ˆ๋‹ค๊ฐ’์— ์ ‘๊ทผํ•˜๊ธฐ ์ „์— lock์„ ์žก๋Š” ๊ฒƒ์€ ์ข‹์•˜์œผ๋‚˜, lock์„ ๋„ˆ๋ฌด ๋นจ๋ฆฌ ํ•ด์ œํ•œ ๊ฒƒ์ด ๋ฌธ์ œ ๋‹คlock์„ ๊ฑธ๊ณ  ํ‘ธ๋Š” ๊ฒƒ์— ๋Œ€ํ•œ ์ถ”๊ฐ€์ ์ธ ๊ทœ์ œ๊ฐ€ ํ•„์š”ํ•จ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค 2PLTwo-Pha.. 2024. 5. 10.