TECH 으로 돌아가기
TECH HACKER NEWS 오늘 5분 읽기 42 READS

2003년산 SOAP API를 JSON으로 감싸고 MCP까지 붙인 이야기

20년 묵은 공공 API 앞에서 개발자가 한 일

스페인에는 '카타스트로(Catastro)'라는 국가 지적 정보 시스템이 있어요. 우리로 치면 부동산 등기부나 지적도 같은 거예요. 어떤 땅이 어디부터 어디까지고, 건물 면적이 얼마고, 필지 번호가 무엇인지 같은 공공 데이터를 담고 있죠. 그런데 이 데이터를 프로그램으로 가져오려면 무려 2003년에 만들어진 SOAP API를 써야 한다는 게 문제였어요. 그래서 한 개발자가 이걸 요즘 방식인 JSON으로 감싸고, 심지어 AI가 바로 쓸 수 있게 MCP까지 붙인 프로젝트(PredioHQ)를 만들었습니다.

SOAP가 왜 그렇게 불편할까

SOAP가 뭐냐면요, 서버끼리 데이터를 주고받는 아주 오래된 규약이에요. 요즘 우리가 흔히 쓰는 REST/JSON 방식은 {"area": 84.5}처럼 데이터가 깔끔하게 오잖아요? 그런데 SOAP는 XML이라는 형식을 쓰는데, 태그를 겹겹이 감싸서 <soap:Envelope><soap:Body>...</soap:Body></soap:Envelope> 이렇게 장황하게 와요. 요청을 보낼 때도 정해진 XML '봉투'를 정확히 만들어서 보내야 하고, WSDL이라는 별도의 명세 문서를 읽어서 규칙을 하나하나 맞춰야 하죠. 20년 전엔 이게 표준이었지만, 지금 개발자 입장에선 파싱하기도 디버깅하기도 번거로운 유산(legacy)이에요. 브라우저에서 fetch 한 줄로 못 부르니까요.

래퍼(wrapper)라는 우아한 해법

여기서 쓰인 방법이 바로 '래퍼'예요. 래퍼가 뭐냐면, 다루기 힘든 옛날 API를 그대로 두고 그 앞에 얇은 중간 서버를 하나 세우는 거예요. 이 중간 서버가 나 대신 스페인 정부의 SOAP 서버에 XML 봉투를 만들어 보내고, 돌아온 복잡한 XML을 깔끔한 JSON으로 바꿔서 나한테 돌려줘요. 나는 그냥 GET /parcel/{번호} 같은 익숙한 요청만 보내면 되는 거죠. 원본은 손 하나 안 대고, 사용 경험만 현대적으로 바꾸는 거예요. 이게 레거시 시스템을 다룰 때 정말 자주 쓰는 패턴이에요. 오래된 걸 통째로 갈아엎는 건 위험하고 비싸니까, 앞단에 통역사를 하나 세워두는 셈이죠.

MCP는 왜 붙였을까

한 걸음 더 나아가서 MCP(Model Context Protocol)까지 지원한다는 게 요즘 트렌드를 잘 보여줘요. MCP가 뭐냐면, AI 모델(챗봇 같은 거)이 외부 도구나 데이터에 표준화된 방식으로 접근하게 해주는 규약이에요. 이걸 붙여두면 "마드리드의 이 필지 면적이 얼마야?"라고 AI에게 물었을 때, AI가 알아서 이 래퍼를 호출해 실제 지적 데이터를 가져와 답할 수 있게 돼요. 즉 사람용 JSON API였던 걸 'AI용 도구'로도 개방한 거죠.

한국 개발자에게 주는 시사점

남 얘기 같지 않죠? 우리나라 공공데이터도 여전히 XML이나 옛날 방식 API가 수두룩해요. 공공데이터포털을 써본 분이라면 인코딩 깨지고 태그 파싱하느라 고생한 기억 있으실 거예요. 이럴 때 '원본을 못 바꾸면 앞에 래퍼를 세운다'는 접근은 실무에서 바로 써먹을 수 있는 무기예요. 여기에 MCP까지 얹으면, 내가 만든 사이드 프로젝트를 AI 에이전트가 활용하는 도구로 확장할 수 있고요. 레거시를 없애는 게 아니라 '감싸서 재활용'하는 감각, 꼭 익혀두면 좋습니다.

한 줄로 정리하면, 낡은 API를 버리지 않고 얇은 번역 계층으로 되살린 좋은 예시예요. 여러분이라면 회사의 어떤 레거시 API 앞에 래퍼를 세우고 싶으신가요?


🔗 출처: Hacker News

SOURCE · HACKER NEWS
원문 전체 보기 → https://prediohq.com/
SHARE
처리 중...