TIL/넷마블문화재단

[TIL-28/230919][넷마블문화재단] 게시판 기능 구현(진행 중)

prao 2023. 9. 20. 00:31
반응형

코드 리팩토링을 먼저 할까 하다가 게시판 기능까지 구현하고 리팩토링을 해야겠다는 생각이 들었다.

그래서 오늘은 예전 강의에서 배웠던 코드 기반에 디자인은 html, css가 아직 미숙하기에 빠른 완성을 위한 부트스트랩을 추가하였다.

 

MVC 패턴을 사용하고 싶지만, MVC 패턴이 아직 익숙치 않아 완성하지 못할 것을 고려하여, 구동이 되는 쓰레기인.... DAO, DTO, jsp(view역할), jsp(Action역할)으로 구성했다.

 

테이블 설계

회원(MEMBER), 게시판(BOARD), 댓글(COMMENT), 좋아요(LIKEY) 테이블로 구성했으며, 각각 필요한 연관관계 매핑을 하였다.

ERD Diagram

 BoardDAO(게시판 기능 관련)

  1. 날짜 조회 - SELECT NOW() 를 활용하여 현재 날짜를 조회한다.
  2. 게시물 번호 할당 - boardId는 int형으로 선언하고, 1부터 순차적으로 증가하도록 설계했다.
  3. 글쓰기 - 제목, 회원ID, 내용, 조회수(구현 중), 좋아요수(구현 중)을 전달받아 BOARD 테이블에 삽입하는 기능
  4. 페이지 처리 - boardId 기준으로 내림차순하여 10개씩 끊어서 페이지에 보이게 처리하는 기능
  5. 글의 개수 반환 - 글의 개수를 세는 기능
  6. 다음 페이지 전환 - pageNumber를 전달받아서 정해진 계산식에 의해 페이지를 전환하는 기능
  7. 게시글 반환 - boardId에 해당하는 게시글을 반환하는 기능
  8. 조회수 업데이트 - 조회수와 boardId를 전달받아 조회수를 업데이트한다.
  9. 게시글 수정 - boardId, 제목, 내용을 전달받아 수정한다.
  10. 게시글 삭제 - boardId를 전달받아 삭제
  11. 좋아요(구현중) - boardId를 전달받아 기존의 좋아요 수에 1을 더해주는 기능
  12. 검색 - 검색 필드(제목, 작성자), 검색 키워드를 전달받아 SQL 구문을 통해 검색 기능 구현

게시판

게시판이다. 작성한 게시글이 보이고, 번호, 제목, 작성자, 작성일, 조회수, 추천수가 나온다. 현재 조회수와 추천수는 구현 중인 상태라 기본값이 들어가있다.

 

게시글 작성

게시글은 제목과 내용을 입력하면 작성할 수 있다.

 

로그인을 하라는 알림

로그인을 하지 않은 상태에서 글쓰기를 누르면 로그인을 하라는 팝업이 나온다.

 

게시글 등록

로그인을 다시 한 후 글을 작성하면 제대로 등록이 되는 것을 확인할 수 있다.

 

게시글 확인

로직을 통해 memberId가 작성자 id와 일치하면 수정과 삭제 버튼이 보이도록 구현했다.

 

목표로 한 마감 기일까지 2일이 남았는데 내일 중으로 우선 댓글, 좋아요 기능을 구현하고 코드를 다듬어 볼 계획이다.

반응형