웹 개발을 할 때 가장 중요한 결정 중 하나는 어떤 작업을 서버 사이드(Server-side)에서 처리할지, 클라이언트 사이드(Client-side)에서 처리할지를 결정하는 것입니다. 이 글에서는 서버 사이드와 클라이언트 사이드의 차이점, 각 방식의 장단점, 그리고 어떤 상황에서 어떤 방식을 선택해야 하는지에 대해 살펴보겠습니다.
서버 사이드 프로그래밍은 웹 서버에서 실행되는 코드를 작성하는 것을 의미합니다. 이 코드는 클라이언트(사용자의 브라우저)에서 요청을 받을 때 실행됩니다. 서버 사이드 스크립트는 데이터베이스에 접근하고, 데이터를 처리하고, HTML 페이지를 동적으로 생성하는 데 사용됩니다.
즉 웹에서 서버와 클라이언트는 정해진 웹 페이지로 서로 커뮤니케이션을 한다고 볼 수 있다.
주요 언어 및 기술:
장점:
1. 보안: 중요한 로직과 데이터베이스 접근이 서버에서 처리되어 클라이언트에서 접근할 수 없습니다.
2. 데이터베이스 접근: 서버에서 직접 데이터베이스와 상호작용할 수 있어 데이터 처리와 저장이 용이합니다.
3. 호환성: 모든 클라이언트가 동일한 서버 측 코드를 실행하므로 브라우저 호환성 문제를 줄일 수 있습니다.
단점:
1. 서버 부하: 모든 처리가 서버에서 이루어지기 때문에 서버의 부하가 증가할 수 있습니다.
2. 응답 시간: 클라이언트가 요청을 보내고 서버가 응답할 때까지 시간이 걸릴 수 있습니다.
클라이언트 사이드 프로그래밍은 사용자의 브라우저에서 실행되는 코드를 작성하는 것을 의미합니다. 이 코드는 HTML, CSS, JavaScript로 작성되며, 사용자의 인터페이스를 조작하고 사용자와 상호작용합니다.
일반적으로 Chrome과 같은 웹브라우저는 굉장히 많은 메모리를 차지합니다.
단순히 탐색을 진행했을 뿐인데 다른 프로세스에 비해 굉장히 많은 메모리를 사용한다는 점에서 의문을 가질수 있습니다. 그 이유는 현재 Web쪽에 무거운 처리 대부분은 클라이언트 사이드 언어로 작업하기 때문입니다.
주요 언어 및 기술:
장점:
1. 빠른 응답: 서버에 요청을 보내지 않고 브라우저에서 바로 처리하므로 응답 속도가 빠릅니다.
2. 서버 부하 감소: 많은 작업을 클라이언트에서 처리함으로써 서버의 부담을 줄일 수 있습니다.
3. 향상된 사용자 경험: 애니메이션, 실시간 업데이트 등 사용자 인터페이스를 더욱 풍부하게 만들 수 있습니다.
단점:
1. 보안 문제: 클라이언트 사이드 코드가 브라우저에 노출되므로 보안에 취약할 수 있습니다.
2. 브라우저 호환성: 다양한 브라우저에서 동일하게 작동하도록 코드 작성이 어려울 수 있습니다.
3. 제한된 성능: 클라이언트의 기기 성능에 따라 처리 속도가 달라질 수 있습니다.