일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 키보드
- 패널라인
- 리플렉션
- 양자역학
- Go
- 이맥스
- driverless
- 음각몰드
- mopria
- 엘리스배열
- Griffiths
- 다이어트
- 건프라
- mf642cdw
- doom-emacs
- Golang
- md600alpha
- Go 언어
- emacs
- eslip
- nil
- 벤치마크
- 고양이책
- 체리적축저소음
- 스플릿키보드
- 터미널
- 바로코
- Reflection
- go언어
- mistel md600 alpha
- Today
- Total
목록Go 언어 (7)
Meandering Trajectory
에러타입(error)의 정체 Go는 예외처리를 함수의 반환값에 기반하여 처리한다. 하지만 C와 달리 에러의 타입을 표준화 했다. 에러타입은 error라는 이름을 가지고 있고 다음과 같이 정의되어 있다. type error interface { Error() string } Error() 메서드 한개를 가진 인터페이스다. 이 인터페이스를 구현한 어떤 타입이든 에러가 될 수 있다. 그냥 정수형도 사용자 정의 타입으로 만들면 에러로 사용 가능하고 멤버가 없는 구조체도 Error() 메서드만 구현하면 에러로 사용할 수 있다. // 정수를 사용자 정의 타입으로 정의 type intAsError int // Error() 메서드 구현 func (i intAsError) Error() string { return f..
아래 발표는 Go의 클로져를 이용해서 기존 코드를 그대로 둔 상태에서 기능을 추가하는 방법에 관한 내용을 담고 있다.GopherCon 2015: Tomas Senart - Embrace the Interface발표 내용이 어느쪽으로든 다소 충격적일 수 있으니 놀라지 말기를...
BMT 즉 BenchMark Test는 업계에서 흔히 자주 언급되는 용어다. 제품 선정 전에 성능 검증을 위해 종종 수행되는데 수행하는 과정이 고통스러워 되도록이면 피하고 싶은 작업이다. 하지만 일과 관계없는 벤치마크는 항상 흥미진진하다. 다양한 언어에 대해 성능 테스트 결과가 올라와 있는 사이트가 있다. Computer Language Benchmarks Game이라는 사이트인데 Go를 한창 배우고 Go 코드도 많이 읽고 있는 터라 이 사이트를 살펴봤다. Go도 GC를 가진 언어고 Java도 GC를 가진 언어이니 이 둘을 비교하는 것이 재미있을 것 같아 이 둘을 비교한 페이지를 클릭한 순간, 이럴수가… Go의 상태가 이게… binary-trees source secs mem gz cpu cpu load..
09-go-chan.html Go에 대한 인상 Go 언어는 처음에 걸었던 기대와 달리 약간 실망스럽다. 문법이 난잡하게 느껴지고 그래서 Go 언어로 작성된 프로그램도 지져분하게 느끼진다. 혁신적으로 보이는 특징도 별로 안 보인다. 21세기에 설계된 언어로 작성된 프로그램에서 세그멘테이션 폴트 에러를 보는 것도 별로 유쾌하지 않고 말이지.하지만 한가지 맘에 드는 것이 있다. 그것은 Go 루틴과 채널이다. 이 둘을 빼면 Go는 그냥 그저 그런 명령형 언어였을 것이다. 이번 포스팅에서는 채널에 대해 간략히 살펴보려고 한다. Go 루틴과 채널 C와 같은 전통적인 프로그래밍 언어에서 쓰이던 스레드 대신, Go 언어는 동시성 프로그램밍을 위해 Go 루틴이라는 특이한 기능을 제공한다. Go 루틴을 이용해 작성된 프로..
Go 언어를 배운지 얼마 안 돼서 무언가를 말하기는 조심스럽지만... 몇몇 장단점이 눈에 띈다.Go 루틴이라든지 채널 같은 동시성 프로그래밍 언어를 위한 기능들은 신선하다. 그리고 네이티브 바이너리로 컴파일되는 언어치고는 방대한 양의 라이브러리를 제공한다는 점 역시 좋아 보인다. 반면 너져분하게 느껴지는 문법이라든지 import한 패키지의 코드가 모두 실행 파일에 포함되어 실행파일 크기가 지나치게 커진다든지 하는 문제는 실망스럽다.그러던 와중에 Go 언어로 작성한 프로그램의 성능이 어떨지 궁급해서 좀 찾아봤다. 공정한 비교(?)를 위해 Garbage Collection (GC)을 이용하는 Java와 비교한 벤치마크를 살펴봤다. 놀랍게도 네이티브 코드로 컴파일되는 언어임에도 결과는 그리 신통치 못하다.벤치..
C는 몇몇 스크립팅 언어를 제외하면 프로그래머가 된 이후로 내가 사실상 유일하게 사용했던 언어다. 최근에 프로그래머로서의 삶을 시작했던 회사를 떠나게 됐다. 이직한 회사는 전혀 C를 사용하지 않는 회사다.이직한 회사의 주요 개발 언어는 Go다. Go는 구글에서 개발한 언어로 이 언어가 지원하는 독특한 동시성 프로그래밍 기능인 고루틴 외에 유닉스의 아버지 켄 탐슨(Ken Thomson)과 벨연구소의 유닉스 개발팀의 일원인었던 랍 파이크(Rob Pike)가 직접 개발에 참여한 것으로 잘 알려져 있다.일을 하려면 배워야 하니 리눅스에서 Go로 이것저것을 해 보다가 특이한 점을 발견했다. 빌드된 실행파일에 C 라이브러리(libc)나 POSIX 스레드 라이브러리(libpthred)와 같은 필수적인 것 이외에 링크..