개발로 사고하기

국토교통부 아파트 실거래가 API 활용기

tues 2025. 9. 25. 18:38

https://www.data.go.kr/data/15126468/openapi.do#/API%20%EB%AA%A9%EB%A1%9D/getRTMSDataSvcAptTradeDev

 

 

API 기본 정보

  • Endpoint:
https://apis.data.go.kr/1613000/RTMSDataSvcAptTradeDev
  • Method: GET
  • 주요 Path:
/getRTMSDataSvcAptTradeDev
  • 필수 파라미터:
  • Name설명예시
    LAWD_CD 지역코드 (법정동 10자리 중 앞 5자리) 41117 (수원 영통구)
    DEAL_YMD 계약년월 (6자리, YYYYMM) 202509
    serviceKey 공공데이터포털 인증키 발급받은 키
    pageNo 페이지 번호 1
    numOfRows 페이지당 데이터 수 10

실제 Request 예시

GET https://apis.data.go.kr/1613000/RTMSDataSvcAptTradeDev/getRTMSDataSvcAptTradeDev
  ?serviceKey=발급받은키
  &LAWD_CD=41117
  &DEAL_YMD=202509
  &pageNo=1
  &numOfRows=10

Response 분석 (XML)

응답은 기본적으로 XML 형태:

<response>
  <header>
    <resultCode>000</resultCode>
    <resultMsg>OK</resultMsg>
  </header>
  <body>
    <items>
      <item>
        <aptNm>신나무실신안</aptNm>
        <dealAmount>36,000</dealAmount>
        <dealYear>2025</dealYear>
        <dealMonth>9</dealMonth>
        <dealDay>24</dealDay>
        <excluUseAr>59.965</excluUseAr>
        <floor>3</floor>
        <buildYear>1997</buildYear>
        <umdNm>영통동</umdNm>
      </item>
      ...
    </items>
    <totalCount>325</totalCount>
  </body>
</response>

데이터 해석

  • aptNm: 단지명 (신나무실신안)
  • dealAmount: 거래금액 (36,000 → 3억 6천만 원)
  • dealYear, dealMonth, dealDay: 계약일자
  • excluUseAr: 전용면적(m²)
  • floor: 층
  • buildYear: 건축년도
  • umdNm: 행정동 이름

내가 겪은 깨달음

  • 문서만 보면 쉬워 보이지만, 실제 호출 시 serviceKey 인코딩 문제XML 파싱 문제가 숨어있었다.
  • 특히 응답이 XML인데, 브라우저나 axios에서 바로 JSON으로 착각할 때 파싱 에러가 났다.
  • 정리하자면:
    • 공공데이터 API는 요청 파라미터가 정확해야 함
    • 응답 형식(XML/JSON)을 반드시 확인해야 함
    • serviceKey는 이중 인코딩 문제를 주의해야 함