서버 사이드
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
서버 사이드는 사용자의 로컬 컴퓨터나 스마트폰 등에서 접근 가능한 원격 서버에서 실행되는 컴퓨터 응용 프로그램이다. 클라이언트 측에서 접근할 수 없는 정보나 기능에 대한 접근, 또는 클라이언트 측에서 수행 시 신뢰성, 보안 등의 문제로 인해 서버 측에서 조작을 수행한다. 서버 사이드 조작은 클라이언트의 요청에 따라 수행되거나 유지보수 작업처럼 클라이언트에 의존하지 않고 수행되기도 한다. 서버는 데이터 위조 방지, 클라이언트의 처리 부담 감소 등의 장점을 가지지만, 서버의 처리 부담 증가로 서버 비용이 늘어날 수 있다는 단점도 있다. 컴퓨터 보안 측면에서 서버 측 취약점이나 공격은 서버의 컴퓨터 시스템에서 발생하거나 중간자 공격을 의미하며, SQL 인젝션, 운영체제 취약점 등을 이용한 공격이 존재한다. 웹 개발, 분산 컴퓨팅, 온라인 게임 등 다양한 분야에서 활용되며, C#, Java, PHP, Python 등 다양한 프로그래밍 언어로 구현될 수 있다.
더 읽어볼만한 페이지
- 서버 - 슈퍼 서버
슈퍼 서버는 TCP 래퍼를 통해 접근 권한을 확인하고 필요에 따라 다른 서버 프로그램을 시작하여 메모리 사용량 감소 및 시스템 관리 효율성을 높이지만, 높은 연결 요청 빈도에서는 성능 저하를 유발할 수 있으며, inetd, launchd, systemd, ucspi-tcp, xinetd 등이 대표적인 구현체이다. - 서버 - 씨마이크로
씨마이크로는 2007년 설립되어 투자 유치 후 AMD에 인수된 서버 개발 회사로, SM10000, SM15000 시리즈 등의 제품을 개발하고 버라이즌과의 협력 및 여러 수상 경력을 보유하고 있다.
서버 사이드 | |
---|---|
서버 사이드 | |
유형 | 컴퓨팅 |
상세 정보 | |
개요 | 서버 측(server-side)이라는 용어는 일반적으로 서버에서 발생하거나 서버에서 수행되도록 지정된 작업과 관련된 컴퓨팅 용어이다. 클라이언트-서버 모델에서 서버는 클라이언트에 서비스를 제공하기 위해 대기하는 컴퓨터 프로그램이다. 서버의 종류에는 파일 서버, 데이터베이스 서버, 메일 서버, 프린트 서버, 웹 서버, 게임 서버 및 기타 서버가 있다. |
서버 사이드 스크립트 | 서버 사이드 스크립팅은 웹 서버에서 실행되는 기술로, 클라이언트의 웹 브라우저에서 실행되는 클라이언트 사이드 스크립팅과는 대조된다. 서버 사이드 스크립팅을 사용하여 웹 페이지의 출력을 클라이언트의 요청, 인증 상태 또는 권한에 따라 사용자 정의할 수 있다. 서버 사이드 스크립팅을 사용하는 웹 페이지를 동적 웹 페이지라고 한다. |
예시 | Active Server Pages (ASP/ASP.NET) ColdFusion JSP Node.js PHP Perl Python Ruby on Rails |
클라이언트 사이드와의 비교 | |
클라이언트 사이드 | 서버 사이드와 반대되는 개념 |
2. 일반적인 개념
HTTP 통신에서 브라우저의 주요 기능 중 하나는 서버에서 HTML 문서를 받는 것이다. 브라우저가 요청한 HTML 문서에 PHP와 같은 서버 사이드 스크립트 언어가 포함되어 있으면, 서버는 이 부분을 처리하여 그 결과를 브라우저에 보낸다.[13]
서버 사이드 처리 방식은 클라이언트 사이드 처리 방식과 비교했을 때 다음과 같은 장단점을 갖는다.
MMORPG에서도 클라이언트-서버 구조가 사용된다. 대부분의 게임에서는 캐릭터와 아이템 정보의 위조를 막기 위해 서버에서 처리한다.[13]
일반적으로 서버는 사용자의 로컬 컴퓨터나 스마트폰 등에서 접근 가능한 원격 서버에서 실행되는 웹 서버와 같은 컴퓨터 응용 프로그램이다. 서버의 조작은 클라이언트에서는 이용할 수 없는 정보나 기능에 대한 접근을 필요로 하거나, 클라이언트 측에서 그러한 조작을 수행하면 느리고, 신뢰성이 떨어지거나, 컴퓨터 보안상 안전하지 않기 때문에 서버 측에서 수행하는 경우가 있다.
클라이언트와 서버 프로그램은 무료 또는 상용 웹 서버나 웹 브라우저 등 일반적으로 사용 가능한 것으로, 표준화된 통신 프로토콜을 사용하여 서로 통신한다. 또한, 프로그래머는 독자적으로 서버, 클라이언트, 통신 프로토콜을 작성하여 서로만 사용할 수도 있다.
서버 사이드 조작에는 클라이언트의 요구에 따라 수행하는 것과 유지보수 작업처럼 클라이언트에 의존하지 않는 것이 있다.
3. 장단점
3. 1. 장점
데이터를 서버 사이드로 처리할 경우의 장점은 다음과 같다.3. 2. 단점
서버 관리자 입장에서 서버의 처리 부담이 커져 결과적으로 서버 비용이 늘어날 수 있다.[1]
4. 컴퓨터 보안
컴퓨터 보안 관점에서 서버 측 취약점 또는 공격은 클라이언트 측이 아닌 서버의 컴퓨터 시스템에서 발생하는 것, 또는 중간자 공격을 의미한다. 예를 들어, 공격자는 웹 애플리케이션의 SQL 인젝션 취약점을 악용하여 서버의 데이터베이스 내 데이터를 악의적으로 변경하거나, 부정한 접근을 획득할 수 있다. 또는 공격자는 기본 운영 체제의 취약점을 이용하여 서버 시스템에 침투하여 서버의 권한 있는 관리자와 같은 방식으로 데이터베이스나 기타 파일에 접근할 수 있다.[5][6][7]
5. 예시
HTTP 통신에서 브라우저의 주요 기능 중 하나는 서버에서 HTML 문서를 받는 것이다. 브라우저가 요청한 HTML 문서에 PHP 등의 서버 사이드 스크립트 언어가 포함되어 있으면, 서버는 이 부분을 처리하여 결과를 브라우저에 보낸다.
MMORPG에서도 클라이언트-서버 구조가 사용된다. 대부분의 게임에서는 게임 캐릭터 정보와 게임 아이템 정보의 위조를 방지하기 위해 서버 사이드로 처리한다.[13]
SETI@home이나 GIMPS 등의 분산 컴퓨팅 프로젝트에서는, 작업 대부분은 클라이언트 측에서 이루어지지만, 서버는 클라이언트 조정, 분석할 데이터 송신, 결과 수신과 저장, 프로젝트 관리자에게 보고하는 기능을 담당한다. 구글 어스와 같이 인터넷에 의존하는 사용자 애플리케이션의 경우, 지도 데이터 질의 및 표시는 클라이언트 측에서 이루어지지만, 서버는 지도 데이터를 영구적으로 저장하고, 사용자 질의를 지도 데이터로 변환하여 클라이언트에 반환하는 역할을 담당한다.
월드 와이드 웹 관점에서, 서버 사이드 컴퓨터 언어에는 여러 가지가 있다.[8] 웹 애플리케이션이나 웹 서비스는 표준 기반의 웹 브라우저에 데이터를 반환할 수 있다면, 거의 모든 언어로 구현할 수 있다.
5. 1. 웹 개발
HTTP 통신에서 브라우저의 주요 기능 중 하나는 서버에서 HTML 문서를 받는 것이다. 브라우저가 요청한 HTML 문서에 PHP 등의 서버 사이드 스크립트 언어가 포함되어 있으면, 서버는 이 부분을 처리하여 결과를 브라우저에 보낸다.[13]월드 와이드 웹 관점에서 일반적으로 사용되는 서버 사이드 컴퓨터 언어는 다음과 같다.[8]
웹 애플리케이션이나 웹 서비스는 표준 기반의 웹 브라우저에 (아마도 중간 프로그램을 통해) 데이터를 반환할 수 있다면, 거의 모든 언어로 구현할 수 있다.
5. 2. 분산 컴퓨팅
SETI@home나 GIMPS 등의 분산 컴퓨팅 프로젝트에서는, 작업 대부분은 클라이언트 측에서 이루어지지만, 서버는 클라이언트 조정, 분석할 데이터 송신, 결과 수신과 저장, 프로젝트 관리자에게 보고하는 기능을 담당한다. 구글 어스와 같이 인터넷에 의존하는 사용자 애플리케이션의 경우, 지도 데이터 질의 및 표시는 클라이언트 측에서 이루어지지만, 서버는 지도 데이터를 영구적으로 저장하고, 사용자 질의를 지도 데이터로 변환하여 클라이언트에 반환하는 역할을 담당한다.5. 3. 온라인 게임
MMORPG(대규모 다중 사용자 온라인 롤플레잉 게임)에서도 클라이언트-서버 구조가 사용된다. 대부분의 게임에서는 게임 캐릭터 정보와 게임 아이템 정보의 위조를 방지하기 위해 서버 사이드로 처리한다.[13] 데이터를 서버 사이드로 처리할 경우의 장단점은 다음과 같다.- 장점:
- 서버 관리자: 데이터 위조 가능성을 줄일 수 있다. 서버 쪽 데이터가 확실한 진위이며 클라이언트 쪽에서 위조해서는 안 되는 민감한 데이터(예: 인터넷 뱅킹 이체, MMORPG 게임 아이템 관련 처리)는 서버 사이드로 처리해야 한다.
- 클라이언트 사용자: 클라이언트 컴퓨터의 처리 부담이 줄어든다.
- 단점:
- 서버 관리자: 서버의 처리 부담이 커져 서버 비용이 늘어날 수 있다.
6. 관련 항목
- 클라이언트 사이드
- 서버 사이드 스크립트
- 서버 사이드 인클루드
참조
[1]
웹사이트
What are the differences between server-side and client-side programming?
http://softwareengin[...]
2016-12-13
[2]
서적
Computer Security Basics
https://books.google[...]
O'Reilly Media
2017-07-07
[3]
웹사이트
Week 4: Is There a Difference between Client Side and Server Side?
https://n3tweb.wordp[...]
2017-07-07
[4]
웹사이트
Decoding the Hack
https://www.alpinese[...]
2017-07-07
[5]
서적
Computer Security Basics
https://books.google[...]
O'Reilly Media
2017-07-07
[6]
웹사이트
Week 4: Is There a Difference between Client Side and Server Side?
https://n3tweb.wordp[...]
2017-07-07
[7]
웹사이트
Decoding the Hack
https://www.alpinese[...]
2017-07-07
[8]
웹사이트
What are the differences between server-side and client-side programming?
http://softwareengin[...]
2016-12-13
[9]
웹인용
What are the differences between server-side and client-side programming?
http://softwareengin[...]
2016-12-13
[10]
서적
Computer Security Basics
https://books.google[...]
O'Reilly Media
2017-07-07
[11]
웹인용
Week 4: Is There a Difference between Client Side and Server Side?
https://n3tweb.wordp[...]
2017-07-07
[12]
웹인용
Decoding the Hack
https://www.alpinese[...]
2017-07-07
[13]
문서
블리자드 엔터테인먼트사의 게임 「디아블로 (비디오 게임)」의 멀티플레이 모드는 MMORPG의 형태를 취하는데, 게임 캐릭터와 아이템 정보를 클라이언트 사이드로 처리하고, 클라이언트 컴퓨터에 저장하기 때문에 해당 정보의 위조가 매우 쉽다. 이는 후속편 「디아블로 II」에서는 거의 나타나지 않는 문제인데, 「디아블로 II」에서는 해당 정보를 대부분 서버 사이드로 처리하기 때문이다.
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com