λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
πŸš€ Development/Java

[Java μžλ°”] WORA(Write Once Run Anywhere) μ΄λž€?

by Jay Din 2023. 7. 13.
728x90
λ°˜μ‘ν˜•
λ°˜μ‘ν˜•

WORA(Write Once Run Anywhere) : ν”Œλž«νΌ 독립성

ν”„λ‘œκ·Έλž¨μ„ ν•œλ²ˆ μž‘μ„±ν•΄μ„œ μ‹€ν–‰ν•˜κ³  λ‚˜λ©΄μ–Έμ œ μ–΄λ””μ„œλ“  μ‹œμŠ€ν…œ 상관 없이 μ‚¬μš© κ°€λŠ₯ν•œ 것을 λ§ν•œλ‹€.

Cμ–Έμ–΄μ—μ„œλŠ” 컴파일러λ₯Ό 기쒅별(Windows, Unix, Mac)둜 ꡬ비해야 ν–ˆλ˜ λΆˆνŽΈν•¨μ΄ μžˆμ—ˆλ‹€.

JavaλŠ” 무료둜 λ‹€λ₯Έ κΈ°μ’…μ˜ 컴퓨터λ₯Ό λŒ€μ‘ν•  수 μžˆλ„λ‘ ν•΄λ‹Ή 컴퓨터 μš΄μ˜μ²΄μ œμ— λ§žλŠ” JRE(Java Runtime Environment, μžλ°” μ‹€ν–‰ ν™˜κ²½)λ₯Ό ν•œλ²ˆλ§Œ 컴퓨터에 μ…‹νŒ…ν•΄μ£Όλ©΄ λœλ‹€. JRE μ•ˆμ—μ„œλŠ” JVMκ³Ό Java API λ“± μžλ°” νŒŒμΌμ„ μ‹€ν–‰ν•  λ•Œ 도움을 μ£ΌλŠ” 정보듀을 ν¬ν•¨ν•˜κ³  μžˆλ‹€. μ—¬κΈ°μ„œ JVM은 말 κ·ΈλŒ€λ‘œ μžλ°” 가상 기계이닀.

즉, κ°€μƒμ˜ 컴퓨터λ₯Ό 물리적 μ»΄ν“¨ν„°μ˜ λ©”λͺ¨λ¦¬ μ•ˆμ— ν•˜λ‚˜ 더 κ΅¬μΆ•ν•˜λŠ” 것을 λœ»ν•œλ‹€. JVM은 κ°€μƒμ΄μ§€λ§Œ 컴퓨터λ₯Όν•˜λ‚˜ 더 λ§Œλ“œλŠ” 것과 κ°™κΈ° λ•Œλ¬Έμ— λ§Žμ€ 물리적인 CPU, λ©”λͺ¨λ¦¬κ°€ μš”κ΅¬λœλ‹€.

Java의 JRE 덕뢄에 κΈ°μ’…(ν”Œλž«νΌ)에 상관없이 λ…λ¦½μ μœΌλ‘œ ν•˜λ‚˜μ˜ μžλ°” μ†ŒμŠ€μ™€ ν•˜λ‚˜μ˜ μžλ°” 컴파일러λ₯Ό 톡해 μ½”λ“œλ₯Ό μ‹€ν–‰μ‹œν‚¬ 수 있게 λ˜μ—ˆλ‹€. 이λ₯Ό WORA(Write Once Run Anywhere)라고 ν•œλ‹€.
즉, ν•œλ²ˆλ§Œ μž‘μ„±ν•˜λ©΄ μ–΄λ””μ—μ„œλ“  μ‹€ν–‰ν•  수 있게 된 것이닀.

μ •λ¦¬ν•˜μžλ©΄

Write Once, Run AnywhereλŠ” Java의 μ–΄λ–€ νŠΉμ§•μ„ μ„€λͺ…ν•˜λŠ”κ°€?

Cμ–Έμ–΄μ—μ„œλŠ” 기쒅에 λ”°λ₯Έ λͺ©μ  파일(기계어)을 μƒμ„±ν–ˆλ‹€.

썬 λ§ˆμ΄ν¬λ‘œμ‹œμŠ€ν…œμ¦ˆμ— μ˜ν•΄ λ§Œλ“€μ–΄μ§„ μžλ°”μ˜ 크둜슀/ν”Œλž«νΌμ— μ˜ν•œ 이읡을 ν‘œν˜„ν•˜κΈ° μœ„ν•œ ν‘œμ–΄μ΄λ‹€.

μžλ°”κ°€ μ–΄λ–€ μž₯λΉ„μ—μ„œλ„ 개발될 수 μžˆλ‹€.

ν‘œμ€€ λ°”μ΄νŠΈμ½”λ“œλ‘œ 컴파일되고, μžλ°” 가상 머신이 μž₯착된 μ–΄λ–€ μž₯λΉ„μ—μ„œλ„ 싀행될 수 μžˆμŒμ„ μ˜λ―Έν•œλ‹€.

μžλ°” 가상 λ¨Έμ‹  λ˜λŠ” μΉ©, μž₯λΉ„ λ˜λŠ” μ†Œν”„νŠΈμ›¨μ–΄ νŒ¨ν‚€μ§€μ—μ„œμ˜ μžλ°” μΈν„°ν”„λ¦¬ν„°μ˜ μ„€μΉ˜λŠ” μ‚°μ—… ν‘œμ€€μ•ˆμ΄ λ˜μ—ˆλ‹€.

 

λ°˜μ‘ν˜•

 

728x90
λ°˜μ‘ν˜•

'πŸš€ Development > Java' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

[Java μžλ°”] == equals 차이  (0) 2023.07.17
Java λž€? Java μ†Œκ°œ  (0) 2023.07.05