# 5주차 공부 할 목록 ## 개발해야 할 기능 - [ ] 회원가입/로그인 구현 - [ ] 전체적인 DB 및 API 구상 - [ ] 월에 해당하는 화면으로 이동 - [ ] 내역/달력/통계 탭 구현 - [ ] 거래 내용 입력 - [ ] 수입/지출 필터링 - [ ] 거래 내역 리스트 수정, 삭제 - [ ] 통계 -> 카테고리별 지출 그래프화 - [ ] [선택] 달력화면 구현 + 수입/지출 필터링 - [ ] [선택] 결제 수단 관리 팝업 - [ ] [선택] 일별 지출 그래프화 --- ## 개발 순서 ### 1단계 - Node Express 구조 구상 - DB ERD 구상 - Web API 구상 ### 2단계 - Node express 프로젝트 만들기 - 서버 자동배포 - DB Table 만들기 및 DB 연결 ### 3단계 - JWT 인증 구현 - **Web API 구현** ### 4단계 - FE 구조 구상 - FE 레이아웃 구상 - 테스트 구조 구상 ### 5단계 - **FE 만들기** - 테스트 코드 작성 --- ## FE - **데이터 시각화** - SVG - https://seesparkbox.com/foundry/how_to_code_an_SVG_pie_chart - **Observer Pattern** - https://pjh3749.tistory.com/266 - **캐시** - **테스트** - **SPA Routing** - https://poiemaweb.com/js-spa - History - https://lucas.codesquad.kr/boostcamp-2020/course/%EC%8A%A4%ED%94%84%EB%A6%B0%ED%8A%B8-JS/6%EC%A3%BC%EC%B0%A8-%EA%B0%80%EA%B3%84%EB%B6%80%EC%84%9C%EB%B9%84%EC%8A%A4(2-2)/FE-%EB%9D%BC%EC%9A%B0%ED%8C%85 ## BE - Mysql - **ERD** - https://lucas.codesquad.kr/boostcamp-2020/course/%EC%8A%A4%ED%94%84%EB%A6%B0%ED%8A%B8-JS/5%EC%A3%BC%EC%B0%A8-%EA%B0%80%EA%B3%84%EB%B6%80%EC%84%9C%EB%B9%84%EC%8A%A4/BE---ERD - 조인, 정규화 ,인덱스 - https://lucas.codesquad.kr/boostcamp-2020/course/%EC%8A%A4%ED%94%84%EB%A6%B0%ED%8A%B8-JS/5%EC%A3%BC%EC%B0%A8-%EA%B0%80%EA%B3%84%EB%B6%80%EC%84%9C%EB%B9%84%EC%8A%A4/%EC%A1%B0%EC%9D%B8,-%EC%A0%95%EA%B7%9C%ED%99%94,-%EC%9D%B8%EB%8D%B1%EC%8A%A4 - **서버 자동배포** - https://github.com/boostcamp-2020/javascript-w3-todo/blob/J035/deploy.sh - 유저 인증 - Passport - https://www.opentutorials.org/course/3402/21864 - Oauth - **JWT** - https://youtu.be/7Q17ubqLfaM - 서버 구조 - https://velog.io/@hopsprings2/%EA%B2%AC%EA%B3%A0%ED%95%9C-node.js-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8-%EC%95%84%ED%82%A4%ED%85%8D%EC%B3%90-%EC%84%A4%EA%B3%84%ED%95%98%EA%B8%B0 - https://lucas.codesquad.kr/boostcamp-2020/course/%EC%8A%A4%ED%94%84%EB%A6%B0%ED%8A%B8-JS/5%EC%A3%BC%EC%B0%A8-%EA%B0%80%EA%B3%84%EB%B6%80%EC%84%9C%EB%B9%84%EC%8A%A4/BE-Express-%EB%AA%A8%EB%93%88-%EB%B6%84%EB%A6%AC%ED%95%98%EA%B8%B0 ## 프로젝트 - Git - **issue 등록시 담당자/milestone/작업의 크기 등 포함** - https://uang.tistory.com/12 - git tag 활용 - git commit 컨벤션 활용 ``` - feat: 새로운 기능을 추가할 경우 - fix: 버그를 고친 경우 - docs: 문서 수정한 경우 - style: 코드 포맷 변경, 세미 콜론 누락, 코드 수정이 없는 경우 - refactor: 프로덕션 코드 리팩터링 - test: 테스트 추가, 테스트 리팩터링 (프로덕션 코드 변경 없음) - chore: 빌드 테스크 업데이트, 패키지 매니저 설정할 경우 (프로덕션 코드 변경 없음) ``` ## 옵저버 패턴 개인 정리 - View = Observer = Handler - Model = Observerable = EventSource `Model.observers = [view1, view2, view3]` model.addEventlistener(e => { })