지난 2019년 2월 3일부터 2월 10일까지 마나도 아웃리치팀 23명(김덕영, 김보섭, 김영식, 김찬미, 김혜인, 김효진, 류호선, 문준상, 박세미, 박윤이, 백지원, 이미영, 이수원, 이은규, 이일, 이채은, 이한솔, 장재휴, 전민규, 정비상, 최희서, 하지윤, 한승용)은 예정된 사역을 무사히 마치고 돌아왔다. 지난 일주일간의 사역을 돌아본다.
마나도 in 인도네시아 인도네시아는 17,000여 개의 섬으로 이루어진 나라다. 그중 12,000여 개는 무인도이고 사람이 사는 섬은 5,000여 개이다. 우리 간 곳은 인도네시아 중앙에 있는 큰 섬, 술라웨시섬 북쪽 끝에 있는 마나도(Manado)라는 도시였다.
최근 들어 4차 산업혁명이라는 말이 또다시 자주 들린다.
개인적으로는 별로 좋아하지 않는 말이다. 그 말도 안 되는 혁명에 진입(?)하려면 마음 단단히 먹고 알 수 없는 세계로 뛰어들어야 하는 것처럼 들리기도 한다. 최근 여러 사람의 입에 오르내리고 있는 “4차 산업혁명"이라는 말을 십수 년째 매일 코드를 짜오고 있는 개발자의 입장으로 재해석해보면,
IT가 산업의 전반적인 영역으로 확대된 것 늘 있었던 변화의 속도가 아주 빨라진 것 이 두 가지인 것 같다.
즉, 지금까지의 방식을 버리고 단번에 새로운 영역으로 진입함으로써 끝나는 것이 아니라 지금까지 방식의 연장선에서 계속해서 변화를 고민하는 삶의 자세를 갖는 것이 시작이어야 한다.
Go에는 다른 대중적인 언어와 다른 개념들이 좀 있다.
클래스를 과감히 빼버렸고 (그래서 상속이 없다) Exception이란 것도 없다 (예외 상황 자체를 허용하지 않겠다는 의지인가? 멋있어 보일진 몰라도 솔직히 불편하다. ㅠㅠ 궁시렁 궁시렁…) 고루틴과 채널을 이용한 병행처리 모델도 친숙한 개념은 아니다 여기에 한 가지 더 보태자면, Context란 녀석이다.
처음 얘기한 세 가지는 Go 언어를 사용해서 뭔가를 만들려면 반드시 알아야 할 개념이기 때문에 Go 언어를 처음 접하는 대부분의 사람들은 시간을 할애해서 이 부분에 대해 공부를 한다.
… 너희가 너희보다 강대한 나라들을 차지할 것인즉
신명기 11:23
하나님은 이스라엘 민족에게 **"너희보다 강한 나라들을 너희가 차지할 것이다"**라고 하셨다.
이 세상은 너무 커 보이는데 그에 비해 나는 참 작은 것 같다. 이 세상에는 뛰어난 사람들이 참 많은 것 같다.
하지만 우리는 이미 그들이 그들의 방식대로 일궈놓은 세상 속에서 하나님의 나라를 세워나가야 한다.
나 같은 사람이 할 수 있을까? 나를 보면, 난 너무 작아 보이는데…
하지만 하나님은 어떻게든 하신다. 하나님 당신의 방식대로…
지난 2018년 1월 23일부터 2월 3일까지 우간다 아웃리치팀 20명(김시언, 김영식, 김하민, 류호선, 문성희, 박규태, 박하진, 이수원, 이희성, 장재휴, 정비상, 정상희, 정세인, 최유경, 최유진, 최진영, 최희서, 최희재, 하지윤, 한산하)은 예정된 사역을 무사히 마치고 돌아왔다. 지난 11박 12일간의 사역을 돌아본다.
우간다는 어떤 나라인가? 한반도의 1.1배 위 지도에서 빨갛게 표시된 나라가 우간다이다. 면적은 한반도의 1.1배라고 한다. 적도에 걸쳐있기 때문에 걸어서 남반구와 북반구를 왔다 갔다 할 수 있다.
아프리카의 중심 지도상으로는 아프리카 대륙의 약간 아래쪽에 위치한 것 같지만, 아프리카 대륙 위쪽에 위치한 사하라 사막은 사람이 왕래할 수 없는 곳이기 때문에 아프리카 문화권은 사하라 사막 위쪽과 아래쪽으로 나눠진다.
8년 만에 다시 아프리카로 간다.
이번 여행은 어떨까?
이미 30대 후반이 되어 이미 가정을 이룬 가장의 위치에서, 20명의 아웃리치 팀원들과 함께 떠나는 선교 여행이다.
이번 여행은 순종하는 여행이 되고 싶다. 내가 하고 싶은 경험을 하는 여행이 아니라 하나님이 경험하길 원하시는 것을 경험하고 오는 여행이 되길 바란다. 하나님께 순종하는 여행이 되고 싶다. 매 순간순간, 내가 어떻게 움직이길 원하시는지 하나님께 묻고, 하나님 주신 마음에 그대로 순종하기 원한다.
첫번째 미션 2018.01.23
9시에 교회에 도착했다.
중국 이커머스 최대 행사인 쐉쓰이(双十一)때 11월11일 0시가 되자마자 매출이 급상승함과 동시에 이벤트가 미친듯이 순식간에 몰려드는 것을 보고, 일 년 전 밤을 지새우며 O2O 시스템을 Event driven 방식으로 바꾸느라 고생했던 순간이 떠올랐다.
쐉쓰이의 분위기는 동료가 쓴 글인 개발자가 바라본 중국 쇼핑 축제 쐉쓰이(광군제)에 생생하게 나타나 있다. 실제 당일날 MongoDB 인덱스 문제, 디스크 부족으로 인한 kafka 서버 장애, 등 몇몇 문제가 발생하기도 했지만, 고객에게는 문제없이 서비스가 제공되었고1, 쐉쓰이(双十一)는 무사히 지나갔다.
이번 글에서는 쐉쓰이(双十一)를 버틸 수 있었던 요소 중 하나였던 Event driven 방식을 소개하려고 한다.
Go My Way는 Go 언어로 웹 어플리케이션을 작성할 때 선호하는 나만의 방식을 3편에 걸쳐서 소개하는 글이다. 이전 글은 읽지 않았다면 아래 링크를 참조하기 바란다.
Go My Way #1 - 웹 프레임워크 Go My Way #2 - 데이터베이스, 로깅 Go My Way #3 - 트레이싱 번외 - gomobile 이번 글에서는 트레이싱에 대해 소개하겠다.
이 글을 작성하는 지금 현재 우리 회사는 클라우드 상에 50여 개의 마이크로 서비스가 서로 얽혀서 동작하고 있다. 사용자의 한 번의 클릭이 실제로는 여러 마이크로 서비스들을 거치고 거쳐서 최종 결과를 고객에게 보여준다.
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% 이상 부족하다.
루비의 Ruby on Rails, 자바의 Spring, 파이썬의 Django, 노드의 Express. 대부분의 인기 있는 언어는 메인 프레임워크가 있다. 그래서 고민 없이 그 언어에 맞는 메인 프레임워크를 사용한다. 하지만 Go는 이런 게 없다. Go는 많은 기능을 하나의 프레임워크에 담아놓는 방식보다, 상황에 맞게 필요한 패키지를 조합한 마이크로 프레임워크를 만들어 사용하는 것을 권장한다. 익숙해지면 이것이 편하지만, Go를 처음 접하는 사람들에게 어떤 패키지를 사용해야 할지 선택하는 것은 여간 어려운 일이 아니다.
Go 언어를 접한 지 3년이 되었고, 지난 1년 동안은 아주 적극적으로 Go 언어를 사용했다.