[클라이언트 사이드]
● 네트워크의 한 방식인 클라이언트-서버 구조의 클라이언트 쪽 에서 행해지는 처리를 말한다.
예) HTTP 통신에서 HTML문서가 동적인 부분을 갖고 있지 않다면 문서 수신이 끝나고 나서는 서버와 교신하지 않고 브라우저가 클라이언트 사이드 에서 처리하여 화면에 내용을 표시
● 클라이언트 사이드 스킬: java script, CSS, HTML
● 클라이언트 사이드 프로그램: 웹브라우저(크롬, 파이어폭스, 인터넷, 마이크로소프트 앳지)
클라이언트 사이드 진행 흐름 예시
1. 클라이언트가 넷플릭스 메인 웹 페이지에 들어갔다. |
2. 서버가 클라이언트에게 웹페이지 구동시 필요한 언어를 보낸다. |
3. 클라이언트 컴퓨터 내부 웹프라우저 라는 애플리케이션에 의해 처리하고 화면으로 보여준다. |
● 장점 : 서버의 처리 부담을 줄여서 결과적으로 서버 비용을 줄일 수 있다.
처리하는 데이터가 보안에 민감할 때 클라이언트 내에서 처리가 가능한 부분에 대해서는 통신에 대비하여 암호화 할 필요가 없으므로 암호화 소요가 줄어든다.
● 단점: 클라이언트 사이드에서 처리한 결과를 서버에서 받아야하는 경우 결과 진위성 파악 어려움 (데이터 위조 가능성)
클라이언트 사이드에서 대부분의 웹 구동시 필요한 무거운 부분을 처리한다.
1. 너무 많은 코드를 클라이언트 사이드에서 부담하고 있다.
2. 오랜시간동안 웹 브라우저를 사용하고 있기 때문에 메모리 누수 발생.
=> 한페이지에서 계속해서 바뀌어지는 동적 웹페이지 기술때문에 심화
(인터넷이 움직이는 메커니즘은 기본적으로 정적인 페이지를 교환하기때문에 페이지 자체를 동적으로 바꿀수 없다.)
[서버 사이드]
● 네트워크의 한 방식인 클라이언트-서버 구조의 서버 쪽에서 행해지는 처리를 말한다.
예) HTTP 통신에서 HTML문서가 PHP 등의 서버 사이드 스크립트 언어를 포함하고 있으면 서버 쪽에서 이 부분을 처리하여 결과를 브라우저에 송신
● 서버 사이드는 클라이언트에 전달할 정적 웹페이지(HTML, Java Script)를 만들어서 보내며 정말 중요한 작업들(사용자 유효성, DB관련 등)을 수행한다.
● 서버사이드 스킬: PHP, python, Node.js
● 장점: 데이터 위조의 가능성을 줄일 수 있다.
● 단점: 서버의 처리 부담이 커져 유지비용 증가.
[서버 사이드와 클라이언트 사이드의 상관 관계]
제한적인 서버수에 비해 클라이언트는 압도적으로 많기때문에 가급적 서버의 부담을 줄일수 밖에 없다!!!!
● 위와 같은 이유 때문에 서버- 클라이언트 형식은 아래와 같이 발달하게 되었다.
서버 사이드 -> 처리함에 있어 중요하게 다루어야할부분(DB관리, 사용자 유효성)처리
클라이언트 사이드 -> 중요하지않고 무거운 부분들 처리
그 외의 이야기
● 프론트 앤드 개발자 => 클라이언트 사이드 언어를 다루고 구현할줄 아는 사람
● 백엔드 개발자 => 서버 사이드 언어를 다루고 구현할줄 아는 사람
( 참고 : https://nitro04.blogspot.com/2020/06/web-sever-side-client-side-1.html )
'CS' 카테고리의 다른 글
Kernel(커널) (0) | 2021.07.02 |
---|---|
컴파일러 & 인터프리터 (0) | 2021.07.01 |
정적 프로그래밍 언어 & 동적 프로그래밍 언어 (0) | 2021.07.01 |
서버(SERVER) (0) | 2021.06.30 |