20150815 GopherCon KOREA 2015 참관기

어느 더운 여름날(2015/08/15), 삼성동 구글 캠퍼스에서 'GopherCon Korea 2015'가 열렸다.

GopherCon Korea 2015 고퍼Gopher보다는 고랭Golang 으로 부르는 것이 익숙한 고GO 언어에 관한 컨퍼런스였다.

바빴던 프로젝트를 끝내고 몸도 마음도 회복되어 이제 외부활동을 다시 해야겠다는 여유를 가지게 되었을 때 우연히 구글플러스(https://plus.google.com/u/0/communities/115721275599816202991)에서 정보를 접했다.

아시아에 처음으로 개장했다는 '구글캠퍼스(https://www.campus.co/seoul/ko)' 구경도 갈겸 고랭에 대한 정보를 모을 수 있는 기회가 될 것 같아 신청했다.




1. Agenda

12:30 등록접수 13:00 오프닝

1. GopherCon 2015 무대 뒷이야기 (신제용)

GopherCon의 발표 내용은 온라인을 통해 모두 공개되었지만, 컨퍼런스장에서만 느낄 수 있는 분위기, 다양한 업계에서 온 사람들과의 네트워킹을 통해 발표 내용 이상의 따끈한 정보를 얻게 된다. 그 무대 뒤 소식을 전하고자 한다. 스피커 소개: HW Startup을 시작해서 Go를 적용해 보고 있다. 또 미국에서 배운 방식으로 Go 워크샵을 준비 중이다.

산뜻한 공간에서 부담감없이 발표를 들으며 여유를 즐겼다.

ㅡ_-);; 스프링캠프 준비한다고, 8월초에 세미나 준비한다고 심적 여유가 없었다. 내가 행사를 준비하는 입장에서 벗어나 참관하는 것은 여유로움을 만끽할 수 있었다. 오우!

첫 발표는 '신제용'님께서 자신이 다녀온 GopherCon 2015 의 이야기를 전했다. 고랭이 널리 사용되면서 많은 프로그래머들이 참여하면서 그 규모가 커졌으며 분위기가 달라지고 있다 한다. 국내에서는 아직 고랭에 대한 인지도가 높지 않은 상황이라고 생각(내 기준~으로 그렇다)을 하고 있었는데, 생각보다 많은 사람들이 모인 모습을 보며 흥미로웠다. 240명이 참가 신청을 했고, 200여명이 참관하는 모습을 보면서 내 생각과는 제법 다르구나 싶었다.

책을 구매해서 쭈욱 파는 것이 아니라, 컨퍼런스에서 부트캠프에 유료로 참가하여 단기간에 짧고 굵게 집중적으로 언어를 익힌다는 이야기가 흥미로웠다.

유료로 교육을 진행해도 될만큼의 가치를 가진 언어인 것인가?

최근의 언어들이 VM위에서 동작하는 패러다임에서, 별도의 컴파일러를 가지고 실행되는 프로그래밍 언어는 오랜만의 출현이라고 할 수 있다. 어쩌면, 고랭을 잘 익혀두면 또다른 일거리들이 많이 생길 것 같은 그런 가능성을 느꼈다.


2. Building Resilient Services in Go (장재휴)

안전한 웹서버 만들기 (참고: https://sourcegraph.com/blog/live/gophercon2015/123664481750) 스피커 소개: 현재 퍼플웍스에서 웹서버 개발을 주로 하고 있습니다. 작년에 처음 Go를 접하게 된 Newbie Gopher 입니다.

고랭을 사용하면서 주의해야하는 부분들(에러, 패닉panic, 닐nil 처리)에 대한 이야기, 서비스를 개발하면서 필요한 것들에 대한 이야기를 전한다.

고랭은 아직 개발하는 과정에서 필요한 디버깅에 관련된 부분에 대해서는 부족한 점들이 있는 것으로 보인다. 별도의 개발도구가 없이 일반 편집기(vim... vim-go... vi 등)로 작성하고 이를 컴파일 하는 형태로 프로그래밍을 하기 때문으로 보인다.

IDE에 익숙한 개발자인 내게는 낯설은 환경...이랄까? 실제로 서비스를 개발할 수 있는 수준까지 들어가려면 상당한 시간이 소요가 되겠지만 서비스를 운영하면서 필요한 기능들도 조금씩 추가되고 있는 것으로 보인다.

2012년에 GO 1이 릴리즈 되고 약 6개월에 한번씩 버전업을(1.1, 1.2, 1.3, 1.4, 8월 말중에 1.5 출시예정) 하고 있는 상황이라고 하니 앞으로도 많은 발전을 할 것으로 보인다.

문법은 여러가지 언어들의 특징을 가지고 있다. C, Java, javascript ... 고랭을 전문적으로 파게 되면 그때 다시 한번 살펴보면 좋을듯 하다.

3. gokit: A Standard Library for Distributed Programming (신명수)

gokit은 RPC 기반의 network server을 구성할때 공통적으로 필요한 기능들에 대한 툴킷입니다. gokit에 대한 특징과 간단한 예제로 gokit을 어떻게 사용하는지 알아봅니다. (참고: http://www.gophercon.com/talks/go-kit/) 스피커 소개: Go와 Docker를 좋아하는 평범한 소프트웨어 엔지니어입니다.

루비의 마츠같은 외모로, 트위터의 이희승님 같은 분위기로 gokit에 대한 소개를 진행하신 명수님의 발표가 진행된다. 잠시... 아는 분과 커피타임을 즐기고 오느라 초반을 놓치고...

죄송합니다. ㅡ0-);;

고랭의 패키지구성(https://golang.org/pkg/)에 대해서 살펴보고, go-kit에서 제공하는 것들도 추가될 가능성이 있어보이는 듯하다. 고랭을 만든 3명(Ken Thompson, Robert Griesemer, Rob pike)이 모두 찬성해야 기능이 추가되는 독특한 논의 시스템을 가지고 있지만 그래도 추가되지 않을까??


4. Go on Mobile (박성재)

golang은 굉장히 많은 플랫폼을 지원하고 있습니다. Android, iOS와 같은 모바일 플랫폼도 예외가 아닙니다. 모바일 플랫폼에서의 golang 사용 방법에 대해 간단히 알아봅니다. 스피커 소개: 재미삼아 golang을 만져보곤 하는 뉴비입니다.

최근 안드로이드와 관련된 오라클과 구글의 분쟁에서 오라클이 승리를 하면서 안드로이드 진영이 술렁이고 있다. 자바를 기반으로 한 안드로이드 운영체제가 그 영향을 고스란히 받고 있는 상황에서 몇몇 언어들이 안드로이드 개발환경을 제공할 수 있는지 대안모색 과정에서 떠오르고 있다. 스칼라도 그랬던 것 같긴 한데...

고랭도 gomobile(https://github.com/golang/mobile)이 진행되고 있다. 아직은 실험단계라고 하지만 가능성은 충분히 가지고 있는 것으로 보인다. 그렇게 된다면, 자바로 하는 안드로이드 개발 흐름이 바뀌게 될까? ㅋㅋ

ADT에서 안드로이드 스튜디오로 IDE가 변경되는 것에도 휘청하고 있는 안드로이드 개발자들이 많은 상황에서 고랭으로 까지 변경된다면 과연...???


5. 오픈소스 개발 사례를 중심으로 보는 Python 개발자의 Golang 적응기 (이경찬)

gtf(https://github.com/leekchan/gtf)는 Django의 built-in template filter들을 Golang의 기본 템플릿 패키지에서 사용할 수 있도록 해주는 라이브러리입니다. Golang을 시작한 지 1주일도 안 된 시점에서 패기만 가지고 gtf 개발을 시작했었는데요, Python 개발자가 빠르게 Golang을 시작할 수 있도록 gtf 개발 사례를 중심으로 두 언어의 차이점에 대해서 간단히 overview 해보고 싶습니다. 스피커 소개: 현재 애드투페이퍼라는 회사의 CTO로 재직 중이고 회사에서 웹서비스 개발, 모바일 앱 개발, 윈도우 클라이언트 및 프린터 드라이버 관련 개발을 주로 하고 있습니다. 취미 생활로 오픈소스 컨트리뷰선을 해보기 위해 노력하고 있고, 최근에는 개인 프로젝트는 모두 Golang을 이용해 진행하고 있습니다.

파이썬 개발자가 고랭에 적응하는 과정에서 파이선과의 차이점을 짚어가며 이야기한다. 파이썬 개발자가 정적 타입체크가 강한 고랭에서 많이 고생한 것이 느껴진다.

자바 사용자라면 조금 더 쉽게 배울 수 있지 않을까... 라는 의견을 어필했는데, 아는 냥반이 '아냐'라고 단칼에 잘랐다. 췟...


6. golang으로 새 프로젝트하기 (이준성)

새로운 프로젝트에 golang을 도입해서 6개월간 진행하면면서 겪고 있는 경험들을 공유합니다. 스피커 소개: 데브시스터즈에서 쿠키런 게임 서버를 개발하고 있습니다.

개발자들이 바라는 것 중 하나가 자신이 익힌 새로운 기술을 이용하여 새로운 프로젝트를 시작하여 제품을 만들어내는 것이다. 꽤 그런 의욕을 품은 이들이 많다. 나도 소소하게... 스프링부트를 현재 진행중인 프로젝트에 적용해서 사용하고 있다. 개발하기로 한 제품 성격이랑 딱 어울렸기 때문이기는 하지만...

자바, 파이썬, 고랭 세가지를 멀티코어 활용성, 개발도구 지원, 서드파티 완성도, 개발난이도, 짜야하는 코드양, 배포 에 대한 여부로 비교를 했지만 결론은 바람이 컸달까?

고랭을 선택하여 진행면서 얻은 경험들을 공유한다. 결론적으로 고랭을 새로이 프로젝트에 도입하기 위해서는 팀원들과 함께 삽질할 각오를 하고 벽돌을 쌓듯이 하나하나 경험을 쌓으면서 진행 해야하는 것이기에 팀과 회사의 전체적인 동의가 필요하다. 하기가 쉽지는 않겠다. ㅎㅎ


고랭은 최근 유행하는 언어들과는 조금 다르게 시작한 것으로 보인다. 그런데 루비 개발자들이 많이 접근하는 것으로 보아, 루비가 가지는 개발생산성의 강점을 뛰어넘는 무언가를 가지고 있는 것으로 추측된다.

고랭에 대한 지속적인 관심을 가지고 진행하기로 한다.


고랭으로 짠 'Hello, world'

//main.go
package main

import "fmt"

func main() {
  fmt.Printf("Hello, world\n")  
}


+ Recent posts