SEAN
4bc08715fa
improvement: 공통 응답/에러 포맷 고정 ( #164 )
...
- FieldError DTO 공통화 (SPMS.Domain/Common)
- ValidationErrorData + ApiResponse.ValidationFail() 추가
- InvalidModelStateResponseFactory로 ModelState 에러 ApiResponse 변환
- Controller Unauthorized 응답 throw SpmsException으로 통일 (에러코드 102)
- MessageValidationService ValidationErrorDto → FieldError 교체
Closes #164
2026-02-24 16:24:56 +09:00
SEAN
58b94c6298
feat: API Rate Limiting 및 Swagger UI 구현 ( #30 )
...
- ASP.NET Core 내장 Rate Limiting (FixedWindow, IP 기반 분당 100회)
- 한도 초과 시 HTTP 429 + ApiResponse(에러코드 106) 반환
- Swashbuckle.AspNetCore 6.9.0 기반 Swagger UI 추가
- 도메인별 API 문서 그룹 (all, public, auth 등 10개)
- JWT Bearer 인증 UI (Authorize 버튼)
- X-Service-Code/X-API-KEY 커스텀 헤더 자동 표시 필터
- Microsoft.AspNetCore.OpenApi 제거 (Swashbuckle과 호환 충돌)
Closes #30
2026-02-09 17:11:46 +09:00
SEAN
cd8270c5c0
feat: DI 컨테이너 및 서비스 등록 구조화 ( #26 )
...
- Infrastructure/DependencyInjection.cs: AddInfrastructure() 확장 메서드
- Application/DependencyInjection.cs: AddApplication() 확장 메서드
- API/Extensions/ApplicationBuilderExtensions.cs: UseMiddlewarePipeline() 확장 메서드
- Program.cs 정리 (DI/파이프라인 분리)
Closes #26
2026-02-09 16:25:44 +09:00
SEAN
3125726e2c
fix: Development 환경에서 UseHttpsRedirection 비활성화 ( #24 )
SPMS_API/pipeline/head This commit looks good
2026-02-09 15:33:56 +09:00
SEAN
d6b15c3cd8
feat: Serilog 구조적 로깅 설정 ( #22 )
...
- appsettings.json/Development.json에 Serilog 섹션 추가 (Console/File Sink, Rolling Daily)
- RequestIdMiddleware 구현 (X-Request-ID 헤더 발급/반환)
- Program.cs에 Serilog 호스트 빌더 + UseSerilogRequestLogging 등록
- 환경별 로그 레벨 분리 (Development: Debug, Production: Warning)
2026-02-09 15:10:17 +09:00
SEAN
2d30aaf212
feat: JWT 인증 모듈 구현 ( #20 )
...
- IJwtService 인터페이스 (Application Layer)
- JwtSettings POCO (Options Pattern)
- JwtService 구현 (Access Token 생성/검증, Refresh Token 생성)
- AddJwtAuthentication/AddAuthorizationPolicies 확장 메서드
- Program.cs에 인증/인가 미들웨어 등록 (파이프라인 순서 10~11번)
- NuGet: System.IdentityModel.Tokens.Jwt, Microsoft.AspNetCore.Authentication.JwtBearer
2026-02-09 14:59:36 +09:00
SEAN
787190f512
feat: Generic Repository 및 UnitOfWork 패턴 구현 ( #18 )
...
- IRepository<T> 구현체: CRUD, 페이징, 조건 검색 지원
- IUnitOfWork 구현체: 트랜잭션 관리 (Begin/Commit/Rollback)
- Program.cs에 DI 등록 (AddScoped)
Closes #18
2026-02-09 14:44:31 +09:00
SEAN
a9f6a436c4
feat: SpmsException 및 글로벌 예외 처리 미들웨어 구현 ( #16 )
2026-02-09 14:33:37 +09:00
SEAN
f02a3884a2
refactor: 클린 아키텍쳐 적용 및 프로젝트 분리 ( Resolves #5 )
...
1. 프로젝트 이름 변경
2. 계층 추가
3. 설정 파일 수정
2026-01-19 16:37:50 +09:00