지난 1~2주간 프론트엔드 개발 직무(+인성)면접을 일곱 군데 봤어요. 저는 신입이고요. 면접을 보면서 느낀점과 받았던 질문들을 작성해보려고 해요.
처음에는 가고 싶은 곳 1 ~ 3개를 골라서 지원을 했어요. 그런데 첫 면접을 보고 나니 생각이 완전히 바뀌었어요.
면접은 정말 좋은 경험이다! 최대한 많이 보자!라는 생각에 가능한 많은 곳에 다시 지원했죠.
그래서 첫번째 주에 면접을 1개 봤는데 두번째 주에는 면접이 몰려서 6개를 봤어요.
면접 일정이 계속 있다보니 생각보다 체력 소모가 크더라고요. 그래서 며칠 기한을 주고 코딩테스트가 있던 회사들은 미처 응시를 못했어요.
저는 독학을 하다보니 웹개발도 혼자 배우고, 프로젝트도 혼자 하면서 다른 개발자들과의 만남에 늘 갈증이 있었는데요.
면접을 보면서 다른 개발자 분들의 자세나 마인드도 직간접적으로 접하고, 중요시하는 개념들도 정리할 수 있었어요.
저도 회사를 보는 눈이 생기고요. 실제로 면접들을 보고나니 가고싶은 회사 순서가 바뀌었어요.
제가 받았던 질문들을 아래에 생각나는대로 정리해봤습니다. 질문을 여러번 받은 것은 별표(★)했어요.
답변을 잘 한것도 못한 것도 있어요.
그런데 면접으로 계속 피드백 받고 공부하면서 하다보니 실력이 늘더라고요ㅎㅎ 면접 많이 보시는 것 추천합니다!
참고로 저의 주 기술스택은 React, Redux, Sass, Firebase입니다.
웹개발 관련
- 본인의 개발 스타일은 어떠한가?
- 클린 아키텍처를 아는가?
- 프록시에 대해 아는대로 설명해달라.
- TypeScript에 대해 아는대로 설명해달라. ★
- Promise에 대해 설명해달라.
- ES6에 새로 생긴 것을 아는대로 말해달라.
- CSR(Client Side Rendering)과 SSR(Server Side Rendering)의 차이가 무엇인가?
- undefined, null, undeclared를 비교해달라.
- undeclared를 효과적으로 구분할 수 있는 방법이 있는가?
- 브라우저 렌더링 과정을 설명해달라.
- 클로저에 대해 설명해달라. ★
- 개발자로서 목표가 무엇인가? 5년, 10년 후에 목표가 무엇인가?
- 우리 회사에서 기대하는 것이 무엇인가?
- 어떤 개발자들과 함께 일하고 싶은가?
- 소프트웨어 개발시 가장 중요하다고 생각하는 게 무엇인가? ★
- 개발시 가장 도움이 많이 된 툴 세 가지를 말해달라.
기술스택 관련
- React를 사용한 이유가 무엇인가? ★
- React의 원리, 특징, 장단점이 무엇인가? ★
- SPA(Single Page Application), Virtual DOM에 대해 자세히 설명해달라. ★
- React의 Class와 Hooks의 차이를 설명해달라.
- Props, State에 대해 설명해달라.
- Props가 컴포넌트간에 전달받는 것이라고 했는데 자식에서 부모로도 전달할 수 있는가?
- React에서 state의 불변성을 유지하라는 말이 있는데 이에 대해 설명해달라.
- Redux에 대해 설명해달라. ★
- Flux 디자인 패턴을 아는가? (Redux)
- Redux-thunk를 사용한 이유가 무엇인가? Redux-thunk의 작동원리에 대해 설명해달라. Redux-saga도 아는가?
- Sass를 사용한 이유가 무엇인가? CSS와 Sass를 비교해달라.
포트폴리오 프로젝트 관련
- 프로젝트에 대해 설명해달라. 프로젝트에서 중요시한 부분을 설명해달라.
- 프로젝트에서 React의 UI 컴포넌트를 어떻게 설계했는가?
- 성능을 최적화한 방법에 대해 설명해달라. (리드미 관련) ★
- Firebase에서 구현한 "실시간 좋아요"를 다른 사용자가 동시에 클릭하는 경우 어떻게 하는가?
- Firebase의 Distributed counters의 작동원리가 무엇인가?
- Firebase에서 실시간 데이터를 연결하는 방식이 무엇인지 아는가?
- 프로젝트를 운영하면서 어려웠던 점이 무엇인가?
- 리드미 개선사항에 Intersection Observer를 이용해서 무한스크롤 하는게 있는데 어떻게 구현하려고 하는가?
- 프로젝트에서 가장 자신있는 코드가 무엇인가?
- 개발을 하다보면 작지만 시간이 많이 걸리는 경우가 있다. 그런게 있는가?
- Portal에 대해 설명해달라. (Event Bubbling 관련)
개인 이력 관련
- 웹개발을 독학으로 한 이유가 무엇인가?
- 스스로 개발을 잘 한다고 생각하는가? 6개월간 충분히 배웠다고 생각하는가?
- 로봇 개발을 통해 배운 것이 있는가?
- 로봇 자율주행 알고리즘을 설명해달라. 그때 썼던 라이브러리 이름이 어떻게 되는가?
- 석사 졸업논문에 대해 설명해달라. 왜 MANOVA 테스트를 사용했는가?
- 대학교 때(기계공학 전공) 기억에 남는 수업 두 가지가 무엇인가?
- 신입 개발자로서 나이가 더 어린 사람들과도 같이 잘 할 수 있겠는가?
내가 공통으로 한 질문과 받은 답변
소프트웨어 개발시 가장 중요하게 생각하는 것이 무엇인가요?
- 아키텍쳐
- 누구나 이해할수 있는 코드
- 안정성
- 같은 입력을 넣었을 때 항상 같은 출력이 나오는 것
회사마다 중요하게 보는 것이 있고 그에 따라 면접의 질문과 분위기가 다르다고 느꼈습니다.
인성 및 컬처핏 / 기본적인 컴퓨터 공학 소양과 철학(?) / 구현 능력 자체를 중요시하기도 하고 어떤 곳은 소통이 잘 되는지를 중요시해서 오랜 시간동안 여러 주제로 얘기하기도 했습니다.
개발과 그다지 관련이 없는 제 이력에도(로봇 개발, 석사 논문, 주식) 관심이 많고 상세한 질문을 하셨다는 것이 특이했어요.
느낀점 정리
- 경력에 크게 구애받지 말자.
저는 프로그래머스, 원티드를 통해서 지원했어요. 신입이라고 명시된 곳은 극히 드물고 주로 경력무관, 1-3년차를 지원했는데 신입임에도 서류통과가 잘 된 편인거 같아요. 그 중에 경력 5년 이상도 있었어요. 물론 그 후에 검증과정이 있겠지요. - 생각보다 자세하게 보신다.
와, 그것까지 보셨다고? 종종 놀라곤 했어요. 깃헙 코드, 리드미, 이력서, 블로그 가릴것 없이 제가 제출한 자료를 생각보다 꼼꼼하게 보시고 거기서 피드백과 질문을 받았어요. 특히 서류통과 메일에서 제 코드에서 인상깊었던 부분을 나열해주신 곳, 프로젝트 사이트의 개인정보 처리방침을 읽고 질문하셨던 곳이 기억에 남아요. - 사용하는 기술의 기본적인 원리 및 특징, 장단점을 이해하고 있는가.
기술면접을 한 문장으로 표현한다면 저는 이렇게 정리할 수 있을것 같아요. 그동안 구현하고 가져다 쓰는데에만 급급하지 않았나 돌아보게 됐고 그래서 앞으로는 블로그 정리를 잘 하기로 마음 먹었어요ㅎㅎ 글로 써보고 발화 연습을 해본 것과 그렇지 않은 것은 verbalizing에 차이가 있더라고요.
돌아보면 면접은 "나"를 주제로 토론하는 느낌. 부담스러울수도 있지만 황송하기도 하죠. 누군가 나에게 관심을 갖고 집중적으로 질문을 받는 것은 흔치 않은 경험이니까요.
계속 혼자서 공부하고 작업하다보니 제가 잘하고 있는지, 어느 정도인지 파악이 안돼서 답답했는데요. 저는 채용 과정을 겪으면서 제 생각보다 긍정적인 피드백도 받고 앞으로의 방향성도 잡을 수 있어서 오히려 자신감을 얻을 수 있었어요. 이 글을 읽으시는 분이라면 저같은 신입 개발자가 아닐까 짐작하는데, 화이팅입니다! :)
'프론트엔드 개발 > 커리어' 카테고리의 다른 글
프론트엔드 개발과 디자인 사이 - UX 엔지니어 (0) | 2022.10.14 |
---|---|
02. 프론트엔드 신입 개발자 취업, 포트폴리오 구상부터 (1) | 2020.12.18 |
01. 프론트엔드 입문, 4개월 간의 여정 (2) | 2020.12.17 |
댓글