SKT 개발자분들이 정기적으로 열어주시는 데보션 세미나에 참석했다! 처음에 데보션을 알게 된 것도 세미나 덕분이었는데, 이번에 데보션 영으로 세미나를 참석하니까 느낌이 새롭고 남달랐다..! 세미나 시작 전까지 상기님이랑 소소하게 대화하는 시간도 있었고, 끝나고 화기애애하게 있는 Q&A시간 덕분에 세미나가 너무 딱딱하고, 형식적으로 느껴지지 않아서 너무 좋았다,,
누구나 쉽게 질문하고 화기애애한 세미나 흔치 않다.. 심지어 굿즈도 준다구,,🙌
7월 세미나 발표는 SK 텔레콤의 A.추진단/A.Data 부서의 김경민님이였다.
1부: 데이터 플랫폼 구현 사례
SK에서 인프라를 구축하는 개발자들의 theme을 한마디로 표현하자면 이렇게 정리할 수 있다.
"Not For Service But For Data Guys"
특정 서비스만을 위해 개발을 하는 게 아니라 모든 서비스에서 데이터와 플랫폼을 사용할 수 있도록 개발하고 있다.
데이터가 무엇이 있고, 어떻게 생겼는지 알아야 하고
데이터를 분석하기 쉬운 환경이 무엇인지 고려를 해야 한다.
만들어진 데이터 분석 환경을 기반으로 데이터 분석 환경, 파이프라인을 제공한다.
데이터 사이언티스트들은 무엇을 필요로 할까?
데이터가 기본적으로 필요할 것이고, 데이터 분석을 위한 환경이 필요하다. 데이터 분석 환경에서는 데이터의 종류에 따라 분류하는 EDA 작업, 데이터를 분석하기 좋도록 변환하는 Data Wrangling 작업, 모델을 학습하는 거나 평가하는 것 등등 많은 일들이 수행된다.
이렇게 데이터 사이언티스트들이 하는 일을 알아보았는데, 그럼 파이프라인을 구축하는 개발자는 무슨 일을 하는 걸까? 데이터 사이언티스트와 데이터 엔지니어의 차이점이 뭔지 궁금증이 생겼다.
데이터 엔지니어들은 실제 서비스에 가공된 데이터들을 적용하기 위한 작업을 수행한다.
분석 환경에서 만들어진 결과를 실제 서비스에 적용하기 위해서 작업한 내용을 파이프라인화 하는 게 바로 개발자가 필요한 이유이다!
그럼 이제부터 SKT의 데이터 엔지니어가 하는 일에 대해서 알아보자.
SKT에서는 다양한 데이터(유저 정보, 서비스 정보, 통신 정보 등등)가 모이는 Data Lake가 있고, Data Lake에서 필요한 데이터를 가져온다.
개발에 필요한 데이터들을 DATA Warehouse에 모으고, 모인 데이터들을 데이터 사이언티스트들이 분석을 한다.
Data Lake와 Data Warehouse에 대한 차이점을 짚고 넘어가보자!
Data Lake는 데이터들이 정제되기 이전에 상태로 존재하고, Data Warehouse에는 정제된 데이터들이 모여 있다.
BIgQuery 란?
빅쿼리는 페타바이트 급의 데이터 저장 및 분석용 클라우드 서비스이다. 빅 쿼리는 서버리스 아키텍처를 사용하면 SQL 쿼리를 사용하여 인프라 관리 없이 조직의 관리 없이 가장 큰 질문에 답할 수 있는 장점이 있다.
그렇다면 빅쿼리로 데이터를 어떻게 가져올까?
기본적으로 Daily Batch Processing 과정을 통해 빅쿼리로 데이터가 들어오게 된다. 데이터를 적재하고, 적재한 데이터를 클라우드에 저장했다가, 빅쿼리로 클라우드를 불러서 데이터를 가져오는 형식이다. 클라우드 storage에 저장했다가 저장한 파일을 빅쿼리로 로드를 하면 정액권을 사용할 시 무료이기 때문에 비용이 감소된다는 장점이 있다.
그렇다면 파이프라인과 스케줄링을 실제로 어떻게 구현할까?
파이프라인을 구현하기 위해서는 워크툴이 필요한데, 현재 SKT는 Airflow라는 워크 툴을 사용하고 있다.
Airflow는 파이썬 코드로 워크플로우를 작성하고 스케줄링하여 실행하고 모니터링하는 플랫폼이다. Airflow를 이용하면 DAG 형태의 워크 플로우를 작성할 수 있다. 왼쪽 사진처럼 파이썬 코드로 DAG를 정의할 수 있다.
간단하게 정리하자면,
파이썬 코드로 DAG 정의 - Airflow 스케줄러처럼 DAG의 각 단계(task라고 함)에 파싱하면서 스케줄링을 하게 된다!
만들어진 데이터베이스는 Airflow UI를 통해 확인할 수 있다.
왜 많은 워크 툴 중에서 Airflow를 사용할까?
Airflow는 현재 가장 인기가 많은 워크 툴이다. (실제로 사용자가 많은 만큼 레퍼런스도 풍부하다. )
데이터가 들어왔는지 확인하는 센서 -> 확인되면 전송하고 -> 로드하는 순서로 파이프라인이 구현된다.
왼쪽 사진처럼 파이썬으로 코드를 만들고 -> Airflow에 코드를 배포하면 -> 오른쪽 사진처럼 UI에서 확인할 수 있다.
만약 데이터 적재에 실패해서 구멍이 생긴다면 어떻게 해결하고 있을까?
구멍을 매우는 작업을 Backfill이라고 한다. 파이프라인을 구축할 때는 데이터 적재에 실패했을 때 어떻게 회복할지에 대한 Backfill을 항상 염두에 두어야 한다. 특정 날짜를 지정해서 Backfill을 할 수도 있지만, 하나의 DAG에서 여러 테이블을 관리하는 경우에는 애매해진다. Airflow Backfill에도 한계가 있기 때문이다.
기본 원리는 Backfill이 필요할 때, 그때 상황에 맞는 Backfill을 생성하는 것이다.
"Backfill이 필요할 때 Dunamic하게 DAG를 생성하는 방법이다."
즉, 오른쪽 사진처럼 파이썬의 globals()와 같은 동적 변수를 생성하는 방식을 적용해 한계를 극복할 수 있다.
실제로 구현한 Auto Backfill의 구조는 다음과 같다.
크게 Checker와 Generator로 구성되어 있다.
Checker는 소스와 타깃을 모니터링해 상태 데베를 업데이트 한다. Generator는 상태 데베를 보고 Backfill DAG를 동적으로 생성한다.
세미나를 듣다가 고정적인 데이터 베이스를 수정하는 것은 메커니즘이 간단한데, 만약 실시간으로 달라지는 데이터베이스를 수정해야 한다면 어떻게 수정할까? 라는 의문이 생겼다. 질문을 적으려고 함과 동시에 해결책이 바로 다음 슬라이드에 있었다..!
실시간으로 데이터 베이스를 수정할 때는 어떤 방법을 사용할까?
보통은 실시간으로 처리를 할 때에는 Streaming Platform을 사용해 처리를 한다.
만약 Streaming Platformfmf 사용하지 않는 경우라면 BigQuery 안에 있는 라벨링이라는 자체 기능을 사용한다. 라벨링 기능을 이용해 각 테이블 자체에 메타 데이터 형식으로 저장한다. 빅쿼리 안에 라벨로 저장하게 되면 아키텍처가 심플해지고 관리가 쉬워진다.
라벨링 운영을 효율적으로 할 수 있어서 Tabel Label을 잘 이용하면 효율적으로 처리를 할 수 있다. Big Query의 라벨 형태와 비슷한 Hive의 TBLPROPERTIES의 기능도 마찬가지로 자주 이용하고 있다.
-----
1부는 데이터 플랫폼 구현 사례에 대한 내용이었고, 2부에는 질의시간이 있었다.
세미나는 1. 데이터 2. 분석 환경 3. 파이프라인 개발의 순서로 이어졌다. 세미나 마지막까지 참석을 했지만,,! 데이터 처리에 대한 부분이 제일 인상에 남아서 까먹지 않으려고 따로 정리를 해보았다! (사실 뒷부분의 파이프라인 개발의 구체적인 내용은 내가 공부를 더 해야 이해할 수 있을 것 같았..다..) 데이터를 재적하고 관리하는 일은 다 데이터 사이언티스트들이 하는 줄 알았는데, 데이터 처리에 대한 부분과 그 데이터를 배포하는 엔지니어분들도 따로 있다는 것을 알게 되었다.
실제로 서버에 유포하는 작업을 자세하게 알게 되어서 신기했고, skt에서 실제로 사용하는 기술들을 설명들을 수 있다는 점이 좋았다.
발표자료에 있었던 개념들과 워크툴이 궁금해져서 세미나 이후에 검색해서 구경도 했다.
아직 워크툴의 종류나 툴의 사용 방식이 익숙하지 않지만, 이번 세미나에서 들은 워크툴들과 개념들은 나중에 다시 들을 때 익숙할 것 같다..!
매월 진행되는 세미나 너무 유익하고,, 끝나고 경품도 마구 나눠주는 데보션 넘 따듯하다..
다들 관심이 있다면 매월 사이트에 세미나 공지가 올라오니까 한번씩 참가해보길..! 😉😉
데보션 (DEVOCEAN) 기술 블로그 , 개발자 커뮤니티이자 내/외부 소통과 성장 플랫폼
devocean.sk.com
'대외활동 > DEVOCEAN YOUNG' 카테고리의 다른 글
SK Tech Summit 후기 (0) | 2022.11.10 |
---|---|
2022 SK TECH SUMMIT에 초대합니다! (0) | 2022.10.29 |
SKT DEVOCEAN TECH DAY 제2회 테크 데이 - 기술 커뮤니티의 가치 (1) | 2022.09.08 |
DEVOCEAN 8월 Tech 세미나 Goodbye Passwords! Hello Passkey! 후기 (0) | 2022.09.04 |
명동오면 명동 칼국수만 먹지 말고 SKT T.um 티움으로 (0) | 2022.08.16 |