JavaRush /Java Blog /Random-KO /Java ํ•™์Šต์„ ์‹œ์ž‘ํ•˜๋Š” ๊ณณ
Alex
๋ ˆ๋ฒจ 37

Java ํ•™์Šต์„ ์‹œ์ž‘ํ•˜๋Š” ๊ณณ

Random-KO ๊ทธ๋ฃน์— ๊ฒŒ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค

์ž๋ฐ” ์–ธ์–ด

Java ๋Š” ๋‹จ์ˆœํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๊ฐ€ ์•„๋‹ˆ๋ผ ๊ด‘๋ฒ”์œ„ํ•œ ๊ธฐ๋Šฅ์„ ๊ฐ–์ถ˜ ์ „์ฒด ์†Œํ”„ํŠธ์›จ์–ด ํ”Œ๋žซํผ์ž…๋‹ˆ๋‹ค. ์ด ํ”Œ๋žซํผ์˜ ์ฃผ์š” ๊ตฌ์„ฑ ์š”์†Œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. Java ํ•™์Šต์„ ์‹œ์ž‘ํ•˜๋Š” ๊ณณ - 1
  • Java ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜๊ณ  ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ๊ธฐ๋ณธ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค.
  • ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ ํด๋ž˜์Šค๋Š” ์–ธ์–ด์˜ ํ•ต์‹ฌ์ž…๋‹ˆ๋‹ค. ์ด๋Š” ์˜ˆ์™ธ ์ฒ˜๋ฆฌ, ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋”ฉ, ์ปฌ๋ ‰์…˜, ๋กœ๊น…, ๋ฐ˜์‚ฌ, ๋ณด์•ˆ, ๋„คํŠธ์›Œํ‚น, XML, ์ง๋ ฌํ™”, ์ •๊ทœ์‹ ๋“ฑ ํ•ต์‹ฌ Java ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋ฐฐํฌํ•˜๊ณ  ์ž๋™์œผ๋กœ ์‹œ์ž‘ํ•˜๋Š” ๋„๊ตฌ์ž…๋‹ˆ๋‹ค.
  • ํ”„๋ŸฐํŠธ์—”๋“œ(GUI, ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค) ์ƒ์„ฑ์„ ์œ„ํ•œ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. ์ด๋Š” JavaFX, Swing ๋ฐ Java2D ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ํด๋ž˜์Šค์ž…๋‹ˆ๋‹ค.
  • JDBC, JNDI, RMI ๋ฐ Java RMI-IIOP์™€ ๊ฐ™์ด ๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•ด ์›๊ฒฉ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ž‘์—…์„ ์œ„ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ž…๋‹ˆ๋‹ค.
Java ํด๋ž˜์Šค ๋ฐ ๋„๊ตฌ์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์•Œ์•„๋ณด๋ ค๋ฉด Oracle ์„ค๋ช…์„œ๋ฅผ ์ฝ์–ด๋ณด์„ธ์š” . ๋ชจ๋“  ๋‚ด์šฉ์ด ์—ฌ๊ธฐ์— ์žˆ์Šต๋‹ˆ๋‹ค. Java JDK 1.0์˜ ์ฒซ ๋ฒˆ์งธ ๋ฒ„์ „์—๋Š” "์˜ค์ง" ์ˆ˜๋ฐฑ ๊ฐœ์˜ ํด๋ž˜์Šค๊ฐ€ ํฌํ•จ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ง€๊ธˆ์€ ๊ทธ ์ˆ˜๊ฐ€ ์ˆ˜์ฒœ ๋ช…์œผ๋กœ ๋Š˜์–ด๋‚ฌ์Šต๋‹ˆ๋‹ค. ์–ธ์–ด์˜ ์ˆ˜๋ช… ๋™์•ˆ ์ €์ž๋Š” ๋ณด์•ˆ, ๊ธฐ๋Šฅ ๋ฐ ์ด์‹์„ฑ์„ ํ–ฅ์ƒ์‹œํ‚ค๊ธฐ ์œ„ํ•ด ์—„์ฒญ๋‚œ ์ˆ˜์˜ ๋ณ€๊ฒฝ์„ ์ˆ˜ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์ž์˜ ์ง€์†์ ์ธ ์–ธ์–ด ๊ฐœ์„ ๊ณผ ์ง€์› ๋•๋ถ„์— Java๋Š” ํ•ญ์ƒ IT ๊ธฐ์ˆ  ๊ฐœ๋ฐœ๊ณผ ๋ณด์กฐ๋ฅผ ๋งž์ถฐ์™”์Šต๋‹ˆ๋‹ค. ์ด์ œ ์šฐ๋ฆฌ ์•ž์—๋Š” ํ˜„๋Œ€ ์–ธ์–ด๊ฐ€ ์žˆ์œผ๋ฉฐ ๊ทธ ์ฃผ์š” ํŠน์ง•์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
  • ์ง„์ž… ์žฅ๋ฒฝ์ด ๋‚ฎ์Šต๋‹ˆ๋‹ค.
    Java๋Š” C์™€ ์œ ์‚ฌํ•œ ๊ตฌ๋ฌธ์„ ์‚ฌ์šฉํ•˜๋Š” ๋Œ€๋ถ€๋ถ„์˜ ์–ธ์–ด๋ณด๋‹ค ๋ฐฐ์šฐ๊ธฐ ์‰ฝ์Šต๋‹ˆ๋‹ค.

  • ๊ฐ์ฒด ์ง€ํ–ฅ.
    Java ํ”„๋กœ๊ทธ๋žจ์€ ๊ฐ์ฒด์™€ ๊ฐ์ฒด์˜ ์ƒํ˜ธ ์ž‘์šฉ์„ ์ค‘์‹ฌ์œผ๋กœ ๊ตฌ์ถ•๋˜๋ฏ€๋กœ OOP๋ฅผ ์ตœ๋Œ€ํ•œ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์ด์‹์„ฑ.
    ์ธํ„ฐํ”„๋ฆฌํ„ฐ(Java Virtual Machine)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ”„๋กœ๊ทธ๋žจ์„ ๋‹ค์–‘ํ•œ ํ”Œ๋žซํผ๊ณผ ์žฅ์น˜๋กœ ์ด์‹ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ํ”Œ๋žซํผ ๋…๋ฆฝ์„ฑ ํ•œ
    ํ”Œ๋žซํผ์— ๋Œ€ํ•ด Java๋กœ ์ž‘์„ฑ๋œ ํ”„๋กœ๊ทธ๋žจ์€ ๊ฐ ํ”Œ๋žซํผ์— ๋Œ€ํ•œ JVM์˜ ํ•ด์„ ๋•๋ถ„์— ๋‹ค๋ฅธ ํ”Œ๋žซํผ์—์„œ ์‹คํ–‰๋  ์ˆ˜ ์žˆ๋Š” ์ค‘๊ฐ„ ๋ฐ”์ดํŠธ์ฝ”๋“œ๋กœ ์ปดํŒŒ์ผ๋ฉ๋‹ˆ๋‹ค.

  • ๊ณ ๊ธ‰ ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋”ฉ.
    Java ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๋ฉด ์—ฌ๋Ÿฌ ์Šค๋ ˆ๋“œ์˜ ์‹คํ–‰์„ ์ œ์–ดํ•˜์—ฌ ๋‹ค์ค‘ ์Šค๋ ˆ๋“œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

  • ๊ฒฐํ•จ ํ—ˆ์šฉ.
    ์ปดํŒŒ์ผ ๋ฐ ์ง์ ‘ ์‹คํ–‰ ์ค‘ ์˜ˆ์™ธ ๋ฉ”์ปค๋‹ˆ์ฆ˜์€ ํ”„๋กœ๊ทธ๋žจ์˜ ๋‚ด๊ฒฐํ•จ์„ฑ์„ ๋†’์ด๊ณ  ์˜ค๋ฅ˜ ์ˆ˜๋ฅผ ์ค„์ž…๋‹ˆ๋‹ค.

  • ํ•ด์„ ๊ฐ€๋Šฅ์„ฑ.
    Java ์ธํ„ฐํ”„๋ฆฌํ„ฐ๋Š” JVM ๋ฐ JRE๊ฐ€ ์žˆ๋Š” ๋ชจ๋“  ์‹œ์Šคํ…œ์—์„œ Java ๋ฐ”์ดํŠธ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๋ถ„ํฌ.
    Java์—๋Š” ๋ถ„์‚ฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•œ ๋„๊ตฌ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์„ฑ๋Šฅ. JIT
    (Just-in-time) ์ปดํŒŒ์ผ๋Ÿฌ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด C ๋ฐ C++ ์–ธ์–ด์— ํ•„์ ํ•˜๋Š” ๊ณ ์† ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ž‘๋™์ด ๋ณด์žฅ๋ฉ๋‹ˆ๋‹ค.

Java๋กœ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์‹œ์ž‘ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

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

๋‹ค์Œ ์ˆœ์„œ๋„๋Š” ์ผ๋ จ์˜ ๋‹จ๊ณ„๋ฅผ ๋ช…ํ™•ํ•˜๊ฒŒ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.
Java ํ•™์Šต์„ ์‹œ์ž‘ํ•˜๋Š” ๊ณณ - 2

Java๋กœ ํ”„๋กœ๊ทธ๋ž˜๋ฐํ•˜๋ ค๋ฉด ๋ฌด์—‡์ด ํ•„์š”ํ•ฉ๋‹ˆ๊นŒ?

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

์ปดํ“จํ„ฐ์— Java ์„ค์น˜

์ด๋ฏธ ์•Œ๊ณ  ์žˆ๋“ฏ์ด Java๋ฅผ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋ฐฐ์šธ ๋•Œ ์ฒซ ๋ฒˆ์งธ ๋‹จ๊ณ„๋Š” JDK๋ฅผ ์„ค์น˜ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค . ์ด๋ ‡๊ฒŒ ํ•˜๋ ค๋ฉด ๋ช‡ ๊ฐ€์ง€ ๊ฐ„๋‹จํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  1. ์˜ค๋ผํด ์›น์‚ฌ์ดํŠธ ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค .
  2. ์šด์˜ ์ฒด์ œ์— ๋”ฐ๋ผ ์„ค์น˜ ํŒŒ์ผ์„ ์„ ํƒํ•˜์—ฌ ๋‹ค์šด๋กœ๋“œํ•˜์‹ญ์‹œ์˜ค.
  3. ์„ค์น˜ ํ”„๋กœ๊ทธ๋žจ์˜ ์ง€์‹œ์— ๋”ฐ๋ผ ์„ค์น˜๋ฅผ ์™„๋ฃŒํ•˜์„ธ์š”.
  4. Windows๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
์˜ˆ๋ฅผ ๋“ค์–ด ๋‹ค์Œ์€ Windows ์šด์˜ ์ฒด์ œ์šฉ JDK ์„ค์น˜ ๋ฐ ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์— ๋Œ€ํ•œ ์„ค๋ช…์ž…๋‹ˆ๋‹ค .

๊ธฐ๋ณธ ์ •์˜

๋ฐฉ๊ธˆ Java๋ฅผ ๋ฐฐ์šฐ๊ธฐ ์‹œ์ž‘ํ–ˆ๋‹ค๋ฉด JVM (Java Virtual Machine) - Java ๊ฐ€์ƒ ๋จธ์‹ ์ด๋ผ๋Š” ์šฉ์–ด๋ฅผ ์ ‘ํ•˜๊ฒŒ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค . ์†Œ์Šค ๋ฐ”์ดํŠธ์ฝ”๋“œ๋ฅผ ๊ธฐ๊ณ„์–ด ์ฝ”๋“œ๋กœ ํ•ด์„ํ•˜๊ณ  ์‹คํ–‰ํ•˜๋Š” ์—ญํ• ์„ ํ•˜๋Š” ํ”Œ๋žซํผ๋ณ„ ์†Œํ”„ํŠธ์›จ์–ด ๋ชจ๋“ˆ์ž…๋‹ˆ๋‹ค. JRE (Java Runtime Environment) - ์ž๋ฐ” ๋Ÿฐํƒ€์ž„ ํ™˜๊ฒฝ. ํ”Œ๋žซํผ๋ณ„ JVM ๊ตฌํ˜„๊ณผ Java ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์„ธํŠธ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. JDK (Java Development Kit)๋Š” Java๋กœ ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ๊ฐœ๋ฐœ์ž ๋„๊ตฌ ์„ธํŠธ์ž…๋‹ˆ๋‹ค. ์ปดํŒŒ์ผ๋Ÿฌ, JRE, ํ‘œ์ค€ Java ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์„ธํŠธ, ๋ฌธ์„œ ๋ฐ ๋‹ค์–‘ํ•œ ์œ ํ‹ธ๋ฆฌํ‹ฐ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์†Œ์Šค ์ฝ”๋“œ ๋Š” .java ํ™•์žฅ์ž๋ฅผ ๊ฐ€์ง„ Java ํ…์ŠคํŠธ ํŒŒ์ผ์ž…๋‹ˆ๋‹ค. ๋ฐ”์ดํŠธ์ฝ”๋“œ ๋Š” JVM์— ๋Œ€ํ•œ ๋ช…๋ น ์ง‘ํ•ฉ์ธ ๊ธฐ๊ณ„ ๋…๋ฆฝ์ ์ธ ํ•˜์œ„ ์ˆ˜์ค€ ์ฝ”๋“œ์ž…๋‹ˆ๋‹ค. ๊ธฐ๊ณ„์–ด ์ฝ”๋“œ ๋Š” ํ”„๋กœ์„ธ์„œ์— ์˜ํ•ด ์ง์ ‘ ์‹คํ–‰๋˜๋Š” ๋ฐ”์ด๋„ˆ๋ฆฌ ํ˜•์‹์˜ ๊ธฐ๊ณ„ ๋ช…๋ น์–ด ์ง‘ํ•ฉ์ž…๋‹ˆ๋‹ค. ์ปดํŒŒ์ผ์€ ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ๋ฐ”์ดํŠธ์ฝ”๋“œ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ•ด์„ - ๋ฐ”์ดํŠธ์ฝ”๋“œ๋ฅผ ๊ธฐ๊ณ„์–ด ์ฝ”๋“œ๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ํ”Œ๋žซํผ ์€ ํ”„๋กœ๊ทธ๋žจ๊ณผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์‹คํ–‰๋˜๋Š” ํ•˜๋“œ์›จ์–ด ๋ฐ ์†Œํ”„ํŠธ์›จ์–ด ํ™˜๊ฒฝ์ž…๋‹ˆ๋‹ค. ๊ฐ€์žฅ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” ํ”Œ๋žซํผ์€ Microsoft Windows, Linux, Solaris OS ๋ฐ Mac OS์ž…๋‹ˆ๋‹ค. ์ด ๋‹ค์ด์–ด๊ทธ๋žจ์€ JVM, JRE ๋ฐ JDK์˜ ๊ฐœ๋…์„ ๋” ์ž˜ ์ดํ•ดํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.
Java ํ•™์Šต์„ ์‹œ์ž‘ํ•˜๋Š” ๊ณณ - 3

ํ”„๋กœ๊ทธ๋žจ ์ˆ˜๋ช…์ฃผ๊ธฐ

Java ํ”„๋กœ๊ทธ๋žจ์˜ ๋ผ์ดํ”„์‚ฌ์ดํด์€ ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ํ…์ŠคํŠธ ํ˜•์‹์œผ๋กœ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ๋ถ€ํ„ฐ ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ์ด๋ฅผ ์œ„ํ•ด ํŠน์ˆ˜ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ์ธ IDE(ํ†ตํ•ฉ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ)๊ฐ€ ์‚ฌ์šฉ๋˜์ง€๋งŒ ๋ชจ๋“  Windows OS ๋ฒ„์ „๊ณผ ํ•จ๊ป˜ ์ œ๊ณต๋˜๋Š” ๋ฉ”๋ชจ์žฅ๊ณผ ๊ฐ™์€ ํ…์ŠคํŠธ ํŽธ์ง‘๊ธฐ์—์„œ๋„ ๊ฐ„๋‹จํ•œ ํ”„๋กœ๊ทธ๋žจ์„ ์ž…๋ ฅํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์†Œ์Šค ์ฝ”๋“œ๋Š” .java ํ™•์žฅ์ž๋ฅผ ๊ฐ€์ง„ ํŒŒ์ผ์— ์ €์žฅ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ์ œ ํ”„๋กœ๊ทธ๋žจ HelloWorld.java:
public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("This is my first program");
    }
}
์ด ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ ์ „์— ์ปดํŒŒ์ผ๋Ÿฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ”์ดํŠธ์ฝ”๋“œ๋กœ ์ปดํŒŒ์ผํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ปดํŒŒ์ผ๋Ÿฌ๋Š” JDK์˜ ์ผ๋ถ€์ธ ์œ ํ‹ธ๋ฆฌํ‹ฐ์ž…๋‹ˆ๋‹ค. ์ž‘์—… ๊ฒฐ๊ณผ ํ™•์žฅ์ž๊ฐ€ .class์ธ ํŒŒ์ผ์„ ๋ฐ›๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—๋Š” ์–ด์…ˆ๋ธ”๋ฆฌ ์–ธ์–ด์™€ ์œ ์‚ฌํ•œ ํ˜•์‹์˜ JVM์— ๋Œ€ํ•œ ์ง€์นจ์ธ ๋ฐ”์ดํŠธ์ฝ”๋“œ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. HelloWorld.java ํ”„๋กœ๊ทธ๋žจ์€ HelloWorld.class ํŒŒ์ผ๋กœ ์ปดํŒŒ์ผ๋ฉ๋‹ˆ๋‹ค. Java ํ”Œ๋žซํผ์€ ๋ฐ”์ดํŠธ์ฝ”๋“œ ํŽธ์ง‘ ๋„๊ตฌ๋ฅผ ์ œ๊ณตํ•˜์ง€ ์•Š์ง€๋งŒ ์—ฌ์ „ํžˆ ๋ณผ ์ˆ˜๋Š” ์žˆ์Šต๋‹ˆ๋‹ค. Java ํ”„๋กœ๊ทธ๋žจ์˜ ๋ฐ”์ดํŠธ์ฝ”๋“œ๋ฅผ ํ™•์ธํ•˜๋ ค๋ฉด JDK์— ํฌํ•จ๋œ javap ๋””์Šค์–ด์…ˆ๋ธ”๋Ÿฌ ์œ ํ‹ธ๋ฆฌํ‹ฐ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์•ˆ๋…•ํ•˜์„ธ์š”. ํด๋ž˜์Šค์—๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฐ”์ดํŠธ์ฝ”๋“œ๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.
Compiled from "HelloWorld.java"
public class HelloWorld {
  public HelloWorld();
    Code:
0: aload_0
1: invokespecial #1 // Method java/lang/Object."<init>":()V
4: return

  public static void main(java.lang.String[]);
    Code:
0: getstatic #2//Fieldjava/lang/System.out:Ljava/io/PrintStream;
3: ldc       #3// String This is my first program
5:invokevirtual#4//Methodjava/io/PrintStream.println:(Ljava/lang/String;)V
8: return
}
์šฐ๋ฆฌ ํ”„๋กœ๊ทธ๋žจ์€ ์ด์ œ HelloWorld.class ํŒŒ์ผ์— ์ปดํŒŒ์ผ๋œ ํ˜•ํƒœ๋กœ ์ €์žฅ๋ฉ๋‹ˆ๋‹ค. ์–ด๋–ค ํ”Œ๋žซํผ์—์„œ๋“  ์‹คํ–‰ํ•˜๋ ค๋ฉด JRE๋ฅผ ์„ค์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. JVM์„ ์‚ฌ์šฉํ•˜๋ฉด ๋ชจ๋“  ํ”Œ๋žซํผ์œผ๋กœ์˜ Java ํ”„๋กœ๊ทธ๋žจ ์ด์‹์„ฑ์ด ๋ณด์žฅ๋ฉ๋‹ˆ๋‹ค. ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰์€ Java ๊ฐ€์ƒ ๋จธ์‹ ์— ์˜ํ•œ ๋ฐ”์ดํŠธ์ฝ”๋“œ์˜ ์‹คํ–‰์ž…๋‹ˆ๋‹ค. ํ”„๋กœ๊ทธ๋žจ์€ ์ปดํŒŒ์ผ๋œ ํŒŒ์ผ์˜ ์ด๋ฆ„์„ ์ง€์ •ํ•ด์•ผ ํ•˜๋Š” java ์œ ํ‹ธ๋ฆฌํ‹ฐ์— ์˜ํ•ด ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ์‹คํ–‰์€ ๋‹ค์Œ ์ˆœ์„œ๋กœ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
  1. JVM์€ ์ปดํ“จํ„ฐ์˜ RAM์—์„œ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ๋ณธ์งˆ์ ์œผ๋กœ ์ด๊ฒƒ์€ ์šฐ๋ฆฌ๊ฐ€ ์ž‘์„ฑํ•œ Java ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ํ”„๋กœ๊ทธ๋žจ์ž…๋‹ˆ๋‹ค.
  2. JVM์€ ์ดˆ๊ธฐ ํด๋ž˜์Šค ๋กœ๋”๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ปดํ“จํ„ฐ ๋ฉ”๋ชจ๋ฆฌ์— ํด๋ž˜์Šค๋ฅผ ๋กœ๋“œํ•˜๊ณ  ์ดˆ๊ธฐํ™”ํ•ฉ๋‹ˆ๋‹ค. ์ด ์˜ˆ์—์„œ๋Š” ํด๋ž˜์Šค๊ฐ€ ์ž…๋‹ˆ๋‹ค HelloWorld.
  3. ๋‹ค์Œ์œผ๋กœ ์šฐ๋ฆฌ ์ˆ˜์—…์—์„œ JVM์€ public static void main(String[]).
  4. ๋ฉ”์†Œ๋“œ ์ฝ”๋“œ๊ฐ€ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค main. ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰์— ํ•„์š”ํ•œ ๊ฒฝ์šฐ ๋‹ค๋ฅธ ํด๋ž˜์Šค๊ฐ€ ๋กœ๋“œ๋˜๊ณ  ์ดˆ๊ธฐํ™”๋ฉ๋‹ˆ๋‹ค.
  5. ์ฝ”๋“œ๊ฐ€ ์‹คํ–‰๋œ ํ›„ ๊ฐ€๋น„์ง€ ์ˆ˜์ง‘์ด ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค. ์ฆ‰, ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์ง€์›Œ์ง€๊ณ  JVM ํ”„๋กœ๊ทธ๋žจ์ด ๋‹ซํž™๋‹ˆ๋‹ค.
์ด๋Ÿฌํ•œ ๋ชจ๋“  ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ๋•Œ JVM์€ ๋ฐ”์ดํŠธ์ฝ”๋“œ๊ฐ€ ์‹คํ–‰๋˜๋Š” ์šด์˜ ์ฒด์ œ๋ฅผ ๊ณ ๋ คํ•˜์—ฌ ๋ฐ”์ดํŠธ์ฝ”๋“œ๋ฅผ ํ”„๋กœ์„ธ์„œ์— ๋Œ€ํ•œ ๊ธฐ๊ณ„ ๋ช…๋ น์œผ๋กœ ํ•ด์„(๋ณ€ํ™˜)ํ•ฉ๋‹ˆ๋‹ค. Java ํ”„๋กœ๊ทธ๋žจ์˜ ๋ผ์ดํ”„์‚ฌ์ดํด์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ฐœ๋žต์ ์œผ๋กœ ํ‘œํ˜„๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
Java ํ•™์Šต์„ ์‹œ์ž‘ํ•˜๋Š” ๊ณณ - 4

๊ฐœ๋ฐœ ํ™˜๊ฒฝ ์„ ํƒ ๋ฐ ์„ค์น˜

Java๋กœ ๋น ๋ฅด๊ณ  ํšจ์œจ์ ์œผ๋กœ ํ”„๋กœ๊ทธ๋ž˜๋ฐํ•˜๋ ค๋ฉด Java ํ”„๋กœ๊ทธ๋žจ ์ž‘์„ฑ์„ ์œ„ํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ธ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. Java ๊ฐœ๋ฐœ์ž๋“ค ์‚ฌ์ด์—์„œ ๊ฐ€์žฅ ์ธ๊ธฐ ์žˆ๋Š” IDE๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
  • IntelliJ ์•„์ด๋””์–ด
  • ์‹
  • ๋„ท๋นˆ์ฆˆ
RebelLabs๊ฐ€ ์ค€๋น„ํ•œ Java ๊ฐœ๋ฐœ ๋„๊ตฌ ์ธ๊ธฐ ์กฐ์‚ฌ ์— ๋”ฐ๋ฅด๋ฉด 2017๋…„์—๋Š” IntelliJ IDEA๊ฐ€ ์„ ๋‘์— ์˜ฌ๋ž๊ณ  , Eclipse๊ฐ€ 2์œ„, NetBeans๊ฐ€ 3์œ„๋ฅผ ์ฐจ์ง€ํ–ˆ์œผ๋ฉฐ ๋‘ ๋ฆฌ๋”์— ๋น„ํ•ด ์ƒ๋‹นํ•œ ๊ฒฉ์ฐจ๋ฅผ ๋ณด์˜€์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ IDE์˜ ์ ์œ ์œจ์€ ์ ๊ณ  ์ „์ฒด ๋ณผ๋ฅจ์˜ 3%๋ฅผ ์ดˆ๊ณผํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ IDE์— ๋Œ€ํ•œ ์ข‹์€ ๋น„๊ต ๋ฆฌ๋ทฐ๋Š” ์—ฌ๊ธฐ์—์„œ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค . ์ดˆ๋ณด์ž์˜ ๊ฒฝ์šฐ IntelliJ IDEA Community Edition๋งŒ ์„ค์น˜ํ•˜๋ฉด ์ถฉ๋ถ„ํ•ฉ๋‹ˆ๋‹ค. ์ฒซ์งธ, ํžŒํŠธ, ์ฝ”๋“œ ๊ฒ€์‚ฌ, ์ฝ”๋“œ ๋””๋ฒ„๊น… ๊ธฐ๋Šฅ, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค, ์„œ๋ฒ„์™€์˜ ํŽธ๋ฆฌํ•œ ํ†ตํ•ฉ, ๋‹ค์–‘ํ•œ ๊ฐœ๋ฐœ ๋„๊ตฌ ๋ฐ ๊ธฐ์ˆ  ์ง€์›๊ณผ ๊ฐ™์€ ์ตœ์‹  IDE์˜ ๋ชจ๋“  ์ด์ ์„ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‘˜์งธ, ๋Œ€๋ถ€๋ถ„์˜ ๊ฐœ๋ฐœ์ž๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ์ „๋ฌธ ๊ฐœ๋ฐœ ๋„๊ตฌ๋ฅผ ์ตํžˆ๋Š” ์ฒซ ๋ฒˆ์งธ ๋‹จ๊ณ„๋ฅผ ๋ฐŸ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. IntelliJ IDEA ์„ค์น˜ ์ง€์นจ์€ JavaRush ์˜จ๋ผ์ธ ๊ต์œก ๊ณผ์ •์˜ ์„ธ ๋ฒˆ์งธ ๋ ˆ๋ฒจ ์‹œ์ž‘ ๋ถ€๋ถ„์— ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค .

Java๋ฅผ ๋ฐฐ์šฐ๋Š” ๋ฐ ์–ผ๋งˆ๋‚˜ ๊ฑธ๋ฆฌ๋‚˜์š”?

Java์˜ ๊ธฐ๋ณธ ์‚ฌํ•ญ์„ ๋ฐฐ์šฐ๊ณ  ํ”„๋กœ๊ทธ๋ž˜๋ฐ์— ๋Šฅ์ˆ™ํ•ด์ง€๋Š” ๋ฐ์—๋Š” ํ›ˆ๋ จ ๊ฐ•๋„์— ๋”ฐ๋ผ 6๊ฐœ์›”์—์„œ 12๊ฐœ์›”์ด ๊ฑธ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ณผ์ •์„ ์ฒด๊ณ„์ ์œผ๋กœ ๋งŒ๋“ค๋ ค๋ฉด ํ•™์Šต ๊ณ„ํš์„ ์„ธ์šฐ๊ณ , ํ•„์š”ํ•œ ์ž์›์„ ์ˆ˜์ง‘ํ•˜๊ณ , ํ•˜๋ฃจ์— ๋ช‡ ์‹œ๊ฐ„์”ฉ ๊ณต๋ถ€ํ•  ์‹œ๊ฐ„์„ ํ™•๋ณดํ•˜์„ธ์š”. ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํ•™์Šต์˜ ํ•ต์‹ฌ์€ ์—ฐ์Šต์ด๋ผ๋Š” ๊ฒƒ์„ ์žŠ์ง€ ๋งˆ์„ธ์š”.

๊ฒฐ๋ก 

Java๋ฅผ ์Šค์Šค๋กœ ๋ฐฐ์šฐ๋ฉด ์ด๋ก ๋ณด๋‹ค ์‹ค์ œ๋กœ ๋” ์‰ฌ์šด ๊ฒƒ์œผ๋กœ ๋‚˜ํƒ€๋‚ฌ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด์„œ๋Š” ๊ฐœ์ธ์šฉ ์ปดํ“จํ„ฐ ์‚ฌ์šฉ์ž ์ˆ˜์ค€์˜ ์ง€์‹์ด๋ฉด ์ถฉ๋ถ„ํ•ฉ๋‹ˆ๋‹ค. Java ํ•™์Šต์„ ํšจ๊ณผ์ ์œผ๋กœ ์‹œ์ž‘ํ•˜๋ ค๋ฉด ๋ช‡ ๊ฐ€์ง€ ๊ฐ„๋‹จํ•œ ๋‹จ๊ณ„๋ฅผ ๋”ฐ๋ฅด์‹ญ์‹œ์˜ค.
  1. ์ปดํ“จํ„ฐ์— Java ์„ค์น˜
  2. ๊ธฐ๋ณธ ๊ฐœ๋…์„ ๋ฐฐ์›Œ๋ณด์„ธ์š”
  3. ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ์„ค์ •
  4. ์ฒซ ๋ฒˆ์งธ ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜๊ณ  ์‹คํ–‰ํ•ด ๋ณด์„ธ์š”.
์ฝ”๋ฉ˜ํŠธ
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION