본문 바로가기

참고한 포스팅 및 레퍼런스 정리

@silver-w2025. 12. 23. 20:07

JWT

 1. JWT가 뭐야?

 2. auth0 DOCS

 3. RefrshToken은 왜 Redis를 사용해 관리할까?

 4. AccessToken 위치...

 

Redis

1. Redis 기본 개념

 

security 설정(security config)

1. [Spring Security] 4. UsernamePasswordAuthenticationFilter

 

security 테스트

1. 인프런질의 - SpringSecurity 사용 시 Controller 테스트

2. @WithMockUser

3. @WithMockUser 커스텀

▶ 3번 withMockUser 커스텀 관련

더보기

 

 - WithSecurityContextFactory ※ 야는 도메인 protected이기 때문에 도메인 테스트 패키지 일치 해야함(삽질...)

 - WithMockCustomUser → 시큐리티에서 CustomUserDetail 커스텀했을시, 안했으면 디폴트 WithMockUser 쓰면 된다.

3번 커스텀 했으면 이런식으로 권한/상태 커스텀 객체 넣으면서 테스트 가능 ↓

@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.METHOD, ElementType.TYPE})
@WithMockCustomUser(userStatus = UserStatus.ACTIVE, role= UserRole.ROLE_USER)
public @interface WithMockActiveUser {
}

OAuth2

 1. 백엔드에서 소셜 로그인을 구현해보자 : 카카오, 구글, 네이버 3종 적용기

 2. 구글 
 3. 네이버
 4. 카카오 - 카카오팀 블로그
 5. 각 서비스의 provider_id를 조회 - 카카오, 네이버, 구글

Hexagonal Architecture & DDD

 1. hexagonal-architecture-template - kamilmazurek

 2. 토비의 클린 스프링 - 도메인 모델 패턴과 헥사고날 아키텍처 Part 1 

 

Duration Binding 

 1. Converting Durations - spring reference

   - Duration 뿐만아니라 Period도 있고 Data Size도 있음!! 

   - 뭐가 바인딩 되는지는 위 레퍼런스 참고하면 됨 JWT 만료시간 value를 이로 정함 (.env랑 JwtTokenProvider 참고)

 

커스텀 예외 (필터예외, 컨트롤러예외 별도 처리)

 1. Custom Exception, ExceptionHandler 설계에서 나쁜 코드에 대한 고민과 리펙토링 과정

 2. HTTPS_STATUS 

 3. [Spring Security] Spring Security 예외를 @ControllerAdvice와 @ExceptionHandler를 사용하여 전역으로 처리해보자

 -> 이는 필터 예외 터진걸 우회해서 ControllerAdvice로 적용하는 방법, 이 방법 말고 필터는 entryPoint에서 json 형태로 던지고, MVC예외는 ControllerAdvice에서 처리하도록 변경

[Filter / Security 영역] [Spring MVC 영역]
JWTFilter
→ AuthenticationEntryPoint
→  AccessDeniedHandler
        ↓
     JSON 응답

 Controller
→  Service
→ @RestControllerAdvice
        ↓
     JSON 응답

 4. EnrtyPoint 설정했더니, oauth2에서 제공하는 /login 페이지까지 사라지는 현상 해결

 - 문제점 : securityConfig에서 enrtyPoint 설정 + loginform disable 함
  → /login이 permitAll이지만 SecurityFilterChain을 여전히 타기 때문에 /login을 필터밖으로 빼야됌

 5. 공통예외처리(다른점은 에러코드 인터페이스로 Getter로 다형성이용 호출하고, @RestControllerAdvice를 이용함)

 → 여기서 주의할건, security는 filter라인에서 HandlerExceptionResolver 이용안하면 throw로 뭘 던지던 500번대 오류코드가 작동함. 그래서 throw 부분에 아래 코드를 다 넣음. 애가 시큐리티 예외를 controllerAdvice로 던져줌

exceptionResolver.resolveException(request, response, null, e);
return;

 

□ Domain Event(spring data JPA)

 - [SpringBoot] AbstractAggregateRoot로 DomainEvent 발행하기

 

ASCIIDOC 틀 참고한거 

 1. [tab]기능

 2. 기본 사용법

 

spring - Scheduler

 1. 설정 법 및 cron

 


1. Mockoon 

 - fake json 만들어주는 UI : 프론트에서 백서버 완성안될때 쓰는거라던데, 금융 fake api를 이걸로 구현하면 개꿀일듯? 더미 json파일로 알아서 만들수 있다. 사용법도 생각보다 쉬움. 

 - 유투브 링크

 - 공식

silver-w
@silver-w :: silver-w 님의 블로그

silver-w 님의 블로그 입니다.

공감하셨다면 ❤️ 구독도 환영합니다! 🤗

목차