이모저모/IT

'개발자 직군'에 대해서 - 어떤 개발자가 되고싶은가?

NIMHO 2022. 10. 26. 00:20
728x90

이번에는 개발자 직군에 대해서 글을 써보려고 한다.

자기 진로를 정한 학부생도 있을 수도 있고, 나처럼 정하지 못한 학부생도 있을 것이다.

나는 18학번으로 컴퓨터학부 입학한 지 5년 차지만, 아직도 진로를 정하지 못했다.

1학년 때는 개발자가 되어야지 하는 막연한 생각뿐이었다.

2학년이 되고서 개발자도 여러 직군이 있구나라는 것을 알게 되었고,

3학년인 지금, 아직도 나는 무슨 개발자가 되고 싶은지 정하지 못했다.

 

교수님과 상담도 해보고, cj에서 하는 remote internship에도 참여해보고 있다.

교수님은 내가 수학을 잘하는 것을 이용해 데이터 분석으로 가보는 건 어떻냐고 하셨고,

때마침 cj에서 하는 것도 데이터 분석으로 프로젝트를 진행 중이다.

 

그래서 그런지 나는 갑자기 데이터 분석으로 진로를 정하게 되었다.

해보니 분석이 재밌는 거 같기도 해서 정했다.

 

지금 카카오에서는 2022 채용 연계형 겨울 Tech인턴십을 모집하고 있다.

나는 여기에서도 Database Platform Engineer 파트에 지원을 했다.

 

이렇게 정하기까지 많은 시간이 걸렸고, 내가 했던 고민들을 글로 풀어보고자 한다.

같은 학부생, 직군을 정하지 못한 학부생들에게 조금이나마 도움이 되면 좋겠다.

 

 

어떤 직군이 있을지 찾아보다가 크게 개발과 데이터로 나뉘는 것을 보았다.

개발 분야를 크게 보면 프론트엔드, 백엔드, 데이터, 임베디드, 보안 등이 있다.

그리고 데이터 직군에는 세부적으로 데이터 애널리스트, 데이터 엔지니어, 데이터 사이언티스트 등이 있다.

그 외에도 다양하게 있을 수 있는데, 모두 알고 있는 것은 아니라서, 아는 선에서만 작성하려고 한다.

 

프론트엔드

프론트엔드는 간단하게 말하면 사용자가 볼 수 있는 화면을 구현하는 개발자를 말한다.

다양하게 분류할 수도 있지만 크게 웹(web), 앱(Android, IOS), PC(window, mac), 게임이 있다.

주로 웹이나 모바일의 사용자 인터페이스(UI), 사용자 경험(UX)을 만드는데 초점을 두고 있다.

 

보통은 HTML, CSS, JavaScript 세 가지를 많이 사용한다. (아닐 수도 있습니다.)

사용자가 웹을 사용할 때 보게 되는 화면은 HTML, CSS, JavaScript 세 가지가 어우러져서 움직인다.

 

백엔드

데이터와 클라이언트 사이에서 데이터를 송수신하면서 정보를 교환하는데 보통 응답과 요청이라고 한다.
백엔드 개발자는 이 응답과 요청을 구현하는 일을 한다.

흔히 사용자가 너무 몰려 서버가 터지면, 수습하는 것이 백엔드 개발자이다.

 

Java, PHP, Ruby, Python 등을 주로 사용한다.

 

 

사실 더 자세하게 적고 싶은데, 프론트엔드, 백엔드에 대해서는 나에게 정보가 많이 없다.

하지만 최근에 데이터에 관해서 많은 관심이 생겼고, 그에 대해서도 많이 찾아봤다.

그렇기에 데이터에 대해서는 조금 더 자세히 작성해보려고 한다.

 

데이터

사용자 정보, 서비스 정보, 관리자 정보 등 다양한 정보를 보관하고 관리하는 장소를 DB(DataBase)라고 하는데,
사용자가 아주 적어서 정보가 별로 없는 경우라면 크게 상관없지만,

100명, 10000명, 수십만 명 그 이상이 된다면, 효율적으로 정보를 관리할 필요가 생긴다.
이런 관리를 하는 개발자를 데이터 개발자라고 한다.

 

세부적으로 데이터 애널리스트, 데이터 엔지니어, 데이터 사이언티스트 등이 있다.

데이터 엔지니어는 데이터 저장공간, 가상 환경 등의 인프라를 구축하는 역할을 한다.

데이터 애널리스트는 데이터 분석가라고도 하는데, 주어진 데이터를 가지고 머신러닝, 딥러닝, 인공지능 등을 이용한 분석을 한다.

데이터 사이언티스트는 엔지니어와 애널리스트의 일을 모두 다 하는 직무이다.

세 가지에 대해서는 어떻게 분류했는지는 잘 모르겠다.

 

 

데이터 엔지니어 (Data Engineering)

  • 앞서 이야기한 효율적인 정보관리를 위하여 데이터를 수집하고 관리하는 개발자를 말한다.
  • 흔히 ETL(Extract(추출), Transform(변환), Load(적재)) 테이블을 설계하고 구축한다.
  • 추가적인 데이터 수집이 있을 수 있기 때문에 확정성 높게 설계하는 게 중요하다.

 

데이터 사이언티스트(Data Science(ML/Statistics))

  • 빅데이터를 토대로 미래를 예측하고 모델링하는 개발자를 말한다.
  • 서로 연결되지 않은 다수의 데이터로부터 데이터를 탐구하고 실험한다.
  • 보통 비즈니스에 적용할 데이터를 예측할 때 많이 적용한다.

 

깊게는 아니지만, 그대로 개발자에 어떤 직군이 있는지 간단하게 알아봤다.

나는 현재 데이터 쪽으로 가고 싶어서 데이터 엔지니어와 사이언티스트 중 고민을 하고 있다.

아직 취직까지는 1~2년이 남아서 많은 고민을 하고 내게 잘 맞는 곳을 골라야겠다.

728x90