개발일지

개발일지 58일차

index.ys 2023. 5. 27. 22:44

멘토링 상담 내용 기록

첫번째 질문

- 유저로케이션, 푸박스 로케이션, 로스트로케이션 등 위도,경도만 담아서 새로운 테이블에서 위치 정보를 관리해야 하는지

답변

-  따로 저장해야 하는 이유가 없다면 각각의 테이블에 나눠서 위도,경도를 저장함 차후에 위도,경도만 같이 모아서 관리해아할 상황이 생기면 그때 합쳐서 관리

#데이터 정규화

두번째 질문

- 프론트 엔드에서 데이터를 받을때 Geolocation API로 위도 ,경도 전달 방식

{
location: [ { long: 37.1532 , lat: 126.5956 }, ]
}
or
{
latitude: 37.1532 , longitude : 126.5956
}
어떠한 형식으로 받아야 하는지?

답변

- 대부분 위도,경도를 저장할때 아래와 같은 방식으로 DB에 저장됨 그래서 아래 방식으로 저장

 { address: 경기도 안양시 동안구 000 , latitude: 36.158465, logitude: 127.5621}

 

- 아래와 같이 저장하면 location으로 데이터를 조회했을때 어떤게 위도,경도인지 구분하기 어렵고 뎁스도 하나 더 추가됨

location: [ { long: 37.1532 , lat: 126.5956 }, ]

 

세번째 질문

- 네비게이션 기능 구현을 위해 사용자의 실시간 위치를 socket.io를 사용하는 방법, 카카오 네비게이션 API에 자체적인 기능으로 구현 어떤방법으로 해야하는지

답변

- socket.io를 사용하여 실시간으로 데이터를 직접 받아오는 방법보다는 카카오 네비게이션 api를 사용해 프론트엔드에서 네비게이션 기능 구현

추가적인 키워드

  • 테이블 정규화
  • 오픈라우터 서비스
  • 오픈 api를 제외한 모든 api는 클라이언트가 직접 요청을 보내는게 아니라 서버를 거쳐 카카오 api서버에 접근해야함 => 클라이언트에서 바로 요청을 보내게 되면 브라우저에 담긴 사용자의 정보가 그대로 노출되기 때문에 보안적으로 쓰레기임
  • Redis의 활용법 (무궁무진) 추가 탐색