스토리 홈

인터뷰

피드

뉴스

조회수 888

크리에이티브 요정 살려내기(나에게 힘을 줘...)

디자이너뿐만 아닙니다. 마케터는 새로운 이벤트고민,콘텐츠제작자는 뭘 만들어야 잘만들었다고 소문이 날지,기획자는 무슨 프로그램 짜야하나..강사들은 어떤 커리큘럼 만들어야 애들이 잘 알아들을까..등등. 뭔가 나만의 것을 만들어내는 사람들이라면 모두 이 요정님을 간절하게 기다리게 됩니다. 크리에이티브함이란 것이 참 멋지고 찰진 단어이지만 그 현실은 그렇게 또 아름답지만은 않습니다. 사실 크리에이티브의 뜻이 '창조적인' 이란 의미라서 흔히들 '창조' 에 포커스를 맞추곤 합니다. 뭔갈 뿅! 하고 만들어내는 그런 의미로 말이죠. 크리에이티브는 뿅!이 아닙니다. 백지에서 시작하는 것이 아니라 널브러진 수많은 단서들에게서 힌트를 찾고 조합하고 변형시키는 것에 가깝죠. 영화에서처럼 관자놀이에 번개가 내려치면서 눈이 휘동그래지는 그런 장면도 연출되지 않아요. 이런거없음크리에이티브함은 오히려 변덕과 괴팍하고 지랄맞은 성격의 산물과도 가깝습니다. 자꾸 사물을 고깝게 바라보고, 삐딱하고, 질문을 던지고, 주워들은게 많고, 본 게 많은데다가, 자기주장도 있고, 취향도 확고해야 하죠. 우리가 인식하는 어떤 것이든 내 필터를 스윽 통과하면서 일종의 변형을 일으키게 되는데 그 차이를 발견하고 정돈하는 능력이 크리에이티브함이라고 말하고 싶습니다.그래서 이 녀석은 얼핏 매우 감성적인 것처럼 보이는 단어지만, 사실 상당히 논리적이에요. 자료를 찾고, 모으고, 수집한 후, 변형하고, 정돈하여 드러내는 과정이니까요. 이 모든 행동에 맥락이 없으면 그냥 그건 공상이 되버리고 맙니다.팩트폭격기당연히 이러한 활동은 두뇌에서 이루어집니다. 하지만 두뇌는 꽤나 게으른 녀석이예요. 주인의 명령을 잘 듣지도 않죠. 그저어어...편한 것만 찾고 하던 것만 하려고 안간힘을 씁니다. 이토록 마구니가 가득 차있는 머릿속에 강렬한 법봉의 짜릿함이 전달될 때가 있습니다. 여러분들은 잘 모르겠지만 그게 바로 요정님이 오신거예요. 요정님이 오시면 일단 다양한 능력치가 상승합니다. 그리고 순간적으로 강력한 집중력과 기발함 보너스가 주어집니다. 물론 그 시간은 굉장히 제한적이고 조건이 까다롭긴 합니다.그래서 오늘은 이 요정님의 특성과 생존시간을 늘리는 방법을 알아보도록 하겠습니다.1. 요정님은 15분의 예열시간이 필요합니다. 일단 책상에 앉으면 유튜브부터 켜지말고 대지 만든 뒤에 15분간 이래저래 안내선이라도 만들어놓도록 합시다. 15분간 그러고 있으면 어느새 스멀스멀 이런 저런 구성과 배치가 떠오르게 된답니다. 운동하기전엔 스트레칭을 쭉쭉해야 해요. 뚜둑뚜둑 소리도 내고 오백년간 잠들어있던 육신의 먼지를 조심스레 벗겨내듯 근육들을 이완시켜줘야 사고가 안나잖아요. 두뇌도 신체기관인 만큼 비슷한 과정을 거칩니다. 당을 끌어올려 부스트업도 시켜야 하고 전기신호의 파장도 바뀌기 시작합니다. 혈류량을 늘리고 호르몬에도 변화가 찾아오죠. 몸이 학습이나 업무에 적합한 모드로 변할 수 있는 최소시간!!~~이 필요하단 거에요. 처음부터 '앞으로 20시간동안 쉬지 않고 일을 해보자!' 라는 굳은 의지를 다지면 의지처럼 그냥 몸이 굳어버립니다. 부담없이 딱 15분만 하고 끝내자~라는 마인드여야... 시작도 수월하게 할 수 있죠. 그리고 막상 15분이 지나면 내려오기 좀 찜찜할 정도로 살짝..집중이 되어있는 상태가 되어있을 거예요. :)어 지금 나가.. 주섬주섬2. 뭔갈 먹읍시다. 다만 일하는 도중엔 먹지 마세요. 요정님은 빌리엔젤 케익과 초코퐁당같은걸 굉장히 좋아하시긴 하지만... 그건 팝콘같은거라고 생각하시면 좋을 듯 합니다. 예고편 나올 때 다 먹는거죠. 본 작업이 시작되면 잘해야 커피나 쪽쪽거리던가 아니면 껌 정도가 딱 좋습니다. 사실 당을 우걱우걱 섭취하는 게 학습에 있어서 딱히 좋은 것인지는 논란의 여지가 있습니다. 혈당변화가 급격하게 진행되면 피로감이 우르르 찾아오죠. 시험전에 마시는 마법의 포션(레드불과 스누피커피우유 등등....괴랄한 혼합음료까지..)은 오늘의 나를 불태워 내일은 소멸에 이르게 만드는 거대한 흑마법과 같아요. 그러니 과다한 당충전은 내일의 생존을 보장할 수 없습니다. 다만, 턱을 오물오물 씹어주는 건 두뇌를 자극시켜 각성시키는 효과가 있으니 오독오독 거리는 무언가를 먹어보도록 합시다.  그리고 시작하면 왠만하면 책상에서 먹을 건 치우는 게 좋더라구요. 사람은 환경에 적응을 잘하는 동물인데, 내 주변환경의 역할에 대해 의미부여를 하길 좋아합니다.침대는 자는 곳책상은 일하는 곳화장실은 쉬하는 곳.등등...각각의 장소에 정해진 행동들이 습관으로 굳어져있죠. 그런데 자꾸 책상에서 뭔가 쭈서먹으면서 일하게 되면......머지 않아 앞으로도 책상에만 앉으면 배가 고파지는 파블로프 강아지 효과를 체험하실 지도 몰라요. 더불어 일하면서 이것저것 쭈서먹으면 온 키보드에 마우스에 태블릿에 기름이나 묻히고 일은 일대로 안되더라구요. (물론 개인차는 있습니다.)조..좋은 먹이다!!!3. 요정님은 성격이 급합니다. 빨리빨리!!! 어서 내가 원하는 시간에 딱딱 목업이 다운받아져야 합니다. 포토샵도 챡챡 켜져야하고 외장하드도 버벅대선 안됩니다. 뭔가 막히는 것들. 그러니까 와이파이가 안된달지, 컴터가 갑자기 업데이트를 해버린다던지...아니면 컴터가 꼬져서 파일 저장하는데 한나절 걸린다던지..이러면 요정님은 금새 떠나버리십니다. 사람의 집중력은 생각보다 쉽게 흩어지는데.. 집중력을 유도하는 것은 무언가 움직이는 사물/이미지의 존재입니다. 안구는 끊임없이 진동하며 초점을 맞추고 있는데 빙글빙글 돌아가는 로딩바만 뚫어져라 보고있으면 눈이 엄청나게 피곤해져요. 자고싶죠. 또한 멈춰있는 사물말고 자꾸 다른 곳을 보려고 하는 안구운동효과 때문에 옆에 있는 광고에 자꾸 눈이 가게 됩니다. 그러니 쓸데없는 처리속도를 줄이는 좋은 장비를 사도록 합시다. 돈 벌어서 다 장비에 쏟는 게 디자이너의 인생이죠.내..내놔!!!4. 노란색을 좋아합니다. 요정님은 노란조명을 좋아합니다. 노란색 파장은 눈을 편하게 해줍니다. 게다가 파장이 길어서 심신의 안정감을 주기도 하죠. 거기에 간접조명이라면 한결 공간을 부드럽게 만들어주기 때문에 묘한 갬성에 젖을 수 있습니다. 노란색 조명을 쓰되, 스탠드불빛은 천장에 쏘도록 합시다.5. 살짝 졸릴 때.. 눈이 막 감겨버리는 그런 상태말고. 약간 멍때리게 되는 그런 상태가 종종 있어요. 영혼먼저 이불속에 들어간 듯한 느낌이죠. 사실 이렇게 비몽사몽할 때 무의식과 의식의 경계가 흐릿해지면서 구석에 쳐박혀있던 기억이나 미쳐 정리하지 못한 수많은 정보들이 뒤죽박죽 섞이게 됩니다. 크리에이티브함은 최대한 많은 단서들을 충돌시켜 스파크를 일으키는 게 중요한데, 이렇게 넋이 나간 새벽3시 정도엔 자연스러운 스파크를 잘 만들어낼 수 있습니다. 심지어 이러한 효과때문에 살짝 잠결에 공부하는 게 다음날 기억에 더 오래 남는 다는 연구결과도 심심치 않게 들리곤 하죠. 이덕분에 꽤나 기발하고 신박한 레이아웃을 구상해 낼 수 있습니다. 다만 15분만 지나면 졸려서 더 이상 일을 못한다는 게 단점이죠.졸려..죽어....6. 끊임없는 정보쌓기는 정말 중요합니다. 새벽3시에 일을 하지 않는 경우. 벌건 대낮에 그 분을 소환하는 가장 좋은 방법으론 서점, 사람구경, 핀터레스트 구경하기, 매거진 보기, 딴짓하기, 창밖보기, 쇼핑하기 등등이 있습니다. 사실 일 말고 대부분의 딴짓은 모두 단서가 될 수 있습니다. 디자인은 컴터켜고 모니터를 보고 하는 게 아니더라구요. 뭔가 시안요청을 받으면 일단 서점에 가서 요리책이든 여행책이든 잡다한 정보들을 우르르 집어넣고 섞는 작업부터 합니다. 쌩판 하얀 백지에서 뭔가를 만들려고 하면 미칩니다. 흰 종이엔 사실 아무것도 없어요. 인풋이 없으면 아웃풋도 나오기가 힘들죠. 인간의 기억체계는 연상하고 꼬리잡기를 좋아해서 뭔가 단서를 넣어줘야 해요. 그래서 음악을 들으며 음악에 관계된 이미지나 기억을 유도하기도 하느 거거든요. '단서를 주세요.' 상상력으론 확실히 힘든 감이 있습니다. 더군다나 지금까지 본 게 많았더라도 당장 생각나지 않으면 소용이 없거든요. 일 해야 하잖아요. 그러니 잠재된 고대의 기억을 다시 리마인드 시켜주는 게 정말 중요합니다. 그래서 딴짓을 (몰래) 권장하는 바입니다.대학일기 자까님 한번만 쓸께요 :)7. 부정적인 감정은 요정님이 좋아하는 굉장한 에너지원입니다. 빡침, 열등감, 인정욕구, 승부욕, 자괴감 등등은 아주 훌륭한 자원이죠. '저 놈에게 이기기 위해서!' '팀장님께 잘보이려구!' '난 멍청한 해삼자식이야!' 등등의 마인드는 얼핏 되게 나빠보이지만, 또 막상 그렇지만도 않습니다. 사실 저런 마음 안들어본 사람이 몇이나 있겠습니까. 어차피 승부욕이나 인정욕구, 열등감은 평생친구입니다. 기왕 데리고 살거면 잘 활용해보는 것도 좋습니다. 역설적으로 이렇게 들끓는 감정들은 지속적인 불안감을 유도하게 되는데, 사람이 뭔가 행동을 하는 이유는 대다수가 '불안해서' 입니다. 불안함은 현재의 드러누움보다 뭔갈 만들어야해! 배워야해! 새로운 걸 해야해! 라고 나를 부추깁니다. 친절하진 않지만, 거칠고 행동력 좋은 친구죠. 게다가 이러한 감정들은 에너지가 굉장히 커서 가끔 육체의 한계를 뛰어넘기도 합니다. 그리고 내 실력의 한계나 그냥 생각의 한계, 또는 이성의 끈으로 잡고있던 굴레를 끊어버릴 수 있게 만들어주죠. 요정님 눈이 붉게 빛나며 광전사로 변하는 순간입니다.(주로 빡치거나 조급할 때 등장합니다.) 각성모드가 되신 요정님은 화장실도 참게 만들더라구요.응 맞아. 덧붙이자면 크리에이티브 요정님은 수줍습니다. 주로 혼자있을 때 얼굴을 내밀죠. 등 뒤에 팀장님이 있으면 안나와요. 있던 요정도 사라지기 마련입니다. 아직 미완인 어떤 것에 대해 평가받는 것은...여러 심리학적인 이유를 들지 않더라도 그냥 신경쓰이고 짜증나는 일이거든요. 디자이너들 책상에 표지판이라도 놔드려야 할까봐요. '요정님 강림중' 이런거...혼자냥?...나간다?https://www.facebook.com/readingjiaxi/videos/2016388665072946/헤헤..이번에 제 책이 책읽찌라 페이지에 소개되었어요 :) 히히.... 함일거바! 이거 엔딩멘트 넘나 좋은 것.
조회수 737

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

비트윈에서는 서비스 초기부터 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와 크게 다르지 않습니다.저희는 언제나 타다 및 비트윈 서비스를 함께 만들며 기술적인 문제를 함께 풀어나갈 능력있는 개발자를 모시고 있습니다. 언제든 부담없이 [email protected]로 이메일을 주시기 바랍니다!
조회수 578

목표 달성을 위해 왜 협업툴이 필요할까요?

안녕하세요 협업툴 플로우입니다.2021년 2분기가 지나고 어느덧 8월입니다. 벌써 2021년의 반이 지나갔습니다. 다들 올해 정한 개인의 목표는 얼마큼 이루셨나요? 저는 상반기에 수영을 배우려고 했지만 코로나로 인해 아직 시도조차 못했습니다. 개인의 목표와 마찬가지로 회사에서도 매년 목표를 정하고 달성률을 체크하는데요. 이번 포스팅은 기업 목표를 달성하기 위해 필수 조건인 협업툴에 대해 알아보려 합니다.협업툴이란 무엇인가?협업툴이란 여러 사용자가 별개의 작업 환경에서 하나의 프로젝트를 동시에 수행할 수 있도록 만들어주는 소프트웨어입니다. 새로운 개념 같아 보이지만 협업을 위한 솔루션은 이전부터 존재했는데요. 전화, 팩스 그리고 우리에게 익숙한 이메일도 커뮤니케이션을 위한 툴이나 협업툴의 한 축으로 볼 수 있습니다. 이후 무선 인터넷과 개인 모바일 기기의 보급이 가속화 되면서 협업툴에도 변화가 생기기 시작했는데요. 바로 우리가 가장 많이 사용하는 메신저 형태 협업툴의 출현입니다.협업툴하면 메신저 형태의 소프트웨어라고 생각하시는 분들이 많습니다. 협업툴을 영어로 하면 콜라보레이션 툴인데요. 단순히 커뮤니케이션만 가능한 메신저의 협업툴이 아닌 파일과 문서를 주고받고 음성/화상 회의가 가능하고, 업무를 등록하고 (To-Do-List) 관리하는 콜라보레이션 툴이 진정한 협업툴이라고 할 수 있습니다. 단순한 사내 메신저가 협업툴이라고 생각하면 큰 오산입니다!왜 협업툴을 도입해야 하나요?이메일과 USB, 외장 하드로 업무를 주고받으며 잘 쓰고 있는데, 왜 번거롭게 협업툴을 도입해야 하냐고요? 코로나로 인해 재택근무를 하면서 파일이 회사에 있어 곤란했던 적이 있으셨을 겁니다. 갑자기 USB와 외장하드가 뻑나서 자료가 날아간 경험도 있으실 거고요. 이메일을 찾다가 담당자에게 결국 통화를 해서 재전송을 요청했던 일, 카카오톡에서 파일 다운로드 기간이 지나 자료를 날려먹은 경험도 있으실 거고요. 만약 협업툴을 사용하고 있었더라면 어땠을까요?클라우드(SaaS)에 보관된 파일을 언제 어디서나 안전하게 확인할 수 있고 편집할 수도 있었을 겁니다. 정신없게 아무런 규칙 없이 쌓여있는 이메일에서 벗어나 업무별로 분리된 자료를 쉽게 찾아볼 수 있고요.오픈서베이의 업무툴 트렌드 리포트 2021을 살펴보면 연령대가 높을수록 개인 메신저인 카카오톡으로 업무 소통을 하는 경우가 많았습니다. 나이가 낮을수록 사내 메신저를 쓰는 경우가 많았고요. 요즘 젊은 사람들은 일과 개인 생활을 분리하는 걸 중요시한다는 리포트 결과가 아닐까 생각합니다. MZ 세대와 함께 일하기 위해서 앞으로 채용 페이지 한편에 "협업툴을 사용합니다."라는 문구가 꼭 필요할지도 모릅니다. 사족이 길었습니다. 협업툴을 써야 하는 가장 큰 이유는, 일이 편해지고 성과가 올라가기 때문입니다. 업무 성과뿐만 아니라 직원의 만족도도 대폭 올라갑니다.어떤 협업툴을 도입해야 하나요?코로나19가 터지고 난 뒤 국내, 해외 할 것 없이 협업툴이 우후죽순 생겨났습니다. 앞서 협업툴의 개념에 대해 이야기해 드렸는데요. 단순히 메신저 기능을 지원하는 협업툴이 많이 생겨났습니다. 메신저만 지원하는 협업툴의 경우에는 의사소통을 하기에 개인용 메신저보다 편할지 모르지만, 기업의 목표 달성과는 거리가 있습니다. 협업툴을 도입할 때 프로젝트 차원의 관리가 되는지 꼭 한번 확인해보셔야 합니다.✅ 메신저형 협업툴슬랙, 팀즈, 카카오워크, 네이버웍스, 플로우, 잔디✅ 프로젝트형 협업툴지라, 아사나, 트렐로, 플로우또 한 가지 고려해야 할 점은, 우리 회사의 정책에 맞는가입니다. 대기업이나 금융사, 법률사무소 등 개인 정보가 중요시되거나 별도의 보안 정책이 있는 기업의 경우 해외 협업툴을 사용할 수 없습니다. 사내에 있는 서버에 설치를 해서 내부망에서만 운용을 해야 하죠. 흔히 말하는 인트라넷만 가능한 대기업에서는 협업툴을 사용하기 어려웠습니다. 하지만 협업툴 플로우의 경우에는 서버 설치형 (온프레미스)가 가능하기 때문에 많은 기업에서 사용 중에 있습니다.일의 효율과 생산성을 증가시키고, 직원들의 스트레스를 줄일 수 있는 방법 중 하나는 협업툴의 도입이 아닐까 생각합니다. 백 번을 설명해도 한 번 써보고 체험해보는 게 중요합니다. 협업툴을 도입해서 2021년 하반기에는 꼭 목표 달성을 하시면 좋겠습니다.협업툴 플로우 바로가기
조회수 1627

박문수 이야기

출근 첫날 이효진 대표님으로부터 입사 지원 메일을 하나 전달받았다. 이력서를 살펴보니 컴퓨터를 전공하지도 않았고, 현재 개발을 하고 있지도 않았지만 개발자로 일하고 싶다고 적혀 있었다. 개발을 할 수만 있다면 인턴부터 시작해도 좋다고 말했다. 남들이 부러워하는 삼성에 다니고 있는데 어떤 이유로 개발자가 되고 싶어 할까? 궁금한 마음에 한 번 만나보기로 했다. (뽑을 생각은 없었다)첫인상은 그냥 수수한 시골 청년이었다. 나도 입사한 지 얼마 안 되어 회사 주위 식당을 몰라 그냥 눈에 띄는 식당으로 들어갔다. (생각해 보니 그 식당을 그 이후로는 한 번도 가지 않았다) 지난 회사에서 어떤 일들을 했고, 왜 개발에 대한 목마름을 느꼈는지를 들었다. 개발자가 되기 위해 어떤 것들을 포기할 수 있는가에 대한 각오도 들었다.나는 앞으로 일 년 동안 인턴 월급을 받아야 할지 모른다고 이야기했다. 정말 열심히 하지 않으면 그저 그런 개발자가 되어 인생이 꼬일지도 모른다고 경고했다. 그런데도 흔쾌히 도전해보고 싶다고 말했고, 나는 배움의 기회를 제공하겠다는 약속을 했다. 좋은 대학을 나와 어렵게 얻은 직장을 포기하고 다시 새로운 길을 선택하려는 용기를 높이 샀다. 입사일은 3주 뒤로 정했다. 파이썬 책과 웹 프로그래밍 기본 책을 던져주고 모두 읽어 오라고 했다.입사 후 정신없이 3주가 지나고 문수님이 입사를 했다. 첫날 개발 환경을 셋업 하는 것을 도와주었다. 나에게는 너무나도 자연스러운 많은 것들이 그에게는 생소한 것이고 설명을 해야 했다. 문수님이 이해할 수 있는 간단한 것만 설명하고 나머지는 더 크면 알게 된다고 설명을 미루었다.(첫날 전체를 대상으로 자기소개를 하는 문수님. 우리 회사에는 입사자가 전체를 대상으로 자기소개를 하는 문화가 있다. 이 문화의 유래에 대해서는 다시 한 번 이야기해 보겠다.)내가 모든 것을 알려 줄 수는 없으니 코세라 수업을 같이 들어 보자고 이야기했다. 내 기준으로는 너무 쉬운 강의였지만 나는 회사 내에서 공부하는 분위기를 만들어 가고 싶었고 문수님께는 회사에서 필요한 기술 스택을 맛보는 기회가 될 수 있으리라 생각했다. (현재 시점으로 3달째 코세라 강의를 이어서 듣고 있다.)첫 강의인 HTML5를 들으면서 간단한 버그 수정부터 문수님께 요청을 하기 시작했다. 오자를 고치거나 박스의 위치를 조정하는 일부터 시작했다. 입사하고 3일이 지나서 첫 번째 배포를 했다. 처음이 어려웠을 뿐 간단한 수정을 하는 것에는 일주일이면 충분했다. 그때부터는 git과 git flow를 알려주기 시작했다. 착한 신입은 마음이 열려 있어서 불만 없이 모든 것을 따라 했다. 어느 정도 이해를 했는지는 알 수가 없다. 하지만 프로그래밍을 배우는 길에는 머리보다 손이 먼저 익히는 것들도 많다.3주가 지난 시점에는 첫 번째 데모를 전체 앞에서 보였다. (우리는 스크럼을 하고 있어서 매번 스크럼이 끝나는 날에 개발자가 스스로 자신이 개발한 것을 전 직원 앞에서 데모를 보인다.) 지금은 잠깐 문을 닫은 채권 거래소에서 채권 판매자가 손쉽게 채권을 팔 수 있는 기능이었다. 그것을 만들기 위해 일주일 넘게 꽁꽁 머리를 싸매고 있었고, 결국은 결과물을 내놓았다.(첫 번째 데모를 보이는 문수님. 긴장한 모습이 느껴진다. 데모를 마치고 다들 뜨거운 박수를 보내주었다)내가 만들면 2시간이면 끝났을 기능이라 일주일간 고생하는 것을 옆에서 지켜보는 것은 상당한 인내를 필요로 했다. 하지만 최대한 혼자만의 힘으로 첫 번째 과제를 해내기를 원했기에 최소한의 도움만을 주었다.이제 문수님이 입사한 지 만 3개월이 되었다. 그동안 많은 변화가 있었다. 회사에서 조그마한(점점 커지고 있다) 수정/기능들은 대부분 맡아 주고 있기에 다른 개발자들은 좀 더 어려운 문제를 풀 수 있게 되었다. 처음에는 코드 리뷰를 온라인으로 할 수가 없었다. 옆에 앉아서 어떤 부분을 어떻게 고쳐야 하는지를 구체적으로 알려 주어야 했고, 이해하지 못하면 관련된 지식을 얻을 방법을 알려 주어야 했기 때문이다. 하지만 이제 github의 PR을 보고 코멘트를 다는 것 만으로 코드를 적절히 수정할 수 있게 되었다. 얼마 전에는 하루에 1억이 넘는 이체를 하는 내부 시스템을 80% 이상 만들기도 했다. (내가 뼈대는 잡아 주기는 했다.)개발자라 부를 수 있는 기준이 따로 있겠냐만은 나는 이제 그를 개발자라 부를 수 있을 것 같다. 아마도 오늘의 문수님에게는 “개발자 박문수 님”이 가장 듣고 싶은 호칭이 아닐까 생각한다.  마지막으로 전공하지도 않았고, 첫 직장과도 관련 없는 새로운 도전을 하는 문수님의 용기에 박수를 보낸다. 내게 말하지는 않았지만 수많은 주위의 걱정과 우려를 이겨내기 위해 최선을 다하고 있으리라 생각한다. 나는 앞으로 그에게 “문수님은 지금 어디로 가고 있나요?"를 종종 물어봄으로 내 역할을 해야겠다.8퍼센트는 멋진 저희 팀과 함께 할 분들을 찾고 있습니다. 특히 저보다 개발을 잘 하시는 시니어 개발자, 그리고 3년 뒤에는 저 보다 잘하게 되실 주니어 개발자는 제가 모시러 갑니다. [email protected]로 연락 주세요.박문수 님이 이체 시스템 개발을 할 때 Toss의 이체 대행 API를 사용했습니다. 정말 간편합니다. 관련 개발을 하시는 분들은 사용해 보세요.#8퍼센트 #에잇퍼센트 #채용 #채용후기 #개발자 #개발자채용 #인턴 #인턴채용 #스타트업CTO
조회수 4898

웹서버 로그 수집과 모니터링 설정

우리는 고객이 무엇에 관심 있어 하고 무엇에 관심 없어하는지, 어떤 것을 보았을 때 클릭해 들어가고 어떤 것을 보았을 때 사이트에서 이탈하는지 궁금해 합니다. 이러한 정보를 얻기 위해 봐야 할 것은 역시 웹서버의 접속 로그입니다.처음에는 매일 생성되는 로그 파일을 일일이 파싱해서 원하는 정보를 DB에 쌓는 방법을 이용했지만, 이러한 방식은 한계가 있었습니다. 저장할 수 있는 데이터의 양에 심각한 제한이 있었고, 따라서 처음에 얻고자 했던 데이터 이상의 것을 새로 추출할 수도 없었습니다.그래서 지금은 웹서버 로그를 하둡(Hadoop) 클러스터에 쌓고 있습니다. Google Analytics 같은 외부 분석툴을 사용하기도 하지만, 아무래도 데이터를 우리 손에 직접 들고 있는 것이 더 유연한 분석을 제공할 수 있지요. 클러스터에서 로그를 분석하려면 가장 먼저 로그 수집 시스템을 만들어야 합니다.이번 포스팅에서는 이 로그 수집 시스템이 어떻게 만들어져 있는지, 그리고 그보다 더 중요한 시스템의 모니터링을 어떻게 하고 있는지 설명하려고 합니다.Flume 에이전트 설정하기Apache FlumeApache Flume은 로그와 같은 데이터의 흐름(streaming)을 제어할 수 있게 해주는 도구입니다. 단순하면서도 확장성 높은 구조로 되어 있기 때문에 많은 시스템에서 채택하는 도구가 되었고, 리디북스에서도 Flume 을 사용하게 되었습니다.Flume 의 기본 구조는 단순합니다.기본적인 에이전트 구성 (이미지 출처: Apache Flume 홈페이지)에이전트(agent)는 Source, Channel, Sink 로 이루어진 자바 프로세스이다.소스(source)는 외부에서 이벤트를 입력받아 채널(channel)로 전달하고, 채널은 이벤트를 저장하고 있다가 싱크(sink)로 전달한다. 싱크는 이벤트를 외부로 출력한다.한 에이전트의 Sink와 다른 에이전트의 Source가 같은 타입이면, 에이전트 간에 이벤트를 전달할 수 있다.굉장히 간단하지만 강력한 모델입니다. Flume 은 Avro, Thrift, Exec, HDFS, Kafka 등 다양한 라이브러리를 적용한 소스와 싱크를 미리 제공하고 있기 때문에, 사용자는 자기 입맛에 맞게 이를 조합해서 시스템을 구성할 수 있습니다.예를 들면 아래와 같습니다.좀 더 복잡한 에이전트 구성 (이미지 출처: Apache Flume 홈페이지)초기 에이전트 구성: Avro를 통해 클러스터에 로그 전송저희가 맨 처음 설정한 Flume 에이전트의 구성은 다음과 같습니다.초기 에이전트 구성각 웹서버ExecSource: exec 명령으로 실행된 프로세스의 표준 출력을 이벤트로 입력받음. (tail -F <로그파일>)MemoryChannel: 메모리상의 큐(queue)로 구현된 채널AvroSink: 클러스터에 상의 에이전트가 실행하는 Avro RPC 서버로 이벤트를 전송하둡 클러스터AvroSource: 웹서버의 에이전트가 Avro RPC 로 보내는 이벤트를 수신MemoryChannelHDFSSink: HDFS 상의 지정된 경로의 파일에 이벤트 내용을 출력각 웹서버에는 에이전트가 하나씩 실행되어서, 로그 파일에 새로 추가되는 로그를 클러스터에 전송합니다. 클러스터 상의 에이전트는 단 한 개 존재하는데, 웹서버로부터 전송받은 로그를 HDFS(Hadoop File System) 에 파일로 출력하는 역할을 합니다. 웹서버 에이전트와 클러스터 에이전트 간의 통신은 Avro RPC 로 하게 하였습니다. Flume 에서 기본적으로 AvroSource 와 AvroSink 를 구현하여 제공해 주는 것을 이용했습니다.사실은 클러스터 상의 에이전트가 Avro 서비스를 통해 데이터를 모아 주지 않고, 웹서버 상의 에이전트가 HDFSSink 를 이용해서 직접 클러스터에 파일을 쓰게 하더라도 대부분의 경우는 상관없습니다. 하지만 리디북스의 경우는 그렇게 할 수 없었는데, 왜냐하면 웹서버와 하둡 클러스터가 서로 다른 네트워크 상에 있기 때문입니다.리디북스의 웹서버는 국내 IDC에 존재하지만 하둡 클러스터는 Miscrosoft Azure 클라우드 내의 가상머신으로 실행되고 있습니다. 따라서 하둡의 네임노드(namenode)가 인식하는 각 노드의 사설 IP 주소를 웹서버들이 쉽게 접근할 수 없습니다. 이를 우회하는 다양한 방법을 시도해 보았지만 최종적으로는 Avro 서비스를 중간에 두어 해결하였습니다.모니터링 알람 설정하기JSON 리포팅 사용다음은 에이전트 프로세스를 모니터링하는 문제가 있었습니다. 예기치 않은 에러로 에이전트가 종료되어서 로그가 수집되지 않고 있는데 며칠 동안 모르고 있어서는 안되겠지요.Flume 에서는 모니터링 인터페이스도 여러가지를 제공하고 있는데, 그 중 가장 이용하기 간편한 것은 HTTP 를 통한 JSON reporting 이었습니다. 에이전트 자체가 HTTP 서비스로 작동해서, 특정 포트로 요청을 보내면 에이전트의 상태를 JSON 으로 정리하여 응답을 주게 되어 있습니다. 에이전트 실행시에 옵션 몇 개만 추가하면 바로 설정할 수 있기 때문에 매우 간단합니다.Health 페이지를 이용한 모니터링그런데 이 리포팅이 제대로 나오지 않으면 어떻게 알림을 받을 수 있을까요? 각 서버마다 JSON 리포팅을 요청해서 응답이 제대로 오지 않으면 이메일을 보내는 스크립트를 만들어서 cron 으로 5분마다 실행하는 방법도 있습니다. 하지만 이 스크립트가 제대로 동작하지 않거나, 이게 실행되는 서버가 다운되면?결국 스스로를 믿지 못하고 택한 방법은 외부 서비스 Pingdom을 이용하는 것이었습니다. 단, 외부 서비스가 각각의 웹서버에 직접 접근하여 리포팅을 요청하는 방식은 보안상 문제가 될 수 있어서 아래와 같이 보완하였습니다.웹 서비스 상에 health 페이지 구현. 이 페이지는 각 웹서버의 에이전트의 JSON reporting 포트로 요청을 보내서, 결과를 종합해서 다시 JSON 으로 보여줌.모든 에이전트가 정상적으로 리포트를 보내면 {“status”: “OKAY”} 를, 아니면 {“status”: “ERROR”} 를 보여줌.이 health 페이지의 내용을 모니터링하도록 Pingdom 설정. {“status”: “OKAY”} 가 응답에 없으면 알람 메일이 오도록 함.{ "status": "OKAY", "metrics": { "192.168.0.101": { "SOURCE.log_src": { ... }, "SINK.avro_sink": { "BatchCompleteCount": 562110, "ConnectionFailedCount": 294, "EventDrainAttemptCount": 56246850, "ConnectionCreatedCount": 31, "Type": "SINK", "BatchEmptyCount": 16, "ConnectionClosedCount": 30, "EventDrainSuccessCount": 56243927, "StopTime": 0, "StartTime": 1459135471379, "BatchUnderflowCount": 610 }, "CHANNEL.mem_channel": { ... } }, "192.168.0.102": { ... } } }Health 페이지의 Json내용JSON 리포팅의 문제이렇게 설정해 놓고, 며칠간 로그가 HDFS 상에 잘 수집되는 것을 확인하고 만족해 했습니다. 그런데 며칠간 신경을 쓰지 않은 사이, 다시 에이전트를 확인해 보니 모든 웹서버 에이전트가 죽어 있었습니다. HDFS에 로그도 쌓이지 않았구요.확인해 보니, MemoryChannel 의 설정 문제였습니다. byteCapacity 값을 실수로 너무 작게 설정해서, 채널 큐가 메모리 부족으로 터져나간 것이죠. 해당 문제는 byteCapacity 값을 늘려서 간단하게 해결했습니다.문제는 알람이 오지 않았다는 것이었습니다. 문제를 재현해 본 결과, 채널이 터져서 에이전트 실행이 중단되어도, 에이전트 프로세스는 죽지 않고 ExecSource 에서 실행한 자식 프로세스(tail -F)만 죽어 있었습니다. 이렇게 되면 JSON 리포팅도 정상적으로 나오기 때문에, 결국 JSON 리포팅으로는 이런 유형의 에러를 잡지 못한다는 결론이 나왔습니다.클러스터에 모니터링 설정하기결국 웹서버상에서 모니터링하는것 보다는 데이터를 최종 전달받는 하둡 클러스터 상에서 모니터링하는 것이 안정적이라 판단하였습니다. 다행히도, 하둡 클러스터에서 사용할 수 있는 꽤나 좋은 모니터링 도구가 이미 있었습니다.CDH 의 알람 트리거리디북스에서는 기본 하둡 패키지가 아닌, Cloudera에서 제공하는 하둡 배포판인 Cloudera CDH를 사용하고 있습니다. CDH는 클러스터 상에서 사용되는 서비스마다 각종 테스트를 자동으로 실행하여, 테스트가 통과되지 않을 때마다 메일로 알람을 보내줍니다. 그리고 웬만한 필수 테스트는 기본적으로 설정되어 있지만, 사용자가 커스텀 서비스를 직접 제작할 수도 있습니다. CDH가 각 에이전트의 소스, 채널, 싱크마다 초당 전송한 이벤트 개수 등의 측정치(metric)을 모두 기록하고 있기 때문에, 이 값들이 일정 수준 이상/이하가 될 때마다 알람이 트리거되도록 설정할 수 있습니다.CDH의 알람 트리거 편집 화면웹서버마다 알람 설정하기그런데 이것으로 끝이 아닙니다. 클러스터 에이전트는 각 서버에서의 트래픽이 모두 모이는 곳이기 때문에, 여기에서 모니터링을 하는 것은 웹서버 상에서 모니터링하는 것보다 기준이 애매해집니다.10대의 웹서버 중에 한 대만 문제가 생겼을 경우, 클러스터 에이전트가 받는 트래픽은 0으로 줄어드는 것이 아니라 90%로 줄어듭니다. 알람을 트리거하는 역치(threshold)를 평소 트래픽의 90%로 잡아야 한다는 것이지요. 그런데 트래픽이라는 것이 원래 날짜와 시간에 따라 달라지기 때문에, 이 역치값을 고정된 값으로 정할 수가 없습니다. 트래픽이 높은 때를 기준으로 하면, 트래픽이 낮아지는 새벽 시간마다 가짜 알람(false alarm)이 오게 되겠지요. 그렇다고 트래픽이 낮은 때를 기준으로 하면, 트래픽이 높은 때 웹서버 에이전트가 죽더라도 새벽이 될 때까지 알 수 없습니다.결국 클러스터 단에서도 각 웹서버마다 트래픽을 구분해 주어야 한다는 결론이 나옵니다. 다행히 한 에이전트가 여러 개의 채널과 싱크를 가질 수 있고, 이벤트 헤더의 내용에 따라 소스가 어느 채널로 이벤트를 보낼지 결정해 주는 채널 셀렉터 (Channel Selector)라는 것이 있습니다.웹서버 에이전트의 소스에서는 각 이벤트 헤더에 자기 호스트명을 달아 준다. (Interceptor 는 각 이벤트에 원하는 헤더를 달아주는 역할을 한다. HostInterceptor 이용)클러스터 에이전트는 1개의 소스와, 웹서버 대수만큼의 채널 및 싱크가 있다.클러스터의 소스는 이벤트의 host 헤더를 보고 그에 해당하는 채널로 이벤트를 전달한다. (MultiplexingSelector 사용)각 채널은 자신에게 대응되는 싱크에 이벤트를 전달하고, 싱크는 각자의 HDFS 경로에 이벤트를 파일로 출력한다.최종 에이전트 구성: 채널 셀렉터로 트래픽 나누기최종적으로 나온 에이전트의 구성은 다음과 같습니다.최종 에이전트 구성그리고 에이전트 설정 파일은 아래와 같이 작성했습니다.... log_to_avro.sources.log_src.type = exec log_to_avro.sources.log_src.command = tail -F /path/to/log/file log_to_avro.sources.log_src.restart = true log_to_avro.sources.log_src.channels = mem_channel log_to_avro.sources.log_src.interceptors = ts_ic host_ic # 호스트 인터셉터 설정 log_to_avro.sources.log_src.interceptors.ts_ic.type = timestamp # 이벤트 헤더에 timestamp 삽입 (날짜별 구분을 위해) log_to_avro.sources.log_src.interceptors.host_ic.type = host # 이벤트 헤더에 호스트명 삽입 (호스트별 구분을 위해) log_to_avro.sources.log_src.interceptors.host_ic.useIP = true # 호스트명 대신에 IP 사용 log_to_avro.channels.mem_channel.type = memory log_to_avro.channels.mem_channel.capacity = 10000 log_to_avro.channels.mem_channel.transactionCapacity = 10000 log_to_avro.channels.mem_channel.byteCapacityBufferPercentage = 20 log_to_avro.channels.mem_channel.byteCapacity = 10485760 log_to_avro.sinks.avro_sink.type = avro log_to_avro.sinks.avro_sink.channel = mem_channel log_to_avro.sinks.avro_sink.hostname = hostname.of.cluster.agent log_to_avro.sinks.avro_sink.port = 4141 ...웹서버 에이전트 설정파일... avro_to_hdfs.sources.avro_src.type = avro avro_to_hdfs.sources.avro_src.bind = 0.0.0.0 avro_to_hdfs.sources.avro_src.port = 4141 avro_to_hdfs.sources.avro_src.channels = c_101 c_102 avro_to_hdfs.sources.avro_src.selector.type = multiplexing # Multiplexing Selector 설정 avro_to_hdfs.sources.avro_src.selector.header = host # 호스트 이름으로 채널 나누기 avro_to_hdfs.sources.avro_src.selector.mapping.192.168.0.101 = c_101 # 192.168.0.101 에서 온 이벤트는 c_101 채널로 avro_to_hdfs.sources.avro_src.selector.mapping.192.168.0.102 = c_102 # 192.168.0.102 에서 온 이벤트는 c_102 채널로 # 채널 c_101 설정 avro_to_hdfs.channels.c_101.type = memory avro_to_hdfs.channels.c_101.capacity = 10000 avro_to_hdfs.channels.c_101.transactionCapacity = 10000 avro_to_hdfs.channels.c_101.byteCapacityBufferPercentage = 20 avro_to_hdfs.channels.c_101.byteCapacity = 10485760 # 싱크 k_101 설정 avro_to_hdfs.sinks.k_101.type = hdfs avro_to_hdfs.sinks.k_101.channel = c_101 avro_to_hdfs.sinks.k_101.hdfs.fileSuffix = .log.gz avro_to_hdfs.sinks.k_101.hdfs.path = hdfs://namenode/path/to/logs/dir/%Y%m%d/%{host} # 날짜별, 호스트별로 다른 디렉토리에 avro_to_hdfs.sinks.k_101.hdfs.rollSize = 104857600 avro_to_hdfs.sinks.k_101.hdfs.rollInterval = 7200 avro_to_hdfs.sinks.k_101.hdfs.rollCount = 0 avro_to_hdfs.sinks.k_101.hdfs.fileType = CompressedStream avro_to_hdfs.sinks.k_101.hdfs.codeC = gzip # 채널 c_102 설정 avro_to_hdfs.channels.c_102.type = memory avro_to_hdfs.channels.c_102.capacity = 10000 avro_to_hdfs.channels.c_102.transactionCapacity = 10000 avro_to_hdfs.channels.c_102.byteCapacityBufferPercentage = 20 avro_to_hdfs.channels.c_102.byteCapacity = 10485760클러스터 에이전트 설정파일p.s. Flume 설정 파일은 변수 또는 외부 파일 include 등을 지원하지는 않아서, 위와 같이 반복되는 설정을 여러 번 써 주어야 합니다.호스트마다 CDH 알람 트리거 설정그리고 CDH 상에서도 웹서버 호스트의 개수만큼 알람 트리거를 만들어 줍니다. 초당 이벤트 개수가 0에 가깝게 떨어지면 알람이 오도록 해 주면 됩니다. 채널/싱크 중 어느 것을 기준으로 해도 크게 상관은 없는데, 저희는 싱크가 초당 이동완료한 이벤트 개수를 기준으로 했습니다.CDH에서의 알람 트리거 상태 화면이렇게 해 놓으면 또 한가지 좋은 점은, CDH가 알아서 차트를 그려 주기 때문에, 웹서버마다 트래픽 추이를 한눈에 볼 수 있다는 것입니다.HDFSSink의 초당 이벤트 개수 그래프맺음말지금까지 Apache Flume 과 CDH 를 사용해 로그 수집 시스템을 구성하고 모니터링을 설정한 후기를 살펴 보았습니다. 이 과정에서 느낀 점들을 한번 정리해 보겠습니다.첫째, 일견 간단해 보이는 기능이었지만 의외로 많은 시행착오를 거쳐야 했습니다. 아무리 간단해 보이더라도 각자의 상황에 맞추어 시스템을 설계하는 데에는 그에 맞는 고민을 거쳐야 합니다.둘째, 처음에는 로그가 일단 수집되게 하는 것이 가장 중요하다고 생각했는데, 실제로 겪어보니 모니터링이 훨씬 어렵고 중요한 문제라는 것을 알게 되었습니다. 어떤 기능이 일단 실행되도록 설정을 해 놓더라도, 그것이 매일 문제없이 실행됨을 보장받는 것은 또 다른 문제입니다.셋째, Health 페이지와 Pingdom을 이용한 웹서버 측의 모니터링은 JSON 리포팅의 문제 때문에 큰 쓸모가 없게 되었습니다. 하지만 꽤 유용한 테크닉이라는 생각이 들고, 어딘가에서는 비슷하게 이용할 수 있을 것 같습니다.마지막으로 CDH 쓰면 좋습니다. 많은 것들이 편해집니다.P.S. 리디북스 데이터팀에서는 이러한 로그 시스템을 함께 고민하고 만들어나갈 분들을 찾고 있습니다. 많은 관심 부탁드립니다.#리디북스 #개발 #서버 #서버개발 #모니터링 #로그 #Flume #CDH #로그수정 #인사이트
조회수 1638

Cici 님 인터뷰

데이블은 국내 400개 이상의 미디어사와 제휴한 국내 최대 규모의 네이티브 광고 회사입니다. 최근 데이블은 국내뿐 아니라 아시아에서도 최고가 되기 위한 발걸음을 막 떼기 시작했습니다. 이를 위해 데이블은 우수한 글로벌 인재들을 지속적으로 영입하고 있습니다. 최초의 외국인 직원이 된 Cici님은 대만 내 한국계 기업에서 마케팅 경력을 쌓은 인재입니다. 중국어, 영어, 한국어 등 다국어에 뛰어난 실력을 자랑하고 있지요. 외국인 데이블러가 느끼는 데이블과 한국에서의 생활은 어떨까요? 데이블 해외사업팀에서 일하고 있는 Cici님을 만나보았습니다.안녕하세요. 간단한 자기소개와 현재하고 계신 일에 대해 설명 부탁드려요.안녕하세요. 대만에서 온 Cici라고 합니다. (네, 발음이 Campus couple의 씨씨랑 똑같아요 lol) 만나서 반가워요. 올해 5월에 입사하여 대만 기업들을 상대하는 업무를 하고 있어요. 또 새로운 시장 개척과 관련된 업무도 함께 진행하고 있습니다.한국에 오게 된 이유와 데이블 지원 동기는 무엇인가요?제가 외국어와 문화에 관심이 많아서 6년 전에 한국에서 교환학생으로 공부했어요. 원래 한국에 대해 특별히 관심이 없었어요. 하지만 실제로 한국에 오니 생각했던 것보다 한국에서의 생활이 재미있더라고요. 한국 사람들이 정이 많고 음식도 제 입에 맞는 편인 것 같아요. 교환학생 시절의 경험으로 한국에 대한 관심이 생겼어요. 그래서 대학을 졸업하고 대만 기업에 들어가서 경력을 쌓은 뒤, 또다시 한국행을 결심했습니다. 원래 마케팅과 관련된 업무들이 통찰력이 필요해서 한계점이 높잖아요. 애드테크는 마케팅의 한 분야인데 전통 마케팅에 비하면 창조력보다 논리가 더 중요해요. 한계점이 높고 논리적이라는 점이 매력적인 애드테크 분야에서 일하고 싶었습니다. 또한, 사업 개발은 제가 관심이 있고 배우고 싶은 업무에요. 그래서 한국 기업 중에 애드테크 기업인 데이블의 성장을 눈여겨보았고, 해외사업팀에 지원하게 되었습니다. 제 경험을 잘 살릴 수 있을 것으로 생각해요.한국생활 중 기억에 남는 에피소드가 있나요? 네, 한국으로 이사하고 생활하면서 정말 특별했던 경험이 많이 있습니다. 무엇보다 데이블에 들어간 첫날이 가장 인상적인 것 같아요. 게시판에 제 이름이랑 중국어 환영사까지 적혀있었어요. 낯가림이 심한 저는 생각지도 못한 감동을 받았어요.업무하실 때 커뮤니케이션은 어떤 언어로 하시나요? 업무하면서 의사소통에는 문제가 없으신가요?해외사업팀과는 영어로 의사소통을 하고 있습니다. 모두가 영어를 잘하기 때문에 영어로 의사소통하는 데 큰 문제가 없답니다.그 외 다른 데이블러들과는 한국어로 대화합니다. 의사소통에 문제가 된 적은 없어요. 하지만 한국어 실력을 더 높이고 싶어서 꾸준히 한국어 공부를 하고 있어요.대만과 한국의 기업 문화에는 어떤 차이가 있나요?한국 기업에 지원하기 전, 몇 가지 점이 불안했어요. 특히 “미생”이라는 한국 기업 문화를 현실적으로 묘사하는 한국 드라마를 보고 나서요. 1)  Hierarchy 계층 (나이/ 직위)한국에서는 대리, 과장, 차장 등의 직급이 있잖아요. 상사와 이야기할 땐 존댓말을 써야 해요. 그런데 대만에서는 직급 상관없이 모두가 수평적이에요. 서로 장난도 많이 쳐요. 2)  Overtime and gathering 과한 야근/ 회식그리고 한국 회사는 야근이 심한 편인 것 같아요. 평일에 야근이 없어도 회식이랑 술자리가 많은데요. 1차, 2차, 3차까지 가는 경우도 많은 것 같아요. 대만에서는 평일에 회식할 땐 술을 거의 안 마셔요. 평일에 술을 마시게 되면 다음 날 몸에 무리가 가니까요. 그리고 가족들이랑 같이 보내는 소중한 시간을 아끼기 때문이기도 해요. 3)  Gender inequality 남녀 불평등한국에서는 여자라서 업무 내용이랑 상관없는 일도 많이 시키고 심지어 남자보다 대우가 낮은 경우도 많은 것 같아요. 여자 직원이 자기의 능력을 보여주려면 남자 직원보다 몇 배 노력해야 해요.제가 입사한 지 1달밖에 되지 않았지만 제가 보기에는 데이블은 다른 한국기업들과는 조금 다른 것 같아요. 제가 외국인으로서 특별 대우를 받는 게 아니라 계층/ 나이/ 성별 상관없이 서로 존중하는 문화가 있는 것 같아요.데이블에서 이루고 싶은 목표는 무엇인가요?저는 입사한 지 아직 2개월이 채 안 됐는데요. 우선은 데이블과 애드테크에 대해서 많이 배우고 싶어요. 그리고 지금 일하고 있는 해외 사업 및 사업 개발 업무도 많이 배우고 싶고요. 열심히 업무 경험을 쌓아서 데이블 아시아 지역 임원이 되는 것이 목표입니다.데이블 동료들에게 하고 싶은 말이 있나요?저와 함께 하는 데이블러들의 따뜻한 마음에 너무 감동했습니다. 그리고 어색해하는 저에게 많은 용기도 주시고 친절하게 맞이해 주셔서 정말 감사합니다. 한국의 이런 멋진 회사에서 일하는 것, 한국 문화를 배우는 것. 서울에 머무르는 것 모두 다 참 좋고요. 앞으로도 잘 부탁드립니다. #데이블 #팀원 #팀원소개 #인터뷰 #기업문화 #조직문화 #사내문화 #팀원자랑
조회수 811

모바일 앱마케팅 시, 필수적으로 고려해야 할 4가지

기업 입장에서 모바일은 사용자 연결에 매우 강력한 수단입니다. 하지만 효율적인 앱마케팅 및 지속적인 관계를 유지하기 위해선 개인화, 편의성 등 세밀하게 신경써야 할 부분이 많습니다.1. 모바일앱은 모바일앱 답게모바일을 단지 데스크탑의 축소 버전으로 판단하고 데스크탑에서 제공하는 모든 기능을 작은 화면에 제공할 필요는 없습니다. 모바일 앱은 분명 웹하고는 다른 플랫폼이고, 사용자 역시 앱에서 기대하는 경험은 웹과 다릅니다. 데스크탑과 같이 페이지간 전환이 발생하면서 로딩되는 느낌을 제공한다면, 사용자에게 그 앱의 꾸준한 사용을 기대하긴 어렵습니다.사용자에게 정말 필요한 기능만을 중점적으로 제공함으로 사용자의 앱 사용 패턴을 단순화 해야 합니다. “The font game”이란 모바일 앱은 모바일에 최적화 된 디자인 예입니다. 굉장히 큰 버튼과 눈에 띄는 버튼(CTA), 그리고 핵심 기능만을 메인에 배치함으로 모바일 환경을 고려해 제작된 앱이라 볼 수 있습니다.  2. 기존 보유하고 있는 채널 활용하기2017년 스토어에서 발생할 앱 다운로드 수는 천억 건이 넘을 것으로 예상됩니다. 하지만 우리의 앱이 많은 다운로드가 발생하리란 보장은 없습니다. 그렇기에 마케팅이 필요한 것인데요, 마케팅을 새로운 채널에 비용을 들여하는 방법도 있지만, 이미 웹 등 타 채널을 운영중인 기업은 앱을 런칭할 때 적극 활용해야 합니다.꼭 앱 광고를 위한 프로모션 페이지가 아니더라도, 고객이 웹사이트에 방문했을 때, 모바일앱이 있음을 인지할 수 있도록 최적화 해야 합니다.‘Nordstrom’은 모바일 앱이 있었지만, 한줄의 텍스트 링크만을 제공하여 앱의 존재여부를 인지할 수 조차 없었습니다.반면, ‘Sephora’는 모든 페이지 하단부에 iOS 앱 다운로드 링크를 게재하여누구나 인지할 수 있고, 빠르게 스토어로 이동할 수 있도록 제공하고 있습니다.3. 어쨋든 앱을 쓰겠지라는 생각 버리기모바일앱 비즈니스가 성장하기 위해 가장 중요한 건 리텐션입니다. 하지만 대부분의 앱 사용자의 90%가 6개월 이내에 앱을 방치 또는 삭제를 합니다. 이를 해결하기 위해선 결국 사용자에게 앱을 정기적으로 사용할 수 있도록 동기부여가 필요하다는 말인데요. 이를 해결하기 위한 방법은 2가지 입니다.1) 직접 고객에게 답을 얻기이는 사용자가 모바일앱으로부터 원하는 것이 무엇인지 직접 묻는 것입니다. 왜 앱을 사용할까, 어떻게 앱을 사용할까, 언제 앱을 사용할까. 만약 이에 대해 대답하지 못한다면 고객 대상의 리서치가 필요합니다.2) 고객의 재사용을 위한 인게이지먼트 메커니즘을 만들기쉽게 말해 앱을 사용하는 고객만을 위한 베네핏을 만드는 것입니다. Walgreen의 경우 모바일 앱을 통해서만 발급하는 쿠폰을 운영 중이며, 이는 국내 소셜 커머스에서도 주로 활용하는 방법입니다..또한 사용자를 위해 꾸준히 개선하고 있음을 알릴 필요가 있습니다. 즉 정기적인 업데이트가 필요합니다. 이를 통해 사용자에게 앱을 재 인식 시키고, 업데이트 후 첫 실행 시, 기능 또는 메뉴 등 개선된 부분을 인지시키는 것이 좋습니다. 4. 모바일=개인화우리의 앱은 매일매일 고객 주머니에 함께 합니다. 이는 그들의 개인적인 의견을 알 수 있는 가장 완벽한 기회를 제공합니다. 이를 통해 기업은 고객에게 가치있는 것을 제공할 수 있습니다.그러나 많은 기업이 앱을 다운로드 하는 데만 투자하는 경우가 많습니다. 꾸준한 사용성을 고려한다면 고객의 반응을 빠르게 살피고 대응하기 위한 앱 내 커뮤니케이션 공간을 만드는 것도 방법이 될 수 있습니다.Urbanspoon의 경우, 앱 내 간편한 피드백 기능을 제공하는 커뮤니케이션 툴을 적용했습니다. 이를 통해 사용자가 앱 스토어 불편한 사항을 게재하기 떠나기 전에 미리 앱에서 소통하고, 빠르게 문제를 해결하는 방향으로 운영했습니다. 그 결과 앱 순위, 리뷰평, 리텐션 모두 긍정적인 성장을 거두었습니다.모바일앱은 강력한 채널이고 비즈니스 성장에 좋은 기회이지만, 그만큼 운영의 묘(妙)가 매우 중요한 채널이라 할 수 있습니다. 마케팅을 접하는 고객의 환경을 한번 더 고려한다면, 성공적인 모바일앱 마케팅 효과를 얻을 수 있을 것입니다.source : https://blog.kissmetrics.com/mistakes-in-app-marketing/
조회수 1334

브랜디 22차 QA를 진행하며

OverviewQA담당으로 입사하자마자 12월 21일, 22차 업데이트를 위한 앱 QA를 진행했습니다. QA는 이전 직장에서도 꾸준히 했는데도 아직까지 적응하기 어렵습니다. 그렇게 확인을 많이 하는데 오류는 왜 배포 후에 보이는 걸까요.분노를 느끼는 중22차 QA 한줄 요약: 뫼비우스의 QATC 수정 중QA담당자의 카운트다운은 기획이 완료된 SB를 참고하여 TC를 수정하는 것부터 시작됩니다. 물론 이전의 다른 과정들도 중요합니다만 이때부터는 마음속에 폭풍전야의 전운이 돌기 시작합니다. TC를 수정하는 순간 시트를 통째로 머릿속에 외워야 합니다. Depth 구성이나 QA해야할 내용을 담당자가 미리 파악하지 못한다면 테스트 도중 쏟아지는 문의사항들을 감당하지 못하기 때문이지요.뫼비우스의 QA...어떤 문의사항이냐고요? 이것을 설명하려면 브랜디의 QA과정을 먼저 설명드려야 할 것 같습니다. 브랜디의 QA는 내부 테스트와 외부 테스트로 구분되어 있습니다. 내부 테스트는 R&D본부의 서비스팀에서 1차 개발이 완료된 Android, iOS 버전의 앱을 검증합니다. 반면 외부 테스트는 브랜디 전체 직원들이 모여 앱을 검증합니다. 개발자가 아닌 사용자 입장에서 QA가 진행되다 보니 수많은 질문들을 마주합니다.“이건 왜 이럴까요?”“꼭 이래야만 할까요?”“이상한 것 같은데요.”????????그러나, QA담당의 책무를 다하기 위해 이를 꽉 무는 일이 있더라도 친절하게 답변합니다. 좋은 앱을 위해 모두가 노력하는 거니까요. 게다가 QA전문 회사에 다니면서 여러 프로젝트를 경험해봤지만, 회사 직원 전체가 배포 전에 테스트하는 게 굉장히 좋은 과정이라고 느껴졌습니다. 개발자가 아닌 고객의 관점에서 품질을 높이겠다는 회사의 방향을 엿볼 수 있었기 때문입니다.Android QA sheet중 일부iOS QA sheet중 일부사실 이렇게 꼼꼼한 과정을 거쳐도 완벽한 테스트는 없습니다. QA담당은 지속적으로 테스트를 해야 합니다. 그렇기 때문에 입사 후 처음으로 경험했던 브랜디의 QA테스트는 무사히 마쳤지만 아직도 현재진행형이기도 합니다. 내부, 외부 테스트 때 나온 결함을 Android와 iOS개발자에게 직접 전하고, 다시 테스트를 진행하고 있습니다.ConclusionQA 담당자로서 첫 번째로 중요한 업무는 QA프로세스의 정립입니다. 브랜디는 스타트업 회사이기 때문에 QA프로세스의 완성도가 아직 부족합니다. (제가 입사한 이유이기도 합니다.) 두 번째로는 JIRA(BTS) 도입으로 이슈관리의 개념부터 만드는 것도 목표 중에 하나로 생각하고 있습니다. JIRA가 있으면 소스코드 관리, 이슈 관리, 빌드, 프로젝트 관리 등의 효과를 얻을 수 있는데 특히 이슈관리(버그추적) 시스템이 도입되면 신세계가 열립니다. JIRA이슈관리 시스템은 이슈를 쉽게 조회할 수 있고, 저장된 속성을 이용해 통계자료까지 얻을 수 있습니다. 이슈 형태를 이용한 검색도 가능하기 때문에 이전에 발생했던 이슈를 쉽게 찾아볼 수 있습니다. (브랜디를 포함해 이슈관리 시스템을 이용하지 않는 회사가 많습니다만… 여기에 글을 쓴 이상 제가 해야겠지요.) 또한 다른 개발자들과 함께 피, 땀, 눈물을 쏟아내다 보면 selenuim, appium을 이용한 자동화 테스트 도입도 할 수 있을 거라 생각합니다. QA와 관련된 자세한 이야기는 앞으로도 꾸준히 공유하겠습니다. 기대해주세요.글김치영 대리 | R&D PM팀[email protected]브랜디, 오직 예쁜 옷만#브랜디 #기업문화 #조직문화 #업무환경 #인사이트 #경험공유
조회수 2458

진짜가 나타났다!! YDM의 신의 직장 핸드스튜디오

안녕하세요! 옐로모바일 사내기자 Y입니다. 멋진 옐로모바일 패밀리사의 서비스와 팀문화를 소개하는 옐.친.소! 올해 첫 옐친소 타자는 과연 어디일까요? 바로 옐로디지털마케팅(YDM)그룹에서 ‘손(핸드 ㅋㅋㅋ)’ 역할을 담당하고 있는 디지털 프로덕트 에이전시 ‘핸드스튜디오’입니다! 회사 가는 길이 너무나 설렌다는 핸드인들의 즐겁고 흥 넘치는 스토리를 김동훈 대표에게서 들어봤습니다. :)Y: 안녕하세요 김동훈 대표님! 옐로인들에게 핸드스튜디오를 간단히 소개 부탁 드립니다.안녕하세요! 이름에 ‘스튜디오’가 있어서 그런지 가끔 사진관인줄 알고 전화하시는 분들도 계신데요. ^^; 핸드스튜디오는 여느 서비스 스타트업처럼 기획, UI/UX 설계, 디자인, 개발 조직을 갖추고 있는 디지털 프로덕트 에이전시(Digital Product Agency) 입니다. 웹, 앱, 프로토타입, 연구과제, 마케팅 프로모션 등 가리지않고 다양한 협업 프로젝트들을 수행하고 있습니다. Y: 앜ㅋㅋㅋ사진관ㅋㅋㅋ 그럼 핸드스튜디오는 어떤 클라이언트들과 함께 하고 있나요?처음에는 공모전을 통해 유명한 S전자와 프로모션을 함께 했고요, 이후에 여러 노력을 통해 실력을 인정받아 내부에서 조금씩 조금씩 입소문으로 협업하는 부서들이 늘어왔습니다. 현재까지 약 24개 부서와 협업을 하고 있으며, 해외의 큰 기업들인 Amazon, Financial Times, National Geographic 등과 협업하기도 했습니다. 국내에서는 포털사, 방송사, 케이블, 이통사, 홈쇼핑 회사와도 작업을 해왔습니다. 광고회사들과 이벤트 프로모션을 같이 만들기도 했고요!Y: 포트폴리오가 굉장하네요! 옐로모바일/옐로디지털마케팅에는 언제, 어떤 연유로 합류하게 됐나요? 저희는 2015년 6월에 합류했어요. 합류 전에는 항상 어떻게 하면 더 많은 클라이언트들에게 우리 핸드스튜디오를 알리고, 새로운 협업을 할 수 있을지가 고민이었어요. 별도 영업팀 없이 주어지는 업무들 위주로 프로젝트를 진행했었거든요. 게다가 진행했던 프로젝트의 다수가 보안과 관련된 프로젝트였다보니, 당시 포트폴리오로 핸드스튜디오가 무엇을 잘 할 수 있는지 설명하기도 쉽지 않았던 것 같고요. 그래서 이미 업계에 잘 알려진 옐로모바일과 옐로디지털마케팅과 함께 하면 이러한 신규 사업처 발굴에 대한 갈증을 해소해 줄 수 있을 것이라고 생각했습니다.Y: 그럼 이제는 함께해서 좋은 점이 많이 있나요? :) 우선 좋은 점은, 이상혁 대표님, 이상석 대표님 모두 훈남이시고요. (저희 핸드스튜디오입니다!ㅋㅋ) 언제나 믿어 주시고 응원해주셔서 감사합니다.Y: 앗, 너무 대표님들을 의식하신 것 아닌가요?!ㅋㅋㅋㅋ 사실 YDM의 임직원분들도 너무 많은 부분을 챙겨주셔서 감사해요. 그리고 듬직한 가족사들이 있음에 언제나 함께 하고 있음에 마음이 든든합니다. 멋지게 달려가고 계신 모습들을 보며 ‘이정도면 됐어’ 라고 만족하지 않게끔 저희를 채찍질 하는 러닝메이트 인 것 같습니다. Y: 러닝메이트라는 표현 참 좋네요! :)음…사실 러닝메이트라고 하기엔 저희가 굉장히 시끄러운 집단입니다. 웃음소리 때문에 무려 위층에서 항의를 받았던 전력까지 있는데요. 유리 한 칸 사이로 고통받고 계신 5층 이모션 직원분들에게 이 자리를 빌어 다시 한번 사죄 드립니다. ㅠㅠ  Y: 항의받을 정도면 꽤 심각한데요?ㅋㅋㅋㅋ제가 최근에 가장 많이 하는 말은 ‘쉿’과 ‘조금만 조용히 합시다’ 입니다. 더 노력하겠습니다!!! Y: 기대해 보겠습니다! 그럼 구체적으로 옐로모바일 계열사와 협력한 사례가 있다면 공유해주세요~지난 한 해 동안 YDM 가족사인 이모션, 그리고 레코벨과 협업을 했습니다. 레코벨의 Optima 솔루션의 설계, 디자인, 프론트엔드 개발에 참여했고요, 이모션과는 파리바게트, 유플러스, 피자헛 등의 디자인, 개발 작업을 함께 했습니다. 서로 협력하며 많이 배우기도 하고 정말 든든했던 경험이었습니다.Y: 핸드스튜디오는 뛰어난 복지 조건으로 유명한데요, 특히 굉장히 유명한 ‘결혼하면 1000만 원 지급’ 복지가 탄생하게 된 배경이 있는지요?이 복지는 사실 제가 대표를 맡기 이전의 전 대표님이 만드신 건데요, 당시 직원 평균나이가 26살 정도였던 것으로 기억합니다. 미혼들이 많았고요. 결혼이 뭔가 모두에게 굉장한 숙제였고, 어린 나이들이다 보니 인생의 새로운 출발을 굉장히 축하하고 싶었던 마음이었을 것 같습니다. 가짜 아니에요~ 진짜로 줍니다!Y: 엇 그런데 이제는 결혼적령기이신 분들이 꽤 많아졌을 것 같은데요?이제는 평균연령이 29세에 도달했고요. 굉장한 현실로 다가오고 있습니다. (후덜덜..) 마치 천만원을 주기 위해 태어난 사람처럼 오늘도 열심히 일하고 있습니다..ㅠㅠㅋㅋㅋㅋㅋ Y: 또 자랑할 만한 사내문화나 복지혜택이 있다면 무엇이 있나요?5년째 매주하고 있는 카트라이더가 가장 자랑할만한 대표 문화인 것 같습니다. 작년부터는 시즌제로 운영하고 있어요. 매주 우승팀에겐 문화상품권을, 3개월 1시즌이 끝나면 시즌 우승자, 최다 점프, 최다 문화상품권 수상자, 최저 문화상품권 수상자에게 4대상을 수상합니다. Y: 직원분들 모두 카트라이터에 중독되신거 아니에요? ㅋㅋㅋㅋ심지어 점심시간마저 아껴서 근처에서 대충 먹고 뛰어와서 게임하는 열정을 모두가 가지고 있습니다. 이곳은 맛집이 넘치는 가로수길인데 말이죠. ㅎㅎ핸드인들에겐 점심보다 중요한 카트라이더 게임Y: 그 밖에도 자랑할만한 것 있으면 공유해주세요!식사, 간식, 책, 커피 같은 회사에서 일하며 필요한 건 회사에서 모두 지원하고 있습니다.월 1회는 미디어데이를 운영 중입니다. 옷 구매, 영화 관람, 보드 트립 등 그때 그때 테마에 맞게 나들이를 나가고 있습니다.Y: 핸드스튜디오에는 사내 동아리 종류도 굉장히 다양하다고 들었어요~5인이 모이면 동아리가 되는 동아리 정책이 있어요. 대표적으로 야매(야구관람), 볼사조기사단(볼링), 핸슐랭(미식), 책한사람들(독서), 전우협 신사지부(게임), 희내루(당구)가 있습니다. 애드쿠아도 볼링동아리가 있는 것으로 아는데, 내기 한판 어떠실지요? ㅎㅎ핸드스튜디오의 볼사조기사단Y: 저기.. 그럼 일은 언제 하시나요? (조심조심) ^^;;하하하… 당연히 이 모든 것들이 열심히 맡은 바 각자 자리에서 최선을 다하는 핸드인들의 노력이 있기 때문에 이뤄질 수 있는거죠. 겉으로 보기엔 이게 회사야 놀이터야 하시는 분들도 있으시겠지만, 업무 스트레스 없이 즐겁게 일하며 좋은 성과를 만들기 위해 또 그만큼 열심히 일하고 있습니다! Y: 업계에서 핸드스튜디오만의 강점을 뭐라고 생각하시나요?디지털 프로덕트와 관련하여 무엇이든 수행할 수 있는 유연한 능력이 아닐까 싶습니다. 사실 그간 해왔던 일 중 하나도 쉽고 무난한 작업이 없었습니다. 스마트TV나 IoT 개념을 시장에서 가장 먼저 다루기 시작했고, 신제품의 프로토타이핑, 다양한 선행 연구과제 등 시장에 나와있지 않았던 개념들에 대한 프로젝트가 많았어요. 덕분에 어떠한 과제도 옳은 답을 찾아가는 능력들이 배양된 것 같습니다. 다만 보안에 묶여 ‘이런 것도 했어!’ 라고 말하지 못함에 아쉬움이 항상 있습니다. 이번 옐친소 인터뷰를 통해 살짝이라도 공개할 수 있으니 뿌듯하네요.  Y: 핸드스튜디오의 인재상은 무엇인가요?현재 함께하고 있는 팀원들과 잘 어울릴 수 있는 열린 마음과, 신뢰할 만한 인성과, 책임감이있는 사람이면 좋겠습니다. 함께함이 자랑스러울 만한 실력까지 갖추면 더할 나위 없겠지요! 사실 사내에 규율, 규칙이 있기보다는 서로 신뢰와 약속으로 지켜지고 있는 것들이 많습니다. 문화와 팀워크를 깨지 않고, 더 굳건하게 할 수 있는 사람! 이것이 저희가 바라는 인재상입니다.  Y: 음..바라는게 좀 많으신데요? ㅋㅋㅋ 역시 신의 직장에 들어가려면 쉽지 않군요 ㅠㅠ신의 직장이라뇨. 전혀 그렇지 않습니다. ㅎㅎ 우리 핸드인들이 어딜가도 부족하지 않을만큼다 뛰어나기는 하지만(자랑자랑), 그렇다고 채용 시에 학력, 스펙, 토익 점수 등의 일반적인 지표를 기준으로 구성원을 채용하지는 않고 있습니다. 어버이날 부모님께 감사편지 쓰는 핸드인들Y: 올해 사업은 주로 어느 쪽에 주력할 계획이신가요?기존 클라이언트와 새로운 클라이언트의 비중을 6:4 정도로 맞추는 것을 목표로 하고 있습니다. 그를 위해서 올해는 가족사들과 많은 협업을 하였으면 하고, 함께 멋진 결과물들을 만들 수 있었으면 좋겠습니다. Y: 핸드스튜디오가 올해 이루고자 하는 것이 있다면?두 가지가 있어요. 첫 번째는 직원들 근무 만족도와 성취도 증가에요. 핸드스튜디오는 연 2회 업무, 문화/복지, 리더십을 주제로 내부 익명평가를 진행하고 있는데요, 작년 여름에 6.25점을 받고, 7점을 목표로 살아왔는데 겨울에는 8점을 받았습니다. 올해 첫 목표는 여름에 8.1점 이상을 받는 거에요.Y: 두 번째는요?퇴사율입니다. 2015년 초반에 회사의 목표는 ‘퇴사자 5명 이하’ 였습니다. 퇴사나 이직은 무언가의 결핍으로 생겨나는 것이라고 생각하는데, 그 결핍들을 줄여야 더 좋은 회사가 될 수 있을 것이라 생각했습니다. 그 목표를 드디어 작년에 이뤘고요! Y: 와, 축하드립니다! 그렇다면 올해 목표치는요?달성한 김에 올해는 4명 이하로 목표치를 잡아 보았습니다. 핸드는 개개인의 능력의 합으로 이뤄져 있기 때문에, 합에서 마이너스가 생기지 않게 하는게 가장 중요한 목표라 생각합니다. 함께 멀리 갈 수 있는 회사를 견고히 만드는 것이 목표입니다. 더 좋은 대우를 받고, 즐겁게 살기 위해서 함께 더 열심을 쏟아, 많은 것을 이뤄냈음 합니다.Y: 마지막으로 모든 옐로 가족들에게 한 말씀 부탁 드립니다~옐로모바일 가족 여러분 모두 새해 복 많이 받으시고, 물질적, 정신적 기쁨이 충만한 한 해가 되시기를 응원하겠습니다. 핸드스튜디오의 앞으로의 행보에도 많은 관심과 응원을 부탁드리겠습니다. 모두 파이팅입니다! :) 
조회수 1839

제니퍼에서 새로운 가능성을 실험하라

제니퍼는 기업 내부망에 설치되는 On-Premise 방식의 소프트웨어 제품이다. 12년 넘게 국내 점유율 1위를 지키고 있는 제품이다보니 그만큼 고객의 요구사항도 다양하다. 대부분의 솔루션 회사는 제품 개발 초기에 단일 소스코드를 유지하며 개발하는 것을 추구했을 것이다. 하지만 비즈니스를 하다보면 특정 고객을 위한 기능을 추가할 수 밖에 없는 상황이 오게 된다. 보통 이런 경우에는 숨겨진 기능으로 개발하거나 고객사 별로 소스코드를 다르게 가져가기도 한다.기존의 제니퍼를 사용하는 고객들은 애플리케이션 모니터링만이 아닌 브라우저나 스마트폰 같은 클라이언트 영역과 데이터베이스 관리 시스템까지 연계된 통합 모니터링을 하고자하는 요구사항을 오랫동안 요청했었다. 모니터링 제품 간의 연계를 생각하면 약간 생소하게 생각할 수 있는데, 특정 데이터를 수집하고, 이를 가공하여 사용자에게 보여주는 단순한 매커니즘의 하나라고 생각하면 이해가 쉬울 것 같다.즉, 다른 종류의 데이터를 하나의 화면에서 볼 수 있는 통합 환경을 제공해야 한다. 그래서 최근에는 오픈소스로 배포되고 있는 엘라스틱서치나 상용 제품인 스플렁크 같은 로그분석 솔루션이 주목받고 있다. 하지만 위와 같은 제품들을 사용하여 제니퍼 성능 데이터와 연계하여 통합 환경을 구축한다는 것은 말처럼 간단하지 않다. 제품을 구매하고 학습하는 비용이 생각보다 크고, 통합을 위한 별도의 시스템이 갖춰져야 한다는 것은 고객의 입장에서 큰 부담이 된다. 이러한 부담을 덜어주기 위해서 제니퍼는 실험실이라 불리우는 확장 기능을 제공한다. 실험실은 워드프레스의 플러그인과 비슷한 성격을 가지며 코드 레벨 영역에서 확장될 수 있다. 실험실은 처음부터 다른 모니터링 제품과의 연계를 위해 개발된 것은 아니었다. 기획 초기에는 방대한 제니퍼 데이터를 좀 더 다양한 형태의 화면으로 제공하기 위함이었는데, 아무래도 실험적인 요소가 강하다보니 기존의 대시보드나 분석 같은 범주로 들어가기에는 완성도 측면이나 제니퍼의 방향성에 영향을 미칠 수 있다는 판단에 별도의 범주로 만들게 되었다.  실험실이란 이름은 구글 메일의 실험실에서 따온 것인데, 아직 개발 중인 실험적 기능을 위한 테스트 공간이고, 언제든지 변경 또는 중단되거나 사라질 수 있다. 그리고 모든 실험실 소스코드는 깃허브를 통해 공개하는 것이 기본 정책이다. 제니퍼소프트 깃허브에 가보면 실제로 다수의 실험실 프로젝트가 존재한다는 것을 알 수 있다. 그 중 한가지만 간략하게 소개하자면 사용자 관점의 웹 서비스 모니터링 제품인 아르고스와 연계하여 브라우저나 스마트폰 같은 사용자 관점의 성능 데이터를 제니퍼 트랜잭션 데이터와 연계하여 분석할 수 있는 기능을 제공한다. 실은 그동안 고객들에게 사용자 관점의 성능 모니터링에 대한 요구사항이 많았지만 제니퍼 본연의 영역과 확연하게 다른 측면이 있어서 요구사항을 수용하는데 많은 고민이 필요했다. 그래서 우리는 관련된 솔루션 업체를 찾았고, 상호 간의 비즈니스 협력을 통해 서로의 부족한 부분을 보완하기로 결정했다. 실험실은 제니퍼가 시도하고 있는 새로운 기능을 미리 체험해 볼 수 있을 뿐만이 아니라 오픈소스나 관련된 솔루션과의 연계를 하기 위한 화면을 제공할 수 있다. 뿐만 아니라 코드 레벨 영역에서 확장을 하는 것이다보니 제품의 커스터마이징 범위가 넓어진다. 즉, 화면에 대한 고객의 요구사항이 제니퍼의 방향성과 크게 다르더라도 많은 고민을 하지 않고 충분히 원하는 것을 구현해줄 수 있다. 과거와 달리 동일한 데이터라도 좀 더 시각적인 화면을 요구하는 요즘같은 시기에 실험실은 이러한 시도를 하기에 좋은 방법이 된다.제니퍼는 화면 단위의 확장 기능인 실험실 뿐만이 아니라 트랜잭션 데이터가 수집되는 시점이나 특정 이슈가 발생할 때, 생성되는 이벤트 데이터를 어댑터를 통해 전달받을 수 있다. 어댑터도 실험실과 마찬가지로 코드 레벨 영역에서 확장할 수 있다. 실시간으로 전달받은 트랜잭션 데이터는 별도의 스토리지에 저장하여 목적에 맞게 조회해서 사용할 수 있다. 특히 이벤트 관련 어댑터는 가장 많이 사용되는 제니퍼 확장 기능이며, 고객사의 관제시스템 연동에 주로 사용된다.  실험실은 어댑터와 달리 제니퍼 서버에서 전달받은 데이터를 처리만 하는 단순한 구조가 아니었다. 제니퍼와 독립적인 화면 구성에 필요한 모든 요소들을 갖춰야했기 때문에 고려해야할 것들이 너무 많았다.  그럼에도 불구하고 만들게 된 이유는 단순히 필자의 편리함을 위해서였다. 평소에 데이터 시각화에 관심이 많았기 때문에 이미 존재하는 방대한 제니퍼 데이터를 다양한 방식으로 표현하기 위한 시도를 했었다.하지만 상용 솔루션인 제니퍼에 테스트 코드를 필자 임의로 추가해서 배포하거나 숨긴 기능으로 만들기에는 꽤 부담스러운 일이었다. 그렇다고 별도의 소스코드로 다르게 가지고 가기에는 관리 측면에서 어려움이 있다. 그렇기 때문에 기존의 제니퍼 소스코드를 참조만 하되 서로 독립적으로 개발하는 형태를 생각하게 되었다. 이렇게 필자의 편리함을 위해 시작한 실험실이지만 오픈소스나 다른 솔루션과의 연동을 위한 화면을 제공하고, 새로운 제니퍼 기능에 대한 비전을 시사하거나 고객의 피드백을 수용하는 용도로 확장되었다.소프트웨어 개발을 하다보면 제품이 추구하는 방향과 달라서, 또는 구현은 가능하지만 소모되는 리소스 비용이 부담이 될 경우, 그리고 특정 사용자를 위한 특화된 기능을 구현할 때, 모두가 만족할만한 기능이라는 확신이 없다면 제대로 진행하기가 어려운게 현실이다. 사실 새로 시도하는 기능은 시기와 때에 따라 앞에서 고려했던 것들과 다르게 평가되는 경우도 있다.그래서 아무리 작은 아이디어라도 시도를 해보는 것 자체만으로도 큰 의미가 있으며, 새로운 가능성을 발견하는 계기가 될 수 있다. 다만 현재는 제니퍼 기능 확장에 대한 기반 정도만 갖춰진 시작 단계라서 관련된 API 문서나 개발 도구에 대한 지원이 미흡한 것이 아쉬움으로 남는다. 다음 편에서는 자바 개발자 대상으로 실험실을 직접 구현하는 방법에 대해 알아볼 것이다.
조회수 2982

개발자 직군 파헤치기 2 | 게임 개발자

게임 개발자국내 게임 산업에서 모바일 게임의 매출액은 2011년 4235억원에서 2013년 2조3276억원으로 2년 만에 6배 가까이로 늘어났습니다.(출처:한국콘텐츠진흥원) 한국 모바일 게임은 해외에서도 인기를 끌고 있는 추세입니다. 뿐만 아니라 최근 엄청난 인기를 끌고있는 배틀그라운드는 한국 게임 산업의 가능성을 증명합니다. 배틀그라운드는 작년 한 해 7621억원의 수익을 거두면서 2017년 가장 큰 수익을 거둔 PC 게임 패키지 1위를 차지했습니다.배틀그라운드의 일러스트게임을 좋아하는 사람이라면 한번쯤은 게임 개발에 관심을 가져보았을 것입니다. 특히 프로그래밍을 하는 사람이라면 자신의 게임을 만들어보고 싶다는 생각을 해보거나, 게임 회사에서 일 하는 것을 고려해보았을 것입니다. 그러나 한편으로는 압도적인 근무 시간에 대한 부담으로 게임 개발자가 되겠다는 생각을 접게 되신 분들도 많습니다.이번 포스팅은 게임 개발자에게 필요한 역량이 무엇인지 알아보고, 게임 개발자의 두 가지 커리어 종류에 대해 설명하려고 합니다. 또한 지금 당장, 코딩을 전혀 할 줄 모르는 상태에서 게임 개발에 도전해볼 수 있는 방법 또한 소개해드리겠습니다.게임 개발자에게 필요한 역량게임을 만들기 위해서는 그래픽을 다루는 능력, 스토리와 레벨을 기획하는 능력, 3D 모델링, 그래픽 엔진을 다루는 능력 등 많은 영역들에서 전문성을 필요로 합니다. 물론 이 모든 것을 전문적으로 다루는 사람이 되기란 불가능에 가깝습니다. 그렇기 때문에 스토리라인과 컨셉 구성은 기획자가 담당하고, 기획자의 아이디어는 개발자와 그래픽 디자이너의 손을 거쳐 게임의 모습을 갖춥니다. 그래픽 디자이너가 시각적 구현을 맡는다면, 개발자는 PC나 모바일에서 게임이 실행될 수 있도록 만드는 작업을 하게되는 것입니다. 게임 개발자도 결국 개발자 직군의 일환이기 때문에 일반적으로 개발자들이 많이 다루는 언어에 대한 숙련도나 프로그래밍 능력이 필요합니다. 그러나 게임 개발자의 경우 다른 직군의 개발자에게는 필수적이지 않은 지식을 필요로 할 때가 있습니다. 아래에는 특히 게임 개발자들에게 중요한 세 가지 요소입니다. 1. 프로그래밍 언어대부분의 대규모 게임 회사들은 C++을 가장 많이 사용합니다. 모바일 게임이 대세로 더오르면서 C#을사용하는 경우가 많아진 것은 사실입니다. 그러나 PC, 모바일, 비행기 제어 프로그램까지 폭넓게 지원하는 고성능의 3D 게임을 개발하기 위해서는 여전히 C++이 최적이라는 평가를 받습니다. 주의할 점은 C/C++은 계속해서 발전하고 있는 언어라는 점입니다. 언어를 배우기 위한 서적, 인터넷 강의 등은 무궁무진하지만 중요한 것은 최신의 것을 배워야 한다는 점입니다.2. 게임 엔진게임 엔진은 간단하게 말해 게임을 개발하는 과정을 쉽게 만드는 ‘도구’입니다. 중력 같은 기본적인 물리 효과나 오브젝트 사이의 충돌 여부를 판정하는 ‘컬라이더’ 등, 개발에 필요한 기본적인 기능이 탑재되어있기 때문에 게임 엔진은 개발 과정을 획기적으로 단축시켜줍니다. 가장 많이 쓰이는 게임 엔진은 유니티와 언리얼입니다.이 글을 읽고 있을 대부분의 분들이 개발을 배우는 과정에 있다는 가정하에 학습의 용이함을 기준으로 비교해보면, 유니티의 경우 공식적으로 지원하는 교육 프로젝트의 수는 9개입니다. 그러나 공식적인 자료 외에도 한글 서적이나 온라인 강좌들은 매우 풍부합니다. 반면에 언리얼이 제공하는 공식 교육 프로젝트는 수십개입니다. 대부분이 한글 자막을 지원해줄 뿐만 아니라 다양한 주제를 경험할 수 있습니다. 언리얼의 한계라면 공식 채널 외에서 학습할 수 있는 자료나 커뮤니티가 아직까지는 많지 않다는 점입니다. 3. 수학게임 개발자에게 수학은 매우 중요하고도 기본적인 것입니다. 특히 3D 게임을 다루고 싶다면 수학적 지식과 역량은 매우 중요한 부분을 차지할 것입니다. 물론 위에서 말한 게임 엔진이 수학적인 계산이나 물리와 관련된 문제들을 해결해 줄 수는 있습니다. 그러나 게임 엔진을 활용한다 하더라도 기본적으로 그것이 어떻게 작동하는지는 이해해야 합니다. 그렇기 때문에 이산 수학, 즉 벡터, 행렬, 집합, 논리 연산 등에는 능숙할 필요가 있습니다. 게임 개발자의 커리어게임 개발자가 되기 위한 길이 게임 회사에 취직하는 것만 있는 것은 아닙니다. 최근에는 크게 성공하는 인디 게임, 즉 대규모 회사가 아닌 저예산의 1인기업 혹은 작은 팀단위로 만들어 내는 게임들의 사례가 늘어나고 있습니다. 게임 회사에 취직하는 것만큼 확실한 방법이 없다는 생각을 갖고 계신 분들, 혹은 자신만의 게임을 만드는 것에 강한 매력을 느끼시는 분들을 위해 두 가지 커리어 옵션을 비교해 보았습니다.1. 대규모 게임 회사대부분의 게임 개발자가 특정 회사에 소속되어 일을 합니다. 회사에 소속되어 있기에 안정적인 수입이 보장된다는 것이 첫번째 장점이라면, 두번째 장점은 혼자서는 절대 만들 수 없는 규모의 게임을 개발하는 데에 기여할 수 있다는 점입니다. 한 마디로 말해 완성도 있고 유명한 게임에 일조 했다는 자부심을 가질 수 있게 되는 것입니다. 또한 주니어 개발자로서 풍부한 경험을 가진 시니어 개발자를 포함해 배울 점이 많은 사람들로 구성된 팀에 소속될 수 있다는 것 또한 큰 장점입니다.한편 회사의 크기가 큰 경우에는 각 사람이 맡는 개발의 영역이 매우 세분화 되어있기 마련입니다. 자신이 느끼기에는 조금 지루하고 단순한 일이라고 생각되는 일을 맡게 될 수도 있습니다. 그러나 반대로 말하면 디자인, 기획, 마케팅 등 개발 외의 업무 등에 신경을 쓰지 않고 오직 자신의 일에 집중할 수 있는 환경이 제공되는 것이기도 합니다.2. 인디게임 개발규모가 있는 회사에 취직하는 것이 아니더라도 게임을 만들 수 있는 방법은 많습니다. 또한 안정적인 수입이 보장된 것은 아니지만, 성공하는 경우 생각는 것보다 그 수익이 큽니다. 예를 들어 트리오브라이프를 개발한 오드윈게임즈는 1년 간 20억의 매출에 도달했습니다. 단지 한 사람이 2주 동안 만든 게임, 숨바꼭질은 한 달만에 5000만원의 수익을 냈습니다. 물론, 이를 성공 신화에 불과하다고 말할 수도 있기 때문에 분명히 감수해야 하는 위험이 있는 커리어인 것이 사실입니다. 인디 게임 간에도 경쟁이 매우 치열하기 때문입니다.그럼에도 불구하고 소규모로, 혹은 혼자서 게임을 개발하는 사람들은 게임에 대한 애착을 가지고 개발 과정 전체를 아우르며 작업할 수 있다는 점에서 만족감을 느낍니다. 특히 투자 규모나 시기에 구애를 받지 않고 개성적인 게임, 만들고 싶은 게임을 만들 수 있다는 것이 장점이라고 할 수 있습니다. 지금 시작하기게임 개발을 하고 싶은데 어디서 시작해야 하는지를 막막해하고 있다면, 무조건 일단 만들어보기 시작하는 것이 중요합니다. 자신의 아이디어, 혹은 이미 있는 게임들을 가지고 점점 난이도를 높여가며 여러 프로젝트를 실행해 보는 것이 좋습니다. 이는 실력을 쌓는 데에도 도움이 되지만, 이후에 훌륭한 포트폴리오가 되기도 합니다.일단 만들어보라는 조언도 막막하신 분들을 위해 준비한 것은 무료로 사용할 수 있는 게임 개발 프로그램들입니다. 코딩을 전혀 할 줄 모르는 사람부터 완성도 있는 게임을 만들고 싶어하는 사람들까지 다양한 수준에서 접근할 수 있는 도구들을 소개해드리겠습니다.1.Flow CreatorFlow Creator는 코딩을 해본 적이 없어도 간단한 드래그앤드롭으로 게임을 만들 수 있는 웹사이트입니다. 시각적으로 논리적 구조를 짤 수 있기 때문에 어떤 언어도 배워본 적이 없어도 됩니다. 무료 버전의 경우 5개의 레벨, 50개의 개체로 제한이 되어있지만 유료 버전의 경우 앱으로 만들어 스토어에 올릴 수도 있습니다.2. StencylStencyl도 Flow Creator와 마찬가지로 프로그래밍 언어가 아니라 Stencyl의 사용법만 잘 익히면 훌륭한 게임을 만들 수 있습니다. 사용법이 Flow Creator에 비해 좀더 까다로운 것은 사실이지만 결과물의 완성도가 더 높습니다. 또한 이미 만들어져있는 코드블록 외에도 직접 코드를 작성하고 라이브러리를 불러오는 등 확장할 수 있는 가능성도 있습니다.3. Game Maker StudioGame Maker는 위의 두 가지 프로그램처럼 드랙 앤 드롭으로 만들 수 있지만, Game Maker Language(GML)이라는 자체 언어를 활용하여 만들 수도 있습니다. GML을 사용해서 게임을 만드는 것은 프로그래밍을 학습하는 데에도 도움이 될 것입니다.게임 개발자의 종류는 정말 많다.오늘 포스팅에서 언급한 게임 개발자는 일부입니다. 게임 개발자의 종류에는 온라인 게임, 모바일 게임, 콘솔 게임 등 정말 다양하고 무궁무진합니다. 여러분들이 어떤 게임 개발자가 되고 싶든 중요한 것은 게임에 대한 열정인 것 같습니다. 자신이 정말 하고 싶고 좋아하는 게임을 만든다는 것은 세상에 의미있는 프로그램을 만드는 개발자만큼이나 행복한 개발자겠지요. 다음 편에는 더 재밌는 개발자 직군으로 찾아오겠습니다.
조회수 912

마케터가 알아야할 Amazon Go가 몰고올 변화

https://www.youtube.com/watch?v=NrmMk1Myrxc<iframe width="700.000000" height="394.000000" src="//www.youtube.com/embed/NrmMk1Myrxc" frameborder="0" allowfullscreen="">어제 밤부터 오늘 오전 내내 아마존고 출시 소식으로 전 세계가 떠들석 했다. 이로인해 몰고올 엄청난 파장이나, 기술적 백그라운드에 대한 글들이 쏟아졌다. 이번 글에서는 마케터의 관점에서 아마존고가 몰고올 변화를 주목해 보고자 한다. 이 글은 정근호님의 브런치 글과 함께 읽어보면 더 재밌을 것이다.1. In-Store Analytics 리서치 분야의 변혁옛날 유명했던 책이 하나 있다. 바로 파코언더힐의 쇼핑의 과학 (Science of Shopping). 1999년에 출간된 이 책으로 인해 리테일 업계에서는 In-Store Analytics가 일대 유행을 하기도 했다 (사실 그 전부터 존재하던 분야였지만 이 책으로 인해 수많은 마케팅 관리자들의 관심을 불러일으켰기 때문으로 봐야겠죠). 이 분야는 빅데이터와 센서, 페이스 디텍팅, 입자분석, 심리조사 등등 기술스텍이 매우 높은 전문분야에 해당하는데, 이미 IBM, 아마존 등에서는 솔루션화해서 컨설팅하고 있는 분야이다.아마존고에 사용된 기술은 이 방대한 영역의 리서치 툴이 무색해질 정도로 간단하게 저 In-Store Analytics가 가능해 질 것이다. 예를들면 다음과 같은 형태의 실시간 트래킹이 가능해 지는 것이다.1) 소비자 동선중에 선반에 손이 가는 지점2) 각 매대의 소비자 funnel (유동인구 대비 환기율, 환기대비 픽업율, 픽업대비 구매고려율, 최종구매율 등등) 분석3) 소비자 타겟별 행동 분석 (인구통계적으로 인기있는 품목이나 컨버젼 높은 상품들)4) 매대전환율 분석 (어떤 제품들이 빨리빨리 빠져나가는지, 객단가별로 컨버젼은 어떻게 나오는지 등등)본인이 저 분야에는 지식이 미천해서 저것밖에는 나열을 못했지만 예상하기로 수십가지의 초 고난이도의 In-Store Analytics가 아마존고에서는 초 심플하게 행해질 것이다. 이게 가능한 이유는 바로 1) 소비자가 이미 앱에 가입되어있는 아마존 프라임 멤버이기 때문에 매장 진입순간부터 그 사람이 누구인지 마크가 가능하고, 2) 소비자가 이동하는 동선이 실내측위법과 앱 데이터로 트래킹 가능할 것이며, 3) 스마트폰 센서로 소비자가 현재 어떤 행동을 하는지 (빠르게 이동중, 천천히 이동중, 멈춤, 턴, 되돌아가기 등등)가 측정 가능하며, 4) 제품이 픽업되고 카트에 담겼다가 구매 전에 취소되고, 구매 후에 취소되고, 구매가 완료되는 등등의 결과값들이 계정별로 쌓이는 구조이기 때문이다.2. 인스토어 마케팅의 자동화현재 매장 내 주요 마케팅 툴들은 다음과 같다.1) 1+1이나 가격할인, 묶음할인 등의 할인제품 태깅2) 상설 할인매대 운영3) 매대 엔드존 운영 (할인행사, 강조제품 등)4) 각종 디스플레이 광고5) 시식 등의 사람이 직접하는 세일즈 프로모션위와 같은 마케팅 툴이 소비자 반응에 의해 자동으로 변경, 최적화, 연장, 축소등등이 가능해지는 매장을 상상해 보자. 예를들면 각 제품별 전자디스플레이에 소비자 반응 및 컨버젼에 따라 할인행사가 변칙적으로 적용되고, (우리나라는 시식때문에 사람이 꼭 필요하지만 미국에는 시식행사 별로 못본것 같아요) 사람이 필요 없이 앱과 디스플레이를 통해 실시간 타임세일이나 묶음 세일등을 운영하는 등의 인스토어 마케팅 자동화를 통해서 엄청난 비용을 절감하고 소비자 반응에 맞춰 빠르게 마케팅 툴을 적용할 수 있게 되는거다. 매장을 운영해보신 분들은 알겠지만, 매장에서 행사 하나 진행하는게 얼마나 까다로운지, 스토어 VMD가 마케팅 계획에 따라 얼마나 번거롭게 적용되는지 아실거다. 이런 부분에 일대 혁신이 가능해 지지 않을까.3. 옴니채널의 유의미한 발전이건 위에 언급한 정근호님 글에도 나와있듯이, 아마존고의 시도는 옴니채널 분야에 유의미한 발전을 가져올 거다. 사실 옴니채널이 화두가 된지 벌써 5년이 넘었지만 그간 유의미하게 발전됐다 싶을 사건은 크게 많지 않았다. 대부분이 그저 오프라인 체험과 온라인 구매 사이를 연결하는데에만 초점을 맞춰오거나, 홈플러스 등과 같은 리테일러들은 재고를 모바일 쇼핑 채널과 연동시켜서 모바일 세일즈와 오프라인 세일즈를 적절히 융합시키는 정도에 그쳤었다. (물론 이게 낮은 수준의 변화라고 얘기하는건 절대로 아닙니다. 세간에 화두가 된 것에 비해 실제로 리테일 분야는 보수적이고 고난이도의 영역이라서 실용적 접근이 어려웠다는걸 얘기하는거죠)아마존고 스토어에서는 진정한 옴니채널의 발전을 가져올 다음과 같은 변화가 예상된다.1) 아마존고의 오프라인과 아마존대시의 온라인이 융합하여, 소비자는 정기상품들을 기존대로 아마존대시에 태깅해놓고 정기구독할 것이고, 퇴근길에 잠시 아마존고를 들러서 신선식품 등 아마존대시가 커버 불가능한 영역의 쇼핑을 해결할 것이며, 아마존고에서 중복 구입한 상품들은 자동적으로 정기주문건에서 정산되어 굳이 소비자가 복잡하게 온/오프라인 카트를 직접 관리하지 않아도 되는게 가능해 진다.2) 아마존고에서 측정되는 오프라인 행태와 온라인데이터가 결합하여 드디어 한 개인의 온/오프라인 연결 데이터 분석이 가능해 진다. 이 연결데이터로 지금까지와는 다른 전혀 새로운 형태의 옴니채널 마케팅 기법이 개발될텐데, 구체적으로 어떤 모습의 마케팅 기법이 될지는 좀더 고민해 봐야 겠지만, 포인트는 지금처럼 단순히 1+1, 제품할인 등에 머무르는 세일즈 프로모션은 아닐거라는거다.3) 만일 아마존고가 데이터를 오픈하거나 솔루션화해서 거래할 경우, 브랜드 및 제조사들은 기존에 리테일러를 거치지 않고서는 얻기 힘들었던 고객 접점 데이터를 쉽게, 실시간으로 접근 가능해지기 때문에 그들의 제품전략, 마케팅전략 역시 옴니채널에 기반해서 움직일 것이다. 이 부분은 솔직히 내공이 부족해서 어떤 그림일지 구체적으로 묘사는 힘들어서, 다른 분들의 다양한 의견 부탁드린다^^;;지금까지 아마존고가 불러올 다양한 변화에 대해 마케터의 관점에서 하나씩 풀어봤다. 쓰고나니 소설같은 이야기들도 많아보이지만, 어디까지나 한 개인의 의견일 뿐이니 잘 수렴해서 읽어주시고, 중요한건 아마존의 이 담대한 실험은 비단 테크업계의 일이 아니라 오히려 마케터들에게 더 직결되는 변화를 가져올거라는게 내 생각이다.글쓴이는 스팀헌트 (Steemhunt) 라는 스팀 블록체인 기반 제품 큐레이션 플랫폼의 Co-founder 및 디자이너 입니다. 비즈니스를 전공하고 대기업에서 기획자로 일하다가 스타트업을 창업하고 본업을 디자이너로 전향하게 되는 과정에서 경험한 다양한 고군분투기를 연재하고 있습니다.현재 운영중인 스팀헌트 (Steemhunt)는 전 세계 2,500개가 넘는 블록체인 기반 앱들 중에서 Top 10에 들어갈 정도로 전 세계 150개국 이상의 많은 유저들을 보유한 글로벌 디앱 (DApp - Decentralised Application) 입니다 (출처 - https://www.stateofthedapps.com/rankings).스팀헌트 웹사이트 바로가기

기업문화 엿볼 때, 더팀스

로그인

/