Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[2주차] 2차 세미나 과제 #5

Open
wants to merge 8 commits into
base: main
Choose a base branch
from
Open

[2주차] 2차 세미나 과제 #5

wants to merge 8 commits into from

Conversation

kgy1008
Copy link
Member

@kgy1008 kgy1008 commented Oct 15, 2024

ISSUE

close #6

⭐ 세부 과제 목록

  • 5분에 하나만 작성되도록 제한 기능 추가
  • 목록 조회시, 글자수가 많은 순서로 10개를 조회하는 정렬 기준을 추가
  • 중복되는 제목은 없도록 구현
  • 일기에 카테고리 기능을 추가

5분 제약 사항 추가

현재 시간과 DB에 저장되어 있는 일기 생성 시간 사이의 시간을 비교하여 5분보다 짧을 경우, IllegalStateException을 발생시키도록 구현하였습니다. Rest API에서 에러 코드를 내려주어야 할 때, 어떤 상태 코드가 좋을 지 고민도 추가적으로 고민해보았는데, 400 Bad Request와 403 Forbidden 중 어느 것이 적절할 지 조원분들의 의견이 궁금합니다. 저는 그래도 400 으로 내려주는게 맞다고 생각하는데 어떻게 생각하시나요?

고민했던 과정

  1. 400 -> 잘못된 요청일 때, 보내는 에러코드인데 사실 이 경우는 요청의 내용이 정상적이여도 5분 이내가 아니기 때문에 에러가 발생하는 것으로, 이 경우에도 잘못된 요청이라고 볼 수 있을지...?
  2. 403 -> 권한 오류인데 이것이 과연 '권한'과 관련된 오류일지..?

중복되는 제목은 없도록 구현

비지니스 로직이라 생각하여 Service 단에서 DB에서 이미 존재하는지 여부를 boolean 타입으로 조회하고 존재할 경우, 예외를 터뜨리도록 구현하였습니다.

고민했던 사항

제목을 중복되지 않도록 구현하기 위해, Entity에서 Title도 기본키로 설정하거나 unique 제약 조건을 걸었어도 괜찮았을 것 같습니다.

일기에 카테고리 기능을 추가

카테고리를 enum으로 설정하여 구현하였습니다. category 값이 전달되지 않았을 때도, 자동으로 카테고리 지정이 되도록 default 값을 설정해두었고, 일단 하나의 일기에는 하나의 카테고리만 설정할 수 있도록 하였습니다.

@kgy1008 kgy1008 self-assigned this Oct 15, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2주차 세미나 과제
1 participant