728x90
Java 개발 영역에서, 특히 JSON 데이터를 처리할 때 ObjectMapper 는 개발자가 많이 이용하는 도구 입니다.
fastxml.jackson 라이브러리의 일부인 ObjectMapper는 Java 객체와 JSON 문자열 간 을 변환하는 간단하고 효율정인 바업입니다.
ObjectMapper란?
ObjectMapper 는 Java 개체를 JSON 형식으로 직렬화 하고 JSON 문자열을 Java 개체로 역직렬화하는데 사용되는 jackson 라이브러리의 클래스 입니다. 간단히 말해서 Java 개체를 가져와서 JSON 문자열로 변환하거나 JSON 문자열을 가져와서 Java 개체를 구성할 수 있습니다. 서로 다른 데이터 형식간에 변환하는 이러한 프로세스를 데이터 바인딩 이라고 합니다.
ObjectMapper 의 기능
- 직렬화 및 역직렬화 : ObjectMapper 의 핵심 기능에는 Java 개체를 JSON 으로 또는 그 반대로 변환하는 기능이 포함됩니다. 이는 데이터 교환이 일반적으로 JSON 형식으로 발생하는 RESTful API 에 매우 유용합니다.
- 사용자 정의 : ObjectMapper 를 사용하면 직렬화 및 역직렬화 프로세스를 광범위하게 사용자 정의할 수 있습니다. 개발자는 속성 포함, 날짜 형식 , null 값 처리 등의 측면을 포함하여 Java 개체가 JSON 으로 변환되는 방식을 제어할 수 있습니다.
- 성능 : ObjectMapper 를 포함한 Jackson 라이브러리는 JSON 데이터 처리 속도와 효율성으로 잘 알려져 있고 고성능 애플리케이션에 선호되는 선택입니다.
- 주석 지원 : ObjectMapper 는 Java 객체가 직렬화 되거나 역직렬화 되는 방식을 구성하는 데 사용 할 수있는 주석을 지원 합니다. @JsonProperty , @JsonIgnore 및 @JsonFormat 과 같은 주석은 데이터 바인딩 프로세스를 세밀하게 제어할 수 있습니다.
Java 에서 ObjectMapper 사용하기
JSON 으로 직렬화 하고 JSON 문자열을 다시 Java 개체로 역직렬화하는 데 ObjectMapper 를 사용하는 방버에 대한 기본 예입니다.
직렬화
import com.fasterxml.jackson.databind.ObjectMapper;
public class SerializeExample {
public static void main(String[] args) {
try {
ObjectMapper objectMapper = new ObjectMapper();
Person person = new Person("John Doe", 30);
String json = objectMapper.writeValueAsString(person);
System.out.println(json);
} catch (Exception e) {
e.printStackTrace();
}
}
}
실행 결과 :
역직렬화
import com.fasterxml.jackson.databind.ObjectMapper;
public class DeserializeExample {
public static void main(String[] args) {
try {
ObjectMapper objectMapper = new ObjectMapper();
String json = "{\"name\":\"John Doe\",\"age\":30}";
Person person = objectMapper.readValue(json, Person.class);
System.out.println(person.getName() + ", " + person.getAge());
} catch (Exception e) {
e.printStackTrace();
}
}
}
실행결과 :
모범 사례
- ObjectMapper 재사용 : 가능할 때마다 ObjectMapper 인스턴스를 재사용하는 것이 좋습니다. ObjectMapper 인스턴스는 스레드로부터 안전하며 생성 비용이 상당히 많이 들 수 있습니다. 재사용 하면 메모리 오버헤드가 줄어들고 성능이 향상됩니다.
- 사용자 정의 구성 : 직렬화 및 역직렬화를 사용자 정의하는 ObjectMapper 기능을 황용하여 적절한 구성은 애플리케이션의 데이터 처리를 크게 단순화할 수 있습니다.
728x90
'IT 지식' 카테고리의 다른 글
POJO(Plain Old Java Object) (0) | 2024.04.18 |
---|---|
소프트웨어 디자인의 빌더 패턴 이해 (0) | 2024.03.27 |
이클립스 실행이 안될때 해결법 (1) | 2024.03.14 |
SOAP(Simple Object Access Protocol) (0) | 2024.02.20 |
MSA(Microservice Architecture, 마이크로서비스 아키텍처) (0) | 2024.01.26 |