류태호
새로운 기술을 빠르게 익히고, 문제를 끝까지 파고드는 개발자입니다.
ICT 인턴십 2차
(주)씨에스리2025.09 – 2025.12Java-Python gRPC 3계층 아키텍처 · 온프레미스 RAG 파이프라인
요약
1차에서 구축한 LangChain4j Agent의 한계(Java 단일 스택, 온프레미스 LLM 미지원)를 해소하기 위해 Java-Python gRPC 분리 아키텍처와 독립 RAG 시스템을 처음부터 설계·구축했습니다.
도입 배경
1차 2세대 Agent는 Java 단일 스택으로 AI 모델 선택의 자유가 없었고 온프레미스 LLM 연동·다형식 문서 처리가 불가능했습니다. 확장 가능한 3세대 아키텍처 재설계가 필요했습니다.
기술 스택
주요 기능
- ›gRPC 기반 AI Agent 3계층 아키텍처
- ›다형식 문서 RAG 파이프라인 (7개 포맷)
- ›Ollama LLM 정량 비교 평가 및 온프레미스 배포
- ›Docker + SCP/SSH 배포 자동화
핵심 기여 / 성과
- ›AI Agent 3세대 아키텍처 설계 — gRPC 통신·비즈니스 로직·LLM 레이어를 3계층으로 분리. Protocol Buffers oneof로 텍스트·이미지·분석 데이터의 멀티모달 입력을 통합 처리하고, AsyncStub 비동기 스트리밍으로 응답 체감 속도 개선
- ›RAG 문서 임베딩 파이프라인 독립 구축 — BGE-M3(1024차원) + Chroma DB. txt·md·docx·csv·xlsx·pdf·hwpx 7개 포맷 지원, 표준 파서가 없는 hwpx는 zipfile 압축 해제 + XML 파서를 직접 구현
- ›동시성 이슈 구조적 해결 — BlockingQueue 기반 임베딩 큐로 Python 서버 과부하 방지, VectorStore 동시 접근은 threading.RLock + Double-Checked Locking 패턴으로 해결
- ›온프레미스 LLM 정량 선정 및 배포 — GPU 16GB 환경에서 5개 모델을 응답 시작 시간·이미지 인식률·한국어 품질 기준으로 직접 비교해 qwen2.5vl:7b 선정. 폐쇄망 HuggingFace 텔레메트리 SSL 오류를 설정 제거로 해소해 외부망 의존 없는 완전 온프레미스 동작 달성
맡은 역할
AI
- ›AI Agent 3세대 아키텍처 설계
- ›RAG 문서 임베딩 파이프라인 구축
- ›LLM 모델 정량 비교·선정
Backend
- ›gRPC 비동기 스트리밍 구현
- ›BlockingQueue·RLock 동시성 해결
DevOps
- ›Docker 컨테이너화
- ›SCP/SSH 배포 자동화
ICT 인턴십 1차
(주)씨에스리2025.03 – 2025.06Spring MVC + WebFlux 하이브리드 전환 · LangChain4j AI Agent 2세대 구축
요약
AI 응답 대기(10~15초) 중 사용자 작업이 전면 차단되는 병목을 Spring MVC + WebFlux 하이브리드 구조와 SSE 스트리밍으로 해소하고, OpenAI 직접 호출 방식의 Agent를 LangChain4j 2세대로 고도화했습니다.
도입 배경
기존 Spring MVC 서비스는 AI 응답 대기 중 다른 요청을 처리하지 못하는 구조였고, OpenAI API 직접 호출 방식은 모델 교체와 기능 확장이 어려웠습니다.
기술 스택
주요 기능
- ›Spring MVC + WebFlux 하이브리드 아키텍처
- ›SSE 실시간 스트리밍
- ›LangChain4j AI Agent 2세대 구축
- ›Vue.js Undo/Redo 시스템 (50단계)
핵심 기여 / 성과
- ›워크플로우 처리 효율 40% 개선 — Spring MVC 안정성을 유지하면서 AI 기능만 WebFlux로 분리한 하이브리드 구조 설계. SSE 실시간 스트리밍으로 대기 중 화면 차단 문제 해소
- ›Redis 데이터 유실 근본 해결 — AbortController와 flush 타이밍 충돌(race condition)을 로그 분석으로 특정하고, 파일 기반 임시 저장 구조를 도입해 재발 차단
- ›AI Agent 2세대 마이그레이션 주도 — OpenAI API 직접 호출을 LangChain4j 기반으로 전환. GPT-4 스트리밍 응답, 멀티모달(이미지 Base64+텍스트) 동시 처리, 대화 히스토리 파일 영구 저장 적용
- ›Vue.js 워크플로우 편집기 고도화 — Command 패턴 기반 Undo/Redo(50단계, Ctrl+Z/Y) 구현. Vuex 전역 상태를 지역 상태로 리팩토링해 예측 불가능한 상태 변이 제거
맡은 역할
Backend
- ›MVC + WebFlux 하이브리드 구조 설계
- ›SSE 스트리밍 구현
- ›Redis race condition 분석·해결
AI
- ›LangChain4j 마이그레이션 주도
- ›AI Agent 2세대 설계
Frontend
- ›Vue.js Command 패턴 Undo/Redo 구현
요약
반려동물 브리더-입양자 매칭 플랫폼. 사업자 등록 후 실서비스를 운영 중이며, 백엔드 전체·관리자 화면·CI/CD·모니터링까지 5인 팀에서 백엔드 리드로 담당했습니다.
도입 배경
브리더 검증 체계 없이 분양 사기가 빈번한 시장 문제를 해결하기 위해, 서류 기반 검증 워크플로우와 신뢰 중심 매칭 시스템을 처음부터 설계했습니다.
기술 스택
주요 기능
- ›서류 기반 브리더 검증 워크플로우
- ›품종·지역 필터링 기반 브리더 검색
- ›입양 신청서 양식 관리 및 제출
- ›유저·관리자 인터페이스 분리


핵심 기여 / 성과
- ›조회 API 응답 800ms → 320ms (60% 단축) — 운영 중 직접 발견한 병목을 집계 파이프라인 $match 선적용, 복합 인덱스 추가, $project 필드 제한으로 해결
- ›파일 업로드 성공률 70% → 95% 이상 — Grafana+Loki 로그 분석으로 iOS HEIC MIME 타입 누락을 특정하고 heic-convert 서버 변환 도입
- ›소셜 로그인 성공률 85% → 98% — 구글·카카오·네이버 OAuth 2.0 토큰 전달 방식 개선. JWT 액세스/리프레시 발급·갱신·블랙리스트까지 인증 흐름 전체 설계
- ›실서비스 운영 전 사이클 담당 — MongoDB 27개 컬렉션 스키마 설계, BullMQ 비동기 알림(지수 백오프 재시도), FFmpeg 영상 트랜스코딩, GitHub Actions CI/CD·Discord Webhook 배포 자동화까지 직접 구성
맡은 역할
Backend
- ›REST API 설계·구현 전체
- ›MongoDB 27개 컬렉션 스키마 설계
- ›GCS Presigned URL 파일 업로드
- ›OAuth 2.0 + JWT 인증·인가
- ›BullMQ 비동기 알림 큐
Frontend
- ›관리자 대시보드 (React+Vite)
- ›통계·신고·검수 UI
DevOps
- ›GitHub Actions CI/CD 구성
- ›Grafana+Loki 모니터링
요약
뉴스·경제지표 수집부터 ML 분석, 바이낸스 자동매매까지 이어지는 9인 팀 프로젝트. Python 크롤러 설계·Spring WebFlux 비동기 전환·MongoDB 데이터 설계를 전담했습니다.
도입 배경
암호화폐 투자에 필요한 뉴스와 경제지표가 여러 채널에 분산돼 통합 수집이 어렵고, 자동매매 진입 장벽이 높아 실시간 정보 기반의 통합 플랫폼이 필요했습니다.
기술 스택
주요 기능
- ›뉴스 자동 수집·필터링 (매시간)
- ›국가별 경제지표 수집 (일 1회, 60개 카테고리 4개국)
- ›Binance API 키 기반 자동매매
- ›포트폴리오·거래내역 추적


핵심 기여 / 성과
- ›API 처리 시간 450ms → 180ms (60% 단축) — AI 응답 대기로 발생한 동기 Spring MVC 병목을 WebFlux 논블로킹 구조로 전환
- ›중복 수집 데이터 100% 제거 — MongoDB 유니크 인덱스 + upsert 적용, TTL 인덱스로 뉴스 24시간·경제지표 1년 생명주기 자동 관리
- ›수집 파이프라인 전담 구축 — Python + Selenium으로 뉴스(매시간), 4개국 60개 카테고리 경제지표(매일) 자동 수집. Docker + Cron 스케줄링 운영
- ›Binance API 연동 및 실거래 검증 — 실시간 시세 수신, 자동 매수·매도 주문 실행 구성. 실제 테스트 거래로 기능 검증
맡은 역할
Backend
- ›WebFlux Reactive API 설계·구현
- ›JWT 인증·인가
- ›Redis 세션·토큰 관리
Data
- ›뉴스·경제지표 크롤러 구현
- ›Docker + Cron 스케줄링
- ›TTL·유니크 인덱스 설계
요약
LG U+ 산학협력 캡스톤 프로젝트. 10분 단위 유동인구 공공데이터 150만 건을 분석해 축제 혼잡 구역을 예측하고 안전 대피 경로를 제안합니다. 팀장으로 데이터 파이프라인과 경로 알고리즘을 100% 단독 구현했습니다.
도입 배경
대규모 축제 현장에서 실시간 혼잡도 기반의 사전 대응 체계와 대피 경로 안내 시스템이 부재했습니다. LG U+가 보유한 유동인구 공공데이터를 활용해 이를 해결하는 서비스를 제안했습니다.
기술 스택
주요 기능
- ›유동인구 수집·전처리 파이프라인
- ›혼잡도 반영 최적 경로 탐색 (OSRM + OSMnx)
- ›실시간 혼잡도 경보
- ›위험도 기반 대피 경로 추천


핵심 기여 / 성과
- ›메모리 사용량 8GB → 2.4GB (70% 절감) — 150만 건 공공데이터를 chunksize 분할 처리·usecols·dtype 명시 조합으로 처리
- ›초기 로딩 70초 → 5초 (93% 단축) — 전체 전달 vs 서버 필터링으로 의견이 갈렸을 때 양쪽을 직접 구현·측정한 뒤 청크 분할 전송 + 가시 영역 우선 렌더링으로 절충
- ›혼잡도·안전도·소요시간 가중치 경로 알고리즘 개발 — OSRM + OSMnx 기반 최적 경로 산출, 소프트웨어 등록(ASSET_0012715) 완료
- ›4관왕 수상 — 창의설계경진대회 대상(세종대), IN-JEJU Challenge 총장상, WE-Meet 교육부장관상, 지역대학간 SW캡스톤 최우수상
맡은 역할
Algorithm
- ›경로 최적화 알고리즘 단독 구현
- ›혼잡도·안전도·소요시간 가중치 설계
- ›좌표 변환·거리 계산 API
Data
- ›공공데이터 수집 자동화
- ›결측·이상치 처리 및 정규화
- ›Pandas 청크 기반 메모리 최적화
요약
멋쟁이사자처럼 12기 해커톤에서 프론트엔드를 단독 전담한 스포츠 소모임 커뮤니티. React + Redux SPA 구조 설계부터 Quill 에디터 커스텀, 운영 이슈 수정까지 직접 담당했습니다.
도입 배경
관심 스포츠별 소모임 정보가 각 종목 커뮤니티에 분산돼 참여 장벽이 높고, 매칭 이후 지속적인 커뮤니티 활동으로 연결되기 어려웠습니다.
기술 스택
주요 기능
- ›소모임 생성·검색 (인원·날짜·장소)
- ›종목별 커뮤니티 게시판
- ›글·댓글 (Quill 에디터)
- ›카카오·구글 소셜 로그인


핵심 기여 / 성과
- ›이미지 업로드 성공률 95% 이상 달성 — 대용량 이미지에서 실패가 잦던 Base64 인라인 삽입을 서버 업로드 후 URL 삽입 방식으로 전환
- ›API 호출 70% 감소 — 필터 변경마다 즉시 재호출하던 구조를 검색 버튼 + 결과 캐싱 구조로 개선
- ›프론트엔드 단독 설계 및 운영 이슈 해결 — React + Redux SPA 구조, 라우팅, Lazy Loading(초기 번들 축소)까지 전체 구조를 혼자 설계하고 운영 이슈를 직접 발견·수정
맡은 역할
Frontend
- ›SPA 구조 설계·구현 (단독)
- ›라우팅 및 Lazy Loading
- ›Redux 전역 상태 관리
- ›Quill 에디터 통합·이미지 업로드