โœ”๏ธComputerScience 21

[์šด์˜์ฒด์ œ] Thread

1. Processs vs Thread Process ์ปดํ“จํ„ฐ์—์„œ ์—ฐ์†์ ์œผ๋กœ ์‹คํ–‰๋˜๊ณ  ์žˆ๋Š” ์ปดํ“จํ„ฐ ํ”„๋กœ๊ทธ๋žจ, ์ฆ‰ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ผ์™€ ์‹คํ–‰๋˜๊ณ  ์žˆ๋Š” ๋…๋ฆฝ์ ์ธ ํ”„๋กœ๊ทธ๋žจ ์ธ์Šคํ„ด์Šค Thread ํ”„๋กœ์„ธ์Šค ๋‚ด์—์„œ ๋™์ž‘๋˜๋Š” ์—ฌ๋Ÿฌ ์‹คํ–‰์˜ ํ๋ฆ„ ๋‹จ์œ„ Processs๋Š” ๋…๋ฆฝ์ , Thread๋Š” ํ”„๋กœ์„ธ์Šค์˜ ์„œ๋ธŒ๋„ท Process๋Š” ๊ฐ๊ฐ ๋…๋ฆฝ์ ์ธ ์ž์›์„ ๊ฐ€์ง„๋‹ค. Thread๋Š” ํ”„๋กœ์„ธ์Šค์˜ ์ž์›์„ ๊ณต์œ ํ•œ๋‹ค. Process๋Š” ์ž์‹ ๋งŒ์˜ ์ฃผ์†Œ ์˜์—ญ์„ ๊ฐ€์ง„๋‹ค. Thread๋Š” ์ฃผ์†Œ ์˜์—ญ์„ ๊ณต์œ ํ•œ๋‹ค. Process๊ฐ„์—๋Š” IPC๊ธฐ๋ฒ•์œผ๋กœ ํ†ต์‹ ํ•ด์•ผํ•˜์ง€๋งŒ Thread๋Š” ํ•„์š”์—†๋‹ค. (IPC์— ๋Œ€ํ•ด์„œ๋Š” ์•„์ง ๊ณต๋ถ€๊ฐ€ ๋” ํ•„์š”ํ•œ ์ƒํƒœ..) 2. Thread - Light Weight Process๋ผ๊ณ ๋„ ํ•จ - ํ”„๋กœ์„ธ์Šค ๊ฐ„์—๋Š” ๊ฐ ํ”„๋กœ์„ธ์Šค์˜ ๋ฐ์ดํ„ฐ ์ ‘๊ทผ์ด ๋ถˆ๊ฐ€ํ•˜๋‹ค..

[์šด์˜์ฒด์ œ] Process ๊ตฌ์กฐ, Process์™€ ์ปจํ…์ŠคํŠธ ์Šค์œ„์นญ

ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜๋‹ค๋ณด๋ฉด ์‹ค์ œ ์‹คํ–‰ํŒŒ์ผ์˜ ๊ตฌ์กฐ๋ฅผ ์ดํ•ดํ•ด์•ผํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋‹ค. (๊นŠ๊ฒŒ ๋””๋ฒ„๊น…์„ ํ•ด์•ผํ•˜๋Š” ๊ฒฝ์šฐ) ์ด๋Ÿฐ ๊ฒฝ์šฐ๋ฅผ ์œ„ํ•ด์„œ๋ผ๋„ ํ”„๋กœ์„ธ์Šค ๊ตฌ์กฐ๋ฅผ ์•Œ์•„์•ผํ•  ํ•„์š”๊ฐ€ ์žˆ๋‹ค. ํ”„๋กœ์„ธ์Šค์˜ ๊ตฌ์กฐ TEXT(CODE): ์ปดํŒŒ์ผ๋œ ์ฝ”๋“œ๊ฐ€ ๋“ค์–ด๊ฐ€๋Š” ๋ถ€๋ถ„ DATA: ๋ณ€์ˆ˜/์ดˆ๊ธฐํ™”๋œ ๋ฐ์ดํ„ฐ STACK(์Šคํƒ ํ”„๋ ˆ์ž„): ์ž„์‹œ ๋ฐ์ดํ„ฐ(ํ•จ์ˆ˜ ํ˜ธ์ถœ, ๋กœ์ปฌ ๋ณ€์ˆ˜ ๋“ฑ) HEAP: ์ฝ”๋“œ์—์„œ ๋™์ ์œผ๋กœ ๋งŒ๋“ค์–ด์ง€๋Š” ๋ฐ์ดํ„ฐ ์•„๋ž˜์˜ ์ฝ”๋“œ๋ฅผ ์˜ˆ์‹œ๋กœ ํ”„๋กœ์„ธ์Šค ๊ตฌ์กฐ๋ฅผ ๊ทธ๋ ค๋ณด๋ฉด ์ด์™€ ๊ฐ™๋‹ค.(๋‹จ, ํ”„๋กœ๊ทธ๋žจ์—์„œ ํŒŒ์ด์ฌ ์ฝ”๋“œ๋ฅผ ์˜ˆ์‹œ๋กœ ๋“ค์—ˆ์ง€๋งŒ C์–ธ์–ด์ฒ˜๋Ÿผ ์ปดํŒŒ์ผ ๋œ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๊ฒŒ ๋ณด๊ธฐ!) HEAP ์—ฌ๊ธฐ์„œ HEAP์ด ์ฝ”๋“œ์—์„œ ๋™์ ์œผ๋กœ ๋งŒ๋“ค์–ด์ง€๋Š” ๋ฉ”๋ชจ๋ฆฌ์ธ๋ฐ, ์–ด๋–ป๊ฒŒ ๋งŒ๋“ค์–ด์ง€๊ณ , ์‚ฌ์šฉ๋˜๋Š”์ง€ ์•Œ์•„๋ณด์ž, C์–ธ์–ด์—๋Š” malloc์ด๋ผ๋Š” ๋ฉ”์„œ๋“œ๊ฐ€ ์žˆ๋‹ค. ์ด ๋ฉ”์„œ๋“œ๋กœ ๋ช…์‹œํ•œ ๋ฉ”๋ชจ๋ฆฌ..

[์šด์˜์ฒด์ œ] Interrupt

์ธํ„ฐ๋ŸฝํŠธ๋ž€, ์–ด๋Š ํ•œ ์ˆœ๊ฐ„ CPU๊ฐ€ ์‹คํ–‰ํ•˜๋Š” ๋ช…๋ น์€ PC(Program Counter)๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๋Š” ๋ช…๋ น ํ•˜๋‚˜์ด๋‹ค. ์ด๋ ‡๊ฒŒ CPU๊ฐ€ ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•˜๊ณ  ์žˆ์„ ๋•Œ, ์ž…์ถœ๋ ฅ ํ•˜๋“œ์›จ์–ด ๋“ฑ์˜ ์žฅ์น˜์™€ ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜ ํ•ด์•ผํ•  ๋•Œ๋‚˜, ์˜ˆ์™ธ์ƒํ™ฉ์ด ๋ฐœ์ƒํ•˜์—ฌ ์ฒ˜๋ฆฌ๊ฐ€ ํ•„์š”ํ•  ๊ฒฝ์šฐ๊ฐ€ ์ƒ๊ธธ ์ˆ˜ ์žˆ๋‹ค. ์ด ๋•Œ CPU์— ์•Œ๋ ค์„œ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ธฐ์ˆ˜๋ฅผ ์ธํ„ฐ๋ŸฝํŠธ๋ผ๊ณ  ํ•œ๋‹ค. ์ธํ„ฐ๋ŸฝํŠธ์˜ ํ•„์š”์„ฑ 1. ์„ ์ ํ˜• ์Šค์ผ€์ฅด๋Ÿฌ๋ฅผ ๊ตฌํ˜„ ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ํ”„๋กœ์„ธ์Šค running์ค‘์— ์Šค์ผ€์ฅด๋Ÿฌ๊ฐ€ ์ด๋ฅผ ์ค‘๋‹จ์‹œํ‚ค๊ณ , ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๋กœ ๊ต์ฒดํ•˜๊ธฐ ์œ„ํ•ด, ํ˜„์žฌ ํ”„๋กœ์„ธ์Šค์˜ ์‹คํ–‰์„ ์ค‘๋‹จ์‹œํ‚จ๋‹ค. ๊ทธ๋Ÿฌ๋ ค๋ฉด ์Šค์ผ€์ฅด๋Ÿฌ ์ฝ”๋“œ๊ฐ€ ์‹คํ–‰๋˜์–ด์•ผ ํ•˜๋Š”๋ฐ, ์ด ๋•Œ ์ž ์‹œ ์ธํ„ฐ๋ŸฝํŠธ๊ฐ€ ์‚ฌ์šฉ๋œ๋‹ค. (ํƒ€์ด๋จธ ์ธํ„ฐ๋ŸฝํŠธ) 2. I/O Device์™€์˜ ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜ ์˜ˆ๋ฅผ ๋“ค์–ด, ์ €์žฅ ๋งค์ฒด์—์„œ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ๊ฐ€ ์™„๋ฃŒ๋์„ ๋•Œ, ..

[์šด์˜์ฒด์ œ] ์„ ์ ํ˜•/๋น„์„ ์ ํ˜• ์Šค์ผ€์ฅด๋Ÿฌ

1. ๋น„์„ ์ ํ˜• ์Šค์ผ€์ฅด๋Ÿฌ(Non-preemptive Scheduling) ํ•˜๋‚˜์˜ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋๋‚˜์ง€ ์•Š์œผ๋ฉด ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๋Š” CPU๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Œ ์˜ˆ๋ฅผ ๋“ค์–ด, CPU์— ์žˆ๋Š” Aํ”„๋กœ์„ธ์Šค์˜ ์ƒํƒœ๊ฐ€ ์ž์ฒด์ ์œผ๋กœ block๋˜๊ฑฐ๋‚˜, terminated๋˜์–ด์•ผ๋งŒ, ๊ทธ์ œ์„œ์•ผ ์Šค์ผ€์ฅด๋Ÿฌ๊ฐ€ Bํ”„๋กœ์„ธ์Šค๊ฐ€ ์‹คํ–‰ ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค.์ฆ‰,์Šค์ผ€์ฅด๋Ÿฌ๊ฐ€ CPU์— ์žˆ๋Š” ํ”„๋กœ์„ธ์Šค๋ฅผ ์„ ์ ,์ œ์–ด ํ•  ์ˆ˜ ์—†๋‹ค. ๊ทธ๋ฆผ์œผ๋กœ ๋น„์„ ์ ํ˜• ์Šค์ผ€์ฅด๋Ÿฌ๊ฐ€ ์ž‘๋™ํ•˜๋Š” ๋ฐฉ์‹์„ ๋ณด๋ฉด, 2. ์„ ์ ํ˜• ์Šค์ผ€์ฅด๋Ÿฌ(Preemptive Scheduling): ํ•˜๋‚˜์˜ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค ๋Œ€์‹ ์— ํ”„๋กœ์„ธ์„œ(CPU)๋ฅผ ์ฐจ์ง€ํ•  ์ˆ˜ ์žˆ์Œ. ์ฆ‰, ํ”„๋กœ์„ธ์Šค ์ƒํƒœ๊ฐ€ running ์ค‘์—๋„ ์Šค์ผ€์ฅด๋Ÿฌ๊ฐ€ ์ด๋ฅผ ์ค‘๋‹จ(ready) ์‹œํ‚ค๊ณ , ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๋กœ ๊ต์ฒดํ•  ์ˆ˜ ์žˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์‹œ๋ถ„ํ•  ์‹œ์Šคํ…œ๊ฐ™์€ ๊ฒฝ์šฐ..

[์šด์˜์ฒด์ œ] ์šด์˜์ฒด์ œ ๊ตฌ์กฐ - ์‹œ์Šคํ…œ์ฝœ, ์‚ฌ์šฉ์ž ๋ชจ๋“œ, ์ปค๋„ ๋ชจ๋“œ

์—ฌ๊ธฐ์„œ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ, ์šด์˜์ฒด์ œ, ์ปดํ“จํ„ฐ ํ•˜๋“œ์›จ์–ด(์‹œ์Šคํ…œ ๋ฆฌ์†Œ์Šค)๋ฅผ ๋„์„œ๊ด€์— ๋น„์œ ํ•ด๋ณด๋ฉด ์šด์˜์ฒด์ œ - ๋„์„œ๊ด€ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ - ์‹œ๋ฏผ ์ปดํ“จํ„ฐ ํ•˜๋“œ์›จ์–ด - ์ฑ… - ๊ทธ๋ž˜์„œ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ(์‹œ๋ฏผ)์ด ์šด์˜์ฒด์ œ(๋„์„œ๊ด€)์—์„œ ์ปดํ“จํ„ฐ ํ•˜๋“œ์›จ์–ด(์ž์›; ์ฑ…)์„ ์š”์ฒญํ•˜๋ฉด - ์šด์˜์ฒด์ œ(๋„์„œ๊ด€)์€ ์ ์ ˆํ•œ ์ปดํ“จํ„ฐ ํ•˜๋“œ์—์–ด(์ฑ…)์„ ์ฐพ์•„์„œ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ(์‹œ๋ฏผ)์—๊ฒŒ ๋นŒ๋ ค์คŒ(์ฆ‰, ํ•˜๋“œ์›จ์–ด๋ฅผ ์ž๊น ์“ธ ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค€ ๋’ค) - ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ(์‹œ๋ฏผ)์ด ์‚ฌ์šฉํ•  ๊ธฐ๊ฐ„์ด ๋‹ค ๋˜๋ฉด, ์šด์˜์ฒด์ œ(๋„์„œ๊ด€)์ด ํ•ด๋‹น ์ปดํ“จํ„ฐ ํ•˜๋“œ์—์–ด(์ฑ…)์„ ํšŒ์ˆ˜ํ•œ๋‹ค. ์ด๋ ‡๋“ฏ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ, ์šด์˜์ฒด์ œ, ์ปดํ“จํ„ฐ ํ•˜๋“œ์›จ์–ด(์‹œ์Šคํ…œ ๋ฆฌ์†Œ์Šค)์˜ ๊ด€๊ณ„๋ฅผ ๋‹ค์‹œ ์„ค๋ช…ํ•˜๋ฉด, - ์šด์˜์ฒด์ œ๋Š” ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์ด ์š”์ณฅํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ—ˆ๊ฐ€ํ•˜๊ณ , ๋ถ„๋ฐฐํ•œ๋‹ค. - ์šด์˜์ฒด์ œ๋Š” ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์ด ์š”์ฒญํ•˜๋Š” CPU ์‹œ๊ฐ„์„ ..

[์šด์˜์ฒด์ œ] ์šด์˜์ฒด์ œ์˜ ๋ฐœ์ „์‚ฌ(๋ฐฐ์น˜ ์ฒ˜๋ฆฌ ์‹œ์Šคํ…œ, ์‹œ๋ถ„ํ•  ์‹œ์Šคํ…œ, ๋ฉ€ํ‹ฐ ํƒœ์Šคํ‚น)

์šด์˜์ฒด์ œ์˜ ๋ฐœ์ „์‚ฌ๋ฅผ ๋ณด๋ฉด์„œ ๊ฐ๊ฐ์˜ ์šด์˜์ฒด์ œ์˜ ๊ธฐ๋Šฅ๋“ค์ด ์–ด๋–ป๊ฒŒ ๋ฐœ์ „ํ•ด์™”๋Š”์ง€, ์–ด๋–ค ํŠธ๋ Œ๋“œ๊ฐ€ ์žˆ์—ˆ๋Š”์ง€ ์•Œ์•„๋ณด์•˜๋‹ค. 1950๋…„๋Œ€) ENIAC: ์ฒซ ๋ฒˆ์งธ ์ปดํ“จํ„ฐ ์ด ๋•Œ๋Š” ์šด์˜์ฒด์ œ๊ฐ€ ์—†์—ˆ๋‹ค. 1๊ฐœ์˜ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰์‹œํ‚ค๊ธฐ๋„ ๋ฐ”๋นด์œผ๋ ค ์ด ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์ด ์ง์ ‘ ์‹œ์Šคํ…œ ์ž์›์„ ์ œ์–ดํ•˜์˜€๋‹ค. 1960๋…„๋Œ€ ์ดˆ๊ธฐ) ์ด ๋•Œ๋Š” ํ”„๋กœ๊ทธ๋žจ ์ข…๋ฅ˜๋„ ๋งŽ์•„์ง€๊ณ , ์‚ฌ์šฉ์ž๋„ ์Šฌ์Šฌ ๋งŽ์•„์ง€๊ธฐ ์‹œ์ž‘ํ–ˆ๋‹ค. ์˜ˆ๋ฅผ๋“ค์–ด, ์ฒ ์ˆ˜๊ฐ€ '์˜ˆ์ƒ ์‹คํ–‰ ์‹œ๊ฐ„์ด 12 ์‹œ๊ฐ„'์ธ ์„ ์‹คํ–‰ํ•˜๊ณ ์ž ํ•˜๋ฉฐ, ์˜ํฌ๊ฐ€ '์˜ˆ์ƒ ์‹คํ–‰ ์‹œ๊ฐ„์ด 1๋ถ„'์ธ ๋ฅผ ์‹คํ–‰ํ•˜๊ณ ์ž ํ•œ๋‹ค. ์ด ๋•Œ ์ฒ ์ˆ˜๊ฐ€ ๋จผ์ € ํ”„๋กœ๊ทธ๋žจ1์„ ์‹คํ–‰์‹œํ‚จ๋‹ค๋ฉด ์˜ํฌ๋Š” 1๋ถ„ ๋งŒ์— ๋๋‚˜๋Š” ์ž‘์—…์ž„์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ์ฒ ์ˆ˜์˜ ํ”„๋กœ๊ทธ๋žจ์ด ๋‹ค ๋๋‚  ๋•Œ๊นŒ์ง€ ์ง์ ‘ ๋œฌ ๋ˆˆ์œผ๋กœ ๊ธฐ๋‹ค๋ คํ•œ๋‹ค. ์ด๋Ÿฌํ•œ ๋ถˆํŽธํ•จ์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” ์šด์˜์ฒด์ œ๊ฐ€ ์ถœ..

[์šด์˜์ฒด์ œ] ์šด์˜์ฒด์ œ์˜ ์—ญํ• 

๋Œ€ํ‘œ์ ์ธ ์šด์˜์ฒด์ œ๋กœ๋Š” Windows OS, Mac OS, UNIX๊ณ„์—ด OS๊ฐ€ ์žˆ๋‹ค. UNIX๊ณ„์—ด์˜ OS๋Š” UNIX์™€ ์‚ฌ์šฉ๋ฒ•์ด๋‚˜ OS๊ตฌ์กฐ๊ฐ€ ์œ ์‚ฌํ•œ ๊ฒƒ๋“ค์„ ๋งํ•˜๋ฉฐ ์ด ์ค‘ ๊ฐ€์žฅ ์œ ๋ช…ํ•œ ๊ฒƒ์ด LINUX OS์ด๋‹ค. (ํ”„๋กœ๊ทธ๋ž˜๋จธ, ์ „๊ณต์ž๋ผ๋ฉด ์ด LINUX OS์— ๋Œ€ํ•ด ์ž˜ ์•Œ๊ณ  ์žˆ์–ด์•ผ ํ•œ๋‹ค. ์ด์— ๋Œ€ํ•œ ๋‚ด์šฉ์€ ์ถ”ํ›„์— ๋ฅผ ๋‹ค ๊ณต๋ถ€ํ•œ ํ›„ ์„ ๋ฐฐ์šฐ๋ฉด์„œ ๊ณต๋ถ€ํ•ด๋ณผ ๊ฒƒ์ด๋‹ค.) ์šด์˜์ฒด์ œ(Operating System; OS)์˜ ์—ญํ•  1. ์‹œ์Šคํ…œ ์ž์›(System Resource) ๊ด€๋ฆฌ์ž ์—ฌ๊ธฐ์„œ ์‹œ์Šคํ…œ ์ž์›์ด๋ผ๋Š” ๊ฒƒ์€ ์ปดํ“จํ„ฐ ํ•˜๋“œ์›จ์–ด๋ผ๊ณ  ๋ณด๋ฉด ์‰ฝ๋‹ค. ์ด๋Ÿฐ ์‹œ์Šคํ…œ ์ž์›๋“ค์€ ์ž์‹  ํ˜ผ์ž์„œ๋Š” ์•„๋ฌด๊ฒƒ๋„ ํ•  ์ˆ˜ ์—†์œผ๋ฉฐ ์ด๋Ÿฐ ๊ฒƒ๋“ค์„ ๊ด€๋ฆฌํ•˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด๊ฐ€ OS์ด๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, - CPU(์ค‘์•™์ฒ˜๋ฆฌ์žฅ์น˜) => ๊ฐ ํ”„๋กœ๊ทธ๋žจ์ด ์–ผ๋งˆ๋‚˜ CPU๋ฅผ ์‚ฌ์šฉํ• ..

[Network] Forward proxy vs Reverse proxy

Proxy, Proxy ํ”„๋กœ๊ทธ๋žจ, Proxy ์„œ๋ฒ„ Proxy๋Š” ์ž์‹ ์„ 'ํ†ตํ•ด์„œ' ๋‹ค๋ฅธ ๋„คํŠธ์›Œํฌ์— ๊ฐ„์ ‘์ ์œผ๋กœ ์ ‘์† ํ•  ์ˆ˜ ์žˆ๋„๋ก '์ค‘๊ณ„'ํ•ด์ฃผ๋Š” ์ปดํ“จํ„ฐ ํ˜น์€ ํ”„๋กœ๊ทธ๋žจ์ด๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด๋Ÿฌํ•œ ์ผ์„ ํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ Proxy ํ”„๋กœ๊ทธ๋žจ์ด๋ผ ํ•˜๋ฉฐ, Proxy ํ”„๋กœ๊ทธ๋žจ์€ Proxy Server์—์„œ ์ž‘๋™ํ•œ๋‹ค. Proxy์˜ ์ข…๋ฅ˜ Proxy์—๋Š” Forward Proxy์™€ Reverse Proxy๊ฐ€ ์žˆ๋‹ค. 1) Forward Proxy ์ผ๋ฐ˜์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” Proxy๋ฐฉ์‹์ด๋ฉฐ ํด๋ผ์ด์–ธํŠธ์™€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„ ์‚ฌ์ด์— ์œ„์น˜ํ•ด์„œ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„๋กœ ์„œ๋น„์Šค๋ฅผ ์š”์ฒญ ํ•  ๋•Œ ๋‚ด๋ถ€๋ง(์•„๋ž˜ ์‚ฌ์ง„์—์„œ ๋‚จ์ƒ‰์œผ๋กœ ํ‘œ์‹œ)์— ์œ„์น˜ํ•œ Proxy Server์—์„œ ๋จผ์ € ์š”์ฒญ์„ ๋ฐ›๊ณ , Proxy Server๊ฐ€ ํƒ€๊ฒŸ์ธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„๋กœ ์š”์ฒญ์„ ์ „๋‹ฌํ•œ..

[Network] CDN(Contents Delivery Network) ์ดํ•ดํ•˜๊ธฐ

[CloudFront] CloudFront์— S3 ๋ฒ„ํ‚ท ๋ฐฐํฌํ•˜๊ณ  SSL Certificate์„ค์ •์—์„œ Amazon S3์™€ CloudFront๋กœ ์ •์  ํŒŒ์ผ์„ ๋ฐฐํฌํ•˜๋Š” ๊ณผ์ •์— ๋Œ€ํ•ด์„œ ์ •๋ฆฌํ•˜์˜€์—ˆ๋‹ค. AWS CloudFront๋Š” ์ „ ์„ธ๊ณ„์˜ ์ •์ /๋™์  ์›น ์ฝ˜ํ…์ธ , ๋น„๋””์˜ค ์ŠคํŠธ๋ฆผ ๋ฐ API๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ๋Œ€๊ทœ๋ชจ๋กœ ์ „์†กํ•  ์ˆ˜ ์žˆ๋Š” ์ฝ˜ํ…์ธ  ์ „์†ก ๋„คํŠธ์›Œํฌ(CDN) ์„œ๋น„์Šค์ด๋ผ์„œ, ์ด๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” CDN๊ณผ Cache์— ๋Œ€ํ•œ ๊ฐœ๋…์„ ์•Œ์•„์•ผํ•˜๊ณ , ์ด ๋ถ€๋ถ„์— ๋Œ€ํ•ด์„œ ๊ณต๋ถ€๊ฐ€ ๋” ํ•„์š”ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ณต๋ถ€ ํ›„์— ๋”ฐ๋กœ ์ •๋ฆฌํ•ด๋ณด๊ฒ ๋‹ค ๋ผ๊ณ ๋„ ์ ์–ด๋†“์€ ๋ฐ”๊ฐ€ ์žˆ๋‹ค. ์ด ์ค‘ CDN์— ๋Œ€ํ•ด ๊ณต๋ถ€ํ•˜๊ณ  ์ดํ•ดํ•œ ๋ฐ”๋ฅผ ์ •๋ฆฌํ•ด๋ณธ๋‹ค. ๋‚ด๊ฐ€ ๋งŒ๋“  ์„œ๋น„์Šค๋ฅผ ํ˜ธ์ŠคํŒ…ํ•ด์ฃผ๋Š” ์„œ๋ฒ„๋Š” ํ•œ๊ตญ์— ์žˆ๊ณ , ๋‚ด ์„œ๋น„์Šค๊ฐ€ ์ „์„ธ๊ณ„์ ์œผ๋กœ ์ œ๊ณต๋˜๊ณ  ์žˆ๋‹ค๊ณ  ํ•˜์ž. ์ด ๋•Œ ๋งŽ์€ ์–‘์˜ ํŒŒ์ผ๊ณผ..

[Network] DNS(Domain Name System) ์ดํ•ดํ•˜๊ธฐ

IP์— ๋Œ€ํ•œ ๊ฒƒ์€ (์•„์ง ๋ถ€์กฑํ•˜์ง€๋งŒ) [Network]Router, IP, NAT, Port์— ์ •๋ฆฌํ•ด ๋‘” ์ ์ด ์žˆ๋‹ค. ์ฆ‰ IP๋Š” ๋‘ ๋Œ€์˜ ์ปดํ“จํ„ฐ ๊ฐ์ž์˜ '์ฃผ์†Œ'๋ฅผ ํ†ตํ•ด ์„œ๋กœ๋ฅผ ์ฐพ๊ณ  ์ธํ„ฐ๋„ท์„ ํ†ตํ•ด 'ํ†ต์‹ '์„ ํ•˜๋ฉฐ ์ •๋ณด๋ฅผ ์ฃผ๊ณ  ๋ฐ›๋Š”๋‹ค๊ณ  ํ•˜์ž. ์ด๋•Œ '์ฃผ์†Œ'์— ํ•ด๋‹นํ•˜๋Š”๊ฒŒIP address. ๊ทธ๋ฆฌ๊ณ  host๋Š” ์ธํ„ฐ๋„ท์— ์—ฐ๊ฒฐ๋œ ๊ฐ๊ฐ์˜ ๊ธฐ๊ธฐ๋ฅผ ๋งํ•œ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ์–ด๋–ค ์ปดํ“จํ„ฐ์— ํ†ต์‹ ์„ ์œ„ํ•ด ์š”์ฒญ์„ ๋ณด๋‚ธ๋‹ค๊ณ  ํ•˜์ž. ์ด๋•Œ IP๊ฐ€ ๋ญ”์ง€ ๊ธฐ์–ตํ•˜๊ธฐ๋ž€? ๊ต‰์žฅํžˆ ๋ฒˆ๊ฑฐ๋กญ๋‹ค. 93.184.216.34 ์ด๋Ÿฐ๊ฑธ ๋‹ค ์™ธ์šด๋‹ค๊ณ ? ๊ทธ๋Ÿด ์ˆœ ์—†์ง€ ๊ทธ๋ž˜์„œ ํ•„์š”ํ•œ ๊ฒƒ์ด DNS(Domain Name System)์ด๋‹ค. DNS๋Š” ์šฐ๋ฆฌ๊ฐ€ ํ”ํžˆ ๋ณด๋Š” ๋„๋ฉ”์ธ ์ด๋ฆ„(์˜ˆ๋ฅผ ๋“ค์–ด www.google.com๊ณผ ๊ฐ™์€)์„ IP์ฃผ์†Œ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ์—ญํ• ์„ ํ•œ๋‹ค. DNS์˜ ์›๋ฆฌ..

โ€‹