ASP.NET Core / .NET 8에서 설정 중 설정에 접근하기
ASP.NET Core는 Microsoft가 개발한 크로스 플랫폼, 오픈 소스 웹 프레임워크로, 개발자가 현대 웹 애플리케이션과 클라우드 네이티브 애플리케이션을 효율적으로 구축할 수 있게 합니다. .NET의 최신 버전으로 ASP.NET Core는 Windows, Linux, 그리고 macOS에서 실행 가능한 웹 애플리케이션 개발을 위한 가볍고, 안전하며, 유연한 플랫폼을 지속적으로 제공합니다.
이 기사에서 우리는 Tim Corey의 10분간의 교육 비디오를 따라 ASP.NET Core에서 설정 중 구성에 접근하는 방법에 대해 더 깊이 살펴보겠습니다. Tim은 개발자들이 프로그램.cs에서 종속성 주입이 완전히 구성되기 전에 구성 값을 가져오는 방법을 시연하며, 이는 유연하고 유지보수가 쉬운 웹 앱을 만드는 필수 기술입니다.
구성에 초기 접근이 중요한 이유
Tim Corey는 ASP.NET Core에서 앱 설정의 중요성을 강조하면서 시작합니다. Tim에 따르면 appsettings.json은 개발자가 애플리케이션을 다시 컴파일하거나 배포할 필요 없이 값을 변경할 수 있도록 해주기 때문에 "구성을 저장하기에 좋은 장소"입니다.
웹 개발에서 API의 URL을 설정하거나 환경에 따른 매개변수를 조정하는 것과 같은 서비스 구성을 사용하는 것이 일반적입니다. 일반적으로 .NET Core 웹 앱에서는 개발자가 종속성 주입을 통해 구성에 접근합니다:
@inject IConfiguration config그러나 Tim은 때로는 프로그램.cs에서 HTTP 클라이언트 또는 기타 서비스를 구성할 때와 같은 설정 중에 이러한 구성 값에 접근해야 할 수도 있다고 지적합니다. 이렇게하면 개발 환경, 스테이징 또는 프로덕션과 같은 다른 환경 간을 이동할 때 애플리케이션이 유연하고 적응할 수 있도록 보장합니다.
최소 Blazor 앱 설정
설명을 위해 Tim은 간단한 Blazor 애플리케이션을 생성하며, 프로그램.cs에 모든 초점을 맞추기 위해 상호 작용을 끕니다. 그는 ASP.NET Core의 아키텍처가 구성과 코드를 분리하여 웹 앱과 클라우드 네이티브 프로젝트를 관리하기 쉽게 만든다는 것을 강조합니다.
이 접근 방식은 모든 Windows, Linux 및 macOS에서 동일한 구성 로직이 수정 없이 작동하는 .NET 플랫폼의 크로스 플랫폼 성격과도 일치합니다.
앱 설정을 사용하여 HTTP 클라이언트 구성
Tim은 프로그램.cs에서 HTTP 클라이언트가 등록되는 시나리오를 설명합니다:
builder.Services.AddHttpClient("LocalAPI", client =>
{
client.BaseAddress = new Uri("https://localhost:7654");
});이 방식이 작동하며, Tim은 URL을 하드코딩하는 것이 이상적이지 못하다고 설명합니다. API 엔드포인트가 변경되면 개발자는 코드를 업데이트하고 배포를 위해 풀 요청을 작성해야 합니다. 대신 appsettings.json에 값을 저장할 것을 권장합니다:
{
"LocalAPI": "https://localapi.fromconfig"
}이렇게 하면 프레임워크가 구성을 동적으로 가져와, 재컴파일을 피하고 배포 중 오류를 줄일 수 있습니다. 이 또한 안전하고 유지보수 가능한 웹 애플리케이션에 대한 모범 사례와 일치합니다.
프로그램.cs에서 구성에 접근하기
Tim은 종속성 주입 전에 구성 값을 가져오는 방법을 시연합니다:
var localApiBaseAddress = builder.Configuration.GetValue<string>("LocalAPI");Tim이 강조한 주요 점들:
builder.Configuration은 builder.Build() 전에 가능합니다.
값은 appsettings.json, 환경 변수, 사용자 비밀, 또는 Azure Key Vault에서 가져올 수 있습니다.
- 이를 통해 서비스, 로깅, 또는 다른 웹 프레임워크 구성 요소를 동적으로 구성할 수 있습니다.
Tim은 LocalAPI URL이 올바르게 검색되고 있는지 확인하기 위해 중단점을 설정합니다. 그는 이 방법이 모든 지원 플랫폼에서 작동하여 교차 플랫폼 개발에 이상적임을 주목합니다.
구성 누락 처리
Tim은 구성 키가 누락되거나 null일 수 있는 시나리오에 대해 설명합니다. 그는 GetValue를 사용하여 기본값을 제공할 수 있음을 보여줍니다:
var localApiBaseAddress = builder.Configuration.GetValue<string>("LocalAPI", "https://localhost:7654");이를 통해 구성되지 않아도 애플리케이션이 실행 준비가 되도록 하여 오류 처리와 개발자의 생산성을 향상시킵니다. 또한 클라우드 배포 또는 다양한 플랫폼에서 런타임 문제의 가능성을 줄입니다.
조기 구성 접근의 이점
Tim은 설정 과정에서 구성 끌어올림의 여러 가지 이점을 설명합니다:
동적 설정: HttpClient와 같은 서비스는 환경별 엔드포인트를 사용할 수 있습니다.
재컴파일 회피: URL 또는 기타 설정 변경 시 더 이상 코드 변경이 필요하지 않습니다.
유연한 로깅 및 서비스: 로그기 또는 다른 웹 프레임워크 서비스를 구성 값으로 구성할 수 있습니다.
- 다중 소스 지원: 구성은 appsettings.json, 환경 변수, 사용자 비밀, 또는 클라우드 키 금고에서 가져올 수 있습니다.
그는 이 접근법이 애플리케이션을 가볍고 유지 보수 가능하게 유지하면서 ASP.NET Core 프레임워크와 .NET 플랫폼의 이점을 최대한 활용하도록 하는 것을 강조합니다.
애플리케이션 실행 및 테스트 (6:03–7:36)
Tim은 코드를 정리하고 앱을 실행하는 방법을 보여줍니다. 그는 LocalAPI URL이 구성에서 가져오거나 기본값으로 돌아가도록 설정합니다:
var localApiBaseAddress = builder.Configuration.GetValue<string>("LocalAPI", "https://localhost:7654");이 유연한 설정은 개발자가 하드코딩된 URL이나 사소한 변경을 위한 반복적인 풀 요청에 대해 걱정하지 않고 웹 앱을 계속 개발할 수 있게 해줍니다. 또한 Linux, Windows, macOS에서의 교차 플랫폼 배포가 매끄럽도록 보장합니다.
결론
Tim Corey는 ASP.NET Core / .NET 8에서 설정 중 구성을 접근하는 것의 단순성과 효율성을 강조하면서 다음과 같이 설명을 마칩니다:
builder.Configuration.GetValue()개발자는 다음을 할 수 있습니다:
서비스를 동적으로 구성할 수 있습니다
프레임워크에서 값을 하드코딩하지 않습니다
다양한 환경과 플랫폼을 지원합니다
- 개발자 생산성과 오류 처리를 개선합니다
이 기술은 안전하고 유지 보수 가능하며 클라우드 준비가 된 웹 애플리케이션을 만드는 데 필수적입니다. Tim의 실용적인 데모는 가벼운 교차 플랫폼 ASP.NET Core 애플리케이션도 현대 웹 개발에 강력하고 유연하며 준비될 수 있음을 강조합니다.
Tim Corey의 비디오는 ASP.NET Core에서 구성 관리를 마스터하려는 개발자에게 반드시 봐야 하는 자료입니다. 그의 단계를 따라하면 애플리케이션이 유연하고 유지 보수 가능하며 교차 플랫폼 배포, 클라우드 환경, 현대 웹 아키텍처에 준비되었는지 확인할 수 있습니다.

