카테고리 없음

[표준프레임워크 맥] 개발 시작하기(Getting Started)로 Hello World 출력하기

달님개발자 2022. 6. 4. 15:55
반응형

전자정부 표준프레임워크 3.10 기반 개발 시작하기(Getting Started)

 

아래 경로에 있는 내용을 맥용으로 따라 해본다.

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

Step 1. 개발환경 설치

개발환경설치

이클립스 설치가 안되어있으면 먼저 설치하자.

표준프레임워크용 이클립스 설치하기 매뉴얼

 

플러그인 업데이트

Customize Development Tool을 설치하자.

개발자에게 원하는 기능만을 선택하여 개발환경을 구성 할 수 있는 기능을 제공한다

GovFrame 메뉴에서 Configuration - Customize Development Tool 선택

 

설치가능한 항목인데, 이미 설치되어 있는지, Spring IDE Web Flow Extension(optional) 만 보인다. 설치하면 이클립스를 다시 시작하라고 한다.

  • eGovFrame AmaterasERD
  • eGovFrame AmaterasUML
  • eGovFrame CodeGen
  • eGovFrame CodeGen Templates
  • eGovFrame EclEmma
  • eGovFrame Help
  • eGovFrame RTE Distribution Tool
  • eGovFrame TestCase Generator Feature
  • eGovFrame TestCase Templates Feature
  • Spring IDE Web Flow Extension(optional)

참고로 eGovFrame 홈페이지 매뉴얼에 있는 내용은 아래와 같다.

Maven 환경설정

여기서는 제공되는 maven repostiory 3.10 파일을 다운로드 받아서 Maven 로컬 파일저장소에 수동으로 복사하여 개발환경을 구축한다.

다운로드 받은 파일을 임의의 디렉토리에 압축 해제한다.

 

[MavenRepository 설치디렉토리]/settings.xml 파일의 localRepository 항목의 값을 다음과 같이 수정하라고 하는데, 압축파일에는 settings.xml이 없다. -_-
 
홈페이지 매뉴얼을 잘 보면 setting_3_10.xml을 다운받게 되어 있다. 압축을 풀면 settings.xml 파일이 있다.

settings.xml 파일을 아까 압축푼 폴더에 넣어주자.

텍스트 에디터를 이용하여 [MavenRepository 설치디렉토리]/settings.xml 파일의 localRepository 항목의 값을 다음과 같이 수정한다.
이전
<localRepository>C:/eGovFrame-3.10.0/maven/repository</localRepository>
이후
<localRepository>/Users/dalnimbest/Downloads/0_Downloads/maven_repository_3_10</localRepository>
 
preferences의  Maven - User Settings 항목을 연다.

 

User Settings: 에 있는 Browse버튼을 눌러서 [MavenRepository 설치디렉토리]/settings.xml 파일을 지정한다.

User Settings: 와 Local Repository가 제대로 세팅되어 있는지 확인한후 Apply and Close버튼을 클릭하자.

(settings.xml파일의 경로는 어디 있어도 상관없는거 같다. xml파일 안에서 지정해준 LocalRepository의 경로에 실제 아까 다운로드 받은 라이브러리들이 있는게 중요한거 같다)

Step 2. 프로젝트 생성(Core) 및 실행

프로젝트 Import

아래 화면에 있는 HelloWorld 프로젝트 파일을 다운받자.(압축 안풀어 됨)

File - Import 클릭.

General>Existing Projects into Workspace 를 선택후 Next버튼 클릭

select archive file 항목을 선택하고 제공한 egovGettingStarted.zip 파일을 지정한후 Finish를 클릭.

lab103 프로젝트가 임포트 된걸 볼수 있다.

Maven을 이용한 빌드

Maven이 라이브러리 다운로드 기능만 있는게 아니고 프로젝트를 빌드하는 기능도 있다. Maven으로 빌드 해보자.

lab 103 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 Run As>Maven Build를 클릭한다.

(Maven Build가 두개 있는데 차이점은 나중에 조사해보자.)

Run을 클릭하면 콘솔창에서 Build 결과가 나온다.

HelloWorld 실행

프로젝트의 src/main/java에서 HelloWorldClient.java를 마우스 오른쪽 버튼으로 클릭하고 Run As>Java Application 을 클릭한다.

콘솔에 Hello egov framework!!! 가 출력된것이 보인다.

HelloWorld 테스트 실행

난 Junit테스트가 안된다. 자세히 보니 test class에 내용이 비어있다. 헉...

 

package egovframework.guide.helloworld;

import static org.junit.Assert.*;
import org.junit.Before;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class HelloWorldServiceTest {	
	private ApplicationContext context;
	@Before
	public void setUp() throws Exception {
		String configLocation = "context-helloworld.xml";
		context = new ClassPathXmlApplicationContext(configLocation);
	}
	@Test
	public void testSayHello() {
		HelloWorldService helloworld = (HelloWorldService)context.getBean("helloworld");
		assertEquals( "Hello eGovFrame!!!", helloworld.sayHello() );
	}
}

위 테스트 케이스 소스를 넣어서 해보자. 이제 JUnit Test 메뉴가 보인다.

테스트를 실행하면 하단에 아래와 같이 테스트결과가 나온다.

(테스트 결과가 에러가 나오면, assertEquals( "Hello eGovFrame!!!", helloworld.sayHello() ); 부분을 디버깅 해보자. 홈페이지 소스를 보면 "Hello egov framework!!!" 라고 되어 있더라.)

 

 

Step 3. 자세히 들여다 보기

서비스 인터페이스 클래스

HelloWorldService.java

package egovframework.guide.helloworld;
public interface HelloWorldService {
	public String sayHello();
}

서비스 구현 클래스

HelloWorldServiceImpl.java

package egovframework.guide.helloworld;
import org.springframework.beans.factory.annotation.Required;
public class HelloWorldServiceImpl implements HelloWorldService{
	private String name;
	@Required
	public void setName(String name) {
		this.name = name;
	}
	public String sayHello() {
		return "Hello " + name + "!!!" ;
	}
}

서비스 속성 정의 파일

context-helloworld.xml 에 helloworld 빈을 설정하였다.

(HelloWorldClient.java에서 context-helloworld.xml을 사용하겠다고 설정한 구문이 있다.)

 

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd">	
	<context:annotation-config/>	
	<bean name="helloworld" class="egovframework.guide.helloworld.HelloWorldServiceImpl">
		<property name="name">
			<value>egov framework</value>
		</property>
	</bean>
</beans>

클라이언트 클래스

HelloWorldClient.java파일에서는 HelloWorldServiceImpl 클래스의 객체를 new 키워드로 생성하지 않는다.

대신 context-helloworld.xml에서 정의한 helloworld 빈을 얻어온다.

 

package egovframework.guide.helloworld;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class HelloWorldClient {
	private static final Logger LOGGER = LoggerFactory.getLogger(HelloWorldClient.class);
	/**
	 * @param args
	 */
	public static void main(String[] args) {
	String configLocation = "context-helloworld.xml"; 
	ApplicationContext context = new ClassPathXmlApplicationContext(configLocation);
	HelloWorldService helloworld = (HelloWorldService)context.getBean("helloworld");
	LOGGER.debug(helloworld.sayHello());
	}
}
반응형