✅ 25. 추천 기능 유효성 검증 및 예외 처리 고도화
목표: 사용자 요청에 대한 예외 상황을 명확히 처리하여 안정성 강화
핵심 구현 사항:
- @Valid, @NotNull, @Min, @Size 등을 이용해 DTO 유효성 제약 적용
- 고정 번호(fixedNumbers)가 6개 초과인 경우 예외 발생
- 잘못된 범위 요청 시 IllegalArgumentException 처리
- 공통 예외 포맷 적용: CommonResponse.error(...), ErrorResponse 활용
예외 응답 예시:
{
"message": "유효하지 않은 요청입니다",
"data": null,
"error": "INVALID_PARAM"
}
✅ 26. 공용 응답 및 예외 포맷 통일화
관련 클래스:
- CommonResponse<T>
- ErrorResponse
기능 요약:
- 성공 응답: CommonResponse.success(data) 또는 success(data, message)
- 오류 응답: CommonResponse.error(code, message) 또는 error(ErrorResponse)
- 필드 오류가 포함된 경우: Map<String, String> 형식으로 상세 반환
📌 프론트엔드와 연동 시 예외 상황을 일관된 구조로 처리 가능하도록 설계
✅ 27. AOP 기반 서비스 흐름 자동 로깅 적용 완료
클래스: CommonLogger
주요 기능:
- 컨트롤러/서비스 진입 시점 자동 로그 출력
- 반환값이 70자 초과 시 “길이 생략” 처리
- 예외 발생 시는 로깅하지 않고 GlobalExceptionHandler로 위임
적용 대상:
- controller..*, service..* 전체 계층
📌 실제 추천 API, 크롤링 API 호출 시 로그 흐름이 상세하게 출력되어 디버깅 효율 대폭 향상됨
✅ 28. 프론트엔드 인증 상태 연동 및 토큰 기반 요청 구성
관련 파일:
- AuthContext.jsx
- UseAxios.jsx
주요 구현 내용:
- React Context API로 사용자 인증 상태(email, token, refreshToken 등) 관리
- 로그인 시 토큰 로컬 스토리지 저장 → axios 요청 시 헤더 자동 삽입
- useAxios 훅에서 multipart/form-data 요청도 처리 가능하도록 설계
📌 로그인 후 추천 요청 및 마이페이지 조회 등에 토큰 기반 보안 연동 완료
📌 다음 작업 예정 항목 (업데이트)
- Swagger 문서에 예외 응답 예시 추가 (ErrorResponse 포맷 적용)
- 추천 결과 저장 기능 (user_lotto_numbers 테이블 연동)
- 마이페이지 내 응모 기록 조회 API 구현
- 관리자용 응모 결과 평가 API 설계 및 배포
- 차트 시각화용 데이터 API 정제 (히트맵, 빈도 막대그래프 등)
'DEV-LOG > Lottomate' 카테고리의 다른 글
| [Project Lottomate] 개발일지(6) (0) | 2025.04.25 |
|---|---|
| [Project Lottomate] 개발일지(4) (0) | 2025.04.21 |
| [Project Lottomate] 개발일지(3) (0) | 2025.04.20 |
| [Project Lottomate] 개발일지(2) (0) | 2025.04.18 |
| [Project Lottomate] 개발일지(1) (0) | 2025.04.16 |