핵심 요점
- MIT 라이선스 — 상업적 이용을 포함해 무료로 사용, 수정, 자체 호스팅 가능
- GitHub 저장소 stanfordnlp/dspy는 스타 37,900개, 포크 3,300개를 돌파(2022년 12월 Stanford NLP에서 시작)
- PyPI 패키지
dspy, 현재 버전 3.3.1(2026년 8월 21일) — 활발히 유지보수되고 있음 - 핵심 추상화: Signature(타입 지정 입출력), Module(Predict, ChainOfThought, ReAct), Optimizer(BootstrapFewShot, MIPROv2, GEPA)
- 카테고리: LLM 프로그램을 위한 프롬프트/가중치 최적화 — LangChain이나 CrewAI 같은 멀티 에이전트 오케스트레이션 프레임워크가 아님
- 설치:
pip install dspy, 프로그램 실행 전 LLM 제공업체 설정 필요
📍 한 문장으로
DSPy는 Stanford NLP의 무료 MIT 라이선스 Python 프레임워크로, 개발자가 타입 지정 Signature와 Module로 LLM 작업을 프로그래밍하게 해주며, 수동 프롬프트 엔지니어링 대신 MIPROv2 같은 알고리즘으로 프롬프트와 few-shot 예시를 자동 최적화한다.
💬 쉽게 말하면
DSPy를 사용하면 LLM이 해야 할 일 — 입력, 출력, 단계 — 을 코드로 설명하고, 프레임워크가 예시를 대상으로 여러 옵션을 테스트해 실제로 가장 좋은 프롬프트 문구를 스스로 찾아준다. 직접 추측하고 프롬프트 텍스트를 손으로 편집할 필요가 없다.
📌참고: DSPy는 이 시리즈의 대부분 에이전트 프레임워크와는 다른 문제를 해결합니다 — 멀티 에이전트 대화를 오케스트레이션하는 대신 파이프라인 내부의 프롬프트를 최적화합니다. DSPy가 에이전트 및 파이프라인 프레임워크 사이에서 어디에 위치하는지는 로컬 LLM 소프트웨어 디렉터리를 참고하세요.
스탠퍼드 연구에서 프로덕션 프레임워크까지
Stanford NLP는 2022년 12월 DSPy 개발을 시작했으며, stanfordnlp/dspy GitHub 저장소는 이를 "언어 모델을 프롬프팅이 아니라 프로그래밍하기 위한 프레임워크"라고 설명합니다. 이 프로젝트는 프롬프트 문자열을 손으로 작성하는 대신 선언적 LLM 파이프라인을 컴파일한다는 학술 연구에서 출발했습니다.
이 프레임워크는 초기에 Signature와 Module을 핵심 추상화로 도입했고, 시간이 지나며 최적화 알고리즘을 확장했습니다. few-shot 예시를 빠르게 선택하는 BootstrapFewShot에 이어, 베이지안 최적화를 통해 지시문과 few-shot 예시를 공동으로 탐색하는 MIPROv2가 나왔고, 가장 최근에는 문서에서 예시와 채점 함수로부터 "품질이 수렴할 때까지" 프롬프트를 자동 조정한다고 설명하는 GEPA가 추가되었습니다.
본 리뷰 작성 시점 기준으로 DSPy는 활발히 개발되고 있습니다. PyPI의 dspy 패키지는 2026년 8월 21일 출시된 버전 3.3.1이었습니다. 프로젝트 사이트는 454명 이상의 기여자를 보고하며, Shopify, Databricks, AWS 등 기업의 프로덕션 사용 사례를 문서화하고 있습니다.
이 시리즈의 다른 여러 프레임워크와 달리, DSPy는 아카이브되지 않았고, 공식적으로 유지보수 전용 모드로 전환되지도 않았으며, 발표된 후속 프로젝트도 없습니다 — DSPy는 자신이 도입한 아이디어의, 활발히 개발되는 정본 구현체입니다.
Stanford NLP에서 개발 시작
- Date:
- 2022-12
- What it means:
- stanfordnlp/dspy 저장소와 핵심 Signature/Module 추상화가 만들어짐
BootstrapFewShot 옵티마이저
- Date:
- 초기 릴리스
- What it means:
- 빠른 기준선 옵티마이저가 학습 데이터셋에서 few-shot 예시를 부트스트랩
MIPROv2 옵티마이저
- Date:
- 이후 릴리스
- What it means:
- 베이지안 최적화를 통한 지시문과 few-shot 예시의 공동 탐색 기능 출시
GEPA 옵티마이저
- Date:
- 최근 릴리스
- What it means:
- 채점 함수에 대해 자동으로 프롬프트를 조정하는 더 새로운 옵티마이저
PyPI의 dspy 3.3.1
- Date:
- 2026-08-21
- What it means:
- 본 리뷰 시점 기준 검증된 최신 릴리스 — 활발한 개발이 계속되고 있음
📌참고: DSPy의 PyPI 패키지 이름에는 알아둘 만한 사연이 있습니다. dspy라는 이름이 원래 PyPI에서 이미 사용 중이어서, 프로젝트는 초기 릴리스를 dspy-ai로 배포했습니다. 현재 공식 패키지 이름은 dspy입니다 — 현재 설치 시에는 pip install dspy를 사용하세요.
DSPy란 무엇인가?
DSPy는 Stanford NLP가 만든 오픈소스 Python 프레임워크(MIT 라이선스, 활발히 유지보수됨, github.com/stanfordnlp/dspy)로, 사람이 프롬프트 텍스트를 수동으로 반복 조정하는 대신 언어 모델 작업을 선언적으로 프로그래밍하고, 이 선언을 최적화된 프롬프트 — 선택적으로 최적화된 가중치 — 로 컴파일하기 위한 것입니다.
- Signature: 작업의 입력과 출력을 타입으로 정의한 것. 짧은 클래스나 문자열(예:
"question -> answer")로 작성되며, 서로 다른 기반 LLM과 프롬프트 전략 간에 이식 가능 - Module: Signature를 중심으로 실행 전략을 구현하는 구성 요소 — 직접 완성을 위한
Predict, 단계별 추론을 위한ChainOfThought, 도구를 사용하는 추론 루프를 위한ReAct등 - Optimizer(이전 명칭 teleprompter): DSPy 프로그램 내부의 프롬프트와 few-shot 예시를 수동이 아니라 지표에 따라 자동으로 조정하는 알고리즘 — 대표적인 Optimizer로
BootstrapFewShot,MIPROv2,GEPA가 있음 - 프로그램 컴파일: 학습 데이터셋과 채점 함수에 대해 옵티마이저를 실행하면, 조정된 지시문과 예시가 내장된 컴파일 완료 프로그램이 생성되며, 이후 다른 DSPy 프로그램처럼 실행할 수 있음
- 모델 무관: DSPy는 내장 모델을 탑재하는 대신 사용자가 설정한 LLM 제공업체에 연결되며, 동일한 Signature/Module 코드를 다른 기반 모델에 맞춰 재최적화할 수 있음
- 멀티 에이전트 오케스트레이터가 아님: DSPy에는 CrewAI나 AutoGen처럼 여러 에이전트가 서로 통신한다는 내장 개념이 없음 — DSPy 프로그램은 일반적으로 단일 Module 파이프라인이지만,
ReAct모듈은 추론 루프 안에서 도구를 호출할 수 있음
pip install dspy
# 최소 예시: Signature + Module + Optimizer
import dspy
class AnswerQuestion(dspy.Signature):
"""Answer a question factually."""
question: str = dspy.InputField()
answer: str = dspy.OutputField()
qa = dspy.ChainOfThought(AnswerQuestion)
result = qa(question="What is the capital of France?")
print(result.answer)DSPy 비용은 얼마인가?
DSPy 자체는 MIT 라이선스 하에 무료입니다 — 구독료도, 유료 등급도, Stanford가 호스팅하는 유료 서비스도 없습니다. 비용은 자체 컴퓨팅 자원과, 설정한 LLM 제공업체의 API 요금뿐입니다.
- DSPy(오픈소스 프레임워크): MIT 라이선스 하에 영구 무료, 자체 호스팅, 사용량 제한 없음, 실행에 계정 불필요
- 호스팅 제품이나 구독 없음: DSPy는 직접 임포트하고 실행하는 라이브러리로, 관리형 서비스가 아닙니다 — 구독할 것이 전혀 없습니다
- 선택적 비용: 클라우드 모델을 로컬 모델 대신 연결하는 경우, 설정한 LLM 제공업체의 API 요금(예: 클라우드 제공업체의 토큰당 가격)이 발생
- 옵티마이저 관련 비용 고려사항: MIPROv2 같은 옵티마이저를 실행하면 최적의 프롬프트 구성을 탐색하기 위해 여러 번 LLM을 호출하므로, 프로그램 컴파일 자체에 API 호출 비용이 발생하며, 이후 컴파일된 프로그램을 실행하는 비용은 별도로 추가됩니다
DSPy를 설치하고 시작하는 방법은?
pip install dspy로 PyPI에서 DSPy를 설치하세요. 클론도, Docker도, 별도의 CLI 바이너리도 필요하지 않습니다 — DSPy는 일반적인 Python import처럼 사용됩니다.
- 1패키지를 설치합니다:
pip install dspy. - 2LLM 제공업체를 설정합니다 — 예를 들어 호스팅 모델의 경우
dspy.configure(lm=dspy.LM('openai/gpt-4o-mini', api_key='your-key'))를 사용하거나, 로컬에서 제공되는 OpenAI 호환 엔드포인트를 가리키도록 설정합니다. - 3작업의 입력과 출력을 설명하는 Signature를 정의합니다. 짧은 문자열(
"question -> answer")로 작성하거나,dspy.InputField()/dspy.OutputField()를 사용한 타입 지정 클래스로 작성할 수 있습니다. - 4Signature를 Module로 감쌉니다 — 직접 호출에는
dspy.Predict(...), 단계별 추론에는dspy.ChainOfThought(...)를 사용하고, 함수처럼 호출합니다. - 5선택 사항: 작은 학습 데이터셋과 채점 함수를 준비한 뒤,
dspy.BootstrapFewShot이나dspy.MIPROv2같은 옵티마이저를 실행해 조정된 버전의 프로그램을 컴파일합니다. - 6RAG 파이프라인,
ReAct를 이용한 에이전트 루프, 옵티마이저 설정을 포함한 전체 튜토리얼 세트는 DSPy 문서를 참고하세요.
DSPy를 실행하는 데 Docker나 GPU가 필요한가?
아닙니다. DSPy는 설정한 LLM 제공업체를 호출하는 Python 라이브러리이며, 별도로 로컬 모델 서버를 운영하지 않는 한 Docker나 로컬 GPU 하드웨어가 필요하지 않습니다.
DSPy는 로컬 모델과 함께 작동하는가?
네. 로컬 모델이 OpenAI 호환 또는 다른 지원되는 엔드포인트로 제공되고, DSPy의 LM 설정이 그 엔드포인트를 가리키도록 설정한다면 작동합니다 — DSPy 자체는 내장 모델을 제공하지 않습니다.
DSPy는 누가 사용해야 하는가?
DSPy는 이미 Python으로 LLM 파이프라인을 작성하고 있으며, 그 안의 프롬프트를 수동 시행착오가 아니라 측정 가능한 결과에 따라 조정하고 싶은 개발자에게 적합합니다. 주로 멀티 에이전트 조정이나 노코드 인터페이스가 필요한 팀에는 덜 적합합니다.
DSPy를 언제 사용하지 말아야 하는가?
작업이 실제로는 단일 파이프라인 내부의 프롬프트 최적화가 아니라 여러 에이전트를 조정하거나 서드파티 도구 통합을 연결하는 것이라면 DSPy를 피하세요.
- 비주얼 노코드 워크플로 빌더가 필요한 팀 — DSPy는 코드 우선 방식이며 드래그 앤 드롭 인터페이스가 없습니다
- 근본적으로 멀티 에이전트 조정(에이전트들이 서로에게 하위 작업을 위임)인 프로젝트 — CrewAI나 AutoGen처럼 그 패턴을 위해 만들어진 프레임워크가 구조적으로 더 적합합니다
- 손으로 작성한 단일 프롬프트만으로 이미 충분히 잘 작동하는 일회성 스크립트 — Signature, Module, 최적화 루프를 도입하면 엔지니어링 부담이 추가되며, 측정 가능하고 반복 가능한 프롬프트 개선이 필요한 경우에만 그만한 가치가 있습니다
- 정확성을 채점할 방법이 없는 작업 — DSPy의 옵티마이저는 지표 함수가 필요하므로, 레이블이 있는 예시 없이 순전히 주관적인 작업은 최적화 단계에서 얻는 이점이 거의 없습니다
- 대신 파이프라인, 지표, 학습 데이터셋을 갖추고 있고 프롬프트 엔지니어링 단계를 자동화하고 재현 가능하게 만들고 싶을 때 정확히 DSPy를 사용하세요
DSPy 대 대안
DSPy는 대부분의 에이전트 오케스트레이션 프레임워크와는 다른 카테고리에 속합니다. 여러 에이전트를 조정하는 대신 파이프라인 내부의 프롬프트와 few-shot 예시를 최적화합니다. 가장 가까운 비교 대상은 핵심 역할은 DSPy와 다르지만, LLM 파이프라인을 구축하기 위한 다른 Python 프레임워크들입니다.
도구 | 핵심 역할 | 라이선스 | 상태 | 최적 용도 |
|---|---|---|---|---|
| DSPy | 프롬프트/가중치 최적화 | MIT | 활발함 | 지표에 따른 프롬프트 조정 |
| LangChain | 범용 LLM 파이프라인 구축 | MIT | 활발함 | 가장 폭넓은 통합 생태계 |
| LlamaIndex | RAG 중심 데이터 프레임워크 | MIT | 활발함 | 검색 증강 파이프라인 |
| Semantic Kernel | 구조화된 프롬프트/스킬 구성 | MIT | 활발함(MAF로 수렴 중) | 엔터프라이즈 .NET/Python/Java SDK |
이 표는 DSPy를 멀티 에이전트 오케스트레이터가 아니라 개념적으로 가장 가까운 Python 파이프라인 프레임워크와 비교합니다 — DSPy는 프롬프트 최적화가 아니라 에이전트 조정을 해결하는 CrewAI나 AutoGen과 직접 경쟁하지 않습니다.
DSPy를 평가할 때 흔한 실수
이러한 실수는 DSPy를 멀티 에이전트 프레임워크처럼 다루거나, 프레임워크의 실제 목적인 최적화 단계를 건너뛰는 데서 비롯됩니다.
자주 묻는 질문
DSPy는 여전히 유지보수되고 있는가?
네. stanfordnlp/dspy 저장소는 활발히 개발되고 있으며, 본 리뷰 시점 기준 PyPI의 dspy 패키지는 2026년 8월 21일 출시된 버전 3.3.1이었습니다.
DSPy는 무료로 사용할 수 있는가?
네. DSPy는 MIT 라이선스이며 상업적 이용, 수정, 자체 호스팅이 무료입니다. 구독료나 호스팅 제품 비용이 없습니다.
DSPy와 LangChain의 차이는 무엇인가?
LangChain은 폭넓은 통합 생태계를 갖춘 범용 LLM 파이프라인 구축 프레임워크입니다. DSPy는 타입 지정 Signature와 Module로 작업을 프로그래밍하는 데 특히 집중하며, 이후 지표에 따라 프롬프트와 few-shot 예시를 자동으로 최적화합니다. 둘은 서로 다르면서도 상호 보완적인 문제를 해결합니다.
DSPy의 Signature와 Module이란 무엇인가?
Signature는 작업의 입력과 출력을 타입으로 정의한 것입니다(예: "question -> answer"). Module은 Signature를 중심으로 실행 전략을 구현합니다 — 직접 완성을 위한 Predict, 단계별 추론을 위한 ChainOfThought, 도구를 사용하는 추론 루프를 위한 ReAct.
DSPy의 옵티마이저란 무엇인가?
이전에 teleprompter라고 불렸던 옵티마이저는 지표와 학습 데이터셋에 따라 DSPy 프로그램 내부의 프롬프트와 few-shot 예시를 자동으로 조정하는 알고리즘입니다 — 대표적인 옵티마이저로 BootstrapFewShot, MIPROv2, GEPA가 있습니다.
DSPy는 어떻게 설치하는가?
pip install dspy를 실행하세요. 이는 현재 공식 PyPI 패키지 이름이며, 더 오래된 dspy-ai 패키지가 그보다 먼저 존재했습니다.
DSPy는 CrewAI나 AutoGen 같은 멀티 에이전트 프레임워크를 대체하는가?
아닙니다. DSPy는 파이프라인 내부의 프롬프트를 최적화하며, CrewAI나 AutoGen처럼 서로 통신하는 여러 에이전트를 오케스트레이션하지 않습니다. 두 카테고리는 경쟁 관계가 아니라 상호 보완적입니다.
DSPy는 어떤 라이선스로 배포되는가?
상업적 이용을 무료로 허용하고, 수정과 자체 호스팅을 허용하는 MIT 라이선스입니다.
DSPy는 누가 만들었는가?
DSPy는 Stanford NLP에서 만들어졌으며, 개발은 2022년 12월에 시작되었습니다. 프로젝트는 454명 이상의 기여자를 보고하며, Shopify, Databricks, AWS 등 기업의 프로덕션 사용 사례를 문서화하고 있습니다.
DSPy는 GitHub 스타가 몇 개인가?
2026년 9월 기준 stanfordnlp/dspy 저장소는 GitHub 스타 37,900개, 포크 3,300개를 돌파했습니다.
