작년 11월 말, 첫 회사를 퇴사하고 본격적인 이직 준비를 시작했다. 이력서와 포트폴리오를 완성한 후 총 118군데의 회사에 지원했고, 코딩테스트/사전과제 등을 거쳐 총 16곳의 회사에서 면접 제안을 받았다. 그리고 현재 최종적으로 한 회사를 선택하여 출근을 하게 됐다.
이직 준비를 하며 느꼈던 점들은 별도의 글로 정리하기로 하고, 이번 글에서는 1,2차 면접을 진행하며 받았던 질문들을 정리하고자 한다. 개인적으로 면접을 보면서 많이 성장했다고 생각하는데, 프로젝트를 하며 미처 신경 쓰지 못했던 부분들, 그리고 프론트엔드 트렌드 중 몰랐던 부분들은 채울 수 있던 기회였다. 혹시나 현재 나와 비슷한 연차를 가지고 있고 면접을 준비 중이라면 이 글이 도움이 되길 바란다.
면접 질문 유형 분류
면접 질문을 다음 세 가지 유형으로 나눴다.
- 기술 질문
- 이력서 및 프로젝트 관련 질문
- 컬처핏 질문
프로젝트 관련 질문은 각자의 경력과 작성한 이력서에 따라 달라질 수 있지만, 어떤 식으로 준비하면 좋을지 감을 잡는 데 도움이 되었으면 한다. 마지막엔 내가 느낀 면접 실전 팁도 정리했으니 꼭 끝까지 읽어보길 바란다 :)
📚 기술 질문
React, JavaScript, 브라우저 동작 원리, 스타일링 등 범위가 꽤 넓다. 아래는 실제로 받았던 질문들이다.
- type, interface의 차이?
- undefined, null의 차이?
- 서버 컴포넌트가 어떤 식으로 동작하는지?
- Suspense 동작 원리?
- Suspense가 어떻게 프로미스를 인지하고, 콜백을 렌더링 할 수 있게 해 주는지?
- useTransition과 Suspense의 차이?
- React가 필요한 부분만 업데이트하는 원리?
- React 라이프사이클?
- 자바스크립트 이벤트 루프?
- 브라우저 렌더링 과정(Critical Rendering Path)?
- React에서 map으로 아이템 리스트를 보여준다고 가정했을 때, 상품이 제일 앞에 추가되면 마운트/리렌더링 관점에서 어떻게 될까?
- 호이스팅이란
- 픽셀, em, rem의 차이
- 반응형 기기별 브레이크포인트를 정하는 기준
- 자바스크립트 변수 선언 방식 3가지의 차이점
- 고차컴포넌트 사용경험
- React props, state
🧾 이력서/프로젝트 관련 질문
개인의 경험에 따라 다양하게 나올 수 있는 파트다. 나의 경우 스터디와 실무 경험이 많아 이에 대한 질문이 많았다.
🔸 스터디 관련
- 스터디는 어떤 내용들을 주제로 해서 어떤 방식으로 진행했는지
- 스터디 인원은 몇 명 정도이며, 모집은 어떻게 했는지? 홍보 수단이 있었는지
- 공부할 주제들은 보통 어떻게 선정하는지
- 최근 스터디에서 인상 깊었던 부분
- 스터디에 잘 참여하지 않는 인원들도 있었을 텐데 어떤 식으로 해결하셨는지
- http, https의 차이
- TCP, UDP의 차이
- Next.js를 실무에 도입한 적이 있는지? (Next.js 스터디 관련)
- React18, 19 버전의 차이가 뭐라고 생각하는지? (React19 스터디 관련)
- React 낙관적 업데이트에서, 응답이 늦어 상태가 늦게 변경되는 경우와, 낙관적 업데이트를 했으나 API 요청에 실패해 다시 상태를 되돌려야 하는 경우 중 어떤 게 더 사용성이 안 좋을 거라고 생각하는지
🔸 외부 활동
- 면접관으로 활동할 때 어떤 질문을 했는지?
- 면접관으로서 어떤 것을 중점적으로 봤는지?
- 면접에서 마음이 더 가던 사람이 있었는지?
- 자바스크립트 멘토링은 어떤 방식으로 진행한 건지?
- 알고리즘 좋아하는지?
🔸 실무
프레임워크 사용 기준
- React, Vue, Svelte의 장단점 (직전 회사에서 세 가지 모두를 사용했던 상황)
- 큰 프로젝트에 React가 적합하다고 생각하는 이유
- React, Vue, Svelte를 프로젝트에서 각각 선택했던 이유
- Vue, Svelte에서 React로 넘어갈 때 느낀 어려움이 있는지
- Vue
- v-bind, v-model의 차이에 대해 알고 있는지?
- option API에서 composition API로 전환을 하며 느꼈던 어려움
- Vue에서 컴포넌트를 나누는 기준
상태관리
- 상태관리 라이브러리는 어떤 걸 사용했는지
- 상태관리 라이브러리를 선택한 기준
- Zustand와 Recoil의 차이
- React Query 캐싱 시간 기준은 어떻게 세웠는지
- React Query와 Recoil의 궁합이 좋다고 생각하는지
- Recoil 안에서 API 호출해 본 적이 있는지
타입스크립트
- 타입스크립트를 도입한 배경이 어떻게 되는지? 이전에 에러 리포팅이 어떻게 되고 있었고 타입스크립트 도입을 통해 어떤 개선을 얻었는지
- 타입스크립트를 도입하기 전 어떤 문제점이 있었는지?
- 타입스크립트를 도입할 때 가장 신경을 많이 썼던 부분
- 유틸리티 타입도 많이 사용해 봤는지?
테스트
- 유닛 테스트를 할 때 '모킹을 해야 한다 vs 모킹을 하지 말아야 한다'에 대해 어떻게 생각하는지
- 프론트엔드 테스트가 꼭 필요하다고 생각하는지
- 테스트 코드 작성 경험 어땠는지
- 테스트 코드에 대한 본인만의 기준이 있는지
- 주로 어떤 부분들에 테스트 코드를 작성했는지
기타
- 가장 기억에 남는 프로젝트와 이유
- 가장 어려웠던 프로젝트와 이유
- Chat.js를 사용할 때 커스터마이징 한 경험이 있는지
- FSD를 사용했을 때 느꼈던 장단점
- 아키텍처, 디자인 패턴에 대해 고민한 경험
- 실무에 도입한 디자인 패턴은 어떤 게 있는지
- API 설계 어떤 방식으로 협업해서 진행했는지
- msw 대신 FastAPI를 사용한 이유
- SvelteKit 프로젝트 진행 시 쿠키 활용 방식
- 협업 툴은 어떤 걸 사용했는지
- 프론트 개발자로서 AI 자체 시장성과 발전성에 대해 어떻게 생각하는지, 기술적 발전성에 대해 전망이 있다고 보는지
- 문서화가 왜 중요하다고 생각하는지? 자발적인지? 꾸준히 하는 편인지
- 고객 피드백은 어떻게 받았고 실제로 반영한 사례가 있는지
- 렌더링 최적화 경험
- 기술적으로 가장 깊이 있게 파고든 경험
- 소스 관리 툴은 어떤 걸 사용했는지
- 배포도 직접 했는지
- 번들러 어떤 거 사용했는지
- 최근에 관심 있게 보고 있는 기술이나 서적
- 자바스크립트나 파이썬 외에 사용해 본 언어가 있는지?
- 자바스크립트 비동기에 대해 설명
- 프로젝트에서 정량적인 개선을 이루었던 경험
- 프론트엔드 개발자로서 기술적으로 자신 있는 부분
- 프론트엔드 개발자로서 스스로 가장 부족하다고 생각하는 부분
- 개발자로서 목표가 있는지
- 좋은 UI/UX란 뭐라고 생각하는지
- 본인이 생각하기에 개발 실력이 속도랑 퀄리티 측면에서 어느 정도인 것 같은지
✏️ 사전과제 관련 질문
- 사전과제에서 아쉬웠던 부분
👥 컬처핏 질문
- 자기소개 (자유)
- 자기소개 (성과 위주로)
- 지원 동기
- 서비스 사용해 봤는지?
- 이직 사유
- 성격 장단점
- 퇴사 후 이직 준비를 한 이유
- 프론트엔드 개발자를 선택한 이유 (아마 제가 비전공자여서 물어보셨던 것 같아요)
- 작업하다가 잘 풀리지 않는 경우 어떻게 해결하는 편인지
- 업무를 하며 가장 뿌듯하거나 자랑스러웠던 순간
- 같이 일하면서 좋았던 동료
- 같이 일하면서 힘들었던 동료
- 좋은 팀원은 어떤 팀원이라고 생각하는지
- 이전 직장에서 받았던 긍정적/부정적 피드백
- 회사를 선택할 때 가장 중요하게 생각하는 기준
- 어떤 회사에서 일하고 싶은지
- 입사하면 하고 싶은 업무
- 퇴사 후 어떤 걸 하며 지냈는지
- 왜 아직 이직을 하지 못했다고 생각하는지
- 스트레스 관리는 어떻게 하는 편인지
- 취미가 뭔지
- 개발을 할 때 이것만은 지켜줬으면 하는 점이 있는지
- 팀이나 팀원에게 바라는 점이 있는지
- 나보다 연차가 높은 시니어에게 바라는 것이 있는지
- 나보다 연차가 낮은 주니어에게 바라는 것이 있는지
- 코드리뷰에서 바라는 점이 있는지
- 기존 팀에서의 업무 방식이나 조직 문화에서 잘 맞다고 생각했던 부분과 잘 맞지 않았다고 생각했던 부분이 있는지
- 평소에 공부는 어느 정도 하는지
- 개발자는 공부를 다 해야 된다라는 말이 많은데 그 이유가 뭐라고 생각하는지
- 마감기한이 정해져 있다고 했을 때, 확실히 좋아 보이는 방향이 있지만 이걸 적용했을 때 기한을 맞출 수 있을지가 모호할 때 어떻게 풀어나가는 편인지?
- MBTI (이건 순수한 궁금증 같았습니다...ㅎ)
💡 면접 실전 팁
1. 면접 기회 최대한 활용하기
면접 경험이 있고 없고는 큰 차이라고 생각한다. 면접을 보다 보면 내가 작성한 이력서와 포트폴리오에서 궁금한 부분이 대부분 비슷하다. 그렇기 때문에 면접 기회가 있다면 최대한 많이 보는 것을 추천한다. 면접에 다녀와서 내가 답변을 잘하지 못했던 부분들에 대해 공부하고, 답변을 보완해나가다 보면 나중엔 여러 꼬리 질문들이 들어와도 대부분 대답할 수 있게 된다.
또 많이 가봐야 하는 이유는, 그만큼 면접 자체에 대한 긴장감이 많이 없어진다. 나도 초반에는 몸에 힘이 많이 들어간 상태에서 면접을 진행했는데, 어느 정도 익숙해지다 보니 내 모습을 편하게 많이 보여줄 수 있었다.
만약 정말 가고 싶은 회사인데 면접을 본 지 너무 오래됐다면 모의면접이라도 꼭 보고 가는 걸 추천한다.
나 같은 경우에는 만능 GPT랑 함께 질문을 뽑아보고 정리하는 시간을 가지고, 주변 분들이랑 간단한 예상 질문을 뽑아보기도 했는데 주변을 보면 모의 면접 서비스를 적극 활용하는 것도 좋아 보인다.
- 인텔리픽 : https://intellipick.spartacodingclub.kr/coaching
- 왓에버 (재오픈예정) : https://app.whatever.community/one-point
2. 관련 자료 찾아보기
뒤에서 말할 3번과도 연결되는 부분이기는 한데, 회사 채용 홈페이지, 회사 관련 기사, 테크 블로그, 인터뷰 등을 최대한 많이 찾아보고 가는 걸 추천한다. 인재상을 보면 내가 면접 때 어떤 점을 더 강조해야 할지 알 수 있다. 테크 블로그가 있다면, 최근 올라온 글들을 보고 현재 어떤 고민들을 하고 있는지를 볼 수 있다. 그리고 관련해서 예상 질문들을 정리하고 간다면 훨씬 답변을 잘할 수 있다.
예시로, 한 회사는 UI/UX와 관련된 글이 자주 올라왔었고 채용 공고에도 우대사항에 이 부분이 한 줄 적혀있었다. 테크 블로그에 작성하신 내용을 바탕으로 추가적인 서치를 한 후 면접에 참석했고, 실제로 예상했던 질문이 나와 준비한 내용을 답변하기도 했다.
그 외에 테크 블로그나 인터뷰를 읽다 보면 실제 작성하신 분이 면접에 나오시는 경우도 많아서 내적 친밀감(?)을 높이고 갈 수 있는 기회이기도 하다. 그리고 운 좋게 정말 마주치게 된다면 회사에 관심이 있다는 것을 어필할 수 있는 기회가 되기도 한다.
3. 회사에 궁금한 점 미리 정리해 가기
물론 회사마다 다를 수도 있지만, 대부분의 회사에서 좋게 봐주셨던 부분이라고 생각한다. 나는 핸드폰 메모장에 회사와 팀에 대해 궁금한 점들을 항상 정리했고, 면접장에서 양해를 구하고 핸드폰에 기재해 둔 질문들을 드렸다. 무턱대고 핸드폰을 꺼내는 것은 실례일 수 있기 때문에 혹시 나처럼 준비를 하게 된다면 꼭 미리 양해를 구하고 하는 걸 추천한다...!
여태까지 면접에 참석한 모든 회사에서 질문 이후 '우리 회사에 대해 궁금한 점'에 대해 물어봤다. 이걸 선택지라고 생각하고 별다른 질문을 하지 않는 분들도 많다고 들었다. 하지만 나는 이게 또 하나의 면접 질문이자 마지막으로 어필할 수 있는 기회라고 생각했다. 회사에 충분한 관심을 가지고 지원했는지, 신중하게 면접에 참석했는지, 그리고 회사를 선택할 때 어떤 점을 중요하게 생각하는지를 보여주면서 내가 앞서 말했던 면접 대답들에 좀 더 진심을 담을 수 있는 기회라고 생각했다. 동시에 면접은 회사에서 이 지원자가 우리와 잘 맞을까를 보는 자리이기도 하지만, 동시에 면접자가 이 회사와 내가 잘 맞을까도 보는 자리라고 생각한다. 그렇기 때문에 나는 내가 회사를 선택할 때 중요하게 생각하는 점들을 정리하고 질문을 드렸다. 회사 서비스에 대해서나, 입사를 하게 된다면 내가 담당하게 될 업무, 어떤 식으로 업무가 진행되는지, 그리고 기타 팀 문화에 대해 자세하게 질문을 드렸다.
준비한 질문들을 드리는 과정에서 대부분은 면접 분위기가 더 좋아지는 것을 느꼈다. 질문을 하는 과정에서 추가적인 질문을 하시기도 했고, 이렇게까지 준비한 사람은 처음이다라는 반응을 보여주시기도 했다. 긍정적인 반응을 보여주셨던 회사에는 대부분 합격하기도 했고, 면접 결과를 떠나 내가 회사를 보는 눈을 키워주기도 하니, 이건 꼭 준비해 갔으면 좋겠다.
4. 준비는 무조건 이력서 기반으로!
이력서와 관련 없이 회사에서 공통 질문을 하는 경우도 분명 있다. 하지만 면접 시간에서 50% 이상은 이력서를 기반으로 질문이 이루어진다. React, Vue, JavaScript, TypeScript, 테스트 등도 결국 이력서에 내가 작성한 경험을 바탕으로 질문을 하고 꼬리질문을 하는 경우가 많다. 그렇기 때문에 내가 이력서에 적은 부분이라면 꼭 자세하게 정리해 보면 좋다.
기술을 사용하면서 겪었던 이슈가 뭐가 있는지, 어떻게 해결했는지, 해결 과정에서 대체 방법은 없었는지, 왜 그 방법을 최종적으로 선택했고 이전과 다르게 어떤 점이 개선되었는지를 물어봤을 때 답변할 수 있도록 1순위로 두고 준비해야 한다. 면접 과정에서 나도 몰랐던 해결책이나 대체방법 혹은 문제점이 있을 수 있지만 모르는 건 모른다 하고 그 상황에서 내가 왜 그 방법을 선택했는지에 대해 답변하면 된다. 그리고 말씀 주신 방법은 집에 돌아와서 다시 알아보고 다음 면접에서 더 좋은 답변으로 디벨롭하면 된다.
💪🏻 면접을 앞두신 분들께
면접 준비를 하면서 많이 성장했다고 생각합니다. 면접 결과와 상관없이 많이 배울 수 있는 기회가 되고, 여러 곳을 다니다 보면 본인에게 맞는 회사를 금방 찾으실 수 있을 거라 생각합니다!
혹시 면접 관련해서 더 질문이 있다면 댓글이나 링크드인 디엠 주세요! 커피챗도 환영입니다 :)
'개발' 카테고리의 다른 글
[함수형 코딩] 비동기 타임 라인 컨트롤 (6) | 2025.05.21 |
---|---|
[함수형 코딩] 중복 코드를 없애는 방법: 암묵적 인자 드러내기 (2) | 2025.04.07 |
내가 겪은 CSS 스타일링 전략의 변화와 고민들 🤔 (12) | 2025.04.06 |
[함수형 코딩] 계층형 설계 - 직접 구현 (6) | 2025.04.02 |
[함수형 코딩] 데이터 불변성을 위한 카피온라이트, 방어적 복사 (3) | 2025.03.26 |