프론트엔드 개발자 면접 예상 질문

양선우·2023년 2월 13일
0

Front-end 개발자로 취업하기 위해선 당연히 기술면접이 필수 요건이라고 생각한다.
아직 취업하기에는 내 skill들이 부족하지만 기술면접에 요구하는 질문들은 현업에도 가장 근본이 된다고 생각하기에 해당 질문들의 나만의 답안을 체크리스트로 작성하여 공부하려고 한다. 꾸준히 갱신할 예정이다.


2023.02.19 update


(예상 질문 리스트들은 내가 직접 면접을 봐본 적이 없기 때문에
내가 자주 보는 블로그에서 리스트들을 가져왔다.)
출처 - https://xiubindev.tistory.com/m/119

해당 블로그에서 2번 이상 받은 질문들은 ⭐️로 구분해서 표시해주었다




CS
⭐️ 브라우저 주소창에 www.google.com을 입력하면 어떤 일이 일어나나요?
DNS에 대해 설명해주세요.
⭐️ GET과 POST의 차이는 무엇인가요?
REST API에 대해 설명해주세요.
⭐️ 객체 지향 프로그래밍이란 무엇인가요?
자료구조 stack과 queue에 대해 설명해주세요.
⭐️ 프로세스와 스레드에 대해 설명해주세요.

JavaScript
⭐️ Promise와 Callback 차이를 설명해주세요.
콜백 지옥(Callback hell)을 해결하는 방법을 말씀해주세요.
⭐️ async, await 사용 방법을 설명해주세요.
Promise를 사용한 비동기 통신과 async, await를 사용한 비동기 통신의 차이를 설명해주세요.
⭐️ var, let, const 차이를 설명해주세요.
함수 선언형과 함수 표현식의 차이에 대해 설명해주세요.
⭐️ 이벤트 버블링과 캡처링에 대해 설명해주세요.
이벤트 버블링과 이벤트 캡처링에 대한 예시를 들어주세요.
⭐️ 클로져(Closure)에 대해 설명해주세요.
렉시컬 환경(Lexical Environment)에 대해 설명해주세요.
⭐️ 실행 컨텍스트에 대해 설명해주세요.
⭐️ 호이스팅(hoisting)에 대해 설명해주세요.
데이터 타입에 대해 설명해주세요.
자바스크립트에서 일어나는 데이터 형 변환에 대해 설명해주세요.
자바스크립트가 유동적인 언어인 이유는 무엇인가요?
⭐️ 프로토타입에 대해 설명해주세요.
깊은 복사와 얕은 복사에 대해 설명해주세요.
⭐️ 불변성을 유지하려면 어떻게 해야하나요?
this에 대해 설명해주세요.
requestAnimationFrame을 사용해본 적 있나요?

React
⭐️ Virtual DOM 작동 원리에 대해 설명해주세요.
⭐️ Virtual DOM 이 무엇인지 설명해주세요.
⭐️ React를 사용하는 이유에 대해 말씀해주세요.
제어 컴포넌트와 비제어 컴포넌트의 차이에 대해 설명해주세요.
key props를 사용하는 이유는 무엇인가요?
props와 state의 차이는 무엇인가요?
pure component에 대해 설명해주세요.
shouldComponentUpdate에 대해 설명해주세요.
⭐️ 클래스형 컴포넌트와 함수형 컴포넌트의 차이에 대해 설명해주세요.
⭐️ 생명 주기 메서드에 대해 설명해주세요.
⭐️ 리액트에서 JSX 문법이 어떻게 사용되나요?
왜 state를 직접 바꾸지 않고 useState를 사용해야 하나요?
⭐️ useMemo와 useCallback에 대해 설명해주세요.
리액트에서 메모이제이션을 어떤 방식으로 하나요?
리액트 관련 패키지 중에 제일 좋다고 생각한 것은 무엇인가요?
⭐️ 리액트의 렌더링 성능 향상을 위해 어떻게 해야 하나요?
React-query에 대해 들어봤나요?
React 18 버전 업데이트 내용에 대해 말씀해주세요.
useEffect와 useLayoutEffect의 차이점에 대해 말씀해주세요.
⭐️ Context API에 대해 설명해주세요.

Redux
⭐️ Redux를 사용하는 이유가 무엇인가요?
⭐️ Redux의 장단점에 대해 설명해주세요.
⭐️ Context API와 Redux를 비교해주세요.
Redux-saga에 대해 설명해주세요.
Generator 문법에 대해 설명해주세요.
Redux-saga, Redux-Thunk의 차이에 대해 설명해주세요.

Frontend
⭐️ 브라우저 렌더링 과정을 설명해주세요.
⭐️ 브라우저는 어떻게 동작 하나요?
⭐️ Webpack, Babel, Polyfill에 대해 설명해주세요.
⭐️ CSR과 SSR의 차이는 무엇인가요?
⭐️ CORS는 무엇인지, 이를 처리를 해본 경험을 말씀해주세요.
⭐️ 웹 표준을 지키며 개발하시나요?
쿠키와 세션에 대해 설명해주세요.
로그인 처리를 할 때 쿠키와 세션을 어떻게 사용하시나요?
⭐️ 이벤트 루프와 태스크 큐에 대해 설명해주세요.
bundle의 사이즈를 줄이려면 어떻게 해야 하나요?
⭐️ 타입스크립트를 사용하는 이유는 무엇인가요?
⭐️ 쿠키, 세션, 웹스토리지의 차이에 대해 설명해주세요.
크로스 브라우징 경험이 있으신가요?
웹 소켓을 사용해보셨나요?
⭐️ 웹사이트 성능 최적화에는 어떤 방법이 있나요?

HTML, CSS
Flexbox를 사용해보셨나요?
⭐️ Cascading에 관해서 설명해주세요.
⭐️ CSS 애니메이션과 JS 애니메이션의 차이에 대해 설명해주세요.
postition 속성을 나열해주세요.

---- 기타 리스트들은 따로 작성 링크는 없을 예정 ----

기타
⭐️ 자기소개를 해주세요.
회사 지원 동기를 말씀해주세요.
⭐️ 최근 경험했던 기억에 남는 에러에 대해 말씀해주세요.
⭐️ 요즘 공부하고 있는 것을 말씀해주세요.
자바스크립트를 공부하면서 가장 인상 깊었던 것을 말씀해주세요.
어떤 개발자를 사수로 두고 싶으신가요?
구글 태그 매니저를 사용했을 때 어려웠던 점이 있었나요?
⭐️ 좋은 코드란 어떤 것이라고 생각하시나요?
어떤 개발자가 되고 싶으신가요?
애자일 방법론을 활용하여 개발을 해보셨나요?
왜 이전 직장을 그만두시게 됐나요?
어떤 프로그래밍 디자인 패턴을 선호하시나요?
토이프로젝트를 실제로 사용하는 유저들이 있었나요?
⭐️ 협업할 때 어려운 점이 있었나요?
⭐️ 프로젝트에서 어떤 업무를 주로 담당했나요?
본인의 장단점을 말씀해주세요.
개발 기간을 촉박하게 요구하는 경우 어떻게 하시나요?
⭐️ 왜 개발자가 되기로 결심하셨나요?
개발 능력 향상을 위해 어떤 것을 하고 계신가요?
⭐️ 새로운 기술을 습득하기 위해 어떤 방식으로 접근하고 계신가요?
버전 관리 시스템은 무엇을 사용해보셨나요?
⭐️ 저희 회사에 궁금한 점이 있으신가요?

profile
코딩이 하고 싶은 사람

0개의 댓글