Golang
-
[Go] The Go Programming Language #1-6: URL 동시 반입Golang 2021. 11. 30. 04:44
이 시리즈는 "The Go Programming Language" 책을 바탕으로 작성되었습니다. 1.6 URL 동시 반입 Go의 가장 흥미롭고 기발한 측면 중 하나는 동시성 프로그래밍에 대한 지원이다. 이번에는 Go의 주요 동시성 매커니즘인 고루틴과 채널에 대해 간단하게 살펴본다. 예제를 통해 알아보기 이전 예제와 마찬가지로 URL의 내용을 반입하지만, 동시에 여러 URL에서 가져오기 때문에 전체 처리 시간은 각 반입 시간의 합이 아니라 가장 오래 걸릴 때의 시간이 됨. 이 함수는 결과를 버리는 대신 각 결과의 크기와 반입에 걸린 시간을 보고함. package main import ( "fmt" "io" "io/ioutil" "net/http" "os" "time" ) // URL을 병렬로 반입하고 시간..
-
[Go] The Go Programming Language #1-5: URL 반입Golang 2021. 11. 30. 04:39
이 시리즈는 "The Go Programming Language" 책을 바탕으로 작성되었습니다. 1.5 URL 반입 Go는 net 그룹의 하위 패키지로 인터넷을 통해 정보를 주고받고 저수준 네트워크 연결을 생성하며, 서버를 설정하기 쉽게 하는 패키지들을 제공한다. 예제를 통해 알아보기 HTTP로 정보를 가져오는 데 필요한 최소한의 개념을 설명하기 위한 예제 지정된 URL에서 내용을 가져오고 이를 원본 그대로 출력하는 프로그램을 작성해봄. os.Exit(1) 은 두 오류 중 어떤 경우에도 프로세스가 1의 상태 코드로 종료되게 함. package main import ( "fmt" "io/ioutil" "net/http" "os" ) func main() { for _, url := range os.Args..
-
[Go] The Go Programming Language #1-4: 애니메이션 GIFGolang 2021. 11. 30. 04:34
이 시리즈는 "The Go Programming Language" 책을 바탕으로 작성되었습니다. 1.4 애니메이션 GIF Go 에 내장된 표준 이미지 패키지의 기본 사용법을 알아본다. 이 패키지로 비트맵 이미지의 시퀀스를 생성한 후 애니메이션 GIF로 인코딩해볼 것이다. 리사주 그림 (lissajous figures) 1960년대 공상 과학 영화의 주된 시각 효과 이 그림들은 오실로스코프의 x, y 입력에 사인파를 넣은 것과 같은 경우에 표시되는 조화 진동을 2차원에 표시한 매개변수 곡선을 뜻함. 예제를 통해 알아보기 // Lissajous는 임의의 리사주 형태의 애니메이션 GIF를 생성한다. package main import ( "image" "image/color" "image/gif" "io" "..
-
[Go] The Go Programming Language #1-3: 중복 줄 찾기Golang 2021. 11. 30. 04:29
이 시리즈는 "The Go Programming Language" 책을 바탕으로 작성되었습니다. 1.3 중복 줄 찾기 대부분의 파일 복사, 인쇄, 검색, 정렬, 카운트 등을 수행하는 프로그램은 구조가 유사함. 입력을 순회하고, 각 원소를 계산하며, 그때그때 또는 마지막에 결과를 생성함. 유닉스 uniq 명령과 비슷한 프로그램을 작성해보자! 예제를 통해 알아보기 방법 1 : 표준 입력에 두 번 이상 나타나는 각 줄의 앞에 카운트를 추가해 출력 // Dup1 은 표준 입력에서 두 번 이상 나타나는 각 줄을 앞에 카운트를 추가해 출력함. package main import ( "bufio" "fmt" "os" ) func main() { counts := make(map[string]int) // 키는 문자열..
-
[Go] The Go Programming Language #1-2: 커맨드라인 인수Golang 2021. 11. 11. 05:47
이 시리즈는 "The Go Programming Language" 책을 바탕으로 작성되었습니다. 1.2 커맨드라인 인수 프로그램에서 작업할 입력 데이터는 대부분 파일, 네트워크 연결, 다른 프로그램의 출력, 사용자의 키보드 입력, 커맨드라인 인수 등 외부에서 들어온다. os 패키지 플랫폼에 독립적으로 운영체제를 제어하는 함수와 기타 값들을 제공함. 커맨드라인 인수는 os 패키지의 일부인 Args 변수로 사용할 수 있음. ⇒ os.Args os.Args 변수는 문자열의 슬라이스임. 동적인 크기를 갖는 배열 원소의 모음 정도로 생각하면 됨. 각 원소는 s[i] 로, 각 부분집합(원소 범위)은 s[m:n] 으로 접근할 수 있으며, 원소의 개수는 len(s) 로 알 수 있음. 첫 번째 원소인 os.Args[0]..
-
[Go] The Go Programming Language #1-1 : Hello, WorldGolang 2021. 11. 11. 05:36
이 시리즈는 "The Go Programming Language" 책을 바탕으로 작성되었습니다. 1.1 Hello, World 환경셋팅 참고 https://opentutorials.org/module/3972/24006 : 환경셋팅 튜토리얼 1. Go Download : https://golang.org/doc/install / https://golang.org/dl/ 2. VS Code Download : https://code.visualstudio.com/?wt.mc_id=DX_841432 3. Go 언어를 사용할 폴더에 첫 고언어 파일을 만들고 VS Code를 다시 열면, 고언어 확장이나 디버거등 여러 패키지를 설치하라고 뜸. ⇒ 모두 설치하면 됨! 예제를 통한 사용법 알아보기 1. 'hellow..