Notice
Recent Posts
Recent Comments
Link
«   2026/05   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
Tags
more
Archives
Today
Total
관리 메뉴

bonggyulim 님의 블로그

[성능 개선] API 호출 건수 감소를 통한 검색 기능 최적화 본문

Projects

[성능 개선] API 호출 건수 감소를 통한 검색 기능 최적화

bonggyulim 2026. 3. 10. 19:24

문제상황

YouTube API를 활용하여 검색 기능을 구현하였다.
초기 구현에서는 TextWatcher를 사용해 사용자가 글자를 입력할 때마다 검색 요청이 발생하도록 구현하였다.

binding.etSearch.addTextChangedListener { editable ->
    val query = editable.toString()
    if (query.isNotEmpty()) {
        viewModel.searchVideos(query)
    }
}

하지만 YouTube Data API의 search 엔드포인트는 요청 비용이 100 quota로 높은 편이다.

예를 들어 사용자가 다음과 같이 검색어를 입력하면

Android

실제로는 아래와 같은 요청이 발생한다.

A
An
And
Andr
Andro
Android

한 번의 검색 과정에서 여러 번의 API 호출이 발생하게 된다.

결과적으로

  • 불필요한 네트워크 요청 증가
  • API quota 빠른 소모

문제가 발생하였다.

해결 방법

검색 방식을 검색 버튼 또는 키보드 엔터 입력 시 요청하도록 변경하였다.

binding.etSearch.setOnEditorActionListener { v, actionId, event ->
    if (actionId == EditorInfo.IME_ACTION_SEARCH) {
        val query = binding.etSearch.text.toString()
        if (query.isNotEmpty()) {
            viewModel.searchVideos(query)
        }
        true
    } else false
}

결과

기존 구조 - 입력마다 API 호출

개선 구조 - 검색 실행 시 1회 API 호출

이를 통해

  • API 호출 횟수 감소
  • 불필요한 네트워크 요청 제거
  • API quota 절약

효과를 얻을 수 있었다.


정리

검색 기능 구현 시 단순히 동작 여부뿐 아니라
API 사용량과 네트워크 요청 횟수까지 고려한 설계가 필요하다.