Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

4주차 문제 - 8장 (URL 단축기 설계) ~ 9장 (웹 크롤러 설계) #10

Open
hodadako opened this issue Dec 5, 2023 · 5 comments
Assignees

Comments

@hodadako
Copy link
Member

hodadako commented Dec 5, 2023

8장 (URL 단축기 설계)

  • 단축기 설계시 서버 부하를 줄이는 방법 중에 301 Permanently Moved를 쓸 수 있습니다. 해당 방법의 장점을 설명해주세요.
    서버 부하를 줄임
  • 계산된 해시 값에서 처음 7개 글자만 이용하는 방법은 무엇일까요? (이 방법을 이용하면 해시 결과가 충돌할 확률이 높아집니다.)
    해시 후 충돌 해소

9장 (웹 크롤러 설계)

  • 웹은 유향 그래프와 비슷한 구조로 되어 있습니다. 그래프 탐색 기법에는 DFS와 BFS가 있는데 어떤 방식을 써야 좋을까요?
    BFS, 그래프가 어느 정도로 깊어질 수 있을지 모르기 때문에 너비 우선 탐색으로 한다.
  • 도메인 이름 변환 결과 캐시에 대해 설명해 주세요.
    DNS 요청은 동기적 통신을 통해 결과를 받기 때문에 스레드 중 하나가 이 작업을 하고 있으면 다른 스레드의 DNS 요청은 모두 블락 된다. 따라서 DNS 조회 결과로 얻어진 도메인 이름과 IP 주소 사이의 관계를 캐시에 보관해 놓고 주기적으로 갱신하도록 해 놓으면 성능을 효과적으로 높일 수 있다.
@yoonseon12
Copy link
Member

yoonseon12 commented Dec 5, 2023

8장

  1. 해당 URL에 대한 HTTP 요청의 처리 책임이 영구적으로 Location 헤더에 반환된 URL로 이전되었다는 HTTP 응답은 ?
  2. 62진법 변환은 URL 단축기를 구현할 때 흔히 사용되는 접근법이다. 왜 64진법이 아닌 62진법을 자주 사용할까요?

9장

  1. 웹사이트와 크롤러와 소통하는 표준적 방법으로 크롤러가 수집해도 되는 페이지 목록이 들어있는 이 파일은 무슨 파일인가요?
  2. 나중에 사용할 목적으로 장기보관하기 위해 웹에서 정보를 모으는 절차를 뜻하는 단어는 무엇인가요?

답변

  1. 301 Permanently Moved
  2. base62는 대소문자 알파벳과 숫자만 사용하므로 62개의 문자를 사용. base64는 '+', '/'를 추가로 사용한다.
    따라서 특수문자를 제외한 순수 숫자와 알파벳으로만 인코딩하기 때문에 단축 URL에서 사용함.
  3. Robots.txt(로봇 제외 프로토콜)
  4. 웹 아카이빙

@Hju95
Copy link
Collaborator

Hju95 commented Dec 5, 2023

8장 (URL 단축기 설계)

  • 해시 후 충돌 해소 전략과 base-62 변환 , 이 두 접근법 중 유일성 보장 ID 생성기가 필요한 것은?
    A : base-62 변환
  • URL 리디렉션 상세 설계에서 로드 밸런스의 동작 흐름으로 올바른 순서는?
  1. 단축 URL이 이미 캐시에 있는 경우에는 원래 URL을 바로 꺼내서 클라이언트에게 전달한다.
  2. 데이터베이스에서 꺼낸 URL을 캐시에 넣은 후 사용자에게 반환한다.
  3. 사용자가 단축 URL을 클릭한다.
  4. 캐시에 해당 단축 URL이 없는 경우에는 데이터베이스에서 꺼낸다. 데이터베이스에 없다면 아마 사용자가 잘못된 단축 URL을 입력한 경우일 것이다.
  5. 로드밸런스가 해당 클릭으로 발생한 요청을 웹 서버에 전달한다.

A : 3-5-1-4-2

9장 (웹 크롤러 설계)

  • 크롤러를 무한 루프에 빠뜨리도록 설계한 웹 페이지를 뭐라고 하나요?
    A : 거미 덫
  • URL 재수집 작업을 최적화하기 위한 전략이다. ? 에 들어갈 말은?
    • 웹 페이지의 ? 활용
    • 우선순위를 활용하여, 중요한 페이지는 좀 더 자주 재수집
      A : 변경 이력

@c0olcode
Copy link
Member

c0olcode commented Dec 5, 2023

8장 (URL 단축기 설계)

  • 서버 부하를 줄이는 것이 중요할 때 사용하는 URL 리디렉션 방법은 무엇인가요?
    : 301 Permanent moved
  • 실제 시스템에서는 <단축URL, 원래URL>의 순서쌍을 어디에 저장하나요?
    : 관계형 데이터베이스

9장 (웹 크롤러 설계)

  • 웹 크롤러 구현 시, 주로 사용하는 그래프 탐색 알고리즘은?
    : BFS
  • 광고, 스크립트 코드, 스팸 URL 같은 가치 없는 콘텐츠를 무엇이라 하나요?
    : 데이터노이즈

@oxix97
Copy link
Collaborator

oxix97 commented Dec 5, 2023

8장 URL 단축기 설계

  1. URL단축을 하는 목적에 대해 설명해주세요(책에 왜 단축해야하는지 안나와서 문제 냄)
    A) 가독성문제, 트위터와 같이 문자 수 제한이 있는 경우 단축 URL을 사용하여 더 많은 정보를 담을 수 있기 때문, URL이 짧으면 링크를 추적하고 분석하기가 더 쉽다. ex) 클릭 수, 디바이스 유형, 지역 정보...
  2. �해시 후 충돌 해소하는 방법
    A) bloom filter를 쓰는 방법 또는 충돌이 해소 될 때까지 사전에 정한 문자열을 해시값에 덧붙인다.

9장 웹 크롤러 설계

  1. 중복 콘텐츠를 막기 위한 효과적인 HTML 문서 비교 방법은 무엇일까요?
    A) 웹페이지의 해시값을 비교
  2. 올바른 형식을 갖춘 페이지인지 검증하는 독립된 컴포넌트의 이름은 무엇일까요?
    A) 콘텐츠 파서

@GBGreenBravo
Copy link
Collaborator

GBGreenBravo commented Dec 5, 2023

8장 (URL 단축기 설계)

  • 다음 문장의 빈칸에 들어갈 단어는 무엇일까요?
    URL 단축기 구현 시 사용되는 base-62 변환 접근법은, ID의 ( )이 보장된 후에야 적용 가능한 전략이라 충돌이 불가능하다.
  • 유일성

9장 (웹 크롤러 설계)

  • 아래 그림은 웹 크롤러 작업 흐름을 나타내는 다이어그램입니다.

    image

    • 1번 과정이 시작되기 전, URL 저장소에는 어떤 URL 데이터가 저장돼 있을까요?
    • 시작 URL 집합
  • 웹 크롤러에서 URL 탐색에 BFS를 사용할 때, 예상되는 문제점이 아닌 것은?

    1. 처리 순서에 있어 모든 페이지를 공평하게 대우함.
    2. 동시성의 어려움으로 인해 분산환경에 적용하기 어렵다.
    3. 동일 서버[동일 호스트]로의 수많은 요청.
  • 2번; DFS는 단일 스레드로 동작하므로 큰 규모의 웹을 크롤링할 때 시간이 오래 걸릴 수 있습니다.

  • 다음 문장의 빈칸에 들어갈 단어는 무엇일까요?
    DNS Resolver(도메인 이름 변환기)는 크롤러 성능의 병목 중 하나인데, 이는 DNS 요청을 보내고 결과를 받는 작업의 ( )적 특성 때문이다.

  • 동기

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants