최원종의 개발 블로그

V13-3 회원 가입시 출처 관리 (로컬, 소셜) 본문

Spring boot 입문

V13-3 회원 가입시 출처 관리 (로컬, 소셜)

chl6698 2026. 6. 2. 11:18

OAuthProvider 생성 (역할 부여)

package com.tenco.blog.user;

public enum OAuthProvider {
    LOCAL,
    KAKAO,
    GOOGLE,
    NAVER
}

User 엔티티 추가 코드

package com.tenco.blog.user;

import jakarta.persistence.*;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.hibernate.annotations.ColumnDefault;
import org.hibernate.annotations.CreationTimestamp;

import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.List;

@Data
@NoArgsConstructor
@Table(name = "user_tb")
@Entity
public class User {

    // ... 생략 

    @Enumerated(EnumType.STRING)
    @Column(nullable = false) // null 허용 안함
    @ColumnDefault("'LOCAL'") // 어노테이션으로 디폴트값 선언 방법 ( 문자열 일 경우 ' ' 반드시 사용)
    private OAuthProvider oAuthProvider;

   // ... 생략 
   
	  // 머스태치 화면에서 사용할 편의 메서드 2 추가 
	  // OAuthProvider 값에 따라서 경로 변수를 다르게 리턴
	  public String getProfilePath() {
	      if(this.profileImage == null) {
	          return null;
	      }
	      // 이미지 경로가 http 로 시작 (소셜 가입)
	      if(this.profileImage.startsWith("http")) {
	          return this.profileImage;
	      }
	      // 로컬 이미지(서버 기준 경로)
	      return "/images/" + this.profileImage;
	  }

}