핵심은 좋은 프롬프트를 작성하는 능력입니다.
┌─────────────────────────────────────────┐ │ 1. 역할 → "너는 ~전문가야" │ │ 2. 맥락 → 배경 정보, 현재 상황 │ │ 3. 요청 → 구체적으로 원하는 것 │ │ 4. 형식 → 출력 형태 지정 │ │ 5. 제약조건 → 하지 말아야 할 것 │ └─────────────────────────────────────────┘
"너는 모바일 앱 기획 전문가야. (역할) 20대 직장인을 위한 건강 관리 앱을 만들려고 해. (맥락) 핵심 기능 5가지를 제안해줘. (요청) 표 형태로 기능명, 설명, 우선순위를 정리해줘. (형식) SNS 기능은 제외해줘. (제약조건)"
역할: 너는 스타트업 기획 전문가야. 맥락: 우리 팀은 워크샵에서 5시간 안에 모바일 앱을 만들어야 해. 팀원은 기획자 1명, 개발자 1명이야.
요청: 다음 조건에 맞는 앱 컨셉 3가지를 제안해줘. - 20대 대학생이 매일 사용할 만한 앱 - React Native로 5시간 안에 MVP 구현 가능 - 외부 API 최소 사용 형식: 각 컨셉마다 앱명, 한 줄 소개, 핵심 기능 3개, 타겟 사용자, 차별점을 정리해줘. 제약조건: 이미 시장에 넘치는 투두 앱, 메모 앱은 제외해줘.
역할: 너는 UX 라이터이자 UI 설계자야. 맥락: "산책메이트"라는 반려동물 산책 매칭 앱을 만들고 있어. 핵심 기능은 매칭, 채팅, 리뷰야.
요청: 1. 앱의 주요 화면 5개를 텍스트 와이어프레임으로 그려줘. 2. 각 화면의 모든 텍스트(버튼, 안내문구, 타이틀)를 작성해줘. 형식: 화면별로 구분해서, 와이어프레임과 텍스트를 함께 보여줘. 제약조건: - 한국어로 작성 - 친근하고 따뜻한 톤 - 버튼 텍스트는 4글자 이내
역할: 너는 서비스 기획 전문가야. 맥락: "산책메이트" 앱의 핵심 기능은 다음과 같아: - 산책 파트너 매칭 - 실시간 채팅 - 산책 후 리뷰
요청: 신규 사용자가 앱을 처음 열고 첫 산책을 완료하기까지의 시나리오를 단계별로 작성해줘. 형식: - 각 단계: 화면명 → 사용자 행동 → 시스템 반응 - Mermaid 다이어그램으로도 표현해줘. 제약조건: 10단계 이내로 핵심 흐름만 담아줘.
TIP: 시나리오가 명확하면 개발자가 어떤 API가 필요한지 바로 파악할 수 있습니다.
역할: 너는 React Native 시니어 개발자야. 맥락: Expo (SDK 52)를 사용하는 프로젝트야. 상태관리는 React의 useState만 사용해.
요청: 다음 와이어프레임을 기반으로 프로필 카드 컴포넌트를 만들어줘. [와이어프레임 텍스트 붙여넣기] 형식: TypeScript로 작성하고, StyleSheet도 포함해줘. 제약조건: - 외부 라이브러리 사용 금지 (Expo 내장만 허용) - Props 타입을 interface로 정의 - 접근성(accessibility) 속성 포함
역할: 너는 Cloudflare Workers 전문 백엔드 개발자야. 맥락: Cloudflare Workers + KV Store를 사용하는 프로젝트야. 데이터는 KV에 JSON으로 저장해.
요청: 사용자 프로필 CRUD API를 만들어줘. - GET /api/users/:id - POST /api/users - PUT /api/users/:id - DELETE /api/users/:id 형식: wrangler 프로젝트 구조에 맞게 작성해줘. 제약조건: - 에러 핸들링 포함 - CORS 헤더 설정 - 입력값 검증 포함
역할: 너는 디버깅 전문가야. 맥락: React Native 앱에서 아래 에러가 발생해. [에러 메시지 붙여넣기] 요청: 1. 에러 원인을 분석해줘. 2. 수정 방법을 코드와 함께 알려줘. 3. 같은 에러를 예방하는 방법도 알려줘.
제약조건: - 기존 코드 구조를 최대한 유지해줘. - 수정 전후 diff를 보여줘.
주의 (케이스 3 Red Herring): AI가 제시한 원인이 진짜 원인이 아닐 수 있습니다. 에러 메시지가 가리키는 곳과 실제 원인이 다른 경우가 많습니다. 반드시 직접 확인하세요!
AI에게 제약 조건을 알려주지 않으면?
케이스 5 교훈: 동적 스크립트(eval, new Function)는 보안과 성능 모두에 치명적입니다. AI가 이런 코드를 생성하면 반드시 거부하세요.
eval
new Function
제약 조건은 가드레일입니다. 명시하지 않으면 AI는 모든 방향으로 달립니다.
AI가 생성한 코드는 그럴듯하지만 틀릴 수 있습니다.
// AI가 생성한 코드 예시 — 정말 맞을까? const fetchData = async () => { const res = await fetch('/api/data'); const data = res.json(); // await 빠짐! setData(data); };
케이스 7 교훈: AI를 믿되, 검증하라 (Trust but Verify).
AI는 확신에 차서 없는 API, 없는 함수를 알려줄 수 있습니다.
AI의 제안은 출발점이지, 결론이 아닙니다.
좋은 프롬프트 = 좋은 결과
검증 없는 사용 = 위험한 결과