From e8998a40982b84a4b392066e173b0e23439cbb90 Mon Sep 17 00:00:00 2001 From: gahusb Date: Thu, 9 Jul 2026 13:20:59 +0900 Subject: [PATCH] =?UTF-8?q?feat(realestate):=20=EB=A7=A4=EB=AC=BC=20?= =?UTF-8?q?=ED=8C=8C=EC=9D=B4=ED=94=84=EB=9D=BC=EC=9D=B8=20=EB=B2=95?= =?UTF-8?q?=EC=A0=95=EB=8F=99=EC=BD=94=EB=93=9C(LAWD=5FCD)=20=EB=A7=A4?= =?UTF-8?q?=ED=95=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- realestate-lab/app/lawd_codes.py | 24 ++++++++++++++++++++++++ realestate-lab/tests/test_lawd_codes.py | 6 ++++++ 2 files changed, 30 insertions(+) create mode 100644 realestate-lab/app/lawd_codes.py create mode 100644 realestate-lab/tests/test_lawd_codes.py diff --git a/realestate-lab/app/lawd_codes.py b/realestate-lab/app/lawd_codes.py new file mode 100644 index 0000000..532bda1 --- /dev/null +++ b/realestate-lab/app/lawd_codes.py @@ -0,0 +1,24 @@ +"""대상 동명 → 법정동코드(시군구 5자리, LAWD_CD). 국토부 실거래가 API 파라미터용. +동작구/관악구/영등포구 중심(스펙 초기 대상 동). 신규 동 추가 시 여기에. +출처: 행정표준코드관리시스템 시군구 코드.""" + +# 시군구(구) 단위 5자리 — 실거래가 API는 LAWD_CD=시군구코드를 받는다. +_DISTRICT_CODE = { + "동작구": "11590", + "관악구": "11620", + "영등포구": "11560", + "서초구": "11650", + "강남구": "11680", +} +# 동 → 소속 구 +_DONG_TO_DISTRICT = { + "신대방동": "동작구", "대방동": "동작구", "상도동": "동작구", "노량진동": "동작구", "사당동": "동작구", + "봉천동": "관악구", "신림동": "관악구", + "신길동": "영등포구", "대림동": "영등포구", "영등포동": "영등포구", +} + +LAWD_CODES = {dong: _DISTRICT_CODE[d] for dong, d in _DONG_TO_DISTRICT.items() if d in _DISTRICT_CODE} + + +def lawd_code(dong: str) -> str | None: + return LAWD_CODES.get((dong or "").strip()) diff --git a/realestate-lab/tests/test_lawd_codes.py b/realestate-lab/tests/test_lawd_codes.py new file mode 100644 index 0000000..5211cc6 --- /dev/null +++ b/realestate-lab/tests/test_lawd_codes.py @@ -0,0 +1,6 @@ +def test_lawd_code_maps_target_dongs(): + from app.lawd_codes import lawd_code + assert lawd_code("신대방동") == "11590" # 동작구 + assert lawd_code("봉천동") == "11620" # 관악구 + assert lawd_code("신길동") == "11560" # 영등포구 + assert lawd_code("없는동") is None