Skip to content

[FEAT] 페이징 Pageable 추가/ 로그인, JWT 인증 / 과제 소유권 체크 (403 Forbidden) / 댓글(Comment) 도메인 추가  #62

Description

@jjangjjangsunho

<페이징 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를 어디에 둘지 스스로 결정하는 연습이 필요함

Metadata

Metadata

Labels

enhancementNew feature or request

Type

No type

Fields

No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions