JSP 게시판 만들기 - 시스템 아키텍처
명칭은 거창하니 어렵게 느껴질 수 있지만, 내가 복잡하게 할 능력도 안되고 내가 아는 한도에서 쉽게 그림으로 표현했다. 물론 이 내용은 쉽게 구할 수도 있고, 책에서 많이 보는 그림이지만 시스템 즉, 게시판이 어떻게 흐름을 타는 지를 도식화해서 나타냈다.
파워포인트로 귀여운 캐릭터와 함께 딱딱해 보이지 않으려고 애쓴 흔적
클라이언트와 서버 프로세스
귀여운 캐릭터를 파워포인트 클립아트에서 구했다. 해맑게 서버에 요청하는 사용자 모습.
클라이언트와 서버간의 표현할 때 아래의 모습은 많이 볼 수 있다. 요청과 응답은 클라이언트와 서버의 빈번히 발생하는 행위로 HTTP 프로토콜로 데이터를 주고 받는다. 이 서버에는 게시판 만들기에 필요한 Tomcat, MySQL, JDK와 웹소스(html,jsp,image,css 등) 이 존재한다.
사용자와 WAS 프로세스
이 그림은 브라우저를 통해 사용자가 서버에 게시판 목록페이지를 요청하고, 이 때 WAS와 JDK에서 하는 일을 그림으로 표현했다. 개발자는 JSP파일에서 소스를 작성하게 되지만 이 JSP파일을 서블릿 JAVA파일로 변환하고, 컴파일하여 컴퓨터가 실행할 수 있는 바이너리 파일 즉, 클래스파일로 변환 된다. 이 클래스 파일을 JRE를 통해 실행해 결과를 사용자의 브라우저에 html 파일로 전달하게 되어 표시 되는 게 핵심이다.
JDBC로 결과를 얻는 프로세스
개발자가 작성한 JSP 파일에서 데이터베이스 테이블의 값을 얻기 위한 프로세스를 그림으로 표현했다. 데이터베이스에서 데이터를 핸들링하기 위해서는 JDBC 라이브러리를 이용해야 한다. 이 JDBC 라이브러리는 JDK 설치시 기본으로 내장되어 있지만, 각각의 데이터베이스(Oracle,MySQL,MSSQL 등) 마다 DB 커넥터가 다르게 존재한다. 이 커넥터 라이브러리는 보통 데이터베이스 사이트에서 구할 수 있으며, 데이터베이스와의 연동을 위해서는 필수이다.
웹 소스에서는 특정 함수 (executeQuery())를 통해 질의문을 보낸다. JDBC 라이브러리들을 통해 데이터베이스와 접속 후 데이터를 얻어 결과값을 받게 된다. 이 때, 검색된 결과값은 ResultSet 객체로 받게 된다.