✨ 회원가입 / 로그인 기능 구현 정리
깃허브 링크: https://github.com/DoHyunDaniel/moneytalk
✅ 구현 목표
- Spring Security + JWT 기반 인증 시스템 구현
- 회원가입 / 로그인 / 사용자 정보 관리 기능 제공
- Swagger 문서 자동화
- 공통 예외 처리 적용
📌 주요 기능 요약
1. 회원가입 (SignUp)
- POST /api/users/signup
- 요청: email, password, nickname
- 응답: id, email, nickname
- 유효성 검사 및 이메일 중복 방지
- 비밀번호 BCrypt로 암호화 저장
2. 로그인 (Login)
- POST /api/users/login
- 요청: email, password
- 응답: accessToken, refreshToken
- JWT 토큰 발급 후 인증 처리
3. 내 정보 관련 API
| 기능 | 메서드 | URL | 설명 |
| 내 정보 조회 | GET | /api/users/me | 로그인한 사용자 정보 반환 |
| 닉네임 변경 | PATCH | /api/users/me | 닉네임 수정 |
| 회원 탈퇴 | DELETE | /api/users/me | 사용자 삭제 처리 |
4. 예외 처리
- GlobalExceptionHandler로 전역 에러 핸들링
- 공통 응답 포맷: ErrorResponse
- Swagger 문서에 에러 응답 예시 포함
5. Swagger 연동
- springdoc-openapi 사용 (v2.1.0)
- bearerAuth 스키마 등록
- 보안 인증이 필요한 API에 @SecurityRequirement 적용
- 예외 응답 예시까지 명세 가능
🔮 향후 개발 계획
✅ 이메일 인증 기능
- 회원가입 후 인증 메일 전송
- 이메일 인증 여부 확인 및 만료 시간 설정
- 인증 링크 클릭 시 사용자 활성화 처리
✅ 소셜 로그인 연동
- Google / Kakao / Naver OAuth 2.0 연동
- 인증된 사용자 정보를 바탕으로 회원가입 or 로그인 처리
- OAuth2UserService 커스터마이징 예정
🛠 기술 스택
- Spring Boot 3.4.4
- Spring Security
- JWT (jjwt 0.11.5)
- MySQL / JPA
- Spring Validation
- Swagger (springdoc-openapi 2.1.0)