왜 둘다 렌더링이라고 표현하는거야? 헷갈리게
ChatGPT의 말:
"렌더링"이라는 용어가 서버와 클라이언트 모두에서 사용되는 이유는 두 과정이 본질적으로 같은 개념을 공유하기 때문입니다. 즉, 어떤 형태의 데이터를 시각적으로 표현 가능한 형태로 변환하는 과정을 의미합니다. 이 변환 과정이 어디에서 일어나느냐에 따라 "서버 측 렌더링"과 "클라이언트 측 렌더링"으로 나뉩니다.
- 공통 개념: 변환 과정
렌더링의 본질은 데이터를 받아서 그 데이터를 사용자가 이해할 수 있는 형태로 "변환"하는 것입니다.
서버 측에서는 데이터(예: 데이터베이스 쿼리 결과)를 HTML로 변환하고, 클라이언트 측에서는 이 HTML을 브라우저가 화면에 표시할 수 있는 형태로 변환합니다.
- 역사적 이유
초기 웹에서는 대부분의 작업이 서버 측에서 이루어졌습니다. 서버가 HTML을 생성(렌더링)해서 클라이언트에 보내고, 클라이언트는 단순히 이 HTML을 화면에 보여주는 역할을 했습니다.
현대 웹에서는 JavaScript와 같은 기술이 발전하면서 클라이언트 측에서도 동적으로 콘텐츠를 생성하고 변환할 수 있게 되었습니다. 이 과정에서 "렌더링"이라는 용어가 클라이언트 측에도 적용되기 시작했습니다.
- 동일한 목적, 다른 위치
서버 측 렌더링: 서버가 데이터(예: 사용자 정보, 게시물)를 받아 이를 기반으로 HTML을 생성합니다. 서버에서의 렌더링은 HTML 문서를 만드는 데 중점을 둡니다.
클라이언트 측 렌더링: 클라이언트(브라우저)가 서버에서 받은 HTML을 해석하고, 이를 실제 화면에 보여줍니다. 브라우저에서의 렌더링은 이 HTML을 사용자에게 시각적으로 표현하는 데 중점을 둡니다.
- 용어의 연속성
개발자가 서버 측에서나 클라이언트 측에서 모두 같은 용어를 사용하는 이유는, 결국 목표가 동일하기 때문입니다: 데이터를 사용자에게 시각적으로 표현하는 것. 이 과정의 시작점과 끝점이 다를 뿐, 본질적으로 "렌더링"이라는 같은 작업을 수행한다고 간주할 수 있습니다.
요약
서버 측 렌더링과 클라이언트 측 렌더링은 데이터가 사용자가 볼 수 있는 형태로 변환되는 과정을 나타냅니다.
두 가지 모두 변환(또는 표현)의 과정이기 때문에 "렌더링"이라는 용어를 공유하지만, 그 위치가 다를 뿐입니다.
비록 헷갈릴 수 있지만, 이 용어는 개발자가 시스템의 다른 부분에서 일어나는 동일한 개념을 이해하고 적용할 수 있도록 돕습니다.