서버 / MVC / AWS / SPA

🪐 C:on·2021년 8월 8일
0

Development_sense

목록 보기
1/6

서버


우리는 네이버나 구글에 접속하면 보이는 글, 사진 등 정보들은 우리 컴퓨터에 들어있는 것이 아닌 서버로부터 제공받는 것을 어렴풋이 알고있다.

즉, 서버란 우리 노트북과 같은 컴퓨터로 무언가를 serve해주는 컴퓨터라는 하나의 역할을 뜻한다.

따라서 우리 개인 컴에도 서버 역할을 하는 소프트웨어를 깔고 외부에서 특정 주소로 접속해올 수 있도록 설정하면 서버가 되지만 통신의 질이나 컴퓨터 다운 가능성 등의 한계가 있기 때문에 보통은 인터넷데이터센터(IDC) 라는 시설에 있는 수많은 서버역할을 하나 컴퓨터의 한 서버를 빌려 쓰거나 AWS같은 클라우드 서버를 사용한다.


IDC서비스센터



MVC 웹 프레임워크


무언가가 거대해지고 복잡해질 때는 특정기준으로 분리, 모듈화를 하는 것이 편하다.

이런 이유로, 웹사이트는 Model, View, Controller 인 MVC란 접근법이 사용된다.

1. Model

데이터베이스에 데이터를 다룰 때, 데이터의 형식을 지정하고 저장하고 불러오는 작업들에 관한 코드들이 이루어지는 파트이다.

2. View

사용자들이 볼 수 있는 html, css 등의 요소가 작성되는 파트이다.

3. Controller

Model과 View를 연결해주는 역할로, 사용자가 GUI 화면을 통해 데이터를 읽고 쓰고 지울 수 있도록 전반적 제어를 담당한다.

이런 구조를 코드로 기본 골격을 한번 짜고 나면 내 사이트를 개발하는 일이 수월해지겠지만 이런 구조를 만드는데 오랜시간이 걸린다.

그래서 이런 구조를 미리 만들어 놓은채로 사용자들이 개발만 할 수 있도록 하는 것이 웹 프레임워크이다.

건축을 예로 들면 건물의 기초 골격과, 수도, 전기, 난방이 다 설치된 채로 사용자는 그 건물을 덧붙이고 개조하기만 하면 집을 완성시킬 수 있는 것이다.

라이브러리와 프레임워크의 차이점

라이브러리 는 하나의 주제에 관해 만들어 놓은 여러 함수 중에서 어떤 특정 기능만을 가져와서 사용할 수 있는 것이다.

프레임워크 는 미완성의 기반 구조를 의미하여 여기에 개발자가 코드를 덧붙여서 원하는대로 최종본을 완성시키는 것이다.

Django 에서는 특이하게 MVC라 하지않고 MTV라고 하는데
M은 동일하게 model을 의미한다.
T는 Templates로 View역할을 한다. Templates라는 폴더에는 보통 html파일이 저장된다.
V는 Views.py는 Templates에서 호출하는 함수를 작성하는 곳으로 Controller 역할을 한다. urls.py을 거쳐 views.py의 render함수 같은 것을 통해 html을 가져오거나, DB에 CRUD를 수행한다.



AWS 클라우드 컴퓨팅


인터넷 서비스를 개발할 때, 서버를 두는 방식은 보통 두가지로 볼 수 있다.

  1. 회사가 자사의 IDC에 자체적으로 서버를 두고 운영하는 온프레미스 방식.

  2. 대기업의 서버를 빌려서 서비스를 개발하는 방식인 클라우드 컴퓨팅.

가상 컴퓨팅을 사용하면 물리적 컴퓨터 한대에 여러대의 가상 컴퓨터를 만들 수 있다.

시간이나 접속량에 따른 종량제로 운영되기 때문에 필요한 만큼 클라우드의 자원을 쓰고 돈을 지불하기만 하면 되므로 접속량이 급변하는 서비스의 경우 매우 편리하다.

추가로 데이터베이스, 자료백업, 스토리지, 자동화, 머신러닝, 블록체인까지 검증된 최고급 프로그래머들이 구현해 놓은것을 서비스로 이용할 수 있다. (몰론 비용이 추가로 발생)

이러한 장점으로 시스템 엔지니어, DB전문가 같은 고급인력을 따로 고용할 필요없고 글로벌한 서비를 할 때도 각국 사업소들로부터의 정보를 실시간으로 통합하고, 거점마다 IT 인력을 배치할 필요가 없어진다.

클라우드는 다음과 같이 3가지 단계로 나눠진다.

1. IaaS

이스라고 하며, 하드웨어 자원의 일부를 떼어주는 것이다. 내가 직접 가상서버 하나를 운영하고 관리한다. 내가 리눅스 좀 다룰 수 있다 하면 이 클라우드 상품을 사용하면 된다.

2. PasS

패스라고 하며, 가상서버도 관리를 해주기 때문에 코드만 짜면 배포를 할 수 있다.

3. SaaS

쎄스라 하며 유튜브, 구글드라이브처럼 이미 만들어지고 배포된 서비스에 내가 데이터를 등록하고 수정하고 하는 것을 말한다.



Angular, React, Vue


SPA 프론트엔드 프레임워크Single Page Application 의 준말이다.

이것은 MVC가 등장하고 발전하면서 또 다른 수요와 필요가 발생하면서 등장했다.

오래된 웹사이트에서 좋아요를 하나 눌렀다고 페이지가 새로고침되는 현상을 본 적이 있을 것이다.

이것은 MVC 동작이 이뤄지기 때문에 발생하는 현상이다.

이처럼 옛날에는 서버와 통신해서 사이트 화면에 뭔가 변화를 주려면 페이지를 통쩨로 다시 로드해야 했다.

이제는 자바스크립트로 주어진 데이터에 따라 HTML 웹페이지를 렌더링 하여 기존의 동적 웹에서 서버가 완성된 페이지를 주던 일을 이제는 사용자의 컴퓨터에서 브라우저가 해낼 수 있게 되었다.

그래서 SPA는 서버가 아닌 사용자의 컴퓨터 브라우저에서 돌아가며 서버에서 데이터를 받아와야 할 때마다 요청을 보내서 반환된 데이터로 사이트를 갱신해서 불필요한 새로고침을 방지한다.



0개의 댓글