🔧현업의 파이프라인
오랜만에 블로그 포스팅을 하는 거 같다. 중고책 분석 프로젝트가 끝난 지 약 이주일 정도 흘렀는데, 그 동안 부스트캠프를 하면서 현타(?)가 와버려서 잠깐 코딩을 멈췄었다. 회복하는데 조금 시간이 걸리긴 했지만 마음을 다잡고 다음 프로젝트를 진행할 계획을 조금 씩 세웠다. 이번에는 어떤 프로젝트를 해볼까하는 고민 끝에 저번 프로젝트에서 느낀 아쉬운 점을 개선해보자는 생각이 들었다.
저번 프로젝트에서 나름 괜찮은 결과물을 내긴 했지만 데이터 엔지니어로서 필요한 기술 스택을 전혀 사용해보지 못해 아쉬움이 컸었다. 따라서 이번 프로젝트에서는 참신한 주제에 종속되지 않고 기술 스택을 제대로 다뤄보기로 하였다. 또한 추가적으로 현업에서의 데이터 파이프라인을 모방하면서 조금은 현업스러운(?) 파이프라인을 구성해보기로 했다.
📌이번 프로젝트의 핵심
이런 목표를 가졌으면 이제 선택해야할 중요 사항이 하나 있다. 바로 어떤 기술 스택을 사용해볼 것인가이다. 데이터 엔지니어가 다루는 기술들이 워낙 많다보니 약간의 선택 장애가 왔었다.😱
결론부터 말하자면 내가 다루기로 한 기술은 크게 에어플로우와 쿠버네티스이다. 여기에 부가적으로 다른 게 더 붙을 수는 있겠지만 우선은 크게 이 두 기술을 다루는 데 중점을 두기로 하였다. 두 기술을 선택한 이유는 간단하다.
첫번째, 데이터 파이프라인을 전반적으로 아우르는 가장 기본적인 기술이라고 생각하였다. 두 기술은 공통점이 있는데, 바로 오케스트레이터라는 것이다. 에어플로우는 데이터 파이프라인의 전체적인 스케줄링과 장애 대응을 담당하는, 쿠버네티스는 컨테이너를 담당하는 오케스트레이터이다.
둘의 이러한 공통점 때문에 이 둘을 같이 다루면 나중에 데이터 파이프라인을 전반을 이해하는데 큰 도움이 될 것 같다는 근거없는 생각에 둘을 선택하게 되었다.
두번째는 단순하면서 어떻게 보면 중요한데, 채용공고에 둘의 이름이 굉장히 많이 보였기 때문이다. 실제 필드에서 많이 사용하는 기술을 사용해보는 것이 아무래도 훨씬 유리하지 않겠는가😎
어쩌면 단순하지만 나름 전략적인(?) 방법으로 이번 프로젝트를 기획했는데, 저번에 해보지 못한 것을 새로이 시작하니 뭔가 벌써부터 기대가 되는 것 같다. 기대되는 마음을 조금 가라앉히고, 이제 어떤 식으로 프로젝트를 진행할 지 전반적인 개요를 한 번 살펴보도록 하자.
📄개요
이번 프로젝트는 기술에 초점을 두고 진행하기로 하였다. 그래도 데이터나 목적은 분명해야 프로젝트를 진행하는데 큰 지장이 없기 때문에 이를 확실히 하기로 하였다. 이 부분은 여러 프로젝트를 탐색하면서 인사이트를 얻었다.
항상 프로젝트를 시작하기 앞서 데이터를 구하는 것이 관건이었는데, 이번에는 라이브러리를 이용하여, 가짜 데이터를 만들기로 하였다. 가상의 쇼핑몰을 운영한다고 가정하고, 관련 데이터를 라이브러리를 이용하여 만들어낼 생각이다. 그리고 만들어낸 데이터를 이용하여 간단하게 데이터 웨어하우스를 구축하고 이를 시각화하려고 한다.
🚀아키텍처
저번 프로젝트보다 확실히 뭔가가 더 많아졌다. 아키텍처를 짜느라 고생을 좀 했다😂 데이터 파이프라인을 제대로 만들어 본 경험도 없다보니 여러 프로젝트를 보며 참고를 좀 했는데 잘 짰는지 모르겠다...
사실 아직까지는 확실한 파이프라인을 그릴 수 없을 것 같아서 Transform 부분이나 기타 세세한 부분은 완성하지 못했다. 아마 실제로 프로젝트가 진행되면서 아키텍처의 디테일한 부분을 채워나갈 수 있을 것 같다. (추후 아키텍처는 조금 씩 수정할 생각이다👍)
이번 프로젝트 주제는 가짜 쇼핑몰을 이용한 데이터 웨어하우스 구축이다. 하지만!! 주제보다 훨씬 더 핵심적으로 다룰 부분은 기술이다. 아키텍처에서도 볼 수 있다시피 쿠버네티스, dbt, 에어플로우, 메타베이스 등 다룰 기술이 굉장히 많다는 것을 볼 수 있다.
사실 위의 기술 모두 한 번도 제대로 다뤄본 적이 없어서(특히 dbt는 정말 아예 모름...) 과연 제대로 진행할 수 있을 지 조금 의문이 있지만... 잘 모르는 것은 열심히 공부해서 이번에도 성공적으로 프로젝트를 마무리할 수 있었으면 좋겠다!!
+수정사항
아키텍처가 조금 수정되었다. 원래는 기술 위주로 프로젝트가 전개될 예정이었는데, 7월부터 인턴을 시작하면서 인턴을 할 기업과 유사한 파이프라인을 구축 해보는 것이 좋겠다고 생각하여 조금 더 실용적인 방향으로 프로젝트가 진행할 예정이다. 수정된 아키텍처는 아래와 같다.
바뀐 부분에 대해서 조금 설명을 해보면, 우선 쿠버네티스를 도커로 교체하였다. 현재 프로젝트에서 쿠버네티스를 사용하는건 너무 오버엔지니어링이라 생각하였고, 도커를 잘 사용할 줄 아는 것이 우선이라고 생각하여 이번 기회에 도커를 제대로 써보려고 한다.
또한 Bigquery, Data Studio와 같이 GCP 제품이 많이 추가된 것을 볼 수 있다. 위에서 설명했던 것처럼 최대한 인턴할 기업의 파이프라인과 유사하게 구성하기 위해서 데이터 레이크나 데이터 웨어하우스를 클라우드 제품을 이용하려고 하였고, 대시보드 또한 클라우드를 이용하였다. (그리고 예전부터 Data Studio가 좀 궁금하기도 하였다.)
'프로젝트 > Fake Onlineshop 프로젝트' 카테고리의 다른 글
Fake Onlineshop 프로젝트 (1) - 데이터 생성 및 적재 (0) | 2022.05.14 |
---|