본문 바로가기
커리어 인터뷰

쏘카 데이터엔지니어가 하는 일- 3.데이터기반 백엔드 서비스 개발 운영

by 카프리썬 2021. 5. 21.
728x90

아래의 글은 쏘카 Tech Blog에서 발췌한 글의 일부입니다.  원본글은 아래에서 보실 수 있습니다

https://tech.socarcorp.kr/data/2021/03/24/what-socar-data-engineering-team-does.html

 

쏘카 데이터 그룹 - 데이터 엔지니어링 팀이 하는 일

안녕하세요. 데이터 엔지니어링 팀에서 이제 막 신입 1년차를 마친 하디입니다. 요즘 취업 준비하시는 분들에게 ‘데이터 엔지니어가 되려면 어떤 걸 준비해야 하나요?’라는 질문을 종종 받습

tech.socarcorp.kr


언젠가 데이터엔지니어로써 일할 기회를 꿈꾸며....

매번 하는일에 대해서 알아갈 수록 정말 재미있을것 같고 설레이는 기분이 든다.

2021.05.21 - 쏘카 데이터엔지니어가 하는 일- 1.데이터분석환경구축

2021.05.21 - 쏘카 데이터엔지니어가 하는 일- 2.데이터지표와 보고서만들기


데이터엔지니어링팀 업무3 . 데이터기반 백엔드 서비스개발 및 운영

분석 및 모델링결과를 서비스에 반영하기 위한 백엔드 서비스를 담당한다

쏘카의 대여가격시스템, 면책요금시스템, 차량파손탐지시스템 등이 대표적인 예.

이 시스템들은 MSA형태로 쏘카 서비스의 필요한 모든것을구현하는 것이 아니라, 

데이터기반 의사결정이 필요한 도메인 로직만 분리해서 처리한다. 

 

하나의 서비스를 만들기 위한 작업

예를 들어 차량파손을 탐지하는 머신러닝 모델을 서비하는 차량파손탐지시스템의 경우

1. 요구사항 정리

서비스를 사용하는 관련부서와 어떤 기능이 필요한지 논의를 하고, 요구사항 정리

2. 개발관련사항 정리

서버개발팀과 어떤 통신형태를 사용할지, 인터페이스는 어떻게 할지 논의

딥러닝 모델을 기반으로 이뤄지기 때문에 모델학습과 예측결과에 대해 데이터분석팀과도 논의

3. 개발 및 배포

백엔드 서비스를 개발하고 Kubernetes환경에 배포

4. 운영

지속적으로 모니터링하면서 에러는 없는지, 리소스 사용량에 문제는 없는지 확인 

 

특히 고려해야할 사항은?

서비스가 성장하며 계속해서 추가기능을 개발하고, 운영해야하므로

유지보수를 위한 클린코드, 아키텍쳐나 CI/CD를 고민하며 백엔드 서비스를 개발해야한다. 

비즈니스 로직과 요구사항이 계속해서 바뀌는 경우가 많기 때문에 늘 변화에 염두해두고 유연한 코드를 설계해야한다.

유저에게 바로 노출이 되는 서비스인만큼 처리속도 역시 신경써야하고, 로직최적화 및 캐싱기법도 관심을 두고 적용

최종적으로 쿠버네티스에 올라가기 때문에 리소스사용량은 얼마나 되는지, 

급격한 사용량에 잘 대처할 수 있는지도고민하며 인프라팀과 논의후 결정한다. 

 

데이터그룹에 도움이 되는 파이썬모듈개발이나 기술문화 도입에 힘쓰고 있따.

전반적인 엔지니어링 스킬을 올리고 선도하는 것이 데이터엔지니어링 팀

 

어떻게 개발하는가? 어떤 언어?

  • 파이썬으로 개발.
    제한된 시간 안에 적은인원으로 빠르게 성과를 낼 수 있다. 
  • HTTP 통신프레임워크로 Flask 사용. 
    쏘카 시스템 전체가 MSA로 설계뙨 만큼 툴사용은 필요와 요구사항에 따라 달라진다.
  • CI/CD 파이프라인툴은 BuddyWorks 사용
    쉽고 빠르게 CI/CD툴을 구축할 수 있어서, 데이터그룹에 한해 배포툴은 별도로 ArgoCD 사용

 

Python을 주로 사용한다니 다행이였다. 그리고 대부분 MSA로 설계되었다고 하니
앞으로 'MSA기반 서비스'를 프로젝트도 도전 해볼까 싶었다.
그리고 단순히 구현되는게 목적이 아니라 유연한코드, 변화에 적응하기 쉬운 '클린코드'를 더 배워볼까 한다.
어떻게 하면 로직을 최적화하고, 더 빠르게 수행할 수 있을지를 고민해보며 파이썬을 다시금 훈련해야겠다.
반응형