๐ŸชŸ
ASP.NET Core
WebAPI ServerASP.NET CoreMain Subject
  • Intro
  • Program.cs
  • Dependency Injection
  • Host
  • MVC
  • Middleware
  • Model Binding
  • Controller
  • Configure
  • Logging
  • Library
    • WebApplicationzBuilder
  • Example Code
    • basic01
    • basic02
    • basic03
    • basic04
    • basic05
    • basic06
    • basic07
Powered by GitBook
On this page
  • ์ผ๋ฐ˜์  ์˜๋ฏธ์˜ ๋ฏธ๋“ค์›จ์–ด
  • ์˜๋ฏธ
  • ์ด์ 
  • ASP.NET Core์—์„œ์˜ ๋ฏธ๋“ค์›จ์–ด
  • ์˜๋ฏธ
  • ๋™์ž‘ ์›๋ฆฌ
  • ๋™์ž‘ ์ˆœ์„œ
  • WebApplication ์—์„œ์˜ ๋ฏธ๋“ค์›จ์–ด ํŒŒ์ดํ”„๋ผ์ธ
  • MVC, Razor Pages์•ฑ์˜ ๋ฏธ๋“ค์›จ์–ด ์ˆœ์„œ
  • ๋ฏธ๋“ค์›จ์–ด ์ œ์–ด ์ข…๋ฅ˜ / ํ™•์žฅ
  • Use()
  • Run()
  • Map()
  • ๊ธฐ๋ณธ์ œ๊ณต ๋ฏธ๋“ค์›จ์–ด
  • ์‚ฌ์šฉ์ž ์ง€์ • ๋ฏธ๋“ค์›จ์–ด
  • ์ฐธ๊ณ ๋ฌธํ—Œ

Middleware

์ผ๋ฐ˜์  ์˜๋ฏธ์˜ ๋ฏธ๋“ค์›จ์–ด

์˜๋ฏธ

  • ์–‘ ์ชฝ์„ ์—ฐ๊ฒฐํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ  ๋ฐ›์„ ์ˆ˜ ์žˆ๋„๋ก ์ค‘๊ฐ„์—์„œ ๋งค๊ฐœ ์—ญํ• ์„ ํ•˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด

  • ์„œ๋กœ ๋‹ค๋ฅธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์„œ๋กœ ํ†ต์‹ ํ•˜๋Š”๋ฐ ์‚ฌ์šฉ๋˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด

  • ๋‹จ์ผ ์‹œ์Šคํ…œ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋‹ค์–‘ํ•œ ๊ธฐ์ˆ , ๋„๊ตฌ, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋“ฑ ๊ฐ„์˜ ๋‹ค๋ฆฌ ์—ญํ• ์„ ํ•จ

์ด์ 

  • ํ‘œ์ค€ํ™”๋œ ์ธํ„ฐํŽ˜์ด์Šค ์ œ๊ณต ๊ฐ€๋Šฅ

  • ๋‹ค์–‘ํ•œ ํ™˜๊ฒฝ์—์„œ ์šด์˜ ๊ฐ€๋Šฅ (์ฒด๊ณ„๊ฐ€ ๋‹ค๋ฅธ ์—…๋ฌด์™€ ์ƒํ˜ธ ์—ฐ๋™ ๊ฐ€๋Šฅ)

  • ๋ถ„์‚ฐ๋„๋‹ˆ ์—…๋ฌด๋ฅผ ๋™์‹œ์— ์ฒ˜๋ฆฌ ๊ฐ€๋Šฅํ•˜์—ฌ ์ž๋ฃŒ์˜ ์ผ๊ด€์„ฑ ์œ ์ง€

  • ๋ถ€ํ•˜ ๋ถ„์‚ฐ ๊ฐ€๋Šฅ

ASP.NET Core์—์„œ์˜ ๋ฏธ๋“ค์›จ์–ด

์˜๋ฏธ

  • HTTP ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ํŒŒ์ดํ”„๋ผ์ธ(pipeline)์—์„œ์˜ ์ค‘๊ฐ„ ๋‹จ๊ณ„

  • ์š”์ฒญ์„ ๋ฐ›์•„๋“ค์ด๊ณ  ์‘๋‹ต์„ ์ƒ์„ฑํ•˜๊ธฐ ์ „์— ์ถ”๊ฐ€์ ์ธ ์ค‘๊ฐ„ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด ์ปดํฌ๋„ŒํŠธ

  • ASP.NET Core์—์„œ ๋ฏธ๋“ค์›จ์–ด๋Š” IApplicationBuilder ์ธํ„ฐํŽ˜์ด์Šค์˜ Use(), Use{Feature} ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํŒŒ์ดํ”„๋ผ์ธ์— ์ถ”๊ฐ€ํ•จ

  • ์ปดํฌ๋„ŒํŠธ(Componenet) : ๋ฏธ๋“ค์›จ์–ด ๊ตฌ์„ฑ์š”์†Œ ์ค‘ ํ•˜๋‚˜(๋ฏธ๋“ค์›จ์–ด๋Š” ์ปดํฌ๋„ŒํŠธ์˜ ์ง‘ํ•ฉ). ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•  ๋•Œ ๊ฐ ๋‹จ๊ณ„

  • program.cs์—์„œ ๋ฏธ๋“ค์›จ์–ด๋ฅผ ์„ค์ •ํ•ด์ฃผ๋ฉด ๋จ. ์ด์ „ ๋ฒ„์ „(.NET 3.x)์—์„œ๋Š” setup.cs ํŒŒ์ผ์˜ Configure ์—์„œ ์„ค์ •ํ–ˆ์—ˆ์Œ

  • ์‚ฌ์šฉ์˜ˆ์‹œ

    var app = builder.Build();
    app.UseRouting(); // ์ด๋ ‡๊ฒŒ ์‚ฌ์šฉํ•จ

๋™์ž‘ ์›๋ฆฌ

  • ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ํŒŒ์ดํ”„๋ผ์ธ์€ ์ผ๋ จ์˜ ๋ฏธ๋“ค์›จ์–ด(์ปดํฌ๋„ŒํŠธ)๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์Œ. ์—ฌ๋Ÿฌ ์ปดํฌ๋„ŒํŠธ๋ฅผ ์—ฐ์†์ ์œผ๋กœ ๊ตฌ์„ฑํ•˜๊ณ  ์กฐ๋ฆฝํ•˜๋Š” ๊ตฌ์กฐ

  • ๋ฏธ๋“ค์›จ์–ด๋Š” ์—ฐ์†๋œ ์ˆœ์„œ๋Œ€๋กœ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•จ

  • ๊ฐ ์ปดํฌ๋„ŒํŠธ๋Š” ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š”๋ฐ, ์ž‘์—… ๊ฒฐ๊ณผ์— ๋”ฐ๋ผ ๋ฐ›์€ ์š”์ฒญ์„ ๋‹ค์Œ ํŒŒ์ดํ”„๋ผ์ธ์œผ๋กœ ๋„˜๊ธธ์ง€ ๋ง์ง€๋ฅผ ๊ฒฐ์ •ํ•จ

๋™์ž‘ ์ˆœ์„œ

  • program.cs ์— app.Use{Feature} ๋กœ ๋“ฑ๋ก๋˜๋Š” ์ˆœ์„œ์— ๋”ฐ๋ผ ๋™์ž‘ํ•จ. ์ˆœ์„œ์— ๋”ฐ๋ผ ๋ฏธ๋“ค์›จ์–ด์˜ ๋™์ž‘์ด ๋‹ค๋ฅผ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์ฃผ์˜ํ•ด์•ผ ํ•จ

WebApplication ์—์„œ์˜ ๋ฏธ๋“ค์›จ์–ด ํŒŒ์ดํ”„๋ผ์ธ

  • ์‹คํ–‰ ์Šค๋ ˆ๋“œ๋Š” ๊ฒ€์€์ƒ‰ ํ™”์‚ดํ‘œ๋ฅผ ๋”ฐ๋ผ ์‹คํ–‰๋˜๋ฉฐ, ๋•Œ๋กœ๋Š” ์ž‘์—… ์Šค๋ ˆ๋“œ๊ฐ€ ํ•ด๋‹น ๋ฏธ๋“ค์›จ์–ด(์ปดํฌ๋„ŒํŠธ)๋ฅผ ์‹คํ–‰ํ•จ

  • ๋ฏธ๋“ค์›จ์–ด๊ฐ€ ์ˆœ์ฐจ์ ์œผ๋กœ ์‹คํ–‰๋˜๊ณ , endpoint ๋ฏธ๋“ค์›จ์–ด๊นŒ์ง€ ๊ฐ”๋‹ค๊ฐ€ ๊ฒฐ๊ณผ ๊ฐ’์„ ๋ฐ›๊ณ  ๋‹ค์‹œ ์—ญ์ˆœ์œผ๋กœ ์˜ฌ๋ผ์˜ด

  • ์ค‘๊ฐ„์— ์˜ˆ์™ธ ๋“ฑ ์–ด๋–ค ์ด๋ฒคํŠธ๊ฐ€ ์žˆ์œผ๋ฉด endpoint๊นŒ์ง€ ์•ˆ๊ฐ€๊ณ  ๋ฏธ๋“ค์›จ์–ด์—์„œ ๋Œ๋‹ค๊ฐ€ ๋‹ค์‹œ ์˜ฌ๋ผ์˜ฌ ์ˆ˜ ์žˆ๊ณ , ์ฒ˜๋ฆฌ ํ›„์— ๋‹ค์‹œ endpoint๋กœ ๊ฐˆ ์ˆ˜๋„ ์žˆ์Œ (์„ค์ •ํ•ด์ฃผ๊ธฐ ๋‚˜๋ฆ„)

MVC, Razor Pages์•ฑ์˜ ๋ฏธ๋“ค์›จ์–ด ์ˆœ์„œ

  • ๊ธฐ๋ณธ์ ์œผ๋กœ ์œ„ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์€ ์ˆœ์„œ๋ฅผ ๋”ฐ๋ผ ๋ฏธ๋“ค์›จ์–ด๊ฐ€ ์‹คํ–‰๋จ

  • ์‚ฌ์šฉ์ž๊ฐ€ ์›ํ•˜๋Š” ๋Œ€๋กœ ์ˆœ์„œ๋ฅผ ๋ฐ”๊พธ๊ฑฐ๋‚˜ ์‚ฌ์šฉ์ž ์ง€์ • ๋ฏธ๋“ค์›จ์–ด ์ฃผ์ž… ๊ฐ€๋Šฅ

๋ฏธ๋“ค์›จ์–ด ์ œ์–ด ์ข…๋ฅ˜ / ํ™•์žฅ

Use()

  • ์š”์ฒญ ํŒŒ์ดํ”„๋ผ์ธ์—์„œ ์ˆœ์„œ๋Œ€๋กœ ์ ์šฉ๋˜๋ฉฐ, ์ค‘๊ฐ„ ์ฒ˜๋ฆฌ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•จ. ๋‹ค์Œ ๋ฏธ๋“ค์›จ์–ด์—๊ฒŒ ์ œ์–ด๋ฅผ ์ „๋‹ฌํ•˜๊ธฐ ์ „์— ์š”์ฒญ ๋ฐ ์‘๋‹ต์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Œ

Run()

  • ํŒŒ์ดํ”„๋ผ์ธ์—์„œ ๋งˆ์ง€๋ง‰ ๋ฏธ๋“ค์›จ์–ด๋กœ ์‹คํ–‰๋˜๋ฉฐ, ๋‹ค์Œ ๋ฏธ๋“ค์›จ์–ด์—๊ฒŒ ์ œ์–ด๋ฅผ ์ „๋‹ฌํ•˜์ง€ ์•Š์Œ. ์‘๋‹ต์„ ์ƒ์„ฑํ•˜๊ณ  ์š”์ฒญ์„ ์™„์ „ํžˆ ์ฒ˜๋ฆฌํ•ด์•ผํ•จ

Map()

  • ๋ฏธ๋“ค์›จ์–ด์˜ ๋ถ„๊ธฐ๋ฅผ URL ๊ฒฝ๋กœ์— ๋”ฐ๋ผ ๋‚˜๋ˆ”. ์ด๋ฅผ ํ†ตํ•ด ๊ฐ๊ฐ ๋‹ค๋ฅธ ๋ฏธ๋“ค์›จ์–ด๋ฅผ ์ ์šฉํ•˜์—ฌ ์„œ๋กœ ๋‹ค๋ฅธ ๊ธฐ๋Šฅ์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ธฐ๋ณธ์ œ๊ณต ๋ฏธ๋“ค์›จ์–ด

์‚ฌ์šฉ์ž ์ง€์ • ๋ฏธ๋“ค์›จ์–ด

์ฐธ๊ณ ๋ฌธํ—Œ

PreviousMVCNextModel Binding

Last updated 1 year ago

๊ฐ ๋‹จ๊ณ„๋ณ„ ๋ฉ”์†Œ๋“œ๋ช…๊ณผ ์„ค๋ช…์€ ์—์„œ ํ™•์ธ ๊ฐ€๋Šฅ

MS Docs
MS Docs ์ฐธ๊ณ 
์‚ฌ์šฉ์ž ์ง€์ • ASP.NET Core ๋ฏธ๋“ค์›จ์–ด ์ž‘์„ฑ
MS Docs
Middleware pipeline with WebApplication
Middleware MVC and Razor Pages