먼저 애플리케이션을 만들기에 앞서 요구사항을 확인해 봅니다.
요구사항 확인
1. 비로그인 상태에서는 게시판의 리스트 정보만 제공합니다.
2. 메인 화면 상단부에는 로그인할 수 있는 폼이 제공됩니다.
3. 리스트에서는 게시물번호, 제목, 작성자명, 작성일, 조회수가 제공됩니다.
4. 리스트의 게시물은 최신 등록순으로 정렬되어 제공됩니다.
5. 사용자가 로그인하면 상단부 영역에는 로그인 폼 대신 홈(링크) 글쓰기(링크) 회원이름 로그아웃(링크)이 제공됩니다.
6. 상세 게시물 정보는 게시물번호, 제목, 작성자, 작성일시(리스트에서는 작성일까지 보여줌) , 조회수, 게시물 본문내용이 제공됩니다.
7. 회원 자신이 작성한 게시물에 대해서는 상세 게시물 정보 하단에 삭제와 수정버튼이 제공됩니다.
8. 상단부의 로그아웃 링크를 누르면 로그아웃 하시겠습니까? 의사를 재확인한 후 확인버튼 누르면 로그아웃처리합니다.
9. 로그아웃 처리가 되면 리스트의 제목부분 링크는 비활성화됩니다.
요구사항을 확인하고 사용자들이 어떤 기능을 사용할지 UseCase Diagram으로 설계를 해봅니다.
UseCase Diagram
비회원 사용 가능 기능
- 회원가입 + 프로필 사진 업로드
- 게시물 리스트 확인 (상세페이지 접속 불가)
회원 사용 가능 기능
- 게시물 리스트 확인 (상세페이지 접속 가능)
- 상세글 보기
- 게시물 등록
- 게시물 삭제
- 게시물 수정
- 회원 인증
이렇게 요구 분석을 완료하고 설계에 들어갑니다.
설계
UI 설계
DB 설계 - ERD
UML - Class Diagram
UI 설계
UI 설계는 개인의 취향에 따라 만드시면 될 것 같습니다. 파일 이름 몇 개 작성해 볼까요?
index.jsp
header.jsp
member/login-fail.jsp
board/list.jsp
board/write.jsp
board/post-detail.jsp
board/update.jsp
이런 식으로 만들면 되겠죠?
DB 설계(ERD)
데이터베이스에 저장할 데이터를 어떻게 저장할지 생각해 봅니다. (개인의 취향에 따라 더 늘려도 됩니다.)
게시판에는 글번호, 제목, 본문내용, 조회수, 등록일시, 아이디 데이터를 넣고
회원에는 아이디, 비밀번호, 이름을 넣습니다.
게시판에 있는 아이디는 회원의 아이디를 foreign key로 받습니다.
UML - Class Diagram
저번에 알아본 FrontController와 DAO, VO를 이용하여 Class, Interface, 그리고 그들의 관계를 표현했습니다.
이렇게 설계를 마치고
구현을 해봅니다.
구현의 순서
1. sql 작성을 통해 데이터 CRUD 테스트
2. 테스트 케이스를 작성하여 DAO 메서드 및 함수 실행 진행
3. Controller를 생성하여 request 응답
-> View와 Controller 생성
소감
요구사항 확인 -> 설계 -> 구현을 통해서 개발 프로젝트를 진행하면 됩니다. 물론 처음에는 복잡하고 어렵겠지만 사람은 적응을 잘하는 동물이기 때문에 금방 또 적응하여 잘 사용하고 있을 것입니다.
바로 구현을 하기보다는 미리 생각을 하고 구현을 하는 방향이 좋다고 생각합니다. 맨땅에 건물을 세우는 것보다 땅을 파서 건물을 세우는 것이 훨씬 안전하기 때문입니다.
사상누각 沙上樓閣 : 모래 위에 세운 누각이라는 뜻으로, 기초가 튼튼하지 못하여 오래 견디지 못할 일이나 물건을 이르는 말.
튼튼한 기초를 세우고 좋은 프로그램을 만들어 봅시다.
'코딩 개발 > Java' 카테고리의 다른 글
Pagination (페이지 매기기) (0) | 2023.06.21 |
---|---|
JSTL - Layout으로 import 하기(header, section, nav, aside, footer) (2) | 2023.06.17 |
JSP EL - 디렉토리 변경 시 path 관리 (0) | 2023.06.13 |
Java - DBCP (Database Connection Pool) (0) | 2023.06.12 |
AJAX - JSON 이용 (5) | 2023.06.09 |