tuple 타입은 상수, const, 읽기 전용 데이터이다.
tuple = (1, 2, 3, 4)
이 타입은 왜 사용할까?
원본 데이터를 수정해야 할 때 데이터가 수정되었는지 알기 위해서는
원본 데이터를 복제해두었다가 값을 하나하나 비교해야 한다.
데이터가 만들어진 그 시점에 복제해두어야 하는 것이다.
원본이 변경된 것을 확인할 때 어떻게 비교하느냐?
같은 자리에 있는 것끼리 하나하나 비교하면 된다.
이때 단점이 있다.
모든 번지수를 다 확인해야 한다.
데이터의 개수가 10억 개라고 한다면 변경되었는지 확인하고 싶을 때마다
10억 개를 비교해야 하는 것이다.
비효율적이다.
기존에 원본을 수정하는 방식을 바꾸어
수정이 일어날 때마다 새로운 오브젝트를 만들어낸다.
만약 원본 데이터가 1000번지에 저장되어있다면
새로 생성된 오브젝트는 3000번지에 저장되고,
레퍼런스 주소가 다르면 변경 감지를 한다.
원본 데이터를 변경하고 변경 감지하려면
일일이 하나씩 비교해야 해서 감지하기가 힘들다.
때문에 새로 오브젝트를 만들어내서 주소를 비교하면 된다.
이런 걸 옵서버 패턴과 함께 사용한다.
이때 원본 데이터를 previous 데이터라고 하고,
복제된 데이터를 next 데이터라고 해서
previous 데이터와 next 데이터의 주소를 비교한다.
그래서 기존의 데이터를 변경하고 싶다면
기존 데이터를 바꿀 수 없게 강제성을 부여해야 한다는 전제조건이 필요하다.
그리고 주소만 체크!
[출처]
https://cafe.naver.com/metacoding
메타 코딩 유튜브
https://www.youtube.com/c/%EB%A9%94%ED%83%80%EC%BD%94%EB%94%A9