💬
목차
< 뒤로가기
인쇄
Web설치가이드
version 2.3.0

요구사항

시스템 요구사항은 아래와 같다.

  • 서버
항목설명
운영체제 (OS)Windows, Unix, Linux, MacOS
JVMJava 1.8
WASJava 1.8을 지원하는 WAS는 기본적으로 지원
DatabaseOracle 12c, SQL Server 2012, Mysql 5.7+, Mariadb 10.0+, Tibero 6.0
  • 개발환경 (eclipse oxygen 4.7)
항목설명
운영체제 (OS)Windows, Linux, MacOS
JVMJava 1.8+ (32bit, 64bit)
CPU2GHz 이상, dual/quad core processor
메모리1GB, (Recommend 2GB)
디스크 공간2.1GB 이상

라이선스

v2.2 버전이후 캐모마일은 라이선스를 필요로 한다.

라이선스를 발급받아 아래와 같이 라이선스를 적용하여 사용한다.

적용 대상

캐모마일 프레임워크를 사용하는 경우 라이선스가 필요하며, 대표적으로 아래와 같다.

  • 사용자 어플리케이션
  • 어드민 어플리케이션 (웹, 배치)
  • 모바일 앱스토어 서버

라이선스 종류

라이선스 종류는 아래와 같다.

분류설명캐모마일
정식 라이선스정식 라이선스 체결 후 배포되는 라이선스.
운영 환경에서 사용
✔ 운영 서버에 적용
개발 라이선스개발 시 사용하기 위한 라이선스이며, 특정 기간동안 발급 된다.
로컬 개발 및 개발 서버 구성에 사용한다.
✔ 2개월 (로컬 및 개발 서버에 적용)
체험 라이선스초기 체험 을 위한 라이선스이며, 짧은 기간 동안 사용할 수 있는 라이선스이다.✔ 2주 (기간이 만료되는 경우 동작하지 않음)

체험 및 개발 라이선스의 경우 기간이 만료된 경우 동작하지 않습니다.

적용 방법

캐모마일 라이선스는 해당 어플리케이션의 클래스패스 내 발급 된 chamomile.license 파일을 로드하여 라이선스의 유효성을 검증한다.

단, 배치 어드민 어플리케이션의 경우 배포 된 압축파일의 conf 폴더를 우선하여 로드한다.

로컬 개발환경

  • 어플리케이션

    • 어플리케이션의 클래스패스(즉, src/main/resources)에 라이선스 파일을 위치시킨다.
  • 어드민

    • 개발도구에서 어드민을 실행하는 경우에도 라이선스 파일이 필요하다.

    • 개발도구의 상단 메뉴 중 Window를 선택하고 Chamomile > Administrator를 선택하여 라이선스 파일의 위치를 정의한다.

      image-20210929115644069

      어드민이 실행될때, 설정에서 지정한 파일이 아래 경로로 복사되어 라이선스가 로드된다. C:\Chamomile\eclipse\plugins\chamomile.ide_1.1.0[버전].202109232237[빌드날짜]\server\jettyRoot_admin\webapps\ROOT\WEB-INF\classes

서버 개발환경

  • 어플리케이션
    • maven profile을 이용하여 개발서버 혹은 운영서버에 라이선스 파일을 별도로 적용시킨다.

  • 어드민

    • 배포 된 어드민[모바일 앱스토어] 서버의 WAS의 클래스패스에 라이선스 파일을 위치시킨다.
      • e.g. [tomcat 설치경로]/webapps/어드민[모바일 앱스토어]/WEB-INF/classes

로드 우선 순위

클래스패스 內 라이선스 로드 우선순위는 WAS의 리소스 로드 정책을 따른다. tomcat의 경우 라이선스를 로드하는 순서는 아래와 같다.

  • Bootstrap classes of your JVM
  • /WEB-INF/classes of your web application
  • /WEB-INF/lib/*.jar of your web application
  • System class loader classes (described above)
  • Common class loader classes (described above)

웹 애플리케이션 클래스 로더가 <Loader delegate="true"/>로 구성된 경우 순서는 다음과 같다.

  • Bootstrap classes of your JVM
  • System class loader classes (described above)
  • Common class loader classes (described above)
  • /WEB-INF/classes of your web application
  • /WEB-INF/lib/*.jar of your web application

에러 및 경고

아래와 같이 캐모마일의 라이선스 파일이 존재하지 않는 경우 어플리케이션이 동작하지 않습니다. LicenseNotFoundError

Caused by: net.lotte.chamomile.core.license.LicenseNotFoundError: chamomile license file('chamomile.license') cannot be found in the classpath.
    at net.lotte.chamomile.core.license.Licenser.loadInputStream(Licenser.java:112) ~[chamomile-core-2.2.0-RELEASE.jar:2.2.0-RELEASE_6e9289d]
    at net.lotte.chamomile.core.license.Licenser.loadLicense(Licenser.java:31) ~[chamomile-core-2.2.0-RELEASE.jar:2.2.0-RELEASE_6e9289d]

개발 도구(Eclipse)

개발환경은 응용 S/W를 개발하기 위한 개발도구 이다.

개발도구는 개발에 필요한 도구들을 포함하고 있으며, 구성요소는 아래와 같다.

  • 개발도구

  • 테스트도구

  • 빌드도구

  • 형상관리도구

  • Etc.

개발도구에서 제공하는 주요 기능은 아래와 같다.

  • Create Chamomile Project
  • Generate Code [web, batch] – template based
  • Debugging
  • Testing
  • Start/Stop Admin
  • Build
  • Etc.

설치 (Windows)

인터넷에서 별도로 다운로드하여 구성하지 않아도 바로 개발에 착수 할 수 있도록 개발환경을 제공한다.

구성요소들은 아래와 같다.

  • 전체 용량 : 약 2.12GB
  • 이클립스 : Oxygen.3a Release (4.7.3a)
  • jdk : amazon jdk 1.8
  • maven : 이클립스 내장 maven을 사용하며 settings.xml파일만 제공
  • maven repository : 라이브러리들을 바로 사용할 수 있도록 maven repository를 제공
  • server : tomcat 8.5
  • workspace : 이클립스의 설정을 최적화한 기본 workspace제공(workspace변경시 설정 초기화)
  • DB : mariadb-10.5.8-winx64 버전 및 설치가이드 제공

설치 방법

배포되는 zip파일의 압축을 해제 한다.

압축 해제 경로는 C:아래로 올 수 있도록한다.(기본설정이 C:로 설정되어있다.)

[그림] 개발환경 위치

로컬 개발 환경에서 사용할 DB를 설치한다.(선택사항) 첨부되는 “MariaDB설치.pdf”문서를 참고한다.

폴더 설명

[그림] 개발환경 폴더구조

chamomile-batch-1.0.0배치프레임워크
DatabaseMariaDB설치 파일 및 가이드
eclipse자체 제공하는 플러그인이 설치된 이클립스폴더
JavaJDK 폴더
mavensettings.xml 제공
repositorymaven repository목록
servertomcat 폴더
workspace이클립스 기본 worksapce

경로 변경

C드라이브 외에 별도의 위치에 개발환경을 구성하고 싶다면 아래의 항목들을 수정한다.

아래 예시는 D드라이브로 개발환경을 변경하는 방법을 가이드한다.

  1. maven폴더의 settings.xml

    아래 경로를 D드라이브로 변경한다.

<localRepository>D:/Chamomile/repository</localRepository>
  1. eclipse폴더의 eclipse.ini

    아래 경로를 D드라이브로 변경한다.

-vm
D:/Chamomile/java/amazon-jdk/jdk1.8.0_265/bin/javaw.exe
  1. eclipse바로가기를 실행하여 settings 파일 위치를 변경한다.
    • Window -> Preferences -> Maven -> User Settings 에서 User Settins항목의 XML파일경로를 D:\Chamomile\maven\settings.xml 으로 변경한다. [그림] Maven Settings.xml파일 위치 변경

macOS

캐모마일 개발 도구는 현재 Windows만을 정상적으로 지원합니다.

환경 설정

메인화면

image-20200915162414289

[그림] 메인화면

datasource설정

image-20200915162544112

[그림] 환경설정(데이터베이스 설정)

administrator설정

image-20200915162636135

[그림] administrator등록

  1. ID : Admin을 구별할수 있는 고유 ID를 지정한다.
  2. 설명 : 설정된 Admin환경에 대한 설명을 적는다.
  3. WAR파일 경로 : 배포된 WAR파일 경로를 지정한다.
  4. Connection : WAR파일이 구동될 Datasource정보를 선택한다. Datasource는 Datasource설정 부분을 참고하여 설정한다.(apply후 사용가능)
  5. 활성화 : 체크 후 설정된 admin을 사용할 수 있다.

라이선스 설정

어드민이 실행하기 위해서 라이선스 파일의 등록이 필요하며, 발급받은 라이선스 파일의 위치를 지정한다.

image-20210929115836026

어드민이 실행될때, 설정에서 지정한 파일이 아래 경로로 복사되어 라이선스가 로드된다. C:\Chamomile\eclipse\plugins\chamomile.ide_1.1.0[버전].202109232237[빌드날짜]\server\jettyRoot_admin\webapps\ROOT\WEB-INF\classes

Project Sample설정

image-20200915162951498

[그림] 프로젝트 등록

ee4e28eb6dfe52ebc763919425d09814

[그림] 프로젝트 등록 후 확인

Redis

내장 Redis

어드민 서버와 서비스 서버는 기본적으로 Redis가 내장되어 있다.(Embedded Redis)

내장 레디스는 기존의 kstyrc.embedded-redis를 포크한 it.ozimov를 사용하고 있다.

내장 레디스는 어드민 서버와 서비스 서버가 각각 구동될 때 application.properteis에 설정된 포트로 프로세스가 실행된다.

만약 기본설정처럼 어드민 서버와 레디스 서버가 기본 포트(6379)와 같이 같은 포트로 구동된다면, 나중에 구동된 서버는 기존의 구동된 레디스 서버를 같이 사용한다.

개발시에는 별도의 레디스 설치 없이 어드민 서버와 서비스 서버를 구동하면 레디스가 자동으로 실행됨으로 별도로 관리할 필요가 없다.

어드민 서버와 서비스 서버 모두 서비스가 다운(서버를 내릴때)되면 임베디드 레디스 프로세스도 종료되지만 간혹 레디스 프로세스가 종료되지 않았다면 작업관리자를 통해 프로세스를 직접 종료한다.

설치형 레디스

운영시에시에는 임베디드 레디스가 아닌 실제 운영환경에서 사용할 수 있는 레디스를 별도로 설치해야 한다.

아래 가이드는 Red Hat Enterprise Linux Server release 7.2 OS를 기준으로 작성되었다.

  1. 기본 저장소외에 추가적인 저장소를 설치가 필요하다. 우선적으로 EPEL 저장소를 설치한다.

    • sudo yum install epel-release
  2. REMI 저장소를 설치한다.(각 OS에 맞는 버전으로 설치)

    • sudo yum -y install http://rpms.remirepo.net/enterprise/remi-release-7.rpm
  3. 레디스 설치

    • sudo yum --enablerepo=remi install redis
  4. 레디스 실행

    • sudo systemctl start redis
  5. 레디스 핑 확인

    • redis-cli ping
  6. 레디스 정지

    • sudo systemctl stop redis
  7. 레디스 핑

    • redis-cli ping
  8. 서버 실행시 레디스 자동 시작 등록

    • sudo systemctl enable redis
  9. 자동 시작 기능 해제

    • sudo systemctl disable redis
  10. 레디스 서버 버전 확인

    • redis-server –version
  11. 레디스 포트 오픈 확인

    • netstat -nlpt | grep 6379
  12. CLI 접속 후 SET을 통한 데이터 삽입 확인

    • redis-cli
    • set ldcc awesome
  13. CLI 접속 후 GET을 통한 데이터 조회 확인

    • redis-cli
    • get ldcc
  14. redis.conf 파일 통해 포트변경, 외부접속 설정, 비밀번호 설정등이 가능하다.
    이중 외부접속 설정은 아래와 같다. 이외 세부적인 설정은 레디스 공식 문서를 참조한다.

    • sudo vim /etc/redis.conf 명령어로 파일을 수정한다.
      (경로는 설치에 따라 다를수 있음)
    • 외부에서 접속을 허용하기 위해서는 bind를 찾아 127.0.0.1로 되어있는 부분을 지우고 0.0.0.0으로 수정한후 저장한다.

Web 어드민

어드민을 설치하는 것은 아래와 같이 2가지 형태로 제공한다.

  • 개발도구를 통한 설치 (로컬개발)

  • 서버에 설치 (개발서버 혹은 운영서버)

개발 도구에 설치

개발도구를 통해 설치하는 것은 개발서버가 구성되기 전 프로젝트 초기 사용할 수 있다. 즉, 로컬개발환경에서 손쉽게 어드민을 설치할 수 있는 기능을 제공한다.

본 문서 [개발도구 / 환경 설정](#환경 설정)에서 database 와 administator 설정을 참조한다.

서버에 설치

어드민을 서버에 설치하기 위해 WAS를 설치한다.

본 매뉴얼에서는 apache tomcat 8.5 버전을 사용해 설치하는 것을 가이드 한다.

  • Apache tomcat을 다운로드 하기 위해 홈페이지에 접속하여 tomcat을 내려받는다.

  • 다운로드 받은 zip 파일을 원하는 드라이브에 압축을 해제 한다.

  • 배포 된 chamomile-admin-{version}.war 파일을 압축이 해제된 tomcat의 기본 Host의 appBase인 webapps 디렉토리에 복사한 후 chamomile-admin 디렉토리에 압축을 해제하고, 복사된 war 파일을 제거한다.

    • [데이터베이스 설정](#데이터베이스 설정)을 참고하여 데이터베이스 설정을 한다.
  • Tomcat을 재기동하여 http://{host}:{port}/chamomile-admin 으로 접속하여 어드민이 정상적으로 설치된 것을 확인한다.

파일 구조

어드민 서버의 파일구조는 다음과 같다.

본 가이드에서는 WAS로 tomcat을 사용한다.

아래 그림은 tomcat WAS 아래에 webapps/chamomile-admin 하위의 파일구조이다.

img

아래는 주요 디렉토리들에 대한 정보이다.

경로파일설명
resourcesimage-20200910130805179resources 폴더는 어드민에서 사용하는 정적리소스 파일들이다. css,font, js 파일등이 위치한다.
WEB-INF/classesimgclasses 폴더는 어드민이 제공하는 서비스 파일들이 위치하며, Spring 설정파일, 로그설정, 환경설정 파일등이 위치한다.
WEB-INF/libimage-20200910130858233lib 폴더는 프레임워크의 라이브러리가 존재하는 폴더이다. 프레임워크 패치 시 라이브러리를 교체할 수 있다.

데이터베이스 설정

어드민에서 관리하는 데이터에 접근하기 위한 데이터베이스 설정을 수행한다.

데이터베이스 설정 파일은 {어드민 설치 디렉토리}/WEB-INF/classes/application.properties 파일을 편집한다.

기본 설정은 아래와 같다.

  • chmm.jdbc.driverClassName
    • JDBC로 연결하기 위한 드라이버 클래스 이름을 명시한다.
    • net.sf.log4jdbc.DriverSpy (SQL을 로깅하기 위해 고정된 값을 사용한다.)

  • chmm.jdbc.jdbc-url

    • 데이터베이스에 접근하기 위한 URL을 명시한다.
  • JDBC 접근 URL 앞에 jdbc:log4 prefix를 명시한다.
  • chmm.jdbc.username

    • 데이터베이스에 접근할 사용자 계정을 명시한다.
  • chmm.jdbc.password

    • 사용자 계정의 비밀번호를 입력한다.
  • chmm.jdbc.maxTotal

    • 최대 생성 스레드 개수
  • chmm.jdbc.connectionTimeout

    • 연결 시도시 최대 기다릴수 있는 시간
  • chmm.jdbc.maxLifetime

    • 풀에서 Connection 꺼낼때 최대 기다릴수 있는 시간

아래는 설정예시이다.

chmm.jdbc.driverClassName=net.sf.log4jdbc.DriverSpy
chmm.jdbc.url=jdbc:log4jdbc:mysql://127.0.0.1:3306/chamomile?autoReconnect=true
chmm.jdbc.username=user
chmm.jdbc.password=password
chmm.jdbc.maximumPoolSize=8
chmm.jdbc.connectionTimeout=30000
chmm.jdbc.maxLifetime=1800000

어드민은 DBCP를 이용하여 JDBC 커넥션을 관리하고 있으며, DBCP 설정을 추가하고자 한다면 ‘{어드민 설치 디렉토리}/WEB-INF/classes/spring/context-datasource.xml’ 파일 내 dataSource 설정항목에 추가하여 사용한다.

이와 관련한 자세한 내용은hikariCP 설명을 참고한다.

캐모마일 부트에서는 context-datasource의 직접적인 수정없이 접두사 chmm.jdbc를 앞에 붙여 기본 설정 외의 설정값을 추가할수 있다.

예시

#JMX management Beans에 등록되는 될지 여부를 지정한다
chmm.jdbc.registerMbeans=true

Redis 설정

어드민은 성능향상(캐시)과 사용자가 개발한 응용프로그램(웹 프로젝트)을 관리하기 위해 Redis를 이용한다.

어드민 설치 시 기본적으로 내장 된 Redis를 사용하고 있으며, 로컬 개발 시 설치 된 어드민 수정없이 사용가능하다.

하지만 개발서버 혹은 운영 시 별도로 Redis를 설치하여 관리하도록 한다.

Redis 설정은 ‘{어드민 설치 디렉토리}/WEB-INF/classes/application.properties’ 파일을 편집한다.

  • chmm.redis.hostName

    • Redis가 설치 된 호스트 정보를 입력한다. (e.g. 127.0.0.1)
  • chmm.redis.port

    • Redis에 접속가능한 포트를 입력한다. (e.g. 6379)
  • chmm.redis.usePool

    • Redis에 접속 된 Connection의 pool 사용여부를 입력한다.(true|false)
  • chmm.redis.embedded.enabled

    • 내장 레디스의 활성화 여부를 입력한다. 기본값은 true이다. (true|false)

END

이전 Web 개발 가이드
다음 Web 운영 가이드