스토리 홈

인터뷰

피드

뉴스

조회수 1020

행복한 창업가

창업은 어렵고 힘들고 치열하다. 통계적으로 90%의 창업이 실패하고 살아남은 10%도 성공이라 부르기에는 어려운 상황이 많다. 이렇게 어렵고 힘든 과정이 창업이다. 그럼 왜 어렵고 힘들까? 근본적으로 대부분의 창업은 기반도 없고, 돈도 없고, 사람도 없고, 또 비즈니스 모델도 검증되지 않은 경우가 대부분이다. 모든 기반을 갖춘 회사가 새로운 사업에 뛰어들어도 실패할 확률이 높은데 그렇지 않은 경우는 더더욱 확률이 떨어진다. 내 경우에도 창업을 하고 지금까지 수많은 좌절과 실패를 겪었고 언제나 생존에 대한 걱정과 그리고 풀리지 않는 문제들과 씨름을 해야 했다. 그럼 왜 이런 고생을 사서 할까? 대부분의 창업가들은 창업을 하지 않고 직장에 들어가서 많은 연봉과 복지를 누리면서 안정적인 직장생활을 할 수 있는 분들이 많다. 나 또한 그러한 직장 생활의 기회를 포기하고 이 고생과 앞날에 대한 불확실성을 감수하면서 창업가의 길을 걷고 있다. 일확천금의 꿈? 물론 이걸 노리고 창업을 하시는 분들도 있을 것 같다. 하지만 확률적으로 일확천금의 꿈을 이루는 사람이 과연 몇 명이나 있을까? 그리고 그걸 얻는 것이 인생에 있어 정말 그렇게 중요할까? 그건 꼭 창업이 아니더라도 좀 더 안정적이고 확실한 여러 가지 길이 있을 수도 있다. 부동산, 주식 등등  주위에 투자를 통해서 부를 일군 사람들을 많이 보았고 확률적으로 그게 더 확실한 길인 것 같다. 그럼 왜 창업가들은 창업을 할까? 그리고 왜 나는 창업을 해서 고생과 앞날에 대한 불확실성을 감수할까? 모든 사람들에게 적용될 수는 없겠지만 난 근본적으로 창업가들은 꿈을 이루는 과정을 즐기고 그 과정 속에서 행복을 찾는 사람들이라고 생각한다. 나의 꿈과 비전에 동참한 사람들을  하나둘씩 모아나 가고 그리고 그 사람들과 만들어가는 제품 혹은 서비스가 세상을 조금씩 바꿔나가는 과정을 보면서 희열과 행복을 느낄 수 있는 사람들이 창업가라고 생각한다. 며칠 전 2012년도 지금으로부터 약 4년 전에 투자를 받기 위해 참여했던 행사에서 사용한 패널이 사무실에서 굴러다니던 것을 발견했다. 2012년도에 패널을 쓸 때는 허상이었고 실체가 없었던 개념과 그림들이 지금은  현실화되어있다는 것을 발견했다. 난 그 사실에 큰 희열을 느끼고 행복감을 맛보았다. 그리고 지금 다시 새로운 그림을 그리고 있다. 누군가는 터무니없다라고 생각할지도 모르는 그림을 그리고 있다. 하지만 지금까지 그래 왔던 것처럼 그 그림이 몇 년 뒤에는 다시 현실이 되어있을 것이라고 믿는다. 그래서 난 행복한 창업가이다. #NEOFECT #스타트업 #스타트업창업 #창업가 #고민 #성장 #인사이트
조회수 647

당신이 놓치고 있던, 측정 항목 : Dwell Time

Dwell Time은 가장 중요한 지표지만, 자주 오역되어 사용되는 웹사이트 측정 항목 중 하나입니다. 많은 마케팅 담당자가 데이터를 분석할 때 페이지에 머문 시간(Duration Time)만을 지나치게 신뢰하고 있지만, 단순히 사용자들의 체류시간은 그리 믿을만한 측정항목이 되지 못합니다.오늘 포스트에서는 , 도대체 Dwell Time 이 뭔지, 검색엔진이 왜 이 Dwell Time을 검색 결과 순위를 매기는 데 사용하는지, 그리고 여러분의 비즈니스 사이트에 이 Dwell Time을 증대시킬 수 있는 방법론에 대해서 자세히 써보겠습니다 :)Dwell Time이 뭘까?3년 전에 Bing 소속의 Duane Forrester 라는 분이 "퀄리티있는 컨텐츠를 만드는 방법론" 에 대해서 자세한 블로그 글을 쓴적이 있습니다. 이 글에서 Dwell Time에 대해서 처음으로 언급하게 됩니다.쉽게 말하자면, Dwell Time은 실제 방문자가 우리 웹사이트를 나가기 이전에 우리 웹사이트 내에서 사용한 순수 시간입니다. 단순히 머문시간이 아니라 '순수 사용 시간' 이라 이해하시면 될 듯 합니다. 이론적으로, Dwell Time이 길면 길수록 사용자들이 웹사이트에 있는 컨텐츠들을 소비할 확률이 높아지고, 우리 웹사이트 내의 다른 Action들로 전환할 수 있는 확률도 높아집니다.이탈률 그리고, 진짜 이탈률더 자세한 내용을 다루기 이전에, 이탈률과 '진짜 이탈률'의 차이를 짚고 넘어가는 것이 굉장히 중요합니다. 왜냐하면 우리가 다루고 있는 이 Dwell Time이 이탈률과 직접적으로 관련이 있기 때문이지요.Google Analytics를 포함한 모든 데이터 분석 플랫폼에서는 웹페이지 내 체류시간을 정확하게 측정하기 위하여, 2번의 클릭을 필요로 합니다. (웹사이트를 들어오는 클릭과 나가는 클릭). 하지만, 가장 중요한 나가는 클릭이 없다면, 25분 정도가 지나도 사용자가 아무런 움직임이 없을시에는 자동으로 해당 사용자가 나갔다고 판단하여 명확히 나간것인지는 모르겠지만, 세션을 종료해버립니다. 이것이 바로 이탈률과 진짜 이탈률 뒤에 숨어있던 원리입니다.6초 동안 방문하게 되는 트래픽이 진짜 이탈이라는 것이죠. 방문자가 사이트에 들어와서, 페이지를 바로 나가버리기로 결정했거나, 어떤 컨텐츠도 소비하지 않기로 마음먹고 바로 나가버리는 경우 6초가 걸립니다. 하지만 사용자가 방문하는 동안 들어와서 거의 30 분 정도 긴 시간 동안 긴 내용의 콘텐츠를 읽은 후 이탈하는 것은 실제 이탈 행위가 아닙니다. 따라서 순위가 높고 우수한 콘텐츠를 가진 페이지 중 일부가 높은 이탈률을 보일 수 있습니다. 이탈률은 높게 나올 수 있지만, 진짜 이탈률이 아닐 수도 있다는 것이지요.이것이 Dwell Time이 페이지 품질 및 관련성에 대한 신뢰할 수있는 지표인 이유입니다. 일부 마케팅 담당자는 이탈률이란 지표가 너무 단순하게 측정되기 때문에 신뢰할 수 없다고 생각합니다.Dwell Time은 검색엔진 순위에 영향을 끼칠까?검색 엔진에 의해 Dwell Time이 순위를 매기는 기준들 중 하나로 사용되는지 여부에 대한 토론은 SEO 분야에서 오랫동안 이루어졌습니다. Google은 알고리즘은 특정 측정 항목에 대해 영향력을 가지고 있긴하지만,  Google의 특정 기능을 살펴보면 Dwell Time이 가장 중요한 요소입니다. 하기 이미지의 기능은 지정된 도메인의 모든 결과를 차단하는 옵션입니다.Google은 체류 시간을 기준으로 검색 결과로부터 도메인을 차단할 수있는 옵션을 제공할지 여부를 결정한다는 이론이 생겼습니다. 당연히 정확한 사실은 여전히 수수께끼이지만, Dwell Time이 짧아지면 방문객에게 차단 옵션이 제공된다는 결과를 낳습니다. 이로 인해 구글 검색 엔진을 사용하는 사람들의 사용자 경험이 상당히 향상되었습니다.순위표에서 SERPs의 '더보기'기능으로 Google 알고리즘이 Dwell Time에주의를 기울이고 있다는 또 다른 증거가 있습니다.이 기능은 저작자와 밀접하게 연결되어 있습니다. 긴 Dwell Time을 가지고 있는 기사를 게시한 콘텐츠 제작자는 SERP에서 더 높은 게재 위치를 얻었고 기본 검색 결과 아래의 "More by" 링크로 다른 컨텐츠도 조회가 가능하도록  보상을 받고있는 것 같습니다.저작권이 중요한 신호로 남아 있지만 "더보기"와 도메인 차단 기능은 모두 Google에서 폐기되었습니다. (이 기능들이 얼마나 유용한지를 생각해 보면 부끄러운 일입니다.)어쨌든 구글 알고리즘은 사용자의 페이지 콘텐츠에 대한 품질 및 관련성을 안정적으로 추측하는 데 Dwell Time을 사용할 가능성이 높을 것입니다. 지금은 Dwell Time이 결정적인 순위를 매기는 항목인지 여부에 대한 정답은 없습니다.어떻게 Dwell Time을 늘릴 수 있을까?이제 우리는 Dwell Time이 무엇인지, 그리고 왜 그것이 검색 결과 순위를 결정하는 항목이라고 생각해야하는지, 알아보았습니다. 그렇다면 어떻게 해야 Dwell Time을 늘릴 수 있을까요 ?여러분이 Dwell Time을 늘리려고 노력할지 여부에 관계없이, 어쨌든 좋은 컨텐츠를 만들기 위해 네 가지 중 적어도 세 가지는 해야합니다. 체류 시간을 늘리는 말도 안되는 마법 같은 것은 아니지만,  이러한 기술을 직접 해보면 사이트 내 콘텐츠의 이탈을 어느정도 줄일 수 있습니다.1. 더 좋은 컨텐츠를 만들자 !체류 시간을 늘리는 데 도움이되는 첫 번째 제안은 당연하게도 더 나은 콘텐츠를 만드는 것입니다. 아무도 쓰다만 내 물건을 아무도 사용하지 않는 것 처럼, 우리는 쓰레기와 같은 컨텐츠를 만들면 의미가 없습니다.블로그 게시물, 인포 그래픽 또는 비디오를 제작하든 좋은 콘텐츠는 다음과 같아야합니다.- 유용해야 한다. (실무적이거나 교육적인것)- 재밌어야 한다. (재밌거나, 평범하지 않거나, 놀라운 것)- 이해가 쉬워야 한다. (탁월하고, 대화가 잘되고, 잘 설계된 것)콘텐츠가 좋을수록 방문자가 머무를 확률이 높아 지므로 체류 시간이 길어집니다.2. 사이트 내 연결 링크를 자주 사용하자 ! 체류 시간은 페이지에 도착한 후 다시 검색결과창으로  돌아가는 시간 사이에 측정되므로, 사용자가 콘텐츠를 읽었을 때 취할 추가 행동을 사용자에게 제공하는 것이 좋습니다. 따라서 사이트 콘텐츠 내 두번째 링크를 두는 것은 방문객에게 더 나은 사용자 환경을 제공합니다.물론 SEO를 극대화하려면 내부 연결이 필수적입니다. 강하고 논리적인 내부 연결 전략이 없으면 사이트가 검색 결과 순위에서 어려움을 겪을 수 있습니다. 검색 엔진의 거미가 철저하게 여러분의 위치의 전체 index를 붙일 수 없을지도 모르기 때문입니다.3. 더 나은 참여 전략 채택하라 !다른 기사 및 페이지에 대한 내부 링크가 방문자가 사이트를 더 오래 머물도록 유도 할 수있는 것처럼 콘텐츠 참여 기법도 사용할 수 있습니다. 여러분의 독자에게 관련 콘텐츠를 제시함으로써 독자가 여러분의 사이트에 계속 머물 수있는 강한 인센티브를 제공하게됩니다. 이 전략은 올바르게 구현된다면, 매우 효과적일 수 있으며 추천 기사는 독자가보고있는 콘텐츠에 더 밀접한 관련이 있기 때문에, 클릭을 통해 귀하의 사이트에 머무를 확률이 높습니다. 결국 방문자가 검색결과 창으로로 돌아 가지 않고도 관심있는 주제에 대해 더 많이 알게될 수 있어 유용하지요.4. [Pageless 스크롤 디자인]을 도입하라 !Dwell Time을 늘리는 데 사용할 수있는 또 다른 기술은 웹 페이지에 "무언가"또는 스크롤되는 디자인을 도입하는 것입니다. 스크롤이 긴 웹페이지는 사용자 경험 측면에서는 우수 할 수 있지만 실제로 구현이 잘못되면 SEO에 피해를 줄 수 있습니다. 이는 검색 엔진 크롤러가 클릭이나 스크롤과 같은 사용자 동작을 항상 추적할 수 없기 때문입니다.(멍청하거든요)다행히도 많은 작업이 필요없는 편리한 솔루션이 있습니다. 검색 엔진 크롤러가 스크롤링 페이지의 컨텐츠를 철저하게 색인 할 수있게하려면 페이지를 다른 페이지 섹션으로 분리해야합니다. 각 섹션에는 유사한 <title> 태그가 있으며 rel = "next"및 rel = "prev"값은 <head> 태그에 선언되어 있으면 좋겠죠.무한 스크롤 페이지에 페이지를 매기는 방법에 대한 자세한 내용은 해당 주제에 대한 Google의 공식 블로그 게시물을 확인하시면 됩니다.결론Dwell Time이 검색결과 순위를 측정하는 항목인지 여부에 관계없이 방문자가 사이트에 머문 시간을 늘리고 이탈률을 낮추는 것은 굉장히 유의미합니다. 위에 나열된 기능을 구현하면 페이지를 더 끈끈하게 만들고 방문자에게보다 매력적인 경험을 제공하며 잠재적으로 전환을 늘릴 수 있습니다.퍼포먼스 마케팅 에이전시, 오피노 바로가기
조회수 2807

현대엔지니어링의 베테랑을 만나다

이들은 어떤 노력으로 베테랑이 될 수 있었을까요?시행착오의 경험을 차곡차곡 쌓는 주체는 결국 사람입니다. 온몸으로 경험을 축적한 사람은 성장과 혁신의 밑그림을 창조적으로 그릴 수 있는 힘을 가집니다. 그들은 막다른 길에서의 실패조차 다름으로 이어지는 중요한 자산으로 생각합니다. 각자의 자리에서 오랜 시간 경험을 갈고 닦은 현대엔지니어링의 베테랑들을 만났습니다.한국 주행시험장설계 분야의 최정점자동차 주행시험장설계 분야 고수화공플랜트사업본부 김웅기 부장입사 30년차 김웅기 부장은 국내 주행시험장설계 분야에서 최정점에 서있습니다. 국내 최초의 주행시험장인 남양주행시험장 설계(1992)를 시작으로 중국 연태 현대차기술연구소 주행시험장(2016), 현대모비스 주행시험장(2017) 등에 이르기까지 국내외 주행시험장은 모두 그의 손을 거쳐 탄생했습니다. 현재 김웅기 부장은 ‘현대자동차 서산직선로 주행시험장 기본 및 실시설계’를 수행하며 군산에서 시공 중인 ‘전북 상용차부품 주행시험장 건설 사업관리용역’의 기술지원기술자를 겸하고 있습니다.김웅기 부장에게 ‘경험’이란, 일을 하면서 익힐 수 있는 새로운 정보나 지식과는 다른 개념입니다. 요즘 시대엔 모르면 인터넷에 검색해서 배우면 되지만, 도로설계와 같은 전문 분야는 검색만으로 알 수 없기 때문입니다. 남양주행시험장 프로젝트를 수행할 때의 일화입니다. 고속주회로 완화곡선을 설계하던 한 선배가 사람이 느끼는 지각한계치인 ‘롤적’이라는 상수를 잘못 적용했습니다. 작은 값을 적용해야 하는데 반대로 큰 값을 적용한 것입니다. 그 때의 경험으로 지금까지 모든 고속주회로 완화곡선 설계 시 롤적 값을 2 이하로 적용해 운전자로 하여금 쾌적한 주행이 되도록 합니다.김웅기 부장이 회사에 입사했을 때 사용하던 도로설계 프로그램은 현대엔지니어링이 자체 개발한 HDSP로, 상용화된 도로설계 프로그램이 존재하지 않았던 당시에는 획기적인 프로그램이었습니다. 당시 김웅기 부장은 프로그램을 개발한 선배들을 동경했습니다. 프로그램을 배우고 익혀 선배들이 닦아놓은 길을 자신도 잇겠다는 마음으로 밤낮없이 공부했습니다.독학 끝에 김웅기 부장이 업무에 반영한 최초의 프로그램은 기존 도로 확장 도로설계에 필요한 ‘기존도로 선형도출’ 프로그램입니다. 이후에도 김웅기 부장은 고속주회로 프로그램도 독학해 각 프로젝트별로 적합한 설계솔루션을 만들어내고 있습니다. 특히 ‘McConnell Curve’ 원리를 기반으로 개발한 프로그램은 현재 거의 모든 국내 자동차 주행시험장에서 적용되고 있습니다.김웅기 부장은 지난 2002년 현대건설이 주관한 ‘거금도 연도교 2단계 턴키설계’ 사업 때의 일화가 지금까지 열정을 잃지 않고 쉼 없이 전진할 수 있는 이유라고 전합니다. 이 사업은 전라남도 고흥군 소록도에서 거금도 금산면까지 연결하는 해상교량 및 교차로 4개소와 휴게소를 설치하는 익산지방국토관리청의 도로 프로젝트였습니다. 과업 10개월 동안 남부터미널 옆에 위치한 합동 사무실에서 보내고 마지막 한 달은 거의 밤을 새웠습니다. 이때 독일의 LEONHARDT, ANKRAUND PARTNER와 함께 기본 계획을 수행했는데, 머리 색이 하얗게 바랜 노령의 독일 토목기술자가 직접 계산기를 두드리며 구조계산을 하던 모습에 깊은 감명을 받았고 그 독일기술자처럼 늙고 싶다고 생각했습니다.도로설계에만 30년을 몸담은 김웅기 부장은 요즘 ‘기술지원기술자’에도 관심을 갖고 있습니다. 설계자로서 시공현장에서 발생하는 설계-시공간 문제점을 현장에서 적재적소에 효과적인 방법으로 해결하고 싶은 바람입니다. 김웅기 부장은 노력하는 사람에게는 그에 상응하는 보답이 존재하는 것이 회사생활이라고 전하며, 직원들이 자신의 일에 자부심과 책임을 느끼며 지낸다면 좋겠다는 당부도 잊지 않았습니다.건축에 생명을 불어넣는 명장기계설비 분야 고수건축사업본부 오흥기 부대현대엔지니어링 기계설비 분야 대표 베테랑으로 건축사업본부 오흥기 부대를 꼽습니다. 오흥기 부대가 기계설비 분야라는 한 우물을 판 지는 24년. 80년대 중반, 당시 미개척 분야였던 건축설비를 전공으로 택한 후 대학 졸업과 함께 현대건설에 입사했습니다.현대건설 재직 당시 참여했던 평양 류경 정주영체육관 건립 사업은 잊지 못할 프로젝트입니다. 최근 남북통일 농구경기가 개최됐던 곳으로, 오흥기 부대에겐 감회가 남다른 곳입니다. 이 사업은 워낙 극비리에 진행된 데다 북한의 설계기준 및 자료가 미비해 어려움이 많았습니다. 이런 녹록하지 않은 환경에서 난방 시 상하부 온도 차가 없도록 기류순환시스템을 고안하기 위해 몇 날 며칠을 고민했습니다. 오흥기 부대는 미국 NBA 경기장을 참고해 문제를 해결했다고 합니다.제주 해비치호텔도 좋은 경험이 됐습니다. 바로 8층 높이, 1,600평 규모의 대형 아트리움 로비 때문입니다. 많은 사람이 동시에 이용하는 만큼 항상 쾌적함을 유지하는 것이 관건인 가운데 원활한 냉·난방 운전은 물론 에너지 비용까지 고려해 설계해야 했습니다. 가장 완벽한 시스템을 설계하기 위해 오흥기 부대가 선택한 것은 끊임없이 새로운 방식을 시도하는 것입니다. 수차례 시뮬레이션 검토 끝에 적정한 공조 방식을 선정할 수 있었습니다. 오흥기 부대가 수많은 시행착오를 겪으면서도 끝까지 포기하지 않을 수 있었던 이유는 목표가 확실했기 때문입니다. 목표를 향하는 과정에 어려움이 있었지만 항상 긍정적인 자세와 규칙적인 생활로 자신을 컨트롤했습니다. 무엇보다 주변 사람에게서 많은 힘을 얻었다고 합니다. 동료 혹은 팀원들과 대화를 하면서 문제를 해결할 방법을 찾아나간 것입니다. 오흥기 부대는 이를 팀 스포츠인 축구에 빗대어 설명했습니다.축구를 하다 보면 뒤에 눈이 달린 것도 아닌데 서로 잘 피해서 움직입니다. 이는 주위 선수들이 각자 자신의 위치에서 역할을 훌륭히 수행해내며 서로의 상황을 끊임없이 소통하기에 가능한 일입니다. 오흥기 부대는 업무에서도 각각의 위치에서 서로의 역할을 다하고 끊임없이 소통하며 부족한 부분을 채워줘야 한다고 말합니다.최근 오흥기 부대의 가장 큰 관심사는 미세먼지입니다. 미세먼지 농도가 삶의 질을 넘어 생존을 위협하는 수준이 됐기 때문입니다. 이에 오흥기 부대는 깨끗한 실내공기를 위한 여러 시스템을 개발했습니다. 주방후드연동 하부급기 시스템과 현관 에어샤워 시스템은 각각 주방에서 요리할 때 발생하는 미세먼지와 외출 후 의류나 신체에 의해 유입되는 미세먼지를 방지합니다. 가장 최근에는 ‘H-SUPER 공기청정 환기시스템’을 개발했습니다. 0.3㎛ 미세먼지 제거 성능을 99.97%로 끌어올리고 환기량을 법적 기준 대비 2배 증가시켰습니다.오흥기 부대는 달인과 기술자, 그리고 기능공과 엔지니어의 차이를 얼마 전 사내에서 진행된 이정동 교수의 특강에서 찾습니다. 특강에 따르면, 매번 같은 일을 하는 생활의 달인은 매번 다른 일을 하는 40년 경력의 조다이회사 백발 엔지니어를 결코 넘어설 수 없습니다. 그리고 경력이 쌓인 엔지니어일수록 새로운 환경에서도 문제의 핵심을 재빨리 분석하고 유사경험을 더 폭넓게 활용해 보다 창의적이고 차별적으로 일할 수 있어야 합니다. 오흥기 부대는 회사 생활, 나아가 개인의 삶은 100m 단거리 달리기가 아닌 마라톤이라고 강조했습니다. 남들이 설계해놓은 길을 빠르게 효율적으로 달리는 것만으로는 한계가 있으며 긴 호흡으로 계속 도전하고, 경험을 축적해 길을 그려내는 고수가 되어야 한다고 설명했습니다.민자발전 사업개발의 선두자민자발전 사업 분야 고수전력플랜트사업본부 박상민 차장현대엔지니어링은 최근 민자발전(Independent Power Plant, 이하 IPP) 사업으로 사업영역을 확장해나가고 있습니다. 박상민 차장은 그 선두에서 민자 발전 사업개발을 이끌고 있습니다. 박상민 차장은 EPC 프로젝트를 수행할 당시 발주처와 협의를 하는 그 과정에서 지분 참여를 통해 사업을 개발, 운영하는 Developer에 대한 이해가 생겼고 EPC 도급만이 아닌 발주처 입장에서 발전소 운영 사업의 가능성을 발견했습니다. 투자리스크가 존재하지만 단순 도급 사업에 비해 매년 배당이익을 통한 안정적인 수입을 창출할 수 있다는 점에서 매력을 느낀 것입니다. 또 주력 발전 시장인 개도국과 신흥국들의 국가 재정 여력이 부족한 탓에 최근 들어 투자를 동반한 PPP나 Private IPP 형태의 사업이 많이 발주되고 있는 점에도 주목했습니다.처음 가는 길이기에 난관도 많았지만, 끊임없는 노력으로 하나하나 헤쳐나갔습니다. 먼저 관련 서적을 들여다보며 공부를 했습니다. 하지만 책 속의 이론은 현장 실무에 적용하기에 한계가 있었습니다. 이를 보완하기 위해 국내외 Developer들과 자주 면담하면서 현장업무의 고민을 파악했습니다. 또 팀원들과 해외연수나 세미나 등에도 적극 참여하는 등 IPP를 배울 수 있는 기회를 최대한 갖고자 노력했습니다. 회사 미래성장동력사업으로 IPP가 선정된 덕분에 지원을 받은 점과 기획실 주관으로 진행된 경영전략 PF 교육과정에 참여한 것도 많은 도움이 됐습니다.사내에 IPP 개발사업에 관한 규정도 만들었습니다. PRM팀 등 관련 실/본부와 상의해 절차를 새로 만들고 다듬으면서 업무를 추진했습니다. 전력플랜트사업본부 내부적으로도 팀 차원의 스터디그룹을 만들어 민자발전 표준 절차서를 개발, 사내 표준으로도 등록했습니다. 이렇게 만들어진 규정과 표준 등은 현재 현업에서 활용되고 있습니다.박상민 차장은 지난 2015년 첫 국내 IPP 사업으로 진행하고자 했던 통영 천연가스 발전사업에 참여했던 경험이 큰 도움이 됐다고 이야기합니다. LNG 직도입을 통해 사업성을 확보하는 전략을 세웠지만 안타깝게 당시 저유가의 영향으로 토지매입 협상이 지연되면서 결국 포기해야만 했습니다. 하지만 건설출자자의 사업개발 노하우와 LNG에 대한 이해를 높이는 계기가 됐습니다. 그때의 경험이 유사사업에 도전해 수주할 기회가 될 것이라 의심치 않습니다.현재는 산업통상자원부 국책개발과제로 선정된 전남 안마도 200MW 해상풍력사업을 진행하고 있습니다. 태양광, 풍력 같은 신재생에너지 분야가 확대됨에 따라 이 사업을 발판으로 해외풍력사업에 진출하겠다는 비전도 품고 있습니다.박상민 차장은 EPC뿐만 아니라 인허가, 금융, 운영 등 사업의 모든 분야를 다루는 IPP의 경우 긴 호흡과 안목을 갖춰야 한다고 이야기합니다. 그래서 그 어떤 분야보다 여러 사람이 모여 서로 협업하면서 각자 축적한 지식을 공유해야 한다는 것입니다. 하지만 축적이라는 것이 단번에 이루어지지 않기 때문에 모든 구성원이 매일의 업무를 체계화하고 설계노트/사업노트를 만들어 공유하는 것이 Lesson & Learned 측면에서 많은 도움이 될 것이라고 말했습니다.마지막으로 박상민 차장은 ‘이 또한 지나가리라’는 마음으로 끈기 있게 도전하는 자세가 필요하다고 말합니다. 성과가 눈에 보이지 않거나 지금 가는 길이 맞는지 걱정이 들 때도 있을 텐데 그럴 때마다 포기하지 않고 꾸준히 자신의 자리에서 노력하면 언젠가 결실을 거두게 된다고 덧붙였습니다.계약/클레임 분야 국내 최초 QS (PER) & Accredited Mediator계약/클레임 분야 고수화공플랜트사업본부 김지연 과장클레임 제기는 현대엔지니어링이 프로젝트를 수행하면서 발주처가 계약 역무 범위 외에 추가 요구를 하면서 발생할 수 있는 손해를 막기 위한 장치입니다. 하지만 클레임이든 컴플레인이든 발주처의 입장에서는 사실 달갑지 않은 일이기 때문에 최대한 공손하고 친절하며 무엇보다 정확하고 객관적이어야 합니다. 김지연 과장은 본인의 노하우를 최대한 발휘해 Complain Letter를 작성합니다. 어떠한 Complain Letter라도 김지연 과장의 손을 거치면 Love Letter로 바뀝니다.건설플랜트산업이 고도화되면서 계약과 클레임 관리의 중요성이 커지고 있지만 정작 계약당사자들은 계약내용을 제대로 파악하지 못하는 것이 현실입니다. 매우 어려운 데다 까다롭기 때문입니다. 이뿐만이 아닙니다. 실제로 역무를 진행하면서 발주처에서 계약 범위 외에 추가 요구를 해오는 상황이 종종 있습니다. 김지연 과장은 이러한 요구들로 인해 비용이 늘어나는 것은 물론 공사 기간이 지연되는 등 프로젝트 수행 중에 발생하는 여러 요인으로부터 현대엔지니어링이 스스로를 보호하고 계약서상의 조건 및 역무 범위 안에서 프로젝트를 수행할 수 있도록 가이드라인을 잡아주는 역할을 합니다. 지금은 UGTL 프로젝트를 담당하고 있습니다.김지연 과장이 처음부터 계약/클레임 업무를 했던 건 아닙니다. 지난 2005년 Vendor Document Control Manager로 입사 후 잘 할 수 있는 일, 재미를 느끼는 일을 찾다가 자재 운영팀에서 일하던 중 공급 계약 관리, Change Order, Vendor Claim, 비용 정산 업무를 진행하면서 관심을 가지게 됐습니다. Vendor에서 제기한 클레임에 공급 계약 업무 범위를 살펴보며 대처하고, 최종 비용 정산 업무를 하면서 상당히 흥미를 가지게 된 것입니다.열심히 하는 것으로는 김지연 과장의 성에 차지 않았습니다. 제대로 하고 싶다는 욕심이 생기면서 QS(Quantity Surveyor, 건설원가 관리자) 자격 취득에 도전했습니다. 김지연 과장은 2년간 주말을 반납하고 공부를 했고 3년째 되던 해에 RICS 홍콩사와 5단계에 거친 인터뷰를 진행하고 최종 자격인 MRICS를 취득했습니다. 이뿐만이 아닙니다. 클레임/계약 관리 업무를 진행하면서 분쟁이 발생할 수 있다는 것을 깨닫고 영국 중재인 협회(CIArb)로부터 Accredited Mediator 자격을 부여받았습니다. 이 역시 2년 동안 준비한 끝에 취득했습니다. 연이은 도전이 물론 쉽지는 않았습니다. 다른 나라의 기관에서 부여하는 자격이다 보니 관련 정보가 턱없이 부족해 맨땅에 헤딩하듯 처음부터 혼자 부딪혀야만 했던 것입니다. 하지만 김지연 과장은 차근차근 단계를 밟으며 정보를 취했고 아는 만큼 보인다고 그때마다 길을 발견했습니다.김지연 과장은 QS가 되어 전임 계약 관리자로 투입됐던 UKAN 프로젝트를 잊을 수 없다고 말했습니다. 중앙아시아 지역 업무 노하우가 부족한 상황이라 힘들기도 했지만 스스로 경험을 쌓을 수 있었고, 이때 쌓은 경험이 다음 UGTL 프로젝트에 더 몰입할 수 있는 기반이 됐다고 합니다.김지연 과장은 중요한 것은 몰입이라고 설명합니다. 스스로에게 하고 싶은 일이 무엇인지, 흥미를 느끼는 일이 무엇인지 물어보고 그 일에 푹 빠져들어야만 포기하지 않기 때문입니다. 목표를 한 곳에 두고 몰입감 있는 경험과 지식을 축적해야만 한 분야의 진정한 전문가가 될 수 있다고 전했습니다.묵묵히 최선을 다하는 3D 모델러플랜트회전기계 3D 모델링 분야 고수엔지니어링센터 이정은 대리이정은 대리는 어떤 분야의 전문가가 되기 위해서는 최소한 1만 시간 정도의 훈련이 필요하다는 ‘1만 시간의 법칙’을 믿습니다. 한 TV 프로그램에서 20년 경력의 아주머니께서 시선조차 따라갈 수 없는 빠른 속도로 불량을 찾아내는 모습을 보며 시간과 경험의 중요성을 느꼈습니다. 햇수로는 12년, 시간으로는 10만 5천 시간, 이정은 대리가 현대엔지니어링에서 3D 모델러로 일한 시간입니다.3D는 2D 설계의 한계를 뛰어넘어 전체적인 설계 검토를 가능하게 합니다. 2D 도면을 보고 다른 분야의 3D 모델러들이 각각 작업한 3D 모델링 결과물을 가지고 내부 리뷰를 거치며 간섭 및 오류 등을 확인 후 수정합니다. 이 과정을 통해 설계 오류를 최소화하고 시공 재작업을 방지합니다. 리뷰 작업은 최소 3번 이상 이뤄지는데, 30%(기계의 대략적인 형태 표현), 60%(Vendor GAD 반영), 90%(전체 설계 반영) 리뷰 단계를 거칠 때마다 오류가 줄어들고 점점 개선되는 결과물을 눈으로 확인할 수 있습니다.이정은 대리가 처음 입사했을 때는 스스로를 3D 모델러라 자부할 수 없었습니다. 시각디자인을 전공하고 관련 회사에 다녔지만 적성에 맞지않아 그만두고 진로를 고민하고 있을 때 지인에게 3D 분야를 추천받았습니다. 처음에는 잘 알지도 못하는 분야에다 하던 일이 아니라서 망설였습니다. 하지만 자세히 알아보니 관심이 생겼습니다. 교육을 받고 회사에 입사했지만 리뷰 룸에 있는 3D 모델링 샘플을 보고 기가 죽기도 했습니다.첫 프로젝트는 EGP3(Escravos Gas Project Phase 3)였습니다. 당시 겨우 프로그램 기본 사용법만 익힌 상태였는데 발주처에서 기기를 디테일하게 표현해달라고 요구하는 바람에 난관에 봉착했습니다. 더욱이 이전까지는 배관팀이 기계 모델링을 한 탓에 팀 내부에 관련 기술과 정보를 가진 사람도 없었습니다. 이정은 대리는 하루가 멀다고 야근을 하며 혼자 프로그램 툴을 이리저리 사용하면서 기술을 터득했습니다. 또 기계에 대한 이해가 없어 도면을 보기 힘들 때는 담당자를 찾아가 물어보며 배워나갔습니다. 길을 가다가도 기계만 보이면 모델링 할 때 도움이 되겠다 싶어 유심히 지켜봤을 정도였습니다.10만 5천 시간이 흐른 지금 이정은 대리는 현재 모든 플랜트회전기계 관련 프로젝트의 3D 모델링 전반을 관리하고 있습니다. 이제는 전문 3D 모델러라는 자부심도 생겼습니다. 리뷰를 거칠 때마다 점점 나아지는 모습을 보며 느끼는 성취감이 지금까지 그녀가 자신의 분야에 계속해서 도전하는 원동력이 되고 있습니다. 그리고 묵묵히 자신의 자리에서 최선을 다하며 현대엔지니어링 설계/시공의 품질을 높이는 데 일조하고 있습니다.3D 모델링 작업은 베테랑이 되는 과정과 비슷합니다. 시행착오를 두려워하지 않고 실패와 수정을 반복하며 결국 자신만의 경험을 축적해야 합니다. 이정은 대리는 시간과 노력은 배신하지 않는다는 것을 직접 경험했습니다. 설령 지금 가는 길이 잘못됐다고 느꼈을 때조차 그 노력이 또 다른 길을 열어주었다고 합니다.십 년을 넘게 일해도 덜렁거리는 성격 탓에 여전히 실수가 나오기도 하지만 그럴 때마다 초심으로 돌아간다는 이정은 대리. 중요한 것은 힘들어도 오뚜기처럼 다시 일어나 축적의 길을 가는 것입니다. 그리고 일과 인간관계에서 힘들 때 틈틈이 여행과 운동으로 자신만의 시간을 가지며 리프레시하고 다시 업무에 집중할 수 있는 활력과 힘을 충전하는 것이 많은 도움이 된다고 말합니다.▶ 현대엔지니어링 사내보 < HEC> 2018년 9월호에서 원문을 확인할 수 있습니다.#현대 #현대그룹 #현대엔지니어링 #베테랑 #자동차_주행시험장설계 #기계설비 #민자발전_사업 #계약 #클레임 #플랜트회전기계 #3D모델링 #직무소개 #직무정보 #HMG저널 #HMG_Journal #HMG #기업문화 #조직문화 #구성원인터뷰
조회수 869

스타트업 외주와 돈 벌기

예전 어느 개발팀 대표님(?)이 한 말이었던 것 같은데, 창업 시 자본력을 갖추는데 있어서 가장 좋은 3가지 방법은, 1. 자신이 돈이 많거나 2. 집에 돈이 많거나 3. 부모님이 돈이 많거나라고 합니다. (ㅎㄷㄷ) 즉, 창업을 시작하고 진행하는 상황에서 수익이 없는 동안 소요되는 비용처리는 남녀노소를 불문하고 모든 창업가들에게 가장 큰 걱정거리 중 하나이고, 지금도 자금 때문에 걱정하시는 많은 창업가들이 많을 것입니다. 제가 있었던 BEFLOAT팀도 그리 풍족한 팀은 아녔습니다. 처음 서비스를 제작하기 시작할 때 서울시에서 운 좋게도 사업지원을 받을 수 있었고, 또 같이 디자이너 형님이 창업 비용을 많이 도와주셨고, 저도 부모님의 도움을 받아 창업을 시작할 수 있었습니다. 그래도 최대한 부모님의 도움 없이 하고 싶어 저 역시도 외주업무를 진행하여 사무실 월세라던지, 회식, 이외에 들어가는 비용들을 처리하였습니다. 그래서 말 그대로 "돈문제"가 정말 힘든 것이라는 것을 저역시도 굉장히 공감하고 이해하는  바입니다.그리고 이러한 상황 속에서 외주업무(또는 용역업무, 이하 외주라고 하겠습니다.)를 진행할 수 있는 인원이 있다는 것은 정말 행운이라고 생각했었습니다. 서비스를 제작하면서 그때 그때 막막하게 느낄 수 있는 금전적 압박감을 해결할 수 있었고, 월세도 낼 수 있었기 때문이죠. 그래서 이번 글에서는 스타트업 창업의 초기 자금 확보에 대한 이야기를 해 보도록 하겠습니다!일단 투자에  관하여부터 천천히 설명드리도록 하겠습니다.투자? VC? 엔젤? 기본적으로 스타트업을 관심 있게 알아보시고 계신 분들은 스타트업들의 투자에 대한 많은 보도자료들 및 소식들을 읽어 보셨을 것이고, 투자를 받는 금액이 십억 또는 이십억이상의 투자를 받는걸 보시고, "이여 우리도 서비스만 만들면 당장 그런 돈을 받을 수  있겠다."라고 생각하시는 분들도 있으실 겁니다. 그러나, 그런 대규모의 투자는 지금 당장 서비스를 시작하시는 분들이 받을 수 있는 금액이 아니고, 무엇보다 저도 받은 적이 단 한 번도 없기 때문에(;;;)이런 부분에 대한 설명은 링크로 대체하고(바로 아래), 저는 제 견해 위주로 말씀드리겠습니다."NAVER 매거진 캐스트: 스타트업 투자 언제 누가 어떻게 받아야 할까?" http://navercast.naver.com/magazine_contents.nhn?rid=2598&contents_id=84033기본적으로 스타트업 초기 창업자들이 기대해 볼 수 있는 투자는, 1. 엔젤투자 2. 공모전등의 입장으로 얻을 수 있는 장기적 투자 가 가장 일반적인 투자를 받을 수 있는 범위라고 생각이 듭니다. 이러한 투자를 받기 위하여는1. 서비스에 대한 기획서를 작성하고, 제출하여 서로 간의 이해관계를 알고2. 엔젤투자같은 경우는 회사의 지분 등을 투자처에 제공하는 것이고3. 공모전 입상의 경우는 자금의 사용 용도에 대하여 정확하게 소명할 수 있어야 합니다. 그리고 이러한 대부분의 자금을 받기 위하여 법인 설립은 필수라고 생각하시면 됩니다. 각 단체들이 어느 부분에 더 초점을 두고 입상 또는 투자를 결정하는지는 개인적으로 투자를 받아본 적이 없어 크게 팁을 드리진 못하지만, 잘 짜인 서비스라면, 그리고 앞서 말씀드린 노무 재무 등에 관하여 자신이 있으신 분들은 분명히 메리트가 있을 것으로 예상됩니다. 그리고 벤처 캐피털(이하 VC)의 경우, 저희 팀이 상담을 받았을 때 들었던 내용은, 성공적으로 서비스를 진행해 나가는 것은 물론이고, 투명한 재무 회계처리 참여 같은 기본적으로 예상할 수 있는 부분들 뿐만이 아니라, 팀원들 개개인 또는 대표가 어느 학교를 다녔는지, 창업자들이 모이게 된 사연과 나이, 사회경험과 군입대 등의 신변의 상의 질문 등 디테일한 정보들에 더 관심을 가지고 물어보셨습니다. 그럴 만도 한 게, VC의 투자는 일반적 에인절투자라든지 공모전등의 금액과는 차원이 다른 금액을 제공받습니다. 그리고 그러한 만큼 많은 제약이라던지 책임감이 따르게 됩니다.그렇다면, 외주를 하는 것이 적합한 방법일까? 결국  공모전이나 투자를 받을 수 없다면 외주를 해야 하는 것이 최후의 선택이지만 , 외주업무를 하는 것에는 그리 긍정적인 입장은 아닙니다. 기본적으로 , 제 생각으로는, 서비스 제작 초기에는 서비스에 집중하는 것이 무조건 최우선이라고 생각합니다.  물론 외주업무가 무조건 나쁜 건 아닙니다. 외주업무를 진행하면서 새로운 분들과 만나 네트워킹할 수 있는 기회를 만들 수 있고, 새로운 정보들이나 기술들에 관하여 들을 수 있는 기회를 얻을 수 있다는 것도 외주업무의 순기능 중 한 가지라고 할 수 있습니다. 그럼에도 불구하고 이렇게 제가 말씀드리는 건, 서비스 초기에 서비스에 집중하며 제작하는 와중에 볼 수 있는 목업 하나하나, 프로토 타입 기능들이 하나하나 생겨나는 것 자체가 서비스 제작자 들에게는 엄청난 동기부여가 됩니다. 백만원 이백만원짜리 프로젝트가 들어오면 당연히 흔들릴 수 있게 되고, 욕심이 생기는 것은 당연한 법이지만(저역시도 많이 흔들려서 외주도 했었지만), 서비스를 진행하면서 집중해야 하는 것은 서비스 제작이라는 것이, 어떻게 보면 서비스를 진행하는 팀원들에게도, 창업자에게도 우선되어야 할 부분인 것 같습니다. 그리고 나중에 조금씩 서비스를 제작한 이후에 외주 업무를 하는 것은 어쩔 수 없는 선택이지만, 그래도 자금마련 때문에 서비스 제작이 뒤로 밀리게 되는 불상사가 일어나지 않는 방향으로 제작하셨으면 좋겠네요.이렇게 스타트업과 자금마련에 관하여  이야기해봤는데요, 정리하자면,투자를 받으시려면, 기획서 준비에 정말 심혈을 기울여서 만드셔서 정말 "투자를 할 수 있을만한", "신뢰가 가는" 기획서를 작성하시는 것이 가장 우선입니다. (다다음 글부터 기획에 관한 글을 쓰려고 합니다. 기대해 주세요!) 그리고 인큐베이팅이나 투자시에는 언제나 항상 계약서를 유의 또 유의하세요!!!(스타트업을 대상으로 하는 사기행위가 성행하고 있습니다!)그리고 외주업무에 관하여는,일단 서비스 제작(적어도 베타 서비스까지만이라도) 일단은 서비스에 집중하는 것을 더  추천드립니다.점점 쓰고 싶은 말들은 많은데 필력이 워낙 떨어져 죄송합니다ㅠㅜ. 궁금점 있으시면 언제든 댓글 달아주세요!#코인원 #블록체인 #기술기업 #암호화폐 #스타트업인사이트
조회수 987

런칭, 그리고 문제에 직면하다

2012년 8월 1일.위제너레이션 사이트가 런칭하기로 한 날이다.사이트야 외주를 통해 개발한 것이니 원하는대로 100% 구현된 것도 아니고 오류가 있긴 했지만그래도 큰 문제는 어느 정도 잡았고 언제까지나 미룰 수도 없으니 일단 8월 1일로 런칭 시점을 잡았다. +이전에도 서비스 런칭 관련해서는 특별한 경험을 한 일이 있었다.위제너레이션 이전에 함께 했던 서비스 런칭 시점의 일이었다.12월 23일. 때는 바야흐로 크리스마스 이브 전날.당시 회사는 서비스 런칭을 맞아 네이버 메인 배너 광고를 준비했다.모든 스타트업들이 꿈에 그릴 몇천만원짜리 광고!마케팅이 생명인 서비스였기에 큰 맘 먹고 대규모 노출 광고를 준비한 것이다.하나 둘 셋땡!런칭 기사 배포와 동시에 네이버 배너 광고가 시작되었다.정말 사람들이 우리 사이트에서 구매를 할까? 두근거리는 마음으로 기다리던 찰나,이게 왠 일인가.대규모 트래픽으로 사이트가 터져버린 것이다.기술 이사님은 1시간여를 컴퓨터와 싸우고...옆에 있는 우리는 애태우며 발만 동동 구르고...그렇게 당황스럽게도 터져버린 사이트와 함께, 광고 시간은 모두 지나가버렸고밖에는 애꿎은 눈만 펑펑 내렸다고 한다-+여하튼 이러한 사건을 겪었으니 '서비스 런칭'이라고 하면 그 때처럼 뭔가 드라마틱한 문제들을 기대(?) 했던 것 같다.하지만 더 큰 문제는 따로 있었으니,아무 일도 일어나지 않았다는 것이다.서비스를 런칭한다고 이 사회에 새로운 물결과 반향을 불러오고 사람들과 미디어의 온갖 관심을 불러일으키는 일은 알겠지만, 없었다. 유명인과 함께 하더라도 말이다.성과는 그렇다치고, 우리가 계획했던 모델이 부딪혀보니 현실적으로 실행 자체가 불가능한 계획이었다.애초의 계획은 이렇다.1) 자선단체 1개 - 유명인 1명 - 기업 1개씩을 엮어 2주마다 3개의 모금 캠페인을 시작하고, 2주 동안 모금을 진행한다. 2) 모금이 성공했을 시, 모금에 참여한 사람 중 3명을 추첨하여 유명인은 그들과 함께 저녁식사를 한다(재능기부) 3) 기업에서는 개인 모금액과 동일한 금액을 1:1 매칭한다. 4) 기업이 낸 기부금의 20%에 해당하는 금액을 위제너레이션이 마케팅 비용으로 받는다.당시 유명했던 해외의 자선 크라우드펀딩 사이트가 모금 기간을 2주로 두고 있었고, 개인의 기부금에서 수수료를 받는 것은 국내에서 거부감이 클 것이라 생각했기 때문에 위와 같이 계획한 것이다.그러나 결국 부딪혀보니 현실성이 없었다. 1) 유명인이 안 해줌: 니네가 뭔데? (기존 레퍼런스가 없는 문제가 가장 큼)2) 기업이 안 해줌: 니네가 뭔데? + 작은 규모의 기업은 사회공헌할 여력이 없음 + 큰 기업은 알아서 하거나, 하더라도 가볍고 빠른 시도가 아니라 1~2년 이상의 장기적인 파트너십을 원함3) 개인 기부자들이 기부를 안 해줌: 니네가 뭔데? 즉, 규모도 작고 전문성도 없는 팀에서 레퍼런스도 없이 자선단체와 유명인과 기업을 섭외하고 캠페인을 기획해 관련 내용을 만들고 마케팅을 준비해서 2주라는 시간 안에 캠페인 3개씩을 진행할수가 없었다이 와중에 디자이너분들은 회사를 떠났고,공동 대표 한 분은 개인 사정 상 잠깐 미국으로 출국하게 되었고, 다른 공동 대표 한 분은 적성에 맞지 않는 외부 활동으로 고통받다가 팀을 나갈 결심을 먹고 있었고, 나와 영인이는 다가오는 모금일 마감 이후를 어떻게 메꿀지 발등에 떨어진 불을 다른 발로 밟아가며, 유래없이 뜨거운 2주를 보내고 있었다.#라이비오 #경험공유 #인사이트 #스타트업 #스타트업창업
조회수 625

HBase상 트랜잭션 라이브러리 Haeinsa를 소개합니다 - VCNC Engineering Blog

비트윈에서는 서비스 초기부터 HBase를 주요 데이터베이스로 사용하였습니다. HBase에서도 일반적인 다른 NoSQL처럼 트랜잭션을 제공하지 않습니다. HBase, Cassandra와 MongoDB는 하나의 행 혹은 하나의 Document에 대한 원자적 연산만 제공합니다. 하지만 여러 행에 대한 연산들을 원자적으로 실행할 수 있게 해주는 추상화된 트랜잭션 기능이 없다면 보통의 서비스 개발에 어려움을 겪게 됩니다. 비트윈 개발팀은 이런 문제를 해결하기 위해 노력했으며, 결국 HBase에서 트랜잭션을 제공해주는 라이브러리인 Haeinsa를 구현하여 실제 서비스에 적용하여 성공적으로 운영하고 있습니다. VCNC에서는 Haeinsa를 오픈소스로 공개하고 이번 글에서 이를 소개하고자 합니다.Haeinsa란 무엇인가?Haeinsa는 Percolator에서 영감을 받아 만들어진 트랜잭션 라이브러리입니다. HAcid, HBaseSI 등 HBase상에서 구현된 트랜잭션 프로젝트는 몇 개 있었지만, 성능상 큰 문제가 있었습니다. 실제로 서비스에 적용할 수 없었기 때문에 Haeinsa를 구현하게 되었습니다. Haeinsa를 이용하면 다음과 같은 코드를 통해 여러 행에 대한 트랜잭션을 쉽게 사용할 수 있습니다. 아래 예시에는 Put연산만 나와 있지만, 해인사는 Put외에도 Get, Delete, Scan 등 HBase에서 제공하는 일반적인 연산들을 모두 제공합니다.HaeinsaTransaction tx = tm.begin(); HaeinsaPut put1 = new HaeinsaPut(rowKey1); put1.add(family, qualifier, value1); table.put(tx, put1); HaeinsaPut put2 = new HaeinsaPut(rowKey2); put2.add(family, qualifier, value2); table.put(tx, put2); tx.commit(); Haeinsa의 특징Haeinsa의 특징을 간략하게 정리하면 다음과 같습니다. 좀 더 자세한 사항들은 Haeinsa 위키를 참고해 주시기 바랍니다.ACID: Multi-Row, Multi-Table에 대해 ACID 속성을 모두 만족하는 트랜잭션을 제공합니다.Linear Scalability: 트래픽이 늘어나더라도 HBase 노드들만 늘려주면 처리량을 늘릴 수 있습니다.Serializability: Snapshot Isolation보다 강력한 Isolation Level인 Serializability를 제공합니다.Low Overhead: NoSQL상에서의 트랜잭션을 위한 다른 프로젝트에 비해 오버헤드가 적습니다.Fault Tolerant: 서버나 클라이언트가 갑자기 죽더라도 트렌젝션의 무결성에는 아무 영향을 미치지 않습니다.Easy Migration: Haeinsa는 HBase를 전혀 건드리지 않고 클라이언트 라이브러리만 이용하여 트랜잭션을 구현합니다. 각 테이블에 Haeinsa 내부적으로 사용하는 Lock Column Family만 추가해주면 기존에 사용하던 HBase 클러스터에도 Haeinsa를 쉽게 적용할 수 있습니다.Used in practice: 비트윈에서는 Haeinsa를 이용하여 하루에 3억 건 이상의 트랜잭션을 처리하고 있습니다.Haeinsa는 오픈소스입니다. 고칠 점이 있다면 언제든지 GitHub에 리포지터리에서 개선에 참여하실 수 있습니다.Haeinsa의 성능Haeinsa는 같은 수의 연산을 처리하는 트랜잭션이라도 소수의 Row에 연산이 여러 번 일어나는 경우가 성능상 유리합니다. 다음 몇 가지 성능 테스트 그래프를 통해 Haeinsa의 성능에 대해 알아보겠습니다.아래 그래프는 3개의 Row에 총 6개의 Write, 3개의 Read연산을 수행한 트랜잭션의 테스트 결과입니다. 두 개의 Row에 3Write, 1Read 연산을 하고, 한 개의 Row에 1Read 연산을 한 것으로, 비트윈에서 가장 많이 일어나는 요청인 메시지 전송에 대해 시뮬레이션한 것입니다. 실제 서비스에서 가장 많이 일어나는 종류의 트랜잭션이라고 생각할 수 있습니다. 그런데 그냥 HBase를 사용하는 것보다 Haeinsa를 이용하는 것이 더 오히려 좋은 성능을 내는 것을 알 수 있습니다. 이는 Haeinsa에서는 커밋 시에만 모든 변경사항을 묶어서 한 번에 반영하기 때문에, 매번 RPC가 일어나는 일반 HBase보다 더 좋은 성능을 내는 것입니다.HBase 클러스터가 커질수록 트랜잭션 처리량이 늘어납니다. HBase와 마찬가지입니다.HBase 클러스터의 크기에 따른 응답시간 입니다. HBase와 다르지 않습니다..아래 그래프는 2개의 Row에 각각 한 개의 Write, 나머지 한 개의 Row에는 한 개의 Read 연산을 하는 트랜잭션에 대해 테스트한 것입니다. 각 Row에 하나의 연산만이 일어나기 때문에 최악의 경우라고 할 수 있습니다. 처리량과 응답시간 모두 그냥 HBase를 사용하는 것보다 2배에서 3배 정도 좋지 않은 것을 알 수 있습니다. 하지만 이 수치는 DynamoDB 상의 트랜잭션과 같은 다른 트랜잭션 라이브러리와 비교한다면 상당히 좋은 수준입니다.HBase보다 처리량이 떨어지긴 하지만, 클러스터가 커질수록 처리량이 늘어납니다.HBase보다 응답시간이 크긴 하지만 클러스터 크기에 따른 변화가 HBase와 크게 다르지 않습니다.프리젠테이션Haeinsa에 대한 전반적인 동작 원리와 성능을 소개하는 프리젠테이션입니다. 좀 더 자세히 알고 싶으시다면 아래 프리젠테이션이나 Haeinsa 위키를 참고해주세요.<iframe class="speakerdeck-iframe" frameborder="0" src="//speakerdeck.com/player/2d4b2bd00fc201314ae312fe4cd13937?" allowfullscreen="true" mozallowfullscreen="true" webkitallowfullscreen="true" style="border: 0px; background: padding-box rgba(0, 0, 0, 0.1); margin: 0px; padding: 0px; border-radius: 6px; box-shadow: rgba(0, 0, 0, 0.2) 0px 5px 40px; width: 750px; height: 563px;">
조회수 1282

아마존 유럽 - VAT 시리즈 (4)

★05★Q: 저는 영국 내에 수입자가 없는데 어떻게 하나요?A: 여러분이 곧 수입자입니다.이제 실무 예시로, 한국 사업자가 아마존 유럽에 판매하기 위해서 FBA 재고를 보낸다고 가정하겠습니다. FBA 재고를 발송하는 입장은 당연히 한국 사업자입니다. 수취인은 아마존 FBA 창고입니다. 그렇다면 수입자는 누구로 정하나요? 아마존? 절대 아닙니다. 한국 사업자의 제품을 한국 사업자의 FBA 재고로서 보내는 것인데, 아마존이 한국 사업자를 대신해서 수입자 역할을 해줄 이유도, 책임도, 생각도 없습니다. 그렇다면 한국 사업자가 곧 발송인이자, 수입자가 되어야하고, 아마존 FBA 창고는 단순히 수취인 (정확히는 수취주소)로만 되도록 설정을 해야하는데, 앞서 얘기했듯이 수입자를 식별하는 것이 바로 VAT (그리고 EORI) 번호이기 때문에, 아마존 유럽에 판매하고자 하는 대한민국 셀러는 FBA 재고를 보내고자 하는 도착 국가에 VAT 가입을 해야하는 것입니다.FBM으로 판매하는 VAT 미가입자 판매자는 수입자를 고객으로 정하되 DDP로 보내는 것이기 때문에 관부가세를 납부하는 것이며, FBM으로 판매하는 VAT 가입자 판매자는 여전히 DDP로 보내지만 수입자는 고객이 아니라 본인이 되는 것입니다.★06★Q: VAT 번호라는 게 정확히 뭔가요?A. VAT 법이 적용되는 국가에 대한 '세금납부번호'입니다.한국에서도 특정 사업체의 납세 기준을 정하고 (개인/법인, 부가세, 종합소득세/법인세, 등등) 얼마를 청구해야하는지 알기 위해 '사업자번호'라는 것이 있는 것처럼, 유럽에서는 VAT라는 번호로 식별하게 됩니다. VAT 번호가 없으면 애초에 해당 국가의 국세청에서 특정 사업체가 어떤 세금을 납부해야하는지, 그리고 얼만큼의 세금을 납부해야하는지 알 수가 없습니다.예를 들어 A라는 영국 내의 기업이 한국 기업의 제품을 영국 내로 수입했다고 가정하겠습니다. 그럼 당연히 수입할 때 발생하는 관세와 수입 부가세가 있을텐데, 수입을 하고자 하는 A라는 기업이 애초에 VAT(+EORI)라는 번호가 없다면 영국 국세청에서는 해당 화물에 대한 관세도 및 부가세를 청구할 대상이 없는 것이나 마찬가지입니다 (EORI 번호는 VAT 번호의 앞에 GB라는 글자와 VAT 번호의 뒤에 000을 붙이면 되는 번호이며, 한국으로 따지자면 통관고유부호 같은 개념입니다. VAT 번호를 신청했다면 EORI 번호는 동시에 자동으로 생기는 것입니다). 즉, 수입된 화물에 대해서는 무조건 관세와 수입 부가세는 발생합니다. 그리고 그걸 납부할 의무는 수입자에게 있습니다. 그리고 수입자를 식별하는 것이 바로 VAT(+EORI) 번호라는 것입니다. ★07★Q: VAT 가입 하지 않고 FBM으로 판매하되 DDP가 아닌 DDU (수취인 관부가세 부담)으로 배송 처리 하면 어떻게 되나요?A: 판매자가 일방적으로 금전적인 손해를 보고, 최악의 경우 아마존 유럽 판매 계정이 정지 됩니다.이건 약간 번외의 이야기가 될 수 있는데요, 사실 이 부분을 쓸까 말까 고민하다가 결국 쓰게 되었습니다. 많은 분들이 위의 설명을 듣고도 여전히 이렇게 물어봅니다, "FBA로 판매하지 않고 FBM으로만 판매하고, VAT 가입하지 않고 아마존 유럽에 판매하면 되지 않을까요?" 답변부터 드리자면, "안됩니다. 제 조언을 무시하고 그냥 한다면, 여러분이 굉장히 손해 볼 것이고 결국 아마존 유럽 판매 계정이 정지 될 것입니다" 입니다. 이 부분은 설명하는 것보다 구체적인 예시를 드는 게 더 빠르게 이해될 것 같습니다:VAT 가입 없이 FBM으로 아마존 유럽에 판매하려고 하는 경우 (쉽게 알 수 있는 잘못된 예시)대한민국 아마존 UK 셀러 '가나다'는 VAT 가입/신고/납부 없이 아마존 UK에 판매하려고 합니다. FBA로 판매하게 되면 영국에 VAT 가입도 해야 하고, 심지어 FBA 재고를 보충할 때마다 화물이 수입되는 순간에 '가나다'의 VAT 앞으로 수입 부가세를 선 납부해야 하고, 3개월마다 한 번씩 부가세 신고를 해야 되는 것을 생각할 때 도저히 번거로워서 어떻게든 VAT 가입 없이 아마존 UK에 판매하려고 합니다. 그러려면 FBA가 아닌 FBM으로 판매하면 되지 않을까 생각이 들었습니다. '가나다'는 본인의 상품이 VAT가 발생하지 않는 한, $100에 팔리면 수익이 괜찮다는 결론이 내려졌습니다. 그래서 아마존 UK에 상품을 $100에 등록했습니다. 그리고 제품이 팔렸습니다. 하지만 바이어는 $100이라는 판매가를 보고 VAT 미포함 금액이라고 생각하지 않습니다. 해당 바이어는 (당연히) $100이라는 판매가가 VAT 포함 금액이라고 생각을 할 수밖에 없습니다. 왜냐하면 아마존 판매자들은 아마존에 입점할 당시에 최종 판매가를 무조건 All Tax(&Duty) Inclusive Price로 아마존 판매가를 정해야 한다는 것에 동의해야 한다는 것을 그 바이어는 알고 있기 때문입니다. 그렇기 때문에 이 바이어는 $100이라는 판매가는 사실 $83.33이라는 판매가와 $16.66이라는 매출 부가세의 합계라고 여기고 있습니다. '가나다'는 이 사실을 모르고 제품을 한국에서 상품을 포장하고 commercial invoice 상에 $100이라고 표기를 하고, 수취인을 바이어로 설정한 뒤에 바이어에게 우체국 EMS를 통해 배송을 하게 됩니다. (참고로, EMS로 보낸다는 것 자체부터 잘못된 방식입니다). 아무런 문제가 없을 거라고 생각한 '가나다'는 1주일 정도 지나자 갑자기 바이어한테 항의글을 받게 됩니다. 바이어는 제품이 영국에 반입되는 순간에 수입자가 본인으로 설정 되어있기 때문에 (통상적으로 별도의 수입자를 명시하지 않는 이상 국제 화물에 대해서는 수취인이 수입자로 지정됩니다) $100에 대한 관세뿐만 아니라 수입 부가세 20%인 $20을 지불해야 제품을 수령할 수 있다고 하면서 '가나다'에게 항의를 합니다. 하지만 '가나다'의 입장에서는 당연히 애초에 'VAT가 발생하지 않는다는 가정 하에서 $100이라는 판매가가 수익성이 있었다고 생각을 했지, VAT까지 '가나다' 본인이 지불해야 하는 상황이었다면 애초에 $100이 아닌 $120 또는 그 이상의 판매가로 팔았을 거라고 바이어에게 오히려 역으로 얘기를 합니다. 바이어는 어이없어 하면서 이 케이스를 아마존 A-Z 클레임으로 올립니다. 아마존은 당연히 이 모든 상황을 빗대어 봤을 때 바이어에게 잘못이 없다고 판단하고 셀러의 밸런스 (판매 대금)에서 $100을 차감하여 바이어에게 전액 환불을 해줍니다. 바이어는 $100의 제품도 갖게 되고, $100 전액 환불을 받게 됩니다. Such a sad story...하지만 정말 부득이하게도 판매자 '가나다'는 이 경험을 통해 올바른 교훈을 얻지 못하고, "다음부턴 진작에 $120로 올려서 팔아서 이런 항의가 만약 들어오면 그냥 $24+@ 정도의 부분 환불을 해줘야겠다"고 결심합니다. 다시 한 번 $120에 '가나다'의 상품이 팔렸습니다. '가나다'는 이번에도 EMS로 화물을 준비하여 고객에게 발송했습니다. 1주일 정도 지나자 이번 고객으로부터도 항의글을 받게 됩니다. 똑같은 내용으로, 이번엔 $120에 대한 $24 부가세 + 관세가 발생했다며 항의를 했습니다. '가나다'는 이런 일이 있을 줄 예상하고 있어서 친절하게 바이어에게 '$24 부가세 + 관세는 내가 부분 환불 처리해주겠다'고 하면서 일단 제품을 수령하라고 이야기합니다. 하지만 '가나다'가 모르고 있던 사실은, 'EMS'로 보낼 경우, 이런 식으로 세관에 화물이 걸리게 되면 고객이 직접 세관에 가서 제품을 찾아가야한다는 것입니다. 바이어로부터 이 사실을 알게 된 '가나다'는 약간 식은 땀을 흘리면서 '기름값과 수고비 $20를 더 얹혀서 부분 환불 해줄테니 지난 번에 얘기했던대로 일단 제품을 수령해가라'라고 얘기해줍니다. 바이어는 번거로움을 감수하면서 관부가세를 지불하고 제품을 수령했습니다. 하지만 바이어는 집으로 돌아가는 길에 악한 마음을 품었고, 집에 돌아가마자 아마존에 A-Z 클레임을 열었습니다. "해당 판매자는 관부가세를 포함하지 않은 가격으로 제품을 판매했고, 내가 내 돈으로 관부가세를 지불하면서까지 제품을 수령할 수 밖에 없었다" 라는 내용으로 A-Z 클레임을 열게 됩니다. '가나다' 판매자는 이 글을 확인하고, 부분 환불을 처리해준 내역까지 전부 보여주면서까지 본인의 입장을 항변해보지만 결국 아마존은 '판매자 약관에 따라, 최종 판매가는 모든 관부가세를 포함한 금액으로 설정 되어야하기 때문에 해당 케이스는 판매자의 부담으로 고객에게 전액 환불 결정을 내리게 되었습니다' 라는 결정을 내리게 됩니다. 결국 바이어는 $120의 제품도 갖게 되고, $120 전액 환불도 받게 됩니다. Even a sadder story.이런 경험을 했음에도 불구하고 '가나다'는 여전히 VAT를 가입하지 않고도 아마존 유럽에 판매하는 것을 포기하지 못했습니다. 이런 관부가세 문제에 대한 근본적인 해결을 하겠노라고 해서 앞으로 모든 주문들에 대해 '발송인이 관부가세를 부담하는 조건인 DDP 무역조건으로 발송하겠다'고 결심했습니다. FedEx나 DHL 같은 특송사를 이용하면 DDP (Delivery Duty Paid) 조건으로 화물을 보낼 수 있기 때문에 애초에 고객 입장에서는 관부가세 지불에 대한 고민 없이 화물을 받기만 하면 되니까 문제가 없을거라고 '가나다'는 생각했습니다. 다시 한 번 $120에 제품이 팔렸습니다. 그리고 제품을 배송하였고, 고객도 만족했습니다. 드디어 해결방법을 찾은 것입니다! 결국 답은, "FBM으로 아마존 유럽에서 판매를 하려면 특송사를 이용해서 무역조건은 DDP로 설정하고, 발송인이 모든 관부가세를 지불하는 조건으로 보내야 가능하다"였습니다. 물론, 그 뒤로 발생한 반품/교환 요청에 대해서는 전혀 고려하지 않은 해결책인지라, 반품 요청이 들어올 때마다 손해를 감수할 수 밖에 없었습니다 (아마존은 반품 요청에 대해 판매자가 구매자의 편의를 상당히 많이 봐줘야하는데, FBA로 판매하는 경우 이런 고민은 원천적으로 아마존에서 해결해주니 신경쓸일이 전혀 없습니다). 하지만 여전히 유럽의 해외 셀러에 대한 세법이 언제 정정될지도 모르고, 아마존 유럽에서도 언제 판매 정책이 바뀔지도 모르는 상황에서 이렇게 판매를 유지하는 것은 불안할 수 밖에 없는 방법이라는 것을 느낍니다.다소 극적인 예시이긴 하지만, 사실 위의 이야기들은 제가 실제로 겪은 이야기들을 기반으로 작성한 예시들입니다. 아마존 UK/DE/FR/IT/ES 에서 나이키 제품을 한국 직접 배송하는 방법으로 2016년에 왕성하게 판매한 이력이 있는데, 나이키 제품들이 저렴한 편에 속하는 제품들이 아니다보니 이런 관부가세 문제들이 자주 발생했고, 클레임이 생길때마다 판매자에게 불리한 처사가 매번 결정되었습니다. 여러분들은 이런 피해를 입지 않길 바라는 마음에 진심으로 조언하건데, VAT가 번거롭고, 해외 세무 대리인도 껴서 하려면 비용도 적지 않게 들겠지만, 장기적으로 봤을 땐 정석적인 방법으로 아마존 유럽에서 판매하는 것이 훨씬 유익하다는 것을 어필하고 싶습니다. 유일한 예외가 있다면, "객단가가 $100이 넘는 고가의 제품들을 판매하기 때문에 FBA 판매가 어려우신 분들"은 위에서 설명드린 VAT 가입 없는 FBM 판매 방법을 사용해볼 수 있을 것 같습니다.
조회수 2115

[H2W@NL] 로봇과 디자인

디자인이란 단어가 이제는 어디서나 익숙합니다. 그만큼 디자인의 정의와 역할은 다양한 영역에서 분화되어 있기도 합니다. 네이버랩스에서는 로봇이라는 대상에 대해 여러 분야의 디자인이 진행되고, 종국에는 통합됩니다. 하나의 로봇으로 이어지는, 로봇시스템/UX/ID 각각의 디자인에 대해 물었습니다.Q. 어떤 ‘디자인’을 하나요?로봇의 메커니즘에서 인터페이스까지, 최적의 시스템을 디자인(김인혁|Robot) 제가 하는 디자인은, 시스템 디자인이라고 말할 수 있습니다. 아, 물론 제가 속한 Robot팀엔 더 많은 디자인 과정들이 있어요. 로봇의 기구, 전장, SW 등 각각의 영역에서도 디자인 과정이 존재합니다. 저는 그 중에서 주로 시스템 제어 엔지니어로서의 디자인을 이야기할 수 있겠네요.사실 시스템이란 말이 좀 모호하죠. 과학분야에선 이렇게 정의할 수 있습니다. 구성 요소들이 내외부와 경계를 가진 상태에서 각 요소 간에 긴밀한 상호작용을 하는 집합체. 쉽게 설명하고 싶었는데, 여전히 어렵긴 하네요.로봇은 단순한 기능을 구현할 때에도 복잡한 요소들이 동시에 작동합니다. 메커니즘, 동력원, 에너지원, 제어기와 인터페이스 등. 이들이 서로 잘 연결되어 작동할 수 있어야 합니다. 이를 위한 최적의 시스템을 구성하는 디자인이라 하겠습니다.로봇, 그리고 사람, 그 사이에서의 상호작용(김석태|UX) UX의 입장에서는 HRI (human-robot interaction) 디자인이라고 정의할 수 있습니다. 앱이나 웹 등의 화면 기반 인터페이스와는 조건이 다른데요. 물리 공간에서 로봇이 동작한다는 점이 그렇습니다. 주변 사물이나 사람을 로봇이 인식하는 순간처럼 다양한 상황에서 로봇이 어떻게 동작하거나 반응해야 하는지, 그리고 로봇을 활용한 서비스는 다른 디바이스나 앱과 달리 어떤 방식을 통해 제공되어야 더욱 직관적으로 사람과 상호작용이 가능한지 등을 디자인하고 있습니다.기술만큼, 인상과 매력도 중요하다(김승우|ID) 로봇의 외관도 중요합니다. 로봇은 여전히 일반인들에겐 생소합니다. 이들에게 로봇은 흥미로움을 일으키는 대상일 수도 있지만, 마주치는 순간 기피하고 싶은 이질적 존재일 수도 있어요. 그래서 외관을 통해 느끼는 인상과 그 효과에 대해 세심한 접근을 하고 있습니다. 로봇 서비스가 보편화되지 않은 시점에서는, 사람들이 기대하는 로봇다운 매력을 잘 체감할 수 있게 하는 것도 로봇 대중화를 위해 중요한 역할인 것 같습니다.“기술이 지닌 본래의 가치를 더욱 잘 느낄 수 있도록 전달하는 것, 그것도 디자인의 역할입니다.” Q. 어떤 프로세스로 작업하나요?단순한 목표를 위해 필요한 복잡한 과정들(김인혁|Robot) 기본 목표라고 한다면, 일단 요구 스펙을 잘 만족하는 시스템을 설계하는 것입니다. 현실은 아주 복잡하죠. 요소들이 워낙 다양하기 때문인데요. PoC, 성능 테스트 등 평가 과정을 거치면 조정해야 할 것들이 많아집니다. 아예 새로 개발을 할지를 고민하게 될 때도 있는데, 참고할만한 레퍼런스가 없을 때는 참 어려워집니다. 이럴 때는 원론적으로 풀 수밖에 없죠. 공학적인 문제부터 정의하고 문제 해결을 위한 방법론을 탐색합니다. 이런 일들이 수없이 많지만, 시스템 디자인의 일반적인 프로세스이기도 합니다. 목표는 단순하지만, 과정은 현란하죠.산업을 이해하면 목표가 보이고, 사람을 이해하면 디테일이 보인다(김석태|UX) 앞서 말씀드린 것처럼, 서비스 로봇은 다른 앱/웹 서비스와 상황이 많이 다르죠. 앱이라면 프로토타이핑과 검증 과정을 상당히 빠른 주기로 반복할 수 있는데, 로봇은 그런 면에서는 제약이 있습니다.일단 로봇 서비스 산업에 대한 이해부터 시작하였습니다. 그간 어떤 로봇들이 어떤 서비스를 했고, 학계에서는 어떤 연구들이 선행 되었는지를 꼼꼼히 연구했습니다. 그리고 나니 목표 수준이 좀 더 명확해지고, 시나리오를 구체화할 수 있었습니다.중요한 건 역시 사람에 대한 이해입니다. 실제로 유용하다고 느낄까? 어떤 니즈가 여전히 숨어있을까? 로봇이 대신 해 주었을 때 더 가치 있는 것은? 이런 질문에 대한 답을 찾은 후 다음 숙제가 이어집니다. 사람들의 삶 속으로 이질감없이 자연스럽게 녹아 들기 위한 인터랙션입니다. 인터랙션 상황들을 정의하는 일부터가 시작이고, 어떤 이슈나 문제가 있는지를 찾아냅니다. 가장 단순하면서도 자연스러운 해결 방법은 무엇일지 실험을 통해 검증합니다. 이 과정에서 굉장히 많은 디테일들이 새롭게 발견됩니다.기술에 대한 이해도 중요합니다. 예를 들어 최근 AROUND C에는 디자이너가 가장 이상적인 로봇의 속도 및 이동 경로를 선택하면, 이를 바탕으로 딥러닝 기술을 적용해 최적화된 자율주행을 할 수 있는 기술이 적용되어 있습니다. 지켜보는 사람이 언제 안정감을 느끼는지, 로봇과 사람이 교차할 때엔 상대 속도나 동선을 어떻게 할지, 공간상의 제약이 복합적으로 작용하면 어떤 기준을 세워야 할지 등등. 수많은 요소들 사이에서 최적의 인터랙션 디자인을 설계해야 합니다. 이런 사소해보이는 사용자 경험이 로봇 서비스 과정에서 뜻밖의 감동까지도 전달할 수 있다고 생각합니다.“우리가 추구하는 기본 방향은, 실용적이면서도 사람을 배려하는 로봇입니다. 문제 상황을 분석해 나온 다양한 해결책 중에, 사람이 직관적으로 파악할 수 있는 방법을 택합니다.” 최근에는 AROUND C에서는 gaze, sound, lighting을 통한 비언어적 커뮤니케이션을 테스트하고 있습니다. 왜 굳이 로봇이 직접 말하게 하지 않고 비언어적 커뮤니케이션을 연구할까요? 그게 서비스 시나리오 상에서 더 직관적이며, 심지어 더 똑똑해 보이기 때문입니다. 스타워즈의 R2D2와 C3PO를 떠올리시면 됩니다. 점과 선을 활용해 가장 로봇다운 눈을 디자인 했고, 이를 통해 다양한 상태 정보를 사람에게 직관적으로 전달하고자 했습니다.전체의 통일감과 개별 디자인의 완성도라는 두개의 과녁(김승우|ID) 제가 공을 들이는 건 전체 제품의 통일감과, 개별 디자인의 완성도입니다. 네이버랩스에서 그간 공개했던 제품들은 작은 디바이스부터 중형 로봇, 대형 차량 센서박스에 이르기까지 다양한 카테고리에 걸쳐 있습니다. 디자인의 토대가 되는 조형 요소인 제품의 크기와 형태, 구조가 상이하다 보니 각각의 형태와 구조적 특성을 고려하면서도 전체 제품에 통일감이 느껴지도록 하는데 많은 노력을 기울여 왔습니다. 기업에서 일관된 메시지를 전달하는 것은 그 기업을 신뢰할 수 있는가에 대한 중요한 가치라고 생각해요. 디자인도 마찬가지입니다. 네이버랩스라는 기술 기업에서 전달해야 할 가치는 ‘정밀함’과 ‘단단함’이라고 생각했고, 로봇을 포함한 전체 제품에서 이 키워드들을 담은 일관된 디자인 언어가 느껴질 수 있도록 조형의 기본이 되는 면, 면의 기본이 되는 선을 세밀하게 다듬으며 디자인했습니다.또한 개별 디자인의 완성도를 위해 밸런스와 디테일을 중요하게 생각합니다. 로봇은 움직이기 때문에 다양한 각도에서 바라보게 되고, 어느 방향에서 보아도 완성도 높은 밸런스가 특히 중요합니다. 잘 안보이는 곳의 디테일도 쉽게 드러나기 때문에 세밀한 디테일을 놓치지 않기 위해 노력하고요.로봇의 경우엔 일반인들의 디자인 완성도에 대한 기대 수준이 더 높은 편입니다. 이런 기대를 충족시키는 동시에 기술적인 요구도 충족해야 합니다. 예를 들어, AMBIDEX의 전체 디자인 균형을 잡는 과정에서 팔의 부피를 늘리는 선택이 필요했는데, 동시에 무게는 가볍게 유지해야만 로봇의 기능을 100% 발휘할 수 있었습니다. 경량성이 AMBIDEX라는 로봇 팔 기술의 핵심 특성이기 때문이죠. 외관 부피를 늘려 디자인 밸런스를 최적으로 잡으면서도 1g을 더 줄이기 위해 질량을 체크하며 표면과 두께를 조정하고, 강성을 높이는 내부 구조를 추가하며 문제를 해결했습니다. 이런 디자인 과정을 거쳤기에 외관에서도 내부의 단단함과 견고함이 배어 나온다고 생각합니다.Q. 서로 어떻게 협업을 하나요?어차피 목표는 하나(김인혁|Robot) 각기 다른 분야의 전문가들이 협업할 때의 견해차이는 프로세스를 통해 해결되어야 한다고 생각해요. 그게 아니라 의견의 일방향성이 생기면 그건 곤란하죠. 저는 각 분야의 선/후행을 두지 않고 초기부터 과정 전반에 걸쳐 계속 공유하고 의견을 나누며 서로의 수용성을 늘리는 것이 아주 중요하다고 생각해요.“한 영역의 전문가가 모든 결정을 하고 다른 분야의 전문가는 일방적으로 종속되어야 한다면, 그건 문제가 있습니다. 선행과 후행을 나누면 안됩니다. 초기부터 같이 고민하고 대화하고 함께 풀어야 합니다.” (김석태|UX) 저도 커뮤니케이션이 협업 과제를 빠르게 가속하는 가장 중요한 요소라고 봅니다. 다양한 관점에서 의견을 나누는 건 정말 필요해요. 그 과정 없이 한번에 이상적인 솔루션을 바라는 건 무리입니다. 지금 진행 중인 1784 프로젝트 역시 이러한 소통을 원활히 이어가고 있기 때문에 좋은 협업이 진행되고 있고요.(김승우|ID) 차이란 것은 자연스럽죠. 좋은 결과를 위해 필수적입니다. 궁극적인 목표를 달성하고자 한다는 동질감을 느끼기 때문에 서로의 진정성을 확인허는 과정이기도 합니다. 어떤 디자인이라도 많은 협의와 조율이 전제됩니다. 하나의 입장에 매몰되어 있는지 되돌아보기도 하고, 전체를 바라보는 기회로 삼기도 합니다.Q. 앞으로의 도전은?(김인혁|Robot) 우리의 목표는 사람에게 도움이 되는 로봇을 개발하는 것입니다. 단순하죠. 이를 기술 관점에서 고민하고, 가장 적합한 답을 찾고, 그 답을 세상과 공유하고 싶습니다. 그것이 제가 맡은 역할이라 생각하고요. 그 역할을 잘 할 수 있도록 연구개발자로서도, 프로젝트를 리드하고 완성하는 실무자로서도 역량에 깊이를 더하고 싶습니다.새로운 스탠다드라는 설레는 도전(김석태|UX) 이제는 실험실이나 전시장이 아니라, 우리가 실제 살아가는 공간으로 로봇이 들어옵니다. 그런 시대에 도달했습니다. UX디자이너로서는 완전히 새로운 기회이자 설레는 도전입니다. 한때 모바일이란 세상으로 패러다임이 이동했던 시기가 있었죠. 이제는 가상 세계에서 제공하던 다양한 서비스와 기술들이 일상의 물리 공간으로 다시 돌아올 것입니다. 서비스 로봇을 통해 이 분야의 새로운 스탠다드를 만들고 싶습니다.(김승우|ID) 네이버랩스에서는 늘 흥미로운 프로젝트들이 진행되어 왔습니다. 그 중에서도 로봇 디자인은, 다른 어느 로봇보다도 디자인 완성도가 높으며, 동시에 기능적 가치를 충실히 구현하는 것을 목표로 진행해 왔습니다. 게다가 로봇은 외관 그 자체가 하나의 강렬한 인상이자 브랜드 체험 요소가 되기 때문에 더욱 큰 책임감을 느끼고 있습니다. 네이버랩스는 기술이 강점인 회사입니다. 동시에 디자인 또한 우리의 탁월한 강점입니다. 이를 위해 앞으로도 노력하려고 합니다. 네이버랩스의 인재상은 passionate self-motivated team player입니다. 어쩌면 '자기주도적 팀플레이어'라는 말은 형용모순(形容矛盾)일 지도 모릅니다. 하지만 우린 계속 시도했고, 문화는 계속 쌓여갑니다. 다양한 분야의 전문가들이 경계없이 협력하고 스스로 결정하며 함께 도전하는 곳의 이야기를 전합니다. How to work at NAVER LABSH2W@NL 시리즈 전체보기
조회수 1501

TDD(파이썬) : 테스트 잘하고 계신가요?

Overview반복적인 테스트에 지쳐가고 있던 무렵, TDD방법론을 접하게 되었습니다. TDD(Test Driven Development)는 테스트 주도적인 개발로 소스코드 작업 전에 테스트 코드를 먼저 작성해 소스수정에 대한 부담을 덜고 디버깅 시간을 줄일 수 있습니다. TDD 장점소스코드의 품질이 높다.재설계 및 디버깅 시간이 절감된다.TDD 단점단기적 코드일 경우 생산성이 떨어진다.실제 코드보다 테스트 케이스가 더 커질 수 있다.파이썬에서 TDD가 필요한 이유1) 파이썬에는 정적 타입 검사 기능이 없다. (Python 3.6 에서는 정적 타입 선언 가능)2) 동적언어이기 때문에 TDD를 하기에 적합하다.3) 파이썬은 간결성과 단순함으로 생산성이 높은 반면 런타임 오류가 발생할 수도 있다.4) 파이썬을 신뢰할 수 있는 유일한 방법은 테스트를 하는 것이다.파이썬 테스트 모듈 unittest이번 글에서는 unittest를 사용해 단위 테스트를 해보겠습니다. unittest는 이미 내장되어 있어 따로 설치하지 않아도 되는 표준 라이브러리입니다. 사용방법1) import unittest 2) unittest.TestCase 상속받는 하위 클래스 생성3) TestCase.assert 메소드를 사용하여 테스트 코드를 간략화4) unittest.main() 실행그럼 간단한 예제로 단위 테스트를 해보겠습니다.1.사칙연산 함수를 추가합니다.def add(a, b):     return a + b   def substract(a, b):     return a - b   def division(a, b):     return a / b   def multiply(a, b):     return a * b 2. unittest.TestCase 상속받아 테스트 클래스를 생성합니다. 아래는 각각의 함수 결과값을 비교해 텍스트를 출력하는 코드입니다.import unittest class TddTest(unittest.TestCase): def testAdd(self):         result = lib_calc.add(10, 20)         if result == 30:             print('testAdd OK')      def testSubstract(self):         result = lib_calc.substract(20, 30)          if result > 0:             boolval = True         else:             boolval = False if boolval == False:             print('testSubstract Error')      def testDivision(self):         try:             lib_calc.division(4, 0)         except Exception as e:             print(e)      def testMultiply(self):         result = lib_calc.multiply(10, 9)          if result < 100>             print('testMultiply Error') if __name__ == '__main__':     unittest.main() 3.결과: 해당 조건에 만족해 작성한 텍스트가 출력됩니다.이번에는 unittest에서 지원하는 TestCase.assert 메소드를 사용해 간략하게 소스를 수정해보겠습니다.TestCase.assert 메소드1) assertEqual(A, B, Msg) - A, B가 같은지 테스트2) assertNotEqual(A, B, Msg) - A, B가 다른지 테스트3) assertTrue(A, Msg) - A가 True인지 테스트4) assertFalse(A, Msg) - A가 False인지 테스트5) assertIs(A, B, Msg) - A, B가 동일한 객체인지 테스트6) assertIsNot(A, B, Msg) - A, B가 동일하지 않는 객체인지 테스트7) assertIsNone(A, Msg) - A가 None인지 테스트8) assertIsNotNone(A, Msg) - A가 Not None인지 테스트9) assertRaises(ZeroDivisionError, myCalc.add, 4, 0) - 특정 에러 확인1. TestCase.assert 메소드 사용TestCase.assert 메소드를 사용하여 에러를 발생시켜 보겠습니다.import unittest class TddTest(unittest.TestCase): def testAdd(self):         result = lib_calc.add(10, 20)          # 결과 값이 일치 여부 확인         self.assertEqual(result, 31)      def testSubstract(self):         result = lib_calc.substract(20, 10)          if result > 10:             boolval = True         else:             boolval = False # 결과 값이 True 여부 확인         self.assertTrue(boolval)      def testDivision(self):         # 결과 값이 ZeroDivisionError 예외 발생 여부 확인         self.assertRaises(ZeroDivisionError, lib_calc.division, 4, 1)      def testMultiply(self):         nonechk = True result = lib_calc.multiply(10, 9)          if result > 100:             nonechk = None # 결과 값이 None 여부 확인         self.assertIsNone(nonechk) if __name__ == '__main__':     unittest.main() 2. 결과1) 테스트가 실패해도 다른 테스트에 영향을 미치지 않음2) 실패한 위치와 이유를 알 수 있음다음으로 setUp(), tearDown() 메소드를 사용하여 반복적인 테스트 메소드 실행 전, 실행 후의 동작을 처리해보겠습니다.TestCase 메소드1) setUp() - TestCase클래스의 매 테스트 메소드가 실행 전 동작2) tearDown() - 매 테스트 메소드가 실행 후 동작 1. setUp(), tearDown() 메소드 사용- setUp() 메소드로 전역 변수에 값을 지정- tearDown() 메소드로 “ 결과 값 : ” 텍스트 출력import unittest class TddTest(unittest.TestCase): aa = 0     bb = 0     result = 0 # 매 테스트 메소드 실행 전 동작     def setUp(self):        self.aa = 10        self.bb = 20 def testAdd(self):         self.result = lib_calc.add(self.aa, self.bb)          # 결과 값이 일치 여부 확인         self.assertEqual(self.result, 31)      def testSubstract(self):         self.result = lib_calc.substract(self.aa, self.bb)          if self.result > 10:             boolval = True         else:             boolval = False # 결과 값이 True 여부 확인         self.assertTrue(boolval)      def testDivision(self):         # 결과 값이 ZeroDivisionError 예외 발생 여부 확인         self.assertRaises(ZeroDivisionError, lib_calc.division, 4, 1)      def testMultiply(self):         nonechk = True self.result = lib_calc.multiply(10, 9)          if self.result > 100:             nonechk = None # 결과 값이 None 여부 확인         self.assertIsNone(nonechk)      # 매 테스트 메소드 실행 후 동작     def tearDown(self):         print(' 결과 값 : ' + str(self.result))   if __name__ == '__main__':     unittest.main() 2. 결과- setUp() 메소드로 지정한 값으로 테스트를 수행 - tearDown() 메소드로 각각의 테스트 메소드 마다 “ 결과 값 : ” 텍스트 출력실행 명령어 여러 옵션을 사용하여 실행 결과를 출력해보겠습니다.실행 명령어python -m unittest discover [option]1. -v : 상세 결과 2. -f : 첫 번째 실패 또는 오류시 중단3. -s : 시작할 디렉토리4. -p : 테스트 파일과 일치하는 패턴5. -t : 프로젝트의 최상위 디렉토리1. 상세 결과테스트 메소드명 및 해당 클래스명 출력 2. 첫 번째 실패 또는 오류시 중단첫 번째 테스트에서 오류 발생하여 중단3. 여러 옵션 실행현재경로 디렉토리 안에 tdd_test*.py 패턴에 속하는 모든 파일의 상세 결과Conclusion지금까지 파이썬에서 unittest 모듈을 이용한 테스트 코드를 작성했습니다. 처음에는 귀찮고 번거롭지만 테스트 코드를 먼저 작성하는 습관을 길러보세요. 분명 높은 품질의 소스코드를 만들 수 있을 겁니다!참고Python 테스트 시작하기파이썬 TDD 101글곽정섭 과장 | R&D 개발1팀kwakjs@brandi.co.kr브랜디, 오직 예쁜 옷만#브랜디 #개발자 #개발팀 #인사이트 #경험공유 #파이썬 #Python
조회수 1352

결전! CodeShip Pro vs Travis-CI

데일리의 Java 백엔드 개발자는 Docker 기반의 CodeShip Pro를 애용하는데 최근에 빌드가 급격히 느려지는 문제를 겪었다. 빌드가 느려진 원인은 다양하지만 그 중 일부는 CodeShip Pro의 캐싱 방식, 더 정확히는 도커의 캐싱 방식과 관련이 있다.CodeShip Pro는 pom.xml 또는 build.gradle 을 보고 빌드에 필요한 라이브러리를 미리 가져와서 캐싱하기를 권장한다.# We're using the official Maven 3 image from the Docker Hub (https://hub.docker.com/_/maven/). # Take a look at the available versions so you can specify the Java version you want to use. FROM maven:3 # INSTALL any further tools you need here so they are cached in the docker build WORKDIR /app # Copy the pom.xml into the image to install all dependencies COPY pom.xml ./ # Run install task so all necessary dependencies are downloaded and cached in # the Docker image. We're running through the whole process but disable # testing and make sure the command doesn't fail. RUN mvn install clean --fail-never -B -DfailIfNoTests=false # Copy the whole repository into the image COPY . ./예전에는 이 방식이 문제가 안 됐는데 최근 들어 캐시 적중률이 급격히 낮아졌다. 여러 애플리케이션이 공유하는 라이브러리를 몇 개 추가했는데 그 중 하나가 빈번히 업데이트되는 게 문제다. pom.xml 파일을 자주 수정하는데 그 말인즉 COPY pom.xml ./ 줄부터 다시 빌드해야 한다는 뜻이다. 그러므로 RUN mvn install clean --fail-never -B -DfailIfNoTests=false 을 실행하는 횟수가 많고 평균 빌드시간이 장난 아니게 늘어난다.CodeShip Pro에서 이 문제를 해결하는 방법은 비교적 간단하다. pom.xml 파일을 둘로 쪼개면 된다. 자주 수정하는 `pom.xml` 파일부터 빌드하면 빌드 시간을 종전처럼 끌어내릴 수 있다.COPY pom-not-frequently-changed.xml ./ RUN mvn -f=pom-not-frequently-changed.xml install clean --fail-never -B -DfailIfNoTests=falseCOPY pom.xml ./ RUN mvn install clean --fail-never -B -DfailIfNoTests=false하지만 CodeShip Pro가 이와 유사한 문제로 여러 번 문제가 된 터라 Travis-CI로 옮기면 어떤 장단점이 있는지 확인해보았다.장점Travis-CI는 커밋과 푸시를 한 해당 브랜치 뿐 아니라 머징할 브랜치 등에서도 빌드를 돌린다.CodeShip보다 캐싱 정책을 수립하기 쉽다.캐시 적중률 문제가 덜하므로 빌드 시간이 좀더 안정적으로 유지된다.현재 머신 사양으로는 약 1분 가량 빌드가 빠르다.빌드 과정을 한 눈에 이해하기 쉽다.Cron 빌드를 지원한다. 시간이 지나면서 의존성 문제 등으로 빌드가 깨졌을 때 조기에 조치할 수 있다.단점Travis-CI는 로컬에서 CI 환경과 동일한 빌드환경을 제공하지 않는다..travis.yml 파일을 수정하고 테스트하려면 git push 를 반복해야 한다.테스트를 돌리는 리눅스 환경과 실제 서버가 작동하는 도커 리눅스 환경이 같지 않다.돈으로 더 좋은 머신을 도입할 수 없다.빌드 환경을 이전하기는 그리 어렵지 않다. 하지만 장단점이 명확하다 보니 어느 게 꼭 좋다 말하기 힘들다. 상황에 따라 결정하는 수밖에.#데일리 #데일리호텔 #개발 #개발자 #개발도구 #도입후기 #일지 #인사이트 #조언
조회수 2362

[아마존 성공 사례] 2. 일일 매출 1억의 기적!

안녕하세요 대한민국 셀러들의 성공적인 아마존 진출을 도와주는 컨설팅 회사이자 대행사인 컨택틱의 이이삭 대표입니다.아마존에서 만족할만한 성과를 거둔 업체들은 각각 특정한 시점에 ‘흐름’을 타는 게 통상적입니다. 여기서 ‘흐름’이라고 했을 때, 솔직히 어느 정도 운도 필요하지만, 그 운 자체를 발생시키기 위한 사전의 노력이 들어가지 않았다고 할 수는 없습니다. 그리고 무엇보다 제가 항상 강조하지만 애초에 ‘상품 및 시장’이 좋아야 이런 기회도 생깁니다. 오늘 소개해드릴 R사는 평소에 일일 판매량이 10~20개 수준이었지만 특정한 계기로 기존의 일일 판매량이 5~10개에 비해 일일 판매량이 1200개가 나왔습니다. 이 업체에게 무슨 일이 있던 걸까요? 아마존에서 매출을 증폭시키기 위해 해볼 수 있는 것들이 몇 가지 있습니다. 그중에 이 업체는 아마존의 ‘딜’을 활용하여 매출을 증폭시킨 경우입니다.아마존 딜 이란 무엇인가?아마존에서는 딜 종류가 3가지가 있습니다: Lightning Deal, Best Deal, Deal of the Day. 각각의 딜 종류마다 특징이 다르고 장단점도 다릅니다. 간단하게만 소개해드리자면 Lightning Deal은 승인이 된다면 약속된 기일에 2~4시간 동안 활성화되며, 그 시간 동안에 소진율을 눈으로도 화면에 볼 수 있습니다. 아래에 사진으로 보여드립니다:위와 같이 특정 lightning deal이 몇 % 정도 claim (소진) 되었는지 알 수 있으며, 언제 끝나는지도 나와있습니다. Lightning deal은 신청비가 발생하며, 어느 시즌에 신청하는지에 따라 신청 비용은 $150 ~ $500 정도 발생합니다. 아무래도 Q4 시즌에는 트래픽이 급증하기 때문에 신청 비용도 그만큼 상승하기 마련입니다. 가장 큰 단점은 본인이 원한다고 해서 lightning deal을 할 수가 없다는 것입니다. 아마존 시스템이 내 상품에 대하여 역제안이 들어와야 하며, 그때에서야 비로소 역제안 들어온 나의 특정 상품에 대해서만 lightning deal 신청이 가능합니다.Best Deal과 DOTD (Deal of the Day)는 신청 비용은 없지만, 아마존 코리아를 통해서만 신청이 가능한 ‘제한적인’ 딜 구좌입니다. 각 딜 종류마다 할인 조건과 자격조건 등이 다양합니다. 딜에 대한 자세한 포스트는 다른 칼럼에서 다루기 때문에 이 포스팅에서는 이 정도로만 소개하겠습니다.아마존 딜을 활용한 매출 증폭 사례R사는 자격조건이 가장 까다롭고 맞춰야 하는 할인율이 가장 높은 DOTD를 신청했고 승인까지 되었습니다. 이 업체는 평소 일일 판매량이 5~10개 수준이었으나, 이 하루 동안 1200개 정도의 상품이 팔렸으며 단 하루 동안 발생한 매출이 무려 대략 10만 불(1억 원)이었습니다.이 사례를 통해 제가 개인적으로 느끼고 여러분들께 말씀드리고 싶은 것은, ‘반응이 있는 상품은 어느 정도 판매량이 일어나야 반응이 있다는 판단을 할 수 있는 걸까?’에 대한 답변과, 그런 ‘반응이 있는 제품’을 대상으로 바라봐야 할 마음가짐과 행동지침입니다. 3개월, 6개월 동안 기본적으로 PPC도 해보고, 랭킹 작업도 해보고, 후기도 어느 정도 쌓였음에도 불구하고 일일 판매량이 꾸준하게 5~10개조차 나오지 않는다면, 이런 제품은 Off-Amazon 마케팅을 해도, 딜을 돌려도 반응이 좋지 않을 확률이 그만큼 높습니다. 하지만 만약 그렇게 꾸준하게 판매량이 받쳐준다면? 그럼 적극적으로 밀어볼 가치가 있습니다.그럼 내 상품이 내가 속한 시장에서 ‘반응’이 있다는 것을 어떻게 제대로 확인하고 확신을 가질 수 있을까요? 그리고 만약 밀어보겠다고 결정했다면 컨설팅이나 가이드 없이는 어렵고 막막하고 두려울 것입니다. 컨택틱에서는 1:1 컨설팅(자문) 서비스도 제공하고 있지만, 기초 지식과 아마존 판매에 대한 상식을 갖출 수 있도록 도와주는 아마존 기초과정과 심화과정이 준비되어 있고 글로벌셀러 창업연구소와 협력하여 여러분들께 배움의 기회를 제공하고 있습니다. 교육 후기들을 보시면 아시겠지만 처음에는 비용을 부담스러워하더라도 모두 매우 만족하며 강의 듣기를 잘했다고 얘기를 하고 있습니다. 무엇이든 혼자 공부해서 못할 것은 없다고 생각합니다. 하지만 그 시행착오와 자료를 찾아가며 공부하는 비효율적으로 소비된 시간보다 차라리 다소의 비용을 투자해서 아마존에 대한 전체적인 이해를 완벽하게 하는 강의를 듣는 게 시간적으로도 효율적일 뿐만 아니라 결국 시간이 돈이기 때문에 금전적으로도 여러분들에게 이익이 될 거라 확신합니다. 관심이 있으신 분들은 글로벌셀러 창업연구소에서 컨택틱과 함께하는 아마존 입문/기초/심화 교육과정들을 살펴보시고 신청해보세요. 가능하신 분은 가급적이면 오프라인 교육을 신청해주시고, 시간적인 여유가 없으시거나 거리가 멀어서 참석하지 못하시는 분들은 온라인 교육도 준비되어 있으니 온라인 교육에도 관심 가져주시기 바랍니다.오프라인 아마존 입문 과정오프라인 아마존 기초/심화 과정온라인 아마존 입문 과정그럼 오늘도 즐거운 글로벌 셀링 되세요!감사합니다.컨택틱  서울특별시 강남구 강남대로 62길 11, 8층 (역삼동, 유타워)   대표 전화: 02-538-3939   이메일: support@kontactic.com   홈페이지: https://www.kontactic.com 네이버블로그: https://blog.naver.com/kontactic  카카오브런치: https://brunch.co.kr/@allaboutamazon
조회수 1583

파이콘 2018 도도 파이터 후기

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

기업문화 엿볼 때, 더팀스

로그인

/