플랫폼
플랫폼은 로켓펀치와 링크드인을 사용했다. 로켓펀치의 경우 지원서를 내고 나면 몇 일이내에 답변이 올 지 대략 알 수 있고 프로세스를 한눈에 보기 쉬워 선택했다. 링크드인도 사실 간단한 편이긴 한데, 답변이 잘 오지 않는 경우가 많았다.
웹 프론트엔드 개발자의 경우 합격 프로세스는 보통 다음과 같았다.
일반적인 채용 프로세스
이력서 -> 사전과제 -> 기술면접 -> 임원면접(대표이사 혹은 CTO) -> 최종합격
이렇게 되는데 가장 기억에 남는 곳은 기술면접만 2차까지 간 경우도 있다.
- 케바케라서 급한 곳같은 경우는 이력서를 넣은 다음날 임원면접을 본 경우도 있다.
- 사전과제는 없는곳도 꽤 많다. 어차피 기술면접에서 다 걸러진다.
- 사전과제는 코드 퀄리티는 그닥 신경을 쓰는 것 같진 않고 지원자를 걸러내기 위함인듯 하다.
이력서
부끄러움을 무릅쓰고 제 이력서를 공개합니다. 내 이력서
어차피 많이 방문하는 사이트도 아니기에..
사실 위의 것은 이력서이고 포트폴리오가 페이지가 따로 추가로 있긴 하다. 그리고 위 이력서도 그대로 쓴 게 아니라 필요한 부분만 잘라서 다시 만들어서 내보내곤 했다. 이력서는 코칭을 받는게 좋다. 되도록 여러 사람에게.. 하지만 나같은 경우는 인맥고자이고 특히나 내 주변 지인들에게 물어보기는 좀 그렇다. 이직한다고 광고하는것도 아니고…
그래서 나는 숨고를 이용했는데 한번 이용하는데 요금이 비싼 대신 한번 코칭을 받고나면 그래도 가야하는 방향을 알게 되므로 아예 이직이 생처음이라면 이용하는 것도 나쁘지 않다.
요즘 또 코로나로 인해 IT업계가 전반적으로 호황이라 경력 만 3년의 프로그래머라면 최소 서류합격은 하는 것 같다. 한 15여곳을 서류지원했고 10여곳을 서류합격했다.
- 주로 서류를 지원한곳은 철저하게 내 흥미 위주 (여행, 헬스케어, 금융)와 적합한 스택위주였다.
- 토스나 당근마켓, 클래스101 같이 핫한 곳은 서류광탈했다. 내 이력서에 문제가 있나보다.
- 이력서가 면접에서 굉장히 중요하므로 블러핑하지말고 사실만 적도록 하자. 괜히 써놨다가 제대로 답변을 못하게 되면 안쓰니만 못한 효과가 나온다.
사전과제
사전과제를 주는 곳도 있는데 이게 일정관리가 굉장히 빡세다. 특히나 여러개를 동시에 합격한 경우라면 2~3개를 동시에 만들어야 하는 불상사가 생긴다. 총 사전과제는 5개 정도를 만든것 같은데, 그 중 한 개의 예시를 보여주면 아래와 같다.
A사 (헬스케어 서비스 )
Json 데이터를 제공해주고 이를 활용하여 데이터를 시각화하는 웹페이지 구현 (제한시간 24시간)
테이블 Component 페이지 만들기
- Data Table 구현
- 페이지네이션 구현
- 검색기능 구현
제공된 데이터를 사용해서 차트, 그래프 만들기
- 원형, 선형 그래프
다음과 같은 결과물로 합격했다 사실 걸린시간은 총 3시간 정도다.
이 밖에도 JWT 토큰을 사용하여 로그인 로그아웃 페이지 구현, React로 앨범페이지 구현하기 등등이 있다.
기술면접(코딩테스트)
사실 여기에서 승패가 걸린다고 봐야 한다. 대면 면접을 하는 경우도 있고, 코로나로 인해 구글Meet으로 하는 경우도 있었다. 코로나 시대임에도 불구하고 대면면접을 진행하는 곳이 꽤 많았다.
면접을 준비하는 사람이라면 최소한 Web frontend 개발자 질문 100가지 정도는 검색해서 학습해서 가자.
아래는 주요 기억나는 면접 질문들이다. 별표는 빈도수를 의미한다.
JS, CSS, HTML 관련
- 클로저의 개념과 사용하는 이유 ★★★★★
- 호이스팅의 개념 ★★★★★
- Array 함수 (reduce, foreach, every...) ★★★★
- Event Delegation과 막는방법 ★★★★
- 시맨틱 웹에 대한 이해 ★★★★
- 화살표함수와 this 바인딩 ★★★
- CSS 방법론(BEM) ★★★
- Webpack 설정 경험 ★★
- call, apply, bind ★★
- CommonJs, RequireJS ★
React 관련
- 왜 React를 쓰는가? ★★★★★★
- React 라이프사이클 ★★★★★
- Jest, Enzyme 등 테스트코드 작성 경험과 사용하는 이유 ★★★★★
- Redux, Mobx등 사용경험과 사용하는 이유 ★★★★
- Class형, 함수형(Hook) 차이 ★★★
- Virtual DOM의 사용이유와 장점 ★★★
- Package-lock.json이란? ★
프론트엔드 업무 전반
- Git 사용경험과 Git으로 프로젝트 관리 방법 ★★★★★
- XSS, CSRF의 개념과 방어방법 ★★★★
- SessionStorage,LocalStorage, Cookie의 차이점 ★★★
- 디자이너와 협업방법 툴(Zeplin) ★★★★
- SSR(next.js)를 사용해본 경험과 장점 ★★★
- 성능 최적화 경험 ★★
임원면접
임원면접까지 왔으면 이제 합격가능성은 80% 이상이다. 기술면접은 통과했기 때문에 기술적인 부분에 대해서는 거의 물어보지 않는다. 이제 이 사람이 조직에 잘 융화될 수 있는 사람인지, 지금 당장 회사에 필요한 인재인지 알아보는 면접이다. 그리고 여기에서 바로 연봉을 제시하는 경우도 있고, 후에 인사팀과 임원이 회의 한 후에 Offer letter를 보내기도 한다.
기억나는 질문들이다.
- 왜 우리 회사에 지원했는가? 가장 큰 지원동기가 무엇인가?
- 왜 이직을 하고자 하는가? (지금까지 본 임원면접에서 전부 나왔다.)
- 회사에 들어온다면 어떤 것을 배워가고 싶은가?
- 당신의 목표가 무엇인가?
- 워라밸이 지원자에게 얼마나 중요한가?
- 자신의 장단점을 알려달라.
- 스트레스는 어떻게 푸는가?
다른것보다 이직을 하는 이유에 관해서는 면접을 본 회사 전부 물어보았다. 나의 경우 경력이 3년 정도 되었기 때문에 많은 태클은 없었다. 하지만 경력이 1년 미만이거나 짧다면 회사 입장에서는 고민할 수 있는 여지가 있을지도 모른다.
내가 선택한 회사
내가 선택한 곳은 TravelFlan이라는 회사이다. 정말 막판까지 고심하다가 선택했다.
내가 선택한 회사 기준
- 면접관(사수) : 면접관의 수준만 보면 그 회사의 95%를 알 수 있다. 면접관의 연차, 면접관의 질문 수준, 지원자를 대하는 태도에서 이미 판가름이 난다. 질문의 수준과 역질문에서 그 깊이를 헤아릴 수 없는 면접관이 있다. 하지만 그와 반대로 나보다 수준이 낮거나, 프로그래머를 뽑는데 면접관이 없어서 급해서 나온 경우도 있었다. 면접관에게서 느껴지는 포스에서 아! 이 회사에 들어가면 저분에게서 배울 수 있겠구나 하고 감탄하게 된다.
- 나의 성장성 : 나는 이제 막 발을 내딛은 병아리다. 그래서 나는 내가 가지고 있지 않은 것을 배울 수 있는 회사에 가고 싶었다. 나의 경우는 협업 & 코드 리뷰 & 테스팅 기법에 대한 배움이 필요했고 이를 잘 배울수 있을 법한 회사를 선택했다.
- 복지가 좋은 회사 : 복지가 좋은 회사를 선택하려고 했다. 복지가 좋다는 건 직원에 대해 배려가 있고 그만큼 직원을 생각한다는 뜻이기도 하다.
- 기타 : 연봉, 지리 등은 역시 굉장히 중요하지만 나에게 있어서 어마어마하게 중요한 부분은 아니었다. 나는 배움과 성장에 목마른 상태기 때문에 어느 정도 타협이 가능했다.