Android에서 Retrofit 사용하기 두번째 포스팅 입니다.
이전 포스팅에서는 Retrofit을 프로젝트에 추가하고 간단히 사용해보이는 포스팅을 작성하였는데요.
Retrofit객체 설정
-> API 규격에 맞는 Interface 선언
-> Retrofit객체와 Interface를 이용한 클라이언트 객체 생성
이러한 일괄의 과정을 통해 결론적으로 얻게 되는 클라이언트 객체를 이용하여 실제 통신을 하게 된다는 것을 이전 포스팅에서 알아보았습니다.
하지만, 아쉽게도 하나의 Application에서는 한번의 통신만이 아닌 수많은 REST API 통신을 구성하여 실제 사용자와 인터렉션한다는 것을 알고 계실 겁니다.
그렇다면 만약 우리가 개발해야 될 App에 50번의 통신이 발생한다고 과정해보죠.
Interface는 단순히 method를 늘려가는 작업으로 해결 될 수 있을 것 같지만,
최악의 경우, 통신이 필요한 곳마다 위에 적혀 있는 일괄의 작업을 50번 하게 됩니다.
그렇다면 더 최악의 경우, Retrofit객체가 50번이나 생성될 수도 있다는 암묵적인 의미도 가지고 있을 수 있겠네요…
그렇다면 여기서 한번 더 시나리오를 추가해봅시다.
- 특정 상황에 의해 통신해야 될 API 서버의 URL이 바뀌어 버린다면?
- 서버 개발자와 기존엔 협의 되지 않았던 Header에 Token 정보를 API 요청 시, 전달해달라고 한다면?
지금 당장엔 두가지 밖에 떠오르지 않는군요.
여러분은 이러한 상황을 겪었을 경우, 문제를 해결하기 위해 어떻게 접근하실 건가요?
정말 일차원적인 생각으로는 하나의 Retrofit 객체를 잘 작동하게 변경하여 50번의 ctrl + c / v
를 통해 변경하는 방법이 있습니다.
하지만, 제가 생각하는 개발자란 종족은 언제나 게으르고 싶어하는 종족이라고 생각이 됩니다.
같은 작업을 여러번 하기 싫어하기 때문에, 시스템을 통해 자동화를 하기 시작한게 아닐까요?
이렇듯, 게으른 우리 개발자님들을 위해,
갑작스레 어떠한 변수가 생기더라도 조금 더 대응하기 쉽고, 조금 더 사용하기 쉽게 Retrofit을 관리할 수 있는 방법인 ServiceGenerator
클래스에 대해 포스팅을 해보려 합니다.