[독후감] 린 스타트업

몇년 전 무모하리만치 별 생각 없이 스타트업에 참여했었다. 준비되지 않은 상태에서 전혀 다른 생태계에 뛰어든다는 것이 얼마나 힘든 일인지 깨닫는 좋은 경험이었다. 뿌듯하다고 말할 수는 없는 경험이었지만, 얻은 것과 잃은 것, 잘해야 했던 일과 그렇지 못해 찾아오는 뒤늦은 후회들이 교차한다.

시작을 앞두고 읽었던 책이 “린 스타트업(Lean Startup)”이었다. 이 책에서 이야기하는 스타트업의 절망은 실패에 대한 두려움을 준비할 수 있도록 해주었지만, 현실에서는 글자가 뜻하는 것보다 훨씬 아팠던 것 같다.

 

주말에 보려고 아껴두었던 “린 스타트업(Lean Startup)”을 보기 시작했다. 인사이트에서 출판했으며, 린 스타트업의 창시자인 에릭 리스(Erik Reece)가 쓰고, 이창수/송우일님이 옮겼다.

lean_startup_book

스타트업에서는 어떻게 개발조직을 꾸리고, 어떠한 개발 프로세스를 가지는지를 알고 싶어 선택한 책이었지만, 이 책은 그 이상이다. 비즈니스에 대한 그의 정의를 보자.

“비즈니스는 수익성 높은 사업으로 돈을 벌거나, 고객 가치를 만들어 내는 과정이 아니라 불확실한 미래와 싸워 생존, 번성하는 과정이다”

즉 주변 환경에 적응하여 하루하루 살아남는 과정이 스타트업이다. 아블라컴퍼니 대표인 노정석님은 추천사에 아래와 같이 말한다.

당장 죽을 수도 있는 절박함이 ‘창조적인 행동(혁신)’을 만들어내고, 이것이 성공하면 살아남고, 실패하면 도태되어 사라진다.

이 말은 빌 벅스턴이 쓴 “사용자 경험 스케치”에서 나온 “야생을 위한 디자인(Design for the Wild)”과도 일맥상통한다.

저자인 에릭 역시 젊은 시절 첫 회사를 세웠고, 쓰라린 실패를 맛봤다. 그 이유로 서비스에 대한 통찰은 있었지만, 이를 기반으로 훌륭한 회사로 키워가는 프로세스를 몰랐기 때문이라고 말했다. 남들이 가지 않는 길로 가는 저자를 어리석다고 비웃었던 사람들의 말이 옳다고 판명되는 일이었기에 더 절망적이었다.

하지만 실패를 바탕으로 성공적인 스타트업이 따라야할 핵심 가치를 배울 수 있었다. 여러가지를 말하고 있지만, 그 중에서 가장 중요한 사실은 “창업가 정신은 관리”라는 점이다. 흔히들 창업가 정신은 창의적이어야 하며, 흥미지진해야 한다고 믿는 반면, 관리는 지루하고 불필요하게 진지하다고 오해한다. 하지만 성공과 실패를 가르는 열쇠는 바로 이 지루한 일이며, 성공하기 위해서는 올바른 프로세스를 따라야 한다고 말한다. 절대로 나이키에서 광고하는 “일단 해보자(Just Do It)” 정신으로는 성공할 수 없다.

서문에 나오는 아래의 글이 가슴에 와닿는다.

스타트업은 무언가를 만들어서 돈을 벌거나 고객에게 서비스하라고 존재하는 것이 아니다….
정말 흥미진진한 것은 스타트업이 성공해 실제로 세상을 바꾸는 모습을 보는 일이다. 이처럼 새로운 모험에 사람들이 거는 열정, 힘, 비전은 인류의 매우 소중한 자원이다. 결코 허무하게 버려져서는 안된다. 우리는 분명히 더 잘 할 수 있다. 아니 그래야만 한다…

아래는 비슷한 내용의 스티브 잡스님의 동영상이다.

지금 당신이 인생이라고 부르는 모든 것들이 당신보다 똑똑하지 않은 사람들에 의해 만들어졌다는 사실…
당신은 인생을 바꿀 수 있으며 또한 영향을 미칠 수도 있다.
다른 사람들이 이용할 수 있는 무언가를 직접 만들 수도 있다는 사실…

 

변화를 두려워하는 사람들 모두에게 권하고 싶은 책이다.
(이 마지막 문장은 부끄러워 지우려다, 스스로를 뒤돌아보기 위해 그대로 둔다.)

 

주키퍼(zookeeper) 설치 가이드 – 멀티 서버 구성

주키퍼를 멀티서버로 설치하여 실행해보자.

주키퍼는 정족수를 기준으로 동작하므로, 멀티서버로 구성된 정상적으로 동작중인 주키퍼의 서버 수가 [환경 설정 파일에 등록된 서버 대수 + 1] / 2보다 작으면 동작하지 않는다. 따라서 일반적으로 주키퍼는 3대로 구성하며, 2대 이상이 다운되어야만 서비스가 중지된다.

먼저 각 서버에 주키퍼 설치파일을 다운로드 한 후, 적당한 위치에 압축을 푼다.

그리고 ${ZOOKEPER_HOME}/conf 디렉토리에 환경 설정파일인 zoo.cfg 파일을 아래와 같이 생성한다.

dataDir은 주키퍼가 관리할 데이터를 저장할 디렉토리다. 당연히 주키퍼를 실행한 사용자가 해당 디렉토리에 접근권한이 있어야 한다.

server.#에는 멀티서버로 구성할 서버를 등록한다. 여기에서는 총 3대를 등록한다. 첫번째 포트(2888)는 주키퍼 클러스터의 리더에 접속하기 위한 포트이며, 두번째 포트(3888)는 리더를 선출하는데 사용한다.

이제 각 서버에서 주키퍼를 실행한다.

주키퍼는 관리를 위한 웹 UI는 따로 제공하지 않으며, 정상적으로 실행되었는지는 로그를 통해 확인할 수 있다. 리더로 선출된 서버는 아래와 같이 LEADING 메시지가 출력된다.

그리고 리더가 아닌 서버는 아래와 같이 FOLLOWING 메시지가 출력된다.