CLIEN

본문 바로가기 메뉴 바로가기 보기설정 테마설정
톺아보기 공감글
커뮤니티 커뮤니티전체 C 모두의광장 F 모두의공원 I 사진게시판 Q 아무거나질문 D 정보와자료 N 새로운소식 T 유용한사이트 P 자료실 E 강좌/사용기 L 팁과강좌 U 사용기 · 체험단사용기 W 사고팔고 J 알뜰구매 S 회원중고장터 B 직접홍보 · 보험상담실 H 클리앙홈
소모임 소모임전체 ·굴러간당 ·주식한당 ·아이포니앙 ·방탄소년당 ·MaClien ·일본산당 ·자전거당 ·개발한당 ·안드로메당 ·이륜차당 ·바다건너당 ·AI당 ·소시당 ·냐옹이당 ·소셜게임한당 ·걸그룹당 ·클다방 ·골프당 ·오른당 ·와인마신당 ·나스당 ·PC튜닝한당 ·스팀한당 ·패스오브엑자일당 ·어학당 ·노젓는당 ·키보드당 ·퐁당퐁당 ·가상화폐당 ·위스키당 ·육아당 ·날아간당 ·IoT당 ·리눅서당 ·방송한당 ·축구당 ·찰칵찍당 ·달린당 ·3D메이킹 ·X세대당 ·ADHD당 ·AI그림당 ·사과시계당 ·배드민턴당 ·야구당 ·농구당 ·블랙베리당 ·곰돌이당 ·비어있당 ·FM당구당 ·블록체인당 ·보드게임당 ·활자중독당 ·볼링친당 ·캠핑간당 ·문명하셨당 ·클래시앙 ·콘솔한당 ·요리한당 ·쿠키런당 ·대구당 ·DANGER당 ·뚝딱뚝당 ·디아블로당 ·개판이당 ·동숲한당 ·날아올랑 ·전기자전거당 ·e북본당 ·갖고다닌당 ·이브한당 ·패셔니앙 ·물고기당 ·도시어부당 ·FM한당 ·맛있겠당 ·포뮬러당 ·젬워한당 ·안경쓴당 ·차턴당 ·총쏜당 ·땀흘린당 ·하스스톤한당 ·히어로즈한당 ·인스타한당 ·KARA당 ·꼬들한당 ·덕질한당 ·가죽당 ·레고당 ·LOLien ·Mabinogien ·임시소모임 ·미드당 ·밀리터리당 ·땅판당 ·헌팅한당 ·영화본당 ·MTG한당 ·소리당 ·노키앙 ·적는당 ·그림그린당 ·소풍간당 ·심는당 ·라즈베리파이당 ·품앱이당 ·리듬탄당 ·Sea마당 ·SimSim하당 ·심야식당 ·윈태블릿당 ·미끄러진당 ·나혼자산당 ·스타한당 ·파도탄당 ·테니스친당 ·테스트당 ·빨콩이당 ·공대시계당 ·여행을떠난당 ·터치패드당 ·트윗당 ·창업한당 ·VR당 ·시계찬당 ·WebOs당 ·WOW당 ·윈폰이당
임시소모임
고객지원
  • 게시물 삭제 요청
  • 불법촬영물등 신고
  • 쪽지 신고
  • 닉네임 신고
  • 제보 및 기타 제안
© CLIEN.NET
공지[점검] 잠시후 서비스 점검을 위해 약 30분간 접속이 차단됩니다. (금일 18:15 ~ 18:45)

모두의공원

HTML 템플릿: client-side 렌더링 vs. server-side 렌더링 24

2
2014-03-15 23:10:10 110.♡.124.95
랜덤여신

재작년에 트위터가 완전히 client-side 렌더링으로 바꿨죠. 저는 하나의 API로 모든 프론트엔드가 동작한다는 게 마음에 들긴 했지만, 속도 면에서는 부정적인 영향이 더 많을 거라고 생각해서 server-side 렌더링을 계속 써 왔습니다. 그런데 오늘 누가 지적한 게 뼈 아팠어요.

 

"동적으로 내용을 추가해야 할 때, jQuery나 순수 js로 HTML 객체를 만들어서 내용을 추가하는 건 anti-pattern이다. 클라이언트도 템플릿으로 체계적인 렌더링을 할 수 있어야 한다."

 

이 말을 듣고 마음이 확 흔들렸습니다. 그런데 이런 반박도 있어요.

 

"그렇다면 ajax 요청을 받을 때마다 서버에서 그 부분만 HTML 렌더링을 하고 그 결과를 보내주면 된다. 이렇게 하면 클라이언트에서 DOM을 조작할 필요가 없다."

 

이것도 맞는 얘기인 것 같습니다. 여러분은 어떠신가요?

랜덤여신 님의 게시글 댓글
SIGNATURE
자기의 이름을 써넣음. 또는 써넣은 것.
서명 더 보기 서명 가리기
  • 주소복사
  • Facebook
  • X(Twitter)
댓글 • [24]
도네민
IP 112.♡.70.229
03-15 2014-03-15 23:11:28 / 수정일: 2017-04-30 13:32:09
·
freemarker vs handlebars 쯤 되려나요 ㄷㄷ
랜덤여신
IP 110.♡.124.95
03-15 2014-03-15 23:12:57 / 수정일: 2017-04-30 13:32:09
·
아하... 자바쪽에서는 freemarker가 유명한가 보군요. 뭐 그렇지요.
머리에꽃을
IP 122.♡.108.204
03-15 2014-03-15 23:13:39 / 수정일: 2017-04-30 13:32:09
·
갈수록 소위 리치 클라이언트화 되는게 더욱더 대세가 되리라 봅니다..
사용자 경험 측면에서도 더 낫구요..
랜덤여신
IP 110.♡.124.95
03-15 2014-03-15 23:15:04 / 수정일: 2017-04-30 13:32:09
·
사용자 경험쪽에서는 어떤 부분이 나을까요? 제 생각에는 렌더링 시간이 걸린다는 문제 때문에 경험이 비슷할 수는 있어도 더 나을 수는 없을 것 같은데요. 다른 측면들이 있나요?
머리에꽃을
IP 122.♡.108.204
03-15 2014-03-15 23:18:43 / 수정일: 2017-04-30 13:32:09
·
서버에서 랜더링해서 화면에 뿌려준다면 정적인 부분이 크게 개선되지 않습니다.
(html5의 가장 큰 변화 중 하나가 클라이언트의 자원을 활용한다는거죠.. 갈수록 그렇게 되리라 봅니다..)

과거 액티브x나 플렉스까지는 아니지만 강력한 html5나 js를 사용해서 많은 기능과 컨트롤이 클라이언트 단에서 이루어지고
서버랑은 단지 데이터 통신만 이루어지는 정도가 되지 않을까 합니다..
한편으로는 일종의 과거 c/s처럼 되는거죠..
랜덤여신
IP 110.♡.124.95
03-15 2014-03-15 23:20:40 / 수정일: 2017-04-30 13:32:09
·
아, 동적인 웹 사이트를 만들기 위해 DOM의 부분 부분을 업데이트할 일이 있다는 말씀이군요. 제가 그 정도로 예쁜(?) 사이트는 만들어 보지 않았지만 복잡해지면 충분히 그럴 만하군요.
머리에꽃을
IP 122.♡.108.204
03-15 2014-03-15 23:22:36 / 수정일: 2017-04-30 13:32:10
·
서버는 브라우져에 일종의 클라이언트 프로그램을 내려준다는 느낌이죠.. 과거 액티브x나 플렉스 처럼요..

그럼 대부분의 컨트롤은 클라이언트(브라우져) 단에서 다 이루어질 것입니다.. 서버와 if 하는 부분만 제외하구요..
머리에꽃을
IP 122.♡.108.204
03-15 2014-03-15 23:28:24 / 수정일: 2017-04-30 13:32:10
·
지금도 그렇긴 하지만 웹개발도 클라이언트단(퍼블리셔들이 많이하죠) 그리고 서버단(흔히 뒷단) 으로 분리되어 개발될거라 봅니다..

지금은 웹개발자혼자 디자이너 도움받아서 html, js, jsp, asp(소위 프리젠테이션단) 끄적이면서 개발하는 경우가 많았는데
앞으로는 완전히 분리되어야 한다봅니다..
랜덤여신
IP 110.♡.124.95
03-15 2014-03-15 23:34:07 / 수정일: 2017-04-30 13:32:10
·
둘 다 해야 하는 입장에서 한 부분에 집중할 수 있으면 더 편해질 것 같긴 하군요. ㅎㅎ
Incago
IP 112.♡.181.228
03-15 2014-03-15 23:14:10 / 수정일: 2017-04-30 13:32:09
·
최근의 흐름이 증명하는거 아닐까요.
저는 클라이언트 사이드 렌더링에 한표 던집니다.
랜덤여신
IP 110.♡.124.95
03-15 2014-03-15 23:16:20 / 수정일: 2017-04-30 13:32:09
·
확실히 저 같은 서버 게이가 보기에도 무척 매력적으로 보입니다. 그런데 좀 hype 같은 느낌이 든달까요... 이게 일시적인 유행이 될 수도 있겠다는 생각이 듭니다.
미니멈
IP 119.♡.238.219
03-15 2014-03-15 23:17:38 / 수정일: 2017-04-30 13:32:09
·
서버사이드에서 렌더링을 한다고 성능면에 장점이 있다고 말할 수 없을것 같아요.
서버에 렌더링 부하가 집중되면 그 만큼 클라이언트가 몰렸을때 성능이 저하될 수 밖에 없지 않을까요.
그리고 워낙에 클라이언트의 성능들이 좋아져서 느리지도 않더라구요.
꼭 필요한 데이터만 주고 받는다는 점에서 네트워크 성능면에서도 장점이 많습니다.
passby
IP 223.♡.169.113
03-15 2014-03-15 23:23:29 / 수정일: 2017-04-30 13:32:10
·
모바일의 경우에는 네트워크 속도가 일반적으로 pc보다 레이턴시가 훨씬 길고 속도가 느립니다.
정말 복잡하거나 크지 않은 이상 ajax 통신을 통해 렌더링된 데이터를 가져오는 속도보다 모바일 클라이언트 사이드가 이점이 더 많습니다.
생각보다 모바일에서 템플릿팅 하는 부하가 크지 않습니다.
랜덤여신
IP 110.♡.124.95
03-15 2014-03-15 23:28:34 / 수정일: 2017-04-30 13:32:10
·
json과 html을 가져오는 데 latency는 똑같지 않나요? 아니면 혹시 html이 json보다 용량이 더 크니까 네트워크가 열악한 모바일에서 문제가 된다는 말씀이신가요?
passby
IP 223.♡.169.113
03-15 2014-03-15 23:52:39 / 수정일: 2017-04-30 13:32:10
·
랜덤여신님//
초기에 템플릿팅을 포함한 전제 웹 어플리케이션 로직이 로드되고 나면 그 이후로는 간단하게 json 으로 데이터를 주고받고 그 외의 대부분의 조작은 클라이언트에서 처리하는 것과

무엇하나 바뀔때마다 서버 사이드로 리퀘스트를 날리고 기다려서 화면 전환을 하는것...

점차 웹이 어플리케이션으로 인식될수록 인터랙션이 강조될텐데 그걸 구현하기위해 끊임없이 화면요소를 서버사이드에서 주고받는건 낭비인 것 같습니다.

또 웹어플리케이션 라이브러리는 캐싱될수 있지만 각각의 화면요소들은 약간씩의 변형이 있기때문에 캐싱되기 어려운 문제도 있구요.

딱 잘라서 무조건 클라이언트 사이드 템플릿팅이 옳다는 아니지만 흐름은 이미 넘어왔다고 보고 있습니다.
Khire
IP 211.♡.186.65
03-15 2014-03-15 23:24:25 / 수정일: 2017-04-30 13:32:10
·
서버사이드 부분렌더링은 이미 꽤 전부터 쓰이지 않았나요?
주로 asp.net을 썼었는데 ASP.NET Ajax 등의 기술에서도 모두 dom 특정 element 아래를 통째로 내려보내서 내용을 바꾸고 했던 것 같은데.. 성능적으로도 코딩하기에도 그다지 좋지는 않았던 것 같습니다. asp.net web forms 기반이라서 더욱 그랬겠지만서도..
혁군
IP 112.♡.73.172
03-15 2014-03-15 23:27:29 / 수정일: 2017-04-30 13:32:10
·
IE8 시대면 성능 이야기가 있을 수 있긴 한데요.
오늘날 JIT으로 돌아가는 브라우저들은 서버쪽 템플릿 엔진이 특출난게 아닌이상
브라우저가 처리하는 속도나 서버가 처리하는 속도나 고만고만 합니다.
랜덤여신
IP 110.♡.124.95
03-15 2014-03-15 23:31:06 / 수정일: 2017-04-30 13:32:10
·
데스크톱이야 당연히 별 문제가 없고, 주로 모바일쪽에서 이슈가 있는 것 같습니다.

http://blog.mwaysolutions.com/2013/11/08/client-vs-serverside-rendering-the-big-battle-2/

같은 벤치마크를 보면 갤럭시 S 2만 해도 몇 배 정도 느리긴 하더군요.
호떡
IP 223.♡.175.43
03-15 2014-03-15 23:29:31 / 수정일: 2017-04-30 13:32:10
·
클라이언트사이드 렌더링이면 SEO는 어떻게될까요? 봇들은 자바스크립트 사용못하니 불리할꺼 같은데... *
랜덤여신
IP 110.♡.124.95
03-15 2014-03-15 23:33:04 / 수정일: 2017-04-30 13:32:10
·
내용 전체를 client-side 렌더링하면 망하겠지만, 동적으로 렌더링하는 부분을 제외한 초기 페이지는 server-side 렌더링하고 동적인 부분만 client-side 렌더링하면 괜찮겠죠. 아니면 아예 검색 엔진용 페이지를 따로 만드는 것도 방법일 겁니다.
coral
IP 211.♡.118.57
03-15 2014-03-15 23:57:33 / 수정일: 2017-04-30 13:32:10
·
랜덤여신님
네 말씀대로 SEO나 웹접근성을 고려할 때 시멘틱한 부분은 서버사이드 상에서 이루어지는게 맞다고 봐요. 클라이언트 단에서 렌더링되는 디자인이나 동적 기능을 걷어냈을 때에도 문서의 내용과 의미가 전달되도록요.
#CLiOS
삭제 되었습니다.
설단이
IP 222.♡.99.76
03-15 2014-03-15 23:46:56 / 수정일: 2017-04-30 13:32:10
·
먼가 글들이 멋있어요 ㅎㅎ
#CLiOS
MentalisT
IP 61.♡.9.80
03-16 2014-03-16 00:20:22 / 수정일: 2017-04-30 13:32:10
·
클라이언트 사이드의 성능 향상이 결국 서버 부하를 분산하고 예측했던것보디 성능저하 랜덩링 속도저하가 크게 발생하지 않아 사용자 경험 측면에서 부장적이지 않게 흘러가거 있은 추세가 아닐까요? 스펙은 계석 상승하고 있으니
from CV
랜덤여신
IP 110.♡.124.95
03-16 2014-03-16 00:23:04 / 수정일: 2017-04-30 13:32:10
·
뭐 트위터 같이 영리한 사람들도 그렇게 했으니까요. ㅎㅎ

근데 약간 off-topic이긴 하지만, 고스펙만 믿고 가기엔 어딘가 불안하기도 해요. 뭔가 웹 초창기에 사람들이 고스펙만 믿고 플래시로 사이트 도배하다가 모바일 나오면서 된통 된서리를 맞았는데, 이게 모바일도 사양이 좋아지면서 다시 느슨해지고 있는 느낌이랄까요.
새로운 댓글이 없습니다.
이미지 최대 업로드 용량 15 MB / 업로드 가능 확장자 jpg,gif,png,jpeg,webp
지나치게 큰 이미지의 크기는 조정될 수 있습니다.
목록으로
글쓰기
글쓰기
목록으로 댓글보기 이전글 다음글
아이디  ·  비밀번호 찾기 회원가입
이용규칙 운영알림판 운영소통 재검토요청 도움말 버그신고
개인정보처리방침 이용약관 책임의 한계와 법적고지 청소년 보호정책
©   •  CLIEN.NET
보안 강화를 위한 이메일 인증
안전한 서비스 이용을 위해 이메일 인증을 완료해 주세요. 현재 회원님은 이메일 인증이 완료되지 않은 상태입니다.
최근 급증하는 해킹 및 도용 시도로부터 계정을 보호하기 위해 인증 절차가 강화되었습니다.

  • 이메일 미인증 시 글쓰기, 댓글 작성 등 게시판 활동이 제한됩니다.
  • 이후 새로운 기기에서 로그인할 때마다 반드시 이메일 인증을 거쳐야 합니다.
  • 2단계 인증 사용 회원도 최초 1회는 반드시 인증하여야 합니다.
  • 개인정보에서도 이메일 인증을 할 수 있습니다.
지금 이메일 인증하기
등록된 이메일 주소를 확인하고 인증번호를 입력하여
인증을 완료해 주세요.