Skip to content

Commit f25806a

Browse files
committed
refactor : 불필요한 코드 삭제 및 구조 개선
1 parent d95ef9e commit f25806a

File tree

3 files changed

+16
-52
lines changed

3 files changed

+16
-52
lines changed

src/main/java/com/back/domain/user/entity/User.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,9 +37,6 @@ public class User {
3737
@Column(unique = true, length = 100)
3838
private String oauthId; // OAuth 제공자별 고유 ID (예: kakao_123456789)
3939

40-
@Column(length = 20)
41-
private String provider; // OAuth 제공자 (KAKAO, GOOGLE, NAVER)
42-
4340
private Double abvDegree; // 알콜도수(회원 등급)
4441

4542
@CreatedDate // JPA Auditing 적용

src/main/java/com/back/domain/user/service/UserService.java

Lines changed: 8 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -23,22 +23,6 @@ public User findById(Long id) {
2323
.orElseThrow(() -> new IllegalArgumentException("User not found. id=" + id));
2424
}
2525

26-
// 소셜로그인으로 회원가입 & 회원 정보 수정
27-
public RsData<User> modifyOrJoin(String oauthId, String email, String nickname) {
28-
29-
//oauthId로 기존 회원인지 확인
30-
User User = userRepository.findByOauthId(oauthId).orElse(null);
31-
32-
// 기존 회원이 아니면 소셜로그인으로 회원가입 진행
33-
if(User == null) {
34-
User = joinSocial(oauthId, email, nickname);
35-
return new RsData<>(201, "회원가입이 완료되었습니다.", User);
36-
}
37-
38-
// 기존 회원이면 회원 정보 수정
39-
modifySocial(User, nickname);
40-
return new RsData<>(200, "회원 정보가 수정되었습니다.", User);
41-
}
4226

4327
public User joinSocial(String oauthId, String email, String nickname){
4428
userRepository.findByOauthId(oauthId)
@@ -52,44 +36,32 @@ public User joinSocial(String oauthId, String email, String nickname){
5236
User user = User.builder()
5337
.email(email)
5438
.nickname(uniqueNickname)
55-
.profileImgUrl(null)
5639
.abvDegree(0.0)
40+
.createdAt(LocalDateTime.now())
41+
.updatedAt(LocalDateTime.now())
5742
.role("USER")
5843
.oauthId(oauthId)
5944
.build();
6045

6146
return userRepository.save(user);
6247
}
6348

64-
public void modifySocial(User user, String nickname){
65-
user.setNickname(nickname);
66-
userRepository.save(user);
67-
}
68-
69-
public RsData<User> findOrCreateOAuthUser(String oauthId, String email, String nickname, String provider) {
49+
@Transactional
50+
public RsData<User> findOrCreateOAuthUser(String oauthId, String email, String nickname) {
7051
Optional<User> existingUser = userRepository.findByOauthId(oauthId);
7152

7253
if (existingUser.isPresent()) {
7354
// 기존 사용자 업데이트 (이메일만 업데이트)
7455
User user = existingUser.get();
7556
user.setEmail(email);
76-
return RsData.of(200, "기존 사용자 정보 업데이트", userRepository.save(user));
57+
return RsData.of(200, "회원 정보가 업데이트 되었습니다", user); //더티체킹
7758
} else {
78-
// 새 사용자 생성 - 고유한 닉네임 생성
79-
String uniqueNickname = generateUniqueNickname(nickname);
80-
User newUser = User.builder()
81-
.oauthId(oauthId)
82-
.email(email)
83-
.nickname(uniqueNickname)
84-
.provider(provider)
85-
.role("USER")
86-
.createdAt(LocalDateTime.now())
87-
.build();
88-
return RsData.of(201, "새 사용자 생성", userRepository.save(newUser));
59+
User newUser = joinSocial(oauthId, email, nickname);
60+
return RsData.of(201, "사용자가 생성되었습니다", newUser);
8961
}
9062
}
9163

92-
private String generateUniqueNickname(String baseNickname) {
64+
public String generateUniqueNickname(String baseNickname) {
9365
// null이거나 빈 문자열인 경우 기본값 설정
9466
if (baseNickname == null || baseNickname.trim().isEmpty()) {
9567
baseNickname = "User";

src/main/java/com/back/global/security/CustomOAuth2UserService.java

Lines changed: 8 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22

33
import com.back.domain.user.entity.User;
44
import com.back.domain.user.service.UserService;
5+
import com.back.global.rsData.RsData;
56
import lombok.RequiredArgsConstructor;
6-
import lombok.extern.slf4j.Slf4j;
77
import org.springframework.security.oauth2.client.userinfo.DefaultOAuth2UserService;
88
import org.springframework.security.oauth2.client.userinfo.OAuth2UserRequest;
99
import org.springframework.security.oauth2.core.OAuth2AuthenticationException;
@@ -15,7 +15,6 @@
1515

1616
@Service
1717
@RequiredArgsConstructor
18-
@Slf4j
1918
public class CustomOAuth2UserService extends DefaultOAuth2UserService {
2019
private final UserService userService;
2120

@@ -56,26 +55,22 @@ public OAuth2User loadUser(OAuth2UserRequest userRequest) throws OAuth2Authentic
5655

5756
// OAuth ID를 제공자와 함께 저장 (예: kakao_123456789)
5857
String uniqueOauthId = providerTypeCode.toLowerCase() + "_" + oauthUserId;
58+
RsData<User> rsData = userService.findOrCreateOAuthUser(uniqueOauthId, email, nickname);
5959

60-
log.debug("OAuth2 user info - oauthUserId: {}, email: {}, nickname: {}, provider: {}",
61-
oauthUserId, email, nickname, providerTypeCode);
62-
63-
User user = userService.findOrCreateOAuthUser(uniqueOauthId, email, nickname, providerTypeCode).data();
60+
if (rsData.code()<200 || rsData.code()>299) {
61+
throw new OAuth2AuthenticationException("사용자 생성/조회 실패: " + rsData.message());
62+
}
6463

65-
log.debug("User from DB - id: {}, email: {}, nickname: {}",
66-
user.getId(), user.getEmail(), user.getNickname());
64+
User user = rsData.data();
6765

68-
// null 체크 및 기본값 설정
6966
String userEmail = user.getEmail() != null && !user.getEmail().trim().isEmpty()
70-
? user.getEmail() : "[email protected]";
71-
String userNickname = user.getNickname() != null && !user.getNickname().trim().isEmpty()
72-
? user.getNickname() : "Unknown User";
67+
? user.getEmail() : "unknown";
7368

7469
// securityContext
7570
return new SecurityUser(
7671
user.getId(),
7772
userEmail,
78-
userNickname,
73+
user.getNickname(),
7974
user.getAuthorities(),
8075
oAuth2User.getAttributes()
8176
);

0 commit comments

Comments
 (0)