데이터 엔지니어는 데이터 애플리케이션과 사용자에게 서비스를 제공하기 위해 수명 주기 전체에 걸쳐 데이터를 관리하는 적절한 기술을 선택해야 합니다. 이번 장에서는 좋은 아키텍처에 적합한 기술을 선택하는 방법에 대해 알아보도록 하겠습니다. 적절한 데이터 기술을 선택하는 기준은 간단합니다. '그 기술이 데이터 제품과 광범위한 비즈니스에 가치를 더해줄 수 있는가? 다.
많은 사람이 아키텍처와 도구를 혼동하는데, 아키텍처는 전략적이고 도구는 전술적입니다. "우리 데이터 아키텍처는 도구 X, Y, Z다"라는 말을 종종 듣는데, 이는 아키텍처에 대한 잘못된 사고방식이라 합니다.
아키텍처는 비즈니스의 전략적 목표를 충족하는 데이터 시스템의 고수준 설계, 로드맵 및 청사진이다. 아키텍처는 무엇을 what, 왜 why , 언제 when 구축해야 하는지를 결정합니다. 그리고 아키텍처를 실현하는 데 쓰이는 도구는 어떻게 how 구축할지를 결정한다.
우리는 종종 팀들이 아키텍처를 설계하기 전에 기술을 무작정 선택하는 것을 볼 수 있습니다. 아키텍처를 올바르게 구축하기 전까지는 기술을 먼저 선택하는 일이 없도록 유의해야 합니다. 아키텍처가 우선이고 기술은 그다음입니다.
4장에서는 전략적 아키텍처의 청사진을 확보하고 기술을 선택하는 전술적 계획에 관해 설명합니다. 데이터 엔지니어링 수명 주기 전반에 걸쳐 데이터 기술을 선택할 때 고려할 사항은 다음과 같습니다.
- 팀의 규모와 능력
- 시장 출시 속도
- 상호 운용성
- 비용 최적화 및 비즈니스 가치
- 현재 vs 미래: 불변의 기술과 일시적 기술 비교
- 장소: 온프레미스, 클라우드, 하이브리드 클라우드, 멀티클라우드
- 구축과 구매 비교
- 모놀리식과 모듈식 비교
- 서버리스와 서버 비교
- 최적화, 성능, 벤치마크 전쟁
- 데이터 엔지니어링 수명 주기의 드러나지 않는 요소
4.1 팀의 규모와 능력
데이터 엔지니어링 기술 선택에서 가장 먼저 평가해야 할 요소는 팀의 규모와 기술 역량입니다. 팀의 규모에 따라 채택하는 기술의 복잡성이 결정됩니다. 소규모 팀이나 기술력이 약한 팀이라면, 최첨단 기술보다는 관리형 도구와 SaaS 도구를 사용해 비즈니스에 직접 가치를 제공하는 복잡한 문제에 역량을 집중하는 것이 좋습니다. 팀의 기술 목록을 작성하고, 이미 익숙한 도구와 워크플로를 계속 사용하는 것이 효율성을 높일 수 있습니다.
4.2 시장 출시 속도
기술 선택 시에는 고품질의 표준과 보안을 유지하면서도 기능과 데이터를 신속하게 제공할 수 있는 기술을 선택해야 합니다. 이는 출시, 학습, 반복, 개선의 피드백 루프를 의미하며, 불필요한 복잡성을 피하는 것이 중요합니다. 팀이 잘 알고 있는 기술을 활용하면 시간적, 기술적 우위를 점할 수 있습니다.
4.3 상호 운용성
상호 운용성은 데이터 엔지니어링에서 필수적인 요소입니다. 여러 시스템이 어떻게 상호 작용하고 데이터를 교환하는지에 대해 고려해야 합니다. 다양한 데이터베이스와 도구 사이의 통합이 얼마나 원활하게 이루어질 수 있는지 평가하고, 모듈식 설계를 통해 새로운 기술 도입 시 통합을 쉽게 할 수 있도록 만들어야 합니다.
4.4 비용 최적화 및 비즈니스 가치
비용은 데이터 기술 선택에 있어 중요한 요소로 총소유비용(TCO), 기회비용, 핀옵스(FinOps)를 함께 고려해야 합니다. 특히 클라우드를 사용하는 경우 비용을 관리하고 최적화하는 전략이 필요하며, 단순한 비용 절감을 넘어서 비즈니스 가치를 창출하는 데 초점을 맞춰야 합니다.
4.4.1 총소유비용
총 소유비용(TCO)은 기술을 선택할 때 발생하는 모든 비용을 뜻합니다. 이는 기술의 직접비용(예: 클라우드 서비스 비용)과 간접비용(예: 인프라 유지 관리 비용)을 포함하며, 이를 기반으로 비용 대비 가치를 평가해야 합니다.
4.4.2 총 소유 기회비용
총소유 기회비용(TOCO)은 기술 선택 시 다른 기회를 포기하는 대가를 의미합니다. 특정 기술을 선택하면 다른 선택지를 배제하게 되므로, 기회비용을 고려하여 의사 결정을 해야 합니다. 잘못된 기술 선택으로 인해 새로운 기술로 전환할 때 추가 비용이 발생할 가능성도 있습니다.
4.4.3 핀옵스
핀옵스(FinOps)는 클라우드 지출을 최적화하고 비즈니스 가치를 창출하는 데 초점을 맞춘 재무 관리 전략입니다. 단순히 비용을 줄이는 것이 아니라, 클라우드 지출을 통해 더 많은 수익과 고객 가치를 창출할 수 있도록 돕는 데 중점을 둡니다.
4.5 현재 vs 미래: 불변의 기술과 일시적 기술 비교
데이터 엔지니어링의 빠른 변화 속에서 기술을 선택할 때는 현재와 미래를 모두 고려해야 합니다. 불변의 기술은 클라우드 인프라와 같은 장기적으로 유지될 기술을 의미하며, 객체 스토리지나 SQL 같은 기술이 해당됩니다. 반면, 일시적인 기술은 자바스크립트 프레임워크와 같이 빠르게 사라질 가능성이 있는 기술들입니다. 데이터 엔지니어는 2년마다 기술을 재평가하는 것이 권장되며, 불변의 기술을 중심으로 시스템을 구축해야 합니다.
4.6 장소: 온프레미스, 클라우드, 하이브리드 클라우드, 멀티클라우드
기술 스택을 실행할 장소에 대한 선택은 점점 더 중요해지고 있습니다.
4.6.1 온프레미스
온프레미스는 기업이 하드웨어를 직접 소유하고 관리하는 방식으로, 여전히 대규모 기업에서 사용됩니다. 하드웨어 관리와 업그레이드가 필요하지만 안정적인 환경을 제공합니다.
4.6.2 클라우드
클라우드는 AWS, 구글 클라우드, 애저 같은 클라우드 서비스 제공자를 통해 하드웨어와 소프트웨어를 임대하는 방식입니다. 클라우드는 빠른 확장성과 유연성을 제공하며, 특히 스타트업이나 빠르게 확장하는 기업에 적합합니다. 클라우드 서비스는 IaaS, PaaS, SaaS로 나뉘며, 점차 서버리스 서비스로 발전하고 있습니다.
4.6.3 하이브리드 클라우드
하이브리드 클라우드는 온프레미스와 클라우드를 혼합한 방식으로, 일부 워크로드를 온프레미스에 남겨두고 나머지는 클라우드로 전환하는 형태입니다. 이 방식은 기존 시스템과 새로운 클라우드 시스템을 효과적으로 통합할 수 있습니다.
4.6.4 멀티클라우드
멀티클라우드는 여러 퍼블릭 클라우드 제공자에 배포하는 방식으로, 다양한 클라우드에서 서비스의 성능과 비용을 최적화할 수 있습니다. 네트워크 지연 시간과 데이터 이그레스 비용이 큰 데이터 집약적인 애플리케이션에 특히 유용합니다
4.7 구축과 구매 비교
구축과 구매는 기술 도입에서 오랜 논쟁 주제입니다. 구축의 장점은 솔루션을 엔드투엔드로 제어할 수 있다는 것이고, 구매는 리소스와 전문성이 부족한 경우 이미 제공되는 솔루션을 사용하는 것이 더 효율적입니다. 총소유비용(TCO), 기회비용(TOCO)을 고려하여 비즈니스에 경쟁 우위를 제공하는 방안을 선택해야 합니다.
비즈니스에 경쟁 우위를 제공할 수 있을 때는 구축과 커스터마이징에 투자하는 것이 바람직하며, 그렇지 않은 경우 이미 시장에 나와 있는 솔루션을 사용하는 것이 좋습니다. 대부분의 경우, 모든 것을 직접 구축하는 것은 리소스 낭비일 수 있습니다.
기업들이 소프트웨어를 채택하는 방식은 과거보다 많이 변화했습니다. 과거에는 IT 부서가 소프트웨어 채택을 주도했다면, 오늘날에는 개발자와 데이터 엔지니어가 주도하는 상향식 채택이 일반적입니다.
4.7.1 오픈 소스 소프트웨어
오픈 소스 소프트웨어(OSS)는 특정 라이센스 조건에 따라 공개된 소프트웨어입니다. OSS는 공동 작업자들이 생성하고 유지 관리하며, 대부분 자유롭게 사용하고 배포할 수 있습니다. 그러나 소스 코드 배포 시 오픈 소스에서 파생된 소프트웨어의 코드도 공개해야 하는 경우와 같은 주의사항이 있을 수 있습니다. OSS는 크게 커뮤니티 관리형 OSS와 상용 OSS로 나눌 수 있습니다.
커뮤니티 관리 OSS
커뮤니티 관리형 OSS는 강력한 커뮤니티와 활발한 사용자 기반이 필수적입니다. 인지도, 성숙도, 문제 해결 능력, 프로젝트 관리 등이 성공적인 OSS 프로젝트의 핵심 요소입니다. 예를 들어, 깃허브(GitHub)의 스타와 포크 수를 통해 해당 프로젝트의 인기도를 확인할 수 있습니다. 또한, 커뮤니티가 문제 해결을 도와주고 기여할 수 있는지 여부도 평가해야 합니다.
상용 OSS
상용 OSS는 기업이 OSS를 기반으로 제공하는 상용 서비스입니다. 상용 OSS는 무료로 제공되는 OSS의 '핵심' 기능을 바탕으로 추가 기능과 관리 서비스를 포함해 제공합니다. 상용 OSS를 선택할 때는 벤더의 지원 모델, 릴리스 주기, 버그 수정, 가격 설정 등을 신중하게 평가해야 하며, 제공되는 가치와 서비스 모델을 꼼꼼히 검토해야 합니다.
4.7.2 전용 폐쇄형 네트워크 서비스
전용 폐쇄형 네트워크 서비스는 비공개 소스 소프트웨어를 기반으로 하며, 주로 대규모 기업에서 사용됩니다. 이들 서비스는 독립적으로 제공될 수도 있고, 클라우드 플랫폼의 일부로 제공될 수도 있습니다. 최근 독립형 데이터 도구는 빠르게 성장하고 있으며, 많은 경우 벤처캐피털(VC)로부터 자금을 조달하여 확장하고 있습니다
OX 퀴즈
퀴즈 1) 아키텍처는 기술을 구현하는 전술적 도구에 해당하며, 도구는 전략적 목적을 충족하는 역할을 한다.
정답: X 해설: 아키텍처는 전략적인 요소이며, 도구는 전술적 요소에 해당합니다.
퀴즈 2) 클라우드 서비스는 빠른 확장성과 유연성을 제공하므로, 스타트업이나 빠르게 확장하는 기업에 적합하다.
정답: O 해설: 클라우드는 빠른 확장성과 유연성을 제공하여 특히 스타트업에 적합합니다.
퀴즈 3) 상용 오픈 소스 소프트웨어(OSS)는 무료로 제공되지만 추가 기능을 포함한 관리 서비스는 비용이 부과될 수 있다.
정답: O 해설: 상용 OSS는 핵심 기능은 무료로 제공되지만, 추가 기능이나 관리 서비스는 유료로 제공될 수 있습니다.
'Data > 엔지니어링' 카테고리의 다른 글
데이터 엔지니어링 수명 주기 (0) | 2024.09.23 |
---|