게시판의 총 데이터 갯수를 확인하는 방법은 다음과 같습니다.
SQL 쿼리 사용:
SELECT COUNT(*) FROM board1;
board1
테이블의 모든 레코드 개수를 계산합니다.Java에서 ResultSet 활용:
getRow()
메서드를 사용하여 행 번호를 가져옵니다.int count = 0;
while (resultSet.next()) {
count++;
}
System.out.println("총 데이터 갯수: " + count);
날짜 차이 계산 및 필터링:
SELECT seq, DATEDIFF(NOW(), wdate) AS wgap FROM board1;
DATEDIFF
는 두 날짜 간의 일 수 차이를 계산합니다.0
이면 오늘 작성된 글 → 최신 글1
이상이면 오래된 글Java 로직 예시:
if (wgap == 0) {
sbHtml.append("<td class='left'><a href='board_view1.jsp?seq=" + seq + "'>" + subject + "</a> <img src='../../images/icon_new.gif' alt='NEW'></td>");
} else {
sbHtml.append("<td class='left'><a href='board_view1.jsp?seq=" + seq + "'>" + subject + "</a></td>");
}
NEW
아이콘은 최신 글일 때만 표시되도록 구현됩니다.페이지 이동은 웹 애플리케이션에서 중요한 요소이며, 서버와 클라이언트에서 각각 다른 방식으로 처리할 수 있습니다.
서버에서 이동:
response.sendRedirect()
를 사용하여 클라이언트에게 새로운 URL로 리다이렉션을 지시합니다.response.sendRedirect("./mariadb/design_simple1/board_list1.jsp");
클라이언트에서 이동:
location.href
를 사용하여 클라이언트가 새로운 URL로 이동합니다.alert
)를 출력하는 등 추가적인 처리가 가능합니다.<script type="text/javascript">
alert('확인을 클릭하면 게시판으로 이동합니다.');
location.href = './mariadb/design_simple1/board_list1.jsp';
</script>
response.sendRedirect
)는 서버에서 처리되므로 보안성이 높습니다..jsp
파일만 사용하는 웹 애플리케이션은 하드코딩(hard coding)이 많아 유지보수가 어렵습니다. 이를 개선하기 위해 개발자들은 MVC 패턴과 같은 디자인 패턴을 도입합니다.
하드코딩의 문제점:
클래스 + JSP 활용:
게시판에서의 흐름과 구현:
게시판 메인 페이지 (board_list1.jsp
)
board_view1.jsp
)로 이동합니다.글쓰기 페이지 (board_write1.jsp
)
board_write1_ok.jsp
로 전송하여 데이터베이스에 저장합니다.board_list1.jsp
)로 이동합니다.글 수정 페이지 (board_modify1.jsp
)
글 삭제 페이지 (board_delete1.jsp
)
구분 | 하드코딩(.jsp만 사용) | 패턴화(클래스 + JSP) |
---|---|---|
구조 | 로직과 UI가 한 파일에 섞임 | 로직은 Java 클래스, UI는 JSP로 분리 |
유지보수성 | 코드 수정 시 많은 부분 재작성 필요 | 수정이 용이, 재사용성이 높음 |
확장성 | 새로운 기능 추가 시 비효율적 | 확장 및 모듈화에 용이 |
보안성 | 낮음 | 상대적으로 높음 |
위 구조를 개선한 설계 방식으로 MVC(Model-View-Controller)나 DAO(Data Access Object) 패턴을 활용하면 효율적입니다.