Note 모듈 적용 가이드
이 문서는 기존 프로젝트에 Azunt.NoteManagement 모듈을 적용하는 절차를 설명합니다.
기존 .NET 프로젝트에 Azunt 모듈 적용하기
이 강좌는 NuGet 패캐지로 게시한 각각의 모듈을 새로운 프로젝트에 설치해서 사용하는 방법을 데모로 진행합니다. Resource 모듈을 기준으로 설명하겠습니다.
1. NuGet 패키지 설치
먼저 아래 NuGet 패키지를 설치합니다.
Azunt.NoteManagement.dll
이 패키지는 Note 테이블 관리, CRUD, 초기화 및 DI 구성을 포함합니다.
2. Notes 테이블 초기화 메서드 작성
초기화 로직을 다음과 같이 구성합니다.
\Infrastructures\00_Initializers\02_SecurityInitializer.cs
private static void InitializeNotesTable(IServiceProvider services, ILogger logger, bool forMaster)
{
string target = forMaster ? "마스터 DB" : "테넌트 DB";
try
{
Azunt.NoteManagement.NotesTableBuilder.Run(services, forMaster);
logger.LogInformation($"{target}의 Notes 테이블 초기화 완료");
}
catch (Exception ex)
{
logger.LogError(ex, $"{target}의 Notes 테이블 초기화 중 오류 발생");
}
}
3. Notes 테이블 초기화 호출 추가
DatabaseInitializer
또는 프로젝트의 초기화 루틴에 Notes 초기화를 포함합니다.
\Infrastructures\00_DatabaseInitializer.cs
try
{
// 보안(Security) 관련 테이블 초기화
SecurityInitializer.Initialize(services, forMaster: true);
logger.LogInformation("보안 관련 테이블 초기화 완료");
// Notes 테이블 초기화
SecurityInitializer.InitializeNotesTable(services, forMaster: true);
}
catch (Exception ex)
{
logger.LogError(ex, "보안 또는 Notes 테이블 초기화 중 오류 발생");
}
4. Program.cs에서 Note 모듈 DI 등록
#region NoteManagement
// Note 모듈 등록 (EF Core 모드 사용)
builder.Services.AddDependencyInjectionContainerForNoteApp(
connectionString,
Azunt.Models.Enums.RepositoryMode.EfCore
);
builder.Services.AddTransient<NoteAppDbContextFactory>();
#endregion
5. 데이터베이스 초기화 트리거
보통 Program.cs
의 app
실행 직전에 다음과 같이 초기화를 트리거합니다.
var app = builder.Build();
#region 데이터베이스 및 인증 스키마 초기화
var config = app.Services.GetRequiredService<IConfiguration>();
bool initializeDatabase = config.GetValue<bool>("Database:InitializeOnStartup");
if (initializeDatabase)
{
DatabaseInitializer.Initialize(app.Services);
}
else
{
Console.WriteLine("Database initialization is skipped (Database:InitializeOnStartup = false)");
}
#endregion
appsettings.json
에서"Database": { "InitializeOnStartup": true }
설정이 필요합니다.
추천 자료: ASP.NET Core 인증 및 권한 부여
추천 자료: .NET Blazor에 대해 알아보시겠어요? .NET Blazor 알아보기를 확인해보세요!