Legalize KR

대한민국 법령을 Git 저장소로 관리하는 오픈소스 프로젝트입니다. 모든 법령은 Markdown 파일이고, 모든 개정은 실제 공포일자를 가진 Git 커밋입니다.

왜 법령을 Git으로?

법령은 끊임없이 개정됩니다. 하지만 기존의 법령 열람 방식으로는 무엇이 언제 어떻게 바뀌었는지 파악하기가 쉽지 않습니다.

Git은 코드의 변경 이력을 관리하기 위해 만들어진 도구입니다. 법령도 텍스트입니다. Git의 버전 관리 능력을 법령에 적용하면:

데이터 출처

모든 법령 데이터는 국가법령정보센터 OpenAPI에서 가져옵니다. 법령 원문은 대한민국 정부의 공공저작물로 자유롭게 이용할 수 있습니다.

현재 법률, 대통령령, 부령, 대법원규칙, 헌법재판소규칙 등 의 현행 법령이 수록되어 있으며, 의 개정 이력이 Git 커밋으로 관리되고 있습니다.

파일 구조

각 법령은 YAML 프론트매터가 포함된 Markdown 파일입니다. 관련 법령(법률, 시행령, 시행규칙)이 하나의 디렉토리에 함께 관리됩니다.

예시: kr/민법/법률.md

---
제목: 민법
법령MST: 284415
법령구분: 법률
소관부처:
  - 법무부
공포일자: 2026-03-17
시행일자: 2026-09-18
상태: 시행
출처: https://www.law.go.kr/법령/민법
---

# 민법

## 제1조 (법원)
민사에 관하여 법률에 규정이 없으면 관습법에 의하고
관습법이 없으면 조리에 의한다.
...

디렉토리 구조

법령명에서 띄어쓰기를 제거하여 디렉토리명으로 사용합니다. 이는 법령 홈페이지의 URL 규칙과 동일합니다.

예: kr/민법/ 디렉토리에 법률.md, 시행령.md가 함께 존재합니다.

Git으로 법령 활용하기

터미널에서 바로 사용

# 민법 관련 법령 (법률, 시행령) 개정 이력
git log -- kr/민법/

# 최근 개정에서 무엇이 바뀌었는지 확인
git diff HEAD~1 -- kr/민법/법률.md

# 전체 법령에서 특정 단어 검색
grep -r "개인정보" kr/

# 특정 날짜 시점의 법령 상태 확인
git log --before="2025-01-01" -1 -- kr/민법/법률.md

# 법률 개정 커밋만 보기
git log --grep="^법률:"

# 인프라 커밋만 보기
git log --grep="^chore:"

커밋 메시지

법령 커밋은 공포일자를 Git author/committer date로 사용하며, law.go.kr 참조 URL과 메타데이터를 포함합니다:

예시: 법률 개정 커밋

법률: 민법 (일부개정)

법령 전문: https://www.law.go.kr/법령/민법
제개정문: https://www.law.go.kr/법령/제개정문/민법/(12345,20260317)
신구법비교: https://www.law.go.kr/법령/신구법비교/민법

공포일자: 2026-03-17 | 공포번호: 12345
소관부처: 법무부
법령분야: 민사
법령MST: 284415

인프라 커밋은 일반 날짜와 Conventional Commits 형식을 사용합니다.

알려진 제한 사항

Git은 Unix Epoch(1970-01-01) 이전 날짜를 지원하지 않습니다. 이에 해당하는 5건의 법령(공포일자 1950~1969년)은 커밋 날짜가 1970-01-01로 고정되어 있습니다. 실제 공포일자는 각 파일의 YAML frontmatter 공포일자 필드에 정확히 기록되어 있습니다.

기술 스택

영감

이 프로젝트는 legalize에서 영감을 받았습니다. legalize는 스페인 법령 8,600건 이상을 Git으로 관리하는 프로젝트입니다.

라이선스

법령 원문: 대한민국 정부 공공저작물 (자유 이용 가능)
저장소 구조 및 도구: MIT License

기여하기

법령 텍스트에 오류를 발견했거나, 누락된 개정 사항이 있다면 GitHub Issues에서 알려주세요. 법령명, 조항, 공식 출처를 함께 기재해 주시면 감사하겠습니다.