쪼렙 as! 풀스택

[개발후기] Valuetong.com 부동산 실거래 정보 서비스 본문

포트폴리오 & 개발후기

[개발후기] Valuetong.com 부동산 실거래 정보 서비스

코코앱 2020. 9. 5. 15:20

AWS - S3, ElasticBeanstalk, CloudFront, RDS

PHP - CodeIgniter,

React, Axios, Mobx, Material-UI, SASS, 

Hybrid APP - iOS (Swift) , Android (Kotlin)

참여율 100% - 역시 모두 혼자 다 만들었다. ㅋ

 

감정평가사 3분과 함께 만든 프로젝트.

 

의욕적으로 개발하셨지만, 감정평가사라는 직업이 굉장히 바쁜 직업인지라 관리를 안하신다. 그냥 죽은 프로젝트가 된 듯하다.

이 프로젝트를 하면서, 새로 알게 된것들이 정말 많다. 좌표계라던지, 지오메트리 타입과 SpartialIndex, 우리나라 주소체계, 개별공시지가 등등;

부동산에대한 전반적인 지식뿐 아니라, 맵과 관련된 개발이슈들을 정말 많이 공부하게 되었다.

 

 

 

밸류통 사용 예

0. React (Web) + Hybrid App

웹 + 모바일 웹 + 안드로이드 + 아이폰 앱을 모두 개발하기 원하셨다.

나 혼자 개발을 해야 했고, 개발 시간과 관리의 용이성을 위해, 반응형 웹을 만들고, 웹뷰로 패키징하여 하이브리드 앱으로 출시하기로 했다.

웹은 React 로 개발하였다.

 

1. 서비스의 목표

국가에서 제공하는 '부동산 실거래' 데이터를 활용하여, 지도에 보기좋게 표시하는것이다. 

사실, 토지/단독/상업 부동산 거래의 실거래 데이터에는 정확한 '지번주소'가 공개되어있지 않고, '어떤 지역의 어느정도 규모의 거래' 정도만 공개되어있는 것인데, 이것을 '감정평가사'분들의 특별한 노하우(?)로 지번주소를 매칭하여 특정하고 보여주는 것이 핵심이였다.

  실거래 이외에, 개별공시지가, 토지정보, 건축물대장등을 볼 수 있다.

 

2. 데이터 확보. 이 많은 데이터를 어떻게 할 것인가?

가장 먼저 할것은 우리나라의 모든 주소별로 토지 정보를 필요로 했다. 

개별공시지가 데이터 + 토지별 폴리곤 데이터 + 좌표 를 확보했다.

data.go.kr 공공데이터 포털에서 확보하였는데, 토지정보라는 것이 생각보다 실시간으로 업데이트가 필요한 경우가 많이 있었다. 그래서 관리자페이지에서 '토지특성' 과 '건물정보'를 공공데이터 포털을 통해 자동으로 업데이트 하는 기능을 만들어 주었다.

토지특성정보와 건물정보를 자동으로 최신데이터로 업데이트할 수 있게 만들어 두었다.

  '토지특성'과 '건물정보'는 필수로 모든 데이터를 확보해야만 했는데, '건축물대장' 등의 데이터는 고민이 많이 되었다. 실제로 얼마나 사용될것인가, 하는 활용도에 비해, 과도하게 많은 데이터를 확보해 두어야 하고, 주기적으로 업데이트 해야하는 관리를 해야 하기 때문이였다. 그래서 '건축물 대장'과 토지별 과거 '공시지가' 데이터는 사용자가 보려고 할 때, 실시간으로 공공데이터에서 불러와서 보여주는 방식을 선택하였다.

과거공시지가/건축물대장 등은 서버에 저장하지 않고, 공공데이터포털에서 실시간 로드한다

 

3. 부동산 실거래의 지번주소 매칭 구현.

  정부에서 공개하는 토지/ 단독다가구 / 상업업무의 실거래 정보는 정확한 지번주소가 없다. 그래서 특정한 조건으로 매칭하여 지번주소를 유추할 수 있는데, 관리자페이지에서 프로그래밍으로 자동으로 지번주소를 유추하여 매칭할 수 있는 기능을 만들어 주었다. '특정 조건'들을 모두 만족하면 가장 정확하게 유추가 되고, 몇가지 조건을 해제하고 조합하여, '정확도의 단계화'를 구현해 주었다. '특정 조건'은 민감한 내용으로 공개할 수 없다. 

자동으로 주소를 유추하는 기능을 구현해 주었으나, 이것 역시 한계가 있어, 주소 유추가 되지 않는 데이터들이 많이 남는다. 이때는 감정평가사의 내부 데이터를 이용해 수기로 입력하는 수밖에 없어, 유추가 되지 않은 데이터의 목록을 엑셀로 다운로드 받고, 수기로 주소PNU 를 입력하고 업로드할 수 있는 기능을 만들어 주었다. 여기서는 https://github.com/PHPOffice 를 사용하였다.

 

4. Kakao MAP 

카카오맵을 사용하였는데, 맵에 관련된 거의 모든 기능들을 다 가져다 활용했다.

로드뷰 처리, 커스텀마커-레이어, 각종 이벤트, 확대축소, 이동, 폴리곤 표시, 지오코더(addressSearch, coord2Address) 등, 모두 구현해야만 했다. 덕분에 맵 처리에 관해 공부를 정말 많이 하였다.

 

 

5. Hybrid App 

안드로이드와 아이폰 앱개발도 해야 했는데, 나는 원래 네이티브로만 개발을 해왔기 때문에, 단순 웹뷰를 쓰는거는 많이 해봤어도, 이렇게 웹뷰로만 이루어진 하이브리드 앱은 처음 해보았다. 네이티브 개발도 맨날 해왔는데, 하이브리드앱쯤이야, 뭐 어려울게 있겠어? 라고 생각했었는데, 생각보다 까다롭거나 생각해야할 일들이 발생했다. 그냥 모바일 웹브라우저에서는 자바스크립트가 잘 실행되는데, 웹뷰에서는 자바스크립트 실행이 마음대로 되지 않았다. Alert 같은 이벤트가 발생하면, 델리게이트나 리스너를 통해서 직접 구현해주어야 했고, 특히 카카오톡 로그인 같은 경우에, 모바일 웹브라우저에서는 자동으로 '카카오톡 앱'을 실행시켜서 로그인을 할 수 있는데, 웹뷰에서는 '카카오톡 앱'이 실행되지 않는다!! 카카오 개발자 포럼에서 봤더니, 웹뷰에서는 그냥 웹 카카오 로그인을 지원할 뿐, 카카오톡 모바일앱이 자동으로 실행되지는 않는단다. 이런사정을 사용자들이 알아줄리가 있나. 그래서 웹뷰에서 카카오톡 로그인을 누르면, '카카오톡 앱'을 실행시켜서 로그인을 할 수 있는 방법을 고민해야 했고, 웹뷰의 shouldOverrideUrlLoading 을 오버라이드해서 네이티브 앱을 띄워주는 방법으로 해결하게 되었다. 이와 관련된 자세한 내용은 'https://kokohapps.tistory.com/entry/안드로이드-하이브리드앱-웹뷰-WebView-에서-카카오톡-로그인-앱-사용하기' 에 자세히 작성해 두었다. 코드는 남기지 않았지만, 아이폰에서도 동일한 방법을 사용했다.

 

 

6. 그밖에

정말 많은 공부를 해야했다. 일단 좌표계에대해 공부를 해야만 했고, 공공데이터에서 얻어온 좌표를 올바로 사용하기 위해서는 좌표계를 변환해야만 했다. www.osgeo.kr/17 참고했고, github.com/proj4php/proj4php 이걸로 변환하였다. 또 데이터를 저장하기 위해 SpartialIndex 라던지, Geometry 타입이라던지, 이런것도 처음 써봤다;;;; 도통 이런걸 쓸일이 없었는데... 

 

결국, 앱 개발을 완료하고 나는 개발비용을 다 받았으나... 막상 이 프로젝트를 시작하신분들은, 본인의 주 업무들이 너무 바쁘셔서, 그냥 손 놓으셨다;;;; 내가 테스트삼아 넣었던 데이터 이외에 아무런 업데이트를 안하고 계신다. 이게 서비스란게, 개발만 하면 알아서 돌아가는것이 아니라, 계속해서 관리를 해주어야 한다는것을 입이 닳도록 말씀드렸건만, 이제는 아얘 잊고 계신거 같다. 

 

그래서 지금은 내가 테스트때 넣은 중랑구 일대에만 데이터가 있다;;;;

 

정말 많은 공부를 했던 프로젝트이고, 그만큼 재밌기도 했다.

 

 

 

 

접속주소

https://valuetong.com 

 

안드로이드 앱 다운로드

play.google.com/store/apps/details?id=com.valuetong.andapp.valuetong

 

밸류통 - 부동산 가치소통의 장! - Google Play 앱

밸류통 - 전국 토지, 건물, 빌딩, 아파트, 빌라 등 실거래 데이터 조회 및 분석을 통한 부동산 투자정보 길잡이 밸류통입니다. 문의사항은 valuetong@gmil.com

play.google.com

 

Comments