스토리 홈

인터뷰

피드

뉴스

조회수 254

컴공생의 AI 스쿨 필기 노트 ③ K-평균 군집화

AI 스쿨 3주차에서는 K-means clustering(K 평균 군집화)에 대해 배웠어요. 이에 대해서 간략하게 정리해볼게요.K-means clustering클러스터링이란 군집화를 의미하는데요, K-means clustering은 비슷한 데이터끼리 묶어주는 머신 러닝 기법이에요. K-means clustering은 비지도학습(Unsupervised learning)의 일종이에요. 비지도 학습이란 데이터와 각각의 데이터가 무엇인지를 설명해주는 라벨이 없는 학습을 말해요. 따라서 우리는 주어진 데이터들을 가장 잘 설명하는 클러스터를 찾아 데이터를 분류할 수 있어요. 아래는 데이터를 2개의 클래스로 군집화한 것을 잘 나타내주는 그래프에요.K-means는 클러스터 내부에 속한 데이터들이 서로 가깝다고 정의해요. 그렇다면 같은 클러스터에 속한 데이터들은 서로 가까이 근접해 있겠죠? K-means는 클러스터의 중심으로부터 가까운 데이터들을 찾아서 묶어주는 알고리즘이에요. 데이터들은 가장 가까운 내부 거리를 가지는 클러스터를 고르게 되는데, 이를 위해서 각각의 클러스터는 중심(프로토타입)이 존재하고 각각의 데이터가 그 중심과 얼마나 가까운지를 Cost로 정의해요.위의 식은 같은 클러스터에 속하는 각각의 점들로부터 그 클러스터의 평균(프로토타입)과의 거리의 합을 제곱한 함수에요. - N : 데이터의 개수- K : 클러스터의 개수- uk : k 번째 클러스터의 중심(프로토타입)- rnk : n 번째 데이터가 k 번째 클러스터에 속하면 1, 속하지 않는다면 0을 가지는 이진 변수우리는 위 식에서 rnk, uk를 구해야 해요. 이때 반드시 잊지 말아야 하는 조건은 각 데이터가 한 개의 클러스터에 할당이 되어야 한다는 것이에요.K-means 알고리즘K-means algorithm을 구하는 방법은 아래와 같이 크게 2단계로 나누어져요. 먼저 uk에 랜덤 값을 사용하여 임의의 초깃값을 설정해요.1. Expectationuk를 고정시키면서 J를 최소화하는  rnk값을 지정해야 하는데,  rnk은 모든 데이터 n에 대해 각각 모든 클러스터 중에서 xn- uk가 가장 작은 클러스터에 할당해요.2. Maximization새롭게 얻어진 rnk를 고정하고 uk는 k 번째 클러스터의 mean을 계산해요. 두 값이 적당한 범위 내로 수렴할 때까지 계산을 반복해요, 위의 두 단계를 각각 E(expectation) 단계와 M(maximization) 단계라 하고, 이 두 단계를 합쳐서 EM 알고리즘이라고 해요.알고리즘 코드로 나타내기그럼 K-means algorithm을 코드로 어떻게 나타내는지 살펴볼게요!Step1. 데이터 만들기np.random.seed(42)digits = load_digits()  data = scale(digits.data)n_samples, n_features = data.shapen_digits = len(np.unique(digits.target))labels = digits.targetx_train, x_test, y_train, y_test = train_test_split(data, labels, test_size=0.25, random_state=42) - digits = load_digits(): load_digits 함수를 사용하면 data와 target이 반환되는데 이 데이터를 scale 함수를 사용하여 전처리해요.- data.shape을 사용하면 n_samples에는 1797, n_feature에는 64가 할당돼요.- n_digits에는 digits의 target의 중복된 값을 제외한 개수를 할당해요.- train_test_split() 함수를 이용하여 train_set과 test_set을 랜덤 시드를 42를 가지는 75:25의 비율로 나눠요.Step2. KMeans model 만들기sklearn 라이브러리를 사용하면 KMeans model을 아주 쉽게 구현할 수 있어요.kmeans = KMeans(init='k-means++', n_clusters=10, random_state=42)clusters = kmeans.fit_predict(x_train)- KMeans 함수를 이용하여 모형은 k-means++를 가지고, cluster는 10개를 가지며 랜덤 시드는 42를 가지는 K-means clustering을 만들어요.- x_train 데이터 셋을 중심으로 클러스터의 중심을 계산하고 각 샘플에 대한 클러스터의 인덱스를 예측할 수 있도록 fit_predict()를 사용해요.Step3. K-means clustering 결과 출력print('Clusters: ', clusters)위와 같이 출력하면 아래와 같은 결과가 나와요.Clusters: [1 3 2 ... 6 6 0]]그래프를 출력하면 아래와 같은 결과를 볼 수 있어요!이번 수업에 배운 K-means clustering의 개념은 1주차와 2주차 수업의 개념에 비해 어렵지 않았던 것 같아요. 이해하기에 큰 문제는 없었지만 코드로 직접 짜려고 하니 막히는 부분이 있어서 고생을 좀 했어요. 저는 과제를 하다가 에러가 나면 구글링을 통해서 에러를 해결하거나 도저히 못하겠다 싶으면 도움 요청을 해요. 목요일에는 조교분들께서 Multiple Regression에 대해 숙명여대에서 수업을 진행해주셨는데요. 1, 2주차에 배운 내용을 복습하고 3주차 수업에서 짧게 살펴본 Multiclassification을 더 자세히 알려주셔서 본 수업 때 이해가 되지 않았던 부분이 해결이 되었습니다! 목요일 수업은 정식 수업이 아닌 보충수업이었기 때문에 소수의 사람들이 강의에 참여했는데요. 시간이 된다면 참석을 꼭 해주시면 굉장히 큰 도움이 될 것 같아요. * 이 글은 AI스쿨 - 인공지능 R&D 실무자 양성과정 3주차 수업에 대해 수강생 최유진님이 작성하신 수업 후기입니다.
조회수 304

“제가 만족할 수 있을 때까지 계속 발전하고 싶어요.”

#성별은 남자 #직업은 디자이너#기계 그리기를 좋아하고 #디자인을 좋아하고 #브랜딩을 좋아하는 사람사실 이러한 수식어보다, 스스로 만족할 만한 작업을 하기 위해 계속해서 노력하고 있는 사람이라는 말이 더 어울리는 디자이너 주영진. 깔끔하면서도 멋스러운 패션 스타일부터 조근조근 재치 있는 말솜씨까지, 모든 것이 군더더기 없고 감각적인 그를 만났다.주영진에 대해 말해주세요!안녕하세요. B.A.T에서 이것저것 다 하는 디자이너 주영진입니다. 저는 클라이언트와 소비자의 접점을 찾아 시각적으로 표현하는 일을 합니다. 브랜드 디자이너로 경계선 지능 청소년 대상 예술교육을 실현하는 ‘DTS행복들고나’와 대학생 놀이 시터 서비스 ‘놀담’의 브랜드 아이덴티티를 담당했고, 그 외 마케팅에 필요한 시각적 콘텐츠들을 진행하고 있습니다.이것저것 다하는 디자이너라고 했는데, 대체 어떤 것들을 하길래. (웃음)개인적으로 한 분야에만 치우쳐 있는 것보다 골고루 분배되어 있는 디자이너가 되고 싶어서 기회가 되는 대로 최대한 많은 분야를 배우고 있는 중입니다. 그래픽, 편집, GUI 등 디자인뿐만 아니라 사진 촬영, HTML/CSS, IoT 등 언젠간 필요하다고 생각되는 분야까지도요.B.A.T의 메인 비주얼도 도맡아했다는 이야기도 들리던걸요?그렇습니다. B.A.T 폰트 개선 작업과 소개서 등 디자인도 모두 제가 했습니다. 하하 이것저것 다한다는 거 인정할게요! 그나저나 어떻게 B.A.T에 오게 된 건지 궁금해요.사실 이전에는 B.A.T를 몰랐어요. 퇴사 후 외주와 개인 작업을 병행하고 있었는데, 온라인 포트폴리오 사이트에 올라가있는 제 작업물을 보고 B.A.T에서 직접 연락을 주셔서 알게 되었습니다.전혀 몰랐던 회사인데 선뜻 러브콜에 응한 거예요?브랜딩이 너무 하고 싶었습니다. 그래서 퇴사를 결정했는데, 막상 나와보니 오래된 연차의 경력직들만 뽑더라고요. 제가 경력이 많은 편은 아니었거든요. 어떻게 해야 하나 고민하고 있던 상황에서 마침 연락을 받았고, 브랜딩을 할 수 있는 좋은 기회라고 생각해 결정하게 되었습니다.[노트폴리오 픽(NP)에 선정된 개인 작업물][B.A.T 폰트 및 로고 리뉴얼 작업]막상 와서 업무를 해보니 어때요?때로는 다양한 작업들을 하기에 브랜딩에만 집중 못 할 때도 있지만, 점점 더 브랜딩에만 집중할 수 있는 여건과 작업 시간을 만들어주셔서 차근차근해보고 있는 중입니다. 또한 혼자 프로젝트를 진행해야 한다는 부분이 초반에는 조금 어려웠는데, 막상 적응하고 나니 이러한 점들이 오히려 개인으로서 빠르게 발전해나갈 수 있다는 장점으로 작용되는 것 같습니다.사실 좋아서 하는 일이라도 '직업'이 되는 순간 힘들다고 느낄 때가 있잖아요. 맞아요. 특히 프로젝트를 진행하는 동안 제가 생각하는 방향과 다르게 흘러갈 때라던가 커뮤니케이션 미스로 서로에게 의미가 다르게 전달될 때가 가장 힘든 것 같습니다. 각자 열심히 잘하고 싶은 마음은 같은데, 그게 결과물로 잘 이어지지 않으면 아쉽죠.반대서 일하면서 가장 보람을 느꼈던 순간은요.나와 클라이언트가 모두 만족하면서 프로젝트를 마쳤을 때?여기서 마쳤을 때라는 부분이 가장 중요합니다! (웃음)최종적으로 이루고 싶은 목표는 뭐예요?호랑이는 죽어서 가죽을 남기고, 사람은 이름을 남기며, 디자이너는 포폴을 남긴다고 합니다(?)  만족할 수 있는 작업물을 통해 한 단계씩 계속해서 나아갈 수 있는 디자이너가 되고 싶습니다.마지막으로 B.A.T 지원자들에게 한마디.함께하세용!
조회수 904

바쁜 실무자를 위한, 기업용 웹하드 3종 비교

최근 정부에서 2025년까지 행정기관과 공공기관이 운영 중인 정보 시스템을 클라우드로 전면 전환·통합하는 사업을 진행한다고 발표했는데요. 이제 정보를 오프라인으로 보관하지 않고, 온라인으로 전환하는 작업이 국가적인 차원에서 시작된 것이죠. 이미 많은 민간 기업에서는 클라우드를 사용하여 업무를 보고 있습니다. 오늘은 클라우드 중 자료를 저장하고 공유하는 기업용 웹하드에 대해 비교해 보려 합니다.여러 웹하드 중에 기업용으로 사용하기 좋은 웹하드 3종을 비교해 봤습니다. 국내 제품인 LG U+ 웹하드와 해외 제품인 드롭박스, 구글 Workspace입니다.가격&용량기업용 웹하드는 온라인으로 파일을 보관하기 위해 사용하기 때문에, 용량 체크가 중요한데요. 제일 먼저 용량에 따른 가격을 비교해봤습니다.단순히 용량으로 따졌을 때 가장 가성비가 좋은 서비스는, 구글 Workspace의 비즈니스 플러스입니다. 1GB당 4원에 사용할 수 있죠. 하지만 1인당 가격이기 때문에 회사 직원들과 함께 사용하기에는 무리가 있습니다. 회사에서 최소 10명 이상이 사용한다고 생각한다면, 드롭박스의 Advanced가 용량 대비 가장 저렴하게 사용할 수 있습니다. 제공 용량이 무제한이기 때문이죠. 영상 같은 미디어를 취급하는 회사에서는 드롭박스가 가장 적합한 서비스가 아닐까 생각됩니다.LG U+ 웹하드, 드롭박스, 구글 워크스페이스 사이트 갈무리서비스별 장단점기업용 웹하드의 기본적인 기능을 제외한 서비스 특이점을 정리해봤는데요. LG 유플러스 웹하드의 경우에는 사용자 아이디를 무제한으로 제공한다는 특이점이 있었습니다. 드롭박스는 동기화 방식으로 집 있는 PC에서 파일을 지우면, 회사에 있는 PC까지 파일이 지워지는 방식이죠. 구글의 경우에는 웹하드의 특이한 기능보다 다른 애플리케이션 사용이 가능하다는 점이 있었습니다.아래와 같은 기업이라면?기업의 규모와 활용 방법에 따라 선호하는 웹하드가 다를 것 같습니다. 만약 아래와 같은 기업이라면 ‘협업툴 플로우’를 통해 웹하드의 기능을 대신 하는 것도 좋은 방안 중 하나가 될 것 같습니다.1. 파일을 보관 할 기업용 웹하드 (클라우드)가 필요하다.2. 웹하드를 사용하고자 하는 이유는 외부 공유보다, 내부적인 보관/관리의 목적이 크다.3. 프로젝트별로 자동으로 분류 되었으면 좋겠다.4. 클라우드 상에서 바로 문서를 오픈해야 한다. (한글 hwp, 워드, 파워포인트, 엑셀 등)기업용 웹하드도 협업툴로 한번에!올인원 협업툴 플로우협업툴 플로우 바로가기
조회수 1749

ZOYIFUL TALK (4) - 스니커 덕후, 워크인사이트 덕후가 되다

그는 원래, 유명 스포츠 의류 매장의 매니저였다. 관리하던 매장의 연매출은 100억 원을 훌쩍 넘겼다. 전국 1위 매출의 벽이 워낙 견고해 그의 매장에는 ‘산성’이란 별명이 붙기도 했다.어떻게 해야 매출을 올릴 수 있을지를 그는 늘 고민했다. 제품이 돋보이는 진열 방식을 연구하기도 하고, 명품 브랜드 매장처럼 밀려드는 손님들을 문 앞에 줄세워 매장의 인기를 뜨겁게 만들기도 했다.하지만 왠지 모르게 계속 답답했다. 장사가 잘 될 때에도 원인을 분명히 알기 어려웠기 때문이다.손님들의 움직임을 유심히 관찰하며 구매로 이어지는 패턴을 파악하려 해도 몸은 하나, 눈은 두 개 뿐. 시도해 보고 싶은 일들이 많았지만 적절한 데이터가 없다보니 개선안을 찾는데 어려움이 많았다.데이터를 제대로 이해하는 것이 앞으로 매장의 생사를 가르겠단 생각이 들었다. 제품에 대한 관심을 불러 일으키는 진열 방식이나 손님이 선호하는 이동 경로같은 소비자 행동 데이터가 궁금했다. 그렇게 데이터 분석 공부를 시작했다가, 워크인사이트를 제공하는 조이를 알게 되었다. 찾던 데이터가 있다는 것을 알게된 후 두근거리는 마음으로 조이의 문을 두드렸다.성공한 스니커 덕후이자 요즘은 주5회 크로스핏을 하러 간다는 에너자이저, 워크인사이트 세일즈 매니저 제이슨과 이야기를 나눠 보았다.ZOYI: 간단한 자기소개 부탁드려요!Jason: 안녕하세요, 조이에서 워크인사이트 세일즈를 담당하는 김한성입니다. 오프라인 매장을 운영하는 기업들에게 워크인사이트 서비스 소개부터 실제로 활용해 가치를 만들어 내는 단계까지 모든 과정을 총괄하고 있습니다.ZOYI: 워크인사이트에 꽂혀서 세일즈를 시작하셨다고 들었어요.Jason: 네, 제가 원래 무언가를 좋아하면 엄청 꽂히는 스타일이에요. 매장 데이터 활용에 대해 고민이 많던 시기여서 워크인사이트를 보자마자 꽂혔어요. 제가 원했던 데이터를 이미 분석하고 있는 회사가 있어서 놀랐죠. 저는 지금도 워크인사이트가 지금의 오프라인 리테일 생태계를 한 단계 진보시킬 제품이라고 확신하고 있어요.워크인사이트 말고 또 꽂힌 그것. 그는 스니커 덕후이기도 하다 (신발가게 아닙니다)ZOYI:어떻게 확신을 하게 되셨나요?Jason: 현업에 있으면서 누구보다 워크인사이트의 필요성을 느꼈거든요.차별화된 매장 운영을 위해서는 데이터가 꼭 쌓여야 한다고 생각했어요. 예컨대 주말과 평일, 오전과 오후에 일하는 알바생이 다르잖아요? 그럼 자주 오는 손님을 못 알아보고 필요 이상으로 친절한 응대를 할 때가 있어요. 그 손님은 이미 매장 구조나 물건을 다 알고 있으니 적당한 거리를 두고 응대하는 게 더 나은데 말이죠. 자주 오는 손님에 대한 데이터가 있었다면 그러지 않았을 거예요.또 시간대 별로 외부 유동인구나 매장 방문객이 달라지는데, 이를 고려하지 않고 점원을 동일하게 배치하는 경우가 있어요. 언제 사람이 붐비는지 잘 이해하고 있으면 훨씬 더 효율적으로 인력을 운용할 수 있겠죠.그런데 요즘같이 매장 구석구석 CCTV가 달려있고 기술이 발전한 세상에도, 고객들의 움직임이나 방문 기록 같이 소비자 행동을 알 수 있는 데이터가 하나도 없는 거예요. 답답함에 일을 그만두고 데이터 분석을 공부하다 조이를 만났습니다. 워크인사이트는 제가 원했던 데이터를 모두 다 수집할 뿐만 아니라 이미 상당한 수준의 분석까지 하고 있더라구요.오프라인 매장에서도 상당한 수준의 분석이 가능하다는 사실을 알고 놀랐다ZOYI: 실제로 영업을 해보니 어떻던가요.Jason: 정말 멋진 기술이지만, 새로운 개념이다보니 초반에 고객들의 신뢰를 구축하는 데 시간이 많이 들었죠. 시중에 있는 제품이라면 '이건 기존 제품과 어떤 점이 달라?'부터 대답해도 되는데, 처음 보는 제품을 소개하려니 '이건 뭐야? 이게 왜 필요해?'부터 묻기 시작하셨거든요.ZOYI: 꽤 어려우셨겠어요.Jason: 쉽지 않았죠. 특히 초반부터 대형 브랜드들을 상대로 세일즈를 하려니 더 그랬던 것 같아요.ZOYI: 대형 브랜드를 상대로 세일즈를 시작했던 이유가 있나요?Jason: 지금 당장 이 기술이 가장 필요한 곳이라 생각했기 때문이에요. 과거에는 어디에 매장을 오픈할 것인지를 결정하는 게 핵심이었어요. 예를 들어 드럭스토어 같은 경우는 몇 년 만에 매장을 1,000개씩 늘렸죠. 매장만 오픈하면 매출이 절로 늘었으니까요.반면 지금은 대한민국 어딜 가든 매장이 포화상태예요. 양적 성장보다 질적 성장이 중요한 시기가 된거죠. 이제는 오픈된 매장을 어떻게 효율적으로 운용하고 매출을 잘 올리느냐를 고민해야 하는 때가 온 건데, 이를 위해서는 소비자 행동 데이터를 제대로 들여다 볼 필요가 있었습니다. 저희가 그걸 잘 할 수 있었고요.ZOYI: 어떻게 세일즈 하셨나요?Jason: 방문객 데이터에 대한 고객 이해도를 높이고, 기술로 차별화된 가치를 드리기 위해 팀이 다함께 노력했어요. 덕분에 이제는 시장에서도 데이터 분석을 해야 한다는 것에 공감대가 어느정도 생겼습니다.또 다양한 분석을 하면서 활용 사례를 많이 만들어 나가다 보니 고객들도 이젠 스스로 이용 방법을 잘 찾아가고 계세요.ZOYI: 뿌듯하시겠어요.Jason: 네, 특히 제품을 도입한 후, 고객사가 저희를 신뢰하게 될 때에는 정말 뿌듯합니다. 예전엔 왠지 모르게 싸늘했던 고객사 담당자가 요즘은 제 기호에 맞는 커피를 주시더라고요. (웃음)일할 맛 나는 순간ZOYI: 데이터는 어떻게 활용되고 있나요?Jason: 매장이 큰 경우는 공간 활용도를 높이기 위해 매장을 구역별로 나눠서 마케팅해요. 한 H&B(헬스 앤 뷰티) 브랜드의 경우 매장에 방문객 분석 센서를 여러 개 설치해서 매장에서는 손님이 접근하지 않는 '데드존(Dead zone)'과 손님의 발길이 끊기는 지점을 파악했어요. 이를 이용해 동선이 끊기지 않게 연결하고 데드존을 살리는 리모델링을 했는데요, 리모델링 후 이전 대비 매출이 20%나 상승했어요.매장을 다시 방문한 손님들에 관한 데이터도 다양하게 활용하고 있어요. 예를 들어 백화점에 입점한 한 의류 브랜드는 아이템 진열 모양이 달라지지 않았을 때 재방문 고객이 매장에 머무는 시간이 짧아진다는 패턴을 파악했어요. 그래서 아이템 진열 방식을 자주 바꿔줬죠. 똑같은 아이템이라도 다르게 배치되면 새로운 제품이 나온 것 같은 느낌을 주잖아요. 쇼핑 경험을 개선하자 자연스레 매출이 늘었어요.ZOYI: 역시 세일즈 매니저세요. '어머, 이건 꼭 사야 해'라는 생각이 절로 들게 만드시네요.Jason: 네 맞아요. 이건 사야죠. 앞으로는 소비자의 행동 패턴이 실제로 어떻게 변하는지 구체적인 데이터를 파악하고 대응하는 기업만이 오래 살아남을 수 있다고 생각해요. 주먹구구식으로 운영하는 매장과 그렇지 않은 매장이 장기적으로는 많이 달라질 겁니다. 사소해 보이는 질적 차이가 쌓이고 쌓이면 커다란 격차를 만들어 낼 거니까요.ZOYI: 요즘은 크로스핏에 빠지셨다고 들었어요.Jason: 네, 가능하면 매일 가려고 노력하고 있어요. 저 혼자 하는 건 아니고 서너 명이 함께 다니는데요, 다른 분들도 같이 하자고 유혹 중입니다. 힘든 운동 끝판왕이긴 한데 하고나면 생물학적으로 살아있다는 느낌이 든달까, 몸에 활력이 막 생겨나요.ZOYI: 외부 미팅이 많은 직업이라 굉장히 바쁘실텐데, 운동 다닐 시간이 있으신가요?Jason: 네 가능합니다. 조이에서는 자신의 일만 제대로 하면 시간을 자율적으로 이용할 수 있어요. 고객사와 잘 맞추면 스케줄도 원하는대로 짤 수 있어요. 눈치 볼 필요 없이 운동 다녀와 또 열심히 일하곤 합니다.열심히 일한 자에게 자유가 주어질 지어다!!ZOYI: 제이슨의 건강한 삶을 응원합니다! 마지막으로 한마디 해주세요.Jason: 앞서 말했듯이 소비자 행동 데이터를 보고 매장 운영을 하면 효율성 측면에서 분명 더 나은 결과를 만들어요. 그게 지금 보기에는 미세한 차이더라도 시간이 지날수록 다른 '클래스'를 만들게 될 거예요.그런 부분에서 볼 때 워크인사이트는 점차 매장을 운영하는 기업들에게 차별화된 클래스를 만들어주는 제품이 될 것이라고 생각합니다. 갈수록 고객사에서 갈증을 느끼고 먼저 찾는 기술이 될 거예요. 꾸준한 성장을 위해 앞으로도 지치지 않고 최고의 가치를 드리는 데 최선을 다하겠습니다!#조이코퍼레이션 #팀원소개 #팀원인터뷰 #기업문화 #조직문화 #업무환경
조회수 2301

Dropwizard와 Asynchronous HBase 적용기

Background워크인사이트 서비스는 루비 온 레일즈 기반으로 작성된 웹 애플리케이션입니다. 주로 사용하는 데이터의 대부분은 HBase에 저장되어 있습니다. HBase는 자바로 작성된 API를 기본으로 제공하므로, 레일즈가 직접 HBase의 데이터에 접근할 수 없습니다. 따라서 데이터를 효과적으로 읽어들이기 위해서는 두 가지 방법 중 하나를 선택해야 합니다. 첫 번째는 HBase Java API를 이용하기 위해 웹 애플리케이션 역시 자바 기반의 프레임워크로 재작성하는 것이고, 두 번째는 HBase 스토리지 측 데이터 형식과 레일즈 웹서비스 측 데이터 형식을 서로 연결해주는 RPC 중개자를 도입하는 것입니다. 첫 번째 방법은 프로그래밍 언어를 통일함으로써 데이터 통신의 일관성은 물론 시스템 안정성이나 성능 측면에서 좀 더 낫다는 장점이 있는 반면에, 현재까지 작성한 레일즈 애플리케이션을 전부 자바 기반의 프레임워크로 재작성해야한다는 단점이 있습니다. 두 번째 방법은 보다 범용성을 지향하는 방식으로 향후 시스템의 확장에 좀 더 유용하지만, 첫 번째 방법보다 시스템 전체 성능은 뒤떨어진다는 단점을 갖고 있습니다.당시에는 이미 워크인사이트의 개발이 상당히 진척된 상태였기 때문에, 레일즈 프레임워크를 그대로 유지하면서 자바와 소통할 수 있는 JRuby를 사용하는 것이 최선인 것 같았습니다. 하지만 실험 결과 JRuby는 실 사용할 수 없을 정도의 성능을 냈습니다. 무엇보다도 레일즈 지원이 아직 미성숙한 상태였고, 사용중인 루비 젬 중에도 네이티브 C 구현 루비만 지원하는 젬이 상당 수 있었으며, 이러한 이유들로 인해 결국 JRuby는 대안에서 제외되었습니다. 루비 온 레일즈를 버리고 다른 자바 기반 프레임워크로 전면 재작성하기에는 너무 큰 소모비용과 위험요소가 있었기에 다른 방식을 고려하게 됩니다.그래서 조이는, 앞서 말한 크게 두 가지의 대안 중 두 번째, 범용 데이터 중개자를 도입하기로 결정하고, Thrift를 선택하기로 결정하였습니다. Thrift는 페이스북에서 처음 개발하였고, 현재는 아파치 재단에서 관리하고 있는 범용 RPC 프레임워크입니다. 비슷한 기능을 가진 다른 프레임워크로는 구글의 Protocol Buffer나 아파치 Avro등이 있습니다만, Thrift를 선택한 이유는 지원하는 프로그래밍 언어의 종류가 가장 다양하다는 것이었고, 워낙 많은 사용 사례가 있어 신뢰성이 검증되었다는 판단을 했기 때문입니다. Thrift는 그 규모에 걸맞게 다양한 플랫폼별 배포판을 지원하고 있으며, 조이는 현재 사용중인 하둡 시스템 관리용 Cloudera manager를 지원하는 배포판을 이용하여 디플로이하였습니다. 레일즈와의 연동도 thrift젬을 이용하여 손쉽게 할 수 있었습니다. 테스팅 결과도 문제 없었고, 이것으로 모든 것이 잘 돌아가는 줄 알았습니다.그림1. Thrift를 적용한 ZOYI Back-end SystemProblem워크인사이트는 런칭 이후 지금까지 가파른 성장세를 이어오고 있습니다. 서비스 초기에 느긋한 속도로 성장하던 적용 매장 증가 추세는, 2015년 현재 기하급수적으로 증가하는 상승곡선을 그리고 있으며, 그에 따른 시스템의 스케일 업 & 아웃 이슈도 매 달 새롭게 발생하고 있습니다.그림2. 오픈 이후 워크인사이트가 구동 중인 실제 매장 수문제없이 잘 굴러갈 것만 같았던 Thrift서비스 역시 조이의 성장세에 따라 점차 부하가 걸리기 시작했는데, 당초에 기대했던 범용 RPC 프레임워크가 보장하는 확장성과 동시성과는 조금 다른 성격의 문제가 발생하게 되었습니다. 시스템에 대규모 질의가 집중되는 시점에 병목 현상이 발생하고, 이것이 CPU와 메모리의 한도를 초과하면 그대로 다운되는 현상이었습니다. 특히 메모리 사용량이 복구되지 못하고 계속 쌓여만 가는 누수 현상이 치명적이었습니다. 게다가 이렇게 다운된 Thrift가 재시작된 경우, 레일즈와의 연결을 복구하지 못하는 현상도 비주기적으로 발생하였습니다.조이의 하둡 클러스터는 본래부터 확장성을 고려하여 설계되었기 때문에, Thrift에서 발생한 이러한 문제는 생소한 것이었습니다. 다각도에서 테스트를 해 봤지만, 처음에는 원인을 파악하기가 쉽지 않았습니다. 리부트된 클러스터도 자가 복구가 되지 않아, 개발팀이 직접 클라우데라 매니저를 주시하고 있다가 Thrift 서버의 다운 시점에 수동으로 재시작을 해 줘야 하기도 했습니다. 데이터 변환 프로토콜의 문제인지 검토해 보았으나, Thrift 프로토콜이 갖는 본질적 결함은 더더욱 아니었습니다. 자바 언어가 갖고 있는 내재적 결함도 아니었습니다. HBase가 제공하는 자바 API의 문제도 아니었습니다.하지만 심도 있는 검증 과정을 통해, Thrift의 가비지 컬렉션이 제대로 작동하지 않는 문제를 발견하였고, 이는 단순히 Thrift의 최적화의 문제가 아니라는 결론에 이르렀습니다.Dropwizard그렇게 고심하던 개발팀은, 2014년의 워크인사이트 첫 런칭 시점으로 되돌아가서 생각해보기로 합니다. 당시의 조이가 먼저 생각했던 방식은 JVM 기반의 프레임워크였는데, 자바를 이용하여 서비스 레벨도 구현하면 Thrift에서의 데이터 변환 과정에서 야기되는 문제를 원천적으로 방지할 수 있음에 다시금 주목하게 되었습니다. 많은 프로그래밍 언어간의 데이터 통신을 위해 설계된 Thrift는 사실 레일즈와 자바로 균일하게 구축된 조이 시스템에는 필요 이상으로 무겁고 큰 프레임워크였습니다. 조이가 겪은 이런 Thrift의 문제를, 해외의 여러 기업들도 경험하였고 각기 다른 방법으로 최적화를 진행한 것도 알게 되었습니다. 이렇게 된 이상 바꿀 수 밖에 없었던 것입니다.그래서 다음 대안을 찾기 위해 많은 리서치와 스터디를 진행했습니다. 넘쳐나는 프레임워크들의 홍수 속에서 가볍고 안정적이며 구현이 편리한 프레임워크를 찾기란 쉽지 않았습니다만, 결국 Dropwizard라는 자바 프레임워크를 도입하기로 결정하게 됩니다. Dropwizard는 이미 잘 알려져 있는 Spring이나 Play 등과 같은 풀 스택 자바 프레임워크와는 다른, 경량 REST API 프레임워크입니다. Dropwizard는 모듈화가 잘 되어 있고, 숙성된 자바 생태계의 안정적인 라이브러리(Jetty, Jersey, Jackson)들을 사용하였으며, 모던 자바에 걸맞는 방식(리플렉션, 동시성 등)을 사용하기 쉽게 패키징되어있습니다. 국내에는 잘 알려지지 않았지만, 해외에서는 이미 Airbnb 등 유수의 스타트업들이 실제 서비스에 사용함으로써 그 유용성을 입증하고 있는 프레임워크입니다.그림3. Dropwizard로 새로 구성된 ZOYI Back-end System다만, 처음 사용하는 프레임워크에 조이의 모든 서비스를 포팅하는 것은 불가능에 가까웠고, 설령 하더라도 엄청난 리스크를 감당할 가치가 있는 지 의문이었습니다. 레일즈가 보장해주는 빠른 기능 구현과 쉬운 배포 및 강력한 ORM 등은 루비 온 레일즈가 주는 최대의 강점이기에, 이를 포기하기는 쉽지 않았습니다. 생산성과 성능, 어느 한 쪽도 놓치고 싶지 않았습니다.그래서 조이는 두 마리 토끼를 다 잡아 보기로 결정합니다. 레일즈의 장점을 유지하면서, Dropwizard의 최대 장점인 HBase 데이터 접근의 유연성도 살릴 수 있는 방법을 찾기로 하였고, 결론적으로 Dropwizard는 기존의 Thrift가 담당하던 데이터 중개자의 역할만을 수행하게 되었습니다. Dropwizard의 잘 나뉘어진 모듈화는 이를 가능하게 해 주었습니다. 모든 모듈을 사용하면 풀 스택 프레임워크에 버금가는 규모의 시스템도 구축할 수 있지만, 필요한 것만 선택하여 사용하면 가볍고 빠르게 작동하는 미들웨어 역할도 가능한 것입니다.Asynchronous HBase, and Java 8Dropwizard가 HBase 연결에 사용한 클라이언트 모듈은 AsyncHBase입니다. Asynchronous HBase는, 타임스탬프 기반 데이터베이스인 OpenTSDB를 만든 팀이 자신들의 제품에 HBase를 연동하기 위해 기존의 HBase 클라이언트인 HTable을 대체하는 모듈을 재작성한 것으로, 완전한 비동기 방식과 넌블록킹 및 스레드 안전성 보장이 강점이라 할 수 있습니다. AsyncHBase와 Dropwizard를 연동하는 것은 매우 수월했습니다. 테스트 결과, 간결한 코드로도 초당 수 만 단위의 동시성을 안정적으로 처리할 수 있음을 검증했습니다. 조이는 OpenTSDB를 실시간 데이터 분석에 사용하고 있어, 해당 팀이 제공하는 제품의 품질과 전망에 대해 신뢰를 갖고 있었습니다. 테스트 결과는 이 신뢰를 더욱 뒷받침해주었고, 본 모듈을 Dropwizard의 HBase 연결 모듈로 선정하게 되었습니다.또한, Dropwizard와 AsyncHBase의 도입과 함께 처음으로 자바 버전 8로의 이식도 진행하게 되었습니다. 자바 8은 람다와 스트림 등 함수형 프로그래밍의 여러 기법을 대거 도입하였고, 자바 특유의 장황한 문법을 조금 더 간결하게 축약할 수 있는 장점이 있습니다. Dropwizard와 AsyncHBase 모두 자바 8과 순조롭게 연동되었으며, 이 결과에 만족한 조이는 기존의 하둡 맵 리듀스 프로젝트 역시 자바 8로 버전업하기로 결정하였습니다.PerformanceDropwizard의 성능 테스트 결과는 만족스러웠습니다. AsyncBase도 기대를 저버리지 않는 결과를 보여 주었습니다. HBase Java API와의 매끄러운 연동은, 성능 측면에서 기존과는 비교할 수 없을 정도의 향상을 보여주었고, 이 덕분에 기존 맵 리듀스 워크플로우 중 일부를 실시간 처리로 옮겨, 좀 더 유연하고 동적인 분석이 가능하게 되었습니다.다음의 비교는 Thrift와 Dropwizard의 각각의 벤치마크 테스트를 100개 동시 작업, 단위당 10000개의 요청으로 수행한 경우의 결과를 나타낸 것입니다.그림4. Thrift 테스트 시의 메모리 사용량Concurrency Level: 100 Time taken for tests: 514.315 seconds Complete requests: 10000 Failed requests: 0 Total transferred: 32090000 bytes HTML transferred: 27600000 bytes Requests per second: 19.44 [#/sec] (mean) Time per request: 5143.151 [ms] (mean) Time per request: 51.432 [ms] (mean, across all concurrent requests) Transfer rate: 60.93 [Kbytes/sec] received Thrift 벤치마크 결과. 전체 수행에 514초가 걸렸습니다.그림5. Dropwizard 테스트 시의 메모리 사용량Concurrency Level: 100 Time taken for tests: 4.599 seconds Complete requests: 10000 Failed requests: 121 (Connect: 0, Receive: 0, Length: 121, Exceptions: 0) Non-2xx responses: 121 Total transferred: 23288000 bytes HTML transferred: 21559452 bytes Requests per second: 2174.25 [#/sec] (mean) Time per request: 45.993 [ms] (mean) Time per request: 0.460 [ms] (mean, across all concurrent requests) Transfer rate: 4944.72 [Kbytes/sec] received Dropwizard 벤치마크 결과. 전체 수행에 4초가 걸렸습니다!그림6. 초당 처리량 (높을수록 좋음)벤치마크 테스팅 시 스레드 분산이 최적화 된 경우에는 최대 100배 이상의 속도 향상이 있었습니다. Dropwizard는 기존 Thrift에 비하여 성능 향상은 물론, 안정성 면에서도 시스템이 다운된 이후에 자동 복구되지 않는 현상도 사라졌습니다. 무엇보다도 짧은 코드만으로 대규모의 질의에도 견고하고 신속하게 반응하는 서비스를 구현할 수 있다는 점이 Dropwizard의 가장 큰 장점입니다.Conclusion유용한 오픈소스 프로젝트는 시장에 너무나도 많이 널려 있습니다. 이 중에 어떤 것을 선택하는가는 소프트웨어 기업에게 중요한 안건이며, 잘못된 결정은 프로젝트 자체는 물론 회사의 생사를 결정하기까지 합니다. 조이는 적합성, 성능, 안정성, 생산성 등 모든 면에서 조이의 서비스와 알맞는 제품을 찾으려고 항상 노력하고 있으며, 가능한 한 넓고 깊은 검증, 분석 및 연구를 통해 최적의 대안을 찾아내고 있습니다. 그 결과, 이번 Dropwizard와 Asynchronous HBase를 도입하여 기존의 Thrift를 대체하는 프로젝트는 예상보다 훨씬 좋은 성과를 낼 수 있었습니다. 국내에는 Dropwizard의 실무 사용기 등을 찾아보기 힘들고, 한글화된 문서 자체도 찾기 쉽지 않은데, 이 글이 앞으로의 선택을 고민하는 분들, 드롭위자드에 관심이 있는 분들께 도움이 될 수 있으면 좋겠습니다.#조이코퍼레이션 #개발팀 #개발자 #개발환경 #업무환경 #인사이트 #경험공유
조회수 34266

소규모팀에 적합한 QA 프로세스 구축기(스타일쉐어팀의 QA방식)

안녕하세요. 스타일쉐어에서 PM을 맡고있는 박성환 입니다. 스타일쉐어팀이 QA프로세스를 도입한 것은 약 4개월 정도 되었습니다. 기존에는 QA 프로세스 없이 진행했었지만 주요 기능에 대한 오류감소 및 릴리즈 안정성 확보를 위해 도입을 고민하게 되었습니다.QA프로세스를 처음 도입할때 많은 고민이 있었습니다. 대규모 서비스에 적용하는 QA프로세스를 그대로 도입하기에는 인력 + 시간이 모두 부족했기에 시간과 인력이 많이 투여되는(다만, 안정성이 높음) 명세기반 테스트는 최소화하고, 도입 가능한 서비스(구글플레이의 단계적 배포, Crashlytics)를 활용해 부족한 부분을 커버하는 형식으로 저희 식의 간략화된 QA프로세스를 만들었습니다.(인력 + 시간이 상대적으로 제한적인 스타트업에 좀 더 효율적인 방식.)스타일쉐어팀의 QA 기간 : 앱 업데이트 당 3일(테스트/수정/릴리즈까지의 모든 기간)테스트 인원 : 2명 (1차QA 1명, 최종확인 1명)마이너 버그 수정 버전에서는 QA진행하지 않음스타일쉐어팀의 QA프로세스는 “주요 사용 케이스의 동작 확인” + “수많은 사용 패턴에 대한 대응”으로 정리할 수 있습니다. 저희 팀이 진행하고 있는 방식을 조금 더 자세히 설명해 드리자면 아래와 같습니다.(API 테스트, 자동화 테스트를 제외한 앱 릴리즈 전 진행하는 사용성 테스트에 대한 내용만을 담았습니다.)1. QA일정스타일쉐어 앱의 업데이트 주기는 4주에 1회로 진행하고 있습니다. 그 중 1주 단위의 스프린트가 3주 동안 진행되고 4주차 스프린트는 QA 및 릴리즈 스프린트로 진행됩니다. 매 스프린트에서 담당 엔지니어가 수정 혹은 추가된 단위기능에 대해 간단한 테스트가 끝나면 4주차에 알파 빌드 및 전 구성원이 설치/사용해보고 동시에 1차 QA(통합 테스트)를 진행하게 됩니다. 1차 QA의 버그들을 수정하면 베타버전 빌드 및 최종 확인을 진행한뒤 문제없으면 바로 릴리즈가 되어 사용자에게 신규 버전을 제공합니다.2. 주요 사용 케이스의 동작 확인1) 1차 QA(명세기반 테스팅)4주차에 신규 알파버전이 생성되면 1차 QA를 진행하게 됩니다. 스타일쉐어는 전담 QA담당자가 없습니다. 1차 QA는 다른 파트 엔지니어 1명이 테스트를 진행하고 2차는 PM이 최종확인 후 릴리즈 됩니다. 이 단계에서는 Test case를 바탕으로한 명세기반 테스트로 진행됩니다.테스트 케이스(TC)를 통한 테스팅은 핵심적인 기능 및 주 사용케이스에 대한 검수작업이라고 보시면 됩니다. 게임 혹은 복잡도가 높은 서비스의 경우에는 매 업데이트마다 모든 케이스에 대한 테스트가 어렵고 비효율적이기 때문에 리스크 분석기법, 탐색적 테스팅, 경계값 테스팅 등과 같은 방식을 사용하지만 스타일쉐어 서비스의 경우 상대적으로 복잡도가 낮아 매 업데이트 마다 대부분의 기능에 대한 테스팅을 진행합니다(TC로 100% 커버리지를 목표로 하지 않습니다. 불가능하다는 것을 인정하고 진행하는 것이 효율적). 테스트케이스 작성시에 유의했던 부분은 쉽고 명확하게 케이스를 명시해서 오류에 대한 판단이 명확하도록 하고 스타일쉐어 앱을 처음 본 사람도 바로 테스트가 가능하도록 작성하고 있습니다. (스트레스 테스트는 특이 사항이 있을 경우에만 진행합니다.)2) 교차 테스팅스타일쉐어의 경우에는 1차QA 과정을 담당 엔지니어가 아닌 다른 파트의 엔지니어(iOS버전 테스트의 경우 web, backend, Android 개발자 중 1명이 진행)가 1차 테스트를 진행합니다. 이 방식의 장점은 매번 같은 사람이 테스트하는 것보다 다른 백그라운드를 가진 엔지니어가 테스트 함으로써 다양한 시각으로 테스트를 하게 되 오류발견이라던지 서비스 개선 아이디어를 찾는데 더 효과적이었습니다. 그리고 신규 입사자의 경우 가장 먼저 테스트 담당자로 참여할 수 있도록 합니다(가장 빠르게 서비스 플로우를 이해할 수 있는 방법).3) 최종확인1차 QA 및 전사 베타버전 사용의 피드백을 통해 나온 버그/주요 기능에 대해 마지막 점검하는 절차입니다. 이 부분은 제품책임자(PM)가 담당을 하며, 이 부분을 통과하면 릴리즈 단계로 진행되어 사용자에게 업데이트 된 앱이 전달됩니다.3. 수많은 사용 패턴에 대한 대응단계적 출시(안드로이드)1차 QA과정인 테스트케이스를 통한 테스팅은 명시되어 있는 패턴과 제한적인 환경(Device, 해상도, 인터넷 환경 등등)에서의 주요 케이스에 대한 테스팅만 가능합니다. 하지만 사용자는 수많은 환경 및 사용패턴으로 서비스를 사용하기 때문에 이 부분을 TC의 스크립트로 모두 추가하고 살펴보기란 불가능에 가깝습니다. 그래서 저희 팀은 단계적 출시를 도입해서 대응하고 있습니다.모든 테스트 과정을 완료한 뒤 구글플레이 개발자 콘솔에서 앱 업데이트시 ‘지금 출시’가 아닌 ‘단계적 출시’로 선택합니다. 그리고 비율을 선택할 수 있는데 이 비율은 업데이트가 적용되는 사용자 비율을 설정하는 기능입니다. 즉, 전체 사용자가 아닌 미리 지정한 비율의 사용자에게만 업데이트 버전을 제공함으로써 우선적으로 우리가 예상하지 못한 버그나 불편한 부분이 있는지 확인해볼 수 있습니다. 스타일쉐어팀의 경우 5%의 사용자 비율로 단계적 출시를 1~2일 동안 진행한뒤 버그 리포팅 및 CS내용 확인 후 100% 대상으로 업데이트를 진행합니다.(5% 단계적 출시 이후 패치된 버전을 배포하면 해당그룹(5%)에게만 업데이트 됩니다.)이 부분은 오류에 대한 대응 및 새로운 기능에 대한 부분적인 반응을 볼 수 있는 용도로도 사용할 수 있어 매우 활용도가 높습니다.(신규 앱에 대해서는 해당 기능 사용이 불가능합니다. 업데이트시에만 사용가능합니다.)4. 도입효과1) Crash Free Sessions(Crashlytics)4월 13일 기준으로 Crash Free Sessions는 전체 사용자 중 99.8%의 안정성을 가져가고 있으며(이전에는 95~96%), 기존에는 주말과 같이 사용자가 많은 경우 그만큼 크래시 발생빈도도 높았지만 최근 버전에서는 주말/평일 관계없는 그래프를 보이고 있습니다.2) Crash Report(Flurry)위 지표는 1월~3월 까지의 Flurry의 안드로이드 버전 Crash Report를 캡처한 화면입니다. 1월 초만 해도 일 40회 정도의 크래시가 발생했다면 최근은 일 3~5회 정도로 개선된 모습을 확인할 수 있습니다.5. 마무리다만, 이러한 노력에도 버그는 여전히 존재합니다. 그래서 저희 QA프로세스도 개선할 방향을 모색하고 있는데, 현재의 개선 목표는 ‘퀄리티는 유지하되 속도는 빠르게’ 라는 방향으로 진행 중입니다. 그물을 더 촘촘히 짜듯이 명세기반 테스트의 규모를 늘리는 것에는 시간적/효율적인 한계가 분명히 존재하므로 자동화 테스팅(UI)의 강화를 통해서 부족한 부분을 채워보기 위한 시도를 준비하고 있습니다.하루라도 빠른 서비스의 개선도 매우 중요하지만 그만큼 우리가 전달하고자 하는 것을 문제없이 사용자에게 제공하는 것도 속도만큼 중요하다 생각 합니다. 문제없이 전달하기 위해 계속해서 고민하고 시도해볼 수 있도록 하겠습니다.#스타일쉐어 #개발 #개발팀 #개발자 #노하우 #인사이트
조회수 1026

앱 어트리뷰션 가이드 - 트래킹 URL

어트리뷰션 툴의 출현 배경과 어트리뷰션의 동작에 필요한 세 가지 축을 지난 글에서 살펴 보았습니다. 이번에는 어트리뷰션의 한 축을 이루는 트래킹 URL을 설명하며 내용을 이어 나가려 합니다. 트래킹 URL의 역할과 구조를 이해하게 되면 어트리뷰션 툴을 다루는 난이도가 크게 낮아집니다. 그만큼 실무에서 더욱 효과적으로 툴을 활용할 수 있게 되고 광고 성과 최적화에도 가속이 붙게 될 것입니다. 트래킹 URL을 사용하는 이유어트리뷰션이 가능하기 위해서는 전체 유저들 중에서 광고의 영향을 받은 유저를 구분해 낼 수 있어야 합니다. 누군가를 ‘광고의 영향을 받았다’고 평가하기 위해서는 확실한 근거가 필요한데요, ‘광고 클릭’이 바로 이 확실한 근거가 됩니다. 클릭은 유저의 능동적인 광고반응이기 때문입니다.이 ‘클릭’ 행위를 알아내기 위해 광고 클릭 시점에 동작(Fire)하는 장치를 활용할 필요가 있었고 랜딩 페이지 URL이 적합한 수단이라는 것을 알아내게 됩니다. 두 가지 이유가 있는데, 광고 클릭과 랜딩 페이지 URL 연결이 사실상 동일한 행위라는 것이 첫번째이며, URL을 통해 최종 페이지로 연결되는 중간에 어딘가를 경유하도록 설정할 수 있다는 것이 두번째입니다.트래킹 URL을 클릭하면 중간에 트래커 서버를 경유하게 된다. 트래커는 광고 클릭에 대한 정보를 기록하고, 유저를 랜딩 페이지로 리다이렉트한다.이 중간 경유지가 있음으로써 심도 있는 어트리뷰션이 가능해 집니다. 왜냐하면 광고를 클릭한 유저가 경유지를 거치면서 다양한 데이터를 알려주고 이동하기 때문입니다. 수집하는 데이터가 많을수록 당연히 더 정확한 어트리뷰션이 가능한데요, 더 많은 데이터를 수집하는 방법이 바로 어트리뷰션 툴에서 다양한 옵션을 추가하여 트래킹 URL을 생성하는 것입니다. 트래킹 URL은 낯선 것이 아니다트래킹 URL을 만들기 위해 어트리뷰션 툴을 처음 접하게 되면 복잡하고 어려운 느낌을 받기 쉽습니다. 입력해야 할 항목들이 다양해서 손이 많이 가고, 세부 옵션의 숫자에 압도당해 어떻게 사용해야 할지 판단하기 어렵습니다. 게다가 반신반의 하면서 만들어낸 트래킹 URL은 의미를 알 수 없는 문자로 가득해서 혼란스럽지요. 보는 사람으로 하여금 이 URL을 천천히 살펴보면서 의미를 알아내려는 시도 조차 하고싶지 않도록 만들기에 충분합니다.하지만 트래킹 URL을 만드는 프로세스를 구조적인 시각으로 바라보면 매우 익숙한 절차라는 것을 알게 되는데, Bitly로 단축 URL을 만드는 것과 어트리뷰션 툴로 트래킹 URL을 만드는 것이 절차상으로 다르지 않다는 것이지요. 단지 트래킹 URL 생성에는 생소한 옵션들이 많아서 어려워 보일 뿐입니다.원래의 URL을, 툴에 입력해서, 최종 URL로 변환하는 구조는 동일하다. 다만 툴에 입력하는 2번 과정에서 어트리뷰션 툴은 다양한 옵션을 지정해줘야 하기 때문에 할 일이 더 많은 것이다.결국 툴에 URL을 입력하는 2번 과정을 이해하게 되면 트래킹 URL을 자유자재로 다룰 수 있게 됩니다. 2번 과정에서 주로 사용하는 옵션들이 무엇이고 어떤 기능을 하는지에 대한 설명이 있다면 큰 도움이 될 것입니다. 트래킹 URL 톺아보기완성된 트래킹 URL을 살펴보면서 URL의 구조부터 세부 항목들의 역할까지 차근차근 알아보겠습니다.http://ads.wisetracker.co.kr/wa/wiseAdw.do?_wtno=502&_wthst=trk.wisetracker.co.kr&_wts=P1535606238444&_wtc=C1535606305460&_wtm=C0000013&_wtaffid={wff_id}&_wtbffid={wffsub_id}&_wtcid={clk_id}&_wtgpid={GAID}&_wtidfa={IDFA}&_wtdl=http://www.wisetracker.co.kr&_wtp=2위 예제 URL은 와이즈트래커 홈페이지 주소(http://www.wisetracker.co.kr)를 트래킹 URL로 변환한 결과물입니다. 구조를 파악하기 위해 URL을 두 가지 배경색으로 구분했습니다. 하늘색 부분은 Base URL, 회색 부분은 파라미터입니다.1. Base URL광고를 클릭한 유저가 경유하는 지점입니다. 유저는 이 곳에 단지 몇 밀리 세컨드 정도만 머무르는데, 이 때 파라미터가 담고 있는 정보들을 트래커가 수집하고 유저는 즉시 최종 목적지로 리다이렉트 됩니다. 비근한 표현을 빌리자면, Base URL은 ‘찍고 가는 곳’ 정도로 이해하면 좋습니다. 2. 파라미터어트리뷰션에 필요한 다양한 정보들이 담겨있는 부분입니다. 툴에서 트래킹 URL을 생성할 때 다양한 옵션들을 선택하게 되는데요, 선택하는 옵션의 숫자가 많아질수록 파라미터가 길어진다고 봐도 틀리지 않습니다. 더 많은 옵션을 사용할수록 더 많은 데이터를 트래킹 할 수 있고, 더 많은 데이터를 측정하기 위해 더 많은 파라미터가 필요하기 때문입니다.하나의 파라미터는 하나의 데이터를 의미합니다. 실무에서는 간혹 트래킹 URL이 측정할 수 있는 항목을 알아내기 위해 전체 URL에서 각각의 파라미터를 구분해낼 필요가 있는데, 이럴때는 앰퍼샌드(Ampersand, &) 단위로 끊어내면 됩니다. 앰퍼샌드가 보이면 ‘새로운 파라미터가 시작되는구나’ 라고 생각하면 되는 것입니다.와이즈트래커에서 주로 사용하게 되는 파라미터를 간략하게 정리하면 다음과 같습니다.파라미터 종류설명와이즈트래커 구현광고 매체광고가 게재된 매체 정보._wts광고 캠페인광고의 캠페인 정보._wtc하위 퍼블리셔DSP나 네트워크 매체에서 실제 광고가 나간 지면._wtaffid, _wtcffid…클릭 ID광고 클릭시 발생하는 고유 식별자._wtcid단말기 식별자광고 클릭이 발생한 단말기의 고유 식별자._wtgpid, _wtidfa랜딩 페이지리다이렉트 후 이동할 최종 목적지._wtdl룩백 윈도우성과 기여 인정기간. 룩백 윈도우 이후에 발생한 광고성과는 인정하지 않음._wtp3. 유저 에이전트유저 에이전트는 그 이름처럼 실제 유저를 소프트웨어 상으로 대신하는 역할을 합니다. 여기에서 말하는 소프트웨어란 일반적으로 브라우저, OS, 단말기 정보 등을 포함한 데이터를 의미합니다. 광고를 클릭한 유저가 트래커를 거쳐갈 때 서버는 접속자의 유저 에이전트 정보를 알 수 있으므로, 이런 값들은 파라미터에 포함시키지 않아도 분석이 가능합니다.유저가 광고를 클릭함으로써 트래킹 URL로 연결되고, 유저는 트래커를 거치며 파라미터에 포함된 다양한 데이터를 전달한 뒤, 앱을 다운로드 할 수 있는 최종 목적지로 연결됩니다. 이렇게 한 번의 클릭을 시작으로 어트리뷰션의 전체 여정이 전개되는 것입니다.지금까지의 내용을 정리하면 다음과 같습니다.유저가 광고에 반응했다는 것을 측정하기 위해 트래킹 URL을 사용한다트래킹 URL은 트래커 서버를 경유한 뒤 최종 랜딩 페이지로 유저를 이동시킨다유저의 트래커 경유 시점에 트래커는 파라미터에 포함된 데이터를 수집한다트래커는 수집한 정보를 바탕으로 어떤 유저가 어떤 매체의 광고를 언제 클릭 했는지를 알게 되었고 유저는 앱 다운로드 페이지로 이동 했습니다. 유저가 앱을 다운로드 했는지를 트래커는 어떻게 알 수 있을까요? 다음 글에서 설명하도록 하겠습니다.
조회수 753

커머스앱에 필요한 와이즈트래커 리포트 Top 3

구글 플레이 스토어에서 앱을 구분하는 카테고리만 20여가지 입니다. 게임과 SNS에 집중되었던 초기의 앱 시장은 갈수록 종류가 다양해지고 있으며, 그로 인해 발생하는 분석 니즈 또한 다양해지면서 정형화 된 분석도구 보단 앱 고유의 비즈니스를 수용할 수 있는 커스텀 분석도구에 대한 요구가 증가하고 있습니다.맞춤형 분석 서비스를 제공하는 와이즈트래커에서 ‘커머스앱’을 운영하는 마케터에게 꼭 필요한 와이즈트래커의 리포트 3가지를 소개하겠습니다.1. RETENTION (리텐션)웹 광고만큼 종류가 다양해진 모바일 광고 시장은 마케터에게 광고 운영의 다양성을 제시하지만, 그만큼 마케터는 효율적인 광고 집행을 위해 고민이 깊어지게 됩니다. 어떤 채널에 어떤 매체를 활용해야 ROI가 높을까? 일시적으로 설치만 증가하고 삭제하는 건 아닐까?와이즈트래커의 이러한 고민에 데이터로 답을 드립니다. Retention 리포트는 운영중인 광고 채널을 통해 설치된 사용자들이 이후에도 지속적인 사용을 하는지 또는 삭제를 하는지 알려드립니다. 커머스 앱의 경우 최초 앱 설치 시, 제공하는 할인쿠폰 등의 이점이 있기 때문에 설치 당일의 활동과 주문은 증가할 수 있지만 해당 목표를 달성한 뒤 삭제하는 경우도 많아 재사용률 및 삭제율 데이터를 통해 진성유저를 획득하는 데 효과적인 광고 채널이 무엇인지 알 수 있습니다.2. 전환 시나리오 기업은 성과를 얻기 위해 필요한 정보를 단계별로 수집하도록 정의하는데, 이를 전환시나리오라고 합니다. 회원가입 시, 필요한 정보 수집 등에 동의하고 가입 양식을 작성하고 인증 후 완료하는 단계를 거치는데, 이 과정에서 단계별 통과율/이탈률을 통해 고객 획득의 기회를 유실하는 문제되는 화면이 있는지 도출합니다.회원가입, 주문을 시도하는 사용자는 전환 목적이 높은 사용자임에도 특정 단계에서 이탈률이 높다는 것은 무언의 불편함을 제공하고 있다고 볼 수 있습니다. 전환 시나리오 리포트는 이러한 문제점을 도출하고 개선을 통해 전체 전환율을 높이는 데 기여합니다. 3. 구매 간격 분포커머스앱은 평일 취침 전, 숙박 앱은 목요일 저녁, 컨텐츠 앱은 평일 출퇴근 시간 등 사용자는 알게 모르게 앱 사용 주기를 갖고 있습니다. 사용자의 앱 사용패턴을 이해한다면, 보다 시기적절한 마케팅 전략을 수행할 수 있습니다. 와이즈트래커의 구매 간격 분포 리포트는 사용자들의 재구매 사이클을 파악합니다. 한 달 간격으로 꾸준한 구매를 하는 충성도 높은 고객에겐 구매 후 3주~4주 지난 시점에 메일, 푸시 등으로 구매 유도를 시도하며, 3~4개월의 구매 간격을 갖는 고객은 계절성 상품을 제시하는 등의 리마케팅 전략 수립으로 높은 마케팅 효율을 얻을 수 있습니다.와이즈트래커는 커머스앱 뿐만 아니라 모든 비즈니스에 최적화 된 분석환경을 제공합니다. 다음에는 여행 및 숙박 앱에 필요한 리포트에 대해 소개드리겠습니다.
조회수 726

[Buzzvil Culture] Buzzvil FUN Club

 “All work and no play make Jack a dull boy.”  이 격언은 사람이 온전히 성장하는데 있어서 열심히 배우는 것 만큼이나 잘 노는것도 매우 중요하다는 의미인데요. 이를 회사에 적용해보면 개개인이 주어진 업무에 최선을 다하는 것 만큼이나 회사에서 즐겁게 생활 하는 것이 개인과 회사의 성장에 중요한 역할을 한다는 의미로 볼 수 있습니다. 하지만 회사는 본질적으로 업무를 하는 곳이기에 직원들이 즐거워하는 회사를 만드는 것은 어쩌면 직원들이 열심히 일하는 회사를 만드는 것보다 더 어려운 일일지도 모릅니다. 버즈빌에는 그 쉽지 않은 일을 스스로의 손으로 이루어 가는 직원들이 있습니다. 직원의 입장에서 좀 더 즐거운 회사를 만들기위해 노력하는 버즈빌 펀클럽을 소개합니다! 버즈빌 펀클럽은 2014년 어느 날, “더 즐거운 버즈빌을 만들어 보자”라는 생각으로 5명의 버즈빌리언들이 의기투합하여 자생적으로 만들어졌습니다. 그 이후로 매달 있는 전체 회식의 다양한 프로그램은 물론 해외 오피스 직원들과 모두 함께 떠나는 글로벌 워크샵, 버즈빌리언들의 열정을 확인 수 있는 운동회, 한해를 마무리하는 송년회까지 다양한 행사들을 직접 기획하고 실행하며 더 즐거운 버즈빌을 만들기 위한 활동들을 계속해 오고 있습니다. 그동안 수많은 버즈빌리언이 펀클럽을 거쳐갔고 2018년 6월 현재에는 소속된 팀도, 하는 업무도 각양각색인 8명의 버즈빌리언들이 펀클럽의 멤버로 활동하고 있습니다.[Image] 이번달 회식 결정을 위한 펀클럽 회의   매달 1~2회 진행되는 펀클럽 회의는 더 새롭고 즐거운 버즈빌을 위한 다양한 의견들이 오가는 자리입니다. 이 회의가 더욱 의미가 있는 점은 회의 결과가 단순히 의견 제시에서 끝나는 것이 아니라 회사의 의사결정으로 이어지기 때문입니다. 매 달 진행하는 전체회식은 펀클럽회의에서 결정된 컨셉과 방향대로 진행하고 있고 지난 3월에 있었던 2018년 해외워크샵의 경우에도 워크샵 장소부터 숙소, 세부 일정, 단체 액티비티 등 다양한 부분에 펀클럽 회의에서 나온 의견들이 반영되었습니다. 이처럼 버즈빌리언들이 함께 어울리고 즐거운 경험을 할 수 있는 다양한 일들에 대한 고민들을 해나가는 곳이 바로 펀클럽이라고 할 수 있습니다. [Image] 야외 회식을 위한 장보기도 펀클럽의 몫   하지만 누군가를 즐겁게 한다는 것이 늘 좋은 일만은 아닙니다. 개성가득한 70여명의 버즈빌리언들이 모여있는만큼 모두가 즐거워 할 만한 행사를 기획하는 것도 쉽지 않은데다가 펀클럽 활동에 대한 특별한 혜택이 있는 것도 아니기 때문입니다. 그럼에도 불구하고 펀클럽이 계속해서 유지되는 이유는 무엇일까요? 그 이유의 중심에는 버즈빌 문화에 대한 주인의식이 있는게 아닐까 합니다. 우리가 원하는 버즈빌의 문화를 우리의 손으로 만들어 간다는 생각, 즐거운 회사는 누군가에 의해 만들어지는 것이 아니라 스스로 만들어 가야한다는 생각, 정말 좋은 사람들과 함께 더 재미있는 일들을 해보고 싶다는 생각들이 모여서 지금의 펀클럽을 그리고 지금의 버즈빌의 문화를 만들어 왔다고 생각합니다. 그렇기에 편클럽의 활동이 가지는 의의는 더 큽니다. 멤버들 스스로가 모여서 회사를 단순히 업무의 공간이 아닌 즐거움의 공간으로 만들어 나가려는 시도이기 때문입니다. 그리고 이런 시도들은 버즈빌 전체에 에너지를 불어넣는 일이기도 합니다. 앞으로도 적극적인 지원을 통해 펀클럽이 버즈빌의 문화로서 잘 정착되어 나가기를 바라봅니다. 다가오는 여름에도, 뻔하디 뻔한 회사생활을 Fun하게 만들어 가려는 버즈빌 펀클럽의 활약을 기대해 주세요 ! 
조회수 624

질문에 답이 있다

정확한 시점은 기억나지 않지만,어느 순간 일에 대한 막연한 두려움이 사라지게 된 기적(?)을 경험했다.주니어 시절에는경험이 부족하기 때문에 정답을 찾으려는 의지가 강했다.어떻게 답을 찾을 것인가가 최우선 과제였다.새로운 'A'를 기획하라는 일을 받게 되면과거에 선배들이 진행했던 유사한 사례를 파악하거나, 경쟁사들이 접근했던 방식을 벤치마킹 하는 것이 늘 첫번째 순서였다.혹시라도 적절한 선례를 찾지 못한다면어디서부터 무엇을 해야할지 모르는 두려움과 당황스러움에 안절부절하지 못하는 상태를 경험하곤 했다. 나 뿐 아니라,대부분 이 과정을 거쳐서 '선배'가 되어가는 것이다.지금 하는 일이 익숙한가?직장에서 90%이상 업무는하면 할수록 경험이 쌓이고 숙련도가 올라가서 일정한 패턴에 익숙해지는 일들이다. 선임자는 그 패턴 공식을 통해 능숙하게 일을 처리할 수 있게 된다.대개 자신의 일을 10년 이상 하게 되면 그런 경지(?)에 올라가게 된다.한편으론, 이 때부터는 '다르게 생각'하기가 어려워지게 된다. 이른바 '혁신'이 불편하게 되는 시기가 온다.이미 익숙해진 패턴을 부정해야하기 때문이다.자신도 모르는 사이에 꼰대로 변신하는 시기가 이 때다.차/부장님들의 얼굴이 떠오를 것이다.불행하게도나의 주된 업무는늘 혁신을 해야하는 일이었다.창의적인 일은 참으로 신나는 일이기도 하지만,이게 일상의 일이되면 사실 유쾌하지만은 않다.익숙해져서는 안되기 때문이다.숙련되면 '뻔~'해지기 때문이다.늘 그런 부담감과 두려움을 갖다가어느 순간 그 두려움에서 벗어나게 된건'올바른 질문'을 스스로 던지게 된 후 부터다.올바른 질문이란거창하고 어려운 질문이 아니다.매우 상식적이고 근본적인 질문이어서,오히려 그 질문이 질문할 '깜'도 안될 것 같은 그런 내용들이었다.'이걸 왜 해야하지?''왜 지금 해야하지?''이 일이 꼭 필요한 일인가?''내가 사장이라도 이 일을 시켰을까?'...에서 시작해서,구체적인 방식, 기대하는 결과물, 이 일을 시킨 의도 등을 포함해서 백지 위에 스스로 질문지를 작성하는게 나의 첫번째 스텝이다.흰 종이 위에 이 질문들을 반나절 써가면서 일의 구조를 잡는다. 혼란스럽고 답변하기 어려운 질문들로 내 머리 속 역시 어지럽지만, 이 과정을 지나고나면 평화가 다가온다.반나절이 30분 정도의 길이로 느껴질 만큼몰입의 과정을 겪는다.이렇게 몇 번의 반복을 거치면 질문의 답이 아니라질문 자체가 정결해진다.꼭 필요한 질문이 정리되면문제의 반 이상이 해결되는 느낌이 든다.Big Questions두려움이 사라지는 과정이다.올바른 질문을 스스로 찾는 과정이 생각하는 힘이 된다.이제는 일이 두렵지 않다.두렵지 않게되니, 새로운 것도 즐기게 되는 것 같다.그것이내가 퇴사를 결심한 이유다.
조회수 180

너 나한테 감정 있니?

너 나한테 감정 있니? 라는 말이 "너 나한테 불만 있니?"라는 말과 동일시되는 이유가 무엇인지 생각해본 적 있나요? 사람이라면 감정이 있는 것이 당연한 건데, 우리는 왜 "이 감정이 내 감정이다." 말을 못 하고 끙끙 앓다가 화병까지 걸려서 몸져눕는 지경까지 오게 된 걸까요. OECD 국가 중 자살률이 10년째 최고인 이유는 우리 사회가 감정을 표현하는 것을 터부시 해온 결과는 아닐까요?  당신은 지금 어떤 기분인가요? 화병 : 명치에 뭔가 걸린 느낌 등 신체 증상을 동반하는 우울증의 일종으로 우울과 분노를 억누르기 때문에 발생한 정신 질환 (출처: 서울대학교 병원 의학정보)술로 풀고 담배로 삭이고... 화병만 남은 직장인들 - 세계일보 직장인 조기퇴사 '박봉'.. 화병 스트레스 심각 - 한국경제 TV화병 환자 14%는 20대.. 불안·우울증도 과거보다 늘어 - 한국일보그냥 화를 내세요.. 한국인의 화병? - 브리지 경제'화병'이니 참는다고요? 여성 사망원인 1위예요 - 여성신문꽃다운 20대직장인 디자이너 시절독불장군 같았던 사장님께 혼나고 돌아와서 혼자서 스트레스를 어쩌지 못하고 있을 때, 불현듯 제 머릿속을 스치고 지나간 영화가 있었습니다.  몬스터주식회사, 다 네 덕분이야. (출처 : 몬스터주식회사 영화포스터)"몬스터로도 주식회사를 만드는데... 스트레스로 주식회사를 만들어보면 어떨까? 그 회사에서는 나처럼 고통받는 직장인들을 위해서 스트레스를 풀 수 있는 상품을 만드는 거야! 어때? 멋지지 않아????"  그렇게 나처럼 고통받는 직장인들을 위해 스트레스를 해소하는 상품들을 만들겠다고 결심한 지 5년 후, 저는 정말로 스트레스 컴퍼니를 설립하였습니다.그러나 사실 저는제 감정을 숨기지 못합니다.김구라님 (출처 : 라디오스타)표현하지 않으려 해도 시도 때도 없이 드러나는 표정 때문에 어찌할 도리가 없을 때가 많지요. 그렇게 본다면 저는 감정을 표현하는 사람이 맞습니다만, 아무런 설명 없이 표정만으로 감정을 전달하는 것이 얼마나 많은 오해를 불러오는지 모릅니다. 그래서 우리는 '포커페이스를 유지해라' '감정을 드러내지 않는 것이 프로다'라는 말들을 당연하게 받아들였는지도 모르겠습니다.분노하는 차인표님. (출처: SBS 대물) 그런데 우리는 화가 나면 화가 났다는 감정만 표현할 뿐, 내가 왜 화가 났는지, 어떻게 하면 화가 풀릴 수 있는지 를 이야기하지 못합니다. 우리는 그러한 소통 방법을 배운 적이 없기 때문입니다. 그렇지만 자신의 감정을 상대에게 올바르게 표현하지 않으면, 오해가 쌓이게 됩니다. 세상을 뒤집어 놓을 것 같이 큰 문제들도 알고 보면 사소한 일들에서부터 비롯되었다는 사실은 많은 생각을 하게 합니다.그래서 감정을 표현하자는 거야? 말자는 거야? 표현하자는 겁니다어떻게? 잘스트레스컴퍼니의 내편 감정 카드. 말로 하기 힘들 떄 카드로 내 마음을 표현해요.내가 지금 힘들구나.내가 지금 슬프구나.내가 지금 화가 나는구나.감정이라는 것은 살아있는 생물과 같아서 억누르려고 할수록 더 튀어나와서 나를 괴롭히지만, 마음에 들어온 감정들을 거부하지 않고, 그럴 수 있다고 인정해주는 것만으로도 마음이 편안해질 수 있습니다. 어떤 감정도 나쁜 감정은 없으며, 모든 감정에는 이유가 있습니다. 나를 찾아온 감정을 회피하지 말고, 무시하지도 말고 온전히 받아들여주세요. 티벳여우가 너무 귀여워 그만... 출처를 알 수 없었습니다;; 감정을 받아들이면, 내가 진짜 원하는 것이 무엇인지 알 수 있습니다. 내가 화가 났다면, 분명 무언가가 불만족스럽다는 건데, 그렇다면 그것이 무엇인지를 찾아서 채워야만 그 감정이 해소될 수 있기 때문입니다. 그냥 화만 내는 것으로는 해결되지 않습니다. 보통 사람들이 화가 날 때는 중요하게 생각하는 것들이 훼손되었을 경우가 많습니다. 누가 땅바닥에 쓰레기를 버리는 것만 봐도 화가 나는 사람이 있는데, 그런 사람들은 정의감을 중요하게 생각하기 때문입니다. 그래서 나를 화나게 하는 것들만 잘 살펴봐도 내가 무엇을 중요하게 생각하는 사람인지 알 수 있게 됩니다. 이렇게 내가 중요하게 생각하는 것들이 모여서 가치관을 이루게 되고, 내가 중요하게 생각하는 가치에 부합하는 삶을 살아야 행복할 수 있습니다. 그래서 저는 항상 스트레스 해소 강의 시작 전에 내편 감정 카드로 지금 나의 기분과 가장 닮은 감정 카드를 고르게 한 후, 워크지를 통해서 내 감정 밑에 숨어있는 진짜 욕구를 찾아보는 활동을 진행합니다. 감정은 내가 진짜 원하는 것을 찾을 수 있도록 도와주는 신호이기 때문입니다. 나의 감정 밑 욕구를 찾아보는 오늘의 감정 워크지  도레이 첨단소재 기업 강의에 참석하신 분의 감정 워크지 당신은 당신이진짜로 원하는 것이무엇인지 알고 있나요?내가 진짜 원하는 것을 아는 것은 특별히 더 힘겨운 일입니다. 분명 내가 원한다고 생각했던 일이 해봤더니 원하는 것이 아니었다는 사실을 깨달을 수도 있고, 사실은 내가 원하는 것이 아니라 부모님이 원하는 것이거나, 아니면 남들이 좋다고 하니까, 다들 그렇게 사니까 나도 그렇게 해야 할 것 같아서 원하게 된 것인지도 모릅니다. 그렇다면 오늘 잠들기 전, 나 자신에게 질문을 던져보세요. 나를 화나게 하는 것들은 무엇인지, 그리고 내가 진짜로 원하는 것은 무엇인지 말입니다. 그렇게 한 발짝씩 자신에게 다가가보세요. 조금씩 내가 보일거예요.  내편 감정 카드, 워크지는 스트레스컴퍼니샵에서 구매 가능합니다. ⓒ스트레스컴퍼니-무단 전재-재배포 금지 #스트레스컴퍼니 #심리스타트업 #스트레스관리 #서비스소개 #제품소개
조회수 2956

창업가에게 필요한 세가지 개념 by 권도균 대표

프라이머 엔턴십 11기 세미나 03-15 현장저는 다른 공동 창업자 한명과 "태어난 곳이 직접 확인 가능한 건강한 반려견"을 소개하는 서비스 Peopet을 운영하고 있습니다. 그래서 프라이머 엔턴십 11기에 참여하게 되었는데요. 중간에 11기 지원자들에 한해서 세미나가 열렸습니다. 권도균 대표님께서 창업가에게 필요한 3가지라는 주제로 발표해주셨는데 이 글을 포스팅하게 된 이유는 가설을 검증해가는 과정에서 현재 저희가 잘못 의사 결정하고 있는 부분들, 잘못 운영하고 있는 부분들이 더러 보였고 많은 스타트업들이 불필요한 실수를 줄이는 것에 이 포스팅 내용들이 기여할 수 있다는 생각에 시간을 내서 적었습니다. 저희 또한 느낀 인사이트를 서비스에 적용시켜 더 빠르게 시장을 검증해 나가려고 합니다.   지금부터 그 3가지를 공유해드리겠습니다 !1. 사업은 장거리 경주다.⇒ 장기적으로 결정하고 투자할 수 있는 것은 단지 전략의 문제가 아니라 용기와 야심의 문제이다.⇒ 장기적인 관점에서 잘 못하는 회사를 보면 단기적인 이익을 추구하다가 장기적인 치명적인 경쟁력을 잃는 사업가들이 많다. ( SEED 받고 A를 유치하기 위해서 목격한 적이)⇒ 근데 요즘 스타트업들이 너무 많은 미래에 투자한다. 10년, 20년 뒤에 일어날 일을 너무 많이 고민하고 시간을 허비한다. 처음에 포커스 해야되는 일에 대해서는 또 단기적인 성과라고 한다. 단기적 성과와 장기적인 그림의 균형이 필요하다. ⇒  이 사업이 로켓이 될 수 있는 것에 의사결정을 해라. 소탐대실 하지마라.⇒ 비전보다 생존이 우선한다. 경쟁은 상대를 죽이는 게임이 아니라 내가 살아남는 게임이다. 코카콜라와 펩시가 청량 음료 시장에서 경쟁한다? 그건 만들어낸 용어지 코카콜라라는 시장이 있고 펩시라는 시장이 있는 거다. 자기 고객한테만 집중하면 된다.⇒  창의는 온갖 잡음 속에서 원리를 이해하는 것이다.2. 포커스 하면 강해진다.⇒ 세탁특공대가 월 a정도 한다. 이번 성수기때 4x 거래액 찍는 걸 목표로 해서 그러면 올 연말쯤 평시에 4x가 유지된다. 특공대는 후발 주자이면서 죽지 않을 정도의 씨드를 받고 잘하고 있다. 근데 다른 세탁 O2O보면 초기때부터 8억, 10억씩 받는데 특공대가 거래액이 더 크다. 특공대는 강남에만 포커스했고 다른 곳은 서울, 경기지역으로 확장시키면서 단기적으로 빨리 매출찍으며 성장하려고 했다. 맨 첫번째 고객의 첫 매출 1달러를 만드는 핵심 가치에 집중하는 것입니다. 이 가치만 제대로 만들어 낼 수 있다면 이 외의 모든 것들은 자동으로 이뤄질 것입니다. -케빈 할(Y-Combinator 파트너)⇒  사업을 하는 것 같은 느낌이 아니라 한 걸음 한 걸음 진짜 넘어가라. 1) 고객 중에 알았던 것이 틀렸구나를 아는 것. 2) 몰랐던 것을 알게 되는 것. 이런 것이 한 걸음 나아간 것이다.⇒  잘할려고 기획하다가 너무 산으로 간다. 와인 쇼핑몰을 하겠다고 하면 이건 이커머스다. 좋은 와인을 싸게 팔고 배송 빠르게 하는 것. 취소 환불이 편리한 것. 이것이 본질인데 와인을 사게 할려면 정보가 필요하고 콘텐츠를 막 덕지 만들고 콘텐츠를 보면 또 많이 보게 공유되게 오래 머물게 해야되니깐 이것 저것 집어넣고 그러지마라. 이커머스는 이커머스고 포털은 포털이다. 어떻게 하면 더 빨리? 어떻게 하면 더 쉽게? 어떻게 하면 잘? 이러다가 본질을 벗어나버린다. 많은 창업자들이 취미 생활을 한다. A가 하기위해서 B하지마라. 그냥 A를 해라.⇒  창업가들에게 사업에 집중하라 했더니 사업을 위한 주변 활동에 집중한다. 새로운 고객을 만난 숫자가 더 많을까? 네트워킹을 더 많이하는가? 린 스타트업의 원리1. 창업자가 가진 것은 실험해본 적 없는 가설뿐이라는 것을 받아들이는 것.2. 사무실에 앉아서 탁상 공론하지 말고 밖으로 나가서 잠재고객을 만나는 것.3. MVP를 만들어 고객의 문제점을 하나 하나 해결해 나가면서 학습하고 진화하는 것.⇒  나는 내가 창업할 때 수천명 만났다. 근데 창업자들이 기획하고 책상에 앉아서 탁상공론한다. 스티브 블랭크가 유데미에서도 최소 200명을 만나야 된다고 했다. 앱을 만들어버리기 시작하면 머리가 굳는다. 거기에 사랑에 빠지게 되고 백지 상태에서 만나야 되는데 제품을 고객에게 강요한다. (실제로 봤다. 같은 팀이였다..)⇒ 2010년부터 창업자들을 만나면서 하는 말들이 "작년에 권대표님을 만났어야 됬는데.." 라고 한다. 너무 다들 확신에 차서 린스타트업 안하고 너무 공격적으로 프로덕에 접근한다. 그러면 5천만원 날리는 꼴이다. 프라이머는 5천만원 세이브 해주는 역할을 하는 거다.스타트업은 탐색을 위한 임시적인 조직이다. -Steve blank3. 사업은 이타주의어야 한다.⇒ 경영의 재발견. 탐욕인가? 봉사인가? 가치는 결국 믿음이다. 사람은 그가 믿는 대로 산다. 사업을 할 때는 뭘 하느냐가 아니라 뭘 믿느냐가 중요한 것 같다. ⇒ 이타주의가 경영의 핵심 원리다. 이 3번째가 가장 중요하다고 믿는다. 이것이 출발점이고 , 에 단초가 된다.세미나가 끝이 났습니다. 그리고 권대표님께서 엔턴십 참가자들의 질문에도 굉장히 적극적으로 답변해주셨는데요. 그 과정에서도 기록할 만한 것들이 있었습니다.Q. 서비스 성공의 기준은?⇒ 첫번째는 BEP까지 가는 것이라고 생각한다. 그리고 두번째 목표로는 지속적인 이익을 내가는 것이다.Q. 팀을 먼저 만드는 것이 맞나? 고객이 먼저인가?⇒ 나는 고객이 더 맞다고 생각한다. 한국 문화는 그냥 태양이 하나인 게 맞는 것 같은 생각이 든다. 좋은 팀이 있으면 좋은거다. 근데 이건 약간 실리콘밸리스러운 느낌이다. 그럴 팀을 억지로 만드는 시간에 고객을 만나고 매출을 만들고 그런게 더 중요할 것 같다.그래서 창업자는 정말 접시 10개를 돌리는 역할을 해야한다. 1,2개는 정말 탁월하게 잘해야된다. 나머지는 접시가 떨어지지 않을만큼 살리는 정도면 된다. 보면 어떤 누구는 정말 뛰어난 사람을 잘 꼬시고 어떤 사람은 마케팅을 기가 막히게 한다. 그리고 그 나머지는 조금씩 다 잘할 수 있어야 한다. CEO면 처음부터 끝까지 내가 다 한다고 생각해야한다.Q. MVP ?⇒ 세탁특공대는 강남에만 집중했다. 마이리얼트립은 파리에만 집중했다. 스타트업이 포커스할 때 핵심 가치가 동작하는 최소 단위가 된다. 뭘 만들지 알고 수작업으로 다 해보고 통달한 다음에 어떤 것들을 전산화해야 되는지 생각해라. 플랫폼이라는 단어가 주는 착시 현상에 빠지지 마라. 플랫폼은 소프트웨어다. 소프트웨어 자체가 가치를 만들어내는 것은 아니다. 그 플랫폼을 운영하는 창업자들이 고객이 들어왔을 때 열심히 댓글을 달고 가치를 불어넣어줄 때 생기는 것이다. 고객의 인터뷰는 오차의 범위가 크다. MVP 최소 기능을 가지고 우리 제품을 왜 써야되는지 그것만 보고 나서 쓰는지 안쓰는지 봐야된다. 인터뷰할 때는 하늘 같은 제품을 말하니 고객이 좋아한다고 한다. 근데 막상 고객한테 갖다줄 때는 땅에 있는 제품을 가져다준다. 그러니깐 안맞다. 찌라시에는 웹사이트를 넣는게 아니라 전화번호를 넣는거다.Q. 수익모델⇒ 억지로 수익모델을 갖다붙이지 마라. 이커머스 붙이고 그런거 하지마라. 매출에서 중요한 것은 내가 본질적으로 하고 있는 곳에서 내라. 이니시스 할 때 쇼핑몰이 1만원을 팔면 100원 안팎으로 벌었다. 전자지불 서비스는 이커머스가 정말 커지는 믿음이 없었다면 성공 못했다.Q. 서로 모르는 사람끼리 공동창업자로서 팀빌딩을 할 때 어떤 것들을 중요시 봐야하나?⇒ 지분/포지션이 굉장히 중요하다. 그리고 중요한 것은 몇년 근무할 것인가. 최소 3년이 지나야 질문을 가져갈 수 있게. 우리는 3+3 (6년, 3년이 지나고 난 뒤에는 1/36씩 가져가도록 추천) 미니멈 2+2도 괜찮은 것 같다. 가능하면 길게 잡는게 좋을 것 같다. 굳이 근데 공동창업자가 있지 않으면 그냥 혼자 가라. 혼자서 천천히 해도 충분히 좋은 사람 만날 수 있다.Q. 사용자 VS 고객⇒ 기본적인 원칙은 나에게 돈 내는 고객에게 집중하는게 맞다. 지금 당장 돈 낼 고객을 한 사람씩 두사람씩 늘려가는 것이다. Q. 중개하는 서비스에서 수수료를 처음에는 안 취하고 고객에게 더 좋은 가격으로 베네핏을 좋은게 좋은거지? 그냥 악랄하게 수익화를 해보는게 좋은 건지?⇒ 어떤 비즈니스의 종류인지를 일단 생각해봐야될 것 같다. 처음에 수익을 내지 않더라도 점점 붐업하면서 수익을 극대화할 수 있는 비즈니스인지 아닌지를 생각해봐라.Q. MVP가 완전하지 않은데 퀄리티 떨어져서 오히려 안좋은 이미지가 생기는 것이 아닌가?⇒ 모든 제품은 다 단점이 있다. 내가 줄려고 하는 본질적인 가치를 생각해라. 내가 주고 싶은 가치로 고객들이 고통을 겪고 있는 상황을 해결해주는 것이다. 지메일 나는 불편하다. 근데 세계 1등 메일이 어디냐? 지메일이다.Q. 마케팅?⇒  미소(miso) 광고를 보면 가격이 싸니깐 쓰세요? 라고 안한다. "믿을 수 있으니깐", "편리하니깐", "청소하니 달라져요." 이런 식으로 문구를 바꿔가며 최적의 효율의 문구를 찾는다. 마케팅 해보면서 계속 측정하고 효율이 높고 클릭율이 높은 걸로 선택하는 것이다. LTV 보면서 충분히 계산하고 어느정도 부으면 이게 올라가겠다고 판단이 섰을 때 다음 투자자한테 설득할 수 있는 것이다. "우리 얼마만 있으면 다음 얼마 만들 수 있다." 처음 마케팅은 광고를 하기 위해서 하는 것이 아니라 테스트를 하기 위해서 학습하기 위해서 하는 것이다.MVP속에서 어떻게 conversion rate를 높여갈지 1년 동안 지겹게 밖에서 나대지말고 사무실에 앉아서 그 제품안에 데이터를 계속 봐라. 투자 대비 LTV가 지속가능한 것을 만들어낼 수 있다면 돈을 부으면 된다. 얼리 스테이지는 그러면 된다. 미소도 그랬다. 마무리하며많은 창업자들이 자기 비즈니스의 본질적 가치를 잘 모르는 것 같다. 프라이머는 BM 다봤다. 용어 쓰는 것만 봐도 안다. 내가 정말 추구하는 가치가 뭔지. 유니크한지. 그러면 앱,웹 없어도 된다. 가치 있는 서비스를 제공합니다? 아무 의미 없는 것이다. 우리는 빠른 제품을 제공합니다. 이게 가치를 만드는 거다.현재 플레이팅을 운영하는 장 폴 대표를 미국에서 만났다. 여기 있지 말고 한국에 들어와서 정육점 O2O하라고 했다. 한국 정육점은 단골이면 좋은 고기 주고 아니면 안좋은 고기 주고. 고기에 대한 신뢰, 믿음이 없다. 이 가격이면 이 품질이 맞아야 되는데 그게 없기 때문에 이게 클리어한 시스템을 만들어 O2O로 하면 되면 될 것 같다는 생각을 한거다. 근데 이게 앱이고 웹이고 뭐가 필요하냐 처음에.데일리호텔, 오누이 2수, 3수 했다. 좌절하지 말고 계속 배우면서 본질적인 가치를 만들어내라. #페오펫 #peopet #창업가 #마인드셋 #인사이트 #조언

기업문화 엿볼 때, 더팀스

로그인

/