Backend 개발/.NET
ASP.NET [DB 연결 문자열(Connection Strings) 설정 방법]
수달리즘
2025. 6. 19. 10:25
반응형
Connection Strings
ASP.NET Core를 이용하여 개발 시 DB 연결 문자열(DB 접속 정보)을 하드코딩하는 대신 appsettings.json에 한 번만 설정하여 필요할 때마다 설정값을 가져와 재사용할 수 있다. 스프링으로 따지면 application.yml(혹은 properties) 파일로 환경/설정 정보를 관리하는 것과 유사하며 보안, 유지보수 관점에서 유용해진다.
appsettings.json 파일
주로 asp.net Core 응요프로그램의 설정 저장하는 데 사용
예제
1) appsettings.json 파일에 설정 추가
{
// 연결 정보 설정
"ConnectionStrings": {
"DefaultConnection": "Server=127.0.0.1;user=root;password=1234;database=test",
"AdoMariaDBConnection": "Server=localhost;Database=test;Uid=root;Pwd=1234;"
},
..
}
2) Program.cs 파일에서 DB 연결 정보 세팅(DI 하는 부분)
// Program.cs 파일 설정
var builder = WebApplication.CreateBuilder(args);
// Add services to the container.
builder.Services.AddControllersWithViews(); // 뷰가 있는 컨트롤러가 웹 애플리케이션에 연결됨
// appsettings.json 에서 DB 연결 정보 가져오기
// ??"" ==> default 값 "" 세팅
string? adoConnectionStrings = builder.Configuration.GetConnectionString("AdoMariaDBConnection")??"";
// 생성된 객체가 없으면 필요할 때마다 새로 생성 및 소멸해줌(의존성 주입과 관련)
builder.Services.AddTransient<ILoginService, LoginService>();
// DB 연결 정보 의존 주입
builder.Services.AddTransient<ILoginMapper, LoginMapper>(provider => new LoginMapper(adoConnectionStrings));
// db
builder.Services.AddDbContext<SchoolContext>
( options => options.UseMySql(builder.Configuration.GetConnectionString("DefaultConnection"),
ServerVersion.AutoDetect(builder.Configuration.GetConnectionString("DefaultConnection")))
);
string? adoConnectionStrings = builder.Configuration.GetConnectionString("AdoMariaDBConnection")??"";
↑ 이 부분은 기본값을 세팅할 수도 있지만 세팅되어 있지 않을 경우 다음과 같이 예외를 던질 수도 있다.
var conString = builder.Configuration.GetConnectionString("AdoMariaDBConnection") ??
throw new InvalidOperationException("Connection string 'AdoMariaDBConnection'" +
" not found.");
3) 실제 DB 작업하는 클래스에서 사용
public class LoginMapper : ILoginMapper
{
private string connectionString;
// appsettings.json 에 설정한 연결 정보 주입됨
public LoginMapper(string conn)
{
connectionString = conn;
}
..
}
728x90
반응형