๋ณ.์์ ์ํํธ์จ์ด ๊ฐ๋ฐ ์ ์ฒด | 2015๋ ~ ํ์ฌ
C# ๊ด๋ จ ๊ฐ์ ์ ํ๋ธ ์ด์ : ๊น๋ถ์ด์ฝ๋(https://www.youtube.com/@kaburi-coder) 2022 ~
ํ์ฌ ์ฌ์ฉ ์ค์ธ ์ฃผ๋ ฅ ๊ธฐ์ ์คํ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
ํ๋ก๊ทธ๋๋ฐ ์ธ์ด: C#, TypeScript, Dart, Python, VB.NET
๋ฐ์คํฌํ ์ ํ๋ฆฌ์ผ์ด์ : WinForms, WPF
๋ชจ๋ฐ์ผ ์ฑ ๊ฐ๋ฐ: Flutter
์น ๊ฐ๋ฐ: React, Next.js, Express, NestJS
Gen AI: LangChain, LangGraph
์ปจํ ์ด๋ ๋ฐ ์ค์ผ์คํธ๋ ์ด์ : Docker, Kubernetes, Helm, ArgoCD ..
CI/CD: GitHub Actions
DataBase: MySql, Postgresql, MongoDB, SQLITE ๋ฑ
2015๋ ๋ถํฐ ํ์ฌ๊น์ง ์ํํธ์จ์ด ๊ฐ๋ฐ ๋ถ์ผ์์ ๋ค์ํ ํ๋ก์ ํธ๋ฅผ ์ฑ๊ณต์ ์ผ๋ก ์ด๋์ด์จ ๊ฒฝํ์ ๋ณด์ ํ๊ณ ์์ต๋๋ค.
๊ธฐ์ ๋ฆฌ๋๋ก์ ํ์ ์ด๋๋ฉฐ ํจ์จ์ ์ธ ๊ฐ๋ฐ ํ๋ก์ธ์ค๋ฅผ ์ ์งํ๊ณ , ์ต์ ๊ธฐ์ ์คํ์ ์ ๊ทน์ ์ผ๋ก ๋์ ํ์ฌ ์ํํธ์จ์ด์ ํ์ง๊ณผ ์ฌ์ฉ์ ๊ฒฝํ์ ํฅ์์ํค๋ ๋ฐ ์ฃผ๋ ฅํ๊ณ ์์ต๋๋ค.
ํ์ฌ๋ ๋ฐ์คํฌํฑ๊ณผ ์น์ ํตํฉ ๊ฐ๋ฐ์ ์ฃผ๋ํจ๊ณผ ๋์์, ์ฌ๋ด ์ง์ ๊ต์ก์ ์ฑ ์์ง๊ณ ์์ต๋๋ค.
๋ํ ์ฌ์ฉ์ ์นํ์ ์ธ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ๊ณผ ๋ฐฐํฌ ์๋ํ, DevOps ๋์ ์ ํตํด ํ๋ก์ ํธ์ ์ ๋ฐ์ ์ธ ์ฑ๊ณต์ ๊ธฐ์ฌํ๊ณ ์์ต๋๋ค.
์ง์์ ์ธ ์๊ธฐ๊ณ๋ฐ์ ํตํด ๋ณํํ๋ ๊ธฐ์ ํ๊ฒฝ์ ์ ์ฐํ๊ฒ ๋์ํ๋ฉฐ, ๋์ ์ด์ ์ผ๋ก ์๋ก์ด ๋์ ์ ์ํ๊ณ ์์ต๋๋ค.
Courses
Reviews
- C# Programming: From Fundamentals to Practical Application
- C# Programming: From Fundamentals to Practical Application
- C# Programming: From Fundamentals to Practical Application
- Using custom controls in C# WinForm. Enhancing practical skills
- C# Programming: From Fundamentals to Practical Application
Posts
Q&A
62๋ฒ ๊ฐ์(์ ๋ค๋ฆญ) ์ค ์ง๋ฌธ์์ต๋๋ค.
์ ์ง๋ฌธ์ ์ด์ ๋ดค๋ค์! AI ์ธํด์ด ๋๋ฌด๋ ์ ํํ ์ค๋ช ํด์คฌ์ต๋๋ค. ๊ทธ๋๋ ์ดํด๊ฐ ์๊ฐ์ ๋ค๋ฉด ์ถ๊ฐ๋ก ๊ธ ๋จ๊ฒจ์ฃผ์ธ์~
- 0
- 2
- 16
Q&A
asp.net blazor ๊ฐ์๋ ํ์ฌ ๊ณํ์์ผ์ ๊ฐ์
๊ฐ์๋ฅผ ์์ฒญํด์ฃผ์ ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค. ใ ใ ์์ฝ๊ฒ๋ ํ์ฌ๋ ASP.NET ๊ฐ์ ๊ณํ์ ์์ต๋๋ค... ใ ใ
- 0
- 2
- 38
Q&A
๊ฐ์์๋ฃ
๊ฐ์ ์๋ฃ๋ ์ด๋ฐ๋ถ์๋ ํ๋ฉด์ ๋ณด์ฌ์ง๋ ๋ธ๋ก๊ทธ ์ฃผ์๋ก ๋ค์ด๊ฐ์ ์ ์ฐธ๊ณ ํ์๋ฉด ๋๊ฒ ์ต๋๋ค.์ค๋ฐ๋ถ ์ดํ๋ก ํ์ผ ํํ๋ก ์ ๊ณต๋๊ณ ์์ต๋๋ค. ๊ฐ์ฌํฉ๋๋ค.
- 1
- 2
- 73
Q&A
~ ์ฐ์ฐ์ ์ดํด๊ฐ ์๋์
๋งจ ์์๋ฆฌ๊ฐ ๋ถํธ๋ฅผ ๋ํ๋ด๊ณ ๋๋จธ์ง๋ฅผ 10์ง์๋ก ๋ณํํ๋ฉด ์ ์ ๊ฐ์ด ๋ฐํ ๋๋ค๋ ๊ฒ์ ๋ฐ์ ๋ง๊ณ ๋ฐ์ ํ๋ฆฐ ๋ง์ ๋๋ค. ์์์ธ ๊ฒฝ์ฐ๋ ๋ถํธ ์ซ์ ์ธ ๋๋จธ์ง ์๋ฅผ 10์ง์๋ก ๋ณํํ๋ฉด ๊ทธ ๊ฐ์ด ์ ํฌ๊ฐ ์๊ณ ์๋ ๊ฐ์ด ๋ง์ต๋๋ค.์ด์ง์ (0111) ๋ก ์๋ฅผ ๋ค์ด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.๋งจ ์ 0 ์ ์์๋ฅผ ๋ํ๋ด๊ณ ๋๋จธ์ง 111 => 4 + 2 + 1 = 7 ์ด ๋ฉ๋๋ค.ํ์ง๋ง ์์์ธ ๊ฒฝ์ฐ๋ ๋ค๋ฆ ๋๋ค. ์ด์ง์ (1111) ๋ก ์๋ฅผ ๋ค์ด๋ณด๋ฉด๋งจ ์์ 1์ ์์๋ฅผ ๋ํ๋ด๊ณ ๋๋จธ์ง 111 => 4 + 2 + 1 = 7 ์ ๋ถํธ๋ง - ๋ฅผ ๋ถ์ฌ -7์ด ๋๋ ๊ฒ์ด ์๋๋๋ค.๋จผ์ 1์ ๋ณด์ ํ, 2์ ๋ณด์๋ฅผ ์งํํ๊ณ ๋ถํธ๋ฅผ ๋ถ์ฌ์ผ ์์๋ฅผ ๊ตฌํ ์ ์์ต๋๋ค.1์ ๋ณด์ => 0000 2์ ๋ณด์ => 0001 = 1 => ๋ถํธ ์ถ๊ฐ => -1 ์ด ๋ฉ๋๋ค.์ ๊ณ์ฐ์ ๋ ๋ค๋ฅธ ๋ฐฉ์์ผ๋ก ํด์ํ๋ฉด1111 ์์ ๋งจ ์์๋ฆฌ(๋ถํธ -): 2^3 = -8 ๋๋ฒ์งธ ์๋ฆฌ(+) : 2^2 = 4 ์ธ๋ฒ์งธ ์๋ฆฌ(+) : 2^1 = 2 ๋ค๋ฒ์งธ ์๋ฆฌ(+) : 2^0 = 1 --------------------------- ๊ฒฐ๊ณผ = -1์ด ๋ฉ๋๋ค. ์ฌ๋ ์ ์ฅ์์ ์ด๋ ค์ ๋ณด์ผ ์ ์์ผ๋ ์ปดํจํฐ ์ ์ฅ์์ ํจ์ฌ ์ฐ์ฐ์ด ์ฝ๊ณ ํจ์จ์ ์ ๋๋ค. ์ปดํจํฐ ์์คํ ์ด 2๋ณด์ ๋ฐฉ์์ผ๋ก ๊ณ์ฐ๋๋ ๋บ์ ์์ ๋ฅผ ๋ณด์ฌ๋๋ฆด๊ฒ์๋ค์์ 5-3์ ๋ํ ์์ ์ ๋๋ค. 0101 (5) + 1101 (-3, 2์ ๋ณด์) ------- 10010 (5๋นํธ๊ฐ ๋์ง๋ง, ๋งจ ์(์ผ์ชฝ) 1๋นํธ๋ ๋ฒ๋ฆผ) ๋จ์ 4๋นํธ๋ 0010 => ๊ฒฐ๊ณผ๋ 2 ๋ฐ๋ผ์ ๋ค์๊ณผ ๊ฐ์ ์ฅ์ ์ด ์์ต๋๋ค.1. ๋ง์ ๊ณผ ๋บ์ ์ ๋์ผํ ํ๋ก๋ก ์ฒ๋ฆฌํ ์ ์์2์ ๋ณด์ ํํ์ ์ฌ์ฉํ๋ฉด ๋ง์ ๊ณผ ๋บ์ ์ ๊ฐ์ ๋ฐฉ์(๊ฐ์ฐ๊ธฐ)์ผ๋ก ๊ณ์ฐํ ์ ์์ต๋๋ค.์๋ฅผ ๋ค์ด, 5 + (-3)์ ๊ณ์ฐํ ๋, -3์ 2์ ๋ณด์๋ก ๋ฐ๊ฟ์ 5์ ๋ํ๋ฉด ๊ฒฐ๊ณผ๊ฐ ๋ฐ๋ก ๋์ต๋๋ค.๋ณ๋์ ๋บ์ ํ๋ก๊ฐ ํ์ ์์ต๋๋ค.2. 0์ด ์ ์ผํ๊ฒ ํํ๋จ1์ ๋ณด์ ๋ฐฉ์(๋ชจ๋ ๋นํธ๋ฅผ ๋ฐ์ )์์๋ +0๊ณผ -0์ด ๋ชจ๋ ์กด์ฌ(์: 0000=+0, 1111=-0)ํด์ ํผ๋์ ์ค๋๋ค.2์ ๋ณด์์์๋ 0์ ํ ๋ฒ๋ง ํํํ ์ ์์ต๋๋ค.3. ์ค๋ฒํ๋ก์ฐ ์ฒ๋ฆฌ๊ฐ ์ฝ๊ณ , ์์์ด ๋จ์ํจ2์ ๋ณด์์์๋ ์ค๋ฒํ๋ก์ฐ(์๋ฆฟ์ ์ด๊ณผ) ๋ฐ์ ์, ํ์ ๋นํธ๋ง ๋จ๊ธฐ๋ฉด ๊ฒฐ๊ณผ๊ฐ ์ฌ๋ฐ๋ฆ ๋๋ค.์์์ด ๋จ์ํด์ ์ปดํจํฐ ํ๋์จ์ด ์ค๊ณ๊ฐ ์ฌ์์ง๋๋ค.
- 0
- 5
- 96
Q&A
thread join ์ฌ์ฉ
์์ฒญ๋ ์ด์ ์ ๋๋์ต๋๋ค. ใ ใ ์๋์ AI ๋ต๋ณ๋ ์กด์ฌํ์ง๋ง ์ถ๊ฐ๋ก ์ ๋ฆฌํด๋๋ฆฌ๊ฒ ์ต๋๋ค. WinForms์์ Join() ์ฌ์ฉ ์ UI ๋ฉ์ถคํ์๋ฉ์ธ(UI) ์ฐ๋ ๋์์ GoThread.Join()์ ํธ์ถํ๋ฉด, ํด๋น ์ฐ๋ ๋๊ฐ ์ข ๋ฃํ ๋๊น์ง ํ์ฌ ์ฐ๋ ๋์์ ๋๊ธฐํ๊ฒ ๋ฉ๋๋ค.UI์ ๊ด๋ จ๋ ์ฒ๋ฆฌ๋ ๋ชจ๋ ๋ฉ์ธ ์ค๋ ๋์์ ์ด๋ค์ง๋ฏ๋ก Join()์์ ๋๊ธฐํ๋ ๋์ ํผ์ด ๋ฉ์ถ๊ฒ ์ฒ๋ผ ๋ณด์ด๊ฒ ๋ผ์.**ํด๊ฒฐ๋ฐฉ์**์ฐ๋ ๋ ์์ ์ด ๋๋๋ ๊ฒ์ ๊ธฐ๋ค๋ฆฌ๋ฉด์ UI๊ฐ ๋ฉ์ถ์ง ์๊ฒ ํ๋ ค๋ฉด,Join()์ ์ง์ ํธ์ถํ์ง ๋ง๊ณ , ์ฐ๋ ๋ ์์ ์ด ๋๋ฌ์ ๋ UI์ ์๋ฆฌ๊ฑฐ๋(์: ์ด๋ฒคํธ, ์ฝ๋ฐฑ),BackgroundWorker, Task, async/await ๋ฑ ๋น๋๊ธฐ ํ๋ก๊ทธ๋๋ฐ ํจํด์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค.(์ผ๋ฐ์ ์ผ๋ก async/await๋ฅผ ๊ฐ์ฅ ์ถ์ฒ ๋๋ฆฝ๋๋ค.)์ฐ๋๋ ๊ฐ์ฒด๋ฅผ null๋ก ์ค์ ํ๋ ๊ฒ?์ฐ๋ ๋๊ฐ ๋๋๋ฉด, ํด๋น Thread ๊ฐ์ฒด๋ ๋ ์ด์ ์ฌ์ฉํ ์ ์์ผ๋ฏ๋ก ํ์ํ๋ฉด null๋ก ๋ง๋ค์ด์ฃผ๋ ๊ฒ๋ ๊ด์ฐฎ์ ๋ฐฉ๋ฒ์ ๋๋ค. (null ์ ํ ๋นํ์ฌ ์ฐธ์กฐ๋ฅผ ํด์ ํด์ฃผ๋ฉด ๊ฐ๋น์ง ์ปฌ๋ ํฐ๊ฐ ๋น ๋ฅด๊ฒ ์๊ฑฐํ ์ ์์ด์.)ํ์ง๋ง ๊ผญ null๋ก ๋ง๋ค ํ์๋ ์๊ณ ์ฐ๋๋๊ฐ ์ด์์๋์ง(IsAlive ์์ฑ)๋ง ์ฒดํฌํด์ ํ์ํ ๋ Thread๊ฐ์ฒด๋ฅผ ์๋ก ๋ง๋ค์ด๋ ๊ด์ฐฎ์ต๋๋ค.C#์์ ํด๋์ค์ ๋ช ์์ ์ข ๋ฃ(์๋ฉธ) ๋ฐฉ๋ฒC#์๋ C++์ delete์ฒ๋ผ ๊ฐ์ฒด๋ฅผ โ์ฆ์โ ์๋ฉธ์ํค๋ ๋ฌธ๋ฒ์ด ์์ต๋๋ค.C#์ ๊ฐ์ฒด๋ ํด๋น ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ๋ ๊ณณ์ด ์์ ๋(์ฆ, ์ฌ์ฉํ์ง ์๊ฒ ๋์์ ๋)๊ฐ๋น์ง ์ปฌ๋ ํฐ(GC)๊ฐ ์๋์ผ๋ก ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ ๋ฆฌ(์๋ฉธ)ํฉ๋๋ค.IDisposable ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ๊ณ Dispose()๋ฅผ ํธ์ถํ๋ ๊ฒ๋ ์ฌ์ค ๋ฉ๋ชจ๋ฆฌ ์์ฒด๋ GC๊ฐ ํ์ํ๋ ๊ฒ ์ ๋๋ค.
- 0
- 4
- 86
Q&A
21. PickList(๋์์ด๋ ์์ฑ) ๊ฐ์ข ๋ฌธ์
์ ๊ฐ ๋์น ๋ถ๋ถ์ ์ฐพ์์ ์๋ ค์ฃผ์ ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค. ํด๋น ๋ถ๋ถ์ ํ ์คํธ๋ก ์ค๋ช ์ถ๊ฐํ์ฌ ์์ ํ์ต๋๋ค.
- 0
- 1
- 44
Q&A
๋ธ๋ก๊ทธ ๊ธ
์ง๋ฌธ ๊ธ์ ๋ฆ๊ฒ ํ์ธํ๋ค์ ใ .ใ ๋ธ๋ก๊ทธ ๊ธ์ ์ฌ์ ํ ์กด์ฌํฉ๋๋ค ~!
- 0
- 2
- 74
Q&A
Delegate ๋ด์ฉ์ ์ด๋์ ๋ค๋ฃจ๋์?
14. ๋๋ฆฌ์ ์น์ ์ ๋ณด์๋ฉด ๋ฉ๋๋ค. ๊ฐ์ฌํฉ๋๋ค ^^
- 0
- 2
- 79
Q&A
Xunit private ๋ฉ์๋ ํ ์คํธ
ํด๋น ๋ฌธ์ ์ฌํญ์ ๋ํ ๊ฐ์๊ฐ ์ ๋ก๋ ๋์์ต๋๋ค. ๊ฐ์ฌํฉ๋๋ค. https://inf.run/NwUf1
- 0
- 2
- 91
Q&A
์์์ ๋ฆฌ ๊ฐ๋
์ธํ๋ฐ AI ์ธํด์ ์ค๋ช ์ด ํ๋ฅญํ๋ค์ ใ ใ ์ ๊ฐ obj = null๋ก ํ ๋นํ ์์ ๋ฅผ ๋ณด์ฌ๋๋ฆฐ ๊ฒ์ผ๋ก ์ฝ๊ฐ ํท๊ฐ๋ฆฌ์ ๊ฒ ๊ฐ์ต๋๋ค. null ํ ๋น์ ๊ฐ์ฒด๊ฐ GC์ ๋์์ด ๋๋๋ก ๋์ธ ์ ์์ต๋๋ค. ์๋๋ฉด GC๋ ์ฐธ์กฐ๊ฐ ๋์ง ์์ ๊ฐ์ฒด๋ฅผ ๋ฉ๋ชจ๋ฆฌ์์ ์ ๊ฑฐํ๊ฑฐ๋ ์.์ฆ ๋ณ์์ null์ ํ ๋นํ๋ ๊ฒ์ ๋ฉ๋ชจ๋ฆฌ์์ ๊ฐ์ฒด๋ฅผ ์ง์ ํด์ ํ๋ ํ์๊ฐ ์๋๋๋ค. finally๋ธ๋ก์ ์ค๋ช ๋๋ ธ๋ค์ํผ return๋ฌธ์ ๋ง๋๋๋ผ ํด๋ ๋ฐ๋์ ์คํ์ด ๋ณด์ฅ๋๋ ์ฝ๋ ๋ธ๋ก์ ๋๋ค.๊ทธ๋ฌํ์ฌ ์ผ๋ฐ์ ์ผ๋ก finally์๋ํ์ผ ์คํธ๋ฆผ (FileInputStream, FileOutputStream ๋ฑ)๋คํธ์ํฌ ์์ผ ์ฐ๊ฒฐ (Socket)๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๊ฒฐ (Connection)๊ทธ๋ํฝ ๋ฆฌ์์ค ๋ฑ์ ํญ๋ชฉ์ ์์์ ์ ๋ฆฌํ ๋ ์ฃผ๋ก ์ฌ์ฉ๋๋ค๊ณ ๋ณด์๋ฉด ๋๊ฒ ์ต๋๋ค. ๋ฐ๋์ ์์ ๊ฐ์ ๊ฒฝ์ฐ๊ฐ ์๋๋๋ผํด๋ ์ ๊ฐ ์์ ๋ก ๋ณด์ฌ๋๋ฆฐ ๋ฐ์ ๊ฐ์ด ๋ ์ด์ ์ฌ์ฉ๋์ง ์๋ํ ์์ญ์ ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐ๋ฅผ ๋์ด์ฃผ๊ธฐ ์ํด์๋ ์ข ์ข ์ฌ์ฉ๋๋ค๊ณ ๋ณด์๋ฉด ๋๊ฒ ์ต๋๋ค.
- 0
- 2
- 92