본문 바로가기
[ 전자정부프레임워크 ]

전자정부프레임워크 3.10 초기 설정하기

by 히앤님 2022. 11. 3.
반응형
SMALL

[ 전자정부프레임워크 3.10 초기 설정 ]

전자정부프레임워크 기반의 제품 샘플을 제공하기 위해 기존에 만들어진 샘플 환경을 맞추고 최신제품으로 변환작업을 진행, 또한 새로운 샘플을 추가하기로 했다.

[ 작업 내용 ]
1. 기존 샘플을 최신버전 샘플로 변환하는 작업(7 -> 8) - 샘플 내용 및 데이터는 동일

2. 새로운 샘플 추가

1. 공통 적용 내용

  • 경로는 C://[제품명]_template/에 붙여넣기
  • 프로젝트 명 eGovTemplate 으로 맞출 것.
  • 최신화를 위해 jdk.1.8.0_192(x64)를 배포파일 내부에 넣고 적용.
  • 공통 문서 작업을 위해 포트번호 8090으로 통일함.

2. 기초 셋팅

1) eclipse.ini에서 -vm 으로 jdk 64bit 폴더 설정

기존 제품에서는 x86 버전의 jdk가 적용되어 있었다. 현재 사용하는 이클립스는 64비트용이므로 파일을 64bit용으로 변경해주고, 이클립스가 그걸 바라보도록 설정을 해줘야 한다.

공통 적용 내용대로 jdk.1.8.0_192를 배포파일 내부에 넣고 해당 경로를 가져와 openFile 아래에 -vm으로 추가해준다.

vm 추가 jdk 경로를 설정

openFile
--launcher.defaultAction
openFile
--launcher.appendVmargs
-vm
C:\[제품명]_template\dev\jdk1.8.0_192\bin\javaw.exe

-vm

- 2~3번 라인에서는 -vm 옵션을 통해 eclipse가 사용할 JDK 경로를 설정한다. 
- '-vm' 옵션과 그의 value 값인 path는 별도 라인에 명시되어야 한다. 
- value 값인 path는 Java home 디렉토리가 아니라, Java executable 까지에 대한 path를 명시해주어야 한다.(exact path to javaw.exe)
- '-vm' 옵션은 '-vmargs' 옵션보다 먼저 수행된다. ('-vmargs' 옵션이 수행된 후에는 바로 JVM이 실행된다)
- 당연한거지만, 32bit 용 eclipse.exe에서는 32bit 용 JVM 이 사용되어야 하고, 64bit 용 eclipse.exe에서는 64bit용 JVM이 사용되어야 한다. 

참고 : (https://mine-it-record.tistory.com/307)

2) tomcat port 8090로 변경

이건 간단하게 서버 더블클릭해서 포트쪽 보면 HTTP/1.1 부분이 있다. 여기를 8090으로 바꿔준다.

포트번호 변경
server.xml 에서 변경해줘도 된다.

3) DB 확인

context-datasource.xml : 데이터베이스(DB) 연결 설정하는 곳 

 

전자정부 프레임워크 샘플 코드 분석 (context-datasource.xml)

전자정부 프레임워크 프로젝트 생성 시 샘플 코드를 포함시킨 상태로 생성하는 경우 샘플 코드에 대한 파일이 자동으로 구성된다. spring 설정 파일 중 context-datasource.xml 파일에 대해 내용이 어떻

bkjo94.tistory.com

 

<!-- datasource 설정(propertyConfigurer 활용) 사용할 데이터 소스를 여기서 가져와라 -->
<alias name="dataSource-${Globals.DbType}" alias="dataSource" />
<alias name="dataSource-${Globals.DbType}" alias="egov.dataSource" />

<!-- hsql -->

<jdbc:embedded-database id="dataSource-hsql" type="HSQL">
	<jdbc:script location= "classpath:/db/shtdb.sql"/>
	<jdbc:script location= "classpath:/db/ibsheetTemplatedb.sql"/>
</jdbc:embedded-database>

전자정부프레임워크 샘플에는 HSQL(구 HyperSQL)을 사용한다. HSQL은 메모리 DB라고도 불리는데, 작은사이즈의 시스템에서 무거운 DB 프로그램(오라클 등)을 사용하기 어려울 때 메모리에 적재되는 작은 DB를 설정하기 위해 사용된다.

HSQLDB는 메모리 방식이기 때문에 애플리케이션 실행될 때 HSQLDB가 초기화되면서 메모리에 적재된다. 즉, 애플리케이션이 실행될 때마다 모든 테이블 스키마와 데이터가 사라져버린다. 그래서 실행할 때마다 스키마 정보와 데이터를 데이터베이스에 적재시켜야한다.

그러므로 테이블을 생성하는 SQL이 들어있는 Schema.sql파일과 데이터를 추가하는 SQL이 들어있는 Data.sql파일을 생성한 후 임베디드 데이터베이스가 생성될 때마다 적재시켜준다.

▶ 고객들한테 매번 사용하는 DB 설정을 맞춰서 샘플을 열어보라고 할 필요없이 HSQL을 쓰면 조회 시 알아서 SQL 파일에 저장된 CRUD를 실행해준다.

<jdbc:embedded-database 쪽을 보면 내장 HSQL DB의 DataSource를 설정해 주었다. (type="HSQL" 이라고 명시되어있음.) 내장 DB의 위치도 링크를 걸어준다.(파일 2개) 그럼 db 폴더에 있는 sql을 알아서 실행해준다.

<alias name="dataSource-${Globals.DbType}" alias="dataSource" />

저 빨간색 부분에 hsql이 들어간다고 생각하면 된다. 즉, datasource 설정에서 alias(별칭)으로 dataSource-hsql 을 그냥 dataSource로 불러주는 것. 우리는 내장 메모리 DB를 사용할꺼야! 알아서 읽으렴!

globals.properties : 환경설정용... (데이터베이스, 첨부파일 경로 등)

# DB서버 타입(mysql,oracle,altibase,tibero) - datasource 및 sqlMap 파일 지정에 사용됨 전자정부에서 허용해주는 properties를 읽는 뭐..그런거 보안용 오라클 이름이나 이런거 감춰야허ㅏ니까.  주석 풀어서 사용
Globals.DbType = hsql
Globals.UserName=sa
Globals.Password=

# mysql
#Globals.DriverClassName=net.sf.log4jdbc.DriverSpy
#Globals.Url=jdbc:mysql://127.0.0.1:3306/sht

#oracle
#Globals.DriverClassName=oracle.jdbc.driver.OracleDriver
#Globals.Url=jdbc:oracle:thin:@127.0.0.1:1521:egovfrm

properties 파일은 응용 프로그램의 구성 가능한 파라미터들을 저장하기 위해 자바 관련 기술들을 사용하는 파일들을 위한 파일 확장. 즉, 설정파일의 설정파일인 것. properties는 키-값 형태로 저장된다.

globals.properties 스프링의 시스템 속성 설정 파일로 스프링의 서버, 시스템 타입 등을 설정한다. 여기서 DB 서버 타입을 설정할 수 있는데 위와 같이 hsql이라고 쓰여있다. #은 주석인데, 보니까 mysql과 oracle 등이 주석처리 되어있다. 우리는 hsql 사용하니까 이렇게 한거고, 다른 DB를 사용한다면 저 아래 주석 풀어서 사용되는 것.

전자정부프레임워크에서는 properties 파일들을 곧바로 이걸 한글로 읽을 수 있음. properties 를 읽을 수 있는 에디터가 내장되어있기 때문. 일반 스프링에서는 인코딩이 안맞아서 properties를 읽으려면 뭘 또 설치해줘야 한다.

사용 이유는 보안용이다. DB 오라클 이름이나 이런것들은 감춰야하니까...

4) 최신 버전 코어파일 넣기

만들기 전, 최신 버전 코어파일 및 설정파일을 따로 폴더를 파서 넣어준다. 우선 마이그레이션부터 진행할 예정.

반응형
LIST

댓글