Claude AI로 10분 만에 만든 도로명주소 → 행정동 변환기

Claude AI로 10분 만에 만든 도로명주소 → 행정동 변환기
완성된 행정동 변환기

Claude AI 행정동 변환기를 만들게 된 건, 엑셀 파일 하나 때문이었습니다. 회원 명단 DB에 도로명주소는 있는데 행정동 구분이 없었습니다. “001동 소속 회원만 뽑아주세요”라는 요청에 수백 건의 주소를 하나하나 찾아 분류할 수는 없는 노릇이었습니다. Excel 함수로 시도해봤지만, 도로명주소에는 ‘동’ 정보가 아예 없어서 한계가 분명했습니다. 이를 빠르게 해결하기 위해 시놀로지 NAS와 AI를 조합하여 자동화 작업을 시작했습니다.

🤔 왜 Claude AI를 선택했는가

직접 코딩을 하자니 API 연동, 엑셀 파싱, 화면 구성까지 신경 쓸 게 너무 많았습니다. 그래서 Claude에게 요구사항을 설명하고 코드를 만들어달라고 했습니다. “엑셀에 도로명주소가 있는데, 이걸 행정동으로 변환해서 다시 엑셀로 내려받는 HTML 페이지를 만들어줘.” 이 한 문장으로 시작했습니다.

Claude는 몇 초 만에 작동하는 코드를 만들어줬습니다. 하지만 바로 쓸 수 있었냐고요? 그건 아니었습니다.

🔧 제작 과정 — 만들고, 수정하고, 다시 만들고

Claude가 처음 만들어준 코드는 카카오 JavaScript API 키를 사용하는 버전이었습니다. 로컬 PC에서 HTML 파일을 열었더니 바로 403 오류가 떴습니다. 카카오 JavaScript 키는 미리 등록한 도메인에서만 작동하기 때문입니다. 내 PC에서 더블클릭으로 연 파일은 도메인이 없으니 당연히 차단됩니다.

Claude에게 상황을 설명하니, REST API 키로 바꿔주었습니다. REST API 키는 도메인 제한 없이 어디서든 동작합니다. 첫 번째 문제는 비교적 쉽게 해결했습니다.

자동화 동작 원리

🐛 핵심 트러블슈팅 3가지

1. 모든 주소가 “양재동”으로 나오는 미스터리

두 번째 시도에서는 행정안전부 도로명주소 API를 사용했습니다. 인천 주소를 넣었는데 결과가 전부 “양재동”으로 나왔습니다. 황당했습니다.

원인을 분석해보니, 행안부 API가 돌려주는 admCd 필드는 법정동 코드일 뿐 행정동 이름 텍스트를 주지 않았습니다. Claude가 지번주소에서 정규식으로 ‘동’을 파싱하는 로직을 넣었는데, 이게 엉뚱한 단어를 잡아버린 것입니다. 비유하자면, 주소에서 “동”이 들어간 아무 글자나 집어오는 그물 같은 상태였습니다.

결국 행안부 API를 버리고 카카오 API 2단계 방식으로 완전히 교체했습니다. 도로명주소 → 좌표(위경도) 변환 후, 그 좌표로 행정동을 조회하는 방식입니다. 주소를 좌표로 바꾸고, 그 좌표가 어느 행정동에 속하는지 역으로 찾는 것입니다.

자동화 처리 과정

2. 카카오 JavaScript 키 vs REST API 키

카카오에서는 개발자를 위한 다양한 API를 제공하고 있습니다.
https://developers.kakao.com/

카카오 API에는 두 종류 키가 있습니다.

  • JavaScript 키: 등록된 도메인에서만 동작합니다. 보안은 좋지만 로컬 파일에서는 403 오류가 납니다.
  • REST API 키: 도메인 제한 없이 어디서든 동작합니다. 대신 키가 노출되면 누구나 사용할 수 있으므로 관리가 필요합니다.
카카오 API 키

로컬 HTML 파일이나 사내 NAS에서 쓸 용도라면 REST API 키가 적합합니다.

3. API 키 보안 — HTML에 키를 직접 넣으면 안 되는 이유

REST API 키를 HTML 파일 안에 직접 적어놓으면, 브라우저에서 “소스 보기”만 하면 누구나 키를 볼 수 있습니다. 무료 API라도 호출 횟수 제한이 있어서, 키가 유출되면 다른 사람이 내 할당량을 소진할 수 있습니다.

처음에는 시놀로지 NAS의 /web/secret/ 폴더에 config.json 파일로 분리하려 했습니다. 하지만 Web Station이 해당 경로를 서비스하지 않아서 404 오류가 발생했습니다.

최종 해결책은 같은 폴더에 숨김 파일명(.sys_cfg_k.json)으로 저장하고, JavaScript에서 fetch()로 런타임에 불러오는 방식이었습니다. HTML 소스에는 키가 보이지 않고, 파일명도 일반적인 설정 파일처럼 보여서 눈에 띄지 않습니다. (물론 완벽한 보안 처리를 위한 방법은 아닙니다만 빠른 결과물 공유를 위해 최소한의 보안 조치를 하였습니다.)

✅ 최종 결과물

완성된 도구는 이렇게 동작합니다.

  1. 도로명주소가 포함된 엑셀 파일을 업로드합니다
  2. 카카오 API가 각 주소를 좌표로 변환합니다
  3. 좌표를 기반으로 행정동을 조회합니다
  4. 행정동이 추가된 엑셀 파일을 다운로드합니다

파일 하나(index.html)로 구성되어 있고, 시놀로지 NAS Web Station에 올려서 사내에서 누구나 접속해서 쓸 수 있도록 배포했습니다. 수백 건의 주소를 몇 분 안에 처리할 수 있게 되었습니다.

📌 이런 분들은 문의 주세요

  • 엑셀에 주소 데이터가 많은데 행정동 데이터 분류가 필요한 실무자
  • 반복 업무를 자동화하고 싶은 분
  • 시놀로지 NAS에 사내 전용 웹 도구를 배포하려는 분

도로명주소 행정동 변환기 링크가 필요하시면 문의주세요. 무료로 공유해드립니다.
비슷한 업무 자동화가 의뢰가 필요하시다면 상담 문의를 남겨주세요. 자동화 구축을 도와드립니다.

NAS 구매·설치·세팅, 전문가에게 맡기세요
모델 선정부터 초기 세팅, 외부 접속, 백업 구성까지 원스톱으로 도와드립니다.

코멘트

2의 “Claude AI로 10분 만에 만든 도로명주소 → 행정동 변환기”에 대한 답변

  1. 고탱 아바타
    고탱

    와 제가 요청드린게 여기 올라왔네요!
    회원 관리하는데 행정동이 구체적으로 필요한 상황이었어요.
    덕분에 하루종일 해야 완성되는 일을 아주 쉽게 끝냈습니다.
    감사합니다~

    1. 관리자 아바타

      도움이 되서 다행입니다. 덕분에 저도 많이 배웠습니다. 감사합니다!