Skip to content

[7주차] 워크북 미션 - toy#17

Open
jinseong-yoon wants to merge 5 commits into
mainfrom
feat/week7-toy
Open

[7주차] 워크북 미션 - toy#17
jinseong-yoon wants to merge 5 commits into
mainfrom
feat/week7-toy

Conversation

@jinseong-yoon

Copy link
Copy Markdown
Collaborator

No description provided.

@drghdtjr

Copy link
Copy Markdown
Contributor

네, 전체적으로 코드 확인했습니다.
이번 주차 실습 주제였던 Page / Slice 페이징을 잘 적용하신 점 확인했습니다.

다만 일부 API의 HTTP Method 설계, enum 변환 예외 처리, cursor 로직 구현 부분은 한 번 더 점검해보시면 좋을 것 같습니다.

특히 valueOf() 사용 시 예상하지 못한 값이 들어올 경우 예외가 발생할 수 있기 때문에, validation 또는 custom exception 처리도 함께 고려해보시면 좋을 것 같습니다.
또한 cursor 로직의 경우 현재 문자열 생성 및 파싱 과정이 포함되어 있는데, 단순 ID 기반 커서라면 조금 더 간결한 방식으로 리팩토링할 수 있어 보입니다. 만약 복합 정렬 커서를 의도하신 것이라면 정렬 기준이 명확하게 드러나도록 구성해보시는 것도 좋은 방법일 것 같습니다.

추가 학습 포인트로는 Spring의 커스텀 어노테이션 / Validation 도 한 번 시도해보시면 좋을 것 같습니다. 공통 검증 로직을 어노테이션으로 분리하면 코드 재사용성과 Spring 활용도를 높이는 데 도움이 될 수 있습니다.

@target(ElementType.FIELD)
@retention(RetentionPolicy.RUNTIME)
@constraint(validatedBy = NicknameValidator.class)
public @interface ValidNickname {

String message() default "닉네임은 2~10자여야 합니다.";

Class<?>[] groups() default {};

Class<? extends Payload>[] payload() default {};

}

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants