데브허브 | DEVHUB | [10분 테코톡] 토바에의 Retrofit
- HttpUrlConnection은 스레드, 스트림, 버퍼, HTTP 응답 코드, 예외 처리, 타임아웃 등 개발자가 직접 관리해야 할 부분이 많아 개발 오버헤드가 크고 오류 발생 가능성이 높습니다. 🚧
- OkHttp는 백그라운드 스레드 및 스트림/버퍼 관리를 자동화하고, 명시적인 네트워크 연결 처리와 기본 타임아웃(10초)을 제공하여 HttpUrlConnection보다 개선된 통신 환경을 제공합니다. 🚀
- 하지만 OkHttp는 URL 변경 시 반복적인 보일러플레이트 코드 작성과 수동 데이터 변환이 여전히 필요하여 개발 효율성이 저하되는 한계가 있습니다. 📝
- Retrofit은 인터페이스를 통해 서버에서 받을 데이터, URL 구성, 요청 방식, 엔드포인트, 동적 경로 변수 등을 선언하여 코드의 구조화와 가독성을 크게 향상시킵니다. 🏗️
- Retrofit은 런타임에 인터페이스를 대신할 프록시 객체(구현체)를 동적으로 생성하여 실제 네트워크 통신을 추상화하고 처리합니다. 🤖
@GET과 같은 어노테이션을 활용하여 HTTP 요청 방식, URL, 파라미터 등의 정보를 선언하며, 첫 호출 시 리플렉션을 통해 이 정보를 파싱하고 이후에는 캐싱하여 성능을 최적화합니다. 🏷️
- 결과적으로 Retrofit은 반복적인 작업을 자동화하고 개발자의 실수를 방지하며, 변경 발생 시 유지보수를 용이하게 하여 전반적인 개발 생산성과 코드 품질을 높이는 강력한 도구입니다. ✨