웹 크롤러 설계 및 라이브 코테
2025/06/27
스터디 진행 일시
날짜 : 6월 27일 (금요일)
시간 : 오후 6시 ~ 9시 (3시간)
장소 : 강남 (오프라인)
🔧 금주 스터디 일정
- 개발 책 9장 - 웹 크롤러 설계 읽기
- 라이브 코테 진행
9장 읽기전에, 웹 통신 개념 훑기
- 사용자가
naver.com으로 접속할 때 어떤 과정을 거칠까?
- 도메인 이름을 IP 주소로 변환 (DNS 조회)
naver.com은 사람이 이해하기 쉬운 도메인 이름이다.
- 브라우저는 이 도메인을 컴퓨터가 이해할 수 있는 IP 주소로 변환해야 한다.
- 우선, 로컬 DNS 캐시 → 운영체제의 hosts 파일 → DNS 서버 순서로 조회가 진행된다.
- 만약 DNS 서버에 정보가 없다면, ISP(KT 등)의 DNS 서버나 루트 DNS → TLD DNS → 권한 DNS 서버를 통해 IP를 찾는다.
- TCP 연결 수립 (3-Way Handshake)
- IP 주소를 찾으면, 해당 서버와 연결을 시작한다.
- 이때 TCP 프로토콜을 사용하는 경우,
3-Way Handshake를 통해 연결을 수립한다.
- 클라이언트가 SYN 전송 → 서버가 SYN-ACK 응답 → 클라이언트가 ACK 전송 → 연결 완료
- HTTP 요청 및 응답 (정적 리소스 전송)
- 연결이 완료되면, 브라우저는
GET / 요청을 보내고 서버는 HTML, CSS, JS, 이미지 등의 리소스를 응답한다.
- 이때, 네이버와 같은 대형 서비스는 CDN(Content Delivery Network)을 통해 전 세계적으로 빠르게 리소스를 전송한다.
- 정적 리소스는 캐시되어 CDN 서버에서 직접 응답되기도 한다.
- 페이지 렌더링 및 연결 종료 (4-Way Handshake)
- 브라우저는 받은 리소스를 기반으로 페이지를 렌더링한다.
- 페이지 렌더링 후 연결을 끊기 위해 TCP에서는
4-Way Handshake를 사용한다.
- 종료 요청(FIN) → 확인 응답(ACK) → 상대 측 종료 요청(FIN) → 마지막 확인 응답(ACK)
📖 개발 책 9장
- 9장
- 9장은 “웹 크롤러 설계”에 관한 내용을 다룬다.
- 웹 크롤러란 무엇일까?
- 웹 페이지의 HTML 구조를 자동으로 읽어와 필요한 정보를 추출하는 프로그램이다.
- 주로 검색 엔진, 데이터 수집, 인공지능 학습용 데이터 확보 등에 사용된다.
- 현재 진행 중인 Echo 프로젝트에 “웹 크롤링”으로 수집한 데이터를 넣는다면, 어떻게 적용할 수 있을까?
- 예를 들어, 사용자 취향에 맞는 콘텐츠를 추천하거나, 외부 데이터를 분석하여 서비스를 고도화하는 데 활용할 수 있다.
- 크롤링한 데이터를 정제 후 DB에 저장하고, 이를 API로 제공하면 Echo 프로젝트의 기능과 자연스럽게 통합할 수 있다.
- 웹 크롤링은 텍스트만 가능할까?
- 아니다. 이미지, 동영상, 오디오 등도 크롤링할 수 있다.
- 이미지를 크롤링할 때, 내가 원하는 이미지만 가져오려면 어떻게 해야 할까?
- 이미지에 포함된
alt 속성이나 HTML의 meta 태그 등을 참고할 수 있다.
- 예를 들어,
alt="고양이가 책상 위에 앉아 있음"과 같은 정보를 활용해 조건 필터링이 가능하다.
- 그런데
alt와 meta 태그는 왜 있는 걸까?
- 이는 시각장애인을 위한 스크린 리더(내레이터) 지원, 그리고 검색 엔진 최적화(SEO)를 위한 목적이다.
💻 라이브 코테
- 문제 : https://leetcode.com/problems/spiral-matrix/description/