제목 : 개발자를 위한 컴포넌트
다큐워크는 트리구조를 갖는 문서나 콘텐츠를 위한 컴포넌트들의 집합입니다.
이들 컴포넌트는 콘텐츠의 표현에 주로 사용되는 MVC 콘트롤러와 문서의 작성과 관리를 위한 리치 앱 컴포넌트가 있습니다.
1. 주요 키
데이터베이스에서 DOCU_NO, PARENT_NO, START_NO, NODE_NO
필드는 노드간의 관계를 규정하는데, 이들은 URL에서 각각 docu, parent, start, node
로 표시합니다. DOCU_NO
는 노드 각각을 식별하고, START_NO, NODE_NO
는 트리구조를 표현합니다.
이들 주요 키는, 다큐워크를 구성하는 컴포넌트에서 어떻게 사용하느냐에 따라 콘텐츠의 표현이 달라질 수 있습니다.
2. MVC 콘트롤러
다큐워크에서 MVC 콘트롤러는 DocuListController, DocuDetailController, DocuFileListController
가 있습니다.
이들은 모두 SourceBasedController
로 부터 파생되었기 때문에, 구성된 페이지의 실행에는 사용자의 역할권한에 대한 검사가 이루어집니다.
하나의 페이지는 여러개의 뷰로 구성될 수 있는데, 역할권한검사는 각각의 뷰와 연관된 콘트롤러마다 개별적으로 수행되고, 만약 권한이 부족한 경우 뷰은 권한이 없음을 표시 할 것입니다.
DocuDetailController
는 DocuListController
를 직접 상속하고 있는데, 사실 두 클래스는 동일합니다. 페이지의 구성에서 DocuListController
를 사용하면 목록권한이, DocuDetailController
는 상세권한이 적용되며, 뷰를 위한 데이터모델에는 HTML로 포멧팅된 본문, 연관된 콘텐츠의 제목 및 첨부파일 등이 동반됩니다.
고운플랫폼에서 DetailController는, 대 부분의 경우 그것의 ListController를 확장하므로, ListController를 사용해야 하는 경우에 DetailController를 사용해도 동일한 결과를 얻은 수 있습니다. 하지만 DetailController는 더 많은 테이블과 조인될 수 있고, 사용자의 데이터 접근기록을 위해 더 많은 시스템 자원을 소모합니다.
콘트롤러의 동작은 데이터원본의 설정, 페이지의 구성, URL의 파리미터의 값의 적용 순으로 실행조건이 결정됩니다. 콘트롤러 구성과 사용에 대한 자세한 사항은 컴포넌트 참조를 참고하고, 여기에서는 URL의 질의문자열(query string)에 사용되는 주요 파라미터에 대해서만 간략히 설명합니다.
URL의 질의문자열에서 docu, parent, start
는 함께 사용될 수 없습니다. docu는 데이터원본 전체에서 단일의 문서를 얻고 나머지는 문서의 집합을 얻습니다.
parent는 이것에 명시한 것과 그것의 자식목록을 얻습니다. 예외적으로 parent의 값이 0(zero)인 경우에는 시작글의 목록을 얻습니다.
start는 이것에 명시한 것과 그것의 모든 후손목록을 얻습니다. start는 node와 함께 사용되는데, node가 생략되면 그 값은 0(zero)로 간주합니다.
DocuFileListController는 문서에 첨부된 파일의 목록이 필요한 경우 사용합니다. Usecase의 홈 페이지에 있는 "사진 앨범"과 "동영상 앨범"의 섬네일 이미지 목록이 이것입니다. 여기에서는 상세권한이 있는 경우 해당 파일이 첨부된 문서의 본문으로 이동합니다.
3. 리치 앱
문서의 작성과 관리에 관한 모든 기능은 리치 앱 컴포넌트로 구현되어 있습니다.