더북(TheBook)

4.1.3 관점 3 - 설계한 알고리즘이 규모가 더 큰 데이터셋을 다룰 수 있는가?

알고리즘은 미리 정의된 방식으로 데이터를 처리하여 결과를 출력합니다. 일반적으로 데이터의 크기가 커질수록 이를 처리하는 데 더 많은 시간이 소요됩니다. 빅데이터는 데이터의 크기, 종류의 다양성, 생성 속도의 관점에서 기반 인프라와 알고리즘에 부하를 많이 주는 데이터를 통칭하는 용어로 종종 사용됩니다. 설계가 잘 된 알고리즘의 특징 중 하나는 확장성입니다. 이는 알고리즘이 어떠한 상황에서도 주어진 자원을 적절히 활용하여 합리적인 시간 내에 정확한 결과를 낼 수 있어야 한다는 의미입니다. 좋은 알고리즘 설계의 중요성은 빅데이터를 다룰 때 더욱 강조됩니다. 알고리즘의 확장성은 다음과 같은 두 가지 측면에서 측정할 수 있습니다.

입력 데이터가 증가하면 필요한 자원도 증가합니다. 이러한 요구사항을 추정하는 것을 공간 복잡도 분석이라고 합니다.

입력 데이터가 증가하면 이를 처리하는 시간도 증가합니다. 이를 분석하는 것을 시간 복잡도 분석이라고 합니다.

알고리즘 개발과 검증 단계에서는 보통 전체 데이터 대신 그 일부를 사용합니다. 그러나 설계 단계에서는 반드시 알고리즘을 대규모 데이터에 적용할 수 있는지, 적용하려면 어떤 방식을 취해야 하는지 고려해야 합니다. 특히 데이터의 크기가 알고리즘의 성능에 어떤 영향을 주는지 면밀히 분석할 필요가 있습니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.