DSL 트렌드 — 도메인이 언어를 기록한다
Entity (인물·조직)lectureverified2026-05-09

DSL 트렌드 — 도메인이 언어를 기록한다

#vch#lecture-intro#A-language#g7

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 MarkdownConstitution → Specification → Plan → Tasks

4. 주 용도 — DSL이 기록하는 자리

DSL은 세 가지 자리 에 기록된다.

  1. 도메인 전문가가 직접 기록하는 자리 — DBA가 SQL을, DevOps가 Terraform을
  2. 반복되는 패턴을 추상화하는 자리 — 모든 프로젝트에서 같은 코드를 짜는 부담을 DSL로 해결
  3. 언어 자체를 다루는 자리 — 컴파일러·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 시대에 죽지 않는다

오히려 번성한다. 이유는 두 가지다.

  1. LLM이 자연어 → DSL 변환을 잘한다. 사용자가 자연어로 의도를 박으면 LLM이 SQL·Terraform·YAML로 변환한다.
  2. 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을 박을 것인가?" 이것이 강의의 마지막 도전이다.

출처

그룹 시리즈

synthesis/group-g7 (시대 그룹 종합 카드)