ajax에서 리스트 전송 때문에 배운 데이터 직렬화

배선영·2021년 9월 28일
0
$.ajax(
	{
		url 		: "velog.io",
		type 		: "post",
		async 		: false,
		dataType 	: "json",
		data 		:
		{
			data	:Array(array_list)
		},
		success : function(list)

위와 같은 코드를 붙잡고 헤맸었다. array_list라는 배열 데이터를 전송해야 하는데 자바에서 이 데이터를 확인해보면 data[]= {value} 이런 형식으로 데이터를 받고 있었다.

해결방법은 간단했는데 ajax 속성에 traditional : true를 넣어주면 되었다.
traditional은 데이터를 전송하기 전에 직렬화 하여 전송을 한다는 옵션인데
레퍼런스 변수인 배열을 전송하기 위해서는 필수적인 과정이었다.

직렬화에 대한 개념도 상당히 부족한거 같아서 검색을 통해 공부를 하였다. 쉽게 말하면 참조변수를 가지고 통신을 하게 되면 서버와 클라이언트의 주소 참조 값이 다르기에 이 참조변수가 가지는 데이터를 끌어모아 하나의 value 형식의 변수로 만들어주는 것이다.(내부적인 불연속적 메모리를 연속적으로 배치한다는 의의 또한 가지고 있다.) 이해하고 나니 traditional 옵션의 필요성을 알게 되었다.

결론 : 데이터 직렬화는 데이터들을 저장 혹은 통신 및 파싱에 적합한 데이터들로 가공 && ajax에서 참조 변수 통신을 위해서는 직렬화 옵션 traditional 필요

데이터 직렬화에 대한 정보는 https://hub1234.tistory.com/26 참조

0개의 댓글