prgrms-be-devcourse / be-02-woowa Goto Github PK
View Code? Open in Web Editor NEW배달의 민족 서비스 클론 코딩 프로젝트
배달의 민족 서비스 클론 코딩 프로젝트
카테고리와 배달가게, 광고와 배달가게의 다대다 연관관계 매핑을 위해 중간 테이블을 정의하고 모든 테이블에 공통으로
들어갈 field를 따로 빼내어 base entity로 정의합니다.
지역코드와 주문 엔티티와 연관을 가진 고객 주소, 고객 엔티티를 연결시키고 baseEntity를 적용시키는 작업을 진행합니다.
리뷰 관련 서비스와 관리자 계정 관리 서비스를 담당했습니다. 그리고 기존에 완성된 고객, 고객주소, 쿠폰 관련 속성에 대한 리팩토링 작업과 수정 작업도 진행했습니다.
라이더와 배달에 관한 기능들을 추가하고 컨트롤러단까지 구현할 수 있다.
보완할 점
배달가게-광고(RestaurantAdvertisement), 배달가게-카테고리(RestaurantCategory) 단방향에서 양방향 맵핑으로 수정하고 필드의 널값을 허용하지 않도록 수정한다.
배달과 관련된 테스트를 진행한다.
Description
광고(Advertisement) 도메인의 기능을 정의하여 서비스를 개발한다.
Progress
지역 별로 주문 가능한 음식점들을 조회하는 기능을 추가합니다.
광고(Advertisement), 카테고리(Category), 사장님(Owner), 가게(Restaurants) 도메인 컨트롤러까지 전체 개선 작업 진행하고
테스트 코드 작성 후 API 문서화를 진행한다.
라이더, 배달 관련 서비스 개발
메뉴 서비스 계층을 개발하고 테스트 코드를 작성한다.
각 지역별 행정구역 코드를 매핑할 Util 클래스를 설계하고 Address 객체를 통해 사용자 주소와 지역코드를 관리할 수 있도록 도메인을 구성한다.
description
dto 로직 검사를 위한 validation 의존성 추가입니다.
Voucher가 가지는 Customer 연관 관계를 제거했는데 Voucher에 mappedby로 연결을 해서 전체 프로젝트 다시 실행해보니까 에러가 나서 수정했습니다. 그리고 스펜서님한테 aws 계정 받아서 mysql 서버 하나 열어서 관련 datasource 설정을 application-db에 추가했습니다.
mapper 테스트 완성, rest doc html 문서로 정리했고 CI/CD 환경을 세팅했습니다.
ERD에 정의된 카테고리(Category), 광고(Advertisement), 오너(Owner), 어드민(Admin)에 관한 엔티티 및 관련 메소드를 개발한다.
음식점, 메뉴 관련 도메인 개발
오늘은 쿠폰 고객 관련 세부 구현이어서 했고 고객 주소 정보 접근이나 비밀번호 수정처럼 사용자 인증을 해야 되는 곳에서는 로그인 방식을 어떻게 구현할 지 의논해봐야 될 거 같습니다. 그리고 고객 관련 조회에서 사용되는 id는 데이터베이스에서 생성된 id를 사용할 지 로그인 아이디로 사용할지도 의논해보면 좋을 거 같습니다.
API 문서화를 완료합니다.
가게 엔티티 정적 팩토리 메서드에 누락된 코드를 추가합니다.
기존 쿠폰 엔티티에서 사용 여부와 쿠폰 갯수가 있는데 쿠폰 갯수 속성을 지우고 하나의 쿠폰 엔티티는 여러 개가 아닌 하나만 존재하도록 설계를 수정했습니다.
쿠폰 등급에서 특정 등급의 회원에게 발급하는 쿠폰이 2개 이상인 경우에는 같은 할인 효과를 가지지만 개별적인 코드를 가지는 쿠폰을 발급하는 방식으로 동작합니다.
API 문서 배포를 위한 index.html 파일 경로 수정
서비스 테스트를 mocking 방식으로 수정하고 rest doc 오타 부분에 대한 수정을 진행했습니다.
주문 도메인 개발 및 버그 수정
- 광고(Advertisement) 엔티티에 현재 해당 광고에 얼마나 많은 가게가 포함되어 있는지를 나타내는 currentSize와 최대 광고 가능한 가게 수를 나타내는 limitSIze 필드를 추가하고 관련 메소드를 정의한다.
- 가게(Restaurant) 도메인을 카테고리(Category), 광고(Advertisement), 사장님(Owner) 도메인과 연결하고 그에 따른 추가적인 메소드(엔티티에 연관 관계 편의 메소드 또는 서비스 메소드)를 정의한다.
- 카테고리(Category), 광고(Advertisement), 사장님(Owner), 가게(Restaurant) 컨트롤러를 개발한다.
- 개발한 컨트롤러에 대한 테스트코드를 작성한다.(Mocking)
- Rest docs를 이용해 api를 문서화한다.
컨트롤러 예외 처리 와 EnumFinable 추가.
주문, 메뉴, 메뉴그룹 RestDocs 문서화 및 테스트 코드 개선합니다.
유저, 리뷰, 등급, 바우처, 주소와 관련된 도메인 개발로 엔티티 설계와 관련 메소드를 개발함
패키지 구조를 domain - 폴더 에서 Aggregate - domain - 폴더로 변경.
service impl을 제거하고 클래스 단위로 바로 서비스 구현.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.