๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
โŒจ๏ธ Language/Java

[Java] Java ์‹œ์ž‘ํ•˜๊ธฐ ๐Ÿš€

by hyebin (Helia) 2025. 4. 15.
๋ฐ˜์‘ํ˜•

๋ชฉ์ฐจ

     

    1. Java๋ž€ ๋ฌด์—‡์ธ๊ฐ€?

    Java๋Š” 1995๋…„ Sun Microsystems(ํ˜„์žฌ๋Š” Oracle)์— ์˜ํ•ด ๊ณต๊ฐœ๋œ ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์ž…๋‹ˆ๋‹ค. ๊ฐ€์žฅ ํฐ ํŠน์ง•์€ “ํ•œ ๋ฒˆ ์ž‘์„ฑํ•˜๋ฉด, ์–ด๋””์„œ๋‚˜ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค(Write Once, Run Anywhere)”๋Š” ์ฒ ํ•™์ด์—์š”.

     

    Java๋Š” ์šฐ๋ฆฌ๊ฐ€ ์ž‘์„ฑํ•œ ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ํ•œ ๋ฒˆ ์ปดํŒŒ์ผํ•˜์—ฌ ๋ฐ”์ดํŠธ์ฝ”๋“œ๋ผ๋Š” ์ค‘๊ฐ„ ์–ธ์–ด๋กœ ๋ฐ”๊พผ ๋’ค, JVM(Java Virtual Machine) ์œ„์—์„œ ์‹คํ–‰๋˜๊ธฐ ๋•Œ๋ฌธ์— ์šด์˜์ฒด์ œ๋‚˜ ํ™˜๊ฒฝ์— ์ƒ๊ด€์—†์ด ๋™์ผํ•˜๊ฒŒ ๋™์ž‘ํ•  ์ˆ˜ ์žˆ์–ด์š”.

     

    โœ… Java๋Š” ์–ด๋–ป๊ฒŒ ์‹คํ–‰๋ ๊นŒ?

    Java ํ”„๋กœ๊ทธ๋žจ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ณผ์ •์„ ๊ฑฐ์ณ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค

     

    ๐Ÿ“Œ Java ์‹คํ–‰ ํ๋ฆ„

    ์ถœ์ฒ˜: https://st-lab.tistory.com/176

    1. ๊ฐœ๋ฐœ์ž๊ฐ€ ์ž‘์„ฑํ•œ .java ์†Œ์Šค์ฝ”๋“œ๋Š”
    2. javac ์ปดํŒŒ์ผ๋Ÿฌ์— ์˜ํ•ด .class ๋ฐ”์ดํŠธ์ฝ”๋“œ๋กœ ๋ณ€ํ™˜๋˜๊ณ ,
    3. ์ด ๋ฐ”์ดํŠธ์ฝ”๋“œ๋Š” JVM์ด ๊ฐ ์šด์˜์ฒด์ œ์— ๋งž๊ฒŒ ํ•ด์„/์‹คํ–‰ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

    ์ด ๊ตฌ์กฐ ๋•๋ถ„์— Java๋Š” ์šด์˜์ฒด์ œ์— ๋…๋ฆฝ์ ์ด๋ฉด์„œ๋„ ๊ฐ•๋ ฅํ•œ ์ด์‹์„ฑ์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


    2 . Java์˜ ์—ญ์‚ฌ์™€ ํŠน์ง•

    ๐Ÿ“œ Java ์—ญ์‚ฌ ์š”์•ฝ

    • 1991๋…„: Sun Microsystems์—์„œ ํ”„๋กœ์ ํŠธ ์‹œ์ž‘ (Green Team)
    • 1995๋…„: Java 1.0 ๊ณต๊ฐœ
    • 2006๋…„: ์˜คํ”ˆ์†Œ์Šคํ™” (OpenJDK ๋“ฑ์žฅ)
    • 2010๋…„: Oracle, Sun Microsystems ์ธ์ˆ˜
    • 2017๋…„~ํ˜„์žฌ: 6๊ฐœ์›” ์ฃผ๊ธฐ์˜ ๋ฆด๋ฆฌ์ฆˆ ์ฒด๊ณ„๋กœ ์ „ํ™˜

    ๐ŸŒŸ Java์˜ ์ฃผ์š” ํŠน์ง•

    ํŠน์ง• ์„ค๋ช…
    ํ”Œ๋žซํผ ๋…๋ฆฝ์„ฑ JVM๋งŒ ์žˆ์œผ๋ฉด ์–ด๋–ค ํ™˜๊ฒฝ์—์„œ๋„ ์‹คํ–‰ ๊ฐ€๋Šฅ
    ๊ฐ์ฒด์ง€ํ–ฅ ํด๋ž˜์Šค์™€ ๊ฐ์ฒด ์ค‘์‹ฌ์˜ ์„ค๊ณ„
    ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ ์ž๋™ ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰ํ„ฐ ์ง€์›
    ํ’๋ถ€ํ•œ API ์ปฌ๋ ‰์…˜, ๋‚ ์งœ, ์ž…์ถœ๋ ฅ ๋“ฑ ๋‹ค์–‘ํ•œ ํ‘œ์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
    ๋ณด์•ˆ ๋ฐ”์ดํŠธ์ฝ”๋“œ ๊ฒ€์ฆ, ๋Ÿฐํƒ€์ž„ ์ฒดํฌ ๋“ฑ ๋‹ค์ค‘ ๋ณด์•ˆ ๊ตฌ์กฐ
    ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋”ฉ ์—ฌ๋Ÿฌ ์ž‘์—…์„ ๋™์‹œ์— ์ฒ˜๋ฆฌ ๊ฐ€๋Šฅ (Thread ์ง€์›)

    3. Java ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ๊ตฌ์ถ•ํ•˜๊ธฐ

    โœ… Step 1. JDK ์„ค์น˜

    Java๋ฅผ ๊ฐœ๋ฐœํ•˜๊ธฐ ์œ„ํ•ด์„  JDK(Java Development Kit)๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

    JDK ๋‹ค์šด๋กœ๋“œ ๋งํฌ ๋˜๋Š” Oracle ๊ณต์‹ ํ™ˆํŽ˜์ด์ง€์—์„œ ์šด์˜์ฒด์ œ์— ๋งž๊ฒŒ ์„ค์น˜ํ•˜์„ธ์š”.

    ๋‹ค์–‘ํ•œ ๋ฒ„์ „์ด ์žˆ์ง€๋งŒ ๊ทธ์ค‘ LTS(Long Term Support) ๋ฒ„์ „์„ ์„ ํƒํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

     

    ์„ค์น˜ ํ›„, ํ„ฐ๋ฏธ๋„์—์„œ ์•„๋ž˜ ๋ช…๋ น์–ด๋กœ ๋ฒ„์ „์„ ํ™•์ธํ•ด ๋ด…๋‹ˆ๋‹ค:

    java -version

     

    MacOS ํ™˜๊ฒฝ๋ณ€์ˆ˜ ๋“ฑ๋ก

    1. ํ„ฐ๋ฏธ๋„์„ ์—ด๊ณ , cd /Library/Java/JavaVirtualMachines ์ž…๋ ฅํ•ด ์ด๋™
    2. ์„ค์น˜๋œ jdk ํ™•์ธ ํ›„ cd ์„ค์น˜๋œjdkํด๋”๋ช…/Contents/Home/ ์œผ๋กœ ์ด๋™
    3. pwd ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•˜์—ฌ java๊ฐ€ ์„ค์น˜๋œ ์ฃผ์†Œ ๋ณต์‚ฌ

        4. ๋ณต์‚ฌํ•œ jdk ๊ฒฝ๋กœ๋ฅผ ํ™˜๊ฒฝ๋ณ‘์ˆ˜ JAVA_HOME์œผ๋กœ ์„ค์ •

            1. vi ~/.bash_profile ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•ด vi ํŽธ์ง‘๊ธฐ๋กœ .bash_profile ํŒŒ์ผ์„ ์˜คํ”ˆ

            2. ํ‚ค๋ณด๋“œ i๋ฅผ ์ž…๋ ฅํ•ด INSERT ๋ชจ๋“œ๋กœ ๋ณ€ํ™˜

            3. ์„ค์น˜ํ•œ JDK Home ๊ฒฝ๋กœ ์ถ”๊ฐ€

    JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-21.jdk/Contents/Home
    PATH=$PATH:$JAVA_HOME/bin
    export JAVA_HOME
    export PATH

            4. [ESC] - "wq" ์ž…๋ ฅ ํ›„ ์—”ํ„ฐ๋ฅผ ๋ˆŒ๋Ÿฌ ์ €์žฅ

            5. source .bash_profile ์„ ์ž…๋ ฅํ•˜์—ฌ ์ ์šฉ

            6. echo $JAVA_HOME ์ž…๋ ฅํ•˜์—ฌ ํ™•์ธ


    โœ… Step 2. IntelliJ IDEA ์„ค์น˜ (๊ถŒ์žฅ IDE)

    JetBrains์—์„œ ๋งŒ๋“  IntelliJ IDEA๋Š” Java ๊ฐœ๋ฐœ์— ํŠนํ™”๋œ IDE์ž…๋‹ˆ๋‹ค.


    โœ… Step 3. ์ฒซ Java ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰

    1. "New Project" ์„ ํƒํ•ด ์ƒˆ ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ
    2. [src] ํด๋”์—์„œ ์˜ค๋ฅธ์ชฝ ํด๋ฆญ - [New] - [Package] ํด๋ฆญํ•ด ํŒจํ‚ค์ง€ ์ƒ์„ฑ
    3. ์ƒ์„ฑํ•œ ํŒจํ‚ค์ง€์—์„œ ์˜ค๋ฅธ์ชฝ ํด๋ฆญ - [New] - [Java Class] ํด๋ฆญํ•ด ํด๋ž˜์Šค ํŒŒ์ผ ์ƒ์„ฑ
    4. ์ž๋ฐ” ์ฝ”๋“œ ์ž‘์„ฑ ํ›„ ์‹คํ–‰
    package ํŒจํ‚ค์ง€ ์ด๋ฆ„;
    
    public class Hello {
        public static void main(String[] args) {
            System.out.print("Hello");
        }
    }

     

    ๋‹ค์Œ ๊ธ€์—์„œ๋Š” Java์˜ ์ฃผ์„์˜ ์ข…๋ฅ˜์™€ ์‚ฌ์šฉ๋ฒ•์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด ๋ณผ๊ฒŒ์š”.

    ๐Ÿ‘‰ ๋‹ค์Œ ํŽธ: ์ฃผ์„์˜ ์ข…๋ฅ˜์™€ ์‚ฌ์šฉ๋ฒ•
    ๋ฐ˜์‘ํ˜•