Ch.7 코드가 돌아가는 원리

느린 코드 vs 빠른 코드 — Big O 핵심

Big O 표기법의 대표적인 시간복잡도 4가지를 설명할 수 있다AI가 비효율적 알고리즘을 쓸 때 알아챌 수 있다해시맵 조회와 배열 검색의 시간복잡도 차이를 안다

같은 기능인데 하나는 0.01초, 하나는 10분?

AI에게 검색 기능을 만들어달라고 했더니 두 가지 버전을 줬습니다. 하나는 데이터 1만 건에서 0.001초, 다른 하나는 10초가 걸립니다. 코드를 봐도 둘 다 '작동'은 합니다.

코드가 작동하는 것과 효율적인 것은 완전히 다릅니다. AI가 비효율적 코드를 줘도 모르면 그대로 쓰게 됩니다.

알고리즘과 Big O를 이해하면 AI가 만든 코드의 성능을 판단하고 더 나은 방법을 요청할 수 있습니다.


article

핵심 내용

알고리즘 = 문제를 해결하는 방법. 같은 문제에도 빠른 방법과 느린 방법이 있습니다.

비유: 전화번호부에서 '김철수'를 찾는 두 가지 방법이 있습니다. 방법 A — 1페이지부터 한 장씩 넘기기. 최악의 경우 전부 넘겨야 합니다. 방법 B — 중간을 펴서 'ㄱ' 찾고, 다시 중간을 펴서 '김' 찾기. 매번 절반씩 줄어듭니다.

Big O = 데이터가 커질 때 속도가 어떻게 변하는지 표현하는 방법

실감 비교: 데이터 10,000개일 때 O(1) = 1번 | O(log n) = 14번 | O(n) = 10,000번 | O(n²) = 1억 번 같은 데이터인데 방법에 따라 1번과 1억 번의 차이가 납니다.

바이브코더가 이걸 왜 알아야 하나? AI가 for문 안에 for문을 넣는 코드(O(n²))를 만들 때가 있습니다. 데이터가 적으면 괜찮지만, 많아지면 치명적입니다. "이 코드의 시간복잡도가 어떻게 되는지 확인해줘"라고 물어볼 수 있어야 합니다.

팁: AI에게 "이 코드를 더 효율적으로 만들 수 있어?"라고 물어보면 최적화 제안을 받을 수 있습니다. 'Set이나 Map을 써서 O(n)으로 바꿔줘'라고 구체적으로 요청하면 더 좋습니다.

해시맵(딕셔너리)으로 값을 찾는 시간복잡도는?

O(n)은 데이터 양에 관계없이 같은 시간이 걸린다

알고리즘 감각 장착 완료

key

핵심 용어

O(1) 상수

데이터 양에 관계없이 즉시 — 사물함 번호로 바로 찾기

O(log n) 로그

절반씩 줄여가며 찾기 — 전화번호부 반씩 넘기기

O(n) 선형

처음부터 하나씩 — 1페이지부터 순서대로 넘기기

O(n²) 제곱

모든 쌍 비교 — 30명 학생 전원이 서로 악수

check_circle

핵심 정리

  • 1알고리즘 = 문제 해결 방법, Big O = 효율성 측정 도구
  • 2O(1) 상수 < O(log n) 로그 < O(n) 선형 < O(n²) 제곱
  • 3AI가 중첩 for문을 쓰면 → O(n²) → Map/Set으로 O(n) 요청

퀴즈와 인터랙션으로 더 깊이 학습하세요

play_circle인터랙티브 레슨 시작