영속성 컨텍스트와 변경 감지 완전 정복JPA로 개발을 하다 보면 아래와 같은 코드를 자주 보게 됩니다. @Transactionalpublic void updateUsername(Long id, String newName) { User user = userRepository.findById(id).orElseThrow(); user.setUsername(newName); // 이게 저장된다고?} Colored by Color Scriptercs 별도로 save()를 호출하지 않았는데, 값이 데이터베이스에 반영됩니다.이러한 동작은 JPA의 변경 감지(Dirty Checking) 기능 덕분입니다.이번 글에서는 이 원리가 어떻게 작동하는지 설명드리고, 실무에서 자주 발생하는 실수들과 실전 팁도 함..