main.go

package main

import (
	"errors"
	"fmt"
	"net/http"
)

var errRequestFailed = errors.New("Request Failed")

func main() {
	//비어있는 맵은 이렇게 만들거나 make를 사용한다 make(map[string]string)
	var results = map[string]string{}

	//Slice형 배열
	urls := []string{
		"https://www.airbnb.com/",
		"https://www.google.com/",
		"https://www.amazon.com/",
		"https://www.reddit.com/",
		"https://www.soundcloud.com/",
		"https://www.facebook.com/",
		"https://www.instagram.com/",
		"https://academy.nomadcoders.co/",
	}

	for _, url := range urls {
		result := "OK"
		err := hitURL(url)
		if err != nil {
			result = "FAILED"
		}
		results[url] = result
	}
	for url, result := range results {
		fmt.Println(url, result)
	}
}

func hitURL(url string) error {
	fmt.Println("Checking:", url)

	resp, err := http.Get(url)
	if err != nil || resp.StatusCode >= 400 {
		fmt.Println(err, resp.StatusCode)
		return errRequestFailed
	}
	return nil
}

 

 

이 코드를 실행해보시면 아시겠지만, 다른 프로그램 언어를 제쳐두고

Go를 사용할 이유가 없는 코드입니다.

왜냐? 순서대로 하나씩 체크하기 때문이죠.

 

하지만 고를 쓰는 이유는 그게 아닙니다. 한번에 모두를 체크하고 싶기 때문에 사용하는 것이죠.

다음은 이에따라 Goroutines를 배워봅시다.

+ Recent posts