๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
์‹œ๋„/๊ตญ๋น„์ง€์›

[D+03] ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ธฐ์ดˆ (์ปดํŒŒ์ผ vs ์ธํ„ฐํ”„๋ฆฟ)

by ๐Ÿ‡๋ฐ•๋ด‰๋ด‰๐Ÿ‡ 2022. 9. 22.

 

 

๊ตญ๋น„์ง€์› D+03

- ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ธฐ์ดˆ -

 


 

ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ธฐ์ดˆ

ํ”„๋กœ๊ทธ๋žจ์„ ๋งŒ๋“œ๋Š” ์‚ฌ๋žŒ๊ณผ ํ”„๋กœ๊ทธ๋žจ์„ ์‚ฌ์šฉํ•˜๋Š” ์‚ฌ๋žŒ์˜ ์ž…์žฅ์€ ์„œ๋กœ ๋‹ค๋ฅด๋‹ค.

์ด์ œ๋ถ€ํ„ฐ ์šฐ๋ฆฌ๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ๋งŒ๋“ค ์˜ˆ์ •์ด๊ธฐ ๋•Œ๋ฌธ์— ํ”„๋กœ๊ทธ๋žจ์„ ๋งŒ๋“œ๋Š” ์‚ฌ๋žŒ์˜ ๊ด€์ ์œผ๋กœ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๋„๋ก ํ•˜์ž.

 

ํ”„๋กœ๊ทธ๋žจ์„ ๋งŒ๋“ค๊ณ  ์‹คํ–‰ํ•˜๋Š” ๋ฐฉ์‹์€ ํฌ๊ฒŒ ๋‘ ๊ฐ€์ง€๊ฐ€ ์žˆ๋Š”๋ฐ ๋ฐ”๋กœ ์ปดํŒŒ์ผ๊ณผ ์ธํ„ฐํ”„๋ฆฟ์ด๋‹ค.

 

์ปดํŒŒ์ผ (Compile)

- ๋ช…๋ น์–ด ์ง‘ํ•ฉ์„ ๋งŒ๋“ค์–ด์„œ ํ•œ๊บผ๋ฒˆ์— ์ปดํ“จํ„ฐ์—๊ฒŒ ์ž…๋ ฅํ•œ๋‹ค.

- ๋ช…๋ น์˜ ์‹œ์ž‘๊ณผ ๋์„ ์ •ํ™•ํ•˜๊ฒŒ ์•Œ๊ธฐ ๋•Œ๋ฌธ์— ๋ช…๋ น์–ด ์ตœ์ ํ™”๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค. → ์†๋„๊ฐ€ ๋น ๋ฅด๋‹ค.

- ๊ณผ์ •์ด ๋ณต์žกํ•˜๊ณ , ๋‚ด์šฉ์„ ๋ฐ”๊ฟ€๋ ค๋ฉด ๋ชป๋ฐ”๊พผ๋‹ค.

 

์ธํ„ฐํ”„๋ฆฟ (Interpret)

- ๋ช…๋ น์–ด๋ฅผ ์ŠคํŒŸ์„ฑ์œผ๋กœ ํ•˜๋‚˜ํ•˜๋‚˜์”ฉ ์ž…๋ ฅํ•œ๋‹ค.

- ๋ช…๋ น์ด ์–ธ์ œ ๋๋‚ ์ง€ ๋ชฐ๋ผ ์‹œ์ž‘๊ณผ ๋์„ ์ž˜ ์•Œ์ง€ ๋ชปํ•œ๋‹ค. → ์†๋„๊ฐ€ ๋‹ค์†Œ ๋Š๋ฆฌ๋‹ค.

- ๊ฐ„๋‹จํ•˜๊ฒŒ ์‚ฌ์šฉํ•˜๊ธฐ์— ์šฉ์ดํ•˜๋ฉฐ, ์ฝ”๋“œ์˜ ์ค‘๊ฐ„์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋‹ค.

 

์ปดํŒŒ์ผ ๋ฐฉ์‹

์ฝ”๋“œ๊ฐ€ ์–ด๋– ํ•œ ๊ณผ์ •์„ ๊ฑฐ์ณ ์ถœ๋ ฅํ•˜๊ฒŒ ๋˜๋Š”์ง€ ์•Œ์•„๋ณด๋„๋ก ํ•˜์ž.

 

์—ฌ๊ธฐ ์‚ฌ๋žŒ์ด ์ž‘์„ฑํ•œ ์›์‹œ์ฝ”๋“œ๊ฐ€ ์žˆ๋‹ค.

์ปดํŒŒ์ผ๋Ÿฌ๋ฅผ ํ†ตํ•ด์„œ ์ปดํŒŒ์ผ์„ ํ•˜๊ธฐ์ „์— ์šฐ๋ฆฌ๋Š” ์ปดํŒŒ์ผ๋Ÿฌ์˜ ์†๋„๋ฅผ ํ–ฅ์ƒ์‹œํ‚ค๊ธฐ ์œ„ํ•ด์„œ ๋จผ์ € ํ”„๋ฆฌํ”„๋กœ์„ธ์„œ๋กœ ํ”„๋ฆฌํ”„๋กœ์„ธ์‹ฑ์„ ์ง„ํ–‰ํ•ด์ค˜ ์ผ๋ถ€์˜ ์ฝ”๋“œ๋ฅผ ์•ฝ๊ฐ„ ๋ณ€๊ฒฝํ•ด ์ตœ์ ํ™”๋œ ์ฝ”๋“œ๋กœ ๋ฐ”๊ฟ”์ค€๋‹ค.

์ดํ›„์— ์ปดํŒŒ์ผ๋Ÿฌ๋ฅผ ํ†ตํ•ด์„œ ์ปดํŒŒ์ผ๋œ ํŒŒ์ผ์€ ๋ช…๋ น์–ด๋กœ ๋ณ€ํ•˜๊ฒŒ ๋˜๋Š”๋ฐ ์ด๋•Œ ์ด ์ฝ”๋“œ๋ฅผ object-code ๋˜๋Š” byte-code๋ผ๊ณ  ํ•œ๋‹ค.

๋‹ค์Œ์— ์ด ํŒŒ์ผ๋“ค์„ ๋ฌถ์–ด์ฃผ๊ธฐ์œ„ํ•ด ๋ง์ปค๋ฅผ ์‚ฌ์šฉํ•ด ๋งํฌ๊ณผ์ •์„ ๊ฑฐ์น˜๋ฉด ์ฝ”๋“œ๋“ค์ด ํ•œ๋ฐ ๋ชจ์—ฌ ํ”„๋กœ๊ทธ๋žจ์ฝ”๋“œ๋ผ๋Š” ๊ฒƒ์ด ์ƒ๊ธฐ๊ฒŒ ๋˜๋Š” ๊ฒƒ์ด๋‹ค.

๋งˆ์ง€๋ง‰์œผ๋กœ ์ด๋ฅผ ์šด์˜์ฒด์ œ์— ๋„์›Œ์ฃผ๊ธฐ ์œ„ํ•ด ๋กœ๋”๋ฅผ ์‚ฌ์šฉํ•ด ๋กœ๋”ฉํ•ด ์ฃผ๋ฉด ์ตœ์ข…์ ์œผ๋กœ ์ปดํŒŒ์ผ์ด ์™„์„ฑ๋˜๋Š” ๊ฒƒ์ด๋‹ค.

 

์ปดํŒŒ์ผ ๋ฐฉ์‹์„ ํ•™์Šตํ•˜๋ฉด์„œ ์šฐ๋ฆฌ๋Š” ๊ถ๊ธˆ์ฆ์ด ๋“ค ์ˆ˜ ์žˆ๋‹ค.

'์ดํด๋ฆฝ์Šค์—์„œ Hello World๋ฅผ ์ฐ์—ˆ์„๋•Œ์—๋Š” ์›์‹œ์ฝ”๋“œ๋งŒ ์ž‘์„ฑํ•˜๊ณ  ๋‚˜๋จธ์ง€ ๊ณผ์ •์€ ๋ณด์ง€ ๋ชปํ•œ ๊ฒƒ ๊ฐ™์€๋ฐ?' ๋งž๋‹ค.

์šฐ๋ฆฌ๊ฐ€ ์ด๋Ÿฌํ•œ ๊ณผ์ •์„ ์ง์ ‘ ๋ณด์ง€ ๋ชปํ•œ ๊ฒƒ์€ ๋ฐ”๋กœ ์šฐ๋ฆฌ๊ฐ€ ์„ค์น˜ํ•œ IDE(๊ฐœ๋ฐœํ†ตํ•ฉํ™˜๊ฒฝ)์— ๋ชจ๋‘ ํฌํ•จ๋˜์–ด ์žˆ์–ด ์šฐ๋ฆฌ๊ฐ€ ๋”ฐ๋กœ ์ฒ˜๋ฆฌํ•ด ์ฃผ์ง€ ์•Š์•„๋„ IDE๊ฐ€ ๋ชจ๋‘ ํ•ด๊ฒฐํ•ด ์ฃผ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

 

๋˜ํ•œ ์šฐ๋ฆฌ๋Š” ํ”„๋ฆฌํ”„๋กœ์„ธ์‹ฑ์„ ํ†ตํ•ด ์ตœ์ ํ™”๋œ ์ฝ”๋“œ๋ฅผ ์ปดํŒŒ์ผ ํ•˜๊ณ  ๋‚˜์„œ ๋งํฌ๋œ ํŒŒ์ผ์— ๋กœ๋”ฉํ•˜๊ธฐ ์ „ ์™ธ๋ถ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋“ค์„ ๋ถˆ๋Ÿฌ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ ์šฐ๋ฆฌ๋Š” ์ด๋Ÿฌํ•œ ํ™˜๊ฒฝ๋“ค์„ ๊ฐ€๋ฆฌ์ผœ JRE(Java Runtime Environment)๋ผ๊ณ  ํ•œ๋‹ค.

 

์ด๋•Œ, ์ปดํŒŒ์ผ๋Ÿฌ์™€ JRE๋Š” ๊ฐ™์€ ๋ฒ„์ „์œผ๋กœ ํ•ฉ์ณ์ ธ์„œ ๋ฐฐํฌ๋˜์–ด ๋‚˜์˜ค๋ฉฐ ์ด๋•Œ ๋‹ค๋ฅธ ๋ฒ„์ „์ผ๊ฒฝ์šฐ ๊ฒฝ๊ณ ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๋‚ธ๋‹ค.

 

 

๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€