Nothing CEO 칼 페이 웨어러블 전략 배경

Nothing CEO 칼 페이(Carl Pei)는 원플러스 공동창업자 출신으로, 스마트폰 시장의 포화와 앱 중심 패러다임에 회의적이었다. Nothing 설립(2020년) 후 투명 디자인과 가성비로 팬덤을 구축하며 스마트폰·오디오 성공을 …

자세히보기

Node.js jose로 JWT 토큰 검증 상세 가이드

Node.js에서 jose로 JWT를 검증할 때 가장 안전한 기본형은 jwtVerify() + createRemoteJWKSet() 조합입니다. 이 방식은 단순 디코딩이 아니라 서명 검증 + claims 검증(issuer, audience, exp 등) 을 함께 처리해 주기 때문에 OAuth2/OIDC 서버가 …

자세히보기

jose JWKS 캐싱 최적화 기법

jose의 createRemoteJWKSet()은 내장된 TTL 기반 캐싱을 제공하지만, 프로덕션에서는 여기에 에러 기반 무효화, 캐시 워밍, 공유 캐시 계층을 추가해 성능과 가용성을 동시에 확보해야 합니다. jose 기본 캐싱 메커니즘 createRemoteJWKSet()은 호출될 때마다 HTTP …

자세히보기

멀티테넌트 JWKS 캐싱 지원 기법

멀티테넌트 환경에서 JWKS를 캐싱할 때 핵심은 테넌트별 독립 캐시 키, 테넌트별 TTL 차등 적용, 캐시 오염 방지, 동적 테넌트 등록을 어떻게 처리하느냐입니다. Spring Security + Caffeine 조합으로 이 네 …

자세히보기

JWKS 캐시 프리페치와 백그라운드 리프레시 설정

Spring Security에서 JWKS 캐시 프리페치(애플리케이션 시작 시 미리 적재)와 백그라운드 리프레시(만료 직전 비동기 갱신)를 구현하려면, 커스텀 Cache 래퍼와 @Scheduled 태스크를 조합하는 것이 현실적인 최선입니다. Spring 자체는 프리페치/백그라운드 리프레시를 공식 지원하지 않지만, Caffeine의 refreshAfterWrite와 …

자세히보기

Spring Security RemoteJWKSet 캐싱 설정 예제

Spring Security에서 RemoteJWKSet 캐싱 설정을 하려면, 최신 방식은 NimbusJwtDecoder.withJwkSetUri(…).cache(…)에 Spring Cache를 주입하는 것입니다. 구버전이나 세밀한 TTL 제어가 필요하면 Nimbus의 RemoteJWKSet과 DefaultJWKSetCache를 직접 구성할 수도 있습니다. 최신 방식 Spring Security 5.4+에서는 NimbusJwtDecoder.JwkSetUriJwtDecoderBuilder.cache(…) 메서드로 …

자세히보기

RemoteJWKSet과 jose 라이브러리 차이점

RemoteJWKSet과 jose 라이브러리는 완전히 다른 차원의 개념입니다. 핵심은 RemoteJWKSet은 Java(Nimbus)의 JWKS 조회 메커니즘, jose는 Node.js의 종합 JOSE 라이브러리라는 점입니다. 한눈에 보는 차이 구분 RemoteJWKSet jose 라이브러리 정체 Java 클래스 …

자세히보기

Spring Security 6.x RemoteJWKSet TTL 설정 방법

Spring Security 6.x에서는 NimbusJwtDecoder.withJwkSetUri(…).cache(…) 메서드를 사용해 Spring Cache 기반 JWKS 캐시를 주입하는 방식이 공식이며, TTL은 주입하는 Cache 구현체에서 제어합니다. 핵심 구조 Spring Security 6.x의 NimbusJwtDecoder.JwkSetUriJwtDecoderBuilder는 cache(org.springframework.cache.Cache cache) 메서드를 제공하며, 이 캐시를 통해 JWK Set을 …

자세히보기