compile (μ»΄νμΌ) μ΄λ?
μμ€μ½λκ° compile(μ»΄νμΌ)μ΄λ κ³Όμ μ ν΅ν΄ κΈ°κ³μ΄κ° μ½μ μ μλ ννλ‘ λ³νλλ€. μ΄ κ³Όμ μ μ»΄νμΌ νμμ΄λΌκ³ νλ€.
κΈ°κ³μ΄κ° μ½μ μ μλ ννλ‘ μ°λ¦¬κ° νν .exeνμΌμ λ€ μ μλ€.
νλ‘μ νΈ μλ κ²½λ‘μ λ€μ΄κ°λ³΄λ©΄ .exe νμΌμ λ°κ²¬ν μ μλ€.
μ΄ νμΌμ΄ κΈ°κ³κ° μ½μ μ μλ ννμΈ κ²μ΄λ€.
compile error λ?
compile μ€ λ°μλλ μλ¬λ₯Ό μλ―Ένλ€.
λνμ μΌλ‘ syntax errorκ° ν΄λΉλλ€.
syntax μλ¬λ μ°λ¦¬κ° μ¬μ©νλ μΈμ΄ λ¬Έλ²μ λ§μ§ μλ μ½λ©μ νμ κ²½μ° λ°μνλ μλ¬λ₯Ό μλ―Ένλ€.
μλ₯Ό λ€λ©΄,
μλμ κ°μ κ²½μ° μκ΄νΈλ‘ λ«μμΌ νλλ° μ€κ΄νΈλ‘ λ«μ κ²½μ°μ΄λ€.
print("hello"}
μ΄λ¬ν μ€λ₯λ€μ΄ compile error μ΄λ€.
μ΄μΈμλ ideμμ μ€νμ μ λΉ¨κ°μ€λ‘ μ€λ₯λ₯Ό μλ ¬μ€λ€.
Java μΈμ΄μ μ»΄νμΌ
κΈ°λ³Έμ μΌλ‘ compile (μ»΄νμΌ)μ μμ€μ½λλ₯Ό κΈ°κ³(H/W)κ° μ΄ν΄ν μ μλ κΈ°κ³μ΄λ‘ λ°κΏμ€λ€.
νμ§λ§ Java κ°μ κ²½μ°λ μ‘°κΈ λ€λ₯΄λ€.
Java μΈμ΄λ₯Ό μ»΄νμΌ νλ©΄ λ°μ΄νΈ μ½λκ° μμ±λλ€. μ΄λ μ»΄ν¨ν°(H/W)κ° μ΄ν΄ν μ μλ μΈμ΄μ΄λ€.
Javaκ° μ»΄νμΌν μΈμ΄λ₯Ό μ΄ν΄ν μ μλ κΈ°κ³λ JVM(Java Virtual Machine)μ΄λ€.
μ¦,
- μλ° μμ€μ½λ(.java)λ₯Ό μλ° μ»΄νμΌλ¬(Java Compiler)κ° μλ° μμ€νμΌμ μ»΄νμΌ νλ€.
- μ΄ λ μλ° λ°μ΄νΈ μ½λ(.class)νμΌμ΄ λμ¨λ€. μ΄ νμΌμ μμ§ μ»΄ν¨νκ° μ½μ μ μμ§λ§ JVMμ΄ μ΄ν΄ν μ μλ μ½λμ΄λ€.
- μ»΄νμΌλ λ°μ΄νΈ μ½λλ₯Ό JVMμ ν΄λμ€ λ‘λ(Class Loader)μκ² μ λ¬νλ€.
- ν΄λμ€ λ‘λλ λμ λ‘λ©μ ν΅ν΄ νμν ν΄λμ€λ€μ λ‘λ© λ° λ§ν¬νμ¬ λ°νμ λ°μ΄ν° μμ, μ¦ JVMμ λ©λͺ¨λ¦¬μ μ¬λ¦°λ€.
runtime(λ°νμ) μ΄λ?
compile μ΄ν νλ‘κ·Έλ¨μ΄ λμλμ΄μ§ λλ₯Ό runtimeμ΄λΌκ³ νλ€.
μμ μ€λͺ ν exeνμΌμ λμμν€λ κ³Όμ μ΄λ€.
μ¦, μμ±ν νλ‘κ·Έλ¨μ΄ μ»΄ν¨ν°μμ μ μλνλλ‘ λλ μν μ νλ€.
JAVAμ κ°μ μΈμ΄λ‘ μμ±ν νλ‘κ·Έλ¨μ μ»΄ν¨ν°κ° μ΄ν΄ν μ μλλ‘ "λ²μ"μ κ±°μ³μΌ νκ³ , μ΄ λ²μλ μ½λλ₯Ό μ€μ λ‘ μ€ννλ κ³Όμ μ λμμ£Όλ κ²μ΄ runtime νκ²½μ΄λ€.
λ°νμ νκ²½μ μ£Όμ μν
- μ½λ μ€ν:
- C# μ½λλ‘ μμ±λ νλ‘κ·Έλ¨μ μ΅μ’ μ μΌλ‘ "κΈ°κ³μ΄"λ‘ λ³νλμ΄μΌ μ»΄ν¨ν°κ° μ€νν μ μλ€. .NET λ°νμ νκ²½μ μ€κ° λ¨κ³λ‘ C# μ½λλ₯Ό "μ€κ° μΈμ΄"λ‘ λ²μν ν, μ΄λ₯Ό μ€μ λ‘ μ€νν μ μκ² λμμ€λ€.
- λ©λͺ¨λ¦¬ κ΄λ¦¬:
- νλ‘κ·Έλ¨μ΄ μ€νλλ©΄μ μ¬μ©νλ λ©λͺ¨λ¦¬λ₯Ό ν¨μ¨μ μΌλ‘ ν λΉνκ³ , λ μ΄μ νμνμ§ μμΌλ©΄ μλμΌλ‘ λ°ννλ κΈ°λ₯λ λ΄λΉνλ€. μ΄λ₯Ό ν΅ν΄ κ°λ°μλ λ©λͺ¨λ¦¬ λμ κ°μ λ¬Έμ μ λν΄ κ±±μ ν νμκ° μ€μ΄λ λ€.
- μ€λ₯ κ°μ§:
- νλ‘κ·Έλ¨μ΄ μ€ν μ€μ λ°μνλ μ€λ₯λ₯Ό μλμΌλ‘ κ°μ§νκ³ μ²λ¦¬νλ μν μ νλ€. μλ₯Ό λ€μ΄, μλͺ»λ κ°μ΄ μ λ ₯λκ±°λ νμΌμ μ½μ μ μλ μν©μμ νλ‘κ·Έλ¨μ΄ μκΈ°μΉ μκ² λ©μΆμ§ μκ³ , μ€λ₯λ₯Ό μΈμνμ¬ μ²λ¦¬ν μ μλλ‘ νλ€.
λ°νμ νκ²½μ μ 무
- λ°νμ νκ²½μ΄ μλ€λ©΄:
- λͺ¨λ μ½λκ° μ§μ μ΄μ체μ κ° μ€νλμ΄μΌ νκ³ , λ©λͺ¨λ¦¬ κ΄λ¦¬λ μ€λ₯ μ²λ¦¬λ μ°λ¦¬κ° λͺ¨λ μλμΌλ‘ ν΄μΌ νλ€.
- λ°νμ νκ²½μ΄ μλ€λ©΄:
- νλ‘κ·Έλ¨μ΄ μ΄μ체μ κ° μνΈμμ©ν λ λ°μν μ μλ 볡μ‘ν μΌμ λ°νμμ΄ λμμ€λ€. νλ‘κ·Έλ¨μ΄ μ€νλ λ μλμΌλ‘ λ©λͺ¨λ¦¬λ₯Ό ν λΉνκ³ , μ€λ₯κ° λ°μνλ©΄ μ²λ¦¬ν΄μ£Όλ©°, μ½λ μ€νμ λμμ€λ€.
runtime error(λ°νμ μλ¬) λ?
runtime μλ¬λ μ€νμ΄ λμ΄μΌλ§ νμΈμ΄ κ°λ₯ν μλ¬μ΄λ€.
μ¦, compile μ€μλ κ°μ§νμ§ λͺ»νλ μλ¬λ€μ΄ μλ€.(ide μ λΉ¨κ°μ€λ‘ λ¨μ§ μμ)
μλ₯Ό λ€λ©΄,
4κ°μ μ«μλ₯Ό κ°μ§ 리μ€νΈ(λ°°μ΄)μ΄ μλ€.
arr = [1,2,3,4]
print(arr[100])
κΈΈμ΄κ° 4μΈ λ°°μ΄μμ 100λ²μ§Έ κ°μ μ½μΌλ €κ³ νλ μλ¬κ° λ°μνλ€.
λ¬Έλ²μ (syntax)μΌλ‘λ μ€λ₯κ° μμ§λ§ μ€νμ ν΄λ³΄λ λ°μλλ μλ¬μ΄λ€.
λν λ€λ₯Έ μμλ‘λ, 0μΌλ‘ κ°μ λλλ κ²½μ°λ λ°νμ μλ¬μ ν΄λΉνλ€.
print(10/0)
μ½λ©μ ν λ λ¬Έλ²μ μ€λ₯κ° μμμ§λ§ λ§μ μ€νν΄λ³΄λ μλ¬κ° λ°μν κ²μ΄λ€.
μ°Έκ³
https://blog.kakaocdn.net/dn/eCBmlV/btqzbWDehNR/Hg0fQvktIsli3NrwNuGrg0/img.png
https://helpdeskgeek.com/wp-content/pictures/2020/09/Windows-Run-EXE.png
'π» Computer Science > μ΄μ체μ ' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
ν¬λ μ(Forensic)μ΄λ ? λμ§νΈ ν¬λ μμ΄λ? μ리 (0) | 2023.08.11 |
---|---|
[μ΄μ체μ ] Memory λ? (paging, segmentation, κ°μλ©λͺ¨λ¦¬) (1) | 2023.05.27 |
Process & Thread λ? (multi process & multi thread & Deadlock μ 리) (0) | 2023.05.23 |
λμμ± (Concurrency)κ³Ό λ³λ ¬μ± (Parallelism) (0) | 2023.05.22 |