Managed code
[์ ์]
- ๊ด๋ฆฌํ ํ๊ฒฝ์์ ์คํ๋๋ ์ฝ๋
[ํน์ง]
- CLR(Common Language Runtime)์์ ์คํ๋๋ฉฐ CLR์ ๋ค์ํ ๊ด๋ฆฌ ์์
์ ์๋์ผ๋ก ์ฒ๋ฆฌํด์ค๋๋ค.
- ๊ฐ๋น์ง ์ปฌ๋ ์ (Garbage Collection)์ ํตํด ๋ฉ๋ชจ๋ฆฌ ํ ๋น๊ณผ ํด์ ๋ฅผ ์๋์ผ๋ก ์ฒ๋ฆฌํฉ๋๋ค.
- ์์ธ ์ฒ๋ฆฌ๊ฐ ๋ํ ์๋์ผ๋ก ์ด๋ฃจ์ด์ง๋๋ค.
- ์ฝ๋ ์คํ ์ค ๋ฐ์ํ ์ ์๋ ๋ณด์ ๋ฌธ์ ๋ฅผ ๊ด๋ฆฌํ ํ๊ฒฝ์ด ์ฒ๋ฆฌํด์ค๋๋ค.
- .NET Framework๋ Java ๊ฐ์ ๊ด๋ฆฌํ ๋ฐํ์์ ํตํด ์ฌ๋ฌ ํ๋ซํผ์์ ๋์ผํ ์ฝ๋๋ฅผ ์คํํ ์ ์์ต๋๋ค.
- CLR์ ์ฝ๋๋ฅผ ์คํํ ๋ ๋๋ฒ๊น ๊ณผ ํ๋กํ์ผ๋ง์ ์ง์ํด์ค๋๋ค.
[์์]
- C#
- VB.NET
Unmanaged code
[์ ์]
- ์ด์์ฒด์ ๋ ๋ฐํ์ ํ๊ฒฝ์ ์๋ ๊ด๋ฆฌ ์์ด ์คํ๋๋ ์ฝ๋
[ํน์ง]
- ์ด์์ฒด์ ์ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ๋ฅผ ์๋์ผ๋ก ์ฒ๋ฆฌํด์ผํ๋ฉฐ ํ๋ก๊ทธ๋๋จธ๊ฐ ๋ฉ๋ชจ๋ฆฌ ํ ๋น ๋ฐ ํด์ (malloc ๋ฐ free)๋ฅผ ์ง์ ํด์ผ ํฉ๋๋ค.
- ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ ์ค์๋ก ์ธํ ๋ฒํผ ์ค๋ฒํ๋ก์ฐ, ์ธ๊ทธ๋ฉํ
์ด์
์ค๋ฅ ๋๋ ๋ฉ๋ชจ๋ฆฌ ๋์, ์๋ชป๋ ๋ฉ๋ชจ๋ฆฌ ์ก์ธ์ค ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค.
- ๊ด๋ฆฌํ ์ฝ๋์ ๋นํด ์ฑ๋ฅ์ด ์ฐ์ํ ์ ์์ผ๋ฉฐ ์์คํ
์์์ ๋ ์ง์ ์ ์ผ๋ก ์ ๊ทผํ ์ ์์ต๋๋ค.
- ์ด์์ฒด์ ์ ์ง์ ์ํธ์์ฉํ๋ฉฐ ์คํ๋ฉ๋๋ค.
[์์]
- C, C++
- Windows API์ ์ง์ ์ํธ์์ฉํ๋ ์ฝ๋
Native code
[์ ์]
- ํน์ ์ด์์ฒด์ ์ ๊ธฐ๊ณ์ด๋ก ๋ณํ๋ ์ฝ๋๋ก, ํด๋น ์ด์์ฒด์ ์์ ๋ฐ๋ก ์คํํ ์ ์๋ ์ฝ๋
[ํน์ง]
- ์ด์์ฒด์ ์ ์ํคํ
์ฒ์ ๋ง๊ฒ ์์ฑ๋์ด ํด๋น ์์คํ
์์ ์ต์ ํ๋์ด ์คํ๋ฉ๋๋ค.
- ์ด์์ฒด์ ์ ํ๋์จ์ด์ ํน์ฑ์ ๋ฐ์ํ์ฌ ์ต์ ํ๋ฉ๋๋ค. ๋ฐ๋ผ์ ํน์ ํ๋ซํผ์์ ์ต์์ ์ฑ๋ฅ์ ๋ฐํํ ์ ์์ต๋๋ค.
- ๊ทธ๋ฌ๋ ํน์ ์ด์์ฒด์ ๋ ํ๋์จ์ด ์ํคํ
์ฒ์ ์ข
์์ ์
๋๋ค. ์๋ฅผ ๋ค์ด, windows์์ ์คํ๋๋ native ์ฝ๋์ linux์์ ์คํ๋๋ ์ฝ๋๋ ๋ค๋ฆ
๋๋ค.
- ์ปดํ์ผ๋ ๊ธฐ๊ณ์ด๋ก ์คํ๋๋ฏ๋ก ์ฑ๋ฅ์ด ๋งค์ฐ ์ฐ์ํฉ๋๋ค.
- ํ๋ซํผ์ ๋ฐ๋ผ ๋ค๋ฅด๊ฒ ์ปดํ์ผ๋์ด์ผ ํ๋ฏ๋ก ์ด์์ฑ์ด ๋ฎ์ต๋๋ค.
[์์]
- C, C++๋ก ์์ฑ๋์ด .exe, .dll๋ก ์ปดํ์ผ๋ ์ฝ๋
- ์ด์ ๋ธ๋ฆฌ ์ธ์ด
- ํ๋์จ์ด ๋๋ผ์ด๋ฒ๋ ์ด์์ฒด์ ์ปค๋ ์ฝ๋
managed code๋ MS์์ ๋ง๋ ๊ฐ๋
์
๋๋ค. ์ด๋ฆ๋๋ก code๊ฐ managed ๋๋ค๋ ๊ฒ์
๋๋ค. ์์๋ก Java๋ JVM(Java Virtual Machine), C#์ .NET Framework์ ๊ด๋ฆฌ๋ก ๋์ํฉ๋๋ค.
managed code์ ๋ฐ๋๋ง๋ก unmanaged code ๋๋ native code๋ผ๊ณ ๋ง์ด ์ฌ์ฉํ๊ณ ์์ต๋๋ค. ํ๋ฆฐ ๋ง์ ์๋์ง๋ง unmanaged code์ native code๊ฐ ๋์์ด๋ ์๋๋๋ค.
unmanaged code์ native code๋ managed code์ ๋ค๋ฅด๊ฒ ์๋ ๊ด๋ฆฌ ๋ฐ์ง ์์ต๋๋ค. ๋๋ค ์ง์ ์ ์ธ ๊ด๋ฆฌ ์์ด ์คํ๋๋ ์ฝ๋์ ๋๋ค. native code๋ unmanaged code์ ์ผ์ข ์ผ๋ก ์ด์์ฒด์ ์์ ๋ฐ๋ก ์คํ ๊ฐ๋ฅํ ๊ธฐ๊ณ์ด ์ฝ๋๋ฅผ ์๋ฏธํฉ๋๋ค.
'Study > study' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
COM(Component Object Model)์ ๊ฐ๋ (0) | 2025.04.21 |
---|---|
์ํ ํ์์ ๋ถ๋ฅ ์ฒด๊ณ ๋ฐ ๋ช ๋ช ๋ฒ (2) | 2025.04.02 |
๋ฐ์ด๋๋ฆฌ์์ ์ํธํ๋ ๋ฌธ์์ด ์ถ์ถ(๋ณตํธํ)ํ๊ธฐ (1) | 2025.02.06 |
Dynamic ์ํฐ ๋๋ฒ๊น (Anti Debugging) ๊ธฐ๋ฒ๊ณผ ์ฐํ (0) | 2024.12.17 |
Static ์ํฐ ๋๋ฒ๊น (Anti Debugging) ๊ธฐ๋ฒ๊ณผ ์ฐํ (1) | 2024.11.29 |