질문과 답변
Q. md5 메시지 요약 함수란?
md는 message disgest의 약자이다. md 함수는 해시 함수의 일종인데, f(원본 메시지) = (해당 메시지의 요약)인 것.
원본 메시지는 임의의 길이를 가질 수 있지만, 요약인 해시값은 고정 크기를 갖는다.
md 계열 함수들은 Rivest라는 사람이 만들었으며, md2, md4, md5를 거쳐서 발전했다.
SHA(Secure Hash Algorithm, 안전한 해시 알고리즘)함수들 역시 md4에 기반한다.
md2는 초기의 8비트 컴퓨터에 최적화되어 있는 8비트 버전이고, md4, md5는 32비트에 최적화되어 있다.
현재는 md5 알고리즘의 암호학적 취약성이 발견되었기 때문에, SHA-1과 같은 다른 알고리즘을 사용할 것이 권장된다.
자세한 알고리즘의 동작은 위키백과를 참고할 것.
ref: 정보통신용어기술해설 http://www.ktword.co.kr/abbr_view.php/abbr_view.php?nav=2&id=960&m_temp1=1071 ref: 위키백과 https://ko.wikipedia.org/wiki/MD5
Q. 가상 호스팅 문제에서 - 요청 URI로도 어떤 docroot에 접근해야 할지 구분할 수 있는 것 아닌가? 왜 무조건 디폴트 루트로 가게 되는 것인가?
URI에 대한 요청이, DNS를 거쳐서 최종적으로는 ip 주소로 변환되 날아가기 때문.
Q. 유저 에이전트가 로봇인 경우 어떻게 처리할까?
headless browser
ref: (HeadLess란? 부분 참) https://beomi.github.io/gb-crawling/posts/2017-09-28-HowToMakeWebCrawler-Headless-Chrome.html
Q. 구글의 랭킹 알고리즘에 대해 설명해보자.
ref: Google의 페이지 랭크 알고리즘 https://sungmooncho.com/2012/08/26/pagerank/
Pagerank
기본적인 개념은 논문처럼 피인용수가 높으면 그 페이지는 좋은 페이지라고 생각하는 것이다.
단순히 피인용 숫자만 더한다고 생각해보자. Rank(특정 페이지) = Rank(특페를 인용한 페이지1) + Rank(특페를 인용한 페이지2) + Rank(너무 길다 페이지3) + ... Rank(페이지n).
어떤 논문은 논문 1000개를 인용할 수도 있고, 어떤 논문은 논문 1개만 인용했을 수도 있다. 그런데도 각각의 인용 1개가 같은 가중치를 가지나? 아니다.
Rank를 정규화한다. 정규화한다는 것은 Rank(페이지) / (해당 페이지가 인용한 페이지 갯수) (이걸 F(페이지)라고 하자)
랭킹이 높은 페이지들이 인용을 많이 할수록 해당 페이지도 랭킹이 올라간다.
식이 Rank(특정 페이지) = F(걔 인용한 다른 페이지) + F(다른 페이지2) + ... + F(다른 페이지3)
근데 사람들이 무한히 클릭만 하고 있지는 않고, 언젠가는 만족하고 멈추지 않는가? 그니까 그 페이지에 링크가 걸려 있어도 꼭 누르지 않을 수도 있다. 그래서 링크 누를 확률인 damping factor라는 것을 곱해준다. (ref 참고)
Q. 로봇이 방문한 URL 탐색을 위해 사용하는 자료구조 중 트리는 어떤식으로 이뤄져 있을까?
Q. 만약 웹페이지 컨텐츠가 browser history 에 종속적이라면 (script 파일에 종속적이라면) 크롤러는 이에 대해 무방비 상태가 될까?
Q. 사악한 웹 마스터가 로봇을 함정에 빠트릴 수 있는 함정들은 무엇들이 있을까?
Q. 사적 용도(서치엔진이 아닌데도)로 로봇을 사용해도 되는가?
Q. 느슨한 존재 비트맵 설명만으론 해시 테이블과 크게 다른 것 같지 않은데..
Q. 크롤러는 웹 서버가 가상 호스팅을 지원하는지, IP 주소가 같은 장비를 가리키는지 등의 정보를 어떻게 알 수 있나?
Q. 페이지 콘텐츠에서 어느 정도 크기의 바이트를 얻어오고 또 어떻게 생성?
Q. 현재는 가상호스팅 환경에서 로컬 robots.txt 파일을 개별 서브디렉터리에 설치할 수 있나?
Q. 딥 웹의 원리는? 단순히 robots.txt에서 모든 크롤링을 막아놓은 것인가?
Last updated
Was this helpful?