네트워크, HTTP통신, 브라우저 렌더링

네트워크는 프론트엔드 백엔드 관련없이 꼭 알아야 하는 개념입니다.
네트워크가 무엇인지 부터 시작해서 HTTP통신과 추가로 프로토콜, 브라우저 렌더링까지 알아보겠습니다.

네트워크 개념

네트워크는 컴퓨팅과 기술 분야에서 서로 연결된 장치나 노드의 모음을 가리킵니다. 이러한 장치는 컴퓨터, 서버, 라우터, 스위치 등 데이터를 송수신하거나 전달할 수 있는 어떤 장치든 될 수 있습니다.

네트워크는 장치 간의 통신과 데이터 전송을 원활하게 하기 위해 설계되어 리소스 공유, 정보 교환 및 효율적인 협업을 가능하게 합니다. 장치 간의 연결을 구축함으로써 네트워크는 데이터를 패킷 형식으로 다양한 노드를 통해 전송하여 최종 목적지에 도달시킬 수 있습니다.

네트워크, http통신, 브라우저 렌더링




인터넷 네트워크 개념

인터넷 네트워크란, 컴퓨팅과 통신 기술을 이용하여 전 세계의 컴퓨터와 장치들이 상호 연결되어 정보를 공유하고 통신하는 전 세계적인 네트워크입니다. 인터넷을 통해 사람들은 이메일, 웹 사이트, 온라인 쇼핑, 소셜 미디어 등 다양한 서비스를 이용할 수 있습니다.

인터넷 네트워크 종류

  • 로컬 에어리어 네트워크(LAN): LAN은 사무실 건물, 학교 또는 가정 등 비교적 작은 영역을 커버합니다. 일반적으로 제한된 물리적 근접성 내의 장치를 연결합니다.
  • 와이드 에어리어 네트워크 (WAN): WAN은 넓은 지리적 영역을 커버하며 종종 장거리에 걸쳐 여러 LAN을 연결합니다.
    WAN은 서로 다른 위치에 있는 사무실을 연결하거나 인터넷 연결을 확립하는 데 사용될 수 있습니다.
  • 메트로폴리탄 에어리어 네트워크 (MAN): MAN은 도시나 광역지역을 커버하는 네트워크로, 다른 LAN 간의 연결성을 제공합니다.
  • 개인 에어리어 네트워크 (PAN): PAN은 스마트폰, 태블릿, 웨어러블 기기 등 개인 장치를 짧은 범위로 연결하는 네트워크입니다.

HTTP 통신 개념

HTTP(하이퍼텍스트 전송 프로토콜)는 웹에서 정보를 주고받기 위해 사용되는 통신 프로토콜입니다.
HTTP는 클라이언트와 서버 간의 요청(request)과 응답(response)을 주고받는 방식으로 동작합니다.
클라이언트가 웹 브라우저를 통해 웹 페이지를 요청하면 서버는 해당 페이지를 제공하고, 클라이언트는 받은 페이지를 렌더링하여 사용자에게 표시합니다.

프로토콜 개념

프로토콜은 컴퓨터나 장치 간에 통신을 원활하게 하기 위해 정의된 규칙과 규약의 집합입니다.
프로토콜은 데이터의 형식, 전송 방법, 에러 처리 등을 규정하여 상호 간의 이해와 효율적인 통신을 가능하게 합니다.

프로토콜 4계층

프로토콜 4계층은 컴퓨터 네트워크에서 데이터 통신을 관리하고 제어하기 위한 계층 구조입니다.

  • 전송 계층 (Transport Layer): 전송 계층은 컴퓨터 간의 데이터 전송을 관리하고 안정적인 통신을 제공합니다.
    가장 널리 사용되는 프로토콜은 TCP(Transmission Control Protocol)와 UDP(User Datagram Protocol)입니다.
    TCP는 신뢰성 있는 연결 지향적인 통신을 제공하며, 데이터의 순서와 손실을 관리합니다. UDP는 비연결성이며 신뢰성이 낮지만, 빠른 데이터 전송이 필요한 경우에 사용됩니다.
  • 네트워크 계층 (Network Layer): 네트워크 계층은 데이터 패킷의 경로 선택과 라우팅을 담당합니다.
    이 계층의 핵심 프로토콜은 IP(Internet Protocol)입니다.
    IP는 패킷을 송신지에서 목적지로 안전하게 전달하기 위해 주소 지정과 라우팅을 수행합니다.
    또한 IP는 인터넷에서 사용되는 주요 프로토콜입니다.
  • 데이터 링크 계층 (Data Link Layer): 데이터 링크 계층은 물리적인 매체를 통해 데이터를 전송하는 역할을 합니다.
    이 계층은 네트워크 상에서 신뢰성 있는 포인트 투 포인트 연결을 제공합니다. 주요 프로토콜로는 이더넷(Ethernet)이 널리 사용됩니다.
    이더넷은 컴퓨터 간의 연결을 위한 주소 지정과 충돌 감지 및 제어 기능을 제공합니다.
  • 물리 계층 (Physical Layer): 물리 계층은 데이터를 전기 신호나 광 신호로 변환하여 네트워크 매체를 통해 전송합니다.
    이 계층은 전송된 비트를 실제로 전송하는 역할을 담당합니다.
    이 계층에는 케이블, 전파, 전기 신호 등의 물리적인 특성이 포함됩니다.

TCP

TCP 개념

TCP는 신뢰성 있는 데이터 전송을 위한 프로토콜입니다.
신뢰성이란 데이터가 전송 과정에서 손실되거나 손상되지 않고 정확하게 도착하는 것을 의미합니다.
TCP는 다음과 같은 특징을 가지고 있습니다.

TCP 특징

  • 연결 지향적 통신: 송신자와 수신자 사이에 가상의 연결을 설정하여 데이터를 주고받습니다.
    연결 설정, 데이터 전송, 연결 종료 과정을 거칩니다.
  • 순서 보장: 데이터를 송신한 순서대로 수신자에게 전달됩니다.
    이를 통해 데이터의 정확한 재구성이 가능합니다.
  • 흐름 제어: 데이터 전송 속도를 조절하여 수신자의 처리 능력을 초과하지 않도록 합니다.
  • 오류 검출 및 복구: 데이터 전송 중에 발생한 오류를 검출하고, 재전송을 통해 오류 복구를 수행합니다.

IP

IP 개념

IP는 인터넷에서 데이터 패킷을 주고받기 위한 프로토콜입니다.

TCP 특징

  • 주소 지정: 각각의 장치에 고유한 IP 주소를 할당하여 식별합니다.
    이를 통해 데이터의 출발지와 목적지를 구분할 수 있습니다.
  • 라우팅: 데이터 패킷을 목적지까지 안전하게 전달하기 위한 경로 선택과 패킷 전송을 담당합니다.
    여러 네트워크와 라우터를 거쳐 최종 목적지까지 도달할 수 있습니다.
  • 비연결성: IP는 연결 설정 과정이 없이 패킷을 전송합니다.
    각각의 패킷은 독립적으로 처리됩니다.
  • 최선 노력 전달: IP는 최선의 노력을 다해 데이터를 전달하지만, 신뢰성이 보장되지는 않습니다.
    패킷의 손실, 손상, 중복 등의 상황이 발생할 수 있습니다.

TCP와 IP 차이

TCP는 데이터의 신뢰성과 연결 지향성을 제공하며, IP는 데이터의 주소 지정과 라우팅을 담당합니다.

렌더링 개념

렌더링은 웹 브라우저가 HTML, CSS, JavaScript 등의 웹 페이지 코드를 해석하고 사용자에게 시각적으로 표현하는 과정을 의미합니다. 브라우저는 웹 페이지의 구조를 분석하고 스타일을 적용하여 화면에 내용을 그립니다.

브라우저 렌더링 원리

브라우저는 렌더링을 위해
1. 웹 페이지의 HTML 문서를 파싱하고 DOM(Document Object Model) 트리를 구성합니다.
2. CSS 스타일은 파싱되어 렌더 트리로 변환되고, 브라우저는 렌더 트리를 기반으로 요소의 크기와 위치를 계산합니다.
3. 이후에 JavaScript 코드가 실행되어 동적인 변화나 이벤트 처리를 수행할 수 있습니다.
4. 마지막으로, 브라우저는 렌더 트리를 화면에 그려 사용자에게 표시합니다.

Scroll to Top