일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 블로그성장일기
- 데이터직무
- 데이터분석가
- 데이터리안월간웨비나
- 데이터엔지니어링시작하기
- 데이터엔지니어
- 데이터 분석가
- 데이터분석
- 데이터 엔지니어
- 누적조회수1만명
- 블로그성장글
- 머신러닝 회귀 모델
- 데이터사이언티스트
- 데이터리안웨비나
- 데이터엔지니어링배우기
- 회귀분석 프로젝트
- 파이썬오류
- Python
- 파이썬
- 데이터리안
- kaggle 프로젝트
- python 데이터 분석
- 판다스
- ridge 회귀
- 학생 성적 예측
- vader감정분석
- 파이썬기초
- 데이터엔지니어링
- ml 실전 프로젝트
- ai관련 직업
- Today
- Total
데이터 분석가 Damla's blog
[Data Engineering]데이터 파이프라인 학습 방법 본문
<'데이터 엔지니어링'과 '데이터 엔지니어'란>
데이터 엔지니어링은 사실 백엔드와 가까운 영역이다. 데이터 엔지니어는 데이터 관련 직무군이 빅데이터와 함께 급부상할 때, 같이 등장한 직군으로서, 데이터를 사내 구성원이 분석에 활용할 수 있도록 (데이터 분석가, 사이언티스트 포함) 데이터를 끌어다 쉽게 쓸수 있는 파이프라인을 구축하는 직무이다.
백엔드 언어(Python)을 주로 사용해서, 백엔드 직무에서 많이 전향한다고 한다. 나도 데이터 사이언티스트가 목표인 사람으로서, 기본적인 데이터 엔지니어링 이론을 학습하였고 이것을 기록하고자 한다
<학습방법>
1. 데이터 엔지니어링 관련 기본서를 읽는다
- 기본서를 읽는 목적은 데이터 엔지니어링의 기본적인 틀을 익히기 위함이다. 세세하게 어떤 툴을 쓰고 툴을 쓰는 방식을 알기 위함이 아니다.
- 내가 읽은 기본서는 '빅데이터를 지탱하는 기술'이다
(첨언하자면, 난 이 책을 약 3년전에 받았는데, 그때 처음 읽었을 때는 정말 저엉말 하나도 이해가 되지 않았다. 그래서 이거 왜 하는건데, 이게 왜 필요한데... 그냥 바로 data source에서 뽑아써도 되는거 아닌가 하는 생각 뿐이었달까? 지금 생각해보면 그때는 정말 왜 필요한지도 생각해본적이 없었고, 이러한 장치를 경험해본적도 없고 빅데이터가 얼마나 큰수준인지 감도 오지 않아서 그랬던 것 같다. 이전 직장에서는 대체로 에드 훅 분석을 많이 했다. 그랬기 때문에 더더욱 이런 데이터 파이프라인의 필요성을 전여 알지 못했다.)
* 에드 훅 분석 _ Ad hoc analysis : 일회성 ETL단계를 거친 분석
2. Chat GPT를 활용해서 기본서에서 배운 내용을 확인한다
- 사실 나는 명확히 내 머릿속에 그림이 그려지지 않으면 넘아가지않는다. 아무리 기초적인 내용이라도 확인하고 또 확인한다.
- 예를 들어보자면, 기술서에 기본적으로 아래와 같이 파이프라인이 구성된다고 했다
데이터 베이스 - Hadoop - 데이터 웨어하우스 - 데이터 마트 - BI tool
하지만 나는, 아래와 같은 질문이 들었다.
Q1) 왜 꼭 웨어하우스가 있어야 하지? 바로 hadoop을 통하거나 혹은 데이터 베이스에서 바로 데이터를 불러오면 안되나?
Q2) Hadoop은 분리 처리 시스템이라고 정리되어있는데 툴이름인가? 시스템이름인가? 왜 굳이 분리를 해야할까? 매일 발생하는 일일 데이터라면 용량이 전체 보다는 적으니 초기 파이프라인 생성 시기가 아니면 불필요하지 않은가?
Q3) 데이터 웨어하우스에서 바로 BI를 연결할 순 없는가?
이러한 질문이 들었고, 결국 실무에서 모든 것을 갖춰야 할까에 생각이 닿았다.
몇가지 짚고 넘어가면, 꼭 모든 과정을 다 구축할 필요가 없다는 점과, Hadoop은 대용량의 데이터를 빠르고 효율적으로 저장하고 처리하기 위한 목적의 툴이자 시스템이며, Hadoop을 사용해도 되고 사용하지 않아도 되며, 이것은 서비스 특성에 따라 선택해야한다. 그리고 전체적으로 데이터 소스에서 데이터를 추출해서 사용할 경우, 무거운 쿼리(복잡하고 많은 양의 데이터를 조회하는 경우)에는 서비스 운영에 장애를 야기할 수 있기 때문에, 더더욱이 서비스의 안정을 위해 데이터 웨어하우스에 데이터 소스의 데이터를 복사 저장해서 사용한다는 점을 알 수 있었다.
이렇게 나는 GPT를 통해서 내가 이해한 내용을 확인하고 다시 정리하는 과정을 거친다. 비록 GPT에 너무 의존하게 되면 오히려 ㅅ혼자 생각하고 발전할 수 없게 되지만, 오히려 혼자 공부 했을 때 보다 확인하고, 모르는 내용은 더할 수 있고, 책한권으로 배울 수 없는 내용을 GPT를 통해 계속해서 더해나갈 수 있어서 나는 더할 나위 없는 좋은 도구라고 생각한다
3. 미니 프로젝트 만들어보기
- 실제로 만들어보는 것 만큼 좋은 것은 없다. 실제로 나도 ML을 공부하면서 두번정도 mini project를 만들었고, 반복적으로 수업영상을 보는 것보다, 훨씬 많이 기억에 남는다. 실무에서 실제로 써본 내용은 나중에라도 기억에 나듯이말이다
- 이러한 미니 프로젝트도 혼자 기획하려고 하지 않고 나는 GPT의 도움을 받는다.
실제 실무 경험이 없다면, 실무에서는 어떤 상황이 주로 발생하는지 알 수 없기 때문에 나는 기본적인 틀 (프로젝트 기간, 도메인 영역, 목적 등)을 프롬프트에 쓰고 이것을 바탕으로 실무와 가까운 시나리오를 작성해준다.
- 미니 프로젝트는 github에 업로드하고, 내가 어떤 상황과 목적에서 설계했는지를 ReadMe로 꼭 남긴다
- 기록하는 습관은 남도 보기 위함이지만 무엇보다 내가 나중에 기억하기 위함임을 강조한다 (기억은 휘발되니까)
4. 기술 블로그를 통한 실무감각 익히기
- 아무리 시나리오를 써서 만들어보더라도 실무에서 사용되지 못하면 아무 쓸모가 없다고 생각한다.
- 더욱이 내가 겪는 문제를 다른 사람도 분명히 겪었을 것이고 그것을 정리해놓은 곳이기 때문에 지금 내가 똑같은 문제를 겪지 않더라도, 한 번 읽어두면 꼭 다시 기억이 나서 어딘가에서든 도움이 되는 경험을 여러 번 했다.
- 데이터 사이언티스트, 엔지니어링은 이렇게 세분화되고 유명해진지 오래되지 않아서 그렇지 많은 사람들을 거쳤고 엄청 많은 인사이트와 경험이 쌓여있는 영역이다. 그렇기 때문에 이러한 영감을 배우고 도움받기 위해 기술 블로그를 읽는 것은 의무는 아니지만 분명 필요한 학습 방법이기에 추천한다. 나는 몇년간 정말 이것을 습관으로 만들고 싶었는데 계속해서 실패하다가 최근에 기술 블로그를 읽을 시간을 오전 8시 30분으로 실제 정하고, 하루에 10분 이렇게 명확한 기간을 정한 후에 월,화,수,목 이렇게 실천할 수 있는 수준으로 목표설정을 한후 이제야 일주일 정도 꾸준히 보고 있는 상황이다. 나처럼 어려움을 겪는 사람이 있다면 한번 시도해 보시길 바란다.
위 내용은 카일스쿨의 데이터 엔지니어링 공부 영상을 참고 했다.
* 이분은 여러 채널에서 데이터 사이언티스트, 엔지니어를 위한 교육 영상을 만들어 주시는데 매우 유용하다
'파이썬(Python) > Data Engineering' 카테고리의 다른 글
[Step 3] 스타 스키마로 Data Mart 설계하기 & BI툴 시각화 실습 (0) | 2025.05.07 |
---|---|
[Step 2] Data Warehouse 만들기 (0) | 2025.05.07 |
[Step 1] AWS RDS 생성하고 연동하기 (feat. Python) (0) | 2025.05.04 |