스토리 홈

인터뷰

피드

뉴스

조회수 1025

크로키닷컴을 소개합니다 #5

지그재그 채용 페이지>> https://career.zigzag.kr오늘은 지그재그 서비스를 위해 각자의 파트에서 이끌어주시는 개발자 두 분! Dev. 팀의 정수님, 형래님과 함께 활발히 채용 중인 [백엔드 개발자]에 대해 파헤쳐 보도록 하겠습니다 :-)Chapter 1. 저를 소개합니다!Q. 정수님, 형래님 반갑습니다! 지난 인터뷰를 통해 궁금한 포지션으로 백엔드 개발자가 선정되었는데요! 인터뷰이로 선정된 간단한 소감과 자기소개를 부탁드립니다.정수, 형래 네.. 좋네요.(기뻐하지 않으시는군요! 저희의 예상과 다르게..)형래 일단은 왜 제가 첫 번째로 인터뷰이가 되지 않았는지 굉장히 서운하게 생각하고요.(웃음) 그래도 지그재그에서 이런 인터뷰를 해보는구나 싶네요.정수 저는 전형적인 부끄러움이 많은 개발자라서요. 부담도 많이 가고, 긴장되네요. '잘해야 되겠다.'라는 생각이 마구 듭니다.(웃음)형래 저는 자기소개를 준비해 왔어요! 사실 제가 6-7년 전부터 사용하고 있는 건데요, 저를 '줄기세포 개발자'라고 표현합니다. 줄기세포가 아무 데나 이식이 된다고 하더라고요. 그래서 저를 개발이 필요한 곳에 가져다 두면 개발을 하고, 매니징이 필요한 곳에 가져다 두면 매니징도 하다가.. 인프라가 필요한 곳에 가면 인프라도 해요. 가리지 않고 다 해서 다른 사람들이 물어보면 '줄기세포 개발자'라고 말하고 다닙니다.우리의 소중한 디에네이 형래님정수 저는 지그재그의 Z결제라는 기능에서 주문과 결제, 물건을 받아보기까지의 과정을 책임지고 있어요. 좋은 개발자가 되기 위해서는 공부가 필수라고 생각하는데요, 개발 기술뿐만 아니라 본인이 만들어가는 제품과 서비스에 대해서도 항상 열심히 공부해야 된다고 생각합니다. 지금 담당하고 있는 업무도 결제 서비스에 대한 지식이 사실상 전무한 상태에서 시작했는데, 많이 찾아보고 공부도 하면서 열심히 만들어가고 있어요.형래 제가 담당하고 있는 역할에 대해서도 말씀드릴게요. Z결제 쪽은 정수님께서 맡아주고 계시고, 저는 그 외에 지그재그 서비스 전반에 있어서 사용자의 UX를 개선하거나 쇼핑몰을 연동하는 등의 서버 개발을 담당하고 있어요.Q. 정수님은 크로키닷컴 초창기 멤버이셨다가 재입사를 하신 거고, 형래님은 K모 대기업을 다니시다가 지그재그에 합류하셨다고 들었어요. 두 분 다 지그재그를 선택하신 특별한 이유가 있었나요?정수 처음 입사했던 건 2012년이었어요. 그땐 지그재그 서비스가 아닌 다른 서비스들을 개발할 때였고요. 그때 한창 스타트업 열기가 모락모락 피어오를 때였는데, 스타트업에서 새로운 걸 해보겠다는 도전정신을 가지고 합류하게 됐고 거의 2년 가까이 함께 했었던 것 같아요. 그러다가 창업을 하려고 떠났었는데, 그 후 몇 년 만에 크로키닷컴이 지그재그 서비스를 오픈하고 급격하게 성장하고 있더라고요. 함께 일했었던 기억도 너무 좋았고, 지그재그라는 서비스도 앞으로 할 수 있는 것들이 많을 것 같아 너무 매력적으로 다가왔던 것 같아요. 그래서 2018년에 다시 합류해서 열심히 다니고 있습니다.형래 저는 우연히 쟈니님(CEO), 정훈님(COO)과 저녁을 먹었었는데, 그때 얘기해주셨던 지그재그 서비스가 너무 궁금하고 직접 경험해보고 싶었어요. 사실 대기업을 퇴사하게 된 이유가 스타트업을 창업해보고자 했거든요, 물론 잘 안됐지만.. 그때 저는 '잘 되는 스타트업은 어떻게 해서 잘 될 수 있었을까?'라는 궁금증이 항상 있었어요. 저녁을 같이 먹으면서 두 분이 지그재그 서비스에 대해 말씀해 주셨을 때 두 분의 엄청난 열정과 확신이 느껴졌고, 저도 그 두 분 못지않은 열정을 지닌 사람이라는 것을 보여주고 싶다는 생각이 들었어요. 그래서 저녁 먹은 다음날인가? 바로 연락드렸어요, 합류하겠다고.(웃음) 저는 자신 있었거든요.지그재그 개발팀의 컨피던스(오 그런 비하인드가 있었군요! 그럼 실제로 입사 후에 경험한 지그재그 팀은 어떠셨나요?)형래 지그재그 팀은 다른 회사들과는 약간 다르게, 극단적으로 사용자의 편의성에 치중해요. 음.. 고객의 입장에서 봤을 땐, 업자의 욕심이 느껴지지 않는다고 해야 하나? 직접 와서 겪어보니 역시나 그랬고요. 이러한 마인드가 우리 서비스에 긍정적인 효과를 많이 가지고 온다고 생각합니다.(그럼 정수님은 이전의 회사의 모습과 지금의 회사의 모습이 어떻게 달라졌다고 느끼시나요?)정수 처음은.. 5명이었을 때였어요. (지금은 무려 97명!) 지금이나 그때나 모두 열정이 넘치는 건 같아요. 다만 방향성이 다른 에너지죠. 예전에는 서비스가 빨리 좋은 반응을 얻지 못하면 회사가 망할 수도 있다는 위기의식을 가지고 소수의 멤버들과 더 끈끈하게 열정을 가지고 하루하루에 임하는 느낌이었어요. 반면에, 지금은 지그재그 팀이 그동안 쌓아온 탄탄한 기반을 바탕으로 새로 도전해볼 수 있는 다양한 과제들이 훨씬 더 많이 기다리고 있고, 그 과제들을 하나씩 함께 해결해나갈 팀원들도 많아져서 그 에너지가 나날이 더 커지는 것 같아요. Q. 두 분의 경력을 합쳐보니 240개월 이더라고요! 그만큼 다양한 회사를 경험해보셨을 것 같은데요. 유독 지그재그 팀만이 지닌 특이한 점이 있다면 소개해주세요!항상 열정 넘치는 Dev. 팀!형래 이전 회사들은 사실 경험이 많은 사람들만 뽑았어요. 아무래도 경험이 많이 쌓이다 보면 점점 더 나에게 편하고 익숙한 방식을 찾아 문제를 해결하려는 유혹에 빠지기가 쉬운 것 같아요. 물론 경험이 쌓여도 새로운 것에 대해 계속 공부하고 고민하시는 분들도 많이 계시지만, 절대 쉬운 일은 아니죠. 근데 지그재그 팀에는 비록 경험은 조금 적은 편인 분들이 많이 있어도, 옆에서 보고 있으면 항상 열정이 넘치는 사람들이에요. 매 순간 공부를 하려고 하거든요. '어떻게 하면 내가 성장할 수 있을까?'라고 생각하는 사람들이 대부분이라 개인적으로 신기하기도 합니다. 정수 저는 급성장하고 있는 회사에서 일해본 건 지그재그 팀이 처음이에요. 생소하기도 하고, 지루할 틈이 없어요.(웃음) 지금도 매우 빠르게 성장하고 있습니다.Chapter 2. 우리는 이렇게 일해요!Q. 두 분은 파트 내에서 추구하는 특별한 업무 방식이 있으신가요?형래 결함을 최대한 앞 단계에서 찾자! 이게 저희 팀 콘셉트이에요. 설계 단계에서 찾은 오류를 의논해서 해결하고 나면 훨씬 손이 덜 들거든요. 아무리 바쁘더라도 Scrum 을 꼭 진행하고 있습니다. 또, 개발하고 있는 서비스에 대한 품질도 더욱 높이기 위해서 Iteration 작업도 새로 제안해서 정착 단계에 있어요.(파트 매니저로서는 중요하게 강조하는 업무 방식이 따로 있나요?)형래 각 팀원이 하나의 일을 맡으면, 그분을 최대한 안 괴롭히는 게(?) 제 원칙이에요. 팀원들이 일에 집중할 수 있게끔 도와주는 게 매니저의 가장 큰 일이라고 생각하거든요. 그러다 보니 다른 팀 팀원 분들이 커뮤니케이션적인 부분에서 약간 불편해하셔서, 그 부분을 해결하기 위해 요즘 가장 노력하고 있어요.정수 저희는 기록을 강조하고 있어요. 지금 저희 파트에서는 결제라는 새로운 기능을 개발하고 있다 보니까 기록을 남기지 않고 그냥 일을 진행하다 보면 혼선이 생기기 마련이거든요. 다 같이 붙어서 만들고 있으니, 기록을 하면서 개발하는 걸 강조하고 있습니다.(그렇다면 두 분은 파트의 팀워크를 향상하기 위해 노력하고 계시는 부분이 있을까요?)정수, 형래 음 팀워크는.. 법카에서 나온다? 농담이고요. (웃음)형래 조금 식상한 얘기일 수도 있는데, 저는 각자 role이 다르다고 생각해요. 제가 윗사람이고 팀원들이 아랫사람인 것이 아니라, 전 매니징 하는 역할을 가지고 있고 팀원들은 또 다른 각자의 역할을 가지고 있는 거라고요. 그렇게 각자 역할이 다른 거라고 항상 말씀드리면, 팀원들도 평소에 본인의 의견을 좀 더 자유롭게 이야기할 수 있는 것 같고 결과적으로 좀 더 책임감을 가지고 일할 수도 있고 재미도 느끼는 것 같아요. 다만 제가 팀원들이랑 나이차가 좀 나는 바람에.. 아무래도 어려워하시는 분도 계셔서 앞으로 더 많이 노력해야 할 것 같네요. 제가 제대할 때 태어나신 분도 계시거든요.(웃음) 정수 저희 파트에서는 태스크마다 다른 팀원과 짝을 지어서 같이 진행하는 방식을 적용해보고 있어요.그중에서 특히나 강조하는 건 '각자의 장단점이 다르니 서로의 장점을 잘 활용하고 단점을 보완해주자'는 건데요, 그러기 위해 여러 시도들을 해보면서 경험을 쌓아가는 중입니다. Q. 지그재그에서 겪는 백엔드 개발자로서 좋은 점과 어려운 점이 있으신가요?정수 보통 큰 회사에서는 개발자가 서비스의 시작부터 끝까지 모두 경험해볼 수 있는 기회가 흔하지는 않은 것 같아요. 그런데 지그재그 팀에서는 처음 기획 단계부터 함께 참여하고 만들어나가는 경험을 해볼 수 있어요. Z결제도 마찬가지였고요. 앞으로도 새로 도전해나가야 하는 과제들이 많아서, 본인이 주도적으로 이끌어서 개발할 수 있는 기회가 많은 게 가장 좋은 점인 것 같아요.형래 어려운 점은 우리가 아직은 메타 서비스에서 커머스로 변화해가는 과정이다 보니, 서비스에 우리만의 색깔을 담아내거나 편의성을 맞춰나가는 부분이 어려운 것 같아요. 하지만 날이 지날수록 점점 맞춰지고 있는 것 같아요, 그만큼 회사가 성장하고 있다는 거겠죠? 아! 그리고 우리는 typescript와 node.js라는 기술을 사용하고 있는데, 아직 많이 사용되는 기술은 아니라 경험해보지 않은 분들은 어려워하실 수 있지 않을까 싶어요. 그래도 새로운 기술에 대해 거부감 없이 호기심을 가지고 적극적으로 배우려고 하시는 분이라면, 지그재그 팀이 사용하는 기술도 금방 익혀서 사용하실 수 있을 거예요. 저도 입사하고 나서 많이 배웠거든요.(웃음)열심히 작업 중이신 형래님! (Feat. 형래님 얼굴이 그려진 텀블러)Chapter 3. Dev. 팀은 이런 분을 찾아요!Q. Dev. 팀에서 찾는 백엔드 개발자는 어떤 분인지 설명 부탁드려요!정수, 형래 우선, 우리 회사는 실험적인 회사이기 때문에 개발에 재미를 붙이고 일하실 수 있는 분이면 좋겠어요. 그리고 기술에 대한 근본적인 이해가 필요한 것 같아요. 그 언어의 특징이 무엇이고, 본인이 왜 이 언어를 사용했는지에 대해 설명해줄 수 있어야 한다고 생각하거든요. 혹은 자기가 만든 프로젝트를 얼마나 깊이 있게 고민해보고 만들었는가에 포커스를 많이 둡니다. 솔직히 말씀드리면, 차이가 나요! 깊이 있게 고민하면서 만들어보신 분들은 이미 몇 년이 지난 프로젝트라고 하더라도 바로 어제 일처럼 설명을 잘하시거든요.Q. 백엔드 개발자 예비 지원자분들께 하고 싶은 말씀이 있으신가요?형래 사실 인터뷰에서 떨어지는 건 본인의 실력이 부족해서라기 보다는, 회사의 성향과 맞지 않아서인 확률이 매우 커요. 그러니 인터뷰 때 너무 긴장하지 마시고, 편하게 본인의 모습을 어필해주셨으면 좋겠어요. 서류 지원도 편하게 해 주셨으면 좋겠고요, 각자의 fit이 지그재그와 잘 맞는지 확인하는 하나의 절차니까요.정수 형래 님이 아까 말씀하신 것 중에, 우리 팀은 '실험적인 시도를 하는 회사'라고 하셨잖아요. 현재보다 더 나은 시스템을 만들기 위한 노력 중에 하나라고 봅니다. 항상 지금에 만족하지 않고 더 나은 시스템을 구현하기 위해 노력하고 있거든요. 본인이 더 나아가고 싶은 길이 있다면 저희 회사와 정말 잘 맞을 거예요!Chapter 4. 마무리Q. 2020년 두 분의 목표가 있으신가요?정수, 형래 좋은 분들을 많이 영입하자!형래 저는 벌써 세 분이나 소개해서 모셔왔는데요, 더 열심히 노력할 예정입니다. 그리고 개인적인 목표는 건강을 유지하자는 겁니다. 더 건강해지는 것은 바라지도 않아요..정수 저도! 작년에는 많이 아팠어요.형래 그리고 회사에 초코류 간식이 많아서, 제 건강을 위해 건자두 같은 자연식품(?) 위주로 많이 사다주시면 제 건강에 많은 도움이 되지 않을까 싶은 소소한 바람입니다.(웃음)Relations팀: 건...ㅈㅏ..두... for.... 형ㄹㅐ.. 정..수...님....Q. 다음으로 인터뷰를 진행했으면 하는 팀이 계신가요? 궁금한 팀이 있으면 말씀해주세요!정수, 형래 마케팅 팀이요. 우리 회사 마케팅 팀이 워낙 잘하고 계시는 것 같다고 입사 전부터 느꼈거든요. 팀에서 어떻게 일하시는지 궁금해요!지그재그에서는 백엔드 개발자를 포함하여 활발하게 채용을 진행하고 있습니다. 지그재그 팀과 함께, 수면 아래 숨겨진 가치를 찾아내는 경험에 동참할 팀원을 꼭 모시고 싶습니다 :-) 궁금하신 점은 언제나 [email protected] 또는 http://facebook.com/zigzagcareer로 연락 주세요!지그재그 [백엔드 개발자] 포지션을 소개합니다!이런 일을 합니다.이런 분을 모십니다.이 중 하나라도 가능하시다면 더더욱 좋아요 :)지원 방법채용 절차혜택과 복지   더 많은 공고는 채용 사이트에서 확인 가능합니다! >>> 채용 사이트 바로가기
조회수 1066

오디언스 타겟팅이 광고 퍼포먼스를 높이는 이유

페이스북을 통한 타겟팅 광고지금도 셀 수 없는 피드가 올라오는 페이스북은 타겟팅 광고를 위한 최적의 채널 중 하나입니다. 일상과 취향을 공유하는 공간이다 보니 페이스북에선 타인이 어떤 사람인지 쉽게 짐작할 수 있으며 반대로 내가 어떤 사람인지도 공개합니다. 페이스북은 이런 데이터를 바탕으로 사용자가 ‘관심을 가질만한 내용’을 타임라인에 노출하는데, 여기에는 광고도 포함됩니다.(페이스북 광고 타겟팅 설정 화면)위 그림은 페이스북이 제공하는 광고 타겟팅 옵션 중 하나인 ‘저장된 타겟’ 기능입니다. 하루 10억명 페이스북 사용자의 행동 데이터를 근거로 관심사별 타겟팅 옵션을 제공합니다. 올바른 대상을 쉽게, 그리고 상세하게 지정할 수 있도록 함으로써 사용자가 ‘관심을 가질만한 내용’의 광고를 내보내 광고의 맥락적 효과를 높이려는 의도가 있습니다.하지만 위에서 생성한 타겟이 완전하다고 할 수는 없습니다. 위 타겟팅을 통해 페이스북이 제시한 것은 ‘광고주의 서비스에 관심이 있을 것 같은 사용자’입니다. 달리 말하면 ‘서비스를 구매할 확률이 높은 사용자’라고 할 수 있는데, 이 ‘확률’을 더욱 높이기 위한 방법은 여전히 밀린 고지서처럼 남아 있습니다. 어떤 해결책이 있을까요?데이터 기반의 타겟팅 푸시 메시지화장품 회사의 멤버십 앱을 사용하며 겪었던 일로, 다음과 같은 내용의 푸시 메시지를 받았습니다.VIP 멤버십 만료 15일 전, 멤버십 혜택인 VIP 키트를 수령할 수 있는 근처 매장을 푸시 메시지로 안내날짜가 지나기 전에 혜택을 받을 수 있는 최선의 방법을 안내 받는 동시에, ‘매장 방문하는 김에 필요한 제품을 구입해야지’ 생각을 하게 만든 메시지였습니다. 실제로 매장에 방문해 키트를 받고 제품도 구입했으며, 조금만 더 구입하면 다음 등급이 된다는 안내까지 받았던 맥락적으로 훌륭한 마케팅이었습니다.자사의 데이터(First-Party Data)를 수집하고 분석해 확실한 타겟을 찾고 올바른 메시지를 보낸 결과입니다. 자사 데이터는 실제 우리 서비스를 이용한 고객들의 정보를 포함한 데이터입니다. 우리 서비스를 이용하고 있는, 즉 우리의 메시지를 진지하게 들어주는 청중(Audience)이 누구인지, 무엇을 좋아하며 어떻게 행동하는지에 대한 해답을 담고 있는 순도 높은 데이터입니다.자사 데이터를 활용하면 페이스북과 같은 광고채널이 제공하기 어려운 다음과 같은 조건으로 타겟을 필터링 할 수 있습니다.상품을 장바구니에 담은 후 구매하지 않고 3일이 지난 사용자최근 10일동안 홈페이지나 앱에 접속 기록이 없으며 기념일을 앞두고 있는 사용자앱을 설치한 후 일주일이 지났지만 구매 기록이 없는 사용자위 조건으로 필터링된 사용자만을 대상으로 마케팅 커뮤니케이션을 진행한다면 최소한의 비용으로 높은 효과를 거둘 수 있을 것입니다. 오디언스 타겟팅데이터를 어떻게 필터링 하는지는 와이즈트래커의 실제 메뉴를 보여드리면 이해가 빠를 것 같습니다. 디바이스와 앱의 컨디션, 사용자의 방문행동, 사용자 프로파일,사용자가 유입된 경로, 그리고 고객사의 비즈니스 특성을 고려한 맞춤필터를 제공합니다.(와이즈트래커 오디언스 타겟팅 설정 화면. 위와 같은 설정을 통해 3월 한달동안 대한민국 20대 남성 비회원 고객들의 ADID/IDFA 추출이 가능합니다. ) 이처럼 자사 데이터에서 특정 행동조건을 만족하는 사용자만 추출해 타겟팅하는 것을 오디언스 타겟팅(Audience Targeting)이라고 합니다. 오디언스 타겟팅으로 추출된 타겟은 페이스북 등의 외부 광고 플랫폼 등이 제공하는 제삼자 데이터(Third-Party Data)보다 정확도가 훨씬 높다는 장점이 있습니다.다만 추출된 데이터의 숫자 자체가 적어서 광고가 넓은 범위로 도달이 어렵습니다. 그리고 자사 데이터를 수집, 분석하는 시스템 구축이 필요한 것은 단점입니다. 따라서 자체 시스템 구축에 소요되는 기회비용을 고려해 외부 분석 솔루션을 도입하는 경우가 많으며, 모바일앱 채널은 강력한 인앱 분석 기능을 바탕으로 상세한 추출 옵션을 제공하는 와이즈트래커가 좋은 대안입니다. 오디언스 데이터의 결합자사 데이터에서 추출한 순도 높은 타겟과 광범위 도달이 가능한 제삼자 데이터를 결합하면 서로의 단점을 적절히 보완한 타겟 데이터를 생성할 수 있는데, 이런 경우를 넓은 의미에서의 오디언스 타겟팅이라고 말할 수 있으며 일반적으로 지금의 의미로 많이 쓰입니다. 이해를 돕기 위해 다시 페이스북을 예로 들어 설명하겠습니다. ( 페이스북의 ‘맞춤 타겟’ 옵션. 광고주가 원하는 특정 모바일 사용자만을 타겟팅 할 수 있도록 ‘모바일 광고주 ID’ 업로드가 가능합니다. 와이즈트래커로 추출할 수 있는 것이 바로 이 ID입니다.) 페이스북의 타겟팅 옵션 중 하나인 ‘맞춤 타겟’ 기능입니다. 타겟팅 옵션 중 가장 처음에 제공되며 그만큼 페이스북이 권장하는 기능입니다. 광고주가 업로드한 데이터와 일치하는 페이스북 사용자를 찾아 타겟팅하는 것이 핵심으로, 자사 데이터 중 ‘최근 30일간 구매 기록이 있는 사용자’의 이메일 주소를 업로드하면 해당 이메일을 페이스북 계정에 등록한 사용자에게만 광고가 노출되는 방식입니다.하루 10억명이 사용하는 페이스북에는 위에서 업로드한 최근 30일간 구매 기록이 있는 사용자’와 비슷한 성향의 사용자가 있게 마련입니다. 이를 위해 페이스북은 업로드된 자사 데이터의 오디언스와 가장 비슷한 사용자를 찾아주는 ‘유사 타겟’ 기능을 두번째 옵션으로 제공합니다. 결과적으로 광고주는 페이스북이 확보한 수많은 제삼자 데이터 중에서 광고주가 업로드한 자사 데이터와 유사한 패턴을 보이는 사용자를 대상으로 마케팅을 진행할 수 있는 것입니다.결국 자사 데이터를 활용한 오디언스 타겟팅은 타겟의 실제 행동과 관심사 데이터를 기반으로 하기 때문에 단순 인구통계 기반의 기존 타겟팅보다 퍼포먼스가 높을 수 밖에 없습니다. 그리고 제삼자 데이터와 결합해 가능성 높은 신규 타겟에게 선별적으로 메시지를 전달할 수 있습니다. 이런 오디언스 타겟팅을 효과적으로 진행하기 위해서 먼저 순도 높은 자사 데이터를 확보 할 수 있어야 합니다.이미 Legacy System을 통해 많은 데이터들이 수집되고 있을텐데요, 고객의 구매행동과 관련 데이터에서 타겟 오디언스를를 추출해 활용하는 것부터 시작해보는 것도 좋은 방법일 것 같습니다. * WISETRACKER는 모바일 광고 성과 측정부터 In-app 이용자/컨텐츠 분석, 푸시메시지 최적화까지 지원하는 모바일 통합 분석/타겟팅 솔루션입니다. 와이즈트래커 솔루션의 무료체험을 원하실 경우 여기를 클릭해주세요.* WISETRACKER가 제공하는 무료 데이터 분석 컨설팅를 원하신다면 여기를 클릭해주세요.#와이즈트래커 #마케터 #마케팅 #꿀팁 #데이터분석 
조회수 1042

챌린저스 서비스를 시작하다

앞선 글에서 밝힌 것처럼 나는 꽤나 일찍부터 인생에 대한 고민이 있었다.맹랑한 꼬마 입에서나 나올법한 심오한 질문들이 내 마음속에는 꽤나 오래 자리하고 있었다.그것은 인생을 어디에 사용할 것인가, 왜 태어나서, 왜 일을 하고, 왜 살아야하는지, 나는 무엇을 잘하고, 어디로 가야하는지 따위의 질문들이었다. 하지만 이런 큰 질문들에 답을 내놓기는 쉽지 않다. 모든걸 해볼 수도 없고, 제한된 조건에서 답을 찾아야 하기 때문이다. 결국은 정답 찾는 것을 포기하고, 조금 더 스스로의 방향성을 정해보고자 질문을 바꿔봤다.내가 살았기 때문에, 세상이 조금이라도 나아질 수 있다면, 어떤 방향으로 나아지면 좋을까나는 '사람들이 자신이 원하는 인생을 살았으면 좋겠다' 는 어렴풋한 그림을 답으로 적어봤다. 그래서 (주)화이트큐브를 창업했다. whitecube 는 3면의 하얀색 벽을 말한다. 즉, 갤러리다. 갤러리는 작가가 명작을 만들도록 지원하고, 작가의 작품을 돋보이게 한다. 화이트큐브는 사람들이 자신의 인생을 명작으로 만들 수 있게 지원하고, 그 인생을 돋보이게 만들자는 취지에서 붙인 이름이다.  ⓒwhite cube bermondsey, London화이트큐브를 창업할 수 있었던 건 나와 함께 해준 3명의 동료 덕분이다. 혼자였다면 창업하지 못 했을 것 같다. 우리 4명은 Being&Doing(이하 BD) 이라는 자기계발 커뮤니티를 주말 사이드프로젝트로 7년간 운영해왔다. BD 에는 각자만의 목표를 가진 사람들이 모여들었다. 대기업을 다니면서 MC 를 꿈꾸는 사람도 있었고, 대학원 졸업후 전공을 바꿔 또다시 해외유학을 떠나려는 사람도 있었다. 각자의 분야에서 탄탄한 길을 걷고 있었지만 마음 속으로는 자신이 원하는 길로 방향을 바꾸고자 하는 사람들이 많았다. 한편으로는 지금의 생활에 만족하는 사람들도 있었다. 그들은 현재의 생활에서 작게나마 개선할 수 있는 것들을 마음속 목표로 생각하고 있었다. 크든 작든 모두 저마다의 목표가 있었다.'어떻게 하면 목표를 더 잘 달성할 수 있을까' 하는 문제와 7년을 싸웠다. 500명 넘는 회원들은 각자가 생각하는 4천여개의 목표들을 이루기 위해 노력했고, 나는 어떤 환경에서 사람들이 목표를 더 잘 달성할 수 있는지 고민했다. 목표 달성은 사실 확률싸움의 문제였다. 이렇게 하면 무조건 달성할 수 있는 비법은 없었다. 다만 목표에 가까워질 수 있는 확률을 높이는 방법은 있었다.목표달성 노하우인생은 당연히 쉽게 변하지 않는다.자기계발 커뮤니티를 운영하면서도 내내 아쉬움이 있었다. 어떻게 하면 좀 더 사람들이 원하는 인생을 살 수 있게 도울 수 있을까. 행동을 바꾸는건 너무나 어려운 일이다. 목표를 확실히 정하기, 사람들 앞에서 공표하기, 남들에게 알리기, SMART 하게 설계하기, 같은 목표를 가진 사람들끼리 묶어보기 등 자기계발과 목표달성 관련한 노하우들을 입혀봤다. 작은 개선들이 모여 예전보다 높은 목표달성률을 보였지만 여전히 아쉬웠다. 사람들이 변하기 어렵다는 점이.우리는 돈이라는 카드를 건드려봤다. 이름하여 '목표 예치금, 골 디파짓' BD 내 일부 사람들끼리 돈을 걸고 목표달성을 하기로 했다. 목표를 달성하면 예치금을 돌려받고, 달성에 실패하면 이월이 되는 구조였다. 이번에는 진짜 해보겠다는 절박함에 참가한 친구도 있었고, 재미로 돈을 낸 사람들도 있었다. 하지만 결과는 드라마틱했다. 친구는 2개월 동안 8kg 감량에 성공했다. 나는 평생 처음으로 규칙적으로 달리기 시작했다. 매번 이력서를 쓰겠다고 지키지 못할 약속을 하던 한 회원은 드디어 이력서를 써냈다. 돈을 건다는 행위는 여러 의미를 가지고 있다. 그 돈을 잃기 싫고, 내가 돈을 잃은 사람이 되기도 싫은 감정이 든다. 무엇보다 돈을 걸 만큼 내가 그 목표를 중요하게 생각한다는 의미다. 의지는 충동적인 감정이다. 다이어트를 결심했지만 밤에 치킨을 보면 다이어트는 자연히 내일로 밀리는 그런 감정이 의지다. 하지만 돈을 걸면 이야기는 달라진다. 돈을 거는 행위는 나에게 끊임없이 목표의 중요성을 상기시킨다. 돈에는 결국 목표를 더 중요하게 만드는 힘이 있다. 챌린저스 - 확실한 목표달성, 꾸준한 습관형성챌린저스 - 돈을 걸고 목표를 달성한다우리팀이 가진 노하우를 담아 챌린저스 라는 앱을 만들게 되었다. 챌린저스는 잘짜여진 프로그램으로 참가하는 사람의 목표달성률을 높이고 꾸준한 습관을 만들어주는 서비스다. 그리고 오랫동안 우리 팀이 가져왔던 생각을 담아 '사람들이 더 나은 자신을 위해 도전할 수 있는 최고의 환경을 제공하겠다' 라는 비전을 담았다. 지난 11월 19일 우리는 공식적으로 첫 챌린지를 오픈했다. 2주간의 첫 챌린지가 끝난 12월 2일, 우리는 참가자의 90%가 본인이 원했던 목표를 달성한 것을 확인했다. (평균적인 목표달성율은 9% 수준이다) 사람들의 성공률을 진짜 개선시켰다. 헬스장 끊어놓고 안 가던 사람들이 가게 되고, 깜빡하던 영양제도 챙겨먹게 되고, 책도 읽게 되고, 진짜로 사람들이 일상을 개선하기 시작했다."너무너무 매력적인 서비스임♥♥""오 진짜 하게 되네요""앱의 목적에 정말 공감이 많이 되었고 좋았어요""피드를 통해 인증을 실시간으로 확인할 수 있어서 재밌고 믿을 수 있어요""진짜 재밌어요! 진짜 재밌고 도움이 되서 잘 쓰고있어요~~~"그간 목표달성은 재미없고, 달성하기 어렵고, 효과가 보이지 않아 지루한 개념이었다. 챌린저스라는 서비스로 '목표달성' 에 대한 이미지 자체가 바뀌는 것은 쉽지 않을 것이다. 하지만 '재미없는 목표달성' 을 '재밌는 도전' 으로 느끼게 할 여러가지 준비가 되어있다. 성취감, 상금, 함께함 등의 여러 요소를 통해서 도전을 즐겁게하는 장치를 마련해놓았다.이제 게임 캐릭터 키우지 말고, 본인을 키우세요앱을 통해 많은 사람들이 더 나은 자신이 되는 기쁨을 누렸으면 좋겠다. 사람들과 즐겁게 일상을 변화시키기를. "즐거울 거예요, 인생이 변할 거예요, 목표도 달성하게 되고 상금도 받게 될꺼예요"챌린저스가 당신에게 최고의 환경을 선물할 수 있게 해주세요.챌린저스 - 확실한 목표달성, 꾸준한 습관형성 앱www.chlngers.com
조회수 711

진정성이 곧 브랜드

이젠 속일 수 없다마케터의 역할은 소비자가 가지고 있는 인식을바꾸는 일이다.자사의 상품을 인지하고 있지 않다면,고객이 그것을 인지하도록 유도하고,자사의 브랜드가 신뢰를 가지고 있지 못하다면신뢰를 만들어주는 역할을 하는 것이 마케터의 일이다.이제는 본질을 가지고 있지 않은 상품이나 서비스는그럴싸하게 포장할 수 있는 시대는 지났다.광고나 메시지로 실체를 위장할 수 없을만큼정보의 시대에 우리는 살고 있다.    브랜딩은 기업의 철학이상품이나 서비스로 발현되면서 누적되는 가치이다.외치는게 아니라 흘러 넘쳐아 하고,어쩌다 성공한 하나의 상품이 아닌일관되게 누적된 가치의 합이 곧 브랜드가 되는 것이다.누군가 떠오르지 않는가러브마크 브랜드의 특징들 중 하나는브랜드를 떠올리면 생각나는 '누군가'가 있다는 것이다.그것이 창업자나 대표일 수도 있고,특정 개발자나 디자이너, 마케터일 수도 있다.남과 다른 생각을 가진 누군가의 정신이곧 상품으로 치환되는 과정에서 브랜드가만들어진다고 생각한다.브랜드는 하나의 인격체이다.영화의 주인공처럼 자신의 개성이 분명하고,일관된 캐릭터로 주변에 반응했을 때그 실체가 분명해진다.아무 영혼도 없이,추구하는 가치도 불명확한 상품을한정된 자원으로 '브랜딩'해야하는 기업의 마케터들은고민이 많을 수 밖에 없다.풀 수 없는 숙제를 받고숙제 검사를 받을 때마다 책임을 뒤집어 써야하는숙명을 가지고 있는 것처럼 느껴지기도 했다.그럴듯한 전략으로 포장한들, 화려한 디자인으로,시선을 사로잡는 광고로 현혹한다고 하더라도지속되는 것은 진정성이 있는 것만이 가능하다.진짜인가? 그게?개성있는 사람을 키워야 한다.색깔있는 인재를 발견해야 한다.취향 뚜렷한 캐릭터를 발굴해야 한다.그리고 그들에게 맡겨야 한다.내 일을 시작하고직원의 필요성을 점차 느끼기 시작하면서직장에서 좋은 직원이라고 판단했던 기준과는느낌이 사뭇 다른 관점으로 인력을 보게 된다.브랜드도 인격체 이듯이사람도 곧 브랜드다.사람이 모든 것이다진정성 있는 사람이 핵심이고,그들이 모였을 때 힘 있는 브랜드가 탄생할 수 있다.그렇게 믿고,그렇게 찾아야 한다.
조회수 2113

출시의 기록 - #1 랜딩페이지

이 글은 "친구끼리 쓰는 라이브 스트리밍 앱, 라이비오(LIVEO)"의 앱 출시 과정을 담는 글입니다. 어디까지나 현재 겪고 있는 과정을 기록하는 것으로, 최선의 방법이 아닐 수도 있으니 더 좋은 방법이 있다면 언제든지 소개 부탁드립니다.앱을 출시하게 되면서 가장 먼저 준비하게 되는 것 중에 하나. 웹사이트이다.지난 사업인 위제너레이션이나 오드리씨 모두 웹 사이트 자체가 중심이 되는 사업이었기에, 팀 내에 웹 개발자가 있었고 직접 사이트 제작을 건드려야 할 일은 따로 없었다.그러나 라이비오라는 앱 서비스를 준비하게 되면서, 팀 내 개발자들은 앱 서비스 개발에 바쁘고 웹 사이트는 기본적인 소개의 역할만 담당하면 되기 때문에, 직접 사이트를 만들게 되었다.이렇게 가장 기본적인 소개의 역할만을 담당하는 한 페이지짜리 웹 사이트를Promotional Landing Page, 혹은 랜딩 페이지라고 줄여서 부른다.우리는 총 세 가지 과정을 거쳐 웹 사이트를 만들어왔는데, 순서대로 아래와 같다.[1] 시중에 떠도는 HTML5 템플릿을 활용해 앱 개발자분께 부탁하여 간단하게 직접 만들었다[2] IMXPRS 라는 서비스를 이용하여 직접 만들었다[3] Instapage 라는 서비스를 이용하여 직접 만들었다결론만 말하자면 IMXPRS 는 내가 어떻게 알았는지 모르지만 완전 비추인 서비스이다.직접 만드는 것도 돈은 들지 않지만 그 때 그 때 커스텀이 안되기 때문에 불편하다.알아본 결과 랜딩페이지 제작으로는 주로 wix(바로가기) 나 Instapage(바로가기)를 추천하는데, 두 서비스가 유사하지만 개인적으로 Instapage 의 디자인이 더 마음에 들어서 선택하게 되었다.*wix의 경우 한글 버전이 있고, 이후 결제를 붙이는 것이 좀 더 용이하다고 알고있다.각각의 템플릿과 기능을 보고 적절한 것으로 선택하면 될 것이다.Instapage 사용 경험의 경우 개인적으로 10점 만점에 9.5점을 줄 정도로 아주 높다.당연히 직접 개발하는 것 만큼이야 커스텀이 안되겠지만, 매우 쉽게, 꽤 높은 수준으로 커스텀이 가능하다.예를 들어, 애초에 사용한 템플릿은 위의 템플릿이었는데, 아래와 같이 커스텀했다                                                  애초의 템플릿                                                   최종 결과물거의 다른 모습임을 알 수 있는데 그만큼 커스텀이 정말 쉽다는 뜻이다.- 기본적인 디자인은 모두 템플릿에서 제공하며- 핵심이 되는 Headline 및 본문 글꼴을 수정할 수 있고- 원하는 이미지 등을 손쉽게 원하는 위치에 삽입하고, 요소를 원하는 위치에 원하는 크기로 넣는다- 배경 사진 또한 유료 사진을 즉석에서 보고 어울리는 것을 쉽게 결제할 수 있다- 모바일 페이지도 자동 생성되며 별도로 변경할 수 있다(!)이러한 기능들 덕택에 개발자나 디자이너가 아니더라도, 30분~1시간만에 어느 정도 수준의 랜딩페이지를 손쉽게 완성할 수 있다.가장 마음에 들었던 부분은 외부 서비스와의 연계인데, 특히 이메일 주소를 받는 등의 추가기능이 필요한 경우 Integration 탭에서 정말 쉽게 넣을 수 있다. (라이비오의 경우 현재 이메일 주소를 받는 부분은 Mailchimp 라는 타 서비스와 연결되어있다.)                        Edit > Integration 탭에 가면 볼 수 있는 수많은 서비스들향후에는 좀 더 공식 사이트스러운 것들이 필요하겠지만, 초반 몇 달간 사용하기에 손색이 없는 서비스라고 생각한다. 일정 기간동안 무료로 제공되며, 향후 이용료를 낸다. (위의 사이트 수준이면 월 $29 정도)완성된 홈페이지: http://liveo.me랜딩 페이지는 이 정도로 하고, 이후 스마트 앱 배너를 추가할 계획이다.모바일로 랜딩페이지에 접속하면 앱 설치로 유도하는 배너이다.이 부분은 SDK 연동 등도 필요해서 개발자분들의 바쁨이 조금 잦아들면 출시 직전이나 직후에 넣으려고 한다. 관련 서비스는 branch.io 등이 있다.                                Smart App Banner 사례: 맨 위에 저거...사실 처음에는 랜딩 페이지(Promotional Landing Page)니, 스마트 앱 배너(Smart App Banner)니 하는 용어 자체를 몰라서 관련 서비스를 찾기가 어려웠다. 하지만 일단 용어를 알고나니 관련하여 이용할만한 좋은 서비스들이 많았다.혹시 앱 출시를 처음 해 보는 팀이 있다면 앱 출시 마케팅 자체에 대한 조사를 먼저 하고 큰 그림을 그려둔 후 가지를 쳐가며 준비하기를 추천한다. 개인적으로 어떤 부분을 모르는지, 어떤 부분을 알아야 할지를 알 수 있어 훨씬 수월했던 것 같다.하나 하나 완성된 모습으로 채워가는 과정이 왠지 괴롭고도(?) 재미있다.앞으로 소셜미디어와 프레스킷을 만들어가는 과정도 담아보기로 한다.+ 여담: 배경색 선정은 페이스북 '포토샵 완전정복' 디자이너 그룹의 힘을 빌었다.  투표의 힘!정말 많은 분들이 투표에 참여해주셨고 그 중 아는 언니가 준 의견 덕분에 지금의 검은 색상 옵션을 추가하게 되었다.사실 내가 처음 밀었던 색상은 아래의 보라색이었고 우리 팀도 대표님 제외하고 모두 보라색을 택했다 ㅋㅋㅋ 그러나 디자이너들의 의견은 가차없이,검은색 > 민트색 > 보라색 이었다.역시 기술만 있는 나에게 디자이너의 안목을 기르기란 끝없는 과제이다.이 글은 "친구끼리 쓰는 라이브 스트리밍 앱, 라이비오(LIVEO)"의 앱 출시 과정을 담는 글입니다. 어디까지나 현재 겪고 있는 과정을 기록하는 것으로, 최선의 방법이 아닐 수도 있으니 더 좋은 방법이 있다면 언제든지 소개 부탁드립니다.#라이비오 #경험공유 #출시 #업무프로세스 #인사이트
조회수 2107

홍익인간을 꿈꾸는 잔디의 인사팀 담당자 ‘Amy’를 만나다

맛있는 인터뷰: 인사팀 담당자 Amy  인터뷰하게 되어 영광이다. 본인 소개를 부탁한다Amy(이하 ‘A’): 토스랩에서 HR 업무를 담당하고 있는 Amy라고 한다. 멤버들의 입사부터 퇴직까지의 전반적인 일를 맡고 있고, 총무 업무도 함께 하고 있다. 오늘 우리가 온 곳은 어디인지?A: 자가제면 소바와 돈가스 맛집으로 유명한 ‘호천당’이다. 평소 점심은 도시락을 싸와서 먹는데, 얼마 전 팀원들과 이곳에 와서 오랜만에 서로의 근황토크도 하고 장난도 치며 식사를 했던 게 좋은 기억으로 남아 있어 오늘 맛있는 인터뷰 장소로 잡았다. 우리 들어올 때 웨이팅 봤는가? 여기 엄청난 맛집이다. ▲ 줄 서서 먹는 선릉 맛집 ‘호천당’맛있는 인터뷰는 인터뷰어 입장에서 참 훌륭한 인터뷰다. 인터뷰이가 음식점도 잡고 밥도 사주는..A: 베풀고 살아야 한다는 생각으로 참여했다^^ 본 질문으로 돌아가겠다. 첫 커리어가 교사라고 들었는데?A: 대학을 졸업하고 처음 가진 직업이 교사였다. 안정감과 자아실현을 위한 직업으로 교사는 훌륭했다. 하지만 평생 직업으로 삼기에 이 직업은 내 열정을 오롯이 담아내지 못한다는 결론을 내렸다. 그래서 새로운 꿈을 찾아 26살 즈음 중견 IT 회사로 이직했다. 그 중견 IT 회사가 ‘한국의 구글’이라 불리는 직장이었다고 제보를 받았다A: (웃음) 이렇게 많이 조사해 오다니 놀랐다. 그렇다. 복지가 무척 좋은 회사였다. 무엇보다 회사 대표의 경영 철학이 소오름! 돋을 정도로 내 삶이 지향하고자 했던 방향성과 맞았다. 6년 동안 나 자신을 즐겁게 태우고 나왔다. Amy가 지향하는 방향성이라는 게 어떤 건지 궁금하다A: 한마디로 말하자면 ‘홍익인간’이다. 내가 가진 능력으로 사람을 널리 이롭게 할 수 있는 역할을 찾아서 결국 잔디 팀의 HR 담당으로 오게 되었다. 우리가 아는 그 홍익인간을 말하는 건가?A: 맞다. ▲ 비현실적으로 깔끔하게 정렬된 책상에서 업무 중인 Amy하루를 어떻게 보내는지 궁금하다A: 아침잠이 많아서 남들보다 오전 시간의 워밍업이 늦은 편이다. 그래서 30분~1시간 더 일찍 출근한다. 오전에는 우선순위가 급한 업무를 하고 오후에는 좀 더 생각이 요구되는 일을 한다. 가끔 늦은 오후 중 구성원들과 업무 면담을 하거나 티타임을 가지곤 한다. 잔디에서 일하면서 재미있는 에피소드가 있다면?A: 에피소드라기보다는 잔디에 처음 왔을 때 신기했던 장면이 있었다. 이전 직장과 달리 잔디 팀은 무척이나 자유롭고, 수평적인 업무 문화를 가지고 있어 놀랐다. 10시 출근이라고 들었는데, 10시 15분에 자연스럽게 들어오는 것을 보고 인사 담당자로서 자연스레 ‘저건 지각 아니야?’라고 생각했던 적이 있었다. 하지만 자유로움 속에 그에 따른 분명한 책임도 있다는 것을 알게 된 뒤로는 생각이 바뀌었다. 잔디에서 일하면서 어떨 때 자부심을 느끼는지?A: 오랜만에 만난 지인들에게 내가 일하고 있는 잔디를 얘기했을 때 이미 우리 서비스를 잘 알고 있을 때가 있다. 그럴 때 잔디멤버로서 매우 뿌듯하다 잔디가 점차 알려짐에 따라 입사 지원자도 함께 늘고 있다 들었다. HR 담당자로서 지원자를 볼 때 어떤 점을 신경 쓰는지?A: 채용과정에서 가장 중요한 것은 직무역량이나 조직 적합성과 같은 면접 평가 포인트이겠지만, 이건 아마 모든 회사의 채용에서 같을 것 같고, 내가 이와 별개로 중요하게 생각하는 부분은 ‘정말 우리 회사의 멤버가 되길 원하는가’이다. 취업을 위한 지원이 아니라, 내가 지원하는 회사가 어떤 회사이며, 어떤 서비스를 만들고 있는지에 그런 조직에서 본인이 어떤 역할을 하고 싶은지 고민하고 지원한 분은 인터뷰하다 보면 뒤통수에 후광이 보인다 (웃음) ▲ 호천당의 모델 자리를 탐내는 Amy나에게도 후광이 보였는가?A: ..^^ 나만의 스트레스 해소법이 있다면?A: 내가 나로 있을 수 있는 환경을 만든다. 스트레스를 받았던 상태와 반대 상황을 만들어 놓으면 편안해질 수 있다. 그렇지만 일로 받은 스트레스는 그 일이 처리되지 않는 이상 해소되지 않더라. 작년 5월 기혼자가 되었다. 결혼 과정이 궁금하다A: 드라마에서 나오는 것처럼 첫눈에 결혼할 사람이라고 귓속에 종이 울리거나 뭐 그렇진 않았다. 그런데 신랑이 전략적으로 빅피쳐를 그렸던 것 같다. 나는 이걸 ‘가랑비에 옷 젖듯’ 전략이라고 부른다. 나는 그 전략에 넘어간 거다. (웃음) 그래도 결혼까지 생각하려면 마음을 움직인 매력이 있었을 텐데A: 어렸을 때 항상 일관된 이상형 조건을 이야기하고 다녔는데, 나를 한 품에 안아줄 수 있는 큰 키와 내가 존경할 수 있는 내면을 가진 사람이 그 두 가지였다. 그런데 지금 내 남편이 그 두가지 모두 완벽하다. 그래서 결혼을 결심했다. ▲ 올 겨울은 너무 추웠다. 빨리 봄이 오기를..팔불출은 이럴 때는 쓰는 말인 것 같다.A : 내가 봐도 그렇다. (웃음) 이전 인터뷰이였던 잔디 UX/UI 디자이너 Ted의 질문이다. 잔디 내에서 개인적으로 이루고 싶은 것이 있다면?A: 잔디 팀원 모두 주변 지인들에게 거리낌 없이 입사를 추천할 수 있는 회사를 만드는 데 일조하고 싶다. 자기 여동생을 소개해주고 싶은 남자.. 그런 느낌인지?A: (웃음) 그러하다. 마지막 질문이다. 다음 인터뷰이를 위한 질문을 부탁한다A: 자신의 인생에서 가장 행복했던 순간은 언제였나? 끝으로 오늘 인터뷰에 대한 소감을 묻고 싶다A: 맛있는 인터뷰 애독자로서 내가 인터뷰이가 되면 좀 웃기고 싶었는데 뭔가 진지했던 것 같아 아쉽다. 잘 편집해달라.#토스랩 #잔디 #JANDI #팀원소개 #기업문화 #인터뷰 #조직문화 #팀원자랑
조회수 1911

아키텍트, 개발 리더십의 변화...

보통, 하나의 서비스를 개발하는데 얼마나 걸리며, 그 시간 동안 어떤 일을 '구체적'으로 진행시켜야 하느냐에 따라서 아키텍팅의 관점이 변화된다.자주 쓰는 장표 중의 하나이다. 간단하게 설명하면 과거의 비즈니스와 현재의 비즈니스의 차이를 디지털 서비스로 만들어 내는 기간으로 표시한 것이다.과거에는 하나의 디지털 비즈니스가 동작하기 위해서 데이터를 수집하고 분석, 기획, 구현, 실행하기까지 대부분 8.5개월에서 10개월 정도의 시간이 소요되었고, 이렇게 만들어진 서비스들은 실제 고객과 단절되어 있는, 내부 시스템에 가까웠다는 것을 표현한다.그리고, 디지털 비즈니스의 세계에서는 모바일로 실 고객과 커넥티드 되어 있으며, 각 비즈니스가 실제 수집부터 실행까지 1주에 동작되는 세계를 표현한다.이 차이는 정말 개발 조직과 개발 리더십에 많은 차이를 주게 된다.Classic Business에서는 8개월 이상의 방향성이 흔들리지 않도록, 전체적인 방향성이 흐트러지지 않도록 개발 리더십을 발휘하는 것이 중요했다. 특히, 초기의 개발 조직을 세팅하고 예산과 비즈니스의 완성과 실 서비스 후의 이익과 같은 경영적인 판단이 더 중요하던 시기였기 때문에, 실제 소프트웨어를 만들어내는 관점은 디테일하고, 기능적인 것에 집중화된 상태로 개발 조직이 구성되고, 리더십도 그것을 최대한 끌어내는 것에 집중했다.또한, 내부적 조직의 문제로 일이 더디게 진행되거나, 품질이나 세부적인 문제를 쥐어짜거나, 어떻게든 일정을 맞추기 위해서 조정하는 조정자의 역할도 매우 큰 상태였다. 개발 리더십도 그런 관점에서 구성되었고, 기술적인 변화도 거의 없이 초기에 결정된 상태로 대부분 진행되었다.그런데, Digital Business의 세계로 넘어오면 이것은 완전 다른 구도를 가지게 된다.1주 단위의 개발 및 배포까지 매우 유연한 상태로 가동되고, 이 단위는 기술적 선택과 실패가 매우 빠르게 반복되는 것을 의미하게 되며, 개발 조직은 말 그대로 작게 세분화되고, 전체적인 방향성은 계속 유동적으로 변화하게 된다.24시간 내에 하나의 개념이 수립되고, 이를 배포까지 진행시키기 위한 매우 다양한 시도들을 선택할 수 있게 하며, 기획 조직과 개발 조직이 하나의 '지표'나 '시각화'된 장표를 보고 빠르게 판단하게 할 수 있다.매우 빠른 순간 판단이 중요하며, '몇 분'간격으로 회사의 운명을 결정할 수 있는 서비스의 론칭도 가능하게 한다.관리적인 방법은 DevOps의 자동화된 환경과, 세분화된 배포 권한, 기획자들과의 유기적인 환경들을 보다 효율적으로 운용할 수 있는 방법들에 대해서 개발 리더십은 고민하게 된다.어떻게 빠르게 일을 효과적으로 움직일 것이며, 빠른 판단을 할 수밖에 없다. 빠르게 변화하는 기술 스택을 더 잘 알고 있는 것은 개발 조직이기 때문에, 아키텍트나 개발 리더의 권한은 계속 실무자에 가깝게 내려가게 되는 것이 순리에 가깝다.현재 DevOps를 지향하고 있는 개발 조직에서 아키텍트가 지향하는 것은 크게 개념적으로 변화한 것은 없다. '고객과 비즈니스를 이해하는 개발'임에는 틀림없으나, 기존의 아키텍팅과 많이 달라진 것은 실시간 서비스에 대한 분석과 기획의 변화, 데이터 중심의 개발 구조의 시각화를 통해서 개발 조직을 통제한다기보다는, 개발 조직을 숨 쉬게 만드는 '심장'과 같은 역할을 하게 된다.마치, 비즈니스가 빨라지면, 심장도 빨리 뛰고, 비즈니스가 좀 수월해지면 호흡을 고를 수 있는 형태...현재의 아키텍트는 개발 조직의 '심장'과도 같아.속도와 박자, 전체적인 흐름을 중시하는 것이 현재의 아키텍트의 역할이다.건축가인 아키텍트들에게는 엄청난 규칙과 법칙, 책임의 범위가 상당하다. 하지만, 소프트웨어 아키텍트들에게는 그런 책임이 법적으로 제시되고 있지 못하고 있다. 보통 소프트웨어 아키텍트라고 한다면, 부정적인 환경에서 제대로된 소프트웨어를 만들 수 없기 때문에 부당한 개발환경을 담당할 가능성이 없다는...그래서, SI현장에서 아키텍트는 거의 나오지 않는다고 봐야 한다. 슬프지만. 그리고, 마지막으로... 아키텍트는 '직위'나 '권위'가 아니다. '롤'일뿐이다. 그뿐...
조회수 8944

AWS Lambda에서 메모리 설정값과 CPU 파워의 관계

안녕하세요. 데이블 백엔드 개발팀 최형주입니다.이번에 말씀드릴 내용은 서버 없는 컴퓨팅(Serverless Computing)의 널리 사용되는 AWS(Amazon Web Service)의 Lambda에 대한 내용입니다. AWS Lambda는 메모리 설정값에 따라 CPU 파워가 결정되는데, 그 메모리 설정값에 따라 CPU 파워가 어떻게 변화하는지에 대한 실험 내용을 설명하겠습니다. 처음에 AWS Lambda가 무엇인지 간략하게 소개를 하고 왜 이번 실험을 하게 되는지 배경 설명을 드릴 것입니다. 그다음 메모리 설정값에 따른 CPU 파워는 어떻게 결정되는지를 규명하고 마지막으로 이번 포스트를 간략히 요약겠습니다.목차1. AWS Lambda란?2. 실험배경3. 메모리 설정값과 CPU 파워의 관계4. 요약AWS Lambda란?AWS Lamba의 웹사이트AWS Lambda는 이벤트에 응답하여 코드를 실행하고 자동으로 기본 컴퓨팅 리소스를 관리하는 서버 없는 컴퓨팅 서비스입니다. 즉 코드를 업로드 하기만 하면 높은 가용성과 확장성을 보장하는 Lambda 플랫폼에서 코드를 실행합니다.AWS Lambda를 사용의 장점은 서버관리 불필요(Serverless), 지속적인 조정(Scaling), 밀리 초 단위의 측정 및 과금(Demand-based Pricing)입니다. 즉 서버를 프로비저닝(Provisioning)하거나 관리할 필요 없이 AWS Lambda에서 코드를 자동으로 실행하기 때문에 코드를 작성하고 AWS Lambda에 업로드하기만 하면 됩니다. 또한, 각 트리거에 대한 응답으로 코드를 실행하여 애플리케이션을 자동으로 확장하거나 축소합니다. 즉 코드는 병렬로 실행되고 각 트리거는 개별적으로 처리되어 정확히 워크로드(Workload) 규모에 맞게 조정됩니다. 과금 방식은 100밀리 초 단위로 코드가 실행되는 시간 및 코드가 트리거 되는 회수를 기준으로 요금이 부과됩니다. 코드가 실행되지 않을 때는 요금이 부과되지 않습니다.실험 배경AWS Lambda의 과금은 요청 요금과 컴퓨팅 요금의 합으로 계산됩니다. 요청 요금은 Lambda 함수를 호출한 총 요청 수에 대해 요금을 부과하고, 컴퓨팅 요금은 사용자가 업로드한 코드를 실행한 시간을 계산하여 100ms당 요금을 부과합니다. 컴퓨팅 요금은 사용자가 설정한 메모리 크기에 선형 비례하여 다르게 부과됩니다. 예를 들어 128MB 메모리에서는 100ms당 0.000000208$이고 256MB는 128MB의 약 두 배인 0.000000417$입니다. 그리고 512MB에서는 256MB의 두 배인 0.000000834$입니다. 또한, 더 큰 메모리를 사용할수록 더 큰 CPU 파워를 제공합니다.가장 큰 메모리 설정값을 사용하면 좋겠지만, 비용적인 측면을 고려해볼 때 사용자 입장에서의 사용 목적은 AWS Lambda로부터 최소한의 요금으로 최대한의 계산 효율을 뽑아내는 것입니다. 이 목적을 달성하기 위해서는 Lambda 함수를 실행할 때 메모리의 크기와 CPU의 파워(코어 수, 연산능력)를 명확하게 규명할 수 있어야 합니다. 메모리 크기는 사용자가 설정할 수 있습니다. 하지만 아쉽게도 아마존에서는 CPU 용량은 설정한 메모리 크기에 비례하여 결정된다고만 설명되어 있고 어느 정도의 성능을 가졌는지 명시하지 않고 있습니다.하지만 데이블의 백엔드 개발팀에서, 실험을 통하여 AWS Lambda에서 메모리 설정값에 따라 CPU 파워가 어떻게 변하는지 규명해냈습니다. 이제 그것을 이 포스팅을 통해 설명해 드리고자합니다.메모리 설정값과 CPU 파워의 관계"설정한 메모리 크기와 CPU 파워는 지수적 감쇠 관계(Exponential Decay)를 보인다"앞서 "CPU 파워는 메모리 설정한 값에 비례하여 증가한다”라고 했습니다. "그러면 어느 정도로 어떻게 비례하는가?”, “당연히 선형관계 아닌가?"라는 질문이 자연스럽게 나올 것입니다. 저희는 이 질문에 대답하기 위해 각 메모리 설정값별로 100만 번의 덧셈연산을 하여 각 설정 별 처리시간을 계산해 보았습니다. 다음 [그림 1]은 100만 번의 덧셈 연산을 했을 때 처리시간을 나타낸 그래프입니다. X축은 할당한 메모리의 크기를 나타내고 Y축은 처리시간을 초 단위로 측정한 것입니다. 보시는 바와 같이 처리시간은 메모리 크기에 따라 지수적으로 감소함을 알 수 있었습니다. 그러므로 AWS Lambda에서는 설정한 메모리 크기와 CPU 파워는 지수적 감쇠 관계(Exponential Decay)를 보인다고 결론을 내릴 수 있습니다. 예를 들면 현재 설정한 메모리보다 2배 높은 CPU 파워를 사용하고 싶으면 2배로 큰 메모리 용량을 설정해야 합니다.[그림 1] 메모리 설정값에 따른 처리시간필요로 하는 메모리 크기와 사용하는 응용에 따라 다르겠지만, 일반적으로 메모리의 크기에 상관없이 사용하는 비용이 거의 같다고 얘기할 수 있습니다. [그림 2]는 앞서 100만 번 덧셈 연산을 1만 번 호출했을 때의 각 메모리 설정값 별 요금을 나타낸 것입니다. X축은 설정한 메모리 크기이고 Y축은 각 메모리 설정값 별 요금입니다. 보시는 바와 같이 분포가 급격히 변하지 않고 대체로 균일한 것을 알 수 있습니다.[그림 2] 메모리 설정값에 따른 요금하지만 프로그램의 실행 시간은 단순히 CPU 파워로만으로 처리 시간이 결정되지 않기 때문에 다양한 요인을 검토해야 합니다. 알고리즘의 시간복잡도, 메모리의 크기와 접근 횟수, 네트워크 비용 등 다양한 것들이 처리 시간에 영향을 미치기 때문에 단순히 메모리 설정값을 늘려서 사용하는 방법은 옳지 못합니다. 그러므로 위 자료를 참고 용도로만 사용하셔서 하고자 하는 목적에 맞게 가장 최적의 메모리 설정값을 설정하시면 됩니다.요약AWS Lambda는 대표적인 서버 없는 컴퓨팅 서비스입니다. AWS Lambda에서 뛰어난 가성비를 얻고자 할 때는 각 설정값에 따라 제공하는 자원을 예측할 수 있어야 합니다. 여러 설정값 중 가장 성능에 큰 영향을 미치는 것은 사용하고자 하는 메모리 크기인데 이 크기에 따라 CPU 파워가 결정됩니다. 하지만 각 메모리 설정값에 따른 CPU 파워 정보를 아마존에서 제공해 주지 않고 있으므로 실험을 통해서 확인하였습니다. 실험 결과 설정한 메모리 크기와 CPU 파워는 지수적 감쇠 관계(Exponential Decay)를 규명했습니다. 이 규명은 단순한 프로그램에서만 확인한 것이기 때문에 최고의 효율을 가지는 AWS Lambda를 사용하기 위해서는 그 밖의 다양한 것들을 고려하여 설정해야 합니다.  기타머신 성능 및 정보- 사용하는 CPU는 Intel(R) Xeon(R) CPU E5-2666 v3 @ 2.90GHz, 코어의 개수는 2개, 그리고 캐시의 크기는 25600 KB 임(사용하는 Microcode는 바뀔 수 있음)- 메모리는 약 3.67GB를 가짐실험에 사용한 Lambda 함수import osimport multiprocessingimport timeimport subprocessdef lambda_handler(event, context):mem_bytes = os.sysconf('SC_PAGE_SIZE') * os.sysconf('SC_PHYS_PAGES')mem_gib = mem_bytes/(1024.**3)num_cores = multiprocessing.cpu_count()#start_time = time.time()print subprocess.check_output ('vmstat -s', shell=True)sum = 0for i in range(1000000):sum += iif sum 000 == 0:print subprocess.check_output ('vmstat -s', shell=True)print subprocess.check_output ('vmstat -s', shell=True)hostname = subprocess.check_output ('hostname', shell=True)cpuinfo = subprocess.check_output ('cat /proc/cpuinfo', shell=True)meminfo = subprocess.check_output('cat /proc/meminfo', shell = True)print hostnameprint '--------------------------------------------------------------\n\n'print 'CPU Information'print cpuinfoprint '--------------------------------------------------------------\n\n'print 'Memory Information'print meminfoprint '\n\n\n\n'참고 자료https://aws.amazon.com/ko/lambda/details/#데이블 #개발 #개발자 #인사이트 #꿀팁 #AWS #조언
조회수 1708

공용 계정용 OTP 관리방법

제대로 된 기업용 서비스라면 의례 다중 계정과 권한 제어 기능을 함께 제공하기 마련이다. 그래서 공용 계정을 굳이 만들 이유가 하나도 없다. 하지만 일부 서비스(그리고 대부분의 한국의 기업 서비스)는 단일 계정만 지원하는데다 AWS 같은 서비스도 root 계정이 따로 있어서 계정 관리 이슈가 불거지기 마련이다. 계정 아이디와 암호의 경우는 LastPass 같은 기업용 계정 관리 서비스를 사용하거나 팀 공용 계정 비밀번호 관리하기에서 소개된 방식과 같이 약간은 불편하지만 비용이 들지 않는 수단을 도입하여 관리하면 된다. 그런데 MFA 또는 2FA(2-Step Verification)라고도 부르는 OTP로 계정을 보호할 때는 OTP 정보를 공유하기가 쉽지 않다. 일반적으로 MFA 계정은 Google Authenticator 같은 앱을 설치해 관리한다. OTP 정보와 계정 암호를 한 계정에서 관리하지 않아야 한쪽이 노출되어도 보안을 유지할 수 있기 때문이다. 문제는 Google Authenticator와 Authy 같은 도구를 특정 휴대폰에 설치하면 여러 사람이 OTP 정보를 공유하기 힘들다는 것이다. 그래서 몇가지 솔루션을 찾아보았는데 “이거다!” 싶은 건 없어도 gauth라는 명령줄 기반 도구에 안착하게 되었다.gauth.csv라는 파일에 OTP 정보를 아래와 같이 입력하고AWS: ABCDEFGHIJKLMNOPQRSTUVWXYZ234567ABCDEFGHIJKLMNOPQRSTUVWXYZ234567 Airbnb:abcd efgh ijkl mnop Google:a2b3c4d5e6f7g8h9 Github:234567qrstuvwxyzgauth를 실행하면 아래와 같이 OTP 토큰을 확인할 수 있다.$ gauth prev curr next AWS 315306 135387 483601 Airbnb 563728 339206 904549 Google 453564 477615 356846 Github 911264 548790 784099 [======= ]이제 gauth.csv 파일만 라스트패스 등으로 제한된 사용자에게 안전하게 공유하면 된다.개선 사항DailyHotel/gauth는 pcarrier/gauth를 개선한 tuxmartin/gauth를 Docker 이미지로 감쌌다. 그래서 Golang 개발환경을 갖추고 소스코드를 빌드하지 않아도 바로 사용할 수 있다. 자세한 사용법은 README 문서에 적어두었다.#데일리 #데일리호텔 #개발 #개발자 #개발팀 #인사이트 #꿀팁
조회수 1952

그는 당신의 비즈니스에 관심이 없다.

스타트업을 시작하고 나서 가장 많이 받는 질문이 있었다."어떤 사업을 하고 계신가요?"< 사업 설명은 시작하면 끝이 없다. 아마? 시킨다면 밤도 샐 수 있다. >피부로 느낀 현실은 해당 사업에 대한 설명을 아무리 잘 해도 상대방을 완벽하게 이해시킬 수 없다는 것이었다. 이야기를 듣는 그는 당신의 하는 비즈니스의 전문가가 아닐뿐더러 타깃 고객층 역시 아닌 경우가 많기 때문이다. IT 지식이 없는 상대에게 성능 좋은 SDK를 개발해서 파는 사업을 설명한다던가, 중년이 넘어선 상대방에게 아이돌 가수들과 연관된 서비스를 이해시키기란 정말 쉽지 않은 일이다.1. 그는 당신의 비즈니스에 관심이 없다. ( 숫자가 궁금할 뿐 )2015년 SF에서 머무르던 시기, 스타트업 네트워크 모임에서 맥주를 마시며 캐주얼하게 한 친구와 이야기를 나눈 적이 있다. 인사를 나누고 안 되는 영어와 바디랭귀지를 마구 섞어 우리 팀이 하고 있는 서비스에 대해서 열심히 소개를 했지만 반응이 시큰둥했다. 많은 스타트업이 그러하듯 나 역시도 우리 팀이 하는 비즈니스는 정말 멋지고 훌륭하고 대박이 날 것 같은 근거 없는? 자신감과 똘끼가 충만하던 시기였다. 우리는 홍대의 노점상부터 시작해서 개고생을 하며 바퀴벌레 같은 생명력과 독기를 가지고 있던 시기였고 그 당시는 정말 뭐라도 다 씹어먹을 기세였다.곧 그 친구의 논리 정연한 답변과 질문이 이어졌다. 네가 하는 비즈니스에 대해서는 네가 가장 잘 알 꺼야. 내가 해당분야의 전문가가 아니기 때문에 이해를 못하는 점 미안해. 그리고 수많은 시간과 열정을 쏟아부었던 너의 비즈니스를 판단하는 것은 말이 안 된다고 생각해. 내가 이해할 수 있게 주요 숫자들만 말해 줄 수 있니? 였다.당시 내게 이런 형식의 질문을 던전 사람은 처음이었다. 그가 원하는 답변은 매출 같은 숫자가 아닌 바로 MAU, DAU, LTV, CAC, CTR, Retention, MoM Growth Rate 등과 같이 서비스가 실제 사용자에게서 획득한 숫자였다. 무지했고 별로 중요하지 않게 생각했기 때문에 완벽한 답변을 하지 못했다. 나중에 알게 된 사실인데 그 친구는 이름만 되면 알만한 어느 유명 VC의 파트너였고 난 어찌 보면 좋은 투자기회를 놓친 실수를 하고 만 것이었다. 그 사건 이후 비즈니스 설명은 최대한 적게 하는 대신 숫자로 이야기하는 연습? 아니 숫자들을 파악하고 머릿속에 집어넣기 시작했다.<  숫자로 설명하고 숫자로 설득 시켜야 한다는 것을 몰랐었다. >예를 들어, 우리가 사용자를 확보하는데 평균 5,000원의 마케팅 비용이 들고 (UAC) 이렇게 확보한 사용자는 우리 서비스에서 한 달간 10,000원을 지불한다.(LTV) 그래서 얼마의 돈이 있다면 얼마를 벌 수 있고 (Scale up) 우리가 이렇게 성장을 계속한다면 몇 년 안에 무엇을 달성할 수 있어(KPI).라는 식이다.2. 비즈니스의 판단의 몫은 따로 있다.스타트업 초기 열심히 참가하는 네트워크 모임이나 발표 현장에서 만났던 투자자나 멘토들은 사업 설명을 듣고 "이 사업이 되네 마네 감 놔라 배 놔라" (심지어 창업 경험도 없는) 하는 사람들이 대부분이었다. 수년간의 시간과 자신의 모든 것을 걸고 실행과 개선을 반복하고 있는 창업팀이 경험한 인사이트를 단 1분 만에 깨 부셔버리기 일쑤였다.수천, 수만 가지의 다양한 산업이나 다양한 고객층이 존재하는 시장과 기회를 보고 서비스나 제품을 만들고 있는 스타트업 사업의 본질을 타인이 이해하기란 실로 쉽지 않다. 한 발표 자리에서는 스푼 라디오를 설명하고 나서 실제로 들었던 질문 중에 "개인 라디오 서비스 앱이라고 하셨는데 그렇다면 라디오 주파수를 어떻게 할당받으셨나요?"라는 질문을 받은 적이 있다. (실화다...)아직도 사업을 그냥 짧은 순간의 자신이 가지고 있는 경험과 지식을 바탕으로 바로 판단하는 사람들이 절대다수이지만 숫자로 대화를 이어갈 수 있는 기회나 사람들이 분명 존재한다.반대로 자신감에 넘쳐 '천상천하 유아독존' 유형의 밑도 끝도 없는 자신감만으로 세계 최고가 될 거라 주장하는 스타트업들도 많이 만났다. '제2의 페이스북이 되겠다.'라고 한다면 그 이유와 논리를 숫자(데이터)로 펼칠 수 있어야 하고 추가적으로 가능할 수밖에 없는 수백수천 가지의 가설 검증과 객관적인 지표를 내밀 수 있어야 하지 않을까?스타트업이 하는 비즈니스의 판단의 몫은 냉정하게 따지고 본다면 창업자의 몫이 아니다. 그렇다고 투자사나 멘토 역시 아니다. 그 서비스나 제품을 실제로 쓰는 타깃 사용자만이 그 서비스를 실제로 판단할 수 있는 자격? 이 있는 사람이다. 물론 사용자가 전문가처럼 비즈니스 자체를 판단하지는 않는다. 타깃 사용자들이 얼마나 서비스에 대한 구매전환율이나 사용 패턴을 보이고 충성도 재방문주기가 어떤지 등으로 냉정한 판단?을 받게 된다.  아무리 혁신적인 기술로 무장한 제품이나 매력 있는 서비스라고 주장해도 사용자가 외면한 제품, 서비스라면 존재의 이유 자체가 없거니와 해당 스타트업이 죽음의 계곡에서 살아 남지 못함을 우리는 뼈저린 실패를 통해 배운 경험이 있다.세상에 없던 혁신적인 서비스라 주장하고 자랑했던 스타트업들이 망하기도 하고, 투자자나 멘토들이 혹평을 하고 무시했던 서비스들이 유니콘 기업이 된 해외사례를 충분히 찾아볼 수 있다. 국내에서도 세계 최고라고 떠들면서 배임 횡령 등의 문제를 일으킨 스타트업들이 보도되기도 했고, 몇 년 전 투자사들에게 무시당하고 아무도 거들떠보지 않았던 스타트업이 이제 업계를 좌지우지할 정도로 성장한 사례를 이제는 심심치 않게 국내에서도 찾아볼 수 있으니 어찌 보면 우리나라 스타트업계도 많은 성장을 하고 있음이 분명하다.한국의 문화와 특성상 남이 잘되면 가만히 놔두지 않는 문화가 존재한다.오죽하면 "사돈이 땅을 사면 배가 아프다."라는 속담이 있을까?사돈이 땅을 사면 좋은 일이니깐 함께 기뻐해 줘야 하는데...해당 부분은 쉽게 바꿀 수가 없기 때문에 내부에서는 자신감을 가지지만 겸손해야 하며, 절대 자만해서는 안 된다는 점을 느끼고 있다. 또한 외부에서 어떤 비판이나 심지어 비난이 이어지더라도 초연해 지려 하고 있으며, 반대로 칭찬에는 우리는 언젠가 다시 또 망할 수 있다는 점을 잊지 않으려 되새김질하고 있다.3. 숫자는 거짓말을 하지 않는다.아쉽게도 지금 우리가 하는 스푼이라는 서비스는 20대가 타깃인 서비스로 30대 후반인 나는 타깃 고객층이 아니다. 그래서 스푼 라디오를 들어봐도 재미를 느끼거나 공감을 할 수 없을뿐더러 서비스의 수많은 방송에서는 그들만이? 쓰는 특정한 단어들의 이해 또한 힘들다.하지만 사용자들의 로그나 숫자(데이터)는 거짓말을 하지 않는다. 우리 서비스 숫자(데이터)의 본질과 가능성을 우리가 먼저 파악을 하고 있어야 하고 해당 부분을 볼 줄 알아야 하고 그런 사람들을 만나야만 한다. 그게 투자사가 될 수도, 합류하는 멤버가 될 수도 있다.SNS에서 "20대가 쓰는 서비스를 30대가 기획하고 40대가 리뷰하고, 50대가 최종 의사 결정을 하는 것이 문제다."라는 글을 본 적이 있다. 매우 공감한다. 주변에서도 아직 수많은 서비스들이 이러한 프로세스를 통해 망하는 사례를 수 없이도 많이 보았다. 그렇다고 50대가 20대의 머릿속에 들어갈 수 없는 노릇이고 아무리 그들과 어울려 본다고 하지만 그들의 감성과 문화를 완벽하게 이해할 수는 없다. 해서 판단을 하는 기준과 의사결정을 숫자(데이터)를 보고 정하고 있고 숫자를 최대한 많이 보기 위해 수많은 분석 툴과 로그들을 보고 있고  그 필요성을 더욱 절실하게 느껴 유료 분석 툴들을 사용하기 시작했다.< 정말 많은 툴을 써보면서 분석 노가다를? 아직도 열심히 하고 있다. >개발자 시절 코드는 거짓말을 하지 않는다.라는 동료 개발자의 말이 생각난다. 로직으로 돌아가는 코드가 거짓말을 할 수 없을뿐더러 모든 오류나 문제는 사람의 실수( 사람이 잘못 작성한 코드)에서 비롯되기 때문이다.숫자 역시 거짓말을 하지 않는다. 1을 투입하면 2가 나오는 곳을 확대하고 2를 넣으면 1을 손해 보는 곳을 줄이며 서비스를 개선시켜나가면 서비스는 성장을 하기 시작한다. 그리고 이 숫자의 로직이 큰 숫자들을 대입했을 때도 동일하게 동작하는지 지속적인 테스트를 해나가고 있다. 100만 원의 마케팅비를 들여서 200만 원을 번 서비스에 1억 원의 마케팅비를 투입했다고 해서 2억 원의 매출이 나올지는? 아무도 모른다.그래서 우리는 지금도 그리고 앞으로도 우리의 경험이나 기존 지식을 판단의 기준으로 하지 않고 사용자들의 피드백과 사용자들이 서비스 내에서 만들어낸 숫자(데이터)를 보기 위한 노력을 게을리하지 않아야 한다.#스푼 #Spoon #초기창업 #성장 #인사이트 #조언
조회수 857

에이스프로젝트 피트니스 지원

'겨울 동안 마음 놓고 너무 많이 먹었나...? 몸이 둔해진 것 같아 ㅠㅠ','요새 체력이 많이 약해진 거 같아... 자도 자도 너무 피곤하네','이제 여름도 얼마 안 남았네? 바다가 나를 부른다!'어느새 이런 생각이 많이 들 때인 4월입니다.이런 분들의 고민을 해결해주기 위해, 에이스프로젝트에서는 피트니스 이용권을 제공합니다.아침, 점심시간, 저녁 그리고 주말까지 간편히 이용 가능! 피트니스센터는 바로 회사 지하 1층입니다.엘리베이터만 타고 내려가면 바로 운동할 수 있어요. 가깝다 보니 점심시간에 탄력 근무를 이용해 운동하고 돌아오는 에이스인들도심심찮게 만날 수 있답니다!피트니스센터가 아주 가깝다는 점 외에도 또 하나의 장점!개인 사물함도 따로 제공하고 있습니다. 항상 들고 다니기 귀찮은 운동화와 샤워용품은 입구 옆에 있는 개인 사물함에 보관할 수 있습니다.언제든지 몸만 가면 운동을 할 수 있는 거죠.그리고 이용 방법도 아주 간단합니다. 에이스프로젝트 공용 사물함에 있는 명단에 이름을 적고, 넉넉히 들어있는 출입카드 중 하나를 꺼내서 입장하면 됩니다. 차~암 쉽죠?다양한 운동기구들이 있기 때문에근력 운동, 유산소 운동 등 본인이 원하는 운동 스타일에 맞추어 여러 운동을 할 수 있습니다.운동은 골고루 열심히! 으쌰 으쌰특별한 운동을 원하는 에이스인이라면 'G.X(Group Exercise)' 이용 가능!혼자 운동하는 게 재미없다는 사람들도 있죠.그룹으로 운동하는 것, 또는 전문가의 도움을 받고 싶다면 G.X(Group Exercise)를 이용할 수 있습니다. 이것도 무려 무료!!!!요가, 줌바, 필라테스, 웨이트 트레이닝 등 다양한 운동을 전문가 선생님에게 배울 수 있어요. 원하는 요일, 시간에 맞춰 선택해서 들을 수 있어좀 더 특별하게 운동을 할 수 있을 거 같네요.PT(Personal Training) 이용자, 복지포인트 20% 할인 혜택 제공!운동이 처음이어서 어떤 기구를 써야 할지, 자세는 어떻게 해야 할지 막막한 분들도 있어요.에이스프로젝트에서는 PT 이용을 원하는 사람에게 복지포인트 20% 할인 혜택을 제공합니다!회사 복지 포인트를 이용하여 PT를 결제하면, 20% 할인된 금액만 차감되는 방식이에요.저처럼 회사 입사 전까지 운동이 낯설었던 사람을 위한 최고의 혜택이죠.직원의 건강이 좋아지면 자연스레 업무 효율이 올라가고, 이는 당연히 회사의 성과와도 연결되겠죠?직원의 건강이 회사의 건강이라 생각하는 에이스프로젝트.체력은 기본! 피트니스센터 지원과 함께 건강한 에이스인이 되어요!
조회수 1881

서비스 중단 없이 Amazon EKS로 옮긴 이야기 - VCNC Engineering Blog

Amazon EKS는 AWS의 관리형 Kubernetes 서비스입니다. 2017년 11월 AWS re:Invent에서 프리뷰 버전이 출시되었고, 2018년 6월에 상용(GA) 버전이 미국 리전에만 출시되었습니다. 그래서 서울 리전을 사용해야 했던 타다 프로젝트에서는 Kubernetes 클러스터를 직접 kops로 설치하여 운영할 수 밖에 없었습니다.2019년 1월, 오랜 기다림 끝에 드디어 서울 리전에 EKS가 출시되어 기쁜 마음으로 EKS로 옮겨가게 되었습니다. 이 글에서는 직접 구축한 클러스터 대비 EKS의 특징에는 어떤 것이 있는지 살펴보고, 서비스 중단 없이 EKS로 옮기기 위한 전략을 공유하고자 합니다.EKS 서울 리전 출시를 염원하던 한국인(?)들EKS는 뭐가 다른가요?AWS에서 마스터 노드를 관리해줍니다.Kubernetes 클러스터는 마스터 노드와 워커 노드로 구성되어 있습니다. EKS는 이 중에서 마스터 노드를 직접 EC2로 띄울 필요 없이 AWS에서 관리해주는 서비스입니다. RDS를 사용할 때 직접 DB 인스턴스를 생성하지 않는 것과 비슷합니다. 별도의 설정 없이도 알아서 여러 가용 영역에 마스터 노드를 실행하여 HA(고가용성) 구성을 해주고, 비정상 마스터 노드를 자동으로 감지하고 교체합니다. 또한 자동화된 버전 업그레이드 및 패치를 지원합니다. EKS를 사용하더라도 워커 노드는 직접 EC2 인스턴스를 생성·관리해야 합니다.EKS 클러스터의 요금은 2019년 2월 현재 시간당 $0.20입니다. 타다에서는 기존에 t2.medium 3대를 마스터 노드로 사용하고 있었기 때문에 관리를 직접 하지 않는 대신 비용이 약간 증가하게 되었습니다.AWS IAM 기반 인증을 사용합니다.VCNC에서는 기존에 Kubernetes API에 접속할 때 가장 간단한 basic auth 인증 방식을 사용했습니다. 그 대신 외부 네트워크에서 접근할 수 없게 해두고 필요한 경우 Bastion 호스트를 통해 SSH 터널링하여 접속했습니다.EKS의 API 서버는 인터넷에 노출되어 있으며, 별도로 네트워크 접근 제한 설정을 할 수 없고 AWS IAM으로 사용자를 인증합니다. (물론 공개망에 노출되어 있으면 Kubernetes API 서버에 보안 취약점이 발견되는 경우 안전하지 않을 수 있는 단점이 있습니다. 앞으로 PrivateLink가 지원되면 해결될 것입니다.)IAM은 인증에만 사용되고, 특정 작업을 할 수 있는 권한은 Kubernetes 기본 RBAC로 관리됩니다. IAM 사용자나 역할을 RBAC 그룹에 매핑할 수 있습니다.EKS 인증 흐름도워커 노드 당 Pod 개수 제한이 있습니다.예를 들어 c5.large 인스턴스에는 29개의 Pod을 띄울 수 있습니다. (표 참고) 그러므로 기존 클러스터에서 노드 당 Pod이 몇 개나 되는지 미리 확인할 필요가 있습니다. 왜 이런 제약이 있을까요?Kubernetes에서는 네트워킹 플러그인으로 Pod 사이에 네트워크 통신하는 방식을 다양하게 설정할 수 있습니다. EKS는 기본적으로 amazon-vpc-cni-k8s를 사용합니다. 이 네트워킹 플러그인은 VPC 상에서 유효한 실제 IP를 Pod에 할당합니다.그러기 위해서는 하나의 EC2 인스턴스에서 여러 개의 IP를 받아와야 하고, 이를 위해 추가적인 네트워크 인터페이스(ENI)를 붙입니다. 그런데 인스턴스 타입에 따라 추가할 수 있는 ENI 수와 ENI 당 IP 수에 제한이 있습니다. 따라서 이 제한이 워커 노드 하나에 띄울 수 있는 Pod 개수 제한이 됩니다.flannel 등 오버레이 네트워크 기반의 다른 네트워크 플러그인을 사용하면 이러한 제약을 피할 수 있습니다. 하지만 EKS에서 기본 제공하는 방법을 그대로 사용하는 것이 좋고, Pod을 엄청나게 많이 띄워야 하는 상황이 아니어서 시도하지 않았습니다.EKS로 중단 없이 넘어가기개요타다의 Kubernetes 클러스터에서 돌아가는 서비스들은 모두 영속적인(persistent) 상태를 가지고 있지 않습니다. 따라서 EKS 클러스터 위에 동일한 서비스를 띄우고 외부 트래픽을 옮겨주기만 하면 특별히 데이터를 옮기지 않고도 이전이 가능했습니다. 또한 거의 대부분의 Kubernetes 리소스는 Helm 차트로 생성한 것이기 때문에 새로운 클러스터에 동일한 서비스를 띄우는 작업도 쉽게 할 수 있었습니다.이전 작업은 다음과 같은 순서로 진행했습니다.EKS 클러스터를 만들고 워커 노드를 생성모든 서비스 다시 설치트래픽을 새 클러스터로 보내기이전 클러스터 제거EKS 클러스터를 만들고 워커 노드를 생성타다의 AWS 환경은 거의 모두 Terraform으로 정의되어 관리되고 있습니다. EKS 클러스터와 워커 노드도 HashiCorp Learn의 문서를 참고해서 Terraform으로 생성했습니다. 해당 문서에 설명이 잘 되어 있어서 거의 그대로 따라할 수 있었습니다.EKS 클러스터 설정은 재사용 가능하도록 Terraform 모듈로 만들었습니다. 덕분에 테스트용 클러스터와 실서비스용 클러스터를 동일한 모듈로 변수만 바꿔서 설정할 수 있었습니다.모든 서비스 다시 설치타다의 Kubernetes 리소스는 Helm 차트로 관리되고 있어서 기존 차트를 거의 그대로 설치할 수 있었습니다. 사용자에게 직접적인 영향을 덜 주는 워커 서비스를 먼저 설치해서 제대로 동작하는 것을 확인한 뒤, 마지막으로 프론트엔드 서비스를 설치하였습니다.트래픽을 새 클러스터로 보내기타다의 모든 트래픽은 NLB로 들어온 뒤 NGINX를 거쳐 다시 적절한 Pod에 라우팅됩니다. 그러므로 타다의 모든 도메인은 NLB를 가리키고 있습니다.타다는 Route 53을 DNS 서버로 사용합니다. Route 53에는 가중치 기반 DNS 레코드를 설정할 수 있습니다. 이를 이용하여 일부 트래픽만 새 클러스터의 NLB로 보낼 수 있습니다. 처음에는 아주 적은 트래픽만 새 클러스터로 보내다가 문제 없이 작동하는 것을 확인한 다음 조금씩 트래픽을 늘려나갔습니다.DNS 가중치 설정으로 일부 트래픽만 새 클러스터의 NLB로 보낼 수 있습니다.DNS 설정에서 이전 클러스터로 가는 레코드를 완전히 제거한 뒤에도, DNS 캐시 등의 이유로 일부 클라이언트가 이전 클러스터에 접속할 수도 있습니다. 따라서, 이전 클러스터 NLB에 새 클러스터의 노드들을 붙여서 아직 DNS를 따라오지 못한 클라이언트들의 요청을 처리하였습니다.이전 클러스터 제거가장 신나면서 조심해야 하는 작업입니다. 먼저 이전 클러스터로 트래픽이 전혀 들어오지 않는 것을 확인하였습니다. 그 다음에는 Terraform에서 이전 클러스터 리소스에 대한 참조를 제거한 뒤, terraform destroy 명령으로 이전 클러스터와 관련된 리소스를 한번에 삭제할 수 있었습니다.맺음말Kubernetes는 깔끔한 추상화를 통해 컨테이너 기반 배포를 간단하게 만들어주지만, 직접 클러스터를 관리해야 하는 부담이 있었습니다. Amazon EKS는 이러한 부담을 많이 덜어주는 좋은 서비스입니다. 앞으로 EKS의 무궁한 발전을 기원합니다.VCNC에는 오랫동안 쌓아온 AWS 인프라 운영 경험이 있습니다. 타다에서는 그동안의 경험과 비교적 최근에 시작한 프로젝트의 이점을 살려 컨테이너, Infrastructure as Code 등 업계 표준의 인프라 관리 방법론을 적극 도입하려고 노력하고 있습니다. 앞으로도 이에 관해 기술 블로그에 더 자세히 공유할 계획이니 기대해주세요. 또한 저희와 함께 안정적인 서비스를 만들어나갈 좋은 분들을 기다리고 있으니 VCNC 채용에도 많은 관심 부탁드립니다.

기업문화 엿볼 때, 더팀스

로그인

/