μΌ | μ | ν | μ | λͺ© | κΈ | ν |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- μλ°
- html
- Python
- database
- css
- μ€λΈμ
- μ±
- μν
- κ°λ°
- λΌνλΌμ€μλ§λ
- κΉλ―Έκ²½μλ§νμμ
- λ§μΌλ΄κ°μΈμμλ€μμ°λ€λ©΄
- μ»΄ν¨ν°κ³Όν
- JavaScript
- λ°μ΄ν°λ² μ΄μ€
- 리μ‘νΈ
- Java
- ν°μ€ν 리μ±λ¦°μ§
- μλ°μ€ν¬λ¦½νΈ
- λ°μν
- μΉνΌλΈλ¦¬μ±
- μ½λ©
- Kλ°°ν°λ¦¬λ 볼루μ
- μ€λΌν΄
- νλ‘κ·Έλλ°
- ComputerScience
- Kλ°°ν°λ¦¬
- λ μ
- νμ΄μ¬
- μΉνμ΄μ§λ§λ€κΈ°
- Today
- Total
JiYoung Dev π₯
[JAVA] μλ° μμ λ³Έλ¬Έ
2023.03.15 ~ 16 볡μ΅
π μ»΄ν¨ν°μ νλ‘κ·Έλλ°
π νλ‘κ·Έλλ° μΈμ΄
νλ‘κ·Έλλ° μΈμ΄λ μ»΄ν¨ν°κ° μ€νν νλ‘κ·Έλ¨μ μμ±νλ μΈμ΄. μ»΄ν¨ν°μ CPUλ μ΄μ§μ(binary code)μΈ 0κ³Ό 1λ°μ μ΄ν΄νμ§ λͺ»νλ©° μ΄μ§μ λͺ λ Ήμ΄λ€λ‘ ꡬμ±λ μΈμ΄λ₯Ό κΈ°κ³μ΄(machine language)λΌκ³ ν¨. μ¬λμ΄ μ§μ κΈ°κ³μ΄ νλ‘κ·Έλ¨μ μμ±νλ κ²μ νλ€κΈ° λλ¬Έμ κΈ°κ³μ΄μ κ° λͺ λ Ήμ ADD, SUB, MOVE λ± κ°κΈμ νννκΈ° μ¬μ΄ μμ§μ μΈ λλͺ¨λ κΈ°νΈ(mnemonic symbol)λ‘ μΌλμΌ λμμν¨ μ΄μ λΈλ¦¬μ΄(assembly language)κ° λ§λ€μ΄μ‘μ. μ΄μ λΈλ¦¬μ΄ μμ μ¬λμ΄ λ€λ£¨κΈ° νλ€κ³ , λ€μν νλ‘κ·Έλ¨μ΄λ μλ£λ₯Ό νννκΈ°μλ νκ³κ° μμ΄, μ¬λμ΄ μ΄ν΄νκΈ° μ½κ³ , 볡μ‘ν μκ³ λ¦¬μ¦μ΄λ νλ‘κ·Έλ¨, μλ£λ₯Ό ν¨μ¨μ μΌλ‘ ννν μ μλ κ³ κΈμΈμ΄κ° μκΈ°κΈ° μμ. κ³ κΈ μΈμ΄λ μ΄κΈ°μ μ μ°¨ μ§ν₯ μΈμ΄ ννλ₯Ό κ±°μ³ μ§κΈμ κ°μ²΄ μ§ν₯ μΈμ΄λ‘ μ§ν.
π νλ‘κ·Έλ¨ μ»΄νμΌκ³Ό μ€ν
νλ‘κ·Έλλ°μ μ»΄ν¨ν° μΈμ΄λ‘ νλ‘κ·Έλ¨ μμ€(source) νμΌ μμ±νλ κ²μΌλ‘ μμ. μ»΄ν¨ν°λ C/C++κ³Ό κ°μ κ³ κΈ μΈμ΄λ‘ μμ±λ νλ‘κ·Έλ¨μ μ§μ μ²λ¦¬ν μ μκΈ° λλ¬Έμ, μ»΄ν¨ν°κ° μ€νν μ μλ κΈ°κ³μ΄ μ½λλ‘ λ³ννλ μ»΄νμΌ(compile) κ³Όμ μ΄ νμ. μ»΄νμΌμ μ λ΄νλ μννΈμ¨μ΄λ₯Ό μ»΄νμΌλ¬(compiler)λΌκ³ νλ©°, κ° μΈμ΄λ§λ€ μ μ© μ»΄νμΌλ¬κ° μμ.
μλ°λ μμ€ νλ‘κ·Έλ¨μ νμ₯μκ° .javaμ΄κ³ , μλ° μ μ© μ»΄νμΌλ¬μ μν΄ .class νμΌλ‘ μ»΄νμΌλλ©°, ν΄λμ€ νμΌμ μλ° κ°μ κΈ°κ³μ μν΄ μ€νλ¨.
π μλ°μ μΆνκ³Ό WORA
π μλ°μ νλ
μ¬ λ§μ΄ν¬λ‘μμ€ν μ¦μ μ μμ€ κ³ μ¬λ§(James Gosling)κ³Ό λ€λ₯Έ μ°κ΅¬μλ€μ΄ κ°λ°ν (1995) κ°μ²΄ μ§ν₯μ νλ‘κ·Έλλ° μΈμ΄.
κ°μ μ νμ μ¬μ©ν μννΈμ¨μ΄λ₯Ό λͺ©μ μΌλ‘ νλ«νΌ λ 립μ (platform independant)μ΄λ©° λ©λͺ¨λ¦¬ μ¬μ©λμ΄ μ μ μλ‘μ΄ μΈμ΄μ μ€ν 체κ³λ₯Ό κ°λ°.
π WORA(Write Once Run Anywhere)
μλ°λ κ°λ° λ¨κ³μμλΆν° νλ«νΌμ λ 립μ μΌλ‘ μ€κ³λμμ. κΈ°μ‘΄ νλ‘κ·Έλλ° μΈμ΄κ° κ°μ§ νλ«νΌ μ’ μμ±μ 극볡νμ¬, μ΄μ체μ λ νλμ¨μ΄μ μκ΄μμ΄ μλ° κ°μ κΈ°κ³(JVM)λ§ μμΌλ©΄ μ΄λμλ μλ°λ‘ μμ±λ νλ‘κ·Έλ¨μ λμΌν μ€ν νκ²½μ μ 곡νλ©° λμΌν μ€ν κ²°κ³Όλ₯Ό κΈ°λν μ μμ. λ, μλ°λ μΉ λΈλΌμ°μ , λΆμ° νκ²½μ μ§μ λ±μΌλ‘ λ€νΈμν¬μ μ°κ²°λ μ΄λ ν΄λΌμ΄νΈμμλ μ€νμ΄ κ°λ₯ν¨. μλ° νλ‘κ·Έλ¨μ μ΄λμλ ν λ² μμ±νλ©΄, λ€μ μ»΄νμΌνκ±°λ μμ νμ§ μκ³ , μ΄λ€ νλμ¨μ΄μμλ μ΄μ체μ μμλ μ€νμν¬ μ μμ. μ΄λ₯Ό WORAλΌκ³ ν¨.
π μλ° κ°μ κΈ°κ³μ λ°μ΄νΈ μ½λ
μλ°μ νλ«νΌ λ 립μ±μ κ°λ₯νκ² νλ κ²μ΄ λ°λ‘ μλ° κ°μ κΈ°κ³μ λ°μ΄νΈ μ½λ λλ¬Έ.
βοΈ λ°μ΄νΈ μ½λ
μλ° κ°μ κΈ°κ³μμλ§ μ€νλλ κΈ°κ³μ΄λ‘ μ΄λ€ CPUμλ κ΄κ³μλ λ°μ΄λ리 μ½λ(binary code). μλ° μ»΄νμΌλ¬λ μλ° μμ€ νλ‘κ·Έλ¨μ μ»΄νμΌνμ¬ λ°μ΄νΈ μ½λλ‘ λ ν΄λμ€ νμΌμ μμ±. μ΄ ν΄λμ νμΌμ μ»΄ν¨ν°μ CPUμ μν΄ μ§μ μ€νλμ§ μκ³ , μλ° κ°μ κΈ°κ³κ° μΈν°νλ¦¬ν° λ°©μμΌλ‘ μ€ν. μ΄ ν΄λμ€ νμΌμ μ΄λ€ μ΄μ체μ λ₯Ό νμ¬νλ CPUμ μ’ λ₯κ° λ¬΄μμ΄λ , PCμ΄λ λ ΈνΈλΆμ΄λ λν μ»΄ν¨ν°μ΄λ μκ΄μμ΄ μλ° κ°μ κΈ°κ³λ§ μμΌλ©΄, λ°λ‘ μ€ν κ°λ₯.
μ€λΌν΄μμ λ°°ν¬νλ JDK(Java Development Kit)μλ μλ° ν΄λμ€ νμΌμ λμ΄μ λΈ(diassemble)νμ¬ λ°μ΄νΈ μ½λλ₯Ό λ³Ό μ μλ λꡬ(javap) μ 곡 (λ°μ΄νΈ μ½λ → μ΄μ λΈλ¦¬ μ½λλ‘ μ ν)
β» CPUκ° μ΄ν΄ν μ μλ μΈμ΄λ₯Ό λ°μ΄λ리 μ½λλΌκ³ νλ©΄, λ°μ΄νΈ μ½λλ κ°μ κΈ°κ³κ° μ΄ν΄ν μ μλ μ½λλ₯Ό μν μ΄μ§ ννλ²
βοΈ μλ° κ°μ κΈ°κ³
μλ° κ°μ κΈ°κ³λ μννΈμ¨μ΄λ‘μ μλ‘ λ€λ₯Έ νλ«νΌμμ μλ° νλ‘κ·Έλ¨μ΄ μ€νλλ λμΌν νκ²½μ μ 곡. νμ§λ§ μλ° κ°μ κΈ°κ³λ νλ«νΌλ§λ€ μλ‘ λ€λ₯΄κ² μμ±λμ΄ λ°°ν¬λλ©° νλ«νΌ μ’ μμ μ.
π μλ°μ μ€ν νκ²½
μ¬λ¬ μμ€ νμΌ(.java)λ‘ λλμ΄ μμ±
↓
μλ° μ»΄νμΌλ¬λ κ° μμ€νμΌμ μ»΄νμΌνμ¬ ν΄λμ€ νμΌ(.class)μ μμ±
↓
νμ§λ§ μλ°μμλ μ΄λ€μ νλμ μ€ν νμΌ(.exe)λ‘ λμΉλ λ§ν¬μ κ³Όμ μ΄ μμ
κ°λ°μλ μ¬λ¬ ν΄λμ€ νμΌ μ€ νλλ₯Ό μ§μ νμ¬ μ€νμ μμνλ©΄, μλ° κ°μ κΈ°κ³λ κ·Έ ν΄λμ€ νμΌμ λ©λͺ¨λ¦¬μ λ‘λ©νκ³ μ€νν¨. μ€ν λμ€ λ€λ₯Έ ν΄λμ€ νμΌμ΄λ μλ° APIμ ν΄λμ€ νμΌμ΄ νμνλ©΄, μλ° κ°μ κΈ°κ³λ κ·Έ λ κ·Έ ν΄λμ€ νμΌμ λ‘λ©νκ³ μ€ν.
μμ κ°μ λ°©μμ μ²μλΆν° λͺ¨λ ν΄λμ€ νμΌμ λ‘λ©ν΄λμ νμ μμ΄ λΉμ₯ μ€νν ν΄λμ€ νμΌλ§ λ‘λ©νμ¬ μ€νν μ μμΌλ―λ‘, μ μ λμ λ©λͺ¨λ¦¬λ₯Ό κ°μ§ μ»΄ν¨ν°μμ μΌλ§λ μ§ ν° μλ° μμ©νλ‘κ·Έλ¨μ μ€νν μ μμ. μ΄κ²μ΄ λ°λ‘ νλ«νΌ λ 립μ±κ³Ό ν¨κ» λ¬μ±νκ³ μ νλ μλ° μΈμ΄μ λ³Έμ§. λ©λͺ¨λ¦¬κ° μΆ©λΆν PCμμλ μ€ν μ€μ ν΄λμ€ λ‘λ©μΌλ‘ μΈν μκ°μ μ€μ΄κΈ° μν΄, μ¬μ©μ ν΄λμ€ νμΌκ³Ό νμν μλ° ν΄λμ€ νμΌμ 미리 λ‘λ©νμ¬ λ .
μλ°μ C/C++ μ€ν νκ²½ λ° μ€ν κ³Όμ μ°¨μ΄
μλ°
1. μλ°λ μ»΄νμΌλ¬κ° λ°λ‘ λ°μ΄νΈ μ½λλ₯Ό μμ±νλ©°, λ§ν¬ κ³Όμ μ΄ μμ
2. λ°μ΄νΈ μ½λλ μλ° κ°μ κΈ°κ³μμλ§ μ€ν
3. μλ°λ μ€νμκ°μ, νμν ν΄λμ€λ€μ΄ μλ° κ°μ κΈ°κ³μ μν΄ λ§ν¬λλ©° ν΄λμ€ λ‘λκ° νμν ν΄λμ€λ₯Ό λμ μΌλ‘ λ‘λ©
4. ClassLoader κ°μ²΄λ₯Ό μ΄μ©νμ¬ κ°λ°μκ° μ§μ ν΄λμ€λ₯Ό λ‘λ©ν μ μμ
C/C++
1. μ»΄νμΌλ¬κ° μ€κ° λ¨κ³μΈ λͺ©μ μ½λλ₯Ό μμ±ν ν λ§μ»€κ° νμν λΌμ΄λΈλ¬λ¦¬λ€μ λ§ν¬νμ¬ μ΅μ’ μ€ν κ°λ₯ν .exeνμΌμ λ§λ¦
2. μ μ λΌμ΄λΈλ¬λ¦¬μ κ²½μ° μ€ν νμΌμ ν¬ν¨μν€λ―λ‘ μ€ν νμΌ ν¬κΈ°κ° 컀μ§
3. λμ λΌμ΄λΈλ¬λ¦¬μ κ²½μ° μ€ν μκ°μ λ§ν¬κ° μΌμ΄λ¨
4. λͺ©μ μ½λ λ° μ€ν νμΌμ νλ«νΌμ λ°λΌ λ€λ₯΄λ―λ‘, νλ«νΌμ΄ λ°λλ©΄ μμ€ μ½λλ₯Ό μμ νκ±°λ, μ»΄νμΌκ³Ό λ§ν¬λ₯Ό μλ‘ ν΄μΌ ν¨.
π κ°λ° λꡬμ μλ° νλ«νΌ
π JDKμ JRE
βοΈ JDK(Java Development Kit)
μλ° κ°λ°μλ₯Ό μν μμ μ© μννΈμ¨μ΄
μλ° μ»΄νμΌλ¬ λ±μ κ°λ° λꡬμ JRE(Java Runtime Enviroment)λ‘ κ΅¬μ±
JDK μ€μΉ ν bin λλ ν°λ¦¬μ λ€μ΄μλ μ£Όμ κ°λ° μννΈμ¨μ΄
• javac : μλ° μ»΄νμΌλ¬λ‘ μλ° μμ€λ₯Ό λ°μ΄νΈ μ½λλ‘ λ³ν
• java : μλ° νλ‘κ·Έλ¨ μ€νκΈ°. μλ° κ°μ κΈ°κ³λ₯Ό μλμμΌ μλ° νλ‘κ·Έλ¨ μ€ν
• javadoc : μλ° μμ€λ‘λΆν° HTML νμμ API λκ·λ¨ΌνΈ μμ±
• jar : μλ° ν΄λμ€ νμΌμ μμΆν μλ° μμΉ΄μ΄λΈ νμΌ(.jar) μμ±, κ΄λ¦¬
• jmod : μλ°μ λͺ¨λ νμΌ(.jmod)μ λ§λ€κ±°λ λͺ¨λ νμΌμ λ΄μ© μΆλ ₯
• jlink : μμ©νλ‘κ·Έλ¨μ λ§μΆ λ§μΆ€ν(custom) JRE μμ±
• jdb : μλ° μμ©νλ‘κ·Έλ¨μ μ€ν μ€ μ€λ₯λ₯Ό μ°Ύλ λ° μ¬μ©λλ λλ²κ±°
• javap : ν΄λμ€ νμΌμ λ°μ΄νΈ μ½λλ₯Ό μμ€μ ν¨κ» 보μ¬μ£Όλ λμ΄μ λΈλ¬
βοΈ JRE(Java Runtime Enviroment)
μλ° μμ©νλ‘κ·Έλ¨μ΄ μ€νλ λ νμν μννΈμ¨μ΄λ€λ‘ κ°λ°μκ° νμ©ν μ μλ μλ° API(μ΄λ―Έ μ»΄νμΌλ λ€μν ν΄λμ€ λΌμ΄λΈλ¬λ¦¬)μ μλ° κ°μ κΈ°κ³λ₯Ό ν¬ν¨
π μλ°μ λ°°ν¬ν
Java SE(Standard Edition)
- μλ° νμ€ λ°°ν¬ν, λ°μ€ν¬ν± μμ©νλ‘κ·Έλ¨κ³Ό μλ² μμ©νλ‘κ·Έλ¨μ κ°λ°νκΈ° μν JDK
Java ME(Micro Edition)
- λͺ¨λ°μΌμ© λ°°ν¬ν, IoT, TV, λΈλ£¨λ μ΄, μ ν±λ°μ€ λ± μμ νλμ¨μ΄ μμμ κ°λ μ₯μΉμ μ ν©ν JDK
Java EE(Enterprise Edition)
- κΈ°μ μ© λ°°ν¬ν
π Java 9λΆν° μμλ λͺ¨λ νλ‘κ·Έλλ°
λͺ¨λμ΄λ μλ° ν¨ν€μ§λ€κ³Ό μ΄λ―Έμ§, XML νμΌ λ±μ μμλ€μ λ¬Άμ λ¨μμ΄λ©°, μλ° μμ©νλ‘κ·Έλ¨μ λ§μΉ μ§μ νΌμ¦μ μ°κ²°νλ―μ΄ νμν λͺ¨λμ μ°κ²°νλ λ°©μμΌλ‘ ꡬμ±λκ² ν¨.
λͺ¨λνμ λͺ©μ μ μΈλ°ν λͺ¨λνλ₯Ό ν΅ν΄ μλ° μμ©νλ‘κ·Έλ¨μ΄ μ€νλλλ° νμ μλ λͺ¨λμ λ°°μ νμ¬ μμ ν¬κΈ°λ‘ λ°°ν¬ν μ μλλ‘ ν¨μ μμ. νλμ¨μ΄κ° μ΄μ ν μν IoT μ₯μΉμμλ νμν λͺ¨λλ‘λ§ κ΅¬μ±λ μμ ν¬κΈ°μ μλ° μμ©νλ‘κ·Έλ¨ μ€ν νκ²½μ λ§λ€μ΄ μ€νμν€κ³ μ±λ₯μ μ μ§νκ² ν¨.
π μλ° API
κ°λ°μλ€μ΄ μ¬μ©νλλ‘ λ―Έλ¦¬ λ§λ€μ΄λμ μ μ©ν μλ° ν΄λμ€λ€μ μ§ν©
μλ° APIλ μλ κ΄λ²μ νμ¬, κ°λ°μλ μ΄ APIλ₯Ό μ΄μ©νμ¬ μ½κ³ λΉ λ₯΄κ² μλ° νλ‘κ·Έλ¨μ κ°λ°ν μ μμ.
π μλ° IDE(Intergrated Development Enviroment)
μμ€ μ½λ νΈμ§, μ»΄νμΌ, λλ²κΉ μ νκΊΌλ²μ ν μ μλ ν΅ν© κ°λ° νκ²½(μννΈμ¨μ΄)
β» λλ²κΉ λλ λλ²κ·Έλ μ»΄ν¨ν° νλ‘κ·Έλ¨ κ°λ° λ¨κ³ μ€μ λ°μνλ μμ€ν μ λ Όλ¦¬μ μΈ μ€λ₯λ λΉμ μμ μ°μ°μ μ°Ύμλ΄κ³ κ·Έ μμΈμ λ°νκ³ μμ νλ μμ κ³Όμ μ λ»νλ€.
π μλ° νλ‘κ·Έλ¨ κ°λ°
μλ°μμλ ν΄λμ€ μ΄λ¦κ³Ό μμ€ νμΌμ μ΄λ¦μ΄ μΌμΉν΄μΌ ν¨
public class Hello2030 {
public static void main(String[] args) {
int n = 2030;
System.out.println("ν¬λ‘" + n);
}
}
public class Hello2030
μ΄λ¦μ΄ Hello2030μΈ ν΄λμ€λ₯Ό μ μΈ
public static void main(String[] args)
main() λ©μλλ₯Ό μ μΈνλ μ½λ
μλ°μμλ ν¨μλ₯Ό λ©μλλΌκ³ λΆλ₯΄λ©°, λ©μλλ {λ‘ μμνμ¬ }λ‘ λλ¨.
μλ° ν΄λμ€λ μ¬λ¬ κ°μ λ©μλλ₯Ό ν¬ν¨ν μ μμΌλ©°, νλ‘κ·Έλ¨ μ€νμ λ°λμ main() λ©μλλΆν° μμ
int n = 2030
μ§μ λ³μ nμ μ μΈνκ³ 2030μΌλ‘ μ΄κΈ°ν
System.out.println("ν¬λ‘" + n);
"ν¬λ‘" + nμ κ²°κ³Όλ "ν¬λ‘2030" λ¬Έμμ΄μ΄λ©°, μ΄λ₯Ό μΆλ ₯νλ μ€νλ¬Έ.
System.out.println()μ JDKμ ν¬ν¨λμ΄ κ°λ°μμκ² μ 곡λλ μλ° APIλ‘μ, κ°λ°μλ νλ©΄μ μ«μμ λ¬Έμ, λ¬Έμμ΄ λ€μ μΆλ ₯
π μλ°μ νΉμ§
νΈνμ±(νλ«νΌ λ 립μ±)
μλ°λ νλμ¨μ΄, μ΄μ체μ λ± νλ«νΌμ μ’ μλμ§ μλ λ 립μ μΈ λ°μ΄νΈ μ½λλ‘ μ»΄νμΌλλ©° JVM(Java Virtual Machine) μμμ λμκ°κΈ° λλ¬Έμ μ΄μ체μ (OS)μ μ’ λ₯μ μκ΄μμ΄ μ€ν
κ°μ²΄ μ§ν₯μ
κ°μ²΄λ€μ κ²°ν©ν΄μ νλμ νλ‘κ·Έλ¨μ λ§λ¦
ν΄λμ€λ‘ μΊ‘μν
μλ°λ κ°μ²΄ μ§ν₯ μ μ΄μ μΊ‘μν(encapsulation) μμΉμ μ² μ ν μ§μΌ, λ³μλ λ©μλλ λ°λμ ν΄λμ€ λ΄μμ ꡬννλλ‘ ν¨. ν΄λμ€μ μνμ§ μμ λ³μλ λ©μλλ μμ μ μμ. μλ°λ ν΄λμ€ μμ μλ‘μ΄ ν΄λμ€, μ¦ λ΄λΆ ν΄λμ€λ₯Ό λ§λ€ μ μμ.
μμ€μ ν΄λμ€ νμΌ
ν΄λμ€ νμΌμλ λ°λμ νλμ μλ° ν΄λμ€λ§ λ€μ΄μμ. κ·Έλ¬λ―λ‘ νλμ μλ° μμ€ νμΌμ μ¬λ¬ κ°μ ν΄λμ€λ₯Ό μμ±ν κ²½μ°, μ»΄νμΌ νλ©΄ ν΄λμ€λ§λ€ λ³λμ ν΄λμ€ νμΌμ΄ μμ±λ¨.
μ€ν μ½λ λ°°ν¬
μλ° μμ©νλ‘κ·Έλ¨μ ν κ°μ ν΄λμ€ νμΌ λλ λ€μμ ν΄λμ€ νμΌλ‘ ꡬμ±. λ€μμ ν΄λμ€ νμΌμ jar νμΌ ννλ‘ μμΆνμ¬ λ°°ν¬νκ±°λ μ€νν μ μμ. μλ°μ μ€νμ main() λ©μλμμ μμλλ©°, νλμ ν΄λμ€ νμΌμ λ κ° μ΄μμ main() λ©μλκ° μμ μ μμ. κ·Έλ¬λ κ° ν΄λμ€ νμΌμ΄ main() λ©μλλ₯Ό κ°μ§λ κ²μ μκ΄ μμ
ν¨ν€μ§
μλ‘ κ΄λ ¨ μλ ν΄λμ€λ ν¨ν€μ§λ‘ λ¬Άμ΄μ κ΄λ¦¬
λ©ν°μ€λ λ
νλμ μλ° νλ‘κ·Έλ¨μ΄ λμμ μ¬λ¬ μμ μ μ²λ¦¬ν μ μλλ‘ λ€μμ μ€λ λκ° λμμ μ€νν μ μλ νκ²½μ μ§μ. λμ©λ μμ μ 빨리 μ²λ¦¬ν μ μμ
λ©λͺ¨λ¦¬ μλ κ΄λ¦¬(κ°λΉμ§ 컬λ μ )
μλ° μΈμ΄λ λ©λͺ¨λ¦¬λ₯Ό ν λΉλ°λ κΈ°λ₯μ μμ§λ§, λ©λͺ¨λ¦¬λ₯Ό λ°ννλ κΈ°λ₯μ μμ.
κ°λ°μκ° μ§μ λ©λͺ¨λ¦¬μ μ κ·Όν μ μλλ‘ μ€κ³, κ°λΉμ§ 컬λ ν°
μ€μκ° μμ© μμ€ν μ λΆμ ν©
μλ° μμ©νλ‘κ·Έλ¨μ μ€ν λμ€ μμΈ‘ν μ μλ μμ μ κ°λΉμ§ 컬λ μ μ΄ μ€νλλ―λ‘ νλ‘κ·Έλ¨ μ€νμ΄ μΌμμ μΌλ‘ μ€λ¨λ¨. μ΄λ° λ¬Έμ λ‘ μΌμ μκ°(dead line) λ΄μ λ°λμ μ€ν κ²°κ³Όλ₯Ό λ΄μΌλ§ νλ μ€μκ° μμ€ν μλ μλ° μΈμ΄κ° μ ν©νμ§ μμ
μμ μ±
μλ° μΈμ΄λ νμ 체ν¬κ° λ§€μ° μ격νλ©°, C/C++κ³Ό λ¬λ¦¬ λ©λͺ¨λ¦¬μ 물리μ μ£Όμλ₯Ό μ¬μ©νλ ν¬μΈν°μ κ°λ μ΄ μκΈ° λλ¬Έμ, μλͺ»λ μλ° νλ‘κ·Έλ¨μΌλ‘ μΈν΄ μμ€ν μ΄ μ€λ¨λλ μΌμ΄ μμ
νλ‘κ·Έλ¨ μμ±μ΄ μ¬μ
ν¬μΈν°μ κ°λ μ΄ μκΈ° λλ¬Έμ νλ‘κ·Έλ¨ μμ±μ λΆλ΄μ΄ μ κ³ νλ‘κ·Έλ¨ κ°λ°μ μ½κ² λμμ£Όλ λ€μν λΌμ΄λΈλ¬λ¦¬μ μ€μ λ± κ°λ ₯ν GUI λΌμ΄λΈλ¬λ¦¬λ₯Ό μ§μ
λ€μν μ΄ν리μΌμ΄μ κ°λ°
λ€μν μ΄μ체μ μμ μ€νλλ λ€μν νλ‘κ·Έλ¨ (μ½μ, μλμ° μ΄ν리μΌμ΄μ , μΉ μ΄ν리μΌμ΄μ , λͺ¨λ°μΌ μ±) κ°λ° κ°λ₯
λμ λ‘λ© μ§μ
κ°μ²΄κ° νμν μμ μ λμ λ‘λ©ν΄μ κ°μ²΄ μμ±
μ€ν μλλ₯Ό κ°μ νκΈ° μν΄ JIT μ»΄νμΌλ¬ μ¬μ©
μλ°λ μλ° κ°μ κΈ°κ³κ° μΈν°νλ¦¬ν° λ°©μμΌλ‘ λ°μ΄νΈ μ½λλ₯Ό μ€ννλ―λ‘ μΌλ°μ μΌλ‘ C/C++λ‘ μμ±λ νλ‘κ·Έλ¨λ³΄λ€ μ€νμ΄ λ리λ€κ³ μλ €μ Έ μμ§λ§, μ΅κ·Όμλ μ€ννλ λμ€ μλ° νλ‘κ·Έλ¨μ ν΄λΉ CPUμ κΈ°κ³μ΄ μ½λλ‘ μ»΄νμΌνκ³ CPUκ° λ°λ‘ κΈ°κ³μ΄λ₯Ό μ€ννλλ‘ νλ JIT(Just in time) μ»΄νμΌλ§ κΈ°λ²μ μ΄μ©νλ―λ‘, μ€ν μ±λ₯μ΄ C/C++κ³Ό λΉμ·νλλ‘ κ°μ λ¨
μλ° λ²μ νμΈ λ°©λ²
'full stack > JAVA' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[JAVA] λ³μμ μ μΆλ ₯ (1) | 2023.03.21 |
---|---|
[JAVA] μ°μ° - μ°μ μ°μ° (0) | 2023.03.21 |
[μλ°] λ°λ³΅λ¬Έ for / while / do - while (1) | 2023.02.21 |
[μλ°] 쑰건문 (if / if - else / if - else if - else / switch) (0) | 2023.02.20 |
[μλ°] μ μΆλ ₯ (0) | 2023.02.18 |