본문 바로가기
codeit sprint backend/weekly paper

[3-2] 알고리즘과 자료구조: 시간 복잡도

by boolynn 2026. 1. 26.

시간복잡도는 입력 데이터 크기(N) 증가에 따른 알고리즘의 연산 시간 변화를 나타낸다. 이는 데이터 크기에 따른 작업량의 증가를 확인해 처리 속도를 예측하는 척도이다. 이 중 O(N)과 O(logN)을 통해 시간복잡도에 대해 이해해보자.

 

✔️ O(N)

O(N)은 N개의 데이터를 N번에 거쳐 처리한다.

실생활 예시

단어가 무작위로 나열된 사전에서, ‘사과’라는 단어를 찾는 것과 같다. 이 경우 모든 단어와 대조해 보아야 하기 때문에 N번의 처리 과정을 거친다.

데이터가 1백만 개라면?

1백만 개의 데이터를 처리해야 한다.

 

✔️ O(logN)

O(logN) N개의 데이터를 logN번을 거쳐 처리한다.

실생활 예시

ㄱ,ㄴ,ㄷ 나열된 사전에서 '사과'라는 단어를 찾는 것과 같다. 이 경우 반을 펴서 비교하고, 절반을 버리는 식으로 진행하여 빠른 탐색을 진행할 수 있다.

데이터가 1백만 개라면?

log(1,000,000)으로 절반씩 버린다고 할 때 대략 20번의 연산을 수행하면 된다.

 

✔️ 정리

소량의 데이터에서는 알고리즘 간의 차이가 미미해 보일 수 있다. 하지만 대규모 데이터를 처리하는 현대의 컴퓨팅 환경에서 시간 복잡도는 시스템의 성패를 결정짓는 핵심 지표가 된다.

기하급수적인 성능 차이

앞서 살펴보았듯 데이터가 100만 개일 때, O(N)은 100만 번의 연산이 필요하지만 O(log N)은 단 20번의 연산만으로 충분하다. 이 5만 배의 효율 차이는 데이터 규모가 커질수록 더욱 압도적으로 벌어진다.

경제적 가치와 인프라 최적화

시간 복잡도를 고려한 설계는 단순한 속도 개선을 넘어 실질적인 비즈니스 자산을 보호한다.

  • 자원 절감: CPU 사용량과 메모리 점유율을 낮춰 하드웨어의 부하를 줄임
  • 비용 혁신: 클라우드 인프라(AWS, Azure 등) 사용량을 최적화하여 운영 비용을 절감
  • 사용자 경험: 응답 시간을 단축하여 서비스 이탈률을 방지하고 고객 만족도를 높임

결론

결국, 알고리즘 설계 단계부터 시간 복잡도를 치밀하게 고민하는 것은 단순한 기술적 선택이 아니다. 이는 컴퓨팅 자원을 효율적으로 운영하고 인프라 비용을 극대화하여 경제적 가치를 창출하는 '고효율 소프트웨어 개발'의 본질이라고 할 수 있다.