오늘은 go를 통해서 URL체커를 만들 것이다.
url을 입력받고 통신이 되는 유효한 url인지 체크를 하고
유효하다면 OK, 유효하지 않다면, Failed를 뱉어내는 함수이다.
작업은 main 함수에서 이뤄짐
main함수 내에서는
result를 담을 map을 만들어준뒤, 값을담고
입력받은 url에 대해서 전체 for문을 돌려 hitURL함수를 호출한다.
호출할 hitURL함수에 대해서 정의해보자.
에러가 nil값이 아니거나, response의 status code가 400일 경우
errRequestFailed 에러를 뱉는다. 해당에러는 main.go 상단에 정의하였다.
go run main.go를 실행하여 결과값을 확인해보면
잘 출력된다. 전부 OK가 뜸
마지막 URL을 유효하지 않은 아무 url을 출력하여 다시 검사해본다.
에러를 뱉어줌
위와같이 작업하여 url체커를 만들어보았다.
해당 url체커가 동작하는 방식은
url이 있으면 하나를 체크하고, 순서대로 다음 url을 하나하나 탐색한다.
이방식은 자바스크립트나, 파이썬이 하는 방식인데 우리는 다른 방법을 원함
우리가 원하는 방식은 모든 작업을 동시에 한번에 하는 것 -> "최적화하는 것"
예를 들어 ) 전체 URL을 체크하는 데에 url하나당 1초씩 걸리고, 마지막 url 작업이 2초가 걸린다면
기존 프로그램에서는 10개 url을 체크하는데에 "12초"가 걸릴것이다.
허나 우리가 작성하고싶은 프로그램에서는 "2초"안에 모든것을 처리하게 된다.
하나씩 체크하는 것이 아니라, 모든 url을 동시에 체크하고 싶은것.
이게 우리가 go를 사용하고 배워야할 이유이다.
다음시간에는 그 방식을 배워볼 것이다.
기대하쇼~
[Go] 사전을 만들어보자 (0) | 2023.02.12 |
---|---|
[GO] map의 활용 (0) | 2023.02.09 |
[GO] go의 자동호출 메소드 String (0) | 2023.02.08 |
Go Structors 패턴, Go Exception(고는 에러처리를 못해?!!? 궁금하면 들어오쇼) (0) | 2023.01.30 |
Go기초 (8) - Structs(커스텀 데이터타입) (0) | 2023.01.29 |