Programming/Spring

[Spring Boot] Jackson을 이용하여 Response값 Filtering 방법 (개념/ 예제)

JeongKyun 2022. 6. 7.
반응형

서론


이번 글에서는 Jackson이라는 Dependency를 이용하여 Response의 값을 Filter하는 방법에 대해 알아보려한다. 개념부터 활용 예제까지 정리해보자.

 


 

Jackson 라이브러리란? (@JsonIgnore, @JsonIgnoreProperties)


스프링 부트 환경에서 우리가 보통 아래와 같이 Json을 사용할 때 이 Jackson 라이브러리를 사용한다.

 

  • Json -> Object
  • Object -> Json

이 두 개의 변환(직렬화, 역직렬화)은 스프링 부트 웹 스타터 킷 org.springframework.boot:spring-boot-starter-web에 기본적으로 포함된 jackson 라이브러리를 사용하게 된다.

 

그러나 이번 글에서는 Jackson의 특정 기능을 사용하여  위해 아래와 같은 방법으로 접근한다.

 

이번 포스팅에서 알아보려하는 Jackson 라이브러리를 사용하여 response 값을 핸들링하는 방법은 다음과 같다.

 


 

Pom.xml  Dependency 추가

<dependency>
    <groupId>com.fasterxml.jackson.dataformat</groupId>
    <artifactId>jackson-dataformat-xml</artifactId>
    <version>2.12.5</version>
</dependency>

 


 

예제


 

User 도메인 전체 조회 결과

User 도메인 클래스

일반적으로 User도메인에 대해 조회를 하면 다음과 같은 결과가 나온다.

 

postman으로 조회한 결과인데, 만약 저 결과에서 password와 ssn의 데이터를 숨기고싶다면 어떻게 해야할까? 방법은 간단하다. 이 포스팅의 주요 개념인 Jackson 라이브러리를 이용하면 된다.

 


 

1. @JsonIgnore 사용

다음과 같이 Ignore 시키고 싶은 변수 위에 해당 어노테이션을 적용시켜주면 끝이다.

이제 Postman으로 다시 조회를 해보자.

 

Postman 조회 결과

위와 같이 password와 ssn의 값이 감쪽같이 없어진 것을 알 수 있다. 이렇게 적용시키는 것도 간단하지만, 클래스 위에서 전체적으로 관리하는 방법도 있다.

 


 

2. @JsonIgnoreProperties 사용

위와 같이 클래스 위에 @JsonIgnoreProperties 어노테이션을 추가해준 후 Ignore시킬 변수들을 배열 형식으로 입력해주면 된다.

 

Postman 조회 결과

1번 @JsonIgnore와 동일한 결과가 나오는 것을 확인할 수 있다.

 

이와같이 @Jackson라이브러리에 있는 어노테이션을 잘 활용하면 쉽게 response의 값을 filtering 할 수 있다.

 

이 외에도 Jackson에서 제공하는 여러 기능들이 있으니 관심이 있는 사람은 구글 검색에

Springboot Jackson을 검색해보길 바란다.

 

 

 

댓글

💲 많이 본 글