본문 바로가기

분류 전체보기56

6) 파일 업로드 상품등록 서비스를 만들 때 이미지 업로드 기능이 필요하다. 상품 등록에 대한 요구사항은 아래와 같다. 요구사항 상품 정보 입력 (상품명, 가격, 수량, 상품상태, 상품 카테고리 등등) 이미지 파일 여러 개를 등록할 수 있다. 업로드한 이미지를 웹 브라우저에서 확인할 수 있다. 스프링은 MultipartFile 이라는 인터페이스로 멀티파트 파일을 매우 편리하게 지원한다. 스프링 MVC를 활용하여 구현해보자. application.properties 작성 file.dir=C:/newThing/chimm/ file.dir ( file.dir ) 이 부분을 원하는 이름으로 적고 원하는 파일저장경로를 설정해주면 된다. 후에 @Value("${file.dir}")로 불러다가 사용할 예정이다. 상품 등록 폼화면 작성.. 2023. 6. 14.
5) Paging Query 이전 프로젝트를 만들었을 때, Querydsl 사용하는 부분 코드가 아쉬었었다. 그래서 이번에 페이징 쿼리를 수정하면서 다시 복습하고자 한다. 고치고 싶었던 것 컨트롤러 부분에서 카테고리별로 페이징처리하는 부분 페이징 필터 수정 카테고리별로 상품 페이징하는 부분에서 아쉬운점이 있다. 이전 프로젝트에서 카테고리 구현을 하고자, 컨트롤러에서 아래 경로 매핑 2개를 작성했었다. /category/BOOK /category/MUSIC {code} 방식으로 받는 방법을 몰라서, 반복되는 코드를 적고 code를 문자열로 고정시켜 페이지 구현을 했었다. 하지만, queryDSL 쿼리를 작성하여 좀 더 코드개선을 할 수 있었다. 또한 페이징 필터를 "낮은가격순" "높은가격순"으로 고쳤다. 이전에 "이름순" "최신등록순.. 2023. 6. 13.
4) Enum 활용 저번 프로젝트 만들 때, 아쉬웠던 점들을 최대한 보완해보려고 한다. 아쉬웠던 부분 Item 정보 중, ItemType(상품등급), ItemCategory(상품카테고리) 설계하는 더 나은 방법을 찾았으면 한다. 카테고리별로 상품 페이징하는 부분에서 아쉬운점이 있다. 그 외 코드 리팩토링 Enum 활용하여 개선해보자. 이전 프로젝트 설계했을 때, Item 필드에 ItemType(상품 등급), ItemCategory(상품 카테고리)가 있는데 String 문자열로 선언했었다. 자바의 enum 타입을 매핑한다. enum을 활용하여, 객체간 책임을 확실히 분리하도록 하자. 객체가 상태(값)와 행위(로직)을 갖고 있는 것이 좋다. 상품 등급과 카테고리를 명확히 표현하며, 각 타입은 본인이 수행해야할 기능과 책임만 가.. 2023. 6. 13.
2) 도메인 모델과 테이블 설계 작은 쇼핑몰을 만들어가면서 JPA로 실제 도메인 모델을 어떻게 구성하고 객체와 테이블을 어떻게 매핑해야 하는지 알아보자. 먼저 요구사항을 분석하고 도메인 모델과 테이블을 설계하자. 요구사항 핵심 요구사항은 다음과 같다. 회원은 구매와 판매 모두 가능하다. 구매 시 여러 종류의 상품을 선택할 수 있다. 상품을 카테고리(음반,도서,문구류)로 구분할 수 있고, 이후 더 확장될 수 있다. 회원은 상품을 (카테고리별/가격순/이름검색) 조회할 수 있다. 요구사항을 분석해봤을 때 기능은 다음과 같다. 회원 기능 회원가입시 아이디, 비밀번호, 배송지 주소 입력을 받는다. 웹 서비스 이용을 하기 위해서 로그인을 해야 한다. 회원가입/로그아웃/정보보기 기능을 제공한다. (회원 정보 수정/탈퇴 기능을 추가할 예정) 상품 기.. 2023. 6. 13.