Projects
프로젝트
무슨 문제를 풀었고, 무엇을 선택했고, 어떤 결과가 나왔는지로 봐 주세요.
회사에서 한 일은 경력기술서에 따로 있습니다.
스펙 기반 프레젠테이션 메이커
Pythonpython-pptxMCP
문제
발표자료는 코드처럼 버전 관리가 되지 않고, 고칠 때마다 PPT·PDF·웹 버전이 서로 어긋납니다.
선택
덱 스펙(YAML) 하나에서 HTML·PDF·PPTX 세 출력물을 생성하고, PPTX를 역방향으로 스펙으로 가져오는 CLI를 만들었습니다.
브라우저 캔버스 편집기(드래그·스냅·속성 패널·Undo), 자유 배치 요소, 차트 슬라이드까지 확장했고,
MCP 서버를 내장해 AI 하네스에 도구로 직접 연결됩니다.
결과
외부 서비스 없이 로컬에서 완결되며 의존성은 2개입니다.
기하 계약을 한 곳(PPTX 익스포터)에 두어 렌더러·편집기·PPTX 출력이 서로 어긋나지 않게 한 것이 설계의 핵심입니다.
1 → 3
스펙 하나 → 출력 셋
HTML · PDF · PPTX
2개
런타임 의존성
python-pptx · PyYAML
OshiVerse
오픈소스Cloud Run 배포
캐릭터 일관성 유지 AI 생성 플랫폼
FastAPISQLAlchemyReact
TypeScriptPostgreSQLDockerGCP Cloud Run
문제
생성형 AI로 만든 캐릭터는 새 포즈·의상·장면에서 매번 다른 얼굴이 나옵니다.
선택
캐릭터를 버전 관리되는 영속 엔티티로 다뤄 정체성을 잠갔습니다.
정체성 슬롯을 채워 버전으로 잠그면 이후 생성이 그 기준을 따릅니다.
대사 → 이미지 → 영상을 파이프라인으로 잇고 단계마다 다른 모델을 고를 수 있으며,
모델 목록은 서버 레지스트리가 단일 진실 원천입니다.
Trade-off 판단
배포 단계에서 Celery와 Redis를 걷어내고 작업 큐·속도 제한·번역 캐시를 PostgreSQL로 옮겼습니다.
Cloud Run의 컨테이너 수명 모델과 상시 워커·상시 캐시 서버가 맞지 않았고,
이 규모에서 상태를 가진 컴포넌트를 둘이나 더 두는 비용이 이득보다 컸기 때문입니다.
운영 컴포넌트가 줄어 배포가 단순해졌습니다.
정직한 실패 처리. 미지원 모델을 고르면 조용한 폴백 없이 실행 시점에 명시적으로 실패하도록 설계했습니다.
사용자가 다른 모델의 결과를 요청한 모델의 결과로 착각하는 것이 더 나쁘다고 판단했습니다.
검증
스택을 8개 관점으로 훑어 12건을 받았지만, 반증과 직접 재현을 통과한 것은 6건이었습니다.
기각한 2건은 소스에 근거가 적힌 의도된 설계였고, 보상 통제가 실제로 도는 것을 확인해 고치지 않았습니다.
확정한 6건 중 2건은 같은 세션에 제가 만든 구멍이라 커밋 메시지에 그렇게 적었습니다.
통합 자원 관리 SaaS
GoAWS Lambda (ARM)
DynamoDBSQSGrafana
문제
같은 자원을 두고 예약·웨이팅·주문을 제각각 다른 서비스로 관리하던 불편함.
선택
세 가지를 하나의 “자원”으로 추상화한 통합 대시보드. Go + ARM 서버리스,
동시 예약 충돌은 낙관적 락, 데이터 유실은 FIFO 큐로 막았습니다.
결과
Lambda 실행 비용 20% 절감. 교내 프로젝트가 실제 외주 의뢰로 이어졌습니다.
AI 여행 일정 플래닝 에이전트
LangGraphFastAPIAWSDynamoDB
문제
여행 정보 수집이 번거롭고 오래 걸리는 문제. 초기 단일 그래프 구조로는 일정 하나에 3분이 걸렸습니다.
선택
멀티 에이전트 계층 구조(Subgraph)로 라우팅하고, 수집을 비동기 병렬로 재설계했습니다.
프로젝트 관리 AI 자동화 SaaS
문제
작은 팀일수록 프로젝트 관리에 쓸 사람이 없습니다. 관리가 일이 되는 역설을 자동화로 풀고자 창업했습니다.
현재
숭실대학교 슈퍼스타 창업경진대회 우수상(2025.12). Enois Lab에서 개발 중이며 공개 시점에 상세를 공유합니다.