๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
์นดํ…Œ๊ณ ๋ฆฌ ์—†์Œ

์ž๋ฐ” JDK, JRE์˜ ์ฐจ์ด์ (JDK๋ž€? JRE๋ž€?)

by 5566 2023. 11. 21.

1. ์ž๋ฐ” ๊ฐœ๋ฐœ ๋„๊ตฌ(JDK) ์†Œ๊ฐœ

์ž๋ฐ” ๊ฐœ๋ฐœ ๋„๊ตฌ(JDK)๋Š” ์ž๋ฐ” ํ”„๋กœ๊ทธ๋ž˜๋ฐ์— ํ•„์š”ํ•œ ๋ชจ๋“  ๋„๊ตฌ์™€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํฌํ•จํ•˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ ํ‚คํŠธ์ž…๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๊ฐ€ ์ž๋ฐ” ์–ธ์–ด๋กœ ์ž‘์„ฑํ•œ ์ฝ”๋“œ๋ฅผ ์ปดํŒŒ์ผํ•˜๊ณ  ์‹คํ–‰์‹œํ‚ฌ ์ˆ˜ ์žˆ๋Š” ํ™˜๊ฒฝ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. JDK๋Š” ์ž๋ฐ” ๊ฐœ๋ฐœ์— ํ•„์š”ํ•œ ๋„๊ตฌ๋“ค์„ ํ•œ ๊ณณ์— ๋ชจ์•„๋†“์•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ฐœ๋ฐœ์ž๋“ค์€ ์‰ฝ๊ฒŒ ์ž๋ฐ” ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•˜๊ณ  ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

JDK๋Š” ์ฃผ๋กœ ์„ธ ๊ฐ€์ง€ ๊ตฌ์„ฑ ์š”์†Œ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ฒซ์งธ, ์ž๋ฐ” ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ์ž๋ฐ” ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ๋ฐ”์ดํŠธ ์ฝ”๋“œ๋กœ ๋ณ€ํ™˜ํ•ด์ฃผ๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. ๋‘˜์งธ, ์ž๋ฐ” ์‹คํ–‰ ํ™˜๊ฒฝ(JRE)์€ ๋ฐ”์ดํŠธ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰์‹œ์ผœ์ฃผ๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. ๋งˆ์ง€๋ง‰์œผ๋กœ, JDK์—๋Š” ๋‹ค์–‘ํ•œ ๋„๊ตฌ๋“ค์ด ํฌํ•จ๋˜์–ด ์žˆ์–ด์„œ ๊ฐœ๋ฐœ์ž๋“ค์€ ํšจ์œจ์ ์ธ ๊ฐœ๋ฐœ์„ ์œ„ํ•ด ์ด๋Ÿฌํ•œ ๋„๊ตฌ๋“ค์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฟ๋งŒ ์•„๋‹ˆ๋ผ JDK์—๋Š” ์ž๋ฐ” ํ‘œ์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ ๊ฐœ๋ฐœ ๋„๊ตฌ, ๋””๋ฒ„๊น… ๋„๊ตฌ, ๋ฌธ์„œํ™” ๋„๊ตฌ ๋“ฑ ๋‹ค์–‘ํ•œ ๋„๊ตฌ์™€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋“ค์ด ํฌํ•จ๋˜์–ด ์žˆ์–ด์„œ ๊ฐœ๋ฐœ์ž๋“ค์€ ์ด๋ฅผ ํ™œ์šฉํ•ด์„œ ์ž์‹ ์˜ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌ์ถ•ํ•˜๊ณ  ํ…Œ์ŠคํŠธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. JDK๋Š” ์ž๋ฐ” ๊ฐœ๋ฐœ์— ์žˆ์–ด ํ•„์ˆ˜์ ์ธ ๋„๊ตฌ๋กœ์„œ, ์ž๋ฐ” ๊ฐœ๋ฐœ์ž๋“ค์€ JDK๋ฅผ ์„ค์น˜ํ•˜์—ฌ ๊ฐœ๋ฐœ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

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

2. ์ž๋ฐ” ๋Ÿฐํƒ€์ž„ ํ™˜๊ฒฝ(JRE) ์†Œ๊ฐœ

์ž๋ฐ” ๋Ÿฐํƒ€์ž„ ํ™˜๊ฒฝ(JRE)๋Š” ์ž๋ฐ” ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰์‹œํ‚ค๊ธฐ ์œ„ํ•œ ํ™˜๊ฒฝ์„ ์ œ๊ณตํ•˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด์ž…๋‹ˆ๋‹ค. JRE๋Š” JDK์™€ ๋ฐ€์ ‘ํ•œ ๊ด€๊ณ„๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉฐ, JDK์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์ž๋ฐ” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‹คํ–‰ํ•˜๋Š” ๋ฐ ํ•„์ˆ˜์ ์ธ ์š”์†Œ์ž…๋‹ˆ๋‹ค.

JRE๋Š” ์‹คํ–‰ ์‹œ๊ฐ„์— ์ž๋ฐ” ๋ฐ”์ดํŠธ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ๊ฐ€์ƒ ๋จธ์‹ ์ธ Java Virtual Machine(JVM)์„ ํฌํ•จํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. JVM์€ ์šด์˜์ฒด์ œ์— ๊ตฌ์• ๋ฐ›์ง€ ์•Š๊ณ  ์ž๋ฐ” ๋ฐ”์ดํŠธ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰์‹œํ‚ฌ ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ฃผ๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. JVM์€ ์ž๋ฐ” ์–ธ์–ด์™€ ์šด์˜์ฒด์ œ ๊ฐ„์˜ ์ค‘์žฌ์ž๋กœ์„œ ๋™์ž‘ํ•˜๋ฉฐ, ์ž๋ฐ” ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ด์‹์„ฑ๊ณผ ํ˜ธํ™˜์„ฑ์„ ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค.

JRE๋Š” ๋˜ํ•œ ์ž๋ฐ” ํ”„๋กœ๊ทธ๋žจ์ด ํ•„์š”๋กœ ํ•˜๋Š” ์ž๋ฐ” ํด๋ž˜์Šค ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ(Java Class Library)๋ฅผ ํฌํ•จํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ๊ณผ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋ฉฐ, ๊ฐœ๋ฐœ์ž๋“ค์€ ์ด๋Ÿฌํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์ž์‹ ์˜ ํ”„๋กœ๊ทธ๋žจ์„ ๋”์šฑ ํ’๋ถ€ํ•˜๊ณ  ์œ ์—ฐํ•˜๊ฒŒ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

JDK์™€ JRE์˜ ์ฃผ์š” ์ฐจ์ด์ ์€ JDK๋Š” Java ์ปดํŒŒ์ผ๋Ÿฌ๋ฅผ ํฌํ•จํ•œ ๊ฐœ๋ฐœ ๋„๊ตฌ๋“ค๊ณผ ํ•จ๊ป˜ ์ œ๊ณต๋˜๋Š” ๋ฐ˜๋ฉด, JRE๋Š” ์ž๋ฐ” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ํ•„์ˆ˜ ๊ตฌ์„ฑ ์š”์†Œ๋“ค๋งŒ ์ œ๊ณต๋œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋‹ค์Œ์€ JDK์™€ JRE์˜ ์ฐจ์ด์ ์— ๋Œ€ํ•ด ๋” ์ž์„ธํžˆ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

3. JDK์™€ JRE์˜ ์ฐจ์ด์ 

JDK์™€ JRE๋Š” ์ž๋ฐ” ๊ฐœ๋ฐœ์— ํ•„์š”ํ•œ ํ™˜๊ฒฝ์„ ์ œ๊ณตํ•˜๋Š” ๋‘ ๊ฐ€์ง€ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. ์ด ๋‘˜์€ ๋ชฉ์ ๊ณผ ํฌํ•จ๋˜๋Š” ๊ตฌ์„ฑ ์š”์†Œ์˜ ๊ด€์ ์—์„œ ์ฃผ์š”ํ•œ ์ฐจ์ด์ ์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

JDK(Java Development Kit)

JDK๋Š” ์ž๋ฐ” ๊ฐœ๋ฐœ ๋„๊ตฌ๋กœ์„œ, ์ž๋ฐ” ์–ธ์–ด๋กœ ์ž‘์„ฑ๋œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•˜๊ณ  ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ๋ชจ๋“  ๋„๊ตฌ์™€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํฌํ•จํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ฃผ์š”ํ•œ ํŠน์ง•์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • ์ž๋ฐ” ์ปดํŒŒ์ผ๋Ÿฌ์™€ ๊ฐ™์€ ๊ฐœ๋ฐœ ๋„๊ตฌ๋“ค์„ ํฌํ•จํ•˜๊ณ  ์žˆ์–ด, ๊ฐœ๋ฐœ์ž๋Š” ์ž๋ฐ” ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ์ปดํŒŒ์ผํ•˜์—ฌ ๋ฐ”์ดํŠธ ์ฝ”๋“œ๋กœ ๋ณ€ํ™˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ž๋ฐ” ์‹คํ–‰ ํ™˜๊ฒฝ(JRE)๋ฅผ ํฌํ•จํ•˜๊ณ  ์žˆ์–ด, ๊ฐœ๋ฐœ์ž๋Š” ์ž์‹ ์ด ๊ฐœ๋ฐœํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ปดํŒŒ์ผํ•˜์—ฌ ์‹คํ–‰์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ž๋ฐ” ํ‘œ์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ ๋‹ค์–‘ํ•œ ๋„๊ตฌ๋“ค์„ ํฌํ•จํ•˜๊ณ  ์žˆ์–ด, ๊ฐœ๋ฐœ์ž๋“ค์€ ์ด๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์ž๋ฐ” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•˜๊ณ  ์‹คํ–‰์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๊ฐœ๋ฐœ์ž๋“ค์€ JDK๋ฅผ ์„ค์น˜ํ•˜๊ณ  ์ž์‹ ์˜ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์„ ๊ตฌ์„ฑํ•จ์œผ๋กœ์จ ์ž๋ฐ” ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•˜๊ณ  ํ…Œ์ŠคํŠธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

JRE(Java Runtime Environment)

JRE๋Š” ์ž๋ฐ” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ํ™˜๊ฒฝ์„ ์ œ๊ณตํ•˜๋Š” ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. JDK์™€ ๋น„๊ตํ–ˆ์„ ๋•Œ, ํฌํ•จ๋˜๋Š” ๊ตฌ์„ฑ ์š”์†Œ์™€ ๋ชฉ์ ์ด ๋‹ค์†Œ ์ œํ•œ์ ์ž…๋‹ˆ๋‹ค. ์ฃผ์š”ํ•œ ํŠน์ง•์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • ์ž๋ฐ” ์‹คํ–‰ ํ™˜๊ฒฝ(JRE)๋งŒ ํฌํ•จํ•˜๊ณ  ์žˆ์–ด, ๊ฐœ๋ฐœ์ž๋Š” ์ž๋ฐ” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ปดํŒŒ์ผํ•˜๊ณ  ์‹คํ–‰์‹œํ‚ฌ ์ˆ˜๋Š” ์—†์Šต๋‹ˆ๋‹ค.
  • JVM(Java Virtual Machine)์„ ํฌํ•จํ•˜๊ณ  ์žˆ์–ด, ์ž๋ฐ” ๋ฐ”์ดํŠธ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ์ž๋ฐ” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‹คํ–‰์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ž๋ฐ” ํ‘œ์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋งŒ ํฌํ•จํ•˜๊ณ  ์žˆ์–ด, ๊ฐœ๋ฐœ์ž๋“ค์€ ์ œ๊ณต๋˜๋Š” ๊ธฐ๋Šฅ๊ณผ ํด๋ž˜์Šค๋“ค์„ ํ™œ์šฉํ•˜์—ฌ ์ž๋ฐ” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๊ฐœ๋ฐœ์ž๊ฐ€ ์ด๋ฏธ ๊ฐœ๋ฐœ๋œ ์ž๋ฐ” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ํ™˜๊ฒฝ์ด๋ฏ€๋กœ, JDK๋ณด๋‹ค๋Š” ๋” ๊ฐ€๋ฒผ์šด ํ™˜๊ฒฝ์ž…๋‹ˆ๋‹ค.

JDK๋Š” ์ž๋ฐ” ๊ฐœ๋ฐœ์ž๋“ค์ด ์ž๋ฐ” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•˜๊ณ  ์‹คํ–‰์‹œํ‚ค๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ๋ชจ๋“  ๋„๊ตฌ์™€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋ฐ˜๋ฉด์— JRE๋Š” ์ด๋ฏธ ๊ฐœ๋ฐœ๋œ ์ž๋ฐ” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ํ™˜๊ฒฝ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๊ฐœ๋ฐœ์ž๋“ค์€ ์ž์‹ ์˜ ๊ฐœ๋ฐœ ๋ชฉ์ ์— ๋งž๊ฒŒ JDK ๋˜๋Š” JRE๋ฅผ ์„ ํƒํ•˜์—ฌ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

4. JDK์˜ ์ฃผ์š” ๊ตฌ์„ฑ ์š”์†Œ

JDK(Java Development Kit)๋Š” ์ž๋ฐ” ๊ฐœ๋ฐœ ๋„๊ตฌ๋กœ์„œ, ์ž๋ฐ” ์–ธ์–ด๋กœ ์ž‘์„ฑ๋œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•˜๊ณ  ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ๋‹ค์–‘ํ•œ ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ํฌํ•จํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. JDK์˜ ์ฃผ์š” ๊ตฌ์„ฑ ์š”์†Œ์—๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒƒ๋“ค์ด ์žˆ์Šต๋‹ˆ๋‹ค.

1. ์ž๋ฐ” ์ปดํŒŒ์ผ๋Ÿฌ(Java Compiler)

์ž๋ฐ” ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ์ž๋ฐ” ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ์ปดํŒŒ์ผํ•˜์—ฌ ๋ฐ”์ดํŠธ ์ฝ”๋“œ๋กœ ๋ณ€ํ™˜ํ•ด์ฃผ๋Š” ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. ์†Œ์Šค ์ฝ”๋“œ๋Š” ๊ฐœ๋ฐœ์ž๊ฐ€ ์ž‘์„ฑํ•œ ์ž๋ฐ” ํ”„๋กœ๊ทธ๋žจ์˜ ์›๋ณธ ์ฝ”๋“œ์ด๋ฉฐ, ๋ฐ”์ดํŠธ ์ฝ”๋“œ๋Š” ์ปดํŒŒ์ผ๋œ ์ž๋ฐ” ํ”„๋กœ๊ทธ๋žจ์˜ ์ค‘๊ฐ„ ํ˜•ํƒœ์ž…๋‹ˆ๋‹ค. JDK์—๋Š” ์ž๋ฐ” ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์–ด ๊ฐœ๋ฐœ์ž๋Š” ๊ฐœ๋ฐœํ•œ ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ์ปดํŒŒ์ผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

2. ์ž๋ฐ” ์‹คํ–‰ ํ™˜๊ฒฝ(Java Runtime Environment, JRE)

JDK๋Š” ์ž๋ฐ” ์‹คํ–‰ ํ™˜๊ฒฝ(JRE)๋ฅผ ํฌํ•จํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. JRE๋Š” ์ž๋ฐ” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ํ™˜๊ฒฝ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ด ํ™˜๊ฒฝ์—๋Š” ์ž๋ฐ” ๊ฐ€์ƒ ๋จธ์‹ (JVM)๊ณผ ์ž๋ฐ” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋“ฑ์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์ž๋Š” JDK์˜ JRE๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐœ๋ฐœ๋œ ์ž๋ฐ” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‹คํ–‰์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

3. ์ž๋ฐ” ํ‘œ์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ(Java Standard Library)

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

4. ๋””๋ฒ„๊น… ๋„๊ตฌ(Debugging Tools)

JDK๋Š” ์ž๋ฐ” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋””๋ฒ„๊น…์„ ์ง€์›ํ•˜๋Š” ๋„๊ตฌ๋“ค์„ ํฌํ•จํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋„๊ตฌ๋“ค์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์‹คํ–‰ ์ƒํƒœ๋ฅผ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๊ฑฐ๋‚˜ ๋ฒ„๊ทธ๋ฅผ ์ถ”์ ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์ž๋“ค์€ JDK์˜ ๋””๋ฒ„๊น… ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ž๋ฐ” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋ถ„์„ํ•˜๊ณ  ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

5. ํ”„๋กœํŒŒ์ผ๋ง ๋„๊ตฌ(Profiling Tools)

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

JDK๋Š” ์ž๋ฐ” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•˜๊ณ  ์‹คํ–‰ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ๋‹ค์–‘ํ•œ ๋„๊ตฌ์™€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์ž๋“ค์€ ์ด๋Ÿฌํ•œ ๊ตฌ์„ฑ ์š”์†Œ๋“ค์„ ํ™œ์šฉํ•˜์—ฌ ์ž๋ฐ” ํ”„๋กœ๊ทธ๋žจ์„ ๊ฐœ๋ฐœํ•˜๊ณ  ์‹คํ–‰์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

5. JRE์˜ ์ฃผ์š” ๊ตฌ์„ฑ ์š”์†Œ

JRE(Java Runtime Environment)๋Š” ์ž๋ฐ” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ํ™˜๊ฒฝ์„ ์ œ๊ณตํ•˜๋Š” ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. JRE์˜ ์ฃผ์š” ๊ตฌ์„ฑ ์š”์†Œ์—๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒƒ๋“ค์ด ์žˆ์Šต๋‹ˆ๋‹ค.

1. ์ž๋ฐ” ์‹คํ–‰ ํ™˜๊ฒฝ(Java Runtime)

JRE์—๋Š” ์ž๋ฐ” ์‹คํ–‰ ํ™˜๊ฒฝ์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ํ™˜๊ฒฝ์€ ์ž๋ฐ” ๋ฐ”์ดํŠธ ์ฝ”๋“œ๋ฅผ ํ•ด์„ํ•˜๊ณ  ์‹คํ–‰ํ•˜๋Š” JVM(Java Virtual Machine)์„ ํฌํ•จํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. JVM์€ ํ”Œ๋žซํผ์— ๋…๋ฆฝ์ ์ธ ์‹คํ–‰ํ™˜๊ฒฝ์„ ์ œ๊ณตํ•˜์—ฌ, ์ž๋ฐ” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค. JRE๊ฐ€ ์ œ๊ณตํ•˜๋Š” ์ž๋ฐ” ์‹คํ–‰ ํ™˜๊ฒฝ์€ ๊ฐœ๋ฐœ์ž์—๊ฒŒ ์ด๋ฏธ ์ปดํŒŒ์ผ๋œ ์ž๋ฐ” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

2. ์ž๋ฐ” ํ‘œ์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ(Java Standard Library)

JRE๋Š” ์ž๋ฐ” ํ‘œ์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํฌํ•จํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ž๋ฐ” ํ‘œ์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—๋Š” ๋‹ค์–‘ํ•œ ๊ธฐ๋ณธ ํด๋ž˜์Šค์™€ ๊ธฐ๋Šฅ๋“ค์ด ํฌํ•จ๋˜์–ด ์žˆ์–ด, ๊ฐœ๋ฐœ์ž๋“ค์€ ์ด๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์ž๋ฐ” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. JRE์— ํฌํ•จ๋˜๋Š” ์ž๋ฐ” ํ‘œ์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ๋‹ค์–‘ํ•œ ์ž‘์—…์— ํ•„์š”ํ•œ ํด๋ž˜์Šค๋“ค๊ณผ ๊ธฐ๋Šฅ๋“ค์„ ์ œ๊ณตํ•˜์—ฌ ๊ฐœ๋ฐœ์ž๋“ค์ด ํšจ์œจ์ ์œผ๋กœ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.

3. ๋„ค์ดํ‹ฐ๋ธŒ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ(Native Libraries)

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

4. ์ž๋ฐ” ์‹คํ–‰ ํ™˜๊ฒฝ ๊ด€๋ จ ๋„๊ตฌ(Tools)

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

JRE๋Š” ์ž๋ฐ” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‹ค์ œ๋กœ ์‹คํ–‰ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ํ™˜๊ฒฝ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ด ํ™˜๊ฒฝ์—๋Š” ์ž๋ฐ” ์‹คํ–‰ ํ™˜๊ฒฝ, ์ž๋ฐ” ํ‘œ์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ, ๋„ค์ดํ‹ฐ๋ธŒ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ, ๊ทธ๋ฆฌ๊ณ  ์‹คํ–‰ ํ™˜๊ฒฝ๊ณผ ๊ด€๋ จ๋œ ๋„๊ตฌ๋“ค์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ตฌ์„ฑ ์š”์†Œ๋“ค์„ ํ†ตํ•ด JRE๋Š” ๊ฐœ๋ฐœ์ž๊ฐ€ ์ด๋ฏธ ๊ฐœ๋ฐœ๋œ ์ž๋ฐ” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‹คํ–‰ํ•˜๊ณ  ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.

๋Œ“๊ธ€