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

Feat [#3] 기본 클래스들 세팅 #4

Merged
merged 12 commits into from
Jun 23, 2024
Merged

Feat [#3] 기본 클래스들 세팅 #4

merged 12 commits into from
Jun 23, 2024

Conversation

geniusYoo
Copy link
Contributor

기본적으로 필요한 클래스들 세팅했습니다. 패키지 별로 클래스 설명드릴게요 :)

global

common : 공통적으로 사용하는 클래스 패키지

BaseResponse

  • 기존 세미나 코드에서의 SuccessResponse, ErrorResponse를 포함합니다.

ApiResponseUtil

  • BaseResponse를 타입으로 받아 ResponseEntity를 생성해 실제로 반환되는 인터페이스입니다.

BaseTimeEntity

  • createdAt, updatedAt을 각 엔티티에서 필드로 생성하지 않고 상속받아 사용할 수 있도록 하는 상속 클래스입니다.

GlobalExceptionHandler

  • 스프링 애플리케이션 내에서 커스텀 Exception을 발생시키면 잡는 핸들러 클래스입니다.

HealthCheckController

  • CI Health Check 용 컨트롤러 클래스입니다.

exception

커스텀 Exception 들을 정의한 패키지

message

Success, Error Message를 정의한 패키지


user

controller - UserApiController

User 관련 api를 받는 컨트롤러 클래스

domain - User, Platform

User 도메인 클래스
소셜 로그인 시 어떤 플랫폼인지 알 수 있게 하는 Enum 클래스

dto - UserSignInRequest, UserSignInResponse

사용자가 회원가입 시, 요청/응답하는 dto
JWT 구현해주신 후, 여기에 어떤 데이터들이 들어갈 지 생각해보시면 좋을 것 같아요 ! :)

facade - UserFacade

Facade 메소드 패턴을 도입해보려고 합니다!
컨트롤러 레이어와 서비스 레이어 사이의 연결점이라고 생각해주시면 될 것 같아요 :)

예를 들어, 원래는 UserApiController가 UserService 의존성을 주입받아 바로 호출했었는데요!
이렇게 되면 컨트롤러와 서비스 레이어의 의존성이 높아지기 때문에,
이를 해결하기 위해 Facade 레이어를 추가하여 Service 레이어를 호출하는 레이어는 유일하게 Facade 레이어가 되도록 합니다!
(잘 이해가 안되신다면, 다시 말씀해주세요 -!)

service - UserService

User 관련 비즈니스 로직을 수행하는 서비스 클래스입니다.

repository - UserRepository

DB의 User 테이블에서 Jpa로 엔티티를 가져오는 레포지토리 클래스입니다.

기본적인 클래스 세팅은 일단 생각나는대로 해봤는데요 !
JWT 관련 클래스는 루트에서 auth 패키지를 만들어서 진행해주시면 됩니다. :) 화이팅 !!!
(JwtAuthenticationFilter, UserAuthentication, ... 등등)

@geniusYoo geniusYoo added the feat label Jun 18, 2024
@geniusYoo geniusYoo requested a review from eunseo5343 June 18, 2024 10:14
@geniusYoo geniusYoo self-assigned this Jun 18, 2024
Copy link
Contributor

@eunseo5343 eunseo5343 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

기본셋팅 확인 완료했습니다 !! 구조가 명확하게 나뉘어져 있어서 확인하기에 편하네요 ~~ 수고 많으셨습니다 ~~~~!~!

@geniusYoo geniusYoo merged commit ba44c8e into main Jun 23, 2024
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[Feat] 기본 프로젝트 세팅
2 participants