스토리 홈

인터뷰

피드

뉴스

조회수 1408

[Tech Blog] Compare Software Architectures: Monoliths, SOA and Microservices

요즘 Software architecture 라는 단어를 들으면 아마도 Client engineer 분들은 MVC, MVP, MVVM 이 먼저 떠오를 것이고, Server engineer 분들은 Microservice architecture 를 먼저 떠오를 것 같네요. Clean architecture 나 Event-driven architecture 등을 떠올리는 분들도 계실 것 같구요. Software architecture 를 어떻게 정의할 수 있을지에 대해서는 Software architecture: The important stuff 에 적어 봤으니 여기에선 넘어가도록 하죠. https://mherman.org/blog/developing-microservices-node-react-docker/ Microservice architecture 는 대세라고 말할 수 있습니다. Netflix, Amazon 등 굴지의 기업들이 성공적으로 적용해서 운영하고 있고, 국내 기술적으로 뛰어난 많은 기업들 역시 이미 적용했거나 시도하고 있습니다. “남들 다 하는데 이러다 도태 되는거 아냐?” 라는 생각이 들 정도로 말이죠. 그러나 이전 글에서 얘기했듯이 정답은 없으며, Microservice architecture 역시 예외는 아닙니다. 모든 선택에는 Tradeoff 가 있고, Microservices 는 다른 architecture 에 비해 어떤 장점이 있는지 살펴봐야 합니다. 이와 관련하여 정말 많은 좋은 글들이 이미 있으니, 이 글에서는 몇 가지 Software architecture 들을 가볍게 정리 및 비교해 보도록 하겠습니다. Monolithic Architecture Monolithic architecture 는 Microservice architecture 의 장점을 얘기할 때 반드시 언급될 정도로 대척점에 있는 architecture 입니다. Monolithic architecture 는 하나의 큰 덩어리로 구성되어 있고, 모든 기능이 하나의 프로젝트에 집중되어 있습니다. 쉽게 구성이 가능하고 초기에 기능을 빠르게 추가하기에 용이하나, 복잡도가 늘어날수록 기능 추가 속도가 느려지고 문제가 발생할 가능성이 높습니다. PoC(Proof of Concept)를 위한 가벼운 프로젝트나 아주 초기 프로젝트에 적용 가능합니다. Semi-Monolithic Architecture Monolithic architecture 보다는 작지만, 여전히 기능들이 몇 개의 프로젝트에 집중되어 있는 architecture 입니다. 예를 들어 frontend 와 backend 프로젝트를 나누었지만 각 프로젝트가 monoliths 인 경우 semi-monolithic architecture 라고 볼 수 있습니다. 다만 Semi-monoliths 의 경우 몇 군데에서 언급한 것을 볼 수 있지만, 일반적으로 사용되는 architecture 용어는 아닌 듯하고, Semi-monoliths 로 구분될 수 있는 경우 Monolithic architecture 라고 분류할 수 있을 듯합니다. 단순 frontend / backend 보다 좀 더 많은 수의 service 로 분할된 architecture 를 구성하더라도 각 service 가 monoliths 로 구분될 수 있다면 여전히 monolithic architecture 를 구성하고 있다고 할 수 있습니다. Service-Oriented Architecture 여러 조직이 다수의 application 사이에서 로직과 데이터를 공유하기 위해 제안된 architecture 입니다. Monolithic architecture 와 달리 기능을 나눠서 여러 개의 서비스로 구성하고, 서비스 사이는 API 를 통해서 통신합니다. Microservice architecture 와 Service-oriented architecture (SOA) 를 비교하기 위해 Enterprise Service Bus (ESB)가 많이 언급됩니다. ESB는 Enterprise Application Interface (EAI) 와 대조적으로 가볍고 흔한 통신을 위해 제안되었으나, 통제와 관리를 위해 점점 무거운 방향으로 진행되면서 최초의 의도와 달라졌습니다. SOA 가 무거워짐에 따라 최초의 의도였던 빠른 적용, 민첩한 개발 및 적은 통합 비용과 멀어지게 되면서 자연스럽게 도태되었습니다. 서비스 사이에 데이터베이스를 공유할 수 있느냐 아니냐로 Microservice 와 구분을 짓는 의견도 있습니다만, SOA의 정의가 넓어서 이 부분에 대해서는 이견들이 있습니다.   https://dzone.com/articles/microservices-vs-soa-2 SOA가 넓은 범위에서 정의됐기 때문에 ESB 나 DB 공유 여부로 SOA 를 규정 짓기는 어렵습니다. 정의 상으로 보면 Microservice architecture 역시 SOA 의 일종이라고도 볼 수 있습니다. Microservice 의 예시로 자주 등장하는 Netflix 와 Amazon 역시 Microservice 라는 단어가 사용되기 전에는 스스로의 시스템을 SOA 라고 지칭했습니다. Microservice Architecture: The O’Reilly Book 의 공동 저자 Matt McLarty 는 Learn from SOA: 5 lessons for the microservices era 라는 글에서 SOA 와 Microservice architecture 가 같은가 다른가는 그다지 중요한 것이 아니며, 우리가 SOA 로부터 어떤 것들을 배웠는가가 중요하다고 강조합니다. Microservice Architecture Microservice architecture는 규모가 빠르게 커져도 제품 생산 속도를 빠르게 유지하고 안정성을 가질 수 있는 architecture 입니다. 충분히 작은 서비스들이 서로 통신하면서 기능을 수행합니다. Microservice architecture 를 SOA의 잘 구현된 형태라고 보는 시각도 있지만, micro 라는 단어가 SOA 에서 정의하는 서비스보다 작은 크기의 서비스임을 명시적으로 표현하기 때문에 매우 다르다는 의견 역시 있습니다. Microservice architecture 는 각 서비스의 크기를 작고 가볍게 유지함으로써 더 깔끔하고 명확하게 서비스를 유지할 수 있습니다. 잘 구성될 경우 특정 서비스에 장애가 생겨도 다른 서비스에 영향을 적게 미치거나 유연하게 대응할 수 있기 때문에 전체 시스템 오류(e.g Single Point of Failure)를 방지할 수 있습니다. 각 서비스는 독립적으로 배포 및 확장 가능하기 때문에 기능 배포가 빠르고 많은 트래픽에 유연하게 대처할 수 있습니다. 한편 Microsoft architecture 는 구조적인 면에서 복잡도가 증가하며, 많아진 서비스 및 서비스 간 통신에 대한 유지 보수 비용이 추가됩니다. 이를 대응하기 위해서 충분히 자동화되고 잘 구성된 시스템이 필수적으로 필요합니다. Conclusion 판단과 결정은 근거를 필요로 합니다. 가끔 감을 믿고 밀어붙여야 할 때(e.g 오늘 점심은 해장국을 먹어야 한다던가)도 있다는 점은 인정합니다. 하지만 그 역시 설득력을 가지지 못하면 하나의 목표를 향해 모두가 미친듯이 달려가기는 어렵겠죠. Software architecture 를 결정하기 위해서는 추구하는 비전과 비지니스를 이해하고 그에 맞는 근거 하에 모든 팀원을 판단하고 설득해야 합니다. 버즈빌 에서는 더 빠르고 큰 성장을 위해 Architecture Task Force 팀을 구성하였습니다. ATF 팀은 버즈빌에 최적인 Software architecture 를 판단하고, 구성하고, 실행하기 위해 바쁘게 움직이고 있습니다. Buzzvil Services Characteristic:  제품이 다양하고 제품별로 제공해야 할 기능이 많다. 각 제품이 공통적으로 필요로 하는 기능이 많다. 서비스 혹은 기능별로 대응해야 하는 트래픽이 다르다. 전체 서비스 장애 발생 시 많은 후속 문제가 발생한다. 트래픽 변동이 특정 이벤트에 의해 크게 일어날 수 있다.  Buzzvil 의 제품과 비지니스는 위와 같은 성격을 가지고 있습니다. 이를 바탕으로 우리는 Microservice architecture 가 가장 적절하다고 판단하였고, 현재 microservices 의 장점을 살리면서 안정적이고 빠르게 우리가 원하는 목표에 도달할 수 있도록 다양한 방면에서 변화를 가져가고 있습니다. References  Learn from SOA: 5 lessons for the microservices era Microservices vs. SOA On monoliths, service-oriented architectures and microservices Microservices.io Microservices Resource Guide Design Microservice Architectures the Right Way Developing Microservices – Node, React, and Docker    *버즈빌에서 개발자를 채용 중입니다. (전문연구요원 포함)작가소개 Whale, Chief Architect “Keep calm and dream on.”
조회수 1661

무엇을 해야할지 모를 때?

근무시간에 아무 일도 못할 때가 종종 있습니다. 아무 일이 없어서가 아닙니다. 오히려 Doing 카드덱에는 해야할 카드가 넘쳐납니다. 재밌는 사실은 항상 할 일이 명백하게 있는데도 무기력한 상태가 더욱 잘 발생합니다. 덱에있는 카드들이 눈에 잘 들어오지 않습니다. 아무것도 하기 싫습니다. 그래서 의미 없는 클릭질로 이 일 저 일 기웃기웃 거리기만 합니다. 그렇게 아까운 시간만 흘러 보낼 때가 있습니다.문제의 원인곰곰이 생각해보면 카드가 너무 많아서 그런거 같습니다. 물고기가 떼 지어 다니걸로 비유를 들어볼 수 있을 것 같아요. 거대한 한 마리의 물고기로 보이도록하는 착시효과 말이죠. 카드들을 각개격파 해야하는 입장에선 무척이나 성가십니다. 괜히 정신에너지 소모가 커져 골치가 아플 때가 많습니다.예를 들어, 이런 선택장애 순간에 빠진달까요... 제품 번호 중복으로 뜨는 문제 디자이너 분들께 노티할까? 아니면, 결제사에서 특정 카드 승인거절 나는 문제부터 해결할까? 혹은 개발자분들 지금 자리에 있으니 우리가 지금까지 쓴 오픈소스 명시하는거 요청드릴까? 아! 아니다. 오전에 이용약관 쓰던거 지금 마저 쓸까?스타트업이 다 그렇겠지만 정말 가끔씩 한 숨이 나올 정도로 할 일이 쏟아져 나오는 순간이 있습니다.해결책다행히 요즘 무엇을 해야할지 모를 것 같은 조짐이 보이면 다음과 같은 행동으로 무기력한 상태를 탈출할 때가 많습니다.1. 가장 중요한 가장 작은 일을 파헤칩니다.당장 무슨 일에 착수하는 게 아닙니다. 무턱대고 달려들면 오히려 튕겨져 나오기 일 쑤입니다. 대신에 카드를 배회하면서 스스로에게 여기있는 카드 중에 가장 시급하고 중요도가 높은 일이 뭔지 찾아봅니다. “오늘 일 하나도 안해도 돼!” 같은 가벼운 마음가짐으로 무심하게 쭉 훑어 보면 은근 잘 보입니다. 꽤나 객관적인 시각이 생겨 중요한 일이 노골적으로 보일 때도 있습니다. 카드가 하나도 없지 않는 이상 가장 중요한 일을 찾을 수 밖에 없죠. 근데, 가장 중요한 일이 꾀나 커보이면 과감히 sub-task로 쪼개버리는게 좋습니다. 반으로 나누는 것도 아니도. 큰 덩어리 중 당장 할 수 있는 일만 그것도 눈꼽만큼 작은 수준으로 떼어내는거죠. 내 품에 폭 들어올 수 있게 만들어 버립니다. 그렇게 가장 작은 물고기 한 마리만 지긋이 바라봅니다.2. 최면을 겁니다.가장 작은 일을 찾았다 하더라도 몸에 베인 하기 싫은 타성은 남아있습니다. 이미 무기력감이 저를 휘감고 있으니까요. 탈출하기 쉽지 않습니다. 이땐, 이 일을 안했을 때 일어나는 골치 아픈 미래 상황을 상상합니다. 식은땀이 주륵 흐를 정도로 과대 망상일수록 좋습니다. 이 일을 심각한 수준으로 받아들입니다. 거짓말 조금 더 보태서 당장 이거 해결 안하면 회사가 망할 수도 있다 정도로? 스스로 발등에 불을 떨어뜨리는 최면에 풍덩 빠집니다.3. 용기를 낸다.다른 중요한 일들도 많습니다. 지금 선택한 이 일이 가장 시급한 일이라서 못하는 거지 다른 것들도 이것 못지 않게 급합니다. 그래서 선뜻 선택한 일에 다이빙하기 쉽지 않습니다. 안하기로한 다른 일들이 거슬려서요. 그러나 하나만 하기로 마음 먹은 상황에서는 저는 과감히 다른일들을 포기합니다. 안하기로 했다면 Doing 카드에서 To do 카드로 과감히 옮겨버립니다. 단순히 이 카드들을 당장 눈 앞에서 치워버리기만 해도 효과가 아주 큽니다. 속이 후련해 진달까요? 만약 데드라인이 오늘인 카드라면 용기를 내어 동료들에게 도움을 청합니다. 또는 이 결과물들을 기다리는 동료들에게 못할 것 같다고 솔직히 고백합니다. 가급적 동료들이 기다리지 않게 말이죠. 이렇게 과감히 눈 앞의 일들을 치워버려요. 그러면 일이 손에 잡히기 시작합니다.#스위쳐 #Switcher #문제해결 #인사이트 #꿀팁 #조언
조회수 502

소중한 그들의 총합

오늘의 내가 어제의 내가 아닌 이유는오늘 새롭게 깨달은 무언가 때문이다.오늘의 당신은 어제의 당신과 같은가?늘 곁에 있던 그들에게,오늘 처음 만난 그들에게서도,우연히 지나친 군중 속에서도무언가 발견하고 배운다.동료들과 얘기를 나누다보면벽이 높은 이들을 만난다.어떤 트라우마 때문인지 모르겠지만다른 생각을 견제하고 자신의 울타리를 강하게 치려는태도때문에 안타까움을 느낄 때가 많다.그리고는 스스로 확장하지 못하는 울타리 때문에성장하지 못하고 업무의 한계에 갖혀 있는 모습을 종종 본다.마음의 문이 열려 있는가?매일 출근길에 듣는 팟캐스트가 있다.아침마다 생각을 자극해주고, 그동안 보지 못한 현상을새롭게 깨닫게 해주는 그들이 요즘 나의 스승들이다.하루하루 다급하게 펼쳐지는 직장에서의 사안들을때론 돌아돌아 시행착오를 겪으면서, 때론 현명하게일을 풀어내는 모든 순간들이 내겐 소중한 공부들이다.받는 스트레스의 반만이라도 배우고 성장할 수 있는 직장이라면 남는 장사인 것이다이렇게 하루에 하나, 한주에 하나씩이라도배움과 깨달음이 쌓이면 어제와 다른, 작년과 다른또 다른 자신을 느끼게 된다.그렇지 않고하루하루 나에게 빠져나가는 무언가만큼채워지는 것이 없다면, 지금의 주변을 다시 만들어봐야 한다.내가 만난 모든 소중한 이들의 총합이현재의 "나"이기 때문이다.곁에 있는 소중한 이들의 총합이 바로 당신이다소중한 이들로 채워야한다.아니면 소중한 이들을 찾아 나서야 한다.실존의 인물이 아니면 글 속의 인물이든,가상의 인물이든...주변의 소중한 이들에게 감사하며...
조회수 818

갓덴스시-잔디튜토리얼-성공적, 6개월간 잔디와 함께 한 Sean을 만나다

편집자 주: 잔디와 함께 하고 있는 멤버는 총 50여 명. 국적, 학력, 경험이 모두 다른 이들이 어떤 스토리를 갖고 잔디에 합류했는지, 무슨 일을 하고 있는지 궁금해하는 분들이 많습니다. 잔디 블로그에서는 이 궁금증을 해결해 드리고자 ‘맛있는 인터뷰’를 통해 잔디 멤버들의 이야기를 다루고 있습니다.승마△ 진짜다.. 진짜가 나타났다..!◇ 우리가 앉아 있는 이곳은 어디인가?Sean(이하 ‘S’): 내 인턴 생활의 희노애락이 녹아 있는 일식집 ‘갓덴스시’다. 회사에서 조금 먼 위치에 있지만 인턴을 하는 6개월 동안 정말 자주 찾은 단골 음식점이다. ‘갓덴스시’는 일주일에 적어도 두 번 정도는 찾았던 것 같다. 역삼역 근처 스시 음식점 중 가히 가성비 최고라고 말하고 싶다. 보통 이러면 ‘역삼역 스시 추천, 강남 스시, 갓덴스시 강남, 강남역 스시 추천, 역삼 스시’ 이런 키워드를 글에 넣지 않나? 키워드를 넣어달라. 그만큼 자신 있게 추천하는 곳이다.◇ ‘갓덴스시’를 정말 좋아하는 것 같다S: 갓덴스시 뿐 아니라 모든 일식을 사랑한다. 일식은 곧 사랑이다.갓덴스시△ ‘스시’라 쓰고 ‘사랑’이라 읽는다.◇ 본격적으로 인터뷰를 시작해 보자. 먼저 자기소개를 부탁한다S: CX(Customer Experience)팀에서 인턴을 하고 있는 Sean이라고 한다. 이전의 다른 잔디 인턴들이 그렇듯 나 또한 ‘군 제대 > 잔디로 소환 > 잔디 인턴’ 트리를 탔다. 누군가 말하더라. 우리나라 군대가 잔디와 파트너쉽을 맺고 인력을 공급하는 게 아니냐는 카더라 소문이..◇ 하하하.. 즐거운 농담이었다. 군대에서는 잔디를 어떻게 알게 됐는지?S: 나름 재미있다고 생각했는데 빵 터지지 않은 것 같아 아쉽다. 사실 군 복무 당시, 잔디 인턴 전문 헤드헌터라 불리는 Jin을 통해 알게 되었다. 원래 스타트업 분야에 관심이 많았고, 그 중 메신저에 많은 관심을 갖고 있었다. 이런 점을 잘 아는 형수님이 자신의 친구인 Jin을 소개해주셨다.◇ 수많은 IT서비스 중 왜 메신저에 관심이 많았는지 궁금하다S: 인턴이 다 끝나가는 지금에 와서야 말하자면.. 사실 업무용 메신저보다는 개인용 메신저에 관심이 더 있었다. 업무용 메신저에 관심을 가지게 된 건 군 입대 이후다. 군대에서는 인트라넷을 사용하는 데 정말 불편했다. ‘도대체 군대에서는 이렇게 불편한 시스템을 왜 계속 사용하고 있는 걸까?’라는 질문에서 출발한 의식의 흐름이 결국 현재까지 오게 되었다.◇ 잔디 출근 전부터 ‘잔디 인턴 헤드헌터’를 심히 괴롭혔다고 들었다S: 궁금한 게 많았다. ‘잔디는 왜 이럴까?’ ‘잔디는 왜 이런 서비스를 제공하지 않을까?’ ‘잔디는 왜 이런 식으로 마케팅을 할까?’와 같은 질문에 대해 Jin이 친절하게 답변해주셔서 많이 물어볼 수 있었다. 입사 전 그와 주고받은 이메일만 30통이 넘는다. 정성스런 답변 하나하나에 크게 감사했었다.◇ Sean과의 첫 대면에서 가장 인상 깊었던 건 본인 자기소개에서 미니언즈 덕후라고 표현한 부분이었다S: 미니언즈뿐만 아니라 애니메이션을 정말 좋아한다. 애니메이션이라고 해서 어린이가 보는 만화로 생각하면 오산이다. 최근 개봉했던 픽사의 ‘도리를 찾아서’만 봐도 그렇다. 아이를 잃어버린 부모의 마음이 어떤지 정말 잘 표현했다. 어른들도 공감할 수 있는 요소가 많은 게 바로 픽사의 애니메이션이다.◇ 가장 좋아하는 애니메이션을 하나만 꼽는다면?S: 하나만 꼽으라니… 덕후인 내게 정말 잔혹한 질문이다. 음.. 픽사의 애니메이션은 대부분 좋아하는 편이다. 토이스토리, 몬스터 주식회사, 니모를 찾아서 전부 다 좋아한다. 픽사 개봉작은 아니지만 최근 개봉한 ‘마이펫의 이중생활’도 기대된다.◇ 그러면 가장 좋아하는 캐릭터를 말해달라S: 오우 노.. 맛있는 인터뷰의 질문이 가혹하다고 하던데 소문이 맞았다. 이 질문 역시 너무 어렵다. 음.. 캐릭터는 귀여우면 전부 좋아한다. 도리도 귀엽고, 앵그리버드에 나오는 아기새도 정말 귀엽다. 개취이지만 머리가 크고 몸통이 작을수록 귀엽다고 생각하는데 머리와 몸통의 비율이 3:1 정도가 가장 귀엽다고 생각한다. 황금 비율이다.◇ 음.. 주제를 돌려보자. 꽤 길었던 인턴 생활이었다. 가장 기억에 남는 일은 무엇이었나?S: 역시 ‘갓덴스시’를 알게 된 게 아닐까? (웃음) 농담이다. 아무래도 연세대에서 인사이더스라는 동아리를 대상으로 스타트업 인턴 경험에 대해 발표했던 게 가장 기억에 남는다. 또 하나 꼽으라면 잔디 튜토리얼 비디오를 만들었던 경험을 꼽고 싶다.6개월 동안 열심히 일한 Sean의 소원은이 글을 보는 분들이 잔디를 사용하는 거라고 한다.◇ 연세대 강의는 어떤 내용이었는지 공유 부탁한다S: 스타트업에 관심 있는 학생들이라 잔디와 같은 스타트업에서 일한다는 게 내게 어떤 의미이고, 어떤 점을 미리 준비해야 하는지 등에 대해 공유했다. 다른 사람들 앞에서 강의를 한다는 게 늘 낯설고 어색하다. 하지만 재미있는 경험이었다. 당시 만났던 학생들과 최근에도 종종 연락하며 지낸다.연세대△ 연세대 강의실에서 스타트업 경험을 공유 중인 Sean◇ 스타트업에서 일한다는 건 어떤 의미인지?S: 욕심만 있다면 해보고 싶은 일을 얼마든지 경험할 수 있다. 물론 그에 따른 책임은 덤이다. 잔디 튜토리얼 비디오 작업을 리드했던 게 그 증거이다. 비디오 촬영을 전문적으로 해본 경험이 없는 내게 튜토리얼 영상 제작 프로젝트를 선뜻 맡겨주셨다. 일반 회사라면 감히 상상할 수 없는 큰 프로젝트가 인턴인 내가 맡은 것이다. 기대에 부흥하기 위해서 주말을 이용해 틈틈히 비디오 편집에 대해서 공부했다. 이렇게 만든 비디오가 잔디의 랜딩 페이지에 공유된다고 생각하니.. 자다가 너무 설레서 깨기도 한다는 거짓말이고 기분이 좋다.◇ 원래 비디오 촬영에 흥미가 있었나?S: 흥미만 있는 정도였다. 휴대폰 사진을 찍듯 휴대폰을 가지고 일상생활을 비디오로 담는 게 고작이었다. 잔디 인턴 면접 때 비디오 제작에 관심이 있다고 지나가듯 이야기했을 뿐인데 그것을 기억하고 튜토리얼 비디오 제작 프로젝트 책임자로 선정해주셨다. 감사할 따름이다.◇ 주제를 좀 바꿔보자. 어릴 때 꽤 여러 나라에서 거주했다고 들었다S: 사실이다. 아버지 직업 특성상 여러 나라에 거주하며 여행할 수 있었다. 자카르타를 비롯해 벨기에, 파키스탄 등에서 살았던 경험이 있다.◇ 가장 기억에 남는 국가를 꼽으라면?S: 누가 뭐래도 벨기에가 아니었나 싶다. 맥주를 정말 좋아하는데 벨기에 맥주는 독일만큼 정말 다양하다. 보통 맥주 이야기를 하면 독일이 나오지만 사실 맥주가 정말 유명한 나라는 벨기에다. 맥주 원조일 뿐 아니라 종류도 어마무시하다.◇ 침이 고인다. 말 나온 김에 벨기에 맥주 몇 가지 추천해달라S: 듀벨, 스텔라, 레페, 호가든… 꼽자면 정말 많다.◇ 벨기에 관련해 맥주 외에 더 추천할 건 없나?S: 말 타는 법을 배우기 좋다. 벨기에는 아주 먼 옛날 귀족들이 사냥을 하던 터를 공원으로 보존하고 있다. 이런 공원에 가면 말을 60유로(한화 7만원)정도에 빌릴 수 있다. 말 타는 방법을 터득한 뒤, 하루종일 말을 탈 수 있는데, 공원이 정말 크고 한가해서 여유롭게 말 타고 놀기에 좋다. 벨기에를 방문할 기회가 있다면 말을 꼭 타봤으면 좋겠다. 여기에도 ‘벨기에 추천 여행, 벨기에 승마, 벨기에 말타기, 벨기에 즐길 거리’ 키워드를 넣어달라.◇ 벨기에 얘기만 들어도 마음이 훈훈해진다S: (끄덕끄덕) 벨기에는 여유가 넘치는 나라이다. 단순히 한가롭다는 의미가 아니고, 사람들 마음에도 여유가 넘친다.잔디 인턴△ 해외에서의 경험은 Sean의 성장에 큰 자양분이 되었다◇ 다음은 지난 인터뷰이 Chris의 질문이다. 잔디에서 이루고 싶은 꿈이 있다면?S: 꿈이라고 하면 조금 거창한 것 같고 내게 시간이 더 주어진다면 인터뷰 영상을 만들어 보고 싶다. 피키캐스트나 티몬처럼 잔디를 잘 활용하고 계신 고객사를 방문해 인터뷰 영상을 만들고 싶다. 사실 어떤 식으로 구현해야 하는지는 모두 머릿속에  있는데 남은 시간이 많지 않아 너무 아쉽다.◇ 이 인터뷰 글이 잔디 블로그에 올라가면 Sean과의 6개월 여정도 마침표를 찍게 된다. 매우 아쉽다. 마지막으로 다음 인터뷰이에게 묻고 싶은 질문이 있다면?S: 너무 진지하지 않은 질문이 좋을 것 같다. 잔디에서 가장 부유해 보이는 사람은 누구인지 물어봐 달라.#토스랩 #잔디 #JANDI #인턴 #인턴소개 #인턴생활 #팀원 #팀원소개 #팀원인터뷰 #인터뷰 #기업문화 #조직문화
조회수 657

창업자의 일기장(5)-놀고먹는 착각

----이전 이야기------실업급여와 퇴직금으로 6개월간창업 준비를 하기로 마음먹었다.퇴사를 하면,여행도 가고,하루 종일 잠만 자보기도 하고,늦은 밤에 야시장을 거니는 꿈을 꾸겠지만적어도 생계 걱정을 해야 하는 가장에게는상상 속의 이야기일 뿐.부양해야 할 가족이 있음은허투루 시간을 보내는 것이죄책감으로 되돌아온다.몇 번은 결혼하기 전에 창업을 했으면 하는 생각도 했지만,여전히 결혼하고 창업하길 잘 했다는 마음이 더 크다.그 책임감과 중압감이나를 더 몰아쳐왔고,한 번 더 고민하게 만들었으니까.실업자(백수)가 하루를 시작하는데늦잠 잔다는 것은 현실 자각이 없는 소리다.슬로 라이프, 여유 있는 아침,느긋한 스케줄이라는 것은 낭만적 일지 몰라도,굳이 이쁘게 포장하고 싶지 않다.(비추천 하나 드립니다.)놀고먹는 착각이 현실화되기 위해서는수익이 창출되는 시스템이 있어야 한다.내 노동력이 들어가지 않더라도알아서 돈이 불어나는 시스템.그런데 갓 퇴사한 사람이 그런 시스템을 가지고 있을 리 만무하고그렇다면 빠르게 다음 수를 준비해야 한다.일단 아침에는 무조건 일찍 일어나서세수하고, 정리하고, 나갈 준비를 한다.몸이 나태해지면,마음도 나태해지고,하루라는 시간도 낭비돼버린다.그 하루들이 모여서 내 일생이 되기에퇴사하더라도 부지런하고 꾸준함은 절대 계명처럼 지켜야 한다.그래!그동안 수고했으니까,고생했으니까,나 자신을 위해서시간을 한정해서 보상을 해 줄 수는 있다.1주일 또는 2주일 정도만제한된 스케줄 안에서여행이든, 쉼이든 가질 수 있다.딱 거기까지!!!그게 습관이 되어버리면,점차 돌이키기 힘든 후회의 시간들이 늘어갈 것이다.그러니까 쉬더라도시간을 정해 놓고 쉬어라.퇴사한 다음 날에나는 아내와 인사동에 놀러 갔다.그다음 날에는 파주 헤이리에 갔고,그다음 날에는 집에서 놀았다.딱 그렇게 일주일을 쉬었다.그리고는 도서관으로 출퇴근하였다.도시락도 챙겨가고,가끔은 구내식당도 이용하고,아침에 나갔다가 밤에 돌아왔다.백수의 시간들 동안열심히 살았고, 꾸준했음에도...기대했던 만큼의 성과나,가시적인 레퍼런스를 만들지는 못 했다.그러나 그때에 공부하고, 준비했던 것들이나중에 창업하고, 회사를 운영하는데큰 힘이 되어주었다.실업급여와 퇴직금에 안심하지 마라.진짜 금방 사라진다.추가적인 수입이 없기에통장의 숫자가 줄어드는 것에 민감해진다.시간과 돈에 쫓기기 시작하면,마음이 분주해지고, 성급해진다.그리고 작은 유혹에도 흔들리게 된다.섣부르게 행동하게 되고,날림으로 판단하게 된다.요즘은 퇴사도 잘 해야 한다고,퇴사 준비를 시켜주는 교육도 있더라.나라고 무작정 퇴사하지는 않았다.분명 나름 확신을 가졌고,계획은 몇 번이고 시뮬레이션해서자신 있었다.회사 다니면서점심시간을 굶어가면서토익학원 다녀서 점수도 만들어놓고,퇴근하고 도서관 열람실에서가득 채운 두꺼운 노트만 2권이다.(다이어리 미포함)주말에는 알라딘 서점과 공립도서관에서 읽은 책 또는 빌린 책이매주 3권 씩이다.그러나,막상 퇴사하고 나면,그래도 부족했고, 허점이 많았다는 걸 알게 된다.퇴사준비가 부질없다는 이야기가 아니라잘 준비해도 생각지 못한 문제들이 많이 생긴다는 거다.쉽게 재취업하거나쉽게 창업할 수 있다고 착각하지 마라.퇴사 후에 새로운 일을 시작하기까지의 시간은놀고먹는 시간이 아니라 준비하는 시간이다.그 공백의 시간이 늘어날수록,훗날 그 시간에 대하여 해명해야 할 날이 온다.
조회수 2951

완벽주의라는 마약을 끊자

 오늘은 완벽주의에 대해 이야기해볼까 합니다. 이 이야기에 앞서 완벽주의에 대한 정의를 내리기보다는 제가 생각하는 완벽주의란 어떤 것인지에 대해 경험을 통해 이야기를 시작해볼까 합니다. 제가 얼마나 더럽게 완벽함을 추구했는지를 이야기할 때 보통 우스갯소리로 스타크래프트라는 게임을 플레이하면서 제가 추구했던 전략을 예로 많이 듭니다. 저는 저그 종족을 제일 많이 플레이했었는데 해처리에서 라바를 통해 유닛을 변태 시킬 때 꼭 3마리가 가득 차있어야만 변태를 시켰습니다. 4개의 해처리를 일렬로 짓고 각각의 해처리에서 3개의 라바가 반드시 존재할 때 12개의 라바를 선택한 후 한 번에 유닛을 뽑는 쾌감을 즐기곤 했죠.해처리의 오와 열을 맞추고 각 해처리에서 라바가 3마리씩 나올때까지 기다립니다 친구들과 저녁시간에 가볍게 만날 때는 항상 제 계획대로 움직여야 했습니다. 저는 밤에 언제, 어떻게 집에 갈 건지(혹은 밤샘 술과 노가리를 어느 장소에서 깔 것인지) 조차 미리 정한 후에 친구들과 만나곤 했죠. 데이트를 할 때도 정해진 코스로 정해진 시간에 가야만 했고, 만약 영화나 연극을 보기로 했다면 시작시간 10분 전에 가지 않으면 식은땀이 흘렀기 때문에, 자기 자신과 일행들을 보채며 30분 전에 도착해서 땀을 식히곤 했습니다. 저의 이런 습관은 제가 하는 일에도 영향을 미쳤는데, 프로그램을 코딩할 때 완벽하지 않으면 만들 시도조차도 하지 않게 하는 겁쟁이가 되도록 만들었습니다.(물론 완벽함을 추구하는 것이 득이 될 때도 있었습니다만) 반대로, 저의 시뮬레이션대로 위의 상황이 잘 진행되지 않으면 저는 초조했고 짜증이 났습니다. 내가 계획한 Best plan이 있는데 왜 다른 사람들은 알아주지 않는 걸까. 이 사람들은 정말 생각이라는 게 있는 걸까. 제가 어릴 때 아버지는 준비된 사람에게는 준비된 미래만이 있다며 준비성을 강조하셨습니다. 가훈도 "준비하는 사람이 되자"였지요. 저희 아버지에겐 "준비하는 사람"이 어떤 의미인지는 정확히 모르겠지만 제가 준비성이 철저한 사람이 되려고 노력하면 겪은 경험에 의하면 아버지의 말씀은 반은 맞고 반은 틀렸습니다. 틀린 반쪽에 대한 저의 논리를 뒷받침할 예를 들어볼게요.완벽은 유연을 이길 수 없다 중학교 시절 학교에서 있었던 일입니다. 시간표 중에서 일주일에 세네 번가량은 체육수업이 있었습니다. 체육수업이 있는 날은 집에서 체육복을 챙겨가야 했습니다. 저는 저와 우리 가족의 원칙에 따라 체육 수업 전날에는 시간표를 확인하고 체육복을 챙겼습니다. 하루는 제가 학교에 도착 후에 그날의 시간표를 확인하고 사물함에서 교과서를 꺼내 책상 서랍에 넣는 도중 아차 싶은 겁니다. 예상하셨다시피 집에서 체육복을 가져오는 것을 까먹은 것이죠. 그때부터 저의 등에는 식은땀이 흘렀고 안절부절못하고 다리만 떨 뿐 아무것도 하지 못했습니다. 다행히 제 짝꿍도 체육복을 가져오지 않았다고 했습니다. 체육시간에 체육복이 없으면 수업시간 동안 벌을 받아야 했는데 벌을 받는 사람이 나 혼자가 아니라는 사실에 한시름 놓았지요. 그런데 짝꿍이 이렇게 이야기하는 겁니다."체육복이 없으니 옆반에 빌리러 가야겠다" 우리 반 친구들은 똑같은 시간에 체육수업을 들으니 친한 우리 반 친구의 체육복을 빌릴 수는 없습니다. 그렇다면 그날 체육복을 빌리는 방법은 단 한 가지. 바로 그날 체육수업이 있는 반을 찾아서 누군가에게 헬프를 요청해야 하는 겁니다. 하지만 저는 체육수업이 있는 반을 찾고 누군가에게 도움을 요청하기보다는, 체육복을 까먹은 자신을 탓했고, 체육 선생님께 꾸중을 들어야만 했습니다.즐기는 사람은 (완벽한 사람보다) 행복하다 어렸을 적에 무궁화 꽃이 피었습니다, 깡통차기, 얼음땡과 같은 고전 놀이를 하며 친구들과 지냈던 좋은 기억이 있습니다. 위에 언급된 놀이의 공통점은 소수의 술래가 존재한다는 것이고, 술래가 된 사람은 필사적으로 술래에서 벗어나기 위해 열심히 뛰어다녀야 했습니다. 그리고 놀이를 잘 하는 아이들은(술래를 잘 따돌리고 술래를 하는 빈도가 낮은 아이들) 다른 아이들보다 멋진 녀석처럼 보였지요. 그래서 저도 친구들과 놀이를 할 때면 술래가 되지 않기 위해 필사적으로 노력하곤 했습니다. 가끔은 야비한 수를 쓰기도 했고요. 저와 친했던 웅희라는 친구는 달랐습니다. 이 녀석이 얼마나 특이했냐 하면, 녀석이 술래에게 잡혀 자신이 술래가 되면 입버릇처럼 이렇게 얘기했습니다."더 좋아" 도대체 뭐가 더 좋다는 건지 처음에는 이해를 할 수가 없었습니다. 술래가 더 좋다니? 웅희 녀석은 씩 웃더니 "더 좋아"를 신명 나게 외치면서 우리를 잡으러 다니기 시작했습니다. 그런데 그 모습이 얼마나 멋있었던지 우리는 술래가 될 때마다 웅희를 따라 "더 좋아"를 외치기 시작했지요. 술래잡기가 끝나고 저는 웅희에게 다가가 "더 좋아"의 의미에 대해 물어보았습니다. 왜 네 녀석은 술래가 되었는데 더 좋은지 말이죠. 웅희는 이렇게 이야기했습니다."맨날 안술래(숨는 역할)만 하면 재미없잖아. 가끔은 술래도 해야 재밌지!" 위에서 등장한 두 아이들의 공통점은 무엇일까요? 이들은 일이 벌어지기 전에 미리 이것저것 걱정하지 않습니다. 그들은 상황 대처능력이 빠릅니다. 그리고 자신을 믿고 상황을 즐기기까지 합니다. 이 아이들의 힘의 원천을 한마디로 하면 다음과 같을 것이라고 생각합니다.A bird sitting on a tree is never afraid of the branch breaking,because her trust is not on the branch but on it's own wings.나무에 앉아있는 새는 가지가 부러질까 걱정하지 않는다.그녀가 믿는 것은 나뭇가지가 아니라 자신의 날개이기 때문에. 여러분도 완벽한 나뭇가지를 찾기 위해(또는 만들기 위해) 스트레스를 받고 시간을 낭비하고 있진 않은가요? 만약 제가 유연성을 가지고 체육복을 빌릴만한 비슷한 체구의 아이들을 친구로 만들 능력을 가지고 있었다면 어땠을까요? 안술래가 되기 위해 노력하는 것도 중요하지만 술래가 되었을 때의 또 다른 즐거움을 알게 된다면 어떨까요? 현실이 아무리 비참하더라도 날아오를 날개가 튼튼하다면 걱정할 필요가 없을 것이라고 믿습니다. 아버지가 말씀하신 준비는 날아오를 때를 대비하여 날개를 단련하라는 뜻인지도 모르겠네요. 심리학자 아들러의 말을 마지막으로 글을 마치도록 하겠습니다. 현실은 엄격성보다 정신적 유연성을 요구하기 때문이다. 다시 말해, 우리가 몸담고 있는 현실은 추상 작용을 숭배하거나 신격화할 것이 아니라 적절히 이용할 것을 요구한다는 뜻이다. 어쨌든 세상을 살아가는 데 엄격하게 적용할 수 있는 원리 같은 것은 절대로 없다. 어떤 문제의 해결책으로 아주 정확한 것까지도 지나치게 전면으로 내세워질 경우에 삶의 흐름을 방해할 수 있기 때문이다. 예를 들어, 어떤 사람이 청결과 진실을 삶의 목표로 삼은 경우에 그 목표 자체가 그 사람의 인생을 방해하게 되어 있다.- 아들러의 말 page62에서 발췌, 알프레드 아들러#비주얼캠프 #인사이트 #경험공유 #조언
조회수 2819

Apache Spark에서 컬럼 기반 저장 포맷 Parquet(파케이) 제대로 활용하기 - VCNC Engineering Blog

VCNC에서는 데이터 분석을 위해 다양한 로그를 수집, 처리하는데 대부분은 JSON 형식의 로그 파일을 그대로 압축하여 저장해두고 Apache Spark으로 처리하고 있었습니다. 이렇게 Raw data를 바로 처리하는 방식은 ETL을 통해 데이터를 전처리하여 두는 방식과 비교하면 데이터 관리비용에서 큰 장점이 있지만, 매번 불필요하게 많은 양의 데이터를 읽어들여 처리해야 하는 아쉬움도 있었습니다.이러한 아쉬움을 해결하기 위해 여러 논의 중 데이터 저장 포맷을 Parquet로 바꿔보면 여러가지 장점이 있겠다는 의견이 나왔고, 마침 Spark에서 Parquet를 잘 지원하기 때문에 저장 포맷 변경 작업을 하게 되었습니다. 결론부터 말하자면 74%의 저장 용량 이득, 10~30배의 처리 성능 이득을 얻었고 성공적인 작업이라고 평가하지만 그 과정은 간단하지만은 않았습니다. 그 과정과 이를 통해 깨달은 점을 이 글을 통해 공유해 봅니다.Parquet(파케이)에 대해Parquet(파케이)는 나무조각을 붙여넣은 마룻바닥이라는 뜻을 가지고 있습니다. 데이터를 나무조각처럼 차곡차곡 정리해서 저장한다는 의도로 지은 이름이 아닐까 생각합니다.Parquet을 구글에서 검색하면 이와 같은 마룻바닥 사진들이 많이 나옵니다.빅데이터 처리는 보통 많은 시간과 비용이 들어가므로 압축률을 높이거나, 데이터를 효율적으로 정리해서 처리하는 데이터의 크기를 1/2 혹은 1/3로 줄일 수 있다면 이는 매우 큰 이득입니다. 데이터를 이렇게 극적으로 줄일 수 있는 아이디어 중 하나가 컬럼 기반 포맷입니다. 컬럼 기반 포맷은 같은 종류의 데이터가 모여있으므로 압축률이 더 높고, 일부 컬럼만 읽어 들일 수 있어 처리량을 줄일 수 있습니다.https://www.slideshare.net/larsgeorge/parquet-data-io-philadelphia-2013Parquet(파케이)는 하둡 생태계의 어느 프로젝트에서나 사용할 수 있는 효율적인 컬럼 기반 스토리지를 표방하고 있습니다. Twitter의 “Julien Le Dem” 와 Impala 프로젝트 Lead였던 Cloudera의 “Nong Li”가 힘을 합쳐 개발한 프로젝트로 현재는 많은 프로젝트에서 Parquet를 지원하고 컬럼 기반 포맷의 업계 표준에 가깝습니다.Parquet를 적용해보니 Apache Spark에서는, 그리고 수많은 하둡 생태계의 프로젝트들에서는 Parquet를 잘 지원합니다.val data = spark.read.parquet("PATH") data.write.parquet("PATH") Spark에서는 이런 식으로 손쉽게 parquet 파일을 읽고, 쓸 수가 있습니다. 데이터를 분석하기 전에 원본이라고 할 수 있는 gzipped text json을 읽어서 Parquet 로 저장해두고 (gzipped json은 S3에서 glacier로 이동시켜버리고), 이후에는 Parquet에서 데이터를 읽어서 처리하는 것 만으로도 저장용량과 I/O 면에서 어느 정도의 이득을 얻을 수 있었습니다. 하지만 테스트 결과 저장용량에서의 이득이 gz 23 GB 에서 Parquet 18GB 로 1/3 정도의 저장용량을 기대했던 만큼의 개선이 이루어지지는 않았습니다.Parquet Deep Dive상황을 파악하기 위해 조금 더 조사를 해보기로 하였습니다. Parquet의 포맷 스팩은 Parquet 프로젝트에서 관리되고 있고, 이의 구체적인 구현체로 parquet-mr 이나 parquet-cpp 프로젝트 등에서 스펙을 구현하고 있습니다. 그리고 특별한 경우에는 Spark에서는 Spark 내부에 구현된 VectorizedParquetRecordReader 에서 Parquet 파일을 처리하기도 합니다.파일 포맷이 바뀌거나 기능이 추가되는 경우에는 쿼리엔진에서도 이를 잘 적용해주어야 합니다. 하지만 안타깝게도 Spark은 parquet-mr 1.10 버전이 나온 시점에도 1.8 버전의 오래된 버전의 parquet-mr 코드를 사용하고 있습니다. (아마 다음 릴리즈(2.4.0)에는 1.10 버전이 적용될 것으로 보이지만)Parquet 의 메인 개발자 중에는 Impala 프로젝트의 lead도 있기 때문에, Impala에는 비교적 빠르게 변경사항이 반영되는 것에 비하면 대조적입니다. 모든 프로젝트들이 실시간적으로 유기적으로 업데이트되는 것은 힘든 일이기 때문에 어느 정도는 받아들여야겠지만, 우리가 원하는 Parquet의 장점을 취하기 위해서는 여러 가지 옵션을 조정하거나 직접 수정을 해야 합니다.VCNC 데이터팀에서는 저장 용량과 I/O 성능을 최적화하기 위하여 Parquet의Dictionary encoding (String들을 압축할 때 dictionary를 만들어서 압축하는 방식, 길고 반복되는 String이 많다면 좋은 압축률을 기대할 수 있습니다)Column pruning (필요한 컬럼만을 읽어 들이는 기법)Predicate pushdown, row group skipping (predicate, 즉 필터를 데이터를 읽어 들인 후 적용하는 것이 아니라 저장소 레벨에서 적용하는 기법)과 같은 기능들을 사용하기를 원했고, 이를 위해 여러 조사를 진행하였습니다.저장용량 줄이기102GB의 JSON 포맷 로그를 text그대로 gzip으로 압축하면 23GB가 됩니다. dictionary encoding이 잘 적용되도록 적절한 옵션 설정을 통해 Parquet로 저장하면 6GB로, 기존 압축방식보다 저장 용량을 74%나 줄일 수 있었습니다.val ndjsonDF = spark.read.schema(_schema).json("s3a://ndjson-bucket/2018/04/05") ndjsonDF. sort("userId", "objectType", "action"). coalesce(20). write. options(Map( ("compression", "gzip"), ("parquet.enable.dictionary", "true"), ("parquet.block.size", s"${32 * 1024 * 1024}"), ("parquet.page.size", s"${2 * 1024 * 1024}"), ("parquet.dictionary.page.size", s"${8 * 1024 * 1024}"), )). parquet("s3a://parquet-bucket/2018/04/05") 비트윈의 로그 데이터는 ID가 노출되지 않도록 익명화하면서 8ptza2HqTs6ZSpvmcR7Jww 와 같이 길어지기에 이러한 항목들이 dictionary encoding을 통해 효과적으로 압축되리라 기대할 수 있었고, Parquet에서는 dictionary encoding이 기본이기에 압축률 개선에 상당히 기대하고 있었습니다.하지만 parquet-mr 의 구현에서는 dictionary의 크기가 어느 정도 커지면 그 순간부터 dictionary encoding을 쓰지 않고 plain encoding으로 fallback하게 되어 있었습니다. 비트윈에서 나온 로그들은 수많은 동시접속 사용자들의 ID 갯수가 많기 때문에 dictionary의 크기가 상당히 커지는 상태였고, 결국 dictionary encoding을 사용하지 못해 압축 효율이 좋지 못한 상태였습니다.이를 해결하기 위해, parquet.block.size를 default 값인 128MB에서 32MB로 줄이고 parquet.dictionary.page.size를 default 값 1MB에서 8MB 로 늘려서 ID가 dictionary encoding으로만 잘 저장될 수 있도록 만들었습니다.처리속도 올리기저장용량이 줄어든 것으로도 네트워크 I/O가 줄어들기 때문에 처리 속도가 상당히 올라갑니다. 하지만 컬럼 기반 저장소의 장점을 온전하게 활용하기 위해서 column pruning, predicate pushdown들이 제대로 작동하는지 점검하고 싶었습니다.소스코드를 확인하고 몇 가지 테스트를 해 본 결과, Spark에서는 Parquet의 top level field에서의 column pruning은 지원하지만 nested field들에 대해서는 column pruning을 지원하지 않았습니다. 비트윈 로그에서는 nested field들을 많이 사용하고 있었기에 약간 아쉬웠으나 top level field에서의 column pruning 만으로도 어느 정도 만족스러웠고 로그의 구조도 그대로 사용할 예정입니다.Predicate pushdown도 실행시간에 크게 영향을 줄 거라 예상했습니다. 그런데 Spark 2.2.1기준으로 column pruning의 경우와 비슷하게, top level field에 대해서만 predicate pushdown이 작동하는 것을 확인할 수 있었습니다. 이는 성능에 큰 영향을 미치기에, predicate 로 자주 사용하는 column들을 top level 로 끌어올려 저장하는 작업을 하게 되었습니다. 여기에 추가로 parquet.string.min-max-statistics 옵션을 손보고 나서야 드디어 10~30배 정도의 성능 향상을 볼 수 있었습니다.매일 15분 정도 걸리던 "의심스러운 로그인 사용자" 탐지 쿼리가 30여초만에 끝나고, cs처리를 위해 한 사람의 로그만 볼 때 5분 정도 걸리던 쿼리가 30여초만에 처리되게 되었습니다.못다 한 이야기parquet.string.min-max-statistics 옵션과 row group skipping에 관해.Parquet 같은 포맷 입장에서 string 혹은 binary 필드의 순서를 판단하기는 어렵습니다. 예를 들어 글자 á 와 e 가 있을 때 어느 쪽이 더 작다고 할까요? 사전 편찬자라면 á가 더 작다고 볼 것이고, byte 표현을 보면 á는 162이고 e는 101이라 e가 더 작습니다. Parquet 같은 저장 포맷 입장에서는 binary 필드가 있다는 사실만 알고 있고, 그 필드에 무엇이 저장될지, 예를 들어 á와 e가 저장되는지, 이미지의 blob가 저장되는지는 알 수 없습니다. 그러니 순서를 어떻게 정해야 할지는 더더구나 알 수 없습니다.그래서 Parquet 내부적으로 컬럼의 min-max 값을 저장해 둘 때, 1.x 버전에서는 임의로 byte sequence를 UNSINGED 숫자로 해석해 그 컬럼의 min-max 값을 정해 저장했습니다. 이후에 이를 개선하기 위해 Ryan Blue가 PARQUET-686에서 parquet-format에 SORT_ORDER를 저장할 수 있도록 했습니다.여기에서 문제는 이전 버전과의 호환성입니다. SORT_ORDER가 없던 시절의 Parquet 파일을 읽으려 할 때, min-max 값을 사용해 row group skipping이 일어나면 query 엔진에서 올바르지 않은 결과가 나올 수 있으니, binary 필드의 min-max 값을 parquet-mr 에서 아예 반환하지 않게 되어있습니다.하지만 이는 우리가 원하는 동작이 아닙니다. 여기에 parquet.string.min-max-statistics option을 true로 설정하면, 이전처럼 binary필드의 min-max값을 리턴하게 되고 rowgroup skipping이 작동하여 쿼리 성능을 크게 올릴 수 있습니다.마치며Spark과 Parquet 모두 많은 사람이 사랑하는 훌륭한 오픈소스 프로젝트입니다. 또한 별다른 설정이나 튜닝 없이 기본 설정만으로도 잘 돌아가는 편이기 때문에 더더욱 많은 사람이 애용하는 프로젝트이기도 합니다.하지만 오픈소스는 완전하지 않습니다. 좋은 엔지니어링 팀이라면 단지 남들이 많이 쓰는 오픈소스 프로젝트들을 조합해서 사용하는 것에서 그치지 않고 핵심 원리와 내부 구조를 연구해가며 올바르게 활용해야 한다고 생각합니다. 기술의 올바른 활용을 위해 비트윈 데이터팀은 오늘도 노력하고 있습니다.
조회수 46189

'영업'은 여러분이 생각하는 그런 일이 아닙니다

 우리 모두는 '영업직'이라는 말을 들으면 반사적으로 어떤 이미지를 떠올린다. 무더운 날씨에 넥타이를 동여매고 한 손에 자켓을 든 채 땀범벅이 되어 돌아다니고, 실적 압박에 마음고생하며, 무슨 일만 터졌다 하면 가서 고개숙여 사과하는 사람의 이미지. 사실 그렇게 틀린 건 아니다. 고급 외제차에 핸드메이드 스리피스 수트를 입고 환한 미소를 짓는 영업사원은 없으니까. 주변에 그런 영업사원이 있다면, 집에 옥장판이 필요하지 않는 한 멀리하는 게 좋다. 명함에 보석 이름이 써있거나 할 가능성이 높다.·대충 이런 느낌이고, 실제로 이런 느낌이다. 그렇기 때문에, 대부분 구직자들은 영업직군을 상당히 기피하는 경향이 있다. 사실 한국에서 '영업'이라는 단어가 휴대폰을 팔거나, 정수기를 팔거나, 보험을 팔거나...하여간 고객에게 찾아가 뭘 팔아야 영업이라는 인식이 있다. 물론 그게 아주 중요한 역할임에는 틀림없지만, 사실 꼭 그렇지만은 않다. 그래서 오늘은 영업이 무엇인가를 설명해보려 한다.1. 기업의 손과 발 A라는 회사가 있다. 뛰어난 기술력으로 기존 시장에 대파란을 불러일으킬 제품을 만들었다. 광고도 끝내주게 뽑았으니 이제 팔기만 하면 된다. A사 사장은 떼부자가 될 꿈에 젖어 주문 결제 목록을 확인했다. 하지만 주문 건수는 0건이었다. A사는 영업부가 없었기 때문이다. 아무리 좋은 것을 만들더라도, 그것이 왜 좋은 지 고객과 얼굴을 맞대고 설명할 사람이 없다면 아무런 의미가 없다. 이제 막 출시된 제품을 놓고 고객에게 먼저 연락이 와서 '제발 우리에게 이 물건을 팔아주십시오!'라고 말하는 일 따위는 절대로 일어나지 않는다. 아무리 뛰어난 기술과 제품도 제 스스로 구매자를 찾아가 돈과 바꿔오진 않기 때문이다. 이것이 뭐가 얼마나 어디에 좋은 지, 어떤 효과를 낼 수 있는 지 설명할 수 없다면 어떤 제품도, 어떤 서비스도 팔리지 않는다. 기술 영업이라는 직군이 생긴 이유도 바로 이것이다. 세상에는 생각보다 팔아야 할 것들이 많고, 그것들을 팔기 위해서는 영업사원의 부지런한 노력이 필요하다. 영업은 여러분이 생각하는 그 이상으로 중요한 직군이다. 머리로 아무리 좋은 아이디어를 떠올리더라도, 실제로 이행할 손과 발이 있어야 의미가 있는 것이다. ·반짝이는 아이디어에는 금손이 필요하다.2. 사과하는 기계가 아니라 기업의 얼굴이다 기획자, 마케터, 디자이너, 개발자, 경영지원팀....이런 직군은 사과할 일이 거의 없다. 있어도 회사 내부적인 일을 해결하기 위한 것이 대부분이다. 개발자나 디자이너가 고객에게 가서 머리숙여 사과하는 광경을 본 적이 있는가? 자기 회사에서 그런 광경을 본 사람이 있다면 당장 도망치라고 말하고 싶다. 다음 차례는 당신이 될 테니까. 내가 하지도 않은 일을 가지고 누군가에게 사과하러 간다는 건 분명 즐거운 일은 아니다. 잘못은 다른 사람이 했는데, 왜 가서 굽신거리는 건 나인가. 당연히 불합리한 일이다. 그러나 제품이나 서비스를 팔기만 해서는 기업이 제대로 돌아가지 않는다. 사후지원과 고객만족 관리도 영업이 하는 중요한 일 중 하나이다. CS부서를 따로 둘 정도로 규모가 큰 기업이라도, 어지간한 일은 영업사원 선에서 해결이 된다. 영업사원에게 단정하고 정돈된 옷차림을 요구하는 것도 기업의 얼굴로서 해줘야 할 일이 있기 때문이다. 실제로 증권사 시절 겪은 일이다. 나의 고객 중 한 명이 고령으로 세상을 떠났다. 상당한 자산가였고, 잘 찾아오지 않는 자식들이 있었다. 그리고 그들은 고객이 생전에 구매한 채권을 가지고 시비를 걸기 시작했다. '앞으로 살 날이 몇 년이나 남았다고 10년 만기 채권을 사게 한 거냐' '노인에게 이런 걸 팔다니 제정신이냐' 등등, 온갖 매도의 말이 전화상으로 울려퍼졌다. 기록을 찾아보니, 그 채권을 사고싶다고 먼저 제안해 온 건 그 고객이었다. 일단은 검은 넥타이를 매고 장례식장으로 향했다. 사실 금융회사 영업직으로 일하게 된다면 심심찮게 보는 장면이긴 하지만, 재산 분할을 놓고 가족들이 아귀처럼 서로를 물어뜯는 광경은 썩 보기 좋은 일은 아니다. 일단 가자마자 멱살을 쥐어잡히기도 했고. 일본에서는 사망 사실을 인지한 순간 증권사가 고객의 모든 계좌를 동결시키고 상속과 재산분할에 대한 협의가 끝날 때 까지 아무 것도 할 수 없게 만든다. 그들은 바로 그게 불만이었던 것이다. 담담하게 설명을 시작했다. 일단 망인이 그 채권을 사겠다고 한 것은 채권 발행 주체가 신용도가 매우 높은 기업이었고, 은행 이자율과 비교해서 상당히 높은 수익을 얻을 수 있기 때문이었으며, 현재 계좌가 동결된 상태이지만 상속과 재산 분할에 대한 합의가 끝나는 대로 합의된 비율에 따라 각 상속자의 계좌로 이관될 것이다. 연로한 분에게 10년 만기 채권을 팔게 된 점은 윤리규칙상 아무런 문제가 되는 일은 아니나, 가족들에게 불편을 끼쳐 매우 죄송하다. 그리고 나는 고객이 타계하기 전 나에게 감사의 의미로 써주었던 손편지를 꺼내 가족들에게 건넸다. '제게도 할머니 같은 분이셨습니다.' 이 한 마디로 모든 불만은 사라졌다. 그 날 제일 슬퍼하던 건 가족들이 아니라 오히려 나였을지도 모르겠다. 만약 CS부서에서 이 일을 전화로 해결하려 했다면 FINMAC의 중재까지 받아야 하는 일이 되었을 것이다. 비록 사는 사람과 파는 사람으로서 관계를 맺고 있지만, 실제로 얼굴을 마주보고 대화를 나눈다는 것의 힘은 생각보다 강력하다. 영업사원은 편의점 직원이 아니다. 말 한 마디 없이 물건을 받고 돈을 내기 위해 영업사원을 부르는 사람은 없다. 자연스레 주변 얘기도 하고, 궁금한 것에 대해 물어보고, 앞으로의 경제 상황이 어떻게 돌아갈 지 대화를 나누다 보면, 싫더라도 유대감이라는 것이 생긴다. 그리고 그 관계는 굉장히 다양한 곳에서, 생각지 못하게 활용되기도 한다. 사과는 아무나 할 수 있는 게 아니다. 오로지 기업의 얼굴로 활약하는 영업직만이 할 수 있는 일이다.3. 대부분의 영업사원은 실적의 노예가 아니다 특히 보험이나 정수기, 카드처럼 단기적인 실적에 집중하는 회사에서 이런 일이 많다. 물론 증권사도 마찬가지지만, 화이트보드에 이름이나 1과, 2과, 3과 하는 식으로 부서를 죽 써놓고, 그래프를 그리거나 숫자를 써놓거나 하며 독려라는 이름의 압박을 넣는다. 일본에서는 이런 할당량을 '노르마(Norma)'라고 하는데, 증권사 중에서는 노무라 증권이 사람을 개미핥기처럼 훑어내기로 유명하다. 오죽하면 노르마 증권이라고 하는 별명도 있을 정도로. 여기서, 여러분이 흔히 떠올리는 대기업에 그런 영업사원의 이미지가 있는 지 한 번 생각해보자. 그리고 그 회사들에 영업부가 있는지 생각해보자. 물론 내부적으로 실적의 압박이 있는 건 어쩔 수 없는 일이다. 어떤 기업도 '이만큼이면 많이 벌었지 뭘'하면서 만족하지 않는다. 기업의 최전선에서 활동한다는 건, 탐욕의 최전선에서 움직이고 있다는 것과 다르지 않은 말이다. 그 탐욕을 온 몸으로 받아내는 일이 쉬울 리는 없다. 하지만 카드사나 보험사 영업직처럼 사람을 쥐어짜내는 건 생각보다 그리 흔하지 않다. 이런 곳은 애초에 위촉직이니 계약직이니 하면서 자기네 사원으로도 안 쳐준다. 동료 내지는 같은 그룹의 소속원으로서의 유대감조차 필요없다는 뜻이다. 오히려 일반적인 기업의 영업사원은 만화 '미생'에 가깝다. 회사에 필요한 거래를 위해 밤을 새며 일하기도 하고, 전국을 돌며 쪽잠을 자기도 하지만 만화 속 인물들이 괴로워하는 건 일과 실적이 아니라 사람과 직장 내 파벌 같은 것들이 원인이다. ·현실의 많은 영업사원은 이쪽에 더 가깝다.4. 모든 부서의 교집합 회사에서, 제품이나 서비스를 만들 때는 다양한 과정을 거친다. 지금 보고 있는 더 팀스 서비스를 예로 들자면, 기획파트에서 생각한 기획안이 백엔드 개발자에게 넘어가 기능적인 기반을 짜고, 디자이너가 디자인을 하면, 프론트엔드 개발자가 실제로 어떻게 나타낼 것인가를 구현한다. 마케팅파트에서는 이 기획에 대한 브랜딩이나 마케팅 방법을 생각하고, 그렇게 모든 사람들이 만들어 낸 서비스를 내가 가져다 영업하고 있다. 영업을 하기 위해서는 그 과정의 모든 것을 알면 알수록 좋다. 현장에서 무리한 요구를 하거나 흰구름 잡는 소리를 해도 대응이 가능하기 때문이다. 그래서 모든 부서의 교집합이라고 할 수 있다. 우리는 기술영업, 제품영업 식으로 굳이 분류를 나누지만, 모든 영업은 사실 하나다. 제품을 판다고 해서 기술을 모를 순 없다. 하다못해 정수기를 팔래도 이 정수기가 뭐가 좋은 지 알아야 하는 것이다. 여러 사람들이 힘겹게 만든 것을 그저 팔기만 하면 되는 일이지만, '그저' 팔기만 하기 위해서도 상당히 많은 노력이 필요하다. 그래서 영업현장과 동떨어진 기획안은 반드시 망하고(안 팔아주니까), 기획의도를 무시한 영업은 나중에 큰 문제에 휘말린다(대충 파니까). 기업의 모든 부서가 쥐어짜낸 정수를 머릿속에 담고, 다른 사람 앞에서 퍼포먼스를 하는 것이다. 그래서 난 영업을 기업의 종합예술이라고 생각한다.·말하자면 이런 느낌이다.5. 스타트업의 영업 대부분의 스타트업은 영업을 크게 중요하다고 여기지 않는 것 같다. 사실 크게 틀린 일은 아니다. 영업부를 두어가면서 뭘 팔 정도면 스타트업 수준은 아니지 않을까. 하지만 영업에 힘을 쏟는 걸 터부시하는 듯한 느낌을 가끔 받을 때가 있는데, 이건 확실히 틀렸다. 현장에서 영업사원으로 일하던 사람의 관점에서 말하는 것이지만, 스타트업 업계에서는 영업을 '낡은 관습'이라고 생각하는 것 같은 느낌을 받는다. 굳이 우리가 만든 서비스를 돌아다니면서 팔지 않아도, 정말 좋은 것이니까 누군가 사줄 것이라는 믿음이 있는 것 같다. 온라인이나 기타 마케팅 채널은 충분히 활용하고 있으니까. 사실 처음 스타트업에서 일하기 시작할 때, 초반 2개월 정도는 '스타트업은 샤이한 사람들만 하는 건가?'하는 의문이 들 정도였다. 전혀 그렇지 않다. 굳이 영업부나 영업팀을 둘 필요까진 없더라도, 반드시 누군가는 그 직무를 소화해야 한다. 회사의 대표나 마케팅 팀이 겸업하는 형태로라도, 영업은 무조건 필요한 것이다. 좋은 마케팅 수단을 이용해서 이미지나 브랜드를 알리는 것 역시 필수적인 일이다. 하지만 좋은 마케팅 수단은 영업직군이 해야 할 일을 줄여줄 순 있어도 완전히 대체할 순 없다. 현장의 사람들이 느끼는 것들을 체크하고, 직접 발로 뛰며 브랜드를 알리는 것 만큼은 꼭 필요하다. 여차할 때 전화 걸어 '어 그거 어떻게 되고 있어요?'같은 질문을 걸 수 있는 사람은 있어야 하지 않는가. 나의 경우도, 부족하나마 기획 회의에 참여하기도 하고, CS업무를 맡거나, 경영지원 업무를 동시에 하면서 영업 직무를 수행하고 있다. 아직까지는 영업파트로서의 일이 크게 필요하지 않지만, 그래도 사람이 있고 없고는 다를 것이라고 생각하고 있다. 외연 확장이 중요한 만큼, 전담해서 할 사람도 필요할 것이다.·스타트업의 영업부서는 배우자 같다. 어릴때는 있으면 좋고, 없어도 크게 아쉬울 것은 없다.그리고 나이가 들면 그 좋은 점을 알게 된다. 영업에 대해서 죽 말했지만, 결론은 여러분이 생각하는 것처럼 무작정 힘들고, 짜증나고, 실적 압박에 목이 조여오는 그런 직군은 아니라는 것이다. 만약 그랬다면 다른 직군보다 돈을 많이 줘서 사람을 끌어모았거나, 아예 다른 직무로 대체했을 것이다. 영업부가 없는 회사를 본 적 있는가? 가장 흔하다는 것은 가장 필요하다는 것과 같은 말이다. 어느 정도 규모 이상에서,  영업사원이 필요없는 회사를 난 한 번도 본 적이 없다. 누구나가 구한다는 것은 누구나가 필요로 한다는 것이다. 물론 독특하고 더 재미있을 법한 직군은 세상에 많다. 하지만 영업도 나름의 재미와 보람이 있다. 이 재미와 보람을 느끼는 법에 대해서는 다음에 쓰려고 한다. 개발자, 디자이너, 기획, 마케팅...잠깐 생각해도 세상엔 수많은 직군이 있다. 그리고 세상의 모든 일은 노동력을 제공하고 대가를 받는다는 공통점을 가지고 있다. 노동은 분명 신성하지만, 즐겁고 행복한 것은 아니다. 그래서 노동을 하면 돈을 받는 것이다. 영업이 힘든 만큼 다른 직군도 저마다의 힘든 점이 있다. 바꾸어 말하면, 영업은 다른 직군이 힘든 만큼 힘든 일이다. 세상에 합법적으로 편하게 버는 돈은 복권밖에 없다. 여러분이 다른 직군을 알아보고 생각하는 만큼, 영업직군에 대해서도 진지하게 고려하는 시간을 가졌으면 좋겠다.#더팀스 #THETEAMS #영업 #인사이트 #경험공유 #직무분석
조회수 2889

13. 내 깜둥이의 자위기구

개발자 시절 가장 힘든 시간은 변수명과 메소드명을 지을 때였다. 서비스나 회사 이름은 그보다도 더 힘들었고 그래서 그만큼 많은 시간을 할애했지만 모두 실패했다.  우리는 첫 서비스부터 지금까지 1번도 아니고 3번 그리고 회사 이름까지 하면 총 4번의 네이밍 실패를 겪었다.  정말 고민에 고민을 하고 지었는데도 말이다. 네이버 검색이나 구글링 또는 몇몇 사람들한테 물어보는 정도는 부족하다는 것을 알게 되었다. 특히 영어 단어를 이용한 네이밍이나 영단어들을 합치는 네이밍은 영어 잘하는 한국인이 아닌 현지인들의 검증을 거쳐야 한다. 그것도 연령대와 성별도 다르게 해서 여러 명으로부터 받아야 한다. 특정 연령층이나 특정성별 또는 특정 연령대에서 안 좋게 쓰이는 용어들도 있기 때문이다.1. 만땅5년 전 배터리 공유 서비스를 준비하면서 서비스 이름을 고민하던 시기였다. 수십 가지 이름들이 후보들이 나왔고 그중에 재미있는 느낌을 고른 것이 '만땅'이였다. 주유소에서 기름을 꽉 채울 때 쓰는 표현인데 젊은 친구들은 스마트폰의 배터리가 가득 찬 상태를 표현할 때 쓰기도 했었다.만땅이란 단어의 사전적 의미가 썩 좋지는 않았다. 또한 그 유래가 일본어라서 걱정이 되기도 했지만 주변 사람들에게 많이 물어보고 고민하고 내린 결정은 "정말 크게 문제가 되지는 않을 것 같다"였다. 약간은 어설프지만 귀여운 히어로 캐릭터와 함께 B급 감성으로 서비스를 친근하게 가져가자는 기획과도 어느 정도 맞아떨어졌다.< '만땅'은 그럭저럭? 버틸만 했다. >그렇게 첫 서비스 이름이 탄생했다. 몇몇 고객들로부터 서비스 이름이 조금 걸리긴 하네요. 라던가 기자분들에게 단어의 뜻에 대한 피드백을 받기도 했지만 서비스 본업에 지장이 있을 만큼의 안 좋은 피드백은 없었기 때문에 그럭저럭 버티면서 서비스를 진행할 수 있었다.2. 내 깜둥이의 자위기구 ( Mycoon 의 Plugger )만땅 서비스를 초기에 본엔젤스로부터 첫 투자를 받고 법인 설립 절차를 진행하던 시기 '회사 이름 지으셔야 해요."라고 강대표님으로부터 연락이 왔다. 회사 이름? 생각조차 하지 않았었는데. 아! 회사 이름도 우리가 직접 정하는구나 하고 신기해하던 시절이었다.서비스 이름은 정해졌지만 회사 이름을 "주식회사 만땅" 으로 하기는 좀? 그랬었다.  그래서 며칠 고민 끝에 나온 이름이 마이쿤이었다. 모바일 업계에서 거물이 되자라는 뜻으로 두 단어를 합쳤고 발음도 쉬웠다.Mobile + Tycoon = Mycoon나름 뿌듯했다. 그때 당시에는...그리고 시간이 지나 '만땅'앱의 2번째 버전인 충전장소의 위치정보를 공유하는 앱을 신규로 개발했고 이름을 Plugger로 지었다.  Plug + er을 합성해서 충전을 위해 플러그를 찾는 사람들이었다. 팀원들도 다들 괜찮다는 의견이었고 그렇게 세 번째 네이밍을 했다. 꾸준히 공부도 하는 사람? 끈질기게 선전하는 사람? 의 사전적 의미도 좋았다. 그리고 구글링도 해봤는데 별 특이한 점을 찾지 못했다.< 충전을 위해 플러그를 찾는 사람들? 뜻은 좋았다. > 문제는 미국을 건너가서 시작되었다. 2015년 1월 500 스타트업으로부터 투자를 받고 SF배치 참가 확정을 받게 된다. 노점상을 하면서 매일같이 버티던 우리에게는 정말 큰 성장의 기회가 찾아 온 것이다. 그렇게 국내 스타트업 최초로 500 스타트업 배치에 선정이 되었고 정말 많은 준비를 하고 팀의 절반인 5명이 미국으로 건너 가게 된다.15개 국가에서 건너온 35개 팀들과 함께 생활이 시작되었다. 같은 배치의 35개 팀이 첫날 간단한 인사들을 나누고 펍에서 다 함께 맥주를 먹던 중 한팀의 외국인 친구가 말을 건네 왔다. Plugger가 뭐냐? 자위기구를 만드는 하드웨어 제조 스타트업이냐고 물었다. 부족한 영어 실력 지만 아는 그 단어? 가 나왔고 나는 분명히 알아 들었다. 아 이게 무슨 소리인가 하고 그 친구에게 물었고 서로 오해를 풀었다. 그리고 그 친구가 폰으로 구글링을 해줘서 나에게 보여줬다.  검색어는 'Plugger for women'였다. 콘센트를 찾아서 플러그를 꼽는 동작은 하잖아 그래서 이 단어를 거기에도 쓰는 것 같다는 상세한 설명을 더해줬다. 여자들은 아마 이런 뜻으로 오해를 할 소지가 있다는 것이였다.망치로 한 대 맞은 기분이었다. 우리가 6개월 가까이 개고생을 하면서 만든 서비스의 뜻이 자위기구라니..다음날 전체 배치 인원들이 모여서 갑자기 팀 소개를 시켰다. 안되는 영어에 뭐라도 말하자 싶어서 어제 생각이 나서 말도 안 되는 콩글리쉬를 했다.어제 펍에서 한 친구가 자위기구를 만드는 스타트업이냐고 물었다.(미국인 친구들의 유머 코드를 모르겠지만 이 말을 하자마자 홀에 모였던 미국 친구들이 모두 다 빵 터졌다.)우리는 자위기구를 만드는 스타트업이 아니다. Plugger는 플러그를 찾는 사람들이란 뜻이고 우리는 충전을 할 수 있는 위치정보를 공유하는 앱을 개발하는 스타트업입니다. 한국에서 왔고 앞으로 잘 부탁합니다.소개가 끝나자  500 스타트업 CEO 데이브 맥클루어가 진심인지? 위로인지? 모르겠지만 스타트업은 수단과 방법을 가리지 않고 서비스를 알려야 하는데 Plugger 서비스는 그런 점에서 오늘  사람들에게 가장 각인을 잘 시켰다고 했다. 그뒤로 서비스 이름으로 남자멘토들과 여자멘토들이 심각하게 논의를 했고고 해당 단어가 일부? 여자들만 쓰는 단어이기 때문에 써도 된다는 결론을 내렸다. 그래도 내심 찜찜했다. 서비스 이름의 다른 뜻이 자위기구는 아니지 않은가?  자위기구의 충격이 가시기도 전에 다시 한번 충격적인 소리를 듣게 된다. 며칠이 흘렀고 몇몇 팀들과 좀 친해져서 인사 정도는 나눌 정도가 되었을 무렵 한 흑인 친구가 찾아와서 말을 건넸다. 너 회사 이름의 뜻을 알고 쓰고 있냐?  미국에서 서비스를 정식으로 할 거면 회사 이름을 바꾸는 게 좋겠어.라는 조언이었다. 한국 이름으로 마이쿤, 영어 표기로 Mycoon을 썼는데 Coon이 정말 안 좋은 단어인데 너희는 앞에 My까지 붙었다고... Mobile+Tycoon 이란 뜻이라고 내가 설명을 했지만 그 친구의 해석은 My + coon, 내 깜둥이라는 뜻이었다. < Tycoon>그렇게 우린 내 깜둥이의 자위기구(Mycoon 의 Plugger)가 되었다. 시간이 지난 지금 Plugger 서비스는 종료했고, 회사 이름은 Mycoon에서 Mykoon으로 변경을 했다. 그때 조금만 더 신경을 썼더라면 시간과 비용을 아낄 수 있었을 텐데 하는 후회가 된다. 3. Spoonme서비스를 종료했고 피벗팅 이후 새로운 서비스를 시작하면서 또 이름을 정해야 하는 시점이 있었다. 3번을 이랬는데 얼마나 더 심사숙고를 했겠는가? 목소리로 소통하는 오디오 서비스를 만들자고 결정을 했고,  한 팀원이 우리 서비스는 서로가 위로와 감성을 전하는 서비스 이기 때문에 영화 Her의 대사 중에 하나인 Spoon Me로 해보자는 의견이 나왔다. 나는 해당 영화를 봤었고 해당 대사가 나오는 예쁜 장면을 기억하고 있었다.네이버와 구글링을 했는데 참 따뜻한 표현이었고 서비스 취지에 맞았었다. 다시 한번 여러 외국인 친구들에게 물었는데 별 이상이 없었다.(이게 실수였다. 공부만? 잘했던 올바른 친구들에게만 물었고 성별은 이전의 Plugger 네이밍 충격으로 여자가 많았었다.)< 연인간에 뒤에서 백허그를 해달라는 표현으로 쓴다. 양지에서는...>신규 서비스의 이름은 그렇게 스푼 미-SpoonMe로 졌다.  사용자들도 이름이 좋다고 했고 우리도 어느 정도 만족을 했었다. 설마 또 이름 가지고 문제가 생길까? 그럴일 없어 이건 아름다운 영화 대사잖아...그러고 몇 달이 지나서 500 스타트업 멘토들이 한국을 찾아와서 같이 저녁을 먹을 기회가 있었다.서비스를 피벗 했고 열심히 새로운 서비스를 만들고 있다. 서비스 이름을 묻길래 SpoonMe 라고 했다. 그랬더니 또 몇몇 친구들이 뿜어대기 시작했다. 왜? 또? 설마? 야 영화에 나오는 대사잖아. 이게 왜 문제야? 재차 물었다. 4~5명의 남자 외국인 멘토들이 또 심각하게 논의를 시작했다. 이게 문제가 될 것인가? 말 것인가? 그래서 나온 결론은 안 쓰면 좋겠다 였다. 오해할 소지가 Plugger 보다 크다는 것이었다. 그 이유는 남자들끼리 대화할 때 특정체위를 표현하는 속어로 쓴다는 것이었다. 그 뒤로도 몇몇 외국인 친구들한테 똑같은 피드백을 받았다.< 이 그림을 누드로 생각해보자. 그게 스푼미 이다. > 아 이번에도 또 이름이?  베타 서비스 기간이었지만 비용을 들여서 도메인을 구입했고 각종 디자인과 SNS 그리고 앱에서 SpoonMe를 쓰고 있었다. 팀원들과 다시 한번 논의 끝에 이번에는 초반부터 정말 논란 없게 미리 변경하자는 의견을 가지고 Spoon이라는 이름으로 모든 것을 수정 했다. < 아직도 그 흔적이 남아 있다? 스푼의 안드로이드 팩키지명.>그렇게 4번째 네이밍을 실패하고 지금의 스푼이라는 서비스명을 정할 수 있었다. ASO와 SEO를 위해 라디오 단어를 추가 했다. 하지만 아직도? '스푼미'라고 부르는 초기사용자들이 남아 있을 정도로 네이밍은 한번 정해지면 그 인식을 변경하는데 많은 리소스와 많은 시간이 드는 것 같다.앞으로는 스푼 서비스가 지속적으로 성장해서 다시는? 네이밍 할 일이 없기를 바랄 뿐이다.#스푼 #Spoon #스타트업마케터 #마케터 #운영 #네이밍 #인사이트 #경험공유
조회수 1910

아마존의 전략 VS 알리바바의 전략

아마존과 알리바바는 각각 미국과 중국에서 온라인유통의 절대강자로 성장했다.알리바바는 중국판 월마트라 불리는 ‘선아트’ 지분 36.16%를 29억 달러에 인수했으며, 선아트는 중국에 446개의 할인매장을 가지고 있다.아마존은 미국 최대 유기농 식품업체인 홀푸트를 인수했고 홀푸드는 미국, 캐나다, 영국에 460여개의 매장을 가지고 있다.두 회사는 앞다투어 인공지능, 빅데이터, IOT 등 테크놀로지를 이용해서 온오프의 경계를 허물고 새로운 유통방식을 선보이고 있다. 이 두 회사는 이런 면에서 매우 유사한 것처럼 보이지만 두 회사의 성장전략과 철학에는 근본적으로 다른 것들이 있다. 아마존이 중앙집권적 제국의 전략이라면 알리바바는 성벽을 낮춰 탈중앙화된 생태계를 구축하는 전략이다. 아마존의 ‘아웃사이드 인’ 전략: 고객(아웃사이더)의 눈으로 기업활동을 점검하며 경영전략을 짜는 것이다. 알리바바의 ‘인사이드 아웃’ 전략: 기업 자체적으로 기업의 역량과 강점을 진단해서 어떻게 매출과 점유율을 높일지 접근하는 방식이다. 자, 그러면 이 두 가지를 비교해보자. 아마존의 아웃사이드 인 전략아마존은 철저히 ‘아웃사이드 인’ 전략이다. 고객이 모든 판단의 기준이다. 아마존은 고객과 직접적으로 관련되지 않는다면 아무 데도 시간과 비용을 쓰지 않는다. Customer Obession이 있을 정도다. 그게 그의 Ego이다. (2017. 4. 18 쿼츠)아마존은 모든 서비스에서 누가 우리의 고객인가.그들이 필요로 하는 것은 무엇인가를 따진다.기술 개발이 선행이 아니라 고객의 니즈가 먼저이고 기술은 고객의 니즈에 맞춰 개발된다.아마존의 서비스 개발방식을 보자! 서비스 개발 전 보도자료 작성: -      어떤 식으로 언론에 발표할지를 상상하면 작성한다. -      보도 자료 작성이 어렵다면 소비자들에게 어필하기 어렵다고 판된돼 프로젝트가 폐기된다.FAQ 작성-      소비자가 새 서비스를 이용할 때 궁금해 할 점, 어려운 점, 문제점 등을 미리 고민하는 단계, FAQ를 읽었는데도 궁금증이 해소되지 않으면 프로젝트가 폐기된다. 이렇게 해서 등장한 아마존의 서비스들은-      비용대비 이익성이 떨어진다는 반대에도 강행한 아마존 프라임-      신용카드 정보만 입력하면 클릭 한 번으로 주문. 결제하는 원클릭 시스템-      온라인 주문한 뒤 오프라인 매장에서 수령하는 ‘드라이브 스루’-      접근성을 높인 웨사이트 유저 인터페이스  등등등 수도 없이 많다! 아웃사이드 인은 아마존이 소비자를 대하는 태도였지만, 동시에 아마존 제국을 설명하는 말이다. 아마존은 아마존 밖( outside)의 모든 유통을 제국 안(in)으로 집어넣고 있다. 재고 관리부터 물류까지 아마존은 모든 것을 직접 통제한다. 온오프를 가리지 않고 유통에 있어서만큼은 모든 것이 아마존 안으로 들어간다. (2017. 11. 22 포브스)아마존은 밑지고 최저가에 팔면서 고객을 장악한 뒤 경쟁자들이 나가떨어지면 순식간에 시장을 장악한다. 번 돈은 다시 고객 경험에 투자하면서 더 많은 고객을 아마존 제국으로 흡수한다. 동시에 더 많은 경쟁자가 나가떨어진다.아마존은 소비자에 집착하면서 깍고, 덜 벌로, 대신 그 돈을 투자해서 시장을 파괴한다. 겨우 살아남은 유통업체들은 자신의 제국에 복속시킨다. 알리바바의 인사이트 아웃 전략알리바바도 소비자를 강조한다. 그러나 우선순위는 오픈마켓에 입점한 중간 판매자들이다. 빠르게 변하는 시장에서 고객 니즈에 대응하는 것은 판매 일선에 맡기는 게 낫다는 것이다. 그래서 알리바바 유통채널에서는 중간판매자의 권한이 강조된다. 한 마디로 알리바바와 관계를 맺은 모든 기업이 아마존이 되게하겠다는 것이 마윈의 계획이다. 그래서 알리바바는 상품등록, 주문, 결제, 배송으로 이어지는 온라인 유통 시스템을 구축하는데 힘을 기울였다. 그것은 다음과 같다.1.    물류시스템 차이나오 네트워크’(Cainiao Network)데이터 기반의 스마트 물류 플랫폼: 주문이 접수되면 어떤 창고에서 어떤 택배회사를 거치면 가장 효율적으로 배송될지 15초 안에 계산한다. 이를 바탕으로 차이냐오와 계약된 3,000 여개 물류회사에 배송물량이 할당된다. 2.    결제 시스템 알리페이(AlliPay)전자상거래에 대한 불안감을 해소하기 위한 제 3자 지급결제 서비스이다. 고객이 결제하면 배송되는 동안 알리페이가 대금을 보관하고 있다가 물건 수령 후 대금이 판매자에게 지급된다.3.    소상공인 금융지원 ‘안트파이낸셜’마이크로 파이낸스 회사. 알리바바 플렛폼에 합류하고자 하는 온라인 사업자들에게 저금리 대출을 해주는 등 금융서비스를 담당한다.알리바바가 이런 식으로 중소기업자들이 알리바바 시스템에 뛰어들 수 있도록 생태환경을 마련한 이유를 마윈은 아래와 같이 같이 말하고 있다. 2016년 알리바바 총거래액은 5,500억 달러를 넘었다. 우리가 판매하는 것을 우리가 직접 배달하려면 500만 명의 직원이 필요하다. 이 500만 명을 어떻게 고용해야 할까? 유일한 방법은 서비스 기업, 물류회사 등에게 자율권을 부여해 이들이 효율적으로 이윤을 낼 수 있도록 돕는 것 뿐이다. 알리바바의 기술혁신으로, 1,000만에 달하는 중소기업파트너들에게 마이크로소프트, IBM 등과 경쟁할 수 있는 힘을 부여하려는 것이다. 인터넷 기술을 통하면 모든 기업이 아마존이 될 수 있다는 것이 우리의 철학이다.(마윈. 2017. 2. 14 CNBC 인터뷰) 결국 마윈의 전략은 알리바바가 제국이 되는 것이 아니라 중소기업파트너들을 아마존으로 만들어주겠다는 철학이다. 이 글은 TTimes를 참고로 작성되었습니다.              
조회수 1029

스타트업, 시작하기 전에...

나는 후배들에게 스타트업과 관련하여 어떻게 성공하는 가에 대해서는 이야기할 성공 경험과 성공을 말할 능력은 없다. 다만, 무수히 많게 도전한 대부분의 사업의 실패 경험만 있을 뿐이다. 그래서, 성공하는 법은 이야기할 수 없고, 다만, 실패하거나 망하는 방법을 피하는 방법에 대해서만 이야기한다.'바둑은 운의 기예이다.'라는 말이 있다.사업과 성공, 승부에 대한 단어를 생각하기에 가장 좋은 비유는 바둑인것 같다. 알파고와 이세돌 9단의 대국을 보면서 사업에 대한 여러가지 생각이 떠올랐다. 보통, 바둑은 기예의 대결이라고 한다. 기량만이 신뢰할 수 있는 최상의 무기라고 바둑을 아는 사람들 대부분 그렇게 이야기한다.하지만, 승부의 결과는 꼭 그렇지 않다. 기량과 관계없이도 승부는 갈릴 수 있다. 이론으로 설명 안되고, 인력과 기량을 초월한 그 무엇으로 승부는 갈린다. 그러한 것을 많은 사람들은 '운'이라고 이야기한다. 물론, 그런 '운'도 기량의 하나라고 이야기하는 사람들도 있다.일단, 사업 성공의 비밀은 '운(運)'이 좋아야 한다. 시대적인 배경이건, 주변 인맥의 힘이건, 전쟁이건, 태어난 나라의 혜택이건... 일단, '운(運)'이 필요하다. 하지만, 이것은 어떻게 선택하거나 원한다고 생기는 것이 아닌, 외부의 효과이기 때문에 그런 천운을 받은 사람은 말 그대로 복 받은 사람이다. 그리고, 대부분은 '운'이 없다.그리고, 팀을 구성하고 팀원들이 세팅되는 것도 대부분 '운(運)'이 좌지우지한다. 그것 또한 어떻게 할 수 없는 외부 요인이다. 사업은 개인의 노력으로 어떻게 해결되지 못하는 것이 대부분이다. 그것을 알고 시작하도록 하자.다만, 이러한 '운'을 제외하고 통제할 수 있거나 판단할 수 있는 것들에 대해서 이야기하려 한다. 창업을 하고 싶은 사람에게 이야기해줄 키워드는 몇 가지밖에 없다.하나. 하늘이 내린 운...둘. 만들어진 제품이나 서비스를 구매할 시장, 마켓의 존재 유무셋. 너무 빨리 만들면 안 된다. 적당하게 시간을 맞추어야 한다.넷. 너무 많은 기능이 들어가거나 너무 적게 들어가면 안 된다. 적절한 비용으로 만들어진 적절한 제품이어야 한다.영어 키워드로 나열하면. Lucky, Market, right timeing/product, 실제 계산할 수 있거나 통제할 수 있는 것은 시장에 대한 판단과 적절한 시기와 적절한 기능에 대한 통제이다. 물론, 절대적인 것은 '운'이라고 생각하자.물론, 운은 있었으나 너무 빨리 만들거나, 너무 많은 기능으로 구현된 제품과 서비스를 내놓으면 실패한다. 내가 그러했다. 결국, 운을 기회로 만들고, 성공이라는 키워드로 바꾸는 것은 결국 '기량'과 '실력'의 차이라고 생각한다.뭐, 더 냉정하게 이야기한다면. 대한민국에서 사업에 성공하려면 '땅'이나 '부동산'을 사는 것이 최선이었다. 미래는 어떻게 될 것인지 모르겠지만, 최소한 2016년도까지는 그러한 것이 맞는 것 같다. 국내 벤처회사들 중에 우연인지 아닌지 모르겠지만. 대부분 '건물'과 '땅'을 구매했던 회사들은 살아남아있다. 아니, 그렇게 행동할 수 있는 결정을 내린 똑똑한 임원들이 그 회사를 살린것인지도 모르겠다.다만, 스타트업을 만들고 제대로 된 회사를 만든 다는 것이 얼마나 많은 고통 이상의 것들을 경험해야 하는 것인지 잘 아는 필자이기 때문에 '사업'에 대해서 진지하게 고민하라고 이야기하고 싶다. 이번 글의 주된 내용은 '사업'을 시작하기 전에 그런 것들을 고민해 보라는 것이다.성공과 성취에 대한 형이상학적은 뜬구름 잡는 이야기가 아니라, 조금은 현실적인 부분에 있어서 충분하게 생각하고 고민하고, 정말 자기가 하고 싶은 일이 의미가 있는 것인지에 대해서 생각해보았으면 하는 마음에서 그동안의 경험을 기반으로 몇 가지를 정리해본다. 그다음에 사업을 시작하는 생각을 결정해도 충분히 늦지 않을 것이다.일단, 창업을 꿈꾸는 사람들이 다음과 같은 이유로 회사를 그만둔다는 것이라면 다시 한번 창업을 생각하기 바란다.첫 번째. 사업이라는 것이 경영과 영업이 그렇게 대단해 보이지 않는다. 경영진과 영업이 하는 일이 그렇게 많아 보이지 않는다. 더군다나, 잘하고 있는 것 같지도 않다. ( 경영이나 사업, 영업이 쉬워 보일 때가 있다. )회사에서 열씨미~~ 일을 하는 직원들은 정신없는데, 경영진이나 영업진들이 하는 일은 명쾌하게 보이 지를 않는다. 다들 노는 것 같고, 무슨 일을 하는지 잘 모르겠다. 당장 물건을 만들 거서 서비스에 집중하기보다 뜬구름 잡는 이야기만 하는 사람들만 많은 것 같이 보인다.특히, 소프트웨어를 개발하고 있는 내가 보기에는 회사의 경영진이 제대로 고객과 대응하지 못하고, 잘못된 대응을 하면서 소프트웨어 개발자인 내 일이 점점 더 힘들어지고 있다. 그래서, 내가 직접 하는 것이 현명하다고 생각을 자주 하게 된다.쉽게 이야기해서 ‘경영진은 제대로 경영을 못하고, 영업팀은 제대로 고객 응대를 잘 못하고 있는 것 같다는 생각이 드는 때에, 스타트업을 생각하는 개발자의 경우에는 필자는 말리고 싶다.이런 생각을 하고 있는 개발자라면 아직은 '소프트웨어 개발'에 대해서 밖에 잘 모르는 상황이므로, 아직은 '창업'을 꿈꿀 때가 아니라고 필자는 창업을 만류하겠다. 아직은 언제나 자신이 하는 일이 더 커 보이고, 더 어렵게 생각되는 것은 매우 당연한 것이고, 일반적인 사람들의 입장에서는 그렇게 보이는 것이 매우 당연한 것이다. 그래서, 너무 자신의 좁은 시야만을 가지고 있기 때문에 창업을 하거나 스타트업을 하는 것에 대해서 깊이 있게 생각하기 바란다. 그렇게 너무 일반적인 '직장인'의 시선으로 밖에 회사의 업무를 파악하지 못한 것이기 때문에 아직은 '창업'을 할 때가 아닌 것 같다.두 번째. 아주 멋진 아이디어가 있고, 이 아이디어에 대해서 회사에서 받아들여지지 않는다. 정말 획기적인 아이디어인데... 이 아이디어는 분명, 누군가가 이 서비스가 만들어지면 열광할 것이다라는 믿음을 가지고 있을 때이다.누군지는 잘 모르겠지만, 내 아이디어를 필요로 하는 그 누군가를 위해서 이 아이템과 이 아이디어를 실현하고 싶다는 생각을 자꾸 떠올리게 한다. 다만, 이 아이템 와 아이디어가 쓸모 있을 것이라는 확신은 약간 부족한 정도일 뿐이다.하지만. 그 아이템과 아이디어가 '돈'을 주고 구매할 대상이 정말 존재할 것인지에 대해서 먼저 의심을 가져야 한다.조금은 구체적인 아이디어를 통해서, 실제 구매할 대상이거나, 아니면. 최소한 내가 '돈'을 내고 살 수 있는 아이디어가 구체화될 때까지 창업을 뒤로 미루라고 조언을 주고 싶다.언제나 기술이나 아이디어가 실제 실현되고 시장에서 제 역할을 하기 위해서는 실질적인 '구매자'가 분명하게 존재해야 한다. 단지, '아이디어'와 '서비스'의 아이디어만 가지고 실제 사업을 수행한다는 것은 매우 쉽지 않은 일이다.세 번째. 아이디어를 충분하게 구현을 하지 않았지만, 이 아이디어는 분명하게 성공할 수 있는 가능성이 있다. '돈'만 있으면, 충분하게 사람을 구하고, 서비스를 준비해서 시작할 수 있을 것이다.만일 이런 생각을 가지고 있다면, '작은 서비스'나 '작은 프로토 타입'이라도 실제 개발하여 보는 것을 먼저 하라고 권하고 싶다.어떤 아이디어이건 실제 구현을 하다 보면, 실제 머릿속으로 구상했던 것과는 전혀 다른 의미를 가지거나, 많이 부족하거나, 구체적인 실현 아이디어들이 덜 생각되어진 경우가 많다. 대부분의 성공적인 스타트업을 수행한 사람들의 사례를 살펴보면, 작은 것부터라도 실제 구현하고 실제 만들어본 후에 일을 시작한 경우가 많다는 것이다.이 외에 에도 내가 만들고 싶은 무언가를 위해서 창업과 비즈니스를 꿈꾸고 있는 개발자가 있다면, 이번 칼럼에서 몇 가지를 조언하고 싶은 것 중에 가장 큰 것은 '꿈'을 실현하는 데 있어서 '현실적인 일'에 대해서 너무 무시하거나, 너무 작게 생각하지 않기를 바란다.필자 역시 무언가를 만들고 싶어서 창업을 시작했을 때에는 정말 신났던 기억이 난다. 내가 만들고 싶은 제품에 대한 아이디어를 구상하고 구현하고 싶은 무언가를 만들고 테스트하고, 하고 싶은 것을 위해서, 만들고 싶은 것만을 위해서 그 이야기만을 나누는 사람들을 모으고, 그 꿈에 대해서 이야기할 때에 정말 즐거웠다.하지만, 나중에 알게 되었다. 실제, 사람을 모으고, 사람과 호흡하면서 실제 무언가를 만들어 나가는 '이익'을 위한 조직인 회사라는 곳과 공동작업이라는 것을 위해서 얼마나 많은 부수적인 작업들과 생각, 비전과 프로세스, 목표 등에 대해서 제품 개발 업무 이외의 수많은 작업들과 필요한 행정적인 업무들이 정말 많다는 것, 그러한 업무들이 정말 많다는 것을 나중에야 알게 된다.물론, 이러한 일을 대신해주고, 도와줄 사람을 구하는 것도 방법일 것이다. 하지만, 그 역시 사람이 투입되게 되면 '비용'이 들어가는 것이고, 어떤 사람이라고 하더라도, 자신과 똑같은 생각을 일치하게끔 가지는 것은 정말 매우 어려운 일이다.현재 시점에서 필자가 생각하는 무언가 목표로 하고 있는 서비스를 개발하는 것과, 다른 부수적인 업무들을 구분하고, 그러하게 만들어진 '가치'를 실제 시장에 내어 놓고, 실현하는 것을 퍼센트로 구분한다면 필자는 이렇게 정의한다.무언가를 만들어 내갈때에는 처음에는 개발이 50%, 다른 잡스러운 업무가 50%라고 생각할 수 있다. 순수하게 소프트웨어를 개발하고 구성하고 테스트하는 업무가 50이고, 다른 잡스러운 행정적인 것들의 업무가 50%를 넘어서는 수준으로 발생한다.은행을 찾아가는 법, 세금에 관련된 것, 직원을 고용하는 것에도 규칙이 있다는 것, 사람을 뽑고 관리하고, 시간을 조절하고, 근무장소에 대한 것, 사무실 청소부터 작은 소모품에 대한 관리까지 정말 많은 것이 있다.사람들과의 트러블은 매우 당연하게 발생하고, 별것 아닌 것 같지만 시간을 끊임없이 소모하게 되는 수많은 서류들이 '업무'로써 존재한다.정말 제품과 서비스를 만드는 것 이외의 전혀 상관없다고 생각하는 것들에 대해서 생각해야 하고 아이디어를 가져야 하고, 경험을 가져야 한다. 그런 업무에 대해서 생각하고 고민해야 하고 투자해야 한다.그리고, 실제 '서비스'나 '제품'이 나왔다면, 이러한 것들을 유지하기 위한 개발업무가 30%, 기타 잡스러운 업무가 30%, 해당 제품과 서비스를 관리를 하고, 유지 보수하는 업무가 전체의 40%에 해당한다.실질적으로 소프트웨어를 개발하는 업무는 전체적인 업무의 30%이며, 실제 아이디어를 구현하는 것보다 더 어려운 40%의 비용과 시간을 수정 유지 보수하기 위해서 시간과 비용을 소모하게 된다.처음에 잘 만들지 않은 소프트웨어라면, 이 유지보수 비용은 기하급수적으로 증가한다. 그리고, 대부분이 처음 만들어진 것을 다시 만든다. 그것이 소프트웨어 기업이고, IT기업인 것이다.개발자라면 창업이건, 기업을 만들건 몇 가지를 착각하면 안 된다. 그리고, 기억해야 한다. 대중 매체와 미디어에서 이야기하는 정말 성공한 사람들이 제대로 이야기를 해주지 않는구나라고 생각하는 것이 가장 현명하다.정말 뛰어나게 성공한 사람들은 자신들의 '운'에 대해서 잘 설명하기 어렵다. 그리고, 자신들이 가지고 있었던 배경과 기회에 대해서 잘 설명하지 못한다. 그래서, 대부분 사람들은 자신의 진정한 성공 스토리를 이야기하기보다는 자신이 생각하는 멋지고, 폼난 부분들만 설명할 뿐이다.'그 사람들은 좋은 부분만 이야기하고 있는 것이구나'라는 것을 한참 후에야 느끼고 이해할 수 있는 것이 실제 창업을 하고 사업을 하면서 알게 될 것이다.여기까지 느끼게 되면 이제야 '소프트웨어 개발을 하고 유지보수를 할 수 있으며, 행정적인 것을 끌어 갈 수 있게 된다. 하지만, 가장 어려운 것이 남아 있다. 여기까지 왔으면, 이제 사업가가 될 준비가 30%가 된 것이다.그것은 내가 만들고 싶은 사업 아이템을 위해서 자본을 끌어들이는 것을 고민하고 설득할 준비를 하는 것과 물건을 팔기 위해 고객을 찾아가는 것을 이제 시작해야 한다. 사실, 이제부터 본격적으로 '사업'에 대해서 구상해야 한다.그리고, 내가 생각한 아이디어와 서비스, 비즈니스를 손쉽게 시장과 고객에게 설득하기 위한 논리와 쉬운 설명방법을 생각해야 한다. 소비자와 투자자들은 언제나 '돈'을 가지고 있다. 그리고, 자신들이 필요한 서비스들에게 '유료'로 돈을 지불하고 구매할 용의가 있으며, 투자자는 '성공할만한 아이디어'에게 투자할 준비가 되어 있다.정말 필요하고 매력적인 제품과 서비스라면 '소비자'와 '투자자'를 찾는 것이 어렵지 않을 것이다. 실제, 시장에 '돈'은 정말 풍부하다.하지만, 대부분, 소비자에게 필요한 서비스를 매력적으로 설명하는 것이 얼마나 어려우며, 투자자에게 이 아이디어가 얼마나 매력적인지에 대해서 설명하는 것이 얼마나 어려운 것인가에 대해서 나중에야 느끼게 된다.자신이 혼자서 흥분하고, 자신만 좋아서 무언가를 만드는 행위는 그냥, 자신의 '개발 놀이', '사업 놀이'에 가깝다. 물론, 이러한 '놀이'를 했는데, 자신의 '놀이'의 파격적인 아이디어와 미래적인 가치를 발견한 소비자와 투자자를 바로 찾는 다면, 그것은 정말 대단한 행운을 얻은 것이다.그래서, 보통은 '창업'과 '사업'을 하려고 하는 사람이 있다면, 자신의 아이디어를 어떻게 정리하고 어떻게 설명하고, 어떻게 시장에 선을 보일 것인가에 대해서 충분한 연습과 충분한 준비를 하는 것이 정말 중요한 것이다.개인적으로는 대한민국의 창업과 관련된 수많은 프로세스들이 이러한 '최소한의 과정'을 위해서는 나름 정제되어 있는 프로세스를 가지고 있다고 생각한다. 물론, 이 제도들의 유용성이나 가치에 대해서는 이번 이야기에서 장황하게 설명하기에는 부족하기 때문에 단편적인 측면에서 '사업'을 준비하는 사람의 입장에서 어떤 방법으로 무엇을 먼저 '문서화'해야 하는지에 대해서 명쾌하게 가르쳐준다.굳이, 정부과제를 신청하지 않는다고 하더라도, 내가 하고 싶은 일과 내가 하고 싶은 것에 대해서 종이로 작성이 불가능하고, 단어로 설명할 수 없고, 구체적으로 무엇을 만드는지에 대해서 기술할 수 없다면, 그 사업과 아이템은 처음부터 다시 생각하는 것이 현명하다고 하고 싶다.물론, 이 프로세스를 통해서 수백 페이지의 문서를 만든다고 프로젝트가 성공하는 것은 아니다. 또한, 이러한 문서를 잘 만든다고 서비스와 아이템이 실현되는 것도 아니다.실제, 필자가 본 정말 자신의 생각을 잘 정리하는 사람은 이 프로세스에 맞추어서 내가 만들고자 하는 서비스의 정의와 이 서비스는 어떻게 만들어지며, 어떤 기술들이 필요하고, 어떤 시장과 어떤 환경을 예측하고 있는지에 대해서 많지 않은 문서로 충분하게 설명을 할 수 있다.그것이 이런 사업계획서를 작성하는 주목적이 된다. 그러니, 사업과 창업을 꿈꾸는 개발자라면 창업이나 프로젝트의 사업계획서를 꾸준하게 작성해보는 것이 어떨까 한다. 특히나, 기업 내부에 있다면 이러한 문서를 만드는 방법이나 표현법에 대해서 가감 없이 평가해줄 수 있는 유경험자들이 충분하게 있으니, 이런 도전을 한번 이상은 꼭 해보기를 바란다.물론, 그렇다고 해서, 성공하는 것도 아니다. 다만, 실수를 줄여주고, 내가 생각한 아이디어를 좀 더 구체적으로 표현하는 방법을 터득한 것뿐이다.회사를 만든다는 것은 정말 다른 것이다.회사를 만든다는 것은 정말 어렵다거나 쉽다거나의 문제가 아니다. 정말, 그동안 해온 일과 다를 것이다. 특히, 회사를 만든다는 것은 제품만 만든다는 것과 얼마나 다른 것인가? 에 대해서 깊이 있게 생각해야 한다.회사라는 법인체는 분명, 법적으로 살아있는 인격체이다. 그러한 인격체가 어떻게 만들어지고, 그 내부에 속한 조직원들에게 어떤 목소리를 내어야 하고, 그 과정을 어떻게 이겨내고, 어떻게 찾아가야 하는가에 대해서 깊이 있게 생각해야 한다.복잡한 경영이론과 개론을 이야기하는 것이 아니라, 여러 사람이 모여서 어떤 목표를 이루어 나가는 것에 있어서 구체적인 목표와 비전, 그리고. 문화에 대해서 어떻게 가져갈 것인가에 대해서 기준을 세워야 한다.그리고 다시 자신에게 되묻는 것을 계속 반복해야 한다.'정말 만들고 싶어서 고른 것인가?''아니면, 팔릴 것 같아서 만든 것인가?'필자는 어는 것이 정답인지 잘 모르겠다. 실제, 만들고 싶어서 만들었는데 잘된 경우도 보았으며, 잘 팔릴 것 같다고 생각한 제품이 실제 운이 좋거나, 일부 기술이 잘 개발되어져서 성공한 경우도 많이 보았다.현재 대한민국의 스타트업의 세계를 보면, 매우 재미있는 현상이 있다. 그것은 중견기업의 IT기업이 스타트업의 아이템과 비즈니스 모델을 적절한 가격에 사들인다는 것이다. 저 멀리 실리콘 벨리에서 수천억, 수조 원에 팔리는 환상적인 이야기는 아니지만, 구체적인 사업모델과 수익모델이 만들어지고, 이익을 보고 있거나, 무료 앱이지만 충분한 다운로드 횟수가 100만 다운로드를 넘어선 앱들이, 적절한 가격에 회사가 통째로 팔리는 경우를 보고 있거나, 자문을 하고 있다.구체적은 한국형 M&A의 시장이 가동되고 있는 것을 볼 수 있다는 것이 매우 고무적인 일이다. 현재는 무료 앱이라고 하더라도, 수백만 다운로드와 수십만 이상의 사용자를 가지고 있는 앱의 경우에도 충분하게 가치가 있다는 것을 시장에서 반응하고 있다. 현재의 투자자나 투자기업들은 스타트업에게 '비즈니스 모델'과 '수익 모델'에 대해서 질문하고 유도하지만, 충분하게 사용자를 확보한 모델의 경우에는 그 가치를 인정한다는 것이다.오히려, 그러한 모델로 진행된 스타트업의 경우에는 적절한 비즈니스 모델을 가진 모기업을 찾아주거나, 필요한 모델들끼리의 결합을 유도하기 시작했다. 이제 한국도 충분하게 M&A 시장이 소프트웨어 기업에서는 시작된 것이다.소프트웨어 사업은 혁신이 필요한가?소프트웨어 개발기업에게는 '혁신'이라는 단어가 꼭 필요한가에 대해서 필자에게 질문이 들어온다면, 필자는 '혁신'이 꼭 필요하다고 대답한다. 특히나 소프트웨어는 '정보'를 다루는 것이고 '정보'가 필요한 곳으로 옮겨가게 하고, 변환되게 하는 것이 소프트웨어 기업의 역할이다. 아무리 사소한 정보라고 하더라도, 손쉽고, 빠르고, 필요한 형태로 제공되는 것은 분명, 현시점에 없는 것이기 때문에 '혁신'이라고 평가할 수 있다.하지만, 이러한 '없는 것이 만들어진다'는 것에 대해서 소프트웨어 개발자들에게 설명을 할 때에 매우 난처한 경우가 간혹 발생한다. 특히나, 개발 경력이 조금 축적된 개발자들의 경우에 몇 가지 정보들을 재가공하여 만들어진 비즈니스 모델이나 환경에 대해서 매우 폄하하는 식의 발언을 하는 경우가 많다.필자 역시 그러했다. 소프트웨어 개발자이기 때문에 복잡하고 어려운 것을 만들고, 무언가 대단하게 기술적인 내용을 연구하고 실현하는 것이 '혁신'이라고 착각했던 것이다.그냥, 그것은 '기술자'로써의 연구를 위한 과제이지, 현재 비즈니스의 세계나 소프트웨어의 세계에서 이야기하는 '혁신'하고는 거리가 있는 것이다. 정말, '연구만을 위한 기술개발'은 존재하지 않는다.만일 그러한 '연구만을 위한 개발'을 하고 싶다면, 필자는 '오픈소스'를 사용하여 세상을 위하여 재능기부를 하는 마음으로 연구하라고 권하고 싶다. 이렇게, 진행하다고 어느 정도 필요한 가치 이상을 가지게 되었을 때에 기회가 오는 경우도 종종 발견한다.다만, 이러한 '연구'를 위한 기업을 만들거나 조직을 만드는 것은 그냥 가상 기업의 형태로, 자신의 여유 있는 시간을 투자하는 것으로 만족하기를 바란다고 이야기하고 싶다. 물론, 그것 이상의 가치가 있다고 생각하여 개인이 투자하는 것은 전적으로 개인의 선택이기 때문에 말리지는 않겠지만, 굳이, 그렇게 어렵게 할 필요 있는가 싶다.기업을 창업하는 이유는 무언가 구체적인 서비스가 결정되고, 그것에 충분한 자금이나 인력, 시간을 투입하여 시장에서 빠르게 가치를 실현하기 위해서 기업을 만들고 조직을 만드는 것이다. 그 뿐이라고 생각한다.그렇다면, 소프트웨어 산업에서 혁신이란 무엇인가?없는 것을 새롭게 만드는 것은 무엇인가?기술이란 도대체 뭐지?혼동하지 말자. 소프트웨어 산업에서의 혁신은 분명, 없는 것을 만드는 것이다. 그리고, 그 없는 것을 사용하는 소비자가 나타나는 것이다. 그것이 소프트웨어 산업에 있어서의 혁신이다.가장 유명하게 혁신을 설명한 방법이 있다. 가장 혁신을 쉽게 설명한 사례는 Tom Peters의 이야기 중에 '또 다른 햄버거를 내놓지 않는 것이다'라는 말로서 그 내용을 설명해보겠다. 그 글에서는 햄버거로 '혁신'에 대해서 설명한다. '와퍼(Whopper)가 있는데 불고기 와퍼가 나온다고 이것은 혁신이 아니다'. 정형화된 Fast Food는 변하지 않는다. 단지, 그 내용물이 좀 바뀐 것은 혁신이 아니라는 것이다. '정형화되고 싸고 빠른 것'이라는 FastFood인데 그 프로세스는 그대로이며, 빠르고 간편하게 먹는 패스트푸드의 성격은 변하지 않았다.그래서, 와퍼 대신에 불고기 와퍼가 나온 것은 혁신이라고 볼 수 없다. 하지만, 이런 패스트푸드를 정면에서 다시 해석하게 되면 혁신이 된다. 바로 인 앤 아웃 버거이다.신선한 재료와 재료의 선도를 목표로 하고 싸구려 냉동감자 대신에 생감자 French Fried를 튀겨 주는 것이다. 햄버거를 만드는 데 신선하고 선도가 좋은 재료와 생감자를 사용하여 제품을 만든다는 혁신을 실현한 것 In-N-Out의 생각이다.이러한 것처럼 '혁신'이란 기존의 가치를 바꾼 것이다. 그것이 '혁신'이다.물론, 개발자들 간에도 논쟁이 있다. 골수 소프트웨어 개발자들의 경우에 스티브 잡스가 만들어 낸 아이폰의 혁신이 과연 혁신인가? 과거의 것을 합쳐놓은 것 아닌가?라는 식으로 평가할 수 있다. 이런 생각을 가지고 있다면, '혁신'에 대해서 제대로 이해할 수 없는 소프트웨어 개발자가 되어버린 것이라고 필자는 이야기하고 싶다.그래도 스타트업을 하고 싶다면회사를 그만두고 한 번 창업하라고 한다. 사실, 기업이란 작게 망해봐야 정말 제대로 된 경험을 가지게 된다. 그래서, 가능한 젊었을 때에 부담스럽지 않게 망했을 때에 사업을 해보는 것이 가장 현명한 것인지도 모르겠다.한편으로는 두려움이 없고, 그 결과에 대한 책임감에 대해서 잘 모르는 무모한 시절에 창업을 하는 것이 더 현명한 지도 모르겠다.필자는 20대의 무모함과 도전정신으로 창업과 스타트업의 무거운 무게감을 이겨냈다고 생각한다. 현재, 필자의 경우에는 성공보다는 성취감에 더 집중하고 있고, 필자가 하고 싶은 일을 충분하게 하는 것으로 만족한다.너무 많은 준비를 한다고 성공의 요소가 충족되는 것도 아니고, 너무 적은 준비를 한다고 실패의 가능성이 높아지는 것이 아니다. 필자가 경험한 20년의 시간들을 뒤돌아 본다면, 사업은 그런 것 같다.99가지의 필요 충분한 요건을 세웠지만, 1가지의 요소 때문에 실패하는 경우를 보았고, 99가지를 엉터리로 했지만, 1가지의 요소 때문에 성공한 사람들을 보았다. 심지어, 그냥 운으로 성공한 사람도 있었다.필자의 주변을 돌아보면, 현재 대한민국에서 성공적으로 스타트업을 한 사람이라고 평가받는 경우는 정확한 시기에 자신이 만든 서비스를 보유한 기업을 정당한 ‘가격’에 현금으로 팔았거나, 자신의 솔루션을 ‘현금’으로 큰 기업에 판매한 사람들이거나, 투자를 받은 이후에 ‘현금’으로 성공적으로 exit 한 경우를 ‘성공’한 사람으로 평가한다.하지만, 필자는 꼭 그렇게 성공하는 모델을 후배들에게 추천하지 않는다. 필자가 생각하는 성공한 스타트업은 ‘자신이 만들고 싶어 하는 서비스’를 만들고, 자신이 일하고 싶은 동료들과 어울려서 10년이 넘도록 자신의 서비스와 솔루션을 만들고 유지 보수하면서, 자신이 개척한 시장의 소비자들과 공존하는 방법을 터득한 사람들을 ‘성취’한 사람들이라고 평가하고 싶다.후배들은 ‘성공’한 현금을 가진 사람이 될 것인지? ‘성취’한 사람이 될것인이지에 대해서는 각자의 목표와 비전에 맞추어서 생각하기 바란다. 과연, 인생의 목표는 ‘성공’인가? ‘성취’인가?
조회수 4513

향수, 어디까지 알고 계신가요?

글에 들어가기전에.. 한가지 말씀들 드리면, 이 글은 향기에 대한 글이 아니라, 향수 제작에 관한 나름의 경제적인 관점에서 해석한 글입니다. ^^:;향수와 관련된 질문을 하나 드리면.."왜 보통의 향수 회사들이 100ml와 같은 대용량 제품을 주로 많이 만들어왔을까요?" 좋아하는 향수를 고객들이 오래 쓰시라고? 뭐 그런 이유가 '0'이라고 말하기는 어렵겠지만 나름의 이유가 있지 않을까?  이유라는 것이.. 너무나도 당연하게 가장 이윤을 많이 남길 수 있는 구조를 찾아서 진화해왔다는 것인데,  그 이유에 대해서 조금 더 설명을 드리고자 그래프를 준비했습니다만.. 내용이 조금 딱딱해질 수 있겠으니.. 조금만 참아주시길 부탁드립니다.. ^^;; [ X 축이 한 병 당 용량(volume), 그리고 Y 축이 한 병당 price(가격)이다 ]향수 한 병당 가격과 Direct cost 구조 (본 그래프는 개념적인 설명을 위해 만들어진 것입니다.)일반적으로 고객은 용량이 증가할 때, 그에 비례하여 가격이 상승한다는 것은 당연하다고 판단하기 때문에, Price 곡선이 정비례하여 우상향 하는 것은 문제가 되지 않는다.그런데 재미있는 것은 향수를 재조 하는 direct cost(직접비)는 그와 같이 우상향 하지 않는다는 것이다. 병 당 용량이 커질수록 "Margin = Price - Direct cost"는 커지게 되어있고, 그래서 공급자의 입장 B에서 (예를 들면 100ml) 큰 제품을 판매하는 것이 유리한 것이다.게다가 동일한 제품군에서 작은 용량의 제품을 파는 것이나 큰 제품을 파는 것이나 들어가는 노력은 그리 차이가 많지 않기 때문에, 당연히 큰 제품을 파는 게 남는 것이기 때문에 B만큼의 대용량을 판매하여 margin maxize 하는 것은 너무나도 당연한 결과라고 할 수 있는데..그런데 파펨의 경우는.. A와 같이 적은 용량(5ml)을 만들어 판매한다. A라는 지점에서는 고객들이 받아들일 수 있는 가격은 낮을 수밖에 없고, 상대적으로 direct cost의 비중이 높기 때문에 unit당 마진이 낮을 수밖에 없는 구조이다. 여기서 그럼 파펨도 A가 아니라 B를 만들어서 판매하면 되지 않겠느냐?라는 질문을 던질 수 있겠지만, 여러 가지 이유로 그것은 파펨이 지향하는 방향이 아니다.  그 이유를 설명하기 위해서는,"소비자 관점"에서 향수라는 제품을 바라봐야 하는데..1) 향수 고객 중에는 계절, 날씨, fashion 등에 따라서 다양한 향을 사용하길 원하는 사람들도 많고2) 하지만 다양한 향수를 모두 큰 병을 사서 쓰기는 비싸고..3) 게다가 다 쓰기에도 너무 부담스러워서.. 화장대 한 구석에 먼지를 덮어쓰고 있는 경우들이 많다.파펨은 소비자 관점에서 향수라는 제품을 디자인하였기 때문에, 위의 기준들에 부합하기 위해 "A"라는 소용량 수준에서 제품을 기획하게 된 것이다. 그렇기 때문에 B와 같이 대용량 제품을 만드는 구조와는 다른 접근을 할 수밖에 없다..A) 제품 가격의 30~40%에 달하는 Retailer fee를 감안하고 판매하기가 어렵다. [관련 글 : 스타트업 기득권과의 공생?] 그렇기 때문에 자체 online 채널을 중심으로 판매하는 것이 필요하다.B) 고가의 bottle 디자인에 신경 쓰기가 어렵다. 그래서 파펨의 디자인 철학을 담으면서도, simple한 bottle 디자인을 할 수밖에 없다.c) 럭셔리 브랜드들이 연예인들을 동원하여 집행하는 엄청난 광고가 아니라, 새로운 marketing channel을 찾아야 한다.이러한 이유들을 거꾸로 뒤집으면,"공급자 관점"에서 대부분의 향수 브랜드들이 소용량(A)이 아닌, 대용량(B)의 제품들을 만들어온 이유가 되는 것이다.다시 위의 그래프 1로 돌아와서 이야기를 잠깐 해보면.. 왜 Direct cost가 Unit volume 증가에 따라 비례하여 증가하지 않는가? 에 대해서 이야기해볼 수 있는데.. 아래 그래프 2를 잠깐 보면, Direct cost를 구성하는 요인에는 크게 1) 향수 원액, 2) 공장 가공 비용, 3) Package, 4) bottle 정도로 구성되어 있다고 볼 수 있는데, 아래와 같은 구조이기 때문이라는 예상이다.직접비가 크게 증가하지 않는 것에 대한 이유를 찾아보자!!여기서 그럼, 왜 공장 가공 비용이 unit volume이 늘어날수록 감소하느냐?라는 질문에 답을 하기 위해서 등장하는 개념이 바로 MOQ이다. 대부분의 공장들은 한번 공장을 가동하면, 동일한 제품을 많이 만들어낼수록 효율이 높아진다. 그래서 MOQ(Minimum Order Quantity)라는 것이 존재하고, 향수 업계에도 동일하게 적용된다. 아래 그래프 3을 보게 되면 MOQ 만큼만 주문을 했을 때의 unit 당 cost가 하락하는 것을 볼 수 있다. [물론 이것은 지금까지의 경험을 바탕으로 rough 하게 그려 본 것임]주문량이 늘어날 수 록 비용이 감소하는 구조 : 대부분의 공산품이 그럴 것이라는..그렇다면 생산비 절감을 위해 한 번에 대량으로 생산하여 판매하는 것이 중요한데.. 만약 향수라는 제품의 유통기한이 식료품과 같이 짧다면, 이렇게 생산을 해서 팔기가 어려울 것이다. 하지만 향수의 유통기한은 3~4년 정도이고, 또한 전자제품들과 같이 trend 변화가 심한 곳이 아니기 때문에... 만들어 두고 팔아도 크게 문제가 되지 않는다.그래서 이렇게 대량으로 제조하고, 판매하기 위해서는 전 세계적으로 판매가 가능해야 하고... 그러다 보니,명품(Luxury Goods) 브랜드들이 Brand power를 통해 대량으로 생산해 전 세계적으로 판매하는 industry의 특징을 갖게 되었다는 해석이 가능해진다. 이렇게 되다 보니.. 조금 인지도가 있는 브랜드들은 너도나도 향수 category를 만들게 되는데.. luxury + mass + affordable이라는 짬뽕들이 나타나게 되는 영역이 되어 버린 듯하다. 제품 개발보다는 엄청난 광고와 유명 연예인을 기용하여 브랜드 인지도 상승이 중심이 되어 버리는 브랜드들.....향수라는 산업의 게임이 브랜드력과 돈으로 해결되는 듯한 인상을 강하게 받는다. 딱 봐도 그냥 다 아는 브랜드들!!그!러!나!  이렇게 Mass luxury들이 시장을 지배하는 시기가 다가오면.. 또 그 세상을 깨고 새로운 영웅들이 등장하는 시기가 온다.  더 이상 그 명품들이 명품이 아닌 세상이 되어 버린 것이다.향수 industry에서 보자면!! 그것이 바로  niche perfume들이라고 볼 수 있다.Niche Perfume을 어디까지 정의할지 조금 애매할 수도 있지만, Jo Malone / Dip Tyque / Le Labo 정도가 유명한 니치 퍼퓸이라고 볼 수 있지 않을까? Mass 브랜드들이 100,000 bottle을 판매한다면, 니치 퍼퓸은 5,000명 정도 수주의 판매량이라고 봐도 무방할 듯... 특징들을 살펴본다면,1) 누구나 쓰는 affordable luxury를 벗어나 다르고, high end로 포지셔닝..2) Marketing과 광고로 덕지덕지 휘감긴 브랜드가 아닌.. 브랜드의 스토리가 존재하는..3) 하지만 대량 생산의 영역은 들어가지 못하기 때문에, 앞에서 설명한 것과 같이 cost를 낮추기는 어렵고..  그래서 가격 또한 비싸게 판매될 수밖에 없는.Le Labo 비싸다.. 미친듯이 비싸다. ㅡㅡ그렇다면 파펨은 무엇인가?파펨은 공급자 관점에서의 Big bottle 생산, MOQ를 상회하는 물량으로 cost 절감 가능성을 가지고 있지 못하다. 슬프다. 하지만 그럼에도 불구하고...소비자 관점에서.. 다양한 향을 써보고 싶고, 적은 용량도 가능하며, 가격은 합리적인 니즈들을 반영하려고 노력하고 있으며...  공급자 관점과 소비자 관점 간의 차이를 줄여나가서, Game Changer로써 역할을 하는 것이 "파펨"이라는 브랜드이자 startup이 해야 할 일이라는 생각이다.그래서 갈길이 험난하다.. ㅜㅜ  파펨의 향수 이야기는 계속됩니다. To be continued..#파펨 #스타트업 #창업가 #창업자 #마인드셋 #인사이트

기업문화 엿볼 때, 더팀스

로그인

/