---
tags: project08
---
Week1 Day1
===
# code convention
- 폴더
- 다같이 상의 후 생성
- 케밥케이스
- 파일명
- 컴포넌트(파스칼케이스) 제외 카멜케이스 소문자
- 함수명
- 동사로 시작, 카멜케이스
# Github 사용 규칙
- branch 규칙
- fork된 repo에서는 비교적 자유롭게
- PR 날리는 branch는 중요
- remote origin
- master: 배포용
- dev: 개발
- feature: 필요시 생성
- hotfix: 에러 수정
- merge 기준
- PR -> 코드리뷰 -> 전원 approve -> merge
- zoom 에서 상황공유, 많은 commit -> 큰 단위의 코드리뷰가 필요없음(코어타임 이후에 일을 제외하고)
- 작은 comment 라도 남긴 후 approve
- 짝 프로그래밍 기준
- 도구
- live share, sandbox
- 오전 스크럼에 하루 작업량 및 세부 작업을 정함
- 로직적으로 까다로운 부분
- 협업 포인트가 많은 부분
- 공통 컴포넌트, model 작업
- Project
- issue 생성
- 최대한 작게 나누되
- 체크박스 형식의 세부사항으로 표기
- 프로젝트는 작업상황 공유형식으로 사용(엄격한 필요는 x)
- Milestone
- 주차별
- 월요일에 주에 할 일 정리
- commit 규칙
- ex. [feat] [#109] 컴포넌트 리팩토링
- 다다음줄 세부내용
- 말머리
- feat: 새로운 기능 추가
- refactor: 코드 리팩토링
- fix: 버그 수정
- test: 테스트 코드 작성
- docs: 문서
- chore: 환경설정 파일
- style: 코드 형식, 정렬, 린트 등의 변경
- PR 규칙
- PR 보내는 사람 이름 혹은 캠퍼번호(짝 프로그래밍에 대한) -> github 기능 assignees 표기
- FE, BE 표기-> label 사용
- 제목: 요약
- 내용
- 세부내용 나열
- commit에 자세한 내용 포함되게
# 미팅방법
- 오프라인 공간 활용(?)
- 추후논의
-------
# 프로젝트 권장사항 정리
- 타입스크립트 사용하기! 긍정적!!
- 단순 클론? 추가적인 기능? (https://mapstyle.withgoogle.com)
- CRA 사용
- mapbox sdk 어느 정도 사용?
- 주 사용자? 사용 목적?
- 블로그 스마트 에디터 내 커스텀 디자인
- 정리된 요구사항에 대한 대략적인 중요도?
- redux?!
# 기술 스펙 정리
- 언어: Typescript
- 프레임워크: 리액트
- 패키지: redux, module-alias, emotion js, prettier, tslint, (mapbox)
# 요구사항 정리
- Map 스타일 편집기
- density
- Roads
- Landmarks
- Labels
- theme
- import(by JSON)
- export(by JSON), API Key 발급?
- search
- 현재 위치
- 전체화면으로 확장
- 화면 드래그를 이용한 위치이동
- 지도 확대 축소 (+/- | 마우스휠)
- 지도 더블 클릭/스크롤시 지도 확대/축소
- More Options
- Element Type
- Geometry
- Labels
- Stylers
- Visibility
- Color
- Weight
- Saturation
- Lightness
- 변경이 된 항목에 가운데점으로 변경사항 표시
- undo 기능(스타일 적용 뒤로가기)
- reset 기능
- compare 기능
- 추가 기능(브레인스토밍)
- 반응형
# Week1 계획
## Day1
- mapbox sdk
- 데이터가 주어졌을때 활용하는 방법에 대한 큰 틀 공부해오기
- google styled map 스터디?
- 무엇이 들어있는지 유심히 살펴보기
- component 종류
- 속성옵션 종류
- 최적화 방식?
- Typescript
- react 와의 연동방식 + 아마 웹팩공부도 필요..?
- redux
## Day2
- 사용할 패키지 첫번째 안 확정
- 환경설정 후 첫 커밋
- 요구사항 구체화 하기 > feature list?
## Day3
- Day2 스크럼 후 결정
## Day4
- Day2 스크럼 후 결정
---
## 프로젝트 소개
- 신재경 네이버지도 총괄 멘토님
- 이현수 멘토님
- 임병철 멘토님
- 
- 리액트만 잘하자, React + Redux
- 프로젝트 완성도 보다 리액트를 제대로 알아가는 것 중요
- 코드리뷰 적극 요청
- 오픈소스 최대한 배제
- 같은 구조를 한 사람이 전담하는 것은 지양
- 페어 프로그래밍(2인1조, 3인1조) 권장
- 팀플레이, 협업
- 현재 N사에서도 개발 중인 프로젝트
- 기존 스타일 또는 특정 스타일 선택
- API 기반 편집?
- 구글 StyledMap 클론
- + Compare
- 기존 스타일 vs. 변경 스타일
- 화면 분리, 크기 조정
- + Export 기능도 중요
- History는 안해도 됨
- 싱글톤이냐 멀티 쓰레드냐 고민해볼 것
- 데이터: 별도로 제공 예정(네이버 지도와 연동)
- 외부 공개 시 데이터는 크롤링
- 현재 기능 보다 더 많은 기능 구현해야함
- Preview 기능에 따른 성능 문제도 고민
- MVP 기준 디자인, 리팩토링
- 본인이 가장 자신있어 하는 코드 100줄을 가져보자
- 주 사용자? 사용 목적?
- 블로그 스마트 에디터 내 커스텀 디자인