해당 프로젝트는 오늘의 집 페이지에 있는 코드를 활용하지 않고 DB 생성부터 페이지 UI까지 저희 팀원들과 작성한 것이며 별도의 상업적 목적은 없음을 알려드립니다.
구현사항
소셜로그인, 집들이 리스트페이지, 댓글&대댓글, 쇼핑 리스트페이지, 장바구니페이지, 주문페이지를 맡아서 진행했습니다.
소셜 로그인
- 카카오 소셜API를 활용하여 회원여부를 판단하여 없을 때 가입 후 바로 로그인하는 로직을 구현하였습니다.
- jwt토큰을 발급하여 우리 서비스만의 토큰활용 및 고객관리를 하는 로직을 구현하였습니다.
집들이 리스트페이지
- 데이터 필터링, 정렬, 페이지네이션 적용하여 옵션별로 데이터를 전달하였습니다.
- 클래스를 이용한 쿼리빌더의 사용으로 코드의 가독성과 유연성을 높였습니다.
댓글&대댓글
- SELF JOIN을 활용하여 쿼리문 작성 및 대댓글을 구현하였습니다.
- 상세페이지에 들어갔을 때 한번에 댓글&대댓글, 대댓글이 포함된 댓글의 총 갯수를 SQL문으로 작성하여 Frontend에 전달하였습니다.
쇼핑 리스트페이지
- offset, limit를 사용하여 페이지네이션 적용시켜 구현하였습니다.
- 집들이 리스트페이지와 동일하게 클래스를 이용한 쿼리빌드 사용하여 가독성을 높였습니다.
- 쿼리빌더의 재사용성 특징을 활용하여 메인페이지에서도 같은함수를 활용하였습니다.
장바구니 페이지
- 데이터를 조합하여 로그인한 회원의 장바구니 데이터 불러오는 기능구현을 하였습니다.
- pk값을 기준으로 데이터 유무를 판단하여 연속수량 업데이트하는 기능구현을 하였습니다.
(단, 재고이상의 수량이 담기지 않도록 에러핸들링 구현)
- 선택,혹은 전체삭제를 할 수 있는 코드를 구현하였고 장바구니에 담겨있는 데이터의 값을 sql문으로 작성하여 Frontend에 전달하였습니다.
주문 & 결제 페이지
- 장바구니에 담긴 금액만큼 포인트를 지급하고 결제시 결제금액만큼 차감하는 로직구현
- 트랜잭션(transaction) 도입을 통한 거래 전체 성공/취소 기능 구현
(거래도중 실패할 수 있는 부분에 대한 방지)
- 결제가 완료되면 장바구니에 담겨있던 상품들은 모두 삭제되고 구입한 만큼의 수량도 재고에서 감소하는 로직을 구현하였습니다.
블로그 포스팅
1차와 마찬가지로 기억하고 싶은 개념들에 대해서 블로그에 포스팅하였습니다.
1편은 기술과 관련된 내용을 정리하였고 2편에서는 마무리하면서 느꼈던 회고록을 작성하는 포스팅 시간을 갖겠습니다!
그럼 2편도 많이 기대해주세요😉