TIL_4

-·2021년 1월 30일
0

TIL

목록 보기
4/15

JSON

데이터를 저장하거나 전송할 때 많이 사용되는 경량의 DATA 교환 형식

특정 언어에 종속되지 않으며, 대부분의 프로그래밍 언어에서 JSON 포맷의 데이터를 핸들링 할 수 있는 라이브러리를 제공한다.

중괄호({}) 같은 형식으로 하고, 값을 ','로 나열하기에 그 표현이 간단하다.

name-value형식의 쌍

{
  "employees": [
    {
      "name": "testname1",
      "lastName": "Son"
    },
    {
      "name": "testname2",
      "lastName": "Son"
    }
  ]
}

GSON

GSON은 자바 라이브러리중 하나인데, 자바 오브젝트를 쉽게 JSON으로 변환시켜주는 아주 간단하고 심플한 라이브러리

jackson

jackson은 자바진영 json 라이브러리로 잘 알려져 있지만 json 뿐만 아니라 XML, YAML, CSV 등 다양한 형식의 데이타를 지원하는 data-processing 툴이다.

스트림 방식이므로 속도가 빠르며 유연하며 다양한 third party 데이터 타입을 지원하며 annotation 방식으로 메타 데이타를 기술할 수 있으므로 JSON 의 약점중 하나인 문서화와 데이타 validation 문제를 해결할 수 있다

File.separator

파일경로 설정 시 OS에 따라서 디렉토리사이에 표시해주는 구분자가 다르다.

Data라는 폴더에 test.txt라는 파일을 원하면

윈도우 -> Data\test.txt

리눅스 -> Data/test.txt

이걸 자바에서는

"Data" + File.separator + "test.txt" 라고 사용하면 된다

Base64 Encoding

Base64란 Binary Data를 Text로 바꾸는 Encoding의 하나로써 Binary Data를 Character set에 영향을 받지 않는 공통 ASCII 영역의 문자로만 이루어진 문자열로 바꾸는 Encoding이다.

하지만 Base64 Encoding을 하게되면 전송해야 될 데이터의 양도 약 33% 정도 늘어난다. 6bit당 2bit의 Overhead가 발생하기 때문이다.

그럼 이걸 왜쓰냐?

ASCII는 시스템간 데이터를 전달하기에 안전하지가 않다. Base64는 ASCII 중 제어문자와 일부 특수문자를 제외한 64개의 안전한 출력 문자(공통 ASCII 영역)만 사용한다.

그래서 HTML 또는 Email과 같이 문자를 위한 Media에 Binary Data를 포함해야 될 필요가 있을 때, 포함된 Binary Data가 시스템 독립적으로 동일하게 전송 또는 저장되는걸 보장하기 위해 사용한다

profile
거북이는 오늘도 걷는다

0개의 댓글