CS ๊ณต๋ถ€ 22

๋‹ค์ต์ŠคํŠธ๋ผ ์•Œ๊ณ ๋ฆฌ์ฆ˜ (Dijkstra)

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

์…ธ ์ •๋ ฌ (shell sort) ์•Œ๊ณ ๋ฆฌ์ฆ˜

์…ธ ์ •๋ ฌ์˜ ๋“ฑ์žฅ ์‚ฝ์ž… ์ •๋ ฌ์˜ ๋ณด์™„ ์‚ฝ์ž… ์ •๋ ฌ์€ ์ดˆ๊ธฐ๋ฆฌ์ŠคํŠธ๊ฐ€ "๊ฑฐ์˜ ์ •๋ ฌ"๋˜์–ด ์žˆ์„ ๊ฒฝ์šฐ ํšจ์œจ์ ์ด๋‹ค. ์—ญ์ˆœ์œผ๋กœ ์ •๋ ฌ๋œ ์ตœ์•…์˜ ๊ฒฝ์šฐ, ์ด๋™์„ ๋งŽ์ด ํ•ด์•ผ ์ตœ์ข… ์œ„์น˜์— ๋‹ค๋‹ค๋ฅผ ์ˆ˜ ์žˆ๋‹ค. ์‚ฝ์ž… ์ •๋ ฌ์˜ ์‹œ๊ฐ„๋ณต์žก๋„ O(n) : ์ด๋ฏธ ์ •๋ ฌ๋œ ์ตœ์„ ์˜ ๊ฒฝ์šฐ, n-1๋ฒˆ์˜ 1ํšŒ์ฐจ ๋น„๊ต๋งŒ ์ˆ˜ํ–‰ํ•œ๋‹ค. O(n^2) : ์—ญ์ˆœ์œผ๋กœ ์ •๋ ฌ๋œ ์ตœ์•…์˜ ๊ฒฝ์šฐ 1+2+3+ ... + (n-2) + (n-1) = ์ด n(n-1)/2๋ฒˆ ์ด๋™ํ•œ๋‹ค. ์…ธ ์ •๋ ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์‹ญ์ˆ˜ ๊ฐœ ์ •๋„ ๋“ฌ์„ฑ๋“ฌ์„ฑ ๋‚˜๋ˆ„์–ด์„œ ์‚ฝ์ž… ์ •๋ ฌํ•œ๋‹ค. ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค์‹œ ์ž˜๊ฒŒ ๋‚˜๋ˆ„์–ด์„œ ์‚ฝ์ž… ์ •๋ ฌํ•œ๋‹ค. ์ด๋ ‡๊ฒŒ ๊ณ„์† ํ•˜์—ฌ ๋งˆ์นจ๋‚ด ์ •๋ ฌ์ด ๋œ๋‹ค. ๋‚˜๋ˆ„๋Š” ๊ฐ„๊ฒฉ k ๊ฐ„๊ฒฉ k์˜ ์ดˆ๊นƒ๊ฐ’ : (๋ฐ์ดํ„ฐ ๊ฐœ์ˆ˜) / 2 ๋งค ํšŒ์ „๋งˆ๋‹ค k๋Š” ์ ˆ๋ฐ˜์œผ๋กœ ๋‚˜๋ˆˆ๋‹ค. ๋‹จ, ํ•ญ์ƒ ํ™€์ˆ˜๊ฐ€ ๋˜๋„๋ก ๊ฐ’์„ ์ˆ˜์ •ํ•œ๋‹ค. (์ง์ˆ˜์ธ ๊ฒฝ์šฐ +1..

๊ณ ์ • ์†Œ์ˆ˜์ ๊ณผ ๋ถ€๋™ ์†Œ์ˆ˜์ 

์ •์ˆ˜๋ฅผ 2์ง„์ˆ˜๋กœ ๋ณ€ํ™˜ 2๋ฅผ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€๋ฅผ ์—ญ์ˆœ์œผ๋กœ ์ฝ์Œ ์‹ค์ˆ˜๋ฅผ 2์ง„์ˆ˜๋กœ ๋ณ€ํ™˜ ์‹ค์ˆ˜๋ถ€๋„ ์ •์ˆ˜๋ถ€์ฒ˜๋Ÿผ ์ฒ˜๋ฆฌํ•  ๋•Œ ๋ฌธ์ œ : ์ค‘๋ณต ๋ฐœ์ƒ 1.9 -> 1.1001 1.41 -> 1.100 1 ํ•ด๊ฒฐ : 2๋ฅผ ๊ณฑํ•˜๋ฉด์„œ ์ •์ˆ˜ (1, 0)์„ ๋ฝ‘์•„๋ƒ„ ์‹ค์ˆ˜ 0.625 --> ์ด์ง„์ˆ˜ 0.101 0.625 * 2 = 1.25 -> ์ •์ˆ˜ 1 ๋ฝ‘๊ธฐ, ๋‚˜๋จธ์ง€ 0.25 0.25 * 2 = 0.5 -> ์ •์ˆ˜ 0 ๋ฝ‘๊ธฐ, ๋‚˜๋จธ์ง€ 0.5 0.5 * 2 = 1.0 -> ์ •์ˆ˜ 1 ๋ฝ‘๊ธฐ, ๋‚˜๋จธ์ง€ 0์ด ๋‚˜์˜ค๋ฉด ์ข…๋ฃŒ, ๋ฝ‘์€ ์ˆซ์ž๋ฅผ ์ˆœ์„œ๋Œ€๋กœ ์ฝ์–ด์คŒ ๊ณ ์ •์†Œ์ˆ˜์  (Fixed Point) 32๋น„ํŠธ ์‹ค์ˆ˜๋ฅผ ๊ณ ์ • ์†Œ์ˆ˜์  ๋ฐฉ์‹์œผ๋กœ ํ‘œํ˜„ํ•  ๊ฒฝ์šฐ ์‹ค์ˆ˜ 7.625 --> 2์ง„์ˆ˜ 111.101 16๋น„ํŠธ ์ฒด๊ณ„๋ฅผ ์“ด๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. ๋ถ€ํ˜ธ ๋น„ํŠธ : ์ˆซ์ž ์ž์ฒด๊ฐ€ ์–‘์ˆ˜..

์ปดํŒŒ์ผ ์–ธ์–ด vs ์ธํ„ฐํ”„๋ฆฌํ„ฐ ์–ธ์–ด

์ปดํŒŒ์ผ ์–ธ์–ด ์†Œ์Šค ์ฝ”๋“œ ์ „์ฒด๋ฅผ ์ปดํŒŒ์ผ ํ•œ ํ›„ (๊ธฐ๊ณ„์–ด๋กœ ๋ฒˆ์—ญํ•œ ํ›„) ๊ธฐ๊ณ„์–ด๋ฅผ CPU/๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ†ตํ•ด ์ฝ์–ด ์‹คํ–‰ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๋™์ž‘ํ•˜๋Š” ์–ธ์–ด ์ปดํŒŒ์ผ ์–ธ์–ด ํŠน์ง• ๊ทœ๋ชจ๊ฐ€ ํฐ ํ”„๋กœ๊ทธ๋žจ์€ ์ปดํŒŒ์ผ ์‹œ ์˜ค๋ž˜ ๊ฑธ๋ฆด ์ˆ˜ ์žˆ๋‹ค. ์ปดํŒŒ์ผ ํ›„์—๋Š” ๋ชจ๋“  ์†Œ์Šค์ฝ”๋“œ๊ฐ€ ๊ธฐ๊ณ„์–ด๋กœ ๋ณ€ํ™˜๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์‹คํ–‰ ์‹œ๊ฐ„์ด ๋น ๋ฅด๋‹ค. ์ปดํŒŒ์ผ ์–ธ์–ด ์ข…๋ฅ˜ C, C++, Java, C# ๋นŒ๋“œ ๋นŒ๋“œ(Build) : ์ปดํ“จํ„ฐ์—์„œ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š”, ์ฆ‰ ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ํŒŒ์ผ๋กœ ๋งŒ๋“œ๋Š” ๊ณผ์ •์ด๋‹ค. ์šฐ๋ฆฌ๊ฐ€ ๋งŒ๋“  ์†Œ์Šค์ฝ”๋“œ๋ฅผ '๋นŒ๋“œ'ํ•˜๋ฉด ์‹คํ–‰ ํŒŒ์ผ์„ ์–ป๋Š”๋‹ค. ์‹คํ–‰ํŒŒ์ผ์€ exe, exec ๋“ฑ๋“ฑ ์—ฌ๋Ÿฌ ์ข…๋ฅ˜๊ฐ€ ์žˆ๊ณ , ์‹คํ–‰ํŒŒ์ผ์€ CPU๊ฐ€ ์ฝ์„ ์ˆ˜ ์žˆ๋Š” ์ด์ง„์ฝ”๋“œ์ธ ๊ธฐ๊ณ„์–ด(Machine Code)๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค. ์ธํ„ฐํ”„๋ฆฌํ„ฐ ์–ธ์–ด (์Šคํฌ๋ฆฝํŠธ ์–ธ์–ด) ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ์ปดํŒŒ์ผํ•˜์ง€ ์•Š๊ณ  ์ธํ„ฐํ”„๋ฆฌํ„ฐ..

context switching์˜ ๊ณผ์ • (๋ฌธ๋งฅ ๊ตํ™˜)

context switching ์ปจํ…์ŠคํŠธ ์Šค์œ„์นญ ์ธํ„ฐ๋ŸฝํŠธ๋‚˜ ์‹œ์Šคํ…œ ํ˜ธ์ถœ ๋“ฑ์œผ๋กœ ์‹คํ–‰ ์ค‘์ธ ํ”„๋กœ์„ธ์Šค์˜ ์ œ์–ด๋ฅผ ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค์— ๋„˜๊ฒจ ์‹คํ–‰ ์ƒํƒœ๊ฐ€ ๋˜๋„๋ก ํ•˜๋Š” ๊ฒƒ์„ ํ”„๋กœ์„ธ์Šค ์ปจํ…์ŠคํŠธ ์Šค์œ„์นญ (๋ฌธ๋งฅ ๊ตํ™˜)์ด๋ผ๊ณ  ํ•œ๋‹ค. ์ปจํ…์ŠคํŠธ ์Šค์œ„์นญ์ด ์ผ์–ด๋‚˜๋ฉด ํ”„๋กœ์„ธ์„œ์˜ ๋ ˆ์ง€์Šคํ„ฐ์— ์žˆ๋˜ ๋‚ด์šฉ์„ ๋‚˜์ค‘์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ์ €์žฅํ•œ๋‹ค. "์ค€๋น„ -> ์‹คํ–‰" ์ƒํƒœ, "์‹คํ–‰ -> ์ค€๋น„" ์ƒํƒœ, "์‹คํ–‰ -> ๋Œ€๊ธฐ" ์ƒํƒœ๋กœ ๋ฐ”๋€” ๋•Œ ๋ฐœ์ƒํ•œ๋‹ค. ์ด์ „ ํ”„๋กœ์„ธ์Šค์˜ ์ƒํƒœ ๋ ˆ์ง€์Šคํ„ฐ ๋‚ด์šฉ์„ ๋ณด๊ด€ํ•˜๊ณ , ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค์˜ ์ƒํƒœ ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ์ ์žฌํ•˜์—ฌ ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ตํ™˜ํ•œ๋‹ค. ์ปจํ…์ŠคํŠธ ์Šค์œ„์นญ์˜ ๋‹จ์  ํ”„๋กœ์„ธ์Šค P1์ด "์‹คํ–‰ -> ์œ ํœด (์ค€๋น„ or ๋Œ€๊ธฐ์ƒํƒœ๋ฅผ ๋งํ•จ)" ์ƒํƒœ๊ฐ€ ๋  ๋•Œ P1์ด ๋ฐ”๋กœ ์‹คํ–‰๋˜์ง€ ์•Š๊ณ , ์œ ํœด ์ƒํƒœ๋ฅผ ์ข€ ๋” ์œ ์ง€ํ•˜๋‹ค๊ฐ€ ์‹คํ–‰ ์ƒํƒœ๊ฐ€ ๋œ๋‹ค. ์™œ๋ƒํ•˜๋ฉด P..

BFS vs DFS

DFS : ๊นŠ์ด ์šฐ์„  ํƒ์ƒ‰, ๋ฃจํŠธ ๋…ธ๋“œ์˜ ํ•œ ๋ธŒ๋Ÿฐ์น˜์˜ ๋งˆ์ง€๋ง‰ ๋…ธ๋“œ๊นŒ์ง€, ๋ชจ๋“  ๋…ธ๋“œ๋ฅผ ํƒ์ƒ‰ํ•œ ํ›„ ๋‹ค์Œ ๋ธŒ๋Ÿฐ์น˜๋ฅผ ํƒ์ƒ‰ํ•˜๋Š” ๋ฐฉ๋ฒ•. ํ•œ ๋ฐฉํ–ฅ์œผ๋กœ ๊ณ„์† ํƒ์ƒ‰ํ•˜๋‹ค๊ฐ€ ๋งˆ์ง€๋ง‰ ๋…ธ๋“œ์— ๋„๋‹ฌํ•˜๋ฉด ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ๊ฐˆ๋ฆผ๊ธธ๋กœ ๋Œ์•„๊ฐ€ ์ƒˆ๋กœ์šด ๋ธŒ๋Ÿฐ์น˜๋ฅผ ํƒ์ƒ‰ํ•œ๋‹ค. ๋ชจ๋“  ๋…ธ๋“œ๋ฅผ ๋ฐฉ๋ฌธํ•  ๋•Œ, ์™„์ „ ํƒ์ƒ‰์„ ํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค. ์žฌ๊ท€์ ์œผ๋กœ ๋™์ž‘ํ•˜๋ฉฐ, ์ž๊ธฐ ์ž์‹ ์„ ํ˜ธ์ถœํ•˜๋Š” ์ˆœํ™˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ํ˜•ํƒœ์ด๋‹ค. Stack ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ›„์ž…์„ ์ถœ(LIFO) ์›์น™์œผ๋กœ ํƒ์ƒ‰ํ•œ๋‹ค. BFS : ๋„ˆ๋น„ ์šฐ์„  ํƒ์ƒ‰, ๋ฃจํŠธ ๋…ธ๋“œ์™€ ์ธ์ ‘ํ•œ ๋…ธ๋“œ๋ถ€ํ„ฐ ์šฐ์„ ์ ์œผ๋กœ ํƒ์ƒ‰ํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ตœ๋‹จ ๊ฒฝ๋กœ๋ฅผ ์ฐพ์„ ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค. ์‹œ์ž‘์ ์—์„œ ๋ชฉ์ ์ง€๊นŒ์ง€ ํ•œ ๋‹จ๊ณ„์”ฉ ํƒ์ƒ‰ํ•˜๊ธฐ ๋•Œ๋ฌธ. ๋ชฉ์ ์ง€์— ๋„๋‹ฌํ•˜๋Š” ์ˆœ๊ฐ„ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ข…๋ฃŒํ•œ๋‹ค. ๋” ๋งŽ์€ ๋‹จ๊ณ„๋ฅผ ๊ฑฐ์ณ์•ผ ๋ชฉ์ ์ง€์— ๋„๋‹ฌํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ๋กœ๋Š” ๋” ์ด์ƒ ํƒ์ƒ‰ํ•  ํ•„..

๋ฒ„๋ธ”์ •๋ ฌ ์„ ํƒ์ •๋ ฌ ์‚ฝ์ž…์ •๋ ฌ ํ€ต์ •๋ ฌ

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

RESTful API, OOP, ์ ‘๊ทผ์ œ์–ด์ž

[1] RESTful API๋ž€? 1. ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ƒ์— ์กด์žฌํ•˜๋Š” ๋ชจ๋“  ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•ด ๊ณ ์œ ์˜ URI๋ฅผ ๋ถ€์—ฌํ•˜๊ณ  HTTP URI๋ฅผ ํ†ตํ•ด ์ž์›์„ ๋ช…์‹œํ•œ๋‹ค. ๋ฆฌ์†Œ์Šค๋Š” ๋ฏธ๋””์–ด, DB ๋ฐ์ดํ„ฐ ๋“ฑ์„ ๋ชจ๋‘ ํฌํ•จํ•œ๋‹ค. 2. HTTP Method(GET, POST, PUT, DELETE)๋ฅผ ์ด์šฉํ•ด ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•ด CRUD (CREATE, READ, UPDATE, DELETE) ๋ช…๋ น์„ ์ ์šฉํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค. HTTP Method POST URI ์š”์ฒญ ์‹œ ๋ฆฌ์†Œ์Šค๋ฅผ ์ƒ์„ฑํ•œ๋‹ค. (CREATE) GET ๋ฆฌ์†Œ์Šค ์กฐํšŒ ๋ฐ ์ž์„ธํ•œ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜จ๋‹ค. (READ) PUT ๋ฆฌ์†Œ์Šค๋ฅผ ์ˆ˜์ •ํ•œ๋‹ค. (UPDATE) DELETE ๋ฆฌ์†Œ์Šค๋ฅผ ์‚ญ์ œํ•œ๋‹ค. REST = Representational State Transfer ์˜ ์•ฝ์ž (๋Œ€ํ‘œ ์ƒํƒœ ์ „๋‹ฌ) ..

[์šด์˜์ฒด์ œ] ์Šค๋ ˆ๋“œ, ๋ฉ€ํ‹ฐ์ฝ”์–ด์™€ ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋”ฉ

์Šค๋ ˆ๋“œ ํ•œ ํ”„๋กœ์„ธ์Šค ๋‚ด์—์„œ ๊ตฌ๋ถ„์ง€์–ด์ง„ ์‹คํ–‰ ๋‹จ์œ„์ด๋‹ค. ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋‹ค์ˆ˜์˜ ์Šค๋ ˆ๋“œ๋กœ ๊ตฌ๋ถ„๋˜์–ด์žˆ์ง€ ์•Š์œผ๋ฉด, ๋‹จ์ผ ์Šค๋ ˆ๋“œ ํ•˜๋‚˜๋กœ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‹คํ–‰๋œ๋‹ค. ์ฆ‰, ํ”„๋กœ์„ธ์Šค์˜ ํ•˜๋‚˜๋ฐ–์— ์—†๋Š” ์Šค๋ ˆ๋“œ๊ฐ€ ์‹คํ–‰ ๋‹จ์œ„๊ฐ€ ๋˜๋Š” ๊ฒƒ์ด๋‹ค. ์œ„์˜ ๊ฒฝ์šฐ ํ†ต์ƒ์ ์œผ๋กœ ํ”„๋กœ์„ธ์Šค๋ฅผ ์‹คํ–‰ ๋‹จ์œ„๋กœ ๋ณธ๋‹ค. ์Šค๋ ˆ๋“œ์˜ ์ปจํ…์ŠคํŠธ ์Šค์œ„์นญ ํ•˜๋‚˜์˜ ํ”„๋กœ์„ธ์Šค ์•ˆ์— ๋‹ค์ˆ˜์˜ ์Šค๋ ˆ๋“œ๊ฐ€ ์žˆ์„ ๋•Œ, ๊ณต์œ ํ•˜๋Š” ์ž์›์ด ์žˆ๋‹ค. ์Šค๋ ˆ๋“œ๋Š” ์ฝ”๋“œ, ๋ฐ์ดํ„ฐ, ํž™ ์˜์—ญ์„ ๊ณตํ†ต๋œ ์ž์›์œผ๋กœ ๊ณต์œ ํ•ด์„œ ์‚ฌ์šฉํ•œ๋‹ค. ๊ฐ ์Šค๋ ˆ๋“œ๋Š” ์Šคํƒ ์˜์—ญ๋งŒ์„ ๋”ฐ๋กœ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ๊ณต์œ ํ•˜๋Š” ์ž์›์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, ์ปจํ…์ŠคํŠธ ์Šค์œ„์นญ์ด ์ผ์–ด๋‚  ๋•Œ *์บ์‹œ ์ ์ค‘๋ฅ ์ด ์˜ฌ๋ผ๊ฐ„๋‹ค. ์ปจํ…์ŠคํŠธ ์Šค์œ„์น˜๋ฅผ ํ•  ๋•Œ ๋ชจ๋“  ์ž์›์„ ๋Œ€์ƒ์œผ๋กœ ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ํšจ์œจ์ ์ด๋‹ค. * ์บ์‹œ ์ ์ค‘๋ฅ  (Hit Rate) ์›ํ•˜๋Š” ์ •๋ณด๊ฐ€ ์บ์‹œ ๋ฉ”๋ชจ๋ฆฌ์— ๊ธฐ์–ต๋˜์–ด ..

[์šด์˜์ฒด์ œ] ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ, ๊ฐ€์ƒ๋ฉ”๋ชจ๋ฆฌ

๋ฉ”๋ชจ๋ฆฌ = ๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ (RAM) ๋ฉ”๋ชจ๋ฆฌ๋ž€ ์ฃผ์†Œ๋ฅผ ํ†ตํ•ด ์ ‘๊ทผํ•˜๋Š” ๊ฐ์ฒด๋กœ, ๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ๋Š” ์ฃผ๊ธฐ์–ต์žฅ์น˜๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋กœ ์–ธ๊ธ‰์ด ์—†์œผ๋ฉด ๋ฉ”๋ชจ๋ฆฌ๋Š” ๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์ปดํ“จํ„ฐ์—์„œ ๋ฉ”๋ชจ๋ฆฌ๋Š” ์ค‘์š”ํ•œ ์ž‘์—…๊ณต๊ฐ„์ž…๋‹ˆ๋‹ค. ํ”„๋กœ์„ธ์Šค๋Š” CPU์—์„œ ๋ฐ”๋กœ ๊ณ„์‚ฐ์„ ํ•  ์ˆ˜ ์—†๊ณ , ๋ฉ”๋ชจ๋ฆฌ์— ์ ์žฌํ•œ ํ›„์— ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ”„๋กœ๊ทธ๋žจ์ด ํ”„๋กœ์„ธ์„œ(CPU)์— ํ• ๋‹น๋˜๋ ค๋ฉด (ํ”„๋กœ๊ทธ๋žจ์ด ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋˜์–ด ์‹คํ–‰ํ•˜๋ ค๋ฉด) ๋ฉ”๋ชจ๋ฆฌ์— ์ ์žฌ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋ฉ”๋ชจ๋ฆฌ = ์ฃผ์†Œ๋กœ ์ธ๋ฑ์‹ฑํ•˜๋Š” ์ปค๋‹ค๋ž€ ๋ฐฐ์—ด ์ปดํ“จํ„ฐ๋ฅผ ๋ถ€ํŒ…ํ•˜๋ฉด ํ……ํ…… ๋น„์–ด์žˆ๋˜ ๋ฉ”๋ชจ๋ฆฌ์— ์šด์˜์ฒด์ œ, ์‚ฌ์šฉ์ž ํ”„๋กœ๊ทธ๋žจ์ด ๋ฐฐ์—ด ์›์†Œ์ฒ˜๋Ÿผ ๋ฉ”๋ชจ๋ฆฌ์— ์ฑ„์›Œ์ง‘๋‹ˆ๋‹ค. ์ด๋“ค์€ CPU๋ฅผ ์ ์œ ํ•  ๊ธฐํšŒ๋ฅผ ๋…ธ๋ฆฝ๋‹ˆ๋‹ค. ์ปดํŒŒ์ผ๋Ÿฌ CPU๋Š” ๋ฉ”๋ชจ๋ฆฌ์— ์ฑ„์›Œ์ง„ ํ”„๋กœ๊ทธ๋žจ ์ฝ”๋“œ๋ฅผ ๊ณง์žฅ ์ฝ์„ ์ˆ˜ ์—†๊ณ , ์ปดํ“จํ„ฐ๊ฐ€ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋„๋ก ์ˆซ์ž๋กœ ๋ฐ”๊ฟ”์ค˜..