세종시, 제주도 선거구 위한 DB 설계

2025. 3. 27. 12:16국민북 서비스 이야기

우리 동네 페이지에서 검색을 통해 다른 동네 선출직 공무원들을 확인할 수 있는데요,
서울시부터 점차적으로 추가하고 있습니다.
이번 업데이트는 세종시와 제주도 추가 하였는데요, 생각보다 기존 선거구 구조와 달라서 시간이 걸렸던 것 같습니다.

 

서울시 경우, 시장. 시의원. 구청장. 구의원 이렇게 있습니다.

그래서 국민북 서비스에서 주소 체계는 간단하게 광역시도. 시군구. 읍면동 이렇게 3가지 운영하고 있습니다.

하지만, 모든 지자체가 행정구역이 모두 같지 않기에, 위 주소 체계를 일괄적으로 적용 하는데 문제가 있었습니다.

 

예를 들어, 세종특별자치시와 제주특별자치도는 시장과 시의원만 있습니다.
문제는 선거구 기준이 읍면동 보다 더 세부적인 통. 리 단위로 구분 된다는 점 입니다.

이것은 기존 방식에서 운영하던 읍면동 단위에서 추가 정보가 필요하게 되었고,

결국 통. 리 단위 해당 DB 컬럼을 추가하는 것이 불가피했습니다.

이제는 운영상에 DB 스키마 작업이나 수정하는데 익숙해서 큰 문제는 없었습니다만, 지속적인 모니터링은 필요해 보입니다.

 

또 다른 문제로 통 주소를 바로 얻을 수 있는 타 서비스나 API 가 없다는 점 입니다.

결론적으로 자체적으로 만들어야 했습니다.

다른 관점으로 사용자에게 통 주소 정보를 직접 입력을 받는 방법도 생각했지만,
제 생각엔 대부분 우리 국민들은 통 주소를 외우고 있지 않을 가능성이 높다는 판단 입니다.

행정복지센터 문의를 통해 다행히 국가법령센터 사이트에서 통 주소를 건물 또는 지번 매핑된 자료를 찾을 수 있었습니다.

이제, 행정 당국 또는 네이버, 다음 포털에서 제공하는 주소 API는 도로명/지번 주소를 이용해야 합니다.

 

1. 세종특별자치시 통 주소 분석

세종시에서 통 단위로 선거구를 구별하는 지역은, '도담동'과 '고운동' 입니다.

제7선거구 도담동 1-9통, 13∼19통, 22통, 25통
제8선거구 도담동 10∼12통, 20통, 21통, 23통, 24통, 어진동
제11선거구 고운동 1∼4통, 6통, 13통, 15∼18통, 21통, 23∼25통, 28∼30통, 34통
제12선거구 고운동 5통, 7∼12통, 14통, 19통, 20통, 22통, 26통, 27통, 31∼33통, 35통

 

 


처음에는 위 주소를 모두 데이터베이스 작업을 진행 하는 것을 생각 했었습니다.

하지만, 좀 더 효율적으로 데이터를 관리하고 싶었습니다.

시간을 두고 데이터를 계속 보다가,

아파트 동 정보 대신에 단지 정보로도 충분히 통 주소를 매핑이 가능하다고 판단 했습니다.

 

제7선거구 도담동 1~9단지, 11단지
제8선거구 도담동 10단지, 12~22단지, 그외 주택/상가 등
제11선거구 고운동 1~9단지, 11단지, 16~19단지, 라온프라이빗시티, 한신휴시티
제12선거구 고운동 9~10단지, 14~15단지, 그외 주택/상가 등

 

여기서 더 효율적으로 작업을 한다면,
DB 에는 도담동 제7선거구, 고운동 제11선거구 이렇게 2개만 데이터 적재하여,

나머지는 여집합 방식으로 설계 합니다.

 

아쉽지만, 이 단지 정보로 지금 이용하고 있는 주소 API 에서는 사용할 수 없습니다.

단지(건물) 응답 값이 선택적이고, 데이터 포맷이 일관적이지 않았습니다.

가령, "가재마을1단지 101동", "가재마을 2단지 201동" 처럼,
빈칸이 나와서 별도로 정제하는 코드가 필요했습니다.

 

2. 제주특별자치도 통 주소 분석

제주도는 '이도2동', '아라동',  '연동' 그리고 '노형동' 이상 4개가 있습니다만, 세종시 보다 좀 더 복잡합니다.
지역 특성상 주택이 많다 보니, 지번 주소로 통 주소와 매핑 되어 있었습니다.

 

각 선거구를 지도상에서 보면 흩어져 있는 것이 아니라 경계선을 기준으로 나뉘어져 있기 때문에,

지번 주소를 범위로 정리한다면 효율적으로 DB 작업이 가능합니다.

 

 

예를 들어, 이도2동 경우는

제주시 이도2동갑선거구 이도2동 1통~20통, 48통~55통, 57통~59통, 60통~61통
제주시 이도2동을선거구 이도2동 21통~47통, 56통, 62통

 

이도2동을선거구 기준으로 지번 주소를 범위를 요약 해봤습니다.

  • 1~3
  • 7
  • 10~13
  • 17-18
  • 21
  • 24-25
  • 27-30
  • 32
  • 34
  • 36
  • 40-43
  • 45
  • 47-50
  • 52
  • 55
  • 56-61
  • 72-73
  • 75-76
  • 78
  • 84
  • 96-99
  • 107
  • 110-112
  • 114
  • 116-119
  • 122
  • 127
  • 148
  • 150
  • 256-257
  • 260
  • 262
  • 264
  • 269-271
  • 273
  • 315-317
  • 321-322
  • 324-325
  • 663~664
  • 672-673
  • 690
  • 777 이도주공아파트
  • 888 이도주공아파트
  • 1000
  • 1008-1021
  • 1045-1051
  • 1060-1061
  • 1100
  • 1185-1189
  • 1765-1773
  • 1776
  • 1778-1781
  • 1909-1910
  • 1916
  • 1927-1928
  • 1941-1942
  • 1944-1949
  • 1950-1951
  • 1952-1966
  • 1972-1990
  • 1996
  • 1998
  • 2000-2006
  • 2007-2043
  • 도남동 46-54
  • 도남동 60-69
  • 도남동 70 수선화아파트
  • 도남동 72-90
  • 도남동 96-183
  • 도남동 567-568
  • 도남동 572-574
  • 도남동 576
  • 도남동 668-670
  • 도남동 676
  • 도남동 680
  • 도남동 684-689
  • 도남동 691
  • 도남동 693-696
  • 도남동 698
  • 도남동 703
  • 도남동 705
  • 도남동 713
  • 도남동 726
  • 도남동 730-735
  • 도남동 737-738
  • 도남동 740-743
  • 도남동 746-751
  • 도남동 755-751
  • 도남동 761
  • 도남동 763
  • 도남동 765
  • 도남동 767
  • 도남동 769
  • 도남동 771-773
  • 도남동 792-797
  • 도남동 800 대림아파트1차
  • 도남동 811 도남해모로리치힐 1단지
  • 도남동 825-826
  • 도남동 828
  • 도남동 832-835
  • 도남동 839-840
  • 도남동 844-845
  • 도남동 848
  • 도남동 902 대림아파트2차
  • 도남동 900-913
  • 도남동 918-923
  • 도남동 1018
  • 도남동 1022-1030
  • 도남동 1035
  • 도남동 1041-1042

 

참 많죠.

이 번지들을 모두 DB 넣는 방법도 있겠지만,
그래도 저는 불만 입니다.

조금 더 최적화 하고 싶고, 효율적인 데이터 관리를 하고 싶었습니다.

그 이야기는 다음 글에서 정리합니다.