스토리 홈

인터뷰

피드

뉴스

조회수 1392

이달의 반장님(6월) 선정 - '조 반장님' 감사드립니다

 안녕하세요. 다시 찾는 인테리어, 두번째입니다.  온라인 기반이라는 한계에도 불구하고 많은 고객님들이 저희를 찾고 만족해 하시는 가장 큰 이유 중 하나는 바로 오프라인 시공 현장에서 열심히 수고해주시는 '반장님'들 덕분이라고 생각합니다. 항상 수고해주시는 반장님들에게 조금이나 즐거움을 드릴 수 있는 방법을 꾸준히 고민해왔는데요. 드디어 한가지 작은 실천을 시작해보게 되었습니다. 이제부터 월마다 '이달의 반장님'을 선정하여  수고하시는 시공파트너분들에게는 소정의 금액과 감사의 표시로 상장을 드리기로 했습니다.  6월달에는 '조익현' 반장님이 이달의 반장님으로 선정이 되셨습니다. 마침 저희 사무실 근처에서 시공 일정이 있으셔서, 저희들이 갑자기 방문을 드려서 '이달의 반장님' 으로 선정되었다면서 상장을 드리고 왔는데요. 바쁘신 상황에서 갑작스러운 방문이라서 놀라셨을 수도 있으실텐데, 친절히 맞아주셨습니다.  조 반장님께는 연식이 오래된 아파트나 또는 험한(?) 시공지를 많이 부탁을 드렸었는데요.  이번에 방문드렸던 현장도 오래된 아파트 현장이었습니다...  그만큼 조 반장님을 신뢰를 할 수 있었고, 신뢰한 만큼 항상 최선의 시공으로 좋은 결과물이 나왔던 것 같습니다.  또 많은 도배 시공자들이 그리 반기지 않은 '1품 작업'도 자주 협조해주셨습니다.  어제 방문했던 현장에서도 '1품 작업'이다 보니 반장님 혼자서 바쁘게 시공을 해주시고 계시더라구요.  그래서 기회를 보다가 준비한 상장만 드리고 금방 복귀해야 했답니다.  크지 않은 선물임에도 반장님이 굉장히 만족해하셔서 저희도 기분이 같이 좋아지더라구요.   이렇게 감사의 마음을 표현하고 나니, 항상 머릿속에만 있었던 아이디어를 실행하는 것이 그렇게 어려운 일이 아니었던 것 같습니다.  '조 반장님' 외에 다른 시공 파트너 분들에게도 항상 감사한 마음 뿐인데요.  이렇게 좋은 기획을 더 일찍 시작하지 못해서, 죄송한 마음이 드네요.  항상 열심히 수고해주시는 모든 반장님들, 감사합니다!! 
조회수 1789

왜 나는 버닝맨을 갔는가

1. 첫 번째 이유: 다른 사람들국내 한 컨퍼런스에서 Zappos의 토니쉐이를 연사로 초빙하고 싶어 한 적이 있다. 연락을 한 끝에 강연비 7000여만원을 줄 수 있으면 온다는 피드백을 받았다. 꼭 초대를 하고 싶었던 주최측은 그러겠다고 회신을 했고 얼마 후 두번째 피드백을 받았다. 토니쉐이가 내가 꼭 가야하는 이유가 무엇이냐는 질문과 함께 자기 생각에 가야 할 특별한 이유가 없다며 거절한다고 말이다. 이럴거면 처음부터 싫다고 하지 왜 이래저래 돌려 말했을까 하는 생각이 들었다. 추측컨데 일단 강연비가 비싸면 대부분 자연스럽게 포기할거라 생각했는데 그러지 않으니 결국 진짜 이유를 댄것이 아닌가. 그 정도 돈으로도 바꿀 수 없는 바쁘고 중요한 일정을 사는 CEO니 당연하지 않을까 하는 생각도 들었다. 결국 토니쉐이를 초대하는 것은 물거품이 되었고 다른 연사를 초대하는 것으로 일단락이 되었던 걸로 기억한다. 1년쯤 지났을까, 해외 지인들이 버닝맨에 참가한다는 이야기를 들었다. 함께 가자는 제의도 받았다. 버닝맨은 몇년전부터 알고 있었던 행사라 궁금하기는 했지만 비용도 있고 일정도 길어 결정이 쉽지 않았다. 마음의 갈등을 조금 했지만 당시에는 한국에서 해야 할 일들에 부담감을 가지고 있던 터라 결국 포기를 했다. 두어달 쯤 후에, 지인들이 버닝맨을 다녀와서 찍은 사진을 볼 기회가 생겼다. 깜짝 놀라지 않을 수가 없었다. 지인 사진에 그 Zappos의 토니쉐이가 앞에 누워서 함께 이야기를 듣고 있는 것이 아닌가. 처음에는 설마 했는데 매년 며칠씩 머물다 간다는 이야기까지 들었다. 7000여만원을 줘도 한국에 오지 않던 그가 자비로 그것도 며칠씩 참여를 한다는 것이 무엇 때문인가? 구글의 창업자들과 에릭 슈미트도 참가한다는 이야기는 익히 알고 있었지만 토니 쉐이의 참가는 내게 더 피부에 와닿는 호기심을 불러 일으켰다. 게다가 테슬라의 엘론 머스크, 에어비엔비의 칩 콘리, 페이스북의 마크 저커버그도 참가했다고하니 분명히 뭔가가 있다. 물론 실리콘밸리 기업가들이외에도 윌 스미스, 수잔 서랜든 같은 유명한 헐리우드 스타들를 비롯하여 수많은 가수, 모델들이 버닝맨에 참가한다는 것[1]을 구글링만 해봐도 쉽게 알 수 있다. 나같은 사람도 바쁘다고 그 시간과 비용을 들이지 못했는데, 이들이 참여를 한다면 무엇인가 내가 모르는 엄청난 가치가 있을 것 이라는 데 생각이 미쳤다. 어지간한 돈으로 살 수 없는 시간을 사는 사람들이 왜 자신이 비용을 들여 참여하는가? 진짜 이유가 궁금 해 졌다. 2. 두 번째 이유: 버닝맨 그 자체1986년에 시작되었으니 30년이 넘었다. 이제는 매년 7~8만명이 찾는다. 도대체 사람들은 왜 버닝맨에 오는가도 의문점이지만 어떻게 아무 것도 없는 사막에 열흘간 도시가 생기고 사람들의 욕망을 담았다가 완전히 사라지는 일을 30여년간 반복 할 수 있을까? 참가하는 사람들도 독특하고 그 안에서 시도되는 실험들도 다양한 버닝맨이라고 불리우는 이곳, 그 자체가 궁금했다. 실리콘밸리 문화와 결을 같이 한다는 말도 들었고, 단순히 축제의 장이 아니라 사람들이 만나 깊이있는 관계가 되고 그것을 바탕으로 새로운 아이디어와 비즈니스가 실행된다고도 하는데 도무지 어떻게 그것이 가능한지 정말 궁금 해 졌다.  구글의 문화와 철학이 버닝맨과 닮아있다 하는데 그 비밀은 무엇이며 버닝맨의 어떤 것 들이 구글을 경쟁력있게 만들었을까. 인터넷에서 버닝맨을 검색만 해봐도 알수있는 견줄수 없을 만큼 독특하고 특이한 이 축제가 도대체 구글이나 실리콘밸리의 특별함과 무슨 관계란 말인가? 엘론머스크(Elon Musk)[2]도 버닝맨에 참가하고 나서 '가보지 않았다면, 그냥은 알수없다’라는 말을 남겼다. “If you haven’t been, you just don’t get it. You could take the craziest L.A. party and multiply it by a thousand, and it doesn’t even get fucking close to what’s in Silicon Valley.” 버닝맨에 뭔가 엄청난 것들이 숨겨져 있을 것만 같은 기대와 호기심이 생겼다. 구글 혁신의 비밀을 발견하고 싶었고 실리콘밸리가 생태계로서 지속가능성과 문화를 지탱 해 내는 힘을 이해하고 싶었다. 3. 세 번째 이유: 나 자신자주 받는 질문이 있다. 도대체 메인직업이 무엇이냐? 무슨일을 하느냐?예전 삼성에서 일했던 10년간은 한번도 받아보지 않았던 질문이다. 그 때는 삼성전자에서 R&D를 한다고 하면 더 이상의 설명이 필요없을 정도로 사람들은 쉽게 이해를 했다. '삼성전자 연구원이다' 그러면 '하드웨어냐 소프트웨어냐, 모바일이냐 가전이냐' 정도 추가 질문이 있을 뿐 그 아이덴티티는 너무도 확고했다. 하지만 삼성전자를 나와 지금은 사물인터넷 솔루션을 개발하는 일과 아시아의 혁신가들이 연결되는 플랫폼을 만드는 일, 기술을 통해 세상에 의미를 가져 올 프로젝트들, 컨텐츠와 혁신프로그램 개발, 강연, 방송, 투자, 자문 등 다양한 일들을 하다보니 사람들은 그것을 이해하는 데 불편한 마음을 드러낸다. 도대체 넌 누구냐?내가 하는 일 중 한두가지만을 알고 있는 사람들은 혼동스럽지 아니하고, 반면에 나를 아주 깊이 아는 사람들은 이 모든게 연결되어 있다는 것을 이해하기에 복잡한 아이덴티티이지만 공감한다. 하지만 대부분은 나를 적당히 알고 있는 사람들이다. 그들은 일관성없어 보이는 나의 일들(Randomness)이 무척이나 의아하다. 설명도 어렵다. 이 모든 걸 관통하는 의미로 future designer, innovation catalyst란 타이틀로 나를 소개하지만 낯선 타이틀에 대한 공감은 요원하다. 그래서 흔들릴 때가 있었다. 내가 제대로 살고 있는 것인가. 이렇게 사는것이 바람직한 것인가. 어떤 사람은 하나라도 잘하라고 하고, 어떤 사람은 정체성이 없어 보인다 했을 것이니 말이다.     삼성에 근무할 때 사내방송에 출연하여 신기술에 관한 인터뷰를 한적이 있다. 담당피디가 타이틀을 어떻게 표기할까를 물어왔다. 삼성전자 연구원이라 쓰라했더니 다른 타이틀이나 경력이 없냐고 물어 본다. 다들 삼성전자 연구원이니 뭔가 전문성을 더 드러낼 수 있는 책의 저자라던가, 다른 타이틀이 있느냐는 것이다. 없다 했다. 그리고 고민을 했던 기억이 난다. 모두가 같은 타이틀을 가지고 있을 때, 오롯이 나를 담아내려면 난 무엇이라야 하는가. 이때부터 시작된 고민의 답을 찾기 위해 회사를 그만두고, 시도하고, 새로 해 온 일들이 오히려 지금은 반대의 상황을 만들어 내고 있다. 2016년, 버닝맨 웹사이트를 둘러보다 낯선 단어를 하나 발견한다. Polymath위키피디아[3]를 찾아보면 Polymath는 르네상스맨처럼 '다방면에 박식하고 전문적인 깊이를 가지고 있는 사람’을 의미한다. 버닝맨은 매년 달라지는 주제에 맞춰 참가자를 칭하는 단어를 하나 정해서 티켓에 표기를 한다. 2016년은 'Davinci’s Workshop’이라는 주제였고 여기에 맞춰 레오나르도 다빈치같은 다재다능한 분야의 전문가이며 다양성을 기반으로 혁신적인 실험과 결과를 만드는 사람을 칭하려 한것 같다. 한가지에 전문가가 되기도 힘든 세상에 복합적이고 다양한 분야의 전문성을 가진다는 것이 다빈치나 미켈란젤로같은 천재가 아니면 가능할까하는 의문이 잠깐들었지만, 순간 내 고민의 지점과 겹치는 느낌이 들었다. 이런 사람들의 정체성은 무엇인가? 예술가로 알고 있던 다빈치이지만 사실 그의 업적은 엄청 다양하지 않은가. 그는 예술가인가? 과학자인가? 철학자인가? 작가인가? 그의 존재가 그 자체로 복잡하고 설명하기 힘든 정체성을 가지고 있지 않은가? 뭔가 그 곳에 가면 내가 가지고 있는 고민의 답을 발견할 것 같은 느낌, 또 그런 사람들을 만나면 얼마나 좋을까하는 바램이 함께 생기는 순간이었다. 그제서야 트위터에서 한 미국인 친구가 나한테 인터뷰를 해달라고 했던 일이 떠올랐다. 'Polymathic generalist’에 관한 책을 쓰는데 내 경력을 보고 인터뷰를 하고 싶다 했던 것으로 기억한다. 쉽게 설명할 수 없는 새로운 일과 영역을 만들어낸다고 믿고 있지만, 그것을 한단어로 대체할 수 없는 정체성의 고민을 가지고 있던 나에게 가까이 다가가서 알아내고 싶은 욕망이 생겼다. 사실 부끄러운 고백을 하나 하자면, 직접 가보지도 않았던 내가 가끔 방송이나 강연때 버닝맨이 만든 혁신과 실험정신이 구글 그리고 실리콘밸리와 닮아 있다고 사례로 들곤 했다는 것이다. 진짜 그 기저에 있는 본질은 겪어 보지 못한채로 버닝맨을 이야기 해 온 것이 늘 마음에 걸렸는데, 이 아쉬움은 버닝맨에 꼭 가야겠다는 욕망에 기름을 부었고, 명분을 주었다. 진짜를 보고 진짜를 이야기하고 싶어졌다. 이렇게 버닝맨은 갈망을 흔들며 내 안을 비집고 들어왔다. [1] http://www.vogue.com/13300515/famous-burning-man-attendee[2] http://www.inc.com/tess-townsend/tech-titans-love-burning-man.html[3] https://en.wikipedia.org/wiki/Polymath#라이프스퀘어 #스타트업 #창업자 #창업가 #마인드셋 #조언원문출처 : 브런치
조회수 6620

매출 50배 증가한 7개월, 우리는 이렇게 일했다.

지난해(2017년) 7월 7일 삼분의일 매트리스를 출시했다. 8개월이 지났고 많은 것이 달라졌다.대표와 나, 공동창업자 두 사람이 지켰던 텅 빈 사무실은 9명이 북적이는 공간으로 변했다. 주말에는 제품 체험을 원하는 고객들이 끊임없이 찾아온다. 단 30분도 쉴 틈을 주지 않아 '언제 밥 먹지'하는 행복한 고민을 한다. 매출은 제품 출시 초기와 비교했을 약 50배 이상 늘었다.이것은 대표와 나 두 사람만의 힘이 아닌 새로운 동료들과 합심해서 만든 결과이며, 그들이 없었다면 이뤄내기 힘든 성과다.7개월 동안 판매량(≒매출) 변화대부분의 스타트업이 그렇듯 이 성장세가 한순간에 꺾일지도 모른다. 하지만 모든 구성원이 지금까지 잘 지켜왔던 것을 앞으로도 잘 유지한다면, 올해는 현재보다 몇 배 더 성장할 것이라 나는 기대한다.이런 나의 기대와 달리 스타트업 업계에서(뿐만 아니라 가구 업계에서도) 우리의 매출 증가를 이해할 수 없다고 말하는 분들이 꽤 많다. 그들의 관점에서 성장에 비해 우리가 한 것이 너무 없기에, 우리를 알면 알수록 신기해한다.뭐가 신기한데?성장이 빠른 스타트업은 몇 가지 공통점이 있다. 많은 광고비를 진행하는 등 돈으로 성장을 사거나, 판매 채널을 최대한 많이 늘리거나, 검색했을 때 블로그 리뷰 등 관련 정보를 쉽게 찾을 수 있거나, 다수의 마케터들이 다양한 채널로 많은 콘텐츠를 배포한다. 그런데 우리는 반대다.1. 투자받은 5억 중 사용한 돈은 0원지난해 삼분의일은 5억 원의 시드머니 투자를 유치했다. 대부분 이 돈을 사용해 성장했다고 어림짐작하는데, 단 1원도 사용하지 않았다. 오직 조금씩 늘어나는 이익 만으로 소액은 광고로 사용하고 배 이상 인건비와 연구비로 사용하고 있다.2. 판매 채널을 최소화삼분의일은 수많은 업체로부터 입점 제안을 받았다. 지난 1월 말에 29cm를 제외하고 제안을 모두 거절했고, 앞으로도 계속 거절할 예정이다. 판매 채널이 늘어난 만큼 고객과의 접점이 분산되고 그만큼 브랜드 가치가 훼손되리라는 우려 때문이다.※ 참고. 29cm에 입점한 이유브랜드 컬러가 우리와 같은 검은색이라는 점, 그들이 우리의 브랜드 가치를 훼손하지 않으리라는 믿음 때문이다. 그리고 같은 이유로 새로운 판매 채널을 늘릴 계획은 없다.3. 리뷰가 아닌 인터뷰를 중시손쉽게 다운로드할 수 있는 모바일 앱 등과 다르게 우리와 같은 고관여 제품은 블로그 리뷰 등이 구매에 큰 영향을 미친다. 그래서 수많은 경쟁사들(을 비롯해 고관여 제품을 판매하는 수많은 업체들)은 블로그 체험단 등을 운영해 리뷰를 생산하고 쉽게 검색에 노출되도록 포스팅한다.우리도 체험단을 운영한 적 있다. 첫 제품 출시 전 약 백여 명이 체험했는데 그들 누구에게도 리뷰를 요구한 적이 없다. 때로는 가능한 쓰지 말아달라고 요청했다. 대신 1시간 이상 인터뷰를 부탁했다. 제품을 보다 객관적으로 알기 전까지, 제품을 알리는 것은 옳지 못한 것이라 여겼기 때문이다.4. 마케팅 담당자 1명 이하지금은 마케터가 2명이지만, 출시 후 7개월 동안은 마케팅과 더불어 브랜딩 담당자는 나 혼자였다. 삼분의일의 경영자 역할 대부분은 전주훈 대표가 일임하고 있지만, 나도 공동창업자이기에 문화와 내규를 만드는데 꽤 많은 시간을 쏟는다. 시간 자원 기준으로 온전히 마케팅 업무만 하는 마케터는 1명도 없다고 보면 된다.그럼 그동안 어떻게 일했는데?투자받은 돈을 사용한 것도 아니고 판매 채널이 많은 것도 아니다. 그렇다고 리뷰가 많은 것도 아니고 수많은 마케터가 홍보 콘텐츠를 생산하고 다양한 채널로 배포한 것도 아니다.우리는 이렇게 일했다.남들과 다르게, 우리를 더 알고, 고객을 진정 최우선으로보면 알겠지만 거창한 비결 같은 것이 아니다. 마치 경영 교과서에서 나오는 지키기 힘든 정석과 같다. 어떤 기업이든 우리는 남들과 다르다고 말하고 고객을 우선한다고 말한다. 그런데 이것을 제대로 실천하고 있느냐고 물을 때 명쾌히 답할 수 있는 곳은 얼마나 될까. 하지만 우리는 그렇다고 답하며 다음 3가지를 실천한다.브랜드 가치에 따라 일하기: 세상에 똑같은 브랜드란 없다. 따라서 브랜드 가치를 최우선 기준으로 일한다면 자연스럽게 남들과 달라진다.4계절 제대로 경험하기: 사람의 심리와 제조 환경은 계절마다 달라지는 경향이 보인다. 4계절을 경험할 때까지 고객과 제조 공정 이슈를 파악했다고 속단하지 않는다.고객을 위한 매뉴얼 만들기: 단순히 고객 데이터를 쌓는 법부터 시작해 진정으로 고객을 최우선 하기 위한 마음가짐까지 정립한다.※  이 글에서는 '브랜드 가치에 따라 우리가 어떻게 일하는지'에 대해 더 이야기하겠습니다. 4계절과 관련해서는 우리가 어떤 식으로 일하는지 최근 전주훈 대표가 쓴 글(삼분의일 매트리스 냄새 이야기)을 링크하니 참고 바랍니다. 고객 매뉴얼과 관련해서는 여러 편으로 나누어 조금씩 소개하겠습니다.브랜드 가치에 따라 일하기우리가 브랜드 가치에 따라 일하는 방법은 과거에 소개한 적 있다. 지난해 작성한 브런치 글 시작하는 기업이 꼭 갖춰야 할, 업무 매뉴얼 만들기 에 언급했는데, 다시 한번 소개한다.우선 우리의 브랜드 가치(=핵심 가치)를 소개한다.합리적인: 이유가 타당하고 납득이 간다. 꼼꼼하게 따져보고, 꼭 필요한 것만 간결하게 제시한다.전문적인: 우리가 가장 잘 알고 능숙해야 한다. 그러기 위해서는 계속 연구하고 분석한다.섬세한: 사용자에게 관심이 많다. 주의 깊게 관찰하고 친절하게 다가간다.우리는 3가지 가치에 따라 복잡한 선택 상황에서 보다 빠른 결정을 내린다. A/B 선택지가 있을 때 '이것이 합리적인가, 전문적인 선택인가, 섬세한 접근인가'하며 묻는다. 그렇게 묻다 보면 답은 의외로 명쾌하게 나오는 경우가 많았다.앞서 언급한 업계에서 우리를 신기해 여기는 것들도 브랜드 가치에 따라 결정된 것이다.섬세함에 따라 고객을 주의 깊게 관찰하기 위해서 판매 채널을 최소화하고 인터뷰를 중시했다. 그 결과 제품과 고객을 수월히 연구하고 분석할 수 있었다. 합리적인 관점에서 최소한의 채널로 꼭 필요한 것만 간결하게 우리를 소개했기에 마케팅 인력을 늘리지 않았고, 타당하지 않기 때문에 투자금을 사용하지 않았다.이어서 브랜드 가치에 따라 일한 사례 2개를 소개한다.브랜드 가치에 따라 제품 설명하기온라인에서 매트리스를 구매한 사람들은 대부분 느낀 바가 있다. 상세 설명이 너무 어렵다는 것이다. 상장 자랑하듯 나열한 품질인증서는 의미를 알 수 없고, 화려한 3D 그래픽에 눈이 어지럽다. 게다가 좋다고만 말하지 제품에 어떤 주요 특징이 있는지 어떤 의도로 만들었는지 알려주지 않는다.그래서 우리는 '섬세하게' 100여 명과 인터뷰를 통해, 그들이 온라인에서 제품을 구매할 때 가장 망설인 점이 무엇인지부터 제품을 체험하지 않더라도 구매를 결정하는데 도움 줄 수 있는 정보가 무엇인지 등 차근차근 알아냈다.가장 원하는 정보를 먼저 볼 수 있도록 목차를 정했고, '전문적으로' 우리가 가장 잘 알고 내용을 능숙하게 설명할 수 있는 것이 무엇인지 정리했다. 이어서 화려함보다는 '합리적으로' 꼭 필요한 내용을 제시하고 납득이 가도록 풀어쓰는데 집중했다. 초안을 만든 후 '합리적인가?', '정말 섬세한가?' 묻고 수정하며 완성했다.이런 노력을 알아줬을까. 흥미롭게도 삼분의일과 관련된 첫 블로그 포스팅은 제품에 대한 리뷰가 아니라 제품 상세 페이지에 대한 리뷰였다. 일부 인용하면매트리스 구매를 정말 많이 했는데, 하나같이 상세페이지엔 알아들을 수 없는 용어들과 복잡해 보이는 온갖 기능대잔치 쓰리디 이미지 때문에 제품 스펙에 대해 한눈에 알기가 어려웠다. 그래서 스펙에 따른 의사결정보다는 후기나 가격만 봐서 구매결정을 했었다. 제품상세페이지가 오히려 너무 복잡해서 상세페이지가 제기능을 못한다는 생각을 했었다. 삼분의일은 제품 상세페이지를 다 읽게 만든다.메시지가 간결하고, 글자가 크고(모바일, 웹 모두), 어려운 용어가 없어 이해가 쉬우며, 나에게 뭐가 좋은지를 클리어하게 알 수 있다. 구매자와 비구매자의 후기를 모두 보여줘, 반품 가능성이 있는 사람들은 애초에 주문을 하지 않게 함으로써 CS를 최소화했다.※ [출처 링크] 삼분의일 1/3 매트리스 상세페이지 리뷰 - '제품 상세 페이지의 중요성' 더불어 우리의 제품 설명을 따라 하는 회사들이 등장했다. 설명 흐름부터 FAQ의 문장까지 누가 보아도 우리를 참고해서 상세 페이지를 제작한 곳이 하나둘 늘어나고 있다. 심지어 그림까지 유사한 경우도 발견했다.방수커버 기능을 설명하기 위한 그림. 왼쪽이 삼분의일모든 텍스트 하나하나 직접 작성하고 일부분 그림까지 그린 개인적인 입장에서 황당하기도 하지만, 다른 회사가 따라 하고 싶을 정도로 잘 하고 있다고 생각하기로 했다.(※ 덧붙임. 이 글을 올리고 어떤 분이 삼분의일의 '비즈니스 모델'을 보며 너희도 따라하지 않았냐고 평하셨다. 우리와 같은 비즈니스 모델은 국내외 존재하고 있다는 것을 이미 알고 있고 부정하지 않는다. 위 문단에서 내가 말하고 싶은 것은 비즈니스 모델이 아니다. '제품 설명'이다. 예를 들어 품질인증서를 스캔해서 올리기만 하는 기존 방식보다 품질인증서의 의미를 알기 쉽게 말하려고 했고, 그렇게 만든 문장을 그대로 따라 쓴 곳이 있다. 어떤 곳은 1페이지 분량 텍스트를 업체 정보만 변경해서 올린 경우도 봤다. 그래서 나는 따라하는 곳이 늘어나고 있다고 언급한 것이다. 오해하지 않았으면 한다.)브랜드 가치에 따라 고객과 관계 형성하기삼분의일의 브랜드 미션 중 하나인 '평생 케어: 팔면 끝이 아니다. 관계의 시작이다.'와도 어느 정도 연관이 있는데, 우리는 한번 구매한 고객과 지속적으로 관계를 유지하고자 노력했다.일부를 제외하고 구성원 대부분은 시간 자원 상당수를 '새로운 고객 유치'보다 '기존 고객과의 관계'에 집중했다. 구매 감사 안내 문자부터 시작해 귀찮아하지 않는 범위 내에서 인터뷰와 설문을 요청하고 고객의 진짜 속마음을 알고자 노력했다. 특정 기간 공정상에 문제가 있었음을 발견하면 해당 기간에 제품을 구매한 모든 고객에게 연락해 양해를 구했다. 회사가 이익을 보지 않더라도 고객이 원하는 방향으로 모든 조치를 취했다. 그것이 우리 브랜드 가치 '섬세한'에 맞다고 생각했기 때문이다.남들은 당연히 그래야 하는 거 아니냐고 말하기도 하지만 그 당연함을 제대로 하지 않는 것을 나는 정말 많이 보고 경험했다. 그래서 그 당연함을 제대로 하기 위해 우리는 항상 '섬세하게' 일하려고 노력했다.이런 노력이 통했을까. 올해 초 1,000명의 고객에게 삼분의일에 대한 평가 서술을 문자로 부탁했고, 단 이틀 만에 300명이 답했다. 작게는 한 줄이었지만 많게는 A4 한 페이지 분량도 있었다. 이를 보며 브랜드 가치에 따라 고객과 관계를 만드는 것이 옳았음을 깨달았다. (삼분의일의 매출 증가는 이런 고객들 덕분이다. 입소문과 지인 추천의 힘은 매우 크다)문자를 보내고 하루가 지났을 때 분량. 인쇄하고 하나하나 다 읽었다.최근 전주훈 대표에게 화를 낸 적이 있다. 방문 고객에게 섬세하게 답변을 하지 않았기 때문이다. 그때 전주훈 대표는 틀린 대답을 하진 않았지만 충분하게 답변하지 않았다. 고객에게 도움될 수 있는 정보를 알면서도 전하지 않은 건 섬세하지 못하게 응대한 것이고, 나아가 전문적이지 못한 행동이라고 여긴 것이다. (참고로 전주훈 대표는 평소 나의 불평과 고집을 주의 깊게 들어주고, 언제나 함께 올바른 결정을 내리고자 한다. 그래서 항상 고맙다.)사실 처음부터 이렇게 일했던 것은 아니다. 제품 출시 초기에 잘못된 응대로 고객과 관계를 여러 번 망치고, 반성의 결과가 현재의 모습이다. 이 과정에 대해서는 (언젠가...) 새 브런치 글로 자세히 소개하겠다.되돌아보기와 마무리글 초반에 투자금 중 사용한 돈이 없다고 밝혔다. 그렇다고 우리가 돈을 안 쓰는 것이 아니다. 삼분의일은 투자를 받기 전에 수억 원 가치의 기계를 구매했었다. 우리는 브랜드 가치에 따라 전문적으로 일하기 위해 항상 배웠고 설비 투자의 중요성을 깨달았다. 꼼꼼하게 따져보니 합리적이고 타당하기에 자본금을 모으고 모아 값비싼 기계를 구매했다.이렇게 삼분의일에 있어 '브랜드 가치'란 기계 구매와 같은 큰 결정뿐만 아니라 세세한 업무 방식을 결정하는 중요한 기준인 것이다. 삼분의일은 이 기준(과 동료들) 덕분에 지금까지 잘 성장했다. 다만 앞으로도 계속 성장할지는 미지수다. 해결해야 하는 문제가 많고, 모르는 문제 또한 많을 것이기 때문이다.분명한 것은 브랜드 가치에 따라 일하다 보니 우리를 좋아하는 고객이 생겼고 우리를 따라 하는 곳이 생겼다는 것이다. 삼분의일은 말 그대로 브랜드가 되고 있다.ps. 끝으로 삼분의일 브랜드 담당자로써 무리한 요구에도 불구하고 잘 따라와 준 동료들에게 감사의 말을 전한다. 함께 더 성장합시다.#삼분의일 #매트리스 #운영 #스타트업인사이트 #성장 #브랜드 #브랜딩
조회수 4685

안드로이드 앱의 Persistent data를 제대로 암호화해 보자! (2/2)

들어가기1부에서는, KeyStore 를 사용해 Shared Preferences 를 암호화 하는 법에 대해 알아봤습니다. 그리고 이 글에서는 Room을 사용한 Database 를 암호화 하는 방법에 대해 설명합니다.2018년 현재, 안드로이드 자체에서 데이터베이스를 암호화하는 기능을 제공해 주진 않습니다. 따라서 오픈 소스 프로젝트인 SQLCipher, SafeRoom 의 사용법 위주로 설명할 예정입니다. 또한 KeyStore 에 대칭키를 생성하는 기능은 API Level 23 이후에서만 가능하며, SQLCipher 가 Android KeyStore 를 지원하지 않고 있습니다.이로 인해 1부에서 소개한 키 암호화 메커니즘으로 보호한 별도의 키를 디스크 어딘가에 저장해 두고, 필요할 때만 복호화 해서 쓴 다음 복호화된 내용을 지우는 방식으로 구현해야 합니다. 하지만 이런 방식으로 사용하는 키는 메모리에 순간적으로 남기 때문에 좋은 공격 표면(Attack surface) 이 됩니다. 그 이유도 함께 다뤄 보겠습니다.SqlCipher team 에서 하루라도 빨리 현재의 char[] 형식의 passphrase 를 입력받는 대신, JCA 를 사용해 암호화하는 데이터베이스를 구현하길 기대해 봅시다.SqlCipher1부에서 보여드렸다시피 internal storage 에 저장한 데이터는 결코 안전하지 않습니다. 파일 DB 인 Sqlite 데이터는 포맷을 모르면 어차피 볼 수 없을테니 조금 다르지 않을까요? 그렇지 않다는 것을 다음 예에서 보여드리겠습니다. 루팅한 디바이스에서 adb pull명령으로 sqlite3 데이터베이스를 추출 후 내용을 열어보면 다음과 같습니다.$ hexdump -vC secure_database.sqlite3 00000000  53 51 4c 69 74 65 20 66  6f 72 6d 61 74 20 33 00  |SQLite format 3.| 00000010  10 00 02 02 00 40 20 20  00 00 00 02 00 00 00 04  |.....@  ........| 00000020  00 00 00 00 00 00 00 00  00 00 00 04 00 00 00 04  |................| 00000030  00 00 00 00 00 00 00 04  00 00 00 01 00 00 00 00  |................| 00000040  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................| 00000050  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 02  |................| 00000060  00 2e 01 5a 0d 0f 95 00  02 0e a9 00 0e a9 0f c9  |...Z............| 00000070  0e 6f 0e 6f 00 00 00 00  00 00 00 00 00 00 00 00  |.o.o............| ... 00000d30  00 00 00 00 00 82 37 03  07 17 57 57 01 83 4d 74  |......7...WW..Mt| 00000d40  61 62 6c 65 73 71 6c 69  74 65 62 72 6f 77 73 65  |ablesqlitebrowse| 00000d50  72 5f 72 65 6e 61 6d 65  5f 63 6f 6c 75 6d 6e 5f  |r_rename_column_| 00000d60  6e 65 77 5f 74 61 62 6c  65 73 71 6c 69 74 65 62  |new_tablesqliteb| 00000d70  72 6f 77 73 65 72 5f 72  65 6e 61 6d 65 5f 63 6f  |rowser_rename_co| 00000d80  6c 75 6d 6e 5f 6e 65 77  5f 74 61 62 6c 65 05 43  |lumn_new_table.C| 00000d90  52 45 41 54 45 20 54 41  42 4c 45 20 60 73 71 6c  |REATE TABLE `sql| 00000da0  69 74 65 62 72 6f 77 73  65 72 5f 72 65 6e 61 6d  |itebrowser_renam| 00000db0  65 5f 63 6f 6c 75 6d 6e  5f 6e 65 77 5f 74 61 62  |e_column_new_tab| 00000dc0  6c 65 60 20 00 00 00 00  00 00 00 00 00 00 00 09  |le` ............| ... [리스트 1] Internal storage 에 저장된 SQLite3 database 를 dump 한 결과.역시 기대했던대로 데이터가 하나도 암호화되어 있지 않은 것을 확인할 수 있습니다. 그렇다면 가장 간단한 방법은 SQLiteDatabase클래스를 확장하는 일일 텐데요, 문제는 이 클래스가 final 로 상속 불가능하게 되어 있단 점입니다. 이 때문에 암호화된 SQLiteDatabase 구현체는 이 클래스 및 이 클래스에 강하게 결합되어 있는 SQLiteOpenHelper 를 온전히 쓸 수 없다는 문제가 있습니다. 즉, 바닥부터 새로 만들어야 하는 상황인데요, 다행히도 Zetetic 사에서 만든 SQLCipher for Android 는 이 문제를 모두 해결해 주는 고마운 오픈 소스 프로젝트입니다.SqlCipher 의 사용법은 기존의 SQLiteDatabase 에 의존하던 로직들의 import namespace 만 바꿔주면 되도록 구현되어 있어 마이그레이션 비용도 거의 들지 않습니다.// 안드로이드에서 제공해 주는 SQLiteDatabase 클래스명 import android.database.sqlite.SQLiteDatabase; // SqlCipher 에서 제공해 주는 SQLiteDatabase 클래스명 import net.sqlcipher.database.SQLiteDatabase; // 프로그램 시작시 native library 를 로드해줘야 한다. class MyApplication extends android.app.Application {    @Override public void onCreate() {        super.onCreate();        net.sqlcipher.database.SQLiteDatabase.loadLibs(this);    } } [리스트 2] android SQLiteDatabase 에서 SqlCipher SQLiteDatabase 로 마이그레이션 하기물론 두 클래스는 전혀 타입 호환되지 않지만, net.sqlcipher.database.SQLiteDatabase 의 모든 메소드 및 field의 signature 가 기본 android.database.sqlite.SQLiteDatabase 와 같기 때문에 이런 변경이 가능합니다. SqlCipher 개발팀의 수고에 박수를 보냅니다.RoomRoom 은 SQL 을 객체로 매핑해 주는 도구입니다. Room 을 이용해 데이터베이스를 열 때는 보통 아래와 같은 코드를 사용합니다.object Singletons {    val db: DataSource by lazy {        Room.databaseBuilder(appContext, DataSource::class.java, "secure_database")            .build()    } } abstract class DataSource: RoomDatabase() {    abstract fun userProfileDao(): UserProfileDao } // 클라이언트 코드에서 아래와 같이 호출 val userProfile: UserProfile = Singletons.db.userProfileDao().findUserByUid(userId) [리스트 3] Room database 의 정의 및 활용Sqlite 의 기본 동작은 파일 데이터베이스에 단순 Read 및 Write 만 합니다. 따라서 데이터베이스 접근시 암호화/복호화 동작을 하는 callback 을 주입해야 데이터베이스를 암호화 할 수 있습니다. 그리고 RoomDatabase.Builder 클래스는 데이터베이스를 열때 우리가 주입한 일을 할 수 있는 hook method(openHelperFactory) 를 제공해 주고 있습니다. 다음 코드를 살펴봅시다.class RoomDatabase.Builder {    class Builder {        /**        * Sets the database factory. If not set, it defaults to {@link FrameworkSQLiteOpenHelperFactory}.        */        @NonNull        public Builder openHelperFactory(@Nullable SupportSQLiteOpenHelper.Factory factory)    } } interface SupportSQLiteOpenHelper {    /**     * Create and/or open a database that will be used for reading and writing.     */    SupportSQLiteDatabase getWritableDatabase();    /**     * Create and/or open a database. This will be the same object returned by {@link #getWritableDatabase}.     */    SupportSQLiteDatabase getReadableDatabase();    /**     * Factory class to create instances of {@link SupportSQLiteOpenHelper} using {@link Configuration}.     */    interface Factory {        /**         * Creates an instance of {@link SupportSQLiteOpenHelper} using the given configuration.         */        SupportSQLiteOpenHelper create(Configuration configuration);    } } [리스트 4] Room builder 의 SupportSQLiteOpenHelper 주입 메소드 및 SupportSQLiteOpenHelper.Factory 인터페이스 정의설명을 최대한 간소하게 하기 위해 관심가질 필요 없는 코드 및 코멘트는 모두 제외했습니다. 아무튼 SupportSQLiteOpenHelper 구현체를 주입하면 뭔가 데이터베이스 작업 이전에 우리의 로직을 실행할 수 있을 것 같습니다.사실 이 인터페이스의 핵심은 바로 getWritableDatabase(), getReadableDatabase() 구현입니다. javadoc 에도 있지만 두 메소드로 반환하는 인스턴스는 같아야 하며 또한 암호화를 지원해야 한다는 것을 알 수 있습니다.결국 우리 목표는 Room 과 데이터베이스 암호화 로직을 연결해 주는 SupportSQLiteDatabase 구현체를 만드는 것임을 알 수 있습니다. 이 인터페이스는 규모가 제법 크기 때문에 이게 만만한 일이 아님을 직감하실 수 있을 겁니다.saferoom 도입으로 SupportSQLiteDatabase 인터페이스 구현체 사용하기앞서 살펴봤듯 SupportSQLiteDatabase 구현에는 상당한 노력이 필요하단 것을 알 수 있습니다. 그런데 고맙게도 saferoom 이라는 오픈 소스 프로젝트가 우리의 귀찮음을 잘 해결해 주고 있습니다. saferoom 의 SupportSQLiteOpenHelper 구현체를 간단히 살펴보면 아래와 같습니다./** * SupportSQLiteOpenHelper.Factory implementation, for use with Room  * and similar libraries, that supports SQLCipher for Android.  */ public class SafeHelperFactory implements SupportSQLiteOpenHelper.Factory {    private final char[] passphrase;    public SafeHelperFactory(final char[] passphrase) {        this.passphrase = passphrase;    }    @Override    public SupportSQLiteOpenHelper create(final SupportSQLiteOpenHelper.Configuration configuration) {        return(new com.commonsware.cwac.saferoom.Helper(configuration.context,            configuration.name, configuration.version, configuration.callback,            this.passphrase));    }    /**     * NOTE: this implementation zeros out the passphrase after opening the database     */    @Override    public SupportSQLiteDatabase getWritableDatabase() {        SupportSQLiteDatabase result = delegate.getWritableSupportDatabase(passphrase);        for (int i = 0; i < passphrase>            passphrase[i] = (char) 0;        }        return(result);    }    /**     * NOTE: this implementation delegates to getWritableDatabase(), to ensure that we only need the passphrase once     */    @Override    public SupportSQLiteDatabase getReadableDatabase() {        return getWritableDatabase();    } } /**  * SupportSQLiteOpenHelper implementation that works with SQLCipher for Android  */ class Helper implements SupportSQLiteOpenHelper {    final OpenHelper delegate;    Helper(Context context, String name, int version, SupportSQLiteOpenHelper.Callback callback, char[] passphrase) {        net.sqlcipher.database.SQLiteDatabase.loadLibs(context);        this.delegate = createDelegate(context, name, version, callback);        this.passphrase = passphrase;    }    abstract static class OpenHelper extends net.sqlcipher.database.SQLiteOpenHelper {        SupportSQLiteDatabase getWritableSupportDatabase(char[] passphrase) {            SQLiteDatabase db = super.getWritableDatabase(passphrase); return getWrappedDb(db);        }    } } [리스트 5] Saferoom 의 SupportSQLiteOpenHelper 구현체.소스 코드를 보면 SQLiteDatabase 의 원래 요구사항을 만족하지 못하는 구현 부분도 보입니다만, 그래도 이 정도면 수고를 꽤 크게 덜 수 있어 훌륭합니다.그리고 로직을 잘 보면 데이터베이스를 연 직후 암호로 넘겨준 char[] 배열을 초기화 하는 코드가 있다는 점입니다. 이것이 바로 이 문서의 서두에서 말했던 attack surface 를 최소화 하기 위한 구현입니다. 이 글의 주제에서 벗어난 내용이기에 여기서는 다루지 않습니다만, 궁금하신 분들은 부록 1: in-memory attack 맛보기에서 확인하실 수 있습니다.SqlCipher + SafeRoom + Room 구현 및 코드 설명이상으로 데이터베이스 암호화 전략에 대해 살펴봤습니다. 이 장에서는 실제로 연동하는 방법에 대해 다룹니다.불행히도 2018년 현재 SqlCipher 는 Android KeyStore 를 지원하지 않고 있습니다. 그리고 인스턴스 생성에 쓸 비밀번호로 CharArray 가 필요한데, 이 값은 한번 정해지면 불변해야 합니다. 여기 사용할 키를 KeyStore 에 저장하면 문제를 깔끔하게 해결할 수 있을 것 같습니다. 하지만 1부에서 살펴봤듯이 하드웨어로 구현된 Android KeyStore 밖으로는 키가 절대로 노출되지 않는다고 합니다. 이 문제를 어떻게 해결해야 할까요?먼저, SqlCipher 에 사용하기 위해 KeyStore 로 생성한 AES256 키의 내용을 한번 살펴봅시다.val secretKey = with(KeyGenerator.getInstance("AES", "AndroidKeyStore"), {    init(KeyGenParameterSpec.Builder(alias,             KeyProperties.PURPOSE_ENCRYPT or KeyProperties.PURPOSE_DECRYPT)        .setKeySize(256)        .setBlockModes(KeyProperties.BLOCK_MODE_CBC)        .setEncryptionPaddings(KeyProperties.ENCRYPTION_PADDING_PKCS7)        .build())    generateKey() }) val keyInfo = with(KeyFactory.getInstance(privKey.getAlgorithm(), "AndroidKeyStore"), {    factory.getKeySpec(privKey, KeyInfo::class.java) }) println("Key algorithm : " + secretKey.algorithm) println("Key format : " + secretKey.format) println("Encoded key size: " + secretKey.encoded?.size) println("Hardware-backed : " + keyInfo.isInsideSecureHardware) // 실행 결과 Key algorithm : AES Key format : null Encoded key size: null Hardware-backed : true [리스트 6] AndroidKeyStore 에 저장한 Key 는 어플리케이션에서 직접 쓸 수 없다.저희가 보유중인 개발 시료 Nexus 5 에서 실행한 결과 위와 같이 나타났습니다. secretKey.encoded 의 값이 메모리에 있다면 이 값을 SqlCipher 생성자에 넘겨줄 수 있겠지만 값이 null 이네요. 보안 측면에서는 다행일 지 모르지만 우리 구현에서는 쓸 수 없으니 문제입니다. 그래서 별 수 없이 임의로 키를 만들고(AndroidAesHelper#generateRandomKey()), 1부에서 소개했던 AndroidRsaCipherHelper 를 이용해 암호화한 값을 Shared Preferences에 저장하는 식으로 구현해 봅시다.val settingsPrefs = appContext.getSharedPreferences("app_settings", Context.MODE_PRIVATE) val settings = SecureSharedPreferences.of(settingsPrefs) val dbPass = with(settings, {    /*     * String.toCharArray() 같은 함수를 쓰면 로직이 좀더 간단해지지만, JVM 에서의 String은     * Immutable 하기 때문에 GC 이전에는 지울 방법이 없으므로 attack surface 가 더 오랫동안     * 노출되는 부작용이 있다. 따라서 key의 plaintext 는 가급적 String 형태로 저장하면 안된다.     */    var savedDbPass = getString("DB_PASSPHRASE", "")    if (savedDbPass.isEmpty()) {        // KeyStore 에 저장해도 SqlCipher 가 써먹질 못하니 그냥 1회용 키 생성 용도로만 활용한다.        val secretKey = AndroidAesCipherHelper.generateRandomKey(256)        // String 생성자 사용: 이 문자열은 heap 에 저장된다.        savedDbPass = String(Base64.encode(secretKey, Base64.DEFAULT))        putString("DB_PASSPHRASE",  AndroidRsaCipherHelper.encrypt(savedDbPass))        // 메모리 내에 plaintext 형태로 존재하는 attack surface 를 소멸시켜 준다.        secretKey.fill(0, 0, secretKey.size - 1)    } else {        // decrypt 메소드 내부에서 String 생성자 사용하므로 base64 인코딩된 plaintext 키는 heap 에 저장된다.        savedDbPass = AndroidRsaCipherHelper.decrypt(savedDbPass)    }    val dbPassBytes = Base64.decode(savedDbPass, Base64.DEFAULT)    /*     * SqlCipher 내부에서는 이 char[] 배열이 UTF-8 인코딩이라고 가정하고 있다.     * 그리고 UTF-8 인코딩에서는 byte range 의 char 는 1 바이트니까,     * 아래 변환을 거치더라도 키 길이는 32 byte(256 bit)가 유지된다.     *     * UTF-8 인코딩에서는 32 글자 != 32 바이트가 아님에 항상 유의해야 한다!     */    CharArray(dbPassBytes.size, { i -> dbPassBytes[i].toChar() }) }) [리스트 7] 암호화한 SqlCipher 용 passphrase 를 사용하는 방법.위 코드를 사용해 char[] 타입의 값 dbPass 를 얻을 수 있습니다. 리스트 7을 이용해 얻은 dbPass를 아래 코드에 사용하면 SqlCipher - SafeRoom - Room 의 연동이 끝납니다.val dataSource = Room.databaseBuilder(_instance, DataSource::class.java, "secure_database") .openHelperFactory(SafeHelperFactory(dbPass))                .build() // 메모리 내에 plaintext 형태로 존재하는 attack surface 를 소멸시켜 준다. dbPass.fill('0', 0, dbPass.size - 1) [리스트 8] SqlCipher - SafeRoom - Room 연동하기위 코드에서 볼 수 있듯, 임의로 저장한 키를 Base64 인코딩으로 변환, 그리고 그것을 다시 CharArray 로 변환하는 과정에서 key 가 메모리에 존재해야 하는 순간이 있습니다. 이 구간을 바로 공격 표면(attack surface) 이라고 합니다.JVM 단에서 넘겨주는 Passphrase 를 SqlCipher 내부에서 native 로 어떻게 처리하고 있는지는 SqlCipher SQLiteDatabase 구현및 SqlCipher crypto 구현 에서 확인할 수 있습니다.결과 확인하기SafeHelperFactory 를 주입한 Room database 파일을 추출 후 hexdump 로 확인해 보겠습니다.hwan@ubuntu:~$ hexdump -vC secure_database.sqlite3 00000000  8c 0d 04 07 03 02 11 eb  a4 18 33 4f 93 e8 ed d2  |..........3O....| 00000010  e9 01 21 d7 49 df 25 9a  f4 1d c7 1e ff 2d b0 13  |..!.I.%......-..| 00000020  fc 17 9b 4b b2 1c a3 1d  7d 1d 69 76 b1 ea ec e8  |...K....}.iv....| 00000030  1f 50 e4 c4 6c 50 e6 82  58 27 b9 fe 85 21 27 99  |.P..lP..X'...!'.| 00000040  ec 54 53 ba 32 c6 59 09  b4 30 65 39 a0 75 3e c4  |.TS.2.Y..0e9.u>.| 00000050  b8 f7 ea 47 14 df c4 f0  7c be 9f 62 26 49 1c b2  |...G....|..b&I..| 00000060  0f 63 00 7a 09 7e 33 e0  43 2b eb ea 80 21 bb 5d  |.c.z.~3.C+...!.]| 00000070  5c 04 ff 57 a3 a3 7f c2  19 42 b9 67 6c e3 d5 c8  |\..W.....B.gl...| ... 00000d30  c1 f3 93 1f 4e 5b 6a 70  39 c2 e9 2c 3e 8f 7e ff  |....N[jp9..,>.~.| 00000d40  73 3a 9a 39 0d 8a 1a 3e  6b d4 5b de 1f 6d c4 b8  |s:.9...>k.[..m..| 00000d50  fb 62 3e 21 09 0a 31 20  37 5d 8d 0a 39 6d 35 31  |.b>!..1 7]..9m51| 00000d60  26 d6 b0 22 41 7e 6c 54  7d 77 22 ba 1b f3 cf 5a  |&.."A~lT}w"....Z| 00000d70  e5 47 97 76 f0 89 e5 98  b3 37 3c 8d 43 af 0e b9  |.G.v.....7<.C...| 00000d80  18 74 fd f5 2a 41 d8 b1  d9 70 32 0b 5c 93 4b 0d  |.t..*A...p2.\.K.| 00000d90  bc 60 4c 25 9a ec 53 23  90 60 b2 52 a8 a1 b1 87  |.`L%..S#.`.R....| 00000da0  f3 3e 03 3e ac 0a 75 a0  61 d8 bd 07 b8 5a 48 66  |.>.>..u.a....ZHf| 00000db0  57 85 13 ac 04 26 55 30  34 46 57 bf 8b 42 c6 2d  |W....&U04FW..B.-| 00000dc0  9e 82 a2 df 77 bb b3 2e  96 43 70 23 23 03 df 1d  |....w....Cp##...| ... [리스트 9] Internal storage 에 저장된 SQLite3 database 를 dump 한 결과. 리스트 1과 비교해 보자.이로서 오픈 소스의 힘을 빌려 우리 앱의 데이터베이스를 비교적 간편하게 암호화 할 수 있음을 알 수 있습니다.맺으며이로서 Persistent data 암호화에 대한 설명을 마칩니다. Android KeyStore 가 API Level 23 이상의 기기에서만 100% 동작한다는 점은 2018년 현재까지는 큰 단점입니다. 하지만 사소한 데이터라 하더라도 보안의 중요성은 날로 강조되고 있습니다. 따라서 빠르던 늦던 고객 데이터 암호화에 투자해야 할 순간이 다가온다는 점은 변하지 않습니다.언젠가는 적용해야 할 고객 데이터 보호의 순간에, 이 글이 여러분의 앱의 보안에 조금이나마 도움이 된다면 좋겠습니다.부록 1: in-memory attack 맛보기앞서 계속 반복해서 설명드렸던 메모리 내의 attack surface 를 찾아내는 방법을 간단히 설명해 보겠습니다. 잘 지키려면 잘 공격하는 법을 알아야 하므로 알아두면 좋지 않을까요? 그리고 일반적인 앱 개발과는 다소 동떨어진 이 장의 내용이 이해되지 않으신다면 한줄요약한 메모리 내부의 값도 때로는 안전하지 않을 수 있다 는 한마디만 기억해 두시면 됩니다. 모든 데모는 LG Nexus 5(Hammerhead), 시스템 버전 6.0.1(M) 에서 실행한 결과며 시스템마다 약간의 차이는 있을 수 있습니다.마켓에 출시한 앱들은 debuggable:false 가 설정된 상태이므로 힙 덤프를 바로 뜰 수는 없습니다. 그런데 어떻게 in-memory attack 이 가능할까요? 다음 리스트는 디버그 불가능한 앱의 힙 덤프를 시도할 때 보안 정책 위반 오류가 발생함을 보여줍니다.hwan@ubuntu:~$ adb shell ps | grep "com.securecompany.secureapp" USER PID PPID VSIZE RSS WCHAN PC NAME u0_a431   25755 208   1700384 100888 sys_epoll_ 00000000 S   com.securecompany.secureapp hwan@ubuntu:~$ adb shell am dumpheap 25755 "/data/local/tmp/com.securecompany.secureapp.heap" java.lang.SecurityException: Process not debuggable: ProcessRecord{b6f96fc 25755:com.securecompany.secureapp/u0_a431}     at android.os.Parcel.readException(Parcel.java:1620)     at android.os.Parcel.readException(Parcel.java:1573)     at android.app.ActivityManagerProxy.dumpHeap(ActivityManagerNative.java:4922)     at com.android.commands.am.Am.runDumpHeap(Am.java:1248)     at com.android.commands.am.Am.onRun(Am.java:377)     at com.android.internal.os.BaseCommand.run(BaseCommand.java:47)     at com.android.commands.am.Am.main(Am.java:100)     at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method)     at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:251) [리스트 10] debuggable=false 설정된 앱의 힙 덤프 시도시 발생하는 예외(SecurityException)SuperUser 는 가능할까요? SuperUser 권한으로 앱을 강제로 디버그 가능한 상태로 시작해 보도록 하겠습니다.hwan@ubuntu:~$ adb shell 32|shell@hammerhead:/ $ su 1|root@hammerhead:/ \# am start -D -n "com.securecompany.secureapp/MainActivity" && exit Starting: Intent { cmp=com.securecompany.secureapp/MainActivity } hwan@ubuntu:~$ \# adb shell ps | grep "com.securecompany.secureapp" USER PID PPID VSIZE RSS WCHAN PC NAME u0_a431   27482 211   1700384 100888 sys_epoll_ 00000000 S   com.securecompany.secureapp hwan@ubuntu:~$ adb forward tcp:12345 jdwp:27482 hwan@ubuntu:~$ netstat -an | grep 12345                                                           tcp4       0      0  127.0.0.1.12345         *.*                    LISTEN     hwan@ubuntu:~$ jdb -connect com.sun.jdi.SocketAttach:hostname=127.0.0.1,port=12345 java.net.SocketException: Connection reset     at java.net.SocketInputStream.read(SocketInputStream.java:210)     at java.net.SocketInputStream.read(SocketInputStream.java:141)     at com.sun.tools.jdi.SocketTransportService.handshake(SocketTransportService.java:130)     at com.sun.tools.jdi.SocketTransportService.attach(SocketTransportService.java:232)     at com.sun.tools.jdi.GenericAttachingConnector.attach(GenericAttachingConnector.java:116)     at com.sun.tools.jdi.SocketAttachingConnector.attach(SocketAttachingConnector.java:90)     at com.sun.tools.example.debug.tty.VMConnection.attachTarget(VMConnection.java:519)     at com.sun.tools.example.debug.tty.VMConnection.open(VMConnection.java:328)     at com.sun.tools.example.debug.tty.Env.init(Env.java:63)     at com.sun.tools.example.debug.tty.TTY.main(TTY.java:1082) Fatal error:  Unable to attach to target VM. [리스트 12] SuperUser 권한으로도도 Java 디버거를 붙일 수 없다.다행히도 debuggable=false 로 릴리즈한 앱은 자바 디버거(jdb)를 붙일 수 없으니 프로그램 실행을 매우 정밀하게 제어할 수는 없다는 것을 알 수 있습니다(debuggable=true 설정된 앱에 위 과정을 실행하면 어떤 일이 벌어지는지 직접 확인해 보세요!).하지만 안드로이드의 앱은 ‘linux process’ 에서 실행되므로 SuperUser 권한으로 process 메모리 전체 dump를 뜨는 것은 막을 수 없습니다. 정공법으로는 /proc/PID/maps 의 내용을 분석하면 됩니다만 제가 안드로이드를 깊게 알고 있는 것은 아니라, 어느 영역이 dalvik heap 인지를 알아낼 수 없었습니다. 이 때문에 프로세스 메모리를 통째로 떠서 내용을 헤집어보는 방식으로 공격해 보겠습니다. 여담입니다만, 데모를 위해 공격한 앱은 dumpsys 명령으로 확인해보니 약 6MiB 의 Java heap 을 쓰고 있는데요, 이 크기를 줄이면 줄일 수록 공격이 더욱 수월할 겁니다.아래 데모에서는 안드로이드 기기용(arm-linux-gnueabi)으로 컴파일한 gdb 를 미리 설치한 결과를 보여드리고 있습니다. 참고로 여기 보이는 [heap] 은 아쉽지만 native heap 이므로 우리 공격 목표는 아닙니다.1|root@hammerhead:/ \# cd /proc/27482 1|root@hammerhead:/proc/27482 \# cat maps 12c00000-12e07000 rw-p 00000000 00:04 8519       /dev/ashmem/dalvik-main space (deleted) ... b7712000-b771f000 rw-p 00000000 00:00 0 [heap] bee86000-beea7000 rw-p 00000000 00:00 0 [stack] ffff0000-ffff1000 r-xp 00000000 00:00 0 [vectors] 1|root@hammerhead:/proc/27482 \# ifconfig wlan0     Link encap:Ethernet          inet addr:192.168.12.117          inet6 addr: fe80::8e3a:e3ff:fe5f:64c9/64 1|root@hammerhead:/proc/27482 \# gdbserver –attach :12345 27482 Attached; pid = 27482 Listening on port 12345 [리스트 13] SuperUser 권한으로 gdbserver 실행.hwan@ubuntu:~$ adb forward tcp:23456 tcp:12345 hwan@ubuntu:~$ netstat -an | grep 23456 tcp4       0      0  127.0.0.1.23456         *.*                    LISTEN     [리스트 14] 로컬 포트 23456 으로 원격 포트 12345 를 연결하는 과정.이제 모든 준비가 끝났습니다. 개발 기기에서 gdb로 원격 프로세스에 접근한 뒤, 메모리를 덤프해 봅시다.hwan@ubuntu:~$ ./gdb (gdb) target remote 192.168.12.117:12345 Remote debugging using 192.168.12.117:12345 0xb6f92834 in ?? () (gdb) dump memory /tmp/com.securecompany.secureapp.heap 0x12c00000 0xb771f000 (gdb) [리스트 15] gdb 로 메모리를 덤프하는 과정.덤프한 힙 덤프 파일 속에 있을지도 모르는 문자열을 검색해 봅시다. 그 전에 잠시, 데이터베이스에 사용할 키를 어떻게 처리했었나 되새겨 볼까요? if (savedDbPass.isEmpty()) {        // ...        // String 생성자 사용: 이 문자열은 heap 에 저장된다.        savedDbPass = String(Base64.encode(secretKey, Base64.DEFAULT))    } else {        // decrypt 메소드 내부에서 String 생성자 사용하므로 base64 인코딩된 plaintext 키는 heap 에 저장된다.        savedDbPass = AndroidRsaCipherHelper.decrypt(savedDbPass)    } [리스트 16] Base64 인코딩을 처리하기 위한 임시 String 생성 과정.우리 로직은 256 비트의 키를 Base64 변환해서 디스크에 저장합니다. 그리고 256비트의 byte array 를 base64 변환한 결과는 (4 * (256 / 3)) / 8 = 42.66 바이트 -> 4의 배수여야 하므로 44바이트입니다. 약 1.34 바이트의 pad 를 맞추기 위해 문자열의 끝에 =가 최소 1글자 이상은 있을 겁니다. 한번 찾아봅시다.hwan@ubuntu:~$ strings /tmp/com.securecompany.secureapp.heap ... /masterkey ... user_0/.masterkey em_s 1337 ... [리스트 17] strings 명령을 사용한 힙 덤프 파일내의 문자열 검색의외로 = 나 == 로 끝나는 문자열이 발견되지 않습니다. 하지만 안심하기는 이릅니다. 이건 단순히 (공격자의 입장에서) 운이 나빠서 발견되지 않은 것일 뿐입니다. 우리가 원하는 어떤 ‘순간’ 에 힙 덤프 명령을 내리지 않았기 때문에 그렇습니다. 우리의 구현은 attack surface 를 매우 짧은 시간동안만 메모리에 노출하기 때문에 이 순간이 짧으면 짧을 수록, 디바이스의 성능이 좋으면 좋을 수록 순간을 잡아내기가 더욱 어려워집니다. 즉, 이 문서에서 보여드린 방식으로 CharArray 의 내용을 아주 짧은 시간 동안만 사용하고 지워버리면 내용을 탈취하기 굉장히 어렵습니다. 하지만 안심하기는 이릅니다. nano-time 단위로 앱을 실행할 수 있는 환경을 가진 국가급 공격자는 여전히 있기 때문입니다.그리고 이 방법은 루팅하지 않은 기기에서는 절대 재현이 불가능하므로 루팅되지 않은 환경일 경우에만 실행 가능하도록 한다던가 하는 방식까지 더한다면 공격자가 더욱 우리 앱을 뚫기 힘들 겁니다.여담입니다만 독자 여러분들 중 GameGuardian 처럼 다른 게임의 메모리값을 마구 바꾸는 앱이 어떻게 동작하나 궁금하신 분들도 있을 겁니다. 그런 류의 앱들도 바로, 이 장에서 설명했던 방식으로 동작합니다.장황했던 이 장의 내용을 한줄로 요약하면 Android KeyStore 로 보호하지 않은 키는 많은 수고를 들이면 뚫을 수 있다고 할 수 있습니다.부록 2: SQLite database 의 UPDATE / DELETE 구현 특성SQLite3 의 구현특성상, UPDATE / DELETE 시에 이전 레코드의 값이 남아있는 경우가 있습니다. 암호화 했으니 좀더 안전하다곤 하지만 찌거기 값을 굳이 남겨둬서 공격자에게 더 많은 힌트를 제공할 필요도 없습니다.이 문서는 암호화 구현에만 초점을 맞췄기 때문에 상세하게 다루진 않습니다만, LINE Tech blog에 소개된 True delete 는 이 문제를 해결하기 위한 방법을 제시하고 있으므로 그 문서도 한번 읽어보시길 권합니다.더 보기SQLCipherSafeRoomAndroid SQLite3 True delete - by LINE tech blogDifference between java.util.Random and java.security.SecureRandomAttack surface on security measuresAOSP: DebuggingRootbeer: Simple to use root checking Android library#하이퍼커넥트 #개발 #개발자 #안드로이드 #앱개발 #모바일 #PersistentData #인사이트 #개발후기
조회수 706

나는 너랑 이별했다.

이 글은 나의 일련의 사건에 대한 메타포적 관점의 이야기다."나는 너랑 이별했다"*BGM이 흐르는 에세이영상을 재생 후 음악을 들으며, 흘러가 본다.#0  매정"마지막이니까 좀 어때"라고 하면서 손을 잡던 너의 모습. 그럼에도 나는 뭔가 찝찝했는지 자꾸 슬며시 잡은 손을 뿌리치고 있었다. 뿌리치면 고쳐잡고 또 고쳐잡고, 너는 의도적으로 나를 슬프게 그리고 나를 나쁘게 만들었다.긴 연휴를 앞두고 그날 너와 만난 장소는 우리가 늘 거닐던 시그니처와 같던 도시였다. 너무도 익숙한 곳 그리고 공간. 그곳에서 늘 함께 먹던 음식으로 점심을 떼우고, 늘 지나가던 카페를 들어가, 평소 마시던 커피 한잔과 평소 먹지 않던 케이크도 하나 시켰다.평소와 달랐다면, 이제 이것이 마지막일 것이라는..너도 나에게 마지막임을 상기시켰고, 나도 마지막임을 애써 아는 척, 그렇게 너에게 힘들어 하는 척했다. 솔직히 막상 현실을 마주하니, 마음이 너무 아팠지만, 여기서 틈을 보이면 다시 예전으로 돌아갈 것 같았다.행복했지만 서로가 힘든 날이 더 많았던 지난날들처럼 말이다.진짜 마지막이다. 너없이 살아갈 모습에 막상 두려워 겁이났다. 마지막으로 너를 한움큼 잡아본다.배가 터질 정도로 너를 내안에 가득 품어본다.그리고 나는 너에게 작별을 고했다.너 역시 이제 아무 여한이 없는 것처럼.. 하얗게 비워낸 것처럼.. 한방울도 남김없는 모습으로 나에게 인사를 건낸 후 이내 멀어졌다.흐르는 눈물을 주체할 수가 없다.나는 그렇게 너랑 헤어졌다.#1 아픔아 진짜 아프다.일단 냉장고와 현관문, 눈에 보이는 모든 곳들에 붙여놓은 너와의 추억을 지운다. 전화번호와 팜플렛처럼 보이는 사진들 그리고 자석붙은 쿠폰같은 너의 여러 모습들을 모두 지운다. 내 시선이 닿는 곳에서 삭제한다.모두 떼어내서 버리려고 손에 쥘때 마다..솔직히 너무 그립다. 너가 너무 보고싶다.그렇게 너를 한장씩 추억하면서 버린..가득히 쌓인 휴지통을 들여다보면서는..그래 솔직히 무언가 잘못됐다고 느꼈다. 아직도 이렇게 사랑하는데.. 사랑이 이렇게 큰대.너무 슬프다.몸속에 있는 수분을 다 배출한 것 같다.시시각각 변하는 내 기분에 내가 놀아난다.가족들과 티비를 보면 웃다가도...혼자 있게 되면 자연스럽게 눈물이 나온다.몸에 아무 힘이 없다. 그런데 너가 계속 떠오른다.특히, 너에게 못해줬던 기억이 너무 떠오른다.놀러갔을때, 식당에 갔을때, 순간의 감정에 휩싸여 울컥했고 너를 혼자 남겨두고 왔던 기억.잠깐 티격태격했다고, 너를 다시는 안보겠다고 소리치는 가벼운 모습.또, 친구들을 만나 호기롭게 너랑 헤어졌다고 큰소리 치던 모습.너를 버리고 너를 만나고 너를 이용하고 너를 취했던...너를 욕구충족의 수단으로 바라봤던 시간들까지...너무 부끄럽다. 후회된다.몸에 힘이 빠질수록, 너에 대한 그리움은 강력해진다.입술이 다 텄다. 고작 첫 날인데 내 몸은 형편없이 무너지고 너를 갈구한다.음악을 들어도 영화를 봐도, 모든 감정은 너에 관한 것이다. 감상과 생각 또한 너에게로 향한다. 티비 프로그램에서도 심지어 너가 나온다. 다양한 모습의 너가 계속 맴돈다. 모든 것 중 너가 거치지 않는 것이 없다.계속 폭포수 같이 쏟아냈다. 한편, 너에게 많이 의존하고 있던 내 모습에 자존심도 상한다.얼굴은 쾡하고, 입술은 한 겹이 벗겨지고 있다.엄마는 덩달아 걱정하고 측은하게 여기신다. 너무 슬퍼하신다. 가족들은 마치 죄를 지은냥..나를 의식한다.여기서, 기어코 엄마는 나랑 한배를 타신다.엄마도 함께 쏟아낸다. 몸속의 불필요한 것들을 배출한다는 기분으로 맘 놓고 슬픔을 함께 나눈다.엄마와 너 그리고 나, 셋이서 함께 맛있었고 즐거웠던 순간에 대해서도 이야기 나눠보며 추억해본다.#2 고통너와의 모든 것들을 정리한 줄 알았다.눈에 보이지 않으면, 이제 시간이 해결해줄 것이라고 생각했다. 그런데 나는 이제 밖에도 못나가겠다.집 앞부터 시내, 도심, 골목 구석구석 너의 흔적이 묻어있다. 추억이 묻어있다.때마침 귀에 꽂은 이어폰 속 음악에서, 너와 함께했던 봄을 여름을, 가을을, 겨울을 몽땅 추억해버린다.편의점과 분식집, 패밀리레스토랑, 쌀국수집...어딜봐도 너가 보인다. 또 폭포가 시작된다.더 이상 어디 발걸음을 뗄 수가 없다.다시 집안으로 들어갈 뿐...그저 의욕없이 누워있을 뿐....나는 회복할 수 있을까....바로 그때 가족들은 나를 피해 밖으로 나가신다.나 때문에 모두가 힘들어 한다.나 아닌 가족들은 아무 죄도 없는데.. 덩달아 불안해하고 미안해한다.. 배달음식도 조용히 소리없이 먹는다. 조금이라도 나에게 자극이 될까 배려하는게 느껴진다.아 그런데, 역시 엄마는 내 곁에 남았다.다시 내 방에 오셔서 손을 꽉 잡아주신다.나지막하게 말씀 하셨다. "00야 솔직히 나도 힘들다. 하지만 엄마는 우리 아들을 믿는다. 아주 잠시동안이니까 슬퍼하자. 우리 실컷 슬퍼하자. 그런데 나도 많이 힘들다"#3 회생몸이 아프다. 누가 그랬는지 모르겠지만 꿈에서 널 만나면 아프다는 말이 있었는데, 그래서일까..꿈에서 너랑 실컷 놀았는데. 아직도 입가에서는 코 언저리에서는 너의 맛과 향이 느껴지는데.오후에는 조금은 개운해졌다.너 생각을 엄청한다. 하지만 생각이 나를 짓누르지는 않는다. 이제는 너와 나눈 수많은 추억을 생각하더라도, 슬프고 그립기는 하지만, 아주 상세하게 즐겼던 맛과 내용까지는 생각하지 않을 수 있는 경지에 이르렀다.오늘은 좀 달랐다.그 동안 슬픔에 사무쳐 보지 못했던, 느끼지 못했던 것들이 새롭게 다시보인다.갈색의 따뜻함, 초록의 싱싱함, 퍼플의 달달함, 그리고 노랑의 은은함과 촉촉함까지.계절과 사물, 공기와 맛을 새롭게 인식하고 있다.펑펑 쏟아내서 일까, 몸에 더이상 붓기는 없다.몸도 슬림해졌다. 의욕없이 누워있다보니 몸은 매끈해졌다. 근육으로 몸을 가득채우고 싶은 욕심이 생긴다. 물론 힘이 날때 말이다.엄마가 나의 회생 소식을 반가워 하신다.나보다 하루 늦게 슬픔의 안개 속으로 들어오신 엄마... 오히려 엄마에게는 하루정도 슬퍼할 조금의 시간이 더 남아있다. 인고의 시간, 하지만 엄마도 알고 계신다."곧, 나처럼 회복을 하고 다시 새로운 기쁨으로 가득채울 수 있다는 사실을..."#4 재회다시 일상으로 돌아왔다.일련의 시련과 이별의 과정을 모두 겪고나니..이제 다시 사랑을 시작하기 두렵다.다시 너와 닮은 다른 누군가를 만나 깊어지는 행위 자체가 두렵다.너와 닮은 누군가를 만나면 겉핥기만 한다.한 젓가락씩만 맛을 본다. 나에게 깊이 관여하지 말아달라는 무의식의 신호를 보낸다.대부분은 나의 이런 적신호를 인지하고 더 이상 관계를 발전시키지 않는다.하지만 몇몇은 나의 이런 접근금지 신호에도 불구하고, 과도한 스킨십과 거친 맛으로 나를 깊게 흔든다. 바삭한 겉모습, 하지만 촉촉한 속내..마치 너를 닮은 그 모습에 솔직히 흔들린다. 마음이 기울기도하고 또 마음을 주기도 한다.거부반응에 몸서리 치기도 하지만 그래도 확실히 예전과는 다르다. 짧게 사랑을 나누고 교제할 수도 있다.또, 가장 중요한 것은 이제 헤어져도 크게 아프지 않다. 마치 습관이라도 된 듯, 하루는 사랑하고 하루는 헤어지고, 하루는 좋아하고 하루는 슬퍼할 수도 있다.#5 막장그렇게 시간이 흘렀다. 나는 이제 예전처럼 돌아갈 수 없다. 몸도 마음도 성격도 마인드도 많이 바뀌었다.더 냉정하게 변했다. 더 딱부러지게 변했다. 이젠 너를 닮은 누군가와 만남을 시작하기도 전에 먼저 끊어낼 줄도 안다.이제 두려움보다는 컨트롤이 가능하다. 모든 감정, 진행, 깊이를 통제할 수 있다.이것도 능력이랄까..비어있는 것에 대한 매력을 알아서 일까...불필요한 것을 덜어냈다는 안도감 때문일까...나는 더 건강함을 느낀다.그 어떤 것도 아닌 나를, 내 몸을 먼저 생각할 수 있다.조금은 이기적이지만 나 자신을 지독하게 생각하게 됐다.나는 이렇게 음식과 이별하고,미식주스 3일 플랜을 달성했다.모든 노폐물을 비워내고 자신감을 채웠다.엄마도 곧이어미식주스 3일 플랜을 달성하셨다.Jason KH커뮤니케이션    기획자
조회수 937

국내 IT 산업을 주무르는 첫눈 마피아

업계에서 페이팔 마피아(PayPal mafia)에 대한 이야기를 듣는 건 어렵지 않다. 전세계 IT 산업의 핵심인 실리콘밸리를 장악하고 있는 페이팔 마피아를 탄생시킨 회사는 컨피니티(Confinity)라는 회사다. 이 회사의 이름은 낯설지 몰라도 이 회사가 개발한 페이팔(PayPal)이라는 전자 송금 서비스의 이름은 낯설지 않을 것이다. 1998년 시작된 컨피니티는 페이팔을 만들어 2002년 상장한 뒤 얼마 지나지 않아 이베이(eBay)에 매각된 닷컴 버블 폭풍의 몇 안되는 생존자 중 하나였다. 페이팔 마피아란 페이팔의 초기 임직원들을 일컫는 말로, 이들은 이후에 또 다른 혁신적인 회사들(Tesla Motors, LinkedIn, Palantir Technologies, SpaceX, YouTube, Yelp, Yammer 외 다수)을 계속 만들어 내고 있다. 이들의 모습이 마치 사회 모든 곳에 얽혀 있는 마피아 조직을 연상시킨다는 것에 비유해, 이들을 페이팔 마피아라고 부르기 시작했다. 심지어 포춘지(Fortune)에서는 2007년 이들을 한데 모아 마피아 같은 옷을 입히고 재미있는 사진을 남기기도 했다. 출처 : Fortune Magazine, 2007년 11월페이팔 마피아들의 성공은 절대 우연이 아니라고 생각한다. 이들이 닷컴 버블의 위기를 이겨낼 수 있었던 밑바닥에는 페이팔이라는 회사가 가진 확고한 고유의 문화(culture)가 존재했다. 자신들이 만들어 낸 본연의 문화가 몸에 배인 초기 구성원들이 새로운 회사를 시작하고, 또 다시 새로운 그들만의 확고한 문화를 만들어 가면서 또 다른 페이팔이 만들어 질 가능성이 높아졌다고 할 수 있다. 또한 각자가 가진 강력한 인적 네트워크를 통해 서로 도움을 주고 받으며 새로운 회사를 만들고 함께 성장할 수 있도록 하는 노력을 아끼지 않았다. 실리콘밸리에 또 다른 닷컴 버블이 터진다 하더라도 이들 페이팔 마피아의 생존 가능성은 의심할 여지가 없을 것이다. 정부 시스템이 무너져도 마피아 조직의 견고함은 무너지지 않는 영화 같은 이야기가 실리콘밸리에서 실제로 일어나고 있는 것이다.출처 : jamesaltucher.com한국에서는 이런 사례가 없는지 늘 궁금했다. 얼마 전 알토스벤처스의 한킴 대표님 페이스북에서 ‘네오위즈 마피아'에 대한 이야기를 본적이 있다. 그런데 나는 이 이야기를 읽으면서 네오위즈보다 주목해야 할 회사는 첫눈이 아닌가 하는 생각이 들었다. 네오위즈, 넥슨, NHN 같은 회사보다 훨씬 더 마피아의 밀집도가 높은, 미국의 페이팔을 연상시킬만한 작은 조직이었기 때문이다.첫눈은 2005년 6월 네오위즈에서 분사하며 설립되었던 검색 회사다. 가장 큰 특징은 자사의 내부 DB를 통해 검색 결과를 제공하는 경쟁사들과 차별화하여 인터넷 전체를 검색 대상으로 삼는다는 점이었다. 이후 설립 1년 만에 NHN에 350억원 규모로 매각되었고, NHN의 당시 보도자료에 따르면 임직원은 총 55명이었다. ‘첫눈 마피아’에 대해 정리하려고 마음 먹고 그간 나왔던 첫눈에 대한 기사들을 많이 읽어 봤다. 간간이 첫눈을 페이팔 마피아에 비유했던 기사들도 있었다. 또 마침 우리 회사 렌딧의 홍보 담당인 꼬날이 첫눈의 홍보 담당이었던 덕분에 생생한 이야기를 직접 들을 수 있었다. 정리해 본 첫눈 마피아들은 아래와 같다 (존칭 생략):장병규 : 지난 9월 25일 4차산업혁명위원장에 임명되어 국가적 화제의 인물로 떠오른 장병규 블루홀스튜디오 의장이 첫눈의 창업자. 2005년 6월 네오위즈에서 검색엔진 개발팀 인력들을 이끌고 분사해 첫눈을 창업했다. 2006년 6월 첫눈 설립 1년 만에 NHN 과 350억원 규모로 매각. 이렇게 NHN에 들어간 첫눈의 인재들이 주축이 되어 개발한 서비스가 라인(LINE)이다. 장병규 대표는 첫눈의 NHN 인수 후 초기 기업에 전문적으로 투자하는 벤처캐피털 본엔젤스벤처파트너스를 설립해 우수한 창업자와 스타트업을 발굴하고 지원하는 일에 힘써왔다. 2007년에는 게임개발사인 블루홀스튜디오를 창업해 현재까지 의장직을 맡고 있다.신중호 : 신중호 라인 CGO(Chief Global Officer)는 첫눈의 CTO였다. 2005년에 첫눈 창업 시 장병규 대표와 함께 네오위즈에서 나왔다. 2006년 NHN 인수합병 시 NHN에 합류, NHN 재팬의 검색서비스를 책임지고 일본에 건너가 있던 중 라인을 개발했다. 일본과 동남아시아 여러나라에서 현지화에 성공, 2016년 7월 라인의 나스닥 상장을 견인했다. 최근에는 WAVE, Clova 등 네이버의 AI 사업을 총괄하며 미래를 이끌어 가고 있다.이상호 : SK텔레콤 AI사업단장 역시 첫눈 출신이다. 자연언어처리와 음성합성, 음성검색 분야의 국내 최고 권위자로 알려졌다. 첫눈에 합류하기 전에는 LG전자 연구원을 거쳐 서울산업기술대학 교수를 지냈다. 당시 이상호 교수를 첫눈에 영입하기 위해 장병규 대표가 오랜 시간 공을 들인 것으로 알려졌다. 이상호 단장 역시 첫눈의 NHN 인수합병으로 NHN에 합류한 후 음성 검색 서비스 등 검색 개발에 집중하다, 2011년 다이알로이드라는 음성 인식 개발사를 창업했다. 국내 최고의 음성 검색 전문가 4인으로 구성되었던 다이알로이드는 2012년 9월 국내 최초로 음성으로 문자를 전송하는 앱 ‘다이알로이드'를 선보였다 (관련 내용 : http://limwonki.com/536). 이상호 대표는 2012년 말 다음이 다이알로이드를 인수하며 다음을 거쳐 카카오에서 음성 검색 연구를 지속했으며, 이후 SK플래닛에 입사, CTO 로 기술을 책임지다 2017년 4월부터 SKT AI 사업단장을 맡아 누구 (NUGU) 등 AI 부문 사업을 총괄하고 있다.노정석 : 잘 알려지지 않은 사실이지만 노정석 리얼리티 리플렉션 대표 역시 첫눈 출신이다. 첫눈 창업 초기 약 4개월 간 글로벌 사업 담당으로 일하다, 2005년 9월에 블로그 개발사인 태터앤컴퍼니를 창업했다. 노정석 대표는 1996년 카이스트-포항공대 해킹 전쟁의 주인공으로 유명하다. 이후 1997년 선배들과 창업한 보안회사 인젠이 2002년 코스닥 상장에 성공. 2005년에 설립한 태터앤컴퍼니는 2007년 9월 구글이 인수하며 국내 스타트업으로는 드물은 글로벌 M&A 성공 사례로 기록 되었다. 이후 구글에서 2년여 간 프로덕트 매니저로 일하다 2010년에 설립한 파이브락스(설립 시 사명은 아블라컴퍼니)가 2014년 8월 다시 미국의 모바일 광고 플랫폼 회사인 탭조이에 매각되며, 국내 스타트업에서 드물은 글로벌 M&A 성공 사례를 다시 남긴 주인공이 되었다. 2015년 5번째 회사인 리얼리티 리플렉션을 창업해 국내 대표적인 ‘연쇄 창업가'로 불리운다. 창업과 더불어 엔젤투자자로서 좋은 창업가들을 발굴하고 후배 창업가들과 함께 호흡하는 것을 좋아한다. 티몬, 비트파인더, 미미박스, 다이알로이드, 다노, 다이알로이드(다음이 인수), 파프리카랩(일본 그리 인수), 울트라캡숑(카카오 인수) 등에 투자했다. 나 역시 2011년 미국에서 창업했던 두번째 회사인 스타일세즈 창업 때 노정석 대표의 엔젤투자를 받았다.그 외 2011년 모바일 메신저 ‘틱톡'을 개발해 카카오톡의 강력한 경쟁자로 부상했던 매드스마트의 김창하 대표 역시 첫눈 개발자 출신이다. 김창하 대표는 2012년 매드스마트를 SK플래닛에 매각하며 SK플래닛에서 일하다, 현재는 라인에 합류해 신중호 CGO와 함께 일하고 있는 것으로 알려져 있다. 라인의 박의빈 CTO 역시 첫눈 출신으로 오랜 기간 신중호 CGO 와 함께 하고 있는 핵심 인물이다. 천재 개발자로 유명한 보이저엑스 남세동 대표 역시 장병규 대표와 오랫동안 함께 한 개발자다. 19살에 네오위즈 인턴으로 시작해서 세계 최초의 웹기반 채팅 서비스인 ‘세이클럽 채팅' 개발을 주도하였고, 이후 첫눈을 거쳐 라인에서 일했다. 카카오의 AI 사업을 총괄하고 있는 김병학 부사장 역시 첫눈 출신이다.    대기업과 스타트업을 오가며 활약 중인 첫눈의 인재들도 있다. 이은정 라인플러스 이사는 베인앤컴퍼니 등에서 컨설턴트로 일하던 중 장병규 대표에게 스카우트되어 첫눈에 입사. 첫눈이 NHN에 인수된 후 현대카드, GS홈쇼핑, 삼성카드 등 대기업에서 승승장구 하던 중 2014년 라인플러스에 입사해 글로벌 사업의 중추 역할을 하며 다시 신중호 CGO와 일하고 있다. 엘지생활건강에서 모바일 플랫폼 혁신을 주도하고 있는 권도혁 상무 역시 첫눈 출신이다. 첫눈 합류 전 베인앤컴퍼니와 NHN에서 경력을 쌓았던 권도혁 상무는, 첫눈이 NHN에 인수된 후 다시 전직장 NHN에 합류하지 않고 스타트업인 큐박스에 합류했다. 이후 2011년 ‘울트라캡숑' 이라는 재미있는 이름의 스타트업을 창업, 대학생들의 익명 커뮤니티인 ‘클래스메이트', 소셜미디어 서비스 ‘너 말고 니 친구', ‘마티니', 다이어트 앱 ‘다이어터' 등을 개발해 서비스 하던 중 2014년 카카오에 매각하고 엘지생활건강에 합류했다.   스타트업 홍보를 열심히 하고 있는 우리 회사 꼬날도 첫눈 출신이다. 첫눈 (NHN 매각) - 태터앤컴퍼니 (구글 매각) - 엔써즈 (KT 매각, 이후 닐슨에 재매각됨) - 파이브락스 (탭조이 매각) 등 성공적인 엑시트로 평가되는 스타트업에 연이어 렌딧에 합류. 스타트업 홍보의 미다스 손으로 불리는 국내 유일무이한 이력의 홍보전문가다.첫눈이 NHN에 인수되면서 첫눈의 새로운 검색 정책과 혁신적인 서비스에 기대를 많이 했던 초기 사용자들이 '첫눈이 녹아 버렸다'며 아쉬워했었다고 한다. 하지만 첫눈은 매각 당시 보도했던대로 NHN과 함께 글로벌 서비스 개발에 힘썼고, 메신저 서비스 라인을 만들어 글로벌 시장 진출에 성공했다. 또한 다양한 첫눈 마피아들이 여전히 창업 전선에서 맹활약 중이다. 내가 창업에 뛰어든지 이제 만 12년이 되었고 세번째 회사인 P2P금융 렌딧을 시작한지 2년 반이 지났다. 렌딧은 기술 혁신을 통한 금융 서비스의 효율화라는 미션을 갖고 시작되었다. 혁신적인 서비스를 통해 우리 삶에 긍정적인 영향을 주는 것만큼이나 내게 강한 동기가 되는 것은 함께 일하는 사람들과의 동반 성장이다. 렌딧의 성장 뿐만 아니라 우리 고유의 문화가 몸에 배인 렌딧맨들이 미래에 또 다른 곳에서 새로운 혁신을 만들어 낼 수 있는 강력한 렌딧 마피아가 형성되기를 기대해본다.지난 5월27일, 렌딧의 SeriesB 투자가 확정되던 날 모든 렌딧맨과 함께
조회수 1383

오직 땀으로만 불행을 지운 100억 매출의 청소 아줌마

얼마전 성실캠프에서 임희성 대표님을 모시고 인생 스토리를 들었다. 눈물을 3번 흘렸다. 기업가의 강연을 듣고 눈물을 흘린 적은 두번째다. 첫번째는 바로 손정의 강연에서 눈물을 흘렸었다.임희성 대표님의 어린 시절얘기부터 파란만장한 이야기들이 머릿 속에 아주 생생하게 한 편에 영화처럼 그려졌다. 아주 깊은 나의 내면속에서 존경심이 우러러 나왔다. 이런 분들이 세상에 존재해주셔서, 아직 살아계셔서, 이렇게 이야기들을 시간내서 사람들에게 말해주는 것에 대해서 정말 감사한 마음이 들었다.내가 사업을 하면서 겪고 있는 어려움, 불행, 힘든 일들은 이런 분들에 비하면 아무것도 아니다. 그렇기 때문에 그것에 힘들어하며 제자리에 멈춰있는 것은 하수다. 항상 나보다 더 어려운 상황에 놓인 사람들이 많다. 나는 계속 전진하면 된다. 그리고 빨리 여유있는 나 스스로의 환경을 만들어내어 어려운 환경 탓에 꿈을 실현하지 못하고 있는 사람들의 엄청난 잠재력이, 먹고 살기 위한 일에 인생을 허비하지 않도록 그들을 도와준다.나중에 이들을 따로 돕는 펀드를 만들 것이다. 펀드 이름은 PM(Potential Mankind) fund. 한국에서 시작해서 해외에서도 이러한 사람들을 돕는다. 100억 규모로 편성해서 1명당 월 100만원씩 한 해에 약 1천만원씩 지원하고 매년 1,000명의 잠재력을 발굴한다.강연때 너무 기억하고 싶은 구절 구절들이 많아서 전문을 공개한다. 길지만 꼭 일독을 추천한다.[전문] 지금 뇌종양 판단을 받은 상태다. 머릿 속에 종양이 생겼다. 수술을 계속 하는 상황에서도 사회 생활을 계속 하고 있다. 나는 다음과 같은 이력, 경력을 가지고 있다.이력 : 연성대학교 절업, 고려대 경영전문대 졸업, 이화여대 평생 교육원, 연세대 외식산업과정이수, 한국 농수산 대학 수료, 한영신학대학교 졸업 경력 : 나이 18살 직장, 남대문 점원 10년, 자영업 2년, 대양기업 창업 - 희림뷔페, 매운갈미찜, 3대 막국수, 석봉토스트 자격 : 요양보호사 2급, 펀리더쉽 지도사 1급 사회복지사 2급, 웃음치료사 1급, HSK 2급. 나는 대표직을 맡고 있으면서도 사장님이라고 부르지 말라고 한다. 굿모닝대양이라는 우리 회사는 아침에 잘 잤어? 라고 하는 회사다. 나는 뭐 뷔페도 했고 갈비찜도 했다. 여기 있는 사업은 아주 처절하게 실패를 했다. 자격증도 많이 땄다. 왜 땄냐면 올 2월 22일 대학교를 졸업했다. 이 나이에. 실패는 끝이 아닌 또 다른 성공이다라고 생각한다. 실패를 여러번 느껴본 사람이 성공이라는 단어를 말할 수 있는 자격이 주어진다고 생각한다. 실패를 안해본 사람은 성공이라는 참의미를 모른다.  내 인생에는 터닝포인트 4가지가 있었다.  1. 소녀가장 2. 미혼모(과부) 3. 뇌종양 4. 비전, 아직도 꿈을 꾸고 있다.  이 4가지는 내가 자신있게 얘기할 수 있는 제목이 되어버렸다.  1. 소녀 가장 이때는 대한민국이 그냥 너무 가난했다. 우리집도 너무 가난했다. 부자인 친구보다 가난한 친구들이 많았다. 근데 가난이 부끄럽지는 않았다. 내가 부끄러운 것은 아버지였다. 그때 의술이 발달되지 않았다. 몸이 아프셨는데 민간요법으로 목숨을 어떻게 구하셨는데 근데 지적 장애가 되셨고 주위에서는 말 더듬이라고 불렀다. 어렸을 때 아버지에게 누가 말을 걸면 내가 앞에 서서 얘기했다. 대신 말 해주려고. 그때 어릴 때 나는 멋진 아버지들을 보면 사실 부러웠다. 우리 아빠는 왜케 의기 소침할까? 이런 원망 아닌 원망을 했었다. 내가 그래서 가장 역할을 하게 된 것 같았다. 그때 큰 딸인 내가 동생들한테 등록금을 양보하다보니깐 매번 내가 돈 안내는 사람으로 칠판 뒤에 적혀있었다. 그래서 학교를 왠지 주눅이 들며 다녔다. 공부를 잘하는 머리도 아니여서 장학금도 못탔다. 나는 아버지의 어깨가 무겁다고 생각되어 고등학교 2학년때 취업을 하러 나갔다. 그때는 취업을 하면 졸업장을 그래도 줬다. 그래서 아버지의 반쪽 어깨를 덜어드리고자 반쪽 가장 역할을 했다. 20대 초반때 멋진 대학생을 소개 받았다. 돈까스 사준 다는 말에 미팅을 나갔는데 대학생이 너무 멋있었다. 아버지가 하지 못한 행동을 나한테 해주고 토닥여주고 마음을 안아줬다. 나도 모르게 이 남자가 나를 진정으로 사랑한다고 믿었다. 그때 당시에는 손만 잡으면 결혼하는 줄 알았다. 그러던 내가 아이가 생겼다. 이 남자의 발목을 붙잡았는데 이 대학생은 전혀 원하지 않았다. 어찌어찌 딸 아이가 탄생했다. 아이가 탄생하고 2주 만에 남자가 군대를 갔다. 그때 뭐 3년 금방 가지 아이도 있는데하며 기다렸다. 그리고 아이를 낳았던 것이다. 남편만 믿고 기다렸다. 36년개월을 마치고 돌아와야 되는데 10개월 뒤에 만날 수 없는 사람으로 돌아왔다.  아이를 키워야되니깐 시댁에 들어갔는데 근데 시댁에서는 우리 모녀를 달가워하지 않았다. 결혼식도 안 올렸는데 아이를 낳고 왔으니 예뻐보이지 않았을 것이다. 이만큼 살아보니깐 그 당시 충분히 그럴 수 있다 그렇게 생각한다. 그때 아이 분유를 시어머니가 안사주시더라. 내가 분유하나 못살까 그러다가 토큰 하나 들고 남대문 시장에 갔다. 버스에서 내렸다. 새벽 장사를 끝낸 상인들이 무척 바쁘게 움직였다. 나는 가게를 두리번 거리다가 손님이 가장 많은 곳에 점을 찍었다. 그리고 그 앞에 서서 내가 여기 사장님이 누구세요라고 했다. 그러더니 아주머니가 나가. 라고 하더라. 점원좀 시켜달라고 했다. 콧방귀를 뀌면서 뒤도 안돌아보셨다. 그때는 아이를 낳고 얼마 안되서 앳된 얼굴에 45kg이여서 되게 홀짝해보였다. 그때는 옷을 어떻게 샀었냐면 노란색 포대로 옷을 담아서 빨간 노끈으로 동동 동여매어 야무지게 포장을 해서 머리에 이고 서울역까지 가야됬다. 그때는 지방 손님이 올라왔고 서울역까지 가던가 돈이 좀 있으면 지게 아저씨가 지어주는 거였다. 이때 점원을 구할 때는 서울역까지 픽업하는 걸 보통 옷집에서 구하는데 나는 깡마르고 하니깐 사장님이 나를 내 쫓더라. 그리고 다시 내가 아무것도 못할 것 같지만 뭐든지 시켜달라고 했다. 사장님이 지나고 나서 말하는게 너 당차다고, 너 무슨 생각으로 나한테 그랬니라고 했다. 그때 나는 대답했다. 아 배고파서요…  그래서 사장님이 너 아침 먹었니? 그러더니 "밥 시켰다 밥 먹어라" 하얀 쌀밥에 소고기가 둥둥 떠있는 국을 먹었다. 하얀쌀에 고기국은 너무 맛있어서 평생 잊을 수 없는 맛이였다. 내가 밥 값을 하고 싶어서 옷을 주섬 주섬 있고 치우고 일을 했다. 그리고 다음날 취업을 했다. 사장님이 안시켜주는 걸 나는 찾아서 했다. 그때는 옷을 쌓아두고 팔았기 때문에 하나만 빼서 주니깐 옷이 막 무너지는 경우가 많았다. 나는 그때 신문지랑 장대 활용해서 옷을 무너지지 않게 했는데 옆집 사장님들이 칭찬하더라. 근데 우리 사장님은 나한테 한마디도 칭찬을 안하더라 근데 다른 가게가서 내 칭찬을 하더라.  나는 내 새끼 굶지 않게 하려고 분유를 사기 위해서 남대문 시장을 나갔다. 나는 그때 무슨 일을 할지도 모르고 그냥 갔다. 나는 우유값 벌려고 나갔다. 나는 근데 분유값만 번게 아니라 집도 조금씩 이사를 하며 좋은 집으로 갈 수 있게 되었다. 남대문 시장은 우리 가족을 살려준 장소다. 이전에는 산꼭대기 위에서 살았는데 가로등도 없는 그 껌껌한 곳에서 버스정류장까지 우리집이 내려왔었다. 이 남대문은 아픔을 잊게 해준 장소다.나는 남편이 일찍 죽고 결혼식도 못올렸으니 미혼모였고 남편이 죽어서 무덤을 만들었는데 미망인 임희성이라고 써져있었다. 나는 남편이라는 존재도 모르고 왜 미망인이야. 미망인이 뭐지. 나는 미망인이 몰랐다. 비석에 미망인이라고 써져있으니 그냥 미망인인줄 알았다.  나는 초심을 잊거나 기분이 다운되거나 내가 걸었던 남대문 시장을 쭉 걷는다. 그럼 그 새벽 골목에 내가 머리를 이고 걸었던 그 골목이 아직도 변하지 않아서 그 과거가 안 잊혀져서 한번씩 찾아가보는 것 같다. 딸이 유치원을 갔는데 엄마 얼굴을 그려오라고 했다. 근데 엄마 얼굴을 본 적이 없으니 이불을 덮고 자는 엄마의 얼굴을 그렸다. 그때 내가 가슴이 먹먹했다. 사람답게 살 수 있는 그런 직업을 가졌으면 좋겠다. 딸이 그려온 그림을 보니깐 내가 내 구실을 못한다고 생각했다. 그래서 내가 청소 용역이라는 걸 생각했다. 아파트가 있는데 아주머니를 데리고 계단을 쓸고 닦고 엘리베이터를 닦아주고 화단에 있는 쓰레기를 치워주고 그런 일을 하는 직업이 있었다. 구질구질한 일을 치워주고 남이 안하는거라 뭔가 이 일이 땡꼈다. 점원은 사장님이 하는 일을 금방 배우는데 13년을 배우면서 내가 사장을 하고 싶은 생각을 하지 않았다. 실패가 그때는 두려웠다. 그냥 열심히 점원 생활을 하면서 차곡차곡 돈을 모았다. 그런데 청소 용역이라는 걸 생각해보니깐 낮에 나가서 청소용역을 하고 밤에 남대문 보고 나중에 직원을 두면 되겠다라고 생각했다.청소용역 25년중 가장 힘들었던 부분이 낮에 청소용역하고 밤에 남대문 일하려니깐 아 이러다 죽겠다 싶어서 하나씩 접었다. 가장 친한친구에게 노점을 하나 주고 노하우를 가르쳐주고 6:4로 수익을 배분하고 나는 청소용역에 집중하려고 한다고 말했다. 남대문에서 돈 맛을 보면 본질에 대한 판단이 흐려지는 사장들을 많이 봤다. 아주머니에게 이렇게 교육을 한다. 건강하니깐 청소를 할 수 있 수 있다는 자부심을 가지십시오. 계단을 오르고 내릴 때마다 나 운동하고 있는거야. 내 직업은 다른 사람이 하기 싫은 일을 지구 한 구석에 더러운 부분들을 쓸고 닦는 그 일을 할거야. 아주머니가 명절 지나고 나서 엘리베이터에 3일만 안치워보세요. 다들 아주머니를 많이 그리워할 겁니다. 그러면 내 직업이 얼마나 소중한지 아시게 될 겁니다. 이렇게 교육을 시키니깐 힘들었다. 대부분의 아주머니들이 뭐야 나 이런 청소하는 사람 아니야. 이런 식이 대부분이였고 그 인식을 바꾸는데 많은 노력을 했다. 내가 계속 얘기하는 것은 자부심을 심어주고 이 청소가 남들이 안하는 것을 내가 하고 전문 인력이라고 한다. 혼자 가지말고 다같이 삼삼오오 모여 오늘도 수고했고 그렇게 파이팅하면서 서로 팀워크가 강화되더라. 서로 친구가 되더라. 직장이 되더라.  돈에 맛들려 인생을 돌아보지 못했다. 운전을 하고 가는데 갑자기 한쪽 눈이 안보이더라. 남들보다 노안이 왔다고 생각하고 참 노안이 빨리오구나 그렇게 생각했다. 그때 병원이 뭔가 그냥 가기 싫더라. 눈에 안보이면 안경을 써야되는데 이건 눈이 흐릿하게 보이는게 아니라 그냥 칠흙 같으니깐 그때 안과의사가 신경과쪽으로 가보라고 조심스럽게 CT 촬영을 권했다. 그때 영상을 찍으로 갔는데 찍는 분이 쯧쯧쯧하는게 들리더라. “이 정도 사이즈인데 불편하지 않으셨어요?” 라고 하더라. 그때 내가 뭐 남들도 다 머리 아프지 않나요. ?  종양이 시신경을 눌렀네요. 이 정도면 많이 아팠을텐데요. 빨리 수술을 해야될 것 같습니다라고 하더라. 그때 베드에 누워서 가는데 급한 전화 받으려고 수술 받으러 가는데 전화를 하면서 갔다. 그때 그 베드를 이끄는 사람이 막 뭐라고 하더라. 어떻게 수술하러 가는 사람이 휴대폰을 들고 오냐고. 5번의 뇌종양 수술을 했다. 아직도 다 제거하지 못했다. 그 남아있는 것을 제거하면 그냥 같이 내 목숨도 간다고 하더라. 5번 수술을 하면서 많이 힘들었다. 마취를 하고 나면 깨고 나면 오는 여파가 정말 많이 힘들더라. 뇌종양이라는 수술을 머리를 열고 했고 두번째는 머리를 열지 못한다고 해서 코를 들었다. 그리고 또 들어갈 자리가 없다고 하더니 제 몸무게만한 튜브를 쓰고 마취도 없이 이마에 두개를 연고만 발라서 귀 옆에다가 걸고 머릿속에 있는 뼈가 드릴로 갈리는 소리가 들리는데 이런 생각이 들더라.아… 이제 그만 살고 싶다. 이렇게까지도 내가 살아야할까. 뼈가 갈리는 소리가 들리면서 그만 살았으면 좋곘어요. 제가 할일은 다한 것 같은데.. 아버지 역할도 해봤고 죽은 남편에 대한 역할을 대신하여 딸을 대신 대학교에 보내봤고 이제는 내가 제 몫은 다한 것 같은데 그만 좀 살고 싶다는 생각을 많이 했다. 수술을 하고 나니깐 생각이 급해졌다. 하나만 남지 않은 딸에게 꼭 뭔가를 해주고 싶었다. 그래서 생각지도 않은 식당에 손을 댔다. 한번도 경험해보지 않은 식당일을 했다. 내가 옷집에 가서 사장님 돈을 많이 벌어줬고 청소 용역이라는 걸 했을 때 잘 벌었다. 돈을 버는데 어려움이 없었다. 식당은 터만 잘 잡으면 되니깐 3개를 벌렸는데 3개가 다 잘 됬다. 근데 그 때 왜 잘 됬는지를 생각해보니깐 일단 내가 세를 안내니깐 그냥 잘 됬던거다.1천명이 돌아가는 군식당 운영해보는게 어떠냐는 제안이 들어왔다. 그때는 3개가 돌아가니깐 어 뭐 잘되겠다. 그때 지인이 보증금을 혜택을 많이 준다고 해서 식권 3,800원에 한식 양식 중식 뷔페를 깔았다. 근데 해보니깐 3,800원 내가 더 보태서 팔아야했다. 근데 이게 돈이 될려면 식권이 몇백장이 팔려야 되는데 군대 특성상 빨리 밥먹고 일해야되는 특성 때문에 간부가 뭐야 일을 안하네 그래서 식권을 안사더라. 그래서 6개월 되더니 적자 폭이 막 늘어나는게 보였다. 계속 돈 메꾸면서 버티고 버텼다. 임대료 줘야지, 월급 줘야지, 자재값 줘야지.. 이 작은 가게에서 돈을 메꾸다보니깐 만신창이가 되었다. 그 군의 식당에서 한번에 훅 갔다.  내가 딸에게 돈을 남겨주려고 하다보니깐 돈을 쫓았다. 그리고 돈이 나를 도망갔던 것 같다. 그때 내가 20억을 날렸다. 신용불량까지 갔다. 내가 가지고 있던 굿모닝대양은 25년된 법인이다. 그때 나는 개인 파산만 해야된다고 생각해서 다 털었다. 나 하나 신용불량자 되고 나니깐 게임 아웃이 되더라. 너무 힘들었던게 휴대폰이 011이 010으로 바뀌는데 휴대폰이 개설이 안되더라. 휴대폰이 개설 안되니깐 마음이 짠하더라. 휴대폰은 신용 때문에 해주기 때문이다. 초심으로 돌아가자. 내 재산은 몸뚱아리 하였는데. 나 몸뚱아리 하나로 가족들 먹여살렸는데.. 그때 직원들에게 진짜 부끄러웠다. 직원들이 나에게 제발 그만 좀 하세요. 밖에 몇시간 연락안되면 불안해한다. 나는 행복하기 위해서 돈을 벌었다. 내 재산을 많이 물려주면 그게 행복인 줄 알았다. 저 멀리 있는 행복을 자꾸 쫓으려고 하다보니 그 행복은 나에게 불행으로 왔던 것 같다. 실패를 통해서 내가 깨달은 것은 사람들이 왜 성공을 하려고 할까. 성공이라는 단어가 한번도 생각해본 적이 없는데 왜 성공을 하려고 저렇게 사람들이 발버둥치는지. 그게 알게됬다. 그래서 지나온 세월을 거슬러 오면서 다시 생각해봤다. 나는 진짜 무엇을 하고 싶을까. 대학교때 친구들이 나 남자친구 만나러갈꺼야. 책을 끼고 막 가는게 나는 피하면서 전봇대 뒤에 숨었다. 그래서 학교에 가서 공부를 하고 싶다는 생각을 했다. 돈을 더 벌지 말고 텅텅 비어있는 내 머릿속에 뭔가라도 채워보자. 그때 등록금 못냈던 대학을 내 돈으로 스스로 내보자. 그때 야간대학에 들어갔는데 젊은 친구들이 다 자고 있더라. 그래서 내가 야단을 쳤다. 나보고 이모님이라 부르더라. 내가 그래서 같은 대학생 13학번 같은 학번인데 어떻게 이모님이라 부르냐 누나로 불러라. 언니라 불러라. 나는 마법의 시간인 것 같았다. 나는 23살이다. 취준생이다. 대학생들에게 말해줬다. 너 지금 이 시간은 절대 돌아오지 않는 시간이다. 이 시간은 값진 시간이다. 너희들에게 하고 싶은 이야기는 경험을 해라. 그 경험은 너에게 값진 경험이 될 것이다. 스펙 쌓으려고 오는 대학 말고 차라리 여행을 가라. 배낭 여행을 가서 그네들의 살고 있는 선진국이 뭔지 문화가 뭔지 보고 와라. 대학은 니가 가고 싶을 때 언제든지 가고 싶다. 나를 봐라.  친구들이 샤넬 향수를 가지고 있는데 넘버가 있다 고유한 번호가 있다. 근데 나는 내 몸에는 락스 냄새가 난다. 락스는 내 고향 냄새이다. 락스 냄새는 아파트 위에서 내려온다. 밑에 있으면 락스 냄새 나면 몇층에 아주머니가 있는지 알 수 있다. 그러면 가서 인사한다. 그럼 아주머니가 어떻게 내가 있는 줄 알아? 에이~ 내가 누군데요..? 그 락스 냄새가 나를 있게 해줬다. 계란은 남이 깨면 계란 후라이가 될거다. 내가 깨면 생명이 되고 병아리가 되고 성장한다. 저 병아리도 얼마나 많은 시련들이 있었을까. 그 계란 껍질안에 쪼다가 또 멈췄으면 계란 후라이가 됬을 거다. 언제까지 남의 계란 후라이가 될 것인가. 실패를 이겨내고 일어섰을 때 성공할 수 있다. 후라이가 되기 싫다면 닭장을 박차고 나가야된다.  내가 CEO가 되고 싶었다면 그 13년동안 점원으로 일하지는 않았을 것 같다. 그때는 하루하루 그냥 충실히 살았던 것 같다. 사람은 태어나면 누구나 이유가 있다. 우리 가족에게 많이 얘기한다. 오늘 밥상에 올라온 걸 보면 나는 간장 종지, 아름다운 그릇에 시금치, 사골이 우러나오는 맛잇는 소고기국이 될 수도 있고.. 자기만의 역할들이 있다. 그래서 세상이 돌아간다. 내가 특별했던 것은 아니다. 그냥 내 위치에서 최선을 다했다. 나는 작은 일에 정성을 다하는 것이 정말 중요하다고 생각한다.  여러분들에게 감히 제가 성공과 실패에 대한 얘기를 했지만 제 삶의 얘기를 계단의 닦는 CEO로서 내 이야기를 한 것 같다. 나의 이야기가 조금이나마 도움이 되었으면 좋겠다. 박수호 기자님 마무리멘트.어려울 때 다른 곳에 눈을 돌리는게 아니라 그걸 어떻게 겪어내고 끈기를 가지고 결국 방법을 찾아내는 것을 말해주셨다. 젊은 사람들을 보면 안되면 다른 곳에 바로 눈을 돌린다. 임 대표님은 식당때 아주 망했지만 개인이 파산하더라도 본인이 만들어놓은 모체는 포기하지 않고 계속 이어갔다.  Q. 외롭지 않았나? 가족을 책임져야 한다는 책임의식 때문에 솔직히 외로움을 몰랐다. 무감각이였던 것 같다. 사회복지학과 공부를 배우면서 상담 공부를 했다. 상담 공부 과정에 내가 몹쓸병에 걸렸다. 억압, 분노를 많이 가지고 있었다. 가슴에 끌어안고 있는 화병 때문에 제가 감정을 너무 억누르고 있어 맛있는 음식을 먹어도 맛있다고 하지 못하고 배만 부르면 되지, 꽃을 봐도 이쁘다고 얘기를 하지 못했다. 강아지가 사료 먹듯이.. 그냥 내 충족 욕구만 채웠었다. Q. 직원들이 몇백명이 되고 하면 기존에 의미있는 직업 의미 부여에 대해서 희미해 질수도 있는데 어떻게 그 동기부여를 하나?우린 직원이 2,000명이다. 이게 계약직이라 1년 단위로 한다. 그래서 1천명을 깔고 간다. 우리는 중소기업도 아닌 영세상인이다. 그 분들이 개념이 딱히 없다. 사람들 옆에 보고 봉급 얼마 받아? 조금 더 줄게. 애사심을 가질만하면 누군가가 꼬시고 꼬심을 당하면 가는거다. 왜냐하면 목구멍이 포도청이니깐. 그래서 우리 회사에 대한 이미지가 그만큼 없는거다. 내가 어느 회사 소속이 어디인지 모르면서도 그냥 돈 좀 더 주니깐 다른데 가는거다. 다음날 출근을 안해버린다. 그러면 중간 관리자가 참 힘들어진다. 우리는 가족 같은 분위기가 많은 것 같다. 우리는 만원 더 준다고 가지말고 만원 안준다고 뺏지말고 어머니가 좋은 일 하세요. 궂은 일을 내가 다할게. 근데 중간 관리자들이 나보고 뭐라한다. 혼내셔야되는데 왜케 안 혼내시냐고. Q. 지금은 어느 것을 목표로 하고 계신지? 너 이제 먹고 살만한데 왜 이렇게 사냐. 등록금만 내면 졸업장 줘. 뭘 그렇게 야간대학 다니면서 해. 라고 한다. 내가 대학 4년 다니니깐 푸는게 너무 어렵더라. 첫 중간고사는 백지를 냈다. 아 그럴려면 책을 읽어야되고 그럼 많이 써야하고 이런게 늦은 나이에 깨달을려고 하니깐 힘들더라. 3~4년전에 사람 만나기 시작했다. 그때 대학 다니면서 직원들이 많이 놀랐다. 왜 남들에게 흠과 치부를 드러내면서 얘기를 하냐고. 나는 내가 다른 사람들에게 이렇게 함으로써 20대때 실패할 수 있다. 20대때 자빠질 수 있다. 넘어져도 다시 일어설 수 있다. 이불 뒤짚어쓰고 울었니? 나는 울음이 안나오더라. 그럴 수 있다. 용기내서 살아라. 어느 누군가에게 나의 아픔이 똑같이 전이가 되서 그 사람에게 용기를 주고 싶었다. 당신이 성장해야 올바른 아이를 키울 수 있다. 모성애는 대단하다. 몸이 아프면 병원에 가면 되. 누가 나를 뇌종양으로 보겠니. 나도 내가 이걸 말하고 다니니 치유가 되더라. 한 사람이라도 살려주고 내가 죽더라도 내가 태어난 이유가 있으니 그 이유에 하나가 되지 않을까 생각한다. 몇년 전 대학생들이랑 대학 다닐 때 느꼈던 게 아 정말 젊은이들이 머리가 잘 돌아가구나. 이해가 안되는게 많았다. 대학생들한테 배운게 나이 많은 사람들이 젊은 사람들한테 못한다고 얘기한다. 내것이 아닌 것 같으니깐 스쳐가는 바람이라고 생각한다. 니가 나보다 더 살았어?라고들 한다. 근데 대학생들이랑 같이 있다보니깐 많이 변하게 되더라. 그렇게 보니깐 좀 더 젊게 사는 방법을 배웠던 것 같다.    Q. 사업에서 가장 중요한 건 뭐라고 생각하는지?초심을 잃지 않는 것이라고 생각한다. 항상 내가 이걸 처음 시작했을 때의 마음가짐을 생각해야된다.  건강한 강아지와의 특별한 만남, 페오펫'유리 진열장'이 아닌 '잔디밭'에서 특별하게 시작하세요.#페오펫 #peopet #아이디어기업 #기업문화 #목표 #비전 #각오
조회수 2666

[SQL] 이탈고객의 재사용률 분석

저는 TLX에서 PM 과 Business Analyst로 일하고 있습니다. TLX의 서비스인 TLX Pass는 하나의 멤버십으로 여러가지 운동종목을 이용할 수 있는 서비스입니다.대부분 사람들이 운동이라는게 항상 심리적 부채로 가지고있고, 연초나 여름시즌을 앞두고 헬스장을 등록하며 그 부채를 갚으려 합니다.TLX Pass 사용자들도 그러한 패턴이 있는지 분석하려고, 각 월별로 이탈한 사용자가, 어느시점에 다시 돌아오는지, 돌아오는 비율이 어느정도 되는지 분석해보았습니다.이 글에서는 SQL을 이용해서 이탈고객(churned user)에 대한 재사용률(return rate)을 분석하는 방법에 대해서 설명하려고 합니다.Part 1. 월별 churned user 리스트당월 churned user(이탈회원)의 정의를 다음과 같이 정합니다.- 전월 멤버십을 가진 사용자 중에서 당월 멤버십이 없는 사용자Churned user 리스트는 여집합의 형태로 당월 retained user (유지회원)을 우선 구하고, 전월 멤버십 회원 리스트에서 빼는 형태로 만듭니다.[1-a] 월별 멤버십 회원 리스트멤버십의 사용시작일과 종료일을 기준으로 user_id를 가져온다.아래 sql은 2016년 9월 멤버십 회원 리스트를 가져오는 query이다.//[QUERY 1-a] 월별 멤버십 회원 리스트 select memberships.user_id from memberships where left(date_start, 7) <= "2016-09" and left(date_end, 7) >= "2016-09"[1-b] 월별 유지회원 리스트[1-a 월별 멤버십 리스트]에서 구한 회원들을 대상으로 1개월 뒤에도 멤버십을 가진 사용자 리스트를 구합니다.아래는 2016년 9월에 멤버십을 가진 회원중에서, 2016년 10월에도 멤버십을 가지고 있는 회원의 user_id 를 가져오는 SQL입니다.//[QUERY 1-b] 월별 retained user 리스트 select current.user_id from memberships current where current.user_id IN ( [QUERY 1-a] ) and left(current.date_start, 7) <= "2016-10" and left(current.date_end, 7) >= "2016-10"[1-c] 월별 churned user 리스트여집합으로 구하기 위해 [1-a 월별 멤버십 리스트]와 [1-b 월별 유지회원 리스트] 리스트를 left join으로 합치면, 당월에 멤버십이 없는 회원은 future.user_id 값이 NULL 이 됩니다.아래와 같이 future.user_id가 NULL 인 것만 모으면 바로 churned user 리스트가 됩니다.//[QUERY 1-c] 월별 churend user 리스트 select distinct current.user_id from ( [QUERY 1-a] ) as current //전월 멤버십 회원 리스트 left join ( [QUERY 1-b) as future //당월 retained user 리스트 on current.user_id = future.user_id where future.user_id is null //당월 멤버십이 없는 조건[1-d] 월별 churned user 리스트를 temporary table 에 저장하기이제 churned user를 분석하기 위해서 위에서 구한 churned user 리스트를 query에서 계속 사용해야 한다. 이럴땐 with 구문이나 with 구문이 지원되지 않는 db라면 temporary table 로 저장해 두면 편리하기도 하고 query가 가벼워져서 데이터를 뽑는 속도도 좋아집니다.Temporary table (임시 테이블)- 임시로 db에 생성하는 table로, db connection이 끊어지면 자동으로 삭제됩니다.- 임시라는 것 외엔 테이블과 동일한 SQL을 이용하면 됩니다.아래는 [1-c 월별 churned user 리스트] query 결과를 oct_16_churned_user_ids 라는 임시 테이블에 넣는 SQL입니다.create temporary table oct_16_churned_user_ids ( user_id varchar(20) )insert into oct_16_churned_user_ids ( [QUERY 1-c] )// select * from oct_16_churned_user_idsPART2. Churned period 별로 return rate 분석하기churned user 를 대상으로, churned 시점보다 이후에 만들어진 멤버십을 멤버십 시작월 기준으로 그룹핑을 시킵니다.select date_format(membership.date_start, '%Y-%m') , count(distinct membership.user_id) from membership where user_id IN ( select * from oct_16_churned_user_ids ) left(membership.date_start, 7) > '2016-09' // churned 시점 이후 group by date_format(membership.date_start, '%Y-%m') // 멤버십 시작월로 그루핑이 데이터를 월별로 모아서, Excel의 pivot table을 이용하면,아래와 같이 월별로 churned user가 언제 다시 돌아오는지, 돌아오는 비율은 어떻게 되는지 분석할 수 있습니다.데이터는 실제 데이터가 아님.뭔가 pivot table을 만드는 부분에서 휘리릭 끝내는 감이 있네요 ㅎㅎ코멘트를 언제나 환영입니다. :)#티엘엑스 #TLX #비즈니스애널리스트 #BA #BusinessAnalyst #업무 #꿀팁 #인사이트
조회수 994

KBS 분야별 업무소개 - 콘텐츠

이제는 ′콘텐츠관리′ 입니다 지원자의 혼동을 피하기 위하여, 먼저 종전에 ′사서′로 선발하던 직종이 올해부터 ′콘텐츠′ 로 바뀌었음을 알려 드립니다.기존의 사서직은 도서관 중심의 전문직종으로 인식되어 왔으나, 최근의 디지털 환경변화로 다양한 콘텐츠의 관리와 멀티-유즈 전문가로 자리잡고 있습니다.여러분이 대학에서 전공하는 문헌정보학도 각종 정보 수집과 리서치, 색인·초록, 데이터베이스, 정보검색, 시스템과 네트웍, 인터넷과 뉴미디어 등 체계적인 콘텐츠 관리와 활용에 관해서 심도 있게 연마하고 있는 것으로 알고 있습니다.KBS의 경우, 영상·음향자료의 디지털화와 제작관련정보(메타데이터) 등 콘텐츠 관리를 중심으로 업무가 급속히 발전하고 있습니다. KBS의 콘텐츠를 관리하고 멀티-유즈하는 이 직종에 우수한 인재의 소신 있는 지원을 바랍니다. 이제는 ′방송콘텐츠′ 입니다′방송콘텐츠′는 KBS의 콘텐츠를 관리하는 부서명이기도 하고, KBS의 가장 중요한 자산을 가리키기도 합니다. 그렇습니다. ′방송콘텐츠′는 여러분의 경력을 쌓아가는데 가장 든든한 종잣돈이 되어 줄 것입니다. 이만한 데가 어디에 또 있을까요?"디지털이다!" "콘텐츠다!" 많이 들어보셨지요? 간단히 말해서 방송사에서는 ′방송콘텐츠′이고, 국가적으로는 영상산업의 중추입니다. KBS는 300만개에 달하는 다양한 콘텐츠가 있습니다. 특히 50만여개의 영상 테입은 국내 최대의 방송영상 라이브러리를 구성하고 있습니다. 최근 KBS가 ′전사적 자원관리(ERP)′를 구축하고 있지만, 역시 가장 중요한 자원(리소스)이자 자산은 방송콘텐츠임을 부인할 수 없습니다 이에 따라 KBS는 국내방송사 최초로 ′멀티미디어 방송정보 검색시스템(MMIS)′을 구축하였고, 현재는 기존 아날로그 영상자료의 MPEG-2 디지털화와 저작권 등 ′콘텐츠 자산관리(CMS)′를 연계하여 ′디지털 아카이브 시스템(DAS)′을 구축하고 있습니다. 디지털 아카이브 시스템은 디지털 뉴스룸 등 디지털 방송제작 시스템과 통합되어, KBS가 우리나라 디지털방송을 선도하는 기반이 되어줄 것입니다.지상파·위성·라디오·인터넷·데이터방송·모바일 등 다양한 채널을 통해 KBS의 콘텐츠가 송출되고 있습니다. 그 배경에는 기자와 PD 등 타 직종과 함께 하모니를 이루는 약 50명의 콘텐츠 관리자가 항상 함께 합니다. 영상·사진·인물·음악·라디오(음향) ·리서치·도서정보 각팀에서 정성들여 관리한 콘텐츠가 제작에 활용, 다양한 경로로 방송되어질 때 콘텐츠 관리자는 보람을 느낍니다. ′21C의 콘텐츠 전문가′ 를 부릅니다.KBS가 디지털 시대의 젊은 콘텐츠 관리자를 부릅니다. 방대한 콘텐츠의 재가공으로 부가가치를 창출하고, 이를 수신료와 광고수입에 이은 제3의 수익원, 아니 방송사의 제1의 수익원으로 전환할 야심찬 젊은 인재를 부릅니다. 아날로그 자료를 디지털 콘텐츠로 변환, 디지털 방송제작에 기여하고 저작권 등의 메타데이터를 통해 콘텐츠 자산으로써 관리할 ′21C의 콘텐츠 전문가′를 부릅니다.자, 이제 여러분이 부름에 응할 차례입니다.#한국방송공사 #KBS #KBS공채 #직무정보 #직무소개
조회수 5027

카페24 접속통계 기능,  GA처럼 활용하기<1>

 카페24 솔루션으로 구축된 온라인 쇼핑몰에서는 기본적으로 카페24가 제공하는 '접속통계' 시스템을 사용할 수 있다. 접속통계를 통해 웹사이트에 방문한 고객수와 방문까지의 고객 경로 및 광고로 유입된 고객수 등 다양한 정보를 알 수 있고 이를 활용해 쇼핑몰 사업에 필수적인 온라인 마케팅 전략도 수립할 수 있다.카페24 접속통계 메인 화면 무엇보다 회사가 보유한 개발인력이 없어 구글애널리틱스 같은 표준적인 웹 로그분석도구를 얹히지 못하는 상황이라면 카페24의 접속통계 기능은 쇼핑몰이 자리잡을 때까지 꽤 중요한 지침이 될 것이다. 오히려 기술 사대주의에 빠져 구글애널리틱스만을 고집하다가는 임대형 쇼핑몰 구조에 맞지 않은 분석 스크립트를 무리해 적용하였다가 되려 시스템적 오류만 가중시키는 악수를 둘 수 있다. 카페24를 사용하는 온라인 몰이라면 서드파티 분석도구를 적용할 때엔 항시 주의가 요구된다. 그렇다면 이러한 제약이 따르는 상황에서 어떻게 글 제목처럼 카페24를 GA(google analytics 약칭)처럼 활용할 수 있을까? 먼저 그전에 알아두어야 할 것은 카페24의 통계시스템은 업계 표준에 맞춰진 데이터를 제공하기 때문에 구글애널리틱스만큼의 확장성을 갖추고 있진 않다는 점이다. 다차원적 데이터를 제공하지 않을 뿐더러 사용자가 원하는 정보만을 추출해 맞춤형 보고서를 생성할 수 있는 기능 또한 제공하지 않는다. 즉 유저 친화적이지 않고 많은 제약이 따르지만, 일부 핵심기능을 잘 이해하고 활용하면 구글애널리틱스 없이도 탄탄한 데이터 기반의 사업전략을 세울 수 있다는 점을 생각하고 읽어주셨으면 한다. 그 첫 번째로는,1. <광고효과분석> 기능 구글 검색창에 '구글애널리틱스' 키워드로 검색하면 'google analytics 추적코드', '구글 방문자 추적' 등의 연관검색어가 상위에 있는 걸 항상 볼 수 있다. 이는 많은 이가 구글애널리틱스를 통해 가장 알고 싶어하는 정보값 중 하나로 웹사이트 방문자가 어디에서 유입됐는가를 꼽는단 방증이다. 무엇보다 사업전략을 세워야 하는 마케터라면 자신이 집행한 광고를 통해 몇 명이 방문하였고 그들 중 몇 명이 구매까지 완료했으며 총 구매액은 얼마나 되는지에 대한 정보를 꾀고 있어야 한다. 구글애널리틱스에선 너무나도 유명한 utm parameter라고 하는 추적코드의 개념이 있어 광고의 도착(Landing)URL-광고를 클릭했을 때 주소창에 뜨는 URL-에 알맞은 매개변수값을 생성하여 삽입하면 모든 광고 트래픽에 대한 정보를 구글애널리틱스로 추적하는 것이 가능하다. 카페24 접속통계에서도 '광고효과분석'이란, 구글애널리틱스의 utm parameter와 비슷한, 기능을 제공한다. 먼저 광고효과분석 기능을 활용하기 위해선 구글애널리틱스에서 사용자가 utm parameter를 생성하는 것과 마찬가지로, 집행할 광고매체에 대한 정보를 카페24 광고효과분석 시스템이 읽어들일 수 있게 특정 매개변수값으로 정의하는 작업을 선행해야 한다. 이는 접속통계 화면 맨 하단 '환경설정' 카테고리에서 '광고매체 설정'으로 들어가 '사용자 광고 추가' 기능을 사용하면 작업할 수 있다. 사용자 광고 추가 화면에서 먼저 '그룹추가'를 통해 '광고그룹'을 생성하고, 그 다음 광고그룹의 하위 수준으로 '광고명'과 '광고코드'를 생성한다. 이때 광고그룹은 매체별로 구분하는 것이 좋다. 예를 들어 페이스북/인스타그램/구글네트워크광고/모비온과 같은 형식으로 구분해놓으면 관리하기 용이하다. 광고그룹을 생성한 뒤에야 그 안에 포함될 광고명을 추가할 수 있는데 광고명에는 되도록 각 매체별로 집행될 광고에 대한 자세한 정보를 넣어주는 게 좋다. 만약 당신이 생성한 '구글네트워크광고' 광고그룹의 하위로 광고명을 생성한다고 하면 광고명을 '관심사타기팅_1824남성_광고소재1'과 같이 기입하는 식이다.하단의 광고매체 설정에서 추적URL을 생성할 수 있다 여기까진 카페24 보고서상에 보여질 정보를 기입하는 단계였다면, 그 다음엔 본격적으로 광고 도착URL에 함께 삽입할 추적코드를 사용자가 할당해야 하는 작업이 남았다. 추적코드는 구글애널리틱스처럼 source/medium/campaign에 대한 값을 넣어야 한다는 규칙이 존재하진 않고 사용자가 임의로 규칙을 만들어 기입하면 된다. 반드시 영문으로만 작성해야 하며, 앞선 예시대로라면 'gdn(구글디스플레이네트워크)_int(관심사타기팅)_1824m(1824남성)_type1(광고소재1)'과 같이 작성하는 식이다. 단, 코드 생성 시 글자수 제한이 있어 자칫 코드값이 너무 길어지지 않게끔 주의가 필요하다. 여기까지의 스텝을 완료하면 아래 그림처럼 사용자 URL을 기입할 수 있는 공란이 생성된다. 사용자 URL에는 광고로 고객을 유입시킬 기본 도착 페이지 주소를 복사해 붙여넣고 그림상 맨 오른쪽 하단에 있는 'URL생성' 버튼을 누르면 카페24 광고분석용 추적 URL이 비로소 완성된다. 이같은 카페24 추적URL에는 기본적으로 URL 뒷부분에 "/?cafe_mkt=ue"와 같은 형태의 문자열이 붙는 것이 특징이다.광고명과 광고코드를 생성하면 비로소 추적URL을 만들 수 있는 기능이 열린다해당 기능을 통해 생성된 URL이 'www.bm.co.kr/?cafe24_mkt_ue_gdn_int_1824m_type1'이라 하면 이제 이것을 광고 도착URL로 삽입하고 광고를 라이브하면, 이후 카페24 접속통계 시스템에서 자동적으로 구글네트워크광고를 클릭하여 유입된 고객을 분류하고 이들의 구매 패턴을 분석해준다. 앞선 분석을 위한 준비단계를 거친 뒤 광고를 일정기간 라이브했다면 이제 접속통계에 있는 광고효과분석 기능을 활용해보자. 광고효과분석 카테고리에서 '광고별분석'을 보면 집행한 각 매체의 광고를 통해 얼마의 인원이 유입되고 있고 그것이 실질적으로 얼만큼의 매출로 이어지고 있는지에 대한 지표를 보여준다. 이를 통해 광고 개별 단위의 광고수익률이나 전환율과 같은 중요한 지표를 도출할 수 있다.  아래 그림은 광고별분석에서 보여주는 실제화면으로 현재 내가 일 단위로 보고 있는 실제 데이터이다. 첫 행의 정보값을 해석해보면 "구글네트워크광고의 맞춤의도 25세~34세 타기팅 광고를 통해서 104명이 방문했지만 1건의 구매도 발생하지 않았다는 뜻"이다.  매출이 발생하지 않았기에 좀더 다른 컬럼값에 대해 첨언하면 '구매율'은 일반적인 구매전환율(방문대비 구매수 비율)을 의미하고 '구매당매출'은 흔히 말하는 객단가, 즉 1인당 평균지출금액 의미에 가깝다고 보면 된다.카페24 접속통계 내 광고별분석 실제 화면 여기까지 카페24에서 제공하는 광고효과분석 기능을 알아보았다. 만약 지금 카페24 솔루션을 사용 중인 쇼핑몰이고 웹 로그분석 작업이 필요한데 또 딱히 그에 대한 목적이 분명치 않은 상황이라면 우선 카페24의 광고효과분석 기능부터 활용해보는 것은 어떨까? 이를 통해 웬만한 매체에서 유입되는 트래픽 정보를 추적할 수 있으니 사업적 통찰력을 기르는데 더할나위 없는 도움을 줄 것이라 믿어 의심치 않는다. 다음 2편에서 카페24와 관련된 어떤 주제를 다루게 될 지 모르겠지만 이번과 마찬가지로 구글애널리틱스를 사용하지 못하는, 기술적으로 영세한, 상황에서 유용하게 쓸 수 있는 팁을 소개할 수 있도록 고민해보겠다. 혹은 임대형 쇼핑몰을 사용하는 입장에서,  구글애널리틱스의 분석 모델이 갖는 한계점 또한 역설하려고도 한다.(끝)Jin Young Choi회사원
조회수 2594

콘텐츠+커머스를 '대만'에 들고간 준호씨

그간 우리에게 가장 큰 피해를 끼친 말은'지금껏 항상 그렇게 했어'라는 말이다-그레이스 호퍼-콘텐츠에 재미를 느끼면서 달려왔다. 각기 다양한 사람들의 반응과 피드백을 즐기며 살펴봤다.사람들의 라이프스타일을 들여다보니, 삶의 질을 높이는 방법이 보였다. 삶에 '킥'을 주는 상품으로, 커머스를 가미하니 너무 재미있다.지금껏 블랭크는 이렇게 재미 위에 능동적으로 성장해왔다. 콘텐츠로 하여금 사람들의 삶과 반응을 엿볼 수 있었다.그런데, 이 사람들은 비단 대한민국에만 있는 것이 아닐 것. "사는 국가는 달라도 사는 행위는 존재한다" 글로벌에도 우리의 솔루션을 전파할 수 있는 수 많은 기회가 있다고 생각했다. 이를 몸소 체험하고 실험하고 검증해보고자 블랭크는 글로벌도 함께 바라본다. "아니 설립하진 3년도 안됐자나" "왜 이렇게 서둘러" "다른 곳도 다 그랬어 천천히 생각해" 다양한 조언이 맴돌지만, 사실 그 어디에도 룰은 없다. 항상 해오던대로만 한다면 재미가 있을까? 블랭크는 언제나 빠르게 부딪히고 실험하고 싶다. 블랭크는 대만법인을 헤드쿼터로 대만, 홍콩, 싱가포르 지역에서 '콘텐츠+커머스'를 검증해보고자 진출했다. 블랭크코퍼레이션, 대만법인 설립… 중화권 공략 본격화종합 라이프스타일 기업 블랭크코퍼레이션이 대만법인을 설립했다고 1일 밝혔다. 블랭크코퍼레이션은 대만법인 설립을 마치고 지역별 사업을 준비해 연내 소비자거래(B2C)에 돌입한다. 대만법인은 대만, 홍콩, 싱가포르 등news.naver.com  대만은 어떤 시장일까? 홍콩과 싱가포르는 대한민국과 어떻게 다를까? 현지 비즈니스의 초반 전략은 무엇이고, 어떤 쟁점이 있었을까? 해외검증에 나선 블랭크코퍼레이션 박준호 프로와 티타임을  갖고 이야기를 나눴다. 블랭크코퍼레이션 박준호 프로Jason KH : 준호님은 중화권에서 비즈니스 경험이 많으시죠?박준호 : 어쩌다보니..  블랭크에 오기 전 회사에서 중국, 대만에서의 경험이 조금! 있습니다.또 블랭크에서도 새로운 경험들을 써내려 가는 중이고요~ Jason KH : 블랭크에서 준호님이 맡은 분야와 영역은 무엇인가요? 박준호 : 블랭크의 사고방식으로 설명드리자면, 우리의 비즈니스 모델이 해외에서도 통할 수 있는지 ‘가설’을 설정하고 이것을 '입증'하는 것이 블랭크에서 저의 가장 큰 미션이에요. 입증해야 하는 ‘가설’들에는 '해외 마케팅 구축', '해외 유통 구축'과 같이 해외시장 진출 시 당연히 필요한 기반적인 영역부터 우리 회사의 콘텐츠가 먹힐까? 대한민국에서 성공사례를 남긴 상품들의 현지 시장 경쟁력은?  그리고 조금은 많이 특별한 블랭크코퍼레이션의 조직문화, 업무환경이 이식될 수 있을까? 등등 다양한 물음들이 있습니다.이 가설들을 차근차근 글로벌에서 검증해보고 입증하고자 합니다. Jason KH : 블랭크코퍼레이션의 핵심 비즈니스는 ‘콘텐츠’와 ‘커머스’의 융합인데요. 새로운 시도이자 괜찮은 융합사례다 보니, 아직 한국에서도 더 확장 가능성이 있다고 여겨집니다. 준호님 근데 왜 이 시점에 우리는 서둘러서 대만과 홍콩, 싱가포르로 진출했을까요?박준호 : 물론 한국에서의 발전 가능성은 여전히 높고, 확장할 수 있는 영역도 무궁무진하다고 생각합니다. 우리의 세계관이라고 하면 일단 커머스가 있고요. 커머스 속에는 물건을 구매하는 고객들이 있어요. 세계는 넓고, 물건을 접하고 구매하고자 하는 고객들은 각 대륙에 있는데, 굳이 블랭크의 가능성을 한국으로만 제한할 필요는 없잖아요?무엇보다 가장 중요한 것은, 전 블랭크의 이러한 융합 커머스 방식이 해외에서도 먹힌다는 강한 확신이 있었어요. 전세계 그 어떤 나라도 이제는 모바일과 모바일플랫폼, 콘텐츠공급 환경을 갖췄기 때문이죠. 더 나중에 진출하거나, 시간을 필요로 하다거나..그런것 보다는 빨리 몸으로 부딪혀보고 싶었습니다. 실무자가 명확한 논리와 검증해야할 가설이 있다면, 이를 뒷받침해주고 지원하는 것이 블랭크니까요. 그래서 아주 후다다닥 정신없이 준비하고 진행하고 있습니다.대만, 홍콩, 싱가포르를 먼저 진행하게 된 이유는요.첫 해외 진출은 ‘도전, 시도, 경험’도 물론 유의미하지만 이왕이면 ‘성공 사례’를 만드는 것이 중요하다고 생각했어요.  한 번 성공 경험을 맛본 회사들이 분위기를 타고 승승장구 하는 경우가 많은데, 이런 좋은 흐름을 글로벌에서도 만들어보고 싶기도 했구요. 그러다보니, ‘성공 가능성’ 측면에서 가능성이 비교적 높다고 판단되는 곳들을 우선적으로 선택하였고, 그게 대만, 홍콩, 싱가포르 였습니다. Jason KH : 그렇다면 '성공 가능성' 측면에서 대만, 홍콩, 싱가포르 각 지역은 어떠한 요건을 갖췄는지, 각각 어떤 시장이며 수치와 규모, 문화 등등 궁금한 부분이 많아요. 먼저 대만은 어떤 시장이에요? 대만의 특징이 있을까요?  박준호 : 대만은 많은 기업들이 중국과의 가교 혹은 동남아 진출의 교두보로 많이들 생각하시는 시장인데요. 실제로는 중국 시장 진출과는 큰 관계가 없다고 보여집니다. 동남아로의 진출 측면도 인접한 말레이시아 정도를 제외하면 교두보로써 큰 영향력이 없다는 판단입니다. 대만은 독립된 시장으로 보는 편이 좋겠습니다.인구는 한국의 절반 정도, 직장인들의 소득은 한국보다 낮지만 모바일 보급률과 활용률 측면에서 상당히 진보된 지역입니다. 실제 모바일 게임 이용규모나 콘텐츠 결제 규모도 큰 나라고요.블랭크코퍼레이션 대만법인이 서비스를 시작한지 2개월 남짓 밖에는 되지 않았는데요. 초반성과는 상당히 고무적입니다. 특히 '바디럽' 같은 라이프스타일 브랜드는 대만의 주요 커머스 업체들 대부분이 판매해보고 싶다고 연락이 오기도 했고요. '마약베개'는 이미 이미테이션 제품이 많이 출시되고 있을 정도 입니다.초반 시장에서 긍정적인 반응이 따르다보니, 블랭크 대만 법인의 물류를 도와주는 회사의 경우 ‘시작하자마자 이렇게 파는 경우가 어딨냐’라며, 저희 제품을 포장해 주시는 인력을 급하게 늘린 에피소드도 있습니다.Jason KH : 나라는 달라도, 일상에 도움이 되는 상품에 대한 니즈는 어디든 비슷하네요. 이어서 홍콩과 싱가포르도 설명해주세요.박준호 : 홍콩은 사실 e커머스를 하기에 만만한 시장은 아니에요. 우리가 홍콩을 생각했을 때 주로 떠올리는 이미지 중에는 분명 ‘쇼핑’이 있잖아요. 그만큼 쇼핑몰과 같은 오프라인 유통망이 발달된 지역이고, ‘몰링’을 여가 활동으로 생각하는 현지인들이 많을 정도로 탄탄한 오프라인 기반을 갖추고 있습니다.그리고 홍콩을 여행해보신 분들도 많으시겠지만 큰 길이 많지 않잖아요?좁은 길에 높은 건물들은 많고요.. 그렇다보니, 한국처럼 물류서비스(택배)가 잘 구현되기 어렵고, 또 잘 마련되어 있지도 않습니다. 물류 비용은 상당히 비싸고, 집까지 배달하게 되면 기존 택배비 외에 3,000원 가량의 추가요금도 내야 하고요.그리고 일단 물가가 만만치 않아요. 다른 제반비용들도 모두 비싼 곳입니다."그럼에도 블랭크의 비즈니스 모델은 작동한다고 보고 있어요"제가 겪은 좀 험난한 에피소드인데, 현지에서 결제를 도와주는 PG사에서 ‘인지도가 없는 외국회사'가 → ‘처음 보는 브랜드'를 → 그것도 ‘몇 가지 종류밖에 없이’ 판매를 진행하는데, '너무 많이 팔아서' → 이것을 ‘비정상적인 거래’로 보고 → 서비스를 중단했든요이 정도면 블랭크의 모델이 작동한다고 봐도 되겠죠? ㅎㅎ싱가포르도 대만보다는 홍콩과 유사한 환경입니다. 여긴 10월부터 본격적인 준비에 들어갔고 판매를 시작할 예정이라, 아직은 드릴만한 이야기들이 많진 않습니다만, 홍콩에서의 짧은 경험과 사례를 잘 참고해서 진행해보고자 합니다. 유의미한 인사이트와 에피소드가 있으면 공유 드릴께요. Jason KH : 이야기 들으니, 현지에서 어마어마한 고생을...준호님 비즈니스를 시작해보니 실제 계획 잡으셨던 것과 비슷하던가요? 아니라면 확연히 생각과 달랐던 경우, 혹은 사례가 있을까요? 박준호 : 당초 계획과 비슷한 부분은 전체적인 맥락이라고 보여집니다. 블랭크의 방식이 이런 부분은 될 것 같고, 이런 부분은 개선해가면서 해야겠구나의 정도의 예상은 비슷하게 가고 있는 것 같아요. 다만!! 좀 더 디테일한 부분으로 들어가면 예상도 못한 문제들이 마구마구 터져나오죠.대만의 아주 높은 CS에 대한 수요라든가 (이 부분은 설명을 생략하고 싶습니다…)각 국가의 법규나 행정적인 부분의 높은 허들이 갑자기 튀어나올 때도 있구요.그래도 이런 부분은 어떻게든 해결이 가능한 부분들이라고 생각합니다.가장 중요한 항목인 '블랭크의 방식이 작동하는지' 여부에서는 큰 탈 없이 진행 중인 것 같습니다.Jason KH : 결국 우리 모델과 방식은 먹혀들어가는데, 제반에 있어 예기치 못한 이슈가 있군요. 지난번 말씀해주셨던 대만의 CS수요는 아무래도 제품에 대한 지독한 관심과 호기심, 기대에 못 미칠 시 발생하는 컴플레인인 것 같아요. 무엇보다, 한국보다 낮은 소득수준 등을 고려했을때 아무리 팬시한 제품이라도 체감하는 비용이 다르기에, 제품에 대한 소비자 관여도가 한국보다 높을 수도 있을 것 같고요. 결국 '현지화'에 따르는 부분이라 보여집니다. 준호님 예전에 저랑 이야기 나누실 때, 대만, 홍콩을 국가라고 표현하는 것보다 지역으로 표기하는 것을 추천해주셨는데요. 이해할 수 있는 히스토리 혹은 특별한 이유가 있을까요? 박준호 : 홍콩의 행정구역상의 명칭은 ‘중화인민국공화국 홍콩특별행정구’입니다. 중국에 속한 하나의 행정구역이니, 국가라고 표기하기엔 어폐가 있었어요. 대만 같은 경우엔 역사적으로 좀 민감한 부분이기도 하고요.  해당 국가나 지역에서 비즈니스를 하려면 현지와 현지인들의 문화, 감성에 대한 부분도 인지하고 있어야, 리스크를 관리할 수 있어서 사전에 조심하는게 좋을 것 같아 말씀드려봤어요!Jason KH : 덕분에 많은 참고가 됐어요. 감사합니다. 준호님 제가 여행하면서 실제 보고 느끼기도 했지만, 싱가포르는 경제지수도 상당히 높고, 선진국 대열에 있다고 보여져요. 혹시 싱가포르에서의 실험과 검증은, 소득수준이 높은 다른 국가에서도 먹힐 수 있다는 가설을 세워볼 수 있을까요? 박준호 : 음…. 검증을 하고 있는 가설 중 ‘상품의 경쟁력’에 대한 부분이 있습니다. 이는 상품 자체의 경쟁력 + 가격 경쟁력을 포함한 개념인데요. 현재 싱가포르를 미국과 같이 소득수준이 높은 국가와 비슷한 선상에 놓고 실험하지는 않고 있습니다.싱가포르는, 1인당 GDP가 USD 6만이 넘고, 세계 9위 수준의 분명 경제 선진국이에요.자동차를 운전하기 위해 반드시 필요한 운행증명서(COE)를 경매로 구매해야 하는데,이 증명서 한 장이 한화로 따지면 소형차 기준 3500만 원이나 하는데요. 그럼에도 불구하고 길에 차들이 가득한 걸 보면.. 확실히 소득수준도 높은 나라고요.다만, 코트라 국가정보 > 싱가포르 > ‘싱가포르 수출 시 애로사항’을 참고해보면‘이미 싱가포르에는 중국, 동남아시아 산 제품들이 시장에 많이 들어온 상태이기 때문에 한국업체가 이들과 가격으로 경쟁하는 것은 쉽지 않다’라는 선경험 인사이트를 제시합니다.따라서 가격 경쟁력은 천차만별일거 같아요. 게다가, 싱가포르는 화교 인구가 75% 이상인 국가이고, 화교 중에서도 장사 잘하는 광동성과 복건성 출신이 80%이며, 싱가포르 주변 국가들은 대게 물가가 저렴한 동남아시아 국가들이죠. 대부분의 상품 관세가 0%이기도 하고요. 이렇듯 환경 자체가 많이 다르기 때문에, 다른 경제 선진국들을 생각하면서 쉐도우 복싱을 하기에는 적당한 국가가 아니라는 판단입니다. Jason KH : 싱가포르를 좀 더 이해할 수 있는 대목이네요. 결국 경제수준 외에도 고려해야할 다양한 이해사항과 주변국과의 교류 사정도 잘 파악해야 한다는 생각이 듭니다. 미국과 같은 선진국을 대상으로 비즈니스를 한다면 또 다른 요인과 가설로 접근해야겠고요.  준호님, 블랭크의 각 현지법인 소개 좀 부탁드릴께요. 어떤 구성원들을 만나셨고 어떤 특징이 있나요? 박준호 : 우선 대만 법인은 대만-홍콩-싱가포르의 헤드쿼터 역할을 수행하는 법인입니다.현재 17명의 직원이 근무하고 있고, 국적은 대만인 12명, 홍콩인 4명, 싱가포르인 1명으로 다국적 기업이 되었습니다 ㅎㅎ 대만법인의 주요한 특징은 싱가포르와 홍콩을 대상으로 한 '콘텐츠 수급', '마케팅', '온라인CS'까지 담당한다는 점이고요. 블랭크코퍼레이션 대만법인대만에서는 저희 대광님이 아이디어를 주셨는데, 아주 재미있는 시도를 해보고자 합니다. (오랜 시간 지나지 않아 보실 수 있을거에요^^) 또 오프라인에서의 경험을 온라인으로 전이시키기 위한 '오프라인 체험관 운영' 등 다양한 실험이 함께 이루어질 예정이고요. 테스트베드가 용이한 지역으로 바라보고 있어요.오프라인 체험관도 기존 방식과는 다르게 대만스러운(?) 재밌는 곳에 자리잡을 예정입니다.특이하죠? 보통은 홍콩이나 싱가포르를 헤드쿼터로 두는데…  하지만 이 구조는 블랭크 해외법인의 회계 관련 컨설팅을 도와주시는 파트너사에서도 정말 훌륭한 구조라고 말씀하실만큼 많은 시너지를 낼 수 있는 구조랍니다.  대만법인이 생각하는 방향대로 완성된다면 약 100~200명 규모가 될 듯 한데...아...잘 되겠죠? 홍콩과 싱가포르는 현재는 미니 오피스 개념이에요. 현지에 꼭 필요한 오퍼레이팅 인력을 두고 운영하고 있어요. 향후, 각 해외 법인들이 현지화된 상품기획 혹은 소싱까지 그 역할을 수행할 수 있기 전까지는, 대만법인을 헤드쿼터로! 각 현지법인은 오퍼레이팅 오피스로! 현 구조를 유지할 생각입니다.Jason KH : 대만법인에서 다양한 비즈니스를 많이 진행하게 되겠네요. 대광님 아이디어 궁금하네요. 홍콩이랑 싱가포르의 미니오피스는 어떻게 꾸리셨어요? 박준호 : 대만은 법인사무실을 구성했고요. 홍콩과 싱가포르는 미니오피스 개념의 소규모 법인이라 '위워크(We work)'에 둥지를 틀었습니다. 작은 규모의 오피스를 운영할 때는 '공유 오피스'가 참 좋은 것 같아요.그런데, 공유 오피스에 입점했다는 점과 소규모 미니 오피스라는 점으로 인해, 현지 PG사와 은행으로 하여금 낮은 신용도를 부여받게끔 하는 그런 예상치못한 이슈가 있었어요.   하지만, 위워크! 효율이 좋은 공간임에는 틀림없는 것 같습니다.물론, 오래지나지 않아 저희만의 공간이 필요할 만큼의 규모가 커질 것으로 예상하고 있어서 그때는 공유오피스를 떠날 계획입니다.Jason KH : 지금 이야기 나누고 있는 세 개 지역이 한국 못지않게 모바일과 망 보급이 잘 되어있고, 이용률도 점차 증가되고 있는데요. 그래서 초반 모델 검증에도 수월함이 있을 듯 합니다. 혹시, 한국과는 전혀 다른 전략을 취하는 것도 있을까요? 박준호 : 의도한 바는 아니지만, 세 곳 모두 화교가 인구의 대부분인 지역들이에요. 사견으로 이러한 현지분들의 특징 중 하나는 ‘경제활동에 있어 다소 조심스럽고, 직접 확인하는 것을 좋아한다’라고 말씀 드리고 싶어요.중국의 타오바오나, 동남아 권의 Shopee, 싱가포르의 Q10이 빠르게 성장하는 것처럼 이 지역의 e커머스 시장은 급격하게 성장하고 있어요. 하지만 여전히 상품이나 판매자에 대한 신뢰도 문제가 e커머스에서 핸디캡이 되고 있습니다.그래서, 대만 지역에서는 ‘오프라인에서의 경험을 온라인으로 전이’시키면서  눈으로보고 만질 수 있는 요소로 신뢰도를 개선하는 테스트를 해보려고 기획 중이고요. 위에서 언급한 블랭크 제품 체험관이 한국과는 다른 전략의 예가 되겠네요.아까 넘치는 CS수요와 지독한 관심이라고 말씀 주셨죠? ㅎㅎ지금도 하루에 몇 분씩 고객들이 제품을 직접 확인하고 싶으시다며 회사 사무실로 불쑥 찾아오시는데, 이런 분들에게는 꼭 필요한 공간이 되지 않을까 생각됩니다.Jason KH : 한국과는 다른 점이 바로 그러한 현지인들의 시각과 문화라는 생각이 듭니다. 애초에 신뢰도를 바로 세우지 못한, 지난 중화권 지역의 과오에 대해서는 그들이 반성했으면 좋겠네요. 그나저나, 준호님 얼굴 보기가 힘들어요. 출장도 많으시고,,,, 현지 체류가 분기의 절반은 넘는 것 같아요. 어떤 고충이 있으실까요? 박준호 : 일단.. 체력적으로 조금 힘들 때가 있어요. 환경적으로나 체계가 이미 갖춰진 해외법인이 있을 때에는, 저에게 해외 출장은 즐거운 일 중 하나였어요. 업무 시간만 일을 하고 그 외엔 여행을 온 것처럼 지낼 수도 있었거든요.최근 3개월을 곱씹어 본다면, 3개월 동안 내내 해외 법인 3곳을 준비하면서 제반만 다졌는데요. 진출부터 서비스를 다지는 단계에서의 해외 현지 근무는 해외 출장과는 아주 많이 다르더라고요.예를 들면, 지난 주엔 홍콩에서 발생한 PG사 문제, 통관 문제 등 급한 일들을 서둘러 처리했고요. 오늘은 싱가포르에 와서 사무실을 계약하고, 채용 계약과 새 동료분에게 제공해야 하는 각종 보험계약 그리고 연금 계좌 개설을 했답니다. 대만법인 세팅, 손수 가구와 집기를 구매하고, 컴퓨터 설치도 직접!오히려 컴퓨터, 집기 등을 구매하는 시간이 한숨 돌리는 여유 시간이 됩니다. 전반적으로는 저도 처음해보는 일들이 많고 그래서 작은업무 하나에도 높은 집중을 발휘해야 하는 것 같아요.내일은 물류사 창고 실사, 물류 계약서 검토, 단가 산정 등을 두고 싱가포르 파트너사와 함께, '얼굴은 웃지만, 서로 긴장해야하는 시간'을 가져야 할 것 같아요. 또, 몸은 싱가포르에 있지만 대만, 홍콩에서 일이 생기지 않는 것은 아니니…*^^*분명한 사실은 한국에 있는 우리 동료들, 블랭커들이 많이 도와주지 않았다면, 체력적으로 정말 더 힘들었을 것 같아요. Jason KH : 그래도 추석 전에 준호님 얼굴도 보고 이렇게 긴 시간 티타임을 갖게되서 너무 좋네요. 예전에 준호님께서 사무실을 만들기 위해서 여기저기 답사하시다가 영화에서나 볼법한 철제 엘리베이터를 보여주셨었는데, 정말 새삼 다른 환경이구나 하고 느낀 적 있어요. 혹시 이런 것처럼 재미있는 에피소드가 있을까요? 박준호 : 대만에서는 하루에도 몇 분씩 사무실로 찾아오는 고객분들 관련한 에피소드가 많아요.어떤 분은 심지어 사무실 바닥에 베개를 놓고 누워보시기도 했고요.저희가 가짜를 파는 회사가 아니냐며, 회사 등기부등본을 가지고 오라는 분도 계셨고요.사실은 다 감사할 따름이죠. 홍콩에서는 워낙 고층 빌딩들이 다닥다닥 붙어있고, 쇼핑몰과 사무실이 혼재되어 있는 빌딩들이 많다보니, 미팅하러 가서 사무실을 못찾는 경우가 많아요. 이럴까봐, 아예 상대 회사에서 지하철역까지 나와서 에스코트 해주시는는 경우도 있었고요.싱가포르는 임대료가 비싸다보니 창고들이 말레이시아 국경 근처, 도서산간 같은 외진 곳에 많이 있더라구요. 대중교통도 잘 없어서 '그랩'을 이용해 찾아갔는데, 미팅을 마치고 보니 배터리가 없어 핸드폰이 꺼져있더라고요. 지나가는 아저씨의 핸드폰으로 '그랩'을 잠시 빌려쓴 뒤, 차를 기다리는데…시골 같은 곳에서, 짠 매실이 들어간 음료를 들고, 말레이시아어 노래를 들으면서 쭈그리고 앉아있는 제 상황이 너무 비현실적인 느낌이 들어 웃음만 나왔던 기억이 있습니다. 핸드폰 빌려주신 아저씨께 다시 한 번 감사한 마음이 물씬 드네요. 마약베개 선물 드려야겠어요. 싱가포르의 창고지대Jason KH : 준호님 에피소드가 결국은 다 사람들이 함께 사는 세상이구나 하는 생각이 들게하네요. 마지막으로, 해외사업에서 앞으로의 비전이 있다면, 준호님이 그리는 그림이 있다면 어떤 것일까요? 우리 실현 가능성 따위는 제외하고, 한 번 이야기 나눠봐요. 박준호 : 저는 블랭크의 비즈니스 모델이 전 세계 모든 나라에서 작동할거라고 생각합니다!물론 일본처럼(일본이 블랭크 방식에 허들이 가장 많은 나라라고 생각합니다..)SNS를 사용하는 문화가 다르고, 상품 구매 시의 습관 등이 달라, 다른 지역보다는 더 많이 현지화에 공을 들여야겠지만, 제아무리 일본이라도 ‘이렇게 하면 되겠구나’라는 대안은 가지고 있습니다.이렇게 현지화가 필요한 부분들이 있겠지만, 결과적으로는 ‘정도의 차이’가 있을 뿐 대부분의 국가에서 블랭크의 방식이 작동할거라고 생각합니다.그리고, 현재는 해외시장이 단순히 블랭크의 제품을 판매하는 유통채널의 역할을 하는 것처럼 보이지만, 머지 않아 블랭크 해외법인들은 상품기획이나 소싱 그리고 생산에 이르기까지 더 많은 발전을 거듭하고,비즈니스에 기여하게 될 예정입니다.  조리기구가 발달한 중화권의 다양한 조리기구를 한국에 소개할 수도 있고, 태국의 천연 라텍스를 활용한 제품을 블랭크 미국 법인을 통해 북미에 팔 수도 있게 되겠죠! 이렇게 전 세계 다양한 지역의 제품들이 블랭크를 통해 새로운 소비자들을 찾을 수 있게 되고 소비자들의 삶을 변화시킬 수 있게 될 겁니다.그리고 세계 각지에서 유행하는 콘텐츠 포맷과 트렌드도 블랭크를 통해, 문화적 특수성은 재미있게 살리되 보편적인 가치는 함께 공유할 수 있도록 재탄생 될 수 있겠죠.이쯤되면 콘텐츠와 커머스의 융합뿐아니라 전 세계 다양한 사람들을 아우르는 하나의 거대한 플랫폼이나 유기적인 커뮤니티가 될 수 있지 않을까요? ###Jason KH커뮤니케이션    기획자

기업문화 엿볼 때, 더팀스

로그인

/