본문 바로가기

좋아하는 것_매직IT/1.spring

Spring Boot 에서 GSON 라이브러리 활용하기

반응형

블로그 목적

GSON 라이브러리에 대해서 공부및 정리후 나만의 노하우와 지식을 공유한다.

블로그 요약

1.REST 서비스의 주류 페이로드 형식인 JSON 에 대해서 알아본다.
2.구글에서 만든 GSON 라이브러리에
 대해서 알아본다.

블로그 상세 내용

GSON 라이브러리? 먹는거임?

 

우선,GSON 라이브러리를 알아보기전에, JSON 에 대해서 알아볼까요?

JSON 은 현재 REST 서비스의 주류 페이로드 형식으로 굳어져서, 데이터 교환시 가장많이 사용하고 있습니다.

본격적으로, JSON(JavaScript Object Notation) 에 대해서 정리를 해보면 아래와 같은데요..

 

우선, JSON(JavaScript Object Notation)은 key 와 value 가 한 쌍으로 이루어진 데이터 오브젝트를 전달하기 위해 인간이 읽을 수 있는 텍스트를 사용하는 개방형 표준 포맷입니다.

보통, 비동기 브라우저/서버 통신(AJAX)을 위해, 넓게는 상대적으로 복잡한구조인 XML을 대체하는 주요 데이터 포맷이라고 머리속에 넣어두시면 되는데요..

보통 자료의 종류에 큰 제한은 없고, 특히 프로그램의 변수값을 표현하는 데 적합하다고 보면됩니다.

본래는 Javascript 언어로부터 파생되어 Javascript의 구문 형식을 따르지만 언어 독립형 데이터 포맷이기도 합니다.

다시말해서, 프로그래밍 언어및 플랫폼에 독립적이고,

구문분석 및 JSON 데이터 생성을 위한 코드는 제 주특기인 C/C++ 언어를 포함해서, JAVA, Javascript, Python 등등 수많은 언어에서 쉽게 이용할 수 있습니다.

JSON 포맷은 RFC 7159와 ECMA-404 그리고 ISO/IEC 21778:2017 표준에 의해 기술되고 있고, KS 부합화 표준은 아직 제정되지 않았고, TTA 협회 표준명은 TTAE.OT-10.0394 입니다.

ECMA 표준과 ISO/IEC 표준은 문법만 정의할 정도로 최소한으로만 정의되어 있는 반면 RFC는 시맨틱, 보안적 고려 사항을 일부 제공 하고 있고요.

참고로, JSON의 공식 인터넷 미디어 타입은 application/json이며, JSON의 파일 확장자는 .json 입니다.

그럼, 본격적으로 Spring Boot 에서 GSON 라이브러리를 사용해서 간단하게 JSON 응답을 주는 프로그램을 구현해 보겠습니다.

첫번째, 우선 제가 좋아하는 인텔리제이를 활용해서 Spring Boot 프로그램을 생성합니다.
  - New Project > Spring Initializr
  - Name 은 gson-program-example
  - Language 는 JAVA 
  - Type 은 Gradle 빌드
  - Project SDK 는 1.8 버전을 사용하겠습니다.

그리고, 의존성은 Lombok / Spring Web 만 선택하도록 할께요..

그럼, 아래와같이  자동으로 기본와꾸(?) 라고하는 디렉토리 구조가 잡히고요..

 

그리고, 해당 프로젝트와 깃허브를 연동하겠습니다.
인텔리제이에서 단축키로 Ctrl+Shift+A 를 사용해서 Action 검색창을 엽니다.
그리고, "share project on GitHub" 를 검색창에 입력하고, 해당 내용을 클릭합니다.



Repository name 에 gson-program-example 자동으로 처있을것이고요 그냥 "SHARE" 를 누루면 됩니다.

 

그럼, 아래와같이 첫번째 commit 을 할 수 있는 팝업창이 나오고요...

Commit 메시지를 입력하고 ADD 를 클릭합니다. 

그럼좌측 하단에 아래와 같이 성공적으로 해당 프로젝트가 공유가되었다라고 나오고요..

Commit 과 Push 가 성공했다면, 깃허브계정으로 이동해보겠습니다. (정상적으로 생성되었는지요...)
오호! 정상적으로 생성이 되었군요..!! (감사합니다!! 아싸!!)

그럼, GSON 라이브러리를 활용한 코딩을 본격적으로 진행해보도록 하겠습니다. 
첫번째로 GSON 라이브러리 의존성을 추가해줘야하는데요..
mvn 레포지토리를 확인해보니...Gson 최신버전이 2.9.0 이릴리즈 되어있네요.. 2022년도에요...

2.9.0 을 클릭하시고..
아래 Gradle(Short) 을 선택하신 후 내용을 복사해옵니다.


그리고, build.gradle 파일에 아래 내용을 붙여넣기해줍니다. 

그리고, Gradle 의 새로고침을 눌러주시면, 성공적으로 Gradle 재빌드가 됩니다. (의존성 파일을 땡겨오겠죠..)

그리고,아래와 같이 controller 패키지를 한개 생성합니다.

그리고, GsonController 파일(java)을 생성한후 아래와 같이 코딩 하시면, 샘플코드는 완성되고요..

즉, JsonObject 를 생성할 수 있습니다.

그럼, 정상적인지, Postman 을 사용해서 테스트를 해보겠습니다.

위와같이 간단하게 GSON 라이브러리를 사용해서 JSON 을 지원하는 프로그램을 만들 수 있었습니다.
마지막으로, Gibhub 에 변경사항을 적용하기 위해서 Commit 을 찍고 Push 해보겠습니다.

Push 가 정상적으로 되었네요..

이번 블로그는 여기까지고요..

참고로, 제 본업은 C/C++ 프로그래머인데요..
예전부터 Spring Boot 도 관심이 있어서 개인적으로 토이프로젝트도 수행하곤했고, Thub 에 간단한 기초적인 블로그를 남기곤했는데요.

프로그래밍을 하면 할수록 와 Spring Boot 란 신세계(?)를 맞보고 있는 중입니다. ㅋㅋ
드디어 요즘에는 현업에 투입되기 시작해서 그런지, 그냥 개인적인 토이프로젝트만 수행하다가 실제 프로젝트에 투입되니 더욱 설레이면서, Spring Boot 재미를 알아가고 있습니다. ㅎㅎ

그럼, 결론을 정리해보겠습니다. 

결론


하나, JSON(JavaScript Object Notation)은 key 와 value 가 한 쌍으로 이루어진 데이터 오브젝트를 전달하기 위해 인간이 읽을 수 있는 텍스트를 사용하는 개방형 표준 포맷입니다.

보통, 비동기 브라우저/서버 통신(AJAX)을 위해, 넓게는 상대적으로 복잡한구조인 XML을 대체하는 주요 데이터 포맷이라고 머리속에 넣어두시면 됩니다.

둘, 구글에서 만든 GSON 이라는 라이브러리를 활용하면, 그냥 뚝딱(?) Json 을 지원하는 프로그램을 만들 수 있습니다.
셋, C/C++ 은 산전수전 공중전 다겪고 열심히 활약하고 있지만 ㅋㅋ SpringBoot 는 신세계인것 같습니다.


728x90
300x250