[java] Gson 기반의 RESTful API 구축 방법은?

Gson은 JSON 데이터를 자바 객체로 변환하거나 자바 객체를 JSON 형식으로 직렬화할 수 있는 유용한 라이브러리입니다. 이 라이브러리는 RESTful API에서 JSON 데이터를 처리하는 데 매우 효과적이며, Gson을 사용하여 RESTful API를 구축하는 방법에 대해 알아보겠습니다.

1. Gson 라이브러리 추가하기

먼저, 프로젝트의 build.gradle 파일에 Gson의 의존성을 추가해야 합니다. 다음 코드를 build.gradle 파일의 dependencies 블록에 추가하세요.

dependencies {
    implementation 'com.google.code.gson:gson:2.8.6'
}

변경 사항을 적용하기 위해 프로젝트를 다시 빌드해야 할 수도 있습니다.

2. Gson 설정하기

Gson을 이용하기 위해선 Gson 인스턴스를 생성하고, 필요한 설정을 추가해야 합니다. 보통은 GsonBuilder를 사용하여 Gson 인스턴스를 생성하는 것이 일반적입니다. 다음 예제는 Gson 인스턴스를 생성하고, Null 값을 제외하고 필드를 직렬화하는 설정을 추가하는 코드입니다.

Gson gson = new GsonBuilder()
    .excludeFieldsWithoutExposeAnnotation()
    .serializeNulls()
    .create();

위의 옵션은 필요에 따라 추가하거나 변경할 수 있습니다. Gson의 공식 문서를 참조하여 자신의 필요에 맞게 설정을 변경할 수 있습니다.

3. JSON 직렬화 및 역직렬화

Gson을 사용하여 JSON 데이터를 자바 객체로 변환하거나 자바 객체를 JSON 형식으로 직렬화할 수 있습니다. 다음은 Gson을 사용하여 JSON 데이터를 자바 객체로 변환하는 방법과, 자바 객체를 JSON 형식으로 직렬화하는 방법의 예제 코드입니다.

JSON 데이터를 자바 객체로 변환하기

String json = "{\"name\":\"John\", \"age\":30}";

Person person = gson.fromJson(json, Person.class);

위 예제에서는 JSON 형식의 데이터인 json 문자열을 Person 클래스의 객체로 변환하는 것을 보여줍니다. fromJson() 메서드를 사용하고, 첫 번째 매개변수로 변환할 JSON 문자열을 전달하고, 두 번째 매개변수로 변환된 자바 객체의 클래스를 전달합니다.

자바 객체를 JSON 형식으로 직렬화하기

Person person = new Person("John", 30);

String json = gson.toJson(person);

위 예제에서는 Person 클래스의 객체인 person을 JSON 형식의 문자열로 직렬화하는 것을 보여줍니다. toJson() 메서드를 사용하여 자바 객체를 JSON 문자열로 변환할 수 있습니다.

참고 자료