서버?
컴퓨터네트워크에서 다른 컴퓨터에 서비스를 제공하기 위한 컴퓨터 또는 소프트웨어를 뜻한다.
[서버와 클라이언트 관계]
- 클라이언트는 서버에게 정해진 규칙에 따라 정보 및 서비스를 요청한다. 서버는 그 요청에 대한 데이터를 만들어서 응답한다.
[서버의 구조 - 웹서버, Back-End Language, DB (DBMS)]
Back-End Language : java(Spring), JavaScript(Node.js), Django(python)
DB: MySql, MongoDB, MariaDB
서버: nginx, apache
- apache는 월드와이드웹 서버용 소프트웨어이다. 현재, 세계에서 가장 인기있는 웹 서버이다.
- java는 대표적인 객체지향 프로그래밍 언어이다.
- spring은 자바 플랫폼을 위한 오픈소스 어플리케이션 프레임워크로서 엔터프라이즈급 애플리케이션을 개발하기 위한 모든 기능을 종합적으로 제공하는 경량화된 솔루션이다. spring은 대한민국 공공기관의 웹 서비스 개발 시 사용을 권장하고 있는 전자정부 표준프레임워크이다. spring의 장점은 기본 뼈대를 흔들지 않고, 여러 종류의 프레임워크를 혼용해서 사용할 수 있다. 또, 정형화가 비교적 잘 되어있어 일정수준 이상의 품질을 기대할 수 있다.
- javascript는 인터프리터 언어이기 때문에, 자바와 같이 컴파일이 필요한 다른 프로그래밍 언어에 비해 시간이 적게 소요된다. javascript는 처음에 비인기 언어였지만, 현재 모든 브라우저들이 거의 javascript로 구성되고, 개발자들이 웹을 위한 동적 컨텐츠를 개발하는데 드는 비용을 절약하게 해준다. 하지만 단점도 있다. javascript의 코드는 어느 유저나 볼 수 있어, 인증없이 구현된 코드를 누구든지 사용 가능하다.
- node.js는 확장성 있는 네트워크 애플리케이션 개발에 사용되는 소프트웨어 플랫폼이다. 자바스크립트를 활용하여 non-blocking i/o와 단일 스레드 이벤트 루프를 통한 높은 처리 성능을 가지고 있다. 하지만 node.js는 이벤트 기반 비동기방식이기에 서버단 로직이 복잡한 경우 콜백함수의 늪에 빠질 수 있다.
- mysql은 오픈소스 데이터베이스이다. mysql 서버는 다른 DBMS에 비해서 상당히 작고 빠르다. 운영체제의 대부분을 지원하기 때문에, 누구나 쉽게 설치가 가능하다.
- mongoDB는 Nosql 데이터베이스 종류 중 하나이며, 전통적인 테이블-관계 기반의 RDBMS가 아니며 SQL을 사용하지 않는다. mysql의 테이블 같은 스키마가 고정된 구조 대신 JSON 형태의 동적 스키마형 문서를 제공한다. 따라서, document는 JSON 형태의 key-value 쌍으로 이루어진다. 하지만 mongoDB는 join을 사용할 수 없다는 단점이 있다.
- MariaDB는 SQL 데이터를 동시에 처리하는 데 사용되는 응용 프로그램이다. 이 프로그램은 오픈소스이며, 이식성이 뛰어나다. 또한, 다중 사용자가 이용가능하고, 보안 기능도 뛰어나다. 하지만 MariaDB는 저장된 데이터가 이미 임계값에 있거나 서버가 수용할 수 있는 용량을 초과하는 경우 데이터 저장에 제한이 있다.
[웹 서버 VS 웹 애플리케이션 서버]
웹 서버는 인터넷을 기반으로 클라이언트에게 웹 서비스를 제공하는 소프트웨어이다. WAS는 php, jsp, asp와 같은 언어들을 사용해 동적인 페이지를 생성할 수 있는 서버로서, 프로그램 실행 환경과 DB 접속 기능 제공한다. 웹 어플리케이션 서버(WAS)는 웹 서버와 웹 컨테이너가 합쳐진 것이다. 여기서 컨테이너란 jsp, servlet을 실행시킬 수 있는 소프트웨어를 말한다.
'CS > 네트워크' 카테고리의 다른 글
3-tier architecture (0) | 2024.06.26 |
---|---|
DHCP (0) | 2023.01.05 |
네트워크 CS 예상 문제 (0) | 2022.08.05 |
포트 (0) | 2022.04.09 |
네트워크 계층, 패킷, Domain (0) | 2022.04.09 |