Giter Club home page Giter Club logo

map's Introduction

프로젝트 map

Deploy 링크

사용 라이브러리

  • react-naver-maps : 네이버 API 지도 React 버전
    • 생각 이상으로 커스텀이 불가능하여 다음부터는 절대로 사용하지 않을 예정
  • react-router-dom : 라우팅 구현
  • react-redux @reduxjs/toolkit : 상태관리 스토어, API 호출
  • styled-components : 컴포넌트 스타일 구현
  • styled-reset : 기본 적용된 css 초기화
  • react-minimal-pie-chart : 파이차트
  • react-toastify : 팝업 알림창
  • gh-pages : 페이지 배포

사용 API

라우팅

https://localhost:3000/property/:id (id는 19자)

  • default id
    • 1168010600110020000
  • 추가 id
    • 1168010600109960006
    • 1168010600109960015
    • 1168010600109460001

디렉토리 구조

components : 컴포넌트Home :  화면
   Home.jsMap : 지도Marker : 지도 표시자Window : 지도 알림창 (미사용)
   hooks
   Map.jsSidebar : 좌측 사이드 Search : 검색창BuildName : 건물 이름, 주소BuildInfo : 건물 정보
   hooks
   Sidebar.js
 Router.js : 라우터 테이블
 App.js

sericesaddress : 주소관련 Reducerspace : 공간정보 API

store.js : 리덕스 스토어
hooks : 공용 커스텀 
images : 이미지 파일
styles : css 스타일
index.js 

흐름

Case 1.리액트 앱 실행

  1. 기본 라우팅 정보에 해당하는 건물 정보 호출
  2. 응답 받은 정보는 Redux Store에 저장되고 Sidebar, MapMarker 컴포넌트에 Hook으로 전달됨
  3. 데이터 로딩 중에 Spinner 화면 출력
  4. 데이터 로드 완료 시
  • 사이드바 정보 출력
  • 마커에 주소, 가격 출력
  1. 응답 Error 발생 시 (실제로 백단에서 구현되어있지 않아서 프론트에서 처리해야함)
  • 사이드바 랜더링 제외
  • Map 화면만 출력

Case 2. URL 직접 입력

  1. id 파라미터 값에 해당하는 데이터 호출
  2. 이하 동문

Case 3. 검색창 검색

  1. 검색창에 입력한 값을 id값으로 사용하여 데이터 호출
  2. 이하 동문

map's People

Contributors

snowman95 avatar

Stargazers

Hyungoo Kim avatar

Watchers

 avatar

map's Issues

토지, 건물 데이터 호출

  • Redux Toolkit의 RTK Query 를 사용하여 구현
    • 데이터가 실시간으로 업데이트가 되거나 다양한 상태를 처리해야 하는 경우는 아니지만 스터디 목적임
    • 혹여나 제한 시간 안에 구현이 불가능할 것으로 예상된다면 thunk 로 구현예정
  • 라우터의 id params가 변경될 때 토지, 건물 데이터를 호출
    • /property/:id (id는 19자)
    • 이 id값이 API 호출 시 asset_pnu 값으로 QueryString 됨
  • 지도에 특정 좌표를 클릭했을 때, 검색 창에서 검색했을 때의 기능은 시간이 남는다면 구현할 것.

사이드 바 구현

  • 화면 좌측 사이드 바 구현
  • 현재 페이지의 id params 값에 해당되는 데이터 정보를 출력
  • react-responsive 를 사용하여 반응형 레이아웃 구성
    • width 768px 기준
  • 구현 후 시간적인 여유가 있다면 디폴트로 보여줄 내용도 작성 예정

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.