C#

C# - C#๊ณผ .NET์˜ ์‹œ์ž‘, ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ๊ตฌ์ถ•๊ณผ Hello World

Dev_Jen 2025. 7. 7. 11:43
๋ฐ˜์‘ํ˜•

๐Ÿ“˜ ์ฑ•ํ„ฐ 1. C# ์†Œ๊ฐœ์™€ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ์„ค์ •


๐Ÿงฉ C# ์–ธ์–ด์˜ ๊ฐœ์š”

C#์€ ๋งˆ์ดํฌ๋กœ์†Œํ”„ํŠธ์—์„œ ๊ฐœ๋ฐœํ•œ ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์ด๋‹ค.
ํ˜•์‹์— ์—„๊ฒฉํ•˜๋ฉฐ, ์•ˆ์ „์„ฑ๊ณผ ํšจ์œจ์„ฑ์„ ๊ณ ๋ คํ•œ ๊ตฌ์กฐ๋ฅผ ๊ฐ–์ถ”๊ณ  ์žˆ๋‹ค.
C, C++, Java์™€ ์œ ์‚ฌํ•œ ๋ฌธ๋ฒ•์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋ฉฐ, ๋‹ค์–‘ํ•œ ํ”Œ๋žซํผ์—์„œ ์‹คํ–‰ ๊ฐ€๋Šฅํ•˜๋‹ค.

์ฃผ์š” ํŠน์ง•

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

๐Ÿ› ๏ธ .NET ํ”„๋ ˆ์ž„์›Œํฌ

.NET์€ C# ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰๋˜๋Š” ๊ธฐ๋ฐ˜ ํ”Œ๋žซํผ์ด๋‹ค.
C#์œผ๋กœ ์ž‘์„ฑ๋œ ์ฝ”๋“œ๋Š” ์ค‘๊ฐ„ ์–ธ์–ด(IL)๋กœ ๋จผ์ € ์ปดํŒŒ์ผ๋˜๋ฉฐ, ์‹คํ–‰ ์‹œ์ ์— CLR(Common Language Runtime)์ด ์ด๋ฅผ ๊ธฐ๊ณ„์–ด๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ์‹คํ–‰ํ•œ๋‹ค.
์ด ๊ณผ์ •์—์„œ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ, ์˜ˆ์™ธ ์ฒ˜๋ฆฌ, ๋ณด์•ˆ ๋“ฑ์˜ ๊ธฐ๋Šฅ์„ ์ž๋™์œผ๋กœ ์ œ๊ณต๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค.


๐Ÿ’ป Visual Studio ์„ค์น˜ ๋ฐ ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ

Visual Studio๋Š” C# ๊ฐœ๋ฐœ์— ๊ฐ€์žฅ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” ํ†ตํ•ฉ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ(IDE)์ด๋‹ค.

์„ค์น˜ ์ ˆ์ฐจ

  • Visual Studio ๊ณต์‹ ํ™ˆํŽ˜์ด์ง€์—์„œ ์„ค์น˜ ํŒŒ์ผ์„ ๋‹ค์šด๋กœ๋“œํ•œ๋‹ค.
  • ์„ค์น˜ ์‹œ .NET ๋ฐ์Šคํฌํ†ฑ ๊ฐœ๋ฐœ ์›Œํฌ๋กœ๋“œ๋ฅผ ์„ ํƒํ•œ๋‹ค.
  • ์„ค์น˜ ์™„๋ฃŒ ํ›„ ์ดˆ๊ธฐ ์„ค์ •์„ ์ง„ํ–‰ํ•œ๋‹ค.

์ฝ˜์†” ์•ฑ ์ƒ์„ฑ ๋ฐฉ๋ฒ•

  • Visual Studio ์‹คํ–‰ → ์ƒˆ ํ”„๋กœ์ ํŠธ ๋งŒ๋“ค๊ธฐ
  • C# ์ฝ˜์†” ์•ฑ ์„ ํƒ
  • .NET 6.0 ์„ ํƒ + ์ตœ์ƒ์œ„ ๋ฌธ ์‚ฌ์šฉ ์•ˆํ•จ ์„ค์ •
  • ํ”„๋กœ์ ํŠธ ์ด๋ฆ„ ๋ฐ ๊ฒฝ๋กœ ์„ค์ • ํ›„ ์ƒ์„ฑ

๐Ÿ–จ๏ธ Hello World ์ถœ๋ ฅํ•˜๊ธฐ

์•„๋ž˜๋Š” C#์œผ๋กœ ์ž‘์„ฑํ•œ ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ์ฝ˜์†” ์ถœ๋ ฅ ํ”„๋กœ๊ทธ๋žจ์ด๋‹ค.

using System;

namespace HelloWorld
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");
        }
    }
}

๊ตฌ์„ฑ ์š”์†Œ ์„ค๋ช…

  • using System;: Console ํด๋ž˜์Šค ๋“ฑ ๊ธฐ๋ณธ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ ์„ ์–ธ์ด๋‹ค.
  • namespace HelloWorld: ์ฝ”๋“œ ์˜์—ญ์„ ๊ตฌ๋ถ„ํ•˜๋Š” ๋…ผ๋ฆฌ์  ๋‹จ์œ„์ด๋‹ค.
  • class Program: ์‹คํ–‰ ๋กœ์ง์„ ๋‹ด๋Š” ํด๋ž˜์Šค์ด๋‹ค.
  • static void Main(string[] args): ํ”„๋กœ๊ทธ๋žจ์˜ ์ง„์ž…์ ์ด๋‹ค.
  • Console.WriteLine(...): ์ฝ˜์†”์— ๋ฌธ์ž์—ด์„ ์ถœ๋ ฅํ•˜๊ณ  ์ค„๋ฐ”๊ฟˆ์„ ํฌํ•จํ•œ๋‹ค.

โš™๏ธ ์ž๋™์™„์„ฑ๊ณผ ๋ณด์กฐ ๊ธฐ๋Šฅ

Visual Studio๋Š” IntelliSense๋ผ๋Š” ์ž๋™์™„์„ฑ ๊ธฐ๋Šฅ๊ณผ ์ฝ”๋“œ ํ…œํ”Œ๋ฆฟ ๊ธฐ๋Šฅ์„ ์ง€์›ํ•œ๋‹ค.

์ž๋™์™„์„ฑ

  • Tab ํ‚ค๋ฅผ ์‚ฌ์šฉํ•ด ํด๋ž˜์Šค๋ช…์ด๋‚˜ ๋ฉ”์„œ๋“œ๋ช…์„ ์ž๋™์œผ๋กœ ์™„์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.
  • Ctrl + Space๋ฅผ ๋ˆ„๋ฅด๋ฉด ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ฉ”์„œ๋“œ ๋ชฉ๋ก, ์„ค๋ช…, ์ธ์ž ์ •๋ณด๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

์ฝ”๋“œ ํ…œํ”Œ๋ฆฟ

  • for, if, while ๋“ฑ ํ‚ค์›Œ๋“œ ์ž…๋ ฅ ํ›„ Tab์„ ๋‘ ๋ฒˆ ๋ˆ„๋ฅด๋ฉด ๊ธฐ๋ณธ ๊ตฌ์กฐ๊ฐ€ ์ž๋™ ์ƒ์„ฑ๋œ๋‹ค.

๐Ÿ“ฃ ๊ฐ•์˜์—์„œ์˜ ํ•™์Šต ํƒœ๋„์™€ ์กฐ์–ธ

๋ฌด์—‡์„ ๋ฐฐ์šฐ๋Š”๊ฐ€๋ณด๋‹ค ์™œ ๋ฐฐ์šฐ๋Š”๊ฐ€์— ์ง‘์ค‘ํ•ด์•ผ ํ•œ๋‹ค.
๋ฌธ๋ฒ•์„ ๋‹จ์ˆœํžˆ ์™ธ์šฐ๊ธฐ๋ณด๋‹ค๋Š” ๊ทธ ๋ชฉ์ ๊ณผ ๋งฅ๋ฝ์„ ์ดํ•ดํ•˜๋Š” ๊ฒƒ์ด ์žฅ๊ธฐ์ ์ธ ์‹ค๋ ฅ์œผ๋กœ ์ด์–ด์ง„๋‹ค.

๋˜ํ•œ, ์™„๋ฒฝํ•œ ์ฝ”๋“œ๋ฅผ ํ•œ ๋ฒˆ์— ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ๋น ๋ฅด๊ฒŒ ์‹œ๋„ํ•˜๊ณ  ์‹คํŒจํ•˜๋ฉด์„œ ์ˆ˜์ •ํ•˜๋Š” ๊ฒฝํ—˜์ด ์ค‘์š”ํ•˜๋‹ค.
๋งŽ์ด ์จ๋ณด๊ณ , ์ง์ ‘ ์—๋Ÿฌ๋ฅผ ๊ฒช๊ณ  ํ•ด๊ฒฐํ•˜๋ฉด์„œ ์„ฑ์žฅํ•  ์ˆ˜ ์žˆ๋‹ค.

 

โœ…

์‚ฌ์‹ค ๊ธฐ์ดˆ๋Š” ์ด๋ฏธ ์•Œ๊ณ ์žˆ์ง€๋งŒ ๋‹ค์‹œ ์ƒ๊ธฐ ์‹œํ‚จ๋‹ค๋Š” ๋ชฉ์ ์œผ๋กœ ํ•˜๋‚˜์”ฉ ๋‹ค์‹œ ๊ณต๋ถ€ํ•ด๋ด์•ผ๊ฒ ๋‹ค. ๊ฐœ๋ฐœ์ž๋Š” ๊ฒธ์†ํ•  ์ˆ˜ ๋ฐ–์— ์—†๋Š” ์ง์—…์ด๊ธฐ ๋•Œ๋ฌธ์— ํ•ญ์ƒ ๊ฒธ์†ํ•˜์ž..

๋ฐ˜์‘ํ˜•