일반 사용자는 이 복잡한 내부를 굳이 알 필요 없이 어디서든 구름 속의 컴퓨터 자원으로 자신이 원하는 작업을 할 수 있다.
- OS 기능 제공
- 모바일 연동
- 어플리케이션 서비스 제공
- 데이터베이스 제공
과거 1980년대 전후하여 원격지에 있는 컴퓨터와 근처에 있는 단말기 사이에 있는 수많은 통신장비 및 네트워크를 구름 모양을 그려 간략하게 표현하였다. 이후 2000년대에 클라우드 컴퓨팅이 등장했지만 여전히 이 개념을 설명하기가 애매하여 구름 개념을 따온 것이 클라우드다.
클라우드라는 개념의 시초는 아마존이다. 현재까지 클라우드 1위 기업은 AWS(아마존 웹서비스 기업)이다.
이 웹호스팅 기능이 가상화 기술과 더불어 발전하면서 클라우드 컴퓨팅이라는 개념으로 발전하게 된다.
장점 : 기업의 비즈니스 정보를 보안성 높게 관리할 수 있다.
단점 : 시스템을 구축할 때 많은 시간과 비용이 필요하다.
어떤 프로그램을 3 계층으로 나누어 별도의 논리적/물리적 장치에 구축 및 운영하는 형태를 말한다.
- 사용자가 직접 마주하게 되는 계층
- 데이터를 사용자에게 보여주지만, 데이터를 가지고 있지는 않다.
사용자의 리퀘스트를 받아 데이터베이스에서 쿼리된 정보를 보여주는 것이 웹 서버이다. 주로 사용자 인터페이스를 지원하며 GUI 또는 프론트엔드 (front-end)라고도 부른다.
ex) HTML, JavaScript, CSS, 사진자료 등
- 요청되는 정보를 어떠한 규칙을 바탕으로 처리하고 가공하는 일을 담당한다. (동적인 데이터 제공)
- 비즈니스 로직을 담고 있다.
첫번째 계층 또는 클라이언트 계층 입장에서는 서버처럼 동작하고(응답), 세번째 계층 입장에서는 클라이언트처럼 동작한다(요청).
따라서 미들웨어(Middleware) 또는 백엔드(back-end)라고도 불린다.
ex) PHP, Java 등
- 데이터베이스에 접근하여 데이터를 읽거나 쓰고 관리한다.
주로 DBMS(Database Management System)이 이 계층에 해당된다.
데이터 계층 또한 백엔드(back-end)라고 불린다.
ex) MYSQL 등
장점
- 각 계층을 담당하는 팀을 구성해 업무 분담이 가능해지므로 업무 효율성이 증가한다
- 서로 다른 서버들을 구성하므로 리스크를 어느정도 완화할 수 있다.
- 서버 부하 감소. 경우에 따라 특정 계층의 서버에 대해서만 스케일업(Scale up)을 할 수도 있다.
단점
- 1 계층으로만 사용하는 것 대비 관리 포인트가 늘어나며 장애가 발생하는 포인트 또한 함께 늘어난다.
- 서비스 규모 및 사용자 증가에 따라 계층 구조를 설계 및 고려해야 한다.
컴퓨터 네트워크 기술의 일종으로 둘 혹은 셋 이상의 중앙처리장치 혹은 저장장치와 같은 컴퓨터 자원들에게 작업을 나누는 것을 의미한다.
더 빠른 속도의 CPU로 변경하거나, 더 많은 RAM을 추가하는 등 하드웨어 장비의 성능을 높이는 것. 수직 확장. 성능 확장에 한계가 있다.
(데이터의 정합성 때문)
하나의 장비에서 처리하던 일을 여러 장비에 나눠서 처리할 수 있도록 설계를 변경하는 것. 수평 확장. 지속적으로 확장이 가능하다.