DSL(Domain Specific Language)을 아시나요. 블로그를 보다가 간단하게 DSL에 대해 요약해 놓은 글이 있어서 옮겨 놓습니다.
원본은 여기서 볼수 있습니다.
- DSL이 무엇인가 ? 상위 레벨의 API 위에다가 얇게 붙여 놓은것.
- DSL의 두가지 타입은 ?
- Internal : 루비, 파이썬, C#과 같은 "표준"언어를 이용해서 유연한 인터페이스로 통해 구현할수 있게 한 도메인 언어
- Externa : 언어 자체를 갖고 있어서 파싱하고 컴파일할수 있게 해주는 도메인 언어
- DSL의 중요한 속성
- 사람이 읽을수 있어야 한다. (가독성)
- 비즈니스 사용자(도메인 사용자)가 이해할 수 있어야 한다.
- DSL의 예
- XAML 은 디자이너를 위한 DSL이다.
- NHibernate는 O/R 맵핑과 퍼시스턴스를 위한 DSL이다.
- DSL을 이용할때 안좋은점
- 너무 일반적이어서 너무 읽기 쉬운 언어가 될수 있다. 언어는 아주 구체적이어야 한다.
- DSL 에러에 대한 디버깅이 어렵다. 디버깅이 너무 어려워지면 언어가 너무 일반적이 되었다는 신호로 봐야한다.
- External DSL을 이용하게 되면 DSL과 외부 API간에 레이어를 테스트 해야 한다.
- 어떻게 DSL을 잡슬수 있는가
- 기존의 도메인 모델과 API위에 DSL을 빌드하라.
- 요구사항을 가지고 DSL을 잡아라. 개발자는 비즈니스 전문가와 같이 DSL을 개발해야 한다.
- 선택할수 있는 방법에는 무엇이 있는가
- 확실한것은 없다.
- 추천 도구
- ANTlr
원본은 여기서 볼수 있습니다.
'Work & Study > TechTalk' 카테고리의 다른 글
| 편한 블로깅, 즐거운 블로깅 :-) (3) | 2007/11/07 |
|---|---|
| 요구사항과 테스트 설계 (2) | 2007/11/06 |
| DSL에 대한 간단한 요약 (3) | 2007/11/02 |
| 예측이 어려운 이유 (0) | 2007/10/29 |
| 오픈소스 소프트웨어 라이센스 가이드라인 (0) | 2007/10/26 |
| 단위테스트 코드로 스케일이 큰 시스템을 테스트 하려면 (0) | 2007/10/18 |
TAG dsl


