들어가기 앞서
강의 영상과 강의록
build.gradle 의존성 추가
•
JPA와 H2 의존성이 포함되어 있지 않으신 분들은 dependencies에 아래 내용을 추가 해주세요!
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
runtimeOnly 'com.h2database:h2'
Shell
복사
application.yml파일 내용
강의 실습 중 resources 디렉토리 내부에서
application.properties->application.yml 로 파일 형식을 수정하고,
파일 내용을 지운 후 아래 내용을 복사/붙여넣기 해주세요!
spring:
application:
name: shop
datasource:
url: jdbc:h2:mem:shop;MODE=MYSQL
h2:
console:
enabled: true
jpa:
show-sql: true
properties:
hibernate:
format_sql: true
dialect: org.hibernate.dialect.MySQL8Dialect
YAML
복사
H2 데이터베이스 콘솔에 입력한 SQL문
INSERT INTO members (member_login_id, member_pw, member_phone, member_address, member_point) VALUES ('GDG스프링장인', 'password456' , '010-9876-5432', '서울시 서초구 반포동 456', 50000)
SQL
복사
링크 모음
안녕하세요 4주차 멘토 이 건 입니다.
이번 주차에는 컨트롤러 계층, 서비스 계층, 레포지토리 계층에 이어
DB와 엔티티에 대한 내용을 다루었습니다.
그 동안 여러분들이 직접 구현해오신 코드가 동작하는 것을
API 테스트를 통해 확인하는 뿌듯한 주차가 되길 바랍니다.
강의, 과제에 대해 궁금하거나 막히는 부분이 있다면
디스코드 채널 #백엔드-정규-스터디 또는 디스코드 개인 DM(혼돈균)에 남겨주세요:)
p.s. 목이 아픕니다. 딕션도 조금 이상한 것 같고요. 하하. 수강생 분들 이번 주만 너그러이 이해해주시면 감사하겠습니다.
과제
목표
•
DB ERD 그리기
•
엔티티 구현
•
Postman을 통한 API 테스트
온라인 쇼핑몰 어드민 프로젝트 DB ERD & 엔티티 구현
1.
Member, Product, Order 엔티티 구현
2.
wil.md 작성
3.
wil.md에 3가지 유형의 이미지를 첨부
•
DB ERD 스크린샷 (ERD Cloud, 또는 그 외 툴을 사용하셔도 좋습니다.)
•
스프링 애플리케이션 실행 후 생성된 H2 테이블 스크린샷
•
Member 엔티티를 제외한 도메인 Product, Order CRUD API 중 택 1:
성공 케이스(1장) + 실패 케이스(1장) postman 테스트 결과 스크린샷 첨부
기능 모음(참고)
강의 내용 정리
4주차 강의 내용을 week4/wil.md에 정리해주세요.
제출해야 할 파일과 파일 경로
•
member 외에 다른 도메인 디렉토리 내에 dto 디렉토리를 추가해도 당연히 괜찮습니다:)
•
하단 경로는 필수 디렉토리 & 파일을 기입한 것입니다.
week4/
└── wil.md
└── db_erd.img
└── h2_table.img
└── api_succeed.img
└── api_failure.img
shop/
└── src/
└──── main/
└────── java/
└──────── com.example.shop
├── member (멤버)
│ ├── MemberController.java
│ ├── MemverService.java
│ ├── MemberRepository.java
│ ├── Member.java
│ └── dto
│ ├── MemberUpdateRequest.java
│ └── MemberCreateRequest.java
│
├── product (상품)
│ ├── ProductController.java
│ ├── ProductService.java
│ ├── ProductRepository.java
│ └── Product.java
│
├── order (주문 내역)
│ ├── OrderController.java
│ ├── OrderService.java
│ ├── OrderRepository.java
│ └── Order.java
│
└── config
└────── resources/
└──────── application.yml
.
.
.
YAML
복사
고민해볼 수 있는 부분
주문 (Order)과 상품 (Product)을 N:M (다대다) 관계로 바라볼 수 있습니다.
1.
주문 한 건에 여러 개의 상품 포함 가능
2.
상품 하나는 여러 건의 주문에 포함 가능
N : M 관계는 어떻게 표현했었는지 강의를 통해 확인 바랍니다:)
❗️ 물론 언급되지 않은 명세는 자유롭게 구현 가능하기 때문에
어드민 쇼핑몰 프로젝트에서 주문과 상품 도메인을 어떻게 설계하셨는지에 따라
N : M 관계로 바라볼 필요가 없을수도 있습니다.
마감 기한
11월 11일 (화) 23시 59분까지 제출해주세요!
제출 방법
자신의 레포지토리에 week4 폴더를 생성해 wil.md 파일을 제출합니다.
더 자세한 사항은 아래 링크를 참조해주세요.


