Front-End

[FE RoadMap] 00.Internet 좀 봐봐

나른한 노치 2023. 3. 27. 22:42

" 프론트엔드 개발자 로드맵을 통해 공부해보고자 만들었다. "

인터넷은 어떻게 동작하는가?

: 개발자로써 인터넷은 무엇이며 어떻게 동작하는지 확실히 이해하는 것이 중요하다.

인터넷 소개

인터넷을 배우기 전에 네트워크가 무엇인지 이해가 필요하다.

 

| 네트워크 |
: 서로 연결된 컴퓨터 또는 기타 장치 그룹

 

예를 들면, 나의 집에 네트워크가 있고 있을 수 있고, 옆집에도 비슷한 네트워크를 가지고 있을 수 있다. 모든 네트워크가 함께 연결되면서 인터넷을 형성한다.

 

| 인터넷 |
: 네트워크의 네트워크

 

인터넷은 1960년대 후반 미국 국방부에서 핵 공격을 견딜 수 있는 분산형 통신 네트워크를 만드는 수단으로 개발되었다. 수년에 걸쳐 전 세계를 아우르는 복잡하고 정교한 네트워크로 발전했다.

인터넷 작동 방식: 개요

높은 수준의 인터넷은 일련의 표준화된 프로토콜을 사용하여 장치와 컴퓨터 시스템을 함께 연결하여 작동한다.

 

| 프로토콜 |
: 컴퓨터나 다른 디지털 장치 간에 통신할 때 사용되는 규칙의 집합

 

프로토콜은 장치 간에 정교를 교환하는 방법을 정의하고 데이터가 안정적이고 안전하게 전송되도록 한다.

인터넷의 핵심은 상호 연결된 라우터의 글로벌 네트워크로 서로 다른 장치와 시스템 간의 트래픽 전달을 담당한다.

 

| 트래픽 |
: 네트워크를 통해 전송되는 데이터 양

 

인터넷을 통해 데이터를 보낼 때,

  • 데이터를 라우터로 전송되는 작은 패킷으로 나눈다.
  • 라우터는 패킷을 검사하고 목적지 향하는 다음 라우터로 전달한다.

이 프로세스는 최종 목적지에 도달할 때까지 계속된다.

패킷이 올바르게 송수신되기 위해 인터넷은 인터넷 프로토콜(IP) 및 전송 제어 프로토콜(TCP)을 비롯한 다양한 프로토콜을 사용한다.

  • IP의 역할: 패킷을 올바른 대상으로 라우팅하는 역할
  • TCP의 역할: 패킷이 안정적이고 올바른 순서로 전송되도록 하는 역할

이외에도 DNS(Domain Name System), HTTP(Hypertext Transfer Protocol) 및 Secure SSL/TLS(Sockets Layer/Transport Layer Security) 프로토콜 등 개발자로서 다양한 기술과 프로토콜이 어떻게 함께 동작하여 인터넷을 통해 데이터 교환을 가능하게 하는지 확실히 이해하는 것이 중요하다.

기본 개념 및 용어

  • 패킷: 인터넷을 통해 전송되는 작은 데이터 단위
  • 라우터: 서로 다른 네트워크 간에 데이터 패킷을 전달하는 장치.
  • IP 주소: 데이터를 올바른 대상으로 라우팅 하는데 사용되는 네트워크의 각 장치에 할당된 고유 식별자
  • 도메인 이름: google.com과 같이 웹 사이트를 식별하는데 사용되는 사람이 읽을 수 있는 이름.
  • DNS: 도메인 이름 시스템은 도메인 이름을 IP 주소로 변환하는 역할.
  • HTTP: Hypertext Transfer Protocol은 클라이언트(예: 웹 브라우저)와 서버(예: 웹 사이트) 간에 데이터를 전송하는 데 사용
  • HTTPS: 클라이언트와 서버 간의 보안 통신을 제공하는 데 사용되는 암호화된 버전의 HTTP
  • SSL/TLS: Secure Sockets Layer 및 Transport Layer Security 프로토콜은 인터넷을 통한 보안 통신을 제공하는 데 사용

인터넷에서 프로토콜의 역할

프로토콜은 인터넷 통신 및 데이터 교환을 가능하게 하는 중요한 역할이다.

프로토콜에는 인터넷 프로토콜(IP), 전송 제어 프로토콜(TCP), 사용자 데이터그램 프로토콜(UDP), 도메인 이름 시스템(DNS) 등 다양한 프로토콜이 있다.

표준화된 프로토콜을 사용하는 이유는 서로 다른 장치와 시스템이 원활하게 통신할 수 있게 한다는 것이다.

개발자로서 인터넷 통신에 사용되는 다양한 프로토콜과 인터넷을 통해 데이터와 정보를 전송할 수 있는 방법을 이해하는 것이 중요하다.

IP 주소 및 도메인 이름 이해

IP 주소는 네트워크의 각 장치에 할당된 고유 식별자이다. 데이터를 올바른 대상으로 라우팅하여 정보가 의도한 수신자에게 전송되도록 하는 데 사용된다. 마치 IP 주소는 네비게이션에서 목적지의 좌표 값과 비슷하다. IP주소는 일반적으로 "192.168.1.1"과 같이 표시한다.

도메인 이름은 웹 사이트 및 기타 인터넷 리소스를 식별하는데 사용되는 사람이 읽을 수 있는 이름이다. 일반적으로 마침표로 구분된 두 개 이상의 부분으로 구성된다. 도메인 이름은 DNS(도메인 이름 시스템)를 통해 IP 주소로 변환된다.

DNS는 도메인 이름을 IP 주소로 변환하는 역할을 한다.

  • 웹 브라우저에 도메인 이름을 입력한다.
  • 컴퓨터는 해당 IP 주소를 반환하는 DNS 서버에 DNS 쿼리 전송한다.
  • 컴퓨터는 반환된 IP 주소로 요청한 웹 사이트 또는 기타 리소스에 연결한다.

HTTP 및 HTTPS 소개

HTTP(Hypertext Transfer Protocol) 및 HTTPS(HTTP Secure)는 인터넷 기반 애플리케이션 및 서비스에서 가장 일반적으로 사용되는 두 가지 프로토콜이다.

HTTP: 클라이언트(예: 웹 브라우저)와 서버(예: 웹 사이트) 간에 데이터를 전송하는 데 사용되는 프로토콜이다.

  • 웹사이트를 방문하면 웹 브라우저가 서버에 HTTP 요청을 보내 요청한 웹 페이지나 기타 리소스를 요청한다.
  • 서버는 요청된 데이터를 포함하는 HTTP 응답을 클라이언트로 다시 보낸다.

HTTPS: SSL/TLS(Secure Sockets Layer/Transport Layer Security) 암호화를 사용하여 클라이언트와 서버 간에 전송되는 데이터를 암호화하는 HTTP이다. 이는 추가 보안 계층을 제공하여 로그인 자격 증명, 결제 정보 및 기타 개인 데이터와 같은 중요한 정보를 보호에 도움이 된다.

TCP/IP로 애플리케이션 구축

TCP/IP(전송 제어 프로토콜/인터넷 프로토콜)는 서로 다른 장치에서 실행되는 응용 프로그램 간에 안정적이고 순서가 있으며 오류가 확인된 데이터 전달을 제공한다.

TCP/IP로 애플리케이션을 구축할 때 이해해야 할 몇 가지 주요 개념

  • 포트: 장치에서 실행 중인 애플리케이션 또는 서비스를 식별하는 데 사용된다. 각 애플리케이션 또는 서비스에는 고유한 포트 번호가 할당되어 데이터를 올바른 대상으로 보낼 수 있습니다.
  • 소켓: 통신을 위한 특정 End-Point를 나타내는 IP 주소와 포트 번호의 조합이다. 소켓은 장치 간 연결을 설정하고 응용 프로그램 간에 데이터를 전송하는데 사용된다.
  • 연결: 두 장치가 서로 통신하려고 할 때 두 소켓 사이에 연결이 설정된다. 연결 설정 프로세스 중에 장치는 연결을 통해 데이터를 전송하는 방법을 결정하는 최대 세그먼트 크기 및 창 크기와 같은 다양한 매개 변수를 정한다.
  • 데이터 전송: 연결이 설정되면 각 장치에서 실행 중인 애플리케이션 간에 데이터를 전송할 수 있다. 데이터는 일반적으로 세그먼트로 전송되며 각 세그먼트에는 시퀀스 번호와 기타 메타데이터가 포함되어 안정적인 전달을 보장한다.

TCP/IP로 애플리케이션을 구축할 때 애플리케이션이 적절한 포트, 소켓 및 연결과 함께 작동하도록 설계되었는지 확인해야 한다.

SSL/TLS로 인터넷 통신 보안

SSL/TLS는 인터넷을 통해 전송되는 데이터를 암호화하는 데 사용되는 프로토콜이다. 일반적으로 웹 브라우저, 이메일 클라이언트 및 파일 전송 프로그램과 같은 응용 프로그램에 대한 보안 연결을 제공하는 데 사용된다.

SSL/TLS를 사용하여 인터넷 통신을 보호할 때 이해해야 할 몇 가지 주요 개념

  • 인증서: SSL/TLS 인증서는 클라이언트와 서버 간의 신뢰를 설정하는 데 사용된다. 여기에는 서버 ID에 대한 정보가 포함되어 있으며 신뢰성을 확인하기 위해 신뢰할 수 있는 제3자(인증 기관)가 서명한다.
  • 핸드셰이크: SSL/TLS 핸드셰이크 프로세스 중에 클라이언트와 서버는 보안 연결을 위한 암호화 알고리즘 및 기타 매개 변수를 협상하기 위해 정보를 교환한다.
  • 암호화: 보안 연결이 설정되면 합의된 알고리즘을 사용하여 데이터를 암호화하고 클라이언트와 서버 간에 안전하게 전송할 수 있다.

인터넷 기반 애플리케이션 및 서비스를 구축할 때 SSL/TLS 작동 방식을 이해하고 애플리케이션이 로그인 자격 증명, 결제 정보 및 기타 개인 데이터와 같은 민감한 데이터를 전송할 때 SSL/TLS를 사용하도록 설계되었는지 확인하는 것이 중요하다. 이렇게 하면 사용자 데이터를 보호하고 인터넷을 통한 애플리케이션 통신의 무결성과 기밀성을 보장할 수 있다.

결론

인터넷은 표준 통신 프로토콜 세트를 사용하여 데이터를 교환하는 상호 연결된 컴퓨터의 글로벌 네트워크이며, IP 및 TCP와 같은 표준화된 프로토콜을 사용하여 장치와 컴퓨터 시스템을 함께 연결하여 작동하며, 핵심은 서로 다른 장치와 시스템 간에 트래픽을 전달하는 상호 연결된 라우터의 글로벌 네트워크이다.

프로토콜은 인터넷을 통한 통신 및 데이터 교환을 가능하게 하는 데 중요한 역할을 하여 다양한 제조업체 및 공급업체의 장치와 시스템이 원활하게 통신할 수 있도록 한다.

[참고]

'Front-End' 카테고리의 다른 글

React State 관리: 10년간의 교훈  (0) 2024.03.03
React-Native에 대해서 알아보자!  (0) 2024.02.17
Next.js Project Structure  (1) 2024.02.03
2024년 상태 관리의 종결 : zustand  (0) 2024.01.19
Virtualize List with react-window  (2) 2023.12.17