[java] 제네릭을 사용한 JSON 변환과 직렬화(Serialization)

제네릭(generic)은 자바에서 컬렉션 프레임워크나 메서드에서 타입 안정성을 보장하기 위해 사용됩니다. JSON 변환과 직렬화는 데이터를 다른 형식으로 변환하거나 저장하는 프로세스를 말합니다. 이번 포스트에서는 제네릭을 활용하여 JSON을 처리하고 직렬화하는 방법에 대해 알아보겠습니다.

1. 제네릭 클래스 및 메서드

1.1 제네릭 클래스

public class JsonResponse<T> {
    private T data;

    // 생성자, 게터, 세터 등 생략
}

제네릭 클래스인 JsonResponse는 데이터를 담을 변수 data를 가지고 있습니다.

1.2 제네릭 메서드

public class JsonConverter {
    public static <T> String convertToJson(T object) {
        // 객체를 JSON 문자열로 변환하는 로직
    }
}

convertToJson 메서드는 제네릭 메서드로, 입력된 객체를 JSON 문자열로 변환합니다.

2. JSON 직렬화

public class JsonConverter {
    public static <T> String convertToJson(T object) {
        ObjectMapper mapper = new ObjectMapper();
        try {
            return mapper.writeValueAsString(object);
        } catch (JsonProcessingException e) {
            e.printStackTrace();
            return null;
        }
    }
}

위 코드에서 ObjectMapper는 Jackson 라이브러리로부터 제공되며, 객체를 JSON 문자열로 직렬화하는 데 사용됩니다.

3. 사용 예제

다음은 제네릭 클래스와 제네릭 메서드를 사용한 예제 코드입니다.

JsonResponse<User> jsonResponse = new JsonResponse<>();
jsonResponse.setData(user);
String json = JsonConverter.convertToJson(jsonResponse);

위 코드에서 User는 어떤 클래스든 될 수 있으며, JsonConverter.convertToJson은 제네릭 메서드로써 입력된 객체를 JSON 문자열로 변환합니다.

이렇게 제네릭을 활용하여 JSON 변환 및 직렬화를 수행할 수 있습니다.

참조: Jackson 라이브러리

결론

제네릭을 사용하여 JSON 변환과 직렬화를 수행하는 방법을 알아보았습니다. 제네릭을 활용하면 유연하게 다양한 타입의 데이터를 다룰 수 있으며, 코드의 재사용성을 높일 수 있습니다. JSON 변환 및 직렬화로 유연하고 안전한 데이터 처리를 할 수 있도록 제네릭을 적절히 활용해보세요.