스터디 진행 일시
날짜 : 6월 27일 (금요일) 시간 : 오후 6시 ~ 9시 (3시간) 장소 : 강남 (오프라인)


🔧 금주 스터디 일정
  • 개발 책 9장 - 웹 크롤러 설계 읽기
  • 라이브 코테 진행


9장 읽기전에, 웹 통신 개념 훑기
  • 사용자가 naver.com으로 접속할 때 어떤 과정을 거칠까?
    1. 도메인 이름을 IP 주소로 변환 (DNS 조회)
      • naver.com은 사람이 이해하기 쉬운 도메인 이름이다.
      • 브라우저는 이 도메인을 컴퓨터가 이해할 수 있는 IP 주소로 변환해야 한다.
      • 우선, 로컬 DNS 캐시 → 운영체제의 hosts 파일 → DNS 서버 순서로 조회가 진행된다.
      • 만약 DNS 서버에 정보가 없다면, ISP(KT 등)의 DNS 서버나 루트 DNS → TLD DNS → 권한 DNS 서버를 통해 IP를 찾는다.
    2. TCP 연결 수립 (3-Way Handshake)
      • IP 주소를 찾으면, 해당 서버와 연결을 시작한다.
      • 이때 TCP 프로토콜을 사용하는 경우, 3-Way Handshake를 통해 연결을 수립한다.
        • 클라이언트가 SYN 전송 → 서버가 SYN-ACK 응답 → 클라이언트가 ACK 전송 → 연결 완료
    3. HTTP 요청 및 응답 (정적 리소스 전송)
      • 연결이 완료되면, 브라우저는 GET / 요청을 보내고 서버는 HTML, CSS, JS, 이미지 등의 리소스를 응답한다.
      • 이때, 네이버와 같은 대형 서비스는 CDN(Content Delivery Network)을 통해 전 세계적으로 빠르게 리소스를 전송한다.
      • 정적 리소스는 캐시되어 CDN 서버에서 직접 응답되기도 한다.
    4. 페이지 렌더링 및 연결 종료 (4-Way Handshake)
      • 브라우저는 받은 리소스를 기반으로 페이지를 렌더링한다.
      • 페이지 렌더링 후 연결을 끊기 위해 TCP에서는 4-Way Handshake를 사용한다.
        • 종료 요청(FIN) → 확인 응답(ACK) → 상대 측 종료 요청(FIN) → 마지막 확인 응답(ACK)


📖 개발 책 9장
  • 9장
    • 9장은 “웹 크롤러 설계”에 관한 내용을 다룬다.
    • 웹 크롤러란 무엇일까?
      • 웹 페이지의 HTML 구조를 자동으로 읽어와 필요한 정보를 추출하는 프로그램이다.
      • 주로 검색 엔진, 데이터 수집, 인공지능 학습용 데이터 확보 등에 사용된다.
    • 현재 진행 중인 Echo 프로젝트에 “웹 크롤링”으로 수집한 데이터를 넣는다면, 어떻게 적용할 수 있을까?
      • 예를 들어, 사용자 취향에 맞는 콘텐츠를 추천하거나, 외부 데이터를 분석하여 서비스를 고도화하는 데 활용할 수 있다.
      • 크롤링한 데이터를 정제 후 DB에 저장하고, 이를 API로 제공하면 Echo 프로젝트의 기능과 자연스럽게 통합할 수 있다.
    • 웹 크롤링은 텍스트만 가능할까?
      • 아니다. 이미지, 동영상, 오디오 등도 크롤링할 수 있다.
      • 이미지를 크롤링할 때, 내가 원하는 이미지만 가져오려면 어떻게 해야 할까?
        • 이미지에 포함된 alt 속성이나 HTML의 meta 태그 등을 참고할 수 있다.
        • 예를 들어, alt="고양이가 책상 위에 앉아 있음"과 같은 정보를 활용해 조건 필터링이 가능하다.
        • 그런데 altmeta 태그는 왜 있는 걸까?
          • 이는 시각장애인을 위한 스크린 리더(내레이터) 지원, 그리고 검색 엔진 최적화(SEO)를 위한 목적이다.


💻 라이브 코테
  • 문제 : https://leetcode.com/problems/spiral-matrix/description/
    • 제한 시간 내 최대한 풀어풀기.