Note 모듈 적용 가이드

  • 2 minutes to read

이 문서는 기존 프로젝트에 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.csapp 실행 직전에 다음과 같이 초기화를 트리거합니다.

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 } 설정이 필요합니다.

VisualAcademy Docs의 모든 콘텐츠, 이미지, 동영상의 저작권은 박용준에게 있습니다. 저작권법에 의해 보호를 받는 저작물이므로 무단 전재와 복제를 금합니다. 사이트의 콘텐츠를 복제하여 블로그, 웹사이트 등에 게시할 수 없습니다. 단, 링크와 SNS 공유, Youtube 동영상 공유는 허용합니다. www.VisualAcademy.com
박용준 강사의 모든 동영상 강의는 데브렉에서 독점으로 제공됩니다. www.devlec.com