Skip to content

[ASSIGNMENT] N차 과제 구현 #8

Description

@beneruufin

Description

필수 과제

요구사항 난이도
세미나에서 TODO로 남겨둔 Read(전체) / Read(단건) / Update / Delete Controller, Service를 완성해주세요 ⭐️⭐️
에브리타임 화면설계서를 와인잔조 조원들과 함께 보고, 게시글 목록 / 상세 / 작성 / 수정 / 삭제 API에 대한 API 명세서를 노션으로 작성해주세요. Method, URL, Request Body, Response Body, 상태 코드를 포함해주세요. 노션 링크를 PR에 첨부해주세요 ⭐️⭐️
PostNotFoundException 커스텀 예외 클래스를 만들고, @RestControllerAdvice로 적절한 HTTP 상태 코드와 함께 응답하도록 구현해주세요. 에러 코드 체계도 함께 고민해봐요 (예: POST_001: 게시글을 찾을 수 없습니다) ⭐️⭐️⭐️
ApiResponse 공통 응답 객체를 설계하고, 모든 API의 성공/실패 응답이 일관된 형식을 갖도록 적용해주세요 ⭐️⭐️⭐️
완성한 API 전체를 Postman으로 테스트하고, 각 API의 성공/실패 응답 화면을 캡처해서 PR에 첨부해주세요 ⭐️⭐️

심화 과제

요구사항 난이도
게시글 목록 조회 API에 Pagination을 적용해주세요. page와 size 쿼리 파라미터를 받아서 해당 페이지의 게시글 목록을 반환하도록 구현해주세요. (예: GET /posts?page=0&size=10) ⭐️⭐️⭐️
PostRepository를 인터페이스로 추출하고, 기존 구현체를 InMemoryPostRepository로 이름을 바꿔 구현해주세요. PostService가 인터페이스에만 의존하도록 수정하고 Spring DI로 주입받도록 해주세요 ⭐️⭐️⭐️⭐️
에러 코드를 enum으로 관리해보세요. ErrorCode enum에 상태 코드와 메시지를 함께 정의하고, GlobalExceptionHandler가 이를 활용하도록 구성해주세요 ⭐️⭐️⭐️⭐️
게시판 종류(FREE, HOT, SECRET)를 boardType 필드로 추가하고, 게시판 종류별로 게시글을 조회하는 API를 구현해주세요. boardType은 enum으로 정의해주세요 ⭐️⭐️⭐️⭐️⭐️

키워드 과제

요구사항 난이도
HTTP의 멱등성(Idempotency)이란 무엇인가요? GET, POST, PUT, DELETE 중 멱등한 메서드는 무엇인가요? ⭐️⭐️
@controller@RestController의 차이는 무엇인가요? ⭐️⭐️
Java Record란 무엇인가요? 기존 클래스와 비교해서 어떤 점이 다른가요? ⭐️⭐️⭐️
Optional이란 무엇이고, 왜 null 대신 쓰는 건가요? ⭐️⭐️⭐️
Spring Bean의 생명주기란 무엇인가요? ⭐️⭐️⭐️
Spring Boot의 구동 원리를 DispatcherServlet 동작 방식 위주로 정리해주세요 ⭐️⭐️⭐️⭐️

To - Do

  • 필수 과제
  • 심화 과제
  • 키워드 과제

ETC

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions