HOME
NOTE

시간 복잡도를 아는 것은 왜 중요한가

CREATED
2025. 3. 31. 오전 11:50:31
UPDATED
2025. 3. 31. 오전 11:54:46
TAGS
  • 개발할 때 시간 복잡도는 알고리즘이나 코드가 얼마나 빠르게 동작할 수 있는지를 가늠하는 중요한 척도임
  • 프로젝트가 작을 때는 직접 체감하기 어렵지만, 데이터나 트래픽이 커지면 알고리즘 효율성이 곧 성능, 리소스 사용량, 운영 비용 등에 직결됨.

좀 더 상세하게는,

  1. 성능 최적화: 동작 시간이 긴 알고리즘은 사용자가 느끼는 응답 속도에 부정적인 영향을 줌. 예를 들어,
    • O(n^2) 알고리즘은 입력 크기가 조금만 커져도 기하급수적으로 수행 시간이 늘어남.
    • O(log n) 또는 O(n) 알고리즘은 상대적으로 큰 입력에도 빠른 처리가 가능함.
  2. 스케일링(Scalability): 초기에 서비스 사용자가 적을 때는 문제가 없어 보이지만, 규모가 커질수록 비효율적인 알고리즘은 병목이 될 수 있음
    • 적절한 시간 복잡도를 갖춘 알고리즘을 택하면 부하가 커져도 서비스 품질 유지가 쉬워짐.
  3. 비용 절감
    • 코드가 비효율적이면 서버 스펙을 더 높이거나 클라우드 자원을 많이 사용해야 함.
    • 시간 복잡도를 개선하면 같은 리소스로 더 많은 작업 처리가 가능해져 비용을 줄일 수 있음.
  4. 성능 이슈 파악
    • 시간 복잡도를 알고 있으면, 코드 최적화를 고민하거나 성능 병목을 찾을 때 효율적으로 접근할 수 있음.
    • 복잡도 분석을 통해 어떤 부분을 우선적으로 개선해야 하는지 판단이 쉬워짐.