@JsonIgnore

주빈·2024년 7월 5일
0

java

목록 보기
6/6
post-thumbnail

📘 @JsonIgnore

회사 업무 중 프로모션 추가 때문에 필드를 추가할 일이 생겼는데 현업에서 문의가 왔었다.
"제휴사로 편성표 데이터를 json으로 리턴하는데 신규 추가된 필드가 노출되어서 정책적으로 확인이 필요하다." 라는 문의였다.
이번에 추가한 필드는 단순히 소스 내에서 분기처리를 위해 DB 조회 후 사용하는 것이라 편성표 조회 시 이 필드까지 리턴을 할 필요가 없었기에 @JsonIgnore 이란 어노테이션을
찾게 되었고 사용하게 되었다.

📜 @JsonIgnore이란?

직렬화 시 해당 필드를 포함하고 싶지 않을 때 선언하는 어노테이션이다.
해당 어노테이션을 사용하면 Response 데이터에서 해당 필드가 제외된다.

jackson에서 제공하는 여러 어노테이션 중에 @JsonIgnore을 사용한 이유는 각 어노테이션의 아래와 같은 특징 때문이다.

📜 사용 예시

import org.codehaus.jackson.annotate.JsonIgnore;

public class Card {

	//...항목 생략

    @JsonIgnore
    private String doType;
    
    public String getDoType() {
		return doType;
	}

	public void setDoType(String doType) {
		this.doType = doType;
	}
}

위의 코드처럼 해당 필드 위에 @JsonIgnore를 붙여주면 된다.

✏ @JsonIgnore

@JsonIgnore 어노테이션은 클래스의 속성(필드, 추가 때문에) 수준에서 사용

✏ @JsonIgnoreProperties

@JsonIgnoreProperties 어노테이션은 클래스 수준(클래스 선언 바로 위에)에 사용

✏ @JsonIgnoreType

@JsonIgnoreType 어노테이션은 클래스 수준에서 사용되며 전체 클래스를 무시

마무리

프로젝트로 인해 하나씩 배워가는 중에 이 어노테이션은 실무에서도 유용할 거 같아 잘 기억해두어야겠다.

profile
누구에게나 필요한 개발자가 꿈

0개의 댓글