-
[mini project] memboard (class-config.ver)PORTFOLIO 2021. 8. 10. 22:33
목차
- github 링크 : https://github.com/dojh555/memboard
1. 개요
1) 목적
- JSP 와 servlet 의 원리와 기능을 학습을 위한 간단한 프로젝트 구현
- MVC 모델과 3Layer 학습해 더 구조화되도록 프로젝트를 확장
- 회원가입과 로그인 기능 구현
- 게시물 작성과 수정 및 상세내역 확인 가능
- 게시물 첨부파일 업로드와 내려받기 가능
2) 개발환경
- Windows 10
- JAVA JDK 1.8.0_40
- Mysql 8.0.24
- Tomcat 8.5
- Springframework 5.0.2
- mybatis 3.4.1, mybatis-spring 1.3.0
3) 프로젝트 확장
- MVC 모델과 3Layer 학습을 위해 직접 springframework의 FrontController 코드를 구현
- 개념을 이해한 후 springframework 를 적용하여 프로젝트를 수정, 확장하였다.
3-1)과도기 MVC
- Springframework 사용전, 직접 FrontController,ModelAndView 코드를 구현했다.
- @Controller 기능을 인터페이스의 다형성을 사용해 구현했다.
2021.07.26 - [JAVA] - JSP: FrontController 직접 구현해보기
3-2) springframework
- Springframework 의 어노테이션과 ModelAndView 를 사용해 프로젝트를 확장하였다.
- xml 이 아닌 Config 방식으로 진행했다.
2021.07.26 - [JAVA] - board,member(spring.ver1)
2. 설계
1) DB
( mysql workbench 사용 )
ERD
2) UML
( startUML 사용 )
2-1) Package Diagram
2-2) Class Diagram (Data layer)
2-3) Class Diagram (Business Layer, Presentation Layer)
3. 기능 설명
1) 회원
1-1) 프로필 이미지 첨부
- 바이너리 형식으로 DB에 저장 , 자바스크립트의 File API 를 통해 이미지로 읽어 출력하기
1-2) 다음 우편번호 API 로 우편번호 검색가능
1-3) 아이디 중복체크
- id 가 DB 에 저장되어 있는지 여부로 중복체크
1-4) 로그인
id 또는 패스워드 DB 에 없는 데이터일 경우 로그인 불가능
1-5) 회원상세보기
- 바이너리 형식으로 DB에 저장 => ServletOutputStream 로 바이너리를 이미지형식 읽어 출력
2) 게시판
2-1) 게시글 작성
- Interceptor 를 통해 로그인 하지 않아 session에 저장한 값이 없다면 로그인 페이지로 redirect
- 첨부파일 업로드 가능
2-2) 등록한 게시글 조회
- 첨부파일 링크 클릭시 다운로드 가능
FileInputStream 로 로컬이미지를 읽어 OutputStream 을 통해 다운받을 수 있는 첨부파일 형식으로 출력하였다.
4. 느낀점
좋았던 점 😆
이 프로젝트는 수업에 맞춰 진행하였는데
1차로 직접 Spring 의 FrontController 를 작성해 구현해 보았다.
2차로 springframework 를 사용하여 프로젝트를 확장하였는데,
spring 의 MVC모델과 3Layer 구조를 이해하는데 큰 도움이 되었다!
spring 의 어노테이션,ModelAndView 등, 구조와 기능을 자연스럽게 이해할 수 있었다.
아쉬운 점 😢
2차에 거쳐 구현함에 따라 시간이 많이 소요되었는데, 현장에서 많이 쓰이는 xml 방식으로 spring 을 구현해보지 못했다.
추후 프로젝트는 개인적인 학습을 통해 xml 방식으로 진행해야 할 것 같다.
'PORTFOLIO' 카테고리의 다른 글
[mini project] HierarchicalBoard (0) 2021.08.31 [project] hotelDelluna (0) 2021.08.26