Skip to content

CremaServer

s2quake edited this page Apr 27, 2018 · 2 revisions

개요

크레마 서버는 데이터를 저장소 모듈(svn)을 사용하여 저장소에 커밋하는 역할을 합니다. 또한 클라이언트를 통해서 데이터를 생성 및 관리할 수 있도록 해줍니다. 크레마 서버는 기본적으로 콘솔 환경에서 실행되며 실행후 크레마 명령을 실행할 수 있도록 REPL 모드가 지원됩니다. 또한 자동화 작업을 위한 Javascript 실행도 지원합니다.

지원 플랫폼

크레마 서버는 기본적으로 윈도우환경에 잘 작동되도록 설계되었습니다. 하지만 mono가 실행되는 os 에서도 크레마 서버 실행이 가능합니다. OSX, Ubuntu, CentOS에서 구동되는것을 확인했습니다.

mono가 클라이언트와의 통신을 담당하는 WCF 모듈이 완벽하지 않아서 클라이언트와의 통신이 불안정하다는 부분을 명심하십시오.

저장소 생성

크레마 서버는 svn으로 데이터를 관리합니다. 따라서 실행되는 플랫폼 환경에 svn이 설치되어 있어야 합니다. 크레마 서버는 svn을 콘솔의 명령어를 통해서 데이터를 관리하므로 svn경로가 환경변수로 등록이 되어 있어야만 합니다.

콘솔창에서 svn --version -q 명령을 통해서 버전이 출력되는지 확인하시기 바랍니다.

크레마 저장소를 생성하기 위해선 init 명령어와 생성될 저장소의 경로를 지정해주시면 됩니다.

creamserver.exe init repo-path --force

mono의 경우에는

mono creamserver.exe init repo-path --force

명령어가 성공적으로 실행되면 2개의 폴더가 생성됩니다.

  • svn
    • svn 의 서버 데이터가 저장되는 폴더입니다.
  • crema
    • svn 서버 데이터를 checkout하고 cremaserver가 데이터를 읽고 쓰는 폴더입니다.

서버 실행

생성된 크레마 저장소를 가지고 서버를 실행하기 위해선 아래와 같은 명령어를 사용합니다.

cremaserver.exe run repo-path

기본적으로 port는 4004이며 다른 포트를 지정하고 싶을때는 --port 5005와 같은 옵션을 추가해주시면 됩니다.

--prompt 옵션을 추가해주시면 REPL 모드로 실행되며 실행후 help 명령을 통해 실행할 수 있는 명령어들을 확인할 수 있습니다.

데이터 베이스

crema 폴더는 svn 폴더에서 체크아웃된 svn의 클라이언트 데이터입니다. svn의 일반적인 형태 trunk, branches, tags로 이루어집니다.

trunk 폴더는 이름이 default 인 데이터베이스입니다. 저장소 생성시 기본적으로 만들어지며 이름을 변경하거나 삭제할 수 없습니다.

branches와 tags 폴더는 여러 데이터베이스가 있는 곳이며 하위 폴더는 각각의 데이터베이스를 나타냅니다.

* crema
    * trunk
    * branches
        * database1
        * database2
        * ...
    * tags
        * database10
        * database11
        * ...

데이터 베이스 구성

하나의 데이터 베이스는 types 폴더와 tables 폴더로 구성됩니다.. types 폴더는 타입들이 담겨 있고 tables 폴더는 테이블들이 담겨 있습니다.

* database
    * types
    * tables

데이터 포맷

types 폴더와 tables 폴더에 저장되는 파일의 포맷은 xml과 xsd 형태입니다. 타입은 xsd 형태로만 저장되고 테이블은 xml과 xsd파일로 저장됩니다.

테이블의 xml은 데이터의 내용이 저장되고 xsd는 테이블의 형태 정보가 저장됩니다. 크레마에서는 테이블의 형태를 상속하는 기능이 있는데 이때는 xml만 저장됩니다.

* database
    * types
        * type1.xsd
    * tables
        * table1.xsd
        * table1.xml
        * derivedTable1.xml

보안정보 데이터

크레마에서는 데이터 베이스, 폴더, 타입 및 테이블의 보안을 설정할 수 있습니다. 보안 설정시에는 확장자가 acs인 파일이 별도로 생기게 됩니다.

데이터 베이스와 폴더의 보안 정보는 해당 위치에 .acs 라는 파일이 생기며 타입과 테이블의 보안 정보는 해당 이름의 [name].acs 라는 파일이 생성됩니다.

* database
    * .acs
    * types
        * .acs
        * type1.xsd
        * type1.acs
    * tables
        * .acs
        * table1.xsd
        * table1.xml
        * table1.acs
        * derivedTable1.xml