본문 바로가기

Spring41

상품 등록 http://www.yes24.com/Product/Goods/103453774 스프링 부트 쇼핑몰 프로젝트 with JPA - YES24 스프링 부트와 JPA를 활용하여 실제 이커머스 업계에서 활용되는 쇼핑몰 기술들을 직접 구현해볼 수 있게 구성하였다. JPA와 Thymeleaf에 대한 간단한 예제로 기본 개념과 사용법을 익히고 그 후 쇼 www.yes24.com 책 기준으로 작성하는 것을 알립니다 상품 등록 정보를 가지고 있는 상품(Item) 엔티티 클래스를 다루었고, 상품 이미지를 저장하는 상품 이미지 엔티티를 만들 겁니다. 상품 이미지 엔티티는 이미지 파일명, 원본 이미지 파일명, 이미지 조회 경로, 대표 이미지 여부를 갖도록 설계하겠습니다. 대표 이미지 여부가 "Y"인 경우 메인 페이지에서 상품.. 2023. 3. 6.
Auditing을 이용한 엔티티 공통 속성 공통화 실제 서비스를 운영할 때는 보통 등로시간과 수정시간,등록자,수정자 를 테이블에 넣어 놓고 활용을 합니다. 그리고 데이터가 생성되거나 수정될 때 시간을 기록해주고, 어떤 사용자가 등록을 했는지 아이디를 남깁니다. 이 컬럼들은 버그가 있거나 문의가 들어왔을 때 활용이 가능합니다. 데이터를 대용량으로 데이터를 업데이트했는데, 다시 업데이트를 해야 할 경우 변경딘 대상을 찾을 때 활용할 수도 있습니다. Spring Data Jpa에서는 Auditing 기능을 제공하여 엔티티가 저장 또는 수정될 때 자동으로 등록일,수정일,등록자,수정자를 입력해줍니다. Audit의 사전적 정의는 '감사하다' 입니다. 즉 , 엔티티의 생명성과 수정을 감시하고 있는 것입니다. 이런 공통 맴버 변수들을 추상클래스로 마들고, 해당 추상 .. 2023. 3. 6.
영속성 전이 영속성 전이 즉, 'cascade'의 사전적 정의는 '작은 폭포', '폭포처럼 흐르다'라는 뜻이 있습니다. 영속성 전이랑 엔티티의 상태를 변경할 때 헤당 엔티티와 연관된 엔티티의 상태 변화를 전파시키는 옵션입니다. 이때 부모는 One에 해당하고 자식은 Many에 해당합니다 예를 들어 Order 엔티티가 삭제되었을 때 해당 엔티티와 여관 되어 있는 OrderItem 엔티티가 함께 삭제되거나, Order 엔티티를 저장할 때 Order 엔티티에 담겨있던 OrderItem 엔티티를 한꺼번에 저장할 수 있습니다. 상태가 전파되는 모습을 폭포가 흐르는 모습으로 상상하면 떠올리기가 쉽습니다. CASCADE종류 설명 PERSIST 부모 엔티티가 영속화될 때 자식 엔티티도 영속화 MERGE 부모 엔티티가 병합될 때 자식.. 2023. 3. 6.
연관 관계 매핑 종류 엔티티 들은 대부분 다른 엔티티와 연관 관계를 맺고 잇습니다. JPA에서는 엔티티에 연관관계를 매핑해두고 필요할 때 해당 엔티티와 연관된 엔티티를 사요아여 좀 더 객체지향적으로 프로그래밍할 수 있도록 도와줍니다. 연관 관계 매핑의 기초를 알아보겠습니다. 예제 코드들은 쇼핑물 프로젝트 코드 입니다. http://www.yes24.com/Product/Goods/103453774 첫 번째로 기억해야 할 것은 연관 관계 매핑의 종류 입니다. 4가지의 매핑 관계가 있습니다. 일대일(1:1):@OneToOne 일대다(1:N) @OnetoMany 다대일(N:1)@ManyToOne 다대다(N:N)@ManyToMany 두번째로 중요한 것은 엔티티를 맵핑할 때는 방향성을 고려해야 합니다. 테이블에서 관계는 항상 양방향이.. 2023. 3. 5.