Findex 프로젝트: 지수정보 update가 이루어지지않는다 400에러

2026. 3. 17. 09:28·코드잇 스프린트/실습

400에러는 클라이언트 요청이 문제가 있다는 뜻이다.

 

수정버튼을 눌렀더니 수정실패가 뜬다.

클라이언트 요청 문제가 있으므로 [수정] 버튼 누를때 어떻게 요청을 보내는지 check하자.

 

수정이 불가능하게 만든 indexClassification과 indexName이 함께 들어오는걸 알 수 있다.

  • 수정 요청시 이 두개가 안들어오게 만들기가 정답니다.

나는 백엔드를 하고 있으므로

package org.codeiteam3.findex.indexinfo.dto.request;

import jakarta.validation.constraints.DecimalMin;
import jakarta.validation.constraints.Digits;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;

import java.math.BigDecimal;
import java.time.LocalDate;

public record IndexInfoUpdateRequest(

        String indexClassification,

        String indexName,

        Integer employedItemsCount,

        LocalDate basePointInTime,

        @DecimalMin(value = "0.0", inclusive = false, message = "기준 지수는 0보다 커야 합니다.")
        @Digits(integer = 16, fraction = 2, message = "기준 지수 형식이 올바르지 않습니다.")
        BigDecimal baseIndex,

        Boolean favorite
) {
}

IndexInfoUpdateRequest에 indexClassification과 indexName 필드를 같이 받도록 수정하였다.

 

이렇게 하면 수정이 정상

 

방법2

  • yml 파일에서 spring.jackson.deserialization.fail-on-unknown-properties: false로 하면된다.
  • 이 설정은 JSON -> 객체변환할때 DTO에 없는 필드가 들어오면 어떻게 처리할지 정하는 Jckson 설정.
jackson:
  deserialization:
    fail-on-unknown-properties: true

 

public record IndexInfoUpdateRequest(


        Integer employedItemsCount,

        LocalDate basePointInTime,

        @DecimalMin(value = "0.0", inclusive = false, message = "기준 지수는 0보다 커야 합니다.")
        @Digits(integer = 16, fraction = 2, message = "기준 지수 형식이 올바르지 않습니다.")
        BigDecimal baseIndex,

        Boolean favorite
) {
}

수정 요청 DTO는 이렇게 돼있고 요청은 위와같이 

indexClassification과 indexName이 추가로 들어오고있다.

 

이러한 추가로들어오는 값에대하여 DTO에 없는 필드면 그냥 무시한다.

따라서 위 설정만 해주면 DTO에 따로 필드추가 안해도 된다.

 

true 설정으로도 많이 쓴다.(B2B API, 금융 API)

이유는 클라이언트가 잘못된 필드를 보내는걸 바로 발견할 수 있고 

API 스펙을 엄격하게 유지하기위해서이다.

{
  "nmae": "insu"
}

이런 오타방지도 가능하다.

 

'코드잇 스프린트 > 실습' 카테고리의 다른 글

MoNew 프로젝트: ERD 설계 데이터 타입에 대한 고민(VARCHAR vs TEXT)  (0) 2026.04.15
FINDEX 프로젝트: Railway로 프로젝트 배포하기  (0) 2026.03.17
Findex 프로젝트: 지수정보 목록 조회 Cursor기반 페이지네이션 적용  (0) 2026.03.16
디스코드 프로젝트 실습: JPA N+1 문제 해결하기  (0) 2026.03.11
디스코드 프로젝트 실습: JPA Public 채널생성시 ReadStatus에 채널id가 null값으로 들어간다.  (0) 2026.03.10
'코드잇 스프린트/실습' 카테고리의 다른 글
  • MoNew 프로젝트: ERD 설계 데이터 타입에 대한 고민(VARCHAR vs TEXT)
  • FINDEX 프로젝트: Railway로 프로젝트 배포하기
  • Findex 프로젝트: 지수정보 목록 조회 Cursor기반 페이지네이션 적용
  • 디스코드 프로젝트 실습: JPA N+1 문제 해결하기
과컴
과컴
벡엔드 개발자 최소기준 맞추겠습니다.
  • 과컴
    곽의 프로그램
    과컴
  • 전체
    오늘
    어제
    • 분류 전체보기 (76)
      • 위클리페이퍼 (6)
      • 파이썬 (4)
      • 코드잇 스프린트 (48)
        • Spring 이론 (7)
        • Java이론 (11)
        • 실습 (23)
      • 백엔드 개발자 최소기준 (1)
      • 코딩테스트 (5)
        • 알고리즘 (0)
        • SQL (1)
      • Git (5)
      • 스프링부트 핵심가이드 (1)
      • 트러블 슈팅 (2)
  • 블로그 메뉴

    • 홈
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    문자열
    백준1075번
    혼공파
    파이썬기초
    백준브론즈
    파이썬
    파이썬입문
    백준1152
    백준2576
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
과컴
Findex 프로젝트: 지수정보 update가 이루어지지않는다 400에러
상단으로

티스토리툴바