AI 코딩 마스터 가이드: 프롬프트 작성법 37가지 (feat. 커서 AI
AI Coding 101: Ultimate Prompt Guide (37 tips)
최근 AI 코딩 도구의 발전으로 누구나 쉽게 코딩을 할 수 있는 시대가 열렸습니다. 하지만 AI 코딩 도구를 효과적으로 사용하기 위해서는 적절한 프롬프트를 작성하는 것이 매우 중요합니다. 잘못된 프롬프트는 몇 시간 동안 문제 해결만 하다가 결국 아무것도 얻지 못하는 결과를 초래할 수 있습니다.
본 가이드에서는 1,000시간 이상 AI 코딩을 경험하며 얻은 인사이트를 바탕으로, AI 코딩 효율을 극대화하는 궁극의 프롬프트 작성법 37가지를 소개합니다. 특히 커서(Cursor) AI를 활용하여 새로운 코드를 작성하고, 기존 코드를 수정하며, 문제를 해결하고, 코딩을 학습하는 방법에 대해 자세히 알아보겠습니다.
1. 새로운 코드 작성 (Writing New Code)
1.1. 구체적인 기술 및 접근 방식 명시
AI에게 어떤 기술과 접근 방식을 사용할지 명확하게 제시해야 합니다. 이를 통해 초기 버전 작성 후 코드 반복 작업이 쉬워지고, 사용 중인 모든 도구 및 기술이 실제로 작동하는지 확인할 수 있습니다.
- 팁: 인기 있는 언어 및 프레임워크를 사용하는 것이 좋습니다. (JavaScript, Python, PostgreSQL 등)
- 예시 프롬프트: "JavaScript와 Moment.js를 사용하여 날짜 형식을 지정하는 함수를 만들어줘."
1.2. 솔루션 설계 후 AI에 빌드 요청
AI에게 단순히 열린 프롬프트를 제공하지 말고, 먼저 솔루션을 설계한 후 AI에게 빌드를 요청해야 합니다. 이는 AI에게 더 구체적인 정보를 제공하고, AI가 정확히 원하는 대로 작동하도록 할 가능성을 높여줍니다.
- 예시: 제품 목록을 보여주는 웹사이트에 검색 기능을 추가하려는 경우, 다음과 같이 구체적인 요구 사항을 명시해야 합니다.
- 검색은 제품 제목과 설명으로 수행해야 합니다.
- 다양한 제품 유형별로 필터링하는 기능이 있어야 합니다.
- 정렬 기능이 있어야 합니다.
1.3. 작업 목록으로 세분화
프롬프트를 구성할 때 AI가 수행해야 할 작업 목록으로 세분화하면, AI는 각 작업에 집중하고 모든 것을 통합하여 구현할 수 있습니다.
- 예시: 검색 기능을 구축하는 대신, 다음과 같이 작업 목록을 제시합니다.
- 검색 기능 구축
- 제목 및 설명 검색 기능 구현
- 제품 유형별 필터링 기능 추가
- 정렬 기능 추가
1.4. 적절한 작업 범위 균형 유지
AI에게 제공하는 작업 범위가 너무 작으면 반복 작업에 많은 시간을 소비하게 되고, 너무 크면 AI가 작업을 완료하지 못할 수 있습니다. 따라서 적절한 작업 범위의 균형을 유지하는 것이 중요합니다. 이는 경험을 통해 얻을 수 있습니다.
1.5. 예제 활용
AI에게 원하는 결과의 예제를 제시하면, AI는 해당 예제를 기반으로 코드를 생성하므로 더욱 정확한 결과를 얻을 수 있습니다.
- 예시: 날짜 형식을 지정하는 함수를 만들려는 경우, 원하는 날짜 형식을 예제로 제시합니다.
- "날짜 형식을 다음과 같이 지정해줘: YYYY-MM-DD, MM/DD/YYYY, DD.MM.YYYY"
1.6. 샘플 코드 활용
특정 라이브러리 또는 도구를 통합하려는 경우, 이미 작동하는 샘플 코드를 복사하여 AI에게 제공하면 AI는 해당 코드를 기반으로 작업을 수행하므로 더욱 빠른 속도로 작업을 완료할 수 있습니다.
1.7. 보안 및 성능 고려
AI가 생성한 코드가 안전하고 효율적인지 확인해야 합니다. 이를 위해 AI에게 보안 취약점이 있는지, 가장 효율적인 접근 방식을 사용했는지 질문할 수 있습니다.
- 예시:
- "이 코드에 보안 취약점이 있나요?"
- "가장 효율적인 접근 방식을 사용했나요?"
1.8. 테스트 주도 개발 (TDD) 접근 방식 활용
AI에게 먼저 테스트를 작성하도록 하고, 해당 테스트를 모두 통과하는 기능을 구현하도록 지시할 수 있습니다. 이를 통해 AI는 모든 엣지 케이스를 처리하고, 더 높은 품질의 코드를 생성할 수 있습니다.
1.9. 코드 문서화
AI에게 코드에 대한 문서(주석, README)를 작성하도록 지시할 수 있습니다. AI는 코드에 접근할 수 있으므로, 소프트웨어가 실제로 어떻게 작동해야 하는지 정확하게 설명하는 효과적인 문서를 작성할 수 있습니다.
1.10. 네이밍 규칙 준수
파일, 함수, 클래스 등의 이름을 신중하게 지정해야 합니다. AI는 이러한 이름을 사용하여 코드의 의미를 파악하고, 새로운 코드를 생성할 때 네이밍 패턴을 따르기 때문입니다.
- 예시: CSV 파일을 처리하는 함수는 "CSVParser"와 같이 명확한 이름을 사용하는 것이 좋습니다.
2. 기존 코드 작업 (Working with Existing Code)
2.1. 코드 리팩토링 및 단순화
코드가 확장됨에 따라 코드베이스의 네이밍과 구성을 지속적으로 업데이트해야 합니다. AI에게 특정 파일을 리팩토링하고 특정 요소를 새 파일로 추출하도록 요청할 수 있습니다. 이를 통해 파일이 매우 집중되고 코드베이스가 잘 구성되도록 유지할 수 있습니다.
2.2. 관련 파일 태깅
새로운 코드를 작성할 때 관련 파일을 AI에게 제공하여 컨텍스트를 관리해야 합니다. AI에게 충분한 컨텍스트가 없으면 코드에 대한 잘못된 가정을 할 수 있으며, 이로 인해 코드가 제대로 작동하지 않을 수 있습니다.
2.3. 무엇이 잘 작동하고 무엇을 변경해야 하는지 명확하게 제시
AI에게 기능을 구현하도록 요청한 후, AI가 만든 코드에서 무엇이 잘 작동하고 무엇을 변경해야 하는지 명확하게 제시하면 AI는 해당 부분에 집중하여 수정하므로 더욱 효율적으로 작업을 완료할 수 있습니다.
2.4. 엣지 케이스 및 잠재적 버그 찾기
AI에게 코드에서 엣지 케이스나 잠재적 버그를 찾도록 요청하여 코드 품질을 향상시킬 수 있습니다.
2.5. 코드 검토 요청
주요 변경 사항을 적용한 후, AI에게 코드를 검토하도록 요청할 수 있습니다. 이를 통해 AI는 코드의 잠재적인 문제점을 발견하고, 개발자는 코드 검토 프로세스를 빠르게 시작할 수 있습니다.
2.6. 코드 작동 방식 설명 요청
AI에게 현재 코드가 무엇을 하고 어떻게 작동하는지 설명하도록 요청하면, 개발자는 코드의 전체적인 흐름을 파악하고 놓친 부분을 발견할 수 있습니다.
3. 문제 해결 (Troubleshooting)
3.1. 구체적인 문제 설명
문제를 해결할 때 AI에게 무엇이 잘못되었는지, 무엇이 제대로 작동하는지 구체적으로 설명해야 합니다. 또한, 어떤 경우에 문제가 발생하고 어떤 경우에 문제가 발생하지 않는지 자세히 설명해야 합니다.
3.2. 오류 메시지 공유
AI에게 오류 메시지를 공유하면, AI는 문제의 원인을 파악하고 해결책을 제시할 가능성이 높아집니다.
3.3. 비버 방법 (Beaver Method) 활용
AI에게 코드에 많은 로그를 작성하도록 요청한 후, 프로그램을 실행하고 해당 로그를 AI에게 다시 제공합니다. 이를 통해 AI는 프로세스의 어느 부분에서 문제가 발생하는지 파악할 수 있습니다.
3.4. 코드 설명 요청
AI에게 코드가 현재 무엇을 하고 있는지 설명하도록 요청하면, 코드에 문제가 있는 이유를 이해하는 데 도움이 될 수 있습니다.
3.5. 근본적으로 다른 접근 방식 시도
AI에게 근본적으로 다른 접근 방식을 시도하도록 요청합니다. 이는 AI가 문제 해결 루프에서 벗어나 새로운 관점에서 문제를 해결하도록 하는 데 효과적입니다.
4. 코딩 학습 (Learning How to Code)
4.1. 단순하게 유지 및 초보 개발자임을 명시
AI에게 코드를 설명하도록 요청할 때, 자신이 초보 개발자임을 명시하고 간단하게 유지하도록 요청해야 합니다. 그렇지 않으면 AI는 개발자 수준의 이해도를 가정하고 응답할 수 있습니다.
4.2. 코드 줄별 설명 요청
AI에게 코드 줄별로 설명하도록 요청하면 코드 구문을 이해하는 데 도움이 됩니다.
4.3. 특정 개념 설명 및 관련 코드/주제 연결
AI에게 특정 개념을 설명하고 해당 개념이 코드 또는 주제와 어떻게 관련되는지 질문하면, 소프트웨어 작동 방식에 대한 전반적인 인식을 높일 수 있습니다.
4.4. 아키텍처 구성 요소 질문
AI에게 특정 기능을 어떻게 빌드할지 묻고, 아키텍처 구성 요소와 고려 사항을 질문하면, 코딩의 세부 사항에 들어가기 전에 전체적인 그림을 그릴 수 있습니다.
4.5. 코드 예제 요청
AI에게 특정 개념 또는 코드에 대한 예제를 보여달라고 요청하면, 코딩 기술을 향상시키는 데 도움이 됩니다.
4.6. 이해하는 부분과 이해가 안 되는 부분 명시
AI에게 자신이 이해하는 부분과 이해가 안 되는 부분을 명시하면, AI는 이해가 안 되는 부분에 집중하여 설명을 제공하고, 이미 이해하고 있는 부분과 연결하여 더욱 완전한 그림을 그릴 수 있도록 도와줍니다.
4.7. 구문보다는 큰 그림에 집중
특정 언어의 구문보다는 더 큰 그림과 다양한 소프트웨어 구성 요소가 어떻게 연결되는지에 집중해야 합니다.
5. 결론: AI 코딩 마스터로 거듭나기
본 가이드에서 소개한 프롬프트 작성법 37가지를 활용하여 AI 코딩 도구를 효과적으로 사용하고, AI 코딩 마스터로 거듭나세요!
Disclaimer: 본 가이드는 [신인균의 국방 TV] 유튜브 채널의 정보를 바탕으로 작성되었으며, AI 코딩 도구 사용 경험과 추가적인 정보 조사를 통해 작성되었습니다. 따라서 모든 내용이 절대적인 진리라고 할 수는 없으며, 사용자 환경 및 상황에 따라 결과가 달라질 수 있습니다.
본 포스팅에서는 코드 예시의 폰트가 깨지는 현상이 발생할 수 있습니다. 이는 티스토리 마크다운 편집기의 한계로 인한 것이며, 실제 코드 작성 시에는 문제가 없습니다.
프롬프트 예시 요약
- (새 코드 작성): " $$기술/접근 방식 목록]을 사용하여 $$새 코드/기능/기능]을 만드세요."
- (기존 코드 작업): "$$파일 이름]을 리팩터링하고 $$특정 요소]를 새 파일로 추출하세요."
- (문제 해결): "무엇이 잘못되었고 무엇이 제대로 작동하고 있나요? 이 부분은 작동하지만 다른 부분은 작동하지 않습니다. 어떤 경우에 작동하고 어디에서 실패합니까?"
- (코딩 학습): "간단하게 유지하고 제가 새로운 개발자이고 코딩 방법을 배우고 있다고 말하세요."
이 가이드라인을 따르면 AI 코딩 도구를 훨씬 효과적으로 사용할 수 있으며, 개발 생산성을 높이고 고품질 코드를 생성할 수 있습니다.
Here's a breakdown, organized by the advice given in the video:
I. Writing New Code
- (Implied Prompt - To the AI, via User): "Create [new code/feature/functionality] using [specific technologies/approaches list]." [Example: Create a function to format dates using JavaScript and Moment.js] (The user should tell the AI what specific technologies to use)
- (Implied Prompt - To the AI, via User): "Build [feature] that should work with [title/description/filters/etc.]. It should have [ability to filter by product type] and [sorting capability]." [This embodies the "design a solution" and "break down into a list" tips] (User should design the solution and then break it down into the list)
- (Implied Prompt - To the AI, via User): "Here are examples of how I want the dates to look: [Example 1], [Example 2], [Example 3]." (Give the example for it)
- (Implied Prompt - To the AI, via User): "Here is working code for [specific library/tool]. Start from there." (User copy and pastes the code into the AI and has the AI start form there)
- (Implied Prompt - To the AI, via User): "Are there any security vulnerabilities that this code introduces?" (For the user to ensure the code that the AI wrote is both secure)
- (Implied Prompt - To the AI, via User): "Is the approach that you took the most efficient one?" (For the user to make sure that the code performs well)
- (Implied Prompt - To the AI, via User): "Are there any considerations or best practices when working with [particular software/feature]?" (For the user to be proactive about asking if there are any considerations or best practices)
- (Implied Prompt - To the AI, via User): "Write tests for this feature first, then implement the feature to make sure it satisfies all the tests." (Take a test driven development approach and have the AI write the test first)
- (Implied Prompt - To the AI, via User): "Write documentation (comments/readme) for this code." (Have the AI write documentation for the software/code)
II. Working with Existing Code
- (Implied Prompt - To the AI, via User): "Refactor [file name] and extract [specific elements] into a new file. (User update naming and organization)
- (Implied Prompt - To the AI, via User): "[Relevant files tagged]." (Giving relevant files to the AI to use in its context)
- (Implied Prompt - To the AI, via User): "[Relevant files tagged]. What worked well: [list of things]. What needs to be changed: [list of things]. (User iterates on code by telling it what to do)
- (Implied Prompt - To the AI, via User): "Are there any edge cases or potential bugs in this code?" (User asks to AI if there are any edge cases or bugs)
- (Implied Prompt - To the AI, via User): "Review this code." (After making changes, have the AI review the code).
- (Implied Prompt - To the AI, via User): "What does this code do and how does it work?" (For the user to highlight certain things that the AI might be missing)
III. Troubleshooting
- (Implied Prompt - To the AI, via User): "What is going wrong and what is going right? This piece is working, but this other piece is not. In which cases does it work and where does it fail?" (User is specific about what is going wrong and what is going right)
- (Implied Prompt - To the AI, via User): "[Error message pasted]." (User shares the errors that the AI is getting)
- (Implied Prompt - To the AI, via User): "Write a bunch of logs in this code that will help me troubleshoot." (User to use the beaver method and add a bunch of logs)
- (Implied Prompt - To the AI, via User): "Describe what this code is currently doing." (To understand why there is an issue in it)
- (Implied Prompt - To the AI, via User): "Try a radically different approach." (User tells AI to try something radically different)
IV. Learning How to Code
- (Implied Prompt - To the AI, via User): "Keep things simple. I am a new developer and I'm learning how to code." (User specifies that they are new and that they want to keep the code sample)
- (Implied Prompt - To the AI, via User): "Explain this code line by line." (User has AI explain code)
- (Implied Prompt - To the AI, via User): "Explain [particular concept] and how it relates to [code/topic]." (To explain a particular concept and relate it to a topic)
- (Implied Prompt - To the AI, via User): "How would you build [thing]? What are the architectural components? What do we need to consider?" (User ask how to build something so that the AI can tell them what steps to take)
- (Implied Prompt - To the AI, via User): "Show me some examples of [concept/code]." (User asks AI to show examples of the concept)
- (Implied Prompt - To the AI, via User): "I understand [X], but I'm unclear on [Y]." (User tells the AI what they understand vs what is unclear)
Summary and Key Takeaways for Prompting:
This video emphasizes the importance of specificity, providing context, and guiding the AI step-by-step. The most effective prompts aren't just requests; they are well-structured instructions that consider the AI's limitations and strengths. Key takeaways include:
- Be Explicit: Clearly state the technologies, features, and behaviors you desire.
- Provide Examples: Illustrate your expectations with concrete examples.
- Break Down Complexity: Divide large tasks into smaller, manageable steps.
- Give Context: Supply relevant code snippets and documentation.
- Iterate and Refine: Continuously evaluate and improve the AI's output.
- Troubleshoot Systematically: Define the problem precisely and provide relevant error messages or logs.
- Embrace Simplicity (When Learning): Request clear and straightforward explanations.
This structured approach to prompting will greatly improve your ability to leverage AI for coding tasks, leading to more efficient development and higher quality code.
'IT' 카테고리의 다른 글
Softgen AI로 28분 만에 SKOOL 웹사이트 복제하기 (0) | 2025.02.14 |
---|---|
커서 AI "더블 에이전트" 핵: 2배 빠른 코딩을 위한 궁극 가이드 (0) | 2025.02.14 |
커서 AI 규칙 마스터하기: AI 기반 앱 개발을 위한 완벽 가이드 (1) | 2025.02.13 |
Cursor와 AI 도구로 풀스택 앱 만들기 (feat. Firebase, Vercel 배포) (0) | 2025.02.13 |
Cursor와 AI 도구를 활용한 RSS 피드 기반 팟캐스트 앱 구축 가이드 (0) | 2025.02.13 |