🏛️ 홍익인간CMS 개발자 매뉴얼

Version 202506 | Updated 2025-06-12
🌐 언어 선택: 🇰🇷 한국어 🇲🇳 Монгол 🇺🇸 English

3. ⚙️ 개발환경 설정

3.1 시스템 요구사항

홍익인간CMS의 개발환경은 전자정부표준프레임워크의 개발환경을 그대로 사용하며 프로그램 개발 및 실행을 위한 구성도구의 환경정보는 다음과 같습니다.

3.1.1 기본 요구사항

💻OS

  • Windows 10, 7 이상 (Macx86_64/Arch64)
  • Linux 64bit

🔧IDE

  • Eclipse 4.26 (2022-12)

JDK

  • 개발환경: JDK 17 이상 필요
  • 실행 운영환경: JDK 1.8

🌐WAS

  • Apache Tomcat 9

🗄️DBMS

  • Oracle, MySQL(MariaDB), CUBRID, MS-SQL, Tibero, PostgreSQL 중 택일

참고사항

개발의 여건에 따라 개발 환경 변경은 가능하나, 본 가이드에는 포함되지 않습니다.

3.1.2 하드웨어 요구사항

🖥️

CPU

듀얼코어 이상 권장

💾

메모리

8GB 이상 권장

💿

디스크

10GB 이상의 여유 공간 권장

3.2 개발 환경 구성(Windows 기준)

🔧3.2.1 Case1 - 직접 구성

  1. 전자정부표준프레임워크 개발환경
    • eGovFrameDev-4.2.0-64bit 다운로드
  2. JDK 설치
    • Windows: JDK 17 이상 설치
    • MacOS, Linux: JDK 17 이상 설치
  3. WAS 설치
    • Apache Tomcat 9.x 다운로드
  4. DBMS 설치
    • Oracle / MySQL(MariaDB) / CUBRID / MS-SQL / Tibero
    • 프로젝트에 사용될 DataBase를 사전 제공된 CMS DB Scheme + data를 이용하여 설치합니다.
    • DB서버 구축에 관한 설명은 본 매뉴얼에서 제공하지 않습니다.
  5. 홍익인간CMS 소스 + DB Scheme + DB data

📦3.2.2 Case2 - CMS 패키지를 통한 구성 (본 매뉴얼에서 진행)

1. 홍익인간CMS 개발자 패키지(H-CMS-2.2.zip) 준비

H-CMS-2.2.zip 파일 구성:

  • eclipse: 전자정부표준프레임워크 개발환경, eGovFrameDev-4.2.0-64bit
  • maven: Repository + settings.xml
  • util: Tomcat9 + OpenJDK-1.8, JDK17(개발환경 구동 용)
  • workspace: 홍익인간CMS 소스
  • DB: Scheme + data
  • DOC: 가이드문서, 테이블명세서, 운영자매뉴얼

2. DBMS 설치

  • Oracle / MySQL(MariaDB) / CUBRID / MS-SQL / Tibero / PostgreSQL
  • 프로젝트에 사용될 DataBase를 사전 제공된 CMS DB Scheme + data를 이용하여 설치합니다.
  • DB서버 구축에 관한 설명은 본 매뉴얼에서 제공하지 않습니다.

3. "D:"드라이브 볼륨이 존재하는 개발자PC 준비

설치 절차:

  1. 홍익인간CMS 패키지 파일을 D:\ 드라이브에 압축 해제
    • 압축해제 시 CMS의 경로는 "D:\H-CMS-2.2"가 됩니다.
    • (D:\H-CMS-2.2\H-CMS-2.2\와 같은 구조가 되지 않도록 주의)
  2. "D:\H-CMS-2.2\Humanframe.lnk(바로가기)" 아이콘을 클릭하여 CMS를 실행
  3. D 드라이브가 존재하지 않을 경우, C드라이브에 압축을 해제한 후 주요 설정 파일의 경로를 수정

3.3 개발환경 구성 상세 절차

3.3.1 JDK 설치(필수아님 - 패키지 포함)

1. JDK 다운로드

2. 환경 변수 설정

3.3.2 이클립스 실행

1. 이클립스 실행

3. Maven 설정

3.3.3 데이터베이스 설정

1. 데이터베이스 설치

2. 스키마 및 데이터 임포트

3. 데이터베이스 연결 설정

JNDI 설정:

CMS 내에서 사용 중인 기본 JNDI 이름은 "cmsdb"입니다. 관련 설정은 context-datasource.xml에서 확인 및 변경 가능합니다.

Tomcat의 context.xml 설정 예시 (CUBRID)
<Resource name="jdbc/cmsdb"
    auth="Container"
    type="javax.sql.DataSource"
    maxTotal="20"
    maxIdle="10"
    maxWaitMillis="-1"
    validationQuery="select 1"
    testOnBorrow="false"
    poolPreparedStatements="true"
    username="cmsuser"
    password="cmspassword"
    driverClassName="cubrid.jdbc.driver.CUBRIDDriver"
    url="jdbc:cubrid:localhost:33000:cmsdb:::?charset=utf-8&zeroDateTimeBehavior=round"/>
            
Tomcat의 context.xml 설정 예시 (MySQL)
<Resource name="jdbc/cmsdb"
    auth="Container"
    type="javax.sql.DataSource"
    maxTotal="100"
    maxIdle="30"
    maxWaitMillis="10000"
    username="cmsuser"
    password="cmspassword"
    driverClassName="com.mysql.cj.jdbc.Driver"
    url="jdbc:mysql://localhost:3306/cmsdb?serverTimezone=Asia/Seoul&characterEncoding=UTF-8"/>
Tomcat의 context.xml 설정 예시 (Oracle)
<Resource name="jdbc/cmsdb"
    auth="Container"
    type="javax.sql.DataSource"
    maxTotal="100"
    maxIdle="30"
    maxWaitMillis="10000"
    username="cmsuser"
    password="cmspassword"
    driverClassName="oracle.jdbc.driver.OracleDriver"
    url="jdbc:oracle:thin:@localhost:1521:XE"/>

3.3.4 WAS 설정

1. Tomcat 설정

2. 프로젝트 배포 설정

3.4 주요 설정 파일 가이드

3.4.1 context-properties.xml

애플리케이션의 주요 속성 값을 정의하는 파일입니다.

주요 설정 항목:

옵션 설정 항목(구매 또는 사용 시):

context-properties.xml 실제 설정 예시
<!-- [실제 코드] humanframe/spring/context-properties.xml -->
<beans profile="local">
   <bean name="propertiesService" class="org.egovframe.rte.fdl.property.impl.EgovPropertyServiceImpl" destroy-method="destroy">
      <property name="properties">
         <map>
            <!-- global set -->
            <entry key="GLOBAL_SITE_DOMAIN"     value="https://developers.yooncoms.com" />
            <entry key="WEB_DIR"                value="D:/H-CMS-2.2/workspace/humanframe/humanframe.web/src/main/webapp" />
            <entry key="FILE_UPLOAD_DIR"        value="/data" />
            <entry key="THEME_PATH" 	 		value="D:/H-CMS-2.2/workspace/humanframe/humanframe.web/src/main/webapp/WEB-INF/jsp/theme" />
            <entry key="SESSION_ADMIN"          value="HUMAN_ADMIN" />
            <entry key="SESSION_MEMBER"         value="HUMAN_MEMBER" />
            <entry key="EDITOR"                 value="SMART" />  <!-- SMART, EDITORPLUS -->
            <entry key="GLOBAL_FILEPREVIEW_AT"  value="Y" />
            <entry key="DAUM_API_KEY"			value="카카오 API 키 - 자바스크립트버전" />
            <entry key="GOOGLE_API_KEY"      	value="구글 API 키 - 자바스크립트버전"/>
            <entry key="RECAPTCHA_SITE_KEY"		value="구글 사이트 키" />
            <entry key="RECAPTCHA_SECRET_KEY"	value="구글 시크릿 키" />
         </map>
      </property>
   </bean>
</beans>
            

3.4.2 context-datasource.xml

데이터베이스 연결 설정을 담고 있는 파일입니다.

context-datasource.xml 주요 설정 항목
<!-- [실제 코드] humanframe/spring/context-datasource.xml -->
<beans profile="local">
   <bean id="cmsDataSource" class="net.sf.log4jdbc.Log4jdbcProxyDataSource">
      <constructor-arg ref="cmsDataSourceSpied" />
      <property name="logFormatter">
         <bean class="net.sf.log4jdbc.tools.Log4JdbcCustomFormatter">
            <property name="loggingType" value="MULTI_LINE" />
            <property name="sqlPrefix" value="### SQL : 		" />
         </bean>
      </property>
   </bean>
   <jee:jndi-lookup id="cmsDataSourceSpied" jndi-name="java:comp/env/jdbc/cmsdb" expected-type="javax.sql.DataSource" resource-ref="true" />
   <jdbc:initialize-database data-source="cmsDataSource" enabled="false">
      <jdbc:script location="classpath:database/schema.sql" encoding="utf-8" />
   </jdbc:initialize-database>
   <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
      <property name="dataSource" ref="cmsDataSource"/>
   </bean>
   <tx:annotation-driven transaction-manager="transactionManager"/>
</beans>
            

3.4.3 기타 주요 설정 파일

human-resource.xml 설정 예시
<!-- [실제 코드] humanframe/spring/human-resource.xml -->
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd" >
<!-- humanframe 시스템 관련 설정 파일 -->
<properties>
    <entry key="humanframe.dbType">cubrid</entry><!-- DB Type : altibase, cubrid, mysql, oracle, tibero -->
    <entry key="humanframe.admin.path">humanmst</entry>
</properties>
            

3.5 프로필 설정 (개발/테스트/운영)

홍익인간CMS는 Spring 프로필을 활용하여 개발, 테스트, 운영 환경에 따라 다른 설정을 적용할 수 있습니다.

주요 프로필:

스프링 프로필 local 설정 적용

  1. 이클립스 서버 항목 중 WEB 서버를 더블클릭합니다.
  2. Open launch configuration 항목을 클릭합니다.
  3. Arguments 탭을 클릭합니다.
  4. VM arguments 창에서 -Dspring.profiles.active=local 옵션을 확인합니다. 없으면 추가합니다.
  5. D 드라이브가 존재하지 않을 경우, C드라이브에 경로를 설정한 후 "주요 설정 확인" 항목을 참조하여 경로를 직접 수정합니다.

3.6 웹에디터 설정

홍익인간CMS는 웹에디터로 SMART, EDITORPLUS를 지원하며, 기본적으로 SMART를 사용하고 있습니다. 다음과 같이 설정할 수 있습니다.

context-properties.xml 에디터 설정
<!-- [실제 코드] humanframe/spring/context-properties.xml -->
<entry key="EDITOR">SMART</entry>  <!-- SMART , EDITORPLUS -->

<!--editor path -->
<entry key="UPLOAD_WEBEDITOR_DIR">C:/dev/workspace/humanframe/humanframe/humanframe.web/src/main/webapp/humanframe/global/kukudocs</entry>
<entry key="UPLOAD_WEBEDITOR_PATH">/humanframe/global/kukudocs</entry>
            
(옵션) EDITORPLUS 사용 시 ImagePath.jsp 설정

webeditorplus를 사용할 경우 ImagePath.jsp 파일의 경로 설정을 확인해야 합니다.
imagePhysicalPath 변수가 실제 로컬 폴더 경로와 일치하는지 확인하고, 필요시 수정합니다. 특히 배포될 실 서버의 절대적 경로를 확인 후 설정이 필요합니다.

<!-- [실제 코드] humanframe.web/src/main/webapp/webeditorplus/websource/jsp/ImagePath.jsp -->
<%
String imagePhysicalPath = "";
String activeProfiles = System.getProperty("spring.profiles.active");
if("local".equalsIgnoreCase(activeProfiles) || "dev".equalsIgnoreCase(activeProfiles)) {
    imagePhysicalPath = "D:/H-CMS-2.2/workspace/humanframe";
} else {
    imagePhysicalPath = "/home/tomcat/webapps/humanframe";
}
%>
            

3.7 개발환경 설정 시 주의사항

  1. JDK 버전 호환성
    • 개발 시에는 JDK 11 이상(Windows) 또는 JDK 17 이상(MacOS, Linux) 사용
    • 실행 환경은 JDK 1.8 기준으로 개발
  2. 데이터베이스 설정
    • human-resource.xml 파일의 humanframe.dbType 속성 확인
    • 사용하는 데이터베이스에 맞게 설정 (cubrid, oracle, mysql, mssql, tibero, postgresql)
  3. 문자 인코딩
    • 프로젝트 인코딩: UTF-8
    • JSP 파일 인코딩: UTF-8
    • 데이터베이스 연결 시 인코딩: UTF-8
  4. 메모리 설정
    • 개발 환경에 따라 JVM 메모리 설정 조정
    • 기본 권장: -Xms512m -Xmx1024m

3.8 프로젝트 실행 및 초기 접속

3.8.1 프로젝트 실행

1. 프로젝트 빌드

2. 서버 시작

3. 접속 확인

3.8.2 관리자 로그인

🔑

관리자 초기 계정 정보

아이디: cmsadmin / 비밀번호: 1111