🏷️ 상위 작업 (Ticket Number)
PRODUCT-119
🚀 구현 내용
문제 상황
oauthClient 요청 로직이 트랜잭션 내 존재
@Transactional
public MemberResponse login(LoginRequest request, String origin) {
OauthToken oauthToken = oauthClient.requestOauthToken(request.code(), origin);
OauthMemberInformation oauthInformation = oauthClient.requestMemberInformation(oauthToken);
Optional<Member> optionalMember = memberRepository.findBySocialId(Long.toString(oauthInformation.socialId()));
boolean isFirstLogin = optionalMember.isEmpty();
return new MemberResponse(
optionalMember.orElseGet(() -> memberRepository.save(oauthInformation.toMember())),
isFirstLogin);
}
개선 방향
- oauthClient 요청 로직을 트랜잭션 밖으로 분리
📅 마감일
No response