책 소개
요즘 IT 기술은 뭐가 있는지 IT 기업들은 어떤 비지니스 전략을 펼치고 있는지, 앞으로 IT 기술은 어떻게 될 것인지에 대해 다루고 있다. IT에 대한 이해도와 상관없이 흥미롭고 유익한 이야기들이 가득하기 때매 비전공자들도 재밌게 읽을 수 있다.
기억에 남았던 내용 몇가지를 소개해보려 한다!
1. 구글 검색은 어떻게 작동할까?
구글은 사용자가 검색어를 입력하면 무려 30조 개가 넘는 웹페이지를 뒤져 가장 좋은 결과물을 10개로 추린다.
사용자는 가장 좋은 결과물 10개 중 하나를 첫 페이지에 받을 수 있고 92%의 확률로 그 게시물을 클릭하게 된다.
구글 검색은 30조 개가 넘는 결과물 중에서 10개를 가려내는 동작을 0.5초만에 수행 한다는 것이다.
어떻게 가능한 것일까? 바로 검색 알고리즘 덕분이다.
크롤링
구글은 모든 웹페이지를 크롤링(사이트 내용을 긁어모으는 짓)해 데이터 베이스에 추가한다. 이 동작은 사이트에서 다른 사이트로 이동하는 경로들을 모두 긁어서 더 이상 긁을 사이트가 없다고 판단될때까지 지속된다. 크롤링은 항상 진행중이며, 새로 변경된 부분까지 다 추가된다.
단어 검색
사용자가 검색어를 입력하면 구글은 연관성이 큰 웹페이지들을 데이터 베이스에서 찾아낸다. 컨트롤 +F 를 이용해 특정 단어를 찾아내듯이 특정한 키워드의 출현 빈도를 확인하는 것이다. 그런데 이 방식은 악용될 가능성이 높다. 무의미하게 키워드만 수백개를 나열할 경우 그 페이지가 최상단에 오를것이다. 그런 결과는 쓸모 없는 결과이다.
페이지 랭크
구글은 위의 방식 대신 페이지 랭크라는 혁신적인 알고리즘 기술을 사용한다. 이 기술은 파티에 있는 인기인을 찾기위해 다른 인기인들 주변에 누가 있는지 보는 것과 비슷하다. 페이지 랭크는 점수를 계산할때 해당 웹페이지를 링크한 다른 모든 웹페이지의 페이지 랭크 점수를 집계한다. 어떤 영향력있는 페이지, 즉 뉴욕 타임즈 같은 인기가 있는 사이트(아마 페이지 랭크가 높을 것으로 예상)에서 내 블로그를 링크할 경우 점수가 어마어마하게 올라가게 되는 것이다.
기타
사용자가 어느 지역 사람이냐에 따라 검색 결과가 다르게 보이기도 하는 등 이외에도 구글은 여러가지 방식으로 검색 알고리즘을 개선하고 있다. 페이지 랭크는 우수한 기술이기는 하나, 링크팜 같이 돈을 받고 게시물을 올려 페이지 랭크를 올리는 수법도 있기 때문에 언제든지 악용될 수 있다. 구글은 링크팜을 색출하는 기술 등, 알고리즘을 개선하기 위해 지금도 끊임없이 투자하고 있다.
2. google.com을 검색하고 엔터를 치면 무슨 일이 일어날까?
이게 은근 기술면접 단골 질문인데.. 책에 아주 잘 설명되어 있길래 간단히 적어보려고 한다.
사람들에게 도로명 주소를 알려주고 그 장소로 찾아오라고 한다면 모두 동일한 장소에 도착할 것이다. 이처럼 웹페이지도 건물처럼 저마다 고유한 주소가 있다. 몇명에게 이 주소를 보내든 모두 같은 사이트에 접속하게 될 것이다. 이런 주소 형태의 웹페이지(https://www.naver.com/) 를 표준형 자원 위치 식별자, URL 이라고 부른다. 이 주소를 쪼개서 생각해보자.
https
브라우저가 어떤 방식으로 웹사이트에 접속해야 하는지 알려주는 프로토콜이다. 어딘가를 가야할때 택시, 버스, 자전거, 등등 무엇을 타고 갈건지 고르는 것과 비슷하다. 프로토콜은 크게 두가지로 나뉜다. 기본인 HTTP와 암호화를 통해 보안성을 강화한 HTTPS 이다. HTTPS는 브라우저 정보를 암호화하여 해커의 공격을 방지한다는 차이점이 있다.
www
굳이 붙이지 않아도 상관없지만 +82 010으로 한국번호가 시작하는 것과 같은 느낌이다. 완전한 주소를 보여주기 위해 표시하는 느낌
그 다음 나오는 각기 사이트 주소 naver, daum, google 등등 도메인이라고 한다. 우리가 흔히 아는 사이트 주소이다.
여기서 반전은 컴퓨터는 도메인 이름을 이해할 수 없다. 컴퓨터는 0,1 의 숫자 코드만 이해하기 때문이다. 모든 웹사이트는 최소한 1개의 IP주소를 가지고 있는데, 컴퓨터는 이 IP 주소를 알아야만 웹사이트에 접속할 수 있다. 우리가 유명인들의 이름을 알아도 그의 전화번호를 모르면 연락할 수 없는 것과 같은 이유이다.
도메인 이름을 IP 주소로 전환하기 위해 브라우저는 도메인 이름 서비스 줄여서 DNS를 이용한다. DNS는 방대한 주소록과 같다. 도메인과 IP 조합을 알아 낼 수 있다. 여기서 얻지 못하면 ISP(인터넷서비스사업자)에게 묻는다. 친척에게 전화번호를 물어보는 느낌과 비슷하다.
이제 브라우저는 우리가 접속할 IP 주소를 알았고 서버에 모든 정보를 취합한 요청을 보낸다. 서버는 요청을 받고 우리가 원하는 웹페이지를 보기 위한 코드를 불러낸다. 자바스크립트 + HTML + CSS 언어로 작성된 코드를 브라우저로 보낸다. 응답이 오면 브라우저는 이 코드를 이용해 사용자가 볼 수 있도록 웹페이지를 구성한다.
3. 인터넷 정보는 어떻게 전송될까?
웹페이지, 유튜브 영상, 페이스북 메세지들은 어떻게 우리 컴퓨터로 오는 것일까?
책에서는 이 과정을 핫소스 유통 과정에 비유한다. 한국으로 각색해서 이야기하면 다음과 같다.
고추장 마니아가 서울에서 순창으로 고추장 50통을 주문했다고 치자. 순창에서 직원이 주문을 확인하고 50통을 다 한 상자에 담기에는 무리라고 판단되어 5통씩 한 상자에 나눠 담는다. 그리고 받는 사람이 10상자라는 것을 알 수 있도록 상자에 1/10, 2/10 이렇게 번호를 표기한다. 직접 배달하기에는 거리가 너무 멀기 때문에 우체국을 통해 그나마 가까운 도시를 경유지를 삼아 6개, 4개 각각 나눠서 상자를 실어 보낸다. (트럭이 작아 6개가 최대라고 가정) 각 상자가 가까운 도시에 도착하면 그곳의 우체국 직원이 다시 더 가까운 곳으로 보낸다. 이 과정을 거쳐 주문자에게 배송된다.
상자에 라벨을 붙였기 때문에 고추장이 전부 도착했는지 알 수 있고 번호를 통해 2,4,5,1,7 등등 순서대로 도착한 것을 파악한다. 만약 번호 하나가 없다면 다시 직원에게 요청해 재배송받으면 된다.
이제 이걸 인터넷 개념으로 보자면 인터넷상의 정보는 TCP(전송제어 프로토콜)와 IP(인터넷프로토콜)를 통해 이 컴퓨터에서 저 컴퓨터로 전송된다. 두 프로토콜은 주문을 받는 직원과 비슷하다. 보통 웹페이지는 한번에 다 보내기에는 용량이 커 TCP가 다수의 패킷으로 소분한 후 각각에 라벨링을 해서 보낸다. 그리고 서버에서 사용자에게 보낼때 DNS를 통해 사용자의 IP 주소를 찾아 보낸다. 각 패킷이 짧은 연결로들을 경유하게 되는데 이때 이 연결로에서 저 연결로로 건너 가는 과정을 홉이라고 부른다. 패킷이 어떤 길로 가던간에 결국에는 목적지로 도착하게 되어있다. 패킷이 사용자에게 도착하면 1,2,3,4 순서대로 다시 재결합한다. 빠진 패킷이 있다면 웹사이트에 재전송을 요청한다.
추가로 패킷은 광케이블을 타고 이동한다. 유리로 제작되고 머리카락만큼 가늘고 빛의 조합으로 이동하기 때매 정보가 광속의 3/2에 달하는 엄청난 속도로 이동할 수 있는 것이다. 두 지점간의 최단거리는 직선이므로 직선에 가까운 케이블을 이용할 수록 속도가 빨라진다.
이상 IT 좀 아는 사람 리뷰였고, 그 밖에도 다양한 IT 이야기를 다루고 있으니 관심 있는 사람은 읽어보는 것을 추천!
ex) 스포티파이가 사용자에게 음악을 추천하는 원리, 페이스북의 뉴스피드가 뜨는 원리, 아마존의 비지니스 전략 등등
'지식' 카테고리의 다른 글
[도서] 그림과 작동 원리로 쉽게 이해하는 웹의 기초 / 서버의 기초 (2) | 2024.01.02 |
---|---|
[도서] 개발자 상식 (0) | 2023.12.17 |