주니어 백엔드 개발자 카카오뱅크 이직 회고

profoundsea25·2023년 8월 17일
30

회고

목록 보기
1/1

본문에 앞서


  • 글의 목적은 제 개인적인 회고와 이직 준비가 막연한 분들께 조금이나마 구체적인 참고 소재가 되고자 함입니다.
  • 합격 시점 총 경력 1년 6개월 Kotlin/Java 백엔드 개발자입니다. (시리즈 C 스타트업 1곳 재직)
  • '어떻게 준비했는가?'에 초점을 맞춘 글입니다.
  • 사전 과제와 면접 진행 내용은 일체 없습니다. (아시다시피, 면접 시 서약서의 조항입니다.)

본격적인 이직 준비 전


마인드셋 - 멘토링, 책, 강의 등으로 배운 것들

  • 많은 회사가 현실적인 이유로 IT 대기업(소위 "네카라쿠배") 정도의 개발 문화 정착과 소스코드 품질 관리를 하지 못합니다.
  • 하지만 그 상황에서 자신이 개선할 수 있는 것이 전혀 없는 것은 아닙니다. 현재 상황에서 시스템을 어떻게 개선할 것인가를 고민하고, 실천하고, 성과를 내야 합니다.
  • IT 대기업에 있으신 분들도 "어떤 회사든, 원하는 만큼의 시스템 개선은 늘 어렵다"는 것을 잘 아십니다.
    • 따라서 목표하는 기업과 기술 스택이 맞지 않더라도, 그 안에서 개선점을 찾고, 개선을 만들어내는 것이 중요합니다.
  • 회사는 기본적으로 학교가 아니기 때문에, 자신의 역량을 키우는 활동은 출근 전/퇴근 후에 스스로 챙겨서 해내야 합니다.
    • 회사 일의 100%가 모두 자신의 역량 개발에 도움이 되지는 않기 때문입니다.
  • 새로 배운 것을 회사에 적용할 때는 팀 전체가 움직이도록 하는 것보다, 자발적으로 조금씩 도입해보는 것이 좋습니다.
    • 단, 새로 도입한 내용이 시스템 개선에 (아주 미미할지라도) 성과가 있어야 합니다.
    • 추후 동료들이 유지보수하기 위해서 내용을 문서화해야 합니다.
  • 본인에게 주어진 이슈를 (그 이슈가 아무리 작고 사소할지라도) 남다르게 처리하겠다는 마음으로 대하는 것이 좋습니다.
    • 그래야 더 큰 이슈의 기회를 얻고, 성과의 기회를 얻습니다.

일상에서의 공부

  • 여러 책과 인강을 보면서 어떤 내용이 있는지 확인하고 그 내용을 이해하는데에 집중했습니다.
    • 평일 출퇴근 지하철에서 늘 개발 서적을 읽었습니다. (이걸로 1년 6개월 동안 개발 서적만 16권 읽었습니다.)
    • 퇴근 후에는 개발 인터넷 강의를 보거나, 외부 교육 프로그램(NEXTSTEP TDD 등)을 진행했습니다.
  • 개발 블로그는 총 4개의 글만 작성했습니다.
    • 개발 블로그에 쓸 글은 보통 다른 분들이 검색을 해서 보는 글입니다.
    • 트러블슈팅이나 특정 기술에 깊은 이해를 돕는 글이 아니라면 안 쓰는게 낫다고 생각했습니다.
  • 회고와 TIL은 개인 노션에 짧게 썼습니다.
    • 보통 일기에 가깝기 때문에, 키워드 검색으로 유입되신 분들께 불쾌감을 주지 않도록 했습니다.
  • 사이드 프로젝트는 진행하지 않았습니다.
    • 정확히는 서버 베이스까지 만들고 그만두었습니다.
    • 주니어 시기에는 지식의 영역을 넓히는 것이 더 중요하다고 생각했고, 직접 코드를 작성하는 것은 위의 NEXTSTEP TDD 등으로 대체했습니다.
  • 알고리즘 문제 풀이는 일주일에 1~2 문제씩 풀다가 최근에 중단했습니다.
  • 주의한 점은, 글을 쓰거나 문제 풀이에 시간을 너무 많이 소비해서는 안 된다는 것이었습니다.
    • 하루가 24시간으로 한정되어 있기 때문에, 저에게 학습 효율이 가장 높은 공부를 꾸준히 하고자 했습니다.
    • 단, 효율과 지속 가능성을 따진다면 저는 지속 가능성을 더 중요하게 생각했습니다.
  • 커리어와 공부에 대한 고민이 있을 때, 멘토링으로부터 도움을 받았습니다.
    • 저는 인프런 멘토링을 통해 방향성을 잡고 불안감을 덜어내며 공부할 수 있었습니다. 지금까지 총 4명의 멘토님으로부터 총 6번의 멘토링을 진행했습니다.
    • 특히 제 첫 멘토님으로부터 기술면접 부트캠프을 소개받아 정말 도움을 많이 받을 수 있었습니다.

본격적인 이직 준비


  • 이직을 하려면 아래와 같은 것들이 필요합니다.
    1. 이직할 회사에 기여할 수 있음을 납득시킬 수 있는 경력
    2. 그 경력을 뒷받침하는 역량
    3. 그 역량을 타인에게 설명하는 능력
  • 위의 세 가지는 다음과 같이 매칭됩니다.
    1. 이력서 & 경력 기술서
    2. 코딩 테스트 / 사전 과제
      • (코딩 테스트가 실무 역량과 상관관계가 높은가?는 논외로 합시다.)
    3. 면접
  • 본격적인 이직 시작부터 합격까지 총 3개월 정도 소요된 것 같습니다.

이력서 & 경력 기술서

  • 위의 마인드셋을 기반으로 성과를 내고자 노력하고, 그 결과를 이력서에 작성했습니다.
  • 성과란, 반드시 수치적인 것뿐만 아니라 시스템 품질 관리와 협업에 대한 노력도 포함된다고 생각했습니다.
    • 테스트코드 문화가 없지만 스스로 도입했다거나, 신기술 도입을 위해 자발적으로 문서화와 샘플 코드를 만들어 동료 개발자들에게 공유하는 등, 함께 일하는 환경을 개선한 것들도 포함했습니다.
  • 무엇보다, 이력서나 면접은 '타인의 피드백'이 너무나도 중요합니다.
    • 저는 주니어고, 면접과 이력서를 검토한 적이 없기 때문에 채용하는 입장에서의 시각이 부족했습니다.
    • 이를 보완하기 위해, 위의 인프런 멘토링기술면접 부트캠프를 통해 이력서를 보완할 수 있었습니다.
      • 특히 기술면접 부트캠프에서의 이력서 첨삭이 주효했습니다.

사전 과제

  • (코딩 테스트는 진행하지 않아 따로 언급하지 않겠습니다.)
  • 과제는 주어진 요구사항을 어떻게 구현할 것인가?에 관한 문제입니다.
    • 정답은 없지만, 나쁜 코드는 있다고 생각합니다.
  • 어떻게 하면 확장성 / 유지보수성 / 가독성을 챙기면서, 대규모 트래픽을 처리할 수 있을지 고민했습니다.
    • 저는 개인적으로 SOLID의 의미를 하나하나 짚어보면서 이를 구현하도록 노력했습니다.
  • 코드를 구현하면서 도움이 되었던 내용들은 다음과 같습니다.
    • 멘토링, NEXTSTEP TDD, 책 <오브젝트>, 책 <클린 아키텍처> 등

면접

  • 면접 준비는 크게 이력서 / 과제 / 사용한 기술 스택에 대한 질문(CS 포함) 입니다.
  • 기술면접 부트캠프가 정말 좋았던 이유는, 실제로 채용을 진행하시는 리드급 현업 개발자분과 이력서 기반으로 1시간 가량의 면접을 진행할 수 있다는 점입니다.
    • 이러한 기회를 얻기가 정말 쉽지 않습니다. 실제 채용에서 받을 법한 질문들과 솔직한 피드백을 받으면서 제 부족한 부분을 고쳐나갈 수 있었습니다.
    • 부트캠프는 이력서 첨삭(1회) + 1:1 모의면접(3회)으로 진행되는데, 각 모의면접 별 기간은 2주 간격으로 진행하여 면접의 감을 잃지 않도록 했습니다.
    • 모의면접은 매번 다른 면접관님께서 진행하며, 자주 받는 질문과 그렇지 않은 질문을 구분할 수 있었고, 어떤 질문이 우선순위가 더 높은지 알 수 있었습니다.
  • 또한 부트캠프에서 별도로 제공하는, 과거 면접 질문 기반 CS 자료가 정말로 큰 도움이 되었습니다.
    • 모든 CS 내용을 다루지는 않습니다. 다만, 핵심 질문과 지식을 포함하며, 자신에게 추가 공부가 필요한 부분들을 선별할 수 있었기 때문에 너무나도 유용했습니다.

회고 (KPT)


Keep - 유지할 것

  • 피드백을 귀찮아하거나 두려워하지 않았던 것
    • 스트레스일 때도 있었지만, 스스로가 개선이 될 것이란 믿음으로 계속 하고자 했습니다.
    • 특히 이직 과정에서 기술면접 부트캠프를 통해 피드백 받은 부분들이 정말 실용적이고 효과적이었습니다.
      • 이를 통해 얻었던 깨달음과 성과는 비용 대비 훨씬 값졌다고 생각합니다.
    • 이외에도 멘토링이나 외부 교육 코드리뷰 등 다양한 피드백들이 도움이 되었습니다.
  • 실무에서 자신의 일에 대해서 최선을 다하고자 했던 자세
    • 내가 왜 일하는지, 어떤 역량을 갖추고 싶은지를 구체화하고 매일 remind 했습니다.
    • 포괄임금제인 전 직장에서 야근 중에 한 번은 동료로부터 농담으로 “언제까지 그렇게 부품처럼 살거냐?”라는 말을 들은 적이 있었지만, 그래도 제 일은 책임감 있게 해야 된다고 생각하고, 그런 자세로 일을 하며 성과를 냈던 것이 주효했던 것 같습니다.
  • 매일 꾸준히 했던 공부 (독서, 인강, 교육 프로그램 등)
    • 공부했던 지식들을 기반으로 이력서 / 과제 / 면접 답변을 하나씩 채워내는 것을 보면서, 제 선택과 공부 방법이 헛되지 않았다는 점이 다행이었고 뿌듯했습니다.

Problem - 개선하고 싶은 것

  • 기술 스택
    • 주니어였기 때문에 그럴 수도 있지만, 다니던 직장의 기술 스택 이외에 기술들에 대해 관심을 가지고 공부하기 쉽지 않았습니다.
      • 지금 사용하는 실무 기술에 대한 깊은 이해가 더 중요하다고 생각했기 때문입니다.
    • 더 나은 시스템을 위해서 기술을 사용하는 입장에서, 어떤 기술들이 있는지 넓은 공부가 필요하다고 생각합니다.
  • 공부
    • 지금까지는 “한다/안 한다”의 차이가 가장 크다고 생각했지만, 이제는 더 나아가 “얼마나 하는가?”를 고민하는 시기가 왔다고 생각합니다.
    • 새로운 회사에 필요한 기술 스택과 미래에 유망한 기술들을 관심있게 찾아보아야 겠다고 생각했습니다.
  • 체력 관리
    • 컨디션 관리도 역량이라는 생각이 들었습니다.
    • 너무 피곤한 상태로 업무를 진행하거나 공부를 하여 효율이 떨어지지 않도록 조심해야겠다고 생각했습니다.

Try - 구체적인 시도할 것

  • 공부
    • 출퇴근 독서 → 유지
    • 퇴근 후 인강 → 유지
    • NEXTSTEP 교육 → 유지
    • 2회독 독서에 대한 복습 → 추가
    • 하루 1개 - 기술 블로그 읽기/기술 유투브 시청 → 추가
  • 체력 관리
    • 간헐적 단식 시작 → (오후 1시 ~ 7시 식사, 이외 공복)
    • 기상 후 / 퇴근 후 헬스 및 홈 트레이닝
      • 푸시업, A/B 슬라이드 등
      • 음악 틀어서 지루하지 않도록 하기
    • 밤 11시 30분 취침 → 6시 30분 기상 고정
    • 점심에 휴식 취하기 (낮잠)
profile
Kotlin/Java 웹 애플리케이션 백엔드 개발자입니다.

4개의 댓글

comment-user-thumbnail
2023년 8월 17일

좋은 정보 감사합니다

1개의 답글
comment-user-thumbnail
2024년 1월 14일

게을러질때마다 이글을 보면서 정신차리고 이직준비 열심히 하겠습니다. 감사합니다

답글 달기
comment-user-thumbnail
2024년 6월 22일

좋은 글 감사합니다!
혹시 출퇴근 하시면서 읽으셨던 개발서적에 관해 궁금한데, 공유 가능할까요

답글 달기