Hadamard 게이트: 중첩을 만드는 양자컴퓨팅의 핵심 부품
Hadamard 게이트는 고전 비트의 0 또는 1 상태를 양자 중첩 상태로 변환하는 가장 기본적인 양자 게이트다. 양자 알고리즘의 대부분은 이 게이트로 시작하며, 중첩·간섭·얽힘을 활용하는 모든 회로의 출발점이 된다. 입문 수준에서 Hadamard 게이트를 이해하면 양자컴퓨팅 전반의 논리 흐름을 파악할 수 있다.
개념 소개
동전을 테이블 위에 올려놓으면 앞면 또는 뒷면이다. 그런데 동전을 공중에 던진 순간, 측정하기 전까지는 "앞면이기도 하고 뒷면이기도 한" 상태라고 상상해 보자. Hadamard 게이트는 바로 이 순간을 만들어 주는 장치다.
고전 컴퓨터의 비트는 $|0\rangle$ 또는 $|1\rangle$ 중 하나만 가질 수 있다. Hadamard 게이트 $H$를 적용하면 두 상태가 동등한 확률로 공존하는 중첩(superposition) 상태가 만들어진다.
$$H|0\rangle = \frac{|0\rangle + |1\rangle}{\sqrt{2}}, \qquad H|1\rangle = \frac{|0\rangle - |1\rangle}{\sqrt{2}}$$
측정하면 각각 50%의 확률로 0 또는 1이 나온다. 하지만 중요한 것은 측정 전의 상태다. 두 가능성이 동시에 존재한다는 사실이 양자컴퓨팅의 연산 능력을 폭발적으로 키운다.
핵심 원리
행렬 표현
Hadamard 게이트는 $2 \times 2$ 유니터리 행렬로 나타낸다.
$$H = \frac{1}{\sqrt{2}}\begin{pmatrix} 1 & 1 \ 1 & -1 \end{pmatrix}$$
- 유니터리(unitary): $H H^\dagger = I$ 이므로 정보 손실이 없고, $H$를 두 번 적용하면 원래 상태로 돌아온다. 즉 $H^2 = I$.
- 부호의 역할: $|0\rangle$을 넣을 때와 $|1\rangle$을 넣을 때, 두 결과의 차이는 $|1\rangle$ 성분의 부호뿐이다. 이 부호 차이가 양자 간섭(interference) 을 제어하는 핵심 열쇠다.
블로흐 구면에서의 의미
블로흐 구면(Bloch sphere) 위에서 $|0\rangle$은 북극, $|1\rangle$은 남극이다. Hadamard 게이트는 이 구면을 X축과 Z축의 중간 축을 기준으로 180° 회전시킨다. 결과적으로 북극과 남극이 적도 위의 두 점($+X$, $-X$ 방향)으로 이동한다.
왜 모든 알고리즘의 첫 단계인가
$n$개의 큐비트에 각각 Hadamard 게이트를 적용하면, $2^n$가지 상태가 동시에 균등하게 중첩된다.
$$H^{\otimes n}|0\rangle^{\otimes n} = \frac{1}{\sqrt{2^n}}\sum_{x=0}^{2^n - 1}|x\rangle$$
3큐비트만으로도 0부터 7까지 8가지 상태를 한꺼번에 표현할 수 있다. 이것이 양자 병렬성의 출발점이며, Deutsch–Jozsa, Grover, Shor 알고리즘 모두 이 준비 단계에서 Hadamard 게이트를 사용한다.
예시·응용
Python 코드: Qiskit으로 Hadamard 게이트 실습
from qiskit import QuantumCircuit
from qiskit.quantum_info import Statevector
# 1큐비트 회로 생성, |0⟩ 초기화
qc = QuantumCircuit(1)
qc.h(0) # Hadamard 게이트 적용
# 상태벡터 확인
sv = Statevector(qc)
print(sv) # [0.707+0.j, 0.707+0.j] ≈ (|0⟩ + |1⟩)/√2
# H를 두 번 적용 → 원래 상태로 복귀
qc.h(0)
sv2 = Statevector(qc)
print(sv2) # [1.+0.j, 0.+0.j] → |0⟩ 복원
응용 1 — 무작위 수 생성
Hadamard 게이트 하나를 $|0\rangle$에 적용하고 측정하면 진정한 물리적 난수(0 또는 1)를 얻는다. 이는 알고리즘 기반의 의사(擬似) 난수와 근본적으로 다르다.
응용 2 — 양자 키 분배(BB84)
BB84 프로토콜에서는 Hadamard 게이트로 두 가지 기저(基底)를 전환하며 도청 여부를 감지한다. 도청자가 잘못된 기저로 측정하면 중첩이 붕괴되어 흔적이 남는다.
응용 3 — 양자 푸리에 변환(QFT)
양자 푸리에 변환의 핵심 빌딩 블록은 Hadamard 게이트다. Shor 알고리즘의 소인수 분해 속도 향상이 QFT, 즉 Hadamard 게이트에서 비롯된다.
정리
Hadamard 게이트는 개념적으로 단순하지만 기능적으로 강력하다. 고전 비트를 양자 중첩으로 변환하고, 두 번 적용하면 원상복귀되며, $n$큐비트에 동시 적용하면 $2^n$개의 균등 중첩을 단번에 만든다. 양자 알고리즘이 "모든 경우를 동시에 탐색한다"는 직관은 바로 이 게이트에서 시작된다. Hadamard 게이트 없이는 양자컴퓨팅의 속도 우위를 논하기 어렵다.
연습문제
Q1.$H|1\rangle$을 계산하고, 이 상태를 측정했을 때 0과 1이 나올 확률을 각각 구하시오.
힌트 보기
$H = \frac{1}{\sqrt{2}}\begin{pmatrix}1&1\\1&-1\end{pmatrix}$를 $\begin{pmatrix}0\\1\end{pmatrix}$에 곱해 보자.
해설 보기
$H|1\rangle = \frac{1}{\sqrt{2}}\begin{pmatrix}1\\-1\end{pmatrix} = \frac{|0\rangle - |1\rangle}{\sqrt{2}}$. 각 진폭의 절댓값 제곱이 확률이므로, 0이 나올 확률 $= \left|\frac{1}{\sqrt{2}}\right|^2 = \frac{1}{2}$, 1이 나올 확률 $= \left|\frac{-1}{\sqrt{2}}\right|^2 = \frac{1}{2}$. 부호가 달라도 측정 확률은 동일하다.
Q2.큐비트 하나에 Hadamard 게이트를 홀수 번(예: 3번) 적용한 결과는 1번 적용한 결과와 같은가? 이유를 서술하시오.
해설 보기
같다. $H^2 = I$이므로 $H^3 = H^2 \cdot H = I \cdot H = H$. 즉 홀수 번 적용하면 $H$와 동일하고, 짝수 번 적용하면 항등 연산이 되어 원래 상태가 복원된다.
Q3.2큐비트 모두에 Hadamard 게이트를 적용하면 몇 가지 상태가 균등 중첩되는가? 그 상태를 수식으로 표현하시오.
힌트 보기
$n=2$일 때 $2^n$을 계산하고, $H^{\otimes 2}|00\rangle$을 전개해 보자.
해설 보기
$2^2 = 4$가지 상태($|00\rangle, |01\rangle, |10\rangle, |11\rangle$)가 균등 중첩된다. $H^{\otimes 2}|00\rangle = \frac{1}{2}(|00\rangle + |01\rangle + |10\rangle + |11\rangle)$. 각 상태의 측정 확률은 $\left|\frac{1}{2}\right|^2 = \frac{1}{4}$로 동일하다.