본문으로 건너뛰기
모두의 법안
비공식 서비스

집계 방법과 한계

숫자를 어떻게 셌는지 밝혀 두는 편이 오해를 줄인다고 생각해 정리한 문서입니다.

데이터 출처와 갱신

모든 데이터는 대한민국 국회가 공개하는 열린국회정보 Open API에서 받아옵니다. 의안 목록, 제안이유·주요내용 전문, 의안별 제안자 정보, 현역·역대 국회의원 인적사항, 정당 및 교섭단체 의석수 현황처럼 서로 다른 데이터셋을 사용합니다.

의안·의원 데이터는 매일 새벽(한국시간 기준) 한 번 자동으로 동기화합니다. 정상 실행 사이에는 국회에 방금 접수된 법안이 다음 날 동기화까지 반영되지 않을 수 있고, 실행이 실패하면 더 늦어질 수 있습니다. 화면의 갱신 지연 안내가 나타나면 원문을 우선 확인하세요. 정당 및 교섭단체 의석수는 정당 현황 화면을 요청할 때 API에서 조회합니다. 공개 화면 응답은 5분간 최신 캐시로 쓰고, 만료 뒤에도 최대 60분 동안 이전 응답을 먼저 보내면서 백그라운드에서 갱신할 수 있습니다. 정확한 최신 의안 정보가 필요하면 각 의안 상세 페이지의 국회 의안정보시스템 원문 링크를 확인하세요.

현재 다루는 범위는 제22대 (2024~), 제21대 (2020~2024)입니다.

무엇을 세는가

의원별·정당별 통계는 모두 의원 대표발의 기준입니다. 위원장이 제출한 위원회 대안과 정부가 제출한 법률안은 특정 의원의 발의로 볼 수 없어 집계에서 제외합니다.

공동발의는 별도로 다룹니다. 의원 상세 페이지의 ‘발의 참여’와 검색의 발의 참여 필터는 대표발의뿐 아니라 공동발의자로 이름을 올린 법안까지 포함합니다. 한 법안에 여러 의원이 함께 이름을 올릴 수 있으므로, 이 숫자는 대표발의 건수보다 큽니다.

대표발의자가 두 명 이상인 법안은 집계에서 빠집니다. 국회 데이터가 그런 경우 두 사람의 코드를 한 칸에 이어 담아, 정당별·의원별 집계가 어느 쪽에도 세지 못합니다. 의안 상세 화면에는 두 사람을 각각 제대로 보여주지만 숫자에는 들어가지 않습니다. 제22대 (2024~) 197건, 제21대 (2020~2024) 3건이 여기 해당합니다.

처리 결과를 어떻게 분류하는가

가장 오해를 부르기 쉬운 부분입니다. ‘대안반영폐기’는 실패가 아닙니다. 위원회가 비슷한 여러 법안을 묶어 하나의 대안을 만들 때, 원래 법안들은 형식상 폐기되지만 내용은 그 대안에 담겨 입법됩니다. 이름만 보고 실패로 집계하면 실제 성과가 크게 과소평가됩니다.

‘임기만료폐기’는 국회 임기가 끝나면서 심사가 끝나지 않은 법안이 일괄 폐기된 것으로, 발의자의 역량과는 관계가 없습니다. 그래서 다른 폐기 사유와 구분해 함께 표시합니다.

그래서 이 서비스는 하나의 ‘가결률’ 대신 본회의 가결대안 반영을 나누어 보여주고, 임기만료 폐기 비중도 함께 표시합니다.

원안가결
발의된 내용 그대로 본회의를 통과했습니다.
수정가결
심사 과정에서 내용이 수정되어 본회의를 통과했습니다.
대안반영폐기
위원회가 여러 법안을 묶어 대안을 만들 때 이 법안의 내용이 그 대안에 반영되고, 원안은 형식상 폐기된 경우입니다. 이름과 달리 사실상 입법에 반영된 결과입니다.
수정안반영폐기
다른 법안의 수정안에 내용이 반영되고 원안은 폐기된 경우입니다. 대안반영폐기와 마찬가지로 내용은 살아남았습니다.
계류
아직 본회의 심의 결과가 나오지 않은 상태입니다.
임기만료폐기
국회 임기가 끝나면서 심사가 끝나지 않은 법안이 자동 폐기된 것입니다. 발의자의 성과와는 관계가 없습니다.
폐기
심사 결과 폐기가 확정된 경우입니다.
부결
본회의 표결에서 부결되었습니다.
철회
발의자가 스스로 법안을 거두었습니다.

검색은 어떻게 동작하는가

검색어를 공백으로 쪼개 모두 포함하는 법률안을 찾습니다. ‘인공지능 저작권’은 두 단어가 나란히 붙어 있지 않아도, 한 법안 안에 둘 다 나오면 걸립니다. 찾는 범위는 법률안명과 제안이유·주요내용 전문, 그리고 발의자 이름입니다.

법률안명은 띄어쓰기를 무시하고 비교합니다. ‘인공지능산업’으로 검색해도 「인공지능 산업 육성…」이 함께 나옵니다. 반면 전문(제안이유)은 띄어쓰기를 그대로 비교합니다 — 전문까지 같은 방식으로 색인하기에는 저장 용량이 부족했습니다.

순서는 관련도순이 기본입니다. 법률안명이 검색어로 시작하는 법안을 가장 앞에, 다음으로 법률안명에 걸린 검색어가 많은 순으로 놓고, 같으면 최신순으로 가릅니다. 처리 결과와 정당은 순위에 쓰지 않습니다. 가결된 법안을 위로 올리면 특정 의원이나 정당의 법안이 구조적으로 먼저 노출되어, 검색 순서가 평가처럼 읽힐 수 있기 때문입니다.

동의어를 어디까지 같은 것으로 보는가

‘AI’로 검색했을 때 「인공지능 기본법안」이 나오지 않으면 검색이 제 역할을 못 합니다. 그래서 아래 사전에 있는 표기들은 서로 바꿔 찾습니다. 확장이 적용되면 결과 위에 무엇이 넓혀졌는지 표시하며, ‘입력한 표기만 검색’으로 끌 수 있습니다.

등재 기준은 같은 대상을 가리키는 표기 변형뿐입니다. 약어와 정식 명칭(AI ↔ 인공지능), 외래어 표기 차이(딥페이크 ↔ deepfake), 법률 용어와 통용어(영상정보처리기기 ↔ CCTV) 세 가지입니다.

상하위 개념과 연관 개념은 넣지 않았습니다. AI에 머신러닝이나 알고리즘을 넣으면 ‘무엇을 AI 법안으로 볼지’를 저희가 정하는 셈이 되고, 그 판단이 어떤 의원의 법안이 어떤 주제에 묶이는지를 바꿉니다. 그건 검색이 아니라 편집이라고 판단했습니다. 사전을 여기 그대로 공개하는 이유이기도 합니다. 정정 요청 창구는 아래 ‘잘못된 내용을 발견했다면’에 밝힌 대로 아직 준비 중입니다.

  • AI ↔ 인공지능
  • IoT ↔ 사물인터넷
  • ICT ↔ 정보통신기술
  • VR ↔ 가상현실
  • AR ↔ 증강현실
  • NFT ↔ 대체불가능토큰
  • OTT ↔ 온라인동영상서비스
  • UAM ↔ 도심항공교통
  • GMO ↔ 유전자변형생물체
  • R&D ↔ 연구개발
  • 마이데이터 ↔ MyData
  • 딥페이크 ↔ deepfake
  • 메타버스 ↔ metaverse
  • 블록체인 ↔ blockchain
  • 코로나 ↔ COVID-19 ↔ COVID
  • 탄소중립 ↔ 넷제로 ↔ NetZero
  • 영상정보처리기기 ↔ CCTV
  • 가상자산 ↔ 암호화폐 ↔ 가상통화
  • 온라인투자연계금융 ↔ P2P
  • 개인형이동장치 ↔ 전동킥보드
  • 비대면진료 ↔ 원격의료
  • 근로자 ↔ 노동자
  • 반려동물 ↔ 애완동물
  • 전기차 ↔ 전기자동차
  • 수소차 ↔ 수소전기자동차
  • 학교폭력 ↔ 학폭
  • 원자력 ↔ 원전
  • 재생에너지 ↔ 신재생에너지
  • 저출산 ↔ 저출생
  • 기후위기 ↔ 기후변화

발의 참여 의원은 어떻게 보여주는가

의안 상세 페이지에 대표발의자와 공동발의자 전원을 표시합니다. 국회 데이터의 제안자 표기는 ‘○○○의원 등 10인’ 형태라 나머지가 누구인지 알 수 없어, 의안별 제안자 데이터셋을 따로 받아 이어 붙였습니다.

공동발의는 표결이 아닙니다. 법안을 발의하는 데 이름을 올린 것으로, 이후 본회의 표결에서 어떻게 투표했는지와는 다릅니다. 국회가 공개하는 표결 기록은 이 서비스에서 다루지 않습니다.

위원장이 제출한 위원회 대안과 정부 제출안은 참여 의원이 표시되지 않습니다. 데이터가 빠진 것이 아니라 귀속할 개별 의원이 없기 때문입니다.

정당은 어느 시점 기준인가

법안 상세의 발의자 정당은 국회 의안 제안자정보가 그 법안에 기록한 소속을 그대로 씁니다. 현역 의원 API의 현재 소속과 다르면 ‘전 더불어민주당’처럼 표시합니다. 원데이터를 받지 못한 경우에는 임기 소속으로 추정하지 않고 정당을 비웁니다. 현역 명단에 없는 의원은 현재 당적을 알 수 없으므로 ‘전’을 붙이지 않고 법안 제안 당시 소속명만 표시합니다.

의원 프로필 머리말의 정당은 현역 의원 인적사항 API의 현재 소속만 표시합니다. 현역 명단에 없는 의원은 마지막 임기 정당을 현재 소속처럼 보이지 않도록 정당을 비우고, 어느 대수 임기 정보인지 화면에 따로 밝힙니다.

검색의 정당 필터·통계·내보내기는 해당 대수의 역대 의원 원데이터를 사용합니다. 이 데이터는 임기 중 입당·탈당 시점을 나누지 않으므로마지막 소속 기준이며, 법안 상세의 법안별 소속과 다를 수 있습니다.

정당 상세는 의석수 API·현역 의원 API·역대 의원 API의 원데이터를 우선합니다. 이 세 원본에는 없지만 법안 제안 당시 소속명에만 남은 정당도 있습니다. 그런 화면은 의안 제안자정보 API에 실제로 등장한 의원만 법안 제안자 기록으로 보여주며, 정당 전체 구성원 명단이라고 부르지 않습니다.

정당 이력과 재임 대수 개수가 맞지 않는 일부 의원은 잘못된 정당이 붙는 것을 막기 위해 정당을 비워 둡니다. 추측해서 채우기보다 비워 두는 편이 정확하다고 판단했습니다.

지켜보는 법안은 어디에 저장되는가

로그인하지 않으면 담아 둔 법안은 목록 자체는 여러분의 브라우저에만 저장됩니다. 누가 무엇을 담았는지는 서비스 데이터베이스에 남기지 않습니다. 대신 기기를 바꾸거나 브라우저 저장소를 지우면 사라집니다.

지켜보기 시작·중단 때는 선택한 의안번호와 동작을 서버로 보내 의안별 현재 수만 1 올리거나 내립니다. 브라우저 식별자나 목록 전체를 함께 보내지 않아 서비스 데이터베이스에는 누가 무엇을 지켜보는지 저장하지 않습니다. IP·요청 경로 등이 남을 수 있는 호스팅 접속기록은 개인정보 처리방침에 따로 밝혔습니다.

이 숫자는 누적해서 담은 횟수가 아니라 지금 담아 둔 곳 수이며, 현재는 순위로 보여주지 않습니다. 지켜보기 화면에서 최신 처리상태를 가져올 때도 담아 둔 의안번호를 조회하지만 서비스 데이터베이스에는 그 요청을 저장하지 않습니다. 무엇을 저장하고 무엇을 저장하지 않는지는 개인정보 처리방침에 항목별로 적어 두었습니다.

'많이 본 법안'은 무엇을 센 것인가

최근 7일 동안 이 사이트 방문자가 의안 상세를 연 횟수를 집계한 것입니다. 찬성·반대가 아니고, 국민 여론을 대표하지도 않습니다. 관심이 많다는 것과 지지한다는 것은 다릅니다 — 반대하려고 찾아보는 경우도 많습니다.

화면에서 실제로 연 것만 셉니다. 서버가 응답할 때 세면 검색엔진 크롤러와 메신저 링크 미리보기까지 섞여 순위가 왜곡됩니다. 같은 브라우저 탭에서 같은 의안을 다시 열면 중복해서 세지 않습니다. 새 탭이나 다른 기기에서 연 횟수는 따로 셉니다.

최근 7일 합계가 2회 이상인 법안이 없으면 순위 자체를 보여주지 않습니다. 한 번씩 열린 법안을 임의로 줄 세워 「많이 본」 것으로 단정하지 않기 위해서입니다.

서비스 데이터베이스에는 누가 무엇을 열어 봤는지 저장하지 않습니다. 의안별 하루 합계만 기록하며, 30일이 지난 기록은 지웁니다. IP·요청 경로 등이 남을 수 있는 호스팅 접속기록은 개인정보 처리방침에 따로 밝혔습니다.

'지켜보는 중'은 무엇을 센 것인가

그 법안을 지금 지켜보기에 담아 둔 브라우저의 수입니다. 지켜보기를 누르면 1 오르고 그만두면 1 내립니다. 누적 횟수가 아니라 지금 담겨 있는 수라, 그만둔 사람은 남지 않습니다.

사람 수가 아닙니다. 같은 사람이 휴대전화와 컴퓨터에서 각각 담으면 2로 셉니다. 그래서 화면에도 「명」이 아니라 「곳」이라고 적습니다. 계정을 만들게 해도 이 문제는 풀리지 않습니다 — 이메일 주소는 얼마든지 만들 수 있어 어느 쪽이든 사람 수는 셀 수 없습니다.

찬성·반대가 아닙니다. 반대해서 지켜보는 경우도 함께 셉니다. 어떻게 되는지 지켜보겠다는 뜻일 뿐입니다.

알려진 한계가 있습니다. 브라우저 저장소를 비우면 담아 둔 목록이 사라지는데, 그때는 1을 내리지 못해 그대로 남습니다. 반대로 담기 집계 요청이 네트워크 오류나 요청 제한으로 전달되지 않으면 실제보다 작아질 수도 있습니다. 따라서 이 값은 대략적인 현재 관심의 보조 정보이며 정밀한 브라우저 수가 아닙니다. 공개 화면의 공유 캐시 때문에 방금 누른 변화가 숫자에 바로 보이지 않을 수도 있습니다.

의원 사진은 어디서 왔는가

국회가 열린국회정보 Open API로 공개하는 의원 공식 프로필 사진입니다. 국회 저작권정책에 따라 공공누리 제1유형(출처표시 조건, 상업적 이용·변형 허용)으로 이용하며, 출처는 대한민국 국회입니다.

사진은 입법 활동을 보여주는 맥락에서만 사용합니다. 광고나 가공된 이미지로 쓰지 않습니다. 사진 게시 이의 접수 창구는 아직 준비 중이며, 개설 뒤 요청을 확인하면 내리겠습니다.

사진이 없는 의원은 이름 첫 글자로 대신 표시합니다.

의원 프로필에 무엇을 담고 무엇을 담지 않는가

약력·선수·소속위원회·당선구분은 국회가 공개하는 역대 국회의원 인적사항에서 그대로 가져옵니다. 비어 있는 값은 비어 있는 대로 둡니다 — 채워 넣을 방법이 없고, 추측해서 채우면 그때부터 이 페이지가 거짓이 됩니다.

다루는 대수별로 실제로 얼마나 채워져 있는지 세어 보면 이렇습니다. 이 숫자는 화면을 그릴 때 데이터베이스에서 직접 셉니다 — 글로 적어 두면 의원이 사퇴하거나 위원회 배정이 바뀔 때 조용히 틀린 문장이 됩니다.

제22대 (2024~)
재임 320명 · 선수·당선구분 320명 · 소속위원회 319명 · 약력 315
제21대 (2020~2024)
재임 322명 · 선수·당선구분 322명 · 소속위원회 155명 · 약력 321

약력의 서식은 의원마다 다릅니다(‘[학력]’, ‘■ 학력’, 구분자 없음 등). 저희가 항목으로 나누려 들면 상당수를 잘못 해석하게 되므로, 원문의 줄바꿈만 살려 그대로 옮깁니다.

다만 원문에는 · 같은 HTML 표기가 글자 그대로 섞여 있습니다. 이런 표기는 원래 의도한 기호(·)로 되돌려 보여줍니다. 그 밖에 내용을 고치거나 줄이지 않습니다.

소속위원회 중 특별위원회(예산결산·국정조사·인사청문 등)에는 법률안이 배정되지 않습니다. 눌러도 결과가 없는 링크가 되므로 이런 위원회는 이름만 표시하고 법안 목록으로 연결하지 않습니다. 제22대 (2024~) 기준 위원회 표기 541개 중 109개가 여기 해당합니다.

이메일·전화번호·생년월일·보좌진 이름도 같은 API로 공개되지만 저장하지도 표시하지도 않습니다. 이 서비스는 입법 활동에 관한 공적 정보만 다룹니다.

선수(‘3선’)와 소속위원회는 대수별 값이 아니라 현재 원본 값입니다. 과거 대수 화면에서도 같은 값이 보이는 것은 그 때문입니다. 현역 의원의 이름·정당·선거구도 현역 API의 현재 값을 쓰고, 선택한 대수는 법안 집계와 당선구분에 적용합니다. 현역 API에 없는 의원은 정당을 비우고 선택한 대수의 선거구·당선구분만 표시합니다.

알려진 한계

  • 제안이유·주요내용 전문이 없는 의안이 일부 있습니다. 국회 원천 데이터에 자료가 등록되지 않은 경우입니다.
  • 두 글자 한글 검색어(‘연금’ 등)는 데이터베이스 색인을 쓰기 어려워 긴 검색어보다 느릴 수 있습니다. 영문 약어(AI, IoT)는 별도 색인을 사용합니다.
  • 검색어는 앞에서 여섯 개까지만 사용합니다. 그보다 많이 입력하면 초과분을 버리고 결과 위에 몇 개를 버렸는지 알려 줍니다.
  • 검색 결과 내려받기는 한 번에 1,000건까지입니다. 그보다 많으면 파일에 일부만 담기며, 응답 헤더로 전체 건수를 함께 알려 줍니다.
  • 조회수 집계는 자동화된 접근을 완전히 걸러내지 못하고, 반복 조회를 막는 장치도 같은 브라우저 탭 안에서만 동작합니다. 순위를 정밀한 관심도 측정으로 읽지 마세요.
  • 발의 건수는 의정활동의 을 나타내는 지표일 뿐, 법안의 중요도나 질을 반영하지 않습니다. 순위를 그대로 평가로 읽지 않도록 주의해 주세요.

잘못된 내용을 발견했다면

오류는 두 가지로 나뉩니다. 국회 원천 데이터 자체가 잘못된 경우는 이 서비스에서 고칠 수 없습니다. 각 의안 상세 페이지의 국회 의안정보시스템 원문을 확인하시고, 정정이 필요하면 국회에 문의해야 합니다.

이 서비스의 집계·표시가 잘못된 경우(원문과 다르게 나오거나, 통계가 맞지 않는 경우)는 저희 문제입니다. 아래 연락처가 개설된 뒤 해당 페이지 주소와 잘못된 값을 접수하면 확인해 정정하겠습니다.

정정 요청 연락처는 준비 중입니다. 개설 전까지는 국회 의안정보시스템 원문을 기준으로 판단해 주세요.

이 서비스의 성격

국회 공식 서비스가 아닙니다. 공개된 공공데이터를 모아 검색하기 쉽게 만든 비공식 도구이며, 특정 정당이나 정치인을 지지하거나 반대하려는 목적이 없습니다. 표시되는 모든 수치는 국회가 공개한 사실 정보를 집계한 것이고, 평가나 의견을 담고 있지 않습니다.

법안 검색으로 돌아가기