Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[team-03][FE][쥬&도리] 2주차 두 번째 PR #208

Merged
merged 34 commits into from May 2, 2022

Conversation

jwu-ice
Copy link

@jwu-ice jwu-ice commented Apr 29, 2022

upstream PR 템플릿

안녕하세요. 이브! 저희는

👦  (@sju02048) 개발 수영 중🏊 쥬입니다.

👱‍♂️ 도리 (@kimyouknow) 도리입니다.

🥕 프로젝트 진행

🤔 dependency

useEffect의 Dependency객체를 넣었더니 의도한 대로 동작하지 않는 문제를 발견했습니다. (effect가 실행되지 않거나, effect가 무한으로 실행).

해결: useEffect의 dependency에 넣을 변수는 타입을 주의해서 써야한다는 사실을 알았습니다. (원시타입, 참조타입, 함수 등등)

‼️ hooks Dependency

🤔 useAxios(custom hooks) + 추가 카테고리 렌더링

axios 로직이 반복적으로 사용되고 있어 useAxios 라는 커스텀 훅을 만들어봤습니다.

문제점

  • hooks를 utils 함수처럼 생각했는데, useEffect와 useState 같은 hooks들도 내부에 숨겨져 있어서 로직을 한 눈에 보기 어려웠습니다.
  • axios를 호출하는 곳 api가 다르다보니까 response 데이터가 달라서 관리하는데 어려웠습니다.
  • axios를 호출하는 곳마다 데이터 관리 로직이 다른 점이 어려웠습니다. (어떤 컴포넌트는 respone 값을 그대로 렌더링하지만, 어떤 컴포넌트는 배열상태에 response 값을 추가해서 렌더링)

🤔 map렌더링

현재 Main컴포넌트에서 mealsArr라는 배열에 데이터가 들어 있고, 해당 데이터를 Array.prototype.map을 활용해 컴포넌트를 생성하고 있습니다. 이 때, mealsArr에 새로운 데이터를 추가되면 추가 컴포넌트를 렌더링할 때 기존 요소는 다시 렌더링하지 않고 새롭게 추가된 컴포넌트만 추가 렌더링하려고 했습니다.

const Main = () => {
	const [mealsArr, setMealsArr] = useState([]);
	const AddElementToArray = (newElement) => {
		setMealsArr(prev => [...prev, newElement]);
	}
	return (
		<ul>
			{mealsArr.map(element => <ChildComponent key={element.key} />)}
		</ul>
	)
}

mealArr에 새로운 요소가 추가되었을 때, 기존 요소까지 전부 새롭게 렌더링이 되었는데 setMealsArr()

를 실행할 때 ...prev를 사용해서 기존 값을 복사해서 일어나는 문제일까요? (React.memo로 ChildComponent를 감싸도 해결되지 않았습니다 ㅜㅜ)

아래와 같이 const로 변수를 선언했을 때는 mealsArr에 데이터는 추가되지만 추가한 데이터는 화면에 렌더링이 되지 않는 문제가 발생했습니다.

const Main = () => {
	const mealsArr = [];
	const AddElementToArray = (newElement) => {
			mealsArr.push(newElement);
	}
	return (
		<ul>
			{mealsArr.map(element => <ChildComponent key={element.key} />)}
		</ul>
	)
}

🤔 css in js

스타일 관련 코드를 리팩토링한다고 할 때 관리하는 주체가 누구일까요?

  1. styled-componment를 사용해서 css를 적용하고 있습니다! 이렇게 하면 프론트엔드에서 js로직(props, theme.js)를 쓰면서 관리하게 되는데, 프론트 엔드 개발하시는 분만 알아볼 수 있게 코드를 짜면 될까요? 디자이너나 퍼블리셔도 고려해서 코드를 짜야하는지 궁금합니다.
  2. css변수 관리 방법이 궁금합니다! 저희는 테마 색깔, 폰트 사이즈 등등 반복적으로 쓰는 변수들을 theme에서 관리했습니다. 그런데 특정 영역에서만 쓰는 margin이나 padding, px값이 생겼는데 줄여야 할까요? 아니면 rem같은 단위로 써야 좋을까요?
  3. themeProvider를 사용하다 theme 자체를 utils 처럼 import하면 어떨까 생각했는데, 기능적인 부분은 같다고 생각하지만 차이를 있을까요?
const SomeStyled = styled.div`
	margin: 8px;
	backgroundColor: ${(props) => props.theme.color.mainColor};
`

jwu-ice and others added 30 commits April 19, 2022 17:48
Chore: CRA 초기구성

Chore: eslint 구성

Chore: prettier 구성
* Feat: 프로젝트 초기 세팅

ref: #8

* [team-03][FE][쥬&도리] 1주차 첫 PR: 프로젝트 환경설정 및 설계 (#25)

* [공통] Issues, PR templates 와 프로젝트 소개 README.md 추가 (#2)

* Docs: 프로젝트 및 팀원 소개(readme.md)

* Chore: Issues, PR templates 추가

ref: #1

Co-authored-by: “Louie-03” <dhdustnr0134@naver.com>

* Docs: 팀원 수정

- 팀원 한 마디 추가

* Chore: 초기개발환경

Chore: CRA 초기구성

Chore: eslint 구성

Chore: prettier 구성

* Style: App.js -> jsx 수정

Co-authored-by: kukim <57086195+ku-kim@users.noreply.github.com>
Co-authored-by: “Louie-03” <dhdustnr0134@naver.com>

Co-authored-by: Louie <dhdustnr0134@naver.com>
Co-authored-by: HYUNJUN SON <55608425+guswns1659@users.noreply.github.com>
Co-authored-by: Jwu <sju02048@naver.com>
Co-authored-by: kukim <57086195+ku-kim@users.noreply.github.com>
* Chore: vscode debugger .gitingore에추가

* Chore: axios 라이브러리 추가

* Feat: MealContainer

- MealHeader
- Carousel -> MealCard여러개

* Refactor: useMemo 삭제

* Chore: TODO 주석 작성

- 컴포넌트 분리
- stlye 코드 분리
- status 코드
* Chore: Prettier useTabs true로 수정

* Chore: axios 라이브러리 추가

* Feat: BestMealContainer 기본 레이아웃

Co-authored-by: YUNHO <kimyouknow@naver.com>
* Refactor: App.jsx에서 BestMealContainer import수정

* Refactor: MealContainer에서 Loader와 MealCard 분리

* Chore: components 폴더 관리
* Refactor: mockServerURL .env파일에서 관리

- constant폴더에서 관리

* Feat: setDefaultImage()함수 추가

- 인자로 image url을 받아서 false면 default이미지로 반환

* Chore: 폴더경로 상대경로에서 절대경로로 변경

- jsconfig.json파일 설정
commit a773a14
Merge: 2bc424b 1276077
Author: HYUNJUN SON <55608425+guswns1659@users.noreply.github.com>
Date:   Sun Apr 24 22:54:48 2022 +0900

    Merge pull request #59 from Louie-03/dev-BE

    [Team-03][BE][루이&쿠킴] - 특정 음식 타입 조회 기능

commit 2bc424b
Author: Jwu <sju02048@naver.com>
Date:   Sun Apr 24 17:06:36 2022 +0900

    [team-03][FE][쥬&도리] 1주차 두 번째 PR: 컴포넌트 단위 설계 (codesquad-members-2022#66)

    * Chore: 초기개발환경

    Chore: CRA 초기구성

    Chore: eslint 구성

    Chore: prettier 구성

    * Style: App.js -> jsx 수정

    * [FE] team-03브랜치에서 dev-FE로 최신화 (#14)

    * Feat: 프로젝트 초기 세팅

    ref: #8

    * [team-03][FE][쥬&도리] 1주차 첫 PR: 프로젝트 환경설정 및 설계 (#25)

    * [공통] Issues, PR templates 와 프로젝트 소개 README.md 추가 (#2)

    * Docs: 프로젝트 및 팀원 소개(readme.md)

    * Chore: Issues, PR templates 추가

    ref: #1

    Co-authored-by: “Louie-03” <dhdustnr0134@naver.com>

    * Docs: 팀원 수정

    - 팀원 한 마디 추가

    * Chore: 초기개발환경

    Chore: CRA 초기구성

    Chore: eslint 구성

    Chore: prettier 구성

    * Style: App.js -> jsx 수정

    Co-authored-by: kukim <57086195+ku-kim@users.noreply.github.com>
    Co-authored-by: “Louie-03” <dhdustnr0134@naver.com>

    Co-authored-by: Louie <dhdustnr0134@naver.com>
    Co-authored-by: HYUNJUN SON <55608425+guswns1659@users.noreply.github.com>
    Co-authored-by: Jwu <sju02048@naver.com>
    Co-authored-by: kukim <57086195+ku-kim@users.noreply.github.com>

    * [FE] MealContainer 레이아웃 작성 (#16)

    * Chore: vscode debugger .gitingore에추가

    * Chore: axios 라이브러리 추가

    * Feat: MealContainer

    - MealHeader
    - Carousel -> MealCard여러개

    * Refactor: useMemo 삭제

    * Chore: TODO 주석 작성

    - 컴포넌트 분리
    - stlye 코드 분리
    - status 코드

    * [FE] BestMealContainer 레이아웃 작성 (#18)

    * Chore: Prettier useTabs true로 수정

    * Chore: axios 라이브러리 추가

    * Feat: BestMealContainer 기본 레이아웃

    Co-authored-by: YUNHO <kimyouknow@naver.com>

    * [FE] components단위로 파일 분리 (#20)

    * Refactor: App.jsx에서 BestMealContainer import수정

    * Refactor: MealContainer에서 Loader와 MealCard 분리

    * Chore: components 폴더 관리

    * [FE] 페어 리팩토링 (#21)

    * Refactor: mockServerURL .env파일에서 관리

    - constant폴더에서 관리

    * Feat: setDefaultImage()함수 추가

    - 인자로 image url을 받아서 false면 default이미지로 반환

    * Chore: 폴더경로 상대경로에서 절대경로로 변경

    - jsconfig.json파일 설정

    Co-authored-by: YUNHO <kimyouknow@naver.com>
    Co-authored-by: Louie <dhdustnr0134@naver.com>
    Co-authored-by: HYUNJUN SON <55608425+guswns1659@users.noreply.github.com>
    Co-authored-by: kukim <57086195+ku-kim@users.noreply.github.com>

commit 1276077
Merge: e8eca13 68b6e96
Author: Louie <dhdustnr0134@naver.com>
Date:   Fri Apr 22 11:03:53 2022 +0900

    Merge pull request #22 from Louie-03/BE-feature-GET_api_products_meal_type

    [BE] 특정 음식 타입 조회 기능

commit 68b6e96
Author: Louie <dhdustnr0134@naver.com>
Date:   Fri Apr 22 10:39:03 2022 +0900

    Fix: DiscountPolicy NPE 문제 해결

    - DiscountPolicy가 존재하지 않는 상품의 인수 테스트 추가

    Co-authored-by: “ku-kim” <kukim.dev@gmail.com>

commit 5335f2e
Author: Louie <dhdustnr0134@naver.com>
Date:   Fri Apr 22 10:37:09 2022 +0900

    Refactor: 계산 로직의 책임을 Product에서 DiscountPolicy로 위임

    - 기존 Product의 계산 로직을 DiscountPolicy의 calculateFixedPrice 메서드로 옮겼다.

    Co-authored-by: “ku-kim” <kukim.dev@gmail.com>

commit 1e27697
Author: “kukim” <kukim.dev@gmail.com>
Date:   Thu Apr 21 17:47:25 2022 +0900

    Feat: meal type으로 음식 조회가 되지 않는 경우 조회 실패 구현(404 NOT FOUND)

commit db93682
Author: “kukim” <kukim.dev@gmail.com>
Date:   Thu Apr 21 17:27:13 2022 +0900

    Fix: Product 객체 fixedPrice 계산 로직 수정

    - 기존 연산 괄호 실수 -> 올바르게 변경
    - 테스트 코드 추가

commit 3b74382
Author: Louie <dhdustnr0134@naver.com>
Date:   Thu Apr 21 16:53:35 2022 +0900

    Refactor: Entity와 Domain 객체 분리

    - Entity를 Domain 객체로 변경해주는 DomainEntityMapper 구현
    - 변경된 코드에 따른 테스트 코드 수정

    Co-authored-by: “ku-kim” <kukim.dev@gmail.com>

commit ca34b5a
Author: “kukim” <kukim.dev@gmail.com>
Date:   Thu Apr 21 15:17:09 2022 +0900

    Feat: 특정 Products의 meal type 조회 기능의 리포지토리 구현

    - 테스트 작성

    Co-authored-by: “Louie-03” <dhdustnr0134@naver.com>

commit 06cebb6
Author: “kukim” <kukim.dev@gmail.com>
Date:   Thu Apr 21 15:15:29 2022 +0900

    Feat: product, product_image, discount_policy 테이블 DDL과 더미데이터 생성, 테스트 환경 구분

    Co-authored-by: “Louie-03” <dhdustnr0134@naver.com>

commit feb2909
Author: “kukim” <kukim.dev@gmail.com>
Date:   Thu Apr 21 09:32:59 2022 +0900

    Refactor: Product <-> Response Dto 변환 위치를 컨트롤러에서 서비스로 변경

commit fc57090
Author: Jwu <sju02048@naver.com>
Date:   Wed Apr 20 21:07:11 2022 +0900

    [team-03][FE][쥬&도리] 1주차 첫 PR: 프로젝트 환경설정 및 설계 (#25)

    * [공통] Issues, PR templates 와 프로젝트 소개 README.md 추가 (#2)

    * Docs: 프로젝트 및 팀원 소개(readme.md)

    * Chore: Issues, PR templates 추가

    ref: #1

    Co-authored-by: “Louie-03” <dhdustnr0134@naver.com>

    * Docs: 팀원 수정

    - 팀원 한 마디 추가

    * Chore: 초기개발환경

    Chore: CRA 초기구성

    Chore: eslint 구성

    Chore: prettier 구성

    * Style: App.js -> jsx 수정

    Co-authored-by: kukim <57086195+ku-kim@users.noreply.github.com>
    Co-authored-by: “Louie-03” <dhdustnr0134@naver.com>

commit 4f385a1
Merge: a002511 e8eca13
Author: HYUNJUN SON <55608425+guswns1659@users.noreply.github.com>
Date:   Wed Apr 20 18:29:42 2022 +0900

    Merge pull request #20 from Louie-03/dev-BE

    [Team-03][BE] 쿠킴 & 루이 - 데이터베이스 설계, Mock API Server, 배포 아키텍처, 프로젝트 세팅

commit f4c13a4
Author: “kukim” <kukim.dev@gmail.com>
Date:   Wed Apr 20 17:32:01 2022 +0900

    Feat: 특정 Products의 meal type 조회 기능의 서비스 구현

    - 테스트 작성

commit 8e691b4
Author: “kukim” <kukim.dev@gmail.com>
Date:   Wed Apr 20 17:03:56 2022 +0900

    Feat: 특정 Products의 meal type 조회 기능의 컨트롤러 구현

    - API : GET /api/products?meal={value}
    - 컨트롤러 테스트 구현
    - 서비스 계층은 Mock 처리
    - Product 도메인 객체 생성
    - ProductsDtoMapper 객체 생성 : Product 도메인 <-> ProductsMealTypeResponse 변환

commit b9873d0
Author: “kukim” <kukim.dev@gmail.com>
Date:   Wed Apr 20 15:57:24 2022 +0900

    Test: 특정 Products의 meal type 조회 기능 테스트코드만 작성

    - 인수 테스트 작성

commit e8eca13
Author: Louie <dhdustnr0134@naver.com>
Date:   Wed Apr 20 14:24:31 2022 +0900

    Feat: 프로젝트 초기 세팅

    ref: #8

Co-Authored-By: YUNHO <kimyouknow@naver.com>
Co-Authored-By: Louie <dhdustnr0134@naver.com>
Co-Authored-By: kukim <57086195+ku-kim@users.noreply.github.com>
* Feat: 프로젝트 초기 세팅

ref: #8

* [team-03][FE][쥬&도리] 1주차 첫 PR: 프로젝트 환경설정 및 설계 (#25)

* [공통] Issues, PR templates 와 프로젝트 소개 README.md 추가 (#2)

* Docs: 프로젝트 및 팀원 소개(readme.md)

* Chore: Issues, PR templates 추가

ref: #1

Co-authored-by: “Louie-03” <dhdustnr0134@naver.com>

* Docs: 팀원 수정

- 팀원 한 마디 추가

* Chore: 초기개발환경

Chore: CRA 초기구성

Chore: eslint 구성

Chore: prettier 구성

* Style: App.js -> jsx 수정

Co-authored-by: kukim <57086195+ku-kim@users.noreply.github.com>
Co-authored-by: “Louie-03” <dhdustnr0134@naver.com>

* Chore: env 추가

* Style: SVG 아이콘 추가

* Feat: theme 추가

* Style: 폰트 추가

* Style: 파일 이름 변경

* Design: BestMeal 헤더&네비게이션

Co-authored-by: Louie <dhdustnr0134@naver.com>
Co-authored-by: HYUNJUN SON <55608425+guswns1659@users.noreply.github.com>
Co-authored-by: kukim <57086195+ku-kim@users.noreply.github.com>
- 두 번째 PR 반영
- 코드 스타일 리팩토링
ref: #26

Co-authored-by: YUNHO <kimyouknow@naver.com>
* Design: Meal Card

styles.js 분리

* Design: 카드에 hover시 택배서비스 표시

* Design: MealConatiner  헤더 및 레이아웃

* Design: 캐러셀 컨테이너

- svg추가

* Chore: Card컨테이너에서 hover할 때 보여지는 배송정보 코드 상 위치 변경

- 컴포넌트 하단으로 빼기

* Build: mock servser url 환경변수로 관리

.env파일에서 관리하던 url을 각 로컬에서 관리하기

* Refactor: mock sever 403에러 일때 constant에 있는 mock데이터 사용

* Design: theme 세부속성 분해할당해서 접근

이전: theme -> theme.color
이후: theme: {color} -> color

* Refactor: mealCard hover 속성 js변수에서 css로 제어

* Chore: 주석 정리
* Feat: 금액 toLocalString로 구분

* Feat: mock api -> mock data로 수정

- postman api 호출횟수 초과해서 로컬로 값 보내는 걸로 수정

* Design: Best 컴포넌트 추가

Co-authored-by: YUNHO <kimyouknow@naver.com>
* Design: App에서 Main 컴포넌트 분리

* Desgin: 캐러셀 디자인, getCarouselDesign()

- getCarouselDesign: 이미지 사이즈, 이미지 개수에 따라 동적으로 UI 결정
* Style: 오타 수정

* Design: 글로벌스타일 button poiner 추가

* Design: Header Component 추가

- 헤더에 hover 시 레이아웃 나타나는 디자인
- 글씨, 아이콘 hover 디자인
- 전체적인 헤더 UI 디자인
* Refactor: BestMeal Container mock데이터 분리 및 탭 변수 수정

    - MOCK_DATA_JS -> MOCK_BEST_MEAT: 변수명 변경 및 contant로 이동
    - BEST_SUBTITLE -> BEST_TAB_TYPE: 변수명 변경 및 api
    Params추가
    - Tabs컴포넌트 BestMeals컴포넌트처럼 양식 통일

* Refactor: BestMealCard를 MealCard컴포넌트와 통일

- MealCard를 받을 때 이미지 사이즈 넘겨받기

* Feat: BestMeal에서 findTargetTab()함수

선택한 탭의 id를 인자로 받고 apiParams를 반환함.

* Chore: Main위치 src/components -> src/pages

* Chore: 메인 레이아웃

헤더 mainWidth설정

* Chore: 함수 선언식 -> arrow function

* Design 캐러셀 양 옆 svg 스타일 수정

- border 없애기
- 크기 키움
Refactor: 호버창 컴포넌트 단위로 분리

Refactor: state값 이용하지 않고 hover로 수정

Design: 컴포넌트 간 간격 수정
* Chore: mock server에서 실제서버url로 변경

* Feat: Carousel  구현

* Feat: Carousel 재사용성 고려해서 children을 밖에서 선언
* Style: API 변수이름 수정

* Fix: price 오타 수정

* Delete: PR 충돌 오류로 삭제

* Style: 여백 오타 수정

* Feat: useAxios 추가

* Design: 더보기 버튼

* Feat: 카테고리 더보기

* Design: 버튼 가운데 정렬

* Feat: 카테고리 추가 렌더링

버그 고쳐야함

* Feat: 추가 데이터 버튼 감추기

Co-authored-by: yunho <kimyouknow@naver.com>
Co-authored-by: Jwu <sju02048@naver.com>
* Design: CSS 스타일 변경

* Refactor: 유틸함수 따로 관리

* Feat: 세부정보(detail) 페이지

* Refactor: useAxios response state 수정

* Design: OAuth 테스트용 추가
commit 274e734
Merge: 43ee842 3bc6667
Author: sju02048 <sju02048@naver.com>
Date:   Fri Apr 29 12:10:31 2022 +0900

    Merge branch 'team-03' of https://github.com/Louie-03/sidedish into team-03

commit 3bc6667
Author: Jwu <sju02048@naver.com>
Date:   Fri Apr 29 11:40:04 2022 +0900

    Revert "[FE] Deatil 페이지 및 OAuth 테스트용 뷰 추가 (#61)" (#62)

    This reverts commit 2baf578.

commit 2baf578
Author: Jwu <sju02048@naver.com>
Date:   Fri Apr 29 11:38:13 2022 +0900

    [FE] Deatil 페이지 및 OAuth 테스트용 뷰 추가 (#61)

    * Chore: 초기개발환경

    Chore: CRA 초기구성

    Chore: eslint 구성

    Chore: prettier 구성

    * Style: App.js -> jsx 수정

    * [FE] team-03브랜치에서 dev-FE로 최신화 (#14)

    * Feat: 프로젝트 초기 세팅

    ref: #8

    * [team-03][FE][쥬&도리] 1주차 첫 PR: 프로젝트 환경설정 및 설계 (#25)

    * [공통] Issues, PR templates 와 프로젝트 소개 README.md 추가 (#2)

    * Docs: 프로젝트 및 팀원 소개(readme.md)

    * Chore: Issues, PR templates 추가

    ref: #1

    Co-authored-by: “Louie-03” <dhdustnr0134@naver.com>

    * Docs: 팀원 수정

    - 팀원 한 마디 추가

    * Chore: 초기개발환경

    Chore: CRA 초기구성

    Chore: eslint 구성

    Chore: prettier 구성

    * Style: App.js -> jsx 수정

    Co-authored-by: kukim <57086195+ku-kim@users.noreply.github.com>
    Co-authored-by: “Louie-03” <dhdustnr0134@naver.com>

    Co-authored-by: Louie <dhdustnr0134@naver.com>
    Co-authored-by: HYUNJUN SON <55608425+guswns1659@users.noreply.github.com>
    Co-authored-by: Jwu <sju02048@naver.com>
    Co-authored-by: kukim <57086195+ku-kim@users.noreply.github.com>

    * [FE] MealContainer 레이아웃 작성 (#16)

    * Chore: vscode debugger .gitingore에추가

    * Chore: axios 라이브러리 추가

    * Feat: MealContainer

    - MealHeader
    - Carousel -> MealCard여러개

    * Refactor: useMemo 삭제

    * Chore: TODO 주석 작성

    - 컴포넌트 분리
    - stlye 코드 분리
    - status 코드

    * [FE] BestMealContainer 레이아웃 작성 (#18)

    * Chore: Prettier useTabs true로 수정

    * Chore: axios 라이브러리 추가

    * Feat: BestMealContainer 기본 레이아웃

    Co-authored-by: YUNHO <kimyouknow@naver.com>

    * [FE] components단위로 파일 분리 (#20)

    * Refactor: App.jsx에서 BestMealContainer import수정

    * Refactor: MealContainer에서 Loader와 MealCard 분리

    * Chore: components 폴더 관리

    * [FE] 페어 리팩토링 (#21)

    * Refactor: mockServerURL .env파일에서 관리

    - constant폴더에서 관리

    * Feat: setDefaultImage()함수 추가

    - 인자로 image url을 받아서 false면 default이미지로 반환

    * Chore: 폴더경로 상대경로에서 절대경로로 변경

    - jsconfig.json파일 설정

    * [FE] team-03브랜치에서 dev-FE로 최신화

    commit a773a14
    Merge: 2bc424b 1276077
    Author: HYUNJUN SON <55608425+guswns1659@users.noreply.github.com>
    Date:   Sun Apr 24 22:54:48 2022 +0900

        Merge pull request #59 from Louie-03/dev-BE

        [Team-03][BE][루이&쿠킴] - 특정 음식 타입 조회 기능

    commit 2bc424b
    Author: Jwu <sju02048@naver.com>
    Date:   Sun Apr 24 17:06:36 2022 +0900

        [team-03][FE][쥬&도리] 1주차 두 번째 PR: 컴포넌트 단위 설계 (codesquad-members-2022#66)

        * Chore: 초기개발환경

        Chore: CRA 초기구성

        Chore: eslint 구성

        Chore: prettier 구성

        * Style: App.js -> jsx 수정

        * [FE] team-03브랜치에서 dev-FE로 최신화 (#14)

        * Feat: 프로젝트 초기 세팅

        ref: #8

        * [team-03][FE][쥬&도리] 1주차 첫 PR: 프로젝트 환경설정 및 설계 (#25)

        * [공통] Issues, PR templates 와 프로젝트 소개 README.md 추가 (#2)

        * Docs: 프로젝트 및 팀원 소개(readme.md)

        * Chore: Issues, PR templates 추가

        ref: #1

        Co-authored-by: “Louie-03” <dhdustnr0134@naver.com>

        * Docs: 팀원 수정

        - 팀원 한 마디 추가

        * Chore: 초기개발환경

        Chore: CRA 초기구성

        Chore: eslint 구성

        Chore: prettier 구성

        * Style: App.js -> jsx 수정

        Co-authored-by: kukim <57086195+ku-kim@users.noreply.github.com>
        Co-authored-by: “Louie-03” <dhdustnr0134@naver.com>

        Co-authored-by: Louie <dhdustnr0134@naver.com>
        Co-authored-by: HYUNJUN SON <55608425+guswns1659@users.noreply.github.com>
        Co-authored-by: Jwu <sju02048@naver.com>
        Co-authored-by: kukim <57086195+ku-kim@users.noreply.github.com>

        * [FE] MealContainer 레이아웃 작성 (#16)

        * Chore: vscode debugger .gitingore에추가

        * Chore: axios 라이브러리 추가

        * Feat: MealContainer

        - MealHeader
        - Carousel -> MealCard여러개

        * Refactor: useMemo 삭제

        * Chore: TODO 주석 작성

        - 컴포넌트 분리
        - stlye 코드 분리
        - status 코드

        * [FE] BestMealContainer 레이아웃 작성 (#18)

        * Chore: Prettier useTabs true로 수정

        * Chore: axios 라이브러리 추가

        * Feat: BestMealContainer 기본 레이아웃

        Co-authored-by: YUNHO <kimyouknow@naver.com>

        * [FE] components단위로 파일 분리 (#20)

        * Refactor: App.jsx에서 BestMealContainer import수정

        * Refactor: MealContainer에서 Loader와 MealCard 분리

        * Chore: components 폴더 관리

        * [FE] 페어 리팩토링 (#21)

        * Refactor: mockServerURL .env파일에서 관리

        - constant폴더에서 관리

        * Feat: setDefaultImage()함수 추가

        - 인자로 image url을 받아서 false면 default이미지로 반환

        * Chore: 폴더경로 상대경로에서 절대경로로 변경

        - jsconfig.json파일 설정

        Co-authored-by: YUNHO <kimyouknow@naver.com>
        Co-authored-by: Louie <dhdustnr0134@naver.com>
        Co-authored-by: HYUNJUN SON <55608425+guswns1659@users.noreply.github.com>
        Co-authored-by: kukim <57086195+ku-kim@users.noreply.github.com>

    commit 1276077
    Merge: e8eca13 68b6e96
    Author: Louie <dhdustnr0134@naver.com>
    Date:   Fri Apr 22 11:03:53 2022 +0900

        Merge pull request #22 from Louie-03/BE-feature-GET_api_products_meal_type

        [BE] 특정 음식 타입 조회 기능

    commit 68b6e96
    Author: Louie <dhdustnr0134@naver.com>
    Date:   Fri Apr 22 10:39:03 2022 +0900

        Fix: DiscountPolicy NPE 문제 해결

        - DiscountPolicy가 존재하지 않는 상품의 인수 테스트 추가

        Co-authored-by: “ku-kim” <kukim.dev@gmail.com>

    commit 5335f2e
    Author: Louie <dhdustnr0134@naver.com>
    Date:   Fri Apr 22 10:37:09 2022 +0900

        Refactor: 계산 로직의 책임을 Product에서 DiscountPolicy로 위임

        - 기존 Product의 계산 로직을 DiscountPolicy의 calculateFixedPrice 메서드로 옮겼다.

        Co-authored-by: “ku-kim” <kukim.dev@gmail.com>

    commit 1e27697
    Author: “kukim” <kukim.dev@gmail.com>
    Date:   Thu Apr 21 17:47:25 2022 +0900

        Feat: meal type으로 음식 조회가 되지 않는 경우 조회 실패 구현(404 NOT FOUND)

    commit db93682
    Author: “kukim” <kukim.dev@gmail.com>
    Date:   Thu Apr 21 17:27:13 2022 +0900

        Fix: Product 객체 fixedPrice 계산 로직 수정

        - 기존 연산 괄호 실수 -> 올바르게 변경
        - 테스트 코드 추가

    commit 3b74382
    Author: Louie <dhdustnr0134@naver.com>
    Date:   Thu Apr 21 16:53:35 2022 +0900

        Refactor: Entity와 Domain 객체 분리

        - Entity를 Domain 객체로 변경해주는 DomainEntityMapper 구현
        - 변경된 코드에 따른 테스트 코드 수정

        Co-authored-by: “ku-kim” <kukim.dev@gmail.com>

    commit ca34b5a
    Author: “kukim” <kukim.dev@gmail.com>
    Date:   Thu Apr 21 15:17:09 2022 +0900

        Feat: 특정 Products의 meal type 조회 기능의 리포지토리 구현

        - 테스트 작성

        Co-authored-by: “Louie-03” <dhdustnr0134@naver.com>

    commit 06cebb6
    Author: “kukim” <kukim.dev@gmail.com>
    Date:   Thu Apr 21 15:15:29 2022 +0900

        Feat: product, product_image, discount_policy 테이블 DDL과 더미데이터 생성, 테스트 환경 구분

        Co-authored-by: “Louie-03” <dhdustnr0134@naver.com>

    commit feb2909
    Author: “kukim” <kukim.dev@gmail.com>
    Date:   Thu Apr 21 09:32:59 2022 +0900

        Refactor: Product <-> Response Dto 변환 위치를 컨트롤러에서 서비스로 변경

    commit fc57090
    Author: Jwu <sju02048@naver.com>
    Date:   Wed Apr 20 21:07:11 2022 +0900

        [team-03][FE][쥬&도리] 1주차 첫 PR: 프로젝트 환경설정 및 설계 (#25)

        * [공통] Issues, PR templates 와 프로젝트 소개 README.md 추가 (#2)

        * Docs: 프로젝트 및 팀원 소개(readme.md)

        * Chore: Issues, PR templates 추가

        ref: #1

        Co-authored-by: “Louie-03” <dhdustnr0134@naver.com>

        * Docs: 팀원 수정

        - 팀원 한 마디 추가

        * Chore: 초기개발환경

        Chore: CRA 초기구성

        Chore: eslint 구성

        Chore: prettier 구성

        * Style: App.js -> jsx 수정

        Co-authored-by: kukim <57086195+ku-kim@users.noreply.github.com>
        Co-authored-by: “Louie-03” <dhdustnr0134@naver.com>

    commit 4f385a1
    Merge: a002511 e8eca13
    Author: HYUNJUN SON <55608425+guswns1659@users.noreply.github.com>
    Date:   Wed Apr 20 18:29:42 2022 +0900

        Merge pull request #20 from Louie-03/dev-BE

        [Team-03][BE] 쿠킴 & 루이 - 데이터베이스 설계, Mock API Server, 배포 아키텍처, 프로젝트 세팅

    commit f4c13a4
    Author: “kukim” <kukim.dev@gmail.com>
    Date:   Wed Apr 20 17:32:01 2022 +0900

        Feat: 특정 Products의 meal type 조회 기능의 서비스 구현

        - 테스트 작성

    commit 8e691b4
    Author: “kukim” <kukim.dev@gmail.com>
    Date:   Wed Apr 20 17:03:56 2022 +0900

        Feat: 특정 Products의 meal type 조회 기능의 컨트롤러 구현

        - API : GET /api/products?meal={value}
        - 컨트롤러 테스트 구현
        - 서비스 계층은 Mock 처리
        - Product 도메인 객체 생성
        - ProductsDtoMapper 객체 생성 : Product 도메인 <-> ProductsMealTypeResponse 변환

    commit b9873d0
    Author: “kukim” <kukim.dev@gmail.com>
    Date:   Wed Apr 20 15:57:24 2022 +0900

        Test: 특정 Products의 meal type 조회 기능 테스트코드만 작성

        - 인수 테스트 작성

    commit e8eca13
    Author: Louie <dhdustnr0134@naver.com>
    Date:   Wed Apr 20 14:24:31 2022 +0900

        Feat: 프로젝트 초기 세팅

        ref: #8

    Co-Authored-By: YUNHO <kimyouknow@naver.com>
    Co-Authored-By: Louie <dhdustnr0134@naver.com>
    Co-Authored-By: kukim <57086195+ku-kim@users.noreply.github.com>

    * [FE] Styled Component Best Header 부분 (#25)

    * Feat: 프로젝트 초기 세팅

    ref: #8

    * [team-03][FE][쥬&도리] 1주차 첫 PR: 프로젝트 환경설정 및 설계 (#25)

    * [공통] Issues, PR templates 와 프로젝트 소개 README.md 추가 (#2)

    * Docs: 프로젝트 및 팀원 소개(readme.md)

    * Chore: Issues, PR templates 추가

    ref: #1

    Co-authored-by: “Louie-03” <dhdustnr0134@naver.com>

    * Docs: 팀원 수정

    - 팀원 한 마디 추가

    * Chore: 초기개발환경

    Chore: CRA 초기구성

    Chore: eslint 구성

    Chore: prettier 구성

    * Style: App.js -> jsx 수정

    Co-authored-by: kukim <57086195+ku-kim@users.noreply.github.com>
    Co-authored-by: “Louie-03” <dhdustnr0134@naver.com>

    * Chore: env 추가

    * Style: SVG 아이콘 추가

    * Feat: theme 추가

    * Style: 폰트 추가

    * Style: 파일 이름 변경

    * Design: BestMeal 헤더&네비게이션

    Co-authored-by: Louie <dhdustnr0134@naver.com>
    Co-authored-by: HYUNJUN SON <55608425+guswns1659@users.noreply.github.com>
    Co-authored-by: kukim <57086195+ku-kim@users.noreply.github.com>

    * [FE] PR 반영 및 styledCSS 수정 (#28)

    - 두 번째 PR 반영
    - 코드 스타일 리팩토링
    ref: #26

    Co-authored-by: YUNHO <kimyouknow@naver.com>

    * [FE] 일반 Meal 컴포넌트 UI 구현 (#39)

    * Design: Meal Card

    styles.js 분리

    * Design: 카드에 hover시 택배서비스 표시

    * Design: MealConatiner  헤더 및 레이아웃

    * Design: 캐러셀 컨테이너

    - svg추가

    * Chore: Card컨테이너에서 hover할 때 보여지는 배송정보 코드 상 위치 변경

    - 컴포넌트 하단으로 빼기

    * Build: mock servser url 환경변수로 관리

    .env파일에서 관리하던 url을 각 로컬에서 관리하기

    * Refactor: mock sever 403에러 일때 constant에 있는 mock데이터 사용

    * Design: theme 세부속성 분해할당해서 접근

    이전: theme -> theme.color
    이후: theme: {color} -> color

    * Refactor: mealCard hover 속성 js변수에서 css로 제어

    * Chore: 주석 정리

    * [FE] Best 컴포넌트 구현 (#40)

    * Feat: 금액 toLocalString로 구분

    * Feat: mock api -> mock data로 수정

    - postman api 호출횟수 초과해서 로컬로 값 보내는 걸로 수정

    * Design: Best 컴포넌트 추가

    Co-authored-by: YUNHO <kimyouknow@naver.com>

    * [FE]  캐러셀 디자인, getCarouselDesign() (#48)

    * Design: App에서 Main 컴포넌트 분리

    * Desgin: 캐러셀 디자인, getCarouselDesign()

    - getCarouselDesign: 이미지 사이즈, 이미지 개수에 따라 동적으로 UI 결정

    * [FE] GNB Design 구현 (#49)

    * Style: 오타 수정

    * Design: 글로벌스타일 button poiner 추가

    * Design: Header Component 추가

    - 헤더에 hover 시 레이아웃 나타나는 디자인
    - 글씨, 아이콘 hover 디자인
    - 전체적인 헤더 UI 디자인

    * [FE] BestMealCard 컴포넌트와 MealCard 컴포넌트 통합 (#50)

    * Refactor: BestMeal Container mock데이터 분리 및 탭 변수 수정

        - MOCK_DATA_JS -> MOCK_BEST_MEAT: 변수명 변경 및 contant로 이동
        - BEST_SUBTITLE -> BEST_TAB_TYPE: 변수명 변경 및 api
        Params추가
        - Tabs컴포넌트 BestMeals컴포넌트처럼 양식 통일

    * Refactor: BestMealCard를 MealCard컴포넌트와 통일

    - MealCard를 받을 때 이미지 사이즈 넘겨받기

    * Feat: BestMeal에서 findTargetTab()함수

    선택한 탭의 id를 인자로 받고 apiParams를 반환함.

    * Chore: Main위치 src/components -> src/pages

    * Chore: 메인 레이아웃

    헤더 mainWidth설정

    * Chore: 함수 선언식 -> arrow function

    * Design 캐러셀 양 옆 svg 스타일 수정

    - border 없애기
    - 크기 키움

    * Fix: Main 경로 오타 수정

    * Refactor: 호버창 컴포넌트 단위로 분리

    * Refactor: state값 이용하지 않고 hover로 수정

    * Design: 컴포넌트 간 간격 수정

    * [FE] 컴포넌트 리팩토링 (#51)

    Refactor: 호버창 컴포넌트 단위로 분리

    Refactor: state값 이용하지 않고 hover로 수정

    Design: 컴포넌트 간 간격 수정

    * Chore: 오타수정

    * Chore: 충돌해결하면서 지우지 못한 폴더 삭제

    - constant
    - util

    * Chore: reset.css 삭제

    * [FE} 캐러셀 컴포넌트 구현 (#58)

    * Chore: mock server에서 실제서버url로 변경

    * Feat: Carousel  구현

    * Feat: Carousel 재사용성 고려해서 children을 밖에서 선언

    * [FE] Custom Axios 작성 및 데이터 fetch 기능 (#59)

    * Style: API 변수이름 수정

    * Fix: price 오타 수정

    * Delete: PR 충돌 오류로 삭제

    * Style: 여백 오타 수정

    * Feat: useAxios 추가

    * Design: 더보기 버튼

    * Feat: 카테고리 더보기

    * Design: 버튼 가운데 정렬

    * Feat: 카테고리 추가 렌더링

    버그 고쳐야함

    * Feat: 추가 데이터 버튼 감추기

    Co-authored-by: yunho <kimyouknow@naver.com>
    Co-authored-by: Jwu <sju02048@naver.com>

    * Design: CSS 스타일 변경

    * Refactor: 유틸함수 따로 관리

    * Feat: 세부정보(detail) 페이지

    * Refactor: useAxios response state 수정

    * Design: OAuth 테스트용 추가

    Co-authored-by: YUNHO <kimyouknow@naver.com>
    Co-authored-by: Louie <dhdustnr0134@naver.com>
    Co-authored-by: HYUNJUN SON <55608425+guswns1659@users.noreply.github.com>
    Co-authored-by: kukim <57086195+ku-kim@users.noreply.github.com>

commit 43ee842
Author: Jwu <sju02048@naver.com>
Date:   Fri Apr 29 01:12:56 2022 +0900

    [team-03][FE][쥬&도리] 2주차 첫 번째: 컴포넌트 구현 (codesquad-members-2022#143)

    * Chore: 초기개발환경

    Chore: CRA 초기구성

    Chore: eslint 구성

    Chore: prettier 구성

    * Style: App.js -> jsx 수정

    * [FE] team-03브랜치에서 dev-FE로 최신화 (#14)

    * Feat: 프로젝트 초기 세팅

    ref: #8

    * [team-03][FE][쥬&도리] 1주차 첫 PR: 프로젝트 환경설정 및 설계 (#25)

    * [공통] Issues, PR templates 와 프로젝트 소개 README.md 추가 (#2)

    * Docs: 프로젝트 및 팀원 소개(readme.md)

    * Chore: Issues, PR templates 추가

    ref: #1

    Co-authored-by: “Louie-03” <dhdustnr0134@naver.com>

    * Docs: 팀원 수정

    - 팀원 한 마디 추가

    * Chore: 초기개발환경

    Chore: CRA 초기구성

    Chore: eslint 구성

    Chore: prettier 구성

    * Style: App.js -> jsx 수정

    Co-authored-by: kukim <57086195+ku-kim@users.noreply.github.com>
    Co-authored-by: “Louie-03” <dhdustnr0134@naver.com>

    Co-authored-by: Louie <dhdustnr0134@naver.com>
    Co-authored-by: HYUNJUN SON <55608425+guswns1659@users.noreply.github.com>
    Co-authored-by: Jwu <sju02048@naver.com>
    Co-authored-by: kukim <57086195+ku-kim@users.noreply.github.com>

    * [FE] MealContainer 레이아웃 작성 (#16)

    * Chore: vscode debugger .gitingore에추가

    * Chore: axios 라이브러리 추가

    * Feat: MealContainer

    - MealHeader
    - Carousel -> MealCard여러개

    * Refactor: useMemo 삭제

    * Chore: TODO 주석 작성

    - 컴포넌트 분리
    - stlye 코드 분리
    - status 코드

    * [FE] BestMealContainer 레이아웃 작성 (#18)

    * Chore: Prettier useTabs true로 수정

    * Chore: axios 라이브러리 추가

    * Feat: BestMealContainer 기본 레이아웃

    Co-authored-by: YUNHO <kimyouknow@naver.com>

    * [FE] components단위로 파일 분리 (#20)

    * Refactor: App.jsx에서 BestMealContainer import수정

    * Refactor: MealContainer에서 Loader와 MealCard 분리

    * Chore: components 폴더 관리

    * [FE] 페어 리팩토링 (#21)

    * Refactor: mockServerURL .env파일에서 관리

    - constant폴더에서 관리

    * Feat: setDefaultImage()함수 추가

    - 인자로 image url을 받아서 false면 default이미지로 반환

    * Chore: 폴더경로 상대경로에서 절대경로로 변경

    - jsconfig.json파일 설정

    * [FE] team-03브랜치에서 dev-FE로 최신화

    commit a773a14
    Merge: 2bc424b 1276077
    Author: HYUNJUN SON <55608425+guswns1659@users.noreply.github.com>
    Date:   Sun Apr 24 22:54:48 2022 +0900

        Merge pull request #59 from Louie-03/dev-BE

        [Team-03][BE][루이&쿠킴] - 특정 음식 타입 조회 기능

    commit 2bc424b
    Author: Jwu <sju02048@naver.com>
    Date:   Sun Apr 24 17:06:36 2022 +0900

        [team-03][FE][쥬&도리] 1주차 두 번째 PR: 컴포넌트 단위 설계 (codesquad-members-2022#66)

        * Chore: 초기개발환경

        Chore: CRA 초기구성

        Chore: eslint 구성

        Chore: prettier 구성

        * Style: App.js -> jsx 수정

        * [FE] team-03브랜치에서 dev-FE로 최신화 (#14)

        * Feat: 프로젝트 초기 세팅

        ref: #8

        * [team-03][FE][쥬&도리] 1주차 첫 PR: 프로젝트 환경설정 및 설계 (#25)

        * [공통] Issues, PR templates 와 프로젝트 소개 README.md 추가 (#2)

        * Docs: 프로젝트 및 팀원 소개(readme.md)

        * Chore: Issues, PR templates 추가

        ref: #1

        Co-authored-by: “Louie-03” <dhdustnr0134@naver.com>

        * Docs: 팀원 수정

        - 팀원 한 마디 추가

        * Chore: 초기개발환경

        Chore: CRA 초기구성

        Chore: eslint 구성

        Chore: prettier 구성

        * Style: App.js -> jsx 수정

        Co-authored-by: kukim <57086195+ku-kim@users.noreply.github.com>
        Co-authored-by: “Louie-03” <dhdustnr0134@naver.com>

        Co-authored-by: Louie <dhdustnr0134@naver.com>
        Co-authored-by: HYUNJUN SON <55608425+guswns1659@users.noreply.github.com>
        Co-authored-by: Jwu <sju02048@naver.com>
        Co-authored-by: kukim <57086195+ku-kim@users.noreply.github.com>

        * [FE] MealContainer 레이아웃 작성 (#16)

        * Chore: vscode debugger .gitingore에추가

        * Chore: axios 라이브러리 추가

        * Feat: MealContainer

        - MealHeader
        - Carousel -> MealCard여러개

        * Refactor: useMemo 삭제

        * Chore: TODO 주석 작성

        - 컴포넌트 분리
        - stlye 코드 분리
        - status 코드

        * [FE] BestMealContainer 레이아웃 작성 (#18)

        * Chore: Prettier useTabs true로 수정

        * Chore: axios 라이브러리 추가

        * Feat: BestMealContainer 기본 레이아웃

        Co-authored-by: YUNHO <kimyouknow@naver.com>

        * [FE] components단위로 파일 분리 (#20)

        * Refactor: App.jsx에서 BestMealContainer import수정

        * Refactor: MealContainer에서 Loader와 MealCard 분리

        * Chore: components 폴더 관리

        * [FE] 페어 리팩토링 (#21)

        * Refactor: mockServerURL .env파일에서 관리

        - constant폴더에서 관리

        * Feat: setDefaultImage()함수 추가

        - 인자로 image url을 받아서 false면 default이미지로 반환

        * Chore: 폴더경로 상대경로에서 절대경로로 변경

        - jsconfig.json파일 설정

        Co-authored-by: YUNHO <kimyouknow@naver.com>
        Co-authored-by: Louie <dhdustnr0134@naver.com>
        Co-authored-by: HYUNJUN SON <55608425+guswns1659@users.noreply.github.com>
        Co-authored-by: kukim <57086195+ku-kim@users.noreply.github.com>

    commit 1276077
    Merge: e8eca13 68b6e96
    Author: Louie <dhdustnr0134@naver.com>
    Date:   Fri Apr 22 11:03:53 2022 +0900

        Merge pull request #22 from Louie-03/BE-feature-GET_api_products_meal_type

        [BE] 특정 음식 타입 조회 기능

    commit 68b6e96
    Author: Louie <dhdustnr0134@naver.com>
    Date:   Fri Apr 22 10:39:03 2022 +0900

        Fix: DiscountPolicy NPE 문제 해결

        - DiscountPolicy가 존재하지 않는 상품의 인수 테스트 추가

        Co-authored-by: “ku-kim” <kukim.dev@gmail.com>

    commit 5335f2e
    Author: Louie <dhdustnr0134@naver.com>
    Date:   Fri Apr 22 10:37:09 2022 +0900

        Refactor: 계산 로직의 책임을 Product에서 DiscountPolicy로 위임

        - 기존 Product의 계산 로직을 DiscountPolicy의 calculateFixedPrice 메서드로 옮겼다.

        Co-authored-by: “ku-kim” <kukim.dev@gmail.com>

    commit 1e27697
    Author: “kukim” <kukim.dev@gmail.com>
    Date:   Thu Apr 21 17:47:25 2022 +0900

        Feat: meal type으로 음식 조회가 되지 않는 경우 조회 실패 구현(404 NOT FOUND)

    commit db93682
    Author: “kukim” <kukim.dev@gmail.com>
    Date:   Thu Apr 21 17:27:13 2022 +0900

        Fix: Product 객체 fixedPrice 계산 로직 수정

        - 기존 연산 괄호 실수 -> 올바르게 변경
        - 테스트 코드 추가

    commit 3b74382
    Author: Louie <dhdustnr0134@naver.com>
    Date:   Thu Apr 21 16:53:35 2022 +0900

        Refactor: Entity와 Domain 객체 분리

        - Entity를 Domain 객체로 변경해주는 DomainEntityMapper 구현
        - 변경된 코드에 따른 테스트 코드 수정

        Co-authored-by: “ku-kim” <kukim.dev@gmail.com>

    commit ca34b5a
    Author: “kukim” <kukim.dev@gmail.com>
    Date:   Thu Apr 21 15:17:09 2022 +0900

        Feat: 특정 Products의 meal type 조회 기능의 리포지토리 구현

        - 테스트 작성

        Co-authored-by: “Louie-03” <dhdustnr0134@naver.com>

    commit 06cebb6
    Author: “kukim” <kukim.dev@gmail.com>
    Date:   Thu Apr 21 15:15:29 2022 +0900

        Feat: product, product_image, discount_policy 테이블 DDL과 더미데이터 생성, 테스트 환경 구분

        Co-authored-by: “Louie-03” <dhdustnr0134@naver.com>

    commit feb2909
    Author: “kukim” <kukim.dev@gmail.com>
    Date:   Thu Apr 21 09:32:59 2022 +0900

        Refactor: Product <-> Response Dto 변환 위치를 컨트롤러에서 서비스로 변경

    commit fc57090
    Author: Jwu <sju02048@naver.com>
    Date:   Wed Apr 20 21:07:11 2022 +0900

        [team-03][FE][쥬&도리] 1주차 첫 PR: 프로젝트 환경설정 및 설계 (#25)

        * [공통] Issues, PR templates 와 프로젝트 소개 README.md 추가 (#2)

        * Docs: 프로젝트 및 팀원 소개(readme.md)

        * Chore: Issues, PR templates 추가

        ref: #1

        Co-authored-by: “Louie-03” <dhdustnr0134@naver.com>

        * Docs: 팀원 수정

        - 팀원 한 마디 추가

        * Chore: 초기개발환경

        Chore: CRA 초기구성

        Chore: eslint 구성

        Chore: prettier 구성

        * Style: App.js -> jsx 수정

        Co-authored-by: kukim <57086195+ku-kim@users.noreply.github.com>
        Co-authored-by: “Louie-03” <dhdustnr0134@naver.com>

    commit 4f385a1
    Merge: a002511 e8eca13
    Author: HYUNJUN SON <55608425+guswns1659@users.noreply.github.com>
    Date:   Wed Apr 20 18:29:42 2022 +0900

        Merge pull request #20 from Louie-03/dev-BE

        [Team-03][BE] 쿠킴 & 루이 - 데이터베이스 설계, Mock API Server, 배포 아키텍처, 프로젝트 세팅

    commit f4c13a4
    Author: “kukim” <kukim.dev@gmail.com>
    Date:   Wed Apr 20 17:32:01 2022 +0900

        Feat: 특정 Products의 meal type 조회 기능의 서비스 구현

        - 테스트 작성

    commit 8e691b4
    Author: “kukim” <kukim.dev@gmail.com>
    Date:   Wed Apr 20 17:03:56 2022 +0900

        Feat: 특정 Products의 meal type 조회 기능의 컨트롤러 구현

        - API : GET /api/products?meal={value}
        - 컨트롤러 테스트 구현
        - 서비스 계층은 Mock 처리
        - Product 도메인 객체 생성
        - ProductsDtoMapper 객체 생성 : Product 도메인 <-> ProductsMealTypeResponse 변환

    commit b9873d0
    Author: “kukim” <kukim.dev@gmail.com>
    Date:   Wed Apr 20 15:57:24 2022 +0900

        Test: 특정 Products의 meal type 조회 기능 테스트코드만 작성

        - 인수 테스트 작성

    commit e8eca13
    Author: Louie <dhdustnr0134@naver.com>
    Date:   Wed Apr 20 14:24:31 2022 +0900

        Feat: 프로젝트 초기 세팅

        ref: #8

    Co-Authored-By: YUNHO <kimyouknow@naver.com>
    Co-Authored-By: Louie <dhdustnr0134@naver.com>
    Co-Authored-By: kukim <57086195+ku-kim@users.noreply.github.com>

    * [FE] Styled Component Best Header 부분 (#25)

    * Feat: 프로젝트 초기 세팅

    ref: #8

    * [team-03][FE][쥬&도리] 1주차 첫 PR: 프로젝트 환경설정 및 설계 (#25)

    * [공통] Issues, PR templates 와 프로젝트 소개 README.md 추가 (#2)

    * Docs: 프로젝트 및 팀원 소개(readme.md)

    * Chore: Issues, PR templates 추가

    ref: #1

    Co-authored-by: “Louie-03” <dhdustnr0134@naver.com>

    * Docs: 팀원 수정

    - 팀원 한 마디 추가

    * Chore: 초기개발환경

    Chore: CRA 초기구성

    Chore: eslint 구성

    Chore: prettier 구성

    * Style: App.js -> jsx 수정

    Co-authored-by: kukim <57086195+ku-kim@users.noreply.github.com>
    Co-authored-by: “Louie-03” <dhdustnr0134@naver.com>

    * Chore: env 추가

    * Style: SVG 아이콘 추가

    * Feat: theme 추가

    * Style: 폰트 추가

    * Style: 파일 이름 변경

    * Design: BestMeal 헤더&네비게이션

    Co-authored-by: Louie <dhdustnr0134@naver.com>
    Co-authored-by: HYUNJUN SON <55608425+guswns1659@users.noreply.github.com>
    Co-authored-by: kukim <57086195+ku-kim@users.noreply.github.com>

    * [FE] PR 반영 및 styledCSS 수정 (#28)

    - 두 번째 PR 반영
    - 코드 스타일 리팩토링
    ref: #26

    Co-authored-by: YUNHO <kimyouknow@naver.com>

    * [FE] 일반 Meal 컴포넌트 UI 구현 (#39)

    * Design: Meal Card

    styles.js 분리

    * Design: 카드에 hover시 택배서비스 표시

    * Design: MealConatiner  헤더 및 레이아웃

    * Design: 캐러셀 컨테이너

    - svg추가

    * Chore: Card컨테이너에서 hover할 때 보여지는 배송정보 코드 상 위치 변경

    - 컴포넌트 하단으로 빼기

    * Build: mock servser url 환경변수로 관리

    .env파일에서 관리하던 url을 각 로컬에서 관리하기

    * Refactor: mock sever 403에러 일때 constant에 있는 mock데이터 사용

    * Design: theme 세부속성 분해할당해서 접근

    이전: theme -> theme.color
    이후: theme: {color} -> color

    * Refactor: mealCard hover 속성 js변수에서 css로 제어

    * Chore: 주석 정리

    * [FE] Best 컴포넌트 구현 (#40)

    * Feat: 금액 toLocalString로 구분

    * Feat: mock api -> mock data로 수정

    - postman api 호출횟수 초과해서 로컬로 값 보내는 걸로 수정

    * Design: Best 컴포넌트 추가

    Co-authored-by: YUNHO <kimyouknow@naver.com>

    * [FE]  캐러셀 디자인, getCarouselDesign() (#48)

    * Design: App에서 Main 컴포넌트 분리

    * Desgin: 캐러셀 디자인, getCarouselDesign()

    - getCarouselDesign: 이미지 사이즈, 이미지 개수에 따라 동적으로 UI 결정

    * [FE] GNB Design 구현 (#49)

    * Style: 오타 수정

    * Design: 글로벌스타일 button poiner 추가

    * Design: Header Component 추가

    - 헤더에 hover 시 레이아웃 나타나는 디자인
    - 글씨, 아이콘 hover 디자인
    - 전체적인 헤더 UI 디자인

    * [FE] BestMealCard 컴포넌트와 MealCard 컴포넌트 통합 (#50)

    * Refactor: BestMeal Container mock데이터 분리 및 탭 변수 수정

        - MOCK_DATA_JS -> MOCK_BEST_MEAT: 변수명 변경 및 contant로 이동
        - BEST_SUBTITLE -> BEST_TAB_TYPE: 변수명 변경 및 api
        Params추가
        - Tabs컴포넌트 BestMeals컴포넌트처럼 양식 통일

    * Refactor: BestMealCard를 MealCard컴포넌트와 통일

    - MealCard를 받을 때 이미지 사이즈 넘겨받기

    * Feat: BestMeal에서 findTargetTab()함수

    선택한 탭의 id를 인자로 받고 apiParams를 반환함.

    * Chore: Main위치 src/components -> src/pages

    * Chore: 메인 레이아웃

    헤더 mainWidth설정

    * Chore: 함수 선언식 -> arrow function

    * Design 캐러셀 양 옆 svg 스타일 수정

    - border 없애기
    - 크기 키움

    * Fix: Main 경로 오타 수정

    * Refactor: 호버창 컴포넌트 단위로 분리

    * Refactor: state값 이용하지 않고 hover로 수정

    * Design: 컴포넌트 간 간격 수정

    * [FE] 컴포넌트 리팩토링 (#51)

    Refactor: 호버창 컴포넌트 단위로 분리

    Refactor: state값 이용하지 않고 hover로 수정

    Design: 컴포넌트 간 간격 수정

    * Chore: 오타수정

    * Chore: 충돌해결하면서 지우지 못한 폴더 삭제

    - constant
    - util

    * Chore: reset.css 삭제

    * [FE} 캐러셀 컴포넌트 구현 (#58)

    * Chore: mock server에서 실제서버url로 변경

    * Feat: Carousel  구현

    * Feat: Carousel 재사용성 고려해서 children을 밖에서 선언

    * [FE] Custom Axios 작성 및 데이터 fetch 기능 (#59)

    * Style: API 변수이름 수정

    * Fix: price 오타 수정

    * Delete: PR 충돌 오류로 삭제

    * Style: 여백 오타 수정

    * Feat: useAxios 추가

    * Design: 더보기 버튼

    * Feat: 카테고리 더보기

    * Design: 버튼 가운데 정렬

    * Feat: 카테고리 추가 렌더링

    버그 고쳐야함

    * Feat: 추가 데이터 버튼 감추기

    Co-authored-by: yunho <kimyouknow@naver.com>
    Co-authored-by: Jwu <sju02048@naver.com>

    Co-authored-by: YUNHO <kimyouknow@naver.com>
    Co-authored-by: Louie <dhdustnr0134@naver.com>
    Co-authored-by: HYUNJUN SON <55608425+guswns1659@users.noreply.github.com>
    Co-authored-by: kukim <57086195+ku-kim@users.noreply.github.com>

commit e00348e
Merge: a773a14 97dd386
Author: kukim <57086195+ku-kim@users.noreply.github.com>
Date:   Thu Apr 28 14:20:36 2022 +0900

    Merge pull request codesquad-members-2022#135 from Louie-03/dev-BE

    [Team-03][BE][루이&쿠킴] - 로그인 제외한 모든 API 기능 구현, 배포

commit 97dd386
Author: “kukim” <kukim.dev@gmail.com>
Date:   Thu Apr 28 11:54:59 2022 +0900

    Chore: 운영 DB 더미데이터 추가

commit d84f4a6
Author: Louie <dhdustnr0134@naver.com>
Date:   Thu Apr 28 11:45:23 2022 +0900

    Feat: 주문 실패 시 현재 재고 수량을 반환해주도록 GlobalExceptionHandler 구현

    - 인수 테스트 작성

commit ecac1da
Author: “kukim” <kukim.dev@gmail.com>
Date:   Thu Apr 28 10:43:13 2022 +0900

    Refactor: PR 리뷰 피드백 적용(오타, 사용하지 않는 코드제거(Valid), Long -> long 타입 변환)

commit b3cb1eb
Merge: 05b9d52 dc7383d
Author: Louie <dhdustnr0134@naver.com>
Date:   Wed Apr 27 16:58:07 2022 +0900

    Merge pull request #55 from Louie-03/BE-feature-remove_id_field

    [BE] 도메인 객체의 불필요한 id 필드 제거

commit dc7383d
Author: seok <dhdustnr0134@naver.com>
Date:   Wed Apr 27 16:45:42 2022 +0900

    Refactor: 도메인 객체의 불필요한 id 필드 제거

commit 05b9d52
Merge: 947bdca c8826e0
Author: Louie <dhdustnr0134@naver.com>
Date:   Wed Apr 27 16:20:40 2022 +0900

    Merge pull request #53 from Louie-03/BE-feature-cors_bug_fix

    [BE] 도메인 설정으로 CORS 문제 해결

commit c8826e0
Author: seok <dhdustnr0134@naver.com>
Date:   Wed Apr 27 16:17:00 2022 +0900

    Fix: 도메인 설정으로 인한 CORS 문제 해결

commit 947bdca
Merge: 3375244 921e065
Author: kukim <57086195+ku-kim@users.noreply.github.com>
Date:   Tue Apr 26 16:20:37 2022 +0900

    Merge pull request #43 from Louie-03/BE-feature-POST_products_order

    [BE] 특정 상품 주문 기능 구현

commit 921e065
Author: seok <dhdustnr0134@naver.com>
Date:   Tue Apr 26 16:13:35 2022 +0900

    Fix: Spring Data Jdbc에서 save 메서드를 통해서 update 할 때 PK를 List의 index 값으로 입력되는 오류 수정

    update 쿼리를 직접 작성해서 사용하는 방식으로 해당 문제를 해결했습니다.

commit 3375244
Merge: b8753ad b67ecc9
Author: Louie <dhdustnr0134@naver.com>
Date:   Tue Apr 26 15:54:25 2022 +0900

    Merge pull request #41 from Louie-03/BE-feature-CORS

    [BE] CORS 기능 추가 (시스템 환경변수 활용)

commit b67ecc9
Author: “kukim” <kukim.dev@gmail.com>
Date:   Tue Apr 26 15:34:49 2022 +0900

    Feat: CORS 기능 추가 (시스템 환경변수 활용하여 LOCAL_IP, AWS_IP 추가)

    - 환경변수로 LOCAl_IP, AWS_IP 추가해야함

commit d5c67f6
Author: seok <dhdustnr0134@naver.com>
Date:   Tue Apr 26 15:03:27 2022 +0900

    Feat: 특정 상품 주문하기의 RequestBody 검증 구현

    - 만약 count가 음수라면 400(Bad Request) 상태코드를 반환한다.

commit b7fcfef
Author: seok <dhdustnr0134@naver.com>
Date:   Tue Apr 26 14:41:26 2022 +0900

    Feat: 특정 상품 주문하기 기능 구현

    - 서비스, 리파지토리 계층에 특정 상품 주문하기와 관련된 로직 구현
    - Response 전용 객체인 OrderSaveResponse 구현

commit 825fb39
Author: seok <dhdustnr0134@naver.com>
Date:   Tue Apr 26 14:32:37 2022 +0900

    Feat: 도메인 객체에 id 필드 추가

    - 특정 상품 주문 시 엔티티를 도메인 객체로 변경하는 과정에서 id가 사라지는 문제가 발생했습니다.
    - 해당 문제를 해결하기 위해 도메인 객체에 id 필드를 추가했습니다.

commit 95511a7
Author: seok <dhdustnr0134@naver.com>
Date:   Tue Apr 26 13:20:36 2022 +0900

    Style: ProductsDtoMapper의 클래스명, 메서드명 변경

    - ProductsDtoMapper 클래스의 이름을 DomainDtoMapper로 변경
    - DomainDtoMapper에서 두개의 도메인 객체를 참조하기 때문에 메서드명에 사용되었던 Domain이라는 단어를 실제 도메인 객체 이름으로 변경했습니다.

commit 5ff762d
Author: seok <dhdustnr0134@naver.com>
Date:   Tue Apr 26 13:15:43 2022 +0900

    Feat: OrderEntity 구현

commit 6543cb6
Author: seok <dhdustnr0134@naver.com>
Date:   Tue Apr 26 13:14:09 2022 +0900

    Feat: Product 클래스에 재고 수량 차감 로직 구현

    - 만약 주문 개수보다 재고 수량이 부족하다면 NotEnoughStockQuantityException이 발생한다.

commit 0fdbb79
Author: seok <dhdustnr0134@naver.com>
Date:   Tue Apr 26 13:11:18 2022 +0900

    Feat: Order 도메인 객체 구현

    - totalPrice를 계산하는 calculateTotalPrice() 구현
    - deliveryPrice를 계산하는 calculateDeliveryPrice() 구현

commit c20b925
Author: seok <dhdustnr0134@naver.com>
Date:   Tue Apr 26 13:06:34 2022 +0900

    Feat: orders 테이블 스키마 작성

commit b8753ad
Merge: a763171 9f62389
Author: kukim <57086195+ku-kim@users.noreply.github.com>
Date:   Tue Apr 26 12:52:20 2022 +0900

    Merge pull request #38 from Louie-03/BE-feature-GET_api_products_recommendation

    [BE] 배포/개발 환경 application 분리

commit 9f62389
Author: “kukim” <kukim.dev@gmail.com>
Date:   Tue Apr 26 12:47:29 2022 +0900

    Build: 배포/개발 환경 분리 application 프로파일 설정

    - 환경변수 설정

commit 401b9ad
Author: Louie <dhdustnr0134@naver.com>
Date:   Tue Apr 26 00:38:58 2022 +0900

    Feat: 특정 음식 주문하기 기능의 컨트롤러 구현

    - Product 테이블과 객체에 stock_quantity 필드 추가
    - stock_quantity 샘플 데이터 추가
    - 컨트롤러 테스트 구현

commit a763171
Merge: 52dd9da 1541eb2
Author: kukim <57086195+ku-kim@users.noreply.github.com>
Date:   Mon Apr 25 21:02:47 2022 +0900

    Merge pull request #36 from Louie-03/BE-feature-GET_products_best_category

    [BE] 특정 카테고리의 베스트 음식 조회 기능 구현

commit 1541eb2
Author: Louie <dhdustnr0134@naver.com>
Date:   Mon Apr 25 19:20:06 2022 +0900

    Feat: 특정 베스트 카테고리 음식 조회 기능 구현

    특정 베스트 카테고리 음식 조회 기능 인수테스트 작성
    특정 베스트 카테고리 음식 조회 기능 리파지토리 테스트 작성
    @repository 어노테이션 제거
    discountRate 자료형 float에서 long으로 변경
    validProducts 메서드 이름 validateProducts로 이름 변경

commit 9882c4a
Author: Louie <dhdustnr0134@naver.com>
Date:   Mon Apr 25 15:34:35 2022 +0900

    Feat: 특정 베스트 음식 카테고리 조회 기능의 컨트롤러 구현

    - API : GET /api/products/best?category={value}
    - 컨트롤러 테스트 구현
    - 서비스 계층은 Mock 처리

commit 52dd9da
Merge: 5810e2e fbb5a66
Author: Louie <dhdustnr0134@naver.com>
Date:   Mon Apr 25 15:19:24 2022 +0900

    Merge pull request #31 from Louie-03/BE-feature-GET_api_products_recommendation

    [BE] 추천 음식 조회 기능

commit fbb5a66
Author: “kukim” <kukim.dev@gmail.com>
Date:   Mon Apr 25 14:57:30 2022 +0900

    feat: 추천 음식 조회 기능

    - 현재 10개의 Product 랜덤하게 전달
    - 추후 로그인, 유저별 추천 가능성이 있다.

commit 5810e2e
Author: “kukim” <kukim.dev@gmail.com>
Date:   Mon Apr 25 13:06:37 2022 +0900

    Refactor: ProductMealTypeResponse -> ProductBasicTypeResponse 이름 변경

commit b11552c
Merge: a773a14 e750413
Author: kukim <57086195+ku-kim@users.noreply.github.com>
Date:   Mon Apr 25 12:30:56 2022 +0900

    Merge pull request #27 from Louie-03/BE-feature-GET_api_products_id

    [BE] 특정 id의 음식 조회 기능

commit e750413
Author: “kukim” <kukim.dev@gmail.com>
Date:   Mon Apr 25 12:22:32 2022 +0900

    feat: 특정 id의 음식 조회 기능 구현 (Controller, Service 계층)

    - 테스트 코드 작성

commit 5bda672
Author: “kukim” <kukim.dev@gmail.com>
Date:   Mon Apr 25 12:21:14 2022 +0900

    feat: Product 도메인 객체에 Delivery 객체 연결

commit d63a0f6
Author: “kukim” <kukim.dev@gmail.com>
Date:   Mon Apr 25 12:17:54 2022 +0900

    feat: DeliveryPolicy Repository 구현과 테스트

commit 1157fca
Author: “kukim” <kukim.dev@gmail.com>
Date:   Mon Apr 25 12:12:32 2022 +0900

    feat: DeliveryPolicy 테이블 설계와 Dummy 데이터 추가
@ku-kim ku-kim requested a review from eve712 April 29, 2022 08:05
@ku-kim ku-kim added the review-FE New feature or request label Apr 29, 2022
Comment on lines +48 to +56
.get(API_SERVER_URL + "/api/login")
.then(console.log)
.catch(console.log);
};
const requestLogout = () => {
axios
.get(API_SERVER_URL + "/api/logout")
.then(console.log)
.catch(console.log);
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/api/login 같은 URL관련 문자열들은 따로 모아놓으면 좋지 않을까 싶어요

@@ -12,7 +12,7 @@ export const Container = styled.header`
transition: height 0.3s;
border-bottom: 1px solid black;
margin-bottom: 30px;
z-index: 2;
z-index: 100;
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

이 부분은 수정요청은 아니고, 팁인데요🌱
z-index도 글로벌 스타일로 미리 정해두고 사용해도 좋아요. 예로 50, 100, 150, 200, 250~ 이렇게 정해두고, 이 z-index값은 어떤 컴포넌트들에 해당하는지를 생각을 미리 해두는 거에요. 그리고 해당 컴포넌트에서 변수로 가져다 쓸 수 있겠죠. z-index: 100 이렇게 사용하면 프로젝트가 커졌을 때 어디에 어떤 값들을 줬는지 파악하기 어려울 수 있을 것 같아서 말씀드려봤습니다:)

Comment on lines +19 to +26
const openHandler = () => {
setIsOpendModal(true);
};

const closeHandler = () => {
setIsOpendModal(false);
};

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

handler는 이벤트 핸들러를 의미하는데 open, close가 붙어서 어색한 부분이 있는 것 같아요. clickHandler나 openModal는 어떨까 싶어요.

z-index: 10;
width: 960px;
height: 992px;
border: 1px solid;
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

border color가 빠졌네요

Comment on lines +5 to +13
const ModalPortal = ({ children, closePortal }) => {
const [mounted, setMounted] = useState(false);
const ref = useRef(null);

useEffect(() => {
setMounted(true);
if (document) {
const parentDom = document.getElementById("root-modal");
ref.current = parentDom;
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

이건 제가 궁금해서 질문드리는건데요! mounted 상태와 useRef 사용 없이는 포탈 사용에 문제가 있으셨나요?

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

아 그리고 저는 Portal의 존재를 최근에 알고 사용했었는데 이걸 사용하신 게 멋져요..!!🤩

@eve712
Copy link

eve712 commented May 2, 2022

map렌더링 질문

const로 선언한 mealsArr는 상태가 아니라 변수이기 때문에 리렌더링이 되지 않아요. 서버가 연결이 안 돼서 서버로부터 받은 응답을 확인할 수 없는데 응답으로 받는 요소들의 id는 모두 다른가요?

스타일 컴포넌트 질문

  1. styled-componment를 사용해서 css를 적용하고 있습니다! 이렇게 하면 프론트엔드에서 js로직(props, theme.js)를 쓰면서 관리하게 되는데, 프론트 엔드 개발하시는 분만 알아볼 수 있게 코드를 짜면 될까요? 디자이너나 퍼블리셔도 고려해서 코드를 짜야하는지 궁금합니다.
    • 회사마다 다를 수 있는데 제 회사 기준으로만 말씀드릴게요. 디자이너분은 코드를 직접 보시지 않아요. 피그마로 UI, UX 관련한 것들을 만들어주시고, 웹퍼블리셔분이 계시지 않아서 프론트엔드 개발자가 전부 만듭니다. 그래서 프론트엔드 개발자가 관리합니다.
  2. css변수 관리 방법이 궁금합니다! 저희는 테마 색깔, 폰트 사이즈 등등 반복적으로 쓰는 변수들을 theme에서 관리했습니다. 그런데 특정 영역에서만 쓰는 margin이나 padding, px값이 생겼는데 줄여야 할까요? 아니면 rem같은 단위로 써야 좋을까요?
    • 특정 영역에서만 쓰이는 것들이 있을 수 있죠 모두 다 같을 수 없으니까요. 그런 부분은 꼭 줄일 필요는 없습니다. 제 팀에서는 margin, padding은 px 절대값으로 쓰고 있어요. 컴포넌트 내에서 반복된다면 해당 파일에 변수로 지정해주고 있습니다.(회사마다 팀마다 다를 수 있으니 참고만 해주세요ㅠ)
  3. themeProvider를 사용하다 theme 자체를 utils 처럼 import하면 어떨까 생각했는데, 기능적인 부분은 같다고 생각하지만 차이를 있을까요?

@eve712 eve712 merged commit 2cb4b49 into codesquad-members-2022:team-03 May 2, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
review-FE New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants