2026-07-10 기준레벨 3

트랜스파일과 라우팅

트랜스파일은 양자 회로를 칩이 실제로 지원하는 네이티브 게이트 집합으로 다시 쓰는 과정이고, 라우팅은 제한된 연결성 아래에서 논리 큐비트를 물리 큐비트에 배치하며 직접 연결이 없는 곳에 SWAP 게이트를 삽입하는 과정입니다.

무슨 뜻인가요

H나 CX 같은 익숙한 게이트로 짠 회로는 보통 하드웨어에서 바로 실행될 수 없습니다.각 칩은 네이티브 게이트 집합만 지원하는데, 이 집합은 칩의 고정된 물성이 아니라 보정(calibration)에 의해 정해집니다.그래서 같은 칩이라도 날마다 지원 게이트가 달라질 수 있고, 큐비트마다 지원 게이트가 다를 수도 있습니다.트랜스파일은 같은 추상 수준의 언어끼리의 번역이고(TypeScript→JavaScript처럼), 컴파일은 더 낮은 수준으로 내려가는 변환입니다(Java→바이트코드처럼).실제 칩은 연결성이 매우 제한적이어서, 연결되지 않은 두 큐비트 사이의 2큐비트 게이트는 물리적으로 불가능합니다.라우터는 SWAP 게이트를 삽입해 상태를 칩 위로 옮기는데, SWAP 하나마다 추가 2큐비트 게이트, 시간, 오류가 붙기 때문에 라우터는 우회로를 최소화합니다.최적화기는 중복 게이트를 상쇄해 지우고(연달아 있는 H 두 개는 사라짐), 배리어는 수학적 연산이 아닌 스케줄러 지시로서 그 선을 넘는 재배치를 금지합니다.좋은 트랜스파일러는 보정 인식형입니다 — 매핑을 고를 때 당일의 큐비트별 코히런스와 연결별 오류율을 읽고, 측정 결과를 원래 논리 큐비트로 되돌리기 위해 그 매핑을 기억합니다.

일상 비유

내가 H와 CX라는 단어로 편지를 썼는데, 이 칩은 PRX와 CZ라는 말만 알아들어요. 그러면 편지를 칩이 아는 단어로 다시 써야 해요. 이 '같은 수준에서의 번역'이 트랜스파일이에요(TypeScript→JavaScript처럼요). 컴파일은 반대로 한 층 아래로 내려가는 번역이죠(Java→바이트코드). 그리고 큐비트 Q0과 Q1이 직접 연결돼 있지 않으면, SWAP이라는 징검다리를 밟아 상태를 옮겨 걸어가야 해요 — SWAP 하나하나가 시간과 오류라는 비용이라, 라우터는 우회로를 최소로 만들어요. 배리어는 울타리예요. 연달아 있는 H 두 개를 '어차피 상쇄되니까!' 하고 지워버리는 똑똑한 청소부(최적화기)에게 '이 선을 넘어와서 청소하지 마!'라고 말하는 거죠.
어원으로 기억하기: 트랜스파일은 한자로 轉譯(구를 전 + 번역할 역) — '옆으로 굴려 옮기는 번역'입니다. trans-(라틴어 '건너')와 compile(라틴어 compilare, '긁어모으다')의 혼성어이기도 하죠. 라우팅은 經路(경로), 프랑스어 route — 라틴어 rupta via('뚫어낸 길')에서 왔습니다. SWAP은 중세 영어 swappen('탁 치다, 맞바꾸다')에서 왔고, 배리어는 障壁(막을 장 + 벽 벽), 프랑스어 barrière('울타리')입니다.

흔한 오해

  • 모든 큐비트는 동등하지 않습니다 — 코히런스 시간과 오류율이 큐비트마다, 연결마다 다르고(2큐비트 게이트 충실도도 쌍마다 다름), 이 값들은 매일 변합니다. 그래서 트랜스파일러는 균일한 칩을 가정하지 말고 당일 보정 데이터를 읽어야 합니다.
  • '논리 큐비트'에는 두 가지 뜻이 있습니다 — 내 회로 속의 회로 수준 큐비트와, 여러 물리 큐비트를 묶어 만든 오류정정 큐비트. 트랜스파일 맥락에서는 전자, 즉 하드웨어 매핑 전 회로 속 큐비트 1개를 뜻합니다.
  • 배리어는 수학적 연산이 아닙니다 — 멀티스레드 코드에서 재배치를 막는 mutex처럼, 스케줄러에게 내리는 지시입니다. 양자 상태가 아니라 최적화기가 할 수 있는 일을 바꿉니다.

핵심 정리

  • 네이티브 게이트 집합은 칩의 고정 물성이 아니라 보정으로 정해집니다 — 같은 칩이 날마다, 큐비트마다 다른 게이트를 지원할 수 있습니다.
  • SWAP 하나마다 추가 2큐비트 게이트가 들어가 시간과 오류가 늘어납니다 — 라우터의 존재 이유는 SWAP 수 최소화입니다.
  • Qiskit은 최적화 레벨 0–3을 제공합니다. 게이트 상쇄(연속 H 두 개 제거)가 대표적 최적화이고, 배리어가 그 적용 범위를 통제합니다.
  • 2026년 현재 Qiskit은 전 세계 양자 개발자의 약 70%가 사용하며 누적 4조 개 이상의 회로가 실행됐습니다 — 트랜스파일러 품질은 활발한 연구 격전지입니다.

이해했는지 확인해 보세요

물리 큐비트 Q0과 Q1이 직접 연결돼 있지 않은 칩에서 cx(0,1)은 왜 바로 실행될 수 없고, 트랜스파일러는 어떻게 처리합니까?

  1. A.CX 게이트는 보편적이지 않아 단일 큐비트 게이트로 대체해야 하기 때문
  2. B.2큐비트 게이트는 연결된 쌍을 잇는 커플러에 작동하므로, 라우터가 SWAP 게이트를 삽입해 상태를 연결된 큐비트로 옮긴다
  3. C.Q0과 Q1은 항상 주파수가 달라 어떤 상호작용도 영원히 불가능하기 때문
  4. D.트랜스파일러가 두 큐비트를 측정한 뒤 연결된 큐비트에 상태를 재구성한다
정답 보기

정답: B. 2큐비트 게이트는 연결된 쌍을 잇는 커플러에 작동하므로, 라우터가 SWAP 게이트를 삽입해 상태를 연결된 큐비트로 옮긴다

이유: 2큐비트 게이트는 물리적으로 연결된 큐비트 사이의 커플러에 작동합니다. 직접 연결이 없으면 라우터가 SWAP 게이트를 삽입해 상태를 연결된 쌍까지 옮기는데, SWAP마다 추가 2큐비트 게이트·시간·오류 비용이 들어 라우터는 이를 최소화합니다.

양자 회로에서 배리어(barrier)란 무엇입니까?

  1. A.양자 상태의 진화를 막는 유니터리 게이트
  2. B.회로의 두 단계를 나누는 측정
  3. C.최적화기가 그 선을 넘어 게이트를 재배치하거나 상쇄하지 못하게 하는 스케줄러 지시
  4. D.큐비트를 크로스토크로부터 격리하는 하드웨어 부품
정답 보기

정답: C. 최적화기가 그 선을 넘어 게이트를 재배치하거나 상쇄하지 못하게 하는 스케줄러 지시

이유: 배리어는 수학적 연산이 아닙니다. 멀티스레드 코드의 mutex처럼, 트랜스파일러의 최적화기에게 그 선을 넘어 연산을 재배치·상쇄하지 말라고 지시합니다 — 예를 들어 그냥 두면 지워질 연속 H 두 개를 보존할 때 씁니다.

먼저 알아야 할 개념

Core concept is standard practice, but native gate sets, vendor tooling and ecosystem stats (Qiskit adoption, optimization levels) evolve; graded timebound as of source date. Qiskit ~70% / 4T-circuit stats re-verified 2026-07-10 against IBM Newsroom (2026-06-02); the 70% figure originates from the Unitary Fund 2023 OSS survey (self-selected sample).

직접 실습으로 배우기

이 개념은 46레벨 커리큘럼의 일부입니다. 인터랙티브 시뮬레이터, 그리고 답변을 표시 전에 검증하는 튜터 Lumen과 함께 배웁니다. 레벨 1–5는 무료입니다.