영속성 컨텍스트

김강현·2023년 3월 17일
0

ORM-JPA

목록 보기
2/9

캐시가 필요해...

개발을 하다보면, 특히 firebase 의 cloud-firestore 라는 read 나 write 회수마다 돈 결제가 나가는 baas(backend as a service) 를 활용하다 보니!!

자연스럽게 어플 내에 캐시 컨트롤러를 고민하게 된다.

데이터를 불러올때, 굳이 또 firebase 에 횟수 1을 더 추가해줘야하나?
라는 생각들로 자연스레 캐시를 구현하게 되고,

아얘 새로운 데이터가 필요할때는 refresh라는 변수를 두어 다시 불러오고.

등등을 반복하다보면 자연스레 snapshot 같은 기능이 있으면 좋겠다라는 생각에 다다른다.

맞다. 이 생각에 다다른 개발자 분들이 만들어낸 개념이 영속성 컨텍스트이다.

객체랑 DB랑 연결 좀...

물론 객체를 사용하다 firebase에 맞게 사용해야하는 귀찮음
1. 모든 class 마다 toMapForData, fromMapData, clone 을 지정해주어야 하는 노가다 작업들...
2. firebase에서 다루는 데이터 형식에 맞게 변환해주는 TypeChange같은 기능들

이런것들을 한 곳에서 할 수 있게 해주는 컨트롤러(?), 클래스를 떠올리기 마련이고 이게 jpa 가 해주는 일.

트랜잭션? 난 안할래...

다만, baas 를 썼기때문에, 데이터 트랜잭션에 대한 고민은 아얘 하지 않았지만, 어플 내에서도 firebase transaction 속에서 server 함수들을 사용했기에 어느정도 익숙하다.

영속성 컨텍스트의 역할은
우리가 지금껏 해왔던 수많은 노가다,
데이터 불일치 및 비효율적인 CRUD 를
대신 해결해주는 하나의 도구 이다.

JPA 찬양해! 감사합니다! 멋진 개발자님들

profile
this too shall pass

0개의 댓글