Spring Boot, JPA, Thymeleaf 기반의 웹 애플리케이션으로, 회원가입한 유저가 자신의 블로그를 생성하고 관리할 수 있는 기능을 제공합니다.
- Backend: Spring Boot, Spring Data JPA, Spring Security
- Frontend: Thymeleaf, BootStrap, HTML, CSS, JavaScript
- Database: MySQL (AWS RDS)
- Build Tool: Gradle
- Deployment: AWS (EC2, S3, CodeDeploy), Github Action
-
회원가입 및 로그인
- Spring Security 및 Session 기반 회원가입, 로그인 기능
- OAuth 로그인 (네이버, 카카오, 구글)
-
게시물 관리
- 게시물 CRUD 기능 제공
- CKEditor를 활용한 게시글 작성
- 게시글의 이미지를 S3에 저장하고 presigned URL을 통해 불러오기
-
댓글 기능
- 댓글 CRUD
- 비로그인 사용자도 댓글 작성 가능 (작성자명, 비밀번호 입력 필요)
-
블로그 관리
- 사용자별 블로그 생성 및 관리
- 블로그 카테고리 설정
- 프로필 설정 기능
-
검색 기능
- 게시물 제목 및 콘텐츠를 포함한 검색 기능
-
CI/CD 적용
- AWS EC2, S3, CodeDeploy, Github Action을 사용한 자동 배포 적용
- 회원가입 시 자동으로 블로그가 생성되며, 해당 페이지에 노출됨.
- JPA Page를 사용한 페이징 처리
- 블로그 주인이 아닐 경우, 글쓰기 및 블로그 관리 기능 접근 제한
- 게시글 콘텐츠를 HTML로 저장하여, 목록 페이지에서는 서버에서 HTML 태그를 제거한 프리뷰 제공
- 게시물의 제목 및 내용에서 검색 가능
- REST API를 활용하여 JS로 비동기 처리 (댓글 기능)
- 비로그인 사용자도 댓글 작성 가능 (작성자명 및 비밀번호 입력 필요)
- CKEditor를 사용하여 HTML 형식으로 변환 후 데이터베이스에 저장
- 글쓰기 페이지에 들어오면 임시 게시글이 자동 저장됨
- 이미지 업로드 시 즉시 S3에 저장
- 게시글 작성을 중단하면 임시 게시글 및 S3에 저장된 이미지 삭제
- 보안을 위해 presigned URL을 활용하여 게시글 조회 시마다 새로운 presigned URL 발급
- JS Drag & Drop을 사용하여 카테고리 계층 구조 설정 가능
- 자식 카테고리를 최상단으로 이동 시 오류 메시지 발생 및 저장 불가
- REST API를 통해 서버에서 카테고리 목록을 불러오고, 변경 사항을 서버에 저장
- 변경 사항 저장 시, JSON 데이터로 전달 후 order 컬럼을 기준으로 정렬
- 프로필 사진을 서버의 로컬 폴더에 저장
- MDBootStrap 템플릿 사용
- OAuth 로그인 및 일반 로그인 기능 제공
- AWS EC2 + S3 + CodeDeploy + Github Action을 활용한 자동 배포 구성
- CI/CD 파이프라인을 구축하여 코드 변경 사항이 반영될 때마다 자동 배포 수행








