Go My Way #3 - 트레이싱

장재휴
Go My Way는 Go 언어로 웹 어플리케이션을 작성할 때 선호하는 나만의 방식을 3편에 걸쳐서 소개하는 글이다. 이전 글은 읽지 않았다면 아래 링크를 참조하기 바란다. Go My Way #1 - 웹 프레임워크 Go My Way #2 - 데이터베이스, 로깅 Go My Way #3 - 트레이싱 번외 - gomobile 이번 글에서는 트레이싱에 대해 소개하겠다. 이 글을 작성하는 지금 현재 우리 회사는 클라우드 상에 50여 개의 마이크로 서비스가 서로 얽혀서 동작하고 있다. 사용자의 한 번의 클릭이 실제로는 여러 마이크로 서비스들을 거치고 거쳐서 최종 결과를 고객에게 보여준다.

Go My Way #2 - 데이터베이스, 로깅

장재휴
Go My Way는 Go 언어로 웹 어플리케이션을 작성할 때 선호하는 나만의 방식을 3편에 걸쳐서 소개하는 글이다. 이전 글은 읽지 않았다면 아래 링크를 참조하기 바란다. Go My Way #1 - 웹 프레임워크 Go My Way #2 - 데이터베이스, 로깅 Go My Way #3 - Configuration, Tracing, etc. 번외 - gomobile 이번 글에서는 데이터베이스와 로깅에 대해 소개하겠다. 데이터베이스 다른 언어에서 주로 사용하던 ORM(루비의 active record, 닷넷의 entityframework, 자바의 JPA, 등)을 생각한다면 Go의 DB 관련 패키지들은 대부분 2% 20% 이상 부족하다.

Go My Way #1 - 웹 프레임워크

장재휴
루비의 Ruby on Rails, 자바의 Spring, 파이썬의 Django, 노드의 Express. 대부분의 인기 있는 언어는 메인 프레임워크가 있다. 그래서 고민 없이 그 언어에 맞는 메인 프레임워크를 사용한다. 하지만 Go는 이런 게 없다. Go는 많은 기능을 하나의 프레임워크에 담아놓는 방식보다, 상황에 맞게 필요한 패키지를 조합한 마이크로 프레임워크를 만들어 사용하는 것을 권장한다. 익숙해지면 이것이 편하지만, Go를 처음 접하는 사람들에게 어떤 패키지를 사용해야 할지 선택하는 것은 여간 어려운 일이 아니다. Go 언어를 접한 지 3년이 되었고, 지난 1년 동안은 아주 적극적으로 Go 언어를 사용했다.

Microservice in PangPang

장재휴
사내 세미나 전 생각 정리를 위한 글 회고 올해 4월부터 micro-service를 지향하면서 일을 해 왔다. 사실 별로 커 보이지도 않는 기능들을 다양한 서비스로 나누고, 여러 팀에서 나누어 개발을 해 왔다. 기능적으로 본다면, 샵링크(중국 5000여개 매장의 판매 업무를 총괄하는 시스템)와는 비교도 되지 않을 정도로 작고, 그룹웨어보다도 훨씬 작은 싸이즈이다. 그 큰 시스템도 하나의 서비스로 잘 돌아가고 있는데 POS를 통해 위챗 쿠폰을 사용할 수 있게 하자는 단순한 요구를 위해 OO개의 팀에서 OO개의 서비스를 만들었다.

책 발간을 앞두고

장재휴
2014년 12월에 쓰기 시작했던 책이 이제야 완성이 됐다. 부끄럽고 민망한 마음이 먼저였다. 이제 나의 부족함이 완전히 드러나 버렸다는 생각에… 오늘 예배를 드리는데, 그런 생각이 좀 누그러졌다. 나의 본 모습이 과장돼서 드러나는 것이 문제지, 내 모습 그대로 드러나는 것이 뭐가 문제인가? 당연히 그래야 하는 거 아닌가? 그제야 도움을 주신 분들께 진심의 감사가 나오더라. Thanks to… 이 책을 마무리하기까지 도움을 주셨던 많은 분이 있다. 서비스 개발 도중에 새로운 언어를 도입하는 것을 믿고 허락해준 퍼플웍스 친구들(유준석, 김정훈, 백남웅, 김충섭)에게 감사한다.

2015년 12월의 생각

장재휴
이제 이틀후면 한국을 떠난다. 그리고 중국으로 간다. 언제까지 중국에 있냐고 묻는 사람들이 많지만, 사실 계획이 없다 ㅎ 3주전에 대부분의 짐을 컨테이너에 실어 보냈고, 엊그제 나머지 짐을 EMS로 보냈다. 이제 비행기 타고 출국하는 일만 남았다. 이번 한달은 중국으로 이동할 준비를 한다는 핑계로 일을 하지 않았다. 대학교를 졸업한 후 처음으로 “무직” 상태로 있었다. 가장 좋았던 것은, 지안이와 많은 시간을 함께 할 수 있었던 것. 그리고 여러가지 생각/묵상들을 많이 할 수 있었던 것.

Go언어로 안전한 서비스 만들기

장재휴
http://blog.remotty.com에 게시한 글을 Go 언어에 대해 발행한 글을 수집하는 차원에서 이곳으로 옮겨왔다. 서비스를 만들때 비정상적으로 서비스가 종료되지 않고 안전하게 실행되도록 하는 것은 아주 중요하다(Resilency). 이번 포스트에서는 Resilency를 유지하면서 서비스를 작성하는 여러가지 방법에 대해서 소개하겠다. 오늘 소개하는 글은 지난 7월에 덴버에서 열린 GopherCon 2015에서 Blake Caldwell라는 사람이 발표한 내용을 기반으로 몇가지 설명을 곁들여서 작성한 것이다. (https://sourcegraph.com/blog/live/gophercon2015/123664481750) 사실 어떤 사람들에게는 쉬운 내용일 수 있다. 당연한 얘기를 하는 것일수도 있고… 하지만 기본을 탄탄히 하자는 의미에서, 그리고 지난 7월 덴버에서 열린 GopherCon 2015에서도 발표되었던 내용이니 한번 읽어보면 좋을 것 같다.

8년간의 이랜드 생활을 마무리하며

장재휴
2006.06.26 ~ 2014.03.31 지난 8년동안 서울 가산동을 매일같이 왔다 갔다 했다. 지금까지 살면서 어느 한 곳에 이렇게 오래 머물렀던 적이 있었던가? 대학교 갓 졸업하고, 외워서 하는 자기소개조차 버벅거리며 제대로 못했었는데 어느새 8년차 직장인이 되어있었고 이제는 벤처 세계로 한번 뛰어들어 보려고 한다. 지난 목요일엔 부서원들이 송별회를 해 주었다. 그들이 전하는 말 속에 진심이 느껴졌고 준비한 선물에 기분이 참 좋았다. 일단은 선물 자체가 너무 마음에 들었고ㅎㅎ, 고민하며 준비했던 것이 느껴져 참 고마웠다.