시스템 설계 · 아키텍처
17개의 글
-
AWS VPC Edge 라우팅 가이드 5편: 표준 패턴 4가지 — 결정 트리에서 처음 그릴 때까지
0~4편의 결정 트리들을 다 풀어도 정작 빈 캔버스 앞에서 '어디부터 그리지?'가 막막한 이유는 출발점·결정 순서·상호 의존성이 분해된 트리에는 없기 때문이다. 실무 90%가 수렴하는 표준 패턴 4가지(Serverless API / Container Web / 글로벌 Latency / 하이브리드 엔터프라이즈)를 시작점으로, 결정 트리는 패턴에서 벗어날 때 쓰는 도구로 자리잡으면 시리즈 전체가 합성된다.
-
AWS VPC Edge 라우팅 가이드 4편: DNS 결정과 Route 53 — Hosted Zone, Routing Policy 6종, Alias vs CNAME, Health Check
1·2·3편의 진입점들 앞에 항상 먼저 오는 결정 — DNS. Route 53의 Public/Private Hosted Zone, A/CNAME/Alias 레코드의 결정적 차이, 6종 Routing Policy(Simple/Weighted/Latency/Geolocation/Geoproximity/Multi-value/Failover), Health Check 3 종류, 그리고 Route 53 vs Global Accelerator vs CloudFront의 결정 영역까지. 시리즈의 DNS layer를 다루는 편(시리즈 합성·표준 패턴은 5편).
-
AWS VPC Edge 라우팅 가이드 3편: VPC 안에서 패킷은 어떻게 흐르는가? — IGW, NAT Gateway, Route Tables, Security Group vs NACL
VPC 내부에서 패킷이 어디로 가고 어디서 막히는지를 결정하는 4개 컴포넌트(IGW/NAT GW/Route Table/SG·NACL)를 한꺼번에 정리한다. Public/Private의 진짜 차이, NAT Gateway 메커니즘, Route Table 평가 순서, stateful·stateless 방화벽의 결정적 차이, 그리고 흔한 안티패턴까지. AWS VPC Edge 라우팅 가이드 시리즈 마지막 편.
-
AWS VPC Edge 라우팅 가이드 2편: VPC를 다른 VPC·AWS 서비스·온프레미스와 어떻게 잇는가? — VPC Endpoint, PrivateLink, Peering, Transit Gateway, Direct Connect 의사결정 트리
VPC를 다른 VPC, AWS 관리 서비스, 온프레미스와 잇는 방법은 6가지나 된다. 각 옵션이 어떤 결정 문제를 푸는지, 비용·확장성·전이성(transitivity)에서 어디서 갈리는지, 그리고 흔한 안티패턴까지. 결정 트리 한 장으로 끝내는 실무 가이드. AWS VPC Edge 라우팅 가이드 시리즈 2편.
-
AWS VPC Edge 라우팅 가이드 1편: 외부 트래픽을 어떤 진입점으로 받을 것인가? — ALB, NLB, API Gateway, CloudFront, Global Accelerator 의사결정 트리
AWS에서 인터넷 트래픽을 VPC로 받을 때 후보가 5개나 된다. 각 진입점이 어느 OSI 계층에서 동작하는지, 어떤 결정 변수가 선택을 가르는지, 그리고 흔한 안티패턴까지. 결정 트리 한 장으로 끝내는 실무 가이드. AWS 네트워크 서비스 블록 시리즈 1편.
-
AWS VPC Edge 라우팅 가이드 0편: 시리즈를 따라가기 위한 네트워크·AWS 기본 개념 — OSI 모델, VPC, CIDR, ENI, 리버스 프록시, 그리고 AWS 핵심 서비스
본격적인 결정 트리에 들어가기 전에 짚어두는 사전편. OSI 7-layer와 L4/L7, VPC·Subnet·CIDR·AZ, ENI·EIP·Source NAT, HTTPS·TLS·mTLS·인증 jargon, 리버스 프록시, AWS 핵심 서비스 분류 — 1·2·3편을 따라가는 데 필요한 모든 기본 개념을 한 글에 모았다.
-
AWS Private EC2 운영 가이드 1편: 왜 Private Subnet인가? — ALB + NAT Gateway 표준 아키텍처와 규모별 판단 기준
EC2를 Private Subnet에 두고 ALB + NAT Gateway로 감싸는 표준 아키텍처의 '왜'를 정리한다. Public IPv4 vs Elastic IP, 규모별 추천 구성, HA 개념, 그리고 개인정보를 다룰 때 Public Subnet이 왜 리스크인지 구체적으로 본다. Bastion 없는 AWS EC2 운영 시리즈의 1편.
-
선착순 부하 테스트 회고: 실무에서 놓치기 쉬운 것들
4가지 선착순 전략을 k6로 테스트하면서 만난 문제들 — Rate Limiter 충돌, 대기열 초과 성공 버그. 그리고 실무에서 선착순 API와 일반 API를 격리하는 4가지 방법(DataSource 분리, Redis 오프로드, 서비스 분리, Bulkhead)을 정리한다.
-
선착순 시스템 전체 방식 성능 비교: k6 부하 테스트로 직접 확인
DB 락, Redis, 대기열, 토큰 — 4가지 선착순 구현 방식을 k6로 동일 조건(재고 100개, 동시 100/500/1,000/2,000명) 부하 테스트한다. 각 시나리오를 10회 반복 실행해 평균 TPS, P95/P99 응답 시간을 측정하고, 상황별 최적 방식을 정리한다.
-
토큰 발급 방식으로 선착순 시스템 구현하기: 입장권부터 봇 방지까지
입장 토큰을 먼저 발급하고 토큰 보유자만 구매할 수 있는 선착순 시스템을 구현한다. JWT 기반 토큰 설계, TTL 만료 전략, Rate Limiting + CAPTCHA를 조합한 봇 방지까지 다룬다.
-
대기열로 선착순 시스템 구현하기: Redis Sorted Set부터 Kafka까지
Redis Sorted Set 대기열과 Kafka 메시지 큐로 선착순 시스템을 구현한다. 대기열 UX(폴링 vs 웹소켓), 이탈/만료 시 슬롯 재할당, 트래픽 폭주 흡수 전략까지 다룬다.
-
Redis로 선착순 시스템 구현하기: DECR부터 Lua 스크립트까지
Redis DECR 원자 연산과 Lua 스크립트로 선착순 재고 차감을 구현한다. Spring Boot + Redisson으로 구현하고, DB 락 방식과 동일 조건(재고 100개, 동시 100명)으로 TPS를 직접 비교한다. Redis-DB 정합성 문제와 장애 대비 전략까지 다룬다.
-
DB 락으로 선착순 시스템 구현하기: FOR UPDATE부터 동시성 테스트까지
SELECT FOR UPDATE를 사용한 선착순 재고 차감 구현을 다룬다. Spring Boot + JPA 코드로 비관적 락을 구현하고, 100명 동시 요청 테스트로 정합성을 검증한 뒤, 한계를 직접 확인한다.
-
선착순 시스템 완전 정리: 6가지 구현 방식과 선택 가이드
선착순 시스템의 핵심 문제(동시성, 재고 차감, 중복 방지)를 정리하고, DB 락부터 Redis, 메시지 큐, 대기열, 토큰 발급까지 6가지 구현 방식의 동작 원리와 장단점을 비교한다.
-
스프링부트 실무 가이드 2편: 캐싱 전략과 Redis 활용
Cache-Aside 패턴부터 캐시 문제 해결까지, 실무에서 바로 적용 가능한 캐싱 완벽 가이드
-
스프링 사전과제 가이드 7편: Advanced Patterns — Spring Boot 4 · Kotlin 2.3 · Events · Async · 멀티 모듈
Spring Boot 4 + Kotlin 2.3 환경에서 사전과제 차별화를 만드는 고급 패턴. @TransactionalEventListener로 도메인과 부가 기능 분리, @Async + CompletableFuture로 응답 시간 단축, 파일 업로드 검증, URI 버저닝, 계층형·Hexagonal·CQRS 비교, 멀티 모듈 Option A(DIP) vs Option B(간소화) — Lombok 없이 Kotlin primary constructor·val/var로 풀이한 시리즈 7편.
-
스프링 사전과제 가이드 4편: Performance & Optimization — Spring Boot 4 · Kotlin 2.3 N+1·페이지네이션·캐싱·QueryDSL
Spring Boot 4 + Kotlin 2.3 환경에서 N+1 문제를 잡는 세 가지 도구(Fetch Join·@EntityGraph·@BatchSize)의 트레이드오프, Page/Slice/Cursor 중 언제 무엇을 쓸지, Caffeine과 Redis 중 어떤 캐시를 고를지, QueryDSL 동적 쿼리와 Projection 적용 기준까지 — 성능 최적화 영역에서 가점과 감점이 갈리는 포인트만 평가자 시점으로 정리했다.