한 일

  • 기획 끝

    • 테스크 카드 수립
    • 기한, 일정 수립
  • 위치기반 서비스 공부

    • GeoJson
    • MongoDB Location Query
  • 스키마에 Area 추가
  • GraphQL Apollo Server 공부
  • Create-React-App template pwa

잘한점

  • 위치기반 서비스의 틀을 잡았다.
  • 테스크 카드 수립 완료했다

못한점

  • 아직 Apollo, GraphQL 서버에 대해 잘 모르기때문에 지금 수립한 백엔드 계획이 맞는지 모른다.
  • GraphQL 학습이 조금 부족하다.

회고

오늘 바코에 와서 알고리즘 문제를 풀고 밥먹었다.

그리고 와서 기획을 마감하고 위치기반 서비스를 어떻게 개발하면 좋을지 서칭도 해보고 이래저래 구상도 해보았다.

우선 Web API를 이용하면 내 현재 좌표를 구할 수 있는데, 이 좌표를 이용해서 내가 있는 지역이 어디인지 판단해야 했다.

내가 있는 지역은 지도 API를 이용하면 쉽게 구할 수 있었지만, 그러기엔 너무 딱 딱 정해진 행정구역으로만 사용자들에게 보여 줄 수 있어서 마음에 들지 않았다.

내가 자주 쓰는 앱인 Mango Plate는 이런식으로 나누지않고 커스터마이징 된 지역으로 구분해주는데, 어떻게 이게 가능했을지 생각을 해봤다.

경우의 수는 두가지였는데

  1. 행정구역을 받긴 하지만, 이름을 바꿨다.
  2. 커스터마이징된 지역을 사용한다.

기능으로 봐서나 결과로 봐서나 내가 생각했을 땐 2번이 맞아보였고 어떻게 이게 가능했을까 서칭을 하기 시작했다.

그러다 발견하게 된 것이 GeoJson이었고, MongoDB Query로 이 지역에 포함되어있는곳, 가까이 있는곳 등을 가져올 수 있는 쿼리가 있다는 것을 알게되었다.

그래서 생각한 것이 커스터마이징 된 GeoJson 데이터를 가지고 있는 DB Schema가 있고, 내 위치가 이 DB Schema Document 에서 포함된 곳을 가져오는 것이었는데 신빙성 있어보였고 나 또한 이렇게 구현하기로 하였다.

그래서 부랴부랴 Area Schema를 추가하였고 서울 전 구역에 대한 커스터마이징된 GeoJson Polygon형태를 구하기엔 빠듯할 것 같아서 우선 서울 강남으로 특정하고 진행하기로 결정하였다.

GeoJson Polygon을 만들어야되는데, 이곳저곳 서칭하다 파이썬으로 만들어진 GeoJson Polygon생성기를 발견하게되었고 이를 이용하기로 결정하였다. (테스트는 아직… 되겠지 뭐)

그러고 Apollo Server랑 Apollo Server Express랑 다르다는 것을 알게되었고,

새로 구축하는 상태에서는 Apollo Server를, 이미 Express로 구축된 서버에서 GraphQL을 사용하고 싶을때에는 Apollo Server Express를 사용하게 된다는 것을 알게되었다.

이 말인 즉슨, 나는 Express를 사용하지 않아도 된다는 말이고, 줄곧 Express로 서버구축을 해왔던 나에게는 어떻게 해야될지 걱정이 생기게 되었다.

그래도 어떻게든 되겠지… GraphQL 쓰기로 결정했는데 무조건 쓰고 무조건 되게 할 것이다.

PWA, GraphQL, Apollo, AR, ThreeJS 등등 처음 써보는 것들이 많은데, 걱정이 앞서긴 하지만…

진짜 무조건 계획한거는 다 구현할거다.

파이팅.