1์žฅ - Hello, Java!

2025. 2. 11. 06:05ยท๐Ÿฉธ Language/Java Language

1. Intro

ํ”„๋กœ๊ทธ๋žจ(Program) = ์ปดํ“จํ„ฐ๊ฐ€ ์–ด๋–ค ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ฐฉ๋ฒ•๊ณผ ์ˆœ์„œ๋ฅผ ๊ธฐ์ˆ ํ•œ ๋ช…๋ น์–ด ์ง‘ํ•ฉ

ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด = ์‚ฌ๋žŒ์ด ๋‚ด๋ฆฌ๋Š” ๋ช…๋ น์„ ์ปดํ“จํ„ฐ๊ฐ€ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๊ฒŒ ์ค‘๊ฐ„์—์„œ ๋‹๋Š” ์—ญํ• ์„ ํ•˜๋Š” ๊ฒƒ

์ปดํ“จํ„ฐ๋Š” ๋ช…๋ น์–ด๋ฅผ ์ดํ•ดํ•˜๋ฉฐ, ์ด๋Ÿฐ ๋ช…๋ น์–ด๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋กœ ์ž‘์„ฑ๋œ๋‹ค. ์ดํ›„ ๋ช…๋ น์–ด๊ฐ€ ๋ชจ์—ฌ ํ”„๋กœ๊ทธ๋žจ์ด ๋œ๋‹ค.

1.1. ์ž๋ฐ” ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ์„ค์ •

ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋กœ ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜๋ ค๋ฉด ๋„๊ตฌ๊ฐ€ ํ•„์š”ํ•˜๋‹ค. 

์ž๋ฐ”์—์„œ๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ๊ฒƒ๋“ค์„ ๋ชจ์•„ JDK(Java Development Kit, ์ž๋ฐ” ๊ฐœ๋ฐœ ๋„๊ตฌ ๋ชจ์Œ)๋ผ๋Š” ์ด๋ฆ„์œผ๋กœ ์ œ๊ณตํ•œ๋‹ค.

 

JDK ์™ธ์—๋„ ์ž๋ฐ”๋กœ ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์„ ๋•๋Š” IDE(Integrated Development Environment, ํ†ตํ•ฉ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ)๋ผ๋Š” ๋„๊ตฌ๋„ ์žˆ๋‹ค. IDE๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ๊ฐœ๋ฐœํ•˜๋Š” ๋ฐ ์œ ์šฉํ•œ ๋„๊ตฌ์˜ ์ง‘ํ•ฉ๋‹ˆ๋‹ค.

๋Œ€ํ‘œ์ ์ธ ์ž๋ฐ”์šฉ IDE๋กœ๋Š” Eclipse์™€ IntelliJ IDEA๊ฐ€ ์žˆ๋‹ค

 

 

1.1.1. JDK ์„ค์น˜ํ•˜๊ธฐ

(์„ค์น˜ ๊ณผ์ •์€ ์ƒ๋žต)

๋ช…๋ น ํ”„๋กฌํ”„ํŠธ์—์„œ # java -version์„ ์ž…๋ ฅํ•˜์—ฌ ์ž๋ฐ”๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ์„ค์น˜๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•œ๋‹ค.

 

 

 

1.1.2. IntelliJ IDEA ์„ค์น˜ํ•˜๊ธฐ

(๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์„ค์น˜ ๊ณผ์ • ์ƒ๋žต)


 

1.2. ์ฒซ ๋ฒˆ์งธ ์ž๋ฐ” ํ”„๋กœ์ ํŠธ

1.2.1. ํ”„๋กœ์ ํŠธ ์ƒ์„ฑํ•˜๊ธฐ

๋ฉ”์ธ ํ™”๋ฉด์˜ Projects์— ์œ„์น˜ํ•œ ์ƒํƒœ์—์„œ New Project ํด๋ฆญ

 

Java ์„ ํƒ ํ›„ Name ์ด๋ฆ„ ์ง“๊ธฐ. ๊ทธ๋ฆฌ๊ณ  ์•„๋ž˜์˜ Add sample code ์ฒดํฌ๋ฐ•์Šค๋Š” ์ฒซ ์‹ค์Šต๋•Œ๋ฅผ ์ œ์™ธํ•˜๊ณ ๋Š” ํด๋ฆญ ํ•ด์ œ

์„ค์ • ์™„๋ฃŒํ–ˆ๋‹ค๋ฉด create ๋ˆ„๋ฅด๊ธฐ

 

ํ”„๋กœ์ ํŠธ๊ฐ€ ์ƒ์„ฑ๋˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™์€ ํ™”๋ฉด์ด ๋ณด์ธ๋‹ค.

.idea, src, External Libraries๊ฐ€ ๋ณด์ธ๋‹ค

 

์ƒ˜ํ”Œ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด out ํด๋”๊ฐ€ ์ถ”๊ฐ€๋˜๊ณ  Hello_java.iml ํŒŒ์ผ๋„ ์ถ”๊ฐ€๋œ๋‹ค.

 

 

 

1.2.2. ์ž๋ฐ” ํ”„๋กœ๊ทธ๋žจ์˜ ์‹คํ–‰ ๊ณผ์ •โ˜…

ํŽธ์ง‘๊ธฐ์—์„œ ์ž‘์„ฑํ•œ ์ž๋ฐ” ์†Œ์Šค ์ฝ”๋“œ๋Š” .java ํ™•์žฅ์ž๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. 

์ƒ˜ํ”Œ ์ฝ”๋“œ๋ฅผ ๋ณด๋ฉด Main.java๋ผ๊ณ  ๋˜์–ด์žˆ๊ณ , ์ด๋Š” Main์ด๋ผ๋Š” ์ด๋ฆ„์˜ ์ž๋ฐ” ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค.

 

์ž๋ฐ” ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด, ์ž๋ฐ” ์ปดํŒŒ์ผ๋Ÿฌ๋ฅผ ๊ฑฐ์ณ ์ž๋ฐ” ๋ฐ”์ดํŠธ ์ฝ”๋“œ๋กœ ๋ณ€ํ™˜๋œ๋‹ค.

JDK์„ ์„ค์น˜ํ•œ ํด๋”์— ๊ฐ€๋ฉด bin ํด๋”์— javac.exe ํŒŒ์ผ์ด ์žˆ๋Š”๋ฐ ์ด ํŒŒ์ผ์ด ๋ฐ”๋กœ ์ž๋ฐ” ์ปดํŒŒ์ผ๋Ÿฌ์ด๋‹ค.

 

์ž๋ฐ” ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ๊ฐœ๋ฐœ์ž๊ฐ€ ์ž‘์„ฑํ•œ ์ž๋ฐ” ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ์ž๋ฐ” ๊ฐ€์ƒ ๋จธ์‹ (JVM, Java Virtual Machine)์ด ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ์–ธ์–ด๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ์ผ์ข…์˜ ๋ฒˆ์—ญ๊ธฐ์ด๋‹ค. ์ปดํŒŒ์ผ๋Ÿฌ๋กœ ๋ณ€ํ™˜ํ•œ ์ž๋ฐ” ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ์ž๋ฐ” ๋ฐ”์ดํŠธ ์ฝ”๋“œ๋ผ๊ณ  ํ•˜๋ฉฐ, ํ™•์žฅ์ž๋Š” .class์ด๋‹ค.

-> ์ด ๊ณผ์ •์„ ์ปดํŒŒ์ผ ํƒ€์ž„(compile time)์ด๋ผ๊ณ  ํ•œ๋‹ค.

 

์ดํ›„ ์ž๋ฐ” ๋ฐ”์ดํŠธ ์ฝ”๋“œ(Main.class)๋ฅผ JVM์ด ์ฝ์–ด๋“ค์—ฌ ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•œ๋‹ค. JVM์€ ์ž๋ฐ” ํ”„๋กœ๊ทธ๋žจ์˜ ์‹คํ–‰์„ ๋‹ด๋‹นํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์ด๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ž๋ฐ” ์ปดํŒŒ์ผ๋Ÿฌ(javac.exe)์™€ ๊ฐ™์€ ํด๋”์— ์žˆ๋Š” java.exe๊ฐ€ JVM์„ ๊ตฌ๋™ํ•˜๋Š” ์—ญํ• ์„ ํ•œ๋‹ค.

 

 

 

1.2.3. ์ž๋ฐ” ์†Œ์Šค ์ฝ”๋“œ์˜ ๊ตฌ์กฐโ˜…

์ƒ˜ํ”Œ ์ฝ”๋“œ Main.java๋กœ ์ž๋ฐ” ์†Œ์Šค์ฝ”๋“œ์˜ ๊ธฐ๋ณธ ๊ตฌ์กฐ๋ฅผ ์•Œ์•„๋ณด์ž.

์†Œ์Šค ์ฝ”๋“œ์˜ ๊ตฌ์กฐ๋ฅผ ์ •ํ™•ํžˆ ์ดํ•ดํ•˜๋ ค๋ฉด ํŒจํ‚ค์ง€(Package), ํด๋ž˜์Šค(class), ํ•„๋“œ(Field), ๋ฉ”์„œ๋“œ(Method) ๋“ฑ ๊ธฐ๋ณธ ๊ฐœ๋…์„ ๋ชจ๋‘ ์•Œ์•„์•ผ ํ•˜์ง€๋งŒ, ์ด๊ฒƒ๋“ค์€ ๋’ค์—์„œ ์‚ดํŽด๋ณด๊ธฐ๋กœ ํ•˜๊ณ  ์—ฌ๊ธฐ์„œ๋Š” ๊ธฐ๋ณธ ๊ตฌ์กฐ๋งŒ ์‚ดํŽด๋ณธ๋‹ค.

public class Main { //1๋ฒˆ
    public static void main(String[] args) { //2๋ฒˆ
        System.out.printf("Hello and welcome!"); //3๋ฒˆ

        for (int i = 1; i <= 5; i++) { 
            System.out.println("i = " + i);
        }
    }
}

 

// public class Main{...}

ํด๋ž˜์Šค๋ฅผ ์„ ์–ธํ•œ ๋ฌธ์žฅ์ด๋‹ค. ํด๋ž˜์Šค(class)๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ๊ตฌ์„ฑํ•˜๋Š” ๊ธฐ๋ณธ ๋‹จ์œ„๋กœ ์ž๋ฐ” ํ”„๋กœ๊ทธ๋žจ์€ 1๊ฐœ ์ด์ƒ์˜ ํด๋ž˜์Šค๋กœ ๊ตฌ์„ฑ๋œ๋‹ค.

Main์ด ํด๋ž˜์Šค๋ช…์ด๋ฉฐ, ํด๋ž˜์Šค ๋ช…์€ (1)์ž๋ฐ” ํŒŒ์ผ๋ช…(Main.java)๊ณผ ๋™์ผํ•˜๊ฒŒ ์ž‘์„ฑํ•˜๊ณ  (2) ์ฒซ ๊ธ€์ž๋Š” ๋Œ€๋ฌธ์ž๋กœ ์‹œ์ž‘ํ•œ๋‹ค.

class๋Š” ํ•ด๋‹น ๋ถ€๋ถ„์ด ํด๋ž˜์Šค์ž„์„ ๋‚˜ํƒ€๋‚ด๋Š” ํ‚ค์›Œ๋“œ์ด๋ฉฐ ํด๋ž˜์Šค๋กœ ์„ ์–ธํ•  ๋•Œ๋Š” class ํ‚ค์›Œ๋“œ๊ฐ€ ๋ฐ˜๋“œ์‹œ ์žˆ์–ด์•ผ ํ•œ๋‹ค.

-> ํ•œ ํ”„๋กœ๊ทธ๋žจ ์•ˆ์— ํด๋ž˜์Šค๊ฐ€ 2๊ฐœ ์ด์ƒ ์กด์žฌํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, public์ด ๋ถ™์€ ํด๋ž˜์Šค๋Š” ํ•œ ํŒŒ์ผ์— 1๊ฐœ๋งŒ ์กด์žฌํ•ด์•ผํ•จ!!

 

//public static void main(...)

main()์€ ํด๋ž˜์Šค์— ํฌํ•จ๋œ ๋ฉ”์„œ๋“œ๋กœ, ํ”„๋กœ๊ทธ๋žจ์˜ ์‹œ์ž‘์ ์„ ์˜๋ฏธํ•œ๋‹ค. ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•˜๋ฉด JVM์—์„œ ๊ฐ€์žฅ ๋จผ์ € main() ๋ฉ”์„œ๋“œ๋ฅผ ์ฐพ๋Š”๋‹ค.

-> ํด๋ž˜์Šค ์ „์ฒด์—์„œ main() ๋ฉ”์„œ๋“œ๋Š” ํ•˜๋‚˜๋งŒ ์กด์žฌํ•  ์ˆ˜ ์žˆ๋‹ค.

 

//System.out.printf("Hello and welcome!")

์ด ๋ช…๋ น๋ฌธ์€ ์†Œ๊ด„ํ˜ธ ์•ˆ์˜ ๋‚ด์šฉ Hello and welcome์„ ํ™”๋ฉด์— ์ถœ๋ ฅํ•˜๋ผ๋Š” ์˜๋ฏธ์ด๋‹ค. ์ด์™€ ๊ฐ™์€ ๋ช…๋ น๋ฌธ ๋’ค์—๋Š” ๋ช…๋ น์˜ ์ข…๋ฃŒ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์„ธ๋ฏธ์ฝœ๋ก (;)์„ ํ•ญ์ƒ ๋ถ™์ธ๋‹ค.

'๐Ÿฉธ Language > Java Language' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

6์žฅ - ์—ฌ๋Ÿฌ ๊ฐ’ ํ•œ ๋ฒˆ์— ์ €์žฅํ•˜๊ธฐ: ๋ฐฐ์—ด  (0) 2025.03.05
5์žฅ - ๊ฐ™์€ ์ž‘์—… ๋ฐ˜๋ณตํ•˜๊ธฐ: ๋ฐ˜๋ณต๋ฌธ  (1) 2025.02.19
4์žฅ - ์กฐ๊ฑด์— ๋”ฐ๋ผ ํ๋ฆ„ ๋ฐ”๊พธ๊ธฐ: ์กฐ๊ฑด๋ฌธ  (0) 2025.02.16
3์žฅ - ๊ธฐ์ดˆ ๋ฌธ๋ฒ• ๋ฐฐ์šฐ๊ธฐ  (0) 2025.02.13
2์žฅ - ์ž…์ถœ๋ ฅ ๋‹ค๋ฃจ๊ธฐ  (1) 2025.02.11
'๐Ÿฉธ Language/Java Language' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • 5์žฅ - ๊ฐ™์€ ์ž‘์—… ๋ฐ˜๋ณตํ•˜๊ธฐ: ๋ฐ˜๋ณต๋ฌธ
  • 4์žฅ - ์กฐ๊ฑด์— ๋”ฐ๋ผ ํ๋ฆ„ ๋ฐ”๊พธ๊ธฐ: ์กฐ๊ฑด๋ฌธ
  • 3์žฅ - ๊ธฐ์ดˆ ๋ฌธ๋ฒ• ๋ฐฐ์šฐ๊ธฐ
  • 2์žฅ - ์ž…์ถœ๋ ฅ ๋‹ค๋ฃจ๊ธฐ
SONOTREE
SONOTREE
@-@
  • SONOTREE
    SONOTRI
    SONOTREE
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (84)
      • ๐ŸŒฒ Dreamhack (33)
        • System Hacking (8)
        • Embedded Hacking (5)
        • Reverse Engineering (11)
        • Web Hacking (4)
        • Digital Forensics (2)
        • CTF Wriet-Up (3)
      • ๐Ÿฉธ Language (8)
        • C Language (2)
        • Java Language (6)
      • ๐Ÿฆ– Private (9)
        • ๊ฐ€๋ช…์ •๋ณด (0)
        • LinuxMaster (1)
        • webhacking.kr (3)
        • bandit (4)
        • GoN Club Study (1)
      • ๐Ÿ  Public (13)
        • Development (2)
        • web (8)
        • forensic (0)
        • elif (3)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํ™ˆ
    • ํƒœ๊ทธ
    • ๋ฐฉ๋ช…๋ก
  • ๋งํฌ

  • ๊ณต์ง€์‚ฌํ•ญ

  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
SONOTREE
1์žฅ - Hello, Java!
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”