[심화] 데이터의 상태관리(Sector Status)
섹터(Sector)에 대한 설명이 필요하다면 이 페이지가 도움이 될 수 있습니다.
컬렉션 내부 섹터는 사용자이 동작에 따라 상태값이 자동으로 관리됩니다. 어떤 섹터를 사용자가 선택했는지, 어떤 데이터들이 추가되었고 수정 되었는지 등을 상태값을 통해서 추적하고 가공 할 수 있습니다.
Active 상태 관리
사용자가 실제 사용하면서 상호작용하고 있는 섹터(Sector)를 항상 Active 한 상태로 관리합니다. 사용자가 선택한 항목, 입력하거나, 변경하고 있는 섹터를 Active 상태로 변경 시켜줍니다. Active는 마지막(현재) 사용중인 단 하나의 섹터만이 부여되고, 새로운 섹터가 Active가 될 경우 이전 Active 상태 섹터는 해제 됩니다.
사용자 시나리오 중심으로 개발할 경우 Active 상태 섹터는 사용자가 선택하거나 상호작용중인 데이터를 다음 스텝에서 이어서 작업 변경 하기에 매우 용이하게 쓰입니다.
다음은 알림 리스트를 보여주는 화면입니다. 각 알림 메시지는 섹터에 연결되어서 생성 되었습니다.
사용자가 알림 메세지를 선택하게 되면 해당 알림영역이 연결된 섹터의 상태가 Active 가 됩니다.
다음 스텝에서는 Active 섹터와 연결하여 사용자가 선택한 알림에 대한 상세한 내용을 보여주도록 합니다.
변경여부에 대한 상태 관리
사용자가 특정 동작을 통해 데이터를 추가하거나 수정, 삭제 여부를 알 수 있도록 별도의 상태값을 관리 해줍니다.
다음과 같은 팀원 정보를 서버에서 조회해 왔습니다. 조회해 온 데이터에 대해서는 별도의 상태 값이 부여되지 않습니다.
사용자가 멤버를 추가하기 위한 버튼을 눌러서 새 사용자를 직접 등록하게 되면 해당 섹터에 대해서 Added(추가됨) 여부의 상태가 부여됩니다.
아래는 조회해온 멤버의 정보를 수정하였을 경우 해당 섹터에 대해서 Updated(수정됨) 여부의 상태가 부여됩니다.
추가 수정된 정보를 서버에 반영하고 새로 데이터를 조회하게 된다면 모든 상태값은 다시 초기화가 됩니다.
삭제된 데이터
다음과 같이 멤버를 수정하는 화면이 있습니다. 여기서 위에 두 멤버를 삭제를 해봅니다.
삭제를 하게 되면 해당 멤버는 화면에 나오지 않지만 섹터에 Deleted(삭제됨) 상태가 부여되게 됩니다. Deleted 상태의 섹터는 화면에 반영되지 않습니다.
삭제한 데이터가 컬렉션에 남아있는 이유는 삭제된 데이터를 서버에도 반영하기 위해서 입니다. 함수(Function)를 이용해 직접 삭제도 가능합니다.
Last updated