Intro. JAVA๋?
์๋ฐ๋ '๊ฐ์๋จธ์ (VM, Virtual Machine)'์ด๋ ๊ฒ์ ๋ง๋ค์ด๋๊ณ ๊ทธ ์์์ ํ๋ก๊ทธ๋จ์ด ๋์ํ๊ฒ ๋ง๋ ์์คํ ์ด๋ค. ์๋ฐ๋ฅผ ์ฌ์ฉํ๊ธฐ ์ ์๋ ๊ฐ๊ฐ ๋ค๋ฅธ ์ด์์ฒด์ ์ ์ ํฉํ๋๋ก ํ๋ก๊ทธ๋จ์ ์๋ก ๋ค๋ฅธ ๋ฐฉ์์ผ๋ก ๋ง๋ค์ด์ผ ํ๋ค. ํ์ง๋ง ๊ฐ์๋จธ์ ์ ์ฌ์ฉํ๋ฉด์ ํ๋ก๊ทธ๋จ์ ํ ๋ฒ๋ง ๋ง๋ค์ด๋ ์ฌ๋ฌ ๊ฐ์ง ๋ค๋ฅธ ์ด์์ฒด์ ์์ ๋๊ฐ์ด ๋์ํ๊ฒ ๋์๋ค.
1. JVM, JRE, JDK๋?
(1) JDK(Java Development Kit)
- ํ๋ก๊ทธ๋จ์ ํ์ํ ์๋ฐ ๊ฐ์๊ธฐ๊ณ(JVM), ๋ผ์ด๋ธ๋ฌ๋ฆฌ API, ์ปดํ์ผ๋ฌ ๋ฑ์ ๊ฐ๋ฐ ๋๊ตฌ๊ฐ ํฌํจ๋ ์ํํธ์จ์ด ํจํค์ง์ด๋ค.
(2) JRE(Java Runtime Environment)
- ํ์ค ํด๋์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก, ์๋ฐ ํ๋ก๊ทธ๋จ ์คํ์ ํ์ํ ์๋ฐ ๊ฐ์ ๊ธฐ๊ณ(JVM), ๋ผ์ด๋ธ๋ฌ๋ฆฌ API๊ฐ ํฌํจ๋ ์ํํธ์จ์ด ํจํค์ง์ด๋ค.
(3) JVM(Java Virtual Machine)
- ์๋ฐ ํ๋ก๊ทธ๋จ์ ์์ ํ ๊ธฐ๊ณ์ด๊ฐ ์๋ ์ค๊ฐ ๋จ๊ณ์ ๋ฐ์ดํธ ์ฝ๋์ด๊ธฐ ๋๋ฌธ์, ์ด์์ฒด์ ๋ ์๋ฐ ํ๋ก๊ทธ๋จ์ ๋ฐ๋ก ์คํํ ์ ์๋ค. JVM์ ์ด๊ฒ์ ํด์ํ๊ณ ์คํํ ์ ์๊ฒ ํด์ฃผ๋ ๊ฐ์์ ์ด์์ฒด์ ์ด๋ค.
- '์๋ฐ๋ฅผ ์คํํ๊ธฐ ์ํ ๊ฐ์ ๊ธฐ๊ณ(์ปดํจํฐ)'๋ก, ๊ฐ์ ๊ธฐ๊ณ(virtual machine)๋ ์ํํธ์จ์ด๋ก ๊ตฌํ๋ ํ๋์จ์ด๋ฅผ ๋ปํ๋ฉฐ ์ปดํจํฐ ์์ ์ปดํจํฐ๋ผ๊ณ ์๊ฐํ๋ฉด ๋๋ค. ์๋ฐ ์์ค์ฝ๋๋ก ๋ง๋ค์ด ์ปดํ์ผํ ํ๋ก๊ทธ๋จ์ ์คํํ ๋ ๊ฐ์๋จธ์ ์ด ์ฌ์ฉ๋๋ค.
- ์๋ฐ๋ก ์์ฑ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ชจ๋ ์ด ๊ฐ์ ์ปดํจํฐ(JVM)์์๋ง ์คํ๋๊ธฐ ๋๋ฌธ์, ์๋ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์คํ๋๊ธฐ ์ํด์๋ ๋ฐ๋์ JVM์ด ํ์ํ๋ค.
- JDK ๋๋ JRE๋ฅผ ์ค์นํ๋ฉด ์๋์ผ๋ก ์ค์น๋๋ฉฐ, JDK์ JRE๊ฐ ์ด์์ฒด์ ๋ณ๋ก ์ ๊ณต๋๋ค.
c.f. IDE: Integrated Development Environment
ํ๋ก์ ํธ ์์ฑ, ์๋ ์ฝ๋ ์์ฑ, ๋๋ฒ๊น ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ ํ๊ฒฝ
ex) Eclipse(์๋ฐ), Visual Studil(C/C++)
2. JVM(Java Virtual Machine)
์ฐ์ธก ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด ์ผ๋ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฝ๋๋ OS๋ง ๊ฑฐ์น๊ณ ํ๋์จ์ด๋ก ์ ๋ฌ๋๋๋ฐ (1) Java ์ ํ๋ฆฌ์ผ์ด์ ์ JVM์ ํ ๋ฒ ๋ ๊ฑฐ์น๊ธฐ ๋๋ฌธ์, ๊ทธ๋ฆฌ๊ณ (2) ํ๋์จ์ด์ ๋ง๊ฒ ์์ ํ ์ปดํ์ผ ๋ ์ํ๊ฐ ์๋๊ณ ์คํ ์์ ํด์(interpret) ๋๊ธฐ ๋๋ฌธ์ ์๋๊ฐ ๋๋ฆฌ๋ค๋ ๋จ์ ์ ๊ฐ์ง๊ณ ์๋ค.
๊ทธ๋ฌ๋ ์์ฆ์ ๋ฐ์ดํธ์ฝ๋(์ปดํ์ผ๋ ์๋ฐ์ฝ๋)๋ฅผ ํ๋์จ์ด์ ๊ธฐ๊ณ์ด๋ก ๋ฐ๋ก ๋ณํํด์ฃผ๋ JIT ์ปดํ์ผ๋ฌ์ ํฅ์๋ ์ต์ ํ ๊ธฐ์ ์ด ์ ์ฉ๋์ด์ ์๋์ ๊ฒฉ์ฐจ๋ฅผ ๋ง์ด ์ค์๋ค.
์ผ๋ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ OS์ ๋ฐ๋ก ๋ง๋ถ์ด ์๊ธฐ ๋๋ฌธ์ OS ์ข ์์ ์ด๋ค. ๊ทธ๋์ ๋ค๋ฅธ OS์์ ์คํ์ํค๊ธฐ ์ํด์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ทธ OS์ ๋ง๊ฒ ๋ณ๊ฒฝํด์ผ ํ๋ค. ๋ฐ๋ฉด์ Java ์ ํ๋ฆฌ์ผ์ด์ ์ JVMํ๊ณ ๋ง ์ํธ์์ฉ์ ํ๊ธฐ ๋๋ฌธ์ OS์ ํ๋์จ์ด์ ๋ ๋ฆฝ์ ์ด๋ผ ๋ค๋ฅธ OS์์๋ ํ๋ก๊ทธ๋จ์ ๋ณ๊ฒฝ์์ด ์คํ์ด ๊ฐ๋ฅํ ๊ฒ์ด๋ค. ๋จ, JVM์ OS์ ์ข ์์ ์ด๊ธฐ ๋๋ฌธ์ ํด๋น OS์์ ์คํ๊ฐ๋ฅํ JVM์ด ํ์ํ๋ค.
์ด์์ฒด์ ์ JVM ๊ทธ๋ฆฌ๊ณ ์๋ฐ ํ๋ก๊ทธ๋จ์ ์คํ ๋จ๊ณ์ด๋ค. ์๋ฐ ํ๋ก๊ทธ๋จ์ ํ์ฅ์๊ฐ .java์ธ ํ์ผ์ ์์ฑํ๋ ๊ฒ๋ถํฐ ์์๋๋ค. ์ด๊ฒ์ ์์ค ํ์ผ(๊ณ ๊ธ ์ธ์ด๋ก ์์ฑ๋ ๋ด์ฉ)์ด๋ผ๊ณ ํ๋๋ฐ, ์ด ์์ค ํ์ผ์ ์ปดํ์ผ๋ฌ(javac.exe)๋ก ์ปดํ์ผํ๋ฉด ํ์ฅ์๊ฐ .class์ธ ๋ฐ์ดํธ ์ฝ๋ ํ์ผ(์์ ํ ๊ธฐ๊ณ์ดX)์ด ์์ฑ๋๋ค.
์์คํ์ผ(.java) → ์ปดํ์ผ๋ฌ(javac.exe) → ๋ฐ์ดํธ ์ฝ๋ ํ์ผ(.class) → JVM(java.exe) → ๊ธฐ๊ณ์ด(OS)
๋ฐ์ดํธ ์ฝ๋ ํ์ผ์ JVM ๊ตฌ๋ ๋ช ๋ น์ด(java.exe)์ ์ํด JVM์์ ํด์๋๊ณ ํด๋น ์ด์์ฒด์ ์ ๋ง๊ฒ ๊ธฐ๊ณ์ด๋ก ๋ฒ์ญ๋๋ค. ๋ฐ์ดํธ์ฝ๋๋ ํ๋์ง๋ง, JVM์ ์ํด์ ๋ฒ์ญ๋๋ ๊ธฐ๊ณ์ด๋ ์ด์ ์ฒด์ ์ ๋ฐ๋ผ ๋ค๋ฅด๋ค.
3. JDK(Java Development Kit) ์ค์น
์๋ฐ ํ๋ก๊ทธ๋จ์ ๊ฐ๋ฐํ๊ธฐ ์ํด์๋ Java SE(Standard Edition)์ ๊ตฌํ์ฒด์ธ JDK๋ฅผ ์ค์นํด์ผ ํ๋ค.
- JRE = JVM + ํ์ค ํด๋์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ
- JDK = JRE + ๊ฐ๋ฐ์ ํ์ํ ๋๊ตฌ
1. ๋ค์ด๋ก๋
JDK๋ ์ค๋ผํด(http://www.oracle.com) ์ฌ์ดํธ์์ ๋ฌด๋ฃ๋ก ๋ค์ด๋ก๋ ๊ฐ๋ฅํ๋ค. JDK๋ ์ด์์ฒด์ ์ ๋ง๊ฒ ์ค์นํ์ผ์ ๋ค์ด๋ก๋ ํด์ค์ผ ํ๋ค.
2. ๊ธฐ๋ณธ ์์น
C:\program Files\Java
์ด ๋๋ ํ ๋ฆฌ๋ฅผ ๋ณด๋ฉด JDK์ ํจ๊ป JRE๋ ์ค์น๋์ด ์๋ ๊ฒ์ ์ ์ ์๋ค. JDK ๋ด๋ถ์๋ JRE๊ฐ ์๊ธฐ ๋๋ฌธ์ ์๋ฐ ํ๋ก๊ทธ๋จ์ ๊ฐ๋ฐํ๊ณ ์คํํ ์ ์๋ค.
3. ํ๊ฒฝ๋ณ์
JDK ๋ด๋ถ์ bin ๋๋ ํ ๋ฆฌ๋ ์ปดํ์ผ๋ฌ์ธ javac.exe์ JVM ๊ตฌ๋ ๋ช ๋ น์ด์ธ java.exe๊ฐ ํฌํจ๋์ด ์๋ค. ์ด ๋ช ๋ น์ด๋ค์ ๋ค๋ฅธ ๋๋ ํ ๋ฆฌ์์๋ ์ฝ๊ฒ ์คํํ ์ ์๋๋ก(ํ๊ฒฝ๋ณ์๋ฅผ ์ฐ๋ ์ด์ ) Path ํ๊ฒฝ๋ณ์์ bin ์์น๋ฅผ ๋ฑ๋กํ ํ์๊ฐ ์๋ค.
Windows11 ๋ดPC → ์ฐํด๋ฆญ → ์์ฑ → ๊ณ ๊ธ ์์คํ ์ค์ → ํ๊ฒฝ๋ณ์ ์ค์
์ฌ์ฉ์ ๋ณ์: ๋ก๊ทธ์ธ ์ฌ์ฉ์๋ณ๋ก ํ๊ฒฝ ๋ณ์ ์ค์
์์คํ ๋ณ์: ์ด๋ค ์ฌ์ฉ์๋ ๊ณตํต์ ์ผ๋ก ์ฌ์ฉํด์ผ ํ ํ์์ฑ์ด ์๋ ํ๊ฒฝ ๋ณ์
์์คํ ๋ณ์ > ์๋ก ๋ง๋ค๊ธฐ > [๋ณ์ ์ด๋ฆ: JAVA_HOME] > [๋ณ์ ๊ฐ: JDK๊ฐ ์ค์น๋ ๊ฒฝ๋ก(ex: C:\Program Files\Java\jdk-17]
์์คํ ๋ณ์ > ํธ์ง > Path > [๋ณ์ ์ด๋ฆ: %JAVA_HOME%\bin]
4. ์ค์น ํ์ธ
cmd๋ฅผ ์คํํ์ฌ java -version, javac -version ๋ช ๋ น์ด๋ฅผ ํตํด ์๋ง์ ๋ฒ์ ์ด ๋์ค๋์ง ํ์ธํ๋ค.
์ฐธ๊ณ ์์ | ํผ์ ๊ณต๋ถํ๋ ์๋ฐ | ์ด๊ฒ์ด ์๋ฐ๋ค | ์๋ฐ์ ์ ์ ๊ธฐ์ดํธ | THE ์น์ ํ ์๋ฐ ์ ๋ฌธ
'๐์น ๊ฐ๋ฐ(Web) > ์๋ฐ(JAVA)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ฐฐ์ด(array)๊ณผ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํตํด ์์๋ณด๋ ๋ฐฐ์ด์ ๋์์๋ฆฌ (0) | 2024.11.30 |
---|---|
๋ณ์ ์ฉ์ด, ๊ท์น๊ณผ ํ์ (0) | 2024.11.18 |