Spring Projcect/[갠플] Online-mall 9

[9일차] 관리자 API - 상품 등록, 수정, 삭제

To do list 관리자 - 상품(등록, 수정, 삭제), 관리자 주문 확인 list() 회원 - 상품(조회), 주문 add, 주문 del, (주문 수정은 보류), 장바구니 (조회, 선택 삭제), 쿠폰 조회 Ex) 상품 등록 / 수정 등록과 수정은 get, post 매핑을 함께 사용한다. 변수 editMode로 add 페이지에서 등록 모드인지 수정 모드인지 구분한다. service @Override public boolean add(ProductInput parameter) { Product product = Product.builder().productName(parameter.getProductName()) .productImg(parameter.getProductImg()).stockQuantity..

[8일차] Order 엔티티 매핑

1. 주문 ORDERS Orders - Member : 다대일 관계 데이터베이스의 키워드로 order가 있으니까 구분하기 위해 orders를 넣는다 order 테이블에 여러 개의 order가 모두 보여야한다. 컬렉션이라서 중간 테이블이 생성된다. @OneToMany private List orderList = new ArrayList(); @ManyToOne(cascade = CascadeType.ALL) // order, member 중에서 order를 연관관계의 주인으로 만들려면? private Member member; OrderDetail - Product : 일대다 관계 컬렉션이라서 중간 테이블이 생성된다. Datail 테이블에서는 상품 정보가 필요하지만 상품 테이블에서는 주문 상세 정보가 필요..

[7일차] 관리자 API - 상품 조회

1. Product 관리 - 등록, 수정, 삭제 ProductDto (상품 리스트 반환할 때 쓰인다.) 엔티티인 Product를 직접 사용해서 어떤 코드를 작성하면 참조형 데이터의 특성상 데이터베이스의 내용이 바로 변경될 우려가 있다. 그래서 Dto라는 클래스를 이용한다. @Builder @Data @NoArgsConstructor @AllArgsConstructor public class ProductDto { private Long id; // 상품 테이블의 PK // 상품 리스트를 반환할 때 필요한 정보 private String productName; private Integer price; // 상품 가격 private Boolean soldOutYn; // 품절 여부 private String..

[6일차] 관리자 로그인, 상품 등록

오류) 순환 참조 오류 & admin.main.do을 입력해도 자동으로 로그인 페이지(member.login)로 이동한다. The dependencies of some of the beans in the application context form a cycle: ┌─────┐ | securityConfiguration defined in file [C:\Users\Ran\Desktop\R\zerobase\remote_mall\build\classes\java\main\com\example\mall\configuration\SecurityConfiguration.class] ↑ ↓ | memberServiceImpl defined in file [C:\Users\Ran\Desktop\R\zerobase\..

[5일차] 연관 관계 매핑 - 장바구니, 쿠폰

1. 고객 - 장바구니 매핑하기 (일대일) Member @OneToOne @JoinColumn(name = "CART_ID") // 카트의 변수명과 달라도되나??? private Cart cart; Cart 엔티티 추가 @Entity @Builder @NoArgsConstructor @AllArgsConstructor @Data public class Cart { @Id @GeneratedValue() private Long id; private String name; @OneToOne(mappedBy = "cart") @JoinColumn private Member member; // mappedBy를 조인컬럼으로 바꾸면? mamberId 컬럼 생긴다. } MemberServiceImpl - 이메일 인..

[4일차] 오류 해결, 로그인 히스토리

확인 사항 JPA repository를 상속하는 MemberRepo에서 Member의 필드명과 다른 다르게 구성된 메서드가 있으면 멤버와 관련한 모든 클래스에 대해 "BeanCreatrion"가 발생한다. 똑같은 오류가 여러 번 발생했다.. 주의하기!. 오류 - 순환 참조 원인: Impl 클래스와 securityConfig 간에 순환하는 문제가 발생 The dependencies of some of the beans in the application context form a cycle: ┌─────┐ | securityConfiguration defined in file [C:\Users\Ran\Desktop\R\zerobase\remote_mall\build\classes\java\main\com\e..

[3주차] 회원 가입, 로그인

1. 회원 가입 주소 impl클래스에 Member.build()하면 데이터베이스에 내용이 추가된다. 컨트롤러에 "detail"이라는 이름으로 model을 넣어준다. html 작업 컨트롤러 POST에는 model이 필요하지 않을 수도 있다. @GetMapping("/member/register") public String register(){ return "member/register"; } @PostMapping("/member/register") public String submit(Model model , MemberInput parameter , Principal principal){ boolean result = memberService.register(parameter); // 이미 계정이 있는..

[2주차] DB 연결 & 회원가입 구현

1. 프로젝트와 DB 연결 로컬로 연결 MySQL 워크벤치 이용 워크벤치에서 먼저 데이터베이스 "malldb"를 생성한다. 인텔리제이의 데이터 소스 및 드라이버에 들어간다. 아래 창의 데이터베이스에 워크벤치에서 생성한 DB의 이름을 넣어서 연결해준다. 워크벤치에서 이용한 아이디, 비밀번호를 입력해서 연결한다. Note) 실행 결과 - 워크벤치에서 테스트 용도로 만든 테이블이 인텔리제이에서도 조회된다. application.yml 데이터베이스 연결 위한 정보를 표시한다. 아래와 같이 꼭 들여쓰기 한다. spring: datasource: url : jdbc:mariadb://127.0.0.1:3306/malldb driver-class-name: org.mariadb.jdbc.Driver username:..

[1주차] 프로젝트 주제와 생성 과정

0. 프로젝트 주제 프로젝트 주제: 온라인 쇼핑몰 구현 주제를 선택한 배경 자주 이용하는 온라인 쇼핑몰을 선택 https://www.musinsa.com/app/ 평소에 자주 이용하는 쇼핑몰의 구현 원리가 궁금했다. 자주 이용해온 사이트라서 어떤 서비스를 구현하면 좋을지 필수 기능에 무엇을 넣을지 생각하는 것도 흥미로웠 프로젝트 구현 계획은? 필수 기능: 회원 가입, 로그인, 상품 주문, 포인트, 쿠폰 서비스, 장바구니 부가 기능: 재고 관리 기능 인프런에서 들은 JPA 를 100% 활용해서 완성도 있는 프로젝트를 만들어야겠다. 1. 프로젝트 생성 spring.io 에서 프로젝트 생성 Java 11 선택 gradle dependency: lombok 등 기본 패키지를 만든다. entity, reposit..