티스토리 뷰
1. 개발자 취업 또는 이직 준비 방법
(합격 이력서로 살펴보는 이력서 작성법)
[ 회사 조사 ]
가장 먼저 우리가 회사를 조사해야 하는 이유는 회사가 요구하는 역량을 증명해야 하기 때문이다. 따라서 공고를 분석하고 회사가 요구하는 역량에 맞추어 이력서나 면접 등을 준비할 필요가 있다. 회사를 조사할 때 개인적으로 참고하는 사이트들이 있는데, 각각 다음과 같다.
- 테크컴퍼니즈 코리아: 대표 IT 기업과 유니콘 등 지원할 회사 목록 등을 위해 참고함
- 잡플래닛: 회사의 평점과 최근 분위기 및 코딩테스트, 면접 기출 문제 등을 위해 참고함
- 원티드 인사이트: 연봉 정보가 잘 알려지지 않은 회사들에 대해, 연봉 레인지 파악 등을 위해 참고함
- 복지리: 회사들의 복지들을 참고함
- 기타 등등
참고로 여기서 회사에 대한 조사는 단순히 기술 스택이나 요구하는 역량 만을 의미하는 것이 아니다. 회사가 나아가고자 하는 방향성과 풀고자 하는 비즈니스 등에 대해서도 진심 어린 관심으로 분석할 필요가 있다. 회사는 결국 회사가 풀고자 하는 문제를 풀어줄 수 있는 지원자를 원한다. 따라서 회사의 비즈니스에 대해 이해하는 것은 매우 중요하다.
지원하고자 하는 회사 목록을 분석하고 정리했으면, 회사들을 1~3티어로 분류하고 저티어 회사들부터 차례대로 시도하는 것이다. 이를 통해 내가 현재 어느 정도 수준의 회사까지 합격할 수 있고, 탈락한 회사들로부터 어디를 보완해야 하는지에 대한 피드백을 받아 개선할 수 있다.
또한 여기서 하나 중요한 것은 우리 역시도 회사를 선택하는 입장이라는 것이다. 회사와 개인을 결코 갑과 을의 관계로 바라볼 필요가 없으며, 보다 당당한 자세로 취업에 임할 필요가 있다.
[ 이력서 작성하기 ]
이력서의 기본
넷플릭스 테크 블로그에 넷플릭스의 90초라는 글이 있는데, 90초 내에 넷플릭스에서 시청할 컨텐츠를 제시하지 못하면 사용자가 이탈한다는 것이다.
이력서도 마찬가지이다. 이번 2024년 팀네이버 신입 공채 공고를 자소서 닷컴에서 살펴보니, 공고 조회만 약 15만회, 즐겨찾기만 약 7500 회이다. 의심할 여지 없이 엄청나게 많은 지원자가 있었을텐데, 면접관이 모든 이력서를 꼼꼼하게 오랜 시간 이력서를 검토하는 것은 상당히 어려울 것이다. 실제로 이력서를 검토하는 면접관들의 증언에 따르면, 이력서의 합/불합 여부는 5~10 분 내에 결정된다고 한다.
따라서 우리는 아주 짧은 시간 내에 “뛰어난 개발자임”을 증명해야 한다. 이를 위해서는 역량을 중심으로 하는 이력서와 그에 대한 가독성이 핵심이다. 이러한 부분에 중점을 두고 이력서를 작성해야 한다.
자기소개
당연하게도 이력서의 시작은 간단한 자기소개이다. 이때 본인의 강점과 능력 및 노력 등을 설명하기 위해 깃허브나 블로그 등의 링크를 반드시 첨부해주는 것이 좋다. 실제로 많은 시간 커밋한 코드나 공부했던 블로그 포스팅을 살펴보는데 소요하므로, 평소에 이를 꾸준히 관리해주는 것이 중요하다.
이후에는 “내가 어떤 개발자인지”를 간단하게 설명할 필요가 있다. 나의 경우에는 다음의 3가지 특징으로 스스로를 설명하였다.
본인에 대한 소개는 듣기좋은 얘기 혹은 이상적인 개발자의 모습을 적는 공간이 아니다. “내가 어떤 개발자인지”를 설명하는 것이므로, 아래의 이력서 내용을 통해 이것들이 증명되어야 한다. 만약 내가 테스트 코드를 좋아하는데 테스트코드와 관련하여 하위 내용에서 증명할 수 없다면, 과감하게 해당 부분을 삭제하고 보다 본인을 어필할 수 있는 내용으로 작성하는 것이 좋다.
스킬셋
면접관의 입장에서 가장 관심있는 부분은 지원자의 역량이다. 따라서 핵심만 간추려서, 이해하기 쉬운 단어들로 역량을 증명해야 한다. 나의 경우에는 먼저 다음과 같이 내가 확실한 강점을 갖는 스킬셋들을 정리해두었다.
스킬셋을 정리할 때는 다음의 두 가지 내용을 고려하였다.
- 부합하지 않는 스킬셋(Python, Node JS 등) 제거하기
- 숙련도가 떨어지는 스킬셋(Elastic Search, K8S 등) 제거하기
회사가 원하는 것은 회사의 스킬셋을 능숙하게 사용하여 개발 할 수 있는 사람이다. 따라서 나의 Python 혹은 Node JS 등의 역량은 관심사가 아니라고 판단하였고, 과감히 원하는 공고에 맞지 않는 내용들은 제거하였다.
또한 스스로 숙련도가 떨어진다고 판단한 스킬셋들도 모두 제거하였다. 업무를 하다 보면 상당히 많은 기술들을 사용하게 된다. Spring 생태계의 기술들부터 시작해서 Redis, Kafka, ElasticSearch, Kubernetes 등 수 많은 기술에 의존하게 되는데, 확실히 알지 못하는 부가 기술들은 모두 제거했다. 그 이유는 내가 제대로 알지도 못할 뿐만 아니라, 적어서 면접에 가더라도 제대로 대답할 지 의문이기 때문이다.
따라서 이러한 부분들은 과감하게 제거하고, 나의 핵심 역량들만 작성하였다.
경력 및 프로젝트
경력 및 프로젝트 부분에서는 내가 진행했던 작업들과 그에 기여한 부분을 작성해주어야 한다. 여기서도 핵심은 나의 역량을 증명하는 것이다. 따라서 “문제”와 “해결” 위주로, 다음의 내용들을 고려하여 작성하는 것이 좋다.
- 구체적인 기술을 명시하기
- 측정된 수치를 작성하기
- 도메인 특수한 용어는 지양하기
다음과 같이 구체적인 기술과 측정된 수치로 경력을 작성하면 면접관에게 보다 관심을 끌 수 있을 뿐만 아니라 신뢰성을 높일 수 있을 것이다.
- 리팩터링 관련
- (X) 리소스를 낭비하던 비효율적인 코드 리팩터링
- (O) 매번 Pattern.compile을 호출하여 50%까지 튀던 CPU 사용율을 10%로 최적화
- 테스트 커버리지 관련
- (X) 테스트 보완, 데드코드 삭제로 통한 컨디션 커버리지 상승
- (O) 테스트 보완, Scavanger 기반 데드코드 삭제로 컨디션 커버리지 상승(43% -> 69%)
또 하나의 중요한 포인트는 특정 도메인에 종속적인 용어를 지양하라는 것이다. 나도 처음에 면접을 볼 때, 우리 만의 용어로 면접관과 소통을 시도했던 경험이 있다. 그랬더니 당연하게도 면접관 분들은 이것에 대해 전혀 감을 잡지 못했고, 나의 역량은 드러내지도 못한 채 어떤 프로젝트인지 설명만 하다가 끝났던 적이 있다.
우리에게는 익숙한 도메인 용어들이 외부인들에게는 익숙하지 않을 것이다. 따라서 면접관의 입장에서 이러한 부분을 고려하여 용어를 풀어서 설명할 필요가 있다. 예를 들어 우리가 진행하는 프로젝트 이름이 “Mango”라면, ”Mango” 라는 이름 보다는 “채팅 애플리케이션” 으로 소통하는 것이 바람직할 것이다.
이러한 방향으로 작성된 나의 이력서 중 일부는 다음과 같다.
대부분의 잘 작성된 이력서들 역시 위의 내용을 담고 있을 것이다. 그래서 나는 나만의 이력서가 갖는 후킹 포인트(Hooking Point)가 있어야 한다고 판단을 했고, 다음의 두 가지를 추가하였다.
- Trouble Shooting
- 회사 생활을 하면서 겪은 장애 또는 버그를 수정한 내용들
- 내가 다양한 문제를 만났어도 해결할 능력이 있음을 증명하고자 했음
- Contribuite
- 회사 생활을 하면서 업무 외적으로 회사 또는 팀에 기여한 내용들
- 내가 팀에 합류하면 다방면에서 긍정적인 기여를 할 수 있음을 증명하고자 했음
스터디 및 세미나
사실 위의 내용까지가 핵심이고, 지금부터는 부가적인 요소들에 해당한다. 여러 가지 부가 요소들 중에서도 중요한 것은 내가 하는 노력들이다. 본인이 했던 스터디나 들었던 세미나 등을 첨부하여 노력하는 개발자라는 인상을 보여주는 것이 좋다. 나의 경우에는 내가 진행했던 외부 활동과 오픈 소스 관련될 활동들을 추가하였다. 이러한 항목들이 없다면 수강했던 교육들이나 세미나 등을 통해 본인의 노력을 어필하도록 하자.
학력 및 자격증 등
그 외에 본인의 학력이나 자격증 등을 마무리에 작성해주면 된다. 해당 내용은 면접관의 입장에서 중요하지 않으므로 핵심만 간추려서 작성하도록 하자.
기타 확인 사항들
- 지나친 링크 연결로 인한 컨텍스트 변경 최소화하기
- 첨부된 링크 연결에 대해 정상 동작 확인하기
- 맞춤법은 기본이므로, 제출 전에 확인하기
- 회사 별로 제출하는 다를 수 있음
지나친 링크 연결은 면접관의 주의를 흩뜨려서 관심을 잃게 만들 수 있다. 따라서 링크는 핵심에만 걸어두고, 본인의 이력서에서 집중이 이탈되지 않도록 해야 한다. 또한 pdf 등을 추출하여 제출하는 경우, 작성된 링크가 정상 동작하지 않을 수 있으므로 반드시 확인 후에 제출하도록 하자.
맞춤법은 기본이다. 동일한 이력서가 있다면, 보다 성의를 보인 맞춤법이 선호되는 것이 당연하다. 따라서 제출 전에 맞춤법은 반드시 검사하고 제출하도록 하자.
앞서 조사한 회사마다 중요시 여기는 가치가 다르다. 따라서 가능하다면 회사 별로 이력서를 최적화하여 제출하도록 하자.
피드백을 통한 수정
- 본인의 이력서를 객관적으로 판단하기 어려움
- 채용자의 입장과 구직자의 입장은 다를 수 밖에 없음
본인이 작성한 이력서는 왜인지 모르게 괜찮아 보인다. 그리고 우리는 구직자의 입장이므로 면접관의 입장에서 이력서를 제대로 평가하기가 어렵다. 따라서 작성된 이력서를 주변의 동료나 선배 개발자 분들께 피드백을 받고 개선하도록 하자.
대부분의 선배 개발자분들은 후배 개발자들이 진심으로 연락하고 도움을 요청하면 받아줄 것이다. 면접을 볼 때에도 회사의 분위기와 준비 방향성 등을 요청하면 기꺼이 들어줄 것이다. 따라서 링크드인이나 트위터 또는 블로그 등을 통해 선배 개발자 분들께 커피챗이나 도움을 요청해보는 것을 추천한다.
참고할만한 공개된 이력서들
- 정원희님 이력서
- 이동욱님 이력서
- F-Lab 합격자 이력서
- 기타 등등
위는 공개적으로 참고할만한 이력서들이며, 이것들 외에도 찾아보면 정말 많은 이력서들이 나온다. 따라서 여러 이력서들을 참고하면서 본인 만의 이력서를 만드는 것이 바람직하다.
[ 회사 지원하기 ]
회사를 지원함에 있어 가장 중요한 것은 지금 바로 지원하는 것이다. 모든 것을 준비하고 지원하겠다는 마음가짐을 절대 가져서는 안된다. 새로운 기술은 우리의 준비 속도보다 빠르게 나오고, 요구되는 역량도 계속해서 발전한다. 또한 우리가 회사를 지원하고 탈락해야만, 내가 현재 회사가 요구하는 수준에 비해 어느 정도 왔는지를 알 수 있다.
따라서 빠르게 지원하고, 탈락하고, 부족한 부분을 보완하는 피드백 사이클이 필요하다. 탈락했다면 탈락한 원인을 분석하고 액션 아이템을 통해 개선할 필요가 있다. 예를 들어 이력서 지원 시에 떨어진다면 이력서 내용을 보완하고, 코딩 테스트에서 떨어진다면 코딩 테스트를 보다 연습하고, 면접에서 떨어진다면 기술적 깊이를 다질 필요가 있는 것이다.
[ 코딩테스트 준비하기 ]
- 빈출 유형들을 파악하고 그것들 위주로 연습하기
- 프로그래밍 언어 일치시키기
코딩테스트는 꾸준히 연습하는 것 밖에 답이 없다. 대신 특정 기간 동안에 유행되는 문제들이 있으므로, 계속해서 지원하고 기출과 빈출 위주로 연습해야 하는 것이 바람직 할 것이다.
또한 일부 본인의 프로그래밍 언어와 알고리즘 언어를 분리시키는 경우가 있는데, 바람직하지 못하다. 프로그래밍 언어와 알고리즘 언어를 일치시켜서 취업 준비와 본인의 성장을 일치(align) 시키는 것이 좋은 것 같다. 성능 등은 알고리즘 등을 나가지 않는 이상 고려 대상이 아니다.
[ 면접 준비하기 ]
일반적으로 면접 질문들은 회사를 가리지 않고 공통되는 경우가 많다. 따라서 지원하고자 하는 회사들의 공통 빈출 질문들을 수집하고 준비해야 한다. 그리고 해당 회사의 맞춤 질문 역시도 준비해야 하는데, 가장 좋은 것은 주변 인맥을 통해 수집하는 것이다. 따라서 평소에 네트워킹을 활발히 하는 것이 좋으며, 그 외에 블로그 검색 및 잡플래닛 등을 통해서도 수집할 수 있을 것이다. 다음은 면접 질문들을 수집한 내용과 그에 맞춰서 답변을 준비했던 것이다.
면접을 보다 보면 공부 범위를 벗어나는 질문들이 나올 수 밖에 없다. 실제로 모르는 것이 나올 때까지 일부러 깊이 물어보기도 한다. 모르는 것이 나올 경우에 어떻게 대처하는지를 보고자 함인데, 모르는 것이 나올 경우 솔직하게 모른다고 답변하는 것이 좋다. 예를 들어 “해당 부분은 제가 미처 공부하지 못한 부분이라 잘 모르겠습니다. 다만, 면접의 합/불합 여부와 무관하게 개인적으로 학습하여 보완하도록 하겠습니다”와 같이 답변할 수 있을 것이다.
면접이 끝나고 중요한 것은 면접에 대한 복기다. 면접이 끝나자 마자 받았던 질문을 정리하고, 생생한 감정을 갖고 재빠르게 회고하는 것이 중요하다. 질문 중에서 답변 못한 내용들은 학습하고, 보충(학습 방향에 대한 피드백)할 필요가 있다. 다음은 지원했던 회사 중 하나의 면접 후에 복기했던 내용이다.
위의 내용은 내가 이직을 준비하면서 많은 글과 영상들 그리고 직접 겪으면서 얻은 노하우들을 정리한 것입니다. 혹시 추가적으로 도움이 될 만한 내용이 있다면 공유해주세요! 많은 분들에게 도움이 되도록 업데이트하도록 하겠습니다:)
'나의 공부방' 카테고리의 다른 글
[IntelliJ] 유용한 인텔리제이 기능 모음(IntelliJ) (2) | 2024.07.30 |
---|---|
[개발서적] 좋은 코드, 나쁜 코드 핵심 내용 정리 및 요약 (4) | 2024.05.28 |
[문화] Project Oxygen, 관리자의 필요성에 대한 구글의 실험(How Google Sold its Engineers on Management) (1) | 2023.11.21 |
[개발서적] 실용주의 프로그래머 핵심 내용 정리 및 요약 (6) | 2023.11.14 |
[Slack] JIRA 티켓 생성 워크플로우(Workflow) 만들기 (2) | 2023.11.07 |