진준형Jun-Hyeong Jin

AI Agent Engineer · Backend Engineer

만드는 데서 멈추지 않고 배포하고 운영까지 가져가는 것을 강점으로 삼고 있습니다. 학부 졸업연구에서 센서·임베디드·AI 모델·백엔드·클라우드를 하나로 연결해 논문으로 게재했고, 지금은 LLM 에이전트와 RAG를 같은 방식으로 다루고 있습니다. 직접 만든 AWS 배포 환경 위에 RAG 서비스를 올려 운영 중이며, 구축 과정과 트러블슈팅을 공개 저장소에 기록하고 있습니다.

기술 스택

AI / LLM
LangChain, LangGraph, RAG(청킹·임베딩·하이브리드 검색·평가), Function Calling, MCP, Gemini API, Claude API
언어
Python, TypeScript
백엔드 / 웹
FastAPI, Flask, Next.js, Supabase(PostgreSQL)
인프라 / 배포
AWS(EC2, ECR, IAM, SSM, VPC), Docker, Docker Compose, GitHub Actions, Caddy, 네이버클라우드
데이터 / 도구
Chroma, BM25, n8n, Git

프로젝트

공공문서 RAG 질의응답 서비스

2026.09 ~ 운영 중

정부 보도자료·계획 문서 11건에 질문하면 근거 문단을 찾아 답하는 서비스. 개인 프로젝트(1인).

PythonFastAPILangChain ChromaGemini APIDockerAWS
  • 벡터 검색과 BM25를 RRF로 결합한 하이브리드 검색 구현. 한국어 정확 매칭을 위해 형태소 분석기(Kiwi)를 BM25 토크나이저로 연결
  • 검색 전략 4종(hybrid·similarity·MMR·BM25)을 화면에서 바꿔가며 같은 질문의 결과를 비교할 수 있도록 구성
  • 인덱스를 백그라운드 스레드에서 구축. 기동을 막으면 헬스체크가 실패해 리버스 프록시가 502를 내는 문제를 확인하고, 서버는 즉시 기동하되 준비 전 요청에는 진행 상황과 함께 503을 반환하도록 설계
  • 문서 구성·청킹 설정으로 fingerprint를 만들어 인덱스 재사용 여부를 판단. 재배포마다 임베딩을 반복하지 않도록 볼륨에 보존
  • 공개 URL이므로 질의 한 건이 곧 LLM API 호출인 점을 고려해 IP별 요청 제한과 전체 일일 상한 적용
  • 결과: 문서 11건 / 청크 520개, 인덱스 구축 64초, 검색 0.8초 · 생성 2.5

AWS 배포 환경 구축

2026.09

git push 한 번으로 빌드부터 HTTPS 서비스까지 끝나는 개인 배포 환경. 개인 프로젝트(1인).

AWS EC2·ECR·IAM·SSMGitHub Actions OIDCDockerCaddy
  • GitHub Actions에서 arm64 이미지를 빌드해 ECR에 올리고, SSM Run Command로 EC2에 반영하는 파이프라인 구성
  • GitHub OIDC로 임시 자격증명을 발급받도록 구성해 장기 액세스 키를 만들지 않음. 권한은 배포 대상 인스턴스 ARN까지 좁힘
  • SSH 포트를 열지 않고 Session Manager로 접속. SSH 키는 SSM 장애 시 복구 수단으로만 등록
  • 이전 프로젝트에서 저사양 서버 내 반복 빌드로 디스크 고갈을 겪은 경험을 반영해 빌드를 CI로 분리. 서버는 이미지를 받아 교체만 수행
  • OIDC 인증이 반복 실패했을 때, 추측 대신 워크플로에서 실제 토큰 클레임을 출력해 원인을 특정 (GitHub이 sub 클레임에 숫자 ID를 포함하도록 바꾸었으나 콘솔 마법사는 구형식을 생성하고 있었음)
  • 워크플로에 원격 명령 결과 검증을 넣어, 배포는 성공했으나 스크립트가 실패로 종료되는 상황을 실제로 검출
  • 구축 계획·단계별 절차·트러블슈팅·재사용 템플릿을 문서로 공개

왜샀어(WhyBuy) — 근거를 남겨야 완료되는 모의투자 서비스

2026.08 ~ 운영 중

매수·매도 주문 전에 판단 근거를 남기도록 강제하고, 이후 결과와 대조해 보여주는 웹 서비스. 개인 프로젝트(1인).

Next.jsTypeScriptSupabase 한국투자증권 Open APIGemini APIDocker
  • 증권사 API의 초당 1건 호출 제한(EGW00201)을 전역 큐로 1.1초 간격을 보장해 해결
  • 서버리스 환경에서는 인스턴스마다 큐가 분리돼 간격 보장이 깨진다는 구조적 결함을 발견하고, 상주 프로세스가 필요하다고 판단해 Docker 셀프호스팅으로 이관
  • 지정가 주문 도입에 따라 “주문 = 체결”이라는 전제가 깨지면서 주문 상태 모델을 재설계
  • 리버스 프록시 뒤에서 로그인 리다이렉트가 컨테이너 내부 호스트명으로 향하던 버그를 추적·수정
  • 공유 모의계좌 운영이 자본시장법상 문제가 될 수 있는지 검토해 서비스 범위를 조정

그 외

  • 예산관리 Agent — Gemini Function Calling으로 자연어 거래 등록·검색·수정과 예산 조회를 도구로 노출. 구글시트를 저장소로 사용. LLM이 스키마 제약으로도 막히지 않는 인자를 생성하는 문제 등 8건의 트러블슈팅 정리
  • n8n 자동화 3 — 고객 VOC 자동 분류·긴급 알림, 금융 뉴스 수집·요약 브리핑, 증권 API 연동 텔레그램 봇. 중복 방지와 검증 안전판을 포함한 무인 파이프라인 구성

연구

사물인터넷을 활용한 자동 방지턱 시스템

제1저자 · 팀장
  • 학회지 사물인터넷융복합논문지(JKIOTS) 제12권 제4호, 2026.08 게재 · DOI 10.20465/KIOTS.2026.12.4.001
  • 학술대회 한국사물인터넷학회 종합학술대회 포스터 발표 · 논문집 게재(2024, pp.84–86) · 우수논문상

과속 차량에만 선택적으로 작동하고 긴급차량은 통과시키는 가변형 방지턱 시스템. 학부 졸업연구(학생 3인 + 지도교수). 경량화 YOLO로 차량 종류를 식별하고 센서로 속도를 판단해 액추에이터를 제어하며, 웹으로 원격 관제한다. 삼성중공업 연계 캡스톤디자인(2024)으로 시작해 학술대회에 발표하고, 이후 내용을 보완해 학회지에 게재했다.

담당 · 팀장 · 센서 연동 · 웹 관제 시스템 · 전체 통합 · 논문 작성

  • 이중 속도 측정 구조 설계 — 로드셀 기반 구간 속도와 레이더(TRM-121A) 기반 순간 속도를 교차 검증해 단일 센서의 측정 오차를 보완
  • Arduino Uno(센서 수집)와 Jetson Nano(객체 인식·제어)를 시리얼 통신으로 연동하고, 두 보드의 판단 결과를 통합해 액추에이터를 제어
  • 내부망 장비와 외부 클라우드를 Reverse SSH Tunnel로 연결 — Jetson Nano의 Flask 서버를 AWS EC2의 Spring 서버가 호출하는 구조로 웹 관제 시스템 구현
  • 관리자가 실시간 영상·차량 종류·속도를 확인하고, 과속 임곗값 조정과 액추에이터 수동 제어를 수행하도록 구성
  • 강우 시 노면 미끄러짐을 고려해 방지턱이 작동하지 않도록 하는 안전 조건을 센서 로직에 반영
  • 차량 인식 모델의 학습 데이터 구축(3개 클래스, 16,500장 라벨링)에 참여
  • 제1저자로 논문을 작성해 학회지 게재

교육

AI.M 1기 — AI 에이전트 엔지니어 트랙

2026.07 ~ 2027.01 수료 예정

984시간

LLM·AI Agent 이해 → Python·AI API 웹개발 → LangChain 기반 Agent 개발 → Multi-Agent OrchestrationLLM·RAG 시스템 설계 및 구현 → AI 모델링 → AI 프로덕션 개발
  • 학습 내용을 매일 정리해 공개 저장소에 기록
  • RAG는 파이프라인 구성에 그치지 않고 검색 평가(Hit@k·Precision@k·MRR)와 답변 평가(RAGAS·LLM-as-Judge)를 분리 측정하는 방법까지 학습·정리

학력 · 자격

부경대학교 컴퓨터공학부 컴퓨터공학전공 2019.03 ~ 2025.02 졸업 학점 3.96 / 4.5
정보처리기사 2025.06 한국산업인력공단
한국사물인터넷학회 종합학술대회 우수논문상 2024
정보융합대학 융합캡스톤디자인 경진대회 장려상 2024 부경대학교