Golang 책 딱 3가지만 추천하라고하면 늘 손 꼽히는 책들이 있다.Learning GoGo 100 Mistake터커의 GolangLearning Go, Go 100 Mistake는 워낙에 golang 판에서 유명한 책이다. 터커의 golang은 국내 유일무이한 국내
go는 여러 내장타입(built-in-type)으로 boolean, interger, float, string이 있다. go에서의 리터럴은 숫자, 문자 혹은 문자열을 쓰는 것을 나타낸다.정수(integer) 리터럴은 일련의 숫자이다. 기본적으로 10진수를 사용하여 접두
선언문이 있는 각각의 공간을 block이라고 부른다. 함수 외부에서 선언된 변수, 상수, 타입, 함수는 package내에 속한다. package내에 함수의 맨 상위에 있는 모든 선언문들, 변수들은 file블록 내에 있게 된다. 함수 내에서 중괄호({}) 세트는 다른 블
go함수의 기본적인 부분은 c, python 과 같이 일급 함수(first class function)을 가진 다른 언어로 프로그래밍을 해보았다면 쉽게 파악할 수 있다.위의 코드를 확인하면 함수는 4가지 부분으로 나눌 수 있다. func 키워드함수이름입력 파라미터타입입
포인터는 저장된 메모리의 위치 값을 가지고 있는 변수이다. 모든 변수는 하나 혹은 그 이상의 연속적인 메모리 공간에 저장되는데 그것을 address라고 부른다.서로 다른 타입의 변수들은 서로 다른 양의 메모리를 차지한다. 가령, int변수는 32비트를 차지하여 4byt
go 역시도 타입에 메서드를 붙일 수 있으며, 인터페이스를 통해 추상화를 할 수 있다. 그러나 다른 최신 언어들과 달리 go는 소프트웨어 엔지니어가 권장하는 모범 사례를 사용하도록 하고 구조적인 것을 권장하면서 상속을 피하도록 설계되었다. 구조체를 하나 정의해보자다음과
go는 함수의 마지막 반환값으로 error타입의 값을 반환하여 오류를 처리한다. 만약, 함수가 정상적으로 동작하였다면 error에 nil을 넣어 전달하면 된다.새로운 오류는 error패키지에 있는 New함수를 호출하면서 문자열과 함께 생성된다. 오류 메시지는 대문자를
golang은 정적 타입 언어이기 때문에 code가 컴파일되기 이전에 변수 또는 파라미터의 type을 확인한다. 그러나 때로는 변수의 type이 지정되지 않을 때가 있는데, 어떤 함수를 사용할 때 파라미터의 type을 지정하지 않고 그때그때 알맞은 type으로 처리하고
go에서 라이브러리 관리는 저장소, 모듈 그리고 패키지라는 개념에 기반한다. 저장소는 프로젝트를 위한 소스 코드가 저장된 버전 관리 시스템이다. 가령, github의 repository같은 것들이 있다. 모듈은 저장소에 저장된 go라이브러리나 응용 프로그램의 최상위 루
go의 장점 중 하나는 표준 라이브러리를 제공한다는 점이다. 해당 챕터에서는 가장 많이 사용되는 패키지와 디자인와 사용성이 관용적인 go의 원칙을 잘따르는 패키지들에 대해서 알아볼 것이다.데이터를 읽어 쓸 일이있는데, go의 입력/출력의 철학 중심은 io패키지에서 찾아
동시성(concurrency)는 computer science 용어로 single process를 독립적인 컴포넌트로 나누고, 어떻게 이 컴포넌트가 안전하게 데이터를 공유하는 지에 대해서 구체화한 것을 의미한다. 대부분의 프로그래밍 언어들은 os level thread
The Context 데이터를 전송하다보면 특정 request에 대하여 metadata를 설정하고 싶을 때가 있다. 보통 request를 전달-전달-전달하는 하나의 chain형식에서 해당 request에 대한 고유 속성을 부여해 특별한 처리를 해주고 싶을 때 사용한다.