AI & Backend Developer
이동훈
Lee Dong-hun

컴퓨터공학 전공 기반의 AI 풀스택 개발자.
실시간 번호판 인식, LLM 챗봇, CI/CD 인프라 구축까지
서비스 전 과정을 설계하고 배포한 경험을 보유합니다.

YOLOv8 · YOLO11n Flask · React GPT-4o · RAG LangChain · ChromaDB Docker · AWS · Cloudflare 정보처리기사 · SQLD
010-2077-4366
qksdkqksdk5@naver.com
1997.03.06
희망 연봉: 협의 가능
DEV

AI 기반
풀스택 개발자입니다.

AI-X 스마트 교통 아카데미에서 교통 이상 징후를 실시간으로 감지·관제하는 풀스택 시스템을 설계부터 배포까지 경험했습니다.

GPT-4o 기반 Text-to-SQL 챗봇과 RAG 시스템을 직접 설계하고, Cloudflare Tunnel을 활용한 로컬-클라우드 하이브리드 배포 환경을 단독으로 구축했습니다.

빠른 학습력과 책임감을 바탕으로 AI·백엔드 분야에서 즉시 기여 가능한 개발자를 목표로 합니다.

AI / Vision
YOLOv8YOLO11nByteTrackOpenVINOOpenCVCustom OCR
LLM / RAG
GPT-4oLangChainChromaDBText-to-SQLRAG Pipeline
Backend / Frontend
PythonFlaskSocket.IOReactMySQLMongoDB
Infra / DevOps
DockerGitHub ActionsAWS EC2/RDSNginxCloudflare
2026.03 — 2026.05
TADS 고도화 — 번호판 인식 모듈
최종 프로젝트 · 6인 팀 | 번호판 인식 파트 담당
MAIN PROJECT
문제 정의

교통 관제 시스템에서 차량 번호판을 실시간으로 인식해야 했습니다. 단순 OCR 적용 시 조명 변화, 차량 속도, 번호판 가림 등으로 오인식이 빈번했고, 영업용(노란) 번호판과 일반 번호판의 형식이 달라 하나의 모델로 처리하기 어려웠습니다.

핵심 기능
2단계 파이프라인
YOLO11n으로 번호판 영역을 탐지한 뒤, 크롭된 이미지를 YOLOv8n OCR 모델로 문자 인식. 탐지와 인식을 분리해 각 모델이 한 가지 역할에 집중하도록 설계했습니다.
투표 알고리즘
동일 번호판을 여러 프레임에서 반복 인식해 가장 많이 나온 결과를 확정. OCR이 한 번 틀려도 최종 결과에 영향을 주지 않아 인식 안정성이 크게 향상됩니다.
색상별 OCR 분기
HSV 색공간으로 번호판 색상을 판단해 영업용(노란)과 일반을 분리 처리. 영업용은 지역명 포함 패턴, 일반은 표준 패턴을 적용해 오인식을 방지합니다.
지역명 메모리
영업용 번호판은 주행 중 지역명이 가려질 수 있어, 한 번 인식한 지역명을 track ID별로 저장해 이후 프레임에서 재활용. 부분 가림 상황을 보완합니다.
설계 포인트
01
IO 워커 분리
이미지 저장과 DB 쓰기를 별도 스레드로 분리했습니다. 메인 루프에서 직접 처리하면 파일 저장하는 동안 영상 처리가 블로킹되는 문제가 있어, IO 워커 큐를 통해 영상 처리 속도에 영향이 없도록 설계했습니다.
02
영상 전환 토큰 시스템
영상을 중간에 바꾸면 이전 영상의 IO 작업이 새 영상 DB에 섞일 수 있습니다. 영상 시작 시 UUID 토큰을 발급하고, 토큰이 다른 작업은 IO 워커가 자동으로 스킵해 데이터 오염을 방지했습니다.
03
ROI 기반 선택적 처리
화면 전체가 아닌 관심 영역(ROI) 안에 들어온 번호판만 OCR 큐에 전달합니다. 이미 확정된 번호판은 재처리하지 않고, 큐가 가득 찼을 때도 스킵해 처리 속도를 유지합니다.
성과 지표
95.9%
탐지 mAP@50
(YOLO11n)
99.2%
OCR mAP@50
(YOLOv8n)
4.4ms
탐지 처리 시간
per frame
2.8ms
OCR 처리 시간
per image
12MB
전체 모델 크기
(두 모델 합산)
어려웠던 점과 해결
문제
영업용 번호판은 주행 중 지역명이 가려지는 경우가 많아 인식 실패율이 높았습니다.
해결
track ID별 지역명 메모리를 구현해, 한 번이라도 지역명을 읽으면 이후 프레임에서 재활용하도록 했습니다.
문제
영상 전환 시 이전 영상의 IO 작업 결과가 새 영상 DB에 섞이는 데이터 오염 문제가 발생했습니다.
해결
UUID 기반 토큰 시스템을 도입해 영상 전환 시 이전 작업을 자동 무효화했습니다.
PythonFlaskReactYOLO11nYOLOv8nOpenCVByteTrackOpenVINOMySQL
2026.03 — 2026.05
TADS 고도화 — AI 챗봇
최종 프로젝트 · 6인 팀 | LLM 챗봇 파트 담당
MAIN PROJECT
문제 정의

관제 시스템 운영자가 DB에 쌓인 데이터를 조회하려면 SQL을 직접 작성해야 했습니다. 비개발자 운영자도 자연어로 데이터를 조회하고, 시스템 운영 지침도 바로 확인할 수 있는 챗봇이 필요했습니다.

핵심 기능
의도 분류 (SQL/RAG/BOTH)
질문이 들어오면 GPT-4o-mini로 먼저 의도를 분류합니다. DB 조회가 필요하면 SQL, 지식 답변이 필요하면 RAG, 둘 다 필요하면 BOTH로 분기해 처리합니다.
Text-to-SQL
스키마 컨텍스트를 프롬프트에 주입해 자연어를 SQL로 변환. 생성된 SQL은 정규식으로 SELECT문만 추출하고, 금지 키워드 필터로 읽기 전용 실행을 보장합니다.
RAG 검색
운영 지침 문서를 ChromaDB에 임베딩해 저장. 질문과 유사한 문서를 검색해 답변 프롬프트에 주입합니다. Chroma DB를 persist해 서버 재시작 시 임베딩 비용을 절약합니다.
대화 맥락 유지
MongoDB에 대화 이력을 저장하고 직전 대화를 프롬프트에 포함합니다. "아까 그거", "이번 주 말고 저번 주" 같은 짧은 후속 질문도 문맥을 이어받아 처리합니다.
설계 포인트
01
장애 격리 설계
MongoDB, RAG 시스템 등 외부 의존성이 실패해도 서버가 다운되지 않도록 모든 연결부에 try-catch와 None 체크를 적용했습니다. MongoDB 없이도 SQL 조회와 RAG 답변이 동작합니다.
02
의도 분류 정확도 측정 루프
대화 로그에 expected 필드를 추가해, 관리자가 실제 의도를 입력하면 LLM이 분류한 intent와 비교해 정확도를 KPI로 측정합니다. 프롬프트 개선의 근거 데이터로 활용합니다.
03
SQL 인젝션 방어
LLM이 생성한 SQL에 INSERT, UPDATE, DELETE, DROP 등 위험 키워드가 포함되면 실행 전에 차단합니다. SELECT만 허용하는 읽기 전용 구조로 DB 보호를 보장합니다.
어려웠던 점과 해결
문제
"아 이번주 말고 저번주" 같은 구어체 수정 표현이나 짧은 후속 질문에서 의도 분류가 틀리는 경우가 많았습니다.
해결
프롬프트에 예외 케이스를 하나씩 명시하고, 직전 대화 의도를 함께 주입해 문맥 기반으로 분류하도록 개선했습니다.
문제
서버 재시작마다 ChromaDB 임베딩을 재생성해 OpenAI API 비용이 낭비됐습니다.
해결
persist_directory에 저장하고, 이미 DB가 있으면 로드만 하도록 분기해 임베딩 비용을 제거했습니다.
PythonFlaskGPT-4o-miniLangChainChromaDBMongoDBMySQLSQLAlchemy
2026.02 — 2026.03
TADS — 지능형 교통 관제 시스템
미니 프로젝트 · 6인 팀 | 시스템 팀 단독 담당 (프론트 + 백 + DB 전체)
MINI PROJECT
문제 정의

실시간 CCTV 영상에서 역주행·화재를 감지하고, 관제사에게 즉시 알람을 전달하는 시스템이 필요했습니다. 시스템 팀을 단독으로 담당해 프론트엔드, 백엔드, DB 설계 전체를 혼자 구현했습니다.

핵심 기능
실시간 감지 파이프라인
YOLOv8 모델로 역주행·화재를 감지하고, 감지 즉시 Socket.IO로 알람 전송 → DB 저장 → 관제 대시보드 표시까지 전체 파이프라인을 단독 구현했습니다.
관제 대시보드
Flask REST API + Socket.IO 실시간 알람, React 기반 지도·통계 대시보드 구축. Kakao Maps API로 감지 위치를 지도에 표시하고, Chart.js로 통계를 시각화했습니다.
PythonFlaskReactMySQLYOLOv8Socket.IOKakao MapsChart.js
🤖
AI / Vision
YOLOv8YOLO11nByteTrackOpenVINOOpenCV
💬
LLM / RAG
GPT-4oLangChainChromaDBText-to-SQLRAG Pipeline
⚙️
Backend
PythonFlaskSocket.IOSQLAlchemyMySQLMongoDB
🖥️
Frontend
ReactViteJavaScriptKakao MapsChart.js
☁️
Infra / DevOps
DockerGitHub ActionsAWS EC2AWS RDSNginxCloudflare
📋
Languages & Tools
PythonJavaScriptSQLGitGitHub
📜
정보처리기사
한국산업인력공단
2024.06 취득
🗄️
SQL 개발자 (SQLD)
한국데이터산업진흥원
2023.12 취득
2025.11
— 현재
AI-X 스마트 교통 및 인프라 유지관리 아카데미
대보정보통신 · MBC아카데미 화곡점 · 수강 중
  • YOLOv8 기반 AI 모델 개발 및 실시간 교통 이상 감지 시스템 구현
  • Flask + React 풀스택 개발, MySQL DB 설계, Docker CI/CD 파이프라인 구축
  • GPT-4o + LangChain 기반 Text-to-SQL · RAG 챗봇 설계 및 구현
  • 6인 팀 프로젝트(TADS) 시스템 팀 단독 담당 및 번호판 인식 모듈 개발
2023.10
— 2024.04
웹 융합 SW 기반 빅데이터 솔루션 개발자 양성과정
(주)케이지에듀원 IT뱅크 부산학원 · 수료
  • 웹 개발, 데이터 처리, 데이터베이스 활용 중심의 실무형 교육 과정 이수
  • 팀 프로젝트를 통한 협업 경험 및 문제 해결 능력 강화
2016.03
— 2022.02
컴퓨터공학부
인제대학교 · 학점 3.79 / 4.5 · 수료
  • 자료구조, 알고리즘, 데이터베이스 등 CS 기초 역량 학습