Rain.i Blog

직장인에서 직업인으로

이 책을 읽고 구체적으로 고민해보게 되었다. “나는 직장인일까 직업인일까?” 선뜻 한쪽을 선택하기 어려운 머뭇거림이 있다.직장생활을 하는 동안 한 자리에서 안정만을 택하며 안주하며 살아오지는 않았지만,그렇다고 단단하게 나를 감싸주는 이 보호막을 벗어난 적은 없었으니 말이다. 누군가 만들어준...

누워서 풀어보는 Go Concurrency Quiz

“동시성 처리… 법규 !! (F..k you)” 복잡한 Multi-Threaded 환경에서 동시성 처리나 자원 공유 등의 난해함에 넌더리를 내는 사람들이 많은데요.이런 사람들은 Go 에서 제공하는 Channel 과 고루틴을 만나면 그 단순함과 깔끔한 인터페이스에 환호를 외치게 됩니다. C/C++...

go channel 을 이용한 스트리밍 데이터 파이프라인(Streaming Data Pipeline)

데이터 파이프라인(Data Pipelining) Go 를 이용하면 스트리밍 데이터 파이프라인을 구축하기가 비교적 쉬워요.I/O 작업이나 멀티코어 CPU 자원을 효율적으로 사용하면서 말이죠. Go 에서 말하는 파이프라인이라는게 대체 뭘까요? Go 에서는 공식적으로 파이프라인 자체를 정의하는 뭔가가 있는 것은 아니예요.그냥...

Mock 객체에 대하여(The Little Mocker)

Clean Code 의 밥 아저씨.글을 너무 재밌게 쓰시는 분이죠.오래전에 블로그에 남기신 Mocking 에 대한 글을 번역해 봅니다.이 글을 보면서 딱딱한 기술적인 내용을 이렇게 재밌게도 설명할 수 있구나하고 감탄을 했습니다. 다음은 mocking 에 대해 나눈 대화입니다....

쉽게 읽는 Effective Go 번역 (1)

Go 를 사용하는 사람이라면 반드시 읽어봐야할 글이 있죠.”Effective Go” Gitbooks 에 이미 번역된 글이 있지만 개인적으로도 몸소 번역해보고 싶은 욕심이 있어서 시작해 봅니다.번역작업은 의외로 많은 고민과 생각이 필요합니다.저자의 의도를 정확히 파악하려는 노력이 많이 필요하죠.그래서 번역...

Constant errors

이 글은 constant error 에 대한 Dave Cheney 의 블로그 글을 번역한 것입니다.https://dave.cheney.net/2016/04/07/constant-errors 저는 이 블로그 내용을 현재 Go 패키지에 정의된(ex> io/io.go) Error 값들(sentinel error 값들)이 상수가 아니기 때문에 발생할 수 있는 문제점들을 지적한 글로...

Error는 검사만 하지말고, 우아하게 처리하세요.

본 문서는 Dave Cheney 의 블로그 글이 좋아서 제가 개인적으로 번역해본 것입니다.Don’t just check errors, handle them gracefully이 글을 읽고 error 처리에 대해 좀 더 깊이 생각해보는 계기가 된 것 같습니다. 블로그 글이 2016 년에...

죽음의 수용소에서

작년초부터 쉼없이 회사일과 공부로 달려온 2 년.최근 내가 탈이 났다. 이유는 딱 두가지. 건강. 그리고 삶의의미. 갑자기 찾아온 공허감과 원인모를 두려움, 불면증으로 몇 주 동안 고통스런 나날이 계속됐다. 오랫동안 내면의 소리에 진지하게 귀기울이지 못했다.내게 많이...

Simple is Beautiful(Go 의 문서 작성 규칙)

https://golang.org/pkg 와 https://golang.org/src 는 golang 에 대한 모든 것을 찾아볼 수 있는 보물창고같은 곳이다.주석을 통해 자동으로 작성된 문서에서 패키지를 개발한 개발자의 의도를 읽을 수 있을 뿐만 아니라 소스 코드까지 아주 쉽게 찾아볼 수 있다. golang...

Go – String 을 어떻게 빠르게 이어붙일까?(String Concatenation)

무언가를 구현할 때 반드시 한가지 방법만 있는 경우는 거의 없다.string 을 이어붙이는 방법도 마찬가지다.가장 일반적으로 사용하는 4~5 가지 방법을 중심으로 사용방법과 성능에 대해 잠깐 생각해보는 시간을 가져보자. + 연산자를 이용하는 방법 bytes.Buffer 의 WriteString() 함수를...