-
Notifications
You must be signed in to change notification settings - Fork 0
22.11.09 기술스택 결정 회의
타입설정을 통한 안정성 확보
웹 앱이라는 특성과 SEO의 필요성이 크게 느껴지지 않아 CSR을 선택.
운동 기록과 같은 기능은 서버와 통신이 적은 정적인 서비스이므로 CSR을 사용하는 것이 옳다.
더불어 유저가 스마트폰을 사용한 다는 것을 전제로 서비스를 제작하기에, 유저 디바이스 성능 차가 크지 않을 것이라고 예상한다.
CSR을 활용하며, 라이브러리로 대부분 익숙한 환경인 React를 사용.
- 예시: Redux, Recoil,(or Context API)
React를 만든 facebook에서 제작한 React 특화 라이브러리로, React와 호환성이 높음.
배우기 쉽다. React hook을 사용하는 것과 유사하기 때문.
아직은 좀 불안정함.
리덕스에 비해 래퍼런스가 적다.
devtool의 부재
Flux 패턴을 이해하기에 도움이 될 것 같음.
대부분 써본적이 없음.
새로 배우려면 Recoil이 더 빠를거 같음.
보일러 플레이트를 작성해야 함.
다들 전역상태 관리 경험이 많지 않다면 기존에 사용하던 hook과 비슷하고, 비동기 처리에 특화된, 학습하기 쉬운 Recoil을 선택
컴포넌트 단위 개발을 도와줌. 컴포넌트에 대한 간단한 테스트 진행가능.
학습해야됨.
챌린징의 목적으로 사용 o
클래스명을 사용하는데 사전에 합의되지 않으면 충돌이 많이 일어남.
Emotion은 서버 사이드 렌더링에 따로 설정을 해줘야 하지만 우리의 서비스는 CSR이므로 영향이 있을 것 같지 않았다.
Emotion이 조금 더 가볍고 빠르다고 하지만 유의미한 차이가 있지 않으므로, 모두가 사용해본 styled-components를 사용하기로 결정.
styled-components
팀 또는 사람마다 아키텍처가 다르면 이를 이해하기 위한 비용 또는 개발 전에 아키텍처를 선정하는 커뮤니케이션 비용이 증가한다.
NestJS는 아키텍처에 대한 정의를 제공하기 때문에 동일한 아키텍처에서 다른 개발자가 작성한 코드를 쉽게 이해할 수 있다.
이것을 결정하는 기준은 DB에 대한 접근에 대하여.
데이터를 크게 요청하는 부분이 없고 실시간으로 변경되는게 많아서 속도가 나은 NoSQL.
운동 -> 레이팅 -> 그룹의 점수 -> 그룹의 등수 처럼 연계되는 데이터가 많아서, RDB를 쓰는게 옳지 않나.
추후에 멘토님한테 여쭤보자 SQL을 사용하면서 ERD와 ORM을 사용하면서 챌린징을 해보자 우선은 RDB로 해보자.
상대적으로 익숙하다.
다양한 추가 기능이 있지만 배우기가 상대적으로 어려움. 상대적으로 더 큰 프로젝트를 할 때 어울릴 것 같음.
MySQL
용량이 천차만별인 이미지 사용이 빈번하면 사용하는게 좋을듯 섬네일 만들 때.
객체를 사용하듯 쓰는 것이 형식이 정해져 있어서, 협업할 때 좋다. 순수쿼리보다 느릴 수도 있지만 대처가능하다. 순수쿼리보다 직관적이다.
순수쿼리보다 느릴 수 있다. 대처가능하지만 테이블이 늘어난다.
ORM 사용
Nest도 처음 사용하는거라 ORM 학습 커브를 줄이고자 상대적으로 레퍼런스가 많고 익숙한 TypeORM을 선택하자. ref: https://github.com/sunnyy02/nestjs-orms
TypeORM
- 버전별로 정리하는 용도.
- 격리시켜서 가상으로 서비스를 돌려야할 때. 우리는? 위 두가지에 해당되지 않으므로 불필요하게 오버엔지니어링 될 수 있다.
사용 x
빌드 자동화 굳이..?
사용 x
로드밸런싱, https 간편화
사용 o
크래딧 많이 남음
사용 o
무중단 배포
사용 o
단위 테스트
E2E 테스트
- Date 객체가 내 PC 날짜를 참조하는거였어..?
- FrontEnd 성능 개선기
- Google OAuth 프론트 연계
- HTTPS 보안 등급 A+ 받기
- URL Parameter routing 트러블 슈팅
- Immer.js 도입기
- Request Header의 특정 헤더값이 확인이 안되는 경우
- FrontEnd 성능 개선기 두번째 (네트워크 Waterfall 발생)
- 실시간 알림을 위한 SSE 도입기
- Fitory 검색페이지 개발 & 성능 개선기
- Index를 이용한 DB 성능 개선 일지
- Full Text Search를 이용한 DB 성능 개선 일지
- 22.11.09. Week1 멘토링
- 22.11.11. Week1 마스터클래스 리뷰
- 22.11.16. Week2 멘토링
- 22.11.26. Week3 멘토링
- 22.11.30. Week4 멘토링