์๋ฐ๋ ๊ฐ์ฒด ์งํฅ์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด !!
์๋ฐ ํ๋ก๊ทธ๋จ์ ๊ตฌ๋์๋ฆฌ
1. ์์ค์ฝ๋๋ฅผ ์์ฑํ๋ค (.java ํ์ฅ์์ ์์คํ์ผ)
2. ์ปดํ์ผ๋ฌ(java.exe)๊ฐ ๋ฐ์ดํธ์ฝ๋๋ก ๋ณํํ๋ค. (.class ํ์ฅ์์ ํด๋์ค ํ์ผ)
3. ๋ฐ์ฒ(java.exe)๋ก ์๋ฐ ๊ฐ์๋จธ์ (JVM)์ ๊ตฌ๋์ํจ๋ค.
4. ์๋ฐ ๊ฐ์๋จธ์ (JVM)์ด ๋ฐ์ดํธ์ฝ๋๋ฅผ ํด์ํ๋ฉฐ ์๋ฐ ํ๋ก๊ทธ๋จ์ด ์คํ๋๋ค.
( * bytecode๋ ์๋ฐ ๊ฐ์ ๋จธ์ ์ด ์ฝ์ ์ ์๋ ์ธ์ด๋ก ๋ณํ๋ ์ฝ๋. JVM๋ง ์ค์น ๋์ด ์์ผ๋ฉด bytecode๋ ์ด๋ค ์ด์์ฒด์ ์์๋ผ๋ ์คํ๋ ์ ์๋ค. )
์๋ฐ ๊ฐ์ ๋จธ์ (JVM)
* ๊ตฌ์ฑ ์์
1. ํด๋์ค ๋ก๋(Class Loader)
: ํ์ํ ํด๋์ค ํ์ผ์ ์ฐพ๊ณ ๋์ ์ผ๋ก ๋ก๋ํ์ฌ ์คํ ์์ ํด๋์ค๋ฅผ ์ฌ์ฉํ ์ ์๋๋ก ํ๋ค. ๋ก๋๋ ํด๋์ค๋ JVM์ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ ์ ์ฅ๋๋ค.
2. ์คํ ์์ง(Execution Engine)
: ๋ฐ์ดํธ ์ฝ๋๋ฅผ ๊ธฐ๊ณ์ด๋ก ๋ณํํ๊ณ , ์ด๋ฅผ ์คํํ์ฌ ํ๋ก๊ทธ๋จ์ ์คํํ๋ค.
3. ๋ฉ๋ชจ๋ฆฌ ์์ญ(Memory Areas)
: Java ํ๋ก๊ทธ๋จ์ ์คํ๊ณผ ๊ด๋ จ๋ ๋ฐ์ดํฐ์ ์์์ ์ ์ฅํ๋ค. ์ฃผ์ํ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ผ๋ก๋ ๋ฉ์๋ ์์ญ(Method Area), ํ(Heap), ์คํ(Stack), PC ๋ ์ง์คํฐ(Program Counter Register), ๋ค์ดํฐ๋ธ ๋ฉ์๋ ์คํ(Native Method Stack)์ด ์กด์ฌํ๋ค
- ๋ฉ์๋ ์์ญ : ํด๋์ค ์ ๋ณด, ์์ ํ(Constant Pool), ๋ฉ์๋ ์ฝ๋ ๋ฑ์ ์ ๋ณด๋ฅผ ์ ์ฅ.
- ํ : ๋์ ์ผ๋ก ์์ฑ๋ ๊ฐ์ฒด์ ๋ฐฐ์ด์ ์ ์ฅ. ๊ฐ๋น์ง ์ปฌ๋ ์ ์ ํ์์ ๋ถํ์ํ ๊ฐ์ฒด๋ฅผ ์๋์ผ๋ก ์ ๋ฆฌํจ.
- ์คํ : ๋ฉ์๋ ํธ์ถ๊ณผ ๊ด๋ จ๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅ.
* ํน์ง
- ์คํ ๊ธฐ๋ฐ์ ๊ฐ์ ๋จธ์
- ๋ชจ๋ ๊ธฐ๋ณธ ํ์ ์ ์ ์๋ฅผ ๋ช ํํ ํจ์ผ๋ก์จ ํ๋ซํผ ๋ ๋ฆฝ์ฑ ๋ณด์ฅ
- JVM์ ๊ฐ๋น์ง ์ปฌ๋ ์ (Garbage Collection)์ ํตํด ์๋์ผ๋ก ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ด๋ฆฌ
- JVM์ Java์ ํฐ ์ฅ์ ์ธ ์ด์์ฑ, ์๋ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ, ์์ ์ฑ ๋ฐ ํ๋ถํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ํ๊ณ๋ฅผ ์ ๊ณตํ์ง๋ง
์คํ ์๋, ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋, ์์ ์๊ฐ ๋ฐ ๋ฆฌ์์ค ๊ด๋ฆฌ์ ๊ฐ์ ์ผ๋ถ ๋จ์ ์ด ์กด์ฌํ๋ค.
์ ์๋ฐ ๊ฐ์ ๋จธ์ (JVM) ๊ตฌ์กฐ๋ฅผ ์์์ผ ํ๋๊ฐ?
์์คํ ์ ์ฑ๋ฅ์ ๋์ด๊ธฐ ์ํด ์๋ฐ ๊ฐ์ ๋จธ์ ์ ๊ตฌ์ฑ๊ณผ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์๋ ๊ฒ์ ์๋ฐ ๊ฐ๋ฐ์๋ก์ ํ์์ ์ธ ์ผ์ด๋ค.
ํนํ๋ ๋ฉ๋ชจ๋ฆฌ๋ ์ฌ์ฉํ ์ ์๋ ๊ณต๊ฐ์ด ํ์ ๋์ด ์๊ธฐ์ ์ด๋ป๊ฒ ๊ด๋ฆฌํ๋๋์ ๋ฐ๋ผ ํ๋ก๊ทธ๋จ์ ์ฑ๋ฅ์ด ์ข์ฐ๋๋ค.
๋ฐ๋ผ์, ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํจ์จ์ ์ผ๋ก ์ฌ์ฉํ๊ธฐ ์ํด์๋ ๋ฉ๋ชจ๋ฆฌ์ ๊ตฌ์ฑ๊ณผ ๊ฐ ํน์ง์ ๋ํด์ ์ดํดํ ํ์๊ฐ ์๋ค.
'๋ฐฑ์๋(Back-End) ๊ฐ๋ฐ > Java' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์คํํฑ (static) ์ด๋? (0) | 2025.01.19 |
---|---|
๊ธฐ๋ณธํ ๋ณ์ vs ์ฐธ์กฐํ ๋ณ์ (0) | 2025.01.19 |
์ฟ ํค(Cookie) vs ์ธ์ (Session) (0) | 2025.01.19 |
๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ(Object Oriented Programming, OOP) ์ธ์ด (1) | 2025.01.16 |
์๋ฐ(JAVA) ์์ฝ ์ ๋ฆฌ (0) | 2025.01.10 |