base64는 바이너리 데이터를 문자코드에 영향을 받지 않도록 ASCII 코드들로 인코딩하는 기술을 가리키는 개념이다. 이메일을 통한 데이터통신에 많이 사용하고 있다. encoding/base64패키지를 이용해서 데이터를 base64로 인코딩 혹은 디코딩 할 수 있다. base64를 모두 쓰기 귀찮아서 별칭인 b64를 쓰기로 했다. 예제코드는 string ...
종종 SHA1 hashes는 바이너리 파일이나 텍스트파일을 식별하기 위한 문자열을 만들기 위해서 사용한다. 예를들어서 git revision control system은 SHA1을 이용해서 파일과 디렉토리의 버전을 만든다. Go로 SHA1 해시를 만들어보자. Go의 crypto/패키지는 다양한 해시 함수 구현을 가지고 있다.sha1.New()메서드를 호출...
웹 애플리케이션을 만들다 보면 문자열을 조작해야 하는 경우가 많다. Go net/url 패키지로 URL을 조작할 수 있다.테스트에 사용 할 URL은 "postgres 스키마 url.Parse 메서드로 URL을 파싱할 수 있다. 파싱하고 나면 url.URL 구조체를 반환한다. 주요한 메서드와 값들을 정리했다. URL.Scheme URL.User URL.H...
문자열을 숫자로 변환하는 것은 기본적인 작업이지만, 많은 프로그래머들이 어려워하는 작업이기도 하다. Go를 이용해서 문자열을 숫자로 바꿔보자.strconv 패키지로 문자열을 숫자로 변환할 수 있다. ParseFloat는 문자열을 float타입으로 인식해서 변환한다. ParseInt는 integer 타입으로, ParseUint는 unsigned int로 변환...
Go의 math/rand패키지로 의사난수(pseudorandom number)를 만들 수 있다.rand.Intn(n)은 0 <= n < 100 사이의 interger형 난수를 반환한다. rand.Float64는 0.0 <= f < 1.0 사이의 float형 난수를 반환한다. 난수의 범위를 변경하려면 사칙연산을 적절하게 사용해야 한다. 예제 코드의 경우 5....
애플리케이션에서는 다양한 방식으로 시간정보를 출력하기 마련이다. Go의 time 패키지는 패턴을 파싱해서 시간을 출력하는 기능을 제공한다.RFC3339에서 정의하는 형식으로 출력했다. 시간 표기에 대한 국제 표준은 ISO8601 인데, RFC3339는 인터넷상에서 어떻게 다룰지를 규약하고 있다. ISO8601과 거의 비슷하다. time.Parse()메서드를...
시스템 프로그램을 개발하다보면 Unix epoch로 부터 시작되는 seconds, miliseconds, nanoseconds 등을 계산해야 될 때가 있다. Go를 이용해서 이들 값을 가져오는 방법을 알아보자. Now()메서드를 호출하면, 현재의 시간정보를 담은 time.Time구조체를 반환한다. 이 구조체에서 지원하는 Unix()와 UnixNano() 메...
Go의 time 패키지를 이용해서 시간가져오고 측정 할 수 있다.time.Now()메서드로 현재 시간을 가져오고 time.Date()로 시간을 설정 할 수 있다. 두 메서드 모두 time.Time 구조체를 반환하며, 구조체에서 제공하는 메서드로 다양한 연산을 할 수 있다.다음 예제 ...
Go는 JSON 인코딩과 디코딩을 위한 메서드를 내장하고 있다. Marshal() 메서드를 이용해서 go의 데이터들을 json 으로 변환할 수 있다. 리턴 값은 바이트배열이므로 문자열로 사용하기 위해서는 변환을 해줘야 한다.integer, string, float같은 원시데이터 타입에 대한 변환도 물론 가능하지만 배열과 맵, 구조체를 변환하기 위해서 주로 ...
Go는 정규표현(regular expressions)기능을 내장하고 있다.Go에서 제공하는 regexp패키지를 이용해서 정규표현식을 이용 할 수 있다. MatchString()메서드는 정규표현에 일치하는 문자열이 있는지를 검사한다. 일치할 경우 true를 반환한다.MatchString()에서는 문자열에 대한 패턴매칭을 즉시수행 했다. 하지만 많은 경우 패턴...
429 POSTS HERE
예제로 살펴보는 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()메서드를 호출...
예제로 살펴보는 Go : URL Parsing
웹 애플리케이션을 만들다 보면 문자열을 조작해야 하는 경우가 많다. Go net/url 패키지로 URL을 조작할 수 있다.테스트에 사용 할 URL은 "postgres 스키마 url.Parse 메서드로 URL을 파싱할 수 있다. 파싱하고 나면 url.URL 구조체를 반환한다. 주요한 메서드와 값들을 정리했다. URL.Scheme URL.User URL.H...
예제로 살펴보는 Go : Number parsing
문자열을 숫자로 변환하는 것은 기본적인 작업이지만, 많은 프로그래머들이 어려워하는 작업이기도 하다. Go를 이용해서 문자열을 숫자로 바꿔보자.strconv 패키지로 문자열을 숫자로 변환할 수 있다. ParseFloat는 문자열을 float타입으로 인식해서 변환한다. ParseInt는 integer 타입으로, ParseUint는 unsigned int로 변환...
예제로 살펴보는 Go : Random number
Go의 math/rand패키지로 의사난수(pseudorandom number)를 만들 수 있다.rand.Intn(n)은 0 <= n < 100 사이의 interger형 난수를 반환한다. rand.Float64는 0.0 <= f < 1.0 사이의 float형 난수를 반환한다. 난수의 범위를 변경하려면 사칙연산을 적절하게 사용해야 한다. 예제 코드의 경우 5....
예제로 살펴보는 Go : Time formatting 와 Parsing
애플리케이션에서는 다양한 방식으로 시간정보를 출력하기 마련이다. Go의 time 패키지는 패턴을 파싱해서 시간을 출력하는 기능을 제공한다.RFC3339에서 정의하는 형식으로 출력했다. 시간 표기에 대한 국제 표준은 ISO8601 인데, RFC3339는 인터넷상에서 어떻게 다룰지를 규약하고 있다. ISO8601과 거의 비슷하다. time.Parse()메서드를...
예제로 살펴보는 Go : Epoch
시스템 프로그램을 개발하다보면 Unix epoch로 부터 시작되는 seconds, miliseconds, nanoseconds 등을 계산해야 될 때가 있다. Go를 이용해서 이들 값을 가져오는 방법을 알아보자. Now()메서드를 호출하면, 현재의 시간정보를 담은 time.Time구조체를 반환한다. 이 구조체에서 지원하는 Unix()와 UnixNano() 메...
예제로 살펴보는 Go : Time
Go의 time 패키지를 이용해서 시간가져오고 측정 할 수 있다.time.Now()메서드로 현재 시간을 가져오고 time.Date()로 시간을 설정 할 수 있다. 두 메서드 모두 time.Time 구조체를 반환하며, 구조체에서 제공하는 메서드로 다양한 연산을 할 수 있다.다음 예제 ...
예제로 살펴보는 Go : JSON
Go는 JSON 인코딩과 디코딩을 위한 메서드를 내장하고 있다. Marshal() 메서드를 이용해서 go의 데이터들을 json 으로 변환할 수 있다. 리턴 값은 바이트배열이므로 문자열로 사용하기 위해서는 변환을 해줘야 한다.integer, string, float같은 원시데이터 타입에 대한 변환도 물론 가능하지만 배열과 맵, 구조체를 변환하기 위해서 주로 ...
예제로 살펴보는 Go : 정규표현
Go는 정규표현(regular expressions)기능을 내장하고 있다.Go에서 제공하는 regexp패키지를 이용해서 정규표현식을 이용 할 수 있다. MatchString()메서드는 정규표현에 일치하는 문자열이 있는지를 검사한다. 일치할 경우 true를 반환한다.MatchString()에서는 문자열에 대한 패턴매칭을 즉시수행 했다. 하지만 많은 경우 패턴...