전체 글
[스프링] 쇼핑몰 - 비동기 검색
관리자가 등록한 상품을 사용자가 회원가입 - 로그인 - 상품목록 - 상품내용 - 장바구니 - 주문 의 로직으로 주문을 완료하면 관리자가 다시 주문관리에서 배송 및 취소 등 주문관리를 통해 상품을 판매하고 쇼핑몰을 운영할 수 있도록 구현했다. 이번엔 그 중, 비동기 검색에 관한 포스팅을 작성하려고 한다. 검색은 상품목록 페이지에서 하는 것이 아닌, 상단바에 넣어서 사이트 어느곳이던 검색을 할 수 있도록 했고, 비동기로 처리해서 페이지 새로고침없이, 따로 버튼을 누르지 않고 키워드 입력만으로 검색이 되도록 만들었다. VO /* */ public class ItemVO /* */ { /* */ private int item_no; /* */ private String item_admin; /* */ priva..
[스프링] 쇼핑몰 - 상품목록과 페이징
관리자가 등록한 상품을 사용자가 회원가입 - 로그인 - 상품목록 - 상품내용 - 장바구니 - 주문 의 로직으로 주문을 완료하면 관리자가 다시 주문관리에서 배송 및 취소 등 주문관리를 통해 상품을 판매하고 쇼핑몰을 운영할 수 있도록 구현했다. 이번엔 그 중, 상품목록과 페이징 그리고 비동기 검색에 관한 포스팅을 작성하려고 한다. 상품들은 다수의 카테고리를 가지고 있기 때문에, 카테고리별로 페이징이 되어야하며, 신상품순, 높은가격순, 낮은가격순으로 정렬을 할 수 있도록 구현했다. 검색은 상품목록 페이지에서 하는 것이 아닌, 상단바에 넣어서 사이트 어느곳이던 검색을 할 수 있도록 했고, 비동기로 처리해서 페이지 새로고침없이, 따로 버튼을 누르지 않고 키워드 입력만으로 검색이 되도록 만들었다. 페이징에 필요한 ..
페이징에 대하여
그간 웹개발을 공부하면서 , 다수의 프로젝트들을 만들었었는데 항상 빠지지않고 사용했던게 바로 페이징인 것 같다. 이젠 많이 어렵지 않다고 느낄 정도로 많이 사용해서 익숙해졌지만 정리한 적이 없어 한번 정리해보려고 한다. 예제는 제작한 쇼핑몰 프로젝트이다. [스프링] 쇼핑몰 - 상품목록과 페이징 :: 간편 웹프로그래밍 (tistory.com) 페이징에 필요한 파라미터를 받을 VO public class ItemCriteria { private int page; private int perPageNum; private int rowStart; private int rowEnd; private String catemain; private String catesub; private String sort; /* ..
[스프링] 쇼핑몰 - 주문관리
관리자가 등록한 상품을 사용자가 회원가입 - 로그인 - 상품목록 - 상품내용 - 장바구니 - 주문 의 로직으로 주문을 완료했을때 아래 관리자페이지의 주문관리에 주문 목록이 표시된다. 관리자는 물품준비중에 들어온 주문의 주문번호를 눌러서 물품을 확인하고, 배송이 완료되면 송장번호입력 버튼을 눌러서 송장번호를 입력하면, 배송상태가 배송중으로 바뀌며, DB에 송장번호가 들어가고, 사용자는 마이페이지 주문목록에서 송장번호와 배송상태를 확인 할 수 있다. 사용자가 주문취소 버튼을 누른 건은 취소요청버튼을 눌러서 확인 할 수 있고, 환불처리 또는 교환처리를 할 수 있다. Mapper SELECT * FROM ( SELECT ordered_no,ordered_mem_no,ordered_to_name,ordered_t..
[스프링] 쇼핑몰 - 주문목록
이번 포스팅은 주문 완료 후 , 사용자가 마이페이지에서 확인 할 수 있는 주문목록에 대한 내용이다. 주문목록에서는 주문한 상품들의 목록과 배송상태, 취소요청, 리뷰작성을 할 수 있다. 리뷰작성은 배송이 시작된 후에 작성 할 수 있도록 했으며, 취소요청을 하면 관리자가 확인 할 수 있다. 이 부분은 다음 포스팅에 작성할 관리자의 주문관리 부분과 연결된다. 주문번호 클릭 시 , 주문상품, 주문시 입력한 구매자 및 수취인의 정보 , 결제내역을 확인 할 수 있다. Mapper select a.ORDERITEM_NO, a.ORDERITEM_IMG, a.ORDERITEM_NAME, a.ORDERITEM_MEM_NO, a.ORDERITEM_OPTION, a.ORDERITEM_PRICE, a.ORDERITEM_ITEM..
[스프링] 쇼핑몰 - 상품 주문 [ 2 ]
전 포스팅에 이어서, 상품 주문 로직을 설명하려고 한다. 주문상품, 주문정보, 총금액, 결제금액, 할인율 등을 insert 시켜서 주문서를 DB에 저장시킨다. 주문아이템VO public class OrderItemInsertVO { private int[] Inorderitem_no; //주문아이템 pr private String[] Inorderitem_img; // private String[] Inorderitem_name; private String[] Inorderitem_option; private String[] Inorderitem_price; private int[] Inorderitem_item_no; private int[] Inorderitem_select_vol; private i..
[스프링] 쇼핑몰 - 상품 주문 [ 1 ]
이번 프로젝트에서는 꽤나 많은 부분을 구현했다, 쇼핑몰의 공지사항이나 F&Q 등 문의사항을 올릴 수 있는 게시판과 리뷰게시판, 회원기능을 위한 로그인, 회원가입에 관련 된 기능들, 관리자 페이지 등.. 취업상담사분들이 감사하게도, 실제 서비스해도 될 만큼 완성도가 높다고 평가해주셨는데, ( 정말..? ) 사실 많은 부분들이 이전에 했던 Icewater 커뮤니티 프로젝트와 겹친다. 그래서 그런 부분들, 게시판과 회원에 관한 부분들은 따로 포스팅 하지 않을 계획이다. 주문 페이지는 3개의 구성으로 되어있다. 장바구니에 담은 상품 및 수량이 표시되는 주문상품목록 , 주문자와 수취인을 적는 주문정보 , 총액과 할인쿠폰, 적립금과 배송비를 계산해주는 결제 부분이다. 주문정보쪽엔 주소API를 사용해 우편번호와 주소..
[스프링] 쇼핑몰 - 비동기 장바구니 [3]
이 전 글에서 장바구니 추가와 조회를 구현했다. 추가와 조회에 비해 삭제는 간단하다. 장바구니 조회 시에 얻을 수 있는 장바구니PR을 이용해 delete 해주면 된다.. Mapper DELETE FROM CART WHERE CART_NO = ${cart_no} DELETE FROM CART WHERE CART_CKID = ${cart_ckid} DELETE FROM CART WHERE CART_MEM_NO = ${cart_mem_no} 삭제 부분은 cart_no 라는 장바구니 PR을 받아서 delete 해주면 된다. 동기식으로 구현한 장바구니 뷰에는, 전체삭제가 구현되어 있다. 전 글에서, 장바구니를 추가할 때 비회원과 회원의 로직이 나뉘어져 있었는데, 비회원 시에는 쿠키의 value 값인 ckid , ..
[스프링] 쇼핑몰 - 비동기 장바구니 [2]
전 글에선 비동기 장바구니 부분의 추가 ( insert ) 부분을 작성했다. 이제 장바구니 목록과 삭제 부분을 작성해보려고 한다. 이번글에선 장바구니 목록 ( header 부분의 비동기 목록 ) 과 장바구니 뷰 (주문으로 넘어갈 수 있는 장바구니 페이지 ) 를 같이 설명해보겠다. 장바구니 header 목록 부분은 비동기로, 장바구니 뷰 페이지는 동기 방식으로 구현되었으나, 같은 mapper를 사용한다. (나중에 장바구니 뷰도 비동기로 할 걸 하는 후회가...) 먼저, 구현한 기능이다. 상품의 옵션별로 장바구니에 추가가 가능하고, 옵션이 중복되면 넣지 못하도록 구현했다. 장바구니에 추가 된 상품의 가격은 TOTAL 부분에 합쳐서 보이도록 했으며, 삭제하기 버튼을 누르면 해당 옵션이 삭제된다. Mapper ..
[스프링] 쇼핑몰 - 비동기 장바구니 [1]
이번 쇼핑몰 프로젝트에서 , header 부분에서 장바구니 목록을 보고, 상품내용페이지에서 상품을 장바구니에 넣고, 장바구니에 담긴 상품을 삭제하고, 담긴 상품의 총액이 변경되도록 하는 장바구니 부분을 비동기로 구현했다. 이번 프로젝트에서 가장 어려웠던 부분을 꼽자면 단연 이 비동기 장바구니 부분이라고 생각한다.. 구현할 때는 왜 이렇게 어려울까, 내가 아직 실력이 많이 부족하구나 등등 고민을 많이 하며 시간을 타 로직보다 많이 들여 구현을 했는데 , 나중에 검색해보니 쇼핑몰 프로젝트에서 어렵다고 꼽히는 로직이 장바구니라고 들었다... 그래도 혼자 힘으로, 내 머리속에 그려진 로직대로 설계해서, 성공적으로 구현을 완료하고나니, 뿌듯하기도 하고, 실력 항샹에 도움이 많이 됐다. ( 특히 js부분..) 로직..