Go 워커로 웹사이트 확인하기는 동시 작업을 조정할 준비가 된 Go 학습자를 위한 실습 프로젝트입니다. 행사 주최자가 개장 전에 준비된 로컬 웹사이트 진입점을 확인하도록 돕습니다. 실제 HTTP 요청을 보내고 할당된 각 작업에 정확한 JSON 결과를 하나씩 저장하는 재사용 가능한 명령을 만듭니다. 같은 URL을 공유하는 별도 작업도 각각 유지합니다.
두 개의 가이드 실습에서는 먼저 단일 대상 검사기를 완성한 뒤 작은 워커 풀로 작업을 나눕니다. 하나의 독립 챌린지에서는 워커 상한을 세 개로 하여 다른 행사 경로를 확인합니다. 각 단원은 자체 환경과 데이터로 시작합니다. 예상 시간은 약 155분이며, 읽기와 일반적인 수정을 포함한 저자의 추정치입니다.
학습 내용
과정을 마치면 다음을 수행할 수 있습니다.
- 각 작업의 ID와 원래 URL을 유지하며 다른 작업이 실패해도 결과를 정확히 하나 생성합니다.
- HTTP 거부, 예상과 다른 내용, 연결 오류, 시간 초과를 구분하고 응답 본문을 읽는 중의 실패도 처리합니다.
- HTTP 요청에 유한한 클라이언트 제한 시간을 설정하고 받은 응답 본문을 닫습니다.
- 고루틴과 채널로 작업을 나누고 채널을 닫을 책임을 설명하며
sync.WaitGroup으로 워커를 기다립니다. - 공유 컬렉션에 동시에 쓰지 않고 결과를 모으며 워커 상한 내에서 실제로 겹치는 요청을 관찰합니다.
- 완전한 JSON 보고서를 저장하고 읽으며 다른 완료 순서를 허용하고 빈 입력이나 워커보다 적은 작업도 처리합니다.
추천 대상
이 과정은 익숙한 함수와 데이터 구조를 유용한 동시성 명령줄 도구로 결합하려는 Go 학습자에게 적합합니다.
선수 지식: 기본 터미널 탐색, Go 함수, 구조체, 슬라이스, 모듈, 기본 채널 문법과 분실물 API 만들기 또는 동등한 HTTP 경험이 필요합니다. 고루틴, 채널 닫기 책임, sync.WaitGroup, 클라이언트 제한 시간, 응답 본문 정리는 사용 전에 설명합니다.
학습 환경: LabEx는 Go, 시작 코드, 통제된 로컬 HTTP 대상, 브라우저 기반 WebIDE를 제공합니다. Workspace 터미널에서 검사기를 실행하고 JSON 보고서를 읽으므로 Go를 로컬에 설치할 필요가 없습니다. 명령, 대상 콘텐츠, 프로그램 출력은 영어로 유지됩니다.
자주 묻는 질문
공개 웹사이트를 스캔하나요?
지연 시간이 유한한 준비된 로컬 대상만 확인합니다. 이 도구는 일회성 확인을 위한 것이며 지속적인 모니터링, 알림, 임의의 인터넷 조건에 대한 보장은 프로젝트 범위 밖입니다.
하나의 대상이 실패하면 다른 검사도 멈추나요?
각 입력 작업에는 자체 결과가 있어야 합니다. 서버의 HTTP 거부는 연결 오류와 다릅니다. 설정된 제한 시간이 지나면 클라이언트는 느린 응답을 기다리지 않으며 대상 서버는 나중에 처리를 마칠 수 있습니다. 응답을 받았다면 보고서에 HTTP 상태를 보존합니다.
챌린지에서는 무엇이 달라지나요?
작업 ID, URL, 예상 콘텐츠가 바뀌고 워커 상한이 세 개가 됩니다. 가이드 실습에서 연습한 메커니즘을 재사용합니다. 결과는 어떤 순서로 도착해도 되지만 모든 작업을 포함하고 동시성 상한을 지켜야 합니다.

