스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발 : 프로젝트 환경설정/요구사항 분석/도메인과 테이블 설계/아키텍처 구성/핵심 비즈니스 로직 개발(회원, 상품, 주문)/테스트/웹 계층 개발
기본 Application 실행 테스트 / Lombok 테스트 / View 환경설정 / H2 데이터베이스 설치 및 테스트
Preferences > Plugin > lombok 검색 실행(재시작) Preferences > Annotation Processors 검색 > Enable annotation processing 체크 후 OK 외부 어노테이션 라이브러리(ex. Lombok)가 컴
공식 사이트 : Thymeleaf 예시특징서버 사이드 HTML 랜더링백엔드 서버에서 HTML를 동적으로 렌더링하는 용도로 사용됨Natural Template순수한 HTML을 최대한 유지하려는 특징이 있음확장자도 .HTML이고 웹 브라우저에서 직접 파일을 열어도 내용을
개발이나 테스트 용도로 가볍고 편리한 DB, 웹 화면을 제공데이터베이스를 내장해서 실행하는 등 다른 디비보다 간단하게 사용이 가능함Version 2.2.220 버전 다운로드H2 Database Engine윈도우 설치 버전: https://h2database.c
5. JPA와 DB 설정 동작확인 1) application.yml 정이 복잡해지면 yml 작성 방식이 편하기 때문에 application.yml 파일에 동작 설정 jpa hibernate가 생성하는 SQL 출력 System.out 콘솔에 출력하는 방법 jpa.hibernate.show_sql 운영 환경에서는 해당 설정을 사용하면 안됨...
ORM이며 객체 지향과 데이터베이스 간 발생하는 차이를 매핑해줌객체는 객체대로 설계가 가능하고, DB와의 차이점에 대해서는 ORM을 통해서 매핑SQL 중심적 개발에서 객체 중심적 개발을 할 수 있게 되어 데이터베이스에 종속적이지 않게 됨JPA는 JDBC API를 통해서
1. 요구사항 분석 1) 기능 목록 회원 기능 회원 등록 회원 조회 상품 기능 상품 등록 상품 수정 상품 조회 주문 기능 상품 주문 주문 내역 조회 주문 취소 2) 기타 요구사항 상품은 재고 관리가 필요하다 상품의 종류는 도서, 음
외래키가 있는 곳을 연관관계의 주인으로 정하는 것이 좋음
강의 : 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
엔티티에는 가급적 Setter 사용 지양, 모든 연관관계는 지연로딩으로 설정, 컬렉션은 필드에서 초기화, 테이블/컬럼명 생성 전략
Controller, Service, Repository, Domain
1. 계층형 구조 애플리케이션에서 사용하는 계층별로 패키지를 구성하는 방법 Layered Architecture의 컴포넌트 및 관련 요소들이 패키지가 되는 경우가 많음 장점 프로젝트에 대한 이해도가 상대적으로 낮아도 패키지 구조만 보고 전체적인 구조를 파악할 수 있음 ex) 비즈니스 로직 파악 > Service 패키지 확인 계층별 응집도가 높아짐 ...
[ 구현 기능 ] - 회원 등록 - 회원 단건 조회 - 회원 다건 조회 - 회원 이름으로 조회
jpa의 모든 데이터 변경 로직들은 transaction 안에서 이루어져야 함
회원가입 테스트, 중복 회원 예외 발생 테스트
[구현 기능] 상품 등록 상품 목록 조회 상품 수정 1. Item Entity + 비즈니스 로직 추가 1) Item Entity 구현 2) 코드 상세 설명 객체 지향적인 개발 방식 데이터를 가지고 있는 쪽에 비즈니스 메서드를 있는 것이 좋음 따라서 핵심 비즈니스 로
1. 엔티티 생명주기 New/transient(비영속) 영속성 컨텍스트와 관련없이, 객체를 생성만 한 상태 Managed(영속) 영속성 컨텍스트에 저장되어 Entity가 영속성 컨텍스트에 의해 관리됨 persist() 영속성 컨텍스트에 저장되어 영속 상태가 됨 바로 DB에 쿼리가 날라가지 않음 트랜잭션이 커밋되는 시점에 영속성 컨텍스트에 있...
[ 구현 기능 ] 상품 주문 주문 내역 조회 주문 취소 > [ 구현 순서 ] 주문 엔티티, 주문상품 엔티티 개발 > 핵심 비즈니스 로직 추가 주문 리포지토리 개발 주문 서비스 개발 주문 검색 기능 개발 주문 기능 테스트
💡 테스트 요구사항 : 주문이 성공해야 함, 상품을 주문할 때 재고 수량을 초과하면 안됨, 주문 취소가 성공해야 함
동적 쿼리 작성 방법 - JPQL, JPA Criteria, Querydsl
💡 웹 계층 개발 >- 홈 화면과 레이아웃 회원 등록 회원 목록 조회 상품 등록 상품 목록 상품 수정 변경 감지와 병합(merge) 상품 주문 주문 목록 검색, 취소 💡 Thymeleaf란 view template : JSP과 같은 템플릿 엔진의 일종 서버 사이
폼 객체를 사용해서 화면 계층과 서비스 계층을 명확하게 분리
list 메서드에서 model이라는 객체를 통해서 화면에 데이터를 전달
1. 상품 등록 2. 상품 목록 조회 3. 상품 수정
1. Order Controller 2. 상품 주문 폼 order/orderForm 주문 폼 이동 메인 화면에서 상품 주문을 선택하면 /order를 GET 방식으로 호출 OrderController의 createForm() 메서드 주문 화면에는 주문할 고객 정보와 상품 정보가 필요하므로 model 객체에 담아서 뷰에 넘겨줌 주문 실행 주문할 회원과 상...
1. 주문 목록 검색 및 주문 취소 기능 구현 1) 주문 목록 검색 구현 OrderSearch 주문 목록 검색의 조건을 필드로 담아놓음 회원 이름과 주문 상태로 검색을 할 수 있음 OrderService findAllByCriteria : 이전에 OrderRepository에 동적 쿼리에 대한 컨디션 조합을 predicate를 활용해서 만들었던 코...
영속성 컨텍스트가 더는 관리하지 않는 엔티티를 말함