250x250
Rainbow๐ŸŒˆCoder
My dev Note๐Ÿ“’
Rainbow๐ŸŒˆCoder
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (411)
    • ๊ณต์ง€์‚ฌํ•ญ (0)
    • Debugger (10)
      • Visual Studio Debugger (1)
      • Chrome DevTools (3)
      • Visual Studio Code Debugger (4)
      • eclipse (1)
      • intelliJ (1)
    • OOP (2)
      • OOP (2)
    • TypeScript (54)
      • ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ TypeScript (54)
    • Javascript (87)
      • Javascript (45)
      • Node.js (19)
      • React (5)
      • FE ๊ฐœ๋ฐœํ™˜๊ฒฝ์„ค์ • (3)
      • React์™€ Node ๊ฐ™์ด ๋•Œ๋ ค์žก๊ธฐ (6)
      • next.js (2)
      • pixi.js (7)
    • ๋งˆํฌ์—… (23)
      • Html & Css (23)
    • C# (80)
      • C# (12)
      • ์ด๊ฒƒ์ด C#์ด๋‹ค (68)
    • C++ (30)
      • c++ (27)
      • win api (3)
    • Unity (18)
      • Unity(๊ธฐ์ดˆ) (8)
      • Unity(C#์ค‘๊ธ‰) (5)
      • ์œ ๋‹ˆํ‹ฐ ํฌํ†ค(๋„คํŠธ์›Œํฌ) (4)
      • unity c# MyCode (1)
    • Java & Spring (29)
      • Java (11)
      • ์Šคํ”„๋ง (8)
      • Java Algorithm (9)
      • Javs Data Structures (1)
    • ์ž๋ฃŒ๊ตฌ์กฐ์™€ ์•Œ๊ณ ๋ฆฌ์ฆ˜ (15)
      • ์ž๋ฃŒ๊ตฌ์กฐ (5)
      • ์•Œ๊ณ ๋ฆฌ์ฆ˜ (10)
    • ํ˜•์ƒ๊ด€๋ฆฌ (15)
      • Git (11)
      • ์†Œ์ŠคํŠธ๋ฆฌ (3)
    • ๊ทธ๋ž˜ํ”ฝ์Šค (7)
      • WebGl (7)
    • AWS (3)
      • aws (3)
    • ๋ฆฌ๋ˆ…์Šค (5)
      • ๋ฆฌ๋ˆ…์Šค (5)
    • ์ฑ… ๋ฆฌ๋ทฐ (13)
      • ํด๋ฆฐ์ฝ”๋“œ(์ฑ…๋ฆฌ๋ทฐ) (3)
      • ์œ ์ง€๋ณด์ˆ˜๊ฐ€๋Šฅํ•œ์ฝ”๋”ฉ์˜๊ธฐ์ˆ C#ํŽธ(์ฑ…๋ฆฌ๋ทฐ) (1)
      • ๋ฆฌํŒฉํ† ๋ง(์ž๋ฐ”์Šคํฌ๋ฆฝํŠธํŒ) (9)
    • Server (2)
      • ๊ฒŒ์ž„ ์„œ๋ฒ„(๋„คํŠธ์›Œํฌ, ๋ฉ€ํ‹ฐ์“ฐ๋ ˆ๋“œ,OS) (2)
    • ์„ค๊ณ„, ์•„ํ‚คํ…์ณ (4)
    • ํŒŒ์ด์ฌ (5)
    • ๋””์ž์ธํŒจํ„ด (2)
    • mocha (2)
    • Jest (1)
    • Spine (1)
    • ์ธ๊ณต์ง€๋Šฅ (1)
      • ํ˜ผ์ž๊ณต๋ถ€ํ•˜๋Š”๋จธ์‹ ๋Ÿฌ๋‹+๋”ฅ๋Ÿฌ๋‹ (1)

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • ํ™ˆ
  • ํƒœ๊ทธ
  • ๋ฐฉ๋ช…๋ก

๊ณต์ง€์‚ฌํ•ญ

์ธ๊ธฐ ๊ธ€

ํƒœ๊ทธ

  • MySQL
  • ์œ„์ž„
  • ์ปดํฌ์ง€์…˜
  • ใ…ฃใ„ท

์ตœ๊ทผ ๋Œ“๊ธ€

์ตœ๊ทผ ๊ธ€

ํ‹ฐ์Šคํ† ๋ฆฌ

hELLO ยท Designed By ์ •์ƒ์šฐ.
Rainbow๐ŸŒˆCoder

My dev Note๐Ÿ“’

C#/์ด๊ฒƒ์ด C#์ด๋‹ค

1. ์ฝ˜์†” C# ํ”„๋กœ๊ทธ๋žจ์˜ ์ดํ•ด (using, using static, namespace, CLR)

2022. 2. 4. 14:24
728x90
using System;
using static System.Console;
namespace Hello
{
    //ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰์ด ์‹œ์ž‘๋˜๋Š” ๊ณณ
    class MainApp
    {
        static void Main(string[] args)
        {
            if(args.Length == 0)
            {
                Console.WriteLine("์‚ฌ์šฉ๋ฒ• : Hello.exe<์ด๋ฆ„>");
                return;
            }
            WriteLine("Hello, {0}!",args[0]);

        }
    }
}

using System; //System ๋„ค์ž„์ŠคํŽ˜์ด์Šค ์•ˆ์— ์žˆ๋Š” ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•˜๊ฒ ๋‹ค๊ณ  ์ปดํŒŒ์ผ๋Ÿฌ์—๊ฒŒ ์•Œ๋ฆผ

                  //System.Console.WriteLine์„ Console.WriteLine๋กœ ์ค„์—ฌ์“ธ ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์คŒ
using static System.Console; //Console.WriteLine์„ WriteLine๋กœ ์ค„์—ฌ์“ธ ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์คŒ
namespace Hello
{
    class MainApp //๋‹ค๋ฅธ ๋„ค์ž„์ŠคํŽ˜์ด์Šค์—์„œ MainApp ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด using Hello; ๋ฌธ์žฅ์„ ์ด์šฉํ•ด์„œ Hello ๋„ค์ž„์ŠคํŽ˜์ด์Šค๋ฅผ ์ฐธ์กฐํ•˜๊ฑฐ๋‚˜ Hello.MainApp์ฒ˜๋Ÿผ ํด๋ž˜์Šค๊ฐ€ ์†Œ์†๋˜์–ด ์žˆ๋Š” ๋„ค์ž„์ŠคํŽ˜์ด์Šค์™€ ํด๋ž˜์Šค์˜ ์ด๋ฆ„์„ ๋ถ™์—ฌ์ค˜์•ผ ํ•œ๋‹ค.
    {

        //ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰์ด ์‹œ์ž‘๋˜๋Š” ๊ณณ
        static void Main(string[] args) //Main() ๋ฉ”์†Œ๋“œ, Main() ๋ฉ”์†Œ๋“œ๋Š” ํ”„๋กœ๊ทธ๋žจ์˜ ์‹œ์ž‘์„ ๋‹ด๋‹นํ•˜๋Š” ํŠน๋ณ„ํ•œ ๋ฉ”์†Œ๋“œ์ด๊ธฐ ๋•Œ๋ฌธ์— Main() ๋ฉ”์†Œ๋“œ์˜ ์ฝ”๋“œ ๋ธ”๋ก์ด ๋๋‚˜๋ฉด ํ”„๋กœ๊ทธ๋žจ๋„ ๊ฐ™์ด ์ข…๋ฃŒ๋œ๋‹ค. 
        {
            if(args.Length == 0)
            {
                WriteLine("์‚ฌ์šฉ๋ฒ• : Hello.exe<์ด๋ฆ„>");
                return;//return์€ ์›๋ž˜ ๋ฉ”์†Œ๋“œ์ด ํ˜ธ์ถœ์ž์—๊ฒŒ ๋ฉ”์†Œ๋“œ ์‹คํ–‰ ๊ฒฐ๊ณผ๋ฅผ ๋Œ๋ ค์ฃผ๋Š” ์—ญํ• ์„ ํ•˜์ง€๋งŒ, ์—ฌ๊ธฐ์„œ๋Š” Main() ๋ฉ”์†Œ๋“œ๋ฅผ ์ข…๋ฃŒํ•˜๋Š” ์šฉ๋„๋กœ๋งŒ ์‚ฌ์šฉ๋˜์—ˆ๋‹ค
            }
            WriteLine("Hello, {0}!",args[0]);
        }
    }
}

using  ํ‚ค์›Œ๋“œ๋งŒ ์‚ฌ์šฉํ•˜๋ฉด ๋„ค์ž„์ŠคํŽ˜์ด์Šค ์ „์ฒด๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๋Š” ์˜๋ฏธ์ง€๋งŒ 

using static ์€ ์–ด๋–ค ๋ฐ์ดํ„ฐ ํ˜•์‹(์˜ˆ: ํด๋ž˜์Šค)์˜ ์ •์  ๋ฉค๋ฒ„๋ฅผ ๋ฐ์ดํ„ฐ ํ˜•์‹์˜ ์ด๋ฆ„์„ ๋ช…์‹œํ•˜์ง€ ์•Š๊ณ  ์ฐธ์กฐํ•˜๊ฒ ๋‹ค๊ณ  ์„ ์–ธํ•˜๋Š” ๊ธฐ๋Šฅ์„ ํ•œ๋‹ค. System.Console์€ ์ •์  ๋ฉค๋ฒ„๋ฅผ ์—ฌ๋Ÿฟ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.

์ฝ˜์†”์— ๋ฐ์ดํ„ฐ๋ฅผ ์ถœ๋ ฅํ•˜๋Š” Write(), WriteLine() ๋ฉ”์†Œ๋“œ(์ผ๋ จ์˜ ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ช…๋ น์–ด)์™€

์ฝ˜์†”๋กœ๋ถ€ํ„ฐ ๋ฐ์ดํ„ฐ๋ฅผ ์ž…๋ ฅ๋ฐ›๋Š” Read(), ReadLine() ๋ฉ”์†Œ๋“œ๊ฐ€

Console ํด๋ž˜์Šค์˜ ๋Œ€ํ‘œ์ ์ธ ์ •์  ๋ฉค๋ฒ„์ด๋‹ค.

 

namespace๋Š” ์„ฑ๊ฒฉ์ด๋‚˜ ํ•˜๋Š” ์ผ์ด ๋น„์Šทํ•œ ํด๋ž˜์Šค, ๊ตฌ์กฐ์ฒด, ์ธํ„ฐํŽ˜์ด์Šค, ๋Œ€๋ฆฌ์ž, ์—ด๊ฑฐ ํ˜•์‹ ๋“ฑ์„ ํ•˜๋‚˜์˜ ์ด๋ฆ„ ์•„๋ž˜ ๋ฌถ๋Š” ์ผ์„ ํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด System.IO ๋„ค์ž„ ์ŠคํŽ˜์ด์Šค์—๋Š” ํŒŒ์ผ ์ž…์ถœ๋ ฅ์„ ๋‹ค๋ฃจ๋Š” ๊ฐ์ข… ํด๋ž˜์Šค, ๊ตฌ์กฐ์ฒด, ๋Œ€๋ฆฌ์ž, ์—ด๊ฑฐ ํ˜•์‹๋“ค์ด ์žˆ๊ณ , System.Printing ๋„ค์ž„์ŠคํŽ˜์ด์Šค์—๋Š” ์ธ์‡„์— ๊ด€๋ จ๋œ ์ผ์„ ํ•˜๋Š” ํด๋ž˜์Šค ๋“ฑ์ด ์†Œ์†๋˜์–ด ์žˆ๋‹ค.

.NET ํด๋ž˜์Šค ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— 1๋งŒ ๊ฐœ๊ฐ€ ํ›จ์”ฌ ๋„˜๋Š” ํด๋ž˜์Šค๊ฐ€ ์žˆ์–ด๋„ ํ”„๋กœ๊ทธ๋ž˜๋จธ๋“ค์ด ์ „ํ˜€ ํ˜ผ๋ˆ์„ ๋А๋ผ์ง€ ์•Š๊ณ  ์ด๋“ค ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋น„๊ฒฐ์€ ๊ฐ ์šฉ๋„๋ณ„/๋ถ„์•ผ๋ณ„๋กœ ์ •๋ฆฌ๋˜์–ด ์žˆ๋Š” ๋„ค์ž„์ŠคํŽ˜์ด์Šค ๋•๋ถ„์ด๋‹ค.

 

class MainApp

class ๋Š” C# ํ”„๋กœ๊ทธ๋žจ์„ ๊ตฌ์„ฑํ•˜๋Š” ๊ธฐ๋ณธ ๋‹จ์œ„๋กœ์„œ ๋ฐ์ดํ„ฐ์™€ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ธฐ๋Šฅ(์ด๊ฒƒ์„ ๋ฉ”์†Œ๋“œ๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค)์œผ๋กœ ์ด๋ฃจ์–ด์ง„๋‹ค. C# ํ”„๋กœ๊ทธ๋žจ์€ ์ตœ์†Œํ•œ ํ•˜๋‚˜ ์ด์ƒ์˜ ํด๋ž˜์Šค๋กœ ์ด๋ฃจ์–ด์ง€๋ฉด ์ˆ˜๋ฐฑ, ์ˆ˜์ฒœ ๊ฐœ์˜ ํด๋ž˜์Šค๋“ค๋กœ ๊ตฌ์„ฑ๋˜๊ธฐ๋„ ํ•œ๋‹ค.

 

static void Main(string[] args) //Main() ๋ฉ”์†Œ๋“œ

ํ”„๋กœ๊ทธ๋žจ์˜ ์ง„์ž…์ ์œผ๋กœ์„œ ํ”„๋กœ๊ทธ๋žจ์„ ์‹œ์ž‘ํ•˜๋ฉด ์‹คํ–‰๋˜๊ณ , ์ด ๋ฉ”์†Œ๋“œ๊ฐ€ ์ข…๋ฃŒ๋˜๋ฉด ํ”„๋กœ๊ทธ๋žจ๋„ ์ข…๋ฃŒ๋œ๋‹ค.

๋”ฐ๋ผ์„œ ๋ชจ๋“  ํ”„๋กœ๊ทธ๋žจ์€ ๋ฐ˜๋“œ์‹œ Main์ด๋ผ๋Š” ์ด๋ฆ„์„ ๊ฐ€์ง„ ๋ฉ”์†Œ๋“œ๋ฅผ ํ•˜๋‚˜ ๊ฐ€์ง€๊ณ  ์žˆ์–ด์•ผ ํ•œ๋‹ค.

(๋ฉ”์†Œ๋“œ๋ผ๋Š” ์šฉ์–ด๋Š” ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์„ธ๊ณ„์—์„œ ํ•จ์ˆ˜๋ฅผ ์ผ์ปซ๋Š” ๋ง. ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ๋ชจ๋“  ๊ฒƒ์ด ๊ฐ์ฒด์ด๊ณ , ํ•จ์ˆ˜๋Š” ๊ฐ์ฒด์˜ ์ผ๋ถ€๋กœ์„œ ์กด์žฌํ•œ๋‹ค.)

static(ํ•œ์ •์ž, ์ˆ˜์‹์–ด๋ž€ ๋œป) void(๋ฐ˜ํ™˜ ํ˜•์‹) Main(๋ฉ”์†Œ๋“œ ์ด๋ฆ„) (string[] args)(๋งค๊ฐœ ๋ณ€์ˆ˜)

{//Main() ๋ฉ”์†Œ๋“œ์˜ ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” ์กฐ๊ธˆ ํŠน๋ณ„ํ•œ๋ฐ, ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•  ๋–„ ์ž…๋ ฅํ•˜๋Š” ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ์ž…๋ ฅ๋œ๋‹ค. ์ž…๋ ฅํ•˜๋Š” ๊ฒƒ๋“ค์ด ์ด args์— ์ž…๋ ฅ๋œ๋‹ค.

} (์ฝ”๋“œ๋ธ”๋Ÿญ) 

 

static์€ ํ•œ์ •์ž๋กœ์„œ ๋ฉ”์†Œ๋“œ๋‚˜ ๋ณ€์ˆ˜ ๋“ฑ์„ ์ˆ˜์‹ํ•œ๋‹ค. C# ํ”„๋กœ๊ทธ๋žจ์˜ ๊ฐ ์š”์†Œ๋Š” ์ฝ”๋“œ๊ฐ€ ์‹คํ–‰๋˜๋Š” ์‹œ์ ์— ๋น„๋กœ์†Œ ๋ฉ”๋ชจ๋ฆฌ์— ํ• ๋‹น๋˜๋Š” ๋ฐ˜๋ฉด, static ํ‚ค์›Œ๋“œ๋กœ ์ˆ˜์‹๋˜๋Š” ์ฝ”๋“œ๋Š” ํ”„๋กœ๊ทธ๋žจ์ด ์ฒ˜์Œ ๊ตฌ๋™๋  ๋•Œ๋ถ€ํ„ฐ ์ง„์ž‘์— ๋ฉ”๋ชจ๋ฆฌ์— ํ• ๋‹น๋œ๋‹ค๋Š” ํŠน์ง•์ด ์žˆ๋‹ค.

 

CLR์€ ์‰ฝ๊ฒŒ ๋งํ•˜๋ฉด, c#์œผ๋กœ ๋งŒ๋“  ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰๋˜๋Š” ํ™˜๊ฒฝ์ด๋‹ค. ์ด๋ฆ„์ด Common Language Runtime์ธ ์ด์œ ๋Š”, ์ด ๋Ÿฐํƒ€์ž„์ด C# ๋ฟ ์•„๋‹ˆ๋ผ CLS(Common Language Specificaion) ๊ทœ๊ฒฉ์„ ๋”ฐ๋ฅด๋Š” ๋ชจ๋“  ์–ธ์–ด๋กœ ์ž‘์„ฑ๋œ ํ”„๋กœ๊ทธ๋žจ์„ ์ง€์›ํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. CLR์€ ๋‹จ์ˆœํžˆ ๊ฐ ์–ธ์–ด๋กœ ์ž‘์„ฑ๋œ ํ”„๋กœ๊ทธ๋žจ์˜ ์‹คํ–‰ ๋ฟ ์•„๋‹ˆ๋ผ ์„œ๋กœ ๋‹ค๋ฅธ ์–ธ์–ด๋กœ ์ž‘์„ฑ๋œ ์–ธ์–ด ์‚ฌ์ด์˜ ํ˜ธํ™˜์„ฑ์„ ์ œ๊ณตํ•˜๊ธฐ๋„ ํ•œ๋‹ค. 

 

ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰๋˜๋ฉด CLR์€ ํ”„๋กœ๊ทธ๋žจ์„ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ฆฐ ํ›„ ํ”„๋กœ๊ทธ๋žจ์˜ ์ง„์ž…์ ์„ ์ฐพ๋Š”๋ฐ, ์ด๋•Œ Main() ๋ฉ”์†Œ๋“œ๊ฐ€ static ํ‚ค์›Œ๋“œ๋กœ ์ˆ˜์‹๋˜์–ด ์žˆ์ง€ ์•Š๋‹ค๋ฉด CLR์€ ์ง„์ž…์ ์„ ์ฐพ์ง€ ๋ชปํ–ˆ๋‹ค๋Š” ์—๋Ÿฌ ๋ฉ”์‹œ์ง€๋ฅผ ๋‚จ๊ธฐ๊ณ  ํ”„๋กœ๊ทธ๋žจ์„ ์ข…๋ฃŒ์‹œํ‚ฌ ๊ฒƒ์ด๋‹ค.

(์‹ค์ œ๋กœ ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ static์œผ๋กœ ํ•œ์ •๋œ Main()๋ฉ”์†Œ๋“œ๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ๋ฅผ ํŒ๋‹จํ•˜์—ฌ ์ปดํŒŒ์ผ ์—๋Ÿฌ ๋ฉ”์‹œ์ง€๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.)

์˜ค๋ฅ˜	CS5001	ํ”„๋กœ๊ทธ๋žจ์—๋Š” ์ง„์ž…์ ์— ์ ํ•ฉํ•œ ์ •์  'Main' ๋ฉ”์„œ๋“œ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
C# ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ VB.NET ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜  C++ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜
.NET ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
Common Language Runtime
์šด์˜์ฒด์ œ(Windows, Linux, OS)
ํ•˜๋“œ์›จ์–ด(x86/x64, ARM ...)

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

CLR์€ ์ž๋ฐ” ๊ฐ€์ƒ ๋จธ์‹ ๊ณผ ๋น„์Šทํ•œ ์—ญํ• ์„ ํ•œ๋‹ค.

์œ„์˜ ํ‘œ์™€ ๊ฐ™์ด CLR์€ .NET ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ ํ•จ๊ป˜ OS ์œ„์— ์„ค์น˜๋œ๋‹ค.

๋„ค์ดํ‹ฐ๋ธŒ ์ฝ”๋“œ๋กœ ์ž‘์„ฑ๋œ ํ”„๋กœ๊ทธ๋žจ๋“ค์€ ์šด์˜์ฒด์ œ๊ฐ€ ์ง์ ‘ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ,

C# ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ๋งŒ๋“ค์–ด๋‚ธ ์‹คํ–‰ ํŒŒ์ผ์€ ํ•˜๋“œ์›จ์–ด๊ฐ€ ์ดํ•ดํ•  ์ˆ˜ ์—†๋Š” ์ฝ”๋“œ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์‹คํ–‰ํ•  ์ˆ˜ ์—†๋‹ค.

 

<JIT(Just In Time) ์ปดํŒŒ์ผ>

1. C# ์ปดํŒŒ์ผ๋Ÿฌ๋Š” C# ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ์ปดํŒŒ์ผํ•ด์„œ IL(Intermediate Language)๋ผ๋Š” ์ค‘๊ฐ„์–ธ์–ด๋กœ ์ž‘์„ฑ๋œ ์‹คํ–‰ ํŒŒ์ผ์„ ๋งŒ๋“ ๋‹ค.

2. ์‚ฌ์šฉ์ž๊ฐ€ ์ด ํŒŒ์ผ์„ ์‹คํ–‰์‹œํ‚ค๋ฉด

3. CLR์ด ์ค‘๊ฐ„ ์ฝ”๋“œ๋ฅผ ์ฝ์–ด ๋“ค์—ฌ ๋‹ค์‹œ ํ•˜๋“œ์›จ์–ด๊ฐ€ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋„ค์ดํ‹ฐ๋ธŒ ์ฝ”๋“œ๋กœ ์ปดํŒŒ์ผํ•œ ํ›„ ์‹คํ–‰์‹œํ‚จ๋‹ค. 

 

JIT ์ปดํŒŒ์ผ์ด๋ž€, ์‹คํ–‰์— ํ•„์š”ํ•œ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•  ๋•Œ๋งˆ๋‹ค ์‹ค์‹œ๊ฐ„์œผ๋กœ ์ปดํŒŒ์ผํ•ด์„œ ์‹คํ–‰ํ•œ๋‹ค๋Š” ๋œป์ด๋‹ค.

 

๋‘๋ฒˆ์”ฉ์ด๋‚˜ ์ปดํŒŒ์ผ ํ•˜๋Š” ์ด์œ  : C#์ด ๋™์ž‘ํ•˜๋Š” ํ™˜๊ฒฝ์ด์ž ์—”์ง„์ธ CLR์€ C#๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋‹ค๋ฅธ ์–ธ์–ด๋„ ์ง€์›ํ•˜๋„๋ก ์„ค๊ณ„๋˜์—ˆ๋‹ค. ์„œ๋กœ ๋‹ค๋ฅธ ์–ธ์–ด๋“ค์ด ๋งŒ๋‚˜๊ธฐ ์œ„ํ•œ ์ง€์ ์ด ๋ฐ”๋กœ IL์ด๋ผ๋Š” ์ค‘๊ฐ„์–ธ์–ด์ด๊ณ , ์ด ์–ธ์–ด๋กœ ์“ฐ์ธ ์ฝ”๋“œ๋ฅผ CLR์ด ๋‹ค์‹œ ์ž์‹ ์ด ์„ค์น˜๋œ ํ”Œ๋žซํผ์— ์ตœ์ ํ™”์‹œ์ผœ ์ปดํŒŒ์ผํ•œ ํ›„ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. 

 

์ด ๋ฐฉ์‹์€ ์žฅ์ ์€ ํ”Œ๋žซํผ์— ์ตœ์ ํ™”๋œ ์ฝ”๋“œ๋ฅผ ๋งŒ๋“ค์–ด๋‚ธ๋‹ค๋Š” ๊ฒƒ์ด๋ฉฐ,

๋‹จ์ ์€ ์‹คํ–‰ ์‹œ ์ด๋ฃจ์–ด์ง€๋Š” ์ปดํŒŒ์ผ ๋น„์šฉ์˜ ๋ถ€๋‹ด์ด๋‹ค.

 

์ปดํŒŒ์ผ ๋น„์šฉ ๋ถ€๋‹ด์—†์ด ์–ด๋–ค ๊ธฐ๊ณ„์—์„œ๋„ ํ‰๊ท ์ ์ธ ์„ฑ๋Šฅ์„ ๋‚ด๋Š” ํ”„๋กœ๊ทธ๋žจ ๋Œ€์‹ ,

์ปดํŒŒ์ผ ๋น„์šฉ์ด ์กฐ๊ธˆ ๋ถ€๋‹ด์Šค๋Ÿฌ์šธ์ง€๋ผ๋„ ๊ธฐ๊ณ„์— ์ตœ์ ํ™”๋˜์–ด ์ตœ๊ณ ์˜ ์„ฑ๋Šฅ์„ ๋‚ด๋Š” ๋ฐฉ์‹์ธ ๊ฒƒ์ด๋‹ค.

 

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

 

https://youtu.be/pOakXs66EEI

 

728x90

'C# > ์ด๊ฒƒ์ด C#์ด๋‹ค' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

5. Parse์™€ ToString() ๋ฌธ์ž์—ด์„ ์ˆซ์ž๋กœ, ์ˆซ์ž๋ฅผ ๋ฌธ์ž์—ด๋กœ  (0) 2022.02.07
4. object ํ˜•์‹, ๋ฐ•์‹ฑ๊ณผ ์–ธ๋ฐ•์‹ฑ  (0) 2022.02.07
3. ๋ถ€ํ˜ธ๊ฐ€ ์žˆ๋Š” ์ •์ˆ˜, ๋ถ€ํ˜ธ๊ฐ€ ์—†๋Š” ์ •์ˆ˜, 2์˜ ๋ณด์ˆ˜๋ฒ•  (0) 2022.02.06
3. object, ๋ฐ•์‹ฑ๊ณผ ์–ธ๋ฐ•์‹ฑ, var  (0) 2022.02.04
2. C#์˜ ๋ฐ์ดํ„ฐ ํ˜•์‹(๊ฐ’ ํ˜•์‹, ์ฐธ์กฐ ํ˜•์‹), ๋ฉ”๋ชจ๋ฆฌ(์Šคํƒ, ํž™)  (0) 2022.02.04
    'C#/์ด๊ฒƒ์ด C#์ด๋‹ค' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • 4. object ํ˜•์‹, ๋ฐ•์‹ฑ๊ณผ ์–ธ๋ฐ•์‹ฑ
    • 3. ๋ถ€ํ˜ธ๊ฐ€ ์žˆ๋Š” ์ •์ˆ˜, ๋ถ€ํ˜ธ๊ฐ€ ์—†๋Š” ์ •์ˆ˜, 2์˜ ๋ณด์ˆ˜๋ฒ•
    • 3. object, ๋ฐ•์‹ฑ๊ณผ ์–ธ๋ฐ•์‹ฑ, var
    • 2. C#์˜ ๋ฐ์ดํ„ฐ ํ˜•์‹(๊ฐ’ ํ˜•์‹, ์ฐธ์กฐ ํ˜•์‹), ๋ฉ”๋ชจ๋ฆฌ(์Šคํƒ, ํž™)
    Rainbow๐ŸŒˆCoder
    Rainbow๐ŸŒˆCoder
    ๋ชฐ๋ผ๋„ ๊ฒฐ๊ตญ์€ ์•„๋Š” ๊ฐœ๋ฐœ์ž, ๊ทธ๋Ÿฐ ์‚ฌ๋žŒ์ด ๋˜๊ธฐ ์œ„ํ•œ ๋งค์ผ์˜ ํ•œ๊ฑธ์Œ

    ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”