개발과삶2008/08/19 21:12
  본 튜터리얼은 사내 직원 교육용으로 만든 것으로 초급 자바 개발자들이 쉽게 iBATIS를 이용하여 개발하도록 하여 좀 더 나은 품질의 코드와 제품을 생산할 수 있도록 하기 위한 바램으로 작성한 자료이다. 즉, 고급 기술 및 상세 기능은 배제를 하였음을 미리 밝힌다.

7. SqlMap에서의 데이터 입력
  개발을 위한 기본적인 환경 구축이 완료되었다면 본격적으로 iBATIS를 이용하여 웹 애플리케이션 개발을 하도록 하겠다.
  지난 번에 만든 emp.xml을 열면 아래와 같은 코드를 보게 되는데, namespace라는 속성이 보일 것이다. iBATIS는 기본적으로 여러개의 <sqlMap>을 가지게 되어 중복되는 이름을 가진 sql이 존재할 수 있다. 이를 위해 각 <sqlMap> 마다 namespace 속성은 두어 <sqlMap>간의 유일성을 보장해주게 된다. 물론, 이를 정상적으로 이용하기 위해서는 <sqlMapConfig>내의 요소중의 하나인 <settings>의 속성 useStatementNamespacestrue로 설정되어 있어야 한다. <sqlMapconfig> 테그는 SqlMapConfig.xml에 정의되어 있다.  여기서는 namespace를 Emp로 정하였다.

<sqlMap namespace="Emp">
</sqlMap>

  이 Emp는 직원 기본 정보를 관리하는 sqlMap으로 생각하면 되겠다. 지난번에 만든 emp 테이블은 아래와 같다. 현재는 부서 정보를 사용하지 않을 것이므로 dept_no는 항상 null이 될 것이다. 사원번호는 일련번호(AUTO_INCREMENT) 형태로 사용될 것이다.
EMP 테이블 구조

EMP 테이블 구조


  iBATIS는 SqlMaps라는 별명을 가지고 있다. 즉, SQL과 Java Object를 Mapping(매핑) 기능을 수행하는 툴이 바로 iBATIS이기 때문이다. 그런 이유로, iBATIS를 이용하기 위해서는 DB로부터 쿼리한 결과를 전달하기 위한 매개체가 필요하다. iBATIS는 매개체로 Map이나 유저가 정의한 Class(Object)가 이용된다(중급과정에서 설명하겠지만, XML도 이용이 가능하다). Map이 되었든 Class가 되었든 DB의 구조를 전체(또는 일부분)를 반영한다는 사실은 다르지 않다. 이제 위의 표에 정의된 테이블 구조를 이용하여 적절한 객체(클래스)를 만들어 보겠다(MVC 패턴에서 Model에 속한다, 즉 모델 클래스를 작성한다고 하면 되겠다).
Emp 클래스 구조

Emp 클래스 구조


  위의 그림은 emp 테이블 구조를 그대로 Class Diagram으로 옮겨본 것이다. 네이밍룰에 주시할 필요가 있는데, 꼭 이렇게 해야한다는 것은 아니고 테이블의 컬럼명을 Java에서 즐겨 사용하는 네이밍룰을 적용하다보니 _가 사라지로 _(underscore) 다음은 대문자로 바뀌는 등의 네이밍이 되었을 뿐이다. 물론, 많은 개발자가 즐겨 사용하는 룰을 사용하는 것이 더 좋을 것이므로 그대로 따르는 것이 좋겠다. 위의 그림을 Java 클래스 코드로 사상하면 다음과 같을 것이다. 이 Emp 클래스의 위치(즉, 패키지)는 ibatis.sample01.model로 하겠다. model 객체는 model이라는 패키지에 함께 모아두면 관리가 편리하기 때문에 일반적으로 이렇게 한다.

Emp 클래스 소스 열기..


  이제 위의 Model Object를 이용하여 데이터를 DB로 입력하고 출력하는 기능을 하는 sqlMap을 작성하도록 하겠다.

  iBATIS는 CRUD를 위한 요소(element)로 <insert />, <select />, <update />, <delete />가 있다. SQL을 사용하면서 위에 나열한 단어는 익숙할 것이며 또한 알고 있는 그대로 사용하면 된다.

  먼저, insert 문장을 구현해보겠다. insert는 DB에 데이터를 기록하도록 하는데 목적이 있다. 즉, Emp 객체에 데이터를 입력한 후 iBATIS로 보내고 iBATIS는 다시 데이터를 추출하여 DB로 입력할 수 있게 된다. <insert /> 요소를 이용하여 기본적인 데이터 입력을 아래와 같이 구현하였다. MySQL은 AUTO_INCREMENT라는 기능을 이용하여 채번을 하게 된다. 이 기능은 데이터가 테이블에 기록되면서 생성되는 번호이기 때문에 입력후 일련번호를 받을 수 있다. 결국 emp_no 컬럼에 입력되는 empNo의 값은 <selectKey />라는 요소를 이용하여 데이터 입력후 가져온 후 empNo 변수에 할당하는 메커니즘을 제공한다. 물론, Oracle과 같이 시퀀스(Sequence)를 사용하여 데이터 입력 전에 일련번호를 생성하는 방법도 제공하고 있다. 이 방법은 중급 과정에서 자세히 설명하도록 하겠다.

insert 소스 열기..


  emp.xml 파일에는 위의 내용만 추가(물론 <sqlMap> ~ </sqlMap>사이에 추가)한 다음 저장한다. CRUD를 한 번에 모두 구현해도 되지만 지금은 어떻게 동작하는지 보여주는 것이 과제이므로 iBATIS API를 이용하여 jsp 페이지에서 Emp 객체를 만들고 데이터를 입력한 후 DB에 어떻게 입력하는지 설명하도록 하겠다.

  MVC패턴은 View와 Control 및 Model을 분리하는 게 원칙이나 지금은 MVC 패턴을 학습하는 것이 아니라 iBATIS의 기본 개념 파악이 목적이므로 바로 jsp 페이지에 구현하는 것이다. 중급과정에서는 Model, View, Control을 분리하여 샘플 웹 애플리케이션일 개발하도록 하겠다.
 
  위 그림은 입력폼(HTML)과 처리스크립트(JSP)와 iBATIS API의 처리 흐름을 시퀀스 다이어그램으로 나타내었다. html페이지에서 폼 정보를 입력한후 전송버튼을 클릭하면 jsp페이지로 제어권이 넘어가면서 iBATIS초기화 및 insert를 수행한 후 다시 정보 입력을 위해 html 페이지로 되돌아가게 된다. 위의 그림에서 정의된 프로세스에 따라 구현해보겠다. 위치(폴더)는 /www/sample01에 위치하도록 한다. 디렉토리가 생성되어 있지 않으니 디렉토리(폴더)를 생성한 후 아래의 소스를 입력하기 바란다. 소스는 모두 UTF-8로 입력해야 하므로 html과 jsp페이지를 생성후 properties에서 Resource의 file encoding 항목이 UTF-8인지 확인하고 아닐 경우 UTF-8로 변경한 후 작업을 해야만 한글 문제가 사라진다.


insert_emp.html more..



insert_emp.jsp more..


  정상적으로 실행되는지 확인하기 위해서는 톰캣 서버를 시동한 다음 웹브라우저에 http://localhost:8080/ibatis01/sample01/insert_emp.html 을 실행하여 다음 화면을 확인한다.

  사원 정보를 입력하기 위해 이름란에 적당한 이름을 입력한 후 전송을 누른다. 아직은 조회를 할 수 있는 서비스를 만들지 않았기 때문에 정상적으로 입력이 되었는지 확인하기 위해서는 MySQL 접속후 SELECT * FROM ibatis.emp 를 실행하면 된다.

  MVC패턴을 사용하지 않은 대부분의 JSP 개발 소스들에서는 지금까지 알아본 개발 절차보다 좀 더 쉽고 간단했을 것이다. 하지만, 로직과 HTML이 스파게티처럼 뒤섞여 로직 분석에도 시간이 걸리고, 심각할 경우 SQL문이 jsp페이지에 그대로 사용이 되어 특정 로직이 변경되어야 할 경우 모든 소스를 모두 찾아서 수정해야하는 번거로움과 어려움을 많이 겪게 된다. iBATIS와 MVC패턴을 지원하는 프레임워크(Struts, WebWork)등을 사용하게 되면 초기 구축시 복잡성으로 어려움이 있기는 하지만 구축후 유지보수가 간편해진다는 장점이 있다. 물론, 그 프레임워크에 익숙해지는 시간이 필요하다는 단점은 존재한다.

  다음에는 생성한 데이터를 조회하는 업무를 구현해보도록 하겠다.
Posted by 종이비행기
개발과삶2008/08/14 00:35

  본 튜터리얼은 사내 직원 교육용으로 만든 것으로 초급 자바 개발자들이 쉽게 iBATIS를 이용하여 개발하도록 하여 좀 더 나은 품질의 코드와 제품을 생산할 수 있도록 하기 위한 바램으로 작성한 자료이다. 즉, 고급 기술 및 상세 기능은 배제를 하였음을 미리 밝힌다.

6. iBATIS 이용을 위한 기본설정
  iBATIS를 이용하기 위해서는 관련 라이브러리를 개발하고 있는 웹 애플리케이션의 lib 디렉토리에 등록해야 한다. Eclipse에서도 lib 디렉토리에 등록된 jar 파일을 Build Path에 등록하여야만 iBATIS의 API를 이용하여 개발할 때 에러가 발생하지 않는다.

  먼저 iBATIS 홈페이지를 접속하여 iBATIS 라이브러리를 다운로드 받도록 하겠다. iBATIS는 Apache의 프로젝트로 편입되어 현재는 http://ibatis.apache.org에서 다운로드 받을 수 있으며 현재 최신 버전은 2.3.3이다. 접속하면 왼쪽에 Get Software..라는 메뉴가 있다. 부 메뉴에 for Java 링크가 있는데 여기를 클릭한다. iBATIS는 여러 개발 플랫폼으로 개발되고 있다. 참고로, iBATOR라는 메뉴가 있는데 이 iBATOR는 iBATIS에서 사용되는 각종 클래스들이며 xml 파일을 자동으로 생성하도록 해주는 툴인데 지금은 그런 툴도 있다는 것을 알아두도록 하자. 이러한 자동화된 툴은 iBATIS의 문법이나 구조에 익숙해진 이후 개발속도 향상을 위해 알아볼 필요가 있으나 지금은 더 혼란스러울 뿐이다.

Get software... for Java를 클릭

for Java를 클릭


  다음 페이지에서 다운로드 받을 수 있는 링크를 아래 그림처럼 볼 수 있다.

iBATIS for Java Downloads

2.3.3 버전을 다운로드 받는다.


  다운로드가 완료되었으면 압축을 해제한다. 여러 파일 중 ibatis-2.3.3.720.jar 파일을 www/WEB-INF/lib 디렉토리에 복사해 넣고 Eclipse의 Project Properties(현재 개발중인 프로젝트를 선택한 후 마우스 우클릭-Properties)의 Java Build Path(왼쪽 메뉴)를 선택한 후 Libraries 탭을 선택하여 jar 파일이 정상적으로 등록되어 있는지 확인하고 없으면 Add JARs...를 클릭하여 등록한다.
jar 파일 복사

jar 파일 복사


Java Build Path 설정

Java Build Path 설정


  이로써 iBATIS 라이브러리는 정상적으로 등록하였다.

  이제, iBATIS의 기본 설정 요소인 SqlMapConfig.xml 파일을 작성하겠다. xml 파일 생성 방법은 앞에서 이미 설명했으므로 생략하겠지만, 생성할 위치는 고민해볼 필요가 있겠다. 그전에 SqlMapConfig.xml의 역할에 대해 설명을 해야할 듯 하다.

  SqlMapConfig.xml 파일은 iBATIS가 웹 애플리케이션으로 부터 호출되는 시점(프레임 워크에 따라 시점은 다를 수 있다)에 초기화가 되는데 그 때 사용되는 설정파일이다. 결국 이 설정 파일은 단위 기능별로 사용되는 것이 아니라 전역적으로 사용된다고 볼 수 있다. 그러므로, 지금 작성할 웹 애플리케이션에서 공통적으로 접근할 수 있는 위치에 두는 것이 좋다. 그러나, 이번 웹 애플리케이션은 아주 작은 크기의 웹 애플리케이션이므로 ibatis.sample01 이라는 패키지명 아래에 sqlmap 패키지명을 사용하여 단위업무에 해당하는 SQL이 담긴 관련 xml 파일과 SqlMapConfig.xml을 함께 두도록 하겠다. 즉, ibatis.sample01.sqlmap 패키지에 SqlMapConfig.xml 파일을 두겠다.

  현재는 ibatis.sample01.sqlmap이라는 패키지(또는 폴더)가 생성되지 않았으므로 src를 선택한 다음 File - New - Package를 이용하여 ibatis.sample01.sqlmap를 등록한다.

Package 생성

Package 생성

  패키지를 정상적으로 생성하였다면 생성된 패키지(또는 폴더)에 SqlMapConfig.xml 파일을 등록하고 아래의 소스 내용을 입력한다.

소스보기..


  SqlMapConfig.xml의 가장 기본적인 설정만 지정이 되어 있다. 옵션에 대해서는 중급 과정에서 자세히 설명하겠지만, 몇가지 기본적인 내용만은 설명을 하고 넘어가겠다.
  <properties />에 정의된 db.properties는 Java에서 사용하는 프로퍼티 파일의 위치를 나타낸다. 이 프로퍼티 파일에는 SqlMapConfig.xml 파일에서 ${xxx}로 정의된 변수를 치환하는 용도로 사용이 된다. 즉, 프로퍼티 파일에 정의된 이름=값 쌍으로부터 가져온 변수 정보를 SqlMapConfig.xml의 ${이름}에 대한 값으로 치환한다는 것이다. 이렇게 하는 이유는 다중환경에서 개발할 경우 각자 개발 환경에 맞게 properties 파일만 수정하고 xml파일은 수정하지 않으면서 얻게되는 일관성의 장점이 있다.
  <dataSource />로는 DBMS와의 접속을 위한 접속 경로 설정 옵션이 추가된다. JDBC 개발을 해온 개발자라면 이해가 가능할 것이다.
  <sqlMap />은 실제적으로 SQL이 정의된 xml 파일의 위치를 정의한다. 단위업무별로 또는 모듈별로 xml파일을 분리하여 개발을 하면 개발 시점 뿐만 아니라 유지보수 시점에도 도움이 되므로 체계있게 구성할 필요가 있다. resource 속성에 정의된 xml 파일을 만들어 보도록 하겠다. SqlMapConfig.xml은 최소한 1개 이상의 <sqlMap />이 정의되어 있어야 한다. src/ibatis/sample01/sqlmap 경로에 emp.xml 파일 이름으로 아래 소스를 입력한다.

emp.xml 소스열기..


  위에서 db.properties파일에 대해 설명을 했었는데, 이제 이 파일을 만들어 보겠다. 일반적으로 properties를 초기화 설정파일을 한 곳에 두어 관리하기도 하지만, 이번에는 소스 루트에 두도록 하겠다. 즉, src 폴더에 두면 된다. src 폴더에서 File - New - File을 선택하여 db.properties를 입력한다.

db.properties 소스열기..


  위 접속 정보는 환경에 따라 적절히 설정해야하지만 이번에는 위와 같이 설정하도록 한다. 아직 DBMS에 위와 같은 환경이 설정되지 않았다. 이제 기존에 설치한 MySQL 서버를 시동하고 개발에 사용될 DB와 유저를 생성하도록 하겠다.

  Command Prompt로 접속하여 C:\dev\mysql\bin\mysqld-nt.exe를 실행한다. 정상적으로 시동되면, Command Prompt창을 하나 더 열어서 C:\dev\mysql\bin\mysql.exe -u root 를 실행한다. 그러면, MySQL 콘솔이 열리는데, 아래 내용을 차례로 실행한다.

DB 생성과정 열기..


  위 과정에서 ibatis라는 데이터베이스, 유저를 생성하고 emp라는 테이블을 생성하였다.

  이제 iBATIS를 이용한 개발 환경이 셋업 되었다. 다음에는 생성한 샘플 테이블에 대응되는 Model Class를 만들고 CRUD(Create, Read, Update, Delete)를 구현해보겠다.
Posted by 종이비행기
개발과삶2008/08/12 22:47
  본 튜터리얼은 사내 직원 교육용으로 만든 것으로 초급 자바 개발자들이 쉽게 iBATIS를 이용하여 개발하도록 하여 좀 더 나은 품질의 코드와 제품을 생산할 수 있도록 하기 위한 바램으로 작성한 자료이다. 즉, 고급 기술 및 상세 기능은 배제를 하였음을 미리 밝힌다.

5. Eclipse를 이용한 새 프로젝트
  Eclipse를 실행하고 메뉴의 File - New - Dynamic Web Project를 선택한다.

  New Dynamic Web Project 대화창이 출력되면 Project name에 ibatis01을 입력하고 Next를 선택한다.

  Web Module 설정창이 출력되는데, Content Directory만 www로 변경하고 Finish를 선택한다.

  ibatis01이라는 새로운 웹 프로젝트가 생성이 되고 다음 그림과 같이 Project Explorer에 나타날 것이다.

  기본적으로 생성된 디렉토리 중 build는 src 디렉토리에 있는 자바 소스가 컴파일되어 class파일로 저장될 경로인데, 웹 애플리케이션 개발 편의성을 위해 WEB-INF/classes 디렉토리에 컴파일된 class파일을 저장하도록 설정을 바꿔보겠다.
 
 ibatis01이라는 프로젝트명을 선택한 후 ALT+ENTER 또는 File - Properties 또는 마우스 우클릭후 Properties를 선택하면 프로젝트 설정창이 출력된다. 왼쪽 항목에서 Java Build Path를 선택후 Source 탭을 선택한후 제일 하단의 Default output folder란에 /ibatis01/www/WEB-INF/classes 를 입력한 다음 OK 버튼을 클릭한다. 이제 build라는 비어있는 디렉토리를 삭제한다.

  그리고, Tomcat에서 JSP 페이지가 컴파일되어 임시 보관될 경로를 설정해야 하는데, 관리 편의성을 위해 프로젝트 하부에 works라는 디렉토리를 생성해서 그곳에 임시 보관하도록 하겠다. Project Explorer를 이용하여 works 디렉토리(폴더)를 생성한다(프로젝트 선택 - 우클릭 - New - Folder).

  works 폴더는 나중에 Tomcat 설정할 때 이용될 것이다. 이제는 접속시 기본으로 출력될 페이지를 만들어 보겠다. Hello World를 출력하는 index.jsp 파일을 만들것이다. www 폴더를 선택하고 우클릭 - New - JSP를 선택한다.
  www 폴더가 선택되어 있는지 확인하고 File name란에 index.jsp를 입력한 다음 Finish를 선택한다.
  기본 템플릿으로 index.jsp 파일이 생성되고 이제부터 생성된 파일을 편집할 수 있게 된다. <body></body> 테그 사이에 Hello World를 입력한후 저장한다.

  이제 톰켓을 이용해서 index.jsp가 정상 동작하는지 확인해봐야한다. 그러기 위해서는 현재 작성한 웹 애플리케이션을 톰켓에 등록해줘야 한다. c:\dev\tomcat\conf 디렉토리는 톰켓의 설정 디렉토리인데, server.xml라는 파일의 <Host></Host> 사이에 <Context ~~>~~</Context> 구문을 추가해주어야 한다. 아래 그림처럼 /ibatis01이라는 경로로 Context를 하나 추가한 후 저장한다.
사용자 삽입 이미지

Tomcat Context 열기..


  설정파일을 수정했다면 c:\dev\tomcat\bin 디렉토리에서 catalina.bat run으로 톰켓을 시동한다. 이상없이 시동이 완료되었다면 웹브라우저에 http://localhost:8080/ibatis01/index.jsp를 입력한다. 만약 다음과 같은 화면이 나오면 정상적으로 실행된 것이다.

  이것으로 새 프로젝트 생성하는 과정은 마쳤다. 다음에는 간단한 iBATIS를 사용한 DB 프로그래밍을 해볼 것이다. 이를 위해 MySQL에 새로운 데이터베이스를 생성하고 iBATIS 라이브러리를 웹 애플리케이션에 등록하고, 기본적인 설정까지 하도록 하겠다.

Posted by 종이비행기
개발과삶2008/08/11 22:12
  본 튜터리얼은 사내 직원 교육용으로 만든 것으로 초급 자바 개발자들이 쉽게 iBATIS를 이용하여 개발하도록 하여 좀 더 나은 품질의 코드와 제품을 생산할 수 있도록 하기 위한 바램으로 작성한 자료이다. 즉, 고급 기술 및 상세 기능은 배제를 하였음을 미리 밝힌다.

4. Eclipse 설치
  요즘 자바 개발 IDE를 선택해야 한다면 이클립스를 가장 먼저 생각을 하게 된다. 무료에다 훌륭한 기능들, 다양하고 막강한 플러그인의 지원, 다중 플랫폼에서 동일하게 동작하는 이클립스만큼 자바 개발에 많이 사용되는 IDE는 없을 것이다. 이번에는 강력한 자바 개발 IDE 이클립스를 설치하고 기본적으로 많이 사용되는 몇가지 플러그인에 대한 소개와 플러그인의 설치 방법을 알아보도록 하겠다.

  이클립스는 http://www.eclipse.org에서 내려받을 수 있으며 웹개발을 할 것이므로 Eclipse IDE for Java EE Developers를 받도록 하겠다. 물론, 최근에 나온 Ganymede (3.4 버전)를 받도록 하겠다.
Ganymede 다운로드

Ganymede 다운로드


Ganymede Java EE 버전을 선택하면 다운로드 받을 서버를 선택하게 되어 있는데, Kaist나 Daum에서 받으면 신속하게 받을 수 있다.

다운로드 서버 선택

다운로드 서버 선택


  이클립스를 다 받았다면 C:\dev에 압축을 해제하고, 디렉토리 이름이 C:\dev\eclipse가 되도록 한다. 그리고, 이클립스의 workspace 디렉토리가 될 webapps 디렉토리(C:\dev\webapps)를 만든다.

  C:\dev\eclipse\eclipse.exe를 실행하면 다음과 같이 작업영역(Workspace 디렉토리)를 선택하는 대화창이 출력된다. 여기서는 방금 만들어둔 C:\dev\webapps 디렉토리를 선택하면 된다. 작업영역은 프로젝트를 생성할 때 기본이 되는 위치이다. 차후 변경도 가능한데, 작업영역에 등록된 프로젝트가 너무 많아서 복잡해진다거나 완전히 성격이 다른 작업영역이 필요하다면 Switch workspace를 이용하여 서로간에 전환할 수 있다.
아래와 같이 작업영역을 설정한다.

작업영역 선택

작업영역 선택


  작업영역 설정이 완료되면 이클립스를 볼 수 있다. 화살표 모양의 버튼을 클릭하여 환영(Welcome) 창을 닫는다.

Welcome 화면

Welcome 화면


  이제 설치는 완료했으니 플러그인을 설치할 차례이다. 플러그인은 이클립스의 기본적인 기능에 확장시켜주는 서드파티 악세서리라고 생각하면 되겠다. 플러그인의 설치는 두가지 방법이 있다. 하나는 압축된 플러그인을 다운로드 받아서 이클립스 홈디렉토리에 압축을 해제하면 대부분 설치가 가능하다. 다른 방법으로는 플러그인 개발 사이트에서 운영하는 업데이트 URL을 이용하는 것이다. 이번에는 후자 방법을 이용하여 플러그인을 설치해보겠다. 자바 개발을 하게되면 수많은 *.properties 파일을 작성하게 되는데, 이 프로퍼티 파일에 한글이 들어가야할 경우 자바에서 인식하기 위해서는 한글을 아스키코드로 변환해야하는 문제가 발생한다. 프로퍼티 파일을 자동적으로 아스키모드로 변환해서 저장하는 기능을 하는 플러그인을 소개하고 이를 이용하여 플러그인 설치를 익히도록 하겠다.

  이클립스의 Help 메뉴 - Software Updates..를 선택하면 Software Updates and add-ons 대화창이 출력된다.

Software Updates and Add-ons 화면

Software Updates and Add-ons 화면


  Add Site..를 선택하고 Add Site 대화창을 열어서 http://propedit.sourceforge.jp/eclipse/updates를 입력한 후 OK를 선택한다.

Add Site에 Properties Editor update URL 입력

Add Site에 Properties Editor update URL 입력


  그러면 잠시후 PropertiesEditor 관련 체크박스를 선택한후 Install 버튼을 클릭하면 인터넷에서 다운로드 받아서 자동으로 설치가 된다. 설치가 완료되면 이클립스 재시동을 요구하는데, 재시동하면 그 플러그인 기능을 사용할 수 있다.

Properties Editor 선택후 Install

Properties Editor 선택후 Install


  참고로 이 플러그인은 *.properties을 편집하면 일반 텍스트 편집하듯 해도 실제 저장될 때에는 native2ascii와 같은 유틸리티를 이용해서 아스키코드 인코딩한 상태로 저장되기 때문에 개발자가 인코딩, 디코딩 처리할 필요가 없어졌다. 이처럼 이클립스는 기본적으로 제공하는 기능이 아닌 확장된 기능을 직접 개발할 수도 있고 개발된 것을 가져다 사용할 수도 있게 되어 있다.

  이 외에도 필자가 즐겨 사용하는 플러그인은 다음과 같다. 모두 간편하게 update로 설치할 수 있는 URL을 참고하여 설치하면 되겠다.

▣ Subclipse - SVN을 사용하기 위한 플러그인
http://subclipse.tigris.org/update_1.2.x

▣ Buckminister - 위 Subclipse를 사용하기 위해서는 이게 필요하다. 이걸 먼저 Add 한 다음 설치는 하지 말고 그대로 둔후 Subclipse를 설치하면 Subclipse가 정상적으로 설치가 된다(Ganymede 기준).
http://download.eclipse.org/tools/buckminster/updates

▣ 프로퍼티 편집기 (native2ascii 할 필요가 없이 바로 한글 편집이 됨)
http://propedit.sourceforge.jp/eclipse/updates

▣ 인터페이스로 구현체 찾기 - 인터페이스를 구현하는 클래스 메소드를 찾을 때 유용
http://eclipse-tools.sourceforge.net/updates


  다음에는 설치한 이클립스를 이용하여 새로운 웹 프로젝트를 하나 만들고 간단한 웹 애플리케이션을 만들도록 하겠다.
Posted by 종이비행기
사진과삶2008/08/10 22:57
가족 나들이에 오랜만에 카메라를 어깨에 메었다. 무더운 날씨에 몸은 지쳐도 아이가 즐겁게 뛰어 노는 모습에 마음은 즐거웠다. 날씨가 더워서였는지 아니면 휴가절정이라서 그랬는지 마을이 비교적 한산한 듯 했다.



Posted by 종이비행기
개발과삶2008/08/08 21:12
  본 튜터리얼은 사내 직원 교육용으로 만든 것으로 초급 자바 개발자들이 쉽게 iBATIS를 이용하여 개발하도록 하여 좀 더 나은 품질의 코드와 제품을 생산할 수 있도록 하기 위한 바램으로 작성한 자료이다. 즉, 고급 기술 및 상세 기능은 배제를 하였음을 미리 밝힌다.

3. MySQL 설치
  iBATIS를 학습하기 위해서는 데이터베이스가 필요하다. 가볍게 설치해서 사용할 수 있는 MySQL을 설치하도록 하겠다. 버전은 5.0으로 선택하겠다. http://www.mysql.com에서 아래와 같이 Windows downloads를 선택하여 비설치본(압축본)인 Without installer를 다운로드 받는다.
  다운로드 받은 압축파일을 C:\dev에 압축해제하여 C:\dev\mysql과 같은 경로가 되도록 수정한다. 설치본과 달리 압축본은 데이터베이스 시동을 서비스로 실행되지 않고 수작업으로 실행해줘야 한다. *nix계열과 달리 기본 데이터베이스(mysql 스키마)를 생성할 필요 없이 기본적으로 생성되어 있다. Command-prompt로 들어가서 C:\dev\mysql\bin\mysql-nt.exe를 실행한다.

  데이터베이스가 정상적으로 실행이 되었는지 확인하려면, Command-prompt에서 C:\dev\mysql\bin\mysql -u root를 해서 정상 접속이 되면 완료된 것이다. 데이터베이스 목록을 보려면 show databases;를 mysql 데이터베이스를 선택하려면 use mysql;을 특정 테이블 구조를 확인하려면 desc User;를 하면 된다. MySQL 데이터베이스의 상세한 사용법을 익히려면 MySQL 홈페이지의 온라인 문서를 참고하기 바란다.

  데이터베이스를 정상적으로 설치하고 실행해봤으니 이제는 종료하는 방법을 설명하겠다. C:\dev\mysql\bin\mysqladmin -u root shutdown를 실행하면 정상적으로 실행이 종료된다. 물론, -p 옵션으로 비밀번호를 입력해야하나 설치후 비밀번호 변경이 없을 경우에는 비밀번호를 입력하지 않아도 종료가 가능하다. 개발서버이기 때문에 보안에 신경을 쓰지 않겠지만, 운영서버에서는 root 비번은 필히 변경을 해둬야 하겠다.

  이번에는 앞으로 iBATIS를 학습하기 위해 필요한 데이터베이스 시스템인 MySQL을 설치하는 방법을 설명하였다. 다음에는 자바 개발자들이 가장 많이 사용하는 IDE인 Eclipse를 설치하고 설정해보겠다. 다시 한 번 강조하지만 이 문서는 사내 개발자 교육용이며 개발 초급 대상이다.

Posted by 종이비행기
개발과삶2008/08/06 23:22
  본 튜터리얼은 사내 직원 교육용으로 만든 것으로 초급 자바 개발자들이 쉽게 iBATIS를 이용하여 개발하도록 하여 좀 더 나은 품질의 코드와 제품을 생산할 수 있도록 하기 위한 바램으로 작성한 자료이다. 즉, 고급 기술 및 상세 기능은 배제를 하였음을 미리 밝힌다.

2. Apache Tomcat 설치
  JDK가 정상적으로 설치가 되었다면 이번에는 JSP/Servlet 컨테이너인 Tomcat을 설치하도록 한다. Tomcat은 5.5 버전을 다운로드해서 설치하도록 하겠다. http://tomcat.apache.org에서 다운로드 받을 수 있다. 좌측 메뉴의 Download에서 Tomcat 5.5를 선택하여 Binary Distributions 항목의 Core만 받으면 된다. zip으로 압축된 파일을 받도록 하겠다.
사용자 삽입 이미지

  파일명은 apache-tomcat-5.5.26.zip이 될텐데, 다 받았으면 압축을 해제하고, C:\dev로 이동후 사용 편의를 위해 tomcat으로 바꿔서 C:\dev\tomcat이라는 경로가 되도록 한다. 1번 과정에서 JDK 설치를 한 다음 JAVA_HOME 환경변수를 설정하지 않았는데, 이는 다른 자바 응용프로그램들과 버전 문제를 막기 위해서 우리가 설치한 Tomcat에만 사용하도록 하기 위해서였는데, 그대신 Tomcat 실행 스크립트를 약간 수정해주면 불편 없이 사용할 수 있다.
  C:\dev\tomcat\bin\catalina.bat 편집해서 set JAVA_HOME=C:\dev\jdk로 설정을 하면 Tomcat을 시동할 때 정상적으로 JAVA_HOME 경로가 결정이 되어 정상적으로 시동될 것이다.

  자, 이제는 설치한 Tomcat 서버를 시동하여 정상 실행이 되는지 확인해볼 차례이다. C:\dev\tomcat\bin\catalina.bat run (catalina.bat의 실행 옵션으로 run을 준 이유는 서버가 동작하는 중에 에러 메시지를 즉시 확인 할 수 있도록 하기 위함이다. 만약, 볼 필요가 없다면 start 옵션을 주면 백그라운드로 실행이 되며 메시지는 로그로만 확인이 가능해진다.)을 실행하라. 웹브라우저에서 확인하려면 http://localhost:8080을 입력하면 다음과 같은 화면이 출력되면 정상적이다.


  포트 번호는 기본으로 8080이다. 그러므로, 실행을 위해서는 항상 :8080을 주소 다음에 붙여 주어야 한다. 만약, Apache 웹서버와 연동할 경우에는 80번 포트를 이용해서 서비스할 수 있다. 그러나, Apache 서버와 연동은 이 문서의 주제를 벗어나므로 공개되어 있는 설치 문서를 찾아보기 바란다.

  Tomcat 서버를 종료하기 위해서는 C:\dev\tomcat\bin\catalina.bat stop와 같이 stop 옵션으로 실행하면 된다. 그러면 정상 종료가 된다.

  이번에는 JSP/Servlet을 서비스하기 위해 기본적으로 필요한 컨테이너이면서 오픈소스인 Tomcat의 설치를 해보았다. 물론, server.xml과 같은 설정파일은 수정하지 않았다. 이 과정은 추후 샘플 웹 애플리케이션을 만들 때 다시 Tomcat에 대해서 이야기하게 될텐데 그 때 설명하도록 하겠다.

Posted by 종이비행기
개발과삶2008/08/04 23:19
내가 잘 할 수 있는 일을 내가 열심히 할 수 있도록 미쳐버리는 것만이 성공하는 지름길인 것이다.
물론 누구나 뭐든 하면 된다. 인간이란 배움으로 자신을 성장시킬 수 있기는 하다.
다만, 지금 하고 있는 일이 비전이 없다고 해도 비전 있는 일을 찾기 보다는 지금의 일이 타인과 차별화된 뭔가를 찾아간다면 좀 더 성공과 가깝지 않을까...

이것 저것 무조건 열심히 한다고 성공하지는 못한다.
그렇게 성공하는 사람들은 운이 좋을 뿐이다. 기회를 잘 탄 것 뿐이다.
나는 내가 잘 할 수 있는 일에 최선을 다할 것이다.

이 생각 오늘 가장 깊이 느끼게 된다.
우리가 잘 하는 걸 열심히 하면 될텐데... 모두들 왜 부족하다 느끼는 것인지...

Posted by 종이비행기
개발과삶2008/08/04 23:02
  본 튜터리얼은 사내 직원 교육용으로 만든 것으로 초급 자바 개발자들이 쉽게 iBATIS를 이용하여 개발하도록 하여 좀 더 나은 품질의 코드와 제품을 생산할 수 있도록 하기 위한 바램으로 작성한 자료이다. 즉, 고급 기술 및 상세 기능은 배제를 하였음을 미리 밝힌다.

1. JDK 설치
  Java 개발환경의 기본은 JDK 설치에서부터 시작한다. 일반적으로 많이 사용되고 Eclipse Ganymede, Tomcat 5.x에서 권장버전인 J2SE 5.0를 설치하겠다. http://java.sun.com에서 JDK 5.0을 다운로드한다. 설치버전 보다는 압축 배포형태가 있다면 윈도우즈 기본으로 사용되는 JRE와 독립적으로 사용할 수 있어서 그게 더 낫다. 단, 윈도우즈 버전은 압축 배포형태가 없고 설치 배포형태만 지원하므로 어쩔 수 없다. 기존에 설치한 것이 있으면 그대로 복사해와도 된다.

  개발도구와 웹애플리케이션 디렉토리를 한곳으로 모을 예정이므로, C:\dev 디렉토리를 만들고 C:\dev\jdk에 압축을 풀도록 한다. 그러면, 실행 디렉토리(bin)는 C:\dev\jdk\bin이 될 것이다. 아래는  http://java.sun.com 내부에 있는 다운로드 페이지의 일부분이다. 현재 JDK 5.0은 Update 16까지 나와있다.

JDK 5.0 다운로드

Posted by 종이비행기
개발과삶2008/08/04 22:53
▣ Subclipse - SVN을 사용하기 위한 플러그인
http://subclipse.tigris.org/update_1.6.x

▣ 프로퍼티 편집기 (native2ascii 할 필요가 없이 바로 한글 편집이 됨)
http://propedit.sourceforge.jp/eclipse/updates

▣ 인터페이스로 구현체 찾기 - 인터페이스를 구현하는 클래스 메소드를 찾을 때 유용
http://eclipse-tools.sourceforge.net/updates

위 네가지는 내가 이클립스를 새로 설치하면 항상 설치가 되는 필수 플러그인이다.
잊어먹지 않기 위해서 정리해 둔다.

Open Implementation

▣ Grails 플러그인
http://dist.codehaus.org/groovy/distributions/updateDev/

Posted by 종이비행기