๊ด€๋ฆฌ ๋ฉ”๋‰ด

gi_dor

Java (1) OT - Java์— ๋Œ€ํ•ด , ๊ฐœ๋ฐœํ™˜๊ฒฝ ์„ธํŒ… ๋ณธ๋ฌธ

Language/Java

Java (1) OT - Java์— ๋Œ€ํ•ด , ๊ฐœ๋ฐœํ™˜๊ฒฝ ์„ธํŒ…

๊ธฐ๋Œ 2023. 10. 23. 14:10

๐Ÿ“š ๊ตญ๋น„ 10 ์ผ์ฐจ


• JVM

  • ์ž๋ฐ” ์‹คํ–‰ํŒŒ์ผ์˜ ์ฝ”๋“œ๋ฅผ ํ•ด๋‹น ์šด์˜์ฒด์ œ๊ฐ€ ์ดํ•ด ํ•  ์ˆ˜ ์žˆ๋Š ์ฝ”๋“œ๋กœ ๋ณ€ํ™˜ํ•œ๋‹ค (๋ฒˆ์—ญ๊ธฐ)

• Java์˜ ํŠน์ง•

    • ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์–ธ์–ด
    • c , c++์— ๋น„ํ•ด ๋ฌธ๋ฒ•์ด ๊ฐ„๋‹จํ•˜๊ณ  , 'ํฌ์ธํŠธ'๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค.
    • ํ”Œ๋žซํผ ๋…๋ฆฝ์ ์ด๋‹ค.
    • ๊ฐ€์ƒ๋จธ์‹  ์œ„์—์„œ ์‹คํ–‰์ด ๋œ๋‹ค. (JVM , Java Virtual Machine)
    • ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜์„ ์ง€์›ํ•œ๋‹ค ( Garbage Collection)
    • ๋ฉ€ํ‹ฐ ์“ฐ๋ ˆ๋“œ๋ฅผ ์ง€์›ํ•œ๋‹ค
Garbage Collection 
๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌํ•˜๋Š” ๊ธฐ๋ฒ•์ค‘ ํ•˜๋‚˜๋‹ค , ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ ๊ฐ€์šด๋ฐ ๋” ์ด์ƒ ์‚ฌ์šฉ ํ• ์ˆ˜ ์—†๊ฒŒ ๋œ ์˜์—ญ์„ ์ฐพ์•„๋‚ด ์ž๋™์œผ๋กœ ํ•ด์ œ ํ•œ๋‹ค.
๊ฐœ๋ฐœ์ž๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ด€๋ฆฌํ•œ ํ•„์š”๊ฐ€ ์—†๋‹ค , ์•Œ์•„์„œ ๊ด€๋ฆฌ ํ•ด์ค€๋‹ค.
์•Œ์•„์„œ ์ฒญ์†Œ ํ•ด์ค€๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋ฉด ํŽธํ•˜๋‹ค.

์žฅ์  
๋ฒ„๊ทธ๋ฅผ ์ค„์ด๊ฑฐ๋‚˜ ์™„์ „ํžˆ ๋ง‰์„์ˆ˜ ์žˆ๋‹ค
1 ) ์ด๋ฏธ ํ•ด์ œ๋œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋‹ค์‹œ ํ•ด์ œํ•˜๋Š” ๋ฒ„๊ทธ
2 ) ๋” ์ด์ƒ ํ•„์š”์น˜ ์•Š์€ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ํ•ด์ œ๋˜์ง€ ์•Š๊ณ  ๋‚จ์•„์žˆ๋Š” ๋ฒ„๊ทธ

๋‹จ์ 
์–ด๋–ค ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ•ด์ œํ• ์ง€ ๊ฒฐ์ •ํ•˜๋Š”๋ฐ ๋น„์šฉ์ด ๋“ ๋‹ค
ํ”„๋กœ๊ทธ๋žจ์ด ์˜ˆ์ธก ๋ถˆ๊ฐ€ํ•˜๊ฒŒ ์ผ์‹œ์ ์œผ๋กœ ์ •์ง€ํ• ์ˆ˜ ์žˆ๋‹ค - ๋‚ด๊ฐ€ ์›ํ•  ๋•Œ ํ•˜์ง€ ์•Š๊ณ  ํ”„๋กœ๊ทธ๋žจ์ด ์‰ฌ๊ณ ์žˆ์„ ๋•Œ ์ง€ ๋ง˜๋Œ€๋กœ ํ•œ๋‹ค

 

Multi Thread
ํ•˜๋‚˜์˜ ํ”„๋กœ๊ทธ๋žจ์— ๋™์‹œ์— ์—ฌ๋Ÿฌ๊ฐœ์˜ ์ผ์„ ์ˆ˜ํ–‰ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ๊ฒƒ์ด๋‹ค.
๋™์‹œ ์ž‘์—…์„ ๊ตฌํ˜„ 
Ex. ์นดํ†ก ์ฑ„ํŒ…์„ ์น˜๋ฉด์„œ ์›น๋ฌธ์„œ๋ฅผ ๋‹ค์šด ๋ฐ›์œผ๋ฉฐ ์‚ฌ์ง„ ๋ณด๋Š”๊ฒƒ ?

 

• ์šฐ๋ฆฌ๋‚˜๋ผ ํ•œ์ • Java ๊ธฐ๋ฐ˜ ํ”„๋กœ์ ํŠธ๊ฐ€ ๋งŽ์€์ด์œ 

  • ์ •๋ณด์‹œ์Šคํ…œ ( ์—…๋ฌด์šฉ ํ”„๋กœ๊ทธ๋žจ ) ๊ฐœ๋ฐœ์„ ์œ„ํ•œ ํ‘œ์ค€ํ™”๋œ ํ™˜๊ฒฝ์ด ์กด์žฌํ•œ๋‹ค.  (์ „์ž ์ •๋ถ€ ํ”„๋ ˆ์ž„์›Œํฌ)
  • ๋‹ค์–‘ํ•œ ์˜คํ”ˆ์†Œ์Šค ( ๋ฌด๋ฃŒ๋กœ ์‚ฌ์šฉ๊ฐ€๋Šฅํ•œ ํ”„๋กœ๊ทธ๋žจ ) ๊ฐ€ ์กด์žฌ ํ•œ๋‹ค.
  • ๋‹ค์–‘ํ•œ ์ปค๋ฎค๋‹ˆํ‹ฐ ํ™œ์„ฑํ™”

• Java Edition

  • Java ME - Micro Edition - ๋ชจ๋ฐ”์ผ ๊ฐ™์€ ์†Œํ˜•๊ธฐ๊ธฐ์—์„œ ์‹คํ–‰๋˜๋Š” ์ž๋ฐ” ํ”„๋กœ๊ทธ๋žจ ๊ฐœ๋ฐœ์— ์‚ฌ์šฉ
  • Java SE - Standard Edition - ๋ฐ์Šคํฌํƒ‘ ์ปดํ“จํ„ฐ ๋“ฑ์—์„œ ์‹คํ–‰๋˜๋Š” ์ž๋ฐ” ํ”„๋กœ๊ทธ๋žจ ๊ฐœ๋ฐœ์— ์‚ฌ์šฉ
  • Java EE -  Enterprise Edition - ์„œ๋ฒ„์šฉ ์ปดํ“จํ„ฐ ๋“ฑ์—์„œ ์‹คํ•ผ๋˜๋Š” ์ž๋ฐ” ํ”„๋กœ๊ทธ๋žจ ๊ฐœ๋ฐœ์— ์‚ฌ์šฉ

• ๊ฐœ๋ฐœํ™˜๊ฒฝ ๊ตฌ์ถ•

  • JDK ์„ค์น˜  Java Development Kit
    JDK ๋Š” ( ์ž๋ฐ” ์‹คํ–‰ ํ™˜๊ฒฝ ) + ์ž๋ฐ” ๊ฐœ๋ฐœ๋„๊ตฌ๋ฅผ ํฌํ•จ ํ•˜๊ณ  ์žˆ๋‹ค.
  • https://www.oracle.com/kr/java/technologies/

 

• ์‹œ์Šคํ…œ ํ™˜๊ฒฝ๋ณ€์ˆ˜ ์ถ”๊ฐ€


• Java ํ”„๋กœ๊ทธ๋žจ ๊ฐœ๋ฐœํ•˜๊ธฐ

  • ์†Œ์Šค ํŒŒ์ผ ์ž‘์„ฑํ•˜๊ธฐ ( Sample.java ) // ์†Œ์Šค ํŒŒ์ผ์€ visual studio code , ๋ฉ”๋ชจ์žฅ , IDE(ํ†ตํ•ฉ๊ฐœ๋ฐœํ™˜๊ฒฝ , eclipse , IntelliJ
  • ์†Œ์ŠคํŒŒ์ผ์„ ์ปดํŒŒ์ผํ•ด์„œ ์‹คํ–‰ํŒŒ์ผ์„ ๋งŒ๋“ค๊ธฐ
    c:\>javac.exe Sample.java
    ์œ„์˜ ๋ช…๋ น์„ ์‹คํ–‰ํ•˜๋ฉด Sample.class ์‹คํ–‰ ํŒŒ์ผ์ด ์ƒ์„ฑ๋œ๋‹ค.
    * ํ†ตํ•ฉ ๊ฐœ๋ฐœํ™˜๊ฒฝ ์—์„œ๋Š” ์†Œ์ŠคํŒŒ์ผ์„ ์ž‘์„ฑํ•˜๊ณ  ์ €์žฅํ•˜๋ฉด ์ž๋™์œผ๋กœ ์‹คํ–‰ ํŒŒ์ผ์ด ์ƒ์„ฑ๋œ๋‹ค
  • ์‹คํ–‰ ํŒŒ์ผ์„ ์‹คํ–‰ํ•ด์„œ ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ํ•˜๊ธฐ
    c:\> java.exe. Sample
    ์œ„์˜ ๋ช…๋ น์„ ์‹คํ–‰ํ•˜๋ฉด ๊ฐ€์ƒ๋จธ์‹ ์ด ์‹คํ–‰๋˜๊ณ  ์ž๋ฐ” ๊ฐ€์ƒ๋จธ์‹ ์„ Sample.class๋ฅผ ์‹คํ–‰์‹œํ‚จ๋‹ค.
    * ํ†ตํ•ฉ ๊ฐœ๋ฐœํ™˜๊ฒฝ์—์„œ๋Š” ์‹คํ–‰๋ฒ„ํŠผ์„ ํด๋ฆญํ•ด ์‹คํ–‰๋œ๋‹ค. 

Hello .java 
์†Œ์Šค ํŒŒ์ผ - ๊ฐœ๋ฐœ์ž๊ฐ€ ์ž‘์„ฑ / ์ˆ˜์ •ํ•˜๋Š” ํŒŒ์ผ
ํ…์ŠคํŠธ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋‹ค.

Hello.class
์‹คํ–‰ํŒŒ์ผ - ์ž๋ฐ” ๊ฐ€์ƒ๋จธ์‹ ์ด ์‹คํ–‰ํ•˜๋Š” ํŒŒ์ผ 
๋ฐ”์ดํŠธ์ฝ”๋“œ ( ์ž๋ฐ” ๊ฐ€์ƒ๋จธ์‹ ์ด ์ดํ•ดํ• ์ˆ˜ ์žˆ๋Š” ์ฝ”๋“œ)๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋‹ค.

 


• eclipse ์„ค์น˜

https://www.eclipse.org/downloads/

 

• Eclipse 

  • ์ž๋ฐ”๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” ํ†ตํ•ฉ ๊ฐœ๋ฐœํ™˜๊ฒฝ IDE 
  • ๋‹ค์–‘ํ•œ ์šด์˜์ฒด์ œ๋ฅผ ์ง€์›ํ•œ๋‹ค - Window , MacOs , Linux
  • ๋ฌธ๋ฒ•๊ฒ€์‚ฌ , ์ฝ”๋“œ ์ž๋™์™„์„ฑ , ๋ฆฌํŒฉํ† ๋ง , ๋””๋ฒ„๊น…์„ ์ง€์›ํ•œ๋‹ค
  • ๋‹ค์–‘ํ•œ ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์ œ๊ณตํ•œ๋‹ค
  • ์—ฌ๋Ÿฌ ํ”„๋กœ์ ํŠธ๋ฅผ ๋™์‹œ์— ์—ด์ˆ˜ ์žˆ๋‹ค.
  • php , python , c , c++  ๊ฐœ๋ฐœ ์ง€์›
  • ์˜คํ”ˆ์†Œ์Šค ์†Œํ”„ํŠธ์›จ์–ด๋‹ค 

 

• Eclipse๋กœ ๊ฐœ๋ฐœํ•˜๊ธฐ

 

  • ์ดํด๋ฆฝ์Šค๋Š” ํ•ญ์ƒ ํ”„๋กœ์ ํŠธ ๋‹จ์œ„๋กœ ๊ฐœ๋ฐœํ•œ๋‹ค 
    ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ํ”„๋กœ์ ํŠธ๋ฅผ ๋จผ์ € ์ƒ์„ฑํ•œ๋‹ค
  • ์ž๋ฐ” ํ”„๋กœ์ ํŠธ์˜ ๊ตฌ์„ฑ
     ์ž๋ฐ” ํ”„๋กœ์ ํŠธ ์ด๋ฆ„
            ใ„ด JRE System Library ( ์ž๋ฐ” ์‹คํ–‰ ํ™˜๊ฒฝ์—์„œ ์ œ๊ณตํ•˜๋Š” ์ž๋ฐ” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ,
                                                    JRE Library์—์„œ ์ œ๊ณตํ•˜๋Š” ํด๋ž˜์Šค๋Š” ํ”„๋กœ์ ํŠธ์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋‹ค )
            ใ„ด src
               ( ๊ฐœ๋ฐœ์ž๊ฐ€ ์ž‘์„ฑํ•œ ์†Œ์Šค ํŒŒ์ผ์ด ์œ„์น˜ํ•˜๋Š” ํด๋”
                  ํŒจํ‚ค์ง€๋ฅผ ์ƒ์„ฑํ•ด์„œ ์†Œ์ŠคํŒŒ์ผ์„ ๊ด€๋ จ์žˆ๋Š” ๊ฒƒ ๋ผ๋ฆฌ ๋ชจ์•„๋‘˜ ์ˆ˜ ์žˆ๋‹ค)

• Java์˜ ์˜ˆ์•ฝ์–ด์™€ ์‹๋ณ„์ž

  • ์˜ˆ์•ฝ์–ด
    ์ž๋ฐ”์—์„œ ํŠน์ˆ˜ํ•œ ๋ชฉ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋„๋ก ๋ฏธ๋ฆฌ ์ •ํ•ด๋‘” ํ‚ค์›Œ๋“œ
    Ex.) 
          public
          class
          static
          package
          if
          bereak
          for
          while

    ์ •ํ•ด์ง„ ๋ชฉ์  ์ด์™ธ์˜ ์šฉ๋„๋กœ ์ ˆ๋Œ€๋กœ ์‚ฌ์šฉ ํ• ์ˆ˜ ์—†๋‹ค
    ์˜ˆ์•ฝ์–ด๋Š” ์‹๋ณ„์ž๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค,

  • ์‹๋ณ„์ž
    ๋‹ค๋ฅธ๊ฒƒ๊ณผ ๊ตฌ๋ณ„ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ๊ณ ์œ ํ•œ ์ด๋ฆ„
    Ex.)
          ํŒจํ‚ค์ง€๋ช… , ํด๋ž˜์Šค๋ช… , ๋ฉ”์„œ๋“œ๋ช… , ๋ณ€์ˆ˜๋ช… ... ๋“ฑ๋“ฑ

    ์‹๋ณ„์ž ์ž‘์„ฑ ๊ทœ์น™
          ์ˆซ์ž , ๋ฌธ์ž  ( ์˜์–ด ๋Œ€ , ์†Œ ๋ฌธ์ž) , $  ,   _  ๋งŒ ์‚ฌ์šฉ ๊ฐ€๋Šฅ
                           

     1 ) ๋ฐ˜๋“œ์‹œ ๋ฌธ์ž๋กœ ์‹œ์ž‘ํ•ด์•ผ ํ•œ๋‹ค 
     2 ) ๊ณต๋ฐฑ์„ ํฌํ•จ ํ• ์ˆ˜ ์—†์œผ๋ฉฐ , ๋Œ€ ์†Œ ๋ฌธ์ž๋ฅผ ๊ตฌ๋ถ„ํ•œ๋‹ค.
                                      
728x90