법령 뒤지는 시간이 아까워서 봇을 만들었다

·5Vibe Coding구현기

법령 뒤지는 시간이 아까워서 봇을 만들었다

ISMS-P 컨설팅을 하다 보면 법률을 뒤지는 시간이 꽤 된다. 개인정보보호법, 정보통신망법, 신용정보법, 각종 시행령과 고시까지. 국가법령정보센터 홈페이지를 열고, 조문을 찾고, PDF를 다운받고, 가이드라인은 또 다른 홈페이지에서 찾고. 프로젝트마다 이걸 반복하니까 어느 순간 이걸 왜 아직도 수동으로 하고 있지 싶었다.

마침 공지 모니터링봇은 이미 돌리고 있었다. 도커 + OpenClaw + 텔레그램봇 조합. 여기에 법령 API를 붙이고, 옵시디언까지 연결해서 컨설팅용 지식베이스를 만들었다. 하루 만에.

구조부터 정리하면

기존에 쓰고 있던 공지봇 인프라(OpenClaw 도커 컨테이너 + 텔레그램봇)는 그대로 두고, 새로운 컨테이너를 하나 더 만들었다. 역할이 다르니까 분리하는 게 맞다.

새 봇이 하는 일은 크게 세 가지다.

  • 국가법령정보센터 Open API로 법률·시행령·고시 원문을 가져와서 옵시디언에 마크다운으로 저장한다
  • 텔레그램에서 질문하면 옵시디언에 있는 자료를 기반으로 답변해준다
  • 텔레그램에서 옵시디언 노트를 수정하거나 새 주제를 업로드할 수 있다

공지봇이 "밖에서 새로운 소식을 가져오는 봇"이라면, 이건 "내가 가진 자료를 정리하고 활용하는 봇"이다.

법령 API 연동

국가법령정보센터 Open API를 신청했다. 승인까지 하루 정도 걸렸다. 신청 자체는 간단한데 기다리는 시간이 있으니 먼저 해두는 게 좋다.

API로 법률 전문을 가져오는 건 어렵지 않았다. 문제는 옵시디언에 마크다운으로 변환할 때였다. 법률, 시행령, 고시의 JSON 응답 구조가 미묘하게 다르다. 조문 번호 체계도 다르고, 별표나 서식이 붙어 있는 경우도 있다. 클로드한테 스크립트를 짜달라고 하면 법률 기준으로는 잘 돌아가는데, 시행령을 넣으면 깨지고, 고시를 넣으면 또 다른 식으로 깨진다.

결국 포맷별로 파싱 로직을 나눠서 여러 번 수정했다. 바이브코딩의 한계가 여기서 나온다. AI가 코드를 짜주긴 하는데, 엣지 케이스를 한 번에 다 잡아주진 못한다. "이거 왜 안 돼?"를 반복하면서 하나씩 잡아가는 과정이 필요하다.

옵시디언이 진짜 좋더라

원래 노션을 쓰고 있었는데, 이번에 옵시디언으로 갈아탔다. 법률 자료를 관리하는 용도로는 옵시디언이 압도적이다.

일단 로컬 마크다운 파일이라 속도가 빠르다. 노션은 온라인이라 가끔 느려지는데 옵시디언은 그런 게 없다. 법률 조문을 검색할 때 체감 차이가 크다.

그리고 노트 간 링크가 진짜 편하다. 개인정보보호법 제15조 노트에서 [[개인정보보호법 시행령 제17조]]를 걸면 바로 연결된다. 컨설팅할 때 "이 조항의 시행령은 뭐지?" 하고 찾는 시간이 사라진다. 법률 간 관계를 그래프로 보여주는 것도 좋다. 내가 어떤 법률을 많이 참조하는지, 어떤 조항끼리 연결되어 있는지가 시각적으로 보인다.

무엇보다 마크다운 기반이라 자동화와 궁합이 좋다. API로 가져온 데이터를 .md 파일로 저장하면 그게 바로 옵시디언 노트가 된다. 노션은 API가 있긴 하지만 이렇게 직접적이진 않다.

텔레그램 연동

텔레그램에서 할 수 있는 건 이 정도다.

옵시디언에 있는 내용을 기반으로 질문하면 답변을 준다. 예를 들어 "개인정보 수집 시 동의 예외사항 정리해줘"라고 보내면 옵시디언에 저장된 법률 내용에서 찾아서 정리해준다. 현장에서 급하게 조항 확인할 때 유용하다.

노트 수정이나 새 주제 업로드도 된다. 미팅 중에 메모해둘 내용이 있으면 텔레그램으로 보내면 옵시디언에 들어간다. 나중에 정리할 때 편하다.

삽질 기록

솔직히 법령 API 파싱 부분이 가장 오래 걸렸다. 전체 작업 시간의 절반 이상은 여기에 쓴 것 같다. 법률은 되는데 시행령이 안 되고, 시행령은 되는데 고시가 안 되는 루프를 한참 돌았다.

클로드한테 에러 로그를 보여주면서 "이거 고쳐줘"를 반복하는데, 한 가지를 고치면 다른 데가 깨지는 경우도 있었다. 결국 포맷별로 분기 처리를 명확히 하고, 테스트 케이스를 법률/시행령/고시 하나씩 정해두고 돌리면서 잡았다.

나머지 부분은 기존에 해본 거라 빨랐다. 도커 컨테이너 띄우기, 텔레그램봇 연결, 크론 설정은 공지봇 만들 때 다 해봤으니까. 한 번 해보면 두 번째는 빠르다. 이게 바이브코딩의 좋은 점이다.

지금 상태

법령 자동 수집 + 옵시디언 저장 + 텔레그램 질의응답까지 다 돌아가고 있다. 아직 모든 법률을 다 넣은 건 아니고, 컨설팅에서 자주 쓰는 것들 위주로 넣어두었다. 앞으로 프로젝트를 하면서 필요한 법령이 생길 때마다 추가하면 된다.

여러 홈페이지를 돌아다니면서 PDF 다운받던 시절이 엊그제 같은데, 이제 텔레그램에서 물어보면 답이 온다. 만드는 데 하루 걸렸고, 앞으로 아끼는 시간은 그보다 훨씬 많을 거다.

출처: https://www.law.go.kr/LSW/openApi/main.html (국가법령정보센터 Open API)