그리드 설정
상태 정보 관련 속성
QCELL은 상태 정보 관련 속성을 통해 상태 정보의 타입을 설정할 수 있습니다.
Step 1: statetype: "immediate"
immediate
는 데이터를 서버에 즉시 반영하고 동기화하는 방식입니다.
- delete된 정보를 states에 담아둘 필요가 없다.
- delete된 행 정보들을 따로 관리한다.
- delete되면 states를 동기화해야한다.
- insert되면 states에 기록하고 동기화한다.
- update되면 states에 기록한다.
데이터가 삭제될 때, 삭제된 정보는 별도의 속성에 저장되고, 삭제된 정보는 더 이상 states라는 상태 관리에 포함되지 않습니다.
삭제된 행에 대한 정보는 별도의 장소에서 관리되어, states와는 분리됩니다.
만약 특정 행이 삭제되면, 즉시 states를 업데이트하여 동기화해줘야 합니다.
또한, 삭제된 행 이후의 다른 행들의 인덱스가 재조정되므로, 그 행들의 인덱스를 -1 처리하여 올바르게 반영해야 합니다.
데이터가 새로 추가될 경우, 그 정보가 states에 기록되며, 추가된 후 바로 states를 동기화해야 합니다.
이때 추가된 행 이후의 행 인덱스는 +1 처리하여 인덱스 조정을 합니다.
업데이트된 내용은 states에 바로 기록되며, 즉시 동기화됩니다.
즉시 동기화 방식이란?
immediate
는 이름 그대로, 데이터가 변경될 때마다 즉각적으로 서버나 상태 관리 시스템에 동기화가 이루어지는 방식입니다.예를 들어, 데이터를 삭제하거나 추가할 때 그 즉시 서버와 통신하여 상태를 최신으로 유지하는 방식입니다.
사용자가 무언가 변경할 때 바로 서버에 던져서 동기화하는 개념이라고 이해하시면 됩니다.
Step 2: statetype: "later"
later
는 데이터를 즉시 동기화하지 않고, 일종의 배치(batch) 방식으로 처리합니다.
즉, 변경사항을 모아 두었다가 나중에 한 번에 동기화하는 방식입니다.
- delete된 정보를 states에 기록한다.
- delete된 행 정보들을 따로 관리하지 않는다.
- delete되어도 states를 동기화할 필요가 없다.
- insert되면 states에 기록하고 동기화한다.
- update되면 states에 기록한다.
이 방식에서는 삭제된 정보도 states에 그대로 기록됩니다. 즉, 삭제된 정보를 나중에 동기화할 때 필요하기 때문에 states에서 제거되지 않습니다.
삭제된 행에 대한 정보를 별도로 관리하지 않습니다. states에 기록된 상태로만 남겨두고, 별도의 속성에 따로 모아두지 않습니다.
삭제된 정보는 즉시 서버와 동기화되지 않습니다. 나중에 한 번에 동기화될 때 반영됩니다.
데이터가 새로 추가되면 states에 기록되지만, 이때도 즉시 동기화하지 않고, 나중에 한 번에 동기화합니다. 추가된 이후의 행 인덱스는 +1 처리됩니다.
업데이트된 정보도 states에 기록되며, 나중에 신호등 처리 방식으로 동기화됩니다.
지연 동기화 방식이란?
later
는 변경사항이 있을 때마다 바로 서버에 반영하지 않고, 일정 시간이 지나거나 특정 이벤트가 발생할 때 한꺼번에 서버와 동기화하는 방식입니다.예를 들어, 사용자가 많은 데이터를 수정했을 때 그 변경사항을 한 번에 처리하는 것과 같습니다.
'신호등 처리'라는 말은 이 개념을 뜻하며, 초록불이 켜질 때까지 변경사항을 모아 두었다가 신호가 오면 한꺼번에 처리하는 것으로 이해할 수 있습니다.
차이점 요약
immediate
: 변경사항이 발생할 때마다 즉시 서버와 동기화합니다. => 삭제되면 바로 처리, 추가되면 바로 기록하고 동기화.later
: 변경사항을 기록해두고, 나중에 한꺼번에 서버와 동기화합니다. => 삭제된 행을 따로 관리하지 않고 모아 두었다가 나중에 처리.
immediate는 즉시 동기화되기 때문에, setRowState(row, "d");와 같은 행 상태 정보를 변경하는 API가 신호등 표시로 처리되지 않습니다.
그러나 삭제 관련 API 사용 후 상태 정보를 확인할 수 있는 API를 통해 이를 확인할 수 있습니다.
statetype: "immediate"
later는 나중에 동기화되기 때문에, setRowState(row, "d");와 같은 행 상태 정보를 변경하는 API가 신호등 표시로 처리가 가능합니다.
그러나 삭제 관련 API 사용 후 상태 정보를 확인할 수 있는 API를 통해 이를 확인할 수 없습니다.
statetype: "later"