← 포트폴리오로 돌아가기
다운로드
길현준
Backend Engineer / Platform Part Leader
AI 코딩 하네스 프레임워크 2026.04 — 진행 중 · 개인
3개 하네스 · RAG MVP · 109 chunks

Claude Code·Codex·Amazon Q 등 AI 코딩 에이전트의 컨텍스트, 규칙, RAG, 비용, 브라우저 런타임을 Git 기반 운영 인프라로 통합한 개인 개발 프레임워크 — 로컬 BGE-M3 벡터 RAG, MCP, 훅 기반 거버넌스, 런타임 서피스 컴파일러, 비용 분석기 구축

TypeScriptPythonBashMCPsqlite-vecFTS5OllamaBGE-M3Vector RAGGit HooksClaude CodeCodex
AI 코딩 하네스 프레임워크 architecture
성과 지표 이전 이후
RAG MVP 인덱스 manual context search 548 files / 3,347 chunks / 20.7 MB (0.7s warm query)
RAG default-on 검증 opt-in trigger 15/15 tests across 3 harnesses (prompt >=12 chars auto-search)
Resume RAG 코퍼스 0 indexed chunks 109 chunks (32 tests passed)

문제 해결 과정

AI 에이전트별 컨텍스트와 규칙이 문서·설정·로컬 홈에 흩어져 런타임마다 드리프트 발생
하네스 소스를 canonical source로 두고 Claude/Codex 런타임 서피스를 자동 생성, XML runtime contract와 cross-harness diff 검증 추가
→ kh/gp/gd 3개 하네스의 생성 CLAUDE.md 및 런타임 컨트랙트 정합성 확보
마크다운 지식 베이스가 커져 에이전트가 관련 컨텍스트를 매번 수동 탐색
sqlite-vec + FTS5 하이브리드 RAG, BGE-M3 로컬 임베딩, RRF fusion, MCP 검색 서버, 마크다운 변경 후 자동 재색인 구현
→ 548 파일·3,347 청크·20.7 MB 인덱스, warm 쿼리 0.7초, 골드 쿼리 5건 top-2/3 적중
RAG가 opt-in 참고 도구라 실제 조사·검토 프롬프트에서 누락
UserPromptSubmit 기본 트리거로 전환하고 프롬프트 12자 이상이면 search_harness가 자동 호출되도록 gp/gd까지 포팅
→ 3개 하네스에서 15/15 default-on 테스트 통과, 실 프롬프트 smoke test 적중
이력서·포트폴리오 JSON이 RAG 검색 범위 밖이라 JD 커스터마이징 시 근거 검색 누락
portfolio/resume JSON chunker와 target=resume 색인 경로, path-based auto-reindex, federation 검색을 구현
→ resume corpus 109 청크 색인, 32개 테스트 통과, 4개 DB 통합 검색 동작 확인

기술 선택 근거

주요 내용

깨달은 점


콘서트 예약 서비스 2024.10 — 2024.11 · 개인
1만 동시 요청 · K6 3,000 TPS · Kafka 3-broker · Prometheus+Grafana

1만 동시 요청 환경에서 좌석 선점·결제·포인트 충전의 동시성 문제를 시나리오별 하이브리드 락 전략으로 해결한 콘서트 좌석 예약 서비스 — 낙관적 락 + Redisson 분산 락, Redis 캐싱 TPS 15배 향상, Kafka 이벤트 드리븐 아키텍처, K6 부하 테스트 기반 병목 개선

JavaSpring BootJPARedisMySQLKafkaDockerK6
콘서트 예약 서비스 architecture
성과 지표 이전 이후
좌석 예약 응답시간 1,678ms 835ms (-50%)
좌석 조회 TPS 100 1,500 (15x)
DB 쿼리 비율 100% 6% (-94%)

문제 해결 과정

1만 동시 요청 환경에서 좌석 선점 시 동일 좌석 이중 배정 위험
비관적/낙관적/분산 락 3종을 K6로 비교 검증 후, 단일 좌석 경합에 최적인 @Version 낙관적 락 선택
→ 좌석 예약 응답시간 50% 개선 (1,678ms → 835ms), 이중 배정 0건
포인트 충전과 결제의 동시 실행 시 잔액 정합성 붕괴
재시도 기반 낙관적 락의 무한 루프 위험을 분석하고, Redisson 분산 락(userWalletLock:{userId})으로 사용자 단위 직렬화
→ 동시 충전/결제 시나리오에서 잔액 정합성 100% 보장
콘서트/좌석 조회 TPS가 100에 불과하여 예약 오픈 시 DB 병목
Redis 캐시 레이어 적용 + DB 인덱스 최적화를 병행하여 계층적 캐싱 전략 구현
→ TPS 100 → 1,500 (15배 향상), DB 쿼리 94% 감소
예약 완료 후 결제/알림 처리가 동기 호출로 묶여 도메인 간 강결합
Kafka Transactional Outbox 패턴으로 예약 TX 내 outbox_event 삽입 후 스케줄러가 비동기 발행
→ 도메인 간 결합도 제거, 메시지 유실 방지, 독립 확장 가능

기술 선택 근거

주요 내용

깨달은 점


Ledgerly 2025.08 — 진행 중 · 개인
가족/조직 단위 멀티테넌시 · 3단계 RBAC · FE+BE 분리 배포

가족·조직 단위 공유 가계부 앱 — Next.js 16 풀스택, Supabase PostgreSQL, 3단계 역할 기반 접근 제어(OWNER/ADMIN/MEMBER), NestJS Cron 정기거래 자동 처리, 99.45% 라인 커버리지 단위 테스트 + 300건 이상 E2E 통합 테스트

Next.jsReactTypeScriptSupabasePostgreSQLPrismaNestJSTailwind CSSTanStack QueryZodVitestPlaywrightDockerVercel
Ledgerly architecture
성과 지표 이전 이후
Vitest 단위 테스트 - 397건 (BE 25 + FE 31 suites) (99.45% 커버리지)
Playwright E2E - 300건+ (24 specs · 5 projects) (역할별 시나리오)

문제 해결 과정

가족/조직 내 역할별 권한 분리 없이 공유 가계부 운영 시 데이터 보안 위험
OWNER/ADMIN/MEMBER 3단계 RBAC 설계, SupabaseAuthGuard → MembershipGuard → SuperAdminGuard 3단계 Guard 체인으로 인증+인가 이중화
→ 조직별 독립 데이터 관리 + 역할별 세분화된 접근 제어 실현
Vercel Hobby 플랜 Cron 제한(1일 1회)으로 정기거래 자동 처리 불가
NestJS 기반 별도 백엔드를 Mac mini에서 Docker로 분리 운영, @nestjs/schedule로 매일 15:00 KST 실행
→ 정기거래 매일 자동 처리 실현, 플랫폼 제한 우회
SSR 환경에서 서버/클라이언트 컴포넌트 간 인증 상태 불일치
Next.js 16 App Router + Supabase Auth SSR 조합으로 쿠키 기반 세션 복원 + 인증 컨텍스트 전파 패턴 설계
→ 서버/클라이언트 컴포넌트 간 원활한 인증 상태 동기화
복잡한 RBAC + 비동기 로직의 높은 결함 위험을 수동 테스트로 커버 불가
Vitest 단위 테스트 + Playwright E2E를 역할별(Admin/Member) 시나리오로 구성, 실제 BE + 로컬 Supabase 연동 풀스택 통합 테스트 환경 구축
→ 라인 커버리지 99.45%, 역할별 시나리오 자동 검증 체계 구축

기술 선택 근거

주요 내용

깨달은 점


대신물류 배차현황 챗봇 2026.01 — 진행 중 · 개인
월~토 06:00~20:00 매시 크롤링 · Blue-Green 무중단 배포 · SQLite 단일 서버

대신물류 배차현황 데이터를 Cheerio로 크롤링하고 카카오톡 챗봇 스킬서버와 Next.js 모바일웹으로 조회할 수 있는 서비스 — Clean Architecture + TSyringe DI, Express 5, Prisma SQLite, Traefik Blue-Green 무중단 배포

TypeScriptExpressNext.jsReactPrismaSQLiteCheerioTSyringeTanStack QueryRechartsDockerTraefikTailwind CSSVitest
대신물류 배차현황 챗봇 architecture
성과 지표 이전 이후
크롤링 주기 수동 조회 일 15회 자동 (자동화)
배포 다운타임 수동 재시작 0초 (Blue-Green)

문제 해결 과정

물류 회사 배차현황을 웹사이트에서 수동 확인해야 하는 운영 비효율
Cheerio + Axios로 EUC-KR 인코딩 배차 데이터 크롤링, node-cron으로 월~토 06:00~20:00 매시 자동 동기화
→ 수동 조회 → 일 15회 자동 크롤링, 실시간 데이터 제공
현장 직원이 PC 없이 모바일로 배차 정보를 조회할 수단 부재
카카오 i 오픈빌더 스킬서버 프로토콜 직접 구현 + Next.js 반응형 모바일 웹 + Recharts 통계 대시보드 병행 제공
→ 카카오톡 챗봇 + 모바일 웹 이중 채널로 현장 즉시 조회 가능
크롤러/카카오 API/DB 등 외부 의존성 변경 시 비즈니스 로직까지 수정 필요
Clean Architecture로 도메인/애플리케이션/인프라 계층 분리, TSyringe DI 토큰으로 인터페이스 바인딩, Value Object 패턴으로 도메인 규칙 타입 수준 강제
→ 외부 의존성 교체 시 인프라 계층만 수정, 비즈니스 로직 무변경
수동 재시작 방식의 배포로 서비스 다운타임 발생
Traefik 파일 프로바이더 기반 Blue-Green 배포 설계, deploy.sh로 빌드 → 헬스체크 → YAML 재작성 → 트래픽 전환 자동화
→ 배포 다운타임 0초 달성, Docker 소켓 노출 없이 보안성 확보

기술 선택 근거

주요 내용

깨달은 점

기타 프로젝트
냠냠위듀 — 구내식당 식단 알림 봇 (개인) — TypeScript, Playwright, Slack Bot API, Express 상세 ↗
병원 채용공고 알림 프로젝트 (개인) — NestJS, TypeScript, PostgreSQL, TypeORM 상세 ↗
스타트업풀 (팀) — NestJS, TypeScript, PostgreSQL, JavaScript 상세 ↗