본문 바로가기

BackEnd304

[JPA] 웹 계층 개발(4) 공부 내용을 정리하고 앞으로의 학습에 이해를 돕기 위해 작성합니다. 이번 글에서는 상품 주문 기능을 구현하는 과정을 살펴본다. OrderController를 통해 상품을 주문하고, 주문 목록을 조회하며, 주문을 취소하는 기능까지 구현한다. 상품 주문메인 화면에서 "상품 주문" 버튼을 선택하면 /order 경로로 GET 요청이 발생한다. 이때 OrderController의 createForm() 메서드가 실행되어, 주문할 회원과 상품 목록을 조회하고 이를 model에 담아 뷰에 넘겨준다. 해당 뷰는 orderForm.html로, 주문할 회원과 상품을 선택하고 수량을 입력할 수 있는 폼을 제공한다. 주문할 회원과 상품, 수량을 선택한 후 "Submit" 버튼을 누르면, /order 경로로 POST 요청이 발.. 2024. 10. 5.
[JPA] 웹 계층 개발(3) 공부 내용을 정리하고 앞으로의 학습에 이해를 돕기 위해 작성합니다. 변경 감지와 병합(merge) 준영속 엔티티란?영속성 컨텍스트에서 더 이상 관리되지 않는 엔티티를 준영속 엔티티라고 한다. 예를 들어, 데이터베이스에 이미 저장되어 있는 Book 객체는 itemService.saveItem(book)을 통해 다시 수정하려 할 때 준영속 상태가 된다. 이는 식별자 값이 있는 엔티티로, 이미 한 번 영속 상태였지만 현재는 영속성 컨텍스트에서 관리되지 않는 상태를 의미한다.준영속 엔티티를 수정하는 두 가지 방법1. 변경 감지(Dirty Checking) 사용변경 감지는 영속성 컨텍스트에서 관리되는 엔티티에 대해 자동으로 값의 변화를 감지하여 데이터베이스에 반영하는 방식이다. 트랜잭션 내에서 엔티티를 다시 조회.. 2024. 10. 5.
[JPA] 웹 계층 개발(2) 공부 내용을 정리하고 앞으로의 학습에 이해를 돕기 위해 작성합니다. 이번 포스팅에서는 JPA를 활용한 웹 계층 개발 중 회원 목록 조회, 상품 등록, 상품 수정 기능을 다루어 본다. 각 기능별로 컨트롤러와 HTML 코드를 살펴보며, 주요한 부분들을 설명한다. 회원 목록 조회 memberController 수정회원 목록 조회는 MemberController에서 회원 목록을 가져와 이를 화면에 출력하는 과정이다. memberService를 통해 데이터베이스에서 회원 목록을 조회하고, 조회된 데이터를 모델에 담아 뷰로 전달한다. 뷰에서는 Thymeleaf를 사용해 테이블 형태로 회원 정보를 출력한다.@GetMapping("/members")public String list(Model model) { L.. 2024. 10. 5.
[JPA] 웹 계층 개발(1) 공부 내용을 정리하고 앞으로의 학습에 이해를 돕기 위해 작성합니다. 홈 화면과 레이아웃1. homecontrollerHomeController는 웹 애플리케이션의 홈 화면을 처리하는 컨트롤러이다. 사용자가 루트 경로인 /에 접근하면 홈 화면이 표시되며, 로그를 통해 접근을 기록한다.package jpabook.jpashop.controller;import lombok.extern.slf4j.Slf4j;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;@Controller@Slf4jpublic class HomeController { @RequestMap.. 2024. 10. 4.
[JPA] 주문 도메인 개발 공부 내용을 정리하고 앞으로의 학습에 이해를 돕기 위해 작성합니다. 주문 도메인은 JPA를 활용하여 상품 주문, 주문 내역 조회, 주문 취소 등의 기능을 구현하는 데 중요한 역할을 한다. 이번 글에서는 주문 엔티티와 주문상품 엔티티의 변경 사항과 추가된 기능에 대해 설명한다. 주문, 주문상품 엔티티orderpackage jpabook.jpashop.domain;import jakarta.persistence.*;import lombok.AccessLevel;import lombok.Getter;import lombok.NoArgsConstructor;import lombok.Setter;import java.time.LocalDateTime;import java.util.ArrayList;import j.. 2024. 10. 3.
[JPA] 상품 도메인 개발 공부 내용을 정리하고 앞으로의 학습에 이해를 돕기 위해 작성합니다. 상품 엔티티 개발(비즈니스 로직 추가) Item 수정Item 엔티티에 비즈니스 로직을 추가하여 재고 관리를 쉽게 할 수 있도록 구현한다.// 비즈니스 로직/** * stock 증가 */public void addStock(int quantity) { this.stockQuantity += quantity;}/** * stock 감소 */public void removeStock(int quantity) { int restStock = this.stockQuantity - quantity; if (restStock 상품 엔티티에 재고 관리를 위한 비즈니스 로직을 추가했다.addStock() 메서드는 전달된 수량만큼 재고를 .. 2024. 10. 3.