(Android/안드로이드) Retrofit2 & OkHttp 이해하기 + 네트워크 프로토콜 기본 개념 정리

✨ 개요

Android에서 네트워크 통신을 구현할 때 가장 많이 사용되는 조합은 Retrofit2 + OkHttp이다. Retrofit2는 “API 인터페이스 작성 + 응답 파싱 자동화”에 특화된 HTTP 클라이언트이고, OkHttp는 네트워크 레이어를 담당하는 고성능 HTTP 엔진이다.

이 포스팅에서는 Android 개발자가 반드시 알아야 할 Retrofit2, OkHttp, 그리고 HTTP·TCP·TLS 같은 네트워크 프로토콜 개념까지 한 번에 정리한다.


1. 요약


2. Retrofit2란 무엇인가?

Retrofit2는 Square에서 만든 타입 안전(type-safe) REST 클라이언트이다. 가장 큰 장점은 “인터페이스만 작성하면 요청/응답이 완성된다”는 점이다.

✔ 주요 특징 1) 인터페이스 기반 API 설계

interface ApiService {
    @GET("users")
    suspend fun getUsers(): List<User>
}

2) Coroutine 지원 (suspend)

비동기 처리를 Callback 지옥 없이 해결.

val users = api.getUsers()  // suspend

3) Converter 선택 가능

4) OkHttp 기반


3. OkHttp란 무엇인가?

OkHttp는 안드로이드에서 사실상 표준으로 쓰이는 고성능 HTTP 클라이언트 라이브러리이다.

✔ 주요 기능


4. Retrofit + OkHttp

val okHttp = OkHttpClient.Builder()
    .addInterceptor(LoggingInterceptor())
    .connectTimeout(10, TimeUnit.SECONDS)
    .readTimeout(10, TimeUnit.SECONDS)
    .build()

val retrofit = Retrofit.Builder()
    .baseUrl("https://api.example.com/")
    .client(okHttp)
    .addConverterFactory(GsonConverterFactory.create())
    .build()

val api = retrofit.create(ApiService::class.java)

5. Retrofit/OkHttp 구조

Retrofit
   ↓ (API Interface → Request 변환)
OkHttp
   ↓ (TCP 연결, TLS, HTTP 처리)
네트워크

Retrofit 은 설계/파싱/비동기 처리 담당, OKHttp는 실제 네트워크 I/O 담당


6. Retrofit/OkHttp 네트워크 흐름 요약

App 에서 서버로 요청 시 흐름

Retrofit API 호출
  ↓
OkHttp Request 생성
  ↓
TCP 커넥션 연결
  ↓
TLS 핸드셰이크 (HTTPS이면)
  ↓
HTTP 요청 전송
  ↓
HTTP 응답 수신
  ↓
Converter(Gson/Moshi)로 JSON → 객체 변환
  ↓
코루틴 or 콜백으로 결과 반환

7. 실무 팁 (중요!)



Related Posts