Go Template

Go Template많은 언어들이 문서를 다른 형태로 변환하는 기능을 가지고 있다. Go는 컨텐츠에 포함된 특정 문자열을 변환하거나 삽입하는 템플릿 매커니즘을 제공한다. 템플릿은 특히 처리 결과를 HTML 문서로 표시하기 위해서 널리 사용한다. 많은 컨텐츠들은 고정된 부분과 동적인 부분으로 구성이 된다. 이름, 전화번호, E-mail, 주소 같은 것들은 ...

예제로 살펴보는 Go : Closures

Go는 클로져(혹은 anonymous function이라고 부르는) 지원한다. 익명 함수(Anonymous function)는 코드 중간에 이름 없이 함수를 정의하기 위해서 사용한다. 이름이 없기 때문에 외부에서 사용 할 수 없다. 실용적인 관점에서는 데이터가 오직 하나의 메서드만 가지고 있을 때, 데이터가 정의된 함수 내에서 처리 하고자 할 때 사용한다....

golang 네트워크 프로그래밍

golang 네트워크 프로그래밍이 문서의 원문은 http문서는 원문에 대한 번역물로 몇몇 부분에서 변경이 있을 수 있다. 번역은 다음의 과정을 거친다. 초벌 번역 Copy & Paste 하는 코드는 없다. 문서의 모든 코드는 직접 만들고 테스트 한다. 번역 감수 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. HTML 1. 1...

예제로 살펴보는 Go : Variables

Go에서 변수는 명시적으로 선언되며, 컴파일시간에 정확히 선언했는지를 검사하게 된다. 선언하고 사용하지 않은 변수들에 대해서는 경고가 아닌 에러를 발생하며, 컴파일 실패한다.C/C++ 언어와 비교해서 선언 방법에 차이가 있다. C 언어의 경우 int a 와 같이 타입이 먼저 오는데 반해, go는 이름이 먼저오고 그 다음에 타입이 온다. 타입을 검사하는 자바...

예제로 살펴보는 Go : Command Line Arguments

명령행 인자(Command-line arguments)는 프로그램에 데이터를 넘기기 위해서 사용한다. 예를 들어 go run hello.go의 경우 run 과 hello.go 를 go 프로그램의 명령행 인자로 사용하고 있다. os.Args는 슬라이스 자료구조로, 명령행 인자들을 저장한다. 슬라이스의 첫번째에는 명령행 인자가 아닌 실행 프로그램의 이름이 들...

예제로 살펴보는 Go : Line Filters

라인 필터(Line Filters)는 표준입력 혹은 파일로 부터 읽은 데이터를 변형해서 출력하기 위해서 사용한다. grep이나 sed 같은 프로그램들이 전형적인 라인필터 프로그램이다. grep 같은 경우 데이터를 줄 단위로 읽어서 일치하는 문자열이 있으면 출력하고, sed는 문자열을 치환하거나 삭제하는 등의 일을 한다. bufio.NewScanner를 이...

예제로 살펴보는 Go : 파일 쓰기

파일 쓰기도 파일 읽기와 비슷하다.ioutil.WriteFile 메서드로 바이트 데이터를 파일에 저장했다. 데이터의 크기를 알고 있으며, 크기가 별로 크지 않다면 간단하게 사용 할 수 있다. 저수준에서 파일을 쓰려면 os.Create로 파일을 열고, Write, WriteString과 같은 저수준 메서드를 이용해서 쓰기작업을 해야 한다. Sync와 Flus...

예제로 살펴보는 Go : 파일 읽기

많은 Go 프로그램들이 파일읽기와 쓰기는 기본 기능이다. 예제를 보자. 에러처리를 위해서 check 메서드를 만들었다. error가 nil이 아니면, 프로세스를 종료한다. 예제코드는 /tmp/runner/dat.txt 파일을 읽어서 테스트한다. 이 파일은 아래의 데이터를 가지고 있다.Hello world!!My naime is goioutil.ReadFil...

예제로 살펴보는 Go : Base64 Encoding

base64는 바이너리 데이터를 문자코드에 영향을 받지 않도록 ASCII 코드들로 인코딩하는 기술을 가리키는 개념이다. 이메일을 통한 데이터통신에 많이 사용하고 있다. encoding/base64패키지를 이용해서 데이터를 base64로 인코딩 혹은 디코딩 할 수 있다. base64를 모두 쓰기 귀찮아서 별칭인 b64를 쓰기로 했다. 예제코드는 string ...

예제로 살펴보는 Go : SHA1 Hashes

종종 SHA1 hashes는 바이너리 파일이나 텍스트파일을 식별하기 위한 문자열을 만들기 위해서 사용한다. 예를들어서 git revision control system은 SHA1을 이용해서 파일과 디렉토리의 버전을 만든다. Go로 SHA1 해시를 만들어보자. Go의 crypto/패키지는 다양한 해시 함수 구현을 가지고 있다.sha1.New()메서드를 호출...