스토리 홈

인터뷰

피드

뉴스

조회수 979

온라인의 브랜딩: 커버 이미지 통일이 능사가 아니니까

흔히 트리플미디어 전략이라고 불리는 것이 있어요. 미디어를 행위자의 목적에 따라 분류해놓은 것이죠.페이드 미디어(Paid media) 는 유입, 노출, 전환의 과정을 목적으로 유료진행되는 매체를 말해요. TV광고나 DM, 인쇄물, 지하철/버스광고, 엘리베이터에 빙글빙글 나오는 디스플레이 광고등이 이에 해당하죠.언드 미디어(Earned Media)는 대표적으로 바이럴과 보도자료 등이 있겠네요. SNS를 통한 인플루언서 마케팅도 이에 해당합니다. 주로 브랜드의 충성하는 고객들의 확보와, 영향력 있는 사람을 중심으로 생성되는 TAT(Talk about this)를 목적으로 합니다. 온드미디어와는 약간 차이가 있는데 온드미디어가 노출을 메인으로 한다면 언드미디어는 대화를 목적으로 합니다. 사람에 의해 사람에게 퍼져나가는 것이 언드미디어의 특징이죠.온드 미디어(Owned Media)는 자체적으로 지니고 있는 채널. 그러니까 홈페이지, 블로그, 페이스북 페이지, 트위터 채널, 앱 등을 의미해요. 물론 소셜미디어는 온드미디어를 포함한 위 2개의 미디어 모두에 걸쳐있긴 하지만, 주로 맞춤형 콘텐츠나 제작 이후 디지털 자산이 될 수 있는 경우를 말합니다. 대표적인 사례로 페이스북 페이지에 올리는 카드뉴스나, 이러한 브런치 콘텐츠, 또는 영상콘텐츠 등등이 되겠죠. 글에 들어가기에 앞서 미디어를 설명한 까닭은 각각의 미디어채널에 대해 업무하는 방식이 조금 다르기 때문입니다. 페이드가 불특정다수에 대한 직접적인 매출과 유입을 목적으로 한다면, 언드미디어는 소수군집에 대한 집중적인 관리/운영의 특징이 있어요. 직접적인 매출보단 긍정적인 이미지와 원하는 표현들이 등장할 수 있게 컨트롤하는 것이 중요하죠. 반면 온드미디어는 브랜드의 색을 드러내고 직접적인 매출발생보단 브랜드이미지 구축과 아이덴티티 형성에 좀 더 포커싱되어 있어요. 더불어 우리만의 콘텐츠를 '자산화' 시키는 것이 중요하죠.세 미디어 모두 브랜딩에 있어서 필수적인 요소이지만, 비쥬얼브랜딩이라고 하면 흔히 온드미디어를 통한 아이덴티티 구축을 우선적으로 떠올릴 수 있어요.무슨 설날명절 선물세트같이 온드미디어는 대부분 정형화된 세트로 움직입니다.웹/블로그/페이스북/인스타그램/(+앱)이런 식으로 말이죠. 흔히 처음에 비쥬얼브랜딩 기획을 하면, 우선 온드미디어의 컨셉부터 통일시키는 것을 생각하곤 해요. 물론 맞는 말입니다. 어찌보면 잠재고객이나 구매의사가 없던 외부인들이 제일 먼저 접하는 채널이 될 테니까요. 색깔을 확! 보여주고 기억에 남기고 싶겠죠. 그래서 많이들 하는 행동이 '온통 똑같이 맞추기' 더군요.아무래도 브랜딩! 하면 이런 스테이셔너리 이미지가 제일 먼저 떠오르기 때문이기도 한 것 같아요. 맞습니다. 비쥬얼은 분명 통일 되어야 함이 맞습니다. 그러나 무엇을 어떻게 통일시킬 것인가에 대해선 생각해볼 필요가 있어요.보통 디자인 요소가 확 드러나는 곳은 3가지입니다."웹랜딩페이지""블로그배경""페이스북 페이지커버"그래서 보통 페이스북페이지와 블로그를 통일시키고, 프로필사진도 똑같이 맞춥니다. 근데 이게 또 마냥 좋아보이진 않는달까요. 보통 사람들은 무언가를 인식할 때 맥락을 통해 이해하려고 합니다. 왜 이게 이런 모양인지, 왜 커버가 이런지 등등 그 인과관계를 파악할 수 있어야 쉽게 이해가 되죠.이게 우리 로고니까 어서 나를 쳐다봐 이 자식아!!!라는 식의 뜬금포 노출은 사실 별로 기억에도 안남을 뿐더러 통일되었다고 해도 '그래서 이게 뭔데?' 라는 의문만 남기게 됩니다.페이스북이미지와 텍스트는 서로 조화롭게 어울려야 하고 각각의 요소들이 서로 유기적으로 서로를 보듬어야 합니다.아래의 이미지는 Raize GLS의 페이스북 페이지입니다.페이지에 들어왔을 때 왼쪽의 로고가 보이죠. 그리고 왼쪽엔 심플하게 캐치프라이즈가 있습니다. 추상적인 캐치프라이즈이지만, 레이즈의 로고에 존재하는 화살표의 의미를 이해할 수 있게 만드는 문구죠. 마치 로고를 풀어 설명해놓은 듯한 구성입니다. 전체적인 통일감은 컬러톤으로만 맞추었어요. 간단하면서도 효율적인 방법이라고 할 수 있죠.삼분의일 페이지도 그러합니다. 로고에 대한 내용을 커버이미지에서 충분히 설명하고 있죠. 보통 그래서 로고와 캐치프라이즈는 서로를 압축/풀이하는 관계에 존재해야 합니다.페이스북 콘텐츠를 구성하는 방법도 그렇습니다. 전체적인 콘텐츠를 꼭 브랜드컬러에 완벽하게 통일시킬 필욘 없습니다. 물론 보기엔 이쁘겠지만 굳이 안해도 될 일이죠. 좋은 콘텐츠를 만드는 데 힘을 더 기울이도록 합시다. 대신 스낵콘텐츠가 아닌 브랜드를 소개하는 콘텐츠일 때는 브랜드컬러를 활용해주면 좋을 듯 합니다. 그런데 이런 건 있더군요. 물론 삼성은 파란색, LG는 빨간색, 카카오는 노란색, 네이버는 초록색 등. 색으로 명확히 기억나는 브랜드들이 존재하긴 합니다. 하지만 대다수 주요컬러들은 이미 대기업의 이미지가 사람들의 머릿속에 깊숙히 잡혀 있습니다. 어떻게 생긴지는 자세히 설명할 수 없어도 색 정도는 금방 기억 나잖아요.스타벅스? 맥도날드? 농심로고? 애플? 배달의 민족? 쿠팡?대략 어떤 색인지 다들 떠오르시죠? 좋습니다. 그렇다면 이제 겨우 시작한 우리 작은 브랜드가 색으로 기존정보를 뒤집을 수 있을까요? 사실상 어려운 일입니다. 색상정보는 그런 대기업로고 이외에도 너무도 많아서 색으로 우릴 기억하게 만드는 것은 생각보다 굉장히 어려운 일입니다. 그렇다고 암청색은 우리 브랜드!!! 인디안브라운옐로우는 우리 브랜드!!! 라는 식으로 지정할 순 없잖습니까. 보통 색상은 브랜드 가이드에 의해 다양한 서브컬러를 활용하고 심볼과 캐치프라이즈를 활용하여 연계이해시키는 쪽이 훨씬 효과가 좋습니다.이런식으로 컬러 바리에이션에 충분히 활용할 수 있는 가이드를 미리 설정하고 심볼릭으로 승부를 보는 거죠. 훨씬 다양한 채널에 다양한 활용이 가능해집니다. 그래서 애시당초 브랜드가이드를 만들 때 이러한 범용성을 충분히 고려하는 것이 좋습니다. 컬러 바리에이션이 가능해지면, 콘텐츠 특성에 따라 시즈너블하게 움직일 수도 있고 테마에 따라 확장시킬 수 있어서 브랜드의 유연성이 훨씬 강력해져요. 색에 너무 집착하지 말아요. 그것 말고도 다양한 방법은 많습니다.블로그블로그의 경우엔 요즘 배경화면 등에 엄청 집착하는 경향이 있던데... 실상 별로 중요하지 않습니다. 보통 블로그는 포스팅을 중심으로 보기때문에 포스팅 콘텐츠에 더 공을 들이는 쪽을 추천합니다.마이크임팩트의 블로그인데, 사실 뭐 별 건 없습니다. 플랫한 컬러에 그냥 여백으로 깔끔하게 뺐죠. 블로그는 더도 말고 덜도 말고 그냥 이렇게 깔끔한 정도면 충분한 것 같습니다. 어차피 블로그메인을 들어와 클릭클릭해서 들어오는 경우는 거의 없으니까요.포스트 콘텐츠에 삽입되는 사진이나, 문장, 내부삽입 이미지에 더 신경써 보도록 해요. 블로그는 사진과 글의 적절하고 찰진 조합이 훨씬 중요하니까요.랜딩페이지랜딩페이지는 그냥 깔끔하게 가는 것을 추천하되, 디자인도 디자인이지만 제발 UX에 더 신경썼으면 합니다. 요즘 어느정도 예쁜 랜딩페이지라고 하면 어떤 느낌인지 감이 오긴 합니다. 워낙 유행도 있고 모듈화되어 있는 요소도 많고 테마형, 드롭앤드래그 방식의 자체제작 사이트가 워낙 많으니까요. 그래서 어느정도 웹사이트 디자인이 평준화 되어가는 것은 어쩔 수 없습니다.온라인 계약업체인 '모두싸인'의 랜딩페이지입니다. 단순한 구조이지만 스크롤을 내리지 않고 필요한 정보를 모두 담았습니다. 디자인이야 깔끔하면 됩니다. 웹페이지가 눈요기하려고 들어오는 곳은 아니잖아요. 한 번에 보고 내가 가고싶은 것을 빠르게 찾을 수 있으면 됩니다. 맞아요. 대표인삿말같은건 별로 궁금하지도 않습니다. 연혁이나 등등도 딱히 중요하지 않습니다. 웹기반 서비스면 어떤 서비스인지 빨리 소개해주고 얼마인지 알려주면 됩니다. 그래서 디자인자체보다 상단메뉴나 스크롤효과, 마우스오버 등 행동과 인지영역에서 더 고민하는 것이 좋습니다.카카오의 메인 페이지입니다.카카오하면 노란색이 떠오르지만, 홈페이지가 노란색으로 쳐발쳐발 되어 있진 않지요. 중간중간 필요한 부분에만 포인트 컬러로 브랜드컬러를 활용하고 있습니다. 심지어 그렇게 뭐 대단한 구성이나 놀라울 것도 없어요. 얼추얼추 비슷한 내용입니다. 공홈인 만큼 사업영역 소개가 메인이고 사람들이 제일 많이 궁금할 인재영입파트에 포인팅을 주었습니다.네이버도 마찬가지입니다. 뭐 딱히 초록색으로 난리를 쳐놓진 않았죠. 여기서 가장 궁금한 서비스영역과 채용정보를 가장 상단에 걸어놓았어요. 아래 칼럼은 좀 뭔가 난잡하긴 하네요. 하지만 그냥 뭐 엄청나게 대단한 그런 모습은 아닙니다. 그냥 웹페이지 느낌이죠.제가 자주 즐겨마시는 쥬스솔루션 홈피는 다 좋긴 한데, 폰트 크기도 그렇고 상단메뉴의 구분도 좀 아쉬운 느낌입니다. 고객입장에선 뉴스같은거 별로 안궁금하거든요. 차라리 Price탭이나 Order탭을 걸어놓고 좀 더 가독성 좋은 폰트를 썼더라면 좋았을 것 같습니다. 게다가 스크롤 안내린 전면화면 상태에서 보여지는 정보가 너무 없어서 결국 배너를 지우고 밑으로 스크롤을 내려야 정보를 볼 수 있어서 1차행동단계를 아쉽게 그냥 날리는 느낌이예요.(하지만 맛있으니 괜츈)뭐 간략하게 살펴보았는데, 중요한 건 이런 겁니다. 미디어채널을 무작정 우리 색으로 도배한다고 브랜딩이 되는 것은 아니라는 거예요. 로고를 사방팔방 널브러뜨리는 것도 사실 별 의미가 없습니다. 프로필과 커버이미지, 콘텐츠가 모두 같은 이야기를 하고 있어야 해요. 맥락이 훨씬 중요하죠.블로그는 콘텐츠가 중요합니다. 백투더베이직같은 뻔한 소리겠지만, 고객들의 살갗에 직접닿는 곳이 부드러워야 하는 것 아닐까요? 내복은 안감이 부드러워야 합니다. 포장지가 예쁜건 의미가 없죠. 랜딩페이지도 그렇습니다. 목적자체가 미술감상용이 아니니, 원하는 목적을 빠르고 효율적으로 쉽게 달성할 수 있으면 됩니다. 브랜드 통일이란 건 뭔가 거창하고 대단한 디자인으로 쫙 라인업하는 게 아닙니다. 전체적으로 비슷한 톤의 '경험'을 주는 것이죠. 난잡한게 브랜드컨셉이라면 뭐 그럴 수 있겠지만, 랜딩페이지는 깔끔한데 페북은 막 병맛콘텐츠 느낌이고 블로그는 막 사용후기 느낌이 그득하면 도대체 여긴 뭐하는 곳인지 혼란스럽습니다.브랜딩의 핵심은 내가 어떤 옷을 입고 어디에 있어도 내 색깔이 변하지 않는 겁니다. 잡스가 청바지에 터틀넥만 입긴 했지만, 그걸 벗고 코트에 구두를 입고 나온다고 해서 못알아보진 않을 거예요. 의미없이 보여주는 이미지보단 맥락있는 경험을 제공하는 미디어채널을 구축해보도록 해요 :) 
조회수 1038

아띠 #22. 매일 새로운 삶을 사는 라이더, 저스틴

Story #22. 매일 새로운 삶을 사는 라이더라이더 '저스틴'을 소개합니다.간단한 자기소개를 해줘!음... 한국에서는 주관식이 어렵다니까;;나는 30살 늦각지에 독립해서 자유를 만낀하며 살고있는! “저스틴” 이라고해저스틴이란 사람은 굉장한 열정을 가지고 항상 새로운 분야에 도전하려하고 많이 부딪치고어려움을 겪기도 하지만 많은 어려움속에서 경험을 통해 새로운것을 하고자 하는 사람이야.아띠는 어떻게 알게 되었어?아띠 인력거는 2013년. 10월 kbs파노라마에서 방영된 김난도 교수 내일이라는 프로그램에서 아띠인력거가 소개되면서 처음 알게 되었어. 언젠가 한번은 꼭 인력거를 타봐야겠다는 생각에 손님으로 인력거를 체험한 이후 손님이 아닌 직접 라이더가 되서 북촌 방문하는 사람에게 북촌 곳곳 숨은 명소와 재미난 이야기를 소개하고 싶어서 라이더를 지원하게 되었어왜? 손님으로  먼저 인력거를 탔어? 바로 지원해도 되잖아?간접적으로 느끼는거랑 직접적으로 느끼는거에 차이가 있었어! 경험했을때 생각보다 훨씬더 인력거의 매력에 매료되더라고. 매력이 무엇이었어? 내가 강남사람이라 그런지 모르겠는데 종로라는 공간이 너무 매력적이었어.서울이란 곳이 도시화되어 옛 정취를 느끼기 어려운지만 도시화된 사회속에서 새로운 역사와 . 한옥을 느낄 수 있고. 옛것을 느낄 수 있는곳으로 많이 놀러왔었어손님으로 탔을때 어떘어?아띠 라이더랑 북촌을 둘러보니 평소에 그냥 지나갔던 곳도 다시 보게 되었고, 정말 숨은 명소가 많다는 걸 알게되었어. 그래서 나같은 사람들에게 소개해 주고 싶어서 라이더가 되게 되었지저스틴을 손님으로 태웠던 라이더가 포레스트였다는데?응 포레였어. 그때 너무 궁금한게 많아서 포레에게 질문을 많이 했었지. 나중에 안 이야기지만 내가 혼자와서 혼자타서. 코치코치 많은걸 물어봐서 내가 스파이인줄알고 조심스럽게 이야기 했다고 하더라구포레랑은 언제 탔던거야? 2014년 2월~3월 정도 되었던거 같은데.  전화로 예약을 했을때 전화로 ij에게 인력거를 타고 싶다고 했어. 근데 ij가 지방출장중이라 새로지정된 포레로 타게 되었지. 면접은 누가 봤어?IJ랑 1:1로 면접을 봤어. IJ가 이러더라구 “잠깐 나가실까요? 걸으면서 면접 보시죠”IJ의 첫인상은 어땠어?이사람 뭐지? 뭘까? 티비에서 보던 그분이구나. 그 사람이구나.인터뷰를 이어가면 이어갈 수록 일반적인 사람이랑 다른 생각을 가지고 있구나. 상식을 깨는 사람이구나.면접은 어땠어?보통 인터뷰 볼때에는 지원사유 여러가지를 물어보지만. IJ의 인터뷰 내용은 자기가 추구하는 인생의 가치를 집중적으로 물어보았던거 같아.직장은 아니지만. 우리가 같이 일했을때 어떤 역할을 하고 기여가치에 대해 집중적인 질문을 받는데. 각 개인이 추구하는 인생의 목표나. 가치에 대해서 많이 물어보았던거 같아.그런것들을 물어봐서 정말 다르구나 느끼게 되었지.  첫 라이딩 어떘어?첫 라이딩은 사실 기억이 잘 안나. 처음에 북촌을 많이 소개시켜주고 싶었는데. 시작하고 나니까. 사람과 사람이 만나는거. 그런것 접점. 사람을 만나면서. 사람들에게 긍정적인 영향을 전파한다 생각했는데. 얻어가는게 많고. 사람들 사는 방식이 매우 다양하구나. 라이딩 하면서 기억에 남는 에피소드는 뭐가 있어?내가 R-3인데 R-3 등급이 되려면 100번 라이딩을 해야 되잔아. 생각해보면 100번 라이딩은 하루를 1번당 평균으로 7팀을 태웠으니 700팀을 태운거야. 1400명을 만난거지.근데 그중에서 기억에 남는 라이딩은대전 여자 태워서 돈 대신 스팸 받았던 이야기인데재작년 추석 연휴 시작되는 날이였어. 잭슨이랑. 야간 라이딩을 하던 중이였는데 지나가는 여성 한분이 짐을 많이 들고 있어서 태워줬어. 그런데 그분이. 고맙다면서 추석 선물 세트. 스팸 3호. 스팸 2개를 꺼내서 팁으로 주셔서 돈 대신 스팸을 받은 적이 있었지 그리고 예전에 아줌마 2분은 태웠었는데  그런데 그 후에 또 다시오셨는데  혼자 오셔서는 1시간 인생 푸념을 하셔서 듣어 드린 적도 있었구그리고 이 인력거가 한국분이 많이 타시지만  해외 이민가신지 20-30년 되신 분들이 오랜만에 고국을 방문하셔서 북촌에 오셔서 한국의 옛 모습을 보시고 감동받고 돌아가시는 모습이 너무 좋았어.마지막으로 북촌 사시는 할머니였는데. 인력거 타고 가는데 할머니가 짐을 무겁게 짊어지고 가시길래. 행선지를 물었는데. 북촌 근처였어. 그 분이 한사코 사양하셨는데. 모셔다 드렸어. 1주일인가. 뒤에 딸을 통해서 할머니가 이런 고마움을 받았다 해서. 음료수 한잔을 전달해 달라해서. 전달 받았던 경험이 이었지저스틴! 몸도 좋고 얼굴도 잘생겼는데 라이딩 하면서 로맨스는 없었어?(그게 쉽지가 않은게.) 많은 사람을 만나며 사사로운 감정을 가질 수 있지만 아띠라는 이름을 달고 하는것이기 때문에 사람들을 만나며 개인적인 감정을 가질 수 있는것을 만들지 않았던거 같아 아띠에 피해를 끼치고 싶지 않고 사람들을 아띠를 통해 만나지만 사람들은 아띠를 만나는 것이기 때문에 아띠에 영향을 끼치고 싶지 않았던거 같아. 나의 오지랖이지. 잡생각이 많았지. 본인은 어떤 라이더인거 같아? 인력거를 타는 동안. 본인이 느낄 수 잇는 가장 편안함? 안좋은 감정, 스트레스를 모두 날려버리고, 인력거를 타는 동안은 가장 편안한 상태가 되는 것 같아아띠가 변화되는 과정을 보았잖아. 어때? 어땠어?뭔가 젊은 친구들이 모여서 열정과 에너지를 쏟는 것을 보면서 감동도 받았지만. 성장하면서. 어려운 부분도 많고. 어려운 점도 많았을텐데. 50명이라는 라이더로 성장한게. 아띠인력거라는 회사가 사람들에게 좋은 인식과 윤리적인 행동을 하고 있다는 것을 느꼈어. 하지만 앞으로 가야할 길이 많다는 거. 노력해야 할게 많아.변화되는 모습에 항상 놀라워. 2년. 3년 시간에 많은 라이더가 일하고 있고. 무엇보다도 라이딩하는 친구들이회사 정규인원으로 속해 일하는게 아님에도 불구하고. 라이더 한명 한명이 아띠에 대한 애정과 애착을 가지고 있는 것을 보면 더 많은 성장을 할 수 있는 아띠라고 생각해.  아띠가 어떤 영향을 준거 같아?사회생활 하면서. 되게. 로직한. 제너럴한 삶을 살뻔 했는데. 아띠를 만나면서. 정말 내가 인생에 있어서 추구해야할 가치가 무엇인지 되돌아 보게 한. 단순히 내가 돈을 벌며 일을 하는 것 이상으로 내가 무엇을 해야 행복할 수 있고. 가치 있는 삶인지 일깨워 주는 곳. 저스틴에게 아띠란?1.o2. 산소다. 일상생활 속에 지쳐있을 때 숨 쉴수 있는 공간. 활력소가 되는.인력거를 타는 순간 원 없이 즐기고, 한 없이 웃고, 행복할 수 있는.2. 행복한 놀이터다. 원없이 즐기고 갈 수 있는. 무언가. 힐링과 재미를 느낄 수 있는. 마지막으로 아띠에게 바라는 점?사람들한테 앞으로도 계속 좋은 인상과 좋은 경험을 전달할 수 있는 아띠의 처음 모습 그대로 끝까지 남아있었으면 좋겠어. 아띠 화이팅이야!!아띠의 원년멤버로써 아직도 힘차게 페달을 밟고 있는  매일매일 새로운 삶을 사는 라이더, 저스틴의 스토리였습니다:)아띠를 직장이 아니라 행복한 놀이터라고 생각하는 저스틴이검은 머리 파뿌리 될때까지 힐링과 재미를 느낄 수 있는 아띠는 그런 공간이 되고 싶습니다!!#아띠라이더스클럽 #팀원소개 #팀원인터뷰 #팀원자랑 #기업문화 #조직문화 #사내문화
조회수 1170

너는 어디쯤에 있니?

치열한 하루를 또 마무리하며,오늘도 살아남은 스타트업 대표 동지 여러분에게위로와 존경심을 담아 메세지를 남깁니다.내 브런치를 보는동갑내기 대표가 이런 말을 했다."채대표!너무 잔소리 하는거 같아.가끔은 희망이 되는 소리를 해야지읽다보면 왠지 씁쓸해지잖아."지난 글들을 곱씹어보니정말 긍정적인 내용보다고쳐야 할 것들,우리가 잘 못 하는 것들,정신차려야 할 것들에 대한이야기가 더 많더라.사람은 희망을 품고 산다고 했는데...내 글은 찬 물을 끼얹는 글이 아닐까하는 생각이 들었다.희망과 추상적인 들뜸으로살아가기엔 창업자의 삶은지독하게 현실적이고,칠흑같이 어두움 속에서방향을 찾기라고 표현하는게너무 비관적인 시각일까?창업자는 이상주의자이면서도,현실주의자여야 하는데...(지켜보고 있다~! 흠칫 놀라실 제 사진입니다)좋은 이야기로 희망을 주는 분들은 많으시니까,난 좀 현실적인 이야기를 남겨도 되지 않을까?이번 글은이전에 썼던 브런치 글 중에서간략하게 소개했던 내용을 보다 상세하게정리하였다.왜 비슷한 내용이 반복될까?창업자가 가져야 할 마인드가 그렇게 복잡하거나많은 능력이 아니고 공통적인 몇 가지로 귀결되기 때문에사실 제시할 수 있는 요인은 그리 많지 않다.나를 포함하여다수의 창업자들은 그냥 한 번 이런 글을 접하게 되면,"그렇군""당연한데"라고 1회적으로 인식한다.그러나 세뇌가 필요하다.반복적으로 그러나 조금씩 확장되면서뇌에 기록되어야 행동하기 전에한 번이라도 더 생각을 떠올릴 수 있다.웃을 일이 많아서 웃는 것은 쉽지만,웃을 일이 없는데 웃는 것은 어렵다.그러나"대표"라는 타이틀은그렇게라도 하지 않으면감당하기 힘든 자리다.사업을 즐겨야 할 수 있다고 말하는 대표들이진짜 즐거움만으로 버티는게 아니다.분명 사업은 즐거움도 있다.그러나 절실함도 있다.당연히 무서움도 있다.다양한 감정을 곧이곧대로표현할 수 없는 자리,아니,표현하면 안 되는 자리가대표라는 위치이다.웃는 가면 속에울기도하고,화내기도하고,겁에 질리기도하는그런 삐에로가 되어야 한다.제품 출시를 준비하며,투자자를 만나고 있는 와중에지금 우리가 어디쯤이라고 생각하냐는 질문을 들었다.질문의 의도는 알겠지만,간단하게 지나칠 수 없는 질문이었다.그래서, 나도 여러 스타트업 대표님들께물음을 던진다."너는 어디쯤에 있니?"주위를 둘러보면많은 창업자들과 스타트업들을 볼 수 있다.이미 안정적인 기반을 구축한 스타트업,해외에서 인정받아 이슈가 되는 스타트업,매출이 포텐터져서 유명해진 스타트업,거액의 투자를 받고 몸집을 키우고 있는 스타트업...나도 사람인지라부러움도 있고,한편으로 부끄러움도 있다.때로는 고객이나 거래처, 투자자에게상처를 입기도 한다.약점을 너무나 적나라하게 공개해서얼굴이 달아오르기도 한다.제품/서비스에 대한 단점을 조목조목 지적해서어디에 숨고 싶을 때도 있다.아직 준비되지 않은 것들을 추궁하듯 몰아치며평가절하하기도 한다.이럴때면,종종 나 자신에게 물어보게 된다."내가 너무 더딘걸까?""내가 많이 부족한걸까?""나는 잘 하고 있는 걸까?컨디션이 안 좋고,하루 일과가 잘 안 풀리며,엉망진창의 하루를 만날 때면,더더욱 자신감보다 자괴감이 더 클 때가 있다.그럴 때, 다른 동지들은 어떻게 이겨내는지 궁금하다.그냥 다 제끼고 잠이나 자기도 할 거고,단거 또는 매운거 배터지게 먹고 기운차리기도 하고,게임이나 오락에 집중하던가,운동으로 땀을 흘리던가,친구들과 정신이 나가도록 술을 마시던가...나의 경우는 만화를 본다.학창시절부터 만화광이었기에한 때는 만화감상문도 쓰고,만화방 알바생보다 더 만화책 위치를 잘 알 때가 있었다.솔직하게 말해서책을 읽고 얻은 지식이 나의 이성과 논리의 근간이라면,만화에서 얻은 지식은 나의 감성과 사상의 근원이다.다시 본론으로 돌아와서,슬럼프라고 말하기엔 너무 잦지만우리가 어디쯤 있는건지, 어떻게 해야할지막막할 때, 우리는 나름대로의탈출구를 찾는다.잠시나마 생각을 멈추든,다른 곳에 집중을 하든,새로운 에너지를 얻든간에이내 훌훌 털어버리고금방 회복되어야 한다.그래.반드시 회복되어야 하는 것이다.문제는 이것이 해결책은 아니라는 점이다.결국 또 같은 문제로 힘들어 질 것이며,내성이 생기듯 점차 탈출구는 닫힐 것이다.우리는 어떻게든 근본적인 해결책을 찾아야 한다.그러기 위해우리가 어디쯤에 있는지,어떤 곳에 있는지를 알아야 한다.우리가 가야할 목적지와우리가 가지 말아야 할 샛길을 알아야 한다.먼저 통과점을 지나간 선행자들에게서 배우고,한층 더 우리에게 적합한 방법과 과정을 찾아야 한다.1. 인정하기1) 모두가 다 다름을 인정하자.사람은 비교에 익숙하다.그러다보니자신보다 더 높은 곳에 있는 사람과 비교하고,자신보다 더 낮은 곳에 있는 사람과 비교하려 한다.비교만하고 있다가는우리가 어디있는지 더 미궁속으로 빠져들 수 있다.같은 대상을 보더라도,기준이 다르면 다르게 보이거든.누구에게는 헬조선이지만,누구에게는 자랑스런 대한민국이다.서로 주장을 하다보면,노르웨이가 어떻고, 룩셈부르크가 어떻고,수단이 어떻고, 북한이 어떻고...서로가 비교대상을 들이대면서옳고그름을 따진다.그러다보면,비교쟁이가 되어나 자신은 잊어버리게 된다.잘 되고 있는 경쟁사를 보고 좌절하면 안 된다.힘들어하는 경쟁사를 보고 안도하는 것은 더더욱 안된다.잘 되는 경쟁사를 보고 부러워해야 한다.다만, 그 부러움으로 끝나는게 아니라배워야하고, 연구해야 한다.왜 성장이 되는지, 왜 튼튼한지, 왜 고객들이 인정하는지원인과 요인들을 알아내서 우리의 것으로 만들어야 한다.어려움에 처한 스타트업을 보고 안타까워해야 한다.진심으로 위로하는 마음과 응원하는 마음을 가지자.그리고 배워야하고, 연구해야 한다.어떠한 이유로 어려움을 겪게 되었는지,위기에 어떻게 대처하고 있는지,무엇을 준비하고 있는지를 알아내서 우리의 것으로 만들어야 한다.우리는 비교하는 시각을 버리고,다양성과 특이성을 존중해야 한다.우리랑 똑같은 기업은 세상에 하나도 없다.아이템이나 아이디어는 유사하더라도,사람이 다르고, 환경이 다르고, 지나온 길이 다르다.축하해 줄 때, 부러움을 담아 축하해주자.위로해 줄 때, 응원을 담아 위로해주자.그리고 꼭 배우고, 연구해서 우리의 것을 만들자.같은 선상에 있어보여도,사실을 평행우주와 같이 다른 위치에서다른 시간을 살아가고 있다.2) 우리는 약자이다.약자가 강자에게 지는 것은 합리적인 현상이다.약자가 강자를 이기는 것이 기적같은 일이지.강자가 약자를 괴롭히는 것도 꼴불견이지만,약자가 강자인척하는 것도 참 꼴불견이다.약자가 강자를 이기는 법은약함을 알고 보완하는 것이다.아니면,그나마 가지고 있는 강점을 극대화해서특이적으로 강하게 되는 것이다.약자가 강자를 이기는 기적을꿈꾸기에 다들 지금도 치열하게 살고 있지 않은가.설움이 북받치고, 열불이 나는 것은은연중에 내가 약자가 아니라고 생각하기 때문이다.실패, 실수, 패배를 받아들일 마음의 준비가안 되어있기에 상대에게 분노하는 것이다.우리가 약하고,부족함이 많다는 것을 인정하는 순간고마움을 가질 수 있다.고객의 불만이 실속있는 피드백으로 변하고,거래처의 거절은 협상의 또 다른 기준으로 변하며,투자자의 평가는 고려해야할 조언이 된다.우리가 부족한 것을 채워야하고,약점을 보완해야 할 미약한 존재라는 것을 인정하면,우리에게 관심을 가져주는 모든 분들이고마운 분들이고 감사한 분들이다.나 자신이 볼 수 없던 문제점들을하나하나 알려주는 관심이야말로강하게 성장할 수 있는 기회이며빠르게 성장시켜주는 선생이다.우리가 약자라는 카테고리에 있다는 것을 인정하는 순간,더 겸손해지고, 더 절실해지고, 더 성장할 기회를 노릴 수 있다.허세부리거나, 우쭐할 시간따위 없다.약한 물고기를 더 치열하게 움직인다.사력을 다해 헤엄친다.우리 모두는 약자의 위치에서살아가고 있다.(동료들의 허락없이 몰래 올리는 사진: 그래서 양심 상 흑백처리 했어요. 때리지만 말아주세요)2. 믿기1) 어제보다 나아질 나를 믿어라.슬럼프라고 생각 될 때,뭔가 참 일은 많이 하는 것 같은데...이상하게 제자리에 있는 느낌!학생시절 영어단어 열심히 외우고,학원도 다니면서 공부하는데...이상하게 성적은 제자리인듯한 그런 느낌!세상살이에 깨달은 것은노력한 만큼에 비례해서성과/성공을 보장하지 않는다는 점!그러나노력한 것으로도 이전보다는 무언가 바뀐다는 점!그것이 내가 알든, 모르든 변화가 시작된다.아무도 모를지라도일단 어제보다는 한 걸음 더 나아갔다.이 사실을 잊지말자.2) 혼자가 아니라 함께라는 것을 믿어라.우리가 어떤 곳에 있는지우리와 함께 있는 사람들을 보면 알 수 있다.함께 있는 사람들이 즐거우면 우린 즐거운 곳에 있다.함께 있는 사람들이 괴로우면 우린 괴로운 곳에 있다.함께 있는 사람들이 높은 꿈을 향해 달리면,우린 높은 곳을 향해 달리고 있다.주위를 둘러보라.그러면, 내가 있는 곳이 어떤 곳인지 알 수 있다.3) 기도를 믿어라.신을 믿든, 안 믿든간에누구나 간절한 기도를 한다.단지, 운에 맡긴다는 마음이 아니라우리가 할 수 있는 모든 역량을 다 쏟은 후,누군가를 향해 간절히 빌고, 원하는 바를 고백한다.기도한다고 잘 풀리는 것은 아니지만,누군가에게 다 털어놓고,나 자신에게 솔직해 지는 시간을 가지면결과가 어떻든간에 마음이 후련해지더라.그래야 다음을 빠르게 준비할 수 있다.이 단계에 이르면,적어도 나 자신에게 부끄럽지 않은위치에 서 있는 것이다.3. 정리하기1) 기록하라.시간을 기록하고, 사건을 기록하면우리는 정량적으로 우리의 위치를 알 수 있다.계획했던 스케쥴 상 어디에 와 있는지,어느 부분을 건너뛰었고,어느 부분에 더 집중하였는지그래서 지금 어디까지 왔는지콕 집어서 알 수 있다.2) 전달하라.우리가 어디쯤인지 알게 되면,반드시 동료든, 조언자든, 고객이든간에알려야 한다.내가 생각했던 우리의 위치가노이즈와 간섭으로 왜곡되어 있을 수 있다.그래서 제3자에게 전달하고,검증 받아야 한다.은근 우리는 우리가 보고 싶은 것,우리가 듣고 싶은 것우리가 있고 싶은 곳으로짜맞추려는 경향이 강하다보니...객관적인 시각으로 확인이 필요하다.3) 행동하라.우리가 어디쯤인지 알았다면,그리고 그 다음 스텝을 진행해야 한다.망설이고, 안주하고 있으면우리는 딱 그 자리에서 멈춰있는 것이다.우리는 끊임없이 변화하고,성장해나가야 한다.방금 어디있었는지를 잊어버릴 정도로내달려야 안주하지 않는다.속도를 말하자는 것이 아니라,행동을 말하는 것이다.스타트업의 강점은아이디어보다 행동력이다.3년 전, 예비창업자였을 때법인 등기하고 사업자등록한 사람들이앞서가고 있고 난 뒤처진 느낌이었다.얼마나 바보같은 생각이었는지....그런 식의 비교로 나의 위치를 파악하려 했던나 자신을 떠올리면 지금도 얼굴이 달아오른다.게임이 즐거워서 레벨업하는 사람과레벨업하기 위해 게임을 하는 사람이게임을 어떤 것이라고 정의내릴까?같은 레벨이라고해서같은 시간과 같은 마음일 수 없다.한 사람은내일도 즐거운 마음으로 게임을 할 것이고,다른 한 사람은내일도 의무감으로 게임을 할 것이다.한 사람은이전보다 더 나아진 자신의 캐릭터에 기뻐할 것이고,다른 한 사람은남들과 비교해 더 올려야할 다음 레벨에 대해 부담을 느낄 것이다.우리가 어디쯤인지 아는 것은 매우 중요하다.거기서 끝나는 것이 아니라우리가 어떤 상태로, 어떤 목적과 과정을 통해성장하고 있는지 살펴보아야 한다.그리고 의미를 부여해야 한다.지금의 우리가 있는 곳에 대한 의미,앞으로 우리가 가야할 곳에 대한 의미.이제 다시 질문을 던져본다."너는 어디쯤에 있니? 그리고 너는 지금 어떻니?"#클린그린 #스타트업 #초기창업 #스타트업창업 #창업자 #고민 #인사이트 #조언
조회수 1604

3) 나는 애자일 하게 일하고 있을까?

글목록1) 우리는 왜 애자일 하지 못할까2) 우리는 애자일 하게 일하고 있을까?3) 나는 애자일 하게 일하고 있을까? (현재 글)지속적인 속도로 업로드를 못했네요 죄송합니다! 앞으론 지속 가능한 글쓰기를 실천할 수 있도록 할게요!이전 글에서는1. 어떤 가치를 기반으로 저는 일하고 있고,2. 이런 방식으로 일하면서도 제가 겪고 있는 수많은 난제들에 대해 설명드리려 했으나,  이번 글에서는 오늘도 분량 조절의 실패로 제가 일하고 있는 팀은 어떤 가치를 기반으로 일하는지 설명드리도록 하겠습니다.우리는 어떤 가치를 기반으로 일하고 있는가1. "나" 보단 "우리"가 맞고, "우리"보단 "유저"가 맞다 프로덕트의 가치를 확인할 때 나(또는 개인)의 기준보다는 프로덕트를 만들고 있는 모두의 의견이 더 중요하고, 그리고 이보다 더 중요한 건 이 프로덕트를 사용하는 유저가 프로덕트에 가지는 의미가 더 중요합니다. 이를 실천하기 위해 User Persona(유저 페르소나)를 구축하고, 해당 User Persona를 더 정확하게 구성하기 위해 많은 유저들과의 인터뷰를 진행하고,1. 유저가 가지고 있는 기본적인 사실들을 확인 (Facts)2. 유저가 어떻게 행동하고 있는지에 대한 행태를 조사하고 (Behaviors)3. 그리고 그 유저가 어떤 니즈와 목표를 가지고 있는지(Needs & Goals)를 확인하고, "유저들이 니즈와 목표를 수행할 수 있도록 프로덕트는 어떤 것들이 가장 필요할 것인가"에 집중하고 있습니다.유저들과의 인터뷰를 통해, 공통된 니즈와 목표, 행태, 그리고 팩트를 기반으로 Persona를 만듭니다 이렇게 작업을 하는 이유는 프로덕트를 만들며 나올 수 있는 다양한 "기능" 또는 "전략" 등 다양한 이해관계가 같이 일하는 많은 동료들(우리 식구들!) 간 "어떤 것을, 왜, 그리고 언제"에 대한 것을 결정하며 많은 갈등 상황을 초래할 수 있고, 이해되지 않는 부분들에 대해서도 명확하게 설명할 수 없는 상황들이 생길 수 있으나, "누군가의 의견"또는 "아직은 검증되지 않은 이야기"들을 기반으로 하는 게 아닌, "진짜 유저들이 원하는 무언가"를 전달할 수 있는 가치에 대해 모두가 하나의 시선으로 바라볼 수 있게 함으로써 모두가 프로덕트에 집중할 수 있기 때문입니다.2. 무엇이 유저 or 비즈니스 상 필요한가 / 빠르게 빌드하고 테스트할 수 있는가를 기반으로 순서를 만들고 개발한다. 아무리 Persona를 기반으로 작업한다고 하더라도, 많은 Task들이 눈앞에 닥칠 경우, 개발팀은 당연히 많은 작업량 때문에 시작도 하기 전 겁을 먹을 수 있고, 무엇을 어떻게 시작해야 할 지에 당황하고 걱정하기 마련입니다. 그리고 이런 상황에서 리소스(Resource)는 지극히 한정되어 있기 때문에 항상 우선순위를 두고 작업을 진행하는 것은 상당히 중요합니다. 그리고 제가 일하는 팀은 이를 해결하기 위해 몇 가지 기준을 가지고,1. 무엇이 유저에게 또는 비즈니스 상에서 가장 큰 가치를 주는가2. 무엇이 가장 빠르게 개발할 수 있는가 또는 테스트할 수 있는가를 기준으로 우선순위를 지속적으로 산정하고 일하고 있습니다.우선순위는 지속적으로 변경되고 발전합니다. 그리고 우선순위에 대한 기준은 언제나 유저 입니다! 이런 우선순위의 설정과 지속적인 확인은 우리가 개발을 해야 하는 이유에 대해 명확한 이유를 만들고, 수행과정에서 일을 하고 있는 모두가 같은 같은 곳을 바라볼 수 있어 굉장히 중요합니다. 그리고 지속적인 우선순위에 대한 산정을 통해 더 빠르게 개발하고, 검증하고, 성장하고, 실패를 통해 배울 수 있습니다. 우선순위에 대한 산정에 있어 많은 의견도 나오고 조율에 시간이 필요하지만, 유저를 기반으로, 그리고 우리가 가진 산업에 대한 지식을 기반으로 일하기 때문에 생각보다 빠르게 의사결정을 할 수 있기 때문에 효율적으로 일하고 있습니다.3. 프로덕트 팀에서도 "유저에게 가치가 있다"라는 부분이 이해될 때 작업한다. 아무리 좋은 "기능", "방향"이래도1. 개발이 비즈니스 사이드 또는 디자인 사이드에서 의도한 대로 개발되지 않고2. 유저 또는 비즈니가 원하는 목표와 니즈를 만족시키지 못하는 기능이 만들어진다면결국, "사용할 수 없는 프로덕트"를 양산할 수밖에 없습니다. 그리고 이런 리스크를 최소화하기 위해,- 개발자 / PM과 함께 유저 시나리오를 기반으로 한 디자인 스튜디오 진행- 개발 이터레이션 이전 Pre-IPM/ IPM 진행을 통해 개발/ PM/ 디자인 간의 투명성을 높이고, 모두가 "유저에게 필요한 건 무엇이고, 어떤 이유 때문에 지금 해당 개발을 진행할 예정이다."라는 것을 알고 일할 수 있도록 최선을 다하고 있습니다. 이해가 되지 않는 프로덕트에 대해 PM이 방향성을 설명할 수 없고, 근거에 대해 정확하게 포인트 아웃(Pointing out)할 수 없으면 개발을 요청하기보단, 검증이 부족한 부분을 더 채우고 진행하려고 노력합니다.(* 디자인 스튜디오: 목표와 유저 시나리오를 기반으로 개발/ PM/ 디자인 사이드에서 생각하는 과정 예외에 대한 부분들을 자유롭게 그려보고 아이디어를 공유하는 워크샵)(* Pre-IPM, IPM: Iteration Planning Meeting의 줄임말로, 개발 전 1. 무엇을 개발할지, 2. 유저에게 가치가 있는지, 3. 작업량의 분기는 적당한지, 3. 기술적 결함이나 선행되어야 할 부분들이 있는지 확인하는 미팅) "어떤 기능이 필요하다"라는 단순한 판단으로 기능 개발을 요구, 혹은 강요하는 건 기능 개발에 대한 이해를 해치고, 실제 작업하는 작업자들의 판단 기준을 흐리게 하고, 능률을 저하시키는 등 많은 최악의 경우들을 지속적으로 만듭니다. 함께 하는 모든 분들이- 해당 기능이 왜 필요한지- 유저는 어떤 가치를 얻을 수 있는지- 해당 기능을 위해서 내가 할 일은 무엇인지에 대해 정확하게 알고 있다면, 서로가 놓치는 부분들에 대해서 공유할 수 있고 이해할 수 있는 부분들이 생기고 이렇게 지속적으로 신뢰가 생기기면 우리는 이제 진짜로 "100미터 달리기"로 프로덕트를 만드는 것이 아닌 "진짜 마라톤"을 모두가 같이 달릴 수 있다고 생각합니다.오늘도 분량 조절에 실패했습니다... 글쓰기는 굉장히 어려운 것이군요(또르르...)다음장에서는- 이렇게 좋은 말만 가득함에도 불구하고, 겪고 있는 문제점과 이를 해결하기 위해 노력하는 부분을 이야기하도록 하겠습니다. 이후에도 애자일한 개발과 검증 그리고 피봇을 하기 위해 하고 있는 다양한 방법들과 애자일 하게 나갈 수 있는 방법에 대해(XP 그리고 Lean Roadmap, Interview 등등등) 소개하는 글도 차례차례 올릴 예정이니 기대해 주세요! 감사합니다!#코인원 #블록체인 #기술기업 #암호화폐 #스타트업인사이트
조회수 1388

Semantic Versioning 소개

Semantic Versioning 소개Versioning?소프트웨어 개발 생태계는 수많은 사람들이 서로의 기술과 성과를 이어받아 오며 믿을 수 없는 수준의 협력 체제를 구축해오고 있습니다. 의존성은 이러한 협력체제에서 나오게 된 요소로, 다른 사람들이 만들어온 기능을 다시 만들 필요 없이 손쉽게 가져와서 재활용하는 방식으로 빠르게 소프트웨어를 만들 수 있게 되었습니다.하지만 이렇게 여러 사람에게 이용되는 패키지가 새롭게 업데이트될 때, 생각보다 다양한 문제에 직면하게 되었습니다. 기능의 사용법을 바꾸어버리거나 동작 방식의 변경 같은 변화들은 그에 의존하는 다른 소프트웨어를 의도대로 동작하지 못하게 하므로, 새로운 변화와 기존의 것을 구분할 필요가 생겼습니다. 버전이라는 개념은 이러한 패키지의 변화를 구분하기 위해 사용하기 시작하였습니다.Semantic Versioning?버전이라는 코드 형태의 구분방식은 많은 핵심 문제를 해결해주었지만, 아직 여러 과제가 남아있었습니다. 버전 명의 작성 방식에 관한 기준이 패키지마다 제각각 다른 것이 문제였습니다. 0.x와 1.x의 차이, 1.0.0 혹은 1.000. 선행 배포와 정식 버전의 구분 방법 등 모든 소프트웨어, 패키지는 저마다의 기준을 가지고 있었으며, 이는 어느 정도의 적당한 공통점이 있었지만, 그 점이 미묘하게 모두 차이가 있어 버전에 따른 의미 해석을 어렵게 하였습니다.Semantic Versioning은 Github의 공동창업자인 Tom Preston-Werner가 위의 문제를 해결하기 위해 기존의 현안을 모아 만든 제안입니다. 스펙 문서는 RFC 2119에 의해 규칙을 표기하여 의미적 엄격함을 높이고, 패키지 개발 생명주기에 발생할 수 있는 여러 상황을 포괄적으로 담아 일관성과 유연성을 균형 있게 갖추고 있습니다.규칙다음은 Semantic Versioning(v2.0.0-rc1)의 스펙을 한국어로 번역한 내용입니다.1. Semantic Versioning을 쓰는 소프트웨어는 반드시 공개 API를 정의해야 한다. 이 API는 코드 자체에 정의되어 있거나 명시적으로 문서화 되어있어야 한다. 이 과정은 포괄적이며 정확해야 한다.2. 일반 버전 명은 반드시 X.Y.Z 형태를 보여야 하며 X, Y, Z는 음이 아닌 정수이다. X는 주요한 버전이며, Y는 작은 버전, Z는 패치버전이다. 각 요소는 1씩 차례로 증가해야 한다. 예: 1.9.0 -> 1.10.0 -> 1.11.0.3. 주요 버전 숫자가 올라갈 때, 작은 버전 숫자와 패치 버전 숫자는 0으로 재설정되어야 한다. 작은 버전 숫자가 올라갈 때, 패치 버전 숫자는 0으로 재설정되어야 한다. 예: 1.1.3 -> 2.0.0, 2.1.7 -> 2.2.04. 버전 명이 주어진 패키지가 한번 공개되면, 해당 버전의 내용은 절대 수정되어선 안된다. 어떤 수정도 반드시 새로운 버전으로 공개되어야 한다.5. 주요 버전 0 (0.y.z)은 초기 개발을 위한 것이다. 언제든 변경될 수 있다. 공개 API는 안전하지 않다고 여긴다.6. 버전 1.0.0은 공개 API를 정의한다. 이 공개 이후의 버전 숫자가 바뀌는 방법은 공개 API와 변경 방법에 따라 결정된다.7. 패치 버전 Z (x.y.Zx > 0)는 하위호환을 하지만 버그 수정이 있을 때 올라간다. 버그 수정은 내부적으로 잘못 처리되고 있는 것을 고치는 것을 의미한다.8. 작은 버전 Y (x.Y.zx > 0)는 새로운 기능이 추가되었지만 기존의 공개 API가 하위호환되고 있을 때 올라간다. 공개 API가 하나 이상 deprecated될 시에도 올라가야 한다. 부가적인 새 기능이나 개선이 내부 코드 (private code)에 있을 시에도 올릴 수 있다. 이는 패치 수준의 변화를 포함할 수 있으나, 작은 버전이 올라가면 패치 버전은 꼭 0이 되어야 한다.9. 주요 버전 X (X.y.zX > 0)는 하위호환되지 않는 변화가 추가될 때 반드시 올라가야 한다. 이는 패치 수준과 작은 수준의 변화를 포함할 수 있으나, 주요 버전이 올라가면 작은 버전과 패치 버전은 꼭 0이 되어야 한다.10. 선행 배포 버전은 대시(-)와 점으로 나누어진 식별자들의 묶음을 패치 버전 뒤에 표시한다. 식별자들은 ASCII 영숫자와 대시로만 구성되어야 한다. [0-9A-Za-z-]. 선행 배포 버전은 연관된 일반 버전보다 낮은 우선순위를 가진다.11. 개발 버전은 더하기(+)와 점으로 나누어진 식별자들의 묶음을 패치 버전 뒤에 표시한다. 식별자들은 ASCII 영숫자와 대시로만 구성되어야 한다. [0-9A-Za-z-]. 빌드 버전은 연관된 일반 버전보다 높은 우선순위를 가진다.12. 우선순위는 주요, 작은, 패치, 선행 배포, 빌드 식별자 내 숫자 순으로 계산되어야 한다. 주요, 작은, 패치 버전은 항상 숫자로 비교되어야 한다. 선행 배포와 빌드 버전의 우선순위는 반드시 각 점으로 나누어진 식별자들이 아래 규칙에 따라 비교되어야 한다: 1. 숫자로만 이루어진 식별자는 숫자로 비교 (2) 문자와 대시가 포함된 식별자는 ASCII 정렬 순서대로 비교. 숫자 식별자는 숫자가 아닌 식별자보다 낮은 우선순위를 가진다. 예: 1.0.0-alpha < 1>응용여러 오픈소스 프로젝트들이 이미 Semantic Versioning에 따라 버전 명을 표기하기 시작하였으며, 해당 규칙에 기반을 둔 버전 비교 라이브러리도 만들어지고 있습니다.•node.js: https://github.com/isaacs/node-semver•PHP: https://github.com/GordonSchmidt/SemVer•Python: https://github.com/k-bx/python-semver•Ruby: https://github.com/iantruslove/SemverStringerseaport는 node.js 에서 서비스 클러스터들이 Semantic Versioning에 따라 버전 의존성을 가지게 설계할 수 있어 보다 안정적인 버전 협상이 가능하도록 하고 있습니다.server.js:var seaport = require('seaport');var ports = seaport.connect('localhost', 9090);var http = require('http');var server = http.createServer(function (req, res) {res.end('beep boop\r\n');});server.listen(ports.register('[email protected]'));client.js:var seaport = require('seaport');var ports = seaport.connect(9090);var request = require('request');ports.get('[email protected]', function (ps) {var u = 'http://' + ps[0].host + ':' + ps[0].port;request(u).pipe(process.stdout);});output:$ node server.js &[1] 6012$ node client.jsbeep boop마치며비록 작은 통일일지는 모르나, 버전 명을 작성하는 훌륭한 기준이 있다는 것은 장기적으로 개발 생태계를 더욱 빠르고 긴밀하게 협력하도록 도와줄 것이라 생각됩니다. 의미적 해석이 가능한 코드는 의존성 문제를 더 똑똑한 수준으로 자동화할 수 있기 때문이죠. 버전 명을 지으실 때 좋은 안내서가 되었으면 좋겠습니다.#스포카 #개발 #개발자 #개발팀 #꿀팁 #인사이트
조회수 671

훌륭한 브랜드의 원칙 - S.T.A.R.

러브마크 (lovemark)모두가 사랑받고 싶어한다.사람도 기업도 사랑받고 싶어한다.사랑이 목적일 수도 있고, 수단이 될 수도 있지만선택받고 싶어하는 것은지극히 자연스런 욕망이다.브랜드도 마찬가지다.사랑받는 러브마크가 되고 싶지 않은 브랜드는 없을 것이다.어떻게 사랑받을 수 있을까?브랜드가 사랑을 받고 있다면,그건 우연일까? 기묘한 타이밍 때문일까?아니면 진정 정밀하게 기획된 계획이 맞아떨어진 것일까?사랑받을 수 있는 조건들을 찾기 위해서목마른 기업들은 소비자의 취향을 조사하고트랜드를 조사하는데 막대한 비용과 노력을 투자한다.문제는 그럴수록 불안함이 늘어간다는 것이다.소비자가 진정 좋아할까?하나의 상품이 시장에서 성공하는데에는그 시점, 그 타겟, 그 상황에 최적화된 소비자의 흐름에민감할 필요가 있다.하지만,브랜드는 다르다.그때 그때 무언가를 쫓아가서는 안된다.쫓아갈 수도 없다. 130년이 넘는 헤리티지를 가진 벤츠,107년이 되어가는 샤넬,53년의 역사를 지켜온 나이키,40년간 팬들의 사랑을 받아온 애플...브랜드는 잠깐 주목받는 것으로는 생존할 수 없다.지속가능해야 하고, 그러기 위해서는 일관된 가치를전달해야만 한다.쫓아오게 만들어야 한다쫓아가서는 안되고, 쫓아오게 해야 한다.브랜드가 지향하는 가치를고객들이 따라오게 해야 한다.그것이 명품 브랜드들의 공통점이다.자,여기서부터가 이 글의 본론이다.고객이 쫓아올 만한 가치가 갖춰졌다면,이것을 어떻게 커뮤니케이션 할 것인지가 매우 중요하다.상품이나 서비스 자체를 포함해서미디어나 마케팅 활동 및 기업 전반의 활동이 여기에 해당한다.브랜드의 가치가 표현되는 방식에 따라서소리없이 사라지는 브랜드가 되기도 하고,100년을 지속하는 브랜드로 사랑받기도 한다.1. 첫 번째 원칙 : SimpleSimple (단순)Simplicity is the ultimate form of Sophistication- Leonardo da Vinci -레오나르도 다빈치는 단순함 (Simplicity)이야말로 정교함의 극치라고 표현했다.코코 샤넬은 진정한 우아함의 정수로써 단순함 (Simplicity)을 통해근대 여성의 의상을 혁신해왔다.이 단순함은 눈에 보여지는 것 뿐만 아니라,보여지지 않는 가치의 명료함까지를 포함하는 것이다.소비자에게 전달하려는 메시지가 단순해야 하며,이해하기 쉬워야 한다는 의미도 녹아있다.그럴 듯한 수식어구 따위로는 트랜드에 편승할 수야 있겠지만,소비자의 인식에 각인할 수는 없다.덜어내고 덜어내고 또 덜어내야 한다.마지막에 남는 가치 그것 하나로커뮤니케이션 해야 한다.2. 두 번째 원칙 : ThoughtfulThoughtful (배려)명품에 감동하는 것은그 상품을 사는 순간이 아니라,그것을 사용하는 과정에서 나타난다.드러내며 강조하지 않지만,예상치 못한 곳에서의 세심함과 꼼꼼함.그것에 감동하는 것이다.마치 무심한 듯하지만 세심하고 자상함을 보여주는츤데레 남친처럼 늘 고객의 benefit과 행복을우선시하는 배려가 담겨있어야 한다.4가지 키워드 중에서 아마도가장 기본이 되는 원칙일 것이다.3. 세 번째 원칙 : AuthenticAuthentic (진정성)대부분의 브랜드가 이 단어에서 갈린다.해석의 여지가 많은 키워드이기도 하지만,진짜 가치를 추구하는 브랜드 기업인지,가치를 그럴 듯하게 포장하는 '가짜 가치' 기업인지를구분해주는 핵심적인 원칙이다.컴퓨터를 만들어 파는 기업은 많지만,컴퓨팅(computing)을 인간의 삶의 차원에서 고민하고개발하는 업체는 극소수이다.식품을 판매하는 브랜드는 수도 없이 많지만,돈벌이가 아니라, 고객의 건강과 좋은 먹거리를 진심으로고민하는 업체는 일부일 것이다.돈을 버는 것이 지상 최대의 가치인 기업이그럴 듯한 광고로 아무리 소비자의 마음을 사로잡으려해도그 속내는 어느 순간 드러날 수밖에 없다.시민의 알 권리를 최고의 가치로 내세우는 언론기업은 많지만,사실에 기반한 정보를 공정하고 투명하게 다루는 기업은많지 않다는 것도 좋은 사례이다.솔직함, 투명함, 진정성이야 말로50년, 100년을 지속시킬 수 있는 롱~런 브랜드의핵심 가치라고 생각한다.거짓은 드러난다.가짜 브랜드이다.4. 네 번째 원칙 : RemarkableRemarkable (탁월)구별되지 않는 브랜드는 의미가 없다.아무리 좋은 가치라도주목시키지 못한다면 가치를 전달할 수조차 없다.그런 측면에서 눈에 띌 만한 비범함은 고객과 커뮤니케이션하기 위해필수적인 요소라고 할 수 있다.수 천가지의 브랜드가 서로 자신을 드러내기 위해 경쟁한다.'최초', '최고', '1등', '최대', '유일', '특종', '단독'...등등비범함을 알리기 위한 샤우팅이 매일 범람하는 사회이다.동일한 잣대로 비범함을 겨루기는 매우 어렵다.모두가 최선을 다하기 때문이다.그 영역에서 탁월하지 않다면,전혀 다른 영역에서 싸워야 하고, 독보적이 되어야 한다.Think Different'다르게 생각하라' 라는 스티브 잡스의 구호는그래서 큰 의미가 있다.아예 기존의 틀을 바꿔 버리고,전혀 새로운 관점을 제시함으로써 주목을 이끈다.테슬라의 엘론 머스크처럼남들은 상상 속으로 구상하고 있는 것들을테슬라 브랜드로 멋지게 전기차를 양산해내고,우주산업을 현실의 레벨로 한 단계 앞서구현해내는Pioneer 정신이야 말로 탁월함과 비범함의 정수일 것이다.S : SimpleT : ThoughtfulA : AuthenticR : Remarkable이 4가지 원칙은거대한 기업이 대단한 브랜드를 만들 때 필요한 조건이 아니다.S/T/A/R 원칙은 우리 모두가 어느 영역에서건메시지를 전달하고 소통하는데 염두에 두어야 할 핵심 원칙이다.디자이너가 창의적인 아이디어를 발휘할 때도 마찬가지이며,언론인이 사실을 근거로 자신의 주장의 제시할 때도 마찬가지이며,대선 주자가 자신의 공약을 내세울 때도 마찬가지이다.기억해두자.S. T. A. R.
조회수 50

바로고 두뇌학습 및 팀워크 활동, 건담처럼 날아봅시다!

바로고두뇌학습 및 팀워크 활동업무만 하기에는 머리가 아파요~그럴 때 잠시 쉬어가는 타임바로고의 두뇌학습 지원으로'건담' 조립을 합니다.지난 포스팅에서건담 조립 소식을 전해 드린 적이 있지요.바로고의지난 두뇌학습 활동 건담 조립 현장http://blog.naver.com/barogo_info/220840167264이번 활동 시간 전생일을 맞이한 남지열 대리님을 위한깜짝파티가 있었답니다.<신비한 동물 사전>의 보우트러클을 꼭 닮은남지열 대리님의 생일을 축하합니다!마음을 가득 담아직접 초코 펜으로 그림까지 그려주었답니다.영화를 보며 꼭- 닮은 대리님의 모습에 깜놀했는데다른 직원들까지 모두 그런 생각을 했다고 하네요.보우트러클로 임명합니다.땅땅!건담처럼 날아봅시다!지금부터는 건담 조립 시작합니다.우리가 조립할 건담은RG 17 : 윙 건담 제로Ew , WING GUNDAM ZERO EW 1/144 초집중하여 건담을 조립하기 시작합니다.잠시 모든 걸 잊고오로지 건담에만 집중하는 시간!바로고만의두뇌학습 지원 방법이랍니다~^^생일 케이크를 앞에 두고도모두들 건담에만 집중하고 있어요.한 번 시작하면멈출 수 없는 건담 조립바로고만의 팀 활동 시간을 통해팀워크가 더욱 좋아지는 것 같아요.업무 외 오고 가는 소소한 대화 속에퐁퐁 샘솟는 팀워크!즐거운 대화에 웃음이 멈추지 않는 시간어떤 대화를 했기에 이리도 활짝- 웃으신 건지궁금하네요~ ^^대화 중에도 손끝에는 건담 조립눈알(?)이 튀어나올 정도로집중하고 계신 과장님차장님 역시 빠른 속도로이번 건담의 포인트, 날개를 만들어 갑니다.생일 케이크도 조금씩 먹으며이제 건담 조립을 완성합니다.시간이 훌쩍~ 지난 간 것도 모르고건담과 함께 한 시간바로고에만 있는 두뇌 학습 지원 타임 입니다.짠! 드디어 완성입니다.하늘을 나는 건담바로고도 힘차게 날아가는 2017년이 되길~바로고만의 바른 문화바로고는 임직원을 위한다양한 혜택을 제공 합니다대표님부터 막대직원까지하나하나 챙기며 함께 하는 바로고바로고에만 있는바른 문화 입니다.
조회수 929

페이스북 광고 효과를 향상시킬 디자인 Tip

페이스북 광고로 성공하거나 실패할 수 있는 방법은 약 백만 가지가 있지만 아래의 Tip을 알고 디자인을 한다면 광고를 성공으로 이끄는 데 도움이 될 것입니다.광고는 타겟팅이 생각만큼 단순하지 않기 때문에 종종 실패할 수 있습니다.이 글에서 소개되는 Tip을 가지고 소비자와 페이스북 모두 좋아할 수 있는 광고를 만들어보세요!페이스북 광고디자인 Tip #1  : 다채로운 광고 이미지를 만들어라 페이스북 뉴스피드를 생각해 봤을 때 따분한 광고들로 가득 차있을 것입니다. 그럴 때 사람들의 시선으로 사로잡을 수 있는 다채로운 광고를 만들어보세요!사람들을 사로잡는 광고는 어렵고 화려한 포토샵 스킬이 들어간 광고가 아닙니다.조사에 따르면 대부분의 사람들은 사람이나 상품의 첫인상을 90초 이내에 평가한다고 합니다. 그중 약 62-90%는 색깔에 영향을 받습니다.만약 어떤 컬러를 사용해야 할지 모를 때엔   브랜드 컬러 유지하기  색깔에 따라 줄 수 있는 심리적인 느낌에 맞게 선택하기  3-5가지 다른 컬러를 A/B 테스트하기 The New York Times는 새로운 페이스북 광고 색상을 다채롭게 사용하여 지속적으로 테스트하고 있습니다. 페이스북 광고디자인 Tip #2  : 대조되는 색상을 사용해라UsabilityTools의 조사에 따르면 대조적인 색상을 사용한 랜딩페이지는 그 전 광고에 비해 클릭률이 75% 증가했다고 합니다. 대조가 강할수록 광고에 더 많은 집중을 가져올 수 있습니다. 나이키의 광고를 예로 들어 보겠습니다. 나이키의 대조적인 광고는 시선을 바로 끌게 합니다.Udemy의 다른 예가 있습니다. (주황색과 흰색 광고 요소의 대비에 주목하세요.)때로는 광고 요소 사이의 대조뿐만 아니라, 전체 뉴스피드와 대조되는 페이스북 광고도 사람들의 시선을 주목시킬 수 있습니다.페이스북 광고디자인 Tip #3  : 긍정적인 이미지를 심어줘라이미지는 이야기를 말하며, 인공지능 개척자 Ray Kurzweil에 따르면 우리의 뇌는 유용한 조언을 찾는 패턴으로 채워져 있습니다. 그렇다면, 페이스북의 광고 디자인이 이야기를 하도록 만들 수 있다면 어떨까요?SumoMe의 광고를 예로 들겠습니다.이 그래프는 꾸준히, 빠르게 성장하고 있는 SumoMe의 성장 곡선입니다.그래프를 보고 부럽다는 생각이 드셨나요?심리학자들은 오늘날 사람들이 브랜드를 결정하게 만드는 것은 정보보다는 감정에 의지한다고 설명합니다. 그렇기 때문에 회사에 긍정적인 부분을 브랜드에 연결하는 것이 중요합니다. (예: 회사의 빠른 성장)뉴스피드에서 이 광고를 본 후, 사람들은 SumoMe를 꾸준히 성장하는 브랜드라고 연상할 것이며, 클릭을 하게 되고 클릭수가 많아질 것입니다.페이스북 광고디자인 Tip #4  : 기억할만한 기호를 사용해라잠재 고객이 긍정적인 감정으로 광고를 기억할 수 있도록 디자인에 '긍정적인 기호'를 포함해야 합니다. '긍정적인 기호'는 다음을 포함할 수 있습니다.체크 표시스마일 이모티콘축하 이모티콘별 표시그 예시로 Asana의 페이스북 광고를 볼 수 있습니다. Asana의 광고디자인에는 확인 표시 아이콘과 함께 성장 곡선을 표시합니다.이러한 기호는 무엇을 느끼게 할까요?이 광고를 보는 사람들은 시간 안에 일을 마친 것 같은 느낌을 느끼게 될 것입니다. 그러한 느낌은 보는 사람들로 하여금 긍정적인 인식을 가져다줄 것이며, 그러한 긍정적인 인식은 광고효과로 이어질 것입니다.페이스북 광고디자인 Tip #5 : 핵심 키워드를 잘 보이게 배치해라 만약 광고를 사람들에게 알리는 것이 첫 번째 목적이라면 이미지 안에 바로 핵심 메시지를 배치하는 것이 좋습니다. 또한 광고 이미지 텍스트가 짧고 간결한지 확인해보세요.Upwork는 핵심 메시지인  “Find Your Perfect Freelancer”를 사람들의 시선에 바로 들어올 수 있는 위치에 배치하여 그들의 핵심 메시지를 바로 눈에 들어올 수 있게 디자인하였습니다.-이제 동일한 광고 디자인을 반복해서 보면서 타깃 고객에 대해 걱정할 필요가 없습니다. 이 글을 통해 페이스북 광고효과가 향상되길 바랍니다:)            퍼포먼스 마케팅 에이전시, 오피노 바로가기
조회수 2666

한국의 DTC 유전자 검사 시장 규모 예측

6월 30일 부로 매우매우 제한적이지만, 한국에서 DTC 유전자 검사가 허용이 된다. 현재 국내 주요 유전체 관련 회사들에서 열심히 제품 개발을 하고 있고, 언론을 통해 보도된 DTC 유전자 검사 시장에 대한 기대감에 관련 회사들의 주식도 덩달아 오르는 등 기대가 만발인 상황이다.헌데, 과연 기대할 만큼 DTC 유전자 검사 시장 규모가 크게 성장할 수 있을까?  이미 DTC 유전자 검사를 시작한 타국의 사례를 통해 국내 DTC 유전자 검사 시장 규모가 과연 어느 정도로 성장할 수 있을지 예측해 본다. 미국과 일본 DTC 유전자 검사를 최초로 개발해 사업화 한 23andMe 는 이미 이 블로그를 통해 여러번 소개 했듯, 만 9년이 다 되어 가는 이 시점 까지 120만명 이상의 제품이 판매가 되었다. ( 초기 10만명을 채우는데는 4년이 소요. 23andme 성장 그래프 ) 소스를 공개할 순 없지만, 최근 입수한 정보에 따르면 Yahoo japan의 DTC 유전자 검사가 한해 1만건~3만건 사이로 판매가 되어 있는 것으로 파악 된다. 미국은 한국 인구의 6배, 일본은 남한 인구의 2배로 가정하고, 미국과 일본의 대표적 DTC 유전자 검사 회사의 사례로 한국 DTC 유전자 검사 시장의 성장률을 계산해 보겠다.한국 DTC 유전자 검사 제품 판매 속도 예측23andme는 한해 최소 2만5천명에서 최고 20만명 분의 DTC 유전자 검사를 판매해 왔다. 한국이 미국 인구의 1/6 이므로, 인구 비례로 그대로 가늠해 보면, 한국에선 한해 4천여명~3만3천여명 사이로 계산 된다.일본 야후는 한해 1만~3만건으로 가늠한다.  한국이 일본 인구의 1/2 , 인구 비례로 한국에선 이 수치의 절반이 판매된다고 보면, 한국에선 한 해 5천~1만5천건 사이로 DTC 유전자 판매를 예상해 볼 수 있다.미국과 일본의 대표 DTC 유전자 검사 두곳의 판매 숫자를 인구 비례로 그대로 가늠해 본 숫자가 상당히 유사한 range 안에 들어옴을 알 수 있다. 두 경우를 합집합으로 나타내 보면, 최하 4천에서 최고 3만3천건. 이 range 의 최소 규모에서 최고 규모로 한국의 DTC 유전자 검사 시장이 성장해 나가지 않을까 예측해 본다. 한국 DTC 유전자 검사 시장 규모 예측제품 판매 숫자를 바탕으로 한국의 DTC 유전자 검사 시장 규모를 가늠해 보자. 국내에 허용된 DTC 유전자 검사 항목은 겨우 12가지, 40여 개의 유전자. 이 항목을 가지고 각 회사들은 다양한 형태의 제품으로 꾸려낼 것 같다. 허용된 유전자 검사 항목의 특성상, real time PCR 기반 Genotyping 으로 유전자 검사가 수행되어 sequencing cost 자체는 그리 크지 않을 것이라 예상 한다. 그러면 종합적으로 가격은 최하 5만원에서 최고 15만원 정도로 제품들이 꾸려질 것 같다. 자, 그럼 한해 예상 판매 제품 숫자와 제품 당 가격을 곱해 전체 시장 규모를 계산해 보자. 제품 가격 5만원인 경우 :  5만원 x 4천개~3만3천개 제품 = 2억~16억 5천만원제품 가격  15만원인 경우: 15만원 x 4천개~3만3천개 제품 = 6억~49억5천만원 종합하면, 한국 DTC 유전자 검사 시장은 한 해 2억~49억5천만원 사이의 매우 협소한 시장을 형성할 것으로 예상해 볼 수 있다. 한국 DTC 유전자 검사 제품을 준비하는 회사들에 대한 제언 큰 기대를 하지 않는 것이 좋다고 말씀 드리고 싶다. 특히 한국의 DTC 제품은 미국의 23andMe 나 일본의 야후 제품에 비해 제품이 제공하는 유전자 검사 항목의 숫자도 절대적으로 부족하고, 특히나 '질병'과 관련된 유전자 검사는 단 하나도 포함이 되지 않았기 때문에, 제품 자체의 quality 나 흥미도도 이들 제품들에 비해 현저히 떨어진다.Quality가 낮은 제품이 미국, 일본 등의 선진국 시장보다 더 많은 제품이 판매가 되길 기대하기는 어렵다. 한국 시장의 특성이 있을 수는 있겠지만, 그럴 가능성을 기대하기 보단 차라리 우량 주식에 투자하고 수익을 기대하는 편이 훨씬 확률이 높지 않을까?시장 규모가 이 정도로 예측이 된다면, 큰 기대에 기대어 자원과 인력을 크게 투자하지 말고, 시장에 제품을 출시하고 초기 성장 속도에 맞추어 이 후 자원의 투입을 결정해도 충분할 것이라 본다.#3billion #운영 #인사이트 #스타트업 #마인드셋
조회수 2265

Angular Lazy Loading 모듈 사용하기

Angular는 비동기식 라우팅이 가능합니다. 나중에 사용할 기능들을 NgModule로 분리하여 사용자의 요청이 들어왔을 때 모듈을 불러와 기능을 사용할 수 있고, 이러한 기술을 지연 로딩이라 합니다.프로젝트가 진행되고 기능이 추가될수록 어플리케이션 번들 크기가 커지고, 결국엔 초기 로딩 시간도 길어지게 됩니다. 지연 로딩을 사용하면 초기 로딩 시간을 줄일 수 있습니다. 컴파일 단계에서 나중에 사용할 모듈들을 메인 모듈에서 분리하여 번들을 생성합니다. 그리고 사용자가 기능을 요청할 때 비동기로 스크립트를 불러와 실행합니다. 지연 로딩에 대한 소개와 사용법은 Angular 공식 문서의 Routing & Navigation — Milestom 6: Asynchronous routing 을 참고하시길 바랍니다하지만 지연 로딩을 사용할 때 유의해야할 점이 몇 가지 있습니다.지연 로딩 모듈과 인젝터(Injector)지연 로딩이 완료되었을 때 Angular는 지연 로딩된 모듈을 루트 인젝터(Root Injector)의 자식이 되는 자식 인젝터를 이용하여 초기화하고, 서비스들을 자식 인젝터에 추가합니다. 즉, 인젝터가 분리되기에 지연 로딩된 모듈의 클래스들은 자식 인젝터로의 서비스 주입이 가능하지만 루트 인젝터로 만들어진 클래스들은 불가능합니다.이는 Angular의 독특한 의존성 주입 시스템 때문입니다. Angular의 인젝터는 처음 애플리케이션이 시작되었을 때, 컴포넌트나 다른 서비스에 주입되기 전에 포함된 모든 모듈들의 서비스 제공자들을 블러와 루트 인젝터를 생성합니다. 애플리케이션이 시작되고 나면 인젝터는 서비스들을 생성하고 주입을 시작하고, 새로운 서비스들을 제공자로 추가가 불가능합니다.그러므로 지연 로딩된 서비스들은 이미 생성이 완료된 루트 인젝터로 추가가 불가능합니다. 따라서 Angular는 지연 로딩된 모듈에 대해서 새로운 자식 인젝터를 만들는 전략을 취하게 된 것입니다.자식 인젝터가 새로 만들어지기 때문에 공통된 모듈을 사용할 때 주의하여야 합니다. 예를 들어 다음과 같이 SharedModule 에 CounterService 를 서비스로 추가하고 루트 모듈인 AppModule 과 지연 로딩 모듈인 LazyModule 에 각각 SharedModule 을 import 하였습니다.import { BrowserModule } from '@angular/platform-browser'; import { NgModule } from '@angular/core'; import { RouterModule } from '@angular/router'; import { SharedModule } from './shared/shared.module'; import { AppShellComponent } from './app-shell.component'; const APP_ROUTES = [ { path: 'lazy', loadChildren: 'app/lazy/lazy.module#LazyModule' } ]; @NgModule({ imports: [ BrowserModule, SharedModule, RouterModule.forRoot(APP_ROUTES) ], declarations: [ AppShellComponent ], bootstrap: [AppShellComponent] }) export class AppModule { }import { Injectable } from '@angular/core'; @Injectable() export class CounterService { count = 0; increase(): void { this.count++; } decrease(): void { this.count--; } }import { NgModule } from '@angular/core'; import { RouterModule } from '@angular/router'; import { SharedModule } from '../shared/shared.module'; import { SomeLazyComponent } from './some-lazy.component'; const LAZY_ROUTES = [ { path: '', component: SomeLazyComponent } ]; @NgModule({ imports: [ SharedModule, RouterModule.forChild(LAZY_ROUTES) ] }) export class LazyModule { }import { NgModule } from '@angular/core'; @NgModule({ providers: [ CounterService ] }) export class SharedModule { }그리고 루트 모듈의 컴포넌트와 지연 로딩 모듈의 컴포넌트에서 각각 CounterService 를 사용하여 숫자 값을 바꿔봅니다.서로 다른 인젝터에 CounterService 인스턴스가 만들어졌기 때문에 두 컴포넌트에 표시되는 숫자값은 다릅니다. 앞에서 말했듯이 지연 로딩 모듈은 루트 인젝터가 아닌 자식 인젝터를 이용하여 초기화하기 때문입니다.만약, 지연 로딩 모듈에서 제공되는 서비스를 다른 모듈에서 사용하려면 루트 모듈에 포함시켜 줘야 합니다. 다음과 같이 루트 모듈에게만 노출시킬 서비스 제공자들을 따로 빼내어 줄 수 있습니다.import { NgModule } from '@angular/core'; import { RouterModule, Routes } from '@angular/router'; import { AccountLoginPageComponent } from './login-page.component'; const ACCOUNT_ROUTES: Routes = [ { path: 'login', component: AccountLoginPageComponent } ]; @NgModule({ imports: [ ... RouterModule.forChild(ACCOUNT_ROUTES) ], decalartions: [ AccountLoginPageComponent ] }) export class AccountLazyModule { }import { ModuleWithProviders, NgModule } from '@angular/core'; import { AccountAuthService } from './auth.service'; @NgModule({ imports: [...] }) export class AccountModule { static forRoot(): ModuleWithProviders { return { ngModule: AccountModule, providers: [ AccountAuthService ] }; } }AccountModule.forRoot() 를 루트 모듈에 import하면 다른 모듈에서도 AccountAuthService 를 사용할 수 있게 됩니다. 물론 이 경우 AccountModule를 지연로딩 모듈로 만들면 루트 모듈에 포함되기 때문에 번들을 나누는 의미가 없어질 수 있으니 AccountLazyModule 을 따로 두어 코드를 분리하였습니다.#타운컴퍼니 #개발 #개발자 #인사이트 #꿀팁
조회수 1343

잉여와 SW 개발의 관계...

IoT의 관점과 함께 최근에 주목을 받는 시계열 DB들이 있다. OpenTSDB나 인플럭스 DB, Graphite와 같은 것들이다. 신기한 것은 최신의 기술이나 플랫폼이라고 불리는 것들은 국내에서는 거의 등장하지 않는다. 대부분 미국이나 유럽, 이제는 중국이나 러시아에서 등장한다. 물론, 일본에서는 새로운 언어도 많이 등장했다.집안의 전기 사용량을 측적하건, 공기 측정이 되었건 1초에 한번 측정하는 센서에서 만들어지는 데이터를 자세하게 분석하려면 이 데이터를 수집하고 모아야 한다. 그리고, 최소 연단 위 정도는 모아서 무언가를 분석하거나 추이를 살펴보아야 할 것이다.더군다나, 센서가 하나가 아니라 여러 개 라면 모여지는 데이터의 량은 상당할 것이다. 기존의 RDB에 축적하는 것은 이런 경우에 좀 맞지 않는다. 데이터가 계속 용량을 늘려나가는 구조이기 때문에 NoSQL형태의 데이터 스토어를 생각하게 된다. 코치이건 하둡이건 몽고이건 여러 가지가 생각난다. 실시간으로 추적 분석하려면 Apache Storm이나 spark도 생각날 것이다.일단, 센서가 시간의 추이에 따라서 데이터를 모으는 형태에 적합한 시계열 DB에 적합한 방법들에 대해서 나름 적합한 형태로 개발되는 구조를 가진 DB들을 어렵지 않게 찾아볼 수 있다. 이 글 가장 앞에 언급한 것들이다.관련 자료를 찾아보고 싶으면, OpenTSDB는 http://opentsdb.net , InfluxDB는 https://influxdb.com을 찾아보라. 나름 매력적으로 시계열 형태의 데이터를 모으기 좋은 구조로 디자인되는 설루션을 만날 수 있다.오늘 글에서 언급하고 싶은 것은... 이러한 특정 요점에 맞는 설루션들이 왜? 국내에서는 나타나지 않는가에 대해서 끄적거려 보고 싶어서이다. 과연, 이러한 태도와 행동, 행위가 특정 개발자의 탁월함 때문일까? 아니면, 국내에 있는 개발자들이 게으르고, 자신의 이익만을 위해서 일하는 것 때문일까?삐딱한 아키텍트는 그 부분을 이렇게 해석한다.하나. 잉여가 없는 부가가치가 적은 일을 매번 수행하는 국내의 경영자들의 문제.둘. 반복적인 작업이나 자신의 일의 미래에 대해서 큰 관심 없는 개발자의 자세셋. SI형태로만 진행되는 국내 프로젝트이기 때문에 만들어진 플랫폼이나 유틸리티 성의 서비스를 외부에 오픈하지 못하는 경우가 빈번함.이 3가지의 가장 큰 이유 때문에 국내에서는 특정 용도나 특정 의미의 환경에 잘 어울리는 설루션들이 오픈소스로 발전되고, 더 넓게 쓰이는 플랫폼까지 진화하지 못한다고 생각한다. 하나씩 나름대로 이유를 이야기해보자.하나. 잉여가 없는 부가가치가 적은 일을 매번 수행하는 국내의 경영자들의 문제일단, 부가가치가 높은 소프트웨어나 서비스를 개발한다면, 적절하게 배분되어진 팀과 일정, 부가가치가 높기 때문에 피드백을 통해서 품질을 높이기 위한 시도들이 반복되어진다. 하지만, 대부분 1회성으로 끝나거나, 단기적인 일거리를 해결하기 위해서 소프트웨어를 개발하는 경우가 대부분이기 때문에 사소한 잉여도 발생하기 어렵다.고품질을 지향하는 소프트웨어 개발을 추구한다면 매우 당연하게 잉여시간과 잉여 일정, 잉여인력이 투입되는 것이 정상이다. 매우 당연하게 소프트웨어 개발자들은 게으르기 때문에 반복적인 일을 싫어하고, 게으르기 때문에 소프트웨어의 품질을 높이기 위해서 공을 들인다.이런 게으른 소프트웨어 개발자들이 품질 높이기를 포기하는 이유는 간단하다. 그 소프트웨어가 재사용될 가능성이 거의 존재하지 않고, 또다시 요구사항에 따라서 난도질을 해야 하는 경우에 품질 높이기를 시도하지 않는다.결론적으로 소프트웨어 개발자들이 고품질을 만들지 않는 이유는 처음부터 비즈니스 기획과 부가가치에 대한 이윤과 투입되는 비용에 대해서 잘못된 비즈니스 모델을 만든 기획자나 경영자가 그 책임을 져야 한다. 물론, 그런 환경을 주었더라도 잘못된 개발자를 뽑은 '인력관리'의 미스에 대해서도 그 역시... 경영자가 책임져야 한다.대부분 고품질의 소프트웨어가 나타나지 않거나, 잉여가 만들어지지 않는 이유는 경영자가 미 숫하고, 비즈니스 모델을 잘못 디자인해서 그러하다.둘. 반복적인 작업이나 자신의 일의 미래에 대해서 큰 관심 없는 개발자의 자세하지만, 경영자의 잘못과 거의 비슷한 수준의 개발자의 관심 없는 자세인 경우가 문제가 되는 경우도 많다. 잉여가 주어졌음에도 빈둥거리거나, 자신만의 놀이를 위해서 그 시간과 비용을 투자하는 경우도 간혹 있다. 하지만, 필자가 만나본 대부분의 개발자들은 그런 자세가 된 소프트웨어 개발자의 행태 또한 그 소프트웨어 개발자가 걸어온 그 전회사의 경영자의 문제라고 지적하고 싶다.반복적인 일을 줄이고, 미래의 코드에 대해서 신경 쓰는 자세는 소프트웨어 개발자가 기본적으로 갖추어야 하는 자세임에도 불구하고, 이러한 자세를 파괴하는 형태의 업무 구조와 생각 자체를 파괴하는 형태로 일을 구성하는 경영진과 같이 일한 개발자들은 슬프게도 잉여를 빈둥거리게 하는데 익숙하게 된다.필자가 개발자 구인 시에 가장 주목하고, 관심을 가지면서 걸러야 하는 개발자는 그러한 회사를 거쳐왔거나 그러한 프로젝트에 매몰되었던 사람들은 피하는 것이다. 한번, 그런 자세가 파괴된 개발자는 다시 자세를 정상으로 복구하는데 엄청난 리소스와 시간이 투입된다.냉정한 사람들이라면 이러한 사람들을 '동료'로 받아들이는 것을 싫어할 것이다.셋. SI형태로만 진행되는 국내 프로젝트이기 때문에 만들어진 플랫폼이나 유틸리티 성의 서비스를 외부에 오픈하지 못하는 경우가 빈번함.슬프지만, 3번째의 경우가 사실은 한국에서는 50% 이상 의미 있는 형태로 개발되었음에도 불구하고, 사장되거나 외부에 노출될 수 없는 형태가 되는 경우를 빈번하게 경험했다. 필자 역시, WebService개발 초기에 3 Tier개발에 어려움을 겪는 개발자들을 위해서 SQL 문장을 그대로 WebService에서 CRUD형태로 전송하고 데이터셋과 DB커서를 2 Tier의 형태로 손쉽게 개발할 수 있는 플랫폼과 컴포넌트를 개발했지만, 이 역시, SI에 종속된 결과물이 되면서 외부에 오픈할 수 없는 경우가 되는 것을 빈번하게 경험했다.슬프지만... 이 3가지의 큰 이유 이외에도 '잉여'가 없는 개발 일정이나 개발자에게 여유가 없어지면서, 정말 더럽게 재미없는 소프트웨어 개발이 반복되는 경우를 많이 보았다. 하지만, 필자의 경험은 그럼에도 불구하고 개발을 총괄하고 있다면, 자신의 팀에 있는 개발자에게 약간의 잉여와 고품질을 위한 리소스에 대한 배려를 취하면서 동료직원이 오픈소스를 창출하거나 외부에 오픈할 수 있는 정도의 다듬는 여유를 만들어 줄 수 있다고 생각한다.가장 훌륭한 CTO나 개발 총괄의 역할은 그 시간을 정말 즐겁다고 생각하는 동료 개발자에게 약간의 잉여와 여유를 허가하는 것이며, 그 잉여가 결론적으로 자신이 속한 개발 조직의 효율이 향상되고, 개발 문화가 부드러워지는 아주 의미 있는 개발 조직으로 완성되어가는 첫 번째 단추라는 것을 알기를 바란다.현재 훌륭한 개발 조직일수록, 카페와 같은 공간만을 만드는 것만으로 끝나는 것이 아니라, 개발 공정이나 개발 프로세스 상에 리뷰와 의미 있는 문서화 작업, 피드백과 리팩터링과 같은 시간을 배분하는 이유도 그 때문이라는 것을 잊지 않기를 바란다.훌륭한 하드웨어 적인 공간 위에 재미를 추구하고 의미를 추구하는 잉여가 존재하는 개발 공정을 탑재한 개발 조직이야말로 성공할 수 있는 전제조건을 하나 더 갖춘 곳이라는 것을...

기업문화 엿볼 때, 더팀스

로그인

/