AI 코딩 도구 써보셨나요? Claude Code나 Cursor 같은 도구들이 정말 편하긴 한데... 가격 보고 놀라신 분들 많으실 거예요.

"Claude Max가 월 200달러...?" 😱

그런데 말이죠, 월 3달러로 비슷한 수준의 AI 코딩 어시스턴트를 쓸 수 있다면 어떨까요?

오늘은 중국 AI 기업 Z.ai(구 Zhipu AI)에서 만든 GLM 4.7 모델을 Claude CodeOpenCode에 연동하는 방법을 A to Z로 알려드릴게요.


1. GLM 4.7이 뭔가요?

GLM 4.7은 중국의 AI 기업 Z.ai(구 Zhipu AI)에서 2024년 12월 22일에 출시한 최신 대규모 언어 모델이에요.

핵심 스펙

항목 내용
파라미터 약 3,550억 개 (활성화: 320억)
컨텍스트 윈도우 200,000 토큰
최대 출력 128,000 토큰
추론 속도 초당 55 토큰
아키텍처 MoE (Mixture of Experts)

주요 특징

🧠 Thinking 기능

  • 답변 전에 "생각"하는 과정을 거쳐요
  • 복잡한 코딩 작업에서 더 정확한 결과를 내놓죠

🔧 에이전틱 코딩에 최적화

  • Claude Code, Cline, Roo Code 같은 코딩 에이전트와 잘 맞아요
  • 여러 단계의 작업도 안정적으로 수행해요

💰 오픈 웨이트

  • 모델 가중치가 공개되어 있어서 로컬에서도 돌릴 수 있어요
  • Hugging Face에서 다운로드 가능!

2. 왜 GLM 4.7을 써야 할까요?

벤치마크 성능

GLM 4.7은 주요 코딩 벤치마크에서 Claude Sonnet 4.5와 비슷하거나 더 좋은 성능을 보여줘요.

벤치마크  GLM 4.7  Claude Sonnet 4.5
SWE-bench Verified 73.8% ~72%
LiveCodeBench v6 84.9% ~82%
τ²-Bench (도구 사용) 87.4% -

가격 비교 (핵심!)

여기가 진짜 중요한 부분이에요.

서비스  월 가격  5시간당 프롬프트
Claude Max 5x $100 ~200개
Claude Max 20x $200 ~800개
GLM Coding Lite $3 ~120개
GLM Coding Pro $15 (분기당 $41) ~600개
GLM Coding Max $30 (분기당 $81) ~2,400개

3달러로 Claude Pro($20)의 약 3배 사용량을 얻을 수 있어요! 🎉


3. 사전 준비: API 키 발급받기

GLM 4.7을 사용하려면 먼저 Z.ai에서 API 키를 발급받아야 해요.

Step 1: Z.ai 회원가입

  1. Z.ai 공식 사이트에 접속해요
  2. 우측 상단 Sign Up 클릭
  3. 이메일 또는 소셜 계정으로 가입

Step 2: GLM Coding Plan 구독 (선택)

방법 A: 구독 플랜 사용 (추천)

  1. Z.ai 구독 페이지로 이동
  2. 원하는 플랜 선택:
    • Lite: $3/월 (입문용)
    • Pro: 약$40/분기 (중급 사용자)
    • Max: 약$80/분기 (헤비 유저)
  3. 결제 정보 입력 후 구독 완료

방법 B: API 종량제 사용

구독 없이 사용한 만큼만 내고 싶다면 API 종량제도 가능해요.

  • 입력: 100만 토큰당 $0.16
  • 출력: 100만 토큰당 $0.80

Step 3: API 키 생성

  1. Z.ai API 키 관리 페이지로 이동
  2. Create new key (또는 "Add New Key") 클릭
  3. 키 이름 입력 후 생성
  4. ⚠️ 중요: 생성된 키를 바로 복사해서 안전한 곳에 저장하세요!
    • 키는 한 번만 표시되고, 다시 볼 수 없어요
예시 키 형태: sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

4. Claude Code에 GLM 4.7 연동하기

이제 본격적으로 연동해볼게요. Claude Code가 뭔지 모르시는 분들을 위해 간단히 설명하면, Anthropic에서 만든 터미널 기반 AI 코딩 어시스턴트예요.

Step 1: Claude Code 설치

먼저 Node.js가 설치되어 있어야 해요. 없다면 Node.js 공식 사이트에서 설치하세요.

# Claude Code 전역 설치
npm install -g @anthropic-ai/claude-code

Step 2: 설정 파일 수정

Claude Code의 설정 파일을 수정해서 Z.ai API를 사용하도록 바꿔줄게요.

macOS/Linux:

# 설정 파일 열기
nano ~/.claude/settings.json

Windows:

메모장으로 %USERPROFILE%\.claude\settings.json 파일 열기

Step 3: 설정 내용 입력

아래 내용을 settings.json에 입력하세요:

{
  "env": {
    "ANTHROPIC_AUTH_TOKEN": "여기에_Z.ai_API_키_입력",
    "ANTHROPIC_BASE_URL": "https://api.z.ai/api/anthropic",
    "API_TIMEOUT_MS": "3000000",
    "ANTHROPIC_DEFAULT_HAIKU_MODEL": "glm-4.5-air",
    "ANTHROPIC_DEFAULT_SONNET_MODEL": "glm-4.7",
    "ANTHROPIC_DEFAULT_OPUS_MODEL": "glm-4.7"
  }
}

각 항목 설명:

설명
ANTHROPIC_AUTH_TOKEN Z.ai에서 발급받은 API 키
ANTHROPIC_BASE_URL Z.ai의 Anthropic 호환 엔드포인트
API_TIMEOUT_MS 타임아웃 시간 (밀리초)
ANTHROPIC_DEFAULT_SONNET_MODEL 기본 모델을 GLM 4.7로 설정

Step 4: Claude Code 실행

# 프로젝트 디렉토리로 이동
cd your-project

# Claude Code 실행
claude

Step 5: 연동 확인

Claude Code 안에서 /status 명령어를 입력하면 현재 사용 중인 모델을 확인할 수 있어요.

> /status

glm-4.7이 표시되면 성공이에요! 🎉


5. OpenCode에 GLM 4.7 연동하기

OpenCode는 오픈소스 AI 코딩 에이전트예요. Claude Code와 비슷하지만 더 유연하게 여러 모델을 지원하죠.

Step 1: OpenCode 설치

# npm으로 설치
npm install -g opencode-ai

# 또는 설치 스크립트 사용
curl -fsSL https://opencode.ai/install.sh | bash

Step 2: 인증 설정

# OpenCode 인증 로그인
opencode auth login

실행하면 프롬프트가 나와요:

┌ Add credential
│
◆ Select provider
│ ● Z.AI Coding Plan    ← 이거 선택!
│ ○ Z.AI
│ ○ OpenAI
│ ○ Anthropic
│ ...
└

Z.AI Coding Plan을 선택하고, 발급받은 API 키를 입력하세요.

Step 3: OpenCode 실행

# OpenCode 시작
opencode

Step 4: 모델 선택

OpenCode 안에서 /models 명령어를 입력하면 사용 가능한 모델 목록이 나와요.

> /models

목록에서 GLM-4.7을 선택하세요.

대안: 설정 파일로 직접 설정

opencode.json 파일을 프로젝트 루트에 만들어서 설정할 수도 있어요:

{
  "provider": {
    "zai": {
      "apiKey": "여기에_API_키_입력",
      "baseUrl": "https://api.z.ai/api/anthropic"
    }
  },
  "model": "zai/glm-4.7"
}

6. 연동 후 확인 & 트러블슈팅

연동이 잘 됐는지 확인하는 방법

Claude Code:

claude
> /status
# GLM-4.7이 표시되면 성공!

OpenCode:

opencode
> /models
# GLM-4.7 선택되어 있으면 성공!

자주 발생하는 문제와 해결법

문제 1: "API key invalid" 에러

원인: API 키가 잘못 입력됨

해결:

  1. Z.ai 대시보드에서 키가 활성 상태인지 확인
  2. 키에 앞뒤 공백이 있는지 확인
  3. 새 키를 발급받아 다시 시도

문제 2: 설정 변경이 적용 안 됨

해결:

  1. 모든 Claude Code / OpenCode 창 닫기
  2. 새 터미널 열기
  3. 다시 실행
# Claude Code의 경우
rm ~/.claude/settings.json  # 기존 설정 삭제
# 다시 설정 파일 생성

문제 3: 연결 타임아웃

해결: API_TIMEOUT_MS 값을 늘려보세요

{
  "env": {
    "API_TIMEOUT_MS": "5000000"
  }
}

문제 4: JSON 파싱 에러

해결: JSON 유효성 검사 도구에서 설정 파일 검사


7. 요금제 비교: 진짜 얼마나 저렴할까?

Claude vs GLM Coding Plan 상세 비교

 

항목  Claude Pro  Claude Max 5x  GLM Lite  GLM Pro
월 가격 $20 $100 $3 ~$40
5시간당 사용량 ~40개 ~200개 ~120개 ~600개
비용 대비 효율 기준 5x 18x 30x

연간 비용 계산

예를 들어, 현재 Claude Max 5x ($100/월)를 쓰고 있다면:

  • Claude Max 5x 연간: $100 × 12 = $1,200
  • GLM Coding Pro 연간: $40 × 4 = $160
  • 절감액: $1,080/년 💰

어떤 플랜을 선택해야 할까?

사용 패턴  추천 플랜
취미 개발자, 가끔 코딩 GLM Lite ($3/월)
일반 개발자 GLM Pro (약$40/분기)
헤비 유저, 에이전트 자주 사용 GLM Max (약$80/분기)
기업, 안정성 최우선 Claude Max + GLM Pro 병행

8. 실제 사용 후기

장점 👍

1. 가성비 끝판왕

"월 3달러에 이 정도면... 진짜 가격 파괴예요."

2. Claude Code와 완벽 호환

"설정만 바꾸면 기존 워크플로우 그대로 쓸 수 있어요."

3. 코딩 성능 준수

"프론트엔드 UI 생성이 특히 깔끔해요. Vibe Coding에 강점이 있네요."

4. Thinking 모드

"복잡한 리팩토링 작업할 때 생각 과정이 보여서 신뢰가 가요."

단점 👎

1. 속도가 조금 느릴 수 있음

"Claude Sonnet보다 응답이 약간 느릴 때가 있어요."

2. 특정 프레임워크 지식 부족

"최신 프레임워크(Tailwind 최신 버전 등)는 좀 헤맬 때 있어요."

3. 영어가 아닌 언어 지원

"한국어 주석이나 변수명이 많으면 가끔 이상한 결과가 나와요."

꿀팁 🍯

  1. 간단한 작업은 Thinking 끄기: 단순 질문에는 thinking 모드 비활성화로 속도 UP
  2. 복잡한 작업은 GLM 4.7, 단순 작업은 GLM-4.5-Air 사용: 비용 절감
  3. Claude와 병행 사용: 중요한 프로젝트는 Claude, 일상적 작업은 GLM으로

9. 마무리

핵심 정리 ✨

  1. GLM 4.7은 뭐다?: Z.ai의 최신 AI 모델, 코딩에 특화
  2. 왜 쓰나?: Claude 급 성능인데 가격은 1/30
  3. 어떻게 쓰나?: settings.json만 수정하면 끝
  4. 누가 쓰면 좋나?: 비용 효율을 중시하는 개발자, 취미 개발자

시작하기 체크리스트

  • [ ] Z.ai 회원가입
  • [ ] GLM Coding Plan 구독 (또는 API 종량제)
  • [ ] API 키 발급
  • [ ] Claude Code 또는 OpenCode 설치
  • [ ] 설정 파일 수정
  • [ ] /status로 연동 확인
  • [ ] 코딩 시작! 🚀

관련 링크 모음

 

요즘 ChatGPT, Claude 같은 AI 많이 쓰시죠? 그런데 혹시 이런 생각 해보신 적 없으세요?

"AI가 똑똒한 건 알겠는데... 내 구글 드라이브 파일 좀 찾아주면 안 되나?" "슬랙 메시지 요약 좀 해줬으면 좋겠는데..."

바로 이런 문제를 해결하기 위해 등장한 게 MCP(Model Context Protocol)입니다.

오늘은 개발자가 아닌 분들도 쉽게 이해할 수 있도록 MCP가 뭔지, 왜 중요한지 차근차근 설명해 드릴게요.


1. MCP, 한 줄로 설명하면?

"AI가 외부 서비스와 대화할 수 있게 해주는 공용 언어"

지금까지 AI는 아무리 똑똒해도 '대화'만 할 수 있었어요. 마치 엄청 박식한 친구인데, 휠체어에 앉아서 움직이지 못하는 것처럼요.

MCP는 이 친구에게 손과 발을 달아주는 기술입니다.


2. USB에 비유하면 바로 이해돼요

USB 이전 시대를 기억하시나요?

  • 프린터 연결할 때 → 프린터 전용 케이블
  • 키보드 연결할 때 → PS/2 케이블
  • 카메라 연결할 때 → 또 다른 케이블
  • 외장하드 연결할 때 → 또또 다른 케이블

컴퓨터 뒤에 온갖 케이블이 스파게티처럼 엉켜있던 시절이 있었죠.

그런데 USB가 나오면서?

하나의 포트로 뭐든 연결할 수 있게 됐어요. 프린터든, 키보드든, 마우스든 다 USB 하나로 OK.

MCP도 똑같아요

USB  MCP
다양한 기기를 컴퓨터에 연결 다양한 서비스를 AI에 연결
표준화된 물리적 포트 표준화된 통신 규약
꽂기만 하면 작동 설정만 하면 AI가 접근 가능

3. MCP가 없으면 어떤 일이 벌어질까요?

개발자 입장에서 생각해 볼게요.

MCP 없는 세상 😰

"우리 회사 AI 챗봇이 슬랙도 보고, 노션도 보고, 구글 드라이브도 봤으면 좋겠어!"

→ 슬랙 연동 코드 따로 작성 (1주일) → 노션 연동 코드 따로 작성 (1주일)
→ 구글 드라이브 연동 코드 따로 작성 (1주일) → 세 개 합치느라 버그 잡기 (2주일)

총 5주일 소요 😱

MCP 있는 세상 😊

이미 만들어진 MCP 서버(연결 모듈)를 가져다 씁니다.

→ 슬랙 MCP 서버 연결 (설정 10분) → 노션 MCP 서버 연결 (설정 10분) → 구글 드라이브 MCP 서버 연결 (설정 10분)

총 30분 소요 🎉


4. MCP의 구조, 쉽게 이해하기

MCP는 크게 세 가지 요소로 이루어져 있어요.

┌─────────────┐     ┌─────────────┐     ┌─────────────┐
│   AI 모델   │ ←→  │  MCP 서버   │ ←→  │  외부 서비스 │
│  (Claude)   │     │  (중간 다리) │     │ (Slack 등)  │
└─────────────┘     └─────────────┘     └─────────────┘

각각의 역할

AI 모델 (호스트)

  • 우리가 대화하는 AI예요
  • "슬랙에서 오늘 메시지 찾아줘"라고 요청을 보내죠

MCP 서버 (중간 다리)

  • AI의 요청을 받아서 외부 서비스가 이해할 수 있는 형태로 바꿔줘요
  • 외부 서비스의 응답을 다시 AI가 이해할 수 있게 전달해요
  • 번역가 같은 역할이죠

외부 서비스

  • Slack, Notion, Google Drive, 데이터베이스 등
  • 실제 데이터가 있는 곳이에요

5. MCP로 할 수 있는 것들

🔧 도구 사용 (Tools)

AI가 직접 뭔가를 "실행"할 수 있어요.

  • 이메일 보내기
  • 파일 생성하기
  • 캘린더에 일정 추가하기
  • 코드 실행하기

예시 대화:

나: "내일 오후 3시에 팀 미팅 일정 잡아줘" AI: (Google Calendar MCP를 통해) "내일 오후 3시에 '팀 미팅' 일정을 추가했습니다!"

📚 리소스 접근 (Resources)

AI가 외부 데이터를 "읽어올" 수 있어요.

  • 회사 문서 검색
  • 데이터베이스 조회
  • 최신 뉴스 가져오기

예시 대화:

나: "지난주 마케팅 보고서 내용 요약해줘" AI: (Google Drive MCP를 통해 파일을 읽고) "지난주 보고서의 핵심 내용은..."

💬 프롬프트 템플릿 (Prompts)

자주 쓰는 명령어 패턴을 미리 저장해둘 수 있어요.

  • "코드 리뷰해줘" → 자동으로 상세한 리뷰 양식 적용
  • "회의록 작성해줘" → 자동으로 회의록 템플릿 적용

6. 실제로 사용되는 MCP 서버들

현재 공개되어 있는 MCP 서버들이 꽤 많아요. 몇 가지 예를 들면:

MCP  서버 할 수 있는 일
Slack 채널 메시지 읽기, 메시지 보내기
Google Drive 파일 검색, 문서 내용 읽기
Notion 페이지 조회, 데이터베이스 검색
GitHub 코드 저장소 관리, 이슈 생성
PostgreSQL 데이터베이스 조회
Puppeteer 웹 브라우저 자동화

그리고 계속해서 새로운 MCP 서버들이 만들어지고 있어요.


7. MCP가 가져올 변화

Before: AI는 "아는 척"만 했어요

나: "오늘 우리 회사 매출이 얼마야?" AI: "죄송합니다, 저는 실시간 데이터에 접근할 수 없어요..."

After: AI가 진짜 "일"을 해요

나: "오늘 우리 회사 매출이 얼마야?" AI: (사내 데이터베이스 MCP 접속) "오늘 매출은 1,234만원이고, 어제보다 15% 증가했네요!"


8. 누가 MCP를 만들었나요?

Anthropic(Claude를 만든 회사)이 2024년 말에 공개했어요.

재미있는 점은, Anthropic이 이걸 오픈소스로 풀었다는 거예요. 누구나 무료로 사용하고, 자기만의 MCP 서버를 만들 수 있어요.

왜 이렇게 했을까요?

  • AI 생태계 전체가 발전하면 결국 자기네도 이득
  • 더 많은 MCP 서버가 생기면 → Claude가 더 유용해짐 → 더 많은 사람이 사용

똑똑한 전략이죠.


9. MCP의 미래

지금은 🌱

  • 개발자들이 직접 설정해야 사용 가능
  • 기술적인 지식이 어느 정도 필요

앞으로는 🌳

  • "Slack 연결하기" 버튼 하나로 끝
  • 마치 스마트폰에서 앱 설치하듯이 간편해질 예정

상상해보세요. AI 비서에게 이렇게 말하는 날이 올 거예요:

"내 Gmail 연결하고, 캘린더도 연결해줘. 아, 그리고 회사 Notion이랑 Slack도."

그러면 AI가 알아서 연결하고, 여러분의 모든 디지털 생활을 도와주는 거죠.


10. 정리하며

MCP 핵심 포인트 ✨

  1. 뭐냐면: AI가 외부 서비스와 소통하는 표준 방식
  2. 왜 필요하냐면: AI가 대화만 하는 게 아니라 실제로 일을 하게 해줌
  3. 비유하자면: AI 세계의 USB 포트
  4. 미래에는: 클릭 몇 번으로 AI와 모든 서비스 연결

더 알아보고 싶다면?

 

프롬프트 5종 세트로 “AI 결과물 퀄리티” 고정시키기

Role / Goal / Constraints / Output format / Few-shot

AI에게 똑같은 일을 시켜도 결과가 들쭉날쭉한 이유는 대부분 프롬프트가 “지시의 구조”를 갖추지 못했기 때문입니다.
아래 5가지만 넣으면, 결과물이 “운빨”이 아니라 “설계”가 됩니다.


1) 역할(Role) 프롬프트 — “너는 누구냐?”

AI는 역할을 받으면 말투/관점/우선순위를 그 역할에 맞게 정렬합니다.
즉, 정답을 고르는 기준이 생깁니다.

✅ Role 템플릿

너는 [직업/역할]이다.
너의 전문 분야는 [도메인]이며, 목적은 [사용자에게 주는 가치]다.
답변은 [톤/스타일]로 작성해라.

✅ 예시

너는 10년차 백엔드 아키텍트다.
대규모 트래픽, 장애 대응, 비용 최적화에 강하다.
답변은 실무자에게 바로 적용 가능한 체크리스트 중심으로 써라.

2) 목표(Goal) 프롬프트 — “결과가 뭔데?”

목표는 “뭘 하라”가 아니라 “뭘 얻고 싶다” 입니다.
AI가 결과를 판단할 수 있게 만들어야 합니다.

✅ Goal 템플릿

내 목표는 [최종 산출물]을 얻는 것이다.
이 산출물은 [독자/대상]이 [상황]에서 사용할 수 있어야 한다.
성공 기준은 [완료 조건]이다.

✅ 예시

내 목표는 1페이지 분량의 서비스 장애 보고서 초안을 얻는 것이다.
운영팀/개발팀이 동시에 이해할 수 있어야 한다.
성공 기준은 재발 방지 대책이 "실행 항목"으로 끝까지 내려오는 것이다.

3) 조건(Constraints) 프롬프트 — “절대 하지 마라 / 반드시 지켜라”

조건은 결과의 품질을 고정하는 안전벨트입니다.
특히 “금지사항”을 넣으면 폭주를 막을 수 있어요.

✅ Constraints 템플릿

아래 조건을 반드시 지켜라.
- 길이: [문장 수/단어 수/페이지]
- 금지: [하지 말 것]
- 필수: [반드시 포함할 것]
- 가정: [모르면 이렇게 처리]

✅ 예시

아래 조건을 반드시 지켜라.
- 길이: 900~1200자
- 금지: 과장(‘완벽’, ‘무조건’) 표현 금지, 추측으로 단정 금지
- 필수: 원인/영향/조치/재발방지 4개 섹션 포함
- 가정: 정보가 없으면 "확인 필요"로 표기

4) 형식(Output format) 프롬프트 — “이 모양으로만 줘”

형식을 주면 결과물을 바로 붙여넣기 가능한 형태로 뽑습니다.
실무에서 가장 큰 시간 절약 포인트가 이거예요.

✅ Output format 템플릿

출력 형식은 반드시 아래를 따르라.
- 포맷: [Markdown / JSON / 표 / 목록]
- 섹션: [제목들]
- 각 섹션 규칙: [문장 길이/항목 개수]

✅ 예시 (Markdown)

출력은 Markdown으로만 작성해라.
형식:
# 제목
## 요약(3줄)
## 핵심 포인트(5개)
## 실행 체크리스트(10개)
## 주의할 함정(3개)

✅ 예시 (JSON)

출력은 JSON만 반환해라. (설명 문장 금지)
스키마:
{
  "title": string,
  "summary": string,
  "steps": [{"step": string, "reason": string}],
  "risks": [string]
}

5) 예시(Few-shot) 프롬프트 — “이렇게 쓰면 합격, 이렇게 쓰면 탈락”

Few-shot은 AI에게 정답의 스타일을 “보여주는” 방식입니다.
Role/Goal/Constraints/Format이 “규칙”이라면, Few-shot은 “모범답안”이에요.

✅ Few-shot 템플릿

아래 예시를 참고해 같은 패턴으로 작성해라.

[예시 입력]
...
[예시 출력]
...

이제 아래 입력으로 생성해라.
[내 입력]
...

✅ 예시 (요청/결과 스타일 고정)

아래 예시 스타일을 그대로 따라라.

[예시 입력]
주제: API 장애 발생
상황: 결제 지연

[예시 출력]
# 장애 보고서
## 요약(3줄)
- 결제 API 지연으로 일부 사용자 결제 실패 발생
- 원인은 DB 커넥션 풀 고갈 가능성이 높음(추가 확인 필요)
- 임시 조치 후 모니터링 강화 진행

이제 아래 입력으로 생성해라.
주제: 로그인 오류
상황: 특정 브라우저에서만 실패

✅ 실전용 “5종 세트” 통합 프롬프트 (복붙 템플릿)

아래 하나로 끝낼 수 있게 합쳐드릴게요.

[ROLE]
너는 {역할}이다. {도메인 전문성}을 기반으로 실무적으로 답해라.

[GOAL]
내 목표는 {최종 산출물}을 얻는 것이다.
대상 독자는 {대상}이며, 사용 상황은 {상황}이다.
성공 기준은 {성공 조건}이다.

[CONSTRAINTS]
- 길이: {글 길이}
- 금지: {금지사항}
- 필수 포함: {필수 요소}
- 불확실한 정보는 추측하지 말고 "확인 필요"로 표기

[OUTPUT FORMAT]
- 포맷: {Markdown/JSON/표}
- 섹션: {섹션1, 섹션2, 섹션3...}
- 각 섹션은 {항목 수/문장 규칙}을 따른다.

[FEW-SHOT EXAMPLE]
(예시 입력)
{예시 입력}
(예시 출력)
{예시 출력}

[MY INPUT]
{내가 원하는 실제 입력/주제/데이터}

🎯 언제 뭘 먼저 쓰면 되나?

  • 결과물 퀄리티 흔들림 → Output format + Constraints 먼저 넣기
  • 말투/관점이 이상함 → Role 넣기
  • 뭘 원하는지 못 알아먹음 → Goal을 “성공 기준”까지 쓰기
  • 항상 스타일이 들쭉날쭉함 → Few-shot 1개만 추가해도 고정됨

✅ 미니 예제: “포스팅 초안 생성” 프롬프트

[ROLE]
너는 IT 콘텐츠 전문 에디터다. 설명은 쉽게, 예시는 실무스럽게 써라.

[GOAL]
내 목표는 "프롬프트 5종 세트"를 소개하는 블로그 글을 만드는 것이다.
대상은 개발자/기획자이며, 바로 복붙해서 쓸 수 있어야 한다.

[CONSTRAINTS]
- 길이: 1200~1800자
- 금지: 불필요한 미사여구
- 필수: Role/Goal/Constraints/Output format/Few-shot 각각 예시 포함

[OUTPUT FORMAT]
Markdown으로 작성하고,
제목 → 개요 → 5개 섹션 → 통합 템플릿 → 마무리 한 줄로 구성해라.

[MY INPUT]
독자가 "오늘부터 바로 쓰는 느낌"이 들게 해줘.

 

자연어 명령(Natural Language)을 시스템이 이해할 수 있는 구조화된 설정 파일(YAML, JSON 등)로 변환하는 것은 MLOps 파이프라인이나 인프라 자동화(IaC)에서 매우 강력한 패턴입니다.

1. 왜 Instructor인가? (Engineering Perspective)

기존의 프롬프트 엔지니어링이 "잘 부탁해, JSON으로 줘"라고 설득하는 과정이라면, Instructor는 "이 스키마에 맞지 않으면 리턴하지 마"라고 강제하는 계약(Contract)입니다.

  • Type Safety: 런타임에 데이터 타입을 보장받습니다.
  • Validation Loop: Pydantic 검증이 실패하면, Instructor는 자동으로 에러 메시지와 함께 LLM에 재요청(Retry)을 보내 올바른 형식을 받아냅니다.
  • IDE Support: Python 객체로 반환되므로 자동 완성 및 정적 분석이 가능합니다.

2. 구현 시나리오: DB 접속 정보 생성기

사용자의 모호한 요청("운영 환경용 DB 하나 띄워줘, 타임아웃은 좀 길게")을 받아, 애플리케이션이 즉시 사용할 수 있는 Python 객체로 변환하는 과정을 구현해보겠습니다.

Step 1: 의존성 설치 및 설정

Bash
 
pip install instructor pydantic openai

Step 2: 엄격한 스키마 정의 (Pydantic)

엔지니어링의 핵심은 제약 조건입니다. 단순히 문자열을 받는 것이 아니라, Literal, Field, validator를 사용해 허용 범위를 제한합니다.

Python
 
import instructor
from pydantic import BaseModel, Field, field_validator
from typing import Literal, Optional
from openai import OpenAI

# 1. 클라이언트 패치 (Instructor가 OpenAI 클라이언트를 감쌉니다)
client = instructor.from_openai(OpenAI())

# 2. 데이터 모델 정의 (Configuration Schema)
class DBConfig(BaseModel):
    env: Literal["dev", "stage", "prod"] = Field(
        ..., description="배포할 환경. 보안 수준 결정에 사용됨"
    )
    host: str = Field(..., description="데이터베이스 호스트 주소")
    port: int = Field(5432, description="포트 번호")
    timeout: int = Field(..., description="연결 타임아웃 (초 단위)")
    use_ssl: bool = Field(True, description="SSL 연결 사용 여부")

    # 3. 엔지니어링 제약 조건 추가 (유효성 검증)
    @field_validator('timeout')
    def check_timeout(cls, v):
        if v > 60:
            raise ValueError("타임아웃은 시스템 안정성을 위해 60초를 넘을 수 없습니다.")
        return v

핵심 포인트: @field_validator가 중요합니다. 만약 LLM이 타임아웃을 100초로 설정하려 하면, Pydantic이 에러를 발생시키고 Instructor는 이 에러를 LLM에게 피드백하여 스스로 60초 이하로 수정하게 만듭니다.

Step 3: Text-to-Config 실행

이제 자연어를 객체로 변환합니다. response_model 파라미터가 핵심입니다.

Python
 
def generate_config(user_query: str) -> DBConfig:
    try:
        config = client.chat.completions.create(
            model="gpt-4o",  # 또는 gpt-3.5-turbo
            response_model=DBConfig, # 여기서 강제 변환 발생
            messages=[
                {"role": "system", "content": "당신은 시니어 인프라 엔지니어입니다."},
                {"role": "user", "content": user_query},
            ],
            max_retries=3, # 검증 실패 시 재시도 횟수
        )
        return config
    except Exception as e:
        print(f"설정 생성 실패: {e}")
        return None

# 실행 예시
query = "프로덕션 환경의 DB가 필요해. 호스트는 db.internal이고, 타임아웃은 100초로 해줘."
config_obj = generate_config(query)

if config_obj:
    print(f"--- 생성된 설정 객체 ({type(config_obj)}) ---")
    print(config_obj.model_dump_json(indent=2))

Step 4: 결과 확인 및 검증 루프의 마법

위 코드를 실행하면 어떤 일이 벌어질까요?

  1. 사용자 요청: "타임아웃 100초"
  2. LLM 1차 생성: timeout=100으로 생성 시도.
  3. Pydantic 검증: ValueError: 타임아웃은... 60초를 넘을 수 없습니다. 발생.
  4. Instructor 재요청: LLM에게 "이전 출력은 에러가 났어. 타임아웃 규칙을 지켜서 다시 만들어"라고 내부적으로 요청.
  5. LLM 2차 생성: 문맥을 이해하고 timeout=60 (최댓값) 혹은 그 이하로 수정하여 반환.
  6. 최종 결과:
JSON
 
{
  "env": "prod",
  "host": "db.internal",
  "port": 5432,
  "timeout": 60,
  "use_ssl": true
}

LLM이 스스로 값을 수정(Self-Correction)하여 엔지니어링 제약 조건을 충족시키는 객체를 반환했습니다.


3. 심화 응용: 계층적 설정 (Nested Configuration)

단일 객체를 넘어, 복잡한 마이크로서비스 설정(MSA)이나 쿠버네티스 리소스 정의도 가능합니다.

Python
 
from typing import List

class ServiceConfig(BaseModel):
    name: str
    cpu_limit: str
    memory_limit: str

class DeploymentConfig(BaseModel):
    version: str
    replicas: int
    services: List[ServiceConfig] # 중첩된 구조

# 복잡한 구조도 Pydantic 모델만 정의되어 있다면 
# LLM은 해당 구조를 정확히 파싱하여 객체화합니다.

요약

Instructor를 활용한 Text-to-Config 패턴은 다음과 같은 이점을 제공합니다:

  1. 결정론적 출력: 확률적인 텍스트가 아닌, 컴파일 가능한 코드를 얻습니다.
  2. 자동 오류 수정: 유효성 검사 로직을 프롬프트가 아닌 코드(Python)로 정의하여 신뢰성을 높입니다.
  3. 시스템 통합: 생성된 결과물(config_obj)은 즉시 config_obj.host와 같이 코드 내에서 변수로 활용 가능합니다.

이 기술은 LLM을 단순한 '챗봇'에서 '지능형 설정 관리자'로 격상시키는 핵심 엔지니어링 기법입니다.

 

 

Text-to-Config: 자연어 설정 시스템 구축 가이드
LLM에서 SLM으로, 복잡한 설정을 말로 끝내는 기술 
Prologue. 더 이상 버튼을 누르게 하지 마라

Part 1. 아키텍처 설계 (Architecture & Paradigm)
Chapter 1. Text-to-Configuration 패러다임
1.1 레거시 관리 시스템(Admin)의 UX 한계와 유지보수 비용
1.2 확률적 모델(LLM)과 결정론적 시스템(Rule Engine)의 하이브리드 설계
1.3 전체 시스템 아키텍처: Orchestrator, SLM, and Validator
Chapter 2. 스키마 주도 개발 (Schema-Driven Development)
2.1 자연어 처리의 목적지: Target JSON Schema 설계 및 정규화
2.2 Instructor와 Pydantic: LLM 출력을 Python 객체로 즉시 매핑하기
2.3 도메인 특화 언어(DSL) 정의: 주차 요금 정책의 구조화 패턴

Part 2. 데이터 엔지니어링 (Data Engineering)
Chapter 3. 합성 데이터(Synthetic Data) 전략
3.1 Model Distillation: 교사 모델(Teacher)로 학생 모델(Student) 가르치기
3.2 Evol-Instruct: 단순 명령을 복합 시나리오로 진화시키는 기술
3.3 엣지 케이스(Edge Case) 확보: 상충 조건 및 예외 처리 로직

Part 3. 모델 엔지니어링 (Model Engineering)
Chapter 4. SLM 선정 및 베이스라인 구축
4.1 엣지(Edge) 디바이스를 위한 최신 SLM 벤치마크 및 선정 기준
4.2 MoE (Mixture of Experts) 아키텍처의 이해와 활용
4.3 프롬프트 엔지니어링: System Prompt 최적화와 Few-Shot 테크닉
Chapter 5. 도메인 적응을 위한 미세 조정 (Fine-tuning)
5.1 효율적인 학습을 위한 PEFT와 DoRA(Weight-Decomposed LoRA)
5.2 Reasoning Traces 학습: CoT(Chain-of-Thought) 데이터셋 구축
5.3 Function Calling 및 Tool Use 능력 극대화

Part 4. 시스템 엔지니어링 및 검증 (System & Validation)
Chapter 6. 결정론적 추론과 제약 (Constrained Generation)
6.1 문법 제약(Grammar Constraint)을 통한 JSON 출력 강제 기술
6.2 XGrammar와 Outlines 라이브러리 심층 분석
6.3 재시도(Retry) 없는 시스템: 첫 번째 시도에 완벽한 결과 얻기
Chapter 7. 논리적 정합성 검증 (Logical Reasoning)
7.1 정책 충돌 감지(Conflict Detection) 알고리즘 구현
7.2 Reflection Pattern: AI의 자가 비평 및 수정 루프
7.3 시뮬레이션 엔진 연동: 영향도 분석(Impact Analysis)

Part 5. 배포 및 최적화 (Deployment & MLOps)
Chapter 8. 온디바이스 AI 최적화 (On-Device Optimization)
8.1 BitNet과 1.58-bit Quantization: 모델 압축의 혁명
8.2 하드웨어 가속: NPU와 TensorRT-LLM 활용
8.3 Speculative Decoding: 작은 모델로 큰 모델 가속하기
Chapter 9. 지속적인 개선 (Continuous Learning)
9.1 GraphRAG: 지식 그래프를 활용한 맥락 기반 검색
9.2 실시간 정책 업데이트 파이프라인
9.3 사용자 피드백 루프(Human-in-the-loop) 설계

Epilogue. 인터페이스가 사라진 세상에서 개발자로 산다는 것

 

 

 

https://ebook-product.kyobobook.co.kr/dig/epd/ebook/E000012406403

 

Text-to-Config: 자연어 설정 시스템 구축 가이드 | 엄경률

eBook Text-to-Config: 자연어 설정 시스템 구축 가이드 | GUI의 종말과 에이전틱 인터페이스(Agentic Interface)의 탄생 “왜 기계를 쓰기 위해 인간이 기계어를 배워야 하는가?” 이 질문은 지난 30년간 세

ebook-product.kyobobook.co.kr

https://www.yes24.com/product/goods/172520424

 

[전자책] Text-to-Config: 자연어 설정 시스템 구축 가이드 | 엄경률 | 콩콩 컴퍼니 - 예스24

GUI의 종말과 에이전틱 인터페이스(Agentic Interface)의 탄생“왜 기계를 쓰기 위해 인간이 기계어를 배워야 하는가?”이 질문은 지난 30년간 세상을 지배해온 GUI(Graphic User Interface) 권력에 던지는 선

www.yes24.com

 

오늘은 소프트웨어 개발과 기획(PM/PO) 분야에 불어닥친 거대한 변화의 바람, 바로 PRD(제품 요구사항 정의서)의 역할 변화에 대해 이야기해 보려 합니다.

우리가 흔히 '기획서'라고 부르는 PRD는 오랫동안 개발의 성경처럼 여겨져 왔습니다. 하지만 생성형 AI와 AI 에이전트(AI Agent)의 등장은 이 문서의 본질을 완전히 뒤흔들고 있습니다.

최근 콩콩 컴퍼니에서 출판한 책 <AI 에이전트 시대, 새로운 개발기획 방법론>의 내용을 바탕으로, 앞으로 기획자가 갖춰야 할 새로운 문서 작성의 기준인 AI-Spec에 대해 정리해 드립니다.


1. 과거의 PRD: 인간을 위한 '대화 촉진제'

지금까지 우리가 작성해 온 PRD의 핵심 독자는 '사람(개발자, 디자이너)'이었습니다.

이 문서는 완벽한 설계도라기보다는, 팀원들의 생각을 일치시키기 위한 '동기화 도구'에 가까웠습니다.

  • 무엇을 담았나: 배경(Why), 비즈니스 목표(Goals), 사용자 페르소나, 와이어프레임 등.
  • 어떻게 쓰였나: "여기서 결제 버튼 위치는 어때요?", "소셜 로그인 API는 어디 걸 쓸까요?"와 같은 질문과 토론을 유발하는 재료였습니다.

아날로그 비유: 건축가의 스케치

과거의 PRD는 건축가가 건물의 비전을 그린 '컨셉 스케치'와 같습니다. 아름답고 영감을 주지만, 이것만으로는 건물을 지을 수 없습니다. 구조 공학자, 전기 기술자(개발자)와의 수많은 논의를 통해 빈틈을 채워야만 비로소 건물이 올라갑니다.


2. 미래의 AI-Spec: 기계를 위한 '실행 청사진'

하지만 코드를 직접 짜는 AI 에이전트의 시대에 기존의 PRD는 무용지물이 될 수 있습니다. AI는 행간을 읽지 못하며, 모호한 지시는 엉터리 코드(Garbage Code)를 낳을 뿐입니다.

이제 기획서는 대화의 시작점이 아니라, 대화가 끝난 후의 완벽한 최종 결과물이어야 합니다. 책에서는 이를 AI-Spec이라고 정의합니다.

  • 무엇을 담아야 하나: Why와 What은 기본이고, 극도로 정밀한 How가 필요합니다.
    • 명시적 규칙 (Explicit Rules): 예외 없는 유효성 검사 규칙 (e.g., 비밀번호 복잡도 조건)
    • 상태 머신 (State Machines): 데이터의 상태 변화 흐름 (e.g., 결제 대기  결제 완료 불가역 조건)
    • 데이터 스키마 (Data Schema): userId(Integer), email(String) 등 필드 타입 정의
    • API 계약 (API Contracts): 요청과 응답의 정확한 JSON 구조 및 에러 코드
    • 예외 처리 (Edge Case Handling): "비밀번호 5회 오류 시 30분 잠금" 등 구체적 대응 로직

아날로그 비유: 3D 프린터의 CAD 설계도

AI-Spec은 3D 프린터에 입력하는 정밀한 CAD 파일입니다. 치수, 재질, 내부 구조가 마이크로미터 단위로 정의되어야 합니다. 프린터(AI)는 질문하지 않습니다. 설계도에 적힌 대로 출력할 뿐입니다. 결과물이 이상하다면? 그건 기계 탓이 아니라 설계도(기획서) 탓입니다.


3. 한눈에 보는 변화: PRD vs AI-Spec

구분 과거의 PRD 미래의 AI-Spec
핵심 역할 대화의 시작점 (질문 유발) 코드 생성 엔진의 입력값 (명령)
주요 독자 인간 (기획자, 개발자, 디자이너) 기계 (AI 에이전트), 인간 검수자
핵심 가치 영감, 비전, 설득력 정밀함, 완전성, 논리적 완결성
좋은 문서란? 읽기 쉽고 이해하기 쉬운가? 기계가 해석하기에 모호함이 없는가?
관계 개발을 위한 '가이드' 코드를 생성하는 '소스(Source)'

4. 마치며: 패러다임의 전환

이 책이 시사하는 바는 명확합니다. 기획서의 역할 변화는 단순히 문서 양식이 바뀌는 것이 아닙니다. 개발의 중심축이 '사람의 손끝(코딩)'에서 '사람의 머릿속(정교한 설계)'으로 이동하고 있다는 것입니다.

이제 기획자는 단순히 "이런 기능을 만들어주세요"라고 요청하는 사람이 아니라, AI라는 강력한 개발자를 이끄는 로직의 설계자가 되어야 합니다.

이 책을 추천합니다

  • 책 제목: AI 에이전트 시대, 새로운 개발기획 방법론
  • 부제: 기획서가 ‘바로 코드’로 변환되는 시대
  • 추천 대상: AI 코딩 도구를 도입하려는 조직, PM/PO, 그리고 AI 시대의 생존 전략을 고민하는 모든 IT 종사자

 

교보문고 전자책 https://ebook-product.kyobobook.co.kr/dig/epd/ebook/E000012211825

 

AI 에이전트 시대, 새로운 개발기획 방법론 | 엄경률

eBook AI 에이전트 시대, 새로운 개발기획 방법론 | 인공지능이 코드를 대신 써주는 시대, 인간의 역할은 무엇이 되어야 하는가? AI 코드 생성 모델의 등장은 단순히 개발 속도를 조금 빠르게 만드

ebook-product.kyobobook.co.kr

예스24 전자책 https://www.yes24.com/product/goods/166806943

 

[전자책] AI 에이전트 시대, 새로운 개발기획 방법론 | 엄경률 | 콩콩 컴퍼니 - 예스24

인공지능이 코드를 대신 써주는 시대,인간의 역할은 무엇이 되어야 하는가?AI 코드 생성 모델의 등장은 단순히 개발 속도를 조금 빠르게 만드는 도구의 출현을 넘어, 지난 수십 년간 이어져 온

www.yes24.com

예스24 종이책 https://www.yes24.com/product/goods/169460010

 

AI 에이전트 시대, 새로운 개발기획 방법론 | 엄경률 | 콩콩 컴퍼니 - 예스24

인공지능이 코드를 대신 써주는 시대,인간의 역할은 무엇이 되어야 하는가?AI 코드 생성 모델의 등장은 단순히 개발 속도를 조금 빠르게 만드는 도구의 출현을 넘어, 지난 수십 년간 이어져 온

www.yes24.com

알라딘 전자책 https://www.aladin.co.kr/shop/wproduct.aspx?ItemId=379011956

 

AI 에이전트 시대, 새로운 개발기획 방법론 | 엄경률

인공지능이 코드를 대신 써주는 시대, 인간의 역할은 무엇이 되어야 하는가? AI 코드 생성 모델의 등장은 단순히 개발 속도를 조금 빠르게 만드는 도구의 출현을 넘어, 지난 수십 년간 이어져 온

www.aladin.co.kr

 

+ Recent posts