4.1.3 관점 3 - 설계한 알고리즘이 규모가 더 큰 데이터셋을 다룰 수 있는가?
알고리즘은 미리 정의된 방식으로 데이터를 처리하여 결과를 출력합니다. 일반적으로 데이터의 크기가 커질수록 이를 처리하는 데 더 많은 시간이 소요됩니다. 빅데이터는 데이터의 크기, 종류의 다양성, 생성 속도의 관점에서 기반 인프라와 알고리즘에 부하를 많이 주는 데이터를 통칭하는 용어로 종종 사용됩니다. 설계가 잘 된 알고리즘의 특징 중 하나는 확장성입니다. 이는 알고리즘이 어떠한 상황에서도 주어진 자원을 적절히 활용하여 합리적인 시간 내에 정확한 결과를 낼 수 있어야 한다는 의미입니다. 좋은 알고리즘 설계의 중요성은 빅데이터를 다룰 때 더욱 강조됩니다. 알고리즘의 확장성은 다음과 같은 두 가지 측면에서 측정할 수 있습니다.
• 입력 데이터가 증가하면 필요한 자원도 증가합니다. 이러한 요구사항을 추정하는 것을 공간 복잡도 분석이라고 합니다.
• 입력 데이터가 증가하면 이를 처리하는 시간도 증가합니다. 이를 분석하는 것을 시간 복잡도 분석이라고 합니다.
알고리즘 개발과 검증 단계에서는 보통 전체 데이터 대신 그 일부를 사용합니다. 그러나 설계 단계에서는 반드시 알고리즘을 대규모 데이터에 적용할 수 있는지, 적용하려면 어떤 방식을 취해야 하는지 고려해야 합니다. 특히 데이터의 크기가 알고리즘의 성능에 어떤 영향을 주는지 면밀히 분석할 필요가 있습니다.