본문 바로가기
데이터 과학 수학

0과 1 사이의 무한한 가능성, 양자 컴퓨팅을 지탱하는 선형대수학

by dexien 2026. 4. 18.

양자 컴퓨팅 관련 뉴스를 보면 항상 "기존 컴퓨터로 수만 년 걸릴 계산을 몇 분 만에"라는 표현이 나옵니다. 근데 어떻게 그게 가능한지 설명하는 글은 별로 없습니다. 신비롭게 포장하거나 너무 깊은 물리학으로 들어가거나 둘 중 하나거든요.

알고 보면 양자 컴퓨팅의 연산은 선형대수학으로 설명됩니다. 큐비트는 벡터이고 양자 게이트는 행렬입니다. 행렬을 벡터에 곱하는 게 양자 연산의 전부입니다. 이미 벡터와 행렬을 이해했다면 양자 컴퓨팅의 수학 구조도 따라올 수 있습니다.

0과 1 사이의 무한한 가능성, 양자 컴퓨팅을 지탱하는 선형대수학

큐비트란 무엇인가

고전 컴퓨터의 비트는 0 아니면 1입니다. 스위치가 켜지거나 꺼지거나 둘 중 하나예요. 양자 컴퓨터의 큐비트는 다릅니다. 0이면서 동시에 1인 상태가 가능합니다. 이게 중첩(Superposition)입니다.

수학적으로 큐비트는 2차원 복소 벡터 공간의 단위 벡터입니다. 기저 벡터를 |0⟩과 |1⟩로 표기하는데, 이게 우리가 알던 열벡터와 같습니다.

|0⟩ = [1, 0] (위쪽 방향 단위 벡터)
|1⟩ = [0, 1] (아래쪽 방향 단위 벡터)

고전 비트가 이 두 벡터 중 하나라면, 큐비트는 이 두 벡터의 선형 결합입니다. |ψ⟩ = α|0⟩ + β|1⟩ 형태로 표현됩니다. α와 β는 복소수이고 이게 큐비트의 상태를 결정합니다.


중첩 상태를 수식으로 표현하면

α와 β는 복소수인데, 이 값들이 중요한 제약 조건을 만족해야 합니다.

|α|² + |β|² = 1

|α|²는 측정했을 때 |0⟩이 나올 확률, |β|²는 |1⟩이 나올 확률입니다. 둘을 더하면 1이어야 합니다. 어떻게든 측정은 이루어져야 하니까요. 선형대수학 용어로는 벡터의 노름이 1인 단위 벡터 조건과 같습니다.

예를 들어 α = 1/√2, β = 1/√2이면 |α|² = 0.5, |β|² = 0.5입니다. 측정했을 때 0이 나올 확률 50%, 1이 나올 확률 50%인 완전한 중첩 상태입니다. 동전을 던지기 전 상태랑 비슷하게 생각할 수 있습니다. 던지기 전엔 앞면도 아니고 뒷면도 아닌 상태, 던지는 순간(측정) 하나로 결정됩니다.


양자 게이트는 행렬이다

고전 컴퓨터에서 AND, OR, NOT 같은 논리 게이트가 비트를 변환하듯, 양자 컴퓨터에서 양자 게이트는 큐비트 벡터를 변환합니다. 수학적으로 양자 게이트는 유니타리 행렬(Unitary Matrix)입니다.

유니타리 행렬은 U†U = I를 만족하는 행렬입니다. U†는 켤레 전치 행렬입니다. 이 조건이 중요한 이유는 벡터의 길이를 보존하기 때문입니다. 큐비트는 항상 단위 벡터여야 하는데, 유니타리 변환은 길이를 바꾸지 않고 방향만 바꿉니다. 회전 변환과 같은 성질입니다.

가장 자주 쓰이는 양자 게이트 몇 가지를 행렬로 보면 이렇습니다.

게이트 이름 행렬 표현 역할
Pauli-X (NOT) [[0, 1], [1, 0]] |0⟩ ↔ |1⟩ 뒤집기
Pauli-Z [[1, 0], [0, -1]] |1⟩의 위상 반전
Hadamard (H) 1/√2 × [[1, 1], [1, -1]] 완전한 중첩 상태 생성

하다마드 게이트 직접 계산해보기

하다마드 게이트가 가장 중요합니다. 결정된 상태를 완전한 중첩 상태로 만드는 게이트입니다. |0⟩에 하다마드 게이트를 적용하면 어떻게 되는지 직접 계산해 보겠습니다.

H = 1/√2 × [[1, 1], [1, -1]]
|0⟩ = [1, 0]

H|0⟩ = 1/√2 × [[1, 1], [1, -1]] × [1, 0]
= 1/√2 × [1×1 + 1×0, 1×1 + (-1)×0]
= 1/√2 × [1, 1]
= [1/√2, 1/√2]

결과가 [1/√2, 1/√2]입니다. α = 1/√2, β = 1/√2이니 |α|² = 0.5, |β|² = 0.5입니다. 0이 나올 확률 50%, 1이 나올 확률 50%인 완전한 중첩 상태가 됐습니다. |1⟩에 적용하면 어떻게 될까요.

H|1⟩ = 1/√2 × [[1, 1], [1, -1]] × [0, 1]
= 1/√2 × [1×0 + 1×1, 1×0 + (-1)×1]
= 1/√2 × [1, -1]
= [1/√2, -1/√2]

이번엔 [1/√2, -1/√2]입니다. |α|² = 0.5, |β|² = 0.5로 확률은 똑같이 50:50인데 β가 음수입니다. 이 부호 차이가 양자 간섭 효과를 만들어내는데, 양자 알고리즘에서 틀린 답을 상쇄하고 맞는 답을 강화하는 데 씁니다.


측정: 벡터가 숫자로 바뀌는 순간

중첩 상태로 연산하던 큐비트도 측정하는 순간 |0⟩ 또는 |1⟩ 중 하나로 확정됩니다. 이걸 파동 함수 붕괴라고 합니다. 선형대수학으로는 투영(Projection) 연산입니다.

|ψ⟩ = [1/√2, 1/√2] 상태를 측정하면 |α|² = 0.5 확률로 0, |β|² = 0.5 확률로 1이 나옵니다. 어느 쪽이 나올지는 확률적으로 결정됩니다. 측정 후엔 그 상태로 고정됩니다. 다시 측정해도 같은 값이 나옵니다.

이게 양자 컴퓨팅의 까다로운 부분입니다. 연산은 중첩 상태로 동시에 처리하지만 결과를 꺼내는 순간 하나의 값으로 확정됩니다. 그래서 양자 알고리즘은 원하는 답이 높은 확률로 나오도록 중첩 상태를 설계하는 게 핵심입니다.


큐비트가 늘어날수록 지수적으로 커지는 이유

비트 2개는 00, 01, 10, 11 네 가지 상태 중 하나입니다. 동시에 하나만 가질 수 있습니다. 큐비트 2개는 이 네 가지 상태를 동시에 중첩할 수 있습니다. 두 큐비트의 상태 공간은 텐서 곱(Tensor Product)으로 계산하면 2² = 4차원입니다.

큐비트가 n개면 2ⁿ차원 벡터 공간이 됩니다. 큐비트 10개면 2¹⁰ = 1024개 상태를 동시에 표현합니다. 큐비트 300개면 2³⁰⁰개 상태인데, 이 숫자는 우주의 원자 수보다 많습니다. 고전 컴퓨터가 순서대로 하나씩 처리해야 하는 걸 양자 컴퓨터는 동시에 처리할 수 있는 이유가 여기에 있습니다.


고전 비트와 양자 큐비트 한눈에 비교

특징 고전 비트 양자 큐비트
수학적 표현 스칼라 (0 또는 1) 복소 단위 벡터
상태 0 또는 1 중 하나 0과 1의 중첩
연산 도구 불 대수 (AND, OR, NOT) 유니타리 행렬 곱셈
n개 확장 시 상태 수 n개 (선형 증가) 2ⁿ개 (지수 증가)
결과 획득 결정론적 확률론적 (측정 시 결정)
가역성 일부 불가역 모든 연산 가역

양자 컴퓨팅이 어렵게 느껴지는 이유 중 하나는 물리학과 수학이 동시에 나오기 때문입니다. 근데 수학 구조만 보면 벡터에 행렬을 곱하는 게 전부입니다. 큐비트는 단위 벡터, 게이트는 유니타리 행렬, 측정은 투영 연산. 선형대수학을 이미 알고 있다면 양자 연산의 형식은 생각보다 익숙합니다.


소개 및 문의 · 개인정보처리방침 · 면책조항

© 2026 블로그 이름