2P by GN⁺ 21시간전 | ★ favorite | 댓글 1개
  • 스페인 정부의 BOE 공개 API를 통해 수집한 1960년 이후 8,600개 이상 법률을 Markdown 파일로 관리하는 저장소
  • 각 법률은 YAML 메타데이터와 함께 저장되며, 모든 개정 이력이 Git 커밋으로 추적됨
  • 헌법, 유기법, 일반법, 왕령 법률 등 국가 단위 통합 법률 전체를 포함하고, 각 커밋에는 공식 출처 링크가 기록됨
  • 법률 텍스트는 공공 도메인으로 제공되며, 저장소는 구조화·버전 관리·비교 기능을 추가 제공
  • 프로젝트는 Legalize.dev API와 연계되어 법률 검색, 버전 비교, 변경 알림 등 확장 기능을 지원할 예정임

개요

  • 스페인 법률 전체를 Git 저장소 형태로 관리하는 프로젝트로, 각 법률이 Markdown 파일로 구성되고 모든 개정 이력이 커밋으로 기록되는 구조
  • 1960년 이후의 8,600개 이상 법률을 포함하며, 데이터는 스페인 정부의 BOE(Boletín Oficial del Estado) 공개 API에서 가져옴
  • 이 저장소는 Legalize 프로젝트의 일부로, 법률의 버전 관리와 비교, 추적을 가능하게 함
  • 법률 텍스트는 공공 도메인으로 제공되며, 저장소는 구조화·메타데이터·버전 관리 기능을 제공

파일 구조

  • 모든 법률은 spain/ 디렉터리 아래에 Markdown 파일로 저장됨
    • 예: BOE-A-1978-31229.md스페인 헌법, BOE-A-1995-25444.md형법, BOE-A-2015-11430.md노동자 규정, BOE-A-2000-323.md민사소송법
  • 각 파일은 YAML 형식의 frontmatter 메타데이터로 시작
    • titulo, identificador, pais, rango, fecha_publicacion, ultima_actualizacion, estado, fuente 등의 항목 포함
    • 예시에서는 헌법(Constitución Española)의 발행일, 최신 업데이트일, 상태(‘vigente’), 공식 출처 URL이 명시됨

포함된 법률 범위

  • BOE에서 국가 단위로 분류된 모든 통합 법률을 포함
    • 헌법, 유기법(Leyes Orgánicas), 일반법(Leyes ordinarias), 왕령 법률(Decretos-ley), 입법 왕령(Reales Decretos Legislativos)
  • 각 개정은 독립된 커밋으로 저장되며, 커밋의 작성일은 공식 발표일을 반영
  • 커밋 메시지에는 개정 식별자와 공식 출처 링크가 포함됨

사용 예시

  • 저장소를 클론한 후 특정 법률 조항을 검색하거나 변경 이력을 확인 가능
    • 예: grep 명령으로 헌법 제135조를 검색
    • git log로 해당 조항의 변경 이력 확인
    • git diff로 2011년 재정 안정성 개혁의 구체적 변경 사항 비교

데이터 출처 및 라이선스

  • 모든 데이터는 BOE의 통합 입법 API에서 가져옴
  • 법률 텍스트는 공공 도메인이며, 저장소는 구조화 및 버전 관리 기능만 추가
  • 저장소 구조, 메타데이터, 도구는 MIT 라이선스로 배포

API 및 확장 계획

  • Legalize API가 곧 legalize.dev에서 제공될 예정
    • 법률 검색, 필터링, 버전 비교, 변경 알림 기능을 지원 예정

기여 방법

  • 통합 텍스트 오류나 누락된 개정이 있을 경우, 이슈(issue) 를 열어 법률명, 조항, 공식 출처와 함께 수정 제안 가능

제작자

  • 프로젝트는 Enrique Lopez가 제작
  • Legalize 프로젝트의 일환으로, legalize.dev와 연계됨
Hacker News 의견들
  • 프랑스에서는 법률이 단순히 버전 관리되는 것뿐 아니라 형식적으로 증명(formally proved) 되기도 함
    Catala 언어를 통해 법률을 코드처럼 다룸
    편집: 프랑스 팀이 여기에도 꽤 있음. 최소 다섯 명이 Légifrance를 인용하며 버전 관리 얘기를 하고 있음

    • Catala는 법을 ‘증명’하는 도구가 아니라, 법률의 논리 구조(default logic) 를 그대로 표현하면서 계산 가능한 형태로 번역하는 언어임
      세금이나 복지 계산 로직을 구현할 때, 기존 범용 언어보다 훨씬 정확하게 실제 법과 일치하는지 검증할 수 있게 해줌
    • “Catala”라는 이름이 스페인 법 얘기 중에 등장하니 아이러니하다고 느꼈음
    • 예전에 이 주제에 대한 이전 토론이 있었음
    • “Borbaqui est la volonté du peuple!” — 프랑스식 유머로 보임
  • 나는 스페인 국가 법령 전체를 버전 관리된 Markdown 저장소로 변환하는 파이프라인을 만들었음
    각 법은 하나의 파일, 각 개정은 실제 날짜가 포함된 git 커밋으로 기록됨. 총 8,642개의 법과 27,866개의 커밋이 있음
    법률은 결국 ‘패치의 연속’이라 git이 이미 해결책이라고 생각함. “3항을 삭제하고…” 같은 문장 대신 실제 diff로 변경 내역을 볼 수 있음
    소스는 스페인 관보(BOE)의 통합 법령 API를 사용했고, Claude Code로 약 4시간 만에 구축함
    이 데이터를 기반으로 법률 API나 오픈데이터 플랫폼으로 발전시킬 수 있을지 탐색 중임

    • 법의 의도(intent) 는 종종 판례를 통해 명확해지므로, 법 조항 위에 판결문을 시간순으로 덧씌운다면 가치가 클 것 같음
      어떤 법이 가장 자주 인용되었는지, 어떤 표현이 반복적으로 해석이 필요했는지도 분석 가능함
    • 관보가 어떤 형식으로 법을 제공하는지 궁금했음. 독일은 아직 PDF뿐이라 부럽다고 함
      스페인처럼 공식 API가 있으면 훨씬 효율적일 텐데, 독일은 민간 기관이 저작권까지 주장함
    • 로마-나폴레옹 법체계에서는 조항의 변경은 추적 가능하지만, 법 간 상호작용은 여전히 판사와 변호사의 해석에 의존함
      영국처럼 legislation.gov.uk에서는 모든 개정 이력을 추적할 수 있음
    • 스페인에서는 통합 법령이 전체를 포괄하지 않으며, 진짜 문제는 판결문 데이터의 부재
      대형 로펌들은 자체 데이터베이스를 가지고 있어서 유료 서비스로는 시장성이 낮음
    • 미국 세법도 이런 식으로 Markdown으로 덤프되어 있다면, 모두가 자신만의 TurboTax를 만들 수 있을 것 같음
      IRS 세법 링크 참고
  • 이런 프로젝트는 법률 데이터의 투명성을 높이는 훌륭한 방향임
    AI가 법을 이해하고 설명할 수 있도록 연결하는 기반이 될 수 있음
    다른 나라에서도 비슷한 시도가 생기길 바람

  • 커밋 작성자가 실제 개정에 책임 있는 정치인이라면 더 흥미로울 것 같음
    git blame으로 바로 누가 그 법을 만든 건지 알 수 있게 되는 셈임

    • 여기에 유닛 테스트 개념을 더하면 좋을 듯함
      허점을 테스트 케이스로 두고, 법이 바뀔 때마다 회귀 테스트를 돌려서 문제 없는지 확인하는 식임
  • 정말 멋진 아이디어라고 생각함. 이런 시스템이 모든 나라의 법률에 적용되면 좋겠음

    • 법률 업계는 이런 효율화가 자신들의 수익 구조를 위협한다는 걸 잘 알고 있음
      세금 신고를 어렵게 유지하려고 로비하는 사례처럼, 변호사 업계도 투명성과 효율화를 막으려 할 수 있음
      관련 기사 참고
    • 우리 비영리단체 Open Law Library는 정부와 직접 협력해 이런 시스템을 구축 중임
      메릴랜드 주가 regs.maryland.gov에서 이미 이를 도입했고,
      GitHub 저장소도 공개되어 있음
      각 지역 커뮤니티가 공식 법률을 GitHub에 게시하도록 돕고 있음
    • 영국식 법률 문서도 기본적으로 diff 기반으로 작성되므로, 기술 업계만의 비밀 기술은 아님
    • 완전히 동의함. 정말 훌륭한 작업임
  • 나도 캘리포니아 주 법안에 대해 비슷한 걸 구현 중임
    이런 접근이 표준 방식이 되어야 한다고 생각함. 왜 이런 문서의 진본이 git 저장소에 없을까 늘 궁금했음

    • 냉소적으로 보자면 정부는 국민이 법을 완전히 이해하길 원치 않을 수도 있음
      좀 더 관대한 해석이라면, 법률계에는 이런 기술을 이해하거나 구현할 사람이 거의 없기 때문일 수도 있음
  • 훌륭한 프로젝트임. 프랑코 시대 법 대부분은 1978년에 폐기되었지만, 여전히 19세기 이전 법률도 포함되어 있음
    다만 소스는 1960년부터 하나의 커밋으로 시작되어 그 이전 변경 이력은 없음
    BOE는 1600년대까지의 문서를 스캔해두었을 정도로 자료 보존 수준이 놀라움

  • Git의 한계는 “git blame”이 작동하지 않는다는 점임
    누가 찬성·반대했는지 알 수 있다면 좋겠지만, git은 협업 커밋 구조가 아님

    • 커밋 로그에 투표 결과나 메타데이터를 포함시키면 가능할 듯함
      어쨌든 나라 전체의 법을 git에 넣은 것만으로도 대단한 성취임
    • Git은 협업 커밋에 최적화되어 있진 않지만, “Co-Authored-By” 같은 커뮤니티 규약으로 보완 가능함
      이 방식은 리눅스 커널 개발에서 유래했음
    • 국회 전체를 메인 작성자로 두고, 각 정당과 투표 결과를 공동 작성자로 넣는 구조도 가능함
    • 사실 이런 정보는 이미 공개되어 있으니, LLM이 답을 줄 수도 있음. 굳이 nerd들이 git을 쓸 필요 없다는 농담도 있음
    • 여러 사람이 참여한 PR을 squash하면 공동 커밋으로 표시되어, 협업 흔적을 남길 수 있음
  • 작성자(OP) 임. 이렇게 큰 반응을 받을 줄 몰랐음
    요청이 많아서 코드를 공개했음 → GitHub: legalize-dev
    파이프라인은 다국가 지원 구조로 설계되어 있음. 프랑스(Légifrance 데이터)는 이미 작동 중이고,
    새 나라를 추가하려면 4개의 Python 인터페이스만 구현하면 됨
    기여 가이드도 작성했음
    독일, 포르투갈, 스웨덴, 핀란드, 네덜란드, 브라질 등에서 참여 의사를 받았음
    각국의 공개 법률 데이터 소스를 알고 있다면 PR로 도와주면 좋겠음
    규모가 커질수록 인프라가 필요해 Open Collective로 펀딩을 준비 중임
    실시간으로 법과 diff를 볼 수 있는 사이트도 있음
    아직은 불안정하지만, 큰 그림을 그리고 있음

  • 축하함! 정말 멋진 프로젝트임
    예전에 비슷한 시도로 gitlaw가 있었고, 브라질에는 법률의 변화를 기술적으로 표현하는 LexML 표준이 있음
    꽤 복잡하지만 흥미로운 접근임

    • “또 XML이군요”라며 농담을 던짐. 스페인도 한때 LexML에 참여했지만 지금은 다른 형식으로 전환한 듯함