salsal
734
2021-01-30 01:52:15 작성 2021-01-30 02:53:37 수정됨
12
9042

2년차 개발자가 이직을 하면서 배우고 느낀점


안녕하세요 okky에서 눈팅을 주로 하는 2년차 개발자입니다.


사이트에 신입분들도 많은 것 같고, 매번 좋은 글만 보고 배우기만 하는 것 같아서 이번에 제가 이직하면서 느끼고 배웠던 점들을 공유하면 좋을 것 같아서 글을 써봅니다.


글 내용의 경우 제가 부족하기도 하고, 개인적인 경험을 기반으로 작성한 내용들이라 도움되는 내용만 골라서 참고만 하시면 될것 같습니다.


글 내용은 지원할 회사를 찾는 것부터, 서류, 코딩테스트, 기술면접, 문화면접 순으로 제가 배웠던 것들을 정리했습니다.


1. 사전 탐색


지원 기준 설정


우선 이력서를 작성하는 일 자체가 매우 리소스가 크게 들어가는 일이기 때문에 지원하는 회사에 대한 기준을 정해놓는 것이 편합니다.


또, 사람이 머리속으로 생각만 하는 것보다는 한번 정리해두면 내 기준에 대해서 명확해지기 때문에 지원할 때 말하기도 쉽고, 나랑 안 맞는 회사를 피할 수 있는 확률이 늘어나게 됩니다.


기준의 경우 잘 떠오르지 않을 수 있지만 현재 있는 회사의 장단점을 떠올려본다던지, 어떤 회사에 들어가고 싶은지를 깊게 고민해보시면 좋을것 같습니다.

저의 경우 아래와 같은 기준이 있었습니다.


개발문화가 좋았으면 좋겠다 ( 코드 리뷰, 애자일 )


서비스 트래픽이 어느정도 나왔으면 좋겠다.

팀 동료들의 실력이 좋았으면 좋겠다. ( 회사 기술 블로그, 컨퍼런스 발표 )

이제 기준이 정해졌으면 지원할 채용 공고를 찾아보면 됩니다.



채용 공고 검색


채용 공고를 매일 찾아보면서 느낀 결과 잡코리아, 사람인 보다는 원티드나 주니어 개발자 채용 공고를 모아놓은 사이트, 회사 채용 사이트 직접 탐색 등을 하는게 좋은 것 같습니다.


도움이 많이 됐던 사이트


원티드 : 원티드에 공고를 올리는 회사들의 경우 채용 공고를 정성스럽게 쓰거나, 좋은 회사들이 많다는 느낌을 받았습니다. ( 제 편견일 수 있습니다. )


주니어 개발자 채용 공고 사이트 : https://github.com/jojoldu/junior-recruit-scheduler 괜찮은 회사들 채용공고를 모아놓은 사이트이고, 이직에 도움이 되는 내용들도 많습니다.


도움이 되지 않았던 사이트


잡코리아, 사람인 : 편견일 수 있지만 이 사이트에 정보를 올리는 회사들은 채용 공고를 대충 쓰고 양질의 회사가 많지 않다는 느낌을 받았습니다.


추가로 원티드, 잡코리아, 사람인 같은 플랫폼에서 채용 공고를 찾았어도, 지원하려는 회사에 채용사이트가 따로 있다면, 회사 채용 사이트를 통해서 지원하시는게 좋을 것 같습니다.


인사 입장에서는 아무래도 회사 채용 사이트에서 공고를 확인하고 지원하는 사람이 좀 더 회사에 관심이 있다고 생각할 수 도 있을 것 같습니다.



채용 공고 및 회사 정보 확인


채용 공고를 찾았으면, 이제 채용 공고와 회사에 대한 구체적인 내용을 살펴보아야 합니다. 


경험상 채용 공고의 모든 내용을 다 만족할 필요는 없지만, 경력조건 같은 경우는 웬만하면 만족하는 것이 좋은 것 같습니다.


만약 저처럼 경력조건이 안되는 공고에 지원하면 광속으로 떨어지는 경험을 하실 수 있게 됩니다. ( 하지만 정말 자신있으시다면 상관 없을 것 같습니다. )


회사 정보의 경우 다방면으로 찾아보고 가는게 좋은 것 같습니다. ( 정보가 많으면 많을수록 채용과정에서 어필할 요소도 많고, 회사를 고르는 데도 유용하니까요 )


회사 사이트, 블라인드, 잡플래닛, 대표 인터뷰, 회사 사람들 블로그, 컨퍼런스 발표 내용을 통해서 회사 문화나 분위기 등을 검토할 수 있고,


기술적인 내용의 경우 해당 회사 팀의 기술블로그 내용, 컨퍼런스 발표 내용 해당 회사 사람의 블로그 내용 등을 참고하면 어느정도는 파악할 수 있습니다.


그렇게 채용공고 및 회사 정보를 파악하고 괜찮은 회사를 찾았다면 이제 서류를 작성하면 됩니다.


2. 서류전형


이력서를 작성하기 전에 먼저 확인해야 할 것은 지원하려는 팀(회사)에서는 어떤 사람을 원하는지 파악해야 된다는 점입니다.



기술적인 내용


기술적인 내용의 경우 채용 공고, 해당 팀의 기술 블로그 글, 해당 팀원이 발표한 컨퍼런스 내용, 해당 팀이 사용하는 기술 스택 등을 사전에 최대한 파악한 뒤 내가 가지고 있는 기술적인 경험들과 비교해서 어필할 부분을 찾아 내야 합니다.


ex) 채용 공고에 적혀진 기술 스택에 대한 경험, 성능 개선, 어려운 문제를 해결한 경험, 자동화 경험, 팀 프로세스를 효율적으로 개선한 일 등


쓸 내용이 잘 생각이 안난다면, 개발을 하면서 어떤 고민들을 했는지 천천히 되돌아보는 것도 좋은 방법입니다. ( 마른 오징어도 짜면 물이 나온다는 말이 있습니다. )


그리고, 성과를 표시하는 것도 중요합니다. 기술적인 문제를 해결한 것도 중요하지만 결국 어떤 성과를 냈는지가 중요하기 때문에 비즈니스적으로 구체적인 수치가 전 후로 얼마나 좋아졌는지 등을 명시하면 더 좋습니다.


또, 성과를 표시하면 암묵적으로 비즈니스를 중요하게 생각하는 개발자라는 것을 어필할 수 있는 장점도 있습니다.



기술 이외의 내용



기술 이외의 내용의 경우 ( 지원동기, 자기소개서 ) 채용공고, 회사의 사이트, 대표나 임원, hr 담당자의 채용과 관련된 인터뷰 및 글, 발표 내용을 찾아보는 것이 좋습니다.


(youtube 및 구글에 회사 이름, 팀 이름으로 검색을 해보세요)


해당 회사는 채용을 어떻게 하려고 하는지를 검색하다보면 대략적으로 어떤 사람을 원하는지 짐작할 수 있습니다.


내용을 찾았다면 해당 내용을 기반으로 자기소개서를 작성하면 됩니다.


ex) 자기개발을 잘하는 사람이 좋다 → 이력서에 자기개발을 꾸준히 한 경험을 기재

ex) 우리 회사는 ~~한 가치를 추구한다 → 이력서에 자신은 ~~한 가치를 추구한다는 것을 어필


주기적인 이력서 업데이트


사실 이력서의 경우 경험에 기반하여 작성할 수 밖에 없기 때문에 평소에 노력하는 것이 중요합니다. 평소에 적극적으로 성과를 내려고 했고, 꾸준하게 발전하려고 노력했다면 쓸 내용이 많을 수 밖에 없고, 반대라면 작성할 것이 없을 수 밖에 없으니까요.


그래서 이력서를 주기적으로 업데이트 하면서 반성의 시간을 가지는 것도 좋을 것 같습니다.


3. 코딩테스트


만약 서류를 작성하고 통과한다면 주로 코딩테스트를 보게 됩니다.


코딩테스트의 경우 알고리즘, 자료구조 이론을 배경으로 문제를 많이 풀어보는게 중요합니다.


알고리즘 이론의 경우 각종 소트(퀵, 머지, n^2 알고리즘들), 이진탐색, BFS, DFS, 다이나믹 프로그래밍, 다익스트라 등까지는 이론을 이해한 다음 작성해보는 것이 좋을 것 같고,


자료구조 이론의 경우 리스트, 스택, 큐, 트리, 해시 등을 알고있으면 좋습니다. ( 코드로 짜보면 더욱 좋습니다. )


문제의 경우 여러 알고리즘 사이트에 가서 문제들을 풀어보시면 좋은데,


제 경험상 백준, 프로그래머스, 해커랭크, leetcode 중에서 leetcode가 문제의 질이 가장 좋았던 것 같습니다.


그리고 알고리즘 문제를 풀 때 주의할 점이 단순히 정답을 맞추는 것이 중요한 것이 아니기 때문에 문제 풀이 후에 얼마나 효율적으로 작성했는지, 코드의 가독성은 좋은지 등을 검토해보는 것이 좋습니다.


4. 기술면접


코딩테스트에 합격하게 되면 이제 기술면접을 보게됩니다.


자기소개


기술면접에서 가장 먼저 자기소개를 하게 됩니다. 자기소개의 경우 지금까지의 이력을 말하면서 내가 가장 자신있고, 어필하고 싶은 내용들을 간략하게 소개하면 됩니다.


가장 자신있고, 어필하고 싶은 내용을 말하는 이유는 제 경험상 자기소개에서 말한 내용을 기반으로 질문이 들어오는 경우가 많았기 때문입니다.


그리고 질문의 경우 보통 한번으로 끝나지 않고 꼬리물기식으로 계속 질문이 들어오기 때문에 자신있는 내용만 말하는 것이 중요합니다.


만약 자기소개와 관련된 질문도 대답을 못하게 되면 면접이 힘들어 질 수 있습니다.


프로젝트 경험


개발자는 프로젝트 경험이 중요하기 때문에 프로젝트를 어떤식으로 진행했는지 물어볼 가능성이 높습니다.


이 때 중요한 점은 서류에서 내가 어필하고 싶은 내용을 구체적으로 써놔야 한다는 점입니다.


서류에서 A 서비스 개발 및 유지보수 이런식으로 써놓았다면 면접관 입장에서는 어떤 질문을 해야할지 감이 안잡히기 때문에 넓은 범위로 질문을 할 수 밖에 없습니다.


만약 넓은 범위로 질문을 받게 되면 고민해보지 않았거나, 모르는 내용을 질문받을 가능성이 높아지기 때문에 면접이 힘들어질 수 있습니다.


반대로 A서비스에서 ~~한 문제가 있었고 이에 대해 ~~한 고민을 했고, ~~기술을 이용하여 ~~한 방법으로 ~~하게 수정해서 결과적으로 ~~한 성과가 있었다 라는 식으로 작성을 하게 되면 면접관이 내가 서술한 내용에 대해서 질문하도록 유도할 수 있습니다.


그래서 최대한 프로젝트 당시에 문제상황, 문제에 대해 고민한 내용, 문제를 해결한 과정, 결과 및 성과 등 자세하게 쓰는 것이 좋습니다. ( 그렇다고 지나치게 상황에 대해 풀어쓰지 말고 핵심만 자세하게 기술해놓는 것이 좋습니다. )


CS


CS관련 지식도 중요하기 때문에 면접관이 물어볼 수 있습니다.


저의 경우 운영체제, 자료구조, 네트워크, DB 관련 아래와 같은 질문들을 많이 받았습니다.


운영체제 질문들 : 스레드, 프로세스, 스케줄링 알고리즘, 캐시 알고리즘, 데드락, 락


자료구조 : 리스트, 스택, 큐, 맵, 해시 ( + 내가 쓰는 언어의 자료구조 구현체들 )


DB : DB 설계 ( 정규화, 비정규화 ) , 트랜잭션 개념, 트랜잭션 ACID, 트랜잭션 propagation, 트랜잭션 locking level, 인덱스 구조


네트워크 : ip, 서브넷, http, https, REST, http/2, tcp udp


보안 : CSRF, CORS, 대칭키, 비대칭키 알고리즘


CS 대답을 못하게 되면 기본이 부족하다는 인상을 줄 수 있어서, 준비를 해놓는 것이 좋습니다.


기타 기술 질문


보통은 이력서에 학습했다고 작성했거나 프로젝트에서 사용해봤다고 써놓은 기술들을 질문합니다.


여기서도 중요한 점이 이력서에 잘 모르는 기술을 작성해놓았다면 면접이 매우 힘들 수 있습니다.


질문이 한번으로 끝나는 것이 아니라 꼬리물기식으로 계속 진행되기 때문에 자신있는 기술들만 이력서에 적어놓는 것이 중요합니다.


라이브코딩


면접 현장에서 라이브 코딩을 진행할 수도 있습니다.


라이브 코딩의 경우 문제를 풀어내는 것도 중요하지만 면접관과 소통하는 것이 매우 중요합니다.


왜냐하면 라이브 코딩에서 문제를 풀어내는 능력뿐만 아니라 문제를 풀어나가는 과정을 보면서 평소에 일을 어떻게 하는지를 보는 의미도 있기 때문입니다.


그래서 문제를 받고나서 바로 문제를 풀지 말고, 고민도 하고 궁금한 점을 면접관에게 물어본 뒤에 문제를 풀어가는 것이 좋습니다.


그리고 문제를 만약 잘 못푼다면 면접관이 힌트를 줄 수 있는데 이 때 면접관의 힌트를 절대 무시해서는 안됩니다.


만약 면접관의 힌트를 무시하고 문제도 풀지 못하게 된다면 문제 해결 능력도 없는데, 남의 말도 잘 듣지 않는 사람이라는 오해를 받을 수 있습니다.


그래서 문제가 어렵더라도 최대한 면접관과 소통을 하면서 진행하는 것이 좋습니다. ( 최대한 협업 가능한 인재라는 것을 어필 )


마지막 질문


면접이 끝나고 나면 질문할 시간이 주어지는데 여기서 반드시 기술적으로 여러가지를 질문해야 합니다.


보통 질문을 한다는 의미는 내가 이것에 관심이 있다는 의미이기 때문에 만약 아무런 질문을 하지 않는다면 면접관들은 이 사람이 회사의 기술적인 내용에 대해서 아무런 관심이 없다고 생각할 가능성이 높습니다.


또, 면접은 회사가 지원자를 검증하는 자리이기도 하지만, 지원자가 회사를 검증하는 자리이기도 합니다.


그래서 질문을 할 내용이 생각나지 않을 수 있지만 최대한 회사에 대한 궁금한 점을 질문해야 합니다.


아래는 제가 질문한 내용들입니다.


팀에서는 코드리뷰를 하고 있나요? 있다면 어떤식으로 진행하고 있나요?

협업이 잘 이루어지기 위해서 어떤 제도들을 시행하고 있나요? 예를 들어서 스크럼이나 칸반같은 것들이여

팀에서는 온보딩 절차가 어떻게 되나요?

팀에 현재 가장 이슈되고 있는 기술적인 내용은 어떤것들이 있나요?

팀의 1년뒤 목표는 어떤것인가요?

일이 바쁘지 않으면 하루정도는 컨퍼런스에 참여해도 괜찮을까요?


이런식으로 평소에 중요하게 생각하시는 것들이나 궁금한 점들을 질문하시면 좋습니다.


5. 문화면접


기술면접을 통과하고 나면 문화면접을 보게 됩니다.


문화면접의 경우 지원한 사람이 회사와 맞는지 검증하는 면접인데, 회사의 문화는 회사마다 다 다르기 때문에 지원한 회사의 문화가 어떤지 최대한 찾아보는 것이 중요합니다.


회사의 문화를 찾아보는 방법은 회사 채용 사이트, 회사 블로그, 대표 및 hr 관계자의 인터뷰 내용이나 블로그 컨퍼런스 발표등을 찾아보거나, 블라인드 잡플래닛 등에서 회사가 전체적으로 어떤 것을 추구하는지 등을 찾아보면 됩니다.


경험 준비


회사의 문화를 살펴본 뒤에는 내가 가진 경험들을 다시 되돌아보는 시간을 가지는것이 좋습니다.


평상시에는 잘 말하던 내용도, 면접 자리에서 말하는 것은 매우 어려운 일이기 때문에 면접관들이 어떤 질문을 할지 미리 생각해두고, 질문에 대답할 경험들을 사전에 준비해두는 것이 좋습니다.


제 경험상 이직하는 동기 및 지원동기, 회사를 고르는 기준, 자신의 장단점, 협업하기 힘들었던 사람, 전 회사에서 힘들었던 부분들 같은 질문을 던지면서 지원자가 우리 회사의 문화와 맞는지 검증하기 때문에 이런 질문들에 대한 대답을 준비해놓거나, 내가 중요하게 생각하는 가치들에 대해서 진지하게 고민해보는 시간이 필요합니다.



자기소개


기술면접에서의 자기소개에서는 내가 가장 자신있고, 어필하고 싶은 기술적인 내용을 말했지만, 문화면접에서는 내가 이 회사랑 어떤 부분에서 잘 맞을 것 같고, 왜 지원했는지 등을 강조하는 것이 좋습니다.


이후에 질문에서도 검증을 하겠지만, 초기에 내가 회사랑 잘맞는다는점을 강조하면서 좋은 첫인상을 받는것이 중요합니다.



면접 진행


실제 문화 면접을 볼 때는 솔직하게 말하는 것이 중요합니다.


문화면접에 들어오는 면접관들은 회사에서 높은 위치에 있는 분들이 대부분이고 이런 분들은 수 없이 많은 면접을 봤기 때문에 이 사람이 지금 거짓말을 하는지 여부를 잘 파악합니다.


그리고 지원자가 대답을 하면, 대답을 그대로 믿지 않고 말을 조금씩 바꿔나가며 여러번 질문하고 검증을 하기 때문에 웬만하면 솔직하게 말하는 것이 좋습니다.


(물론 솔직하게 말하라고 해서 나는 돈 때문에 이 회사에 지원했다. 이런식으로 말하라는 것이 아닙니다. 내가 가진 생각이나, 경험들중에서 이 회사랑 잘 맞겠다 라고 생각하는 내용들에 대해서 솔직하게 말하라는 것입니다.)


또, 너무 잘한것만 강조해서 말하지 말고, 만약 잘못한 내용이 있다면 그런 부분도 솔직하게 말하고 그걸 고치기 위해서 어떤 노력들을 해왔는지 어필하는게 더 좋을 수도 있습니다.


억지로 단점이나 실수한 내용을 감추려고 하다보면 면접관들 입장에서는 이 사람은 실수에서 배우지 못하는 사람이라는 인식을 할 수 도 있습니다.


정리


사실 제가 이직을 하기 전에 위의 내용들에 대해서 먼저 알았다면 이직을 수월하게 진행했을 것 같은데, 제가 경험이 부족하고 잘 알지 못했기 때문에 떨어지면서 많은 것을 배운 것 같습니다.


제 글이 도움이 될지는 모르겠지만, 제 글을 읽고 다들 저와 같은 시행착오를 겪지 않고 수월하게 좋은 회사로 이직하시면 좋을 것 같습니다 ㅎㅎ


그리고 만약 면접을 보면서 떨어졌다고 너무 실망하시지 않으셨으면 좋겠습니다.


제 경험상 면접에서 가장 중요했던 요소는 "운" 이라고 생각하기 때문에 불합격하셔도 내가 운이 없었네.. 이 회사(면접관)랑 맞지 않았구나 이런 생각하시면서 보완해나가시면 좋은 결과가 있을 것이라고 생각이 듭니다.

33
80
  • 댓글 12

  • chobodevdev
    336
    2021-01-30 09:42:16

    좋은 글 감사합니다. 혹시 이직 하신 회사가 네카라 정도 되는 회사인가요? 그 정도 되는 회사의 준비를 하신거 같아서요.

  • 이브닝
    136
    2021-01-30 11:17:55

    정말 좋은 내용을 공유해주셔서 감사드려요!!!! 글을 통해 많은 부분에 대해서 되돌아 볼 수 있었어요.

    스크랩을 해두고 자주 봐야겠어요. 다시 한 번 감사드리고 항상 건강하세요~!

  • salsal
    734
    2021-01-30 12:02:11

    chobodevdev 그정도 회사까지 가지는 못했고 살짝 아래급정도 되는 회사에 들어간 것 같습니다.

  • 하히후헤호호
    234
    2021-02-01 11:02:38

    혹시 토익준비도 하셨나요? ㅜㅜ

  • salsal
    734
    2021-02-01 11:25:20 작성 2021-02-01 11:29:19 수정됨

    하히후헤호호 아녀 토익이나 기타 자격증은 하나도 없습니다. 면접에서 그런 자격증이 있냐는 질문을 받아본적도 없고여


    회사마다 다를 수 있을것 같긴한데 실력있는 개발자를 뽑고 싶은 회사는 그런걸 아마 보지는 않을것 같네요

  • 자신과나
    25
    2021-02-02 01:22:23

    좋은글 감사합니다

  • 애플민트
    112
    2021-02-02 10:09:59

    하~ 곧 퇴사합니다. 퇴사 이유는 연봉 감봉 -200만원 받는 돈 현재는 2,600만원 전회사 + 현회사 합치면 경력은 3년 넘습니다.

    이직 걱정이 이전 회사 + 현 회사에서 거의 유지보수격으로 일만 해서 개발능력이 그리 좋지는 못하는데 

    면접+이직이 걱정이네요 ㅠㅠㅠ

  • salsal
    734
    2021-02-02 12:40:50

    애플민트 // 제가 도움이 되는 말을 드리고 싶은데, 제가 그렇게까지 잘하지는 못해서.. 잘 준비하셔서 꼭 좋은 곳으로 가셨으면 좋겠네요


  • 만년코더
    8k
    2021-02-05 10:58:36

    조용히 올라가는 추천 수

    진짜 핵심만 찝은 좋은 글입니다.

    글쓰신 분의 업무스타일도 좋을거 같네요.


    감사합니다.

  • 피자7
    627
    2021-02-05 13:37:59

    좋은 내용이었습니다

    하지만 현실은 냉혹합니다 글의 면접내용과 문화면접같은건 이상적으로 보일정도죠


    그리고 확실히 구인할때 사람인이나 잡코리아는 좀 저급하다는게 많이 실감됩니다

    구체적인 내용 하나도 안쓰고 개발자 구합니다 그런공고도 많이 보이던데

  • 기이린
    8
    2021-02-08 10:06:17
    정말 좋은 내용을 꼼꼼히 적어주신 것 같습니다!
    참고하겠습니다!
    감사합니다 😊😊
  • bumk
    12
    2021-02-15 10:42:21

    좋은글 감사합니다

  • 로그인을 하시면 댓글을 등록할 수 있습니다.