software engineering 62

[Network] UDP / TCP Protocol

UDP ํ”„๋กœํ† ์ฝœ UDPํ—ค๋”๋Š” 8๋ฐ”์ดํŠธ๋กœ ๊ฐ„๋žตํ•œ ๊ตฌ์กฐ (์ตœ์†Œํ™”๋œ ์˜ค๋ฒ„ํ—ค๋“œ ๊ตฌ์กฐ) ๋น„์—ฐ๊ฒฐํ˜•์˜ ์‹ ๋ขฐ์„ฑ์ด ๋‚ฎ์€ ์ „์†ก ํ”„๋กœํ† ์ฝœ ๋ฉ”์‹œ์ง€ ๋‹จ์œ„์˜ ์ „์†ก ํ”„๋กœํ† ์ฝœ ๋ฉ”์‹œ์ง€๋ฅผ ๋” ์ž‘์€ ๋‹จ์œ„๋กœ ์ž๋ฅด๊ฑฐ๋‚˜ ์žฌ์กฐํ•ฉ X ํ•„์š”ํ•œ ๊ฒฝ์šฐ ์‘์šฉ๊ณ„์ธต ํ˜น์€ IP๊ณ„์ธต์—์„œ ์ž๋ฅด๊ณ  ์žฌ์กฐํ•ฉ ๋น„์ •๊ทœ์  ์†ก์‹ ์œจ(Unregulated Sending Rate) ์†ก์‹ ์œจ์— ๊ฐ„์„ญํ•˜์ง€ ์•Š๊ณ , ์‘์šฉ๊ณ„์ธต์˜ ์˜๋„๋Œ€๋กœ ์ „์†ก (๋„คํŠธ์›Œํฌ ์ƒํ™ฉ ๊ณ ๋ คX) TCP๋Š” ์ž์ฒด์ ์œผ๋กœ ์†ก์‹ ์œจ ์ œ์–ด TCP ํ”„๋กœํ† ์ฝœ ์ŠคํŠธ๋ฆผ ๋ฐฐ๋‹ฌ(Stream Delivery) ์„œ๋น„์Šค ์ œ๊ณต ๋ฐ”์ดํŠธ ์ŠคํŠธ๋ฆผ ํ˜•ํƒœ๋กœ ๋ฐ์ดํ„ฐ ์†ก์ˆ˜์‹  ๋ฐ์ดํ„ฐ์˜ ์‹œ์ž‘๊ณผ ๋์„ ๊ตฌ๋ถ„ํ•˜์ง€ ์•Š๊ณ  ์—ฐ์†์ ์ธ ๋ฐ์ดํ„ฐ์˜ ํ๋ฆ„์œผ๋กœ ์ฒ˜๋ฆฌ ํ๋ฆ„์ œ์–ด์™€ ์˜ค๋ฅ˜์ œ์–ด๋ฅผ ์œ„ํ•œ ์†ก์ˆ˜์‹  ๋ฒ„ํผ(Buffer) TCP ์„ธ๊ทธ๋จผํŠธ(Segment) TCP๋Š” ์ŠคํŠธ๋ฆผ ๋ฐฐ๋‹ฌ์„ ์ œ๊ณตํ•˜์ง€๋งŒ, ..

[IC] ์œ ๋ฌด์„  ํ†ตํ•ฉ ์„œ๋น„์Šค

* ํœด๋Œ€ ์ธํ„ฐ๋„ท 1. ๋ฌด์„  ์ธํ„ฐ๋„ท ๋ฌด์„  ๋‹จ๋ง๊ธฐ/ ๋ฌด์„ ๊ธฐ๊ธฐ๋ฅผ ์ด์šฉํ•ด ์ธํ„ฐ๋„ท์„ ์ด์šฉํ•˜๋Š” ๊ฒƒ ๋ฌด์„ ๋žœ, ์ด๋™ํ†ต์‹ ์„ ์ด์šฉํ•œ 3G, 4G 2. ํœด๋Œ€ ์ธํ„ฐ๋„ท ๋ฌด์„  ์ธํ„ฐ๋„ท์˜ ์ผ์ข… ์ •์ง€ ๋ฐ ์ค‘์ €์†์œผ๋กœ ์ด๋™ ์ค‘์— ๊ณ ์†์˜ ์ธํ„ฐ๋„ท ํ†ต์‹ ์ด ๊ฐ€๋Šฅํ•œ ์„œ๋น„์Šค ๊ธฐ์ง€๊ตญ๊ฐ„ ํ•ธ๋“œ์˜ค๋ฒ„ ์ง€์›, ์ด๋™ ์ค‘์—๋„ ์„œ๋น„์Šค ์ง€์† ์ „์†ก ์†๋„, ๋‹จ๋ง๊ธฐ ์ด๋™์„ฑ, ๊ธฐ์ง€๊ตญ ๋ฐ˜๊ฒฝ ๋“ฑ๊ณผ ๊ฐ™์€ ์ธก๋ฉด์—์„œ, ํ˜„์žฌ์˜ ์ด๋™์ „ํ™” ์„œ๋น„์Šค์™€ ๋ฌด์„ ๋žœ ์„œ๋น„์Šค์˜ ์ค‘๊ฐ„ ์˜์—ญ์— ์œ„์น˜ ์ „์†ก์†๋„ 1~3Mbps ํœด๋Œ€ ์ธํ„ฐ๋„ท๊ณผ ๋ฌด์„ ๋žœ์€ ์Œ์„ฑ์ด ์•„๋‹Œ ๋ฐ์ดํ„ฐ ํ†ต์‹ ์„ ์œ„ํ•œ ๋„คํŠธ์›Œํฌ์ด๊ธฐ ๋•Œ๋ฌธ์— ์ƒํ˜ธ ๋ณด์™„์  ์œ„์น˜ * ์œ ๋ฌด์„  ํ†ตํ•ฉ ์„œ๋น„์Šค - ์„œ๋กœ ๋…๋ฆฝ์ ์ธ ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•ด์™”๋˜ ๊ธฐ์กด์˜ ์œ ์„ ๋ง๊ณผ ๋ฌด์„ ๋ง์„ ๋ชจ๋‘ ์ด์šฉํ•ด, ์‹คํ˜„ ๊ฐ€๋Šฅํ•œ ์„œ๋น„์Šค์™€ ์ด๋ฅผ ์ง€์›ํ•˜๊ธฐ ์œ„ํ•œ ๋‹ค์–‘ํ•œ ๊ธฐ์ˆ ๋“ค์„ ์˜๋ฏธ - ์œ ์„ ๋ง ์‚ฌ์—…์ž์™€ ๋ฌด์„ ๋ง ์‚ฌ์—…..

[IC] ์ธํ„ฐ๋„ท ์„œ๋น„์Šค(Internet Service)

์ธํ„ฐ๋„ท ์ „ํ™” - ์ผ๋ฐ˜ ์ „ํ™”์ฒ˜๋Ÿผ ์ธํ„ฐ๋„ท์„ ์ด์šฉํ•ด์„œ ์ „ํ™”๋ฅผ ์ด์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ฃผ๋Š” ์„œ๋น„์Šค - IP ์ „ํ™” ์„œ๋น„์Šค - ์ธํ„ฐ๋„ท ์ „ํ™”๋ผ๋ฆฌ ํ†ตํ™”๋ฅผ ํ•˜๊ฑฐ๋‚˜, ์ธํ„ฐ๋„ท ์ „ํ™”์—์„œ ์ผ๋ฐ˜ ์ „ํ™” ๊ฐ€๋Šฅ ์›น To ์›น : ์†ก์ˆ˜์‹ ์ž ์Œ๋ฐฉ์ด ์ธํ„ฐ๋„ท ์ „ํ™” ์„œ๋น„์Šค๋ฅผ ์ง€์›ํ•˜๋Š” ์ธํ„ฐ๋„ท ํฐ์„ ์ด์šฉํ•˜์—ฌ ํ†ตํ™”ํ•˜๋Š” ๋ฐฉ์‹ ์›น To ํฐ : ์†ก์‹ ์ž๋Š” ์ธํ„ฐ๋„ทํฐ์„ ์ด์šฉ, ๊ฒŒ์ดํŠธ์›จ์ด๋ฅผ ๊ฒฝ์œ ํ•˜์—ฌ ์ผ๋ฐ˜์ „ํ™”๋ง์˜ ์ˆ˜์‹ ์ž์™€ ํ†ตํ™”ํ•˜๋Š” ๋ฐฉ์‹ ํฐ To ์›น : ์†ก์‹ ์ž๋Š” ์ผ๋ฐ˜ ์ „ํ™”๊ธฐ ์ด์šฉ, ์ˆ˜์‹ ์ž์˜ ์ธํ„ฐ๋„ท ์ „ํ™” ๋˜๋Š” ์Šค๋งˆํŠธํฐ๊ณผ ํ†ตํ™”ํ•˜๋Š” ๋ฐฉ์‹ ํฐ To ํฐ : ์ผ๋ฐ˜ ์ „ํ™”๊ธฐ๋ฅผ ์ด์šฉํ•˜์—ฌ ์†ก์ˆ˜์‹ ์ž ์Œ๋ฐฉ ๋ชจ๋‘ ๊ฒŒ์ดํŠธ์›จ์ด๋ฅผ ๊ฒฝ์œ ํ•˜์—ฌ ํ†ตํ™”ํ•˜๋Š” ๋ฐฉ์‹ * VoIP (Voice over Internet Protocol) ์ธํ„ฐ๋„ท์„ ํ†ตํ•ด ์ผ๋ฐ˜ ์ „ํ™”์™€ ๊ฐ™์€ ์Œ์„ฑํ†ต์‹ ์„ ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ์ˆ  MOS(Mean ..

[Secure] API ์˜ค์šฉ ๋ณด์•ˆ์•ฝ์ 

API ์˜ค์šฉ ๋ณด์•ˆ์•ฝ์  ์˜๋„๋œ ์‚ฌ์šฉ์— ๋ฐ˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ API๋ฅผ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜, ๋ณด์•ˆ์— ์ทจ์•ฝํ•œ API๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ๋ณด์•ˆ ์•ฝ์  * DNS lookup ์— ์˜์กดํ•œ ๋ณด์•ˆ๊ฒฐ์ • 1. ์›์ธ ๋„๋ฉ”์ธ๋ช…์— ์˜์กดํ•ด์„œ ๋ณด์•ˆ๊ฒฐ์ •(์ธ์ฆ ๋ฐ ์ ‘๊ทผ ํ†ต์ œ ๋“ฑ)์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒฝ์šฐ 2. ์˜ํ–ฅ ๊ณต๊ฒฉ์ž๊ฐ€ DNS ์—”ํŠธ๋ฆฌ๋ฅผ ์†์ผ ์ˆ˜ ์žˆ์Œ(DNS spoofing) ๋กœ์ปฌ DNS ์„œ๋ฒ„์˜ ์บ์‹œ๊ฐ€ ๊ณต๊ฒฉ์ž์— ์˜ํ•ด ์˜ค์—ผ๋˜๋ฉด, ์‚ฌ์šฉ์ž์™€ ํŠน์ • ์„œ๋ฒ„๊ฐ„์— ๋„คํŠธ์›Œํฌ ํŠธ๋ž˜ํ”ฝ์ด ๊ณต๊ฒฉ์ž๋ฅผ ๊ฒฝ์œ ํ•˜๋„๋ก ์œ ๋„ ๊ณต๊ฒฉ์ž๊ฐ€ ๋งˆ์น˜ ๋™์ผ ๋„๋ฉ”์ธ์— ์†ํ•œ ์„œ๋ฒ„์ธ ๊ฒƒ ์ฒ˜๋Ÿผ ์œ„์žฅ (ํŒŒ๋ฐ) 3. ๋Œ€์‘ ๋ณด์•ˆ๊ฒฐ์ •์—์„œ ๋„๋ฉ”์ธ๋ช…์„ ์ด์šฉํ•œ DNS lookup์„ ํ•˜์ง€ ์•Š๋„๋ก ์กฐ์น˜ * ์ทจ์•ฝํ•œ API ์‚ฌ์šฉ 1. ์›์ธ ๋ณด์•ˆ์ƒ ๊ธˆ์ง€๋œ(banned) ํ•จ์ˆ˜์ด๊ฑฐ๋‚˜, ๋ถ€์ฃผ์˜ํ•˜๊ฒŒ ์‚ฌ์šฉ๋  ๊ฐ€๋Šฅ์„ฑ์ด ๋งŽ์€ API๋ฅผ ์‚ฌ..

[Secure] ์บก์Šํ™” ๋ณด์•ˆ์•ฝ์ 

์บก์Šํ™” ๋ณด์•ˆ์•ฝ์  ์ค‘์š”ํ•œ ๋ฐ์ดํ„ฐ ๋˜๋Š” ๊ธฐ๋Šฅ์„ฑ์„ ๋ถˆ์ถฉ๋ถ„ํ•˜๊ฒŒ ์บก์Šํ™”ํ•˜๊ฑฐ๋‚˜ ์ž˜๋ชป ์‚ฌ์šฉํ•จ์œผ๋กœ์จ ๋ฐœ์ƒํ•˜๋Š” ๋ณด์•ˆ์•ฝ์ ์œผ๋กœ ์ •๋ณด ๋…ธ์ถœ, ๊ถŒํ•œ ๋ฌธ์ œ ๋“ฑ์ด ๋ฐœ์ƒ ์ž˜๋ชป๋œ ์„ธ์…˜์— ์˜ํ•œ ๋ฐ์ดํ„ฐ ์ •๋ณด ๋…ธ์ถœ ์ œ๊ฑฐ๋˜์ง€ ์•Š๊ณ  ๋‚จ์€ ๋””๋ฒ„๊ทธ ์ฝ”๋“œ Public ๋ฉ”์†Œ๋“œ๋กœ๋ถ€ํ„ฐ ๋ฐ˜ํ™˜๋œ Private ๋ฐฐ์—ด Private ๋ฐฐ์—ด์— Public ๋ฐ์ดํ„ฐ ํ• ๋‹น * ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ(OOP; Object Oriented Programming) : ํ”„๋กœ๊ทธ๋žจ์„ ๋‹จ์ˆœํžˆ ๋ฐ์ดํ„ฐ์™€ ์ฒ˜๋ฆฌ ๋ฐฉ๋ฒ•์œผ๋กœ ๋‚˜๋ˆ„๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, '๊ฐ์ฒด'๋ผ๋Š” ๊ธฐ๋ณธ ๋‹จ์œ„๋กœ ๋‚˜๋ˆ„๊ณ  ๊ฐ์ฒด๋“ค์˜ ์ƒํ˜ธ์ž‘์šฉ์œผ๋กœ ์„œ์ˆ ํ•˜๋Š” ๋ฐฉ์‹ ํŠน์ง• ์„ค๋ช… ์บก์Šํ™” (Encapsulation) - ์„œ๋กœ ๊ด€๋ จ์„ฑ์ด ๋งŽ์€ ๋ฐ์ดํ„ฐ์™€ ์ด๋ฅผ ์ฐธ์กฐํ•˜๋Š” ํ•จ์ˆ˜๋“ค์„ ํ•˜๋‚˜๋กœ ๋ฌถ์–ด ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฐ์ฒด ์ง€ํ–ฅ ํŠน์„ฑ - ์ •๋ณด ์€๋‹‰ : ์บก์Šํ™”์—์„œ ํ•œ๋‹จ๊ณ„ ๋” ๋‚˜์•„๊ฐ€..

[Computer] ๋ฉ€ํ‹ฐ๋ฏธ๋””์–ด (Multimedia)

๋ฉ€ํ‹ฐ๋ฏธ๋””์–ด (Multimedia) ์—ฌ๋Ÿฌ ์ข…๋ฅ˜์˜ ๋ฏธ๋””์–ด๋ฅผ ์ด์šฉํ•˜์—ฌ ์ •๋ณด๋ฅผ ํ‘œํ˜„ํ•˜๋Š” ์ˆ˜๋‹จ - ํ…์ŠคํŠธ, ์ด๋ฏธ์ง€, ์‚ฌ์šด๋“œ, ์• ๋‹ˆ๋ฉ”์ด์…˜, ๋™์˜์ƒ.. * ๋ฉ€ํ‹ฐ๋ฏธ๋””์–ด ๊ตฌ์„ฑ์š”์†Œ ํ…์ŠคํŠธ ์‚ฌ์šด๋“œ ๊ทธ๋ž˜ํ”ฝ ์ด๋ฏธ์ง€ ์• ๋‹ˆ๋ฉ”์ด์…˜ ๋™์˜์ƒ ๊ฐ€์ƒํ˜„์‹ค(VR; Virtual Reality) * ๋ฉ€ํ‹ฐ๋ฏธ๋””์–ด ํŠน์„ฑ ๋””์ง€ํ„ธ - ๋‹ค์–‘ํ•œ ํ˜•ํƒœ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์•„๋‚ ๋กœ๊ทธ๊ฐ€ ์•„๋‹Œ ๋””์ง€ํ„ธ๋กœ ์ฒ˜๋ฆฌ - ์ •ํ™•ํ•œ ์†ก์ˆ˜์‹ ๊ณผ ์†์ƒ์—†๋Š” ๋ฐ์ดํ„ฐ์˜ ์ €์žฅ, ๋ฌด์ œํ•œ ๋ณต์‚ฌ ๋ฐ ์ „์†ก์ด ๊ฐ€๋Šฅ ์ƒํ˜ธ์ž‘์šฉ - ์—ฌ๋Ÿฌ ์‚ฌ์šฉ์ž์˜ ์š”๊ตฌ์— ๋งž๋Š” ์ •๋ณด๋ฅผ ์ œ๊ณต๋ฐ›์Œ - ์ฃผ๋ฌธํ˜• ๋น„๋””์˜ค(VOD), ์ฃผ๋ฌธํ˜• ์Œ์•…(MOD) ๋“ฑ ๋น„์„ ํ˜•์„ฑ - ์‹ ๋ฌธ์ด๋‚˜ ์ฑ… (ํ•œ๋ฐฉํ–ฅ) - ์‚ฌ์šฉ์ž์˜ ์„ ํƒ์— ๋”ฐ๋ผ ์‚ฌ์šด๋“œ๋‚˜ ์ด๋ฏธ์ง€ ๋“ฑ์˜ ๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ตฌ์กฐ - ์›นํŽ˜์ด์ง€์˜ ํ•˜์ดํผ๋งํฌ ์ •๋ณด์˜ ํ†ตํ•ฉ์„ฑ - ์‹ ๋ฌธ, ์ฑ…, ๋น„๋””์˜ค ๋“ฑ์€ ์ œํ•œ๋œ ํ•œ..

[Network] ์ „์†ก๊ณ„์ธต์˜ ARQ ํ”„๋กœํ† ์ฝœ

1. ๋‹จ์ˆœ ํ”„๋กœํ† ์ฝœ(Simple Protocol) ํ๋ฆ„์ œ์–ด๋‚˜ ์˜ค๋ฅ˜์ œ์–ด๊ฐ€ ์—†๋Š” ๋น„์—ฐ๊ฒฐํ˜• ํ”„๋กœํ† ์ฝœ ์ˆ˜์‹ ์ธก์€ ์ˆ˜์‹ ํ•œ ํŒจํ‚ท์„ ์ฆ‰์‹œ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•จ 2. ์ •์ง€-๋Œ€๊ธฐ ํ”„๋กœํ† ์ฝœ(Stop-and-Wait Protocol) ํ๋ฆ„์ œ์–ด์™€ ์˜ค๋ฅ˜์ œ์–ด๋ฅผ ์ œ๊ณตํ•˜๋Š” ์—ฐ๊ฒฐํ˜• ํ”„๋กœํ† ์ฝœ ์†ก์‹ ์ธก๊ณผ ์ˆ˜์‹ ์ธก์ด ๋ชจ๋‘ ํฌ๊ธฐ๊ฐ€ 1์ธ ์Šฌ๋ผ์ด๋”ฉ ์œˆ๋„์šฐ ์‚ฌ์šฉ ์†ก์‹ ์ธก์ด ํ•˜๋‚˜์˜ ํŒจํ‚ท์„ ์ „์†กํ•˜๊ณ , ํ™•์ธ์‘๋‹ต์„ ์ˆ˜์‹ ํ•  ๋•Œ๊นŒ์ง€ ๋‹ค์ŒํŒจํ‚ท์„ ์ „์†กํ•˜์ง€ ์•Š์Œ(ํ๋ฆ„์ œ์–ด) ์ˆ˜์‹ ์ธก์—์„œ ๊ฒ€์‚ฌํ•ฉ ํ•„๋“œ๋ฅผ ํ™•์ธํ•˜์—ฌ ์˜ค๋ฅ˜ ๋ฐœ์ƒ์„ ํ™•์ธํ•˜๋ฉด ์ˆ˜์‹  ํŒจํ‚ท์„ ์กฐ์šฉํžˆ ํ๊ธฐํ•˜๊ณ , ์˜ค๋ฅ˜๊ฐ€ ์—†์œผ๋ฉด ํ™•์ธ์‘๋‹ต ์†ก์‹ ์ธก์€ ํŒจํ‚ท ์ „์†ก ์‹œ, ํƒ€์ด๋จธ๋ฅผ ๊ตฌ๋™ํ•˜๊ณ  ํ™•์ธ์‘๋‹ต์„ ๋ฐ›์œผ๋ฉด ํƒ€์ด๋จธ ์ •์ง€ 3. N-ํ”„๋ ˆ์ž„-ํ›„ํ‡ด ํ”„๋กœํ† ์ฝœ (Go-Back_N) ์ •์ง€-๋Œ€๊ธฐ ํ”„๋กœํ† ์ฝœ์˜ ๋น„ํšจ์œจ์„ฑ์„ ๋ณด์™„ํ•œ ๋ฐฉ์‹ ์†ก์‹ ์ธก์ด ํ™•์ธ์‘๋‹ต์„..

[Network] ์ „์†ก ๊ณ„์ธต ํ”„๋กœํ† ์ฝœ

* ํ”„๋กœ์„ธ์Šค ๋Œ€ ํ”„๋กœ์„ธ์Šค ํ†ต์‹  ์ „์†ก๊ณ„์ธต์€ ํ”„๋กœ์„ธ์Šค ๋Œ€ ํ”„๋กœ์„ธ์Šค ํ†ต์‹  ์ œ๊ณต (ํ”„๋กœ์„ธ์Šค = ๋™์ž‘์ค‘์ธ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ) ์ „์†ก๊ณ„์ธต์—์„œ๋Š” ํฌํŠธ์ฃผ์†Œ (Port Address, Port Number) ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ตฌ๋ถ„ํ•จ ์ž˜ ์•Œ๋ ค์ง„ ํฌํŠธ(Well-known Port Number) : ํŠน์ • ์„œ๋น„์Šค๋ฅผ ์œ„ํ•œ ์šฉ๋„๋กœ ์˜ˆ์•ฝ๋œ ๋ฒˆํ˜ธ๋กœ์„œ 0~1,023 ์‚ฌ์ด์˜ ์ •์ˆ˜ ๋“ฑ๋ก๋œ ํฌํŠธ(Registered Port) : IANA๊ธฐ๊ด€์— ๋“ฑ๋กํ•ด์„œ ์‚ฌ์šฉํ•˜๋Š” ํฌํŠธ ์ฃผ์†Œ ๋™์  ํฌํŠธ(Dynamic Port) : ํ—ˆ๊ฐ€์—†์ด ์ž„์‹œ ํ˜น์ธ ๊ฐœ์ธ ํฌํŠธ ์ฃผ์†Œ๋กœ ์‚ฌ์šฉ * ํ๋ฆ„์ œ์–ด(Flow Control) ์ •๋ณด ์ƒ์‚ฐ์ž์™€ ์†Œ๋น„์ž๊ฐ„์— ์ •๋ณด ์ƒ์„ฑ์œจ๊ณผ ์†Œ๋น„์œจ์˜ ๊ท ํ˜•์ด ์ค‘์š” -> ๊ท ํ˜•์ด ๋งž์ง€ ์•Š์œผ๋ฉด ์‹œ์Šคํ…œ ํšจ์œจ ์ €ํ•˜ ์ •๋ณด ์ƒ์‚ฐ์ž๋กœ๋ถ€ํ„ฐ ์†Œ๋น„์ž๋กœ ๋ฐฐ๋‹ฌํ•˜๋Š” ๋ฐฉ๋ฒ• ๋ฐ€๊ธฐ(Pu..

[DB] ํŒŒํ‹ฐ์…˜, ๋ทฐ, ์‹œํ€€์Šค (Partition, View, Sequence)

ํŒŒํ‹ฐ์…˜(Partition) - ํฌ๊ธฐ๊ฐ€ ๋งค์šฐ ํฐ ํ…Œ์ด๋ธ”์ด๋‚˜ ์ธ๋ฑ์Šค๋ฅผ ๊ด€๋ฆฌ๊ฐ€ ์šฉ์ดํ•œ ๋‹จ์œ„๋กœ ๋ถ„ํ• ํ•˜๋Š” ๊ฒƒ - ๊ฐ๊ฐ์˜ ํŒŒํ‹ฐ์…˜์€ ์ž์‹ ์˜ ์ด๋ฆ„์„ ๊ฐ€์ง * ํŒŒํ‹ฐ์…˜์˜ ์žฅ์  ๊ฐ€์šฉ์„ฑ์˜ ์ฆ๊ฐ€ ์Šคํ‚ค๋งˆ ๊ฐ์ฒด์˜ ๊ด€๋ฆฌ ๋ฐ์ดํ„ฐ์›จ์–ดํ•˜์šฐ์Šค์—์„œ ์ฟผ๋ฆฌ ์„ฑ๋Šฅ ํ–ฅ์ƒ ์‘์šฉํ”„๋กœ๊ทธ๋žจ ์ž…์žฅ์—์„œ, ํ•˜๋‚˜์˜ ํ…Œ์ด๋ธ”์„ ๋ณด๋Š” ๊ฒƒ๊ณผ ๊ฐ™๊ธฐ ๋•Œ๋ฌธ์— DML ๋ฌธ์žฅ์˜ ์ˆ˜์ •์ด ํ•„์š” ์—†์Œ * ํŒŒํ‹ฐ์…˜ ํ‚ค(Partition Key) ๋กœ์šฐ๊ฐ€ ํŠน์ • ํŒŒํ‹ฐ์…˜์— ์†ํ•˜๋Š” ๊ธฐ์ค€์ด๋˜๋Š” ํ•˜๋‚˜ ๋˜๋Š” ๋‘˜ ์ด์ƒ์˜ ์ปฌ๋Ÿผ Sales ํ…Œ์ด๋ธ”์—์„œ time_id์ปฌ๋Ÿผ์„ ๋ฒ”์œ„ํŒŒํ‹ฐ์…˜(Range partition)์œผ๋กœ ์ง€์ •ํ•˜๋ฉด, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ํŒŒํ‹ฐ์…˜ํ‚ค๋ฅผ ์ฐธ๊ณ ํ•ด์„œ ํ•ด๋‹น ํŒŒํ‹ฐ์…˜์œผ๋กœ ์‚ฝ์ž…, ์ˆ˜์ •, ์‚ญ๋ฒ  ์ž‘์—…์„ ์ˆ˜ํ–‰ * ํŒŒํ‹ฐ์…˜ ์ข…๋ฅ˜ ๋ฒ”์œ„ ํŒŒํ‹ฐ์…”๋‹(range partitioning) ๊ฐ€์žฅ ์ผ๋ฐ˜์ ์ธ ํ˜•ํƒœ ํŒŒํ‹ฐ์…˜ํ‚ค ๊ฐ’์˜ ๋ฒ”์œ„..

[DB] ๋ฝ๊ณผ ๋ฐ๋“œ๋ฝ (Dead Lock)

* ๋ฝ(Lock) - ํŠธ๋žœ์žญ์…˜ ์‚ฌ์ด์˜ ๊ฐ„์„ญ์„ ๋ง‰๊ณ  ๋ฐ์ดํ„ฐ์˜ ์ผ๊ด€์„ฑ์„ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•œ ํ•ต์‹ฌ์š”์†Œ - ํ•œ ์‚ฌ์šฉ์ž๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์„ ๊ฒฝ์šฐ, ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž๊ฐ€ ๊ทธ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณ€๊ฒฝํ•˜์ง€ ๋ชปํ•˜๋„๋ก ํ•˜๋Š” ๊ฒƒ ๋ฝ ์„ค๋ช… ๊ณต์œ ๋ฝ(S; Shared Lock) - SELECT ๋ฌธ์ฒ˜๋Ÿผ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๋Š” ์ž‘์—…์— ์‚ฌ์šฉ - ๊ณต์œ ๋ฝ๋ผ๋ฆฌ๋Š” ์„œ๋กœ ํ˜ธํ™˜๋จ(๋™์‹œ์— ๊ฐ™์€ ๋ฐ์ดํ„ฐ SELECT ๊ฐ€๋Šฅ) ๋ฐฐํƒ€๋ฝ(E; Exclusive Lock) - ๋ฐ์ดํ„ฐ ์ˆ˜์ • ์ž‘์—…์ด ๋ฐœ์ƒ๋˜๋Š” INSERT, UPDATE, DELETE์—์„œ ์‚ฌ์šฉ - ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์—…๋ฐ์ดํŠธ ์ž‘์—…์ด ํ•˜๋‚˜์˜ ๋ฆฌ์†Œ์Šค์— ๋™์‹œ์— ์ˆ˜ํ–‰๋˜์ง€ ๋ชปํ•˜๋„๋ก ๋ฐฉ์ง€ ์—…๋ฐ์ดํŠธ๋ฝ (U; Update Lock) - ๊ณต์œ ๋ฝ์ด ์žˆ๋Š” ์ž์›์— ๋Œ€ํ•œ ์—…๋ฐ์ดํŠธ ์‹œ ์‚ฌ์šฉ ์˜๋„๋ฝ(Intent Lock) - ๋ฝ์˜ ๊ณ„์ธต ๊ตฌ์กฐ๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐ ์‚ฌ์šฉ ..