아 이게 뭐임!

JSON이 뭐임...!! (HTT...P..?)

마로가마따 2021. 7. 30. 08:45

최근 안드로이드 스튜디오 프로젝트에서 JSP 톰캣으로 유저 id정보를 송신해서 JSP에서 DB로 사용자 아이디를 전달하는 기능을 구현하고 있었다

 

구현에는 여러 방법이 있겠지만 많은 자료들이 JSON형태로 데이터를 바꾸어 JSP 톰캣서버로 HTTP를 이용해 데이터를 보내는 방식을 구현하더라 (똑같이 했는데 난 왜 안되지 ㅡㅡ;)

 

근데 이 보내는 데이터 형식이 뭔지를 모르겠는것이다... 자연히 이해가 떨어져서 자료를 더 보기 싫어지고...

 

그냥 이 기회에 JSON이 뭔지 정리해보기로 했다.

 

 


Contents

-       HTTP...?

-       JSON...?

 

 

 

 


 

HTTP...?

 

HTTP는 

 

웹사이트나 웹앱과 같은 클라이언트가 서버와 통신할 수 있는지에 관해 정의한 것이 HTTP입니다.

 

Hypertext Transfer Protocal의 약자입니다

 

 

HTTP에서는 서버가 클라이언트에게 데이터를 요청할 수 있고 (request)

 

클라이언트가 요청한 데이터를 서버가 응답할 수 있습니다. (response)

 

이런 요청하고 응답되는 데이터들은 단순히 링크만 보낼수 있는게 아니라 문서나 이미지와 같은 자료또한 포함됩니다.

 

 

 

JSON...?

그럼 JSON은 무엇인가...!

 

JSON은 JavaScript Object Notation의 약자로 ECMAScript의 object에서 영감을 받아 만들어 졌습니다.

 

이 object의 특징은 데이터가 key와 value {key: value}로 이루어져 있다는 점입니다.

 

이처럼 JSON도 똑같이 key와 value로 구성되어 있습니다.

 

이런 JSON형식은 브라우저 뿐만아니라 오브젝트를 파일로 저장할때나 모바일에서 서버로 데이터를 송수신할때도 이용하고 있습니다.

 

 

 

JSON 공식 페이지에서는 어떻게 JSON을 설명할까요...

 

 

 

JSON (JavaScript Object Notation) is a lightweight data-interchange format. It is easy for humans to read and write. It is easy for machines to parse and generate. It is based on a subset of the JavaScript Programming Language Standard ECMA-262 3rd Edition - December 1999. JSON is a text format that is completely language independent but uses conventions that are familiar to programmers of the C-family of languages, including C, C++, C#, Java, JavaScript, Perl, Python, and many others. These properties make JSON an ideal data-interchange language.

 

 

요약하면 JSON은 

 

- 데이터를 주고받을 때 쓸 수 있는 가장 간단한 format

 

- 텍스트를 기반으로해 가볍다

 

- 읽기편하다

 

- 키 벨류 쌍으로 구성되어있다

 

- 데이터를 주고 받을때 직렬화하여 통신할때 쓰인다

 

- 프로그래밍 언어나 플랫폼에 상관없이 독립된 언어이다.

 

 

 

JSON.. 그래서 어떻게 생겼는데요..

 

그래 데이터 포멧인거 알겠는데 어떻게 생겨먹은 친구인지 감이 안올수 있습니다.

 

제가 제일 최근에 본 JSON파일입니다.

 

google-service.json

{
  "project_info": {
    "project_number": "1111111111111",
    "project_id": "login-1111d",
    "storage_bucket": "login-1111d.appspot.com"
  },
  "client": [
    {
      "client_info": {
        "mobilesdk_app_id": "1:1111111111111:android:11111111111111111111b",
        "android_client_info": {
          "package_name": "com.example.example"
        }
      },
      "oauth_client": [
        {
          "client_id": "111111111111-nqgb99kj1oin1n58q6an9e1gc1vhaset.apps.googleusercontent.com",
          "client_type": 1,
          "android_info": {
            "package_name": "com.example.example",
            "certificate_hash": "1b8f78cb4303ff11dc1a882190a41c514e1e2535"
          }
        },
        {
          "client_id": "111111111166-mpu2i5a1111111mddb3rpij1111111f.apps.googleusercontent.com",
          "client_type": 3
        }
      ],
      "api_key": [
        {
          "current_key": "AI1111Kw27w_tsgO6ef11111111111111111"
        }
      ],
      "services": {
        "appinvite_service": {
          "other_platform_oauth_client": [
            {
              "client_id": "111111111111-mp1111111111111111111111111111f.apps.googleusercontent.com",
              "client_type": 3
            }
          ]
        }
      }
    }
  ],
  "configuration_version": "1"
}

 

눈 크게 뜨고 자아아아알 보면 

 

client : [ { ... } ]

 

key : value 의 형식인 것을 알 수 있었습니다.

 

 

 

 

 

 

 

 

반응형

'아 이게 뭐임!' 카테고리의 다른 글

findById와 getById의 차이가 뭐임? [스프링JPA]  (0) 2022.08.17
Telnet이 뭐임?  (0) 2022.04.19
Generic 두개 이상의 변수 사용  (0) 2021.07.29
Generic이 뭐임!! [JAVA]  (0) 2021.07.28
NULL은 특별하다...!  (0) 2021.07.27