Redis 운영 중 발생하는 주요 문제와 최적화 방안

fork 작업으로 인한 고성능 요청 지연 RDB 스냅샷 생성이나 AOF 재작성 시 디스크 I/O 작업이 발생하며 메인 프로세스가 하위 프로세스를 fork합니다. 이때 하위 프로세스는 상위 프로세스의 메모리 페이지 테이블을 복제하는데, 10GB 메모리 기준 약 200ms가 소요될 수 있습니다. info stats의 latest_fork_usec로 마지막 fork 시간을 확인 가능합니다. 초당 수만 건 처리 ...

5월 21일 17:27에 게시됨

Spring Boot 3와 JWT, Redis를 활용한 백엔드 권한 인가 및 싱글 사인온(Single Sign-On) 구현

Spring Boot 3 + JWT + Redis를 이용한 백엔드 권한 인가 및 싱글 사인온(Single Sign-On) 심층 분석 서론 현대 웹 애플리케이션, 특히 분산 환경에서는 사용자 인증과 권한 관리 시스템이 매우 중요합니다. 전통적인 세션 기반 인증은 확장성 문제를 가지고 있으며, 순수 JWT 인증은 '강제 로그아웃'이나 '다중 로그인'과 같은 복잡한 비즈니스 요구사항을 처리하기 어렵 ...

5월 21일 15:10에 게시됨

Python 프로젝트 배포 가이드

Git 코드 관리 및 동기화 ### Git 로컬 업로드 - 전역 설정 git config --global user.name "사용자" git config --global user.email "이메일@도메인.com" - 프로젝트 디렉토리 진입 - 초기화 git init - 원격 주소 설정 git remote add origin https://gitlab.com/username/repository.git ...

5월 20일 23:05에 게시됨

캐시 침투 문제 해결: 뮤텍스 잠금을 이용한 상점 조회 시스템

캐시 침투란 무엇인가? 캐시 침투 문제는 핫키 문제로도 불립니다. 높은 동시성으로 접근되며 캐시 재생성 비즈니스가 복잡한 키가 갑자기 만료되는 경우를 말합니다. 무수한 요청이 순간적으로 데이터베이스에 엄청난 부하를 줍니다. 상점 조회 + 뮤텍스 잠금 로직 public Shop queryShopWithMutex(Long id) 메서드 로직 1. 먼저 Redis에서 키로 조회 S ...

5월 20일 22:55에 게시됨

Redis 고급 기능 및 최적화 전략

Redis의 핵심 특성 초고속 처리: 메모리 기반으로 구현되어 1초당 수십만 건의 읽기/쓰기 작업이 가능하며, C 언어로 작성됨. 단일 스레드 모델: 모든 명령은 동기적으로 처리되며, 데이터 경쟁이나 불완전한 읽기/쓰기 현상 없음. 지속성 지원: RDB(스냅샷)과 AOF(명령 로그) 방식 제공. 다양한 데이터 구조: 문자열, 해시, 리스트, 셋, 정렬된 집합 등 5가지 주요 타입 ...

5월 20일 09:48에 게시됨

Redis 기반 메뉴 캐싱과 장바구니 기능 구현

메뉴 데이터 캐싱을 통한 성능 최적화 1. Redis를 활용한 메뉴 정보 캐싱 사용자 앱에서 메뉴 목록을 요청할 때마다 데이터베이스 조회가 발생하면, 트래픽 증가 시 DB 부하가 심화되어 응답 지연이 발생할 수 있다. 이를 해결하기 위해 Redis를 사용하여 자주 조회되는 메뉴 데이터를 캐싱하는 전략을 도입한다. 캐싱 전략 설계 카테고리별로 메뉴 목록을 별도의 키 ...

5월 19일 17:05에 게시됨