Wanna be Brilliant Full-Stack Developer

SpringBoot blog 만들기 Json 사용법 본문

Back-End/블로그 만들기 With SpringBoot

SpringBoot blog 만들기 Json 사용법

Flashpacker 2023. 2. 16. 00:14


이번시간에는 JSON에대해 간략히 알아보려고 한다.

왜 JSON이 나왔는지에 대해 알아보자! 

어떻게 사용해야하는지 알아보기로 하자! 

 

만약에 프랑스인과 한국인이 있는데 이 둘이 어떤 데이터를 주고 받을것이다 

선으로 데이터를 연결해서 주고 받을것인데!

 

프랑스인이 하고 싶은 말은? 프랑스어로 안녕이라고 날릴것이다.

그러면 한국인이 이메시지를 받게 되면 이해를 하지 못한다.

그래서 중간에 이 데이터가 날라 왔을떄 한국인이 어떻게 하는가?

프랑스어를 공부해야한다. 그래야지 저 안녕이라는 말을 알아듣고 한국어로 번역할 수 있다.

 

그리고 일본인이 있고 한국인한테 일본어로 안녕이라는 데이터를 보내면

한국인은? 또 공부를 해야한다. 일본어 공부를 해야한다.

그렇게 해야지 번역을 해서 일본인이 무슨말을 하는지 알수가 있다.

그리고 또 독일인이 한국인하고 통신을 할것인데 안녕이라고 독일어로 보내면

한국인은 또 독일어 공부를 해야한다. 이거 완전 미친짓이다..

 

그러면 조금 머리를 써서 내가 혼자 이렇게 공부해야할 양이 많으니 저 외국인들한테만 이득이다.

그래서 머리를 써서 너희가 나한테 보낼때 내가 세가지를 공부하는것 보다는

너희가 한국어를 공부해서 너희들이 데이터를 보낼떄 한국어로 보내줘 

그러면 너희는 한국어만 공부하면 되잖아! 라고 말을 하면 나는 프랑스어나, 일본어 독일어를 배울필요가 없기떄문에 한국인 입장에서는 굉장히 편하다.

 

그리고 한국인이 저외국인들에게 메시지를 반가워라고 보내고 싶으면 한국어로 반가워라고 보내면된다.

근데 이거는 문제가 있다. 어떤 문제가 있는가? 만약에 데이터를 받는애가 한국인이 아니라

미국인으로 바뀌면 모든 나라에서 비상이 걸린다

통신을 하는데 미국인에게 메시지를 보내기 위해서는 미국어를 또 공부해야하니까 이런 프로토콜은 좋지가 않다. 프로토콜은 약속이라고 하는데 이 프로토콜은 내가 한국어를 공부하다가 미국어도 공부해야하는 상황이 생긴다.

 

그래서 이 방법은 좋지 않다. 

공용어를 하나 정하자! 라고 해서 미국인들의 영어라는 공용어를 정해서 받는 사람이 한국인이면

받는 사람과 보내는 사람다 영어를 공부해서 영어가 공용어가 되어서 영어로 번역해서만 보내기만 하면된다.

이런 프로토콜은 무엇인가?

모든 사람들은 데이터를 전송시에 자기 나라 언어를 영어로 번역하고 

마찬가지로 모든 사람들은 데이터를 응답받을때 영어를 자기나라 언어로 번역하면 된다. 

이 프로토콜이 가장 이상적인 프로토콜이다.

그리하여 자기 나라 언어를 전송시에 영어로 번역을 하고 응답받을때도 영어를 자기나라 언어로

번역하면 된다. 반대로 한국인이 데이터를 보낼때에도 한국어를 영어로 바꿔서 반가워라고 보내고 

프랑스인,일본인, 독일인이 데이터를 받을떄도 영어를 자기나라 언어로 변경 하면 된다.

 

이게 그대로

프로그래밍 세계에 접목이 된다.

만약에 JAVA라는 언어로 프로그램을 짜면 데이터를 하나 전송하고 싶은데

받는애가 JAVA이면 JAVA오브젝트를 내가 하나만들고 클래스를 다이렉트로 전송하게되면 자바는 이해할 수 있다. 

만약에 대상이 파이썬으로 바뀌면 서로 오브젝트가 다르기 떄문에 JAva가 보내는것을 파이썬이 이해하지 못한다. 

그래서 공용어를 하나 만드는데 그것이 JSON이다

그래서 JAVA라는 언어에서 파이썬으로 데이터를 하나 전송하고 싶으면 

JSON으로 변경을 해서 데이터를 실어 보낸다.

한마디로 JAVA 오브젝트를 JSON으로 변역해서 통신을 태워 보내는 것이다.

그러면 파이썬 쪽에서는 JSON데이터를 받고 자기가 쓰기 편하게 파이썬 오브젝트로 변경하면 된다.

 

그러면 자기 언어를 JSON으로 바꾸는것이 언제 필요한가? 전송시에 필요하다.

JSON데이터를 자기 언어로 바꾸는것은 응답받을때 필요하다.

한마디로 JSON데이터는 무엇인가? 중간데이터이다.

데이터 통신을 위한 중간 데이터이다. 

그래서 앞으로 우리는 통신을 할때 JAVA오브젝트를 JSON데이터로 바꾼다는 의미는

전송한다는것이고

어딘가에서 Html에서 어떤 값을 2-3개 (아이디,패스워드)를 입력한걸 Java쪽으로 전송을 한다면 

그때는 저 데이터를 바로 자바오브젝트로 변경하기 어렵기 떄문에 HTML데이터를 JSON으로 변경해서

JAVA한테 보낸다.

그래서 전송시에 HTML 이 데이터를 JSON데이터로 변경해서 보낸다는것이다.

 

이걸 JAVA프로그램에서 받으려면 JSON데이터를 JAVA오브젝트로 바꾸면 된다.

그래서 JSON데이터는 중간 데이터이다.

그래서 우리는 통신시에 JSON데이터를 쓰기 떄문에 컨트롤러에서 외부로부터 요청오는 Request요청이 올때 실어나르는 body데이터를 전부 JSON으로 받을것이다.

한마디로 MIME타입이 JSON이라는것이다.

 

그러면 JAVA는 JSON데이터를 자바 오브젝트로 바꿀수있는 어떤 로직을 짜면 된다. 

받았으면 응답을 누군가에게 리스판스르 해줘야 된다면 자바 오브젝트르 JSON으로 바꿔서 던져주면된다.

이 로직을 짤것이다.

요청받을때 JSON데이터를 JAVA오브젝트로 바꾸고 응답할때도 JAVA오브젝트를 JSON데이터로 변경해서 응답할것이다.

 

다음시간에는 JPA를 통해서 데이터를 INSERT를 할것이다!