스토리 홈

인터뷰

피드

뉴스

조회수 771

Android Wear 개발하기

비트윈 팀은 지난달 비트윈에 Android Wear 앱 기능을 릴리즈했습니다. 즐거운 개발 경험이었지만, 힘들었던 점도 많았습니다. 어떤 과정을 통해서 개발하게 되었고, 내부 구조는 어떻게 되어 있는지, 신경 쓰거나 조심해야 할 점은 어떤 것들이 있는지 저희의 경험을 공유해보려고 합니다. 이 글을 통해 Android Wear 앱 제작을 고민하는 개발자나 팀이 더 나은 선택을 하는 데 도움이 되고자 합니다.Android Wear에 대해¶Android Wear는 최근 발표된 구글의 새 웨어러블 플랫폼입니다. 공개된 지 얼마 되지 않았음에도 불구하고 완성도 있는 디바이스들이 출시된 상태이며, 기존의 웨어러블 기기보다 기능과 가격이 매력 있다는 평가를 받고 있습니다. 또한, 2014 Google I/O에서 크게 소개되고 시계를 참가자들에게 나눠주는 등, 구글에서 강하게 밀어주고 있기 때문에 상당히 기대되는 플랫폼입니다.Android Wear의 알림 기능은 연결된 mobile1 기기와 연동됩니다. 예를 들어 메시지를 받았을 때 mobile과 wear에서 모두 알림을 받아볼 수 있고, Google Now와 연동하여 교통, 날씨 등 상황에 맞는 알림을 제공합니다.또, 여러 가지 앱들의 다양한 기능을 음성으로 제어하도록 하여 사용자에게 기존의 시계와는 완전히 다른 경험을 주고 있습니다.한국에서는 Google Play Store의 기기 섹션에서 구매가 가능합니다.Android Wear 개발하기¶Android Wear는 Android 플랫폼을 거의 그대로 사용하기 때문에, Android 개발 경험이 있는 개발자라면 아주 쉽게 개발을 시작할 수 있습니다. 비트윈에서는 구글의 80:20 프로젝트를 패러디한 100+20 프로젝트를 통해 개발을 진행하게 되었습니다. (하던 일을 다 해내면서 시간을 내어 진행한다는 의미로 100+20 프로젝트입니다. 하지만 가끔은 '20' 부분에 너무 몰입하여 0+20이 되기도 한다는 게 함정입니다...)Activity, Service 등 Android의 기본 component들을 모두 그대로 사용 가능하며, 손목에 찰 수 있는 크기의 화면에서 유용하게 사용할 수 있는 WearableListView, GridViewPager 같은 새 widget들이 추가되었습니다. 구글 개발자 사이트의 wearable training 섹션에서 자세한 안내를 볼 수 있습니다.비트윈의 아이디어¶비트윈 Android Wear 기능의 컨셉은, 항상 몸에 착용하는 Wear의 특징을 살려, '커플이 떨어져 있더라도, 항상 함께 있는 느낌을 주기' 였습니다. 그래서 아래와 같은 기능들이 기획되었습니다.Feel His/Her Heart (그대의 심장박동 느끼기): 상대방의 심장박동을 진동으로 재현해주기Where He/She Is (그/그녀는 어느 방향에 있을까?): 상대방의 위치를 나침반과 같은 형태로 보여주기 (안심하세요. 여러분. 방향만 알려주고 정확한 위치는 알려주지 않습니다!)Feel Memories (메모리박스): 언제든 추억을 떠올릴 수 있도록 비트윈의 기존 기능인 메모리박스(추억상자)를 Android Wear에서 구현하지만 이 아이디어들은 하루 만에 망하게 됩니다.메인 아이디어였던 심장박동 느끼기는 사용자가 요청하면 상대방의 시계에서 심장박동이 측정되어 사용자에게 상대방의 심장박동을 진동으로 재현해주는 멋진 기능이었습니다. 하지만 이 아이디어를 낼 때 심박센서가 탑재된 Android Wear 기기가 없었던 게 함정이었습니다.다음날 Android Wear Bootcamp에 참가하여 심박센서가 작동하는 삼성 Gear Live 기기를 사용해 볼 수 있었습니다. 결과는 충격이었습니다. 생각과는 달리 심박박동 측정 결과가 나오는데 10~20초가 걸리고, 그나마도 측정되는 동안은 올바른 위치에 시계를 차고 가만히 있어야 했습니다. 결국, 이러한 제약 때문에 사용자들이 실제로 유용하게 사용할 수 있는 기능이 될 수 없었습니다.그래서 계획을 수정하여 현실적으로 구현 가능한 기능들을 먼저 만들어 보기로 했습니다.목소리로 답변하기: 상대방에게 온 메시지에 Android Wear Framework에서 제공하는 음성인식을 이용하여 목소리를 텍스트로 바꾸어서 답장하기이모티콘 답변하기: 이모티콘을 사용자가 선택하여 이모티콘으로 답장하기비트윈 메모리박스: 비트윈의 기존 기능인 메모리박스(추억상자)를 Android Wear에서 구현처음의 원대한 계획에서 뭔가 많이 변경된 것 같지만, 기분 탓일 겁니다.내부 구현¶비트윈 Android Wear 앱은 크게 두 가지 기능을 가지고 있습니다. 하나는 상대방에게 메시지를 받았을 때, 메시지 내용을 확인하고 여러 가지 형태로 답장할 수 있는 Notification 기능이고, 다른 하나는 Wear에서 원래 Application의 일부 기능을 시작 메뉴를 통하거나 목소리로 실행시킬 수 있게 해주는 Micro App입니다. 해당 기능들의 스크린샷과 함께 내부 구조를 설명하겠습니다.우선 Notification 부분입니다. 앱 개발사에서 아무 작업도 하지 않더라도, 기본적으로 Android Wear Framework이 스크린샷 윗줄 첫 번째, 네 번째 화면과 같이 예쁜 알림화면과 Open on phone 버튼을 만들어 줍니다. 여기에 추가적인 기능을 붙이기 위하여 WearableExtender를 이용하여 목소리로 답장하기, 이모티콘 보내기 버튼을 덧붙였습니다.비트윈 Android Wear 스크린샷 - Notification둘째로는 Micro App 부분입니다. 여기에는 이모티콘 전송과 메모리박스를 넣었습니다. 이 부분은 일반적인 Android 앱을 만들듯이 작업할 수 있습니다비트윈 Android Wear 스크린샷 - Micro App화면을 보면 무척 단순해 보이지만 내부 구조는 간단하지가 않습니다. 연결된 화면들을 만들어내는 코드가 한곳에 모여있지 않고, 각기 다른 곳에 있는 코드들을 연결하여야 하기 때문입니다. Notification 하나를 만들 때에 Framework에서 만들어주는 1, 4번째 화면, Notification에 WearableExtender를 이용하여 덧붙이는 2, 3번째 화면, 그리고 다시 Framework에서 만들어주는 목소리로 답장하기 화면, 그리고 Wear 쪽의 Micro App을 통해 구동되는 이모티콘 선택 화면과 같이 여러 군데에 나누어 존재하는 코드가 연결됩니다.하나의 앱처럼 느껴지는 화면이지만 각각 다른 곳에 코드가 쓰여있습니다.그러면 이번에는 각 화면이 어떻게 연결되는지 알아보겠습니다.사용자가 상대방으로부터 받은 메시지를 Android Wear의 Notification으로 확인하고, 답장으로 이모티콘을 보내고자 하는 상황을 가정해 봅시다. 사용자가 Send Emoticon 버튼을 눌렀을 때 이모티콘 선택화면을 보여주고 싶은데, 이 행동에 대한 pending intent를 wear 쪽의 micro app이 아닌, mobile 쪽에서 받게 되어 있습니다. 이 때문에 아래의 표와 같이 mobile 쪽에서 pending intent를 받은 뒤 다시 wear 쪽으로 이모티콘 선택 화면을 보여주라는 메시지를 전송해줘야 합니다.이모티콘 전송 과정이번에는 메모리박스를 보겠습니다. 메모리박스도 단순한 화면이지만 mobile 쪽과 통신하여 내용을 불러와야 하므로 생각보다 해야 하는 일이 많습니다. Android Wear Message API와 Data API를 이용하여 데이터를 주고받아 사진을 화면에 보여줍니다.메모리박스를 보여주는 과정개발 시 신경 써야 하는 점¶개발하면서 주의 깊게 신경 써야 하는 점들이 있습니다.첫 번째로 코드 퀄리티입니다.Android Wear는 아직 성숙하지 않은 플랫폼이기 때문에 많은 사람이 받아들인 정형화된 패턴이 없습니다. 앞서 살펴보았듯이, 간단한 기능을 구현하려고 해도 상당히 복잡한 구조를 가진 앱을 만들게 되기에, 코드 퀄리티를 높게 유지하기 어려웠습니다비트윈 팀에서는 EventBus를 활용하여 코드를 깔끔하게 유지하려고 노력하였습니다. 이러한 문제를 해결할 수 있는 Guava의 Concurrent 패키지나, RxJava 등의 도구들이 있으니 익숙한 도구를 선택하여 진행하는 것을 추천합니다. 또한, 구글의 Android Wear 코드랩 튜토리얼의 내용이 매우 좋으니, 한번 처음부터 수행해 보면 좋은 코드를 만들 수 있는 아이디어가 많이 나올 것입니다.두 번째로는 원형 디바이스 지원 및 에러 처리입니다.처음부터 원형 디바이스를 신경 쓰지 않으면 마무리 작업 시 상당한 고통을 받게 됩니다. 원형 디바이스에 대한 대응법은 Android 개발자 트레이닝 사이트의 wearable layout 섹션에 자세히 나와 있습니다. 현재는 원형 디바이스를 처리하는 프레임웍에 약간 버그가 있지만, 곧 수정될 것으로 생각합니다.사용자 입력이 있을 때, 그리고 에러가 났을 때 적절하게 처리해주는 것은 제품의 완성도에 있어 중요한 부분입니다. Android Wear Framework에서 제공하는 ConfirmationActivity등을 활용하여 처리하면 됩니다.마지막으로 패키징입니다.자동 설치 패키징은 비트윈 팀에서도 가장 고생했던 부분입니다. Android Wear는 본체 앱을 설치하면 자동으로 함께 설치되는데, 앱이 정상작동하기 위해서는 몇 가지 까다로운 조건이 있습니다.build.gradle 의 applicationId 를 wear와 mobile 양쪽 모두 똑같이 맞춰야 합니다.Wear app의 AndroidManifest에 새롭게 선언한 permission이 있다면 mobile 쪽에도 포함해 주어야 합니다.기본적으로, 똑같은 key로 서명합니다. 다른 key로 sign 하는 경우는 문서를 참고해서 신경 써서 합니다.위 항목들은 아주 중요한 내용이지만 아직 문서화가 완벽하지 않으니 주의 깊게 진행해야 합니다.후기¶개발 과정에서 여러 가지 어려움이 있었지만, 무척 즐거웠던 프로젝트였습니다!우선 새로운 플랫폼에서 새로운 제품의 아이디어를 내고 만들어내는 과정이 많은 영감과 즐거움을 주었습니다.두 번째로는 Android Wear를 포함한 버전 출시 이후 구글플레이의 Android Wear 섹션 및 추천 앱 섹션에 올라가게 되어 홍보 효과도 얻을 수 있었습니다. 또한, 구글의 신기술을 적극적으로 사용하고자 하는 팀에게는 구글 쪽에서도 많은 지원을 해주기 때문에 도움도 많이 받았습니다.세 번째로는 기존의 Android 개발과 비슷하여 접근하기 쉬우면서도, 원하는 것을 구현하려면 상당히 도전적이어서 재미있었습니다.다만 조심해야 할 점은, 구글에서 적극적으로 밀고 있는 프로젝트라고 해서 다 성공하는 것은 아니라는 점입니다. 얼마만큼의 시간과 자원을 투자할지는 신중하게 생각하면 좋겠습니다.정리¶Android Wear는 새로운 기술과 플랫폼에 관심이 많은 개발자, 혹은 팀이라면 시간을 투자해서 해볼 만한 재미있는 프로젝트입니다. 하지만 완성도 있는 좋은 제품을 만들기 위해서는 생각보다 할 일이 많으니 이를 신중하게 고려하여 결정해야 합니다.구글의 튜토리얼 등에서 지칭하는 것과 마찬가지로, 이 글에서도 Android Wear와 연결된 휴대폰을 mobile이라 하겠습니다.↩저희는 언제나 타다 및 비트윈 서비스를 함께 만들며 기술적인 문제를 함께 풀어나갈 능력있는 개발자를 모시고 있습니다. 언제든 부담없이 [email protected]로 이메일을 주시기 바랍니다!
조회수 1896

CTE for postgresql and sqlalchemy

저희 서비스는 가게마다 웹에서 접속할 수 있는 어드민을 제공하는데, 프렌차이즈가 아닌 하나의 독립적인 가게들일 경우 정보를 가져와 나타내는 데는 굳이 CTE 를 쓸 필요가 없지만 프렌차이즈일 경우 본사와 지점들로 나누어져 있어서 본사와 지점들 정보를 다 가져오기 위해서 CTE 를 사용하게 되었습니다.그럼 postgresql 의 CTEReadme 에 나와 있는 예제와 sqlalchemy core 로 변환하는 것까지 살펴보겠습니다.CTE란?Common table expression 의 약자로 ‘공통 테이블 식’입니다.CTE 특징WITH절 같은 SELECT 문에서 효과적으로 테이블 식을 정의 할 수 있습니다.CTE는 VIEW의 사용방법과 비슷하지만, VIEW보다 편리합니다.VIEW와 달리 사전에 CTE를 정의할 필요가 없습니다.개체로 저장되지 않고, 쿼리 지속시간에만 존재합니다.CTE는 재귀 쿼리를 사용할 수 있습니다.재귀 CTE는 여러행을 반환 가능합니다.동일 문에서 결과 테이블을 여러번 참조 가능합니다.재귀 CTE 예제아래 예제는 ‘A’부서 하위에 있는 부서만 추출하는 예제입니다.일단 재귀 CTE를 이용한 쿼리를 사용하려면 ‘WITH RECURSIVE’ 키워드를 추가해야 합니다.Table ‘department’ 인접 리스트로 조직 구조를 나타냅니다.CREATE TABLE department ( id INTEGER PRIMARY KEY, -- department ID parent_department INTEGER REFERENCES department, -- upper department ID name TEXT -- department name ); INSERT INTO department (id, parent_department, "name") VALUES (0, NULL, 'ROOT'), (1, 0, 'A'), (2, 1, 'B'), (3, 2, 'C'), (4, 2, 'D'), (5, 0, 'E'), (6, 4, 'F'), (7, 5, 'G');부서 구조:ROOT-+->A-+->B-+->C | | | +->D-+->F +->E-+->G A의 하위 부서를 추출, 다음과 같은 재귀 쿼리를 사용할 수 있습니다.WITH RECURSIVE subdepartment AS ( -- non-recursive term SELECT * FROM department WHERE name = 'A' UNION ALL -- recursive term SELECT d.* FROM department AS d JOIN subdepartment AS sd ON (d.parent_department = sd.id) ) SELECT * FROM subdepartment ORDER BY name;위의 쿼리는 다음과 같이 설명할 수 있습니다.중간 테이블(Intermediate table), 작업 테이블(work table), 결과 테이블(result table)이 있습니다.초기화비재귀 구간을 실행 (SELECT * FROM department WHERE name = ‘A’)ResultTable = WorkTable = (‘A’) 결과 테이블과 작업 테이블에 결과를 배치합니다.IntermediateTable = () 중간 테이블을 비웁니다.재귀 쿼리 실행(SELECT d.* FROM WT AS d JOIN subdepartment AS sd ON d.parent_department = sd.id) 하위 부서와 작업 테이블을 바꾸고, 재귀 구간을 실행합니다.중간 테이블에 쿼리 결과를 할당합니다.결과 테이블 및 작업 테이블에 중간테이블 추가합니다.중간 테이블을 비웁니다.재귀가 끝났는지 확인2번 과정의 중간테이블이 비어 있으면 재귀의 실행이 종료되고, 결과 테이블은 반환됩니다.중간테이블이 비어 있지 않으면 다시 2번의 과정으로 돌아갑니다.“subdepartment”는 재귀 표현을 포함하고 있는 CTE입니다. 먼저 비재귀항이 평가되고, 다음 재귀항이 평가됩니다. 재귀항은 평가하고 처리하는 데이터가 없을 때까지 결과가 반복적으로 이전 결과에 추가됩니다. 끝으로 마지막 SELECT가 실행되고 데이터는 결과 집합에서 추출됩니다.CTE의 한계점SEARCH 및 CYCLE 절은 구현되지 않습니다.상호 재귀는 허용되지 않습니다.UNION ALL의 마지막 SELECT만 재귀 이름을 포함할 수 있습니다.재귀와 재귀스캔(RecursiveScan) 계획의 비용은 항상 0입니다sqlalchemy 로 변환sqlalchemy 에서 필요한 모듈들을 불러옵니다.from sqlalchemy import Table, Column, Text, Integer, MetaData, select metadata = MetaData() department 테이블을 정의합니다.department = Table('department', metadata, Column('id',Integer), Column('parent_department',Integer), Column('name',Text)) WITH 절부터 시작되는 CTE 부분의 비재귀항을 subdepartment로 만듭니다. 재귀 사용을 위해 .cte( recursive=True) 부분을 붙여줍니다.subdepartment = select([ department.c.id, department.c.parent_department, department.c.name]).where(department.c.name == 'A') \ .cte(recursive=True) department 와 subdepartment 에 각각 alias를 붙여줍니다.subd_alias = subdepartment.alias() department_alias = department.alias() CTE 부분의 재귀항과 비재귀 항을 union all 해주는 subdepartment를 만듭니다. (이 부분이 postgresql 예제 쿼리에서 봤던 WITH RECURSIVE subdepartment 전체를 나타내는 부분이라 할 수 있습니다.)subdepartment = subdepartment.union_all( select([ department_alias.c.id, department_alias.c.parent_department, department_alias.c.name]) \ .where(department_alias.c.parent_department == subd_alias.c.id)) 마지막으로 결과 쿼리를 출력하기 위한 statement를 만듭니다.statement = select([ subdepartment.c.id, subdepartment.c.parent_department, subdepartment.c.name]).order_by(subdepartment.c.name) 원문: CTEReadme참조: 공통 테이블 식 사용 ,공통 테이블 식을 사용하는 재귀 쿼리#스포카 #개발 #개발자 #서버개발 #개발팀 #꿀팁 #인사이트 #조언
조회수 723

사랑받지 않아도 되는 자유

누가 이로부터 자유로울 수 있을까?인간은 사회에서 관계를 맺기 시작하는 그 순간부터 그 대상자에게 사랑받고 싶어한다.누군가로부터 사랑받고 인정 받음으로써 성취감과 존재감을 느끼는 것은 어쩌면 너무 당연한 것이다.하지만 누군가의 애정을 얻는 다는 것은 쉬운 일이 아니다.경쟁과 갈등은 그렇게 사랑을 쟁취하기 위해 시작된다.부모의 사랑을 차지하기 위한 형제 자매사이의 본능적인 몸부림부터, 선생님의 애정을 차지하기 위한 친구들과의 성적 쟁탈전, 이성으로 부터 애정받기 위한 남녀간의 매력 발산 경쟁, 그리고 상사에게 사랑받기 위한 조직내 성과 쟁탈전에 이르기까지 인생 전체가 사랑과 인정을 갈구하는 쟁탈전이다.문제는 소수만이 누릴 수 있다는 것이다.누구에겐가 사랑받기 위해 지나치게 에너지를 쏟는 이들에 비해 '자존감'으로 무장하고 타인의 시선보다도 자신만의 길을 가는 이들을 보면 참으로 평화로워 보인다. 스스로를 사랑하고 인정함으로써 누군가에 기대어야 하는 '애정받기'이서 자유로울 수 있는 것이다.말 잘듣고 사랑받는 강아지는 늘 주인의 행동과 표정에 눈치보기에 쉼이 없다. 주인의 요구에 더 빨리 움직일 수록 먹이와 칭찬에 길들여지기 때문이다.연말이다.학교에서는 시험과 성적, 직장에서는 평가와 고과가 애정과 인정의 잣대가 된다. 특히 직정에선 자칫 인간의 비열한 모습이 드러나는 시기이다. 직장인의 숙명이다.직장으로부터의 탈출을 꿈꾸는 많은 이들은 이 비열함과 동의할 수 없는 사랑받기 게임에서 자유롭고 싶기 때문이다.사랑받지 않아도 되는 자유.타인의  평가로부터 자유로울 수 있는 용기.스스로 당당해지자
조회수 7336

HTTP 404 Status Code 에 대한 고찰

뭐가 문제였나필자는 현재 HMR(가정간편식) 커머스를 다루는 모 스타트업에서 백엔드 개발자로 재직 중이다. 말이 백엔드지 최근 변화되고 있는 트렌드에 맞춰 열심히 API 작성 셔틀을 하고 있다.API 개발에 주로 사용하는 HTTP 상태 코드는 주로 200 (정상), 400 (잘못된 요청), 401 (보안 토큰 에러), 403 (권한 없음), 404 (찾을 수 없음) 정도가 있었다.문제는 여기에서 발생했는데, API를 계속 개발해 나가다 보니 API 요청 시 데이터가 없을 때 200 상태 코드에 빈 배열을 돌려주어야 하는지, 404 상태 코드를 돌려주어야 되는지 상황에 따라 다를 수 있겠다는 생각이 들었다.만약 '데이터가 없을 수도 있는 상황'과 '데이터가 없으면 안 되는 상황'에서 404 Not Found 에러 코드로 같게 응답할 경우 다음과 같은 애매한 상황이 펼쳐질 수 있다.API를 사용하는 클라이언트가 404 에러에 대한 대응을 에러로 표시할지 데이터 없음으로 표시할지 상황에 따라 다르게 정의해줘야 한다. 결과적으로 클라이언트에서 API 요청에 대한 처리가 복잡해진다.// front-endimport fetch from 'node-fetch'; function fetchUserList() {  // 유저 목록을 가져오는 API를 사용한다고 가정  return fetch('https://api.exmaple.com/users')    .then((response) => {      if (response.statusCode === 404) {        // 이 404 Http 상태 코드를 에러로 처리할 것인가? 데이터 없음으로 처리할 것인가?        // 에러일 경우 : throw new Error('Not Found');        // 데이터 없음일 경우 : return [];      } else if (response.statusCode === 200) {        return response.json();      } else {        throw new Error('Unexpected Http Status Code');      }    })    .then(result => render(successPage, result))    .catch(error => render(failurePage, error));}결국, 어떤 식으로 표시해야 명확하게 표현할 수 있을까 하여 페이스북 존잘 개발자님들에게 의견을 물었다. # 굉장히 많은 분이 의견을 주셨고 나름대로 생각을 정리할 수 있었다.결론적으로는 '데이터 없음'과 '404 Not Found'를 같은 용도로 사용하면 안 된다.그렇다면 뭘 어째야 하나위에서 나온 결론을 조금 더 자세히 풀어보면 다음 내용이다.상황에 따라 데이터가 없는 것이 정상인 상황이 있고, 데이터가 없는 것이 에러인 상황이 있다. 이를 구분 해야 한다.데이터가 없는 것이 정상일 수 있는 상황// server-sideAPI.get('/orders/date/:date', async (request, response) => {  // 특정 날짜의 주문을 검색. 특정 날짜에 주문이 없을 수도 있다.  const { date } = request.params;  const orders = await Repository.Order.findByDate(date);  // 200: OK  // 204: No Contents  response.statusCode(orders.length > 0 ? 200 : 204).json(orders);});데이터가 없는 것이 에러인 상황API.get('/orders/:orderId', async (request, response) => {  // 특정 ID의 주문을 검색. 데이터가 없으면 에러다.  const { orderId } = request.params;  const order = await Repository.Order.find(orderId);  if (order.length > 0) {    response.statusCode(200).json(order);  } else {    // 404: Not Found    response.statusCode(404).json({      message: `${orderId} is Not Found`    });  };});그렇다면 요청한 API 리소스가 없는 경우에는 어떤 에러를 보여줘야 하는가? 일반적으로는 404 Not Found 가 통상적으로 사용되지만 우리는 이미 404를 다른 용도로 사용하고 있다. 다행히도 HTTP 상태 코드에는 501 Not Implemented 이라는 좋은 친구가 있다. 이 친구를 사용할 수 있다.import { Users, Orders } from './Routes'; app.route('/users', Users);app.route('/orders' Orders);app.all('*', (request, response) => {  // 501: Not Implemented (구현되지 않음)  response.statusCode(501).json({    message: 'This Method is Not Implemented',  });})대충 이 정도면 클라이언트는 Http 상태 코드를 보고 다음 로직을 처리할 수 있을 것이다.물론 일반적으로 사용되는 상태 코드들이지만 실제 개발 진행 시에는 클라이언트를 개발하는 개발자와 미리 어떤 상황에서 어떤 상태 코드를 보낼 것인지 정해야 할 것이다.마무리API 개발 시 사용할 법 직한 응답 코드를 정리해보았다.200: OK (정상, 데이터 있음)204: No Contents (정상, 데이터 없음)301: Moved Permanently (리다이렉션)400: Bad Request (실패, 클라이언트에서 넘어온 파라미터가 이상함)401: Unauthorized (실패, 클라이언트에서 넘어온 보안 토큰이 이상함)403: Forbidden (실패, 사용자의 권한으로 리소스를 사용할 수 없음)404: Not Found (실패, 데이터가 있어야 하나 없음)410: Gone (실패, 데이터가 있었으나 삭제됨. 이건 굳이...?)500: Internal Server Error (실패, 서버 로직 문제)501: Not Implemented (실패, 없는 리소스 요청)기타 304나 502, 503 등의 상태 코드의 경우 API Application을 작성하는 개발자의 역할보다는 Server 쪽의 역할에 가깝다고 생각하여 작성하지 않음.뭔가 어렵다고 느껴진다면 다음 짤을 참고해서 쉽게 이해할 수 있다. #플레이팅 #개발 #개발자 #인사이트 #경험공유 #조언 #꿀팁 #HTTP #버그 #버그수정 #문제해결
조회수 1379

꼰대가 되지 않는 법

 요즘에 "아재"라는 말이 유행하면서 많은 20대 후반 ~ 30대 청년들이 고생을 하고 있어요. 저를 포함해서 말이죠. 좌중의 분위기를 냉각시키는 엄청나게 썰렁한 농담(특히 언어유희에 관련된 농담)을 아재 개그라고 칭하기도 하죠. 여기서 아재라는 말이 아저씨의 줄임말인 것은 모두들 알고 있을 거예요. 우리나라에서 아저씨 = 나이가 좀 먹은 사람을 뜻하고 나이를 먹은 사람은 대체로 보수적이고 모험을 싫어하며 불금에 약속이 점점 없어지고 주말엔 집에서 배를 긁으며 예능 방송이나 미드 등을 시청하는 그런 사람으로 생각하기 마련입니다. 안 그런 아재들도 많지만, 대부분의 아재들은 이렇게 틀에 박힌 생활을 하다 보면 역시 생각이 굳기 마련이죠. 자신의 생활양식에 익숙해지게 되고 어느 순간 자신의 생각과 다른 사고방식을 마주치는 순간 그것을 자신의 잣대에 비추어 바꾸려고 하거나 외면하게 되는 이른바 "꼰대 기질"을 보이는 사람을 "꼰대"라고 우리는 지칭합니다.(위에서 아재 얘기를 꺼냈다고 해서 아재 = 꼰대라는 말은 절대 아닙니다) 여기서 우리가 한 가지 인정해야 할 사실은, 바로 나이가 먹을수록 꼰대가 될 가능성이 높다라는 것입니다. 경험이 많아지면서 새로운 것을 맞닥뜨릴 기회가 사라지는 것은 당연하고 살아가면서 부딪히는 모든 케이스에 자신의 과거 경험을 비추어 익숙한 방식대로 일을 해치우기 때문이지요. 어떻게 보면 한 살 한 살 나이를 먹을수록 자신의 인생의 해답지를 하나씩 작성하여 완성하는 것이라고 볼 수 있겠습니다. 해답지만 보면 어떤 케이스의 문제든지 바로바로 풀 수 있겠지요. 이 글을 클릭하여 읽고 있는 여러분은 꼰대가 아니거나, 아주 약한 꼰대 기질을 가졌을 가능성이 높습니다. 보통의 꼰대들은 자신이 꼰대라고 생각하지 않기 때문에 이 글을 절대 클릭하지 않죠. 그러므로 꼰대가 되지 않으려고 노력하는 당신은 정말 대단한 사람임에 틀림없어요. 제가 항상 우리 팀원들에게 얘기하는 문장이 있습니다.더 좋은 방법이 있다면 주저하지 않고 적용해보자이것이 바로 꼰대가 되지 않을 수 있는 첫 번째 방법이자 마지막 방법입니다. 더 풀어서 설명하자면 모든 일에 있어서 나뿐만 아니라 모두가 좋을 수 있는 방법을 찾기를 항상 노력하며, 방법을 찾았을 때 시행착오를 두려워하지 않고 바꾸기를 주저하지 않는 것입니다. 제가 감명 깊게 읽은 책중에 하나인 "미움받을 용기"에서 "생활양식"이라는 단어가 등장합니다. 사람은 각자의 생활양식이 있고 그 생활양식을 바꾸면 나 자신이 바뀔 수 있고, 생활양식을 바꾸는 것은 손을 뒤집는 것만큼이나 굉장히 쉽지만, 용기가 부족하여 우리는 생활양식을 바꾸기를 거부한다라는 내용인데요. 제가 정말 좋아하는 내용입니다. 우리는 지금까지 살면서 익숙해졌던 생활양식대로 살아가고 있습니다. 그래서 어떤 상황에서 어떻게 대처해야 하는지 경험으로 잘 알고 있지요. 그러나 생활양식을 바꾸게 되면 어떤 상황에서 어떻게 대응해야 하는지에 대한 데이터베이스가 부족하여 버벅거리기 마련입니다. 우리는 그 시행착오를 두려워하여 바뀌지 못하고 항상 내 방식만을 고집하게 되는데요, 그럴 때 바로 꼰대 기질이 발휘되는 것입니다. 이는 꼰대가 되지 않는 가장 좋은 방법일 뿐만 아니라 나와 내 주변 사람의 발전을 함께 도모하는 길이기도 합니다. 부수적으로 도움이 되는 이야기를 몇 가지 해드리자면,정당한 이유를 댈 수 없다면 다음 기회를 준비하라 이것은 예를 한번 들어봅시다. 여러분에게 사춘기, 질풍노도의 시기를 겪고 있는 자녀가 있다고 가정해봅시다. 아이가 이야기합니다. "한 달에 용돈 100만 원을 줘"라고요. 여기서 왜 여러분의 자녀가 100만 원을 받을 수 없는지 합리적인 이유를 들어 얘기하기는 쉬울 것입니다. 만약 합리적인 이유를 댈 수 없다면 솔직해지는 것도 방법이겠지요, "얘야, 우리 집엔 그만큼의 여유가 없단다". 여기서 조심해야 할 점은 바로"무슨 학생이 100만 원이 필요해. (쓸데없는 소리하지 말고 가서 공부나 해)"라고 말하는 것입니다.(만약 그래 왔다면 여러분의 자녀에게 미안하다고 사과하기를 권장합니다) 무슨 학생이 100만 원이 필요해라는 문장 속에는 이런 뜻을 내포하고 있습니다.나도 옛날에 학생 이어 봐서 아는데 따내는 절대 100만 원이 필요한 일이 없었어. 애들이랑 떡볶이나 사 먹으려면 5만 원이면 될 것 같은데. 무슨 소리하는 거야. 이제 좀 명확해지나요? 자녀가 100만 원이 필요하다는 얘기를 꺼냈을 때는 우선 이유부터 물어보도록 노력해야 합니다. 가장 좋은 방법은 한 달간에 예산을 직접 짜서 아이에게 있어 그만큼의 돈을 받아야 하는 정당한 이유를 만들도록 하는 것이지요. 100만 원이 필요한 아이는 그나마 핸들링하기 쉬운 편입니다. 만약에 노란색으로 염색하고 싶다는 아이, 주말에 3시간 정도 이성친구와 시간을 가지고 싶다는 아이와 같은 어려운 과제가 남아있습니다. 여러분의 자녀가 100만 원은 필요 없고 노란색으로 염색하고 싶다는 얘기를 했다고 칩시다. 어떻게 반응할 건가요? 이제는 무슨 학생이 염색이야라며 이야기하지 않으시겠죠? 또 생각해볼까요? 9시에 출근해서 5시에 퇴근하는 9 to 5로 출근하고 싶다는 당신의 부하직원, 어떻게 설득하실 건가요? 합리적이고 정당한 이유를 댈 수 없다면 한 발짝 물러서서 다시 한번 생각해보는 것이 좋습니다. 겉으로 보기에는 절대 용납할 수 없는 일이지만 또 다른 이점이 있을 수도 있으니까요. 예를 들어 염색하겠다는 아이의 경우 가까운 친구들과 유행을 즐기며 교우관계가 좋아질 수 있으며, 이성친구와 주말에 시간을 보내고 싶다는 아이는 그 이성친구 때문에 더 좋은 성적을 낼 수도 있을 것이며, 9 to 5를 주장하는 당신의 부하직원은 유치원에서 아이를 데리고 집에 돌아와 200%의 미친듯한 퍼포먼스로 일에 집중할 수도 있으니까요. 다시 말해 서로가 합리적이고 정당한 이유를 가지고 행동한다는 것은 서로를 동등한 존재로 인정한다는 것이며 그것은 바로 서로가 꼰대에서 벗어날 수 있는 가장 좋은 방법입니다. 이 예를 보면 감정적인 사람보다는 합리적인 사람이 더 꼰대가 되지 않을 가능성이 높은 것 같군요.(꼭 그렇다는 것만은 아니지만요) 저도 꼰대가 되지 않으려고 오늘도 미친 듯이 발버둥 치고 있답니다. 여러분 저를 도와주세요!#비주얼캠프 #인사이트 #경험공유 #조언 
조회수 840

스타트업 이야기를 시작하며

안녕하세요,처음 뵙겠습니다! :) 저는 스타트업 기업인 BEFLOAT의 공동 창업자 겸 대표이사였던 박세호 라고 합니다. 지금부터 제가 쓸 글은 2012년부터 2013년 말까지 제가 복무전 경험했던 스타트업에 대한 생각들과, 20대의 패기로 스타트업을 시작하는 젊은 분들을 위한 조언 또는 경험담등을 가지고 이야기를 써 내려가려고 합니다. 저는 2007년 유학을 시작으로 2012년 4월 미국에서 경제학 학사로 대학교를 졸업하고, 귀국하여 고등학교 친구들과 처음 “AFLOAT”라는 이름으로 2014년 초 서비스가 종료 된 BEFLOAT 서비스를 기획하고 마케팅 하고 경영하였습니다.BEFLOAT의 첫 대문 ! BEFLOAT는 기존에 Gatekeeper들이 장악하고 있는 문화예술 컨텐츠시장에 SNS라는 소통의 장을 마련하여 창작자들과 수요자들이 보다 쉽게 연결 될 수 있는 통로를 만들고, 창작자들에게는 수익창출과이라는 강점과 수요자들에게는 문화적 욕구 충족이라는 두가지 궁극적 지향점을 가지고 있던 본격 문화예술 컨텐츠 SNS 였습니다.이 서비스를 기반으로 BEFLOAT 팀은 다양한 서비스들을 제작하였고 (BEFLOAT -Beta, BEFLOAT-Words), 비록 큰 대회같은곳에서 입상하지는 못했지만, 2013 서울시 창업 1000 프로젝트 선발, 2013 모파일 창업 코리아 예선 PT, 2013, 2014 K-startup 예선 PT, 2014 Seedstars Startup 예선PT 등의 국 내/외 창업 경진대회에서 쟁쟁한 서비스들과 각축을 다투었고(?), 서비스에 관련하여 많은 분들의 지지를 얻었습니다. 지금 BEFLOAT의 서비스는 종료되었지만, 문화예술 컨텐츠의 무한한 가능성과 BEFLOAT가 가지고 있던 지향점, 그리고 시장의 수요는 분명히 있다고 생각합니다. 앞으로도 기회가 된다면 또 해보고 싶은 서비스 라고 할 수 있습니다. 저는 이러한 성공적인, 또는 발전적인 경험을 바탕으로 젊은 창업자들이 보다 쉽고 효율적이게 스타트업을 생각하고 통찰 할 수 있는 글을 적고 싶어 2014년 정도부터 이 글을 쓰기 시작했고, 2015년 9월 전역까지 하나하나 스타트업에 관한 저의 생각들을 하나하나 꺼내 보여드리려 합니다. 불과 2년 밖에 안되는 짧은 경험으로 국내 스타트업이라던지, 전체적 서비스에 관한 고찰을 내릴 순 없지만, 꿈을 시작하시려는 분들, 창업중 막막한 고민을 가진 분들에게 좋은 참고가 될 수 있으면 좋겠습니다. 계속해서 이 글을 보시는 분들에게 심심한 감사의 말씀을 드리며 이제부터 시작하겠습니다.Start-up 섹션을 통크게 구분하자면  1. 제가 생각했던 스타트업에서 가장 막막했던 것들에 대한 개인적 풀이법들    2. 기획자의 경험으로서 보는사람도 즐겁고 만드는 사람도 즐겁게 할 수 있는 IR 작성하기   이외에도 하나하나 생각나고 말씀드리고 싶은 것들이 생겨나면 하나하나 풀어드리려 합니다. 관심가져 주시고 읽어 주셔서 감사합니다. 앞으로 시작하겠습니다!#코인원 #블록체인 #기술기업 #암호화폐 #스타트업인사이트
조회수 1930

창업가의 동료가 보는 창업가의 일

임정민 님의 <창업가의 일>을 읽고 (임정민 님은 트레바리에서 클럽장으로도 활동하신답니다)나는 창업가가 아니다. 창업가의 동료다. 창업가의 동료란 창업가의 비전에 공감하여 그와 함께 달리기 위해 모인 사람이라 생각한다. 여태껏 같이 달린다는 이유로 하는 일도 비슷할 것이라 생각했으나, 이 책을 읽어보니 다른 회사에 다니고 있는 것만큼이나 다른 일을 하고 있었다.창업가가 무슨 일을 하는지 궁금해서 읽기 시작한 책은 자연스레 나와 함께 일하는 창업가 윤수영을 떠오르게 했다. 글자를 읽기보다 수영님은 어떤지 회상해보는 시간이 더 많았다. 어떤 구절에서는 '수영님은 천상 창업가 밖에 못하겠네'라는 생각이 들었고, 어떤 구절에서는 '그때 그 고민은 이런 맥락이었구나'하는 깨달음이 있었다. 가끔씩은 '역시나 창업가는 외로운 직업이구나'라는 생각도 들게 했다.책을 읽으면서 떠오르는 수영님의 모습들을 한 번쯤은 기록해두면 좋겠다는 생각을 했다. 트레바리에서 일하고 있는 동안에는 일하는 태도나 문제를 해결하는 방식 등 여러 가지로 영향을 많이 받기 때문이다. 지금 나에게 큰 영향을 끼치는 사람이 어떤 사람인지 적어두고 싶다.다른 이유가 하나 더 있다면 이는 트레바리에서 일하는 것이 어떨지 궁금해하는 사람들을 위함이다. 이 글을 보며 함께 일할 창업가가 어떤 사람인지 슬쩍 엿볼 수 있으면 좋겠다. 창업가가 어떤 사람이냐에 따라 그 회사의 분위기가 좌우된다고 생각한다.이런 이유로 오늘은 내 이야기가 아닌 내가 보는 트레바리 창업가 윤수영의 모습을 적어보았다.1. 윤수영 - 트레바리 = 0"창업가는 일단 일이 즐겁다. 스스로 벌인 일이니 당연히 즐거울 수밖에 없다. 밥을 먹으면서도, 밤에 친구들과 맥주를 마시면서도 일을 할 수 있고, 이게 스트레스로 느껴지지 않는다. 주말에도 집중이 잘되거나 일을 하고 싶은 생각이 머릿속에서 떠나지 않는다. 그러면 주말에도 일한다." - 창업가의 일 <일과 휴식> 편 중요즘의 수영님에게 트레바리를 뺀다면 어떤 모습일까. 나는 상상조차 가지 않는다. 주 7일 일하는 것은 기본이요, 일하느라 툭하면 밥도 거르고 잠도 안 잔다.(제발 밥 좀 드세요..) '일주일에 낮잠 포함 최소 40시간 잠자기'라는 개인 KPI를 세워둘 정도인데, 이마저도 못 지키는 날이 많다. 그럴 때마다 "잠도 제대로 안 자다니 게르으시네!"하며 핀잔을 주지만 씨알도 안 먹히는 것 같다.(제발 잠도 좀 자세요..)여러 창업가를 봐왔지만 수영님만큼 자신의 정체성이 회사 그 자체인 창업가는 처음 본다. 트레바리를 누구보다 사랑하고, 사랑하는 만큼 행복하게 일한다. 옆에서 보고 있자면 트레바리가 전부인 사람 같다. 종종 멤버나 파트너분들이 "내 인생은 트레바리 이전과 이후로 나뉜다", "트레바리 때문에 이사까지 했어요" 등의 이야기를 남기는 날에는 스스로 트레바리에 취해 해가 뜰 때까지 일을 하는 수영님을 볼 수 있다.2. 비전무새 윤수영"창업가는 제품이 아니라 비전에 집중해야 한다."- 창업가의 일 <유니콘과 바퀴벌레> 편 중비전무새의 뜻은 아래와 같다.비전무새의 정의내가 생각하기에 창업가는 회사의 비전에 공감하는 사람들을 늘려나가는 사람이다. 수영님은 트레바리의 비전인 '세상을 더 지적으로, 사람들을 더 친하게'를 함께 이루고 싶은 사람들을 찾아가 클럽장이나 크루가 되어달라고 설득한다. 때로는 더 많은 사람들이 멤버로서 비전에 공감하도록 강연이나 세미나를 통해 트레바리를 알리기도 한다.이걸로도 부족한지 매일 만나는 크루에게도, 아지트에서 우연히 마주치는 멤버에게도 트레바리가 어떤 비전으로 움직이는 회사인지 끊임없이 말한다. 그래서 별명이 비전무새다. 보고 있으면 같은 얘기를 하고 있다고 믿기지 않을 정도로 항상 진심으로 열정 넘치게 이야기한다. 그리고 그 진심이 터무니없기는커녕 논리적이다. 진심에서 우러나오는 논리적인 이야기라 설득력이 어마어마하다. 덕분에 비전무새 수영님에게 10분 정도 이야기를 듣고 있으면 트레바리를 하는 것이 정말 멋진 일이라는 사실에 취해서 나온다. (우리는 이것을 '트레바리 뽕맞는다'고 표현한다.)나는 이런 수영님의 모습을 종종 활용(?)하는 편이다. 일하는 것이 지치거나 의욕이 떨어질 쯤에 수영님을 찾아가 말을 건다. 이것저것 묻다 보면 트레바리를 하는 것이 얼마나 멋진 일인지 확신이 생기므로 다시 열심히 일할 수 있게 된다.3. 터무니없을 정도로 큰 미래를 그리는 사람. 그렇지만 지극히 현실적인 사람."꿈은 크게 갖되, 첫 실행은 작게 하라."- 창업가의 일 <기억해야 할 10가지 창업가의 일> 편 중수영님은 가끔씩 본인이 그리는 트레바리의 미래에 대해 이야기한다. 가만히 듣다 보면 이걸 가능하다고 믿고 말하는지 의심스러울 정도로 원대하다. 트레바리 아지트가 뉴욕이나 도쿄 같은 전 세계 도심 곳곳에 들어서서 모든 사람들의 일상에 스며들어 있는 모습을 그리는 것이 단적인 예다. 인공지능과 블록체인이 끼얹어 있는 트레바리의 모습에 대한 이야기는 진작부터 들었다.그렇지만 미래만을 바라보느라 당장 해야 하는 일에 권태를 느끼지는 않는 것 같다. 매 이벤트마다 적게는 열몇 명, 많게는 백몇 명의 계좌이체를 하나하나 확인하는 노가다도 마다하지 않는다. 매주 수요일에 진행되는 주간회의 슬라이드 마지막 장은 항상 이런 글이 쓰여있기도 하다.주간회의 마지막 슬라이드매 시즌(4개월) 마다 30% 에서 50% 성장이 가능했던 것은 풍부한 상상력으로 그리는 원대한 미래와 '짜친다'라고 표현할 정도로 지극히 현실적인 행동들이 뒷받침하고 있기 때문이라 생각한다.4. 빠르게 배우고 배운 대로 변하는 사람"어리석은 사람은 친구에게서도 한 가지도 배우지 못하지만, 현명한 사람은 경쟁자에게서도 배우려고 노력하죠." by 니키 라우다, 전설의 카레이서- 창업가의 일 <경쟁> 편 중"나는 항상 뭔가 새로 시도할 것이 없나 찾아보고 스스로 발전시키기를 멈추지 않는다."  by 배리 본즈, 야구선수- 창업가의 일 <창업가 연습> 편 중나와 함께 일하는 창업가는 누구보다 빠르게 배우고 배운 대로 변하는 사람이다. 몇 년 뒤에는 지금 적은 이 글이 무색할 정도로 글과는 전혀 다른 모습을 가지고 있을지도 모른다. 내가 본 바로는 보통 일주일마다 하나의 꼭지를 배워서 새로운 생각을 가지고 온다. (일주일마다 새로운 과제가 던져진다는 이야기로 읽으시면 정확하게 읽으신 겁니다.)한번은 네이버 전 대표셨던 상헌 님에게 리더의 자질과 신중함에 대해 듣고 감명을 받았다며 한참을 이야기했다. 그다음에는 패스트트랙의 박지웅 대표님을 보고 똑똑한 사람이 이렇게까지 열심히 하는 것을 보니 무섭기까지 하다며 의지를 불태우며 일했다. 최근에는 우아한 형제들의 김봉진 대표님에게 스타트업이 겪게 되는 어려움과 필연적으로 겪게 되는 과정에 대해 배웠다며 크루들에게 공유했다.덕분에 수영님만큼 많은 사람들을 찾아다니며 필요한 것들을 묻고 다니지 않아도, 어깨너머로 이것저것 배운다. 때로는 나도 하루빨리 그런 사람들만큼 잘하고 싶다는 욕심에 가슴이 답답해질 때도 있지만, 거인의 어깨에 올라서서 더 넓은 세상을 엿보는 좋은 자극이 되어 줄 때가 훨씬 더 많다.비전무새 수영님이나 그런 수영님이 창업한 트레바리가 궁금하다면 어떻게 해야 할까?크게 두 가지 방법이 있다.첫 번째 방법은 1805 시즌 멤버가 되는 것이다. >>> 1805 시즌 멤버 하러 가기트레바리 - 읽고, 쓰고, 대화하고, 친해져요독서모임이에요. 유쾌한 지성이 오고가는 상큼한 커뮤니티예요. 이렇게 말한 분도 계셨어요. “제 삶은 트레바리 이전과 이후로 나뉜다고 해도 과언이 아니에요.”trevari.co.kr 두 번째 방법은 크루가 되는 것이다. 우리는 함께 일할 크루를 찾고 있다.>>> 오프라인 행사 담당 크루 채용공고트레바리 채용공고 - 오프라인 행사함께 세상을 더 지적으로, 사람들을 더 친하게! | 안녕하세요, 트레바리 대표 윤수영입니다. 저희 채용합니다! 주 담당 업무 분야 - 다양한 오프라인 커뮤니티 이벤트를 기획하고 운영합니다. - 규모는 2, 30명 단위의 소규모(주 3회 수준)부터 수백 명 규모의 대형(연간 5회 수준) 행사까지 다양합니다. - 콘텐츠 역시 강연과 북토크에서부터 아웃도어 액티비티까지 다양합니다. 요구 역량 (순서는 우선순위brunch.co.kr/@getipower/42 >>> Bar 운영 크루 채용공고트레바리 채용공고 - Bar함께 세상을 더 지적으로, 사람들을 더 친하게! | 안녕하세요, 트레바리 대표 윤수영입니다. 저희 채용합니다! 주 담당 업무 분야 - 압구정 아지트 지하 1층에 있는 바를 운영합니다. - 고객을 응대하고, 재고를 관리합니다. 때로는 업장을 개선하고, 제품을 기획하기도 합니다. - 우리가 바를 운영하는 이유는 멤버들이 아지트에서 머무는 동안 더 즐거운 경험을 할 수 있도록 돕기 위해서입니다. 요구 역량 (brunch.co.kr/@getipower/43 무엇을 하는 지도 중요하지만 누구와 하는지가 더 중요하다고 생각한다. 별거 아닌 것처럼 보이는 일도 누구와 하느냐에 따라 결과가 달라진다. 멤버든 크루든 트레바리와 함께 한다면 빛바래 보이는 일상의 구석들까지 멋지고 다채롭게 만들어주고 싶다.#트레바리 #개발자 #CTO #팀원소개 #조직문화 #팀빌딩 #초기멤버 #인사이트 #경험공유
조회수 1704

츠타야를 다녀오다

일본 출장길에 츠타야를 다녀왔다. 사실 그 이전에도 츠타야를 구경할 기회가 있긴 하였지만, 그래도 제대로 한번 살펴보고 싶다는 생각에 "츠타야, 그 수수께끼 (마스다 무네아키, 가와시마 요코 대담)"라는 책을 사서 일본으로 가는 비행기에서부터 읽기 시작했다. 대담 형식으로 작성되어 이해하기 쉽고 창업자의 생각을 직접 듣는 것 같아서 편하게 읽을 수 있었다.우선 대표적인 지점인 다이칸야마의 츠타야를 방문! 시부야에서 가까우며 동네가 고급 주택가이고, 대표적인 매장이라서 그런지 한눈에 보기에도 훌륭해 보였다. 그냥 서점이라고 보기에는 너무나도 좋은 분위기에 안에는 스타벅스까지 있기 때문에 커피 한잔 하면서 책을 볼 수 있는 공간으로 이 보다 더 좋은 곳이 있을까?라는 생각이 들게 한다. (여기 방문 전까지 책을 다 읽지 못해서 그 책을 츠타야에 가서 읽는 상황이 ^^;) 방문해서 느낀 점과 책을 읽으면서 느낀 점들을 책(BOOK)과 나의 대담 형태로 몇가지로 나눠 이야기해보는 것도 재미있겠다는 생각이 들었다. (책의 구성이 마스다 대표와 가와시마 요코의 대담 형태로 되어 있음) 이렇게 구성해놓으니, 쉽게 쉽게 잘 읽히는 장점이 있엇기에!! 이 책에서 가장 기억에 남았던 점으로Book : 기획은 프로덕트 아웃이지, 마켓인이 아님(프로덕트 아웃 : 시장의 니즈가 아니라 생산자, 즉 만드는 사람의 형편과 생각에 따라 상품과 서비스를 제공하는 것 / 마켓인 : 시장의 니즈, 즉 손님이 필요로 하는 상품과 서비스가 무엇인지 조사해서 그 상품과 서비스를 제공하는 방법)기획은 고객이 원하니까 한다기보다는 '멋진 것', '매력적인 것'을 고객에게 전달하고 싶고, 고객을 가게로 초대하고 싶다는 감각에 더 가깝습니다. 나 : 사실 startup을 시작하기 전에는 새로운 제품이나 서비스를 출시하는 것에 대해서 "프로덕트 아웃"의 접근 이어야 새로운 기업으로써의 의미가 있지 않을까?라는 생각을 했었다면, 몇 년간의 스타트업 운영 경험을 통해서 "마켓인" 이 절대적으로 기반이 되어야 한다는 생각을 하게 되었다. 사업은 아티스트(artist) 가 만들어내는 '멋진 & 매력적인' 작품이 아니라, 고객이 원하는 가치를 전달하고 키워나가야 하는 business 이기 때문이라는 생각인데, 파펨이라는 브랜드를 처음 설계할 때도 "프로덕트 아웃"의 접근이었지만, 운영하면서부터는 절대적으로 "마켓인" 이 중요하다고 느꼈기 때문이다. 이에 대한 가장 최근의 생각을 추가하자면, (좀 진부하지만) 두 가지가 모두 양립해야 한다는 것이다. 단, 그 시기별로 중요도가 다르다는 생각인데... 처음 startup을 출시하는 시점에는 "마켓인"에 중심을 두어 생존을 위한 기반을 마련해야 한다면, 성장하면서 그 브랜드가 가지고 있는 "프로덕트 아웃"을 통해 만든 이의 고민과 철학을 반영하고 전달해야 브랜드 & 기업이 영속성을 가질 수 있겠다는 생각을 하게 되었다. 그래서 츠타야의 마스다가 말하는 '기획은 프로덕트 아웃!이다'라는 주장에 대해서 약간의 반기를 들었지만, 그 정도의 수준이기에 할 수 있는 도발적인 발언이 아닐까?라는 생각으로 결론을 내리게 되었는데, 헨리 포드가 말한 "만약 고객에게 무엇을 원하는지를 물었다면 그들은 조금 더 빠른 말과 마차라고 대답했을 것"이라는 짧은 문장의 의미와도 연결이 되는 듯하다. 두 번째로, Book : 업계의 상식에 고객은 등 돌린다. 한정된 업계 내에만 빠져 있다 보면, 그 업계에서 통용되는 상식에 갇혀 벗어날 생각을 하지 못한다는 예기죠. 별것 아닐 것 같이 들를 수도 있겠지만, 업계의 관습이나 상식을 바꾸는 시도에는 부단한 노력이 필요한 법이니까요. 새로운 기획을 세상에 제안한다는 일이 다 그렇겠지만 말입니다. 나 : 너무나도 동의하는 부분이다. 사실 어떤 일들을 조금 진행하다 보면 겪게 되는 것들 중에 "원래 그렇게 해왔다." 혹은 심지어 그런 생각 조차 하지 않는 경우들이 많다. 그렇기 때문에 이러한 벽들을 깨 나가는 것이 스타트업의 역할이고 그러한 당연한 것들을 바꾼 스타트업들이 유니콘이 되어간다. 문제는 나나 우리 회사 또는 조직도 이러한 것들에 계속 물들어갈 수밖에 없다는 것인데, 기본적으로 인간이 계속해서 다른 각도에서 생각하고 변화를 주는 것이 귀찮기 때문인데, 나는 이런 것들을 하루 생활에서라도 바꿔보려고 노력하는데.. 조금씩 다른 길로 출근해본다던가, 혹은 안 써본 새로운 앱들을 다운로드해서 써본다던가, 안 먹어보던 음식을 시도해본다던가 등등.. 개인적으로는 나이가 들 수록 혹은 기업이 시간이 흐를수록 이런 생각하지 않음을 피하기 위해 노력해야겠다는 생각을 한다.  자, 이제 매장을 둘러보면서 느꼈던 점들에 대해서 조금 더 살펴보면.. 분류와 진열에 대한 이야기!Book : "생활 제안별 분류"를 시도한 것이지요. 여행, 음식, 요리, 인문, 자동차 같이 장르별로 구역을 나누고 단행본이나 문고본 같은 범주에서 벗어나 책을 나열했지요. 즉 진열되어 있는 책 자체가 '그 나라를 여행하기 전에 이러한 문화를 먼저 체험해 보는 게 어떨까요? 식으로 제안을 하는 것입니다. 츠타야는 내부를 편집 작업을 하는데.. 가령 여행 코너에서는 예술을 통해 환상의 도시 프라하를 소개하는 등 고객의 마음에 와 닿는 제안을 계속해서 떠올리고 테마에 맞는 서적과 잡지를 모아갔지요.. 이 편집 작업이 생각보다 상당히 어렵더군요.. 나 : 츠타야에 가서 구석에서 경기용 오토바이가 한대 진열되고 있어서 '이건 뭐지?" 라고 생각하는 중에, 그 옆에는 오토바이 잡지들과 화보들이 전시되어 있었고, 바로 옆 책장에는 오토바이와 관련된 만화들이 진열되어 있었다. (아래 사진 참조)말 그대로의 생활 제안을 하는 방식으로 진열을 하였는데.. 이렇게 하는 것이 상당히 재미있었던 것이, 츠타야 서점은 우리가 어떤 정보를 찾는 체계적인 도서관의 접근이 아니라, 고객의 관심사에 따라 재미있는 정리가 되어 있었던 것이다. 나름 상큼했다. 마음에 드는 섹션을 발견하였을 때는, 여러가지 책들과 다양한 제품들로 인해 확실히 이것저것 관심이 더 가서 많은 시간을 쓸 수밖에 없었고, 이것이 나를 여기에 묶어둘 수 있는 힘이구나! 라는 생각이 들었다.뜬금없는 오토바이 전시에서 시작된 오토바이 관련 서적, 잡지, 그리고 만화!!상품이 무진장 진열되어 있어도 팔리지 않는다? Book : 다이칸야마 츠타야 서점에서 시도한 것은 책뿐만이 아닙니다. 그와 관련되는 물건과 행동의 제안도 시도하였지요. 예를 들어 여행에 관련된 코너와 가까운 곳에다 여행 대리점 카운터를 설치한 겁니다. 책을 한 장 한 장 넘기면서 여행하고 싶다는 기분을 느꼈을 때, 어떤 투어가 있는지 그곳에서 문의도 하고 신청도 할 수 있는 것이지요. 그 연장선으로 요리책 코너 옆에 요리 교실을 만들 수 도 있고요...나 : 사실이었다. (아래 사진 참조) 츠타야 서점 곳곳에는 이렇게 여행사 카운터도 있었고, 와인도 있었고, 심지어는 간장이나, 우메보시(장아찌 종류)를 팔고도 있었다. 살짝 당황!! 정말 궁금한 것은 이러한 장치들이 실제로 작동하고 있느냐? 가 궁금하였다. 실제로 고객들이 저러한 장치에서 어떤 행동을 만들어 낼 수 있을까? 구매로 이어질 수 있을까? 저렇게 만들어둔 것에서 가치를 느낄까? 나는 사실 NO라는 대답을 하였다. 우선 제품을 하나하나 살펴보지는 못했지만 저러한 진열에는 구색의 깊이를 갖추기 어렵다. 와인만 하더라도 몇 종류 되지 않고, 대표적인 몇 가지 제품들만 진열되어 있다. 책을 보다가 뭔가를 떠올리고 다음 행동으로 이어지기에는 좀 부족하다는 느낌이다. 내가 아무리 집 반찬 관련 책을 사러 간다고 해도 저곳에서 장아찌를 사지는 않을 것 같다. 차라리 먼저 책을 한 권 사고, 백화점 지하 식품점에 가서 다양한 반찬들을 맛보며 구경하지 않을까? 저런 구조를 더 잘 설계하기 위해서는 나는 on-line이 더 추가되어야 할 것으로 보이는데.. 마스다 씨는 저러한 점이 인터넷보다 실제 매장이 우위를 점할 수 있는 하나의 방법이라고 주장하고 있다. 진짜 맞음?? 츠타야 서점안의 여행사, 와인코너, 반찬코너.. 츠타야 오모테산도와 더부어 츠타야 일렉트로닉스까지 가보기로 마음먹었다. 지하철로 20~30분 정도 가면, 살짝 외곽의 bed town의 큰 mall에 입점하여 있었다. 후타코 타마가와 역에 내려서 바로 연결됨. 츠타야 일렉트로닉스에서 재미있었던 것은 이제는 책과 일상생활에서 사용되는 가전제품, 그리고 일상생활용품들까지 모두 잘 버무려 놓은 매장이었다는 점이다. 일본어를 몰라도 구경하는 재미가 있다. 흠.. 이래서 이곳의 키워드를 "생활"이라고 잡은 것인가? 일단 입구에 들어가면 전자 제품 매장이 있다. 예전에 영국, 미국 시장 등의 베스트바이 같은 매장들하고는 시작부터 다르다. 베스트바이와 같은 곳이 큰 매장의 일반적인 마트 느낌이라면, 이곳은 큰 서점을 중심으로 여러 가지 가게들이 만들어진 골목과 같은 느낌이다. 이것저것 행동의 제안이라는 기본 철학을 잘 구현해 놓은 듯하다. 하지만! 또 다른 측면에서의 느낌은.. 이곳에서 구매가 잘 이루어질까? 라는 생각도 들었다. (외국인 관광객의 관점일 수도 있겠지만) 구매보다는 재미있게 구경하기 좋은 곳이 아닐까?라는 생각이 들었는데.. 이곳을 다녀온 다른 분들의 의견도 들어보고 싶다. 츠타야 일렉트로닉스에서 찍은 사진들.. 스포츠 용품, 화원, 서점과, 전자제품들이 재미있는 골목처럼 연결되어 있다. 츠타야 일렉트로닉스 매장재미있었던 것은 책에서 말했던 것과 같이 실제로 커뮤니티 활동들이 일어나고 있었다. 아래 왼쪽 사진에서는 일본 프리미엄 맥주 브랜드 에비스(EBYSU) 에서 주최하는 것으로 보이는 행사가 진행 중이었는데, 아마도 맥주와 잘 어울리는 음식을 만드는 클래스로 보였다. 진행하는 분이 꽤나 재미있게 리드하는 듯이 보였는데, 참가자들이 모여서 웃고 떠들면서 진행하는 행사로 보였음.아래 오른쪽 사진은 커피 머신을 판매하는 코너에서 한 노부부와 판매원이 커피 이야기를 하면서 실제로 이런저런 머신에 커피를 갈아 넣고, 커피를 내려보는 것을 하고 있었다. 오호! 이런 점은 참 신박했다. 그냥 이런 머신 입니다가 아니라.. 실제로 두 노부부가 커피를 갈아보고 내려 마셔보는 것까지 (꽤나 오래!) 체험을 해보고 있었는데.. 이런 것이 판매와 체험이 실제로 공존하는 매장으로서의 츠타야 일렉트로닉스! 이군이라는 느낌을 주기에 충분해 보였다. 왼쪽은 에비수 맥주에서 그룹 모임을 하고 있었고, 오른쪽은 고객이 실제로 커피를 내려보면서 점원과 이야기하는 모습 주차장의 하늘이 넓을수록 고객은 다시 찾아오고 싶다. 도쿄에서도 비싼 동네인지라 이렇게 주차장을 만들어 놓는 것이 정말 "철학" 적인 도움 외에 실제로 도움이 될 것인가?라는 생각이 들 정도로 주차장은 좋았다. 일본에서 큰 주차장 구경하기가 쉽지 않았는데 (주차 비용은 얼마인지 확인 못함), 정말 잘해두었구나 라는 생각과.. 이런 기획을 해서 위로 올리기가 쉽지 않은 조직 구조를 고려할 때, 창업자가 이런 생각을 가지지 않는 한, 이런 실행은 절대 불가능할 것이라는 생각이 또한 들었다. 주차장 쪽을 돌아서 나오는데, CCC의 사무실이 옆에 있었다. 일본어를 조금이라도 할 줄 알았다면 한번 들어가서 이런저런 이야기 해보고 싶은 느낌이 들었다. 또한 밖에서 본 사무실에는 Magazine B의 츠타야 편이 있어서 또한 반가웠다는!!츠타야 뒤의 주차장의 하늘과.. CCC 오피스마지막으로 책에서 이야기했던 것들 중에 몇몇 가지 재미있는 포인트 들을 뽑아보자면하나,Book : 생활 제안은 우선 콘셉트에서 시작하지 않습니까? 하지만 곰곰이 듣다 보면 고객을 기쁘게 하는 일이 아니라, 결국 자기 자신을 기쁘게 하는 일에 그치는 경우가 꽤 있어요.. 기획이 이타적인 것이 아니라, 무리하게 이유를 만들어 내어 결국 자기만족에 불과한 이기적인 것이 되는 경우가 많아요. 나 : 아 뜨끔.. 둘, Book : 직원들에게 바라는 것은 항상 자유롭다는 것이고, 이것은 자유란 하기 싫은 일을 하지 않아도 되는 것이 아닙니다. 해야만 하는 일을 할 수 있는 것이 바로 자유입니다. 그래서 자유란 어려운 것이고 누군가의 관리를 받는 편이 한결 편하지요. 나 : 요즘 고민이 많은 부분! 조직문화라는 것과 구성원들이 그 조직 안에서 어떻게 일을 할 것인가의 문제인데, 자유라는 의미를 잘 해석해 준 듯하다. 구성원들에게 자유를 주는 것도 때로는 위험하다는 생각을 하는데, 스스로 움직이지 못하는 구성원에게는 자유를 제공해 주는 방식이 더 큰 어려움을 줄 수 있다는 것을 경험해 보았기 때문이다. 마지막으로는,Book : 도전하지 않는 직원에게는 화가 난다. 나 : 네 저두요.. 가끔 저 자신한테도 ㅜㅜ PS. 츠타야 바로 맞은편에 있던 ASO cafe(책에도 나오는 카페) 에서 여유있게 커피한잔 하지 못한 것이 아쉽!
조회수 1649

꽃다운 스무살, 옐로오투오를 첫직장으로 선택한 '손지호 매니저'

안녕하세요, Y입니다! 오래 기다리셨죠~? 세 번째 옐로피플의 주인공은 넘나 사랑스러운 소녀 옐로인, 꽃다운 스무살의 옐로오투오 막내 손지호 매니저입니다! YO2O분들의 사랑을 독차지하고 있는 상큼한 그녀와 함께한 인터뷰! Y도 그 풋풋한 매력에 푹 빠지고 말았는데요, 첫 직장으로 옐로오투오를 선택한 손지호 매니저가 들려주는 옐로피플 스토리! 자 지금 만나보실까요?  (※ 세대차이 주의ㅋㅋ)Y: 안녕하세요! 옐블 독자들을 위해 간단히 자기소개 부탁 드려요!손: 안녕하세요, 옐블 독자 여러분! 옐로오투오 커머스 TF에서 기획과 운영을 담당하고 있는 막내, 손지호입니다. 반가워요! Y: 커머스 TF가 정확히 어떤 일을 하는 부서인가요?손: 최근 옐로오투오에서 피트니스나 숙박업소 등을 위한 쇼핑몰 서비스인 ‘옐로아이템’을 오픈했어요~ 커머스 TF팀은 옐로유통과 연계해서 판매도 하고 다른 벤더들과 협약을 맺고 상품 납품도 하면서 옐로아이템(http://www.yelloitem.co.kr)을 담당하고 있어요! 정말 한 달도 안된 서비스라 너무 바쁘지만 기쁜 마음으로 일하고 있습니다 :)Y: 와, 쇼핑몰 서비스라니! 그나저나 막내라고 하셨는데, 혹시 나이가….?손: 딱 20살 입니다! Y: 헐????? 어쩐지… 문 열리는 순간부터 거부할 수 없는 상큼한 기운이 느껴진다더니! 그럼 어떻게 옐로오투오와 인연이 닿게 되었나요?손: 저는 어릴 때부터 사회경험을 빨리 해보고 싶어했어요. 그래서 특성화고 진학을 선택했었고 고등학교 3학년 들어서부터 취업 준비를 시작했어요. 여러 회사에 지원서를 넣던 중에, 현 옐로오투오 로컬 사업부 부대표님이 학교를 방문해 강의를 하셨어요. 모바일 시장의 초창기부터 옐로오투오 설립 스토리, 국내외 오투오 시장 전반에 대해 흥미진진한 설명을 해주셨는데 그 때 오투오 분야에서 일해보고 싶다는 확신이 들었죠. 마지막으로 하셨던 말씀이 아직까지 기억에 남아요. “목표를 먼저 잡고, 기회를 잡아라!” Y: 와.. 한창 취업 준비로 복잡했을 지호 매니저님에게 뭔가 방향을 제시해 준 셈이네요. 그럼 그 이후로 옐로오투오에 지원한 건가요? 손: 네. 강의가 끝나고 부대표님께 지원해보고 싶다고 말씀 드렸더니 그 자리에서 15분 정도 급 면접을 보게 됐어요. 정말 갑자기 보게 된 면접이라 어찌나 떨리던지…… 그래도 그 동안 준비했던 대로 차분하게 진행했더니 본사에서 한번 더 면접을 보자고 기회를 주시더라고요. 최종적으로 합격해서 작년 12월에 입사하여 7개월째 많이 배우며 일하고 있습니다!! ㅋㅋㅋY: 첫 직장생활에 전사 막내라! 뭔가 고충이 많을 것 같은데요^^; 손: 막내라서 힘든 점은 없어요! 오히려 다들 우쭈쭈 해주셔서 신나게 다니고 있어요. 다만 사회 나와서 첫 직장생활인데 처음 오픈하는 서비스 TF팀에 들어가게 된 거잖아요? 죄다 처음 배우는 건데 너무 한꺼번에 많은 걸 배워야 해서 그게 좀 어려운 점이 있죠. 그렇지만 정말로 어디 가서 이런 경험을 할까 싶을 정도로 많은 것을 배우고 있어요. 결과적으론 제게 큰 도움이 될 거라 믿어요! Y: 아니 갓 스무 살인데 이렇게 어른스럽다니… 옐로에서 막 굴린다고 투덜댔던 거 급 반성하게 된다는…ㅠㅠ 그럼 반대로 언제 가장 큰 보람을 느끼나요? 손: 말씀 드렸다시피 여기 와서 디자인, 기획, 운영 등 모든 것을 처음 배웠어요! 처음으로 시도했던 디자인이 반영이 되어 사내 공지 레터로 발송이 됐는데 정말 뿌듯하더라고요. Y: 디자인까지 직접!! 정말 일당백이시네요! 여기서 기습 질문! 옐로오투오에서 본인의 외모 순위는?! 손: (당황) 어… 오투오에 워낙 예쁘신 분들이 많아서…Y: 겸손은 사양한다! (단호박)손: 어… 아무래도 제가 어리니까 스무살의 풋풋함으로는 1등이라고 생각합니다! (손지호님의 회피스킬이+10 추가되었습니다)Y: ㅋㅋㅋㅋㅋㅋ넘어갈게요! 풋풋함으론 1위인걸로~  Y: 다음 질문 드릴게요! 업무 하시다가 생긴 재미있는 에피소드가 있나요? 손: 아직 사내 메신저가 없어서 카카오톡을 쓰고 있는데, 제 카톡 비밀번호가 “사랑해1” 이었거든요. 업무 공유를 위해 카톡 비번을 입력하고 들어갔는데 글쎄 ‘사랑해1’가 회사 단톡방에 올라가 있는 거예요 ㅠㅠ 한동안 팀원들이 절 마주칠 때마다 “나도 사랑해요”라며 놀려댔었죠. 당장 카카오톡 비밀번호를 바꿨던 기억이…Y: 세상에……카톡이 잘못 했네요ㅋㅋㅋㅋ 덕분에 오빠들이 좀 설레었겠어요!ㅋㅋㅋㅋ Y: 그런데 카톡을 보니 엄청 다들 친해 보여요! 옐로오투오의 사내문화는 어떤가요? 손: 네! 맞게 보셨어요~ 가끔 퇴근 후 팀 단위로 다과회를 했어요. 같이 맛있는 거 먹으면서 개인적인 얘기도 하고 업무에 대한 고민도 털어놓으면서 친해지는 계기가 됐어요. 그러다 보니 자연스레 수평적인 구조가 형성된 것 같아요. 이 다과회에서 아이디어 회의도 같이 했는데 수평적인 구조 덕분에 서로 편하게 아이디어를 내고 토론하기도 했어요! Y: 엥? 아이디어 회의요? 이거 이거 업무의 연장선 같은 느낌적인 느낌인데요~~손: 아니예요ㅋㅋㅋ놀면서 하는 회의 아닌 회의라서 더 독특한 아이디어도 나오고 그래요!  Y: 엄청난 열정과 애사심이 느껴지네요! 멋집니다:) 그럼 마지막으로 옐로오투오/옐로모바일에 바라는 점이 있다면? 손: 저는 지금과 같은 자유로움이 너무 좋아요. 앞으로 회사가 더 커져도 이런 분위기가 유지됐음 좋겠어요. 그리고 저처럼 고등학교 졸업하고 바로 취업을 준비하는 분들이 많아요. 국내 많은 대학에서도 이런 학생들을 위해 고등학교 졸업 후 3년간 회사에서 근무하고 대학교에 입학하는 ‘선취업 후진학’ 제도를 운영 중이에요. 옐로모바일에서 이런 분들에게 많은 기회를 주셨으면 해요! 
조회수 1305

2016년을 정리하며 다시 태어나는 2017년

[뒤늦게 170624에 글 마무리. 20160701~20161231에 대한 이야기]지구의 초기 모습은 어땠을까? 우리가 현재 화성의 모습을 보는 그런 맨살의 행성의 모습이였을 것이다. 하지만 지금 우리가 우주에서 보는 지구의 모습은 매우 청롱한 색깔을 띄고 있고 그 지구 안에는 아주 다양한 생물들이 한데 얽혀 살아가고 있다. 이 지구를 현미경 렌즈로 들여다보자.지구안의 여러 생물들을 현미경으로 바라보면 서로 다른 원자물의 구성 결합으로 이루어져있다. 즉 서로 다른 여러 원자물 그리고 그로 인한 결합들이 다양한 생물 혹은 지구의 다른 모든 것을 만들어낸 것이다. 분명 초기에는 아무것도 없던 상태에서 원자 하나 둘이 생겨났었을 것이다. 그리고 각각 독립되어 원자들이 서로 연결되고 합쳐지며 (A, B, C가 있었다면 A+B, (A+B)+C .. 이런식) 더 다양한 원자들이 만들어질 수 있었을 것이다. 근데 이 각각의 A, B, C 들은 독립적으로 합쳐질 수 있었던 것이 아니라 이 서로 다른 원자들이 매개가 될 수 있는 매개체 원자가 필요했다. 그 원자가 바로 탄소다. 즉 탄소는 지구가 다양한 생태계를 가질 수 있도록 초기에 캄브리아기 대폭발 같은 촉매 역할을 한 것이라고 생각한다.필자에게는 이런 탄소가 바로 2016년이였던 게 아닐까 생각한다. 2016년은 탄소 원자처럼 앞으로의 나의 미래를 엄청난 다양성으로 만들어줄 그 기반(기초)를 제공해준 해였다고 볼 수 있다. 의식의 흐름 기법으로 쭉 글을 써가며 한 해를 정리해보려고 한다.필자는 매년 한 해에 두번의 평가(상반기/하반기)를 스스로 한다. 올해도 역시 2016년 상반기 평가를 하였고 지금은 하반기 평가를 하는 중이다. 16년도에 전반적인 평가를 본다면 숫자 위주로 단점을 개선하는 부분이 약했던 것 같다. 예를 들면 중요하게 생각하는 운동/책/영어에 대한 점진적인 개선들을 숫자로 파고들며 하지 못한 점이 아쉽다. 16년의 상반기 평가에서 하반기 목표를 1.영어 2.마케팅 퍼포먼스 3.회사 문화 개선 4.아버지 사업과 관련된 소통 크게 이렇게 4가지로 정리했는데 성공적이지 못했던 것 같다. 1번 2번은 스스로가 좀 더 신경쓰지 못했던 부분이라고 생각하고 3번 4번은 노력했지만 환경이 잘 따라주지 않았다.하반기를(7월~12월) 월별로 정리하면 7월/8월/9월은 Brich라는 스타트업에서 일을 하고 있었던 시기고 10월/11월/12월은 미래창조과학부가 지원금을 주고 독일 소프트웨어 기업 SAP가 주관하는 글로벌 창업 프로그램에 참여하여 반려견 분양 O2O플랫폼 프로토타입을 만들어 나갔고 그 서비스를 현재 계속 개발 중이다.[7월/8월/9월] - 10가지 느낀점1) 스파크랩 출신 JAME 대표님과 미팅. 대표가 어떤 철학을 가지고 있느냐에 따라 그 회사에서 내가 얼마나 성장할 수 있는지를 가늠할 수 있다. 실력은 나이에 영향을 받지 않는다. 매일 자신의 삶에서 몰입을 하고 있냐 못하냐가 중요하다.2. 고객 만족은 숫자를 증가시키지만 숫자의 증가는 고객만족과 일치하지 않는다. 회사는 고객의 만족을 위해 일을 하고 있는지 투자를 받기 위해 예쁜 그래프를 그리고 있는지 끊임없이 질문을 던져야 한다. 무엇을 위해서 일하고 있는가?3. 매출 압박은 금지다. 고객의 만족을 가지고 토론해야된다. 단순히 숫자가 커지고 있고 Q1 - Q2 그래프가 1차 증가함수 인지가 중요한 것이 아니다. 우리 고객들이 진심으로 만족하고 있는지를 생각해야된다.4. 자체 제품만으로 바이럴이 일지 않는다는 것은 그 제품 자체가 그만큼 가치가 없기 때문이다. 기본적으로 NPS의 개념이 전사적으로 공유되어있어야 한다. 새로운 고객이 회원가입하고 이 고객의 매출이 증가하고 그 숫자 자체가 중요한 것이 아니다. 우리 핵심 타겟층이 어떻게 자사 제품에 대해서 반응하고 있고 피드백을 주고 있는지 귀를 기울여야된다. 한달에 수백만원씩 결제하는 고객을 문전박대 하는 경우가 생긴다. 어이없게도 우리의 핵심 고객과 거리가 먼 신규 고객 유치를 위해서.미국의 advertising executive인 Jon Bond는 다음과 같이 말한다. 제품 그 자체만으로 바이럴할만큼 가치가 있어야 한다.Marketing in the future is like sex. Only losers will have to pay for it.5. 비즈니스에서는 피드백이 생명이다. 사내에서 아이디어 제안에 대한 피드백, 고객이 우리 제품에 주는 피드백, 파트너사가 우리에게 주는 피드백... 그 피드백에 느려지면 느려질수록 병들고 고여 썩는다.6. 제품의 팬심은 내부에서부터 출발해야된다. (힘들겠지만) 회사 동료들이 그 자체를 매우 사랑하고 그 친한 친구들 또한 매우 사랑하고 있어야된다. 그러면 더 깊이 있는 니즈를 반영한 프로덕트를 만들어갈 수 있다.7. 늘 질문해야 된다. 날마다 우리의 차별화는 더 우리의 존재를 더 두드러지게 하고 있는가? 경쟁사를 보고 매출을 단순히 증가시키기 위해 다른 제품들과 동질화 되고 있는가?8. 직장에 좋은 동료와 좋은 상사가 있는 지를 봐라. 그리고 그들을 성공시키고 그들을 박수받게하라. 그들이 당신의 성장의 키포인트다.9. 내부, 외부 모든 것은 영업이다. 그 영업도 내가 이기는 판을 만들어놓고 영업하면 이기는데 이길 수 있는 것도 지는 판에서 영업을 하면 진다. 완벽한 판을 만들고 승부하라.10. 팀원들이 업무에 몰입하는 라이프 스타일을 이해하고 그것의 맞춰서 질문 및 도움을 요청해라.   [10월/11월/12월] - 10가지 느낀점1. 내가 힘을 빼야지 리더십이 생긴다. 그래야 포용할 수 있는 여유가 생긴다.2. 리더는 마지막에 먹는다. 제품과 팀원들이 더 돋보이게 하라.3. 동료를 어떻게 도울 수 있을지 어떻게 기분 상하지 않게 질문과 대답을(피드백) 할지 많이 고민해라.4. 살면서 정말 말도 안되는 최악의 사람을 만나는 일이 생긴다. 그냥 그것을 받아들여라. 그리고 그곳에 에너지를 쏟지 말고 더 좋은 생각에 에너지를 투자하라.5. 소통은 자주 할수록 좋고 솔직하게 할수록 좋다. 오해는 결국 소통되지 않은 것에서 생겨나는 것이다. 시각적인 도구를 사용하는 것도 좋은 방법이다.6. 복잡하면 안된다. 단순해야된다. 심플함에 집착해야된다. 말할 때 설득할 때 항상 명료해야한다.7.  성공적인 스타트업은 2가지다. 1) right problem을 누구보다 치밀하게 깊게 고민한다. 2) 그리고 이것을 풀어가는 모든 과정을 끝까지 learning이라고 생각한다. 어제보다 오늘, 오늘보다 내일 배우고 성장하는 것이 중요하다. 늘 우리는 틀릴 수 있다. 우리는 목표는 늘 '덜 실수'하고 '덜 잘못'되는 것이다. 8. 좋은 결과물을 내는 것은 좋은 사람을 먼저 모으는 것에서부터 시작한다.9. 매일 매일 매일 나 자신을 반성하고 돌이켜보아라 최선을 다하고 있는지. 내일은 어떻게 더 나은 사람이 될 것으로 다짐하고 있는가?10. 이 세계는 굉장히 큰 세계다. 글로벌한 마인드셋을 절대 잊지 마라. 목표는 반드시 글로벌이어야 한다.처음부터면 더욱 좋고 이를 수록 더욱 좋다. 실리콘밸리를 그 기억을 잊지 마라.                                                           17' 에는 Peopet과 운동에만 집중할 생각이다. 나 또한 강아지 비즈니스를 할 줄은 정말 꿈에도 몰랐다. 물론 지금 단계에서는 사실 비즈니스라기보단 검증의 단계이긴 하지만 말이다. 난 언제나 패션을 사랑하는 사람이였고 패션에서 큰 판을 벌려 보려고 했기 때문에 지금 내가 '입고 있는 옷'은 조금 어색하게 느껴지기도 하다. 그러나 무척 다행히도 이 산업에 대한 동기부여와 문제 의식을 가지고 있고 움직이고 있고 내가 패션에 대한 열정이 이 산업에서 새로운 시너지를 발휘할 것으로 기대한다. 인생은 정말 정글짐인가보다 !운동(건강),영어,책 게을리 하지 않기.숫자로 최현일 라이프를 측정하며 예전처럼 더 체계적인 삶을 살아가기.제거하고 몰입하기.끝으로.. #페오펫 #peopet #2016년 #돌아보기 #운영 #스타트업 #성장 #인사이트
조회수 1578

국내 대기업, 스타트업을 인수하지 않는 이유는?

맛나게 차려진 커피 한잔을 값싸게 마실 생각만 하지, 지금 그 커피를 만들어낸 시스템이나 생태계, 준비된 바리스타에게는 큰 관심이 없다. 과거와 현재, 앞으로의 한국적인 환경이라고 단언한다. 국내 대기업은 안 변한다.젠트리피케이션(Gentrification) 현상과 매우 똑같다고 생각하면 된다. 빈곤지역에 저렴한 임대료를 찾아 예술가들이 몰린 다음 그 지역에 문화적/예술적 분위기가 생긴다. 당연, 그 지역의 관심과 손님들이 북적인다. 그러면서, 도심의 중상류층이 유입되면서 임대료 시세가 오르게 된다. 그리고, 대형 프랜차이즈점들이 그곳을 지배한다. 결국, 가난한 예술가들이 떠나면서 지역 특성이 손실되는 현상과 똑같다.국내 대기업은 자신들의 인프라 위에 올라오는 이익만을 쟁취하려 하고, 같이 공생할 생각조차 없다. 가난한 예술가들은 떠나보내는 하늘 위의 슈퍼갑 건물주님과 똑같다. 아니, 별반 차이 없다.대기업이 슈퍼갑질을 하는 경우가 대표적인 케이스는 그렇다.  어떤 스타트업의 비즈니스에 관심 있다고 하고선 중요한 모델이나 구성 방법, 기술적인 요소까지 프레젠테이션을 자세하게 듣고서는 거의 똑같은 제품이나 서비스를 만들어서 아예 스타트업을 파괴하는 일도 서슴지 않는다. 특허가 걸려있거나, 특이한 모델의 경우에는 소송을 통해서 길고 긴 자본력 싸움을 걸기도 한다.심지어 자신의 기업에도 이익이 되고 스타트업에게도 이익이 되지만, 자신의 개인 이익에 도움이 안 된다는 이유로 그 사업 자체를 망가트리거나, 방해하는 일도 서슴지 않는다. 대기업의 복잡한 프로세스는 그 일이 그런 가치가 있었던 일인지도 모르게 한다.이렇게 망가지는 프로젝트를 과거에도 보았고, 현재에도 보고 있다. 슬프다.물론, 한국의 대기업만 그런 것도 아니다. 해외의 대기업이 갑질을 하는 경우도 없는 것이 아니다. 하지만, 그들의 세계는 최소한의 윤리의식은 있는 것 같다. 분명한 것은 해외에서는 풍부한 아이디어나 선도적인 아이디어를 가진 사람이나 기업을 상당한 금액으로 M&A 하는 경우가 많은데, 왜? 유독 국내의 사례는 그렇게 없느냐는 것이다?아! 반대로 제대로 인수해서 성공한 사례도 없다. 참 아이러니하다.페이스북의 사용자들은 이미 노후화되고 있다. 미국의 10대들이 적게 사용하면서 인스타그램으로 주된 관심이 넘어간다고 했을 때에 그들은 비슷한 서비스를 만들거나 흉내 내는 것이 아니라, 인스타그램을 창업 18개월 만에 인수했고, 당시 인수 금액은 10억 달러에 달했다. 왓츠앱의 인수도 그러하다.국내의 서비스업체들은 비슷비슷한 서비스들을 서로 만들면서 공명하는 방법으로 진행되거나 물량공세나 저가경쟁 등으로 아예 시장 자체를 제대로 키우는 것에는 거의 관심이 없는듯한 행동을 보인다.이러한 M&A가 적게 발생되는 이유 중의 하나에 대해서 대기업 공정거래법 적용이라고 지적하는 이유도 있지만, 더 근본적인 이유는 엄청 방대한 대기업의 복잡한 생태계를 조성하게 한 재벌적인 구성 방법이 그 근본적인 문제의 첫 번째 단초라고 생각한다.스타트업의 창의적인 아이디어의 대부분은 경계선을 뛰어넘거나 부조리하거나 불합리한 점을 개선하는 방향으로 진행되는 것이 대부분인데, 시작부터 끝까지 모든 시스템과 생태계를 포용하고 있는 재벌 중심의 대기업 생태계는 내부에서 그런 틀에 대해서 완강하게 반항하고 반대하기 때문이다.대표적인 케이스가 국내 대기업의 가전업체에서 '앱'에서 컨트롤이 가능한 OpenAPI를 만들거나 연결하기 위한 서비스를 만들 때에 리모컨 부서가 반대하고 나선다거나, 이미 통신사에서 감가상각이 끝나고 무료 플랫폼화 될 수 있는 SMS생태계 또한 대기업 영업 부서에서 극렬하게 반대하는 밥그릇 싸움에 휘말린다거나, 국내 전자업 게에서 스마트폰의 아이디어를 구상할 때에 '허가'나 '인증'의 프로세스에서 서비스를 좌지우지하는 부서와 담당자들이 극렬하게 반응한 것과 같은 이치이다.슬프지만, 모든 것이 소수의 재벌과 대기업 중심의 서비스를 주도하고, 이를 뒷받침하는 법체계나 주변 환경으로 구성되어진 한국적인 환경에서 대기업이 스타트업의 아이디어만 빼먹는 행태는 끝이 나지 않을 것이다.사실, 카카오가 김기사를 인수한 것은 그나마, 카카오가 재벌의 구성 형태를 가지고 있는 곳은 아니기 때문이다. 매우 다행하게도, 대기업의 규모로 인정받게 되는 카카오나 NHN의 경우에는 그러한 일들이 기존의 재벌급에서 벌어지는 이해당사자들의 내부 혁신 불가 프로세스가 그나마 덜 가동되기 때문일 것이다.이러한 구성 형태는 금융이나 의료와 같은 복합적인 도메인이 중시되는 생태계에서는 기존의 규칙을 붕괴하면서 성장해야 하는 O2O기반의 서비스들에게는 매우 큰 악영향을 주는 것이 사실이다.슬프지만, 토스의 송금 아이디어와 카카오의 논란은 이미, 대 기업화되어버린 또 다른 생태계의 재편을 보는 것 같아서 매우 안타깝다.그리고, 그러한 '사업'을 승인하고 매우 당연하게 '기업'의 단기적인 이익에만 집중하는 이사회의 '재질'문제가 가장 크지 않나 하다. 타인이 먼저 시작한 아이디어와 협력하여 시장을 구성하기 보다는, 그 정도 아이디어쯤이야 만들어서 시장을 차지하는 것이 어렵지 않다고 생각하는 생각의 문제 아닐까?안타깝지만, 해외의 MBA 수련과정에서 제대로 된 이해를 받지 못하고, 공격적인 프로세스에만 집중적으로 트레이닝받은 단기적인 이익에만 전념하는 과정만을 외워서 온 사람들도 문제이다. 제대로 MBA 과정을 받은 사람이라면 전체적인 시야나 발전적인 방향도 같이 고민하고 상생하는 생태계를 만들 줄 아는 사람들이 더 많다는 것을 알 수 있다.물론, 그런 제대로 된 사람들은 미국이나 영국에서 활동하고, 그들과의 경쟁에서 도태된 사람들이 국내에 유입되어 대기업의 DNA와 결합하면서 만들어 놓은 이 상황을 우리는 너무도 당연하다는 듯이 지켜보는 것이 안타까울 뿐이다.눈을 돌려 중국의 거대함과 신속함에 또 한번 놀라게 된다. 최신 기사들을 살펴보다가 깜짝 놀란 사실이 하나 발표됐다. 그것은 중국 비즈니스는 중국 인민해방군이 운영하는 기업이나 사업과 같이 진행하는 것이 매우 효과적이라는 것이었다.중국 비즈니스의 비밀 아닌 비밀 중의 하나는 중국 인민해방군은 군벌처럼 자체적인 사업을 운영하는 규칙으로 다양한 이권사업들이 진행되었고, 그 비즈니스는 무기, 자동차, 부동산 등의 일반적인 민간 경제 분야의 대부분을 점유하고 있었다.그래서, 사실상 중국 비즈니스는 중국 공산당을 통하지 않고서는 일을 하기 어렵다는 이야기가 있었는데, 이제 그 이권을 금지한다는 조치가 발효된 것이다. 자체적인 불합리함을 매우 빠르게 개선하는 혁신은 중국이 거대한 속도로 진행되고 있다.그뿐만이 아니다. 중국 CCTV '창업영웅환(创业英雄汇)'이라는 프로그램은 2014년 12월 26일부터 시작된 중국 중앙정부의 크라우드펀딩 투자 예능인데 이 프로그램을 보다 보면 창업자가 매달리는 것이 아니라, 투자자들이 나를 뽑아달라고 애원하는 경우를 어렵지 않게 찾을 수 있다는 점도 매우 흥미롭다.이런 서비스와 유사한 SBS의 '투자자들'이라는 크라우드펀딩 예능프로그램을 5월 15일부터 시작한다고 하니, 이 역시 자금을 다루는 속도가 더 빠르게 고속화되고 있는 중국의 또 다른 면을 볼 수 있게 한다.이처럼 고속으로 혁신적인 사회로 변화되는 중국의 모습을 보면서 두려움을 느끼게 되지만, 아직도 한국형 OS를 만들어 기존 공공 납품의 신화(?)를 재현하고자 하는 국내의 한 단면적인 사실들을 보면 매우 실망감도 높아진다.슬프게도 국내 대기업과 연관성을 가지지 않는 기업과 상관없는 일을 해야 하는 것이 슬플 뿐이다.아래의 기사를 마지막으로 첨부한다.http://news.khan.co.kr/kh_news/khan_art_view.html?artid=201605082245005&code=990105기사의 제목을 보면, 'LG전자, '협력사 죽이기'에 면죄부 준 검찰'이라는 기사이다.특정업체를 지정하기보다는 전반적인 분위기 아닐까? 이런 상황에서 대기업이 스타트업을 인수할 이유가 있을까? 냉정하게 없다고 생각한다. 수많은 방법으로 스타트업을 죽이는 비법(?)들이 알려져 있다.냉정하게 국내 대기업은 국내 스타트업을 인수하지 않을 것이다. 사례를 찾는다고 해도, 매우 희귀한 자료들이고, 특수한 케이스들 뿐이다. 그러니, 국내에서 스타트업을 하고 싶은 분이라면 국내 대기업과 그다지 친해지지 말라고 이야기하고 싶다. 결코. 해피엔딩으로 끝난 적이 없다고 이야기를 하겠다. 슬프지만. 사실이다.더 심플하게 설명해보자.대기업의 임원은 인수에 대해서 부정적일 것이다. 엄청난 시너지가 나오지 않는다면, 임원들은 그 책임을 떠 안으려 하지 않으며, 한국내의 시작 규모로는 인수를 해서 얻을 수 있는 가치에 대해서 자신감을 가지기 매우 어렵다.하지만, 해외의 성공한 것들을 따라서 하는 경우에는 실패하도 자기 책임이 아니기 때문에 인수보다는 복제를 선호하게 된다.대기업의 직원들도 거의 비슷하다. 대기업의 특성상 자기가 무엇을 하는 직원은 없다. 대부분 시키는 일을 하게 된다는 것을 잊으면 안된다. 그냥, 보고용으로 다른 곳에서 하는 것들이거나, 책임을 최소화 할 수 있는 일을 하려고 한다.조직 구조상 대기업은 임원은 인수 생각이 없고, 직원은 복사하려고만 한다. 그냥, 국내 대기업들은 대부분 무능하다고 보면 된다.ps.국내의 몇몇 O2O스타트업의 BM을 꾸준하게 관찰하고 있는 대기업과 공기업의 모습을 보고 있노라면... '사람'이 필요해서 '인수'를 하는 생태계와는 거리가 멀다고 생각합니다. 한편으로는 그렇게 생각하실 수 있습니다. 흉내내기 쉬운 BM, 복제하기 쉬운 BM이 문제이며, 제대로 지키지 못한 스타트업의 문제로 이야기할 수 있습니다.사업적인 냉철한 시각으로는 틀린 이야기가 아닙니다. 그 지적에 대해서도 반대하지는 않습니다.다만, 대기업이 동네 빵집을 대신하고, 동네 슈퍼를 대기업의 프랜차이즈 편의점이 대체되고 있는 것을 그대로 바라보고, '힘'의 논리로만 이야기하는 것은 글쟁이의 몫이거나, 전문가의 이야기가 아닌것 같습니다.더 냉정하게 이야기하자면, 대기업의 프랜차이즈 편의점도 결국.. 비대면 서비스에 밀리지 않을까 합니다. 그냥, 힘겨루기 정도로만 비즈니스의 세계는 설명하기는 제가 부족한것 같습니다.뭐. 그렇습니다. 한국적인 생태계에 대한 판단은 각자 알아서 하시기를...
조회수 6982

리디북스 뷰어 형광펜 개선 후기

종이책과 비교했을 때 전자책의 매력 중 하나는 ‘형광펜’ 기능입니다. 책을 읽으며 원하는 구절에 형광펜을 남기면 모든 기기에 동기화가 되고, 이를 독서노트에서 한 번에 모아볼 수도 있습니다. 이러한 매력에도 불구하고 그동안 리디북스 형광펜 남기기 기능에는 고질적인 문제가 있었습니다. 그것은 페이지 마지막 문장에 형광펜을 남길 때 다음 페이지에 이어서 남길 수 없었다는 점입니다. 하지만 2016년 9월, iOS를 시작으로, 형광펜을 이어서 남길 수 있습니다. 이 기능을 ‘형광펜 이어서 남기기’ 라고 부릅니다.형광펜을 남기는 불편한 방법과 그 이유1. 개선 전 형광펜을 이어서 남기는 방법‘형광펜 이어서 남기기’ 기능을 추가하기 전, 두 페이지에 걸쳐있는 문장에 완전한 형광펜을 남기는 과정은 아래와 같습니다.1) ‘반대로 혼자서 무엇인가를~’로 시작되는 문장을 다음 페이지에 이어서 형광펜을 남기려고 했을 때 마땅히 다른 방법이 없습니다.2) 어쩔 수 없이 글자 크기를 줄여서 두 페이지에 걸친 문장을 한 페이지에 표시합니다.3) 형광펜을 남깁니다.4) 다시 눈에 편한 이전 글자 크기로 조정합니다.형광펜을 남기는 과정은 이같이 번거로웠습니다. 그래서 앞 페이지에 형광펜을 남기고, 문장이 끊긴 채로 다음 페이지에서 새로 형광펜을 남기는 사용자도 많았습니다.2. 불편함을 토로하는 사용자의 의견형광펜 이어서 남기기에 대한 의견은 ‘형광펜’과 관련된 많은 의견 중에서도 상당수를 차지했습니다.“완벽하게 형광펜을 남기려면 글자 크기를 줄이고 남겨야 하는데 귀찮고, 읽는 흐름이 끊겨서 불편합니다. 개선해주세요.”“페이지 간 형광펜을 이어서 남길 수 없다 보니 앞, 뒤 페이지에 따로 남기곤 합니다. 독서노트에서 문장이 가닥가닥 끊어져 있어서 보기 좋지 않네요. 독서노트에서 문장을 연결할 수 있게 해주세요.”“다음 페이지로 이어서 형광펜을 남기는 기능은 언제 추가되나요? 매번 형광펜을 남길 때마다 피곤합니다.”3. 형광펜 이어서 남기기가 가능하지 못했던 이유종이책과 달리 전자책은 절대적인 판형, 글자 크기, 문단 너비, 줄 간격 등이 존재하지 않습니다. 그러므로 사용자는 읽기 편하게 글자 크기를 늘리거나 줄 간격을 넓힐 수 있습니다. 이때 설정을 변경함에 따라 하나의 문장이 한 페이지에 존재할 수도, 두 페이지 또는 여러 페이지에 걸쳐 존재할 수도 있습니다.또 전자책은 모바일을 기준으로, 보통 화면에 한 페이지만 노출합니다. 연결된 하나의 문장이라도 화면에 보이지 않는 다음 페이지에 걸쳐 있다면 이어서 형광펜을 남길 수 없었습니다. (그래서 화면이 넓은 태블릿이나 PC 뷰어에서는 형광펜을 이어서 남기고자 하는 요구가 상대적으로 적었습니다.)글자 크기나 문단 너비, 줄 간격 등의 변수로 문장이 화면에 보이지 않는 다음 페이지에 걸쳐졌을 때, 이어서 형광펜을 남길 수 없었습니다.프로젝트의 조건1. 형광펜을 남기는 두 가지 방식 모두 자연스러워야 한다.리디북스 뷰어에서는 핸들로 문장을 선택하여 남기는 방식, 미리 선택하지 않고 문장을 누른 채로 드래그하여 바로 형광펜을 남기는 방식(이하 오토 하이라이트), 총 두 가지 방식을 지원하고 있습니다. 이 두 가지 방식 모두 자연스러워야 했습니다.핸들로 문장을 선택하여 형광펜을 남기는 방식(좌측), 문장을 누른 채로 드래그하여 바로 문장에 형광펜을 남기는 방식(우측), 총 두 가지를 지원하고 있습니다.2. 가능한 익숙한 UX여야 한다.뷰어는 책 읽기에 집중할 수 있도록 문장으로만 채워져 있습니다. 설명이 필요한 낯선 요소가 들어갈 경우, 설명에 문장이 가려져 독서에 방해가 될 수 있으며 사용자는 새로운 사용법을 익혀야 합니다. 최대한 학습이 필요 없는 익숙한 UX를 지향했습니다.위 두 가지 조건을 모두 만족하는 리디북스만의 방식을 찾아야 했습니다.개선된 ‘형광펜 이어서 남기기’ 방법두 페이지에 걸쳐있는 문장에 형광펜을 남기는 두 가지 방법은 이러합니다.1. 첫 번째 방법1) 페이지 마지막 문장까지 선택하면, ‘문장 이어서 선택하기’ 에디트 메뉴가 뜹니다.2) 메뉴를 누르면 다음 페이지로 넘어가고 해당 문장이 끝나는 마침표까지 자동으로 선택됩니다.3) 이어 ‘형광펜 / 메모’ 에디트 메뉴가 뜨고 그 상태에서 ‘형광펜’을 누르면 됩니다.2. 두 번째 방법1) 오토 하이라이트로 페이지 마지막 문장까지 형광펜을 남기면, ‘형광펜 이어서 남기기’ 에디트 메뉴가 뜹니다.2) 메뉴를 누르면 다음 페이지로 넘어가고 나머지 과정은 첫 번째 경우와 같습니다.문제 해결 과정1. 문장 선택 방법 결정하기형광펜을 남기는 두 가지 방식을 모두 지원하면서 익숙한 UX가 되려면 두 가지 방식에서 사용하는 요소여야 했습니다. 함께 고민하던 개발자님이 떠올린 아이디어는 핸들(Handle) 이었습니다.문장 선택 시 사용하는 핸들을 HIG(Human Interface Guidelines)에는 따로 명시되어 있지 않지만, iOS에서 코드상으로는 그래버(Grabber), 일반적으로는 핸들(Handle)이라 부르며 Android에서는 텍스트 셀렉션 핸들(Text selection handles)이라 부릅니다.에디트 메뉴를 띄워서 핸들로 문장을 선택하는 방식은 기존에 이미 핸들을 사용하고 있으므로 다음 페이지로 넘어가 핸들로 원하는 문장까지 선택하는 것은 자연스러웠습니다. 앞 페이지에서 오토 하이라이트로 형광펜을 남기고 페이지가 넘어간 후, 다음 페이지에서 핸들이 나타나는 것은 처음엔 다소 어색하게 느껴졌습니다. 하지만 기존에 쓰고 있는 요소여서 낯설지 않았고 사용 방식 또한 익숙해서 어렵지 않게 다가왔습니다.2. 세부사항 결정하기프로토타입을 기반으로 UI 디자이너가 모여있는 UI 길드와 사내에서 다양한 피드백을 받았습니다. 그 후, 다듬고 수정하는 과정을 거쳐 세부사항을 결정하였습니다.1) 레이블 결정하기형광펜과 결합하여 사용할 수 있는 동사는 ‘하다’, ‘치다’, ‘칠하다’, ‘긋다’, ‘남기다’ 등 생각보다 많습니다. 그렇다 보니 사용자뿐만 아니라 사내에서도 같은 기능이지만 다르게 불리곤 합니다. 여러 가지 동사 중, 형광펜과 밑줄에 모두 어울리는 동사가 필요했습니다. ‘하다’는 광범위한 행동에 사용됩니다. ‘치다’와 ‘긋다’는 형광펜보다는 밑줄과 더 잘 어울리며, ‘칠하다’는 형광펜에만 어울립니다. ‘남기다’가 형광펜과 밑줄에 모두 어울리고 ‘독서노트에 남긴다’라는 의미로도 맞아서 레이블에 형광펜과 결합하여 사용할 동사로 결정하였습니다.2) 맥락에 맞는 레이블 메뉴 구성‘남기다’로 동사를 결정한 후, ‘형광펜 이어서 남기기’로 에디트 메뉴 레이블을 결정했습니다. 밑줄로 남길 때는 형광펜에 해당하지 않으므로 상황에 맞게 ‘밑줄 이어서 남기기’ 레이블로 변경하였습니다. 또 문장을 선택해서 형광펜을 남기는 경우도 문장 선택을 먼저 하므로 맥락에 맞지 않았습니다. 이 경우에는 ‘문장 이어서 선택하기’라는 레이블로 변경하였습니다. (개선된 ‘형광펜 이어서 남기기’ 방법 항목 참조)‘문장 이어서 선택하기’ 에디트 메뉴에는 ‘형광펜’, ‘메모’, ‘듣기’, ‘정의’, ‘검색’, ‘공유’ 등 기존 에디트 메뉴도 함께 보여줘야 했습니다. 다음 페이지로 넘어가지 않고 마지막 문장까지만 형광펜을 남길 수도 있고, ‘듣기’나 ‘공유’ 등 다른 에디트 메뉴 기능을 사용하는 상황도 있을 수 있기 때문입니다. 하지만 페이지 마지막 문장이 끊기지 않고 마침표로 완전하게 마무리되는 경우는 많지 않았습니다. 그래서 ‘마지막까지 문장을 선택한다면 다음 페이지로 이어서 문장을 선택하고 싶다’는 가설을 세웠습니다. 그리고 ‘문장 이어서 선택하기’에 집중할 수 있도록 다른 메뉴는 감추고 한 단계를 더 거쳐 선택하도록 하였습니다.한 번에 많은 메뉴가 노출되면 선택에 집중하기 어려웠습니다. 그래서 마지막 문장까지 선택한 경우, 다른 메뉴는 감춰 문장 선택에 집중할 수 있도록 하였습니다.3) 에디트 메뉴의 위치처음 에디트 메뉴 위치는 커스텀이지만 OS와 유사한 위치를 사용했습니다. 어디서부터 선택하는지, 어느 정도 선택하는지에 따라서 자동으로 에디트 메뉴의 위치가 달라집니다. 또 선택한 문장과 겹치지 않게 선택된 문장의 위나 아래에 위치합니다. 그렇다 보니 페이지 마지막 문장까지 선택했을 때 손을 뗀 자리가 아닌 문장과 겹치지 않는 먼 위치에 에디트 메뉴가 떠서 어색했습니다. 그래서 손을 뗀 가까운 곳으로 에디트 메뉴 위치를 변경하여 바로 다음 페이지로 넘어갈 수 있게 하였습니다.OS에서 제공하는 에디트 메뉴의 위치에서, 사용하기 편하도록 에디트 메뉴의 위치를 마지막 문장이 끝나는 지점과 가깝게 옮겼습니다.4) 다음 페이지로 넘어간 후 선택해줄 문장의 범위페이지가 넘어간 후, 문장이 끝나는 마침표까지 선택해줄 경우, 문장이 해당 페이지에서 끝나지 않을 수 있습니다. 그래서 처음에는 다음 페이지의 시작 문장에서 다섯 글자까지만 선택해주었습니다. 하지만 문장이 페이지를 넘어가는 경우가 더 적어서 마침표까지 선택해주는 것이 형광펜을 남기는데 더 편리했습니다. 또 문장이 해당 페이지를 넘어간다면 다시 ‘문장 이어서 선택하기’ 에디트 메뉴를 노출하여 다음 페이지로 이어서 선택할 수 있게 하면 되므로 문장을 마침표까지 선택해주었습니다.다음 페이지로 넘어갔을 경우, 해당 페이지 안에서 문장이 끝나는 경우가 많았지만 문장이 끝나지 않고 그다음 페이지로 넘어가는 경우에도 대응해야 했습니다.마치며2016년 9월로 페이퍼까지 형광펜 이어서 남기기가 추가되었습니다. 리디북스 내 ‘묵은지’라 불리던 이 문제를 해결하여 더는 형광펜으로 고통받지 않아도 될 분들을 생각하면 기쁩니다.마지막으로 해결하기 어렵다고 생각한 형광펜 이어서 남기기를 구현해주신 리디북스 iOS 개발자님에게 감사를 표합니다.참고 문헌[1] Apple Inc. “Edit Menus - UI Controls - iOS Human Interface Guidelines” Last modified 2016. [2] Google (2016). “Selection - Patterns - Material design guidelines” Last modified February, 2016. [3] 이광희. ePub(이펍) 제작 테크닉. 서울: 비엘북스, 2012.#디자인 #UX #UI #UX디자인 #UI디자인 #사용개선 #유저중심 #리디북스 #UserExpirience #UserInterface #사용성 #후기

기업문화 엿볼 때, 더팀스

로그인

/