더티체킹(Dirty Checking)은 다음과 같이 정의할 수 있다.
트랜잭션 안에서 Entity의 변경이 일어났을 때 변경한 내용을 자동으로 DB에 반영하는 것
기본적으로 더티 체킹을 실행하면, SQL에서는 변경된 엔티티의 모든 내용을 update 쿼리로 만들어 전달하는데, 이때 필드가 많아지면 전체 필드를 update하는게 비효율적일 수도 있다.
이때는 @DynamicUpdate를 해당 Entity에 선언하여 변경 필드만 반영시키도록 만들어줄 수 있다.
이번 프로젝트 에서도 게시판 수정시, 모든 내용에 대해 update를 진행하지 않고, 변경분에 대해서만 update를 할 수 있도록 쿼리를 날릴 수 있게 @DynamicUpdate를 적용하였다.