{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "generator": "https://python-choigosu.com",
  "kind": "calculator",
  "slug": "ingu-piramideu",
  "registry": "C-31",
  "name": "인구 피라미드 계산기",
  "tagline": "만 나이를 넣으면 우리나라 사람 백 명 중 몇 번째인지, 중위연령과 평균 나이, 나와 같은 나이 사람 수까지 주민등록인구로 바로 나옵니다",
  "url": "https://python-choigosu.com/ingu-piramideu/",
  "computation": "client-side",
  "license": "출처표시 후 자유 이용 (영리 포함)",
  "freshness": {
    "source": "행정안전부 (주민등록인구현황)",
    "sourceUrl": "https://kosis.kr/statHtml/statHtml.do?orgId=101&tblId=DT_1B04006",
    "asOf": "2026년 9월 말",
    "fetchedAt": "2026-11-01T04:59:58.589Z",
    "count": 51082431,
    "stale": false
  },
  "dataset": {
    "id": "resident-age-2026",
    "name": "주민등록인구 1세별 남녀 인구 (행정안전부 주민등록인구현황, 전국과 시도)",
    "url": "https://python-choigosu.com/data/resident-age-2026/"
  },
  "input": {
    "type": "object",
    "x-queryString": "https://python-choigosu.com/ingu-piramideu/?<key>=<value>",
    "properties": {
      "age": {
        "title": "내 만 나이 (세)",
        "x-widget": "개수",
        "description": "올해 생일이 지났으면 올해에서 태어난 해를 뺀 수, 아직이면 거기서 하나를 뺀 수가 만 나이입니다.",
        "type": "integer",
        "minimum": 0,
        "maximum": 120,
        "multipleOf": 1,
        "default": 35
      },
      "region": {
        "title": "사는 곳",
        "x-widget": "고르기",
        "description": "주민등록 주소의 시도를 고르면 그 지역 사람들과 견줍니다. 광주와 전남은 전남광주통합특별시 하나로 셈합니다.",
        "type": "string",
        "enum": [
          "00",
          "11",
          "26",
          "27",
          "28",
          "30",
          "31",
          "36",
          "41",
          "51",
          "43",
          "44",
          "52",
          "12",
          "47",
          "48",
          "50"
        ],
        "x-enumLabels": {
          "11": "서울",
          "12": "전남광주",
          "26": "부산",
          "27": "대구",
          "28": "인천",
          "30": "대전",
          "31": "울산",
          "36": "세종",
          "41": "경기",
          "43": "충북",
          "44": "충남",
          "47": "경북",
          "48": "경남",
          "50": "제주",
          "51": "강원",
          "52": "전북",
          "00": "전국"
        },
        "default": "00"
      }
    },
    "required": [
      "age",
      "region"
    ],
    "additionalProperties": false
  },
  "output": {
    "headline": {
      "key": "rank",
      "label": "백 명 중 나이 순서",
      "format": "num"
    },
    "rows": [
      {
        "key": "median",
        "label": "중위연령",
        "format": "num"
      },
      {
        "key": "gap",
        "label": "중위연령과 차이",
        "format": "num"
      },
      {
        "key": "older",
        "label": "나보다 나이 많은 사람",
        "format": "num"
      },
      {
        "key": "younger",
        "label": "나보다 어린 사람",
        "format": "num"
      },
      {
        "key": "sameAge",
        "label": "나와 같은 나이",
        "format": "num"
      },
      {
        "key": "mean",
        "label": "평균 나이",
        "format": "num",
        "note": "만 나이마다 그 나이 한가운데로 보고 셈한 평균"
      },
      {
        "key": "then",
        "label": "2008년 말이었다면",
        "format": "num"
      },
      {
        "key": "medianThen",
        "label": "2008년 말 중위연령",
        "format": "num"
      }
    ],
    "gauge": {
      "key": "olderPct",
      "label": "나이 많은 쪽",
      "note": "행정안전부 주민등록인구의 그달 말 만 나이별 사람 수로 셈했습니다. 같은 나이 사람은 그 나이 안에 고르게 퍼져 있다고 보고 절반을 나보다 어린 쪽에 셈합니다. 막대의 채운 쪽이 나보다 어린 사람입니다."
    }
  },
  "scenarios": [
    {
      "label": "서른다섯 살",
      "input": {
        "age": 35,
        "region": "00"
      },
      "url": "https://python-choigosu.com/ingu-piramideu/",
      "headline": {
        "key": "rank",
        "label": "백 명 중 나이 순서",
        "text": "어린 쪽에서 33번째",
        "value": "어린 쪽에서 33번째"
      },
      "gauge": {
        "key": "olderPct",
        "label": "나이 많은 쪽",
        "text": "67.0%",
        "value": 67,
        "note": "행정안전부 주민등록인구의 그달 말 만 나이별 사람 수로 셈했습니다. 같은 나이 사람은 그 나이 안에 고르게 퍼져 있다고 보고 절반을 나보다 어린 쪽에 셈합니다. 막대의 채운 쪽이 나보다 어린 사람입니다."
      },
      "rows": [
        {
          "key": "median",
          "label": "중위연령",
          "text": "47.8세",
          "value": "47.8세",
          "note": "2026년 9월 말 전국 사람을 나이 순으로 줄 세웠을 때 한가운데 사람의 나이"
        },
        {
          "key": "gap",
          "label": "중위연령과 차이",
          "text": "12살 어림",
          "value": "12살 어림",
          "note": "한가운데 사람은 만 47세"
        },
        {
          "key": "older",
          "label": "나보다 나이 많은 사람",
          "text": "3,390만 명",
          "value": "3,390만 명"
        },
        {
          "key": "younger",
          "label": "나보다 어린 사람",
          "text": "1,652만 명",
          "value": "1,652만 명"
        },
        {
          "key": "sameAge",
          "label": "나와 같은 나이",
          "text": "66만 9,408명",
          "value": "66만 9,408명",
          "note": "만 35세 남자 34만 9,581명, 여자 31만 9,827명"
        },
        {
          "key": "mean",
          "label": "평균 나이",
          "text": "46.3세",
          "value": "46.3세",
          "note": "만 나이마다 그 나이 한가운데로 보고 셈한 평균"
        },
        {
          "key": "then",
          "label": "2008년 말이었다면",
          "text": "어린 쪽에서 47번째",
          "value": "어린 쪽에서 47번째",
          "note": "같은 나이를 2008년 12월 말 전국 사람 사이에 세운 순서"
        },
        {
          "key": "medianThen",
          "label": "2008년 말 중위연령",
          "text": "36.9세",
          "value": "36.9세",
          "note": "2008년 12월 말 전국 사람의 한가운데 나이"
        }
      ]
    },
    {
      "label": "스물아홉 살",
      "input": {
        "age": 29,
        "region": "00"
      },
      "url": "https://python-choigosu.com/ingu-piramideu/?age=29",
      "headline": {
        "key": "rank",
        "label": "백 명 중 나이 순서",
        "text": "어린 쪽에서 25번째",
        "value": "어린 쪽에서 25번째"
      },
      "gauge": {
        "key": "olderPct",
        "label": "나이 많은 쪽",
        "text": "75.2%",
        "value": 75.2,
        "note": "행정안전부 주민등록인구의 그달 말 만 나이별 사람 수로 셈했습니다. 같은 나이 사람은 그 나이 안에 고르게 퍼져 있다고 보고 절반을 나보다 어린 쪽에 셈합니다. 막대의 채운 쪽이 나보다 어린 사람입니다."
      },
      "rows": [
        {
          "key": "median",
          "label": "중위연령",
          "text": "47.8세",
          "value": "47.8세",
          "note": "2026년 9월 말 전국 사람을 나이 순으로 줄 세웠을 때 한가운데 사람의 나이"
        },
        {
          "key": "gap",
          "label": "중위연령과 차이",
          "text": "18살 어림",
          "value": "18살 어림",
          "note": "한가운데 사람은 만 47세"
        },
        {
          "key": "older",
          "label": "나보다 나이 많은 사람",
          "text": "3,810만 명",
          "value": "3,810만 명"
        },
        {
          "key": "younger",
          "label": "나보다 어린 사람",
          "text": "1,231만 명",
          "value": "1,231만 명"
        },
        {
          "key": "sameAge",
          "label": "나와 같은 나이",
          "text": "67만 2,318명",
          "value": "67만 2,318명",
          "note": "만 29세 남자 34만 7,789명, 여자 32만 4,529명"
        },
        {
          "key": "mean",
          "label": "평균 나이",
          "text": "46.3세",
          "value": "46.3세",
          "note": "만 나이마다 그 나이 한가운데로 보고 셈한 평균"
        },
        {
          "key": "then",
          "label": "2008년 말이었다면",
          "text": "어린 쪽에서 38번째",
          "value": "어린 쪽에서 38번째",
          "note": "같은 나이를 2008년 12월 말 전국 사람 사이에 세운 순서"
        },
        {
          "key": "medianThen",
          "label": "2008년 말 중위연령",
          "text": "36.9세",
          "value": "36.9세",
          "note": "2008년 12월 말 전국 사람의 한가운데 나이"
        }
      ]
    },
    {
      "label": "마흔 살",
      "input": {
        "age": 40,
        "region": "00"
      },
      "url": "https://python-choigosu.com/ingu-piramideu/?age=40",
      "headline": {
        "key": "rank",
        "label": "백 명 중 나이 순서",
        "text": "어린 쪽에서 39번째",
        "value": "어린 쪽에서 39번째"
      },
      "gauge": {
        "key": "olderPct",
        "label": "나이 많은 쪽",
        "text": "60.8%",
        "value": 60.8,
        "note": "행정안전부 주민등록인구의 그달 말 만 나이별 사람 수로 셈했습니다. 같은 나이 사람은 그 나이 안에 고르게 퍼져 있다고 보고 절반을 나보다 어린 쪽에 셈합니다. 막대의 채운 쪽이 나보다 어린 사람입니다."
      },
      "rows": [
        {
          "key": "median",
          "label": "중위연령",
          "text": "47.8세",
          "value": "47.8세",
          "note": "2026년 9월 말 전국 사람을 나이 순으로 줄 세웠을 때 한가운데 사람의 나이"
        },
        {
          "key": "gap",
          "label": "중위연령과 차이",
          "text": "7살 어림",
          "value": "7살 어림",
          "note": "한가운데 사람은 만 47세"
        },
        {
          "key": "older",
          "label": "나보다 나이 많은 사람",
          "text": "3,075만 명",
          "value": "3,075만 명"
        },
        {
          "key": "younger",
          "label": "나보다 어린 사람",
          "text": "1,970만 명",
          "value": "1,970만 명"
        },
        {
          "key": "sameAge",
          "label": "나와 같은 나이",
          "text": "63만 5,368명",
          "value": "63만 5,368명",
          "note": "만 40세 남자 32만 7,106명, 여자 30만 8,262명"
        },
        {
          "key": "mean",
          "label": "평균 나이",
          "text": "46.3세",
          "value": "46.3세",
          "note": "만 나이마다 그 나이 한가운데로 보고 셈한 평균"
        },
        {
          "key": "then",
          "label": "2008년 말이었다면",
          "text": "어린 쪽에서 57번째",
          "value": "어린 쪽에서 57번째",
          "note": "같은 나이를 2008년 12월 말 전국 사람 사이에 세운 순서"
        },
        {
          "key": "medianThen",
          "label": "2008년 말 중위연령",
          "text": "36.9세",
          "value": "36.9세",
          "note": "2008년 12월 말 전국 사람의 한가운데 나이"
        }
      ]
    },
    {
      "label": "쉰 살",
      "input": {
        "age": 50,
        "region": "00"
      },
      "url": "https://python-choigosu.com/ingu-piramideu/?age=50",
      "headline": {
        "key": "rank",
        "label": "백 명 중 나이 순서",
        "text": "어린 쪽에서 54번째",
        "value": "어린 쪽에서 54번째"
      },
      "gauge": {
        "key": "olderPct",
        "label": "나이 많은 쪽",
        "text": "46.0%",
        "value": 46,
        "note": "행정안전부 주민등록인구의 그달 말 만 나이별 사람 수로 셈했습니다. 같은 나이 사람은 그 나이 안에 고르게 퍼져 있다고 보고 절반을 나보다 어린 쪽에 셈합니다. 막대의 채운 쪽이 나보다 어린 사람입니다."
      },
      "rows": [
        {
          "key": "median",
          "label": "중위연령",
          "text": "47.8세",
          "value": "47.8세",
          "note": "2026년 9월 말 전국 사람을 나이 순으로 줄 세웠을 때 한가운데 사람의 나이"
        },
        {
          "key": "gap",
          "label": "중위연령과 차이",
          "text": "3살 많음",
          "value": "3살 많음",
          "note": "한가운데 사람은 만 47세"
        },
        {
          "key": "older",
          "label": "나보다 나이 많은 사람",
          "text": "2,315만 명",
          "value": "2,315만 명"
        },
        {
          "key": "younger",
          "label": "나보다 어린 사람",
          "text": "2,719만 명",
          "value": "2,719만 명"
        },
        {
          "key": "sameAge",
          "label": "나와 같은 나이",
          "text": "74만 2,755명",
          "value": "74만 2,755명",
          "note": "만 50세 남자 37만 7,677명, 여자 36만 5,078명"
        },
        {
          "key": "mean",
          "label": "평균 나이",
          "text": "46.3세",
          "value": "46.3세",
          "note": "만 나이마다 그 나이 한가운데로 보고 셈한 평균"
        },
        {
          "key": "then",
          "label": "2008년 말이었다면",
          "text": "어린 쪽에서 74번째",
          "value": "어린 쪽에서 74번째",
          "note": "같은 나이를 2008년 12월 말 전국 사람 사이에 세운 순서"
        },
        {
          "key": "medianThen",
          "label": "2008년 말 중위연령",
          "text": "36.9세",
          "value": "36.9세",
          "note": "2008년 12월 말 전국 사람의 한가운데 나이"
        }
      ]
    },
    {
      "label": "예순다섯 살",
      "input": {
        "age": 65,
        "region": "00"
      },
      "url": "https://python-choigosu.com/ingu-piramideu/?age=65",
      "headline": {
        "key": "rank",
        "label": "백 명 중 나이 순서",
        "text": "어린 쪽에서 79번째",
        "value": "어린 쪽에서 79번째"
      },
      "gauge": {
        "key": "olderPct",
        "label": "나이 많은 쪽",
        "text": "21.3%",
        "value": 21.3,
        "note": "행정안전부 주민등록인구의 그달 말 만 나이별 사람 수로 셈했습니다. 같은 나이 사람은 그 나이 안에 고르게 퍼져 있다고 보고 절반을 나보다 어린 쪽에 셈합니다. 막대의 채운 쪽이 나보다 어린 사람입니다."
      },
      "rows": [
        {
          "key": "median",
          "label": "중위연령",
          "text": "47.8세",
          "value": "47.8세",
          "note": "2026년 9월 말 전국 사람을 나이 순으로 줄 세웠을 때 한가운데 사람의 나이"
        },
        {
          "key": "gap",
          "label": "중위연령과 차이",
          "text": "18살 많음",
          "value": "18살 많음",
          "note": "한가운데 사람은 만 47세"
        },
        {
          "key": "older",
          "label": "나보다 나이 많은 사람",
          "text": "1,040만 명",
          "value": "1,040만 명"
        },
        {
          "key": "younger",
          "label": "나보다 어린 사람",
          "text": "3,977만 명",
          "value": "3,977만 명"
        },
        {
          "key": "sameAge",
          "label": "나와 같은 나이",
          "text": "90만 9,868명",
          "value": "90만 9,868명",
          "note": "만 65세 남자 44만 5,444명, 여자 46만 4,424명"
        },
        {
          "key": "mean",
          "label": "평균 나이",
          "text": "46.3세",
          "value": "46.3세",
          "note": "만 나이마다 그 나이 한가운데로 보고 셈한 평균"
        },
        {
          "key": "then",
          "label": "2008년 말이었다면",
          "text": "어린 쪽에서 90번째",
          "value": "어린 쪽에서 90번째",
          "note": "같은 나이를 2008년 12월 말 전국 사람 사이에 세운 순서"
        },
        {
          "key": "medianThen",
          "label": "2008년 말 중위연령",
          "text": "36.9세",
          "value": "36.9세",
          "note": "2008년 12월 말 전국 사람의 한가운데 나이"
        }
      ]
    },
    {
      "label": "서울 사는 서른 살",
      "input": {
        "age": 30,
        "region": "11"
      },
      "url": "https://python-choigosu.com/ingu-piramideu/?age=30&region=11",
      "headline": {
        "key": "rank",
        "label": "백 명 중 나이 순서",
        "text": "어린 쪽에서 27번째",
        "value": "어린 쪽에서 27번째"
      },
      "gauge": {
        "key": "olderPct",
        "label": "나이 많은 쪽",
        "text": "73.4%",
        "value": 73.4,
        "note": "행정안전부 주민등록인구의 그달 말 만 나이별 사람 수로 셈했습니다. 같은 나이 사람은 그 나이 안에 고르게 퍼져 있다고 보고 절반을 나보다 어린 쪽에 셈합니다. 막대의 채운 쪽이 나보다 어린 사람입니다."
      },
      "rows": [
        {
          "key": "median",
          "label": "중위연령",
          "text": "45.8세",
          "value": "45.8세",
          "note": "2026년 9월 말 서울특별시 사람을 나이 순으로 줄 세웠을 때 한가운데 사람의 나이"
        },
        {
          "key": "gap",
          "label": "중위연령과 차이",
          "text": "15살 어림",
          "value": "15살 어림",
          "note": "한가운데 사람은 만 45세"
        },
        {
          "key": "older",
          "label": "나보다 나이 많은 사람",
          "text": "673만 명",
          "value": "673만 명"
        },
        {
          "key": "younger",
          "label": "나보다 어린 사람",
          "text": "238만 명",
          "value": "238만 명"
        },
        {
          "key": "sameAge",
          "label": "나와 같은 나이",
          "text": "16만 2,585명",
          "value": "16만 2,585명",
          "note": "만 30세 남자 7만 8,887명, 여자 8만 3,698명"
        },
        {
          "key": "mean",
          "label": "평균 나이",
          "text": "45.7세",
          "value": "45.7세",
          "note": "만 나이마다 그 나이 한가운데로 보고 셈한 평균"
        },
        {
          "key": "then",
          "label": "2008년 말이었다면",
          "text": "어린 쪽에서 39번째",
          "value": "어린 쪽에서 39번째",
          "note": "같은 나이를 2008년 12월 말 전국 사람 사이에 세운 순서"
        },
        {
          "key": "medianThen",
          "label": "2008년 말 중위연령",
          "text": "36.9세",
          "value": "36.9세",
          "note": "2008년 12월 말 전국 사람의 한가운데 나이"
        }
      ]
    },
    {
      "label": "경기 사는 마흔다섯 살",
      "input": {
        "age": 45,
        "region": "41"
      },
      "url": "https://python-choigosu.com/ingu-piramideu/?age=45&region=41",
      "headline": {
        "key": "rank",
        "label": "백 명 중 나이 순서",
        "text": "어린 쪽에서 49번째",
        "value": "어린 쪽에서 49번째"
      },
      "gauge": {
        "key": "olderPct",
        "label": "나이 많은 쪽",
        "text": "50.6%",
        "value": 50.6,
        "note": "행정안전부 주민등록인구의 그달 말 만 나이별 사람 수로 셈했습니다. 같은 나이 사람은 그 나이 안에 고르게 퍼져 있다고 보고 절반을 나보다 어린 쪽에 셈합니다. 막대의 채운 쪽이 나보다 어린 사람입니다."
      },
      "rows": [
        {
          "key": "median",
          "label": "중위연령",
          "text": "45.9세",
          "value": "45.9세",
          "note": "2026년 9월 말 경기도 사람을 나이 순으로 줄 세웠을 때 한가운데 사람의 나이"
        },
        {
          "key": "gap",
          "label": "중위연령과 차이",
          "text": "같은 나이",
          "value": "같은 나이",
          "note": "한가운데 사람은 만 45세"
        },
        {
          "key": "older",
          "label": "나보다 나이 많은 사람",
          "text": "686만 명",
          "value": "686만 명"
        },
        {
          "key": "younger",
          "label": "나보다 어린 사람",
          "text": "668만 명",
          "value": "668만 명"
        },
        {
          "key": "sameAge",
          "label": "나와 같은 나이",
          "text": "24만 279명",
          "value": "24만 279명",
          "note": "만 45세 남자 12만 3,118명, 여자 11만 7,161명"
        },
        {
          "key": "mean",
          "label": "평균 나이",
          "text": "44.5세",
          "value": "44.5세",
          "note": "만 나이마다 그 나이 한가운데로 보고 셈한 평균"
        },
        {
          "key": "then",
          "label": "2008년 말이었다면",
          "text": "어린 쪽에서 65번째",
          "value": "어린 쪽에서 65번째",
          "note": "같은 나이를 2008년 12월 말 전국 사람 사이에 세운 순서"
        },
        {
          "key": "medianThen",
          "label": "2008년 말 중위연령",
          "text": "36.9세",
          "value": "36.9세",
          "note": "2008년 12월 말 전국 사람의 한가운데 나이"
        }
      ]
    }
  ],
  "basis": [
    {
      "label": "1세별 주민등록인구 자료와 출처",
      "url": "https://python-choigosu.com/data/resident-age-2026/"
    },
    {
      "label": "행정구역(시군구)별/1세별 주민등록인구 (KOSIS 국가통계포털)",
      "url": "https://kosis.kr/statHtml/statHtml.do?orgId=101&tblId=DT_1B04006"
    }
  ],
  "caveats": [
    "주민등록인구는 주민등록표에 오른 사람을 주소지로 셉니다. 외국인은 들어 있지 않고, 실제로 사는 곳이 주소와 다른 사람도 주소지에 셉니다.",
    "나이는 그달 말일의 만 나이입니다. 같은 나이 사람은 그 나이 안에 고르게 퍼져 있다고 보고 절반을 나보다 어린 쪽에 셈하고, 백 살 이상은 한 칸으로 셈합니다.",
    "중위연령은 이 표로 셈한 값이라 통계청이 인구주택총조사(외국인 포함, 11월 1일 기준)로 발표하는 중위연령과 조금 다릅니다."
  ]
}
