포트폴리오

포트폴리오

안녕하세요! AI를 전공한 프로덕트 엔지니어 성진입니다.

AI 연구와 사이드 프로젝트를 진행하며 꾸준히 성장하고 있습니다.


Eirene: 멀티에이전트 연명의료 상담

말기 암 연명의료 상담을 돕는 멀티에이전트 구조의 챗봇을 개발 및 검증했습니다.

4명+: 25.06 – 26.01
Python, LangChain, LangGraph, FastAPI, Docker, Sveltekit

  • 실제 의료 현장의 니즈를 반영하기 위해 삼성서울병원 전문의와 협업하여 말기 암 환자 상담 문제를 정의하고 시스템의 임상적 실효성을 검증했습니다.
  • 단일 LLM이 상충하는 요구사항을 조율하지 못하는 한계를 해결하기 위해 멀티 에이전트 구조를 도입했고, 상담의 적절성(~19%), 구체성(~16%) 등 7개 평가지표에서 성능 향상을 달성했습니다.
  • LLM 호출 비용과 응답 품질 간 트레이드오프를 최소화하기 위해 피드백 루프 반복 횟수를 실험적으로 탐색하여 P95 latency를 최대 61% 줄였습니다.
  • 비동기 I/O 처리와 프롬프트 최적화를 통해 에이전트 오케스트레이션의 속도를 50%, 정확도를 27% 개선했습니다.
  • 평가 데이터 부족 문제를 해결하기 위해 HyperCLOVAX와 GPT-4로 대화 시뮬레이션 환경을 구축하고 데이터 생성을 자동화했습니다.
  • 크롤링을 통해 의료 RAG 파이프라인을 구축하고, 에이전트의 이중 메모리(STM, LTM) 구조 및 planning 모듈을 구현했습니다.

FaceMouse: 얼굴 인식을 활용한 데스크탑 조작

상지 장애인의 웹 접근성을 개선하기 위해 얼굴 주시 방향으로 마우스 커서를 제어하는 소프트웨어입니다.

3명: 22.04 – 11 | 개인: 25. 03 – 05
Python, OpenCV, MediaPipe, Dlib, Usability Testing

  • 손 사용이 어려운 사용자의 마우스 조작 문제를 해결하기 위해 MediaPipe와 OpenCV로 머리 회전 기반 커서 제어와 눈 깜박임 기반 클릭을 구현했습니다.
  • Mediapipe, Dlib, SSD 등 알고리즘 비교 실험을 수행하여 실행 시간 최대 12배 단축, CPU 사용률 최대 40.7%p 절감을 달성했습니다.
  • 코드 레벨의 연산 최적화를 통해 4-core 저전력 CPU와 480p 웹캠 환경에서 30fps로 작동하는 실시간 파이프라인을 구현했습니다.
  • ±37°의 머리 회전 범위에서 포인터 추적 성공률 100%를 기록하며 마우스 대체 입력 장치로서의 기능적 유효성을 실험적으로 입증했습니다.
  • 사용자 경험 개선을 위해 반복적인 사용자 테스트와 정량적 모니터링을 병행하여 기능을 개선했습니다.

Speak2UI: 음성 명령을 통한 안드로이드 조작

상지 장애인의 모바일 접근성을 개선하기 위해 음성 명령을 통해 안드로이드를 조작하는 소프트웨어입니다.

2명+: 25.03 – 25.10
Kotlin, Python, Android SDK, Gemini CLI, Sentry, Usability Testing

  • 비정형 자연어 명령을 Android API 호출로 매핑하는 문제를 해결하기 위해 GPT-4o 기반 의도 파악 및 명령 변환 로직을 설계했습니다.
  • 음성 인식 지연을 해결하기 위해 VAD threshold를 동적으로 조절하여 발화 인식 속도를 10배 단축했습니다.
  • 정량 평가를 통해 선행 연구 대비 명령 수행 정확도를 8.91%p 개선하고, 복잡한 상황을 평가하기 위해 데이터셋 87건을 추가로 구축하고 평가했습니다.
  • 사용성 평가 기준을 마련하기 위해 상용 앱 7개의 UI 접근성 패턴을 분석하고 테스트 시나리오를 설계했습니다.
  • 실사용성을 검증하기 위해 IRB 승인 하에 피험자 8명을 대상으로 사용성 테스트를 진행했고, 음성 인식 모듈의 성능이 전체 시스템의 핵심 병목임을 확인했습니다.

발화자 감정인식 모델 Fine-tuning

BERT를 fine-tune하여 발화자의 감정을 10개의 레이블로 분류합니다.

개인: 22.11 – 22.12
Python, Pytorch, Transformers, Scikit-learn, NLTK

  • 구어체의 불규칙한 노이즈(특수문자, 축약어 등)를 해결하기 위해 다양한 텍스트 정규화를 실험한 결과, 과도한 전처리가 오히려 문맥 정보를 훼손함을 확인하고 TweetTokenizer로 전처리하는 전략을 채택했습니다.
  • 사전학습 모델의 레이블 체계와 대회 데이터의 레이블이 불일치하는 문제를 해결하기 위해 EmoBERTa의 학습 레이블과 동일하게 매핑해, sklearn 기본 인코더 대비 점수를 1.5% 향상시켰습니다.
  • GPU 메모리 부족으로 큰 batch size를 사용할 수 없는 환경적 제약을 해결하기 위해 gradient accumulation을 적용했고 점수를 1.1% 향상시켰습니다.
  • 대화 문맥을 반영하지 못하는 문제를 해결하기 위해 RoBERTa에 GRU를 결합한 하이브리드 구조를 설계하고 학습했으나, 제한된 학습 데이터 환경에서는 사전학습 파라미터를 활용한 전체 fine-tuning이 가장 높은 성능을 보임을 실험적으로 확인했습니다.
  • 최종 테스트셋 F1-macro 0.562로 AI 경진대회에서 259팀 중 2위를 수상했습니다.

Dev-roo: 개발자를 위한 블로그 스킨

개발자를 위한 티스토리 블로그 스킨 '캥거루(dev-roo)'를 개발 및 배포하고 있습니다.

개인: 24.03 – 현재
HTML5, CSS3, Javascript, UX/UI Design

  • 개발자에게 필요한 코드 블록, 수식 렌더링 등을 지원하는 스킨이 없다는 문제를 인지하고 직접 스킨을 개발했습니다.
  • 티스토리 스킨 페이지에 등록하고 github 오픈소스로 공개해, 누적 방문자 5,000명, 조회수 17,000회를 달성했습니다.(26.04)
  • 초기 로딩 시간을 단축하기 위해 리소스에 lazy-loading을 적용하고 사용자가 선택적으로 기능을 끌 수 있도록 옵션을 제공합니다.
  • 사용자 접근성을 높이기 위해 색상 대비, 버튼 영역 크기 등을 고려한 디자인 시스템을 설계하고 적용했습니다.
  • 배포 후 사용자 피드백과 이슈 리포트를 반영하여 4회 이상 업데이트를 진행하며 서비스 품질을 지속 개선하고 있습니다.

영어 학습 경험 개선을 위한 UX 리서치

영어 회화 학습 앱 Lingle을 개선하기 위해 UX 리서치를 진행하고 기능 개선을 제안합니다.

2명: 26.02 – 26.03
In-depth Interview, User Survey, Journey Map, Wireframing, Claude Code

  • 앱의 UX 문제를 정량적으로 파악하기 위해 온라인 설문 27명과 심층 인터뷰 11회를 통해 4가지 핵심 페인 포인트를 도출했습니다.
  • 인터뷰 데이터를 체계적으로 정리하고 팀 내 원활한 공유를 위해, 정량적 코딩 기법을 적용하고 9가지 문제 유형으로 분류했습니다.
  • 몰입감과 성취감이 영어 학습 유지에 중요함을 파악하고, 이를 바탕으로 UI를 설계하고 Figma 프로토타입을 제작했습니다.
  • 실현 가능성을 검증하기 위해 사내 기술 스택에 맞춰 PoC를 제작하고 검증했습니다.
  • 비개발 직군인 기획자와의 협업 효율을 높이기 위해 Notion과 Figma 공유 워크스페이스를 운영하며 협업했습니다.