스토리 홈

인터뷰

피드

뉴스

조회수 2673

Microsoft, LINE WORKS 그리고 콜라비와 함께하는 협업툴 트렌드 세미나 

지난 7월 10일에 있었던 글로벌 협업툴 트렌드에 관한 세미나가 성황리에 마무리 되었습니다. 마이크로소프트, 라인웍스, 콜라비, 라이온아이스 등 국내외 협업 문화에 대해 오랫동안 주시해왔던 여러 전문가들의 인사이트에 대해 들어볼 수 있었던 뜻깊은 시간이었습니다.협업 세미나는 마이크로소프트 Greatwall 실에서 진행되었는데요. LS산전, SDS, NBP, SK텔레콤, 코오롱, 한화, 대한축구협회, 뉴스킨 코리아, 제일펑타이, 국토교통과학기술진흥원, 카이스트, 한국 웰스파고(Wells Fargo) 등 정말 다양한 곳에서 많은 분들이 협업 세미나를 찾아주셨습니다. 최근 도입된 52시간 제도와 더불어 실리콘밸리에서 불고 있는 "딥워크" 열풍 등, 글로벌 협업 트렌드에 대해서 많은 분들이 관심있게 지켜보고 계셨구나 하는 생각이 들었습니다.라인 웍스 - 모바일을 활용한 협업 생산성 향상라인 웍스 이우철 이사님께서는 협업툴의 트렌드가 어떻게 PC에서 모바일로 이동하고 있는지에 대한 인사이트를 공유해주셨습니다. 일본에서 이미 성공적으로 안착한 라인 웍스는 다양한 일본 내 기업들에 서비스를 제공하고 있습니다. 라인웍스를 도입한 일본 내 기업들은 외근이나 현장에서도 모바일을 통해 효율적으로 업무 처리를 할 수 있었다는 점에 주목하고 있다고 합니다. 국내의 경우에도 이전에는 이메일을 통한 협업이 메인이었다면 점차적으로 모바일로 협업 트렌드가 이동하고 있다고 합니다. 이데일리, MBC와 같은 국내 기업들이 라인 웍스로 전환하고 나서 보다 쉽게 협업을 할 수 있었다고 하는데요. 네이버 UI에 익숙한 국내의 경우 별도의 협업툴에 대한 교육이 필요 없어 빠르게 전환이 가능했다고 합니다.콜라비 - 실리콘밸리 협업툴 트렌드이어  콜라비의 조용상 대표님께서 실리콘밸리에서의 협업 트렌드에 대해 설명해주셨습니다. 사실 협업툴 트렌드는 미국이, 그리고 그 중에서도 실리콘밸리가 이끌다고 있다고 보아도 무방한데요. 우리가 잘 알고 있는 슬랙의 시발점도 실리콘밸리이고, 협업툴 시장의 공룡인 아틀라시안 역시 실리콘밸리 출신입니다. 그런 실리콘밸리에서 최근 새롭게 집중하고 있는 것이 바로 칼 뉴포트의 "딥 워크"라고 합니다. 콜라비는 메신저 때문에 하루에도 수십 조각으로 쪼개진 시간들에 집중했습니다. 메신저로 일할 경우 매 15분 마다 방해를 받고 있다는 사실, 알고 계셨나요? 다시 말해서 하루에 몰입을 제대로 할 수 있는 시간이 단 한시간도 없다고 하네요. 이런 사태를 방지하기 위해 콜라비는 메신저 기반이 아닌, 원페이지 기반으로 만들어졌습니다. 하나의 페이지 안에서 모든 업무를 몰입해서 처리할 수 있도록 말이죠. 라이온아이스 - 일본의 업무 혁신 방향성과 일본 기업의 협업툴 활용 현황라이온아이스의 허성욱 대표님께서는 일본에서의 협업툴 트렌드에 대한 인사이트를 공유해주셨습니다. 일본도 국내와 마찬가지로 근로자의 업무 시간에 제한을 두는 법률이 있는데요. 바로 월 잔업 45시간이라는 법입니다. 또한 완전고용상태를 이루는 현재 일본의 취업 시장과 인구 감소라는 문제 때문에 현재 일본 기업들은 어떻게 하면 더 효율적으로 일할 수 있는지에 대한 고민을 끊임 없이 하고 있다고 합니다.정부 보조금, 이민자 환영과 같은 정부 차원의 정책 외에도 기업 차원에서의 노력의 일환으로는 협업툴 도입이 활발하게 이루어지고 있다고 하는데요. 현재 일본내에서 가장 인지도가 높은 협업툴은 라인 웍스로, 일본 시장 점유율 1위라고 합니다. 실제로 비즈니스 챗(Business Chat) 시장의 규모도 매년 성장하고 있고, 이에 더해 허성욱 대표님은 앞으로 비즈니스 챗뿐만 아니라 원페이지 협업툴에 대한 니즈 역시 늘어날 것을 예상했습니다. 마이크로소프트 - 마이크로소프트 사례를 통해 본 기업문화변화 방향과 미래의 일하는 방식마지막으로 마이크로소프트의 박상준 부장님께서는 디지털 트랜스포메이션, 혹은 4차 혁명이라고도 알려진 새로운 세대에서의 협업 문화에 대해서 마이크로소프트의 사례를 통해 설명해주셨습니다. 미래의 근무 형태는 보다 더 다양해지고, 보안 수준의 향상 및 인공지능의 도입이 더욱 활발히 이루어지며, 이로 인해 일하는 방식 역시 변화가 촉구될 것이라고 합니다.마이크로소프트에 새로 취임한 CEO인 사티야 나델라는 "Know-it-all(뭐든지 다 아는)" 마인드 셋에서 "Learn-it-all(뭐든지 다 배우는)" 마인드셋으로 변화가 필요한 시점이라고 말했다고 하는데요. 또한 사무실 환경을 변화시키고 리모트 워크를 위한 툴을 제공하는 등 업무 생산성을 높이기 위한 마이크로소프트 내부적인 노력 역시 공유해주셨습니다. 그리고 마이크로소프트가 기존에 제공 되고 있는 툴의 형태에만 의존하지 않고 변화하는 업무 형태에 맞추어 발전해 나가는 모습에 대해서도 설명했습니다.  글로벌 협업툴 트렌드네 분 연사 모두 기존의 이메일로만 진행하는 업무는 더 이상 효율적이지 않다는 것에 동의했습니다. 그리고 라인웍스는 이에 대한 해답으로 모바일 기반의 협업툴을, 콜라비는 원페이지 협업툴, 그리고 마이크로소프트는 업무 방식의 혁신을 이야기했습니다. 또한 칼 뉴포트의 '딥워크 무브먼트'에 대한 이야기도 종종 언급되었습니다. 세미나에 참여하셨던 많은 분들께서도 변화하는 업무 방식과 이에 맞는 가장 효율적인 협업 트렌드에 대해 알아가실 수 있는 유익한 시간이 되었기를 바라며, 앞으로도 저희 협업툴 콜라비는 더 많은 기업들이 효율적으로 협업을 진행할 수 있도록 고민하고 노력하겠습니다. 협업툴 콜라비 알아보기
조회수 1044

창업, IPO 그리고 새로운 출발

작년 그러니까 2018년 11월 28일, 내가 창업을 했고 지금 CEO를 맡아서 일하고 있는 네오펙트가 코스닥 상장기업이 되었다. 2010년 6월 창업을 시작했을 때 솔직히 IPO를 생각하고 사업을 시작했던 것은 아니었는데, 좋은 기회를 얻어서 운 좋게 IPO에 성공하게 되었다. IPO를 한 이후에 많은 사람들이 나에게 "꿈을 이루셨네요"라고 이야기를 한다. 그때마다 난 "IPO가 제 꿈은 아니었습니다"라고 대답을 하곤 한다. 실제 창업을 할 때 IPO가 나의 목표는 아니었다. 솔직히 창업을 할 때 한 번도 IPO를 생각해본 적이 없었다. 단지 그때는 내가 만들고 싶은 제품과 서비스, 그리고 내가 꿈꾸는 회사를 만들어 가는 것이 나의 가장 큰 목표였고, IPO는 나의 염두에 있지 않았다. 그런 내가 IPO를 하게 된 이유는 IPO를 통해서 내가 원하는 목표를 만들어 가는데 도움이 될 것이라는 판단을 했기 때문이다. 더 좋은 제품과 서비스를 만들기 위한 자원을 확보하고, 그걸 통해서 내가 창업을 했을 때 꿈꾸었던 비전을 만들어갈 수 있는 충분한 연료를 만들 수 있는 기회를 가질 수 있다는 생각을 했다. 실제 상장기업이 되고 나니 불과 4개월이 되었지만, 많은 변화를 느낄 수가 있다. 상장기업으로서의 책임과 새로운 어려움도 분명히 있지만, 그럼에도 불구하고 우리가 앞으로 나아가는데 큰 도움이 될 것이라는 생각을 가지게 된다. 첫 번째로 상장기업이 되어서 체감할 수 있는 장점은 인재 확보의 장점이다. 상장 이전에는 불리한 회사의 위치, 약한 인지도로 인해서 좋은 인재를 확보하는 많은 어려움을 겪어왔다. 결국 회사는 사람이고, 좋은 인재들이 있어야지 좋은 제품과 서비스를 만들 수 있고, 또 그걸 통해서 회사의 경쟁력을 만들 수 있는 것인데, 그러한 부분에 있어서 어려움이 바뀌고 있다는 체감을 할 수 있었다. 우리 회사의 채용공고에 많은 좋은 지원자들이 반응을 하고 지원을 하고 있고, 또 실제 면접을 보면 상장회사이기 때문에 안정성이 있을 것이라는 생각에 지원을 했다는 지원자를 많이 보게 된다. 난 이것이 우리 회사가 장기적인 성장동력을 만들어나가늗데 큰 도움이 될 것이라고 확신을 한다. 두 번째로 많은 협력의 기회가 생길 것이라는 기대가 든다. 상장이 되고 나서 우리 회사가 4개월 만에 뭔가 급격히 달라지지는 않았다. 하지만 상장이라는 이벤트는 우리 회사를 바라보는 외부의 시선들이 분명히 달라졌다는 것을 느낄 수가 있었다. 그리고 그러한 인지도의 상승과 신뢰의 상승은 우리가 국내외 협력 관계를 만들어 나가는데 분명히 도움이 될 것이라는 생각이 든다. 국제적인 파트너십을 만들어갈 때 우리 회사를 소개할 때 너무나 쉽게 설명할 수 있게 되었다. 한국 주식시장에 상장된 회사라는 말 한마디는 우리가 만들 협력 관계의 형성을 쉽게 이어 나갈 수 있는 지렛대가 될 수 있을 것이라고 생각한다. 세 번째로 유입된 상장자금과 자본시장에 대한 접근 기회는 장기적 성장의 발판이 될 것이라고 확신한다. 회사라는 로켓은 인재와 돈이라는 연료를 태워서 날아간다. 우리는 미국 B2C 재활 시장의 새로운 패러다임을 만들고 있다. 인공지능과 원격 재활 서비스가 결합된 새로운 형식의 재활 서비스를 만들어 나가고 있다. 폭발적인 성장이 기대되는 이 시장에서 우리는 다른 업체들이 가지지 못하는 무기를 가지게 된 것이다. 성장하는 시장을 선점하고 시장의 지배력을 만들어가기 위해서 상장자금은 유효하게 쓰일 것이라는 기대를 가지게 된다. 내부의 직원들에게도, 외부의 친구들에게도, 그리고 나 자신에게도 IPO는 나의 꿈도 아니었고, 우리가 가는 길의 종착역이 아니라는 사실을 지속적으로 이야기해왔다. 그것은 우리가 가야 할 길이 아직도 많이 남아있음을 의미한다. 그리고 그것은 상장이라는 날개를 달고서 새로운 출발을 할 수 있다는 의미이다. 우리가 가는 길은 분명히 쉽지 않은 길이다. 남들이 가보지 못한 길이고, 우리가 스스로 개척해야 하는 길이다. 그러기에 더 가치가 있고, 재밌는 여행이 될 것이라고 확신한다. 
조회수 2225

[인공지능 in IT] 인공지능 기업에서 하드웨어 엔지니어로 사는 법

인공지능 열풍이 거세게 불면서 이를 개발하는 엔지니어에 대한 수요도 폭발적으로 늘었다. 글로벌 IT의 중심이라 불리던 실리콘밸리를 포함해 중국에서도 막대한 자본을 바탕으로 엔지니어에게 기존 연봉의 2~3배를 제공하는, '인재 쟁탈전'에 돌입했다. 암흑기라 불릴 정도로 이공계 기피현상이 심했던 과거 일은 어느새 기억 속에서 잊혀질만큼 소프트웨어 엔지니어의 위상은 날이 갈수록 높아지고 있다. 심지어 교과 과정에 코딩 교육 의무화를 논의하는 단계다.AI 전문인력이란, 대게 원천기술을 개발하는 소프트웨어 엔지니어나, 학문적인 연구를 하는 리서치 인력을 많이 생각한다. 하지만, 실제로 핵심적인 역할을 담당하는 사람은 하드웨어 엔지니어다. 일반적으로 하드웨어 엔지니어라고 하면 많은 사람들이 납땜을 하고, 모터를 돌리는 등 '기계'를 만지는 엔지니어를 떠올리지만(물론 이 역시 하드웨어 엔지니어가 하는 일 중 하나다), 요즘처럼 인공지능이 적용되지 않은 곳이 없는 세상에서 하드웨어 엔지니어 역할은 그 이상이다.모두의 이해를 돕고, 인공지능 기술을 만드는 회사에서 하드웨어 엔지니어 역할이 얼마나 중요한지 알 수 있도록, 스켈터랩스 사내에서 시니어 하드웨어 엔지니어로 일하고 있는 오혁님과 질의응답 시간을 가졌다.< 스켈터랩스 오혁 하드웨어 엔지니어 >하드웨어 엔지니어로서 주로 하고 있는 일은?사용자가 실제로 만질 수 있는 기기, NVIDIA에서 생산하는 하드웨어 플랫폼과 운영체제(OS) 등을 막론하고, 소프트웨어 알고리즘을 실제 프로덕트로 구현하는 일을 한다. 이런 면에서 보면 소프트웨어 엔지니어링 서포터라고 생각할 수 있다. 하지만, 많은 사람이 더욱 더 심층적으로 인공지능을 연구할 수 있는 이유는 바로 하드웨어의 발전 때문이다.< '구글I/O 2017'에서 차세대 인공지능 전용 칩 'TPU'를 발표하는 모습, 출처: 구글 >예를 들어보자. 프로세서(CPU) 연산속도는 계속 빨라지고 있고, 그래픽 프로세서(GPU)가 프로세서 역할을 일부 담당하고 있으며, 대용량 메모리, 인공지능 가속기 등 모든 면에서 하드웨어 성능이 뒷받침되어야 한다. 하드웨어가 없다면, 소프트웨어 엔지니어가 열심히 만들어도 실제 구현하기가 어렵다. 간단하게 정리하면 하드웨어 엔지니어로서 리서처 역할을 하고, 눈으로 보이는 하드웨어도 만든다.일반인들이 알고 있는 것과 가장 큰 차이가 있다면?일반적으로 하드웨어 엔지니어라고 하면 많은 사람이 빛을 내거나, 모터를 돌리고, 부품을 조립하는 등 물리적인 제품을 만든다고 생각한다. 맞는 말이다. 하지만, 이 모든것을 컨트롤하기 위한 펌웨어, 미들웨어, OS, 디바이스 드라이버 등 소프트웨어가 돌아가기 바로 직전 단계까지, 하드웨어 엔지니어가 담당한다. 또한, 실제 제품 구현도 우리가 맡는다. 때문에, 놀랍게도 하드웨어 엔지니어도 소프트웨어 엔지니어의 전유물이라고 여겨지는 코딩을 많이 한다.< 'GTC 2017'에서 엔비디아 젠슨 황 CEO가 고성능 GPU 아키텍쳐 '볼타'를 발표하고 있다, 출처: 동아일보 >인공지능 붐이 일어나면서 어떤 점이 달라졌는가?인공지능 열풍이 불기 전 하드웨어 엔지니어는 제품을 목적에 맞게 실행하는 역할을 주로 했다. 제품을 구동되기 위해서는 대부분 순차적으로 프로세스를 진행한다. 땜질하고, 코딩하고, 각 부품에 연동하면 완성되는 형태다. 그러나, 지금은 이런 기본적인 프로세스 외에도 기계학습에 대한 알고리즘이나 인공지능 기술 전반에 걸쳐 소프트웨어적인 기술을 이해하지 못하면 절대로 원활하게 제품을 구현할 수 없다. 소프트웨어 엔지니어링을 서포트하는 역할에서 벗어나 인공지능 기술에 들어가는 소프트웨어가 어떻게 구현되는지 이해해야 적합한 제품을 만들 수 있기 때문이다.심지어 이제는 펌웨어를 코딩하는 것도 예전과 많이 달라졌다. 결과물만 놓고 보면, 모터를 돌리는 것은 같을 수 있다. 하지만, 예전에는 로봇 팔을 만들어 무언가를 잡기 위해, A 모터와 B 모터를 순차적으로 돌려서 잡는 것에 그쳤다면, 이제는 기계학습을 적용해 어떤 종류의 컵이라도 스스로 알아서 잡을 수 있도록 제작한다. 하나하나 펌웨어로 낮은 레벨에서 구현하는 것이 아니라, 로봇팔이 잡았을 때 이에 맞는 조건을 제공, 코드 하나로 학습하는 커스터마이징을 적용하는 것이다.< 국산 복강경 로봇수술기기 '레보아이'의 모습, 출처: 동아일보 >인공지능 기업의 하드웨어 엔지니어로서 가장 재미있는 점은?인공지능을 적용하면서 굉장히 재미있는 것을 많이 시도할 수 있다. 아이디어를 내고 무언가를 만들고 싶다면, 최종 제품으로 가는 길에 있어 여러 옵션을 선택할 수 있기 때문이다. 다시 말해 인공지능 소프트웨어를 통해 기존과 다른 방식으로 문제에 접근하고, 이를 해결할 수 있다는 점이다. 비유하자면, 지금까지 손으로 직접 돌리는 드라이버를 사용했다면, 이제는 앞의 부품을 언제든 바꿔낄 수 있는 전동드릴을 사용하고 있다고 보면 된다.반대로 힘든 점은 무엇인가?아무래도 인공지능이 너무 핫하다 보니 계속해서 새로운 기술이 등장한다. 인공지능 업계에서 종사하는 모든 사람들도 마찬가지겠지만, 신기술을 공부하고 연구해야 좋은 제품을 만들 수 있다. 또한, 하드웨어 엔지니어들이 열심히 만든 결과물이 너무나도 빠른 기술 발전속도로 잠시 거쳐가는 것에 불과할까 걱정되기도 한다.그럼에도 앞으로 기대되는 점은 무엇인가?하드웨어 엔지니어로서 세상을 이롭게 하는 제품을 더 많이 제작할 수 있다는 점이다. 인공지능 기술이 발전함에 따라 인간이 못 하는 영역도 조금씩 다가서고 있다.개인적으로는 로봇 쪽에 관심이 많다. 기술 발전속도가 빨라지는 만큼 다양한 제품이 등장해 사람들의 삶에 많은 혜택을 줄 것으로 기대한다. 예를 들면, 청각 장애인을 위해 음성인식을 시각적으로 바꿔주는 제품이나, 거동이 불편한 독거노인을 돕기 위한 기술 등이 있다. 삶을 윤택하게 해주는 기술을 개발하는 것이 점점 더 쉬워지고 있다는 점에서 많이 기대하는 중이다. 어떤 형태가 될 지는 예측할 수 없지만, 지금 단계에서는 소프트웨어든 하드웨어든 커다란 인공지능 플랫폼을 만들고 있다고 생각한다.이호진, 스켈터랩스 마케팅 매니저조원규 전 구글코리아 R&D총괄 사장을 주축으로 구글, 삼성, 카이스트 AI 랩 출신들로 구성된 인공지능 기술 기업 스켈터랩스에서 마케팅을 담당하고 있다#스켈터랩스 #기업문화 #인사이트 #경험공유 #조직문화 #인공지능기업 #기술기업 #하드웨어엔지니어
조회수 2085

LG전자 직무를 알면 합격이 보인다

많은 취준생들이 대기업에 입사하려고 하는 이유는 수백 개의 작은 회사들을 모아 놓은 것처럼 다양한 부서가 존재하고 그 많은 부서들이 하나의 지붕 아래에 있기 때문에 서로 협업을 하면서 경력의 폭을 넓힐 수 있다는 점을 손꼽을 수 있을 텐데요.10월은 많은 기업들이 하반기 공채 신입 사원 면접을 보는 시기입니다. 성공적인 면접을 위해서는 기본적으로 취업하고자 하는 회사 안에 어떤 부서들이 있는지 사전 학습을 하고, 각 부서의 특성을 잘 이해하는 것이 매우 중요하답니다. 면접관들 앞에서 지원 부서와 자신의 경력을 자연스럽게 연결시켜 답변한다면, 적임자로 인식해 뽑힐 확률이 높아질 것입니다.오늘은 LG전자 입사를 희망하는 후배들을 위해 자신의 평생 커리어의 첫걸음이 되는 부서 선택 방법에 대한 이야기를 해보고자 합니다. 특히, 부서 선택은 ‘순간의 선택이 평생을 좌우한다’라는 말처럼 첫 부서의 선택이 평생 커리어를 좌우한다고 해도 과언이 아닙니다.LG전자 직무 부서LG전자의 직군을 크게 나누면 R&D SW, R&D HW, R&D 기구개발, Marketing, Sales, Production 등으로 구성되어 있습니다. 각 직군들은 유기적으로 연계되어 있으며, 소비자들에게 완성품이 최종 전달될 때까지 전 과정에 걸쳐 다양한 전략, 기획, 관리 조직들이 존재하고 있습니다.오늘은 전략, 기획, R&D 조직을 좀 더 자세하게 설명드리고자 합니다. 모든 일이란 사람의 몸처럼 유기적으로 엮여 함께 고민해 만들어 가는 것이지만, 피라미드 방식으로 크게 3 단계로 구분해 볼 수 있습니다.상위에는 회사가 무엇(포트폴리오)을 하고, 어느 방향으로 나가야 할지에 대해 고민하는 ‘전략’과 중간에는 실행단의 R&D가 전략에 맞춰 올바른 방향으로 잘 나아갈 수 있도록 지원하고 가능하게 하는 ‘기획’, 하단에는 연구를 기초로 하여 상품을 개발하는 ‘R&D’ 분야로 나눌 수 있습니다.1. 회사의 브레인 집합소, 전략기획 부서 전략기획 부서는 경영전략, 기술전략, 마케팅전략, 생산전략, 구매전략, CS전략 등 기능별로 세분화되어 있습니다.‘전략기획’이 회사의 포지셔닝과 어떤 방향으로 나아갈지를 고민한다면, ‘경영전략’은 회사 내부의 예산/배분 등 살림살이를 책임지는 전략을 말합니다.또한, LG전자와 같은 IT기업은 중장기적인 관점에서 원천 기술 및 신기술을 발굴하기 위해 어떤 분야에 어떻게 체계적으로 준비를 해나갈지 고민하는 ‘기술전략’ 부서도 있습니다.이 외에도 전략 직무에는 특정 휴대폰, 가전 등 사업별로 구체적인 방향을 제시하는 ‘사업전략’, 소비자들에게 제품 홍보 외에 제품들이 어떻게 회사 고유의 아이덴티티를 유지하며 서로 간에 시너지를 낼 수 있을지 고민하는 ‘마케팅전략’, 전 세계 소비자들에게 제품을 원활하게 공급하기 위해 생산 및 거점을 고민하는 ‘생산전략’, 부품 조달과 협력사 간의 협업이 차질 없이 진행되도록 긴밀한 파트너십을 형성하는 ‘구매전략’, 제품 출시 후 소비자들의 불편한 점을 신속하게 받아들이고, 제품 개선에 대해 고민하는 ‘CS전략’ 등이 있습니다. 참 많은 전략 부서가 있죠? ^^* LG전자 직무 전체 보기 2. 폭넓은 업무 경험을 쌓을 수 있는 기획 부서참고로 전략과 기획 부서는 칼로 무 자르듯이 명확하게 나눠져 있지 않습니다. 기획부서는 실제 수행 주체들의 현황과 진척 사항을 파악하고, 올바른 전략 방향에 맞춰 운영될 수 있도록 구체적인 계획을 세우는 것이라고 보면 됩니다.기획팀은 실제 실행 주체가 존재하는 조직에서 조직 전반에 대해 대표 창구가 되다 보니 수많은 부서들과 업무 협의를 진행하게 됩니다. 그로 인해 기획팀은 기술, 재경, 인사, 생산, 마케팅 등 폭넓은 업무 경험과 인맥을 형성할 수 있다는 장점을 갖고 있습니다.3. 시장을 선도하는 R&D 부서마지막으로 실행 주체라고 불리는 곳이 바로 R&D(Research& Development) 부서입니다. R&D 부서는 회사 내 매우 중추적인 역할을 하는 곳으로 기획과 R&D가 묘하게 섞여 있습니다. R&D에는 실제 개발을 하는 부서도 있지만, 기술을 발굴해 제품에 적용하는 기획 부서도 있어 R&D의 전 프로세스를 경험할 수 있는 장점이 있는 곳입니다.최근에는 프로젝트를 총괄하는 ‘프로젝트 매니저(PM)’의 역할이 점점 중요해지고 있는데요. 그 이유로는 PM이 기술의 단순 진행을 관리하기보다는 비즈니스 관점에서 해당 기술의 가치와 출시 시기를 지속적으로 고민하는 역할을 하기 때문입니다.l LG전자 연구소 현황지금까지 부서를 크게 세 곳으로 나눠서 설명드렸는데요. 이해가 되시나요?^^간단히 요약하면, 기획은 전략, 운영(기획), 실행 관점에서 나뉘고 부서는 업무 기능별로 굉장히 세분화되어 존재한다는 것을 항상 기억하세요. 자신의 첫 출발점을 어디로 삼아 나의 미래의 모습을 만들어갈지 사전에 충분히 고민한 후 면접에 임하면 좋은 결과가 있을 것 같습니다.이 글을 읽고 도움이 조금이나마 보탬이 되어 후배 사원으로 다시 만나 뵙기를 바라며, 합격을 기원하도록 하겠습니다. 감사합니다.#LG #LG그룹 #LG전자 #2016채용 #LG전자_직무 #직무정보 #직무소개 #면접 #면접_팁 #채용 #LG채용정보 #LG공채
조회수 1952

비트윈의 스티커 시스템 구현 이야기

비트윈에는 커플들이 서로에게 감정을 더욱 잘 표현할 수 있도록 스티커를 전송할 수 있는 기능이 있습니다. 이를 위해 스티커 스토어에서 다양한 종류의 스티커를 제공하고 있으며 사용자들은 구매한 스티커를 메시지의 첨부파일 형태로 전송을 할 수 있습니다. 저희가 스티커 시스템을 구현하면서 맞딱드린 문제와 이를 해결한 방법, 그리고 프로젝트를 진행하면서 배운 것들에 대해 소개해 보고자 합니다.스티커 시스템 아키텍처¶비트윈에서 스티커 기능을 제공하기 위해 다양한 구성 요소들이 있습니다. 전체적인 구성은 다음과 같습니다.비트윈 서버: 이전에 소개드렸었던 비트윈의 서버입니다. 비트윈의 채팅, 사진, 기념일 공유 등 제품내의 핵심이 되는 기능을 위해 운영됩니다. 스티커 스토어에서 구매한 스티커는 비트윈 서버를 통해 상대방에게 전송할 수 있습니다.스티커 스토어 서버: 스티커를 구매할 수 있는 스토어를 서비스합니다. 스티커 스토어는 웹페이지로 작성되어 있고 아이폰, 안드로이드 클라이언트와 유기적으로 연동되어 구매 요청 등을 처리합니다. 처음에는 Python과 Flask를 이용하여 구현하려 하였으나 결국엔 서버 개발자들이 좀 더 익숙한 자바로 구현하기로 결정하였습니다. Jetty와 Jersey를 사용하였고, HTML을 랜더링하기 위한 템플릿 엔진으로는 Closure Template을 이용하였습니다. ORM으로는 Hibernate/JPA, 클라이언트와 웹페이지간 연동을 위해서 Cordova를 이용하였습니다. EC2에서 운영하고 있으며 데이터베이스로는 RDS에서 제공하는 MySQL을 사용합니다. 이미 존재하는 솔루션들을 잘 활용하여 최대한 빨리 개발 할 수 있도록 노력을 기울였습니다.스티커 다운로드 서버: 스티커는 비트윈에서 정의한 특수한 포맷의 파일 형태로 제공됩니다. 기본적으로 수 많은 사용자가 같은 스티커 파일을 다운로드 받습니다. 따라서 AWS에서 제공하는 CDN인 CloudFront을 이용하며, 실제 스티커 파일들은 S3에서 호스팅합니다. 그런데 스티커 파일들은 디바이스의 해상도(DPI)에 따라 최적화된 파일들을 내려줘야하는 이슈가 있었습니다. 이를 위해 CloudFront와 S3사이의 파일 전송에 GAE에서 운영중인 간단한 어플리케이션이 관여합니다. 이에 대해서는 뒷편에서 좀 더 자세히 설명하도록 하겠습니다.구현상 문제들과 해결 방법들¶적정 기술에 대해 고민하다¶스티커 스토어 서버를 처음 설계할때 Flask와 SQLAlchemy를 이용하여 구현하고자 하였습니다. 개발팀 내부적으로 웹서버를 만들때 앞으로 Python과 Flask를 이용해야겠다는 생각이 있었기 때문이며, 일반적으로 Java보다는 Python으로 짜는 것이 개발 효율이 더 좋다는 것은 잘 알려진 사실이기도 합니다. 하지만 Java에 익숙한 서버 개발자들이 Python의 일반적인 스타일에 익숙하지 않아 Python다운 코드를 짜기 어려웠고, 오히려 개발하는데 비용이 더 많이 들어갔습니다. 그래서 개발 중에 다시 웹 서버는 자바로 짜게 되었고, 여러가지 스크립트들만 Python으로 짜고 있습니다. 실제 개발에 있어서 적절한 기술의 선택은 실제 프로젝트에 참여하는 개발자들의 능력에 따라 달라져야한다는 것을 알게되었습니다.스티커 파일 용량과 변환 시간을 고려하다¶사용자는 스티커 스토어에서 여러개의 스티커가 하나로 묶인 스티커 묶음을 구매하게 됩니다. 구매 완료시 여러개의 스티커가 하나의 파일로 압축되어 있는 zip파일을 다운로드 받게 됩니다. zip파일내의 각 스티커 파일에는 스티커를 재생하기 위한 스티커의 이미지 프레임들과 메타데이터에 대한 정보들이 담겨 있습니다. 메타데이터는 Thrift를 이용하여 정의하였습니다.스티커 zip파일 안에는 여러개의 스티커 파일이 들어가 있으며, 스티커 파일은 다양한 정보를 포함합니다카카오톡의 스티커의 경우 애니메이션이 있는 것은 배경이 불투명하고 배경이 투명한 경우에는 애니메이션이 없습니다. 하지만 비트윈 스티커는 배경이 투명하고 고해상도의 애니메이션을 보여줄 수 있어야 했습니다. 배경이 투명한 여러 장의 고해상도 이미지를 움직이게 만드는 것은 비교적 어려운 점이 많습니다. 여러 프레임의 이미지들의 배경을 투명하게 하기 위해 PNG를 사용하면 JPEG에 비해 스티커 파일의 크기가 너무 커집니다. 파일 크기가 너무 커지면 당시 3G 환경에서 다운로드가 너무 오래 걸려 사용성이 크게 떨어지기 때문에 무작정 PNG를 사용할 수는 없었습니다. 이에 대한 해결책으로 투명 기능을 제공하면서도 파일 크기도 비교적 작은 WebP를 이용하였습니다. WebP는 구글이 공개한 이미지 포맷으로 화질 저하를 최소화 하면서도 이미지 파일 크기가 작다는 장점이 있습니다. 각 클라이언트에서 스티커를 다운 받을때는 WebP로 다운 받지만, 다운 받은 이후에는 이미지 로딩 속도를 위해 로컬에 PNG로 변환한 스티커 프레임들을 캐싱합니다.그런데 출시 된지 오래된 안드로이드나 iPhone 3Gs와 같이 CPU성능이 좋지 않은 단말에서 WebP 디코딩이 지나치게 오래 걸리는 문제가 있었습니다. 이런 단말들은 공통적으로 해상도가 낮은 디바이스였고, 이 경우에는 특별히 PNG로 스티커 파일을 만들어 내려줬습니다. 이미지의 해상도가 낮기 때문에 파일 크기가 크지 않았고, 다운로드 속도 문제가 없었기 때문입니다.좀 더 나은 주소 포맷을 위해 GAE를 활용하다¶기본적으로 스티커는 여러 사용자가 같은 스티커 파일을 다운받아 사용하기 때문에 CDN을 이용하여 배포하는 것이 좋습니다. CDN을 이용하면 스티커 파일이 전 세계 곳곳에 있는 엣지 서버에 캐싱되어 사용자들이 가장 최적의 경로로 파일을 다운로드 받을 수 있습니다. 그래서 AWS의 S3와 CloudFront를 사용하여 스티커 파일을 배포하려고 했습니다. 또한, 여러 해상도의 디바이스에서 최적의 스티커를 보여줘야 했습니다. 이 때문에 다양한 해상도로 만들어진 스티커 파일들을 S3에 올려야 했는데 클라이어트에서 스티커 파일을 다운로드시 주소 포맷을 어떻게 가져가야 할지가 어려웠습니다. S3에 올리는 경우 파일와 디렉터리 구조 형태로 저장되기 때문에 아래와 같은 방법으로 저장이 가능합니다.http://dl.sticker.vcnc.co.kr/[dpi_of_sticker]/[sticker_id].sticker하지만, 이렇게 주소를 가져가는 경우 클라이언트가 자신의 해상도에 맞는 적절한 스티커의 해상도를 계산하여 요청해야 합니다. 이것은 클라이언트에서 서버에서 제공하는 스티커 해상도 리스트를 알고 있어야 한다는 의미이며, 이러한 정보들은 최대한 클라이언트에 가려 놓는 것이 유지보수에 좋습니다. 클라이언트는 그냥 자신의 디스플레이 해상도를 전달하기만 하고, 서버에서 적절히 계산하여 알맞은 해상도의 스티커 파일을 내려주는 것이 가장 좋습니다. 이를 위해 스티커 다운로드 URL을 아래와 같은 형태로 디자인하고자 하였습니다.http://dl.sticker.vcnc.co.kr/[sticker_id].sticker?density=[dpi_of_device]하지만 S3와 CloudFront 조합으로만 위와 같은 URL 제공은 불가능하며 따로 다운로드 서버를 운영해야 합니다. 그렇다고 EC2에 따로 서버를 운영하는 것은 안정적인 서비스 운영을 위해 신경써야할 포인트들이 늘어나는 것이어서 부담이 너무 컸습니다. 그래서, 아래와 같이 GAE를 사용하기로 하였습니다.GAE는 구글에서 일종의 클라우드 서비스(PaaS)로 구글 인프라에서 웹 어플리케이션을 실행시켜 줍니다. GAE에 클라이언트에서 요청한 URL을 적절한 S3 URL로 변환해주는 어플리케이션을 만들어 올렸습니다. 일종의 Rewrite Engine 역할을 하는 것입니다. 서비스의 안정성은 GAE가 보장해주고, S3와 CloudFront의 안정성은 AWS에서 보장해주기 때문에 크게 신경쓰지 않아도 장애 없는 서비스 운영이 가능합니다. 또한 CloudFront에서 스티커 파일을 최대한 캐싱 하며 따라서 GAE를 통해 새로 요청을 하는 경우는 거의 없기 때문에 GAE 사용 비용은 거의 발생하지 않습니다. GAE에는 클라이언트에서 보내주는 해상도를 보고 적당한 해상도의 스티커 파일을 내려주는 아주 간단한 어플리케이션만 작성하면 되기 때문에 개발 비용도 거의 들지 않았습니다.토큰을 이용해 보안 문제를 해결하다¶실제 스티커를 구매한 사용자만 스티커를 사용할 수 있어야 합니다. 스티커 토큰을 이용해 실제 구매한 사용자만 스티커를 전송할 수 있도록 구현하였습니다. 사용자가 스티커 스토어에서 스티커를 구매하게 되면 각 스티커에 대한 토큰을 얻을 수 있습니다. 스티커 토큰은 다음과 같이 구성됩니다.토큰 버전, 스티커 아이디, 사용자 아이디, 유효기간, 서버의 서명서버의 서명은 앞의 네 가지 정보를 바탕으로 만들어지며 서버의 서명과 서명을 만드는 비밀키는 충분히 길어서 실제 비밀키를 알지 못하면 서명을 위조할 수 없습니다. 사용자가 자신이 가지고 있는 스티커 토큰과 그에 해당하는 스티커를 비트윈 서버로 보내게 되면, 비트윈 서버에서는 서명이 유효한지 아닌지를 검사합니다. 서명이 유효하다면 스티커를 전송이 성공하며, 만약 토큰이 유효하지 않다면 스티커의 전송을 허가하지 않습니다.못다 한 이야기¶비트윈 개발팀에게 스티커 기능은 개발하면서 우여곡절이 참 많았던 프로젝트 중에 하나 입니다. 여러 가지 시도를 하면서 실패도 많이 했었고 덕분에 배운 것도 참 많았습니다. 기술적으로 크게 틀리지 않다면, 빠른 개발을 위해서 가장 익숙한 것으로 개발하는 것이 가장 좋은 선택이라는 알게 되어 스티커 스토어를 Python 대신 Java로 구현하게 되었습니다. 현재 비트윈 개발팀에서 일부 웹사이트와 스크립트 작성 용도로 Python을 사용하고 있지만 Python을 잘하는 개발자가 있다면 다양한 프로젝트들를 Python으로 진행할 수 있다고 생각합니다. 팀내에 경험을 공유할 수 있는 사람이 있다면 피드백을 통해 좋은 코드를 빠른 시간안에 짤 수 있고 뛰어난 개발자는 언어와 상관없이 컴퓨터에 대한 깊이 있는 지식을 가지고 있을 것이기 때문입니다.네 그렇습니다. 결론은 Python 개발자를 모신다는 것입니다.저희는 언제나 타다 및 비트윈 서비스를 함께 만들며 기술적인 문제를 함께 풀어나갈 능력있는 개발자를 모시고 있습니다. 언제든 부담없이 [email protected]로 이메일을 주시기 바랍니다!
조회수 2059

스켈티인터뷰 / 스켈터랩스의 조깨비 조경희 님을 만나보세요:)

Editor. 스켈터랩스에서는 배경이 모두 다른 다양한 멤버들이 함께 모여 최고의 머신 인텔리전스 개발을 향해 힘껏 나아가고 있습니다. 스켈터랩스의 식구들, Skeltie를 소개하는 시간을 통해 우리의 일상과 혁신을 만들어가는 과정을 들어보세요! 스켈터랩스의 조깨비 조경희 님을 만나보세요:)사진1. 스켈터랩스의 조깨비 조경희 님Q. 자기소개를 부탁한다.A. 이름은 조경희, 아이리스 팀에서 소프트웨어 엔지니어로 일하고 있다. 2016년 8월에 입사했으니 이제 스켈터랩스에 합류한 지도 2년이 훌쩍 넘었다.Q. 맡고있는 업무를 설명한다면?A. 우리 팀은 일종의 실시간 맥락 인식(Context Recognition) 기술을 개발하고 있다. 다양한 종류의 맥락 인식이 있겠지만, 현재 우리는 모바일 기기를 주요 디바이스로 삼고있다. 핸드폰을 통해 사용자의 다양한 정보를 수집하고, 우리의 기술이 알아서 사용자의 취향이라던지 성향, 좋아하는 음식부터 음악까지 다양한 정보를 여러 시그널을 바탕으로 추론하고자 한다. 이후에는 사용자에 딱 맞는 ‘추천'까지 제공하는 기술을 개발하는 것이 목표다.Q. 핸드폰 하나로 사용자의 다양한 정보를 수집하고 추론할 수 있다는 부분이 신기하다. 조금 더 자세히 얘기해줄 수 있나.A. 가령 내가 안드로이드 사용자라고 가정해보자. 우리가 택시를 부를 때 흔히 사용하는 것 처럼 내가 현재 위치한 곳을, 즉 장소 정보를 핸드폰은 알아서 수집하고 있다. 우리는 장소를 비롯하여 와이파이나 사운드, 배터리, 자이로센서 등으로부터 시그널을 수집하고, 스트리밍 프로세싱 엔진에 송출한다. 그럼 그 엔진에서 실시간으로 이러한 스트림(정보)를 받고, 받은 데이터를 조합하여 새로운 데이터로 변환한 후 다음 단계를 추론하다. 내가 만일 아침 9시쯤에는 항상 일정한 A라는 장소로 이동하고 있고, A 장소로 이동하는 길목에서 카페에 들러 커피를 한 잔 사는 일과를 가지고 있다면, ‘A는 사용자의 회사이고, 사용자는 출근하기 전 커피를 마시기를 즐기는 사람이다'라고 추론할 수 있다. 우리는 이러한 상황에 대한 추론을 바탕으로, 조금 더 고차원적인 추론을 하거나, 사용자의 취향 및 패턴을 찾는 기술을 개발하고 있다. 궁극적으로는 <아이언맨>에 등장하는 자비스(JARVIS)와 같은 퍼스널 어시스턴트(Personal Assistant)를 세상에 내보이고 싶다. 사실 자비스는 어디까지나 영화 속의 상상이 많이 묻어있고, 현재로서는 갈 길이 멀기도 하다. 하지만 현재 스켈터랩스는 음성 인식이나 이미지(Vision), 챗봇과 같은 다양한 프로젝트를 동시에 진행하고 있으며 각각의 기술력도 뛰어나다. 이 여러가지 기술이 총체적으로 구현된 서비스가 탄생한다면, 일상을 혁신적으로 바꿀 것이라고 생각한다. Q. 지금까지의 개발 상황을 살짝 공개하자면?A. 시장에 공개한 것을 기준으로 하자면, 일단 베타 버전으로 런칭한 앱 서비스 ‘큐(CUE)’ 이야기를 하고 싶다. 간단한 상황 인식을 통해 사용자에게 추천을 제공한다. 가령 강수량이 높게 예고된 날에는 ‘우산 챙겨가'라고 카드를 띄워준다거나, 라면을 즐겨 먹는 사용자에게 ‘오늘은 라면 대신 건강한 샐러드 어때?’라고 말해주기도 한다. 사실 큐에 대한 사용자의 의견은 정말 가지각색이었다. 날씨 예보를 기반으로 한 추천의 경우 ‘너무 뻔해서 의미가 없는 것 같다’ 라고 생각하는 사용자가 있는 반면, 출근 직전과 같은 적시에 카드가 알아서 추천해주니 매우 편하게 느꼈다는 사용자도 있었다. 결국 나는 상황 인식이 사용자에게 유용한 서비스로 와닿기 위해서는 ‘정확성'이 큰 척도라고 생각한다. 적시에, 적절한 장소에서, 나에게 꼭 맞는 추천을 해주는 것, 이를 위해서는 사용자를 정확하게 파악하는 것이 우선되어야 하기 때문이다. 지금까지의 개발이 상황 정보를 적절하게 받을 수 있는 플랫폼 구축 중심이었다면, 현재는 더 자세한 상황을 찾는 쪽으로 초점이 맞추어져 있다. 가령 사용자가 ‘지하철을 타고 이동한다'가 아니라, ‘어느 역에서 지하철에 탑승하여 어느 역에서 내렸다'까지 인식할 수 있는 것이다. 음악도 마찬가지다. 음악과 같이 엔터테인먼트 컨텐츠의 경우 단순히 ‘음악을 듣고 있다'라는 정보가 아니라, 취향 정보가 중요하다. 때문에 ‘어떤 가수의 어떤 음악을 들었다'까지 인식하여 이를 조합한 추론을 만들려고 한다.사진2. 사내 Tech Talk 세미나를 진행하고 있는 경희님Q. 큐의 베타 서비스를 런칭하며 팀원들끼리 자축하던 장면이 떠오른다. 굉장히 뿌듯한 경험이었을 것 같다.A. 나는 사실 뿌듯함 보다는 ‘갈 길이 멀다'라는 생각을 먼저 했다. 베타 버전이기도 했고, 개발한 우리 스스로도 정확성이 기대에 미치지 못하고 있다고 생각했다. 그럼에도 불구하고 런칭을 결정한 이유는 명확하다. 다양한 사용자가 큐를 통해 어떤 경험을 얻고, 어떻게 느끼는지 들어야만 더욱 사용자의 핏에 맞는 정식 버전을 제대로 개발할 수 있을 것이라고 판단했기 때문이다. 모든 서비스가 마찬가지겠지만 나는 큐야 말로 많은 사용자와 함께 만들어가는 서비스라고 생각한다.Q. 경희님 개인의 이야기를 들어보고 싶다. 스켈터랩스에 어떻게 합류하게 되었는가.A. 스켈터랩스의 CTO인 조성진 님과 같은 연구실에서 일했다. 연구를 마친 후 나는 전문연구요원으로 다른 회사에서 일을 했고, 성진님은 구글에 입사한 것으로만 알고 있었는데, 구글을 나와서 회사를 차렸다는 얘기를 듣게되었다. 그때만 해도 대기업이 주는 안정감을 놓칠 수 없어 대기업에 머물러있었다. 하지만 성진님을 자주 만나 스켈터랩스의 프로젝트가 어떠한 방향으로 구체화되고 있는지 들을수록 매력적으로 와닿았다. 대기업의 경우 조직의 구조 때문에 어쩔 수 없이 쪼개진 일에 집중하게 된다. 하지만 스켈터랩스는 구성원들 모두가 자발적으로 참여하여 방향성을 결정 짓고, 개발 환경을 선진적으로 꾸리고 있다는 점도 좋았다. 이러한 요소가 결국 스켈터랩스로의 이직을 결정지었던 것 같다.Q. 스켈터랩스로 이직하여 얻은 가장 큰 성취를 꼽자면?개인적으로 코드리뷰 문화를 통한 개발 실력의 발전을 꼽고 싶다. 다른 조직에서는 다른 사람이 내 코드를 봐주고, 평가하는 것이 마치 자존심 싸움처럼 여겨지곤 했다. 타인의 코드는 일종의 침범할 수 없는 ‘불가침 영역'으로 인식되었다. 하지만 스켈터랩스에서는 코드리뷰가 너무나도 당연하다. 다른 사람에게 코드를 보여주고, 내 코드가 더욱 효율적으로 작동할 수 있도록 바꾸어주는 것이 자연스럽게 이루어지고 있다. 이 과정을 통해 코드를 리뷰하는 사람도, 리뷰받는 사람도 모두가 윈윈(win-win)할 수 있다. 코드리뷰 문화가 익숙하지 않은 사람에게는 이 문화가 마치 일의 효율을 저해하는 것 처럼 여겨질 수 있다. 그러나 결론적으로는 목표에 닿기 위한 가장 빠른 방법이라고 생각한다. 확실히 여러 개발자의 리뷰를 거칠수록, 버그는 적어지고 개인의 실력이 향상될 뿐더러 시야도 넓어질 수 있기 때문이다. 나 또한 같은 경험을 했다. 스켈터랩스에서 몇 개월 근무한 후, 내가 이전에 짜놓은 코드를 보면 ‘어떻게 이렇게 짜놓았지' 싶을 때가 있다. 개발 실력에 관한 이러한 성취를 정량적으로 판단할 수 는 없지만, 회사와 개인이 모두 발전할 수 있는 가장 의미있는 성취라고 생각한다.Q. 반대로 스켈터랩스에서 개발을 하며 가장 어려운 점은 무엇이 있을까.개발 자체에 대한 어려움보다는 방향성에 대한 어려움이 있다. 인공지능이라는 분야는 워낙 넓기도 하고, 상황인식 기술의 경우 근래에 크게 발전하고 있는 것은 맞지만, 세부 기술에 대해서는 시장 자체가 뚜렷하지 않다. 참고할만한 제품도, 경쟁사도 없기 때문에 새로운 시장을 만들어내는 것에 대한 부담이 있다. 언뜻 보기에는 경쟁사가 크게 없는 니치마켓(Niche market)처럼 여겨질 수 있지만, 기술을 쪼개고 쪼개어 들여다보면 하나의 기술을 바탕으로 각각 다른 사용자와 상황을 타깃으로 변주한 다양한 서비스가 등장하는 상황이다. 이러한 기술을 마냥 뭉뚱그린다면 기술에 대한 깊이가 얕아질 수 있고, 특정 상황과 사용자에게만 집중한다면 타깃이 좁아질 위험이 있다. 때문에 시장과 사용자에 대해 매 순간 유추하며 적절한 균형을 가지고 개발을 진행할 수 있도록 노력하고 있다. 사진3. 프로젝트 별 Sync-up 미팅, 짧은 미팅을 통해 업무 효율을 높이고 있다Q. 스켈터랩스의 개발 문화가 타 기업과 확고하게 다르다고 느낀 사례가 있다면, 그 이야기를 구체적으로 듣고싶다.A. 두 가지를 꼽고 싶다. 첫 번째는, 다른 분들도 많이 얘기했을 것 같지만 역시 와 다. 각각 상반기와 하반기에 한 번 씩, 하는 일을 모두 멈추고 일주일 간 원하는 개발에 집중하는 일종의 해커톤이다. 내가 입사한 날이 Demo Days 시작 이틀 전이었다. 입사하자마자 부랴부랴 팀을 만들고, 아이디어를 구체화하여 개발에 매달렸다. Demo Days 기간 내내 팀원들이 밤을 새워가며 개발에 매달리는데, ‘매일 이렇게 일하는 곳인가' 라는 두려움과 ‘이렇게 뛰어난 개발자들이 집중하니까 뚝딱 서비스가 나올 수 있구나'라는 재미를 동시에 느꼈다. 그 기간이 끝나고 보니 역시 매일 그렇게 일하는 것은 아니었다. 일주일 간 그토록 밤을 세워 개발을 할 수 있는 원동력은 ‘내가 원하는 서비스를 직접 만들어볼 수 있다'라는 흥미와 ‘최종 발표일에 어설픈 개발로 쪽팔리고 싶지 않다'라는 감정인 것 같다. 매일 하는 업무에서 벗어나 리프레쉬 할 수 있는 재미요소도 크다. 그 기간의 우리 성과를 돌아보면, 이토록 개발을 사랑하고 기대 수준이 높은 사람들이 모여있으니, 뭘 하던 성공할 것이라는 일종의 확신을 얻을 수 있다. 두 번째는 ‘빠르다'라는 점이다. 새로운 아이디어나 기술에 대해 흥미가 생겼을 때 쉽고 빠르게 팀을 꾸릴 수 있다. 그렇기 때문에 자연스럽게 자신의 흥미와 역량에 맞는 팀을 찾아 이동하는 것도 매우 자발적으로, 빠르게 이루어진다. 오픈 소스 사용도 빠르다. 새로운 기술이나 제품을 들여다보고 싶다면, 그냥 진행해 볼 수 있다. 기존의 큰 회사들은 수직적으로 팀장 급에서 업무를 할당하고 시일에 맞추어 개발을 진행하다 보니, 속도 자체는 빠를 수 있지만 허술한 부분이 생기기 마련이고 새로운 기술을 도입에 있어서도 조심스럽다. 하지만 스켈터랩스에서는 ‘빨리 도입하고 빨리 경험해보자’ 라는 의식을 공통적으로 가지고있다.Q. 개발자는 개발이 막히는 순간도 종종 맞닥뜨릴 것 같다. 그럴 때 어떻게 해결하는지 자신만의 팁을 공유한다면.A. 고민의 양이 아니라, 그저 고민의 끈을 놓지 않고 있는 것이 중요한 것 같다. 나는 개발이 막혔을 때 스트레스를 꽤 많이 받는 편이다. 한 번 막히면 맥주를 마시면서도, 밥을 먹으면서도 항상 머리 한 구석에는 개발 고민을 이어간다. 꿈에서도 하도 코딩을 한 탓에, 와이프가 어느 날 “어젯 밤에도 ‘테스트 코드는 이렇게 해야지’ 라는 잠꼬대 하던데?”라고 말할 정도다. 그러다 신기하게도 개발을 아무 것도 모르는 제 3자와 얘기하다가 번뜩 방법이 떠오르곤 한다. 지극히 일상의 순간, 가령 샤워를 한다거나 멍하니 지하철을 타다가 해결책을 찾기도 한다. 이 방법이 훌륭한 팁은 아닐 수 있지만, 포기하는 것이 아니라 개발에 대한 고민을 놓지않는 것이 중요하다는 얘기를 전하고 싶다.사진4. 경희 님과 아내 분의 투샷Q. 경희님이 회사에서 종종 드라마 얘기를 하는 것을 들었다. 드라마를 많이 보는 편인가, 하루 일과를 듣고 싶다.A. 예전에는 <와우>라는 게임을 정말 많이했다. 덕분에 게임 동호회에도 가입해있는데, 요즘에는 <오버워치>나 <클래시로얄> 정도만 즐기고 있다. 결혼하고 와이프와 시간을 함께 보내면서, TV 시청이 늘었다. 와이프가 워낙 TV를 좋아하기도 하고 함께 집에서 시간을 보낼 수 있는 가장 편리한 방법인 것 같기도 하다. 하루 일과는 그래도 일찍 시작하는 편이다. 와이프는 일곱시 쯤 일어나 출근하는데, 나도 보통은 맞춰서 함께 일어난다. 재택근무를 할 수 있는 환경이다보니, 오전에는 주로 집에서 코딩을 하며 개발에 집중한다. 보통 점심 때 출근을 하거나, 미팅에 맞추어 출근하는 편인데, 오후 시간은 미팅과 개발 모두를 병행해서 꽤 정신 없이 하루가 흘러가는 것 같다.사진5. 게임동호회에 가입하면, 회사의 지원을 받아 게임을 즐길 수 있다.Q. 스켈터랩스에서 이루고 싶은 것을 듣고싶다.A. 나의 꿈이 원래 ‘내가 개발한 기술이나 제품이 최대한 많은 사람에게 편리함을 주는 것'이었다. 우연히도 스켈터랩스의 미션인 “언제 어디서나 우리의 일상을 이해하고, 도와주고, 더 나아지게 하는 머신 인텔리전스의 혁신을 이룬다”와 일치하더라. 덕분에 내 꿈을 이루어나가는 것과 스켈터랩스가 혁신적인 기술을 바탕으로 성장하는 것은 궤를 같이한다. 그것이 내가 스티브잡스 처럼 특정 분야의 스타가 되는 것을 뜻하지는 않는다. 연속성이 있고 확장성이 있는 기술로 우리의 일상을 조금씩 더욱 편리하게 가꾸어나가고 싶다.Q. 마지막 질문이다. 스켈터랩스에 바라는 점이 있다면 무엇인가.A. 내가 입사했을 때만 해도 20명 정도에 불과했던 인원이 현재는 70여 명으로 늘었다. 체감상 인원이 조금씩 느는 것이 아니라 순간적으로 확 늘어나는 시기가 있는 것 같다. 그 때마다 약간의 침체기랄까, 분위기가 변하는 모습이 감지된다. 예전에는 사람이 적기 때문에 자연스레 커뮤니케이션이 자율적이이었지만, 사람이 늘어난 만큼 제한적인 커뮤니케이션 모습을 종종 발견할 수 있었다. 이러한 문제 의식의 발로로 컬쳐커미티(Culture Committee)가 생겨났다. 커미티의 활동 덕분에 매주 1:1로 커피를 마실 수 있는 커피믹스와 같은 제도도 신설되었다. 이렇듯 지속적으로 우리만의 모습을 유지하기 위한 노력이 지속되었으면 좋겠다. “우리는 답을 찾을 것이다. 늘 그랬듯이”, 흔한 명대사지만 스켈터랩스 또한 내부적으로도, 외부적으로 늘 답을 찾아가길 바란다. 물론 나 또한 그 답을 찾는 여정에 함께할 테지만 말이다.
조회수 10278

성공한 스타트업의 실패했던 순간들

몇백 억대에 회사를 성공적으로 매각하거나 키워 낸 성공한 창업자들은 어려운 시절이 없었을까요?시가 총액 수조 원대의 스타트업들의 어려웠던 순간들을 돌이켜 볼까 합니다. 1. 와츠앱 창업자 얀코움(Jan Koum)얀코움은 우크라이나의 전기와 온수도 들어오지 않는 작은 마을에서 태어나 아버지는 막노동꾼 어머니는 가사를 보았고, 당시 구 소련의 붕괴로 인해 불안한 시점에서 16살 때 미국으로 가족과 함께 이민을 와서 정말 있는 일 없는 일을 닥치는 대로 하면서 살아왔다고 합니다. 식사를 할 돈이 없어서 무료급식소에서 매일매일 서서 밥을 먹는 것이 일상이었지요.설상가상으로 어머니의 건강에 문제가 생겼고 암 판정을 받았습니다. 암 판정으로 인해 국가에서 나오는 연금으로 생활을 연연 했으며, 얀코움 성격상 사교적이지 않았기에 유일한 친구는 컴퓨터였습니다. 책은 당연히 살 돈도 없어서 헌책방을 돌아다니면서 수집한 컴퓨터 관련 서적으로 공부해서 학교도 겨우 졸업했고, 학교 다니는 틈틈이 야간에 야후에서 보조일을 하다가 졸업 후 야후로 들어갔습니다.1997년 아버지의 사망, 그리고 2000년에는 어머니까지 사망. 혼자가 됐죠. 그나마 야후로 들어가서 최고의 행운이 되었던 것은 와츠앱 공동창업자 브라이언 액톤이라는 친구를 만난 것입니다. 얀코움 인생 역사상 최고의 인연이었다고 합니다. 얀코움과 액톤은 2007년 야후를 퇴사하고 페이스북에 지원했으나 결과는 떨어졌으며, 트위터 또한 떨어졌습니다. 당시 일화는 유명합니다. 액튼이 페이스북에 엑싯하고 본 트윗이 다시 회자되니까요.*페이스북이 날 떨어트렸다. 정말 굉장한 사람들과 일할 수 있는 좋은 기회였는데. 내 다음 모험지는 어디가 될까.(페이스북은 액튼을 떨어트리고 다시 데려오느라 20조 원의 거금을 쓸 수밖에 없었습니다.)실직자였던 둘은 아이폰을 보고 이거다 싶어서 2009년 창업을 했으나, 뜻대로 되지 않았습니다. 친구들이나 고작 사용해주는 정도였습니다. 운 좋게 애플이 알림에 대한 기능을 추가했으며 여기에 와츠앱이 탄력을 받아서 폭풍 성장하게 됐으며, 결국 페이스북에 엄청난 금액으로 매각하게 됩니다.이때 얀코움이 개인적인 지분을 팔아 얻게 된 금액은 약 9조 원에 육박합니다.2. 에어비앤비 창업자 브라이언 체스키로드 아일랜드 디자인 학교에서 브라이언 체스키와 죠 게비아 둘은 만났습니다. 여기까지는 정말 순탄한 이야기입니다. 둘은 졸업 후 서로 떨어져 있는 동안 실리콘밸리에서 창업을 한번 해보자고 의견을 나눴고 그 자리에서 바로 샌프란시스코에 아파트를 하나 임대받고 시작을 합니다. 하지만 어마어마한 월세로 인해서 아파트 임대료 하나 낼 수 없는 지경에 이르렀고 어떻게든 해결을 봐야 했기에 전공인 디자인을 살려서 매년 열리는 국제 디자인 콘퍼런스에서 어떤 일을 할 수 없을까 고민하게 됩니다. 그리곤 방의 월세라도 벌어볼 겸 행사 때에 맞춰서 이 방을 팔아보자고 생각을 하게 됩니다. 그렇게 에어비엔비라는 창업 모델이 탄생하게 된 거죠. 사실 이 상태로라면 정말 이상적인 시나리오라는 생각이 드시겠지만, 지금의 에어비엔비의 모습을 갖출 때까지 정말 극적인 고통을 경험하게 됩니다.서비스의 기획은 갖췄고 정말 이 서비스가 될 거라 믿었지만 사람들은 신뢰를 가지고 이용하지 않았으며 SWSX에서 피칭도 했지만 그때뿐이었습니다.*SWSX에서 피칭 후 사이트 트래픽의 터짐(두 창업자는 이때 에어비엔비가 폭발적으로 성장할 줄 알았다고 합니다.)*이 지표를 보고 두 창업자들은 정말 엄청난 확신과 믿음에서 시작했음에도 불구하고 이 서비스가 되지 않을 것 같다는 근본의 뿌리가 흔들릴 상황이었다고 합니다.하지만 창업자들은 포기하지 않고 어떻게든 살아남을 방법을 강구했습니다. 당시 오마바 대선이 있던 때라 오바마 대선에 맞춘 시리얼을 만들어 판매하는 등 어떻게든 회사를 유지하기 위해 발버둥 쳤다는 것이죠. 가장 힘들었던 것은 주변 모두가 이 서비스는 될 서비스가 아니라고 이야기하는 것이었습니다. 여기에 흔들리지 않을 사람은 없을 것입니다. 하지만 여기에서 보통 다른 사람이라면 포기를 했어야 되는데 끝까지 갑니다. 사실 똑똑한 사람이라면 여기에서 그만뒀을 수도 있습니다. 브라이언 체스키는 펀딩이 떨어지는 바람에 카드 돌려막기 등 회사를 유지하기 위해 안간힘을 씁니다. 정말 머리로 회사를 운영했다면 말도 안 되는 일입니다. 팔고 남은 시리얼로 아침을 때우며 극적으로 버티다 Y콤비네이터를 만나게 됩니다. 사실 Y콤비네이터도 서비스 모델 자체는 비관적이었으나, 강렬한 의지의 창업자들을 만나보고 그 자리에서 바로 투자를 결심하게 된 것이죠.*2008년에 비해 뉴욕 맨해튼 에어비엔비 매물이 2011년 극적으로 증가투자 후 순탄했던 것도 아닙니다. 계속해서 숙박업 관련 법과 싸울 수밖에 없었고 2011년에는 투숙객 하나가 집에 있는 모든 물건을 훔쳐가서 도망가는 사태도 벌어졌었습니다. 어마어마한 이슈였습니다. 에어비앤비는 즉각적으로 사과하고 모든 피드백을 반영하여 안전장치에 대한 이슈들을 수정할 수 있는 방안을 마련합니다.현재 에어비앤비 시가총액은 27조 원에 육박합니다.3. 알리바바 마윈마윈 이야기는 너무나 많은 곳에서 회자되고 알려져서 뻔하실 수 있지만, 그 인생 자체는 회자된 만큼 너무나 고난의 길 연속이었습니다. 어릴 때는 공부를 못해서 중학교에 들어가지 못할 정도였고 대학은 두 번이나 낙방했습니다. 심지어 수학시험은 120점 만점에 1점을 받았습니다. 현재의 IT회사의 거물이라 생각하고 돌이켜봐도 어마어마한 수학 점수죠. 대학을 졸업하고 구직 활동에서도 모두 거절이었습니다. 오죽했으면 KFC면접을 봤는데도 24명 중 본인만 떨어질 정도였을까요? 28살 회사를 차려서 운영했을 때는 같은 회사 직원이 회사 돈을 빼돌려 잠적까지 했습니다. 닷컴 버블이 일 때 알리바바는 수익이 전혀 나지 않는 상황이었고 투자받고 싶었던 실리콘밸리 VC 40곳 모두에게도 전부 거절당했습니다. 또한 검색사업의 실패, 무리한 해외 확장 실패로 인해 어마어마한 금전적 손실을 입기도 했습니다. 마윈의 사업을 돌이켜 보기 전에 그의 인생만 돌이켜 보더라도 실패한 인생이었습니다. 하지만, 절대 포기하지 않았죠.현재 알리바바 시가 총액은 175조 원입니다.#더팀스 #THETEAMS #알리바바 #왓츠앱 #에어비앤비 #AirBnB #What'sApp #스타트업 #실패 #성공 #창업
조회수 1280

[아마존 FBA] 02. Invoice 금액 편

인사말안녕하세요 대한민국 셀러들의 성공적인 아마존 진출을 도와주는 컨설팅 회사이자 대행사인 컨택틱의 이이삭 대표입니다. 오늘 제가 알려드리고 싶은 이야기는 너무나도 많은 분들이 헷갈려 하고 어려워하는 '아마존 FBA에 재고를 보낼 때 고려해야 하는 통관, 관세, 수입자, IOR, EIN, CAN에 대한 개념과 해결책'시리즈 중 2번째 이야기입니다.QUESTION 2. Commercial Invoice의 총액을 Undervalue 해서 보내야 하나요, 아니면 아마존에 판매할 금액으로 신고해야 하나요?이 질문도 굉장히 많이 받았습니다. 그럴 수밖에 없는 게, 현재 저희가 하고자 하는 것은 한국에 있는 '내가' FBA 판매자인 '나에게' 화물을 보내는 것이기 때문에 통상적인 무역과는 다르게 '거래'인 것이 아니고 단순히 물건의 이동일뿐이기 때문에 헷갈릴 수밖에 없습니다.ANSWER 2. 제품 원가 혹은 매입가로 신고하세요.제 유럽 VAT 글을 읽어보신 분들은 아시겠지만 미국은 부가세 법이 아닌 Sales Tax 법을 준용하는 나라이기 때문에 저희 입장에서는 '부가세'라는 것을 걱정하지 않아도 되며 결국 지금과 같은 질문을 애초에 고민할 필요가 없는 것입니다. 조금 더 풀어서 설명드리자면, 부가세 법을 따르는 국가는 해외 판매자라고 하더라도 VAT 가입을 하게 하는데, 그러면 분기별로 부가세 신고를 해야 됩니다. 따라서 분기별 선납한 '수입 부가세'를 매입자료로써 제출을 하고, 매출분을 신고하면 두 가지를 합 계산한 최종 부가세액을 국세청에 납부하게 되는 개념입니다. 결국, 유럽의 경우 선납 수입 부가세가 부담되어서 undervalue 하는 경우가 대부분이며, Invoice Value를 조정하는 것은 통관과 관련된 문제는 아닙니다 (그래도 매출액이 10억인데, 수입액은 1천만 원도 안되면 이상해 보이는 건 당연하죠). 하지만 지금 얘기하고 있는 주제는 유럽이 아니라 미국이니, 그럼 다시 미국으로 기준을 돌려서 얘기하자면, 이런 '분기별 부가세 신고 및 납부'라는 제도를 해외 사업자들이 하지 않아도 되기 때문에 애초에 Undervalue에 대한 문제가 훨씬 덜하다는 것입니다. 그래도 어쨌거나 Invoice Value는 뭐라도 기재해야 하기 때문에 제가 추천하는 신고 금액은 '원가' 또는 '매입가'입니다. 제조사 및 제조 유통업자의 경우에는 원가가 될 것이며, 일반 유통업자들은 제품의 매입가를 기준으로 Commercial Invoice 상의 Invoice Value를 기재하면 됩니다. 즉, 세관에서 이상하게 눈여겨보지 않을 정도로 Undervalue 해서 보내라는 말입니다. 이에 대해 의구심을 가지시는 분들에게 한 번 여러분들이 '미국 세관에서 일하는 직원'이라고 한 번 상상해보라고 말씀드리고 싶습니다. 하루에도 몇 천 개의 화물이 통관되는 가운데 (심지어 각 화물마다 포장에 포장이 되어있는 상태의 화물을 놓고) 여러분들이 직원이라면 Invoice에 적힌 제품이 실제로 박스 안에 들어있는 제품이 맞는지, 그리고 심지어 기재된 금액이 사실인지 아닌지를 일일이 따져가며 통관할까요? 절대 아닙니다. 엑스레이로 대충 검사하고 Invoice에 기재된 상품명을 보고 '이런 제품의 commercial value는 이 정도니까, 이 금액은 일리가 있으니 넘기자'라고 생각하는 게 당연합니다. 따라서 결론은 너무 터무니없는 금액이 아닌, 제품의 원가 또는 매입가를 기준으로 Commercial Invoice 상의 Invoice Value를 기재하고 보내시면 되는 것입니다.마치며매주 목요일에 업데이트 되는 FBA 입고에 관련한 가장 많이 궁금해하시는 포스팅을 준비했습니다. 많은 관심 부탁드립니다. 그리고 미국 수입 기준 관세/통관/수입자/Consignee/IOR/Importer  등과 관련하여 도움이 필요하신 분들은 언제든지 컨택틱을 찾아주시기 바랍니다.  그럼 오늘도 즐거운 글로벌 셀링 되세요!컨택틱  서울특별시 강남구 강남대로 62길 11, 8층 (역삼동, 유타워)  대표 전화: 02-538-3939  해외 부서: 070-7771-1727  영업 부서: 070-7771-1728  이메일: [email protected]  유튜브: https://www.youtube.com/channel/UC8OxbQGAnMqWGpGj5weLcZA 홈페이지: https://www.kontactic.com
조회수 1609

공유 숙박업, 어디까지 왔나?

말도 많고 탈도 많은데 계속 성장하는 공유 숙박업. 도시민박업으로 외국인들에게 오픈하고, 공유 숙박업으로 내국인에까지 오픈하게 되는데요 저희가 먼저, 개정법안 대표발의 의원 이완영의원실에 전화하여 물어보았습니다. "공유 숙박업, 어디까지 됐나요?" 현재 계류 중인 법안의 워딩을 그대로 가져와보았습니다. 국토의 계획 및 이용에 관한 법률” 제6조 제 1항에 따른 도시지역에서 숙박/숙식을 제공하는 업을 도시민박업으로 정의도시민박업의 영업일수는 연간 180일 이내   도시민박업은 문화체육관광 부령으로 정하는 안전/위생기준을 지켜야 함    관할 등록 기관장이 연간 영업일수 등 준수사항을 단속함   실제 법안을 그대로 옮겨놓으니 잘 와 닿지 않으시죠? 위의 법안 내용을 조금 쉽게 설명드려볼게요. 법에 도시지역이라고 명시된 곳에서는 도시민박업 가능! → 대도시는 물론이거니와 대부분의 관광지 인근 도시는 모두 도시지역입니다.  365일 중 180일은 도시민박업 가능! → 180일을 어떻게 활용해야 할지! 다양한 경우의 수에 대해 에어 위클리 다음호에서 자세하게 설명드리겠습니다.  화재 예방 / 전기 사용 / 가스 사용 / 대피 / 질서 유지 및 안전사고 예방 / 위생, 총 6가지 기준을 통과해야 함! → 대부분의 건축물은 위의 기준을 충족하기 때문에 불법적인 건축물만 아니라면 크게 걱정하실 부분은 없습니다  구청/시청에서 단속활동을 함! 이처럼 생각보다 까다롭지 않은 기준으로 공유 숙박업을 시행할 것이라고 발의문은 말하고 있습니다. 하지만, 법안이 통과되기까지는 아직 많은 과정이 남아있습니다. 위의 법안을 발의한 이완영 의원실에 문의한 결과 아직 해당 상임위의 법안심사소위원회(이하 소위)조차 통과하지 못했다고 합니다. 법안은 발의된 후, 소위를 거쳐 상임위 전체회의, 법사위의 심사를 받은 후에야 본회의에 상정됩니다. 또한 본회의 통과 후에도 6개월이 지나야 법안이 시행되니 공유 숙박업이 시행되기까지는 아직 시간이 걸릴 것으로 예상됩니다만.. 그러나!!! 현 정부에서도 도시민박업과 비슷한 종류의 공유 민박업을 정부입법 추진하겠다고 밝혔는데요. 이와 관련한 정보 또한 저희가 계속 수집하여 조만간 여러분께 알려드리도록 하겠습니다.#핸디즈 #인사이트 #에어비앤비 #업계정보
조회수 2409

모니터링 기업 와탭의 시작

2012년 2월 개발자 3명이 모여서 회사를 만들었습니다. 와탭랩스를 만들기 전 회사인 "DesignPlusD" 입니다. 모바일 개발을 하고 싶었던 우리는 무작정 회사를 나와서 법인을 만들고 사업을 시작했습니다. 사무실은 홍대 코워킹 스페이스에서 시작했고 각자의 퇴직금으로 자본금을 마련했습니다. 그 시절 우리는 개발에 대해서는 정말 끝없는 자신감을 가지고 있었습니다. 누구보다도 빠르게 만들고, 누구보다도 높은 퀄리티를 제공할 수 있었기에 금방 인정받고 성공할 거라 생각했지만 이렇게 만들었던 회사는 지금 존재하지 않습니다. 그 이유는 사업이 아닌 개발을 하고 싶어 만든 회사였다는 것이였습니다. 정확하게는 모바일 개발이 하고 싶어 만든 회사였습니다.DesignPlusD의 메모앱 (MemoZy)우리는 여러가지 앱들을 만들었는데 그중 젤 인기있는 앱은 메모앱이였습니다. 독특한 UX를 가진 개성있는 앱이였던지라 국내에서 많은 상을 받았습니다. 한국에서 유료앱으로 1주일간 전체 분야 1위에 올라가기도 했었습니다. 하지만 돈은 벌지 못했죠. 이미 저희보다 먼저 시작한 훌륭한 노트앱들도 상황은 좋지 않았습니다. 2013년이 지나면서 모바일로 돈을 번다는 것은 정말 힘든 일이 되어가고 있었습니다. 그리고 저는 이런 고민을 하게 됩니다."우리도 돈 벌수 있는 사업을 구상해보자"우리가 정한 비지니스 아이템의 선정 조건은 다음과 같았습니다.기술기반 서비스. - 서비스를 만드는 과정에서 나온 기술 만으로도 돈을 벌 수 있는 서비스.B2B 서비스. - 있으면 좋은 서비스가 아니라 꼭 필요한 서비스.오랜 기간 변하지 않을 서비스. - 10년이 지나도 여전히 가치를 가질 수 있어야 함.그렇게 아이템 구상에 들어갑니다. 성공 할수밖에 없는 아이템을 찾고 또 찾기 시작합니다. 많은 아이템들을 구상해보고 논의해 보았지만 만족스로운 아이템이 나오지 않았습니다. 그러던 중 소개로 만난 회사와의 미팅에서 정말 우연히 IT 서비스 모니터링에 대한 이야기를 나누게 됩니다. 기존에 있는 모니터링 서비스들은 NOC라는 거대한 공간에서의 모니터링 이였지만 모바일이 지원된다면 한정된 공간에서의 모니터링이 아닌 언제 어디서나 모니터링이 가능해 지는데, 아직 모바일을 지원하는 모니터링이 없다는 것이였습니다.미국 AT&T NOC 공간이런 모니터링은 우리가 정한 아이템 선정 조건에 딱 맞는 아이템이였습니다. 기술 기반의 서비스이면서 B2B서비스 였습니다. B2B는 B2C에 비해 고객의 니즈를 파악하기 좋은 분야입니다. 그리고 모니터링은 IT 서비스가 존재하는 한 없어지지 않을 아이템이죠. 10년 후에도 여전히 모니터링 서비스는 존재할 것입니다. 그리고 2014년까지도 모바일이 지원되는 모니터링 서비스가 없었습니다. 그래서 우리는 모바일을 통해 언제 어디서든 서버를 모니터링 할수 있는 서비스를 만들기로 결정합니다.모니터링 서비스 시작하려고 하는데, 어떻게 생각하세요?그렇게 아이템을 선정했지만 신중을 기하기 위해 주변에 아이템에 대한 의견을 물어보고 의견을 공유하기 시작했습니다. 이렇게 자신의 아이디어를 공유하는 것은 매우 중요했습니다. 이렇게 의견을 공유하는 과정에서 많은 분들이 새로운 아이템에 대해 긍정적인 피드백을 주셨습니다. 뿐만 아니라 아이템만 정했을 뿐인데도 투자를 제의해 주시기도 했고, 사업을 같이 하자는 제의도 받게 되었습니다. 그리고 그 덕분에 좋은 분들과 함께 할 수 있었고, 현재 와탭랩스는 국내에서 만대 이상의 서버를 모니터링 하는 IT 서비스 모니터링 전문 기업으로 성장하고 있습니다.#와탭랩스 #와탭 #스타트업 #성공기 #실패기 #아이템 #아이디어 #아이디에이션 #창업초기
조회수 2059

스포카 크리에이터 행동 강령 소개

안녕하세요, 크리에이터 팀 프로덕트 디자이너 강영화입니다. 이번 글에서는 스포카 크리에이터 행동강령을 알리며 스타트업이나 작은 조직의 팀 문화 개선에 작은 도움이 되도록 소개하고자 합니다.저희는 얼마 전 구전되어오던 스포카 크리에이터 팀 문화를 명문화하기 위해 팀 구성원이 머리를 맞대어 행동강령을 작성했습니다. 이 행동강령은 스포카 크리에이터 구성원이 7년간 가꿔온 소중한 조직문화를 계속해서 발전시키고자 하는 약속이자 다짐입니다. 팀 내 모든 사람이 숙지하기로 합의했고, 수습 기간에도 해당 문서에 대해 공유하는 시간을 가집니다.스포카 크리에이터 구성원은 2016년 이후 수면 위로 떠 오른 게임업계 페미니즘 사상 검증, 스타트업 사내 갑질, 스타트업 대표 사내 성폭력 등 위계에 의한 폭력이 용인되는 현상을 규탄합니다. 또한 이제는 이런 일이 벌어지지 않도록 더욱 적극적인 테크 업계 내 자정 운동이 필요하다고 믿습니다. 이번 행동강령은 지난2018 Women Techmakers Korea에 참여하며 상반기 내 실천하기로 한 액션플랜의 일부입니다.행동강령을 의도대로 이해하는 데 도움이 되도록, 다양한 커리어 배경을 가진 구성원 모두가 사회생활을 하며 보고 들은 실제 사건에 대해 예시를 모아보았습니다. 취합된 내용을 바탕으로 어떤 사람이 말하거나 행동했는지 특정되지 않도록 재작성 했습니다. 행동강령에는 “OO는 하지 마세요.”, “OO를 하세요.” 같이 do와 don’t가 모두 적혀있지만 권하는 일은 예시 없이도 이해가 쉬울 것 같아 권하지 않는 일에 관해서만 소개해봅니다.Spoqa Creators’ Code of Conduct스포카 크리에이터 구성원이 업무 중에 지켜야하는 기본 강령입니다.1. 차별 금지다양성을 존중하고 소속, 출신 지역, 성별, 외모, 나이, 장애 여부, 인종에 따른 차별을 금지합니다.다른 팀원의 종교 및 정치적 성향을 존중하고 이에 대한 강요나 공격적 언행을 하지마세요.나이와 성적 지향, 성별 등을 먼저 묻는 일을 삼갑니다.옷차림을 부정적으로 평가하지 말고, 어떤 경우에서라도 얼굴이나 체형 등 타고난 외모에 대한 평가는 피해 주세요.아래 예시 처럼 차별성 발언을 하는 경우.“여자(남자)친구 있으세요?”“OO씨는 고졸이시네요? 고졸인데 벌써 사회생활을 하고 기특하네.”“집에서 애나 볼 것 이지….”“솔직히 OO씨가 예쁜건 아니죠”2. 커뮤니케이션 예의피드백을 포함한 업무 커뮤니케이션의 궁극적인 목적은, 우리의 미션과 업무를 잘 해내기 위함입니다. 효과적이고 성공적인 방향으로 업무를 진행하기 위해 서로 활발히 커뮤니케이션 합니다. 다만 아래 사항을 조심해, 불필요한 갈등을 방지하고 서로 신뢰를 쌓을 수 있도록 노력합시다.의사소통에 있어서 예의 바르고 건설적인 태도를 늘 보여주세요.개인적인 인신공격이나 목소리를 올려 화내는 행동을 하지 마세요. 모든 사람은 공동체의 책임을 져야 하고, 서로에 대한 긴장을 완화하고 가능한 한 빨리 부정적인 맥락을 멈추기 위해 다 함께 노력해야 합니다.협력하고 함께 참여합시다. 우리는 서로에게 많은 것을 배울 수 있습니다. 지식을 공유하고 서로서로 도와주는 환경을 함께 만들어 주세요. 배우려는 동료에게 자신이 알고 있는 지식을 친절하게 알려주세요.직접 이야기하지 않고 텍스트만 봤을 때, 화자의 의도를 넘겨짚어 생각하지 않도록 합니다. 의문이 있는 경우 직접 물어볼 수 있도록 하고, 필요한 경우 상급자나 믿을 수 있는 제삼자의 도움을 적극적으로 요청하세요.피드백을 주고받을 때 기본예절을 지켜주세요. 공격적인 메시지를 전달하는 것을 금지합니다. 단어 선택에 신중하고, 경멸하는 명칭이나 인신공격성 단어 선택을 금지합니다.제삼자가 보기에 기분이 나쁜 코멘트를 볼 경우 옆에서 지적하길 권장합니다. 당사자는 코멘트를 듣는 입장에서는 지적하기 쉽지 않습니다. 지적을 들었을 때 발언자는 해당 지적을 악의적으로 받아들이는 대신 발언에 부적절한 부분이 있지는 않았는지 돌아보도록 합니다.자신의 의견이나 업무 결과물에 대한 평가를 자신에 대한 평가로 받아들이지 않는 동시에, 다른 사람의 의견이나 업무 결과물에 대해 말할 때도 최대한 인격적 비난으로 여겨질 수 있는 발언을 피하도록 노력해야 합니다.동료에 대한 부정적인 피드백이나 인신공격성 발언을 공개적으로 SNS에 올리는 일을 하지마세요. 그 대신, 사람이 아닌 문제가 됐다고 여겨지는 특정한 행동 방식에 대해서만 회고, 워크샵 등을 통해 발전적으로 토론하는 방향으로 문제를 함께 해결하세요.나이가 어리다고 해서 예의를 지키지 않고, 반말부터 다짜고짜 하는 경우.회의 시간에 목소리를 올려 화를 내거나 물건을 던지는 행동을 함.질문을 던지면 아무 설명 없이 매뉴얼 링크만 올리는 경우.작업물에 대해 다른 직원앞에서 “이렇게 밖에 못하나?” 라는 수치심을 주는 피드백을 하는 경우.3. 업무 시간각자 업무 시간을 동료들에게 효과적으로 공유해야 합니다. 업무 시간을 공유하는 과정은 단방향으로 통보하는 행위가 아닌, 팀원들과 나의 업무 시간을 합의하는 과정입니다. 이를 숙지하고 대화하세요.개인이 공유한 업무 시간 외 문자, 전화 통화로 업무 얘기를 삼갑니다. 이는 개인의 여가생활을 침해하지 않기 위함입니다.업무량이 너무 많아 추가 근무가 필요하면 충분히 상급자와 얘기하여 적절하게 조정하길 권합니다. 오거나이저 및 팀원은 지나친 업무량에 일부 인력이 지속해서 노출되지 않도록 협력하세요.정규 근무 일정에 근무하는 케이스가 아님에도 당일 오전까지 자신의 근무 시간이 전혀 공유되지 않는 경우.4. 회의회의 시간에 지각하지 않도록 노력하세요.스포카 크리에이터는 함께 만나야 하는 회의, 그렇지 않은 회의를 구분해 적절한 방식으로 회의를 진행합니다.필요한 아젠다가 아닌 내용은 회의 시간 이후에 대화할 수 있도록 합니다.회의 자리에 없는 팀원에 대해 부정적인 피드백을 하지마세요.빠른 피드백을 주고받아야 하는 상황에서 대면 회의를 스케쥴링 했는데 자신의 리모트 일정을 우선시해 행아웃 미팅으로 변경하는 경우.5. 정보 공개의 원칙정보를 독점하지 마세요.의사소통 과정을 투명하게 공개하고, 그 모든 과정은 일목요연하게 모두가 볼 수 있는 곳(e.g. 사내 위키, 이슈트래커 등)에 기록하세요.회사 로드맵이 결정되는 회의에 참여한 상급자가 해당 내용을 직원들이 알 수 있게 공개하지 않음.6. 크레딧 표시자신이 하지 않은 일을 자신이 한 것처럼 포장하지 마세요.팀장과 파트장은 주어진 업무를 잘 해낸 실무자에게 충분한 감사를 표현하세요.또한, 팀장 및 파트장은 업무를 잘 해낸 사람에게 충분한 포상이 주어질 수 있도록 최선을 다해 노력해야 합니다.‘가 프로젝트’ 업무가 성공적으로 완수되자, 그 프로젝트의 초기에 1% 이하로 참여한 OO는 자신이 대부분 기여한 것 처럼 SNS에 올림.회사 업무를 잘 해내는 사람에 대해 상급자가 긍정적인 코멘트를 하나도 하지 않고 당연하게 생각하는 경우.7. 사생활 보호스포카 모든 구성원의 사생활은 보호되어야 합니다.팀장과 파트장은 팀원이 SNS에 올린 사적인 내용과 정치적 성향, 회사에 대한 평가 등을 업무평가나 인사고과에 반영할 수 없습니다.스포카 모든 구성원은 업무시간 외 시간을 원하는 사람과 어울릴 수 있습니다. 여가를 스포카 구성원과 보내지 않기로 정했다고 해서 업무평가나 인사고과에 불이익을 받을 수 없습니다.최근 여러 게임회사에서 발생하는 다음 예시 같은 일. 일러스트레이터가 SNS에서 페미니즘 관련 계정 활동에 ‘좋아요’나 ‘리트윗’ 만으로 해당 일러스트레이터의 그래픽을 게임에서 삭제하는 경우. 혹은 회사 게시판에 해당 직원의 신상을 유포하고 반사회적 페미니즘에 대해서 질답하는 게시글을 올리는 경우.수습 직원의 SNS에서 회사 서비스에 대한 안좋은 평가에 대해 사찰하고 해당 내용을 빌미로 수습을 그만두라고 일방적으로 통보함.8. 상급자와 하급자 사이의 커뮤니케이션 예의현실적으로 팀장과 파트장 및 연차가 오래된 사람이 다른 사람보다 많은 발언권을 독식하는 현상이 나타납니다. 또한, 나이가 많거나 남성인 경우 나이가 어리거나 여성으로 패싱되는 사람보다 발언에 무게가 실립니다. 대화할 때 이러한 현실을 인식하고 대화할 수 있도록 합니다. 상대방과 나 사이의 관계를 먼저 파악하고 만약 자신이 더 권위자라면 자신의 발언에 더 무게가 실림을 인지합니다. 권위 있는 발언을 조심하지 않으면 동료에게 폭력이 될 수 있음을 인지하고 더욱 조심히 행동하세요.여기서 발언권과 권위가 상대적으로 많은 사람을 “상급자”로, 적은 사람을 “하급자”로 칭합니다.상급자는 하급자에 대한 부정적인 내용을 공개적으로 SNS에 올리지 않도록 합니다. 이 내용은 하급자로 특정하는 단어는 물론, 하급자로 가정할 수 있는 단어 혹은 하급자가 진행한 프로젝트에 대한 내용을 포함합니다. 권위 있는 상급자가 하급자에 대해서 부정적인 내용을 공개하는 행위는 부당한 평가 등 부정적인 영향력을 행사할 수 있기 때문입니다. 이는 당사자인 하급자뿐 아니라 비슷한 위치에 있는 사람에게까지 부정적인 영향을 줄 수 있습니다.상급자는 하급자에게 업무에 필요한 대화 외 친분을 위한 대화나 어울림을 강요하지 마세요.상급자는 친분에 따라 하급자를 평가하지 않으며 오직 업무에 대해서만 평가하세요. 친분이 업무평가나 인사고과의 기준이 될 수 없습니다. 상급자는 친분에 따라 하급자를 평가하는 발언을 하지 않았나 늘 자신을 돌아봅시다.상급자와의 식사 자리에서 술, 특정음식 강요.회식자리에 연인과의 성생활에 대한 아젠다 등 대답하기 곤란한 주제로 상급자가 먼저 이야기를 꺼내는 경우.상급자가 자기 부정적인 기분 상태에 대해서 특정 팀원 OO에게 지속적으로 얘기하고 잘 들어주기를 요구함.이 문서는Github 저장소에 올려 관리합니다. 그리고 이를 발표하는 일회성 포스트로 끝내지 않고 계속해서 함께 개선할 예정입니다.우리가 공유한 문서를 계기로 더 많은 조직과 모임에서 비슷한 움직임이 생기기를 기대합니다. 마지막으로 모두가 안전한 조직문화를 위해 노력한 가시적인 노력의 결과를 한 가지 소개하며 이 글을 닫겠습니다.작은 조직에서 성평등 실천하기: 2018년 4월 8일 카페 나하에서 열린BIYN 리-런칭 파티(BIYN 제13회 총회)때 발표한 BIYN(기본소득청‘소’년네트워크) 성평등 약속문을 만드는 과정 및 결과 공유 자료입니다.#스포카 #기업문화 #조직문화 #행동강령 #성평등 #차별금지 #커뮤니케이션예절
조회수 1598

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

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

기업문화 엿볼 때, 더팀스

로그인

/