양자컴퓨팅에서 |0⟩ 같은 브라켓 표기법은 어려워 보이지만 오히려 양자상태를 간단하게 쓰기 위한 장치입니다. 벡터·내적·중첩·측정을 하나의 표현법으로 연결해 주기 때문에 양자컴퓨팅에서 거의 기본 언어처럼 사용되는데요 함께 알아보시죠.

양자컴퓨팅에서 브라켓 표기법을 사용하는 이유
양자컴퓨팅을 공부하다 보면 가장 먼저 눈에 들어오는 기호 가운데 하나가 |0⟩, |1⟩, |ψ⟩입니다. 일반적인 수학이나 프로그래밍에서는 거의 보지 못했던 표현이라 처음에는 양자컴퓨팅을 어렵게 만드는 기호처럼 느껴질 수 있습니다.
하지만 브라켓 표기법은 계산을 어렵게 만들기 위해 사용하는 것이 아닙니다. 오히려 벡터와 내적, 중첩, 여러 큐비트의 상태와 측정을 짧고 일관된 형태로 나타내기 위해 사용하는 표기법입니다.
정식 명칭은 디랙 표기법 또는 Dirac notation입니다. 물리학자 폴 디랙이 발전시킨 표기법으로, 양자역학에서 상태와 연산을 표현하는 데 널리 사용되며 양자컴퓨팅에서도 기본적인 수학 언어로 활용됩니다.
| 표현 | 읽는 방법 | 뜻 |
|---|---|---|
| |ψ⟩ | ket psi, 켓 프사이 | 양자상태를 나타내는 벡터 |
| ⟨ψ| | bra psi, 브라 프사이 | |ψ⟩의 켤레전치 벡터 |
| ⟨φ|ψ⟩ | bra phi ket psi | 두 상태의 내적 |
| |ψ⟩⟨φ| | ket psi bra phi | 두 벡터의 외적을 이용한 연산자 |
| |0⟩, |1⟩ | ket zero, ket one | 한 큐비트의 계산 기저 상태 |
브라와 켓을 이어서 읽으면 bra-ket, 즉 bracket과 비슷한 말이 됩니다. 브라켓 표기법이라는 이름도 여기에서 나온 것입니다.
ket은 양자상태를 나타내는 벡터다
브라켓 표기법을 이해할 때 가장 먼저 알아야 할 것은 ket입니다. 오른쪽에 꺾쇠가 있는 |ψ⟩ 형태를 ket이라고 부릅니다.
ket은 특별한 새로운 수학적 대상이라기보다 일반적으로 열벡터로 표현할 수 있는 양자상태입니다. 예를 들어 한 큐비트의 두 계산 기저 상태는 다음과 같이 대응됩니다.
|0⟩ = [1
0]
|1⟩ = [0
1]
따라서 |0⟩라는 기호를 본다면 전혀 새로운 개념이라고 생각하기보다 2차원 벡터 하나를 간단하게 이름 붙였다고 생각할 수 있습니다.
이 표현의 장점은 상태의 의미가 바로 드러난다는 점입니다. 매번 열벡터 전체를 적는 것보다 |0⟩라고 쓰면 이 상태가 큐비트의 0 계산 기저 상태라는 사실을 즉시 알 수 있습니다.
bra는 ket을 반대쪽에서 바라본 표현이다
ket의 반대 형태인 ⟨ψ|를 bra라고 부릅니다. 한 큐비트 상태가 열벡터 |ψ⟩로 표현된다면 bra는 그 벡터의 켤레전치에 해당합니다.
단순히 세로 벡터를 가로로 바꾸는 것만으로 끝나는 것은 아닙니다. 양자상태에는 복소수가 사용될 수 있기 때문에 전치하면서 각 성분의 복소켤레도 취합니다.
|ψ⟩ = [α
β]
⟨ψ| = [α* β*]
여기에서 *는 복소켤레를 의미합니다. α와 β가 실수라면 결과적으로 행과 열이 바뀐 것처럼 보이지만 복소수가 들어가면 켤레를 취한다는 점이 중요합니다.
bra와 ket을 붙이면 내적을 간단하게 표현할 수 있다
브라켓 표기법이 특히 편리한 이유는 bra와 ket을 붙였을 때입니다. ⟨φ|ψ⟩는 두 상태 사이의 내적을 의미합니다.
벡터로 직접 계산한다면 하나의 행벡터와 하나의 열벡터를 곱해야 하지만 디랙 표기법에서는 ⟨φ|ψ⟩라고 짧게 쓸 수 있습니다.
⟨0|0⟩ = 1 ⟨1|1⟩ = 1 ⟨0|1⟩ = 0 ⟨1|0⟩ = 0
|0⟩와 |1⟩는 서로 직교하는 기저이기 때문에 서로 다른 상태의 내적은 0이 됩니다. 반대로 자기 자신과의 내적은 정규화된 상태라면 1이 됩니다.
이처럼 ⟨φ|ψ⟩는 두 양자상태가 얼마나 겹쳐 있는지를 나타내는 중요한 값으로 활용됩니다.
측정 확률까지 같은 표기법으로 연결된다
브라켓 표기법은 단순히 벡터를 짧게 쓰는 데서 끝나지 않습니다. 양자컴퓨팅에서 가장 중요한 측정 확률도 같은 방식으로 표현할 수 있습니다.
양자상태 |ψ⟩를 어떤 기저 상태 |φ⟩에서 측정할 확률은 두 상태의 내적과 연결됩니다.
측정 확률 = |⟨φ|ψ⟩|²
예를 들어 한 큐비트가 다음과 같은 상태에 있다고 생각해 보겠습니다.
|ψ⟩ = 1/√2 (|0⟩ + |1⟩)
이 상태에서 0을 측정할 진폭은 ⟨0|ψ⟩이고 그 절댓값의 제곱이 실제 확률이 됩니다. 결과는 1/2이므로 0을 얻을 확률은 50%입니다. 같은 방식으로 1을 측정할 확률도 50%입니다.
따라서 상태, 기저와 측정 확률을 서로 다른 수학 표현으로 바꾸지 않고 하나의 표기법 안에서 연결할 수 있다는 점이 브라켓 표기법의 큰 장점입니다.
중첩 상태를 표현할 때 특히 편리하다
양자컴퓨팅에서 하나의 큐비트는 |0⟩이나 |1⟩뿐 아니라 두 상태의 선형결합으로 표현할 수 있습니다.
|ψ⟩ = α|0⟩ + β|1⟩
여기에서 α와 β는 각각 |0⟩과 |1⟩에 대응하는 확률진폭입니다. 정규화된 한 큐비트 상태라면 두 진폭의 절댓값 제곱의 합이 1이 되어야 합니다.
|α|² + |β|² = 1
열벡터로 표현하면 같은 상태는 다음과 같습니다.
|ψ⟩ = [α
β]
두 표현은 같은 상태를 의미합니다. 그러나 α|0⟩ + β|1⟩라고 쓰면 어떤 기저 상태들이 어떤 진폭으로 결합돼 있는지를 한눈에 확인하기 쉽습니다.
Hadamard 게이트도 훨씬 직관적으로 표현할 수 있다
브라켓 표기법의 장점은 양자 게이트를 설명할 때 더욱 분명하게 나타납니다. 대표적인 Hadamard 게이트 H를 |0⟩에 적용하면 다음과 같이 표현할 수 있습니다.
H|0⟩ = 1/√2 (|0⟩ + |1⟩) = |+⟩
행렬을 이용해 계산한다면 Hadamard 행렬과 상태벡터를 직접 곱해야 합니다. 계산에는 행렬 표현이 필요할 수 있지만 결과의 의미를 설명할 때는 위와 같은 ket 표현이 훨씬 짧습니다.
H|0⟩라는 한 줄만으로도 Hadamard 연산을 상태 |0⟩에 적용한다는 의미가 드러나며, 그 결과가 |0⟩과 |1⟩의 동일한 진폭을 가진 중첩이라는 것도 바로 확인할 수 있습니다.
큐비트가 여러 개가 되면 장점이 더욱 커진다
한 큐비트만 다룬다면 2개의 성분을 가진 벡터를 직접 적는 것도 크게 어렵지 않습니다. 하지만 큐비트 수가 증가하면 상태벡터의 크기는 빠르게 증가합니다.
| 큐비트 수 | 계산 기저 상태 수 | 대표적인 표기 |
|---|---|---|
| 1 | 2 | |0⟩, |1⟩ |
| 2 | 4 | |00⟩, |01⟩, |10⟩, |11⟩ |
| 3 | 8 | |000⟩ ~ |111⟩ |
| n | 2ⁿ | |x₁x₂…xₙ⟩ |
예를 들어 두 큐비트의 |10⟩은 벡터로 표현하면 네 개의 성분 가운데 하나만 1인 형태가 됩니다. 하지만 |10⟩라고 적으면 첫 번째와 두 번째 큐비트의 계산 기저 상태를 바로 읽을 수 있습니다.
즉 큐비트 수가 늘어날수록 긴 벡터를 매번 적는 것보다 브라켓 표기법으로 필요한 기저 상태만 표시하는 방식이 훨씬 간결합니다.
Bell 상태도 한 줄이면 표현할 수 있다
브라켓 표기법의 간결함을 보여주는 대표적인 사례가 Bell 상태입니다. 두 큐비트가 얽혀 있는 대표적인 Bell 상태 가운데 하나는 다음과 같이 쓸 수 있습니다.
|Φ+⟩ = 1/√2 (|00⟩ + |11⟩)
이 표현만 보면 상태가 |00⟩과 |11⟩이라는 두 계산 기저 상태의 중첩으로 구성되어 있다는 것을 바로 알 수 있습니다.
같은 상태를 벡터로 적을 수도 있지만 브라켓 표기법은 어떤 상태가 중첩에 참여하고 있는지를 직접 보여주기 때문에 얽힘과 다중 큐비트 상태를 설명할 때 특히 편리합니다.
텐서곱도 훨씬 짧게 나타낼 수 있다
여러 큐비트를 하나의 시스템으로 표현할 때는 텐서곱을 사용합니다. 한 큐비트가 |0⟩이고 다른 큐비트가 |1⟩이라면 전체 상태는 다음과 같이 표현할 수 있습니다.
|0⟩ ⊗ |1⟩ = |01⟩
행렬과 벡터의 크로네커곱을 직접 계산해도 같은 결과를 얻지만 양자회로를 설명할 때마다 긴 벡터를 전개할 필요는 없습니다.
특히 큐비트가 여러 개가 되면 |0101⟩처럼 짧게 상태를 나타낼 수 있기 때문에 회로와 알고리즘을 설명하기 훨씬 편해집니다.
외적을 이용하면 연산자와 측정도 표현할 수 있다
ket 뒤에 bra를 붙인 |ψ⟩⟨φ| 형태는 내적과 달리 하나의 숫자가 아니라 행렬 형태의 연산자를 만듭니다. 이를 외적이라고 합니다.
대표적인 예가 다음 두 표현입니다.
|0⟩⟨0| |1⟩⟨1|
이러한 형태는 특정 상태와 관련된 projector를 표현할 때 사용할 수 있습니다. 양자 측정을 수학적으로 설명할 때도 매우 유용합니다.
I = |0⟩⟨0| + |1⟩⟨1|
위 식은 한 큐비트 공간에서 항등연산자를 계산 기저의 projector 합으로 표현한 것입니다. 복잡한 행렬을 그대로 적지 않고 각각의 상태가 어떤 역할을 하는지 알 수 있다는 장점이 있습니다.
브라켓 표기법은 특정 좌표계에 덜 얽매인다
브라켓 표기법이 강력한 또 하나의 이유는 상태 자체와 상태를 표현하는 좌표를 구분하기 쉽다는 점입니다.
하나의 양자상태는 어떤 기저를 사용하느냐에 따라 서로 다른 벡터 성분으로 표현할 수 있습니다. 하지만 상태 자체는 그대로입니다. |ψ⟩라고 쓰면 특정한 좌표값보다 양자상태라는 대상 자체를 먼저 나타낼 수 있습니다.
예를 들어 |+⟩는 계산 기저에서는 다음과 같습니다.
|+⟩ = 1/√2 (|0⟩ + |1⟩)
하지만 |+⟩와 |−⟩를 새로운 기저로 선택하면 |+⟩ 자체가 하나의 기저벡터가 됩니다. 브라켓 표기법은 이런 기저 변환을 설명할 때도 자연스럽게 사용할 수 있습니다.
행렬 표기와 브라켓 표기 중 어느 것이 더 좋은가
브라켓 표기법을 배운다고 해서 행렬과 벡터가 필요 없어지는 것은 아닙니다. 두 표현은 경쟁하는 방법이 아니라 같은 수학적 대상을 서로 다른 관점에서 보여주는 방법에 가깝습니다.
| 표현 방식 | 장점 | 주로 편리한 상황 |
|---|---|---|
| 벡터·행렬 | 실제 숫자 계산이 명확함 | 행렬곱·수치계산·시뮬레이션 |
| 브라켓 표기법 | 상태와 연산의 의미가 잘 드러남 | 양자상태·중첩·측정·알고리즘 설명 |
입문자는 두 표현 사이를 자유롭게 바꾸는 연습을 하는 것이 좋습니다. |0⟩를 보고 열벡터를 떠올릴 수 있고, 열벡터를 보고 다시 ket으로 표현할 수 있다면 이후 양자 알고리즘을 이해하기 훨씬 쉬워집니다.
양자 프로그래밍에서도 브라켓 표기법이 사용된다
브라켓 표기법은 이론적인 양자역학 책에서만 사용하는 표현이 아닙니다. 실제 양자컴퓨팅 학습자료와 소프트웨어에서도 상태를 설명하기 위해 널리 활용됩니다.
IBM Quantum Learning에서는 중첩 상태와 Bell 상태를 열벡터와 ket 표현으로 함께 보여주며, Microsoft Azure Quantum의 교육문서에서도 상태·연산·내적·외적·측정을 설명할 때 Dirac notation을 사용합니다.
Google의 Cirq에는 상태벡터를 Dirac notation 형태의 문자열로 변환하는 기능도 있습니다. 예를 들어 숫자로 저장된 상태벡터를 0.71|0⟩ + 0.71|1⟩처럼 사람이 이해하기 쉬운 형태로 표시할 수 있습니다.
따라서 브라켓 표기법을 이해하면 양자역학 책뿐 아니라 양자 SDK 문서와 튜토리얼을 읽는 데도 도움이 됩니다.
초보자가 자주 헷갈리는 부분
- |0⟩는 숫자 0 자체가 아니라 0이라는 계산 기저 상태를 나타내는 벡터입니다.
- |ψ⟩의 ψ는 특정한 값이 아니라 임의의 양자상태에 붙이는 이름으로 사용할 수 있습니다.
- bra는 단순한 전치가 아니라 복소켤레까지 포함한 켤레전치입니다.
- ⟨φ|ψ⟩는 일반적으로 하나의 복소수인 내적입니다.
- |ψ⟩⟨φ|는 내적과 반대로 행렬 형태의 연산자를 만듭니다.
- 확률은 확률진폭 자체가 아니라 그 절댓값의 제곱에서 얻습니다.
- |00⟩는 숫자 0을 두 번 쓴 것이 아니라 두 큐비트의 계산 기저 상태를 나타냅니다.
특히 |ψ⟩를 실제로 존재하는 물리적인 막대나 화살표처럼 생각하기보다 양자상태를 수학적으로 나타내는 벡터라고 이해하면 이후 내용을 받아들이기 쉽습니다.
브라켓 표기법을 배우는 가장 쉬운 순서
| 단계 | 먼저 이해할 내용 |
|---|---|
| 1단계 | |0⟩와 |1⟩가 열벡터라는 점 |
| 2단계 | α|0⟩ + β|1⟩ 형태의 중첩 |
| 3단계 | ⟨ψ|가 ket의 켤레전치라는 점 |
| 4단계 | ⟨φ|ψ⟩ 내적의 의미 |
| 5단계 | |ψ⟩⟨φ| 외적과 projector |
| 6단계 | |00⟩·|01⟩ 등 다중 큐비트 표현 |
| 7단계 | 양자 게이트와 측정 수식에 적용 |
처음부터 복잡한 수식을 모두 암기하려 하기보다 각 기호를 실제 벡터와 연결하면서 공부하는 것이 좋습니다. 브라켓 표기법과 선형대수 표현을 번갈아 적어 보는 연습이 특히 도움이 됩니다.
브라켓 표기법 이해 점검 체크리스트
- |0⟩와 |1⟩를 각각 열벡터로 표현할 수 있는가
- ket과 bra의 차이를 설명할 수 있는가
- bra를 만들 때 복소켤레가 필요한 이유를 알고 있는가
- α|0⟩ + β|1⟩가 무엇을 의미하는지 설명할 수 있는가
- ⟨φ|ψ⟩가 내적이라는 사실을 이해했는가
- |⟨φ|ψ⟩|²와 측정 확률의 관계를 이해했는가
- |ψ⟩⟨φ|가 외적이라는 사실을 알고 있는가
- |00⟩와 |11⟩ 같은 다중 큐비트 표기를 읽을 수 있는가
- 행렬 표현과 브라켓 표현이 같은 상태를 나타낼 수 있음을 이해했는가
핵심 용어와 마무리 정리
| 용어 | 의미 |
|---|---|
| Dirac notation | 양자상태와 연산을 표현하는 브라켓 표기법 |
| ket | |ψ⟩ 형태로 나타내는 상태벡터 |
| bra | ⟨ψ| 형태로 나타내는 ket의 켤레전치 |
| inner product | ⟨φ|ψ⟩ 형태의 두 상태 사이 내적 |
| outer product | |ψ⟩⟨φ| 형태로 만드는 연산자 |
| computational basis | |0⟩, |1⟩을 기본으로 하는 계산 기저 |
| amplitude | 양자상태의 각 기저에 붙는 복소수 계수 |
| projector | 특정 부분공간이나 상태와 관련된 투영 연산자 |
양자컴퓨팅에서 브라켓 표기법을 사용하는 가장 큰 이유는 어려운 수학을 더 복잡하게 만들기 위해서가 아닙니다. 벡터, 중첩, 내적, 연산자와 측정을 하나의 일관된 언어로 표현하기 위해서입니다.
|0⟩ 하나는 단순한 기호처럼 보이지만 그 안에는 하나의 양자상태와 벡터라는 의미가 들어 있습니다. ⟨φ|ψ⟩처럼 bra와 ket을 결합하면 상태 사이의 관계를 나타낼 수 있고, |ψ⟩⟨φ|처럼 순서를 바꾸면 연산자까지 표현할 수 있습니다.
특히 여러 큐비트와 중첩 상태를 다룰수록 긴 열벡터와 행렬을 반복해서 적는 것보다 브라켓 표기법의 장점이 커집니다. 그래서 양자컴퓨팅을 본격적으로 공부하려면 수식을 암기하기보다 ket과 bra가 실제 벡터와 어떻게 연결되는지부터 이해하는 것이 좋습니다.
처음에는 |0⟩와 |1⟩만 익숙해져도 충분합니다. 이후 중첩, 내적, 측정과 다중 큐비트 상태를 하나씩 연결하면 브라켓 표기법은 낯선 기호가 아니라 복잡한 양자상태를 짧게 읽고 쓰기 위한 편리한 언어로 보이기 시작합니다.
참고문헌
브라켓 표기법과 양자상태의 수학적 의미를 더 깊게 공부하고 싶다면 아래의 공식 교육자료와 개발문서를 참고할 수 있습니다.