[Redis] Redis 멱등성 락으로 중복 알림 방지
최종 프로젝트를 진행하면서 겪은 트러블슈팅의 과정들에 대한 기록입니다. 해당 프로젝트의 전체소스는 여기 에서 확인하실 수 있습니다. 트러블슈팅 ⭐️ 주제 Redis 기반 멱등성 락을 이용해 FCM 알림 중복 발송 문제를 해결한 과정 🔥 발생 FCM 알림이 특정 상황에서 중복 발송되는 문제가 발생했다. 재시도 로직이 개입되거나 동일 이벤트...
최종 프로젝트를 진행하면서 겪은 트러블슈팅의 과정들에 대한 기록입니다. 해당 프로젝트의 전체소스는 여기 에서 확인하실 수 있습니다. 트러블슈팅 ⭐️ 주제 Redis 기반 멱등성 락을 이용해 FCM 알림 중복 발송 문제를 해결한 과정 🔥 발생 FCM 알림이 특정 상황에서 중복 발송되는 문제가 발생했다. 재시도 로직이 개입되거나 동일 이벤트...
캐시 (Cache) 캐시는 자주 접근하는 데이터를 미리 저장해 두어 데이터 조회 속도를 높이는 역할을 한다. 매 요청마다 원본 데이터베이스에 접근하는 대신 캐시에서 데이터를 읽어 응답 시간을 단축하고 데이터베이스 부하를 줄인다. 파레토 법칙에 따라 전체 요청의 80%가 자주 조회되는 20%의 데이터에 집중되는 경우가 많아, 캐시를 효과적으로 활용...
Redis 데이터 영속성 Redis는 메모리 기반의 Key-Value 저장소이기 때문에 서버가 종료되면 데이터도 휘발된다. 이를 방지하기 위해 Redis는 데이터 영속성(Persistence)을 위한 두 가지 방식을 제공한다. RDB(Snapshot) AOF(Append Only File) RDB란? RDB는 Redis Dat...
Redis란? Redis는 Remote Dictionary Server의 약자로, 메모리 기반의 Key-Value 저장소이다. 비관계형 데이터베이스(NoSQL)이며, 메모리를 사용하기 때문에 RDBMS보다 속도가 매우 빠르다. Redis의 특징 1. Key-Value 기반 모든 데이터는 Key-Value 쌍으로 저장된다. 2...
해당 프로젝트의 전체소스는 여기 에서 확인하실 수 있습니다. 해당 포스팅에서는 유저 프로필 이미지 업로드/다운로드를 예시로 진행합니다. 유저 프로필 이미지 업로드/다운로드 유저 도메인 User Entity profileImageUrl 필드를 추가하고 setter 메서드를 정의합니다. @Getter @Entity @NoArgsCons...
해당 프로젝트의 전체소스는 여기 에서 확인하실 수 있습니다. 해당 포스팅에서는 유저 프로필 이미지 업로드/다운로드를 예시로 진행합니다. Spring Boot Presigned URL 설정 Spring Boot 3.3.3 버전을 기준으로 작성되었습니다. 의존성 버전은 Spring Cloud AWS GitHub Link에서 확인할 수 ...
해당 프로젝트의 전체소스는 여기 에서 확인하실 수 있습니다. 해당 포스팅에서는 유저 프로필 이미지 업로드/다운로드를 예시로 진행합니다. Presigned URL이란? sequenceDiagram participant Client as Clients participant Server as Server(Spring Boot) ...
해당 프로젝트의 전체소스는 여기 에서 확인하실 수 있습니다. 1. CI/CD 워크플로우 개요 CI (Continuous Integration) 코드 변경 시 자동으로 빌드 & 테스트를 수행 → 품질 검증 CD (Continuous Deployment) main 브랜치 merge 시 자동으로 Docker 이미...
해당 프로젝트의 전체소스는 여기 에서 확인하실 수 있습니다. 1. SSM Document란? AWS Systems Manager(SSM)의 Document는 EC2 인스턴스에 실행할 명령어를 정의한 스크립트 파일입니다. CI/CD 파이프라인에서는 배포 스크립트를 이 Document로 관리하여, GitHub Actions → SSM RunComma...
해당 프로젝트의 전체소스는 여기 에서 확인하실 수 있습니다. 1. OIDC를 사용하는 이유 시크릿 키를 직접 저장해서 사용하거나 오랫동안 유지할수록 보안상 좋지 않기 때문에 최근에는 액세스 토큰을 직접 사용하는 대신 OIDC를 사용하는 것을 권장합니다. OpenID Connect의 약자로 OAuth 2.0 기반의 인증 프로토콜입니다. ...