정의

호스팅은 서버 컴퓨터의 전테 또는 일부 공간을 이용할 수 있도록 대여해 주는 서비스이다.

 

서버 개발이나 관리에 대한 부담이 없기 때문에 대다수 사람들은 전문 업체를 통해 호스팅 서비스를 사용한다. 

일반적으로 사용자가 직접 서버를 구입하고 운영할 필요 없이, 호스팅 업체에서 미리 구축한 서버를 임대하여 사용한다.

 

호스팅의 종류

1) 웹호스팅 (공유 호스팅)

하나의 서버를 여러 사용자가 함께 사용하는 서비스로, 가장 보편적으로 사용하는 호스팅이다.

웹호스팅은 하나의 서버 자원을 여러 사용자가 함께 공용으로 사용하는 형태이다. 이를 통해 사용자는 저렴한 비용으로 개인 서버를 보유한 것과 유사한 서비스를 이용할 수 있다. 그러나 사용할 수 있는 하드웨어가 제한적이라는 단점이 존재한다.

웹호스팅은 개발 환경에 따라 리눅스 호스팅과 윈도우 호스팅으로 구분된다.

- Linux: PHP 언어지원, MYSQL 데이터 베이스 사용

- Windows: ASP 스트립트 언어 지원, MS SQL 데이터 베이스 사용

HTML 홈페이지를 운영하거나 CGI 프로그램 및 PHP를 주로 사용하는 경우, Linux 호스팅을 이용하는 것이 좋다,

반면, ASP 스크립트 언어와 MS SQL 데이터 베이스를 사용한 홈페이지를 윤영하는 경우, Windows 호스팅을 권장한다.

 

웹호스팅 종류

- 이미지 호스팅: 쇼핑몰, 홈페이지 등에 노출되는 이미지를 이미지 전용 서버의 일정 저장 공간을 임대하여 저장하고 링크를 연결하는 이미지 전용 호스팅 서비스이다. 이를 통해 홈페이지, 쇼핑몰, 오픈마켓 등에 노출된 상품 이미지를 보다 빠르게 노출할 수 있다.

- 워드프레스 호스팅: 워드프레스를 기본 탐재하고 있는 워드프레스에 특화된 호스팅 서비스이다. 직접 개발이 어려운 사용자의 경우, 워드프레스를 통해 다양한 웹사이트를 손쉽게 만들 수 있으며, 디자인 변경 및 기능 추가 등의 유지보수 또한 직접 할 수 있다.

- 컨테이너 호스팅: 소프트웨어 응용 프로그램을 실행하고 관리하기 위한 가상화 기술의 한 형태로, 물리 서버와 도커(Docker) 플랫폼을 이용해 계정마다 완벽히 독립된 환경을 제공하는 서비스이다. 이를 통해 환경 간의 일관성을 유지하고, 배포 및 확장을 간편하게 만들 수 있다.

- 웹 에이전시 호스팅: 웹 에이전시 호스팅이란 여러 개의 웹사이트를 하나의 호스팅에서 관리할 수 있는 호스팅 서비스이다. 일반 웹호스팅의 경우, 한 개의 홈페이지를 운영하지만, 웹 에이전시 호스팅은 여러개의 사이트를 용량 내에서 자유롭게 생성하고 관리한다. 한 번만 신청한다면 용량 내에서도 도메인별로 독립된 여러 개의 사이트를 운영할 수 있다.

- DB 호스팅: 웹 공간의 별도로 데이터베이스만 사용할 수 있는 호스팅 서비스이다. 고객의 니즈에 맞는 다양한 운영 환경에 맞춰 데이터베이스를 효율적으로 사용할 수 있다.

 

2) 서버 호스팅

서버 자체를 전체로 임대하여 단독으로 사용하는 서비스로, 대규모 트래픽이 있는 사이트나 대규모 비즈니스에 적합하다.

하지만 단독으로 서버를 이용하는만큼 비용이 높은 편이다. 대기업이나 대형 포탈 혹은 대형 오픈마켓과 같이 많은 데이터를 사용하는 기업들이 사용하기 좋다.

 

3) 클라우드

가상의 서버를 임대하는 서비스로, 확장성과 유연성이 높으며, 운영이 자유롭다는 장점이 있다. 

서버 호스팅을 가상화한 것으로, 가상 서버를 단독으로 사용할 수 있는 형태이다. 고객이 필요할 때마다 서버 자원을 늘리거나 축소하여 유연하게 서버를 이용할 수 있다. 하지만 하나의 가상 서버에 문제가 생기면 연결된 다른 가상 서버에도 문제가 생길 수 있다는 단점이 있다.

'BackEnd' 카테고리의 다른 글

[인터넷] 도메인이란?  (1) 2024.12.24
[인터넷] DNS란?  (0) 2024.12.23
[인터넷] HTTP란?  (0) 2024.12.23
인터넷의 작동 원리 (2)  (0) 2024.12.03
인터넷의 작동 원리 (1)  (3) 2024.12.03

정의

도메인은 인터넷 주소이다. IP 주소는 기억하기 어렵기 때문에 영문이나 한글로 된 인터넷 주소인 도메인을 사용하고 있다. (예: http://google.com)

도메인 이름은 사람들이 원하는 사이트에 방문하기 위해 브라우저에서 입력하는 주소를 말한다. 마치 지문처럼 특정 웹사이트는 각각 고유한 도메인 이름을 가지고 있으며 다른 동일한 이름을 다른 웹페이지에 함께 사용할 수 없다. 

도메인은 온라인상 위치를 나타내는 인터넷 프로토콜(IP)에 접근하기 위한 인간 친화적인 방식으로 만들어졌다. IP 주소는 0부터 255까지의 10진법 숫자를 마침표로 구분한 숫자 문자열로 모든 컴퓨터에 할당되어 있다. 이렇게 무작위로 보이는 일련의 숫자 문자열은 컴퓨터가 기억하고 이해하기에는 적합하지만 사람들에게는 적합하지 않다.

IP 주소를 할당하고 배정하고, 도메인 등록자에 대한 인증 시트템을 실행하며, 모든 도메인과 IP의 중앙 데이터베이스를 가지고 있는 ICANN에서 모든 등록을 감독한다. 

일반적으로 도메인 이름을 URL 또는 웹 주소라고 하지만 사실 URL이나 웹 주소는 도메인 이름의 일부에 불과하다. 도메인 이름의 기본 형식은 이름과 확장자 두 가지로 구성되어 있다. 하지만, 브라우저 주소 표시줄을 살펴보면 실제로는 해당 페이지의 웹 주소를 구성하기 위해 함께 따라오는 부분들이 훨씬 많다는 것을 알 수 있다. 

 

작동 방식

 

인터넷은 전 세계에 퍼져 있는 해저 케이블을 통해 서로 연결된 거대한 글로벌 컴퓨터 네트워크이다. 이러한 네트워크 안에 있는 각 컴퓨터는 개인 기기 또는 서버에 상관없이 웹 데이터를 전송하고 찾고 검색할 수 있도록 서로 통신할 수 있는 IP 주소로 식별된다.

도메인 이름은 특정 웹사이트에 연결된 IP 주소를 사용자가 친숙하게 느끼도록 만든 버전이라고 할 수 있다. 하지만 컴퓨터가 올바른 웹페이지를 찾기 위해서는 무작위로 보이는 단어 문자열이 다시 숫자로 변환되어야 한다.

단단하게 DNS라고 알려진 도메인 이름 시스템은 브라우저에 입력된 도메인 이름을 컴퓨터가 읽을 수 있는 IP로 변환한다. 

웹 브라우저에 도메인 이름을 입력하면 특정 도메인에 연결된 이름 서버를 검색하고 요청을 전달하는 DNS 서버로 요청이 전송된다. 이러한 이름 서버는 웹 호스팅 제공자가 관리하며, 관련 IP를 찾으면 웹사이트 파일이 저장된 웹 서버로 요청을 전송한다. 웹 서버는 IP를 사용하여 연결된 모든 파일을 찾고, 모든 데이터를 브라우저로 다시 전송한다. (이 모든 것이 3초 안에 이루어진다)

 

도메인 종류

1) 국가 도메안: KR(한국), JP(일본), CN(중국) 등 국적에 따라 분류하는 방식이다.

2) 일반 도메인: COM(서비스회사), NET(네트워크회상), ORG(정부기관) 등 사용자 목적에 따라 분류하는 방식이다.

 

두 가지 주요 부분으로 구성:

- 최상위 도메인 (TLD): 도메인 이름의 마지막 부분이다. 예를 들어, ". com", ". net", ". org", ". kr"이 있다.

- 2차 도메인: TLD 앞에 오는 부분이다. 예를 들어, "google", "naver", "daum"이 있다.

 

도메인 주소 구조

도메인 주소는 https://www.google.com:443/이다. 주소창에 "google.com"만 입력하면 브라우저가 나머지를 해석 적용한다.

도메인 구조는 프로토콜, 서브도메인, 2차도메인, 최상위도메인, 포트번호로 구성되어 있다.

 

1) 프로토콜: http, https

웹사이트를 반문하는 방법으로 http, https를 사용한다.

https는 SSL 인증서를 사용하여 웹사이트 방문자의 정보를 보호한다.

 

2) 서브 도메인: www

웹사이트의 하위 영역을 표시한다.

서브 도메인을 사용하는 이유는 블로그, 쇼핑몰, 카페 등의 웹사이트의 용도를 구분하기 위함이다.

예: http://www.google.com, https://cafe.naver.com/, https://blog.naver.com/ 

 

3) 2차 도메인

도메인의 이름의 핵심 부분으로, 웹사이트를 식별하는 고유한 이름이다.

예를 들어 구글의 경우 https://www.google.com:443/ 에서 "google"이 2차 도메인이고, 네이버의 경우 https://www.naver.com/이므로 "naver"가 2차 도메인이다.

 

4) 최상위 도메인

도메인 이름의 마지막 부분으로 웹사이트의 종류 또는 국가를 나타낸다.

예를 들어 구글의 경우 https://www.google.com:443/에서 .com은 최상위 도메인이고 네이버의 경우 https://www.naver.com/이므로. com이 최상위 도메인이다. 

하지만 https://www.naver.co.kr/ 이렇게 입력하면 최상위 도메인은. co.kr 이 된다. (참고로 https://www.naver.co.kr/ 를 입력하면 https://www.naver.com/로 넘어간다. 이것을 redirection이라고 한다. 다른 도메인으로 연결하는 방식)

 

5) 포트 번호

웹사이트 서버의 특정 포트를 지정하는 것인데, 일반적으로 80(http) 또는 443(https) 포트를 사용한다. 

포트 번호를 표시하지 않아도 자동으로 전환하여 진행된다.

그 외 서비스(FTP, SSH)를 사용할 때는 포트 번호를 지정해야 한다.

 

도메인: https://www.google.com:443/

프로토콜: HTTPS

서브 도메인: www

2차 도메인: google

최상위 도메인: .com

포트 번호: 443

 

'BackEnd' 카테고리의 다른 글

[인터넷] 호스팅이란?  (2) 2024.12.24
[인터넷] DNS란?  (0) 2024.12.23
[인터넷] HTTP란?  (0) 2024.12.23
인터넷의 작동 원리 (2)  (0) 2024.12.03
인터넷의 작동 원리 (1)  (3) 2024.12.03

정의

DNS는 인터넷의 핵심 인프라로서, 네트워크 트래픽이 올바른 IP 주소 목적지까지 찾아가도록 돕는다.

DNS(Domain Name System)란, 도메인 이름을 IP 주소로 변환하여 주는 시스템이다.

DNS는 인터넷에서 사용되는 주소록과 같은 존재라고 생각하면 편하다. (도메인은 연락처 이름, IP 주소는 전화번호)

DNS 시스템에서는 도메인 이름과 IP가 서로 매핑되어 저장되어 있다. -> 사용자가 특정 도메인을 입력하면, 그에 매칭되는 IP 주소를 찾아서 접속할 수 있도록 한다. 

모든 장치는 IP 주소를 가지고 있다. 우리가 인터넷을 사용할 때 어떤 웹사이트에 접속을 하기 위해서는 이 IP 주소를 이용해야 하지만 모두가 IP 주소 대신에 URL 이라는 영문으로 이루어진 웹사이트 주소를 입력한다. URL을 IP주소로 변환시켜주는 것이 DNS이다.

DNS 서버의 종류

  • 순환 DNS 서버 (DNS Recursive Server/ DNS resolver): 요청 받은 도메인에 매치되는 IP 주소를 찾기 위해 계층적으로 DNS 쿼리를 수행한다. DNS 쿼리의 첫 단계에 해당하며 DNS 캐시를 저장하는 곳이기도 하다.
  • 루트 DNS 서버 (Root Name Server): 순환 DNS 서버에서 처음으로 DNS 쿼리 요청을 보내는 서버이다. 해당 도메인의 확장자(.com, .net, .org 등)에 따른 TLD 네임 서버의 주소를 DNS Resolver에 응답해 준다.
  • 최상위 도메인 DNS 서버 (TLD Name Server): 최상위 도메인(.com, .net, .org 등)에 대한 DNS 정보를 관리한다. 루트 DNS 서버와 권한 네임 서버의 중간 단계이다.
  • 권한 네임 서버 (Authoritative Name Server): 도메인의 IP 주소를 응답해주는 최종 단계 DNS 서버이다. 여기서 얻은 IP 주소가 순환 DNS 서버를 거쳐 브라우저까지 전달된다.

작동 방식

  1. 사용자가 브라우저 주소창에 URL을 입력한다.
  2. 브라우저가 입력된 도메인의 IP 주소를 알아내기 위해 운영체제를 거쳐 DNS Resolver에 요청을 보낸다.
  3. DNS Resolver는 로컬 DNS 캐시에 이전에 방문한 도메인 정보가 있는지 확인한다. 만약 캐시에 기록이 있다면, 추가적인 DNS 조회가 필요하지 않는다. 이 단계에서 바로 IP 주소를 응답해 줄 수 있다.
  4. 캐시에 정보가 없는 경우, DNS Resolver는 루트 DNS 서버에서 최상위 도메인(TLD) DNS 서버의 IP 주소 정보를 알아낸다.
  5. DNS Resolver는 최상위 도메인(TLD) DNS 서버에 연결하여 권한 네임 서버(Authoritative Name Server)의 IP 주소를 요청하여 받아낸다.
  6. 최종적으로 DNS Resolver는 권한 네임 서버에서 도메인의 최종 IP 주소를 마침내 알아낸다. 이렇게 받아 온 IP 주소는 로컬 DNS 캐시에 저장된다. 이후로는 같은 요청이 있다면 DNS Resolver에서 바로 응답이 가능하다.
  7. 받아온 최종 IP 주소를 다시 거꾸로 운영체제를 거쳐 브라우저로 전달한다. 마침내 사용자는 웹 브라우저를 통해 해당 IP 서버에 연결할 수 있다.

DNS 캐싱

DNS 캐싱이란 DNS 서버 안에 이전에 처리한 DNS 쿼리 결과값을 한시적으로 저장하는 것이다.

-> 이를 통해 불필요한 네트워크 트래픽을 줄이고 동일한 쿼리에 한해서 응답 시간을 단축할 수 있다. 결과적으로 웹 사이트의 로딩 속도가 빨라진다.

위에서 말했던 순환 DNS 서버 (DNS Recursive Server, DNS resolver)가 DNS 캐시를 저장하는 역할을 한다.

DNS resolver 단계에서 이미 이전에 처리했던 쿼리와 동일한 쿼리를 받았다면 즉시 캐시에서 응답을 반환해 줄 수 있다.

즉, 캐시에 없는 내용만 다른 DNS 서버에 질의하면 되므로 응답 시간을 단축하고 트래픽도 절약할 수 있다.

캐시된 내용은 TTL(Time To Live) 설정 값에 따라 유지된다. TTL이 지난 캐시 내용은 서버에서 자동으로 삭제된다. 

하지만 때로는 502 bad gateway와 같은 에러가 있을 때, 캐시를 수동적 플러싱 해야 할 때도 있다. DNS 캐시 수동 삭제를 하고 나면 캐시가 초기화된 후 다시 쌓이기 시작할 것이다.

한편, DNS 스누핑 중 가장 많이 쓰이는 수법인 DNS 캐시 포이즈닝에 대해 주의해야 한다. 이는 공격자가 캐시에 잘못된 IP 주소를 주입하는 방식이다. 그런 다음 악성 웹사이트로 유도하여 멀웨어를 다운로드 받게 하거나 개인정보를 중간에서 탈취한다. 카드 번호와 같은 금융 정보를 탈취하여 금전적인 손실을 초래하기도 한다. 이런 피해를 예방하기 위해서 각별히 주의하여 DNS 캐시 포이즈닝을 당하지 않도록 조심해야 한다.

 

DNS와 VPN 차이점 비교

DNS는 위에서 알아 보았듯이 도메인 이름과 IP 주소를 매치하는 시스템이다.

그래서 도메인을 이용하여 해당 서버에 접근할 수 있게 하는 역할이다.

반면 VPN은 IP 주소를 변경하도록 도와주는 프로그램이다. IP 주소를 바꾸는 이유는 보안상의 목적 그리고 위치를 변경하여 원하는 웹 컨텐츠에 접근하기 위함 등이 있다.

 

DNS 서버 바꾸기

현재 사용하고 있는 DNS에 불만족한다면 DNS 서버를 변경할 수도 있다.

DNS 서버를 변경하면 인터넷 속도를 향상시킬 수 있다. 지역 제한 컨텐츠에도 자유롭게 접근할 수 있다.

하지만 무엇보다도 가장 큰 장점은 보안 측면에서의 장점이다. DNS 서버에 있는 보안 취약점이 우려된다면 보안을 향상시키기 위해 개인 DNS로 변경하는 것을 고려해 볼 수 있다.

개인 DNS는 인터넷 서비스 공급 업체(ISP)가 운영하는 공용 DNS 서비스와 달리 사용자가 만들고 관리하는 DNS이다.

인터넷 서비스 공급 업체가 제공하는 DNS 서버를 사용 시 접속 기록이 수년간 업체에 남아있는 경우가 많다.

하지만 개인 DNS를 사용하면 사용자의 온라인 활동을 인터넷 서비스 공급 업체가 추적할 수 없다. 따라서 개인 DNS를 사용하면 온라인 상의 개인 정보를 보호할 수 있다.

 

'BackEnd' 카테고리의 다른 글

[인터넷] 호스팅이란?  (2) 2024.12.24
[인터넷] 도메인이란?  (1) 2024.12.24
[인터넷] HTTP란?  (0) 2024.12.23
인터넷의 작동 원리 (2)  (0) 2024.12.03
인터넷의 작동 원리 (1)  (3) 2024.12.03

정의

HTTP는 웹에서 이루어지는 모든 데이터 교환의 기초이며, 클라이언트-서버 프로토콜이기도 하다.

하나의 완전한 문서는 텍스트, 레이아웃 설명, 이미지, 비디오, 스크립트 등 불러온 하위 문서들로 재구성된다.

우리가 사용하는 웹 브라우저에서 인터넷 주소 맨 앞에 들어가는 http://가 이 프로토콜을 사용해서 정보를 교환하겠다는 표시이다.

(사실 // 부분은 치지 않아도 잘 작동한다... 팀 버너스리가 당시 멋으로 만든것이라고 한다 ㅋㅎㅋㅎㅋㅎ)

 

구조

HTTP는 요청(request)과 응답(response)으로 구성되어 있고, 클라이언트가 요청을 하면 서버가 응답을 하는 구조로 되어 있다.

'클라이언트가 웹 페이지에서 링크가 걸려있는 텍스트를 클릭(요청)하면 링크를 타고 새로운 페이지로 넘어간다(응답)'

HTTP는 FTP나 텔넷과는 다르게 비연결식이다.

FTP나 Telnet은 클라이언트가 서버에 정보를 요청해도 그 이후에 서버가 클라이언트와 연결을 끊지 않지만, HTTP는 클라이언트가 서버에 정보를 요청하면 응답 코드와 내용을 전송하고 클라이언트와 연결을 종료한다.

 

요청

GET /index.html HTTP/1.1  -  헤더
Host: namu.wiki  -  호스트
- 공백 -

다음 요청 메시지는 namu.wiki의 index.html을 보여 달라는 요청이다.

 

HTTP 기반 시스템의 구성요소

요청은 사용자 에이전트(또는 그것을 대신하는 프록시)에 의해 전송된다.

대부분의 경우, 사용자 에이전트는 브라우저지만, 무엇이든 될 수 있다.

예를 들어, 검색 엔진 인덱스를 채워넣고 유지하기 위해 웹을 돌아다니는 로봇이 그러한 경우이다.

각각의 개별적인 요청들은 서버로 보내지며, 서버는 요청을 처리하고 response라고 불리는 응답을 제공한다.

이 요청과 응답 사이에는 여러 개체들이 있는데, 예를 들면 다양한 작업을 수행하는 게이트웨이 또는 캐시 역할을 하는 프록시 등이 있다.

 

실제로는 브라우저와 요청을 처리하는 서버 사이에는 좀 더 많은 컴퓨터들이 존재한다. (라우터, 모뎀 등)

웹의 계층적인 설계 덕분에, 이들은 네트워크와 전송 계층 내로 숨겨진다.

HTTP는 애플리케이션 계층의 최상위에 있다.

네트워크 문제를 진단하는 것도 중요하지만, 기본 레이어들은 HTTP의 명세와는 거의 관련이 없다.

 

클라이언트: 사용자 에이전트

사용자 에이전트는 사용자를 대신하여 동작하는 모든 도구이다. 이 역할은 주로 브라우저에 의해 수행된다. 

브라우저는 항상 요청을 보내는 개체이다. 그것은 결코 서버가 될 수 없다.

웹 페이지를 표시하기 위해, 브라우저는 페이지의 HTML 문서를 가져오기 위한 요청을 전송한 뒤, 파일을 구문 분석하여 실행해야 할 스크립트 그리고 페이지 내 포함된 하위 리소스들(보통 이미지와 비디오)을 잘 표시하기 위한 레이아웃 정보(CSS)에 대응하는 추가적인 요청들을 가져온다. 그런 뒤에 브라우저는 완전한 문서인 웹 페이지를 표시하기 위해 그런 리소스들을 혼합한다.

브라우저에 의해 실행된 스크립트는 이후 단계에서 좀 더 많은 리소스들을 가져올 수 있으며 브라우저는 그에 따라 웹 페이지를 갱신하게 된다.

웹 페이지는 하이퍼텍스트 문자로, 표시된 텍스트의 일부는 사용자가 사용자 에이전트를 제어하고 웹을 돌아다닐 수 있도록 새로운 웹 페이지를 가져오기 위해 실행(보통 마우스 클릭에 의해) 될 수 있는 링크임을 뜻한다. 브라우저는 HTTP 요청 내에서 이런 지시 사항들을 변환하고 HTTP 응답을 해석하여 사용자에게 명확한 응답을 표시한다.

 

웹 서버

통신 채널의 반대편에는 클라이언트에 의한 요청에 대한 문서를 제공하는 서버가 존재한다.

서버는 사실상 논리적으로 단일 기계이다. 이는 로드(로드 밸런싱) 혹은 그때 그때 다른 컴퓨터(캐시, DB 서버, e-커머스 서버 등과 같은)들의 정보를 얻고 완전하게 혹은 부분적으로 문서를 생성하는 소프트웨어의 복잡한 부분을 공유하는 서버들의 집합일 수도 있기 때문이다.

서버는 반드시 단일 머신일 필요는 없지만, 여러 개의 서버를 동일한 머신 위에서 호스팅 할 수는 있다. HTTP/1.1과 Host 헤더를 이용하여, 동일한 IP 주소를 공유할 수도 있다.

 

프록시

프록시는 '대리'의 의미로, 내부 인터넷에서 인터넷 접속을 할 때에, 뻐른 엑세스나 안전한 통신등을 확보하기 위한 중계서버를 '프록시 서버'라고 한다. 클라이언트와 웹 서버의 중간에서 위치하고 있으며, 대신 통신을 받아주는 것이 프록시 서버이다.

웹 브라우저와 서버 사이에서는 수많은 컴퓨터와 머신이 HTTP 메시지를 이어 받고 전달한다.

프록시는 눈에 보이거나 그렇지 않을 수도 있으며(프록시를 통해 요청이 변경되거나 변경되지 않는 경우를 말함) 다양한 기능들을 수행할 수 있다:

- 캐싱 (캐시는 공개 또는 비공개가 될 수 있다. 예: 브라우저 캐시)

- 필터링 (바이러스 백신 스캔, 유해 컨텐츠 차단 (자녀 보호) 기능)

- 로드 밸런싱 (여러 서버들이 서로 다른 요청을 처리하도록 허용)

- 인증 (다양한 리소스에 대한 접근 제어)

- 로깅 (이력 정보를 저장)

'BackEnd' 카테고리의 다른 글

[인터넷] 도메인이란?  (1) 2024.12.24
[인터넷] DNS란?  (0) 2024.12.23
인터넷의 작동 원리 (2)  (0) 2024.12.03
인터넷의 작동 원리 (1)  (3) 2024.12.03
백엔드 로드맵  (0) 2024.12.03

앞선 설명보다 더 자세한 설명을 하려고 한다.

1) 단순한 네트워크

두 개의 컴퓨터가 서로 통신할 때, 우리는 다른 컴퓨터와 물리적으로 또는 무선으로 연결되어야 한다.

근데 컴퓨터의 개수가 늘수록 연결이 매우 복잡해진다.

예를 들어, 10대의 컴퓨터가 서로 통신한다면 각각의 컴퓨터는 9개의 플러그가 달린 총 45개의 케이블이 필요하다.

매우 복잡함.

이것을 개선하기 위해서는 라우터를 사용하면 된다.

라우터를 사용하면 10대의 컴퓨터 통신을 위해 10개의 케이블만 필요하다.

 

2) 네트워크 속의 네트워크

그럼 수백, 수천, 수십억 대의 컴퓨터를 연결하는 건 어떨까?

하나의 라우터는 그 정도까지 감당할 수 없지만, 라우터는 라우터와도 연결이 가능하다!

이로써 우리는 컴퓨터를 라우터에 연결하고, 라우터에서 라우터로, 무한히 확장할 수 있다.

 

하지만 이 방식으로는 해당 네트워크 내에서만 통신이 가능하고 그밖에 있는 다른 네트워크들과는 통신할 수 없다.

이를 해결하게 위해서는 집과 다른 지역 사이에, 아주 먼 곳에 케이블을 연결해야 한다.

이게 가능할까 싶지만 우리에게는 전력 및 전화와 같이 집에 연결된 케이블이 있고 이것을 활용하면 장거리 네트워킹도 가능하다.

우리의 네트워크를 전화 시설과 연결하기 위해선, 모뎀(Modulator, and DEModulator)이라는 특수 장비가 필요하다.

(모뎀이란? 모뎀은 아날로그/디지털 변환기의 일종으로 컴퓨터의 디지털 신호를 아날로그 신호로 바꾸어 전송하고, 아날로그 신호를 받아 디지털 신호로 읽어낸다.)

모뎀은 우리 네트워크의 정보를 전화 시설에서 처리 할 수 있는 정보로 바꾸며, 그 반대의 경우도 마찬가지이다.

모뎀을 통해 우리의 네트워크는 전화 시설에 연결된다.

그리고 우리는 네트워크에서 도달하려는 네트워크로 메시지를 보내야 한다.

그렇게 하기 위해 네트워크를 인터넷 서비스 제공 업체(internet service provider, ISP)에 연결해야 한다.

ISP는 모두 함께 연결되는 몇몇 특수한 라우터를 관리하고 다른 ISP의 라우터에도 액세스 할 수 있는 회사이다.

따라서 우리 네트워크의 메시지는 ISP 네트워크의 네트워크를 통해 대상 네트워크로 전달된다.

인터넷은 이러한 전체 네트워크 인프라로 구성된다.

 

3) 컴퓨터 찾기

컴퓨터에 메시지를 보내려면 메시지를 받을 특정 컴퓨터를 지정해야 한다.

그리고 네트워크에 연결된 모든 컴퓨터에는 IP 주소(IP는 인터넷 프로토콜을 나타냄)라는 고유한 주소가 있다.

컴퓨터는 이러한 주소로 다른 컴퓨터를 찾아가는데 문제가 없다. 하지만 우리는 IP주소를 기억하기 힘들기 때문에 '도메인 이름'이라고 하는 사람이 읽을 수 있는 IP 주소의 이름을 지정할 수 있다. 

 

4) 인터넷과 웹

웹 브라우저를 사용해서 웹을 탐색할 때 일반적으로 도메인 이름을 사용하여 웹 사이트에 접속한다.

그것은 인터넷과 웹이 같은 것을 의미할까?

그렇게 간단하지는 않다. 앞에서 보았듯이 인터넷은 수십억 대의 컴퓨터를 모두 연결하는 기술 인프라이다.

이러한 컴퓨터들 중에 일부는 '웹 서버'로서 웹 브라우저가 이해할 수 있는 서비스를 제공한다.

인터넷은 인프라이며, 웹은 그 인프라 기반 위에 구축된 서비스이다.

(웹 뿐만 아니라 인터넷 위에 구축된 다른 이메일, IRC 등 같은 서비스들도 있음)

 

5) 인트라넷과 엑스트라넷

인트라넷은 특정 조직의 구성원들만 접근할 수 있는 네트워크이다.

이는 주로 구성원들이 공유 리로스에 안전하게 접근하고, 협업하며 소통할 수 있는 포털을 제공하는 데 사용된다.

(예를 들어, 조직의 인트라넷은 부서나 팀 정보를 공유하는 웹 페이지, 주요 문서와 파일을 관리하는 공유 드라이브, 업무 관리 작업을 수행하는 포털, 위키, 토론 게시판, 메시징 시스템과 같은 협업 도구를 호스팅 할 수 있다.)

 

엑스트라넷은 인트라넷과 매우 유사하지만, 다른 조직관의 공유와 협업을 위해 사설 네트워크의 전체 또는 일부를 개방한다는 점이 다르다. 이는 일반적으로 기업과 긴밀히 협력하는 고객 및 이해관계자들과 안전하고 보안성 있게 정보를 공유하는 데 사용된다.

정보 및 파일 고융, 협업 도구, 토론 게시판 등 인트라넷이 제공하는 기능과 유사한 기능을 제공한다.

 

인트라넷과 엑스트라넷 모두 인터넷과 동일한 종류의 인프라에서 실행되며 같은 프로토콜을 사용한다.

따라서 권한을 부여받은 구성원들은 서로 다른 물리적 위치에서도 접근할 수 있다.

 

6) 패킷과 프로토콜

우리가 전송하는 데이터는 텍스트, 이미지 등이 있는데, 통째로 전송하지 않고 작게 나눠서 보낸다.

이 작게 나눈 데이터 조각을 패킷이라고 한다. 패킷을 사용하는 이유는 빠르고 효율적으로 데이터를 전달하기 위해서다.

(큰 파일을 그냥 한번에 보내는 게 쪼개서 보내는 것보다 빠르지 않을까? 싶을 수 있다. 하지만 현대의 컴퓨터는 하나의 프로그램에서 네트워크를 사용하지 않으며 다른 프로그램에서 데이터를 주고받는 데에 방해를 받을 수 있다.

전송되는 패킷은 전자 신호로 변환되어 이더넷 케이블이라는 전선을 먼저 통과해야 한다.

전자 신호는 0과 1로 이루어져 있고, 이 신호를 다른 컴퓨터에 전송하면 다시 원래의 데이터로 변환해야 하는데, 아무런 양식 없이 전송하면 다른 컴퓨터가 이 데이터가 텍스트인지 이미지인지 어떻게 변환해야 하는지 알 수 없다.

따라서 데이터를 전송하는 특정 양식(통신 규약)을 정해놓았는데, 이것을 프로토콜이라고 한다.

프로토콜은 장치마다 처리하는 역할마다 다양하다. 프로토콜을 각 역할로 구분하여 계층을 나눠놓은 것은 TCP/IP 4 layer이라고 한다.

이렇게 구분해 놓으면 서로 간에 간섭을 최소화하여 편리성을 높일 수 있다.

 

L4: 응용계층 (HTTP, FTP, SMTP 등) - 웹(HTTP), 이메일(SMTP), 파일전송(FTP) 같은 응용프로그램을 위한 프로토콜

L3: 전송계층 (TCP) - 응용프로그램을 구분하는 포트 번호를 통해 컴퓨터에서 돌아가는 프로그램들 중 특정 응용 프로그램 하나를 찾아감

L2: 인터넷 계층(IP) - IP 주소를 통해 수많은 컴퓨터들 중 특정 컴퓨터 하나를 찾아감

L1: 네트워크 연결 계층 - 전선과 장비들을 통해 물리적으로 데이터 전송하기 위해 적절한 디지털/아날로그 신호 등등으로 변환함

 

응용 프로그램에서 데이터를 전송하면 각 프로토콜에 따라 패킷이 만들어지고, 아래 계층으로 내려가며 각 계층의 프로토콜에 따라 해석되거나 다른 정보가 덧붙여져 그 아래 계층으로 내려간다. 네트워크 연결 계층까지 오면 전선과 장치들을 통해 인터넷으로 전송되고, 아래 계층부터 위 계층까지 차례대로 거쳐 프로토콜에 의해 원본 데이터에 해석된다. 이러한 구분을 통해 서로 간에 간섭이 최소화되어 편하지만, 응용 계층에서는 응용 프로그램끼리의 해석만 신경 쓰면 되고 그 밑에 이 응용 프로그램을 어떻게 찾아오는지, 컴퓨터를 어떻게 찾아가는지, 디지털/아날로그 신호로 어떻게 바꾸는지 신경 쓰지 않아도 되기 때문이다.

7) 인터넷의 동작 과정

1. 프로토콜: 인터넷은 TCP/IP라는 표준 프로토콜을 사용해 서로 다른 네트워크와 장치들이 통신할 수 있게 한다.

2. IP 주소: 인터넷상의 각 컴퓨터와 장치는 고유한 IP 주소를 가지고 있어, 정보를 교환할 때 정확한 위치를 찾을 수 있다.

3. DNS: 사용자 친화적인 도메인 이름을 해당 IP 주소로 변환해 주는 시스템.

4. router: 데이터 패킷을 목적지로 전송하기 위해 올바른 경로를 찾아주는 장치이다.

5. 웹 브라우저 및 서버: 웹 브라우저를 통해 인터넷을 이용하며, 웹 서버는 웹 페이지와 다양한 콘텐츠를 저장하고 제공한다.

 

reference:

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

'BackEnd' 카테고리의 다른 글

[인터넷] 도메인이란?  (1) 2024.12.24
[인터넷] DNS란?  (0) 2024.12.23
[인터넷] HTTP란?  (0) 2024.12.23
인터넷의 작동 원리 (1)  (3) 2024.12.03
백엔드 로드맵  (0) 2024.12.03

키워드 정의:

인터넷이란?

컴퓨터들이 서로 통신 가능한 거대한 네트워크이다. 웹의 핵심적인 기술이다. 

인터넷은 모든 컴퓨터를 연결하고 어떤 일이 있어도 연결 상태를 유지할 수 있는 방법을 찾고자 하는 방법에서 탄생했다.

 

네트워크란?

네트워크는 서로 데이터를 보낼 수 있는 연결된 컴퓨터의 그룹이다.

 

내용 설명:

internet is simply a wire.

two computer connected directed to this wire can communicate.

server is a special computer connected directly to the internet and web pages are files on that server's hard drive.

every internet have a unique internet protocol or IP address. IP addresses help computers find each other.

but the IP address is formed by numbers, so they give a name into that IP address to facilitate. 

(eg: 67.205.46.246 -> google.com)

the computer at home is not a server because is not connected directly to the internet, they are called clients because they are connected inderectly to the internet through the internet servers provider(ISP).

hop onto my laptop with DSL, go through my ISP onto the internet and look at AOL.com

 

how does the email works:

내가 친구에게 이메일을 보내고 싶은데 나는 gmail을 사용하고 내 친구는 aol을 사용한다면 어떻게 해야 할까?

내가 gmail.com에 접속해서 친구의 이메일 주소로 이메일을 보내면, 전송한 즉시 gmail.com은 aol.com에게 해당 이메일을 전송함.

그럼 친구가 aol.com에 접속하여 이메일을 확인할 수 있다.

컴퓨터로 사진을 전송할 때 컴퓨터는 packet이라는 작은 조각으로 사진을 나눠서 packet을 순차적으로 전송한다.

packet으로 나뉘어 전송되는 사진

 

 

직장에서 상사 옆에 앉아 둘 다 온라인 서핑을 하고 있다고 가정해보자.

상사는 marketresearch를 하고 있고 나는 facebook 프로필을 업데이트하고 있는 상황이다.

둘 다 인터넷을 통해 패킷을 보내고 있다. 이 상황에서 내가 facebook으로 전송한 패킷이 상사의 노트북 화면에 표시되지 않는 이유는 뭘까? 정답은 IP 주소와 라우터이다. 

인터넷에 직간접적으로 연결된 모든 것에는 IP 주소가 있다. (컴퓨터, 노트북, 핸드폰, 서버 등)

그리고 서로 다른 두 개 이상의 IP 네트워크가 교차하는 지점에 라우터가 존재한다. 회선에 데이터 패킷이 들어오면 라우터는 패킷의 네트워크 주소 정보를 읽어 최종 목적지를 결정한다. 데이터 패킷은 인터네트워크를 통해 한 라우터에서 다른 라우터로 전달되어 목적지에 도달할 때까지 이어진다

각 과정을 지날때마다 레이어가 추가되고 제거된다.

 


솔직히 완전 기본적인 내용들이지만 이렇게 복습을 해야 뒷 내용도 잘 이해할 수 있다고 생각한다..!

'BackEnd' 카테고리의 다른 글

[인터넷] 도메인이란?  (1) 2024.12.24
[인터넷] DNS란?  (0) 2024.12.23
[인터넷] HTTP란?  (0) 2024.12.23
인터넷의 작동 원리 (2)  (0) 2024.12.03
백엔드 로드맵  (0) 2024.12.03

이 로드맵을 따라서 백엔드를 공부하려 한다.

(양이 많아보이지만 원래 공부엔 끝이 없는 법이니까,,ㅎㅎ)

'BackEnd' 카테고리의 다른 글

[인터넷] 도메인이란?  (1) 2024.12.24
[인터넷] DNS란?  (0) 2024.12.23
[인터넷] HTTP란?  (0) 2024.12.23
인터넷의 작동 원리 (2)  (0) 2024.12.03
인터넷의 작동 원리 (1)  (3) 2024.12.03

+ Recent posts