Work
직접 만든 것들.
QA 엔지니어의 눈으로 문제를 정의하고, 빌더로서 끝까지 만들어 출시한 제품과 도구입니다. 각 케이스는 “무엇이 어디서 깨지고, 경계조건과 회귀 리스크가 어디인가”라는 QA 관점의 점검을 함께 담았습니다. 성과 수치는 검증된 것만 적었고, 측정 전인 단계는 그대로 “측정 전”이라고 두었습니다.
여기에 있는 것들은 완성된 제품이라기보다 아이디어 노트에 가깝습니다. 생각이 떠오르면 바로 만들어 결과물부터 확인하고, 거기서 “이게 제품이 될 만한가”를 판단합니다. 그래서 일부는 MVP에서 멈춰 있고, 일부는 “멈춘 결정”으로 남겨둡니다.
만든 것을 계속 굴리려면 운영 비용이 관건이라, 인프라도 비용 관점에서 계속 저울질합니다. 예를 들어 일부 프로젝트는 Render·Neon 같은 관리형 서비스에서 자체 Mac mini 서버로 옮겨 불필요한 지출을 줄였습니다.
Live
6 projectsAdversary
LiveCLI스키마 하나에서 "설명이 붙은" 악성 테스트 입력을 뽑아내는 오픈소스 라이브러리 - 경계값·i18n·인젝션, 각 입력이 왜 깨질 수 있는지까지.
QA생성된 값이 스키마 자신의 제약을 만족하는지(validity: valid/invalid/unknown)를 정확히 라벨링하는가 - i18n·injection은 "통과 여부가 곧 테스트 대상"이라 unknown으로 정직하게 둠
- TypeScript
- Zod
- OpenAPI
- Open Source
- QA
2026QA Engineer · OSS AuthorStarted(First Commit date)Sheen
LiveScreenshots · 3키보드를 잠그고 닦고, 화면을 단색으로 채워 지문·먼지·데드픽셀을 드러내는 맥북 청소용 메뉴바 앱 - 권한 요청·데이터 수집 없이 샌드박스로 Mac App Store 출시.
QA키 삼킴 완전성 - 오버레이 활성 중 어떤 키도 뒤 앱으로 새지 않아야 함(accessory 포커스 누락 회귀 포함해 실측)
- Swift 6
- AppKit / SwiftUI
- macOS Menu Bar
- Mac App Store
- Zero-permission / Sandboxed
2026Solo BuilderStarted(First Commit date)Frameboard
LiveScreenshots · 4RICE · ICE · MoSCoW · Value × Effort를 한 워크스페이스에서 - 오픈소스 우선순위 도구.
QA한 보드 컴포넌트가 4 프레임워크(RICE·ICE·MoSCoW·Value×Effort)의 입력 컬럼·범례·공식을 각각 정확히 전환하는가
- Next.js 15
- FastAPI
- PostgreSQL
- Open Source
2026Founder · Product · EngineerStarted(First Commit date)QA Learning 101
Live테스팅 방법론과 자동화를 실습으로 익히는 QA 학습 플랫폼 - 실무를 닮은 연습용 앱에 직접 테스트를 짜본다.
QAdata-testid 셀렉터가 CSS·컴포넌트 구조 변경에도 안 깨져 E2E가 리팩토링에 견디는가(학습용 표준의 실증)
- QA
- Education
- React
- FastAPI
2026Solo BuilderStarted(First Commit date)Jira AI Duplicate Detector
LiveCLIJira 이슈의 제목·본문을 임베딩으로 비교해 중복 후보 쌍을 찾아주는 Python CLI - 엑셀 리포트와 사용량·비용 통계까지.
QA유사도 임계값의 precision/recall - 임계값을 낮추면 오탐(무관 쌍), 높이면 진짜 중복을 놓치는 트레이드오프를 어디에 두는가
- Python
- CLI
- OpenAI
- Jira
2025Solo BuilderStarted(First Commit date)QAlity - Playwright × Jira
LiveCLIJira 이슈를 트리거로 Playwright 자동화를 돌리고 결과를 Jira 코멘트로 회신.
QAJira 왕복 무결성 - 이슈 → 실행 → 코멘트 회신 → 상태 전이가 중간에 누락 없이 끝까지 이어지는가
- Playwright
- Python
- Jira API
2025Solo BuilderStarted(First Commit date)
MVP
10 projects출석 알리미
MVPMobile수업 시작 몇 분 전에 폰이 먼저 울리고, 알림을 누르면 출석 인정 시간 카운트다운과 함께 대학 전자출결 앱이 열리는 서버 없는 앱 - 기능보다 OS 제약 세 개를 어떻게 처리했는지가 전부인 하루짜리 MVP.
QAiOS 앱당 대기 알림 64개 상한에 걸려 학기 후반 알림이 조용히 사라지지 않는가
- Expo / React Native
- TypeScript
- iOS / Android
- Local Notifications
- QA
2026Solo BuilderStarted(First Commit date)BodyCut Training
MVP감량 중에도 골격근량은 지키도록 체성분·러닝·근력운동을 한 화면에 모은 모바일 웹앱 - 해석 문장만 로컬 LLM이 쓰고, 화면에 뜨는 숫자는 전부 코드가 계산한다.
QA인증 게이트가 라우트 핸들러보다 먼저 도는가, 그리고 로그인 응답 시간이 계정 존재 여부를 흘리는가
- TypeScript
- Hono / SQLite
- Local LLM (Ollama)
- Auth / Security
- QA
2026Solo BuilderStarted(First Commit date)ParkPin
MVPMobile주차 위치를 층·구역으로 기록하고 홈 위젯(iOS·Android)으로 앱을 열지 않고 확인하는 개인용 주차 앱 - 오프라인 우선, 로컬 저장.
QA위젯과 앱이 같은 위치 데이터를 나눠 갖는 지점(iOS App Group)이 회귀가 가장 나기 쉬운 자리 - "앱에서 저장한 위치가 위젯에 항상 맞게 뜨는가"를 최우선 검증
- React Native / Expo
- TypeScript
- Home Widget (iOS/Android)
- Offline-first
2026Solo BuilderStarted(First Commit date)이거먹어
MVPMobile"오늘 뭐 먹지"를 취향·지금 상황·위치로 1~3개까지 좁혀주는 음식 결정 어드바이저.
QA알레르기·영구 비선호·제약을 확률적 LLM이 아니라 하드 필터(DB 질의)로 앞단에서 걸러 절대 뚫리지 않는가(틀리면 사람이 다치는 자리)
- React Native
- FastAPI
- AI
- PostgreSQL
2026Founder · Product · EngineerStarted(First Commit date)Book Map
MVPScreenshots · 8한 주제를 어떤 순서로 읽으면 되는지 한 지도로 보여주는 독서 로드맵 - 책 추천이 아니라 "경로"를 보여주는 게 목표.
QA비로그인 localStorage 진도와 로그인 서버 진도가 어긋나지 않는가 - 계정 가져오기 미지원을 화면에 정직하게 명시했는가
- React
- TypeScript
- Hono
- Reading
2026Solo BuilderStarted(First Commit date)Lecturenote AI
MVP강의 슬라이드와 수업 전사록을 슬라이드 단위로 붙여 학습 노트를 만드는 웹앱. 3개월 만에 학기 관리 도구까지 커졌지만, "노트가 맞는지"를 재는 지표는 끝까지 만들지 못했다.
QASTT 전사록을 슬라이드 경계에 매칭할 때 오프셋이 밀려 노트가 엉뚱한 슬라이드에 붙지 않는가
- React
- FastAPI
- Whisper
- Claude
- RAG
- QA
2026Solo BuilderStarted(First Commit date)DocuStory
MVP한국 부동산 관련 PDF 문서를 위험 신호로 정리해주는 분석 엔진.
QA같은 문서에 늘 같은 점수 - now를
FIXED_NOW로 고정 주입해 골든 결과와 완전히 일치하는가- Python
- FastAPI
- Real Estate
2026Founder · Product · EngineerStarted(First Commit date)TinyWords
MVP하루 단어를 익히고 간격 복습·스트릭으로 이어가는 어휘 학습 앱 - AI 단어 생성·문장 코칭·발음 채점을 얹은 웹·모바일·데스크톱 MVP.
QA복습이 정확한 시점에 뜨는가 - D-1 성공 시 D-3 승급, 실패 시 다음날 재큐·다음 단계 미생성, 밀린 복습은 오래된 것 먼저(단위 테스트로 고정)
- TypeScript
- PWA
- Capacitor
- OpenAI
- Language Learning
2026Solo BuilderStarted(First Commit date)ReleaseGate
MVP릴리즈 직전, GO / HOLD를 데이터로 결정하게 해주는 AI 평가 SaaS.
QA점수 재현성 - 같은 입력(커버리지·미해결 결함·변경 위험)에 같은 신뢰도 점수가 나오는가(루브릭 결정론)
- SaaS
- AI
- FastAPI
- React
2026Product · QA EngineerStarted(First Commit date)TransLoop
MVPScreenshots · 6Double translation 학습 루프를 도구로 만든 외국어 학습 앱 - 원문을 외국어로 번역하고, 며칠 뒤 자기 번역을 다시 모국어로 역번역해 의미 손실을 비교.
QAaccess/refresh 토큰 흐름 - 401 시 1회 자동 갱신이 무한 루프 없이 정확히 한 번만 돌고 실패 시 /login으로 안전히 떨어지는가
- FastAPI
- React
- OpenAI
- Language Learning
2025 - 2026Solo BuilderStarted(First Commit date)
EMBA
12 projectsSPARK Live
EMBA청중이 폰으로 슬라이드를 같이 넘겨 보며 그 슬라이드에 이름을 남겨 질문하고, 발표자는 공감 많은 질문부터 슬라이드별로 답하는 세미나 Q&A - 문서 4개에서 출발해 사흘, 커밋 252개로 실제 행사에 올렸고, 결과는 질문 5개였다.
QA완료 기준이 테스트와 1:1인가 - PRD의 AC 70개 중 68개가 Playwright 테스트 69개에 이름으로 박혀 있다. 빠진 AC-54·55는 구현하지 않은 F-14(질문 사전 승인)의 것이라, 테스트 목록이 곧 구현 범위다. 다만 CI는 없어서 테스트는 로컬 pnpm test로만 돈다
- Next.js
- TypeScript
- Supabase Realtime
- Cloudflare Workers
- Self-hosted
- Playwright
- QA
2026Solo BuilderStarted(First Commit date)EMBA 중앙선거관리시스템
EMBAScreenshots · 6구글폼으로는 1인 1표도, 무기명도 보장할 수 없어서 하루 만에 만든 기수장 선거 시스템 - 학번과 휴대폰번호 해시로 본인확인, 파일 배치로 비밀투표, 개표 전 수 맞춤 검증. 투표 시작 35분 전 적대적 감사로 결함 4건을 고쳤고, 37명 중 35명이 투표했다.
QA투표 시작 35분 전 적대적 감사 - 확증 7건 중 고친 4건: 관리자 토큰을 유권자 쿠키로 넣으면 표가 들어감, 선거권 제외 뒤 남은 세션으로 투표 가능, 학번만 알면 남을 10분 잠글 수 있음(시도 제한을 대조보다 먼저 봄), 후보 순서 바꾸면 사진·지원서가 다른 사람에게 붙음. 반증한 3건도 이유와 함께 커밋에 남겼다
- Node.js
- Express
- No DB
- Election
- EMBA
- QA
2026Solo BuilderStarted(First Commit date)스파크 AI 창업 점집
EMBAQR 하나로 참가자 자기 폰에서 돌아가는 상주 인원 없는 부스 웹앱 - GPU 한 대와 밀 수 없는 행사 시간이라는 제약을 AI 문제가 아니라 신뢰성 문제로 놓고 풀었다.
QAGPU 한 대에 동시 요청이 몰리면 전부 느려지다 함께 타임아웃되지 않는가
- Next.js 15
- Self-hosted LLM
- Fallback Design
- Live Event
- QA
2026Solo BuilderStarted(First Commit date)SPARK 주간 읽을거리
EMBA매주 손으로 쓰던 기사 큐레이션을 검증 게이트가 달린 발행 파이프라인으로 옮긴 프로젝트 - 규칙이 현실과 어긋났을 때 규칙을 지우는 대신 경고로 강등해 계속 보이게 뒀다.
QA게이트가 로그만 남기고 통과하지 않는가 -
publish.js는 검증 실패 시 위반 항목을 출력하고 exit 1로 발행을 중단한다. 경고만 찍고 계속 진행하는 검증은 없는 것과 같다고 봤다- Node.js
- SQLite
- Cloudflare Pages
- Local LLM
- Content Pipeline
- QA
2026Solo BuilderStarted(First Commit date)Degree Planner
EMBA성균관대 EMBA 학위취득계산서를 웹으로 옮긴 학위요건 계산 보조 도구 - 수강 과목을 입력하면 요건 충족과 취득 가능 학위를 계산. Supabase 위의 독립 앱으로 시작해 8월에 EMBA 앱의 웹뷰 전용 화면으로 이관했고, 그 과정에서 자동 저장이 데이터를 덮어쓸 뻔한 경로를 잡았다.
QA같은 입력에 같은 결과 - 요건 계산을 부수효과 없는 순수 함수·상수로 떼어 경계 조합을 단위 테스트로 못박았는가(정확히 45학점, 경영6/비경영12, Advanced 18, 이수 4학기)
- React 19
- TypeScript
- Supabase
- EMBA
2026Solo BuilderStarted(First Commit date)데일리 다이제스트
EMBA구독형 콘텐츠 서비스의 글을 매일 파싱해 본문 전문 대신 재서술 요약을 남기는 비공개 읽기 아카이브 - 저작권 제약을 문서가 아니라 스키마와 저장 게이트로 강제했다.
QA저장 게이트의 errors / warnings 분리
- TypeScript
- Playwright
- Local LLM
- Postgres
- Self-hosted
- QA
2026Solo BuilderStarted(First Commit date)Prompt Forge
EMBAScreenshots · 7동기들과 LLM 사용법을 비동기·실습으로 익히는 학습 플랫폼 - 가이드·로드맵·코스에 더해 브라우저 안에서 프롬프트를 직접 돌려보는 IDE까지.
QA콘텐츠 카드가 추가될 때마다 세 원칙(초안 작성자·사실 검증·민감 정보 금지)이 화면 구조로 강제 노출되는가(사람 손 회귀 제거)
- FastAPI
- React
- LLM
- Education
2026Solo BuilderStarted(First Commit date)EMBA 119 Challenge
EMBAScreenshots · 6"11.900초에 정확히 멈추기" 타이밍 감각 게임 - SKKU EMBA 이벤트용 MVP.
QA측정 정확성이 곧 신뢰 - 클라이언트 시계를 그대로 믿지 않고 서버 시간 기준으로 재검증하는가
- React
- FastAPI
- Render
2026Solo BuilderStarted(First Commit date)EMBA E-Members
EMBAScreenshots · 3성균관대 EMBA 원우들을 위한 커뮤니티 앱 - 원우수첩(인명부), 명함 QR 공유, 멘토링, 일정·게시판·식단을 하나로. 6월 양 스토어 출시 뒤 2.0 라운드에서 명함·복지·예약·도시락 키오스크·학위계산기·선거까지 넓혔고, 그 라운드는 백엔드와 어드민까지 사실상 혼자였다.
QA인수 코드의 경계(토큰 만료·재로그인·네트워크 실패·빈 상태·푸시 미수신)가 데모가 아니라 실제 원우 손에서 견고한가
- Flutter
- NestJS
- Firebase
- iOS
- Android
- AWS
2026PM · 개발Started(First Commit date)EMBA Typhoon
EMBA대학원 골프 동호회 운영 시스템 - 라이브 스코어링부터 결제까지.
QA라이브 스코어링 - 라운드 중 여러 명이 동시에 점수를 입력해도 집계가 어긋나지 않는가(동시성)
- Next.js
- Express
- Prisma
2026Solo BuilderStarted(First Commit date)Cohort Connect
EMBAScreenshots · 5대학원 동기 코호트 운영을 한 도메인에 묶은 웹앱 - 학교 도메인 OAuth로 동기만 들어오고, 수요조사·공지·익명 피드백·비상연락망·모임방을 한 곳에서.
QA@g.skku.edu 도메인 제한 OAuth가 실제로 동기 외 계정을 막는가 - 우회 경로가 없는가
- Next.js 15
- Supabase
- Cloudflare Workers
2026Solo BuilderStarted(First Commit date)ClassVault
EMBA동기들과 강의 자료를 공유하는 액세스 코드 기반 아카이브.
QA액세스 코드 세션이 코드를 모르는 사람의 자료 접근을 실제로 막는가(코드 노출·재사용 경계)
- Vite
- Supabase
2026Solo BuilderStarted(First Commit date)
Experiment
6 projects말끔 (malkkeum)
ExperimentCLI쇼핑몰·구독 서비스 화면을 전자상거래법 기준으로 배포할 때마다 다시 검진하는 도구의 v0 - 법 조문을 테스트 케이스로 바꾸고, 판정은 4단계 검진 언어로만, 모델이 정한 결과는 사람 검수 전엔 내보내지 않는다. 3주 검증 중이고 결과는 아직 없다.
QA법 조문을 테스트 케이스로 바꿀 수 있는가 - 규칙 하나가 YAML 정의(키워드, 같이 있어야 하는 말, 깊이 상한)와 픽스처 HTML과 AC 테스트로 이뤄진다. V-1은 AC 18개가 전부 테스트로 박혀 있고, 테스트 커밋이 구현 커밋보다 먼저인 게 git에 세 번 남아 있다
- TypeScript
- Playwright
- Local LLM
- Rule catalog
- QA
2026Solo BuilderStarted(First Commit date)Speak Five
ExperimentScreenshots · 3직무와 상황에 맞는 영어 문장 5개를 듣고, 따라 말하고, 영어를 가린 채 회상하는 학습 앱의 초기 골격 - 18시간, 커밋 8개로 선택 화면·시간대 규칙·테스트 게이트까지만 세웠고, 문장은 아직 0개다. 제품 이름도 가칭이다.
QA출시 코드와 테스트 코드가 같은가 - Playwright는 dev 서버가 아니라 production 빌드(preview, 4174 포트)에 붙는다. 설정 파일 주석이 이유를 적어뒀다. 출시되는 건 production 빌드이기 때문
- React
- TypeScript
- Vite
- Capacitor
- Playwright
- Temporal
- QA
2026Solo BuilderStarted(First Commit date)필기억 (inkrecall)
ExperimentMobileApple Pencil로 쓴 풀이를 AI가 단계별로 채점하고, 약점을 분석해 유사문제를 만들고, 간격 반복(FSRS)으로 복습시키는 iPadOS 전용 AI 오답노트 - 얇은 SwiftUI 클라이언트 + 두꺼운 FastAPI 백엔드.
QA채점 출력이 항상 구조화 스키마(단계별 정오·오류유형·근거)를 지키는가 - 근거 없는 판정을 파싱 단계에서 걸러냄
- SwiftUI (iPadOS)
- PencilKit
- FastAPI / Python
- Multimodal LLM
- FSRS (SRS)
2026Solo BuilderStarted(First Commit date)AI Project Loop Lab
Experiment한 문단짜리 아이디어를 Project Brief · MVP 스코프 · 개발 이슈 · 다음 단계로 늘려 한 장의 Markdown으로 export하는 0-1 실험 도구.
QA빈·모호·초장문 한 문단 입력에서 4개 섹션(Brief·MVP 스코프·이슈·다음 단계) 생성이 깨지지 않는가
- Next.js
- TypeScript
- Claude Code
2026Solo BuilderStarted(First Commit date)Weather 1-Week
ExperimentCloudflare Workers + Open-Meteo로 만든 7일 날씨 - 도시(KO/EN) 검색·내 위치 모두 지원, API 키 필요 없음.
QA도시 검색이 KO/EN 두 표기·오타·존재하지 않는 지명에서 안전하게 처리되는가
- Cloudflare Workers
- TypeScript
2026Solo BuilderStarted(First Commit date)Gyroball RPM
Experiment자이로볼의 RPM을 카메라/오디오 주파수로 실시간 측정하는 안드로이드 앱.
QA같은 조건에서 재현 가능한가 - 정확도보다 "일관되게 틀리는 오차 패턴"이 먼저(보정 가능성의 전제)
- React Native
- Kotlin
- Monorepo
2026Solo BuilderStarted(First Commit date)
Archived
3 projectsEasy Trend Explainer
ArchivedScreenshots · 6오늘의 트렌드를 AI가 4개 카테고리로 풀어주는 매일 업데이트 서비스.
QA매일 자동 생성 - 한 번 실패가 며칠치로 번지지 않게 회귀를 막는가(보이지 않는 누적 회귀)
- Next.js
- AI
- Vercel KV
2026Solo BuilderStarted(First Commit date)James Company
ArchivedQA 생태계를 위한 All-In-One QA 커뮤니티 플랫폼 - 공익 활동으로 전환 후 일시 정지.
QA여러 기능(게시·자료·프로필 등)을 한 플랫폼에 묶었을 때 접근 권한 경계가 입문자·실무자·리드 사이에서 새지 않는가
- QA
- Community
- Platform
2025FounderStarted(First Commit date)CaseMaker (Figma2Checklist)
Archived문서 URL(공개 Notion 페이지)을 넣으면 GPT-4o-mini가 QA 테스트 체크리스트를 초안·그룹핑해주는 풀스택 도구 - "디자인·문서에서 QA로"(shift-left)를 인증·결제까지 얹어 검증한 실험.
QA자동 생성 체크리스트의 정확도·누락을 어떻게 측정하고 회귀를 막는가 - 항목이 그럴듯해도 이 검증 없이는 신뢰가 안 선다(이 프로젝트가 못 푼 핵심 난제)
- QA
- OpenAI
- FastAPI
- React
- SaaS
2025Solo BuilderStarted(First Commit date)