Dto에는 getter를 반드시 생성해줘야한다

pudding·2022년 10월 27일
0

Spring 실습중 406 "Not Acceptable" 에러때문에 고민을 엄청했다.
코드를 아무리 봐도 잘못된게 없고(내 생각이었음 ...) 간단한 코드인데 왜 ..
우선

  • 406 "Not Acceptable" 오류는 헤더에 적혀 있는 형식대로 만들어줄 수 없어서 생긴다고 한다. jackson 라이브러리를 추가 해주거나 등등의 해결책이 있었는데 Spring을 사용할땐 해당사항이 아니라고한다(그리고 답답해서 그냥 다 해봤는데 해결도 안됬음)

조금 더 구글링을 하다가 나랑 같은 상황인 블로그를 보고 해결했다.

  • getter를 안만들어줘서 ㅎㅅㅎ;;

코드에서 getter를 사용하지 않는다고 생각해서 만들어주지 않았는데 원인이 이거였다 .. 원인을 알고나서도 왜 getter가 필요한지 이해가가질 않아 구글링 구글짱..

  • 내가 짠 코드만으로는 getter가 필요하지 않아보이지만, 요청에 따라 json 응답을 만들어주는 과정에서 user의 값을 getter로 가져온다고 한다.

참고자료:
https://www.inflearn.com/questions/360185
https://joddev.github.io/2018/11/19/406-Not-Acceptable-in-Spring.html

문제의 코드, getter를 생성해주었다

package com.springboot.hello.domain.dto;

public class MemberDto {
    private String name;
    private String email;
    private String organization;

    public String getName() {
        return name;
    }

    public String getEmail() {
        return email;
    }

    public String getOrganization() {
        return organization;
    }

    public MemberDto(String name, String email, String organization) {
        this.name = name;
        this.email = email;
        this.organization = organization;
    }

    @Override
    public String toString() {

        return String.format("%s %s %s", name, email, organization);
    }
}
profile
영차 영차 개발 공부 기록 하기

0개의 댓글