devtestudinidae

DevTestudinidae

I'm growing slowly @github.

🔥 PCIP Framework 완전 해부: 제작 배경부터 설계 의도까지

제목: SOTA AI 코딩 어시스턴트 개답답해서 오은영 박사 육아법으로 만든 시스템 완전 해부.txt

3줄 요약

🚨 Part 1: 내가 왜 이걸 만들게 됐는지 스토리타임

실제 겪은 참사

캐싱 시스템 멘붕 사건


그때 깨달은 것: “얘들은 코드는 잘 짜는데 ‘맥락’을 잊네 ㅂㄷㅂㄷ”

내가 해줘야 했던 노가다

나: "결제 기능 만들어줘"
AI: "네! 기본 결제 폼 만들어드릴게요!"

나: "잠깐잠깐... 보안 고려해야 하고..."
나: "PCI DSS 규정도 맞춰야 하고..."  
나: "환불 처리도 있어야 하고..."
나: "실패 시 롤백도 생각해야 하고..."
나: "사기 방지도 고려해야 하고..."
나: "로깅도 해야 하고..."
나: "모니터링도 해야 하고..."
나: "에러 핸들링도..."

AI: "아 그럼 처음부터 다시 만들게요 ^^;"

나: "ㅅㅂ..."

매.번.이.런.식.으.로 ㅂㄷㅂㄷㅂㄷ


🧠 Part 2: 오은영 박사 프로그램에서 얻은 번뜩이는 영감

그러던 어느 날, 회사에서 야근하면서 유튜브 틀어놨는데 오은영 박사 프로그램이 나옴

TV에서 본 충격적인 장면

상황:

일반적인 엄마들의 반응:

오은영 박사의 접근법:

그 순간 내 머리속:

아... 이거네!

AI한테도 똑같잖아?
- 그냥 "코딩해" (X)
- 상황 파악하고, 맥락 이해하고, 가이드 해주고 (O)

AI한테도 '좋은 부모' 역할이 필요한거 아닌가?

오은영 박사님이 제시한 좋은 부모의 조건들

  1. 상황 파악: “아이가 왜 이런 행동을 하는지 먼저 이해”
  2. 위험 평가: “이렇게 하면 어떤 결과가 나올지 미리 생각”
  3. 맥락 고려: “우리 가정의 상황, 아이의 성격, 장기적 목표 종합 고려”
  4. 가이드 제공: “단순 명령이 아닌, 이유와 함께 방향 제시”
  5. 지속 관찰: “결과를 보고 지속적으로 조정”

이걸 AI 코딩에 적용하면?

  1. 상황 파악: “이 요청이 어떤 종류고 얼마나 복잡한가?”
  2. 위험 평가: “이 작업의 리스크는 어느 정도인가?”
  3. 맥락 고려: “이 프로젝트의 특성, 기술 스택, 사용자층 고려”
  4. 가이드 제공: “어떤 전문가가 어떤 관점으로 접근해야 하는가?”
  5. 지속 관찰: “결과물이 기준에 맞는지 검증”

💡 Part 3: 그래서 설계한 PCIP 시스템

기존 방식의 한계

사용자 → AI → 결과물
"결제 기능 만들어줘" → "네!" → 대충 만든 위험한 코드

PCIP 방식

사용자 → PM(상황판단) → Expert(전문가 멘토링) → Child(정확한 실행)
"결제 기능 만들어줘" → "위험도 높음, 결제 전문가 + 보안 전문가 투입" → "PCI 규정 고려해서 이렇게 만들어" → 안전하고 완성도 높은 코드

🏗️ Part 4: 각 파트별 설계 의도 상세 분석

4-1. 3-Layer 구조가 3층인 이유

왜 3층으로 나눴나?

시행착오:

3층이 최적인 이유:

실제 회사 조직도와 동일한 구조 = 검증된 시스템

4-2. PM 역할을 “15년 경험 PM”으로 구체화한 이유

초기 실패:

PM 역할: "관리자"
결과: AI가 애매하게 행동, 판단 기준 없음, 일관성 개판

개선 후:

PM 역할: "15년 경험의 프로젝트 매니저"
구체적 역할: "대화 분석, 전문가 선택, 리소스 조정"
결과: 명확한 판단 기준, 일관된 의사결정

비유:

4-3. 위험도 5단계 시스템의 과학적(?) 근거

Level 5 (Very Low) - CSS 색깔 바꾸기:

Level 1 (Critical) - 결제 시스템:

왜 5단계? 왜 홀수?

4-4. 동적 전문가 선택 시스템

왜 미리 정해놓지 않고 실시간으로 선택?

고정 방식의 한계:

사용자: "쇼핑몰 만들어줘"
시스템: "웹 개발자 투입"
사용자: "아 그리고 결제도 있어야 해"
시스템: "어? 결제 전문가도 필요한데... 처음부터 다시?"

동적 방식의 장점:

사용자: "쇼핑몰 만들어줘" 
PM: "웹 개발자 투입"
사용자: "결제도 있어야 해"
PM: "알겠습니다. 결제 전문가 + 보안 전문가 추가 투입"

4-5. Silent Mode vs Explicit Mode 분리 이유

실제 사용 패턴 분석:

Silent Mode (Level 5, 4):

사용자: "버튼 색깔 빨간색으로 바꿔줘"
내 마음: "이거 간단한 거니까 빨리빨리 해줬으면..."

Explicit Mode (Level 1, 2):

사용자: "결제 시스템 만들어줘"  
내 마음: "이거 큰 일이니까 계획 좀 들어보고 싶어..."

인간의 자연스러운 기대치에 맞춤:

4-6. 자연어 대화 학습 시스템

기존 문제:

나: "로그인 기능 만들어줘"
나: "아 그리고 이건 보안 관련이니까 보안 전문가 관점에서"
나: "UI도 예쁘게 만들어야 하니까 UX도 고려해줘"
나: "모바일도 지원해야 하니까..."

PCIP 해결:

나: "로그인 기능 만들어줘. 보안이 걱정되는데 UI도 예뻐야 해"
AI: *대화 흐름 분석* → Backend + Security + UX 전문가 자동 투입

실제 팀장처럼:

4-7. External Knowledge Integration (외부 지식 통합)

왜 이런 기능을 넣었나?

실제 겪은 문제:

해결책:

AI의 3단계 신뢰도 체크:
- High: 내 지식으로 충분 → 바로 답변
- Medium: 외부 자료 참조해서 검증 → 검증된 답변  
- Low: "전문 자료 찾아보겠습니다" → 정확한 정보 제공

“모르면 찾아봐” 시스템:

4-8. 템플릿 시스템의 필요성

템플릿 없을 때 문제:

같은 질문해도:
- 어떨 때는 코드만 던져줌
- 어떨 때는 설명만 길게
- 어떨 때는 형식이 완전 다름
→ 예측 불가능, 일관성 없음

템플릿 적용 후:

Silent Mode: 항상 [분석] → [실행] → [간단 설명] 순서
Explicit Mode: 항상 [상세 분석] → [계획] → [승인 요청] → [실행] 순서

실제 회사 업무와 동일:

4-9. 3중 품질 검증 시스템

검증 시스템 없을 때:

AI가 코드 만들어줌 → 나는 그냥 믿고 씀 → 나중에 문제 발견
"아 왜 이렇게 만들었지?" → 다시 수정 → 시간 낭비

3중 검증 시스템:

1. Child: 문법적 정확성, 기본 동작 확인
2. Parent: 도메인별 품질 기준 (보안, 성능, UX 등)
3. PM: 전체 프로젝트 일관성, 아키텍처 맞는지 확인

실제 효과:


📊 Part 5: Before & After 비교 (냉정한 평가)

개발 프로세스 비교

Before (기존 AI):

요청 → 빠른 구현 → 문제 발견 → 수정 → 또 문제 → 또 수정 → ...
1시간 작업이 결국 1주일로 늘어남

After (PCIP):

요청 → 분석 → 계획 → 한 번에 제대로 구현 → 완료
처음엔 좀 느리지만 전체적으로 훨씬 빠름

실제 사용 후기

장점:

단점:


🎯 Part 6: 실제 적용 가이드

추천 대상:

비추천 대상:

실사용 팁:

  1. 처음엔 간단한 작업부터 → Silent Mode 체험
  2. 복잡한 작업으로 점진적 확대 → Explicit Mode 체험
  3. 자연스럽게 대화하기 → “보안이 걱정돼”, “성능이 중요해” 등
  4. 결과물 검토하기 → AI도 완벽하지 않으니 최종 확인은 필수

💡 결론: 전체 설계 철학

“AI를 단순 도구가 아닌 숙련된 팀원으로 만들자”

= PCIP Framework 탄생


P.S.

사용법

SystemPrompt.md 프롬프트를 시스템 프롬프트(인스트럭션)으로 적용하고 코딩하면 됨.

Cursor에서는 User Rules 또는 Project Rules, 영 말귀를 못알아 먹는다고 느껴지면 프롬프트에 시스템 프롬프트로 사용하라고 직접 붙여넣어 지시하면 됨.

물론, 내가 cursor 써서 예시도 Cursor.