[Node.js] Node.js 웹 서비스 동작 방식, 정적 웹과 동적 웹
글 작성자: 망고좋아
반응형
🎯 웹 서비스 동작 방식, 정적 웹과 동적 웹
- 웹 서비스는 기본적으로 HTTP 요청과 응답의 반복으로 이루어진다.
- HTTP 요청은 사용자가 어떤 데이터가 필요한지를 서버에게 알리는 역할
- HTTP 응답은 HTTP 요청에 해당하는 적절한 데이터를 전달하는 역할
- 브라우저가 인터넷을 통해 HTTP 요청을 서버에 전달
- 서버는 사용자의 HTTP 응답을 브라우저로 전송
- 브라우저는 HTTP 응답을 사용자에게 적절한 화면으로 노출
📝 HTTP 요청 예시
GET / HTTP/1.1
Host: localhost:3000
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:93.0)
Accept: text/html
Accept-Language: ko-KR
Accept-Encoding: gzip, deflate
Connection: keep-alive
- HTTP 요청은 사용자가 어떤 사용자가, 어떤 데이터를 필요로 하는지 등을 담고 있다.
📝 HTTP 응답 예시
🛠 전송된 데이터
HTTP/1.1 200 OK
X-Powered-By: Express
Content-Type: text/html; charset=utf-8
Date: Mon, 25 Oct 2021 14:10:35 GMT
Connection: keep-alive
Keep-Alive: timeout=5
🛠 사용자가 요청한 데이터
<html>
<body>
<h1>Hello, World!</h1>
</body>
</html>
- HTTP 응답은 사용자가 요청한 데이터와, 어떤 데이터가 전송되는지 등을 담고 있음
📝 프론트엔드와 백엔드
- 프론트엔드는 사용자가 직접 사용하게 되는 웹 페이지를 주로 담당 = 클라이언트
- 백엔드는 사용자에게 보이지 않는 데이터 가공 등의 기능을 주로 담당 = 서버
📝 정적 웹
- Web 1.0
- 사용자와 상호작용하지 않는 페이지 - 단방향 통신
- Link를 통한 페이지 이동 정도만 가능
- 일반적으로 변하지 않는 html 파일로 제공
📝 동적 웹
- Web 2.0
- 사용자와 상호작용을 함 - 양방향 통신
- 사용자가 다양한 기능을 수행할 수 있음
- 프론트엔드와 백엔드가 유기적으로 통신하며 동작
- 현대적인 웹은 대부분 동적 웹
📝 동적 웹의 두 가지 구현 방법
📕 CSR
- Client-Side Rendering
- 프론트엔드에서 사용자가 페이지에서 보는 동적인 부분을 대부분 처리하는 방식
- 프론트엔드 코드에 페이지 리소스들이 미리 정의되어 있음
- 서버와의 통신은 API 통신을 이용
- 빠른 반응이지만 페이지의 내용은 API 호출이 완료된 후에 보여짐
- 복잡한 프로젝트 구성, 큰 개발 사이즈로 이루어진다.
📕 SSR
- Server-Side Rendering
- 백엔드에서 페이지 대부분의 영역을 처리해서 프론트엔드로 전달하는 방식
- 사이트가 변하는 부분들을 백엔드에서 처리
- 백엔드에서 HTML 파일을 작성해서 프론트엔드로 전달
- CSR에 비해 쉬운 구성, 작은 개발 사이즈
- 로딩이 완료되면 페이지와 데이터가 한 번에 표시됨
- 상대적으로 사용자가 보기엔 로딩이 느려 보임
- 페이지 이동할 때마다 다시 로딩하기 때문에 페이지 깜빡임
🏷 요약
- 웹 서비스는 HTTP 요청과 응답으로 동작한다.
- 클라이언트는 서버로 HTTP 요청을, 서버는 클라이언트로 HTTP 응답을 보낸다
- 프론트엔드는 클라이언트를 담당, 백엔드는 서버를 담당한다.
- 동적 웹을 클라이언트에서 주로 담당하는 것을 CSR이라고 하며, 서버에서 주로 담당하는 것을 SSR이라고 한다.
반응형
'프로그래밍 > Node.js' 카테고리의 다른 글
[Node.js] Node.js Middleware란? (0) | 2021.12.04 |
---|---|
[Node.js] Express.js 동작 방식 (0) | 2021.12.02 |
[Node.js] Node.js 모듈의 작성과 사용 (0) | 2021.12.02 |
[Node.js] Node.js 모듈 (0) | 2021.12.02 |
[Node.js] npm과 npx는 무엇인가? (0) | 2021.12.02 |
댓글
이 글 공유하기
다른 글
-
[Node.js] Node.js Middleware란?
[Node.js] Node.js Middleware란?
2021.12.04 -
[Node.js] Express.js 동작 방식
[Node.js] Express.js 동작 방식
2021.12.02 -
[Node.js] Node.js 모듈의 작성과 사용
[Node.js] Node.js 모듈의 작성과 사용
2021.12.02 -
[Node.js] Node.js 모듈
[Node.js] Node.js 모듈
2021.12.02