## 기술 스택 ### 리액트 #### 사용 이유 1. 요소라고 하는 컴포넌트 별로 나누어 개발이 가능하기 때문에 이를 재사용 하기가 쉽고 유지보수하기가 쉽다. 2. virtual DOM을 사용하기 때문에 UI를 빠르게 업데이트하여 불필요한 업데이트는 줄고, 성능은 좋아진다. ### TypeScript #### 사용 이유 1. 타입을 직접 지정해주고 컴파일 시점에 에러를 잡아 낼 수 있다. 2. 개발자가 정의한 Object Property를 코드 자동완성을 통해 빠르게 작성할 수 있다. 3. 협업 과정에서 타입을 선언함으로써 다른 팀원의 코드를 더 쉽게 파악할 수 있고 실수를 줄일 수 있다. ### Recoil #### 사용 이유 - 상태관리가 복잡해지고 전역 상태관리 라이브러리가 필요할 경우 비교적 배우기 쉬운 recoil을 사용할 예정이다. ### Styled-component #### Styled Component란? 자바스크립트의 태그가 지정된 템플릿 리터럴과 CSS 의 기능을 사용하여 구성 요소에 반응하는 스타일을 제공하는 CSS-in-JS 스타일링을 위한 프레임워크이다 #### 사용 이유 - 자유로운 CSS 커스텀 컴포넌트를 만들 수 있다. - 인라인 스타일링의 단점을 보완할 수 있다. - 단점 1. 인라인 스타일링을 했을때의 우선순위가 변경될 수 있다. - 가상선택자, 미디어 쿼리를 사용할 수 없다. - 브라우저 호환성, 카멜케이싱 등의 이유로 권장하지 않는다고 한다. - 단위 테스팅이 가능하다. (styled component)도 컴포넌트이기 때문이다.