Develop Dairy/C#

Csharp์€ ์–ด๋–ป๊ฒŒ ์‹คํ–‰ ๋˜๋Š”๊ฑธ๊นŒ..? (2021. 05. 11)

ํ‰์ƒ์ฝ”๋”ฉ 2021. 5. 11. 09:32

๐Ÿ“–C# ์ปดํŒŒ์ผ ๊ณผ์ •?

C#์œผ๋กœ ๋งŒ๋“  ํ”„๋กœ๊ทธ๋žจ์€ CLR (Common Language Runtime)์œ„์—์„œ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.

C#์€ ์ปดํŒŒ์ผ๋Ÿฌ ์–ธ์–ด์ž…๋‹ˆ๋‹ค.

๊ณผ์ •์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  1. C# ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ C# ์ฝ”๋“œ ์ปดํŒŒ์ผ
  2. ์ปดํŒŒ์ผ ๊ฒฐ๊ณผ๋กœ IL(Intermediate Language) ์ค‘๊ฐ„์–ธ์–ด๋กœ ์ž‘์„ฑ๋œ ํŒŒ์ผ ์ƒ์„ฑ
  3. ์‚ฌ์šฉ์ž๊ฐ€ ILํŒŒ์ผ ์‹คํ–‰ํ•˜์—ฌ CLR์ด ์ฝ”๋“œ๋ฅผ ์ฝ์–ด ๋„ค์ดํ‹ฐ๋ธŒ ์ฝ”๋“œ(ํ•˜๋“œ์›จ์–ด๊ฐ€ ์ฝ์„ ์ˆ˜ ์žˆ๋Š” ์ฝ”๋“œ)๋กœ ์ปดํŒŒ์ผ

๋„ค์ดํ‹ฐ๋ธŒ ์ฝ”๋“œ๋กœ ์ปดํŒŒ์ผํ•˜๋Š” ๊ณผ์ •์„ JIT๋ผ ๋ถ€๋ฅด๋ฉฐ JIT๋Š” ์‹คํ–‰์— ํ•„์š”ํ•œ ์ฝ”๋“œ(IL)๋ฅผ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์ปดํŒŒ์ผ(๋„ค์ดํ‹ฐ๋ธŒ ์ฝ”๋“œ ์ƒ์„ฑ)ํ•˜๋Š” ๊ณผ์ •์„ ๋งํ•ฉ๋‹ˆ๋‹ค.

๋ˆˆ์—ฌ๊ฒจ ๋ณด์•„์•ผ ํ•  ๊ฒƒ์€ ์ปดํŒŒ์ผ์ด 2๋ฒˆ์ด๋‚˜ ๋œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. CLR์€ C#๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋‹ค๋ฅธ์–ธ์–ด๋„ ์ง€์›ํ•˜๋„๋ก ์„ค๊ณ„๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. IL์ด ์„œ๋กœ ๋‹ค๋ฅธ์–ธ์–ด๋ฅผ ์ด์–ด์ฃผ๋Š” ์—ญํ• ์„ ํ•˜๊ณ , CLR์ด ์„ค์น˜๋œ ํ”Œ๋žซํผ์—์„œ(ํ•˜๋“œ์›จ์–ด, ์šด์˜์ฒด์ œ์— ๋”ฐ๋ฅธ) ์ตœ์ ํ™”ํ•˜์—ฌ ์ปดํŒŒ์ผํ•œ ํ›„ ์‹คํ–‰๋˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. CLR์€ ๋งˆ์ดํฌ๋กœ์†Œํ”„ํŠธ ๋‹ท๋„ท ์ด๋‹ˆ์…”ํ‹ฐ๋ธŒ์˜ ๊ฐ€์ƒ ๋จธ์‹  ๊ตฌ์„ฑ ์š”์†Œ์ž…๋‹ˆ๋‹ค.

CLR์˜ ์—ญํ• 

  1. ์–ธ์–ด๋ฅผ ๋™์ž‘์‹œํ‚ค
  2. ํ”„๋กœ๊ทธ๋žจ์˜ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์„๋•Œ ์ด๋ฅผ ์ฒ˜๋ฆฌํ•˜๋„๋ก ๋„์™€์ฃผ๋Š” ๊ธฐ๋Šฅ, ์–ธ์–ด๊ฐ„์˜ ์ƒ์† ์ง€์›
  3. COM(Componet Object Model)๊ณผ์˜ ์ƒํ˜ธ ์šด์˜์„ฑ ์ง€์›
    COM์˜ ์˜ˆ (.ocx, .dll, .exe )
  4. ์ž๋™ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ (Garbage Collection)
    ํ”„๋กœ๊ทธ๋žจ์—์„œ ๋” ์ด์ƒ ์“ฐ์ด์ง€ ์•Š๋Š” ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์“ฐ๋ ˆ๊ธฐ(Garbage)๋กœ ๊ฐ„์ฃผํ•˜์—ฌ ์ˆ˜๊ฑฐ(Collection)ํ•˜๋Š” ๊ธฐ๋Šฅ

CLR์˜ ์žฅ๋‹จ์ 

์žฅ์ : ํ”Œ๋žซํผ์— ์ตœ์ ํ™”๋œ ์ฝ”๋“œ๋ฅผ ๋งŒ๋“ค์–ด ๋‚ธ๋‹ค.

๋‹จ์ : ์ปดํŒŒ์ผ ๋น„์šฉ์ด ๋“ ๋‹ค (IL์—์„œ ์ปดํŒŒ์ผ๋˜๊ณ  ๋˜ ์ƒ์„ฑ๋œ ํŒŒ์ผ์„ ๋„ค์ดํ‹ฐ๋ธŒ ์ฝ”๋“œ๋กœ ์ปดํŒŒ์ผ ํ•˜๋Š” ๊ณผ์ •์„ ๋œปํ•จ.)

 

 

์•„๋ž˜ ๊ฒฝ๋กœ๋Š” ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์„ค์น˜๋œ ๊ฒฝ๋กœ์ž…๋‹ˆ๋‹ค.

C:\Windows\Microsoft.NET\Framework64\v4.0.30319