@RequestBody vs @ModelAttribute

Mina Park·2023년 6월 14일
0

TIL

목록 보기
3/3

단순한 CRUD API를 작성하여 push한 뒤 홀가분히 퇴근했다.
그런데 팀장님이 해당 API를 수정하여 push했다는 GitHub 메시지가 날아왔다.
덜컹해서 커밋 메시지를 보니 @RequestBody 어노테이션이 추가되어있었다.
1년 반에 접어들었는데 이런 기본을 놓치다니..하는 생각이 스쳐지나갔다.
그래서 기본부터 다시 다져야지하는 반성과 소회를 담아 TIL 카테고리에 글을 계속 남겨보고자 한다.


1. 공통점

  • 클라이언트에서 보낸 데이터를 java 코드에서 이용가능한 오브젝트로 만들어주는 역할


2. 차이점

  • @RequestBody
    • http의 Body에 담긴 데이터를 java 객체로 변환
      • Spring에서 제공하는 HttpMessageConverter를 통해 타입에 맞는 객체로 바꿔줌
    • 생략 불가능
      • 생략할 경우 @ModelAttribute가 우선 적용되어 문자열로 변환됨
  • @ModelAttribute
    • http 파라미터들을 특정 java 객체로 맵핑
    • query string 및 form 형식이 아닌 데이터는 처리 불가

0개의 댓글