웹 애플리케이션 생성

ν”„λ‘œμ νŠΈλŠ” 거의 λ°±μ—”λ“œλ§ŒμœΌλ‘œ κ΅¬μ„±λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. Linoλ₯Ό μ‚¬μš©ν•˜λ©΄ μƒμ„±λœ APIλ₯Ό μ†ŒλΉ„ν•˜λŠ” μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜λ„ λ§Œλ“€ 수 있으며, μ΅œμ’… μ‚¬μš©μžλ‚˜ λ‚΄λΆ€ νŒ€μ„ μœ„ν•œ μΈν„°νŽ˜μ΄μŠ€λ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€.


ν˜„μž¬ ν”„λ ˆμž„μ›Œν¬λŠ” Blazor Web App(interactive auto λ Œλ”λ§ λͺ¨λ“œ)을 기본으둜 μ§€μ›ν•©λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ μ•„ν‚€ν…μ²˜λŠ” λ™μΌν•œ μ†”λ£¨μ…˜ λ‚΄μ—μ„œ μ—¬λŸ¬ ν”„λ‘ νŠΈμ—”λ“œλ₯Ό μΆ”κ°€ν•  수 μžˆλ„λ‘ μ„€κ³„λ˜μ–΄, λ‹€μ–‘ν•œ μ‹œλ‚˜λ¦¬μ˜€μ™€ μ‚¬μš©μž 그룹에 λŒ€μ‘ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

Blazor Web Appλ₯Ό μ‚¬μš©ν•˜λŠ” ν”„λ‘ νŠΈμ—”λ“œ

ν”„λ‘ νŠΈμ—”λ“œλ₯Ό 생성할 λ•Œ LinoλŠ” μžλ™μœΌλ‘œ Blazor Web App ν”„λ‘œμ νŠΈλ₯Ό μƒμ„±ν•˜λ©° λ‹€μŒκ³Ό 같이 κ΅¬μ„±λ©λ‹ˆλ‹€:

  • κ°„μ†Œν™”λœ λΌμš°νŒ… β†’ κΈ°λ³Έ λ‚΄λΉ„κ²Œμ΄μ…˜ ꡬ쑰가 이미 κ΅¬μ„±λ˜μ–΄ 있음.
  • Minimal APIs와 λ„€μ΄ν‹°λΈŒ 톡합 β†’ μƒμ„±λœ μ—”λ“œν¬μΈνŠΈλ₯Ό 직접 μ‚¬μš©.
  • μž¬μ‚¬μš© κ°€λŠ₯ν•œ CRUD μ»΄ν¬λ„ŒνŠΈ β†’ λͺ©λ‘, 생성, νŽΈμ§‘ νŽ˜μ΄μ§€κ°€ ν‘œμ€€ν™”λ¨.
  • 인증 및 κΆŒν•œ λΆ€μ—¬ 지원 β†’ μ„œλΉ„μŠ€κ°€ λ³΄μ•ˆ μ„€μ •λœ 경우.

이 ν”„λ‘ νŠΈμ—”λ“œλŠ” 이미 μ• ν”Œλ¦¬μΌ€μ΄μ…˜ λͺ¨λ“ˆμ—μ„œ μƒμ„±λœ APIλ₯Ό μ†ŒλΉ„ν•  수 μžˆλ„λ‘ μ€€λΉ„λ˜μ–΄ 있으며, κ°•λ ₯ν•œ νƒ€μž…κ³Ό νƒ€μž…ν™”λœ HttpClientλ₯Ό ν†΅ν•œ μžλ™ 톡합을 μ œκ³΅ν•©λ‹ˆλ‹€.

μ—¬λŸ¬ ν”„λ‘ νŠΈμ—”λ“œ

ν•˜λ‚˜μ˜ ν”„λ‘œμ νŠΈλŠ” ν•„μš”ν•œ 만큼의 ν”„λ‘ νŠΈμ—”λ“œλ₯Ό 포함할 수 μžˆμŠ΅λ‹ˆλ‹€. 각 ν”„λ‘ νŠΈμ—”λ“œλŠ” μ†”λ£¨μ…˜ λ‚΄ μƒˆλ‘œμš΄ Blazor ν”„λ‘œμ νŠΈλ‘œ μΆ”κ°€λ˜λ©°, λ°±μ—”λ“œμ—μ„œ λ…ΈμΆœν•˜λŠ” λ™μΌν•œ APIλ₯Ό κ³΅μœ ν•©λ‹ˆλ‹€.

μ‹œλ‚˜λ¦¬μ˜€ μ˜ˆμ‹œ:

  • 곡개 μ‚¬μ΄νŠΈ β†’ 고객 λ˜λŠ” λ°©λ¬Έμžκ°€ μ ‘κ·Ό κ°€λŠ₯ν•œ νŽ˜μ΄μ§€.
  • λ°±μ˜€ν”ΌμŠ€/관리 β†’ 운영자 λ˜λŠ” κ΄€λ¦¬νŒ€μš© λ‚΄λΆ€ 관리 νŒ¨λ„.
  • νŒŒνŠΈλ„ˆ 포털 β†’ νŒŒνŠΈλ„ˆ, λ¦¬μ…€λŸ¬ λ˜λŠ” 곡급업체 μ „μš© μ ‘κ·Ό.

μ΄λŸ¬ν•œ λΆ„λ¦¬λŠ” μΈν„°νŽ˜μ΄μŠ€ μ „λ¬Έν™”λ₯Ό μš©μ΄ν•˜κ²Œ ν•˜λ©΄μ„œ API μ‚¬μš©μ— λŒ€ν•œ μ•„ν‚€ν…μ²˜ 일관성을 μœ μ§€ν•©λ‹ˆλ‹€.

μ›Ή νŽ˜μ΄μ§€ 생성

μΈν„°νŽ˜μ΄μŠ€ κ°œλ°œμ„ κ°€μ†ν™”ν•˜κΈ° μœ„ν•΄, Lino CLIλŠ” λ‹€μŒ λͺ…령을 μ œκ³΅ν•©λ‹ˆλ‹€:

lino page new

이 λͺ…령은 λ°±μ—”λ“œμ— 이미 μ—°κ²°λœ Blazor νŽ˜μ΄μ§€λ₯Ό μƒμ„±ν•˜λ©°, μ •ν•΄μ§„ κ·œμΉ™μ„ λ”°λ¦…λ‹ˆλ‹€:

  • 폼 μ»΄ν¬λ„ŒνŠΈ 생성 β†’ 생성 및 νŽΈμ§‘ νŽ˜μ΄μ§€.
  • μžλ™ λͺ©λ‘ β†’ 인덱슀 νŽ˜μ΄μ§€(νŽ˜μ΄μ§€λ„€μ΄μ…˜λœ λͺ©λ‘).
  • API 직접 톡합 β†’ ν•΄λ‹Ή μ—”λ“œν¬μΈνŠΈμ™€ μžλ™ μ—°κ²°.

이λ₯Ό 톡해 전체 CRUD(ν”„λ‘ νŠΈμ—”λ“œ β†’ API β†’ CQRS β†’ λ°μ΄ν„°λ² μ΄μŠ€)λ₯Ό μˆ˜λ™ μ½”λ“œ 반볡 없이 생성할 수 μžˆμŠ΅λ‹ˆλ‹€.

예λ₯Ό λ“€μ–΄ Order μ—”ν„°ν‹°μš© νŽ˜μ΄μ§€λ₯Ό μƒμ„±ν•˜λ©΄ λ‹€μŒκ³Ό 같은 ꡬ쑰가 λ§Œλ“€μ–΄μ§‘λ‹ˆλ‹€:

MyApp/
└── src/
    └── WebApps/
        └── MySite/
            └── Services/
                └── Pages/
                    └── Orders/
                        └── Registration/
                            β”œβ”€β”€ Order.razor
                            β”œβ”€β”€ Order.razor.cs
                            └── Components/
                                β”œβ”€β”€ Form/
                                β”‚   β”œβ”€β”€ OrderForm.razor
                                β”‚   β”œβ”€β”€ OrderForm.razor.cs
                                β”‚   β”œβ”€β”€ OrderFormExtensions.cs
                                β”‚   └── OrderFormViewModel.cs
                                └── Grid/
                                    β”œβ”€β”€ OrderGrid.razor
                                    β”œβ”€β”€ OrderGrid.razor.cs
                                    β”œβ”€β”€ OrderGridExtensions.cs
                                    └── OrderPagedQueryParams.cs

λ˜ν•œ OrdersEndpoints의 μ—”λ“œν¬μΈνŠΈλ₯Ό μ†ŒλΉ„ν•˜κΈ° μœ„ν•œ 톡합 μ„œλΉ„μŠ€κ°€ μƒμ„±λ˜μ–΄ μ—”λ“œ 투 μ—”λ“œ 톡신을 보μž₯ν•©λ‹ˆλ‹€:
ν”„λ‘ νŠΈμ—”λ“œ β†’ API β†’ Commands/Queries β†’ λ°μ΄ν„°λ² μ΄μŠ€

이λ₯Ό 톡해 LinoλŠ” 전체 μŠ€νƒ 개발 흐름을 μ œκ³΅ν•˜λ©°, μƒˆλ‘œμš΄ κΈ°λŠ₯을 μƒμ„±ν•˜λŠ” 데 ν•„μš”ν•œ μ‹œκ°„μ„ 크게 μ€„μ—¬μ€λ‹ˆλ‹€.

처리되지 않은 오류가 발생했습니다. 새로 고침 πŸ—™