스토리 홈

인터뷰

피드

뉴스

조회수 1087

앱 데이터 분석 시 사용자 세그먼트의 필요성

사용자 세그먼트(USER SEGMENTATION)란? 모바일 분석 툴을 사용하면 앱 사용자에 대한 많은 정보를 얻을 수 있습니다. 하지만 방대한 데이터는 오히려 의사결정에 혼란을 일으킬 수 있어 비즈니스에 의미가 있는 데이터를 선별해서 보는 것이 중요합니다.‘사용자 세그먼트’란 데이터의 필터 기능으로, 1차 데이터를 하위 기준으로 분류해서 보는 것을 의미합니다. 예를 들어, 앱 서비스 사용자들을 성별, 연령, 국가, 플랫폼 별로 나누어서 보는 것도 세그먼트에 해당합니다. 이 기능을 이용하면 ‘우리 사용자는 누구인가?’ 에서 더 나아가, 앱 서비스의 충성고객, 구매고객, 이탈고객 각각의 특성을 파악하고 이에 맞는 비즈니스 전략을 만들 수 있습니다.아래 내용을 통해 앱분석 시 사용자 세그먼트의 방법과 필요성을 알아보겠습니다.사용자 세그먼트 적용하기사용자 세그먼트가 무엇인지 실제 데이터 분석 툴의 예시를 보며 자세히 알아보도록 하겠습니다. 모바일 분석 서비스 와이즈트래커(WISETRACKER)는 기본 세그먼트와 사용자 정의 세그먼트 기능을 제공하고 있습니다.기본 세그먼트기본세그먼트 기능을 통해 플랫폼, 성별, 연령대에 따라 데이터를 분류할 수 있습니다. 비즈니스에 따라 사용자 구분 시 중요한 지표가 있다면, 그것을 기본세그먼트 항목으로 추가하는 것도 가능합니다. 광고채널, 회원여부, 회원등급 등이 이에 해당합니다.[ 와이즈트래커 세그먼트 설정화면 – 필요한 세그먼트를 더블 클릭하거나, 오른쪽 상단의 ‘Drag Here’ 로 세그먼트 항목을 Drop하면 세그먼트가 적용됩니다. 여러가지 세그먼트를 동시에 적용할 수 있습니다 ]아래 데이터는 기본 세그먼트 중 연령대(20대, 30대, 40대) 세그먼트를 이용해 [신규방문 vs 재방문] 리포트 데이터를 하위 분석한 결과입니다.이를 통해 단순히 신규방문/재방문의 수치/비율 뿐 아니라, 각 방문 유형별 연령대 구성을 파악할 수 있습니다. 이 데이터를 통해 처음방문자의 경우, 20대와 30대의 수치가 비슷하게 나타나지만 반복방문자의 경우 30대의 비율이 20대보다 훨씬 높게 나타나, 앱 서비스가 20대보다 30대에게 지속적으로 어필되고 있다는 것을 확인할 수 있습니다.사용자 정의 세그먼트사용자 정의 세그먼트를 통해 기본적으로 제공되는 세그먼트를 조합해 비즈니스에 필요한 맞춤 세그먼트를 설정할 수 있습니다. 예를 들어, 앱 서비스의 주요 고객이 iOS를 사용하는 20~30대 여성이라면 아래와 같이 해당 속성값을 가지는 사용자 정의 세그먼트 ‘iOS_2030_여성’을 생성합니다.위에서 생성한 세그먼트를 위의 [신규방문 vs 재방문] 리포트에 적용하면 아래와 같은 데이터가 나타납니다.이처럼 사용자 정의 세그먼트를 이용하면 앱 사용자를 비즈니스에서 정의한 타겟 고객군과 잠재 고객군으로 분류하여 유의미한 사용자 그룹의 숫자를 파악할 수 있습니다.사용자 세그먼트의 필요성데이터 분석은 분석 자체가 목적이 아니라, 비즈니스의 성장과 목표 달성에 도움이 될 때 의미가 있습니다. 그럼 사용자 세그먼트는 비즈니스의 성장에 어떤 도움을 줄 수 있을까요?1. 의사결정에 필요한 데이터를 선별해 추출할 수 있다. 신규 고객을 위한 이벤트 기획 시, 신규 고객들의 성별, 나이, 플랫폼 등을 세그먼트 기능을 통해 파악할 수 있습니다. 만약, 아래 테이블처럼 신규 고객의 대다수가 20,30대 여성이라면, 이들의 흥미를 끌만한 이벤트를 기획해 이벤트 참여율을 높일 수 있습니다.[ 와이즈트래커 내 처음방문자 방문수 데이터에 연령_성별 사용자정의 세그먼트를 적용한 화면 ]2. 어떤 유저가 우리 비즈니스에 가장 유의미한지 파악할 수 있다. 앱 서비스의 핵심적인 유저는 앱을 주기적으로 방문하고, 구매 빈도/금액이 높은 사용자입니다. 이들의 특성을 세그먼트를 통해 파악하고, 이러한 데이터를 기반으로 해당 사용자들의 충성도와 구매율을 높이기 위한 프로모션을 진행할 수 있습니다.[ 와이즈트래커 내 1회 구매자 방문수 데이터에 여성들의 연령_플랫폼 사용자정의 세그먼트를 적용한 화면 ]3. 오디언스 타겟팅(AUDIENCE TARGETING)에 이용할 수 있다.세그먼트 기능을 통해 파악한 특정 사용자 그룹의 특성을 바탕으로 오디언스 타겟팅을 진행할 수 있습니다. 앱에서 한번도 상품을 구매하지 않은 비구매자 그룹의 특징을 파악했다면, 이를 기반으로 해당 그룹의 ADID/IDFA를 추출해 구매를 유도하는 푸시메시지 또는 광고를 노출할 수 있습니다.[ 와이즈트래커 오디언스 타겟팅 설정화면. 비구매자 그룹의 주요 특징이 회원인 40대 국내 남성이라면 이들의 ADID/IDFA를 추출해 구매를 유도하는 푸시메시지/광고 프로모션을 진행할 수 있다.]비즈니스 성장의 지름길 고객에 대한 이해도가 높을수록 비즈니스는 빠르게 성장합니다. 이 때문에 모바일 비즈니스에서 사용자 세그먼트를 통해 비즈니스 고객군 별 특성을 정확하게 파악하는 것은 선택이 아닌 필수입니다. 모바일 데이터 분석을 이제 시작했다면, 사용자 세그먼트 기능을 통해 데이터에 깊이를 더하고 비즈니스 성장에 핵심적인 데이터를 확인해보세요! * WISETRACKER는 모바일 광고 성과 측정부터 In-app 이용자/컨텐츠 분석, 푸시메시지 최적화까지 지원하는 모바일 통합 분석/타겟팅 솔루션입니다. 와이즈트래커 솔루션의 무료체험을 원하실 경우 여기를 클릭해주세요.* WISETRACKER가 제공하는 무료 데이터 분석 컨설팅를 원하신다면 여기를 클릭해주세요.#와이즈트래커 #앱마케팅 #마케터 #성과분석 #데이터분석 
조회수 1494

[가트너-제니퍼소프트 뉴스레터]APM의 진짜 가치 (Application Performance Management)

제니퍼소프트-가트너 뉴스레터 APM의 진짜 가치 (Real value of APM)Index. 1 page. APM의 진짜 가치 (Application Performance Management)5 page. 가트너 리서치: How to Move Analytics to Real Time10 page.  제니퍼소프트에 대해 가트너 리서치- How to Move Analytics to Real Time가트너 뉴스레터 다운로드 > JENNIFERSOFT Newsletter with Gartner research_Real Value of APM모바일 디바이스의 혁명 덕분에 인터넷의 세계는 10 년 전에 상상할 수 없었던 거래량과 서비스 속도를 경험하고 있습니다. 이러한 변화는 기업 IT 관리자가 시장 변화에 발 맞춰 웹 애플리케이션 성능을 관리하는 새로운 솔루션과 방법을 고려할 것을 요구합니다.  결과적으로 웹 애플리케이션 서버 (JAVA, .NET, PHP)의 모니터링이 점점 더 중요 해지고 있습니다. 최종 사용자와 백엔드 시스템 사이에 WAS (Web Application Server)가 있으므로 모든 트랜잭션이 WAS 영역을 통과합니다. WAS를  모니터링 하는 것은  확장 가능한 웹 애플리케이션 시스템을 구축하고 유지 관리하는 가장 효과적인 방법임이 입증되었습니다.Real-Time Transaction 모니터링과 분석은 JENNIFER의 핵심 기술입니다.  JENNIFER는 처음부터 끝까지 실시간 트랜잭션을 감지하고 트랙킹하는 유일한 APM 제품입니다.  Real-Time Active Service Monitoring은 (제니퍼의 독특한 기능 중 하나) 트랜잭션 상태를  초단위로 제공합니다. 이 기능을 사용하면 어떤 트랜잭션이 아직 처리되지 않았고, 어떤 사용자가 응답 지연을 겪고 있으며 어떤 SQL 쿼리가 현재 실행되고 있는지를 포함하여 트랜잭션 실행 상태에 대한 정보를 모니터링 할 수 있습니다.... 이하 생략... 리포트를 통해 더 많은  내용을 읽으실 수 있습니다. 
조회수 50

바로고 임직원들을 위한 비타민데이

진심을 채워 배송하는바로고대한민국을 달리는바로고 라이더배달 배송이 필요한 곳바로고가 있습니다.배달배달대행바로고입니닷!바로고는임직원을 위한특별한 '무언가'가마련되어 있습니다.오늘은 건강까지 생각한바로고 복지바로비타민 데이 입니다.바로고 임직원들을 위한 비타민데이[바로고 비타민데이]날씨가 점점 더워지고 있습니다.4계절이 뚜렷한 우리나라 날씨였는데이제는 여름이 조-오-금-마-아-니길어진 느낌이네요.5월인데 벌써 30도를 치솟고뜨거운 햇살이 눈이 부십니다.갑자기 더워진 날씨로지쳐있는 바로고 임직원을 위해오늘은 비타민데이를 준비하였습니다.취향에 따라 준비한하루건강견과블루베리 요거트오곡초코볼크랜베리 요거트배리앤요거트견과류에 비타민이 가미되어건강도 챙기고하루견과 한 봉지로기분도 UP! 좋아지는바로고 임직원들을 위한 비타민데이블루베리 요거트프로안토시아닌이 풍부한 블루베리신이 내린 보랏빛 선물이라고도 불리는 블루베리몸에도 좋고 정신건강에도 좋은슈퍼푸드 블루베리오곡초코볼한 줌씩만 챙겨 먹어도 건강해지는오곡초코볼 요거트크랜베리 요거트칼슘이 풍부한 새콤달콤한 크랜베리크랜베리는 프로안소시아닌 성분이 함유되어 있고폴리페놀이 다량 들어있어건강에 유익한 식품비타민 C와 칼슘까지 포함배리앤요거트태양의 보석 아몬드아몬드는 태양의 보석이라고 불릴 만큼비타민E의 함량이 높고각종 미네랄이 풍부하고불포화 지방산도 풍부하게 함유짠!한 봉지로는 안돼요.조금 더(?) 많이 먹으면왠지 더 건강해지는 느낌이랄까요.손이 자꾸만 가는고소한 견과류건강까지 챙기며업무 중에 잠시 즐기는비타민 데이 입니다~^^바쁘신 차장님은모니터에 눈을 뗄 수 없어요. 하루견과로 채워지는 비타민으로에너지 충전도 하시고더욱 힘내세요!!!언제나 파워풀 에너지로열정의 차장님!파이팅!멈출 수 없는 업무는여기서도 계속 됩니다.왼쪽에는 하루견과오른손은 거들 뿐역시 모니터에서 눈을 뗄 수 없어요.요즘 매우 바쁜 바로고모두들 힘내세요!두 가지 중무엇을 먹을까요?두 가지의 하루 견과로고민하는 바로고의 디자이너원래 가장 어렵다는 결정이점심 메뉴 고르기처럼아무것도 아닌 것에결정은 무엇으로?!?!결국 두 가지 모두비타민 가득 견과류를 먹었다는후문입니다.그녀의 비타민 지수가 상승하였습니다.오늘 정말 바빴던서버개발자 이동욱 사원님잠시 릴랙스하는 기분으로하루견과를 섭취합니다.비타민력이 상승!다시 힘을 내봅니다.바로고에만 있어요!비타민데이바로고 임직원들을 위한 비타민데이직원들의 비타민 충전건강까지 생각한바로고최고입니닷!다음 비타민데이는어떤 것들이 기다리고 있을까요?다음이 더욱 기대되는바로고 복지이곳이 바로대한민국대표배달 배달대행바로고
조회수 1536

AWS X-Ray를 이용한 분산 애플리케이션 분석

OverviewMSA(Micro Service Architecture)를 구축하다 보면 분산 애플리케이션에 대한 분석, 디버깅, 모니터링이 어려울 때가 있습니다. 이 문제를 풀기 위해 AWS에서는 X-Ray라는 분산 추적 시스템을 제공하고 있는데요. X-Rray는 요청이 애플리케이션들을 통과하는 전체 과정을 추적합니다. 오늘은 Lambda에서 X-Rray를 사용하는 방법을 간단하게 살펴보겠습니다. lambda debuggingAWS Lambda 콘솔 > 함수선택 > Configuration > Debugging and error handling > Enable active tracing 을 선택합니다.AWS X-Ray 서비스맵Lambda에서 Enable active tracing만 선택해도 Lambda 서비스용 노드와 Lambda 함수용 노드를 확인할 수 있습니다.Lambda SDK를 추가해 하위 세그먼트를 구성하고, 주석 및 메타 데이터를 포함시키는 등의 작업을 할 수 있습니다. 이번 글에서는 Python SDK를 이용해 샘플을 만들어 보겠습니다. 우선, pip로 aws-xray-sdk를 설치합니다.SDK 패치X-Ray에서 지원하는 라이브러리를 패치해 SDK가 하위 세그먼트를 생성하고 레코딩할 수 있도록 합니다. 그 다음 patch_all 함수를 사용해 지원되는 모든 라이브러리를 패치합니다. (patch 함수로는 특정 라이브러리만 패치할 수 있습니다.)X-Ray 지원 라이브러리 (18.07.10 현재) botocore, boto3, pynamodb, aiobotocore, aioboto3, requests, aiohttp, httplib, http.client, sqlite3, mysql-connector-python subsegment 생성 및 metadata 작성subsegmentxray_recorder.begin_subsegment/end_subsegment 메서드를 사용해 하위 세그먼트를 구성할 수 있고, @xray_recorder.capture 데코레이터를 사용해 함수에 대한 하위 세그먼트를 생성할 수 있습니다.annotation, metadataput_annotation을 사용해 주석을 기록할 수 있고 put_metadata를 사용해 메타데이터를 기록할 수 있습니다. 1) Service mapTrace timelineSegment annotationSegment metadata서비스 맵을 통해 요청에 대한 노드 연결을 시각화해서 확인할 수 있습니다. 간단한 방법으로 서비스 오류, 병목, 지연 등 애플리케이션의 여러 문제를 식별할 수 있습니다. Service map errorTrace timeline errorSegment Exceptions서비스 맵과 타임라인을 이용하면 동기/비동기 요청, 서비스별 상태 및 오류 내용까지 확인할 수 있습니다. Service mapTrace timeline지금까지 분산 애플리케이션 환경에서 사용하는 AWS X-Ray의 기본 기능들을 실행했습니다. 기본적인 기능들만 살펴봤는데도 AWS 플랫폼의 분산 어플리케이션 환경에서 요청 추적 및 검토, 문제식별, 성능개선 등을 유용하게 활용할 수 있다는 걸 알 수 있었습니다. 추가적인 설명은 아래 참고의 링크들을 확인해주세요. 1) 어노테이션 데이터는 검색용으로 인덱싱되고 메타데이터는 검색에 사용할 수 없습니다. 참고AWS X-Ray – 분산 추적 시스템AWS X-Ray SDK for Python - AWS X-Ray글이상근 팀장 | R&D 개발1팀[email protected]#브랜디 #개발자 #개발팀 #인사이트 #경험공유
조회수 1730

취업을 앞두고 있는 애정하는 동생들에게..

취업을 앞두고 있는 애정하는 동생들에게.....남들과 똑같은 길을 가서 남들만큼 하고 살려고하면 남들보다 못하게 되더라..... 나 역시 취업준비 하면서 손가락질 당할까봐 말은 안했지만 남들이 부러워할만큼 연봉의 회사도 합격했지만 아무리 생각해봐도 저 일 하면 3년 내로 제명에 못살고 죽을것 같아서 부모님한테 불합격했다고 거짓말하고 내가 잘하고 관심있는 일을 시작했다.냉정하게 따져서 지금 여러분이 알고 있는 세상은 진짜 발톱의 때만도 못한 세상이고 취업준비하면서 여러분 인생의 가장 초라한 날들을 보내고 가장 초라할때 비참한 일들을 겪을것이다.그런데 그럴때일수록 남들과 다른길을 가는게 오히려 처음엔 느리지만 가장 빠른 길이 될수도 있다. 어차피 남자 취업 평균나이가 28이고 여자도 26이다. 그리고 매년 취업률은 떨어지고 있고 더욱 어려워지게 현실이다.그냥 마음편하게 먹고 너희들이 하고 싶은거 1년만 해봐아니면 진짜 취업하고 싶으면 어디라도 취업해서 여러분이 원하는 직무가 어떤일을 하는지 체험해보는게 빨리 취업하는 길이야...신입채용할때 중고신입을 먼저 채용하는게 현실이고여러분이 진짜 열정을 가지고 한 대외활동....인사팀 입장에서 그냥 애들 장난이다....무시하는게 아니라 내가 딱 반년 취업준비하면서 겪었던...일들을 말해주는거다....1차면접가면 죄다 인턴한애들이고 2차면접가면 죄다 어디.회사에서 1년정도 일했던 애들이야....걔네들이랑 같이 면접보는게 엄청나게 자괴감 들거야......처음 면접보러갔는데....총동회장했다고 하니깐 웃더라고 관심도 없고....진짜 너희들 어려...특히 이제 막 4학년 올라가는 아이들아...힘내고 힘내 그리고 어차피 한번살고 죽는 인생이고 자기가 책임지는 인생인데 주관가지고 해봐 취업이든 뭐든간에.....2017년 화이팅 나도 화이팅.#보맵 #레드벨벳벤처스 #인사이트 #조언 #응원
조회수 2667

스타트업, 그렇게 실패한다.

스타트업을 모든 기업의 시작점이라고 정의해보자.원대한 꿈과 멋진 비전을 가지고 시작한 스타트업이지만, 스타트업의 수명은 정말 짧고, 분명 그 끝은 빠르게 다가온다. 슬프고 미안하지만, 그 꿈의 대부분은 비극이다.한여름밤의 악몽처럼 스타트업은 그렇게 실패로 마무리 된다.100개의 스타트업이 시작되면 99개의 스타트업은 대부분 비극으로 끝이나고. 한두개의 기업만이 살아남을 뿐이다. 아이디어, 멤버, 자본이 충분했지만, 주변 여건과 사회적인 운으로도 망할 수 있다. 기업이란 원래 그렇다.다 갖추고 있어도 실패할 수 있다. 반대로, 한가지 이유때문에도 성공한다.하지만, 그 성공의 이유는 그냥 운일뿐, 실패를 줄여가는 것이 최선일 뿐이다.창업자는 다만 꿈을 키워 기업의 형태로 만드는 것에 집중해야 한다. 그래야, 악몽에서 빠져나올 수 있다. 실패에 좌절하지 않고, 다시 도전할 수 있다.정말 성공했다고 평가받으려면, 시장에서 서비스와 제품이 소비될 때에 스타트업은 '성공'했다고 이야기할 수 있을 것이다. '성공'에 대한 이야기를 듣고 싶으면 다른 곳에서 듣도록 하자, 여기서는 제대로 꽃을 피우지도 못하고 씨앗 상태에서 발아하지 못하는 것을 '실패'라고 정의하고, 그런 스타트업의 '실패'에 대해서 이야기할 것이다.스타트업을 시작하는 사람들은 대부분 '성공신화'의 정보를 수집하느라 바쁘다. 하지만, 실제 성공한 사람들의 이유들을 100가지 나열해봐야, 따라 할 수 없는 것들이 대부분이다.재벌 2,3세가 아니라서 어렵고, 서울대, MIT, 스탠포드를 다니지 못했기 때문에 따라 하기 어렵다. 심지어, 미국에서 시작한 것도 아니며, 시대 적인 배경도 다르다. 그래서, '성공'만 수집하는 것은 대부분 '실패'로 달려가는 지름길을 찾고 있는 것이라고 이야기하겠다. 타인의 성공 스토리는 들어봐야 쓸모없다.성공에 왕도나 공식은 없다. 성공의 요인에서 99가지를 완벽하게 갖추었지만, 단 한 개의 요소가 빠져서도 실패할 수 있다.스타트업을 시작한 사람들은 타인의 ‘성공’에 대한 ‘신화’를 듣기보다는, ‘실패사례’를 꾸준하게 수집해야 한다. 그나마 수집된 ‘실패’를 내가 다시 경험하지 않도록 하는 것이 그나마 최선이다. '실패'에 대한 경험을 바탕으로 '성공'하기 위해서 조금이라도 변수를 줄여 나갈 수 있다.창업은 쉽다!창업을 하기는 쉽다. 하지만, 성공하기란 정말 어렵다. 그냥 대부분 실패한다. 많은 사람들이 성공하는 방법들에 대해서 이야기를 한다고 하지만, 대부분 가짜들이다. 정말 성공에 대한 중요한 요소는 그들 자신도 설명하지 못하는 경우가 대부분이다. 그러니, 그들의 성공 스토리는 그들만의 이야기라고 인식하기 바란다.성공사례는 그 사람이기 때문에, 그 사람의 아이디어이기 때문에 성공한 경우도 많다. 그래서, 대부분의 잘못된 사례들은 그대로 뭉개고 가는 경향이 많을 뿐이다.참신한 아이디어에서 출발한다?스타트업의 핵심을 ‘참신한 아이디어’라고 착각하는 사람들이 많다. 단언컨데 아니다.다만, 정말 중요한 것은 그렇게 생각한 아이디어가 최소한 ‘나에게 만이라도’ 필요한 것이냐고 반문하는 것이다. 그리고, 나라면 그 ‘아이디어’를 ‘돈’을 주고 살 가치가 있냐고 확인하는 것이다.정말 필요한 가치가 있거나, 최소한 아름답고, 매력적인 요소가 있다면, 그것을 위해서 고객들은 ‘구매의사’를 보일 것이고, 그것은 곳 비즈니스 모델이 성립한다는 것을 의미한다. ‘기업’은 아이디어를 ‘실현’하는 곳이라고 생각하기보다는, ‘팔릴만한 제품’이나 ‘서비스’를 만들어 파는 곳이라고 생각을 해야 한다. 정말로, 비즈니스 모델이라는 의미를 아는 것을 떠나서, ‘팔릴 만한 제품’이나 ‘구매 의미가 있는 소프트웨어’를 만들고 있는가? 그것을 가장 먼저 생각해야 한다.아이러니하지만, 그렇다고, ‘제품’에 있는 그런 가치에만 집중한다고 모든 비즈니스 모델이 성립하는 것은 또 아니다. 실제 제품이나 서비스는 실제 구현되고 제조되어진 상태로 시장에서 고객들에게 평가를 받을 수 있어야만, 제대로 된 가치를 인정받는다.아무리 참신한 아이디어라도 ‘팔릴만한 제품’과는 꼭, 필요충분 요건은 아니라는 것이다. 재미있는 아이디어를 가지고 놀거나 대화를 하는 행위가 완전하게 비효율적인 것은 아니지만, 너무 그 ‘참신함’에만 매달려서는 문제를 제대로 인식하는 것이 아니다.그리고, 그러한 아이디어가 시장과 가치가 모두 있어도 그냥 성공하는 것이 아니다. 그 아이디어를 실현하도록 모인 팀원들이 그 아이디어와 가치를 어떻게 생각하느냐가 또 하나의 중요한 요소가 된다.고집을 피우지 않으면 망한다창업자가 새로운 비즈니스 모델에 대한 아이디어를 가진 사람의 생각을 팀원에게 전파하는 것은 정말 어렵다.한편으로는 그러한 시도를 한다는 것 자체가 무모한 짓이다. 그래서, 대부분의 리더들은 자신의 동료에게는 의견 통일을 구하지만, 직원에게는 전달하는 것에 집중하는지도 모른다. ( 모든 리더들은 자기가 스티브 잡스가 된것 처럼 착각하는 경우가 많다. 웃긴다. )뭐, 정말로 그러한 아이디어나 모델을 자신의 팀원에게 설명하는 것이 가능할 수도 있을지 모른다. 그렇지만, 필자는 여기서 조언을 하고 싶다. 창업자의 생각과 열정을 팀원들이 그대로 받아들여서 일을 해주었으면 하는 바람은 저 멀리 던져버리라고.필자가 과거에 벤처기업을 창업하고 운영할 때에 많은 개발자들과 동료들을 모아서 진행해 보았지만 대부분 실패했다. 스타트업의 리더는 초기에 아이디어를 구상하고 기획하고, 투자자를 끌어모으고, 업무를 진두지휘하는 것만으로 충분하지 않았나 한다.오히려, 기업 내부의 교육이나 철학적인 부분까지 너무도 많은 것을 내재화하려 애를 쓴 것이 오히려 독이 되었다는 점이다. 자칫 잘못하면 골목대장 놀이가 될 뿐이고, 이 시간과 비용들이 이런 시간으로 무참하게 낭비되는 경우를 빈번하게 경험했으며, 지금 이시간에도 수많은 스타트업 리더들의 '삽질'에서 느낄 수 있다.물론, 스타트업의 '창업자'는 외롭고 힘들다.  그리고, 가장 큰 문제는 ‘창업자’가 너무 힘들다는 것이다.초기의 불안전한 아이디어나 모델들을 다른 사람들의 아이디어를 사용해서 보완한다는 것 자체가 무모한 도전을 하고 있다는 것을 잊지 말자. 원래, 그런 자리다. 외롭고 힘들고, 두려운 것이 정답이다. 끝없는 마인드 컨트롤이 아니면 버티기 어려운 자리다. 매우 당연하다. 그렇지만, 그러한 고민과 어려움을 직원들과 나누려 하지 마라.돈 몇푼 받고 일하는 직원들은 그런 리더를 우습게 여길 뿐이다. ( 돈을 많이 받아도 똑같다. 직원은 직원일 뿐이다. )아이디어를 실현하는 고민은 창업자와 리더의 머릿속에서 완성되어야 한다. 그것을 팀원이 도움을 주어서 완성된 형태로 만들것이라고 착각을 기반으로 한 계획을 세우지 않기를 권한다.당신의 불완전한 아이디어를 듣는 직원들은 자신의 생각과 자신의 시선으로 아이디어를 다시 해석할 뿐이다. 같은 단어를 서로 이야기한다고 하지만, 서로 따른 이야기를 하고 있다는 것이다. 정말, 혁신적인 아이디어라면 직원은 그 단어를 잘 이해못하는 것이 매우 당연하다.어떤 아이디어나, 기획이 혁신적이지 않다면, 창업해야 할 의미가 없는 것이고, 그 아이디어들은 생각보다 단순한 바탕에서 보통 출발하는 것이 대부분이다. 보통, 그 아이디어와 기획에 대해서 듣는 대부분의 반응은 ‘그 아이디어가 팔리겠어?’라는 반응일 것이다. 이때에 직원들은 그냥, 이해가 가지 않아도 그냥 넘어간다. 슬프지만, 사실이다.그래서, 불완전한 아이디어를 직원들과 만들다 보면, 대부분 이상한 '물건'이 나의 의사와 상관없이 나왔다고 푸념하고, 직원들을 원망하고 있는 자신을 발견하고 있을 것이다. 슬퍼하지 말라. 당신의 아이디어가 원래 불완전했기 때문에 그런것 뿐이다.중간 정리를 하자면, 남의 이야기와 아이디어를 나의 아이디어와 합한다는 것은 정말로 어려운 일이다. 컨설팅을 수년이상을 해도 그런 행위는 정말 어려운 것이다. 설명하기 어려운 것만큼 고집을 피우지 않는다면 일은 성립하기 어렵다는 것을 잊어버리면 안 된다. 정말 만들고 싶은 것은 '고집'을 피우고, 원하는 것을 만들기 위해서 자신이 처음과 끝을 마무리 해야 한다.엔지니어가 아니라면 최소한 서비스의 형태는 자신이 원하는 형태로 동작하는지 테스트는 해야 한다.기업 내부를 치열하게 만들면 망한다성공한 기업의 특징은 비즈니스 모델에서 얻어지는 이익이 야박하지 않다는 점이다. 특히, IT업체의 특징 중의 하나는 ‘이익’이 큰 것이다. 냉정하게 이익이 많지 않은 일을 창업했다면, 그 비즈니스는 잘해도 그 모양일 것이다.‘이익’이 크기 때문에, 잘되는 IT기업의 특징은 일정상 느슨한 구조를 가지게 된다. 그리고, 잉여를 존중하거나 기회를 많이 제공하게 된다. 한편으로는 이런 기업의 특징은 머리가 좋거나 아이디어가 충만한 사람들에게는 부드러운 직장생활이 되는 반면에, 능력이 부족하면 매우 괴로운 기업문화가 된다. 기업 내부를 창의적인 집단으로 만들려면 ‘부드럽게’ 만들고 ‘재미있게’ 만들어야 한다.하지만, 대부분의 기업은 정해진 시장과 정해진 제품과 기능만을 만족하면 팔리는 적절한 투자에 적합한 기능들로 충분한 경우가 많다. 정말, 큰 시장을 노리고 있다면, 기업 내부를 치열하게 만들면 안 된다. 그러면, 망하는 조건을 하나 더 추가한 것이다.기회는 또다시 온다고 믿는 것어떤 기회나 도전, 열정, 사람과의 인연 등을 보면, ‘아깝다’라는 기분이나 기회가 많이 만나게 된다. 비슷한 기회는 다시는 돌아오지 않는다. 그 순간이 끝인 경우가 대부분이다.이런 기회를 잡는다는 것 자체가 대단한 실력이고 대단한 운에 해당한다.정말, 기회는 다시 오지 않는다. 대부분 실패한 사람들은 그러한 '기회'를 제대로 잡지 못한 경우가 태반이다. 아니, 그런 '기회'가 온지도 모르고 지나가는 경우도 많다. 보통, 그러한 기회를 제대로 파악하기 위해서 '시각화'하고 '도표'화한다.물론, 모든 것을 정량적으로 수치화한다고 모든 것이 보이는 것은 아니다. 하지만, 최소한의 것이라도 정량적으로 평가하지 않는다면, 최소한의 기회의 시점도 찾기 어려워진다.이는, 기업의 회계나, 소프트웨어 개발의 시각화 모두에 해당한다. 모든 것이 수치화시킨다고 하더라고, 정성적인 평가나 경험적인 평가가 결합하지 않으면, 그런 '수치'도 무의미하다고 하겠다.최소한의 수치화도 안된다면, 최소한의 기회도 찾기 어렵다.양보는 방향성을 상실하게 한다.소프트웨어 개발에 있어서 ‘법’과 같은 절대적인 방법론이 존재한다면, 아마도. 누가 해야 할 것인가에 대해서는 고민하지 않을 것이다. 하지만, 소프트웨어 개발에 있어서 그러한 ‘법칙’은 없다.냉정하게 이야기하자면, 누군가가 편해지만, 누군가는 불편해지고 일이 많아진다. 그렇다면, 일이 많아지는 곳의 논리가 명확해지고, 그 인사평가도 명확해진다면 그러한 일은 줄어들까?업무를 결정하는 사소한 다툼과 방향성은 그 기업과 팀, 조직의 탄성과 관성을 만들어내는 원동력이 되기도 한다.문제는, 이러한 협의의 과정에서 만들어진 결과물들은 퇴적층처럼 쌓여서, 그 기업의 문화로 발전되게 된다. 업무의 협의의 과정은 ‘이번에 내가 양보했으니, 다음번에는 당신이 양보하면 되겠네’라는 발상이 통용되지 않는다.대부분의 업무협의과정은 한번 양보한 사람이 계속 양보하게 되어있고, 한번 이기면 계속 이기는 것이 보편적인 현상이다. 이러한 것은 ‘실력’의 문제 이전에, 작업의 우선순위 결정에 있어서의 탄성력이 발생한 것이다.어떤 방식으로 결정되고, 사소한 업무라도 개시해서, 작업 결과물이 축적되는 것과 같은 작업과 업무의 선택 방법이 회사의 ‘체계’로 굳어지게 되는 것이다.그래서, 보통 초반부터 기선제압을 하고 주도권을 잡으려 애쓰는 것이 보편타당할 것이다. 하지만, 이러한 결정이 올바른 방향으로 간다면 다행이겠지만. 대부분은 그 퇴적층처럼 쌓이는 결정권의 방향성 때문에 기업의 수명이 제한되는 것이 보통이다.누군가는 분명 양보를 했다.그래서, 그 업무는 누군가에게 집중된다.보통은 그 업무나 요구사항의 ‘해결책’을 제시하는 팀이나 사람에게 그 업무는 전이되게 된다. 내 업무 중에 ‘자동화’되거나, ‘시스템’이 자동적으로 해결되는 일과, 고객과 개발되는 서비스와의 연관성에 있어서, ‘고품질’로 운용이 되고 있다면, 그 업무를 분명 대신해주고 있는 협상은 ‘대가’를 받아야 한다.‘툰드라의 늑대’ 이야기가 그 좋은 예가 될 수 있다.영국 에든버러대 교수이자 협상 전문가인 게빈 케네디가 이야기한 ‘튼 드라의 늑대’ 이야기는 양보의 역효과에 대해서 설명한다.오래전 유럽 세일즈맨들이 툰드라 지역의 원주민 마을을 찾아갔다.그들은 원주민에게 냉장고와 맥주 같은 문명의 이기를 팔고, 사냥 방법을 배우면서 가까워졌다. 그런데 바로 그 "사냥"이 문제의 시작이었다. 한 세일즈맨이 사슴 사냥에 성공한 뒤 썰매를 타고 돌아오던 중 멀리서 늑대 한 마리가 쫓아오는 것을 느꼈다.위험을 직감하고 미친 듯이 도망치던 그는 더는 안 되겠다 싶어 사냥한 고기를 조금 떼어 던져줬다. 다행히 늑대가 쫓아오지 않아 한숨 돌리려던 순간, 이제는 서너 마리의 늑대가 쫓아오는 것이 보였다. 생각할 겨를도 없이 또 고기를 던져줬다. 이때부터 불행의 반복이었다. 어느덧 수십 마리가 그를 뒤쫓았고, 남아 있는 고기는 없었다.그 순간 마을에 도착해 다행히 늑대로부터 목숨은 건질 수 있고, 이 일을 전해 들은 다른 세일즈맨들은 그 지역을 돌 때마다 여분의 고기를 갖고 다니다가 늑대가 위협해오면 던져줬다. 하지만 거기까지였다.어느 날 원주민들이 그들을 내쫓은 것이다.“배고픈 늑대에게 썰매를 따라가라고 가르친 멍청한 놈들! 당장 꺼져!”이들이 쫓겨난 이유는 늑대에게 베푼 "선의의 양보" 때문이다. 양보가 결코 미덕이 아니라는 뜻이다. 하지만 양측 모두 무작정 버티면서 시간만 끌 수는 없는 법. 양보할 수밖에 없는 상황이라면 다음 같은 사항을 명심해야 한다."만약"이라는 말을 반드시 붙여라. “만약 내가 그 조건을 양보한다면 당신은 나에게 뭘 양보해줄 수 있나요?”이 말은 "내가 먼저 양보할 테니 당신도 양보해달라"는 것과 다르다."당신이 내 마음에 드는 양보를 한다면 나도 똑같이 양보할 뜻이 있음"을 밝히는 것이다.이렇게 자신의 양보가 절대 "공짜"가 아님을 알려라. 나의 양보를 가치 있게 만드는 것이 가장 중요하다.아직도 꽉 막힌 협상을 푸는 방법은 양보라고 생각하는가. 자신의 상대는 툰드라의 늑대와 다르다고 믿는가.그렇다면 이렇게 물어보자. 당신의 상대가 당신에게 "대가 없는" 양보를 한다면 당신도 그에게 그만큼의 양보를 해줄 것 같은가.-- 주간동아 ‘803호’에 실린 칼럼 중에서...  세계경영연구원의 IGM 비즈니스 리뷰 중에서.양보는 하되, 그에 걸맞은 ‘대가’에 대해서 상대방에게 인지하게 하는 것이 기술이며, 처세술의 기본이다. 어떤 요구사항이나 업무에 대해서 협의가 발생하게 되면, 그 ‘대가’를 상대방에게 지불하게 하는 방법을 같이 구사하여야 한다.소프트웨어 개발에 있어서의 ‘정치’라는 것은, 단순화한 파워게임이나 자존심 대결이 아니라, 실용적인 개발방향을 정하는 것이라는 점이다. 문제는 ‘내가 이해하지 못한다고, 상대방의 이야기를 듣지 않는 경우가 발생하는 것이 가장 큰 문제이다’. 이런 방법으로 ‘양보’를 얻어낸다는 것은 결국, 소프트웨어의 미래를 포기하게 하는 것인지도 모른다.어떤 협의 이후에, ‘편하고 좋은 환경’에서 개발일을 하게 된다는 것은, 그에 상응하는 ‘비효율적이고, 불편하고, 어려운 개발’ 일을 누군가가 대신하고 있다는 것을 잊으면 안 된다.편하고 효율적인 개발환경은 분명하게도 이러한 ‘정치’적인 선택과 혜택을 제공받았기 때문인지도 모른다. 하지만, 이러한 상황은 비 개발자와 개발자 사이에서도 빈번하게 발생되는 문제들이다.하루에 끝날 일을 3개월 넘게 말싸움을 할 수도 있다. 그것은, ‘자리’를 만들기 때문이다.전문가의 권위는 추락했지만, 그 능력은 인정하자인쇄 성경판이 구텐베르크에 의해 실현되고, 성직자의 권위가 떨어진 현상과 대응되는 것. 전문가의 권위, 전문가의 지식을 꼭 따라야 하는가?어떤 식당에서 밥을 먹을지 선택하는 것을 유명한 음식 평론가의 평판이나 의견에 따라서 움직이는 것보다, 사용자들의 평점에 따라서 추천순위가 매겨진 스마트폰 애플리케이션을 따르는 것이 틀리다고 말할 수 있는가?가장 전문가의 권위와 지식에 의존하는 범주를 설명한다면, 그것은 ‘의학지식’과 같다. 하지만, 대부분 우리들은 이러한 전문가의 지식에만 의존하지는 않는다. 그것은, ‘경험 지식’에 의한 것일 수 있기 때문이다.이미, 우리는 ‘지식’과 ‘경험’을 중첩으로 경험하는 시대를 접하고 있다.이제는 ‘전문가’들이 ‘사용자들의 경험’을 더욱더 높은 가치로 인정하는 시대가 되고 있다.‘PatientLikeMe'서비스의 경우에는 전문의들이 오히려, 사용자들의 경험을 참고하고, 인용하기 시작한다.다만, 양이 늘어나면 질이 떨어지는 것을 어떻게 하는 것인가가 관건이지만, 그만큼. 다양성이라는 가능성을 얻게 되고, 콘텐츠는 보다 저렴하고 신속하게 소통되면서 획기적인 발견이나 창조성이 발견되러 질 가능성도 높아진다.이제는 특정한 조건에 의해서 영향을 받는 것이 아니다.노하우가 아닌 노후knowhow가 아닌 knowwho소프트웨어 개발 방법론은 다양한 방법과 전략들을 만들 수 있으며, 이를 통해서 수많은 요구사항과 문제점들을 배치하고 나열할 수 있다. 그 이외에도 소프트웨어 개발에 있어 필요한 스킬은 정말 많은 것을 필요로 한다.대표적으로 부수적으로 필요한 스킬을 보면 보고서나 기획서를 쓰는 방법, 소프트웨어 설계를 잘하는 방법, 디자인 패턴을 고르고, 배치하는 방법, 인공지능과 같은 첨단적인 기법을 활용하는 방법까지도 매우 다양하다.하지만, 이제 소프트웨어 개발에 있어서 최고로 필요로 한 것은 무엇일까? 과거에는 소프트웨어 개발을 가장 잘하는 방법은 how(어떻게) 그것을 만들어내는가에 집중되어 있었고, 그것은 Know-how라고 불렸다.경험에 의해서 축적되어진 이 지식을 통해서, 결정되어졌으며, 이 노하우를 가장 많이 가진 사람을 ‘실력자’라고 인정하였다. 하지만, 시대가 바뀌고, 소통과 협업, 농담 삼아 이야기하는 구글 신이 지배하는 세상으로 변화하였다.이제 ‘노하우는 필요 없다’는 것이다. 냉정하게 이야기하자면, 소프트웨어 개발자가 뭔지 모르면 배우면 되고, 그 자료나 정보들은 인터넷을 찾아보면 된다. 그리고, 그것 마저도 없으면 삽질하면서 얻어낼 수 있다.현대의 소프트웨어 개발자에서 가장 문제가 있는 사람은 이것저것 다 빼고, 이러한 방법들을 시도조차 하지 않는 ‘안 하려는 사람’ 일뿐이다.이제는 ‘삽질’을 하면서 얻을 수 있는 무궁무진한 방법들이 인터넷에 널려있는 세상이다.소프트웨어 개발에 있어 대부분은 일상적이고 평범한 일이 대부분이다.대부분 폼도 안 나고, 개발자로서 얻는 것도 없고, 평가도 부족한 업무와 소프트웨어 개발이 대부분이다. 과연 이러한 소프트웨어 개발을 하는 업무에 대해서 어떻게 평가를 해야 할까? 대부분의 소프트웨어 개발사들은 이러한 업무에 대해서 ‘평가’가 매우 적고, 박하게 평가하는 편이다.그런 회사일수록, 해당 업무를 ‘누가 할 것인가’에 대한 ‘폭탄게임’이 심각하게 발생한다.‘어떤 모듈이나 서비스를 어떻게 만들어야 하는지에 대해서는 모르는 사람이 없다’‘신입만 되어도 해당 모듈이나 서비스는 만들 줄 안다’이러한 업무들의 특징은 작업은 어렵지 않지만, 누가 크게 알아주지도 않는다. 하지만, 대부분 이런 업무의 특성이 대량의 파일을 다루고, 테스트 시간도 오래 걸리고, 잘해봐야 본전이고, 못하면 대박 깨지는 그런 업무들이다.너무도 뻔하기 때문에, 너무도 뻔하게 업무를 해야 하는 업무들이고, 팀이나 조직원들 간에도 이러한 업무들은 가능한 전담하려 하지 않는 것이 대부분이다.정말, 귀찮고, 매력 없는 업무들이기 때문이다.물론, 몇 가지 방법이 있다. 그러한 일상적이고 뻔한 업무들은 외부에 용역을 주거나, 외부의 서비스들을 구매해서 사용하거나 연계해서 사용하는 방법이 최선의 경영진의 판단일 것이다. 기업은 ‘가치’를 인정받을 수 있는 최고의 일을 하는 것이기 때문이다.‘폭탄 돌리기’가 가장 극심한 기업과 조직일수록, 가장 말이 많이 나오는 이야기는‘원래 그 업무는 XXX가 해야 한다’라는 ‘원래’라는 식의 단어들이다.‘이렇게 해도 되고’‘저렇게 해도 되고’‘요렇게 해도 된다’는 업무야말로...냉정하게 ‘방법’을 몰라서 삽질하는 것이 아니라, ‘정치’적인 싸움을 하는 것이 가장 큰 문제이다.‘양보’하면 계속 밀릴 수밖에 없다.한번 기득권을 가져가거나, 협상에서 밀리면, 그 권한을 다시 회복하기는 정말 어렵다. 그래서, 기업 내부에서 팀 간의 ‘기득권’ 쟁탈전은 언제나 발생한다. 또한, 업무는 손쉽게 하면서 최고의 가치만을 얻어가려 애쓰는 것은 틀린 이야기가 아니다.하지만, 이러한 ‘폭탄게임’은 회사의 수명을 짧게 만들고, 회사를 망하게도 할 수 있는 치명적인 문제로 발생하게 된다.보통, 이렇게 정착되어진 ‘회사의 규칙’에 의해서, ‘중요한 고객의 요구사항’이 잘못 판단되게 되어지고, 그 영향은 제품과 서비스에 반영되어진다. 그리고, 그 기업의 품질에도 큰 영향을 주게 되는 것이 보통이다.요구사항의 판단과 ‘품질’의 판단은 ‘양보’로 얻어지면 안 된다.협의와 협상의 규칙이 만들어지는 것이 최선이지만, 그것이 안된다면, 중복적이고 가치는 적지만, 효용가치가 높은 것부터 업무가 가치 있고, 평가가 후한 업무라면 부서와 사람이 업무를 거부하겠는가?요구사항과 업무는 그 가치와 평가가 효과적 이도록 결합되어야 한다. 부정적이고 의미 없는 업무를 제거한 상태라면, 요구사항들의 가치가 형성되도록 요구사항들이 결합되어야 한다.소프트웨어 개발에는 ‘원래’라는 단어는 없다.오래된 경력자들이 모이면 오히려 개발 진행이 어려운 경우가 많다. 그것은, 각자의 경험상에 축적되어진 지식들의 왜곡현상 때문에 발생하는 일상적인 일인 경우다.자신의 경험과 지식과 타인의 경험과 지식이 왜곡되고, 서로에게 강요하는 일이 발생하게 되는 것은 매우 당연한 것이다.냉정하고 ‘사공’이나 ‘선장’은 적은 사람이 해야 한다.소프트웨어 개발에 있어서 가장 빠르게 변화하는 것과 자신의 가능성을 최대한 확장하는 방법을 잘 알고 있음에도 불구하고, 자신의 경력과 지식, 경험에 자꾸 제한을 가하게 되는 경우는 ‘경력이 풍부한 사람’ 일 수록 흔히들 빠지게 되는 함정과도 같다.자신의 경력을 내려놓고, 신입과 동일한 ‘눈’으로 맞출 수 있는 사람이 더 새로운 경험을 많이 하게 된다.사공이 많게 되면 배가 산으로 가거나, 서로 샅바 싸움을 하거나, 배가 꿈쩍도 하지 않는 상황을 만들지 않게 하는 것이 아키텍트가 해야 할 일이다.소프트웨어 개발에 있어서 가장 경험자가 많은 경우에 선택하기 쉬운 구조는 ‘독재’를 하는 방법이 최선이다. 대부분의 회사들은 그러한 ‘정치구조’를 선택한다. 그리고, 그러한 구조를 통해서 ‘컨트롤’을 하는 것이 일반적이다. 그래서, ‘일반적인 구조’가 어울리는 소프트웨어 개발 조직도 많다.다만, 이 조직은 철저하게 ‘리더의 자질’에 의해서 모든 것이 결정되어진다는 점이다. 한 사람이 가진 지식과 경험이라는 것은 ‘인터넷의 바다’에 비한다면...토론과 의견수렴을 하는 방법을 만들자기업의 입장에서는 ‘디아블로’와 같은 절대군주와 같은 리더가 최선일 수 있다. 그리고, 그 군주가 실패하면 갈아치우면 되니까 가능한 구조이다. 다만, 이러한 ‘업무 스타일’은 유지하게 하는 것이 최선이다.보통 ‘토론’의 경우에는 ‘5명’이 넘어서는 안된다. 대부분 그 이상의 토론은 통제 자체가 불가능하다.대부분의 정치구조는 ‘혼란’스러우면 ‘독재’를 선택한다. 그리고, ‘현명한 군주나 리더’가 너그러운 정치를 통해서, 좋은 결과를 유도하기를 바란다.의사결정 과정은 ‘민주적’이지 않지만, ‘좋은 결과물’을 만들어내는 대부분의 구조는 이러한 방법이 대부분이다.하지만, 대부분 이러한 구조는 ‘정치’적인 상황을 만들고, 그 리더와 그 의견에 동조하는 세력들이 모여지고, 발언권을 동조하는 세력들을 만들게 되는 상황으로 흔하게 흘러간다.이러한 모습이 대부분 기업들이 중견기업으로 성장하면서 겪게 되는 대부분의 문제들이다. 하지만, 이러한 모습들은 불편한 상황들을 만든다.냉정하게 대부분의 정치는 ‘목소리’를 내고, ‘목소리’가 큰 사람이 주도하는 형상으로 끌려간다. ‘적극적으로 의사표현’을 하는 사람들의 위주로 흘러가게 되는데, 문제는 이러한 행위들이 사익을 위한 것인가? 회사 전체를 위한 것인가? 에 대한 모호함 때문이다.더더군다나, 동양적인 소극적이고 양보하고 겸손하게 살게 하는 ‘문화’ 속에 살고 있는 우리의 입장에서는 정말로, 기업적인 색깔과 모습을 표현하는 것은 정말 어려운 일이고, 목소리를 내는 사람의 이야기를 ‘사익’에 가까운 모습으로 연상하게 되는 것은 어쩔 수 없는 일인지도 모른다.가장 좋은 방법은 ‘의사표현’을 할 수 있는 방법을 제공해주는 것이다. 어떻게든, 소극적이고 겸손한 사람들의 ‘의견’과 ‘아이디어’가 소통되게 만드는 것이 최선의 방법이다.‘독재’는 빠르고 효과적이지만, 조직을 ‘지옥’으로 만들 가능성이 농후하다, 하지만. 내부가 불통되고, 세력다툼이 벌어지는 구조는 더더욱 문제가 심각하다. 최선의 선택은 언제나 ‘독재’ 인지도 모른다. 하지만, ‘똑똑한 독재자’는 ‘왕조’, ‘편안한 왕조’와 ‘똑똑한 왕’이 된다.그래서, 기업들 대부분이 경력 2~4년 차를 원한다. 대부분 ‘독재화’되어진 구조에서는 ‘아이디어’가 필요한 것이 아니기 때문이다.우리 기업에 있어서 ‘혁신’이나 ‘창의성’이 정말 중요한가?아이디어와 요구사항이 가장 잘못되어지는 것추상화가 가장 잘못되어지는 사례는 기획을 한 사람과 구현한 사람이 중요한 핵심기능을 잊어버린 체, 변화되는 ‘어떤 것’에만 집중하는 경우이다. 사용자에게 ‘제공되는 가치’에 대해서 제대로 인식하지 못하면, 끊임없는 반복 작업만이 기다리고 있으며, 유지보수성이나 플랫폼과 같은 결과물은 기대할 수 없게 된다.‘어떤 기능’에 대해서 무비판적으로 기능을 추가하는 것이 가장 큰 문제이다.소프트웨어 개발에 있어 절체절명의 원칙은 ‘반복 작업’을 최소화하는 것이다. 그 방법이 유틸리티를 만들든, 서비스를 만들든, 스크립트 언어를 사용하던, 어떻게든 최소화하는 것이다. 다만, 그 리소스의 활용이나 기간 상의 문제만 다를 뿐이지, 추상화는 ‘반복 작업’을 최소화한다.특히, 소프트웨어 개발기업에 있어 가장 중요한 소프트웨어 개발자의 리소스를 가장 효율적으로 사용할 수 있도록 디자인하는 것이 최선이다. 기획자와 요구사항 수집자는 가능한 소프트웨어 개발자가 ‘한 번만 개발 작업’을 할 수 있도록 최선을 다해서 추상화를 하는 것이 최선이다.소프트웨어 개발에 있어서 ‘메시지’를 기획자가 자유롭게 다루도록 하되, 소프트웨어 개발자는 ‘메시지’를 표현하는 기능은 한 번에 집중하게 하는 것이, 추상화의 기본 원칙을 쉽게 설명한 것이다.그렇다면, 이러한 요구사항을 추상화하는 과정은 누가 해야 하는가? 냉정하게 이야기한다면, 기획자가 최선을 다해서 추상화하여, 소프트웨어 개발자의 리소스를 최대한 활용할 수 있도록 해야 한다.그 원칙은 어떻게 하면 프로그래머의 작업을 최대한 단순화하느냐에 달려있다.이 원칙은 프로그래밍 팀과 기능 관련 회의와 일정을 최소화하고, 버그를 줄여주며, 기획이 최대한 반영되는 방법으로 변화한다.냉정하게 그 기업에서 ‘월급이 밀리냐? 안 밀리냐?’의 중요한 차이는 이러한 아이디어나 요구사항을 어떻게 최대한 추상화하느냐에 달려있다.더 쉬운 설명은 ‘데이터’가 변화하는데 ‘소프트웨어 코드’가 바뀐다면, 그 소프트웨어의 추상화는 실패한 것이다.기획과 요구사항을 어떻게 추상화해야 하는가?요구사항을 유스 케이스로 표현하면서 최대한 가능하게 된다.어떤 것들이 유지보수에 집중적인 영향을 주는가를 생각하게 한다.아키텍트가 존재하는가?그렇다면, 독재와 집중 통제 방법을 사용하고, 없다면, 담당자끼리 직접 의사소통을 하는 것이 최선이다. 하지만, 이것도 역시 최선의 해답은 아니다. 가장 확실한 것은 계속 소통하면서 자신의 환경에 맞도록 프로세스와 협의 과정을 변화시키는 것이다. 아키텍트는 있으면 충분하게 도움이 될 뿐이다. 있다고 모든 것이 성공하는 것도 아니라는 것을 명심하자.그리고, 그것이 애자일의 철학의 기본 개념이다.잘 모르면, 베끼는 것도 최선일 수 있다.창작자가 만들어낸 것은 대부분 많은 시행착오의 결과물이다. 하지만, 이것을 복제해내게 되면 비슷하게 만들면서 엄청나게 누적되어진 시행착오를 만나지 않는다.하지만, 대부분 이렇게 복제하게 되면, 무언가 부족한 느낌이 들거나, 무언가 허전하게 된다는 것은 약점이다. 또한, 그 시행착오의 결과물들이 또 다른 지식과 경험으로 파생되어지는 경우가 발생할 수 있다.예술과 창작이라고 하더라도, 습작의 시기에는 베끼는 것을 통해서 수련의 과정을 겪는다.일단, 기업이 시작되었다면 치열한 것이고, 비용과 사람의 수고가 투입되게 된다. 최악의 상황에서는 첫 번째 달려가고 있는 기업이나 서비스를 베끼는 것도 또 하나의 방법이기도 하다.더군다나, 국내에 해당 서비스가 없다면, 해외의 서비스를 그대로 베껴서 국내 시장에 내놓는 방식은 선배들이 대부분 따라 한다. 일단, '돈'과 '인원'을 모았다면, 그대로 베끼는 작업을 아무런 고민도 없이 진행하는 사람들이 더 빠르게 시장에서 안착하고 성공하는 경우를 너무도 많이 봤다.망하면 쪽박을 차는 사업을 하고 있다면, 체면은 뒤로하고, 망하지 않기 위해서 최악의 상황에서는 '베끼는 것이 최선'이다. 슬프지만, 기업이란 것이 원래 그렇다. 특허와 법, 표절과의 경계선에서 움직이는 사람들이 돈을 벌고 성공하는 것이 기업과 사업의 운명이란 것을 엄청 말아먹고 난 다음에 깨달았다.그리고 생각해야 하는 것이 소프트웨어 품질에 대한 이슈이다.소프트웨어 개발의 품질이 올라가려면?소수정예의 소프트웨어 개발자와 그 이외의 업무를 담당하는 프로그래머가 다수 포진해야만 가능하다. 인력 구성도 그렇게 만들어야 한다. 고품질을 지향하는 개발자와 유지보수를 지향하는 개발자의 구성이 적절해야 한다. 보통 3:7 정도로 인력을 배치한다.그리고, 애매한 요구사항을 명확하게 정제해야 한다. 이때에 '애매한 다수결의 원리'를 따르지 말아야 한다.팀원이 많은 팀의 의견이 대부분 받아들여지고, 그들의 리소스를 효과적으로 이용하는 방법으로 소수의 팀의 업무가 더 집중화되는 경향이 높다. 그래서, 대부분 이 여파로, 자신의 팀원을 늘리려는 경향을 보이기도 하다.냉정하게 적은 수의 팀원의 업무가 늘어나고, 다수의 인원이 존재하는 팀에서 보다 창조적인 작업만 하게 되는 현상은 방지해야 한다.소프트웨어 개발회사의 가장 큰 문제는 ‘다수결의 함정’에 빠지는 것이다.QC와 품질이 높아지는 방향을 선택해야지, 다수가 동의하는 방향으로 선택되어지면 안 된다. 냉정하게 다수의 의견이 집단이기주의 + 다수결의 결과물이라면 독재가 오히려 현명하다.슬프지만, 개발 경험이 부족한 경영자나 스킬이 부족한 팀 리더가 '회의'시간을 늘릴수록, 서비스는 산으로 가고, 개발 품질이 떨어지는 것을 무수하게 경험했다. '회의'를 좋아하지 말고, '개발자'들 간의 소통이나 코드리뷰가 가능하도록 구성해야 한다.이러한 환경상의 문제를 효과적으로 반영하여 주어야 한다. 대부분 ‘인원수’에 의한 ‘판단’을 하게 되면 이런 현상이 발생하고, 조직의 인원이 기하급수적으로 증가하게 된다.물론, 리소스가 풍부할 경우는 상관이 없겠지만, 대부분의 기업은 리소스의 투입은 한계를 가지고 있다. 분명, 개발자가 더 집중적으로 해야 하는 일이지만, 이 인원을 더 늘리지 못하거나 한계치에 다다른다면, 그 업무를 외부로 분산시키는 것이 더 효과적일 수 있다.현대의 소프트웨어 개발은 대부분 소규모 팀으로 가능하다. 대규모 팀으로 가능하게 세팅하는 경영진이거나 팀 리더라면 그 사람부터 정리하는 것이 최선일 것이다.또한, 가능하면 ‘기획’을 하지 않도록 프로그래머의 시야를 줄여주어야 한다.소프트웨어 개발자의 특징은 깔끔한 코드와 탄탄한 자료구조이다. 이해되지 않는 기획을 가지고, ‘왜? 그런 식으로 해야 하지?’라고 생각하게 하는 것은 심각한 문제를 야기한다.프로그래머는 ‘버그’를 줄이고, 효율적인 코드를 만드는 것에 집중한다. 당연하게도 ‘기능을 줄이고,’ ‘콘텐츠’를 최소화하는 방향으로 진행한다.이러한 것은 ‘당연한 혁신이나 아이디어’를 파괴하는 행동이 될 수 있다.참신한 아이디어나 혁신은 ‘기존의 틀과 관습으로는 해석 못하는 것이 많은 것이 현실이다’.의사소통은 곧! 비용이다. 그리고, 품질이다.기획서에는 ‘형용사’를 남발하는 것이 아니다.‘형용사’를 줄이고, 구체적인 수치와 설명으로 요구사항을 바꾸어라.구체적인 숫자, 스케치, 참고자료로 구현되어야 한다.물론, '완벽한 기획서'를 만들 수 있다. 그런 기획이 가능하다면 정말 환상적인 서비스와 소프트웨어 품질이 가능할 것이다. 하지만, 필자도 20년의 경력과 경험상 단 한 번도 그런 일이 발생된 기적적인 일은 존재하지 않는다.완전하지 않은 기획과 불완전한 기획으로 삽질을 반복해야 하는 비싼 리소스를 사용하는 개발자들을 적절하게 방향을 잡아주면서 방향을 잡아가야 한다. 다만, 이 경우 '팀 리더'가 방향성이라도 제대로 잡고 있으면 그나마 혼란스럽지 않지만, 방향성마저도 갈지자를 그린다면 팀의 붕괴나 서비스의 품질은 그 누구도 보장할 수 없게 된다.기획자는 기획의 불완전함을 인지하고, 개발자와 소통해야 하고, 개발자도 기획의 불완전함을 이해하고, 어떻게 하면 개발자가 싫어하는 삽질이나 반복적인 일정을 줄일 수 있는지에 대해서 기획자에게 끊임없이 이야기해야 한다.서로 간의 신뢰관계가 없다면, 이러한 애자일스러운 개발은 그냥 '꿈'일 뿐이다.그리고, 기획과 개발의 업무는 롤로 구분되어져야 한다. 이 두 업무가 동시에 가능한 개발자는 '천재'라고 인정하고, 절대적으로 팀에서 '인력관리'에 총력을 기울이기를 바란다. 하지만, 대부분은 이 두 롤은 분리되어야 하고, 팀 구성과 의사소통에 상당한 비용을 지불해야 할 것이다.물론, 의사소통이 엉망이고 적절치 못한 서비스가 만들어지는 경우에도 기업은 매출을 올리는 경우도 많다. 작은 규모의 시장의 경우 '버그'가 있거나, '불완전한 서비스'로 구성되어진 소프트웨어로도 충분하게 시장에서 의미가 있는 경우도 많다.태생적으로 '업무가 불명확한' 환경의 업무도 상당히 많다는 것을 이해하자. 단지, 영업능력을 확고하게 보유한 대표이사님의 엄청난 인맥으로 '매출'이 발생하고, 소프트웨어는 서비스인 경우도 실제 시장에 상당히 존재한다.스타트업이 실패할 수 있는 방법은 위에서 나열한 여러 가지 에피소드를 통해서 불완전하게 흘러갈 수 있지만, 기업은 '돈'을 버는 황당한 경우도 많다. 실제, 많이 봤다. ~.~ 그런 회사는 '스타트업'이라기보다는 전혀 다른 단어로 언급되어야 할 것 같다.마치, 대기업 재벌 3세의 빵집이 아버지의 호텔에서 오픈한 형태라고나 할까? 아니면, 아버지 회사의 1층 로비에 커피숍을 차린 것과 같은 회사인 경우도 실제 사업을 하면서 많이 보게 된다.역설적이지만, 스타트업이 성공하는 것은 '그 한 가지'를 채울 수 있기 때문에 가능한 것인지도 모르겠다. 스타트업이 성공하기 위한 조건을 나열하는 것은 너무도 어렵지만, 실패하는 조건들을 나열하는 것은 너무도 많기 때문이다.언제나 이야기하지만, 내 칼럼은 그러하다. 성공의 조건은 나열하기 어렵고, 이런 식으로 하면 망한다는 언제나 이야기해줄 수 있을 뿐이다.
조회수 1371

페이스북에 처음 투자한 사람은 얼마를 벌었을까?

그투그 #8 페이스북에 처음 투자한 사람은 얼마를 벌었을까? 이제는 너무나 유명한 성공 신화죠. 하버드생 마크 저커버그는 2004년 하버드 학생들을 대상으로 ‘더페이스북’이라는 서비스를 론칭합니다. 그로부터 15년이 지난 지금 페이스북의 기업가치는 5,000억 달러를 훌쩍 넘었습니다. (최근에 주가가 폭락했음에도 불구하고요. 5,000억 달러는 한국 돈으로 566조가 넘습니다.) 마크 저커버그가 세계에서 손꼽는 부자가 된 건 말할 것도 없죠.저커버그야 그렇다 쳐도, 페이스북에 처음 투자한 사람은 얼마나 벌었을까요? 페이스북에 처음 투자한 사람은 페이팔의 공동 창업자 피터 틸입니다. 피터 틸은 2004년, 이제 막 서비스를 시작한 페이스북에 6억 원을 투자하고 지분의 10%를 샀습니다. 60억 원이었던 기업가치는 만 배 가까이 뛰어 566조가 되었죠. 그가 지금까지 페이스북 주식을 얼마나 가지고 있는지는 알 수 없습니다. 만약 지금까지 페이스북 주식을 하나도 팔지 않았다면? 6억은 56조가 되었을 겁니다.하버드생에, 페이팔 창업자라니! 게다가 숫자가 너무 크니 너무 먼 이야기처럼 느껴집니다. 억도 아니고 조 단위라니요……(먼 산) 2004년의 피터 틸까지 갈 것도 없습니다. 2012년 페이스북이 나스닥에 상장한 날, 페이스북의 기업가치는 121조 원이었습니다. 그 날 제가 페이스북 주식을 100만 원어치라도 샀다면, 제 100만 원은 지금 500만 원이 되었겠죠. 이렇게 미래에 성장할 기업을 남들보다 조금만 더 일찍 알아보고 투자한다면 큰 투자수익을 기대할 수 있습니다. 그럼 내 눈앞에 있는 스타트업이 (페이스북만큼은 아니더라도) 성장할 회사인지 아닌지 어떻게 알 수 있을까요?스타트업 투자에는 MAP 말고 MEP이 필요해제가 지금 제 미래도 모르는데 이렇게 많은 기업이 새로 생기고 문을 닫는 시대에 기업의 미래를 어찌 알겠습니까. 그것도 대기업도 아니고 이제 막 생긴 작은 회사들의 미래를요! 정해진 길도, 정답도 없죠. 하지만 MEP을 보면 이 기업이 나아갈 길을 희미하게나마 예측해볼 수 있어요.1) Market: “이 회사의 물건을 팔 시장이 있나요? 있다면 얼마나 큰 가요?”회사는 일반적으로 일정한 가격에 재화나 서비스를 제공하고 그에 따른 수익을 창출합니다. 그래서 가장 중요한 것은 이 회사가 제공하는 제품이나 서비스를 돈을 주고 ‘살’ 고객이 있느냐이죠. 고객이 얼마나 있고, 고객 수는 얼마나 빠르게 늘어나고 있느냐가 바로 여기서 이야기하는 Market(시장)입니다.가장 중요한 것은 시장이 존재하느냐입니다. 애초에 시장이 존재하지 않는다면 사업을 성장시키기는커녕 유지하기도 쉽지 않겠죠. 시장이 존재한다고 해도 성장의 속도는 얼마나 빠른지, 이 시장이 얼마나 커질지 살펴봐야 해요. 시장이 빠르게 커진다는 건 고객이 빠르게 늘어난다는 뜻이므로, 사업도 빠르게 성장할 것을 알 수 있습니다. 반대로 시장의 성장이 더디면, 사업의 성장 속도도 정체되겠죠. 성숙한 산업에 속한 기업이라면 정부기관이나 금융기관에서 발행하는 각종 시장 보고서, 현재의 시장점유율, 매출의 증가 추이, 경쟁사 분석 등을 통해 시장이 얼마나 빠르게 성장할지 전망을 예측해볼 수 있어요. 하지만 새로운 시장을 개척하는 초기 단계의 스타트업은 이러한 방식으로 시장을 예측하기 쉽지 않습니다. 이때 국외 시장을 살펴보는 게 도움이 됩니다. 요즘 세상이 워낙 좋아져서 구글링 몇 번이면 해외 시장 트렌드를 쉽게 찾아볼 수 있습니다. 미국처럼 스타트업 생태계가 활성화된 해외 시장에서 커지고 있는 시장이라면? 우리나라에서도 성장할 가능성이 큽니다. 하지만 이미 해외시장에서 사장된 사업이라면 조심해야 해요. 우리나라에서도 비슷한 어려움을 겪을 수 있으니까요. 2) Player: “이 회사, 시장에서 몇 등인 가요? 대표이사는 누구인가요?”시장의 가능성을 보았다면 이제 그 시장에서 누가 가장 잘하고 있는지 살펴볼 때에요. 시장이 빠르게 성장하고 있는데 내가 투자하려는 회사가 시장 점유율 1위라면? 투자의 긍정적인 신호로 볼 수 있습니다. 하지만 시장이 아무리 빠르게 성장하고 있더라도 이미 시장 점유율이 압도적으로 높은 1, 2위 업체가 있다면 성장에 한계가 있을 수밖에 없지요.아직 시장이 초기 단계라 압도적인 선두 기업이 없다면, 기업을 이끄는 대표이사의 역할이 무엇보다 중요합니다. 투자자는 자체적으로 조사한 자료와 가설을 바탕으로 제시하는 시장의 크기가 논리적으로 얼마나 타당한지 확인해보아야 합니다. 시장의 규모가 큰 것도 중요하지만, 창업가가 왜 그렇게 생각했고 이를 공략할 전략을 어떻게 세웠는지도 굉장히 중요하죠. 결국, 사업은 사람의 일이니까요. 축구에서도 감독의 적절한 전술과 뛰어난 선수들의 실력이 만나야 좋은 결과가 나올 수 있듯, 사업에서도 아무리 분석을 잘하고 전략을 잘 짜도 실행력이 뒷받침되지 않으면 이길 수 없습니다. 대표이사와 주요 임원진이 얼마나 똑똑한지와 더불어 생각을 현실로 옮길 수 있는 실행력이 있는지 살펴봐야 합니다. 그간의 이력과 업계 평판을 통해 그들이 어떻게 살아왔고 어떻게 일하는지 유추해볼 수 있습니다. 이전 사업의 성공 경험이 있다면 더 믿음이 가겠죠?와디즈를 통해 투자를 유치하려는 기업은 반드시 투자설명서에 시장과 경쟁사를 분석한 내용을 기재해야 합니다. 대표이사를 포함한 주요 임원진의 이력과 레퍼런스 체크를 위한 추천사도 필수로 작성해야 하죠. 투자 전에 와디즈 플랫폼에서 이 회사가 시장에서 어떤 위치에 있는지, 대표이사와 주요 임원진은 믿을만한 사람인지 살펴보면 투자 위험을 낮출 수 있습니다. 3) Exit: “이 주식, 언제 돈으로 바꿀 수 있나요?”흔히 싸게 사서, 비싸게 파는 것이 주식투자의 기본이라고 말합니다. 하지만 아직 상장되지 않은 회사의 주식을 살 때는 고려해야 할 점이 하나 더 있습니다. 투자자가 주식을 팔아 투자금을 회수하는 것을 Exit이라고 합니다. 초기기업의 주식은 싸게 살 수 있지만, 회사가 시장에 상장하지 못하고 문을 닫게 되면 아예 팔지 못할 수도 있습니다. Exit을 할 수 없다면 이 기업이 성장해서 기업가치가 올라도 아무 소용이 없겠죠. 그래서 Market, Player와 함께 Exit 계획도 잘 살펴보아야 합니다. 스타트업은 크게 IPO(기업공개)와 M&A(인수합병) 두 가지 방법으로 Exit 할 수 있습니다. 기업공개 (IPO, Initial public offering)는 기업이 처음으로 불특정 다수의 투자자에게 재무내용을 공시하고 회사의 주식을 시장에 등록해 파는 것을 말합니다. 우리가 흔히 알고 있는 상장을 의미하죠. 와디즈에서는 대체로 초기 단계의 회사가 기업가치 10억~50억 사이에 투자를 받습니다. 내가 투자한 회사가 코스닥에 상장한다면? 보통 기업가치가 1,000억 원이 넘어야 코스닥에 상장할 수 있으므로 20~100배의 투자 이익을 얻을 수 있습니다. IPO가 어렵더라도 내가 투자한 회사가 국내외 기업에 인수합병(M&A)되면 투자금을 회수할 수 있습니다. 최근에는 아직 상장하지 못한 회사라도 KSM(한국거래소 스타트업 마켓)에 등록만 되어 있다면 거래할 수 있어졌습니다. 기업이 일정 기간 뒤에 투자자로부터 주식을 사서 현금으로 돌려주는 상환권이 있거나 배당정책을 시행하는 우선주에 투자하면 IPO나 M&A가 아니더라도 현금화할 수 있습니다.Exit 계획이 아무리 거창하더라도 이미 비슷한 제품이나 서비스를 판매하는 회사 중 시장 점유율이 압도적인 기업이 있거나, 판매하려는 제품이나 서비스의 차별점이 명확하지 않다면 한 번 더 생각해보셔야 해요.이 밖에도 흔히 스타트업의 데스밸리라고 불리는 초기의 적자 구간을 버텨낼 자본이 있는지, 자본이 없다면 대표이사가 투자를 받아낼 능력이 있는지, 회사의 매출액은 증가하고 있는지, 증가하고 있다면 증가 폭이 얼마나 큰지 생각해보면 조금 더 피터 틸에 가까워질 수 있습니다. 채권에 투자할 때만큼은 아니더라도 재무제표도 들여다보면 도움이 됩니다.남들이 아직 관심을 두지 않는 회사에 미래를 보고 투자하는 게 이렇게나 복잡해요. 오랜 시간 살펴보고 투자 성공과 실패를 통해 나름의 통찰력이 생겨야겠죠. 지금부터라도 MEP을 펼쳐 두고, 하나하나 살펴보면 그날이 오기를 기다리며 새롭게 커지는 시장에 관심을 가지고, 누가 잘하는지, 어떻게 투자수익을 실현하는지 살펴보세요. 언젠가는 제2의 페이스북을 찾을 수 있을지도 모릅니다.글 김영아와디즈의 막내 투자 콘텐츠 디렉터(CD)입니다. 우리의 작은 돈이 필요한 곳에 모여 세상을 바꾸는 꿈을 꾸고 있어요. 아 물론 돈도 벌면서요. 더 많은 ‘우리’에게 크라우드 펀딩을 알리기 위해 어렵고 복잡한 투자 이야기를 쉽고 재미있게 풀어내는 일을 합니다. 이 글을 읽고 더 궁금한 점이 생겼다면?▶그림 이윤경와디즈의 브랜드 디자이너입니다. 좋은 '사람' 와디즈가 좋은 '브랜드'로 무럭무럭 자라나도록 물을 주고 있어요. 더 많은 사람들의 시작을 돕기를, 그리고 더 재미있는 세상을 만들어 가기를 기대하고 있습니다.#와디즈 #마케터 #마케팅 #브랜드 #브랜딩 #서비스소개 #크라우드펀딩
조회수 1173

EOS Smart Contract 를 위한 준비

EOS Smart Contract 를 위한 준비와 토큰 발행 그리고 C++를 활용해 토큰의 간단한 기능을 개발해 보겠습니다.환경 구성 및 지갑 생성은 SAM 님의 아래 2글을 참고해 주시기 바립니다.EOS — 설치 및 실행 (1/2)EOS — 동작구조 및 환경설정(2/2)지갑 생성하기SAM 님의 포스트를 참고 하셨다면 아마 다음과 같이 ‘default’ (별도의 이름을 지정하지 않았을 시) 지갑을 생성 하셨을 겁니다.이 지갑을 사용하여 계정을 Create 한 후 Key 를 Import 하겠습니다.Key 생성하기$ cleos create key위 명령을 실행 하시면 다음과 같은 화면을 얻을 수 있습니다.create key 명령의 결과**주의 : Private Key는 Public Key의 소유를 증명하는 중요한 개념으로 절대 타인에게 노출하면 안됩니다.AdditionalKey 생성 후 지갑에 import 하기 귀찮으시다면 생성된 지갑에서 바로 Key 를 생성하셔도 됩니다.$ cleos wallet create_key위와같이 key가 생성 됩니다. 하지만 public key 만 보이기 때문에 하단 명령 입력 후 지갑 key를 입력하면 private key를 확인할 수 있습니다.$ cleos wallet private_keys지갑에 Key import하기지갑은 Public Key — Private Key를 저장하는 저장소 입니다. 생성된 키를 지갑에 저장하기 위해 다음과 같은 명령어를 입력합니다.$ cleos wallet import-n : 옵션을 사용하면 지갑의 이름을 지정합니다. 지정하지 않는다면 기본 생성된 default 지갑으로 지정됩니다.위 명령을 입력 하면 key 가 임포트 되었다는 결과를 확인 할 수 있습니다.** 만약 지갑을 Unlock 한 상태가 아니라면 ‘private key: Error 3120003: Locked wallet’ Exception 이 나옵니다.unlock 을 위해 다음 명령을 실행한 후 wallet 생성시 저장했던 Key를 입력하여 Unlocked 상태로 만들어 줍니다.$ cleos wallet unlock password: Unlocked: default(Optional) 지갑에 저장된 Key 리스트 확인다음 명령어를 입력하여 지갑에 key 가 잘 import 됐는지 확인합니다.$ cleos wallet keys계정 생성eosio.token 이라는 이름으로 계정을 생성하도록 하겠습니다.** 지갑과 Key 그리고 계정에 관해서는 Hexlant 미디움에 게재될 예정입니다.$ cleos create account eosio eosio.token EOS63kstp8kthzJY3rAotp1LAxUDbWk4MywReG578R2ddbktrDHYKcreator : eosioaccount name : eosio.tokenowner key : 지갑에 import 된 keyAdditional본 포스팅은 local 환경에서 빌드 후 System Contract 들이 적용되지 않은 상황을 가정하였습니다. 만약 Public Network 환경에서 접속 시 eosio 와 eosio.token을 사용할 수 없습니다.또한 계정이름은 다음과 같은 규칙을 따릅니다.- 12문자- 12345abcdefghijklmnopqrstuvwxyz 만 사용 가능** 만약 ‘Error 3090003: provided keys, permissions, and delays do not satisfy declared authorizations’ 에러 발생 시 eosio 에 대한 key 를 지갑에 import 해야 합니다.eosio 에 대한 정보는 다음과 같습니다.public key: EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CVprivate key: 5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3위 과정을 모두 마쳤다면, EOS 지갑과 키 그리고 계정에 대한 권한을 모두 가지고 있는 상태가 됩니다. 다음 포스팅에서는 이 계정을 사용 하여 Token 을 발행하는 방법을 알아보도록 하겠습니다.감사합니다#헥슬란트 #HEXLANT #블록체인 #개발자 #개발팀 #기술기업 #기술중심
조회수 1730

HBase 설정 최적화하기

커플 필수 앱 비트윈은 여러 종류의 오픈 소스를 기반으로 이루어져 있습니다. 그 중 하나는 HBase라는 NoSQL 데이터베이스입니다. VCNC에서는 HBase를 비트윈 서비스의 메인 데이터베이스로써 사용하고 있으며, 또한 데이터 분석을 위한 DW 서버로도 사용하고 있습니다.그동안 두 개의 HBase Cluster 모두 최적화를 위해서 여러 가지 설정을 테스트했고 노하우를 공유해 보고자 합니다. 아랫은 저희가 HBase를 실제로 저희 서비스에 적용하여 운영하면서 최적화한 시스템 구성과 설정들을 정리한 것입니다. HBase를 OLTP/OLAP 목적으로 사용하고자 하는 분들에게 도움이 되었으면 좋겠습니다. 아래 구성을 최적화하기 위해서 했던 오랜 기간의 삽질기는 언젠가 따로 포스팅 하도록 하겠습니다.HBaseHBase는 Google이 2006년에 발표한 BigTable이라는 NoSQL 데이터베이스의 아키텍처를 그대로 따르고 있습니다. HBase는 뛰어난 Horizontal Scalability를 가지는 Distributed DB로써, Column-oriented store model을 가지고 있습니다. 사용량이 늘어남에 따라서 Regionserver만 추가해주면 자연스럽게 Scale-out이 되는 구조를 가지고 있습니다. 또한, Hadoop 특유의 Sequential read/write를 최대한 활용해서 Random access를 줄임으로 Disk를 효율적으로 사용한다는 점을 특징으로 합니다. 이 때문에 HBase는 보통의 RDBMS와는 다르게 Disk IO가 병목이 되기보다는 CPU나 RAM 용량이 병목이 되는 경우가 많습니다.HBase는 많은 회사가 데이터 분석을 하는 데 활용하고 있으며, NHN Line과 Facebook messenger 등의 메신저 서비스에서 Storage로 사용하고 있습니다.시스템 구성저희는 Cloudera에서 제공하는 HBase 0.92.1-cdh4.1.2 release를 사용하고 있으며, Storage layer로 Hadoop 2.0.0-cdh4.1.2를 사용하고 있습니다. 또한, Between의 데이터베이스로 사용하기 위해서 여러 대의 AWS EC2의 m2.4xlarge 인스턴스에 HDFS Datanode / HBase Regionserver를 deploy 하였습니다. 이는 m2.4xlarge의 큰 메모리(68.4GB)를 최대한 활용해서 Disk IO를 회피하고 많은 Cache hit이 나게 하기 위함입니다.또한 Highly-Available를 위해서 Quorum Journaling node를 활용한 Active-standby namenode를 구성했으며, Zookeeper Cluster와 HBase Master도 여러 대로 구성하여 Datastore layer에서 SPOF를 전부 제거하였습니다. HA cluster를 구성하는 과정도 후에 포스팅 하도록 하겠습니다.HDFS 최적화 설정dfs.datanode.handler.countHDFS에서 외부 요청을 처리하는 데 사용할 Thread의 개수를 정하기 위한 설정입니다. 기본값은 3인데 저희는 100으로 해 놓고 사용하고 있습니다.dfs.replicationHDFS 레벨에서 각각의 데이터가 몇 개의 독립된 인스턴스에 복사될 것 인가를 나타내는 값입니다. 저희는 이 값을 기본값인 3으로 해 놓고 있습니다. 이 값을 높이면 Redundancy가 높아져서 데이터 손실에 대해서 더 안전해지지만, Write 속도가 떨어지게 됩니다.dfs.datanode.max.transfer.threads하나의 Datanode에서 동시에 서비스 가능한 block 개수 제한을 나타냅니다.과거에는 dfs.datanode.max.xcievers라는 이름의 설정이었습니다.기본값은 256인데, 저희는 4096으로 바꿨습니다.ipc.server.tcpnodelay / ipc.client.tcpnodelaytcpnodelay 설정입니다. tcp no delay 설정은 TCP/IP network에서 작은 크기의 패킷들을 모아서 보냄으로써 TCP 패킷의 overhead를 절약하고자 하는 Nagle's algorithm을 끄는 것을 의미합니다. 기본으로 두 값이 모두 false로 설정되어 있어 Nagle's algorithm이 활성화되어 있습니다. Latency가 중요한 OLTP 용도로 HBase를 사용하시면 true로 바꿔서 tcpnodelay 설정을 켜는 것이 유리합니다.HBase 최적화 설정hbase.regionserver.handler.countRegionserver에서 외부로부터 오는 요청을 처리하기 위해서 사용할 Thread의 개수를 정의하기 위한 설정입니다. 기본값은 10인데 보통 너무 작은 값입니다. HBase 설정 사이트에서는 너무 큰 값이면 좋지 않다고 얘기하고 있지만, 테스트 결과 m2.4xlarge (26ECU) 에서 200개 Thread까지는 성능 하락이 없는 것으로 나타났습니다. (더 큰 값에 관해서 확인해 보지는 않았습니다.)저희는 이 값을 10에서 100으로 올린 후에 약 2배의 Throughput 향상을 얻을 수 있었습니다.hfile.block.cache.sizeHBase 의 block 들을 cache 하는데 전체 Heap 영역의 얼마를 할당한 것인지를 나타냅니다. 저희 서비스는 Read가 Write보다 훨씬 많아서 (Write가 전체의 약 3%) Cache hit ratio가 전체 성능에 큰 영향을 미칩니다.HBase 에서는 5분에 한 번 log 파일에 LruBlockCache (HBase 의 Read Cache) 가 얼마 만큼의 메모리를 사용하고 있고, Cache hit ratio가 얼마인지 표시를 해줍니다. 이 값을 참조하셔서 최적화에 사용하실 수 있습니다.저희는 이 값을 0.5로 설정해 놓고 사용하고 있습니다. (50%)hbase.regionserver.global.memstore.lowerLimit / hbase.regionserver.global.memstore.upperLimit이 두 개의 설정은 HBase에서 Write 한 값들을 메모리에 캐쉬하고 있는 memstore가 Heap 영역의 얼마만큼을 할당받을지를 나타냅니다. 이 값이 너무 작으면 메모리에 들고 있을 수 있는 Write의 양이 한정되기 때문에 디스크로 잦은 flush가 일어나게 됩니다. 반대로 너무 크면 GC에 문제가 있을 수 있으며 Read Cache로 할당할 수 있는 메모리를 낭비하는 것이기 때문에 좋지 않습니다.lowerLimit와 upperLimit의 두 가지 설정이 있는데, 두 개의 설정이 약간 다른 뜻입니다.만약 memstore 크기의 합이 lowerLimit에 도달하게 되면, Regionserver에서는 memstore들에 대해서 'soft'하게 flush 명령을 내리게 됩니다. 크기가 큰 memstore 부터 디스크에 쓰이게 되며, 이 작업이 일어나는 동안 새로운 Write가 memstore에 쓰일 수 있습니다.하지만 memstore 크기의 합이 upperLimit에 도달하게 되면, Regionserver는 memstore들에 대한 추가적인 Write를 막는 'hard'한 flush 명령을 내리게 됩니다. 즉, 해당 Regionserver이 잠시 동안 Write 요청을 거부하게 되는 것입니다. 보통 lowerLimit에 도달하면 memstore의 크기가 줄어들기 때문에 upperLimit까지 도달하는 경우는 잘 없지만, write-heavy 환경에서 Regionserver가 OOM으로 죽는 경우를 방지하기 위해서 hard limit가 존재하는 것으로 보입니다.hfile.block.cache.size와 hbase.regionserver.global.memstore.upperLimit의 합이 0.8 (80%)를 넘을 수 없게 되어 있습니다. 이는 아마 read cache 와 memstore의 크기의 합이 전체 Heap 영역 중 대부분을 차지해 버리면 HBase의 다른 구성 요소들이 충분한 메모리를 할당받을 수 없기 때문인 듯합니다.저희는 이 두 개의 설정 값을 각각 0.2, 0.3으로 해 놓았습니다. (20%, 30%)ipc.client.tcpnodelay / ipc.server.tcpnodelay / hbase.ipc.client.tcpnodelayHDFS의 tcpnodelay 와 비슷한 설정입니다. 기본값은 전부 false입니다.이 설정을 true로 하기 전에는 Get/Put 99%, 99.9% Latency가 40ms 와 80ms 근처에 모이는 현상을 발견할 수 있었습니다. 전체 요청의 매우 작은 부분이었지만, 평균 Get Latency가 1~2ms 내외이기 때문에 99%, 99.9% tail이 평균 Latency에 큰 영향을 미쳤습니다.이 설정을 전부 true로 바꾼 후에 평균 Latency가 절반으로 하락했습니다.Heap memory / GC 설정저희는 m2.4xlarge가 제공하는 메모리 (68.4GB)의 상당 부분을 HBase의 Read/Write cache에 할당하였습니다. 이는 보통 사용하는 Java Heap 공간보다 훨씬 큰 크기이며 심각한 Stop-the-world GC 문제를 일으킬 수 있기 때문에, 저희는 이 문제를 피하고자 여러 가지 설정을 실험하였습니다.STW GC time을 줄이기 위해서 Concurrent-Mark-and-sweep GC를 사용했습니다.HBase 0.92에서부터 기본값으로 설정된 Memstore-Local Allocation Buffer (MSLAB) 을 사용했습니다.hbase.hregion.memstore.mslab.enabled = true #(default)hbase-env.sh 파일을 다음과 같이 설정했습니다.HBASE_HEAPSIZE = 61440 #(60GB)HBASE_OPTS = "-XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=70 -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps"GC log를 Python script로 Parsing해서 STW GC 시간을 관찰하고 있습니다. 지금까지 0.2초 이상의 STW GC는 한 번도 발생하지 않았습니다.그 밖에 도움이 될 만한 설정들hbase.hregion.majorcompactionHBase는 하나의 Region에 대해서 여러 개의 StoreFile을 가질 수 있습니다. 그리고 주기적으로 성능 향상을 위해서 이 파일들을 모아서 하나의 더 큰 파일로 합치는 과정을 진행하게 됩니다. 그리고 이 과정은 많은 CPU usage와 Disk IO를 동반합니다. 그리고 이때 반응 속도가 다소 떨어지게 됩니다. 따라서 반응 속도가 중요한 경우에는, 이 Major compaction을 off-peak 시간대를 정해서 manual 하게 진행하시는 것이 좋습니다.저희는 사용자의 수가 상대적으로 적은 새벽 시간대에 crontab 이 실행시키는 script가 돌면서 전체 Region에 대해서 하나하나 Major Compaction이 진행되도록 하였습니다.기본값은 86,400,000 (ms)로 되어 있는데, 이 값을 0으로 바꾸시면 주기적인 Major Compaction이 돌지 않게 할 수 있습니다.hbase.hregion.max.filesizeHBase는 하나의 Region이 크기가 특정 값 이상이 되면 자동으로 2개의 Region으로 split을 시킵니다. Region의 개수가 많지 않을 때는 큰 문제가 없지만, 계속해서 데이터가 쌓이게 되면 필요 이상으로 Region 수가 많아지는 문제를 나을 수 있습니다. Region 수가 너무 많아지면 지나친 Disk IO가 생기는 문제를 비롯한 여러 가지 안 좋은 점이 있을 수 있기 때문에, split 역시 manual 하게 하는 것이 좋습니다. 그렇다고 Table의 Region 수가 너무 적으면 Write 속도가 떨어지거나 Hot Region 문제가 생길 수 있기 때문에 좋지 않습니다.HBase 0.92.1 에서는 기본값이 1073741824(1GB)로 되어 있는데, 저희는 이 값을 10737418240(10GB)로 늘인 후에 manual 하게 split을 하여 Region의 개수를 조정하고 있습니다.hbase.hregion.memstore.block.multipliermemstore의 전체 크기가 multiplier * flush size보다 크면 추가적인 Write를 막고 flush가 끝날때까지 해당 memstore는 block 됩니다.기본값은 2인데, 저희는 8로 늘려놓고 사용하고 있습니다.dfs.datanode.balance.bandwidthPerSec부수적인 설정이지만, HDFS의 Datanode간의 load balancing이 일어나는 속도를 제한하는 설정입니다. 기본값은 1MB/sec로 되어 있지만, 계속해서 Datanode를 추가하거나 제거하는 경우에는 기본값으로는 너무 느릴 때가 있습니다. 저희는 10MB/sec 정도로 늘려서 사용하고 있습니다.dfs.namenode.heartbeat.recheck-intervalHDFS namenode에만 해당되는 설정입니다.Datanode가 응답이 없는 경우에 얼마 후에 Hadoop cluster로부터 제거할 것인지를 나타내는 값입니다.실제로 응답이 없는 Datanode가 떨어져 나가기까지는 10번의 heartbeat가 연속해서 실패하고 2번의 recheck역시 실패해야 합니다. Heartbeat interval이 기본값인 3초라고 하면, 30초 + 2 * recheck-interval 후에 문제가 있는 Datanode가 제거되는 것입니다.기본값이 5분으로 되어 있는데, fail-over가 늦어지기 때문에 사용하기에는 너무 큰 값입니다. 저희는 문제가 있는 Datanode가 1분 후에 떨어져 나갈 수 있도록 이 값을 15,000 (ms) 으로 잡았습니다.Read short-circuitRegionServer가 로컬 Datanode로부터 block을 읽어올 때 Datanode를 통하지 않고 Disk로부터 바로 읽어올 수 있게 하는 설정입니다.데이터의 양이 많아서 Cache hit이 낮아 데이터 대부분을 디스크에서 읽어와야 할 때 효율적입니다. Cache hit에 실패하는 Read의 Throughput이 대략 2배로 좋아지는 것을 확인할 수 있습니다. OLAP용 HBase에는 매우 중요한 설정이 될 수 있습니다.하지만 HBase 0.92.1-cdh4.0.1까지는 일부 Region이 checksum에 실패하면서 Major compaction이 되지 않는 버그가 있었습니다. 현재 이 문제가 해결되었는지 확실하지 않기 때문에 확인되기 전에는 쓰는 것을 추천하지는 않습니다.설정하는 방법은 다음과 같습니다. dfs.client.read.shortcircuit = true #(hdfs-site.xml) dfs.block.local-path-access.user = hbase #(hdfs-site.xml) dfs.datanode.data.dir.perm = 775 #(hdfs-site.xml) dfs.client.read.shortcircuit = true #(hbase-site.xml)Bloom filterBloom filter의 작동방식에 대해 시각적으로 잘 표현된 데모 페이지HBase는 Log-structured-merge tree를 사용하는데, 하나의 Region에 대해서 여러 개의 파일에 서로 다른 version의 값들이 저장되어 있을 수 있습니다. Bloom filter는 이때 모든 파일을 디스크에서 읽어들이지 않고 원하는 값이 저장된 파일만 읽어들일 수 있게 함으로써 Read 속도를 빠르게 만들 수 있습니다.Table 단위로 Bloom filter를 설정해줄 수 있습니다.ROW와 ROWCOL의 두 가지 옵션이 있는데, 전자는 Row key로만 filter를 만드는 것이고, 후자는 Row+Column key로 filter를 만드는 것입니다. Table Schema에 따라 더 적합한 설정이 다를 수 있습니다.저희는 데이터 대부분이 메모리에 Cache 되고 하나의 Region에 대해서 여러 개의 StoreFile이 생기기 전에 compaction을 통해서 하나의 큰 파일로 합치는 작업을 진행하기 때문에, 해당 설정을 사용하지 않고 있습니다.결론지금까지 저희가 비트윈을 운영하면서 얻은 경험을 토대로 HBase 최적화 설정법을 정리하였습니다. 하지만 위의 구성은 어디까지나 비트윈 서비스에 최적화되어 있는 설정이며, HBase의 사용 목적에 따라서 달라질 수 있음을 말씀드리고 싶습니다. 그래서 단순히 설정값을 나열하기보다는 해당 설정이 어떤 기능을 하는 것인지 저희가 아는 한도 내에서 설명드리려고 하였습니다. 위의 글에서 궁금한 점이나 잘못된 부분이 있으면 언제든지 답글로 달아주시길 바랍니다. 감사합니다.저희는 언제나 타다 및 비트윈 서비스를 함께 만들며 기술적인 문제를 함께 풀어나갈 능력있는 개발자를 모시고 있습니다. 언제든 부담없이 [email protected]로 이메일을 주시기 바랍니다!
조회수 1799

잔디의 새싹 같은 안드로이드 개발자 Gary를 만나다.

맛있는 인터뷰 : 안드로이드 개발자(Android Developer) Gary 편집자 주잔디와 함께 하는 멤버는 총 35명. 국적, 학력, 경험이 모두 다른 이들이 어떤 스토리를 갖고 잔디에 합류했는지, 무슨 일을 하고 있는지 궁금해하는 분들이 많습니다. 잔디 블로그에서는 이 궁금증을 해결해 드리고자 ‘맛있는 인터뷰’를 통해 ‘잔디’ 멤버들의 이야기를 다루고 있습니다.인터뷰에서 가장 기초적인 질문. 예상하신 자기소개 부탁한다.G : 잔디 개발자 중 제일 어린! 핵심 키워드다. 강조 부탁한다. 가장 어린! 안드로이드 플랫폼 개발을 맡은 Gary다(이하:G). 잔디 입사한 지는 9개월 되었다. 특별한 일 없이 정말 열~! 심히 개발만 했다. 일주일 전부터 식당 선택을 강요(?)했다. 이 식당을 선택한 이유는 무엇인가?G : 음식이 푸짐하게 나오기도 하지만 조명이 좋다. 인터뷰 중 사진을 찍는다고 들었는데 그 사진이 예쁘게 나올 것 같아서 선정했다. 게다가 음식이 정갈하다. 안에 룸도 있어서 회식하기도 좋다. 내 입이 복잡하질 않아서 뭘 먹어도 다 맛있다. 어차피 다 맛있는 거 사진이라도 잘 나와야 한다 싶어서 선택하게 되었다. 잔디에 들어오게 된 계기는?G : 모집 공지가 뜨길래.. 농담이다^^; 전 직장과의 시스템이 다른, 자체 서비스를 하는 회사에 가보고 싶었다. 전 직장에서는 기획, 서버, 디자인, 개발을 각각 다른 회사에서 진행했다. 내가 속한 회사는 개발만 진행했다. 처음부터 끝까지 한 곳에서 서비스하는 회사를 가보고 싶었다. 또한, 기술 스택이 너무 좋았다. 이를 통해 앞으로 나의 실력이 일취월장할 수 있겠다는 생각이 들었다. 9개월 동안 많이 발전한 것 같은가?G : 상당히 많이 발전했다. 어떤 부분에서 발전한 것 같은가?G : 이전 회사에서는 일정에 쫓기다 보니 개발 자체에서 설계라는 게 없었다. 손 가는 데로, 일단 만들고 보자라는 식으로 신기술이고 뭐고 공장처럼 찍어내는 것이 일이었다. 하지만 잔디는 다르다. 2주 단위로 생각을 통해 설계도 해보고 ‘객체지향 설계 5대 원칙’ 등 다양한 사항을 고려해보며 많은 고민 끝에 개발하는 것이 너무 좋다. 이를 통해 개발자로서 더욱 성장한 것이 느껴진다. 이전 회사보다는 일찍 퇴근하는 편인가?G : 이전 회사는 철야, 야근 거의 매일 했다. 입사한 지 9개월 정도 되었는데 이제야 사람답게 사는 것 같다. 그동안은 짐승인 줄 알았다. 일어나면 출근하고 퇴근하면 자고. 9개월 동안 사람답게 살면서 잠도 푹 잤다. 몸이 편해지면 사람 얼굴이 확 산다고 하던데 생긴 건 나아지지 않더라. 옛말도 틀린 말이 있나 보다. (하하) 주말엔 뭐하시는가?G : 집돌이 성향이라 집에 있는 경우가 많다. 밖에 나가면 이웃 주민들과 소통하기도 한다. 지금 사는 곳은 취업한 지 얼마 안 된 사회초년생들에게 국가에서 주는 ‘행복주택’이라는 곳이다. 그곳엔 대부분 사회초년생이라 연령대가 20대 후반에서 30대 초반 정도 된다. 그분들과 소통을 하며 지내고 있다. 나이가 비슷하니 공감대 형성도 되고 행복주택에서 행사 같은 걸 많이 해서 문화생활 영위하는 듯하다. 말 그대로 사람 사는 듯한 느낌이다. 서울 집값이 너무 비싸다. 행복주택은 저렴한 편인가?G : 다른 원룸에 비교하면 저렴한 편이다. 보증금이 들어가지만, 월세는 10만 원 전후다. 서울에서 월세 10만 원 전후라면 저렴한 편 아닌가? 사회 초년생분들께 추천한다. 이웃들도 좋고 문화생활도 하고. 엄청나지 않은가? 신청 후 당첨이 되어야 하지만 당첨되기 쉬운 편이다. 꼭 한번 도전해봐라. 처음 들어왔을 때 잔디는 어땠는가?G : 사실 처음 들어왔을 때 사무실이 시끌벅적하며 소통이 아주 활발할 줄 알았다. 그런데 딱 들어오니 어?! 음? 오?!… 조용하다. 진짜 활발한 곳은 따로 있었다. 목소리가 아닌 손가락으로 얘기하는 곳. 잔디 앱이었다. 사무실 자체는 너무 조용한데 잔디 앱 안에서 매우 활발하다. 아이러니하지만 의사소통은 아주 활발했다. 잔디의 생활 중 가장 마음에 드는 문화는?G : 영어 이름을 사용하며 상호 간에 존중하는 문화다. 30년 동안 한글 이름으로만 살았는데. 회사만 오면 Gary라고 부른다. 첨엔 이게 날 부르는 건지도 잘 몰랐지만 익숙해지니 너무 좋다. 수평적인 관계의 시작이 무엇인지 알게 되었다. 이전 회사와는 다르게 잔디에서는 수평적인 관계여서 의견 개진이 편했다. 의견을 나눌 수 있다는 것이 너무 좋았다. 물론 손끝으로 얘기하지만:D 감정표현도 이모티콘으로 한다. 표정은 무표정이지만 손가락은 웃고 있달까? 내 얼굴은 무표정인데 프랑키 (파랑몬스터 캐릭터)가 웃어준다. 이젠 오프라인으로도 소통이 되었으면 한다. 사무실 밖에선 말이 많으신 분들인데. 사무실만 들어오면 조용하시다. 손으로 말하고 계시니까. (웃음) 회식은 자주 하는가?G : 팀마다 다른 것 같다. 팀 내에서 석 달 치 회식비를 모아서 한 번에 하던가 쪼개서 자주자주 하던가. 어차피 쓰는 돈은 같으니까. 이루고 싶은 꿈이 있다면?G : 백수가 되고 싶다. (비장) 충분한 불로소득이 있는. 소득과 상관없이 내 맘대로 살 수 있는 그런 백수가 되고 싶다. 회사를 가고 싶으면 회사를 가고 사업을 하고 싶으면 사업을 하는 그런 백수(하하). 사실 프로그래머로서 직업을 정했을 때는 최고의 프로그램을 만들어보는 게 꿈이었다. 또한, 안드로이드로 시작했으니 구글에서 종지부를 찍자! 이런 꿈을 꾸었다. 그런데 이전 직장이 너무 힘들었나 보다. 꿈이 변했다. 백수로. 하루는 7개월 정도 만에 칼퇴근하고 집에 갔더니 어머니께서. “너 잘렸냐?”라고 물어보시더라. 그땐 내 회사 생활에 문제가 있구나 싶었다. 백수는 아니지만 일과 삶의 밸런스가 맞는 삶을 살고 싶다. 다음 인터뷰어에게 하고 싶은 질문이 있나?G : 회사 내에 다른 팀원들과 지금 먹고 있는 음식을 같이 먹을 수 있다면 누구랑 같이 먹고 싶은가?#토스랩 #잔디 #JANDI #팀원소개 #인터뷰 #기업문화 #조직문화 #사내문화 #팀원자랑
조회수 1152

[인터뷰] Humans of MEME, 그 다섯 번째 주인공을 만나다. - 순간을 행복하게 살아가는 졔졔의 이야기

안녕ㅎr세요 !멋진 미미박서의 이야기를 담아오는 MOTH 입니다 !이번 주에는미미박스 사이트, 상품 페이지나 프로모션 등미미박스를 더욱 아름답게 만들어주시는 디자이너 분을 만나보았어요 !오늘의 주인공 jyejye 를 만나러 가볼까용?Q. 졔졔! 안녕하세요. 졔졔는 그렇다면 전공이 디자인 계열이신가요?A. 아니요. 저는 미생물학과였어요. 제 전공으로 학위를 받고 직업군을 가지게 된다면, 보통 제약회사 아니면 화장품 R&D 에서 제품을 연구하는 일을 하게 되는 전공이에요.( Moth : 와우! 그러면 어떻게 디자인을 하고 계신거에요? )저는 어렸을 때부터 미술에 관심이 많았어요. 교과목 수업 중 미술 시간이 사실 제일 행복했었거든요. 근데 그 당시 스스로 생각해봤을 때, 중학생 때부터 미술을 시작하는 것이 늦었다고 생각했었던 것 같아요. 당시 미술 학원을 다니고 벌써부터 예중∙예고의 과정을 밟고 있는 친구들도 많았구요. 근데 사실 생각해보면 ‘나는 늦었다, 힘들 것 같다, 안될 것 같다’ 이런 것이 다 핑계 같고 또 그만큼 하고 싶은 용기가 없었던 것 같아요. 그런데 어른이 되어서도 디자인 하는 것이 굉장히 즐겁고 재밌다는 것을 점점 스스로 느끼는 것 같았어요. 대학생 때에도 당시 전공 교수님께서도 전공을 살려서 일하라고 하시는데 제가 스스로 생각했을 때 대학교 이후의 제 삶에서도 이렇게 보내게 된다면, 굉장히 후회할 것 같은 거예요. 부모님도 사실 그 방향으로 가시면 좋아하셨거든요. 그랬는데 그 때, 제가 용기를 가졌던 것 같아요. 이과에 가고 대학교에 진학하고, 그런 것이 어떻게 보면 부모님이 원하시는 안정적인 방향의 삶 쪽으로 간 것이었는데, 제가 결국에도 직업을 그렇게 선택한다면 정말 후회할 것 같았고 제 삶이 즐겁지 않을 것 같았어요. 그래서 결국 졸업 한 후, 약 1~2년정도 무작정 배워야겠다는 결심으로 웹디자인 학원도 다니면서 이것 저것 만들어보며 다시 새롭게 디자인을 시작했어요.    Q. 정말 용기 있는 선택이셨네요. 다시 새로운 길을 가기 정말 어렵잖아요. 지금은 어떠세요, 용기 낸 선택에 만족하시나요?A. 네. 사실 제 대학교 생활만 봐도, 이미 디자인으로 마음이 기울어져 있었을지도 몰라요. 대학생 때 발표하며 PPT를 만들잖아요. 저는 내용도 내용이지만, 그것을 더 잘 보이고 집중되게 만들고 싶었어요. 발표 시간에 대부분 딴짓을 하는 경우도 많지만 집중을 하게 만드는 요소로 비주얼적인 것이 크잖아요. 그렇게 이 발표를 집중하게 만들고 싶었어요. PPT의 내용도 내용이지만, 어떻게 구성하고 내용을 풀어나가는 것이 중요한 것을 느껴서 그 당시에도 디자인 측면에서 많이 집중했었어요. 주변 사람들도 제가 평소에 디자인하는 것을 좋아하는 것을 아셔서 학회활동에서도 과티를 만드는 것도 저에게 맡겨서 디자인 해보라고도 하시는 등요.학교생활만 돌아봐도 항상 제 일상엔 그런 것이 많이 있었던 것 같아요. 그래서 결국에는 평소에도 제가 좋아하는 것들을 항상 느끼고 있었기 때문에, 졸업 후에도 직업을 선택할 수 있는 지표가 되어줬던 것 같아요. Q. 그렇다면 어떻게 미미박스에 오시게 되셨어요?A. 사실 미미박스에 가장 끌렸던 것이 기업문화였어요. 저는 다른 무엇보다도 제가 일할 수 있는 환경이 중요하다고 생각해요. 좋지 않은 환경에서 제가 제 일만 하여 높은 보수를 받는 것이 아니라, 지금 이 순간을 즐겁고 행복하게 보내는 것이 결국에는 나중에도 행복할 수 있는 것 같아요. 그래서 순간 순간을 즐겁게 일할 수 있게 만드는 기업문화가 제일 매력있게 느껴졌던 것 같아요. 그렇게 미미박스에 들어오게 되었고, 자연스레 화장품에도 관심이 생겼어요. 기업문화 때문에 회사에 들어왔는데 화장품에도 관심이 생겼고, 화장품에 관심이 생기다보니 이 화장품을 더 잘 보이게 하는 콘텐츠를 만들어야겠다는 열정으로 자연스럽게 이어졌네요(웃음).  저는 제가 걸어왔던 발자취와 경험들을 중요하게 생각해요. 결국 지금을 기준으로 했을 때는 모든 것이 다 경험이잖아요. 나중에 어떻게 쓰이는지 모르는 거더라고요. 힘들 때도 정말 많았어요. 버티고 버티면서, 그렇게 버텼던 순간들이 나중에는 도움이 많이 되더라구요. 그 시간들이 우리가 인지하지 못한 채로 잘 흘러가잖아요. 그 흘러가는 순간에도 최선을 다하면, 그게 허투루 쓰이는 경우는 없는 것 같아요. 대학교 4년 동안 배웠던 전공을 직업으로 선택한 것도 아니니 그 시간도, 등록금도 아깝다고 생각했어요. 그런데 제가 배우고 경험했던 순간들이 항상은 아니더라도 생각보다 디자인을 할 때도 응용할 수 있는 부분이 생기며 ‘내가 한 모든 경험들이 다 쓸모 없는 것은 아니구나’라는 생각이 들더라구요. 예를 들면, 연예인 이성경씨도 피아노를 전공했지만 모델이 됬는데, 모델 일을 하기도 연기도 하면서 기회가 생겨서 피아노를 연주하기도 하더라고요. 그런 것처럼 지금 하고 있는 일이 옳다, 그르다 라고 판단하기 보다 그저 긍정적으로 받아들이면 좋을 것 같아요. 언제 어떤 순간들이 일어날지 모르니까요.저는 부끄럼도 많고 두려움도 많으면서도 도전정신도 있거든요. 상반적인 것을 같이 가지고 있고 해보고 싶은 것도 많아요. 이것 저것 해보고싶고.. 등 그런 것들이 결국 모여서 제가 되기도 하니깐요(웃음).그래서 제가 아직도 쓰는 슬로건이 manymuch 이에요. 뭐든지 많이 경험해보는 것이 중요한 것 같아요.저는 강박관념을 가지고 주말에 나가는 경우도 꽤 있어요. 정말 피곤해서 쉬고 싶은데 ‘그래 쉬자’ 라고 생각하면 또 몸이 근지러운 성향이기도 하고요. 피곤해도 나갔다 오면 ‘역시 나오길 잘했네.’ 라는 생각이 들어서 가능하면 주말에 새로운 곳에 많이 가보려고 해요. 전시가 있으면 보러가고 새로운 공간에 계속 찾아가보는 것도 디자이너한테는 감각을 키울 수 있어요. 제가 생각하기에 디자인은 아무것도 없는 것에서 완전한 창조가 일어날 수는 없다고 생각해요. 이것 저것 많이 보면서 응용하고 다양하게 생각할 수 있는 스펙트럼이 넓어지는 것 같아요. 사람들이 어떠한 분위기를 원하는지, 요즘 트렌디한게 무엇이며 제가 디자인을 하고 싶은 욕심이 있으니깐 더 찾아보려고 하는 것 같아요.Q.  졔제는 어떤 목표가 있으신가요?A. 졔졔가 바꾼 한정특가 이벤트 가이드 변경기본적인 한정특가 이벤트 가이드가 있어요. 한정특가 작업물을 만들어야 할 때, 그 이벤트가 디자인적으로 고객이 느낄 수 있을만큼 후킹하게 느껴져야 하잖아요. 그래서 이벤트 가이드 자체를 바꾸었어요. 누군가 저한테 시켜서가 아니라 이렇게 디자인을 하면 고객들의 눈에 확 들어오지 않을까? 라는 생각으로 기본 가이드 룰에 어긋나지 않으면서 좀 더 눈에 띄게 바꾸었어요. 그렇게 제가 만든 것이 또 자연스레 가이드가 되었어요. MD분들도 제가 만든 방식으로 제작을 해달라고 요청해주신다던지, 그런 것이 가장 많이 뿌듯했던 것 같아요. 기존의 것을 개선하는 것도 일의 일부며 딱 주어진 일만은 하고 싶지는 않아요. 앞으로도 좀 더 고객의 눈을 사로잡을 수 있게 개선하고 싶은 마음이 커요.어느 정도 퍼포먼스를 내고 있지만 완전히 퍼포먼스를 냈다고 생각은 안해요. 제가 하는 업무에서 스스로 만족할 때까지 그리고 사람들이 어느 정도 인정할 수 있을 정도의 퍼포먼스를 내고 싶고, 그게 또 제 목표에요. 앞으로 우린 어디에 있던 간에 계속 나아갈 사람이잖아요(웃음).졔졔와 이야기를 나누며저는 개인적으로는 삶의 방향과업무를 하는 마음가짐 등 배울 수 있었던 것 같아요 !사실 이번 주의 이야기는 인터뷰라기보다 졔제가 저의 고민도 많이 들어주시고격려도 많이 해주시며 이야기 하면서 정말 시간 가는 줄 몰랐답니다..맛있는 코~퓌~도 사주신 졔졔 흑흑흐그흑 ㅠㅠㅠㅠ항상 쉬운 것에 안주하지 않고더 나은 것을 만들어내기 위해 노력하시는 졔졔이런 멋진 미미박서분이 계셔서미미박스가 더욱! 멋진 회사로 성장할 것 같아요 !다음에는 더욱 알찬 이야기로 찾아오도록 하겠습니다 :  )그럼 이 10000 안녕히계세요!
조회수 87

타인의 스트레스

#3안녕하세요. STRESS IN SEOUL입니다. 이곳에 들어오려면 암호가 필요합니다. 요즘 당신을 힘들게 하는 스트레스를 1분 동안 깊게 생각해주세요. 우리는 거기서부터 시작할 겁니다. 그럼 문을 열고 들어오세요.“나를 괴롭히는 스트레스라... 너무 많은데? “  두근거리는 마음으로 문을 노크했다.똑똑“네, 들어오세요.”작지만 나긋한 여자의 목소리가 들렸다.조심스럽게 문을 열어보니 어두침침했던 복도와는 달리 환한 빛이 쏟아져 들어왔다. 끼이익 소리와 함께 열린 문 안에서는 새파란 청귤 냄새가 났다. 작년에 제주에 갔을 때 귤 농장 옆에 딸려있는 작은 커피숍에 들어갔었는데, 주인아주머니가 손수 담근 것이라며 내어주셨던 청귤차를 떠오르게 하는 상큼한 시트러스 향이었다. 그제야 아침에 일어나서 아무것도 먹지 않았다는 사실이 떠올랐다. 마른침을 꿀꺽 삼키며 입을 열었다. “저기요...”“안녕하세요. STRESS IN SEOUL입니다. “친구가 3시 30분에 예약을 했다고 하더라고요.”“네. 박소연 님으로 예약하셨죠?” “네. 제 친구인데, 좀 늦는다고 해서 저만 먼저 왔어요.”    “네. 기다리고 있었어요. 소파에 편안히 앉으셔서 긴장을 풀고 준비가 되면 앞에 놓인 카드를 열어보세요. 그런데 이상하게도 여자의 목소리는 들리는데, 어디 있는 건지 보이지가 않았고, 내 앞에는 푹신해 보이는 소파와 작은 탁자 하나가 덩그러니 놓여있었다. 한참을 두리번거리면서 오느라 꽤 긴장했던 탓인지 다리에 피로가 몰려와서 일단 소파에 앉았다. 소파는 생각했던 것보다 더 푹신했다. 탁자 위에는 작은 모래시계와 봉투가 하나 놓여있었는데, 아마도 이걸 열어보라는 얘기 같았다. ‘아니 말로 설명해주면 될걸 뭘 또 읽어보래...’ 입으로는 구시렁대면서도 손으로는 봉투를 집어 들고 이미 열어보고 있었다. 불평이 가득해도 시키는 것은 또 곧 잘 해내는 성격이 여기서도 어김없이 발휘되고 있었다. 내 별명이 괜히 투덜이 스머프인 것이 아니다. 봉투 안에는 포스트잇 한 묶음과 함께 쪽지가 한 장 들어있었다.  모래시계를 뒤집고 요즘 당신을 힘들게 하는 스트레스를 1분 동안 깊게 생각한 뒤, 눈앞에 놓여있는 포스트잇에 당신의 스트레스를 적어주세요. 한 장에 한 개씩 적어서, 벽에 붙여주세요. 벽을 가득 채워도 괜찮습니다. - 제한 시간 9분 -포스트잇에는 “What is your stress?”라고 적혀있었고, 모래시계 위에는 ‘3 minute’이라고 적혀있었다. 제한 시간이 10분도 아니고 5분도 아니고 9분이라는 건, 모래시계를 세 번 뒤집으면 나올 수 있는 시간이어서인가? 그럼 차라리 9분짜리 모래시계를 샀으면 한 번만 뒤집으면 됐잖아. 왜? 9분짜리 모래시계는 찾기가 어려운가? 9분이 어때서 3분짜리도 있는데 9분짜리쯤은 있을 법도 한 거 아니야? 별 쓸데없는 걸 다 계산했네 하며 피식 웃음이 났지만, 하라는 것은 안 하고 별 쓸데없는 것에 에너지를 쏟고 있는 건 사실 나였다. 그날도 그랬다. 쓸데없이 호기심이 많은 것이 가장 큰 문제였다. 세심한 관찰력이 숨어있던 호기심에 발동을 걸어버리면 혼자서 납득이 될 때까지 꼬리에 꼬리를 무는 생각이 펼쳐지는 것을 도저히 막을 수가 없었다. 그렇게 핵심을 놓쳐버리는 것이 한두 번이 아니었다. 면접날도 그랬다. 그래. 가만 생각해보니 내가 중요한 날이라고 생각했던 날에는 어김없이 머릿속에서 이런 짓을 벌였다. 면접장 앞에 앉아서 순서를 기다리며 외웠던 내용들을 머릿속으로 되뇌며 덜덜 떨고 있는데, 기둥 옆에 하늘색 체크무늬가 있는 손수건이 떨어져 있는 것을 발견한 것이다. 손수건은 다리미로 4번쯤 접혀있는 것으로 보니 누군가 곱게 다려서 가방에 넣은 것 같은데 무슨 이유에서인지 모르게 바닥에 툭 떨어져 있었다. 요즘 누가 손수건을 갖고 다니지? 여자? 남자? 잔 체크무늬가 반복되는 걸 보면 남자일 가능성도 높다. 손수건을 접힌 모양을 보니 손에 들고 있다가 떨어뜨린 것 같은 느낌도 든다. 누군가에게 전해주려고 들고 있다가 놓친 걸까? 누구? 여자? 어쩌면 그 사람은 감기가 걸렸을지도 모른다. 아니면 땀이 많은 사람일 수도 있겠지.. 그러나 어떤 사람이 주인이었든 간에 그것은 나의 면접의 통과 여부와는 아무런 관련이 없는 일이었다. 면접관이 내게 어떤 질문을 할지 예상문제를 달달 외우고 있어도 모자랄 천금 같은 시간에 나는 왜 그런 쓸데없는 생각을 계속했던 것일까. 그래. 그것은 회피였다. 나는 그저 그 순간을 벗어나서 다른 세상에 가고 싶었던 것이다. 타조가 위험한 상황에서 머리만 묻고 그 상황을 모면하려는 것처럼. 딱 그 불안한 타조가 바로 나였다. 머릿속이 복잡했다. 근데 이 여자는 어디에 있는 걸까? 왜 나와보지 않는 걸까? 궁금한 것들이 투성이었지만, 이미 내 손은 포스트잇을 만지작거리고 있었다. 모래시계를 뒤집고 포스트잇을 한 장 뜯어서 그간 나를 괴롭혀왔던 스트레스들을 떠올려봤다. 생각할수록 어찌나 많은지 내 스트레스만으로도 벽 한쪽을 다 채울 수 있을 것만 같았다. 그래 일단 하나만 써보자. 그동안 내 마음속을 헤집고 있었던 스트레스 하나를 포스트잇에 빠르게 휘갈겨 쓰고는 고개를 들어 벽을 보니 중학교 때나 봤던 것 같던 순서도가 그려져 있었다. 시작 스트레스를 받았는가? YES지금 나를 힘들게 하는 스트레스들을 다 적어보자YES 순서도를 눈으로 따라가 보니 초등학교 앞 떡볶이집 벽에 빼곡하게 붙어있던 포스트잇들처럼 이미 다른 사람들의 스트레스들이 붙어있었다.아... 내가 처음이 아니었구나... 갑자기 스트레스를 적으라니 속내를 들키는 것 같아서 두려웠는데, 생면부지 타인들이 적어놓은 스트레스들을 보니 왠지 모르게 마음이 놓였다. 모래시계를 한 번 더 뒤집고 천천히 남들의 스트레스들을 감상해보기로 했다.소설 STRESS IN SEOUL의 3번째 글입니다. 이 소설은 곧 현실이 됩니다.스트레스컴퍼니는 당신과 나의 스트레스를 해소하기 위해 태어났습니다. 당신이 스트레스에 굴복하지 않고, 즐겁게 극복할 수 있도록 세상에 없던 상품을 만들고 매달 마음을 나누는 모임을 진행합니다. 함께 성장하는 감정 멤버 1기를 모집합니다. 링크를 참조하세요. www.stresscompany.net https://www.facebook.com/stresscompany/ⓒ스트레스컴퍼니 - 무단 전재-재배포 금지

기업문화 엿볼 때, 더팀스

로그인

/