프로젝트28 4) Enum 활용 저번 프로젝트 만들 때, 아쉬웠던 점들을 최대한 보완해보려고 한다. 아쉬웠던 부분 Item 정보 중, ItemType(상품등급), ItemCategory(상품카테고리) 설계하는 더 나은 방법을 찾았으면 한다. 카테고리별로 상품 페이징하는 부분에서 아쉬운점이 있다. 그 외 코드 리팩토링 Enum 활용하여 개선해보자. 이전 프로젝트 설계했을 때, Item 필드에 ItemType(상품 등급), ItemCategory(상품 카테고리)가 있는데 String 문자열로 선언했었다. 자바의 enum 타입을 매핑한다. enum을 활용하여, 객체간 책임을 확실히 분리하도록 하자. 객체가 상태(값)와 행위(로직)을 갖고 있는 것이 좋다. 상품 등급과 카테고리를 명확히 표현하며, 각 타입은 본인이 수행해야할 기능과 책임만 가.. 2023. 6. 13. 2) 도메인 모델과 테이블 설계 작은 쇼핑몰을 만들어가면서 JPA로 실제 도메인 모델을 어떻게 구성하고 객체와 테이블을 어떻게 매핑해야 하는지 알아보자. 먼저 요구사항을 분석하고 도메인 모델과 테이블을 설계하자. 요구사항 핵심 요구사항은 다음과 같다. 회원은 구매와 판매 모두 가능하다. 구매 시 여러 종류의 상품을 선택할 수 있다. 상품을 카테고리(음반,도서,문구류)로 구분할 수 있고, 이후 더 확장될 수 있다. 회원은 상품을 (카테고리별/가격순/이름검색) 조회할 수 있다. 요구사항을 분석해봤을 때 기능은 다음과 같다. 회원 기능 회원가입시 아이디, 비밀번호, 배송지 주소 입력을 받는다. 웹 서비스 이용을 하기 위해서 로그인을 해야 한다. 회원가입/로그아웃/정보보기 기능을 제공한다. (회원 정보 수정/탈퇴 기능을 추가할 예정) 상품 기.. 2023. 6. 13. 3) 요구사항 구현 & 계층형 구조 요구사항을 구현해보자. 계층형 구조로 구현했다. Controller : MVC의 컨트롤러가 모여 있는 곳이다. 컨트롤러는 서비스 계층을 호출하고 결과를 뷰에 전달한다. Service : 비즈니스 로직이 있고 트랜잭션을 시작한다. 서비스 계층은 데이터 접근 계층인 리포지토리를 호출한다. Repository : JPA를 직접 사용하는 곳은 리포지토리 계층이다. Domain : 엔티티가 모여 있는 계층이다. 모든 계층에서 사용한다. 스프링 데이터 JPA로 요구사항을 구현해보자. 사용자 정의 리포지토리 구현 스프링 데이터 JPA에서는 필요한 메서드만 구현할 수 있는 방법을 제공한다. Paging Query 편에 자세히 작성했다. 1. 직접 구현할 메서드를 위한 사용자 정의 인터페이스를 작성한다. 아래처럼 필요한.. 2023. 6. 13. 1) SpringBoot & Github 프로젝트 생성하기 저번에 만든 프로젝트 V1를 개선해보자. 개발환경 프로젝트 개발 환경은 다음과 같습니다. IDE : IntelliJ IDEA Community Edition Git Tools : Source Tree OS : Window Spring Boot 2.7.1 Java 11 Gradle 커리큘럼 모든 프로젝트 코드는 Github에 있습니다. 각 커리큘럼 코드는 Master 브랜치로 관리합니다. SpringBoot & Github 프로젝트 생성하기 도메인 모델과 테이블 설계 요구사항 구현&계층형 구조 Enum 활용 Paging Query 파일 업로드 오류처리와 예외처리 개선사항과 만났던 오류들 1. 프로젝트 생성하기 1-1. SpringBoot & Gradle 프로젝트 생성하기 Spring Initializr를 .. 2023. 6. 13. 이전 1 2 3 4 5 6 7 다음