{
  "cells": [
    {
      "cell_type": "markdown",
      "id": "ef283f37-0ad4-48c7-bb92-8a09baaae6e5",
      "metadata": {},
      "source": [
        "---\n",
        "title: \"작업 태그별로 정리 및 검색\"\n",
        "description: \"작업 태그를 지정하고, 태그를 추가 및 업데이트하며, 태그로 검색하여 실험을 더 체계적으로 관리하세요.\"\n",
        "---\n",
        "\n",
        "<span id=\"organize-and-search-by-job-tags\" />\n",
        "\n",
        "# 작업 태그별로 정리 및 검색\n",
        "\n"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "f4471d6b-dc12-486c-95de-22ac12e367d2",
      "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.3.1\n",
        "    qiskit-ibm-runtime~=0.45.1\n",
        "    ```\n",
        "  </AccordionItem>\n",
        "</Accordion>\n",
        "\n"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "ec8277ad-1811-4318-8282-84d6d282bb17",
      "metadata": {},
      "source": [
        "이 가이드에서는 실험을 더 잘 정리하고, 추적하고, 이해할 수 있도록 작업 태그를 추가하고 업데이트하는 방법과 작업 태그를 기준으로 검색하는 방법에 중점을 둡니다.\n",
        "\n"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "59e38320-db15-4566-b262-40d4fcf19b82",
      "metadata": {},
      "source": [
        "<span id=\"assign-tags\" />\n",
        "\n",
        "## 태그 지정\n",
        "\n",
        "작업을 실행할 때 하나 이상의 태그를 할당하여 나중에 태그를 기준으로 필터링할 수 있도록 할 수 있습니다. 작업 태그를 사용하여 특정 오류 완화 설정, 회로 매개변수 등에 레이블을 지정할 수 있습니다.\n",
        "\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 1,
      "id": "74a7a1ea-f2ae-4b8c-9499-af52840c2e74",
      "metadata": {},
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "['experiment-2025', 'sampler-example']\n"
          ]
        }
      ],
      "source": [
        "from qiskit_ibm_runtime import QiskitRuntimeService, Sampler\n",
        "from qiskit import QuantumCircuit\n",
        "from qiskit.transpiler import generate_preset_pass_manager\n",
        "\n",
        "service = QiskitRuntimeService()\n",
        "backend = service.least_busy(simulator=False, operational=True)\n",
        "\n",
        "qc = QuantumCircuit(2)\n",
        "qc.h(0)\n",
        "qc.cx(0, 1)\n",
        "qc.measure_all()\n",
        "\n",
        "sampler = Sampler(backend)\n",
        "\n",
        "pm = generate_preset_pass_manager(backend=backend, optimization_level=1)\n",
        "isa_circuit = pm.run(qc)\n",
        "\n",
        "# Assign tags before executing\n",
        "sampler.options.environment.job_tags = [\"experiment-2025\", \"sampler-example\"]\n",
        "\n",
        "# Submit\n",
        "job = sampler.run([isa_circuit])\n",
        "\n",
        "print(service.job(job.job_id()).tags)"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "2b29f9da-3fca-4ffc-b4b2-6f0d130b5b23",
      "metadata": {},
      "source": [
        "<span id=\"add-and-update-tags\" />\n",
        "\n",
        "## 태그 추가 및 업데이트\n",
        "\n",
        "`update_tags()` 메서드를 사용하여 작업을 제출한 후 태그를 추가할 수 있습니다. 이 방법은 현재 태그를 덮어쓰므로 이미 작업에 태그를 할당했는데 추가 태그를 추가하려면 원래 태그를 다시 할당해야 합니다.\n",
        "\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 2,
      "id": "205ceaf7-f79d-4452-b4b0-9688e39a4564",
      "metadata": {},
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "['sampler-example', '127-qubit', 'experiment-2025']\n"
          ]
        }
      ],
      "source": [
        "# Add a new tag while keeping the previously assigned tags\n",
        "job.update_tags([\"experiment-2025\", \"sampler-example\", \"127-qubit\"])\n",
        "\n",
        "# Confirm updated tags\n",
        "print(job.tags)"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "9e2e8c4a-5fbb-4a15-ab75-ddb61e35b65e",
      "metadata": {},
      "source": [
        "<span id=\"retrieve-jobs-by-tag\" />\n",
        "\n",
        "## 태그로 작업 검색\n",
        "\n",
        "특정 태그가 있는 작업 목록을 다음과 같이 표시합니다:\n",
        "\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 3,
      "id": "b6db503e-46ef-406e-9420-ef73446df564",
      "metadata": {},
      "outputs": [
        {
          "data": {
            "text/plain": [
              "[<RuntimeJobV2('d76cmj5bjrds73edf2og', 'sampler')>,\n",
              " <RuntimeJobV2('d6r5u84u243c73a11mug', 'sampler')>,\n",
              " <RuntimeJobV2('d6hugq2thhns7392lovg', 'sampler')>,\n",
              " <RuntimeJobV2('d68n7qtbujdc73d1b3vg', 'sampler')>,\n",
              " <RuntimeJobV2('d674nppv6o8c73d514fg', 'sampler')>,\n",
              " <RuntimeJobV2('d61mt5bc4tus73fcf3ng', 'sampler')>,\n",
              " <RuntimeJobV2('d61lhfqo8gvs73f15d30', 'sampler')>,\n",
              " <RuntimeJobV2('d5vftt1mvbjc73acdgpg', 'sampler')>,\n",
              " <RuntimeJobV2('d5k96nv853es738djj30', 'sampler')>,\n",
              " <RuntimeJobV2('d5b1s2rht8fs73a66r80', 'sampler')>]"
            ]
          },
          "execution_count": 3,
          "metadata": {},
          "output_type": "execute_result"
        }
      ],
      "source": [
        "# List jobs with a specific tag or set of tags\n",
        "\n",
        "service.jobs(job_tags=[\"experiment-2025\", \"sampler-example\"])"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {},
      "id": "a1b8767d",
      "source": "© IBM Corp., 2017-2026"
    }
  ],
  "metadata": {
    "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": 4
}