졸업작품 22일차

임선구·2025년 6월 27일

졸업작품

목록 보기
22/29

아 격하게 오류 고치고 싶다!!!!!!!!

오늘의 잔디


🔧 일정 기능 오류 정리 (2025.06.27)

1️⃣ 일정 완료 상태 업데이트 실패 (체크박스)

  • 요청 방식: originally PATCH /api/events/{id}/complete → 나중에 POST로 변경
  • 결과: 405 Method Not Allowed, 서버 로그 미출력

🔍 시도한 조치

  • 컨트롤러를 @PatchMapping에서 @PostMapping으로 변경했으나 여전히 작동하지 않음
  • 프론트 fetch 메서드도 method: 'POST'로 맞췄음
  • SecurityConfig에서 POST는 이미 허용되어 있었음
  • 컨트롤러 메서드 내부에서 토큰 파싱 및 사용자 검증도 정상적

⚠️ 의심되는 원인

  • 클라이언트 fetch와 Spring의 URL path variable 매핑 불일치 가능성
  • JWT 인증 관련 Authorization 헤더가 누락되었거나 파싱 실패
  • CORS 정책 문제로 서버까지 도달하지 못했을 가능성

2️⃣ 일정 드래그 이동 실패 (/move 엔드포인트)

  • 요청 방식: PATCH /api/events/{id}/move
  • 오류: 405 Method Not Allowed, 서버 콘솔에 아무 로그도 출력되지 않음

🔍 시도한 조치

  • 컨트롤러에 @PatchMapping("/{id}/move")@RequestMapping(method = RequestMethod.PATCH)로 변경하여 테스트함
  • SecurityConfig에서 PATCHsetAllowedMethods에 이미 명시되어 있었음
  • fetch 요청은 아래와 같이 작성됨:
fetch(`/api/events/${data.id}/move`, {
  method: 'PATCH',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': `Bearer ${getToken()}`
  },
  body: JSON.stringify({ newDate: targetDate })
});
  • 프론트에서 보낸 요청 URL, 메서드 모두 정확
  • System.out.println("✅ 일정 이동 PATCH 요청 도착");도 출력되지 않음 → 컨트롤러에 아예 도달하지 않음

⚠️ 의심되는 원인

  • Spring이 PATCH 요청을 내부적으로 필터하거나 DispatcherServlet에서 매핑하지 못하는 경우
  • @PatchMapping이 아닌 경우 @RequestMapping(method = RequestMethod.PATCH)로도 명확히 인식 못하는 상황
  • CORS OPTIONS 프리플라이트 요청이 실패한 경우 실제 요청까지 도달하지 못하는 경우 있음
  • 톰캣 또는 Spring 버전에 따라 PATCH 메서드 인식 문제 있을 수 있음

📌 관련 구글링 키워드

  • spring boot @PatchMapping 405 not allowed
  • spring boot controller patch request not working
  • fetch patch method spring controller
  • spring boot move endpoint 405 error
  • spring security patch method cors preflight

profile
끝까지 가면 내가 다 이겨

0개의 댓글