일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 사전청약
- kotlin
- ios
- RETROFIT
- ChatGPT
- Data Binding
- arm-linux-androideabi
- Andorid
- gradle
- MG더뱅킹정기예금
- ndkVersion
- Mac
- 3rd framework
- ndk r24
- 청약
- JetPack
- 고금리
- 새마을금고
- Android Studio
- 용산 호반써밋 에이디션
- Swift
- CHAT GPT
- KB
- audio record
- EditText
- Android
- java
- 달러예금
- 예금
- BindingAdapter
- Today
- Total
pear
[android]okhttp & Retrofit 본문
Okhttp
HTTP 통신을 간편하게 구현할 수 있도록 다양한 기능을 제공해주는 라이브러리 입니다.
Retrofit
Okhttp를 사용하여 rest server와 통신을 간편하게 구현할 수 있도록 다양한 기능을 제공해주는 라이브러리 입니다.
Type-Safe
Response에 대한 Type을 정의 할수 있음
async-thread-safe
network 동작에 대한
편리한 interface 제공
HTTP Method interface
Builder interface
DTO(Data Transfer Object)
- 이름과 같이 계층 간 데이터 교환을 위해 사용하는 객체다.
*여기서 말하는 계층이란, View - Controller - Service - DAO와 같은 각 계층을 말한다.
- VO와 혼용되어 쓰이나, 이는 보통 DTO를 지칭하는 말이다.
- 데이터를 담을 private 변수와 그 변수를 조작할 수 있는 Getter, Setter 메소드로 구성되어 있다.
POJO(Plain Old Java Object)
- 특정 인터페이스나 클래스를 상속하지 않고, 순수하게 Getter, Setter로만 구성된(어디에도 종속되지 않은) 자바 객체를 말한다.
- 다른 곳에 종속되지 않는다는 것은 해당 클래스를 사용하기 위해 어떤 프레임워크나 외부 환경이 필요없다는 것이다.
- 즉, Spring MVC를 걷어내도 POJO들은 정상적으로 동작되어야 한다.
- POJO와 설정 정보(Configuration metadata)를 Spring IoC Container에 주입시키면 Bean으로 등록, 사용이 가능하다.
"Retrofit"은 주로 안드로이드 앱 개발에서 사용되는 오픈 소스 라이브러리로, 웹 서비스를 사용하는 앱에서 서버와의 통신을 쉽게 처리하기 위해 설계되었습니다. Retrofit은 네트워크 요청을 만들고 응답을 처리하는 과정을 단순화하며, HTTP 요청과 응답을 자바 인터페이스로 변환해줍니다.
Retrofit의 주요 특징과 동작 방식은 다음과 같습니다:
간편한 인터페이스 정의: Retrofit은 앱에서 사용할 API 엔드포인트와 각 엔드포인트에 대한 HTTP 요청 메소드(GET, POST, PUT, DELETE 등)를 자바 인터페이스로 정의할 수 있게 해줍니다. 이 인터페이스에서 필요한 파라미터와 리턴 타입을 정의하면 됩니다.
주석을 통한 설정: 요청에 필요한 다양한 설정(헤더, 쿼리 매개변수 등)은 주석을 사용하여 인터페이스의 메소드에 지정할 수 있습니다.
요청 생성 및 처리: 인터페이스 메소드를 호출하면 Retrofit은 이를 기반으로 실제 HTTP 요청을 생성하고 서버로 전송합니다. 또한 비동기적으로 요청을 보내고 응답을 받아 처리할 수 있는 메커니즘을 제공합니다.
강력한 변환기(Converter): Retrofit은 서버 응답을 자바 객체로 변환해주는 Converter를 지원합니다. 이를 사용하면 JSON, XML 등의 응답을 객체로 변환하거나, 객체를 요청 본문 데이터로 변환할 수 있습니다.
OkHttp와 통합: Retrofit은 OkHttp 라이브러리와 함께 사용될 때 가장 효과적으로 동작합니다. OkHttp는 네트워크 요청의 성능과 안정성을 향상시켜주는 라이브러리로, Retrofit과 함께 사용하면 더욱 효과적인 네트워크 통신을 구현할 수 있습니다.
간단한 예시로 Retrofit을 사용하여 GET 요청을 보내는 코드를 살펴보겠습니다:
public interface ApiService {
@GET("posts/{id}")
Call<Post> getPost(@Path("id") int postId);
}
// ...
Retrofit retrofit = new Retrofit.Builder()
.baseUrl("https://api.example.com/")
.addConverterFactory(GsonConverterFactory.create())
.build();
ApiService apiService = retrofit.create(ApiService.class);
Call<Post> call = apiService.getPost(1);
call.enqueue(new Callback<Post>() {
@Override
public void onResponse(Call<Post> call, Response<Post> response) {
if (response.isSuccessful()) {
Post post = response.body();
// 처리 로직
} else {
// 에러 처리
}
}
@Override
public void onFailure(Call<Post> call, Throwable t) {
// 네트워크 에러 처리
}
});
'android' 카테고리의 다른 글
[android]Extenal File Access(over android 10) (0) | 2023.12.19 |
---|---|
[android] solved Duplicate class android.support.v4.app.INotificationSideChannel found in modules core-1.9.0-runtime (0) | 2023.12.11 |
[android] Thread와 Handler (0) | 2023.08.09 |
[android] List View and Recycler View (0) | 2023.08.09 |
[android] Life Cycle (0) | 2023.08.09 |