헤르메스 LIFE

[전자정부프레임워크] 전자정부프레임워크 설치 본문

Spring Framework

[전자정부프레임워크] 전자정부프레임워크 설치

헤르메스의날개 2023. 6. 22. 00:19
728x90

전자정부프레임워크를 테스트 해보고자 개발환경 세팅을 해보려고 합니다.

https://www.egovframe.go.kr/wiki/doku.php?id=egovframework:dev4.1:gettingstarted 

 

egovframework:dev4.1:gettingstarted [eGovFrame]

본 가이드는 전자정부 표준프레임워크 기반의 단순한 응용프로그램(HelloWorld)를 직접 실습해 봄으로써 빠른 시간 내에 전자정부 프레임워크의 기본 기능을 파악하기 위하여 제공한다. 본 가이드

www.egovframe.go.kr

전자정부 표준 프레임워크 기반의 Hello World 응용 프로그램 개발 및 실행을 위한 구현도구의 환경정보는 다음과 같다.

항목	설명	비고
OS	Windows 10, 7 이상	
IDE	Eclipse 4.23.0(2022-03)	JDK 11 이상 필요

(2.7) JavaEE(J2EE) JDK1.5 ~ 1.8의 환경 (단, 개발환경 2.7 이상에서는 JDK 1.6 이상 필요)
(3.0) JavaEE(J2EE) JDK1.6 ~ 1.8의 환경
(3.5) JavaEE(J2EE) JDK1.7 ~ 1.8의 환경 (단, 개발환경 3.5.1 부터 JDK 1.8 적용 가능)
(3.6) JavaEE(J2EE) JDK1.7 ~ 1.8의 환경
(3.7) JavaEE(J2EE) JDK1.7 ~ 1.8의 환경 (단, 개발환경 3.7 에는 JDK 1.8 필요)
(3.8) JavaEE(J2EE) JDK1.7 ~ 1.8의 환경 (단, 개발환경 3.8 에는 JDK 1.8 필요)
(3.9) JavaEE(J2EE) JDK1.7 ~ 1.8의 환경 (단, 개발환경 3.9 에는 JDK 1.8 필요)
(3.10) JavaEE(J2EE) JDK1.7 ~ 1.8의 환경 (단, 개발환경 3.10 에는 JDK 1.8 필요)
(4.0) JavaEE(J2EE) JDK1.8이상의 환경 (단, 개발환경 4.0 부터 JDK11 필요)
(4.1) JavaEE(J2EE) JDK1.8이상의 환경 (단, 개발환경 4.1(Windows) 에는 JDK 11 필요, 개발환경 4.1(MacOS, Linux) 에는 JDK 17 필요)
Servlet 3.1 사용
Servlet 2.5는 공통 컴포넌트 커스터마이징(Servlet 2.5 Downgrade) 참고

https://www.egovframe.go.kr/home/sub.do?menuNo=12 

 

구성 - 버전별 구성 | 표준프레임워크 포털 eGovFrame

처리중입니다. 잠시만 기다려주십시오.

www.egovframe.go.kr

표준프레임워크 4.1은 다음과 같은 변경을 통해 '23년 3월 공개되었습니다.
SpringBoot 2.7.0 지원
실행환경 적용 오픈소스SW 업그레이드 (Spring Framework 5.3.6 -> 5.3.20)
실행환경 적용 오픈소스SW 업그레이드 (Spring Security 5.4.6 -> 5.7.1)
실행환경 적용 오픈소스SW 업그레이드 (Spring Batch 4.3.2 -> 4.3.6)

https://www.egovframe.go.kr/home/sub.do?menuNo=13 

 

구성 - 오픈소스 SW 현황 | 표준프레임워크 포털 eGovFrame

처리중입니다. 잠시만 기다려주십시오.

www.egovframe.go.kr


1. 다운로드

https://www.egovframe.go.kr/home/sub.do?menuNo=4 

 

실행환경 - Release Notes | 표준프레임워크 포털 eGovFrame

처리중입니다. 잠시만 기다려주십시오.

www.egovframe.go.kr

2. 전자정부 플레임워크 설치

다운받은 eGovFrameDev-4.1.0-64bit.zip 파일을 c:\ 에 압축을 풀었습니다.

eclipse 와  workspace 폴더가 보입니다.

끝.


3. JDK 의 설치

아래와 같은 설명이 있네요. JDK는 11버전을 사용해야 한다고 합니다.

그래서, OpenJDK11.0.19_x64 를 사용하기로 하였습니다.

https://www.azul.com/downloads/?version=java-11-lts&os=windows&architecture=x86-64-bit&package=jdk#zulu 

 

Azul Downloads

According to the Gartner report, “by 2025, more than 70% of Java applications will be deployed on third-party Java runtimes, up from 30% in 2019.”

www.azul.com

openjdk version "11.0.19" 2023-04-18 LTS
OpenJDK Runtime Environment Zulu11.64+19-CA (build 11.0.19+7-LTS)
OpenJDK 64-Bit Server VM Zulu11.64+19-CA (build 11.0.19+7-LTS, mixed mode)

개발자용 개발환경 버전 4.1.0(64bit)

[구성]
개발자용 개발환경 64bit(Implementation Tool) Version은 개발자의 코드 작성을 지원하는 도구로, eGovFrame기반의 어플리케이션 개발을 지원하는 IDE와 Editor(SourceCode, UML, ERD, DBIO, WebFlow, Code Generation, Code Inspection, 공통컴포넌트 생성, 맞춤형 개발환경, Nexus, SVN)와 Debug(Local, Remote), Mobile IDE, Batch IDE, RDT로 구성되어 있습니다.

[개선 기능]
-Eclipse 2022-03 (4.23.0) 적용
-실행환경 4.1.0 적용
-공통컴포넌트 253종 (모바일운전면허증 연계 추가 적용)
-DBMS 골디락스 추가된 공통컴포넌트 탑재
-MyBatis DAO 소스생성기능 추가
-DeviceAPI 생성 제거 -> DeviceAPI Web만 생성
-React 개선과 JWT 인증방식 적용된 심플 홈페이지 템플릿 탑재
-Eclipse Tools for Cloud Foundry 추가
-Eclipse Docker Tooling 추가

[설치방법]
개발환경을 구성할 디렉토리에 eGovFrameDev-4.1.0-64bit.zip 파일을 실행하여 압축을 해제하고 eclipse를 실행하면 개발환경 필수요소와 선택요소가 모두 설치되어있는 개발환경을 사용할 수 있습니다.

[Troubleshooting]
1. Eclipse 실행 후 Failed to create the Java Virtual Machine 오류 발생 시
이클립스 구동 시 JVM 관련 오류 발생 시, eclipse 설정 파일인 eclipse.ini 에서 사용자 PC의 JDK 설치 경로를 다음과 같이 추가합니다. (JDK는 11 버전 사용이 필수)
** eclipse.ini 에 jdk 경로 추가 (예시)
-vm
C:Program Files\Java\jdk-11.0.5\bin\javaw.exe

2. 이클립스의 파일에 한글깨짐이 발생 시
eclipse.ini에 이클립스의 파일 포멧을 UTF-8로 설정 (예시)
-Dfile.encoding=UTF-8

3. 템플릿 생성 위저드를 이용하여 프로젝트 생성시 일부 DML파일의 한글깨짐 현상 시 
해당 DML파일의 encoding형식을 UTF-8에서 EUC-KR로 변경

4. Windows의 PC 보호
Microsoft Defender SmartScreen에서 인식할 수 없는 앱의 시작을 차단했습니다. 이 앱을 실행하면 PC가 위험에 노출될 수 있습니다. 라는 문구가 뜨면 추가 정보를 클릭하고 실행을 누르시면 됩니다.


4. Maven 설치

https://maven.apache.org/

 

Maven – Welcome to Apache Maven

Welcome to Apache Maven Apache Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project's build, reporting and documentation from a central piece of information. If you

maven.apache.org


5. Tomcat 설치

https://tomcat.apache.org/download-90.cgi

 

Apache Tomcat® - Apache Tomcat 9 Software Downloads

Welcome to the Apache Tomcat® 9.x software download page. This page provides download links for obtaining the latest version of Tomcat 9.0.x software, as well as links to the archives of older releases. Unsure which version you need? Specification version

tomcat.apache.org

Users of Tomcat 10 onwards should be aware that, as a result of the move from Java EE to Jakarta EE as part of the transfer of Java EE to the Eclipse Foundation, the primary package for all implemented APIs has changed from javax.* to jakarta.*. 

"Tomcat 10 이상의 사용자는 Java EE를 Eclipse Foundation으로 이전하는 과정에서 Java EE에서 자카르타 EE로 이전함에 따라 구현된 모든 API의 기본 패키지가 javax.* 에서 jakarta.*로 변경되었다." 라는 이슈가 있습니다.

Window > Preferences > Server > Runtime Environments

6. 실행

c:\eGovFrameDev-4.1.0-64bit\eclipse\eclipse.exe


7. Maven 설정

Windows > Preferences > Maven > Installations

8. JDK 설정

Windows > Preferences > Java > Installed JREs

9. Maven 프로젝트 생성


pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" 
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>egov.simple.maven</groupId>
	<artifactId>egov.simple.maven</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<packaging>war</packaging>
	<name>eGovSimple</name>
	
    <properties>
		<java-version>11</java-version>
        <springframework.version>5.3.6</springframework.version>

        <org.slf4j-version>1.7.30</org.slf4j-version><!-- 1.7.26 -->
        <ch.qos.logback-version>1.2.9</ch.qos.logback-version>
		<org.egovframe.rte.version>4.0.0</org.egovframe.rte.version>
    </properties>

	<!-- 전자정부 프레임워크 Maven Repository 주소 선언. 안해주면 오류남. -->
    <repositories>
        <repository>
            <id>mvn2s</id>
            <url>https://repo1.maven.org/maven2/</url>
            <releases>
                <enabled>true</enabled>
            </releases>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </repository>

        <repository>
            <id>egovframe</id>
            <url>https://maven.egovframe.go.kr/maven/</url>
            <releases>
                <enabled>true</enabled>
            </releases>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </repository>

        <!-- oracle lib 오류로 인해 추가 -->
        <repository>
            <id>oracle</id>
            <name>ORACLE JDBC Repository</name>
            <url>https://packages.atlassian.com/maven-3rdparty/</url>
        </repository>

    </repositories>

    <dependencies>
        <!-- Spring -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>${springframework.version}</version>
            <exclusions>
                <!-- Exclude Commons Logging in favor of SLF4j -->
                <exclusion>
                    <groupId>commons-logging</groupId>
                    <artifactId>commons-logging</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>${springframework.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>${springframework.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-tx</artifactId>
            <version>${springframework.version}</version>

        </dependency>
        
        <!-- slf4j -->
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>${org.slf4j-version}</version>
        </dependency>

        <!-- Bridge -->
        <dependency>
            <groupId>org.slf4j</groupId>


            <artifactId>log4j-over-slf4j</artifactId>
            <version>${org.slf4j-version}</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>jul-to-slf4j</artifactId>
            <version>${org.slf4j-version}</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>jcl-over-slf4j</artifactId>
            <version>1.7.25</version>
        </dependency>

        <!-- logback -->
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
            <version>${ch.qos.logback-version}</version>
            <exclusions>
                <exclusion>
                    <groupId>org.slf4j</groupId>
                    <artifactId>slf4j-api</artifactId><!-- logback을 slf4j-api에서 사용함을 의미 -->
                </exclusion>
            </exclusions>
            <scope>runtime</scope><!-- runtime 시 사용함 -->
        </dependency>

        <!-- https://mvnrepository.com/artifact/javax.annotation/javax.annotation-api -->
        <dependency>
            <groupId>javax.annotation</groupId>
            <artifactId>javax.annotation-api</artifactId>
            <version>1.3</version>
        </dependency>
        <!-- For user input validation
        <dependency>
            <groupId>javax.validation</groupId>
            <artifactId>validation-api</artifactId>
            <version>1.1.0.Final</version>
        </dependency>
 -->
        <!-- commons-xxxx -->
        <dependency>
            <groupId>commons-fileupload</groupId>
            <artifactId>commons-fileupload</artifactId>
            <version>1.4</version>
        </dependency>
        <dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
            <version>2.6</version>
        </dependency>
        <dependency>
            <groupId>commons-dbcp</groupId>
            <artifactId>commons-dbcp</artifactId>
            <version>1.4</version>
        </dependency>
        
        <!-- Servlet -->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>3.1.0</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
            <version>1.2</version>
        </dependency>
        
		<!-- https://mvnrepository.com/artifact/org.postgresql/postgresql -->
		<dependency>
		    <groupId>org.postgresql</groupId>
		    <artifactId>postgresql</artifactId>
		    <version>42.5.0</version>
		</dependency>
        
        <!-- https://mvnrepository.com/artifact/org.apache.poi/poi -->
        <dependency>
        	<groupId>org.apache.poi</groupId>
        	<artifactId>poi</artifactId>
        	<version>4.1.2</version>
        </dependency>
        
        <dependency>
        	<groupId>org.apache.poi</groupId>
        	<artifactId>poi-ooxml</artifactId>
        	<version>4.1.2</version>
        </dependency>
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml-schemas</artifactId>
            <version>4.1.2</version>
        </dependency>

        <!-- 전자정부프레임워크 -->
        <dependency>
            <groupId>org.egovframe.rte</groupId>
            <artifactId>org.egovframe.rte.ptl.mvc</artifactId>
            <version>${org.egovframe.rte.version}</version>
            <exclusions>
                <exclusion>
                    <artifactId>commons-logging</artifactId>
                    <groupId>commons-logging</groupId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.egovframe.rte</groupId>
            <artifactId>org.egovframe.rte.psl.dataaccess</artifactId>
            <version>${org.egovframe.rte.version}</version>
        </dependency>
        <dependency>
            <groupId>org.egovframe.rte</groupId>
            <artifactId>org.egovframe.rte.fdl.idgnr</artifactId>
            <version>${org.egovframe.rte.version}</version>
        </dependency>
        <dependency>
            <groupId>org.egovframe.rte</groupId>
            <artifactId>org.egovframe.rte.fdl.property</artifactId>
            <version>${org.egovframe.rte.version}</version>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.1</version>
                <configuration>
                    <source>${java-version}</source>
                    <target>${java-version}</target>
                </configuration>
            </plugin>
            <plugin>
                <artifactId>maven-war-plugin</artifactId>
                <version>3.2.3</version>
            </plugin>
        </plugins>
    </build>
</project>

https://hermeslog.tistory.com/657

 

[JAVA] OpenJDK 종류

2019년 9월 14일 Oracle에서 새로운 라이센스를 발표하였습니다. https://www.oracle.com/downloads/licenses/no-fee-license.html Oracle No-Fee Terms and Conditions (NFTC) License Agreement Your use of this Program is governed by the No-Fee Te

hermeslog.tistory.com

 

728x90