# 승리의 5주 프로젝트 1b
- (API, 컴포넌트 등)설계에 시간을 많이 투자하자
- iOS & web 같이 api 설계하자
## 오늘 할 것
### 깃헙 repository 만들기
### 그라운드 룰
- 스크럼 마스터가 한 주 동안 PM 역할 맡기
| Week 1|Week 2|Week 3|Week 4|Week 5|
| ---- | ----- | ---- | -----|-------|
| 홍동현 | 조수정 | 조정혜 | 임지영 | 김민지 |
- 동현 → 수정 → 정혜 → 지영 → 민지
- 전날 기록한 진행사항 hackMD 읽기 10:00 ~ 10:05
- 데일리 스크럼 10:05 ~ 10:20
- iOS <-> Web 요구사항은 hackMD에 기록하기
- 스파크플러스 배정 요일은 꼭 오프라인 참석
- 배정 요일 이외에는 Web/iOS 끼리 따로 조율
- 코어 타임 (10:00 ~ 19:00) 외의 일정
- 10:03 까지 오지 않으면 전화해서 깨우기
- 연락 가능 시간 10:00 ~ 21:00
- 그 이후 발생하는 이슈 및 추가 진행사항은 hackMD에 기록하기
- 해당 사항들은 다음 날 스크럼 때 공유하며 의견 나누고 조율
- 주말은 강제하지 않고 자율적으로 하는 대신 진행상황 문서로 공유하기
- 격주로 따로 멘토님들께 데모 시연
### 코딩컨벤션
#### WEB
- 변수명, 함수명 : 축약 x, CamelCase 사용
- 함수는 화살표 함수 표기법 사용
- 코딩 스타일: airbnb style guide
- 파일명
- 파일명은 대문자로 시작
- Camel Case로 작성
- 이벤트명명
- 주제 + 동작
- ex) adClick : 광고를 클릭한다.
- [구글 애널리틱스 이벤트 수집](https://support.google.com/analytics/answer/9234069?hl=ko) 참고
- [NHN 코딩컨벤션](https://nuli.navercorp.com/data/convention/NHN_Coding_Conventions_for_Markup_Languages.pdf)을 참고한다.
#### iOS
-
### Issue & 커밋 & PR 규칙
- Issue, PR은 템플릿 제작하여 따르기
- 커밋 메세지 템플릿 : `[부서] Type: 제목 #이슈번호`
- [FE / BE / iOS] Feat: 로그인 컴포넌트 구현 #1
- | 타입 | 설명 |
| ---- | -------|
| Feat | 새로운 기능 추가(CSS 포함) |
| Fix | 버그 수정 |
| Docs | 문서 수정 |
| Refactor | 코드 리팩토링 |
| Style | 코드 포맷팅 (코드 변경이 없는 경우)(줄바꿈, 오타) |
| Test | 테스트 코드 작성 (테스트 코드 추가, 수정, 삭제: 비즈니스 로직에 변경 없음) |
| Chore | 소스 코드를 건들지 않는 작업(빌드 업무 수정) |
- https://junwoo45.github.io/2020-02-06-commit_template/ 참고
- 커밋은 가능한 의미있는 최소 단위로 하기
- ex) Web: 함수 , iOS: 뷰
- PR `[부서] 제목 #이슈번호`
- [FE / BE / iOS] 로그인 기능 구현 #1
- 한 명 이상의 approve를 받아야 merge 가능.
- PR 하나에 이슈 하나(기능 단위)
### 브랜치 관리 규칙
master
dev_web
dev_ios
feat/기능이름-부서
ex) feat/login-FE
기능 이름이 너무 길면 언더스코어로 구분
### 바이브 분석 & 기획
- 화면 요소 분석(버튼, 스크롤 등..)
- 사용자 이벤트가 발생하는 컴포넌트 위주로 파악
- 화요일에 만나서 분석 후 문서화 -> 수요일 미팅
### 킥오프 미팅
바이브 시뮬레이터
바이브의 미니버전
ios, web 둘 다 있음
https://vibe.naver.com/today
어떤 화면이 있나 수집하기
화면의 요소들 (버튼, 스크롤,... )
이벤트 수집 ?
유저 이벤트 로그
어떤 버튼을 눌렀을 때 어떤 유저가 언제 눌렀고 그 버튼이 뭔지 서버에 전송
바이브 화면 요소를 분석해서 시뮬 버전을 만든다
수요일 미팅
숙제 -> 바이브 파악하기 .. ? -> 금요일 scope 확정
음악 재생만 되지 않는 바이브 클론 + 사용자가 누르는 컴포넌트 파악
눌리는 컴포넌트 파악
db설계 시 웹 컴포넌트 & iOS 컴포넌트 나눠서 구현
'데이터 분석을 위해 어떤 데이터가 필요한지'까지 설계해야 하나?
수요일까지 어떻게 ?
기술스택 정하기
어디까지 이벤트로 볼 것인가 ?
어떻게 데이터를 저장할 것인가 ? -> 구글 애널리틱스처럼? or 컴포넌트 정보+이벤트(클릭 등등..)
분석 후 문서화
---
### 어디까지 이벤트로 볼 것인가?
- 사용자의 행동
- [예시](https://support.google.com/analytics/answer/9267738?hl=ko&ref_topic=9756175)
- 어떤 화면에서 클릭됐는지
---
### 페이지
- 메인페이지 === 투데이
- 매거진
- 스토리
- 플레이리스트
- 믹스테잎
- 최근 들은 노래
- 내 취향 플레이리스트
- 이달의 노래
- 뉴스
- 앨범페이지
- 차트페이지
- DJ스테이션
- 결제/멤버십 구독 페이지
- 아티스트페이지
### 필수 수집정보
- 사용자
- 시간
- 컴포넌트 (id ?) :
- 이벤트가 발생된 페이지 정보
### common
|event| 트리거 |예상 수집정보(파라미터)|
|-----|------|------|
|page_view| 페이지 조회| 현재페이지,다음페이지|
|cancle|action을 취소할 때|취소된 action|
|close| something 닫기| close된 것|
|add_songs_to_playlist|곡(들)을 플레이리스트에 추가|곡id 목록|
|add_album_to_playlist|앨범을 플레이리스트에 추가|앨범id (목록?)|
|add_playlist_to_playlist|플레이리스트를 플레이리스트에 추가|플레이리스트id|
|remove_from_playlist|플레이리스트에서 삭제|곡 id 목록
|login|로그인 했을때|
|logout|로그아웃 했을때|
### 메인