본문 바로가기

분류 전체보기

(40)
Late Limiter vs Circuit Breaker 레이트 리미터는 호출 자체를 제한하고, 서킷 브레이커는 API 가 응답 안하면 정해진 Fallback 을 호출해 장애 전파를 방지한다는 차이점이 있다.쉽게 레이트 리미터는 앞단에서 먼저 체크, 서킷 브레이커가 뒷단에서 후 처리한다라고 생각하자. 차이점Rate Limiter: - 목적: 과도한 요청 제한 - 상태: Stateless - 척도: 요청 수/시간 Circuit Breaker: - 목적: 장애 전파 방지 - 상태: Stateful (Closed/Open/Half-Open) - 척도: 실패율, 응답시간  Late Limiter[클라이언트들] [Rate Limiter] [서버] 📱 → 📱 → 🚥 (초당 100개) → 💻 ..
Spring Circuit Breaker 기본 개념전기 회로의 차단기처럼, 시스템에 문제가 발생했을 때 더 큰 장애를 방지하기 위해 서비스 호출을 차단합니다.=> 장애 격리와 복원을 하기 위해 사용함 Rate Limter와의 차이점은 호출 전 요청 제한인지, 호출 후 장애 방지와 복구인지 차이점이 있음Late Limiter vs Circuit Breaker 사용 예시외부 API 호출이 빈번한 경우 결제, 인증 등 중요 서비스 연동 시 마이크로서비스 간 통신이 많은 경우시스템 부하 관리가 필요한 경우3가지 상태1. Closed (정상 상태) - 모든 요청이 정상적으로 처리 - 실패율 모니터링 2. Open (차단 상태) - 임계치 초과 시 활성화 - 모든 요청을 즉시 차단 - Fallback 메소드 실행 3. Half-Open (반개방 상태) -..
Spring Rate Limiter 1. 기본 개념 Rate Limiter는 시스템에 대한 요청의 속도를 제어하는 메커니즘특정 시간 동안 허용되는 최대 요청 수를 제한 요청자(IP, 사용자, API 키 등)별로 제한 가능 초과 요청에 대한 처리 방식 정의 (거부, 대기열 등) 2. 사용 케이스API 보안 - 무차별 대입 공격, DDoS 공격 방어리소스 보호 - 서버 과부하 방지, 데이터베이스 부하 관리 서비스 품질 관리 - 리소스 분배, Premium/Free 사용자 구분 즉, 이벤트나 해킹 공격 등 갑작스러운 트래픽이 생겼을 때 서비스단에서 생각해 볼수 있는 제어 방법 중 하나 서킷 브레이커와의 차이점Late Limiter vs Circuit Breaker 3. 코드로 보자// build.gradle// resilience4j의 rate..
디자인 패턴 아는척하기 (2) - 현대적인 디자인 패턴 디자인 패턴 아는척하기 (1) - 전통적인 디자인 패턴1편에 이어서..... 아래 6가지 개념 정리CQRSSAGAAPI GatewayBFFRate LimiterTransactional Outbox 1. CQRS 패턴 📌 특징: 명령(쓰기)과 조회(읽기) 책임 분리 ✅ 장점 - 읽기/쓰기 각각 최적화 가능 - 확장성 향상 - 성능과 확장성 개선 ❌ 단점 - 구현 복잡도 증가 - 데이터 일관성 관리 필요 - 인프라 비용 증가 💡 사용 시기 - 읽기/쓰기 비율 차이가 큰 경우 - 복잡한 도메인 로직이 있는 경우 - 높은 확장성이 필요한 경우 🔧 실무 사례 - 주문 관리 시스템 - 게시판/커뮤니티 서비스 - 실시간 분석 시스템 - 대시보드 서비스 // Command 모델@Datapublic class Cr..
디자인 패턴 아는척하기 (1) - 전통적인 디자인 패턴 Design Patterns Series | Baeldung 크게 구분을 한다면 두갈래로 할수 있음- 전통적인 디자인 패턴 -> 생성, 구조, 행위- 현대적인(?) 디자인 패턴 위 baeldung에서도 전통적 디자인 패턴 3개 + Architectural Patterns으로 정리하고 있음 현실적으로 다 알고있기가 힘들지만 용어만이라도 알아두자중요하다고 생각하는 것만 작성함  1. 싱글톤 패턴 📌 특징: 클래스의 인스턴스가 하나만 생성되도록 보장 ✅ 장점 - 리소스 재사용 - 전역적 상태 관리 - 메모리 효율성 ❌ 단점 - 단위 테스트 어려움 - 전역 상태로 인한 버그 - Thread-safe 구현 필요 💡 사용 시기 - 공유 리소스 관리 - 설정 정보 관리 - DB 연결 풀 🔧 사용 사례- DB C..
Spring Kafka 기본 설정 및 실행 도커에 카프카 설치, 스프링에 연동해보자도커 데스크탑 설치가 되어 있어야 함 1. docker-compose.yml 생성 (아무데나 해도 되지만 프로젝트 or 도커 작업 경로에 두는게 좋음)[Kafka Cluster]└── Broker 1 (단일 브로커) └── Topic: test-topic └── Partition 0 (파티션 1개) // docker-compose.ymlversion: '3'services: kafka: image: confluentinc/cp-kafka:7.5.1 container_name: kafka ports: - "9092:9092" environment: KAFKA_NODE_ID: 1 ..
Kafka 기본 개념과 구조 1. 카프카 어디에 쓸까?실시간, 대용량 처리, 분석 등 사용처가 무궁무진하다ex) 실시간 추천 시스템, 이상 탐지, 모니터링, 재고 관리, 로깅, 분석 등.. 1) EDA에서 느슨한 결합을 위해 사용- MSA 간 데이터 동기화 - 서비스 간 의존성 제거 - 확장성 있는 시스템 구축 2) 실시간 데이터 파이프라인 - 로그 중앙 집중화 - 실시간 데이터 분석 - 대용량 데이터 이동 (ETL) 3) 메시징 큐 - 비동기 처리 - 트래픽 피크 완화 - 안정적인 데이터 전달 보장 2. 기본 개념과 구조[프로듀서] [카프카 클러스터] [컨슈머] ↓ ↓ ↓애플리케이션 → 토픽/파티션/브로커 → 애플리케이션[Kafka Cluster]├── B..
Pika - 이미지에 움직임을 주고 싶을 때 https://pika.art/login PikaThe idea-to-video platform that sets your creativity in motion.pika.art 메일 인증으로 가입하면 크레딧은 150개를 받음아래 이미지로 1.5 한개 만들어보니 15 크레딧을 사용함 홈화면에서는 2.0으로 생성된 짧은 영상과 프롬프트 예제들도 볼 수 있고확실히 1.5보다 2.0이 부드럽고 좋은것 같음   내가 해볼건 Flux로 만든 오리 이미지에 동작을 추가해보기 2.0 - "단순히 걸어가게 해줘"  1.5 - "지금 보고있는 방향으로 걸어가게 해줘"  2.0이 자꾸 앞을 보길래 1.5로 만들어 봤는데 다리가 3개 됨;;움직이는 사진을 만들고 싶을때 pika 한번 써보자