스토리 홈

인터뷰

피드

뉴스

조회수 660

브랜딩을 망쳐보자(말 한마디로)

사실 브랜딩을 이렇게 해라, 저게 맞다 백날 말하는 건 별 의미가 없습니다. 항상 옳은 방법은 원론적이고 방대하고 추상적입니다. 파괴하는 건 그저 말 한마디, 종이 한 장이면 충분하죠. 오우? 설마 한 번 브랜딩이 되면 쉽사리 바뀌지 않는다는 관성력을 언급하시려구요!? 물론 그렇습니다. 브랜딩은 '의도적 선입견' 을 만드는 과정입니다. 하지만 당신이 코브가 아닌 이상 남의 꿈 속으로 들어가 금고를 열게 아니라면 그것은 당신의 몫이 아닙니다. 우린 우리의 일을 할 뿐, 선입견을 만드는 건 고객들의 몫이죠. 그러니 뭔 전략을 통해서 브랜딩을 한다는 것은 어불성설입니다. 브랜딩 전략이란 말 자체가 어폐가 있다는 겁니다. 브랜딩의 전략은 이미 달성되었습니다. '회사'를 만들었잖아요!우리는 외부의 자극을 줄 뿐, 무엇을 떠올릴 지는 그들의 선택입니다.회사를 잘 운영하기 위해서 브랜딩전략을 짠다구요??? 그건 이상한 말입니다. 당신은 브랜드를 먼저 만들었고 그걸 달성할 수단으로 '회사'를 운영하는 것 뿐입니다. 그러니 이제는 운영단의 문제만 하나하나 해결해 나가면 되는 겁니다. 많은 대표님들이 오해는 이겁니다. 하아, 우리 회사는 브랜딩이 안되서 매출이 안나와.뭐라는...방구같은 소리지요. 브랜딩이 안된 게 아니라 그냥 운영이 개판인 겁니다. 직원들은 시무룩하고, 다들 회사에서 뭐하는 지 별 관심이 없습니다. 의욕도 없습니다. 방향은 이랬다저랬다를 반복하고, 가져다 쓰기나 베끼기식의 컨텐츠가 가득합니다. 3일 전에 한 얘기가 오늘 또 바뀌고, 회의만 계속되는데 말하는 사람은 없습니다. 당장 써야할 제안서가 너무 많으니 전체 회식은 다음 주로 미루기로 합니다. 미뤄서 회식을 했는데 결국 또 직원들은 그냥 하하호호 고기만 먹다가 집에 갑니다. 맡긴 일은 자꾸 늦어지거나 내 맘에 안듭니다. 질책합니다. 의욕이 떨어집니다. 대표도 직원도. 하지만 아이디어는 많습니다. 실행할 사람이 없죠. 이건 브랜딩의 문제가 아니라, 운영과 소통의 문제입니다. 생각을 하나 해보고 넘어갈께요.브랜딩은 고객과 회사만의 문제인가요??브랜딩은 고객과 회사만의 문제인가요??제가 앞선 글에서 얘기했던 내용이 있습니다. 브랜드는 직원과 회사 자체가 지니고 있는 성격, 그 기질이 자연스레 드러나는 것입니다. 정돈된 하나의 비쥬얼과 멘트, 일관된 행동과 철학을 통해서 말이죠. 결국 브랜딩은 사내문화에서부터 기인합니다. 뭐 복지데이 어쩌고 해서 금요일은 5시퇴근이 사내문화가 아닙니다. 아주 사소한 것부터 생각해봅시다. 서로 인사는 하나요? 손님이 들어오면 어떻게 응대하죠? 미팅은 어떤 식으로 해요? 호칭은요? 일이 끝나면 제깍제깍 보고 하던가요? 아니면 가지고 오라고 해야 가지고 오던가요? 결정권자와 실무자간의 커뮤니케이션을 보면 이 회사의 브랜딩이 어디를 향하고 있는지 아주 쉽게 파악할 수 있습니다. 때론 그 방향이 괌을 포위사격하는 형태를 띠며 자폭의 길을 보여주기도 하죠.그런 의미에서 오늘은 고객과 회사가 아닌, 내부의 소통에 대해 얘기해보려고 합니다. 직원들도 고개를 가로젓는 비지니스를 외부에 브랜딩하겠다는 건 말이 안되는 일이거나 그냥 사기치잔 얘기와 비슷하니까요. 브랜딩을 폭망시키는 멘트들! 지금 시작합니다.1. 예를 들어~ 다시 말하면~ 이해됨? 어떤 말이냐면..말이 많다.자꾸 예를 들지 마세요. 예를 드는 것 자체가 나쁘진 않지만, 결과적으로 말을 길게 만듭니다. 회의시간을 4시간으로 만든다구요. 30분이면 끝날 일이 자꾸 예가 붙어서 지구역사만큼 길어집니다. 직원들은 스트로마톨라이트가 되버려요. 굳어진 유기생명체 말이예요. 직원들을 태곳적 존재로 만들어서 지층속에 묻을 것이 아니라면 예를 들지말고 핵심만 딱 전달해주세요.  솔루션은 실무자들이 알아서 만드는 겁니다. 자꾸 예를 들어야 할 정도로 이해력이 좋지 않은 사람이라면 그냥 다른 일을 시키는 게 낫습니다.2. 내 친구가, 내 지인이, 내 사촌이, 내 선배가....지극히 개인적인 개인들의 경험을 실행의 근거로 삼지 마세요. 자꾸 회의시간에 '제가 아는 분이' 라는 얘기가 나오곤 하는데, 아는 분에 대한 데이터를 정확히 밝히던가 아니면 그 사례가 정확한 지 분석을 하고 얘기하는 게 좋습니다. 물론 그런 개개인도 다 고객이 될 수 있으니 중요합니다. 하지만, 더 중요한 건 우리 내부에서 일단 통일되는 것이 중요하잖아요. 종이를 집어던지던 고성이 오고가던 갈등이 있고 몸의 대화가 격렬해지는 한이 있어도 우리들끼리 의견을 합치고 지지고 볶고 해야합니다. 외부사람들의 의견을 끌어들이지 마세요. 차라리 그냥 내 의견이라고 하던가.3. 알겠지? (모르겠는데요..)이 짤 이외는 설명할 도리가 없다.중간이 없는 경우. 절차나 실무는 전혀 모르겠고. '자, 우리 이번 페이스북 좋아요!...지금 심각합니다. 이 정도로는 바이럴도 뭣도 안되요. 무조건 이번에 스폰서드 태워서 좋아요 30,000찍습니다! 다음주까지!'3일 후'팀장님 이번 컨텐츠 도달율이 괜찮은데 스폰서드 태우시죠.''응? 아 그거 거기에 돈 쓰지 말라고 하셔서 그냥 없이 해요.''네?? 그럼 목표치에 다다르기 힘들 건데.''응? 그럼 안되지. 이미 목표는 보고했는데.''뭐라고.요(와씨 반말나올뻔했네)?'무조건 하라고 하지말고, 서포팅을 해줍시다. 알겠지?가 만사장땡이 아니예요. 못 알아듣는 말이나, 불가능한 것 들을 말이 되는 것처럼 자꾸 포장하거나 모호하게 말하면 안되요. 말이란 게 원래 그렇습니다. 얘기 하면 할수록 점점 말이 되는 것 같거든요. 말하는 사람 입장에선. 듣는사람은 점점 미궁속으로 빠져들고.4. 사람은 원래..공자세요?공자세요? 우린 지금 일을 하는 거지, 인간본성에 대한 철학적 고찰이나 지극히 개인적인 가치관을 듣자고 모인 것이 아닙니다. 자신이 그런 모임을 싫어한다고 해서 남들도 싫어하는 건 아니라는 걸 좀 알았으면 합니다.5. 이렇게 하라고 했잖아.(저렇게 하람서요?)본인이 한 말은 기억해야 합니다. 굳이 전략 나부랭이가 아니더라도, 자꾸 뭔갈 갈아엎거나 기억못해서 딴얘기하는 건 브랜딩뿐만 아니라 전반적인 업무를 힘들게 합니다. 이것은 신뢰와 직결되는 문제로, 브랜딩을 위한 어떤 세부전략을 짜거나 회의를 해도 다들 '어차피 바뀔 거...' 라고 고개를 가로젓게 될 거예요!!6. 결론은, 정리하자면...결론은 하나만. 이건 심지어 5번보다 더 심할 수도 있는데, 5분전에 말했던 것과 지금 말한 결론이 다를 때도 있습니다. 보통 생각하고 말하는 게 아니라, 말하면서 정리되는 타입의 사람들이 이렇게 말하는데.....결정사항을 결정할 땐 애드립대잔치말고 명확한 오더를 주도록 합시다. 7. 그래, 니 말도 맞다.경청과 인정은 좋습니다. 하지만 모두의 말이 맞다고 해버리면....뭘 해야하는 지 알수가 없습니다. 경청은 하되 방향성은 잡아야 합니다. 브랜딩은 우리 비지니스와 사람들의 공통된 톤을 정하는 일입니다. 눈에 보이지도 않고 명확하지도 않은 그 '성격과 기질' 이란 것을 표현해내는 일은 아주 세부적이고 구체적이어야 합니다.  우리가 놀기 좋아하는 활발한 분위기의 색을 지니고 있다면 적어도 오프라인 이벤트를 할 때 어떤 텍스트와 어떤 드레스코드로 무장할 지..이렇게 외부로 드러나는 모든 요소들에 대한 결정을 해야하죠. 옷, 텍스트, 디자인, 제작물, 배너, 멘트, 응대방식 등 전방위적 요소에서 컨셉츄얼한 기획이 나와줘야 합니다. 브랜딩자체는 굉장히 모호한 개념이지만, 그걸 실행하는 단계는 어떤 것보다 구체적이어야 하죠. 그래야 고객이든, 내부직원이든 어떤 맥락에서 왜 이런걸 하는지 '이해' 할 수 있습니다. 두루뭉술의 덫에 빠져버리면, 공허한 말잔치만 계속됩니다.이건 사무실을 안개속으로 빠뜨리는 일이죠.   8. 근데...근데..이건 이렇잖아. 근데..이건 이럴 수 없는데? 근데....이러면 어떻해? 근데....내가 이래서 못해. 근데...근데...내 친구가..근데...(가능이 없음)9. 해봤는데..가카?...그 결과가 요즘 대한민국입니다. 지난 레퍼런스를 교훈삼는 것은 물론 좋습니다. 거듭 말하지만 그 레퍼런스의 맥락이 분명할 경우에 말이죠. 개인적인 경험도 교훈이 될 수 있습니다. 현 상황과 적절하다면 말이죠. 사이즈나, 성격이나, 상황이나, 업무적 측면에서 유사점이 많다면 리스크를 미리 방지할 수 있습니다. 하지만, '해봤는데...' 가 지니는 문제점은 이거죠.  그럼 해본 사람이 하셔야지, 한 사람은 본인이고 일은 딴 사람이 한다는 것.발언을 했다면 책임을 지고, 다른 사람들은 손놓고 있는게 아니라 서포트를 약속해주는 겁니다. 서로 무서워서 아무말 못하는 것보다 무서운 건, 내가 안 할거니까 아무말이나 내뱉는 것이죠.10. 일단은 ... 어쨌든..여튼..제가 꽤나 싫어하는 말 중 하나입니다. 앞서 말한 모든 말들을 깡그리 무시하고 맥락을 끊어버리는 말이죠. 브랜딩 뿐 아니라 마케팅, 디자인, 영업, 생산관리 뭐...어떤 파트가 되었던 이 단어는 좋지 않습니다. 맥빠지죠. 한참 열심히 회의하고 전략까지 쭉쭉 짜내고 있는데, 일단은 그거말고. 어쩃든, 여튼 해. 등...뭔가 상대가 지금까지 말했던 수많은 의견들을 단 2,3글자로 묵살시킬 수 있습니다. 무엇보다 세부적인 플랜이 나와야하는 브랜딩영역에서 이 단어는...그렇게 디테일하게 공들인 수많은 시간과 노력을 허사로 돌려버립니다. 한 번 무너진 것들은 다시 쉽게 쌓이기 힘들죠. 그렇게 브랜드는 점점 무너져 갑니다. 방향도, 의욕도 없이위의 10가지 멘트는 브랜딩을 망가뜨리는 말만은 아닙니다. 전반적으로 커뮤니케이션을 망치는 화법이죠. 하지만 브랜딩을 다루면서 굳이 이 주제를 꺼낸 이유는 우리가 생각하는 브랜딩에 대한 거창함과 거품을 걷어내고 싶었기 때문입니다. 위에서 언급했듯 색깔을 드러낼 수 있는 비쥬얼적, 기획/운영적 플랜은 아주 세부적으로 나와주는 것이 맞습니다. 그러나 그 전제는 회사 내부적으로 일단 통일된 의견과 이해입니다. 실제로 출퇴근을 하면서 프로젝트를 하다보면, 운영진의 회의가 끝나고 나온 후 직원들의 뒷담화를 자주 듣게 됩니다. 그 뒷담화에 편을 들어줄 생각은 없습니다. 가만 들어보면 본인들도 전혀 노력도 없이 그냥 월급이나 따박따박 받아가고 싶은 사람들도 태반이기 때문입니다. 컨텐츠를 만들려면 당연히 뛰어다녀야 합니다. 그건 기본중에 기본입니다. 자료조사를 해도 끊임없이 인터넷을 뒤져야 하고, 사람도 만나야 하고, 인터뷰, 콘티작성, 일정조율 등...모르면 공부해야하고, 안되도 되게 해야하는 경우가 많습니다. 그걸 그냥 주저앉아서 '난 그런거 못하는데 왜 나한테 시키고 지랄이야' 하면서 불평이나 하고 있는 사원들의 모습은 좋아보이지 않습니다.(많이 순화함) 하지만 여기서 잘잘못을 따지잔게 아닙니다. 그럼에도 불구하고 제대로 우리 회사의 색을 만들고, 또 살리고 싶다면...  대표님이 그토록 원하는 브랜딩을 성공으로 이끌기 위해선 어쨌든 이 브랜딩 액션을 수행해낼 수 있는 온전한 집단이 필요합니다. 대기업은 BX팀이 있으니 굳이 전 사원이 막 회의에 참여하고 이럴 필요가 없다고 칩시다.. 스타트업이나 중소기업에선...전 사원이 달려들어서 움직여야 하는 것이 맞습니다. 그 와중에 서로를 피곤하고 지치게 만드는 말들은 최소화시키는 것이 효율적으로도, 심리적으로도 좋지 않겠습니까.자칫 우리의 피곤한 표정과 서로를 등진 얼굴이...우리의 브랜드가 될 테니까요.
조회수 1382

아마존 검색결과에서 상위 노출

안녕하세요, 대한민국 사업자들의 해외 전자상거래 진출(아마존 판매)을 도와주는 컨설팅 회사이자 업무대행사 컨택틱의 이이삭 대표입니다.오늘은 아마존 판매자들이 궁금해할만한 아마존 검색결과 내의 상위 노출된 리스팅들의 두 가지 유형에 대해 소개해드리고자 합니다.아마존과 같은 온라인 마켓플레이스에서 소비자가 쇼핑할 땐 가장 선행하는 일이 바로 '검색'입니다. 하지만 소비자들은 대게 1~2페이지까지만 상품들을 훑어보고 그 중에서 구매를 결정하는 경향이 있다보니 판매자의 입장에서는 어떻게든 내 상품을 1페이지 또는 2페이지에 노출시켜야지만 매출을 기대할 수가 있겠죠. 이렇듯이 아마존에서 판매하는 판매자의 입장에서 상위노출은 너무나도 중요한 부분입니다. 그럼 특정 검색 결과 안에서 내 상품을 상위노출 시키는 방법이 뭐가 있을까요? 엄밀히 말하자면 2가지 방법이 있습니다.상위 노출의 2가지 종류: Artificial Ranking + Organic RankingArtificial ranking (인공적인 순위)는 흔히들 알고 있는 PPC 광고를 통해서 상위 노출을 하는 방법입니다. 아마존 소비자들의 입장에서 바라봤을 때, 검색창에 본인이 구매하고자 하는 제품을 입력하면 검색 결과가 쭉 나오게 되는데요, 그 검색 결과 중에서 두 가지 종류의 리스팅을 볼 수가 있습니다. 아래 화면에서 초록색 박스와 파란색 박스로 칠해진 것의 차이를 잘 눈여겨서 보시기 바랍니다:자세히 보시면 초록색 박스 안에 있는 리스팅은 Sponsored라는 문구가 붙어있습니다. 그리고 파란색 박스 안에 있는 리스팅은 그런 문구가 없습니다. Sponsored라는 문구는 PPC 광고를 통해서 노출되는 유료 노출 구좌입니다. 입찰가만 맞으면 (낙찰만 된다면) 이렇게 1페이지 검색결과 상단에 내 상품이 노출될 수 있는 방법이 바로 Artificial Ranking입니다.그리고 파란색으로 칠해진 리스팅은 Organic Ranking의 상위 노출되고 있는 리스팅입니다. 즉, 실제로 고객들이 'fish oil'이라는 검색을 통해 해당 리스팅을 제일 많이 제일 자주 구매한다는 뜻이겠죠. 아마존에서 보여지는 Best Seller 딱지는 이런 리스팅에 붙게 됩니다. fish oil이라고 검색하고 A라는 제품을 구매하는 사람이 많으면 많을수록 A 리스팅이 1페이지에 노출되는 개념이 바로 Organic Ranking 개념입니다.Artificial Ranking으로 상위 노출 - PPC 광고를 설정하는 방법위 사진에서 보여지는 것처럼 아마존 셀러 센트럴에서 'Advertising' 탭에서 'Campaign Manager'를 클릭하고 들어갑니다.여기서 Create Campaign을 눌러서 광고를 세팅할 수 있는데요, 아마존 PPC 광고 설정법은 어떻게 설정하냐에 따라 천차만별의 결과가 나올 수 있기 때문에 이번 포스트에서는 PPC 광고 설정법을 자세하게 설명하진 않고, 대략적인 설정법만 다루겠습니다.Create Campaign을 누르시면 아마존 PPC 광고 생성하는 메뉴가 아래와 같이 나오는데요, 아마존에서는 '자동' 광고 방식이 있고 '수동' 광고 방식이 있습니다. 자동 광고 방식은 상품을 등록하셨을 때 사용된 여러 데이터를 아마존의 알고리즘이 스마트하게 분석해서 알아서 적합한 키워드를 입찰 해주고 알아서 상위노출해주는 개념입니다. 수동 광고 방식은 판매자가 원하는 키워드를 세부적으로 정할 수 있고, 더 나아가서 심지어 각 키워드에 대한 match type (매칭 범위)를 정할 수 있습니다. match type에는 broad (광범위한) / phrase (구절 단위) / exact (단어 단위)의 매칭 범위 설정하는 게 있는데요, 이 부분 역시 자세하게 파고들면 너무 복잡하기 때문에, 초보자분들은 자동 광고만 설정하는 것을 추천드립니다 (PPC 고수들도 아무리 시간이 지나도 자동 광고는 유지합니다). 어쨌거나, 일일 광고 예산을 정하시고 시작일과 종료일을 정하신 뒤에 다음 화면으로 넘어갑니다.위 화면에서는 자동 광고 방식을 선택했을 때 보여지는 모습인데요, 어떤 상품을 광고할지 선택만 하시고, 기본 입찰가만 정하시면 설정이 끝납니다. 매우 간단하죠 :)PPC 광고를 통한 상위노출의 장단점PPC 광고를 통한 상위노출의 대표적인 장점은: 합리적인 비용으로 내 상품을 상위에 노출 시킬 수 있다는 점입니다.그렇다면 단점은: Sponsored 라는 딱지가 붙으므로, 소비자들도 바보가 아닌 이상 광고로 인한 상위노출이라는 것을 안다는 것입니다.Organic Ranking으로 상위 노출 - 키워드와 내 상품을 연결하여 구매컨택틱은 컨택틱만의 노하우가 있어서 Organic Ranking으로 상위 노출을 하는 방법을 가지고 있습니다. 하지만 저희를 사용하지 않아도 아마존 판매자들은 본인의 상품을 organic ranking으로 상위 노출 시킬 수 있습니다. 방법은 (1) 내 상품을 구매해줄 사람들을 넉넉하게 구합니다 (2) 내가 상위 노출 하고 싶은 키워드를 고릅니다 (예: fish oil) (3) 해당 키워드의 검색 결과에서 1페이지에 나와있는 판매자들은 하루에 몇개의 상품을 판매하고 있는지 조사합니다 (예: 하루 판매 개수 평균 20개) (4) 1번에서 준비한 사람들에게 부탁해서 20명은 1일차에 amazon에서 fish oil을 검색하게 하고 내 상품을 찾게 하여 구매하게 하고, 20명은 2일차에 amazon에서 fish oil을 검색하게 하고 내 상품을 찾게 하여 구매하게 하는 등,,, 이 과정을 10일간 반복합니다. 물론 이 분들은 판매자에게 편의를 봐주는 것이기 때문에 판매자는 이런 지인들에게 90% 할인을 제공하거나 전액 환불을 해줘야겠죠 (5) 내 상품은 fish oil이라는 검색 결과에서 1페이지에 노출됩니다.이론상으로는 충분히 이해가 되는 개념이지만, 현실적으로 미국에 살고 있으며 아마존 바이어 계정을 갖고 있는 200명의 고유 지인들을 알고 있을 확률이 매우 저조하죠... 그래서 컨택틱에서는 이런 부분을 해결해주고 있습니다. 실제로 미국에서 수만명을 대상으로 이런 번거로움을 감수하면서까지 구매 작업을 해줄 사람들을 보유하고 있습니다.언제 Artificial Ranking (PPC 광고)를 해야하고 언제 Organic Ranking을 해야하나요?답은 생각보다 간단합니다. 비싼 제품 ($50 이상)은 Artificial Ranking을 하는 게 좋습니다. 그리고 반대로 저렴한 제품 ($50 이하)는 Organic Ranking을 통한 상위 노출 마케팅이 효율이 좋습니다. 그 이유는, 비싼 제품은 무상배포 (giveaway)를 하기엔 단가가 높은 장벽이 있기 때문이며, 저렴한 제품은 오히려 PPC를 통해서 지출되는 클릭당 비용이 제품의 판매가보다도 더 많이 나와서 배보다 배꼽이 커지는 상황이 벌어지기 쉽기 때문입니다.
조회수 1459

자바스크립트에대해서

안녕하세요. 크몽 개발팀입니다.오늘 저는 좀 심오한 주제를 다뤄보려고합니다.이번에 제가 다룰 주제는 ‘자바스크립트’라는 언어입니다.자바스크립트라는 언어와 자바라는 언어에 대해서 혼동을 하는 경우가 많은데요,자바와 자바스크립트는 완전히 다른언어입니다. 쉽게말해서 자바는 서버를 구축하는 부분을 주를 담당하고,자바스크립트는 화면을 구성하는 부분에서 사용되는 프로그래밍 언어라고 보시면 될 것 같습니다.(자바스크립트의 이름을 만들 당시에 자바라는 언어가 유행을 해서 자바스크립트라고 이름을 지었다고 하네요.원래 이 언어의 이름은 라이브 스크립트입니다.)물론 자바스크립트로 서버를 구축을 할 수도 있습니다.(node.js라고하는 플랫폼입니다. 자바스크립트를 이용하여 서버를 구축할 수있는 플랫폼입니다.자세한 사항은 책이나 위키피디아를 참고하시면 좋을 듯 합니다.)각설하고,아무튼 자바스크립트라는 언어에 대해서 좀더 자세히 알아보겠습니다.자바스크립트라는 언어를 알기 위해서는 일단 스크립트라는 것이 무엇인지에 대해 좀더 알아야 합니다.위키피디아에 따르면 스크립트 언어란,'응용프로그램과 독립하여 사용되고 일반적으로 응용프로그램의 언어와 다른 언어로 사용되어최종사용자가 응용프로그램의 동작을 사용자의 요구에 맞게 수행할 수 있도록 해준다.' 라고 정의하고 있습니다. 어렵지요? 쉽게 말하면 연극에서 ‘스크립트’라는 것에 서 유래 되었다고 하고, 그뜻이 연극에서의 시나리오, 각본을 의미합니다. 그 의미를 그대로 적용하면 ‘대본, 시나리오만 제공하면 알아서 작동한다.' 는 그런 뜻이지요.대충 감이 잡히셨나요?자바스크립트는 TIOBE 라는 소프트웨어 회사에서 발표한 2014년 프로그래밍 언어순위에서도 상당히 상위권에 차지를 하고있습니다.그만큼 많이 사용이 된다는 의미겠지요.매우 좋은 것처럼 보이지만 자바스크립트가 만만한 언어는 아닙니다.제가 듣기로는 ‘자바스크립트는 악마의 언어’라고 불린다고 들었습니다.그렇게 불리는 이유는 그만큼 언어가 유연하기때문입니다.조금전에 언급했듯이 연극에서의 대본과 시나리오를 프로그래머가 직접 만들어야한다는 것입니다.그만큼 프로그래밍하기 쉽지 않다는 것이겠지요.자바스크립트는 단점이 바로 장점입니다.'유연하다는 것' 때문에 사람들의 입맛에 맞게 커스터마이징을 할 수있다는 것이고웹상에 이미 프로그래머들이 만들어 놓은 많은 라이브러리가 있습니다.우리는 이걸 잘 이용하면 되겠지요?좀 더 자바스크립에 대해서 자세히 알고싶다면 ‘javascript inside’라는 책을 참고하여 공부해보시면 좋을 듯 하네요. ---------------------------------------------------------------------------------------------------저는 크몽 개발팀의 Sean이었습니다. #크몽 #개발자 #개발팀 #팀원소개 #기업문화
조회수 426

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

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

100%를 위한 궁극의 1% 현대로템 철차시운전팀을 만나다

현대로템 철차시운전팀은 어떤 업무를 할까요?현대로템 철차시운전팀에 비상등이 켜졌습니다. 2019년, 창사 이래 최대 물량의 완성차 시험을 앞두고 있기 때문입니다. 그럼에도 불구하고 철차시운전팀 가득 기분 좋은 설렘이 넘쳐나는 이유는 무엇일까요? 현대로템 철차시운전팀을 직접 만나 에너지의 근원을 파헤쳐 보았습니다.떨어져 있어도 자주 보지 못해도 우리는 한 팀철차시운전팀 탁월한 팀워크로 뭉쳤습니다“관리직과 기술직을 다 합치면 전체 팀원은 80여 명 가까운데 그중 40%가 주재 및 파견 근무를 하고 있습니다. 그러니 팀 전체가 모이는 일이 정말 드물지요. 그래도 저는 크게 걱정 안 해요. 각자 할 일은 알아서들 잘하고 있을 거고, 얼굴은 자주 못 봐도 우리는 한 팀이니까요.”팀 소개를 핑계로 팀 자랑부터 늘어놓는 유동식 팀장의 말에 지난 10월부터 철차시운전팀의 일원이 되었다는 인턴사원 3인방의 얼굴에도 미소가 번집니다. ‘팀 자랑 이벤트’에 응모하며 임종훈 과장이 전한 메시지가 새삼 떠오르는 순간이었습니다.“현대로템 창사 이래 최대 물량 완성차 시험을 앞두고 국내외에서 불철주야 힘쓰고 있습니다. 특히 인턴사원의 신선한 열정과 팀장님의 부드러운 리더십이 팀 전체에 시너지를 불어넣고 있는 철차시운전팀을 전사에 자랑하고 싶습니다”흐뭇한 눈길을 주고받는 철차시운전팀 사람들에게 임종훈 과장의 메시지를 이야기하자, 유동식 팀장은 “뭘 또 그렇게 자랑을 했노, 부끄럽게”라고 응수했고 박영선 사원은 말없이 엄지를 치켜들었습니다. 대체 어떤 일을 하기에 이들의 얼굴 가득 자부심과 애정이 묻어나는 것인지 더욱 궁금해지지 않을 수 없었습니다.멈춰있던 차량에 첫 숨결을 불어넣다열차 운행의 마지막을 담당한다는 책임과 자부심이 있습니다“설계, 생산, 구매 등 각 팀의 업무를 거쳐 완성된 전동차라도 저희가 전원 버튼을 누른 다음에야 비로소 처음으로 움직이게 됩니다. 그때부터 저희는 차량이 잘 만들어졌는지, 문제없이 동작하는지를 확인해야 하고요. 그러려면 차량 전반에 대해 이해하고 있어야 합니다. 뿐만 아니라 이 모든 과정을 거쳐서 완벽한 품질의 차량을 고객에게 인도하는 것도 저희 몫이죠.”철차시운전팀 업무에 대한 임종훈 과장의 똑 부러진 설명대로 99% 완성된 차량이 현대로템의 이름을 달고 출고되기까지 마지막 1%를 채우는 것이 철차시운전팀의 주된 업무입니다. 스스로는 겸손하게 ‘마지막 1%’라고 했지만, 이 1%는 결코 무시할 수 없는 수치입니다. 공장시험만 편성당 30~50일, 첫 편성 열차는 영업선로에서 다시 3개월, 그 다음 열차들은 20일 정도 시험을 거친 후에야 실제 운행에 들어갈 수 있기 때문입니다. 이 과정 중 각 차량 담당자들은 승객의 안전을 위해 추진, 제동, 도어, 신호등 등 차량 전반을 샅샅이 살펴야 합니다. 특히 영업선로에서 시험을 하는 경우에는 자정 이후부터 새벽까지 업무가 이루어지는 경우가 많습니다. 낮과 밤이 바뀌는 격이니 육체적으로 힘들 수밖에 없는 것이 사실. 유동식 팀장은 이 부분에 대해 특히 애틋한 마음을 전했습니다.“지금 이 시간에도 우리 팀원들이 국내외에서 시운전을 진행하고 있습니다. 2018년의 경우 소사원시, 부산1호선, 터키 예니카프, 브라질 CPTM 등의 성공적인 납품을 이뤄냈죠. 2019년에는 창사 이래 최대 물량을 시험해야 하는 상황이고요. 그래도 걱정보다는 기대가 크다고들 하니 고맙죠. 팀장으로서 저는 이 사람들이 더 신나게 일할 수 있도록 인력 배치 등을 철저히 준비하고 있고요.”공통의 목표를 향해 달리다서로 같은 목표를 향해 달리며 팀 안팎의 시너지를 높이고 있습니다2019년 철차시운전팀은 월평균 140칸, 연간 1천 칸이 넘는 차량을 공장 및 본선에서 시험해 내야 합니다. ‘창사 이래 최대 물량’이니 25년간 현대로템에서 재직하며 23년을 철차시운전팀에서 일해온 유동식 팀장도 새로운 도전을 앞두고 있는 셈입니다.“마지막 공정을 책임져야 하는 만큼, 부담감과 책임감을 느낄 수밖에 없죠. 그래도 시운전 완료 후 고객사에 차량이 인도될 때, 영업 개시 후 승객들이 차량을 이용하는 모습을 볼 때 느끼는 성취감은 말로 표현할 수 없어요.”이렇듯 막중한 임무를 맡고 있는 철차시운전팀을 지켜온 에너지는 무엇일까요? 국내파트 오경석 과장은 ‘공통의 목표’를 첫손에 꼽습니다. 기술직부터 관리직까지 80여 명 가까운 팀원 모두가 ‘납품 기한 내에 고품질의 차량을 고객에게 인도하는 것’이라는 목표를 중심으로 일사불란하게 움직이고 있습니다. 덧붙여 박영선 사원은 남다른 ‘팀워크’를 자랑했습니다.“철차시운전팀은 파트를 막론하고 언제든 서로 도울 준비가 되어 있습니다. 관리직과 기술직으로 직무가 나뉘어 있지만, 주기적으로 풋살 경기를 하고 저녁 식사도 하며 뒤섞여 어울리지요. 팀내에서 탄탄하게 쌓아온 협업 경험은 유관 팀들과 일할 때도 그대로 적용이 되지요.”시운전 중인 차량에 문제가 생길 경우, 일정 조율부터 자재관리까지 각각의 팀들과 소통하며 해결해나가야 하는 것이 철차시운전팀의 숙명이라면 숙명. 그때마다 직무와 파트를 초월해 팀 내 선후배들과 쌓은 협업 경험이 결정적인 역할을 한다는 것입니다.2019년, 무적의 팀워크로 달린다현대로템 철차시운전팀은 올해도 열심히 달립니다인터뷰 후 단체 사진 촬영을 위해 시험 중인 차량 앞으로 모인 철차시운전팀 사이에 유쾌한 옥신각신이 벌어집니다. “무슨 사진이고, 나는 안 찍을란다”하며 슬쩍 빼는 ‘경상도 아재들’과 “아, 선배님. 선배님이 안 찍으시면 어떡합니까. 같이 찍으셔야죠”라며 다정하게 팔을 잡아끄는 후배들 사이의 밀당(?) 끝에 열여섯 명이 겨우 카메라 앞에 섰습니다. 포즈를 잡는 것도, 활짝 웃어야 하는 것도 어색하고 낯설지만 “하나, 둘, 셋!” 구호에 맞춰 같은 곳에 시선을 모은 철차시운전팀 사람들. 앞으로도 이렇게, 철차시운전팀 사람들은 시선을 맞추고 호흡을 맞추며 현대로템의 경쟁력을 높여갈 것입니다.글. 최주연사진. 방문수 ▶ 현대로템 사보 2018년 겨울호에서 원문을 확인할 수 있습니다#현대 #현대그룹 #현대로템 #철차시운전팀 #열차 #전동차 #시운전 #팀워크 #직무소개 #HMG저널 #HMG_Journal #HMG #기업문화 #조직문화 #직무정보 #구성원인터뷰
조회수 813

비트윈의 HBase 스키마 해부 - VCNC Engineering Blog

비트윈에서는 HBase를 메인 데이터베이스로 이용하고 있습니다. 유저 및 커플에 대한 정보와 커플들이 주고받은 메시지, 업로드한 사진 정보, 메모, 기념일, 캘린더 등 서비스에서 만들어지는 다양한 데이터를 HBase에 저장합니다. HBase는 일반적인 NoSQL과 마찬가지로 스키마를 미리 정의하지 않습니다. 대신 주어진 API를 이용해 데이터를 넣기만 하면 그대로 저장되는 성질을 가지고 있습니다. 이런 점은 데이터의 구조가 바뀔 때 별다른 스키마 변경이 필요 없다는 등의 장점으로 설명되곤 하지만, 개발을 쉽게 하기 위해서는 데이터를 저장하는데 어느 정도의 규칙이 필요합니다. 이 글에서는 비트윈이 데이터를 어떤 구조로 HBase에 저장하고 있는지에 대해서 이야기해 보고자 합니다.비트윈에서 HBase에 데이터를 저장하는 방법Thrift를 이용해 데이터 저장: Apache Thrift는 자체적으로 정의된 문법을 통해 데이터 구조를 정의하고 이를 직렬화/역직렬화 시킬 수 있는 기능을 제공합니다. 비트윈에서는 서버와 클라이언트가 통신하기 위해 Thrift를 이용할 뿐만 아니라 HBase에 저장할 데이터를 정의하고 데이터 저장 시 직렬화를 위해 Thrift를 이용합니다.하나의 Row에 여러 Column을 트리 형태로 저장: HBase는 Column-Oriented NoSQL로 분류되며 하나의 Row에 많은 수의 Column을 저장할 수 있습니다. 비트윈에서는 Column Qualifier를 잘 정의하여 한 Row에 여러 Column을 논리적으로 트리 형태로 저장하고 있습니다.추상화된 라이브러리를 통해 데이터에 접근: 비트윈에서는 HBase 클라이언트 라이브러리를 직접 사용하는 것이 아니라 이를 래핑한 Datastore라는 라이브러리를 구현하여 이를 이용해 HBase의 데이터에 접근합니다. GAE의 Datastore와 인터페이스가 유사하며 실제 저장된 데이터들을 부모-자식 관계로 접근할 수 있게 해줍니다.트랜잭션을 걸고 데이터에 접근: HBase는 일반적인 NoSQL과 마찬가지로 트랜잭션을 제공하지 않지만 비트윈에서는 자체적으로 제작한 트랜잭션 라이브러리인 Haeinsa를 이용하여 Multi-Row ACID 트랜잭션을 걸고 있습니다. Haeinsa 덕분에 성능 하락 없이도 데이터 무결성을 유지하고 있습니다.Secondary Index를 직접 구현: HBase에서는 데이터를 Row Key와 Column Qualifier를 사전식 순서(lexicographical order)로 정렬하여 저장하며 정렬 순서대로 Scan을 하거나 바로 임의 접근할 수 있습니다. 하지만 비트윈의 어떤 데이터들은 하나의 Key로 정렬되는 것으로는 충분하지 않고 Secondary Index가 필요한 경우가 있는데, HBase는 이런 기능을 제공하지 않고 있습니다. 비트윈에서는 Datastore 라이브러리에 구현한 Trigger을 이용하여 매우 간단한 형태의 Secondary Index를 만들었습니다.비트윈 HBase 데이터 구조 해부페이스북의 메시징 시스템에 관해 소개된 글이나, GAE의 Datastore에 저장되는 구조를 설명한 글을 통해 HBase에 어떤 구조로 데이터를 저장할지 아이디어를 얻을 수 있습니다. 비트윈에서는 이 글과는 약간 다른 방법으로 HBase에 데이터를 저장합니다. 이에 대해 자세히 알아보겠습니다.전반적인 구조비트윈에서는 데이터를 종류별로 테이블에 나누어 저장하고 있습니다. 커플과 관련된 정보는 커플 테이블에, 유저에 대한 정보는 유저 테이블에 나누어 저장합니다.각 객체와 관련된 정보는 각각의 HBase 테이블에 저장됩니다.또한, 관련된 데이터를 하나의 Row에 모아 저장합니다. 특정 커플과 관련된 사진, 메모, 사진과 메모에 달린 댓글, 기념일 등의 데이터는 해당 커플과 관련된 하나의 Row에 저장됩니다. Haeinsa를 위한 Lock Column Family를 제외하면, 데이터를 저장하기 위한 용도로는 단 하나의 Column Family만 만들어 사용하고 있습니다.각 객체의 정보와 자식 객체들은 같은 Row에 저장됩니다.또한, 데이터는 기본적으로 하나의 Column Family에 저장됩니다.이렇게 한 테이블에 같은 종류의 데이터를 모아 저장하게 되면 Region Split하는 것이 쉬워집니다. HBase는 특정 테이블을 연속된 Row들의 집합인 Region으로 나누고 이 Region들을 여러 Region 서버에 할당하는 방식으로 부하를 분산합니다. 테이블을 Region으로 나눌 때 각 Region이 받는 부하를 고려해야 하므로 각 Row가 받는 부하가 전체적으로 공평해야 Region Split 정책을 세우기가 쉽습니다. 비트윈의 경우 커플과 관련된 데이터인 사진이나 메모를 올리는 것보다는 유저와 관련된 데이터인 메시지를 추가하는 트래픽이 훨씬 많은데, 한 테이블에 커플 Row와 유저 Row가 섞여 있다면 각 Row가 받는 부하가 천차만별이 되어 Region Split 정책을 세우기가 복잡해집니다. RegionSplitPolicy를 구현하여 Region Split 정책을 잘 정의한다면 가능은 하지만 좀 더 쉬운 방법을 택했습니다.또한, 한 Row에 관련된 정보를 모아서 저장하면 성능상 이점이 있습니다. 기본적으로 한 커플에 대한 데이터들은 하나의 클라이언트 요청을 처리하는 동안 함께 접근되는 경우가 많습니다. HBase는 같은 Row에 대한 연산을 묶어 한 번에 실행시킬 수 있으므로 이 점을 잘 이용하면 성능상 이득을 얻을 수 있습니다. 비트윈의 데이터 구조처럼 특정 Row에 수많은 Column이 저장되고 같은 Row의 Column들에 함께 접근하는 경우가 많도록 설계되어 있다면 성능 향상을 기대할 수 있습니다. 특히 Haeinsa는 한 트랜잭션에 같은 Row에 대한 연산은 커밋시 한 번의 RPC로 묶어 처리하므로 RPC에 드는 비용을 최소화합니다. 실제 비트윈에서 가장 많이 일어나는 연산인 메시지 추가 연산은 그냥 HBase API를 이용하여 구현하는 것보다 Haeinsa Transaction API를 이용해 구현하는 것이 오히려 성능이 좋습니다.Column Qualifier의 구조비트윈은 커플들이 올린 사진 정보들을 저장하며, 또 사진들에 달리는 댓글 정보들도 저장합니다. 한 커플을 Root라고 생각하고 커플 밑에 달린 사진들을 커플의 자식 데이터, 또 사진 밑에 달린 댓글들을 사진의 자식 데이터라고 생각한다면, 비트윈의 데이터들을 논리적으로 트리 형태로 생각할 수 있습니다. 비트윈 개발팀은 Column Qualifier를 잘 정의하여 실제로 HBase에 저장할 때에도 데이터가 트리 형태로 저장되도록 설계하였습니다. 이렇게 트리 형태로 저장하기 위한 Key구조에 대해 자세히 알아보겠습니다.Column Qualifier를 설계할 때 성능을 위해 몇 가지 사항들을 고려해야 합니다. HBase에서는 한 Row에 여러 Column이 들어갈 수 있으며 Column들은 Column Qualifier로 정렬되어 저장됩니다. ColumnRangeFilter를 이용하면 Column에 대해 정렬 순서로 Scan연산이 가능합니다. 이 때 원하는 데이터를 순서대로 읽어야 하는 경우가 있는데 이를 위해 Scan시, 최대한 Sequential Read를 할 수 있도록 설계해야 합니다. 또한, HBase에서 데이터를 읽어올 때, 실제로 데이터를 읽어오는 단위인 Block에 대해 캐시를 하는데 이를 Block Cache라고 합니다. 실제로 같이 접근하는 경우가 빈번한 데이터들이 최대한 근접한 곳에 저장되도록 설계해야 Block Cache의 도움을 받을 수 있습니다.비트윈에서는 특정 커플의 사진이나 이벤트를 가져오는 등의 특정 타입으로 자식 데이터를 Scan해야하는 경우가 많습니다. 따라서 특정 타입의 데이터를 연속하게 저장하여 최대한 Sequential Read가 일어나도록 해야 합니다. 이 때문에 Column Qualifier가 가리키는 데이터의 타입을 맨 앞에 배치하여 같은 타입의 자식 데이터들끼리 연속하여 저장되도록 하였습니다. 만약 가리키는 데이터의 타입과 아이디가 Parent 정보 이후에 붙게 되면 사진 사이사이에 각 사진의 댓글 데이터가 끼어 저장됩니다. 이렇게 되면 사진들에 대한 데이터를 Scan시, 중간중간 저장된 댓글 데이터들 때문에 완벽한 Sequential Read가 일어나지 않게 되어 비효율적입니다.이렇게 특정 타입의 자식들을 연속하게 모아 저장하는 묶음을 컬렉션이라고 합니다. 컬렉션에는 컬렉션에 저장된 자식들의 개수나 새로운 자식을 추가할 때 발급할 아이디 등을 저장하는 Metadata가 있습니다. 이 Metadata도 특정 Column에 저장되므로 Metadata를 위한 Column Qualifier가 존재합니다. 이를 위해 Column Qualifier에는 Column Qualifier가 자칭하는 데이터가 Metadata인지 표현하는 필드가 있는데, 특이하게도 메타데이터임을 나타내는 값이 1이 아니라 0입니다. 이는 Metadata가 컬렉션의 맨 앞쪽에 위치하도록 하기 위함입니다. 컬렉션을 읽을 때 보통 맨 앞에서부터 읽는 경우가 많고, 동시에 Metadata에도 접근하는 경우가 많은데, 이 데이터가 인접하게 저장되어 있도록 하여 Block Cache 적중이 최대한 일어나도록 한 것입니다.Datastore 인터페이스비트윈에서는 이와 같은 데이터 구조에 접근하기 위해 Datastore라는 라이브러리를 구현하여 이를 이용하고 있습니다. HBase API를 그대로 이용하는 것보다 좀 더 쉽게 데이터에 접근할 수 있습니다. GAE의 Datastore와 같은 이름인데, 실제 인터페이스도 매우 유사합니다. 이 라이브러리의 인터페이스에 대해 간단히 알아보겠습니다.Key는 Datastore에서 HBase에 저장된 특정 데이터를 지칭하기 위한 클래스입니다. 논리적으로 트리 형태로 저장된 데이터 구조를 위해 부모 자식 관계를 이용하여 만들어 집니다.Key parentKey = new Key(MType.T_RELATIONSHIP, relId); Key photoKey = new Key(parentKey, MType.T_PHOTO, photoId); // 특정 커플 밑에 달린 사진에 대한 키 Datastore는 Key를 이용해 Row Key와 Column Qualifier를 만들어 낼 수 있습니다. Datastore는 이 정보를 바탕으로 HBase에 새로운 데이터를 저장하거나 저장된 데이터에 접근할 수 있는 메서드를 제공합니다. 아래 코드에서 MUser 클래스는 Thrift로 정의하여 자동 생성된 클래스이며, Datastore에서는 이 객체를 직렬화 하여 HBase에 저장합니다.MUser user = new MUser(); user.setNickname("Alice"); user.setGender(Gender.FEMALE); user.setStatus("Hello World!"); Key userKey = new Key(MType.T_USER, userId); getDatastore().put(userKey, user); user = getDatastore().get(userKey); getDatastore().delete(userKey); 또한, Datastore는 Key를 범위로 하여 Scan연산이 할 수 있도록 인터페이스를 제공합니다. Java에서 제공하는 Try-with-resource문을 이용하여 ResultScanner를 반드시 닫을 수 있도록 하고 있습니다. 내부적으로 일단 특정 크기만큼 배치로 가져오고 더 필요한 경우 더 가져오는 식으로 구현되어 있습니다.try (CloseableIterable> entries = getDatastore().subSibling(fromKey, fromInclusive, toKey, toInclusive)) { for (KeyValue entry : entries) { // do something } } Secondary Index 구현 방법HBase는 데이터를 Row Key나 Column Qualifier로 정렬하여 저장합니다. 이 순서로만 Sequential Read를 할 수 있으며 Key값을 통해 특정 데이터를 바로 임의 접근할 수 있습니다. 비트윈에서는 특정 달에 해당하는 이벤트들을 읽어오거나 특정 날짜의 사진들의 리스트를 조회하는 등 id 순서가 아니라 특정 값을 가지는 데이터를 순서대로 접근해야 하는 경우가 있습니다. 이럴 때에도 효율적으로 데이터에 접근하기 위해서는 id로 정렬된 것 외에 특정 값으로 데이터를 정렬할 수 있어야 합니다. 하지만 HBase에서는 이와 같은 Secondary Index 같은 기능을 제공하지 않습니다. 비트윈 개발팀은 이에 굴하지 않고 Secondary Index를 간단한 방법으로 구현하여 사용하고 있습니다.구현을 간단히 하기 위해 Secondary Index를 다른 데이터들과 마찬가지로 특정 타입의 데이터로 취급하여 구현하였습니다. 따라서 Index에 대해서도 Column Qualifier가 발급되며, 이때, Index에 해당하는 id를 잘 정의하여 원하는 순서의 Index를 만듭니다. 이런 식으로 원하는 순서로 데이터를 정렬하여 저장할 수 있으며 이 인덱스를 통해 특정 필드의 값의 순서대로 데이터를 조회하거나 특정 값을 가지는 데이터에 바로 임의 접근할 수 있습니다. 또한, Index에 실제 데이터를 그대로 복사하여 저장하여 Clustered Index처럼 동작하도록 하거나, Reference만 저장하여 Non-Clustered Index와 같이 동작하게 할 수도 있습니다. Datastore 라이브러리에는 특정 데이터가 추가, 삭제, 수정할 때 특정 코드를 실행할 수 있도록 Trigger 기능이 구현되어 있는데, 이를 통해 Index를 업데이트합니다. 데이터의 변경하는 연산과 Index를 업데이트하는 연산이 하나의 Haeinsa 트랜잭션을 통해 원자적으로 일어나므로 데이터의 무결성이 보장됩니다.못다 한 이야기각 테이블의 특정 Row의 Column들에 대한 Column Qualifier외에도 Row에 대한 Row Key를 정의 해야 합니다. 비트윈에서는 각 Row가 표현하는 Root객체에 대한 아이디를 그대로 Row Key로 이용합니다. 새로운 Root객체가 추가될 때 발급되는 아이디는 랜덤하게 생성하여 객체가 여러 Region 서버에 잘 분산될 수 있도록 하였습니다. 만약 Row Key를 연속하게 발급한다면 특정 Region 서버로 연산이 몰리게 되어 성능 확장에 어려움이 생길 수 있습니다.데이터를 저장할 때 Thrift를 이용하고 있는데, Thrift 때문에 생기는 문제가 있습니다. 비트윈에서 서버를 업데이트할 때 서비스 중지 시간을 최소화하기 위해 롤링 업데이트를 합니다. Thrift 객체에 새로운 필드가 생기는 경우, 롤링 업데이트 중간에는 일부 서버에만 새로운 Thift가 적용되어 있을 수 있습니다. 업데이트된 서버가 새로운 필드에 값을 넣어 저장했는데, 아직 업데이트가 안 된 서버가 이 데이터를 읽은 후 데이터를 다시 저장한다면 새로운 필드에 저장된 값이 사라지게 됩니다. Google Protocol Buffer의 경우, 다시 직렬화 할 때 정의되지 않은 필드도 처리해주기 때문에 문제가 없지만, Thrift의 경우에는 그렇지 않습니다. 비트윈에서는 새로운 Thrift를 적용한 과거 버전의 서버를 먼저 배포한 후, 업데이트된 서버를 다시 롤링 업데이트를 하는 식으로 이 문제를 해결하고 있습니다.
조회수 1855

2년 전, 비캔버스 초기 개발 가이드

이 자료는 2014년 7월, 지금으로부터 2년 4개월 전, 비캔버스를 개발하기 시작할 때 작성했던 문서다.본래 내부적으로 공유하고자 하는 목적으로 작성됐지만, 시간이 흘러 내용의 상당수가 변화하였고 제품 개발에 대한 비밀적인 자료보다 제품 철학, 디자인 철학에 대한 부분이 많아 공개하기로 하였다. 2년 전 자료인데다, 내부적으로 공유하고자 하는 목적에서 작성됐기 때문에 글이 컴팩트하지 않고, 내용의 전문성이 조금 떨어 질 지도 모르지만, 충분히 참고할 만한 자료로써 가치가 있다.이는 제품 개발뿐 아니라 사업 운영에 있어 과도하게 시간을 잡아먹는 단순 비판성 회의나, 대안 없는 불평을 해소하기 위한 목적도 있었다. 당시에는 제품 개발보다 중요한 것이 하나의 목적을 모든 팀원이 명확히 인지하고 일관된 움직임을 갖추게 만드는 것이라고 생각했다. 제품에서 드러나는 느낌, 마케팅 문구, 디자인, 기능 하나하나 매우 일관된 목소리를 갖추게 만드는 것이 이 당시의 목표였다.이 자료를 통해, 서비스를 처음 개발하고자 하는 팀, 회사가 조금이라도 도움이 되길 바라며 비캔버스를 사용하고 있는 사용자들은 비캔버스가 어떤 철학과 믿음을 토대로 세밀하게 설계됐는지 알 수 있는 자료가 될 것이다. 회사 이름이 지금과 다른데, 당시의 회사 이름은 오시리스시스템즈가 아닌 '조커팩' 이었다.본래, 외부에는 비공개되는 자료였다.                       사용자 중심(User-Centered) 제품에 대하여 사용자 중심 제품은 전적으로 사용자의 경험의 질을 향상시켜주는 것을 그 목적으로 한다. 가령,기존 제품이나 행동양식이 사용자에게 만족스러운 경험을 주었다면, 사용자 중심 제품은 사용자로 하여금 단편적 좋은 경험의 세계를 넘어선 초월적 경험 세계를 느끼게 해주는 데 있다. 좋은 제품을 넘어선 위대한 제품들은 이러한 초월적 시험 세계가 느끼게 해주는 실험적 낯섦을 사용자에게 주었기에 처음엔 바보 취급을 받았지만, 시간이 지나면서 경험의 표준양식으로 자리매김했다. 이렇게, 치밀하게 설계된 사용자 중심 제품을 사용하는 사용자는 제품을 경험하는 시간을 더욱 의미 있게 느끼게 되며, 경험의 시간을 길게 가져간다. 그제야 디자이너와 개발자가 설계한 UX 디자인이 효과를 발휘할 수 있다. 흔히들 착각하는 것이 UXD가 User Experience Design이기 때문에 이를 통해 사용자의 경험을 의미 있게 만들 수 있다는 것이다. 그러나, 초월적 경험은 단순한 UXD를 통해 발현되는 것이 아닌, 사용자 중심으로 설계된 제품 자체를 통해 발현된다고 본다. UXD는 이러한 사용자 중심 제품의 일부 과정이 되어야 하며, UXD에 대한 방향이 사용자 중심 제품을 만드는 데 선행되어선 안된다. UXD는 사용자가 경험의 시간을 길게 가져가지 않는다면 무용지물이다. 디자인 자체보다, 사용자에게 어떠한 실험적 세계를 보여줘서 경험을 초월시킬 것인가에 대한 고민이 중요하다. 비캔버스는 Whiteboard & Diagramming이라는 정해진 영역에 있는 소프트웨어다. 그러나, 기존 제품들이 제공하는 기능을 넘어서서 새로운 차원의 경험을 만들어내기 위해 설계되었다. 이는 단순한 기능의 추가로 인해 만들어지는 것이 아닌 브랜드 아이덴티티, 사회 연결망, 마케팅 믹스, 포지셔닝 등 복합적인 경험의 시스템적 강화로 만들어진다. 그리고 이는 세밀한 설계를 바탕으로 한 명확한 의도 아래 구성된다.‘비캔버스를 어떻게 만들고 어떤 기능을 어떻게 개발할 것인가?’에 대한 고민을 하면 결코 위대한 제품이 될 수 없다. ‘처음 비캔버스를 접한 사용자에게 어떻게 느껴질 것이며 어떠한 가치를 주어 초월적이고 낯선 경험을 하게 만들 것인가’에 대한 답을 내놓기 위해 모든 개발, 디자인 프로세스가 설계되어야 할 것이다. 이러한 개념은 흔히 알려진 사용자 경험과 UXD에 반하는 개념이다. 그러나, 위대한 제품을 만든 인물들은 이론적으로 만들어진 영혼을 제품 속에 불어넣지 않았다. 그들은 합리적이고 논리적인 이성과 추상적이고 표현 불가능한 직관을 결합시킨 새로운 차원의 영혼을 제품 속에 불어넣었다. 위대한 제품은 만들어진 이유에 대해 설명이 불가능하며, 사용자 또한 왜 제품을 사랑하는지 설명 불가능하다. 그것은 매우 낯설고 기이한 경험(사실은 치밀하게 설계된)에 의한 것이기 때문이다. 우리는 사용자 경험에 대한 새로운 시각을 가지고 개발에 임해야 할 것이다.     아이디어를 필터링하는 11가지 질문들                 모든 개발, 디자인에 대한 사항은 아래와 같은 기본적 필터링을 거쳐야 한다. 앞서 언급했던 여러가지 제품 개발 철학들이 이 필터에 포함되며, 이러한 필터링을 거치지 않은 개발, 디자인 관련 아이디어들은 기본적으로 무시된다. 이 필터는 우리의 제품 개발 방향을 크게 선회하여 철학 전체가 흔들리지 않는 이상 유효하다. - Collect & Share anything 의 정신에 위배되지 않는가?- 극도의 사용성과 경험을 해치지 않는가? 가령, 크게 필요하지 않은 장식적 기능이 아닌가?- 직관의 근거가 있거나 데이터 기반의 논리적 근거를 가지고 있는가? - 해당 기능, 디자인이 자신이 만들고 싶은 세계를 만들어 나가는 데 필요한 것인가?- 해당 기능, 디자인을 접했을 때 기이하고 낯설은가? 그 낯섦이 초월적 경험을 줄 것 같은가?- BeeCanvas의 전체적인 시각적, 기능적 통일성(Unity)을 해치지 않는가?- 이 기능, 디자인이 고객에게 제공할 가치에 대해 충분히 고민했는가? 쉽게 떠올릴 수 있는가?- 경쟁사는 이 기능, 디자인을 제공하고 있지 않은가? 쉽게 따라오기 힘든 것인가? - 이와 비슷한 경험을 접한 적이 있는가? 즉, 메타포를 가지고 있는가?- 적어도 자신이라도 정말로 쓰고 싶은 기능, 디자인인가?- BeeCanvas가 만들어갈 세상과 아이디어를 정교하게 연결시킬 수 있는 인과를 준비했는가? 이 11가지 필터링에도 통과한 아이디어라면 충분한 회의를 통해 관철되어야 할 것이다. 경험과 가치에 대한 확신이 충분한 아이디어는 존중받아야 하며, 이는 아이디어를 고려하는 시간을 의미 있게 만들어줄 것이다. 그러나, 이러한 필터링을 전혀 통과하지 못하는 아이디어는 팀원들의 시간만 축낼 것이다. 끔찍한 아이디어는 전반적인 팀원들의 사고의 틀을 더욱 하향 평준화시킨다. 위대한 아이디어들이 만연할 때, 팀은 가장 강력하고 활기를 띤다고 본다. 사람들이 원하는 기능에 대한 고민은 지속적으로 이뤄져야 할 부분이다. 위와 같은 프레임 내에서 충분하고 의미 있게 고민된 아이디어를 통해 비캔버스가 만들어갈 세상을 구체화시켜 나가야 한다.                         비캔버스에서의 인간-컴퓨터 상호작용(HCI) 요소 인간-컴퓨터 상호작용(HCI)에서 가장 중요한 것은 인간이다. 인간은 컴퓨터를 통해 현실 문제를해결하려 한다. 컴퓨팅 파워가 점점 더 강해 짐에 따라, 단순히 문제를 해결하는 솔루션을 넘어선 효과적인 상호작용을 통해 더욱 초월적 경험을 하는 데 의미가 있어졌다. 이러한 흐름에 답하는 것이 HCI다. HCI는 특정 경험 시간(Iteration)에 대해 컴퓨터가 제공하는 어떠한 경험적 상호작용을 통해 이뤄지는 것이다. 이 상호작용은 ‘벽’으로 정의할 수 있다.                         위와 같이 인간과 시간이 제품과 만났을 때 실현되는 무언가(things)가 초월적 경험을 이끌어내는 비밀이다. 그 비밀이 비캔버스가 마땅히 가져야 할 제품 철학이라고 본다면, 이 제품이 어떤 존재여야 하는가에 대한 고민이 중요하다. 어차피 제품을 접한 사용자는 필연적으로 시간을 투여하게 돼있기 때문이다. 이러한 설계가 얼마나 치열하고 견고하게 설계됐는지에 따라 사용자가 제품에 투입하는 시간의 양도 더욱 커지며, 그에 따라 제품이 제공하는 가치의 합도 커진다.  비캔버스가 제공하는 원론적인 가치는 무엇일까? 그것은 '기록과 표현의 자율성'이다.                       우리는 위의 '텍스트 입력 대기' 마우스 포인터가 가진 한계를 넘어서고자 한다. 인간은 종이에서 자유로웠고 효과적으로 생각을 정리하고 공유했지만, 컴퓨터를 통해 한계를 가진 document를 수없이 양산해왔다. 결과적으로 인간은 인터넷이 가진 특성으로 인해 공유의 속도를 넓혀 사회관계망을 더욱 확장시켰음에도 불구하고 생각의 흐름은 더욱 후퇴했다. 비캔버스는 이러한 사고의 한계를 무너뜨리고 더욱 자유로운 Document sharing, Knowledge sharing이 가능한 화이트보드를 제공한다. 이를 통해 사용자는 자신도 인지하지 못하는 사이에 더욱 효과적으로 생각을 정리할 수 있게 된다.아주 미묘한 Interaction의 변화로 탁월한 성과가 만들어질 수 있는 것이다. 이러한 경험을 한 사용자는 자연스럽게 비 캔버스에 Lock-In 될 수밖에 없다.                     우리가 지향하는 마우스 포인터는 위와 같은 형태다. 이것이 컴퓨터의 미래가 될 것이다. 생각의 틀을 가둔 채로 생산성을 기대하긴 힘들다. 둘째로, 폐쇄적 인터랙션 대신 개방적 인터랙션이 가능하다. 월드와이드 웹은 분명하게 열려있는데, 늘 소프트웨어를 사용할 땐 가입을 하거나, 학습을 하는 등 장애물(Huddle)이 존재한다. 이 때문에 과거 소프트웨어가 효율성이 떨어짐에도 답습하는 경우가 많다. 진정한 월드와이드 웹의 산물은 자율성이 높고 개방적 인터랙션이 가능해야만 한다. 우리는 Sharing 한 보드를 접근함에 있어 어떠한 제약도 갖지 않는다. 가입도 필요 없고 학습도 필요 없다. 직관적으로 사용하면 된다. 그제품이 가치 있는지, 그 경험이 초월적이었는지 사용자가 결정하는 것은 그다음 문제다. 셋째로, 현실 오브제의 메타포를 활용한다. 가령, 포스트잇에 우리는 많은 글을 쓰지 않는다. 그럼에도 불구하고 많은 소프트웨어들이 포스트잇 형태의 메모장을 제공한다. 또한, 현실에서는 사진과 포스트잇을 함께 붙일 경우 반드시 사진 위에 포스트잇이 덮는 형태다. 그러나, 많은 소프트웨어들이 사진이 ‘가장 앞으로 오게 배치’ 할 수 있는 기능을 제공한다. 현실의 메타포를 무시하면 인류의 DNA에 내포된 휴리스틱(Heuristic)과 심성 모형(Mental model)을 파괴하여 혼란스러운 인터랙션을 만들어낸다. 비캔버스는 현실 오브제의 메타포를 충실히 적용해야 한다. 마지막으로, 손에 집혀야 한다. 에버노트, 트렐로 등 유익한 소프트웨어가 많지만, 정작 많은 사용자들이 실제 노트를 손에 잡는 경우가 많다. 컴퓨터에 있는 소프트웨어는 손에 쉽게 잡히지 않는 법이다. 이를 막기 위해 사용자들이 업무상 반드시 접속해야 하는 ‘이메일’, ‘구글 닥스’, ‘브라우저’ 등에서 비캔버스로 바로 접근할 수 있어야 한다. 비캔버스를 이용하기 위해 비캔버스에 접속하는 것을 막는 것이 가장 중요하다. 인간은 의도를 가지고 행동하는 존재가 아니다. 이를 중심으로 효과적인 인터랙션을 설계해 나갈 것이다. 이 네 가지 요소에 충실하게 개발한다면, 인류에게 더 높은 차원의 가치를 선보일 수 있을 것이다. 아주 단순한 소프트웨어지만 삶에서 결코 떨어질 수 없는 Daily 소프트웨어가 되어야만 한다. 이를 위해, 끊임없이 인류에 대해 고민하고, 탐구하고, 관찰해야 한다.                   정보구조 (Information Architecture)비캔버스의 정보구조는 굉장히 단순하다. 깊이(Depth)가 낮으면서도 선택권이 다양하지도 않아효과적이다. 이러한 정보구조가 가능한 이유는 Canvas.html이 내적으로 순환(circulation)하는 구조적 특징을 갖기 때문이다. 즉, 실제 페이지는 훨씬 더 많아질 수 있지만 모든 페이지는 canvas.html으로 생성되고 관리된다. 이 수많은 페이지들은 canvas.html 내에서 인덱싱 되고 접근할 수 있다. 이로 인해, 사용자들은 매우 편리하고 쉽게 비캔버스를 이용할 수 있다. 초기 페이지에서 클릭 가능한 버튼이 적은 것도 큰 장점이다. 정보구조가 단순하다는 것을 사용자에게 어필하고 그에 따라 심리적 접근 장벽을 허물 수 있다. promotion 페이지는 사용자가 로그인을 하게 되면 더 이상 보이지 않는다. 이는 조금이라도 더 적은 클릭 이벤트로 서비스 이용의 목적을 달성 (canvas.html 진입)할 수 있게 하기 위함이다. 사용자는 이러한 간결한 정보구조를 손쉽게 탐험할 수 있고, 내비게이션 메뉴에 대한 학습이 필요 없는 손쉬운 웹서비스를 접할 수 있다. 가입자로부터 board를 Sharing 받은 Guest 사용자의 경우 canvas.html 상위에 존재하는 모든 구조가 무시되니 더욱더 쉽고 편리하게 접근할 수 있다.               JOKERPACK 개발 철학 기본적으로 JOKERPACK은 현재의 패러다임이 파괴될 수 있다고 믿는다. 당연시되는 많은 것들에 대해 의심하고 탐구하지 않는다면, 의미 있고 위대한 결과물을 세상에 내놓을 수 없다. ‘개선’이 아닌 ‘혁명’을 위하여 제한된 시간을 투입할 것이다. JOKERPACK이 믿는 것은 초월적이고 실험적인 세상의 창조가 인류의 진화를 가져온다는 것이다. 따라서, 우리의 사업제안에 대해 다수가 동의하거나 인정한다면, 이는 우리가 원하는 길이 아니다. 새로운 세계를 접한다는 것은 낯설어야만 한다. 때로는 무섭고, 불쾌하고 거부하고 싶기도 해야만 한다. 그 세계가 온전히 자리매김하기 전까지 우리의 제품은 절대로 인정받아선 안된다. 우리가 할 일은 그 기간을 단축시키는 것이다. 이를 위해선 빠른 개발이 선행돼야 한다. 빠르게 개발하여 선구적인 사용자들에게 새로운 세계에 대해 접하게 해준다. 그들이 완전히 이러한 낯섦을 수용할 때, 대중들 또한 우리 제품에 사로잡힐 것이다. “더 빠르게 개발하고, 더욱 저렴하게 내놓는다”시장에서 가장 중요한 것은 제품이며 그다음은 가격이다. 가격은 사용자의 진입장벽을 허물고 더욱 광범위 한 시장 확산을 가능하게 만든다. 브랜드와 마케팅은 그다음이다. 과거에는 마케팅이 제품보다, 가격보다 중요했다. 그러나, 이제 소비자들은 현명해졌고 제품이 제공하는 가격에 비해 터무니없는 품질을 제공한다는 것을 소름 끼치도록 빠르게 깨우친다. 사용자들은 무엇을 원하는지, 무엇이 잘못되었는 지를 명확하게 설명할 수 없을지라도, 무언가가 잘못되고 있다는 것은 반드시 알아차린다. 브랜드는 우리가 이러한 세계를 표준화시켰을 때 비로소 생겨난다. 브랜딩은 마케팅 프로세스에서 발생하는 것이 아닌, 제품 개발에 따른 모든 체인들이 유기적으로 결합됐을 때 결과적으로 만들어지는 것이라 믿는다. 인위적으로 설계한 브랜드는 절대로 사용자로부터 인정받는 브랜드가 될 수없다.  이것이 우리가 JOKERPACK에 모인 이유이며, 개발을 위해 한 줄 한 줄 코딩을 이어나가고 있는 이유다. 우리는 내면의 소리에 귀를 기울인다. 우리의 신념이 비록 틀렸을 지라도, 다른 이의 신념에 기대어 제품을 개발하는 것보단 우리 내면의 소리에 의해 실패하는 것이 더욱 행복하다는 것을 믿는다.                   제품 선언문 실패할 것이 두려웠으면 시작도 안 했다. 우리는 우리가 지향하는 세상을 만들기 위해서라면 어떠한 일도 해낼 수 있다. 우리는 현재 당연시되는 Document sharing 프로세스를 뒤엎고 더 나은 인터넷 세상을 만들기 위해 BeeCanvas를 내놓을 것이다. “BeeCanvas는 마땅히 이래야만 한다” - 너무나도 쉽고 직관적이어서 그것이 마치 원래 존재했어야 하는 제품으로 여겨져야만 한다.- 손에 잡히는 곳에 있어서, 매일매일 빠짐없이 BeeCanvas가 이용되어야만 한다. - BeeCanvas를 쓰는 평범한 팀이 위대한 성과를 낼 수 있어야만 한다.- 너무나도 센세이션하고 파격적이어서, 그것이 형편없더라도 주목이 되어야만 한다.- 일관성 있는 디자인으로, BeeCanvas의 디자인적 아이덴티티가 명백해야만 한다.- 사용자들의 사회관계망을 확장시키고, 그 관계를 의미 있게 만들어 내야만 한다. - 어떠한 장벽 없이 빠르게 접근할 수 있어야만 한다. 필요 없는 절차는 모두 제외한다.- 무엇을 넣을 지보다 무엇을 뺄 지에 대해 고민한다. 그를 위한 ‘중심’을 모든 팀원이 인지한다. - 자유도가 높아서 다양한 방법으로 사용 시나리오(Use case)를 확장시킬 수 있어야 한다.- 수단과 방법을 가리지 않고 BeeCanvas를 처음 접하는 사용자들이 ‘와~’하도록 만든다.- 돈을 벌 특별한 방법을 찾기보다, 가치를 제공해줄 특별한 방법에 대해 고민한다.- 적어도 개발자인 우리들이라도 BeeCanvas가 없다면 살 수 없도록, 의존성을 창출한다.- 내면의 소리가 거부하면 즉시, 개발을 멈추고, 그 근거를 명확하게 머릿속으로 그려본다.- 뛰어난 Look&Feel을 가져야만 하며, Look과 Feel에는 명확한 근거가 있어야 한다.                   전체적인 디자인 철학과 Look & Feel 비캔버스의 디자인의 중심은 사용성(Usability)과 미니멀리즘이다. 사물은 표현되지 않았을 때가장 아름답다. 비캔버스는 더욱이 캔버스가 중요하기 때문에 개별 요소들은 절대 강조되어선 안된다. 이러한 이유로, 장식적 이어선 안된다. 그러나, 동시에 너무 단순해도 안된다. 중도를 찾아가는 것이 비캔버스 디자인의 핵심이다. 좋은 디자인은 아름답지만, 위대한 디자인은 사용자를 디자이너의 의도대로 컨트롤할 수 있게 한다. 우리가 믿는 것을 그들이 믿게 만들고, 우리가 보는 것을 그들이 보게 만든다. 착시현상이나, 게슈탈트 법칙 등 많은 디자인 이론들을 총동원하여 사용자의 감각을 무력화하고, 새로운 지각 세계를 만들어나가야만 한다. 이를 위해, 디자인이 지속적으로 개선 작업을 거칠 것이다. 디자이너의 숙명은 이러한 비캔버스와 JOKERPACK의 디자인 철학에 위배되지 않으면서도 아름다운 디자인을 해내는 것이다. 특별하지 않으면서 평범하지도 않은, 장식적이지 않으면서 단순하지도 않은, 낯설게 느껴지지만 익숙하기도 한 예술의 영역을 창조해야만 한다. 따라서, 과도한 벤치마킹은 경계돼야 한다. 디자인 설계에 앞서 아이덴티티를 고려하고, 아이덴티티를 고려함에 앞서 JOKERPACK의 철학적 중심을 고려해야 한다. 디자이너의 개인 취향은 이러한 중심에서 벗어날 경우 철저히 무시된다. 어떠한 것을 믿는지, 내면의 소리가 무엇을 말했는지, 비캔버스가 이러한 디자인을 입고 어떤 모습으로 어떠한 가치를 줄 수 있는지에 대해 고민해야만 한다. 원론적인 고민이 끝난 후에 그를 아름답게 만드는 것이다. 인간에게는 기본적인 휴리스틱(Heuristic)이 있다. 이는 어느 정도의 보편타당함을 지니며, 인간이 기대하는 심성 모형(Mental model) 또한 일정한 패턴을 갖는다. 디자이너는 이러한 패턴을 면밀하게 분석하여 사용자의 인터랙션과 시스템의 인터랙션이 반하지 않도록 디자인을 설계해야 한다. 꾸미는 것은 3류나 하는 일이다. JOKERPACK의 디자이너는 꾸미지 않고 설계해야 한다. 디자인은 실용적인 예술의 일부분이며, 근본적으로 예술 태생이라고 믿는다. 누군가의 실험적 예술이 표준화되고 상업화 가능해질 경우 디자인이 되는 것이라고 본다. 즉, 모든 예술은 하나의 뿌리를 갖고 있기 때문에, 사용자들이 비캔버스의 디자인을 접했을 때 내면에서 어떤 음악같은 것이 떠올라야 한다. 이렇게 사용자들이 떠올리게 될 음악을 생각하며 제품을 디자인 하면 딱딱하고 진부한 GUI에 리듬감과 생명력이 생긴다. 청각적으로 지각되는 Feel의 영역을 시각적으로 옮긴다면 비캔버스가 분명히 강력하고 통합적인 디자인 스펙을 가질 것이라고 확신한다. 근본 없는 디자인을 경계해야 한다. 근본 없는 디자인은 근본 없이 떠나간다. 사람들의 뇌리에도 박히지 않으며, 다시금 찾게 만드는 매력도 없다. 디자인은 브랜드의 일부이며, 개발의 일부다. 이런 게 모듈별로 모두 명세돼있다. 너무 길기 때문에 생략.                   향후 개발 방향 공유 기능을 강화한다. 캔버스의 기본적 개발이 모두 이뤄지면 공유 기능을 강화하여, 어디서든 쉽고 빠르게 공유될 수 있다는 것을 사용자가 느낄 수 있게 만들어야 한다. 이에 앞서, 아직 해결되지 못한 Canvas 내부의 개발 이슈들을 trouble shooting 하는 것이 우선이기 때문에, 지속적으로 빠르고 신중하게 개발을 이뤄나가야 할 것이다. 또한, 현재 js파일 하나에 과도하게 코드가 몰려있어 유지보수가 힘들다. 모두 분할하고 리팩토링하여 유지보수 생산성을 높이고, 코드의 유닛 테스트도 수월하게 만들어야만 할 것이다. Microsoft Azure를 이용해 서버 운영비를 추산하고, 이에 따라 프리미엄 유저의 가격정책도 세워나가야 한다. 그를 위해 Azure에 대한 기본적인 지식을 습득하여 서버 운영에 있어 어떠한 오류도 발생하지 않도록 해야 한다. 커스텀 템플릿은 공유 기능이 완벽해질 때까지 JOKERPACK 내부적으로 계속 만들어서 사용자에게 유포한다. 이는 어떠한 템플릿이 인기가 많은 지에 대한 데이터를 모을 수 있게 할 것이다. 축적된 데이터를 분석하여 후에 개발할 커스텀 템플릿 에디터의 개발방향도 세울 수 있으니 일석이조다. 힘든 개발이고, 앞으로 더욱 힘들어지겠지만 그만큼 가치 있는 웹서비스가 될 것이다. 결과를 돌아보면 우리가 BeeCanvas 개발에 참여했다는 것이 자랑스럽게 느껴질 날이 반드시 올 것이다. 그를 위해 넷이 한마음으로 뭉쳐서 지옥을 다녀와야 한다.
조회수 1219

끈기 있게 도전하라! 기본을 다지는 지반 전문가 ENG센터 TA그룹 '김하영 마스터'

삼성물산 건설부문에서 최근 홍콩 뉴타운 매립공사를 수주했다는 소식 전해드렸죠! 여의도 면적의 절반에 달하는 134ha 면적의 바다를 매립해 집을 짓게 되는데요, 이를 위해서는 땅이 단단해야 하고 여러 위험상황도 사전에 확인을 해야 합니다. 최근 동북아 지역에서 발생하는 지진으로 인해 이에 대한 경각심 역시 매우 커지고 있습니다. 지반 연구를 위해 한 평생을 바쳐 삼성물산 건설부문 마스터 자리까지 오른 오늘의 주인공! ENG센터 TA그룹 김하영 마스터 님을 만나 보겠습니다. 안녕하세요, 김하영 마스터 님! 간단한 자기소개 부탁 드립니다~삼성물산 건설부문 2018년 신임 마스터 김하영입니다. ‘마스터(Master)’라는 새로운 직급으로의 승진은 어려운 직장생활에도 불구하고, 동료, 선후배들과 함께 한 우물을 파온 결과라고 생각해 매우 기쁘게 생각하고 있습니다. 앞으로 엔지니어로서 자부심을 가지고 열심히 일하겠습니다 :)* ’마스터(Master)’란? 삼성물산 건설부문의 임원급 직책 중 하나로 해당 분야에서 세계 수준의 기술 전문가를 의미합니다.마스터 님의 전문 영역인 ‘지반 전문가’란 어떤 일을 하시는지 간단한 설명 부탁 드립니다.  건물을 올리기 전, 지반의 상태를 파악하고 리스크를 최소화하는 방안을 찾는 일을 합니다. 쉽게 말해서 ‘피사의 사탑’을 만들지 않도록 땅을 단단하게 만드는 것이죠. 피사의 사탑이 발생할 수 밖에 없었던 원인은 지반이 탑의 하중을 견딜 수 없는 연약지반이었기 때문입니다. 공사 중 계속해서 발생하는 건물의 기울어짐 때문에 무려 199년간 공사를 했다고 합니다. 현재는 기울어진 모습 때문에 전세계인이 찾는 관광지가 되었지만, 전문가 입장에서는 일어나서는 안 되는 일입니다. 지반이 모래처럼 무른 경우나 암반처럼 단단한 경우 이용하는 공법이 다릅니다. 지반 전문가는 사전에 지반의 특성을 파악하고, 적절한 공법을 적용하여 구조물이 침하되지 않게 하는 역할을 합니다.  ▲ 지반 연구에 대한 설명을 하는 김하영 마스터입사 전 오랫동안 토질 관련 연구를 해오신 것으로 알고 있습니다. 특히나 요새 우리나라가 지진의 영향권에 들어와서 마스터 님의 연구분야는 매우 흥미로운데요, 어떠한 점에서 실무와 연결이 되고 있는지, 또한 앞으로 이러한 점이 건설분야에서 보완이 되어야 한다 하는 것이 있을까요?학교를 다닐 때부터 토목을 전공하며 관심을 많이 갖고 있었는데요, 지반 연구라는 한 길만 꾸준히 파면서 박사 과정까지 오랜 시간 연구해 왔습니다. 또한 박사과정을 마치고, 일본회사의 연구소에 입사해서는 지반에 대한 실험과 해석한 결과를 실제 현장의 설계에 반영하기도 했습니다. 이러한 것들이 개인적으로는 자산이 되어, 삼성물산에 입사해서도 지반 Risk Hedge 및 현장 기술지원을 할 수 있었습니다. 일본에서 지반 연구를 하셨는데요, 혹시 위험한 지진을 경험하신 적이 있으신가요?교토대 대학원 석사과정 1학년 때, 한신대지진(1995년)을 경험했습니다. 밤에 잠을 자다가 무언가 오고 있다는 느낌이 들어 눈을 뜨고 앉아 있었습니다. 얼마 지나지 않아 심한 진동이 시작되며 지진을 경험하게 되었습니다. 다행히 저는 큰 피해를 입지 않았지만 교수님이 수업에 못 들어 오시기도 하고, 유학생 친구들 중에는 집이 무너져서 한국으로 잠시 귀국하기도 했습니다. 지진 발생 후에는 교수님 및 다른 연구생들과 함께 여러 차례 현장 답사도 다니고, 배를 타고 나가 방파제가 침하된 원인을 조사하기도 했습니다.국내에서 지진이 발생할 때마다 반짝 이루어지는 단발성 지진 연구로는 장기적인 지진에 대비하기 어렵습니다. 지속적인 관심을 가지고 국가적 차원에서 지진에 대한 대책 연구를 진행하고, 설계기준에 맞는 CODE 마련이 필요할 것으로 예상합니다. 일본에서 원심모형실험을 주로 하셨다고 들었습니다. 원심모형실험이란 어떤 것이며, 지반 구조물과 어떤 상관관계가 있는지요? 지반 실험을 할 때, 실물 실험을 할 수 없기 때문에 축소모형 실험을 합니다. 그런데 축소모형실험의 가장 큰 단점은 지반 내부의 응력조건을 만족시킬 수 없다는 것입니다. 원심모형실험은 이 문제를 해결하기 위하여 1/100의 축소모형실험을 100G의 원심력장에서 합니다. 이렇게 하면 실제 현장의 지반 상태와 똑같은 응력조건을 만들어 실물에서 하는 것과 거의 같은 조건으로 시험을 해 볼 수 있는 장점이 있습니다.비용도 많이 들고 실험 준비 기간이 길다는 단점도 있지만, 연구 활동을 하면서 실험을 많이 해보았던 것이 저에게는 좋은 경험이 되었습니다. 수많은 현장을 직접 찾아 다니시면서 기술 지원을 해 주신 것으로 알고 있습니다. 가장 인상 깊었던 현장은 어디였는지요?입사해서 얼마 되지 않을 때 지원했던 부산신항남컨준설토 투기장 공사입니다. SCP(Sand Compaction Pile)공법으로 지반을 개량하는 공사였는데 워낙 깊어서 모래가 잘 다져지지 않고 솟구쳐 오르는 문제가 있었습니다. 대책 마련을 위해 1주일간 밤낮으로 해상에서 직원들과 함께 했었습니다. 흙탕물에 온 몸이 젖어 덜덜 떨었던 기억이 있네요. 결국은 발전기 오류로 밝혀져 이를 교체하면서 문제를 해결했습니다. 모두가 함께 힘을 합쳐 해결했을 때 다 함께 기뻐하며 좋아했던 기억이 많이 남아있네요.  ▲ 2016년 교육생들과 함께한 현장 탐방 모습 (우측 첫 번째)가장 보람 있었던 현장은 어디였는지요? 당시 현장에서 어려움은 없었는지도 궁금합니다. 싱가포르 마리나 해안 고속도로 (MCE C483/C486) 현장이 기억에 많이 남습니다. 이렇게 대규모의 DCM지반개량공사를 우리회사에서는 처음으로 한 것으로 기억합니다. 국내DCM시공업체 실사를 해 보았지만, 체계적이지 못했고 시멘트량을 과다하게 사용함에도 불구하고 품질에 대한 우려도 있었습니다. 시공을 빨리 빨리 진행하려고 하는 분위기 속에서 끝없는 설득을 통해 철저한 사전 시험을 진행하도록 유도하였습니다. 실내시험 – 현장시험시공 – 본시공의 프로세스를 통해 적정 시멘트량 선정, 시공 싸이클 선정, 품질관리를 하며 진행했습니다.특히, 당시 관행대로 사용하던 ‘포틀랜트 시멘트’로 빨리 진행하자는 목소리가 있었지만 흙의 종류에 맞는 ‘고로 슬래그’라는 시멘트를 사용하기를 제안 했습니다. 이에 따라 시멘트량을 1m3당 250kg에서 200kg으로 낮출 수 있었고, 시공원가도 절감하게 되었습니다. 여러 업체의 참여를 통해 품질은 높이고 단가를 낮춰 진행해 시공원가 약 600억 절감이라는 긍정적인 성과도 있었기에 기억에 많이 남는 현장입니다. DCM(Deep Cement Mixing, 바다 밑 땅에 구멍을 뚫고 시멘트를 섞어 더 단단하게 만드는 공법) 공법을 대부분 지원해 주셨는데요, 최근에 수주한 퉁충 매립프로젝트도 DCM 공법이 주요 공법이라고 들었습니다. 이번 수주과정에서 마스터 님께서 맡으신 부분은 어떤 것이었는지요? 이 현장에서는 Cost Saving Design의 적정성에 대하여 입찰팀과 긴밀하게 협의하여 적용할 것은 하고, 제외할 부분을 정해 최적설계를 하는데 도움을 주었습니다. DCM공법은 Risk를 도출하여 시공 가능성을 판단하여 시공에 어려움이 없고 원가에도 도움이 될 수 있도록 변경하였고, 적정 시멘트량과 관련한 도움을 주어 최종적으로 수주에 기여하게 되어 저 역시 매우 기뻤습니다. ▲ 지반 연구에 대한 설명 중이신 김하영 마스터2014년도에는 특허청에 지반개량용 교반기 디자인 등록도 하신 것으로 알고 있습니다. 교반기는 무엇인지, 또 등록하신 디자인의 특징 설명 부탁 드립니다.부산신항방파제공사에서는 지반 상부 12m를 모래로 치환되어 있고, 중간중간 큰 사석이 들어있어서 DCM지반개량이 어려웠습니다. 교반기는 시멘트를 반죽하는 기구(날개)라고 볼 수 있는데요, 기존 교반기는 밑이 뾰족하지 않은 편평한 형태여서 돌에 걸려서 교반기가 깨지고 굴착하지 못하는 경우가 많았습니다. 이를 극복하고 원활하게 지반개량이 이루어질 수 있도록 교반기 선단을 스크류 비트로 약 45도 각도로 디자인하는 아이디어를 냈습니다. 지반을 파고 내려가다 장애물이 나타나면 45도로 만들어진 부분이 자연스럽게 밀려나도록 디자인하여 교반기가 부러지는 문제 발생하지 않도록 진행한 것이죠, 그 결과, 성공적으로 시공을 마무리 할 수 있었고, 그 아이디어에 대한 디자인 등록을 한 것입니다.공사기간이 길다 보니 한 해에도 여러 현장을 이동하며 기술지도를 하시는 것으로 알고 있는데, 현장 근무 시 가장 어려운 점이나 주의를 기울이시는 부분은 어떤 것이 있나요?현장은 재미있고 보람이 있어 좋아합니다. 같은 기간에 여러 개의 현장을 확인해야 하는 어려움도 많은데, 1주일에 3개 이상의 현장을 계속해서 돌아다닌 적도 있습니다. 현장에서 가장 주의를 기울이는 것은 기술사고로 연결될 수 있는 가능성이 있는지 리스크를 파악하는 일 입니다. 지반 공사를 할 때, 하루 종일 시공 상황을 지켜볼 때도 있습니다. 그럴 경우, 개인적으로 사진도 찍고 영상도 찍어두는 편입니다. 그러면 시공현장 담당자들이 그 자료 공유를 요청해 함께 고민하고 참고하는 경우도 있어요, 가끔은 기본을 관찰하면서 문제점에 대한 해답을 얻을 때도 있습니다. 그러나 일명 ‘메뚜기’로 불리는 숙소 간 이동 생활은 적응하기 힘든 부분이 많죠. 여러 현장을 이동하면서 숙소가 매번 바뀌기 때문에 숙면을 취하기가 어려운 환경이 저에게는 가장 큰 애로사항으로 볼 수 있습니다.지반 개량을 통한 기술 리스크 예방에 기여하는 업무를 할 때, 어떤 점을 가장 신경 쓰시는지요? 원칙은 기술 리스크 예방이고, 예방활동을 통해서 부수적으로 원가 절감과 공기단축을 이룰 수 있는지를 확인합니다. 무조건적으로 예산 절감만을 우선하지는 않습니다. 지반개량에서 원가가 절감되면 공기단축에 효과가 있기 때문에 현장여건과 리스크 예방 두 측면에서 면밀히 검토하여 실행하는 편이죠.원가절감은 최적설계이기 때문에 면밀한 검토가 이루어지지 않으면 자칫 원가차질이 될 수도 있는 문제이기 때문에 부담감이 있는 것이 사실입니다. 리스크를 없애는 방안을 고려하면서도 현장에 도움이 되는 정도를 모두 고려하여 판단하는 것이 가장 중요하다고 생각하고 있습니다.사내에서 다양한 교육과정에 강사로 활약해 주셨는데요, 어떤 내용을 주로 강연하시는지요? 그리고 가장 인상 깊었던 제자가 있다면 누구인가요? 그 동안 현장에서도 하고, 실내에서도 교육은 종종 진행해왔습니다. 연약지반 전반에 대해서 교육을 하고, 현장에 따라 특별한 현안이 있을 경우 거기에 맞는 교육을 진행하고 있습니다. 장기적으로 교육을 진행한 경우는 작년(‘17년)에는 8개월여동안 함께한 인프라본부의 문성주 선임이 처음이었습니다. 문 선임이 처음에는 지반에 대한 지식이 부족한 상태였지만, 전문지식뿐만 아니라 문제에 대한 접근 방법, 엔지니어로서의 기본 소양 및 현장 케이스 스터디를 하며 일대일 집중 교육을 실시했습니다. 문 선임은 성실히 교육을 받고 나름의 연구 성과발표도 하면서 교육 마무리 시점에는 처음보다 실력이 상당히 향상되어 매우 보람이 있었습니다. 첫 장기 교육생으로 저를 잘 따라와줘서 뿌듯했고, 앞으로도 계속 후배 교육을 진행하고 싶은 소망이 있습니다. 올해에도 교육생 모집을 실시할 예정이며 1:1로 집중적인 교육을 진행하면 좋을 것 같습니다.  ▲ 김하영 마스터(우측 세 번째)와 문성주 선임(우측 네 번째)과 멘토링 교육생들의 성과발표회 현장현장에서 근무하실 때와 본사 사무실에서 일을 하실 때 차이가 있을 것 같은데요. 어느 곳을 더 선호하시나요? 개인적으로 현장에서 직접 관찰하고 연구하는 것이 더 좋습니다. 이유는 현장에 있어야 더 확실하고 빠르게 문제를 파악하고 해결책도 찾을 수 있기 때문이죠. 사무실에 앉아 현장 상황을 문서로 받아 볼 수도 있지만 그렇게 간접적으로 1단계를 거쳐서 전달을 받으면 필요한 것과 불필요한 것의 구분이 어려워 문제 해결책을 세우는데 더 많은 시간이 소요됩니다. 또 문서로 확인하는 경우, 현장 이야기와 달라질 수도 있기 때문에 현장에 직접 가서 확인하고 해결하는 과정을 더 선호하는 편입니다.  3월 중 홍콩 퉁충 프로젝트 현장에도 가볼 예정입니다. 입찰 때와 같은 내용으로 프로세스가 잘 진행이 되고 있는지 추가 협의하거나 문제는 없는지 등을 확인해보려고 합니다. 혹시나 발생할지도 모르는 사소한 문제라도 현장에 직접 제 눈으로 확인하면서 크고 작은 리스크를 예방할 수 있도록 현장 직원과 이야기를 나누며 히스토리를 파악하고 올 예정입니다.▲ 집무실에서 업무 진행하는 김하영 마스터후배 엔지니어들을 위해 꼭 필요한 혹은 배워야 할 기술이나 태도가 있다면 어떤 것이 있을지 조언 부탁 드립니다.항상 새로운 기술에 대해서 관심을 갖는 것이 중요하다고 생각합니다. 지금 맡고 있는 업무에만 집중하며 안주해서는 안되고, 끊임없는 탐구자가 되어야 합니다. 워낙 빠르게 세상이 돌아가고 있기 때문에 여러 기술들을 내 분야에 접목하기 위해서는 꾸준하게 새로운 트렌드와 지식을 파악하는 노력이 필요하죠.제 경우에는 지반 관련 해외잡지나 책 구독 등 관심을 갖고 새로운 지식을 축적하고 있지만, 최근에 많은 분야에서 활용되는 ICT기술, 머신러닝 기술 등에 대해서도 심도 있게 구체적으로 탐구하고 있고, 어떻게 내가 하는 일에 적용할까 고민하고 있습니다.다른 공부가 필요하다고 느낄 때 시작을 하게 되면 너무 늦는다고 생각해요. 미리 새로운 흐름을 공부하고 있어야 정작 이 기술이 필요할 때 바로 써먹을 수 있는 것이죠. 스스로 배움을 이어나가 가장 필요한 시점이 왔을 때 그 능력을 바로 발휘할 수 있는 기회를 잡는 준비를 하면 좋겠습니다 :) ▲ 사무실에서 동료와 이야기를 나누는 김하영 마스터전문 분야는 물론 다른 분야 공부까지 하시면 굉장히 바쁘실 것 같습니다. 평소 개인 휴식 시간에는 어떤 활동을 하시나요?엔지니어는 자기 분야에 갇혀 생각의 틀을 넓히기 어려운 면이 있습니다. 앞서 말씀 드린 것처럼 자기 틀에서 벗어나 새로운 기술을 접목하려는 노력을 끊임없이 해야 한다고 생각해요, 엔지니어는 그 분야의 최고 전문가이므로 타 분야의 기술들을 그 분야에 접목할 때 가장 잘 할 수 있는 역량도 가지고 있다고 생각합니다. 저에게 타 분야에 대한 공부는 휴식으로 여겨집니다. 대학생인 저의 자녀들과 함께 공부하기도 합니다. 대학생 자녀 2명과 초등학생 자녀 1명이 있는데, 시간적 여유가 되면, 막내와 함께 자전거를 타러 나가기도 하고, 집 뒤에 있는 산에 아내와 함께 오를 때도 있습니다. 가족들과 시간을 보내기 위해 간단한 운동이나 산책을 하며 휴식 시간을 보내고 있어요.  마스터 님의 말씀을 들어보니 지질, 토목학과 학생들의 관심이 많을 것 같습니다. 전공생들을 위한 조언 부탁 드립니다.끈기는 어렸을 때부터 목표를 세우고 그 외의 일들은 스스로 자제하는 훈련을 하는 것이 좋습니다. 저는 박사학위 받는데 9년이라는 시간이 걸렸습니다. 물론 과정 마치고 회사생활도 하고 개인적인 사정도 있어서, 힘들어서 포기하고 싶은 마음이 들기도 했지만 중도에 포기하지 않고 최선을 다했을 때, 박사학위도 받고, 그 과정이 시금석이 되어서 지금의 결과를 얻을 수 있었습니다.하지만 요즘은 제 아이들도 그렇고 젊은 친구들이 하고 싶은 것이 너무 많은 것이 문제인 것 같아요. 다양한 일을 많이 경험하는 것은 좋지만 목표로 삼은 일에 집중하지 못하는 것은 좋지 않다고 생각합니다. 최근 유행하고 있는 미니멀 라이프처럼 가장 필요한 것 외에는 계속해서 제거하고 버리는 것이 중요하다고 생각하는데요. 자신의 분야에 집중해서 끈기 있게 목표를 이루어나가는 일에 집중하도록 노력하기를 권합니다. 마지막 질문입니다! 앞으로의 꿈이나 계획이 있다면 한 말씀 부탁 드립니다~후배 양성, 현장 근무, 연구 활동, 이 3가지 모두 소홀이 해서는 안될 일이겠지요. 하지만 ‘마스터’라는 직함을 새로 얻었기에 앞으로는 새로운 연구 활동의 비중을 높여 장기적인 안목을 갖기 위해 노력할 예정입니다. 현재의 것만을 가지고 안주하기 보다는 새로운 안목을 갖도록 끊임없이 배워 삼성물산 기술력에 표본이 되고 싶습니다. 기본을 지키면서도 새로움도 빠르게 적용하는 마스터가 되겠습니다. 지금까지 삼성물산의 ‘김하영 마스터 님’을 만나보았습니다. 건물의 가장 기초가 되는 지반에 대한 리스크 문제를 연구하고 해결하는 어려운 책임감을 안고 계시면서도 온화한 미소를 잃지 않고 이야기를 나누시는 모습이 인상적인 인터뷰였습니다. 앞으로 삼성물산의 기술력을 증명해내는 마스터로서의 새로운 행보를 더욱 기대하겠습니다 :) #삼성 #삼성물산 #건설부문 #TA그룹 #지반전문가 #기업문화 #조직문화 #삼성지원 #삼성채용 #구성원인터뷰
조회수 684

구글애널리틱스와 와이즈트래커의 차이점

모바일 비즈니스를 운영하는 분들에게 와이즈트래커를 소개할 때마다 공통적으로 물어보시는 질문이 있습니다. “구글 애널리틱스도 모바일 분석 기능을 제공하는데, 차이점이 무엇인가요?”구글 애널리틱스 또한 오랜 웹 분석 서비스 운영의 노하우를 기반으로 모바일 분석 서비스를 제공하고 있지만, 모바일 환경은 기존의 웹과 다르기 때문에 몇 가지 한계점을 가지고 있습니다. 아래 내용을 통해 구글애널리틱스와 와이즈트래커 차이점을 알아보겠습니다.1. 데이터 검증 구글애널리틱스의 경우 Raw level의 데이터 검증이 불가능하기 때문에, 많은 기업들이 구글애널리틱스와 다른 분석 툴을 함께 사용하며 데이터 분석을 진행하고 있습니다. 모바일앱에서 이벤트가 발생할 때마다 raw data가 DB에 정상 수집되는지 실시간으로 확인을 해야 하는데, GA에서는 그런 작업 없이 데이터 가공/처리하여 24-48시간 이후에 데이터 리포트를 보여주기 때문에 사용자 입장에서는 데이터에 대한 신뢰도가 낮을 수 밖에 없습니다. 와이즈트래커에서는 이벤트 발생마다 DB에서 데이터를 실시간으로 확인하는 데이터 검증 작업을 진행하고, 1~2시간 내 리포트에 반영하기 때문에 보다 빠르고 정확한 모바일 사용자 행동 데이터를 확인하실 수 있습니다.2. 데이터 샘플링구글 애널리틱스는 전세계 대다수의 사용자가 무료로 이용하는 툴이기 때문에, 하루에 저장되고 처리되는 데이터양이 엄청납니다. 구글에서는 이에 무제한적으로 리소스를 투입할 수 없기 때문에  일정 세션 이상 (일반적으로 50만 세션)이 발생할 경우, 데이터를 샘플링해 보여줍니다.  이 때문에 KPI 기반으로 정확한 데이터가 필요한 비즈니스에서는 샘플링 데이터를 이용하기 어렵습니다. 와이즈트래커는 전수 데이터를 분석하고 데이터 검증까지 지원하기 때문에, 데이터의 정확성이 중요한 비즈니스에 보다 알맞습니다.3. 고객 지원구글애널리틱스는 전세계적으로 무료로 제공되는 범용 툴이니만큼 높은 수준의 고객 지원 서비스를 기대하기 어렵습니다. 한글 매뉴얼이나 개별적인 고객지원을 제공하지 않아, 데이터에 오류가 있다거나, 리포트 생성 혹은 분석에 어려움을 겪을 때, 문제를 해결하는데 시간이 오래 걸릴 수 있습니다. 와이즈트래커는 빠른 온라인 지원(Live Chat / 이메일) 뿐 아니라 SDK 연동 기술 지원 및 분석 컨설팅을 제공하고 있어, 관련 전문가가 아니더라도 빠르고 쉽게 데이터 연동 및 분석을 진행할 수 있습니다.4. 비즈니스 맞춤형 분석 서비스 모바일 비즈니스 유형에 따라 중요한 분석 지표가 다릅니다. 커머스앱에서는 장바구니담기, 리뷰수, 주문수 등이 중요하다면 와이즈트래커와 같은 서비스 제공 앱의 경우 소개서 다운받기나 상담 신청수가 중요합니다. 구글 애널리틱스의 경우 이러한 커스텀 리포트와 골을 사용자가 직접 생성해야 하기 때문에, 데이터 분석 환경에 익숙하지 않은 분들의 경우 어려움을 겪을 수 밖에 없습니다. 와이즈트래커는 초기 분석 상담 시 고객사에게 필요한 커스텀 분석 리포트, 골(Goal)을 논의 후, 기존 서비스에 통합해 제공하기 때문에 보다 용이하게 비즈니스 맞춤 분석을 진행할 수 있습니다.5. 특화된 IN-APP, MARKETING 분석 기능와이즈트래커는 다차원 세그먼트, 푸시메시지 분석, 오디언스타겟팅 등 구글애널리틱스가 제공하지 않는 특화된 기능들을 지원하고 있습니다. 다차원 세그먼트를 통해 데모그래픽, 마케팅채널, 플랫폼, 행동특성별 상세한 사용자 데이터 분석이 가능하며, 푸시메시지 분석과 오디언스타겟팅을 통해 효율적인 커뮤니케이션 및 타겟팅 마케팅을 진행할 수 있습니다. 위에 언급된 한계점을 극복하기 위해 구글 또한 모바일 데이터 분석 서비스 Firebase analytics 를 작년에 새롭게 공개하였습니다. 하지만 여전히 국내 서비스 및 고객 지원이 미비하고, 개인이 데이터 분석 범위를 정의하고, 분석 항목들을  설정해야 하기 때문에 사용에 어려움이 있습니다.구글애널리틱스를 사용하시며 아쉬운 점이나 불편한 점이 있으셨다면, 기술 지원부터 비즈니스 맞춤형 비즈니스 분석을 지원하는 와이즈트래커로 쉽고 편리한 모바일 분석을 시작해보세요.
조회수 929

[인공지능 in IT] 구글이 말하는 인공지능의 혁신성

지난 2018년 5월 8일부터 5월 10일까지 3일간, 미국 샌프란시스코에서 '구글 I/O 2018(Google Input/Ouput 2018)'이 열렸다. 구글 I/O는 매년 구글이 혁신적인 제품을 선보이는 행사로, 구글의 신제품과 신기술을 가장 먼저 접할 수 있는 자리다. 필자는 지난 몇 년간 구글IO를 지켜봤지만, 개인적으로 이번만큼 신선한 충격을 받지는 못했던 것 같다.< 구글 I/O 2018, 출처: 구글, 제공: 스켈터랩스 >구글 선다 피차이(Sundar Pichai) CEO는 올해 구글 듀플렉스(Duplex)라는 음성 기술을 시연했다. 구글 듀플렉스는 시연을 통해 미용실과 레스토랑에 스케줄을 예약하며, "Mm-hmm"이나 "Aha"라고 자연스러운 대화 흐름을 선보여 많은 사람에게 경외 혹은 두려움을 불러 일으켰다. 구글 듀플렉스가 베이퍼웨어(Vaperware, 개발 중이지만 아직 완성되지 않은 또는 완성되지 않을 수 있는 소프트웨어)일 가능성도 있지만, 구글의 인공지능 기술 수준을 전세계에 알리기에 충분한 계기라고 생각한다.< 구글 듀플렉스, 출처: 구글, 제공: 스켈터랩스 >구글IO 2018을 보며 스스로에게 질문을 던졌다. 구글이라는 기술 공룡은 어떻게 혁신의 아이콘이 될 수 있었을까? 먼저 혁신의 사전적 의미를 살펴보면 다음과 같다. '묵은 풍속, 관습, 조직, 방법 따위를 완전히 바꾸어서 새롭게 함.' 여기서 가장 집중할 부분은 '완전히 바꾸어서 새롭게 한다는 것'으로, 대다수의 사람은 짠하고 나타나는 새로운 기술을 떠올릴 것이다. 틀린 말은 아니다. 다만, 조금 다른 관점으로 생각해본다면 기술이라는 결과물을 만들기 위해, 어떠한 방식으로 접근(Approach)했는지도 중요할 것이다.이번 구글IO 2018 중 듀플렉스를 시연하며 선다 피차이 CEO가 던진 질문을 끝으로 짧은 글을 마무리한다."60%의 소상공인들은 온라인 예약 시스템을 가지고 있지 않다. 이를 인공지능이 해결할 수 있지 않을까?"질문만 듣고 판단한다면, 구글 자체가 거대한 인공지능 기술기업이기에 당연히 온라인 예약시스템을 대체하거나 더 요긴하게 사용할 수 있는 인공지능 플랫폼을 만들 것이라고 생각할 것이다. 그러나 구글은 다른 관점에서 접근했다."온라인 예약 시스템이 없다면, 인공지능이 직접 전화를 걸면 된다"고.이호진, 스켈터랩스 마케팅 매니저조원규 전 구글코리아 R&D총괄 사장을 주축으로 구글, 삼성, 카이스트 AI 랩 출신들로 구성된 인공지능 기술 기업 스켈터랩스에서 마케팅을 담당하고 있다#스켈터랩스 #기업문화 #인사이트 #경험공유 #조직문화 #인공지능기업 #기술기업
조회수 3942

100일 간의 챗봇 디자인 실패기-1편

디자인 학도로서 4년 넘게 학교에서 UI/UX를 공부했다. 또래에 비해 학교를 오래 다녔으며 해당 분야에 대한 관심도 남달랐거니와, 심지어는 UI 디자인 소프트웨어를 만드는 회사에 다닌 경험이 있는 만큼 실무적으로는 아직 많이 부족할 지라도 이론만큼은 이제 어느 정도 자신이 있다고 생각했다.그런데 대체 이 녀석은 또 뭐지. 챗봇이라니.   지난 1월, 새로운 사업을 결심한 팀원들과 사업구상을 하며 챗봇이라는 아이템을 마주하게 되었다. 우리가 챗봇에 대한 무한 신뢰를 했던 이유는 한 가지였다. '일상적 편리함에 있어 메신저만 한 것은 없다'는 것.한때 SNS에 화제가 되었던 '엄마의 메모장'챗봇은 이미 한 차례 미국 본토를 강타하고 조금씩 국내 시장에 진입하고 있던 상황이었고, 새로운 기술에 호기심을 가진 우리 팀은 챗봇에 희망을 품고 해당 분야에 대한 학습을 진행하기 시작했다.  자연어 처리, 형태소 분석 등 기술적인 부분들을 개발팀원들이 검토하고 있는 동안 디자이너로서 챗봇에 대한 리서치를 시작하려는 찰나, 아무리 검색을 해도 평소에 비해 아무것도 나오지 않는 매우 당황스러운 시추에이션이 발생했다.  일반적인 웹이나 어플리케이션 기획의 경우 이미 레퍼런스 삼을 만한 사례가 충분히 있었고, 설령 국내 자료 중에 없다고 한들 영어로 조금만 검색해보면 해외 자료들을 금세 찾을 수 있었다. 그러나 챗봇은 상황이 달랐다. 영어권 챗봇 또한 이제 막 성장하는 단계인 만큼 해외 챗봇 사례 중에서도 이렇다 할 벤치마킹 대상을 찾는 것이 쉽지 않았다.우선 우리가 만들고자 한 챗봇은 '일정' 관련 봇이었다. '자연스러운 대화를 이해하여 사용자의 일정 입력을 돕는 챗봇이 있다면 어떨까'라는 것이 우리의 가설이었다.괜찮지 않을까?지난 4년 간 학교에서 배운 과정대로라면 브레인스토밍, AEIOU, 컨셉맵핑, 유저 인터뷰, 포커스그룹 인터뷰 등에 걸친 여러 기법들을 통해 디자인을 시작해야 했다. 하지만 현 상황은 우리가 대체 정확히 무엇을 만드는 것인지에 대한 정의조차 내려지지 않은 상태였다.이 챗봇의 기능은 무엇이며, 타겟은 누구이고, 어떻게 구현될 수 있는 걸까. 너무나 생소한 분야였던 만큼 우선 첫 한 달 동안은 챗봇 관련 국내외 글을 꾸준히 읽기 시작했다. 4차 산업혁명, 완전자동화 등 챗봇에 대한 여러 이론적인(쓸데없는) 내용들이 있었지만 그중에서도 유독 눈에 띄는 글이 하나 있었다.https://chatbotsmagazine.com/bots-hype-or-glory-656f4d614efb#.g6s68jvkgI was an undercover-bot for 2 months. Here is what I learned.Bots: hype or glory?chatbotsmagazine.com 해당 글의 주요 내용을 번역 및 요약하자면 이러하다.- UX 매니아로서, 그 수많은 챗봇 중에 쓸만한 게 없더라.- 그래서 챗봇을 개발하기 전 직접 실험을 해보기로 했다.- 약 2달간 직접 서비스 내에 사용자를 돕는 봇인'척' 했다(틈틈이 사람이라고 힌트는 줬다).- 우리 서비스를 사용하는 사용자들은 컴퓨터나 기술을 좋아하는 사람들이 아닌, 일반인이었다.- 봇이 아닌 사람이 실시간으로 응대한다고 인지는 시켜주었지만 사실 신경 쓰는 사람은 없었다.본문은 '아직 챗봇은 기술적으로도, 시대적으로도 준비가 되지 않았다'로 최종 결론을 지으며 마무리되는데, 이미 챗봇에 콩깍지가 씌여 있던 나에게는 그저 앞부분의 내용이 중요할 뿐이었다."사람이 챗봇인 척 테스트를 한다고?"서비스 기획 및 디자인에 갈피를 못 잡고 있었던 우리 팀은 긴말할 것 없이 곧바로 실행에 들어갔다. 대학교 게시판에 피실험자 알바 구인 글을 올리고 약 30명의 캘린더 유저를 확보했다. 실험에 대한 대략적인 안내사항은 이러했다.1. 우리는 현재 일정 관련 챗봇을 만들기 위해 수동으로 실험 중이며, 주 기능은 '일정등록' 이다.2. 구글 또는 네이버 캘린더 작성 권한을 사용자로부터 공유받아 일정을 입력한다(캘린더 공유 기능 활용).3. 사용자는 최소 주 1회 이상 카톡을 통해 캘린더에 일정을 입력하여야 한다(페이 지급 조건).4. 사용자는 챗봇에게 일정 등록뿐만이 아닌 일정 관련 어떠한 요청도 할 수 있다.5. 이에 대한 예시로 문자/메일 분석, 공개 캘린더 추가, 키워드 일정 추천 등을 제시한다.6. 대화의 형태는 정해져 있지 않으며 원하는 어떠한 형태(말투, 축약어, 신조어)로든 가능하다.응대에 사용한 옐로아이디 관리자 툴지금은 플러스친구로 업데이트된 카카오톡 옐로아이디 관리자 툴을 활용하여 사용자들과 대화(채팅)를 진행했다. 데스크탑용 웹 인터페이스를 통해 대화를 입력할 수 있었기에 입력 속도는 빨랐지만 사용자가 언제 무슨 말을 걸어올지 도저히 예측이 불가능했다. 팀 내 개발자들이 자연어 처리에 대한 공부를 지속하는 동안 운영을 맡은 팀원과 함께 2명이서 상시 대기하며 사용자들의 요청에 응대했다.운영 초기 우리가 기대했던 이상적인 요청들은 이러했다.하지만 현실은 아래와 같았다.목적어 및 각각의 형태소가 매우 명료하고 명확한, 챗봇 개발 시 자동화가 가능한 텍스트들을 기대하고 있었지만 실상 대부분의 요청은 실제 사람이 개입하지 않는 이상 과연 처리가 가능할까 싶은 내용들이 태반이었다.텍스트 입력 시간도 사용자마다 다 제각각이었다. 아침 일과를 시작할 때 일정을 입력하는 사용자들이 있는 반면 하루를 정리하며 다음날 일정을 계획하는 사용자들도 있었다. 밥을 먹다가도, 샤워를 하다가도 옐로아이디 알람이 울리면 컴퓨터로 달려가 응답을 했다. 아무리 상시 대기를 한다 해도 잠은 자야 했기에 결국 자정부터 다음날 아침 8시까지는 옐로 아이디의 자동 응답기능을 활용하여 '잠시만 기다려주세요'를 출력하였다.(물론 잠시는 아니었지만)여러 시행착오를 거쳐 약 한 달 간의 기나긴 응대 끝에 실험이 종료되었고, 우리는 사용자들을 대상으로 설문 및 인터뷰를 진행하였다.우선 가장 중요하게 생각한 전체 캘린더 일정 입력률(데스크탑/모바일 캘린더를 포함한 모든 입력) 대비 카톡을 통한 일정 입력률은 약 절반 정도로 확인되었다.카톡을 통한 일정 입력률 / 전체 일정 입력률  = 51%이와 더불어 '카톡을 통해 캘린더에 일정을 등록하는 방식에 대해 불편한 점'을 질문한 결과1. 즉각적이지 않은, 늦은 응답 - 40%2. 개인 일정 정보 유출에 대한 불안 - 20%3. 익숙하지 않은 카톡 입력의 불편함 - 13.3%순으로 응답함을 확인하였다.생각보다 나쁘지 않은 결과였다.비록 입력 된 내용들을 정형화 하기가 쉽지는 않았지만, 기대했던 것에 비해 카톡을 통한 입력률이 높은 편이었고 가장 큰 문제점으로 지적된 '늦은 응답'과 '개인 정보 유출'은 챗봇 개발을 통해 개선할 수 있을 것으로 기대했다. 자동화를 통해 즉각적으로 응답할 수 있을뿐더러 사람의 개입을 없애 개인 일정 정보 유출을 방지할 수 있을 것이라는 판단 하에 챗봇 개발을 진행하였다.그렇게 한달 간 입력받은 텍스트 데이터를 활용, 약 2주 간의 개발 끝에 간단한 일정 등록 기능을 갖춘 일정 관리 챗봇, 린더봇이 탄생하게 되었다.https://www.youtube.com/watch?v=zSRYRYfzTFo2편에서 계속...#히든트랙 #챗봇 #기술기업 #개발자 #개발팀 #인사이트 #경험공유
조회수 793

AWS IoT Core 활용하기

이 포스팅에 실린 실습은 AWS CLI가 설치되어 있고, AWS credentials이 설정되어 있는 상태에서 진행했습니다. 서버와 하드웨어 사이의 TCP 연결을 구현하지 않고 AWS IoT를 이용해 MQTT 프로토콜로 데이터를 송수신하는 환경을 구성해보겠습니다. 진행을 위해 AWS IoT와 NodeJS가 필요합니다.1.AWS IoT Core로 접속해 사물을 생성합니다. 테스트로 1개만 사용할 것이므로 “단일 AWS IoT 사물”로 등록합니다.2.‘인증서 없이 사물 생성’을 클릭합니다. 인증서는 사물 등록 후에 생성할 예정입니다.3.사물이 정상적으로 등록되었는지 확인합니다.4.루트 CA 인증서를 생성합니다. 4-1.개인키를 생성하기 전, openssl 설정 파일을 추가해 아래 내용으로 저장합니다. 아래와 같이 진행하는 이유는 basicConstraints = true로 설정하기 위해서입니다.4-2.개인키를 생성합니다.openssl genrsa -out rootCA.key 2048 4-3.루트 인증서를 생성합니다.openssl req -x509 -new -nodes -key rootCA.key -sha256 -days 1024 -out rootCA.pem -config rootCA_openssl.conf -extensions v3_ca 5.인증서를 생성합니다. 5-1.AWS IoT 등록 코드를 확인합니다.aws iot —region=ap-northeast-1 get-registration-code 5-2.개인키를 생성합니다.openssl genrsa -out verificationCert.key 2048 5-3.CSR을 생성합니다. 앞서 5-1에서 확인한 등록코드를 Common Name 항목에 입력합니다.openssl req -new -key verificationCert.key -out verificationCert.csr 5-4.인증서를 생성합니다.openssl x509 -req -in verificationCert.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out verificationCert.pem -days 500 -sha256 5-5.CA 인증서와 개인 인증서 파일들을 확인합니다.5-6.AWS에 인증서를 등록합니다.aws iot register-ca-certificate —ca-certificate file://rootCA.pem —verification-cert file://verificationCert.pem —region=ap-northeast-2 5-7.AWS에 인증서를 활성화합니다.aws iot update-ca-certificate --certificate-id 인증서 등록 후 응답으로 오는 certificateId 값 --new-status ACTIVE --region=ap-northeast-2 예)aws iot update-ca-certificate —certificate-id AAAAAABDADFDF1ABADFDFDFDF### —new-status ACTIVE —region=ap-northeast-2 5-8.AWS에 인증서 자동 등록 활성화를 켭니다.6.AWS 콘솔에 접속해 CA 인증서 등록을 확인합니다.7.AWS 콘솔에서 인증서를 생성합니다.7-1.원클릭 인증서 생성을 클릭합니다.7-2.활성화를 클릭하면 완료됩니다.8.인증서와 사물을 연결합니다.9.상호 작용 탭에서 디바이스를 연결합니다.10.환경에 맞게 선택하여 다운로드합니다.11.압축을 해제해 srart.sh를 실행하고, 연결 대기합니다.12.AWS IoT 테스트 접속 후, topic 1으로 메시지를 게시합니다.13.터미널을 확인합니다.이것으로 AWS IoT 로컬 환경이 구성되었습니다. AWS IoT를 사용하면 서버와 하드웨어를 제어하는 클라이언트 간 통신을 쉽게 하도록 다양한 구성을 할 수 있습니다. 모든 포맷은 JSON 포맷으로 송수신하며, MQTT(Message Queueing Telemetry Transport) 방식이라 양방향 통신을 쉽게 처리하고 전송할 수 있을 겁니다.참고자세한 MQTT - Publish/Subscribe 모델은 여기를 클릭하세요.글장현준 팀장 | R&D 개발3팀janghj@brandi.co.kr브랜디, 오직 예쁜 옷만

기업문화 엿볼 때, 더팀스

로그인

/