DSL 트렌드 — 도메인이 언어를 기록한다
1. 요약
DSL(Domain-Specific Language) 은 특정 도메인 문제를 푸는 데 최적화된 작은 언어 다. SQL(1974)·HTML(1990)·Regex(1968) 같은 고전 DSL부터, Terraform HCL(2014)·Kubernetes YAML(2014)·Solidity(2014, 이더리움) 같은 현대 DSL까지 시대마다 도메인이 새 언어를 박았다. 2020년대는 LLM이 자연어와 DSL의 다리 가 되는 새 흐름이 기록되었다.
2. 배경 — 범용 언어로 풀기 어려운 도메인
범용 언어(C·Java·Python)는 어떤 도메인도 표현할 수 있다 는 강점이 있지만, 특정 도메인을 효율적으로 표현하지는 못한다. 예를 들어:
- 데이터베이스 질의 → 범용 언어로 짜면 100줄, SQL로 짜면 1줄
- 인프라 정의 → Bash 스크립트보다 Terraform HCL이 명확
- 텍스트 매칭 → 범용 코드보다 정규표현식 한 줄
도메인 전문가(DBA·DevOps·언어학자)가 자기 언어로 시스템을 박을 수 있게 하는 것이 DSL의 본질이다.
3. 핵심 사례 — 시대별 DSL
고전 DSL (1960~2000)
- SQL(1974, IBM) — 데이터베이스 질의의 표준. 50년 살아남음.
- Regex(1968, Ken Thompson) — 텍스트 패턴 매칭.
- HTML(1990, Tim Berners-Lee) — 문서 구조의 DSL.
- CSS(1996) — 스타일의 DSL.
- LaTeX(1984) — 학술 문서 조판.
현대 DSL (2010~2020)
- Terraform HCL(2014, HashiCorp) — 인프라 정의.
- Kubernetes YAML(2014) — 컨테이너 오케스트레이션.
- GraphQL(2015, Facebook) — API 질의.
- Solidity(2014) — 이더리움 스마트 컨트랙트.
- Dockerfile(2013) — 컨테이너 이미지 빌드.
LLM 시대 DSL (2020~)
- Prompt Templates — Jinja·Mustache 기반 프롬프트 DSL
- LangChain Expression Language (LCEL) — 체인을 함수형 DSL로
- Claude Markdown —
<thinking>·<answer>태그 기반 구조화 - MCP Schema — Model Context Protocol의 도구·자원 정의
- Spec Kit Markdown — Constitution → Specification → Plan → Tasks
4. 주 용도 — DSL이 기록하는 자리
DSL은 세 가지 자리 에 기록된다.
- 도메인 전문가가 직접 기록하는 자리 — DBA가 SQL을, DevOps가 Terraform을
- 반복되는 패턴을 추상화하는 자리 — 모든 프로젝트에서 같은 코드를 짜는 부담을 DSL로 해결
- 언어 자체를 다루는 자리 — 컴파일러·DSL을 만드는 도구(ANTLR·Lex/Yacc·tree-sitter)
5. 시대 설계 도구 매핑
DSL은 언어가 곧 설계 도구 라는 명제의 핵심 사례다. 일반 언어는 어떤 설계든 표현 가능 하지만, DSL은 특정 설계를 강제 한다.
- Terraform HCL → 인프라 설계를 선언형 으로 기록
- Kubernetes YAML → 시스템 설계를 원하는 상태 로 기록
- GraphQL → API 설계를 클라이언트 중심 으로 기록
- Spec Kit Markdown → 소프트웨어 설계를 명세 중심 으로 기록
각 DSL은 그 도메인의 표준 설계 패러다임을 기록한다. 이는 "언어가 설계를 강제한다" 는 강의 핵심 메시지의 정수다.
6. 강의 활용
DSL 트렌드는 강의에서 "AI 시대 새 언어 = 자연어 + DSL" 을 보여주는 사례다.
핵심 메시지 1: DSL은 LLM 시대에 죽지 않는다
오히려 번성한다. 이유는 두 가지다.
- LLM이 자연어 → DSL 변환을 잘한다. 사용자가 자연어로 의도를 박으면 LLM이 SQL·Terraform·YAML로 변환한다.
- DSL은 LLM 출력을 검증하는 척도다. 자연어는 모호하지만 DSL은 컴파일러가 있다. "LLM이 박은 SQL이 문법적으로 맞는가?" 가 자동 검증된다.
핵심 메시지 2: Prompt도 DSL이 되어가고 있다
초기 LLM 프롬프트는 자유 형식 자연어 였다. 지금은 구조화된 프롬프트 로 박히고 있다 — XML 태그·JSON·마크다운 구조·Few-shot 예시. 이는 프롬프트가 DSL로 진화 하는 신호다. 강의에서 학생들이 "프롬프트도 결국 새 언어" 임을 깨닫게 한다.
핵심 메시지 3: 모든 DSL의 뿌리는 같은 설계 원리다
SQL(1974)·Regex(1968)·HTML(1990)·Terraform(2014)·Spec Kit(2024) — 모두 다른 시대 다른 도메인이지만 같은 원리 가 기록되어 있다.
- 도메인의 본질을 작은 언어 로 기록
- 선언형 표현으로 어떻게 가 아닌 무엇 을 기록
- 컴파일러·검증기 가 결과를 보장
- 생태계 도구 가 표준화를 기록
이 50년 일관된 설계 원리 가 바로 강의의 핵심 명제 — "언어는 변해도 설계 원리는 일관된다" 의 결정적 증거다.
마지막으로 학생들에게 던지는 질문: "여러분이 다음 시대를 위해 어떤 새 DSL을 박을 것인가?" 이것이 강의의 마지막 도전이다.
출처
- Domain-specific language - Wikipedia
- Spec Kit - speckit.org
- Terraform HCL - HashiCorp
- Kubernetes YAML - kubernetes.io
- Model Context Protocol - Anthropic
그룹 시리즈
→ synthesis/group-g7 (시대 그룹 종합 카드)