domain/user전반 설계 및 구조화User 도메인 구조 설계
controller, dto(request/response), entity, service, repository, mapper 로 분리

회원가입 기능 구현
Controller
/api/users/signup 엔드포인트 작성@ResponseStatus(HttpStatus.CREATED) 적용하여 회원가입 성공 시 201 Created 상태 코드 반환
Service
UserRepository.findByEmail()을 사용PasswordEncoder를 이용한 비밀번호 해시 암호화UserMapper를 통해 DTO를 Entity 매핑 후 저장UserSignupResponse 반환
Mapper
PasswordEncoder 주입받아 비밀번호 암호화 일관성 유지
Entity
@Builder(toBuilder = true)로 불변 객체 기반 설계BaseEntity 상속으로 생성일자, 수정일자 자동 관리deleted, refreshToken 필드 포함해 추후 회원탈퇴나 인증 갱신 로직 확장 대비
Swagger 실행 시 201 Created 응답과 함께 가입 정보 JSON 확인됨

이메일/비밀번호 검증 후 AccessToken + RefreshToken 동시 발급
RefreshToken은 DB에 저장해 재사용 공격 방지
로그인 성공 시 사용자 정보 + AccessToken 반환

Authorization 헤더에 Bearer {refreshToken} 포함 시 유효성 검증 수행
JwtTokenProvider.validateToken()으로 JWT 서명, 만료 검증
DB에 저장된 RefreshToken과 일치 여부 확인하고 유효 시 AccessToken 새로 발급

CustomException을 통한 명확하게 에러 메시지 처리함