Skip to content

Instantly share code, notes, and snippets.

@esc5221
Created September 16, 2025 18:53
Show Gist options
  • Select an option

  • Save esc5221/9fe229d63f85ba0aba4f5e65ce8c00b8 to your computer and use it in GitHub Desktop.

Select an option

Save esc5221/9fe229d63f85ba0aba4f5e65ce8c00b8 to your computer and use it in GitHub Desktop.

Ai_Native_Methodology - 2025-09-16

Generated: 2025-09-17 03:51:02


제공된 AI 세션 데이터는 단순한 스크립트 아이디어가 완전한 CLI 애플리케이션으로 발전하는 전 과정을 담고 있습니다. 이 과정에서 나타난 AI 활용 패턴을 심층 분석하여, 생산성을 극대화하는 AI Native 개발 방법론을 구체적으로 제시합니다.

  • 생산성 높은 협업 방식 식별: 아이디어 구체화, 기능 추가, 디버깅 등 각 단계에서 개발자와 AI가 어떻게 상호작용하는지 분석합니다.
  • 효과적인 프롬프팅 패턴 추출: 모호한 아이디어를 구체적인 코드로 전환시킨 핵심적인 요청 방식을 도출합니다.
  • AI와의 문제 해결 베스트 프랙티스 정리: 계획이 틀어지거나 버그가 발생했을 때, 어떻게 AI를 활용하여 문제를 해결했는지 정리합니다.
  • 실무 적용 가능한 구체적인 방법론 제시: 분석 결과를 바탕으로 내일부터 바로 적용할 수 있는 워크플로우와 전략을 제안합니다.

분석 방법

1. 데이터 기반 분석

세션 데이터에서 나타난 AI와의 상호작용을 시간 순서대로 추적하며 다음 4가지 핵심 요소를 분석했습니다.

  • 대화 패턴: 개발자는 AI에게 긴 명세서 대신 짧고 명확한 명령을 내립니다. AI가 1차 결과물을 내놓으면, 개발자는 즉시 수정 사항을 지시하는 **'요청 -> 결과 확인 -> 수정 지시'**의 짧은 루프가 반복됩니다.

    • 사례: extract_conversation.py 개발 초기, 사용자는 "A:말고, assistant:로.", "tool 실행 상세내용을 보여달라고" 와 같이 매우 구체적이고 즉각적인 수정을 연속적으로 요청합니다.
  • 문제 해결 과정: AI가 제안한 복잡한 초기 계획(Vector DB 등)을 개발자가 "좀더 가볍게 시작. 로컬 first하게" 와 같이 방향을 수정하며 단순화시킵니다. 또한, 블로그 생성 기능이 오작동하자, 개발자는 즉시 "프롬프트 어떻게 보내지는지 디버깅 로그 넣어보자" 며 AI를 디버깅 도구로 활용하여 문제의 근본 원인(템플릿 로드 실패, 긴 컨텍스트로 인한 지침 무시)을 빠르게 찾아냅니다.

  • 컨텍스트 전달: 개발자는 프로젝트의 전체 맥락을 반복 설명하지 않습니다. 세션 내내 AI는 retrovibe라는 프로젝트의 코드 구조, 목표, 이전 대화 내용을 모두 기억하고 있습니다. 개발자는 "응 수정하고, 이거 prototype처럼 tool 사용 다 숨길수있게해보자" 와 같이 짧은 명령만으로 컨텍스트에 맞는 작업을 지시합니다.

  • 반복 개선: extract_conversation.py라는 단일 스크립트로 시작된 프로젝트는 사용자의 요구사항이 추가됨에 따라 cli.py, collect.py, analyze.py 등으로 기능이 분리되며 유기적으로 아키텍처가 진화합니다. 이는 'Just-in-Time' 아키텍처 설계 방식으로, 처음부터 완벽한 설계를 하는 대신 필요에 따라 구조를 확장해나갑니다.

2. 패턴 추출

데이터 분석을 통해 다음과 같은 성공적인 AI 활용 패턴을 추출했습니다.

  • 성공 사례: '점진적 구체화' 개발 방식

    • 패턴: "AI 세션 분석 시스템을 만들고 싶다"는 모호한 아이디어로 시작하여, AI의 계획안을 비판적으로 수정하고(Vector DB -> SQLite), 핵심 기능(collect, analyze)을 먼저 구현한 뒤, 날짜 범위 지정, 커스텀 템플릿 등 기능을 점진적으로 추가했습니다.
    • 이유: 큰 계획을 한 번에 세우기보다, 실행 가능한 작은 프로토타입으로 시작하여 실제 결과물을 보며 빠르게 개선해나가는 방식이 AI 협업에 훨씬 효과적이었습니다.
  • 비효율적 접근법과 개선: '긴 프롬프트'의 함정

    • 문제: dev_blog 템플릿을 이용한 분석 시, 170만 자에 달하는 방대한 데이터를 한 번에 처리하려다 LLM이 앞부분의 지침을 무시하고 엉뚱한 결과를 내놓았습니다.
    • 개선: 사용자는 즉시 문제를 인지하고, "tool 사용 다 숨길수있게해보자" 며 데이터의 노이즈를 줄여 컨텍스트 길이를 줄이는 해결책을 제시했습니다. 이는 긴 컨텍스트가 항상 좋은 것이 아니며, **'정보의 질'**이 중요함을 보여줍니다.
  • 시간 절약 및 품질 향상 사례: 'AI 주도 디버깅'

    • 사례: 블로그 생성 실패 시, 개발자는 원인을 직접 찾는 대신 AI에게 **"디버깅 로그를 넣어달라"**고 요청했습니다. AI가 추가한 로그를 통해 '템플릿 로드 실패'라는 핵심 원인을 즉시 파악하고, "폴백 절대하지말고, 없다고 튕기게해줘" 라며 근본적인 에러 처리 방식을 개선했습니다.
    • 효과: 수동 디버깅에 소요될 시간을 AI와의 대화 몇 마디로 단축시켰고, 동시에 코드의 안정성까지 높였습니다.

3. 방법론 체계화

분석 결과를 바탕으로, 실무에 즉시 적용 가능한 AI Native 개발 방법론을 다음과 같이 체계화했습니다.

AI Native 개발 워크플로우: "Seed, Grow, Refine"

  1. Seed (씨앗 심기): 아이디어 제시 및 프로토타입 생성

    • Action: "AI 세션 분석 CLI 만들어줘" 와 같이 모호하지만 핵심적인 아이디어를 AI에게 제시합니다.
    • AI's Role: 기본 프로젝트 구조, 핵심 파일(cli.py, collect.py 등), 그리고 초기 계획안을 생성합니다.
    • Tip: AI의 첫 제안을 그대로 수용하지 마세요. "로컬 우선으로", "더 단순하게" 와 같이 핵심 원칙을 기준으로 계획을 비판적으로 검토하고 수정하는 것이 중요합니다.
  2. Grow (성장시키기): 기능 단위의 짧고 반복적인 개발

    • Action: 한 번에 하나의 기능을 명확하고 작은 단위로 요청합니다. ("날짜 범위 지정 기능 추가해줘", "숨김 옵션 넣어줘")
    • AI's Role: 요청받은 기능을 즉시 구현합니다.
    • Tip: 이 단계는 전통적인 개발의 '코딩' 과정을 AI와의 '대화'로 대체합니다. 마치熟練된 페어 프로그래머에게 지시하듯, 짧고 명확한 명령을 연속적으로 내리는 것이 핵심입니다.
  3. Refine (정제하기): 즉각적인 피드백과 디버깅

    • Action: AI가 생성한 결과물을 즉시 실행해보고, 예상과 다른 부분이 있다면 곧바로 수정 지시나 디버깅을 요청합니다. ("출력이 안보이는데? print가 안되나?", "빈 줄이 남는데 없애줘")
    • AI's Role: 코드 수정, 디버깅 로그 추가, 원인 분석 등의 역할을 수행합니다.
    • Tip: 문제가 발생했을 때 혼자 해결하려 하지 마세요. AI를 '대화형 디버거' 로 활용하여 문제 상황을 설명하고 원인 분석과 해결을 함께 진행하는 것이 훨씬 빠릅니다.

상황별 AI 활용 전략

  • 새로운 프로젝트 시작 시: AI에게 '프로젝트 기획자' 역할을 부여하고, 다양한 기술 스택과 아키텍처를 제안받은 뒤 토론을 통해 최적의 안을 선택하세요.
  • 복잡한 기능 구현 시: AI에게 '선임 개발자' 역할을 맡겨, 구현 계획을 먼저 세우게 하고, 그 계획을 함께 검토하며 단계별로 구현을 진행하세요.
  • 버그 발생 시: AI를 '디버깅 전문가' 로 활용하세요. 에러 메시지와 로그를 보여주고, 원인 분석과 해결책 제안을 요청하세요. "코드에 로그를 추가해줘"는 가장 강력한 디버깅 요청 중 하나입니다.

효과적인 프롬프팅 템플릿

  • 기능 추가: [기능] 추가해줘. [핵심 요구사항]을 만족해야 해.
    • 예시: `"날짜 범위 지정 기능 추가해줘. --from-date와 --to-date 옵션을 받게 해줘."*
  • 코드 수정: [파일]에서 [부분]을 [이렇게] 수정해줘.
    • 예시: collect.py에서 A:를 assistant:로 바꿔줘.
  • 디버깅 요청: [현상]이 발생해. 원인을 파악하기 위해 [파일]에 디버깅 로그를 추가해줘.
    • 예시: `"dev_blog 분석 결과가 이상해. analyze.py에 LLM으로 보내는 최종 프롬프트를 출력하는 로그를 넣어줘."*
  • 구조 설명: 현재 [기능]의 데이터 흐름을 설명해줘.
    • 예시: `"현재 시스템의 파일 구조와 각 파일의 역할을 설명해줘."*

결론: AI Native 개발은 '지시'가 아닌 '조율'의 과정

데이터 분석 결과, 효과적인 AI Native 개발은 단순히 AI에게 작업을 '지시'하는 것을 넘어, AI의 결과물을 끊임없이 '조율'하고 방향을 바로잡아주는 과정에 가깝습니다. 개발자는 '운전자' 가 되어 아이디어라는 목적지를 향해 AI라는 강력한 엔진을 실시간으로 제어합니다.

이 방법론은 긴 기획과 단독 개발의 부담을 줄이고, 빠른 실행과 즉각적인 피드백이라는 애자일의 핵심 가치를 극대화합니다. 위에서 제시된 워크플로우와 전략을 통해 개발자들이 AI를 단순한 코드 생성기를 넘어, 진정한 협업 파트너로 활용할 수 있기를 바랍니다.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment