LLM 프롬프팅 마스터하기: 개발자를 위한 가이드
AI의 답변이 부실한 것은 모델의 잘못이 아닙니다. 프롬프트의 잘못입니다.
프롬프팅은 기술입니다. 특정 기법을 사용함으로써 실력을 향상시킬 수 있습니다. 더 나은 코드와 더 똑똑한 답변을 얻으려면 다음 방법들을 활용해 보세요.
구체적인 맥락 제공하기 일반적인 질문은 그만하세요.
- 나쁜 예: "이메일 유효성 검사는 어떻게 하나요?"
- 좋은 예: "Node.js Express API를 구축하고 있습니다.
email-validator패키지를 사용하여 이메일을 유효성 검사하는 방법을 알려주세요. 400 상태 코드를 포함한 에러 핸들링도 포함해 주세요."
페르소나 부여하기 AI에게 어떤 역할을 수행해야 하는지 알려주세요.
- 대신: "고유 ID를 위한 함수를 작성해 줘."
- 이렇게 시도해 보세요: "당신은 시니어 백엔드 엔지니어입니다. 타임스탬프로 정렬 가능한 전역 고유 ID를 생성하는 Python 함수를 작성해 주세요. 결정한 이유도 함께 설명해 주세요."
생각의 사슬(Chain of Thought) 활용하기 어려운 작업의 경우, AI에게 단계별로 생각하도록 요청하세요. 이렇게 하면 모델이 논리 과정을 보여주도록 유도할 수 있습니다.
- 요청 예시: "당신의 사고 과정을 단계별로 설명해 주세요: 1. 병목 구간 식별. 2. 기술 목록 작성. 3. 해결책 추천. 4. 코드 작성."
예시 제공하기 원하는 패턴을 AI에게 보여주세요. 이를 'few-shot prompting'이라고 합니다. AI가 당신의 스타일을 학습할 수 있도록 '이전(Before)'과 '이후(After)' 예시를 제공하세요.
엄격한 제약 조건 설정하기 AI가 정확하게 답변하도록 강제하세요. 요구 사항을 명확하게 나열합니다:
- 언어 버전
- 시간 복잡도
- 공간 복잡도
- 외부 라이브러리 사용 금지
작업 세분화하기 한 번에 모든 것을 요구하지 마세요. 단계별 접근 방식을 사용하세요:
- 1단계: 기본 버전 생성.
- 2단계: 에러 핸들링 추가.
- 3단계: 성능 최적화.
- 4단계: 타입 추가.
대안 요청하기 문제를 해결하는 두 가지 다른 방법을 요청하세요. 이를 통해 트레이드오프(trade-offs)를 이해하는 데 도움이 됩니다. 각 방법의 장단점을 물어보세요.
특정 형식 요청하기 AI에게 출력물을 어떻게 구성할지 알려주세요. Issues, Fixes, Performance Impact와 같은 특정 헤더를 포함한 구조화된 코드 리뷰를 요청할 수 있습니다.
피해야 할 실수:
- 너무 짧게 말하기.
- 한 번의 프롬프트에 관련 없는 여러 가지를 요청하기.
- 제약 조건을 제공하는 것을 잊기.
- 확인 없이 첫 번째 답변을 그대로 받아들이기.
이 단계들을 마스터하면 더 빠르게 작업할 수 있습니다. 이 방법들은 ChatGPT, Claude, 그리고 GitHub Copilot에서 모두 작동합니다.
여러분은 어떤 프롬프팅 팁을 사용하시나요? 댓글로 알려주세요.
Optional learning community: https://t.me/GyaanSetuAi