orm 복습 도중 f객체를 굳이 사용하는 이유가 뭔지 알아보았다.
우선 간단한게 예를 들어보면
orm코드를 작성도중 person이라는 테이블을 가져오고 age 컬럼에 대한 데이터를 person.age+=1으로 수정하고
person.save() 문을 써서 db 내용을 업데이트 및 저장 해줄 때 실시간으로 변동이 심한 데이터 업데이트 하는 경우에는 업데이트 직전에 데이터 가 변동이 생겨서 실제 데이터와 바뀐 데이터랑 괴리가 생기는 일종의 데이터 싱크 오류가 생길 수 있고 F객체는 그러한 단점을 보완해준다.
person.age = F('age')+1 이라고 코드를 입력해주면 F객체를 이용한 데이터 업데이트를 하기 때문에 실시간으로 변동되는 데이터를 한번 조회한 뒤에 저장한다.
F객체를 사용하는 이유는 데이터간에 싱크 오류를 방지해주는 기능을 하기 때문