본문 바로가기

러닝커뮤니티/웹프로그래밍

인터넷과 웹앱의 기본 이해

1. 인터넷의 정의와 역사

인터넷이란

  • inter + Network의 합성어
  • 작은 네트워크라도 인터넷과 연결될 수 있으면 모두 인터넷이라 정의
  • 정보 공유를 위해 컴퓨터와 통신망을 연결한 최대의 네트워크
  • 많은 통신망으로 구성된 거대한 통신

 

인터넷의 역사

  • 군사적 목적->학술적 목적->상업적 용도
  • ARPAnet:
    - 현재 인터넷의 시초
    - 패킷교환 방식의 TCP/IP 프로토콜을 개발하여 적용된 네크워크
  • NSFnet
  • INTERnet

2. 인터넷 프로토콜

프로토콜(Protocol)

  • 컴퓨터나 통신 장비 사이에서 메세지를 주고 받는 양식과 규칙 체계
  • 쉽게 말해 인터넷을 이용하는 사용자들간의 규약, 약속을 뜻힘

 

패킷 전송 방식

  • 큰 용량의 정보를 작은 단위의 패킷으로 나누어 전송하는 방법
  • 데이터가 일정한 크기로 나누어진 단위를 '패킷'이라고 부름

 

프로토콜의 종류 - TCP/IP

  • TCP(Transmission Control Protocol)
    - 송신자와 수신자 사이의 '전송' 단계에서 패킷의 주소와 내용을 담당하는 프로토콜 
  • IP(Internet Protocol)
    - 패킷을 목적지까지 보내는 규칙을 정의한 프로토콜
    - 절대 주소라고도 하며 숫자와 '.'으로 구성됨
    - 각 서버 컴퓨터마다 유일한 IP주소를 부여 받아 다른 컴퓨터들과 구별할 수 있음 

인터넷의 위의 사진과 같은 통신 원리로 자료를 주고 받고 있음 


3. 웹의 정의와 구조

웹(web)이란?

  • (WWW): World Wide Web의 줄임말 
    - 인터넷에 연결된 컴퓨터를 통해 사람들이 정보를 공유할 수 있는 전 세계적인 정보 공간 
    - 메일, 정보검색, 교육, 인트라넷 등으로 활용
    - Web을 위한 프로토콜: HTTP
  • DNS: Domain Name System
    - 도메인( ip는 외우기가 어려워 영문이나 한글 이름인 도메인을 사용하게 됨)을 컴퓨터가 알기 쉬운 ip주소로 변환하는 역할(또는 반대 역할)
  • 웹 접속 과정

1) 클라이언트(사용자)가 [웹 브라우저 -> 운영체제 -> 하드웨어]를 통해 접속 요청을 보냄

2) DNS Server를 거져 원하는 서버의 ip 주소를 획득하여 접속

3) 얻은 정보를 통해 [하드웨어 -> 운영체제 ->  웹 서버]를 접속, 서버에 있는 index.html 파일을 찾아서 다시 클라이언트에게 전송 

 

클라이언트가 단순히 웹 브라우저르 통해 요청한 정보는, 위와 같은 과정을 거쳐

서버에 접속한 후, 정보를 획득하여 다시 사용자가 볼 수 있도록 웹 브라우저에 출력됨

 

웹의 동작

- 사용자는 웹 브라우저를 통해 웹 서버에 접속하여 원하는 정보를 획득할 수 있음 

- 웹 브라우저: 인터넷 익스플로러, 크롬, 사파리 

사용자가 브라우저 실행 -> 웹 접속 -> 웹 서버 정보 획득 ->  브라우저가 획득한 정보를 사용자가 보기 편한 형태의 결과로 출력

>> 웹 접속과 실행을 위해 프론트 엔드와 백 엔드의 역할이 필요 

 

-프론트 엔드: 웹의 외관적으로 보이는 부분 담당

  • HTML: 웹 페이지의 기본 구조 담당
  • CSS: 웹의 스타일을 담당

-백 엔드: 웹의 데이터베이스 관리, 서버 연동 등의 외관적으로 보이지 않는 부분 담당

  • JavaScript: 웹 페이지의 동작 담당
  • Jquery, nodeJS: 자바스크립트의 기능을 활용
  • Cordova: 하이브리드 앱 개발

4. 웹앱의 정의와 종류

웹앱: 모바일 기기뿐만 아니라 PC 환경까지 포함하여 웹 브라우저를 통해 접속이 이루어지는 응용 프로그램

종류
정의 및 특징
장점
단점
호스티드앱 (Hosted App)
온라인 상태에서 URL 접속을 통해 실행되며, 실행에 필요한 모든 웹 문서가 웹 서비스에서 제공되어야 함.
웹 서버 내용만 고치면 되므로 유지보수가 편리.
항상 온라인 상태여야 하며, 모바일 기기의 API 사용에 제약이 있음.
패키지드앱 (Packaged App)
실행에 필요한 웹 문서와 파일들을 ZIP 파일로 압축하여 제공하며, 앱 마켓에서 다운로드 및 인증을 받아 설치됨.
로컬에서 실행되므로 더 많은 API 사용이 가능함. 온라인 웹 서버 운영 불필요.
수정사항 발생 시 앱 마켓에 재등록해야 하는 번거로움이 있음.
네이티브 앱 (Native App)
각각의 스마트폰 OS 환경에서 별도로 제공하는 프로그래밍 언어(Object-C, Java, C# 등)와 SDK를 이용해 제작됨. 해당 OS 환경에서 반드시 제작해야 함.
앱스토어 등록으로 전 세계 사용자가 쉽게 구매할 수 있으며, 스마트폰의 모든 하드웨어 기능을 사용할 수 있음.
앱스토어 개발자 등록 및 년 회비 지불 필요. 웹앱에 비해 업데이트가 복잡함.
모바일 웹 (Mobile Web)
데스크탑 브라우저용 웹 애플리케이션을 모바일 크기로 줄인 것 (모바일 웹사이트). 일반 웹 기술로 개발되고 모바일 브라우저에서 실행됨.
 
속도가 느리고 (풀 브라우징 방식), 이동 중 접속 장애 발생 가능성이 있어 불안정.
모바일 웹앱 (Mobile Web App)
모바일 웹보다 모바일에 더 최적화되고 네이티브 앱화 된 것. 웹 기술로 개발되지만 단일 페이지 모델을 사용하여 화면을 전환하여 모바일 웹보다 실행 속도가 빠름.
모바일 웹보다 실행 속도가 빠름.
 
하이브리드 앱 (Hybrid App)
네이티브 앱과 웹앱의 장점을 가지고 단점을 보완한 형태. 외부 형태는 네이티브 앱이지만, 실제 내부는 모바일 웹앱으로 실행 (예: 은행 애플리케이션).
(네이티브 앱과 웹앱의 장점 혼합).
 

'러닝커뮤니티 > 웹프로그래밍' 카테고리의 다른 글

1회차 오답 노트  (0) 2025.11.10
리눅스쉘 명령  (0) 2025.11.10
Vi editor, Nano editor  (0) 2025.11.10
putty와 WinSCP  (0) 2025.11.05
클라우드 컴퓨팅의 기본 개념과 AWS 사용 방법  (0) 2025.11.02