Front-End interview questions(이직 후기)

주니어 프론트엔드 개발자 면접 후기

2021년 하반기에 이직을 하게 되면서 꽤 많은 회사의 면접을 봤다. 시니어 개발자들을 볼 수 있던 기회가 많이 없던 나로서는 굉장히 좋은 기회였고 즐거웠다. 가고 싶은 회사는 많았지만 아쉽게도 몸이 하나라 그 중 가장 가고싶던 회사를 가게 됐다. 이 좋았던 면접 기억이 날아가기 전에 정리를 해두려고 한다.

회사별로 면접 때 나온 질문들을 간단히 요약해 정리했고 당연히 회사의 이름은 공개하지 않았다. 특정할 수 있는 정보 또한 생략했다. 과제나 테스트에 대한 내용도 당연히 생략한다.

대부분의 인터뷰는 1차 기술면접, 2차 인성면접(컬처핏)으로 진행된다.

1차 기술면접의 경우 주로 물어봤던 것은

  • 이력서에 기술한 내용
  • 기술에 대한 내용 (웹에 대한 이해, 자바스크립트, 리액트 일부, 타입스크립트 일부 등)
  • 인성, 협업에 대한 내용
  • 과제나 코딩테스트가 있었다면 그 풀이에 대한 내용
  • 질문

2차 인성면접에서 주로 물어봤던 것은

  • 지원동기, 이직사유
  • 개발 시작한 이유
  • 협업 시 트러블 상황
  • 누군가를 설득한 경험
  • 3~5년 사이의 목표

크게 이 정도가 될 것 같다.

1. A사

1차 면접을 아주 재밌게 봤었다. 특히, 추가 질문에서 “어떻게 공부하시나요?” 라는 질문을 했었는데 가장 배울 수 있었던 답변(라이브러리 릴리즈 노트를 본다는 것)을 들었었다. 다시 생각해도 참 감사하다. 특이했던 것은 1차에서 지원한 포지션이 변경되어 2차에서도 기술면접을 봤었고, 2차 면접에는 모두 백엔드 개발자들이 들어왔었다.

1차

  • 이력서에 대한 내용
    • 프로젝트에 대한 설명
    • prettier, eslint cicd로 구현했는지
    • E2E 테스트 cypress 선정 이유
  • 기술
    • 브라우저의 동작 원리
    • 웹 접근성이 무엇인지
    • 시스템을 구축할 때 어떤식으로 설계할건지
    • event에 대한 설명(bubbling, capturing, delegation)
    • 리액트 useCallback, useMemo 에 대한 설명
    • react.memo를 쓰면 안되는 경우
    • 테스트코드는 주로 어떤 걸 쓰는지
    • context랑 state차이점
    • javascript의 클로저
    • promise all
    • 컴포넌트 나누는 방법
    • 함수형 프로그래밍에 대한 장/단점, 예시
    • typescript에서 any 썼는지? 썼으면 어떤 상황에서 썼는지
    • typescript의 제네릭
  • 인성
    • 이직 사유
    • 업무를 하면 어떻게 성장할 수 있을지
    • 프론트엔드 개발자로서 본인의 강점
    • 3년정도 후에 어떤 개발자가 될건지

2차

  • 이력서에 대한 내용
    • 팀을 리딩하게 된 과정
    • 최적화 한 경험
    • SEO 적용 경험
    • 개발한 것 중 다시 만들어 보고 싶은 것, 그 이유
  • 기술
    • 리액트 최적화 경험, 어떤 것을 써서 최적화 시켰는지
      • useCallback, useMemo, memo
    • 리액트 shouldComponentUpdate
  • 인성
    • 이직 사유
    • 본인 성격의 장 단점
    • 누군가를 설득해 본 경험
    • 회사를 선택하는 조건
    • 그 다음 공부할 것, 그 이유
    • 개발자로서 갖춰야 할 능력
    • 5년, 10년 후 본인의 모습
    • 같이 일하기 싫은 사람은 어떤 사람인지

2. B사

1차 면접경험이 굉장히 좋았었던 회사다. 면접관님이 어떤 것에 대해 질문을 하셨을 때 대답을 하긴 했지만 정확한 예시를 들지 못했었는데, 노트북으로 직접 그 예시를 보여주셨다. 이런 거는 알고 있어야 나중에 실수를 하지 않을 수 있다고 하면서... 면접보다가 감동받았던 회사.......

1차

  • 이력서에 대한 내용
    • SEO최적화
    • 자동화
  • 기술
    • 이벤트 동작 설명
    • 이벤트 루프
    • 시멘틱 태그
    • javascript의 싱글 스레드
    • javascript의 클로저란
    • 커링
    • 스택과 큐 차이
    • call by reference, call by value
  • 인성
    • 이직 사유
    • 지원 동기
    • 본인 성격의 장 단점
    • 3년 후 본인의 모습
    • 누군가를 설득해 본 경험

2

  • 이직사유
  • 지원 동기
  • 자동화 경험
  • 개발이 진짜 재밌는지
  • 본인 성격의 장 단점
  • 누군가를 설득해 본 경험
  • 회사 선택 기준

3. C사

1차 2차 경험이 둘 다 좋았다. 면접이 재밌고 즐거웠다. 실무에 관련된 질문들이 많았었고, 나도 질문을 꽤 많이 했던 걸로 기억난다. 면접관님들도 즐겁게 대답해 주셨다.

1차

  • 이력서에 대한 내용 일부
  • 기술
    • 퀴즈 → 기술질문으로 이어지는 것들이 많았고, 생략한다.
    • object의 함수들
    • typescript 제네릭
    • 추상화 하는 기준
    • debounce throttle
    • infinity scroll 고려할 점
  • 인성
    • 가장 힘들었던 커뮤니케이션
    • 스트레스 관리
    • 회사를 고르는 기준

2차

  • 이직 사유
  • 누군가를 설득했던 경험
  • 브라우저의 동작원리를 비전공자에게 설명한다면
  • 들어본 가장 부정적인 피드백
  • 일에 대한 몰입이 언제 깨지는지

4. D사

면접경험이 그렇게 좋지 않아서 1차 면접을 합격했지만 2차 면접을 진행하지 않았다. 지원자가 궁금한 게 아니라 “니가 여길 통과할 수 있는지 보자" 이런 느낌이었다. 실제로 어떤 질문에 대한 답을 했을 때 “n년차인데 그걸 어떻게 알아요?” 라고 말하셔서 조금 의아했었다.

1차

  • 이력서에 대한 내용
    • 사이트 성능개선 경험
    • 에러바운더리에 대해 설명
    • 테스트 코드 작성 시 작성하는 기준
    • 전역관리는 뭘로 해봤는지, ContextAPI를 썼다면 렌더링 이슈는 어케 확인을 했는지, Redux안 쓴 이유
  • 기술
    • html5 doctype란?
    • meta 태그
    • http https차이 / https 구축하는데 참여해 본 적 있는지
    • CORS에 대해 설명
    • 브라우저 동작 원리
    • 리플로우 리페인트 설명
    • ssr과 csr차이
    • 웹 스토리지 설명
    • RestAPI설명 Post메소드와 Put 메소드의 URI 차이
    • 자바스크립트 자료형에 대해 아는대로 설명
    • 자바스크립트 오브젝트에 대해 설명
    • 값에 의한 참조, 레퍼런스에 의한 참조 설명
    • var와 const let 차이
    • 클로저에 대해 설명
    • 타입스크립트 제네릭
    • 자바스크립트가 멈췄을 때 해결법
    • es6이상 문법에 대해 아는대로 설명
    • vdom에 대한 설명 - 언제 썼을 때 좋을지
    • 비동기 통신 뭘로 했는지
    • array function에 대해 아는대로 설명(map, filter, forEach, reduce)
    • 자바스크립트 반복문 종류, for문은 언제 어디에 사용해야되는지, 언제 어떻게 썼을 때 lint에러 나는지
    • 자바스크립트 제네레이터
    • 자바스크립트 버전 어디까지 나왔는지 새로 추가된 기술은 뭐가 있는지?
    • 깃 플로우에 대해 설명
    • 깃 체리픽 아는지 / 2년차인데 어떻게 아는지
    • arraw function 과 일반 function과의 차이점
    • 깊은 복사, 얕은 복사 차이점
    • 클린코드에 대해 아는대로 설명

5. E사

1차 면접경험이 아주 좋았던 회사다. 어떤 질문에 대해 답을 찾지 못하고 있을 때 그 질문에 대한 답을 유도해 주면서 스스로 생각할 수 있게 만들어 주셨다. “아 그럼~ 같이 한 번 생각해 볼까요~?이게 이렇게 되면 어떤 문제가 있을까요? 그럼 그것들을 어떻게 해결할 수 있을까요?” 이런 식으로 말이다.

1차

  • 이력서에 대한 내용
    • 프로젝트 초기 세팅
    • 코드스플릿
    • 번들 사이즈 줄이는 이유
    • 웹 최적화
  • 기술
    • 대부분 과제에 대한 질문이라 생략한다.
    • useState가 비동기인 이유, 해결 방법
    • useEffect 에 대한 질문(렌더링, 이름의 뜻)

2차

  • 지원 동기
  • 이직 사유
  • 건축에서 개발로 온 이유
  • 본인이 생각하는 좋은 세상을 만드는 것이란?

6. F사

1차 2차 모두 면접 경험이 좋았던 회사다. 1차 대부분의 기술 질문은 과제와 관련된 것들이 많아서 여기에 적을 수 없어서 아쉽다.

1차

  • 이력서에 대한 내용
    • CI/CD 적용했는지
    • 지금 프로젝트의 build 배포 과정
    • SEO 어떻게 적용했는지
    • 검색엔진에 노출되기 위한 노력
    • 컴포넌트 계층 구조 어떻게 설계했는지
  • 기술
    • 대부분 과제에 대한 질문이라 생략한다.
    • 서버상태관리 / 클라이언트 상태관리
    • 시멘틱 태그
  • 인성
    • 이직 사유
    • 해당 직무로 지원한 이유
    • 코드리뷰에 대한 생각
    • 튜토리얼 말고 경험에 의한 공부는 어떻게 하는지
    • 번아웃 관리
    • 코드리뷰 하면서 충돌난 경험

2차

  • 건축에서 개발로 온 이유, 또 프론트엔드를 선택한 이유
  • 프로젝트를 주도적으로 할 수 있었던 배경
  • 프로젝트를 구축하면서 많은 것을 도입하느라 물리적인 시간이 부족했을 텐데 어떻게 했는지
  • 혼자 구축을 하다보면 어느 정도 선이 적절한지 모를텐데 어떻게 판단했는지
  • 공부하는 시간과 업무 시간을 분배하는 기준
  • 긍정적인 피드백을 받은 경험, 부정적인 피드백을 받은 경험
  • 공부할 내용을 어떻게 정하는지
  • 전전 직장, 전 직장에 들어간 이유, 나온 이유
  • 일에 대한 몰입이 언제 깨지는지
  • 협업 시 문제 됐던 것, 해결한 방법
  • 1차 면접 때 제대로 대답한 것들에 대해 다시 찾아보고 정리한 게 있는지
  • 개발 이외의 관심사
  • 블로그 글을 쓰는 이유
  • 3~4년 후 본인의 모습