무지성 메모

■ @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

출처 : http://daplus.net/json-application-json%EA%B3%BC-application-x-www-form-urlencoded%EC%9D%98-%EC%B0%A8%EC%9D%B4%EC%A0%90/

 

 

application/x-www-form-urlencoded는 html의 form의 기본 Content-Type으로 요즘은 자주 사용하지 않지만 여전히 사용하는 경우가 종종 존재합니다.

 

차이점은 application/json은 {key: value}의 형태로 전송되지만 application/x-www-form-urlencoded는 key=value&key=value의 형태로 전달된다는 점입니다.

 

출처 : https://jw910911.tistory.com/117