지난 글에서는 AI Meta Clean을 바이브코딩하기 위한 프로젝트 환경과 하네스를 세팅했습니다.
이번에는 실제 제품 개발의 첫 단계인 제품 기획을 진행했습니다.
전체 과정에서 현재 위치는 여기입니다.
아이디어 발견
프로젝트 환경 세팅
제품 기획 ← 현재
기술 스택과 아키텍처 결정
MVP 개발
배포
사용자 모집
출시와 홍보
실제 반응과 개선
저는 AI와 개발할 때 TASK부터 만듭니다
AI와 개발하다 보면 대화는 길어지고, 결정은 흩어지고, 세션이 바뀔 때마다 같은 설명을 반복하게 됩니다.
그래서 저는 작업을 하나의 되돌릴 수 있는 단위로 나눕니다.
기능 하나, 설계 하나, 문서 하나도 각각 TASK가 될 수 있습니다.
이번 TASK는 다음과 같습니다.
TASK-001
AI Meta Clean 제품 기획
TASK를 만들기 위해 제가 만든 vibeops에서 다음 명령어를 실행했습니다.
vibeops task add
작업 내용을 입력하자 TASK 문서와 작업 브랜치가 자동으로 생성됐습니다.
TASK 문서
docs/tasks/TASK-001-ai-meta-clean-project-product-planning.md
작업 브랜치
task/001-ai-meta-clean-project-product-planning
현재 브랜치를 확인하면 자동으로 작업 브랜치에 체크아웃된 상태입니다.
git branch
develop
main
* task/001-ai-meta-clean-project-product-planning
제품 기획도 코드 작업과 마찬가지로 별도 브랜치에서 진행합니다.
기획 방향이 잘못되더라도 develop에는 영향을 주지 않고, 검토가 끝난 뒤에만 병합할 수 있기 때문입니다.
AI에게 기획서를 써달라고 하지 않았습니다
저는 처음부터 이렇게 요청하지 않았습니다.
AI Meta Clean 제품 기획서를 작성해 줘.
이렇게 하면 빠르게 그럴듯한 문서는 나오지만, 제가 만들고 싶은 제품이 아니라 AI가 이름만 보고 추측한 제품이 나올 가능성이 큽니다.
그래서 먼저 질문을 요청했습니다.
AI Meta Clean이라는 제품 기획을 하려고 합니다.
저에게 필요한 질문을 해주시고 분석이 완료되면
TASK-001-ai-meta-clean-project-product-planning.md에 정리해 주세요.
AI가 먼저 물어본 내용은 대략 다음과 같았습니다.
-
AI Meta Clean이 정리하려는 메타데이터는 무엇인가?
-
주요 고객은 누구인가?
-
사용자는 어떤 상황에서 이 제품을 사용하는가?
-
해결하려는 핵심 문제는 무엇인가?
-
첫 출시는 웹, 앱, 확장 프로그램, API 중 어떤 형태인가?
-
MVP에 반드시 필요한 기능과 제외할 기능은 무엇인가?
-
파일 처리와 보안 원칙은 무엇인가?
-
참고하는 서비스와 원하는 제품 톤은 무엇인가?
이 질문에 하나씩 답하면서 제품의 범위가 점점 선명해졌습니다.
제가 생각하는 AI와의 제품 기획은 문서를 대신 써달라고 하는 일이 아닙니다.
AI가 질문하고, 사람이 답하고, 다시 AI가 빈틈을 찾는 티키타카의 과정입니다.
원래 생각했던 제품은 조금 달랐습니다
사실 AI Meta Clean을 처음 떠올렸을 때는 일반적인 EXIF나 위치정보뿐 아니라, AI 생성·편집 과정에서 남은 메타 정보도 확인하고 정리하는 서비스를 생각했습니다.
특정 플랫폼을 속이거나 위험한 목적으로 사용하려는 것은 아니었습니다.
내 파일 안에 어떤 정보가 들어 있는지 확인하고, 필요하지 않은 정보는 사용자가 직접 관리하게 하자는 취지였습니다.
그런데 GPT와 기획하다가 예상하지 못한 벽을 만났습니다.
제가 써본 AI 중 GPT는 아마 가장 윤리적인 놈입니다.
제가 조금이라도 윤리적으로 어긋나는 일을 할 가능성이 보이면 절대 그냥 넘어가지 않습니다. ㅋㅋㅋ
위험한 목적이 아니라고 설명했지만, GPT는 AI 생성 사실을 숨기거나 플랫폼 탐지와 표시를 우회하는 용도로 사용될 가능성을 계속 경계했습니다.
결국 기획서에는 다음 내용이 아주 단호하게 들어갔습니다.
- AI 생성 사실을 일반 사진처럼 위장하는 기능 제외
- 플랫폼의 AI 탐지·라벨링 우회 기능 제외
- 특정 플랫폼에서 AI 이미지로 인식되지 않는다는 보장 제외
처음에는 다시 설명하고 설득해 볼까 했지만, GPT를 설득할 힘도 없고 사실 설득할 수도 없습니다.
첫 번째 TASK부터 실랑이하다가 끝나지 않을 것 같아서 결론을 내렸습니다.
GPT가 안 된다고 하는 부분은 빼고 먼저 진행하자. ㅋㅋㅋ
그래서 현재 MVP는 이미지 파일 안의 개인정보와 불필요한 메타데이터를 확인하고 정리하는 프라이버시 도구로 범위를 좁혔습니다.
AI Meta Clean은 어떤 제품인가
기획 과정에서 제품의 한 줄 정의는 이렇게 정리됐습니다.
AI Meta Clean은 이미지 파일에 남아 있는 위치·기기·편집 이력 등 불필요한 메타데이터를 확인하고, 원본을 보관하지 않은 채 정리된 파일을 내려받게 하는 간편한 웹 서비스입니다.
단순히 메타데이터를 삭제하는 서비스가 아니라 다음 경험을 제공하는 것이 핵심입니다.
-
이미지 안에 어떤 정보가 들어 있는지 보여준다.
-
사용자가 제거할 정보를 선택할 수 있게 한다.
-
실제로 제거된 정보와 남은 정보를 알려준다.
-
정리된 파일을 바로 내려받게 한다.
-
원본과 결과 파일을 영구 보관하지 않는다.
초기 사용자는 누구인가
초기 대상 사용자는 세 그룹으로 정리했습니다.
| 사용자 | 사용하는 상황 | 필요한 것 |
|---|---|---|
| 개인 사용자 | 사진을 커뮤니티, 마켓, SNS에 올리기 전 | 위치와 촬영기기 정보 확인 |
| 콘텐츠 제작자 | 고객이나 플랫폼에 이미지를 전달하기 전 | 파일을 일관된 기준으로 정리 |
| 바이브코딩 개발자 | 데모, 문서, 랜딩페이지에 이미지를 넣기 전 | 설치 없이 빠르게 점검하고 정리 |
특히 바이브코딩을 하다 보면 스크린샷, 휴대전화 사진, AI 생성 이미지를 서비스나 문서에 자주 사용합니다.
그때마다 파일 안에 어떤 정보가 들어 있는지 확인하기는 쉽지 않습니다.
제가 직접 자주 겪는 문제이기도 합니다.
MVP에 포함한 기능
첫 번째 버전은 회원가입 없이 이미지 한 장을 처리하는 흐름에 집중합니다.
이미지 업로드
↓
메타데이터 확인
↓
제거 항목 선택
↓
정리 실행
↓
결과 확인
↓
다운로드
MVP에 포함되는 기능은 다음과 같습니다.
-
드래그 앤 드롭 및 파일 선택
-
EXIF, XMP, IPTC 등 메타데이터 조회
-
GPS 위치정보 확인
-
촬영기기와 사용 소프트웨어 정보 확인
-
제거할 항목 선택
-
전체 메타데이터 정리
-
제거된 항목과 유지된 항목 표시
-
새 파일명으로 즉시 다운로드
-
원본과 결과 파일 자동 삭제
처리 결과도 단순히 완료라고 보여주면 안 된다고 생각했습니다.
사용자는 다음 내용을 확인할 수 있어야 합니다.
-
무엇이 제거됐는가
-
무엇이 남았는가
-
제거하지 못한 항목은 무엇인가
-
파일이 재인코딩됐는가
-
화질이나 용량이 달라졌는가
이 부분이 제품의 신뢰를 만드는 핵심입니다.
MVP에서 제외한 기능
초기 버전에서는 다음 기능을 넣지 않기로 했습니다.
-
사용자 계정
-
처리 이력
-
여러 파일 일괄 처리
-
API와 CLI
-
유료 구독
-
장기 파일 보관
-
모든 고급 이미지 포맷 지원
-
AI 탐지 회피 기능
-
AI 생성 사실을 일반 사진처럼 위장하는 기능
-
특정 플랫폼의 판정 결과 보장
좋은 아이디어가 떠오를 때마다 기능을 추가하면 MVP는 끝나지 않습니다.
이번에는 한 장의 이미지를 안전하고 이해하기 쉽게 정리하는 경험만 완성하기로 했습니다.
보안과 프라이버시 원칙
이미지 파일을 다루는 서비스이기 때문에 기능보다 먼저 원칙을 정했습니다.
| 영역 | 원칙 |
|---|---|
| 파일 보관 | 원본과 결과 파일을 영구 보관하지 않음 |
| 데이터 사용 | 처리 파일을 학습이나 다른 목적으로 사용하지 않음 |
| 접근 제어 | 사용자 세션별로 파일 접근을 격리 |
| 다운로드 | 추측 가능한 다운로드 주소를 사용하지 않음 |
| 결과 표시 | 제거 불가 항목과 재인코딩 여부를 정확히 안내 |
| 사용성 | 로그인 없이 핵심 흐름을 완료 |
| 모바일 | 모바일에서도 업로드와 다운로드 가능 |
브라우저에서 직접 처리할지 서버에 업로드해서 처리할지는 아직 정하지 않았습니다.
이 부분은 다음 TASK에서 기술적으로 검토한 뒤 결정할 예정입니다.
제품의 성공은 무엇으로 판단할까
초기 성공 지표도 함께 정리했습니다.
-
업로드부터 다운로드까지 완료율
-
메타데이터 확인 후 정리를 실행한 비율
-
정리 후 다운로드 완료율
-
파일 형식별 처리 실패율
-
자동 삭제 성공률
-
제거된 정보와 남은 정보를 사용자가 이해했는지
반대로 다음 항목은 성공 지표에서 제외했습니다.
특정 플랫폼에서 일반 사진으로 인식되는가?
AI 라벨이 표시되지 않는가?
AI 탐지를 통과하는가?
AI Meta Clean이 직접 통제하거나 보장할 수 있는 영역이 아니기 때문입니다.
사람이 마지막으로 문서를 검토했습니다
AI가 제품 기획 문서를 완성했다고 바로 확정하지는 않았습니다.
제가 직접 읽으면서 다음을 확인했습니다.
-
내가 생각한 제품 방향과 맞는가
-
AI가 과도하게 해석한 부분은 없는가
-
MVP 범위가 너무 크지 않은가
-
제외할 기능이 명확한가
-
다음 TASK를 시작할 만큼 구체적인가
-
제품 원칙과 기능이 충돌하지 않는가
이것이 제가 생각하는 휴먼 인 더 루프입니다.
AI는 질문하고, 선택지를 만들고, 빈틈을 찾는 데 강합니다.
하지만 어떤 제품을 만들 것인지 결정하고 책임지는 것은 결국 사람입니다.
기획이 끝났으니 TASK를 종료했습니다
제품 기획을 검토한 뒤 다음 명령어로 TASK를 종료했습니다.
vibeops task ship
task ship은 단순히 커밋과 푸시만 하지 않습니다.
-
TASK 결과 정리
-
테스트 결과 기록
-
Git 커밋
-
원격 저장소 푸시
-
CI 실행
-
PR 생성
-
TASK 상태를
Shipped로 변경
이후 PR을 develop에 병합했습니다.
vibeops task merge
마지막으로 작업 브랜치를 정리했습니다.
vibeops task sync
전체 흐름은 다음과 같습니다.
vibeops task add
↓
AI와 계획 및 작업
↓
vibeops task ship
↓
vibeops task merge
↓
vibeops task sync
↓
다음 TASK
현재 브랜치는 다시 깔끔하게 정리됐습니다.
* develop
main
TASK 기록만 남기면 부족합니다
작업 결과가 전체 구조에 영향을 준다면 TASK 문서 외의 프로젝트 문서도 함께 수정해야 합니다.
docs/project/
├── 03-architecture.md
├── 05-current-state.md
└── 06-decisions.md
| 문서 | 기록하는 내용 |
|---|---|
03-architecture.md |
현재 시스템 구조와 데이터 흐름 |
05-current-state.md |
완료된 작업과 다음 작업 |
06-decisions.md |
중요한 제품·기술 결정과 이유 |
AI 코딩에서 가장 자주 사라지는 것은 코드가 아니라 맥락입니다.
왜 이 기술을 선택했는지, 어떤 기능을 제외했는지, 현재 어디까지 진행됐는지가 대화에만 남아 있으면 세션이 바뀌는 순간 사라집니다.
그래서 TASK와 프로젝트 문서를 계속 최신화합니다.
AI에게 모든 것을 기억시키는 것이 아니라, 필요할 때 현재 사실을 다시 읽게 하는 방식입니다.
다음 단계는 기술 스택과 아키텍처 결정입니다
현재 전체 과정에서의 위치는 다음과 같습니다.
아이디어 발견
프로젝트 환경 세팅
제품 기획 ← 현재
기술 스택과 아키텍처 결정
MVP 개발
배포
사용자 모집
출시와 홍보
실제 반응과 개선
다음 TASK에서는 제품 기획에서 정한 요구사항을 기준으로 기술 스택과 아키텍처를 결정합니다.
검토할 내용은 대략 다음과 같습니다.
-
JPEG, PNG, WebP, HEIC 지원 가능 여부
-
EXIF, XMP, IPTC 처리 범위
-
AI 생성·편집 도구 관련 메타데이터 종류
-
C2PA와 콘텐츠 자격 증명 처리 원칙
-
브라우저 처리와 서버 처리 비교
-
재인코딩과 화질 손실 가능성
-
처리 전후 메타데이터 검증 방법
-
파일 크기와 처리 성능
-
악성 파일과 비정상 이미지 방어
-
파일 보관과 자동 삭제 방식
먼저 Next.js부터 선택하고 거기에 제품을 끼워 맞추지는 않을 생각입니다.
제품의 요구사항과 파일 처리 특성을 확인한 뒤, 그 결과에 맞는 기술을 선택하겠습니다.
아직 화면도 없고 클릭할 수 있는 버튼도 없습니다.
심지어 원래 생각했던 기능 중 일부는 GPT에게 막혀서 기획에서 빠졌습니다. ㅋㅋㅋ
그래도 AI Meta Clean은 이제 머릿속의 아이디어만은 아닙니다.
제품의 목표와 사용자, MVP 범위와 하지 않을 일이 문서로 남았고, Git에 커밋됐으며 PR을 거쳐 develop에 통합됐습니다.
다음에는 이 제품을 실제로 구현하기 위한 기술 스택과 아키텍처를 결정해 보겠습니다.
빌드인퍼블릭은 계속됩니다.
이 글을 goodtek 블로그에서 확인하고 싶으시면 👉️ [블로그에서 확인하기]