2022/09 35

[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..

[스쿨 선발대] 백엔드 스쿨 9월 수강 후기

개인 프로젝트 진행 후기 - Online mall 4개월 차부터 지금까지의 프로젝트(배당금, 날씨 일기, 회원 관리 시스템)는 대부분 강의 내용을 들으면서 진행했습니다. 그런데 이번 프로젝트는 수강생마다 각각 주제를 정하고 스스로 프로젝트를 완성해야하는 과제입니다. 저는 자주 이용하는 쇼핑몰을 주제로 정했습니다. 재고 관리, 주문, 결제, 챗봇 기능 등 백엔드와 프론트엔드단에 여러 가지 구현하고 싶은 기능과 아이디어가 많았습니다. 그런데, 정해진 시간 안에 하고 싶은 걸 모두 구현해내기에 벅찼습니다. 그래서 일단 회원 가입, 로그인, 쿠폰, 장바구니 연관 관계 매핑과 같은 기본적인 부분부터 구현하며 배운다는 생각으로 프로젝트 진행 중입니다. 얼마 전에 JPA 강의를 들었는데 Entity 매핑에 대한 내용..

[leetcode] SELECT

584. Find Customer Referee referee의 id가 2가 아닌 row만 반환한다. Customer table: +----+------+------------+ | id | name | referee_id | +----+------+------------+ | 1 | Will | null | | 2 | Jane | null | | 3 | Alex | 2 | | 4 | Bill | null | | 5 | Zack | 1 | | 6 | Mark | 2 | +----+------+------------+ Output: +------+ | name | +------+ | Will | | Jane | | Bill | | Zack | +------+ 출처 - https://leetcode.com/..

[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 - 이메일 인..

Chapter 02. 프로젝트 준비하기

2.1 브랜치 전략 2.2 코드 리뷰 효과적인 코드 리뷰 가능한 작은 단위인 PR(Pull Request)을 생성한다. 충분한 정보를 제공한다. 부드러운 토론 2.3 구현 목록 사용 기술 Java 11 gradle DataBase RDB: MySQL Docker 기반의 MySQL 생성 컨테이너 기반 프로젝트마다 다른 DB를 쓸 수 있다. Non-RDB: Redis 2.4 기반 작업 Docker 데이터베이스 만들고 연결하기 정상적으로 실행하면 cmd 창에 docker을 입력했을 때 아래와 같이 정보가 나온다. C:\Users\Ran>docker Usage: docker [OPTIONS] COMMAND A self-sufficient runtime for containers Options: --config ..

Chapter 01. 프로젝트 진행 전

1.1 주제 선정 무엇을 위해 만드는지 명심 타겟에 집중하고 타겟이 원하는 것을 만든다. Worst Case 백엔드가 할 일 없는 프로젝트 알맹이 없는 프로젝트 서류 검토자가 원하는 우선 순위 실제 서비스 런칭/ 운영 경험 기술적인 역량을 잘 보여줄 수 있는 프로젝트 번뜩이는 아이디어 팀 프로젝트의 기준 규모 1~2 개월 안에 집중해서 끝낼 수 있는 분량 개발 기간 또한 역량을 나타낼 수 있는 척도 중 하나이다. 설계, 구현, 문서 작성을 포함한 기간 최소 3주 권장: 4 ~ 6주 최대: 8주 팀 프로젝트 역할 분배 역할을 잘 나눌 수 있는 카테고리가 존재하는가 공유하는 분야와 각자 주인이 되는 것들이 공존하는 것이 가장 좋다. 1.2 MSA (Micro Service Architecture) 소개 Mo..

[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:..