Code Monkey home page Code Monkey logo

be-02-woowa's People

Contributors

chlwlgns524 avatar choi1204 avatar haemin-jeong avatar y005 avatar

Stargazers

 avatar  avatar  avatar  avatar

be-02-woowa's Issues

다대다 연관관계 매핑을 위한 중간 테이블 및 Base entity 개발

Description

카테고리와 배달가게, 광고와 배달가게의 다대다 연관관계 매핑을 위해 중간 테이블을 정의하고 모든 테이블에 공통으로
들어갈 field를 따로 빼내어 base entity로 정의합니다.

Progress

  • 배달가게-광고 Entity 정의
  • 가게-카테고리 Entity 정의
  • BaseEntity, BaseLoginEntity를 정의

고객 주소 - 지역 코드 엔티티 연결, 고객 - 주문 엔티티 연결, baseEntity 적용

Description

지역코드와 주문 엔티티와 연관을 가진 고객 주소, 고객 엔티티를 연결시키고 baseEntity를 적용시키는 작업을 진행합니다.

Progress

  • 고객 주소 엔티티에 지역코드 엔티티 연결
  • 고객 주소 최근 주문 내역으로 정렬 상태 유지하기 - 고객 주소 속성에 최근 주문 일자 속성 추가됨
  • 고객 엔티티에 주문 엔티티 연결
  • 고객 리뷰 엔티티에 주문 엔티티 연결
  • baseEntity 적용 - 고객 주소, 고객 등급, 리뷰, 바우처
  • baseLoginEntity 적용 - 고객
  • assertJ 방식 적용
  • mapStruct 반영
  • validation 반영
  • dto 필드 final 적용
  • ReadMe 프로젝트 설명

레스토랑, 메뉴그룹, 메뉴 주문 서비스 개발

Description

  • 레스토랑, 메뉴그룹, 메뉴 서비스 계층을 개발하고 테스트합니다.
  • 메뉴 카테고리르 메뉴그룹으로 이름을 변경

Progress

  • 레스토랑 서비스 계층 개발
    • 레스토랑 단건 조회 기능
    • 레스토랑 삭제 기능
    • 레스토랑 정보(영업시간, 가게 설명, 전화번호, 영업 상태) 변경 기능
    • 테스트 코드 작성
  • 메뉴그룹에 선택적으로 설명을 추가하는 기능 추가
  • 메뉴그룹 서비스 계층 개발
    • 메뉴그룹 추가 기능
    • 메뉴그룹 삭제 기능
    • 메뉴그룹 업데이트 기능
    • 테스트 코드 작성
  • 메뉴 서비스 계층 개발
    • 메뉴 추가
    • 메뉴 삭제
    • 메뉴 업데이트
    • 대표 메뉴 설정/해제
    • 메뉴 상태(판매중, 품절, 숨김) 변경
    • 테스트 코드 작성
  • 메뉴 카테고리를 메뉴그룹으로 이름을 변경
  • 메뉴 상태를 표현하는 이넘 타입 SaleStatus를 MenuStatus로 이름을 변경
  • 실제 배달의 민족 서비스를 참고하여 메뉴 정보 변경 시에 메뉴그룹을 변경할 수 없도록 수정
  • 메뉴그룹 엔티티에 설명(description) 필드 추가
  • 주문 서비스 개발
    • 주문 생성 기능
    • 주문 취소 기능
    • 주문 수락 기능
    • 레스토랑, 회원 별로 주문을 조회하는 기능
    • 테스트 코드 작성

리뷰, 관리자 계정 관련 서비스 개발

Description

리뷰 관련 서비스와 관리자 계정 관리 서비스를 담당했습니다. 그리고 기존에 완성된 고객, 고객주소, 쿠폰 관련 속성에 대한 리팩토링 작업과 수정 작업도 진행했습니다.

Progress

  • 리뷰 관련 서비스 + 테스트 코드
  • 관리자 계정 관련 서비스 + 테스트 코드
  • 고객 속성 추가(전월 주문 횟수, 정기쿠폰 발행 여부)
  • 고객 메소드 추가(매월 주문 횟수 갱신, 주문 승인/취소 시 상태 변환 메소드)

배달 기능 추가 및 라이더 기능 추가.

Description

라이더와 배달에 관한 기능들을 추가하고 컨트롤러단까지 구현할 수 있다.

Progress

  • 서비스 구현
    • 라이더 서비스 추가
    • 배달 서비스 추가
  • 컨트롤러 구현
    • 라이더 컨트롤러 구현
    • 배달 컨트롤러 구현
    • AreaCode 컨트롤러 구현
  • 테스트 코드
    • 테스트 기본 생성을 위한 TestUtil 클래스 추가.
    • Mock을 통해 서비스 테스트 코드 작성
    • Controller 테스트를 통한 RestDocs 작성
      • snippets 제약조건 추가
      • validation 정보를 받기 위한 ConstraintDescriptions 사용.

보완할 점

  • 배달 요청 시 동시성 고려하여 변경.
  • ConstraintDescriptions 사용시 bean에 대한 valildation 영어로 나옴. 정규표현식의 경우 정규표현식 그대로 나와서 다른 방법 고려.

배달가게-광고(RestaurantAdvertisement), 배달가게-카테고리(RestaurantCategory) 양방향 맵핑으로 수정 -> 취소

Description

배달가게-광고(RestaurantAdvertisement), 배달가게-카테고리(RestaurantCategory) 단방향에서 양방향 맵핑으로 수정하고 필드의 널값을 허용하지 않도록 수정한다.

Progress

  • ManyToOne 어노테이션에 nullable = false 추가
  • 배달가게-광고 클래스에서 배달가게와 광고 각각에 대한 연관 관계 편의 메소드 작성
  • 배달가게-카테고리 클래스에서 배달가게와 카테고리 각각에 대한 연관 관계 편의 메소드 작성

배달관련 테스트 진행

Description

배달과 관련된 테스트를 진행한다.

Progress

  • 배달과 관련된 Service Test를 Mock을 이용하여 진행한다.
  • 배달과 관련된 Controller Test를 MockMvc와 WebMvcTest를 통해 진행한다.

광고(Advertisement) 서비스 개발 -> 취소

Description

광고(Advertisement) 도메인의 기능을 정의하여 서비스를 개발한다.

Progress

  • 광고(Advertisement) 객체의 주요 기능을 정의한다.
  • 정의된 기능에 따라 메소드를 만들고 서비스를 개발한다.
  • 테스트 코드를 작성한다.

레스토랑 조회 기능 개선

Description

지역 별로 주문 가능한 음식점들을 조회하는 기능을 추가합니다.

Progress

  • 지역 별로 주문 가능한 음식점 조회 기능 추가

광고, 카테고리, 사장님, 가게 컨트롤러까지 개선 작업

Description

광고(Advertisement), 카테고리(Category), 사장님(Owner), 가게(Restaurants) 도메인 컨트롤러까지 전체 개선 작업 진행하고
테스트 코드 작성 후 API 문서화를 진행한다.

Progress

  • 광고(Advertisement) 개선 작업
  • 카테고리(Category) 개선 작업
  • 사장님(Owner) 개선 작업
  • 가게(Restaurants) 개선 작업
  • 서비스 및 컨트롤러 테스트 작업(Mocking)
  • Rest Docs를 이용한 문서화

라이더 배달 서비스 개발

Description

라이더, 배달 관련 서비스 개발

Progress

  • 라이더 기능 추가
    • 지역코드를 통해 배달 리스트 조회 api 개발
    • 배달 수락 api 개발
    • 배달 상태 변경 api 개발
  • 배달 지역 기능 추가
    • 지역코드를 통해 식당 배달 지역 조회 api 개발
    • 레스토랑을 통해 식당 배달 지역 조회 api 개발

[삭제 예정]메뉴 서비스 계층 개발

Description

메뉴 서비스 계층을 개발하고 테스트 코드를 작성한다.

Progress

  • 메뉴 서비스 계층 개발
    • 메뉴 추가
    • 메뉴 삭제
    • 메뉴 업데이트
    • 대표 메뉴 설정/해제
    • 카테고리 별로 메뉴 조회
    • 메뉴 상태(판매중, 품절, 숨김) 변경
  • 테스트 코드 작성

Address 객체 설계 및 법정 행정구역 코드 매핑

Description

각 지역별 행정구역 코드를 매핑할 Util 클래스를 설계하고 Address 객체를 통해 사용자 주소와 지역코드를 관리할 수 있도록 도메인을 구성한다.

Progress

  • Address 클래스 설계
    • 행정구역 코드를 저장하는 AreaCode 설계
    • AreaCode와 유저의 추가정보를 담은 CustomerAddress 설계.
    • AreaCode와 가게의 배달료를 가지는 DeliveryArea 설계.
  • 행정구역 Util 클래스 설계

Entity 에러 수정, AWS RDS datasource 설정 추가

Description

Voucher가 가지는 Customer 연관 관계를 제거했는데 Voucher에 mappedby로 연결을 해서 전체 프로젝트 다시 실행해보니까 에러가 나서 수정했습니다. 그리고 스펜서님한테 aws 계정 받아서 mysql 서버 하나 열어서 관련 datasource 설정을 application-db에 추가했습니다.

Progress

  • voucher 연관관계 에러 긴급 수정
  • aws rds datasource 설정 파일 수정

리뷰 관련 테스트 마무리, rest doc 정리

Description

mapper 테스트 완성, rest doc html 문서로 정리했고 CI/CD 환경을 세팅했습니다.

Progress

  • CI/CD 환경 세팅
  • mapper 테스트 완성
  • rest doc html 문서 정리
  • mocking controller 테스트 작성
  • rest doc 컨벤션에 맞춰 작성하기

중간 테이블 양방향 연관 관계로 변경 및 카테고리(Category), 광고(Advertisement), 사장님(Owner) 서비스 개발

Description

  1. 중간 테이블을 모두 양방향 연관 관계로 변경 및 관련 메소드 수정
  2. 카테고리(Category) 도메인의 기능을 정의하여 서비스를 개발한다.
  3. 사장님(Owner) 도메인의 기능을 정의하여 서비스를 개발한다.
  4. 광고(Advertisement) 도메인의 기능을 정의하여 서비스를 개발한다.

Progress

  • RestaurantCategory, RestaurantAdvertisement 중간 테이블 수정
    • 연관 관계를 양방향으로 맵핑한다.
    • 연관 관계 편의 메소드를 작성한다.
    • 생성자를 연관 관계 편의 메소드를 이용하도록 수정한다.
  • 카테고리(Category), 사장님(Owner), 광고(Advertisement)
    • 카테고리(Category) 객체의 주요 기능을 정의한다.
    • 정의된 기능에 따라 메소드를 만들고 서비스를 개발한다.
    • 테스트 코드를 작성한다(Mocking X).

카테고리, 광고, 오너, 어드민 도메인 개발

Description

ERD에 정의된 카테고리(Category), 광고(Advertisement), 오너(Owner), 어드민(Admin)에 관한 엔티티 및 관련 메소드를 개발한다.

Progress

  • 카테고리(Category) Entity를 정의한다.
  • 광고(Advertisement) Entity를 정의한다.
  • 오너(Owner) Entity를 정의한다.
  • 어드민(Admin) Entity를 정의한다.

음식점, 메뉴 관련 도메인 개발

Description

음식점, 메뉴 관련 도메인 개발

Progress

  • 음식점 엔티티 개발
  • 메뉴 엔티티 개발
  • 메뉴 카테고리 엔티티 개발
  • 장바구니 엔티티 개발

쿠폰 생성 기능, 고객 관련 서비스, 컨트롤러

Description

오늘은 쿠폰 고객 관련 세부 구현이어서 했고 고객 주소 정보 접근이나 비밀번호 수정처럼 사용자 인증을 해야 되는 곳에서는 로그인 방식을 어떻게 구현할 지 의논해봐야 될 거 같습니다. 그리고 고객 관련 조회에서 사용되는 id는 데이터베이스에서 생성된 id를 사용할 지 로그인 아이디로 사용할지도 의논해보면 좋을 거 같습니다.

Progress

  • 고객, 쿠폰 관련 컨트롤러 인터페이스 정의
  • 고객 관련 서비스 개발 - 로그인 부분 구현 X
  • 고객 생성, 수정, 조회 관련 DTO 개발
  • 고객 등급 관련 생성, 수정, 조회 DTO 개발
  • 고객 주소 관련 생성, 수정, 조회 DTO 개발
  • 바우처 관련 생성, 수정, 조회 DTO 개발
  • DTO Bean Validation 추가
  • 고객 관련 서비스 + 테스트 코드 작성
  • 쿠폰 관련 서비스 + 테스트 코드 작성

가게 엔티티 생성 코드 수정

Description

가게 엔티티 정적 팩토리 메서드에 누락된 코드를 추가합니다.

Progress

  • 생성자를 private 으로 변경
  • 정적 팩토리 메서드 static 키워드 누락된 부분 수정

일부 API 문서 작성 및 배포

Description

  • 일부(가게, 카테고리, 사장님, 광고)를 제외한 API 문서 페이지 생성
  • Github Page를 사용하여 API 문서 배포

Progress

  • 일부(가게, 카테고리, 사장님, 광고)를 제외한 API 문서 페이지 생성

쿠폰 엔티티 관련 수정

Description

기존 쿠폰 엔티티에서 사용 여부와 쿠폰 갯수가 있는데 쿠폰 갯수 속성을 지우고 하나의 쿠폰 엔티티는 여러 개가 아닌 하나만 존재하도록 설계를 수정했습니다.

쿠폰 등급에서 특정 등급의 회원에게 발급하는 쿠폰이 2개 이상인 경우에는 같은 할인 효과를 가지지만 개별적인 코드를 가지는 쿠폰을 발급하는 방식으로 동작합니다.

Progress

  • 쿠폰 타입 상수 추가
  • 쿠폰 엔티티 내 쿠폰 갯수 속성 취소
  • 쿠폰 사용 메소드 수정 (상수 메소드로 유효성 검증 후 통과되는 경우 isUse 속성 true로)

API 문서 배포를 위한 디렉토리 구조 변경

Description

API 문서 배포를 위한 index.html 파일 경로 수정

Progress

  • API 문서 배포를 위한 index.html 파일 경로를 /docs로 수정
  • 이전 머지에서 반영하지 못한 restdocs 문서화 관련 pom 파일 변경 사항을 적용

서비스 테스트 mocking, rest doc 오타 수정

Description

서비스 테스트를 mocking 방식으로 수정하고 rest doc 오타 부분에 대한 수정을 진행했습니다.

Progress

  • 고객, 쿠폰 관련 rest doc 응답 오타 수정
  • 서비스 테스트 mocking 방식 적용 및 에러 수정

주문 도메인 개발 및 버그 수정

Description

주문 도메인 개발 및 버그 수정

Progress

  • 주문 도메인 개발
  • 정적 팩토리 메서드에 static 키워드가 누락되었던 버그 수정

배달관련 기본 도메인 개발.

개발 목표

  • 라이더 도메인 개발
    • 해당지역에서 배달요청시 같은 지역 라이더에게 배달 요청 기능 개발.
  • 딜러버리 도메인 개발
  • 식당과 관련된 배달지역 도메인 개발.

보완할 점

- AreaCode는 enum이 아닌 행정부에서 제공해주는 파일을 통하여 매핑 후 지역코드 추출하는 방식으로 변경할 예정.

광고(Advertisement) 엔티티 필드 추가, 가게(Restaurant) 도메인을 연관 도메인과 연결, 컨트롤러 개발

Description

  1. 광고(Advertisement) 엔티티에 현재 해당 광고에 얼마나 많은 가게가 포함되어 있는지를 나타내는 currentSize와 최대 광고 가능한 가게 수를 나타내는 limitSIze 필드를 추가하고 관련 메소드를 정의한다.
  2. 가게(Restaurant) 도메인을 카테고리(Category), 광고(Advertisement), 사장님(Owner) 도메인과 연결하고 그에 따른 추가적인 메소드(엔티티에 연관 관계 편의 메소드 또는 서비스 메소드)를 정의한다.
  3. 카테고리(Category), 광고(Advertisement), 사장님(Owner), 가게(Restaurant) 컨트롤러를 개발한다.
  4. 개발한 컨트롤러에 대한 테스트코드를 작성한다.(Mocking)
  5. Rest docs를 이용해 api를 문서화한다.

Progress

  • 광고(Advertisement) 엔티티에 currentSIze, limitSize 필드를 추가하고 관련 메소드를 정의
  • 가게(Restaurant)및 나머지 도메인 엔티티에 연관 관계 편의 메소드를 정의
  • 가게(Restaurant)및 나머지 도메인 서비스에 연관 관계 맵핑에 따른 관련 메소드를 정의
  • 연관 관계 맵핑 이전에 발생한 컴파일 에러 코드 수정
  • 카테고리(Category) 컨트롤러 개발
  • 광고(Advertisement) 컨트롤러 개발
  • 사장님(Owner) 컨트롤러 개발
  • 가게(Restaurant) 컨트롤러 개발

주문 서비스 조회 기능 개선, 메뉴 및 메뉴그룹 컨트롤러 개발

Description

  • 주문 서비스의 조회 기능을 개선
  • 메뉴 컨트롤러 개발 및 테스트 코드를 작성
  • 메뉴그룹 컨트롤러 개발 및 테스트 코드 작성

Progress

  • 레스토랑의 주문 조회 기능 개선
    • 정산 정보를 포함한 주문 단건 조회 기능 추가
    • 기간별 매출 정보(주문 횟수, 결제 금액) 조회 기능 추가
    • 기간별 조회 기능 추가
      • 페이징 처리(Slice 방식)
  • 회원 주문 조회 기능 개선
    • 주문 단건 조회 기능 추가
    • 기간별 조회 기능 추가
      • 페이징 처리(Slice 방식)
  • 메뉴 컨트롤러 개발 및 테스트 코드 작성
  • 메뉴그룹 컨트롤러 개발 및 테스트 코드 작성

주문, 메뉴, 메뉴그룹 RestDocs 문서화 및 테스트 코드 개선

Description

주문, 메뉴, 메뉴그룹 RestDocs 문서화 및 테스트 코드 개선합니다.

Progress

  • 주문 RestDocs 문서화
  • 메뉴 RestDocs 문서화
  • 주문 RestDocs 문서화
  • 요청 DTO의 Bean Validation 필드에 에러 메시지가 누락된 경우 추가
  • 자원이 존재하지 않는 경우 404 NotFound 응답을 하도록 변경

유저, 리뷰, 등급 바우처, 주소 관련 도메인 개발

Description

유저, 리뷰, 등급, 바우처, 주소와 관련된 도메인 개발로 엔티티 설계와 관련 메소드를 개발함

Progress

  • 유저 엔티티 설계 및 관련 메소드 정의
  • 리뷰 엔티티 설계 및 관련 메소드 정의
  • 바우처 엔티티 설계 및 관련 메소드 정의
  • 주소 엔티티 설계 및 관련 메소드 정의

패키지 구조 변경 및 service 구조 변경.

Description

패키지 구조를 domain - 폴더 에서 Aggregate - domain - 폴더로 변경.
service impl을 제거하고 클래스 단위로 바로 서비스 구현.

Progress

  • 패키지 구조를 애그리거트 단위로 변경.
  • service를 인터페이스 - 구현체에서 구현체로 변경

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.