recoil 의 snapshot 은 왜 필요할까?

이건 결국 jotai 에서 useAtomCallback 에 get 도 궤를 같이함.

recoil 에서 snapshot 이라는 인터페이스를 뚫어주고, jotai에서도 비슷한 인터페이스 (get)를 뚫어준건 useRecoilValue와 같은 훅으로 상태를 접근하게 될 경우, 해당 훅으로 선언된 상태는 컴포넌트/훅의 라이프사이클에 묶여버리기 때문 (클로저 현상때문에). 따라서, 상태가 사용되는 함수 내부에서 클로저로 인한 쓰레기값을 참조하는걸 방지하기 위해 이런 인터페이스를 뚫어준듯.

짧게 줄이면

추가로.. Recoil 의 해당 인터페이스 이름이 snapshot 이어서 과거 데이터를 묶는다는건줄 알았는데..그것보다는 그냥 현재 데이터를 바로 참조하는 것에 가까웠음.
과거의 값 저장하고, 불러오려면 별도의 로직이 필요한듯..