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 - 직접 구성
- 전자정부표준프레임워크 개발환경
- eGovFrameDev-4.2.0-64bit 다운로드
- JDK 설치
- Windows: JDK 17 이상 설치
- MacOS, Linux: JDK 17 이상 설치
- WAS 설치
- Apache Tomcat 9.x 다운로드
- DBMS 설치
- Oracle / MySQL(MariaDB) / CUBRID / MS-SQL / Tibero
- 프로젝트에 사용될 DataBase를 사전 제공된 CMS DB Scheme + data를 이용하여 설치합니다.
- DB서버 구축에 관한 설명은 본 매뉴얼에서 제공하지 않습니다.
- 홍익인간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 준비
설치 절차:
- 홍익인간CMS 패키지 파일을 D:\ 드라이브에 압축 해제
- 압축해제 시 CMS의 경로는 "D:\H-CMS-2.2"가 됩니다.
- (D:\H-CMS-2.2\H-CMS-2.2\와 같은 구조가 되지 않도록 주의)
- "D:\H-CMS-2.2\Humanframe.lnk(바로가기)" 아이콘을 클릭하여 CMS를 실행
- D 드라이브가 존재하지 않을 경우, C드라이브에 압축을 해제한 후 주요 설정 파일의 경로를 수정
3.3 개발환경 구성 상세 절차
3.3.1 JDK 설치(필수아님 - 패키지 포함)
1. JDK 다운로드
- JDK 17 이상 다운로드 및 설치
2. 환경 변수 설정
- JAVA_HOME: JDK 설치 경로 (패키지기준 : D:\H-CMS-2.2\util\jdk-17.0.7)
- PATH: %JAVA_HOME%bin 추가
3.3.2 이클립스 실행
1. 이클립스 실행
- 패키지에 포함된 D:\H-CMS-2.2\Humanframe.lnk(바로가기) 실행
3. Maven 설정
- Window > Preferences > Maven > User Settings
- 패키지에 포함된 D:\H-CMS-2.2\maven\settings.xml 파일 지정
3.3.3 데이터베이스 설정
1. 데이터베이스 설치
- CUBRID(기본), Oracle, MySQL(MariaDB), MS-SQL, Tibero, PostgreSQL 중 선택 설치
2. 스키마 및 데이터 임포트
- 패키지에 포함된 DB 폴더의 스키마 스크립트 실행
- 초기 데이터 임포트 스크립트 실행
3. 데이터베이스 연결 설정
- context-datasource.xml 파일에서 데이터베이스 연결 정보 수정
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 설정
- 패키지에 포함된 Tomcat9 사용 또는 별도 설치
- 이클립스에 서버 추가: Window > Show View > Servers
- 새 서버 추가: Apache > Tomcat v9.0 Server
2. 프로젝트 배포 설정
- 서버에 프로젝트 추가
- 메모리 설정 (최소): -Xms512m -Xmx1024m
3.4 주요 설정 파일 가이드
3.4.1 context-properties.xml
애플리케이션의 주요 속성 값을 정의하는 파일입니다.
주요 설정 항목:
- GLOBAL_SITE_DOMAIN: 메인 사이트 도메인
- WEB_DIR: 웹 애플리케이션 디렉토리
- THEME_PATH: 사이트 테마 디렉토리
- FILE_UPLOAD_DIR: 파일 업로드 디렉토리
옵션 설정 항목(구매 또는 사용 시):
- EDITOR: 웹에디터 설정
- GLOBAL_FILEPREVIEW_AT : 파일뷰어 사용 여부(구매 옵션)
- DAUM_API_KEY: 카카오 API 키 - 자바스크립트버전(발급 : URL)
- GOOGLE_API_KEY: 구글 API 키 - 자바스크립트버전(발급 : URL)
- RECAPTCHA_SITE_KEY: 구글 리캡차 사이트 키(발급URL -- https://cloud.google.com/security/products/recaptcha )
- RECAPTCHA_SECRET_KEY: 구글 리캡차 시크릿 키(발급URL -- https://cloud.google.com/security/products/recaptcha )
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 기타 주요 설정 파일
- context-mapper.xml: MyBatis 설정
- human-resource.xml: 리소스 관련 설정
- context-mail.xml: 메일 발송 관련 설정
- web.xml: 웹 애플리케이션 기본 설정
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: 로컬 개발 환경
- dev: 테스트 서버 환경
- prd: 운영 서버 환경
스프링 프로필 local 설정 적용
- 이클립스 서버 항목 중 WEB 서버를 더블클릭합니다.
- Open launch configuration 항목을 클릭합니다.
- Arguments 탭을 클릭합니다.
- VM arguments 창에서
-Dspring.profiles.active=local옵션을 확인합니다. 없으면 추가합니다. - 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 개발환경 설정 시 주의사항
- JDK 버전 호환성
- 개발 시에는 JDK 11 이상(Windows) 또는 JDK 17 이상(MacOS, Linux) 사용
- 실행 환경은 JDK 1.8 기준으로 개발
- 데이터베이스 설정
- human-resource.xml 파일의 humanframe.dbType 속성 확인
- 사용하는 데이터베이스에 맞게 설정 (cubrid, oracle, mysql, mssql, tibero, postgresql)
- 문자 인코딩
- 프로젝트 인코딩: UTF-8
- JSP 파일 인코딩: UTF-8
- 데이터베이스 연결 시 인코딩: UTF-8
- 메모리 설정
- 개발 환경에 따라 JVM 메모리 설정 조정
- 기본 권장: -Xms512m -Xmx1024m
3.8 프로젝트 실행 및 초기 접속
3.8.1 프로젝트 실행
1. 프로젝트 빌드
- Maven > Update Project
- Project > Clean
2. 서버 시작
- 서버 우클릭 > Start
3. 접속 확인
- 브라우저에서 http://localhost:8080/ 접속
- 관리자: http://localhost:8080/humanmst/
3.8.2 관리자 로그인
🔑
관리자 초기 계정 정보
아이디: cmsadmin / 비밀번호: 1111
- 아이디와 비밀번호를 입력 후 로그인 버튼 클릭하여 페이지 대시보드가 나타납니다.
- 관리자 페이지의 기능에 대한 설명은 관리자 매뉴얼을 참조해 주세요.