달력

122019  이전 다음

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  •  
  •  
  •  
  •  

오픈소스의 좋은 점 중 하나는 제품 개발과정을 볼 수 있다는 것입니다. 소스 프로젝트의 구성을 볼 수 있고, ant나 maven 등의 빌드 구성과 TestCase를 어떻게 만들었는지 확인이 가능합니다.

httpunit이라는 소스포지의 오픈소스를 통해서 그 구성을 살펴보겠습니다.
http://httpunit.sourceforge.net 에 접속합니다.

왼쪽 메뉴 중 Download를 클릭해서 다운로드 받습니다.

파일을 이클립스에서 import 해보겠습니다. httpunit 이라는 이름으로 자바프로젝트를 하나 만듭니다.

프로젝트를 선택하고 컨텍스트 메뉴에서 Import... 를 선택합니다.

ar 이라고 필터란에 입력하면 Archive File 메뉴가 보입니다.

앞서 다운로드 받은 httpunit-1.7.zip 파일을 선택합니다.

폴더 통째로 import를 해왔습니다.

디렉토리의 구성을 잘 살펴볼 필요가 있습니다.
doc : 아마도 html 이나 프로젝트 관련 문서들 원본 등이 있을 것입니다.
examples : httpunit을 이용하는 예제들 디렉토리
jars : 프로젝트 관련 jar 파일 디렉토리
lib : httpunit.jar 산출물 생성 디렉토리
META-INF : jar 압축시 기본 생성 디렉토리
src : java 소스 디렉토리
test : 테스트케이스 디렉토리
build.xml : 프로젝트 빌드를 위한 ant 빌드 스크립트


이러한 구성을 참고로 자신이 진행하는 프로젝트의 소스 및 파일들을 관리하는 것도 좋을 것입니다.

Posted by 케누 kenu허광남

댓글을 달아 주세요

  1. 권남  댓글주소 수정/삭제 댓글쓰기 2008.10.26 00:07

    저 같은 경우에는 요즘 Maven을 사용하면서 Maven이 제공하는 기본 디렉토리 구조를 그대로 사용하는 버릇이 생겨버렸네요.
    디렉토리 깊이가 지나치게 깊다는 단점이 있지만, IDE를 사용하면 그 단점이 크게 다가오지는 않기 때문에 뭐 그닥 나쁘지는 않은 것 같습니다.

  2. 나그네  댓글주소 수정/삭제 댓글쓰기 2008.10.27 12:39

    이 포스트가 좋아서 담아갑니다.

이클립스를 사용해서 개발을 하는 것은 기존 텍스트 에디터를 이용해서 작업하는 것과 많은 차이를 갖고 있다. 특히 웹 애플리케이션 개발에서는 더 많은 차이가 있게 되는데, 우선 언급해 볼 것이 서비스에 구성된 디렉토리와 개발에 사용되는 디렉토리의 차이점이다.

웹 애플리케이션은 서블릿 스펙에 따라서 디렉토리가 정해진 규칙을 갖고 있다.

/WEB-INF/ 브라우저를 통해서 접근이 불가능한 웹 애플리케이션 핵심정보들을 포함하고 있는 디렉토리
/WEB-INF/classes/ 패키지에 따른 디렉토리별 class파일과 properties 파일이 위치하는 곳
/WEB-INF/lib/ 웹 애플리케이션에서 사용되는 jar 파일이 존재하는 곳
/META-INF/context.xml 톰캣에서 사용되는 manager를 통한 배포용 웹 애플리케이션 Context정보 파일
브라우저를 통해서 접근 가능한 리소스들은 그 외의 디렉토리에 놓으면 된다.
특히 브라우저의 JVM 위에서 돌아가는 애플릿 class와 관련 jar 들은 /WEB-INF/ 밖에 위치해야 한다.
이 디렉토리들을 묶어서 Context 라고 얘기한다.

서비스와 관련된 디렉토리 구조가 위와 같고, 개발용 디렉토리 구조는 java 파일이라는 특징 때문에 다음과 같이 구성한다.

/src 패키지에 따른 디렉토리별 java 파일과 properties 파일이 존재하는 곳
/WebContent/ 앞에 언급한 브라우저를 통해서 접근 가능한 리소스들. 웹 애플리케이션의 컨텍스트 루트 디렉토리에 해당.
/WebContent/WEB-INF/ 앞에 언급했던 /WEB-INF/ 디렉토리와 같은 성격
/build/classes  /src 하위 자바파일의 컴파일된 class 들이 놓이는 곳. properties 파일은 자동 복사되는 곳.


개발 디렉토리와 WAS의 서비스되는 디렉토리의 매핑 즉 자연스런 연결은 빌드 툴인 ant를 통하거나 Eclipse같은 IDE에서 자동으로 해준다.

이클립스의 경우 Servers 라는 프로젝트가 웹 프로젝트와 별개로 생성이 된다. 여기에서 설정되는 서버의 세팅은 기본적으로 설치된 세팅과 별도로 운영된다. 즉 톰캣이 설치된 디렉토리의 conf 에 있는 설정과는 별개로 Servers하위의 서버별 server.xml 의 파일에 설정된 내용으로 동작이 된다는 뜻이다.
<%= request.getRealPath("/") %> 를 통해서 확인해 보면 이클립스에서 운영하는 디렉토리가 완전히 엉뚱한 곳에 존재함을 알 수 있다. 웹 프로젝트에서 파일을 변경하면 자동으로 파일이 해당 위치로 복사된다.


관련자료:
http://tomcat.apache.org/tomcat-4.1-doc/appdev/index.html 영문
http://www.apache-korea.org/tomcat/tomcat-4.1-doc/appdev/index.html 번역문

Posted by 케누 kenu허광남

댓글을 달아 주세요

  1. SGcom  댓글주소 수정/삭제 댓글쓰기 2008.01.21 17:34

    표준에 맞지 않지만 개발용 디렉토리를 자신의 환경에 맞게 수정할 수 있습니다.
    ^_^ㅋ

  2. 수아기  댓글주소 수정/삭제 댓글쓰기 2008.01.21 23:06

    음 잘 몰라서 뭐라고 말하긴 그렇지만 복잡해요.ㅠ.ㅠ

  3. 어딜털까  댓글주소 수정/삭제 댓글쓰기 2008.05.14 18:47

    슬쩍 털어갑니다

이크립스를 사용하면서 왼쪽에 나오는 패키지 익스플로러의 디렉토리 구조가 익숙하지 않은 경우가 많이 있을 것입니다. 워낙 윈도우 탐색기에 익숙해져서 패키지별로 나열되는 것이 눈에 거슬리는 것이죠.

flat list
사용자 삽입 이미지
그래서 Navigator뷰를 띄워서 탐색기처럼 사용하는 경우가 종종 있습니다.
Navigator View

Navigator View

자바 개발시 네비게이터 뷰를 사용하게 되면 파일에 에러가 난 경우 표시가 되지 않습니다. 패키지 익스플로러에서는 하위에서 에러가 난 경우 최상단까지 상태가 안 좋다는 표시를 해줍니다. 다시 패키지 익스플로러로 돌아가서 디렉토리 보기 형태를 바꿔보도록 하겠습니다.
사용자 삽입 이미지
뷰의 상단 우측에 보이는 역삼각형을 클릭하면 메뉴가 나옵니다. Package Presentation 메뉴 위에 마우스를 가져가면 두 가지 서브메뉴가 나오는데, 감잡으셨을 겁니다. Flat과 Hierachical 중에 Hierachical을 선택하면 다음과 같이 변합니다. 탐색기와 유사하게 되죠.
Hierachical

Hierachical

도구의 맛이랄까요. 옵션을 하나씩 알아갈 수록 맛있지 않습니까.
더운 여름 시원하게 보내시길 바랍니다. ^^

Posted by 케누 kenu허광남

댓글을 달아 주세요