c#์ด๋ž€(vistualstudio ์„ค์น˜ ๋ฐ .netํ”„๋ ˆ์ž„์›Œํฌ ํ”„๋กœ์ ํŠธ ์‹œ์ž‘ํ•˜๊ธฐ)

๋ฐ˜์‘ํ˜•
SMALL

C#

๐Ÿ’ก C#(C์ƒต)์€ ๋งˆ์ดํฌ๋กœ์†Œํ”„ํŠธ(Microsoft)์—์„œ ๊ฐœ๋ฐœํ•œ ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋กœ, .NET ํ”„๋ ˆ์ž„์›Œํฌ์˜ ํ•œ ๋ถ€๋ถ„์œผ๋กœ ์ด๋ฃจ์–ด์ ธ์žˆ์Šต๋‹ˆ๋‹ค.

 

 C#์˜ ์ฃผ์š” ํŠน์ง•

1. ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ(OOP, Object-Oriented Programming)

  • ํด๋ž˜์Šค, ์ƒ์†, ๋‹คํ˜•์„ฑ, ์บก์Аํ™”, ์ถ”์ƒํ™” ๋“ฑ ๊ฐ์ฒด ์ง€ํ–ฅ ๊ฐœ๋…์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ฐœ๋ฐœ ๊ฐ€๋Šฅ
  • ๋Œ€๊ทœ๋ชจ ํ”„๋กœ์ ํŠธ์—์„œ๋„ ์œ ์ง€๋ณด์ˆ˜์™€ ํ™•์žฅ์„ฑ์ด ๋›ฐ์–ด๋‚จ

2. .NET ํ”„๋ ˆ์ž„์›Œํฌ ๋ฐ .NET Core ์ง€์›

  • Windows, macOS, Linux ๋“ฑ ๋‹ค์–‘ํ•œ ํ™˜๊ฒฝ์—์„œ ์‹คํ–‰ ๊ฐ€๋Šฅ
  • ์ตœ์‹  ๋ฒ„์ „์ธ .NET Core๋ฅผ ์ด์šฉํ•˜๋ฉด ์˜คํ”ˆ์†Œ์Šค ๋ฐ ํฌ๋กœ์Šคํ”Œ๋žซํผ ๊ฐœ๋ฐœ์ด ๊ฐ€๋Šฅ

3. ๊ฐ•ํ•œ ํ˜•์‹(Strongly Typed) ์–ธ์–ด

  • ๋ณ€์ˆ˜ ํƒ€์ž…์„ ๋ช…ํ™•ํ•˜๊ฒŒ ์ง€์ •ํ•ด์•ผ ํ•˜๋ฉฐ, ์ปดํŒŒ์ผ ์‹œ ํƒ€์ž… ๊ฒ€์‚ฌ๋ฅผ ์ˆ˜ํ–‰
  • ๋Ÿฐํƒ€์ž„ ์˜ค๋ฅ˜๋ฅผ ์ค„์ด๊ณ  ์•ˆ์ •์ ์ธ ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Œ

4. ์ž๋™ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ (Garbage Collection)

  • GC(Garbage Collector)๊ฐ€ ์ž๋™์œผ๋กœ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ด€๋ฆฌํ•ด ์ฃผ๋ฏ€๋กœ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ ํ•ด์ œ ์ž‘์—…์„ ์ง์ ‘ ํ•  ํ•„์š” ์—†์Œ
  • ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜๋ฅผ ๋ฐฉ์ง€ํ•˜๊ณ  ํšจ์œจ์ ์ธ ์ž์› ๊ด€๋ฆฌ๋ฅผ ์ œ๊ณต

5. ๋‹ค์–‘ํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํŒจ๋Ÿฌ๋‹ค์ž„ ์ง€์›

  • ์ ˆ์ฐจ ์ง€ํ–ฅ(Procedural) + ๊ฐ์ฒด ์ง€ํ–ฅ(OOP) + ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ(FP) ํ˜ผํ•ฉ ๊ฐ€๋Šฅ
  • LINQ(Language Integrated Query)๋ฅผ ํ†ตํ•ด SQL ์Šคํƒ€์ผ์˜ ์ฟผ๋ฆฌ ๋ฌธ๋ฒ• ์ง€์›

.NET FRAMEWORK

๐Ÿ’ก .NET ํ”„๋ ˆ์ž„์›Œํฌ๋Š” ๋งˆ์ดํฌ๋กœ์†Œํ”„ํŠธ(Microsoft)์—์„œ ๊ฐœ๋ฐœํ•œ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ ํ”Œ๋žซํผ ์ž…๋‹ˆ๋‹ค.
์ฃผ๋กœ C#, VB.NET, F# ๊ฐ™์€ ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Windows ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜, ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜, ๊ฒŒ์ž„, ํด๋ผ์šฐ๋“œ ์„œ๋น„์Šค ๋“ฑ์„ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๋„๋ก ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

NET ํ”„๋ ˆ์ž„์›Œํฌ์˜ ์ฃผ์š” ํŠน์ง•

1. CLR (Common Language Runtime, ๊ณตํ†ต ์–ธ์–ด ๋Ÿฐํƒ€์ž„)

  • .NET ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰๋˜๋Š” ๊ณตํ†ต ์‹คํ–‰ ํ™˜๊ฒฝ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  • ์ž๋™ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ(Garbage Collection, GC), ์˜ˆ์™ธ ์ฒ˜๋ฆฌ, ๋ณด์•ˆ ๊ธฐ๋Šฅ ๋“ฑ์„ ์ˆ˜ํ–‰ํ•˜์—ฌ ์•ˆ์ •์ ์ธ ์‹คํ–‰์„ ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค.

2. BCL (Base Class Library, ๊ธฐ๋ณธ ํด๋ž˜์Šค ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ)

  • ํŒŒ์ผ ์ž…์ถœ๋ ฅ, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ, ๋„คํŠธ์›Œํฌ ํ†ต์‹ , ์ปฌ๋ ‰์…˜(List, Dictionary ๋“ฑ) ๋“ฑ์˜ ๊ธฐ๋ณธ์ ์ธ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ž…๋‹ˆ๋‹ค.
  • ๊ฐœ๋ฐœ์ž๋Š” ๊ธฐ๋ณธ์ ์ธ ๊ธฐ๋Šฅ์„ ์ง์ ‘ ๊ตฌํ˜„ํ•  ํ•„์š” ์—†์ด ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

3. ๋‹ค์–‘ํ•œ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ๊ฐœ๋ฐœ ์ง€์›

  • ๋ฐ์Šคํฌํ†ฑ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ (WPF, Windows Forms)
  • ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ (ASP.NET, ASP.NET MVC)
  • ๋ชจ๋ฐ”์ผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ (Xamarin, .NET MAUI)
  • ๊ฒŒ์ž„ ๊ฐœ๋ฐœ (Unity ์—”์ง„ ํ™œ์šฉ)
  • ํด๋ผ์šฐ๋“œ ์„œ๋น„์Šค (Microsoft Azure ์—ฐ๊ณ„ ๊ฐ€๋Šฅ)

4. ๊ฐ•๋ ฅํ•œ ๋ณด์•ˆ ๊ธฐ๋Šฅ

  • ์ฝ”๋“œ ์‹คํ–‰ ์‹œ ๊ถŒํ•œ ๊ด€๋ฆฌ์™€ ๋ณด์•ˆ ๊ฒ€์ฆ์„ ์ˆ˜ํ–‰ํ•˜์—ฌ ๋ณด์•ˆ์„ฑ์„ ๋†’์ž…๋‹ˆ๋‹ค.
  • ์•…์„ฑ ์ฝ”๋“œ ์‹คํ–‰์„ ๋ฐฉ์ง€ํ•˜๊ณ , ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ํ™˜๊ฒฝ์—์„œ๋งŒ ์ฝ”๋“œ๊ฐ€ ์‹คํ–‰๋  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

5. ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ(OOP) ์ง€์›

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

ํ”„๋กœ์ ํŠธ ์‹คํ–‰์„ ์œ„ํ•œ VISUALSTUDIO ์„ค์น˜

๋น„์ฃผ์–ผ์ŠคํŠœ๋””์˜คhttps://visualstudio.microsoft.com/ko/vs/community/

์ปค๋ฎค๋‹ˆํ‹ฐ๋ฒ„์ „ ๋‹ค์šด.(ํ•™์Šต์šฉ๋„๋กœ ๋ฌด๋ฃŒ.)

etc-image-0

๋‹ท๋„ทํ”„๋ ˆ์ž„์›Œํฌ ์‚ฌ์šฉ์„ ์œ„ํ•œ ์ถ”๊ฐ€ ์„ค์น˜

etc-image-1

ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ

etc-image-2
etc-image-3
etc-image-4


C# ํ”„๋กœ๊ทธ๋ž˜๋ฐ

using System; // C# ๊ธฐ๋ณธ ๋„ค์ž„์ŠคํŽ˜์ด์Šค(System) ํฌํ•จ
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp1 // ๋„ค์ž„์ŠคํŽ˜์ด์Šค ์„ ์–ธ (์ฝ”๋“œ์˜ ๋…ผ๋ฆฌ์  ๊ทธ๋ฃน์„ ๋งŒ๋“ฆ)
{
    // Car ํด๋ž˜์Šค ์„ ์–ธ
    class Car
    {
        // ํ•„๋“œ (๋ณ€์ˆ˜) ์„ ์–ธ
        public string name;  // ์ฐจ ์ด๋ฆ„
        public string color; // ์ฐจ ์ƒ‰์ƒ
        public int price;    // ์ฐจ ๊ฐ€๊ฒฉ

        // ์ฐจ ์ •๋ณด๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ๋ฉ”์„œ๋“œ
        public void PrintCarInfo()
        {
            Console.WriteLine("์ฐจ ์ด๋ฆ„: " + name);
            Console.WriteLine("์ฐจ ์ƒ‰์ƒ: " + color);
            Console.WriteLine("์ฐจ ๊ฐ€๊ฒฉ: " + price);
        }
    }

    // ํ”„๋กœ๊ทธ๋žจ์˜ ์ง„์ž…์ (Main ๋ฉ”์„œ๋“œ๊ฐ€ ์žˆ๋Š” ํด๋ž˜์Šค)
    class Program
    {
        static void Main(string[] args)
        {
            // System์„ ์ง์ ‘ ์‚ฌ์šฉํ•˜์—ฌ Console ํ˜ธ์ถœ
            System.Console.WriteLine("System์„ ์ด์šฉํ•œ ํ˜ธ์ถœ"); // System ๋„ค์ž„์ŠคํŽ˜์ด์Šค๋ฅผ ๋ช…์‹œ์ ์œผ๋กœ ์‚ฌ์šฉ
            Console.WriteLine("Hello World!"); // using System;์ด ํฌํ•จ๋˜์–ด ์žˆ์–ด Console๋งŒ ์‚ฌ์šฉ ๊ฐ€๋Šฅ

            // Car ๊ฐ์ฒด ์ƒ์„ฑ ๋ฐ ํ•„๋“œ ๊ฐ’ ์„ค์ •
            Car myCar = new Car();
            myCar.name = "๋žŒ๋ณด๋ฅด๊ธฐ๋‹ˆ";
            myCar.color = "๋นจ๊ฐ•";
            myCar.price = 500000000;

            // ์ฐจ ์ •๋ณด ์ถœ๋ ฅ ๋ฉ”์„œ๋“œ ํ˜ธ์ถœ
            myCar.PrintCarInfo();
        }
    }
}

etc-image-5

 

๋ฐ˜์‘ํ˜•
LIST

'ํ”„๋กœ์ ํŠธ > c#' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

๋„ค์ž„์ŠคํŽ˜์ด์Šค๋ž€  (0) 2025.03.03