제 Windows PC에서 실제로 나온 출력입니다. 끝에 √ Connected가 붙어 있으면 됩니다.
04 · Why MCP
MCP는 Claude에게 도구를 쥐여 줍니다
붙이지 않으면
법령 날짜를 기억에 의존해 말함
틀려도 모름
붙이면
조회
법령정보센터에서 직접
값
공포일 · 시행일
같은 도구
상반기 Claude 프로젝트에 붙였던 것
이번 차이
Claude Code에 붙임
Chapter 05 · spec.md
무엇을 만들지 한 장으로
목표, 넘으면 안 되는 것, 잘 만들었는지 볼 기준.
묻기→답하기→spec.md
05 · Prompt 1
첫 문장은 내 부서와 일로 바꿉니다
Output질문 다섯 개
나는 GH 보상부에서 토지보상 일을 해. 우리 분야 법령이 언제 바뀌었는지, 곧 바뀌는 게 뭔지 한눈에 보는 대시보드를 만들 거야. spec.md 한 장으로 써줘. 목표, 넘으면 안 되는 것, 잘 만들었는지 볼 기준 세 개. 궁금한 거 있으면 먼저 물어봐.
바꿀 곳첫 문장. 내 부서, 내 일
세 가지목표 · 넘으면 안 되는 것 · 기준 세 개
마지막 말"먼저 물어봐"가 있어야 바로 쓰지 않습니다
05 · 15 seconds later
15초 뒤, 바로 쓰지 않고 다섯 가지를 물었습니다
1. 범위: "토지보상법" 본법만인가요, 시행령·시행규칙, 관련 고시, 개별 특별법까지 포함하나요?
2. 데이터 소스: 국가법령정보센터 같은 공식 API에서 가져올 수 있는 상태인가요? (...)
3. "곧 바뀐다"의 기준: 입법예고 단계부터 잡을지, 공포됐지만 아직 시행 전인 것만 잡을지
4. 사용자: 본인 혼자 보는 용도인가요, 아니면 팀 공유용인가요?
5. 형태: 웹 페이지 하나로 충분한가요, 아니면 엑셀/문서로도 뽑아야 하나요?
05 · Prompt 2
평소 말로 짧게 답합니다
30초 뒤spec.md
1. 토지보상법이랑 시행령, 시행규칙, 공공주택 특별법까지.
2. 상반기에 쓴 korean-law MCP 연결돼 있어. 그걸로 찾아.
3. 공포됐는데 아직 시행 안 된 것까지만.
4. 팀원도 같이 봐.
5. 웹 페이지 하나. index.html 파일 하나로. 나중에 bun으로 팀원한테 보여 주고 netlify에도 올릴 거야.
이대로 spec.md 써줘.
꼭 넣을 것"파일 하나로". 9·10장에서 공유할 때 편합니다
번호질문 번호에 맞춰 한 줄씩
05 · spec.md
시키지 않은 줄이 하나 들어갔습니다
- **날조 금지**: 개정 내용·시행일 등을 추측이나 요약으로 지어내지 않는다.
MCP가 반환한 공식 데이터(공포일, 시행일, 개정 이유 등) 그대로 표기하고,
없는 정보는 "미상"으로 남긴다.
어디spec.md "넘으면 안 되는 것"
누가법령을 다루는 일이라고 하니 Claude가 스스로
8장이 한 줄이 제 역할을 합니다
05 · Check
spec.md를 열어 두 가지를 봅니다
법령 목록이 내가 말한 것과 같은가클릭하면 체크
내가 말하지 않았는데 들어간 것이 맞는가틀리면 한 마디로 고침
05 · Why spec.md
spec.md를 먼저 쓰는 이유
"대시보드 만들어줘"만 하면 Claude가 빈 곳을 스스로 채웁니다
01법령 몇 개, 입법예고까지 볼지, 모르는 날짜는 어떻게 할지
02그 결정은 대화창에만 남았다가 사라짐
03spec.md에 적으면 내가 보고 고치고, 내일도 같은 기준
상반기 대시보드 반의 Plan 모드와 같은 일인데, 이번에는 계획을 파일로 남깁니다.
Chapter 06 · tasks.json
만드는 순서표 tasks.json
내가 확인하는 단계를 꼭 넣습니다. 거기서 Claude가 멈춥니다.
06 · Prompt 3
순서를 나누되, 아직 만들지는 말라고 합니다
45초 뒤단계 9개
spec.md 보고 만드는 순서를 tasks.json으로 나눠줘. 칸 뜻은 task.json에 적어줘. 화면 다 만든 다음 내가 확인하는 단계는 담당을 나로 해줘. 아직 만들지는 말고.
Bun 1.4.2 was installed successfully!
The binary is located at C:\Users\smile\.bun\bin\bun.exe
To get started, restart your terminal/editor, then type "bun"
안내대로 PowerShell을 닫았다 다시 엽니다. 제 Windows PC에서 나온 그대로입니다.
09 · Run
폴더로 가서 켭니다
cd law-board
bun index.html --host=0.0.0.0
Bun v1.4.2 dev server ready in 5.53 ms
url: http://0.0.0.0:3000/
이 창은 닫지 않고 둡니다.
09 · Address
내 PC 주소를 찾아 옆 사람에게 알려 줍니다
01
창 하나 더 열고 ipconfig
02
"이더넷 어댑터" 아래 IPv4 주소
03
http://<내 PC 주소>:3000
04
다 봤으면 Ctrl + C
끄면 팀원도 못 들어옵니다. 사내 보안 규정상 막혀 있으면 제 PC로 보여 드립니다.
09 · Firewall
방화벽 창에서 "액세스 허용"을 눌러야 합니다
내 PC에서
localhost:3000
열림
허용을 누르지 않아도 내 PC 안에서는 보임
다른 PC에서
내 PC 주소:3000
응답 없음
제 Windows PC에서 허용을 누르지 않은 채 접속해 본 결과
09 · Why Bun
Bun은 내 PC를 잠깐 웹 서버로 만듭니다
더블클릭한 index.html은 내 PC에서만 보입니다. Bun으로 켜 두는 동안 같은 사내망 팀원이 주소로 들어옵니다. 설치가 한 줄이고 따로 설정할 것이 없어서 골랐습니다.
"새 파일을 만드시겠습니까?"에 "예". 칸 이름은 .env.example에 적힌 것과 같게.
11 · Run
서버를 켭니다
bun server.js
제 폴더에서는 여기서 문제가 두 가지 나왔습니다.
11 · Problem
주소 뒤에 /.env를 치면 키 파일이 그대로 열렸습니다
http://localhost:8787/.env · 같은 사내망 누구나 내 키를 가져갈 수 있었다는 뜻입니다. 질문 칸은 문장을 못 알아듣고 낱말만 찾았습니다.
11 · Prompt 9
본 그대로, 두 개를 고쳐 달라고 합니다
두 개 고쳐줘. 질문 칸이 낱말만 찾아서 문장으로 물으면 못 찾아. Claude API로 조문 찾아서 답하게 바꿔줘. 키는 ANTHROPIC_API_KEY로 .env에 넣을게. 그리고 주소 뒤에 /.env 치면 키가 그대로 보여. 화면 파일 말고는 안 열리게 막아줘.
하나문장으로 물어도 알아듣게
둘화면 파일만 내보내게. 고친 뒤 /.env는 열리지 않음
11 · Prompt 10
안 되면 또 본 그대로 말합니다
3분 뒤원인 찾음
.env에 키 두 개 넣었어. "잔여지 매수청구는 언제까지 할 수 있어?" 물어봤는데 "관련 조문을 찾지 못했습니다"만 나와. 토지보상법 제74조에 있는 내용이야. 직접 돌려 보고 고쳐줘.
원인: 법제처가 조문 본문을 항·호·목으로 나눠 주는데 제목 줄만 읽고 있었습니다.
11 · Answer
Windows PC에서 7초 만에 돌아온 답
질문잔여지 매수청구 기한
{
"matches": [{
"law": "토지보상법",
"article": "제74조(잔여지 등의 매수 및 수용 청구)",
"quote": "이 경우 수용의 청구는 매수에 관한 협의가 성립되지 아니한 경우에만 할 수 있으며, 사업완료일까지 하여야 한다."
}],
"answer": "잔여지 매수청구는 별도의 기한 제한 없이 사업시행자와 협의를 통해 청구할 수 있으나, 협의가 성립되지 않아 관할 토지수용위원회에 수용을 청구하는 경우에는 사업완료일까지 하여야 합니다."
}
answer답
quote인용한 문장이 원문에 정말 있는지 서버가 한 번 더 대조하고 남긴 것
11 · Check
서버를 켠 채로 /.env를 쳐 봅니다
브라우저 주소 뒤에 /.env를 친다클릭하면 체크
키가 보이면 Prompt 9를 그대로 친다안 열리면 통과
잔여지 질문에 조문 인용과 함께 답이 오는가7초 안팎
11 · Why .env
키는 .env에, 부르는 것은 서버가
.env
키 두 개는 여기에만
→
server.js
키로 Claude와 법제처를 부름
index.html
답만 받아서 보여 줌
화면 파일만
서버가 내보내는 것은 이것뿐
→
답조문
2장의 ADR-0003과 같은 이야기입니다. Claude가 만든 서버는 "화면 파일만 내보내는가"를 꼭 확인합니다.