🧱 웹 크롤러 만드는 여정 – 중학생처럼 쉽게 설명
🧩 1단계: “웹페이지를 가져오는” 로봇 만들기
- 우리가 웹사이트를 열면 그 안에 글이나 사진이 있잖아?
- 이걸 컴퓨터가 대신 열고 HTML이라는 형식으로 가져오게 만들어
- 예: https://example.com 을 열어서 거기 글자들을 가져오는 코드
🧪 예시:
🧩 2단계: 해야 할 주소 목록 만들기 (큐 만들기)
- “어디 가서 정보 가져올까?” 목록을 저장하는 큐(queue) 라는 줄 세우기 장치를 만들어
- 예: ["https://a.com", "https://b.com"] 처럼 주소를 저장하고 하나씩 꺼내서 처리해
🧩 3단계: HTML 저장소 만들기 (문서 보관함)
- 가져온 웹페이지는 나중에 다시 보려고 저장해둬야 해
- 컴퓨터 안의 파일로 저장하거나 S3 같은 저장소에 올려
- 예: example_com.html 이라는 이름으로 저장
🧩 4단계: 주소 상태 적어두기 (메모장 만들기)
- 어떤 주소를 언제 갔다 왔는지, 실패했는지 기록해두는 메모장을 DB나 파일로 만들어
- 나중에 같은 주소 중복해서 안 가게 하려고!
🧩 5단계: HTML 속 링크 찾아서 다시 줄 세우기
- 웹페이지 안에는 <a href="..."> 링크가 들어있지?
- 그걸 컴퓨터가 찾아서 “어? 새로운 주소네!” 하고 다시 큐에 넣는 거야
🧩 6단계: 일하는 애들 나눠서 시키기 (분업)
- 웹페이지 가져오는 애(Crawler)랑 HTML 파는 애(Parser)를 나눠
- 가져온 건 저장만 하고, 다른 프로그램이 파싱하게 만들어 (줄서서 기다리는 큐 사용)
🧩 7단계: 실패했을 때 다시 해보기
- 어떤 사이트는 갑자기 에러가 나거나, 잠깐 끊길 수 있어
- 재시도 기능을 만들어서, “3번까지 다시 해보고 그래도 안 되면 보류” 이렇게 만들 수 있어
🧩 8단계: 서버한테 예의 차리기 (Politeness)
- 너무 빠르게 막 요청하면 웹사이트 주인이 싫어해
- “1초에 한 번만 요청하자” 같은 규칙을 정하고 지켜줘야 해
- 그리고 robots.txt라는 사이트 규칙 파일도 꼭 읽고 따라야 해
🧩 9단계: 같은 링크 또 안 가게 하기
- 이미 갔던 주소는 다시 가지 말아야 해
- 또는 내용이 똑같은 페이지면 스킵해야 함
- 그래서 중복 제거 기능도 만들어야 해
🧩 10단계: 친구들 불러서 같이 하기 (확장)
- 하나의 컴퓨터만 하지 말고, 여러 대가 나눠서 하면 훨씬 빠르지!
- AWS 서버나 Docker 써서 여러 크롤러가 동시에 일하도록 만들 수 있어
- 그리고 잘 돌아가는지 확인하려면 로그랑 그래프도 만들어야 해 (CloudWatch나 Grafana)
'미국유학 > Hello 시스템디자인스터디' 카테고리의 다른 글
4.22(화) Ad click aggregator (0) | 2025.04.23 |
---|---|
25.04.18 금, Twitter (0) | 2025.04.19 |