본문 바로가기

Date Enginnering

데이터 엔지니어와 백엔드 엔지니어의 차이?

※ 필자도 데이터 엔지니어링을 공부하고 있는 한 사람이기 때문에 이 글에서 말하고 있는 것은 한 사람의 의견으로 봐주시면 감사하겠습니다. ※

 

데이터 엔지니어링을 공부하면서 들었던 생각 중 하나가 "데이터 엔지니어와 백엔드 엔지니어의 차이를 현업에서는 어떻게 바라보고 있을까?"였습니다. 이런 궁금증을 가지고 구글링을 하면서 여러 글들을 보고 제 나름대로는 정리가 됐지만 Wanted에서 채용 공고들을 크롤링해서 한 번 DEBE의 업무가 얼마나 다른지 한 번 더 살펴보기로 했습니다.

데이터 수집

Wanted에서 Data Engineer, 데이터엔지니어, 데이터 엔지니어, 백엔드 엔지니어, Backend Engineer의 키워드를 사용해서 채용 공고들을 크롤링해서 csv파일로 저장했습니다. (DevOps Engineer 이하 DV, DBA 직군도 비교해보고 싶어서 크롤링을 추가로 진행했습니다.)

수집된 채용 공고의 개수는 아래와 같습니다.

  • DE : 178
  • BE : 199
  • DV : 62
  • DBA : 77

be만 소문자인 것은 오타입니다...;;ㅎㅎ

데이터 전처리

분석에 사용할 칼럼은 주요업무기술스택 · 툴 이렇게 두 가지만 사용할 것 이기 때문에 사용하지 않은 칼럼들을 Drop 해주겠습니다.

그다음 ML/DL 같은 영어 단어들은 모두 머신러닝/딥러닝처럼 한글로 바꿔주고, "의", "이", "에서" 같은 조사들도 replace 를 사용해서 공백으로 대체해주겠습니다.

그렇게 전처리가 끝나면 문장이 아래의 예시처럼 변환되어 나옵니다.

대용량 데이터 처리 데이터파이프라인 개발 여러 서비스 공유가능한 데이터 조회 신뢰도 높은 API 개발 공유가능한 형태메타데이터 관리 이전변경 데이터 작업 대용량 데이터 관리처리

데이터 분석

분석에 사용한 라이브러리는 다음과 같습니다.

  • konlpy(kkma, okt) ▶ 주요 업무를 분석할 때 사용했습니다.

  • spacy ▶ 기술스택 · 툴을 분석할 때 사용했습니다.

본격적으로 분석을 진행하기 전에 위에서 전처리한 데이터들을 하나의 리스트(DE_df_review)로 모아줍니다.

kkma = Kkma()
okt = Okt()
de_kkma_result, de_okt_result = Counter(), Counter()  # 개수를 세기 위해서 Counter 사용

for row_data in DE_df_review:
  noun = kkma.nouns(row_data)
  de_kkma_result += Counter(noun)

for row_data in DE_df_review:
  noun = okt.nouns(row_data)
  de_okt_result += Counter(noun)
  
####### 결과 예시 #######
{'데이터': 177,
 '개발': 127,
 '파이프': 120,
 '라인': 120,
 '운영': 119,
 '구축': 99,
 '분석': 94
 .... }

위에 보이는 것처럼 Dict 형태로 결과 값을 추출하면 Wordcloud를 사용해서 이미지로 한 번 보겠습니다. (파이프 / 라인 구별되어 있는 게 상당히 불편하군요 ㅡㅡ. 나중에 수정해야 할 것 같습니다.)

결과

Data Engineer

Data Engineer 주요업무 KeyWord

위 쪽 이미지는 kkma를 사용한 결과이고, 아래쪽 이미지는 okt를 사용한 결과입니다.

(두 가지를 사용한 이유를 물어보신다면..... 그냥 해보고 싶었습니다...ㅎ)

 

역시 "데이터""개발"의 빈도수가 가장 많은 것을 알 수 있습니다. DE라고 하더라도 데이터 파이프라인을 구축/운영하기 위해서는 개발 지식이 필요하다는 것을 알 수 있습니다.

그럼 이 그림을 잘 기억하면서 BE의 결과도 한 번 보겠습니다.

Back-end Engineer

Back-end Engineer 주요업무 KeyWord

BEDE와 비슷하게 "개발"의 빈도수가 많은 것을 알 수 있고, "서비스"라는 KeyWord가 새롭게 등장했습니다..!

"데이터"BE 이미지에서 볼 수 있지만 빈도수가 DE에 비해서는 적은 것을 알 수 있습니다.

 

다음으로는 DE BE의 기술스택 · 툴의 Wordcloud의 결과를 보겠습니다.

Data Engineer

Data Engineer 기술스택 툴

이 부분의 결과가 제 생각과는 많은 부분이 달랐는데 MySQL, SQL, MongoDB, PostgreSQL 같은 툴보다 React, Spring과 같은 개발 쪽에 가깝다고 생각되는 툴의 빈도수가 더 많았습니다.

왜 그런가 생각을 해보니.... 회사마다 사용하는 DB도 다르고, 데이터 파이프라인도 다르기 때문에 회사에서 사용하는 DB를 다뤄보지 않았더라도 개발 능력이 있는 사람을 데리고 와서 알려주는 게 더 낫다고 건가....?라는 생각이 들었습니다.

그렇지만 직군 이름에서도 알 수 있듯이 "Data" Engineer이기 때문에 DB, SQL 등 기본적으로 데이터를 다룰 수 있는 능력이 있어야 하고 더해서 개발 능력까지 있다면 더 좋을 것 같습니다.

Back-end Engineer

Back-end Engineer 기술스택 툴

BE는 역시 생각했던 것과 비슷하게 나온 모습이었습니다. 그래도 생각보다 MySQL, PostgreSQL과 같은 툴도 꽤 포함이 되어 있음을 알 수 있었습니다.

정리

위의 내용들을 보고 DE BE는 다음과 같이 정리할 수 있을 것 같습니다.(도입 부분에서 말씀드렸듯이 데이터 엔지니어링을 공부하고 있는 한 사람의 의견일 뿐입니다...! 가볍게 봐주시면 감사하겠습니다!)


Data Engineer는 ETL 파이프라인을 구축/운영하면서 회사에서 수집하는 데이터를 저장하고 데이터가 필요한 부서에서 사용하기 쉽게 환경을 만들어주는 사람이다.

Back-end Engineer는 회사의 서버를 구축/운영 및 API 작성, 웹에서 발생하는 데이터를 저장 및 관리를 하는 사람이다.

(말로 정리하는 게 생각보다 어렵네요...ㅎ)

 

해당 분석을 시작하게 된 계기는 "궁금하다!" ▶ "해보자" ▶ 결과로 큰 고민 없이 스피디하게 진행이 되었기 때문에 개인적으로도 뭔가 굉장히 아쉬웠습니다. 그래서 추가적으로 더 자세하게 분석을 한 번 해보려고 합니다.

마지막으로 긴 글 읽어주셔서 감사하고, 해당 포스팅이 조금이라도 도움이 되었다면 좋겠습니다.

'Date Enginnering' 카테고리의 다른 글

데이터 엔지니어는 무슨 일을 하나요?  (0) 2022.07.11