졸업작품 13일차

임선구·2025년 5월 24일

졸업작품

목록 보기
13/29

오늘의 잔디


📅 [캘린더 프로젝트] JWT 인증 기반 일정 추가/삭제 기능 완성 (2025.05.24)

✅ 주요 작업 내용

1. 일정 삭제 기능 최종 구현

  • x 버튼 클릭 시 삭제 확인 모달 띄우기
  • 확인 후 DELETE 요청 전송
  • JWT 인증 포함 (Authorization: Bearer {token})
  • 삭제 후 애니메이션 및 UI 갱신까지 완료

2. Spring Boot 백엔드 수정

  • @Transactional 추가로 deleteByUserAndTitleAndTypeAndDate(...) 트랜잭션 에러 해결
  • 인증 사용자 정보 추출 메서드 getUserFromRequest(...) 완성
  • 로그 추가 (System.out.println)로 사용자 인증 및 삭제 요청 디버깅

3. JWT 기반 사용자별 데이터 처리 검증

  • 로그인 후 추가한 일정 → 새로고침 시 정상 유지 확인
  • 로그아웃 후 재로그인 → 동일 일정 유지 확인
  • 다른 사용자 로그인 시 → 다른 사용자의 일정 미노출 확인

테스트 결과: 모든 사용자별 데이터 분리 정상 작동!


🔧 수정한 주요 파일

  • EventController.java

    • 일정 추가, 삭제, 조회 시 사용자 인증 적용
    • @Transactional, 인증 로그 출력 추가
  • JwtAuthenticationFilter.java

    • 인증 성공 시 사용자명 로그 출력 추가
  • index.js

    • fetch(DELETE) 요청 시 토큰 포함
    • 실패 시 상태코드 로그 출력
  • style.css

    • 일정 추가/삭제 모달 스타일 개선
    • .header 높이 및 폰트 스타일 수정

🧪 오늘 테스트한 항목

  • 일정 추가 후 새로고침 시 유지됨
  • 로그아웃 후 다시 로그인해도 유지됨
  • 다른 사용자로 로그인 시 test 계정 일정이 보이지 않음
  • 삭제 요청 시 서버, DB, UI 모두 정상 반영됨

✍️ 느낀 점

오늘은 JWT 인증 기반으로 사용자별 일정을 완전히 분리하고, 삭제 기능까지 완성했다. 삭제 트랜잭션 이슈를 @Transactional로 해결하며 Spring JPA의 동작 원리에 대해 더 이해할 수 있었고, 콘솔 로그를 활용한 디버깅의 중요성도 다시 느꼈다.


profile
끝까지 가면 내가 다 이겨

0개의 댓글