Skip to content

회원가입 기능 구현 #11

@LAYLALOAD

Description

@LAYLALOAD

목적

  • 신규 사용자가 이메일, 비밀번호, 닉네임, MBTI, 성별, 주소를 입력하여 계정을 생성할 수 있도록 회원가입 기능을 제공.
  • 가입 즉시 Access Token을 발급하여 자동 로그인 상태로 전환하고, 쿠키에 저장하여 사용자 경험 개선.

상세 내용

  • POST /user/sign-up API 구현

    • DTO: SignUpRequestDto
      • 이메일 형식, 비밀번호 복잡도, 필수 항목(name, mbti, gender, address) 검증
    • Service: UserService.signUp()
      • 비밀번호 암호화(PasswordEncoder)
      • 신규 User 엔티티 생성 후 저장
      • 기본 프로필 이미지(ProfileImage) 생성 및 저장
      • JWT Access Token 생성 → 만료 시간 계산 → HttpOnly 쿠키에 저장
    • Controller: UserController.signUp()
      • 유효성 검증(@Valid)
      • 성공 시 ApiResult.success() 반환
  • 유효성 검증:

    • 이메일 형식 (@Email)
    • 비밀번호: 영문/숫자/특수문자 각 1개 이상 포함, 10~25자
    • MBTI, 성별, 주소 필수 입력
  • JWT 처리:

    • JwtProvider를 사용하여 Access Token 생성
    • 쿠키(access_token, access_token_expires_at)에 저장
    • CookieHelper 유틸 활용

특이사항

  • 현재 회원가입 시 닉네임, MBTI, 성별, 주소가 필수이며, 추후 온보딩 화면과의 연동 필요
  • 회원가입 후 별도의 로그인 없이 자동 로그인 상태가 됨 (쿠키 기반)
  • API 경로 /user/sign-up는 추후 RESTful 규칙에 맞춰 /api/users로 변경 고려
  • 알림 기능은 UI/UX 설계에서 제외되어 이번 구현에 반영하지 않음

Metadata

Metadata

Assignees

No one assigned

    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