SpringBoot JSP JPA MySQL 를 사용하여 웹 게시판 구현
Language : JDK 1.8, JSP 2.3
Framework : SpringBoot 2.7.8
Database : MySQL 5.7
ORM : JPA(Hibernate)
IDE : sts4 4.11.0- 회원 기능
- 회원가입 (Spring Security)
- 카카오 회원가입 (OAuth2)
- 로그인/로그아웃
- 회원 정보 수정
- 게시판 기능
- 게시글 상세보기
- 게시글 작성 (Summernote)
- 게시글 수정
- 게시글 삭제
- 페이징
- 댓글 기능
- 댓글 작성
- 댓글 삭제
실행 화면
- Spring Security를 적용하여 password는 고정길이의 문자열로 해시화되어 데이터베이스에 저장된다.
- username에 unique제약조건을 적용해 중복 회원가입을 방지했다.
- OAuth2를 적용해 카카오 로그인을 구현하였다.
- 로그인 시 유저 정보가 principal에 저장되고 Spring Security가 세션을 부여한다.
- 데이터베이스의 oauth 값에 따라 카카오 로그인의 회원 수정을 막는다.
- password와 email를 수정할 수 있다.
- 카카오 로그인은 회원 정보 수정이 불가능하다.
- 페이징 기능을 통해 한 페이지에서 최대 5개의 게시글이 조회된다.
- 비회원은 회원가입 및 로그인을 통해 Spring Security로부터 세션을 부여받아야 글 작성이 가능하다.
- Spring Security를 적용하여 권한이 없는 사용자가 게시글을 클릭 시 자동으로 로그인 폼으로 이동하게 구현하였다.
- 작성자 본인만 게시글 수정 및 삭제가 가능하다.
- 권한이 없는 사용자는 수정 및 삭제가 불가능하다.
- summernote 웹 에디터를 적용하였다. 다양한 기능과 이미지 업로드를 사용할 수 있다.
- 게시글에 댓글 기능을 구현하였다.
- 작성자 본인만 댓글 삭제가 가능하다.