💡 SNS 로그인(카카오)을 위한 Rest API 생성➡️ 1탄 바로가기: 설정 및 회원가입➡️ 2탄 바로가기: JWT 로그인 및 회원 정보 조회➡️ 3탄 바로가기: Refresh TokenSNS 로그인 Flow해당 프로젝트에서는 모바일 어플리케이션을 위한 Rest API를 구현한다.Client SDK에서 카카오 로그인 완료 후 3rd로부터 전해받는 accesToken을 Server에 전달한다.해당 AccessToken으로 다시한번 3rd에 조회하여, 회원 정보를 가져온다.조회한 회원 정보가 있을 경우, 바로 로그인 로직을 실행하여 성공 응답을 보낸다.조회한 회원 정보가 없을 경우, 회원 정보를 새로 저장(회원가입)하고 로그인까지 성공시켜 응답을 보낸다.개발 환경Spring Boot 3.x.x / Ko..
Singleton 패턴 💡 인스턴스가 하나만 존재하는 것을 보증하는 패턴 등장인물 Singleton 유일한 인스턴스를 얻기 위한 `static` 메소드를 가짐 → 항상 같은 인스턴스를 반환 public class Singleton { private static Singleton singleton = new Singleton(); private Singleton() { System.out.println("인스턴스 생성") } public stgatic Singleton getInstance() { return singletone; } } Singleton 클래스 로드할 때 초기화 진행 `private` 생성자 : 외부에서 생성자 호출을 금지하기 위함 `getInstance()`: 유일한 인스턴스를 얻는 메..
Factory Method Factory Method 패턴 💡 인스턴스를 생성하는 공장은 Template Method 패턴으로 구성한 것 인스턴스의 생성 방법을 상위 클래스에서 결정하되, 구체적인 클래스 이름까지 결정하지 않음 구체적인 살은 모두 하위 클래스에서 결정! ⇒ 인스턴스 생성을 위한 프레임워크와 실제 인스턴스를 생성하는 클래스를 나눌 수 있음 등장인물 Product (제품) 프레임워크 package 생성되는 인스턴스가 가져야 할 인터페이스(API)를 결정하는 추상 클래스 구체적인 내용은 하위 클래스 `ConcreteProduct` 에서 결정 package framework; public abstract class Product { public abstract void use(); } Creat..
Template Method 패턴 💡 상위 클래스에서 처리의 뼈대를 결정하고 하위 클래스에서 구체적인 내용을 결정 등장인물 `AbstractClass` (추상 클래스) 템플릿 메소드를 구현하며, 템플릿 메소드에서 사용할 추상 메소드를 선언 추상 메소드는 하위 클래스인 `ConcreteClass` 에서 구현 public abstract class AbstractDisplay { // 하위 클래스에 구현을 맡기는 추상 메소드 public abstract void open(); public abstract void print(); public abstract void close(); // AbstractDisplay에서 구현하는 메소드 -> 템플릿 메소드 public final void display() { ..