서론
이번 글에서는 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도메인에 대해 조회를 하면 다음과 같은 결과가 나온다.
postman으로 조회한 결과인데, 만약 저 결과에서 password와 ssn의 데이터를 숨기고싶다면 어떻게 해야할까? 방법은 간단하다. 이 포스팅의 주요 개념인 Jackson 라이브러리를 이용하면 된다.
1. @JsonIgnore 사용
다음과 같이 Ignore 시키고 싶은 변수 위에 해당 어노테이션을 적용시켜주면 끝이다.
이제 Postman으로 다시 조회를 해보자.
위와 같이 password와 ssn의 값이 감쪽같이 없어진 것을 알 수 있다. 이렇게 적용시키는 것도 간단하지만, 클래스 위에서 전체적으로 관리하는 방법도 있다.
2. @JsonIgnoreProperties 사용
위와 같이 클래스 위에 @JsonIgnoreProperties 어노테이션을 추가해준 후 Ignore시킬 변수들을 배열 형식으로 입력해주면 된다.
1번 @JsonIgnore와 동일한 결과가 나오는 것을 확인할 수 있다.
이와같이 @Jackson라이브러리에 있는 어노테이션을 잘 활용하면 쉽게 response의 값을 filtering 할 수 있다.
이 외에도 Jackson에서 제공하는 여러 기능들이 있으니 관심이 있는 사람은 구글 검색에
Springboot Jackson을 검색해보길 바란다.
'Programming > Spring' 카테고리의 다른 글
원활한 MSA를 위한 Spring Cloud란? (개념/ 종류/ Config Server/ Gateway) (0) | 2022.06.16 |
---|---|
[Spring Boot] JPA Entity 현재시간(current_timestamp) 적용 방법(@CreationTimestamp/ @UpdateTimestamp) (1) | 2022.06.09 |
[Spring] 의존성 주입(Dependency Injection)이란? (개념/ 예제/ 총 정리) (2) | 2022.05.31 |
[Spring Boot] MyBatis 카멜케이스 변환 방법 (Snake -> Camel Case) (1) | 2022.05.02 |
[Spring Boot] @SessionAttridutes, @ModelAttribute란? (0) | 2022.04.09 |
댓글