회사에서 기상청 데이터를 수집할때 api 를 호출시 HttpURLConnection 방법으로 수집했었습니다.
그런데 팀원 사수분께서 HttpURLConnection 말고 okhttp3 방법으로 진행하라고 하셨습니다.
두가지가 뭐가 다른지 간략하게 알아보고 요즘 들어 왜 okHttp3 를 많이 사용하는지 이유도 알아보겠습니다.
1. HttpURLConnection
Java 에 포함된 라이브러리
HttpUrlConnection은 자바에서 기본적으로 제공하는 클래스이기 때문에 호환성 문제도 없고 가볍게 사용할 수 있다는 장점이 있지만
사용법이 복잡하고 간단한 api 하나를 부르는데도 보일러코드가 굉장히 길어집니다.
※ 보일러 코드란 ?
기본적으로 반복되는 구조적인 코드를 의미합니다.
2. okHttp3
Square 사에서 만든 Http Client 입니다 ( 오픈소스 )
HTTP 를 효율적으로 수행하면 항목을 더 빠르게 로드하고 대역폭을 절약할 수 있다.
- HTTP/2 지원을 통해 동일한 호스트에 대한 모든 요청이 소켓을 공유할 수 있다.
- 연결 풀링은 요청 대기 시간을 줄인다. (HTTP/2 를 사용할 수 없는 경우)
- 투명 GZIP은 다운로드 크기를 줄인다.
- 응답 캐싱은 반복 요청에 대해 네트워크를 완전히 피한다.
※ 연결 풀링 ?
연결 풀링(Connection Pooling)은 데이터베이스나 네트워크 서버와의 연결을 미리 만들어서 풀(pool)이라는 곳에 보관해두고 필요할 때마다 재사용하는 기법입니다.
※ GZIP ?
GZIP은 주로 반복되는 문자나 패턴을 압축하여 데이터의 크기를 줄입니다. 이를 통해 원본 데이터 크기를 크게 줄일 수 있으며, 전송 속도가 향상됩니다. 압축된 데이터를 클라이언트가 받으면 자동으로 압축을 해제(디코딩) 하여 원본 데이터를 사용합니다.
※응답 캐싱(Response Caching)**은 클라이언트와 서버 간의 데이터 전송을 최적화하여 네트워크 트래픽을 줄이고 응답 시간을 단축하는 기법입니다. 이는 클라이언트가 이전에 요청한 데이터의 응답을 저장하고, 동일한 데이터에 대한 후속 요청 시 서버에 요청하지 않고 저장된 응답을 사용하는 방식입니다.
3. JsonObejct ??
JSON 형식의 데이터를 표현하는 Java 클래스 입니다
※ JSON ?
{
"name" : "jjy",
"age" : 26
}
json은 {}(중괄호)를 통해 하나의 객체를 표현하며,
내부에는 key:value쌍으로 각 속성값을 정의하고 있으며 key와 value는:(콜론)에 의해 구분되고
각각의 속성은 ,(쉼표)로 구분되어집니다.
4. Gson
gson은 json구조를 띄는 직렬화된 데이터를 JAVA의 객체로 역직렬화, 직렬화 해주는 자바 라이브러리 입니다.
즉, JSON Object -> JAVA Object 또는 그 반대의 행위를 돕는 라이브러리 입니다.
사실 다른 사람 블로그 보면서 Gson 라이브러리 사용하는 방법에 대해서 알아보는데
간략하게 보면 말그대로 object 를 json 으로 변환 하거나 json 을 obejct 로 변환 하는 그런 라이브러리 인거같다....
Gson 아직 익숙하지 않아서 자주 사용하면서 익해야하는 라이브러리인거같당 ㅎㅎ
'코딩 > java (백엔드공부)' 카테고리의 다른 글
cafe 24 가상서버 구매 후 ( java 17, tomcat, mariadb 설치 ) + spring boot 3 mybatis, swagger 까지 잘되는지 확인 (0) | 2024.07.14 |
---|---|
인터페이스 / 컬렉션 프레임웍 / arrayList LinkedList (0) | 2022.07.10 |
java 써블릿 웹 과 인터넷 기초 지식 용어정의 (0) | 2022.05.11 |
공부하는데 도움되는 사이트 모음 (계속 추가) (0) | 2022.05.09 |
java 복습 다형성 (0) | 2022.04.22 |