무지성 메모
■ @RequestBody는 언제 붙여야 하는가 ■ @Transactional 더티체킹? ■ x-www form-urlencoded json 차이
배게
2022. 3. 7. 22:34
728x90
결론 :
data가 반환되어야 하면 RestController와 함께 RequestBody를 사용하고, view가 반환되어야 하면 Controller를 사용하는 것으로 보입니다.
@Transactional 어노테이션을 사용하면, userRepository.save(user);(save메소드)를 쓰지 않더라도 값을 변경하면 데이터가 update된다. 이것을 '더티체킹'이라 한다.
더티체킹의 근본 의미는 상태변화 검사이다
// save메소드는 2가지 일을 한다. 객체에 id가 담겨있지 않으면 insert의 일을 하고
// 객체에 id가 담겨 있으면 해당 id에 대한 update의 일을 해주고
// 객체에 id가 담겨 있는데 해당 id에 대한 레코드가 존재하지 않으면 insert의 일을 한다
답변
첫 번째 경우는 웹 서버에 다음과 같이 JSON 데이터를 게시하고 있다는 것입니다.
{ Name : 'John Smith', Age: 23}
두 번째 옵션은 웹 서버에 다음과 같이 URL의 매개 변수를 인코딩 할 것임을 알리는 것입니다.
Name=John+Smith&Age=23
application/x-www-form-urlencoded는 html의 form의 기본 Content-Type으로 요즘은 자주 사용하지 않지만 여전히 사용하는 경우가 종종 존재합니다.
차이점은 application/json은 {key: value}의 형태로 전송되지만 application/x-www-form-urlencoded는 key=value&key=value의 형태로 전달된다는 점입니다.