1. HTML → JSP
HTML에서 JSP로 변환 작업
HTML은 정적 웹 페이지를 구성하는 기본적인 언어입니다. 이와 달리 JSP는 동적인 웹 페이지를 구성할 때 사용합니다.
JSP는 HTML 내부에 자바 코드를 삽입할 수 있으므로, 데이터베이스와의 상호작용을 통해 동적 콘텐츠를 생성할 수 있습니다.
예를 들어, 게시판 글 목록을 출력하려면 JSP를 사용해 HTML을 동적으로 생성해야 합니다.
HTML 예시:
<table>
<tr>
<th>번호</th>
<th>제목</th>
<th>작성자</th>
</tr>
<tr>
<td>1</td>
<td>안녕하세요</td>
<td>홍길동</td>
</tr>
</table>
JSP 변환:
<table>
<tr>
<th>번호</th>
<th>제목</th>
<th>작성자</th>
</tr>
<%
List<Post> posts = postRepository.findAll();
for (Post post : posts) {
%>
<tr>
<td><%= post.getId() %></td>
<td><%= post.getTitle() %></td>
<td><%= post.getWriter() %></td>
</tr>
<% } %>
</table>
2. 데이터베이스 기획 (모델링 - ERD)
2.1 데이터베이스 / 사용자 / 암호
데이터베이스는 게시판 데이터를 저장하기 위한 시스템으로 설계합니다.
애플리케이션에서 접근할 수 있도록 사용자 계정과 비밀번호를 설정합니다.
예:
board
board
123456
SQL:
CREATE DATABASE board;
CREATE USER 'board'@'localhost' IDENTIFIED BY '123456';
GRANT ALL PRIVILEGES ON board.* TO 'board'@'localhost';
2.2 테이블 설계
게시판의 기본 구조를 설계합니다. 테이블에는 필요한 칼럼과 속성을 정의합니다.
게시판 테이블 구조 예시:
칼럼명 | 데이터 타입 | 크기 | 설명 | 제약 조건 |
---|---|---|---|---|
seq | INT | - | 게시글 고유번호 | PRIMARY KEY, AUTO_INCREMENT |
subject | VARCHAR | 150 | 게시글 제목 | NOT NULL |
writer | VARCHAR | 12 | 작성자 이름 | NOT NULL |
mail | VARCHAR | 50 | 작성자 이메일 | NULL 가능 |
password | VARCHAR | 41 | 비밀번호 | NOT NULL |
content | TEXT | - | 게시글 내용 | NULL 가능 |
hit | INT | - | 조회수 | NOT NULL |
wip | VARCHAR | 15 | 작성자 IP 주소 | NOT NULL |
wdate | DATE | - | 작성일 | NOT NULL |
SQL:
CREATE TABLE board1 (
seq INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
subject VARCHAR(150) NOT NULL,
writer VARCHAR(12) NOT NULL,
mail VARCHAR(50),
password VARCHAR(41) NOT NULL,
content TEXT,
hit INT NOT NULL,
wip VARCHAR(15) NOT NULL,
wdate DATE NOT NULL
);
3. 프로그램 기획
3.1 UML
3.2 페이지 네비게이션 (DFD - 데이터 흐름 다이어그램)
board_list1.jsp
→ 글 목록 페이지board_write1.jsp
→ 글쓰기 폼board_write1_ok.jsp
→ 글쓰기 처리 후 목록 페이지로 리다이렉트board_view1.jsp
→ 특정 글 상세 보기board_modify1.jsp
→ 글 수정 폼board_modify1_ok.jsp
→ 글 수정 처리 후 상세 페이지로 리다이렉트board_delete1.jsp
→ 글 삭제 폼board_delete1_ok.jsp
→ 글 삭제 처리 후 목록 페이지로 리다이렉트4. 프로젝트 설정
4.1 UI 경로
/css/board.css
4.2 콘솔 한글 설정
SET NAMES 'utf8';
4.3 데이터베이스 풀링
implementation 'org.mariadb.jdbc:mariadb-java-client'
<Context>
<Resource name="jdbc/mariadb1"
auth="Container"
type="javax.sql.DataSource"
driverClassName="org.mariadb.jdbc.Driver"
url="jdbc:mariadb://localhost:3306/board"
username="board"
password="123456"
maxActive="50"
maxIdle="10"
maxWait="-1" />
</Context>
디자인의 위치 찾기
HTML 이해의 중요성
CSS와 UI
board.css
로 테이블 스타일, 버튼 디자인 등을 설정.