woowacourse-teams / 2023-festa-go

🎪 페스타고, 대학 축제를 더욱 즐겁게!
71 stars 8 forks source link

[BE] OpenIdUserInfoProvider 클래스를 제거하고, 비즈니스 로직을 OpenIdClient에 구현하도록 변경한다. #950

Closed seokjin8678 closed 5 months ago

seokjin8678 commented 6 months ago

✨ 세부 내용

OpenIdUserInfoProvider 인터페이스의 구조는 다음과 같습니다.

public interface OpenIdUserInfoProvider {

    UserInfo provide(String idToken);
}

그리고 OpenIdUserInfoProvider를 의존하는 구현체인 KakaoOpenIdClient의 구현은 다음과 같습니다.

@Component
@RequiredArgsConstructor
public class KakaoOpenIdClient implements OpenIdClient {

    private final KakaoOpenIdUserInfoProvider kakaoIdTokenUserInfoProvider;

    @Override
    public UserInfo getUserInfo(String idToken) {
        return kakaoIdTokenUserInfoProvider.provide(idToken);
    }

    @Override
    public SocialType getSocialType() {
        return SocialType.KAKAO;
    }
}

KakaoOpenIdClientgetUserInfo() 메서드의 호출은 단순히 KakaoOpenIdUserInfoProviderprovide() 메서드를 위임하는 것이 전부입니다.

하지만 위임을 해서 얻을 수 있는 장점이 보이지 않으므로, KakaoOpenIdUserInfoProvider에서 구현하고 있는 비즈니스 로직을 KakaoOpenIdClient로 옮기는 것이 좋을 것 같습니다.

⏰ 예상 소요 시간

30분