김병현

LLM 에이전트 시스템을 세우고 굴리는 엔지니어

경력기술서

경기도, 대한민국 bk@bkan.dev +82 10-4676-5884 GitHub portfolio.bkan.dev blog.bkan.dev sweet_bkan

경력 요약

기간소속 / 형태역할 · 요지
2026.05 - 2026.06기업 AI 시스템 구축 (프리랜서)AI 엔지니어 · 개발팀 기술 리드 - 온프렘 LLM 인프라 · 팀 AI 메모리 · DB 설계 · ADR 거버넌스. 6주 시점 계약 종료
2026.02 - 현재오픈소스 · 에이전트 시스템메인테이너 - SmartThink(사고 프레임워크 엔진) · BluePy(인프라 보안 스캐너) · Hindsight-Crew(에이전트 메모리 격리 게이트웨이)
2025 - 현재솔로프리너AI 프로덕트 기획·개발·출시·접기 (OurFolio · ASHD v2)
2025.06 - 2026.01FastCampus AI 부트캠프 14기수료 - 실전 ML 대회 5회 · MLOps · 멀티에이전트 프로젝트
2020.07 - 2025.03프랜차이즈 운영대표 - POS 판매 기록으로 수요예측·재고최적화, 잘 되는 가게를 접고 AI로 전환
2018.02 - 2020.05CMT EYES보안관제 분석가 - SOC / CERT 침해대응
커리어 타임라인 2018–2026 보안관제 분석가 2년 4개월, 김밥 프랜차이즈 대표 4년 8개월, AI 부트캠프 8개월을 거쳐 솔로프리너와 기업 AI 시스템 구축 기술 리드로 이어지는 경력 타임라인. 2018.02 2020.05·07 2025.06 2026.01·02 보안관제 분석가 · SOC/CERT 2Y 4M 김밥 프랜차이즈 대표 4Y 8M 2025.03 잘 되던 가게를 접고 AI로 전환 AI 부트캠프 8M 솔로프리너 · 오픈소스 2026.02 – 기업 AI 시스템 구축 · 기술 리드 2026.05–06 · 6W NOW

기술 블로그 blog.bkan.dev ↗

LLM 에이전트를 직접 커스텀하고 굴리면서 내린 판정과 그 근거. 실험 및 검증한 것을 적고 측정 조건을 같이 남기며, 판정을 기록하고, 에이전트 메모리에 물려둔 에이전트가 자가 판단하에 포스팅을 하도록 자동화를 걸었습니다.

역할 생성기·규범·콘텐츠 단독  ·  기술 Python stdlib-only · pytest · Cloudflare Pages · 문체 규범 · 가독성 린트
  • 수행마크다운 → HTML 정적 생성기 자작(런타임 의존성 0, kind × topic 2축 색인, 검색 인덱스, 태그) - pytest 458건, ruff, basedpyright, 헤드리스 Chrome 레이아웃 계측
  • 수행근거 게이트를 코드로 강제 - 근거 절에 독자가 열 수 있는 링크 또는 측정 조건 라벨이 붙은 수치가 없으면 빌드 실패. 4단 고정 구조(질문·판정·근거·한계) 검증
  • 수행배포 스크립트에 실제로 터졌던 함정 4종을 가드로 고정(cwd별 env 로딩, 계정 ID 부재 오진, preview 브랜치, 캐시버스팅 오작동), 성공 배포 로그와 원복 절차 문서화
  • 수행에이전트 집필 파이프라인 - 세션 로그·커밋·메모리뱅크에서 에이전트가 초안을 쓰고, 코드로 강제한 근거 게이트와 문체 규범(VOICE 14·STYLE 17)을 거쳐 내가 교정·확정. 16편 전건 직접 교정했고 집필 방식은 블로그 랜딩과 전 페이지 푸터에 공개
  • 성과판정문 6편 · 아티클 3편 · 서사 7편 · 노트 80편. 모든 내용이 블로그에 집필 되어있다
  • 근거AI 냄새 제거 도구 20종을 고르다 도구 대신 4단 게이트를 세웠다

기업 AI 시스템 구축 - 프리랜서

2026.05 - 2026.06 (6주)

제조사의 AI 전환 조직에서 온프렘 LLM 인프라·데이터 모델·팀 지식관리·개발 프로세스를 설계·구축. 3개월 계약으로 시작해 6주 시점에 계약 종료, 인수인계 202파일로 마무리.

온프렘 LLM 멀티에이전트 인프라
역할 설계·구축·운영 전담  ·  기술 Self-Hosted LLM · Tailscale · GGUF/MLX · Multi-Agent · Discord Bot
  • 배경대표의 방향은 경영 보고부터 코딩까지 회사 장비 안에서 도는 로컬 AI - 사내 자체 서빙 인프라를 세우기로 결정
  • 수행Mac Studio 15대에 역할을 나눠 배정하고 Tailscale 독립망으로 묶어 외부 노출 없이 LLM 자체 서빙, 디스코드 봇을 단일 진입점으로 구성
  • 수행장비별 로컬 LLM 포트폴리오 설계 - 라이선스·RAM·양자화(GGUF/MLX)·KV cache 헤드룸을 정량 근거로 GLM·Qwen 계열 배정. 가장 큰 모델을 가장 좋은 장비에 넣는 안은 검증에서 기각(극단 압축으로도 실사용 메모리 상한 초과) - 배정표에 남는 메모리와 권장 컨텍스트 상한까지 명시
  • 수행장비 전력표를 제조사 공식 측정값과 전수 대조 - 두 행이 바뀐 것과 정격·실부하 두 종류 전력이 섞인 것을 발견·정정
  • 성과LLM 서빙 장비를 launchd로 재부팅 시 자동 기동되게 구성(신규 장비 편입 뒤 재부팅 후 복구를 일일보고로 확인) - 팀 메모리 시스템이 이 스택 위에서 현업 검증까지 도달(전사 확장 준비 단계에서 장비 변경으로 유실, 인수인계 문서에 기록). 못 하는 것을 적은 배정표가 이 작업의 산출물
  • 근거커리어 전환기 2편 - 정직한 상한
온프렘 LLM 멀티에이전트 인프라 직원이 디스코드 봇 단일 진입점을 거쳐 Tailscale 독립망 안의 Mac Studio 15대 LLM 서빙 클러스터를 쓰고, 클러스터가 팀 AI 메모리에 기록하고 회상하는 구조. Tailscale 독립망 · 외부 노출 없음 직원 · 팀 비개발자 포함 Discord 봇 단일 진입점 x15 Mac Studio LLM 서빙 GGUF/MLX · Qwen/GLM 서버별 임무 11종 · launchd 자동 기동 팀 AI 메모리 Hindsight bank 격리 자체 서빙 핵심 기록(쓰기) 경로 회상(읽기) 경로 신뢰 경계 (독립망)
네트워크 인프라 교체 야간 컷오버
역할 계획·체크리스트·현장 판단 총지휘 (개발팀 공동 수행)  ·  기술 Wi-Fi 7 라우터 · 2.5G 스위치 · DHCP/포트포워딩 이식 · 리스크 레지스터 · 롤백 트리
  • 배경사무망 구형 라우터 교체와 서버용 스위치 신설을 한 밤에 - 인터넷 중단이 걸린 작업이라 다음날 출근 전에 끝나야 했고, 사내 업무 시스템의 외부 접속 경로도 그대로 살아 있어야 했음
  • 준비당일 새벽 체크리스트 2종 작성(사전 설정 42항목 + 고정 IP 예약 11건 / 수행·검증 인쇄본) - 통합 검증 30건·리스크 16건·롤백 트리(구형 라우터 15분 재투입)·당일 금지 항목(펌웨어 업데이트·UPnP 활성화)을 작업 전에 확정. 낮에 신규 라우터 사전 설정과 구형 라우터 백업·가져오기 예행
  • 수행18:30~22:00 3.5시간 계획 SLA 내 종료 - 라우터 교체(인터넷 중단 60~90분), 스위치 구성, 당시 랙에 있던 맥 서버 10대 케이블·라벨·호스트네임·고정 IP. 이후 장비는 들어오는 대로 같은 절차로 추가
  • 수행되돌릴 수 있는 순서로 - 구형 라우터 박스 보관, Wi-Fi 이름·비밀번호 유지(직원 재연결 안내 불필요), 포트포워딩 백업 1:1 이식, 두 장비 관리 비밀번호 기본값 탈피 확인
  • 성과리스크 16건 중 실제 발생 0건, 롤백 0회, 직원 혼란 0건. 검증 30건은 통과 18·부분 4·N/A 4·미수행 4 - after 측정을 못 잰 것과 공인 IP가 우연히 유지된 것(MAC 클로닝 생략)을 보고서에 "행운 의존"으로 적고, 완료 기준을 자체 5/5 대신 strict 3/5로 임원에 보고
  • 연결관제 2년 4개월의 순서 그대로 - 예외(리스크·엣지 케이스)부터 세고, 되돌릴 수 있게 두고, 권한(관리 비밀번호)부터 확인. 검증표를 작업 전에 쓴 것이 그 습관의 실물
  • 근거야간 3시간 반 컷오버에서 30건을 검증하고 사후 수치는 못 쟀다
통화상담·고객 데이터 통합 DB 스키마 설계
역할 데이터 모델링 전담  ·  기술 PostgreSQL · SQL-first Migration (goose) · ETL
  • 수행레거시 CRM ETL 분석 - 고객 데이터 약 9.5만 건 규모 이관 설계
  • 수행통화 SaaS가 내보낸 통화 기록 원천 테이블의 행이 통화 건수가 아님을 발견 - 자동응답 안내와 상담원 연결이 같은 통화의 두 행으로 남아 약 40% 부풀림(약 3만 건대 → 고유 통화 약 2만 3천 건대). 이 숫자는 영업사원 역량 평가의 분모였음. 발신번호 + 인입 시각 ±120초 중복 제거 규칙을 적재 단계 불변식으로 고정
  • 수행27-table 정규화 스키마 - 자연키 전략, 소프트삭제, 변경이력 추적(SCD), 불변식 명세. 자기 스키마 리뷰에서 결함 4건(등급 축 2건) 적발·수정
  • 수행마이그레이션 엔진 비교 검증(Atlas·dbmate·sqitch·Flyway 기각 → goose), pgvector/halfvec 용량 한계 외부 검증, SQL-first SSOT + 스키마 불변식 체크리스트
  • 성과외부 검토 2회 및 적대적 코드검수 통과
  • 근거통화 기록의 행을 그대로 세니 통화가 40% 부풀려졌다
개발팀 기술 거버넌스 · 리드
역할 개발팀 메인 관리자 · 의사결정 기록 담당  ·  기술 GitHub Monorepo · ADR/MADR · Git Workflow
  • 수행3인 개발팀의 GitHub 조직·모노레포·브랜치 전략(main/dev/feat) 셋업, ADR(기술)+Decision(비기술) 의사결정 기록 체계 도입·운영 (ADR-001~008)
  • 수행스스로 승인하지 말라는 규칙을 세워놓고 첫 셋업을 혼자 올리던 것을 첫 문서에서 적발 - 예외 조항에 만료일을 붙여 명문화. 새 업무가 들어올 때 원래 일이 며칠 밀리는지를 결재에 같이 올리기로 합의
  • 수행3트랙(판매/광고/CRM) 업무 분담 설계와 팀 온보딩, 멀티세션 AI 협업을 위한 워크트리 격리·Safe Staging 룰 제정
  • 성과계약 종료 시 인수인계 PR 202파일 / +37,000줄 + 비개발자 팀장용 요약본 별도 작성. 장비 회수로 팀 메모리가 끊긴 상황도 주체 없이 중립 기록하고 재발 방지 규칙만 남김 - 증거는 확보하되 무기로 쓰지 않는 선
  • 근거커리어 전환기 3편 - 줄여서 닫는 법
팀 AI 메모리 시스템 (Hindsight)
역할 오픈소스 커스터마이즈·시스템 설계  ·  기술 Hindsight · Graphify · Access Control
  • 배경개인 업무기록이 쌓이는 팀 메모리 - 개인정보 격리와 누락 없는 축적을 동시에 달성해야 함. 직전 넉 달 자작 메모리를 만들고 부순 경험이 여기서 고르는 눈으로 쓰임
  • 수행오픈소스 에이전트 메모리 Hindsight를 커스터마이즈해 직원별 personal·team bank 구성, Recall·Reflect 권한을 보안 등급으로 제어 - 개인 bank는 본인만 열람
  • 수행1주 트라이얼 211건 실측 - 채택 근거였던 의미 기반 검색의 카테고리 질의 재현율 15.6%, 뱅크가 커질수록 악화. 실제로 일하던 것은 단순 적재·목록 조회·태그
  • 수행임원 일일보고 자동 합성 파이프라인 - 사람 채점으로 활동 재현율 0.45(환각률 0, 구조 적합도 1.0). 누락 22건을 전수 개봉해 진짜 손실 1건 확인 - 고칠 대상을 검색기에서 항목 분류기로 정정
  • 성과개인 → 팀 → 전사 3단계 승격 구조의 지식관리 뼈대 - 채택 근거를 한 주 만에 스스로 반증하고 운용 원칙(시간 필터 직조회, 요약 레이어 OFF)으로 대체
  • 근거재현율 0.45, 검색기를 고치기 전에 빠진 22건을 열어봤다 · CLAUDE.md를 243줄까지 불렸다가 77줄로 깎았다
한국어 임베딩 3-way A/B 실험
역할 실험 설계·수행 전담  ·  기술 MTEB-ko · FAISS · sentence-transformers · 통계 검정
  • 배경한국어 임베딩 리더보드 점수차(1.38pt)가 노이즈 수준 - 벤치마크만으로는 RAG 스택 모델 교체를 판단할 수 없는 상태
  • 수행arctic-ko vs KURE-v1 vs BGE-m3-ko 3-way A/B - 결정 규칙(ΔMRR>0, 신뢰구간 하한>0, p<0.025 Bonferroni, N≥30)을 실행 전에 동결, 90개 쿼리 6전략, self-retrieval 무결성 검증
  • 성과KURE-v1 0.825 vs BGE-m3-ko 0.810 vs arctic-ko 0.804, Δ +0.021에 p 0.36, 표본 17건으로 최소치 30 미달 → 승자 없음, 기존 유지. 사후 심층에서 51 paired query 중 동률 37건 - 규칙을 사후에 풀지 않고 닫음
  • 근거표본 17건으로는 0.021 차이를 승자로 부를 수 없었다
한국어 임베딩 3-way A/B 판정 KURE-v1 0.825, BGE-m3-ko 0.810, arctic-ko 0.804로 점수 차가 작고, 사전에 동결한 결정 규칙 세 개 중 유의성과 표본 수 두 개가 미달이라 승자 없음으로 판정해 기존 모델을 유지한 실험 결과. 0.70 0.75 0.80 0.85 0.90 MRR · 0.70–0.90 구간 확대 표시 KURE-v1 0.825 BGE-m3-ko 0.810 arctic-ko 0.804 6개 검색 전략 · 90개 쿼리 실측 결정 규칙 3개 · 실행 전 동결 ΔMRR > 0 +0.021 PASS p < 0.025 0.36 FAIL N ≥ 30 17 FAIL 판정: 승자 없음 → 기존 모델 유지 규칙을 사후에 풀지 않고 닫음
코드베이스 지식그래프
역할 구축·검증 전담  ·  기술 Graphify · Knowledge Graph
  • 수행코드베이스를 지식그래프로 구조화 - 1,158 노드 / 1,797 관계 / 73 커뮤니티, 팀 자동화 도구와 결합
  • 수행파이프라인 전수 재검토로 그래프 무결성 버그 4건 발견·수정(hyperedge 병합 오염, phantom cross-project 엣지, 노이즈 노드 프루닝, stale 상태) 후 수치 확정
통합 어드민 대시보드 (데모)
역할 단독 개발  ·  기술 Spec-Driven Dev (PRD/SDD/TDD) · Accessibility
  • 수행단일 모듈 레지스트리에서 13개 모듈을 파생하는 구조로 어드민 구축 - 접근성·다크모드·반응형 포함
  • 수행전수 감사로 UX·접근성 갭 12건 발굴, 10건 구현 - 통합 검색·WAI-ARIA 키보드 내비게이션·다크모드 차트 동기화·폰트 self-host
  • 성과스펙 주도 개발로 테스트 54 → 81건 통과(회귀 0), 13경로 콘솔 에러 0
한국어 문서 파이프라인 · DOCX 변경추적 라이브러리
역할 단독 개발  ·  기술 Python · OOXML(ECMA-376) · pandoc · MinerU VLM · typst
  • 배경임원 보고 워크플로가 HWP/DOCX/PDF 중심 - 변경추적·코멘트가 있는 문서를 LLM 파이프라인에 태울 도구 부재
  • 수행DOCX tracked-changes/comments 순수 XML 처리 라이브러리 개발(LibreOffice 의존 제거, v1~v4 사이클, pandoc round-trip을 TDD 기본 룰로 채택) - 테스트 48건
  • 수행MinerU VLM 한국어 PDF·typst 조합 검증 후 Claude Code 스킬로 패키징
  • 성과스킬 A/B 파일럿 실측 - 동일 과업 처리 시간 55% 단축(67초 → 31초), 도구 호출 수 절반
기타 실무
  • 수행회의록 자동화 풀스택 리서치(화자분리 포함 4-cycle), 금융 데이터 검증 MCP 서버(6 tools) 개발·납품 - "미검증은 미검증으로 명시" 납품 규율, 사내 웹 유지보수

오픈소스 · 에이전트 시스템

2026.02 - 현재

에이전트 메모리·인프라 보안 도구. memory-bench·BluePy는 MIT 오픈소스로 공개, Hindsight-Crew는 비공개 개인 리포. 성공 기준을 문장이 아니라 실행 게이트로 고정하고, 수치는 전부 라이브 스택 실측으로만 쓴다.

Hindsight-Crew + memory-bench - 검증 가능한 에이전트 메모리 격리 스택 memory-bench GitHub ↗v1 진행 중 · 비공개 개인 리포
역할 설계·구현·검증 단독  ·  기술 Python · Docker · MCP 정책 게이트웨이 · bge-m3 / bge-reranker-v2-m3 · PyTorch MPS · 적대적 검증
  • 배경업스트림 에이전트 메모리의 기본 인증이 단일 공유 키 하나뿐이라 identity→bank 강제가 없다 - 개인 기록과 공유 기록을 같은 스택에 쌓는 순간 테넌트 간 열람이 기본값이 됨
  • 수행본문 인지·기본 거부(deny-by-default) MCP 정책 게이트웨이를 단일 강제 지점으로 구현(personal·team bank 분리, ACL·감사로그, 태그 규칙 서버 강제, 이미지 다이제스트 고정). 성공 기준을 종료코드로 고정 - 9게이트(health·bank·roundtrip·격리+귀속·adversarial·계약드리프트·MCP 강제·리랭커 provider·백업복원) 전부 0일 때만 통과. 미상·ACL 없는 토큰, 경로 traversal, 헤더+본문 bank 스머글링, 귀속 위조를 매 실행 거부 확인
  • 수행리랭킹 지연 - 가상머신 CPU에서 35~55초 걸리던 bge-reranker-v2-m3를 표준 해법 TEI 1.9.3으로 붙여 실측 → Mac GPU 직접 경로 대비 10배 느려 기각. PyTorch MPS 사이드카(FastAPI·sentence-transformers, fp16, max_length 512)를 자작해 같은 호출 형식으로 교체 - 검색 왕복 55.8초 → 1.8~2.6초. 계획서의 "1초 미만" 합격선은 비대표 벤치에서 나온 값이라 미달로 확정하고 실측값을 새 기준으로 수락
  • 수행무음 실패 - 저장 호출 18건이 0초 abort로 전부 실패했는데 반환값은 성공. 호출·브리지·도구 3계층을 열어 이미 취소된 AbortSignal이 브리지를 건너온 것이 원인임을 확정, 가드 + 예외 throw로 전환. 쓰기 성공은 게이트웨이 접근 로그와 역방향 조회(받은 쪽)로만 판정하는 절차 도입
  • 수행memory-bench - mem0 vs Hindsight 동일 조건 비교(recall 정확도·p50/p95 지연·오프라인 가능성·격리 강제·풋프린트). mem0 recall 0.0이 성능이 아니라 어댑터의 API 오용(지연 0ms + 저장 100%의 지문)임을 발견·수정 - 패자 쪽 오류 필드를 먼저 여는 규칙
  • 성과9/9 게이트 GREEN · 완전 오프라인(LLM=none) 런타임 1.5-2.1GB RAM 실측 · 개인 4개 런타임(Claude Code·Codex·senpi·aside)의 상시 메모리로 운용 중
  • 근거표준이라던 TEI 추론 서버가 내 맥에서는 10배 느렸다 · 18건 저장 성공이라던 보고, 실제 저장은 0건이었다
Hindsight-Crew 정책 게이트웨이 구조 네 개의 에이전트 런타임이 deny-by-default MCP 정책 게이트웨이를 거쳐서만 개인 bank와 팀 bank에 접근하고, 게이트웨이를 우회한 직접 접근은 거부되는 구조. 리랭커 사이드카가 게이트웨이의 검색 경로를 보조한다. Hindsight 메모리 스택 게이트웨이 우회 접근 거부 에이전트 런타임 ×4 Claude Code · Codex senpi · aside 9/9 GATES MCP 정책 게이트웨이 deny-by-default ACL · 감사로그 · 태그 규칙 강제 개인 bank (직원별) 본인만 열람 팀 bank 공유 기록 리랭커 사이드카 (자작) PyTorch MPS · 55.8s → 1.8-2.6s
BluePy 2.0 - 오픈소스 인프라 보안 스캐너 GitHub ↗v0.1 alpha · MIT
역할 단독 리빌드  ·  기술 Python 3.12 · Clean Architecture · asyncssh · CLI
  • 배경2017년 KISA 레거시 보안 스캐너 - 거짓 PASS를 내는 validator가 섞여 있어 결과를 신뢰할 수 없는 상태
  • 수행Python 3.12 클린아키텍처로 재설계, 인과까지 검증한 점검만 기본 노출(Linux 파일권한, macOS SIP·FileVault·자동업데이트) - 거짓 PASS validator 삭제, 미검증 레거시 규칙은 experimental로 분리. 테스트를 73개에서 71개로 줄여서 닫음
  • 수행asyncssh 기반 SSH 원격 스캔 아키텍처(Linux/macOS, PASS·FAIL·MANUAL 3분류) - Docker 실 SSH e2e 픽스처 + 테스트 546건
  • 성과CLI 우선(JSON·표 출력)·SSH 호스트키 엄격 검증을 갖춘 v0.1 오픈소스 공개 - 보안 실무 경험을 코드 신뢰성 기준으로 연결
자작 에이전트 운영체제·메모리 (BK-HQ)2026.02 - 05 · 보류
역할 설계·운영  ·  기술 Claude Code 훅 · 지침 파일 · 마크다운 메모리
  • 수행에이전트 15개·4팀 오케스트레이션과 자작 메모리(문서 322·훅 25·학습 항목 409)를 넉 달 운영 - 사람이 통과시키는 게이트만 남기고 나머지를 자동화하는 설계
  • 판정게이트가 유명무실해져 보류. 남은 것은 둘 - 생산자·소비자 계약을 막는 강제 지점이 시스템 안에 있어야 한다는 것, 문서로 적은 규칙은 확률로 지켜진다는 것. 이 둘이 이후 Hindsight 채택 기준이 됨
  • 근거커리어 전환기 1편 - 31일 중 31일

솔로프리너 - AI 프로덕트

2025 - 현재

기획 → 개발 → 배포 → 접는 판단, 공개 표면 관리까지 전 과정을 혼자 수행.

OurFolio - 근거 기반 포트폴리오 플랫폼 GitHub ↗ourfolio.bkan.dev · 공개 쇼케이스
역할 1인 개발 (기획·개발·배포)  ·  기술 Next.js 16 · Neon · Drizzle ORM
  • 수행개발자가 작업물을 근거와 함께 증명하는 포트폴리오 플랫폼 - 노코드 도구 Lovable로 프로토타입 후 자체 스택으로 전환, 공개 프로필 서버 렌더링, GitHub 레포 원클릭 임포트, OG/SEO 동적 생성
  • 수행Expand-contract 2단계 무중단 스키마 마이그레이션, Sentry PII 스크러빙(테스트로 강제), 동의 이력 policyVersion 버저닝 - Lighthouse·coverage·마이그레이션 검사 등 CI 7종 운영
  • 성과MVP → 검증된 v1까지 단독 개발·배포 후 시장성 판단으로 수익화를 접고 공개 쇼케이스로 전환
  • 근거접는 판단에 붙은 조건
ASHD v2 - 영수증·보증서 OCR+LLM AS 관리 GitHub ↗ashd.bkan.dev · MVP 출시 → 공개 스냅샷
역할 1인 개발  ·  기술 Next.js 15 · Supabase (Auth/RLS) · OCR · LLM · CI
  • 수행OCR로 영수증·보증서를 읽어 룰 추출기+LLM으로 구조화, 만료 알림 발송 - 결제 연동 실험까지 한 실사용 운영, CI 워크플로 15종으로 1인 운영 자동화
  • 성과추출 정확도를 수치로 관리 - KORIE 벤치마크(314예제) 필드별 F1 store 9% → 100%·구매일 89% → 99%·금액 98% → 100% 개선, 시드 골드셋 기준점 미달 PR을 CI가 차단하는 eval 회귀 게이트 운영
소상공인 AI 교육 자산 - 제작 완료, 보류2026.07 - 08 · 보류
역할 커리큘럼·교재·커스텀 봇 설계 단독  ·  기술 Gemini · ChatGPT GPTs · 실측 스크린샷 · 각주 승격 절차
  • 배경제주에서 일하는 분과의 연으로 시작한 기획 - 마케팅 회사의 기술 총괄로 합류해 제주의 산업을 플랫폼으로 묶는 그림이었고, 첫 아이템인 소상공인 AI 교육을 실제로 만들었다. 수강생이 무료 계정만으로 전 과정을 따라와야 한다는 제약을 걸어 무료 티어 한도가 교재의 사실 주장이 됨
  • 수행Gemini 무료 Pro 모델 하루 횟수(문서 "5회 안팎" → 7회 이상, 한도 대신 혼잡 시 자동 대체 2회 관측), 이미지 생성 22회 연속, 5일 리셋, ChatGPT GPTs 지식 파일 20개(구 문서 10개)를 직접 확인 - 증거 스크린샷 10장
  • 수행각주를 잠정 → 5일 뒤 리셋 재확인 → 실측 확정으로 승격하는 절차. 근거 등급이 다른 항목은 표에 등급을 명시해 같은 무게로 읽히지 않게 함
  • 수행4h/2h 특강 덱 생성기, 커리큘럼·데모 스크립트, 생산성 킷, GPTs 컴패니언(지식 파일 11종) - 한도 화면을 감추지 않고 교보재로 쓰는 한도 생존 가이드를 첫 섹션에 배치
  • 판정관계 채널이 끊기며 보류. 발주도 수강도 없이 제작만 끝났으므로 경력이 아니라 만든 자산으로 적는다. 아래 판매 실험의 재료가 됐다
  • 근거Gemini 무료 계정, 하루 5회라던 한도를 직접 세어봤다 · 커리어 전환기 4편
디지털 상품 판매 실험2026.08 · 중단
  • 수행보류된 제주 교육 자산(프롬프트 1,000장·강의킷·GPTs 지식팩)을 상품화 - 착수 87분 만에 첫 상품 라이브, 나흘 뒤 유출 게이트 실패 확인, 닷새 만에 판매 형태 중단(수익 0). 잘될 때 접은 적도 있고 열자마자 접은 적도 있으며 조건이 반대인데 결론은 같았음
공개 표면 감사2026.08
역할 단독  ·  기술 위협 모델 · Cloudflare Email Routing · SPF/DKIM/DMARC · 토큰 로테이션
  • 수행내 이름으로 공개된 표면을 전수 감사하고 위협 모델 확정 - LinkedIn 링크를 84개 파일에서 제거, 권한이 넓은 토큰 154개 폐기, 공개 메일을 자체 도메인(bkan.dev)으로 이전, 이력서에서 보안 경력을 파는 문구를 스스로 기각
  • 수행전수 감사·메일 이전·리포 재분배를 전부 통과한 구 이력서 파일이 그대로 응답하는 것을 뒤늦게 발견 - 조치는 옳았고 경계 설정이 틀렸다는 교훈으로 감사 범위 규칙 재설정
  • 근거커리어 전환기 4편 - 닫기 위한 작업량

보안관제 & CERT - CMT EYES

2018.02 - 2020.05

Fortinet 중심 WAF/IPS/UTM/SIEM 20+ 장비, 고객사 50+곳 원격 관제. 월 1,000건+ 이벤트를 탐지 → 분석 → 차단 → 정책 → 보고까지 한 덩어리로 수행. 장비 이름보다 남은 것은 일하는 순서 셋이다.

보안관제 분석가 (SOC/CERT)
기술 FortiGate/UTM · FortiSIEM · WAF/IPS · Wireshark · Linux/Unix · Python
  • 담당야간·주말 교대 관제와 에스컬레이션 체계 운영, 고객사 보안·네트워크 인프라와 Linux/Unix 서버 운용
  • 예외부터오탐을 다 올리면 고객사가 경보를 믿지 않고 정탐 하나를 놓치면 사고 - 둘 다 관제의 실패. 분류 기준을 유형별로 재설계해 정확도 50%+ 개선(같은 유형 전후 비교). 2년 4개월간 본 사고는 규칙 밖·담당자 없는 구간에서 났고, 그래서 무엇을 만들든 예외부터 세는 습관
  • 멈추지 않게차단은 한 줄이지만 정상 트래픽까지 걸리면 서비스가 선다 - 좁게 넣고 관찰 구간을 길게, 되돌릴 수 있는 순서로. DDoS 긴급 대응(대역 차단·트래픽 분석), 대형 교육 고객사 모의고사 기간 트래픽 폭주에 10G 망 증설 현장 지원, 코로나 시기 SSL-VPN 원격근무 전환
  • 권한부터침해사고 분석의 첫 질문은 누가 어디까지 닿을 수 있었는가 - 로그·패킷 타임라인 재구성, 침해 경로 규명, 사고보고서. 권한 목록은 사고 뒤에 만들면 늦다
  • 위협대응KISA·상급기관 위협정보를 받으면 고객사별 영향도를 파악해 긴급 권고. 대형 고객사 모의해킹·침해분석 프로젝트 참여, 피싱 모의훈련 수행
  • 자동화반복 리포트를 스크립트로 30분 → 5분(Python·Excel), SIEM 상관분석 룰·IPS/WAF 커스텀 시그니처 튜닝, 이벤트 탐지용 스크립트 다수 개발
  • 근거커리어 전환기 0-1편 - 예외부터 세는 버릇
보안 엔지니어링 · 고객 지원 · 교육
  • 온보딩신규 고객사 관제 온보딩 - 장비 초기 정책 셋업·베이스라인 튜닝, 방화벽 정책 정리·이관
  • 고객월간·분기 보안 보고서 작성과 정기 브리핑, 고객사 기술 설명·정책 협의, 운영 절차 문서화
  • 교육신입 면접·교육 책임, 육성 커리큘럼 담당

프랜차이즈 운영

2020.07 - 2025.03
김밥 프랜차이즈 가맹점 대표
  • 수행POS 판매 기록으로 다음 주 수요를 예측해 준비량을 맞추고 시간대별 장바구니 조합을 분석 - 버리는 재료가 줄고 준비량이 안정. 코로나 구간은 버틸 수 있는 기간을 재고 그 안에서 결정을 좁히는 리스크 관리로 통과
  • 판정잘 굴러가던 가게를 접은 첫 판단 - "지금 잘 되는가" 대신 "이걸 계속하면 내 밑천이 제값을 받는가"를 물었고, 그 뒤 세 번의 접기가 같은 기준을 씀
  • 근거커리어 전환기 0-2편 - 장부에 없던 이유

ML 대회 & 프로젝트 - FastCampus AI 부트캠프 14기

2025.06 - 2026.01

실전 ML을 대회 중심으로 수행. 아래 수치는 대회 기간 내 베이스라인 대비 개선폭. 이 트랙의 종착지가 연구직임을 알고 모델을 만드는 층 대신 모델로 시스템을 굴리는 층을 택함.

토스 광고 CTR 예측 ↗대규모 광고 로그 기반 CTR 모델 - 시퀀스 피처·다운샘플링·튜닝으로 LogLoss/AP 개선, 상위 10%
과학 QA IR (RAG) ↗Solar 임베딩·랭크 그래프 리팩토링·프롬프트 튜닝으로 검색·랭킹 개선 - MAP/MRR +107%
문서 이미지 분류 ↗17클래스 스캔 문서 분류 - 백본 실험·TTA·증강·후처리로 F1 +470%
대화 요약 ↗한국어 일상 대화 요약 - QLoRA 파인튜닝 + 증강·후처리로 ROUGE +30%
마케팅 AI 멀티에이전트 ↗에이전트 6개가 트렌드·카피·세그먼트·리뷰·경쟁사·전략 리포트를 자동 생성 - 반복 리서치 업무 대체
영화 평점 예측 MLOps ↗TMDB API 기반 평점 예측 - 수집 → 학습 → 배포 → 모니터링 E2E 자동화(CI/CD)
RAG 교육 콘텐츠실무자용 사내 문서검색 교육자료 - BM25·Vector·Hybrid 비교, Query Expansion, Hit@k·MRR 평가 실습

참고

증적·라이브 데모 portfolio.bkan.dev · 기술 판단 기록 blog.bkan.dev · 이력서(1p) resume.html