๐ช ๋ท๋ท ํ๋ ์์ํฌ ๊ตฌ์ฑ
ํด๋์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ CLR(Common Language Runtime)๋ก ์ด๋ฃจ์ด์ ธ ์๋ค.
ํด๋์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ(Window Form + ASP.NET+ADO.NET+BCL(๊ธฐ๋ณธ ํด๋์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ)
๊ณต์ฉ๋ฐํ์์ธ์ด(CLR)
๐ฆ ํด๋์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ
- C#ํ๋ก๊ทธ๋๋ฐ = C#์ธ์ด + ํด๋์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ
- MSDN์ ์ฐธ๊ณ ( msdn.Microsoft.com)
- ํด๋์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ
- BCL(Basic Class Library): ๊ธฐ๋ณธ ํด๋์ค
- Window Form : ์๋์ฐ ์์ฉ ํ๋ก๊ทธ๋จ ์ ์์ ์ํ ํด๋์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ
- ASP.NET : ์น ํด๋์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ
- ADO.NET : ๋ฐ์ดํฐ๋ฒ ์ด์ค ํด๋์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ
๐ง CLR(Common language Runtime)
์ปดํ์ผ๋ C# ์ฝ๋๋ฅผ ์คํํ๋ ์ญํ
MSIL, IL(intermediate language), ์ค๊ฐ์ธ์ด
- Visual Studio์์ C# ์ฝ๋๋ฅผ ์ปดํ์ผํ ์ฝ๋
- *. exe, *. dll (์ด์ ๋ธ๋ฆฌ, assembly)
- ๋ท๋ท ์ธ์ด์ธ VB, C#๋ฑ์ ๊ณตํต ์ธ์ด
๐ฉ CTS(Common Type System)์ CLS(Common Language Specification)
CTS๋ ๊ณตํต ๋ฐ์ดํฐํ๊ณผ ํ์ ์ ์
- int -> System.Int32
- float -> System.Single
CLS๋ ๊ณตํต ์ธ์ด ์ฌ์ ์ ์
๋ท๋ท ์ธ์ด๊ฐ ์ง์ผ์ผ ํ ์ต์ ์ฝ๋ ๊ท์ง
๐ ๋ท๋ท ํ๋ ์์ํฌ์ ๊ตฌ์ฑ ์์์ ์ญํ ์ดํดํ๋๊ฐ? BCL, IL, CLR, JIT, CTS ๋ฑ
BCL์ด ๋ญ์ผ? Basic Class Library์ ์ฝ์๋ก ํด๋์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ!
IL์ด ๋ญ์ผ? Intermediate Language์ ์ฝ์๋ก ์ค๊ฐ์ธ์ด์ด๋ค.
C์ธ์ด์ฒ๋ผ ํน์ CPU์ OS์์๋ง ๋์ํ๋ ์คํํ์ผ์ด ์๋ ๋ ๋ฆฝ์ ์ธ ๊ธฐ๊ณ์ด ์ฝ๋๋ก ๊ฐ์๋จธ์ CLR์ด ์ดํดํ ์ ์๋๋ก ์ปดํ์ผ๋ ๊ธฐ๊ณ์ด ์ฝ๋
CLR์ด ๋ญ์ผ? IL๊ฐ ์คํ๋๋ ๊ฐ์๋จธ์ ๊ตฌ์ฑ์์๋ก Java์ JVM๊ณผ ๊ฐ์ ์ญํ
์คํํ๊ณ ์ ํ๋ ํ๊ฒฝ์ ์ต์ ํ๋ ์ปดํ์ผ ์ฝ๋๋ฅผ ๋ง๋ค๊ณ , Native ์ฝ๋๋ฅผ ์์ฑํ์ฌ ์คํํ ์ ์๊ฒ ๋์์ค
JIT๊ฐ ๋ญ์ผ? Just-in-Time-Compile์ ์ฝ์๋ก ๋งค๋ฒ ์คํ๋ ๋๋ง๋ค ์ค์๊ฐ์ผ๋ก ์ปดํ์ผ์ ํ์ฌ ์คํ์ ํ๋ค๋ ์๋ฏธ.
CTS๊ฐ ๋ญ์ผ? ๊ณตํต ๋ฐ์ดํฐ ํ์
๐์ปดํ์ผ๋ถํฐ ์คํ๊น์ง์ ๊ณผ์ ์ ์ดํดํ๋๊ฐ
C#์ฝ๋์์ฑ -> C#์ปดํ์ผ๋ฌ๊ฐ ์ปดํ์ผ ์ํ(*. exe, *. dll ์ด์ ๋ธ๋ฆฌ) ->. CIL์ฝ๋ ์คํ -> CLR์์ญ์์ ์คํ ํ๊ฒฝ์ ์ต์ ํ๋ ์ปดํ์ผ ์ฝ๋๋ฅผ ๋ง๋ฆ -> JIT ์ปดํ์ผ๋ฌ๊ฐ ๋ค์ดํฐ๋ธ ์ฝ๋๋ก ๋ณํ -> ๋ค์๋ฒ ์คํ์ ์ํด ๋ฉ๋ชจ๋ฆฌ์ ์บ์ -> ์คํ ๋ฟ
'C#' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[C# ๊ธฐ์ด๊ณต๋ถ] ๋ฐ์ฑ๊ณผ ์ธ๋ฐ์ฑ (0) | 2023.01.04 |
---|---|
[C# ๊ธฐ์ด๊ณต๋ถ] ๋ฐ์ดํฐ ๋ณํ (0) | 2023.01.04 |
[C# ๊ธฐ์ด๊ณต๋ถ] ๋ฐ์ดํฐ ํ (2) | 2023.01.04 |
[C# ๊ธฐ์ด๊ณต๋ถ] C# ํ๋ก๊ทธ๋๋ฐ์ ๊ธฐ๋ณธ ๊ตฌ์กฐ (0) | 2023.01.03 |
[C# ๊ธฐ์ด๊ณต๋ถ] C#์ธ์ด์ ์คํ๊ณผ์ ์ ๋ํด ์์๋ณด์ (0) | 2022.12.30 |