{
  "cells": [
    {
      "cell_type": "markdown",
      "id": "2e2023d1",
      "metadata": {},
      "source": [
        "---\n",
        "title: \"빠른 시작\"\n",
        "description: \"2분 이내에 양자 회로를 구축하고 시각화하세요. 로그인이나 API 키가 필요하지 않습니다.\"\n",
        "---\n",
        "\n",
        "{/* cspell:ignore miniconda */}\n",
        "\n",
        "<span id=\"quickstart\" />\n",
        "\n",
        "# 빠른 시작\n",
        "\n"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "a82fbaaa",
      "metadata": {
        "tags": [
          "version-info"
        ]
      },
      "source": [
        "{/*\n",
        "  DO NOT EDIT THIS CELL!!!\n",
        "  This cell's content is generated automatically by a script. Anything you add\n",
        "  here will be removed next time the notebook is run. To add new content, create\n",
        "  a new cell before or after this one.\n",
        "  */}\n",
        "\n",
        "<Accordion>\n",
        "  <AccordionItem title=\"패키지 버전\">\n",
        "    이 페이지의 코드는 다음 요구 사항을 사용하여 개발되었습니다.\n",
        "    이 버전 또는 그 이상의 버전을 사용하는 것을 권장합니다.\n",
        "\n",
        "    ```\n",
        "    qiskit[all]~=2.5.2\n",
        "    ```\n",
        "  </AccordionItem>\n",
        "</Accordion>\n",
        "\n"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "7bbbdb4b",
      "metadata": {
        "jp-MarkdownHeadingCollapsed": true
      },
      "source": [
        "로그인이나 API 키 없이도 로컬 환경에서 2분 이내에 첫 번째 양자 회로를 구축할 수 있습니다.\n",
        "\n",
        "<Admonition type=\"note\" title=\"Python 및 가상 환경을 처음 사용하시나요?\">\n",
        "  * Python 을 다운로드하고 키스킷으로 가상 환경을 사용하세요(권장).\n",
        "\n",
        "  <Accordion>\n",
        "    <AccordionItem title=\"자세한 내용을 보려면 클릭하여 확장하십시오 **Python**.\">\n",
        "      - Python 를 설치하려면 먼저 [Qiskit 프로젝트 페이지](https://pypi.org/project/qiskit/) ( PyPI )의 \"Programming Language\" 섹션을 확인하여 최신 릴리스에서 지원하는 Python 버전을 파악하십시오. 다운로드 방법은 [Python 초보자 가](https://wiki.python.org/moin/BeginnersGuide/Download) 이드를 참조하십시오.\n",
        "\n",
        "      <Admonition type=\"note\">\n",
        "        이 지침은 표준 Python 배포판을 사용합니다 [pypi.org](https://pypi.org/). 그러나 [Anaconda](https://docs.anaconda.com/anaconda/) 또는 [미니콘다와](https://docs.anaconda.com/miniconda/) 같은 다른 Python 배포판을 [Poetry와](https://python-poetry.org/docs/) 같은 다른 종속성 관리 워크플로와 함께 사용할 수 있습니다.\n",
        "      </Admonition>\n",
        "    </AccordionItem>\n",
        "  </Accordion>\n",
        "\n",
        "  <Accordion>\n",
        "    <AccordionItem title=\"**가상 환경에** 대한 자세한 정보를 보려면 클릭하세요.\">\n",
        "      * [Python 가상 환경을](https://docs.python.org/3.10/tutorial/venv.html) 사용하여 키스킷을 다른 애플리케이션과 분리하세요.\n",
        "        Python 가상 환경은 특정 목적을 위해 Python 에서 작업할 수 있는 격리된 공간으로, 컴퓨터의 \"기본\" Python 환경에 영향을 주지 않으면서 원하는 패키지를 설치하고 라이브러리, 종속성 등을 설정할 수 있습니다.\n",
        "\n",
        "      가상 환경의 중요한 장점 중 하나는 Python 환경이 손상된 경우 쉽게 삭제하고 다시 시작할 수 있다는 것입니다!\n",
        "\n",
        "      가상 환경에 대한 정보를 저장할 기본 위치를 선택합니다. 일반적으로 각 프로젝트 디렉터리 내의 `.venv` 라는 디렉터리에 저장됩니다.\n",
        "\n",
        "      가상 환경을 설정하려면 프로젝트 디렉터리로 이동하여 Python 만 설치한 최소한의 환경을 만듭니다.\n",
        "\n",
        "      <OperatingSystemTabs>\n",
        "        <TabItem value=\"mac\" label=\"macOS\">\n",
        "          ```shell\n",
        "          python3 -m venv .venv\n",
        "          ```\n",
        "        </TabItem>\n",
        "\n",
        "        <TabItem value=\"linux\" label=\"Linux\">\n",
        "          ```shell\n",
        "          python3 -m venv .venv\n",
        "          ```\n",
        "        </TabItem>\n",
        "\n",
        "        <TabItem value=\"win\" label=\"Windows\">\n",
        "          ```text\n",
        "          python -m venv .venv\n",
        "          ```\n",
        "        </TabItem>\n",
        "      </OperatingSystemTabs>\n",
        "\n",
        "      다음으로 새 환경을 활성화합니다.\n",
        "\n",
        "      <OperatingSystemTabs>\n",
        "        <TabItem value=\"mac\" label=\"macOS\">\n",
        "          ```shell\n",
        "          source .venv/bin/activate\n",
        "          ```\n",
        "        </TabItem>\n",
        "\n",
        "        <TabItem value=\"linux\" label=\"Linux\">\n",
        "          ```shell\n",
        "          source .venv/bin/activate\n",
        "          ```\n",
        "        </TabItem>\n",
        "\n",
        "        <TabItem value=\"win\" label=\"Windows\">\n",
        "          사용하는 경우 PowerShell:\n",
        "\n",
        "          ```text\n",
        "          .venv\\Scripts\\Activate.ps1\n",
        "          ```\n",
        "\n",
        "          Git Bash를 사용하는 경우:\n",
        "\n",
        "          ```text\n",
        "          source .venv/scripts/activate\n",
        "          ```\n",
        "\n",
        "          명령 프롬프트를 사용하는 경우:\n",
        "\n",
        "          ```text\n",
        "          .venv\\Scripts\\activate\n",
        "          ```\n",
        "        </TabItem>\n",
        "      </OperatingSystemTabs>\n",
        "    </AccordionItem>\n",
        "  </Accordion>\n",
        "</Admonition>\n",
        "\n",
        "<span id=\"1-install-qiskit\" />\n",
        "\n",
        "## 1. Qiskit 설치\n",
        "\n",
        "선호하는 패키지 관리자(예: `pip`)로 다음을 설치하십시오:\n",
        "\n",
        "* [`qiskit`](/docs/guides/install-qiskit)\n",
        "* [`matplotlib`](https://matplotlib.org/stable/users/explain/quick_start.html)\n",
        "* [`qiskit[visualization]`](/docs/api/qiskit/visualization)\n",
        "\n"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "c8da788c",
      "metadata": {},
      "source": [
        "<span id=\"2-build-your-circuit\" />\n",
        "\n",
        "## 2. 회로를 구축하세요\n",
        "\n",
        "Python 환경을 열고 이 코드를 실행하여 벨 상태(두 개의 얽힌 큐비트)를 빌드합니다.\n",
        "\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 1,
      "id": "86784142",
      "metadata": {},
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "{'00': 486, '11': 538}\n"
          ]
        }
      ],
      "source": [
        "from qiskit import QuantumCircuit\n",
        "from qiskit.primitives import StatevectorSampler\n",
        "\n",
        "qc = QuantumCircuit(2)\n",
        "qc.h(0)\n",
        "qc.cx(0, 1)\n",
        "qc.measure_all()\n",
        "\n",
        "sampler = StatevectorSampler()\n",
        "result = sampler.run([qc], shots=1024).result()\n",
        "print(result[0].data.meas.get_counts())"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "9a3180c2-56d7-4224-91fa-13d8cb87d93d",
      "metadata": {},
      "source": [
        "예상 출력은 '00'과 '11'이 거의 균등하게 나뉩니다.\n",
        "\n"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "a110ac90",
      "metadata": {},
      "source": [
        "<span id=\"3-visualize-your-results\" />\n",
        "\n",
        "## 3. 결과를 시각화하세요\n",
        "\n",
        "결과의 히스토그램을 얻으려면 프로그램에 다음 코드를 추가하세요.\n",
        "\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 2,
      "id": "dc4ff012",
      "metadata": {},
      "outputs": [
        {
          "data": {
            "text/plain": [
              "<Image src=\"/docs/images/guides/quick-start/extracted-outputs/dc4ff012-0.svg\" alt=\"Output of the previous code cell\" />"
            ]
          },
          "execution_count": 2,
          "metadata": {},
          "output_type": "execute_result"
        }
      ],
      "source": [
        "# Uncomment lines 2 and 8 if you are not using Python in a Jupyter notebook\n",
        "# import matplotlib.pyplot as plt\n",
        "from qiskit.visualization import plot_histogram\n",
        "\n",
        "counts = result[0].data.meas.get_counts()\n",
        "plot_histogram(counts)\n",
        "\n",
        "# plt.show()"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "738d4fc4-29c9-46ab-9879-3365e2149d04",
      "metadata": {},
      "source": [
        "이 결과는 양자 얽힘의 특징입니다.\n",
        "\n",
        "<span id=\"4-see-what-happens\" />\n",
        "\n",
        "## 4. 무슨 일이 일어나는지 보자\n",
        "\n",
        "코드를 변경하여 결과에 어떤 영향을 미치는지 확인해 보세요. 예를 들어,\n",
        "\n",
        "* `QuantumCircuit(3)` 으로 변경하여 세 번째 큐비트를 추가하고 `qc.cx(1,2)` 으로 두 번째 CX 게이트를 추가합니다. 그러면 측정값이 000과 111로 변경되어야 하며, 이는 이 세 큐비트가 모두 얽혀 있음을 의미합니다.\n",
        "\n",
        "* 회로의 끝에 `qc.x(1)` 을 추가하여 결과 변화를 확인하세요.\n",
        "\n"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "b6062a16",
      "metadata": {},
      "source": [
        "<span id=\"next-steps\" />\n",
        "\n",
        "## 다음 단계\n",
        "\n",
        "<Admonition type=\"tip\" title=\"권장사항\">\n",
        "  * [하드웨어에서 첫 번째 회로 실행](/docs/guides/hello-world) 가이드의 단계를 따라 실제 양자 하드웨어에서 회로를 실행하세요.\n",
        "  * 하드웨어에서 실행할 준비가 되지 않았나요? [양자 정보의 기초 과정](/learning/courses/basics-of-quantum-information) 으로 양자 여행을 시작하세요.\n",
        "</Admonition>\n",
        "\n"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {},
      "id": "a1b8767d",
      "source": "© IBM Corp., 2017-2026"
    }
  ],
  "metadata": {
    "hours": 1,
    "kernelspec": {
      "display_name": "Python 3",
      "language": "python",
      "name": "python3"
    },
    "language_info": {
      "codemirror_mode": {
        "name": "ipython",
        "version": 3
      },
      "file_extension": ".py",
      "mimetype": "text/x-python",
      "name": "python",
      "nbconvert_exporter": "python",
      "pygments_lexer": "ipython3",
      "version": "3"
    }
  },
  "nbformat": 4,
  "nbformat_minor": 5
}