코드스테이츠_국비교육/[Section2]

29.01_[네트워크] 웹 애플리케이션 작동 원리_기본 배경_22.09.30

생각없이 해도 생각보다 좋다. 2022. 9. 30. 22:03

//각 용어에 대한 깊은 내용은 따로 다루기로 하고, 흐름과 간략한 의미 파악을 위주로 진행

웹 앱과 네이티브 앱

>네이티브 앱, Native-Application

: 특정 기기에 설치해서 사용하는 애플리케이션

: 실행 환경에 종속적이다.

: 인터넷 환경은 무관하다.

//예시) 폰의 스토어에서  운동 기록 App을 설치. 폰에서만 활용 가능하다

  • 네이티브 앱 특징(장점)

: Web-App보다 빠르다.

//인터넷 속도랑 관련 없기 때문(설치한 기기 성능에 의존)
: App이 설치된 기기의 시스템(실행 환경)의 리소스에 접근이 용이함.
//예시) gps, 카메라 등
: 인터넷 없이 사용 가능하다.

//설치만하면 언제든 킬 수 있음.
: Web-App에 비해서 안전하다.
//예시) 모바일의 경우, 앱스토어의 승인을 받아야 함.

  • 네이티브 앱 특징(단점)

: 애플리케이션을 설치한 실행 환경에 종속됨.
//예시) 아이폰(Apple iOS)전용 애플리케이션은 아이폰에 설치(네이티브 애플리케이션)하여 쓸 수 있지만, Windows에서는 사용 불가능하다.
: Web-App에 비해 개발비가 더 많이 들어간다.
//예시) 아이폰 용 App을 안드로이드에서 쓸 수 있게 멀티 플랫폼 개발을 추가로 해야함.
: 빠른 업데이트가 힘듬.

//업데이트도 스토어의 승인을 받아야하기 때문
: 앱스토어에 승인 받기가 힘들고 비용이 많이 든다.

//안전한만큼 엄격한 절차를 통해 승인됨.

>웹 앱, Web-Application

: 인터넷 환경에서 웹 브라우저를 이용하는 애플리케이션

: 인터넷이 필수적이다.

: 실행 환경은 무관하다.

  • 웹 앱 특징(장점)

: 설치나 다운로드가 필요 없다.

//브라우저를 통해 실행되기 때문
: 업데이트 등의 유지관리가 쉽다.

//따로 승인 절차 없이 인터넷을 통해 편하게 관리
: Native-App보다 만들기가 비교적 쉽다.
: 앱스토어 승인이 필요없다.

  • 웹 앱 특징(단점)

: 인터넷이 필수적이다.

//없으면 당연히 사용 불가
: Native-App보다 속도가 느리다

//인터넷 속도에 영향을 받는다.
: 앱스토어와 같은 관리 시스템이 없기 때문에 사용자 접근성이 떨어질 수 있다.

//사용자가 필요한 앱을 찾아서 구해야한다.
: 퀄리티와 보안에 문제가 있을 수 있다.

//따로 관리하는 시스템 체계가 없기 때문

 

>웹 사이트와 웹 앱의 차이

  • 웹 사이트

: 말 그대로 정보를 출력만 하는 웹 페이지를 모아놓은 사이트

: 검색, 댓글 달기 등과 같은 기능이 전혀 없이 그저 정보만 보여주는 정적인 웹 페이지의 모음

  • 웹 앱

: 웹 브라우저에서 이용하는 모든 애플리케이션

: 현재 우리가 웹 사이트로 알고 있는 것들은 대부분 웹 애플리케이션이다.

: 정확히는 웹 사이트들이 이제는 당연하게 다양한 웹 애플리케이션을 사용한다.

: 때문에 지금의 웹 사이트는 검색, 댓글 달기 등 사용자와 상호 작용하는 동적인 사이트이다.

//위와 같은 이유로 현재는 웹 사이트와 웹 애플리케이션을 크게 구분하지는 않는다.

네트워크

>LAN, WAN

  • LAN, Local Area Network

: 지역 네트워크, 말그대로 근거리 통신망

: 공유기 혹은 스위치를 이요해서 근거리 지역에서 사용하는 네트워크

: 랜선으로 연결하여 사용

//같은 피시방에 가서 친구들끼리 스타로 LAN에서 게임 하던게 LAN을 사용한 예시

  • WAN, Wide Area Network

: LAN과 LAN을 이어서 광범위하게 구성된 네트워크

: 실제로 인터넷 선을 매립하여 육로를 통해 연결하거나, 심지어는 해저로 연결하여 나라간에도 이어져있다.

: 위와 같은 서비스를 통신사에서 구축하여 제공하고 우리는 이에 인터넷 비용을 지불하는 것.

>Internet (Internetworking)

: 인터네트워킹(Internetworking)에서 유래된 단어

: 여러 네트워크를 연결하는 방식으로 확장시킨 네트워크

: 하나의 네트워크에 문제가 생겨도 나머지 네트워크는 정상 작동

: 개별 네트워크로 따로 관리하므로 유지 보수가 쉬움

>IP

: Internet Protocol

: TCP/IP 구조에서 컴퓨터를 식별하기 위해 사용되는 주소

: 네트워크 장비에 각각의 IP 주소가 할당된다

//예시) 휴대전화, 서버, 인터넷 라우터 등(자동 설치, 제거 불가능)

: xxx.xxx.xxx.xxx와 같이 .을 기준으로 네 덩이의 숫자로 표현된다.

: 네 덩이의 숫자 IP를 IPv4(IP version 4)라고 한다.

: IPv4로 할당하는데 한계가 와서 현재 IPv6도 있지만, 아직까지는 IPv4로 사용을 많이 한다.

>TCP와 UDP 비교(자세한 내용은 별도)

  • TCP, Transmission Control Protocol

: 연결 지향적 프로토콜

: 전송 받을 기기까지 데이터가 전송되는 것이 보장된다.

//누락이 없다, TCP 3-way handshake

: UDP에 비해 상대적으로 속도가 느리다

//신뢰도가 높은 만큼 검사하는 과정 때문에 그렇다

: 데이터의 신뢰성을 요구하는 애플리케이션에서 사용된다.

//예시) 대부분의 웹 HTTP 통신, 파일 전송 등

  • UDP, Use Datagram Protocol

: 데이터그램 지향적 프로토콜

: 전송 받을 기기까지 데이터가 전송되는 것이 보장되지 않음

//누락이 있을 수 있다. 하지만 그만큼 효율적이고 빠르기 때문에 사용된다.

: UDP에 비해 상대적으로 속도가 빠르다

//신뢰도가 높은 만큼 검사하는 과정이 없다.

: 실시간 통신, 빠른 속도를 추구하는 애플리케이션에서 사용된다.

//예시) 유튜브 스트리밍(각종 스트리밍도 해당)

>Domain Name과 DNS

  • Domain Name

: 기억하기 어려운 IP주소를 대신하는 이름

//비유) 도로명 주소=IP주소, 가게 상호명=도메인 네임

//택시, 똑같이 도착함!

???: 아저씨, (도로명 주소)로 가주세요~

???: 아저씨, (가게 이름)로 가주세요~

//하단 그림 참고, domain부분

//나머지 내용은 따로 공부~

  • DNS

: Domain Name System

: 도메인을 검색하면 IP 주소를 찾고, IP주소를 도메인으로 변환해주는 데이터베이스 시스템