---
# System prepended metadata

title: 5/23 월

---

# 5/23 월

# README 

## 협업 관련

- Git 레포 파고 collaborator 추가해서 사용
    
- Git Branch 전략
    - team-31 <= dev
        - dev(PR 보내기용, 데모용)
            - feat/task-name/issue-num <- 브랜치파서 Dev 로 PR

- Git Commit Convention
    - feat : 기능
    - env : 환경설정
    - style : 코드에 영향을 주지 않는 변경 (오타, css 수정)
    - fix : 버그 수정
    - chore : 패키지관련 내용 수정(package.json)
    - rename : 폴더구조변경, 네이밍 수정
    - refactor : 같은 기능을 하는 코드의 개선
    - docs : README 수정
    
- Git Issue Template
    - 스토리-테스크 나누고 생각
    - Milestone

- Git PR Template

```
issue #{num}
{필요시 할말}

-- 이부분은 확인 후 지워주세요 --
제목 컨벤션 -> `[<who>] short-description`
본문에 이슈번호 태그 -> ex) issue #37
```

### 그라운드 룰

- 웬만하면 문서로 이야기 될 수 있게 
    - 문서화 연습
    - `~ 로직이 이해가 안되는데 설명해주세요` 는 문서or댓글로 설명해보자
- 지각 금지!!
- 페어할 때에는 의도적으로 휴식 (1시간+-, 10분)


### BE
- 숙소정보
- msw Backend ?
    - API........


## 프로젝트 진행

- TypeScript
- MaterialUI + styled components

- CRA 말고 직접 환경설정 하기

- 상태관리
    - useReducer + Context API 활용
- eslint
    - airbnb
- prettier
    - tabWidth: 2
    
### 코딩컨벤션

- 컴포넌트 구조
    - 폴더/index.jsx
    - 폴더/하위컴포넌트
- 컴포넌트(생성자함수, 클래스) -> 대문자
    - Header
        - Search/
        - HeaderButton.jsx
        - index.jsx // Header.jsx


## 1주차 - 환경설정 마무리, 메인페이지 - 디자인뽑기 + 레이아웃배치

- 화: 환경설정 세팅
- 수: 5시 PR
- 목: ~?
- 금: 2시 PR

- 수요일
    - 디자인을 보고서 공통으로 쓰일 수 있는 컴포넌트 만들기

## 2주차
- 검색결과 페이지 - 디자인뽑기 + 레이아웃배치
- 모달
- msw 가 필요할 때 도입


### Story

- 로고, 메뉴 (숙소, 체험, 온라인체험) 마이페이지 기능을 하는 버튼이 GNB 상단에 위치한다.
    - 메뉴들은 hover 효과가 있다.

- GNB 아래에는 검색바가 위치한다.
    - 검색바에서 체크인/체크아웃 영역을 클릭하면 여행기간을 입력할 수 있는 **캘린더**가 모달창으로 뜬다.
    - 캘린더는 2개월간의 일정을 볼 수 있다
    - 화살표를 누르면 캘린더가 슬라이딩 된다.
    - 검색바가 활성화되면 Focus 상태로 변한다
    - 이미 지난 날짜 및 이미 예약된 날짜는 선택할 수 없다

### 캘린더 모달
- 날짜를 처음 클릭하면 체크인 필드에 해당 일자가 입력
- 다음 날짜를 클릭하면 체크아웃 필드에 해당 일자가 입력
    - 다음 날짜가 처음 클릭한 날짜보다 이전인 경우 체크인-날짜가 두 번째 클릭 날짜로 변경, 체크아웃은 입력되지 않음
    - 체크인 날짜보다 늦은 날짜를 클릭한 경우 체크아웃 날짜만 업데이트됨
    - 같은 날짜를 클릭하면 체크인, 체크아웃이 같은 날짜로 입력됨
    
- 체크인/체크아웃 박스의 X 를 누르면 체크인/체크아웃 필드의 입력값이 초기화됨
- 모달창(캘린더) 이외의 영역을 누르면 모달창이 닫힌다
    - 체크인/체크아웃을 눌렀을 시에는 리렌더링

### 요금 모달

- 검색바에서 요금 영역을 클릭하면 선택한 날짜를 기준으로 가격 범위를 표시한 모달창이 뜬다
- 레인지 슬라이더를 이용해 가격을 설정할 수 있다
    - 가격범위 텍스트가 실시간으로 변경된다.
    - 슬라이더는 양끝에 있고 가격정보에는 최저-최고 값으로 표시된다.
    - 슬라이더는 서로 지나쳐 이동할수 없고 서로 완벽히 겹칠수 없다

- 값이 입력되면 X 버튼이 활성화 되고, X 버튼을 누르면 슬라이더의 값이 초기화 된다.
- 모달창 이외의 영역을 누르면 모달창이 닫힌다.

### 인원 조정 모달
- 인원 영역을 클릭하면 게스트 인원을 입력할 수 있는 모달창이 뜬다.
    - 기본 및 최소값 : 0
    - 최대값 : 8
    - 더 감소하거나 증가할 수 없는 경우 버튼 비활성화
    - 성인이 0이고 어린이, 유아가 입력된 경우 성인의 인원수가 1로 변경된다.
- 검색바에서 '성인, 어린이'는 게스트로 표기되며 '유아'는 유아로 표기된다.
- 값이 입력되면 X 버튼이 활성화 되고, X 버튼을 누르면 슬라이더의 값이 초기화 된다.
- 모달창 이외의 영역을 누르면 모달창이 닫힌다.