Tag
#peekcart
21개의 글이 있습니다.
-
부채 해결 회고: MSA로 넘어가기 전에 무엇을 고치고 무엇을 일부러 남겼나
Phase 4 MSA 전환을 앞두고 22개의 기술 부채를 트리아지하고, 즉시 고칠 항목과 의도적으로 남길 항목을 나눈 기준을 회고합니다.
-
PeekCart 학습 기록 19: "조건부 UPDATE 한 방"이면 분산 락이 필요 없을까
단일 행 재고 차감에서 조건부 UPDATE, Redis 분산 락, JPA 낙관적 락의 적정 구간을 비교하고 PeekCart에 남길 ADR 판단 기준을 정리합니다.
-
PeekCart 학습 기록 18: Phase 4로 넘어가기 전에 - 글을 쓰다 발견한 22개의 부채
Phase 4 MSA 진입 전에 글쓰기 과정에서 드러난 22개의 기술 부채를 보안, 관측성, 발행 경로, 동시성, CI와 배포 관점에서 정리합니다.
-
PeekCart 학습 기록 17: 1,000명이 소수 상품을 동시에 주문하면
1,000 VUser 동시 주문 부하에서 오버셀링 0건, HPA 1→3 scale-out, Kafka Lag 회복, throughput 미달을 함께 검증한 세션 C 기록입니다.
-
PeekCart 학습 기록 16: 캐시 효과를 어떻게 증명할까
Redis Cache Aside 도입 효과를 GKE 부하 테스트에서 캐시 ON/OFF 단일 변수 실험으로 검증하고, 목표 x3에 못 미친 x2.31 결과를 baseline으로 남긴 과정을 정리합니다.
-
PeekCart 학습 기록 15: 메트릭은 수집됐는데 그래프가 비어 있다
Actuator에서 Prometheus, Grafana 알림까지 이어지는 관측성 경로를 따라가며 YAML 설정 배치 원칙과 SSOT 기반 관측성 계약을 정리합니다.
-
PeekCart 학습 기록 14: 같은 매니페스트로 두 환경을 배포한다 - Kustomize base/overlays와 minikube → GKE
Kustomize base/overlays로 minikube와 GKE 환경 차이를 patch로 분리하고, monitoring 스택을 base에서 떼어낸 배포 구조와 한계를 정리합니다.
-
PeekCart 학습 기록 13: "내 머신에선 되는데"를 닫는다 - CI와 Docker 이미지 빌드
PeekCart의 GitHub Actions CI, Testcontainers 통합 테스트, 멀티스테이지 Docker 이미지 빌드, GHCR 발행 흐름과 검증 공백을 정리합니다.
-
PeekCart 학습 기록 12: Pod이 셋이면 스케줄러도 셋이 돈다 - ShedLock
여러 Pod에서 중복 실행되는 Spring 스케줄러를 ShedLock과 MySQL 락 레코드로 조율하는 원리, 설정, SQL, 한계를 정리합니다.
-
PeekCart 학습 기록 11: 같은 이벤트가 두 번 왔다 - Consumer 멱등성과 DLQ
Kafka의 at-least-once 전달에서 생기는 중복을 Consumer 멱등성으로 흡수하고, 재시도해도 처리할 수 없는 메시지를 DLQ로 격리하는 흐름을 정리합니다.
-
PeekCart 학습 기록 10: DB는 커밋됐는데 이벤트가 사라진다면 - Kafka와 Transactional Outbox
Kafka 발행과 DB 저장 사이의 dual-write 문제를 Transactional Outbox로 줄이고, polling, at-least-once, Debezium CDC의 트레이드오프를 정리합니다.
-
PeekCart 학습 기록 9: 오버셀링을 두 겹으로 막기 - 분산 락과 낙관적 락
Redis 분산 락과 JPA 낙관적 락을 함께 사용해 재고 오버셀링을 막는 이유, 트랜잭션 경계의 한계와 테스트 범위를 정리합니다.
-
PeekCart 학습 기록 8: 상품 조회를 캐시 뒤로 옮기기
PeekCart의 상품 목록과 상세 조회를 Redis Cache Aside로 옮기며 재고 제외, self-invocation 회피, 목록 캐시 무효화, CachedPage 래퍼를 정리합니다.
-
PeekCart 학습 기록 7: 15분 후에 돌아와서 주문을 취소하는 일
PeekCart의 결제 타임아웃 스케줄러, REQUIRES_NEW 건별 트랜잭션, 상태 경합 격리, ShedLock 도입 이유를 정리합니다.
-
PeekCart 학습 기록 6: 알림 발송이 실패해도 주문은 살아남아야 한다
PeekCart Notification 도메인의 Kafka Consumer 전환, SlackPort 위치, 멱등성, Slack Webhook 실패 격리, Phase 4 MSA 분리를 정리합니다.
-
PeekCart 학습 기록 5: 결제 승인이 실패하면 누가 주문을 취소하는가
PeekCart의 Payment 생성, Toss 결제 승인 실패 처리, Outbox 이벤트, 웹훅 멱등성, Order 상태 연결을 정리합니다.
-
PeekCart 학습 기록 4: 주문 생성 트랜잭션 안에서는 어떤 일이 일어나는가
PeekCart의 장바구니부터 주문 생성, 가격 스냅샷, 주문 상태 전이, 취소와 보상 트랜잭션 흐름을 정리합니다.
-
PeekCart 학습 기록 3: 상품과 재고는 왜 따로 관리해야 할까
PeekCart의 Product와 Inventory 분리를 재고 동시성, 낙관적 락, Redis 분산 락, 캐싱 전략 관점에서 정리합니다.
-
PeekCart 학습 기록 2: 인증, 인가의 갈림길에서 무엇을 선택할 수 있을까
PeekCart의 인증과 인가 설계를 비밀번호 저장, JWT, 토큰 회수, 재발급 전략, 서비스 간 신뢰 관점에서 정리합니다.
-
PeekCart 학습 기록 1: 4-Layered + DDD 구조를 어떻게 읽어야 할까
PeekCart의 단일 Spring Boot 모놀리스 구조를 4-Layered Architecture, DDD, Hexagonal, Clean Architecture와 비교하며 읽어봅니다.
-
PeekCart 학습 기록 0: 왜 모놀리스에서 MSA로 가는 흐름을 먼저 봐야 할까
PeekCart를 MSA 프로젝트로 바로 보기 전에, 모놀리스에서 출발해 단계적으로 문제를 확인하는 흐름을 정리합니다.