지저분한 코드 없이 더 빠르게 기능을 출시하기 위해 AI를 사용하는 방법
요약
AI 코딩 도구를 사용할 때 발생하는 모호한 프롬프트 문제를 해결하기 위한 반복 가능한 워크플로우를 제안합니다. 명확화, 계획, 구축, 테스트 등의 단계를 통해 지저분한 코드 없이 고품질의 기능을 빠르게 출시하는 방법을 설명합니다.
핵심 포인트
- 광범위한 프롬프트 대신 명확한 요구사항 정의가 필요함
- 명확화(Clarify) 단계를 통해 AI의 잘못된 가정을 방지
- 단계별 구현 계획(Plan)을 먼저 수립하여 로직 검토
- 한 번에 전체가 아닌 부분별로 구축(Build)하여 품질 유지
- 테스트 생성을 조기에 수행하여 안정성 확보
지저분한 코드 없이 더 빠르게 기능을 출시하기 위해 AI를 사용하는 방법
AI 코딩 도구들은 강력하지만, 많은 개발자들이 저지르는 흔한 실수가 있습니다:
그들은 너무 이른 시점에 AI에게 기능을 만들어 달라고 요청합니다.
프롬프트(Prompt)는 보통 다음과 같은 모습입니다:
사용자 인증 시스템을 구축해줘.
또는:
내 앱에 다크 모드를 추가해줘.
또는:
이 버그를 수정해줘.
문제는 이러한 프롬프트들이 "틀렸다"는 것이 아닙니다.
문제는 그것들이 너무 광범위하다는 것입니다.
지시 사항이 모호하면, 출력 결과도 대개 모호해집니다:
- 엣지 케이스 (Edge cases) 누락
- 취약한 테스트 커버리지 (Test coverage)
- 너무 많은 가정 (Assumptions)
- 지저분한 구현 (Messy implementation)
- 불필요한 리팩터링 (Refactoring)
- 데모에서는 작동하지만 실제 사용 시에는 깨지는 코드
ChatGPT, Claude, Cursor, Copilot과 같은 AI 도구들을 사용해 본 결과, 최상의 결과는 하나의 마법 같은 프롬프트에서 나오는 것이 아니라는 것을 깨달았습니다.
그것은 반복 가능한 워크플로우 (Workflow)에서 나옵니다.
저의 워크플로우는 다음과 같습니다:
명확화 (Clarify) → 계획 (Plan) → 구축 (Build) → 테스트 (Test) → 디버그 (Debug) → 리팩터링 (Refactor)
1. 코딩하기 전에 명확히 하기 (Clarify)
AI에게 코드를 작성하도록 요청하기 전에, 저는 AI에게 해당 기능에 대해 명확히 질문하도록 요청합니다.
나쁜 프롬프트:
내 앱을 위한 로그인을 구축해줘.
더 나은 프롬프트:
시니어 풀스택 개발자 (Senior full-stack developer)처럼 행동해줘.
코드를 작성하기 전에, 인증 흐름 (Authentication flow), 사용자 역할 (User roles), 세션 처리 (Session handling), 비밀번호 재설정 (Password reset), 보안 위험 (Security risks), 엣지 케이스 (Edge cases), 그리고 예상되는 사용자 경험 (User experience)에 대해 명확히 하는 질문을 해줘.
...
이 단계가 중요한 이유는 AI가 종종 너무 많은 것을 가정하기 때문입니다.
AI는 잘못된 흐름을 선택하거나, 보안 세부 사항을 무시하거나, 실제로 필요한 것보다 더 많은 것을 구현할 수 있습니다.
명확화 과정은 모호한 아이디어를 실제 구현 목표로 바꾸는 데 도움을 줍니다.
2. 구현 계획 세우기 (Plan)
요구 사항이 더 명확해지면, 저는 AI에게 계획을 세워달라고 요청합니다.
프롬프트 예시:
명확해진 요구 사항을 바탕으로, 단계별 구현 계획을 세워줘.
다음 내용을 포함해줘:
...
이렇게 하면 AI의 속도를 늦출 수 있습니다.
코드로 바로 뛰어드는 대신, AI는 여러분에게 지도(Map)를 제공합니다.
그 지도는 무언가가 구현되기 전에 로직을 검토할 수 있도록 도와줍니다.
3. 한 번에 한 부분씩 구축하기 (Build)
제가 초기에 했던 실수 중 하나는 AI에게 한 번의 응답으로 전체 기능을 구축해 달라고 요청하는 것이었습니다.
이는 종종 지저분한 결과물 (messy output)을 만들어냅니다.
이제 저는 한 번에 한 부분씩 구현하도록 요청합니다.
예시:
이제 검증 로직 (validation logic)만 구현하세요.
코드를 단순하고 읽기 쉽게 유지하세요.
...
이렇게 하면 결과물을 검토하기가 더 쉬워집니다.
또한 AI가 건드리지 말아야 할 프로젝트의 부분을 변경할 가능성도 줄여줍니다.
4. 테스트를 조기에 생성하기 (Generate tests early)
AI는 테스트 생성 (test generation)에 유용하지만, 충분한 문맥 (context)을 제공할 때만 그렇습니다.
프롬프트 예시:
이 기능에 대한 테스트 케이스 (test cases)를 생성하세요.
포함 사항:
...
생성된 모든 테스트를 사용하지 않더라도, 이 단계는 제가 놓쳤을 수 있는 케이스를 찾는 데 도움이 됩니다.
5. 추측이 아닌 디버깅을 위해 AI를 사용하기
무언가 작동하지 않을 때, 많은 개발자가 에러를 붙여넣고 이렇게 말합니다:
이것을 수정하세요.
더 나은 디버깅 프롬프트는 다음과 같습니다:
디버깅 어시스턴트 (debugging assistant) 역할을 수행하세요.
이 에러를 단계별로 분석하세요.
...
이 방식이 더 나은 이유는 AI가 코드를 무작위로 변경하는 대신 문제에 대해 추론 (reason)하도록 만들기 때문입니다.
6. 마지막에 검토 및 리팩터링하기 (Review and refactor)
기능이 작동한 후에는 AI에게 코드를 검토하도록 요청합니다.
예시:
시니어 엔지니어 (senior engineer)처럼 이 구현을 검토하세요.
확인 사항:
...
이를 통해 AI는 단순한 코드 생성기 (code generator)가 아닌 두 번째 검토자 (reviewer)가 됩니다.
핵심 교훈
프롬프트도 중요하지만, 워크플로 (workflow)가 더 중요합니다.
나쁜 워크플로는 다음과 같습니다:
아이디어 → AI에게 모든 것을 구축하도록 요청 → 지저분한 결과물 수정
더 나은 워크플로는 다음과 같습니다:
아이디어 → 명확화 → 계획 → 단계별 구축 → 테스트 → 디버깅 → 검토
AI 코딩 도구는 개발자가 더 빠르게 움직일 수 있도록 도울 수 있지만, 구조 (structure)가 필요합니다.
목표는 사고 (thinking)를 대체하는 것이 아닙니다.
목표는 반복적인 작업을 줄이고, 엣지 케이스 (edge cases)를 조기에 발견하며, 기능 출시 (feature shipping)를 덜 혼란스럽게 만드는 것입니다.
무료 프롬프트 샘플
저는 개발자, 프리랜서, 크리에이터를 위한 실용적인 AI 워크플로 키트 모음인 BuildFlow Kits를 만들고 있습니다.
또한 저는 개발자들이 ChatGPT, Claude, Cursor, Copilot과 같은 도구를 사용하여 기능을 더 빠르게 계획, 구축, 테스트, 디버깅(debug) 및 출시할 수 있도록 돕는 데 중점을 둔 개발자용 AI 코딩 프롬프트 팩(AI Coding Prompt Pack)을 만들었습니다.
여기에서 확인하실 수 있습니다:
https://samuelhany.gumroad.com/l/ship-features-faster-prompts
저는 기능 계획, 디버깅(debugging), 테스트(testing), 리팩터링(refactoring), 그리고 엣지 케이스(edge-case) 발견을 위한 5가지 프롬프트가 포함된 무료 샘플 버전도 준비 중입니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기