스토리 홈

인터뷰

피드

뉴스

조회수 957

스타트업을 시작하며...6

Phase 26. 하늘에서 인재를 내려주시다.part I거의 한 달 전에 "최고의 partner"를 만나다라는 글을 남겼는데.. 사실 그 친구와는 계속하지 못하게 되었다. 나는 box 포장까지 할 수 있는 commitment를 원했으나, 그 친구는 이미 본인의 회사가 있었고 디자이너로써 본인의 career를 계속해서 만들어가고 싶은 욕구가 강했다. 어쩔 수 없이.. 서로의 길을 떠나게 된다.그런데.. 그 와중에 site를 만들기 위해 찾아간 Mint라는 개발사 대표님이 두 번째 미팅에서  함께하고 싶다는 의사를 표명해 주셨다. Paffem 지분 얼마와 금액 1,000만 원 (하지만 당장 지급할 필요는 없는  채권으로써)으로 계약하여 Paffem을 우리의 서비스로써 함께 만들어 가자는 제안! 이렇게 고마울 수가.. 내가 만약 처음 startup을 하는 상황이었다면, 지분으로 인해 고민할 수 도 있었겠으나, 이렇게 훌륭한 팀에게 지분을 공유하여 ownership을 공유할 수 있다는 것이 지금 상황에서는 오히려 감사할 일이었다. 이렇게 개발에 대한 부담에서 내려설 수 있었다.part IIGroupon에서 함께 일했던 super performing 디자이너 분을 당시 회사 사정상 어쩔 수 없이 보내게 되면서.. 좋은 회사에 소개해 주고 싶어, 영국계 화장품 회사에 소개해주었었다. 그런데.. 위의 개발사 대표님과 술자리 하는 중인데.. 마침 문자가 왔다. 3년간 다니고 이제 그만두는데... 감사했다라는 인사를 남기고 싶었다고.. OMG! 나에게 꼭꼭 필요한 art director가 이렇게 나에게 먼저 나타나 주었다. 게다가 기존에 다니던 회사를 떠난 시점에서.. ㅜㅜ 정말 하늘이 내려주신 행운이다. 금요일 밤.. 문자를 받고는 잠을 못 이루다가.. 토요일 아침에 보자고 다시 문자를 보내고서.. 준비 중인 서비스에 대해서 모두 설명해 주었다. 현재 준비하는 서비스와 앞으로 만들고 싶은 서비스까지.. 꼭  함께해주길 바란다고!! 일주일만 고민할 시간을 달라고 했던 그 친구는 일주일 후 나에게 "만나서 이야기하고 싶다"는 메시지를 보냈고.. 정말 고맙게도 Paffem의 2호 멤버로 join 하게 되었다... 파펨이 이 세상에서 한명의 staff을 찾는다면.. 그 친구보다 더 필요한 사람이 있었을까? 정말 감사할 일이다.Phase 27. site prototyping사실 사이트는 결제가 이루어지기만 하면 되는 공간이었기 때문에 크게 신경 쓰지 않았지만, 결제와 survey가 그렇게 쉬운 것만도 아니었다. 나는 그냥 진짜 "그냥" wordpress로 만들면 되지  않을까?라는 막연한 생각만 가지고 있었는데... 역시..아무튼 만들고 싶었던 사이트들을 3일간 작업을 해서 prototype을 만들게 되었다.첫 번째는 powerpoint 1장에 만들고 싶은 주요 기능을 정리하는 형태로 하여 뼈대를 만들었고, 그 뼈대를 바탕으로 A4 지와 연필을 들고 이틀간을 고민하였다. 그렇게 해서 그림을 다 그리게 되었을 때, Daum에서 만든 prototyping tool인 oven을 통해 서비스를 구현하여 보았는데.. 썩 그럴듯해 보이더이다.만든 것들을 on-line에서 만들어 주변의 지인들에게 계속해서 feedback을 받는 것을 진행 중이다.이때는 홀로 카페에 가서 일하는 경우가 많았다. 이 곳은 마포의 커피 명가, 프릳츠 커피!Phase 28. 법인등기 / 사업자등록 / 사무실세 번째로 만들어보는 법인, 아주 smooth 하게 넘어갈 것을 기대하고 있었으나.. 역시나 두 번 빠꾸를 당함.. ㅜㅜ 첫 번째는 발기인이 조사보고서를 작성하는 사람이 될 수 없어서.. 두 번째는 이사가 3명 이사인 회사의 경우 이사회에서 대표이사를 선임하는 절차를 기록한 의사록이 필요하다는 것.. 그래도 두 가지 마무리하고서 법인 등기는 일주일 내에 마무리됨.법인등기를 마치고.. 사업자 등록을 내러 마포세무서에 갔는데, 그렇게 많은 분들 중에 내 담당자 분이.. 우리 주주 중 한 분인 Mint 대표님의 성함을 딱 알아보시고는!! 저희 남편도 이 회사에 다녔었어요.. ㅎㅎ What a small world!사무실은.. 친구가 운영하는 홍대 club을 낮에 사용하는 것으로 결정!! 사업자 등록 시에는 명확한 주소지가 필요하여.. 르호봇에서 월 15만 원에 주소지 사용하는 것으로 결제를 하고, 실제 사무실만 이곳으로 사용하는데.. 일하기에 더할 나위 없이 좋은 공간!! 친구에게는 월 전기료 정도만 내는 것으로 ㅎㅎㅎ 단, 지하라서  광합성하러 종종 지상으로 올라가야 한다는 점.. ㅎㅎPhase 29. 마케팅 플랜내가 지금 생각하고 있는 마케팅 플랜은.. 모두 돈을 쓰지 않고!! 해야 한다는 것이 전제 조건이다. 돈을 쓰면서 하는 것은 누구든지 할 수 있는 일이고.. (물론 효율이 좋게 나오는 것은 아무나 할 수 있는 것은 아니지만), 제휴관계 또는 지인 network을 통해 풀어나갈 수 있는 것들을 만들어 내는 것이 지금 내야 할 일이라는 생각이다. 이런 것들이 내가 지금까지 일을 해와서 배웠던 know-how와 network을 가장 잘 활용하는 방법이라는 생각!! 그렇다고 광고를 전혀 하지 않을 것이라는 것은 아니다.. ㅎㅎ 기본 적으로 키워드 정도는 쓸 생각임8/18일 업데이트 (파펨은 9월 11일에 런칭함)Phase 30. 손에 잡히는 것들이 속속 도착하다..오늘은 외부 박스가 만들어져서 우리 사무실로 도착했다. 흠.. 컴퓨터와 종이에서만 존재하던 것들이 세상에 만들어져서 나오는 기분들이 제법 좋다. 물론 처음으로 만들어 본 것이기에 100% 만족하기엔 어려운 부분들도 있으나.. 이미 만들어진 것을 어쩌나.. ㅎㅎ 얼른 다 쓰고 한 단계 업그레이드된 박스를 또 만들어서 쓸  수밖에..#파펨 #스타트업 #창업가 #창업자 #마인드셋 #인사이트
조회수 1649

스타트업 가격전략 - 아마추어 벗어나기

김대리는 대기업에서 일하다가 얼마전 화장품 커머스를 하는 초기 스타트업에 조인했다 (이전 글 참고). 회사의 마케팅 전략 전반을 총 책임해야하는 김대리에게 이번에 신규 런칭하는 '감탄크림' 제품의 가격전략을 수립하라는 미션이 떨어졌다. 경쟁제품들의 채널별 판매가를 모조리 조사해 봤더니 평균 12,000원 정도가 나왔다. 개당 제작/유통단가가 6,800원이고 회사에서 목표로하는 마진율이 15% 이상, 김대리가 운영 가능한 마케팅 예산이 개당 4,000원 선 이기 떄문에 김대리는 나름 합리적으로 6,800원 + 4,000원 + 마진 2,100원 = 12,900원이라는 가격을 책정하였다. 언뜻 보면 나쁘지 않은 가격 책정법 같은데? 라고 생각하고 있거나, 본인도 혹시 이런식으로 가격을 책정하고 있던 분들이라면 오늘 글은 반드시 읽어주시길 바란다. 그렇다. 이번 글에서는 많은 김대리들이 가격전략을 수립할때 자주 저지르는 헛발질들에 대해 소개하려고 한다.** 이 글에서 '김대리'는 그냥 일반명사 김대리지 실제 김대들을 지칭하는게 절대로 아닙니다.** 이 글에 나오는 김대리의 회사 및 제품은 모두 가상의 설정입니다.1. 업에대한 본질과 가격이 전혀 연결이 안되는 김대리가격전략의 근본은 업에대한 정확한 정의, 다시말해 본인 제품 또는 브랜드가 약속하는바에 대한 정의를 가격체계에 녹여내는데에 있다. 김대리가 책정한 12,900원이라는 단순한 5개의 숫자 그 자체로 감탄크림이 소비자에게 약속하는바가 정확하게 전달되지 않으면 그건 가격전략이라고 부를 가치가 없다는 뜻이다. 대략 다음과 같은 순서로 선언적 가치를 정의해 볼 수 있다.1) (단일제품이 아닌) 브랜드가 전달하고자 하는 가치2) 해당 제품이 브랜드가 선언한 가치에 어떤 역할을 하는지에 대한 정의3) 가치-비용 관계로 가격전략의 방향 설정예를들면 이런식이다.1) 브랜드가 전달하고자 하는 가치: 감탄크림 등 14종의 제품을 보유하고 있는 감탄 화장품 브랜드가 전달하고자 하는 가치는 바로, 감탄이 흘러나올만한 차별적 가치가 전 제품에 한개 이상씩 담겨져 있는 화장품을 심플한 패키징과 합리적인 가격대로 제공함으로써 1인라이프에 최적화된 가치를 제공한다.2) 감탄크림이 위 가치에 역할하는 바: 감탄크림은 보습력 하나에만 집중한 제품으로, 경쟁제품 대비 30%이상의 보습력, 40% 이상의 지속력을 달성한 제품. 이를통해 바쁜 아침에 세수하고 푸석한 얼굴에 착~하고 바르기만하면 물광피부가 된 감탄을 선사할 것이다.3) 합리적 가격대에서 명확한 차별화 가치 전달: 감탄크림의 타겟은 단일제품에 큰 비용을 지불하지 않는 중저가 브랜드를 애용하는 젊은 10-20대 남녀임. 이들에게 같은 가격대에서 보습력 끝판왕이라고 불리는 명확한 차별화 가치를 통해 지각된 가치 (perceived value)를 최대화 한다.여기서 '지각된 가치를 최대화 한다'가 바로 업에대한 본질과 가격전략을 연결시키는 핵심이다. 지각된 가치라는 것은 소비자가 해당 제품/브랜드로 부터 지각된 효용 (perceived benefits)들의 합과 소비자가 지불한 비용 (costs)' 사이의 차이를 의미하는데, 이 차이가 (+)가 되어야 소비자는 소비행위를 통한 행복을 느끼는거고, 이게 (-)가 되버리면 불행해져서 '아 딥빡이네, 이 제품 다시는 안산다' 이런 반응이 나오게 된다. 저 효용 (benefits)과 비용 (costs)들에는 당연히 제품/브랜드와 관련된 유 무형의 모든 영혁을 포함하는 개념으로써, 예를들면 기능적 효용 뿐만 아니라 구매의 편리성, 사용이미지로 부터 오는 만족감, 고객서비스 등등을 모두 포함한다. 여기서 한가지 오해하면 안되는 것이, 경쟁제품 대비 효용을 최대화 하는것 뿐만 아니라 효용가치는 비슷한 수준에서 소비자가 지불해야 하는 비용을 경쟁제품 대비 최저로 낮추어 지각된 가치를 최대화 시키는 것 또한 하나의 방법이다.업에대한 본질이 가격전략으로 연결되어 소비자의 지각된 가치를 최대화 시키는것이 가격전략의 핵심이다.2. 차별화가치를 정량화하지 못하는 김대리혹시 당신의 제품이 B2B에 해당한다면 이 부분은 특히나 중요하다. 생각보다 많은 사람들이 본인 제품의 차별화 가치에 대해 명확하게 정량화 하지 못하거나, 정량화에 대한 시도 자체를 안하는 경우가 많다. 가격전략에서 차별화가치를 정량화 하는 방법은 여러가지가 있는데, 여기서는 Thomas Nagle의  '경제적 가치 평가 (EVE, Economic Value Evaluation)' 모델에 대해 간단히 소개해 보려고 한다. (이름은 제법 거창하지만 전혀 어려운 개념이 아니니 쫄지 말자)EVE 모델의 개념은 어떤 제품의 '총 경제적 가치'를 정량화하려면 해당 고객이 다른 대안으로 부터 얻을 수 있는 가치 (레퍼런스 가치)와 그 대안에 비해 이 제품이 갖는 차별화된 특성으로 부터 얻는 경제적 가치 (차별화 가치)를 합해야 한다는 건데, 그냥 쉽게 말하면 다음과 같다.당신 제품의 경제적 가치는 경쟁제품의 가격에다가 당신 제품을 이용함으로써 추가적으로 떨어지는 이득/손실을 모두 합한거다.예를들면 이런거다. 위의 감탄크림의 경우 레퍼런스 가치, 즉 다른 대안제품들을 선택했을때의 평균 비용이 12,000원이였다. 하지만 감탄크림을 이용하면 다른 대안을 이용했을때에 비해 다음과 같은 추가적 이득이 생긴다.(+) 동일 보습력을 위해 경쟁제품은 별도의 에멀젼이 필요하다 (+11,000원)(+) 동일한 시간동안 보습력이 유지되려면 경쟁제품은 감탄크림에 비해 평균 2.5배정도 제품을 더 사용해야 한다 (+5,500원)(+) 감탄크림은 정기배송 옵션이 있어서 화장품 떨어졌을때 온/오프라인 서치해서 제품구매하는 수고를 덜어준다 (+6,500원)(+) 펌프형태의 패키징이 심플해서 매일매일 사용이 편하다 (+2,500원)(-) 감탄크림은 레퍼런스 가격보다 900원이 비싸다 (-900원)(-) 감탄크림은 (경쟁사와는 달리) 아직 올리브영, 왓슨스, 대형마트 등 오프라인 구매가 어렵다 (-13,000원)(-) 화이트닝 기능이 없다 (-3,000원)(-) UV 프로텍트 기능이 없다 (-1,000원)(-) 감탄크림은 (경쟁사 대비) 카드사 포인트 사용이 불가능하다 (-3,000원)이를 EVE로 모델링 해 보면 총 16,600원의 경제적 가치가 계산된다.경쟁제품의 가격에다가 제품을 이용함으로써 추가적으로 떨어지는 이득/손실을 모두 합하면 경제적 가치가 계산된다.물론 해당 계산법으로 가격을 16,600원으로 설정하라는 것이 아니다. 대략 본인의 차별화 가치를 이런식으로 정량화 해 보면 소비자의 지불가격 대비 최종 차별화 가치는 개당 3,700원 (16,600원 - 12,900원)이라고 정량화할 수 있다. 사실 B2C에서 이렇게 차별화가치를 정량화 하는건 대단히 어렵지만, B2B라면 상대적으로 명확한 편이다. 이에대한 자세한 내용은 (비록 영어긴 하지만) 토마스 네이글이 고문으로 있는 레버리지 포인트의 블로그 글인 Economic Value Estimation글을 읽어보기 바란다. B2B 제품의 EVE 모델 예시 - 토마스 네이글의 '프라이싱 전략' 책에서 발췌3. 지불의향을 설문조사로 뽑아내려는 김대리이건 특히 B2C 제품에서 가격수립할때 절대로 해서는 안되는 헛발질에 해당한다. 가격수립한다고 소비자에게 샘플제품 보여주고 (심지어 제품도 없이 대략 제품 스팩만 설명하는 경우도 있다) 소비자에게 이거 이정도 가격이면 사겠니? 또는 얼마까지 지불할 의향이 있니? 하고 적나라하게 설문지로 물어봐서 해당 답변 평균내는 방식이나, 그나마 더 전문적인 리서치기관에 의뢰해서 나름 비교제품들을 제시해서 컨조인트 분석기법등을 동원해서 지불의향 가격을 조건별로 발라내는 방식인데, 이렇게 지불의향을 조사해서 가격 책정하는 방식은 특히 스타트업이라면 매우x10 위험한 방법이다.이런 전문적인 컨조인트 분석으로 구매의향을 발라내주는 리서치 기법이 많이 있지만 개인적으로 위험한 방법이라고 생각한다. (사진 출처: 동아비즈니스리뷰 55호)그 이유는 여러가지가 있지만, 가장 중요한 이유는 소비자가 정말 얼마까지 저 제품에 가격을 지불할 의향이 있는지를 본인 스스로도 절대로 모른다는 점에 있다. 소비자의 지불의향을 결정하는 변수는 가격 그 자체에 있는게 절대로 아니기 때문이다. 소비자가 지갑을 여는 순간 눈에 들어온 옵션들의 가격, 구매 순간의 심리, 오늘 아침에 본 리뷰 내용, 마누라 구박, 내일 엄습할 카드갑 등등 수 많은 변수들이 구매 시점에서 지불의향 가격을 형성한다. 이런 복잡한 지불의향을 단순히 설문조사로 제품 샘플 보여주고 얼마면 사겠니? 하고 물어보는걸로는 정확히 파악하는게 원천적으로 불가능하다.또한 더 중요한 이유가 있는데, 가격전략의 목적이 소비자의 지불의향 가격을 잘 맞춰서 합리적인 가격대를 설정하는것 보다는, 소비자로 하여금 해당 가격과 그 이면의 가치제안을 통해 소비자의 지각된 가치를 높이는데 있다는 점이다. 특히, 위에서 설명한 이면의 가치제안을 더욱 정교하고 효과적으로 수행함으로써 소비자의 구매시점에서 지불의향 가격 자체를 높이는 전략이 더 똑똑한 가격전략이라고 할 수 있다.4. 가격펜스에 대해 무개념한 김대리아무리 시장세분화를 통해 원 니즈를 공유하는 세분시장을 타겟한다고 하더라도 3번에서 얘기한것 처럼 구매하는 상황, 심리적 변덕 등 수 많은 변수들로 인해 지갑을 여는 시점에서 가격민감도가 다 다르게 형성된다. 이 가격민감도가 다른 다양한 소비자들을 최대한 공략하기 위해 많은 기업에서는 차별적 리스팅 프라이스, 채널별 멀티 할인률 적용, 카테고리별 가격할인 전략 등 다양한 테크닉을 구사한다.예를들어, 김대리의 감탄크림의 정가가 12,900원으로 책정되었지만, 해당 크림을 구매하는 소비자가 오픈마켓에서 가격비교중인 상황, 로드샵에서 할인행사중인 경쟁제품 바로 옆 진열대에 놓이는 상황, 여친이 남친 선물주려고 사는 상황, 페북에서 끝내주는 리뷰 보고 충동구매 하는 상황 등등 소비자가 해당 제품을 구매하는 개별 상황에서 가격 민감도는 모두 제각각이 되기 마련인지라, 이를 잘 고려해서 각 채널별, 구매상황별, 소비자 카테고리별 할인전략을 운용하는건 매우 어렵고도 중요한 전략이다. 이 부분은 본인도 아직 경험이 미천해서 나중에 좀더 경험이 쌓이면 별도의 글로 방법론을 정리해 보도록 하겠다.아무튼, 위 상황에서 아무리 초보라도 이거 하나는 반드시 명심하고 있어야 한다. 바로 명확한 가격펜스 (Price Fense)의 설정이다. 가격펜스란 서로 다른 가격들을 구분하는 기준, 조건들을 명확하게 설정하고 해당소비자들로 하여금 서로 다른 고객군의 영역으로 넘나드는 행위를 원천봉쇄하는 걸 말한다. 예를들어, 애플이나 마이크로소프트에서 학생/교직원 할인 혜택을 운영할 때 해당 대학교만을 위한 별도의 스토어 URL을 운영한다던지, 등록된 학교 도메인의 이메일로 인증을 해야만 할인 가격으로 구매할 수 있도록 해서 타 고객군에서 할인가격 혜택을 받는걸 방지하는 등의 행위가 모두 가격펜스에 해당한다.애플은 학생할인을 아예 학교별로 별도의 URL로 스토어 사이트를 운영하고, 이를 학교 커뮤니티 사이트에 알리는 가격펜스 정책을 운영중이다.여기서 애플의 가격펜스에 주목해야 하는 점은, (물론 워낙 유명한 애플이라 많은 사람들이 정보공유를 하곤 있지만) 가격할인을 그 대상이 되는 소비자만 알고 다른 소비자군은 잘 모르게 세팅하거나, 알더라도 해당 혜택을 받기 어렵도록 다양한 장치를 설치함으로써 서로다른 가격군에서 장벽을 넘나드는것을 최대한 방지하는 노력이 중요하다는 것이다. 이걸 잘 못하는 기업은 정가에 대한 소비자 신뢰가 무너져서 결국 가격 인하 -> 수익성 악화 -> 소비자는 여전히 가격할인을 기대 -> 가격할인 실시 -> 가격인하 ... 의 악순환에 빠지게 된다.5. 매몰비용의 관점에서 1개당 판매비용을 책정하는 김대리가격 책정할때 많은 사람들이 실수하는 부분중 하나가 바로 제품 1개당 판매 비용을 매몰비용의 관점에서 계산한다는 것이다. 이건 조금 헷깔릴 수 있는 개념이라 일단 각각의 정의부터 살펴보도록 하자. 회피가능비용 (Avoidable Cost)란 말 그대로 현재 시점에서 아직 발생하지 않았거나 되돌릴 수 있는 비용을 말하고, 매몰비용 (Sunk Cost)은 반대로 이미 되돌릴 수 없이 지불해 버린 비용이다. 이렇게 얘기하면 많은 분들이 '그거 고정비-변동비 개념 아닌가?' 하고 의문을 갖기 쉬운데, 개념 자체가 아주 다른거니 다음 설명을 주의해서 읽어주길 바란다.회피가능비용을 이해하기에 가장 적절한 예는 언제나 석유회사의 예가 단골처럼 등장한다. 석유회사가 가솔린 1리터를 주유소에 판매하기 위해 들어간 비용을 계산할때 대부분은 원유구입비와 정제, 배달에 들어간 비용의 합이라고 생각하기 쉽지만 절대 이렇게 비용계산을 하지 않는다. 석유회사는 미리 석유를 구입해서 재고를 엄청나게 채워넣고 공급해야 하는 비즈니스이기 때문에 이미 석유를 구입한 비용이 아니라 새로 석유를 판매할 때 빈 재고를 채워넣는데 들어가는 석유 구입비를 계산하여 현재 가격에 반영하는 방법을 사용한다. 뭐 전문용어로 NIFO (Next In, First Out)이라고 표현한다고도 하는데 이런것까진 몰라도 될것 같다. 중요한 부분은 석유회사는 가격을 책정할 때 이미 재고에 채워넣은, 즉 회피 불가능한 원유구입비를 가격에 반영하지 않고, 판매한 만큼 비는 재고를 채워넣어야 하는, 즉 아직 발생하지 않은 회피가능비용을 기준으로 현재 가격을 책정한다는 것에 있다. 원유가격이 변동할때 마다 정유사들이 가격을 바로바로 반영하는 이유이다.정유사는 판매한 석유에 들어간 구입비가 아닌 판매한 빈 재고를 채워넣을 때 들어가게 될 원유구입비를 가격에 반영하고 있다.김대리의 감탄크림 케이스에 이 개념을 적용해 보자. 만일 12,900원에 판매하고 있는 감탄크림의 판매량이 예상치를 훨씬 밑돌게 되어 화장품을 재고로 보유하고 있는 임대료비용이 더 많이 들고 있는 상황이라고 해 보자. 1개당 재고보유 비용이 3개월 단위로 2천원씩 상승한다고 하고, 현재 가격으로는 재고 보유가 평균 1년이 걸릴 것으로 예상된다고 해 보자. 우선, 이미 생산과 마케팅에 쏟아넣은 6,800 + 4,000 = 10,800원이라는 원가는 현 시점에서는 회피불가능 비용이라고 생각해야 한다. 이미 만들어버린 화장품 제작/유통비용, 이미 집행해버린 마케팅 비용들을 이 시점에서 가격에 반영하는건 어리석은 행위다. 오히려 현재 가격으로는 1년이나 재고로 쌓아둬야 할 것으로 예상되는 재고 보유비용인 8천원을 회피가능비용으로 생각해서 현재 가격 12,900원에서 반값 할인 행사를 쳐서 6,450원에 현재 재고를 모두 소진할 수 있으면 앞으로 발생할 재고 보유비용 8천원을 회피할 수 있으니 더 이득이 되는 선택이라고 할 수 있다.물론 위의 예시는 지나치게 상황을 단순화한 거라 실제 상황에서는 저런 결정이 쉽지는 않을 것이다. 저 예시에서 전달하고자 하는 바는, 가격 전략을 운용할 때 이미 지불해서 더이상 되돌릴 수 없는 비용은 생각하지 말고 앞으로 발생이 예상되는 비용인 회피가능비용을 탄력적으로 적용하려는 노력이 필요하다는 뜻이다.지금까지 가격전략을 수립할때 사람들이 자주 저지르는 헛발질들에 대해 소개했다. 다시한번 강조하지만 가격은 단순히 표시된 숫자 그 이상의 의미를 지닌다. 가격 책정 그 이면에는 해당 기업/브랜드의 모든것이 응축되어 담겨있다고 해도 과언이 아니다. 특히 위에서는 디테일하게 구술하진 않았지만 가격민감도가 서로다른 소비자들을 그룹별/구매시점별로 다양하게 타겟팅하는 가격펜스 트릭을 잘 하는 기업들을 보면 이건 거의 아트수준이다. 혹시 지금까지 경쟁사 가격 조사해서 대충 가격 책정해오던 분들이시라면 아무쪼록 이 글이 어느정도 전략적 가격책정에 도움이 되길 바란다.** 본 글은 김대리의 헛발질 시리즈 입니다.** 1화 보기 - 인스타그램 초기마케팅 헛발질들을 정리해봤다** 2화 보기 - 스타트업에서 STP 전략을 그리고 있는 당신에게글쓴이는 스팀헌트 (Steemhunt) 라는 스팀 블록체인 기반 제품 큐레이션 플랫폼의 Co-founder 및 디자이너 입니다. 비즈니스를 전공하고 대기업에서 기획자로 일하다가 스타트업을 창업하고 본업을 디자이너로 전향하게 되는 과정에서 경험한 다양한 고군분투기를 연재하고 있습니다.현재 운영중인 스팀헌트 (Steemhunt)는 전 세계 2,500개가 넘는 블록체인 기반 앱들 중에서 Top 10에 들어갈 정도로 전 세계 150개국 이상의 많은 유저들을 보유한 글로벌 디앱 (DApp - Decentralised Application) 입니다 (출처 - https://www.stateofthedapps.com/rankings).스팀헌트 웹사이트 바로가기 
조회수 1260

크몽 gulp 개선기

안녕하세요. 프론트개발자 bk입니다 :)이 글은 gulp사용법에 대한 글이 아닙니다. build 자동화 도구를 개선할까 말까 고민하는 개발자들을 위해 제 경험을 공유드리려 합니다.음... build 자동화 꼭 해야 해..?가 아닙니다. 크몽이라는 서비스가 어떤 개발 환경을 통해 만들어졌는지, 좀 더 편하고 효율적으로 개발 생활을 즐기기 위해 어떻게 개선을 했는지에 대한 개발 경험을 나눠 보려고 합니다.왜 이 작업을 하게 되었고 뭐가 그리 중요했는지, 크몽 개발 환경에서 gulp가 개선되어야 했던 이유에 초점을 맞추었습니다.시작에 앞서본격적인 gulp에 대한 이야기를 하기 전에 왜 내가 크몽에 입사하자마자 gulp를 개선해야겠다 마음먹었습니다.크몽에서의 개발크몽에 입사한 지 이제 3개월이 되었습니다. 회사의 개선사항, 변화가 필요한 것들에 대해선 반드시 말하는 스타일이라 크몽의 자유로운 분위기와 수평적 문화는 정말 만족했고 적응에 큰 어려움은 없었습니다.첫 주는 개발환경 laravel + vuejs 공부의 시간을 보냈고 둘째 주부터 이벤트 페이지를 맡아서 작업했습니다. 기존 사용하였던 개발환경과 크게 다르지 않아 크게 어려움 없이 이벤트 페이지 작업을 완료하고 배포가 되었습니다.호환성을 위한 es6 환경 필요성하지만 늘 그렇듯 다음 날 출근을 하니 버그가 날 기다리고 있었습니다. 조금 생소한 버그였습니다. script관련 오류였는데, 이전의 개발환경에선 babel, browserify가 거의 대부분의 script에 걸려있었기 때문에 습관적으로 es6로 작업했습니다. 결국은 es5스타일로 복구하여 수정했습니다. 곰곰이 생각해보니 호환성을 위해 es6를 사용하지 않는 것이 아닌 es6를 사용하도록 환경이 구성되어야 하는 게 맞는 것 아닌가 라는 생각했습니다.gulp가 개선되어야만 하는 이유크몽에 입사한 지 1주일 만에 다른 작업을 뒤로하고 회사에서 gulp만 외치고 다녔습니다. 다른 무언가 개선을 하려면 gulp가 필연적으로 개선이 되어야 했습니다. 기존의 개발환경은 파일 수정할 때마다 terminal에서 gulp를 명령어를 쳐야 했습니다. 주르륵 코드를 적고 한번 새로고침해서 짠하고 바뀌는 스타일이 아니라, 내가 짠 코드도 의심이 되어 자주 스텝별로 확인 스타일이라 이러한 현재 환경은 저와 정말 맞지 않았습니다.앞잡이(크몽의 프론트앤드 멤버) 챕터 회의 때 gulp개선을 요청하였고 모두에게 현재의 문제를 공유하고 gulp개선을 해야 하는 이유에 대해 설득 한 뒤 크몽개발팀 내 프로젝트 일정으로 잡히게 되었다.나 편하자고 시작한 작업, 내가 편한 건 팀원도 편하다우선 gulp 개선의 가장 큰 목적은 4가지였다.es6 및 최신 기술과 라이브러리를 사용하자gulp watch를 효율적으로 사용하자script태그와 style태그로 쓰는 것을 지양하자 (.js, .scss파일 많아지는 것에 대한 부담 가지지 말자)script, style, directory 구조를 기능별로 구조화시키자bk's PLANs그렇게 gulp는 이렇게 만들었습니다.기존 크몽 개발 환경에서 너무 확 바뀌진 않도록 개발자 분들과 협업하여 flow를 최대한 유지하며 작업했습니다. (공통 모듈, 유틸, 서비스 관련, 인증, 라이브러리, 이벤트, 구매 판매 트랙, sass)로 모듈을 나누어 bundle을 하였고 각각에 watch를 걸어 파일을 변경하면 자동으로 관련 모듈만 bundle이 실행되도록 작업했습니다.gulp를 위한 작업이었지만directory구조도 깔끔해지고 project도 좀 더 가벼워졌습니다. 계획은 거창했고 의욕은 앞섰지만 build 자동화 툴을 제대로 만져본 적이 경험이 없어서 (gulp, elixir, babel, browserify, stream) 작업과 공부를 병행하느라 예상보단 조금 더 시간이 걸렸지만 결과적으론 개선된 지금이 훨씬 개발하기 편해졌다.불필요한 작업이 습관이 되기 전에 개선을 실행했습니다.사실 크몽의 이전 개발환경에선 gulp가 크게 중요하지 않았지만, 크몽의 팀원이 많아지고 개발자도 많아지면 제가 아니더라도 크몽팀 누군가는 했을 작업이었습니다. 더 나은 환경이 분명히 존재하는데도 불구하고 기존의 불필요한 작업이 습관이 되어 개선을 망설이거나 하는 회사, 개발자가 많다고 생각합니다.개발자가 더 나은 환경에서 개발하는 걸 막자고 할 사람은 없을 것입니다. 그것이 입사한 지 1개월이 되든 10년이 되든 누가 말하든지 간에 말입니다. 갓 들어온 주니어 개발자의 말을 잘 들어주고 gulp 개선에 대한 필요성을 인정해주어 작업이 가능했던 것 같습니다.올바른 방향으로 문제 해결방법을 목표로 삼았습니다.앞으로의 bk의 계획이제 gulp가 완성이 됨과 동시에 directory 구조와 es6가 해결되었으니, 원래 가장 하려던 크몽의 코드 스타일, ESLint를 적용할 예정입니다. 그 후 vue2 마이그레이션 작업이 진행될 예정입니다.마무리작지만 하나하나 개선해 나가면 더 나아진 개발환경 구축이 되고 이런 작은 개선 사항들이 모여서 더 나은 크몽이 될 것이라 생각합니다.real _마무리이렇게 개발했던 경험을 블로그로 포스팅한 건 이번이 처음입니다.역시 글을 쓰는 건 어렵고 두서없었지만 build 자동화 툴에 대해 더 깊게 공부할 시간을 가지게 되어 좋은 경험이었습니다.글을 마무리 지으려니 어떻게 지어야 할지 모르겠네요.그래서 급 마무리 인사드립니다.이렇게 부족한 글 귀한 분들께서 읽어주셔서 감사합니다.다음 포스팅에는 크몽의 개발 조직문화 소개로 돌아오겠습니다.#크몽 #개발팀 #개발자 #개발문화 #경험공유 #인사이트
조회수 2037

[어반베이스 피플] 알고리즘으로 전 세계 도면을 변환하다_CV 개발자 인터뷰

최근의 가장 핫한 연구분야인 '자율주행'의 바탕에는 '컴퓨터 비전'이 필요하다는 사실을 아셨나요? 홍채인식, 스노우 어플도 '컴퓨터 비전'을 사용한 사례입니다. 우리의 가까이 다가와 있지만, 기술 자체에 대해서는 어딘가 생소합니다. 어반베이스의 CV개발자 대희님이 멀고도 가까운 컴퓨터 비전의 모든 것을 알려드립니다!멀고도 가까운 컴퓨터비전(CV)의 모든 것Q. 간단한 자기소개를 해주세요.네, 안녕하세요. 어반베이스에서 컴퓨터 비전(CV) 개발자 윤대희라고 합니다.Q. CV가 생소한 분들이 많을 것 같아요. CV에 대해 쉽게 설명 부탁드려요.CV는 컴퓨터비전(Computer Vision)의 약자에요. 쉽게 말해 컴퓨터가 인체라면 '눈'역할을 담당해요. 카메라를 사용해 입력받은 이미지나 영상을 프로세싱하면 '컴퓨터 비전 처리했다'고 말해요. 예를 들면, 카메라 어플 내에서 얼굴을 인식한 후에 안경을 달아준다거나, 눈을 크게 해준다거나 그런 것들을 컴퓨터 비전에서 처리할 수 있는 거죠. Q. 그렇다면 컴퓨터 비전의 시작은 언제부터인가요? 최근에 생긴 기술 같은데요. 그렇지 않아요. CV의 시작은 60년대부터 있었어요. (60년대요?) 네. 달 표면을 찍은 위성 사진의 화질을 개선하기 위해 디지털 이미지 프로세싱 분야가 탄생했어요. 그동안 기술력이 뒷받침되지 않아서 무언가를 할 수 없었을 뿐이에요. 하드웨어, 즉 카메라 장비나 처리 기술이 발전하면서 이제서야 붐이 일어난 거죠. Q. CV 개발이 활발히 이루어지는 분야가 있을까요?핸드폰 카메라 어플, 자율주행, 홍채인식 등에도 모두 CV가 필요해요.특히 요즘 떠오르고 있는 분야가 자율 주행이에요. 자율주행을 하려면 주행 시 주위 환경을 모두 살펴해야 해요. 차선이나 신호, 보행자와 차량도 봐야 하죠. 실시간으로 영상을 인식하고 처리하는 분야이니 CV 개발이 활발해요.의학 쪽에서도 많이 써요. MRI 사진을 찍은 후 세포의 영역을 볼 때, 의사가 그 모든 세포를 볼 수가 없으니까 CV 처리를 한 후 이상이 있는 세포의 특징만 뽑아내는 거죠. 아까 말씀드렸듯이 항공 쪽에서는 옛날부터 많이 썼어요. 최근에는 무인 우주선의 이미지 분석에 사용돼요. 무인 우주선에서 여러 가지 이미지 데이터를 보내오는데, 기상상황에 의해 이미지를 제대로 판단하지 못하는 경우가 있어요. 그래서 이런 이미지들을 보정하거나 특징을 뽑아내는, 전처리 과정을 CV 통해 해야 해요. 자율주행의 차량인식스노우 어플 (출처 : 스노우 앱 페이지)홍채인식 (출처 : 삼성전자 블로그)Q. 컴퓨터 비전에 대해 조금 더 자세히 알 수 있을까요?최근에 나온 명함인식 어플도 컴퓨터 비전을 사용해요. 명함에 사람의 사진이 붙어 있는 경우도 CV를 통해서 인식하게 될 거예요. 컴퓨터의 입장에서 사람의 얼굴은 공통적인 특징이 있어요. 눈 밑, 코 밑은 어두울 것이고 광대 이마 등은 밝을 거예요. 이런 패턴을 분석해서 명함 내의 얼굴을 인식하게 만드는 것이 CV에요.Q. 제가 알기론 머신러닝도 이미지를 인식하고 분류해주는 역할이라고 알고 있어요. 컴퓨터 비전과 머신러닝은 어떻게 다른 건가요?간단히 말해 컴퓨터 비전은 '눈', 머신러닝은 '뇌' 역할이죠.CV는 머신러닝에 앞선 전처리를 해주는 역할이에요. 앞서 말했듯 CV를 통해 사람 얼굴을 인식할 수 있어요. 우리 모두 눈 밑, 코 밑은 어둡고 광대 이마는 밝게 인식되겠죠. 하지만 사람마다 패턴이 미묘하게 다를 거예요. 또한 같은 사람이라도 각도나 조명에 의해 패턴이 달라질 거고요. 그래서 이런 패턴을 분석해주는 게 머신러닝이에요.'사람'을 분류해주는 건 CV로, 그 사람들 중 '홍길동'을 인식하는 것은 머신러닝인거죠.사람을 분류해주는 건 CV, '홍길동'을 인식하는 건 머신러닝CV 개발자, 어떻게 시작했나요?Q. 개발자가 되기까지의 과정이 궁금해요. 원래 컴퓨터공학을 전공하셨나요?아뇨, 기계설계를 전공했어요. 요즘은 기계 쪽에서도 공장 자동화를 기본 베이스로 하고 있어서 물건의 바코드 인식이나 라벨 색상 처리도 모두 CV의 영역이에요. Q.기계설계 중에서도 다양한 분야가 있는데, CV를 선택하신 이유가 있나요?저는 처음부터 CV를 생각했어요. 과 특성상 하드웨어 설계와 소프트웨어 설계를 동시에 하는데 저는 소프트웨어 쪽에서도 CV를 많이 했어요. CV는 다른 것에 비해서 확실히 재밌어요. 카메라로부터 받은 데이터들을 처리하는 과정이 눈으로 확실히 보이니까 훨씬 재미있게 느껴져요.Q. 운영하고 계신 블로그를 구경한 적이 있는데, 굉장히 정리가 잘 되어 있더라고요. 블로그 사이트는 어떻게 시작하게 된 거예요? 저는 누군가에게 무언가를 알려주고, 지식을 공유하는 걸 좋아해요. 제가 알고 있는 것을 함께 공유하고 공부하기 위해 블로그를 시작했어요. 어떤 것을 설명하는 방법이 그것에 대한 가장 좋은 공부법이라는 말도 있잖아요? 정보를 함께 공유하고 피드백도 받으면서 굉장히 도움이 많이 됐어요. 그래서 지금도 계속 쓰고 있어요.대희님의 블로그블로그의 강좌 목록Open CV 강좌많은 러브콜을 뒤로하고, 어반베이스에 합류하게 된 이유Q. 어반베이스의 합류 과정이 남달랐던 것으로 알고 있어요. 일종의 '스카웃 당했다'고 말할 수 있을 것 같은데요. 합류 과정을 알려주실 수 있을까요?제가 CV 온라인 강의를 진행하고 있었는데, 그때 저를 보시고 연락을 주셨어요. 강의하는 홈페이지에는 개인적인 연락처를 적어 놓지 않고 제 블로그 링크만 달아놨었어요. 그런데 제 블로그에 있는 메일 주소를 찾으셔서 연락을 주셨어요. Q. 어반베이스의 제안을 받고 어땠어요?좋았어요. 말씀해주신 업무를 제가 할 수 있을 것 같았고, 또 면접을 함께한 현우님에게 굉장히 좋은 인상을 받았어요. 부담을 안 가지고 편하게 얘기했는데 좋게 봐주셨던 것 같아요.Q. 여러 산업분야에서 CV로 할 수 있는 것들이 굉장히 많은데 어반베이스를 선택한 이유가 있을까요?확실하게 ‘사람’의 이유가 가장 컸던 것 같아요. 어반베이스에서 저를 믿고 먼저 연락을 주셨고, 함께 이야기를 나누다 보니 좋으신 분이라는 게 확실히 느껴졌어요. 사실 다른 곳에서도 연락이 많이 왔지만 일단 제 능력을 믿어주는 사람과 같이 일하고 싶었어요. 제 능력을 펼치고 싶어도 그렇게 할 수 없는 경우가 있잖아요. 하지만 어반베이스는 확실하게 제 의견을 반영해주시고 제가 하고 싶은 일을 할 수 있는 환경이라는 생각이 들었어요. 결국은 ‘사람’이 좋아서 선택한 거죠. 그게 가장 큰 이유에요. Q. 어반베이스는 VR, AR을 활용해서 공간데이터 사업을 하는 곳이잖아요. 어반베이스 비즈니스에 대한 첫인상은 어땠어요?저는 되게 좋았어요. 자동화한다는 것 자체에 메리트가 느껴졌어요.기계공학을 전공했지만 기계공학에서 건축과 닮은 부분이 있어요. 기계 도면 역시 2D로 그린 후 3D 파일을 또 만들고, 그 이후 텍스처를 설정하는 과정을 거쳐요. 분야만 다를 뿐 일련의 과정들이 건축과 굉장히 비슷해요. 그래서 막연히 '2D 도면을 3D로 바꿔주는 과정을 CV로 자동화 처리하면 괜찮지 않을까?'라는 생각을 했었어요. 분야가 기계에서 건축으로 바뀌었을 뿐, 제가 가지고 있었던 생각이랑 어느 정도 맞아떨어지더라고요. 그래서 어반베이스 비즈니스에 대한 생각이 굉장히 좋았어요. Q. 그렇다면 입사하신 이후 느꼈던 어반베이스의 개발 환경은 어때요? 굉장히 좋아요. 사람에 대한 믿음이 확실히 느껴져요. 맡은 일에 대해 믿어준다는 느낌이 있어요. 그리고 다른 분들에게 질문을 해도 항상 본인 일을 멈추고 먼저 알려주려고 하세요. 그런 모습을 보며 억압하는 분위기가 없고, 협업을 중시하고 사람을 중시한다는 걸 많이 느꼈어요. 물리적인 환경도 좋아요. 사양 좋은 맥북을 새로 사주셨거든요. 하하사양 좋은 맥북과 함께 일하는 대희님어반베이스 기술의 핵심, 도면 변환 알고리즘을 개발하다Q. 대희님이 하고 있는 일을 소개해주세요. 건축도면 이미지(2D)를 읽어서 3D 모델로 만들어주는 알고리즘을 개발하고 있어요.도면 변환에 가장 중요한 것은 좌표에요. 꼭짓점만 알면 벽을 그릴 수 있잖아요? 2D 도면상 좌표의 위치를 알아내서 벽, 문, 창문의 위치를 만들어내는 역할이에요. 좌표의 위치를 안다면 그 도면에 대해서 3D로 만들 수 있는 거죠. 3D로 만드는 과정까지 제가 담당하고 그 후의 렌더링은 3D 파트에서 담당하고 계세요. 대희님의 작업 과정Q. 업무 일과나 업무 스타일은 어때요?하루 종일 개발밖에 안 해요. 알고리즘 만든 후에 도면을 대입해서 처리가 되는지 확인하고, 오류가 있으면 수정하는 이런 패턴의 반복이죠. 어느 정도 완성이 됐다면 다음 단계로 넘어가는 거죠.제 업무 스타일은 목표한 게 있으면 끝까지 하는 스타일이에요. 해야 할 일을 정해놓고 그 일을 모두 마쳐야 퇴근해요. (막히는 경우가 생길 수도 있지 않나요?) 그러면 쉬지 않고 계속 개발하면 돼요. (웃음)Q.대희님은 어떤 분들과 협업을 많이 하나요? 2D에서 3D로 바꿔주는 도면 변환 부분, 즉 가장 베이스가 되는 부분을 만들고 있다 보니 개발 부문 대부분과 협업을 하고 있어요. 제가 만든 것을 사람들에게 보여줘야 하니까 UI/UX팀과 협업을 많이 해요. 제가 만든 API에 대해서도 이야기해야 하기 때문에 API, 백엔드팀과도 협업을 많이 하고요.Q. CV 개발자로 입사 후 가장 기뻤을 때는 언젠가요?제가 입사한 후 CV 코드 리뷰를 하고 코드를 개선해서 확실하게 좋아진 것이 보일 때 정말 좋았어요. 제 의견이 반영이 되어 바뀔 수 있었고, 결과적으로 결과도 좋았으니까요. 그 부분이 가장 좋았어요.제가 만든 알고리즘이 도면 인식을 잘 할 때도 기분이 좋죠. 도면을 넣었을 때 내가 생각한 대로 처리가 잘 되고 생각한 대로 오류가 잘 날 때 뿌듯해요.Q. 앞으로 어반베이스 내에서 개발 계획은 어떻게 되나요?이번 해에는 도면 변환 알고리즘이 구동될 수 있게끔 만들고, 내년 초부터 코드를 수정하면서 알고리즘의 정확도를 높이는 작업을 계속하려고 해요. 그다음엔 해외 도면을 처리하는 과정을 생각하고 있어요. 데드라인이 정해져있는 프로젝트는 아니지만 최대한 빨리 진행하려고 해요. 2D에서 3D로 도면을 변환하는 개발을 저 혼자 하고 있어서 제가 일을 쉬면 프로젝트 자체가 아예 멈춰 버리니까, 되도록 빨리해야죠. 그렇게 해야 수정하고, 피드백을 받고, 출시하는 모든 과정들이 빠르게 진행될 수 있으니까요.CV 개발자에게 가장 필요한 역량은 코딩 능력이 아니다.Q. 여러 분야의 개발자가 있지만 '컴퓨터 비전(CV) 개발자'는 많이 들어보지 못했는데 최근 들어 '컴퓨터 비전 개발자'의 채용이 굉장히 늘고 있는 것 같아요. 앞으로의 CV 시장을 어떻게 예측하세요?사실 이전까지는 기술력 부족으로 할 수 있는 것이 많이 없었어요. 카메라로 찍었을 때 화질이 안 좋으면 CV 처리하기가 굉장히 힘든데 최근에 카메라 성능이 최근에 굉장히 좋아져서 처리 과정이 수월해진 거죠. 그래서 'CV 개발자'에 대한 수요도 늘고 있어요. 이미지로 무언가를 한다면 무조건 CV 개발자가 필요해요. 요즘은 손쉽게 카메라를 설치하고 이미지/영상 데이터들을 얻을 수 있으니까, 더욱 많이 필요할 거예요. 모든 산업분야에서 CV와 관련된 더 많은 개발자, 더 많은 기술이 필요할 것이라고 생각해요.Q. CV 개발자에게 가장 필요한 역량은 뭘까요? 코드를 잘 짜는 것보다 수학을 잘 하는 게 중요해요. 대부분의 이미지 인식 과정에서 수학공식이 사용되기 때문에 후처리를 하려면 수학을 잘 해야 해요. CV는 공업수학, ML은 통계학이 많이 관련되어 있어요.Q. 그러면 코드를 짤 때 코드에서 막히기보다 수학 공식에서 막힐 때가 있잖아요. 그럴 땐 어떻게 해요?늘 거기서 막혀요. 학교를 최근에 졸업했으니 아직 공식이 머릿속에 많이 남아있어서, 막힐 때가 있으면 이런저런 다른 공식 적용을 시도하죠. 어반베이스의 알고리즘으로 전 세계 도면을 변환하다Q. 좋아하거나 롤모델로 삼고 있는 사람이 있나요?루카스 카나데 교수님이요. CV 분야의 세계적인 권위자이신 분이에요. 교수님의 이름을 딴 함수가 있을 정도로요. 그 정도의 명예와 재력이 있는데도 불구하고 꾸준히 공부하고 논문을 발표하시는 모습도 정말 멋있다고 생각해요.Q. 혹시 CV 외에 어반베이스 내에서 욕심나는 분야가 있어요?머신러닝이요. CV에서 전처리를 하고 머신러닝 후에 후처리에 또 CV가 필요해요. 그래서 중간 영역인 머신러닝을 배우면 모든 프로세스를 혼자서 처리할 수 있으니까 머신러닝을 공부해보고 싶어요.   Q. 어반베이스가 혁신적인 기술을 통해서 많이 이슈가 되고 있고, 많은 컨택이 오고 있잖아요. 스스로 어반베이스의 개발자로서 어반베이스의 가능성은 어떻다고 생각해요?확실히 굉장히 높다고 생각해요. CV로 처리해서 자동화한다는 것 자체가 굉장히 뜨고 있는 기술이고 앞으로 계속 발전할 기술이기 때문에 가능성도 굉장히 크다고 생각해요. Q. 대희님의 포부는 뭐예요?전 세계의 2D 도면을 어반베이스의 알고리즘을 통해 3D로 변환할 수 있게끔 만드는 거죠. 단기간은 국내, 중장기적으로는 해외 도면까지요.컴퓨터 비전. 그저 어렵게만 느껴졌던 단어인데, 이번 인터뷰를 통해 컴퓨터 비전과 많이 가까워진 느낌이 듭니다. 어반베이스의 핵심기술을 담당하고 있는 CV 개발자 대희님! 대희님이 만든 알고리즘으로 전 세계 도면이 3D로 변환될 날이 왔으면 좋겠습니다 :)출처: https://blog.naver.com/urbanbaseinc 
조회수 2314

100일 간의 챗봇 디자인 실패기-2편

본문은 100일간의 챗봇 디자인 실패기 - 1편 에서 이어집니다.각고 끝에 탄생한 린더봇의 실적은 화려했다. Microsoft에서 주최하는 기술경진대회인 ImagineCup에서 수상을 하기도 하고, 4차 산업혁명이라는 정치적(?), 시대적 흐름에 맞추어 여러 정부지원사업에서도 긍정적인 반응을 이끌어냈다. 이제 막 대학을 졸업하는 대학생들이 몇 달간 잠도 못 자고 밥도 못 먹고 로봇 인척 하며 개발 및 사용자 연구를 진행해왔다는 스토리텔링은 우리가 봐도 가히 감동적이기까지 했다. 하지만 베타 테스트를 시작한 지 한 달 만에 린더봇은 종료되었고 우리는 서비스 개발을 중단했다. 대체 무슨 일이 일어난 걸까.결론이 정해진 사용성 조사'현실왜곡장'이라는 말이 있다. 스티브잡스가 자주 사용한 기법으로 유명한데, 아무리 비현실적이거나 거짓된 내용도 그 왜곡장 안에만 있으면 가능할 것으로 생각되는 것을 말한다. 경우에 따라서는 불가능해 보인 일을 기어코 성공시키는 멋진 리더십으로 그려질 때도 있지만 대다수의 경우에는 현실을 직시하지 못하고 그들만의 망상에 빠져버리는 위험한 상태를 뜻한다.앞서 1편에서 린더봇을 통한 한 달간의 일정 입력률이 전체 캘린더 데이터 입력률에 대비하여 51%까지 나왔다는, 매우 희망적인 수치를 제시했다. 하지만 한 가지 빠뜨리고 언급하지 않은 것이 있다. 그 린더봇을 통한 입력의 80%가 서비스 사용 첫 3일 간 발생했다는 것이다. 나머지 3주 간 린더봇을 통한 일정 입력 횟수는 현저히 줄어들었다.우리가 회피하고 있었던 현실새로운 전자기기를 살때면 대부분 한번쯤은 경험해보았으리라 생각한다. 우리는 새로 만나게 된 제품에 호기심을 가지고 이리저리 만져보지만 이는 어디까지나 새로운 경험에 대한 일시적인 현상일 뿐, 대부분의 서비스는 특정 기능에 국한된 제품으로 전락하고 만다. 이러한 냉혹한 수치를 분명 인지하고 있었음에도 제품에 대한 간절한 희망 때문에 우리에게 유리한 방향으로만 수치를 읽어내는 실수를 저질렀다.준비되지 않았던 플랫폼우리는 린더봇을 제공하는 플랫폼으로 카카오톡 자동응답 API를 택했다. 비록 라인, 페이스북 메신저 등 타 메신저 플랫폼들이 챗봇을 위한 다양한 기능들을 선제적으로 제공하고 있었음에도 불구하고 카카오톡이 국내 메신저 점유율의 95%를 차지하는 시점에서 다른 메신저를 고려할 수가 없었다.카카오톡 자동응답 API결국 카톡을 선택하기는 했지만 카톡이 챗봇 써드파티 업체들을 위해 준비해놓았던 기능들을 매우 제한적이었다. 여러 아쉬운 점이 많았지만 그중에서도 ‘선톡’을 날릴 수 없다는 점과 ‘PC카톡’에서 대화를 할 수 없다는 점은 서비스 운영에 있어 매우 치명적인 문제들이었다.카카오에게 있어 '단체 선톡'은 매우 중요한 수익모델이다. 물론 지금도 수 만개의 기업고객에게 돈을 받고 ‘선톡을 날릴 수 있는 권리’를 팔고 있는 카카오 입장에서 굳이 소수의 개발사들을 위해 해당 기능을 무료로 제공할 이유는 없다고 생각한다. 또한 사용자들에게 무분별한 선톡이 발생할 경우 사용성이 저하될 여지도 충분히 있다. 하지만 다수의 해외 챗봇이 '무료 선톡'을 기반으로 한 섭스크립션, 큐레이션 서비스를 확장해나가고 있다는 점을 고려했을 때 매우 아쉬운 것은 사실이었다(특히 위챗은 매주, 또는 매일 특정 정보를 제공하는 섭스크립션/큐레이션 유형의 챗봇을 이미 하나의 카테고리로 규정하고 있다).'자동응답 API에서 선톡을 막는 것'이 사용자 편의성과 수익성을 고려한 어쩔 수 없는 선택이었다면, PC 카톡에서 자동응답 API를 통해 대화를 할 수 없었다는 점은 명백히 카톡 플랫폼 내 기술적 완성도의 부족이었다. 비록 카톡 트래픽의 대다수가 모바일에서 이루어진다고 할지언정 단순히 기술적인 이슈로 데스크탑 환경에서 자동응답 옐로아이디(현 플러스친구 통합)를 사용할 수 없었던 점은 카카오의 챗봇 환경에 대한 대응이 매우 늦었다고 밖에 볼 수 없었다.(지금도 PC에서는 자동응답 플러스친구 활용이 안되는듯하다)비록 국내 메신저 업체가 우리와 같은 작은 써드파티를 위해 조금 더 진보되고 오픈된 API를 제공해주지 않았다는 점은 아쉽지만 이 또한 업체 간의 이해관계와 시장의 속도를 현실적으로 고려하지 못한 우리의 잘못이었다.접근성, 인터페이스, 그리고 습관우리는 막연했다. 앞서 1편의 서두에서 언급했던 바와 같이 많은 사용자가 접근성 하나 때문에 메모장 대신 카톡을 선택한 것처럼, 린더봇 또한 접근성 하나로 많은 이들의 사랑을 받을 수 있을 것으로 기대했다. 우리의 챗봇을 통해 사람들이 놓치고 지나치던 많은 일정들을 캘린더로 입력시킬 수 있을 것이라 생각했다.우리가 그렸던 막연한 이상향새로운 기술을 좋아하는 IT업계 사람들이 더러 그러하듯 우리 팀 또한 ‘대화형 인터페이스(CI)’라고 하는 새로운 형태의 사용자 경험에 열광했다. 2016년 한 해 미국을 강타했던 다수의 챗봇 비즈니스를 검토하며 CI가 제시하는 미래에 매료되었다. 하지만, 우리의 기대와는 달리 베타 출시된 린더 봇의 실질적인 일정 입력률은 기존 캘린더 앱의 그것과 크게 다르지 않았다. 린더봇을 준비하며 설문을 실시한 결과 캘린더 앱을 활발히 사용하는 유저 중 주간 캘린더 입력률이 5회가 넘는 사용자가 20%가 채 되지 않았다. 우리는 린더봇을 통해 이 수치를 크게 바꿀 수 있을 것이라 생각했지만 그것은 단순히 새로운 인터페이스를 제공한다고 해서 해결될 수 있는 문제가 아니었다. 사용자들에게 필요했던 것은 ‘보다 편리한 캘린더’가 아니라 아예 ‘새로운 형태의 일정 도우미’였다. 그렇게, 지금의 일정 구독 서비스 - 린더가 탄생했다.자동응답 API를 통해 챗봇을 제공하기 전, 한 달 동안 수동으로 모든 일정 요청을 응답할 당시 한 사용자로부터 독특한 요청을 하나 받았다. 바로 재학 중인 대학원의 1년 일정을 자신의 캘린더로 넣어달라는 것이었다. 솔직히 요청을 받은 당시에는 이걸 정말 해줘야 하나 고민이 많았다. 단 한 사람을 위해 20개가 넘는 연간 대학원 일정을 캘린더로 담아줘야 한다니. 하지만 실험 당시 우리는 사용자들에게 분명 일정에 관련한 모든 입력을 도와주겠다고 약속했기에 대학원 웹사이트를 찾아 일일이 일정을 옮겨 담아주었다.실험이 끝난 후 해당 사용자는 설문에서 린더를 사용하며 가장 편리했던 기능으로 ‘연간 일정 한 번에 추가 기능’을 꼽았다. 30명의 사용자 중 단 한 명이 요청하고, 좋아했던 이 기능으로부터 지금의 ‘일정 구독 서비스 - 린더 ( https://linder.kr/ )’가 탄생했다. 챗봇의 성공 가능성이 희미해지고 있던 시점에서도 우리 팀은 ‘일정’이라는 요소를 손에서 놓지 않았다. ‘일정 데이터’가 앞으로 지니게 될 가치에 대해 고민한 결과 누군가는 80%의 비어있는 캘린더에 일정을 채워줄 수 있는 서비스를 만들어 낼 것이라는 결론을 도출하게 되었고, 그 ‘누군가’가 우리가 되지 못할 이유는 없다는 생각으로 린더를 만들기 시작했다.제품 개발 연혁- 17.01 ~ 17.02 휴먼(?) 린더봇 실험- 17.02 ~ 17.03 린더봇 베타 출시- 17.04 린더봇 중단- 17.03 ~ 17.05 일정 구독 서비스 - 린더 기획, 개발- 17.06 일정 구독 서비스 - 린더 출시2017년 11월 현재- 엔드유저(구독자): 10만 명- 파트너(기업): 삼성, SK, 현대 등 8개 사 스포츠, 교육 일정 등 협약- 누적 캘린더 181개 / 누적 등록 일정 12,000개- 평균 CTR(클릭률): 4~5%, 최대 7~8% ( 캘린더 내 일정 링크 클릭 수 / 구독자 )- 이탈률: 1% 내외 ( 구독 취소자 / 구독자 )- 제공 일정: 아이돌 스케줄, 화장품 세일, 대학교 학사일정, 스포츠 경기, 공연/축제 일정, 공채 일정 제공언론'국내 최초' 삼성, 캘린더 구독 서비스 실시…린더와 제휴 – 마이데일리(17.10.13)손 안에서 확인하는 경기일정, 현대캐피탈 배구단 캘린더 구독 서비스 실시 – 스포츠서울(17.10.18)스마트폰 달력 여니… 아이돌 스케줄이 주르륵 – 동아일보(17.11.01)#히든트랙 #챗봇 #기술기업 #개발자 #개발팀 #인사이트 #경험공유
조회수 1300

직원이 곧 회사인 회사

회사에서 복지, 복지 하지만 결국 복지라는 것이 써놓은 형식에 불과하다는 생각을 많이 했어요. 복지보다 팀원 관계가 좋다는 말 한마디가 더 의미 있는 거 같아요. 회사가 내게 뭘 해줄 수 있냐 보다 내가 회사에 뭘 줄 수 있냐, 그 회사에 내가 얼마나 동화되냐를 보고 일 할 곳을 결정하면 좋은 거 같아요.졸려도 출근하고 싶어지는 회사아침에 졸려서 일어나기 싫을 때도 모멘트립에 오면 막상 마인드가 달라지더라고요. 예전에는 회사 가면 빨리 집에 가고 싶었는데 지금은 빨리 회사 가서 일하고 싶다로 바뀐 거 같아요. 출퇴근 시간은 오전 10시부터 오후 7시 사이인데 저는 야근할 일을 안 만드는 스타일이에요. 근무 시간에 최대한 집중해서 일하고 쉴 때는 쉬어야 하는 거 같아요나는 꼰대 문화가 싫다대학교 때 한창 광고에 꽂혀서 광고 관련 대외활동을 했었어요. 이노션 멘토링 코스였는데 거기서 일하면서 에이전시만의 애환을 느꼈던 거 같아요. 광고주 밑에 에이전시가 있고, 에이전시 내에도 부장, 과장 이런 식으로 직급이 있잖아요. 바닥에서 일한다는 게 얼마나 바닥인지도 알았어요. 처음엔 저도 대기업 로망이 있었는데 직접 현장에서 일을 하며 이건 아니다 느꼈죠. 위계질서는 어딜 가도 있겠지만 대기업은 숨은 고수들이 너무 많고, 그 고수들이 말이 좋아 고수지 꼰대잖아요. 그분들이 자리를 확실하게 잡은 상태여서 제가 꼰대가 되지 않는 한 동화될 수 없겠다는 느낌을 받았어요. 저는 꼰대가 되기 싫었습니다. (웃음) 요즘 드라마 송곳에도 그런 얘기가 나오더라고요.부모님 걱정에 스타트업이 어렵다는 분들!저희 부모님은 일반 기업에서 인턴 했을 때보다 지금 모습을 더 좋아하세요. 에이전시를 다닐 때는 제가 자취를 하는데 집에 전화할 때마다 목소리에 힘도 없고, 가끔 집에 내려가면 얼굴에 핏기도 없으니까 거기서 빨리 나오라는 식으로 얘기를 하셨거든요. 지금은 활기 넘친다고 좋아하세요나의 다음 계획도 스타트업!한번 발을 들여 놓아서 나가기 쉽지 않을 거 같아요.  일반 기업 취업을 위해 자기 소개서를 쓸 때만 해도 목표 의식도 없고 들어가고 싶은 의지도 없어서 힘들었어요. 근데 스타트업에서 일하며 다른 길도 많다는 걸 보게 되니 꼭 큰길로만 가고 싶지 않아요. 제 마음의 소리에 귀 기울였더니 어느새 제가 스타트업에서 일하고 있더라고요#모멘트립 #팀원 #팀원소개 #팀소개 #조직문화 #인터뷰 #기업문화 #사내문화 #인사이트
조회수 683

기획, 마케팅, 브랜딩은 막 막 대단히 멋진걸까?

오늘의 얘기는 다소 불편한 얘깁니다.비판적이고 불편한데다 불만가득한 말투가 다수 있습니다. 그리고 지엽적이고 개인적인 의견이니, 혹시라도 기획/마케팅/브랜딩이 너무도 멋있고 환상적이어서 우리오빠 욕하는 건 절대 못들어줄 마브기(마케팅,브랜딩,기획) 팬덤이시라면 뒤로가기를 눌러주시면 감사하겠습니다.어쩌다보니 기획자와 마케터와 브랜딩하는 사람(이건 뭐라고 해야할 지 모르겠다. BM이라고 해야하나..?)들이 주변에 많더라구요. 또는 그것을 꿈꾸는 취준생, 대학생, 신입사원, 이직희망자가 우글우글 합니다. 그들의 말을 들어보면 '마케팅해요.' 라는 말만 들어도 막 그 사람의 조언을 들어야 할 것 같고 너무 멋지다는 겁니다. 또는 나는 디지털마케팅학과를 나왔으니 벌써 마케터라고 하더라구요. 그 사례와 이유를 접어두고서라도 확실히 마케팅, 브랜딩, 기획은 그 단어자체가 주는 강렬함이 있긴 한가봅니다. 잘 모르겠고 어렵고 광범위하고 추상적인 단어들이죠. '기획,마케팅,브랜딩' 이란 단어는 잘못이 없습니다. 애시당초 그렇게 태어난 단어고 마케팅이 마케팅이지 더 뭘 설명해야 할까요. 그런데 가만보니 정확하게 정의되지 않는 단어들에는 항상 거품과 허풍이 끼기 마련입니다. 사짜들이 판치거나 갈등을 조장하는 말장난이 되기도 하죠. 그 중 오늘 제가 말하고자 하는 부분은 3가지 부류의 사람들입니다. 1. 입만 졸라 살아있는 부류2. 내 경험이 짱인 부류3. 뭐만 하면 강의만 나가려는 부류이런 분들은 주로 사내의 상급자이거나, 또는 컨설팅하러 오신 외부인력이거나 그냥 강사거나, 자문위원이거나 꼰대투자자거나 무슨 대표님 내지는 레퍼런스 좋은 지나가던 사람일수도 있겠네요. 우선 기획과 마케팅과 브랜딩이 어떤 건지 크게 정리해보고 위 부류의 사람에 대한 얘기를 해보겠습니다.기획자그 전에 기획/마케팅/브랜딩이 뭔지 일단 간략하게 제 의견을 얘기해보자면 이렇습니다. 기획은 논리를 구축하는 겁니다. 문제발견과 해결, 과정 등등 뭐 여러가지 정의가 있지만 어쨌든 궁극적으론 눈에 보이지도 않고 손에 잡히지도 않는 미래의 불확실한 어떤 것에 논리를 부여하는 역할을 합니다. 텍스트든 그림이든 피피티든 바디랭귀지든 외계어든..어떠한 수단을 써서 모두가 이해하고 인식할 수 있는 논리구조와 그림을 그려냅니다. 마케터마케터는 설계의 역할입니다. 고객이 우리에게 다가오고 나가고 다시 돌아오고 친구를 데려오고 구매하고 환불하고 불평하고 해결하고 가입하고 탈퇴하는...모오오오든 행동이 원활하게 이루어질 수 있도록 그 길을 설계하고 확장하는 역할을 합니다. 일회성 폭탄설치 전문가가 아닙니다. 한 번 빵 퍼뜨리고 뒤에 숨어서 나 이거 잘했지?!?! 라고 평생 울궈먹는 그런 게 마케팅이 아니라, 앞으로도 꾸준히 당신이 없어도 굴러갈 수 있게 만드는 겁니다. 브랜딩브랜딩은 사실 모르겠습니다. 전 브랜딩 전문가도 아니고 그런게 있는 지도 모르겠고 있어도 하고싶지도 않습니다. 브랜딩은 필연적이고 자연스럽게 발생하는 패시브성향의 리소스입니다. 우리가 하는 행동과 말과 보여지는 것, 회사내부의 문화 등..내외의 수많은 요소들이 만들어내는 정체성 그 자체입니다. 굳이 따지자면 '가이드' 의 역할같긴 합니다. 요소가 많다는 것은 각각의 것들이 다양한 방향성을 지닌다는 얘기인데 당연히 난장판이 될 위험이 높습니다. 때문에 일정한 톤과 규칙을 설정하여 일괄적인 스토리와 가이드를 제시하고 지키는 일종의 '내규'와 같습니다. 정답이 아니겠죠 당연히. 단순히 제 생각일 뿐입니다. 하지만 그 정의가 어쨌든 간에 기획자, 마케터, 브랜딩하는 사람에게 필요한 것이 무엇인지는 정확히 알고 있습니다. 그들에게 필요한 건 비용, 시간, 일머리입니다. 통찰력, 논리력, 소통능력 뭐 지겹게 얘기하긴 하는데... 그건 역으로 말하면 해당 기획과 마케팅전략과 브랜드전략의 실패가 니들이 멍청해서 그런거야. 라고 책임전가하는 느낌 아닌가요? 회의실에서 전략이 멋드러지게 나오는 건 사실 첫 단추에 불과합니다. 그런 전략으로 일이 다 될 것 같았으면 똑똑한 양반들만 모여있다는 국회에서 그런 법안들이 나오지 않겠죠. 실제 일을 하는 사람들은 보지도 않고 통찰력 얘기만 주구장창 하고 있으면... 너무 웃기잖아요 이거. 너무 많은 강의장에서 인사이트 인사이트만 외치고 있더라구요.물론 내부의 문제도 있어요. 기획하고 싶다, 행사하고 싶다, 브랜딩하자라고 해놓고 전체예산은 200만원 툭.. 내일까지 만들어. 그것도 이제 갓 들어온 신입사원에게.이게 지금 진짜 기획과 마케팅, 브랜딩에 관심있고 의욕있는 사람들의 애티튜드인가요? 물론 회사가 돈쓰고 사람쓰는 것에 민감하고 어려운 것은 잘 알고 있습니다. 적어도 그런 상황이라면 실무를 도와주던가, 적어도 방해를 하질 말던가 아니면 생색을 내서는 안됩니다. 오늘 얘기할 3가지 부류의 사람들은 제3자든, 내부인원이든 비용/시간/일머리(개인차)라는 요소를 제쳐두고 우주를 항해하는 추상적인 단어들로 무장해선 실무자의 고민을 식은 게살죽 정도로 만들어버리곤 하더라구요. 매년 같은 소개서를 계속 만들고 맥락도 뭣도 없는 페이스북 콘텐츠가 끊임없이 나오는 이유이기도 한 것 같아요. 스터디와 회의, 도서구매는 끝도 없지만 일하는 사람의 환경과 업무체계는 1도 바뀌지 않는 이유이기도 하구요. 마브기는 물론 통찰력과 구성능력, 스토리텔링능력 뭐 그런 것들이 있어야겠지만.... 가장 중요한 건 일단 사람이 있어야 하는 거 아닐까요.입만 살아있는 사람들은 일을 헛돌게 만듭니다.그들의 지식을 무시하는 것은 아닙니다. 그들은 브랜드가 몇 년전에 어떤 기원을 통해 만들어졌고 어떤 전략적 이론이 있고, 소비자심리가 어떤 식으로 움직이는 지 심리법칙을 읊어가며 브랜드 스토리텔링 전략을 구축합니다. 구글, 아마존, b8ta, 로하코, 애플 등등의 유수기업의 레퍼런스를 들며 끊임없이 '예를 들면, 예를 들면..' 하는데... 그래서 그 브랜딩전략을 200만원으로 어떻게 하는데요? 단어가 추상적이고 정의가 많아질수록 종교의 종파처럼 각자 교리를 주장하고 외치는 사람들이 많아집니다. 해석과 논란의 여지가 있으니 각 종파를 수호하고 따르는 추종자들도 있고 서로 대립하고 싸우고 내가 맞다 니가 틀리다 어쩐다.. 그런식의 에너지소모가 소위 브랜드 전문가라는 분들 사이에서 꽤나 있더라구요. 고상하게들 댓글로 싸우시거나 뒷담들을 까시는데 그래서 구글말고 우리 회사 브랜딩 어떻게 해줄거냐구요. 지금 실무자 2명있고, 다음 달에 한 명 퇴사해요. 1명 남는데 전 3분기 업무가 폭풍이에요. 대표님은 이번 시리즈B 투자받느라 뛰어다니고 디자이너는 IR만드느라 바빠요. 이거 어떡하냐구요.내 경험이 짱인 사람들은 일을 복잡하게 만듭니다.대기업에서 브랜딩/마케팅/프로젝트 기획해서 결과를 냈다는 건 확실히 굉장히 내공과 레퍼런스입니다. 스타트업에서 제로베이스를 그럴싸한 네임드 브랜드로 만든 것도 굉장한 일이 아닐 수 없습니다. 모두 인정받고 존중받아야 할 놀라운 능력입니다. 하지만, 그건 당신이 멋진 사람이라는 증거일 뿐이지 이번에도 똑같이 잘할 수 있다라는 것의 근거라거나, 또는 상대를 무시해도 된다는 얘기는 아닙니다. 강의다니느라 정신없는 사람들은 일을 안합니다.일 안하세요?주변에 이제 갓 취업준비생이거나 또는 이직자중에서.... 부쩍 참 요즘 마케터가 엄청나게 많아졌다는 생각을 하게됩니다. 기업이 많아지고 그만큼 중요도가 높아져서 그런 것이라고 생각하고 싶습니다. 기획자를 꿈꾸는 사람들도 겁나 많습니다. 브랜드 전문가님들도 셀 수 없이 많아져서 우리나라는 막강한 브랜드 기획력을 지닌 국가가 될 것 같습니다. 전문가가 많아지든 말든 솔직히 별로 신경쓰고 싶지 않습니다. 제가 지난 위클리에서도 그렇고 이전 매거진에서도 브랜드 관련해서 끊임없이 했던 말은...결국 지금 하고 있는 걸 잘하세요. 라는 것이니까요. 마치 기획/마케팅/브랜딩만 잘하면 회사가 완전 대박날 것 같이들 얘기하는데, 얘네들은 로또가 아닙니다. 자기계발만으로 해결될 문제두 아니구요. 말장난으로 멋짐을 포장한다고 해서 해결될 문제도 아닙니다. 시스템과 문화 자체가 바뀌어야하죠. 우리가 소위 찌질하다고 여기는 돈문제, 일문제, 계약서 등등부터 말입니다. 이런 것들을 제대로 직시하기 위해선..말거품부터 걷어낼 필요가 있다고 생각해요.경영하는 입장이라면 예산 늘려주고 시간 넉넉히 주고 사람 뽑아주세요. 지금은 그렇게 많은 비용을 쓸 수 없다라면 일도 거기에 맞춰서 만들어야 하는거죠. 100만원을 주고 1,000만원 어치의 아웃풋을 강요하면 안되는 거예요. 쓸데없는 일 좀 쳐내고 필요한 장비도 잘 챙겨주고, 뭔가 계약을 했으면 지키고, 맡겼으면 믿으세요. 그리고 브랜드 가이드에 이렇게 쓰라고 했으면 잘 지켜서 쓰셔야 할 것 같아요.실무자입장이라면 기획을 할 때는 소설이나 에세이처럼 쓰지말고, 잘 나가는 카드뉴스 베껴서 대강 만드는 거 아니고, 굿즈샘플은 귀찮더라도 내 눈으로 보고 손으로 만지면서 고르는 바쁨과 고민을 필요해요. 자기 과거 레퍼런스만 믿지말고 신중하고 디테일하게 일하는 거예요. 책상앞에서 모든 걸 다 할 수 없습니다. 전문가입장이라면 상대가 지불한 비용만큼 시간과 노고를 줄여주세요. 말만 하지말고 실제로 어드밴티지를 가져다 주셔야죠. 팔짱끼고 손가락으로 이거저거 하라고 지시만 하는 게 전문가는 아닐거예요.무엇보다 발이 바쁘고 몸이 뛰어다녀야 하는 노가다 3대 직종이 마브기가 아닐까합니다. 이건 일이예요. 이상하게 자꾸 브랜딩 이런거에 큰 의미를 부여하는데...그것들은 분명 가치있고 중요한 일이지만(모든 일이 다 그렇듯), 그렇게 '멋지기만 한' 일이라고만 부를 수 있을지는 모르겠네요. 우리가 멋지다고 외치는 만큼 마케팅/브랜딩/기획에 비용과 시간, 노력과 관심을 들이는지도 잘 모르겠구요. 혹시 그저 말로 잘 포장된 채 사전적 정의로만 빛나고 있는 환상을 동경하고만 있지는 않는 건지 한 번쯤 생각해 볼 필요가 있을 것 같아요.
조회수 2985

경험 부족한 스타트업의 devops 도입기 1편

개발과 운영을 함께 devops - 출처당분간의 일기 내용앞으로 몇 개월 간 신생 스타트업 I/O가 어떻게 devops를 자기네만의 스타일로 조직에 안착시켜 나가는지 그 시행착오를 생생하게 공유하는 일기를 쓰려고 합니다.첫 번 째 편인 오늘의 이야기는 두 가지 내용을 다룹니다.devops 도입배경: 어떻게 하다가 devops를 도입하기로 했는지 그 배경에 대에서 이야기 합니다.devops 필요성 인지: 가장 먼저 소프트웨어팀이 devops 필요성을 느끼도록 시도한 스터디 세미나에 관한 이야기를 합니다.devops 도입 도중에 실패할 수 있습니다. 그래서 1편이 마지막 연재일 수 있습니다. 혹은 온갖 개고생을 해가면서 결국 devops를 성공적으로 조직에 안착시켜 tech기업다운 모습을 갖출 수 도 있습니다. 정답은 시간이 얼마간 흐른 뒤에야 알 수 있겠죠? 무언가를 조직에 도입하는 스토리를 사후적으로 그러니까 프로젝트가 끝난 후에 쓰게된다면 프로젝트 과정의 생생함이 퇴색됩니다. 힘들었던 추억도 되돌아보면 미화되듯이 그 당시에 골치아팠던 일들을 그 당시에 써놓지 않으면 까먹을 때가 꽤나 많습니다. 한 편으로는 이렇게 칼자루를 뽑아놔야 반드시 devops를 성공시키기 위해 제가 더 처절해질 수 있을 것 같습니다. 제 나약한 마음이 바뀌지 않기 위해 devops 시작과 동시에 연재물도 함께 시작하겠습니다.devops 도입배경스위처 M 앱이 출시된지 약 한 달 정도 되었습니다.경영을 해오면서 항상 위기의식을 느끼고 있지만 이번에는 조금 심상치 않았습니다.“아.. 라이브서비스를 하기엔 현재 I/O의 소프트웨어 역량이 심각하게 부족하구나! 하드웨어 역량이 Critical Path일 줄 알았는데 되려 소프트웨어가 우리의 발목을 잡고 있구나..”그동안 하드웨어 멤버들은 초심자의 마음과 책임감을 동시에 갖고 무서운 속도로 성장해왔습니다. 새로운 버전의 스위처(M)에 적용된 기구설계 수준, Supply chain 관리 능력, 블루투스 모듈 성능은 이전 버전(W) 비할바가 안됩니다. 놀랄만큼 일취월장 했습니다. 단적인 예로 현재 스위처M의 블루투스 연결 거리는 오픈필드에서 70m이상 나옵니다. 이전 세대인 스위처W의 연결거리가 약 20m 미만임을 감안하면 연결성이 300%이상 좋아졌다고 볼 수 있습니다.반면 소프트웨어팀은 여전히 초보적인 수준을 벗어나지 못하고 있습니다. 전공분야라는 자만심에 소프트웨어를 밑도 끝도 없는 구렁텅이에 밀쳐 넣고있는 제 자신을 발견 했습니다. 창피했습니다. 가장 중요하다고 볼 수 있는 초기고객으로부터 어처구니없는 버그 리포팅을 받을때면 쥐구멍으로라도 숨고 싶었습니다. Customer Service역할까지 도맡아하는 마케터가 수 많은 컴플레인을 대응하느라 정말 고생이 많았습니다.심각한 문제는 소프트웨어팀이 문제의 원인이 무엇인지 조차 잘 모르고 있다는 사실이었습니다. 그저 열심히 다음 피쳐를 개발하기 위해 코드를 짜내는 데에만 자신을 몰아붙이고 있었습니다.그 모습은 한 편의 코메디 영화를 보는 것 같았습니다.<디버깅루프>(1) 배포한 기능에 버그가 처음으로 발견됩니다.(2) “엇 이상한데? 그럴리가 없는데?” 일단 현실을 부정하고 지켜봅니다.(3) 한 두 명의 문제가 아니라는 버그리포팅이 들어옵니다.(4) 부랴부랴 원인을 추측하고 핫픽스 코드를 짜기 시작합니다.(5) 개발을 마치고 일단 배포해 봅니다.(6) 그런데 해결될 줄알 았던 버그가 다시 보고됩니다.그렇게 상황은 2번으로 돌아가 이 디버깅루프를 몇 바퀴 돌고난 후에야 잠잠해집니다.하하… 개판이구나 — 출처:구글 이미지 검색허나 이미 많은 고객들이 불쾌한 UX를 겪고 난 뒤… 이대로는 도저히 구상하는 I/O의 큰 그림에 도달할 수 있을 것 같지 않아, 당분간 제가 CTO역할을 도맡아서 하려고 합니다. 벤 호로위츠가 쓴 Hardthing에서 C-level의 포지션이 비어있을 경우 진짜 적임자가 나타나기 전까지는 그 역할을 CEO가 직접 수행하기를 권장합니다. 이제까지 바쁘다는 핑계로 조직 부채, 기술 부채를 안고왔었는데 최근 Event3 사고를 겪으면서 이젠 이 부채들을 털어내고 나아가야 겠구나 결심하게 되었습니다. 직접 현장으로 다이빙해서 소프트웨어 엔지니어들과 함께 악전고투하기로 했습니다.린스타트업에서 말하는 5-why기법을 적용해보니. 근본적인 원인은 이것이였습니다.주먹구구식으로 Product Live service가 운영(operation)된다.엔지니어들의 코드 퀄리티가 낮아서가 아니었습니다. 알고리즘을 몰라서가 아니었습니다. 디자인 패턴을 몰라서도, 함수형 패러다임을 이해하지 못해서도, 동시성 문제를 몰라서도가 아니었습니다. 되려 I/O의 소프트웨어 엔지니어들의 CS 기본기는 나쁘지 않습니다. 저희는 엉클밥, 켄트백, 마틴파울러를 존경합니다.바보야, 문제는 코딩이 아니야!문제는 경제가 아니야, 바보야!저희 팀의 제일 큰 문제점은 그냥 예전 처럼 새로운 feature 코드를 찍어내는일이 Product Live service operation의 전부라는 사고방식입니다. 배포되는 코드가 얼마나 신뢰할만한지에 대한 고민은 전혀 없고 밀어내기식으로 다음 기능을 추가하는 데만 몰두했습니다. 실상 지금의 스위처에는 새로운 기능을 추가하기위해 코딩을 할때가 아니었는데 말이죠. 쿼리 속도를 높이기 위해 인덱싱을 고민 할 때가 아닌데 말입니다. 정작 Product Live service operation에 필요한 일들(tasks)을 수행하고 있지 않았기 때문에 이 문제가 발생한건데 말이죠.린스타트업의 MVP 관점을 포기하고 완벽한 제품을 내보낸다는 의미가 아닙니다. 그 Minimum Viable Product 조차 제대로 작동이 못시키는 문제를 바로잡기 위해서 입니다. 스크럼으로 조직 tasks를 관리해왔지만 소프트웨어팀은 devops로 거듭나야할 때가 왔음을 느꼈습니다.최소한의 검증 절차도 없이 버그가 담긴 소프트웨어가 고스란히 고객에게 전달되는 악몽을 더 이상 마주해선 안됩니다. 불편함을 겪는 고객을 위해서라도 경쟁력을 잃어가는 조직을 위해서라도 곁에서 힘들어하는 동료들을 위해서라도 소프트웨어팀은 변해야만 했습니다.devops 필요성 인지멤버들에게 제가 방금까지 이야기한 문제점을 전달하고 각자 devops가 무엇인지 공부하기로 했습니다. 일주일간 리서치를 마친 후 한 명씩 돌아가면서 devops가 무엇인지 발표하는 세미나를 진행했습니다. 결론부터 말해 devops 필요성에 대한 공감대 형성은 성공적으로 첫 걸음을 뗀듯 합니다. 모두들 세미나를 준비하면서 그동안 무엇이 문제인지 조차 모르는 상황은 벗어나 보였습니다. 한 명쯤은 “devops는 필요없습니다. 지금처럼 해도돼요!”라는 반응을 예상하기도 했는데, 모두가 겸손의 자세로 지금까지의 문제를 반성하고 변화의 필요성을 절감했습니다. 끊임없이 성장하려는 자세를 가진 I/O 멤버들에게 참 고맙습니다.우린 여기에서 어디쯤..?펌웨어 개발자는 우리의 현재 모습이 위의 그림에서 나오는 원숭이조차 안되는 것 같다고 고백 하기도 했습니다. 그만큼 I/O 소프트웨어팀은 변화를 갈망하는 단계로 무사히 넘어왔습니다. 성공적으로 devops의 필요성 공감대를 형성 시킬 수 있었던 요인은 slow-start 덕분인듯합니다. 초기 고객분들이 실험대상이 된것 처럼 말해 죄송하지만, 작은 규모로라도 Live를 진행하고 거기서 작게나마 사고를 치도록 내버려둔 환경이 devops의 필요성을 받아들이는 데 큰 역할을 했습니다.만약 처음부터 무리해서 스케일업을 시도했다면 그래서 감당할 수 없는 수준의 사고가 동시다발적으로 터졌다면 저희는 자멸하고 말았을 겁니다. 아니, 기다리는 많은 고객들의 기대감에 지레 겁먹고 최대한 소프트웨어 출시 일정을 늦췄겠죠. 그리고 그렇게 절벽에서 등 떠밀리듯이 제품을 출시해서 줄을 잇는 버그 리포팅을 받아보며 평정심을 잃고 말았을 것입니다. 그러나, 감당할 수 있는 수준으로 제품 판매수량을 조절했기 때문에 개발자가 문제를 직시해볼 기회를 가졌고 devops의 필요성은 조직에 쉽게 받아들여질 수 있었습니다.물론 devops 세미나를 진행하면서 안좋은 냄새(징조)를 맡기도 했습니다. 저에게는 행운이죠. 사전에 미리 문제를 파악할 수 있어서. 그 냄새는 도구만능주의 였습니다. devops 도달하기 위해서는 시중에 존재하는 다양한 tool들을 최대한 빠르게 도입해야 할것만 같은 느낌을 말합니다. devops tool들만 제대로 구축한다면 devops도 저절도 실현될것 같은 기대감에 젖습니다. 이 도구만능주의가 만연해지면 devops의 본질은 보지 못한 채 최신 tool 사용에만 집착하게되는 오류를 범하고 맙니다.다행이 I/O의 도구만능주의는 심각한 수준까진 아니고 누구나 초기에 충분히 실수할 수 있는 미약한 수준이었습니다. 사실 제가 예전 스타트업에서 스크럼을 도입할 때도 빠졌던 도구만능주의가 묘하게 겹쳐보여서 낌새를 비교적 빠르게 눈치 챌 수 있었습니다.출처 : 구글 이미지 검색devop는 문화와 운동(movement)입니다. 즉, 무형에 가까운 개념입니다. tool이 아니라 행위(action)와 사상(idea)에 역점을 둬야 합니다. tool은 그저 거들 뿐이죠.간단한 사고실험을 해보겠습니다. 모든 microservices의 설정들을 chef와 puppet으로 관리하고 뱀부나 젠킨스로 빌드-배포-리포팅 파이프라인까지 구축한 devops팀이 있다고 가정해 보겠습니다. 달리 말해, 이 팀은 커맨드 입력 한 번으로 방금 짠 코드를 고객에게 배포할 수 있습니다. 어느날 이 팀에 속한 개발자 A가 지난 일주일간 개발해온 피쳐를 지금 막 마무리 지었습니다. 이어서 A는 devops tool로 구축한 배포 파이프라인 이용해 아주 간단하게 새로운 기능을 업데이트 하기로 했는데요. 과연 괜찮을까요? 최신 devops tool로 중무장 했으니 문제가 없을 것 같습니다. 잠시 후 그렇게 배포된 기능을 써본 고객들이 컴플레인을 걸어옵니다. 잠시 화장실을 다녀온 엔지니어는 허겁지겁 hotfix 코드를 다시 짭니다. 그래도 괜찮습니다. A가 속한 팀은 최신 devops tool이 구축되어 있기 때문에 금방 hotfix를 재배포할 수 있으니까요. 그런데 이장면 어디서 익숙하지 않나요? 앞에서 소개한 디버깅루프와 비슷해 보입니다.출처 : 구글 이미지 검색과연 이게 devops일까요? tool들을 전부 사용하는게 진정 devops의 실현일까요?코드를 리뷰하지도 자동화된 테스트 코드를 실행해보지도 않은 상태에서 지속적 배포는 그저 똥을 더 자주 고객에게 전달하는 것과 다르지 않습니다.높은 품질의 제품은 보장할 수 없습니다. 그렇다면 우리는 무엇부터 해야할까요?Next Iteration저는 장황한 계획을 혐오합니다. 계획을 짜내느라 쏟는 에너지와 시간이 너무 아깝고 무엇보다 계획대로 진행될 확률이 낮기 때문입니다. 대신 저는 스타트업 환경에 맞는 방식으로 일하기를 선호 합니다. 비교적 긴 시간이 필요한 프로젝트 성격의 일을 할 땐 북극성의 위치만을 기억합니다. 쉽게 말해 우리가 산출해야하는 프로젝트 결과물만 생각합니다. 북극성까지 도달하는 정해진 길 따위는 없다고 가정합니다. 혹시 있었다 해도 그냥 잊어버립니다. 스타트업의 리스크는 워낙 변화무쌍하거든요.계획 대신 무던히 아래 두 가지 행동을 반복합니다.(1) 고개를 들어 몸이 북극성 향하도록 합니다.(2) 고개를 숙여 한 발짝 전진합니다.출처 : 구글 이미지 검색프로젝트가 끝날 때 까지 위의 두 가지 과정만을 반복하려고 합니다. 저는 이 과정을 baby step이라고 하는데요. 욕심내지 않고 작게 작게 한 번에 하나씩 차근차근 진행하는 방식입니다. 지금 내 딛은 한 걸음이 틀릴 수도 있습니다. 그러나 괜찮습니다. 한 걸음 나아간 다음에는 반드시 고개를 들어 내가 북극성과 가까워졌나 멀어졌나 확인하면 되거든요. 방향이 맞다는 판단이 서면 한 걸음 더 나아가고 틀린 예감이들면 방향을 조절하면됩니다. 만약 판단이 애매하면 더 끌리는 쪽을 택하면 됩니다. 단, 절대 바닥만을 주시한채 두 걸음 이상 걷지 않습니다.devops까지 도달하는 데 지름길은 전혀모릅니다. 하지만, devops라는 북극성은 저에게 명료하고 분명한 목표입니다. devops에 조금이라도 가까워지기 위해 지금 당장 해야하는 가장 중요한 일이 무엇인지 세미나를 진행하면서 그리고 세미나를 돌아보면서 치열하게 고민했습니다. 그렇게 집중하고나니 당장해야 하는 일 3가지는 다음과 같았습니다.(1)코드리뷰(2)테스트코드 작성(3)이슈 관리 프로세스이 세 가지의 일이 정답이 아닐 수 있습니다. 정답인지 아닌지는 얼마간 시간이 흐른 후에야 알 수 있겠죠? 다만, 저희는 늘 저희가 하던 방식대로 용기를 갖고 baby step을 무던히 수행해 나갈 것입니다. 다음화는 위의 세 가지 일을 진행하면서 겪은 시행착오를 공유해 보도록 하겠습니다.긴 글 읽어 주셔서 고맙습니다.#스위쳐 #Switcher #DevOPS #데브옵스 #개발자 #개발 #개발문화 #디버깅 #버그수정 #인사이트
조회수 189

살다 보면 미대를 나와서 다행이다 싶을 때가 있다

무심코 웹툰을 넘겨보다가저의 미대생 시절을 떠오르게 하는 작품을 만났습니다. 그렇다고 제가 이 작품에 등장하는 주인공처럼 그림을 끝내주게 잘 그린다거나, 사이다처럼 하고 싶은 말을 시원하게 내뱉는 성격이라거나 이 작가와 아는 사이라서 광고를 하려거나 하는 건 전혀 아닙니다. (정썸머 작가님 팬입니다!)출처: 다음 웹툰, 에스키스그저 그들처럼 졸업하면 대체 무엇을 하고 있을까? 내가 할 수 있는 일이 있기는 할까를 고민하며 불안한 미래를 두려워하던 평범한 조형예술 전공 미대생이었습니다.출처: 다음 웹툰, 에스키스졸업해서 미술을 한다는 건 대학원을 가든, 작업을 하든 사실상 돈을 버는 게 아니라 써야 한다는 의미가 맞습니다. 그래서 전업작가로 살고 있는 후배에게 존경을 표하는 이유도 그것이며, 조형예술과를 졸업하였지만 디자인을 하겠다고 선택했던 이유도 그것에 있었습니다. 그러나 그때의 저는 졸업 이후에 어떻게 살지도 걱정이었지만, 발등에 떨어진 더더더더더더더더 큰 걱정이 하나 있었는데.... 그건 바로 졸업이었습니다.보통 미대생들은 자신의 작업을 교수님들께 설명하고 작업의 의도와 작품의 구성이 타당성이 있다고 느껴져야 졸업심사를 통과하게 되는데, 남들은 다 붙는다는 졸업심사를 저.만.혼.자.떨.어.졌.습.니.다. 그때의 기분은 정말 인생이 끝난 것처럼 절망적이었지요. 그러나 이내 마음을 고쳐먹기로 했습니다.나를 키운 건 팔 할이 오기그러고 나니 신기하게도 오기가 생기더군요. 졸업장 따위 없이도 나는 꼭 성공해 보이겠다고 주먹을 꼭 쥐었었더랬지요. 그러나 그때의 저는 아직 진짜 하고 싶은 것이 없었습니다. 그렇다고 마냥 하고 싶은 것을 찾겠다며 시간을 보낼 여유도 없었지요. 그래서 일단 부딪쳐서 배워보기로 했습니다. 지금 내가  디자인을 배워두면 나중에 하고 싶은 것이 생겼을 때 도움이 되겠지 하는 마음으로 아주 작은 디자인 회사의 시작부터 함께하게 되었고, 많은 기쁨과 아픔들이 있긴 했지만, 결과적으로 저는 그 회사를 통해서 아이디어를 얻고 지금의 제 회사인 스트레스컴퍼니를 시작할 수 있게 되었습니다.스트레스컴퍼니의 첫번째 상품, 쌍심지를 켜고 스트레스를 태우는 분노캔들뒤돌아서 생각해봐도 지금까지 살아오면서 학교 이름 때문에 덕을 본 적은 없는 것 같습니다. 그 학교 타이틀보다는 오히려 디자인을 배워뒀던 것이 저한테는 더더더더더 큰 힘이 되었는데요. 그럼에도 8년 만에 졸업을 해야겠다고 결심하게 되었던 것은 학비를 대주셨던 부모님께 학사모를 씌워드려야겠다는 보은의 마음과, 방황의 연속이었던 저의 작업에 마무리를 짓고 싶었기 때문이었습니다. 그리고 유학을 가려니 다시 학부를 새로 하고 싶진 않아서였기도 했습니다. 그러나 시간은 속절없이 흐르고 흘러 결국 계획했던 유학은 가지 못했지만, 심리학을 공부하고 싶어서 대학원에 가야겠다 싶었을 때 지원할 수 있게 되어서 그래도 졸업하길 잘했다는 생각을 했습니다.살다 보면 미대를 나와서다행이다 싶을 때가 종종 있습니다그건 바로 새로운 것을 시도하는 것이 두렵지만은 않다고 느낄 때였는데요. 학교 다닐 때 나만의 철학을 담은 작업을 하겠다며 나라는 인간에 대한 고민과, 세상에 대한 고민과, 내가 말하고 싶은 세상에 대한 고민까지 온갖 방황과 삽질을 두루두루 겪었다 보니 인생을 살다가 어떤 문제가 닥쳐왔을 때, 남들 다 하는 방법이 아닌 나만의 방법으로 문제를 해결하고 있더군요. 그게 왜 때문일까 곰곰이 생각해보니, 미대 다닐 때 남들과 다른 나만의 작업을 하겠다고 항상 고민하고 시도하고 실패하는 연습이 되어있었다는 것을 알게되었습니다.미대에서는 그림을 더 잘 그리도록 연습하는 드로잉 수업도 있지만, 그림이라는 매체를 통해서 자신의 생각을 표현할 수 있도록 만드는 수업이 더 많습니다. 좋은 작업을 한다는 것은 그림을 실제와 똑같이 그려낸다는 뜻이 아니기 때문입니다. 그런 수업들은 보통 어떤 주제를 준 후, 그 주제에 대한 자신의 생각을 다양한 매체를 통해 표현한 후 발표하는 형태로 진행되는 경우가 많습니다. 연습을 통해 그와 같은 사고 과정이 익숙해지는 고학년이 되면 온전히 자신의 생각을 작업으로 표현하게 되지요.제가 다녔던 학교는 1학년 때 파운데이션이라는 과정을 1년 내내 했습니다. 그때는 대체 왜 골판지로 오렌지를 만들어야 하고, 돌덩이를 깎아서 작업을 해야 하는 거냐며 구시렁대었지만, 며칠 밤을 새우고 나면 어느새 우리들의 손에는 골판지와 오공본드로 만든 탱글탱글한 오렌지가, 멋진 돌조각이 놓여있었습니다. 덕분에 저는 철사로 뜨개질도 해봤고, 종이로 구두도 만들고, 알루미늄 고리들을 엮어서 가발도 만들고, 고무판으로 건물도 만들어봤네요. 하하.(사진이 남아있지 않아서 너무나 아쉽습니다.)그 많은 과제들 중에서도 단연 최고는 충격과 모험이었는데, 그건 말 그대로 자신이 생각하는 충격과 모험에 대한 경험을 작업으로 표현하는 과제였습니다. 그때 우린 정말 온갖 충격적인 짓들을 서슴지 않고 감행했었는데, 그 과제를 위해서 추운 겨울에 여름옷 입고 등교하기, 삭발하기 등은 오히려 무난한 편이었고, 수업시간에 서서 오줌을 쌌던 언니와 화장실 변기에 밥을 비벼먹었던 친구의 이야기는 아직도 잊히지가 않네요...(잊고싶...)파운데이션 과정에서 만드는 작업들의 예 / 출처: 한국예술종합학교충격과 모험 수업에서 저는 전교생이 보는 학교 게시판에 익명으로 제 자신을 디스 하는 글을 올리는 사이버 테러를 감행했었습니다. 의도적으로 쓴 악의적인 글에 동기들이 남희는 그런 사람이 아니라고 두둔해주는 답글을 보며 얼마나 뿌듯했었는지 모릅니다. 씨익 :-)그때는 그저 과제니까 이게 나중에 무슨 도움이 될지 아닐지도 모르고 그냥 해내기에 급급했지만, 지금 와서 생각해보니 이러한 경험들은 어디서도 쉽게 할 수 있는 것이 아니었습니다. 그렇게 오로지 나만의 것을 만들어 내기 위해 치열하게 고민했던 시간들은 언제 어디서 어떤 문제가 터질지 모르는 스타트업을 하는 제게 아주 큰 도움이 되었습니다.저는 아티스트를 꿈꾸는 디자이너이자디자이너를 꿈꾸는 아티스트입니다.데쓰노트를 만들어서 경찰서에 갖다주겠다고 만든 스팸전화번호부사장님 때문에 스트레스를 받고 그 현실에서 벗어나고자 스트레스컴퍼니를 구상했던 것도, 나를 화나게 만들었던 스팸문자를 모아서 데쓰노트를 만들겠다며 전화번호부 책을 만든 것도, 스트레스를 눈에 보이게 만들어서 태워버리겠다며 분노 캔들을 만든 것도 전부 내게 예고 없이 닥쳐온 문제들을 남들이 다들 하는 방법이 아닌 나만의 새로운 방법으로 해결해보고자 접근한 덕분에 얻어진 결과물입니다. 대학 때 수없이 연습해왔던 바로 그것들을 제 인생에 적용한 것이지요.그러나 디자인은 지금의 제 생각을 표현할 수 있는 가장 좋은 방법일 뿐, 제 생각을 더 잘 표현할 수 있는 다른 방법이 있다면 저는 그것으로 또 다른 무언가를 만들어낼 것입니다.출처: 다음 웹툰, 에스키스자, 그럼 이제 다시 첫 질문으로 돌아가서, 지금 누군가 제게 "미대를 졸업하고 내가 할 수 있는 일이 있긴 한 걸까?"라고 묻는다면, 이렇게 대답해주겠습니다.너는 무엇이든 할 수 있어 그러니 모든 미대생 여러분, 지금 내 미래가 어떻게 될 것인지 불안해하고 있다면, 그 마음을 잠시 내려놓고 자신들이 이미 갖고 있는 엄청난 문제 해결 능력을 믿길 바랍니다. 당신들이 미대를 입학하기 위해 공부와 미술을 병행해가며 고생 고생했던 시간, 비싼 등록금을 내면서 과제를 위해 재료비를 써가며 남들과 다른 나만의 작업을 만들고자 고민했던 시간들은 절대로 헛되지 않았으며, 앞으로 살아가는데 피가 되고 살이 될 것이니까요. 미대를 졸업했다는 것은 앞으로 인생을 살면서 어떤 황당한 일이 닥치더라도 당신만의 방법으로 멋지게 해결해낼 수 있는 능력을 갖게 되었다는 말입니다. 세상의 모든 미대생들을 응원하겠습니다.스트레스컴퍼니의 모든 상품은 스트레스컴퍼니샵에서 구매 가능합니다.매달 마음을 나누는 모임을 진행합니다. 함께해요.7월 모임 신청하기ⓒ스트레스컴퍼니 - 무단 전재-재배포 금지#스트레스컴퍼니 #심리스타트업 #스트레스관리 #서비스소개 #제품소개
조회수 1026

[인공지능 in IT] AI, 넌 나만 바라봐

기술 회사 마케터로서, 특히 인공지능이라는 고도화된 기술을 다루는 회사에서 지내다 보면 참 재미있는 일이 많다. 기본적으로 엔지니어들이 다루고 있는 기술 컨셉과 역사는 물론, 가끔 코드도 공부해야 한다. 반강제적으로 (기술을 배우며) 성장하는 기분이다. 긍정적으로 생각하면, 비(非)엔지니어로 누릴 수 있는 특별한 혜택이지만, 여러모로 힘든 것도 사실이다.가장 고달픈 점이라면, '기술'이라는 눈에 보이지 않는 무형의 자산을 매력적으로 보일 수 있도록 설명하고, 이를 매출까지 연결하는 과제를 풀어야 하는 점이다. 앞서 언급한 기술 공부도 빼놓을 수 없다. 지금 다루고 있는 인공지능은 깊게 들어갈수록 끝이 없는데, 기술이라는 것은 나날이 변화하고, 익숙해졌다 생각하면 새로운 친구를 데리고 등장한다. 정말 환장할 노릇이다. 어찌되었건, 훌륭한 동료들과 함께 고도의 기술을 다룰 수 있는 환경을 축복이라 생각하며, 매번 마음을 다잡는 중이다.현재 필자는 인공지능 기술을 '팔고' 있다. 하지만, 정작 인공지능 기술을 '활용'하는 것은 또 다른 이야기다. 실제로 한번도 인공지능을 적용한 마케팅 솔루션을 다뤄보지 못했고, 엔지니어에게 요청한 경험도 없다. 아직까지 (회사는) 'B2B' 모델에 집중해, 굳이 제품을 사용하는 최종 소비자에게 맞춰 나갈 필요도 없다. 다만, 모바일 앱이나 가정용 기기 등 개인 사용자가 사용할 수 있는 제품을 팔아야 한다고 가정했을 때, '어떤 기술을 적용해야 (인공지능을) 타겟에 맞춰 설명할 수 있을까'라는 고민은 꼬리표처럼 따라 다닌다.< 마케팅에도 인공지능을 이용할 수 있지 않을까? >마케팅에는 굉장히 많은 이론이 있다. 'STP', '4P', 'MOT', 'SWOT' 등…. 나열하면 정말 끝이 없다. 이 모든 이론과 전략의 공통된 목표는 하나다. 소비자가 원하는 것을 정확히 파악해 (제품 또는 서비스를) 판매하는 것이다. 말이 쉽지 마케팅 전문가이든, 소프트웨어 엔지니어이든, 아직 모두가 고민하고 풀고 있는 어려운 문제다. 소비자들은 도대체 어떤 것을 원하는 것인지 도무지 정답이 없다. 그리고 필자는 여기에 한가지를 더 고민한다. (인공지능 기술 개발 업체 마케터로서) '인공지능을 활용해 정답을 찾아내는 방법은 없을까?'라고 말이다.현재 인공지능 기술로 접근할 수 있는 가장 근접한 해답은 '개인화'다. 다만, 지금도 많은 기업이 개인화 전략을 사용한다. 하지만, '개인화(Personalization)'와 '맞춤화(Customization)'라는 차이가 있다. 인공지능 기술 측면에서, 개인화는 고객이나 기술을 사용하고 있는 대상을 일부 집단으로 이해하지 않는다. 하나하나를 '개별적인 사람'으로 인식한다. 그 사람의 출퇴근 경로나 주로 방문하는 식당은 물론, 좋아하는 음악 장르, 구매 제품에서 얻고자 하는 가치, 더 나아가 감정 상태까지 개인마다 다른 특성을 정확하게 파악할 수 있어야 한다.반면에 맞춤화는, 개인화에 따른 결과 혹은 비슷한 특성을 가진 집단의 요구와 요청에 기반한다. 때문에 맞춤화는 반드시 개인화를 동반할 필요가 없다. 때문에 사용 집단을 대상으로 필요, 요구, 혹은 수요를 만족시키는 것을 주로 의미해 1명의 개인에게 불필요한 정보를 전달할 수 있다.지금과 같은 인공지능 기술이 없던 시절에도 방대한 양의 데이터를 활용한 마케팅 자동화로 고객에게 상품 관련 메세지를 전송하는 프로모션은 존재했다. 하지만, 이제는 마케팅 자동화에 인공지능이라는 살을 붙여 '개인화'와 '예측 분석'을 시도할 수 있도록 바뀌었다.아주 간단한 예를 들어보자. 필자는 축구를 좋아하고, 그중 아스날이라는 팀을 좋아한다. 여기에 리그 개막은 한달 정도 남은 여름에 시작된다고 가정하자. 기존 일반적인 마케팅 솔루션을 적용한 기업은 필자의 검색 히스토리, 혹은 현재 필자가 직접 입력한 개인정보와 비슷한 그룹의 다른 고객 데이터를 이용해 상품을 추천한다. 때문에 그저 현재 할인판매 중인 '긴팔 리버풀 유니폼'을 추천할 수 있다. 하지만, 인공지능을 적용해 개인화 정보를 활용하면, 이미 필자 이메일로 '반팔 아스날 유니폼 구매 링크'와 지난 시즌 아스날 유니폼을 20% 할인 가격에 구매할 수 있는 프로모션 정보를 추천할 수 있다. 이렇듯 각 개인에게 꼭 맞는 정보라면, 소비자도 자연스레 지갑을 열 수밖에 없다.명심해야 할 것은 '추천'과 '스팸'은 한 끗 차이라는 사실이다. 개인에게 '필요한 정보'는 추천이고, '일반적인 쓸데없는 정보'는 스팸이라는 것을 기억해야 한다.이호진, 스켈터랩스 마케팅 매니저조원규 전 구글코리아 R&D총괄 사장을 주축으로 구글, 삼성, 카이스트 AI 랩 출신들로 구성된 인공지능 기술 기업 스켈터랩스에서 마케팅을 담당하고 있다#스켈터랩스 #기업문화 #인사이트 #경험공유 #조직문화 #인공지능기업 #기술기업
조회수 20294

보통주와 우선주, 뭐가 더 좋을까?

그투그 #7 우선주 VS 보통주, 어디에 투자할까?우선주는 의결권이 없는 대신 보통주보다 먼저 배당을 받을 수 있는 주식입니다.의사결정에 큰 영향을 미치는 대주주가 아니고서야우선주를 사는 게 이득이겠군. 우선주를 사야지!라고 생각하셨나요? 저도 그랬습니다. 하지만 일반적으로 코스피 시장에서 거래되는 주식을 보면 보통주가 우선주보다 비싸요.보통주의 거래량이 우선주의 거래량보다 훨씬 더 많아 현금화하기 쉬운 데다, 우리나라 기업은 배당성향이 낮아서 우선주를 가지고 있더라도 배당수익이 얼마 되지 않기 때문이죠. 전 세계 기업들이 당기순이익의 40% 정도를 배당하는 데에 비해 우리 나라 기업은 평균적으로 당기순이익의 20%만을 배당하고 있거든요.그런데 미래가 불투명한 초기 기업에 투자하는 경우, 보통주에는 없는 우선주만의 권리가 투자 위험을 낮춰 주기도 합니다. 먼저 우선 주는 보통주보다 우선 배당권이 있어서 투자 원금의 일부를 배당으로 돌려받을 수 있습니다. 투자 원금 손실의 위험을 조금이나마 낮춰줄 수 있죠.또, 상환권이 있는 상환우선주에 투자하면 우선 배당에 더불어 회사의 전망이 어둡다고 판단될 때에 현금으로 상환을 요청할 수도 있습니다. 전환권이 있는 전환우선주라면 이 회사가 상장할 것 같다고 판단될 때 보통주로 바꿀 수 있어요. 앞서 이야기했듯 상장한 기업의 경우, 보통주가 우선주보다 비싸게 거래됩니다. 우선주는 빼고 보통주만 상장하는 경우도 많고요.이러한 이유로 엔젤투자자나 벤처캐피털(VC)은 흔히 RCPS(Redeemable Convertible Preferred Stock)라고 불리는 상환전환우선주의 형태로 초기기업에 자금을 조달합니다. 우선 배당권과 상환권, 전환권이 모두 포함되어 있어 투자 위험을 최소화할 수 있기 때문이죠. 그런데 우선주라고 다 같은 우선주가 아니고, 상환전환우선주라고 다 같은 상환우선주가 아닙니다.세세한 조건에 따라 내가 받을 수 있는 배당금도, 상환권이나 전환권을 청구할 수 있는 기간도 달라질 수 있어요. 영 복잡하고 어려우니 와디즈에서 실제로 진행되었던 상환전환우선주를 예로 들어 볼까요?1. 우선주 존속기간: “세상에 영원한 건 없죠.”먼저 우선주 존속기간은 우선주의 권리의 유효기간을 말합니다. 존속기간을 따로 두지 않는 때도 있습니다. 하지만 존속기간을 사전에 설정하는 경우, 그 기간이 지나면 보통주로 자동 전환됩니다. 다만 우선주에 약속된 최저배당이 지켜지지 않았으면 배당을 완료할 때까지 존속기간을 연장하기도 합니다.2. 상환권: “돈으로 갚아!!!”상환우선주(상환전환우선주)는 채권처럼 상환을 요청할 수 있는 상환권이 부여됩니다. 상환을 청구할 수 있는 청구 기간과 연장 가능 여부를 미리 설정합니다. 청구 기간을 연장할 수 있도록 정했다면, 이사회와 합의하여 청구 기간과 우선주 존속기간을 늘릴 수 있습니다.상환 시에 몇 프로의 이율로, 어떻게 상환할지, 그동안 주주로서 받았던 배당액을 제외할지 등등의 세세한 조건들을 설정해둡니다. 통상적으로 스타트업에 투자하는 기관투자자들은 연 6~8% 단리로 상환조건을 설정하곤 합니다. 3. 전환권: “보통주로 바꿀래.”일반적으로 전환우선주(상환전환우선주)에는 우선주를 보통주로 전환할 수 있는 전환권이 부여됩니다. 상환권과 마찬가지로 전환권의 청구 기간과 연장 가능 여부를 사전에 정해둡니다. 보통주와 어떤 비율로 전환할지 전환비율도 미리 정해두죠. 상환권과 전환권은 투자자가 행사할 수도 있지만, 사전에 정한 조건에 따라 기업 측에서 요청할 수도 있습니다.4. 우선배당권 : “나를 잊지 말아요~”기업은 사전에 약속한 최저배당 이율에 따라 우선주에 먼저 배당하고, 보통주에 배당하게 됩니다. 보통주까지 배당하고 잔여 배당가능 이익이 남아 있는 경우 한 번 더 배당해요. 이때 보통주와 똑같이 다시 한번 배당에 참가할 수 있는 게 참가적 우선주입니다.비참가적 우선주는 남은 재원에 대해 배당에 참여할 수 없고, 남은 이익은 모두 보통주에 배당됩니다. 누적적 배당이란 특정 회계연도에 경영성과가 나빠 배당을 받지 못하거나 약속한 최저배당을 다 받지 못한 경우 다음 결산기에 부족분까지 지급하는 것을 말합니다.반대로 비누적적 우선주는 다음 결산 때 아무리 남은 돈이 많아도 올해 받지 못한 배당을 받을 수 없습니다. 우선주는 비참가적, 누적적 배당을 실시하는 경우가 일반적입니다. 투자자로서는 참가적, 누적적 배당이 더 유리하겠죠?이번 주에는 비상장 주식에 투자할 때 투자 위험을 최대한 줄일 수 있는 우선주만의 특별한 권리들을 알아보았어요. 상환전환우선주의 예시를 들었지만, 와 디즈에서 열리는 모든 우선주 프로젝트의 투자설명서를 내려받으시면 <우선주의 주요 권리> 항목에서 우선주의 세세한 조건을 살펴보실 수 있어요.하지만 우선주의 권리보다 더 중요한 건? 빠르게 성장할 회사를 고르는 거겠죠! 다음 주에는 내가 투자하려는 회사가 앞으로 성장할 회사인지, 지금 이 회사의 주식을 사도 될지 제일 중요한 미래를 예측해보는 법을 알려드릴게요. 다음 주에 만나요~ 안녕~글 김영아와디즈의 막내 투자 콘텐츠 디렉터(CD)입니다. 우리의 작은 돈이 필요한 곳에 모여 세상을 바꾸는 꿈을 꾸고 있어요. 아 물론 돈도 벌면서요. 더 많은 ‘우리’에게 크라우드 펀딩을 알리기 위해 어렵고 복잡한 투자 이야기를 쉽고 재미있게 풀어내는 일을 합니다.그림 이윤경와디즈의 브랜드 디자이너입니다. 좋은 '사람' 와디즈가 좋은 '브랜드'로 무럭무럭 자라나도록 물을 주고 있어요. 더 많은 사람들의 시작을 돕기를, 그리고 더 재미있는 세상을 만들어 가기를 기대하고 있습니다.#와디즈 #금융지식 #서비스소개
조회수 2779

Node 서버로 Slack 메신저 자동화하기

Overview백엔드 업무를 하면 데이터 요청과 CS문의를 자주 받습니다. 날짜만 다를 뿐 같은 유형의 문의가 대부분이죠. 결국 반복적인 업무를 효율적으로 처리할 수 있는 방법을 고민했고, 사내 메신저로 사용하는 Slack의 몇 가지 API를 사용하기로 했습니다.1. 알림봇 만들기비즈니스 로직을 만들다 보면 정해진 시간에 맞춰 작업을 해야 하는 경우가 발생합니다. Slack 메신저에 로그온한 상태에서 스케줄러를 이용해 지정한 시간에 Slack 메세지를 전송해보겠습니다.1)Slack API 유저토큰 받기Slack API에 사용할 해당 계정의 토큰을 받아야 합니다. Slack 가입 절차 및 채널 생성은 생략하겠습니다.https://api.slack.com/custom-integrations/legacy-tokens 접속합니다.Legacy tokens 메뉴에서 아래로 스크롤을 내려 토큰 생성버튼을 누릅니다.계정 패스워드를 입력하여 확인하면 토큰을 생성할 수 있습니다.생성된 토큰을 복사하여 저장합니다.2)Node.js를 이용한 알림봇 구현2-1.Node.js 설치Node.js 다운로드 해당 사이트에서 운영체제 환경에 맞는 파일을 다운받아 설치2-2.프로젝트 생성해당 프로젝트 폴더로 이동 후 명령어 실행$ npm init --yes // package.json 파일 생성2-3.Slack 연동2-3-1. slack-node 모듈 설치$ npm install slack-node --save2-3-2. 유저토큰을 이용하여 해당채널에 메세지 전송const Slack = require('slack-node'); // 슬랙 모듈 사용 apiToken = "발급받은 유저토큰"; const slack = new Slack(apiToken); const send = async(message) => { slack.api('chat.postMessage', { username: 'dev-test', // 슬랙에 표시될 봇이름 text:message, channel:'#general' // 전송될 채널 및 유저 }, function(err, response){ console.log(response); }); } send('메세지 내용'); 지정한 채널에 메시지가 발송됩니다. 하지만 이와 같은 방법은 유저 토큰이 공개 코드에 노출되기 때문에 보안이 취약할 수 있습니다. 유저 토큰이 필요 없어도 해당 채널에 URL을 생성하는 WebHooks API를 이용하여 메시지를 전송해보겠습니다.3) Incoming WebHooks APIWebHooks는 유저 토큰 대신 Webhook URL을 생성해 HTTP 통신으로 Slack 메세지를 전송할 수 있습니다. 다양한 메시지 형식을 지원하고 게시할 사용자 이름 및 아이콘 등을 통합적으로 관리할 수 있는 장점을 가지고 있습니다.3-2. Webhook URL 생성하기Slack 해당채널에서 Add an app 클릭검색필터에 WebHooks 검색Incoming WebHooks 추가채널 선택 후 Incoming WebHooks 생성생성된 Webhook URL 복사하여 저장해당채널에 생성되었는지 확인봇이름 및 아이콘등 기본 설정 변경하여 저장curl 사용 예제$ curl -s -d "payload={'text':'메세지 내용'}" "Webhook URL"Webhook URL 사용 중인 모든 메시지는 통합적으로 기본 설정이 변경된 걸 확인할 수 있습니다.다양한 형식의 메세지를 전송해보겠습니다.const Slack = require('slack-node'); // 슬랙 모듈 사용 const webhookUri = "Webhook URL"; // Webhook URL const slack = new Slack(); slack.setWebhook(webhookUri); const send = async(message) => { slack.webhook({ text:"인터넷 검색 포털 사이트", attachments:[ { fallback:"링크주소: ", pretext:"링크주소: ", color:"#00FFFF", fields:[ { title:"알림", value:"해당링크를 클릭하여 검색해 보세요.", short:false } ] } ] }, function(err, response){ console.log(response); }); } 다양한 형태의 메시지를 전송할 수 있습니다.4) Schedule 연동이제 스케줄러를 이용하여 지정한 시간에 메세지를 전송해보겠습니다.4-1. node-schedule 모듈 설치node-schedule는 Node.js 작업 스케줄러 라이브러리입니다.$ npm install node-schedule --savenode-schedule 코드 작성const schedule = require('node-schedule'); // 스케줄러 모듈 사용 // rule-style 사용 var rule = new schedule.RecurrenceRule(); rule.dayOfWeek = new schedule.Range(3,4); rule.hour = 19; rule.minute = 50; schedule.scheduleJob(rule, function(){ console.log('rule 방식'); }); // cron-style 사용 schedule.scheduleJob('50 19 * * *', function(){ console.log('cron-style 방식'); }); 취향에 맞는 스타일로 사용하면 됩니다.5) 지정 시간에 메세지를 전송하는 알림봇을 작성해보겠습니다.const Slack = require('slack-node'); // 슬랙 모듈 사용 const schedule = require('node-schedule'); // 스케줄러 모듈 사용 const webhookUri = "Webhook URL"; // Webhook URL const slack = new Slack(); slack.setWebhook(webhookUri); const send = async(message) => { slack.webhook({ text:message, attachments:[ { fallback:"구글드라이브: ", pretext:"구글드라이브: ", color:"#00FFFF", fields:[ { title:"[알림]", value:"해당링크로 접속하여 작성해 주세요.", short:false } ] } ] }, function(err, response){ console.log(response); }); } schedule.scheduleJob('5 19 * * *', function(){ send('업무보고 보내셨나요?'); }); 업무보고 시간을 미리 알려주는 알림봇2. 대화봇 만들기업무 문서는 주로 구글 독스와 같은 온라인 문서로 관리하고 있습니다. 하지만 매번 구글 드라이브에서 문서를 찾는 건 정말 귀찮은 일입니다. 번거로운 건 딱 질색입니다. Slack API를 이용해 관련된 키워드를 입력하면 링크 주소를 바로 받을 수 있는 대화봇을 만들어 보겠습니다.1) Slack API Bots 토큰 받기Slack API에 사용될 Bots 토큰을 받아야 합니다.https://{App Name}.slack.com/apps 에 접속합니다.Bots 추가Bots Api 토큰을 복사해 저장합니다.설정한 봇이름으로 Apps 영역에 자동으로 추가됩니다.2) 구글독스 대화봇 코드 작성2-1. botkit 모듈 설치$ npm install botkit --save2-2. 코드 작성const botkit = require('botkit'); // 봇 모듈 사용 const Slack = require('slack-node'); // 슬랙 모듈 사용 const controller = botkit.slackbot({ debug: false, log: true }); const botScope = [ 'direct_message', 'direct_mention', 'mention' ]; controller.hears(['업무보고'], botScope, (bot, message) => { bot.reply(message, '업무보고 링크주소'); }); controller.hears(['가이드', 'guide', '튜토리얼'], botScope, (bot, message) => { bot.reply(message, '가이드 링크주소'); }); controller.hears(['api', '명세서'], botScope, (bot, message) => { bot.reply(message, 'api명세서 링크주소'); }); controller.hears(['일정', '일정관리'], botScope, (bot, message) => { bot.reply(message, '일정관리 링크주소'); }); controller.hears(['비품', '비품정리'], botScope, (bot, message) => { bot.reply(message, '비품관리 링크주소'); }); controller.spawn({ token: '발급받은 봇 토큰' }).startRTM(); 지정한 키워드를 입력하면 해당 링크가 수신 됩니다.3) 데이터문의 대화봇 코드 작성데이터 요청 시 결과 데이터를 보내주는 대화봇을 만들어 보겠습니다. 일단 먼저 데이터문의 전용 Bots을 생성합니다.3-1. Python 연동 요청한 데이터는 Mysql 데이터를 조회해서 전송합니다. 그러면 Mysql 을 연동해야겠죠? Node.js에서도 직접 mysql 연결할 수 있지만, 기존 프로젝트가 Python으로 구현되어 있어 Python을 실행해 필요한 데이터를 추출해보겠습니다.3-2. python-shell 모듈 설치Node.js에서 Python 실행가능하도록 모듈을 설치$ npm install python-shell --save3-3. Mysql Sample Table3-4. 회원테이블에 저장된 가입일시 기준으로 몇일전에 가입한 회원을 추출하여 전송하는 코드 작성해 보겠습니다.const botkit = require('botkit'); // 봇 모듈 사용 const Slack = require('slack-node'); // 슬랙 모듈 사용 const ps = require('python-shell'); // 파이썬 쉘 모듈 사용 // 몇일 전 날짜 구하기 function getDaysAgo(dayNo = 0) { let nowDate = new Date(); let tempDate = nowDate.getTime() - (dayNo * 24 * 60 * 60 * 1000); nowDate.setTime(tempDate); let getYear = nowDate.getFullYear(); let getMonth = nowDate.getMonth() + 1; let getDay = nowDate.getDate(); if (getMonth < 10 xss=removed xss=removed xss=removed xss=removed xss=removed xss=removed xss=removed xss=removed xss=removed xss=removed xss=removed xss=removed xss=removed xss=removed xss=removed> 3-5. Python 코드 작성 # -*- coding: utf-8 -*- import sys import pymysql // mysql 접속 db = pymysql.connect('hostname', user='', passwd='', db='', charset='utf8') cursor_db = db.cursor() exe_query = "SELECT MEMBER_NAME FROM MEMBER_INFO WHERE MEMBER_REGIST_DETE >= '{}' ORDER BY MEMBER_NO ASC ".format(sys.argv[1]) cursor_db.execute(exe_query) all_rows = cursor_db.fetchall() for idx, row in enumerate(all_rows): print(row[0])     지정한 며칠 전에 가입한 회원 이름이 전송됩니다.   로그도 정상적으로 출력됩니다. 3. Node.js 프로세스 관리를 위한 pm2 모듈 설치 Node.js 는 비동기 I/O를 지원하며 단일 스레드로 동작하는 서버입니다. 비동기식 방식이지만 처리하는 Event Loop는 단일 스레드로 이루어져 있어 처리 작업이 오래 걸리면 전체 서버에 영향을 줍니다. 그래서 pm2를 이용해 프로세스별로 상태를 관리해야 합니다. 1) pm2 모듈 설치$ npm install pm2 -g2) 자주사용하는 pm2 명령어 pm2 list -> 실행중인 프로세스 확인pm2 start {node 파일} -> 시작pm2 stop {id or App name} -> 중지pm2 delete {id or App name} -> 삭제pm2 show {id or App name} -> 상세정보pm2 restart {id or App name} -> 재시작pm2 kill -> pm2 종료pm2 logs {id} -> id 앱의 로그 확인 3) pm2 실행화면$ pm2 start bot.js   프로세스별로 앱 이름, 버전, 상태, cpu 및 memory 사용량이 표시됩니다.$ pm2 show 0   해당 프로세스의 상세 정보를 확인할 수 있습니다. Conclusion 지금까지 Node.js 로 유용한 Slack 메신져 API를 알아봤습니다. 반복적인 업무를 하나씩 줄이다 보면 분명 일의 능률을 높아집니다. 하지만 무분별한 자동화는 서버의 부하를 증가시키기 때문에 꼭 필요한지 확인하고 선택하길 바랍니다. 오늘은 여기까지 글곽정섭 과장 | R&D 개발1팀kwakjs@brandi.co.kr브랜디, 오직 예쁜 옷만  

기업문화 엿볼 때, 더팀스

로그인

/