Spring/SpringBoot 28

도메인 분석 설계 - 도메인 모델과 테이블 설계

회원 - 주문 : 1:N 주문 - 상품(물품) 여러개 주문 가능 1 : n => 중간에 주문상품을 두어서 여러개를 놓는다. 카테고리 - 상품 n : n 도메인 모델 회원 엔티티 pk 값을 다 Long type으로 잡았다. 임베디드 타입(내장 값 타입)으로 Address를 넣어주었다. orders는 주문을 List로 가지게 된다. Order와 Item사이 중간에 OrderItem이 있는데 1 : N , N : 1 이 있는 관계를 풀어서 만들었다. ( id, item, order, orderPrice, count를 넣어놓았다.) 그리고 Member가 Order가지고 있고 Order는 Member을 가지고 있는 양방향 연관관계이다. 이 관계의 내용은 회원이 주문을 생성하는 것으로 생각하지 말고 주문이 필요할 ..

Spring/SpringBoot 2022.04.02

SpringBoot Error 해결

https://www.inflearn.com/questions/494407?re_comment_id=180025 OrderService의 setAddress부분 에러 / OrderServiceTest부분의 setAddress(new Address부분에러) - 인프런 | 질문 & Address Class 는 아래와 같습니다. package jpabook.jpashop.domain;import lombok.Getter;import javax.persistence.Embeddable;@Embeddable@Getterpublic class Address... www.inflearn.com https://www.inflearn.com/questions/479107 new Address( - 인프런 | 질문 & 답..

Spring/SpringBoot 2022.04.02

도메인 분석 설계 - 요구사항 분석

아래 흐름대로 가보면서 간단한 쇼핑몰을 구현해보자. 요구사항 분석 - 도메인 모델과 테이블 설계 - 엔티티 클래스 개발 - 엔티티 설계시 주의사항 회원 기능 / 상품 기능 / 주문 기능이 따로 구현되어있다. 안의 기능들은 구현해보는 작업을 시작할 것이다. 기능 목록 회원 기능 회원 등록 회원 조회 상품 기능 상품 등록 상품 수정 상품 조회 주문 기능 상품 주문 주문 내역 조회 주문 취소 기타 요구사항은 아래와 같다. 상품은 재고 관리가 필요하다. 상품의 종류는 도서, 음반, 영화가 있다. 상품을 카테고리로 구분할 수 있다. 상품 주문시 배송 정보를 입력할 수 있다. 다음으로는 도메인 모델과 테이블 설계를 알아보자. https://www.inflearn.com/questions/494651?re_comme..

Spring/SpringBoot 2022.04.01

프로젝트 환경설정 - JPA와 DB 설정, 동작확인

참고: 스프링부트를 통해 복잡한 설정이 다 자동화되었다. persistence.xml 도없고, LocalContainerEntityManagerFactoryBean 도 없다. 스프링 부트를 통한 추가 설정은 스프링 부트 메뉴얼을 참고하고, 스프링 부트를 사용하지 않고 순수 스프링과 JPA 설정 방법은 자바 ORM 표준 JPA 프로그래밍 책을 참고하자. application.properties파일을 지우고 application.yml파일을 생성해준다. 세팅을 한번 해주자. // application.yml spring: datasource: url: jdbc:h2:tcp://localhost/~/jpashop #4칸 // MBCC=TRUE라는 옵션은 빼준다. username: sa password: dri..

Spring/SpringBoot 2022.03.30

H2 데이터베이스 설치

여기에서 h2데이터베이스를 설치하자. h2 폴더를 풀고 h2 경로 - bin 경로에서 cat h2.sh #!/bin/sh dir=$(dirname "$0") java -cp "$dir/h2-1.4.200.jar:$H2DRIVERS:$CLASSPATH" org.h2.tools.Console "$@" 실행을 시켜보자. ./h2.sh 나머지 과정은 설명란에 있는걸로 따라해본다. 데이터베이스 파일 생성 방법 jdbc:h2:~/jpashop (최소 한번) ~/jpashop.mv.db 파일 생성 확인 이후 부터는 jdbc:h2:tcp://localhost/~/jpashop 이렇게 접속 최소 한번일 때 db파일이 생성이 되는데(맨처음 스프링 세팅할 때는 됐었는데 다시하니까 파일명이 나오지 않는다..) milaju@M..

Spring/SpringBoot 2022.03.30

프로젝트 환경설정 - View 환경 설정

main폴더에 jpabook.jpashop폴더에서 HelloController Class를 만들어준다. @Controller annotation을 달아준다. hello라는 url로 오면 Controller가 호출되겠다고 하는 것이다. model에 아무 값이나 담는다 Model model에 데이터를 실어서 view에 넘길 수 있게 해준다. data key의 값을 hello라는 걸로 넘길거고 // HelloController package jpabook.jpashop; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.G..

Spring/SpringBoot 2022.03.30

SpringBoot 프로젝트 환경설정

여기를 들어가서 생성해보자. 초기세팅은 아래와 같이 해주고 Dependencies에서 WebApplication을 만들때 필요한 Web Starter설치 JSP를 쓰는 대신 Thymeleaf(A modern server-side Java template engine)를 쓰자. JSP는 성능이슈 때문에 거의 안쓰는 추세 / SpringBoot 내장 tomcat에서도 권장하지 않는다. Sprimg Data JPA도 설치를 해준다.(나중에 JPA에 대해서 자세히 알아보고 Spring Data JPA는 도움용으로 쓰는 것으로 알고있자.) DB는 H2 DB를 쓴다. 개발 / 테스트 할 때 많이 쓴다. MySQL 같은 경우는 설치하고 세팅하는 과정이 까다롭지만 H2는 웹어플리케이션 실행할 때 데이터베이스를 메모리상..

Spring/SpringBoot 2022.03.29

JPA와 DB 설정, 동작확인 - 테스트 실행 오류

아래 Test Code를 실행하려고 하니까 에러발생 해결중 // MemberRepositoryTest package jpabook.jpashop; import org.assertj.core.api.Assertions; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.annotation.Rollback; import org.springframework.test.context.jun..

Spring/SpringBoot 2022.03.29