스토리 홈

인터뷰

피드

뉴스

조회수 1890

스타트업 창업자에게, 투자란?

스타트업을 4번 창업해보면서, 과연 투자, Funding이 갖는 의미에 대해서 이렇게 진지하게 생각해 본 적이 있었나 싶다. 어찌 보면 너무 어리고 모르기도 했었던 것 같기도 하고, 실제로 투자가 자금 그 이상도 이하도 아닌 생존을 위한 수단이었던 경험들이 더 많았던 것 같다. 그러나 이번에 핀다를 시작하고 투자를 2번 받게 되면서 이에 대해서 다시 생각해 볼 수 있는 계기가 되어 그 생각을 공유해보고 싶었다.(본격적으로 글을 쓰기 전에) 핀다(Finda) 를 시작한 지 1년도 되지 않았고, 아직은 초기 기업이기에, 다른 훌륭한 창업자들과 선배님들에 비하자면, 사실 많이 짧은 생각일 수 있다. 그래서 지극히 주관적이고 개인적인 생각임을 먼저 알리고 싶다.투자는 언제 받아야 할까?가장 많이 듣는 질문이다. 나 또한 스스로에게 그리고 초반 공동창업자인 홍민님과도 가장 많이 이야기했던 요소가 바로 '타이밍'이었다. 왜냐하면 피말리는 경험을 한 적이 있기 때문이다. 정말로 자금이 천만 원 이하로 떨어져서 두 달치 급여를 주지 못했을 만큼 투자 타이밍을 놓쳤을 때. 다시는 그런 경험을 하고 싶지 않을 만큼 힘들었다.개인적으로는 두 가지가 가장 중요하다고 생각한다. 1) 앞으로 1년 이상의 시간 동안 정말 우리 회사가 만들고 싶은 제품과 서비스 그리고 팀에 얼마나 자금이 필요할지, 2)그리고 그 자금을 어떤 방식, 즉 투자인지 매출인지 등으로 채워나갈 수 있을지가 어느 정도 자신 있게 그림 그릴 수 있을 때를 아는 것. 물론 초기에는 도화지에 스케치했던 것들을 여러 번 지우고 덧 그리기는 했었지만, 뼈대를 잘 살렸다면 계획도 잘 세우고 좋은 타이밍에 투자를 받았다고 평가해도 좋을 것 같다.하나의 부수적인 팁으로는 어느 정도 runway가 남았을 때 IR을 시작하는 것이 내게는 좋았던 것 같다. 우리 회사의 경우 약 8개월 정도 자금이 남았을 때 본격적으로 IR을 시작했는데, 그래서인지 마음이 덜 조급해지기도 했고, 결과적으로는 매우 운이 좋게도 빠르게 투자를 유치하는데 큰 도움이 되었다.투자는 누구에게 받아야 할까?창업자라면 한 번이라도 고민했을 부분이라고 생각한다. 예비창업자라도 부모님, 친구, 지인 등에게 작게라도 투자를 받고 시작할 수 있을 거라고 생각할 수 있으니 말이다. 사실 투자를 고민할 때 가장 먼저 생각이 드는 질문이기도 하다. 이에 대한 고민을 할 때마다 나는 주변에 창업 선배님들이나 예전 투자자분들 그리고 멘토분들에게 많은 조언을 구하고 있다.2014년 7월 투자자이자 스타트업멘토인 이택경대표님, 호창성대표님, 정세주대표님, Scrum Ventures 의 Tak, 류중희대표님, 임정욱센터장님 그리고 비석세스 정현욱 대표이에 대해서는 내 경험을 조심스럽지만 꼭 공유하고 싶다. 지금까지 투자자들은 적어도 내가 해결해나가는 문제에 크게 공감해 주셨던 분들이었던 것 같다. 그래서 만약 공감해주는 분들을 만난다면 그 ‘관계’가 매우 중요하다고 생각했다. 물론 투자를 받았던 ‘나의’ 투자자이든, 받지 못한 아쉬운 분들과의 관계 모두…모두에게 인정받을 수는 없지만, 하지만 관계가 없거나 안 좋다가도 다시 좋아질 수 있다. 그리고 다시 기회는 올 수 있다! 생각지도 못했지만 현재의 투자자가 된 퓨처플레이와의 첫 만남은 잊을 수가 없다. 정부 자금지원을 위한 후보자들의 IR이 있는 날인데, IR인 줄 모르고 참석해서 제대로 발표를 망쳤는데, 난 아직도 그 실망한 투자팀들의 표정을 잊을 수가 없다. 아직도 떠올리면 등에 땀이 날 정도다.그때 어떤 생각이었는지 1주일 이후에 다시 한번 기회를 달라고 사정했고, 아주 가까스로 1달 뒤 정부자금 지원에 성공했다. 그 날 이후로 주말 없이 미국과 한국팀과 함께 자료를 만들고, 최종 발표 전에는 선정릉 공원을 돌며 발표자료와 스크립트를 중얼거리며 준비했었다. 하지만 결론적으로는 본사가 미국에 있고 한국인 지분율이 크지 않아 최종 심의에서 떨어졌고, 그렇게 퓨처플레이와는 관계를 다하는 듯했다. 하지만, 생각지도 못하게 이번 창업 아이템에 대한 고민, 그리고 시작 그리고 두 번의 투자를 모두 류중희 대표님 그리고 퓨처플레이와 함께하게 되었고 그렇게 관계는 시간에 따라 바뀌어가지만 계속 이어지고 있다.그리고 두 번의 투자를 리드했던 500 스타트업, Tim Chae와 샌프란시스코, 500 Stratups, 500 Kimchi는 너무나 할 이야기가 많아, 다음 기회에 다시 하도록 하겠다.2015년 2월 500스타트업 데모데이 때 현 500 Kimchi 의 Tim Chae Partner와 Founding Partner인 Dave Mcclure와 함께 핀다는 투자를 통해 어떤 것들을 이루고자 하나?첫 번째, 제대로 된 프로덕트와 서비스의 구축이다. 현재까지 핀다는 풀어나가고 싶은 문제의 1/100 정도를 풀었다. 금융상품을 가입하고 개인의 자산을 관리하는데 개인들이 겪고 있는 문제점은 정말 너무나도 많다. 그러기 위해서는 이 문제를 함께 풀 수 있는 정말 좋은 팀이 필요하다. 프로덕트와 서비스를 기획하고 설계하고 개발하고 풀어나가는데 더 많은 사람들과 함께하고 싶다.둘째, 고객들에게 정말 유용한 콘텐츠를 많이 생산하고 전달할 예정이다. 학창 시절 소위 ‘경제’라는 과목을 배웠지만, 실제 ‘개인금융’과 직결되는 경제에 대해서는 정말 회사를 취직해서도 아무것도 아는 것이 없었다. 부모님에게로부터 독립하지 못했기에, 무지한 채로 돈을 벌게 되었고 버는 족족 나가기가 일 수였다. 엄마에게 통장과 알지 못하는 보험 등을 넘겨받았을 때 당황했던 그 순간을 아직도 잊을 수가 없는데, 그 이후로 제대로 된 교육은 아니었지만 내게 필요한 정보를 찾고 적용하는데 무려 10년이나 걸렸다. 특히 부모님과 다른 시대를 살고 있는 우리들에게 부모님과 같은 금융생활, 절약, 투자, 저축 이 모든 게 너무나 달랐기에 우리 밀레니얼들이 필요한 금융 정보는 정말 필요하다고 생각한다.       마지막으로, 우리 팀을 위해 쓰고 싶다. 늘 넉넉하지 못하더라도, 지금까지 최고의 팀원에게 주는 상, 그리고 두 번의 명절, 생일, 결혼, 돌과 같은 경조사 그리고 아주 가끔의 회식 등을 통해 격려와 축하를 나누려고 홍민 님과 노력했고 앞으로 더 노력할 예정이다.이 모든 것을 가능하게 만드는 데 우리 핀다의 선택은 투자였고, 앞으로도 투자와 그리고 매출을 통해 더 많은 꿈들을 이뤄내고 싶다. Build Things that Matter.#핀다 #스타트업 #창업자 #창업가 #투자유치 #자금유치 #자금조달
조회수 3266

모니터링 기본 상식 - CPU Steal Time

클라우드 서비스를 사용하시는 많은 분들이 CPU Steal Time에 대해 문의합니다. CPU Steal은 클라우드 서비스와 물리 서버의 환경차이에서 발생하는 대표적인 지표이기도 합니다. CPU Steal Time이 높아지면 CPU 부하율이 높아지기 때문에 웹 서비스에 장애를 초래하기도 합니다. 가상화를 위해 자원을 분배하는 과정에서 cpu의 자원을 빼기는 것이기 때문에 클라우드 사용자 입장에서는 억울한 감이 있는 지표이기도 합니다. 하지만 클라우드 서비스가 공유 자원을 효율적으로 사용하는 것이기에 어쩔 수 없는 부분이기도 합니다. 그럼 이 CPU Steal Time 또는 CPU Stolen Time이라고 불리는 지표에 대해 알아보도록 하겠습니다.  CPU Steal Time이 무언가요?CPU Steal time은 은 하이퍼 바이저가 다른 가상 프로세서를 서비스하는 동안 가상 CPU가 실제 CPU를 기다리는 시간을 백분율로 표시한 값입니다.가상 환경에서 동작하는 가상 시스템 (VM)은 단일 호스트에있는 다른 인스턴스와 리소스를 공유합니다. 공유하는 리소스 중 하나가 CPU주기입니다. VM이 실제 서버에있는 동일한 크기의 4 개의 VM 중 하나 인 경우 해당 CPU 사용률은 모든 CPU주기의 25 %로 제한되지 않습니다. CPU 사용 비율보다 많은 비율을 사용할 수 있습니다.CPU Steal Time은 어떻게 확인하는가?Linux top 명령을 실행하면 주요 성능 메트릭의 실시간보기를 볼 수 있습니다. 그 중 하나는 CPU를위한 것입니다.이미 경험 한 두 가지 통계는 % id (percent idle)와 % wa (percent I/O wait)입니다. % id가 낮 으면 CPU가 열심히 작동하고 있는 것이며 % id가 높으면 남은 용량이 많지 않은 것입니다. % wa가 높으면 CPU는 실행할 준비가되었지만 I / O 액세스가 완료 될 때까지 기다리고 있습니다 (디스크에 저장된 데이터베이스 테이블에서 행을 가져 오는 것과 같습니다).% st 또는 % steal time은 표시된 마지막 CPU 메트릭입니다.CPU steal time이 높으면 어떤 상황이 발생하는가.백그라운드에서 장시간 걸리는 작업의 경우, 다른 VM들과 CPU 주기를 공유하는 과정에서 조금 더 느리게 작업이 마무리 될 수 있습니다. CPU steal time은 이런 경우 작업을 중지시키는 요소로 작용하지 않습니다. 가끔은 리소스를 나누는 과정에서 작업이 더 빠르게 끝나기도 합니다. 하지만 웹앱의 경우 실시간 처리가 필요한 경우들이 있습니다. 많은 웹 응답이 이뤄져야 하는 상황에서 cpu steal time이 높아지고, 그로인해 성능이 4배이상 감소한다면 중요한 리케스트가 처리되지 못하면서 서비스에 장애가 발생할 수도 있습니다. CPU steal time이 높은 원인은?cpu steal time이 높은 원인은 둘 중 하나입니다.  더 많은 CPU 리소스를 가지고 있는 VM을 필요로 합니다. (여러분의 문제입니다.)물리버서가 과대 판매되어 가상화 장비가 공격적으로 경쟁하는 상황입니다. (여러분의 문제가 아닙니다. 아마존 나빠요.)아쉽게도 cpu 매트릭만으로 위 두가지 상황을 판별하는 것은 쉽지 않습니다. 하지만 같은 역할을 하는 복수의 호스트를 여러개 가지고 있다면 다음과 같이 분별해 볼 수 있습니다.  1. 리소스 부족의 경우위 그림처럼 모든 VM에서 %st(cpu steal time)이 높다면 시스템이 더 많은 cpu를 사용해야 한다는 것을 의미합니다. 더 높은 사양의 VM을 선택하셔야 합니다. 2. 클라우드 사업자의 과다 판매의 경우위 그림처럼 일부의 VM에서만 %st(cpu steal time)이 높다면 같은 물리 호스트에 있는 다른 VM들이 서버의 자원을 과다하게 사용하고 있을 확률이 높습니다. 물리적으로 다른 호스트로 이동하여 해결 할 수 있습니다.대처 방법을 알아보자.일반적인 경우 steal time이 20분동안 10%를 넘기는 상태에서 유지되고 있다며, VM은 정량 보다 느리게 동작하고 있을 것입니다.인스턴스를 중지하고 다른 물리 서버로 이동하세요. 그래도 steal time이 높다면 cpu 리소스를 업그레이드하세요. 그리도 steal time이 높다면 클라우드 서비스 제공자에게 문의하세요.클라우드 서비스가 과설계된것은 아닌지 알아보세요. 와탭을 사용해서 cpu steal 매트릭을 추적하세요. 최근 와탭에 들어오는 가장 많은 문의 중 하나가 cpu steal입니다. cpu steal로 인해 cpu 부하율이 80%이상으로 올라가는 경우 클라우드 서비스에 익숙하지 않은 분들은 많이 당항하게 됩니다. 이런 경우 너무 곤란해 하지 마시고 일회성 이슈인지 체크하시고 반복된다면 cpu 리소스를 업그레이드 하거나 서비스를 다른 물리서버로 이동하시기 바랍니다. 제가 가지고 있는 sample중에 cpu steal이 나온 케이스가 없지만 whatap.io는 cpu steal 값을 5초마다 저장하여 제공합니다.  관련 urlhttp://hakurei.tistory.com/67[Linux] 가상환경에서의 CPU Steal Time 개념물리 장비에다가 여러대의 가상머신을 두는 가상환경을 구축하는 경우가 많다. 가상머신이 많아지는 경우, 동일한 물리 장비에서 제공되는 환경이다보니, 특정 가상머신이 CPU를 많이 차지하게 되면, 다른 머신들도 따라서 느려지게 되는데, 이 현상을 CPU Steal이라고 한다. CPU를 많이 차지하고 있는 머신의 CPU Steal Time은 낮게 측정이되고, 같은 물리 장비에 구성된 다른 가상 머신의 경우 CPU Steal Time이 높게 측정이..hakurei.tistory.com http://www.stackdriver.com/understanding-cpu-steal-experiment/» Understanding CPU Steal – An Experimentwww.stackdriver.com http://blog.scoutapp.com/articles/2013/07/25/understanding-cpu-steal-time-when-should-you-be-worriedUnderstanding CPU Steal Time - when should you be worried?blog.scoutapp.com #와탭랩스 #개발자 #개발팀 #인사이트 #경험공유 #일지
조회수 959

BarkeMon Go Design

요즘 전 세계에 Pokemon Go 광풍이 불고있다. 페북 타임라인의 90%이상이 포켓몬고 관련 소식으로 도배가 될 정도다. 우리나라에는 지도관련 이슈로 서비스되는 지역이 거의 없지만, 속초지역에 가능하다는 소식에 속초행 버스표가 매진될 정도다.사실 필자가 서비스 중인 바크 앱도 1/위치기반 앱, 2/모든 유저가 8개의 개 캐릭터가 되는 앱, 3/익명의 사람들과 즐기는 앱이라는 3가지 이유로 포켓몬고와 어느정도 유사한 점이 있다... 라고 말하면 욕먹을 수 있으니 그냥 유사한 가치를 전달하기를 희망한다... 로 하겠다.이에, Pokemon Go를 패러디해서 BarkeMon Go를 디자인 해 보았다. 다음과 같은 기본적인 앱 피처가 존재하는 AR 위치기반 어플이다. (어디까지나 패러디임을 다시한번 밝힌다)1. 메인 화면에서 바크를 짖다 보면 근처에 있는 바크 유저가 디텍트 된다.2. 바크 유저가 사정거리 안으로 접근하면 AR모드로 전환된다.3. AR모드에서 아직 저 유저가 누군지는 모르나 그 유저의 캐릭터가 보인다.4. 캐릭터에 바크볼을 던져서 그 유저를 캐치할 수 있다.5. 캐치된 유저는 에너지가 다 달게되고 캐치한 유저는 에너지팩, 레벨업 등 다양한 혜택을 얻는다.근처에 있는 바크 유저 디텍트내가 만일 강남역에 있다면, 바크 앱을 키고 다음 동영상과 같이 바크를 겁나게 짖어본다. 현재 반경 1마일 이내에 있는 유저들이 보이고, 서로 짖을 수 있다.<iframe width="940.000000" height="529.000000" src="//play-tv.kakao.com/embed/player/cliplink/v2cacshmNlMnmw4JJsxqM3s@my?service=daum_brunch§ion=article&showcover=1&showinfo=0&extensions=0&rel=0" frameborder="0" allowfullscreen="">근처에 있는 바크 유저에게 마구 짖어댄다.사정거리 내 접근 시 AR모드 전환내가 일부러 근처에 있는 유저를 디텍트하면서 접근할 수 있다. 물론 상세한 지도는 보이지 않는다. 상세한 지도가 보이게 되면 개인정보보호 이슈도 있고, 유저 발견이 너무 쉬워지니까. 서로 반경 50m 이내로 근접하게 되면 AR모드를 킬 수 있다. 아래와 같이 AR모드를 키고 유저를 찾다 보면 그 유저가 있는 방향에서 그 유저의 캐릭터가 보인다. 포켓몬고에서 하는 것 처럼 저 유저를 향해 바크볼을 던진다. 서로 먼저 바크볼을 던져서 캐치하는 유저가 이기는거고, 바크볼에 갇힌 유저는 바크에너지가 전량 소모된다. 이긴 유저는 바크 에너지팩, 레벨업 등 다양한 혜택을 얻는다. 50m 이내에 유저가 접근하면 AR모드로 전환할 수 있다.신개념 소셜 AR게임 BarkeMon Go!!포켓몬고는 트레이너가 근처에 있는 포켓몬을 잡는 게임이라면 바크몬고는 실제 바크 유저를 잡는 게임이다. 아래와 같이 다양한 장소에서 걸어다니는 실제 바크 유저를 잡는 재미가 있는 앱이다. 출시 예정일은... 미.. 미정이다. 글쓴이는 스팀헌트 (Steemhunt) 라는 스팀 블록체인 기반 제품 큐레이션 플랫폼의 Co-founder 및 디자이너 입니다. 비즈니스를 전공하고 대기업에서 기획자로 일하다가 스타트업을 창업하고 본업을 디자이너로 전향하게 되는 과정에서 경험한 다양한 고군분투기를 연재하고 있습니다.현재 운영중인 스팀헌트 (Steemhunt)는 전 세계 2,500개가 넘는 블록체인 기반 앱들 중에서 Top 10에 들어갈 정도로 전 세계 150개국 이상의 많은 유저들을 보유한 글로벌 디앱 (DApp - Decentralised Application) 입니다 (출처 - https://www.stateofthedapps.com/rankings).스팀헌트 웹사이트 바로가기
조회수 2227

스켈티인터뷰 / 스켈터랩스의 PM 이민학 님을 만나보세요:)

Editor. 스켈터랩스에서는 배경이 모두 다른 다양한 멤버들이 함께 모여 최고의 머신 인텔리전스 개발을 향해 힘껏 나아가고 있습니다. 스켈터랩스의 식구들, Skeltie를 소개하는 시간을 통해 우리의 일상과 혁신을 만들어가는 과정을 들어보세요! 스켈터랩스의 PM(Parenting Master & Product Manager) 이민학 님을 만나보세요:)사진1. 스켈터랩스의 Parenting Master & Product Manager 이민학 님Q. 뻔한 첫 질문이지만, 자기소개를 부탁한다.A. 이름은 이민학. 이전까지 UX 기획 일을 주로 하다가 이번에 스켈터랩스에 합류하며 PM(Product Manager)을 맡게되었다. 이제 스켈터랩스에 입사한 지 2개월이 조금 지났다. Q. 스켈터랩스에 어떻게 합류하게 되었는가.A. 지인을 통해 스켈터랩스를 알게되었다. 스켈터랩스가 소개된 뉴스기사나 페이스북 등의 컨텐츠를 보면서 ‘재미있는 회사구나’ 라는 생각을 막연히 가지고 있었다. 때마침 4차 산업혁명이 본격적인 화두로 떠올랐고, 세상이 어떻게 바뀔지 모르겠다는 생각도 했다. 지금까지의 산업 혁명의 특정한 분야가 주도하는 형태로 일어났다면, 4차 산업혁명의 키는 ‘융합'이라고 생각했다. 그리고 융합의 바탕에 인공지능이 존재한다고 믿는다. 현재의 시장보다는 미래 시장을 대비해야겠다는 생각에 스켈터랩스의 합류를 결심하게 되었다.Q. 미래 시장에 대한 준비라지만, 대기업에서 오랜 기간 근무하다가 스타트업에 합류하는 것이 쉽지 않은 결심이지 않은가.A. 쉽지 않았던 것은 맞다. 흔히 잘 할 수 있는 일, 그래서 내가 수행하기 쉬운 업무를 찾아가지 않나. 스켈터랩스의 PM 업무 자체가 내게는 잘 할 수 있는 일도, 수월한 일도 아니었다. 그러나 ‘지금 도전하지 않으면 못한다'라는 생각이 컸다. 주도적으로 기획하고 끌고 나가는 일을 좋아하는 성격이기도 하다. 그렇기에 UX 기획에서 나아가 기획 업무로 영역을 넓혀 왔고, 현재의 업무도 그 연장선상에 있다. 시장에서 도태되지 않으려면 이렇게 하나씩 업무의 영역을 깊고 넓게 헤쳐나가는 일이 필수적이라고도 생각했다. 무엇보다 대기업에서는 직무를 바꾸는 것이 한계가 있지 않나. 때문에 지금 스타트업이라는 새로운 환경에서, PM이라는 한 단계 넓은 업무를 수행하며 커리어를 발전시키고 싶었다. Q. 앞서 지금까지 UX 기획을 주로 맡아왔다고 말했다. UX 기획은 어떤일인가, 그리고 UX 기획과 PM의 업무는 어떻게 다른지 궁금하다.A. UX 기획은 한마디로 사용자의 경험을 바꿔주는 업무라고 생각한다. 예를 들어 코카콜라를 마시던 소비자가 펩시를 마시게 만드는 것이랄까. 그러기 위해서는 물론 제품 디자인부터 마케팅, 개발 등 여러 업무가 필요한데 UX 기획은 이를 전달하는 채널 단에서 다양한 소스를 융합하여 사용자가 느끼는 가치를 만드는 역할이다. 기존의 사용자의 경험을 개선하는 것부터, 완전히 새로운 경험에의 접점을 만드는 것 까지 다양한 업무를 수행한다.이러한 UX 기획은 일종의 업무 영역이 생각보다 명확하다. 어느 정도 기획이 완료되어 있는 상태에서 작업을 진행하기 마련이다. 그래서 UX 기획이 프로젝트를 끌고 나갈 때 어떠한 가치를 사용자에게 전달할 수 있는지 고민하는 작업이라면, PM은 훨씬 그 앞 단의 고민부터 수행하게 된다. 그래서 이전의 업무가 How와 What을 풀어내는 일이었다면, PM은 Why에 대한 답까지 찾아나가야 한다고 말할 수 있다.Q. 설명을 들어도 아직까지 모호한 것 같다. 다시 한 번 질문하고 싶다. PM 업무의 가장 어려운 점을 꼽으라면?A. 나만의 UX를 평가하는 공식이 있다. 가장 단순하게는 100명의 사용자 중에 70명이 좋아한다면  70점이라고 매긴다. 여기서 나아가, 사용자에게 일종의 가중치를 부여한다. 핵심 사용자에게는 3배의 가중치를 매기고, 2차 사용자에게는 1.5배를 주는 식이다. 이런 방식으로 사용자의 가중치 곱을 하여 UX를 평가해왔다. 이 공식이 가능했던 이유는 UX가 기획 단계에서부터 분명한 타깃을 가지고 있고, 타깃에 대해 깊이 알수록 어떤 경험을 제공해야 적절한지에 대한 판단도 가능하기 때문이었다. 그러나 PM 업무는 백지 상태에서부터 출발하는 일이다. 타깃은 물론, 내가 만드는 제품의 가치, 컨셉, 개발에 대한 명확한 이유까지 모두 내가 추론하고 고민해야한다. 이러한 과정에서 나의 추론에 대한 확신이 있어야만 팀원, 나아가 일반 사용자까지도 설득할 수 있다. 이 지점이 가장 어려운 부분인 것 같다. Q. 업무의 수행 영역이 굉장히 넓고 어려워보인다.A. 나도 아직까지는 헤매는 기간인 것 같다. 처음에 UX 기획에서 나아가 기획 업무를 수행할 때에도 초반 6개월은 끊임없이 맨땅에 헤딩하듯 부딪히고 공부하는 과정이었다. 지금의 PM 업무도 마찬가지다. 완벽하게 그림을 그렸다고 생각했는데도 막상 문서화 단계에 들어가면 구멍이 보이기가 일수다. 이 적응기가 6개월보다는 적게 걸리도록 노력하는 중이다.사진2. 스켈터랩스 내에서의 이민학 님 회의 모습Q. 스켈터랩스에서 일을 해 보니 어떠한가. 개인적인 갈증은 해소되었는지.A. 일단 분명하게 이전 업무보다 훨씬 재미있다. 업무 자체의 성격도 그러하지만, 함께하는 구성원들의 열정도 이 재미를 배가시키는 것 같다. 다들 자신이 만드는 서비스에 대해서 애정도 대단하고, 기본적인 태도가 굉장히 액티브하다. 대기업에서 받을 수 있는 업무적 스트레스도 훨씬 덜하다. 가령 대기업에서는 결정권한자가 확실하게 정해져있고, 파워가 크기 때문에 종종 비합리적인 일이 벌어지기도 한다. 결정의 순간에 어쩔 수 없이 한 사람 의견에 끌려갈 때도 많다. 그래서 이전에는 임원에게도 찾아가 ‘당신은 A를 좋다고 하지만 당신은 사실 많은 사용자 가운데 한 사람일 뿐입니다' 류의 설득을 몇 번씩 하기도 했다. 이런 부분이 생각보다 시간이 꽤 소모되었고, 업무 진행 속도를 저해하기도 했다. 그러나 스켈터랩스에서는 의사 결정을 위한 과정 자체가 열려있다. 오픈마인드로 다들 솔직하게 논의하고, 합리적인 판단을 내리기 위해 노력한다. ‘모두의 의견을 반영한다' 라는 말은 현실에서 불가능하다고 생각하지만, ‘모두의 의견을 듣는다'는 가능하다. 사람마다 생각이 다르기 때문에 개발자끼리도, 디자이너끼리도 서로 다른 방향을 제시하는데 이때 효율적이고 합리적인 결정을 위한 논의가 제대로 흘러가는 느낌이다. Q. 그래서 구체적으로 어떤 업무를 맡고있는가.A. 크게 두 가지로 나누어 생각할 수 있다. 첫 번째는 현재 베타버전을 출신한 맥락인식(Context Recognition) 서비스인 큐(Cue)다. 큐는 정식 런칭 전에 비전을 명확히하고 개발을 거쳐 사용자에게 제공할 수 있는 가치를 높이는 작업이 진행되어야 한다. 희미했던 큐의 청사진을 구체화해야 하다보니 다양한 그림을 그려보고 회의를 거치며 영감을 얻으려고 한다.두 번째는 부품 결함 검출(Defect Detection)에 특화된 엔도어(Endor) 솔루션이다. 두들은 이미 공장에 도입되어있고, 높은 결함 판정율을 자랑한다. 1차적 성과를 이미 독보적으로 냈기 때문에, 이후에는 공장의 다른 라인이나 다른 산업 분야에 적용시켰을 때도 원활히 돌아갈 수 있도록 개발을 진행하고 있다. 엔도어(Endor)의 경우 해결할 만한 과제가 눈 앞에 있지만, 시간적 여유가 부족한 상황이다. 그래서 올해의 목표는 숨통을 트이자로 잡았다. 쉬엄쉬엄 하자는 것이 아니라, 일을 효율적으로 할 수 있는 일종의 프로세스를 구축하자는 것이다. 때문에 우리의 핵심 영역이 무엇인지 정확하게 나열해보고 기존 서비스의 확장성을 높이기 위한 고민을 병행하고 있다. 올해의 목표가 성공적으로 완수된다면, 내년부터는 인공지능의 Vision 기술을 활용하여 새로운 사업 기회를 발굴할 계획이다.Q. 한 번에 두 개 프로젝트의 PM 역할을 수행하는 것이 쉽지 않겠다. 여러 개의 일을 병행하는 자신만의 노하우가 있다면. A. 노하우 같은 것은 없다. ‘그냥 버틴다'가 나만의 노하우라면 너무 무책임한가. 이전에는 업무들이 버거운 경우가 훨씬 많았다. 그 때는 그냥 친구들이랑 음악들으면서 술 한잔 하며 스트레스를 풀곤 했다. 그러나 결혼 후 두 아이의 아빠가 된 지금, 스켈터랩스 퇴근 후에는 육아로의 출근을 해야한다. 친구들과 늦은 밤까지 술 마시기가 불가능해졌지만, 다행히도 업무에 대해서는 일종의 면역이 생겼달까. 아무리 버겁더라도 익숙해 진다는 것을 안다. 무엇보다 이 곳에서는 업무 외적인 스트레스는 없다. 두 개의 프로젝트는 현재 각 프로젝트에서 가지고 있는 고민의 결이나 방향성이 완전히 다르기 때문에 병행이 녹록치는 않다. 그렇지만 시간이 지날 수록 더 익숙해질 것이고, 확실하게 업무의 효율이 높아진다는 사실을 경험으로 익혀왔다. 때문에 지금은 그냥 그때 그때 닥쳐오는 일에 매진하려고 한다.Q. 팀을 자랑한다면?A. 큐 서비스를 개발하는 팀인 아이리스(Iris)는 정말 젊다. 실제 나이로도 젊은 편이긴 하나, 무엇보다 분위기가 젊다고 할까. 이전에 여러 프로젝트를 진행해왔지만 이렇게 모두가 눈을 반짝이는 경우는 본 적이 없다. 그만큼 이 서비스에 대해 고민이 깊었고, 애정이 크다는 뜻이라고 생각한다. 억지로 끌려가는 사람 한 명 없이, 모두가 열정을 보이며 훌륭한 팀워크를 자랑하는 팀이다.엔도어 솔루션을 개발하는 두들(Doodle) 팀은 언뜻 보면 상대적으로 조용한 팀이다. 그러다가도 점심을 먹을 때면 다들 수다를 펼치는데, 그 주제가 모두 인공지능 학계의 뉴스나 논문 같은 것들이다. 가끔 대학교에 온 것 같은 느낌을 받을 때가 있다. 학구적인 이들이 모인 만큼 개발에 대한 자발적인 스터디나 토론이 지속적으로 진행되고 있다. 앞으로의 성과가 정말 기대되는 팀이다.Q. 스켈터랩스의 문화에 대한 얘기도 듣고 싶다.A. 스켈터랩스에 입사하기 전에 자율적인 출퇴근 제도가 운영되고 있다는 점은 알고 있었다. 그래도 나는 몇 번이고 되물었다. ‘그래서 보통은 몇시에 출근해요?’. 그러면 답변이 한결 같았다. ‘그냥, 알아서 출근하시면 됩니다'. 자율적으로 출퇴근해서 대체 일이 어떻게 돌아가나 싶었는데, 입사해서 보니 알겠더라. 출퇴근 시간은 중요하지 않았다. 물론 모두가 함께하는 미팅 시간은 존재하지만, 그럼에도 자율적으로 일을 하는 문화가 이토록 훌륭히 책임감있게 정착되어 있다는 점에 놀랐다.그리고 블루룸(탁구, 당구, 게임 등의 시설이 완비되어있는 스켈터랩스의 놀이터)의 경우도, 놀랐던 부분이다. 이런 류의 시설을 많은 기업이 운영하고는 있지만 그것이 그냥 보여주기 식에 그치기가 일수다. 초반에는 잘 운영된다 싶다가도 서로 서로 눈치를 보는 탓에 금방 무용지물의 공간이 되기 쉽다. 그런데 우리는 실제로 너무나도 열심히 블루룸을 즐기고 있지 않나. 블루룸에 사람이 없는 경우를 찾기 힘들 정도다. 최근에는 아이리스 팀 회식을 한 적이 있다. 그때 회식 술자리가 끝나고 나는 육아를 위해 집으로 돌아갔는데, 다음 날 들어보니 팀원들이 모두 회사로 돌아가 2시간을 더 놀고 갔다고 말하더라. 회식을 마치고 회사로 돌아가서 ‘논다' 라고 표현할 정도의 문화, 그 가운데에서도 업무의 책임이 훌륭하게 분배되고 수행되는 문화의 균형이 정말 감탄스럽더라.사진3. 이민학 님의 가족 사진, 두 아이 덕분에 Parenting Master로 거듭났다는 후문Q. 워킹대디로서의 삶도 궁금하다. 하루를 어떻게 보내는가.A. 실무의 반복이다. 회사로의 출근과 집으로의 출근을 둘 다 하고 있다. 아침에는 자유로운 출퇴근 시간 덕에 첫째 아이를 어린이집에 보내고 출근한다. 회사에서 집까지가 가깝지 않기 때문에 붐비는 출근 시간을 피해서 느즈막히 출근하는 것이 편하기도 하다. 스켈터랩스에서는 회의가 잦다. PM이라는 업무 자체가 팀원 모두의 이야기를 듣고 그 속에서 영감을 얻거나 서비스를 구체화하기 때문에 회의가 필수적이기도 하다. 육아를 하며 가장 달라진 점은 ‘불금'에 대한 인식이다. 흔히 직장인들이 금요일을 가장 좋아하고 해방의 기쁨을 느끼지 않나. 나는 사실 반대다. 육아는 생각보다 체력이 많이 소모되는 일이더라. 첫째 딸이 한창 예쁠 시기기도 하여 육아를 하는 것이 마냥 버겁다기 보다는 행복한 순간도 많다. 하지만 왠지 일요일 밤이면 육아 퇴근의 기쁨에 후련하게 잠이 드는 날이 많아졌다.Q. 스켈터랩스에서 개인적으로 이루고 싶은 것이 있다면?A. 우리집에 인공지능 스피커가 있다. 주로 음악을 트는 용도로 사용하는데, ‘동요 틀어줘'와 같은 명령어를 많이 사용했던 것 같다. 그 모습을 지켜본 첫째 딸 아이가 어느 순간부터 스피커 앞에 앉아 말을 걸더라. 그 때 ‘이 아이가 자라나 경험하는 세상은 완전히 내가 사는 세상과 다르겠구나' 라고 느꼈다. 인공지능을 기반의 서비스에 익숙한 딸 아이 또래들이 20년 후에 어떤 세상을 살 것인지 궁금해졌다. 그러면서 자연스럽게 딸 아이에게 어떤 것을 알려줘야 할지, 무엇을 경험하게 해야할지에 대한 고민도 깊어졌다. 지금 내가 하고 있는 일이 20년 후에 펼쳐질 세상에 대한 실마리를 찾는 과정이지 않을까 싶다.일단 1차적으로는 내가 맡고 있는 업무에 대해서 만큼은 A to Z를 완벽하게 커버할 수 있는 역량을 갖추고 싶다. 최 앞단의 기획부터 개발 후의 사용자 반응까지 제대로 측정하고 분석할 수 있는 PM으로 나 자신을 발전시키는 것이 우선 과제인 것 같다. 향후에는 아이에게 자부심있게 소개시켜줄 수 있고 아이의 응원을 받을 수 있는 나만의 일을 만들고 싶다.  #스켈터랩스 #사무실풍경 #업무환경 #사내복지 #기업문화 #팀원인터뷰 #팀원소개 #팀원자랑
조회수 4851

커뮤니티 데이터로 만드는 커머스, 스타일쉐어 MD 인터뷰

안녕하세요. 스타일쉐어의 장선향입니다.스타일쉐어를 여전히 패션 사진 공유 플랫폼으로 생각하는 분들이 많지만, 작년 4월부터 스토어1를 론칭해 SNS를 기반으로 한 커머스를 함께 운영하고 있습니다. SNS를 기반으로 한 커머스. 감이 잘 안 오신다구요? 맨 처음 앱이 출시되었을 때 많은 유저들은 SNS로서 스타일쉐어를 이용했습니다. 페이스북이나 인스타그램처럼 일상의 패션 사진을 올리고 공유하는 플랫폼처럼 말이죠. 유저들은 제품에 대한 정보를 궁금해하기 시작하고, 지난해 4월 커머스가 런칭한 후에는 사진 속 상품을 클릭 한 번으로 구매를 할 수 있게 되었습니다. SNS적 성격이 강한 기능인 스타일피드를 시작으로 스토어가 결합되어 유저들에게 정보 공유와 구매를 한 번에 할 수 있게 된 것입니다.뛰어난 콘텐츠 생산자이자 다양한 미디어를 활용하며 콘텐츠를 소비하는 소위 밀레니얼 세대들이 사용하는 스타일쉐어는 일반 커머스와는 확연히 다릅니다. 유저들은 스타일쉐어에서 정보를 얻고 적극적으로 쇼핑에 참여하며, 제품에 대해 평가하고 후기를 공유합니다. 그러다 보니 기존 쇼핑커머스에서 흔치 않은 이야기들을 만들어 냅니다. 작은 브랜드가 굉장히 성장한다던가 새로운 유행을 만들어 낸다거나 하는 식으로 말이죠.이런 재미있는 스토리들을 들려주실 커머스 MD분들께 스토어에 대해 들어보는 시간을 가졌습니다. 단 6명으로 올해 4월, 누적 거래액 100억을 달성하며 매달 새로운 기록을 세우고 있습니다. MD(MerchanDiser) 란 상품을 기획하는 직군을 말합니다. 스타일쉐어에서 판매하는 상품을 소싱하고, 기획하는 일을 하며 고객의 반응을 파악하여 매출 관리, 재고관리, 사후관리까지 담당하고 있습니다. 지난 1년간 무에서 유를 만들고 있는 스타일쉐어 스토어의 숨은 주인공, 스쉐 MD분들 — 커머스팀 리더 신희정님, 패션MD 김미리님, 뷰티MD 김민희님- 을 소개합니다.스타일쉐어의 스토어 규모에 대해서 소개해 주세요.희정: 600여개 패션, 300여개 뷰티, 300여개 슈즈/잡화 브랜드들이 입점해 있습니다. 처음 스토어를 론칭할때는 100여개 브랜드로 시작했는데 지금은 1,100여 개 브랜드, 4만 개가 넘는 제품을 판매하고 있습니다.스타일쉐어의 스토어는 다른 커머스 플랫폼과 어떻게 다른가요?미리, 민희: 대부분의 커머스들은 탑 셀러가 정해져 있고 주로 빅 브랜드가 상위 매출의 대부분인데요. 유저 연령대가 젊은 스타일쉐어의 특성상 새로운 브랜드와 제품에 관심이 많습니다. 스타일피드에서의 바이럴과 마케팅으로 브랜드파워가 높지 않아도 매출이 빠르게 성장하는 것을 볼 수 있습니다. 그러다보니 저희는 탑 셀러/빅 브랜드에 의존하지 않고 새로운 브랜드를 발굴하고 성장하는데 관심이 많습니다. 실제로 매월 MD의 기획과 마케팅에 따라 베스트셀러가 바뀝니다. 입점사들에게는 기회가 많은 채널이라고 생각합니다.SNS 컨텐츠를 기반으로하는 스쉐스토어 특성이 상품판매에 영향을 준 대표적인 사례를 소개해 주시겠어요?미리: 대표적인 브랜드 중 하나는 휠라인데요. 휠라는 최근 젊은 느낌을 주기 위해 브랜드 리뉴얼을 했습니다. 최근 스타일쉐어에서 10–20 타겟의 운동화 디스럽터2를 선 발매하고, 유저들의 초기 반응을 바탕으로 추후 리오더해야할 물량을 예측했습니다. 바이럴 마케팅뿐만 아니라 상품 계획을 하는데 스타일쉐어를 활용한 것입니다. 디스럽터의 성공적인 론칭 이후 휠라가 인기 검색어로 오랫동안 상위를 차지했고 선발매 제품의 초기 물량 역시 완판되었습니다.민희 : 뷰티의 경우 바이럴이 정말 중요한데요. 마스크팩/뽀샵픽서라는 제품을 판매하는 파이스해빗2은 인지도가 낮은 브랜드였는데, 스타일쉐어에서의 바이럴과 매출 증가를 기반으로 최근 왓슨스 등 오프라인 매장에 입점했습니다. 바디미스트 브랜드 라르끄3는 단독 입점 후 첫월 매출 1200% 성장을 기록하며 이후 해외 수출까지 진행하는 기반을 마련했습니다. 타 커머스에서는 스테디셀러가 매출의 상위를 꾸준히 유지한다면, 스타일쉐어는 다른 커머스들에 비해 신규 브랜드들도 스타일쉐어 플랫폼내 다양한 컨텐츠들을 통해 베스트셀러가 되고 있습니다.특히 입점사들의 매출 성장을 위해 MD분들은 어떤 점에 신경쓰나요?미리, 민희: 패션과 뷰티업체 중 40% 정도를 신규 브랜드가 차지하고 있습니다. 신규 브랜드 성장을 위해 MD로서 브랜드와 상품 판매 초반에 많은 협의를 가집니다. 뷰티 브랜드의 경우 제품의 기능적인 부분을 잘 나타낼 수 있도록 하고, 스타일쉐어 마케팅 채널과 광고 채널을 써서 판매촉진을 시도합니다. 덕분에 입점사들간의 입소문으로 입점문의가 많이들어오고 있습니다.최근 단독 판매, 선 발매등 브랜드와의 협업이 늘어나고 있습니다. 입점사들의 반응이 어떤가요?미리, 민희: 보통 선발매를 많이 진행합니다. 판매와 동시에 유저들이 올리는 후기를 통해 상품에 대한 반응을 즉시 볼 수 있고, 자연스럽게 바이럴을 일으킬 수 있다는 점이 입점사들에게는 매력적인 것 같습니다. 특히 디자이너 브랜드가 많은 패션 카테고리의 경우 소량 생산하는 경우가 많은데요. 유저의 반응을 바탕으로 추가 생산하거나 제품을 보완합니다. 최근 숄더체크4라는 브랜드는 기획 단계에서부터 스타일피드를 보고 유저들이 좋아할 만한 제품을 생산해 인기를 얻고 있는 중입니다. 뷰티 카테고리에서는 러비더비의 컬러 트리트먼트가 성공적인 사례입니다. 업체와 제품 디자인에서 가격, 색상까지 협의를 통해 1020대가 좋아할 만한 제품을 생산합니다. 러비더비의 경우 한 달만에 초도 물량이 품절되기도 했습니다.희정: 최근 소비력이 커지고 있는 10–20대 타겟으로 대기업에서도 관심이 큽니다. LG생활건강과 함께 플라잉 애플을 공동기획해 선 발매한 사례와 퍼퓸 향수라인 “찬란”을 선발매한 사례가 대표적입니다. 최근 빅브랜드에서 1020 타겟의 제품라인에 관심이 많아지면서 스타일쉐어의 트랜드를 참고해 상품기획을 제안합니다. 특정 연령과 성별을 확보한 스타일쉐어는 아직도 잠재력이 크다고 생각합니다.스타일쉐어의 입점 기준은 무엇입니까? 입점 후 어떻게 관리하나요?희정: 입점 기준은 명확합니다. 오직 유저들이 좋아하는 것, 좋아할 만한 것입니다. 스타일쉐어는 빅 브랜드를 입점시키기 보다, 스타일피드에 뜨는 브랜드 또는 상품을 참고해서 입점을 제안하고 있습니다. 몇몇 업체의 경우에는 스타일쉐어에 많은 컨텐츠가 올라와야 하는 젊은 브랜드임에도 불구하고 컨텐츠가 많지 않은 경우도 있습니다. 이 경우 스타일쉐어가 좋은 플랫폼이 될 수 있습니다.입점사 관리도 유저 데이터에 기반합니다. 스타일피드에서의 반응을 통해 제품의 인기가 떨어지는 것을 빠르게 감지할 수 있습니다. 제품의 라이프사이클에 따라 수명이 다하면 새로운 제품을 개발해야 합니다. 디자이너 브랜드는 많은 경우 저희와 단독 상품을 기획합니다. 스타일쉐어에서 인기있는 키워드 “벨크로”, “플리스” 등 그때그때 유행하는 키워드를 공략해 업체별로 단독상품을 만들 때 반영합니다. 이렇게 기획한 상품은 인기가 좋을 수밖에 없습니다.스토어를 만들면서 가장 기억에 남는 순간은 언제인가요?미리, 민희: 무엇보다 기획했던 상품이 인기가 좋을 때 인 것 같습니다. 또 타 커머스에서 판매와 성장이 어려운 중소 브랜드가 스타일쉐어에서 성장하는 모습을 볼 때 보람을 느낍니다. 업체에서도 고맙다는 말씀을 많이 합니다. 스타일쉐어의 열혈 유저들도 빠트릴 수 없습니다. “스쉐 덕분에 정말 잘 샀어요”, “스쉐 사랑해요” 등 피드백을 줄 때 고맙고 보람을 느낍니다.희정 : 작년 봄부터 여름까지 입점사들을 설득하러 다닐 때가 얼마 지나지 않은 것 같은데, 이제는 MD들이 땡볕에 나가 고생하는일이 적어졌습니다. 지난 1년간의 고생이 조금씩 결실을 맺어가는 것을 보면서 보람을 느낍니다.앞으로 스타일쉐어를 어떤 커머스로 만들고 싶나요?희정 : 처음부터 지금까지 스타일쉐어는 업체들과 동반 성장하고 있습니다. 특히 중소브랜드가 국내에서 주목받기는 쉽지 않은데 이런 파트너들과 좋은 기회를 만들고 있습니다. 앞으로도 신진 디자이너 브랜드가 적극적으로 참여하는 채널이 되고 싶습니다. 한편 아직까지 빅 브랜드, 미입점된 브랜드가 많습니다. 무수한 브랜드와 제품들 사이에서 주목받기 어려워지는 빅 브랜드들의 고민도 풀 수 있는 플랫폼. 유저들과 소통하며 함께 성장하는 스토어가 되었으면 합니다. 스타일쉐어 유저들이 더 나은 쇼핑 경험을 할 수 있도록 앞으로도 노력할 것입니다.#스타일쉐어 #팀원소개 #인터뷰 #기업문화 #조직문화 #팀원자랑
조회수 1199

채식주의자들의 오해

앞의 글에서 나는 채식주의자 이지만 이건 개인적 신념같은 거고, 이를 남에게 강요하는 행위는 인간의 자유를 침해하는 행위이기 때문에 해선 안된다고 언급한 바 있다. (채식주의자가 되다 글 참고) 이 글에서는 채식주의자들이 마치 종교처럼 남에게 설득하기 위해 제시하는 (대부분은 과학적 근거가 부족한) 채식주의자들의 오해 또는 맹신에 대해 몇가지 논해 보고자 한다.1. 채식주의는 환경보호에 긍정적 영향을 준다.채식주의자나 환경단체들이 채식주의의 우월성을 논할때 가장 많이 언급하는 것이다. 논리는 대충 이렇다.축산업에서 발생하는 온실가스 (메탄, 이산화탄소)가 지구 온난화를 유발하기 때문에 고기 소비가 많을 수록 더 많은 가축 농장이 생길 거고 거기서 나오는 더 많은 온실가스들로 인해 지구 온난화가 가속화되니 고기 섭취를 줄여야 한다. 사실 축산업이 온실가스를 배출하는 부분에 있어서는 학자들 사이에 이견이 없는 듯 하다. 하지만 많은 사람들이 간과하는 부분은, 저렇게 고기 섭취를 줄인 만큼의 에너지 섭취는 그럼 무엇으로 이루어지는가 이다. 어차피 현 인류에서 호포 사피언스 시절 처럼 수렵과 채집으로 먹거리를 공급하는 인간의 비율은 전 세계에 1%도 채 안될 만큼 인류의 먹거리는 이미 수 많은 농장과 연결되어 있다. 즉, 저렇게 줄인 고기 섭취 만큼 채소나 곡류의 섭취가 늘어날 것이고, 어차피 채소농장도 에너지 사용, 용수 공급을 위한 물 낭비, 이산화탄소 배출 등의 환경 오염 행위를 동일하게 할 수 밖에 없다. 즉, Trade-off 관계로 보면 채식주의를 한다고 해서 실제로 환경에 이로운가? 이 질문에 대해서는 절대로 Yes라고 답할 수 없는 것이다.실제로 얼마전 카네기멜론 대학의 한 연구결과에서도 다음과 같이 보고된 바 있다.총 에너지 섭취를 유지하면서 육류에서 채식으로 완전히 식단이 바뀔 경우 전체 에너지 사용은 43%, 물 사용은 16%, 온실가츠 배출은 11% 증가할 것이다.- Environment Systems and Decisions journal, Carnegie Mellon University, 2015-12-15즉, '채식주의자가 되면 환경보호도 하고 일석 이조랍니다~' 이런식으로 다른 사람을 설득하는 행위는 예수천국 불신지옥과 크게 다르지 않는 행위일 수도 있다.인류의 채식주의로의 완전 이행은 오히려 더 큰 환경적 재앙을 초래할 수도 있다는 연구결과도 있다.2. 채식주의가 건강에 좋다.채식한다고 하면 대표적으로 많이 듣는 이야기 중 하나이다. 채식하면 건강에 좋다며?넌 채식해서 이렇게 살이 안찐거야? 건강해서 좋겠다~가장 황당한 얘기이다. 고기를 먹으면 건강에 안좋고 상추 많이 뜯어먹으면 건강에 좋다는 편견은 도데체 어디서 부터 시작된 건지 모르겠다. 결론부터 얘기하자면 채식주의가 더 큰 확률로 당신의 건강을 해칠 수 있다. 물론 지나친 육식으로 동물성 지방의 과다 섭취, 과다 콜레스테롤 등이 각종 성인명을 유발하여 건강을 좀 먹는 것은 맞다. 하지만 뭐든지 극단적인건 좋은 결말을 얻지 못하듯이 육류, 해산물 섭취가 아예 없는 채식주의자의 경우 단백질, 철분, 칼슘, 비타민 B12 등 결핍되면 건강에 치명적인 영향을 줄 수 있는 영양소들이 결핍되기 쉽다. 특히, 비타민 B12의 경우 조금만 결핍되도 거대적아구성 빈혈 및 각종 신경장애를 일으킬 정도로 치명적이라는 연구결과가 많다. 안타깝게도 B12는 주로 육류 또는 치즈, 계란등의 유제품에서 섭취할 수 있기 때문에 비건 채식주의자들에게 결핍되기 매우 쉬운 영양소 중 하나이다. (자세한 내용은 vegan society 글 참고)따라서, 극단적 채식주의는 절대로 건강에 좋을 수가 없다. 오히려 우리같은 채식주의자들은 이런 내용을 더욱 깊이 알고 부족한 영양분들을 인위적으로 섭취해 주는 것이 매우 중요하다. 우리 부부도 철분, 칼슘, 각종 비타민등은 빼먹지 않고 영양제를 통해 섭취하려 노력하곤 있지만, 건강기능식품의 가라 흡수율에 대한 이슈는 뭐 이 업계의 오래된 문제점이기 때문에 이마저도 좀 불안하다. (비타민제 복용한다고 저기 써있는 비타민들이 다 내 몸으로 흡수되지 않는다는 뜻임.)채식주의가 건강에 무조건 좋다고 하는건 사이비 종교같을 수 있다.3. 인류는 원래 채식주의자였다.이런 주장을 하시면서 주변 사람들에 채식을 강권하시던 한 비건 채식주의자를 만난 적이 있다. 그 분의 논리는 대략 이런데, 호모 사피언스 이전의 인류는 원래 먹이사슬 중 채식동물에 더 가까운 위치에 있었는데 농경과 가축업이 발달하면서 보다 효율적인 에너지 섭취를 위해 육식주의로 이동중에 있다. 하지만 유전학적으로 채식주의자로 설계되었기 때문에 육식주의로 이동할 수록 인간 수명에 악영향을 줄 것이라고 설명했다. 아마도 어디서 이런 기사를 줏어 듯고 이야기 한 것이 뻔하다.Humans are becoming MORE carnivorous: Global move towards a more meat-rich diet is driven by China and India's rising economies사실 저런 연구가 있기는 하다. UN 산하 Food and Agriculture Organization에서 발간하는 'Human trophic level tracking report'라는 보고서가 있는데, 약 100여가지의 식단을 기준으로 1961년부터 지금까지 매년 그 변동을 기록하는 보고서 이다. 일부 학계에서 이를 바탕으로 천년전, 만년전 인류의 식습관을 추정하여 위와 같이 인류의 육식성이 더 증가하고 있다 라는 연구결과 있다.하지만, 그렇다고 해서 인류가 유전학적으로 채식주의에 가깝게 태어났다?? 이건 완전 또다른 주제의 이야기이고, 이 부분은 그 어떤 근거자료도 찾지 못했다. 물론, 인류와 진화적으로 가까운 유인원은 대부분이 채식주의, 또는 채식에 가까운 잡식을 보인다는 연구결과는 많이 있다. (Do Apes Eat Meat? 참고) 하지만 이거 하나만 가지고 인류도 유전적으로 채식주의에 가깝게 설계되어 있다고 말하는건 너무하지 않는가? 실제로 이 글을 쓰면서도 진짜 유전학적으로 인류가 초식동물에 가까운지에 대한 믿을만한 연구결과를 찾기는 힘들었다.필자가 하고싶은 말은 뭐냐면, 뭔가 짜집기 스러운 단편적인 연구결과들을 모아서 '인간은 원래 채식주의자다' 이런식으로 말하는건 뭔가 약장수 스멜이 풍기는 행위이니 하지 말자... 라는 것이다.영화 '약장수'의 한 장면..지금까지 채식주의자들이 다른 사람들을 설득하기 위해 저런 myth에 가까운 주장을 하다가 오히려 공격을 받는 경우를 많이 봐왔기 때문에 그 대표적인 오해 몇가지를 짚어 보았다. 물론, 저사람이 나와 다르다고 채식주의자들을 일부러 공격해 대는 사람들도 많이 봐왔고, 대부분 저런 내용에 대해 공격을 한다. 그냥 이런 논쟁 다 무의미하고 에너지 낭비일 뿐인 설전이다. 이 글로 조금이나마 줄어들길 바랄 뿐이다.
조회수 869

클릭 전환과 구매 전환

안녕하세요 대한민국 셀러들의 성공적인 아마존 진출을 도와주는 컨설팅 회사이자 대행사인 컨택틱의 이이삭 대표입니다. 오늘 다룰 주제는 ‘클릭 전환과 구매 전환’입니다. 업계에서는 CTR과 CVR이라고 부르는데요. 이는 각각 Click Through Rate, Conversion Rate의 약자입니다. 지금까지 여러분과 함께 키워드 인덱싱을 통해 상위 노출을 위한 여러 방법들을 살펴보았습니다. 상위 노출이 되지 않더라도, 시장 진입 초기에 다양한 고객 검색어에 대하여 자신의 상품이 걸리는지(인덱싱 되는지) 확인이 된다면 잘 따라오고 계신 겁니다. 다음으로 셀러들이 생각해야 하는 것은 상위 노출된 검색결과(listing) 중에서 경쟁사의 제품이 아닌, 나의 상품을 클릭하도록 만드는 방법입니다. 이 과제를 제대로 수행하기 위해서는 다음의 4가지를 고려하셔야 합니다. 지역은 다르지만, 전자상거래의 본질적 속성은 같습니다. 구매결정이 브랜드의 영향을 받지 않는 시장이라는 전제 하에, 검색을 통해 나온 리스팅들간의 경쟁 속에서, 내 상품을 최소한 ‘클릭’이라도 하게 만들기 위해서는 소비자에게 Main Image를 통해 시각적 자극을 주고, 최저가 또는 이에 준하는 가격 제시를 통해 고객에게 가성비(價性比)와 가심비(價心比) 모두를 충족시킬 수 있다는 인상을 심어줄 필요가 있습니다. 하지만, 경쟁사들도 클릭 전환에 영향을 미치는 구성요소를 알기 때문에 이미지와 가격은 같은 페이지 내의 상품끼리 큰 차이가 없을 수 있습니다. 따라서, 다음으로 고객이 고려하는 것은 바로 ‘리뷰’입니다. 우리도 소비자일 경우 리뷰 개수와 평점을 고려하여, 제품의 품질을 추측하거나 소비에 대한 ‘안정감’을 느끼는 것처럼 해외 고객들도 별반 다르지 않습니다. 셀러의 입장에서는 상위 페이지와 자신의 상품이 노출된 페이지의 리스팅의 리뷰 개수와 평점을 기준으로, 고객의 클릭 전환을 높이기 위한 기준 수치를 세울 수 있을 것입니다.   하지만 만약, 고객이 클릭만 하고 스크롤을 쭉 내리고 그냥 나가버린다면, 그것보다 아쉬운 게 없겠죠. 아무리 CTR이 높아도 실제 ‘매출’이 발생하지 않습니다. 물론, CTR이 높으면, 그만큼 구매로 이어질 가능성이 높은 잠재 상품으로 분류할 수 있습니다. 다만, 양면적으로 PPC를 통해 유입된 트래픽이라면, 고객의 클릭이 발생할 때마다 비용을 지불하게 되고, 구매 전환으로 이어지지 않는다면, 오히려 고객이 여러분의 상품을 클릭하지 않는 것보다 못한 상황이 발생하게 되는 것입니다. 따라서, 고객들이 구매까지 전환되지 않는 문제의 원인을 제대로 파악하여 밑 빠진 독에 물 붓는 상황을 미연에 방지할 수 있어야 합니다. 구매 전환은 아래 6가지 항목의 영향을 받습니다. 첫째, Other Image의 중요성을 간혹 간과하시는 분들이 계십니다. 보충 이미지는 말 그대로 ‘보충’의 성격이 있어야 합니다. 예를 들어, 여러분이 비데를 판매한다고 가정해보겠습니다. 보통 보충 이미지를 통해 상하좌우 이미지나 확대 이미지를 통해 상세한 모습을 제공하지만, 미국 소비자들이 한국 전자제품을 살 때 걱정하는 건 따로 있습니다. 바로 Voltage, 110V와 220V 차이죠. 110V에도 가능한 제품이라면 ‘당연히’ Description에도 언급을 해주셔야 되지만, 최근 인간의 정보처리 과정이 ‘이미지’ 중심이기 때문에, 보충 이미지를 통해 고객에게 ‘확신’을 줄 수 있어야 합니다.   둘째, Bullet Points는 말 그대로 상품의 특장점과 유의사항을 고객이 ‘상품 구매’ 버튼을 누를 수 있도록 상세하게 설명하는 것이 중요합니다. 특히, 제품의 가격 차이가 크게 발생하지 않는다면, 시장 초기 진입자들은 최대한 정성을 들여서 작성할 필요가 있습니다. 셋째, 리뷰의 질이 중요합니다. 소비자들이 바보가 아닙니다. 아르바이트생들이 쓴 것 같은 리뷰를 보면 그 개수가 많고 평점이 높아도 의심을 할 수밖에 없습니다. ‘현지’ 표현을 강조한 이유가 바로 여기에 있습니다. 중과부적(衆寡不敵)이라는 사자성어가 있죠. 적은 수는 많은 수를 대적할 수 없다는 뜻입니다. 중국의 많은 셀러들이 지인과 업체를 이용하여 리뷰 작업을 실시하게 되면 인위적으로 리뷰 개수와 평점을 높일 수 있기 때문에, 미국의 소비자들은 Review Quality를 구매의사결정 과정에서 중요하게 생각할 수밖에 없는 것입니다. 넷째, Questions입니다. 여러분이 생각하시는 Q&A와는 조금 다릅니다. 물건을 직접 구매한 사람들이 질문을 올린 사람들에게 답변을 남길 수가 있습니다. 물론 판매자도 답변을 달 수 있습니다. 다만, 고객의 입장에서 실제로 물건을 구매한 사람의 만족도가 낮거나, (사실 여부를 떠나 악의적이든 그렇지 않든) 좋지 않은 답변을 봤다면, 물건을 구매하려 했던 잠재 소비자도 Q&A를 본 이후 머뭇거릴 수밖에 없을 것입니다. 그래서 셀러들은 단순히 물건 판매를 넘어서 사후 관리를 철저하게 할 필요가 있습니다. 그래야 특정 의문을 가져서 해당 상품을 구매할 것을 망설이는 신규 고객들이 ‘구매’에 대한 확신을 가질 수 있기 때문입니다. 마지막으로, 여러 프로모션과 가격은 초기에 빠른 구매전환을 유도하기 위한 일종의 loss leader 전략입니다. 저번 글에서 아마존의 상위 노출 알고리즘 중에 ‘판매량’도 중요 변수라고 말씀드렸습니다. 시장 진입 초기엔 인지도가 낮고 위에서 언급한 모든 수치들이 낮게 나올 수밖에 없으므로 Promotion과 Benefit 등으로 ‘BUY’ 버튼을 누르게 만드는 것이죠. 여기까지가 구매 전환과 클릭 전환을 위해 반드시 필요한 항목들을 말씀드렸습니다. 간단히 말해서, CTR과 CVR이 동시에 높은 수치를 기록하는 황금알을 찾는 게 중요합니다. 그러나, 장기적으로 아마존에서 성공하기 위해서는 한 번 구매한 고객을 유지하고 재구매까지 일어나게 할지, 그리고 구매 패턴을 이해하여 그 분석 결과를 향후 판매에 어떻게 이용할지 전략을 고민해야 합니다.   저희 컨택틱에서는 주문할 장바구니 단계에서의 업셀링(Upselling), 1개 이상 구매 시 다른 상품을 구매하면 할인 혜택, 이메일 팔로우업, 내 상품을 주문하는 고객들이 주로 밀집된 지역의 분석과 지역 집중 off amazon marketing 등의 Mix 전략을 통해 고객사들에게 마케팅 솔루션 등을 교육 및 제공하고 있습니다. 이번 글을 굉장히 길었습니다. 그만큼 ‘구매 전환’이 중요합니다. 왜냐하면, 고객을 두 번 생각하게 하는 순간, 두 번 다시 고객을 잡을 수 없을지도 모르기 때문입니다. 컨택틱의 모든 교육은 파트너인 글로벌셀러창업연구소와 접수하고 진행합니다. 교육 신청은 아래 링크나 글로벌셀러창업연구소의 홈페이지를 통해 접수 가능합니다. 오프라인 아마존 입문 과정오프라인 아마존 기초/심화 과정온라인 아마존 입문 과정 그럼 오늘도 즐거운 글로벌 셀링 되세요! 컨택틱  서울특별시 강남구 강남대로 62길 11, 8층 (역삼동, 유타워) 대표 전화: 02-538-3939     이메일: [email protected]     홈페이지: https://www.kontactic.com   네이버블로그: https://blog.naver.com/kontactic    카카오브런치: https://brunch.co.kr/@allaboutamazon감사합니다.              
조회수 1791

변화하는 웹 플랫폼 따라가기

플랫폼이 어떻게 변화해가는지를 살펴보면, 직접 경험해보지 않더라도 사람들의 문제의식이 어디에 있는지, 어떤 문제들이 언제부터 풀리게 되는지를 파악할 수 있습니다.이 글에서는 이런 변화들을 살펴볼 수 있는 몇가지 유용한 링크들을 소개하려고 합니다.어떤 논의들이 어디서 오가고 있을까WICG discoursehttps://discourse.wicg.io/WICG는 웹 인큐베이터 커뮤니티 그룹이라고 해서, 웹 표준에 기여해본 사람이 아니라도 토론을 통해 아이디어를 발전시켜서 사람들이 실제로 겪는 문제를 W3C 표준까지 끌어올리는 것을 목표로 하는 커뮤니티입니다.이 곳에서는 주로 CSS, DOM API에 대한 아이디어가 올라옵니다.ES-Discusshttps://esdiscuss.org/ES-Discuss는 WICG와 비슷하게 ECMAScript 스펙에 대해서 논의하는 메일링 리스트입니다. 위 링크는 메일링 리스트에서 오간 이야기를 쉽게 조회할 수 있도록 아카이빙 해놓은 사이트입니다.논의된 아이디어는 어디서 표준으로 다듬어지고 있을까HTML: https://github.com/w3c/html 또는 https://github.com/whatwg/htmlCSS: https://github.com/w3c/csswg-draftsJS: https://github.com/tc39/ecma262HTML은 W3C의 WebPlat WG와 WHATWG에서, CSS는 W3C의 CSSWG에서, JS는 ECMA의 TC39에서 표준을 이끌고 있습니다.위 저장소들에 공개된 초안은 표준이 되기까지 여러 단계를 거치게 되는데, 여기서 다루지는 않겠습니다. (2018-01-25 수정) 이에 대한 내용은 다음의 블로그 포스트에서 자세히 설명하고 있습니다.W3C 표준화 제정 단계ECMAScript와 TC39다듬어진 표준은 어떤 브라우저에서 얼마나 구현되고 있을까다음의 링크에서 각 주제에 대해 브라우저들이 현재 어디까지 구현을 했는지 파악할 수 있습니다.Chrome: https://www.chromestatus.com/featuresFirefox: https://platform-status.mozilla.org/Edge: https://developer.microsoft.com/en-us/microsoft-edge/platform/status/Safari: https://webkit.org/status/크롬 플랫폼 사이트의 경우 각 주제들이 어떤 버전에 반영되었는지 같이 확인할 수 있어서 편리합니다.나머지 브라우저들의 버전별 구현 상태는 https://caniuse.com/에서 주제를 검색하여 참고할 수 있습니다.구현된 기능들은 언제부터 사용할 수 있었고, 언제부터 사용할 수 있게 될까크롬과 파이어폭스는 릴리즈 캘린더를 공개적으로 관리하고 있습니다. 위에서 확인한 기능들을 담고있는 안정 버전이 언제쯤 릴리즈 될 지 다음의 링크를 보고 대략적으로 예상할 수 있습니다.Chrome: https://www.chromium.org/developers/calendarFirefox: https://wiki.mozilla.org/RapidRelease/Calendar크롬과 관련된 플랫폼 따라가기특정 크롬 버전이 어떤 V8 버전을 사용하고 있는지는 https://omahaproxy.appspot.com/에서 확인할 수 있습니다.Node.jsNode.js의 릴리즈 스케쥴은 https://github.com/nodejs/Release에서 확인할 수 있습니다.어떤 Node.js 버전이 어떤 V8 버전을 사용하고 있는지는 https://nodejs.org/en/download/releases/에서 확인할 수 있습니다.Electronhttps://electronjs.org/에서 일렉트론 최신버전이 어떤 노드, 크로미움, V8 버전을 사용하고 있는지 확인할 수 있습니다.일렉트론의 크로미움 팔로업은 깃헙 일렉트론 저장소의 Projects에서 확인할 수 있습니다: https://github.com/electron/electron/projects따라가는데 도움이 되는 블로그브라우저 벤더들이 직접 운영하는 블로그를 구독하면 웹 플랫폼의 소식을 가장 빠르게 접할 수 있습니다.ChromeChromium Blog: https://blog.chromium.org/V8 Blog: https://v8project.blogspot.kr/FirefoxMozilla Hacks: https://hacks.mozilla.org/SafariWebKit Blog: https://webkit.org/blog/EdgeMicrosoft Edge Dev Blog: https://blogs.windows.com/msedgedev/(2018-01-25 수정): @SaschaNaz님 제보로 Webkit status 사이트와 Edge 블로그 추가#스포카 #개발팀 #개발자 #인사이트 #업무일지 #후기
조회수 1995

Tips for building fast portrait segmentation network with TensorFlow Lite

PrefaceDeep learning has led to a series of breakthroughs in many areas. However, successful deep learning models often require significant amounts of computational resources, memory and power. Deploying efficient deep learning models on mobile devices became the main technological challenge for many mobile tech companies.Hyperconnect developed a mobile app named Azar which has a large fan base all over the world. Recently, Machine Learning Team has been focusing on developing mobile deep learning technologies which can boost user experience in Azar app. Below, you can see a demo video of our image segmentation technology (HyperCut) running on Samsung Galaxy J7. Our benchmark target is a real-time (>= 30 fps) inference on Galaxy J7 (Exynos 7580 CPU, 1.5 GHz) using only a single core.Figure 1. Our network runs fast on mobile devices, achieving 6 ms of single inference on Pixel 1 and 28 ms on Samsung Galaxy J7. Full length video. There are several approaches to achieve fast inference speed on mobile device. 8-bit quantization is one of the popular approaches that meet our speed-accuracy requirement. We use TensorFlow Lite as our main framework for mobile inference. TensorFlow Lite supports SIMD optimized operations for 8-bit quantized weights and activations. However, TensorFlow Lite is still in pre-alpha (developer preview) stage and lacks many features. In order to achive our goal, we had to do the following:Understand details of TensorFlow and Tensorflow Lite implementation.Design our own neural network that can fully utilize optimized kernels of TensorFlow Lite. (Refer to 1, 2 and 3)Modify TOCO: TensorFlow Lite Optimizing Converter to correctly convert unsupported layers. (Refer to 4)Accelerate several quantized-layers with SIMD optimized code. (Refer to 5 and 6)We are willing to share our trials and errors in this post and we hope that readers will enjoy mobile deep learning world :)1) Why is depthwise separable layer fast in Tensorflow Lite ?Implementing low-level programs requires a bit different ideas and approaches than usual. We should be aware that especially on mobile devices using cache memory is important for fast inference.Figure 2. Memory access requires much more energy (640 pJ) than addition or multiplication.Accessing cache memory (8 pJ) is much cheaper than using the main memory (table courtesy of Ardavan Pedram) In order to get insight into how intrinsics instructions are implemented in Tensorflow Lite, we had to analyze some implementations including depthwise separable convolution with 3x3 kernelsBelow we describe some of the main optimization techniques that are used for building lightweight and faster programs.Loop UnrollingCan you spot the difference between the following two code fragments?for (int i = 0; i < 32; i++) { x[i] = 1; if (i%4 == 3) x[i] = 3; } for (int i = 0; i < 8; i++) { x[4*i ] = 1; x[4*i+1] = 1; x[4*i+2] = 1; x[4*i+3] = 3; } The former way is what we usually write, and the latter is loop-unrolled version of former one. Even though unrolling loops are discouraged from the perspective of software design and development due to severe redundancy, with low-level architecture this kind of unrolling has non-negligible benefits. In the example described above, the unrolled version avoids examining 24 conditional statements in for loop, along with neglecting 32 conditional statements of if.Furthermore, with careful implementation, these advantages can be magnified with the aid of SIMD architecture. Nowadays some compilers have options which automatically unroll some repetitive statements, yet they are unable to deal with complex loops.Separate implementation for each caseConvolution layer can take several parameters. For example, in depthwise separable layer, we can have many combinations with different parameters (depth_multiplier x stride x rate x kernel_size). Rather than writing single program available to deal with every case, in low-level architectures, writing number of case-specific implementations is preferred. The main rationale is that we need to fully utilize the special properties for each case. For convolution operation, naive implementation with several for loops can deal with arbitrary kernel size and strides, however this kind of implementation might be slow. Instead, one can concentrate on small set of actually used cases (e.g. 1x1 convolution with stride 1, 3x3 convolution with stride 2 and others) and fully consider the structure of every subproblem.For example, in TensorFlow Lite there is a kernel-optimized implementation of depthwise convolution, targeted at 3x3 kernel size:template <int kFixedOutputY, int kFixedOutputX, int kFixedStrideWidth, int kFixedStrideHeight> struct ConvKernel3x3FilterDepth8 {}; Tensorflow Lite further specifies following 16 cases with different strides, width and height of outputs for its internal implementation:template <> struct ConvKernel3x3FilterDepth8<8, 8, 1, 1> { ... } template <> struct ConvKernel3x3FilterDepth8<4, 4, 1, 1> { ... } template <> struct ConvKernel3x3FilterDepth8<4, 2, 1, 1> { ... } template <> struct ConvKernel3x3FilterDepth8<4, 1, 1, 1> { ... } template <> struct ConvKernel3x3FilterDepth8<2, 2, 1, 1> { ... } template <> struct ConvKernel3x3FilterDepth8<2, 4, 1, 1> { ... } template <> struct ConvKernel3x3FilterDepth8<1, 4, 1, 1> { ... } template <> struct ConvKernel3x3FilterDepth8<2, 1, 1, 1> { ... } template <> struct ConvKernel3x3FilterDepth8<4, 2, 2, 2> { ... } template <> struct ConvKernel3x3FilterDepth8<4, 4, 2, 2> { ... } template <> struct ConvKernel3x3FilterDepth8<4, 1, 2, 2> { ... } template <> struct ConvKernel3x3FilterDepth8<2, 2, 2, 2> { ... } template <> struct ConvKernel3x3FilterDepth8<2, 4, 2, 2> { ... } template <> struct ConvKernel3x3FilterDepth8<2, 1, 2, 2> { ... } template <> struct ConvKernel3x3FilterDepth8<1, 2, 2, 2> { ... } template <> struct ConvKernel3x3FilterDepth8<1, 4, 2, 2> { ... } Smart Memory Access PatternSince low-level programs are executed many times in repetitive fashion, minimizing duplicated memory access for both input and output is necessary. If we use SIMD architecture, we can load nearby elements together at once (Data Parallelism) and in order to reduce duplicated read memory access, we can traverse the input array by means of a snake-path.Figure 3. Memory access pattern for 8x8 output and unit stride, implemented in Tensorflow Lite's depthwise 3x3 convolution. The next example which is targeted to be used in much smaller 4x1 output block also demonstrates how to reuse preloaded variables efficiently. Note that the stored location does not change for variables which are loaded in previous stage (in the following figure, bold variables are reused):Figure 4. Memory access pattern for 4x1 output and stride 2, implemented in Tensorflow Lite's depthwise 3x3 convolution. 2) Be aware of using atrous depthwise convolutionAtrous (dilated) convolution is known to be useful to achieve better result for image segmentation[1]. We also decided to use atrous depthwise convolution in our network. One day, we tried to set stride for atrous depthwise convolution to make it accelerate computation, however we failed, because the layer usage in TensorFlow (≤ 1.8) is constrained.In Tensorflow documentation of tf.nn.depthwise_conv2d (slim.depthwise_conv2d also wraps this function), you can find this explanation of rate parameter.rate: 1-D of size 2. The dilation rate in which we sample input values across the height and width dimensions in atrous convolution. If it is greater than 1, then all values of strides must be 1.Even though TensorFlow doesn’t support strided atrous function, it doesn’t raise any error if you set rate > 1 and stride > 1. <!-- The output of layer doesn't seem to be wrong. -->>>> import tensorflow as tf >>> tf.enable_eager_execution() >>> input_tensor = tf.constant(list(range(64)), shape=[1, 8, 8, 1], dtype=tf.float32) >>> filter_tensor = tf.constant(list(range(1, 10)), shape=[3, 3, 1, 1], dtype=tf.float32) >>> print(tf.nn.depthwise_conv2d(input_tensor, filter_tensor, strides=[1, 2, 2, 1], padding="VALID", rate=[2, 2])) tf.Tensor( [[[[ 302.] [ 330.] [ 548.] [ 587.]] [[ 526.] [ 554.] [ 860.] [ 899.]] [[1284.] [1317.] [1920.] [1965.]] [[1548.] [1581.] [2280.] [2325.]]]], shape=(1, 4, 4, 1), dtype=float32) >>> 0 * 5 + 2 * 6 + 16 * 8 + 9 * 18 # The value in (0, 0) is correct 302 >>> 0 * 4 + 2 * 5 + 4 * 6 + 16 * 7 + 18 * 8 + 20 * 9 # But, the value in (0, 1) is wrong! 470 Let’s find the reason why this difference happened. If we just put tf.space_to_batch and tf.batch_to_space before and after convolution layer, then we can use convolution operation for atrous convolution (profit!). On the other hand, it isn’t straightforward how to handle stride and dilation together. In TensorFlow, we need to be aware of this problem in depthwise convolution.3) Architecture design principles for efficient segmentation networkUsually segmentation takes more time than classification since it has to upsample high spatial resolution map. Therefore, it is important to reduce inference time as much as possible to make the application run in real-time.It is important to focus on spatial resolution when designing real-time application. One of the easiest ways is to reduce the size of input images without losing accuracy. Assuming that the network is fully convolutional, you can accelerate the model about four times faster if the size of input is halved. In literature[2], it is known that small size of input images doesn’t hurt accuracy a lot.Another simple strategy to adopt is early downsampling when stacking convolution layers. Even with the same number of convolution layers, you can reduce the time with strided convolution or pooling within early layers.There is also a tip for selecting the size of input image when you use Tensorflow Lite quantized model. The optimized implementations of convolution run best when the width and height of image is multiple of 8. Tensorflow Lite first loads multiples of 8, then multiples of 4, 2 and 1 respectively. Therefore, it is the best to keep the size of every input of layer as a multiple of 8.Substituting multiple operations into single operation can improve speed a bit. For example, convolution followed by max pooling can be usually replaced by strided convolution. Transpose convolution can also be replaced by resizing followed by convolution. In general, these operations are substitutable because they perform the same role in the network. There are no big empirical differences among these operations. <!-- substitutable -->Tips described above help to accelerate inference speed but they can also hurt accuracy. Therefore, we adopted some state-of-the-art blocks rather than using naive convolution blocks.Figure 5.  Atrous spatial pyramid pooling (figure courtesy of Liang-Chieh Chen) Atrous spatial pyramid pooling[1] is a block which mimics the pyramid pooling operation with atrous convolution. DeepLab uses this block in the last layer.We also substitute most of the convolution layers with efficient depthwise separable convolution layers. They are basic building blocks for MobileNetV1[3] and MobileNetV2[4] which are well optimized in Tensorflow Lite.4) Folding batchnorm into atrous depthwise convolutionWhen quantizing convolution operation followed by batchnorm, batchnorm layer must be folded into the convolution layers to reduce computation cost. After folding, the batchnorm is reduced to folded weights and folded biases and the batchnorm-folded convolution will be computed in one convolution layer in TensorFlow Lite[5]. Batchnorm gets automatically folded using tf.contrib.quantize if the batchnorm layer comes right after the convolution layer. However, folding batchnorm into atrous depthwise convolution is not easy.In TensorFlow’s slim.separable_convolution2d, atrous depthwise convolution is implemented by adding SpaceToBatchND and BatchToSpaceND operations to normal depthwise convolution as mentioned previously. If you add a batchnorm to this operation by including argument normalizer_fn=slim.batch_norm, batchnorm does not get attached directly to the convolution layer. Instead, the graph will look like the diagram below: SpaceToBatchND → DepthwiseConv2dNative → BatchToSpaceND → BatchNorm The first thing we tried was to modify TensorFlow quantization to fold batchnorm bypassing BatchToSpaceND without changing the order of operations. With this approach, the folded bias term remained after BatchToSpaceND, away from the convolution layer. Then, it became separate BroadcastAdd operation in TensorFlow Lite model rather than fused into convolution. Surprisingly, it turned out that BroadcastAdd was much slower than the corresponding convolution operation in our experiment:Timing log from the experiment on Galaxy S8 ... [DepthwiseConv] elapsed time: 34us [BroadcastAdd] elapsed time: 107us ... To remove BroadcastAdd layer, we decided to change the network itself instead of fixing TensorFlow quantization. Within slim.separable_convolution2d layer, we swapped positions of BatchNorm and BatchToSpaceND. SpaceToBatchND → DepthwiseConv2dNative → BatchNorm → BatchToSpaceND Even though batchnorm relocation could lead to different outputs values compared to the original, we did not notice any degradation in segmentation quality.5) SIMD-optimized implementation for quantized resize bilinear layerAt the time of accelerating TensorFlow Lite framework, conv2d_transpose layer was not supported. However, we could use ResizeBilinear layer for upsampling as well. The only problem of this layer is that there is no quantized implementation, therefore we implemented our own SIMD quantized version of 2x2 upsampling ResizeBilinear layer.Figure 6. 2x2 bilinear upsampling without corner alignnment. To upsample image, original image pixels (red circles) are interlayed with new interpolated image pixels (grey circles). In order to simplify implementation we do not compute pixel values for the bottommost and rightmost pixels, denoted as green circles.for (int b = 0; b < batches; b++) { for (int y0 = 0, y = 0; y <= output_height - 2; y += 2, y0++) { for (int x0 = 0, x = 0; x <= output_width - 2; x += 2, x0++) { int32 x1 = std::min(x0 + 1, input_width - 1); int32 y1 = std::min(y0 + 1, input_height - 1); ResizeBilinearKernel2x2(x0, x1, y0, y1, x, y, depth, b, input_data, input_dims, output_data, output_dims); } } } Every new pixel value is computed for each batch separately. Our core function ResizeBilinearKernel2x2 computes 4 pixel values across multiple channels at once.Figure 7. Example of 2x2 bilinear upsampling of top left corner of image. (a) Original pixel values are simply reused and (b) – (d) used to interpolate new pixel values. Red circles represent original pixel values. Blue circles are new interpolated pixel values computed from pixel values denoted as circles with black circumference. NEON (Advanced SIMD) intrinsics enable us to process multiple data at once with a single instruction, in other words processing multiple data at once. Since we deal with uint8 input values we can store our data in one of the following formats uint8x16_t, uint8x8_t and uint8_t, that can hold 16, 8 and 1 uint8 values respectively. This representation allows to interpolate pixel values across multiple channels at once. Network architecture is highly rewarded when channels of feature maps are multiples of 16 or 8:// Handle 16 input channels at once int step = 16; for (int ic16 = ic; ic16 <= depth - step; ic16 += step) { ... ic += step; } // Handle 8 input channels at a once step = 8; for (int ic8 = ic; ic8 <= depth - step; ic8 += step) { ... ic += step; } // Handle one input channel at once for (int ic1 = ic; ic1 < depth; ic1++) { ... } SIMD implementation of quantized bilinear upsampling is straightforward. Top left pixel value is reused (Fig. 7a). Bottom left (Fig. 7b) and top right (Fig. 7c) pixel values are mean of two adjacent original pixel values. Finally, botom right pixel (Fig. 7d) is mean of 4 diagonally adjacent original pixel values.The only issue that we have to take care of is 8-bit integer overflow. Without a solid knowledge of NEON intrinsics we could go down the rabbit hole of taking care of overflowing by ourself. Fortunately, the range of NEON intrinsics is broad and we can utilize those intrinsics that fit our needs. The snippet of code below (using vrhaddq_u8) shows an interpolation (Fig. 7d) of 16 pixel values at once for bottom right pixel value:// Bottom right output_ptr += output_x_offset; uint8x16_t left_interpolation = vrhaddq_u8(x0y0, x0y1); uint8x16_t right_interpolation = vrhaddq_u8(x1y0, x1y1); uint8x16_t bottom_right_interpolation = vrhaddq_u8(left_interpolation, right_interpolation); vst1q_u8(output_ptr, bottom_right_interpolation); 6) Pitfalls in softmax layer and demo codeThe first impression of inference in TensorFlow Lite was very slow. It took 85 ms in Galaxy J7 at that time. We tested the first prototype of TensorFlow Lite demo app by just changing the output size from 1,001 to 51,200 (= 160x160x2)After profiling, we found out that there were two unbelievable bottlenecks in implementation. Out of 85 ms of inference time, tensors[idx].copyTo(outputs.get(idx)); line in Tensor.java took up to 11 ms (13 %) and softmax layer 23 ms (27 %). If we would be able to accelerate those operations, we could reduce almost 40 % of the total inference time!First, we looked at the demo code and identified tensors[idx].copyTo(outputs.get(idx)); as a source of problem. It seemed that the slowdown was caused by copyTo operation, but to our surprise it came from int[] dstShape = NativeInterpreterWrapper.shapeOf(dst); because it checks every element (in our case, 51,200) of array to fill the shape. After fixing the output size, we gained 13 % speedup in inference time.<T> T copyTo(T dst) { ... // This is just example, of course, hardcoding output shape here is a bad practice // In our actual app, we build our own JNI interface with just using c++ code // int[] dstShape = NativeInterpreterWrapper.shapeOf(dst); int[] dstShape = {1, width*height*channel}; ... } The softmax layer was our next problem. TensorFlow Lite’s optimized softmax implementation assumes that depth (= channel) is bigger than outer_size (= height x width). In classification task, the usual output looks like [1, 1(height), 1(width), 1001(depth)], but in our segmentation task, depth is 2 and outer_size is multiple of height and width (outer_size » depth). Implementation of softmax layer in Tensorflow Lite is optimized for classification task and therefore loops over depth instead of outer_size. This leads to unacceptably slow inference time of softmax layer when used in segmentation network.We can solve this problem in many different ways. First, we can just use sigmoid layer instead of softmax in 2-class portrait segmentation. TensorFlow Lite has very well optimized sigmoid layer.Secondly, we could write SIMD optimized code and loop over depth instead of outer_size. You can see similar implementation at Tencent’s ncnn softmax layer, however, this approach has still its shortcomings. Unlike ncnn, TensorFlow Lite uses NHWC as a default tensor format:Figure 8. NHWC vs NCHW In other words, for NHWC, near elements of tensor hold channel-wise information and not spatial-wise. It is not simple to write optimized code for any channel size, unless you include transpose operation before and after softmax layer. In our case, we tried to implement softmax layer assumming 2-channel output.Thirdly, we can implement softmax layer using pre-calculated lookup table. Because we use 8-bit quantization and 2-class output (foreground and background) there are only 65,536 (= 256x256) different combinations of quantized input values that can be stored in lookup table:for (int fg = 0; fg < 256; fg++) { for (int bg = 0; bg < 256; bg++) { // Dequantize float fg_real = input->params.scale * (fg - input->params.zero_point); float bg_real = input->params.scale * (bg - input->params.zero_point); // Pre-calculating Softmax Values ... // Quantize precalculated_softmax[x][y] = static_cast<uint8_t>(clamped); } } ConclusionIn this post, we described the main challenges we had to solve in order to run portrait segmentation network on mobile devices. Our main focus was to keep high segmentation accuracy while being able to support even old devices, such as Samsung Galaxy J7. We wish our tips and tricks can give a better understanding of how to overcome common challenges when designing neural networks and inference engines for mobile devices.At the top of this post you can see portrait segmentation effect that is now available in Azar app. If you have any questions or want to discuss anything related to segmentation task, contact us at [email protected]. Enjoy Azar and mobile deep learning world!References[1] L. Chen, G. Papandreou, F. Schroff, H. Adam. Rethinking Atrous Convolution for Semantic Image Segmentation. June 17, 2017, https://arxiv.org/abs/1706.05587[2] C. Szegedy, V. Vanhoucke, S. Ioffe, J. Shlens, Z. Wojna. Rethinking the Inception Architecture for Computer Vision. December 11, 2015, https://arxiv.org/abs/1512.00567[3] A. Howard, M. Zhu, B. Chen, D. Kalenichenko, W. Wang, T. Weyand, M. Andreetto, H. Adam. MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications, April 17, 2017, https://arxiv.org/abs/1704.04861[4] M. Sandler, A. Howard, M. Zhu, A. Zhmoginov, L. Chen. MobileNetV2: Inverted Residuals and Linear Bottlenecks. January 18, 2018, https://arxiv.org/abs/1801.04381[5] B. Jacob, S. Kligys, B. Chen, M. Zhu, M. Tang, A. Howard, H. Adam, D. Kalenichenko. Quantization and Training of Neural Networks for Efficient Integer-Arithmetic-Only Inference. December 15, 2017, https://arxiv.org/abs/1712.05877
조회수 19788

아마존 매출 신고 방법, 영세율,  부가세 환급

안녕하세요, 대한민국 사업자들의 해외 전자상거래 진출(아마존 판매)을 도와주는 컨설팅 회사이자 업무대행사 컨택틱의 이이삭 대표입니다.오늘 여러분들께 말씀드리고 싶은 것은 영세율에 대한 개념입니다. 제 포스트를 읽으시는 분들은 수출에 관심이 있거나 이미 하고 계신 분들이 대부분일텐데요, 대한민국은 수출을 장려하는 나라이기 때문에 수출을 하는 분들은 내수 거래를 하는 분들보다 혜택을 보는 것들이 몇 가지 있습니다. 그 중에 매출이 영세율 적용되는 것이 많은 분들의 관심일거라고 생각합니다.영세율이란?세율(稅率)이라 함은 세액을 산출하기 위하여 과세표준에 곱하는 비율(從價稅의 경우) 또는 과세표준의 단위당 금액(從量稅의 경우)을 말하는 것으로, 이러한 세율이 영(zero)인 것을 영세율이라 한다... 중략… 또한 납부세액의 계산에 있어서도 매입세액의 공제가 허용되므로 항상 부(負)의 납부세액이 되며, 이는 환급세액으로서 정부로부터 환급받게 되므로 당해 사업자도 부가가치세를 전혀 부담하지 아니하게 된다. – 출처: Naver 지식백과위에서 보이듯이 영세율 매출은 부가세에서 면제되는 대상일 뿐만 아니라, 납부세액의 계산에 있어서도 매입세액의 공제가 허용되어 판매에 필요한 매입 부가세를 공제/환급 받을 수도 있다는 매우 큰 혜택이 있습니다.이해하기 쉬운 예시일반적인 내수 거래의 부가세 계산 예시:매입: 100원 (공급가 90원에 매입 부가세 10원)매출: 1000원 (공급가 900원에 매출 부가세 100원)최종 납부 부가세: 100원 – 10원 = 90원최종 수익: 1000원(매출) - 100원(매입가) - 90원(부가세) = 810원아마존 판매 부가세 계산 예시:매입: 100원 (공급가 90원에 매입 부가세 10원)매출: 1000원 (공급가 1000원에 매출 부가세 0원)최종 납부 부가세: 0원 – 10원 = -10원최종 수익: 1000원(매출) - 100원(매입가) + 10원(부가세) = 910원이렇게 영의 세율을 적용 받게 되면 물건을 사입 하면서 선 납부한 매입 부가세 10원을 분기당 부가세 신고/납부 때 환급 받게 되는 것입니다. 눈 여겨 볼만한 차이라면, 내수 거래를 하면 최종 수익이 (1000 – 100 – 90) 810원인 반면, 아마존에서 판매를 하면 수익이 (1000 – 100 +10) 910원인 만큼 수익성의 차이는 매입가가 높으면 높을수록 어마어마합니다.*위 예시는 아마존에 판매할 상품을 국내에서 소싱 했다는 전제 하에 작성되었습니다. 해외 소싱의 경우 한국을 경유하여 미국으로 수출할 경우 수입 부가세가 적용되겠죠? 해외에서 미국으로 가는 경우에는 부가세 납부가 일어나지 않으므로, 해당 사항이 없습니다.아마존 매출은 영세율 매출에 속하는 것일까?한 줄 답변: 네, 아마존 매출에서 발생하는 매출도 영세율 적용이 됩니다.영세율 적용이 되는 매출을 정리하자면, ‘국외에서 사용·소비될 재화 또는 용역… 중략… 또는 국내에서 사용·소비되는 재화 또는 용역의 공급이라 하더라도 외화를 획득하는 것인 경우에는 영의 세율이 적용된다.’ – 출처 Naver 지식백과이처럼, 대한민국 셀러가 아마존에서 판매한다는 것은 국외에서 사용·소비될 재화의 공급이기 때문에 영세율 적용을 받게 됩니다.아마존 매출을 영세율로 신고하려면 필요한 자료(주의: 홈택스에서 직접 부가세 신고를 하시는 분들도 계실텐데, 홈택스에서 어떻게 처리하는지까지는 제가 이 하나의 포스트에서 다루면 너무 글이 길어지기 때문에 세무사를 끼고 사업을 하는 분들을 위주로 설명 드리는 점 양해바랍니다)1. 아마존 월별 매출 자료아마존 메뉴 중에 Reports에서 Payments를 들어가시면 Monthly Sales Reports를 다운로드 받으실 수 있습니다. 여기서 Income (매출)과 Expense (지출)을 정말 한 눈에 쉽게 볼 수 있습니다. 세무대리인께서 해외 매출을 잡아 주실 때 해당 reports에서 ‘income’ 자료를 기준으로 신고하라고 당부하시면 됩니다. 그리고 ‘기타영세율’(부가세 신고할 때 수출 실적 명세서라는 서류에 기재하는 란 중 하나입니다)로써 아마존 매출을 해외 매출로 잡아달라고 얘기하시면 됩니다. 만약 환율 적용은 어떻게 해야하냐라고 세무사님께서 물어보신다면, 서울외국환중개 또는 관세청에 들어가서 보시면 월별 평균 환율을 알아보시면 됩니다. 아마존 매출 자료도 월별 단위로 다운 받은 것이니, 이렇게 월별 평균 환율로 계산하는 게 가장 편리하고 좋습니다 (정석을 따지려면 각 주문마다 화물이 반출되는 시점의 환율로 계산해야 하는데 이건 FBM으로 판매하든 FBA로 판매하든 판매건수가 한 두개도 아니고 현실적으로 좀 어렵죠 ^^;).2. 수출신고번호가 있는 수출 내역 (특송사를 통해 발송한 항공운송 화물, 포워딩사를 통해 발송한 해상운송 화물)우선 항공운송으로 보내는 화물들에 대해서 말씀드리겠습니다. FBA 배송대행을 하는 G-Trans 또는 도어로 같은 업체들이 있는데, 이런 곳들도 결국 전부 DHL, FedEx, UPS, THT 같은 특송사와 계약을 한 곳들입니다. 그리고 특송사들은 대부분 발송인이 화물을 보낼 때 ‘수출신고대행’이라는 옵션을 선택할 수 있게 해줍니다. 만약 이 옵션을 선택하게 되면, 해당 특송사가 발송인을 대신해서 ‘수출신고필증’을 작성하여 수출 신고를 대신해주는 것입니다. 물론 유료 서비스가 아니며, 15,000원 정도 내는 걸로 알고 있습니다. 아래에도 설명을 드렸지만 이런 특송사 또는 관세사가 귀사를 대신하여 수출신고를 해주는 것은 어쨌거나 외주를 맡기는 행위이기 때문에 돈을 지불하는 것은 당연하오니, 관세청 유니패스 전자통관시스템이라는 사이트에서 직접 수출 신고를 하는 방법을 터득하여 직접 처리 하시길 추천드립니다 (사업주의 입장에서 한 푼이라도 아낄 수 있다면 아끼는 게 좋겠죠 ^^). 만약 관세청 유니패스 전자통관시스템을 통해서 수출 신고하는 방법에 어려움이 있으신 분들은 컨택틱으로 연락 주시면 저희가 도와드릴 수 있는 한에서는 최대한 도와드리겠습니다. 이야기가 좀 샜네요. 어쨌거나 이렇게 수출신고를 대행하든 직접 하시든 수출신고를 하게 되면 수출신고필증이라는 문서를 받을 수가 있는데, 부가세 신고를 하실 때 이 자료들을 세무사/세무대리인께 전달해주시면 됩니다. 이 부분은 1번과 달리 ‘기타영세율적용’이 아니라 ‘수출재화’로 입력해야하는 부분이라고 세무사님께 말씀드리면 됩니다 (세무사님도 이건 당연히 알고 있을겁니다).3. 수출신고번호가 없는 수출 내역 (소형포장물 등)엄밀히 말하자면, 소형포장물 등을 통해서 나간 화물들은 수출 신고를 하지 않았어도 운송장들만 잘 모아 놓았다면 그걸로 ‘기타영세율’ 처리를 하여 해외 매출로 잡을 수 있습니다. 하지만 컨택틱에서는, 다소 번거롭긴 하더라도, 대한민국의 아마존 셀러들이 아무리 작은 화물도 관세청 유니패스 전자통관시스템에서 전부 수출 신고를 하는 것을 추천 드립니다. (왜 관세청 유니패스 전자통관시스템에서 수출신고를 직접 해야하냐? 관세사를 통해서 하면 돈이 너무 많이 들기 때문이거든요 ^^; 소형 포장물 하나하나마다 관세사를 통한 수출 신고를 하면 배보다 배꼽이 커지게 됩니다) 매출이 작으면 국세청에서도 눈 여겨 보지 않겠지만, 그렇다고 해서 이런 작업을 넘기면 안됩니다. 나중에 매출이 커지면 국세청의 조사가 있을 때 모든 자료를 진작에 미리 준비해 놓았다면 얼마나 편하겠어요? 그때 가서 안하던 것을 하려면 머리도 아프고 헷갈려서 오히려 더 골치 아파집니다. 습관의 중요성은 절대로 간과해선 안됩니다. 매출이 작을 때부터 아무리 작은 화물이라도 성실하게 수출 신고를 해야 나중에 매출이 커질 때에도 탈 없이 정리할 수 있을 겁니다. 어쨌거나 해당 분기에 속하는 모든 소형포장물들의 운송장을 정리해서 세무사님께 보내드리고, 해당 자료 또한 1번과 같이 ‘기타영세율적용’으로 잡고 해외 매출로 신고하시면 됩니다.저희 컨택틱도 아마존에서 판매를 하기 때문에 해외 매출을 분기별로 신고합니다. 제가 다소 완벽주의자라서... 저희 세무사님께 자료를 전달해드릴땐 이렇게 엑셀로 먼저 정리해서 보내드립니다 (누락되는 자료가 있으면 저만 손해니까요 ^^) 이렇게까지 정리하지 않으셔도 되지만, 혹여라도 나중에 국세청에서 조사가 들어온다면, 실제로 입금받은 외화 금액도 증명을 해야될 수도 있는데, 저희가 신고하는 해외 매출은 아마존에서 발표되는 매출을 그대로 신고하는 것이기 때문에 아마존의 수수료, FBA 수수료 등의 아마존 지출을 고려하지 않은 셈이 되어버립니다. 따라서 세무사에게 해외 매출분에서 사전 공제된 항목과 내역까지도 알려줘야한다고 생각해서 저는 이렇게까지 정리를 했습니다. 다시 한 번 말씀드리지만 이렇게까지 정리하는건 추후에 있을 세무 조사를 대비하여 하는 것일뿐, 월 매출이 억대를 초과하지 않는 이상 이렇게까지 할 필요는 없어보입니다.영세율 혜택의 실제 체감컨택틱이 아마존 판매를 도와준 고객사 중의 한 분의 실제 사례입니다. 이 분은 국내에서 유명 신발 브랜드 제품을 매입하고 아마존에 판매하는 분입니다. 제품 판매가가 $100이 넘어가는 고가의 제품들이라 당연히 매입할 때 발생하는 매입 부가세 또한 만만치 않았습니다. 이분이 3개월간 판매한 아마존 매출은 대략 $150,000 이었으며 (편의상 1억 5천만원이라고 하겠습니다), 매입에 사용된 금액은 대략 6천만원이었습니다.분기마다 컨택틱의 도움을 받고 해외 매출을 신고하였더니, 부가세 환급금이 (내수거래를 하지 않고 오직 아마존 판매만 하는 분이어서, 국내 매출이 없었습니다) 무려 500만원이나 넘게 나오셨습니다. 아마존에서 물건을 판매할 때 실제 남기는 수익이 얼마 안되셨지만, 이렇게 부가세 환급까지 받게 되니 수익률이 확 올라갔던 것이죠. 본 포스트에서 가장 먼저 언급한 국내 매출과 해외 매출의 수익성 차이를 실제로 보여주는 예시라고 볼 수 있겠습니다.마치며...아마존 판매를 포함한 수출 셀러 여러분들은 이렇게 정정당당하게 세금 혜택 누릴 것을 전부 누리고 계신가요? 지금까지 적게는 수십 만원 많게는 수천만원까지 현금으로 돌려받을 수도 있었을 부가세 공제/환급금… 지금이라도 늦지 않았으니 잘 알아보시고 세금 혜택을 받으시기 바랍니다 ^^
조회수 1306

2017년의 첫 시작, 유어 마이 캔디걸 임지애님 :)

안녕하세요, 비투링크의 소식을 전하는 미나 입니다 :)  어느 기업이나 '인재'가 중요하다고 말하지만, 특히 스타트업에서 구성원은 그 회사의 전부라 해도 과언이 아니라 생각합니다.'어떤 사람들이 함께 모여 어떤 가치를 가지고 일을 하는가?'가 회사의 정체성과 철학을 규정 합니다. 지금까지 파운더스 이야기만 전해드렸는데요, 비투링크에는 각자 개성이 뚜렷한 멋진 비투링커들이 있습니다!비투링크 (B2Link) 에 대해 궁금해하시는 분들을 위해 2017년부터 사내 이야기를 전해보려 합니다.그 속에 스며든 우리만의 가치와 비전을 많은 분들이 공감할 수 있기 바라며 :)비투링크에서는 매달 1명의 “이 달의 비투링커” 를 선정합니다!*여기서 이 달의 비투링커란? *     비투링크의 숨은 공신!! 드러나지는 않지만 (혹시 드러나도 할 수없음ㅋㅋ)  맡은 바 책임을 다하고, 비투링크를 위해 땀 흘리는 바로 당신!  당신의 소중한 땀과 눈물을 우리가 닦아줄게요 ♬♬[우리는 비투링커] 의 첫번째 주인공은 누구일까요? (궁금 궁금)2017년 1월의 비투링커 추천사: HJ 아무개님 :)2017년의 첫 [우리는 비투링커] 의 주인공은"You are my candy girl~~" Finance 팀 임지애 님 입니다 !!! 2017년 1월의 비투링커 임지애 님 ♥안녕하세요, 저는 비투링크 Shared Service Division 내 재무팀에서 전반적인 회계업무를 맡고 있는 임지애 입니다 :)처음에 '이 달의 비투링커' 소개영상에 제가 나올 때 오글거리면서도 너무 뿌듯하고 좋아서 얼굴 가리고 웃었어요! ㅋㅋ혹시 저 웃는거 보셨나요? 타운홀미팅이 끝나고, 다시 자리로 돌아갔는데 ㅋㅋ 혁진님 (CFO) 이 올해의 첫 비투링커가 된걸 축하한다고 해주셨는데, 괜히 더 뿌듯하고 어깨에 힘 바짝 들어가는거 있죠? ㅋㅋ 아무튼 저 너무 신났나요?기쁩니다 아주아주! :) 퇴근하고 혼자만의 시간을 많이 갖는 편이에요! 혼자 영화도 보러가고, 몸이 찌뿌둥 할 땐, 요가도 즐깁니다!요즘엔 집에서 저를 애타게 기다리는 호슴이 (애완용 고슴도치) 때문에 바로 집으로 갑니다 ㅋㅋ 제가 집에가면 막 뛰어나와요! (엄청 빠름)집에서 애완용 고슴도치 '호슴이' 를 키운다는 지애님 ㅋㅋㅋㅋ고슴고치 키우는 분은 저 정말 처음 봤습니다.... 근데 사진을 보니까 넘넘 귀여워요 ㅠㅠㅠ지애님의 애완 고슴도치 호슴이 ♥그리고, 모든 비투링커들은 개인 별명이 써있는 컵이 있습니다!지애님 컵엔 뭐가 써있나 봤더니.... 읭? '술 먹은 다음날' ? ㅋㅋㅋㅋ지애님 설명 좀 부탁 드립니다ㅋㅋ아..... 사람들이 다들 제 첫인상이 여성스럽고 얌전한 이미지라고 하더라구요. 물론 저 여성스럽습니다 ㅋㅋㅋ작년 5월에 전체 워크샵 때, 술을 마시고 춤을 춘 적이 있는데, 그때 제 반전 성격에 놀라신 분이 한 두분 아니라고들 하시더라구요. 그리고 원래 술마신 다음날엔 얼굴이 피곤해보이고, 아픈건 당연한거잖아요?!술 마신 다음날 제상태가 인상 깊으셨나봐요ㅋㅋ 그 때 이후로 제 별명이 이렇게 되버렸네요 ㅎㅎㅎㅎ 지애님 책상에 고스란히 올려져 있는 개인 컵 알고 보면, 반전 매력녀 :)제 피부가 많이 건조한 편이에요! 그래서 마스크팩을 즐겨하는데요. 비투링크에서는 분기별로 전직원 대상으로 패밀리세일을 해요 ㅋㅋ 그래서 그때 마스크팩을 종류별로 왕창 사서 씁니다. 또 주변 친구들한테 이거좋다고 써보라고 나눠주는 걸 좋아하구요! 요즘 꽂힌 브랜드는 단연 커먼랩스 '꿀타민 마스크팩' !! 정말 겨울철에 강추합니다 :) 저녁에 하고 자면, 아침까지 촉촉!올해 모든 비투링커가 각자 KPI를 달성하고, 목표매출액을 달성해 해외로 워크샵을 갔으면 하는 바램을.... 가져봅니다 ㅋㅋ사적으로는 , 올해는 꼭 가슴 설레이는 연애를 할겁니다 !!! ♥ 사랑꾼 !!!!! #비투링크 #팀원 #팀원소개 #팀원인터뷰 #인터뷰 #재무팀 #팀문화 #기업문화 #사내문화 #조직문화
조회수 750

MZ세대 팀원이 믿고 따르는 리더의 조건

직장을 다니면서 혹시 이런 말을 접해 본 적이 있으신가요? ‘나 퇴사할 거야!’, ‘나 유튜브 시작할 거야!’. 이 두 가지 말은 몇 년 전까지 직장인 2대 허언이었는데요. 지금은 2대 허언이 바뀌지 않았을까 합니다. 링크드인 조사에 따르면, 밀레니엄 세대는 대학 졸업 후 32세 전까지 직업을 평균 2.85번 바꾼다고 해요. 평생직장의 개념이 퇴색하고 있고, 우수한 직원을 장기근속시키기 위해서 회사와 리더들에게 노력이 요구됨을 시사하고 있습니다."요즘 애들은 끈기가 없어! 라떼는 말이야."“요즘 애들은 끈기가 없어! 라떼는 말이야.”하지만 안타깝게도 기성세대들은 MZ세대의 배경을 이해하지 못한 채 불만을 토로합니다. 오늘은 MZ세대 팀원이 믿고 따르는 팀장, 리더의 조건을 알아보려 합니다. 밀레니얼 세대를 사로잡는 리더, 성과를 내는 리더가 되려면 어떻게 해야 할지 살펴보겠습니다.1. 진정성으로 신뢰를 얻는다.MZ세대는 가식적인 친절함보다 진정성 있는 리더를 원합니다. 진정성이란 말 그대로 마음에서 우러나는 참된 마음인데요. 팀장, 리더라고 하더라도 실수나 문제가 있을 때 슬쩍 넘어가는 게 아닌, 솔직하게 이야기하는 모습을 보여야 합니다. 예를 들어 진행하고 있던 업무가 무산되거나, 예정된 담당자가 변경되었다면 타당한 이유와 내용을 정확히 전달해야 합니다. 리더를 신뢰하는 직원은 안정감을 느끼게 된다고 하는데요. 팀장에 대한 신뢰도가 높은 직원일수록 위험을 감수하고 혁신적인 시도를 할 가능성이 높다고 하네요. MZ세대 팀원이 혁신적인 시도를 원하신다면 진정성 있게 대해주세요.2. 기회를 주고 인정한다.MZ세대는 수평적인 커뮤니케이션과 탈권위주의를 추구하는데요. 권위주의적 리더는 회사 정보나 권한, 목표를 독점할 때 생기게 됩니다. 팀장만 참여하는 회의가 있다면 일반 팀원에게도 회의 내용을 공유해 주세요. 모든 일을 알고 하는 것과 모르고 하는 일은 천지 땅 차이입니다.택시 기사가 되었다고 가정을 해보죠. 그리고 목적지를 알려주지 않는 손님이 탔다고 생각해 보세요. 갑자기 ‘우회전이요’, ‘좌회전이요’라고 말하는 불안한 상황. 택시 기사는 눈을 가리고 운전하는 것 같은 막막함을 느끼게 됩니다. 손님은 지름길로 갈 수 있었을 텐데 기회를 놓치거나, 갑작스러운 방향 전환으로 사고를 당할 수도 있죠.직원의 역량 강화를 위해 전체적인 맥락을 알려주시고, 업무의 기회를 주세요. 업무 기회가 없다면 MZ세대는 ‘이곳에서는 성장할 수 없겠구나’라는 생각을 하게 됩니다. MZ세대가 대기업을 퇴사하는 이유 중 하나는 기계 부품처럼 일하는 구조라고 하는데요. ‘언제까지 이거 해와’라는 업무 지시보다, 일의 목적과 취지, 맥락을 함께 설명해 주시는 게 좋습니다.3. 업무 환경을 개선한다.오픈서베이의 조사 결과에 의하면 3년 차 미만 또는 Z세대는 ‘메신저, 문자’를 통한 커뮤니케이션을 선호한다고 하는데요. 대면이 편한 베이비붐 세대와는 상반되는 결과입니다. 코로나19로 재택근무와 자율출퇴근제가 일상이 된 시대에 발맞춰 업무 환경을 개선해야 합니다.MZ세대는 청소년기부터 IT 기기와 인터넷, 스마트폰을 접했기 때문에 스마트한 환경에 익숙한데요. 업무를 할 때에도 여러 툴의 도움을 받아 일을 하죠. 기업용 업무 툴은 떨어져 있더라도 원활하게 커뮤니케이션을 할 수 있습니다. 채팅은 물론 화상회의도 가능하죠. 업무 관리 기능이 들어간 협업툴의 경우에는 모든 정보를 공유할 수 있어서 자연스럽게 수평적인 문화가 만들어지기도 하죠.  요즘 우리 사회에서는 일상 곳곳에서 세대 갈등을 마주하고 있습니다. 명절에 만난 친척 어른과 조카 사이에서, 회사의 부장과 신입 사원 사이에서, 지하철에서 만난 승객 사이에서도 서로의 입장을 생각하지 않아 갈등이 생깁니다. 자신이 보고 들은 경험만 강조한다면 이런 감정의 골은 점점 깊어지겠죠. 좋은 리더란 조직원 간의 갈등을 조성하기보다, 앞으로 조직을 이끌어 갈 세대를 명확히 이해하고 변화를 꾀하는 것. 직원을 배려하는 문화와 업무 환경을 구축하는 것이야말로 MZ세대 팀원을 지킬 수 있는 방법이 아닐까요.협업툴 플로우 바로가기

기업문화 엿볼 때, 더팀스

로그인

/