์ธํ”„๋Ÿฐ ์˜๋ฌธ ๋ธŒ๋žœ๋“œ ๋กœ๊ณ 
์ธํ”„๋Ÿฐ ์˜๋ฌธ ๋ธŒ๋žœ๋“œ ๋กœ๊ณ 

[C#/.NET 6.0]์–ด์„œ์™€, Blazor WebAssembly๋Š” ์ฒ˜์Œ์ด์ง€?

Blazor WebAssembly๋ฅผ ํ™œ์šฉํ•œ Web ๊ฐœ๋ฐœ ๊ธฐ์ดˆ ๊ฐ•์˜์ž…๋‹ˆ๋‹ค. EntityFrameworkCore๋ฅผ ํ™œ์šฉํ•œ DB CRUD๋ฅผ ํŽธํ•˜๊ฒŒ ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ฐฐ์›Œ๊ฐ€์„ธ์š”. Razor Page UI Design "๊ธฐ์ดˆ"๋ฅผ ์•Œ๋ ค๋“œ๋ฆฝ๋‹ˆ๋‹ค. ๊ฐ•์˜์— ์‚ฌ์šฉ๋œ Source Code๋„ ์ œ๊ณตํ•ด๋“œ๋ฆฝ๋‹ˆ๋‹ค :)

Thumbnail

์ดˆ๊ธ‰์ž๋ฅผ ์œ„ํ•ด ์ค€๋น„ํ•œ
[์›น ๊ฐœ๋ฐœ, ํ’€์Šคํƒ] ๊ฐ•์˜์ž…๋‹ˆ๋‹ค.

์ด๋Ÿฐ ๊ฑธ ๋ฐฐ์šธ ์ˆ˜ ์žˆ์–ด์š”

  • Blazor WebAssembly์— ๋Œ€ํ•œ ์ดํ•ด

  • Client, Server, Shared ํ”„๋กœ์ ํŠธ์— ๋Œ€ํ•œ ์ดํ•ด

  • Razor ๊ตฌ๋ฌธ ํ™œ์šฉ์— ๋Œ€ํ•œ ์ดํ•ด

  • EntityFramework DB First์— ๋Œ€ํ•œ ์ดํ•ด

  • ๊ธฐํƒ€ UI ๊ฐœ๋ฐœ Tip ๋“ค

C# ๊ฐœ๋ฐœ์ž์˜ ํ’€์Šคํƒ ์›น ๊ฐœ๋ฐœ?
Blazor์™€ ํ•จ๊ป˜๋ผ๋ฉด ๊ฐ€๋Šฅํ•ด์š”! ๐Ÿ™Œ

Blazor(๋ธ”๋ ˆ์ด์ €)?

.NET๊ณผ C#์„ ํ™œ์šฉํ•˜์—ฌ ํ’€์Šคํƒ์œผ๋กœ ์›น ๊ฐœ๋ฐœ์ด ๊ฐ€๋Šฅํ•œ ํ”„๋ ˆ์ž„์›Œํฌ์ž…๋‹ˆ๋‹ค.
.NET์ด ์ œ๊ณตํ•˜๋Š” ๊ฐ•๋ ฅํ•œ ๋„๊ตฌ๋ฅผ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์–ด๋–ค ํ”Œ๋žซํผ์ด๋“  ๋ธ”๋ ˆ์ด์ € ์ปดํฌ๋„ŒํŠธ ํ™œ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ์žฅ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

์ดˆ๋ณด์ž๋ฅผ ์œ„ํ•œ Blazor WebAssembly ๐Ÿ“–

๋ณธ ๊ฐ•์˜๋Š” C#/.NET ๊ฐœ๋ฐœ์ž๋“ค์„ ์œ„ํ•œ Blazor WebAssembly ์›น ๊ฐœ๋ฐœ ๊ธฐ์ดˆ ๊ฐ•์˜์ž…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์ธ WASM ๊ฐœ๋ฐœ(Web API ๋ฐ UI Design)๊ณผ DB CRUD๋„ ๋ฐฐ์šฐ์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค! Blazor WASM๋ฅผ ์ดํ•ดํ•˜๊ณ , EntityFramework DB First์˜ ๊ฐ•๋ ฅํ•œ ๊ธฐ๋Šฅ์„ ํ•™์Šตํ•˜์—ฌ ์ƒ์ƒํ•œ ์‹ค์Šต ๊ฒฐ๊ณผ๋ฌผ๋„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ต๋‹ˆ๋‹ค.

์ด๋Ÿฐ ๋ถ„๋“ค๊ป˜ ์ถ”์ฒœํ•ด์š” ๐Ÿ™‹

  • C#/.NET ๊ธฐ์ดˆ๋Š” ์•Œ์ง€๋งŒ Web ๊ฐœ๋ฐœ์€ ํ•œ ๋ฒˆ๋„ ์•ˆ ํ•ด๋ณด์‹  ๋ถ„
  • WinForm์ด๋‚˜ WPF ๊ฐœ๋ฐœ๋งŒ ํ•ด์„œ Web ๊ฐœ๋ฐœ์„ ์–ด๋–ป๊ฒŒ ์‹œ์ž‘ํ• ์ง€ ๊ฐ์ด ์•ˆ ์˜ค์‹œ๋Š” ๋ถ„
  • Blazor๋ฅผ ์ดํ•ดํ•˜๋ฉด์„œ ์‹ค์Šต์„ ํ†ตํ•ด ๋น ๋ฅด๊ฒŒ ํ™œ์šฉํ•˜๊ณ  ์‹ถ์œผ์‹  ๋ถ„

์ด ๊ฐ•์˜์™€ ํ•จ๊ป˜ํ•ด์š”! โญ

  • ์ด๋ก ์€ ์ตœ์†Œํ™”ํ•˜๊ณ , ์ตœ๋Œ€ํ•œ ์‹ค์Šต ์œ„์ฃผ๋กœ ์ปค๋ฆฌํ˜๋Ÿผ์„ ๊ตฌ์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ์‹ค์Šต์„ ํ†ตํ•ด ๋น ๋ฅด๊ฒŒ ์ฒด๋“ํ•˜์‹œ๊ณ  ์—ฌ๋Ÿฌ ํ”„๋กœ์ ํŠธ์— ํ™œ์šฉํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค!
  • ๊ฐ•์˜์— ํ•„์š”ํ•œ DB๋‚˜ ๋ ˆํผ๋Ÿฐ์Šค Site ๋“ฑ ์ ๊ทน ๊ณต์œ ํ•ด ๋“œ๋ฆฝ๋‹ˆ๋‹ค!
  • ์ดˆ๊ธ‰ ๋‚œ์ด๋„์ด๋‹ˆ ๊ฑฑ์ •ํ•˜์ง€ ๋งˆ์‹œ๊ณ  ์ˆ˜๊ฐ•ํ•ด ์ฃผ์„ธ์š”!

ํ•™์Šต ๋‚ด์šฉ ๐Ÿ“š

[Section.0] Blazor์— ๋Œ€ํ•œ ์ดํ•ด๋ฅผ ๋จผ์ € ํ•ด๋ด…์‹œ๋‹ค!

  • Blazor WebAssembly์— ๋Œ€ํ•œ ์ดํ•ด
  • Client, Server, Shared ํ”„๋กœ์ ํŠธ์— ๋Œ€ํ•œ ์„ค๋ช…

[Section.1] EntityFrameworkCore๋กœ CRUD ์‹ค์Šตํ•ด๋ด…์‹œ๋‹ค!

  • EntityFramework DB First์— ๋Œ€ํ•œ ์ดํ•ด
  • PostgreSQL ๋ฐ pgadmin4 Tool ํ™œ์šฉ๋ฒ•

[Section.2] API ์„œ๋ฒ„ ๊ตฌ์ถ• ๋ฐ Razor Page ๊ฐœ๋ฐœํ•ด๋ด…์‹œ๋‹ค!

  • Data CRUD๋ฅผ ์œ„ํ•œ Razor Page Design
  • EntityFramework DB First ์ ์šฉ ๋ฐ ์‹ค์Šต

[Section.3] Dashboard ๊ฐœ๋ฐœ๋กœ ๊ฐ•์˜๋ฅผ ๋งˆ๋ฌด๋ฆฌํ•ด๋ด…์‹œ๋‹ค!

  • Dashboard๋ฅผ ์œ„ํ•œ Razor Page Design
  • ๊ธฐํƒ€ UI ์ ์šฉ Tip ๋“ฑ

์˜ˆ์ƒ ์งˆ๋ฌธ Q&A ๐Ÿ’ฌ

Q. C#์„ ์•„์˜ˆ ๋ชจ๋ฅด๋Š”๋ฐ ๊ดœ์ฐฎ๋‚˜์š”..?

๊ธฐ์ดˆ ๋ฌธ๋ฒ• ์ •๋„๋งŒ ์•„์‹ ๋‹ค๋ฉด ๋“ฃ๋Š” ๋ฐ ๋ฌด๋ฆฌ๋Š” ์—†์Šต๋‹ˆ๋‹ค!

Q. Winform/WPF๋งŒ ๊ฐœ๋ฐœํ•˜๋˜ ์‚ฌ๋žŒ์ธ๋ฐ ๋“ค์–ด๋„ ๋ ๊นŒ์š”..?

๋„ค! ๊ธฐ๋ณธ์ ์ธ C#/.NET ๊ฐœ๋ฐœ์„ ํ•˜์‹  ๋ถ„๋“ค์ด๋ผ๋ฉด ๋” ๋น ๋ฅด๊ฒŒ ํ•™์Šตํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค!

Q. ๊ฐ•์˜ ๋“ฃ๊ธฐ ์ „ ์ค€๋น„ํ•ด์•ผ ํ•  ๊ฒƒ์ด ์žˆ๋‚˜์š”?

Visual Studio, pgAdmin4 ๋“ฑ ํ™˜๊ฒฝ์„ค์ •์ด ํ•„์š”ํ•˜์ง€๋งŒ, ๊ฐ•์˜์—์„œ ์ž์„ธํ•˜๊ฒŒ ์„ค๋ช…๋“œ๋ฆฝ๋‹ˆ๋‹ค :)


์ˆ˜๊ฐ• ์ „ ์ฐธ๊ณ  ์‚ฌํ•ญ ๐Ÿ“ข

์‹ค์Šต ํ™˜๊ฒฝ

  • ์šด์˜ ์ฒด์ œ ๋ฐ ๋ฒ„์ „(OS): Windows 10
  • ์‚ฌ์šฉ ๋„๊ตฌ: VisualStudio2022, pgAdmin4, Radzen Blazor

ํ•™์Šต ์ž๋ฃŒ

  • ๊ธฐ๋ณธ์ ์œผ๋กœ ๊ฐ•์˜ ๋‚ด ์Œ์„ฑ์œผ๋กœ ์ œ๊ณต๋˜๋ฉฐ, ํ•„์š”ํ•œ ์ž๋ฃŒ๋‚˜ Site๋Š” ๊ฐ•์˜ ์ž๋ฃŒ์— ์ ์–ด๋“œ๋ฆฝ๋‹ˆ๋‹ค!

์„ ์ˆ˜ ์ง€์‹ ๋ฐ ์œ ์˜์‚ฌํ•ญ

  • ํ•™์Šต ๋‚œ์ด๋„๋ฅผ ๊ณ ๋ คํ•œ ํ•„์ˆ˜ ์„ ์ˆ˜ ์ง€์‹ ์—ฌ๋ถ€
    • C# ์–ธ์–ด์— ๋Œ€ํ•œ ๊ธฐ์ดˆ๋ฌธ๋ฒ•๋งŒ ์•„์…”๋„ ์ˆ˜๊ฐ•์— ์ง€์žฅ ์—†์Šต๋‹ˆ๋‹ค ๐Ÿ‘
  • ๊ฐ•์˜ ์˜์ƒ ํ’ˆ์งˆ(์Œ์งˆ/ํ™”์งˆ) ๋“ฑ ์ˆ˜๊ฐ•๊ณผ ์ง์ ‘ ์—ฐ๊ด€๋œ ๋‚ด์šฉ ๋ฐ ๊ถŒ์žฅ ํ•™์Šต ๋ฐฉ๋ฒ•
    • ๋…ธ์ด์ฆˆ๋Š” ์ตœ๋Œ€ํ•œ ์ค„์ด๊ณ ์ž ํ–ˆ์Šต๋‹ˆ๋‹ค! ์กฐ๊ธˆ์˜ ๋…ธ์ด์ฆˆ๋Š” ์–‘ํ•ด ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค ๐Ÿ™
  • ์งˆ๋ฌธ/๋‹ต๋ณ€ ๋ฐ ์ถ”ํ›„ ์—…๋ฐ์ดํŠธ ๊ด€๋ จ ๋‚ด์šฉ
    • ์งˆ๋ฌธ์€ ์–ธ์ œ๋“  ๋‚จ๊ฒจ์ฃผ์‹œ๋ฉด ๊ฐ€์šฉํ•œ ์‹œ๊ฐ„์— ๋ฐ”๋กœ ๋‹ต๋ณ€๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.
    • ์ถ”ํ›„ ์—…๋ฐ์ดํŠธํ•  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค. ๋งŽ์€ F/B ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค ๐Ÿ˜„
  • ๊ฐ•์˜ ๋ฐ ํ•™์Šต ์ž๋ฃŒ ์ €์ž‘๊ถŒ ๊ด€๋ จ ๊ณต์ง€์‚ฌํ•ญ
    • ๊ฐ•์˜์—์„œ ์ œ๊ณต ๋“œ๋ฆฐ ์†Œ์Šค ์ฝ”๋“œ๋Š” ์–ด๋А ์šฉ๋„๋กœ๋“  ํ™œ์šฉ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค ๐Ÿ”ฅ

์ง€์‹๊ณต์œ ์ž ์†Œ๊ฐœ โœ’๏ธ

์ด๋ ฅ ์‚ฌํ•ญ/ํฌํŠธํด๋ฆฌ์˜ค/๊ฐœ์ธ ์˜์ƒ

  • Winform, WPF, Blazor ํ’€์Šคํƒ ๊ฐœ๋ฐœํ•˜๊ณ  ์žˆ๋Š” ํ‰๋ฒ”ํ•œ ์ง์žฅ์ธ์ž…๋‹ˆ๋‹ค :)

์ด๋Ÿฐ ๋ถ„๋“ค๊ป˜
์ถ”์ฒœ๋“œ๋ ค์š”!

ํ•™์Šต ๋Œ€์ƒ์€
๋ˆ„๊ตฌ์ผ๊นŒ์š”?

  • C# ์–ธ์–ด๋กœ ํ”„๋กœ์ ํŠธ ์ง„ํ–‰ ํ•ด๋ณด์‹  ๋ถ„ (Form, WPF ๋“ฑ๋“ฑ..)

  • Web API๋ฅผ ์ดํ•ดํ•˜์‹œ๋Š” ๋ถ„!

์„ ์ˆ˜ ์ง€์‹,
ํ•„์š”ํ• ๊นŒ์š”?

  • C#

  • API Methods

  • Database

์•ˆ๋…•ํ•˜์„ธ์š”
RAZOR์ž…๋‹ˆ๋‹ค.

699

๋ช…

์ˆ˜๊ฐ•์ƒ

47

๊ฐœ

์ˆ˜๊ฐ•ํ‰

41

๊ฐœ

๋‹ต๋ณ€

4.5

์ 

๊ฐ•์˜ ํ‰์ 

5

๊ฐœ

๊ฐ•์˜

์•ˆ๋…•ํ•˜์„ธ์š”. ๊ฐœ๋ฐœ์ž RAZOR ์ž…๋‹ˆ๋‹ค. Python, C#/.NET(Winform, WPF, Blazor) ๊ฐœ๋ฐœํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค :)

์ œ ๊ฐ•์˜ ๋“ค์–ด์ฃผ์…”์„œ ์–ธ์ œ๋‚˜ ๊ฐ์‚ฌ๋“œ๋ฆฌ๋ฉฐ, ๊ฑฐ์นจ์—†์ด ํ•˜์ดํ‚ฅ(?) ๋ง๊ณ  F/B ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค!๐ŸคŸ๐ŸคŸ๐ŸคŸ

 

โ˜…RAZOR๊ฐ€ ์ œ๊ณตํ•˜๋Š” ๊ณ ํ’ˆ๊ฒฉ(?) ๊ฐ•์˜ List

โ—‹ Python Fast API ๊ฐ•์˜ LINK : https://inf.run/h7eTV

โ—‹ Winform ๊ฐ•์˜ LINK : https://inf.run/iovRi

โ—‹ WPF ๊ฐ•์˜ LINK : https://inf.run/ptAYH

โ—‹ Blazor WASM ๊ฐ•์˜ LINK : https://inf.run/tptBE

โ—‹ Blazor Server ๊ฐ•์˜ LINK : https://inf.run/fKHBg

 

โ˜…RAZOR์—๊ฒŒ ๋ฉ˜ํ† ๋ง ๋ฐ›๊ณ  ์‹ถ๋‹ค๋ฉด?

โ—‹ ๋ฉ˜ํ† ๋ง LINK : https://inf.run/7u6fC

 

 โ˜…RAZOR๊ฐ€ ์ง์ ‘ ์ž‘์„ฑํ•œ ์˜จ๋ผ์ธ ๊ฐ•์˜ ํŒ๋งค๋กœ ๋ถ€์ˆ˜์ž… ์–ป๋Š” ๋ฒ• ๊ถ๊ธˆํ•˜๋‹ค๋ฉด?

โ—‹ 219์ผ๋งŒ์— 1300๋งŒ์› ๋ถ€์ˆ˜์ž… ์–ป๋Š” ๋ฐฉ๋ฒ• : PDF ์ „์ž์ฑ… ํ˜•ํƒœ๋กœ ํŒ๋งคํ•ฉ๋‹ˆ๋‹ค.

โ—‹ ๊ตฌ๋งค ์˜ํ–ฅ ์žˆ์œผ์‹œ๋ฉด ๋ฉ”์ผ(resti52@naver.com)๋กœ ์—ฐ๋ฝ์ฃผ์„ธ์š” :)

๋”๋ณด๊ธฐ

์ปค๋ฆฌํ˜๋Ÿผ

์ „์ฒด

18๊ฐœ โˆ™ (5์‹œ๊ฐ„ 17๋ถ„)

ํ•ด๋‹น ๊ฐ•์˜์—์„œ ์ œ๊ณต:

์ˆ˜์—…์ž๋ฃŒ
๊ฐ•์˜ ๊ฒŒ์‹œ์ผ: 
๋งˆ์ง€๋ง‰ ์—…๋ฐ์ดํŠธ์ผ: 

์ˆ˜๊ฐ•ํ‰

์•„์ง ์ถฉ๋ถ„ํ•œ ํ‰๊ฐ€๋ฅผ ๋ฐ›์ง€ ๋ชปํ•œ ๊ฐ•์˜์ž…๋‹ˆ๋‹ค.
๋ชจ๋‘์—๊ฒŒ ๋„์›€์ด ๋˜๋Š” ์ˆ˜๊ฐ•ํ‰์˜ ์ฃผ์ธ๊ณต์ด ๋˜์–ด์ฃผ์„ธ์š”!