Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[ 도메인 개발 ] > 사용자 도메인 개발 #10

Open
IMWoo94 opened this issue Jan 30, 2024 · 1 comment
Open

[ 도메인 개발 ] > 사용자 도메인 개발 #10

IMWoo94 opened this issue Jan 30, 2024 · 1 comment

Comments

@IMWoo94
Copy link
Owner

IMWoo94 commented Jan 30, 2024

#9

배달 플랫폼 도메인 구현

사용자 도메인 개발

  • User Entity 구성
    -Untitled
  • status 컬럼의 경우 enum 객체를 통해서 지정된 데이터만 들어 올 수 있도록 선언
    • enum 객체를 컬럼으로 사용 시 @ Enumerated(EnumType.STRING) 를 꼭 선언 할 수 있도록 한다.
    • @ Enumerated 만 선언하게 되면 enum 의 ordinal 이 DB 데이터로 들어가게 되는데, ordinal 의 경우 enum 객체의 순서를 바꿔버리면 데이터가 뒤죽박죽이 되어버리는 대참사가 일어 날 수 있으니 조심

  • 사용자 서비스 로직 구현
    image
    • 동작 흐름
      • Controller
        • UserApiController → 요청 시 Interceptor 에 의해서 인증 처리 후 접근 가능한 Controller
        • UserOpenApiController → 인증을 거치지 않아도 접근 가능한 Controller
      • Business → User 서비스와 이외의 여러 서비스에 접근하여 구성
      • Service → User 도메인의 서비스만 처리
      • Converter → Data 변환 ex) DTO → Entity
    • 회원 가입 로직 ( 구현 완료 )
      • 중복 회원 로직 ( 구현 완료 )
    • 로그인 ( 구현 완료 )
      • Email 찾기 ( 구현 완료 )
      • Password 찾기 ( 구현 완료 )

  • 사용자 인증 JWT 토큰 적용
    • JWT 토큰 생성 및 검증 로직 ( 구현 완료 )
    • 로그인 성공 시 Token 정보 응답 결과로 리턴 ( 구현 완료 )
    • 로그인 인증 처리
      • Interceptor 를 통해 Http Header 의 Token 정보로 검증
      • 검증 유효한 경우 RequestContextHolder 를 이용해서 인증 정보를 토대로 사용자 정보 제공
      • 사용자 정보를 가져오는 과정을 AOP, ArgumentResolver 를 통해서 Controller 파라미터로 바인딩 처리 하여 받을 수 있도록 구현
@IMWoo94
Copy link
Owner Author

IMWoo94 commented Feb 2, 2024

완료

@IMWoo94 IMWoo94 changed the title [ 프로젝트 구현 ] > 사용자 도메인 개발 [ 도메인 ] > 사용자 도메인 개발 Feb 12, 2024
@IMWoo94 IMWoo94 changed the title [ 도메인 ] > 사용자 도메인 개발 [ 도메인 개발 ] > 사용자 도메인 개발 Feb 12, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant