-
C#์ ์ ์ฒด์ฑ
- Microsoft๊ฐ ๋ง๋ ํ๋์ ๋ค์ค ํจ๋ฌ๋ค์ ์ธ์ด (OOP, ํจ์ํ ํ๋ก๊ทธ๋๋ฐ ๋ฑ ์ง์)
- ๊ฐ๋ ฅํ ํ์ ์์คํ , ๊ฐ๊ฒฐํ๊ณ ์ฝ๊ธฐ ์ฌ์ด ๋ฌธ๋ฒ, ๊พธ์คํ ์งํ ๋ฐ ์คํ์์คํ
- ๋ค์ํ ํ๋ซํผ(Windows, Linux, Mac ๋ฑ)์์ ์คํ ๊ฐ๋ฅ, .NET ๊ธฐ๋ฐ
-
์ธ์ด ํน์ฑ
- ๊ฐ์ฒด์งํฅ, ์ ๋ค๋ฆญ, ๋๋ค, LINQ, async/await, ๋ฉ๋ชจ๋ฆฌ ์๋๊ด๋ฆฌ(๊ฐ๋น์ง ์ปฌ๋ ์ )
- ๊น๋ํ ํ๋กํผํฐ, immutable ๊ฐ์ฒด๋ฅผ ์ํ record, ๋ฉ์๋ ์ฐธ์กฐ(๋ธ๋ฆฌ๊ฒ์ดํธ)
- null ์์ ์ฑ, ํจํด ๋งค์นญ, ์ปฌ๋ ์ ํํ์ ๋ฑ ์ต์ ๋ฌธ๋ฒ ๋ค์ ์ง์
-
.NET ์ํ๊ณ
-
๊ฐ๋ ฅํ ๊ฐ๋ฐ ๋๊ตฌ
- Visual Studio(๋ํ IDE), VS Code, JetBrains Rider ๋ฑ ๋ค์ํ ๊ฐ๋ฐ ํ๊ฒฝ
- .NET CLI๋ก ํ๋ก์ ํธ ๊ด๋ฆฌ/๋น๋/ํ ์คํธ ์๋ํ ์ฉ์ด
- ๋ฐ์ด๋ ๋๋ฒ๊น , ๋ฆฌํฉํ ๋ง, ์ฝ๋ ๋ถ์ ๊ธฐ๋ฅ
-
๋ฌธ์์ ํ์ต ์๋ฃ
- Microsoft ๊ณต์๋ฌธ์(learn.microsoft.com) ๋ฐ ๋ฐฉ๋ํ ํํ ๋ฆฌ์ผ, C# ์ ์ฉ ์์ ๋ค์, ์ปค๋ฎค๋ํฐ ์ ๊ณต ์๋ฃ ํ๋ถ
- ์ ์ง์ ํ์ต ๊ฐ๋ฅ(์ด๋ณด์-์๋ จ์ ๋ชจ๋ ๋์)
-
์ปค๋ฎค๋ํฐ์ ์ฑ์ฅ์ฑ
- Microsoft ๊ณต์/๋น๊ณต์ ์ปค๋ฎค๋ํฐ, .NET Foundation, Reddit, Discord, ์ ์ธ๊ณ ๋ฐ์ ๊ณผ ํ์ฌ(Microsoft Build, .NET Conf)
- ์คํ์์ค ์ฐธ์ฌ, ํ๋ฐํ ๊ธฐ์ ํผ๋๋ฐฑ ๋ฌธํ
-
์ธ๊ธฐ์ ์์ฅ ์ํฉ
- TIOBE, Stack Overflow, PyPL ์ง์์์ ์์๊ถ ์ ์ง
- ์ํฐํ๋ผ์ด์ฆ, ์น, ๊ฒ์(Unity), iOS/Android, ๋น ๋ฐ์ดํฐ, AI ๋ฑ ์ทจ์ ์์ฅ ๊ฐ์ธ
- ์ฐ๋ด๋ ์์๊ถ(์ ๋ฝ/๋ฏธ๊ตญ ๊ธฐ์ค 10๋ง~30๋ง ๋ฌ๋ฌ๋)
-
ํ ์ธ์ด์์ ๋น๊ต
- Java: ์ ์ฌํ์ง๋ง C#์ด ๋ ์งํํ ๊ธฐ๋ฅ๊ณผ ์์ฐ์ฑ, ๋ ํ๋์ ์
- Python: C#์ด ์๋/์ ์ ํ์ /๋๊ท๋ชจ ์ฑ์ ๊ฐ์ , Python์ ์คํฌ๋ฆฝํ /๊ณผํ๊ณ์ฐ
- F#: ํจ์ํ ํ๋ก๊ทธ๋๋ฐ ํนํ, C#์ ๋ฒ์ฉ/์ํ๊ณ ํผ
- JS/TS: ์น ํ๋ก ํธ๋ JS, C#์ Blazor๋ก ๋์ฒด ๊ฐ๋ฅ, ๋ฐฑ์๋๋ C#์ด ์ฑ๋ฅ/๋๋ฒ๊น /ํด๋ง์์ ์ฐ์
-
๋ฏธ๋์ ์ ๋ง
- ์ง์์ ์ผ๋ก ํ์ ์ค(๋งค๋ ์ ๊ทธ๋ ์ด๋, ์ ๊ธฐ๋ฅ ์ถ์)
- ์ปค๋ฎค๋ํฐ์ ํ์ ํ๋ฉฐ, backwards compatibility(๊ธฐ์กด ์ฝ๋ ํธํ์ฑ)๋ ๋ณด์ฅ
- ๋ธ๋ ์ด์ (Blazor) ๋ฑ ์น/ํด๋ผ์ฐ๋๋ก ์์ญ ํ์ฅ
-
๊ฒฐ๋ก
- ์ฑ๋ฅ, ๊ฐ๋ ์ฑ, ์์ฐ์ฑ, ๋ค์ฌ๋ค๋ฅํจ, ์ํ๊ณ, ์ปค๋ฎค๋ํฐ, ๊ณ ์ฐ๋ด ๋ฑ์ ์ด์ ๋ก โ๋ง๋ฅ ์ธ์ดโ์ ๊ฐ๊น์
- ์ด๋ณด์-์ ๋ฌธ๊ฐ ๋ชจ๋์๊ฒ ์ถ์ฒํ ๋งํ ๊ท ํ ์กํ ์ธ์ด
-
๋ณด๋์ค: ์ฃผ์ ์ญ์ฌ
- 2000๋ ๋ ์ด ๋ฑ์ฅ โ C# 1.0 ~ 13.0๊น์ง ์งํ
- ์ ๋ค๋ฆญ, LINQ, async/await ๋ฑ ํ์ ๊ธฐ๋ฅ ์ฃผ๋, .NET Core/5/6/7/8/9๋ก ์ํ๊ณ ํ์ฅ
์ ์น๊ฐ ์์ ๋๋ฉด, ๊ณต๊ณต ๋ถ์ผ์์ ๋ ์ ํ ๋์ด ์๋ Hwp, Java ๊ฐ์ ๋ฅผ ํด์งํ๋ผ๊ณ ๊ตญ๋ฏผ ์ฒญ์ ๋ฃ์์๋ค.
C#์ ์ ๋ง ์์ ์ ์ด๊ณ ๋ง๋ฅ์ธ ์ธ์ด ๊ฐ์ต๋๋ค. ๋ฐ์คํฌํ, ์ฑ, ์น ํ๊ฐ์ง ์ธ์ด๋ก ๋ค๋๋ ์ธ์ด๋ ํ์น ์์ ๊ฒ ๊ฐ๋ค์.
์ค๊ตญ์ C#์ด ์๋ฐ๋ณด๋ค ์ธ๊ธฐ๊ฐ ๋๋๋ฐ
ํ๊ตญ์ ์ ์์ ๋ถํ๋ ์์ํฌ ๋๋ฌธ์ ํ๋ค๋ฏ
C# ํธํ๊ธด ํ๋ฐ GC on/off ๋๋ฉด ์๋ฒฝ ํ ๊ฒ ๊ฐ์ต๋๋ค.
xml๋ ์ข ๋ฒ๋ฆฌ๊ณ โฆ ์ธ๋ฐ ์์ด ๋ง์ ํ์ผ ์ฐ๋๋ ๊ธฐ๋ ์ข ๋ฒ๋ฆฌ๊ณ โฆ ๋ฐฐํฌ ์ข ์ฌํํด์ง๋ฉด ๋ ์๋ฒฝํ ํ
๋ฐโฆ
์ค๋ง wpf xaml์ ์๊ธฐํ๋ ๊ฑด ์๋์์ฃ ?
์ ๋ xaml, ์ฌ๋ฌ๊ฐ์ง ์ฅ์ /๋จ์ ์ด ์์ง๋ง,
์ด xaml(UI)๋ฅผ ๋ณต์ฌํด์ ์ฌ์ฌ์ฉํ ์ ์๋ค๋ ์ ์์๋ ๋๋ฌด ์ข์ํฉ๋๋ค.
yaml, toml ์ข์ ํฌ๋งท ์์์์
๊ตฌ๋ฅ๋ค๋ฆฌ xml ํฌ๋งท ์ ๋ง ๋ณด๊ธฐ ์ซ์ด์ ใ
xaml์ด ui๋ฅผ ๊ตฌ์ฑํ๋๋ฐ ๊ทธ๊ฑธ yaml๋ก ๊ฐ๋ฉด ์คํฌ๋กค์ ์๋ฐ์ดโฆ
xaml์ attribute ๋ฐฉ์์ผ๋ก ์ค์ ์ด ์ถ๊ฐ๋๋ฏ๋ก xml ๋ฐฉ์์ด ์ข์๊ฒ ๊ฐ์ต๋๋ค.
์๋ง ๋ญ ๋ฌธ๋ฒ ๋ฐ๊พธ๋๊ฒ ์ด๋ ค์ด๊ฑด ์๋๊ฒ ์ง๋ง(converter๋ง ์์ผ๋ฉด)
๊ทผ๋ฐ ๊ทธ๊ฒ ์๋๋ฉด yaml, toml์ ui๋ฅผ ๊ตฌ์ฑํ๊ธฐ ์ํ ํ๋ฉด์ ๋ง์์ง๋ ์๊ฐ์ ์ข๋ ํด๋ด์ผ ํ์ง ์์๊น์
xml ์ซ์ดํ๋ ๊ฑด ๊ฐ์ธ ์ทจํฅ์ผ ์๋ ์์ง๋ง
xaml ์ฝ๋ฉํ๋ฉด์ ui ๋ง๋๋ ๊ฒ ๋๋ฌด ํํ ์ต๋๋ค. ๊ณผ์ฐ ์ด๊ฒ ์๋์ ๋ง๋ ๋ฐฉ๋ฒ์ธ์งโฆ
c# ์ธ์ด ๋ฐ์ ์ ๋นํด ๊ฐ๋ฐํด์ ๊ฐ๋ก ๊ฐ๋ค๊ณ ์๊ฐํฉ๋๋ค.
์ ๋ ๊ฐ์ธ์ ์ผ๋ก XAML์ ํตํ ์ ์ธํ UI ๋ฐฉ์์ ์ ์ฐ์ฑ๊ณผ ํ์ฅ์ฑ, ๊ทธ๋ฆฌ๊ณ ๊ฐ๋ฐ ํด์ด ์ ๊ณตํ๋ ์์ฐ์ฑ์ ๋งค์ฐ ๋ง์กฑํ๊ณ ์๋๋ฐ์. ๋ฌผ๋ก ๊ธฐ๋ณธ ํ๋ ์์ํฌ์ ๋ถํธํจ์ ํด์ํ๊ธฐ ์ํด ์ธํ์ฐ์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๊ตฌ์ถํ๊ฑฐ๋, ์ ๋ง์ ๋ง๋ ๋น๋๋ ๋ฐฐํฌ ๊ตฌ์ฑ์ ๋ง๋ จํ๋ ๋ฐ ์๊ฐ์ด ๊ฑธ๋ฆฌ๊ธฐ๋ ํ๋ ๊ฒ ๊ฐ์ต๋๋ค.
์ ๋ xaml ์ด ๋ง์ด ๋ถํธํ๋ค๊ณ ์๊ฐ์ ํ๋๋ฐ, ํ๋ก์ ํธ ํ์ผ์ด๋ฉด ๋ชฐ๋ผ๋, UI ๋๊ตฌ๋ก yaml, toml ์ ๋๋ฌด ๋น์ฝํ ๊ฒ ๊ฐ๋ค๋ ์๊ฐ์ด ๋ญ๋๋ค.
๊ตฌ๊ธ๋ yaml ๊ธฐ๋ฐ UI ํ๋ ์์ํฌ ์๋ํ๋ค๊ฐ ์คํจํ ๋ฏ ๋ณด์ ๋๋ค.
์ฌ์ค C# ์ ์ ์๊ฒ๋ ๋ธ๋ ์ด์ ๋ผ๋ ๊ฑธ์ถํ ๋๊ตฌ๊ฐ ์ด๋ฏธ ์๊ณ , WPF, ์ํผ, Maui ๋ชจ๋ ์ง์ํฉ๋๋ค.
์ ๋ ์ฌ์ค ์ ์์ง๋ ๋ธ๋ ์ด์ ์ ์ฐ๊ณ XAML ๋ง ์ฐ๋ ์ง ์ดํด๊ฐ ์ ๊ฐ๊ธฐ๋ ํฉ๋๋ค.
๊ทธ๊ฒ๋ ํน์ ํ์ฌ์ ์ ๋ฃ ํ๋ ์์ํฌ์ ์ข
์๋๋ ๊ฒฝ์ฐ๋ ์ ์ง ์์ ๊ฒ ๊ฐ์๋ฐ ๋ง์ด์ฃ .
ใ
ใ
ใ
ใ
์ด๋ฏธ ์ธ์์ ์๋ฐ ์ฒ๊ตญโฆ ์์ค ์งฑ๋
์ํฐํ๋ผ์ด์ฆ ์์ฅ์์ ๋ฐ๋ ค ๋์ง ์ค๋โฆ
๊ณต์ง ์ข์ ํ๋ ๋ํ๋ฏผ๊ตญ์์๋ ๋ฐฉ๋ฒ์ด ์์โฆ
์ฒ์ ํ๋ก ํธ์๋ ๋ ๊นจ์ ๊ฑฐ๋ ค์ผํ ํ์ ใ
ใ