Skip to content

feat: 자체 로그인(회원가입/로그인) 구현 (#4) - #5

Closed
leedong0923 wants to merge 1 commit into
developfrom
feat/local-login
Closed

leedong0923 wants to merge 1 commit into
developfrom
feat/local-login

Conversation

@leedong0923

Copy link
Copy Markdown
Contributor

Summary

이메일/비밀번호 기반 자체 회원가입·로그인 기능을 구현했습니다. 회원가입 시 이메일 중복 검사와 비밀번호 해시 처리를 하고, 로그인 성공 시 JWT를 발급합니다. 로그인 실패는 401로, 입력값 검증 실패는 400 + 필드별 에러 메시지로 응답하도록 구분했습니다.

Tasks

  • User 엔티티에 nickname 필드 추가 (필수, 중복 허용, 15자 제한)
  • POST /api/auth/signup 구현 (이메일 중복 검사, BCrypt 비밀번호 해시, 반려견 정보 선택 입력)
  • POST /api/auth/login 구현 (JWT 발급)
  • 로그인 실패 시 401 Unauthorized 응답 (AuthenticationFailedException 추가)
  • @Valid 검증 실패 시 필드별 에러 메시지 응답 (MethodArgumentNotValidException 핸들러 추가)

Verification

  • CI 빌드·테스트가 통과했다
  • API 변경 시 OpenAPI 문서를 함께 갱신했다
  • User 테이블에 nickname 컬럼 추가 (ddl-auto: update로 자동 반영, 아직 운영 데이터가 없는 단계라 기존 데이터 영향 없음)

To Reviewer

  • User 테이블에 nickname 컬럼이 새로 추가됩니다(ddl-auto: update로 자동 반영, 별도 마이그레이션 스크립트는 없음).
  • 로그인 실패를 400이 아닌 401로 처리하도록 바꿨는데, 이 부분 괜찮은지 확인 부탁드립니다.

@hrxlou

hrxlou commented Oct 1, 2026

Copy link
Copy Markdown
Contributor

기존 회원 데이터가 있는지만 한번 확인.

nickname을 바로 NOT NULL로 추가하면 기존 회원이 있는 DB에서는 컬럼 추가가 실패하고 로그인도 500으로 깨질 수 있어.
SELECT COUNT(*) FROM users; 로 확인하면 돼.

데이터가 있으면 빈 값 허용으로 컬럼 추가 -> 기존 회원 닉네임 채우기 -> NOT NULL 적용 순서로 처리해야 해.

아직 공용 서버도 없어서 지금 당장 막을 문제는 아닐 것 같고, 로컬 DB에 테스트로 만들어둔 회원이 있는지만 확인하면 될 듯. 이런 엣지케이스가 있다는 정도로 알아두면 돼.

@leedong0923 leedong0923 closed this Oct 2, 2026
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.

[Feat] 자체 로그인(이메일/비밀번호) 구현

2 participants