2007년 1월 30일 화요일

Query Generator




항상 SQL 쿼리를 만드는 일은 단순반복적인 일이다.
그래서, 간단한 프로그램을 만들어 보았다.
위에 첨부한 querygen.war만 deploy하면 되고, 아래의 사용법대로 사용하기만 하면 된다.
단, Oracle 전용이고, 포함된 JDBC 드라이버(ojdbc14.jar)는 10g 버전용이므로 8i, 9i 까지 모두 이상 없을 것이나, 이후에 나오는 버전에서는 안 될 수도 있으니 그 때는 오라클 홈페이지에서 새로운 버전의 드라이버를 다운로드해 사용하길 바란다.
 
 
사용자 삽입 이미지

querygen이라는 context path로 deploy하면 위와 같이 입력하면 화면이 뜬다.

그리고 ,'커넥션정보 표시' 부분을 클릭하면 위와 같이 커넥션 정보가 나타난다.

여기서 IP, Port, SID, ID, Password 등을 입력하면 연결준비가 끝나는 것이다.

단, 이렇게 입력한 정보는 쿠키에 저장되니 다음에 접속해도 이전에 사용했던 정보가 나타난다. 혹시 ID, PW가 저장되지 않길 원한다면 쿠키 부분 코드를 지워서 사용하면 된다.
 

사용자 삽입 이미지


1. 테이블명 일부를 입력하고 '검색' 버튼을 클릭하거나, '전체테이블검색' 버튼을 클릭하면 아래쪽 프레임(②)에 테이블 및 테이블주석 리스트가 나타난다.

2. ②에서 테이블을 선택하고 '컬럼정보' 버튼을 클릭하면 오른쪽 아래와 같은 팝업창에 테이블에 관한 상세한 정보가 나타난다.

3. ②에서 테이블을 선택하고 'SQL 생성' 버튼을 클릭하면 오른쪽 프레임(⑤)에 해당 테이블의 CRUD 쿼리가 생성되어 나타난다.


필요에 따라 적당히 고쳐서 쓰시길...


2007년 1월 6일 토요일

Unix에 CVS 서버 설치 & 이클립스 연결

얼마전 CVS 서버를 설치할 일이 있었는데 하필 OS가 HP-UX였다. CVS가 오픈소스여서 그런지 리눅스에 설치하는 가이드는 많지만, Unix에 설치하는 가이드는 정말 찾아 보기 힘들었다. 맨땅에 헤딩하며 물어물어 겨우 설치를 하고는 혹시 나와 같이 고민하는 분들을 위해서 정리된 가이드를 공유하고자 한다.

 

<가이드 전제조건>
- 서버OS : HP-UX 11i
- cvs 실행파일이 있는 디렉토리 : /cvs
- cvs root 디렉토리 : /cvs/repository
- cvs용 사용자 계정 : cvs

☞ 혹시 다른 OS라도 해당 OS에 맞는 명령어로 다음의 과정을 진행하면 된다.

 

 

1. cvs 계정을 생성한다(root 계정으로 실행)

    ☞ CVS 서버를 실행하고 ,관련 디렉토리에 대한 권한을 갖는 계정을 생성한다.


  $ useradd cvs

  cvs 계정 생성


  
$ passwd cvs

  cvs 계정에 대한 암호 설정

 

 

2. /cvs 이하 디렉토리의 권한을 cvs 계정에게 준다(root 계정으로 실행)

    ☞ cvs 계정이 CVS서버 실행명령을 수행하고, repository의 파일을 읽을 수 있도록 권한을 부여한다.


  
$ chown -R cvs /cvs

   cvs 계정에게 /cvs 디렉토리 이하 디렉토리에 대한 소유권 부여

 

 

3. cvs 서버 실행파일 다운로드 후, /cvs 폴더에 업로드(cvs 계정으로 실행)

    ☞ OS에 적합한 CVS 실행파일을 다운로드해 서버에 업로드한다. 컴파일된 실행파일이 아닌 소스코드를 다운로드했을 경우, 서버에서 컴파일 작업이 필요하다.

 

   -www.cvshome.org에서 cvs 실행파일(binary) 다운로드(cvs-1.11.21-HP.bin.gz)한다.

      stable 버전 중에 가장 높은 버전을 선택하는 것이 좋다.

   - 알집으로 압푹을 해제한다.  -> cvs-1.11.21-HP.bin
   - ftp프로그램으로 cvs-1.11.21-HP.bin 파일을 /cvs 폴더에 업로드한다.

     (ftp 로그인시 당연히 cvs 계정을 사용한다.)

   - cvs-1.11.21-HP.bin 파일명을 cvs로 변경한다. ->$ mv cvs-1.11.21-HP.bin cvs
   - cvs파일을 실행가능하도록 변경한다. ->
$ chmod 744 cvs

 

 

4. cvs 계정의 .profile에 CVSROOT 환경변수 등록 및 cvs 실행파일이 있는 디렉토리를 PATH에 추가(cvs 계정으로 실행)

    ☞ CVS 서버 기동시 필요한 환경을 설정하는 과정이다.

 

   완전 Unix 초보를 위한 가이드 ^^;

  $ cd   cvs 계정의 홈디렉토리로 이동

  $ vi .profile   cvs 계정의 환경설정파일(.profile) 파일 열기


   .profile 파일에 아래의 두 라인을 아랫쪽에 추가(OS에 따라 형식이 다를 수 있음)

 PATH=$PATH:/cvs:.
 export CVSROOT=/cvs/repository
  
   수정된 내용을 저장한 다음,

  $ .profile실행해 새로운 환경을 적용한다.

 

 

5. 레파지토리 구성(cvs 계정으로 실행)

    ☞ CVS에서 데이터를 저장할 레파지토리를 구성하는 과정이다.

 

  $ cvs -d /cvs/repository init
   /cvs/repository 아래에 CVSROOT 라는 디렉토리 생성되고, 그 안에 관련 파일들도 자동 생성된다.

 

 

6. (pserver 인증 방식을 위한) passwd 파일 생성 및 사용자 추가(cvs 계정으로 실행)

    ☞ CVS서버에 접속하는 클라이언트 인증을 위하여 아이디와 패스워드를 저장하는 과정으로, cvs라는 하나의 Unix 계정을 이용하여 passwd라는 파일 안의 정보만으로 인증하는 pserver 인증방식만을 설명한다.

 

   - /cvs/repository/CVSROOT에 passwd라는 파일 생성(기본적으로 파일이 없다)
   - htpasswd라는 명령을 이용하여 사용자(cvs client)와 암호화된 패스워드 생성

     (이 명령을 실행했을 때 없다면, find 명령으로 찾는다)
    $ htpasswd -nb tom 123   -> htpasswd -nb [ID] [password]
     위의 명령은 'tom'이란 아이디에 '123'이라는 패스워드를 사용하겠다는 명령이다.

     그러면 아래와 같은 결과가 화면에 보인다.

     tom:7gSK6kHT4RJ.A

     (같은 패스워드를 반복 실행해도 다른 결과가 나오나 인증에는 문제가 없다 ^^)

 

   - 위의 내용을 터미널에서 복사한 다음, 그 뒤에 :cvs(Unix 사용자계정)를 붙여서 위에서 만든 passwd라는 파일에 차례로 사용자당 한 라인씩 추가시킨다. 생성할 클라이언트 아이디가 많고, 패스워드를 잃어버릴 때마다 관리하기가 귀찮다면 그냥 동일한 암호화된 패스워드를 복사해서 붙여 넣어도 상관없다. 다음은 그 예다.
    $ cat passwd
    tom:7gSK6kHT4RJ.A:cvs
     
ann:7gSK6kHT4RJ.A:cvs

     이렇게 되면 'tom'과 'ann'이란 아이디에 '123'이라는 패스워드를 사용할 수 있다.

 

 

7. cvs server에 remote access를 위한 환경 설정(root 계정으로 실행)

    ☞ CVS 서버가 원격 클라이언트의 접속을 받을 수 있도록 포트를 설정하는 과정이다. 중간에 방화벽이 있을 경우에는 네트웍 담당자에게 방화벽의 포트도 열어 주도록 요청해야 한다.(방화벽은 잘 몰라서 패스 ^^;)


   - /etc/services 파일에 아래의 줄 추가(2401 포트로 tcp 서비스 등록)
     cvspserver 2401/tcp

      추가하기 전 이 포트가 다른 서비스에 등록되지 않았나 미리 확인하고, 사용중이면 다른 포트를 사용해야 한다.


   - /etc/inetd.conf 파일에 아래의 줄 추가(CVS 서비스가 등록되어야 함)
     cvspserver stream tcp nowait root/cvs/cvscvs--allow-root=/cvs/repositorypserver

 

    ->/cvs/cvs: /cvs 디렉토리의 cvs 실행파일

    ->cvs: 위의 cvs 실행파일을 실행하는 Unix 계정
    ->/cvs/repository: CVS ROOT 디렉토리

    나머지 설정에 관한 내용은 Unix를 잘 모르는 관계로 패스~

 

 

8. 7.에서 설정한 환경 적용(root 계정으로 실행)

    ☞ 설정준비가 다 되었으니, 그것을 실제로 적용하는 과정이다.

 

  $ ps -ef | grep inetd
   이 명령을 이용해 inetd의 프로세스ID 확인


  $ kill -HUP [inetd 프로세스ID]
   inetd 데몬 재기동. 이렇게 하면 설정한 내용이 실제로 적용된다.

   한방에 kill -HUP inetd 형태로 적용하면 좋으나, HP-UX는 프로세스ID로 처리해야 하는 모양이다.

 

 

9. 이클립스에서 cvs 연결

    ☞ 다른 CVS 클라이언트도 가능하겠지만, 일단 이클립스로 설명한다.


   [CVS Repository Exploring] Perspective를 Open한다
   New > Repository Location 선택
   - Host : cvs가 설치된 서버의 IP
   - Repository Path(CVSROOT) : /cvs/repository
   - User : tom (6.에서 생성한 아이디)
   - Password : 123 (6.에서 사용한 패스워드)
   - Connection type : pserver
   - Use Default Port : 선택(7.에서 설정한 2401 포트)

      (7.에서 2401 외에 다른 포트를 사용했다면 그 포트를 직접 입력한다)


   위와 같이 입력한 후 Finish 버튼을 클릭하면 연결된다.

 

 

 

나름대로 삽질하면서 배운 정보 열심히 전달하려고 노력했는데, 많은 도움이 되시길...