---
title: "면접서 면접관이 양자컴퓨터를 설명해달라 한다면"
author: "jungsuk lee"
published_at: "2026-10-10T04:50:19.305Z"
updated_at: "2026-10-10T04:50:19.305Z"
tags: ["양자컴퓨터","쇼어 알고리즘","그로버 알고리즘"]
canonical_url: "https://ariser.io/@writer_5a76322474a3/%EB%A9%B4%EC%A0%91%EC%84%9C-%EB%A9%B4%EC%A0%91%EA%B4%80%EC%9D%B4-%EC%96%91%EC%9E%90%EC%BB%B4%ED%93%A8%ED%84%B0%EB%A5%BC-%EC%84%A4%EB%AA%85%ED%95%B4%EB%8B%AC%EB%9D%BC-%ED%95%9C%EB%8B%A4%EB%A9%B4"
ai_assisted: true
---

# 면접서 면접관이 양자컴퓨터를 설명해달라 한다면

이 글은 AI가 활용됐습니다.

[원문](https://ariser.io/@writer_5a76322474a3/%EB%A9%B4%EC%A0%91%EC%84%9C-%EB%A9%B4%EC%A0%91%EA%B4%80%EC%9D%B4-%EC%96%91%EC%9E%90%EC%BB%B4%ED%93%A8%ED%84%B0%EB%A5%BC-%EC%84%A4%EB%AA%85%ED%95%B4%EB%8B%AC%EB%9D%BC-%ED%95%9C%EB%8B%A4%EB%A9%B4)

네. 양자컴퓨터는 계산 결과에 해당하는 양자 상태들이 서로 강화되거나 상쇄되는 성질을 이용해서, 필요한 정보를 얻을 확률을 높이는 컴퓨터라고 설명할 수 있습니다. 원리를 먼저 말씀드리고, 그걸 실제로 조작하는 게이트와 대표적인 알고리즘까지 연결해 보겠습니다.

일반 컴퓨터의 기본 단위인 비트는 0이나 1을 저장합니다. 양자컴퓨터의 기본 단위는 큐비트인데, 계산하는 동안에는 0에 해당하는 성분과 1에 해당하는 성분이 함께 있는 상태를 만들 수 있습니다. 이걸 중첩이라고 합니다.

큐비트가 두 개라면 00, 01, 10, 11이라는 네 가지 경우가 함께 있는 상태를 만들 수 있고, 큐비트 수가 늘어나면 포함할 수 있는 경우의 수도 빠르게 늘어납니다.

그런데 여기에는 중요한 제약이 있습니다. 마지막에 측정하면 그 여러 경우 중 하나의 결과를 얻게 됩니다. 여러 경우를 함께 포함할 수 있다는 것만으로는 계산에 도움이 되는 답을 얻는다고 보장할 수 없습니다. 그래서 양자 알고리즘은 ‘측정했을 때 필요한 정보가 나오도록 상태를 어떻게 바꿀 것인가’를 설계합니다.

여기서 이용하는 성질이 간섭입니다.

물결 두 개가 같은 박자로 겹치면 더 커지고, 반대 박자로 겹치면 서로 상쇄될 수 있잖아요. 양자 상태에도 이와 비슷한 성질이 있습니다. 여기서 물결은 상태가 합쳐지는 규칙을 설명하기 위한 비유입니다.

각 결과에 해당하는 성분에는 크기뿐 아니라 ‘위상’이라는 정보도 있습니다. 위상은 쉽게 말하면 서로 같은 박자인지, 어긋난 박자인지를 정하는 정보입니다. 이걸 조절한 다음 성분들을 다시 섞으면, 어떤 결과는 더 잘 나오고 어떤 결과는 덜 나오게 만들 수 있습니다.

이렇게 상태를 바꾸는 작은 조작들을 양자 게이트라고 합니다.

가장 간단한 것은 X 게이트입니다. 0을 1로, 1을 0으로 뒤집습니다. 일반 컴퓨터의 NOT 연산과 비슷합니다.

다음은 H, 하다마드 게이트입니다. 0에서 시작해서 H를 적용하면, 측정했을 때 0과 1이 반반 나오는 중첩 상태를 만듭니다. 또 H는 나중에 성분들을 다시 섞어서 간섭을 일으키는 데도 사용합니다.

Z 게이트는 조금 다릅니다. 0과 1을 서로 바꾸는 대신, 1에 해당하는 성분의 위상을 반대로 뒤집습니다. 바로 0과 1을 측정하면 확률은 그대로지만, 이후에 다른 게이트로 다시 섞었을 때 결과가 달라집니다.

아주 작은 예를 들면 이 차이가 보입니다.

큐비트를 0에서 시작해서 H를 한 번 적용하면, 측정 결과가 반반 나오는 상태가 됩니다. 여기서 측정하지 않고 H를 한 번 더 적용하면, 이상적인 경우 다시 0으로 돌아옵니다.

그런데 두 H 사이에 Z를 넣으면 마지막 결과가 1로 바뀝니다. 중간에 위상만 바꿨는데, 마지막 H가 그 차이를 측정 결과의 차이로 바꿔주는 겁니다.

이 ‘위상을 바꾼 뒤 다시 섞어서 결과를 바꾸는 과정’이 양자 알고리즘을 이해하는 데 중요한 출발점입니다.

여러 큐비트를 함께 계산하려면 큐비트 사이에 작용하는 게이트도 필요합니다.

대표적으로 CNOT은 첫 번째 큐비트가 1인 경우 두 번째 큐비트를 뒤집는 조건부 연산입니다. 이때 첫 번째 큐비트를 측정해서 확인하는 과정 없이, 중첩 상태를 유지하면서 조건부 연산을 합니다.

예를 들어 두 큐비트를 00에서 시작해서 첫 번째에 H를 적용하고, 첫 번째를 조건으로 CNOT을 적용하면 00과 11이 함께 있는 얽힌 상태를 만들 수 있습니다. 이런 상태에서는 두 큐비트를 각각 독립적인 상태로 나누어 설명할 수 없습니다.

조건을 두 개로 늘려서 ‘앞의 두 큐비트가 모두 1일 때 세 번째를 뒤집는’ 토폴리 게이트도 있습니다. 이런 게이트들을 조합하면 덧셈이나 조건 검사 같은 계산을 만들 수 있습니다. 여기에 위상을 더 세밀한 각도로 바꾸는 게이트들을 함께 사용해서 큰 회로를 구성합니다.

이제 이 부품들이 실제 문제를 어떻게 푸는지, 쇼어 알고리즘부터 말씀드리겠습니다.

쇼어는 큰 수의 소인수분해에 사용하는 알고리즘입니다. 핵심 아이디어는 소인수분해 문제를, 특정 계산이 반복되는 주기를 찾는 문제로 바꾸는 것입니다.

예를 들어 15를 분해한다고 해보겠습니다. 1에서 시작해서 2를 계속 곱하고, 매번 15로 나눈 나머지를 보면 1, 2, 4, 8, 다시 1이 됩니다. 네 번마다 같은 패턴이 반복되는 겁니다.

이런 반복 주기를 알아내면, 적절한 조건에서 일반 컴퓨터의 정수 계산으로 원래 수의 약수를 구할 수 있습니다. 쇼어 알고리즘에서 양자컴퓨터가 담당하는 핵심은 바로 이 주기 정보를 얻는 부분입니다.

회로에서는 먼저 H 게이트로 여러 곱셈 횟수에 해당하는 경우를 중첩으로 준비합니다. 그다음 조건부 연산들을 조합해서, 각 경우에 대응하는 나머지를 중첩을 유지한 채 계산합니다.

그러면 양자 상태에 그 계산의 반복 구조가 담깁니다. 여기에 하다마드와 조건부 위상 회전 등을 조합한 양자 푸리에 변환 회로를 사용합니다.

푸리에 변환은 소리에서 반복되는 진동 성분을 찾아내는 것에 비유할 수 있습니다. 여기서는 양자 상태에 들어 있는 반복 구조를, 측정으로 알아낼 수 있는 형태로 바꿉니다. 반복 구조와 맞는 성분들이 간섭을 통해 두드러지도록 하는 것입니다.

측정해서 얻은 값을 일반 컴퓨터가 처리해 주기를 복원하고, 그 주기를 이용해 약수를 계산합니다. 한 번의 시도가 충분하지 않으면 다시 실행합니다.

이 때문에 쇼어 알고리즘은 RSA 같은 암호와 연결됩니다. 충분한 규모에서 오류를 제어하며 쇼어 알고리즘을 실행할 수 있다면, RSA의 안전성에 중요한 큰 수의 소인수분해 문제를 효율적으로 풀 수 있기 때문입니다.

그로버 알고리즘은 다른 종류의 문제를 다룹니다.

후보가 아주 많이 있고, 후보 하나를 넣으면 정답인지 검사할 수는 있지만, 어디에 정답이 있는지 알려주는 구조나 힌트는 없는 상황입니다.

먼저 H 게이트들을 사용해서 모든 후보가 같은 확률로 나오는 중첩 상태를 준비합니다.

그다음 ‘이 후보가 조건을 만족하는가’를 검사하는 회로를 적용합니다. 이 회로를 이용해서 조건에 맞는 후보의 위상만 반대로 뒤집습니다. 앞에서 설명한 Z 게이트의 아이디어를, 특정 조건을 만족하는 후보에 적용하는 겁니다.

이 단계 직후에는 정답이 나올 확률이 그대로입니다. 위상으로 표시만 했기 때문입니다.

그다음 H와 조건부 위상 연산 등을 조합한 회로로 전체 상태를 다시 섞습니다. 모든 후보에 같은 규칙을 적용하는데, 앞에서 표시한 위상 차이 때문에 정답 쪽 성분이 커지는 간섭이 생깁니다.

이 ‘표시하고 다시 섞는 과정’을 적절한 횟수만큼 반복한 뒤 측정하면, 정답을 높은 확률로 얻습니다.

정답이 하나이고 후보가 백만 개라고 하면, 일반적인 무작위 순서의 탐색은 평균적으로 약 50만 개를 검사해야 합니다. 그로버는 이상적인 조건에서 천 회 안팎 규모의 검사 회로 호출로 정답을 높은 확률로 찾을 수 있습니다. 후보 수에 비례하던 검사 횟수를, 후보 수의 제곱근 규모로 줄이는 겁니다.

다만 이것은 검사 횟수에 관한 이야기이고, 실제 실행 시간에는 검사 회로를 만드는 비용과 하드웨어의 연산 비용도 들어갑니다.

이 두 알고리즘을 보면 양자컴퓨터에서 중요한 설계가 무엇인지 드러납니다. 쇼어에서는 반복 주기에 관한 정보가 나타나도록, 그로버에서는 조건에 맞는 후보가 잘 나오도록 게이트를 배치합니다.

그래서 양자컴퓨팅을 공부할 때는 중첩을 만드는 방법과 함께, 문제의 어떤 정보를 위상에 담고, 어떤 간섭을 만들어서 그 정보를 읽을 것인지를 이해하는 것이 중요하다고 생각합니다.
