원티드 프리온보딩 프론트엔드 챌린지 4월 사전과제
gomiseki opened this issue · comments
1. React Lifecycle에 대해 간단히 설명해주세요
리액트 dev 문서에 이런 내용이 있네요
Every React component goes through the same lifecycle:
A component mounts when it’s added to the screen.
A component updates when it receives new props or state, usually in response to an interaction.
A component unmounts when it’s removed from the screen.
2. React18에서 업데이트 된 기능에 대해 설명해주세요
Automatic Batching : 여러개의 상태업데이트를 하나의 리렌더링으로 그룹화하는 성능 최적화기법
Transitions : 긴급 업데이트(입력, 클릭, 키프레싱)와 긴급하지 않은 업데이트를 구분하는 개념
New Suspense : 자식 컴포넌트의 로딩이 끝나기 전 까지 fallback을 디스플레이 해주는 최상위 API
New Client and Server Rendering :
- React DOM Client : ReactDOM.render/ReactDOM.hydrate 에서 react-dom/client에서 export되는 createRoot/hydrateRoot 함수로 변경
- React DOM Server : 서버에서 streaming Suspense를 위한 renderToPipeableStream/renderToReadableStream 함수 지원
New Strict Mode Behaviors : 컴포넌트의 첫 마운트 시 모든 컴포넌트를 자동 언마운트하고, 이전상태를 복원하여 다시 마운트하는 기능 제공
3. React18에서 추가된 hook들에 대해 설명해주세요
useId : 클라이언트와 서버 양쪽에 고유한 ID를 생성하는 hook.
useTransition : 업데이드가 급하지 않은 상태를 정의하는 hook.
useDeferredValue : 디바운싱과 유사하게 지연된 리렌더링을 발생시키는 hook.
useSyncExternalStore : external store의 concurrent read를 지원하기 위한 hook.
useInsertionEffect : CSS-in-JS의 렌더링 과정에서 스타일 삽입 시 나타나는 성능 이슈를 해결하기 위한 hook.
4. 요즘 관심있는 주제가 있다면 알려주세요
프론트엔드 테스트 코드의 best practice를 수집하는게 몹시 어렵게 느껴집니다.
개인, 소규모의 짧은 프로젝트에서는 테스트 코드의 필요성조차 느끼기가 힘들어서 더 학습에 어려움을 겪습니다.
또한 신입 입장에서 현직자들은 지금 시장상황에 대해 어떤 평가를 하고있는지 궁금합니다.
기분탓인지는 모르겠으나 벡엔드 신입에 비해서는 취업문이 좁다 느끼고 있습니다ㅠㅠ