내가 스마트폰에서 SNS앱으로 댓글을 쓰거나 알림을 읽은 순간 눈앞에 켜져있는 나의 컴퓨터에서도 해당 SNS서비스는 방금 스마트폰에서 했던 댓글, 알림을 읽었던 행동이 새로고침 없이 반영되는 건 멀티플랫폼 서비스라면 이제 당연한 일이다.
이렇게 한 서비스를 어떤기기로 접속했는지 어떻게 달라졌는지 느끼지 못할 정도로 언제나 어디서나 "똑같은 환경"을 느끼며 사용할 수 있도록 끊김이 없는 것을 seamless한 서비스라고 합니다.
seamless서비스를 경험한 사용자가 seam(끊김)이 있는 서비스를 사용하면 어떤 생각이들까? 이 서비스는 이렇게 만들었으니 최신상태를 볼려면 새로고침을 해야하고...라고 생각해줄까?
"저건 이렇게 되는데 왜 이건 안되냐? 별로네" 라는 생각이 더 들지 않을까?
더 살펴보자면 스마트폰이 나오고 멀티 플랫폼이 된 지 10년이 넘었다. 컴퓨터를 데스크탑, 키보드, 마우스로 처음 접한 세대가 아닌 태어나 처음 찍힌 사진기가 스마트폰이고 모든 화면은 터치가 된다고 생각하는 세대한테 이해를 바랄 수 있을까? 이제는 한 서비스에 스마트폰이 뿐만 아니라 자동차, 집 등등 더 많은 기기가 포함될텐데 seamless한 건 너무 당연하다.
먼저 무엇이 seamless함을 느끼게 하는 걸까? 내가 서비스에서 A라는 기기로 무언가 행동을 했다면 다른 B기기도 그 행동의 영향이 반영되어야 하는데 그렇게 되기 위해서는 A와 B가 서비스를 사용하고 있는 동안 동일한 상태값을 바라보고 있어야 한다.그리고 서비스에서는 그 상태값이 변경된다면 그 상태값과 관계되고 활성화된 클라이언트 기기로 변경된 사항을 전달해야 한다.
변경된 상태값을 받기 위해서 A와 B 클라이언트는 서비스 이용하는 한 서버와 연결이 계속 유지되어야 한다. 그 연결은 유지되어야 하기에 서버는 절대로 shutdown되어서는 안된다. 죽으면 모든 연결을 다 잃어 버리기에
현재까지 필요조건을 정리하자면
필요조건을 보면 많은 부분이 서버쪽 작업 비중이 높다. 결과적으로 서버에서 필요조건이 기능들이 가능해져야 서비스를 할 수 있다.
어떤게 불멸의 서버일까? 오류가 하나도 없으며 완벽 무결한 서버를 만들면 될까? 그런 건 이 세상에 없다고 본다.