5. 프롬프트 한 줄의 전체 흐름
요청 → 해석 → 실행 → 결과, 지금까지 배운 걸 하나로 이어붙이기
🧒
초딩
지금까지 예측·루프·컨텍스트·MCP·서브에이전트를 따로따로 배웠는데, 실제로 "버튼 하나 눌러서 배포까지 해줘" 라고 치면 이게 다 어떤 순서로 엮이는 거예요?🧑💻
코딩천재
실제 예시로 따라가보자. 너가 "포트 3000번 서버 배포해줘"라고 쳤다고 하자. 첫 단계는 뭘까 — 이 텍스트가 모델한테 그냥 바로 가는 걸까, 아니면 뭔가 먼저 붙는 게 있을까?🧒
초딩
3장에서 배운 거 생각하면... 지금까지의 대화 전체 + 지금 이 메시지를 합쳐서 보내는 거 아니에요?🧑💻
코딩천재
맞아. ① 조립 단계 — 시스템 프롬프트(하네스가 미리 심어둔 규칙), 지금까지의 대화 기록, 사용 가능한 도구 목록(3장의 도구 + 4장의 MCP 도구들), 그리고 방금 너의 메시지. 이걸 전부 하나의 긴 텍스트로 합쳐.🧒
초딩
그다음은요?🧑💻
코딩천재
② 추론 — 1장에서 배운 대로, 모델이 그 긴 텍스트 뒤에 이어질 토큰들을 예측해. 이번엔 "배포"라는 목표를 이루려면 먼저 뭘 확인해야 하는지 판단해서, "터미널 명령어를 실행한다"는 형식의 도구 호출 텍스트를 출력해.🧒
초딩
근데 그게 진짜 명령어인지, 그냥 텍스트인지는 누가 구분해요?🧑💻
코딩천재
바로 ③ 해석 단계 — 하네스(Claude Code)가 모델 출력을 파싱해서 "이 부분은 일반 텍스트, 이 부분은 도구 호출 형식"으로 구분해. 도구 호출이 있으면 4번으로.🧒
초딩
그럼 4번은 3장에서 본 "권한 확인"이겠네요?🧑💻
코딩천재
정확해 — ④ 권한 검사. "터미널 명령어 실행"은 위험도가 있는 도구라, 설정에 따라 사용자에게 승인을 물어보거나 자동 허용해. 승인되면 ⑤ 실행 — 실제로 명령어가 돌아가고, 그 출력(성공/실패, 로그)이 텍스트로 캡처돼.🧒
초딩
그 결과는 다시 모델한테 가는 거죠? 2장에서 배운 루프처럼.🧑💻
코딩천재
맞아 — ⑥ 재조립: 실행 결과가 대화 텍스트 뒤에 추가되고, 다시 ②번(추론)으로 돌아가. 이번엔 "명령어 실행 결과를 보니 포트 바인딩까지 필요하네" 판단하고 또 다른 도구를 부를 수도 있고, 조사가 오래 걸리는 작업이면 4장에서 배운 서브에이전트를 띄워서 위임할 수도 있어. 이 ②~⑥을 필요한 만큼 반복하다가, 더 이상 도구가 필요 없다고 판단하면 ⑦ 종료 — 순수 텍스트로 "배포 완료했습니다, URL은 이거예요"를 출력하고 루프가 끝나.💡 핵심 파이프라인
조립(대화+도구목록 합치기) → 추론(다음 토큰 예측) → 해석(텍스트 vs 도구호출 구분) → 권한검사 → 실행 → 재조립(결과를 다시 텍스트로 합침) → (도구호출 없을 때까지 반복) → 종료. 지금까지 배운 개념들은 전부 이 파이프라인의 한 단계씩을 설명한 것입니다.
🧒
초딩
오... 이제 왜 "프롬프트를 잘 써야 한다"는 말이 나오는지도 좀 알 것 같아요. ①번 조립 단계에 들어가는 내용이 부실하면 ②번 추론이 엉뚱하게 될 수밖에 없는 거네요?🧑💻
코딩천재
정확히 그거야. 모델은 ①번에서 조립된 텍스트만 보고 판단하니까, 거기 빠진 정보나 애매한 지시는 모델이 "그럴듯하게 추측"해서 메꿔. 그 추측이 니가 원한 방향이 아니면 엉뚱한 결과가 나오는 거고. 이 파이프라인을 알고 나면, 결과가 이상할 때 "어느 단계가 문제였는지" 짚을 수 있게 돼 — 그건 8장에서 다룰게.