CS

    equals() ์™€ hashcode()

    equals() ์™€ hashcode() ๋ฉ”์„œ๋“œ์˜ ์—ญํ• ๊ณผ ๊ด€๊ณ„์— ๋Œ€ํ•ด์„œ ์ƒ๊ฐํ•ด๋ณด์ž. 1๏ธโƒฃ ๋™์ผ์„ฑ๊ณผ ๋™๋“ฑ์„ฑ ์ผ๋ฐ˜์ ์œผ๋กœ ๋™์ผ์„ฑ์€ ๋ฉ”๋ชจ๋ฆฌ์ƒ ๋™์ผํ•œ ์œ„์น˜์— ์žˆ๋Š”์ง€๋ฅผ ํŒ๋‹จํ•˜๊ณ , ๋™๋“ฑ์„ฑ์€ ๋‘ ๋ฐ์ดํ„ฐ๋ฅผ ๋…ผ๋ฆฌ์ ์œผ๋กœ ๊ฐ™์€ ๋ฐ์ดํ„ฐ๋กœ ์ทจ๊ธ‰ํ•  ์ˆ˜ ์žˆ๋Š”๊ฐ€๋ฅผ ํŒ๋‹จํ•œ๋‹ค. ์ž๋ฐ”์˜ ๋ฐ์ดํ„ฐ ํƒ€์ž…์€ ์›์‹œ ํƒ€์ž…(Primitive Type)๊ณผ ์ฐธ์กฐ ํƒ€์ž…(Reference Type) ๋ฐ์ดํ„ฐ ๋‘ ์ข…๋ฅ˜๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋‹ค. JVM์˜ ๋ฉ”๋ชจ๋ฆฌ ๊ตฌ์กฐ์—๋Š” ์Šคํƒ ์˜์—ญ๊ณผ ํž™ ์˜์—ญ์ด ์กด์žฌํ•˜๋Š”๋ฐ, ์›์‹œ ํƒ€์ž…์˜ ๊ฒฝ์šฐ ์Šคํƒ ์˜์—ญ์— ๊ฐ’์œผ๋กœ์„œ ๊ด€๋ฆฌ๋˜์ง€๋งŒ, ์ฐธ์กฐ ํƒ€์ž…์˜ ๊ฒฝ์šฐ ํž™ ์˜์—ญ์—์„œ ์ƒ์„ฑ๋˜๊ณ  ์Šคํƒ ์˜์—ญ์—์„œ๋Š” ํž™ ์˜์—ญ์˜ ์œ„์น˜๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•œ๋‹ค. public class Main { public static void main(String[] args) { int port ..

    Hash ์ž๋ฃŒ๊ตฌ์กฐ์™€ ํ•ด์‹œ ์ถฉ๋Œ

    Hash Table ์ด๋ž€ Hash Table์€ ๋ฐ์ดํ„ฐ๋ฅผ key-value ํ˜•์‹์œผ๋กœ ๋ณด๊ด€ํ•˜์—ฌ ๊ฒ€์ƒ‰ · ์‚ฝ์ž… · ์‚ญ์ œ๋ฅผ O(1) ์‹œ๊ฐ„ ๋ณต์žก๋„๋กœ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ์ž๋ฃŒ๊ตฌ์กฐ์ด๋‹ค. Hash Table์€ key ๊ฐ’์„ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃจ๊ธฐ ๋•Œ๋ฌธ์—, key ๊ฐ’์€ ๊ณ ์œ ํ•ด์•ผํ•œ๋‹ค. ์ด๋Ÿฌํ•œ ๊ณ ์œ ํ•œ key ๊ฐ’์„ ๋งŒ๋“œ๋Š” ์ž‘์—…์€ ํ•ด์‹œ ํ•จ์ˆ˜๊ฐ€ ๋‹ด๋‹นํ•˜๋Š”๋ฐ, ๋Œ€ํ‘œ์ ์œผ๋กœ๋Š” key ๊ฐ’์˜ ASCII ๊ฐ’์„ ํ•ฉํ•˜์—ฌ ๋งŒ๋“œ๋Š” ๊ฐ„๋‹จํ•œ ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค. ์ด๋Ÿฌํ•œ ํ•ด์‹œ ํ•จ์ˆ˜๊ฐ€ key๋ฅผ ๋งŒ๋“œ๋Š” ๊ณผ์ •์—์„œ, ์˜๋„ํ•˜์ง€ ์•Š๊ฒŒ ์šฐ์—ฐํžˆ key ๊ฐ’์ด ์ผ์น˜ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ ๐Ÿ’ก ์ด๋ฅผ ํ•ด์‹œ ์ถฉ๋Œ์ด๋ผ๊ณ  ํ•œ๋‹ค. ํ•ด์‹œ ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•˜๋ฉด, key ๊ฐ’์ด ์ค‘๋ณต๋˜์–ด ๋ฐ์ดํ„ฐ๊ฐ€ ์‚ฌ๋ผ์งˆ ์ˆ˜ ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ ํ•ด์‹œ ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•˜๋ฉด ๋Œ€์ฒ˜ํ•ด์•ผํ•œ๋‹ค. ๋Œ€ํ‘œ์ ์ธ ๋ฐฉ๋ฒ•์œผ๋กœ๋Š” ์ฒด์ธ๋ฒ• (Seperate C..

    ๋ณ‘ํ•ฉ ์ •๋ ฌ (Merge Sort) ์„ ๊ตฌํ˜„ํ•ด๋ณด์ž

    ์ •๋ ฌ์„ ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์€ ์—ฌ๋Ÿฌ๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค. ๋Œ€ํ‘œ์ ์œผ๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค. ๐Ÿ’ก ์ •๋ ฌ์˜ ์ข…๋ฅ˜์™€ ๋ฐฉ์‹ 1. ๋ฒ„๋ธ” ์ •๋ ฌ : 2๊ฐœ์˜ ์›์†Œ๋ฅผ ๊ณ„์† ๋น„๊ตํ•ด๋‚˜๊ฐ€๋ฉฐ ๊ฐ’์ด ํฐ ์›์†Œ๊ฐ€ ์•ž์— ์žˆ๋Š” ๊ฒฝ์šฐ ์œ„์น˜๋ฅผ ๊ตํ™˜ํ•œ๋‹ค. ์ œ์ผ ํฐ ๊ฐ’(์˜ค๋ฆ„์ฐจ์ˆœ์˜ ๊ฒฝ์šฐ)์„ ์ œ์ผ ๋’ค๋กœ ๋ณด๋‚ด์–ด ์ตœ์ข…์ ์œผ๋กœ ์ •๋ ฌ๋œ๋‹ค. ์‹œ๊ฐ„ ๋ณต์žก๋„๋Š” O(N^2)์œผ๋กœ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ๋งŒ์•ฝ ํ•œ๋ฒˆ ์ˆœํšŒํ–ˆ์„ ๋•Œ ๋‘ ์›์†Œ๊ฐ„ ์œ„์น˜๊ฐ€ ๋ณ€ํ•œ ์ ์ด ์—†๋‹ค๋ฉด ์ˆœํšŒ๋ฅผ ๋น ์ ธ๋‚˜๊ฐ€๋Š” ๋ฐฉ์‹์œผ๋กœ ์ตœ์ ํ™”๋ฅผ ํ•  ์ˆ˜ ์žˆ๋‹ค. 2. ์„ ํƒ ์ •๋ ฌ : ์›์†Œ๋“ค์„ ์ˆœํšŒํ•˜์—ฌ ๊ฐ€์žฅ ์ž‘์€ ๊ฐ’์„ ์ฐพ์€ ๋’ค(์„ ํƒ), ์ œ์ผ ์•ž ์›์†Œ์™€ ์œ„์น˜๋ฅผ ๋ฐ”๊ฟˆ์œผ๋กœ์„œ ์ž‘์€ ๊ฐ’์ด ๊ณ„์† ์•ž์œผ๋กœ ์ด๋™ํ•˜๋ฉด์„œ ์ตœ์ข…์ ์œผ๋กœ ์ •๋ ฌ๋œ๋‹ค. ์‹œ๊ฐ„ ๋ณต์žก๋„๋Š” O(N^2)์œผ๋กœ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. 3. ์‚ฝ์ž… ์ •๋ ฌ : 2๋ฒˆ์งธ ์›์†Œ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด์„œ N๋ฒˆ์งธ ์›์†Œ๊นŒ์ง€ N-1๊นŒ์ง€์˜ ..

    Linked List ๊ตฌํ˜„ํ•ด๋ณด๊ธฐ

    ๋ฆฌ์ŠคํŠธ์—๋Š” ์—ฐ์†ํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์— ์ €์žฅ๋˜์–ด ์žˆ๋Š” ArrayList์™€ ๊ฐ๊ฐ์˜ ๋ฐ์ดํ„ฐ์•ˆ์— ๋‹ค์Œ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๊ฐ–๊ณ  ์žˆ์–ด ์—ฐ๊ฒฐ๋˜๋Š” LinkedList๊ฐ€ ์žˆ๋‹ค. ๊ฐ ์ž๋ฃŒ๊ตฌ์กฐ์˜ ํŠน์ง•์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. 1๏ธโƒฃ ArrayList 1. ๋ฐ์ดํ„ฐ๊ฐ€ ์—ฐ์†์ ์œผ๋กœ ๋‚˜์—ด๋˜์–ด ์žˆ์–ด, ํŠน์ • ์ธ๋ฑ์Šค์˜ ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผํ•˜๋Š” ๊ฒฝ์šฐ O(1) ๋กœ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค. 2. ์„ ํ˜• ํƒ์ƒ‰์˜ ๊ฒฝ์šฐ O(n), ์ •๋ ฌ๋˜์–ด ์žˆ์„ ๋•Œ ์ด๋ถ„ํƒ์ƒ‰์˜ ๊ฒฝ์šฐ O(logN) ์œผ๋กœ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค. 3. ์ค‘๊ฐ„ ์œ„์น˜์— ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฝ์ž… · ์‚ญ์ œ ํ•˜๋Š” ๊ฒฝ์šฐ, ๋‚˜๋จธ์ง€ ์›์†Œ๋“ค์˜ ์œ„์น˜๋ฅผ ์˜ฎ๊ฒจ์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— O(N) ์ด๋‹ค. 2๏ธโƒฃ LinkedList 1. ํŠน์ • ์ธ๋ฑ์Šค์— ์œ„์น˜ํ•œ ์›์†Œ์— ์ ‘๊ทผํ•˜๋Š” ๊ฒฝ์šฐ์—, ์ˆœํšŒ๋ฅผ ํ•ด์„œ ์ฐพ์•„์•ผ ํ•˜๋ฏ€๋กœ O(N) ์ด๋‹ค. 2. ๋‹จ์ผ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ์˜ ๊ฒฝ์šฐ, ์‹œ์ž‘ ๋ถ€๋ถ„..

    ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•œ ๊ธฐ๋ฒ•

    ๋„์„œ ์‰ฝ๊ฒŒ ๋ฐฐ์šฐ๋Š” ์šด์˜์ฒด์ œ์™€ ๊ฐ•์˜ ์šด์˜์ฒด์ œ-๋ฐ˜ํšจ๊ฒฝ ๋ฅผ ๋ณด๊ณ  ์ •๋ฆฌํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค. ๐Ÿ“Œ ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ๋ž€? ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ๋Š” ํฌ๊ธฐ๊ฐ€ ๋‹ค๋ฅธ ๋ฌผ๋ฆฌ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ์ผ๊ด€๋˜๊ฒŒ ํ”„๋กœ์„ธ์Šค๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ์ˆ ์ด๋‹ค. ํ˜„๋Œ€ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ์˜ ๊ฐ€์žฅ ํฐ ํŠน์ง•์€ ๋ฌผ๋ฆฌ ๋ฉ”๋ชจ๋ฆฌ์˜ ํฌ๊ธฐ์™€ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์˜ฌ๋ผ๊ฐˆ ๋ฉ”๋ชจ๋ฆฌ์˜ ์œ„์น˜๋ฅผ ์‹ ๊ฒฝ์“ฐ์ง€ ์•Š๊ณ  ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํ•˜๋„๋ก ์ง€์›ํ•œ๋‹ค. ๋ฌผ๋ฆฌ ๋ฉ”๋ชจ๋ฆฌ์˜ ํฌ๊ธฐ์™€ ์ƒ๊ด€์—†์ด ํ”„๋กœ์„ธ์Šค์— ์ปค๋‹ค๋ž€ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ์ œ๊ณตํ•˜๋Š” ๊ธฐ์ˆ ์„ ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ๋ผ๊ณ  ํ•œ๋‹ค. โ“ ์ด๋ก ์ ์œผ๋กœ ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ๋Š” ๋ฌดํ•œ๋Œ€์˜ ํฌ๊ธฐ์ธ๋ฐ, ์–ด๋–ป๊ฒŒ ๊ฐ€๋Šฅํ•œ ๊ฒƒ์ผ๊นŒ? ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ ์‹œ์Šคํ…œ์—์„œ๋Š” ๋ฌผ๋ฆฌ ๋ฉ”๋ชจ๋ฆฌ์˜ ๋‚ด์šฉ ์ค‘ ์ผ๋ถ€๋ฅผ ํ•˜๋“œ๋””์Šคํฌ์˜ ์ผ๋ถ€ ๊ณต๊ฐ„์ธ ์Šค์™‘ ์˜์—ญ์œผ๋กœ ์˜ฎ๊ธด๋‹ค. ์Šค์™‘ ์˜์—ญ์€ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ์ž๊ฐ€ ๊ด€๋ฆฌํ•˜๋Š” ํ•˜๋“œ๋””์Šคํฌ์˜ ์˜์—ญ์ด๋‹ค. ๋ฉ”๋ชจ๋ฆฌ์—์„œ ์Šค์™‘ ์˜์—ญ์œผ๋กœ ๋ณด๋‚ด๋Š” ๊ฒƒ์„ ์Šค์™‘ ์•„์›ƒ์ด๋ผ ๋ถ€..

    ๋ฌผ๋ฆฌ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ

    ๋„์„œ ์‰ฝ๊ฒŒ ๋ฐฐ์šฐ๋Š” ์šด์˜์ฒด์ œ์™€ ๊ฐ•์˜ ์šด์˜์ฒด์ œ-๋ฐ˜ํšจ๊ฒฝ ๋ฅผ ๋ณด๊ณ  ์ •๋ฆฌํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค. ๐Ÿ“Œ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ์ž ๋ชจ๋“  ํ”„๋กœ๊ทธ๋žจ์€ ์‹คํ–‰๋˜๊ธฐ ์œ„ํ•ด ๋ฉ”๋ชจ๋ฆฌ๋กœ ์˜ฌ๋ผ์™€์•ผ ํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์‹œ๋ถ„ํ•  ์‹œ์Šคํ…œ์—์„œ๋Š” ์—ฌ๋Ÿฌ ํ”„๋กœ๊ทธ๋žจ์ด ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ผ์™€์žˆ๊ธฐ ๋•Œ๋ฌธ์—, ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ ์ ˆํ•˜๊ฒŒ ๊ด€๋ฆฌํ•˜๋Š” ๊ฒƒ์€ ์„ฑ๋Šฅ์— ์ค‘์š”ํ•œ ์˜ํ–ฅ์„ ์ค€๋‹ค. ์ด๋Ÿฌํ•œ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ๋ฅผ, ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ์ž (Memory Manage Unit, MMU) ๋ผ๋Š” ํ•˜๋“œ์›จ์–ด๊ฐ€ ๋‹ด๋‹นํ•œ๋‹ค. ๊ฐ€์ ธ์˜ค๊ธฐ ์ž‘์—… ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ์ž๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์š”์ฒญํ•˜๋ฉด ํ”„๋กœ์„ธ์Šค์™€ ๋ฐ์ดํ„ฐ๋ฅผ ๋ชจ๋‘ ๋ฉ”๋ชจ๋ฆฌ๋กœ ๊ฐ€์ ธ์˜จ๋‹ค. ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์ถฉ๋ถ„ํ•˜์ง€ ์•Š๋‹ค๋ฉด, ์ผ๋ถ€๋งŒ ๋จผ์ € ๊ฐ€์ ธ์˜ค๊ณ  ๋‚˜๋จธ์ง€ ๋ฉ”๋ชจ๋ฆฌ๋Š” ์ง€์†์ ์œผ๋กœ ๊ฐ€์ ธ์˜ค๋Š” ๊ฒฝ์šฐ๋„ ์žˆ๊ณ  ์‚ฌ์šฉ์ž์˜ ์š”์ฒญ์ด ์—†๋”๋ผ๋„ ์•ž์œผ๋กœ ํ•„์š”ํ•  ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒ๋˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋ฏธ๋ฆฌ ๊ฐ€์ ธ์˜ค๊ธฐ๋„ ํ•œ๋‹ค. ๋ฐฐ์น˜ ์ž‘์—… ๊ฐ€์ ธ์˜จ ํ”„๋กœ์„ธ์Šค์™€ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฉ”๋ชจ..

    ๊ต์ฐฉ ์ƒํƒœ(DeadLock)

    ๋„์„œ ์‰ฝ๊ฒŒ ๋ฐฐ์šฐ๋Š” ์šด์˜์ฒด์ œ์™€ ๊ฐ•์˜ ์šด์˜์ฒด์ œ-๋ฐ˜ํšจ๊ฒฝ ๋ฅผ ๋ณด๊ณ  ์ •๋ฆฌํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค. ๐Ÿ“Œ ๊ต์ฐฉ ์ƒํƒœ๋ž€? ํ”„๋กœ์„ธ์Šค๋“ค์ด ์„œ๋กœ๊ฐ€ ๊ฐ€์ง„ ์ž์›์„ ๊ธฐ๋‹ค๋ฆฌ๋ฉฐ ๋Œ€๊ธฐ์ค‘์ธ ์ƒํƒœ์ด๋‹ค. CPU ์Šค์ผ€์ค„๋ง ํŒŒํŠธ์— ๋‚˜์™”๋˜ ์•„์‚ฌ ํ˜„์ƒ๊ณผ๋Š” ๋‹ค๋ฅธ๋ฐ, ์•„์‚ฌ ํ˜„์ƒ์˜ ๊ฒฝ์šฐ ํŠน์ • ํ”„๋กœ์„ธ์Šค์˜ ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๊ณ„์† ๋ฐ€๋ ค ์žฅ๊ธฐ๊ฐ„ CPU๋ฅผ ํ• ๋‹น๋ฐ›์ง€ ๋ชปํ•˜๋Š” ๊ฒƒ์ด๊ณ  ๊ต์ฐฉ์ƒํƒœ๋Š” ์—ฌ๋Ÿฌ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ž‘์—…์„ ํ•˜๋‹ค๋ณด๋‹ˆ ์„œ๋กœ์˜ ์ž์›์„ ํ• ๋‹น๋ฐ›๊ธฐ ์œ„ํ•ด ๋ฌดํ•œ์ • ๋Œ€๊ธฐํ•˜๋Š” ์ƒํƒœ์ธ ๊ฒƒ์ด๋‹ค. ๊ต์ฐฉ ์ƒํƒœ๋Š” ๋‹ค์Œ 4๊ฐ€์ง€ ์กฐ๊ฑด์„ ๐Ÿ’ก ๋ชจ๋‘ ๋งŒ์กฑํ–ˆ์„ ๋•Œ, ๋ฐœ์ƒํ•œ๋‹ค. 1. ์ƒํ˜ธ ๋ฐฐ์ œ 2. ๋น„์„ ์  3. ์ ์œ ์™€ ๋Œ€๊ธฐ 4. ์›ํ˜•๋Œ€๊ธฐ ์ƒํ˜ธ ๋ฐฐ์ œ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ์ž์›์€ ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค์™€ ๊ณต์œ ํ•  ์ˆ˜ ์—†๋Š” ๋ฐฐํƒ€์ ์ธ ์ž์›์ด์–ด์•ผ ํ•œ๋‹ค. ์ฆ‰, ์ž์›์ด ์ž„๊ณ„๊ตฌ์—ญ์œผ๋กœ์„œ ๋ณดํ˜ธ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์—ฌ๋Ÿฌ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋™์‹œ์— ์ž์›์„ ์‚ฌ์šฉํ•  ..

    ํ”„๋กœ์„ธ์Šค ๋™๊ธฐํ™”

    ๋„์„œ ์‰ฝ๊ฒŒ ๋ฐฐ์šฐ๋Š” ์šด์˜์ฒด์ œ์™€ ๊ฐ•์˜ ์šด์˜์ฒด์ œ-๋ฐ˜ํšจ๊ฒฝ ๋ฅผ ๋ณด๊ณ  ์ •๋ฆฌํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค. ๐Ÿ“Œ Race Condition 2๊ฐœ ์ด์ƒ์˜ ํ”„๋กœ์„ธ์Šค์‚ฌ ๊ณต์œ  ์ž์›์„ ์ฝ๊ฑฐ๋‚˜ ์“ฐ๋Š” ์ƒํ™ฉ์„ Race Condition ์ด๋ผ๊ณ  ํ•œ๋‹ค. Race Condition์ด ๋ฐœ์ƒํ•˜๋ฉด ๊ณต์œ  ์ž์› ์ ‘๊ทผ ์ˆœ์„œ์— ๋”ฐ๋ผ ์‹คํ–‰ ๊ฒฐ๊ณผ๊ฐ€ ๋‹ฌ๋ผ์งˆ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ฐœ์ƒํ•˜์ง€ ์•Š๋„๋ก ํ•ด์•ผํ•œ๋‹ค. kernel ์ˆ˜ํ–‰ ์ค‘ ์ธํ„ฐ๋ŸฝํŠธ ๋ฐœ์ƒ ์‹œ ์ปค๋„ ๋ชจ๋“œ๋กœ count๋ฅผ ์ฆ๊ฐ€์‹œํ‚ค๊ณ  ์žˆ๋˜ ์™€์ค‘์— ์ธํ„ฐ๋ŸฝํŠธ๊ฐ€ ๋“ค์–ด์˜ค๋ฉด ์ธํ„ฐ๋ŸฝํŠธ ์ฒ˜๋ฆฌ ๋ฃจํ‹ด์œผ๋กœ ๋“ค์–ด๊ฐ„๋‹ค. ์ธํ„ฐ๋ŸฝํŠธ ์ž‘์—…์ด ์ปค๋„๋ชจ๋“œ๋กœ ์ˆ˜ํ–‰ํ•˜๋˜ count๋ฅผ ๊ฐ์†Œ์‹œํ‚ค๋Š” ์ž‘์—…์„ ์ง„ํ–‰ํ–ˆ๋‹ค. ๋‹ค์‹œ ์ปค๋„๋ชจ๋“œ๋กœ ๋Œ์•„์™€์„œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ• ๋•Œ์—๋Š”, ์ธํ„ฐ๋ŸฝํŠธ์˜ ์ž‘์—…์ด ๋ฐ˜์˜๋œ count๊ฐ€ ์•„๋‹Œ ์ด์ „์— ์ง„ํ–‰์ค‘์ด์—ˆ๋˜ ์ž‘์—…์„ ์ด์–ด์„œ ์ˆ˜ํ–‰ํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ์ธํ„ฐ๋ŸฝํŠธ๊ฐ€ ํ–ˆ๋˜ ์ž‘์—…..

    CPU ์Šค์ผ€์ค„๋ง

    ๋„์„œ ์‰ฝ๊ฒŒ ๋ฐฐ์šฐ๋Š” ์šด์˜์ฒด์ œ์™€ ๊ฐ•์˜ ์šด์˜์ฒด์ œ-๋ฐ˜ํšจ๊ฒฝ ๋ฅผ ๋ณด๊ณ  ์ •๋ฆฌํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค. ์Šค์ผ€์ค„๋ง์€ ์—ฌ๋Ÿฌ ํ”„๋กœ์„ธ์Šค์˜ ์ƒํ™ฉ์„ ๊ณ ๋ คํ•˜์—ฌ CPU์™€ ์‹œ์Šคํ…œ ์ž์›์„ ์–ด๋–ป๊ฒŒ ๋ฐฐ์ •ํ• ์ง€ ๊ฒฐ์ •ํ•˜๋Š” ์ผ์„ ๋งํ•œ๋‹ค. ๐Ÿ“Œ ์Šค์ผ€์ค„๋ง ์ˆ˜์ค€ ๊ณ ์ˆ˜์ค€ ์Šค์ผ€์ค„๋ง ์žฅ๊ธฐ ์Šค์ผ€์ค„๋ง ์ด๋ผ๊ณ ๋„ ํ•œ๋‹ค. ๊ณ ์ˆ˜์ค€ ์Šค์ผ€์ค„๋ง์€ ์‹œ์Šคํ…œ ๋‚ด์˜ ์ „์ฒด ์ž‘์—… ์ˆ˜๋ฅผ ์กฐ์ ˆํ•˜๋Š” ๊ฒƒ์„ ๋งํ•œ๋‹ค. ์‹œ์Šคํ…œ ์ƒํ™ฉ์„ ๊ณ ๋ คํ•˜์—ฌ ์–ด๋–ค ์ž‘์—…์„ ์Šน์ธํ• ์ง€, ๊ฑฐ๋ถ€ํ• ์ง€๋ฅผ ๊ฒฐ์ •ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋™์‹œ์— ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ํ”„๋กœ์„ธ์Šค์˜ ์ด ๊ฐœ์ˆ˜๊ฐ€ ์ •ํ•ด์ง„๋‹ค. ์ €์ˆ˜์ค€ ์Šค์ผ€์ค„๋ง ์–ด๋–ค ํ”„๋กœ์„ธ์Šค์— CPU๋ฅผ ํ• ๋‹นํ• ์ง€, ์–ด๋–ค ํ”„๋กœ์„ธ์Šค๋ฅผ ๋Œ€๊ธฐ ์ƒํƒœ๋กœ ๋ณด๋‚ผ์ง€ ๋“ฑ์„ ๊ฒฐ์ •ํ•œ๋‹ค. ์ฃผ๋กœ, ํ”„๋กœ์„ธ์Šค์˜ ์ƒํƒœ๋ฅผ ๊ด€๋ฆฌํ•˜๊ณ  ๋‹จ๊ธฐ ์Šค์ผ€์ค„๋ง ์ด๋ผ๊ณ ๋„ ํ•œ๋‹ค. ์ค‘๊ฐ„ ์ˆ˜์ค€ ์Šค์ผ€์ค„๋ง ์‹œ์Šคํ…œ์— ๋™์‹œ์— ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ํ”„๋กœ์„ธ์Šค์˜ ์ˆ˜๋ฅผ ๊ณ ์ˆ˜์ค€ ์Šค์ผ€์ค„๋ง์ด ์ •ํ•œ๋‹ค๋ฉด ์ค‘๊ฐ„ ์ˆ˜์ค€ ..

    ํ”„๋กœ์„ธ์Šค์™€ ์Šค๋ ˆ๋“œ

    ๋„์„œ ์‰ฝ๊ฒŒ ๋ฐฐ์šฐ๋Š” ์šด์˜์ฒด์ œ์™€ ๊ฐ•์˜ ์šด์˜์ฒด์ œ-๋ฐ˜ํšจ๊ฒฝ ๋ฅผ ๋ณด๊ณ  ์ •๋ฆฌํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค. ๐Ÿ“Œ ํ”„๋กœ๊ทธ๋žจ๊ณผ ํ”„๋กœ์„ธ์Šค ํ”„๋กœ๊ทธ๋žจ์€ ์ €์žฅ์žฅ์น˜์— ์ €์žฅ๋˜์–ด์žˆ๋Š” ์ •์ ์ธ ์ƒํƒœ์ด๋‹ค. ํ”„๋กœ์„ธ์Šค๋Š” ์‹คํ–‰์„ ์œ„ํ•ด ํ”„๋กœ๊ทธ๋žจ์ด ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ผ์˜จ ๋™์ ์ธ ์ƒํƒœ์ด๋‹ค. ๐Ÿ“Œ ํ”„๋กœ์„ธ์Šค์˜ 5 ๊ฐ€์ง€ ์ƒํƒœ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ผ๊ด„ ์ž‘์—…์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๋ฉด, ๋ฉ”๋ชจ๋ฆฌ์— ํ•˜๋‚˜์˜ ํ”„๋กœ์„ธ์Šค๋งŒ ์˜ฌ๋ ค๋†“๊ณ  ์‚ฌ์šฉํ•˜๋ฉด ๋˜์ง€๋งŒ ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๋Š” ํ•˜๋‚˜์˜ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ข…๋ฃŒ๋ ๋•Œ๊นŒ์ง€ ๋ฌดํ•œ์ • ๋Œ€๊ธฐํ•ด์•ผํ•œ๋‹ค. ๋”ฐ๋ผ์„œ, ์‹œ๋ถ„ํ•  ์ž‘์—… ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•œ๋‹ค. ์—ฌ๋Ÿฌ ํ”„๋กœ์„ธ์Šค์— CPU๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์‹œ๊ฐ„์„ ๋ถ„๋ฐฐํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋ฐ”๋€”๋•Œ๋งˆ๋‹ค ๋ฌธ๋งฅ๊ตํ™˜์ด๋ผ๋Š” ๋น„์šฉ์ด ๋ฐœ์ƒํ•˜์ง€๋งŒ, ์ผ๊ด„ ์ž‘์—… ์‹œ ์ƒ๊ธฐ๋Š” CPU์˜ ๋‚ญ๋น„๋ฅผ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ๋‹ค. 1. ์ƒ์„ฑ ์ƒํƒœ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ผ์™€ ์‹คํ–‰์ค€๋น„๋ฅผ ์™„๋ฃŒํ•œ ์ƒํƒœ์ด๋‹ค. ํ”„๋กœ์„ธ์Šค๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ..

    OSI ๋ชจ๋ธ

    OSI ๋ชจ๋ธ์ด๋ž€? OSI ๋ชจ๋ธ์€ ์ปดํ“จํ„ฐ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๊ธฐ ์œ„ํ•ด์„œ ์ปดํ“จํ„ฐ ๋‚ด๋ถ€์—์„œ ํ•˜๋Š” ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์ผ๋“ค์€ 7 ๊ณ„์ธต์œผ๋กœ ๋‚˜๋ˆˆ ๊ฒƒ์ด๋‹ค. ๐Ÿ’ก ํ†ต์‹ ์ด ์ผ์–ด๋‚˜๋Š” ๊ณผ์ •์„ ๋‹จ๊ณ„๋ณ„๋กœ ์•Œ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ํŠน์ •ํ•œ ๋‹จ๊ณ„์—์„œ ์ด์ƒ์ด ์ƒ๊ธฐ๋ฉด ๊ทธ ๊ณณ๋งŒ ์ˆ˜์ •ํ•˜๋ฉด ๋˜๊ธฐ ๋•Œ๋ฌธ์— ํŽธ๋ฆฌํ•˜๋‹ค. ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ๊ณ„, ์ผ€์ด๋ธ” ๋“ฑ๊ณผ ๊ด€๊ณ„ ์—†์ด ํ†ต์‹ ์„ ํ•˜๊ธฐ ์œ„ํ•ด ๊ณตํ†ต์œผ๋กœ ์‚ฌ์šฉํ•˜๊ธฐ๋กœ ์•ฝ์†ํ•œ ํ†ต์‹  ํ‘œ์ค€ ๊ทœ๊ฒฉ์ด๋‹ค. ๐Ÿ’ก TCP/IP ๋ชจ๋ธ์€ OSI ๋ชจ๋ธ์„ ๋ฐ”ํƒ•์œผ๋กœ ์‹ค์ƒํ™œ์— ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ๋งŒ๋“ค์–ด์กŒ๋‹ค. 1. ๋ฌผ๋ฆฌ ๊ณ„์ธต - ์ „์†ก ๋งค์ฒด์˜ ๋ฌผ๋ฆฌ์ (๊ธฐ๊ณ„์ , ์ „๊ธฐ์ ) ์ธํ„ฐํŽ˜์ด์Šค์— ๊ด€ํ•œ ๊ธฐ์ˆ  - ํ•˜๋“œ์›จ์–ด๋กœ ๊ตฌํ˜„ - ๋ฐ์ดํ„ฐ ์ „์†ก ์†๋„, ํด๋Ÿญ ๋™๊ธฐํ™”, ๋ฌผ๋ฆฌ์  ์—ฐ๊ฒฐ ํ˜•ํƒœ ๋ฌผ๋ฆฌ ๊ณ„์ธต์€ ์ „๊ธฐ ์‹ ํ˜ธ๋ฅผ ์ „๋‹ฌํ•˜๋Š” ๊ณ„์ธต์ด๋‹ค. ์ปดํ“จํ„ฐ๋Š” 0๊ณผ 1๋กœ ์ด๋ฃจ์–ด์ง„ ๋น„ํŠธ์—ด์„ ์‚ฌ์šฉํ•œ๋‹ค. ๋”ฐ๋ผ์„œ ํ†ต์‹ ์ด๋ผ..

    MySQL ์˜ตํ‹ฐ๋งˆ์ด์ €

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

    ์ข‹์€ ๊ฐ์ฒด ์ง€ํ–ฅ ์„ค๊ณ„์˜ 5๊ฐ€์ง€ ์›์น™ SOLID

    S : SRP(Single Reposibility Principle), ๋‹จ์ผ ์ฑ…์ž„ ์›์น™ ํ•œ ํด๋ž˜์Šค๋Š” ํ•˜๋‚˜์˜ ์ฑ…์ž„๋งŒ ๊ฐ€์ ธ์•ผ ํ•œ๋‹ค. ์ค‘์š”ํ•œ ๊ธฐ์ค€์€ ๋ณ€๊ฒฝ์ด๋‹ค. ๋ณ€๊ฒฝ์ด ๋ฐœ์ƒํ• ๋•Œ, ํŒŒ๊ธ‰ํšจ๊ณผ๊ฐ€ ์ ์œผ๋ฉด ๋‹จ์ผ ์ฑ…์ž„ ์›์น™, ์ฆ‰ SRP ์›์น™์„ ์ž˜ ๋”ฐ๋ฅธ ๊ฒƒ์ด๋‹ค. O : OCP(Open/Closed Principle), ๊ฐœ๋ฐฉ·ํ์‡„ ์›์น™ ํ™•์žฅ์—๋Š” ์—ด๋ ค์žˆ์–ด์•ผ ํ•˜๋‚˜, ๋ณ€๊ฒฝ์—๋Š” ๋‹ซํ˜€์žˆ์–ด์•ผ ํ•œ๋‹ค. ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜๊ณ  ์‹ถ์œผ๋ฉด, ์ˆ˜์ •ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ, ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•œ ์ƒˆ๋กœ์šด ํด๋ž˜์Šค๋ฅผ ํ•˜๋‚˜ ๋” ๋งŒ๋“ค์–ด์„œ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•œ๋‹ค. ๊ตฌํ˜„ ํด๋ž˜์Šค์™€ ์‹คํ–‰ํด๋ž˜์Šค๋ฅผ ์—ฐ๊ฒฐํ•ด์ฃผ๋Š” Config ํด๋ž˜์Šค์˜ ๋ณ€๊ฒฝ๋งŒ ์žˆ์œผ๋ฉด ๋ณ€ํ™”๋ฅผ ์œ ์—ฐํ•˜๊ฒŒ ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๊ตฌํ˜„ํด๋ž˜์Šค์—์„œ์˜ ์ง์ ‘์ ์ธ ์ˆ˜์ •์€ ํ•„์š”ํ•˜์ง€ ์•Š๋‹ค. L : LSP(Liskov Substitutuion Pr..

    ์šด์˜์ฒด์ œ๋ž€?

    ๋„์„œ ์‰ฝ๊ฒŒ ๋ฐฐ์šฐ๋Š” ์šด์˜์ฒด์ œ์™€ ๊ฐ•์˜ ์šด์˜์ฒด์ œ-๋ฐ˜ํšจ๊ฒฝ ๋ฅผ ๋ณด๊ณ  ์ •๋ฆฌํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค. ๐Ÿ“Œ ์šด์˜์ฒด์ œ๋ž€? ์šด์˜์ฒด์ œ๋Š” ์ปดํ“จํ„ฐ ํ•˜๋“œ์›จ์–ด ๋ฐ”๋กœ ์œ„์— ์„ค์น˜๋˜์–ด, ์‚ฌ์šฉ์ž ๋ฐ ๋‹ค๋ฅธ ๋ชจ๋“  ์†Œํ”„ํŠธ์›จ์–ด์™€ ํ•˜๋“œ์›จ์–ด๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด์ด๋‹ค. ๐Ÿ’ก ์‚ฌ์šฉ์ž์—๊ฒŒ ํŽธ๋ฆฌํ•œ ์ธํ„ฐํŽ˜์ด์Šค ํ™˜๊ฒฝ์„ ์ œ๊ณตํ•˜๊ณ  ์ปดํ“จํ„ฐ ์‹œ์Šคํ…œ์˜ ์ž์›์„ ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด์ด๋‹ค. ๋Œ€ํ‘œ์ ์ธ ์˜ˆ๋กœ ์œˆ๋„์šฐ, Mac OS, Linux, Unix ๋“ฑ์ด ์šด์˜์ฒด์ œ๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค. ์šด์˜์ฒด์ œ๊ฐ€ ์—†๋Š” ๊ธฐ๊ณ„๋Š” ๋งŒ๋“ค ๋‹น์‹œ์— ๊ตฌํ˜„ํ•œ ๊ธฐ๋Šฅ ์™ธ์— ๋‹ค๋ฅธ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ์„ฑ๋Šฅ์„ ํ–ฅ์ƒํ•  ์ˆ˜ ์—†๋‹ค. ์šด์˜์ฒด์ œ๊ฐ€ ์žˆ๋Š” ๊ธฐ๊ณ„๋Š”, ๊ธฐ๋Šฅ์˜ ์ถ”๊ฐ€๋‚˜ ์„ฑ๋Šฅ ๋ณ€๊ฒฝ์ด ๊ฐ€๋Šฅํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ด ๊ฐ€๋Šฅํ•œ ๊ธฐ๊ณ„์ด๋‹ค. ์ „ํ™”๊ธฐ์™€ ์Šค๋งˆํŠธํฐ์„ ๋น„๊ตํ•ด๋ณด๋ฉด, ์ „ํ™”๊ธฐ๋Š” ๋งŒ๋“ค์–ด์ง„ ๊ธฐ๋Šฅ์ธ ์ „ํ™”๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ณ , ์Šค๋งˆํŠธํฐ์€ ์ƒˆ๋กœ์šด ํ”„๋กœ๊ทธ๋žจ์„ ..

    Index(์ธ๋ฑ์Šค)์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด์ž

    Real MySQL ์ฑ…์„ ๊ณต๋ถ€ํ•˜๋ฉด์„œ ์ •๋ฆฌํ•œ ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์„ฑ๋Šฅ ํŠœ๋‹์€ ์–ด๋–ป๊ฒŒ ๋””์Šคํฌ I/O๋ฅผ ์ค„์ด๋Š๋ƒ๊ฐ€ ๊ด€๊ฑด์ผ๋•Œ๊ฐ€ ์ƒ๋‹นํžˆ ๋งŽ๋‹ค. ๐Ÿ’ก ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ…Œ์ด๋ธ”์˜ ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ๊ฒ€์ƒ‰ํ•ด์„œ ์›ํ•˜๋Š” ๊ฒฐ๊ณผ๋ฅผ ๊ฐ€์ ธ์˜ค๋ ค๋ฉด ์‹œ๊ฐ„์ด ์˜ค๋ž˜ ๊ฑธ๋ฆฐ๋‹ค. ๊ทธ๋ž˜์„œ ์นผ๋Ÿผ์˜ ๊ฐ’๊ณผ ํ•ด๋‹น ๋ ˆ์ฝ”๋“œ๊ฐ€ ์ €์žฅ๋œ ์ฃผ์†Œ๋ฅผ ํ‚ค์™€ ๊ฐ’์˜ ์Œ์œผ๋กœ ์‚ผ์•„ ์ธ๋ฑ์Šค๋ฅผ ๋งŒ๋“ค์–ด ๋‘”๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์นผ๋Ÿผ์˜ ๊ฐ’์„ ์ฃผ์–ด์ง„ ์ˆœ์„œ๋กœ ๋ฏธ๋ฆฌ ์ •๋ ฌํ•ด์„œ ๋ณด๊ด€ํ•œ๋‹ค. ๐Ÿ’ก ์กฐํšŒ ์š”์ฒญ ์‹œ, ๋ฐ์ดํ„ฐ๊ฐ€ ์ •๋ ฌ๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋นจ๋ฆฌ ์›ํ•˜๋Š” ๊ฐ’์„ ์ฐพ์•„์˜ฌ ์ˆ˜ ์žˆ๋‹ค. (SELECT) ๐Ÿšจ ๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ๋  ๋•Œ ๋งˆ๋‹ค ํ•ญ์ƒ ๊ฐ’์„ ์ •๋ ฌํ•ด์•ผ ํ•˜๋ฏ€๋กœ ์ €์žฅํ•˜๋Š” ๊ณผ์ •์ด ๋ณต์žกํ•˜๊ณ  ๋Š๋ฆฌ๋‹ค. ( INSERT · UPDATE · DELETE ) ๋ฐ์ดํ„ฐ ์ €์žฅ ๋ฐฉ์‹ ๋ณ„๋กœ ๊ตฌ๋ถ„ํ•˜๋ฉด, ๋Œ€ํ‘œ์ ์œผ๋กœ B-Tree ์ธ๋ฑ์Šค์™€ Hash ์ธ๋ฑ..