DSL은 특정 비즈니스 도메인의 문제를 해결하려고 만든 언어이다. DSL은 특정 비즈니스 도메인을 인터페이스로 만든 API라고 생각할 수 있다.
DSL의 핵심은 우리의 코드의 의도가 명확히 전달되어야 하며, 동료가 쉽게 이해할 수 있도록 코드를 구현해야 한다.
- 장점
- 간결함
- 가독성
- 유지보수의 편리성
- 높은 수준의 추상화
- 집중
- 관심사 분리(Sparation of concerns)
- 단점
- DSL 설계의 어려움
- 개발 비용
- 추가 우회 계층
- 새로 배워야 하는 언어
- 호스팅 언어 한계