웹 브라우저 상에서 해당 검색을 하게 된다면 리스트 형태로 주변 검색결과가 뜨게 만들고 싶습니다
여기서 궁금한 점이 있습니다 클라이언트가 api를 사용하여 백엔드 단에게 던져줘야하는지
백엔드에서 api를 호출하여 dto 형태로 클라이언트에게 줘야하는지 설계의 고민점이 생깁니다
제가 고민 중인 두 가지 방식은 다음과 같습니다.
1. 클라이언트에서 JS API 직접 호출 (프론트엔드 책임)
카카오 Maps JS API의 services.Places() 라이브러리를 사용하여 클라이언트 단에서 직접 키워드 검색 결과를 받아와 화면에 렌더링. 백엔드 서버에 트래픽 부담이 없고, 응답 속도가 빠를것 같다는 고민점이 있습니다
2. 백엔드에서 REST API 호출 후 DTO 반환 (백엔드 책임)
API 키가 서버에 은닉되어 안전하고, 백엔드에서 데이터 통제권(정제, 캐싱, 내부 DB 조인)을 완전히 가질 수 있다고 생각합니다 (클라이언트에는 디바운싱 적용 예정)
카카오 서버로 향하는 모든 검색 트래픽을 우리 백엔드 서버가 온전히 감당해야 함. API 호출 쿼터(Quota) 관리 측면에서 불리할 수 있을것 같기도 합니다
[질문 사항]
위와 같은 ‘장소 검색 후 자체 DB 저장’ 서비스 플로우에서, 카카오 측은 일반적으로 어떤 아키텍처(클라이언트 호출 vs 백엔드 경유)를 더 권장하시나요?
만약 2번(백엔드 경유) 방식을 택할 경우, 실시간 검색(자동완성 느낌)으로 인해 발생하는 다량의 REST API 호출이 카카오 API 사용 정책이나 쿼터 제한에 위반되거나 불이익이 생길 여지가 있는지 궁금합니다.
답변해 주시면 아키텍처 설계에 큰 도움이 될 것 같습니다. 감사합니다.
