CS(computer science)

컴퓨터네트워크 - 애플케이션 계층 (간단 맛보기)

ebang 2022. 12. 4. 22:56
반응형

1. 애플리케이션이란

- 컴퓨터 네트워크 계층 측면에서 보면 가장 상위에 있는 계층이다. 

인터넷 애플리케이션에는 1970년대에 등장했던 텍스트 전자메일, 컴퓨터로의 원격 접속 등을 포함해서

1990년대 중반에 나온 월드와이드앱(www : 웹서핑, 검색, 전자상거래 등을 포괄한다. ), 그리고

요즘에는 유튜브처럼 사용자가 만든 비디오 분배, 넷플릭스 같은 온디맨드 영화, 또는 구글 행아웃 같은 비디오 콘퍼런싱,

마지막으로 인스타그램, 페이스북과 같은 소설 네트워킹 애플리케이션도 이 계층에 속한다.

 

2. 애플리케이션 개발.

네트워크 애플리케이션 개발의 중심은 다른 위치의 '종단 시스템'에서 동작하고 네트워크를 통해 서로 통신하는 프로그램을 작성하는 것이다.

예를 들어 웹 애플리케이션에는 서로 통신하는 서버와 클라이언트로 구별되는 두가지 프로그램이 있는데, 사용자의 호스트(데스크톱, 랩톱, 태블릿, 스마트폰 등)에서 실행되는 브라우저 프로그램과 웹 서버 호스트에서 실행되는 웹 서버 프로그램이다.

넷플릭스 같은 온디맨드 비디오 애플리케이션(Video on Demand, Vod)에는 사용자의 스마트폰, 태블릿, 컴퓨터상에서 실행되는 넷플릭스 제공 프로그램과 넷플릭스 서버 호스트에서 실행되는 넷플릭스 서버 프로그램이 존재한다.

 

3. 애플리케이션에서 네트워크 

애플리케이션 개발자 관점에서 네트워크 구조는 고정되어있고 해당 애플리케이션에 특정 서비스 집합을 제공한다.

 

우리가 새로운 애플리케이션을 개발할 때는 여러 종단 시스템에서 실행되는 소프트웨어를 작성해야 한다.

소프트웨어는 C, 자바 혹은 파이썬 등으로 작성하는데, 중요한 것은 우리가 네트워크 상에서 실제로 데이터가 어떻게 전송되는지까지 고려하면서 개발을 할 필요가 없다는 것이다. 애플리케이션 개발자 관점에서 네트워크는 특정 서비스를 제공하는 구조일 뿐이다. 

이처럼 '종단 시스템'에만 애플리케이션 소프트웨어가 존재한다는 기본 설계 방식은 인터넷 애플리케이션들이 빠르고 널리 발전하는 원동력이 되었다.

 

4. 애플리케이션 구조

 애플리케이션 구조를 선택할 때 애플리케이션 개발자이는 클라이언트- 서버 구조 혹은 P2P구조를 선택한다. 

 

4-1. server- client 구조

클라이언트- 서버 구조에서 항상 동작하고 있는 호스트를 서버(server)라고 부르는데, 서버와의 서비스는 클라이언트(client)라는 다른 호스트들로부터 서비스 요청을 받는다.

서버는 항상 동작하고 있으므로 클라이언트는 서버 주소로 패킷을 보내서 언제든지 서버에 연결할 수 있다.

반면에 클라이언트 호스트는 가끔 또는 항상 켜져 있을 수 있다.

 

예를 들면 클라이언트 호스트에서 실행되는 브라우저에서 웹 서버로 서비스를 요청하는 웹 애플리케이션이 있다고 하자.

웹 서버가 클라이언트 호스트로부터 객체를 요청받으면 웹 서버는 요청된 객체를 클라이언트 호스트로 보내면서 응답한다. 이러한 구조에서 클라이언트는 서로 직접적으로 통신하지 않는다.

 

클라이언트- 서버 구조의 또 다른 특징은 서버가 고정 IP주소라는 잘 알려진 주소를 갖는 다는 점이다.

이 구조로 이루어진 애플리케이션으로는 웹, 파일전송, 원격 로그인, 전자메일이 있다.

 

* 데이터 센터

요즘에는 서버가 데이터 센터로 되어있기도 하다. 

데이터 센터가 있기로 유명한 구글 같은 경우 전세계에 19개 정도의 데이터 센터가 하나 당 10만 개의 서버를 갖추어서 강력한 서버의 역할을 대신한다 . 이걸로 유튜브나 지메일, 다른 서비스들을 한번에 관리한다. 

이외에도 아마존, 인스타그램같은 인터넷 상거래 사이트나 SNS 서비스들도 데이터 센터를 사용하기도 한다. 

이렇게 데이터 센터로 만드는 이유는 때로는 클라이언트- 서버 애플리케이션에서 하나의 서버 호스트가 자신의 클라이언트로부터 오는 모든 요청에 다 응답하는 것은 불가능하기 때문이다.. 예를들어 인기있는 새로운 웹사이트가 하나의 서버로만 요청을 처리한다면 이에 맞춰 서버가 신속하고 제대로 작동하지 못할 수 있다.

 

 

4-2. P2P구조

서버가 매번 켜져있어서 client에게 응답해야 하는 server -client 구조와 다르게 client 끼리도 통신할 수 있게 한 것이 P2P구조이다. 파일 공유 시스템이라서 한 피어의 프로세스에서 다른 피어의 프로세스로 파일을 전송할 수 있다. 

반응형