Retrofit์€ REST API์™€ ์‰ฝ๊ฒŒ ํ†ต์‹ ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ฃผ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ž…๋‹ˆ๋‹ค.

โœ… JSON์„ ์ž๋™์œผ๋กœ ์ง๋ ฌํ™”/์—ญ์ง๋ ฌํ™”ํ•˜๋ฉฐ, ๋น„๋™๊ธฐ ๋„คํŠธ์›Œํฌ ์š”์ฒญ์„ ๊ฐ„ํŽธํ•˜๊ฒŒ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


๐Ÿ”น 1๏ธโƒฃ Retrofit ์ถ”๊ฐ€ (build.gradle)

Retrofit์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด Gradle์— ์˜์กด์„ฑ ์ถ”๊ฐ€๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

โœ… build.gradle (๋ชจ๋“ˆ ์ˆ˜์ค€)

groovy
๋ณต์‚ฌํŽธ์ง‘
dependencies {
    implementation 'com.squareup.retrofit2:retrofit:2.9.0'
    implementation 'com.squareup.retrofit2:converter-gson:2.9.0'  // JSON ๋ณ€ํ™˜๊ธฐ
    implementation 'com.squareup.okhttp3:logging-interceptor:4.9.3'  // ๋””๋ฒ„๊น…์šฉ
}

โœ… ์„ค๋ช…


๐Ÿ”น 2๏ธโƒฃ Retrofit ์ธํ„ฐํŽ˜์ด์Šค ์ •์˜ (API ์„œ๋น„์Šค)

Retrofit์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด API ์š”์ฒญ์„ ์ •์˜ํ•˜๋Š” ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

โœ… ApiService.java

java
๋ณต์‚ฌํŽธ์ง‘
import retrofit2.Call;
import retrofit2.http.GET;
import retrofit2.http.Path;
import java.util.List;

public interface ApiService {
    @GET("posts")
    Call<List<Post>> getPosts();  // ๋ชจ๋“  ๊ฒŒ์‹œ๋ฌผ ๊ฐ€์ ธ์˜ค๊ธฐ

    @GET("posts/{id}")
    Call<Post> getPostById(@Path("id") int id);  // ํŠน์ • ๊ฒŒ์‹œ๋ฌผ ๊ฐ€์ ธ์˜ค๊ธฐ
}

โœ… ์„ค๋ช