FrontEnd
Javascript
Diary
ML
CS
Django
Algorithm
AWS
Co-Work
HTML
CSS
Python
React
ReactNative

CS

(22)

Disk Management & Scheduling

Disk ๊ตฌ์กฐ ๋””์Šคํฌ์˜ ์™ธ๋ถ€์—์„œ ๋ณด๋Š” ๋””์Šคํฌ์˜ ๋‹จ์œ„ ์ •๋ณด ์ €์žฅ ๊ณต๊ฐ„๋“ค ์ฃผ์†Œ๋ฅผ ๊ฐ€์ง„ 1์ฐจ์› ๋ฐฐ์—ด์ฒ˜๋Ÿผ ์ทจ๊ธ‰ (์ •๋ณด๋ฅผ ์ „์†กํ•˜๋Š” ์ตœ์†Œ๋‹จ์œ„) logical block์ด ๋ฌผ๋ฆฌ์ ์ธ disk์— ๋งคํ•‘๋œ ์œ„์น˜ sector 0์€ ์ตœ์™ธ๊ณฝ ์‹ค๋ฆฐ๋”์˜ ์ฒซ ํŠธ๋ž™์— ์žˆ๋Š” ์ฒซ๋ฒˆ์งธ ์„นํ„ฐ์ด๋‹ค. (0๋ฒˆ sector๋Š” ๋ถ€ํŒ…๊ณผ ๊ด€๋ จ๋˜์–ด์žˆ๋‹ค.) ๋””์Šคํฌ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ์ตœ์†Œ๋‹จ์œ„๋Š” sector sectโ€ฆ

File System

File System A named collection of related information ์ผ๋ฐ˜์ ์œผ๋กœ ๋น„ํœ˜๋ฐœ์„ฑ์˜ ๋ณด์กฐ๊ธฐ์–ต์žฅ์น˜์— ์ €์žฅ ์šด์˜์ฒด์ œ๋Š” ๋‹ค์–‘ํ•œ ์ €์žฅ์žฅ์น˜๋ฅผ file์ด๋ผ๋Š” ๋…ผ๋ฆฌ์  ๋‹จ์œ„๋กœ ๋ณผ ์ˆ˜ ์žˆ๊ฒŒ ํ•จ, operation : , , ,(lseek, ์ ‘๊ทผํ•˜๋Š” ์œ„์น˜๋ฅผ ์ˆ˜์ •), , , File attribute : (File์˜ metadata) ํŒŒโ€ฆ

Virtual Memory

Demand paging (์‹ค์ œ๋กœ ๋Œ€๋ถ€๋ถ„์€ ์‹œ์Šคํ…œ์€ paging๊ธฐ๋ฒ•์„ ์‚ฌ์šฉํ•œ๋‹ค.) ์‹ค์ œ๋กœ ํ•„์š”ํ•  ๋•Œ page๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ฆผ I/O์–‘์˜ ๊ฐ์†Œ(์‹ค์ œ๋กœ ๋™์ž‘ํ•˜๋Š” ์ฝ”๋“œ๋Š” ์ ๋‹ค, ๋Œ€๋‹ค์ˆ˜๊ฐ€ ๋ฐฉ์–ด์ ์ธ ์ฝ”๋“œ์ด๊ธฐ๋•Œ๋ฌธ์—) Mem ์‚ฌ์šฉ๋Ÿ‰ ๊ฐ์†Œ ๋น ๋ฅธ ์‘๋‹ต์‹œ๊ฐ„ ๋” ๋งŽ์€ ์‚ฌ์šฉ์ž ์ˆ˜์šฉ Valid/ Invalid bit ์‚ฌ์šฉ Invalid => ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” ์ฃผ์†Œ์˜์—ญ์ธ ๊ฒฝ์šฐ, Paโ€ฆ

Memory Management

Memory Management ๋ฉ”๋ชจ๋ฆฌ๋Š” ์ฃผ์†Œ๋ฅผ ํ†ตํ•ด์„œ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ์ฒด์ด๋‹ค. ๋…ผ๋ฆฌ์  ์ฃผ์†Œ(virtual address) : ํ”„๋กœ์„ธ์Šค๋งˆ๋‹ค ๋…๋ฆฝ์ ์œผ๋กœ ๊ฐ€์ง€๋Š” ์ฃผ์†Œ๊ณต๊ฐ„, 0๋ฒˆ์ง€ ๋ถ€ํ„ฐ ์‹œ์ž‘ **cpu๊ฐ€ ๋ณด๋Š” ์ฃผ์†Œ๋Š” logical address์ž„** ๋ฌผ๋ฆฌ์  ์ฃผ์†Œ : ๋ฉ”๋ชจ๋ฆฌ์— ์‹ค์ œ์˜ฌ๋ผ๊ฐ€๋Š” ์œ„์น˜ Symbolic Address(ํ”„๋กœ๊ทธ๋ž˜๋จธ ์ž…์žฅ์—์„œ ๋ฌธ์ž๋กœ ์ด๋ฃจ์–ด์ง„ โ€ฆ

Deadlock

Deadlock ๊ต์ฐฉ์ƒํ™ฉ, ์ผ๋ จ์˜ ํ”„๋กœ์„ธ์Šค๋“ค์ด ์„œ๋กœ๊ฐ€ ๊ฐ€์ง„ ์ž์›์„ ๊ธฐ๋‹ค๋ฆฌ๋ฉฐ block๋œ ์ƒํ™ฉ ์ž์› ํ•˜๋“œ์›จ์–ด, ์†Œํ”„ํŠธ์›จ์–ด ๋“ฑ์„ ํฌํ•จํ•˜๋Š” ๊ฐœ๋… I/O device, CPU cycle, Memspace, semaphore ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ž์›์„ ์‚ฌ์šฉํ•˜๋Š” ์ ˆ์ฐจ : request allocate, use Release deadlock ๋ฐœ์ƒ ์กฐ๊ฑด : ์ƒํ˜ธ๋ฐฐ์ œ, ๋งค ์ˆœ๊ฐ„โ€ฆ

Process Management

ํ”„๋กœ์„ธ์Šค synchronization ๋ฐ์ดํ„ฐ ์ ‘๊ทผ ์ˆœ์„œ Data๊ฐ€ ์ €์žฅ๋˜์–ด์žˆ๊ณ  ์—ฐ์‚ฐํ•  data๋ฅผ ์ฝ์–ด์˜ค๊ณ  ์—ฐ์‚ฐ์„ ํ•˜๊ณ  ์—ฐ์‚ฐ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๊ณ  ์ด๋•Œ ์ƒ๊ธฐ๋Š” ๋ฌธ์ œ Storage box ๋ฅผ ๋‘๊ฐœ์˜ ExecutionBox๊ฐ€ ๊ณต์œ ํ•˜๋ฉด์„œ ์‚ฌ์šฉํ•˜๋ฉด ์–ด๋–ป๊ฒŒ ๋ ๊นŒ?? => ์ฆ‰ Race Condition์ƒํƒœ์ด๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผํ• ๊นŒ? => ์ด๋Ÿฐ๋ถ€๋ถ„์„ ์กฐ์œจํ•ด์•ผํ•  ํ•„์š”์„ฑ์ด์žˆ๋‹ค. Stoโ€ฆ

CPU-Scheduling

CPU Scheduling (CPU์Šค์ผ€์ค„๋ง) CPU burst CPU๊ฐ€ ํ•ด์•ผํ•  ์ผ์„ ํ•˜๋Š” ๋‹จ๊ณ„ I/O burst IO ํ”„๋กœ๊ทธ๋žจ์ด ํ•ด์•ผํ• ์ผ์„ ํ•˜๋Š” ๋‹จ๊ณ„ ์ด๋Ÿฌํ•œ burst๊ฐ€ ๋ฐ˜๋ณต๋˜๋ฉด์„œ ํ”„๋กœ๊ทธ๋žจ์ด ๊ตฌ๋™๋œ๋‹ค. cpu->cpu->cpu->io : ์‚ฌ์šฉ์ž์™€ interactiveํ•œ ํ”„๋กœ๊ทธ๋žจ cpu->io->cpu->io : ํ–‰๋ ฌ์˜ ์—ฐ์‚ฐ๊ณผ ๊ฐ™์€ ํ”„๋กœ๊ทธ๋žจ (์œ„์˜ ๋‘ ์˜ˆ์‹œโ€ฆ

Process Management

Process Management ํ”„๋กœ์„ธ์Šค ์ƒ์„ฑ: ๋ถ€๋ชจํ”„๋กœ์„ธ์Šค๊ฐ€ ์ž์‹ํ”„๋กœ์„ธ์Šค ์ƒ์„ฑ(1:n) ==> ํŠธ๋ฆฌํ˜•ํƒœ,๊ณ„์ธต๊ตฌ์กฐ๋กœ ๋งŒ๋“ค์–ด์ง„๋‹ค. ์ด๋–„ ๊ธฐ๋ณธ์ ์œผ๋กœ ํ”„๋กœ์„ธ์Šค์˜ ์ƒ์„ฑ์€ ๋ณต์ œ๋ฅผ ํ†ตํ•ด์„œ ์ด๋ฃจ์–ด์ง€๋Š”๋ฐ ์ฃผ์†Œ๊ณต๊ฐ„(code, stack, data)๊ณผ ์‹ฌ์ง€์–ด PC(Program counter)๊นŒ์ง€ ๋ณต์ œํ•œ๋‹ค. ์ž์›์˜ ๊ณต์œ  ๋ถ€๋ชจ ์ž์‹ ๋ชจ๋“ ์ž์› ๊ณต์œ  ์ผ๋ถ€ ๊ณต์œ  ์ „ํ˜€ ๊ณต์œ  X โ€ฆ

Process - (2)

Thread ํ”„๋กœ์„ธ์Šค ๋‚ด๋ถ€์— CPU์ˆ˜ํ–‰๋‹จ์œ„๊ฐ€ ์—ฌ๋Ÿฌ๊ฐœ ์žˆ๋Š”๊ฒƒ ํ”„๋กœ์„ธ์Šค๋Š” ๋งŒ๋“ค์–ด์งˆ๋•Œ ๋กœ ๊ตฌ์„ฑ๋œ ์ฃผ์†Œ๊ณต๊ฐ„์ด ๋งŒ๋“ค์–ด์ง€๊ณ  PCB๋ผ๋Š” ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง€๋Š”๋ฐ ๋™์ผํ•œ ์ผ์„ ํ•˜๊ณ ์žˆ๋Š” ํ”„๋กœ์„ธ์Šค๊ฐ€ ์—ฌ๋Ÿฌ๊ฐœ์žˆ์œผ๋ฉด ์ฃผ์†Œ๊ณต๊ฐ„์„ ์—ฌ๋Ÿฌ๊ฐœ ์ƒ์„ฑํ•˜๋Š”๊ฒŒ ์•„๋‹ˆ๋ผ 1๊ฐœ๋งŒ ์ƒ์„ฑํ•˜๊ณ  PCB๋‚ด๋ถ€์— PC(์™€ ๊ฐ™์€ CPU์ˆ˜ํ–‰๊ณผ ๊ด€๋ จ ์ •๋ณด)๋ฅผ ์—ฌ๋Ÿฌ๊ฐœ๋ฅผ ๋‘๊ณ  ํ•จ์ˆ˜๋ฅผ ์‹คํ–‰, ๊ทธ๋ฆฌ๊ณ  ์‹คํ–‰ ๊ฒฐ๊ณผ๋ฅผ ๋‹ด์•„๋†“๊ธฐ์œ„ํ•œ sโ€ฆ

Process - (1)

ํ”„๋กœ์„ธ์Šค : ์‹คํ–‰์ค‘์ธ ํ”„๋กœ๊ทธ๋žจ context : ํ”„๋กœ์„ธ์Šค์˜ ๋ฌธ๋งฅ(ํŠน์ • ์‹œ์ ์—์„œ ํ”„๋กœ๊ทธ๋žจ์ด ์–ผ๋งˆ๋‚˜ ์‹คํ–‰๋˜์—ˆ๋Š”์ง€) ํ”„๋กœ์„ธ์Šค ์‹คํ–‰์˜ ํ๋ฆ„: ex) ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‹คํ–‰๋˜๋ฉด ์ฃผ์†Œ๊ณต๊ฐ„์ด ์ƒ๊ธฐ๋Š”๋ฐ program counter๊ฐ€ code ๋ถ€๋ถ„์„ ๊ฐ€๋ฆฌํ‚ค๊ณ , ์ธ์ŠคํŠธ๋Ÿญ์…˜์„ ์ฝ์–ด์™€ ์ด๋ฅผ register์— ๋“ฑ๋กํ•˜๊ณ  ALU๋ฅผ ์ด์šฉํ•ด์„œ ํ•ด๋‹น ์—ฐ์‚ฐ์„ ์‹คํ–‰ํ•œ๋‹ค. context๋Š” ํฌ๊ฒŒ 2โ€ฆ

OS-System_Structure2

CPU์™€ Memory CPU + Memory ==> Host์˜์—ญ CPU๋Š” ๋งค์ˆœ๊ฐ„์ˆœ๊ฐ„ Memory์—์„œ ๊ธฐ๊ณ„์–ด๋ฅผ ์ฝ์–ด์„œ ์‹คํ–‰ํ•˜๋Š”๋ฐ ์ด๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š”๊ฒŒ CPU์— register์— ์žˆ๋Š” PC(Program Counter)์ด๋‹ค. Memory์— ์˜ฌ๋ผ๊ฐ„ ๊ธฐ๊ณ„์–ด๋Š” instruction์ธ๋ฐ, instruction ์‹คํ–‰๋„์ค‘ ์ค‘๊ฐ„์— interrupt๊ฐ€ ์š”์ฒญ๋˜๋ฉด ์ œ์–ด๊ถŒ์€ CPU๋กœโ€ฆ

OS-System_Structure

kocw OS ๊ฐ•์˜(์ดํ™”์—ฌ๋Œ€ ๋ฐ˜ํšจ๊ฒฝ ๊ต์ˆ˜๋‹˜)๋ฅผ ์ •๋ฆฌํ•˜๋ฉด์„œ ๊ณต๋ถ€ํ•˜๊ธฐ ์œ„ํ•œ ๊ฒŒ์‹œ๊ธ€ โœ ์‹œ์Šคํ…œ์„ ํฌ๊ฒŒ CPU, Memory, I/O device ๊ด€์ ์—์„œ ๋ด๋ณด์ž CPU ๋Š” ํ•ด์•ผํ•  ์ผ์„ Memory์— ์˜ฌ๋ ค๋†“๊ณ  ํ•˜๊ฒŒ ๋˜๋Š”๋ฐ, ์ด๋•Œ CPU๋ž‘ ๊ฐ€๊นŒ์šด registers, memory, I/O device ๋กœ ์†๋„๊ฐ€ ๋น ๋ฅด๋‹ค Mode bit 1์€ ์‚ฌ์šฉ์ž๋ชจ๋“œ, 0์€ ์ปค๋„โ€ฆ

MarkDown ๋ฌธ๋ฒ•

์ง€๊ธˆ๊นŒ์ง€ Markdown์€ ๊ทธ์ € ์ฝ”๋“œํŽธ์ง‘๊ธฐ์—์„œ ์“ฐ๊ธฐ ํŽธํ•œ, ๊ทธ๋ฆฌ๊ณ  Github repo์—์„œ README.md ๋ฅผ ์ž‘์„ฑํ•˜๋Š”๋ฐ ์‚ฌ์šฉํ•˜๋Š”์ค„ ์•Œ์•˜๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ Blog๋ฅผ gatsby๋กœ migration ํ•˜๋Š” ๊ณผ์ •์—์„œ gatsby๋Š” md ํŒŒ์ผ์„ ์ด์šฉํ•ด์„œ html์„ ์ƒ์„ฑํ•˜๋Š” ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์ง€์›ํ–ˆ๊ณ , md์™€ ๋” ์นœํ•ด์ ธ์•ผํ•  ํ•„์š”์„ฑ์ด ์ƒ๊ฒผ๋‹ค. ์˜ˆ์ „์—๋Š” stackedit.ioโ€ฆ

ADT์™€ Encapsulation์˜ ๋Š๋‚Œ

ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ด๋ž€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ปดํ“จํ„ฐ๊ฐ€ ์‹คํ–‰ํ• ์ˆ˜ ์žˆ๊ฒŒ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋กœ ์ž‘์„ฑํ•˜๋Š” ๊ณผ์ •์ด๋‹ค ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ๋ฌธ์ œ์— ๋Œ€ํ•ด ํ•„์š”ํ•œ data์™€ ๋ฌธ์ œ ํ•ด๊ฒฐ๊นŒ์ง€์˜ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋งํ•˜๋Š”๋ฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋Š” ์ด๋ฅผ ์œ„ํ•ด ๋ฐ์ดํ„ฐ ์œ ํ˜•๊ณผ ์ œ์–ด ํ•  ์ˆ˜ ์žˆ๋Š” ๊ตฌ์กฐ๋ฅผ ์ œ๊ณตํ•œ๋‹ค ์ด๋Ÿฌํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๊ณต๋ถ€ํ•˜๋Š” ๊ฒƒ์€ ํ”„๋กœ๊ทธ๋žจ์ด๋‚˜ ์ปดํ“จํ„ฐ์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง€๋Š” ๊ฒƒ์ด ์•„๋‹Œ ํŠน์ • ๊ธฐ์ค€์— ์˜๊ฑฐํ•˜์—ฌ ๋ฌธ์ œ ํ•ด๊ฒฐ๋ฒ•์„ ๋น„๊ตโ€ฆ

๋ฐ์ดํ„ฐ ์†ก์ˆ˜์‹  ์ข…๋ฃŒ

โŒ๋ฐ์ดํ„ฐ ์†ก์ˆ˜์‹ ์˜ ์ข…๋ฃŒ ๋ฐ์ดํ„ฐ ์†ก์ˆ˜์‹ ์ด ๋๋‚˜๊ฒŒ ๋˜๋ฉด ์ข…๋ฃŒํ•˜๊ฒŒ ๋˜๋Š”๋ฐ ์ด๋Š” ๋ฆฌํ€˜์ŠคํŠธ์™€ ์‘๋‹ต๋ฉ”์„ธ์ง€๊ฐ€ ์˜ค๊ณ ๊ฐ€๋Š”๊ฒŒ ๋๋‚˜๊ฑฐ๋‚˜ (์‘๋‹ตํ›„์—๋„ ๋ฆฌํ€˜์ŠคํŠธ๊ฐ€ ๊ฐˆ ์ˆ˜์žˆ๋Š” ๊ฒฝ์šฐ) ๋ฆฌํ€˜์ŠคํŠธ ๋ฉ”์„ธ์ง€๊ฐ€ ์—†์„๋•Œ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์—ฐ๊ฒฐ๋Š๊ธฐ ๋Œ์ž… ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—๋”ฐ๋ผ ๋‹ค๋ฅด๋ฏ€๋กœ ํ”„๋กœํ† ์ฝœ์Šคํƒ์€ ์–ด๋Š์ชฝ์—์„œ ๋จผ์ € ๋Š์–ด๋„ ์ƒ๊ด€์—†๊ฒŒ ๊ตฌ์„ฑ๋˜์–ด์žˆ๋‹ค ์—ฐ๊ฒฐ์„ ๋Š๋Š” ์ธก(์—ฌ๊ธฐ์„œ๋Š” ์„œ๋ฒ„๋ผ ๊ฐ€์ •)์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ Sockโ€ฆ

๋ฐ์ดํ„ฐ ์†ก์ˆ˜์‹  ๊ณผ์ •

๐Ÿ“ก ๋ฐ์ดํ„ฐ ์†ก์ˆ˜์‹  ๊ณผ์ • ํ”„๋กœํ† ์ฝœ ์Šคํƒ์— HTTP ๋ฆฌํ€˜์ŠคํŠธ ๋ฉ”์‹œ์ง€๋ฅผ ๋„˜๊ธด๋‹ค ๊ฐ€ ์‹คํ–‰๋˜๊ณ  ์ œ์–ด๊ฐ€ ๋Œ์•„์˜ค๋ฉด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ์†ก์‹  ๋ฐ์ดํ„ฐ๋ฅผ ํ”„๋กœํ† ์ฝœ์Šคํƒ์— ๊ฑด๋„ค์ฃผ๊ณ  ์ด๊ฒƒ์„ ๋ฐ›์€ ํ”„๋กœํ† ์ฝœ์Šคํƒ์ด ์†ก์‹ ๋™์ž‘์„ ์‹คํ–‰ํ•œ๋‹ค ํ”„๋กœํ† ์ฝœ ์Šคํƒ์€ ๋ฐ›์€ ๋ฐ์ดํ„ฐ์˜ ๋‚ด์šฉ์ด ๋ฌด์—‡์ธ์ง€ ์•Œ์ง€ ๋ชปํ•œ๋‹ค ํ”„๋กœํ† ์ฝœ ์Šคํƒ์€ ๋ฐ›์€ ๋ฐ์ดํ„ฐ๋ฅผ ์†ก์‹ ์šฉ ๋ฒ„ํผ ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅํ•ด๋‘๋Š”๋ฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ข…๋ฅ˜โ€ฆ

์„œ๋ฒ„์— ์ ‘์†ํ•˜๊ธฐ

๐Ÿ”Œ์„œ๋ฒ„์— ์ ‘์† ์†Œ์ผ“์„ ๋งŒ๋“ค๋ฉด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜(๋ธŒ๋ผ์šฐ์ €)์€ ๋ฅผ ํ˜ธ์ถœ ๊ทธ๋Ÿฌ๋ฉด ํด๋ผ์ด์–ธํŠธ์˜ ์†Œ์ผ“์€ ์„œ๋ฒ„์ธก ์†Œ์ผ“์— ์ ‘์†ํ•˜๋Š”๋ฐ ์ผ€์ด๋ธ”์€ ํ•ญ์ƒ ์ ‘์†๋œ ์ƒํƒœ์ด๋ฏ€๋กœ ๋ฐ์ดํ„ฐ ์†ก์ˆ˜์‹ ์ด ๊ฐ€๋Šฅํ•œ ์ƒํƒœ๋กœ ๋งŒ๋“œ๋Š” ๋™์ž‘์„ ์•Œ์•„๋ณด๋„๋ก ํ•˜์ž ์ ‘์†์˜ ์˜๋ฏธ๋Š” ๋ฌด์—‡์ผ๊นŒ ์†Œ์ผ“์„ ๋งŒ๋“  ์งํ›„์—” ์•„๋ฌด๊ฒƒ๋„ ๊ธฐ๋ก๋˜์–ด ์žˆ์ง€ ์•Š์•„ ํ†ต์‹ ์ƒ๋Œ€๊ฐ€ ๋ˆ„๊ตฌ์ธ์ง€ ์•Œ์ˆ˜ ์—†๋‹ค ๋ธŒ๋ผ์šฐ์ €๋Š” IP์ฃผ์†Œ์™€ ํฌํŠธ๋ฒˆํ˜ธ๋ฅผ ์กฐ์‚ฌํ•˜์—ฌ ์•Œ๊ณ ์žˆโ€ฆ

Protocol Stack์˜ ์‹œ์ž‘๊ณผ socket

โšก Protocol Stack์˜ ์‹œ์ž‘๊ณผ socket ํ”„๋กœํ† ์ฝœ ์Šคํƒ TCP/IP์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ „๊ธฐ์‹ ํ˜ธ๋กœ ๋งŒ๋“ค์–ด ๋ณด๋‚ธ๋‹ค ๋„คํŠธ์›Œํฌ ์ œ์–ด์šฉ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ํ”„๋กœํ† ์ฝœ ์Šคํƒ์ด๋ผ๊ณ  ํ•œ๋‹ค ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ๊ฑด๋‚ด์ค€ ๋ฉ”์„ธ์ง€๋ฅผ ํŒจํ‚ท์— ์ €์žฅํ•˜๊ณ  ์ˆ˜์‹ ์ฃผ์†Œ ๋“ฑ์˜ ์ œ์–ด์ •๋ณด๋ฅผ ๋ง๋ถ™์—ฌ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ• ์‹œ ํŒจํ‚ท์˜ ์ˆ˜์ • ๋ฐ ํ†ต์‹ ์˜ ๊ธฐ๋ณธ์„ ์กฐ์ ˆํ•˜๋Š” ์—ญํ•  ํ”„๋กœํ† ์ฝœ ์Šคํƒ์ด ํŒจํ‚ท์„ LAN ์–ด๋Œ‘ํ„ฐ(์ด๋”๋„ท,๋ฌด์„  Lโ€ฆ

๋ฐ์ดํ„ฐ ์†ก์ˆ˜์‹  ๊ณผ์ •(ํ”„๋กœํ† ์ฝœ ์Šคํƒ์— ์˜๋ขฐ)

๋ฐ์ดํ„ฐ ์†ก์ˆ˜์‹  ๊ณผ์ •(ํ”„๋กœํ† ์ฝœ ์Šคํƒ์— ์˜๋ขฐ) ๐Ÿ’ฌ ๋ฐ์ดํ„ฐ ์†ก ์ˆ˜์‹  ๋™์ž‘์˜ ๊ฐœ์š” IP์ฃผ์†Œ๋ฅผ ์กฐ์‚ฌํ–ˆ์œผ๋ฉด ์•ก์„ธ์Šค๋Œ€์ƒ(์›น์„œ๋ฒ„์—) ๋ฉ”์„ธ์ง€๋ฅผ ์†ก์‹ ํ•˜๋„๋ก OS์˜ ๋‚ด๋ถ€์— ์žˆ๋Š” ํ”„๋กœํ† ์ฝœ ์Šคํƒ์— ์˜๋ขฐ ํ•œ๋‹ค(Socket ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ด์šฉ) ์›น์„œ๋ฒ„์— ๋ณด๋‚ด๋Š” HTTP ๋ฉ”์„ธ์ง€๋Š” ๋””์ง€ํ„ธ ๋ฐ์ดํ„ฐ์ด๋ฏ€๋กœ ๋””์ง€ํ„ธ ๋ฐ์ดํ„ฐ๋ฅผ ์†ก์‹ ํ•˜๋„๋ก ์˜๋ขฐ ์ด ๋™์ž‘์€ ๋ชจ๋“  ๋„คํŠธ์›Œํฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ํ•ด๋‹น(DNS์„œ๋ฒ„ โ€ฆ

DNS ์„œ๋ฒ„์˜ ๋™์ž‘

๐Ÿ“ถ DNS ์„œ๋ฒ„์˜ ๋™์ž‘ ํด๋ผ์ด์–ธํŠธ์—์„œ ์กฐํšŒ ๋ฉ”์„ธ์ง€๋ฅผ ๋ฐ›์•„ ์‘๋‹ตํ•œ๋‹ค ์กฐํšŒ ๋ฉ”์„ธ์ง€ ๋‚ด์šฉ ์ด๋ฆ„ : ์„œ๋ฒ„๋‚˜ ๋ฉ”์ผ ๋ฐฐ์†ก ๋ชฉ์ ์ง€ (์ดˆ์ฐฝ๊ธฐ www๋ผ๊ณ  ๋“ฑ๋กํ•œ๊ฒŒ ๋งŽ์•„์„œ ๊ด€์Šต์ ์œผ๋กœ ์›น์„œ๋ฒ„๋ฅผ www๋กœ ์“ธ ๋ฟ ์ž„์˜์˜ ์ด๋ฆ„์œผ๋กœ ํƒ€์ž…๊ณผ ํ•จ๊ป˜ DNS์„œ๋ฒ„์— ๋“ฑ๋กํ•˜๊ฒŒ ๋˜๋ฉด ๊ทธ๊ฒƒ์ด ์›น์„œ๋ฒ„ ์ด๋ฆ„์ด๋œ๋‹ค, ์—„๋ฐ€ํžˆ ๋งํ•˜๋ฉด Aํƒ€์ž…์˜ ๊ฒฝ์šฐ IP์ฃผ์†Œ๋ฅผ ํ• ๋‹น๋ฐ›์€ ๊ธฐ๊ธฐ์˜ ์ด๋ฆ„) (mail ์„œ๋ฒ„๋‚˜ DBโ€ฆ

Http

๐Ÿ”ŒNetwork - HTTP ๊ฐœ์š” ๋ธŒ๋ผ์šฐ์ €์— URL ์„ ์ž…๋ ฅํ•˜๋ฉด ๋ธŒ๋ผ์šฐ์ €๋Š” URL์˜ ์˜๋ฏธ์— ๋”ฐ๋ผ request massage๋ฅผ ๋งŒ๋“ ๋‹ค ๊ทธ๋ฆฌ๊ณ  ์ด massage๋ฅผ web server์— ๋ณด๋‚ด์ฃผ๊ฒŒ ๋˜๋Š”๋ฐ ๋ฉ”์„ธ์ง€๋ฅผ ๋ณด๋‚ด๋Š”๊ฒƒ์€ ๋””์ง€ํ„ธ ๋ฐ์ดํ„ฐ๋ฅผ ์šด๋ฐ˜ํ•˜๋Š” ๊ตฌ์กฐ์ธ OS์— ๋‚ด์žฅ๋œ ๋„คํŠธ์›Œํฌ ์ œ์–ด์šฉ ์†Œํ”„ํŠธ ์›จ์–ด์— ์˜๋ขฐํ•˜์—ฌ massage๋ฅผ server๊นŒ์ง€ ์ „๋‹ฌํ•œ๋‹ค ๐Ÿ’ก www.โ€ฆ

IP์ฃผ์†Œ์™€ DNS์„œ๋ฒ„

โ™ป IP์ฃผ์†Œ์™€ DNS์„œ๋ฒ„ HTTP๋ฉ”์„ธ์ง€๋ฅผ ๋งŒ๋“ค์—ˆ์œผ๋ฉด OS์— ์˜๋ขฐํ•ด์„œ ๋„คํŠธ์›Œํฌ์— ์†ก์‹ ํ•ด์•ผ ํ•˜๋Š”๋ฐ ์ด๋•Œ ๋„๋ฉ”์ธ๋ช…์—์„œ IP์ฃผ์†Œ๋ฅผ ์กฐ์‚ฌํ•ด ์ง€์ •ํ•ด์ค€๋‹ค TCP/IP์˜ ๊ฐœ๋… ์ธํ„ฐ๋„ท์ด๋‚˜ ์‚ฌ๋‚ด LAN์€ TCP/IP์˜ ๊ฐœ๋…์— ๊ธฐ์ดˆํ•ด ๋งŒ๋“ค์–ด์กŒ๋‹ค ํ—ˆ๋ธŒ(ํŒจํ‚ท์ค‘๊ณ„์žฅ์น˜) + ๋ช‡๋Œ€์˜ PC์ ‘์† ==> ์„œ๋ธŒ๋„ท ์„œ๋ธŒ๋„ท์ด๋ผ๋Š” ์ž‘์€ ๋„คํŠธ์›Œํฌ๋ฅผ ๋ผ์šฐํ„ฐ๋กœ ์ ‘์† ํ•˜์—ฌ ์ „์ฒด ๋„คํŠธ์›Œํฌ ๊ตฌ์„ฑ (๊ฐ€์ •โ€ฆ