들어가며: 복잡해지는 개발과 '쓰는 시간'의 한계
안녕하세요, TubeLingo 개발팀입니다! 여러분이 사용하고 계신 어학 학습 플랫폼 'TubeLingo'는 매일 새로운 기능이 추가되고 있습니다. 하지만 기능이 늘어날수록 프로그램 코드는 점점 더 복잡해졌습니다.
그 결과, 엔지니어가 '코드를 작성하는 시간' 보다 '사양을 확인하고 에러 원인을 찾는 시간' 이 더 길어지는 문제에 직면했습니다.
그래서 우리는 개발 도구를 기존의 'VS Code'나 'Cursor'에서 구글의 최신 툴인 'Google Antigravity' 로 과감하게 전환했습니다. 이번 글에서는 왜 그런 선택을 했는지, 그리고 AI와 함께 일하는 팁을 공유하려 합니다.
AI는 단순한 '보조'에서 '파트너'로 진화했습니다.
1. 툴 선정: 부조종사(Co-pilot)인가, 실행 부대(Agent)인가
전환에 앞서 우리는 두 가지 강력한 AI 툴을 비교했습니다.
✈️ Cursor (커서)
- 컨셉: 부조종사 (Co-pilot)
- 역할: 인간이 쓰고, AI가 보완
- 강점: 단일 파일의 빠른 코딩
🤖 Google Antigravity
- 컨셉: 실행 부대 (Agent)
- 역할: 인간이 지시, AI가 구현
- 강점: 프로젝트 전체의 기능 구현
왜 Antigravity를 선택했나요?
TubeLingo와 같은 복잡한 앱 개발은 단순히 코드를 적는 것뿐만 아니라, '명령어를 실행하고, 브라우저에서 동작을 확인하고, 에러를 고치는' 일련의 과정이 필요합니다.
Antigravity는 AI가 스스로 '손'을 사용하여 이러한 작업을 자율적으로 수행할 수 있다는 점이 결정적이었습니다.
2. AI에게 '손'이 생겼다! 놀라운 기능 'Skills'
Antigravity를 사용하며 가장 놀라웠던 것은 'Skills(스킬)' 라는 기능입니다. 이는 문자 그대로 AI에게 손과 발을 달아주는 것입니다.
- Terminal Skill: AI가 스스로 명령어를 실행하고, 에러가 발생하면 로그를 읽고 수정안을 생각합니다.
- File Edit Skill: 제안만 하는 것이 아니라, 실제로 파일을 수정하고 저장합니다.
- Browser Skill: AI 전용 브라우저를 띄워 버튼을 클릭하며 동작 테스트를 수행합니다.
예를 들어, "라이브러리 업데이트를 확인해줘"라고 부탁하면, AI는 스스로 조사하고 결과를 리포트로 제출합니다. 사람은 그걸 보고 "OK"만 하면 되는 것이죠.
3. 똑똑한 AI 모델 전략
AI에게도 '특기'가 있습니다. 우리는 비용과 성능의 균형을 위해 두 가지 모델을 나누어 사용합니다.
- Gemini 3 Pro (메인 담당)
- 매우 빠르며, 방대한 양의 코드(컨텍스트)를 한 번에 읽을 수 있습니다. 평소 개발의 90%는 이것으로 해결됩니다.
- Claude 3.5 Sonnet (전문가 담당)
- 복잡한 로직이나 도저히 해결되지 않는 문제에 직면했을 때 '세컨드 오피니언(Second Opinion)'으로 활용합니다.
4. AI를 지휘하는 요령: '컨텍스트 관리'
AI는 매우 똑똑하지만, 너무 많은 정보를 한 번에 주면 혼란스러워하며 '할루시네이션(거짓말)' 을 할 수 있습니다. AI를 잘 지휘하기 위해서는 정보를 주는 방법(컨텍스트 관리)이 중요합니다.
① '@'로 정확하게 지시하기
"일기 기능을 고쳐줘"라고 모호하게 말하는 대신, " @DiaryInputForm.tsx 와 @useTopicLogic.ts 를 보고 수정해줘"라고 파일명을 구체적으로 지정하세요. 이것만으로도 정확도가 극적으로 올라갑니다.
② 책상 위를 깨끗하게 (Clean Desk)
AI는 '현재 열려 있는 탭'을 최우선으로 참고합니다. 다른 작업으로 넘어갈 때는 탭을 모두 닫고, 필요한 파일만 다시 여는 습관을 들이면 AI의 집중력을 유지할 수 있습니다.
③ 역검색 (Impact Analysis)
반대로, 어떤 파일을 수정해야 할지 모를 때는 AI에게 찾게 합니다. 예를 들어, " 토픽 생성 기능과 관련된 파일을 모두 찾아서 역할을 알려줘 "라고 묻기만 하면, 인간이 놓쳤던 의존 관계를 AI가 찾아냅니다.
5. AI의 '인격' 정의하기: Project Rules 활용
AI 에이전트를 단순한 '검색 도구'에서 '전속 리드 엔지니어'로 진화시키는 마지막 조각은 바로 System Prompt (Project Rules) 설정입니다.
Antigravity(및 Cursor)에서는 프로젝트 루트에 .cursorrules 라는 파일을 배치하여 AI의 행동을 영구적으로 정의할 수 있습니다. 이것은 말하자면, AI 에이전트를 위한 '입사 온보딩 자료' 와 같습니다.
TubeLingo 설정 예시
저희 프로젝트에서는 다음과 같은 규칙을 작성하여 AI에게 "리드 엔지니어 겸 멘토"의 역할을 부여했습니다.
- .cursorrules Example
- Role & Behavior
- 당신은 "TubeLingo"의 리드 엔지니어이자 전속 멘토입니다.
- 단순히 코드만 작성하지 말고, "Why"(이유)를 설명하며 개발을 이끌어주세요.
- Tech Stack (Strict)
- Framework: React + Vite
- Language: TypeScript (Any 타입 금지. 엄격한 타입 정의 필수)
- Styling: Tailwind CSS
- Backend: Netlify Functions
- Development Protocol
- Context First: 즉시 코드를 작성하지 말고, 먼저 관련 파일을 읽어(Read File) 영향 범위를 파악하세요.
- Impact Analysis: 수정에 따른 부작용을 고려하고, 구현 전에 계획을 제시하세요.
- Verification: 코드 수정 후에는 반드시 npm run dev 나 tsc 를 자율적으로 실행하여 에러가 없는지 확인하세요.
- Role & Behavior
이 설정으로 인한 변화
이 파일을 두는 것만으로 개발 경험은 극적으로 변합니다.
- "TypeScript로 써줘"라고 매번 말할 필요가 없습니다.
- AI가 항상 "Netlify Functions의 관행"을 의식하게 됩니다.
- AI가 알아서 테스트 명령어를 실행하고, 버그를 잡은 뒤 보고하게 됩니다.
도구의 기능을 100% 활용하려면 도구에 대한 '지시(Prompt Engineering)' 그 자체를 코드화하고, 프로젝트의 일부로 관리하는 것이 중요합니다.
✅ 설정 확인 방법 (Verification)
규칙 파일(.cursorrules)을 만들었다면, AI에게 정말로 그 '인격'이 깃들었는지 확인해 봅시다.
Antigravity 채팅(Ctrl + L 또는 Ctrl + E)을 열고, 새로운 세션에서 다음 질문을 던져보세요.
User: "현재 개발 모드와 당신의 역할을 확인해 주세요."
만약 설정이 올바르게 로드되었다면, AI는 다음과 같이 정의된 역할에 몰입하여 대답할 것입니다.
AI: "네, 저는 TubeLingo의 리드 엔지니어이자 전속 멘토입니다. 현재 자율 에이전트 모드(Skills 활성화)로 동작 중입니다. 지시를 내려주세요."
이 대답이 돌아온다면 온보딩은 성공입니다. AI는 이제 당신의 가장 강력한 파트너로서 움직이기 시작합니다.
마치며: 코딩에서 '디렉팅'으로
Antigravity로의 전환은 우리의 업무를 '코드를 쓰는 것'에서 'AI 에이전트를 지휘(디렉팅)하는 것' 으로 변화시켰습니다.
사소한 실수로 고민하는 시간이 줄어들고, 대신 "어떤 기능이 사용자에게 즐거움을 줄까?"라는 본질적인 설계에 더 많은 시간을 쓸 수 있게 되었습니다. AI 네이티브 개발 환경은 엔지니어를 더 높은 차원의 크리에이터로 이끌어주는 도구라고 생각합니다.
여러분도 AI와 함께 새로운 어학 학습을 시작해보세요!
유튜브의 '생생한 목소리'로 배우기 📺
동영상 URL만 입력하세요.
AI가 실제 댓글과 슬랭을 설명해 드립니다.
배운 내용을 바로 실천 ✍️
오늘 배운 표현으로 일기를 써보세요.
AI 튜터가 자연스럽게 첨삭해 드립니다.
