appsettings.json 파일
추천 자료: ASP.NET Core 인증 및 권한 부여
appsettings.json과 secrets.json 설명
1. appsettings.json
- 역할: 애플리케이션의 환경 설정을 저장하는 파일
- 위치: 프로젝트 루트 디렉터리
- 주요 내용: 데이터베이스 연결 문자열, 로깅 설정, 기타 애플리케이션 구성값
예제 (기본 형식)
{
"ConnectionStrings": {
"DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=Hawaso;Trusted_Connection=True;MultipleActiveResultSets=true"
},
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
},
"AllowedHosts": "*"
}
ConnectionStrings
: 데이터베이스 연결 문자열을 저장Logging
: 로깅 수준을 설정AllowedHosts
: 허용된 호스트를 지정
2. secrets.json
- 역할: 민감한 정보(비밀번호, API 키 등)를 저장하는 보안 파일
- 위치: 사용자 프로필 디렉터리 (
appsettings.json
과 다른 경로) - Git에 포함되지 않음: 소스 코드 저장소에서 제외되어 보안이 유지됨
- 환경별 파일 없음:
appsettings.Development.json
같은 환경별 설정이 없고, 한 개의 파일로 관리됨
예제
{
"ConnectionStrings": {
"DefaultConnection": "Server=localhost;Database=Hawaso;User Id=sa;Password=SuperSecretPassword;"
},
"ApiKeys": {
"GoogleMaps": "YOUR_SECRET_GOOGLE_MAPS_API_KEY"
}
}
secrets.json
은 Git에서 제외되므로appsettings.json
보다 보안성이 높음- API 키, 비밀번호 같은 데이터는
appsettings.json
이 아닌secrets.json
에 저장하는 것이 좋음
3. Blazor Server에서 secrets.json 사용 방법
1) 비밀 저장소 활성화
dotnet user-secrets init
2) 비밀 추가
dotnet user-secrets set "ConnectionStrings:DefaultConnection" "Server=localhost;Database=Hawaso;User Id=sa;Password=SuperSecretPassword;"
3) Blazor Server에서 불러오기
using Microsoft.Extensions.Configuration;
var builder = WebApplication.CreateBuilder(args);
builder.Configuration.AddUserSecrets<Program>(); // secrets.json 추가
var connectionString = builder.Configuration.GetConnectionString("DefaultConnection");
Console.WriteLine($"DB 연결 문자열: {connectionString}");
4. 차이점 정리
특징 | appsettings.json | secrets.json |
---|---|---|
목적 | 일반적인 애플리케이션 설정 | 민감한 정보 저장 |
저장 위치 | 프로젝트 폴더 | 사용자 프로필 디렉터리 |
Git 포함 여부 | 포함됨 | 포함되지 않음 |
환경별 지원 | 가능 (appsettings.Development.json 등) |
없음 |
5. 정리
appsettings.json
은 애플리케이션의 일반적인 설정을 저장하는 파일secrets.json
은 보안이 필요한 데이터를 저장하며, Git에 포함되지 않음Configuration
을 통해 두 파일의 데이터를 쉽게 불러와 사용할 수 있음- API 키나 비밀번호 같은 정보는
secrets.json
을 사용하여 보안 유지
추천 자료: .NET Blazor에 대해 알아보시겠어요? .NET Blazor 알아보기를 확인해보세요!