1. JSON?
JSON(Java Script Object Notation)은 자바 스크립트 객체 표기법이다. JSON 이전에는 XML을 이용하여 데이터를 교환했다. 하지만 XML은 데이터보다 태그가 더 많고 복잡하여 효율성이 떨어졌다. 이 문제를 해결하기 위해 등장 한 것이 자바 스크립트로 객체를 표기한 JSON이다.
- {속성명1: 속성값1, 속성명2: 속성값2, ...} // 기본
- [{속성명: 속성값, ...}, {속성명: 속성값, ...}, ...] // 객체 배열
- {키1:{속성명: 속성값, ...}, 키2:{속성명: 속성값, ...}, ...} // Map
1-1 stringify()와 parse()
JS객체를 서버로 전송하려면, 직렬화 즉, 객체를 문자열로 변환하여 저장하는 작업이 필요하다. 반대로 서버가 보낸 데이터(JSON)를 JS객체로 변환할 때, 역직렬화 즉, 문자열을 객체로 변환하는 작업이 필요하다.
- JSON.stringify() - 객체를 JSON 문자열로 변환(직렬화, JS객체 -> 문자열)
- JSON.parse() - JSON 문자열을 객체로 변환(역직렬화, 문자열 -> JS객체)
2.Ajax?
Ajax(Asynchronous javascipt and XML)은 비동기 통신으로 데이터를 주고 받는 기술이다. 비동기 통신이란 뭔가?
통신의 기본은 '동기'다. 위의 왼쪽 그림을 보면 하나의 요청이 발생하면 응답이 올 때까지 다음 명령은 대기한다. 요청과 응답이라는 하나의 작업이 처리되고나서야 비로소 새로운 요청과 응답이 이뤄진다. 이렇게 차례대로 작업을 처리하는 방식을 동기(Sync)라고 한다. 반대로 비동기(Asynchronous)는 하나의 요청이 발생해도 작업이 마무리 될 때 까지 다른 요청은 대기하지 않고 '동시에' 진행된다. 비동기 통신은 웹페이지 전체(data+UI가 아닌 일부(data)만 업데이트를 요구할 때 사용되고 웹개발에서는 주로 댓글 기능을 구현하는데에 사용된다.
2-1 Ajax요청과 응답 과정
3.REST?
REST는 Roy Fielding이 제안한 웹서비스 디자인 아키텍쳐 접근방식으로, 리소스 중심의 API 디자인이다. 리소스 중심의 디자인을 통해 HTTP메서드로 수행할 작업을 정의한다. REST규약을 준수한 API(약속)를 REST API라 한다.
위의 그림은 기존의 방식에서 RESTful 방식으로 변경한 그림이다. 그림에서 보는 바와 같이 URI의 동사 부분이라고 할 수 있는 read, write, remove, modify를 HTTP메서드로 넘기고 URI는 나머지 명사들만 남는다.
출처:스프링의 정석 : 남궁성과 끝까지 간다(패스트 캠퍼스 강좌)