4학년 1학기 백엔드 개발자 취준 생각

agugu95·2020년 5월 29일
1

공부 기록

목록 보기
1/30

어떻게 준비해야할까

최근 보이던 인턴, 신입 공채에 서류를 넣어봤고 전부 탈락했다.
결과가 나오지 않은 곳도 탈락할거다.
공부를 했다고 생각한 내가 바보 같았고 다시 계획을 잡아야겠다.

왜 백엔드 개발자가 되고 싶은데?

서류를 지원하면서 관심 있는 기술분야와 왜 그 쪽으로 가고싶은지에 대해서 물을 때마다
고민을 많이 하면서 적었다.
나는 2018년 말 한국전자전에서 자율주행 자동차의 시스템이 어떻게 돌아가는지를 봤고
그게 멋져보였으며 그것들을 다루는게 백엔드 개발자라는걸 알게 되었다.
그 뒤로부터 백엔드 개발자가 되겠다고 공부하고 있다.
그냥 백엔드를 다루는게 서버를 다루는게 멋져보이고 대단해보이고 지금도 그렇다.

백엔드 개발자가 뭘까

내가 알기로는 백엔드는 어디에나 존재한다.
웹 어플리케이션, 데이터 엔지니어링, IOT 솔루션, 그룹 웨어, 인프라 등
그래서 그 분야를 나누기가 모호하기 때문에 나는 시스템을 통해 데이터를 다룰 수 있는 분야 정도로 생각하고 있다.
하는 일은

  • API 설계와 구현
  • 서버 관리
  • DB 관리
  • 네트워크 관리
  • 인프라 관리
    이외 등등등 백엔드 개발자가 접할 수 있는 기술 분야는 정말 넓다.
    주니어 개발자로써 어떤 분야든 실제로 접해보지 않은 이상 결정하기엔 무리가 있고
    가장 쉽게 접근 가능한 웹 위에서의 백엔드 개발자를 준비하고 있다.

백엔드 개발자가 하는 일 참고

Naver D2 백엔드 개발자가 되고싶은 학생 개발자들에게

백엔드 개발자를 준비하자

처음에 자바스크립트와 node를 통해 공부하다 보니 좀 더 기본적인 것에 집중해야겠다고 생각했다.
가장 스탠다드하고 광범위하게 사용하고 구축 된 웹 애플리케이션 서비스들은 자바로 이루어져 있으니 자바를 공부해야 한다.

자바

  • 기본 문법
  • JDK 8 이상의 새로운 문법들

백기선님의 강의와 하이퍼스킬을 중심으로 다시 잡아보려 한다.

Spring Boot와 JPA

버전 관리와 의존성 관리에 유리한 스프링 부트를 통해 공부하려고 한다.

REST API

이 공부들을 통해 기존에 했던 프로젝트를 리팩토링하던가 웹 애플리케이션을 하나 구현 해볼거다.
그리고 자료구조와 알고리즘, 운영체제와 네트워크 등을 꾸준히 준비해야겠지
Naver D2에서 백엔드 개발자가 되려는 학생 개발자들을 위해 무엇을 준비해야하는지 글을 써준게 있는데

Jenkins, AWS 등 Backend에 도움이 되는 도구를 배웠지만 도구를 배운다는 게 과연 실력을 키우는 것인지는 의문입니다.

개발도구를 잘 활용하는 능력은 생산성과 직결되기에 중요합니다. 그런데 개발도구를 '배워야'하는 개발자보다는 스스로 익힐 수 있고, 적절한 도구를 선택할 수 있는 개발자가 현장에서는 필요합니다. 특정 개발도구를 익혔다는 사실은 단기적으로는 실력이라고 할 수 있습니다. 새로운 도구가 나왔을 때도 적응할 수 있는 학습력/적응력/판단력이 본질이고 이것이 누적되어 실력이 됩니다.

개인적으로는 아래와 같이 개발자의 수준을 분류하고 싶습니다.
레벨0: 이미 쓰고 있는 개발도구의 사용법을 알려주거나 가이드 문서를 줘도 잘 못 씀
레벨1: 알려주거나 같은 팀에서 만든 가이드 문서에 있는 만큼만 쓸 수 있음
레벨2: 개발도구의 공식 레퍼런스를 보고 사용법을 스스로 익힐 수 있음
자신이 경험한 사용법을 문서화해서 팀 내에 전파할 수 있음
레벨3: 여러 개발도구를 비교 분석해서 상황에 적합한 도구를 선택할 수 있음
공식 레퍼런스 문서에서 부족한 부분을 수정해서 기여할 수 있음
레벨4: 개발도구의 문제를 소스 코드를 수정해서 Fork/패치해서 사용할 수 있음
신입사원이라도 레벨2 정도는 함께 일할 개발자에게 기대를 하게 됩니다.

레벨2인 '개발도구의 공식 레퍼런스를 보고 사용법을 스스로 익힐 수 있음
자신이 경험한 사용법을 문서화해서 팀 내에 전파할 수 있음'까지 갈길이 멀다.
내년 상반기 채용 그정도까지로 계획을 잡고 있고 열심히만이 아닌 잘할 수 있기를

0개의 댓글