SEO JAE SEOKAI Engineer Portfolio
01 / 23
AI Engineer Portfolio

서재석

AI를 실제 사용자 경험으로 연결하는 엔지니어

AI AgentsLLM Fine-tuningAI Service Architecture
02 / 23
Profile / Why AI Engineer

모델 개발, 서비스 설계, 배포 운영을 한 흐름으로 연결해
AI 기능이 실제 사용자 경험 안에서 작동하도록 만듭니다.

Education

아주대학교

생명과학과 심화전공
의료인공지능 마이크로전공

Bootcamp

카카오테크 부트캠프

생성형 AI 과정 수료

Core Strength

AI Agent WorkflowLLM Fine-tuning & EvaluationFastAPI AI ServerArchitectural DesignService Deployment
Profile
03 / 23
Portfolio Map

TechTree는 Agent 시스템,
미야옹은 모델/데이터 엔지니어링,
Sysmed는 도메인 데이터 이해력을 보여줍니다.

01
TechTree

TechTree

AI Agent 서비스 설계와 운영

Role
1인 개발 / AI Agent Engineer
02
Meowng

미야옹

도메인 특화 sLLM 개발과 모델 서빙

Role
Team Leader & AI Engineer
03
Sysmed

Sysmed

의료 데이터 이해와 연구 데이터 처리

Role
학부 연구생 / Data Engineer
04 / 23
Project 01 · TechTree

AI Interview
Agent System

이력서와 채용 공고를 바탕으로 실시간 음성 면접을 진행하고, 대화 근거 기반 평가 리포트까지 생성하는 AI 면접 서비스입니다.

Period2025.12.01 ~ 2026.05.31
Team1명 · 1인 개발
Role1인 개발 · AI Agent Engineer
Core Problem실시간 대화 지연과 평가 신뢰성의 동시 해결
ProofWebRTC, LangGraph, Grounded Report, AWS 배포
TechTree 로고
OpenAI Realtime WebRTC
LangGraph Evaluation
Email Report Automation
Live Servicetechtree.haebo.pro
05 / 23
이력서와 지원 공고 기반 면접 입력 화면
TechTree · Service Flow

이력서와 지원 공고 입력을 기반으로
면접 질문과 평가 리포트의 근거
만듭니다.

이력서/PDF 입력

지원자의 경험과 기술 스택을 면접 질문 생성의 기본 컨텍스트로 사용합니다.

지원 공고 기반 맥락

직무, 경력, 학력, 채용 공고를 함께 분석해 지원 포지션에 맞는 질문을 구성합니다.

완료 후 리포트

면접 대화 내용을 기반으로 평가를 진행하고 이메일 리포트를 발송합니다.

06 / 23
TechTree · Architecture

브라우저에서 실시간 AI 모델을 직접 연결하고,
FastAPI는 제어를, LangGraph는 상태 흐름을 관리합니다.

서비스 배포 아키텍처
FastAPI: 세션 발급/상태 제어 LangGraph: 컨텍스트 준비/평가 Background Task: 리포트/메일
07 / 23
TechTree · Challenge 01

면접 중 지원자가 생각하는 시간을
'답변 종료'로 오해하지 않으려면?

"일반적인 VAD(음성 감지) 방식은 지원자가 답변을 잠시 생각하며 침묵하는 순간을 '답변 종료'로 오인하여 흐름이 끊기는 한계가 있습니다."

선택한 해결책

  • 브라우저와 OpenAI Realtime API를 WebRTC로 직접 연결
  • FastAPI는 client secret 발급과 세션 제어에 집중
  • 스페이스바를 누르고 있는 동안 답변하고, 떼면 답변이 종료되는 Push-to-Talk 방식
인터뷰 중 답변 녹음 화면
08 / 23
LangGraph 워크플로우 화면
TechTree · Challenge 02

실시간 대화와 복잡한 에이전트 로직을
어떻게 충돌 없이 공존시킬 것인가?

"실시간 대화 루프에 LangGraph가 개입하면 매 대화마다 치명적인 통신 부하가 발생합니다. 이를 막기 위해 실시간 엔진은 사전 주입된 컨텍스트로만 초저지연 대화를 진행하고, 생성된 스크립트는 종료 후 에이전트에 비동기로 전달하여 병목을 원천 차단했습니다."

단계별 책임 분리

1. 면접 전 (LangGraph)Manager가 이력서/직무/공고 컨텍스트 준비 및 Tavily 검색
2. 면접 중 (OpenAI Realtime)WebRTC 직접 연결로 지연 없는 실시간 대화 전담
3. 면접 후 (LangGraph)Evaluator가 transcript를 구조화 평가 리포트로 변환
09 / 23
TechTree · Challenge 03

면접 리포트가 그럴듯한 생성문이 아니라
실제 면접에 근거하도록 어떻게 만들 것인가?

초기 기준 설정(RAG)

면접 시작 전 입력한 이력서와 채용공고를 프롬프트의 핵심 컨텍스트로 주입하여, 평가의 절대 기준으로 삼습니다.

공고 검증 (Tavily)

LLM이 임의로 공고를 만들지 못하도록 Tavily 검색 결과나 사용자 제공 데이터만 사용합니다.

스키마 고정 (Pydantic)

Pydantic structured output으로 점수, 강점/개선점, 주요 Q&A 등 리포트 필드를 고정합니다.

종합 평가강점개선점질문별 피드백답변 근거말투/답변 습관다음 면접 준비 포인트
인터뷰 결과 리포트 상단인터뷰 결과 리포트 하단
10 / 23
TechTree · Challenge 04

프롬프트를 모든 상황에 맞출 수는 없는데,
AI가 스스로 회고하며 진화할 순 없을까?

1. 면접 대화 내용과 평가 리포트 분석
2. 자기회고(Self-Reflection) 후보 생성
3. MongoDB/JSONL에 비식별 운영 메모리 저장
4. 관련 Reflection/Policy만 선별 주입

"사용자 대화 원문 저장에 따른 개인정보 리스크와 매번 파인튜닝을 진행하는 비효율성을 극복하고자 했습니다. 면접이 종료될 때마다 모델 스스로 회고를 진행하고, 철저히 비식별화된 핵심 개선 지침만을 벡터DB에 저장합니다."

Prompt Memory Database

다음 면접 시작 시 유사도 검색(Semantic Search)을 통해 promoted policy를 최대 3개까지 우선 선택하고, 전체 한도 5개 안에서 직무/경력/학력/면접 모드에 맞는 Reflection을 보충해 프롬프트에 주입합니다.

11 / 23
TechTree · Outcome

1인 개발로 AI 서비스의 전체 사이클을 구현했습니다.

Realtime UX

WebRTC 기반 지연 없는 실시간 음성 대화 환경 설계

Agent Boundary

실시간 대화와 LangGraph 평가의 충돌 없는 분리

Grounded Evaluation

구조화 출력과 데이터 기반의 신뢰성 있는 리포트 생성

Production Deploy

Docker Compose, Nginx, AWS 기반의 서비스 배포 운영

12 / 23
Project 02 · 미야옹

한국어 말투 변환
sLLM

사용자의 글을 감정별 동물 말투로 변환하는 SNS 서비스에서, 말투 변환 모델과 AI 서버를 실제 기능으로 연결했습니다.

Period2025.04.01 ~ 2025.08.01
Team7명 · AI 3 / FE 1 / BE 1 / Cloud 2
RoleTeam Leader & AI Engineer
Core Problem주관적인 말투 품질을 데이터와 평가 지표로 관리
ProofSFT, 5 Metrics, Hugging Face, vLLM Serving
미야옹 로고
HyperCLOVA X 1.5B SFT
BLEU / BERTScore / PPL
FastAPI / vLLM / GCP
13 / 23
sns 게시물 입력 화면
sns 게시물 생성 화면
미야옹 · Service Features

사용자 경험을 중심으로
실제 작동하는 AI 기능을
설계합니다.

게시글 및 댓글 변환

사용자의 원문을 동물 유형과 감정에 맞게 변환해 SNS 작성 부담을 낮췄습니다.

서비스 기능 확장

게시글 작성 흐름을 시작으로 댓글과 채팅까지 말투 변환 경험을 확장했습니다.

logo

프로필 추천

CLIP 기반으로 사용자와 닮은 강아지/고양이 프로필 이미지를 추천하는 기능을 구현했습니다.

14 / 23
미야옹 · Model Artifact

모델 개선 결과를 수치로 검증하고
Hugging Face에 공개 모델로 정리했습니다.

Gemini v1 대비+8.10%

종합 평가 평균 개선

자체 모델 v1 대비+57.45%

버전 개선 누적 효과

Filtered Samples11,845

품질 필터링 후 학습 데이터

Base Model1.5B

HyperCLOVA X

Hugging Face Modelhaebo/meow-clovax-v3https://hf.haebo.pro

Dataset Format

content, emotion, post_type, transformed_content 4가지 필드로 구성된 JSONL 학습 구조를 정의했습니다.

SFT Method

감정 기반 고양이/강아지 말투 변환 Task에 맞추어 Supervised Fine-tuning(SFT)을 진행했습니다.

15 / 23
미야옹 · Challenge 01

sLLM 학습 데이터의 품질을
어떻게 선별하고 관리할 것인가?

"모델 성능은 파인튜닝 기법보다 학습 데이터의 일관성과 품질 기준에 더 크게 좌우된다고 판단했고, 그래서 품질 기준을 정의하고 데이터 선별 파이프라인을 구축했습니다."

문제 크롤링·합성·수동 생성 데이터가 섞여 품질 편차가 발생
기준 불용문자, 과도 반복, 다중 공백, 형식 오류를 제거 기준으로 설정
평가 형태소·구문 기반 품질 점수로 데이터 일관성 검증
선별 Threshold 미달 데이터를 제외해 11,845개 학습 데이터 확보
24,191
Raw Data
11,845
High Quality Dataset
16 / 23
자체 모델 버전별 성능 비교
미야옹 · Challenge 02

"고양이/강아지 말투"라는 주관적 기준을
무슨 기준으로 평가할 것인가?

KoBERTScore

문맥 의미 보존도

BLEU

표면적 단어 유사도

Perplexity

생성 문장의 자연스러움

Type & Quality

동물 말투 특성 및 금지어/비문 필터링

의미 보존 · 단어 유사도 · 자연스러움 · 말투 반영도 · 품질 필터링을 분리 평가한 뒤 종합 평균으로 비교했습니다.
결과: Gemini v1 대비 +8.10%, 자체 모델 v1 대비 +57.45% 개선

17 / 23
미야옹 · Challenge 03

작은 모델이 복잡한 프롬프트 없이도
말투 변환을 수행하게 만들 수 있을까?

작은 모델은 긴 프롬프트 지시사항을 안정적으로 이해하기 어려웠습니다. 그래서 SFT로 말투 변환 목적과 출력 형식을 모델에 직접 학습시켜, 추론 단계에서는 복잡한 프롬프트 없이도 목적에 맞는 변환 결과를 만들도록 설계했습니다.

입력 전처리와 라벨 매핑

URL, 공백, 구두점을 정리하고 감정·동물 유형 라벨을 한국어 표현으로 변환했습니다.

학습 중심 구조 설계

복잡한 지시문 대신 SFT 데이터에 말투 변환 규칙과 출력 형식을 직접 반영했습니다.

단순 추론 프롬프트

추론 단계에서는 최소한의 입력 구조만 유지해 변환 결과만 생성하도록 제한했습니다.

// Preprocess & Mapping
emotion → 평범한 / 기쁜 / 슬픈 / 까칠한 / 호기심 많은
post_type → 고양이/강아지, content → URL·공백 등 전처리
// HyperCLOVA X Prompt
<|system|> 말투 변환 전문가
<|user|> 다음 문장을 [감정]한 [동물] 말투로 바꿔줘
Input: 정제된 사용자 원문
Output:
<|assistant|> 변환 결과만 생성
18 / 23
미야옹 · Architecture

무거운 기능은 vLLM 서버에서 따로 실행하고,
가벼운 기능은 FastAPI 서버에서 직접 실행합니다.

서비스 배포 아키텍처

서비스 로직과 LLM 추론 분리

FastAPI는 API 라우팅과 기능별 로직을 담당하고, vLLM은 말투 변환 모델 추론 전용 서버로 분리했습니다.

기능별 추론 전략

게시글 생성은 LLM 추론을, 실시간 채팅은 속도 우선 규칙 기반 로직을 적용했습니다.

logo

CLIP + ChromaDB

프로필 이미지는 텍스트 생성이 아닌 이미지-텍스트 임베딩 유사도 검색으로 구조를 분리했습니다.

19 / 23
미야옹 · Service Impact

AI 모델을 팀 서비스 안에 녹여내며
실제 운영 성과로 연결했습니다.

"프론트엔드·백엔드·클라우드 흐름에 맞춰 AI 기능을 조율하고, 팀원들과 함께 실제 서비스 결과를 만들었습니다. 단순히 좋은 기술 보다 서비스에 필요한 기술을 선택해 하나의 제품으로 완성했습니다."

1,118
생성된 텍스트 게시글 수
33,671
5분 최대 API 요청 수
175명
초기 가입 유저 수
미야옹 서비스 홈과 게시글 화면
20 / 23
Project 03 · Sysmed

Biomedical Data
Engineering

간암 조직 이미지와 유전자 발현량을 함께 다루며, 의료 AI 모델링 이전의 데이터 규격화와 해석 과정을 경험했습니다.

Period2023.02.09 ~ 2023.12.31
Team7명 · 교수 / 박사 / 석사생 4 / 학부인턴
Role학부 연구생 · Data Engineer
Core Problem조직 이미지와 유전자 발현량을 결합하기 위한 데이터 정규화와 해석
ProofR Seurat, UMAP/PCA, WSI Normalization, Model Evaluation
Sysmed 아주대학교 로고
Liver Spatial Single Cell RNA
WSI Image Normalization
UMAP/PCA Visualization
21 / 23
Project 03

Sysmed

간암 조직 이미지와 공간 단일세포 데이터 분석

Liver Spatial Single Cell RNA Sequence 데이터와 간암 조직 이미지를 함께 다루며, 유전자 발현량 기반 악성 세포 유형 분석과 WSI 이미지 규격화/정규화를 수행했습니다.

R Seurat 분석UMAP/PCA로 저차원 축소 후 클러스터별 유전자 마커와 조직 이미지 교차 검증
WSI 정규화딥러닝 입력 규격에 맞게 패치 단위 분리, RGB 기준 샘플 선택, 색상 편차 보정
모델 비교 평가정규화 기준과 세포 유형 분류 결과가 예측 성능에 미치는 영향을 비교
RPythonWSI 정규화Seurat UMAP/PCA
데이터 공간상 세포 유형 분류 결과
데이터 정규화 과정
UMAP을 활용한 공간상 세포 유형 시각화 결과
22 / 23
What I Can Contribute

저는 AI 모델을 만드는 데서 멈추지 않고,
실제 서비스로 완성합니다.

TechTree에서는 실시간 음성 면접 Agent의 전체 흐름을 설계했고,
미야옹에서는 sLLM 학습 데이터와 평가 지표, 서빙 구조를 구축했으며,
Sysmed에서는 의료·생명과학 데이터의 구조를 이해하고 모델링 전처리 기준을 다뤘습니다.

TechTree

Agent Workflow 설계

WebRTC 실시간 대화와 LangGraph 평가 흐름을 분리해 지연이 적은 면접 Agent 구조를 설계했습니다.

미야옹

sLLM 서비스 적용

말투 변환 데이터, 평가, 서빙 구조를 연결해 sLLM을 실제 사용자 기능으로 구현했습니다.

미야옹

AI Serving Architecture

모델 추론, 리포트 생성, Vector DB, 검색 기능을 분리해 운영 가능한 AI 구조를 설계했습니다.

Sysmed

Domain Data Understanding

의료·생명과학 데이터 구조를 이해하고 모델링 전 데이터 품질을 관리했습니다.

23 / 23
Final

복잡한 AI 기술을, 사용자가 이해할 수 있는 경험으로 바꾸겠습니다.

문제를 구조화하고, 기술을 연결해, 끝까지 작동하는 제품을 만드는
AI Engineer 서재석입니다.

contact@haebo.pro git.haebo.pro blog.haebo.pro