AugmentedInvestigation
주니어 개발자들을 위한 패턴 언어 - AI라는 파트너에게 명료한 단서를 제공하여 문제의 핵심을 꿰뚫는 법
Contents
The Story: The Vague Question vs. The Context-Rich Inquiry
두 명의 개발자, 민수와 하나가 ChatGPT를 사용하여 버그를 해결하고 있다.
민수의 질문 (The Vague Prompt): 민수는 다급하게 질문을 던졌다. "리스트에서 데이터를 정렬하는데 에러가 나요. 왜 이럴까요?" ChatGPT는 일반적인 정렬 방법과 발생 가능한 수십 가지 에러 목록을 나열했다. 민수는 그 긴 답변을 읽느라 더 많은 시간을 썼지만, 정작 자신의 문제를 해결하는 데는 도움이 되지 않았다.
하나의 질문 (The Augmented Investigation): 하나는 AI에게 세 가지 핵심 정보를 함께 제공했다.
의도 (Intent): "사용자의 포인트를 기준으로 내림차순 정렬을 하려고 합니다."
맥락 (Context): 실제 코드 중 데이터 구조와 정렬 로직이 담긴 핵심 부분을 복사해서 붙여넣었다.
사실 (Fact): "콘솔에 TypeError: ... 라는 에러 메시지가 뜹니다."
ChatGPT는 즉시 답했다. "데이터 중 포인트 값이 문자열로 들어오는 경우가 있습니다. parseInt를 추가하세요." 하나는 단 한 번의 질문으로 명확한 답변을 얻었고, 즉시 버그를 검거했다.
Context
DetectiveWork를 수행 중이거나, 새로운 기능을 구현하다가 막혔다. 스스로 해결하려고 노력했지만 시간이 지체되고 있고, AI(ChatGPT 등)에게 도움을 요청하려는 상황이다.
일상적인 상황:
- "왜 안 되지?"라는 막연한 질문만 머릿속에 맴돈다.
- AI가 주는 답변이 내 상황과 맞지 않아 겉돈다고 느낀다.
- 에러 메시지를 구글에 검색해보지만, 내 코드와 연결 짓기 어렵다.
- 문제를 설명하는 데 너무 많은 시간을 쓰느라 정작 코딩을 못 한다.
당신은 지금 전능한 조력자를 곁에 두고도, 소통하는 법을 몰라 혼자 삽질하고 있다.
Problem
충분한 맥락과 증거 없이 던지는 질문은 AI의 할루시네이션(환각)을 유발하고, 해결을 더 늦춘다.
정보의 부족: AI는 당신의 모니터를 보고 있지 않다. 당신이 말해주지 않은 정보는 AI가 추측하게 되고, 그 추측은 높은 확률로 틀린다.
시간 낭비: 모호한 답변을 검증하느라 에너지를 낭비하게 된다.
학습 기회 상실: 문제의 원인을 정확히 짚어주는 답변을 듣지 못하면, 다음에 같은 실수를 반복하게 된다.
Solution
AI에게 "하려는 바(의도)", "실제 코드(맥락)", "오류 메시지(사실)"를 한꺼번에 제공하여 단 한 번에 명확한 답변을 얻어라.
이것은 인지 부하를 AI와 나누는 증강된 수사(Augmented Investigation) 기법이다.
Principle 1: The Trinity of Prompt (프롬프트의 삼위일체)
질문에 다음 세 가지를 반드시 포함하라.
의도 (What): 내가 달성하려는 목표가 무엇인가?
코드 (How): 문제가 발생하는 부분의 핵심 코드는 무엇인가?
에러 (Reality): 시스템이 내뱉는 날것 그대로의 에러 메시지는 무엇인가?
Principle 2: Fact over Interpretation (해석보다 사실 전달)
"서버가 죽은 것 같아요"라고 당신의 추측을 말하지 마라.
- 로그에 찍힌 에러 메시지 전문을 복사해서 붙여넣어라.
AI가 당신의 선입견에 오염되지 않고 객관적인 증거를 바탕으로 추론하게 하라(PresentMoment).
Principle 3: Minimum Viable Context (최소한의 핵심 맥락)
수천 줄의 코드를 다 줄 필요는 없다.
- 문제가 발생한다고 의심되는 지점과 관련된 데이터 구조만 추려서 전달하라.
- 맥락이 날카로울수록 AI의 답변도 날카로워진다.
Principle 4: Iterative Refinement (반복적인 정제)
한 번에 해결되지 않는다면, AI의 답변 중 이해되지 않는 부분을 다시 CognitiveMicroscope로 들여다보고 질문을 정교화하라.
Real Examples
Example 1: The API Mystery
"API가 안 돼요" (X) "사용자 프로필을 업데이트하려는데(의도), 이 컨트롤러 코드에서(맥락), 403 Forbidden 에러가 납니다(사실). 권한 설정 문제일까요?" (O)
Example 2: Logic Bug
"조건문이 이상해요" (X) "재고가 부족할 때 결제를 막고 싶은데(의도), 이 if문 로직을 타면(맥락), 항상 결제가 승인됩니다(사실). 제가 논리 연산자를 잘못 썼나요?" (O)
Common Pitfalls
"Assuming the AI knows your history" (AI가 내 사정을 다 알 거라는 착각)
각 채팅 세션은 독립적이다. 필요한 정보는 매번 다시 제공해야 한다.
"Blindly Copying AI Code" (무지성 복사 붙여넣기)
AI가 준 코드를 이해하지 못한 채 붙여넣는 것.
답변을 얻었다면 반드시 왜 그렇게 동작하는지 물어서 당신의 암묵지로 만들어야 한다.
"Fear of Sharing Code" (코드 공유에 대한 두려움)
보안에 민감한 정보(API Key, 개인정보)는 반드시 지우고 비즈니스 로직의 핵심 구조만 전달하라.
Connection to Other Patterns
DetectiveWork - AugmentedInvestigation은 탐정의 수사를 AI와 함께 수행하는 현대적인 방식입니다. 수사 기법
PresentMoment - 에러 메시지라는 날것의 사실을 직시하고 전달하는 것이 핵심입니다. 태도
CognitiveMicroscope - AI의 답변을 통해 자신의 사고 과정에 있었던 구멍을 발견할 수 있습니다. 발견
ThinkingMirror - AI와의 대화 기록은 훌륭한 사고의 거울이 됩니다. 기록
Signs of Success
- 질문 한 번에 "아, 이게 문제였군요!"라는 해결책을 얻는다.
- 디버깅에 쏟는 시간이 획기적으로 줄어든다.
- AI를 단순한 코딩 기계가 아니라, 논리적 허점을 짚어주는 훌륭한 코드 리뷰어로 활용한다.
문제를 설명하는 과정에서 스스로 답을 찾기도 한다(RubberDucking).
The Ultimate Insight
질문의 품질이 답변의 품질을 결정하고, 당신의 질문 능력은 당신의 인지 능력을 반영한다.
AI는 마법의 지팡이가 아니라, 당신의 사고를 증폭해주는 렌즈다. 명료한 단서를 제공할 때 AI는 당신의 눈에 보이지 않던 진실을 비추어준다. 정확하게 묻고, 확실하게 배워라. 그것이 AI 시대를 사는 영리한 개발자의 태도다.
CategoryPatternLanguage CategoryProgramming CategoryDebugging CategoryCollaboration CategoryAI
