더보기
다양한 기술 중 어떤 기술을 채택할 것인가에 대해 고민할 때, 최첨단의 화려한 기술을 쫓는 데만 몰두하기 쉽다. 하지만 그것은 좋은 방법이 아니라고 말한다. 개인적으로 판단했을 때 기술은 더 나은 방향으로 발전하기 때문에 최신 기술이 가장 좋을 것이라고 생각했다. 하지만 이번 챕터를 읽고나서 이는 굉장히 위험한 생각이라는 것을 깨달았다. 그렇다면 어떤 기준으로 기술을 선택해야 할까? 곧 실무자가 되어 실제로 기술을 선택해야 하는 날이 올 때, 당황하지 않기 위한 대비책으로 이번 글을 정리했다.
그 기술이 데이터 제품과 광범위한 비즈니스에 가치를 더해줄 수 있는가?
데이터 엔지니어링 수명 주기 전체에 걸친 기술 선택
아키텍처를 올바르게 구축하기 전까지는 기술을 먼저 선택하는 일이 없도록 유의해야 한다. 즉, 아키텍처가 우선이고 기술은 그다음이다.
데이터 기술을 선택할 때 고려할 사항
- 팀의 규모와 능력
- 시장 출시 속도
- 상호 운용성
- 비용 최적화 및 비즈니스 가치
- 현재 vs 미래: 불변의 기술과 일시적 기술 비교
- 장소: 온프레미스. 클라우드, 하이브리드 클라우드, 멀티클라우드
- 구축과 구매 비교
- 모놀리식과 모듈식 비교
- 서버리스와 서버 비교
- 최적화, 성능, 벤치마크 전쟁
- 데이터 엔지니어링 수명 주기의 드러나지 않는 요소
팀의 규모와 능력
- 한 명이 많은 역할을 수행해야 하는가? vs 아니면 특정 분야만을 담당하는가? ...
- 특정 언어에 익숙한 사람이 있는가? ...
- 팀에 이미 익숙한 기술과 워크플로를 계속 사용하는 것이 좋다.
- 새로운 기술과 언어, 도구를 배우는 데는 상당한 시간이 소요되는 만큼 이러한 투자를 현명하게 수행해야 한다.
* 카고-컬트 엔지니어링: 완전한 이해가 되지 않은 채 무조건 모방하려고 시도함
시장 출시 속도
- 고품질의 표준과 보안을 유지하면서도 기능과 데이터를 더 신속하게 제공할 수 있는 적절한 기술을 선택해야 한다.
- 신속하게, 신뢰성 있게, 안전하게, 보안에 위배되지 않게 작업할 수 있는 도구를 선택해야 한다.
상호 운용성
* 상호 운용성: 다양한 기술 또는 시스템이 연결되고, 정보를 교환하며, 상호 작용하는지 !
- 데이터 엔지니어링 수명 주기 전반에 걸쳐 다양한 기술을 연결하는 것이 얼마나 간단한지 항상 알고 있어야 한다.
비용 최적화 및 비즈니스 가치
- 제어할 수 있는 기본 비용(총 소유비용, 기회비용, 핀옵스)을 이해해야 한다.
- 총 소유비용
- 활용되는 제품 및 서비스의 직접비용과 간접비용을 포함한 이니셔티브의 전체 추정비용
- 유연성에 관해 실용적으로 고려해야 한다.
- 유연성과 낮은 초기비용의 장점으 감안할 때, 클라우드와 유연한 종량제 기술을 중심으로 OPEX 우선 접근 방식을 취할 것을 권장한다.
- 기회비용
- 아키텍처 또는 프로세스를 선택할 때 발생하는 기회상실비용
- 기회비용을 최소화하는 첫 번째 단계는 데이터 기술을 눈을 크게 뜨고 평가하는 것
- 핀옵스
- 시스템을 모니터링하고 동적으로 조정하는 데브옵스와 같은 방식을 적용해 재무적 책임과 비즈니스 가치를 완전히 운용하는 것
- 비용 절감에 관한 것이 아닌 돈을 버는 것
- 총 소유비용
현재 vs 미래: 불변의 기술과 일시적 기술 비교
- 무엇이 뱐화할 가능성이 높고, 무엇이 동일하게 유지되는 경향이 있는지 이해해야 한다.
- 불변의 기술 - 클라우드의 객체 스토리지, 네트워킹, 서버, 보안, 언어의 SQL, 배시 등
- 일시적 기술 - 자바스크립트 등등..
- 선택한 기술에서 다른 기술로의 전환이 얼마나 쉬운지를 고려해야 한다.
장소: 온프레미스, 클라우드, 하이브리드 클라우드, 멀티클라우드
- 온프레미스
- 과잉 구매나 과소비 없이 최대 부하 및 대규모 잡에 뛰어난 성능을 제공할 수 있는 대용량 시스템을 구입해야 한다.
- 기존 시스템을 효율적으로 가동하면서 다음에 어떤 조치를 취할지 결정해야 한다.
- 클라우드
- 클라우드로 마이그레이션할 때 획기적인 사고방식의 전환이 필요한 이유를 파악해야 한다.
- 하이브리드 클라우드
- 조직이 일부 워크로드를 클라우드 외부에 무기한으로 유지한다고 가정
- 멀티클라우드
- 워크로드를 여러 퍼블릭 클라우드에 배포하는 것
데이터 엔지니어와 데이터 아키텍트는 빠르게 변화하는 클라우드 환경에 대한 인식을 유지하는 것이 좋다.
더보기
필자의 관점에서는 클라우드로의 전환은 아직 시작 단계에 있다고 한다. 이제 시작이라니.. 다행? 이라는 생각이 든다.
* 락인효과: 특정 서비스나 제품을 이용한 고객들이 지속적으로 사용할 수 있도록 고객을 가두는 효과
구축과 구매 비교
- 비즈니스에 경쟁 우위를 제공할 때 구축과 커스터마이징에 투자할 것을 제안한다.
- 경쟁 우위를 파악하고 맞춤화를 위해 자원을 투자하는 것이 합리적인지 파악해야 한다.
- 무언가를 구축함으로써 중요한 가치를 더하거나 마찰을 크게 줄일 수 있는 몇 가지 영역에 집중해야 한다.
모놀리식과 모듈식 비교
- 모놀리스는 이해하기 쉽고 복잡성이 줄어든다는 점에서 매력적이지만 비용이 많이 든다.
서버리스와 서버 비교
* 서버리스: 개발자와 데이터 엔지니어는 백그라운드에서 서버를 관리하지 않고도 애플리케이션을 실행할 수 있다.
- 서버리스 도입에 비용이 많이 드는 시기를 예측하기 위해 클라우드 가격의 세부 사항을 이해해야 한다.
- 모델링에는 최악의 시나리오도 포함되어야 한다.
- 추상화가 우세한 경향이 있다.
- 서버리스를 먼저 사용한 다음, 서버리스 옵션을 사용할 수 없을 만큼 충분히 성장한 후에는 서버를 사용해야 한다.
최적화, 성능, 벤치마크 전쟁
- 실제 사용 사례를 벤치마킹하려면 예쌍되는 실제 데이터와 쿼리 크기를 시뮬레이션해야 한다.
- 요구 사항에 대한 상세한 평가를 바탕으로 쿼리 성능 및 자원 비용을 평가해야 한다.
데이터 엔지니어링 수명 주기의 드러나지 않는 요소
- 어떤 기술을 선택하는 이 요소를 어떻게 지원하는지 꼭 이해해야 한다.
- 오케스트레이션 기술을 선택하는 모든 사용자는 옵션을 검토할 것을 강력히 권장한다.
항상 아키텍처와 동일한 방식으로 기술에 접근하고,
트레이드오프를 평가하고 되돌릴 수 있는 결정을 내리는 것을 목표로 삼자.
반응형