🛠 백엔드/쇼핑몰 클론코딩7 [8] Cart 1. 장바구니 담기 상품 상세 페이지에서 장바구니에 담을 수량 선택 후 장바구니 담기 버튼 클릭 시, 상품이 장바구니에 담기는 기능 구현해보자 Index 장바구니에 담을 상품 정보를 전달할 DTO 생성 장바구니 상품을 생성하는 메소드 추가 장바구니 찾는 쿼리문 장바구니 상품을 찾는 쿼리문 서비스에서 상품을 장바구니에 넣는 로직 작성 장바구니 컨트롤러 매핑 장바구니 담는 테스트 코드 작성 JS에 장바구니 담기 버튼 기능 작성 ✨ 상품 상세 페이지에서 장바구니에 담을 상품 아이디 와 수량을 전달 받을 DTO 생성 -> CartItemDto @Getter @Setter public class CartItemDto { @NotNull(message = "상품 아이디는 필수 입력 값 입니다.") private L.. 2023. 1. 11. [2] JPA 2. JPA 1. JPA란? 자바를 사용할 때, SQL의 문제점 자바 객체를 SQL로 DB를 관리하고, DB를 다시 SQL을 통해 자바 객체로 반환하는 과정이 귀찮음. 객체와 RDBMS 간의 패러다임의 불일치 RDBMS와 객체지향 간의 중간에서 2개를 매핑하는 역할을 ORM이라고 한다. JPA는 이런 ORM의 표준 명세로 자바에서 제공하는 API이다. JPA는 인터페이스이고, 이를 구현한 구현체가 대표적으로 Hibernate 등이 있다. [ JPA 장점 ] 1. 특정 DB에 종속되지 않음 - 설정 파일에서 사용할 DB 변경 가능 2. 객체지향 프로그래밍 3. 생산성 향상 - DB에 새로운 칼럼 추가 시, DTO 클래스의 필드도 모두 변경해야 함. - JPA는 매핑 클래스에 필드만 추가하면 끝! ( DAO.. 2023. 1. 8. [7] Order 1. Order 기능 ✨ 주문 시, 재고 부족 익셉션 -> OutOfStockException public class OutOfStockException extends RuntimeException { public OutOfStockException(String message){ super(message); } } ✨ 주문시 상품 재고 감소시키는 로직 -> Item public void removeStock(int stockNumber){ int restStock = this.stockNumber - stockNumber; if(restStock OrderItem public static OrderItem createOrderItem(Item item, int count){ OrderItem orderI.. 2023. 1. 7. [6] Item 등록 및 조회 1. 상품 등록하기 ✨ Item의 Image를 저장하는 상품 이미지 엔티티를 만들어보자. Item과 Item_img는 일대다 관계이다. _ItemImg_ @Entity @Table(name = "item_img") @Getter @Setter public class ItemImg extends BaseEntity { @Id @Column(name = "item_img_id") @GeneratedValue(strategy = GenerationType.AUTO) private Long id; private String imgName; // 이미지 파일명 private String oriImgName; // 원본 이미지 파일명 private String imgUrl; // 이미지 조회 경로 private S.. 2023. 1. 4. [5] 연관매핑 연관매핑이란? Entity와 연관 관계를 매핑해두고, 해당 Entity와 관련된 Entity를 사용하는 것. 1.1 일대일 단방향 매핑 cart - member 회원 한명 당 하나의 카트를 가지게 설정하려고 함. 카트에 회원의 아이디를 저장하는 칼럼을 만든다. -> Cart @Entity @Table(name = "cart") @Getter @Setter @ToString public class Cart extends BaseEntity { @Id @Column(name = "cart_id") @GeneratedValue(strategy = GenerationType.AUTO) private Long id; @OneToOne(fetch = FetchType.LAZY) @JoinColumn(name="me.. 2022. 12. 30. [4] Spring Security 1. Spring Security 인증, 인가를 위해 사용 인가는 인증 과정 이후, 관리자 페이지에 일반 유저 접근하지 못하는 것 등이 포함 2. Security 설정 https://hhseong.tistory.com/173 @Configuration @EnableWebSecurity public class SecurityConfig extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSecurity http) throws Exception { } @Bean public PasswordEncoder passwordEncoder(){ return new BCryptPasswordEncoder(); } } WebSecur.. 2022. 12. 30. 이전 1 2 다음