[Study C#] C# ํ๋ก๊ทธ๋๋ฐ ์ธ์ด ์ดํดํ๊ธฐ
ํญ์ ์๋ก์ด ์ธ์ด๋ฅผ ์ ํ ๋๋ฉด ๋ญ์ง ๋ชจ๋ฅผ ์ด๋ ค์์ด ์์๋ค. ์๋ ์ต์ํ๊ฒ ์ฌ์ฉํ๊ณ ๊ณต๋ถํ๋ ์ธ์ด๊ฐ ์๋๋ผ์ ๊ทธ๋ฐ์ง ์ต๋ํ๋๋ฐ์ ๊ต์ฅํ ๋ถํธํจ๊ณผ ์ด๋ ค์์ด ์์๋๋ฐ ๋จผ์ ์ธ์ด๋ฅผ ์ดํดํ๋ ค๊ณ ํ๊ณ ์์ํ๊ฒ๋๋ฉด ๊ทธ๋ ๊ฒ ๋ฐ์๋ค์ด๋๋ฐ์๋ ์ต๋ํ๋๋ฐ์๋ ๊ต์ฅํ ์ค๋ฌด์คํด์ก๋ ๊ฒฝํ์ด ์๋ค. ๊ทธ๋์ C#๊ต๊ณผ์์์๋ ์ ์ผ ๋จผ์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด ์ดํดํ๊ธฐ๋ฅผ ์ ์ผ ์ฒซ๋ฒ์งธ ์์๋ก ์ ํ๋๋ณด๋ค.
C# ํ๋ก๊ทธ๋๋ฐ ์ธ์ด ์ดํดํ๊ธฐ
1. C# ์๊ฐํ๊ธฐ
C#์ ๋ง์ดํฌ๋ก์ํํธ์์ ๋ง๋ ๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ค. C# ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฐ์คํฌํฑ, ์น, ๋ชจ๋ฐ์ผ, ๊ฒ์ ํ๋ก๊ทธ๋จ, ์ฝ์, ์์ฉํ๋ก๊ทธ๋จ ๋ฑ ๋ถ์ผ๋ฅผ ๊ฐ๋ฆฌ์ง ์๊ณ ํ๋ก๊ทธ๋จ์ ์์ฑํ ์ ์๋ค. 2000๋ 7์์ ๋ฐํํ์ผ๋ฉฐ, ์ ์ธ๊ณ ๊ฐ๋ฐ์๊ฐ ์ค๋ซ๋์ ์ฌ์ฉํ๊ณ ์๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด ์ค ํ๋์ด๋ค.
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#๊ต๊ณผ์'์ ๋ด์ฉ์ ์ฐธ๊ณ ํ์ฌ ์์ฑํ๊ณ ์์์ ์๋ ค๋๋ฆฝ๋๋ค.