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

[BE] Oauth2 네트워크 통신을 Transaction 범위 밖으로 분리한다. #435

Closed
xxeol2 opened this issue Sep 10, 2023 · 0 comments · Fixed by #436
Closed

[BE] Oauth2 네트워크 통신을 Transaction 범위 밖으로 분리한다. #435

xxeol2 opened this issue Sep 10, 2023 · 0 comments · Fixed by #436
Assignees
Labels
BE 백엔드에 관련된 작업 🙋‍♀️ 제안 제안에 관한 작업

Comments

@xxeol2
Copy link
Member

xxeol2 commented Sep 10, 2023

✨ 세부 내용

현재 로그인 로직 실행시 Oauth2로 소셜 벤더에서 UserInfo를 가져오는 로직이 Transaction 범위 내에 속합니다.
상대적으로 비용이 큰 네트워크 통신 과정이기에 트랜잭션 범위 밖으로 분리하는게 좋을 것 같습니다.

이에 Oauth2 네트워크 통신 로직을 Transaction 범위 밖으로 분리하는 것을 제안합니다.

아래는 현재 코드입니다.

public LoginResponse login(LoginRequest request) {
    UserInfo userInfo = getUserInfo(request);
    return memberRepository.findBySocialIdAndSocialType(userInfo.socialId(), userInfo.socialType())
        .map(member -> LoginResponse.isExists(getAccessToken(member), member.getNickname()))
        .orElseGet(() -> {
            Member member = signUp(userInfo);
            return LoginResponse.isNew(getAccessToken(member), member.getNickname());
        });
}

⏰ 예상 소요 시간

1시간

@xxeol2 xxeol2 added BE 백엔드에 관련된 작업 🙋‍♀️ 제안 제안에 관한 작업 labels Sep 10, 2023
@xxeol2 xxeol2 self-assigned this Sep 10, 2023
seokjin8678 pushed a commit that referenced this issue Sep 11, 2023
* feat: Oauth2 네트워크 통신 트랜잭션 범위 밖으로 분리

* refactor: accessToken 생성 로직 Transaction 범위 밖으로 분리

* refactor: @mock 어노테이션 활용

* refactor: Facade 패턴 적용

* refactor: DTO 정적 팩토리 메서드 정의

* refactor: LoginMemberDto에 Member객체가 아닌 필드를 담도록 수정
@github-project-automation github-project-automation bot moved this from Todo to Done in 2023-festa-go Sep 11, 2023
BGuga pushed a commit that referenced this issue Oct 17, 2023
* feat: Oauth2 네트워크 통신 트랜잭션 범위 밖으로 분리

* refactor: accessToken 생성 로직 Transaction 범위 밖으로 분리

* refactor: @mock 어노테이션 활용

* refactor: Facade 패턴 적용

* refactor: DTO 정적 팩토리 메서드 정의

* refactor: LoginMemberDto에 Member객체가 아닌 필드를 담도록 수정
BGuga pushed a commit that referenced this issue Oct 17, 2023
* feat: Oauth2 네트워크 통신 트랜잭션 범위 밖으로 분리

* refactor: accessToken 생성 로직 Transaction 범위 밖으로 분리

* refactor: @mock 어노테이션 활용

* refactor: Facade 패턴 적용

* refactor: DTO 정적 팩토리 메서드 정의

* refactor: LoginMemberDto에 Member객체가 아닌 필드를 담도록 수정
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
BE 백엔드에 관련된 작업 🙋‍♀️ 제안 제안에 관한 작업
Projects
Status: Done
1 participant