Troubleshooting: 무엇이 문제였는가?/본캠프 3주 차: 일정 관리 앱 만들기

3단계: "406 Not Acceptable"

writingforever162 2024. 12. 12. 15:44

[문제]

이러다가 정말 400번 대 오류를 전부 한 번 이상 만나겠다 싶었다. 데이터베이스(database) 구성이 완전히 바뀌고, 자료구조 대신 JdbcTemplate를 사용하면서 한 문제를 해결하면 다른 문제가 생겼다.

 

[원인]

package com.spring.weekthree.dto.member.response;

import com.spring.weekthree.entity.Member;
import lombok.Getter;

// response DTO 클래스(class) 
@Getter // @Getter가 없으면 JSON 변환이 안 된다.
public class MemberResponseDto {
    //(1) 속성
    private long memberId;
    private String name;

    // (2) 생성자
    public MemberResponseDto(Member member) {
        this.memberId = member.getMemberId();
        this.name = member.getName();
    }

    // (3) 기능
}

406번 오류 메시지는 Getter 어노테이션(annotation)이 없어서 생겼다. @Getter가 없어서 직렬화가 이루어지지 않았다. 다시 말해, 사용자의 이름 수정을 요청한 클라이언트(client)에 응답할 때 JSON으로 변환하는 데에 실패해서 406번 Not Acceptable 메시지가 떴다.

 

[해결]

Getter 어노테이션(annotation)을 추가한 다음 프로그램을 실행하니 사용자 이름을 오류 없이 수정할 수 있었다. 데이터베이스(database)에도 수정된 사용자의 이름이 잘 저장되었다.