jasonkang14 / wanted_8th_preonboarding_frontend

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

원티드 프리온보딩 프론트엔드 챌린지 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를 수집하는게 몹시 어렵게 느껴집니다.
개인, 소규모의 짧은 프로젝트에서는 테스트 코드의 필요성조차 느끼기가 힘들어서 더 학습에 어려움을 겪습니다.

또한 신입 입장에서 현직자들은 지금 시장상황에 대해 어떤 평가를 하고있는지 궁금합니다.
기분탓인지는 모르겠으나 벡엔드 신입에 비해서는 취업문이 좁다 느끼고 있습니다ㅠㅠ