- 4장 - 데이터 엔지니어링 수명 주기 전체에 걸친 기술 선택2024년 11월 13일
- 31514
- 작성자
- 2024.11.13.:39
데이터 엔지니어는 데이터 애플리케이션과 사용자에게 서비스를 제공하기 위해 수명 주기 전체에 걸쳐 데이터를 관리하는 적절한 기술을 선택해야 한다.
많은 사람이 아키텍처와 도구를 혼동하는데, 아키텍처는 무엇을, 왜, 언제 구축해야 하는지 결정하고, 도구는 어떻게 구축할지를 결정한다.
따라서 아키텍처를 올바르게 구축하기 전까지는 기술을 먼저 선택하는 일이 없도록 유의해야 한다.
이제 데이터 기술을 선택할 때 고려할 사항에 대해 알아보자.
팀의 규모와 능력
cargo-cult engineering는 소규모 데이터 팀이 대기업의 기술과 사례를 모방하려다 실패하는 실수를 말한다.
소규모 팀이나 기술력이 약한 팀이라면, 가능한 많은 관리형 도구와 SaaS 도구를 사용해서 비즈니스에 직접적으로 가치를 부여하는 것이 좋다.
새로운 기술과 언어, 도구를 배우는 데는 상당한 시간이 소요되는 만큼 이러한 투자를 현명하게 수행하자.
되도록이면 팀에 이미 익숙한 기술과 워크플로우를 계속 사용할 것을 권한다.
시장 출시 속도
기술 분야에서는 시장 투입의 속도가 승패를 결정한다.
즉, 고품질의 표준과 보안을 유지하면서도 기능과 데이터를 더 신속하게 제공할 수 있는 적절한 기술을 선택해야 한다.
이는 출시, 학습, 반복 및 개선의 긴밀한 피드백 루프에서 작업하는 것을 의미한다.
상호 운용성
기술이나 시스템을 선택할 때는 그 기술이 다른 기술과 상호 작용하고 함께 작동하는지를 확인해야 한다.
상호 운용성은 다양한 기술 또는 시스템이 어떻게 연결되고, 정보를 교환하며, 상호 작용하는지를 나타낸다.
데이터 엔지니어링 수명 주기 전반에 걸쳐 다양한 기술을 연결하는 것이 얼마나 간단한지 항상 알고 있어야 한다.
비용 최적화 및 비즈니스 가치
기술은 주요 비용 동인인 만큼 기술 선택과 관리 전략은 예산에 큰 영향을 미친다.
데이터 엔지니어는 유연성에 관해 실용적으로 고려해야 한다.
유연성과 낮은 초기비용의 장점을 감안할 때, 데이터 엔지니어는 클라우드와 유연한 종량제 중심으로 접근할 것을 권장한다.
현재 vs 미래: 불변의 기술과 일시적 기술 비교
현재를 무시한 채 미래에 집중하게 되면 과잉 엔지니어링으로 이어질 수 있다.
현재에 집중하여, 현재와 가까운 미래에 가장 적합한 기술을 선택하되, 미래 미지의 영역과 진화에 대응할 수 있는 방식으로 선택해야 한다.
그러려면 무엇이 변화할 가능성이 높고, 무엇이 동일하게 유지되는 경향이 있는지를 이해해야 한다.
<불변의 기술>
불변의 기술은 클라우드의 기반이 되는 컴포넌트일 수도 있고 오랜 세월을 견딘 언어와 패러다임일 수도 있다.
클라우드에서는 객체 스토리지, 네트워킹, 서버, 보안 등이 있다.
언어의 경우 SQL과 bash 등이 있다.
<일시적 기술>
일시적 기술은 등장했다가 곧 사라지는 기술이다.
예를 들면 Backbone.js, Ember.js 및 Knockout.js 등이 있다.
따라서 도구들과 모범 사례의 빠른 변화 속도를 고려해 2년마다 도구들을 평가할 것을 권장한다.
장소: 온프레미스, 클라우드, 하이브리드 클라우드, 멀티클라우드
<온프레미스>
온프레미스 시스템을 담당하는 데이터 엔지니어라면 과잉 구매나 과소비 없이 최대 부하 및 대규모 잡에 뛰어난 성능을 제공할 수 있는 대용량 시스템을 구입해야 한다.
<클라우드>
동적이고 원활한 확장은 계절적 요인과 웹 트래픽 부하 급증을 다루는 기업에 매우 유용하다.
<하이브리드 클라우드>
사실 어떤 기업도 모든 워크로드를 하룻밤 사이에 마이그레이션할 수 없다.
따라서 클라우드 환경에서 즉각적인 이점을 얻을 수 있는 특정 워크로드로만 마이그레이션할 수 있다.
예를 들어 온프레미스 스파크 스택을 임시 클라우드 클러스터로 마이그레이션해 데이터 엔지니어링팀의 소프트웨어와 하드웨어 관리에 대한 운영 부담을 줄이고 대규모 데이터 잡을 신속하게 확장할 수 있다.
<멀티클라우드>
멀티클라우드는 워크로드를 여러 퍼블릭 클라우드에 배포하는 것을 의미한다.
Snowflake나 Databricks는 여러 클라우드에 걸쳐 SaaS 제품을 제공한다.
이는 네트워크 지연 시간 및 대역폭 제한으로 인해 성능이 저하되고 데이터 이그레스 비용이 엄청날 수 있는 데이터 집약적인 애플리케이션에 특히 중요하다.
구축과 구매 비교
구축에 대한 논거는 솔루션을 엔드투엔드로 제어할 수 있고 벤더나 오픈 소스 커뮤니티에 의해 좌우되지 않는다는 것이다.
구매를 지지하는 주장은 결국 리소스의 제약과 전문성으로 귀결된다.
즉, 이미 사용 가능한 솔루션보다 더 나은 솔루션을 구축할 수 있는 전문 지식이 있는가 하는 점이다.
'Book > 견고한 데이터 엔지니어링' 카테고리의 다른 글
5장 - 수명 주기 1단계 원천 시스템에서의 데이터 생성 (0) 2024.11.15 3장 - 우수한 데이터 아키텍처 설계 (0) 2024.11.08 2장 - 데이터 엔지니어링 수명 주기 (2) 2024.11.01 1장 - 데이터 엔지니어링 상세 (0) 2024.10.31 다음글이전글이전 글이 없습니다.댓글