[๐Ÿ‘จ๐Ÿปโ€๐Ÿ’ปTA9 ์ธํ„ด 43์ผ์ฐจ]์ž๋ฐ” ๊ธฐ์ดˆ์šฉ์–ด ์ •๋ฆฌ

Goofiยท2023๋…„ 8์›” 29์ผ
0

JAVA ๊ธฐ์ดˆ์šฉ์–ด ์ •๋ฆฌ

์ปดํŒŒ์ผ๋Ÿฌ

์ปดํŒŒ์ผ์„ ํ•ด์ฃผ๋Š” ํ”„๋กœ๊ทธ๋žจ์ด๋‹ค.
์ปดํŒŒ์ผ์€ ์ธ๊ฐ„์ด ์ดํ•ดํ•˜๊ธฐ ์‰ฌ์šด ์–ธ์–ด๋ฅผ ๊ธฐ๊ณ„์–ด๋กœ ๋ฒˆ์—ญํ•˜๋Š” ๊ณผ์ •์ด๋‹ค.

์ปดํ“จํ„ฐ๋Š” ์‚ฌ์‹ค ๋ฐ”๋ณด์ด๋‹ค.

public static void main(String[] args){
	System.out.println("Hello World");
}

์œ„ ์ฝ”๋“œ๋ฅผ ์ปดํŒŒ์ผํ•˜๋ฉด ์ปดํ“จํ„ฐ๊ฐ€ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ”์ดํŠธ ์ฝ”๋“œ๋กœ ๋ฐ”๊ฟ”์ค€๋‹ค.
01100000011110101
100101010101111100
00001101010101010

๋ฐ”์ดํŠธ ์ฝ”๋“œ(๋ฐ”์ด๋„ˆ๋ฆฌ์ฝ”๋“œ)

๋ฐ”์ด๋„ˆ๋ฆฌ์ฝ”๋“œ๋Š” 0๊ณผ 1๋กœ๋งŒ ์ด๋ฃจ์–ด์ ธ ์žˆ๋Š” ์ฝ”๋“œ์ด๋‹ค.
๋ฐ”์ดํŠธ๋Š” 0๊ณผ 1์„ ๋‚˜ํƒ€๋‚ด๋Š” ๋‹จ์œ„์ด๋‹ค.
์ฆ‰, ๊ฐ™์€ ๋ง์ด๋‹ค.

๐Ÿš€0๊ณผ 1์˜ ์กฐํ•ฉ์€ ์šด์˜์ฒด์ œ๋งˆ๋‹ค ๋‹ค๋ฅด๋‹ค

C์–ธ์–ด ๊ฐ™์€ ๊ฒฝ์šฐ์— C์–ธ์–ด ์ปดํŒŒ์ผ๋Ÿฌ ํ•˜๋‚˜๊ฐ€ ์ผ์„ ๋งŒ๋“ค์–ด์„œ ์œˆ๋„์šฐ์™€ ๋งฅ๊ณผ ๋ฆฌ๋ˆ…์Šค์—๊ฒŒ ๊ฐ๊ฐ ์ฃผ๊ฒŒ ๋˜๋ฉด ์œˆ๋„์šฐ๋Š” ์ดํ•ด๋ฅผ ํ•ด์„œ Hello World๋ฅผ ์ถœ๋ ฅํ•˜๋Š”๋ฐ ๋งฅ๊ณผ ๋ฆฌ๋ˆ…์Šค๋Š” ์ถœ๋ ฅํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ๋‹ค.

์ด์ฒ˜๋Ÿผ C์–ธ์–ด ๊ฐ™์€ ๊ฒฝ์šฐ ๊ฐ๊ฐ ๋‹ค๋ฅธ ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ํ•„์š”ํ•˜๋‹ค.

JAVA๋Š” ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์–ธ์–ด์˜ ์ปดํŒŒ์ผ๋ฐฉ์‹๊ณผ๋Š” ๋‹ค๋ฅด๋‹ค.

JVM

0๊ณผ 1๊ณผ ์šด์˜์ฒด์ œ ์‚ฌ์ด์—์„œ ๋‘˜์„ ํ˜ธํ™˜์‹œ์ผœ์ฃผ๋Š” ์—ญํ• ์„ ํ•œ๋‹ค.

  • ์ž๋ฐ” ๊ฐ€์ƒ ๋จธ์‹ ์˜ ์•ฝ์ž
  • Java Virtual Machine
  • JVM์€ ์šด์˜์ฒด์ œ๋งˆ๋‹ค ๊ฐ๊ฐ ์žˆ๋‹ค. ์ฆ‰, OS ๋ณ„๋กœ ์กด์žฌํ•œ๋‹ค.
  • JAVA๋ฅผ ์„ค์น˜ํ•˜๋ฉด ํ•œ ๋ฒˆ์— ๊ฐ™์ด ์„ค์น˜๋˜๋Š” ์‹์ด๋‹ค.
  • ๋ฐ”์ด๋„ˆ๋ฆฌ ์ฝ”๋“œ๋ฅผ ์ฝ๊ณ  ๊ฒ€์ฆํ•˜๊ณ  ์‹คํ–‰ํ•œ๋‹ค.

์ฆ‰, JVM์„ ๊ฑฐ์ณ์„œ ๊ฐ€๊ธฐ ๋•Œ๋ฌธ์— JAVA ๊ฐ™์€ ๊ฒฝ์šฐ๋Š” ์ปดํŒŒ์ผ๋Ÿฌ ํ•˜๋‚˜๋งŒ ์žˆ์œผ๋ฉด ๋œ๋‹ค. ์–ด์งœํ”ผ ๋˜‘๊ฐ™์€ 0๊ณผ 1์„ ๊ฐ€์ง€๊ณ  JVM์ด ๊ฐ๊ฐ์˜ ์šด์˜์ฒด์ œ ๋งž๊ฒŒ ์•Œ์•„์„œ ๋ฒˆ์—ญํ•ด ์ค„ ๊ฒƒ์ด๋‹ค.

๊ฒฐ๋ก , OS ๋งˆ๋‹ค ๋‹ค๋ฅธ ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ํ•„์š”ํ•˜์ง€๋งŒ JAVA๋Š” JVM์ด 0๊ณผ 1์„ OS ๋งž๊ฒŒ ๋ฒˆ์—ญํ•ด์ค€๋‹ค. ์ด JVM์€ ์ธ๊ธฐ๊ฐ€ ์ƒ๋‹นํ•ด์„œ, JAVA ์™ธ์— ๋‹ค๋ฅธ ์–ธ์–ด์—์„œ๋„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค.
JVM์€ ๋˜‘๊ฐ™์€ JAVA ๋ฐ”์ดํŠธ ์ฝ”๋“œ๋ฅผ OS ๋งˆ๋‹ค ๋‹ค๋ฅด๊ฒŒ ํ•ด์„ํ•ด์ฃผ๋Š” ์นœ๊ตฌ๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค.

๋ฒ”์œ„

JVM < JRE <JDK ์ˆœ์„œ๋กœ ํฌํ•จ๊ด€๊ณ„์ด๋‹ค.
JDK๋ฅผ ์„ค์น˜ํ•˜๋ฉด JRE์™€ JVM๋„ ํ•จ๊ป˜ ์„ค์น˜๋œ๋‹ค.

์ฆ‰, JAVA์˜ ๋ฒ„์ „ = JDK์˜ ๋ฒ„์ „์ด ๋œ๋‹ค.

JRE

  • ์ž๋ฐ” ์‹คํ–‰ ํ™˜๊ฒฝ์˜ ์•ฝ์ž
  • Java Runtime Environment
  • JRE = JVM + ์ž๋ฐ”ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰์— ํ•„์š”ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํŒŒ์ผ ๋“ฑ
  • JVM์˜ ์‹คํ–‰ํ™˜๊ฒฝ์„ ๊ตฌํ˜„

์ž๋ฐ”ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰์— ํ•„์š”ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํŒŒ์ผ๋“ฑ ์˜ˆ์‹œ
์ถœ๋ ฅํ•  ๋•Œ system.out.println() ๊ณผ ๊ฐ™์€ ์–ด๋”˜๊ฐ€์— ๋“ค์–ด๊ฐ€ ์žˆ๋Š”๊ฑฐ๋ฅผ ๊ฐ–๋‹ค ์“ฐ๋Š” ๊ฑฐ๊ณ  '์ด ๋ฌธ๋ฒ•์„ ์‚ฌ์šฉํ•˜๋ฉด ์ถœ๋ ฅํ•  ์ˆ˜ ์žˆ์–ด!' ๋ผ๊ณ  ๋ˆ„๊ตฐ๊ฐ€ ํ•ด๋‹น ๋ฌธ๋ฒ•์„ ๋งŒ๋“ค์–ด๋†”์•ผ ๋˜๋‹ˆ๊นŒ ํ•ด๋‹น ๋ฌธ๋ฒ•๋“ค์ด ๋“ค์–ด์žˆ๋Š” ๊ณณ์ด JRE๋ผ๊ณ  ์ƒ๊ฐํ•ด์ฃผ์‹œ๋ฉด ๋œ๋‹ค.

JDK

  • ์ž๋ฐ” ๊ฐœ๋ฐœ ๋„๊ตฌ์˜ ์•ฝ์ž
  • Java Development Kit
  • JDK = JRE + ๊ฐœ๋ฐœ์„ ์œ„ํ•œ ๋„๊ตฌ
  • ์ปดํŒŒ์ผ๋Ÿฌ, ๋””๋ฒ„๊ทธ ๋„๊ตฌ ๋“ฑ์ด ํฌํ•จ

JDK ๋ฒ„์ „

JDK์—๋Š” ๋ฒ„์ „์ด ์žˆ๊ณ ,
๊ฐ ๋ฒ„์ „๋ณ„๋กœ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์ด ์ถ”๊ฐ€๋˜๊ฑฐ๋‚˜ ๊ธฐ์กด ๊ธฐ๋Šฅ์ด ์‚ฌ๋ผ์ง„๋‹ค.

ํ”„๋กœ๊ทธ๋žจ์—๋Š” ํŠน์ดํ•˜๊ฒŒ LTS(Long Time Support)๋ผ๋Š” ๋ฒ„์ „์ด ์žˆ๋‹ค.
์˜ค๋ž˜ ์จ๋„ ๋˜๋Š” ๋ฒ„์ „, ์šฐ๋ฆฌ๊ฐ€ ์˜ค๋ž˜ ์ง€์›ํ• ๊ฒŒ์š”~ = LTS

JDK ์ข…๋ฅ˜

JDK์—๋Š” ์ข…๋ฅ˜๊ฐ€ ์žˆ๊ณ ,
๊ธฐ๋Šฅ ์ž์ฒด๋Š” ๋ชจ๋‘ ๋™์ผํ•˜๋‚˜ ์„ฑ๋Šฅ๊ณผ ๋น„์šฉ์— ์•ฝ๊ฐ„์˜ ์ฐจ์ด๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ๋‹ค.

Oracle JDK : ์˜ค๋ผํด์—์„œ ๋งŒ๋“  JDK, ๊ฐœ์ธ์—๊ฒŒ ๋ฌด๋ฃŒ ๊ธฐ์—…์šฉ์€ ์œ ๋ฃŒ
Open JDK : Oracle JDK์™€ ๋น„์Šทํ•œ ์„ฑ๋Šฅ , ์–ธ์ œ๋‚˜ ๋ฌด๋ฃŒ

๊ฒฐ๋ก 

  1. ์ปดํ“จํ„ฐ๋Š” 0๊ณผ 1๋ฐ–์— ๋ชจ๋ฅธ๋‹ค.
  2. JAVA๋Š” ๋™์ผํ•œ ์ปดํŒŒ์ผ ์ดํ›„, ์ ์ ˆํ•œ JVM์ด 0๊ณผ 1์„ ์ปดํ“จํ„ฐ์—๊ฒŒ ์ „๋‹ฌํ•œ๋‹ค.
  3. JVM : 0๊ณผ 1์‹คํ–‰
  4. JRE : ์ž๋ฐ” ์‹คํ–‰์— ํ•„์š”ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํŒŒ์ผ๋“ค
  5. JDK : ํ†ตํ•ฉ ๊ฐœ๋ฐœ๋„๊ตฌ(์ปดํŒŒ์ผ๋Ÿฌ, ๋””๋ฒ„๊ฑฐ)
  6. JDK > JRE > JVM
  7. JDK์—๋Š” ๋ฒ„์ „๊ณผ ์ข…๋ฅ˜๊ฐ€ ์žˆ๋‹ค.
profile
์˜ค๋Š˜๋ณด๋‹จ ๋‚ด์ผ์ด ๊ฐ•ํ•œ ๊ฐœ๋ฐœ์ž์ž…๋‹ˆ๋‹ค!!๐Ÿง‘๐Ÿปโ€๐Ÿ’ป

0๊ฐœ์˜ ๋Œ“๊ธ€