지금까지 프론트엔드 직무에 지원하고 면접을 다니면서, 받았던 질문들을 간추려서 정리해 보았습니다.
React의 라이프 사이클에 대해서 설명해주세요.
본인이 생각하는 좋은 컴포넌트란 어떤 것인가요? 어떤 이유로 그렇게 생각하시나요?
다른 프레임워크와 비교해서 React가 가지는 장점에 대해서 한번 설명해주세요.
setState는 동기일까요? 비동기일까요? setState가 적용되는 동작방식에 대해서 아는대로 한번 설명해주세요.
useCallback과 useMemo를 쓰는 경우에는 어떤 경우일까요? 사용하는 이유와 사용시 주의해야 점 등을 설명해주세요.
next.js 에서 getInitialProps 랑 getServerSideProps 차이점에 대해서 답변해주세요.
서버 컴포넌트가 무엇일까요? 서버 컴포넌트는 어떤 역할을 하고 왜 생겨났을까요?
본인이 직접 커스텀 훅을 만들어서 사용해본 경험이 있나요? 어떤 이유로 어떤 형태로 만들었는지 한번 설명해주세요.
React가 어떤 원리로 동작을 하는지 설명해주세요.
React가 렌더링을 한다고 했는데, 어떤 경우에 렌더링이 발생하는지 설명해주세요.
React로 개발을 하다보면 자식 컴포넌트가 업데이트가 되었을때 부모 컴포넌트도 같이 업데이트를 해야하는 경우가 발생합니다. 이때는 어떤 방식을 사용할 수 있을까요?
React에서 Strict모드를 사용하시나요? 아니면 끄고 사용하시나요? 어떤 이유로 그렇게 하시는지 알려주세요
useEffect에 있는 디펜던시 배열의 역할과 의미에 대해서 설명하고 주의해야 할 점에 대해서 설명해보세요
Props Drilling을 프로젝트를 하면서 경험한 적이 있나요? 어떻게 해소를 했는지 알려주세요.
React에서 사용했던 상태관리는 무엇이고 어떤 특징이 있나요? 왜 그 상태관리를 선택하셨는지 궁금합니다
본인이 사용하는 상태관리 라이브러리를 적용하는데 있어 생각하는 원칙이나 방향성에 대해서 말해보세요
비동기 데이터는 어떤식으로 관리하시나요? 설명 부탁드립니다
React의 Suspense 기능에 대해 설명해주세요. 어떤식으로 적용을 해보셨는지 알려주세요
사용해본 상태관리 라이브러리중 가장 마음에 드는 것과 이유는?
setState가 비동기라서 발생하는 문제점은? -> 비동기 아닌데...
리액트가 Virtual DOM을 사용하는 이유는?
프로젝트를 리액트로 진행한 이유가 뭔가요?
React 18에서 많은 변화가 있었습니다. 혹시 어떤 것들이 추가 되었는지 내용이나 방향성에 대해서 대답해주실수 있으실까요?
Flux 패턴을 설명해주세요.
3d와 2d가 캔버스에 그려질 때 차이점을 아시나요?
기본 리액트 훅을 몇개 말하고 설명해주세요.
리액트사용할때 함수형으로 썼는지 클래스형 썼는지, 왜 그거썼는지
함수형 컴포넌트와 클래스형 컴포넌트의 차이를 설명해주세요
팝업창과 모달창의 차이와 각각의 장단점을 알려주세요
js 실행과정 (이벤트 루프, 전역 context 등등…)
전역변수가 아니라 redux를 사용하는 이유 (리액트가 아닐 때)
객체의 불변성을 유지하기 위해서 어떻게 할 수 있나요?
prototype이란 무엇인가요?
prototype과 class의 차이점은 무엇인가요?
이벤트 버블링과 캡처링이 무엇인가요?
클로저를 실행 컨텍스트와 연관지어서 설명해주세요.
css 애니메이션과 js애니메이션의 차이를 아시나요?
js에서 어떻게 깊은복사를 할 수 있을까요?
JSON.stringify로 깊은복사를 하면 어떤 단점이 있을까요?
실행 컨텍스트에 대해 설명해주세요
defer와 async의 차이가 뭘까요?
get 과 post의 차이점을 알려주세요
webSocket과 http의 차이점을 알려주세요
http를 사용해서 채팅을 구현하려면 어떻게 해야 할까요?
싱글톤 패턴을 설명해주세요
OOP의 특징을 알려주세요
추상클래스와 인터페이스의 차이점이 뭘까요?
동시성과 병렬성의 차이점이 뭘까요?
멀티 스레드와 멀티 프로세스를 비교해서 설명해주세요
context switch에 대해 설명해보세요
브라우저에서 탭을 여러개 띄우면 멀티 프로세스일까요 멀티 스레드일까요?
동기와 비동기 처리에 대해 설명하고, 어떤 상황에서 쓰는지 예시를 들어보라
NlogN 시간복잡도를 갖는 정렬 알고리즘 설명해보라
퀵소트에서 최악의 경우 N^2의 시간복잡도를 가지는데 어떻게하면 최악을 면할 수 있을까요?
CORS는 무엇이고 처리해본 경험이 있다면 알려주세요.
최종 수정일 2023.07.11