S T U D Y/C#

[Study C#] C# ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด ์ดํ•ดํ•˜๊ธฐ

Junesker 2021. 10. 1. 00:07
๋ฐ˜์‘ํ˜•

1๋ถ€ C#์ค€๋น„ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด ์ดํ•ดํ•˜๊ธฐ

ํ•ญ์ƒ ์ƒˆ๋กœ์šด ์–ธ์–ด๋ฅผ ์ ‘ํ• ๋•Œ๋ฉด ๋ญ”์ง€ ๋ชจ๋ฅผ ์–ด๋ ค์›€์ด ์žˆ์—ˆ๋‹ค. ์›๋ž˜ ์ต์ˆ™ํ•˜๊ฒŒ ์‚ฌ์šฉํ•˜๊ณ  ๊ณต๋ถ€ํ–ˆ๋˜ ์–ธ์–ด๊ฐ€ ์•„๋‹ˆ๋ผ์„œ ๊ทธ๋Ÿฐ์ง€ ์Šต๋“ํ•˜๋Š”๋ฐ์— ๊ต‰์žฅํžˆ ๋ถˆํŽธํ•จ๊ณผ ์–ด๋ ค์›€์ด ์žˆ์—ˆ๋Š”๋ฐ ๋จผ์ € ์–ธ์–ด๋ฅผ ์ดํ•ดํ•˜๋ ค๊ณ  ํ•˜๊ณ  ์‹œ์ž‘ํ•˜๊ฒŒ๋˜๋ฉด ๊ทธ๋ ‡๊ฒŒ ๋ฐ›์•„๋“ค์ด๋Š”๋ฐ์—๋„ ์Šต๋“ํ•˜๋Š”๋ฐ์—๋„ ๊ต‰์žฅํžˆ ์Šค๋ฌด์Šคํ•ด์กŒ๋˜ ๊ฒฝํ—˜์ด ์žˆ๋‹ค. ๊ทธ๋ž˜์„œ C#๊ต๊ณผ์„œ์—์„œ๋„ ์ œ์ผ ๋จผ์ € ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด ์ดํ•ดํ•˜๊ธฐ๋ฅผ ์ œ์ผ ์ฒซ๋ฒˆ์งธ ์ˆœ์„œ๋กœ ์ •ํ–ˆ๋‚˜๋ณด๋‹ค.

 

 

 

 


 

 

 

 

 

C# ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด ์ดํ•ดํ•˜๊ธฐ

 

 

 

 

1.  C# ์†Œ๊ฐœํ•˜๊ธฐ

 

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

 

๋งˆ์ดํฌ๋กœ์†Œํ”„ํŠธ์—์„œ C# ์„ ์ „ํฌ๊ณ 

๊ด€๋ จ๊ธฐ์‚ฌ ๋งํฌ

 

 

 

 

 

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

 

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

 

์•ค๋”์Šค ํ—ค์ผ์Šค๋ฒ„๊ทธ

์ด๋ฏธ์ง€ ์ฐธ๊ณ 

 

C# 5.0 ๋ฒ„์ „๊นŒ์ง€๋Š” ๋ฒ„์ „๋งˆ๋‹ค ๋ณ€ํ™”๊ฐ€ ๋งŽ์•˜์ง€๋งŒ, 6.0 ๋ฒ„์ „๋ถ€ํ„ฐ๋Š” ์ž‘์ง€๋งŒ ๊ฐœ๋ฐœ์ž๋“ค์—๊ฒŒ ๋„์›€์„ ์ฃผ๋Š” ๊ธฐ๋Šฅ์„ ๋‹ค์ˆ˜ ์ถ”๊ฐ€ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์—…๋ฐ์ดํŠธ ํ•˜๊ณ  ์žˆ๋‹ค.

 

 

 

 

 

C# ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด ํŠน์ง•

 

  • C#์€ .NET(๋‹ท๋„ท)์„ ์œ„ํ•œ ๋งŽ์€ ์–ธ์–ด ์ค‘ ํ•˜๋‚˜๋กœ, ๋งˆ์ดํฌ๋กœ์†Œํ”„ํŠธ์˜ ๋‹ท๋„ท ํ”Œ๋žซํผ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ๋‹ค.
  • ์ ˆ์ฐจ์  ์–ธ์–ด์™€ ๊ฐœ์ฒด ์ง€ํ–ฅ์  ์–ธ์–ด์˜ ํŠน์ง•, ๊ทธ๋ฆฌ๊ณ  ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์Šคํƒ€์ผ์„ ์ œ๊ณตํ•˜๋Š” ๋‹ค์ค‘ ํŒจ๋Ÿฌ๋‹ค์ž„ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์ด๋‹ค.
  • C#์€ C,C++,Java,Javascript์™€ ๊ธฐ์ดˆ ๋ฌธ๋ฒ•์ด ๋น„์Šทํ•˜๋‹ค.
  • C#์€ ์ž๋™์œผ๋กœ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ด€๋ฆฌํ•œ๋‹ค.
  • C#์€ ์ปดํŒŒ์ผ ๊ธฐ๋ฐ˜ ์–ธ์–ด์ด๋‹ค.
  • C#์€ C๋‚˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์™€ ๋‹ฌ๋ฆฌ ์ „์—ญ ํ•จ์ˆ˜๋‚˜ ๋ณ€์ˆ˜๊ฐ€ ์—†๊ณ , ๋ชจ๋‘ ํด๋ž˜์Šค ์•ˆ์—์„œ ์ƒ์„ฑ๋œ๋‹ค.
  • C#์€ ๊ฐ•๋ ฅํ•œ ํ˜•์‹์˜ ์–ธ์–ด์ด๋‹ค.
  • C#์€ ์ œ๋„ค๋ฆญ๊ณผ LINQ์˜ ํŽธ๋ฆฌํ•œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค.

 

 

 

 

 

C# ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์˜์—ญ

  • ๋ฐ์Šคํฌํ†ฑ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ
  • ์›น ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ
  • ๋ชจ๋ฐ”์ผ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ
  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ
  • ๊ฒŒ์ž„ ํ”„๋กœ๊ทธ๋žจ
  • ํด๋ผ์šฐ๋“œ ํ”„๋กœ๊ทธ๋žจ
  • IoT ํ”„๋กœ๊ทธ๋žจ

C#์˜ ๋…ํŠนํ•œ ํŠน์ง• ์ค‘ ํ•˜๋‚˜๋Š” 100% ํ•˜์œ„ ํ˜ธํ™˜์„ฑ์œผ๋กœ 1.0๋ฒ„์ „๋ถ€ํ„ฐ 8.0 ๊ทธ ์ด์ƒ์˜ ๋ฒ„์ „๊นŒ์ง€ ๋‚ฎ์€ ๋ฒ„์ „์—์„œ ์ง€์›ํ•˜๋˜ ๊ธฐ๋Šฅ์ด ๋†’์€ ๋ฒ„์ „์œผ๋กœ ์˜ฌ๋ผ๊ฐ€๋ฉด์„œ ์—†์–ด์ง„ ๊ฒƒ์ด ๋‹จ ํ•˜๋‚˜๋„ ์—†๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. (๋ฒ„์ „์ด ๋†’์„์ˆ˜๋ก ๋‚ฎ์€ ๋ฒ„์ „์˜ ๋ชจ๋“  ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์žฅ์ ์ด ์žˆ๋Š”๊ฒƒ ๊ฐ™๋‹ค.)

 

 

 

 

 

2.  ๋‹ท๋„ท ์ƒํƒœ๊ณ„

 

๋‹ท๋„ท(.NET)์€ ์†Œํ”„ํŠธ์›จ์–ด ํ”„๋ ˆ์ž„์›Œํฌ๋กœ, ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์˜ ๊ฐœ๋ฐœ ์†๋„๋ฅผ ๋†’์ด๋Š” ๋ฐ ๋„์›€์ด ๋˜๋Š” API ๋ฐ ์„œ๋น„์Šค ๋ชจ์Œ์ด๋‹ค. ๋‹ท๋„ท ํ”„๋ ˆ์ž„์›Œํฌ, ๋‹ท๋„ท ์ฝ”์–ด, ๋‹ท๋„ท ์Šคํƒ ๋‹ค๋“œ์ฒ˜๋Ÿผ ๋‹ท๋„ท์œผ๋กœ ์‹œ์ž‘ํ•˜๋Š” ์šฉ์–ด๋“ค์€ ๋ชจ๋‘ ๋‹ท๋„ท ์ƒํƒœ๊ณ„์— ํฌํ•จ๋œ๋‹ค. C#์€ ๋‹ท๋„ท ์ƒํƒœ๊ณ„์˜ ๋ชจ๋“  ์˜์—ญ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์ด๋‹ค. C#์„ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ๋„ ๋‹ท๋„ท์˜ ๋ชจ๋“  ์˜์—ญ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ณ  LINQ ๊ธฐ๋Šฅ์œผ๋กœ ์‰ฝ๊ฒŒ ํ”„๋กœ๊ทธ๋ž˜๋ฐํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. (ํ™•์žฅ์„ฑ์ด ์ข‹์€ ๋“ฏํ•˜๋‹ค.)

 

 

 

 

 

๋‹ท๋„ท ํ”„๋ ˆ์ž„์›Œํฌ

 

๋‹ท๋„ท ํ”„๋ ˆ์ž„์›Œํฌ๋Š” ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ๋งŒ๋“œ๋Š” ๋˜ ๋‹ค๋ฅธ ์ข…๋ฅ˜์˜ ์†Œํ”„ํŠธ์›จ์–ด์ด๋‹ค. ์œˆ๋„ ๊ธฐ๋ฐ˜ ์šด์˜ ์ฒด์ œ์— ์„ค์น˜๋˜๊ณ  ASP.NET, Windows Forms, WPF ๋“ฑ ๊ธฐ์ˆ ์„ ํฌํ•œํ•œ๋‹ค. C#์€ ์ด๋Ÿฌํ•œ ๋‹ท๋„ท ํ”„๋ ˆ์ž„์›Œํฌ์˜ ์ผ๋ถ€๋กœ, ๋‹ท๋„ท ํ”„๋ ˆ์ž„์›Œํฌ๋Š” ์‹คํ–‰ ํ™˜๊ฒฝ์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค.

 

Windows Forms๊ณผ WPF๋Š” ํ˜„์žฌ ํด๋ผ์ด์–ธํŠธ, ์„œ๋ฒ„๋ฅผ ๊ฐœ๋ฐœํ•˜๋Š”๋ฐ์—๋„ ์‚ฌ์šฉํ•˜๊ณ  WPF๋กœ ์„œ๋น„์Šค๋ฅผ ์ฃผ๊ณ ๋ฐ›์„๋•Œ์—๋„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค.

 

 

 

๋‹ท๋„ท ์ฝ”์–ด

 

๋‹ท๋„ท ์ฝ”์–ด๋Š” ํฌ๋กœ์Šค ํ”Œ๋žซํผ์„ ์ง€์›ํ•˜๊ณ  ASP.NET Core, Blazor, Windows Forms, WPF ๋“ฑ ๊ธฐ์ˆ ์„ ํฌํ•จํ•œ๋‹ค. ์„œ๋กœ ๋‹ค๋ฅธ ๋ฒ„์ „์„ ๋จธ์‹  ํ•˜๋‚˜์—์„œ ํ•จ๊ป˜ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ๋‹ท๋„ท ํ”„๋ ˆ์ž„์›Œํฌ ๊ธฐ๋ฐ˜๋ณด๋‹ค ์„ฑ๋Šฅ ํ–ฅ์ƒ์— ์ค‘์ ์„ ๋‘๊ณ  ์žˆ๋‹ค.

 

Blazor๋Š” ์ฒ˜์Œ๋“ค์–ด๋ณด๋Š”๊ฒƒ ๊ฐ™๋‹ค. ๋‚˜์ค‘์— ์ด๊ฒƒ๋„ ์ฐพ์•„๋ณด๊ณ  ๋‚ด๊ฑธ๋กœ ๋งŒ๋“ค์–ด๋‘ฌ์•ผ๊ฒ ๋‹ค.

 

 

 

์ž๋งˆ๋ฆฐ

 

C# ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ชจ๋ฐ”์ผ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ์ œ์ž‘ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋•Œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ์ˆ ์ด ์ž๋งˆ๋ฆฐ์ด๋‹ค. ์ž๋งˆ๋ฆฐ์„ ์‚ฌ์šฉํ•˜๋ฉด iOS, ์•ˆ๋“œ๋กœ์ด๋“œ ๊ธฐ๋ฐ˜ ๋ชจ๋ฐ”์ผ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ C#๊ณผ XAML๊ธฐ์ˆ ๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.

 

์ž๋งˆ๋ฆฐ? ์ด๋ผ๋Š” ์šฉ์–ด์™€ ๊ฐœ๋…์€ ๋‚œ์ƒ ์ฒ˜์Œ์ด๋‹ค. ์œ„์™€ ๊ฐ™์€ ์„ค๋ช…์ฒ˜๋Ÿผ ๊ทธ๋ ‡๋‹ค๊ณ  ํ•œ๋‹ค. ๊ฐ€๋ณ๊ฒŒ ์•Œ๊ณ ๋งŒ ์žˆ์ž.

 

 

 

๋‹ท๋„ท ์Šคํƒ ๋‹ค๋“œ

 

๋‹ท๋„ท ํ”„๋ ˆ์ž„์›Œํฌ, ๋‹ท๋„ท ์ฝ”์–ด, ์ž๋งˆ๋ฆฐ ์˜์—ญ์—์„œ ๊ณตํ†ต์œผ๋กœ ์‚ฌ์šฉํ•  ์ฝ”๋“œ๋ฅผ ๋ชจ์•„ ํ”„๋กœ์ ํŠธ ํ•˜๋‚˜๋กœ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๊ฒƒ์„ ๋‹ท๋„ท ์Šคํƒ ๋‹ค๋“œ๋ผ๊ณ  ํ•œ๋‹ค.

 

 

 

 

 

์œ ๋‹ˆํ‹ฐ

 

๋‹ท๋„ท ์ƒํƒœ๊ณ„์— ์ง์ ‘์ ์œผ๋กœ ํฌํ•จ๋˜์ง€๋Š” ์•Š์ง€๋งŒ, ์œ ๋ช…ํ•œ ๊ฒŒ์ž„ ์—”์ง„์ธ ์œ ๋‹ˆํ‹ฐ์—์„œ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ์–ธ์–ด ์ค‘ ํ•˜๋‚˜๊ฐ€ C#์ด๋‹ค. ์œ ๋‹ˆํ‹ฐ ์Šคํฌ๋ฆฝํŠธ๋Š” C# ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

 

์œ ๋‹ˆํ‹ฐ๋Š” ๊ฒŒ์ž„ ๊ฐœ๋ฐœํ•˜๋Š” ์นœ๊ตฌ๋“ค์„ ํ†ตํ•ด์„œ ์ตํžˆ ์•Œ๊ณ  ์žˆ๋Š” ๊ฐœ๋…์ด๋ผ ๊ทธ๋Ÿฐ์ง€ ์ต์ˆ™ํ•˜๋‹ค.

 

 

 

๋‹ท๋„ท์€ ๋‚ด๋ถ€์ ์œผ๋กœ CLR(๋Ÿฐํƒ€์ž„ ์—”์ง„์œผ๋กœ ๋‹ท๋„ท์˜ ๋ชจ๋“  ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ๋Œ๋ฆฌ๋Š” ์—”์ง„ ์—ญํ• ), FCL(๋‹ท๋„ท ๊ฐœ๋ฐœ์— ํ•„์š”ํ•œ ํ•„์ˆ˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํด๋ž˜์Šค์˜ ์ง‘ํ•ฉ)๋กœ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ๋‹ค.

 


๊ธฐ์ดˆ์—์„œ ํ™œ์šฉ๊นŒ์ง€! ๊ธฐ๋ณธ๊ธฐ๋ฅผ ํƒ„ํƒ„ํ•˜๊ฒŒ ๋‹ค์ง€๋Š” C# ์ž…๋ฌธ์„œ - 'C#๊ต๊ณผ์„œ'์˜ ๋‚ด์šฉ์„ ์ฐธ๊ณ ํ•˜์—ฌ ์ž‘์„ฑํ•˜๊ณ  ์žˆ์Œ์„ ์•Œ๋ ค๋“œ๋ฆฝ๋‹ˆ๋‹ค. 
๋ฐ˜์‘ํ˜•