번호
6 등록일 2005-07-08
제목
콘텐츠 쿼리 언어(CQL: Content Query Language)란?

콘텐츠와이즈 CMS만의 특화된 기능중에 콘텐츠 쿼리 언어(CQL: Content Query Langauge)가 있습니다. 이번 칼럼에서는 CQL에 대해서 소개해보도록 하겠습니다.

이것은 관계형 데이터베이스에서 SQL(Structured Query Language)의 SELECT 쿼리와 유사한 것으로서, SELECT 쿼리가 여러 테이블에 들어있는 레코드중 일정한 조건을 만족하는 것들을 조회하는 기능을 한다면, CQL은 CMS의 콘텐츠 저장소(Content Repository)의 여러 폴더에 들어있는 콘텐츠중 일정한 조건을 만족하는 것을 조회하는데 사용되는 구문입니다.

현재 이와 같은 콘텐츠 쿼리 언어로서 공식 표준은 없으나, 그에 가장 근접하는 것은 자바 표준화 프로세스인 JSR-170의 JCRQL이라고 할 수 있습니다.

JCRQL 구문은 JSR-170 스펙문서에 EBNF를 이용해 정의되어있으며, 대략적인 형태는 다음과 같습니다.

SELECT [nodes] FROM [from] LOCATION [paths] WHERE [filtering_conditions] ORDER BY [ordering]

SQL을 아는 분은 아시겠지만 구문의 형태가 SQL의 SELECT 쿼리와 상당히 유사합니다. 다만 그 기능은 '테이블'에 들어있는 '레코드'를 꺼내는 것이 아니라, '콘텐츠 저장소'에 들어있는 '콘텐츠'를 꺼내오는 것입니다.

물론, CMS도 콘텐츠 저장소의 실제 물리적인 저장소로서 DB를 활용하는 경우가 많으므로 직접 SQL 구문을 이용하면 콘텐츠 쿼리 언어와 비슷한 효과를 낼 수는 있습니다. 하지만 CMS의 콘텐츠 저장소가 DB 또는 XML과 같은 하위 저장소 구조를 추상화시켜서 보다 높은 수준의 서비스를 제공하는 것이 목적인 것처럼, 콘텐츠 쿼리 언어 또한 이러한 목적에 부응하여 DB 쿼리보다 편리하게 콘텐츠 저장소에 들어있는 콘텐츠를 조회하는 기능을 제공하게 되는 것입니다.

콘텐츠와이즈는 템플릿 개발을 위해 이와 같은 JCRQL에 가장 근접하는 콘텐츠 쿼리 언어(CQL)를 제공하고 있습니다.

콘텐츠 쿼리 언어가 실질적으로 고객에게 주는 혜택은, '어떤 어떤 폴더에 있는 콘텐츠중 어떠어떠한 조건을 만족하는 최신 콘텐츠 5개의 제목을 표시하고 링크을 걸어주기'와 같이, 초기화면 또는 목록페이지에서 빈번하게 발생하는 시나리오를 상당히 손쉽게 구현할수 있으며, 이러한 조건 설정에 상당히 풍부한 기능을 제공하기 때문에 다양한 조건을 주어 콘텐츠를 필터링할 수 있다는 점입니다.

콘텐츠와이즈는 이와 같이 고수준의 기술로서 고객이 원하는 표현형태를 단기간에 구축할 수 있도록 하여, 실질적인 가치를 제공하기 위해 노력하고 있습니다.

이전글
다음글

Copyright(c) 2002 - 2005 ContentWise Inc. All rights reserved.