
νλ‘κ·Έλλ° μΈμ΄λ κ³ κΈ μΈμ΄μ μ κΈ μΈμ΄λ‘ ꡬλΆλλ€.
κ³ κΈ μΈμ΄
- μ¬λμ΄ μ½κ² μ΄ν΄ν μ μλ μΈμ΄
- κ³ κΈ μΈμ΄λ‘ μμ±λ νμΌμ μμ€(Source) νμΌμ΄λΌ νλ€.
ex) Java, C, C++μ κΈ μΈμ΄
- κΈ°κ³μ΄μ κ°κΉμ΄ μΈμ΄
ex) μ΄μ λΈλ¦¬μ΄
μλ°μ νΉμ§μ λ€μκ³Ό κ°λ€
λͺ¨λ OSμμ μ€ν κ°λ₯
- μλ°λ‘ μμ±λ νλ‘κ·Έλ¨μ λͺ¨λ OSμμ μ€ν κ°λ₯νλ€
- λ°λΌμ Windowμμ κ°λ° λ νλ‘κ·Έλ¨μ μμ μμ΄ λ€λ₯Έ OSμμ μ€ν κ°λ₯νλ€λ μ₯μ μ΄ μ‘΄μ¬νλ€
κ°μ²΄μ§ν₯ νλ‘κ·Έλλ°
- κ°μ²΄μ§ν₯ νλ‘κ·Έλλ°(Object Oriented Programming, OOP) :
- λ¨Όμ κ°μ²΄(λΆν)μ λ§λ€κ³ , μ΄ κ°μ²΄λ€μ μλ‘ μ°κ²°ν΄μ λ ν° νλ‘κ·Έλ¨μ μμ±μν€λ κΈ°λ²
- μλ°λ OOPλ₯Ό μν μ΅μ μ μΈμ΄μ΄λ€
λ©λͺ¨λ¦¬ μλ μ 리
- μλ°λ λ©λͺ¨λ¦¬(RAM)μ μλ κ΄λ¦¬νλ€
νλΆν λ¬΄λ£ λΌμ΄λΈλ¬λ¦¬
- 무λ£λ‘ μ¬μ© κ°λ₯ν μ€ν μμ€ λΌμ΄λΈλ¬λ¦¬κ° νλΆνλ€.
κ³ κΈ μΈμ΄λ‘ μμ±λ μ½λλ μ»΄ν¨ν°κ° μ΄ν΄ν μ μκΈ°μ μ»΄νμΌ(Compile)μ΄λΌλ κ³Όμ μ ν΅ν΄ JVMμ΄ μΈμν μ μλ Java bytecode(*.class)λ‘ λ³νν΄μΌ νλ€.

μ¬μ§μμ λ³Ό μ μλ―μ΄ μλ°λ μ»΄νμΌ λͺ
λ Ήμ΄(javac)λ₯Ό ν΅ν΄ μμ€ νμΌ(.java)λ₯Ό κ°μ§κ³ λ°μ΄νΈ μ½λ νμΌ(.class)λ₯Ό μμ±νλ€.
OSμ μ’ λ₯μ μκ΄μμ΄Β λμΌν μμ€ νμΌμ λμΌν λ°μ΄νΈ μ½λ νμΌμ΄ μμ±λλ€.
λ°μ΄νΈμ½λ νμΌμ νΉμ OSκ° μ΄ν΄νλ κΈ°κ³μ΄(Binary Code)λ‘ λ²μνκ³ μ€νμν€λ λͺ
λ Ήμ΄λ javaμ΄λ€
java λͺ
λ Ήμ΄λ JVM(Java Virtual Machine)μ ꡬλμμΌ λ°μ΄νΈ μ½λ νμΌμ μμ ν κΈ°κ³μ΄λ‘ λ²μνκ³ μ€νμν¨λ€.
JVMμ λ°μ΄νΈμ½λμ λ€λ₯΄κ² OSμ μ’
μμ μ΄λ―λ‘ κ° OSλ³λ‘ λ€λ₯Έ κΈ°κ³μ΄λ‘ λ³μν΄μΌ νλ€.
μ΄κ²μ΄ OSλ³λ‘ μ€μΉνλ JDK(Java Development Kit)κ° λ€λ₯Έ μ΄μ μ΄λ€.

JDK,JRE,JVMμ λν΄ λ μμΈν μκ³ μΆμΌλ©΄ μλ κΈμ μ°Έκ³ νμ
π₯οΈ Java JDK/JRE/JVM/SE/EE/MEλ? π₯οΈ
μ€μ΅μ ν΅ν΄ μμ€μ½λ μμ±κ³Ό javac λ° java λͺ
λ Ήμ΄λ₯Ό μ€νν΄λ³΄μ
μ°μ μλμ κ°μ΄ λλ ν 리λ₯Ό ꡬμ±νμ
temp
βββ src # μμ€ νμΌμ΄ μ μ₯λλ λλ ν 리
β βββ ch01
β βββ sec06 # ν¨ν€μ§ λλ ν 리
β βββ Hello.java # μμ€ νμΌ
β
βββ bin # νμ΄νΈμ½λ νμΌμ΄ μ μ₯λλ λλ ν 리
πν¨ν€μ§λ?
- μλ°λ νμΌμ μ½κ² κ΄λ¦¬νκΈ° μν΄ ν¨ν€μ§(package)λ₯Ό μ¬μ©νλ€.
- νμΌ μμ€ν μ λλ ν λ¦¬λΌ μκ°νλ©΄ λλ€.
λ€μκ³Ό κ°μ΄ μμ€ νμΌμ μμ±νμ
package ch1.sec06;
public class Hello{
public static void main(String[] args){
System.out.println("Hello World!");
}
}
κ·Έλ°λ€μ tempλλ ν λ¦¬λ‘ μ΄λ ν javacλ₯Ό ν΅ν΄ μ»΄νμΌμ μ§ννλ€
javac -d [λ°μ΄νΈμ½λ μ μ₯ μμΉ] [μμ€μ½λ κ²½λ‘/*.java]
μ μμλ μλμ κ°μ΄ μμ±νλ©΄ λλ€
javac -d bin scr/ch01/sec06/Hello.java
λ§μ§λ§μΌλ‘ javaλ₯Ό ν΅ν΄ μ€νμν¨λ€
μ΄λ μ£Όμν μ μ ν¨ν€μ§ κ²½λ‘λ .μ μ
λ ₯ν΄μΌ νλ©° ν΄λμ€λ .classλ₯Ό μ μΈν ν΄λμ€ λͺ
λ§ μ
λ ₯ν΄μΌ νλ€
java -cp [λ°μ΄νΈμ½λ νμΌ μμΉ] [ν¨ν€μ§ κ²½λ‘.ν΄λμ€λͺ ]
μ μμλ μλμ κ°μ΄ μμ±νλ©΄ λλ€
javac -d bin ch01.sec06.Hello
package ch01.sec06
- λ€μκ³Ό κ°μ μ½λλ₯Ό ν¨ν€μ§ μ μΈμ΄λΌ νλ€
- μμ€νμΌμ΄
src/ch01/sec06ν¨ν€μ§μ μλ€λ κ²μ μλ―Ένλ€- νμ΄νΈμ½λ νμΌλ
bin/ch01/sec06ν¨ν€μ§μ μμ±λλ€
public class Hello{ //ν΄λμ€ λΈλ‘ }
- λ€μκ³Ό κ°μ μ½λλ₯Ό ν΄λμ€ μ μΈμ΄λΌ νλ€
- ν΄λμ€λ μ«μλ‘ μμν μ μκ³ κ³΅λ°±μ ν¬ν¨ν μ μλ€
- μμ€ νμΌλͺ κ³Ό λμλ¬Έμκ° μλ²½ν μΌμΉν΄μΌ νλ€
public static void main(String[] args){ //λ©μλ λΈλ‘ }
- λ€μκ³Ό κ°μ μ½λλ₯Ό main() λ©μλλΌ λΆλ₯Έλ€
- main() λ©μλλ₯Ό νλ‘κ·Έλ¨ μ€ν μ§μ μ (entry point)μ΄λΌ λΆλ₯Έλ€
Reference
- μ΄κ²μ΄ μλ°λ€ 3ν
- https://kukim.tistory.com/24
- https://esesil.github.io/java/wsjava01/