스토리 홈

인터뷰

피드

뉴스

조회수 874

스타트업을 시작하시려는 분들에게

 첫 글에서 제가 스타트업을 깟음(?)에도 불구하고, 스타트업을 하기로 결심! 을 하셨다면 그만큼 큰 결정을 내리신 거라 생각하고, 저도 지금부터 아는 바에 대하여 알려드리기 위해서 최선을 다하겠습니다. 막상 "나 이제 할 거야!!"라고는 하셨는데, 처음부터 엄청나게 막막하실 겁니다. 그쵸? 뭘 어떻게 시작해야 할지, 뭐부터 해야 할지, 나는 누구인지, 여긴 어디인지 그럴 겁니다. 저도 그랬어요 :). 그래서 이번엔 어떤 것들을 가지고 시작해야 하는지 간단히 설명해 드리며 시작하려고 합니다.많은 분이 이야기하시는 스타트업을 시작하기 위해서는 주요 3요소를 알아야 하는데 이는, 1. 서비스를 개발하고, 어느 정도 성장할 때까지 필요한 자본력(Capital). 2. 같이 고생할 파티원들 (Teammates). 3. 이거 하나면 페이스북도 정복할 수 있을 것 같은 아이디어! (Idea).라고 들 합니다. 가장 기본적인 3요소라고 하죠. 그리고 많은 분이 저것 중 2가지 요소만 가지고 있어도 충분히 시작할 수 있는 원동력이 있다고 합니다. 이에 대하여는 저도 적극적으로 동의하는바 입니다. 정말 3개 중 하나도 없으면 시작할 이유가 없거든요… 그래서 일단 저 3요소들이 되었다 싶은 젊은 청년 창업가 분들은 “우리는 이제 다 됐다! 두려워질게  없다!!!”라고 생각하시는 분들이 있어서 바로 이 장을 마련한 겁니다! ㅎㅎ그럼 3가지가 다 있다! 고 생각하신 분들은 이런 생각은 해보신 적이 있나요?  “혼자서 이것저것 다할 수 있을까?, 팀원을 모으면 같이 하는 사람들의 월급/ 지분관리는 어떻게?”  “개인사업자 등록? 법인 설립은 어떻게?”  “개발자/기획자/디자이너랑 다들 친하게 잘 지낼 수 있을까?”  “하면서 돈 다 떨어지면 어떻게 하지?”  “사무실은 어디에다 둘 거야? 아니 사무실이 필요할까?”  “나는 그러면 개발(또는 디자인 또는 기획 또는 경영)만 하면 되는 건가?”   등등 기타 무궁무진한 질문들이 많을  것이라고 예상이 됩니다…일단은 다음장에서 하나하나 제 경험과 견해를 하나하나  말씀드리도록 하겠습니다!#코인원 #블록체인 #기술기업 #암호화폐 #스타트업인사이트
조회수 1277

앱 어트리뷰션 가이드 – 애플 서치 애드 트래킹 실습

새로 등장한 광고 매체들 중에서 올해 하반기 가장 주목 받는 대표적인 매체가 애플 서치 애즈(Apple Search Ads)입니다. 앱 스토어(App Store)의 유일한 광고 상품이기 때문이지요. iOS 플랫폼에서 유료 고객이 많은 헬스케어, 프리미엄 브랜드, 여행 등의 카테고리에서는 특히 서치 애즈를 진지하게 받아들이는 분위기입니다.애플 서치 애즈가 새로 생긴 매체이다 보니, 광고를 집행하는데 필요한 애플 계정을 만드는 일부터 시작하는 경우가 많을 것 같습니다. 이번 가이드에서는 서치 애즈 운영이 가능한 애플 계정을 생성하는 방법과 서치 애즈 트래킹을 위한 설정까지 설명하도록 하겠습니다. 서치 애즈 운영을 위한 계정 만들기서치 애즈는 베이직(Basic)과 어드밴스드(Advanced) 두 가지 유형이 있습니다. 베이직은 광고주가 CPI 단가를 설정하면 자동으로 운영되는 방식입니다. 키워드와 타겟 등은 모두 애플의 자동화 알고리즘이 알아서 결정합니다. 어드밴스드는 광고주가 모든 것을 설정할 수 있지만 CPT(탭당 비용, CPC와 동일 개념) 과금으로 운영됩니다. 본 가이드는 어드밴스드를 기준으로 설명을 이어 나갈 것입니다.서치 애즈를 운영하기 위해 반드시 아래 조건이 충족되어야 합니다.서치 애즈를 운영하는 계정이 App Store Connect를 통해 광고 대상인 앱과 연결되어 있을 것App Store Connect(Formerly iTunes Connect)는 앱 스토어에 올린 앱을 관리하는 도구입니다. 앱을 새로 올리고, 앱 소개 페이지를 수정하고, 앱 다운로드 수치를 확인할 수 있습니다. 일반적으로 이런 업무는 개발팀이 담당하지요. 그러나 이제 서치 애즈를 운영하기 위해서는 마케팅팀도 App Store Connect에 접속할 수 있는 계정이 있어야 합니다.App Store Connect를 사용하기 위해서는 애플 개발자 계정이 있거나, 관리 권한을 가진 개발자로부터 초대를 받아야 한다. 결국 개발팀에 권한을 요청해야 한다. 계정 생성과 App Store Connect 권한 받기계정 생성을 위해 서치 애즈로 이동한 뒤 상단의 ‘로그인’ -> ‘Advanced’ 버튼을 클릭합니다.서치 애즈는 Apple ID를 사용해 로그인 합니다. 따라서 기존에 iOS 플랫폼에서 사용하던 공용 Apple ID가 있으면 서치 애즈에 그대로 사용할 수 있습니다. Apple ID가 없다면 입력창 하단의 ‘지금 만드세요’를 클릭해 새로운 계정을 만듭니다.이제 서치 애즈 관리용으로 사용할 Apple ID의 App Store Connect 접속 권한을 개발팀(구체적으로는 Apple Developer 계정 운영자)에 요청합니다. 서치 애즈 운영을 위해서는 ‘마케팅’ 또는 ‘관리’ 권한이 필요하니 반드시 ‘마케팅’ 이상의 권한을 부여해달라고 해야 합니다.관리자가 Apple Store Connect에 접속해 새로운 계정에게 권한을 부여할 수 있다.권한 부여가 끝났다면 해당 Apple ID로 서치 애즈에 로그인합니다. 그리고 로그인 후 새로운 캠페인을 생성합니다. 캠페인을 만들고 나서 아래 그림과 같이 해당 캠페인의 ‘설정’으로 이동하여 ‘계정 연결’을 선택하면 권한을 부여 받은 Apple Store Connect 계정의 이름이 나타납니다. 추가할 계정을 선택하고 저장 버튼을 눌러 연결을 마무리합니다. 이제 서치 애즈 캠페인을 시작할 수 있습니다. 서치 애즈 트래킹서치 애즈는 트래킹 URL을 생성하고 세팅하는 과정 없이도 자동으로 트래킹이 동작합니다. 이를 위해서는 서치 애즈 출시 이후에 업데이트된 분석 SDK를 앱에 설치해야 합니다. 와이즈트래커의 경우 21.2.48 버전 이상의 SDK를 사용하면 서치 애즈를 자동 분석할 수 있습니다. 서치 애즈의 전체적인 성과뿐만 아니라, 각 캠페인 또는 키워드별 성과도 자동으로 분석합니다.이런 방식의 트래킹이 가능한 이유는 애플의 Attribution API와 연동했기 때문입니다. 설치된 앱이 실행되면 앱 내의 분석 SDK가 Attribution API를 호출하고, 분석 파트너는 API로부터 획득한 정보를 바탕으로 성과를 어트리뷰션 합니다. 단순하지만 신뢰할 수 있는 방법입니다.애플과 어트리뷰션 툴이 동일한 데이터를 사용함에도 서치 애즈 계정의 데이터와 어트리뷰션 툴의 데이터가 완전히 일치하지는 않는데, 다음의 이유로 인해 데이터의 차이가 발생합니다.앱 다운로드 측정 기준– 서치 애즈: 앱 스토어의 광고를 탭한 이후 발생한 ‘앱 다운로드’ 수– 어트리뷰션 툴: 앱이 실행되는 시점으로부터 가장 최근에 탭된 광고에 의한 ‘앱 최초 실행’ 수룩백윈도우– 서치 애즈: 광고 탭 이후로 30일간– 어트리뷰션 툴: 광고주 설정에 의한 기간광고 추적 제한(LAT)을 설정한 유저의 앱 다운로드– 서치 애즈: 다운로드 수치에 포함– 어트리뷰션 툴: Apple의 개인보호 처리방침으로 인해 측정 불가능
조회수 172

그저 함께 고민하는 것일 뿐

요즘 어쩌다 보니 다양한 배경의 분들에게 조언을 해야 하는 일들이 종종 있었습니다. 지인을 통해 창업에 관한 아이디어가 있는데 가능할만한 아이템인지 조언을 부탁한다고 메일을 보내주셨고요. 고등학교에 스트레스 특강을 갔는데 졸업생인 친구가 자신이 하고 싶은 일과 전공이 맞지 않아 고민이라며 제 얘기를 듣고 싶다고 찾아왔었어요. 오랜만에 만난 대표님께서는 지금 하는 일을 어떻게 더 잘 지속할 수 있을지에 관한 고민을 털어놓으셨고, 다른 대표님은 지금 하는 일과 다른 일을 새롭게 시작해보려는데 의견을 듣고 싶다는 이야기까지, 배경도 내용도 다르지만 깊이는 경중을 따질 수 없는 각각의 고민들을 들으며 제가 어떤 이야기를 해야 도움이 될 수 있을까를 고민 고민하게 되었습니다.고민 1. 창업 아이디어본인이 생각한 아이디어가 과연 전망이 있을지를 가장 궁금해하셨는데요. 제 사업의 첫 시작이었던 분노캔들 펀딩 할 때로 거슬러 올라가 생각해보니 저도 같은 두려움 속에서 펀딩 오픈 날짜를 차일피일 미루고 있었던 기억이 나네요....이게 과연 팔릴까?나만 좋아하는 걸 만든 건 아니겠지...?만드는 것까지는 신나서 했는데, 막상 세상에 내놓으려고 하니 겁이 났습니다. 그렇게 한 달 가까이 고민을 하며 끙끙대다가 "에라 모르겠다" 하는 마음으로 오픈을 하게 되었고, 그 시작이 지금의 스트레스컴퍼니를 만들게 해 주었습니다. 2013년에 진행했었던 분노캔들 펀딩 성공! 고맙습니다. 후원자 여러분, 덕분에 여기까지 올 수 있었어요. 사실 상품이 시장성이 있는지 없는지는 시장에 내놓아야만 알 수 있습니다. 모두가 안될 거라고 하는 상품도 히트할 수 있고, 모두가 될 거라고 장담하던 상품도 망할 수 있다는 걸 우리는 많은 사례들을 듣고 보아서 알고 있습니다. 그래서 저는 창업을 시작할 때나 상품을 만들고 싶을 때 가장 먼저 고려해야 할 부분은 시장성이 아니라고 생각합니다. 그건 바로...자신이 그 아이템에얼마나 애정을 갖고 있는지가 더 중요합니다.사람들은 원래 찬성보다 반대를 더 많이 합니다. 제가 분노캔들을 만들 때도 그랬습니다. 손으로 만들어서 어떻게 돈을 버냐며 공장에서 찍어내야 하는 것 아니냐며 많은 반대에 부딪혔었지요... 또르르.. 그래서 시장성만 가지고 아이템에 접근하게 되면 반대에 부딪혔을 때 “아.. 이건 안 되는 거 구나.” 하고 포기하기가 쉽습니다. 그러나 내가 그 아이템에 애정이 있고 확신이 있다면, 그 아이템이 어떻게든 시장에서 살아남을 수 있도록 끊임없이 변화시킬 수 있습니다.그래서 그 아이템이 정말로 필요하다고 믿는다면, 그 아이템이 전망이 있느냐보다 나는 그것을 어떻게 다른 사람들과 다르게, 그리고 끈기 있게 꾸준히 만들 수 있을지를 더 생각해보셨으면 합니다. 하고자 하는 의지만 있다면 가능한 방향으로 계속해서 바꿔나가면서 될 때까지 하게 될 테니까요.저 또한 분노캔들이 지금처럼 교육용으로 활용될 거라고는 생각조차 하지 못했습니다. 그러나 사람들은 분노캔들을 보고 재밌다고는 하지만 정작 사지는 않고, 전부 다 혼자서 손으로 만들다 보니 힘에 부치고 이걸 어떻게 해야 하나 절망했지만 그 아이템을 버리고 싶지는 않았습니다. 어떻게든 내 생각이 옳았다는 것을 증명하고 싶었고, 그러려면 어떻게 해야 할지 고민하고 또 고민했습니다. 그렇게 고민하다가 찾은 돌파구는 혼자 만드는 것이 아닌 사람들과 함께 만드는 것이었습니다. 그렇게 생각을 바꾸고 나니, 사람들이 그렇게 반대한 이유였던 손으로 제작한다는 것이 가장 큰 장점이 되었습니다. 그 덕분에 사람들과 분노캔들을 함께 만드는 교육 프로그램으로 활용할 수 있는 기회를 얻게 되었으니까요. 그래서 완제품 분노캔들은 DIY 상품으로 진화하게 되었고, 지금까지도 많은 분들의 스트레스를 태워주는 도구로 학교, 기업, 단체 등에서 다양하게 활용되고 있습니다. 제가 그때 사람들의 반대에 굴복했다면, 지금과 같은 미래는 없었겠지요. 그러니 사람들이 반대한다고 해도, 반응이 없다고 해도 두려워하지 말고, 자신의 아이템을 성장시킬 기회로 만들어가셨으면 좋겠습니다.자신의 분노를 담아 직접 만드는 분노캔들 DIY KIT그리고 혹시나 아이템을 생각만 해봤지 실제로 제작해본 경험이 없다면, 첫 시작은 저처럼 크라우드펀딩을 통해 제작해보시는 것을 권합니다. 생각만 하는 것과 실제로 만드는 것은 정.말.로. 큰 차이가 있습니다. 그래서 자신의 아이디어가 정말 실현될 수 있는 것인지 확인하는 과정이 꼭 필요합니다. 그렇게 프로토타입을 제작해본 후, 자신의 타겟이라고 생각하는 사람들에게 보여주고 많은 피드백을 받으세요. 그것이 가장 정확한 조언이 될 것입니다.고민 2. 하고 싶은 것과 맞지 않는 전공 미대생인 이 친구는 남들이 부러워할만한 학교에서 디자인 전공을 하고 있었으나, 정작 자신이 원하는 일은 다른 분야라서 그것을 위해 전과를 하거나 다른 학교를 편입하는 것까지 고민하고 있었습니다.20대 초반의 나이에 자신이 원하는 것을 찾았다는 것은 정말 행운입니다. 자신이 원하는 일을 향해 남들보다 더 빨리 걸어갈 수 있으니까요. 그러나 빨리 결정한 만큼 앞으로 하고 싶은 것이 바뀔 가능성이 높다는 것도 꼭 염두에 두어야 합니다. 지금 관심이 없는 것이라고 해서 무시했다가 어느 날 갑자기 꿈이 바뀌어버리면, 그때 배워둘걸 하고 땅을 치고 후회할지도 모르기 때문입니다. 꿈은 그렇게 쉽게 바뀔 수도 있습니다. 저는 디자이너이기 때문에 혼자서 회사를 만들고 모든 상품들을 직접 디자인하며 지금까지 이끌어올 수 있었습니다. 제가 만들고 싶은 것을 직접 만들 수 있는 기술이 있었으니까요. 그래서 대학생들을 만나면 그것이 무엇이든 자신이 잘하는 것으로 자신만의 무기를 만들라는 조언을 아끼지 않는데요. 특히나 디자인 전공은 학교에서 다양한 기술을 익힐 수 있는 절호의 기회입니다. 지금 하고 싶은 것과는 다르다고 하더라도 최대한 배워두면, 나중에 하고 싶은 일을 할 때 정말 알차게 활용할 수 있습니다.예를 들어, 나는 퍼스널 컬러에 관심이 있고 사람들을 변화시켜주는 것에 재미를 느낀다면, 타이포그래피나 광고디자인은 나와 관련이 없는 내용 같아서 쓸데없게 느껴질 수 있습니다. 그래서 그런 수업보다는 조금이라도 내 관심사와 연결되어 있는 색채학이나 패션 관련 수업을 더 듣는 것이 내가 하고 싶은 일과 더 맞다고 생각할 수 있습니다. 그러나 타이포그래피나 광고 디자인은 디자인의 기본이며, 앞으로 어떤 일을 하던 자신을 제대로 소개할 명함과 리플릿을 만드는 것은 필수입니다. 그럴 때 타이포그래피와 광고디자인을 배워둔 것은 피가 되고 살이 될 것입니다. 지금 당장은 눈앞에 닥쳐있는 상황만 보이겠지만, 5년 뒤, 10년 뒤에는 내가 무엇을 하고 있을까를 생각하며 더 길게 그리고 천천히 준비하시면 좋겠습니다.네, 이것 모두 다 제가 디자인했습니다. 헤헷그리고 어떤 일을 하던 실력을 쌓는 것이 가장 중요한데요. 하고 싶은 일을 찾았으나 경험이 짧다 보니 내 생각이 맞는 것인지 확인도 하고 싶고 그러나 돈을 받고 할 수 있는 실력은 아닌 것 같아서 시도하는 것이 두렵게 느껴진다면, 지인들 대상으로 테스트를 해본 뒤에 자신의 상황을 오픈하고 무료로 받을 사람들을 모집해서 그들에게 피드백을 받는 것도 방법이 될 수 있습니다. 그리고 자신이 가장 편한 SNS를 골라서 그 과정을 꾸준히 기록하세요. 무엇이든 지속적으로 하는 것이 가장 중요합니다. 그렇게 쌓인 기록들은 자신의 일을 만들어가는 데 가장 큰 자산이 되어줄 것입니다.저는그저 함께 고민하는 것일 뿐사람은 결국 자기가 경험한 만큼만 이야기할 수밖에 없기 때문에, 제 이야기에는 모두 “저의 경험에 비추어보면”이라는 말이 생략되어 있습니다. 아무리 제가 많이 경험해봤다한들 그것은 저의 경우이고, 다른 사람들에게는 또 다른 상황이 펼쳐질 수 있기 때문입니다. 그래서 저는 그저 함께 고민하는 것일 뿐, 정답은 당신만이 알고 있습니다. 누가 뭐라 하던 당신 마음속에서 들리는 소리를 따라가시길 바랍니다. :-) 작게나마 저의 시간을 들여 고민을 함께 나눴다는 것만으로도 위안이 되었기를 바라며, 다음 두 가지 고민에 대한 이야기는 다음 글에서 이어가겠습니다.혹시나 당신에 고민에 대한 저의 생각을 듣고 싶으시다면 메일로 보내주세요. 브런치 글을 통해 답장을 보내드리겠습니다. [email protected]스트레스컴퍼니는 당신과 나의 스트레스를 해소하기 위해 태어났습니다.당신이 스트레스에 굴복하지 않고, 즐겁게 극복할 수 있도록 세상에 없던 상품을 만들고활용해서 교육 프로그램을 진행합니다.9월 모임 일정 안내 링크 www.stresscompany.net 스트레스컴퍼니의 모든 상품은 스트레스컴퍼니샵에서 구매 가능합니다.ⓒ스트레스컴퍼니 - 무단 전재-재배포 금지#스트레스컴퍼니 #심리스타트업 #스트레스관리 #서비스소개 #제품소개
조회수 1597

비트윈의 멀티티어 아키텍처를 위한 프레젠터 이야기

블로그 첫 글에서 비트윈의 시스템 아키텍처에 대해 다룬 적이 있습니다. 시스템 구성의 미래에 대한 계획으로 멀티티어 아키텍처에 대해 언급했었는데, 이는 프로토콜을 단순화시키고 배포 자동화를 가능하게 하기 위해서 클라이언트와 비즈니스 로직을 담당하는 서버 사이에 일종의 게이트웨이를 두는 것이었습니다. 그 외에도 여러 가지 필요성이 생겨 해당 역할을 담당하는 프레젠터라는 것을 만들게 되었고 비트윈의 채팅 시스템에 적용하게 되었습니다. 만드는 과정 중에 여러 기술적인 문제들이 있었고 이를 해결하기 위한 노력을 하였습니다. 이 글에서는 비트윈 시스템에서의 프레젠터에 대해 이야기 하고자 합니다.프레젠터¶프레젠터는 일종의 게이트웨이 입니다. 기존의 시스템에서는 클라이언트들이 ELB를 통해 채팅 서버에 직접 TCP 연결을 하였습니다. 하지만 비트윈 PC버전과 자체 푸시 서버를 만들면서 ELB로는 해결할 수 없는 부족한 점들이 생겼고, ELB의 부족한 점을 채워줄 수 있는 시스템이 필요하게 되었습니다. ELB를 대체하는 역할 외에도 다른 여러 필요했던 기능들을 제공하는 프레젠터를 만들기로 하였습니다.프레젠터는 ELB의 역할을 할 뿐만 아니라 여러 다른 기능들도 제공합니다.프레젠터의 기능¶패킷을 적절한 샤드로 중계¶비트윈에서는 커플 단위로 샤딩하여 같은 커플의 채팅 요청에 대해서는 같은 채팅 서버에서 처리하고 있습니다. Consistent Hash를 통해 커플을 여러 채팅 서버로 샤딩하고 ZooKeeper를 이용하여 이 정보를 여러 채팅 서버 간 공유합니다. 프레젠터 또한 ZooKeeper와 연결을 하여 어떤 채팅 서버가 어떤 커플을 담당하는지에 대한 정보를 알고 있도록 설계되어 있습니다. 따라서 프레젠터는 첫 연결 시 보내는 인증 패킷을 보고 해당 채팅 연결에서 오는 요청들을 어떤 채팅 서버로 보내야 할지 판단할 수 있습니다. 어떤 채팅 서버로 보낼지 판단하는 과정은 처음 한 번만 일어나며, 이후 패킷부터는 자동으로 해당 채팅 서버로 중계합니다.프레젠터의 이런 기능 덕분에 클라이언트는 더 이상 어떤 채팅 서버로 붙어야 하는지 알아내는 과정 없이 아무 프레젠터와 연결만 맺으면 채팅을 할 수 있게 되었습니다. 기존에는 클라이언트들이 여러 채팅 서버 중 어떤 서버에 붙어야 하는지 확인하는 작업을 한 후에 할당된 채팅 서버로 연결 맺어야 했습니다. 그래서 클라이언트가 채팅 서버와 연결을 맺기 위해 다소 복잡한 과정을 거쳐야 했지만, 이제는 클라이언트가 프레젠터의 주소로 연결 요청만 하면 DNS Round Robin 통해 아무 프레젠터와 연결하는 방식으로 프로토콜을 단순화할 수 있었습니다. 덕분에 새로운 채팅 서버를 띄울 때마다 ELB를 Warm-Up 시켜야 했던 기존 시스템의 문제가 없어졌습니다. 그래서 비트윈 개발팀의 오랜 염원이었던 채팅 서버 오토스케일의 가능성도 열렸습니다.많은 수의 연결을 안정적으로 유지¶PC버전과 푸시 서버를 만들면서 기존의 채팅 연결과 다르게 많은 수의 연결이 장시간 동안 유지 되는 경우를 처리할 수 있어야 했습니다. 기존에는 TCP 릴레이를 하도록 설정된 ELB가 연결들을 받아주었습니다. 한 머신당 6만 개 정도의 Outbound TCP 연결을 맺을 수 있는데, ELB도 트래픽에 따라 여러 대의 머신에서 돌아가는 일종의 프로그램이므로 이 제한에 걸린다고 생각할 수 있습니다. 따라서 많은 수의 연결을 맺어놓고 있어야 하는 경우 ELB에 문제가 생길 수 있다고 판단했습니다. (과거 ELB가 연결 개수가 많아지는 경우 스케일아웃이 안되는 버그 때문에 문제가 된 적이 있기도 했습니다) 또한 클라이어트 연결당 내부 연결도 하나씩 생겨야 하면 클라이언트가 연결을 끊거나 맺을 때마다 서버 내부 연결도 매번 끊거나 연결해야 하는 오버헤드가 발생합니다.이를 해결하기 위해 프레젠터에서는 TCP 연결을 Multiplexing하는 프로토콜을 구현하여 적은 수의 내부 연결로 많은 수의 클라이언트 연결을 처리할 수 있도록 하였습니다. 서버 내부에서는 고정된 개수의 몇 개의 연결만 맺어 놓고 이 연결들만으로 수많은 클라이언트 연결을 처리할 수 있습니다. 이처럼 TCP Multiplexing을 하는 것은 Finagle과 같은 다른 RPC 프로젝트에서도 지원하는 기능입니다.TCP Multiplexing 프로토콜을 통해 많은 수의 클라이언트 연결을 소수의 서버 내부 연결로 처리합니다.또한, 프레젠터는 많은 수의 SSL 연결을 처리해야 하므로 암복호화 로직을 실행하는데 퍼포먼스가 매우 중요하게 됩니다. 채팅 서버 한 대를 제거하거나 하는 경우 많은 연결이 한꺼번에 끊어지고 연이어 한꺼번에 연결을 시도하게 되는 경우가 있을 수 있는데, 이 때 대량의 SSL Handshaking을 하게 됩니다. 기존 서버들로 대량의 SSL Handshaking을 빠른 시간안에 처리하기 위해서는 높은 퍼포먼스가 필요합니다. Java로 작성된 프로그램만으로 이런 퍼포먼스 요구사항을 달성하기 어려우므로, 클라이언트와의 연결을 담당하는 부분은 OpenSSL, libevent를 이용한 C++로 코드로 작성하였습니다. 인증 패킷을 파싱하거나 패킷들을 릴레이 하는 등의 로직을 담당하는 부분은 Alfred라는 Netty를 이용하여 만든 인하우스 RPC 라이브러리를 이용해 작성되었습니다. 연결을 담당하는 부분은 TCP 연결을 유지하는 역할과 들어온 패킷들을 Netty로 작성된 모듈로 릴레이 하는 역할만 담당하므로 매우 간단한 형태의 프로그램입니다. 짧은 시간 안에 어럽지 않게 구현할 수 있었습니다.클라이언트의 연결을 받아주는 역할을 하는 부분은 C++, 실제 로직이 필요한 부분은 Java로 작성하였습니다.여러 네트워크 최적화 기술의 지원¶ELB에는 여러 네트워크 최적화 기술들을 아직 제공하지 않는 경우가 있습니다. 대표적으로 HTTP/2 혹은 SPDY, QUIC, TCP Fast Open 등이 있습니다. 특히 모바일 환경에서는 SSL Handshaking 등 부가적인 RTT로 인한 지연을 무시할 수 없으므로 이런 기술들을 이용한 초기 연결 시간 최적화는 서비스 퀄리티에 중요한 부분 중 하나입니다. ELB는 AWS에서 관리하는 서비스이므로 AWS에서 이런 기능들을 ELB에 적용하기 전에는 이용할 수 없지만, 프레젠터는 직접 운영하는 서버이므로 필요한 기능을 바로바로 적용하여 서비스 품질을 높일 수 있습니다. ELB에서 이미 제공하는 최적화 기술인 SSL Session Ticket이나 다른 몇몇 기술은 이미 적용되어 있고 아직 적용하지 않은 기술들도 필요에 따라 차차 적용할 예정입니다.프레젠터의 구현¶C++ 연결 유지 모듈¶프레젠터는 퍼포먼스를 위해 C++로 작성되었습니다. 이는 Pure Java를 이용한 암복호화는 프레젠터에서 원하는 정도의 퍼포먼스를 낼 수 없기 때문입니다. 처음에는 OpenSSL과 libevent를 이용해 작성된 코드를 JNI를 통해 Netty 인터페이스에 붙인 event4j라는 인하우스 라이브러리를 이용하려고 했으나, 코드가 복잡하고 유지보수가 어렵다는 점 때문에 포기하였습니다. 그 후에는 netty-tcnative를 이용해보고자 했으나 테스트 결과 연결당 메모리 사용량이 큰 문제가 있었고, 이를 수정하기에는 시간이 오래 걸릴 것 같아 포기하였습니다. 결국, 페이스북에서 오픈소스로 공개한 C++ 라이브러리인 folly를 활용하여 프레젠터를 작성하게 되었습니다. folly의 네트워크 API들이 OpenSSL과 libevent를 이용해 구현되어 있습니다.릴레이 로직¶프레젠터는 첫 인증 패킷을 파싱하여 릴레이할 채팅 서버를 판단하며, 이후의 패킷부터는 실제 패킷을 까보지 않고 단순 릴레이 하도록 설계하였습니다. 처음의 Netty 파이프라인에는 Alfred 프로토콜을 처리할 수 있는 핸들러들이 설정되어 있어 인증 패킷을 파싱 할 수 있으며 인증 패킷에 있는 정보를 바탕으로 어떤 채팅 서버로 패킷을 릴레이 할지 결정합니다. 그 이후 파이프라인에 있던 핸들러를 모두 제거 한 후, 읽은 byte 스트림을 Multiplexing Protocol 프레임으로 감싸서 그대로 릴레이 하는 매우 간단한 로직을 담당하는 핸들러 하나를 추가합니다. 덕분에 로직 부분의 구현도 매우 간단해질 수 있었으며, 채팅 서버에 API가 추가되거나 변경되어도 프레젠터는 업데이트할 필요가 없다는 운영상 이점도 있었습니다.Multiplexing Protocol¶프레젠터의 Multiplexing Protocol은 Thrift를 이용하여 직접 정의 하였으며, 비트윈 개발팀 내부적으로 사용 중인 RPC 라이브러리인 Alfred에 이 프로토콜을 구현하였습니다. Thrift를 통해 C++과 Java로 컴파일된 소스코드를 각각 프레젠터의 연결 처리 부분과 로직 처리 부분에서 이용하여 통신합니다. 프레젠터에서는 Multiplexing된 TCP 연결들을 Stream이라고 명명하였으며 이는 SPDY나 HTTP/2에서의 호칭 방법과 유사합니다. SPDY나 HTTP/2도 일종의 Multiplexing 기능을 제공하고 있으며, 프레젠터의 Multiplexing Protocol도 SPDY 프레임을 많이 참고하여 작성되었습니다.수 많은 클라이언트와의 TCP연결을 Stream으로 만들어 하나의 내부 TCP연결을 통해 처리합니다.Alfred에서는 Multiplexing 된 TCP 연결을 Netty의 Channel 인터페이스로 추상화하였습니다. Netty에서 TCP 연결 하나는 Channel 하나로 만들어지는데, 실제 Stream도 Channel 인터페이스로 데이터를 읽거나 쓸 수 있도록 하였습니다. 이 추상화 덕분에 비트윈 비즈니스 로직을 담당하는 코드에서는 Stream으로 Multiplexing 된 TCP 연결을 마치 기존의 TCP 연결과 똑같이 Channel을 이용해 사용할 수 있었습니다. 그래서 실제 비즈니스 로직 코드는 전혀 건드리지 않고 프레젠터를 쉽게 붙일 수 있었습니다.로드 밸런싱¶클라이언트는 Route53에서 제공하는 DNS Round Robin 기능을 이용하여 아무 프레젠터에 연결하여 채팅 요청을 날리게 됩니다. 하지만 무조건 동등하게 Round Robin 하게 되면 새로 켜지거나 하여 연결을 거의 맺지 않고 놀고 있는 프레젠터가 있는데도 연결을 많이 맺고 있는 기존 프레젠터에에 연결이 할당되는 문제가 생길 수 있습니다. 충분한 시간이 흐르면 결국에는 연결 개수는 동등하게 되겠지만, 처음부터 놀고 있는 프레젠터에 새로운 연결을 가중치를 주어 할당하면 로드를 분산되는 데 큰 도움이 될 것입니다. 그래서 Route53의 Weighted Routing Policy 기능을 이용하기로 하였습니다. 현재 연결 개수와 CPU 사용량 등을 종합적으로 고려하여 Weight를 결정하고 이를 주기적으로 Route53의 레코드에 업데이트합니다. 이런 방법으로 현재 로드가 많이 걸리는 서버로는 적은 수의 새로운 연결을 맺게 하고 자원이 많이 남는 프레젠터로 더 많은 새로운 연결이 맺어지도록 하고 있습니다.스케일 인/아웃¶AWS에서는 트래픽에 따라 서버 개수를 늘리기도 하고 줄이기도 하는 AutoScaling 이라는 기능이 있습니다. 프레젠터가 스케일 아웃될때에는 프레젠터가 스스로 Route53에 레코드를 추가하는 식으로 새로운 연결을 맺도록 할 수 있습니다. 하지만 스케일 인으로 프레젠터가 제거될 때에는 Route53에서 레코드를 삭제하더라도 함부로 프레젠터 서버를 종료시킬 수 없습니다. 종종 클라이언트의 DNS 캐싱 로직에 문제가 있어, Route53에서 레코드를 삭제되었는데도 불구하고 이를 업데이트하지 못해 기존 프레젠터로 연결을 시도하는 경우가 있을 수 있기 때문입니다. 따라서 프레젠터 클러스터가 스케일 인 될 때에는 기존의 모든 연결이 끊어지고 충분한 시간 동안 새로운 연결이 생기지 않은 경우에만 서버를 종료시켜야 합니다. AutoScaling Group의 LifeCycleHook을 이용하여 위와 같은 조건을 만족 시켰을 때에만 프레젠터 서버를 완전히 종료시키도록 하였습니다.못다 한 이야기¶프레젠터라는 이름이 이상하다고 생각하시는 분들이 있을 것으로 생각합니다. 멀티티어 아키텍처를 이야기할 때 프레젠테이션 티어, 어플리케이션 티어, 데이터베이스 티어로 구분하곤 하는데 이 프레젠테이션 티어에서 나온 이름입니다. 지금은 실제 프레젠터가 하는 역할과 프레젠테이션 티어가 보통 맡게 되는 역할에는 많은 차이가 있지만, 어쩌다 보니 이름은 그대로 가져가게 되었습니다.프레젠터에서 AutoScaling을 하기 위해 LifeCycleHook을 이용합니다. 이때 프레젠터를 위해 LifeCycleHook 이벤트를 처리하는 프로그램을 직접 짠 것이 아니라 비트윈 개발팀이 내부적으로 만든 Kharon이라는 프로그램을 이용하였습니다. Kharon은 인스턴스가 시작되거나 종료될 때 실행할 스크립트를 작성하고 인스턴스의 특정 위치에 놓는 것만으로 LifeCycleHook을 쉽게 이용할 수 있게 하는 프로그램입니다. Kharon 덕분에 비트윈 내 다양한 시스템에서 별다른 추가 개발 없이 LifeCycleHook을 쉽게 활용하고 있습니다. 후에 Kharon에 대해 자세히 다뤄보도록 하겠습니다.정리¶비트윈 개발팀에서는 오랫동안 유지되는 수많은 채팅 서버 연결들을 처리하고 클라이언트와 서버 간 프로토콜을 단순화시키는 등 여러 이점을 얻고자 ELB의 역할을 대신하는 프레젠터를 만들었습니다. 프레젠터를 만드는 과정에서 여러 기술적 문제가 있었습니다. 이를 해결하기 위해 C++로 연결 유지 모듈을 따로 작성하였고 Multiplexing Protocol을 따로 정의하였으며 그 외 여러 가지 기술적인 결정들을 하였습니다. 이런 과정에서 시행착오들이 있었지만 이를 발판 삼아 더 좋은 기술적 결정을 내리기 위해 고민하여 결국 기존 시스템에 쉽게 적용할 수 있고 쉽게 동작하는 프레젠터를 만들어 이용하고 있습니다.저희는 언제나 타다 및 비트윈 서비스를 함께 만들며 기술적인 문제를 함께 풀어나갈 능력있는 개발자를 모시고 있습니다. 언제든 부담없이 [email protected]로 이메일을 주시기 바랍니다!
조회수 1889

파이콘 2018 도도 파이터 후기

아이들과 오전에 놀아주고 집안일을 마치고 나서 지하철을 탔다. 파이콘에 가는 길이었다. 5년째 참석하다 보니 이제 모든 세션을 빡빡하게 들어야 한다는 부담이 없다. 그래서 늦었지만 여유로웠다. 가는 길에 습관적으로 본  페이스북 타임라인은 이미 파이콘 이야기로 가득했다. 인증과 세션 자료 그리고 개발자를 뽑고 싶어 하는 회사들의 홍보로. 피드에서 스포카에서 진행하는 도도 파이터 이벤트를 보고 "이건 뭐야?" 싶어서  링크를 눌렀다. 어이쿠 개발자 컨퍼런스에 이게 도대체 뭐야오. 깔끔하게 잘 만들었다. 예제 코드를 살펴보니 설명도 잘 되어 있고 간단하다. 도전해 보고 싶은 생각이 들었다. 지하철 자리에 앉아 테더링을 연결하고 코딩을 시작했다. (사실 이것이 내가 세션은 듣지 않고 이틀 동안 부스/이벤트 체험만 하게 된 계기가 될 줄은 몰랐다.)대단히 잘 할 생각은 없었다. 세상에 굇수는 많으니까. 참여에 의의를 둬야지 싶었다. 비록 설명에는 “인공지능 코드”를 작성하여 다른 참가자와 겨루는 “인공지능 격투 대전”이라고 되어 있지만 당연해 보이는 규칙만 구현하고 나머지는 랜덤으로 동작하게 해서 제출해 보자 싶었다. 코엑스에 도착한 후  조금만 더 작업해서 제출하려고 하는데 아무리 제출해도 제출이 되지 않고 다음과 같은 메시지만 받았다.  코드가 테스트를 통과하지 못했습니다.아니 랜덤 봇이랑 하면 잘만 이기는데 왜 통과를 못하는 거야! 하던 차에 다시 설명을 읽어 보니  가만히 있는 더미 에이전트를 상대로 이겨야 제출이 이루어집니다.란다. 먼저 가면 손해인지라 가까워지면 더 안 가고 제 자리에서 주먹질만 시켰더니 더미 에이전트를 못 이기나 보다. 그래서 5초 아래로 시간이 남고 지금까지 한 번도 안 싸웠으면 앞으로 가도록 했더니 테스트를 통과하고 제출이 되었다.  제출에 성공하고 기분 좋게 돌아다니면서 다른 부스도 구경하고 있는데 회사 슬랙으로 함께 파이콘에 참여하고 계신 동료 분이 메시지를 보내셨다.봇이 화끈하면 뭐햐나. 이기면 장땡!스포카 부스에서 사람들이 제출한 봇들을 랜덤으로 붙여 주는 모양이었다. 후후. 어찌 되었든 이겼다고 하니 기분이 좋군.첫날 마지막 행사인 라이트닝 토크에서 스포카 도도 파이터 개발자분의 발표가 있었다. 회사에서 파이콘을 준비하면서 한 달 가까이 준비했다고 한다. 그리고 최근 2주도 동안은 도도 파이터만 달렸다는 이야기를 해주셨다. 컨퍼런스 이벤트로 만든 게임의 퀄리티가 좋아서 감탄한 것도 있었지만 팀에서 개발자들에게 그런 여유를 줄 수 있는 것도 부러운 마음이 들었다. 좋은 회사다. 도도 파이터 토너먼트는 다음날 파이콘 정식 행사가 끝나고 열렸다. 기억으로는 80명 정도가 참여했었던 것 같다. 조별 토너먼트를 진행하고 우승자들을 모아서 다시 토너먼트를 하는 구조였다.   싸워라! 싸워라!조금 늦게 왔더니 자리가 없어서 가장 앞자리에 나왔는데, 내 봇의 차례가 될 때마다 github 계정의 내 얼굴이 스크린에 크게 나와서 부끄러웠다. 외국 친구들은 자기 얼굴 github 프로필에 잘 넣어 놓던데, 왜 우리나라 개발자들은 자기 사진을 안 넣는 걸까... 게다가 내 봇이 나오는 경기는 모두 지루하고 얍삽한 느낌이 있어서 왠지 더 부끄러웠다. 니가 올래? 내가 갈까?다행히 조별리그도 통과해서 결승 리그에 올라갔다. 사실 한 두경기만 이기면 좋겠다 했었는데, 결승 리그에 올라가니 왠지 욕심이 생겼다. 제일 그럴싸하게 싸운 경기운 좋게도 아슬아슬하게 16강부터 4경기를 모두 이겨서 우승을 하고 문성원 CTO님께 해피해킹 키보드도 상품으로 받았다. 기분이 좋으면서도 멋쩍기도 한 기분이다. 사실 이번 파이콘에 와서 여러 곳의 부스를 참여하고, 이벤트도 적극적으로 참여해 본 이유는 내년에 8퍼센트도 파이콘에 스폰서로 참여하고 싶어서 였다. 우리의 (잉여) 개발력도 보여주고, 다른 개발자 분들과도 적극적으로 교류하고 싶은 마음이었다. 그 바람이 꼭 이루어질 수 있게 다음 파이콘 때 까지 좋은 분들을 모시고, 회사의 성장을 만들어 나가야겠다는 생각이 들었다. 마지막으로 내 코드를 공개한다.  https://gist.github.com/leehosung/f784d9efc71dce12855739647dd98877다시 코드를 살펴보니 개선할 점도 여러 개 보인다. 하지만 기존에 제출한 코드를 보기 좋게 정리만 하고 주석만 붙여 보았다. 사실 별 특별한 것이 없는 코드다. 실제 작성하고 테스트하는 것에도 한 시간이 걸리지 않았다.다음에 이런 기회가 온다면 글을 읽으시는 분들도 가벼운 마음으로 도전해 보셨으면 한다.  성적이 좋으면 더 좋지만 나쁘면 또 어떠한가? 개발자인 우리만 즐길 수 있는 놀이인데.  #8퍼센트 #에잇퍼센트 #파이콘 #파이썬 #Python #Pycon #이벤트참여 #참여후기 #개발자 #개발
조회수 2534

어떻게 하면 더 와 닿을까?

2017년. 대한민국 기준 스마트폰 사용 인구 비율 88%(2016년 기준).스마트폰 사용자가 늘어난 만큼 스마트폰의 앱을 통해 손쉽게 상품을 구매하는 고객의 비율 또한 현저히 늘어났습니다. 이러한 현상은 새롭게 몇 가지의 포지션들에 주목하게 되었는데요. 그중 하나가 바로 '컨텐츠 디자인'입니다. 오프라인 또는 웹으로만 만날 수 있던 상품들을 이제는 앱으로 언제 어디서든 구매할 수 있게 되면서 그 상품을 매력적으로 보여주기 위한 '컨텐츠 디자인'의 영역이 너무나도 중요해진 것이죠.해서 이 글에서는 더욱 데일리스럽고, 고객에게 가독성이 좋은 '컨텐츠'를 전달하기 위해 노력하는 우리의 노력(!)을 보여드리려 합니다.문제의 시초다양한 형태로 표현되던 이벤트 페이지약 1여 년 전.. 위에 보시는 바와 같이 일관성 없이 과도하게 정보전달을 하고자 하는 성격이 컨텐츠에 녹아있었습니다. 더군다나 그렇다 한 데일리만의 일관성 있는 스타일도 없었죠. 해서 우리가 정말 고객에게 전달하고자 하는 방향이 무엇인지 생각하게 됩니다.데일리호텔 Creative LAB의 첫 번째 글(https://www.theteams.kr/teams/865/post/64504) '로고 제작기'에서도 확인할 수 있듯이 '더 나은 하루, 더 나은 삶을 위해'라는 사명 아래 '라이프 컨시어지 데일리'로 거듭나고자 하는 것이 우리의 목표였습니다. 해서 우리가 이 상품을 왜 추천하려 하는지의 감성적인 메시지와 그를 충분히 녹여낼 수 있는 부드러운 톤의 컨텐츠가 필요하다고 생각이 들었죠.컨텐츠 디자인첫 번째 리뉴얼.이벤트 페이지 첫번째 리뉴얼위 내용을 반영하여 이 같은 결과물이 나왔습니다. 기존보다는 훨씬 '라이프 컨시어지'에 가까운 성격의 컨텐츠 였지만 아직까지도 정보전달이 약하다는 피드백을 많이 받았죠. 그 이유는 바로 '가독성' 때문이었습니다. 첫 번째 리뉴얼을 진행할 당시 '가독성'의 영역보다는 비주얼을 좋게 개선해야 한다는 사명감 때문에 '심미성'에만 크게 신경을 쓰게 되어 디테일한 폰트 사이즈를 조정하지 못했던 이슈였습니다.때에 따라 달랐던 업장 설명 형태또한, 컨텐츠의 메인과 상단 부분은 개선이 되었다 쳐도 업장 설명 내용의 형태는 프로모션 성격에 따라 혹은 작업자의 취향에 따라 항상 변경되는 것도 큰 이슈였죠.더 나은 개선두 번째 리뉴얼.피드백에 힘입어, 폰트 사이즈와 컨텐츠 내에 적용되는 UI를 보완하는 두 번째 리뉴얼을 진행합니다. 분명 모니터에서 작업할 때는 충분히 크게 보이던 폰트 사이즈가 모바일로 확인했을 때는 작게 보였던 이슈를 해결하기 위해 폰트 사이즈 규정이 필요했습니다.그리고 앱 내에 들어가는 컨텐츠 디자인도 곧 UI의 일부이기 때문에 데일리호텔 앱 내에 사용되는 UI의 가이드를 반영해야 한다는 필요성을 느꼈습니다.실제 앱 구동시 UI개선된 이벤트 페이지 내의 업장 설명 부분이미지에서 확인할 수 있듯이 폰트 사이즈뿐만 아니라 업장과 업장 사이의 여백 부분과 CTA 버튼의 라운딩, 사이즈 등 디테일한 부분도 앱의 UI와 통일시켰죠. 이런 개선을 통해 앱을 사용하다가 이벤트 페이지로 들어왔을 때의 일관성을 유지시키고, 구매로 이어지는 경로의 어색함을 완충시켰습니다.현재 사용되어지는 컨텐츠 디자인의 톤앤매너더불어 앱내에서 고가의 호텔을 다루고 있기 때문에 진중하게 보다는 호텔도 쉽게 접할 수 있다는 느낌을 주기 위해서 톤도 한 층 밝게 리뉴얼 하였습니다.끝난 게끝난 게 아니다.말 그대로 끝난 게 끝난 게 아닙니다. 앞으로도 계속해서 고객의 새로운 니즈는 생길 것이고 그 니즈를 충족시킬 수 있도록 데일리는 끝없이 많은 부분을 업데이트하고 리뉴얼해야 할 것입니다.단순히 시각적으로 보기 좋은 디자인이 아니라, 사용자의 입장에서 이해하기 쉽고 편리한 디자인을 할 수 있도록 계속해서 노력하겠습니다! 감사합니다 :)기획/진행 : Creative팀작성자 : Creative팀 Blair Ahn#데일리 #데일리호텔 #디자인 #디자이너 #디자인팀 #고객중심 #인사이트 #경험공유 #후기 #일지
조회수 3326

야놀자 앱은 왜 자동실행 되나요?

pluu 04 JUL 2018저는 야놀자 CX서비스실의 Android 파트에서 레이아웃 깎기와 Kotlin과 새로운 Android 기술을 전파하는 노현석입니다. 야놀자에 합류하고서 경험한 가장 독특한 케이스에 대해서 이야기해 보려고 합니다.시작은 물음표부터언제부터인가 야놀자앱을 설치하거나 업데이트하면 앱이 자동으로 실행된다는 리뷰가 들어오기 시작했습니다.네?! 그게 무슨 말이에요?안드로이드 개발을 시작한 이래로 처음 들어보는 내용이라, 원인도 정확한 해결책도 떠오르지 않는 그런 리뷰였습니다. 그래서 자연스럽게 브라우저를 켜서 구글에 검색을 먼저 해봤습니다. Android, Auto Start, Install 등 다양한 검색 결과로 일정한 패턴의 내용을 확인할 수 있습니다.  Intent Action 관련 내용android.intent.action.PACKAGE_ADDEDandroid.intent.action.PACKAGE_CHANGEDetc.Broadcast Receiveretc.일반적으로 안드로이드 앱이 설치 및 업데이트될 때 발생하는 이벤트(이하 Broadcast)를 받는 방법에 대한 설명이 많습니다. Broadcast는 배터리 변화, 전화 여부, 와이파이 등 시스템의 상태 변화를 감지하거나 서비스 내부적에서 이벤트를 전달하기 위해 사용합니다. ???? 실질적인 해결책은 되지 않지만, 범위를 좁혀서 찾아볼 포인트로 Intent 의PACKAGE관련 액션을 포커스로 잡았습니다. 하지만, 야놀자앱에서는 마케팅 성과 측정을 위해com.android.vending.INSTALL_REFERRER를 광고 트래킹 SDK에서 사용하는 것 이외에는 별도의 작업을 하지는 않습니다. 그러나, 이를 알 리가 없는 사용자는야놀자 앱이 일으키는 문제라고 인지하기 쉽습니다.  일차적으로, 어느 경로를 통해서인지는 모르지만 누군가가 야놀자 앱을 실행하는 것이라고 생각했습니다.야놀자 앱 사용자의 기기에 설치된 모든 앱 리스트를 받아올 수도 있고, 리퍼럴에 따른 앱 실행경로를 모두 수집할 수도 있지만, 단순히 버그를 찾기 위해 사용자의 동의 없이 정보를 수집할 수는 없기 때문에 장기전으로 돌입하게 되었습니다. 하지만 동일한 리뷰는 계속되었고 여전히 뚜렷한 해결책이 없는 채로 시간이 흘러갔습니다.  저 재현되는데요증상이 나타나지만 재현은 되지 않고, 재현 경로를 단기간에 파악하기는 어려운 과제였습니다. 한두 명에 불과하던 제보가 시간이 지날수록 Android 파트의 목을 조르듯이 점점 유입되는 횟수가 늘어만 갔습니다. 그런데 어느 날, 다른 팀의 분께서저 재현되는데요라는 한 줄기의 빛과 같은 언급을 해주셨습니다.믿고 싶지 않은 일이 현실이 되었다네? 그게 … 정말로 일어났습니다.이제부터가진짜시작역시버그는재현이되어야제대로잡을수있겠죠! 저에게는재현되는 단말이 있어요!Android에서 디버깅을 할 수 있는 다양한 수단이 있습니다. 이번 사례의 경우는Log혹은Dump를 확인해보는 선택지가 있습니다.Log민감한 정보라고 판단되는 부분은 모자이크했습니다.앱 설치 후 광고 SDK가 수집하는 것으로 보이는 Log에는 다양한 항목들이 나열되는 것을 볼 수 있습니다. 이때 설치한 앱의 정보가 SDK를 통해 특정 API로 전송되는 것도 확인할 수 있습니다. 하지만 Log는 Log일 뿐입니다.  Dumpsys이렇게 Log만으로 추적이 어려울 때, 추가적으로 시스템의 상태를 얻어내 디버깅 할 수 있는 방법이 있는데 바로dumpsys입니다. dumpsys는 Android 단말에서 실행되며 시스템 서비스에 대한 다양한 정보를 제공하는 도구입니다. ADB(Android Debug Bridge)를 사용하여 dumpsys를 호출 시 해당 단말에서 실행 중인 모든 시스템 서비스에 대한 정보를 가져올 수 있습니다. 간단하게 말하면 배터리의 잔량, 메모리 소비량, 네트워크 통신 상태 등을 명령어로 확인할 수 있습니다. dumpsys의 기능에 대해서는 방대한 설명이 필요하므로, 자세한 내용은 아래 링크로 대체합니다.  Android Developers ~ dumpsyshttps://android.googlesource.com/platform/frameworks/native/+/master/cmds/dumpsys/dumpsys.cppActivity DumpDumpsys 에서 좀 더 Activity 와 관련된 정보를 얻기 위해서는 아래의 명령어를 적용해볼 수 있습니다.// Activity Log Dump adb shell dumpsys activity activities 결과를 확인해봅니다. 아래와 같은 Activity 의 활동 이력을 얻을 수 있습니다.Activity Dump에 나타난mCallingPackage값으로 야놀자 앱을 시작시킨 앱의 패키지를 확인할 수 있습니다. 해당 패키지를 실제 Play Store에서 확인해본 결과, 사진 보정 필터앱으로 유명한카메라 앱중 하나였습니다.???? 야놀자와는 전혀 연관성이 없는 앱인데, 호출하고 있네요… ????Process ID// 애플리케이션의 Process ID 취득 adb shell ps Activity Dump에서 확인한mCallingUid는u0a423였는데, 이는 Activity를 호출한 uid 값을 가리킵니다. 실제로 Process 가 호출되는 Application ID도 카메라 앱에서 호출한 ID 정보와 일치합니다.대상 앱 자료 분석단순하게는 APK 를 분석하여 추측하는 방법이 있습니다. Android Studio 에서 제공되는Analyze APK기능을 이용하여 해당 앱에서 사용되는 서비스의 정보를 파악할 수 있습니다. 이 방법을 이용하여 문제의 앱이 사용하는 광고 SDK 서비스에서 패키지 설치/제거 관련 Broadcast Receiver를 수집하는 것을 확인 할 수 있습니다.패키지 관련 Broadcast인android.intent.action.PACKAGE_ADDED, android.intent.action.PACKAGE_REMOVED를 앱이 사용하는 것은 잘못된 것이 아닙니다. 예를 들어 런처 앱의 경우 단말기 내부의 앱 정보가 변경되었다는 이벤트를 이용하여 화면 렌더링 및 동작을 변경하는 처리를 할 수 있습니다 해당 광고 SDK의 경우에는 앱을 설치 및 실행하는 것으로 사용자에게 포인트 및 여러 혜택을 제공할 것이라고 예상할 수 있습니다.개인적인 의견으로는 사용자의 액션과 상관없이 동작하는 부분에 대해서는 분명히 Android 의 개선도 필요하다고 생각됩니다. 이런 정상 동작과 어뷰징은 아슬아슬한 경계에 있지만, 자칫 어뷰징으로 이어지는 경우 서비스의 품질이 떨어지게 되면서 사용자와 개발사 모두에게 좋지 않은 경험을 줄 뿐입니다.설마 이것도 되려나?동일 패키지명이번 포스팅을 작성하게 된 카메라 앱과 야놀자 서비스 사이에 특별한 관계가 없다면, 왜 이런 현상이 발생하는지 고민해봤습니다. SDK도 연결하지 않았다면, 앱을 추적할 수 있는 유일한 키는패키지명이지 않을까라는 생각으로 패키지명만 야놀자 앱과 동일한 샘플 앱으로 테스트해봤습니다.동일 재현 성공!!그럼… 해결… 끝?많은 사람들에게 이름이 널리 알려진 여러 서비스에서조차 이번 포스팅에서 다룬 내용과 같은 현상이 발생하고 있습니다. 발생 유무에 따른 차이점이나 현상의 인과 관계를 명확히 판단하기엔 아직 정보가 많이 부족합니다. 그리고 이번 분석에서 발견한 문제의 앱을 비롯하여 또 다른 제2, 제3의 앱들이 등장할 거란 가능성도 배제할 수 없는것이 현재 상황입니다. 슬프게도 아직 이 현상은 지금도 계속되고 있으며, 불편을 호소하는 리뷰가 등록되어 서비스 전체의 이미지와 평점을 갉아먹고 있습니다. 안드로이드 생태계가 사용자 및 서비스 제공자에게 더 유익한 방향으로 나아갔으면 하는 바람을 담아 작성했습니다.도움 주신 분동일 증상을 발견하고, 단말을 빌려주신 R&D SF팀 전호숙님같이 추적해주신 R&D CX 서비스실 유관종님Dump/Log 관련 조언을 주신 Wind River의 차영호님 (????????????)국어가 많이 부족한 저를 도와주신 리뷰어 ???????????? R&D CX 서비스실 강미경님, 송요창님, 유관종님, 유용우님, 이미혜님이번 현상 추적에 도움을 주신 분들에게 감사함을 전합니다.#야놀자 #개발자 #개발팀 #문제해결 #버그수정 #안드로이드 #인사이트 #경험공유
조회수 1451

책 읽고나서 독서노트 쓰기 귀찮다면: 리디북스&리페라

저는 삶은 다양한 아이템으로 더 풍요로워진다고 생각하는 사람입니다.구매를 정당화 하는데 사용하는 단골 멘트지만 진짜 이렇게 느낍니다. 이 디바이스나 서비스가 제가 번거로워하는 걸 대신 해줄 수 있다면 그걸 쓰는 편입니다. 삶은 아이템빨이라고 믿는거죠. 제 삶의 불편한 점을 생각하고, 어떤 제품이 이걸 도와줄 수 있을지 찾아보고, 가성비가 맞으면 구매하고 써보는 패턴 입니다. 제가 독서 할 때 불편한 점: 종이책을 읽을 때 밑줄, 메모를 많이 하는데 다 읽고나서 이 메모를 다른 곳(보통 에버노트)에 옮기는데 시간이 엄청 오래걸린다.: 보통 책 한권 기준으로 밑줄, 메모 옮기는데 4시간 정도 걸립니다.타이핑 할 생각에 잠시 막막...위와 같은 불편한 점을 해결해 줄 수 있는 아이템아이템: 리디북스 전자책 + 리디북스페이퍼라이트(전자책 디바이스)아이템 가격: 가격 89,000원 + 보호필름 11,000원처음에는 독서노트 타이핑 속도나 번거로움이 문제라고 생각해서, 밑줄 부분을 에버노트 scannable 어플로 찍어서 이미지 형식으로 에버노트에 저장하는 방식을 시도해봤었는데요. 에버노트에 이미지 내 텍스트 검색의 정확도가 약간 떨어지고, 이미지라 그런지 로딩속도가 점점 떨어지는게 느껴졌습니다. 그리고 불편한 점 중에 하나였던 시간도 비슷했습니다. 보통 종이책이 평균 400쪽이라고 생각했을 때 페이지 1장을 찍고 이미지를 다듬는데 30초가 걸린다고 생각하면 이미 3시간 이더라구요.그래서 아예 관점을 바꿔, 읽으면서 자동으로 밑줄 그은 부분이 디지털 텍스트로 보관되는 ‘전자책’을 읽기로 생각했습니다. 전자책은 왠지모를 거부감이 있었는데 독서노트를 안써도 된다는 생각을 하니 전자책를 처음 읽을 때 기분이 엄청 좋았습니다. 목적과 수단이 바뀌었다면 전자책을 이렇게 많이 읽긴 어려웠을 것 같습니다.<밀리의 서재> 와 같은 여러 전자책 플랫폼 중에서 리디북스를 선택한 것은 강력한 ‘독서노트’ 기능때문이었습니다. 리디북스는 전자책에서 밑줄그은 부분과 내가 쓴 메모를 백업해주는 ‘독서노트’ 기능이 있고 나아가서 리디페이퍼라이트(리페라)나 아이폰, 맥북 등 제가 가지고 있는 모든 디바이스에서 독서노트를 볼 수 있습니다.기존에 가지고 있던 가장 큰 불편한 점이었던 독서노트 타이핑은 리디북스 덕분에 없어졌고, 독서노트는 리디북스 어플로 대체되었습니다. 고민 해결!장아라blankcorp
조회수 1092

고객의 숨은 요구를 찾아라! ‘LG 그램’ 마케터 3인방

‘LG 그램’이 등장하기 전까지 국내 노트북 시장은 ‘가격’과 ‘성능’ 중심의 경쟁이었습니다. 2014년, LG전자가 ‘LG 그램’을 출시하면서 노트북 업계의 화두는 ‘무게’가 중요한 선택 기준이 되었습니다.이후 고객들의 숨은 요구와 불만을 확인하기 위해 노력한 결과 ‘사용시간’이라는 키워드를 확인했습니다. 그리고 2017년 LG전자는 ‘시간’을 혁신한 ‘LG 그램’을 출시했습니다.2017년 ‘LG 그램’의 탄생 뒤에는 소비자의 요구를 정확히 캐치하고, 노트북의 새로운 방향을 제시한 그램 마케터들이 있었습니다. LG전자 PC마케팅팀 이동한 책임, 조홍철 선임, 백하늘 선임이 그 주인공입니다.# ‘LG 그램’ 마케팅 담당자 인터뷰 : 이동한 책임, 조홍철 선임, 백하늘 선임l 왼쪽부터 조홍철 선임, 백하늘 선임, 이동한 책임고민의 시작, 고객의 숨겨진 요구를 찾아라! 마케팅팀은 고객이 노트북에 어떤 요구를 하는지 알아내기 위해 노력했습니다. ‘배터리’는 구매 전 고객들의 우선순위에서는 낮은 비중을 차지했지만, 실제 구매 후 사용하는 고객들은 충분하지 못한 ‘사용시간’에 대한 요구가 많다는 것을 확인했습니다.이동한 차장 : 드러난 고객의 요구는 채울 수 있습니다. 중요한 건 고객이 말하지 않는 ‘숨겨진 요구’를 찾는 것이죠. 고객을 관찰해서 찾은 것이 바로 ‘배터리’였어요. 늘 어댑터를 가지고 다녔기 때문에 크게 불편하다는 인식을 하지 못했던 거죠. ‘올데이 배터리’를 새로운 구매 기준으로 제시한다면, 한계 효용가치가 엄청날 수 있겠다는 생각이 들었어요.조홍철 과장 : 노트북의 본질은 들고 다닐 수 있는 ‘휴대성’이에요. 다시 말해, 가볍고 오래가는 것이 핵심입니다. 직접 사용해 보기 전에는 ‘배터리’와 관련해 큰 요구가 없었지만, 실제 사용자는 배터리 관련 요구가 많았어요. 실사용 시간을 체크해보니 짧게는 3시간 길게는 7~8시간을 코드 없이 쓰더라고요. 최소 10시간 이상, 2배는 늘려야 고객이 만족할 수 있겠다고 판단했습니다. 시장에 기준을 제시했을 때도 금방 따라오더라고요. 더욱 자신감을 가지고 진행했죠.백하늘 사원 : PC의 경우 시장 트렌드가 중요합니다. 우리가 트렌드를 선도하고, 다른 회사들이 따라오게 해서 이슈화하는 거죠. 이를 위해 개발실에서 우리의 가설이 맞는지 계속 검증합니다. 우리는 고객에게 계속 물어보고, 내부적으로는 기술적으로 실현 가능한지 타진합니다.이어지는 고민, 혁신을 보여줄 방법을 찾아라!마케팅팀의 고민은 여전히 남아 있었습니다. 신소재인 탄소나노튜브를 사용하는 등 기술적 진보로 무게를 유지하며 배터리 용량을 늘리는 건 가능했지만, 이에 따른 ‘시간의 혁신’을 고객에게 직관적으로 보여줄 방법이 마땅치 않았던 것인데요. 돌파구는 역시 고객이었습니다.백하늘 사원 : 기존 ‘무게의 혁신’은 저울이라는 직관적인 툴을 활용했는데, ‘시간’의 경우에는 표현하기 어려웠어요. ‘단 한 번의 충전으로 최대 24시간’과 같은 광고 카피로 실제 사용을 유도하는 쪽으로 표현하고 있습니다.이동한 차장 : 마케팅은 고객 이야기를 많이 듣고, 핵심 기능을 고객이 이해할 수 있도록 실증을 해서 피부에 와 닿게 해줘야 합니다. 배터리 용량이 기존 34Wh에서 60.6Wh로 커진 것을 고객이 이해하기 쉽게 ‘한 번 충전으로 하루 종일 사용하는 컴퓨터’로 풀어 메시지를 잡았죠.조홍철 과장 : 같은 맥락에서 ‘외장배터리 충전’을 지원하지 않은 부분이 있는데, 실제 외장배터리로 충전하는 속도보다 배터리가 방전되는 속도가 빨라 효용성이 낮거든요. 그래서 이 부분을 제외했어요. ‘방전되면 외장 배터리로 충전할 수 있다’는 메시지보다 ‘충전을 하지 않고도 하루 종일 쓸 수 있는 노트북’이라는 점이 고객들에게 훨씬 더 가치가 있겠다고 생각했습니다.오해와 우려, 고객의 불안을 해소하라!실제 온라인에서 ‘LG 그램’이 휘어지는 사진을 보고 내구성에 불안감을 느끼는 고객들이 나타났는데요, 이를 어떻게 해소할지 고민했습니다. 제품의 강화된 강성을 보여줄 수 있으면서 불안 요소는 지워야 했습니다.이동한 차장 : 기존보다 얇아진 14인치와 15.6인치 제품이 나왔을 때 내구성 관련 우려의 목소리도 있었어요. 하지만 강성을 확보하기 위해 플랙서블하게 설계한 결과물이었어요. 휘어지는 게 부드러운 것이지 약한 게 아니거든요. 올해 신제품 발표회 행사에서 이런 기술적인 배경을 언급하니 약하다는 인식이 줄고, 오히려 좋은 평가가 나오더군요.조홍철 과장 : 키패드의 경우도 무게를 줄이기 위해 단자를 빼거나 하지 않고 오히려 숫자키까지 모두 넣었어요. 사용성 자체가 좋다 보니 키패드 관련 반응이 상당히 좋은 편이죠.3년간의 지속적인 혁신, ‘LG 그램’의 미래 LG전자는 ‘킬로그램(kg)’을 ‘그램(g)’으로 만들자는 목표로 그램 프로젝트를 시작했습니다. 그리고 지금은 고객들에게 초경량 PC는 ‘그램’이라는 인식을 확실하게 심었습니다. 이제는 더 나아갈 계획인데요. LG전자는 지난해 ‘그램 불변의 법칙’에 이어 올해는 ‘그램 진화의 법칙’을 내세우고 있습니다.백하늘 사원 : 개발실에서 사용시간의 혁신을 만들어 냈고 앞으로 마케팅도 고객들이 더 불편한 부분은 없는지 찾아내고 진화할 것입니다.조홍철 과장 : 배터리를 강화한 제품은 앞으로도 많은 업체가 따라올 것으로 예상해요. 저희도 내구성 등 그램의 완성도를 더욱 높이는 방향을 고민하고 있습니다.LG전자는 고객의 목소리를 중심에 두고 연구개발을 이어가고 있습니다. 고객의 숨은 요구까지 캐치하는 마케팅 담당자들이 있는 한 고객들의 만족도는 점차 높아질 수밖에 없겠죠?#LG #LG그룹 #LG전자 #2017년_LG그램 #LG그램_마케팅_담당자_인터뷰 #LG올데이_그램 #그램 #원데이_컴퓨팅 #초경량_노트북 #기업문화 #조직문화 #팀워크 #구성원인터뷰 #직무정보 #직무소개
조회수 1050

SNS의 댓글유형을 유심히 관찰해보았어요.

사실 제 글에는 그런 종류의 댓글이 별로 없긴 한데, SNS를 가끔 보다보면 묘하게 다양한 종류의 댓글들을 발견할 수 있었어요. 페북뿐 아니라 브런치의 댓글도 꽤나 다양한 양상을 보이더라구요. 브런치는 한결 공감과 응원의 스탠스가 더 지배적이긴 하지만요. 그래서 오늘은 재미로 보는 댓글정리를 해볼까 해요. 콘텐츠를 만드시는 분들이라면 댓글 등의 반응에 굉장히 예민할 수 없더라구요.댓글은 크게 5가지 유형의 공격형 캐릭과, 5가지 유형의 방어형 캐릭이 있습니다. 공격형은 주로 직접적인 표현과 의견 개진으로 상대방에게 어떠한 반응을 불러일으키는 스타일입니다. 직접적으로 먼저 댓글을 쓰는 경우가 많죠. 자신의 의견과 틀리거나 너무 공감하거나 또는 그냥 원래 아무말이나 하는 타입이랄까요.공격형캐릭은 이렇게 나뉩니다.1. 아무말 공격형요새 힘들다는 글에 "그런데 여기 서울숲 아닌가요?" 댓글을 다는 식이죠. 의식의 흐름이 어떻게 흘러가는 지 모르겠지만 두뇌의 활발한 자유를 부여한 타입입니다.2. 변태주로 메시지공격으로 정확성을 높여요. 친해져도 될까요? 내지는 갑자기 손을 흔든다거나, 연락처를 갑자기 물어보기도 하죠. 결혼했냐? 를 물어보기도 해요. 제발 그러지 말아요.3. 꼬투리테이커 & 불편러그런데 그건 잘못된 거 아닌가요?, 그게 잘못인가요?, 그거 먹는다고 죽나?, 그렇게 예민하면 어떻게 삽니까 등.. 물론 불편해서 의견개진을 할 순 있는데, 편의점 알바가 '봉투 드릴까요?' 라고 말할 때 '아니 그럼 맨 손으로 들고가욧?!' 이라고 대꾸하는 느낌입니다.(좋은 말로 해도 될 걸) 주로 의문문 형태를 추구합니다.4. 모든 게 슬픈 타입저도 그런 적이ㅠㅠ, 담에 봬요ㅠㅠㅠㅠ, 힘내세요ㅠㅠㅠ, 건강이 중요합니다ㅠㅠㅠㅠㅠ 등...항상 울어벌임5. 찬미와 찬양을 즐겨하는 타입아침에 피어난 샛별의 이슬처럼 아름다우십니다. 오늘도 맑은 하늘같은 청량한 하루가 되세요. 언제나 그 미모가 변치 않으십니다. 우리들의 인연에 감사드립니다. 등.. 이 분들의 형용사 수식능력은 정말 화려함의 극치에요. 약간 신라시대의 건축양식을 보는 듯한 느낌이에요. 직접적인 공격이라고 하긴 어렵지만, 받는 사람에게 부담을 줄 수 있죠. 특히 저런 댓글엔 모란이나 이슬, 인연 글귀/사진이 많이 달려요.약간 이런 느낌방어형 캐릭방어형 캐릭은 주로 위 공격형 댓글의 대댓글 형식으로 많이 진행되며, 공격에 대한 방어 또는 카운터어택의 형식을 많이 띠고 있습니다. 방어도 힐링형과 진동형으로 나뉘어요.힐링형은 ㅋㅋㅋ와 ㅠㅠ 등 소극적 감정표현을 통해 상대와 공감/소통하려고 하는 타입이고 진동형은 상대방의 공격에 대해 리액션/역공/튕겨내기/맞장구 등 다양한 커뮤니케이션을 통해 상대의 공격패턴을 역이용하는 경우입니다. 방어형 캐릭도 5가지가 있습니다.1. 모든 것을 거.부.한.다. 대표적인 진동형캐릭이라고 할 수 있어요.예)브로콜리 싫다는 글을 썼어요댓글: 저도 싫어해요ㅠㅠ(슬픔러 등장)방어: 저는 가끔먹긴해요(반박)댓글: 그래도 건강에 좋은건데 드세요(시어머니 등장)방어: 싫은걸 억지로 먹긴..(반박)댓글: 나중엔 드시게 될거예요(예언자 등장)방어: 그렇진 않을 것 같아요^^;;(반박)댓글: 으 브로콜리 너무 싫어!!(공감러 등장)방어: 저는 막 그정도는 아니구요(반박)어쩌라는 거야..2. 무응답대댓글도, 좋아요도 엄지도 하지 않아요. 그냥 바라볼 뿐. 마블유니버스의 왓쳐같은 타입이죠. 힐링형에 속하는 듯 하지만 실상은 진동형에 가까워요. 사실 공격형 댓글은 대부분 그 리액션이 존재할 때 빛을 발하는데, 아무 대댓글이 없으면 공격자 입장에선 보이지 않는 초조함에 시달리곤 해요. 내가 뭘 잘못쓴건가? 기분이 나쁘셨나? 오해한걸까? 등등..3. ㅋㅋㅋ/ㅠㅠ타입사실 이 ㅋㅋㅋ는 무표정으로 치고 있어요. 별 할 말 없거나 그닥 그렇게 아무 얘기나 할 사이는 아닌 경우, 피상적인 사이버친구 등등이랄까요.. 현웃이 터지면 ㅋ를 정확히 치기 어려워요. 대부분 ㄲ,ㄱ이 섞이기 마련이죠. ㅋㅋㅋ가 10개 이상이거나 '아 씨밬' / '미친' 등이 붙기도 하구요.. ㅠㅠ도 마찬가지. 힐링형에 속하는 방어타입이에요.4. 말없이 표정으로 승부하는 타입댓글없이 좋아요, 슬퍼요, 화나요, 멋져요만 눌러 감정을 표현해요. 힐링형이죠. 브런치에선 라이킷만 누르고 가는 타입이에요. 대부분은 웃겨요나 멋져요를 사용하거나 엄지를 주는 경우가 많아요.5. 우리 언제봐요 타입대부분의 댓글에 우리 언제봐요 시전해요. 진동형에 속하며 오프라인에서 직접 인연이 닿은 경우나 또는 그냥 한 번 보고싶은 경우, 궁금한 경우, 상대방이 흑심이 있을 경우, 그냥 변태인 경우 등등이 있어요. 50%의 확률로 진짜 친한 사이던가, 아니면 상대입장에서 왜 자꾸 보자그럴까...아젠다도 없으면서.. 라는 생각을 불러일으켜요. 기타댓글 타입1. 격려형고생한다, 멋지다, 여윽시!, 항상 멋지십니다!2. 드립퍼짤과 개드립이 난무함. 진지파괴자. 저같은 타입이에요.3. 속마음 말하는 유형좋아요!(너무했나?) 이런 식으로 괄호를 즐겨써요. 덕후체와 비슷한 것 같아요. 4. 변태Quiero sex un beso! 등등 외국어 댓글이나 하앍.. 등등을 적더라구요. 여름철 휴가사진에 주로 달려요.5. 모놀로그하아..가고싶다 / 일만 아니면.ㅠㅠ / 아쉽네요.. / 예전엔 그런거 했었는데... / 연차쓰고싶다... 등등 혼잣말을 즐겨쓰십니다.6. 뜬금포브로콜리 싫어요란 글에 "근데 예전에 고등어도 싫다고 하지 않으셨어요?"  대댓글 : 네?를 유발시키죠.7. 안분지족흐르는 강물처럼 다 지나는 일 아니겠습니까, 마음을 편하게 가지시고 힘내세요. 등등.. 현자의 모습을 보여주시는 분들도 있어요.8. 크리스챤주님의 인도하심으로 곧 좋은 일이 있을거예요! 그분의 뜻을 기다리쟈구요!9. 점점점과 아재체맞아여... 완죤 좋더라구여!, 으떻하지..하아 힘들다.... 등등 보통 점점점은 반드시 3개 정도를 쓰십니다.10. 모란꽃과 인연짤친구수락에 감사드립니다, 좋은 인연 만들어나가요!(+모란꽃)11. 겸손한데 뭔가.. 제가 알기론 그거 아니예요!!! 물론 제가 틀릴수도 있지만요... 유형이에요. 뭔가 기분이 나쁜데..안나쁘기도 하고 겸손한 것 같은데 아닌 것 같기도 해서...반응하기 참 애매한 타입이죠.12. 단호한 타입네? / 아닌데요? / 절 아시나요? 등 주로 3,6번의 공격의 방어타입으로 사용13. 지나가는 행인형하아... / 대표님 왜이러세요.. 등등 그냥 스치는 바람같은 말들을 남기고 가시는데 가끔 댓글 뒤에 (지나가던 행인) 등을 붙이기도 해요. 14. 감사합니다.모든 댓글에 '엄지/멋져요'를 눌러주고 감사합니다^^/~/.../! 등을 붙여요..사실 딱히 뭐라 할 말이 없어서 그냥 쓰는 경우도 종종 있어요.-보너스 : 메시지타입페북 메시지는 크게 좋지 않은 메시지와 실질적 메시지로 나뉘어요. 실질적 메시지는 주로 내가 요청한 어떤 이슈에 대한 응답이나 신청 등의 유형이 주를 이루거나, 사업관련된 미팅제안인데 개인적으로 얘기해야 할 경우, 또는 친분이 있는 상태이지만 연락처까지 주고받진 않은 경우 카카오톡으로 넘어가기 위한 중간 브릿지 정도로 활용된다. 바이프로스트 같은 역할이에요.. 하지만 페북으로 의뢰를 툭 던지면 기분이 나빠요. 약간 SNS에도 예의와 무게감이란 게 알게 모르게 있는데, 페북은 가장 하찮은 무게감을 지니고 있는 느낌이에요.간혹 친구수락에 감사드립니다, 어디서 보고 친구신청했습니다 수락감사드립니다. 등등의 인사메시지가 오기도 해요. 이것은 꽤나 정중하고 감사한 일이라고 할 수 있죠. 물론 답변은 대부분 '네^^감사합니다..' 등으로 갈음하곤 해요.근데 나머지는 대부분 변태사람들이 주를 이루는데, 뭐랄까 일단 손흔들기. 뭐임? 또는 아름다우십니다, 한번 만나봬도 될까요? 나 다짜고짜 '연락처 좀 알려주실 수 있으세요?' / 저 어디에 누군데 도와드릴 수 있을 것 같습니다(니가 뭘) / 가까운 데 계시는군요. 차라도 한 잔 하시죠 등등의 친한 척 지리는 한따까리 음모성 메시지가 참으로 많았어요..특히 여자대표님이나 좀 이름알려진 스타트업/대기업출신 등의 여성페친님들에겐 이게 극도로 심한 듯 해요.. 프사를 간만에 잘나온 인생셀카로 바꿔놓으면 메시지는 하루에 30건이 넘어가기도 한다더라구요. 그래서 견디다 못한 분들은 해남고구마 10kg에 34,000원 판매 프사로 바꿔놓기도 하고 그래요. 세상엔 수많은 다양한 인류가 살고 있고, 참으로 이 생명의 다양성에 다시 한 번 무릎을 탁 치게 됩니다. 좋은 댓글문화를 만들어 나갑시다.(급교훈)
조회수 1318

미드레이트 ★벤처기업인증★ 획득했어요

안녕하세요!  오랜만에 찾아온 남자사람이에요^^~~방가~~방가~~나만~~방가~~ ㅠ..(반가움 구걸중....ㅠ)오늘 하루종일 네이버가 왜이렇게 떠들썩 한가 했더니.....아!! 미드레이트가 기술보증기금으로부터벤처기업인증을 획득했기 때문이었군요!!~^^네이버에 기사가 어마어마어마어마어마어마어마 하네요!우와~  감당안돼~  그마안~~ 기사는 이제 그만 올려주세요!! 너무 많아욧!!반어법입니다 기자님들 진심으로 사랑합니다(엄격 진지)......실시간 검색어도 이제 그마안~  (폰트가 좀 티나나요? ^^ 헤헷  속아줘용~)자 여기 제 마음의 선물~죄송합니다..긁어부스럼..( 맞아도 싸지!)기사에 있는 사진이 작아서 안보이시는 분들을 위해 확대 확대!!왜들 표정이 안좋으시죠??아!! 이분들께 관심이 있으셨던게 아닌가요?!!  죄송합니다..눈치없이...네 ..이해합니다..^^!사실 저도..뭐.....그렇게..막...보고싶고그러지..는....않았.........퍽!!!.. ㅠㅜ.........휴 살았네....그럼 다시 정신차리고 조금 더  확대 해볼께요!!!!우와!!  요거 보고싶으셨던거죠^^?저~ 위에 사진보다 요 사진이 더 잘생겼죠??^^;;앞으로도 항상 발전하는 잘생긴 미드레이트가 되기위해 노력할께요^^!저는 당분간...대표님과 이사님 두분 피해다녀야 할 것 같아요!^^.#미드레이트 #벤처인증 #회사소개 #P2P금융

기업문화 엿볼 때, 더팀스

로그인

/