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

CS6

[DB] ์ธ๋ฑ์Šค๋ž€? B+Tree ๊ตฌ์กฐ๋ถ€ํ„ฐ ์Šค์บ” ๋ฐฉ์‹๊นŒ์ง€ ์ •๋ฆฌ ๐Ÿ“Œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ธ๋ฑ์Šค๋ž€?๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ธ๋ฑ์Šค(Idex)๋Š” ๊ฒ€์ƒ‰ ์†๋„๋ฅผ ํ–ฅ์ƒ์‹œํ‚ค๊ธฐ ์œ„ํ•œ ์ž๋ฃŒ๊ตฌ์กฐ๋กœ, ์ฑ…์˜ ์ƒ‰์ธ(index)์ฒ˜๋Ÿผ ์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋น ๋ฅด๊ฒŒ ์ฐพ๊ธฐ ์œ„ํ•œ ๋„๊ตฌ์ด๋‹ค.์ •๋ ฌ๋œ ๊ตฌ์กฐ๋ฅผ ์œ ์ง€ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์กฐํšŒ ์„ฑ๋Šฅ์€ ๋›ฐ์–ด๋‚˜์ง€๋งŒ, INSERT, UPDATE, DELETE ์‹œ์—๋Š” ์„ฑ๋Šฅ์ด ๋–จ์–ด์งˆ ์ˆ˜ ์žˆ๋‹ค.(์ •๋ ฌ ์œ ์ง€์™€ ์žฌ๊ตฌ์„ฑ ๋น„์šฉ ๋•Œ๋ฌธ) โœ… ์ธ๋ฑ์Šค๋Š” ์–ด๋–ค ์ž๋ฃŒ๊ตฌ์กฐ๋กœ ๊ตฌํ˜„๋ ๊นŒ?๋Œ€๋ถ€๋ถ„์˜ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(RDBMS)๋Š” B-Tree ๋˜๋Š” B+Tree ๊ธฐ๋ฐ˜ ์ธ๋ฑ์Šค ๊ตฌ์กฐ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.(MySQL์˜ InnoDB ์Šคํ† ๋ฆฌ์ง€ ์—”์ง„ ๊ธฐ์ค€์œผ๋กœ ์ •๋ฆฌํ•  ์˜ˆ์ •) ๐ŸŒณ B+Tree ์ธ๋ฑ์Šค ๊ตฌ์กฐB+Tree๋Š” B-Tree์˜ ๋ณ€ํ˜•์œผ๋กœ ๋ชจ๋“  ์‹ค์ œ ๋ฐ์ดํ„ฐ(๋ ˆ์ฝ”๋“œ ์œ„์น˜)๋Š” ๋ฆฌํ”„ ๋…ธ๋“œ์—๋งŒ ์กด์žฌํ•ญ์ƒ ์ •๋ ฌ๋œ ์ƒํƒœ ์œ ์ง€(→ ๋ฒ”์œ„ ์กฐํšŒ๊ฐ€ ๋น ๋ฅด๋‹ค, ์ˆœ์ฐจ ์ ‘.. 2025. 7. 29.
[DB] ํŠธ๋žœ์žญ์…˜ ๊ฒฉ๋ฆฌ ์ˆ˜์ค€ ์™„๋ฒฝ ์ •๋ฆฌ! (Isolation Level) ๐Ÿ“Œ ํŠธ๋žœ์žญ์…˜ ๊ฒฉ๋ฆฌ ์ˆ˜์ค€์ด๋ž€?ํŠธ๋žœ์žญ์…˜ ๊ฒฉ๋ฆฌ ์ˆ˜์ค€(Isolation Level)์€ ๋™์‹œ์— ์‹คํ–‰๋˜๋Š” ํŠธ๋žœ์žญ์…˜๋“ค์ด ์„œ๋กœ์˜ ์ž‘์—…์— ์–ผ๋งˆ๋‚˜ ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š๋„๋ก ํ•  ๊ฒƒ์ธ์ง€๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ๊ธฐ์ค€์ด๋‹ค.๊ฒฉ๋ฆฌ ์ˆ˜์ค€์ด ๋‚ฎ์„์ˆ˜๋ก ๋™์‹œ ์ฒ˜๋ฆฌ ๋Šฅ๋ ฅ(์„ฑ๋Šฅ)์€ ๋†’์•„์ง€์ง€๋งŒ ๋ฐ์ดํ„ฐ ์ผ๊ด€์„ฑ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค.๋ฐ˜๋Œ€๋กœ ๊ฒฉ๋ฆฌ ์ˆ˜์ค€์ด ๋†’์„์ˆ˜๋ก ์ •ํ•ฉ์„ฑ์€ ํ–ฅ์ƒ๋˜์ง€๋งŒ ์„ฑ๋Šฅ์ด ์ €ํ•˜๋  ์ˆ˜ ์žˆ๋‹ค. โœ… ํŠธ๋žœ์žญ์…˜ ๊ฒฉ๋ฆฌ ์ˆ˜์ค€ 4๊ฐ€์ง€๊ฒฉ๋ฆฌ ์ˆ˜์ค€๋ณด์žฅ ์ˆ˜์ค€๋ฐœ์ƒ ๊ฐ€๋Šฅํ•œ ๋ฌธ์ œREAD UNCOMMITTED๊ฐ€์žฅ ๋‚ฎ์ŒDirty Read, Non-Repeatable Read, Phantom ReadREAD COMMITTED๋‚ฎ์ŒNon-Repeatable Read, Phantom ReadREPEATABLE READ๋†’์ŒPhantom ReadSERIALIZABLE๊ฐ€์žฅ ๋†’์Œ์—†์Œ (์„ฑ.. 2025. 7. 28.
[DB] ACID๋ž€? ํŠธ๋žœ์žญ์…˜์˜ 4๋Œ€ ์†์„ฑ ํ•œ ๋ฒˆ์— ์ •๋ฆฌ ๐Ÿ’พ ACID๋ž€?๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ํŠธ๋žœ์žญ์…˜(Transaction)์ด ์•ˆ์ „ํ•˜๊ฒŒ ์ฒ˜๋ฆฌ๋˜๊ธฐ ์œ„ํ•ด ๋ฐ˜๋“œ์‹œ ์ง€์ผœ์•ผ ํ•˜๋Š” 4๊ฐ€์ง€ ์†์„ฑ์„ ์˜๋ฏธํ•œ๋‹ค.ํŠธ๋žœ์žญ์…˜์€ ํ•˜๋‚˜์˜ ์ž‘์—… ๋‹จ์œ„์ด๋ฉฐ, ์ด ์ž‘์—…์€ ์ „๋ถ€ ์ˆ˜ํ–‰๋˜๊ฑฐ๋‚˜ ์ „ํ˜€ ์ˆ˜ํ–‰๋˜์ง€ ์•Š์•„์•ผ ํ•œ๋‹ค. โœ… ACID 4๊ฐ€์ง€ ์†์„ฑ ์š”์•ฝ์•ฝ์–ด์ด๋ฆ„์˜๋ฏธ ์š”์•ฝA์›์ž์„ฑ (Atomicity)์ „๋ถ€ ์ˆ˜ํ–‰๋˜๊ฑฐ๋‚˜, ์ „ํ˜€ ์ˆ˜ํ–‰๋˜์ง€ ์•Š์•„์•ผ ํ•œ๋‹ค.C์ผ๊ด€์„ฑ (Consistency)ํŠธ๋žœ์žญ์…˜ ์ „ํ›„์˜ ๋ฐ์ดํ„ฐ ์ƒํƒœ๊ฐ€ ์ผ๊ด€๋˜์–ด์•ผ ํ•œ๋‹ค.I๊ณ ๋ฆฝ์„ฑ (Isolation)๋™์‹œ์— ์‹คํ–‰๋˜๋Š” ํŠธ๋žœ์žญ์…˜์€ ์„œ๋กœ ๊ฐ„์„ญํ•˜์ง€ ์•Š์•„์•ผ ํ•œ๋‹ค.D์ง€์†์„ฑ (Durability)ํŠธ๋žœ์žญ์…˜์ด ์„ฑ๊ณตํ•˜๋ฉด ๊ฒฐ๊ณผ๋Š” ์˜๊ตฌํžˆ ๋ณด์กด๋˜์–ด์•ผ ํ•œ๋‹ค. ๐Ÿ” ๊ฐ ์†์„ฑ ์ž์„ธํžˆ ์•Œ์•„๋ณด๊ธฐ1๏ธโƒฃ A - ์›์ž์„ฑ (Atomicity)๐Ÿ“Œ ํŠธ๋žœ์žญ์…˜ ๋‚ด ๋ชจ๋“  ์ž‘์—…์€ ์ „๋ถ€ ์„ฑ๊ณตํ•˜๊ฑฐ๋‚˜, ์ „๋ถ€ .. 2025. 7. 24.
[Java] SOLID ์›์น™ ์ •๋ฆฌ: ๊ฐ์ฒด์ง€ํ–ฅ ์„ค๊ณ„์˜ 5๊ฐ€์ง€ ํ•ต์‹ฌ ๐Ÿ“ฆ SOLID ์›์น™์ด๋ž€?SOLID๋Š” ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ(OOP)์˜ 5๊ฐ€์ง€ ํ•ต์‹ฌ ์„ค๊ณ„ ์›์น™์„ ๋‚˜ํƒ€๋‚ด๋Š” ์•ฝ์–ด๋‹ค.์ฝ”๋“œ์˜ ์œ ์—ฐ์„ฑ, ํ™•์žฅ์„ฑ, ์œ ์ง€๋ณด์ˆ˜์„ฑ์„ ๋†’์ด๊ธฐ ์œ„ํ•ด ๊ณ ์•ˆ๋œ ์„ค๊ณ„ ์ง€์นจ์œผ๋กœ, ํด๋ž˜์Šค ๊ฐ„์˜ ๊ฒฐํ•ฉ๋„๋ฅผ ๋‚ฎ์ถ”๊ณ  ๋ณ€๊ฒฝ์— ์œ ์—ฐํ•œ ๊ตฌ์กฐ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ค€๋‹ค. โœ… SOLID 5๊ฐ€์ง€ ์›์น™ ์š”์•ฝ์•ฝ์–ด์ด๋ฆ„์˜๋ฏธS๋‹จ์ผ ์ฑ…์ž„ ์›์น™ (SRP)ํ•˜๋‚˜์˜ ํด๋ž˜์Šค๋Š” ํ•˜๋‚˜์˜ ์ฑ…์ž„๋งŒ ๊ฐ€์ ธ์•ผ ํ•œ๋‹ค.O๊ฐœ๋ฐฉ-ํ์‡„ ์›์น™ (OCP)ํ™•์žฅ์—๋Š” ์—ด๋ ค ์žˆ๊ณ , ๋ณ€๊ฒฝ์—๋Š” ๋‹ซํ˜€ ์žˆ์–ด์•ผ ํ•œ๋‹ค.L๋ฆฌ์Šค์ฝ”ํ”„ ์น˜ํ™˜ ์›์น™ (LSP)์ž์‹ ํด๋ž˜์Šค๋Š” ๋ถ€๋ชจ ํด๋ž˜์Šค๋ฅผ ๋Œ€์ฒดํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค.I์ธํ„ฐํŽ˜์ด์Šค ๋ถ„๋ฆฌ ์›์น™ (ISP)ํด๋ผ์ด์–ธํŠธ์— ํ•„์š”ํ•œ ์ธํ„ฐํŽ˜์ด์Šค๋งŒ ์ œ๊ณตํ•œ๋‹ค.D์˜์กด ์—ญ์ „ ์›์น™ (DIP)๊ตฌํ˜„์ด ์•„๋‹Œ ์ถ”์ƒ(์ธํ„ฐํŽ˜์ด์Šค)์— ์˜์กดํ•ด์•ผ ํ•œ๋‹ค. ๐Ÿ” ๊ฐ ์›์น™ ์ž์„ธํžˆ ์•Œ์•„๋ณด๊ธฐ1๏ธ.. 2025. 7. 24.
[๋„คํŠธ์›Œํฌ] TCP์™€ UDP์˜ ์ฐจ์ด์  ์™„๋ฒฝ ์ •๋ฆฌ! ๐Ÿ“ก TCP์™€ UDP๋Š” ์–ธ์ œ, ์™œ ์‚ฌ์šฉํ•˜๋Š”๊ฐ€?๋„คํŠธ์›Œํฌ ๋ฉด์ ‘์—์„œ ๊ฑฐ์˜ ๋น ์ง€์ง€ ์•Š๋Š” ๋‹จ๊ณจ ์งˆ๋ฌธ ์ค‘ ํ•˜๋‚˜.."TCP์™€ UDP์˜ ์ฐจ์ด์ ์€?"TCP์™€ UDP๋Š” ์ „์†ก ๊ณ„์ธต(OSI 4๊ณ„์ธต)์˜ ๋Œ€ํ‘œ์ ์ธ ํ”„๋กœํ† ์ฝœ์ด๋ฉฐ, ์‹ ๋ขฐ์„ฑ vs ์†๋„๋ผ๋Š” ๊ด€์ ์œผ๋กœ ์ž์ฃผ ๋น„๊ต๋œ๋‹ค. ๐Ÿงฑ ๊ธฐ๋ณธ ๊ฐœ๋…๐Ÿ“ฆ TCP (Transmission Control Protocol)์—ฐ๊ฒฐ ์ง€ํ–ฅํ˜• ํ”„๋กœํ† ์ฝœ๊ฐ€์ƒ ํšŒ์„ (3-way handshake)์„ ํ†ตํ•ด ์—ฐ๊ฒฐ ์„ค์ •์‹ ๋ขฐ์„ฑ ๋ณด์žฅ: ํ๋ฆ„ ์ œ์–ด, ํ˜ผ์žก ์ œ์–ด, ์˜ค๋ฅ˜ ์ œ์–ด์†๋„๋Š” ๋А๋ฆฌ์ง€๋งŒ ๋ฐ์ดํ„ฐ ์†์‹ค ์—†๋Š” ์ „์†ก ๋ณด์žฅํŒŒ์ผ ์ „์†ก, ์ด๋ฉ”์ผ, ์›น ์š”์ฒญ(HTTP/1.1, HTTP/2) ๋“ฑ์— ์‚ฌ์šฉ๐Ÿ“ฆ UDP (User Datagram Protocol)๋น„์—ฐ๊ฒฐํ˜• ํ”„๋กœํ† ์ฝœ๋ฐ์ดํ„ฐ๊ทธ๋žจ ๋‹จ์œ„ ์ „์†ก (์ž‘๊ณ  ๋น ๋ฆ„, ์ˆœ์„œ ๋ณด์žฅ ์—†์Œ)์‹ ๋ขฐ์„ฑ ์—†์Œ → .. 2025. 7. 21.
[๋„คํŠธ์›Œํฌ] https://www.google.com ์ ‘์† ์‹œ ์ผ์–ด๋‚˜๋Š” ์ผ ์‰ฝ๊ฒŒ ์ •๋ฆฌ! ๐Ÿ’ฌ ๋ฉด์ ‘ ๋‹จ๊ณจ ์งˆ๋ฌธ!"https://www.google.com์— ์ ‘์†ํ•˜๋ฉด ์–ด๋–ค ์ผ์ด ์ผ์–ด๋‚ ๊นŒ์š”?"๋ฉด์ ‘๊ด€ ์ž…์žฅ์—์„  ํ•œ ๋ฒˆ์˜ ์งˆ๋ฌธ์œผ๋กœ ๋‹ค์–‘ํ•œ ๋„คํŠธ์›Œํฌ ์ง€์‹์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š” ์ข‹์€ ์งˆ๋ฌธ์ด๊ธฐ ๋•Œ๋ฌธ์— ์ž์ฃผ ๋“ฑ์žฅํ•œ๋‹ค.OSI 7๊ณ„์ธต๊ณผ ์—ฐ๊ด€ ์ง€์–ด ์„ค๋ช…ํ•ด ๋ณด๋ผ๋Š” ์š”๊ตฌ๋„ ์ž์ฃผ ์žˆ๋‹ค. ๐ŸŒ ์›น ์ ‘์†์˜ ์ „์ฒด ํ๋ฆ„๋ธŒ๋ผ์šฐ์ €๊ฐ€ URL์— ์ ํžŒ ๊ฐ’์„ ํŒŒ์‹ฑํ•ด์„œ HTTP Request Message๋ฅผ ๋งŒ๋“ค๊ณ  OS์— ์ „์†ก ์š”์ฒญ์„ ํ•œ๋‹ค. ์ด๋•Œ, Domain์œผ๋กœ ์š”์ฒญ์„ ๋ณด๋‚ผ ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— DNS Lookup์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.DNS Lookup ๊ณผ์ •์€ ํฌ๋กฌ์˜ ๊ฒฝ์šฐ ๋ธŒ๋ผ์šฐ์ € → hosts ํŒŒ์ผ → DNS Cache์˜ ์ˆœ์„œ๋กœ ๋„๋ฉ”์ธ์— ๋งค์นญ๋˜๋Š” ip๋ฅผ ์ฐพ๋Š”๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ์„ค๋ช…ํ•˜๋Š” DNS Lookup์€ ๋ฃจํŠธ ๋„๋ฉ”์ธ ์„œ๋ฒ„์—์„œ๋ถ€ํ„ฐ ์„œ๋ธŒ ๋„๋ฉ”์ธ ์„œ๋ฒ„ ์ˆœ์œผ๋กœ .. 2025. 7. 21.