# 승리의 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|로그아웃 했을때| ### 메인