React 경험 없이 Cursor로 자체 TMS를 만든 QE팀 리드의 바이브 코딩기
29CM QE팀 리드가 1년째 수정 안 되는 상용 TMS 버그·Import 실패에 막혀, React 경험 없이 Cursor만으로 100% 바이브 코딩으로 자체 TMS(29TMS)를 만들어 2025년 10월부터 실무 운영.
요약
무신사 29CM QE팀 리드가 만든 자체 Testcase Management System "29TMS" 작업기. 상용 TMS의 버그 1년 미수정·Section 계층구조 문제·Testcase Import 실패가 누적되면서 점점 신규 케이스는 구글 스프레드시트에 쌓이고 등록된 케이스만 실행하는 반쪽 사용 상태가 됨. Cursor를 들고 React 경험 없이 100% 바이브 코딩으로 자체 시스템 구축. 1.6.1 버전까지 릴리즈, 2025년 10월 21일부터 본격 실무 운영. API 응답 시간이 초 단위에서 ms 단위로 옮겨짐.
내용
QE팀이 쓰던 상용 TMS는 약 10년 사용 이력이 있는 도구. 비용 대비 사용성에 대한 불만이 계속 쌓여왔는데, 특히 지원 속도가 답답한 게 컸음. 1년 동안 미수정 상태로 남은 버그와 Section 계층구조 기능 버그가 Testcase Import를 흔들어, 신규 케이스 등록은 줄고 이미 들어온 케이스만 실행하는 데 머무름. 그 결과 신규 테스트케이스는 구글 스프레드시트로 빠지면서 도구 두 개를 병행하는 반쪽짜리 운영이 굳어짐.
이 상태에서 Cursor를 직접 사용해보자는 결정. 글쓴이는 Python 정도만 다뤄봤고 React 경험은 없음. 정한 건 React로 만든다는 한 가지뿐, 나머지 기술 스택은 처음에 비워두고 시작. 본문 줄기는 두 갈래 — 바이브 코딩 진행 중 알게 된 한계점·노하우 + 만들어진 29TMS의 실제 기능.
초반엔 그럴듯한 화면이 척척 만들어지는 데 감탄하지만, 기능이 늘어날수록 두 한계가 드러남. 첫째, AI는 모든 걸 기억하지 못해 방금 짠 기능을 다음 작업에서 불필요하다고 판단해 지우거나 고치는 일이 잦음. 둘째, 개떡같이 말하면 개떡같이 알아들음 — 추상적인 프롬프트는 비효율적인 코드를 산출하고, 실제 원인은 사람의 프롬프트 쪽에 있음.
해결 / 접근
프롬프트 3 Level
부딪혀보면서 정리한 프롬프트 단계 — 학습 데이터 양과 기능 복잡도에 따라 셋으로 나뉨.
- Level 1 — 학습 데이터가 풍부한 기능(예: 로그인)은 단순 프롬프트만으로도 구현 OK
- Level 2 — Level 1로 안 되는 기능. 추상 단어를 빼고 동작 Flow와 화면 구성을 상세히 적음. 기능 간 연관성도 같이 작성
- Level 3 — 그래도 안 되면 시스템 구조 자체를 직접 설계해서 프롬프트로 넘김. DB Table 구조, API 응답 프로퍼티까지 미리 짜서 그 데이터·구조 위에서 기능이 돌도록 명세
대부분 Level 1~2로 진행하고, 정말 안 풀릴 때만 Level 3로 내려감. QA 직무 특성상 현상·기능을 자세히 풀어쓰는 습관이 들어 있어 디테일한 프롬프트 작성에 그대로 도움이 됨.
디버깅 흐름
간단한 수정 요청으로 안 풀리는 버그는 두 단계로 진행. 먼저 Cursor에 로그 추가를 요청해 원인을 직접 파악하게 함. 그래도 안 잡히면 논리적으로 문제될 만한 상황을 계속 질문하면서 디버깅 — 이 과정에서 의외의 위치에서 원인이 나오는 경우가 있음. Cursor가 한 번도 손대지 않은 코드 영역이라도 의심되면 끝까지 추적해 그 코드가 원인이었던 케이스도 있었음.
구현된 기능 (1.6.1 기준)
- 로그인 — 회원가입 후 관리자 승인 필수, 관리자 메뉴(승인·비밀번호 초기화), Access Token 인증 모든 기능 사용 시 필수
- CSV Import — 시스템 필드와 헤더가 같으면 Auto mapping. Import 화면에서 폴더 즉시 생성 가능
- 플랜 생성 — 폴더 선택 → 플랜 생성. 활성 플랜에서 전체 진행률·결과 개수 확인
- 테스트 실행 — 개별/벌크 결과 입력, 메모(링크 자동 적용)
- 아카이브 & PDF 다운로드 — 활성 플랜 완료 처리, PDF 단건·벌크 다운로드
- Swagger API — 거의 모든 기능을 API로 사용 가능. QA리포트 자동화 봇이 상용 도구 API에서 29TMS API로 교체 완료
총 제작 기간 약 3개월(업무 병행). 8월 초기 기획 시 정한 MVP 구현 목록을 1.6.1 버전에서 전부 완료.
결과 / 참고
- 적용 시점: 2025년 10월 21일부터 실무 사용 시작
- API 응답 시간: 상용 TMS의 초 단위 → 29TMS의 ms 단위
- 사용자 부담: 상용 TMS 라이선스 비용 0
- 즉시 대응: 문제 발생·기능 추가 요청 시 자체 처리
- 기술 스택: React + Node.js (시작 시 React 외엔 미정)
- 글쓴이가 정리한 핵심 — "언어에 대한 이해도보다 만들려는 기능을 정확히 이해하는 것이 더 중요". DB·API 응답 프로퍼티까지 상세히 짜서 요청한 경우 원하는 기능에 가깝게 구현됨
- 시리즈: 후반부 Cursor 활용 노하우는 별도 글에서 다룰 예정
- 출처: 무신사 기술 블로그, "AI와의 성공적인 첫 Co Work — 바이브 코딩으로 탄생된 맞춤형 Testcase Management System (29TMS)"