Code Monkey home page Code Monkey logo

real-estate-invest's Introduction

부동산 실거래가 비교 시스템

프로젝트 개요

  • 주제 : [프롭테크] 부동산 매매가 비교 서비스
  • 서비스 이름 : 부비 (부동산 비교)
  • 팀 이름 : 칸쵸 (멘티들 간 연결 고리인 멘토님 Karn 닉네임을 따서 “칸의 조”를 뜻함.)

목표 사용자 분석 및 이해

  • 대상 : 부동산 실소유자 및 투자자
  • 연령층 : 30 ~ 60대 statistics 2021.01 ~ 2021.08 아파트매입자 나이 통계

기본 기능

비즈니스 핵심 기능

  • 특정 비교군 간 아파트 가격 비교 (차트투자)
  • 최근 12개월, 6개월, 3개월 가장 많이 오른 아파트 (퀀트투자)

대용량 트래픽 처리 등 기술 사용하기 위한 기능

  • 청약안내
    • SH 공사, LH 공사 등 진행 중인 청약 정보과 신청 링크를 제공
  • 실시간 조회 BEST 부동산 순위 ex) 네이버 실검

※ 멀티 프로세스, 멀티 스레드 환경에서 단순 조회가 아닌 DB 입력-수정 등의 트랜잭션 처리를 무결하게 다뤄볼 수 있는 기능 생각해보기

프로젝트 방향성

1. 안드로이드 앱으로 출시까지 하는 것을 목표로함

  • 단, 멘토링 기간에는 백엔드에서 경험하고 해볼수 있는 것들을 많이 배우기 위해 API 서버 구축을 최우선으로 함
  • API 서버 구축이 충분히 완료되었다고 판단된다면 안드로이드 앱으로 프론트 개발 (멘토링이 끝나더라도 멘티들은 계속해서 개발을 해보기로 함)

2. 데이터는 작은 범위로 한정하여 우선 개발함

  • 아파트 거래 내역 범위 우선순위
    1. 아파트 매매 실거래(1순위)
    2. 아파트 분양권 전매 실거래(2순위)
    3. 아파트 전월세 실거래(3순위)

코드 컨벤션

브랜치 관리 전략

  • Git Flow

서비스 설계

1. 주요 기능의 Task Flow 정의

 (참고 자료: https://brunch.co.kr/@tirrilee/7)

task-flow2

2. 정의한 Task Flow를 바탕으로 주요 API 추출

  • 필수 기능
    • 회원가입
    • 로그인
    • 특정 아파트 연도별 실거래가 조회
    • 아파트 비교 그룹 추가/수정/삭제
    • 아파트 비교 그룹 연도별 실거래가 비교 조회
    • 최근 가장 많이 오른 아파트 조회 (순위 대로 N개)
  • 선택 기능
    • 청약 조회
    • 실시간 사용자 조회 BEST 부동산 순위 조회 (순위 대로 N개)

사용 기술

  • ubuntu 18.04 LTS
  • MySQL
  • Spring
  • Naver Cloud
  • Java 11

real-estate-invest's People

Contributors

jerry92k avatar karnflab avatar shimseoungchul avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

real-estate-invest's Issues

전체 아파트 및 아파트 가격 정보 일괄 저장

이슈 내용

  • 20xx년 ~ 현재까지 모든 아파트 정보와 아파트 가격 정보 저장

진행 상황

  1. apartment 테이블, apartment_price 테이블 비우기
  2. #11에서 만든 기능을 통해 과거 부터 현재까지 모든 날짜의 데이터를 가져오기
  3. 가져온 데이터를 아파트 정보와 아파트 가격 정보로 분리
  4. 아파트 정보를 apartment 테이블에 입력
  5. 아파트 가격 정보를 apartment_price 테이블에 입력

체크리스트

  • 통합테스트 및 단위테스트 수행

패키지 간 중복 코드 정리

comparingprices - utils 간 중복된 코드 정리

개선 방향 : utils 패키지가 comparingprices에 의존하도록 리팩터링

1단계 : utils 패키지 내 comparingprices와 중복되는 코드를 제거하고 comparingprices를 직접 참조하도록 변경

2단계 : gradle 모듈 분리를 적용

  • comparingprices와 utils를 모듈 단위 레벨로 변경
  • gradle 멀티모듈을 적용하여 utils 모듈에서 realestate 모듈에 의존하도록 개선

[gradle 모듈 분리 참고자료]

로그인

이슈 내용

  • 로그인 기능 구현

진행 상황

  1. HttpSession 사용
  2. Spring Security 사용으로 변경
  3. Session 정보를 메모리에서 관리에서 DB 관리로 변경
  4. 예외처리

체크리스트

  • ✅ HttpSession 사용
  • ✅ 세션의 경우 메모리를 이용하여 태그로 남기고, DB 연동
  • ✅ 통합테스트 및 단위테스트 수행

아파트 가격 정보 자동 갱신 배치 개발

이슈 내용

  • 아파트 가격 정보 자동 갱신 배치 개발

진행 상황

  1. 당일에 해당하는 월의 아파트 가격 정보 조회
  2. 데이터 파싱
  3. 중복 데이터 제거
  4. 데이터 저장
  5. 급상승 아파트 정보 갱신
  6. 위 로직이 하루 한 번 반복

체크리스트

공공데이터 API 사용하여 월별 아파트 가격 정보 파싱

이슈 내용

  • 아파트매매 실거래 상세 자료 api 요청 (XML)
  • 가져온 XML 데이터를 파싱하여 객체에 매핑 (ApartmentDetailDto)
  • 아파트 가격 정보 업데이트할 때마다 갱신하기

진행 상황

  1. 파싱할 데이터 정하기
  • '일련번호'가 유니크키를 나타내는지 확인
  1. 아파트 가격 정보 업데이트 주기 확인
  2. 서울시 지역 코드 확인
  3. 아파트 정보 및 가격 정보 파싱 및 반환

체크리스트

급상승 부동산 조회 기능

이슈 내용

  • 급상승 부동산 조회 기능 개발

진행 상황

    1. 아파트 정보를 저장하는 apartment 테이블 생성
    1. 급상승 아파트 정보를 저장하는 soaring_aprtment_price 테이블 생성
    1. 전 년도 대비 금액이 많이 상승한 부동산 조희 기능 개발
    1. 전 년도 대비 가격 상승률이 높은 부동산 조희 기능 개발
    1. 테스트

체크리스트

  • ✅ 금액은 만 원 단위로 설정
  • ✅ 통합테스트 및 단위테스트 수행

회원가입

이슈 내용

  • 회원가입 기능 구현

진행 상황

    1. 고객 데이터 스펙 정의 DB 테이블 설계
    1. 회원 가입 기능 구현
    1. 가입 확인 기능 구현
    1. 테스트

체크리스트

  • [] 아이디 체크 정규식 결정
  • [] 비밀번호 체크 정규식 결정
  • [] 통합테스트 및 단위테스트 수행

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.