JPA를 공부하다 보면 자주 마주치는 개념 중 하나가 바로 플러시(Flush)와 커밋(Commit)입니다. 이 둘은 비슷해 보이지만 실제로는 역할과 시점이 다릅니다. 또한, 트랜잭션의 관리 방식도 함께 이해해야 JPA를 제대로 활용할 수 있습니다.이 글에서는 플러시와 커밋의 차이, 그리고 트랜잭션의 흐름까지 쉽게 정리해보겠습니다.1. 플러시(Flush)란?정의: JPA의 영속성 컨텍스트(1차 캐시)에 저장된 변경 내용을 DB에 SQL로 반영하는 작업입니다.중요: 플러시는 트랜잭션을 끝내지 않습니다. 단순히 SQL이 실행될 뿐이고, 트랜잭션은 계속 유지됩니다.언제 플러시가 일어날까?직접 호출: em.flush()JPQL 실행 전: 정확한 결과를 위해 자동 플러시커밋 직전: 자동으로 플러시 후 커밋 진행2...