๐C# ์ปดํ์ผ ๊ณผ์ ?
C#์ผ๋ก ๋ง๋ ํ๋ก๊ทธ๋จ์ CLR (Common Language Runtime)์์์ ์คํ๋ฉ๋๋ค.
C#์ ์ปดํ์ผ๋ฌ ์ธ์ด์ ๋๋ค.
๊ณผ์ ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- C# ์ปดํ์ผ๋ฌ๊ฐ C# ์ฝ๋ ์ปดํ์ผ
- ์ปดํ์ผ ๊ฒฐ๊ณผ๋ก IL(Intermediate Language) ์ค๊ฐ์ธ์ด๋ก ์์ฑ๋ ํ์ผ ์์ฑ
- ์ฌ์ฉ์๊ฐ ILํ์ผ ์คํํ์ฌ CLR์ด ์ฝ๋๋ฅผ ์ฝ์ด ๋ค์ดํฐ๋ธ ์ฝ๋(ํ๋์จ์ด๊ฐ ์ฝ์ ์ ์๋ ์ฝ๋)๋ก ์ปดํ์ผ
๋ค์ดํฐ๋ธ ์ฝ๋๋ก ์ปดํ์ผํ๋ ๊ณผ์ ์ JIT๋ผ ๋ถ๋ฅด๋ฉฐ JIT๋ ์คํ์ ํ์ํ ์ฝ๋(IL)๋ฅผ ์ค์๊ฐ์ผ๋ก ์ปดํ์ผ(๋ค์ดํฐ๋ธ ์ฝ๋ ์์ฑ)ํ๋ ๊ณผ์ ์ ๋งํฉ๋๋ค.
๋์ฌ๊ฒจ ๋ณด์์ผ ํ ๊ฒ์ ์ปดํ์ผ์ด 2๋ฒ์ด๋ ๋๋ค๋ ๊ฒ์ ๋๋ค. CLR์ C#๋ฟ๋ง ์๋๋ผ ๋ค๋ฅธ์ธ์ด๋ ์ง์ํ๋๋ก ์ค๊ณ๋์ด ์์ต๋๋ค. IL์ด ์๋ก ๋ค๋ฅธ์ธ์ด๋ฅผ ์ด์ด์ฃผ๋ ์ญํ ์ ํ๊ณ , CLR์ด ์ค์น๋ ํ๋ซํผ์์(ํ๋์จ์ด, ์ด์์ฒด์ ์ ๋ฐ๋ฅธ) ์ต์ ํํ์ฌ ์ปดํ์ผํ ํ ์คํ๋๋ ๊ฒ์ ๋๋ค. CLR์ ๋ง์ดํฌ๋ก์ํํธ ๋ท๋ท ์ด๋์ ํฐ๋ธ์ ๊ฐ์ ๋จธ์ ๊ตฌ์ฑ ์์์ ๋๋ค.
CLR์ ์ญํ
- ์ธ์ด๋ฅผ ๋์์ํค
- ํ๋ก๊ทธ๋จ์ ์ค๋ฅ๊ฐ ๋ฐ์ํ์๋ ์ด๋ฅผ ์ฒ๋ฆฌํ๋๋ก ๋์์ฃผ๋ ๊ธฐ๋ฅ, ์ธ์ด๊ฐ์ ์์ ์ง์
- COM(Componet Object Model)๊ณผ์ ์ํธ ์ด์์ฑ ์ง์
COM์ ์ (.ocx, .dll, .exe ) - ์๋ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ (Garbage Collection)
ํ๋ก๊ทธ๋จ์์ ๋ ์ด์ ์ฐ์ด์ง ์๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฐ๋ ๊ธฐ(Garbage)๋ก ๊ฐ์ฃผํ์ฌ ์๊ฑฐ(Collection)ํ๋ ๊ธฐ๋ฅ
CLR์ ์ฅ๋จ์
์ฅ์ : ํ๋ซํผ์ ์ต์ ํ๋ ์ฝ๋๋ฅผ ๋ง๋ค์ด ๋ธ๋ค.
๋จ์ : ์ปดํ์ผ ๋น์ฉ์ด ๋ ๋ค (IL์์ ์ปดํ์ผ๋๊ณ ๋ ์์ฑ๋ ํ์ผ์ ๋ค์ดํฐ๋ธ ์ฝ๋๋ก ์ปดํ์ผ ํ๋ ๊ณผ์ ์ ๋ปํจ.)
์๋ ๊ฒฝ๋ก๋ ์ปดํ์ผ๋ฌ๊ฐ ์ค์น๋ ๊ฒฝ๋ก์ ๋๋ค.
'Develop Dairy > C#' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๊ฐ๋จํ DI(Dependency Injection)์ ์ดํด&์์ (2021. 05. 28) (0) | 2021.05.28 |
---|---|
์๋ ๊ตฌํ Property ์์๋ณด๊ธฐ. (2021. 05. 11) (0) | 2021.05.11 |
SPA ์ดํด (2021. 04. 26) (0) | 2021.04.26 |
Visual studio code(VSC) IDE๋ก Blazor WebAssembly ์ดํด๋ณด๊ธฐ (2021. 03. 17) (2) | 2021.03.17 |
Blazor ํธ์คํ ํ๊ฒฝ ์์ํ๊ธฐ (WebAssembly) (2021. 03. 16) (0) | 2021.03.16 |