이 영역을 누르면 첫 페이지로 이동
시간의화살 블로그의 첫 페이지로 이동

시간의화살

페이지 맨 위로 올라가기

시간의화살

행복하세요

[Android] 네트워킹 2

  • 2021.12.13 06:19
  • Mobile/Android

 

 

 

지난 시간에는 소켓을 사용한 네트워킹에 대해 배웠다. 이번에는 JSON 데이터를 다뤄 활용해보자.

 

JSON : JavaScript Object Notation

클라이언트와 서버가 좀 더 가볍게 데이터를 주고받기 위해 도입됐다.

 

소켓 통신에서는 byte stream 혹은 char stream으로 데이터를 주고받았는데, 이게 가능한 이유는 통신하는 대상끼리 서로 약속이 되어 있기 때문이다. 이렇게 진행되면 데이터 수는 줄일 수는 있지만 문제가 발생한다.

 

요즘은 기술의 발전으로 인해 텍스트 기반으로 통신을 진행하는게 가능해졌다. 여기서 xml과 JSON 형식의 데이터가 주목받고 있고, 데이터를 더 가볍게 주고받을 수 있는 JSON 형식의 데이터가 많이 쓰이고 있다. 프로그래밍 언어에 상관없이 넓게 사용할 수 있다는 장점이 있다. (문법은 JavaScript를 사용하지만 텍스트 format이기 때문)

 

JSON 데이터에 대해 알아보자.

 

1. JSON 데이터는 JavaScript 객체 / Java 객체로 변환해서 사용할 수 있다.

2. 이름 / 값 pair로 존재한다.  ex.) {"first name" : "asdf", "last name" : "qwer"}

3. 데이터들은 , 로 구분함.

4. 대괄호를 사용해서 분류함.

5. JSON 배열을 사용할 수 있음

ex.)

{} 를 단위로 객체를 구분함

 

위와 같이 작성했을 때 데이터에 접근하는 방법.

 

 

웹사이트에서도 JSON데이터로 정보를 제공하는 경우가 많다. 

영화 정보를 제공하는 웹사이트를 통해서 사이트가 제공하는 JSON데이터를 가져오자.

 

사이트에서 데이터를 요청할 때는 몇 가지 양식이 있다.

 

 

위의 양식에 맞춰서 데이터를 요청한다. 원하는 날짜 / 순위 등등.. 여러 가지 기준을 설정해 데이터를 가져올 수 있다.

 

 

데이터를 받을 때는 위와 같은 형식으로 받게 되는데, 이런 데이터를 어떻게 처리할까?

 

Gson을 통해 데이터를 처리한다.

JSON 데이터를 받아서 Java 객체로 변환하는 역할을 한다.

 

 

Gson을 사용하려면 위와 같이 추가해 줘야 함. G 는 google 이였음..

 

 

 

영화 정보를 가지고 있는 클래스인 MovieList를 정의하자.

JSON데이터에 포함된 정보인 boxofficeType / showRange / dailyBoxOfficeList 도 멤버 변수로 정의해준다. 이 때 dailyBoxOfficeList는 배열로 선언한다.

 

 

 

영화에 대한 정보를 담고 있는 클래스도 만들어 줘야 한다.

 

 

 

Gson을 사용해서 사이트의 정보를 가져오고, 자바에서 다룰 수 있는 객체의 형태로 바꿔준다.

 

 

인터넷에 접근하기 위해서는 위의 코드를 추가해야 한다.

 

 

 

 

위와 같이 영화 정보를 확인할 수 있는 앱을 만들 때 스크롤 기능을 구현하려면 위의 코드를 사용해야 한다.

 

 

반응형

'Mobile > Android' 카테고리의 다른 글

[Android] 채팅 어플 만들기  (2) 2022.01.02
[Android] 네트워킹 1  (0) 2021.12.05
[Android] 내용 제공자 (Content Provider)  (0) 2021.11.29
[Android] 모바일 데이터베이스  (0) 2021.11.21
[Android] 음악 재생 플레이어 만들기  (0) 2021.11.21

댓글

이 글 공유하기

  • 구독하기

    구독하기

  • 카카오톡

    카카오톡

  • 라인

    라인

  • 트위터

    트위터

  • Facebook

    Facebook

  • 카카오스토리

    카카오스토리

  • 밴드

    밴드

  • 네이버 블로그

    네이버 블로그

  • Pocket

    Pocket

  • Evernote

    Evernote

다른 글

  • [Android] 채팅 어플 만들기

    [Android] 채팅 어플 만들기

    2022.01.02
  • [Android] 네트워킹 1

    [Android] 네트워킹 1

    2021.12.05
  • [Android] 내용 제공자 (Content Provider)

    [Android] 내용 제공자 (Content Provider)

    2021.11.29
  • [Android] 모바일 데이터베이스

    [Android] 모바일 데이터베이스

    2021.11.21
다른 글 더 둘러보기

정보

시간의화살 블로그의 첫 페이지로 이동

시간의화살

  • 시간의화살의 첫 페이지로 이동

검색

방문자

  • 전체 방문자
  • 오늘
  • 어제

카테고리

  • 분류 전체보기 (606) N
    • Algorithm (205)
      • Data Structure (5)
      • Theory && Tip (33)
      • Baekjoon (166)
      • ALGOSPOT (1)
    • Spring (123)
      • Spring (28)
      • Spring Web MVC (20)
      • Spring Database (14)
      • Spring Boot (6)
      • Spring 3.1 (11)
      • Spring Batch (6)
      • Spring Security (16)
      • JPA (12)
      • Spring Data JPA (5)
      • QueryDSL (4)
      • eGovFramework (1)
    • Programming Language (74)
      • Java (19)
      • JavaScript (15)
      • C (25)
      • C++ (12)
      • Python (1)
      • PHP (2)
    • Computer Science (69) N
      • Operating System (18)
      • Computer Network (17) N
      • System Programming (22)
      • Universial Programming Lang.. (8)
      • Computer Architecture (4)
    • Database (21)
      • Database (7)
      • MySQL (3)
      • Oracle (3)
      • Redis (5)
      • Elasticsearch (3)
    • DevOps (20)
      • Docker && Kubernetes (8)
      • Jenkins (4)
      • Github Actions (0)
      • Amazon Web Service (8)
    • Machine Learning (28)
      • AI Introduction (28)
    • Mobile (28)
      • Android (21)
      • Flutter (7)
    • Solutions (13)
    • Life Logs (0)
    • 낙서장 (25)

최근 글

나의 외부 링크

메뉴

  • 홈

정보

13months의 시간의화살

시간의화살

13months

블로그 구독하기

  • 구독하기
  • RSS 피드

티스토리

  • 티스토리 홈
  • 이 블로그 관리하기
  • 글쓰기
Powered by Tistory / Kakao. Copyright © 13months.

티스토리툴바