전체 글 (1064) 썸네일형 리스트형 분산 락 멀티 인스턴스 환경일 때 특정 key값에 대해서 동시성(동시 수정) 방지를 위해 사용한다. Redis의 싱글 스레드라는 특성, Redisson 라이브러리를 이용한다.Hash 자료구조를 사용한다.- Key: lock:{key이름}:{보통 사용하는 id값}- Field: {Redisson UUID} : {Java Thread ID}소유자 식별자로 사용하며, Redisson UUID를 사용하면 RedissonClient 인스턴스가 서버(JVM) 인스턴스마다 고유하게 부여한다.ex) a3f2e1d0-b7c4-4f2a-9e88-1234abcd5678 : 52- Value: 재진입 횟수로 정수값으로 기록한다. 키 및 로직HEXIST로 내가 소유한 락인지 확인한다. HINCRBY로 원자적으로 증가시킨다. Lua Sc.. Non-Heap Usage Heap이 아닌 메모리 영역 Metasapce: 클래스 메타 데이터 저장Code Cache: JIT 컴파일된 네이티브 코드Compressed Class Space: 압축된 클래스 포인터Thread Stacks: 각 스레드의 스택 메모리 별도 설정 필요: -XX:MaxMetaspaceSize클래스 로딩이 많으면 증가 (Spring의 프록시, 동적 클래스 생성 등) Non-Heap과 트래픽 관계 .. Gradle Daemon Gradle Daemon 설명 --no-daemon의 반대 설정인 org.gradle.daemon=true에 대해: - Daemon 방식: JVM을 백그라운드에 계속 띄워두고 재사용 - 첫 번째 빌드: JVM 시작 (느림) - 이후 빌드: 이미 실행 중인 JVM 재사용 (빠름) - JVM warmup 효과로 점점 빨라짐 - --no-daemon: 매 빌드마다 새 JVM 시작 후 종료 - CI/CD 환경에서 주로 사용 (일회성 빌드) - 로컬에서는 비효율적 로컬 개발 환경에서는 Daemon 모드가 훨씬 빠릅니다. keycloak NICE 본인 인증 구현 - iOS 팝업, 사파리 ITP 문제 1. ITP(지능형 추적 방지)가 뭔가요?ITP(Intelligent Tracking Prevention)는 애플이 Safari 브라우저에 도입한 초강력 개인정보 보호 기술입니다. 사용자가 여러 웹사이트를 돌아다닐 때 광고 회사들이 쿠키를 이용해 사용자를 추적(Tracking)하는 것을 막기 위해, 제3자 쿠키(Third-party Cookie)의 접근을 아주 엄격하게 차단합니다.2. 왜 '일반 팝업'에서 세션(로그인 상태)이 날아갈까?이해하기 쉽게 '본인 인증' 팝업을 띄우는 상황을 상상해 보세요.사용자가 내 웹사이트(A.com)에서 로그인한 상태로 '인증하기' 버튼을 누릅니다.window.open 등으로 새 팝업창이 뜹니다.팝업창 안에서 본인확인기관(NICE.com)으로 페이지가 이동하여 인증을 진행.. Client Scope, Mapper 설정 정리 보호되어 있는 글입니다. keycloak B2C 적용 속성값, Organization 정리 보호되어 있는 글입니다. Keycloak Realm간 권한 매핑 보호되어 있는 글입니다. 아스키 아트(ASCII Art) 특정 테스트 케이스의 경우(특히 시간 관련) 테스트 메서드 내용만 봐서는 이해하기가 힘들다.(아무리 주석을 열심히 달아도…)그래서 이런 경우 아스키 아트를 활용하면 리뷰어나 테스트 코드를 작성하는 작성자에게도 가독성을 크게 향상 시킬 수가 있다. /* * ┌────────────────────────────────────────────────────────────┐ * │ Timeline │ * │ │ * │ 1/20 (today) .. 이전 1 2 3 4 ··· 133 다음