스토리 홈

인터뷰

피드

뉴스

조회수 772

탕비실의 브랜딩: 브랜딩과 육두문자의 상관관계

일을 하다보면 매우 화가 날 때가 종종 있습니다. 일이 힘들어서라기 보단 그 일을 하는 사람들로 인한 관계의 문제가 크죠. 브랜딩업무는 협업과 협조가 굉장히 많이 필요합니다. 디자인팀만 죽어라고 일하는 것이 아닌, 마케팅, 대표님, 경영지원, 개발단에서도 전체 브랜드의 맥락과 의미를 알고 있어야 합니다. 또 제대로 가이드대로 적용할 수 있어야 하지요. 단순히 문구를 일치시키고 상하좌우 여백과 로고위치를 맞추는 것의 문제는 아닙니다. 사실 그런 비쥬얼적인 부분은 오히려 부차적이죠. 그냥 로고위치는 바꾸면 되는 것입니다. 그러나 행사기획에서의 방향성이나, 신제품 런칭할 때 홍보전략 등은 단순한 것들이 아닙니다. 그러나 우리는 돈도 별로 없고 시간도 없고 마음이 바다같이 넓지 않기 때문에 브랜드컨셉을 정확하게 일치시켜가면서 전략을 구축하기 어렵습니다. 그 때 그 때 아름다운 순천만 갈대같은 우리의 맘도 다잡아야 하고, '현실적' 이란 말을 입에 달고 사는 이사와도 싸워야 합니다. 당초 설정했던 브랜드컨셉대로 가려면 통장의 장막을 들추고 공허를 마주하는 공포도 견뎌내야 합니다. 대부분의 사람들은 이러한 불안과 조급, 두려움, 가난, 피폐, 기아와 환난에 마주하게 되면 3가지의 특징을 드러내게 됩니다.1. 대충 보고 대충 결정한다.2. 내 말이 맞다.3. 니 말은 틀렸다.마음이 조급해졌다..라는 얘기는 심리학적으로는 '인지편향기제가 크게 작용한다' 라는 것과 비슷합니다. 인지편향이란 무언가를 받아들일 때 한 쪽으로 치우쳐진 판단을 하는 현상을 의미하지요. 불확실성이 높아지면 사람은 내가 알고 있는 지식이나 경험안에서 해답을 찾고자 합니다. 안정성을 추구하고 해봤던 것으로 회귀하죠. 관성과 습관에 의해 행동하길 원하고, 그 외의 것들은 고려의 대상에서 일단 제외시킵니다. 2번과 3번의 현상은 그러한 안정성의 추구때문에 발생하는 것이지요. 1번의 경우는 정확히는 '스윽 보고 내가 아는 것이면' 받아들이고 아니면 버린다라는 얘기입니다. 이 때 흥미로운 것은 '내가 아는 것' 이 그닥 정확하지 않은 것이라는 사실이죠. 보통 그 지식은 프레임의 영향을 크게 받습니다. 예를 들어 이번에 앱을 구글스토어에 런칭하고 3달이 지났는데 아직 다운로드수가 45밖에 되지 않았다고 해봅시다. 똥줄이 타고 마음이 조급하여 심장의 쫄깃거림이인절미의 그것과 같겠죠. GA분석을 하고 있어도 사실상 수치에 대한 객관적 분석이 힘들어집니다. 그래서 일단 박리다매식 불특정다수를 대상으로 한 광역홍보를 시전하자고 합니다. '일단 높이는 것이 먼저다!' 라는 전제에서 나온 것이죠. 하지만 당초 브랜드컨셉은 고급화전략+명확한 타겟군의 확보로 매니아층을 기반으로 한 앱이었단 말입니다. 하지만 GA상에서 '네이버검색 유입이 가장 높네!' 라는 사실을 들어 마케팅팀에선 브랜드컨셉을 가볍게 누를 수 있습니다. 물론 편향된 정보입니다. 사실 연관검색어 유입은 다른 것에 비해 1.2%정도가 높은 것 뿐입니다. 그러나 이미 답정넌전략의 경우엔 일단 전략을 내고 그 이유를 나중에 찾습니다. 운 좋게도 네이버 연관검색어가 1위를 차지해서 프레임의 벽을 튼튼하게 만들어주었습니다. 수치와 통계, 데이터도 프레임앞에선 가끔 무용지물이 될 때가 있습니다. 숫자없는 의미는 맹목적이고, 의미없는 숫자는 공허하지만, 숫자가 의미와 잘못 결탁하는 순간 우리는 회의실에서 고대사 간접체험을 하며 '고조선시대의 제정일치가 이런 느낌이었구나.' 라며 무릎을 탁 칠 수 있습니다.이처럼 정보의 편향된 인지와, 자기중심적 사고, 배타심리가 높아지면서 무리한 요구, 잦은 변경, 말 같지도 않은 소리등이 탄생하게 되고 실무자들은 만들어놨던 여러가지 것들을 無로 되돌리는 공허의 군주놀이를 하며 드디어 욕설이 등장하게 되는 것입니다.사람은 언제 화를 낼까요. 물론 여러가지 상황이 있을 겁니다. 그 주체가 상대방에 대한 빡침인지, 나를 향한 것인지도 구별해야 겠죠. 추운 겨울날 따끈한 치킨을 사들고 집에 가다가 자빠져서 치킨이 진흙탕물에 뿌링클되는 것은 나에 대한 빡침일 것이고, 디자이너에게 시안좀 만들어오라고 했더니 혼돈스러운 것을 가져왔을 때 느껴지는 것은 상대에 대한 빡침이겠죠. 사람의 화는 주로 이런 상황에서 발생합니다. 5가지로 분류해보죠.1. 인정받지 못할 때2. 나와 다른 어떤 것을 강요당할 때3. 부당하거나 억울하다고 느껴질 때4. 상대가 공격적인 태도를 취할 때5. 배고프거나 졸릴 때5번의 경우는 1,2,3,4의 상황과 콤보를 이루며 증폭의 역할을 합니다. 1번은 10시간 내내 해놨던 것을 보지도 않고 '다른 거 없어?' 라고 할 때이고, 2번은 정치관련된 콘텐츠 만들기 싫은데 자꾸 만들으라고 할 때(심지어 내가 싫어하는 당을 옹호하는), 3번은 1번에서 만든 10시간 시안을 보면서 '이거 뭐 베낀거 아냐? 아니면 니가 한거 맞아?' 라고 되물을 때, 4번은 '그건 팀.장.님.에.게 물.어.보.시.라.구.요.' 라며 꼭꼭 씹으며 싸가지없이 말하는 옆 팀 대리에게서 느껴지는 느낌이죠.브랜딩작업만에 해당하는 것은 아니겠지만, 브랜딩은 굉장히 추상적이고 두루뭉술한 것들을 실체화시키는 작업입니다. 그러다보니 상황이 조금만 여의치 않으면 가장 먼저 희생되고 깨지는 약속이기도 하지요. 실질적인 매출증감을 체감할 수도 없고 어쩌면 모두에게 그냥 불필요한 일의 일부로 느껴질 수도 있으니까요. 그래서 상호간의 깊은 동의와 이해가 없이는 브랜딩작업은 사실상 불가능에 가깝습니다. 사람 모인 곳이 회사인데 모든 사람들이 인정하는 하나의 명제를 만드는 것이 결코 쉬운 일은 아닐 것입니다. 또한 이러한 명제 아래 발생하는 실무들을 처리하는 실무자들에겐 의미없는 스트레스로 다가오기도 하지요. 그러나 단순히 일이 늘어서 짜증나는 것일까요? 그건 아니라고 생각합니다. 그 일을 전달하는 사람의 자세나, 일을 대하는 지시자의 태도, 결과물에 대한 리액션 등..결국엔 사람과의 커뮤니케이션에서 항상 문제가 발생하죠.그래서 우리를 화나게 하는 상황들에 대해 주우욱....늘어놔보도록 하겠습니다.1. 5번을 말해도 못 알아들을 때: 말하는 내 문제인지, 듣는 사람의 문제인지 모르겠지만 5번 정도 말했다면 듣는 사람의 센스 문제일 경우가 큽니다. 보통 이럴 땐 그림을 그려주거나, 사내에 말 잘하는 분께 외주를 주거나, 제프 베조스가 빨리 '센스를 높이는 두뇌자극장치'를 개발해주길 기다려봅시다.'어디서부터 잘못된거지?....2. 혼자 크게 우월한 분: 그러니까 그 이론은 알겠으니 이제 앉아서 일을 하세요.배우신 분인건 알겠고, 언제 끝나요?3. 자꾸 다른 것 부터 하고 계실 때: 아니 그거 말고 제가 프로모션 기획안부터 하라고 중세시대부터 얘기했을 텐데..4. 회의에서 나온 내용 안듣고: 자꾸 나한테 다시 물어봅니다. 저는 에버노트가 아닙니다.. 5. CC걸린 이메일 안보고 딴 소리: CC라는 것은 캠퍼스커플이나 컨츄리클럽이 아니라 carbon copy입니다. 먹지에 똑같이 복사해서 당신에게도 주겠다는 것인데 무언가를 주는 데에는 이유가 있습니다. 6. 파일을 자꾸 못찾아: 기획안은 야동이 아닙니다. 컴퓨터에는 즐겨찾기라는 최첨단 기능이 있습니다. 너무 소중해서 깊숙히 숨겨놓는 마음은 이해가 갑니다. 하지만 빨리 달라고 하는데 30분 째 파일 하나하나 열어보면서 뭐였지?..하고 있으면 답답합니다. 파일이름도 19741908357.doc 하지말고 DarkNamer 등의 프로그램을 이용해서 일괄변경해줍시다. 7. 아까 했던 말을 자꾸 바꿈: 23아이덴티티 인줄.. 그의 마지막 23번째 인격이 깨어나 또 말을 바꾼다면 이젠 내가 가만히 있지 않을 것입니다.8. 왠지 가르치려 듦: 아니 같이 일을 하는데 왜 묘하게 선생님의 모습이 겹치지.. 어느새 손등내밀고 자 모서리로 뼈 맞을 것 같은 느낌이 들기도 합니다. 회의를 하는 거지 가르침을 받는 시간이 아닐텐데..9. 뭐가 맘에 안드는 지 말해줘요.: 이 느낌이 아니야. 라고 했다면 무슨 느낌을 원하는 지 말해주세요. 말을 못하겠다면 당신의 느낌을 빌딩밖으로 던져버리도록 합시다.10. 디자이너가 시안을 밤새 깎고있다.: 일을 한다는 건 절차가 있고 제한시간이 있습니다. 디자이너 쪽에서 막혀있으면 다음 단계의 실무자는 주말에 애인을 만날 수 없습니다. 또는 생길 수가 없습니다. 아직 최종이 나온 것이 아니잖습니까. 시안의 완성도는 최종시안에서 챙깁시다. 지금은 '쳐내는 것'에 집중하세요.11. 당신이 맡은 일은 '끝내서' 나에게 주세요.: 대학교 조별과제 하다보면 '제가 PPT맡을께요.' 라고 해놓고 이 세상 PPT가 아닌 것 같은 해괴망측한 괴생명체를 단톡방에 던지고 '저는 그럼 이제 나가볼께요.' 하시는 분들이 계십니다. '제가 맡을게요.' 라는 말은 자신의 업무에 대한 결과보장과 퀄리티, 신뢰도까지 책임지겠다라는 얘기입니다. 그렇게 대충해서 다했다고 할거면 월급도 아무숫자나 적힌 채로 받으시면 됩니다.'자료 조사를 해오랬더니 링크만 긁어서 단톡방에 남겨??12. 일하는데 옆에서 계속 투덜댐.: 투덜대지 말고 의견을 제시하던가, 해결책을 내놓던가 대표님실에 가서 투덜댑시다. 13. 자기만 힘든 척: 모두가 같은 일을 하고 있습니다. 지금 저 사람이 놀고 있는 것 같지만 그 사람 프로세스가 오면 그 사람이 바빠지는 겁니다. 이어달리기 같이 움직이는 것이 일입니다. 세상 일은 혼자 다하는 것처럼 자꾸 인상찌뿌리고 그러면 아마츄어 같습니다.14. 아무 설명도 없이 파일만 던짐: 메일을 보면 제목도 없고 내용도 없고 파일만 덜렁 온 경우도 있는데, 특히 포워딩할 때 이런 경우가 많습니다. 무언가를 줄 때는 무엇이다, 주겠다, 이걸 받고 어떻게 해라 등등의 디렉션을 포함하도록 합시다. 하다못해 동네축구를 해도 마이마이!!! 가 있고 패스패스!! 들어가!!! 퍼져퍼져!!! 등의 직관적인 디렉션이 있는데 말이죠.15. 사건을 벌어졌는데 미궁속으로 빠졌다.: 뭔 사고를 쳤는데 범인은 없다....! 대부분 그 범인은 자기가 범인인 줄 모릅니다.16. 남의 것만 베껴옴: 우리 브랜드철학과 적합한 뭔가를 만들어야 지 자꾸 남의 것만 베껴오면 어떻하나요. 물론 카카오나 배달의 민족이나 29CM 등 브랜딩과 마케팅을 잘하는 곳들의 레퍼런스를 참고하는 것은 좋습니다만, 그들이 성공한 것은 레퍼런스가 좋아서가 아니고 '그들이 했기 때문' 입니다. 17. 중요하지 않은 것에 힘쓰고 계심: 보고서에 표지만드는 것은 크게 중요하지 않습니다. 자꾸 표지에 디자인하지 마세요.18. 데드라인 못지킨 이유: 못지켰으면 핑계핑계하지말고 대책을 가져오도록 합시다. 어머니와 아버지가 편찮으시고 집안이 무너지고 심신미약과 공황장애, 우울과 몸살감기가 겹쳐 일을 못한 것은 십분 이해합니다. 그러니 이제 어떻게 할 것인지 그것을 얘기해주세요.19. 이빨까기: 저 사람은 자꾸 일은 안하고 대표님과 팀장님 옆에서 자기 일한 거 들고 아양만 떱니다. 얼핏 주상전하 옆에 성은이 망극하옵니다 봇같기도 하고 이방 내지는 반지의 제왕의 세오덴 왕 옆에 붙어있던 그 까만머리 아저씨같기도 한데 뭐가 되었든 저 사람이 자료를 줘야 내가 퇴근을 하는데 벌써 7시고.. 뭐 이렇습니다.저..저봐!! 백색의 김대리야!20. 도와서 같이 해: '돕는다' 라는 말은 참 애매합니다. 내가 다 만들고 니가 옆에서 ctrl+s 만 눌러줘도 돕는 건 돕는거니까요. 이건 남편이 아내의 집안일을 '돕는다' 라고 표현하는 것과 비슷합니다. 지가 사는 집인데 왜 그게 돕는 건가요. 돕는다라는 표현은 애시당초 "니가 할 일" 인데 내가 선심써서 너의 노고를 덜어주는 거야 라는 함의가 담겨있습니다. 일에 돕는 것이 어딨나요. 니 일은 니가 하시고, 내 일은 내가 하는 거죠. 진짜 돕는 건 자기 일 다 끝내신 분이 주말에 나와서 내가 못 끝낸 기획서 반토막을 샤샤샥 써주고 백마 탄 초인처럼 손 흔들며 사라지는 걸 돕는다고 하는 겁니다. 21. 공부 좀 ...: 단도직입적으로 브랜딩은 똑똑해야 할 수 있습니다. 전문지식이 있던가 아니면 얕고 넓게 알던가, 트렌드에 민감하던가 센스가 엄청나던가. 어떤 식으로든 똑똑해야 합니다. 아는 게 있고 본 게 많아야 레퍼런스를 끄집어 낼 수 있고 컨버전스를 하던 믹싱을 하던 카피를 하던 뭐라도 할 수 있습니다. 당최 요즘 우리나라가 통일이 됬는지 대통령이 바뀌었는지 살았는 지 죽었는 지 관심도 없이 이번 겨울신상 롱패딩 지르기에만 여념이 없으면 같이 회의하고 일하는 사람들이 무지 답답합니다.22. 결과물까지 책임지는 겁니다.: 인쇄사고가 난 거니까 이건 인쇄소책임이니 난 모르겠습니다. 라고 하면 안됩니다. 아 그건 인쇄소탓이잖아. 23. 해봤다면서요.: 해봤다고 해서 시켰는데 광고게시자에 결제수단 추가도 못하면 어떻하자는 건가요. '해봤다' 라는 것은 '전체맥락을 알고있다.' 라는 얘기입니다. 한 두번 만져봤다란 얘기가 아니지요.24. 자기가 한 것처럼 하지 마세요.: 다 같이 만든 건인데 보고 할 때 자꾸 자기가 다 한 것처럼 주어를 통합하거나 뭉뚱그리는 분들이 있습니다. "이번 기획안 다 완성했습니다. 자료조사도 다 끝냈고, 프로모션 이벤트 견적도 조사 끝냈습니다." 라고 말이죠. 누가 무슨 업무를 담당했었는지 확실하게 보고하도록 해요. 심지어 부족한 자료는 꼬박꼬박 얘기하면서 잘되고 멋진 건 주어를 빼버리는 주어강제수탈행위는 좋지 않습니다.아니, 야 임마  말을 그렇게 하면 안..25. 그냥 해: 물론 일이란 게 그냥해야 할 때도 많습니다. 브랜딩은 철학과 가치적인 워딩이 많은 작업이기 때문에 나와 다른 생각을 강요받을 때가 있습니다. 이 때 이유도 뭣도 묻지말고 시키는 거나 하라는 식의 태도는 좋지 않습니다. 적어도 다른 의견을 지닌 사람들에게 설명이나 합의, 배려는 있어야 하는 것이지요. 닥치고 시키는 일이나 해!...라는 말을 들을 때면 보자기를 뒤집어 쓴 채 회사에 검은 차로 끌려와서 검은 가방을 국경넘어로 전달하는 느와르의 주인공이 된 듯해서 짜릿하긴 하겠지만, 직원이 리암 니슨이 아닌 이상 대부분 그런 사람들은 빠른 퇴장을 고심하게 됩니다. 대부분 업무를 하다가 화가 나는 것은 커뮤니케이션의 문제가 90%이고, 일의 능숙도나 스킬문제가 10%정도 되는 듯 합니다. 일을 잘 못하거나 실수를 하거나 사고를 치는 것은 어쨌든 손배소를 걸든, 퇴사를 하든 다른 사람에게 넘기든 해서 정리를 하고 처리가 가능한 부분입니다. 하지만 커뮤니케이션은 사실 대놓고 막 화를 내기도 뭐하고 따지자니 내가 좀 치졸해지는 것 같기도 합니다.'다양한 의미의 해석'이 가능한 부분인지라 속앓이를 하기 마련이지요.위의 25가지는 당연히 브랜딩 뿐 아니라 모든 일을 함에 있어서 동일하게 적용되는 상황들입니다. 하지만, 굳이 브랜딩실무와 연결시킨 이유는 아래와 같습니다.1. 브랜딩은 말로 하는 업무가 아닙니다.: 그런데 누군가는 자꾸 말만 하고 있고, 누군가는 일만 하고 있기 마련입니다. 차라리 마케팅업무는 데이터에 근거한 액션을 수립하고 정확한 목표와 예산을 설정할 수 있으니 미래지향적이라곤 해도 브랜딩보단 비교적 정량평가가 가능한 영역입니다. 그러나 브랜딩은 그 자체를 수치화 할 수 없고 '정체성' 이라는 모호한 단위에서 다들 허우적거리기 마련이죠. 실무단계에서 빨리 이 두루뭉술한 개념을 정리하여 시각화시키고, 액션으로 바꿔내야 합니다. 문장과 개념들만 떠도는 브랜딩은 모두에게 해롭습니다.문장과 개념들만 떠도는 브랜딩은 모두에게 해롭습니다.2. 모두가 함께하는 유일한 일이어야 해요.누군가는 이를 눈으로 보이게 만들어야 하고 누군가는 그에 맞는 기획안을 짜고 실천에 옮겨야 합니다. 이는 달리 말하면 디자이너와 기획자, 대표만의 잔치로 끝나버릴 수도 있다는 얘기입니다.  위 문제들은 대부분 이러한 맥락에서 발생합니다. '내 일 아닌데?''그게 나와 무슨 상관?''나는 똑똑해, 그러니 내 생각이 옳아.''무슨 일을 해야 하는거죠?'등의 말들이 나오기 시작하죠.  브랜드에 대한 이해도가 공유되지 않으면 대표, 디자이너, 기획자를 제외한 인원들과 업무 핀트가 어긋나기 시작합니다. 서로 무슨 일을 하지는 모르니 오해도 생깁니다. 또한 브랜딩 업무가 특정인원에게 가중되기도 하죠. 회사에는 여러 인원이 있고 각자가 맡은 영역이 서로 다릅니다. 그러니 같이 모여있지만 서로 다른 일을 하면서 일정 부분을 채워나가는 식이죠. 그럼에도 모두가 공통으로 해야 하는 영역이 있다면 바로 브랜딩실무라고 생각합니다. 같은 정체성을 그리고 같은 언어와, 같은 양식, 동일한 프로세스와 같은 문화를 영위하며 같은 방식으로 표현하는 것. 모두가 각자의 일을 하되, 그 저변에 항상 고려되어야 하는 것. 내가 작성하는 모든 문서의 중심과 커뮤니케이션의 구심점이 되어야 하는 것이 사실 브랜딩이니까요. 3. 브랜딩실무는 '일을 만드는 것'이 아니예요.브랜딩의 정의나 개념을 내리는 것은 오히려 쉽습니다. 브랜딩의 중요성을 설파하고 그 방법론에 대해서 떠드는 것은 어렵지 않죠. 하지만 "그래서 우리는 뭘 해야하는데?" 라는 문제에 봉착하면 머뭇거리고 있기 마련입니다. 일단 배너하나 바꾸는, 표지, 굿즈, 상품라벨, 패키지 하나 바꾸는 데에도 돈이 들어가기 시작하고 그 투자비용에 대한 개런티는 어디에도 없습니다. 누구나 다 중요하다곤 외치지만 실상 많은 돈을 들여서 하긴 꺼려하죠. 그래서 생각보다 브랜딩에 대해선 많은 사람들이 모순된 행동을 보이곤 합니다. "아, 이번에 저희가 네이밍을 새로 하려고 해요. 저희의 가치와 브랜드스토리를 알리는 작업이 정말 중요하잖아요. 브랜드의 시발점을 제대로 잡고싶어서 의뢰드렸습니다." 라고 말은 하지만, 막상 견적이 오고가는 과정에선 "그런데 3글자에 A4한 장만 적어주시면 되는데... 조금 저렴하겐 안되나요?"가 되는 것이죠. 가치를 알리는 브랜드의 시발점에서 갑자기 글자와 A4한장분량의 작업으로 바뀌는 경우가 정말 수도 없이 많습니다. 사실 솔직히 브랜딩에 대해 잘 모릅니다. 저도 그렇고 여러분들도 그렇죠. 하지만 변치 않는 명제가 있다면 브랜딩이 일을 위한 일이 되어서는 안된다는 것입니다. 브랜딩을 하기 위해 또 다른 일을 벌리거나 누구도 이해하기 힘든 새로운 프로젝트나 팀을 짜서 움직이는 것이 아니라는 것이죠. 오히려 브랜딩은 '마이너'한 개념의 실무부터 진행해야 합니다. 지금 우리가 하고 있는 것 중  우리 가치관과 맞지 않는 일들을 제거하는 것부터가 시작이죠. 브랜딩은 마이너스의 업무.위의 25가지 내용을 다시 한 번 곰곰히 살펴보시면, 대부분 무언가 "일을 하는 과정/일이 생기는 과정" 에서 발생하는 문제들입니다. 위의 문제들을 하나하나 해결해나가기 위해선, 분노유발자인 상대방을 원자단위로 소멸시키기거나 빅뱅이전의 에너지상태로 돌리는 방법도 있겠지만....더욱 좋은 방법은일단, "우리가 꼭 이것때문에 싸워야 할 필요가 있나?" 를 먼저 고민해보는 것입니다. 브랜딩은 '뭉치는 작업', '규정하고 하나로 모으는' 수렴형업무입니다. 이것을 꼭 유념해두셨으면 합니다. 일이 자꾸 커져서 문제가 생길 때는 잠시 일을 멈추고 주위를 둘러보세요. 그리고 그 원인자체를 하나하나 제거해 나가는( 사람이 아니고..업무를 ) 겁니다. 이런 식으로 우리를 둘러싼 거품과 불필요한 과정들이 사라지고 나면, 이제부터 무엇을 해야할 지 꽤나 직관적으로 발견할 수 있게 될 거예요. 
조회수 1000

[인터뷰] 내 입맛에 맞게, 내가 차린 회사! 미미박스 CEO 디노의 인터뷰 by Sellev

안녕하세요!미미박스의 소식을 전해주는 Ava입니다!오늘은 미미박스의 CEO인 디노(하형석)의 인터뷰를 여러분께 소개해드리려고 합니다. 바로 며칠 전 영감을 주는 인터뷰가 가득한 SELLEV에 디노의 인터뷰가 올라왔는데요.매일매일(출장이 있으실 때 빼고) 만나는 디노이지만이렇게 또 CEO의 생각을 접하게 되니어떻게 오늘 하루를 보내야 할지 다짐을 한 번 더 하게 되네요!그럼 디노가 영상에서 어떤 이야기를 나눴는지 간단히소개 드리겠습니다! #동기부여흔히 실리콘밸리에 있는 기업들을 떠올리면 '복지', '자유' 등을 떠올리는데요.디노가 느낀 실리콘밸리는 자기 동기부여를 통해 일하는 사람들로 꽉 찬 곳이었다고 합니다.이를 보고 위기의식을 느낀 디노는 '우리도 자기 동기부여를 통해 일할 수 있는 회사'를 만들자고 하게 된 것이죠.#창업 계기 '오직 일에만 집중할 수 있는 회사'국내 회사의 문화들을 보면서 디노는 '일에만 집중할 수 있는 회사'를 가고 싶었다고 합니다.하지만 국내에는 그런 회사가 없지 않을까? 하는 생각을 했고, 결국 자신이 꿈꾸는 회사를 직접 창업하게 된 것이죠!#리더십리더십은 경력, 직급, 직책에서 나오는 것일까요?디노는 '오늘 입사한 인턴도 미미박스에 새로운 비전을 제시할 수 있다'고 얘기합니다.그렇게 미미박스는 '반란을 꿈꾸는 사람들'이 모이게 된 것이죠!리더십에 가장 중요한 것은 확고한 철학 아닐까요? #당장 실행하세요'당장 실행하세요'미국에 진출하게 된 것도, 이렇게 미미박스가 성장하게 된 것도 이런 디노의 철학을 바탕으로 나온 결과물이라는 생각이 들어요. 실제로 디노는 만나고 싶은 사람이 있으면 SNS를 통해 물어보고 연락한다고 합니다.고민하고 정의하는 것보다 먼저 실행하는 것! 그것이 영감이 되고 경쟁력이 되지 않을까요?이렇게 디노의 이야기를 만나보았습니다. 여러분은 어떤 생각이 드시나요!?여러분도 오늘 만나고 싶었던 사람이 있다면,혹은 해보고 싶었던 일이 있었다면 작은 것이라도 한번 실행해 보는 건 어떨까요. 
조회수 1709

네이버 신디케이션 — Rails

블로그에 새 글이 올라올 때, naver에 사이트 등록을 한다. 네이버 신디케이션 API를 이용하면 자동으로 등록된다.Wordpress에는 네이버 신디케이션 plugin이 존재한다. Rails gem을 찾아보니 애석하게도 없었다. 직접 만들면서 알게 되었다. 딱히 gem을 만들 만한 일도 아니더라.네이버 신디케이션을 이용하려면 우선 네이버 웹마스터 도구를 이용해야 한다. 해당 url이 자기 것이라는 인증과정만 거치면 바로 사용할 수 있다.작동방법은 대강 이렇다.네이버 신디케이션 API를 이용해서, 새로운 글이 생성되었음을 알린다. (혹은 글이 지워졌음을)네이버 크롤링 봇, Yeti가 와서 크롤링 해간다.API를 이용할 때 미리 약속된 format으로 만들어야 되는데, ATOM feed와 구조가 거의 같다. 다만 네이버가 정한 룰 때문에 (꼭 이름/저자/업데이트날짜 이런 순서를 지켜야 한다.)Rails에서 제공하는 atom_feed helper를 그대로 이용할 수 없다. 그러나 format만 살짝 바꾸면 되기 때문에 atom_feed helper를 이용해서, feed를 만드는 방법을 알려주는 Railscast가 늘 그렇듯 엄청 도움이 된다.(요즘 새로운 episode가 안올라오고 있는데… 힘내시라는 의미에서 예전에 유료결제 해드렸다)atom_feed helper의 코드를 그대로 가져와서 formating만 바꾼 naver_atom_feed helper를 만들었다. 별다른 건 없고, feed option 초기화 부분과 제일 마지막에 나와야 되는 link 부분을 주석처리한게 전부다.module NaverSyndicationHelper def naver_atom_feed(options = {}, █) ... feed_opts = {} //feed_opts = {"xml:lang" => options[:language] || "en-US", "xmlns" => 'http://www.w3.org/2005/Atom'} ... xml.feed(feed_opts) do xml.id... // xml.link... // xml.link... yield ActionView::Helpers::AtomFeedHelper::AtomFeedBuilder.new(xml, self, options) end end end새로만든 naver_atom_feed helper를 이용해서, feed부분만 완성한 code이다.naver_atom_feed({xmlns: "http://webmastertool.naver.com", id: 'http://ikeaapart.com'}) do |feed| feed.title "이케아아파트" feed.author do |autor| autor.name("이케아아파트") end feed.updated Link.maximum(:updated_at) feed.link(:rel => 'site', :href => (request.protocol + request.host_with_port), :title => '이케아아파트')이제 entry쪽을 만들어야 되는데, 네이버가 지정한 순서에 맞아야지만 신디케이션 서버에 전달할 수 있다. 정말 이상한 형식이다. 아무튼 그래서 Rails에서 제공하는 entry method를 사용하지 못한다. 이번엔 AtomFeedBuilder class에 naver_entry method를 만들었다.#config/initializers/feed_entry_extentions.rbmodule ActionView module Helpers module AtomFeedHelper class AtomFeedBuilder def naver_entry(record, options = {}) @xml.entry do @xml.id... # if options[:published]... # @xml.published(...) # end # if options[:updated]... # @xml.updated(...) # end # @xml.link(..) ...이번에도 순서 때문에 주석처리 한 것 밖에 없다. naver_entry method를 이용해서 완성된 코드가 아래 코드이다.# views/links/show.atom.buildernaver_atom_feed({xmlns: "http://webmastertool.naver.com", id: 'http://ikeaapart.com'}) do |feed| feed.title "이케아아파트" feed.author do |autor| autor.name("이케아아파트") end feed.updated Link.maximum(:updated_at) feed.link(:rel => 'site', ...) feed.naver_entry(@link, {id: link_url(@link)}) do |entry| entry.title(@link.title) entry.author do |author| author.name("이케아아파트") end entry.updated(@link.updated_at.xmlschema) entry.published(@link.created_at.xmlschema) entry.link(:rel => 'via', :href => (request.protocol + request.host_with_port)) entry.content(@link.contents) end end이제 새 글이 만들어 질 때, 이 atom 파일 주소를 네이버 신디케이션 API로 보내주면 된다. 참고로 Rails에서는 어떤 view파일을 사용할지 알아서 해주니, controller에 따로 ‘response_to’ 를 이용해서 format을 나눠줄 필요는 없고, 이름만 잘 맞춰주면 된다. (위 파일명은 show.atom.builder 이다)네이버 신디케이션 API에 핑을 보내는 code이다. 네이버가 지정해 놓은 header를 설정해 줘야 되고, 신디케이션 인증 토큰을 받아서 header에 넣어줘야 된다. 신디케이션 토큰은 네이버 웹마스터 페이지에서 볼 수 있다.require 'net/http' ... header = {"User-Agent"=>"request", "Host"=>"apis.naver.com", "Progma"=>"no-cache", "Content-type"=>"application/x-www-form-urlencoded", "Accept"=>"*/*", "Authorization"=>"Bearer " + ENV["NAVER_SYNDICATION_TOKEN"]} uri = URI.parse('https://apis.naver.com/crawl/nsyndi/v2') http = Net::HTTP.new(uri.host, uri.port) http.use_ssl = true args = {ping_url: link_url(link_id, format: "atom")} uri.query = URI.encode_www_form(args)request = Net::HTTP::Post.new(uri.request_uri, header) http.request(request)네이버 신디케이션 페이지에서 핑이 제대로 도달하는지 바로 확인해 볼 수 있다.#티엘엑스 #TLX #BA #BusinessAnalyst #비즈니스애널리스트 #꿀팁 #인사이트 #조언
조회수 1796

파이썬의 개발 “환경”(env) 도구들

안녕하세요. 스포카 프로그래머 홍민희입니다.파이썬 패키징 생태계에서 개발 환경을 구성하기 위해 널리 쓰이는 virtualenv나 pyvenv, virtualenvwrapper 같은 각종 도구가 왜 필요한지 (또는 자신에게는 큰 도움이 안 되는지) 알려면 그 이전의 파이썬 라이브러리 배포 방식에 대한 이해가 많은 도움이 됩니다. 여기서는 필요한 몇 가지 역사적 사실과 파이썬 패키징 개념 중 현재의 생태계 이해에 필요한 것들을 위주로 정리하고, 최종적으로 각자의 필요에 따라 어떤 도구를 활용하면 될지 지침을 제안합니다.sys.path패키징이고 뭐고 아무것도 없던 90년대 말에는 라이브러리 소스 코드 파일들을 타르볼(tarball)로 압축해서 배포했습니다. 쓰는 사람은 그걸 자신의 애플리케이션 소스 트리 안에 풀어서 사용했습니다.파이썬에는 지금도 sys.path라는 인터프리터 전역적인 상태가 존재합니다. PATH 환경 변수가 실행 바이너리를 찾을 디렉터리 경로들의 목록인 것과 비슷하게, sys.path도 import foo를 하면 foo.py (또는 foo/__init__.py) 파일을 찾을 디렉터리 경로들의 목록을 담습니다. 그리고 기본 동작으로 그 목록의 맨 처음에는 현재 디렉터리(./)가 들어갑니다. 따라서 라이브러리 타르볼을 애플리케이션 소스 트리에 풀어두면 import해서 쓸 수 있습니다.하지만 자신이 작성한 애플리케이션 코드와 남이 작성한 라이브러리 코드를 같은 소스 트리에서 관리하는 것은 여러모로 불편합니다. 따라서 라이브러리는 애플리케이션 소스 트리와는 별도의 디렉터리(예: ../libs/)에 풀어서 관리하고, 애플리케이션 소스 코드 맨 위에 아래와 같이 써두는 패턴이 많았습니다.import sys sys.path.append('../libs') 또는 sys.path를 소스 코드를 건드리지 않고 조작하기 위해 PYTHONPATH 환경 변수를 활용하는 경우가 많았습니다.세기말, 파이썬 1.5를 쓰던 때의 이야기입니다.site-packages새 천 년이 밝았고 파이썬 2.0이 나왔습니다. 표준적인 라이브러리 배포 방식 및 설치 방식이 제안되었고, 표준 라이브러리에 distutils도 들어왔습니다. (지금도 setuptools는 distutils에 의존하고, pip는 setuptools에 의존합니다.) 제안된 방식은 이랬습니다.애플리케이션 코드가 아닌 라이브러리 소스 코드는 모두 /usr/local/lib/pythonX.Y/site-packages/ 디렉터리 안에 둡니다. X.Y는 파이썬 인터프리터 버전이고, 경로는 인터프리터를 빌드할 때 (./configure) 정합니다. 데비안 계열은 site-packages 대신 dist-packages라는 이름으로 바꿔서 빌드하는 등, 파이썬 인터프리터의 설치 방식에 따라 달라집니다. 어떻게 정하든 이를 site-packages 디렉터리라고 부릅니다. 파이썬 인터프리터를 빌드할 때 경로가 결정되므로, 파이썬 인터프리터 별로 각자의 site-packages 디렉터리를 갖게 됩니다. (한 시스템에서 여러 파이썬 버전을 설치했을 때 pip 역시 pip2.7, pip3.6 등과 같이 버전 별로 명령어가 생기는 것도 같은 이유입니다.)기본적으로 sys.path 목록에는 맨 앞에 현재 위치(./), 뒤쪽에는 site-packages 경로가 들어있습니다. import를 하면 현재 위치에서 찾고, 없으면 site-packages를 찾아본다는 뜻입니다.표준 라이브러리의 distutils.core.setup() 함수는 라이브러리 파일들을 시스템의 site-packages 디렉터리에 복사해주는 함수입니다. 라이브러리 타르볼 파일 맨 바깥에는 이 함수를 이용해 라이브러리를 시스템 site-packages에 설치해주는 스크립트를 setup.py라는 파일명으로 포함하는 관례가 있었습니다. pip 같은 게 없던 때에는 라이브러리 타르볼을 받아서 푼 다음 python setup.py install 명령을 실행하는 것이 일반적인 라이브러리 설치법이었습니다. 지금도 pip는 *.whl 파일이 아닌 *.tar.gz/*.zip 파일인 패키지를 설치할 때 내부적으로 python setup.py install 스크립트를 실행합니다.참고로 이때 정립된 파이썬 패키징 표준은 리눅스에서 쓰이는 dpkg나 RPM 같은 일반적인 패키징 방식을 의식하며 만들어졌습니다.1 당시는 도커는 커녕 가상화 자체가 보편적이지 않던 때로, 한 시스템에 여러 애플리케이션을 함께 설치해서 쓰는 멀티테넌시 환경이 일반적이었기 때문입니다.workingenv파이썬으로 작성한 애플리케이션 여럿이 한 시스템에 설치되면 공통으로 의존하는 라이브러리의 버전을 결정하는 게 문제가 됩니다. A 애플리케이션은 foo >= 1.0.0, < 2>에 의존하고 B 애플리케이션은 foo >= 1.5.0에 의존하면 시스템에 설치할 수 있는 foo의 버전은 >= 1.5.0, < 2>으로 한정됩니다. 만약 C 애플리케이션을 설치하려는데 foo > 2.0.0에 의존한다면, A나 C 중 하나는 포기해야 합니다.시스템에 파이썬 애플리케이션을 단 하나만 설치한다 해도, 설치하는데 시스템 관리자 권한이 필요하다는 것도 문제였습니다. 일반적으로 site-packages 디렉터리는 시스템 관리자만 수정할 수 있고 나머지는 읽기만 가능한 /usr 아래 어딘가로 정해졌기 때문입니다. 이를 우회하려고 사용자가 시스템에 설치된 파이썬 인터프리터를 쓰지 않고 직접 파이썬 인터프리터를 빌드해서 사용하는 편법도 쓰였습니다.이런 문제를 해결하기 위해, 애플리케이션·프로젝트마다 별도의 site-packages 디렉터리를 두는 방식이 제안됐습니다. 나중에 virtualenv을 만들게 되는 이안 비킹이 그 전신인 workingenv를 만들어 이 아이디어를 실현했습니다. 현재의 virtualenv 사용 방식은 workingenv에서 만들어진 것입니다.애플리케이션마다 별도의 “환경”(env)을 만듭니다.애플리케이션을 실행하기 전에 우선 그 “환경”을 “활성화”(. bin/activate 또는 Scripts\activate.bat)합니다.workingenv가 만들어주는 활성화 스크립트는 PATH와 PYTHONPATH 환경 변수를 재정의하여 시스템에 설치된 파이썬 인터프리터의 실행 바이너리 디렉터리 및 site-packages 디렉터리를 가리키는 대신, “환경” 내의 bin/ 및 site-packages 디렉터리를 바라보도록 해줍니다. 이안 비킹은 이렇게 분리된 실행 파일들(bin/)과 site-packages 등을 묶어서 “환경”이라고 명명했는데, workingenv 이후로 파이썬 패키징 및 배포 분야에서 이 용어가 정착됩니다.최근에 만들어진 신생 언어의 패키지 관리자는 대부분 파이썬과 달리 애플리케이션·프로젝트마다 별도의 환경을 두고 설치되는 경우가 많습니다. 예를 들어 npm은 -g 옵션을 일부러 켜지 않는 한 현재 디렉터리를 기준으로 ./node_modules 디렉터리에 라이브러리를 설치하게 되어 있고, 별도의 “활성화” 없이도 노드 인터프리터가 해당 경로에서 라이브러리를 찾습니다. 하지만 파이썬의 패키징 표준은 앞서 언급한 것처럼 멀티테넌시 환경이 일반적이었던 시대에 만들어졌고, 또 많은 라이브러리가 실행 파일도 함께 제공하기 때문에2 PYTHONPATH 뿐만 아니라 PATH 환경 변수도 재정의해야 해서 activate 과정이 필요합니다.workingenv는 파이썬 웹 프로그래머 사이에서 빠르게 퍼지기 시작했습니다. 웹 애플리케이션은 정통적인 CLI 및 GUI 애플리케이션과 달리 FHS 표준 같은 것에 크게 구애될 필요가 없었고, 웹 애플리케이션의 배포도 점차 가상화 기술을 통해 완전히 격리된 시스템에 설치되는 식으로 보안 문제에서 많이 자유로워졌기 때문입니다.무엇보다 workingenv는 프로그래머가 여러 프로젝트를 동시에 작업하는 경우 골치 아팠던 라이브러리 버전 충돌 문제를 우회했기 때문에, 배포 도구보다는 개발 도구로 정착되는 면이 컸습니다.virtualenv이안 비킹은 PYTHONPATH를 조작하여 별도의 site-packages 공간을 두는 workingenv의 방식이 복잡하게 패키징된 기존 라이브러리 및 프로젝트에서 호환되지 않는 문제로 골머리를 썩이다, 아예 PYTHONPATH를 이용하지 않는 방식으로 새 도구를 만듭니다.새로운 방식은 아예 파이썬 인터프리터 실행 바이너리를 복사한 뒤, sys.path 기본값에 박힌 시스템 site-packages 경로를 환경 내 site-packages 경로로 바꿔버리는 것이었습니다. 이러한 동작 원리의 차이는 이용자 입장에서 크게 중요한 것은 아닙니다.하여튼 이안 비킹은 virtualenv라는 이름으로 새 도구를 만들었고, workingenv를 빠르게 대체했습니다.virtualenvwrapper앞서 언급한 것처럼, workingenv와 그 후계자인 virtualenv는 저자의 의도와 무관하게 애플리케이션 배포보다는 개발 용도로 더 널리 쓰입니다. 파이썬 프로그래머가 새로운 프로젝트를 시작할 때는 항상 “환경”도 생성합니다. 또 개발을 시작할 때마다 “활성화” 과정도 거칩니다. 너무나 반복적이기 때문에 당연히 이를 자동화하는 도구도 만들어졌습니다. virtualenvwrapper는 바로 그런 목적으로 만들어진 bash/zsh/fish 스크립트 모음입니다.여러 단축 명령을 제공하지만, 핵심 기능은 다음의 두 가지입니다.A라는 프로젝트 작업을 시작할 때마다 cd ~/projects/a; . .venv/bin/activate라고 쳐줘야 했던 것을 workon a 명령으로 줄여줍니다.프로젝트 디렉터리마다 .venv/ 또는 .env/ 등의 이름으로 환경 디렉터리를 생성해두고 버전 관리 시스템에서는 제외되도록 .gitignore 목록에 해당 디렉터리를 넣었어야 했습니다. 예를 들어 ~/projects/a/.venv/, ~/projects/b/.venv/ 같은 식이었습니다.virtualenvwrapper를 쓰면 환경 디렉터리들을 일정한 위치로 모아줍니다. 위치는 기본값이 없으며 virtualenvwrapper 설치할 때 WORKON_HOME 환경 변수를 통해 입맛대로 정할 수 있습니다. 예를 들어 WORKON_HOME을 ~/.virtualenvs/ 디렉터리로 정했다면, 프로젝트별 환경은 ~/.virtualenvs/a/, ~/.virtualenvs/b/ 같은 식으로 저장됩니다.pyvenv파이썬 3.3부터는 virtualenv가 아예 파이썬에 내장됐습니다. 환경을 만드는 명령어는 virtualenv가 아닌 pyvenv로 좀 다르지만, 그 이후의 과정은 같습니다. 파이썬 3만 사용한다면 이제 virtualenv를 따로 설치할 필요가 없어진 것입니다.참고로 아래에서 설명할 pyenv와는 다른 도구입니다. 철자의 “v”에 주의해주세요.pyenv애플리케이션을 개발할 때는 하나의 파이썬 버전을 정하면 되지만, 라이브러리는 여러 파이썬 버전과 호환되어야 합니다. 그러다 보니 라이브러리 개발자는 여러 버전의 파이썬을 시스템에 동시에 설치할 필요가 있습니다. 데드스네이크스 PPA나 데드스네이크스 홈브루 탭 같은 것을 이용해서 설치할 수도 있지만, 보통은 pyenv를 많이 씁니다.pyenv는 동시에 여러 버전의 파이썬을 시스템에 설치해주며, 이렇게 설치된 파이썬은 시스템의 패키지 시스템(데비안·우분투의 APT나 맥OS의 홈브루 등)을 통해 설치되는 것이 아니라, pyenv가 다운로드와 빌드 및 설치를 직접 하여 별도로 관리합니다. 설치된 파이썬들은 PEP 394에 따라 일정한 형식으로 이름지어진 명령어(예: python2.7, python3.6)로 실행할 수 있게 됩니다.또한, 여러 파이썬 버전 중에 하나의 시스템 기본 파이썬 버전도 선택 가능하며, 특정 프로젝트 디렉터리 안에서만 기본 파이썬의 버전이 달라지게 할 수도 있습니다.pyenv-virtualenvpyenv가 여러 파이썬 버전을 동시에 설치해주기는 하지만, 그렇다고 자동으로 site-packages가 프로젝트마다 격리되는 것은 아닙니다. 예를 들어 pyenv로 파이썬 3.6을 설치한 뒤, 파이썬 3.6으로 두 프로젝트를 한 시스템에서 개발할 경우 두 프로젝트는 시스템 site-packages를 함께 쓰게 됩니다.따라서 pyenv를 쓰더라도 virtualenv는 따로 써야 하는데, 따로 사용할 수도 있지만 pyenv-virtualenv를 쓰면 pyenv virtualenv 명령으로 프로젝트에 쓸 파이썬 버전 지정과 가상 환경 생성을 한 번에 할 수 있게 됩니다.비슷하게 pyenv와 virtualenvwrapper를 통합해주는 pyenv-virtualenvwrapper 같은 도구도 있습니다.마치며여러 파이썬 개발 환경 관리 도구를 소개했지만, 여기 있는 모든 도구를 꼭 써야 하는 것도 아니고, 가장 최근에 나온 도구로 하루빨리 갈아타야 하는 것도 아닙니다. 글을 쓴 저 자신도 pyenv 같은 도구가 나온 지 몇 년이나 지났고 주변에서 쓰는 사람이 많음에도 쓰지 않고 있습니다. virtualenvwrapper를 대체하는 Pipenv 같은 실험적인 방식3도 생겨나고 있지만, 어느 쪽이든 동시에 여러 파이썬 프로젝트를 작업하는 사람이 아니라면 굳이 쓸 필요가 없는 도구입니다. 각자의 용도에 따라 필요한 수준의 도구를 이용하면 됩니다. 2017년 10월 현재, 아래의 지침으로 정리할 수 있겠습니다.파이썬 프로그래머가 아니지만, 파이썬 애플리케이션을 설치해서 이용합니다.시스템에서 제공하는 패키지 관리자(APT나 홈브루 등)를 통해 애플리케이션을 설치하세요.파이썬 프로그래머가 아니지만, 파이썬 애플리케이션을 유난히 많이 이용합니다.pipsi를 이용해 파이썬 애플리케이션을 설치하는 것을 권합니다.파이썬 프로그래머이고, 하나의 애플리케이션을 개발합니다.파이썬 3.3 이상을 이용할 경우 pyvenv로 개발 환경을 만들어서 개발하세요. 그 이전의 파이썬 버전을 이용할 경우 virtualenv를 활용하세요.파이썬 프로그래머이고, 여러 애플리케이션을 개발합니다.virtualenvwrapper를 활용하세요.파이썬 프로그래머이고, 여러 애플리케이션을 다양한 파이썬 버전으로 개발합니다.pyenv-virtualenvwrapper를 활용하세요.파이썬 프로그래머이고, 라이브러리를 개발합니다.pyenv와 tox를 활용하세요.파이썬으로 만든 애플리케이션을 distutils를 통해 패키징한 뒤, RPM 기반의 리눅스 배포본 용으로 python setup.py bdist_rpm 명령을 통해 *.rpm 파일을 제공하기도 했습니다. 이를 통해 애플리케이션을 설치할 경우, 각 파일들은 리눅스 FHS 표준과 해당 시스템 설정에 따라 흩어지게 됩니다. ↩예를 들어 파이썬에서 가장 많이 쓰이는 국제화 라이브러리인 바벨은 pybabel 명령어를, 구문 강조 라이브러리인 파이그먼츠는 pygmentize 명령어를, 장고는 django-admin 명령어를 제공합니다. ↩저는 2017년 4월에 한 번 써보았으나, 아직은 실무에서 쓰기에는 이르다는 결론을 내렸습니다. 이에 관한 그때의 제 감상은 별도의 글로 다루었습니다. ↩#스포카 #파이썬 #개발팀 #개발자 #인사이트 #후기 #일지
조회수 1579

응답시간 분포도

애플리케이션의 성능 개선은 웹 트랜잭션의 응답시간을 분석을 통해 이뤄집니다. 와탭의 응답시간 분포도는 대규모 트랜잭션 분석이 가능한 Heatmap 형태로 제공되고 있습니다. 와탭을 사용하는 사용자는 응답시간 분포도를 통해 웹 서비스의 응답시간이 느려지는 것을 알 수 있을 뿐만 아니라 패턴 분석을 통해 느려진 원인을 예측할 수도 있습니다. 와탭의 응답시간 분포도Y 축: 트랜잭션 응답시간을 의미합니다. 10s는 트랜잭션이 시작에서 종료까지의 시간이 10초가 걸렸다는 것을 의미합니다.X 축: 트랜잭션이 종료된 시간을 의미합니다.■: 트랜잭션이 발생한 위치에 색이 칠해집니다. 청색 계열은 정상적인 트랜잭션을 의미합니다. 노랑색과 붉은 색 계열은 에러가 발생한 트랜잭션을 의미합니다. 색상의 농도는 해당 영역에 발생한 트랜잭션의 밀도를 상대적으로 표시합니다.  와탭의 응답시간 분포도는 트랜잭션의 응답시간을 시각화하는 것입니다. 웹 서비스의 트랜잭션을 시각화 할 뿐만 아니라 추적하고자 하는 영역을 드래그하여 트랜잭션의 진행상황을 추적하는 것도 가능합니다.  추적하고 싶은 트랜잭션을 드래그 하는 모습와탭의 응답시간 분포도에서 트랜잭션을 선택하면 분석 화면으로 넘어갑니다. 해당 애플리케이션 서버 정보를 통해 선택된 트랜잭션이 어느 애플리케이션 서버에서 발생했는지 알 수 있습니다.애플리케이션과 선택된 트랜잭션 정보 화면분석하고 싶은 애플리케이션 서버를 클릭하면 해당 애플리케이션 서버에서 발생한 트랜잭션 목록을 확인 할 수 있습니다. 최종적으로 APM을 통해 확인하고 싶은 내용이 트랜잭션의 디테일한 정보일 것입니다. 와탭의 APM은 트랜잭션을 시각화하고 시각화된 트랜잭션을 선택하면 선택된 트랜잭션의 목록을 애플리케이션 서버 별로 분류하여 선택할 수 있는 구조를 가지고 있습니다. 이것은 능동적으로 웹 애플리케이션을 분석할 수 있는 최적화된 흐름이라고 생각할 수 있습니다. 사용자가 응답속도 분포도를 통해 선택한 트랜잭션 목록#와탭랩스 #개발자 #개발팀 #인사이트 #경험공유 #일지
조회수 1625

공용 계정용 OTP 관리방법

제대로 된 기업용 서비스라면 의례 다중 계정과 권한 제어 기능을 함께 제공하기 마련이다. 그래서 공용 계정을 굳이 만들 이유가 하나도 없다. 하지만 일부 서비스(그리고 대부분의 한국의 기업 서비스)는 단일 계정만 지원하는데다 AWS 같은 서비스도 root 계정이 따로 있어서 계정 관리 이슈가 불거지기 마련이다. 계정 아이디와 암호의 경우는 LastPass 같은 기업용 계정 관리 서비스를 사용하거나 팀 공용 계정 비밀번호 관리하기에서 소개된 방식과 같이 약간은 불편하지만 비용이 들지 않는 수단을 도입하여 관리하면 된다. 그런데 MFA 또는 2FA(2-Step Verification)라고도 부르는 OTP로 계정을 보호할 때는 OTP 정보를 공유하기가 쉽지 않다. 일반적으로 MFA 계정은 Google Authenticator 같은 앱을 설치해 관리한다. OTP 정보와 계정 암호를 한 계정에서 관리하지 않아야 한쪽이 노출되어도 보안을 유지할 수 있기 때문이다. 문제는 Google Authenticator와 Authy 같은 도구를 특정 휴대폰에 설치하면 여러 사람이 OTP 정보를 공유하기 힘들다는 것이다. 그래서 몇가지 솔루션을 찾아보았는데 “이거다!” 싶은 건 없어도 gauth라는 명령줄 기반 도구에 안착하게 되었다.gauth.csv라는 파일에 OTP 정보를 아래와 같이 입력하고AWS: ABCDEFGHIJKLMNOPQRSTUVWXYZ234567ABCDEFGHIJKLMNOPQRSTUVWXYZ234567 Airbnb:abcd efgh ijkl mnop Google:a2b3c4d5e6f7g8h9 Github:234567qrstuvwxyzgauth를 실행하면 아래와 같이 OTP 토큰을 확인할 수 있다.$ gauth prev curr next AWS 315306 135387 483601 Airbnb 563728 339206 904549 Google 453564 477615 356846 Github 911264 548790 784099 [======= ]이제 gauth.csv 파일만 라스트패스 등으로 제한된 사용자에게 안전하게 공유하면 된다.개선 사항DailyHotel/gauth는 pcarrier/gauth를 개선한 tuxmartin/gauth를 Docker 이미지로 감쌌다. 그래서 Golang 개발환경을 갖추고 소스코드를 빌드하지 않아도 바로 사용할 수 있다. 자세한 사용법은 README 문서에 적어두었다.#데일리 #데일리호텔 #개발 #개발자 #개발팀 #인사이트 #꿀팁
조회수 1954

2년 전, 비캔버스 초기 개발 가이드

이 자료는 2014년 7월, 지금으로부터 2년 4개월 전, 비캔버스를 개발하기 시작할 때 작성했던 문서다.본래 내부적으로 공유하고자 하는 목적으로 작성됐지만, 시간이 흘러 내용의 상당수가 변화하였고 제품 개발에 대한 비밀적인 자료보다 제품 철학, 디자인 철학에 대한 부분이 많아 공개하기로 하였다. 2년 전 자료인데다, 내부적으로 공유하고자 하는 목적에서 작성됐기 때문에 글이 컴팩트하지 않고, 내용의 전문성이 조금 떨어 질 지도 모르지만, 충분히 참고할 만한 자료로써 가치가 있다.이는 제품 개발뿐 아니라 사업 운영에 있어 과도하게 시간을 잡아먹는 단순 비판성 회의나, 대안 없는 불평을 해소하기 위한 목적도 있었다. 당시에는 제품 개발보다 중요한 것이 하나의 목적을 모든 팀원이 명확히 인지하고 일관된 움직임을 갖추게 만드는 것이라고 생각했다. 제품에서 드러나는 느낌, 마케팅 문구, 디자인, 기능 하나하나 매우 일관된 목소리를 갖추게 만드는 것이 이 당시의 목표였다.이 자료를 통해, 서비스를 처음 개발하고자 하는 팀, 회사가 조금이라도 도움이 되길 바라며 비캔버스를 사용하고 있는 사용자들은 비캔버스가 어떤 철학과 믿음을 토대로 세밀하게 설계됐는지 알 수 있는 자료가 될 것이다. 회사 이름이 지금과 다른데, 당시의 회사 이름은 오시리스시스템즈가 아닌 '조커팩' 이었다.본래, 외부에는 비공개되는 자료였다.                       사용자 중심(User-Centered) 제품에 대하여 사용자 중심 제품은 전적으로 사용자의 경험의 질을 향상시켜주는 것을 그 목적으로 한다. 가령,기존 제품이나 행동양식이 사용자에게 만족스러운 경험을 주었다면, 사용자 중심 제품은 사용자로 하여금 단편적 좋은 경험의 세계를 넘어선 초월적 경험 세계를 느끼게 해주는 데 있다. 좋은 제품을 넘어선 위대한 제품들은 이러한 초월적 시험 세계가 느끼게 해주는 실험적 낯섦을 사용자에게 주었기에 처음엔 바보 취급을 받았지만, 시간이 지나면서 경험의 표준양식으로 자리매김했다. 이렇게, 치밀하게 설계된 사용자 중심 제품을 사용하는 사용자는 제품을 경험하는 시간을 더욱 의미 있게 느끼게 되며, 경험의 시간을 길게 가져간다. 그제야 디자이너와 개발자가 설계한 UX 디자인이 효과를 발휘할 수 있다. 흔히들 착각하는 것이 UXD가 User Experience Design이기 때문에 이를 통해 사용자의 경험을 의미 있게 만들 수 있다는 것이다. 그러나, 초월적 경험은 단순한 UXD를 통해 발현되는 것이 아닌, 사용자 중심으로 설계된 제품 자체를 통해 발현된다고 본다. UXD는 이러한 사용자 중심 제품의 일부 과정이 되어야 하며, UXD에 대한 방향이 사용자 중심 제품을 만드는 데 선행되어선 안된다. UXD는 사용자가 경험의 시간을 길게 가져가지 않는다면 무용지물이다. 디자인 자체보다, 사용자에게 어떠한 실험적 세계를 보여줘서 경험을 초월시킬 것인가에 대한 고민이 중요하다. 비캔버스는 Whiteboard & Diagramming이라는 정해진 영역에 있는 소프트웨어다. 그러나, 기존 제품들이 제공하는 기능을 넘어서서 새로운 차원의 경험을 만들어내기 위해 설계되었다. 이는 단순한 기능의 추가로 인해 만들어지는 것이 아닌 브랜드 아이덴티티, 사회 연결망, 마케팅 믹스, 포지셔닝 등 복합적인 경험의 시스템적 강화로 만들어진다. 그리고 이는 세밀한 설계를 바탕으로 한 명확한 의도 아래 구성된다.‘비캔버스를 어떻게 만들고 어떤 기능을 어떻게 개발할 것인가?’에 대한 고민을 하면 결코 위대한 제품이 될 수 없다. ‘처음 비캔버스를 접한 사용자에게 어떻게 느껴질 것이며 어떠한 가치를 주어 초월적이고 낯선 경험을 하게 만들 것인가’에 대한 답을 내놓기 위해 모든 개발, 디자인 프로세스가 설계되어야 할 것이다. 이러한 개념은 흔히 알려진 사용자 경험과 UXD에 반하는 개념이다. 그러나, 위대한 제품을 만든 인물들은 이론적으로 만들어진 영혼을 제품 속에 불어넣지 않았다. 그들은 합리적이고 논리적인 이성과 추상적이고 표현 불가능한 직관을 결합시킨 새로운 차원의 영혼을 제품 속에 불어넣었다. 위대한 제품은 만들어진 이유에 대해 설명이 불가능하며, 사용자 또한 왜 제품을 사랑하는지 설명 불가능하다. 그것은 매우 낯설고 기이한 경험(사실은 치밀하게 설계된)에 의한 것이기 때문이다. 우리는 사용자 경험에 대한 새로운 시각을 가지고 개발에 임해야 할 것이다.     아이디어를 필터링하는 11가지 질문들                 모든 개발, 디자인에 대한 사항은 아래와 같은 기본적 필터링을 거쳐야 한다. 앞서 언급했던 여러가지 제품 개발 철학들이 이 필터에 포함되며, 이러한 필터링을 거치지 않은 개발, 디자인 관련 아이디어들은 기본적으로 무시된다. 이 필터는 우리의 제품 개발 방향을 크게 선회하여 철학 전체가 흔들리지 않는 이상 유효하다. - Collect & Share anything 의 정신에 위배되지 않는가?- 극도의 사용성과 경험을 해치지 않는가? 가령, 크게 필요하지 않은 장식적 기능이 아닌가?- 직관의 근거가 있거나 데이터 기반의 논리적 근거를 가지고 있는가? - 해당 기능, 디자인이 자신이 만들고 싶은 세계를 만들어 나가는 데 필요한 것인가?- 해당 기능, 디자인을 접했을 때 기이하고 낯설은가? 그 낯섦이 초월적 경험을 줄 것 같은가?- BeeCanvas의 전체적인 시각적, 기능적 통일성(Unity)을 해치지 않는가?- 이 기능, 디자인이 고객에게 제공할 가치에 대해 충분히 고민했는가? 쉽게 떠올릴 수 있는가?- 경쟁사는 이 기능, 디자인을 제공하고 있지 않은가? 쉽게 따라오기 힘든 것인가? - 이와 비슷한 경험을 접한 적이 있는가? 즉, 메타포를 가지고 있는가?- 적어도 자신이라도 정말로 쓰고 싶은 기능, 디자인인가?- BeeCanvas가 만들어갈 세상과 아이디어를 정교하게 연결시킬 수 있는 인과를 준비했는가? 이 11가지 필터링에도 통과한 아이디어라면 충분한 회의를 통해 관철되어야 할 것이다. 경험과 가치에 대한 확신이 충분한 아이디어는 존중받아야 하며, 이는 아이디어를 고려하는 시간을 의미 있게 만들어줄 것이다. 그러나, 이러한 필터링을 전혀 통과하지 못하는 아이디어는 팀원들의 시간만 축낼 것이다. 끔찍한 아이디어는 전반적인 팀원들의 사고의 틀을 더욱 하향 평준화시킨다. 위대한 아이디어들이 만연할 때, 팀은 가장 강력하고 활기를 띤다고 본다. 사람들이 원하는 기능에 대한 고민은 지속적으로 이뤄져야 할 부분이다. 위와 같은 프레임 내에서 충분하고 의미 있게 고민된 아이디어를 통해 비캔버스가 만들어갈 세상을 구체화시켜 나가야 한다.                         비캔버스에서의 인간-컴퓨터 상호작용(HCI) 요소 인간-컴퓨터 상호작용(HCI)에서 가장 중요한 것은 인간이다. 인간은 컴퓨터를 통해 현실 문제를해결하려 한다. 컴퓨팅 파워가 점점 더 강해 짐에 따라, 단순히 문제를 해결하는 솔루션을 넘어선 효과적인 상호작용을 통해 더욱 초월적 경험을 하는 데 의미가 있어졌다. 이러한 흐름에 답하는 것이 HCI다. HCI는 특정 경험 시간(Iteration)에 대해 컴퓨터가 제공하는 어떠한 경험적 상호작용을 통해 이뤄지는 것이다. 이 상호작용은 ‘벽’으로 정의할 수 있다.                         위와 같이 인간과 시간이 제품과 만났을 때 실현되는 무언가(things)가 초월적 경험을 이끌어내는 비밀이다. 그 비밀이 비캔버스가 마땅히 가져야 할 제품 철학이라고 본다면, 이 제품이 어떤 존재여야 하는가에 대한 고민이 중요하다. 어차피 제품을 접한 사용자는 필연적으로 시간을 투여하게 돼있기 때문이다. 이러한 설계가 얼마나 치열하고 견고하게 설계됐는지에 따라 사용자가 제품에 투입하는 시간의 양도 더욱 커지며, 그에 따라 제품이 제공하는 가치의 합도 커진다.  비캔버스가 제공하는 원론적인 가치는 무엇일까? 그것은 '기록과 표현의 자율성'이다.                       우리는 위의 '텍스트 입력 대기' 마우스 포인터가 가진 한계를 넘어서고자 한다. 인간은 종이에서 자유로웠고 효과적으로 생각을 정리하고 공유했지만, 컴퓨터를 통해 한계를 가진 document를 수없이 양산해왔다. 결과적으로 인간은 인터넷이 가진 특성으로 인해 공유의 속도를 넓혀 사회관계망을 더욱 확장시켰음에도 불구하고 생각의 흐름은 더욱 후퇴했다. 비캔버스는 이러한 사고의 한계를 무너뜨리고 더욱 자유로운 Document sharing, Knowledge sharing이 가능한 화이트보드를 제공한다. 이를 통해 사용자는 자신도 인지하지 못하는 사이에 더욱 효과적으로 생각을 정리할 수 있게 된다.아주 미묘한 Interaction의 변화로 탁월한 성과가 만들어질 수 있는 것이다. 이러한 경험을 한 사용자는 자연스럽게 비 캔버스에 Lock-In 될 수밖에 없다.                     우리가 지향하는 마우스 포인터는 위와 같은 형태다. 이것이 컴퓨터의 미래가 될 것이다. 생각의 틀을 가둔 채로 생산성을 기대하긴 힘들다. 둘째로, 폐쇄적 인터랙션 대신 개방적 인터랙션이 가능하다. 월드와이드 웹은 분명하게 열려있는데, 늘 소프트웨어를 사용할 땐 가입을 하거나, 학습을 하는 등 장애물(Huddle)이 존재한다. 이 때문에 과거 소프트웨어가 효율성이 떨어짐에도 답습하는 경우가 많다. 진정한 월드와이드 웹의 산물은 자율성이 높고 개방적 인터랙션이 가능해야만 한다. 우리는 Sharing 한 보드를 접근함에 있어 어떠한 제약도 갖지 않는다. 가입도 필요 없고 학습도 필요 없다. 직관적으로 사용하면 된다. 그제품이 가치 있는지, 그 경험이 초월적이었는지 사용자가 결정하는 것은 그다음 문제다. 셋째로, 현실 오브제의 메타포를 활용한다. 가령, 포스트잇에 우리는 많은 글을 쓰지 않는다. 그럼에도 불구하고 많은 소프트웨어들이 포스트잇 형태의 메모장을 제공한다. 또한, 현실에서는 사진과 포스트잇을 함께 붙일 경우 반드시 사진 위에 포스트잇이 덮는 형태다. 그러나, 많은 소프트웨어들이 사진이 ‘가장 앞으로 오게 배치’ 할 수 있는 기능을 제공한다. 현실의 메타포를 무시하면 인류의 DNA에 내포된 휴리스틱(Heuristic)과 심성 모형(Mental model)을 파괴하여 혼란스러운 인터랙션을 만들어낸다. 비캔버스는 현실 오브제의 메타포를 충실히 적용해야 한다. 마지막으로, 손에 집혀야 한다. 에버노트, 트렐로 등 유익한 소프트웨어가 많지만, 정작 많은 사용자들이 실제 노트를 손에 잡는 경우가 많다. 컴퓨터에 있는 소프트웨어는 손에 쉽게 잡히지 않는 법이다. 이를 막기 위해 사용자들이 업무상 반드시 접속해야 하는 ‘이메일’, ‘구글 닥스’, ‘브라우저’ 등에서 비캔버스로 바로 접근할 수 있어야 한다. 비캔버스를 이용하기 위해 비캔버스에 접속하는 것을 막는 것이 가장 중요하다. 인간은 의도를 가지고 행동하는 존재가 아니다. 이를 중심으로 효과적인 인터랙션을 설계해 나갈 것이다. 이 네 가지 요소에 충실하게 개발한다면, 인류에게 더 높은 차원의 가치를 선보일 수 있을 것이다. 아주 단순한 소프트웨어지만 삶에서 결코 떨어질 수 없는 Daily 소프트웨어가 되어야만 한다. 이를 위해, 끊임없이 인류에 대해 고민하고, 탐구하고, 관찰해야 한다.                   정보구조 (Information Architecture)비캔버스의 정보구조는 굉장히 단순하다. 깊이(Depth)가 낮으면서도 선택권이 다양하지도 않아효과적이다. 이러한 정보구조가 가능한 이유는 Canvas.html이 내적으로 순환(circulation)하는 구조적 특징을 갖기 때문이다. 즉, 실제 페이지는 훨씬 더 많아질 수 있지만 모든 페이지는 canvas.html으로 생성되고 관리된다. 이 수많은 페이지들은 canvas.html 내에서 인덱싱 되고 접근할 수 있다. 이로 인해, 사용자들은 매우 편리하고 쉽게 비캔버스를 이용할 수 있다. 초기 페이지에서 클릭 가능한 버튼이 적은 것도 큰 장점이다. 정보구조가 단순하다는 것을 사용자에게 어필하고 그에 따라 심리적 접근 장벽을 허물 수 있다. promotion 페이지는 사용자가 로그인을 하게 되면 더 이상 보이지 않는다. 이는 조금이라도 더 적은 클릭 이벤트로 서비스 이용의 목적을 달성 (canvas.html 진입)할 수 있게 하기 위함이다. 사용자는 이러한 간결한 정보구조를 손쉽게 탐험할 수 있고, 내비게이션 메뉴에 대한 학습이 필요 없는 손쉬운 웹서비스를 접할 수 있다. 가입자로부터 board를 Sharing 받은 Guest 사용자의 경우 canvas.html 상위에 존재하는 모든 구조가 무시되니 더욱더 쉽고 편리하게 접근할 수 있다.               JOKERPACK 개발 철학 기본적으로 JOKERPACK은 현재의 패러다임이 파괴될 수 있다고 믿는다. 당연시되는 많은 것들에 대해 의심하고 탐구하지 않는다면, 의미 있고 위대한 결과물을 세상에 내놓을 수 없다. ‘개선’이 아닌 ‘혁명’을 위하여 제한된 시간을 투입할 것이다. JOKERPACK이 믿는 것은 초월적이고 실험적인 세상의 창조가 인류의 진화를 가져온다는 것이다. 따라서, 우리의 사업제안에 대해 다수가 동의하거나 인정한다면, 이는 우리가 원하는 길이 아니다. 새로운 세계를 접한다는 것은 낯설어야만 한다. 때로는 무섭고, 불쾌하고 거부하고 싶기도 해야만 한다. 그 세계가 온전히 자리매김하기 전까지 우리의 제품은 절대로 인정받아선 안된다. 우리가 할 일은 그 기간을 단축시키는 것이다. 이를 위해선 빠른 개발이 선행돼야 한다. 빠르게 개발하여 선구적인 사용자들에게 새로운 세계에 대해 접하게 해준다. 그들이 완전히 이러한 낯섦을 수용할 때, 대중들 또한 우리 제품에 사로잡힐 것이다. “더 빠르게 개발하고, 더욱 저렴하게 내놓는다”시장에서 가장 중요한 것은 제품이며 그다음은 가격이다. 가격은 사용자의 진입장벽을 허물고 더욱 광범위 한 시장 확산을 가능하게 만든다. 브랜드와 마케팅은 그다음이다. 과거에는 마케팅이 제품보다, 가격보다 중요했다. 그러나, 이제 소비자들은 현명해졌고 제품이 제공하는 가격에 비해 터무니없는 품질을 제공한다는 것을 소름 끼치도록 빠르게 깨우친다. 사용자들은 무엇을 원하는지, 무엇이 잘못되었는 지를 명확하게 설명할 수 없을지라도, 무언가가 잘못되고 있다는 것은 반드시 알아차린다. 브랜드는 우리가 이러한 세계를 표준화시켰을 때 비로소 생겨난다. 브랜딩은 마케팅 프로세스에서 발생하는 것이 아닌, 제품 개발에 따른 모든 체인들이 유기적으로 결합됐을 때 결과적으로 만들어지는 것이라 믿는다. 인위적으로 설계한 브랜드는 절대로 사용자로부터 인정받는 브랜드가 될 수없다.  이것이 우리가 JOKERPACK에 모인 이유이며, 개발을 위해 한 줄 한 줄 코딩을 이어나가고 있는 이유다. 우리는 내면의 소리에 귀를 기울인다. 우리의 신념이 비록 틀렸을 지라도, 다른 이의 신념에 기대어 제품을 개발하는 것보단 우리 내면의 소리에 의해 실패하는 것이 더욱 행복하다는 것을 믿는다.                   제품 선언문 실패할 것이 두려웠으면 시작도 안 했다. 우리는 우리가 지향하는 세상을 만들기 위해서라면 어떠한 일도 해낼 수 있다. 우리는 현재 당연시되는 Document sharing 프로세스를 뒤엎고 더 나은 인터넷 세상을 만들기 위해 BeeCanvas를 내놓을 것이다. “BeeCanvas는 마땅히 이래야만 한다” - 너무나도 쉽고 직관적이어서 그것이 마치 원래 존재했어야 하는 제품으로 여겨져야만 한다.- 손에 잡히는 곳에 있어서, 매일매일 빠짐없이 BeeCanvas가 이용되어야만 한다. - BeeCanvas를 쓰는 평범한 팀이 위대한 성과를 낼 수 있어야만 한다.- 너무나도 센세이션하고 파격적이어서, 그것이 형편없더라도 주목이 되어야만 한다.- 일관성 있는 디자인으로, BeeCanvas의 디자인적 아이덴티티가 명백해야만 한다.- 사용자들의 사회관계망을 확장시키고, 그 관계를 의미 있게 만들어 내야만 한다. - 어떠한 장벽 없이 빠르게 접근할 수 있어야만 한다. 필요 없는 절차는 모두 제외한다.- 무엇을 넣을 지보다 무엇을 뺄 지에 대해 고민한다. 그를 위한 ‘중심’을 모든 팀원이 인지한다. - 자유도가 높아서 다양한 방법으로 사용 시나리오(Use case)를 확장시킬 수 있어야 한다.- 수단과 방법을 가리지 않고 BeeCanvas를 처음 접하는 사용자들이 ‘와~’하도록 만든다.- 돈을 벌 특별한 방법을 찾기보다, 가치를 제공해줄 특별한 방법에 대해 고민한다.- 적어도 개발자인 우리들이라도 BeeCanvas가 없다면 살 수 없도록, 의존성을 창출한다.- 내면의 소리가 거부하면 즉시, 개발을 멈추고, 그 근거를 명확하게 머릿속으로 그려본다.- 뛰어난 Look&Feel을 가져야만 하며, Look과 Feel에는 명확한 근거가 있어야 한다.                   전체적인 디자인 철학과 Look & Feel 비캔버스의 디자인의 중심은 사용성(Usability)과 미니멀리즘이다. 사물은 표현되지 않았을 때가장 아름답다. 비캔버스는 더욱이 캔버스가 중요하기 때문에 개별 요소들은 절대 강조되어선 안된다. 이러한 이유로, 장식적 이어선 안된다. 그러나, 동시에 너무 단순해도 안된다. 중도를 찾아가는 것이 비캔버스 디자인의 핵심이다. 좋은 디자인은 아름답지만, 위대한 디자인은 사용자를 디자이너의 의도대로 컨트롤할 수 있게 한다. 우리가 믿는 것을 그들이 믿게 만들고, 우리가 보는 것을 그들이 보게 만든다. 착시현상이나, 게슈탈트 법칙 등 많은 디자인 이론들을 총동원하여 사용자의 감각을 무력화하고, 새로운 지각 세계를 만들어나가야만 한다. 이를 위해, 디자인이 지속적으로 개선 작업을 거칠 것이다. 디자이너의 숙명은 이러한 비캔버스와 JOKERPACK의 디자인 철학에 위배되지 않으면서도 아름다운 디자인을 해내는 것이다. 특별하지 않으면서 평범하지도 않은, 장식적이지 않으면서 단순하지도 않은, 낯설게 느껴지지만 익숙하기도 한 예술의 영역을 창조해야만 한다. 따라서, 과도한 벤치마킹은 경계돼야 한다. 디자인 설계에 앞서 아이덴티티를 고려하고, 아이덴티티를 고려함에 앞서 JOKERPACK의 철학적 중심을 고려해야 한다. 디자이너의 개인 취향은 이러한 중심에서 벗어날 경우 철저히 무시된다. 어떠한 것을 믿는지, 내면의 소리가 무엇을 말했는지, 비캔버스가 이러한 디자인을 입고 어떤 모습으로 어떠한 가치를 줄 수 있는지에 대해 고민해야만 한다. 원론적인 고민이 끝난 후에 그를 아름답게 만드는 것이다. 인간에게는 기본적인 휴리스틱(Heuristic)이 있다. 이는 어느 정도의 보편타당함을 지니며, 인간이 기대하는 심성 모형(Mental model) 또한 일정한 패턴을 갖는다. 디자이너는 이러한 패턴을 면밀하게 분석하여 사용자의 인터랙션과 시스템의 인터랙션이 반하지 않도록 디자인을 설계해야 한다. 꾸미는 것은 3류나 하는 일이다. JOKERPACK의 디자이너는 꾸미지 않고 설계해야 한다. 디자인은 실용적인 예술의 일부분이며, 근본적으로 예술 태생이라고 믿는다. 누군가의 실험적 예술이 표준화되고 상업화 가능해질 경우 디자인이 되는 것이라고 본다. 즉, 모든 예술은 하나의 뿌리를 갖고 있기 때문에, 사용자들이 비캔버스의 디자인을 접했을 때 내면에서 어떤 음악같은 것이 떠올라야 한다. 이렇게 사용자들이 떠올리게 될 음악을 생각하며 제품을 디자인 하면 딱딱하고 진부한 GUI에 리듬감과 생명력이 생긴다. 청각적으로 지각되는 Feel의 영역을 시각적으로 옮긴다면 비캔버스가 분명히 강력하고 통합적인 디자인 스펙을 가질 것이라고 확신한다. 근본 없는 디자인을 경계해야 한다. 근본 없는 디자인은 근본 없이 떠나간다. 사람들의 뇌리에도 박히지 않으며, 다시금 찾게 만드는 매력도 없다. 디자인은 브랜드의 일부이며, 개발의 일부다. 이런 게 모듈별로 모두 명세돼있다. 너무 길기 때문에 생략.                   향후 개발 방향 공유 기능을 강화한다. 캔버스의 기본적 개발이 모두 이뤄지면 공유 기능을 강화하여, 어디서든 쉽고 빠르게 공유될 수 있다는 것을 사용자가 느낄 수 있게 만들어야 한다. 이에 앞서, 아직 해결되지 못한 Canvas 내부의 개발 이슈들을 trouble shooting 하는 것이 우선이기 때문에, 지속적으로 빠르고 신중하게 개발을 이뤄나가야 할 것이다. 또한, 현재 js파일 하나에 과도하게 코드가 몰려있어 유지보수가 힘들다. 모두 분할하고 리팩토링하여 유지보수 생산성을 높이고, 코드의 유닛 테스트도 수월하게 만들어야만 할 것이다. Microsoft Azure를 이용해 서버 운영비를 추산하고, 이에 따라 프리미엄 유저의 가격정책도 세워나가야 한다. 그를 위해 Azure에 대한 기본적인 지식을 습득하여 서버 운영에 있어 어떠한 오류도 발생하지 않도록 해야 한다. 커스텀 템플릿은 공유 기능이 완벽해질 때까지 JOKERPACK 내부적으로 계속 만들어서 사용자에게 유포한다. 이는 어떠한 템플릿이 인기가 많은 지에 대한 데이터를 모을 수 있게 할 것이다. 축적된 데이터를 분석하여 후에 개발할 커스텀 템플릿 에디터의 개발방향도 세울 수 있으니 일석이조다. 힘든 개발이고, 앞으로 더욱 힘들어지겠지만 그만큼 가치 있는 웹서비스가 될 것이다. 결과를 돌아보면 우리가 BeeCanvas 개발에 참여했다는 것이 자랑스럽게 느껴질 날이 반드시 올 것이다. 그를 위해 넷이 한마음으로 뭉쳐서 지옥을 다녀와야 한다.
조회수 1102

렌딧이 개인신용대출에 집중하는 3가지 이유

외국에서 온 손님을 만나 한국의 대출 시장에 대해 설명하면, 어느 국가에서 온 손님이든 보이는 반응이 하나 있다. 바로 국내 개인신용대출 시장의 규모에 대한 놀라움이다. 금융감독원에 따르면, 2015년 기준으로 국내 개인신용대출의 잔액 규모는 258조원. 이는 약 900조원 규모인 미국 시장의 28%, 즉 4분의 1을 초과하는 규모다. 한국의 GDP(Gross Domestic Product: 국내총생산)가 미국의 13.17분의 1에 불과하다는 점을 생각해 보면 어마어마한 규모다. 렌딧이 국내 P2P금융기업 중 유일하게 오롯이 개인신용대출에만 집중하는 첫번째 이유는 바로 이 점에서 찾아볼 수 있다. ‘시장 기회’ 관점에서 볼 때, 이처럼 거대한 내수 시장 규모를 가진 사업 분야를 찾기는 쉽지 않다. 게다가 한국은 다른 어느 국가에 비교해도 손색이 없는 안정적인 신용 정보 인프라를 갖춘 국가다. 물론 경제 규모를 고려할 때 한국의 개인신용 부채 규모가 미국과 대비해 과도한 것이 아니냐는 질문을 할 수도 있다. 하지만 이는 단순히 양적 비교로 판단할 수 있는 부분이 아니다. 미국과 한국의 개인들이 보유한 부채의 종류와 질이 전혀 다르기 때문에 부채의 질적 비교가 반드시 동반되어야 한다. WBG(World Bank Group: 세계은행그룹)가 각국의 신용평가와 관련해 전국민 취급 비율과 정보의 깊이, 신용등급별 부실률을 분석한 보고서에 따르면, 한국과 미국의 신용평가 정보 퀄리티와 등급별 부실률 관리 체계는 동급 수준이다. 한국은 1997년 외환위기와 2003년 카드대란을 겪은 경험이 있다. 이로 인해 국민의 신용정보 분석을 위한 정부 차원의 노력이 있었고, 이는 신용정보 축적과 활용 면에서 전세계 최고 수준의 고급 인프라가 구축되는 결과로 이어졌다. 렌딧이 개인신용대출에만 집중하는 두번째 이유는 ‘규모의 경제' 관점에서 설명할 수 있다. 전세계 P2P금융 산업을 분석하고 있는 HJCO 캐피탈 파트너스(HJCO Capital Partners)의 2014년 보고서에 따르면, 전세계 P2P금융 산업을 선도하고 있는 미국 시장의 경우 개인, 소상공인, 부동산의 P2P금융 대출 비중은 60:35:5로 구성된다. 미국의 P2P금융 시장을 대출 자산별로 분석할 때 이처럼 개인신용대출이 60%의 시장 점유율을 차지하고 있는 주요한 이유는 지속 가능한 확장성에서 찾아볼 수 있다. 개인신용대출의 경우 대출 심사를 위해 오프라인에서 직접 대출자를 만나 상점이나 건물 입지를 살펴 보지 않아도 된다. 또한 국가의 공신력 있는 신용정보 인프라를 활용해 수백가지 종류의 신용 정보를 일관성 있게 축적할 수 있다. 이를 통해 지속적으로 빅데이터 기반의 심사평가모델을 개선해 나갈 수 있다. 개인신용대출이 다른 대출 자산에 대비해 압도적으로 확장 가능성이 높은 이유다. P2P금융 플랫폼 렌딧의 고객 경험은 대출과 투자 전과정이 온라인 상에서 비대면으로 진행된다. 다른 종류의 대출과 다르게 오프라인 영업 활동이 전혀 없이 100% 비대면 영업 방식으로 지속적인 확장이 가능하다. 또한 기술적인 혁신을 통해 온라인 서비스 만으로 대출자와 투자자를 연결하기 때문에 획기적으로 비용을 절감할 수 있다.출처 : 모건 스탠리, 미국 내 P2P금융의 개인신용대출 시장 침투율세번째로 ‘사회적 파급력’ 관점에서 보았을 때, P2P금융은 국가의 가계부채 개선에 중요한 한 축이 될 수 있다. 고금리를 내오던 대출자에게 기술 혁신을 통해 개인화 된 적정금리를 제공함으로써, 이자 비용을 획기적으로 감소시켜 줄 수 있기 때문이다. 모건 스탠리(Morgan Stanley)가 발표한 보고서에 따르면, 2017년에 P2P금융이 미국 전체 개인신용대출 시장에서 차지하는 비중은 4.5%, 무려 40조원에 이른다. 테크크런치는 2016년 8월 ‘How startups are trying to fix consumer debt? (스타트업이 가계부채를 해결해 내고 있는 방법들)’ 이라는 기사에서 렌딩클럽(Lending Club), 소파이(SoFi) 등을 소개하고 있다. 올 7월말 기준으로 약 4,000여 명의 대출 고객이 렌딧을 통해 절약한 이자 비용은 총 44억 8천만원에 이르는 것으로 집계된다. 2015년 5월 렌딧이 대출 집행을 시작한 이후 26개월 동안 만들어진 결과다. 이 중 25억9천만원의 이자는 카드론, 캐피탈, 저축은행, 대부업 등 기존에 보유하고 있던 대출을 렌딧 P2P대출로 대환한 고객들이 절약한 이자다. 이제까지 이 글에 소개한 여러 리서치 결과들을 기반으로 생각해 보자. 매우 보수적으로 가정해서 국내 P2P금융의 개인신용대출 시장 침투율이 미국 시장의 4분의 1이 되지 않을 거라는 가정을 하더라도, 2021년에 예상되는 국내 P2P금융의 개인신용대출 취급량은 2조8천억원을 넘게 된다. 올 7월까지 렌딧 대출 고객이 절약한 이자 비용을 토대로 계산해 보면, 2021년에는 약 25만명의 대출 고객들이 1년에 약 2천억원의 이자 비용을 절약할 수 있다는 결과가 나온다. 이처럼 한국의 개인신용대출 시장만 해도 렌딧과 같은 기술 기반의 P2P금융이 가져올 수 있는 혁신의 규모와 파급력은 어마어마하다. 이미 많은 금융 선진국에서 검증된 바와 같이 P2P금융이 진정한 금융 시장의 메기로 자리 잡아, 1400조원 가계부채의 질적 개선에 획기적인 솔루션으로 부상할 수 있기를 기대한다. 그러기 위해서는 업의 본질에 충실한 규제 환경의 구축이 중요한 것은 말할 나위가 없다.
조회수 1686

이메일마케팅 사례 분석 #1 MR PORTER

받은편지함에 쌓여있는 수많은 마케팅 이메일들 중에서, 양적으로나 질적으로나 단연 눈에 띄는 건 MR PORTER*입니다.* MR PORTER는 2011년 설립된 영국의 남성 온라인 편집숍으로 300개 이상의 브랜드를 취급합니다. UV(Unique Visitors)는 월 150만, PV(Page Views)는 월 2,500만에 이릅니다. 최근엔 국내 온라인 편집숍인 29CM에서 MR PORTER와 함께 캠페인을 진행하기도 했습니다.* MR PORTER는 원래 NET-A-PORTER 그룹에 속해있었고, 지금은 NET-A-PORTER와 또다른 대형 온라인 커머스인 YOOX가 합병한 YNAP 그룹에 속해있습니다.MR PORTER는 하루도 빠짐없이 저에게 이메일을 보냅니다. 정말이에요. 매일매일 이메일을 보냅니다. (너무 자주 보내면 고객들이 싫어하지 않을까 고민된다면 MR PORTER를 보고 용기를 얻기를…)하루에 한 통…이거 실환가요매일매일 이메일을 보내는구나, 참 많이도 보내는구나 하고 넘어갈 수 있겠지만 — 게다가 다른 이메일들과 섞여있다면 별다른 생각을 하기 어렵겠지만 — MR PORTER의 이메일만 따로 추려놓고 보면 어떤 패턴을 발견할 수 있습니다.당장 눈에 들어오는 건, THE JOURNAL과 Sale2016년 4월 20일 처음 가입했을 때부터 지금까지, 제가 받은 MR PORTER의 이메일을 분석해봤습니다.MR PORTER와 같은 그룹에 속한 NET-A-PORTER는 매출의 32%(월 15억 원 수준)가 이메일마케팅에서 발생한다고 하니, MR PORTER의 사례에서 성공적인 커머스 이메일마케팅의 단서를 얻을 수 있으리라 기대합니다.WELCOME #1언제: 회원가입 직후제목: Mr Im, welcome to MR PORTER’s Style Bulletins회원가입 직후 받게되는 이메일입니다. 처음 가입한 고객이 MR PORTER에서 상품을 둘러보는 데 어려움을 겪지 않도록, 기본적인 인사말과 함께 상품 카테고리를 정리해서 보여줍니다. 그리고 MR PORTER의 인스타그램 계정도 소개하고 있습니다. 처음인만큼 부담없고 가벼운 내용으로 구성되어있습니다.WELCOME #2언제: 회원가입 D+4일제목: Who are your favourite designers?MR PORTER는 여러 디자이너의 상품을 취급하고, 고객이 자신이 좋아하는 디자이너를 구독(follow)할 수 있는 기능이 있습니다. 다른 곳에서는 찾기 어려운, MR PORTER만의 독특한 기능인데요, 대부분의 고객들이 이런 기능이 있는지도 모르겠죠.회원가입한지 얼마 되지 않았을 때, 이 때가 뭔가를 교육시키기에 가장 좋은 때입니다. MR PORTER는 회원가입 4일 후에 디자이너를 구독하는 기능을 소개하는 이메일을 보냅니다.이렇게 회원가입 직후 연달아 발송하는 이메일을 웰컴 시리즈(welcome series)라고 부릅니다. 대부분의 웹사이트는 회원가입 직후, 회원가입을 환영한다는 이메일을 한 번 보내고 말 뿐입니다. 웹사이트의 기본적인 사용방법이나 참여방법을 단계적으로 소개한다면, 가입한지 얼마 되지 않아 냉담해지곤 하는 고객들의 인게이지먼트 향상을 기대할 수 있습니다.PROMOTIONS언제: 주 1회(일요일-화요일)제목: How To Shop The MR PORTER Sale할인 프로모션을 알리는 이메일입니다. 프로모션에 대한 간략한 내용으로 구성됩니다.주기적으로 발송되는 할인 프로모션 이메일에서도, 가끔식 새로운 시도를 하기도 합니다. 예를 들어, 위 사례처럼 카테고리별로 할인 중인 상품을 둘러볼 수 있는 링크를 제공하기도 하고, 사이즈별로 둘러볼 수 있는 링크를 제공하기도 합니다. 별다른 내용없이 할인 프로모션 안내만으로 구성하기도 합니다.WHAT’S NEW언제: 주 2회(월요일-금요일)제목: Mr Im: The Essential Style UpdateMR PORTER는 다양한 브랜드를 취급하는만큼 상품 업데이트가 매우 자주, 대량으로 발생합니다. 따라서 고객들에게 업데이트 된 상품을 제대로 알리는 것이 매우 중요합니다.가장 먼저 눈에 들어오는 건 큼직한 숫자(위 사례에서는 198)입니다. 업데이트 된 상품의 숫자입니다. 고객의 호기심을 불러일으키고, 취급하는 브랜드가 많다는 MR PORTER의 장점을 한번 더 강조합니다.상품 업데이트를 알리는 메인 이미지 아래로 이어지는 EDITOR’S PICK에서는, 구매를 유도하기 위해 업데이트 된 상품 중 관심을 끌만한 것, 또는 할인 중인 상품을 추가로 소개합니다.THE JOURNAL언제: 주 1회(금요일)제목: THE JOURNAL: Why Biarritz Is Best and Exclusive Nike X John Elliott High-Tops DropMR PORTER는 “THE JOURNAL”이라는 이름의 블로그를 운영하고 있습니다. 8–9개의 글을 모아 매주 한 번 업데이트하고 이메일로도 발행합니다.THE JOURNAL의 콘텐츠는, 직접적이진 않지만 MR PORTER가 취급하는 상품과 브랜드를 소개하고 구매를 유도합니다. 예를 들어, 위 사례에서 맨 위에 노출된 On The Beach In Biarritz라는 글에서는, 비아리츠(Biarritz)라는 프랑스 남서부의 작은 휴양지를 소개하면서, 자연스럽게 Orlebar Brown라는 브랜드를 소개하고 있습니다.MR PORTER의 다른 이메일들이 상품과 브랜드를 직접적으로 노출하고 구매를 유도하는 것과는 다른 유형입니다. 거의 매일 발송되는 MR PORTER의 마케팅 이메일들 사이에서, 받는 사람의 피로감을 어느정도 줄여주는 역할을 한다고 볼 수 있습니다.CURATED언제: 주 1회(토요일 또는 일요일)제목: The MR PORTER Guide To Hot Weather Dressing콘텐츠의 홍수 속에서 더 좋은 콘텐츠를 더 잘 노출시키기 위해 콘텐츠를 큐레이션하는 것처럼, MR PORTER는 수많은 상품 속에서 더 좋은 상품을 더 잘 노출시키기 위해 상품을 큐레이션한 마케팅 이메일을 발송합니다.고객이 상품을 탐색하는 방식에는 여러가지가 있습니다. 세일 중인 상품을 둘러보면서 마음에 드는 것을 고를 수도 있고, ‘향수'라는 카테고리에 들어가 여러 브랜드의 향수들을 둘러보다가 마음에 드는 것을 고를 수도 있습니다. 두 번째 경우는, 정확히는 그냥 향수를 찾는 것이 아니라 어떤 목적이나 취향에 따라 찾는 것일텐데, 예를 들면 ‘여름에 잘 어울리는 향수' 같은 것입니다.상품을 큐레이션한 마케팅 이메일은 고객의 목적이나 취향에 따라 상품을 쉽게 탐색 — 결국은 구매를 — 할 수 있게 도와줍니다.정리하면, MR PORTER가 발송하는 마케팅 이메일은 이렇습니다.회원가입 시점을 기준으로,WELCOME #1(회원가입 직후)WELCOME #2(회원가입 D+4일)그리고,PROMOTIONS(주 1회, 일요일-화요일)WHAT’S NEW(주 2회, 월요일-금요일)THE JOURNAL(주 1회, 금요일)CURATED(주 1회, 토요일 또는 일요일)2016년 4월 20일부터 2017년 7월 16일까지, 453일동안 303개의 마케팅 이메일을 받았습니다. 1.5일 간격으로 이메일을 받은 셈입니다.MR PORTER 수준의 이메일마케팅을 하려면 정말 많은 노력, 고민, 사람, 시간이 필요합니다. MR PORTER에는 이메일마케팅만을 위한 별도의 팀이 존재할 것이고, 이메일마케팅 전략을 최적화하기 위해 데이터를 분석하는 팀도 존재할 것입니다. 이메일마케팅만을 위해 이런 팀들을 갖추는 건 현실적으로 어렵습니다.그럼에도 불구하고 MR PORTER 사례에서 배울 수 있는 것은, 고객의 인게이지먼트를 높이고 구매를 유도하기 위해, 단순한 대량발송 이상의 의미 — 고객경험을 고려한 발송 전략— 를 이메일마케팅에서 찾을 수 있다는 것입니다.무엇보다 그들도 처음부터 충분한 자원을 갖고 이메일마케팅을 시작하진 않았을 것입니다. 처음에는 작게 시작했을 것이고, 실험과 검증을 반복하면서 개선해나가면서 자원을 확보해나갔을 것입니다. 그리고 지금도 실험과 검증을 반복하고 있을 것입니다.#슬로워크 #스티비 #마케팅 #마케터 #인사이트 #꿀팁 #조언
조회수 2524

적절한 이벤트 데이터(Event Data) 추출하기

이번 칼럼에서는 프로세스 마이닝의 Input 요소인 이벤트 데이터에 대해 살펴보겠습니다. 이벤트 로그를 어떻게 얻고 프로세스 마이닝 분석이 가능하도록 어떻게 전처리를 할까요? 이벤트 로그는 SAP와 같은 ERP 시스템, 미들웨어, 금융 정보시스템, 사물인터넷 데이터 등 다양한 정보 소스에서 얻을 수 있습니다. 정보 소스는 어디에나 있으며 대부분 수많은 DB 시스템으로 구성되어 있기 때문에 문제는 어떤 데이터를 추출하고 어떻게 프로세스 마이닝에서 사용할 수 있는 이벤트 로그로 변환하느냐는 방법입니다. 아래 그림은 프로세스 마이닝에 필요한 데이터를 설명하는 개념 모델입니다. 각각의 케이스는 이벤트로 이루어져 있고, 이벤트는 여러 속성을 가질 수 있습니다. 원본 소스로부터 이와 같은 형태의 데이터를 추출하고 변환하는 방법이 필요합니다.[그림 1] 이벤트 로그 개념예를 들어 SAP에서 데이터를 추출하는 경우를 보겠습니다. SAP에는 수천 개의 테이블이 있고 여기에는 많은 이벤트 관련 정보가 있습니다. 정확한 데이터를 추출하려면 분석하고자 하는 프로세스가 무엇인지 정의하고 어디가 시작 위치인지 어디가 종료 위치인지 찾아야 합니다. 이러한 데이터 식별, 위치 지정이 제대로 되어야 적절한 이벤트 데이터 수집과 범위 선정이 가능합니다. 병원 데이터도 환자와 관련된 정보가 담긴 1,000개 이상의 테이블을 볼 수 있습니다. 병원 데이터를 분석하려면 마찬가지로 분석 프로세스를 정의하고 분석 범위와 이벤트 데이터 속성에 대해 정의해야 합니다. 이는 중요하지만 어려운 일입니다. 프로세스 마이닝을 위해 필요한 데이터는 여러 정보 시스템에 산재되어 있으며 수집할 수 있는 데이터의 종류와 양도 어마어마합니다.  근본적인 데이터 모델 구조를 이해하고 적합한 이벤트 데이터의 종류와 범위를 산정해야 하며 수집한 데이터를 하나의 테이블로 정리할 수 있어야 프로세스 마이닝을 위한 적절한 이벤트 로그 수집과 준비가 되는 것입니다.티켓 예약 데이터를 통해 데이터 추출과 이벤트 매핑을 살펴보겠습니다. 다음 그림에는 티켓, 예약, 공연, 지불, 고객과 같이 다양한 엔티티(Entity)가 있으며 이러한 엔티티는 관련된 이벤트 또는 액티비티를 가지고 있습니다.[그림 2] 티켓 예약 데이터베이스 구조데이터 분석을 위해 우리가 가장 먼저 결정해야 할 것은 프로세스 인스턴스, 즉 케이스가 무엇인가입니다. 우리가 티켓의 수명주기를 설명하는 모델을 알고 싶다면 티켓을 케이스로 설정하고 이에 해당하는 액티비티를 찾아야 합니다. 예약, 공연, 지불 등의 액티비티가 필요하며 여러 티켓이 동일한 예약 기록이나 지불 이벤트를 가지고 있을 수 있습니다. 따라서 여러 개의 다른 프로세스 인스턴스가 하나의 예약에 연결되어 있을 수 있습니다. 또한, 프로세스 모델이 예약에 대해 설명한다고 하면 다른 액티비티를 찾아야 합니다. 이러한 과정이 명확하거나 쉽지 않기 때문에 어려움이 있습니다. 하나의 예약에 5장의 티켓, 2번의 지불과 같이 여러 이벤트가 연결될 수 있습니다. 예약 취소와 같은 이벤트는 티켓, 공연, 예약 등 여러 엔티티에 영향을 미치게 됩니다. 따라서 엔티티 간의 단순 일대일 대응은 없으며 원하는 이벤트 로그를 얻기 위해서는 데이터 전처리가 필요합니다.케이스 선정과 매핑 문제 외에도 정확한 데이터 추출을 위해서는 고려해야 할 다양한 문제가 있습니다. 케이스나 이벤트가 기록되지 않는 데이터 누락이 발생할 수 있습니다. 실제 수행자가 아닌 다른 수행자가 기록되는 것과 같이 데이터가 정확하지 않을 수 있습니다. 원하는 데이터 레벨이 아닐 수도 있습니다. 예를 들어 개별 작업자에 대해 확인하고 싶은데 부서 레벨이 기록되어 있을 수 있습니다. 또 다른 문제는 관련성이 없는 데이터가 많아 분석 항목을 찾기 어려울 수 있습니다.지금까지 프로세스 마이닝의 이벤트 데이터 관련 문제를 검토하였습니다. 이러한 문제점을 염두에 두고 데이터를 추출해야 프로세스 마이닝 분석을 제대로 수행할 수 있습니다. 프로세스 마이닝 분석을 위한 로그 생성 가이드라인 (https://blog.naver.com/prodiscovery/221160671117) 칼럼을 참조하시면 데이터 추출 문제 해결에 대해 도움을 얻을 수 있습니다.#퍼즐데이터 #개발팀 #개발자 #개발후기 #인사이트
조회수 960

VCNC 개발팀 워크숍을 소개합니다. - VCNC Engineering Blog

VCNC 에서는 최근에 모빌리티 서비스 이동의 기본 타다를 출시했습니다. 신규 서비스를 준비하면서 팀도 새롭게 구성되고 새로운 멤버들이 팀에 합류했습니다. 이러한 변화 속에서도 좋은 개발 문화를 유지하기 위해서 VCNC 개발팀은 큰 노력을 하고 있습니다. 그중에서도 모두가 자랑하고 싶어 하는 VCNC 개발팀 워크숍을 소개합니다.VCNC 개발팀 워크숍최근 VCNC 개발팀 워크숍은 2018년 12월 19일 수요일에 진행되었습니다. 2016년 12월 처음 시작해서 최근까지 총 6번의 워크숍이 열렸습니다. VCNC 가 SOCAR에 인수되어 타다 서비스를 바쁘게 준비했던 2018년 8월을 제외하고 1년에 3번씩(4, 8, 12월) 꾸준히 개최되고 있습니다.VCNC 개발팀 워크숍은 개발팀 멤버들이 업무 외적으로 가지고 있던 각자의 관심사들을 공유하고 개발자들이 할 수 있는 고민을 같이 나눠보기 위한 욕구에 의해 처음 제안되었습니다. 포맷을 어떻게 할지 논의한 끝에 아래와 같은 포맷으로 워크숍을 진행하기로 했고 최근까지 이 포맷으로 워크숍을 진행하고 있습니다.오전 시간에는 모든 멤버가 각자의 관심사에 대해 5~10분 정도로 가벼운 라이트닝 톡을 하자.오후 시간에는 토의 주제를 정해서 몇 가지 깊은 토의를 나눠보자.회사의 업무에서 완전히 벗어나서 집중하기 위해 프로젝터 사용이 가능한 외부 카페를 대관하자.고기 회식을 하자!2018년 12월 제 6회 VCNC 개발팀 워크숍 단체 사진라이트닝 톡라이트닝 톡은 위에 언급했던 대로 모든 멤버가 5~10분 정도의 시간 동안 각자의 관심사에 대해서 다른 멤버들에게 소개하는 시간입니다. 발표 주제는 처음에는 개발로 한정 지었다가 더 폭넓게 관심사를 공유하기 위해 자유 주제로 변경했습니다. 다들 워크숍 전날까지는 어떤 발표를 해야 할지 걱정하며 투덜대지만, 막상 워크숍 당일이 되면 굉장히 흥미로운 주제들을 가지고 참여를 합니다. 라이트닝 톡이라는 의미에 맞게 1회 워크숍에서는 타이머를 켜고 시간 체크를 하면서 간단하게 발표를 했습니다. 그런데 기대했던 것보다 훨씬 좋은 발표들이 나오면서 발표 시간을 유동적으로 해서 발표의 퀄리티를 더 높이기로 했는데, 바로 다음 워크숍에 1시간 10분짜리 장대한 강의가 등장하는 바람에 절제의 중요성을 다시금 느끼면서 다시 타이머를 켜기로 했습니다…2017년 12월 워크숍에서는 PB팀이 상품 협찬을 해줘서 (PB팀 감사합니다!) 최고의 발표를 선정해 밀크 미니 인형을 지급했습니다. 영예의 수상자는 욕망의 흐름 이라는 발표를 정말 욕망의 흐름대로 발표한 Max로 선정되었습니다.<iframe src="https://docs.google.com/presentation/d/e/2PACX-1vQChBaARqlj8XfZx75MtkcejwupwBPt9tgD47sL99L1mHceYnPR2yDJnVAKFq8nFHXG9Pc9QbWBA5Eb/embed?start=false&loop=false&delayms=10000" frameborder="0" allowfullscreen="true" mozallowfullscreen="true" webkitallowfullscreen="true"> 지금까지 워크숍을 6회나 진행했기 때문에 상당한 양의 라이트닝 톡 발표자료들이 모였습니다. 그중에서 몇 가지 발표의 슬라이드를 공유합니다.Glitches of Mario by PrinceOrigami - 종이접기와 수학 by PrinceLattice-based Cryptography by BradTADA-Android 회고 by David기반 작업들을 무엇을 했는가? + RIB 간단 설명Contract by DoogieAd Fraud by HughBB84 - 양자 역학을 이용한 절대적으로 안전한 키 분배 프로토콜 by James불완전성 정리 by James삼단논법 by JamesGAN by MaxReinforcement Learning based on AlphaGo by NelsonSteganography by Nelson재귀의 폭풍 by TedUBER: COSTS & REVENUES by TerryProbabilistic Filter by Youngboom다음 워크숍부터는 발표를 녹화해서 슬라이드와 함께 공유해보도록 하겠습니다.최고의 발표로 선정된 Max종이접기로 각의 3등분선 구하기 실습필자의 발표를 경청하는 멤버들디스크의 위험성을 온몸으로 표현 중 심층 토의VCNC 개발팀 워크숍에서는 회사의 주요 결정사항 혹은 공통으로 관심이 있는 이슈들을 선정해서 모두의 의견을 듣고 공감대를 형성하거나 액션 플랜을 세우는 토의를 진행합니다. 토의의 주제는 발전적이고 열린 커뮤니케이션을 지향하는 멤버들의 특성상 회사 생활 과정에서 자연스럽게 형성됩니다. VCNC 에서는 평소에도 서로의 의견을 공유하는 자리를 자주 가집니다. 그 예로는 매 달 진행하는 매니저와의 1:1 개인 리뷰 제도, 각 팀별 주간 회고 회의, 제품 피쳐 개발 단위로 진행하는 회고 회의 등이 있습니다. 이러한 의견 공유 과정에서 멤버 각자가 생각하는 불만, 문제점, 희망 사항들이 자연스럽게 워크숍의 토의 주제로 발전됩니다. 토의는 특별한 절차 없이 모든 구성원이 자연스럽게 끼어들면서 자신의 의견을 펼치며 진행됩니다. 모두의 의견을 듣는 것이 중요하기 때문에 특별한 주제가 아니라면 적은 인원으로 조를 구성해서 토의한 뒤 의견을 취합합니다. 정리한 내용은 제품팀 및 HR 담당자에게 전달되며 그 후 우리가 해볼 수 있는 시도들을 하거나 새로운 회사의 정책들이 생겨나기도 합니다.둘러앉아서 토의에 집중하는 멤버들 (편안한 자세 가능)아래의 항목들은 실제로 진행했던 토의의 주제들입니다.순수 개발 관련점차 높아지는 개발 복잡성을 어떻게 해결할까?서버-클라 간 프로토콜 문서화 문제제품 개발 프로세스 관련제품 개발 프로세스를 스프린트에서 칸반으로 변경하고 지금까지 겪었던 느낀 점, 문제점 및 해결 방안은?이슈 관리가 잘 안 되는데 원인 및 해결책은?QA가 필요한가? 제품 품질을 높이기 위해선 무엇을 해야 하는가?회사의 문화, 복지 등 전반회사에서 팀 간 커뮤니케이션을 원활하게 하기 위해 Manager 제도가 도입되는데 Manager 는 어떠한 역할을 맡아야 하는가?Manager 제도의 후기 공유 및 개선 방향.어떠한 모습의 회사를 원하는가?필요한 사내 문화 및 복지는 무엇이 있을까?개인의 발전 관련언제 동기부여가 되는가? 저하되게 만드는 요인은?어떠한 사람과 같이 일을 하고 싶은가?어떠한 모니터링 및 피드백을 받고 싶은가?VCNC 개발팀 워크숍의 토의 결과로 회사의 많은 부분이 발전하고 있습니다. QA 팀이 생겼고 해외 및 국내 콘퍼런스 지원 관련 복지 정책이 새로 생겼습니다. 제품 개발 프로세스는 새로운 시도를 거치면서 지속해서 발전해 나가고 있습니다.그 외우걱우걱워크숍에는 풍족한 먹을거리가 함께합니다. 카페를 대관하는 경우에는 무제한으로 음료가 제공되며 점심시간에는 배달을 시켜서 먹으면서 함께 이야기를 나눕니다. 마무리로 저녁에는 고기를 먹고 싶은 만큼 맘껏 먹으면서 역시 이야기꽃을 피웁니다.미니게임워크숍의 포맷이 라이트닝 톡 + 심층 토의 조합으로만 진행되어 느껴지는 지루함을 탈피하기 위해 2018년 4월 워크숍에서는 2인 1조로 팀을 구성해서 미니게임을 진행했습니다. 개발자 감성에 걸맞게 스크래치 게임인 Lightbot 2로 1시간 정도 플레이를 했습니다. 승패가 있는 대결은 아니었지만 다들 피로감을 호소할 정도로 엄청나게 집중하면서 시간을 보냈습니다.워크숍의 핵심은 고기를 굽는 것점심에는 피자를 시켜 먹으며 자유로운 대화를 나눕니다.집중해서 Lightbot 을 플레이하는 플레이어휴식 중에도 즐거운 대화는 계속됩니다. 마치며VCNC 개발팀 워크숍은 앞으로도 계속됩니다. 앞으로도 좋은 회사의 문화를 소개하는 기회를 자주 만들도록 노력하겠습니다. 저희와 함께 VCNC 를 발전시킬 좋은 분들을 기다리고 있으니 많은 지원 바랍니다!

기업문화 엿볼 때, 더팀스

로그인

/