트랜잭션 안에서 엔티티의 변경이 일어나면, 변경 내용을 자동으로 데이터베스에 반영하는 JPA의 특징입니다. Dirty란 "상태의 변화가 생긴 정도"로 이해할 수 있으며, 즉 Dirty Checking이란 상태 변경 검사를 의미합니다. 더티 체킹의 기준 더티 체킹에서 "변화가 있다"의 기준은 최초 조회 상태입니다. JPA에서는 엔티티를 조회하면 해당 엔티티의 조회 상태 그대로 스냅샷(Snapshot)을 만들어 놓습니다. 그리고 트랜잭션이 끝나는 시점에는 이 스냅샷과 비교해서 다른점이 있다면 Update Query를 데이터베이스로 전달합니다. 당연히 이러한 상태 변경 검사의 대상은 영속성 컨텍스트가 관리하는 엔티티에만 적용됩니다. 즉, Detach된 엔티티(준영속), DB에 반영되기 전 처음 생성된 엔티티(..
이 글은 시니어 멘토님의 피드백을 바탕으로 정리해보며 가상질문을 추가해 정리한 글입니다. 틀린 부분이나, 추가로 나올법한 질문이 있다면 댓글로 남겨주시면 정말 고맙겠습니다. 1. Docker를 왜 사용하나요? 도커는 컨테이너 기술 기반으로 한 오픈소스 가상화 플랫폼입니다. 도커를 사용하는 가장 큰 이유로 환경 독립성이 있습니다. 1-1. 환경 독립성 컨테이너는 애플리케이션을 혼경에 구애받지 않고 실행하는 기술입니다. 서버 운영 시, 서로 다른 환경에서도 동일한 컨테이너 이미지를 실행할 수 있습니다. 예를 들어, 도커를 사용하면 운영체제나 라이브러리의 차이로 인한 문제를 최소화 할 수 있습니다. 1-1-a. 서로 다른 환경에서도 동일한 컨테이너 이미지를 실행할 수 있다고 했는데, 도커 이미지에는 맥에 대한..