본문 바로가기

프로그래밍/Spring

Eclipse Indigo 64 Bit를 이용한 전자정부 프레임워크 설정 및 예제 프로젝트 만들기...(1)

Spring을 사용하는 개발자중 전자정부 프레임워크..에 대해 사용해보지는 않았어도 다들 한번씩은 다들 들어봤을것이다. 행정안전부가 주관하여 대형 SI 3사(삼성 SDS, LG CNS, SK C&C)가 공동으로 만든 Spring 기반 프레임워크이다. Spring을 공부한 뒤 첨으로 접했던 프로젝트가 이 전자정부 프레임워크를 사용하는 것이어서 그 프로젝트가 끝난뒤에 좀더 알고 싶어서 교육도 받아보았다. 그러나 내가 느낀것은 기대보단 실망이 컸다. 아마 호기심에 이 전자정부 프레임워크를 받아보고 셋팅한 사람들이 모두 느꼈으리라 생각이 되는데 셋팅이 정말 쉽지가 않다. 여기서 말하는 셋팅은 PC에 전자정부 프레임워크를 설치하는 것만을 의미하는 것이 아니다. 예제를 돌려보고 프로그래밍을 하는 방법에 대한 가닥을 잡기가 쉽지가 않다. 공통 컴포넌트 부분으로 오면 머릿속은 웬지 안드로메다를 떠도는 느낌이 들 정도로 머랄까..명확하고 체계적인 느낌이 없다. 돌아가는 예제를 어떻게든 보고 싶어서 전자정부 프레임워크에서 예제를 받아 셋팅해봐도 도통 셋팅을 할수가 없어서 걍 포기했던 적도 있다. 그러나 요즘 얘네들이 사용자, 즉 개발자들의 이런 요구를 들었는지 전자정부 프레임워크를 새로이 정비해서 Spring Framework 3.0 기반의 전자정부 프레임워크 2.5 버전을 발표했다. 그 소식을 듣고 설치해볼려고 생각했는데 문득 전자정부 프레임워크에서 배포하는 것이 아닌 Eclipse에 플러그인만 설치하는 방법으로 해보고 싶어졌다. 그렇게 하고자 했던 이유는 2가지가 있었다.

 

첫번째는 배포본이 상당히 무겁다는 것이다. 내가 자주가는 okjsp 사이트에서도 이런 내용을 몇번 쓴적이 있지만 다시 언급하도록 하겠다. 전자정부 프레임워크를 만든 목적은 이거 하나만 있으면 별도의 추가 소프트웨어 없이 개발하도록 하고자 하는 의도가 있다. 그래서 웹사이트나 또는 어플리케이션을 제작하고 배포하는데 있어 문제의 소지가 없는 라이센스를 가진 이런 저런 기능들의 플러그인들을 몽땅 다 넣었다. 그러나 한번 우리가 개발하고자 하는 환경을 놓고 생각해보자. 일반적으로 우리가 개발할때 DB에 쿼리를 날려서 결과값을 확인하는 작업을 할때 Eclipse를 이용하지 않는다. DB 벤더사가 제공하는 클라이언트 프로그램이나 상용 또는 공개 클라이언트 프로그램(Oracle의 경우는 Oracle에서 배포하는 Java기반의 SQL Developer가 있다)을 이용한다. 그러나 전자정부 프레임워크는 이런 작업을 Eclipse에서 할수 있도록 관련 플러그인을 설치한다. 또한 ERD나 UML을 그리는 작업도 Eclipse에서 할수 있도록 하지만 이것도 사실 우리의 개발환경에서는 Eclipse에서 하지는 않는다. 결국 우리가 개발하는데 있어서 사용하지 않는 플러그인들이 끼어들어가면서 전자정부 프레임워크가 배포 된다. 그러니 이런 배포본을 그대로 사용하면 Eclipse가 무겁게 돌아갈수밖에 없다.

 

두번째는 전자정부 프레임워크 배포본이 Eclipse 32 Bit 버전을 사용하는 배포본뿐이 없다는 것이다. 최근 노트북 사양이 4기가 이상의 메모리를 사용하게 되면서 OS를 64 Bit를 사용하는 개발자들이 늘어났고 이에 따라 Java도 64 Bit 버전을 사용하는 개발자도 같이 늘어나게 되었지만 전자정부 프레임워크는 이런 현실을 외면한채 32 Bit로만 배포하고 있다. 물론 이것은 개인적인 취향의 문제도 있겠으나 최근의 개발 환경에 맞추어보면 이런 점을 반영하지 못한게 아쉽다.(이 글은 2013년 3월 28일 작성된 글로서 이 시점에서는 64 Bit 버전의 전자정부 프레임워크 배포본이 없었으나 2015년 3월 23일 현재는 Eclipse 64 Bit 버전을 이용한 전자정부 프레임워크 배포본을 다운로드 받을수 있다. 이 부분에 대해 오해 없길 바란다 )

 

그래서 호시탐탐 기회를 노리던 중 마침 okjsp의 kenu님이 전자정부 프레임워크 부분에 참여하시면서 Eclipse에 전자정부 프레임워크 Update Site 주소와 설치할 플러그인 목록을 포스팅해주신 글(http://www.okjsp.pe.kr/seq/213728)이 있어 그걸 활용해서 Eclipse 64 Bit 버전에 전자정부 프레임워크를 셋팅해보기로 했다. 현재 Eclipse는 Juno 4.2.2 가 나와있는 상태이지만 Juno가 무겁다는 얘기들을 들은바가 있어 Eclipse 3.7 Indigo 64 Bit를 사용했다. 당연 Java도 1.7 64 Bit 버전을 사용했으며 예제 프로젝트와 연동되는 WAS로 Tomcat 7.0을 사용했다. 그리고 여기서는 eGovFrame 플러그인을 설치하기 위해 필요한 플러그인을 제외한 나머지 플러그인(예를 들면 SVN 플러그인)은 언급하지 않는다. 물론 전자정부 프레임워크 배포본에는 SVN 플러그인이 이미 설치가 된 상태에서 배포하지만 구글링을 하면 SVN 플러그인에 대한 설치와 사용 방법이 잘 나와 있는 것들이 많아서 여기서는 별도 언급은하지 않겠다(실제로 이 글을 쓰기 위해 직접 설정해보는 과정에서도 SVN 플러그인은 설치도 하지 않았다)

 

 Eclipse 설치 자체는 언급하지 않겠다. 설치라고 할것도 없을 뿐더러 이 글을 보는 사람이라면 적어도 Eclipse 설치는 스스로 할 수 있을테니까.. Eclipse를 설치한뒤 전자정부 프레임워크를 설치하기 전의 사전 준비 작업이 있다. 받아야 할 플러그인 사이트들을 등록하는 것이다. Eclipse의 상단 메뉴에서 Window -> Preferences 메뉴를 선택하면 Eclipse 환경 설정 화면이 나오는데 다음의 그림과 같이 Install/Update -> Avaliable Software Sites를 선택한다.

 

 

위의 그림에서 빨간색 박스로 둘러쳐진 Add 버튼을 클릭하면 Site를 추가할수 있는 화면이 나타나는데 여기에 다음의 사이트를 등록해주도록 한다. 아래의 표에 언급되어 있는 항목에 맞춰 그림과 같이 입력해주면 된다

 

Name 

 Location

플러그인 설치 순서

 m2e  http://download.eclipse.org/technology/m2e/releases

 1

 Spring IDE  http://dist.springframework.org/release/IDE

 2

 eGovFrame  http://www.egovframe.go.kr/update

 3

 

 

OK 버튼을 클릭하여 Site를 등록하게 되며 위의 표에 언급되어 있는 Site를 모두 등록하면 Avaliable Software Sites 화면이 다음과 같이 세 곳의 사이트가 모두 등록되어 있는 화면으로 보이게 된다

 

 

다음 부분을 설명하기 전에 잠깐 언급하고 넘어가야 할 부분이 있다. 바로 플러그인 설치순서 항목인데 이 설치순서 항목을 설정하는 부분은 있지 않으나 이 순서는 알아두어야 한다. 전자정부 프레임워크는 Maven과 Spring Framework를 사용하는 프레임워크이다. 그래서 Maven 관련 플러그인과 Spring IDE와의 의존관계가 존재한다. 즉 Maven 플러그인과 Spring IDE를 먼저 설치하지 않고 전자정부 프레임워크를 설치할려고 할 경우 설치가 실패하기 때문에 플러그인 설치 순서를 언급해두었으며 이 순서에 따라 관련 내용도 설명할 것이다. Maven 플러그인인 m2e와 Spring IDE 플러그인의 경우는 설치순서를 바꾸어도 상관 관계가 없을 것으로 추측하나 순서를 바꾸어서 설치해보지 않았으므로 정확하지는 않다. 그러나 전자정부 프레임워크 플러그인은 반드시 맨 나중에 설치해야 한다.

 

그럼 이제부터 위에 언급한 설치 순서대로 설치하도록 하겠다. 위에서 등록한 사이트를 이용해 Eclipse 플러그인을 설치하고자 할때는 Eclipse의 상단 메뉴에서 Help -> Install New Software를 선택하여 나오는 화면에서 Work with 선택항목에 플러그인을 제공하는 사이트를 선택해주면 된다. 플러그인을 제공하는 사이트는 이미 위에서 등록했으므로 Work with 선택항목에 위에서 입력한 사이트들이 나타날것이다. 먼저 Maven 플러그인인 m2e를 설치하기 위해 m2e를 선택하면 다음의 그림과 같이 나타날것이다.

 

 

 

Next 버튼을 눌러 라이센스에 동의하며 설치 과정을 진행하면 m2e 플러그인이 설치될것이다. 설치가 완료되면 eclipse를 재시작하라는 대화상자가 나타날것인데 재시작을 해주도록 한다. 다음으로 Spring IDE 플러그인을 설치하도록 하자. Work with 선택항목에서 Spring IDE를 선택하면 다음과 같이 나타난다.

 

 

 

Spring IDE 플러그인을 전부 설치할 필요는 없다. 전자정부 프레임워크 플러그인에서 Spring IDE 플러그인에 의존하는 것은 Spring IDE Core이므로 이것만 체크해준뒤 Next 버튼을 눌러 설치과정을 진행하도록 한다. 물론 이것도 설치가 완료되면 eclipse를 재시작하라는 대화상자가 나타날것인데 재시작을 해주도록 한다. 마지막으로 전자정부 프레임워크 플러그인을 설치하도록 하자. Work with 선택항목에서 eGovFrame을 선택하면 다음과 같이 나타난다.

 

 

eGovFrame 항목의 하위 항목을 보면 eGovFrame AmaterasERDeGovFrame AmaterasUML 항목이 보일것이다. 이 두 항목이 eclipse에서 ERD와 UML을 그릴수 있게 해주는 것인데 만약 별도의 툴로 작업을 한다면 이 둘은 체크 항목에서 빼주면 된다. Next 버튼을 눌러 설치 과정을 진행하도록 하자. 설치를 마친뒤 eclipse를 재시작 하면 외형적으로는 별반 차이가 없어 보인다. 그러나 eclipse 상단 메뉴의 Window -> Open Perspective -> Other... 메뉴를 선택한뒤 거기서 eGovFrame을 선택하면 이클립스의 상단 메뉴에 eGovFrame 메뉴가 생겨있는 eGovFrame 전용 Perspective 화면을 볼 수 있다.

 

 

 

 

이제 Sample 프로젝트를 만들기에 앞서 Maven에 대한 환경설정을 진행하도록 하겠다. 사실 이 과정은 개인에 따라 진행의 생각에 대한 차이가 있으므로 굳이 이 절차를 밟지 않아도 된다라고 생각이 들면 하지 않아도 된다. 이 글에서는 Maven에 대한 자세한 설명은 하지 않겠다. 다만 Maven의 역할 중 하나인 프로젝트에서 사용하는 라이브러리의 체계적인 관리관점 하에서 이번 설정에 대해 왜 하는지에 대한 설명을 먼저 하도록 하겠다. Maven을 사용해본 사람이라면 매료되는 기능중 하나로 생각하는 것이 자신이 만드는 웹사이트나 어플리케이션에 사용되는 각종 라이브러리를 구하기 위해 일일이 찾아서 다운로드 받지 않아도 된다는 점일것이다. 나 또한 그점이 너무 맘에 들었다. Maven은 pom.xml에 정의한 지정된 버전의 라이브러리를 중앙 저장소에서 다운 받아 그것을 자신의 PC에 있는 로칼 저장소에 다운로드 받아놓은뒤에 이것을 다시 Eclipse의 해당 프로젝트로 끌어오는 역할을 해준다. 즉 자신이 Maven 프로젝트를 하면서 사용했던 여러 라이브러리들이 일단 자신의 PC에 있는 로칼 저장소에 모두 모이게 된다. 근데 Maven을 별도로 설치해서 로칼 저장소를 별도로 지정하지 않고 이렇게 Maven 플러그인을 이용해서 로칼 저장소를 사용할 경우 로칼 저장소의 위치가 자기 계정 밑의 내 문서 밑으로 있게 된다. 이 위치를 나는 바꾸었다. 왜냐면 흔히 자기 계정의 내 문서 폴더는 주로 C 드라이브이고 C 드라이브는 OS를 다시 설치할경우 대부분 포맷하고 설치하기 때문에 결국 자신이 이제껏 사용했던 라이브러리들이 있는 로칼 저장소가 포맷하는 시점에 날라가버리게 된다. 나는 이것을 C 드라이브가 아닌 별도 드라이브에 내 로칼 저장소를 만들어서 운영체제를 다시 설치해도 로칼 저장소는 영향을 받지 않게끔 하고 싶었다. 이렇게 자신의 로칼 저장소를 별도 위치로 지정하기 위해서는 아주 간단한 작업 두가지만 해주면 된다. settings.xml이란 파일을 하나 만든뒤에 밑에 나오는 내용으로 settings.xml의 내용을 구성해주고 이 settings.xml을 Eclipse의 Maven 설정에서 지정해주기만 하면 된다. 내가 사용하고 있는 settings.xml은 다음과 같다.

 

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
                      http://maven.apache.org/xsd/settings-1.0.0.xsd">
  <localRepository>D:/M2Repository</localRepository>
  <interactiveMode/>
  <usePluginRegistry/>
  <offline/>
  <pluginGroups/>
  <servers/>
  <mirrors/>
  <proxies/>
  <profiles/>
  <activeProfiles/>
</settings>

 

이 내용을 보면 느낌이 오겠지만 localRepository라는 태그의 내용에 자신의 로칼 저장소 위치를 지정해주면 된다. 나는 D 드라이브에 M2Repository라는 폴더를 만들어서 여기를 내 로칼 저장소로 이용하고 있다. 이렇게 해놓으면 Maven을 통해서 받은 모든 라이브러리들이 D 드라이브의 M2Repository 폴더 안에 쌓이게 된다. 이렇게 적은 settings.xml을 Eclipse의 Window -> Preferences -> Maven -> User Settings 메뉴에 가서 방금 만든 settings.xml 파일을  읽어오게끔 위치를 지정해주면 된다. 나는 settings.xml 파일 자체도 M2Repository 폴더에 넣었다. 그래서 아래 그림을 보면 위치가 M2Repository로 되어 있다

 

 

 

이렇게 Eclipse Indigo 64 Bit 버전에 전자정부 프레임워크 플러그인 설치 과정을 모두 마쳤다. 다음 글에서는 이렇게 설치된 환경에 직접 샘플 프로젝트를 만들어보고 이를 Tomcat에 띄우는 과정을 설명하도록 하겠다.