<페이징 Pageable>
기능 설명
Member, Assignment 목록 조회 API에 페이징(Pageable) 적용
현재 getAllMembers(), getAllAssignments()는 DB에 있는 데이터를 전체 조회해서 한 번에 반환하고 있음. 데이터가 많아지면 응답 크기와 조회 성능 모두 문제가 될 수 있음.
필요한 이유
데이터가 늘어날수록 전체 조회 방식은 응답 시간 증가, 메모리 사용량 증가로 이어져 실무에서는 서버 부하의 주요 원인이 됨. 클라이언트 입장에서도 필요한 만큼만 데이터를 받아 렌더링하는 게 효율적이므로, 서버에서 페이지 단위로 잘라서 응답하는 구조가 필요함.
<로그인 / JWT 인증>
기능 설명
회원가입과 로그인 기능을 추가하고, JWT 기반 인증을 통해 인증 없이 아무나 Member를 수정/삭제할 수 없도록 제한
필요한 이유
필요한 이유
현재는 누구나 아무 Member나 수정/삭제할 수 있는 상태임. 이후 소유권 체크(3단계) 기능을 만들려면 먼저 "누가 로그인했는지"를 알 수 있는 인증 체계가 선행되어야 함.
<과제 소유권 체크 (403 Forbidden)>
기능 설명
로그인한 사용자가 본인이 작성한 Assignment만 수정/삭제할 수 있도록 소유권 검증 로직 추가
##필요한 이유
JWT 인증이 붙었어도, 로그인한 사용자가 다른 사람의 과제를 임의로 수정하거나 삭제할 수 있다면 인증의 의미가 없음. 본인 소유 리소스에 대해서만 수정/삭제 권한을 부여해야 함.
<댓글(Comment) 도메인 추가>
기능 설명
Assignment - Comment 1:N 관계의 댓글 기능을 ERD 설계부터 API 구현까지 직접 진행
필요한 이유
지금까지는 주어진 구조로 1:N 관계를 다뤘다면, 이번에는 ERD 설계 단계부터 직접 진행하며 어떤 필드가 필요한지, FK를 어디에 둘지 스스로 결정하는 연습이 필요함
<페이징 Pageable>
기능 설명
필요한 이유
<로그인 / JWT 인증>
기능 설명
필요한 이유
<과제 소유권 체크 (403 Forbidden)>
기능 설명
<댓글(Comment) 도메인 추가>
기능 설명
필요한 이유