Projects (개인)
개인 사이드 프로젝트
개인 프로젝트의 구조, 운영 관점, 링크를 빠르게 확인할 수 있습니다.
Project
Book Search Labs
2025~현재 | 통합검색·주문/결제/환불·RAG 챗봇을 하나의 마이크로서비스 플랫폼으로 운영하고, 자동완성/추천/리랭킹을 오프라인 학습 루프로 지속 개선한 Book Search 시스템 구축
- BFF 단일 진입점 위에 QS/SR/RS/MIS/Commerce를 분리하고 JSON Schema/OpenAPI + CI compatibility gate로 서비스 경계를 계약 중심으로 고정
- Hybrid Search 고도화: BM25 + Vector(kNN) 후보를 생성하고 RRF/가중치 fusion으로 결합해 검색 전략 실험·전환 비용을 낮춤
- 통합검색 Query Understanding(ISBN/저자/시리즈/권차/언어 파싱 + 필드 라우팅/부스팅)과 조건부 2-pass enhance로 품질 개선과 비용 상한을 동시에 제어
- MIS 모델 서빙 계층 도입: embedding/spell/rerank를 독립 서비스화하고 model registry 기반 active/canary 라우팅으로 무중단 롤아웃 구현
- 검색/재랭킹/챗 공통 budget governor, timeout budget, circuit breaker, degrade 정책(벡터 실패→BM25 only, rerank 실패→fusion 유지)으로 p95/p99 guardrail 구축
- 주문·결제·환불을 Order 상태머신 + Inventory Ledger(reserve/release/deduct/restock)로 연결해 재고·결제 정합성을 일관되게 유지
- 중복 주문/중복 결제를 Order/Payment/Refund 전 구간 idempotency key + DB unique 제약으로 차단하고 재시도 시 동일 결과를 반환하도록 멱등 처리
- 결제 확정 경로를 webhook 중심으로 표준화하고 duplicate webhook 판별, 서명 검증, 자동/수동 재처리(retry) 체계를 구현해 비동기 결제 실패 내성을 강화
- 부분환불/중복환불 초과 검증, 정책 기반 환불금 계산(배송비·반품비), 환불 후 재고 복원 및 주문 상태 전이까지 포함한 환불 파이프라인 완성
- RAG 챗봇 파이프라인(Rewrite→Retrieve(Hybrid)→(선택)Rerank→Generate)과 citation 필수·citation-to-chunk 검증·근거 커버리지 임계치로 환각 리스크를 제어
- 챗봇을 툴 오케스트레이션으로 확장해 주문/배송/환불 조회, 문의 생성/조회, 주문취소·환불신청까지 대화형 인터랙션으로 연결
- 민감 액션은 2-step 확인 토큰(만료/사용자 바인딩/중단 처리)과 chat 전용 idempotency key를 적용해 안전한 실행·재시도 보장
- SSE(meta/delta/done) 스트리밍과 reason_code/recoverable/next_action/retry_after/fallback_count/escalated 계약으로 실패 시 사용자 복구 경로를 명시
- 세션별 fallback 누적·unresolved context 상태 API와 임계치 기반 OPEN_SUPPORT_TICKET 에스컬레이션으로 챗 운영 안정성을 강화
- LLM provider 라우팅에 intent 기반 정책, health/cost steering, stream/json failover를 적용해 품질·비용·가용성을 운영 정책으로 제어
- 자동완성 품질 루프 구축: ac_impression/ac_select 이벤트를 Outbox→Kafka로 수집하고 시간감쇠 CTR·인기도 집계를 Redis/OpenSearch 랭킹에 반영
- 추천/리랭킹 학습 루프 구축: search/click/dwell/cart/purchase 신호를 implicit label로 정규화하고 ClickHouse/Feature Store에 적재
- Feature parity 체계화: features.yaml 단일 스펙 + point-in-time join으로 online/offline feature 일치성을 보장해 학습-서빙 skew 최소화
- LTR 기반 reranking 고도화: LightGBM LambdaMART 학습 파이프라인과 모델 레지스트리 연동으로 배포 가능한 재랭킹 모델 운영
- Offline eval 회귀 게이트를 CI에 적용해 자동완성/하이브리드 검색/리랭킹 변경 시 품질 하락 배포를 사전에 차단
JavaSpring BootPythonMySQL 8OpenSearch(BM25 + Vector + RRF/Weighted Fusion)Model Inference Service(Embed/Spell/Rerank)Query Understanding + 2-pass EnhanceOutbox + Kafka + ClickHouse/Feature StoreModel Registry + Canary RolloutOffline Eval CI GateTracing/Latency Budgets/Degrade-safeRedis(Autocomplete Cache / Online KV)
Project
AutoDoc Tree
2025~Present. 업로드/작성 문서를 자동으로 가상 폴더 트리로 정리하고, 사용자 피드백으로 개인화되는 멀티테넌트 문서 자동 정리 서비스.
- 문서 메타/텍스트 기반 신호(lexical)로 2-depth 자동 트리 스냅샷(ACTIVE/RECOMMENDED)을 생성하고, 드래그/폴더명 수정 이벤트를 수집해 피드백 기반 분류 개인화로 수렴하도록 설계/구현
- Workspace 단위 멀티테넌시를 API/DB/Search/Cache/ObjectStorage까지 일관 적용해 테넌트 간 데이터 누수 방지
- Outbox(At-least-once) + Worker 파이프라인으로 ingest→(embedding)→index→tree 단계를 분리하고 stage-level idempotency key로 재처리 안전성 확보
- PDF/DOCX/TXT/MD를 파싱해 section/chunk 단위로 구조화하고 doc-level/section-level representation을 저장해 검색과 트리 생성에 활용(임베딩은 오프라인 로컬 모델 bge-m3로 고도화 중)
- 문서 배치 결과에 키워드/유사문서/신호 근거를 함께 제공하는 explainable placement로 자동 정리 결과 신뢰도 및 디버깅 가능성 확보
- 트리 스냅샷 버전(ACTIVE/RECOMMENDED), 변경폭 제한, rebuild debounce/coalesce, locked 노드로 구조 안정성 강화
- 민감정보 본문/첨부 로그 금지 정책과 trace_id/request_id 전파(OTel), stage 메트릭으로 운영 추적 및 품질 튜닝 기반 확보
Project
Distributed Systems Reliability Lab
2025~Present. Kafka/Redis/MySQL 기반으로 유실·중복·정합성·복구 시나리오를 실험 코드로 재현하고 운영 가이드를 정리하는 신뢰성 실험 프로젝트.
- Outbox/Relay/Processed Event 조합으로 at-least-once 환경의 유실·중복·정합성 리스크를 실험 케이스(E-001~)로 검증
- DLQ/Retry/Replay 운영 흐름을 실험화해 transient/permanent 실패 분류와 재처리 runbook을 문서화
- Kafka HW/LEO/LSO, read_committed, ISR/min.insync.replicas/acks 관점에서 가시성/내구성/순서 보장 특성을 재현 검증
- Redis cache stampede, cluster slot/CROSSSLOT, hot key/hot shard 이슈를 재현하고 singleflight/TTL jitter 등 완화 전략 비교
- consumer rebalance storm, MySQL deadlock/lock wait 시나리오를 재현하고 retry/backoff 튜닝으로 수렴성 확인
- Prometheus/Grafana + chaos 스크립트 + k6를 연계해 lag/outbox age/DLQ rate/cache hit/miss를 수치로 검증
- 대량 backfill 시 batch/rate/backpressure/checkpoint 제어와 정합성 샘플링 검증으로 안전한 재처리 기준 수립
Project
StayVista
2025~Present. 숙소/티켓/체험/패키지를 단일 예약 도메인으로 통합하고 동시성·정합성·실시간성을 함께 고려한 OTA 아키텍처 설계 프로젝트.
- 숙소/티켓/체험/패키지 예약을 단일 Booking 도메인으로 수렴시키고 상품 카탈로그와 예약 정합성 책임을 분리
- 룸타입 재고형 모델에서 조건부 원자 UPDATE(reserved+sold < total)와 HOLD→CONFIRM 전환으로 과판매 방지
- 예약/결제 요청에 idempotency key를 적용하고 소비자 측 Processed-Event dedup으로 중복 예약·중복 결제 위험 차단
- 패키지 예약을 Saga 오케스트레이션으로 설계해 부분 실패 시 보상(Release) 트랜잭션으로 정합성 유지
- Outbox 기반 비동기화를 통해 외부 효과(알림/정산/로그) 처리와 트랜잭션 경계를 분리
- AI 컨시어지(로컬 LLM) 도입: 슬롯 추출→RAG 검색→LLM 오케스트레이션으로 추천 카드/일정을 생성하고, 모든 카드에 근거(source)와 후속 질문을 구조화 응답(JSON)으로 제공
- RAG 검색 계층(OpenSearch + (선택) vector retrieval)으로 POI/숙소/티켓/체험 컨텐츠를 통합 인덱싱하고, 0-result 시 보완 질문/트렌딩 fallback으로 degrade-safe 처리
- LLM 병목 제어: 'RAG/템플릿 우선 + 필요 시만 LLM' 라우팅과 inflight 제한·짧은 큐·hard timeout·fallback으로 폭주 상황에서도 p95/p99 latency 보호
- OpenSearch + Redis 읽기 경로 최적화와 singleflight/TTL jitter로 캐시 스탬피드 및 비용/지연 제어
- trace_id/request_id 전파와 RED 메트릭(p95/p99, error rate), 재고/대기열/LLM 큐 지표로 운영 모니터링 기준 정의
Project
Crypto Exchange Platform (Spot)
2025~Present. 저지연 매칭 엔진과 복식부기 원장을 분리해 체결 무손실·결정적 복구·실시간 시세 파이프라인을 구현하는 암호화폐 거래소 실험 프로젝트.
- Matching/Risk hot-path를 Rust 단일-writer 이벤트 루프로 구성하고 WAL + snapshot + replay로 결정적 복구 모델 설계
- WAL durable write 이후에만 체결 이벤트를 publish하는 commit line 규칙으로 유실/순서 역전 리스크를 제어
- PostgreSQL append-only double-entry ledger로 Σdebit-credit=0 불변식을 강제하고 멱등 정산 consumer 구현
- Kafka/Redpanda 체결 스트림을 Flink로 집계해 candles/ticker를 생성하고 Redis hot snapshot + ClickHouse history로 조회 분리
- WebSocket fan-out에 snapshot+delta, seq gap recovery, per-conn queue limit, conflation 정책을 적용해 폭주 대응
- OTel end-to-end tracing(Edge→Core→Kafka→Ledger)과 settlement lag/불변식 위반/split-brain 감지 지표 체계화
- 운영 안전장치로 CANCEL_ONLY/HALT 정책 및 runbook을 정리해 장애 시 손실 최소화 경로를 마련