방관자가 아닌실행자입니다.
트렌드를 구경하는 대신, 직접 서비스로 만들며 배웁니다.

김세민
Agentic AI Engineer / Builder
Agentic AI Engineer &
Builder
에이전트를 설계·지휘하며 E2E, A2A 프로덕션 시스템을 구축합니다.
AlgoSu · 알고리즘 스터디 관리 플랫폼
이 반복 작업, 자동화하면 안 될까?
알고리즘 스터디를 운영하면서 코드 리뷰의 비효율성을 경험했습니다. 매주 반복되는 수동 리뷰, 일관성 없는 피드백, 그리고 학습 진도 추적의 어려움이 있었습니다.
이 문제를 AI로 해결하기로 결정했습니다. 단순한 코드 분석을 넘어, 학습 패턴을 이해하고 개인화된 피드백을 제공하는 지능형 플랫폼을 구축했습니다.
사용자 경험의 변화
AlgoSu 도입 전에는 스터디장 혼자 수기로 모든 과정을 처리했습니다. 이제는 로그인 후 클릭 몇 번으로 끝납니다.
Before — 수기 스터디 운영
After — AlgoSu 자동화
CI/CD
7단계 15 jobs — 경로 필터, ARM64 크로스컴파일, Trivy 보안 스캔, GitOps 자동 배포
기술적 의사결정
k3s vs EKS/GKE
OCI ARM 프리티어(4 OCPU, 24GB) 환경에서 프로덕션급 Kubernetes 필요. k3s는 50MB 바이너리, 512MB 메모리로 HPA·PDB·NetworkPolicy 완전 지원. EKS/GKE 대비 동일 기능에 비용 100% 절감.
FastAPI + NestJS
Claude SDK Python 우선 지원 + pydantic 응답 파싱으로 AI 서비스에 최적. AI Analysis만 FastAPI로 분리, 나머지 4개 서비스는 NestJS 10 통일로 DI·TypeORM 일관성 확보.
RabbitMQ vs Kafka
소규모 스터디 트래픽에 1:1 Task Queue 패턴 적합. 128Mi~512Mi 메모리로 ARM 프리티어 운영 가능. 내장 DLX→DLQ 자동 격리로 별도 실패 처리 구현 불필요.
Agent Orchestration
12개 AI Agent 페르소나를 Claude Code 슬래시 커맨드로 직접 구현. 프롬프트 엔지니어링만으로 역할 분담 가능, n8n·LangChain 등 외부 의존성 완전 제거.
Saga Pattern
코드 제출→GitHub Push→AI 분석 3단계 분산 트랜잭션의 원자성 보장 필요. 낙관적 락(WHERE sagaStep=EXPECTED) + 단계별 타임아웃(5/15/30분)으로 멱등성 확보. Outbox 패턴(Debezium CDC) 대비 ARM 리소스 제약 내 충분한 안정성.
Troubleshooting
데이터 소유권은 첫 설계에서 확정
Gateway가 Identity DB 직접 접근으로 출발. 분리 시 34개 API 신규 구축, 19파일 리팩터링, 597개 테스트 수정 발생.
597개 테스트 수정
정석보다 현실 제약 우선
Outbox 패턴(Debezium CDC)은 ARM 프리티어에서 리소스 초과. 낙관적 락 + 타임아웃 재개 조합으로 현 트래픽 규모에 충분한 안정성 확보.
사람의 실수는 CI 자동화로 방지
amend 커밋이 paths-filter 우회로 변경 서비스 빌드 누락 발생. force-push 금지 정책 수립 + CI 단계 강제 차단 적용.
리소스 제약이 과설계 제거의 기회
ARM 프리티어 제약으로 DB 커넥션 풀 40→20 축소, CI jobs 24→15 최적화, HPA 자동 스케일링 도입.
CI jobs -37.5%
로그 없는 실패는 가장 비싼 기술 부채
Guard 403 간헐 발생, 로그 미출력으로 원인 추적 불가. 캐시 히트 시 role 유효성 미검증이 원인. Sprint 40에서 테스트 보강.
CI/CD Pipeline
.github/workflows/ci.yml
7단계 15 jobs — 모노레포 경로 필터 + ARM64 크로스컴파일 + Trivy 보안 스캔 + GitOps 배포
# 1) 모노레포 변경 감지
detect-changes:
steps:
- uses: dorny/paths-filter@v3
with:
filters: |
gateway: ['services/gateway/**']
submission: ['services/submission/**']
# 2) ARM64 크로스컴파일 + Immutable 태그
build-services:
steps:
- uses: docker/setup-qemu-action@v3
with: { platforms: linux/arm64 }
- uses: docker/build-push-action@v5
with:
platforms: linux/arm64
tags: ghcr.io/tpals0409/algosu-${{ matrix.service }}:main-${{ github.sha }}
cache-from: type=gha,scope=${{ matrix.service }}
# 3) Trivy 보안 스캔
trivy-scan:
steps:
- run: trivy image --severity CRITICAL,HIGH --exit-code 1
- uses: github/codeql-action/upload-sarif@v3
# 4) GitOps 배포 (ArgoCD auto-sync)
deploy:
if: needs.trivy-scan.result != 'failure'
steps:
- run: git commit -m "deploy(algosu): update image tags" && git pushWriting
실전에서 배운 것들을 기록합니다.
배우고, 만들고, 성장합니다.
채용 문의, 기술 이야기, 협업 제안 모두 환영합니다.
