Skip to content

user_nickname_change

whale0928 edited this page Jun 13, 2024 · 1 revision

요약(Summary)

보틀노트 서비스 이용 유저가 닉네임을 변경할 수 있는 기능을 구현하기 위한 테크 스펙을 작성한 문서입니다.
닉네임 중복검사후 변경 가능 여부를 판단하고, 변경 가능할 경우 닉네임을 변경합니다.


목표(Goals)

닉네임 변경할 수 있는 API를 구현한다. 닉네임 중복검사를 통해 변경 가능 여부를 판단한다. 닉네임 변경 가능할 경우 닉네임을 변경한다. 닉네임 변경 불가능할 경우 변경불가 메시지를 반환한다. 해당 API에 대한 rest docs를 작성한다.


계획(Plan)

  • request DTO에 Bean Validation을 적용한다.

    • nickName : 영어, 한글, 숫자만 가능.
      • @Notblank -> message = "아이디는 필수 입력값입니다."
      • @Pattern(regexp = "^[a-zA-Z가-힣0-9]{2,11}$") -> message : 닉네임은 2~11자의 한글, 영문, 숫자만 가능합니다.
    • userId : @Notnull
  • 닉네임 중복체크를 위한 로직을 만들어야한다.

    1. parameter의 닉네임을 조회한다.
    2. 닉네임이 중복되는지 확인한다.
    3. 존재하는 경우 true, 존재하지 않는 경우 false 리턴
    4. 중복되지 않는다면 닉네임을 변경한다.(update)
    5. 중복된다면 변경불가 메시지를 반환한다.
    6. 닉네임 변경 횟수제한은 없다.
  • 기능 구현 후 test code를 작성한다. junit

    1. DTO Validation 테스트, nickName과 userId 필드의 유효성 검사를 확인합니다.
    2. 중복 닉네임 검사 및 닉네임 변경 로직 테스트, 중복검사 후 닉네임변경이 정상적으로 이루어지는지 확인합니다.
  • valid check

  • nickName : 영어, 한글, 숫자만 가능.

  • nickName : @Notblank -> message = "아이디는 필수 입력값입니다."

  • userId : @Notnull

  • 비즈니스 로직

    • 닉네임 중복체크
    • 닉네임 변경
    • 닉네임 변경 불가능 메시지 반환
    • 닉네임 변경 횟수제한 없음 ㅇ

API-EndPoint : put /api/v1/users/{userId}/nickname


Clone this wiki locally