๊นจ์•Œ ๊ฐœ๋… ๐Ÿ“‘/๊ธฐํƒ€

[Java] ์„ค์น˜, JRE์™€ JDK์˜ ์ฐจ์ด, ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์„ค์ •

interfacer_han 2023. 12. 8. 12:16

#1 JRE์™€ JDK์˜ ์ฐจ์ด

Gradle์„ ์„ค์น˜ํ•ด์„œ, Java ํ”„๋กœ์ ํŠธ๋ฅผ Gradle์„ ํ†ตํ•ด ์ง์ ‘ ๋นŒ๋“œํ•ด๋ณด๋ ค๊ณ  ํ–ˆ๋‹ค. ๋จผ์ €, Gradle์€ Java๋ฅผ ์š”๊ตฌํ•˜๋ฏ€๋กœ Java๋ฅผ ๋จผ์ € ์„ค์น˜ํ•œ๋‹ค. "์ž๋ฐ”๋ฅผ ์„ค์น˜ํ•œ๋‹ค"๋ผ๋Š” ๊ฑด ํฌ๊ฒŒ 2๊ฐ€์ง€์˜ ์˜๋ฏธ๋กœ ๋‚˜๋‰œ๋‹ค. ๋ฐ”๋กœ JRE(Java Runtime Environment)๋ฅผ ์„ค์น˜ํ•˜๋А๋ƒ, JDK(Java Development Kit)๋ฅผ ์„ค์น˜ํ•˜๋А๋ƒ๋‹ค. ๋น„์œ ํ•˜์ž๋ฉด JRE๋Š” ์ด๋ฏธ์ง€ ๋ทฐ์–ด๊ณ  JDK๋Š” ์ด๋ฏธ์ง€ ํŽธ์ง‘๊ธฐ๋‹ค. ๋‘˜๋‹ค Java๋ฅผ ์‹คํ–‰์‹œํ‚ค๋Š” ์ผ์„ ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, Java ๊ฐœ๋ฐœ์€ JDK๋งŒ ๊ฐ€๋Šฅํ•˜๋‹ค. JDK๋Š” JRE์˜ ๊ธฐ๋Šฅ์— ๋”ํ•ด ์ž๋ฐ” ์ปดํŒŒ์ผ๋Ÿฌ(javac)์™€ ๋””๋ฒ„๊ทธ ๋ฐ ๋นŒ๋“œ ๊ด€๋ จ ๊ธฐ๋Šฅ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ์ž๋ฐ”๋Š” ๋ถ„๋ช… ์„ค์น˜ํ•œ ๊ฒƒ ๊ฐ™์€๋ฐ, ๋งˆ์น˜ ์„ค์น˜๋˜์ง€ ์•Š์€ ๊ฒƒ์ฒ˜๋Ÿผ ๋™์ž‘ํ•œ๋‹ค๋ฉด, JDK๊ฐ€ ์•„๋‹ˆ๋ผ JRE๋ฅผ ์„ค์น˜ํ•œ ๊ฒƒ์€ ์•„๋‹Œ์ง€ ํ™•์ธํ•  ํ•„์š”๊ฐ€ ์žˆ๋‹ค. Gradle์—์„œ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ, JRE๋กœ๋Š” Gradle์„ ์ž‘๋™์‹œํ‚ฌ ์ˆ˜ ์—†๋‹ค. ๊ฐœ๋ฐœ์„ ํ•˜์ง€ ์•Š๋Š” ์‚ฌ๋žŒ์ด๋ผ๋ฉด ๋” ์ž‘์€ ์šฉ๋Ÿ‰์˜ JRE๋ฅผ ์„ ํƒํ•˜๋ฉด ๋˜๊ฒ ์ง€๋งŒ, ๊ฐœ๋ฐœ์ž๋ผ๋ฉด ์‚ฌ์‹ค์ƒ ํ•„์ˆ˜์ ์œผ๋กœ JDK๋ฅผ ์„ค์น˜ํ•ด์•ผ ํ•œ๋‹ค. 
 

#2 ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์„ค์ •

#2-1 ๊ฐœ๋…

ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ž€, ์šด์˜์ฒด์ œ(= ํ™˜๊ฒฝ) ์ž…์žฅ์—์„œ ํ•ด๋‹น ํ”„๋กœ์„ธ์Šค๋ฅผ ์‹คํ–‰์‹œํ‚ค๊ธฐ์œ„ํ•ด ์ฐธ์กฐํ•˜๋Š” ๋ณ€์ˆ˜๋‹ค. JDK๋ฅผ ์„ค์น˜ํ–ˆ๋‹ค๋ฉด, ์„ค์น˜ํ•œ ์œ„์น˜๋ฅผ ํ™˜๊ฒฝ ๋ณ€์ˆ˜์— ๋“ฑ๋กํ•ด์ฃผ์–ด์•ผ ์šด์˜์ฒด์ œ๊ฐ€ ์ด๋ฅผ ์ธ์‹ํ•  ์ˆ˜ ์žˆ๋‹ค. JDK๋ฅผ ์ œ๋Œ€๋กœ ์„ค์น˜ํ–ˆ์Œ์—๋„ ๋งˆ์น˜ ์„ค์น˜๋˜์ง€ ์•Š์€ ๊ฒƒ์ฒ˜๋Ÿผ ๋™์ž‘ํ•˜๋Š” ์ด์œ ๋Š” ํ™˜๊ฒฝ ๋ณ€์ˆ˜์™€ ๊ด€๋ จ๋œ ๋ฌธ์ œ์ผ ํ™•๋ฅ ์ด ๋งค์šฐ ๋†’๋‹ค. ๊ทธ๋ฆฌ๊ณ  #2-2 ~ #2-4์—์„œ ํ™˜๊ฒฝ ๋ณ€์ˆ˜์— ๋ณ€๊ฒฝ์‚ฌํ•ญ์ด ์žˆ๋‹ค๋ฉด, ์ปดํ“จํ„ฐ๋ฅผ ์žฌ๋ถ€ํŒ…ํ•ด์•ผ ์ ์šฉ๋œ๋‹ค๋Š” ๊ฒƒ์„ ์žŠ์ง€ ๋ง์ž.

#2-2 ์‹œ์Šคํ…œ ๋ณ€์ˆ˜ - JAVA_HOME

JAVA_HOME ์ด๋ผ๋Š” ์ด๋ฆ„๊ณผ ์‚ฌ๋žŒ๋งˆ๋‹ค ๋‹ค๋ฅผ ์„ค์น˜ ๊ฒฝ๋กœ๋ช…์„ ๊ฐ’์œผ๋กœ์„œ ์ง€๋‹ˆ๋Š” ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ๋“ฑ๋กํ•œ๋‹ค.

#2-3 ์‹œ์Šคํ…œ ๋ณ€์ˆ˜ - Path

Path๋ผ๋Š” ์ด๋ฆ„์˜ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๊ฐ€ ์žˆ๋‹ค. cmd ๋“ฑ์˜ CLI(Command-Line Interface)์—์„œ ์‹คํ–‰ ํŒŒ์ผ๋ช…์„ ์ž…๋ ฅํ•˜์—ฌ ๊ทธ ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•  ๋•Œ ํ˜„์žฌ ๋””๋ ‰ํ† ๋ฆฌ์— ์‹คํ–‰ ํŒŒ์ผ๋ช…์ด ์—†๋Š” ๊ฒฝ์šฐ, ์šด์˜ ์ฒด์ œ๋Š” ์ด Path์— ์„ค์ •๋œ ๊ฒฝ๋กœ๋ช…์—์„œ ์‹คํ–‰ ํŒŒ์ผ๋ช…์„ ์ฐพ๋Š”๋‹ค.
 

#2-4 ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ํŽธ์ง‘

๋‚œ Gradle์„ cmd์—์„œ ์‹คํ–‰์‹œํ‚ฌ ๊ฒƒ์ด๋ฏ€๋กœ JAVA_HOME ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ Path ๋ณ€์ˆ˜ ๋˜ํ•œ ๋“ฑ๋กํ•ด ๋‘๊ฒ ๋‹ค. %JAVA_HOME%์€ ํ™˜๊ฒฝ ๋ณ€์ˆ˜ JAVA_HOME์˜ ๊ฐ’์„ ์˜๋ฏธํ•œ๋‹ค. ๋ฌผ๋ก , ์ ˆ๋Œ€ ๊ฒฝ๋กœ ๋ฐฉ์‹์œผ๋กœ ๊ธฐ์ž…ํ•ด๋„ ๋ฌด๋ฐฉํ•˜๋‹ค. ์ž๋ฐ” ์„ค์น˜ ์œ„์น˜์— ์žˆ๋Š” bin ํด๋”์—๋Š” CLI ํ™˜๊ฒฝ์—์„œ ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ javac.bat๊ณผ ๊ฐ™์€ ์Šคํฌ๋ฆฝํŠธ ํŒŒ์ผ๋“ค์ด ๋“ค์–ด์žˆ๋‹ค. ์ด์ œ๋ถ€ํ„ฐ๋Š” CLI์—์„œ javac.bat์ด๋ผ๋Š” ์Šคํฌ๋ฆฝํŠธ ํŒŒ์ผ์„ %JAVA_HOME%\bin๊ณผ ์ „ํ˜€ ๋‹ค๋ฅธ ๋””๋ ‰ํ† ๋ฆฌ์—์„œ ์‹คํ–‰ ๋ช…๋ น ๋‚ด๋ ค๋„, "ํ•ด๋‹น ํŒŒ์ผ์ด ์—†์Šต๋‹ˆ๋‹ค"์™€ ๊ฐ™์€ ์—๋Ÿฌ ๋ฉ”์‹œ์ง€๋ฅผ ๋ฑ‰๋Š” ๋Œ€์‹  ์šด์˜ ์ฒด์ œ๊ฐ€ ์•Œ์•„์„œ javac.bat์„ ์ฐพ์•„ ์‹คํ–‰ํ•ด ์ค„ ๊ฒƒ์ด๋‹ค.
 

#3 ์š”์•ฝ

์‹ค์ˆ˜๋กœ JDK ๋Œ€์‹  JRE๋ฅผ ์„ค์น˜ํ•˜์ง€ ์•Š๊ฒŒ ์กฐ์‹ฌํ•˜์ž. ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” ์šด์˜์ฒด์ œ์—๊ฒŒ ์ •๋ณด๋ฅผ ์•Œ๋ ค์ฃผ๊ธฐ ์œ„ํ•œ <ํ‚ค, ๊ฐ’> ๋ณ€์ˆ˜๋‹ค.
 

#4 ์ด ๊ฐœ๋…์ด ์‚ฌ์šฉ๋œ ๊ธ€

-