소개
시도하고자 했던 것과 그 이유
핵심 동기: 학습지를 자동으로 생성해 주는 도구를 만들고 싶었습니다. 나 혼자 내 컴퓨터에서만 사용하는 개인용 툴로, 배포나 다중 사용자를 고려하지 않고 최대한 단순하게 만드는 것이 목표였습니다.
V1 → V2로 전환한 이유:
V1에서 처음부터 원하는 여러 기능을 모두 추가하려다 보니 코드가 너무 복잡해짐
감당 불가 수준으로 커진 코드베이스
V2는 최소 기능만으로 완전히 새로 시작하는 방식 선택
구체적인 목표:
사용할 수 있는 퀄리티의 학습지가 생성되면 성공
Zero-dependency Node.js 로컬 서버 + Google Gemini 무료 API 조합
결론: 사용 가능한 퀄리티의 학습지가 만들어지지 않아 V2도 실패로 판단했습니다.
진행 방법
사용한 도구와 변화
도구
역할
특징
안티그래비티
주요 질문 및 구현 방향
메인 도구, 가장 많이 활용
Claude
보조 질문 및 분석
메인 보조 도구
ChatGPT
추가 시각 확보
다양한 관점이 필요할 때 활용
Google Gemini API
학습지 생성 엔진
무료 버전 사용
Node.js
로컬 서버 구동
Zero-dependency, 개인 컴퓨터 전용
도구 사용 전략: 여러 도구를 동시에 열어두고 활용. 안티그래비티를 메인으로 사용하다가 답변이 부족하거나 다른 시각이 필요하다 싶으면 클로드나 GPT로 전환하는 방식.
프롬프트 전략
V1을 회고하면서 나온 부족했던 점을 보완하는 것부터 시작했습니다.
V1 회고에서 나온 문제점:
- 너무 많은 기능을 한 번에 구현하려 함
- 코드 복잡도 급증
V2 방향 설정:
- 최소 기능만 구현
- 개인 컴퓨터 전용 (배포 불필요)
- Zero-dependency 구조
핵심 버그와 해결 과정
가장 애먹었던 부분: API가 안 되는 줄 알았던 타임아웃 문제
❌ 초기 증상:
API 연동이 전혀 안 되는 것처럼 보임
학습지 생성 없이 그냥 멈춤
🔍 원인 발견:
Node.js undici fetch의 기본 타임아웃: 30초
Gemini API 응답 시간 > 30초
✅ 해결:
fetch → Node.js https 모듈로 교체
타임아웃 설정: 30초 → 120초
📊 결과:
불완전하지만 학습지가 생성됨!
이 문제를 해결하고 나서야 실제 변화가 생겼기 때문에 V2에서 가장 만족스러웠던 순간이었습니다.
소요 시간 및 환경
항목
내용
기간
약 3일
투자 시간
많은 시간 투자 못함 (작업 중 일부)
API
Google Gemini 무료 버전
환경
개인 컴퓨터 전용, Zero-dependency Node.js
결과와 배운 점
성공한 부분
항목
상태
의의
V2 구조 재설계
✅ 완료
V1 복잡도 문제 해소, 최소 기능으로 리셋
타임아웃 버그 해결
✅ 완료
API 연동 성공, 학습지 생성 확인
학습지 생성 자체
🟡 부분 성공
완벽하지 않지만 생성은 됨
하지만:
생성된 학습지의 퀄리티가 사용 가능한 수준에 미치지 못함
V2 전체적으로는 실패로 판단
여전히 미해결된 부분
❌ 학습지 퀄리티 미달
문제: AI가 생성하는 학습지 퀄리티가 낮음
- 난이도 조율 부정확
- 레벨 구분 없이 전체 대응 시도
근본 원인 1: 파인튜닝 부재
→ 고품질 예시 데이터를 학습시키지 못함
→ AI가 기준점 없이 생성
근본 원인 2: 너무 큰 뼈대만 잡은 설계
→ "AI가 알아서 해주겠지"라는 가정
→ 세세한 구현 계획 없이 진행
→ 퀄리티 통제 불가
가장 어려웠던 점과 시행착오
🔴 기능 욕심이 가장 큰 실패 원인
V1:
처음부터 원하는 기능 전부 추가 시도
→ 코드 복잡도 급증
→ 수습 불가 → V2로 처음부터 재시작
V2:
최소 기능으로 줄이는 데는 성공했지만
→ 세세한 개발 플랜 없이 진행
→ 큰 그림만 잡고 "AI가 알아서 해주겠지"
→ 퀄리티 통제 실패
공통 패턴:
욕심 또는 막연한 기대 → 구체성 부족 → 실패
배운 점과 꿀팁
1️⃣ MVP 먼저
기능 욕심을 버리고 가장 핵심 기능 하나만 먼저 작동시키기. V1처럼 처음부터 모든 기능을 넣으려다 전체가 망가지는 패턴 반복 금지.
2️⃣ 세부 플랜 필수
큰 뼈대만 잡는 것으론 부족. "AI가 알아서 해주겠지"는 통하지 않음. 단계별 구체적 구현 계획을 먼저 수립하고 시작해야 함.
3️⃣ 파인튜닝의 필요성
퀄리티 통제를 위해서는 고품질 예시 데이터를 학습시키는 과정이 필요함. 기반 데이터 없이 생성만 시키면 기준점이 없어 퀄리티가 들쭉날쭉해짐.
💡 잊지 말자:
가장 핵심 기능 하나를 먼저 정하고, 그것부터 실현시키기.
처음부터 너무 욕심내지 않기.
앞으로의 계획
V3 방향
Step 1. 아주 세세한 구동 플랜 먼저 수립
→ 단계별 체크리스트 형태로 작성
→ 각 단계의 성공 기준 명확히 정의
Step 2. 지원 레벨 특정
→ 전체 레벨 대응 X
→ 특정 레벨 하나에 집중
Step 3. 핵심 기능 하나부터 완성
→ 해당 레벨에서 학습지가 제대로 생성되면 성공
→ 완성 후 점진적 확장
개발에 대한 이해가 전혀 없이 막 해본 거라 너무 어렵네요,,
조급한 마음을 좀 내려놓고 하나씩 배워 가려고 합니다.