Service
home
WOW Onboarding
home

[백엔드 정규 스터디 5주차 과제]

들어가기 앞서

강의 영상과 강의록

5주차 강의록.pdf
48.9 MiB
강의 공지 모아보기
안녕하세요, 5주차 멘토 박유정입니다🙇
지난 4주 동안 저희는 쇼핑몰 프로젝트를 직접 구현해오며
어떻게 코드를 구성하고 기능을 만들어가는지를 알아봤는데요,
이번 주차에서는 그 과정 속에서 자연스럽게 사용해왔던 Spring의 핵심 개념들을 다시 한번 정리하고,
객체지향적으로 더 좋은 코드를 작성하는 방법을 다뤄보았습니다.

5주차 핵심 키워드

아래 세 가지 키워드를 중심으로 강의 내용을 복습하고 정리해 보시는 것을 추천합니다.
SOLID 원칙 - 좋은 객체 지향 설계를 위한 5가지 원칙
IoC (Inversion of Control) - 객체의 생성 및 관리를 프레임워크가 담당하는 것
DI (Dependency Injection) - 의존하는 객체를 외부에서 주입받는 것
스프링을 제대로 이해하기 위해 정말 중요한 개념들이니, 강의 내용 이외에도 더 깊게 찾아보시면 좋을 것 같습니다.
강의나 과제에 대해 궁금하거나 막히는 부분이 있다면 언제든지 디스코드 #정규스터디-질문방으로 연락 주세요.

실습 코드

MemoryMemberRepository
참고용 깃허브

과제

목표

SOLID원칙을 적용하여 프로젝트 리팩토링 하기
강의 내용 요약 정리하기(wil.md)

📌 SOLID 원칙 적용해서 리팩토링 하기

강의에서 Member 도메인을 리팩토링하면서
인터페이스와 구현체로 분리하고,
각 계층이 인터페이스에만 의존하도록 구조를 개선한 뒤,
구현체는 스프링의 DI를 통해 외부에서 주입받는 형태로 바꿨습니다.
Product와 Order 도메인도 SOLID 원칙을 적용하여 더 유연하고 확장성이 뛰어난 코드로 리팩토링해 봅시다!

📌 강의 내용 정리

5주차 강의 내용을 week5/wil.md에 정리해주세요.

제출해야 할 파일과 파일 경로

아래 구조는 제가 작성한 예시로, 꼭 똑같이 하실 필요 없습니다.
여러분이 여태까지 구현해오신 코드를 기반으로 리팩토링 해주시면 됩니다.
week5/ └── wil.md shop/ └── src/ ├── main/ │ ├── java/ │ │ └── com.example.shop │ │ ├── bean │ │ │ └── MyBean.java │ │ │ │ │ ├── member │ │ │ ├── controller │ │ │ │ └── MemberController.java │ │ │ ├── service │ │ │ │ ├── MemberService.java │ │ │ │ └── MemberServiceImpl.java │ │ │ ├── repository │ │ │ │ ├── MemberRepository.java │ │ │ │ ├── JpaMemberRepository.java │ │ │ │ └── MemoryMemberRepository.java │ │ │ └── entity │ │ │ └── Member.java │ │ │ │ │ ├── product │ │ │ ├── controller │ │ │ │ └── ProductController.java │ │ │ ├── service │ │ │ │ ├── ProductService.java // 인터페이스 │ │ │ │ └── ProductServiceImpl.java // 구현체 │ │ │ ├── repository │ │ │ │ ├── ProductRepository.java // 인터페이스 │ │ │ │ └── JpaProductRepository.java // 구현체 │ │ │ └── entity │ │ │ └── Product.java │ │ │ │ │ └── order │ │ ├── controller │ │ │ └── OrderController.java │ │ ├── service │ │ │ ├── OrderService.java │ │ │ └── OrderServiceImpl.java │ │ ├── repository │ │ │ ├── OrderRepository.java │ │ │ └── JpaOrderRepository.java │ │ └── entity │ │ └── Order.java │ │ │ └── resources/ │ └── application.yml │ └── test/ └── java/ └── com.example.shop ├── ShopApplicationTests.java │ └── bean ├── BeanTest.java └── TestConfig.java
YAML
복사

마감 기한

와우스터디에서 확인해주세요.

제출 방법

📖