제5장 mod_tbPSM의 사용

내용 목차

5.1. 개요
5.2. Apache HTTP 서버 설치
5.3. mod_tbPSM 등록
5.4. 프러시저 작성 및 실행
5.4.1. 프러시저 생성
5.4.2. 실행
5.5. 자동 로그인 기능 설정 방법

본 장에서는 Apache HTTP 웹 서버를 통하여 tbPSM 프러시저 호출 및 HTML 페이지를 가져올 수 있는 tbPSM를 사용하는 방법을 기술한다.

Tibero에서는 웹 브라우저 등을 이용하여 HTTP 페이지를 요청하는 경우 tbPSM으로 작성된 프러시저를 호출하여 전송할 수 있는 mod_tbPSM이라는 Apache 모듈을 제공한다. Apache HTTP 서버는 구동할 때 Apache 설정 파일에 지정된 모듈 라이브러리들을 동적으로 로딩한다. mod_tbPSM도 같은 원리로 Apache HTTP 서버로부터 로딩되어 기능을 수행한다.

다음은 mod_tbPSM 모듈을 사용하기 위한 과정이다.

  1. Apache HTTP 서버 설치

  2. mod_tbPSM 등록

  3. 프러시저 작성 및 실행

각 과정에 대한 자세한 설명은 해당 절의 내용을 참고한다.

mod_tbPSM에 최적화된 Apache HTTP 서버 버전은 UNIX 계열의 경우 2.2.31, Windows 계열의 경우 2.4.27이다.

Apache HTTP 서버에 대한 내용은 아래 주소를 참고한다.

UNIX: https://httpd.apache.org/download.cgi#apache22
Windows 64bit: https://www.apachelounge.com/download
Windows 32bit: https://www.apachelounge.com/download

UNIX 계열은 소스 코드를 받아서 직접 빌드해야 하고, Windows 계열은 PC에 설치된 VC에 맞는 버전을 선택하여 다운로드 한 뒤, 포함된 ReadMe.txt 파일에서 Install을 참고하여 설치 및 실행한다.

참고

Tibero Windows 64bit를 사용할 경우 Apache HTTP도 64bit를 사용해야 한다.

Apache HTTP 설치가 완료되면 설정 파일을 수정하여 mod_tbPSM을 등록시켜야 한다. Apache 설정 파일은 $(Apache 서버 설치 경로)/conf/httpd.conf 이다.

  • UNIX 계열

    httpd.conf 파일에 아래와 같이 추가한다.

    LoadModule tbpsm_module       "${TB_HOME}/client/lib/libmod_tbpsm.so"
    <Location /tbpsm>
        SetHandler  tbpsm_handler
        AuthType Basic
        AuthName "Tibero"
    </Location>
  • Windows 계열

    Windows는 TB_HOME 환경변수를 사용하지 않으므로, 절대 경로를 지정해주거나 Apache 설치 경로의 module 폴더에 dll 파일을 복사하고 아래와 같이 추가한다.

    LoadModule tbpsm_module       modules/libmod_tbpsm.dll
    <Location /tbpsm>
        SetHandler  tbpsm_handler
        AuthType Basic
        AuthName "Tibero"
    </Location>

[참고]

경로를 입력하는 경우 Windows 계열은 원래 역슬래시(\)로 디렉터리를 지정하지만, Apache에서는 슬래시(/)로 입력받는다.

LoadModule tbpsm_module       c:/tibero/client/lib/libmod_tbpsm.dll
<Location /tbpsm>
    SetHandler  tbpsm_handler
    AuthType Basic
    AuthName "Tibero"
</Location>

참고

Location 부분은 위의 예제와 똑같이 설정해야 한다.

본 절에서는 HTP 패키지를 이용하여 HTML 페이지를 리턴하는 프러시저를 작성하고 실행하는 방법을 설명한다.

참고

HTP 패키지에 대한 자세한 내용은 "Tibero tbPSM 참조 안내서"의 "제49장 HTP"를 참고한다.

mod_tbPSM 모듈을 통해 프러시저를 실행하기 위한 URL 주소 형식은 다음과 같다.

http://{http_server_ip}:{http_server_port}/tbpsm/{tibero_dsn}/
{package_name}.{procedure_name}?{parameter1}={value1}&{parameter2}={value2)&...
항목설명
http_server_ipHTTP 서버의 IP 주소이다.
http_server_portHTTP 서버의 포트 번호이다. 설정되지 않으면, 기본값 80이 적용된다.
tbpsmhttpd.conf 파일에 지정한 경로처럼 mod_tbPSM와 연동되기 위해서 반드시 넣어줘야하는 상대 경로이다.
tibero_dsntbdsn.tbr 파일에 명시된 DSN 이름이다. 프러시저가 저장되어있는 Tibero DBMS 서버를 가리킨다.
package_name호출할 프러시저가 패키지의 멤버일 경우 패키지 이름 및 점(.)을 명시해야 한다.
procedure_name호출할 프러시저의 이름이다.
parameter1, parameter2, ... , parametern프러시저의 파라미터 이름이다. URL 주소 형식에서는 질의에 해당한다.
value1. value2, ... , valuen프러시저 해당 파라미터에 들어가는 IN값이다.

예를 들어 "12.34.56.78" 주소를 가진 HTTP 서버에 접속하여 "test"라는 DSN을 가진 Tibero DBMS 서버에 있는 hello 프러시저(위에서 작성한 프러시저 예제 기반)을 호출하고 싶다면, 아래와 같이 URL 주소를 작성한다.

http://12.34.56.78/tbpsm/test/hello?title=abc&text=def

웹 브라우저에서 위와 같이 입력하고 요청하면 로그인 화면이 나타난다. 로그인 화면에 입력하는 아이디 및 비밀번호는 hello 프러시저 수행을 위해 로그인해야 하는 Tibero DBMS 계정의 아이디와 비밀번호와 동일하다.

본 절에서는 URL 주소에 따라 자동 로그인할 수 있는 기능의 설정에 대해 설명한다.

일반적으로 mod_tbPSM와 연동되는 HTTP 서버에 웹 페이지 요청을 하면 로그인 화면이 나타나서 아이디 및 비밀번호를 직접 입력해야 한다. 자동 로그인 기능을 설정하면 아이디와 비밀번호을 저장해서 자동 로그인한다. 다만 모든 사용자가 해당 URL 주소로 접근이 가능해지기 때문에 보안상 주의가 필요하다.

mod_tbPSM에서는 mod.tbr 파일을 읽어들여 자동 로그인 기능을 지원한다. mod.tbr 파일은 TB_HOME/client/config 경로에 아래와 같은 형식으로 작성한다.


다음은 mod.tbr 예제의 내용에 대한 간략한 설명이다.

항목설명
LOCATIONURL 주소의 상대 경로이다.
USERNAME접속할 DB 사용자 계정의 이름이다.
PASSWORD접속할 DB 사용자 계정의 비밀번호이다.

'http://12.34.56.78/tbpsm/test/hello?title=abc&text=def'와 같이 접속한다고 했을 때, 'http://12.34.56.78/tbpsm 기준으로 상대 경로를 찾고, mod.tbr 파일에서 일치하는 LOCATION을 찾으면 설정된 'USERNAME'과 'PASSWORD'로 자동으로 로그인한다.

위의 예제처럼 여러 개의 접속 정보를 사용할 경우 tbdsn.tbr 파일도 DSN 접속 정보를 수정해야 한다.