데이터 베이스를 기반으로 하는 프로그램들은
게시판만 잘 만들 줄 알아도 대부분의 개발은 되는 것으로 알고 있다.
모든 프로그램은 입력(INSERT), 수정(UPDATE), 삭제(DELETE), 조회(SELECT) 기능이 다양한 형태로 표현되는 것으로,
이러한 기능을 가장 간단하게 구현할 수 있는 것이 게시판 이라고 생각하기 때문이다.
따라서, 대단한 기술이 없이 단순 게시판만 잘 만들 줄 알아도 대부분의 프로그램을 문제 없이 만들 수 있다.
오히려 어설프게 아는 기술들을 적용해서 프로젝트를 망치는 경우를 매우 많이 봤다.
여기서는 게시판 만드는 과정을 단계별로 구성하여
보다 쉽고 깊이 있게 배울 수 있도록 시도하였다.
(게시판을 만들줄 알면 나머지는 프로세스에 따른 구현과 SQL 사용 능력인데 여기서는 다루지 않는다.)
본 게시판 예제는 Spring 4.1과 MyBatis 3.2를 기반으로 구성하였다.
Spring 4를 기반으로 제작했지만
Spring 4의 특징들을 반영하지 않았기 때문에 Spring 3(전자정부 프레임)에서도 사용 가능하다.
다음 그림은 본 예제에서 사용한 Spring MVC 구조로 기본 구조보다 단순하게 구성하였다.
Spring MVC에서는 DAO(mapper)와 Service interface(추상화)등의 구성이 더 구현되어야 한다.
하지만, 경험상 필요성을 느끼지 못하고 이러한 구조는 복잡성을 가중시킨다고 생각하여
본 예제에서는 다음 그림과 같이 단순화 하여 구성하였다.
즉, 추상화를 사용하지 않았고 DAO와 Servic를 합쳐서 Service로 사용하였다.
본 예제는 게시판을 개발하며 프로그래밍 하는 과정을 익히는 것으로
Spring과 MyBatis, MVC에 대하여 어는 정도 알고 있다는 전제로 진행되기 때문에
상세한 내용을 적지는 않을 것이지만 개발 구성에 대해서 간단하게 서술하였다.
사용자가 웹 브라우저를 통하여 특정 페이지에 접속하면 웹 서버(실제로는 WAS)는 해당 페이지의 컨트롤을 호출하고,
사용자가 입력하거나 처리에 필요한 정보를 구성하여 작성한 HTML을 웹 서버에 반환하게 되고
웹 서버는 해당 내용을 클라이언트(웹브라우저)에게 전송하면 사용자가 원하는 내용을 보게 된다.
다만 컨트롤이 처리할 때, 데이터 베이스 관련 작업이 필요한 경우 서비스를 호출하여 해당 데이터 처리와 관련된 실행(SQL)을 처리하여 반환하게 된다.
게시판의 리스트를 예로 들면,
사용자가 게시판 리스트(board1List)를 선택한 경우 웹 서버는 컨트롤인 board1List(Java)를 호출한다.
컨트롤인 board1List는 데이터 베이스에서 게시판 데이터를 가져오기 위해 서비스인 boardSvc를 호출하고
boardSvc는 Mybtis를 통해 데이터를 가져올 수 있는 SQL문을 board1.xml 파일에서 찾아서 실행시키게 된다.
실행 결과로 게시판 데이터들을 집합(RecordSet)으로 받게 되고 이 데이터를 컨트롤에게 반환한다.
컨트롤은 이 데이터와 필요한 데이터를 묶어서 HTML로 구성된 board1List.jsp로 넘겨주고,
JSP 파일에서는 Taglib와 HTML로 사용자가 보는 화면을 구성하게 된다.
즉, MVC ((Model–View–Controller)로 운영되는 것이다.
데이터 베이스는 MariaDB를 대상으로 작성하였으나 MySQL에서도 사용가능하며,
Limit나 DATE_FORMAT등 함수 몇 가지를 수정하면 표준 SQL이라 다른 데이터 베이스에서도 사용 가능하다.
'Java > 게시판기본' 카테고리의 다른 글
2. 게시판의 구성 (4) | 2016.04.02 |
---|---|
3. 설치 (18) | 2016.04.02 |
4. 게시판 구성 단계 (14) | 2016.04.02 |