🤕 시작하며
이 글을 작성하기 전에 구글, 벨로그 등에
"프론트엔드 개발자 취업 후기"와 같은 키워드로 검색을 해보았습니다.
제 검색 실력이 미천한 탓도 물론 있겠지만
노출되는 대부분의 게시물들이 2022년 이전에 작성된 것이었음을 확인했습니다.
분명 많은 사람들이 궁금해할만한 키워드일텐데..라고 생각이 들어 글을 작성해봅니다.
저는 최근 채용과 입사날짜가 확정되었고 현재 출근을 위해
여러가지 준비(이사...라든지.. 회사 스택 공부라든지..)를 하고 있는 상태입니다.
제 이력을 짧막하게 작성하면 이렇습니다.
비전공자 남자 20대 부트캠프 수료
그리 흥미로운 정보는 아니겠지만 수료한 부트캠프는 코드스테이츠입니다.
코드스테이츠와 관련된 정보가 궁금하면 아래 회고를 참고해주세요
https://xionwcfm.tistory.com/390
🥲 취준 시작
저는 2022년 9월부터 개발자가 되기 위한 공부를 시작했습니다.
다만 python과 같은 프로그래밍 언어를 해보거나 html로 간단한 마크업을 작성해보는 정도는
2022년 3월 쯤에 경험해보았고
조금 많이 과거로 돌아가보자면 중학생 시절 visual basic 이라는 프로그래밍 툴을 이용해
작성한 프로그램으로 정보올림피아드 대회를 나가보기도 했습니다.
좀 많이 사담이지만 그때 프로그래밍 특화 고등학교 진학을 희망했었는데
떨어지고 일반고로 진학하면서 프로그래밍과도 자연스럽게 멀어지게되었던 기억이 ㅎ;ㅎ;
다시 본론으로 돌아와서 코드스테이츠 부트캠프를 2023년 2월부터 수강하며
5월달 쯤부터는 틈틈이 이력서를 작성하고 여러 채용플랫폼을 통해 지원을 했습니다.
작년 9월부터 자바스크립트 이론, 리액트 이론, 알고리즘 등은 준비한 상태였기에
많이 부족하지만 신입으로 지원해볼만한 실력은 된다고 생각하고 지원했던 것 같습니다.
🧐 구직전략
다른 포지션이 어떤 상황인지는 모르지만 프론트엔드 개발자의 경우에는
기업의 유형에 따라 구직전략도 명확하게 달라져야 한다라고 생각했습니다.
실제로 그런지 확인해보지는 못했습니다만 제 개인적인 편견을 나열해보면 다음과 같습니다
이 아래 평가들은 온전히 제 "편견"이며 실제 사실과 다를 수 있음을 알립니다.
1. 금융권 기업
학벌을 많이 본다는 소문
코딩테스트를 보는 기업이 많음
2. SI / SM
대졸 유무가 중요
정보처리기사 취득 상태가 중요
전자정부프레임워크 등에 익숙한지
3. 네카라쿠배 등 IT 대기업
코딩테스트 비중이 높음
CS 지식 등 컴퓨터공학적인 지식이 요구됨
온보딩에 자원을 쓸 여력이 충분하며 성장가능성이 높은 인재를 원함
4. 자사 솔루션 스타트업
실제 구현 능력을 보는 과제 테스트 비중이 높음
이력서, 포트폴리오의 중요성이 높음
즉시 전력이 될 수 있는 인재를 원함
제 편견이 옳다고 가정하였을 때 구직전략도 달라야한다고 생각했습니다.
물론 모든 능력을 충분히 갖추는 것이 가장 좋겠지만
현실적으로 시간이 한정되어 있는 상태에서는 선택과 집중이 필요하기 때문입니다.
🤨 내가 회사를 고른 기준
우선 위에서 나열한 기업 중 어떤 기업을 타겟팅할지를 결정해야했습니다.
이것도 사담이지만 저는 소거법을 좋아하는데요
그래서 기업을 고를 때에도 소거법을 적용했습니다.
금융권 -> 제 학벌은 경쟁력이 없습니다.
대기업 -> 갈수만 있다면 좋지만 전 빠른 취업을 원합니다.
si/sm -> 이 기업들은 프론트엔드 개발자를 거의 채용하지 않습니다.
따라서 스타트업을 타겟으로 구인구직을 하자는 마음을 먹었습니다.
스타트업은 체계가 안잡혀있는 경우가 많다보니
role이 명확하지 않아 여러 일을 맡을 수도 있다는 게 대표적인 단점으로 알고 있는데
저는 개발과 관련된 업무라면 오히려 role이 명확하지 않은 것을 즐길 자신이 있었습니다.
프론트엔드 개발을 공부하면서 백엔드 개발, 앱 개발에도 자연스럽게 관심이 생겼거든요
(현실은 다를수도 있지만..)
그래서 스타트업을 위주로 지원하기로 했고 가장 중점적으로 본 것은 스택이었습니다.
JQuery , vue, angular와 같은 스택을 사용하는 회사는 지원하지 않았고
TypeScript와 React가 메인스택인 회사를 위주로 지원했어요
이유는 저 두스택이 가장 자신있고 깊이 공부한 스택이기 때문이고
다행히도 대부분의 회사들이 위 스택을 사용하고 있었습니다.
🤬 이게맏냐
이력서를 넣기 시작한 2023년 5월부터 이 글을 쓰는 2023년 9월까지
약 200여개의 기업에 입사지원을 하였습니다.
사람인/점핏 : 79개
원티드 : 100여개
기타 플랫폼, 직접 지원 등 : 10여개
원티드에서 서류 합격한 것은 3건이고
총 서류합격은 6곳이었으니 총 서류합격률은 3.3% 정도인 것 같네요
그래서 이력서를 보편적으로 잘 썼다고는 할 수 없을 것 같습니다.
실제로도 제 이력서는 좋은 평가를 받아본적이 없습니다 ㅎㅎ;;;
어느정도 예상 한 결과 였지만 저도 사람인지라 계속 탈락 메일, 무응답을 받다보니
" 메일 왔네? 이번에도 당연히 떨어졌겠지? "
라고 생각하게 되더라구요
그래서 멘탈적으로 조금 힘들기도 했습니다.
서류합격률을 올리기 위해 이력서를 잘 포장해보자니 그 시간에 공부를 더 하고 싶고
공부를 하자니 내가 내실을 아무리 쌓아도 어차피 날 면접에 부르지도 않는데?
라는 생각이 충돌하더라구요
😞 서류 합격 이후 프로세스
앞서 서술해두었듯 저는 서류합격률이 좋지 않았기 때문에
이력서, 포트폴리오를 어떻게 작성하는게 좋을지와 같은 팁을 드릴수가 없네요..
포트폴리오의 경우에는 원래 notion으로 작성하였지만
부트캠프에서 제공하는 이력서 첨삭 멘토님이 웹으로 구성하는 게 더 좋을 것 같다
라는 의견을 주셔서 웹으로 구현하였습니다.
혹시 제 포트폴리오가 궁금하신 분들은 아래 링크를 참고하세요
https://devxion-blog.vercel.app/
하여튼 서류합격이 된 기업들은 열심히 준비해서 가자.라는 마음으로 임했습니다.
1. 원티드로 서합 -> 페어프로그래밍 면접
첫 면접이었고 면접관과 페어로 소통하며 요구사항을 구현하는 것이 과제였습니다.
타입스크립트 이해도가 많이 요구되는 과제였는데
이당시 타입스크립트 실력이 좋지 못해서 시원하게 면접을 말아먹었습니다.
여담으로 원티드로 지원한 지원자가 얼마나 많은지 여쭤보았었는데
다 읽지도 못할 분량이 매일 들어온다는 답변을 받아서
정말 취업 경쟁이 치열하구나..라고 생각했었습니다.
최종결과 : 1차 면접 탈락
2. 사람인으로 서합 -> 다음 프로세스 참여 x
사내에 개발자가 없는 것을 확인한 후 면접 참여를 포기했습니다.
아무리 회사 규모가 작더라도 나보다 실력있는 사수는 무조건 있어야한다고 생각했기 때문입니다.
최종결과 : 미응시
3. 직접 응시로 서합 -> 과제테스트 -> 직무,인성면접 -> 처우협의
어느정도 작성되어 있는 프로젝트의 문제점을 고치고
요구사항을 구현하는 과제테스트를 수행했습니다.
이후 대면으로 직무, 인성 면접을 수행했고
직무 면접의 경우에는 과제를 기반으로 진행되어서
일반적인 면접 대비 질문은 거의 받지 않았습니다.
지금 와서 돌이켜보면 제가 어느 수준까지 알고있는지를 알아보기 위해
날카로운 꼬리 질문들을 많이 하셨던 것 같고
짧은 대화만으로도 면접관님의 개발 실력이 뛰어난 것이 느껴졌던 기억이 납니다.
그 당시 제가 zod 라이브러리의 생소한 버그를 발견하고 원인을 정확히 파악하진 못했지만
유추하여서 해당 버그로 인한 문제를 해결한 경험을 면접에서 이야기 하였는데
면접관님도 해당 이슈에 대해 이미 알고 있었으며 이러이러한 원인으로 인한 버그다.
라고 설명해주셨던 기억이 나네요
인성 면접의 경우에는 단골 질문들을 많이 받았습니다.
협업 시 갈등 상황이 발생하면 어떻게할지
인생의 가치관이 어떤 것인지
자신의 장점과 단점이 무엇인지
왜 개발자가 되고 싶은지
왜 프론트엔드 개발자가 되고 싶은지
와 같은 질문들을 받았던 기억이 있고 직무 , 인성면접까지는 합격하였지만
처우협의 이후 최종적으로 탈락을 통보받았습니다.
최종결과 : 처우 협의 후 탈락
4. 원티드로 서합 -> 다음 프로세스 참여 x
지원 당시에는 몰랐는데 서합 후 확인해보니
스택이 제가 원하는 방향과 달라서 참여를 포기했습니다.
최종결과 : 미응시
5. 원티드로 서합 -> 코딩테스트 응시
기본적인 개발 소양을 확인하기 위한 코딩테스트를 요구했는데
저는 구직전략을 세운 후 알고리즘을 깔끔하게 포기했기 때문에
큰 기대 없이 응시했습니다.
그래도 단순 구현 문제의 경우 프로그래머스 2레벨 수준까지는 무난히 풀 수 있어서
제가 잘 풀지 못하는 dp, bfs, dfs 류의 문제가 출제되는게 아니라면
충분히 풀 수 있을 것이라고 생각했는데 dp ,bfs 유형의 문제가 출제되었습니다.
후술할 6번 기업에 최종합격한 상태였기에
"아.. 이정도 수준을 원하는구나"라고만 생각하고
풀 수 있는데까지만 풀어 제출했습니다.
최종결과 : 모르는데 아마 떨어질듯
6. 코드십으로 서합 -> 최종합격
코드십은 코드스테이츠 부트캠프를 수료한 인원들을 위한 채용연계 플랫폼입니다.
조만간 서비스 종료될 예정이라고 해서 제 후배 기수분들은 혜택을 보기 힘들지도 모르겠네요
코드십을 통해 지원을 하였고 서류 합격 통보를 받은 뒤
대면으로 직무, 인성 면접을 봤습니다.
지원자들의 역량을 정량적으로 평가하기 위해 어느정도 정해진 질문이 있는 듯 보였습니다.
기억 나는 흐름들만 나열해보면 다음과 같았고 거의 2시간 가량 면접을 진행했습니다.
1. 자기 자신에 대한 자기소개
나이, 코딩을 시작한 계기, 공부 타임라인 정도를 소개
2. 진행한 프로젝트, 포트폴리오에 대한 소개
생각나는대로 말해서 기억이 안남..
대충 성능최적화를 많이 고려하면서 작성했고
그 과정에서 intersectionObserver, requestAnimationFrame 등을 사용했으며
기존에 사용한 기술 대비 이 기술들을 사용했을때엔 어떤 효과가 있는지 설명했음
3. 디자이너와 협업 경험이 있는지
없다.. 왜냐면 없기 때문
4. 디자인 시스템을 알고있는지
디자이너분이 질문을 주셔서 많이 어버버했음
어렴풋이 디자이너들이 생각하는 디자인 시스템과
개발자가 생각하는 디자인 시스템 사이에 약간의 괴리가 있다는 걸 떠올렸기 때문에..
그래서 어..아토믹.. 컴포넌트.. 배리언트.. 디자인토큰 이런식으로 단어만 나열함
5. 애자일 개발방법론을 아는지, 경험해보았는지
부트캠프하면서 해봤는데 소규모 프로젝트여서 효용을 체감하긴 힘들었다.
하지만 규모가 있는 프로젝트를 한다면 유용할거라는 인상을 받았다.
6. 자신들의 서비스를 이용해보았는지 , 프론트엔드로서 피드백할 부분이 있는지
어느정도 이용해보고 가긴했는데 너무 예상 못 한 질문이라서
UX 적인 측면에서 어색하다 생각되는 점을 몇개 짚었음
7. 성향이 어떻게 되는지(개발만 하길 원하냐 , 서비스에도 참여하길 원하냐)
서비스에 참여하는 것도 좋다.
8. 개발 뿐만 아니라 기획에도 참여할 수 있는지
할 수 있다
9. 회사의 스택과 관련하여(회사 스택을 경험해보았는지)
물어보는 스택들이 전부 해본적 없는 스택이여서 해본 적 없다고 함
10. 도전을 즐기는지 / 새로운 환경에 잘 적응할 수 있는지
잘 적응한다고 말하고 싶은데 딱히 근거로 들만한 사건은 없다
-> 대충 군대얘기함
11. 개발자로서 관심있는 산업군이 뭔지
관심있는 산업군은 없고 이것만은 안된다 하는 산업군은 있다.
좋은 걸 찾기보단 싫은것만 피하면 되는 성격이다.
12. 전역 상태 관리는 뭘로 하는지
mobx 빼곤 모두 경험해보았다. 협업에서는 주로 redux를 사용하고
개인 프로젝트에서는 jotai를 선호하는 편이다.
-> jotai가 뭔지? 왜 jotai를 사용하는지?
jotai는 recoil과 비슷하게 아토믹 패턴을 따르는 전역 상태 관리 라이브러리이고
recoil 대비 문법이 간결하며 번들사이즈가 작다는 특징이 있다.
개인적으로 라이브러리 선택을 할 때엔 필요한 기능이 모두 제공된다면
번들사이즈가 작은 라이브러리를 선택하기 때문에 jotai를 사용한다.
13. 협업경험이 있는지
있다
14. 협업하면서 갈등 상황이 있었는지
대충 갈등해결한 이야기
15. 빠르게 변화하는 요구사항에 대응할 수 있는지
프론트엔드 개발자의 소양이라고 생각한다.
대응할 수 있다.
16. 코드 퀄리티에 대한 욕심을 약간 내려놓을 수 있는지
이 문제에 대해 고민을 많이 했었다.
현실적으로 프론트엔드는 빠르게 결과물을 내야하는 경우가 많다고 생각한다.
그래서 코드퀄리티에 대한 고민은 개인프로젝트에서 하고
협업시에는 개발 속도에 중점을 두는 편이다.
17. 리액트와 넥스트의 차이가 뭐라고 생각하는지 / 프로젝트를 한다면 둘중에 뭘 쓸건지
아래에서 자세히 서술
18. 이 산업군에 대한 이해가 있는지
대충 산업군에 대한 이야기
우선 자기소개, 프로젝트 소개에 대해서는 지금까지 면접에선 한번도 시킨적이 없어서
준비한 바가 없다보니 즉석에서 생각나는대로 답변하게 되었습니다.
저는 면접 경험이 적어서 당황했지만
다른 분들의 면접 경험을 들어보니 자기소개, 프로젝트 소개를 요구하는 경우가 많은듯 해요
이부분은 참고하시고 준비해 가면 좋을 것 같습니다.
그 외에 일반적으로 대비하는 기술 면접 질문
호이스팅을 설명할 수 있는지, 클로저가 뭔지와 같은 질문은 거의 받지 않았습니다.
굳이 생각하면 전역 상태 관리 라이브러리에 관한 질문과
리액트, 넥스트의 차이점이 무엇인지 정도인 것 같네요
그외에는 거의 포트폴리오, 프로젝트에 대한 질문이었습니다.
그래서 이부분은 기업마다 차이가 있을 것 같긴 하지만
제 경험으로 미루어 보았을 때 저라면 한정된 시간에 면접을 준비해야하는 경우
이력서 , 포트폴리오, 과제의 내용들을 철저히 숙지해갈 것 같습니다.
면접의 흐름이 전체적으로 스타트업에 대한 이해도가 있는지
같이 일을 할 수 있는 사람인지를 확인한다는 인상을 받았고
기술에만 집중하는 개발자보다 서비스를 만드는 개발자를 원한다고 느꼈습니다.
사담으로 제 전공이 좀..많이 잡탕이라 전공으로 마케팅, 기획을 겉핥기로나마 배우기도 했고
캡스톤 디자인을 하거나 가상의 프로덕트를 만들어본다거나 한 경험이 있어서
기획을 같이 고민하길 원하는것이 제겐 좋게 느껴졌습니다.
마케팅 과목이 전공 중엔 재밌는 편이었거든요
😝 내가 답변한 리액트와 넥스트의 차이
리액트와 넥스트의 차이를 물어보는게 조금 예상치 못한 질문이었는데
React는 UI를 제공하는 라이브러리로 그외 요소는 서드파티 라이브러리로 해결해야하는 것과 달리
next는 프레임워크를 표방하며 UI 이외에도 개발에 필요한 거의 모든것을 제공한다는 차이
를 들어 설명하였고
그러면 프로젝트에서 어떤 것을 사용할 것이냐는 질문에는
next는 SEO , 개발속도 향상, 최적화, 보안 등에 강점이 있지만
모든 기능을 활용하기 위해서는 serverless 형태로 운용하게 되고
이는 프로덕트 규모가 커졌을 때에는 비용으로 돌아온다.
static하게 배포하는 방법도 있지만 그러면 next의 기능들을 포기해야하는 경우가 있다.
꼬리질문 : static 하게 배포하면 어떤 기능을 포기해야하나?
프로젝트를 할 때 app router 환경에서 동적 라우팅 기능을 사용하면 static하게 배포했는데
동적 라우팅을 건 부분이 동작하지 못하는 이슈를 겪었었다.
그외에도 서버리스 함수를 사용하는 기능들을 사용할 수 없다.
반면 리액트는 SEO에 한계가 있지만 정적으로 배포하기 위한 고민이 필요없고
정적 배포는 서버리스 형태로 운용하는 것보다 비용이 적게 발생하기 때문에
간단한 프로젝트, SEO가 중요하지 않은 프로젝트, 트래픽이 많이 발생하는 프로젝트
등을 할 때에는 리액트를 사용하는 것을 고려해볼 것 같고
그 이외에는 next 사용을 고려할 것 같다.
라고 답변했었는데 개인적으로는 제 가치관이 많이 드러난 답변인 것 같아서
여기에도 좀 적어두고 싶었습니다.
😠 여담
위에서 가치관 얘기를 하고 나니 생각난 것인데요
프론트엔드 개발자들은 주로 신기술에 목마른 경우가 많다고 생각합니다.
저도 신기술에 관심이 많은 편이라고 생각하구요
하지만 신기술이라고 항상 장점만 있나? 하면 제 경험으로는 그건 아니었습니다.
그만큼 불안정하고 버그를 발견하기도 쉬웠어요
결국 모두 trade off가 있고 은 탄환은 없구나. 라는 생각이 잡히고 나니
기술을 선택할 때 더욱 "이걸 왜 써야할까? 꼭 써야할까?" 라는 생각을 하게 되더라구요
🙁 마치며
지극히 개인적인 회고이지만 누군가한텐 도움이 될까요?
잘은 모르겠지만 제 경험과 글이 도움이 되었으면 좋겠습니다.
긴 글 읽어주셔서 감사합니다.
'frontend' 카테고리의 다른 글
hotfix branch 전략으로 빠른 버그수정하기 (0) | 2023.09.23 |
---|---|
웹뷰(WebView)란 무엇일까 (0) | 2023.09.13 |
[radix] popover when hover trigger (0) | 2023.08.09 |
Barrel export 패턴으로 깔끔한 import 관리 (0) | 2023.08.06 |
프론트엔드 CORS 에러 핸들링 빠르고 강한 정리 (0) | 2023.07.24 |