고민하기

기업이 말하는 백엔드 개발자

pythaac 2021. 7. 14. 12:20

백엔드 개발자를 조사하게 된 이유

  나는 데이터 엔지니어가 되고 싶었다. 데이터 자체에 대한 흥미가 높고, 서비스들이 데이터를 중심으로 개발되는 사실 또한 매우 흥미로웠다. 그래서 데이터 엔지니어가 되기 위해 데이터 엔지니어는 어떤 일을 하는지, 어떤 역량이 필요한지를 조사했었다.

2021.06.23 - [데이터 엔지니어링] - 기업들이 말하는 데이터 엔지니어

 

기업들이 말하는 데이터 엔지니어

데이터 엔지니어를 조사하게 된 이유 데이터 엔지니어가 되고싶어졌다. 흔한 계기로 시작했지만 나에겐 매우 중요한 일이다. 데이터 엔지니어가 되고 싶다는 이야기를 할 때마다 "데이터 엔지

pythaac.tistory.com

그리고 나는 데이터 엔지니어가 "데이터라는 단어가 포함되는 일은 모두 담당한다"라는 말이 무슨 의미인지 알았다. 데이터를 수집해오는 과정부터, 어떤 데이터를 수집해야 하는지, 이 데이터들의 효율적인 저장과 조회는 물론 이를 위한 건강한 생태계를 조성하고 설계해야한다. 나는 이를 목표로 이 어마어마한 크기의 역량 전체에 이해하고 경험하려했다. 데이터가 흐르는 모든 곳을 직접 경험하려하다보니 감당이 되지 않았다.

  그래서 내린 절충안이 백엔드 개발자로 목표를 전향하는 것이다. 이미 주변에서 나에게 이를 권했었고, 기본적으로 내가 하고싶은 데이터 엔지니어의 범위에 엄밀히 따지면 백엔드에서 이루어지는 일이다. 이 시스템을 먼저 이해하는 것이 순서라고 결정하고, 이전과 같이 기업들이 요구하는 역량들을 기준으로 정리해보려한다.

 

기업들의 JD로 보는 백엔드 개발자

  이전처럼 기업들이 공개하고 있는 백엔드 개발자(서버 개발자)의 JD를 통해 어떤 역량이 필요한지 알아보려한다. 그러나 이번에는 백엔드 개발자의 정의보다는, 역량에 초점을 맞추었다. 그리고 지난 데이터 엔지니어를 조사한 경험을 통해 키워드 분석을 원활하게 하고 싶었다. 그래서 정리할 때, 최대한 단어를 통일하거나 조사(ex. 을를이가)를 빼는 등의 노력을 기울였다. 여기에 input 데이터가 주관적이고 공고시기에 따라 다르기 때문에 명확한 결과가 아님을 주의해야한다. 또한 결과를 보면서 불필요한 단어의 frequency가 높다고 판단되는지 확인하고, 각 기업마다 다르지만 다음 단어들은 예외로 filtering했다.

  • 설계 환경 모집 개발자 사용 시스템 활용 카카오 네이버 라인 쿠팡 배달의민족 당근마켓 Senior Engineer Backend platform 익숙하신 프로그래밍 개발에

 

카카오

 

네이버

 

라인

 

쿠팡

 

배달의민족 (우아한형제들)

 

당근마켓

 

위 전체 기업들의 종합 내용

 

정리 및 결론

  단어를 약간 정제하고 filtering을 추가하니, 이제 조금 보고싶었던 용어들이 올라온다. 예상하고 있던 단어들과 생각을 못했던 단어들이 여럿 보인다. 위에서 추출한 내용을 기반으로 빈도가 높은 키워드들을 추려보았다.

  • 카카오
    Spring Java RDBMS 트래픽 API MQ cache
  • 네이버
    Java RDBMS Kubernetes NoSQL Linux
  • 라인
    네트워크 MSA Commerce Java
  • 쿠팡
    Java 분산 API 클라우드 AWS gRPC REST
  • 배달의민족
    Spring Java API JPA 테스트 RDBMS 트래픽 대용량 Kotlin MVC 대용량
  • 당근마켓
    Kotlin REST Java Go 트래픽 대규모 Kubernetes Spring AWS MSA gRPC

그리고 위 기업들의 내용을 종합적으로 보았을 때의 키워드들이다.

  • 전체
    Java Spring AWS API RDBMS Kotlin MSA REST Kubernetes 트래픽 MySQL Go Linux

이를 통해서 내가 목표하는 백엔드 개발자에게 필요한 역량이 무엇인지 종합해볼 수 있었다. 내가 예상했던 사실은 Java와 Spring이 가장 큰 파이를 차지할 것 같았다. 그리고 예상치 못했던 것은 Kotlin이나 Go가 생각보다 많았고, Kubernetes가 많이 보인 사실이다. 위 키워드만 두고, 앞으로 백엔드 개발자가 되기 위해 무게를 두고 경험해보아야할 것들을 다음과 같이 정리할 수 있겠다.

  1. Java + Spring 기반의 서버 개발
  2. AWS(클라우드) + Kubernetes + Linux 기반 서버 개발
  3. REST API 개발
  4. MySQL과 같은 RDBMS를 이용한 개발
  5. MSA 기반 서버 개발
  6. Kotlin / Go 와 같은 언어를 응용한 서버의 장단점 비교 및 개발
  7. 대규모 트래픽에 견고한 서버 개발

이 내용만으로도 매우 범위가 넓고 할 것이 많다. 앞으로 이를 기반으로 어떤 공부를 하고 경험할지, 목표한 일정 내에서 계획하고 이행할 예정이다!