프로젝트 설명
•
스프링부트를 이용하여 만든 쇼핑몰 프로젝트입니다.
•
유저 역할을 판매자와 구매자로 나누어 구현하였습니다.
•
판매자
◦
판매자 페이지, 상품 CRUD, 상품관리, 판매 현황 조회
•
구매자
◦
마이페이지, 장바구니, 주문/주문취소, 주문 내역 조회, 코인충전
개발 환경
•
운영체제 : Windows 10
•
통합개발환경(IDE) : IntelliJ
•
JDK 버전 : JDK 17
•
데이터 베이스 : MariaDB
•
빌드 툴 : Gradle
•
관리 툴 : GitHub
Dependencies
•
Spring Boot DevTools
•
Lombok
•
Spring Data JPA
•
MariaDB Driver
•
Spring Security
•
Spring Web
•
Oauth2-client
•
Thymeleaf
기술 스택
•
백엔드
◦
SpringBoot, Spring Security, Spring Data JPA
•
프론트엔드
◦
HTML, CSS, Javascript, Bootstrap, Thymeleaf
•
데이터베이스
◦
MariaDB, MySQL Workbench
DB 설계
•
User
•
Item
•
Cart
•
CartItem
•
Order
•
OrderItem
•
Sale
•
SaleItem
구현 기능
•
Entity 설계 (User, Item, Cart, CartItem, Board) (2022-01-14)
•
상품 기능 구현 (CRUD) (2022-01-15)
•
상품 CRUD 관련 html (2022-01-17)
•
상품 리스트 페이지 검색 기능 (2022-01-19)
•
상품 리스트 페이지 페이징 처리 (2022-01-19)
•
판매자/구매자 프로필 페이지 구현 html (2022-01-22)
•
장바구니 기능 구현 (2022-01-22)
•
장바구니 페이지 html (2022-01-22)
•
주문 관련 Entity 추가 설계 (Order, OrderItem) (2022-01-24)
•
판매자/구매자 프로필 페이지와 연관된 회원정보수정 구현 (2022-01-25)
•
장바구니 상품 주문 기능 구현 (2022-01-26)
•
상품관리 페이지, 판매내역 페이지 html (2022-01-26)
•
판매 관련 Entity 추가 설계 (Sale, SaleItem) (2022-01-27)
•
상품 상세 페이지 렌더링 (th:if) (2022-01-28)
•
전체 html 통일 및 완성 (타임리프) (2022-01-28)
•
개별 상품 구매 기능 추가 (2022-01-29)
•
주문 취소 기능 구현 (2022-01-30)
•
기능 별 예외 처리 (2022-01-31)
•
충전 API 추가 (2022-02-01)
Learned
•
개인 프로젝트여서 프론트엔드 개발자가 없는 관계로, Thymeleaf를 사용하였습니다. html, css적인 부분은 Bootstrap을 사용하여 프론트엔드도 직접 다루어 볼 수 있었으며, Thymeleaf 문법을 잘 이해하게 되었습니다.
•
반복되는 코드는 분리시키고, hasRole('ROLE_USER') isAuthenticated() 문법을 이용하여 USER와 ADMIN의 역할을 한 페이지 내에서 렌더링 하였습니다.
•
Spring MVC 패턴을 적용하여 각 요소의 역할을 명확히 구분하였으며, 코드의 가독성을 높이고 데이터 처리 과정을 명확히 이해하고 적용시켰습니다. 직접 하나의 프로젝트를 구현하며 MVC 패턴이 더욱 와닿았고, 이론으로만 배운 것보다 실제 적용시켜보니 명확하게 알게 될 수 있어서 너무나 도움이 되었습니다.
•
아임포트 라는 API 서비스를 통해 코인 충전 기능에 카카오, 네이버, 페이코 결제 API를 등록하였습니다. 결제 API는 처음 적용해보는 과정이였는데, 구글링을 하며 시도해본 결과 성공적으로 구현할 수 있었습니다.