달력

6

« 2025/6 »

  • 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
지난 번에는 hsqldb를 명령행에서 실행 시키는 것에 대해서 알아 보았다.
예제는 지난 번과 마찮가지로 Step-by-Step 에 있는 내용을 이용할 것이다. 왜냐하면, 개인적으로는 Spring Framework를 처음 시작하고나 Spring MVC에 대해서 알아가는 개발자에게 가장 추천할 만한 예제이다. 물론 이것이 Spring MVC의 전부를 말해주지는 않는다. 최근에 발표된 Spring Framework 3.0.0.M1 버전에선 Anotation과 REST를 지원할 수 있도록 많은 부분이 새로 추가되고 되었기 때문이다. 그러나 그 기본은 결코 변하지 않을 것이다.

Ant를 사용해본 사람들은 Ant의 기본 Build에 이용되는 파일이 Build.xml 파일이라는 것을 익히 잘알고 있을 것이다. Ant가 Build.xml File을 실행할 때, 중복된 상수 값들은 Text파일에 저정하여 사용하는데, 여기서는 "build.properties"라는 파일을 이용하여, 정의하고 이를 "Build.xml"에서 읽어 올 것이다.

아래는 "build.properties"파일에 저장된 내용이다. Database에 접속하기 위한 기본 정보들이 정의되어 있다. 여기서 정의된 내용들을 Ant의 빌드 파일에서 읽어들여 사용할 것이다.
hsqldb의 Driver와 필요한 항복들은 아래와 같고, passwork는 여기서는 사용하지 않는다.


아래는 위에서 정의한 "build.properties"파일의 내용을 Ant의 Build.xml 파일에서 읽어오기 위해서 아래와 같이 정의한다. 공용으로 사용할 항목들은 별도로 정의하는 것이 관리하기 편리한다. 그 아래는 Build를 위한 기본 Class path를 정의하여야 한다. 여기서는 "hsqldb.jar"가 "/WEB-INF/lib" 아래 이미 복사되어져 있다. (지난 번에 이를 설명하였다.)

위에서 Data Source를 정의하고 이를 읽는 것에 대해서 설명하였다.
아래에서는 정위한 Data Source의 내용을 이용하여 Table을 생성하는 스크립트를 실행하도록 "Build.xml"에 정의한 것이다. 여기서는 "src="db/create_products.sql" 파일을 읽고, 이 파일에 정의되어 있는 스크립트를 실행하는 Task이다.
그리고 그 아래는 생성된 Table을 삭제하는 스크립트를 실행하는 Task를 정의한 것이다.
(직접 SQL 문을 호출하여 Table을 DB에서 Drop시켰다.)

아래는 위에서 정의한 "src="db/create_products.sql" 파일에 정의된 Table 생성 구문이다.
(참고로 "db/"는 디렉토리를 의미한다. Eclipse의 Project의 임의의 디렉토리 아래 db를 관리하기 위해 만들어 놓은 디렉토리이다.)
SQL문을 사용해본 경험이 있다면, 이해하는데, 크게 어렵지 않을 거하 생각된다.

아래는 "db/load_data.sql"파일에 정의해야할 구문인데, 생성된 DB Table(Products Table) 에 생성한 테스트 데이터 들이다.

아래는 위에 정의한 "load_data.sql"파일을 이용하여 Test데이터를 생성하기 위한 "Build.xml" 파일에 정의된 Task이다. src="db/load_data.sql" 이라고 정의된 것이 보일 것이다.


다음에는 이렇게 정의되어 있는 Ant의 "Build.xml" 파일을 이용하여 Eclipse에서 실행하고, 생성된 Test 데이터를 읽는 방법에 대해서 설명하려고 한다.
:
Posted by 행복상자
Eclipse와 Spring Framework를 이용하여 웹 개발을 한다면,가장 사용하기 쉬운 Database는 아마도 hsql이지 않을까 쉽다. 그 이유는 아무래도, Spring Framework에 포함 되어 있는 hsql.jar 라이브러리이 때문이다.

기본 적인 사용 법에 대해서는 Springframework에서 제공하는 Step-by-Step 예제에 잘 나와 있는데, 이를 기준으로 해서 설명하겠다.
먼저, Eclipse에서 설정해서 사용하기 위해서는, Build Path를 라이브러리(hsqldb.jar)를 등록 시켜 주어야 한다. Spring Framework 2.5버전을 다운 받아서, PC에 설치하였다면, "/lib" 디렉토리 아래 "hsqldb" 디렉토리 아래에 있는 "hsqldb.jar" 파일을 자신의 Eclipse의 Build Path 또는 라이브러리 디렉토리로 옮겨 주면 된다.

아래는 내가 사용하는 Eclipse의 환경이다. 참고하기 바란다. Library 디렉토리는 "war/WEB_INF/lib" 가 있고, 그 아래에 hsqldb.jar 파일이 있다.


이의 사용은 우리는 실제 운영 서버보다는 개발을 위한 용도로 쓰기가 용이한데, 이를 위해서 서버를 구동하는 방법을 알아보자.

아래와 같이 bat파일을 만들거나, DOS의 명령행에서 실행을 시켜 주면 된다.
(물론 JAVA_HOME은 정의 되어 있어야 한다.)


그러면 아래와 같이 실행되는 로그들이 창위에 나타날 것이다.


위에서는 도스 상에서 서버를 실행하는 것을 보여 주었는데, 이는 Eclipse의 Class Path에 
hsqldb.ja를 포함시키는 것과는 상관이 없다.
 
그러므로, 다음 번에는
- Ant를 이용하여, DB 테이블을 생성하고, 테스트 데이터를 추가하는 것과
- Eclipse의 Ant Plug-in을 이용하여, DB Table을 생성, 삭제하는 방법
- Eclipse의 Plug-in을 이용하여 생성된 데이터를 볼 수 있는 방법
등에 대해 알아보도록 하겠다.
 
 
 
:
Posted by 행복상자
그 동안 사서 봐야할 도서 목록에 들어 있었는데, 이제야 막 주문해서 어제 받아 본 책이 있다. 한국의 개발자들에게 잘 알려져 있는 개발 자 중의 한 명인 켄트 벡의 "구현 패턴"이라는 책인데, 이제 막 읽기 시작한 책이다. 하지만 그의 책은 읽는 사람으로 하여금 생각하게 만들고, 생각할 꺼리를 제공한다.

그의 책은 읽으면, 생각의 흐름을 그대로 글을 통해서 느낄수 있다. 설명과 예제는 누군가에게 말을 걸듯, 가르치듯 이야기한다.

내가 그의 책 여러 권을 여러 번 읽어 보았지만, TDD(테스트 주도 개발)는 정말 난해하다. 아니 사실 읽을 때마다, 다른 관점에서 접근하게 만들고, 이 때마다 나에게 새로운 아이디어를 준다.

구현 패턴 역시 나에게 동일한 아이디어와 영감을 줄거라는 믿음에 의심하지 않는다.

책의 가장 첫장을 열면, 책의 커버를 열면, 가장 먼저 볼수 있는 글은 "한국의 독자 여러분께" 라는 글이다. 그는 한국의 독자들에게 이렇게 말하고 있다.

"프로그램을 짤 때는 자신과 컴퓨터뿐 아니라, 다른 사람들을 생각해야 한다.!"

하지만 이 모든 것이 자신에게 즐거움을 주어야 한다는 것의 그가 책을 통해서 주는 핵심적인 메시지이다.
아는 것과 즐기는 것 그리고 누리는 즐거움이 개발자는 코드를 통해서 하루 하루, 매일 같이 느끼길 바란다. 누구를 위해서? 바로 자신을 위해서....

이제 켄트 백의 구현 패턴의 세계에 한번 빠져 볼 생각이다.
:
Posted by 행복상자
2008. 12. 7. 08:45

SpringFramework 3.0 Released (3.0.0.M1) 공부하는 것2008. 12. 7. 08:45

미국 시간으로 지난 12월 5일 스프링 프레임워크 3.0이 릴리즈 되었다.
지난 주에 미국에서 여렸던 SpringOne 2008 America를 마치자마자 바로 Release 시킨 것이라 생각이 든다. 이에 대한 변화들은 이미 SpingOne과 일민이(Toby)의 블러그를 통해서 알 수 있을 것이다. 아래에 링크들을 만들어 놓았다. 스프링 프레임워크의 전반적인 변화들을 알수 있을 것이다. 지금쯤 돌아가고 있는지도 모르겠다. 호주로...

일민의 SpringOne 2008 탐방기:

그리고 아래는 이번에 올라올 3.0.0.M1 버전의Change Log 이다. 변경된 사항들을 가장 쉽게 확인할 수 있을 것이다.

한가지 분명한 것은 Dynamic Language에 대한 지원이 점점더 커질 것이라는 것이다.
기능적으로 언어적으로 우세함을 따른 것이 아니라, 실용적인 면에서 좀더 개발을 편하고 쉽게 갈수 있다라는 측면에서 접근해야 한다는 것이다. 이러한 측면에서 새로운 것들, 특히 Ruby와 Grails는 분명 개발자들이 익혀야 할 시점이 곧 다가 올 것이다
.

(아래 로그 내용 참조)

SPRING FRAMEWORK CHANGELOG
==========================
http://www.springframework.org

Changes in version 3.0.0.M1 (2008-12-05)
----------------------------------------

* revised project layout and build system (module-based sources, bundle repository)
* updated entire codebase for Java 5 code style (generics, varargs, StringBuilder)
* updated to JUnit 4.5 and JRuby 1.1
* removed WebLogic 8.1 and WebSphere 5.1 support
* removed native TopLink API support (superseded by JPA)
* removed Commons Attributes support (superseded by Java 5 annotations)
* removed Jakarta JSTL support for JSP 1.2 (superseded by JSP 2.0)
* removed outdated Struts 1.x Action delegation support
* removed ContextLoaderServlet and Log4jConfigServlet
* deprecated form controller hierarchy in favor of @MVC form object handling
* deprecated JUnit 3.8 test class hierarchy in favor of test context framework
* introduced Spring EL parser in org.springframework.expression package
* introduced #{...} expression support in bean definitions
* introduced @Value annotation for embedded expression support
* introduced @PathVariable annotation for MVC handler methods
* introduced ShallowEtagHeaderFilter
* introduced AbstractAtomFeedView and AbstractRssFeedView
* introduced default value support for @RequestParam
* introduced @RequestHeader annotation for MVC handler methods
* introduced "spring:url" and "spring:param" JSP tags





 

:
Posted by 행복상자