3.7 KiB
3.7 KiB
STEP 9 — DI 등록 (Program.cs) + 설정 (appsettings.json)
사전 확인 (작업 전 반드시 수행)
src/Web/Program.cs파일을 열어 전체 내용을 읽는다.src/Web/appsettings.json파일을 열어 전체 내용을 읽는다.- 아래 항목을 확인하고 기록한다:
- STEP 7이 완료되어
ExperionFastService클래스가 존재하는가? - STEP 8이 완료되어
ExperionFastController가 존재하는가? Program.cs에ExperionFastServiceDI 등록이 이미 있는가? → 있으면 작업 1 건너뜀Program.cs에ExperionFastCleanupService등록이 이미 있는가? → 있으면 작업 1 건너뜀appsettings.json에"Fast"섹션이 이미 있는가? → 있으면 작업 2 건너뜀- 기존 서비스 등록 위치(줄 번호)를 확인한다 (
builder.Services.Add...블록)
- STEP 7이 완료되어
작업 1 — Program.cs 서비스 등록
위치: 기존 builder.Services 등록 블록 마지막 줄 아래
// ── FastTable Service ─────────────────────────────────────────────────────────
// 중요: Singleton으로 하나만 생성 후 IExperionFastService와 IHostedService 양쪽에 같은 인스턴스 공유
builder.Services.AddSingleton<ExperionFastService>();
builder.Services.AddSingleton<IExperionFastService>(sp => sp.GetRequiredService<ExperionFastService>());
builder.Services.AddHostedService(sp => sp.GetRequiredService<ExperionFastService>());
// ── FastTable Cleanup Service ─────────────────────────────────────────────────
builder.Services.AddHostedService<ExperionFastCleanupService>();
작업 2 — appsettings.json 설정 추가
위치: appsettings.json 최상위 JSON 객체 안, 마지막 속성 뒤
"Fast": {
"MaxConcurrentSessions": 3,
"MaxRowsPerSession": 5000000,
"FlushIntervalMs": 2000
}
사후 확인 (작업 후 반드시 수행)
Program.cs파일을 다시 열어 변경 내용을 읽는다.appsettings.json파일을 다시 열어 변경 내용을 읽는다.- 아래 항목을 하나씩 확인한다:
AddSingleton<ExperionFastService>()등록이 있는가?AddSingleton<IExperionFastService>(sp => ...)등록이 있는가?AddHostedService(sp => sp.GetRequiredService<ExperionFastService>())등록이 있는가?- 위 3줄이 올바른 순서인가? (Singleton 먼저, HostedService 마지막)
AddHostedService<ExperionFastCleanupService>()등록이 있는가?appsettings.json에"Fast"섹션이 있고 JSON 형식이 올바른가?
dotnet build src/Web실행 → 에러/경고 0개 확인- 문제가 있으면 수정 후 다시 빌드 확인
⚠️ 주의:
AddHostedService<ExperionFastService>()단독 사용 금지.
이렇게 하면 Singleton과 별개의 인스턴스가 생성되어 세션 상태가 공유되지 않음.
완료 조건
dotnet build src/Web결과: 에러 0, 경고 0- DI 등록 3줄 + Cleanup 등록 1줄 모두 존재
appsettings.json에"Fast"섹션 존재
완료 일시: 2026-04-29
AddSingleton<ExperionFastService>()등록 완료AddSingleton<IExperionFastService>(sp => ...)등록 완료AddHostedService(sp => sp.GetRequiredService<ExperionFastService>())등록 완료AddHostedService<ExperionFastCleanupService>()등록 완료appsettings.json에"Fast"섹션 추가 완료- 빌드 검증 완료 (0 Error, 0 New Warning)