본문 바로가기

Back-End/SpringBoot13

[실용적으로 정리해본] Design Pattern 디자인패턴 한번 쓱 훑어봤다.실용적으로? 사실 내맘대로 정리한 디자인 패턴생성 패턴팩토리 메서드:객체 생성을 위한 인터페이스만 정의하고 서브클래스가 구체적인 생성을 담당하도록 위임 (맨날 사용중)추상 팩토리:관련된 객체들을 한 세트로 생성해야 하고 이런 세트가 여러 종류 필요할 때만 고려관련 된 객체 ← 기능 인터페이스한 세트 ← 얘가 추상 팩토리 인터페이스, 여기에 추상 객체들을 선언해놓음 (그래서 세트임)실 사용시 추상 팩토리 인터페이스를 위임받아서 객체들을 한번에 생성해서 사용팩토리 메소드 정도만 사용해도 충분함빌더: 복잡한 객체 생성 과정을 분리해서 단계별로 만들고 싶을 때 (롬복 @Builder 쓰면 됨)프로토타입: 기존 객체를 복제해서 새 객체를 만드는 패턴 (거의 안씀)싱글톤: 전역적으로 하.. 2025. 2. 6.
1. [OAuth2 + OIDC + JWT] 역할 분리 및 리팩토링 1. 리팩토링 다했다 !before : https://nakhwa.tistory.com/53해당 글에서는 리팩토링 관련 내용만 작성하고 세부 구현사항은 추후에 다른 게시글에서 작성할 예정주요 리팩토링 방향Social Provider 와 통신하는 로직은 전부 Client 계층으로 위임반복적인 로직은 추상클래스 대신 -> "컴포지트 주입" 을 활용해서 해결명확한 클래스 네이밍 및 단일책임 지향각 소셜로그인 별로 다르게 구성된 매개변수는 "제네릭"으로 해결해당 게시글에서는 "컴포지트 주입" 과 "제네릭" 을 통해 리팩토링한 부분들을 중점적으로 작성할 예정Provider Code [리팩토링 전]문제점Provider 의 역할이 명확하지 않음Oidc/OAuth2 에 대한 불필요한 구분으로 인해 추상화 x중복 로직 .. 2025. 2. 5.
0. [OAuth2 + OIDC + JWT] 카카오/구글/애플 로그인 구현 0. 구현 다했는데 구조가 이게 뭐냐리팩토링 진행중이며 지식 정리/공유 겸 작성해보겠다.요구사항Custom Jwt와 호환되는 소셜 로그인을 구현하는 것(호환성 문제 관련 정리글은 https://nakhwa.tistory.com/51, https://nakhwa.tistory.com/52 두 게시글 참고)AccessToken 을 활용한 방식은 보안에 취약하니 IdToken (OIDC)을 활용할 것(물론 AccessToken 활용한 로직도 구현되어 있으며, 테스트 겸 만든 거 아까워서 살려둘 예정)Google 로그인은 Firebase 를 거쳐서 제공되고 있으니 맞춰서 구현할 것(이것도 물론 Google AccessToken 을 활용한 로그인도 구현되어 있으며 위와 같은 이유로 살려둘 예정,왜만들었냐고? Fi.. 2025. 1. 30.
[SpringSecurity 뜯어보기] oAuth2 Resource 라이브러리와 Custom JWT 간의 호환 ( https://nakhwa.tistory.com/51 게시글과 이어집니다. )oAuth2 리소스 서버 라이브러리를 활용한 기존 JWT 처리 Process기존 SecurityConfig 에서의 JWT 처리방식 기존 SecurityConfig 의 FilterChain의 일부로, oauth2ResourceServer 를 사용하고 있으며, jwt 관련 Custom 설정은 jwtAuthConverter 만 존재한다. 동작방식은 이전글에서 자세히 살폈으니 넘어가고, Custom Jwt 로직을 추가하는데 있어서 문제점이 발생하였다.Jwt  Decord  값이 Filter를 거쳤을 때와, 직접 Decord 테스트를 진행했을 때 다르다.위의 두 메소드는 각각 Custom JWT 를 생성하는 메소드와, 테스트에서 해당.. 2025. 1. 15.