약 4년 전

또 한번의 이직

1년을 갓 넘기고 잘 다니던 회사를 퇴사하였다. 프론트엔드 기술을 무시하는 정도가 심했고 마지막 즈음엔 프론트엔드 일이 거의 없다고 백엔드 개발을 진행했는데 그 기술의 수준이나 배움이 나 자신을 풀스택 개발자라고 주장하기엔 턱없이 모자랐다. 새로 개발하는 제품도 미래가 밝아 보이지 않았다.

절이 싫으면 중이 떠나야한다. by 김요한

나 자신을 PR 해보자

나는 현재 22살이고 병역은 면제로 해결되었다. 약 2년 4개월 가량 프론트엔드 개발을 해왔으며 SPA의 개념과 웹에 대한 전반적인 이해도가 높다. Javascript 기술 스택으로 클라이언트 서버 쪽 구분 없이 전부 개발할 수 있다. 사실 말로 설명하면 이 사람의 기술 수준이 어느정도인지 내가 시장에서 어느정도의 평가를 받을지 감이 안온다. 로켓펀치, 원티드 등에 올라와 있는 프론트엔드 개발자의 자격요건과 우대사항을 테이블로 정리하여 내가 어느정도 수준인지 알아보자.

프론트엔드 자격요건 및 우대사항

  • [x] 프론트엔드 개발 경력 2년 이상 혹은 그에 준하는 실력을 갖추신 분
  • [x] TypeScript에 대한 깊은 이해가 있으신 분, GraphQL과 Apollo를 다루어 보신 분
  • [x] 웹이 아닌 환경에서 자바스크립트를 사용해본적이 있으신 분
  • [x] HTML, SCSS에 대한 이해가 있으신 분
  • [x] React, Vue, Angular를 사용한 SPA 개발 경험이 있으신 분
  • [x] 자신의 지식을 팀원들에게 전달할 수 있는 원활한 의사소통 능력을 가지신 분
  • [x] 웹 성능 측정에 능숙하고 렌더링 성능 개선을 위해 reflow-repaint 등을 이해하고 DOM 조작에 익숙하신 분
  • [x] Webpack/Bable/Rollup/Metro 등 JS bundling이나 JS AST를 이해하고 관련 작업에 익숙하신 분
  • [x] 오픈소스에 커밋을 한 경험이 있으신 분.
  • [x] 개발 만큼이나 문서화도 중요하다고 생각하시는 분
  • [ ] 자신의 프로젝트에 TDD를 적용하여 활용할 수 있는 분
  • [ ] SSR을 이해하고 사용해본 적이 있는 분
  • [x] Flux 패턴을 이해하고 Redux나 Vuex 등을 활용한 경험
  • [x] 영문으로된 개발문서, 원문 등을 독해할 수 있는 능력
  • [x] Rest api에 대한 이해
  • [x] Sass, Less, Scss와 같은 CSS pre-processor
  • [x] Bootstrap, Maetirlize같은 CSS 프레임웍 활용
  • [x] 지식 공유를 위해 블로그를 운영하시는 분

18개중에 2개를 체크하지 못했다. SSR과 TDD이다. 까다로운 면접관을 만난다면 체크한 15가지보다 못한 2가지에 관해 질문할 것이다. 그 때 나는 어떻게 대답을 해야할까?

왜 SSR을 사용하지 않았나요?

내가 한 대부분의 프로젝트는 SEO 검색 최적화가 필요하지 않았다. 그래서 당연하게 리스크를 감당 해야할 SSR을 선택하지 않았다. SEO가 중요한 회사 소개 페이지를 만들 때도 서버를 올리기 귀찮아서 정적 사이트 생성기인 Gatsby를 사용하였다. 앞으로도 굳이 SEO와 초기 속도가 중요한 프로젝트라면 SSR을 사용하지 않을것이다. 하지만 둘 중 하나라도 가져가야 한다면 난 주저없이 SSR을 사용할 것이다. 어려워서 또는 몰라서 사용하지 않은 것이 아니라 필요하지 않기 때문에 사용하지 않은 것이다.

왜 TDD를 적용하지 않았나요?

프론트엔드는 백엔드와 달리 항상 바뀐다. 처음부터 설계를 잡고 그대로 진행한다면 TDD를 적용하지 못할 이유가 없다. 하지만 디자이너와 현업에 있는 마케터 그리고 실무자들에게 다양한 피드백을 받다보면 항상 화면이 바뀌고 설계가 바뀐다. Request와 Response만 신경쓰면 되는 백엔드와 달리 수 없이 많은 화면이 어떻게 렌더링이 되어야 하는지 돔의 구조를 어디까지 체크할지 등 생각해야할 것이 너무 많다. 그래서 비지니스 로직을 짜는 시간보다 테스트를 짜는 시간이 더 길어질 것이다. 그래서 난 아직도 프론트엔드에 TDD를 적용해야할지 의심스럽다.

이 외에 나에 대한 소개는 면접에서 받는 질문을 통해 대신할 수 있을것 같다. 정리를 해보니 상당히 만족스럽다. 나 꽤 잘하는 듯? 이제 내가 바라는 회사에 대하여 정리하여 보자.

새로 갈 회사에게 바라는 점

  1. 나이로 무시하지 않는 회사
  2. 학력으로 무시하지 않는 회사
  3. 성별로 차별하지 않는 회사
  4. 성공한 또는 성공할 예정인 또는 사람을 끌어당기는 매력이 있는 제품을 가진 회사
  5. 사내정치가 없는 회사
  6. 개발장비에 돈을 아끼지 않는 회사
  7. 상시 근로자 수 5인 이상인 회사
  8. 연차 사용 자유
  9. 탄력 근무제 또는 재택 근무제

정리를 해보니 9가지 정도 되는 것 같다. 위 조건을 지키지 못하는 회사가 존재할 수 있느냐? 라고 생각할 수도 있지만 정말 많다. 세상은 넓고 이상한 회사는 많다. 난 이 9개 중에 4번을 제일 중점으로 두었다. 개발자로써 개발의 깊이도 물론 중요하지만 지금의 나에겐 제품을 발전시키고 이해할 줄 아는 능력이 더 중요하다고 생각했다.

면접을 보았던 회사들

위의 9가지 조건을 만족하는 회사를 찾기가 꽤 어려웠다. 그래서 찾고 찾아낸 끝에 5개의 회사에 지원했다.

B.M 스타트업

배달 업계에서 1위를 달린다는 그곳이다. 코딩 문제는 잘 풀었는데 자기소개서를 쓰기 너무 귀찮아서 고등학교 졸업 직후 썼던 자소서를 그대로 냈다. 당연히 탈락이었다.

H 스타트업

스타트업중에서 이름있는 곳 중 하나인 이곳은 익명 영상 채팅 서비스로 대단한 인기를 끌었다. 코딩 문제를 꽤 잘풀었는데 탈락했다. 왜지? 너무 오래 전이라 기억이 잘 나지 않는다.

B 스타트업

마케팅으로 굉장히 유명한 스타트업이다. 순도 100% 마케팅 회사라 봐도 무방한데 빠른 시장 선점을 위해 개발 인력을 꾸리고 있었다. 면접을 가서 HR 담당자와 PM과 한시간 가량 꽤 재미있는 얘기를 나눴다. 붙을 줄 알았지만 결과는 탈락이었다. 아무래도 이 기업은 기술보단 빠른 출시와 효율을 선호 하였고 난 그에 반대되는 성향을 가지고 있었던 탓인 듯 하다.

T 스타트업

간편 송금 서비스로 유명한 곳이다. 정확히 지원한지 4분만에 서류 탈락이라고 연락이 왔다. 그래서 "아 난 4분이면 끝날 이력서를 가지고 있구나"라고 절실히 깨닫고 이력서를 다 지우고 처음부터 다시 작성하였다.

Class101


온라인 취미 클래스 플랫폼 "세상 사람들이 자신이 사랑하는 일을 하면서 살 수 있게 만들어주자"

어렸을 때 저희는 항상 고민했습니다. '나중에 뭐먹고 살지?' , '나중에 뭐해야하지?' , '이게 돈이될까?' , '야, 그거 하면서 어떻게 먹고 살려고해? 얼릉 공부해.' 등등...

그래서 저희는 이렇게 생각했습니다.

'그냥 자기가 하고싶고 사랑하는 일을 하면서 살면 안되나?'

그렇습니다. 저희가 만들고 싶은 세상은 모든 사람들이 자신이 사랑하는 일을 하면서 살 수 있는 세상입니다. 어떻게 그런 세상을 만들 수 있을까요? 저희가 생각한 방법은 자신이 사랑하는 일을 다른 사람들에게 가르치면서 살 수 있게 만들어 드리고자 합니다. 자신이 사랑하는 일을 다른 사람의 취미로 전파할 수 있다면 그렇게 알려주는 과정에서 충분한 수익이 생기고, 더 많은 사람들이 자신이 살아하는 일을 함께 하는 기쁨도 얻을 수 있다고 생각합니다.


제품의 설명 중 일부를 가져왔다. 회사의 비전이 한 눈에 들어왔고 그에 대한 이상향 또한 마음에 들었다.

"세상 사람들이 자신이 사랑하는 일을 하면서 살 수 있게 만들어주자" 라는 말이 너무 좋았다.

그래서 별 고민 없이 합류를 결정했다.

이번에 이직을 하면서 깨달은 것은 아래 2가지다.

  1. 학력보단 경력, 경력보단 실력이다.
  2. 개발자 본인도 기업을 평가할 수 있어야 한다.

탈출은 능지순

항상 자신을 되돌아보고 정진하는 사람이 될 수 있도록 노력하자.