" 프론트엔드 개발자 로드맵을 통해 공부해보고자 만들었다. "
인터넷은 어떻게 동작하는가?
: 개발자로써 인터넷은 무엇이며 어떻게 동작하는지 확실히 이해하는 것이 중요하다.
인터넷 소개
인터넷을 배우기 전에 네트워크가 무엇인지 이해가 필요하다.
| 네트워크 |
: 서로 연결된 컴퓨터 또는 기타 장치 그룹
예를 들면, 나의 집에 네트워크가 있고 있을 수 있고, 옆집에도 비슷한 네트워크를 가지고 있을 수 있다. 모든 네트워크가 함께 연결되면서 인터넷을 형성한다.
| 인터넷 |
: 네트워크의 네트워크
인터넷은 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 |