JSON

Workwork·2022년 7월 19일
0

React.Boot.Aws

목록 보기
3/19
post-thumbnail

<React.js, 스프링 부트, AWS로 배우는 웹 개발 101>(김다정 지음)을 따라 TO-DO 앱을 하나 만들 예정이다.

앞으로 쓸 대부분의 포스팅(이미지/글)은 위의 서적을 참고/출처로 작성되었음을 미리 밝힌다.

JSON(JavaScript Object Notation)

JSON은 오브젝트를 표현하는 문자열이다. 오브젝트란.. 뭔지 알지?ㅇㅇ

public class TodoItem {

	String title;
    boolean done;


  public TotoIdem(String title, boolean done) {
      this.title = title;
      this.done = done;
	}
    
}



new TodoItem("myTitle", false);

이렇게 오브젝트를 생성했다 치면

| 'myTitle' | false |

이런 식으로(?) 메모리 상에 오브젝트가 존재할 것이다. 그런데 메모리상에 오브젝트가 존재하는 방식은 아키텍처와 언어에 따라 다르다. 서로 다른 아키텍처와 오브젝트를 사용하는 앱이 2개 있다고 치자. 서로 오브젝트를 전송하기 위해서는 둘 다 이해할 수 있는 형태로 오브젝트를 변환해야 한다. 이렇게 저장 또는 전송을 위해 메모리상의 오브젝트를 다른 형태로 변환하는 것을 '직렬화'라고 한다.(반대는 역직렬화)

JSON은 키-값 형태로 오브젝트를 표현한 문자열이다.

{
	"title":"myTitle",
  	"done":false
}

위의 오브젝트를 JSON으로 변환한 예.
인스턴스 변수 이름(key) : 변수에 들어간 값(value)

자바스크립트에서 오브젝트 생성하는 방법과 같아서 자바스크립트 오브젝터 노테이션이라고 부른다고 한다ㅋㅋ

아무튼, 앱1이 오브젝트를 JSON 형태의 문자열로 변환한 후 HTTP 요청의 바디 부분에 변환한 JSON을 넣어 요청을 전송하면, 요청 받은 앱2는 HTTP 요청의 바디 부분에서 JSON을 꺼내 TodoItem 으로 변환해 사용할 수 있다. 변환 과정은 프레임워크가 알아서 해주므로 크게 신경 쓰지 않아도 되지만 언젠가는 알고싶다 그 원리를.

profile
나만 알아보면 된다는 마음으로 작더라도 조금씩

0개의 댓글