๐ŸชŸ
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
  • ์˜๋ฏธ์™€ ์—ญํ• 
  • ๊ตฌ์„ฑ
  • ์ฝ”๋“œ ์‹คํ–‰ ํ๋ฆ„
  • program.cs ์ฝ”๋“œ
  • ์ฐธ๊ณ  ๋ฌธํ—Œ

Program.cs

PreviousIntroNextDependency Injection

Last updated 1 year ago

์˜๋ฏธ์™€ ์—ญํ• 

  • ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์‹œ์ž‘ ์ฝ”๋“œ๊ฐ€ ์จ์žˆ๋Š” ํŒŒ์ผ

  • C/C++์—์„œ์˜ main ํ•จ์ˆ˜ ํŒŒ์ผ ์—ญํ• ์„ ํ•จ

  • ์•ฑ์—์„œ ์š”๊ตฌํ•˜๋Š” ์„œ๋น„์Šค๋ฅผ ์„ค์ •ํ•จ

  • ์•ฑ์˜ ์š”์ฒญ์„ ํ•ธ๋“ค๋งํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋ฏธ๋“ค์›จ์–ด๋“ค์„ ๊ตฌ์„ฑํ•˜๊ณ  ํŒŒ์ดํ”„๋ผ์ด๋‹ ํ•จ

๊ตฌ์„ฑ

  • ํ”„๋กœ๊ทธ๋žจ ์‹œ์ž‘์˜ต์…˜ ๋ฐ DI ์„œ๋น„์Šค๋ฅผ ์ง€์ •ํ•˜๋Š” ๊ฒƒ์„ Startup.cs ํŒŒ์ผ์—์„œ ํ–ˆ์œผ๋‚˜, ํ˜„์žฌ๋Š” program.cs ํŒŒ์ผ๋กœ ํ†ตํ•ฉ๋จ

  • main ํด๋ž˜์Šค๋ฅผ ๋งŒ๋“ค์–ด ์‹คํ–‰ ๋ฉ”์†Œ๋“œ๋ฅผ ๋งŒ๋“ค์–ด์„œ ์‹คํ–‰ํ–ˆ์ง€๋งŒ, ์œผ๋กœ๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ. VS 2022 ๊ธฐ์ค€์œผ๋กœ ํ”„๋กœ์ ์Šค ์ƒ์„ฑ์‹œ ์ตœ์ƒ์œ„ ๋ฌธ ์„ธํŒ…์ด ๋””ํดํŠธ๋กœ ์„ค์ •๋ผ์žˆ์Œ (C# 9 ๋ถ€ํ„ฐ)

์ฝ”๋“œ ์‹คํ–‰ ํ๋ฆ„

๊ธฐ๋ณธ์ ์ธ ํ๋ฆ„์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Œ

  1. using namespace

  2. builder์˜ ์ธ์Šคํ„ด์Šค๋ฅผ ๋งŒ๋“ฆ (class WebApplicationBuilder)

  3. ์ข…์†์„ฑ ์ฃผ์ž…(Dependency Injection) : ๋นŒ๋” ์ธ์Šคํ„ด์Šค์— ์„œ๋น„์Šค๋ฅผ ๋“ฑ๋กํ•จ (์ปจํŠธ๋กค๋Ÿฌ ๋“ฑ)

  4. ๋นŒ๋”๋กœ ์•ฑ์˜ ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ฆ (class WebApplication)

  5. ๋ฏธ๋“ค์›จ์–ด ์„ค์ • : ์•ฑ์—์„œ ์‚ฌ์šฉํ•˜๊ณ ์ž ํ•˜๋Š” ๊ฒƒ๋“ค์„ ์ง€์ •ํ•จ

  6. ์•ฑ์„ ์‹คํ–‰ํ•จ

program.cs ์ฝ”๋“œ

// 1. using namespace
using Microsoft.AspNetCore.Builder;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;

// 2. builder์˜ ์ธ์Šคํ„ด์Šค๋ฅผ ๋งŒ๋“ฆ : ๋ฏธ๋ฆฌ ๊ตฌ์„ฑ๋œ ๊ธฐ๋ณธ๊ฐ’์„ ์‚ฌ์šฉํ•˜์—ฌ WebApplication์˜ ์ธ์Šคํ„ด์Šค builder๋ฅผ ์ƒ์„ฑํ•จ
var builder = WebApplication.CreateBuilder(args);

// 3. ์ข…์†์„ฑ ์ฃผ์ž…(Dependency Injection)
// Add services to the container. 
builder.Services.AddControllers();
// ํ•„์š”์‹œ ์„œ๋น„์Šค๋ฅผ ๋นŒ๋” ์ปจํ…Œ์ด๋„ˆ์— ๋” ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Œ

// 4. ๋นŒ๋”๋กœ ์•ฑ์˜ ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ฆ
var app = builder.Build();

// 5. ๋ฏธ๋“ค์›จ์–ด ์„ค์ •
// Configure the HTTP request pipeline.
// Devleop ๋ฒ„์ „์ด ์•„๋‹ ๋•Œ Exception page๋ฅผ ์‚ฌ์šฉํ•จ
if (!app.Environment.IsDevelopment())
{
    app.UseDeveloperExceptionPage();
}

// Routing์„ ์‚ฌ์šฉํ•จ
app.UseRouting();

// Endpoint ์ง€์ •
app.UseEndpoints(endpoints => { endpoints.MapControllers(); });

// 6. ์•ฑ์„ ์‹คํ–‰ํ•จ
// ์„ค์ •์ด ๋‹ค ๋๋‚ฌ์œผ๋ฉด ์•ฑ์„ ์‹คํ–‰ํ•จ
app.Run();

์ฐธ๊ณ  ๋ฌธํ—Œ

์ตœ์ƒ์œ„ ๋ฌธ(Top-level statements)
MS Docs