Quartz Composer



쿼츠컴포저(Quartz Composer)는 애플에서 만든 비주얼 프로그래밍 언어(Visual Programming Language)이다. 주로 그래픽과 관련된 프로그래밍에 사용된다.



비주얼 프로그래밍 언어(Visual Programming Language)는 간단한 기능을 하는 상자들(상자들을 Patches라고 부른다)을 연결하여 프로그램을 구현하는 방식의 언어이다.
소스코드를 직접 작성할 필요없이, 상자를 불러오고 다른 상자와 연결하는 것만으로도 프로그램이 되기 때문에 코딩을 할줄 모르는 사람도 쉽게 사용할 수 있는 것이 장점이다.
또한 복잡한 프로그램이라도 코딩을 통해 작성했을때보다, 코드의 시각적인 구조가 한눈에 보인다는 점에서 장점이 있다. 연결된 패치들을 모아서 하나의 커다란 패치로 묶을 수도 있다.


A composition that produces a glowing, rotating cube
출처 : Quartz Composer User Guide



비주얼 프로그래밍 언어의 다른 예로는 puredata, vvvv, max/msp 등이 있다.
Facebook에서 만든 프로토타입 제작 툴인 오리가미(Origami)도 쿼츠컴포저를 기반으로 만들어진 비주얼 프로그래밍 툴이다.


이미지 : Facebook Origami



쿼츠컴포저를 비롯한 비주얼 프로그래밍 툴은 주로 디자이너나 아티스트들이 코딩을 할줄 모르더라도 쉽게 아이디어를 구현할 수 있어서, 디자인이나 예술 작품에 많이 활용이 되는 편이다.



쿼츠 컴포저를 처음 사용할 때에는 애플 개발자 사이트에 있는 가이드를 비롯해서 구글 검색으로 쉽게 튜토리얼을 찾을 수 있기 때문에 참고 하면 되겠다. 하지만 쿼츠컴포저에 대한 자료 대부분이 영어로 되어있고, 초급적인 수준을 벗어나서 더 고급 수준까지 커버가 되는 자료가 많이 없다는 것이 아쉽긴 하다.

쿼츠컴포저 사용자 가이드(Apple)
https://developer.apple.com/library/mac/documentation/GraphicsImaging/Conceptual/QuartzComposerUserGuide/

쿼츠컴포저 패치 프로그래밍 가이드(Apple)
https://developer.apple.com/library/mac/documentation/GraphicsImaging/Conceptual/QuartzComposer_Patch_PlugIn_ProgGuide/


쿼츠컴포저가 활용하기 쉬운 툴인 것은 분명하지만 직접 사용하면서 한계를 느끼는 부분도 있다
고급사용자보다는 초보들도 사용하기 쉽도록 만들어진 점 때문인지, 고급스런 기능은 배제하고 간단한 기능들 위주로 제공하는 것 같다.
그러면서도 아주 기본적인 요소들만 라이브러리에 포함되어 있어서 생각하는 것을 표현하려면 상자(패치)를 꽤나 많이 필요로 한다. 자주 쓰일 법한 기능도 기본 라이브러리에 따로 없는 경우가 많아서 기본 패치를 조합해서 구현해야 한다.
기본으로 제공되는 라이브러리에 한계가 많다고 생각한다.
(특히 if나 while같은 구문으로 쉽게 작성할 수 있는 알고리즘인데도 쿼츠컴포저에서 기본적으로 제공하는 방법으로 구현하려면 쉽지가 않은 경우가 많았다)
패치가 많아지면 많아질수록, 패치를 연결하는 작업을 일일히 해야하는 점도 문제다.

활용되는 분야는 한정적이지만
그래도 장점이 확실히 존재하기 때문에 사용하는 때가 종종 있다.
쿼츠컴포저로 만든 소스를 맥용 화면보호기나 iOS어플리케이션으로도 활용할 수 있다.
VDMX에서도 쿼츠컴포저로 만든 그래픽 소스를 불러와서 쓸 수가 있다. 뿐만아니라 VDMX내에서 쓰는 plugin을 쿼츠컴포저로 제작해서 불러올 수 있다. 때문에 VDMX와 연동해서도 종종 사용한다.




키네메(Kineme)에서 제공하는 커스텀패치와, 플러그인을 받으면 좀더 확장된 기능을 활용할 수도 있다. 무료로 제공하는 것이 많지만 구입해야 이용할 수 있는것도 있다. 키네메 홈페이지에 들어가면 쿼츠컴포저 활용에 대한 포럼과 레퍼런스도 마련되어있다.

http://www.kineme.net

키네메 외에도 개발자가 패치나 플러그인을 만들어서 배포하는 경우가 꽤 있으므로 찾아보면 쓸만한 패치를 얻을 수도 있을 것이다.


Links

쿼츠컴포저 사용자 가이드(Apple)
https://developer.apple.com/library/mac/documentation/GraphicsImaging/Conceptual/QuartzComposerUserGuide/

쿼츠컴포저 패치 프로그래밍 가이드(Apple)
https://developer.apple.com/library/mac/documentation/GraphicsImaging/Conceptual/QuartzComposer_Patch_PlugIn_ProgGuide/

키네메(Kineme)
http://www.kineme.net

오리가미(Origami)
http://facebook.github.io/origami/


댓글