1. NestJS 요청 흐름
"NestJS에서 HTTP 요청이 들어오면 어떤 일이 일어나나요?"
Follow-up
•
Guard와 Interceptor의 차이는?
•
Custom Decorator 만들어 본 적 있어요?
•
DI 컨테이너에서 Scope는 어떻게 관리되나요?
2. ECS Rolling / BlueGreen Update
"두 가지 방식의 차이점 설명해주세요."
Follow-up
•
블루그린 배포 시 트래픽 스위칭은 어떻게 처리하나요? ALB or Route53?
•
롤링 배포 중 장애 발생 시 복구 시나리오는?
•
ECS에서 배포 실패 감지 후 자동 rollback 경험 있나요?
3. 단축 URL 아키텍처 설계
"단축 URL 시스템을 ECS와 DB 포함해서 설계해보세요."
Follow-up
•
Hash 충돌 방지는 어떻게 하나요?
•
Redis 캐시는 어떻게 쓰이고 TTL 전략은?
•
단축 URL 클릭 수, 통계는 어떻게 수집하나요?
4. MQ 도입 이유 / 경험
"Kafka, RabbitMQ 사용 경험 있나요? 없다면 왜 써야 하나요?"
Follow-up
•
Kafka는 왜 high-throughput에 강하다고 하나요?
•
메시지 중복이나 순서를 어떻게 보장하나요?
•
SQS vs RabbitMQ vs Kafka 장단점 비교?
5. 대용량 벌크 데이터 실시간 처리
"실시간성이 중요한 대량 데이터 처리 어떻게 하시겠어요?"
Follow-up
•
Node.js에서 병렬성 확보는 어떻게 하셨나요?
•
Redis는 어떤 역할로 쓰이나요? 캐시, pub/sub, queue?
•
데이터를 분할 처리할 때 순서를 보장하려면?
6. ECS 리소스 조정 (CI/CD 연동)
"ECS의 CPU / Memory를 쉽게 조정하는 방법이 있나요?"
Follow-up
•
파이프라인에서 task definition 동적으로 변경한 경험?
•
ECS에서 resource 조정과 함께 Auto Scaling 설정도 해보셨나요?
•
Terraform이나 CDK 같은 IaC 툴은 쓰셨나요?
7. ECS vs EC2 선택 이유
"왜 EC2가 아니라 ECS를 선택했나요?"
Follow-up
•
EC2로 구성했던 경험 있다면 어떤 점이 불편했나요?
•
ECS에서 직접 EC2 클러스터 운영 vs Fargate 선택 기준은?
•
가격이나 보안, 유지보수 측면에서 선택 기준은?
8. ALB + 다중 도메인
"ALB 하나로 여러 도메인을 처리할 수 있나요?"
Follow-up
•
Host-based routing과 Path-based routing 차이?
•
HTTPS 인증서 관리는 어떻게 하나요? ACM?
•
Nginx Ingress Controller 같은 대안은 언제 쓰나요?
9. Redis 캐시 TTL 만료 시 수만건 요청 발생 대응
"TTL이 만료되면서 Redis 캐시가 다 날아가고, 수만 건의 요청이 B 시스템으로 몰릴 때 어떻게 대응하시겠어요?"
Follow-up
•
Redis에서 분산락 구현 시 race condition 방지 어떻게?
•
Lazy caching 구현 시 fallback 전략은 어떤 방식?
•
캐시 만료를 분산하는 jitter 전략의 단점은?
•
메시지 큐로 리프레시 분산처리 시 병목 방지는?
NestJS / 구조 관련
•
NestJS에서 Exception Filter는 어디에 사용하나요?
•
NestJS의 Module 간 순환참조 문제를 해결한 경험 있나요?
•
Request Scope Provider를 썼던 사례가 있나요?
ECS / 컨테이너 운영
•
ECS에서 Container끼리 통신은 어떻게 하나요? (awsvpc / bridge 차이)
•
ECS Fargate 사용 시 로그 수집은 어떤 방식으로 처리했나요? (e.g., CloudWatch, Firelens)
•
ECS Task가 비정상 종료될 경우 대응 방법은?
CI/CD
•
GitHub Actions / CodePipeline 중 어떤 걸 사용했고 이유는?
•
ECS 배포 전용 taskDefinition 버전 관리는 어떻게 했나요?
•
배포 실패 알림은 어떤 채널로 연동하셨나요? (e.g., Slack + EventBridge)
Redis / 캐시
•
캐시와 DB 간 consistency를 맞추기 위한 전략은? (Write-through vs Write-behind)
•
Redis Cluster를 구성하면 어떤 장점이 있나요?
•
캐시 stampede와 dogpile 문제의 차이는?
MQ / 비동기 처리
•
메시지를 처리하는 consumer가 죽었을 때 메시지는 어떻게 처리되나요?
•
DLQ(Dead Letter Queue) 설정해본 적 있나요?
•
MQ 소비자 수 늘리는 방식은? (수평 확장, 파티션 기준 등)
ALB / 네트워크
•
ALB vs NLB 차이는 무엇인가요?
•
ALB + WAF 사용해본 적 있나요? (IP 차단 / rate limit)
•
ALB에서 path rewrite를 설정하려면 어떻게 하나요?
대용량 처리
•
DB의 대량 insert 시 성능 최적화 방법은? (예: COPY, bulk insert, batch)
•
데이터 처리 중 실패한 건만 재처리하려면 어떻게 설계할 건가요?
•
Promise.all이 아닌 Task Queue 패턴을 사용하는 이유는?
시스템 설계 공통
•
rate limiting은 어떤 방식으로 구현하셨나요? (token bucket vs leaky bucket)
•
graceful shutdown은 어떻게 구성하셨나요? (e.g., SIGTERM → drain connection)
•
API 서버에 request ID 넣는 이유는 뭔가요?
인프라 운영
•
S3 presigned URL 사용 경험 있나요?
•
RDS 연결 최대치 초과 대응 방법은?
•
CloudWatch에서 custom metric 만들어본 적 있나요?
보안 / 인증
•
JWT 토큰 갱신 로직 어떻게 설계했나요? access/refresh 분리?
•
HTTPS 강제 리디렉션은 어디서 처리했나요? ALB? 애플리케이션?
•
OAuth 연동 시 state 파라미터는 왜 필요한가요?
