클라이언트 기반과 다르게 서버를 기반으로 적용되는 것.
일반적으로 데이터는 백엔드에 의해 구동되고, ui는 각 클라이언트에 의해 구동된다.(web,ios,android)
ex)사용자에게 홈페이지를 보여주기 위해서 백엔드에서 홈 목록 데이터를 요청 > 데이터 수신되면 클라이언트는 해당 데이터를 UI로 변환
이로 인한 문제점이 발생
1) 데이터를 변환하고 렌더링하기 위해 각 클라이언트에 구축된 논리가 있는데, 이를 변경하면 복잡해짐
2) 각 클라이언트는 공통성을 유지해야 하는데 각 클라이언트마다 고유한 복잡함과 상태처리등에 대한 것이 다르기 때문에 사용자의 사용성이 달라지기 쉬움
3) 모바일에서의 버전관리
server driven ui에서는 백엔드에서 데이터를 제어하고 해당 데이터가 모든 고객에게 동시 표시되는 방식이 제어가능하다. 화면 레이아웃, 섹션이 정렬되는 방식, 표시되는 데이터등 모든 것이 web,ios,android 앱에서 단일 백엔드 응답으로 제어된다.
출처 : https://medium.com/airbnb-engineering/a-deep-dive-into-airbnbs-server-driven-ui-system-842244c5f5
서버 주도형 유저 인터페이스(server driven user interface)
SDUI가 필요한 이유
1) UI를 추가하기 위해 화면과 코드를 새롭게 작성해야 할 필요 없음
2) 사소한 ui 변경에도 코드를 다시 작성해서 배포할 필요 없음
3) 스토어에 따라 배포가 바로 적용되지 않고 검증기간이 필요한데 이를 방지
4) 사용자가 앱을 업데이트 하지 않은 경우에도 변경사항 적용
SDUI : UI가 서버에 의해서 결정이 되고, 이벤트 처리도 서버에서 어떻게 할지 정의를 한다는 의미
출처 : https://blog.udon.party/posts/Server-Driven-UserInterface/
댓글