Persistence context를 공부하는데 이건 아무리 생각해도 영속성하곤 조금 거리가 멀다고 생각이 된다.
어느 정도의 맥락.. 그러니까 데이터를 DB에 영구히 저장하는데 쓰인다라는 의미에서는 어느 정도 들어맞지만 그것만 가지곤 이 context의 모든 행동을 설명할 수 없다.
예를 들어 Persistence context는 spring에서 발생한 하나의 transaction 내에서 entity를 캐싱하기도 하고, dirty check를 하기도 한다.
그러나 Persistence context는 트랜잭션이 끝나면 사라진다.
즉 Persistence context의 범위는 하나의 트랜잭션이다. 이것과 영속성을 관련 짓기는 무리가 조금 있는 것 같다.
따라서 나는 지속성 컨텍스트가 더 올바른 명칭이라고 생각한다.
그 이유는 첫 번째, 한 트랜잭션 범위 내에서 지속적으로 작동하며 entity를 관리하는 역할을 한다.
두 번째는 위에서 설명한 것과 같이 context에 저장된 데이터를 지속적으로 관리할 수 있도록 DB에 저장해준다.
아직 취직도 못한 사람의 의견이긴 하지만..
지속성 컨텍스트라고 생각하면 모든 동작이 매끄럽게 이해된다.
단어를 영어에서 한국어로 번역하면 그 단어가 가지는 의미가 퇴색되거나 많이 색이 옅어지는 경우가 있는데 내 생각엔 이 경우가 그런 경우인 것 같다.
내 생각이 짧을 수도 있다.