-
Notifications
You must be signed in to change notification settings - Fork 1
기술스택 논의 사항
Jinyong Park edited this page May 15, 2021
·
7 revisions
- JavaScript ? TypeScript
- framework
- css
- 상태관리 라이브러리
- database
-
javaScript 에서 러닝타임에 발생하는 오류들을, TypeScript는 정적 타입을 지원하므로 컴파일 단계에서 오류를 포착할 수 있다.
→ error handle, debugging 이 용이하다.
-
자동완성 및 타입확인으로 인하여 리액트 컴포넌트의 경우 해당 컴포넌트를 사용하게 될 때 props 에는 무엇을 전달해줘야하는지, tsx를 작성하는 과정에서 바로 알 수 있음
-
리덕스와 함께 사용하게 되면 connect로 통하여 props 로 전달해 줄 때에도 자동완성이 되어 굉장히 편리함
-
koa 를 사용했을 때 express 에 비하여 가지는 장점?
⇒ express 와 비교하여 error handle 이 용이 (middle ware 가 promise 기반으로 작성되어있어 용이하다)
-
Css-in-Css 방식이 Css-in-Js 방식에 비해 랜더링 속도가 평균적으로 3배정도 차이가 난다.
-
3배의 차이는 상대적인 수치인데, 이 수치만 보고서 성능적으로 선택을 할 것인지,
수치적으로는 3배이지만 사용자가 실제로 불편함을 느낄 만큼의 수준인지를 고려해봐야 할 것 같다.
-
빌드 타임에서의 시간 차이인지 / 런타임 시점에서 렌더링 시간 차이인지
-
페이지에 사용되는 컴포넌트가 많고 인터랙션이 많은 서비스 인지?
- 애니매이션, 트랜지션 같은 효과를 많이 사용한다면 속도 차이가 이슈가 될 수도 있을 것 같긴함.
- 현재 구현하는 서비스에서는 이슈가 될 만한 인터랙션이나 랜더링이 있을까요?
- 없을 것 같습니다. css 작업에 필요한 클래스명을 고민하는 시간을 줄일 수 있어서 개발 생산성 부분에서 유리한 데 이 점을 가져가는게 좋을 것 같다는 생각입니다.
-
Redux Dev Tools라는 디버깅 도구가 존재해 높은 수준의 디버깅 가능
-
다른 상태관리 라이브러리에 비해 큰 커뮤니티와 수많은 예제 및 문서, 경험이 존재함
- redux ⇒ 언젠가는 공부해야하는 기술! 기술문서나 예제코드가 많다. / 러닝커브 높음
- recoil ⇒ 외국문서 보면서 할꺼면 가장 지향 / 아직 실험적
- mobx ⇒ 쉽고, 작은 프로젝트에 용이
-
ImmutableJs와 같은 라이브러리를 통해 불변성을 높게 유지할 수 있음
- 저장되는 데이터 수가 많은가? -> sharding 의 필요성
- 서비스 타입
- 테이블의 관계가 중요한가?
- 데이터 무결성이 중요한가?
- mongoDB 장점 - 최창희
- update 가 자주 일어나지 않고, 쌓이는 데이터에 대해 유리하다.
- DB 클러스터링을 적용해보고 싶어서 MongoDB를 써보고 싶었지만 자료를 찾을 수록 DB 클러스터링(샤딩)은 미리 선택하는게 아니라 성능 최적화를 위한 다른 방법을 최대한 적용해보고 샤딩이 필요한 시점까지 왔을때 서버 운용 비용, 관리 비용 등을 충분히 따져보고 적용을 해야한다고 합니다. 우리의 프로젝트는 현재 시작 단계이고 가계부 서비스가 어느정도 엔티티간의 관계도 형성이 되는 점을 봤을 때 MongoDB 보다는 MySQL로 하는 것이 어울릴 수도 있다고 생각을 바꿨습니다.
- 데이터 무결성의 유지
- 일반적으로 RDBS 의 보완으로 no-SQL 을 쓴다.