프로그래밍 언어/Go

    Go: 함수 (익명함수, 스코프, 고루틴, 지연호출)

    함수 Go 가 다른 언어가 다른 점은 클래스가 없다는 점이다. 메서드라고 표현하는 것마저도 표현 방식이 다를 뿐 일반 함수와 아주 유사하게 표시된다. 메서드에 대해서는 추후 알아보기로 하고, 지금부터는 Go 의 일반적인 함수에 대해 알아본다. 함수는 로직이나 알고리즘을 묶은 코드의 집합이다. 함수형 프로그래밍에서는 기본 단위로 사용되기도 한다. 함수를 사용하는 가장 큰 의미는 중복을 제거하는 일이다. 이것이 가장 먼저이며 그 다음으로는 함수 내부는 블랙박스로 하여 구현에 상관없이 추상화를 하여 함수 단위로 프로그램을 구성할 수 있도록 만드는 것이다. 함수의 입력과 출력만 알고 있으면 구현과 관계 없이 프로그램을 구성할 수 있다. 여기서 함수는 프로그램을 구성하는 기본 단위로써 동작한다. 아래의 코드는 G..

    Go: 변수와 상수 (var, const)

    Go 는 정적 타입 언어다 이번 포스트에서는 Go 에서 변수와 상수에 대해 알아보자. 변수를 코드에서 사용하고 활용하는 법에 대해 알아보기전에 먼저 알아야할 사항이 있다면, Go 는 정적 타입 언어라는 점이다. 정적 타입은 컴파일 타임에 타입이 결정되며 런타임 중에 동적으로 타입이 변경될 수 없음을 말한다. 인터프리터를 사용하는 동적 언어인 자바스크립트, 파이썬과는 전혀 다른 성격을 띄고 있다. 정적 타입을 가진 언어는 대체로 빠른 속도를 가진다. 런타임 중에 타입을 추론하거나 그로 인해 다시 한 번 최적화를 진행해야 하는 상황이 발생하지 않기 때문이다. 이러한 정적 타입 언어에는 대표적으로 C 가 있다. Go 는 구글이 개발했지만, 마이크로소프트 또한 타입을 무척이나 좋아하기 때문에 C/C++/C#/T..

    Go: Hello, Go

    이 블로그에 쓰는 첫 번째 Go 포스팅이다. 여기서는 Go 의 Hello, world 프로그램을 작성해보고 분석해보며, Go 의 몇 가지 특징도 함께 언급해보기로 하겠다. 보통 프로그래밍 진입할 때 바로 Go 로 하는 경우는 별로 없기에 프로그래밍 입문자를 위한 포스팅은 아니라고 볼 수 있다. 프로그래밍에 대해서 아무것도 모르는 상태에서 보기엔 어려울 수도 있으니 읽을 때 모르는 부분이 있다면 과감하게 넘기거나 검색을 해보자. Hello, Go Go 의 Hello, Go 코드는 다음과 같다. 이 코드만 보더라도 설명 해볼만한 것이 상당히 있다. 소스 파일의 hello.go 라고 가정했을 때, go run hello.go 를 통해 실행해보면 Hello, Go! 라는 문구가 콘솔에 출력될 것이다. packa..