header-img
Info :

 

์ฐธ๊ณ  ์„œ์  - ์šด์˜์ฒด์ œ ๊ณต๋ฃก ์ฑ…

์ž‘์„ฑํ•  ๋•Œ ๋…ธ๋™์š”๋กœ ํ‹€์—ˆ๋˜ ๋…ธ๋ž˜.. ^.^ - https://youtu.be/YrlnU1ogdEU?si=sqY-8iNOv2m6z_BB

 

 

 

 

0. ๊ฐœ์š”

์šฐ๋ฆฌ๋Š” ์ปดํ“จํ„ฐ, ํœด๋Œ€ํฐ ๋“ฑ ๋งŽ์€ ์ „์ž๊ธฐ๊ธฐ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ์ด ๊ธฐ๊ธฐ๋กœ ๊ฐ„๋‹จํ•œ ์‘์šฉํ”„๋กœ๊ทธ๋žจ์„ ์—ฐ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด๋ณด์ž. ์šฐ๋ฆฌ๊ฐ€ ๋ณด๋Š” ๊ฒƒ์€ ํŠน์ • ์ •๋ณด๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” UI์ผ ๊ฒƒ์ด๋‹ค. ํ•˜์ง€๋งŒ ์ด UI๋ฅผ ๋„์šฐ๊ธฐ ์œ„ํ•ด ์šด์˜์ฒด์ œ๋Š” ์ˆ˜๋งŽ์€ ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•˜๊ณ  ์žˆ๋‹ค. ์ด๋ฒˆ ๊ธ€์—์„œ๋Š” ์šด์˜์ฒด์ œ๊ฐ€ ์ œ๊ณตํ•œ๋‹ค๋Š” ์„œ๋น„์Šค๊ฐ€ ๊ทธ๋ž˜์„œ ๋ญ๊ณ , ์„œ๋น„์Šค๋ฅผ ์š”์ฒญํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์–ด๋–ป๊ฒŒ ํ•ด์•ผ๋˜๋Š”์ง€ ์•Œ์•„๋ณผ ๊ฒƒ์ด๋‹ค. 

 

์šด์˜์ฒด์ œ์˜ ๋Œ€๋ถ€๋ถ„ ์„œ๋น„์Šค๋“ค์€ ์ปค๋„์—์„œ ์ด๋ค„์ง„๋‹ค. ๋”ฐ๋ผ์„œ ์šด์˜์ฒด์ œ์—๊ฒŒ ์„œ๋น„์Šค ์š”๊ตฌ == ์ปค๋„์—๊ฒŒ ์„œ๋น„์Šค ์š”๊ตฌ์™€ ์œ ์‚ฌํ•˜๋‹ค. ํ•˜์ง€๋งŒ ์ด ์ปค๋„์€ ์ž˜๋ชป ๊ฑด๋“œ๋ฆฌ๋ฉด ์ปดํ“จํ„ฐ ์‹œ์Šคํ…œ์ด ๋ง๊ฐ€์งˆ ์ˆ˜ ์žˆ๊ณ , ์‚ฌ์šฉ์ž ๋ณด์•ˆ์ด ์œ„ํ—˜ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ปค๋„์—๊ฒŒ ์„œ๋น„์Šค๋ฅผ ์š”๊ตฌํ•˜๋ ค๋ฉด ์—„๊ฒฉํ•œ ํ”Œ๋กœ์šฐ๋ฅผ ๊ฑฐ์ณ์•ผ ํ•œ๋‹ค. 

 

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

์—ฌ๊ธฐ์„œ ์•Œ ์ˆ˜ ์žˆ๋Š”๊ฑด, ์šฐ๋ฆฌ๊ฐ€ ์šด์˜์ฒด์ œ์—๊ฒŒ ์„œ๋น„์Šค๋ฅผ ์š”๊ตฌํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” System Call์„ ์‚ฌ์šฉํ•ด์•ผ ๋œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ์ด ์‹œ์Šคํ…œ ์ฝœ์„ ์š”์ฒญํ•˜๋Š” ์ฃผ์ฒด๊ฐ€ ๋ˆ„๊ตฌ๋ƒ์— ๋”ฐ๋ผ ํฌ๊ฒŒ ๋‘ ๊ฐ€์ง€๋กœ ๋‚˜๋‰œ๋‹ค.

  1. command interpreter๋กœ System call ์š”์ฒญํ•˜๊ธฐ.
  2. API๋กœ System call ์š”์ฒญํ•˜๊ธฐ.

์ด ๋‘ ๊ฐ€์ง€๋ฅผ ํ•˜๋‚˜์”ฉ ์‚ดํŽด๋ณผ ๊ฒƒ์ด๋ฉฐ, ์ „์ฒด ๋ชฉ์ฐจ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. 

๊ธ€์„ ํ•œ ๋ฒˆ ์ˆ˜์ •ํ•ด์„œ . . . ์ œ๋ชฉ์€ ๋‹ค๋ฅผ ์ˆ˜ ์žˆ์–ด์š” ^.^;;;

 

 

1. ์šด์˜์ฒด์ œ์˜ ์„œ๋น„์Šค

์•ฑ ํ•˜๋‚˜ ์—ด ๋•Œ๋„ ์šด์˜์ฒด์ œ์˜ ์ˆ˜๋งŽ์€ ์„œ๋น„์Šค๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๊ณ  ํ–ˆ๋‹ค. ์ด "์„œ๋น„์Šค"๊ฐ€ ๋Œ€์ฒด ๋ญ”์ง€ ์ด๋ฒˆ ๋‹จ๋ฝ์—์„œ ์†Œ๊ฐœํ•˜๊ณ ์ž ํ•œ๋‹ค. ์šด์˜์ฒด์ œ๊ฐ€ ํ•˜๋Š” ์ผ, ์ฆ‰ ์šด์˜์ฒด์ œ๊ฐ€ ์ œ๊ณตํ•˜๋Š” ์„œ๋น„์Šค๋Š” ์•„๋ž˜ ์‚ฌ์ง„์— ๋‚˜์™€์žˆ๋Š” ๊ฒƒ ์™ธ์—๋„ ๋งŽ๋‹ค. ํ•˜์ง€๋งŒ ์ค‘์‹ฌ์ด ๋˜๋Š” ๊ฒƒ ์œ„์ฃผ๋กœ ์†Œ๊ฐœํ•˜๊ณ ์ž ํ•œ๋‹ค.

์ด ๋„ค ๊ฐ€์ง€ ์„œ๋น„์Šค๊ฐ€ ์„œ๋กœ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋‹ค. 

 

 

1 - a) ์šด์˜์ฒด์ œ์˜ ์„œ๋น„์Šค 1 - ํ”„๋กœ๊ทธ๋žจ ์ˆ˜ํ–‰

์šด์˜์ฒด์ œ๊ฐ€ ์ œ๊ณตํ•˜๋Š” ๊ฐ€์žฅ ์ฃผ๋œ ์„œ๋น„์Šค, ๋ฐ”๋กœ ํ”„๋กœ๊ทธ๋žจ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๋Šฅ๋ ฅ์ด๋‹ค. ๋‚˜๋Š” ์ด๊ฒƒ์ด ์šด์˜์ฒด์ œ๊ฐ€ ์žˆ๋Š” ์ฃผ ๋ชฉ์ ์ด๋ผ๊ณ  ์ƒ๊ฐํ•œ๋‹ค. ์™œ๋ƒํ•˜๋ฉด, ๋‹ค๋ฅธ ์„œ๋น„์Šค๋“ค์˜ ๋ชฉ์ ์ด ๊ฒฐ๊ตญ ํ”„๋กœ๊ทธ๋žจ ์ˆ˜ํ–‰์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. << ์ด๋ ‡๊ฒŒ ์ƒ๊ฐํ•œ ์ด์œ ๋Š” ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ๊ณผ์ •์— ์žˆ๋‹ค. 

 

์šฐ๋ฆฌ๊ฐ€ GUI์—์„œ ์•„์ด์ฝ˜ ๋”ธ๊นํ•ด์„œ ์—ฌ๋Š” ํ”„๋กœ๊ทธ๋žจ์€, ์‚ฌ์‹ค ๋งˆ๋ฒ•๊ฐ™์€ ๊ณผ์ •์„ ๊ฑฐ์ณ ๋‚˜์˜จ๋‹ค. ์™œ๋ƒํ•˜๋ฉด, ์ฒ˜์Œ ์‹œ์ž‘ ๋‹จ๊ณ„๋Š” ๊ทธ๋ƒฅ ์ฝ”๋“œ + ๋ฐ์ดํ„ฐ ๋ฉ์–ด๋ฆฌ์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด ๋ฉ์–ด๋ฆฌ๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด์„œ ์ผ๋‹จ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ฆฐ๋‹ค. ์ด๊ฑธ๋กœ ๋˜๋Š”๊ฒŒ ์•„๋‹ˆ๊ณ , ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ์ž์›์„ ํ• ๋‹น ๋ฐ›์•„์•ผ ํ•œ๋‹ค. CPUํ•œํ…Œ ์ž์›์„ ํ• ๋‹น ๋ฐ›์•˜๋‹ค๋ฉด, Program Counter๊ฐ€ ์‹คํ–‰ํ•ด์•ผ ๋˜๋Š” ์œ„์น˜๋ฅผ ํ•˜๋‚˜์”ฉ ๊ฐ€๋ฆฌํ‚ค๋ฉด์„œ ...์ค‘๋žต... ํ”„๋กœ๊ทธ๋žจ์„ ๊ฒฐ๋ก ์ ์œผ๋กœ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด๋‹ค. (์ค‘๋žต์ด๋ผ๊ณ  ์จ๋‘” ๊ฒƒ์ฒ˜๋Ÿผ ๊ต‰์žฅํžˆ ๋งŽ์€ ๊ณผ์ •์ด ์ถ”๊ฐ€์ ์œผ๋กœ ๋“ค์–ด๊ฐ„๋‹ค.) 

 

์–ด์จŒ๋“  ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰์— ํ•„์ˆ˜์ ์ธ ์ด ์ž‘์—…๋“ค์„ ์šด์˜์ฒด์ œ๊ฐ€ ํ•ด์ค€๋‹ค. ๋”ฐ๋ผ์„œ, ์šด์˜์ฒด์ œ์˜ ๋ฉ”์ธ ์„œ๋น„์Šค๊ฐ€ "ํ”„๋กœ๊ทธ๋žจ ์ˆ˜ํ–‰"์ด๋ผ๊ณ  ์ƒ๊ฐํ•œ๋‹ค. ๐Ÿ˜Ž ๊ทธ๋ฆฌ๊ณ  ์•ž์œผ๋กœ ์†Œ๊ฐœํ•  3๊ฐ€์ง€์˜ ์„œ๋น„์Šค๋„ ํ”„๋กœ๊ทธ๋žจ ์ˆ˜ํ–‰์„ ํ•˜๊ธฐ ์œ„ํ•ด ์ œ๊ณตํ•ด์•ผ ํ•˜๋Š” ์„œ๋น„์Šค์ด๋‹ค.

 

 

1 - b) ์šด์˜์ฒด์ œ์˜ ์„œ๋น„์Šค 2 - ์ž์› ํ• ๋‹น

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

 

์–ด์จŒ๋“  ์ค‘์š”ํ•œ ์ ์€ ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ž์›์ด ํ•„์š”ํ•œ๋ฐ, ์ด ์ž์›์„ ํ• ๋‹นํ•ด์ฃผ๋Š” ์นœ๊ตฌ๊ฐ€ ์šด์˜์ฒด์ œ๋ผ๋Š” ์ ์ด๋‹ค. 

 

 

1 - c) ์šด์˜์ฒด์ œ์˜ ์„œ๋น„์Šค 3 - ํŒŒ์ผ ์‹œ์Šคํ…œ ์กฐ์ž‘

์„ธ ๋ฒˆ์งธ๋กœ ์†Œ๊ฐœํ•  ์šด์˜์ฒด์ œ์˜ ์ฃผ์š” ์„œ๋น„์Šค๋Š” ํŒŒ์ผ ์‹œ์Šคํ…œ ์กฐ์ž‘์ด๋‹ค. CS์ ์œผ๋กœ ํŒŒ์ผ ์‹œ์Šคํ…œ ์กฐ์ž‘์€ ํŒŒ์ผ์˜ ์†Œ์œ ๊ถŒ์— ๋”ฐ๋ผ CRUD๊ฐ€ ๊ฐ€๋Šฅํ•œ๊ฐ€? ๋ผ๋Š” ๋ง์ด๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด ํŒŒ์ผ ์‹œ์Šคํ…œ ์กฐ์ž‘์€ ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰์— ์žˆ์–ด์„œ ํ•„์ˆ˜์ ์ธ ์š”์†Œ์ด๋‹ค. ์™œ๋ƒํ•˜๋ฉด, ํ”„๋กœ๊ทธ๋žจ์˜ ์ดˆ๊ธฐ ์ƒํƒœ๋Š” ์ฝ”๋“œ+๋ฐ์ดํ„ฐ ๋ฉ์–ด๋ฆฌ์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ์ด ์ฝ”๋“œ+๋ฐ์ดํ„ฐ ๋ฉ์–ด๋ฆฌ๋Š” ์ฃผ๋กœ ํŒŒ์ผ ์‹œ์Šคํ…œ์— ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ด ์ฝ”๋“œ+๋ฐ์ดํ„ฐ ํŒŒ์ผ์— ์ ‘๊ทผ๋ถ€ํ„ฐ ๊ฐ€๋Šฅํ•ด์•ผ ํ•œ๋‹ค. 

 

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

 

 

1 - d) ์šด์˜์ฒด์ œ์˜ ์„œ๋น„์Šค 4 - ์ž…์ถœ๋ ฅ ์—ฐ์‚ฐ

์ด๊ฑด ์ผ๋ฐ˜์ ์œผ๋กœ ์šฐ๋ฆฌ๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ƒ๊ฐํ•ด๋ณด๋ฉด ๋œ๋‹ค. ์šฐ๋ฆฌ๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•  ๋•Œ ๋งˆ์šฐ์Šค or ํ‚ค๋ณด๋“œ or ํ„ฐ์น˜ ์Šคํฌ๋ฆฐ์œผ๋กœ ์ˆ˜๋งŽ์€ ์ž…๋ ฅ์„ ํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ํ™”๋ฉด์€ ์šฐ๋ฆฌ์—๊ฒŒ ์–ด๋–ค ์ •๋ณด๋“ค์„ ์ถœ๋ ฅํ•ด์ค€๋‹ค. โžก๏ธ ์ •๋ฆฌํ•ด๋ณด์ž๋ฉด, ํ”„๋กœ์„ธ์Šค๋Š” ๋Ÿฐํƒ€์ž„ ์ค‘ ์ˆ˜๋งŽ์€ ์ž…์ถœ๋ ฅ์„ ์š”๊ตฌํ•œ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ํ”„๋กœ์„ธ์Šค๋Š” ์ž…์ถœ๋ ฅ์„ ์ฒ˜์Œ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๋Š” ๋‹จ๊ณ„๋Š” ์•„๋‹ˆ๋‹ค. ์šด์˜์ฒด์ œ๊ฐ€ ๊ฐ€์žฅ ๋จผ์ € ์ž…์ถœ๋ ฅ์„ ๋ฐ›๊ณ , ํ”„๋กœ์„ธ์Šค์—๊ฒŒ "์ด๋Ÿฐ ์ž…์ถœ๋ ฅ์ด ์ผ์–ด๋‚ฌ๋Š”๋ฐ ๋„ˆ ํ•„์š”ํ•ด?"๋ผ๊ณ  ์ „๋‹ฌํ•ด์ฃผ๋Š” ํ˜•ํƒœ์ด๋‹ค. 

 

์œ ์ €
โฌ‡๏ธ
ํ‚ค๋ณด๋“œ (HW)
โฌ‡๏ธ
์šด์˜์ฒด์ œ
โฌ‡๏ธ
APP

 

์™œ ์šด์˜์ฒด์ œ๊ฐ€ ๋Œ€์‹  ํ•ด์ค„๊นŒ?

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

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

 

๋”๋ณด๊ธฐ
์ด๊ฑด claude๊ฐ€ ์ด ๋‹จ๋ฝ ๋ณด๋”๋‹ˆ ์š”์•ฝํ•ด์„œ ๋‹ค์ด์–ด๊ทธ๋žจ ๋งŒ๋“ค์–ด์ค€๊ฑฐ๋‹ค. ๊ธฐํŠนํ•ด์„œ ์ฒจ๋ถ€ํ•จ ใ…‹ใ…‹;

 

 

2. ๊ทธ๋ž˜์„œ ์šด์˜์ฒด์ œ์—๊ฒŒ ์ผ์„ ์‹œํ‚ค๋Š” ๋ฐฉ๋ฒ•?

์ง€๊ธˆ๊นŒ์ง€๋Š” ์šด์˜์ฒด์ œ๊ฐ€ ์ œ๊ณตํ•ด์ฃผ๋Š” ์„œ๋น„์Šค์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์•˜๋‹ค. ์„œ๋น„์Šค์˜ ๋ฉ”์ธ ๋ชฉ์ ์€ ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰์ด๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰์„ ์œ„ํ•ด ์ž์› ํ• ๋‹น, ํŒŒ์ผ ์‹œ์Šคํ…œ ์กฐ์ž‘, ์ž…์ถœ๋ ฅ ์—ฐ์‚ฐ ๋“ฑ์˜ ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•œ๋‹ค๊ณ  ์„ค๋ช…ํ–ˆ๋‹ค. ์ง€๊ธˆ๋ถ€ํ„ฐ๋Š”, ์šด์˜์ฒด์ œ์—๊ฒŒ ์ด ์„œ๋น„์Šค๋“ค์„ ์–ด๋–ป๊ฒŒ ์š”๊ตฌํ•  ์ˆ˜ ์žˆ๋Š”์ง€์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๋ ค๊ณ  ํ•œ๋‹ค. ์—ฌ๊ธฐ์„œ๋Š” OS GUI๋ฅผ ์‚ฌ์šฉํ•ด ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•˜๋Š” ๊ฒฝ์šฐ๋Š” ์ œ์™ธํ•œ๋‹ค. ์ด๊ฑด ๋„ˆ๋ฌด ๋‹น์—ฐํ•˜์ž–์•„~!

 

๊ฐœ์š”์—์„œ ์–ธ๊ธ‰ํ–ˆ๋“ฏ์ด ์šด์˜์ฒด์ œ์—๊ฒŒ ์„œ๋น„์Šค๋ฅผ ์š”๊ตฌํ•˜๋ ค๋ฉด, System Call์„ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค. ์šฐ๋ฆฌ๋Š” ์ฃผ๋กœ ํฌ๊ฒŒ ๋‘ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์œผ๋กœ ์ด System call์„ ํ˜ธ์ถœํ•œ๋‹ค. ์ฒซ ๋ฒˆ์งธ๋Š” ์ฃผ๋กœ User๊ฐ€ ํ„ฐ๋ฏธ๋„์„ ํ†ตํ•ด ์‹œ์Šคํ…œ ์ฝœ์„ ํ˜ธ์ถœํ•˜๋Š”Command Interpreter๋ฅผ ํ™œ์šฉํ•œ ๋ฐฉ์‹์ด๋‹ค. ๋‘ ๋ฒˆ์งธ๋Š” ๊ฐœ๋ฐœ์ž๊ฐ€ ์ฃผ๋กœ ์‚ฌ์šฉํ•˜๋Š”์ธ API๋ฅผ ํ™œ์šฉํ•œ ๋ฐฉ์‹์ด๋‹ค.

 

 

2 - a) ๋ฐฉ๋ฒ• 1 - Command Interpreter

Command Interpreter๋ฅผ ํ™œ์šฉํ•ด์„œ OS์—๊ฒŒ ์„œ๋น„์Šค๋ฅผ ์š”์ฒญํ•˜๋Š” ๊ทธ ํ๋ฆ„์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. 

  1. ์œ ์ €๊ฐ€ ๋ช…๋ น์–ด๋ฅผ Terminal์— ์ž…๋ ฅํ•œ๋‹ค.
  2. Terminal์€ ์ž…๋ ฅ๋ฐ›์€ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ ์ฃผ์ฒด์ธ Command Interpreter, Shell์—๊ฒŒ ์ „๋‹ฌํ•œ๋‹ค.
  3. Shell์€ ์ด๊ฑธ ์šด์˜์ฒด์ œ๊ฐ€ ์•Œ์•„๋“ค์„ ์ˆ˜ ์žˆ๋Š” ๋ช…๋ น์–ด๋กœ Interpreting ์ž‘์—…์„ ํ•œ๋‹ค.
    1. ์ฃผ๋กœ ์ ์ ˆํ•œ System call์ด ๋  ๊ฒƒ์ด๋‹ค.
  4. ์šด์˜์ฒด์ œ์—๊ฒŒ ์š”์ฒญ์„ ํ•œ๋‹ค.

 

์™œ ์ปค๋งจ๋“œ ์ธํ„ฐํ”„๋ฆฌํ„ฐ, ์ฆ‰ ์‰˜์ด ์žˆ๋Š”๊ฑธ๊นŒ? ๊ฐ€์žฅ ํฐ ๋ชฉ์ ์€ ์šด์˜์ฒด์ œ์˜ ์„œ๋น„์Šค๋ฅผ ์œ ์ €๋„ ์‰ฝ๊ฒŒ ์‚ฌ์šฉํ•˜๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•จ์ด๋‹ค.

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

๊ทธ๋ฆฌ๊ณ  ๋ช…๋ น์–ด๋กœ ๋ฐ˜๋ณต ์ž‘์—…ํ•  ์ผ ์žˆ์„๋•Œ, ์‰˜์ด ์œ ์šฉํ•˜๋‹ค. ์™œ๋ƒํ•˜๋ฉด ์—ฌ๋Ÿฌ ์‰˜ ๋ช…๋ น์–ด๋ฅผ ํ•œ ๋ฒˆ์— ๋ชจ์•„์„œ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๊ทธ๊ฒŒ ๋ฐ”๋กœ ์‰˜ ์Šคํฌ๋ฆฝํŠธ(.sh), ๋ฐฐ์น˜ ํŒŒ์ผ(.bat)์ด๋‹ค. 

 

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

 

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

 

 

2 - b) ๋ฐฉ๋ฒ• 2 - API(Application Programming Interface)

์šฐ๋ฆฌ๋Š” ๊ณ ์˜ค๊ธ‰ ์–ธ์–ด๋ฅผ ํ™œ์šฉํ•ด์„œ ์•ˆ๋“œ๋กœ์ด๋“œ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•œ๋‹ค. ๊ณ ์˜ค๊ธ‰ ์–ธ์–ด๋กœ API๋“ค์„ ํ™œ์šฉํ•ด์„œ ์•ฑ์„ ๋งŒ๋“ค์–ด๋‚ธ๋‹ค. ํ•˜์ง€๋งŒ low level์—์„œ๋Š” ์šด์˜์ฒด์ œ๊ฐ€ ์—ด์ผ์„ ํ•˜๊ณ  ์žˆ๋‹ค. ๋‹ค์‹œ ๋งํ•˜๋ฉด, API๊ฐ€ ํ˜ธ์ถœํ•œ ์ˆ˜๋งŽ์€ ์‹œ์Šคํ…œ ์ฝœ์˜ ์—ฐ์†์œผ๋กœ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์‹คํ–‰๋œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋Œ€๋ถ€๋ถ„์˜ ๊ฐœ๋ฐœ์ž๋“ค์€ ์ด ๋กœ์šฐ ๋ ˆ๋ฒจ๊นŒ์ง€๋Š” ์‹ ๊ฒฝ์“ฐ์ง€๋„ ์•Š๊ณ , ๋ช‡๋ช‡์€ ์ด๋Ÿฐ ์ผ๋“ค์ด ์ผ์–ด๋‚˜๊ณ  ์žˆ๋Š”์ง€๋„ ๋ชจ๋ฅด๊ณ  ์žˆ๋‹ค. ์ผ๋‹จ ๋‚˜๋Š” ์ด ์‚ฌ์‹ค์„ ๋ชฐ๋ž์—ˆ๋‹ค ^^...

์™œ ๋ชฐ๋ž์„๊นŒ? ๊ทธ๊ฒŒ ๋ฐ”๋กœ API์˜ ์„ค๊ณ„ ์˜๋„์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ์šฐ๋ฆฌ๋Š” ์ฃผ๋กœ API๋งŒ ์‚ฌ์šฉํ•ด์„œ ๊ฐœ๋ฐœ์„ ํ•œ๋‹ค. API doc์„ ๋ณด๊ณ , ์ด๋Ÿฐ ์ผ์„ ํ•˜๊ฒ ๊ตฌ๋‚˜๋ผ๊ณ  ์ดํ•ดํ•˜๊ณ  ์‚ฌ์šฉํ•œ๋‹ค. ์‹ค์ œ๋กœ ๋กœ์šฐ ๋ ˆ๋ฒจ์—์„œ ๋ญ” ์ผ์ด ์ผ์–ด๋‚˜๊ณ  ์žˆ๋Š”์ง€๋Š” ์šฐ๋ฆฌ์˜ ๊ด€์‹ฌ์‚ฌ๊ฐ€ ์•„๋‹ˆ๋‹ค. ์ฆ‰, API๊ฐ€ ์‹ค์ œ๋กœ ๋ญ˜ ํ•˜๋Š”์ง€๋Š” ์‹ ๊ฒฝ์“ฐ์ง€ ์•Š์•„๋„ ๋˜๋Š” ์Šˆํผ ์žฅ์ ์ด ์ƒ๊ธด ๊ฒƒ์ด๋‹ค. 


์ด๊ฒŒ ๋ฌด์Šจ ๋ง์ด๋ƒ๋ฉด, ์•ˆ๋“œ๋กœ์ด๋“œ ์•ฑ์—์„œ ํŠน์ • ํŒŒ์ผ์„ ์ฝ๊ณ  ์‹ถ์–ด์„œ Java File IO์˜ read ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ–ˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ด๋ณด์ž. ๊ทธ๋Ÿฌ๋ฉด ๋‚ด๋ถ€์ ์œผ๋กœ๋Š” ์•„๋ž˜์™€ ๊ฐ™์€ ์‹œ์Šคํ…œ ์ฝœ๋“ค์ด ํ˜ธ์ถœ๋  ๊ฒƒ์ด๋‹ค. (์‚ฌ์‹ค ๋” ๋งŽ์ด ํ˜ธ์ถœ๋จ.)

  • ์ž…๋ ฅ ํŒŒ์ผ ์ด๋ฆ„ ํš๋“
  • ์ž…๋ ฅ ํŒŒ์ผ ์—ด๊ธฐ
  • ์ž…๋ ฅ ํŒŒ์ผ๋กœ๋ถ€ํ„ฐ ์ฝ์–ด ๋“ค์ธ๋‹ค. (nํšŒ til EOF)
  • ์ž…๋ ฅ ํŒŒ์ผ ๋‹ซ๊ธฐ

๊ทธ๋Ÿฌ๋‚˜ ์šฐ๋ฆฌ๋Š” read ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ์ด๋Ÿฐ ์‹œ์Šคํ…œ ์ฝœ๋“ค์„ ํ•˜๋‚˜ํ•˜๋‚˜ ๋”ฐ์ง€์ง€ ์•Š๋Š”๋‹ค. ์šฐ๋ฆฌ๊ฐ€ read api๋กœ ๊ธฐ๋Œ€ํ•˜๋Š” ๊ฑด, ํŠน์ • ํŒŒ์ผ์„ ์ฝ์–ด์ค„ ๊ฒƒ์ด๋ผ๋Š” ๊ฒƒ ๋ฟ์ด๋‹ค. ๋กœ์šฐ ๋ ˆ๋ฒจ์—์„œ ๋ญ˜ ํ•˜๋Š”์ง€๋Š” ์ „ํ˜€ ๊ณ ๋ คํ•˜์ง€ ์•Š๋Š”๋‹ค. 

 

๊ทธ๋Ÿฌ๋‹ˆ๊นŒ ์—ฌ๊ธฐ์„œ Application Programming Interface์˜ ๊ฐœ๋…์„ ์žก์„ ์ˆ˜ ์žˆ๋‹ค. API๋Š” ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ๊ธฐ๋Œ€ํ•˜๋Š” ์‹œ์Šคํ…œ ์ฝœ๋“ค์„ ์ถ”์ƒํ™”ํ•œ ํ˜•ํƒœ์ด๋‹ค. ์œ„ํ‚ค๋ฐฑ๊ณผ์˜ API ์†Œ๊ฐœ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. 

API์˜ ํ•œ ๊ฐ€์ง€ ๋ชฉ์ ์€ ์‹œ์Šคํ…œ์ด ๋™์ž‘ํ•˜๋Š” ๋ฐฉ์‹์— ๊ด€ํ•œ ๋‚ด๋ถ€์˜ ์„ธ์„ธํ•œ ๋ถ€๋ถ„์„ ์ˆจ๊ธฐ๋Š” ๊ฒƒ์œผ๋กœ, ๋‚ด๋ถ€์˜ ์„ธ์„ธํ•œ ๋ถ€๋ถ„์ด ๋‚˜์ค‘์— ๋ณ€๊ฒฝ๋˜๋”๋ผ๋„ ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ์œ ์šฉํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ณ  ์ผ์ •ํ•˜๊ฒŒ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„๋“ค๋งŒ ๋…ธ์ถœ์‹œํ‚จ๋‹ค. 

 

์—ฌํŠผ API์˜ ๊ฐœ๋…๊นŒ์ง€ ์†Œ๊ฐœํ•˜๊ธฐ๋Š” ํ–ˆ๋‹ค. ๊ทผ๋ฐ ์ •ํ™•ํžˆ ์™œ ์ถ”์ƒํ™”ํ•œ๊ฒŒ ์Šˆํผ ์žฅ์ ์ผ๊นŒ? 

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

 

API ์“ฐ๋ฉด ์กฐ๊ธˆ ๋œ ๋ถˆ์•ˆํ•ด์ ธ๋„ ๋ผ . . . ์กฐ๊ธˆ ๋œ ๊ท€์ฐฎ์•„์ง€๊ฒŒ ๋ผ . . .

 

 

RTE(Runtime Environment)

์œ— ๋‹จ๋ฝ์—์„œ๋Š” API๊ฐ€ ์ง์ ‘ ์‹œ์Šคํ…œ ์ฝœ์„ ์š”์ฒญํ•œ๋‹ค๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋งํ–ˆ๋Š”๋ฐ, ์™„์ „ํžˆ ํ‹€๋ฆฐ ๋ง์€ ์•„๋‹ˆ๊ธด ํ•œ๋ฐ ... ์‚ฌ์‹ค ํ•œ ๋‹จ๊ณ„๊ฐ€ ๋” ์ˆจ์–ด์ ธ ์žˆ๋‹ค. ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์ผ๋‹จ API ํ˜ธ์ถœ์„ ํ•˜๋ฉด ์ตœ์ข…์ ์œผ๋กœ๋Š” System Call์ด ํ˜ธ์ถœ ๋˜๋Š” ๊ฒƒ์€ ๋งž๋‹ค. ํ•˜์ง€๋งŒ ์–ด๋–ค System Call์„ ํ˜ธ์ถœํ•ด์ฃผ๋ฉด ์ข‹์„์ง€ ํŒ๋‹จ์„ ํ•ด์ฃผ๋Š” ์นœ๊ตฌ๊ฐ€ ํ•„์š”ํ•˜๋‹ค.

RTE's System Call Interface๊ฐ€ ํ•˜๋Š” ์—ญํ• 

๊ทธ๊ฒŒ ๋ฐ”๋กœ RTE์˜ System Call Interface๋‹ค. ์ด System Call Interface๊ฐ€ ํ•„์š”ํ•œ ์ด์œ ๋Š”, ์šด์˜์ฒด์ œ์˜ ๋‹ค์–‘์„ฑ๊ณผ ๊ด€๋ จํ•ด์„œ ์ƒ๊ฐํ•ด๋ณด๋ฉด ๋œ๋‹ค. ์šด์˜์ฒด์ œ๋Š” ๋Œ€๋ถ€๋ถ„ ๋น„์Šทํ•œ System Call ํ˜•์‹์„ ๊ฐ€์ง€๊ณ  ์žˆ์ง€๋งŒ, ์กฐ๊ธˆ์”ฉ ๋‹ค๋ฅผ ์ˆ˜ ์žˆ๋‹ค. ์ฆ‰ ์ด ๋ง์€, ์šด์˜์ฒด์ œ์˜ ํ™˜๊ฒฝ์— ๋งž๊ฒŒ ์ ์ ˆํ•œ ์‹œ์Šคํ…œ ์ฝœ์ด ๋ถˆ๋ ค์•ผ ํ•œ๋‹ค๋Š” ๋ง์ด๋‹ค. ๊ทธ๋ž˜์„œ ์ด ์—ญํ• ์„ ํ•ด์ฃผ๋Š” ๊ฒƒ์ด ๋ฐ”๋กœ System Call Interface์ด๋‹ค. ๊ทธ๋ž˜์„œ API ์š”์ฒญ์ด ๋“ค์–ด์˜ค๋ฉด, System Call Interface๊ฐ€ ์š”์ฒญ์„ ๋จผ์ € ๊ฐ€๋กœ์ฑˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์–ด๋–ค ์‹œ์Šคํ…œ ์ฝœ์ด ํ•„์š”ํ• ์ง€ ํŒ๋‹จํ•˜๊ณ  ํ˜ธ์ถœํ•ด์ค€๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ทธ return ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

์ด๋ ‡๊ฒŒ๋งŒ ์ž‘์„ฑํ•˜๋ฉด RTE๊ฐ€ ์‹œ์Šคํ…œ ์ฝœ ๋งคํผ์ฒ˜๋Ÿผ ๋Š๊ปด์ง€๋Š”๋ฐ, ๊ทธ๊ฑด ์•„๋‹ˆ๋‹ค. ์ด์™ธ์—๋„ ์šด์˜์ฒด์ œ ํ™˜๊ฒฝ์„ ์•Œ์•„์•ผ๋งŒ ์ˆ˜ํ–‰ ๊ฐ€๋Šฅํ•œ ์ผ๋“ค์„ ํ•ด์ค€๋‹ค. ๊ทธ๋ž˜์„œ ์ฑ…์—์„œ๋Š” RTE๋ฅผ, Applcation์„ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ์ „์ฒด ์†Œํ”„ํŠธ์›จ์–ด๋ผ๊ณ  ์†Œ๊ฐœํ•œ๋‹ค. 

 

 

์•ˆ๋“œ๋กœ์ด๋“œ์˜ RTE

๋”๋ณด๊ธฐ

Android์˜ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ์ฝ”ํ‹€๋ฆฐ, ์ž๋ฐ”๋กœ ์ž‘์„ฑ๋œ๋‹ค. ์ด ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” RTE๊ฐ€ ํ•„์š”ํ•œ๋ฐ, ์•ˆ๋“œ๋กœ์ด๋“œ์—์„  ART์ด๋‹ค. ๐Ÿฅธ (๋ฌผ๋ก  ์ฝ”๋“œ ์ž์ฒด๋Š” JVM์„ ์‚ฌ์šฉํ•ด์„œ .class ํŒŒ์ผ๋กœ ์ปดํŒŒ์ผ ๋˜๊ธฐ๋Š” ํ•œ๋‹ค) 

Android ๋Ÿฐํƒ€์ž„(ART)
AOSP์—์„œ ์ œ๊ณตํ•˜๋Š” ์ž๋ฐ” ๋Ÿฐํƒ€์ž„ ํ™˜๊ฒฝ์ž…๋‹ˆ๋‹ค. ART๋Š” ์•ฑ์˜ ๋ฐ”์ดํŠธ ์ฝ”๋“œ๋ฅผ ๊ธฐ๊ธฐ์˜ ๋Ÿฐํƒ€์ž„ ํ™˜๊ฒฝ์—์„œ ์‹คํ–‰๋˜๋Š” ํ”„๋กœ์„ธ์„œ๋ณ„ ๋ช…๋ น์œผ๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

 

 

JAVA์˜ RTE

๋”๋ณด๊ธฐ

JAVA์˜ ๋Ÿฐํƒ€์ž„ ํ™˜๊ฒฝ์€ JRE์ด๋‹ค. 

 

AWS ๋ฌธ์„œ์—์„œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์†Œ๊ฐœํ•˜๊ณ  ์žˆ๋‹ค. ์„ค๋ช…์€ Java์˜ ํŠน์ˆ˜์„ฑ์ธ, JRE๋งŒ ๊น”๋ ค ์žˆ๋‹ค๋ฉด ์ž๋ฐ” ์ฝ”๋“œ๋Š” ์–ด๋””์„œ๋“ ์ง€ ์‹คํ–‰ ๊ฐ€๋Šฅํ•ด์š” ~ ์™€ ์—ฐ๊ด€์ด ์žˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์–ด์จŒ๋“  ์š”์ง€๋Š”, ์ž๋ฐ” ํ”„๋กœ๊ทธ๋žจ์„ ๋Œ๋ฆฌ๋Š”๋ฐ ํ•„์š”ํ•œ ์šด์˜์ฒด์ œ ๋ฆฌ์†Œ์Šค๋ฅผ ์—ฐ๊ฒฐํ•ด์ฃผ๋Š” ์นœ๊ตฌ๊ฐ€ JRE๋ผ๋Š” ์ ์ด๋‹ค. 

 

 

3. ์ •๋ฆฌํ•˜์ž๋ฉด..

์•„์ฃผ ๊ฐ„๋‹จํ•˜๊ฒŒ ์ •๋ฆฌํ•ด๋ณด๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. ์šด์˜์ฒด์ œ๋Š” ์—ฌ๋Ÿฌ ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•œ๋‹ค. ์ด์ค‘ ๊ฐ€์žฅ ๋ฉ”์ธ์ด ๋˜๋Š” ๊ฒƒ์€ ํ”„๋กœ๊ทธ๋žจ ์ˆ˜ํ–‰์ด๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ž์›ํ• ๋‹น, ํŒŒ์ผ ์‹œ์Šคํ…œ ์กฐ์ž‘, ์ž…์ถœ๋ ฅ ์—ฐ์‚ฐ ๋“ฑ๊ณผ ๊ฐ™์€ ์„œ๋น„์Šค๋“ค๋„ ์ œ๊ณตํ•œ๋‹ค. ์ด ์„œ๋น„์Šค๋ฅผ ์š”์ฒญํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ํฌ๊ฒŒ ๋‘ ๊ฐ€์ง€ ๋ฐฉ์‹์ด ์žˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ๊ฐ€ ์‚ฌ์šฉ์ž๋“ค์ด ์ฃผ๋กœ ์“ฐ๋Š” Command Interpreter๋ฅผ ํ™œ์šฉํ•œ ๋ฐฉ์‹์ด๋‹ค. Command Interpreter๋ฅผ ํ†ตํ•ด ๋ช…๋ น์–ด๋ฅผ ์‹œ์Šคํ…œ ์ฝœ๋กœ ๋ฒˆ์—ญํ•ด์„œ ์š”์ฒญํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋‘ ๋ฒˆ์งธ๋Š” ๊ฐœ๋ฐœ์ž๋“ค์ด ์ฃผ๋กœ ์‚ฌ์šฉํ•˜๋Š” API๋ฅผ ํ™œ์šฉํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค. API๋ฅผ ํ˜ธ์ถœํ•˜๋ฉด RTE's System Call Interface๊ฐ€ ์ ์ ˆํ•œ ์‹œ์Šคํ…œ ์ฝœ์„ ํ˜ธ์ถœํ•œ๋‹ค. 

 

์—ฌ๊ธฐ๊นŒ์ง€๊ฐ€ ์šด์˜์ฒด์ œ์˜ ์„œ๋น„์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ด์ž ์šด์˜์ฒด์ œ์—๊ฒŒ ์ผํ•˜๊ฒŒ ๋งŒ๋“ค๊ธฐ์— ๊ด€๋ จ๋œ ๋‚ด์šฉ์ด๋‹ค. 

 

 

# ๋Œ€๋ฌธ์šฉ ์ด๋ฏธ์ง€

 

 

 

'CS > etc' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[etc] vi editor ๊ฐ„๋‹จํ•œ ๋ช…๋ น์–ด  (0) 2023.04.07
๋”๋ณด๊ธฐ
CS/etc