2020年04月15日 ~ 진행중
천사같은 반려동물들을 다른 이용자들에게 자랑하는 커뮤니티와 반려동물 관련 용품을 판매하는
커뮤니티+쇼핑몰 프로젝트입니다. 강아지나 산책시키기 힘든 고양이와 포유류,조류,파충류 등을 다른 사람들이 보고 같이 예뻐해줬으면 하지만 그렇기 힘든 사람들을 위해 만들어지고 있습니다.
프로젝트는 스프링부트와 JPA를 사용하고 있으며, 템플릿 엔진으로는 스프링 부트에서 공식적으로 지원하는 타임리프를 사용하고 있습니다.
Spring Security와 JWT를 사용하여 토큰에 사용자 정보와 권한을 명시하고 있습니다.
먼저 기존 스프링 프레임워크로 게시판을 제작해본 후에 스프링 부트와 JPA를 사용해서 프로젝트를 진행하며 가장 먼저 느낀 점은 스프링 부트를 사용 했을 때 프로젝트 초기 설정이 매우 간편하다는 것이었습니다.
트랜잭션 매니저, 하이버네이트 DataSource, Session Factory 등 설정하는 데 오랜 시간이 걸리던 것에 비해 스프링 부트는 자동설정(AutoConfiguration)을 이용하고 Spring Boot Starter 디펜던시를 등록하는 것만으로도 기본적인 설정을 완료할 수 있다는 것이 매력적이었습니다.
또한 JPA를 사용함으로써 데이터베이스 중심 설계에서 객체 중심 설계를 할 수 있다는 점이 신선했습니다. 하지만 후에 큰 시스템에서의 통계처리 같은 복잡한 SQL 처리는 JPA만으로는 힘들 것 같다고 느꼈습니다. 또 쿼리 메소드를 사용하여 데이터베이스를 처리하기 때문에 매핑 관계, 외래키 등 데이터베이스 매핑 구조를 완벽히 이해할 수 있어야 JPA의 강점을 가장 잘 활용할 수 있을 것 같습니다.
기존 스프링 프레임워크 게시판에서는 게시글 페이징을 위해 직접 페이징 쿼리를 작성해야 했지만 Spring Data JPA의 Page, Sort, Size 파라미터를 추가하고 Page로 리스트를 리턴하면 페이징이 완성되는 점이 놀라웠습니다.
- BootStrap 4.3
- ThymeLeaf
- JQuery
- Spring Boot 2.1.7
- Java JWT
- Spring Boot JPA
- jdk 1.8
- Mysql
- Gradle
- JWT를 사용한 로그인과 권한 관리
- 회원가입 시 이메일 인증을 통한 사용자 정보 검증
- 강아지, 고양이, 다른동물 카테고리를 가진 3개의 게시판
- 게시글 작성, 조회, 수정, 삭제
- 스케줄러를 사용한 특정 시간에 업데이트되는 조회수 기준 상위 6개 게시물
- 이미지 업로드와 썸네일 이미지 구현
- 게시글 추천(게시물 테이블의 ID와 유저 테이블의 ID를 참조합니다.)
- 댓글의 작성과 수정, 삭제
- 쇼핑몰 상품 등록, 조회(개발중)
- 쇼핑몰 상품 주문, 주문 취소, 배송(개발예정)
(아직 완성된 프로젝트가 아니므로 앞으로의 개발 진행 과정에 의해 변경될 가능성이 높습니다.) 123