-
[mini project] HierarchicalBoardPORTFOLIO 2021. 8. 31. 18:35
목차
1. 목적
2. 개요
3. 개발환경
4. 설계
5. spring 구조
6. 기능 설명
7. 후기- github 링크 : https://github.com/dojh555/HierarchicalBoard
1. 목적
- 계층형 게시판 이해와 구현
- STS 툴을 이용해 spring framework 사용
- MVC 패턴 활용
- Tiles를 이용한 동적 레이아웃 구성
- myBatis와 Oracle DB 이용한 DB 연동 및 조작
2. 개요
1) 수행기간
2021.09.06 ~ 2021.09.19
2) 회원 기능
- 회원가입이 가능하다.
- 로그인이 가능하다.
- 인터셉터를 통해 비로그인 상태에서 게시물 작성시 로그인 화면을 요청한다.
3) 계층식 답변형 게시판 기능
- 원글에 대한 답글을 달 수 있다.
- 원글은 최신순, 답글은 1차로 계층순 2차로 최신순으로 정렬한다.
- 메인 게시판 페이지는 페이징 기능을 구현한다.
4) 게시물에 댓글 기능
- 원글, 답글등에 간단한 댓글 작성할 수 있다.
- 댓글 일정개수 이상일 시 더보기 기능으로 댓글을 볼수 있다.
3. 개발환경
- Windows 10
- JAVA JDK 1.8.0_40
- STS 3.9.15
- Springframework 4.3.13
- Tomcat 8.0
- OracleXE11 - ojdbc6
- mybatis 3.2.8
- tiles-jsp 2.2.2
- jackson-databind 2.9.2
4. 설계
1) ERD ( ERMaster 사용 )
member: 회원 테이블
board: 게시물 테이블
reply: 댓글 테이블
2) UML ( startUML 사용 )
2-1) Package Diagram
2-2) Class Diagram (Business Layer, Presentation Layer)
- member
- board, reply
5. spring 구조
6. 기능 설명
- Tiles 구현
회원 가입
DEVELOP Description 1 Ajax 로 Dataservice layer 의 데이터로 ID 중복체크 2 다음 우편번호 API 를 사용하여 우편번호 검색 가능 3 Js 를 통해 회원가입 유효성 검사
로그인
DEVELOP Description 1 Ajax를 이용하여 id,pw 일치하는 회원 확인
게시판 목록
DEVELOP Description 1 계층형 게시판 리스트 2 Paging 기능 3 비로그인 시 interceptor 를 통해 로그인 화면으로 요청 변경
- 댓글 등록, 삭제, 수정
DEVELOP Description 1 Ajax를 이용해 비동기로 댓글등록 2 Ajax를 이용해 비동기로 댓글삭제/수정 가능
- 댓글 더보기, 접기
DEVELOP Description 1 Ajax를 이용해 댓글 10개 이상일 때 댓글 더보기 버튼 활성화
Ajax를 이용해 댓글 더보기 기능2 Ajax를 이용해 마지막 댓글일 때 댓글 접기 버튼 활성화
Ajax를 이용해 댓글 접기 기능
7. 후기
느낀 점 😁
댓글 기능으로 ajax 를 많이 사용하게 되었는데, 기존에 알고 있던 이론이 많이 부족하고 잘못된 부분이 있었다는걸 알게 되었다.
더보기@ResponseBody 와 @RequestBody 를 숙지하지 못하고 매번 404, 415 에러페이지를 겪었는데,
이번 프로젝트를 통해 컨트롤러에서 리턴값의 기본은 뷰이름이며 뷰이름이 아닌 JSON 객체를 보내기 위해 @ResponseBody 를 사용한다는 것,
@RequestBody 는 보내온 data 가 쿼리스트링이면 당연히 JSON 형식의 데이터가 아니므로 맞지 않는 데이터 형식이라는 에러페이지가 뜬다는 것 등을 알 수 있었다.
초기에 다른 프로젝트에서 spring 을 어노테이션 형식으로 구현했었는데 이번 프로젝트에서는 xml 형식으로 진행했다. 이를 통해 두 방식의 사용법과 서로 어느 부분이 동일한 설정으로 매칭되는지 알아볼 수 있었던 유익한 시간이었다.
개선해야 할 점 🐱👓
1. 기본 이론을 숙지하자
제대로 알지 못하고 사용하는 기능은 더 많은 시간을 할애하게 한다.
모르는 부분은 애매하게 넘기지 말아야 한다.
ajax 부분, spring 을 xml 형식으로 설정함에 있어서 경로 설정등에 어려움을 많이 겪었다.
2. UML 다이어그램등을 통해 설계도를 잘 활용하자
초기에는 UML 다이어그램을 통해 정리하여 쉽고 빠르게 파악할 수 있었지만 ,
점차 필요한 기능이 추가되가면서 머리속에서만 설계를 마치는 경우가 있었다.
결국 추후에 이 컨트롤이 어떤 기능을 하는지 다시 파악해야 했고 같은 기능을 중복하여 사용하는 비효율적인 부분도 발견할 수 있었다.
'PORTFOLIO' 카테고리의 다른 글
[project] hotelDelluna (0) 2021.08.26 [mini project] memboard (class-config.ver) (0) 2021.08.10