재작년에 트위터가 완전히 client-side 렌더링으로 바꿨죠. 저는 하나의 API로 모든 프론트엔드가 동작한다는 게 마음에 들긴 했지만, 속도 면에서는 부정적인 영향이 더 많을 거라고 생각해서 server-side 렌더링을 계속 써 왔습니다. 그런데 오늘 누가 지적한 게 뼈 아팠어요.
"동적으로 내용을 추가해야 할 때, jQuery나 순수 js로 HTML 객체를 만들어서 내용을 추가하는 건 anti-pattern이다. 클라이언트도 템플릿으로 체계적인 렌더링을 할 수 있어야 한다."
이 말을 듣고 마음이 확 흔들렸습니다. 그런데 이런 반박도 있어요.
"그렇다면 ajax 요청을 받을 때마다 서버에서 그 부분만 HTML 렌더링을 하고 그 결과를 보내주면 된다. 이렇게 하면 클라이언트에서 DOM을 조작할 필요가 없다."
이것도 맞는 얘기인 것 같습니다. 여러분은 어떠신가요?
사용자 경험 측면에서도 더 낫구요..
(html5의 가장 큰 변화 중 하나가 클라이언트의 자원을 활용한다는거죠.. 갈수록 그렇게 되리라 봅니다..)
과거 액티브x나 플렉스까지는 아니지만 강력한 html5나 js를 사용해서 많은 기능과 컨트롤이 클라이언트 단에서 이루어지고
서버랑은 단지 데이터 통신만 이루어지는 정도가 되지 않을까 합니다..
한편으로는 일종의 과거 c/s처럼 되는거죠..
그럼 대부분의 컨트롤은 클라이언트(브라우져) 단에서 다 이루어질 것입니다.. 서버와 if 하는 부분만 제외하구요..
지금은 웹개발자혼자 디자이너 도움받아서 html, js, jsp, asp(소위 프리젠테이션단) 끄적이면서 개발하는 경우가 많았는데
앞으로는 완전히 분리되어야 한다봅니다..
저는 클라이언트 사이드 렌더링에 한표 던집니다.
서버에 렌더링 부하가 집중되면 그 만큼 클라이언트가 몰렸을때 성능이 저하될 수 밖에 없지 않을까요.
그리고 워낙에 클라이언트의 성능들이 좋아져서 느리지도 않더라구요.
꼭 필요한 데이터만 주고 받는다는 점에서 네트워크 성능면에서도 장점이 많습니다.
정말 복잡하거나 크지 않은 이상 ajax 통신을 통해 렌더링된 데이터를 가져오는 속도보다 모바일 클라이언트 사이드가 이점이 더 많습니다.
생각보다 모바일에서 템플릿팅 하는 부하가 크지 않습니다.
초기에 템플릿팅을 포함한 전제 웹 어플리케이션 로직이 로드되고 나면 그 이후로는 간단하게 json 으로 데이터를 주고받고 그 외의 대부분의 조작은 클라이언트에서 처리하는 것과
무엇하나 바뀔때마다 서버 사이드로 리퀘스트를 날리고 기다려서 화면 전환을 하는것...
점차 웹이 어플리케이션으로 인식될수록 인터랙션이 강조될텐데 그걸 구현하기위해 끊임없이 화면요소를 서버사이드에서 주고받는건 낭비인 것 같습니다.
또 웹어플리케이션 라이브러리는 캐싱될수 있지만 각각의 화면요소들은 약간씩의 변형이 있기때문에 캐싱되기 어려운 문제도 있구요.
딱 잘라서 무조건 클라이언트 사이드 템플릿팅이 옳다는 아니지만 흐름은 이미 넘어왔다고 보고 있습니다.
주로 asp.net을 썼었는데 ASP.NET Ajax 등의 기술에서도 모두 dom 특정 element 아래를 통째로 내려보내서 내용을 바꾸고 했던 것 같은데.. 성능적으로도 코딩하기에도 그다지 좋지는 않았던 것 같습니다. asp.net web forms 기반이라서 더욱 그랬겠지만서도..
오늘날 JIT으로 돌아가는 브라우저들은 서버쪽 템플릿 엔진이 특출난게 아닌이상
브라우저가 처리하는 속도나 서버가 처리하는 속도나 고만고만 합니다.
http://blog.mwaysolutions.com/2013/11/08/client-vs-serverside-rendering-the-big-battle-2/
같은 벤치마크를 보면 갤럭시 S 2만 해도 몇 배 정도 느리긴 하더군요.
네 말씀대로 SEO나 웹접근성을 고려할 때 시멘틱한 부분은 서버사이드 상에서 이루어지는게 맞다고 봐요. 클라이언트 단에서 렌더링되는 디자인이나 동적 기능을 걷어냈을 때에도 문서의 내용과 의미가 전달되도록요.
#CLiOS
#CLiOS
from CV
근데 약간 off-topic이긴 하지만, 고스펙만 믿고 가기엔 어딘가 불안하기도 해요. 뭔가 웹 초창기에 사람들이 고스펙만 믿고 플래시로 사이트 도배하다가 모바일 나오면서 된통 된서리를 맞았는데, 이게 모바일도 사양이 좋아지면서 다시 느슨해지고 있는 느낌이랄까요.