Skip to content

ganggeon/SpringBoot_Blog

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation


SpringBoot-Project-BLOG

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

🗃️ ERD 설계

blog


📌 구현 기능

  • 회원 기능
    • 회원가입 (Spring Security)
    • 카카오 회원가입 (OAuth2)
    • 로그인/로그아웃
    • 회원 정보 수정
  • 게시판 기능
    • 게시글 상세보기
    • 게시글 작성 (Summernote)
    • 게시글 수정
    • 게시글 삭제
    • 페이징
  • 댓글 기능
    • 댓글 작성
    • 댓글 삭제

💻 실행 화면

실행 화면

구동 화면

회원 기능

회원가입

회원가입 db

  • Spring Security를 적용하여 password는 고정길이의 문자열로 해시화되어 데이터베이스에 저장된다.

회원가입 실패

  • username에 unique제약조건을 적용해 중복 회원가입을 방지했다.

카카오 회원가입

  • OAuth2를 적용해 카카오 로그인을 구현하였다.

로그인

로그인폼

  • 로그인 시 유저 정보가 principal에 저장되고 Spring Security가 세션을 부여한다.

회원 정보 수정

db

  • 데이터베이스의 oauth 값에 따라 카카오 로그인의 회원 수정을 막는다.

회원정보수정

  • password와 email를 수정할 수 있다.

카카오정보수정불가

  • 카카오 로그인은 회원 정보 수정이 불가능하다.

게시판 기능

메인 화면

메인화면

  • 페이징 기능을 통해 한 페이지에서 최대 5개의 게시글이 조회된다.
  • 비회원은 회원가입 및 로그인을 통해 Spring Security로부터 세션을 부여받아야 글 작성이 가능하다.
  • Spring Security를 적용하여 권한이 없는 사용자가 게시글을 클릭 시 자동으로 로그인 폼으로 이동하게 구현하였다.

게시글 상세보기

본인게시글

  • 작성자 본인만 게시글 수정 및 삭제가 가능하다.

남게시글

  • 권한이 없는 사용자는 수정 및 삭제가 불가능하다.

게시물 작성

썸머노트작성폼

  • summernote 웹 에디터를 적용하였다. 다양한 기능과 이미지 업로드를 사용할 수 있다.

게시물 수정

수정

게시물 삭제

삭제

댓글 기능

댓글 작성

본인게시글

  • 게시글에 댓글 기능을 구현하였다.

댓글 삭제

남게시글

  • 작성자 본인만 댓글 삭제가 가능하다.

Releases

No releases published

Packages

No packages published