본문 바로가기
DEV-LOG/Lottomate

[Project Lottomate] 개발일지(5)

by DahnDellDev 2025. 4. 22.

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