320x100
320x100

파이프라인

: 연속적인 이벤트 혹은 Job의 그룹

: 스크립트를 통해 Job을 순차적 혹은 병렬적으로 실행시키거나 이벤트들을 연속적으로 실행

: Jenkins를 사용하여 연속적인 정달 파이프 라인의 통합 및 구현을 지원하는 플러그인의 조합

: DSL (Domain Specific Language)을 통해 파이프라인을 코드로 생성

 

 

 

 

DSL (Domain Specific Language)

: 특정 도메인(산업, 분야 등 특정 영역)에 특화된 언어

: 해당 도메인의 전문가가 이해할 수 있는 형태의 고급 언어야함

 

- 내부 DSL

: API와 비슷한 개념

: 호스트 언어 구문을 이용하여 자체적으로 의존하는 무언가를 만드는 DSL

: 메타 프로그래밍의 형태로 언어 확장을 일으켜 다른 언어를 만들 수 있음

: Lisp, Ruby, Smaltalk 등의 언어

 

- 외부 DSL

: 호스트 언어와 다른 언어 (XML, Makefile 등)에서 생성된 DSL

: GUI 도구를 제공하는 것이 특징

: DSL과 범용언어(GPL)과의 경계가 모호

: 언어의 사용자가 아닌 사용자의 목적에 부합하는 이해를 할 수 있으면 외부 DSL

: Java, C#, C++ 등의 언어

 

- 장점

: 반복이 제거되고 비슷한 처리 코드는 자동 생성(템플릿) 된다.

: 프로그래밍 코드의 양이 적고 가독성이 높다

: 특정 프로그래머들과 커뮤니케이션이 쉽다 (XML, CSS, SQL 등)

 

- 단점

: 설계가 어렵다

: 잘 설계가 되지 않는다면 읽기 어려운 코드가 될 수 있다

: 하위 호환성을 유지해야 한다.

 

- 우리 주변의 DSL

: java (ANT, Maven, HQL, JMock 등)

: Ruby (Rails Validations, Rake, Capistrano, Cucumber 등)

: 기타 (SQL, CSS, Regular Expression, Make, graphviz 등)

 

 

 

 

 

Refference

 

DSL(Domain Specific Language) 이해하기

DSL(Domain Specific Language) 이해하기 1. DSL이란 특정 도메인(산업, 분야등 특정 영역)에 특화된 언어를 말한다. "문제 영역의 해결에는 그 영역의 언어를 전제로 둬야하며, 거기에서 프로그래밍 솔루

unabated.tistory.com

 

300x250
728x90