SPRING

    토비의 스프링. 오브젝트와 의존관계/ DI/ IOC

    열심히 쓰던 와중 글이 날아가버리는 참사가 일어났다... 인생.. 어찌저찌 스프링에 대해 자세히 알고 싶어서 토비의 스프링을 읽었다. 이러쿵 저러쿵해서 책이 참 마음에 들었다. 앞선 내용으로 상속과 인터페이스의 사용에 대해 2시간넘게 서술했는데.. 가슴은 아프지만 누구 보여주려고 쓰는 것도 아니니.. 그냥 날아간 부분은 버리고 작성해보겠다..ㅜ 상속 - 템플릿/팩토리 메서드 패턴과 인터페이스를 이용해 중복 코드를 제거하고 코드간의 관심사를 분리해보자. SOLID 단일 책임 원칙 : 한 클래스에는 하나의 책임만이 있어야 한다. 개방 폐쇠 원칙 : 확장에는 열려있고 변화에는 닫혀있어야 한다. 리스코프 치환 원칙 : 상위 개념은 깨뜨리지 않으면서 하위 타입의 인스턴스와 호환되어야 한다. 인터페이스 분리 원칙 ..

    스프링을 왜 사용하는가? 에 대한 토론글

    https://okky.kr/articles/1430662 OKKY - 스프링의 장점이란게 뭔가요? 전 스프링을 한번도 써본적도 없는 JVM 개발잡니다.자바는 가끔 적어야할 때가 있고, 앱은 JVM에서 돌아가니 자바에 대한 이해도는 조금 있습니다만아는건 하나도 없지만 스프링이란건 얘기 들을 okky.kr 후에 누군가 물어봤을 때 아래 내용들을 알아두고 있으면 좋을 것 같아서 기록

    [스프링] 쇼핑몰 - 비동기 검색

    [스프링] 쇼핑몰 - 비동기 검색

    관리자가 등록한 상품을 사용자가 회원가입 - 로그인 - 상품목록 - 상품내용 - 장바구니 - 주문 의 로직으로 주문을 완료하면 관리자가 다시 주문관리에서 배송 및 취소 등 주문관리를 통해 상품을 판매하고 쇼핑몰을 운영할 수 있도록 구현했다. 이번엔 그 중, 비동기 검색에 관한 포스팅을 작성하려고 한다. 검색은 상품목록 페이지에서 하는 것이 아닌, 상단바에 넣어서 사이트 어느곳이던 검색을 할 수 있도록 했고, 비동기로 처리해서 페이지 새로고침없이, 따로 버튼을 누르지 않고 키워드 입력만으로 검색이 되도록 만들었다. 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 ]

    [스프링] 쇼핑몰 - 상품 주문 [ 1 ]

    이번 프로젝트에서는 꽤나 많은 부분을 구현했다, 쇼핑몰의 공지사항이나 F&Q 등 문의사항을 올릴 수 있는 게시판과 리뷰게시판, 회원기능을 위한 로그인, 회원가입에 관련 된 기능들, 관리자 페이지 등.. 취업상담사분들이 감사하게도, 실제 서비스해도 될 만큼 완성도가 높다고 평가해주셨는데, ( 정말..? ) 사실 많은 부분들이 이전에 했던 Icewater 커뮤니티 프로젝트와 겹친다. 그래서 그런 부분들, 게시판과 회원에 관한 부분들은 따로 포스팅 하지 않을 계획이다. 주문 페이지는 3개의 구성으로 되어있다. 장바구니에 담은 상품 및 수량이 표시되는 주문상품목록 , 주문자와 수취인을 적는 주문정보 , 총액과 할인쿠폰, 적립금과 배송비를 계산해주는 결제 부분이다. 주문정보쪽엔 주소API를 사용해 우편번호와 주소..

    [스프링] 쇼핑몰 - 비동기 장바구니 [3]

    [스프링] 쇼핑몰 - 비동기 장바구니 [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 , ..