스토리 홈

인터뷰

피드

뉴스

조회수 2873

웹 플러그인 개발기 - iframe의 재발견

채널 웹 플러그인을 개발하며 겪은 문제들과 우리 팀의 해결책을 소개합니다. 채널 웹 플러그인은 SDK의 형태로 고객사 웹사이트에 붙어서 고객이 매니저와 대화할 수 있는 인터페이스를 제공합니다. 이 글을 쓰고 있는 당시 약 2300개의 채널이 개설되었고, 하루 약 180만 명의 일반 유저가 웹사이트에 붙은 저희 플러그인을 보고 있습니다.플러그인은 고객사 웹사이트 (이하 호스트 웹사이트라고 함) 의 HTML 도큐멘트에 붙어서 실행됩니다. 이 말은 실행 환경 (자바스크립트, CSS, DOM 환경 등) 을 우리가 컨트롤하지 못한다는 것을 의미합니다. 이것이 일반적인 웹서비스와 플러그인 개발의 가장 큰 차이점이고 사실상 많은 이슈들은 이 차이로부터 기인합니다. 또 이것에 대응하기 위해 프레임워크의 선택부터 개발, 배포에 이르기까지 훨씬 신경 써야할 부분이 많았습니다. 이 글에서는 그 중 호스트 웹사이트와의 실행 환경 공유에 따른 문제들을 자바스크립트와 CSS로 나누어 나열하고 iframe 을 이용하여 해결한 과정에 대해 설명하겠습니다.채널 홈페이지에 웹 플러그인이 붙은 모습1. 자바스크립트와 관련된 이슈1-1. 네임스페이스 공유에 따른 충돌 문제브라우저에서 자바스크립트는 글로벌 네임스페이스를 공유합니다. 이 속성 때문에 플러그인에서 window 를 접근해서 수정한다던가 글로벌로 객체를 정의해서 사용하면 호스트 웹사이트에 영향을 미칠 수 있습니다. 이 문제는 코딩할 때 아래 항목을 주의하는 정도로 큰 비용 없이 방지할 수 있습니다.플러그인의 최상위 네임스페이스를 만든다.(ex. window.CHPlugin)플러그인에서 사용하는 모든 객체는 최상위 네임스페이스 아래에 정의되도록 한다.(ex. window.CHPlugin.outObject)window 객체에 접근할 때는 수정하거나 추가하는 부분이 없도록 주의한다.(ex. [removed] = function(){}와 같은 코드는 사용하면 안 됨. 기존에 [removed] 이벤트가 날아감)사용하는 라이브러리들 중에 window에 바인딩하는 것이 없는지 체크하고 있으면 직접 수정하여 모듈화한다. (ex. lodash는 기본적으로 window 에 _ 객체를 생성함)이건 사실 플러그인이 아니더라도 주의해야하는 거죠..1-2. 에러로 인한 오동작 가능성더 어려운 문제는 바로 예측하기 어려운 오동작의 가능성이 있다는 것입니다. 호스트 웹사이트에서 동작하는 자바스크립트에서 에러가 날 경우 플러그인의 동작에도 영향을 미칠 수 있으며, 반대로 플러그인에서 에러가 발생해서 호스트 웹사이트의 코드 실행을 멈출 수 있다는 것입니다. 양방향으로 영향을 미칠 수 있는 것이죠. 특히 후자의 경우는 우리의 실수로 고객사의 서비스에 피해를 끼칠 수 있으니 쉽게 넘길 문제는 아닙니다.아이디어 1: try/catch를 적절히 처리한다?이를 해결하기 위해 가장 쉽게 생각할 수 있는 방법으로는 호스트 웹사이트 쪽에서 try/catch를 적절하게 처리하도록 가이드를 하는 방법입니다. 예를 들어 플러그인 코드의 바깥 쪽에 try/catch처리를 하고 호스트 웹사이트의 자바스크립트에도 적당하게 처리를 하면 되지만 이 방법은 현실적으로 어려움이 있습니다. 우리의 타겟 고객사들은 일반 쇼핑몰들이고 이들은 대부분 개발자가 없거나 쇼핑몰 빌더를 이용해 만들어진 사이트들이기 때문에 개발력이 없는 경우가 많습니다. 또 설사 개발력이 있다 하더라도 플러그인을 붙이기 위해 가이드할 것이 너무 늘어나는 문제가 있죠.아이디어 2: 자바스크립트 실행 순서를 강제한다?생각해볼 수 있는 또 다른 방법은 호스트 웹사이트의 코드와 플러그인 코드의 실행 순서를 명확히 정해서 한 방향의 영향이라도 차단하는 것입니다. 예를 들어 플러그인 코드가 호스트 웹사이트의 코드보다 항상 먼저 실행되도록 고객사에게 가이드한다면 우리의 코드는 항상 문제 없이 실행될 것이고 호스트 웹사이트에서 에러가 발생하더라도 영향을 받지 않을 것입니다. 하지만 이 방법 역시 마음에 들지 않았는데요 양방향의 영향을 모두 차단하지는 못하기 때문입니다. 그리고 더욱 큰 문제는 플러그인은 한 번 실행되고 끝나는 단순한 스크립트가 아니라 계속해서 실행이 되는 애플리케이션이기 때문에 사실상 소용이 없습니다.2. CSS와 관련된 이슈채널 웹 플러그인은 UI도 포함합니다. 플러그인의 DOM이 호스트 웹사이트에 붙어있기 때문에 플러그인의 스타일을 정의하는 CSS도 호스트 웹사이트에 Inject 되어야합니다. 호스트 웹사이트의 CSS와 플러그인의 CSS가 같은 스코프에 존재하기 때문에 우리가 의도한 스타일이 제대로 표현되지 않을 가능성이 있습니다. 실제로 이 문제는 런칭 초기에 우리를 가장 괴롭혔던 문제입니다. 쉽게 생각해볼 수 있는 방법은 아래와 같습니다.플러그인의 CSS에 네임스페이스를 둔다.(플러그인 CSS가 호스트 웹사이트 CSS에 주는 영향을 차단함)CSS 의 우선순위를 이해하고 플러그인 CSS의 우선순위가 항상 높도록 처리한다. (CSS Specificity 링크 참조)하지만 위처럼 처리하더라도 모든 경우에 대해 해결이 되는 것은 아닙니다. 주된 이유는 우리가 개발을 할 때 모든 CSS 속성을 정의하지 않기 때문입니다. 플러그인에서 정의하지 않은 속성을 호스트 웹사이트에서 사용한다면 호스트 웹사이트의 스타일이 적용될 것입니다. 또 특수한 경우이긴 하지만 만약 호스트 웹사이트에 !important 가 적용되어 있다면 그 속성이 덮어씌워지게 됩니다.!important는 사용하지 맙시다..ㅜ아이디어: 스타일 Normalizing?여기에서 의미하는 Normalizing은 모든 DOM 엘리먼트에 가능한 모든 CSS 속성의 기본값을 정의하는 것을 의미합니다. 크로미움을 기준으로 모든 CSS 속성 목록은 이 곳을 참조하시면 됩니다. 이것을 바탕으로 normalize.css를 만들어 적용했습니다.이 방법을 적용한 이후로는 스타일이 오버라이딩되는 문제는 어느 정도 해결되었습니다. 물론 !important에 대한 대응은 여전히 되지 않지만요. 그런데 예상하지 못한 부작용이 발생했는데 첫번째는 디버깅할 때 크롬 인스펙터가 도저히 사용하지 못할 정도로 느리다는 것입니다. 두번째는 CSS가 inheritance 가 안 되고 기본 엘리먼트 셀렉터의 우선순위가 높아서 직접 코딩해야하는 CSS가 2~3배는 길어지는 불편함입니다. 위 두 이유로 개발 피로도가 상당히 높아져서 머지 않아 다른 방법을 알아보게 되었습니다.3. iframe 도입위에 나열한 문제들을 해결할 수 있는 아이디어로 iframe을 리서치하게 되었습니다. 사실 iframe은 최근 웹서비스에서는 잘 사용하지 않기도 하고, 보통은 사용하지 않는 것을 권장하기도 하죠. 따라서 저희 팀에서도 처음에는 고려사항이 아니었는데요 우리와 유사하게 채팅 인터페이스를 제공하는 인터콤에서 iframe 을 적용한 것으로부터 아이디어를 얻어왔습니다.원래 목적에 맞게 사용하지 않으면 독이 됩니다.iframe은 HTML 도큐멘트 안에서 또 다른 도큐멘트를 임베드합니다. iframe 내에 있는 도큐멘트는 호스트 도큐멘트와 자바스크립트 스코프가 분리되어 있고, CSS가 적용되는 스코프 역시 분리되어 있습니다.이런 속성 때문에 위에 나열한 문제들을 원천 차단할 수 있습니다. 자바스크립트 스코프가 분리되어 있기 때문에 글로벌 네임스페이스에 접근해도 호스트 웹사이트에는 전혀 영향이 없고, 자바스크립트의 에러로 인해 다른 쪽 자바스크립트까지 실행을 멈추는 오동작을 막을 수 있습니다. CSS 역시 Normalizing 을 하지 않더라도 호스트 웹사이트와 플러그인은 완벽히 분리가 됩니다.4. iframe 의 단점iframe을 도입하여 1, 2번에 나열한 문제들은 해결했지만 그에 따른 작은 문제들도 발생했습니다. 첫번째는 iframe도입 시 가장 먼저 고민해야할 부분인데 바로 3rd-party cookie 문제입니다. iframe 안에서 로드되는 도큐멘트는 3rd-party 컨텐츠로 인식합니다. IE에서는 기본 설정이 3rd-party cookie 허용을 하지 않기 때문에 쿠키를 사용해서 인증을 구현한 경우 문제가 될 수 있습니다.두번째는 도큐멘트가 분리됨에 따라 발생하는 코딩상의 여러 불편함들입니다. 여기에서는 범위를 벗어나 더 자세하게는 설명하지 않겠지만 도큐멘트가 분리되니 조금 더 신경써야할 것들이 있었습니다.저희 팀의 경우 쿠키 인증 방식이 아닌 토큰 형태의 인증도 지원을 하고 있었기 때문에 첫번째는 크게 문제되지 않았고 두번째 문제도 얻는 이득에 비하면 불편함을 감수하는 편이 훨씬 좋다는 판단이 들어서 도입을 결정했습니다.마무리플러그인 개발을 시작할 당시에 우리 팀은 웹 SDK 형태의 프로젝트 개발 경험이 없었습니다. 리서치를 해도 플러그인 개발과 관련된 아티클이나 리소스 그리고 보일러플레이트 프로젝트도 많지 않았습니다. 프레임워크, 아키텍쳐를 선택하는 것부터 프로젝트를 구성하는 것부터 개발, 배포 및 운영에 이르기까지 일반적인 웹서비스를 개발할 때와 조금 다른 고민들을 해왔던 것 같습니다. 앞으로 저희가 해 온 고민을 공유하려고 합니다. 저희와 같은 플러그인, SDK 형태의 제품을 개발하고 계신 분들에게 도움이 되었으면 좋겠습니다.#조이코퍼레이션 #개발자 #개발팀 #인사이트 #경험공유 #일지
조회수 1535

무료 놀이 봉사 플레이파티 -“아이들이 놀이의 주인공입니다”

2016년 2월 20일“아이들이 놀이의 주인공입니다” 놀담은 아이들에게 웃음 가득한 놀이의 시간을 주고자 만들어진 기업입니다.동네의 대학생 형 누나들이 아이들과 함께 놀며 놀이터를 웃음소리로 다시 채우고 있습니다.대학생 놀이 가디언은 아이들의 놀이의 환경을 조성하고 그 맥락을 유지하는 것을 돕습니다.또한 무엇보다 가정에게 안심의 시간을 선물하며 아이들을 안전하게 보호합니다.놀담은 지난 2월부터 17회에 달하는 무료 놀이 나눔 프로젝트, 플레이파티를 진행했습니다.놀이터와 학교, 공원에서 아이들과 함께 놀며 420시간의 놀이시간을 선물했습니다.형 누나들의 관심과 사랑 그리고 무엇보다 최고의 즐거움을 선물할 놀이를 가득 안고 동네의 놀 공간으로 찾아 갑니다.2월의 끝자락에 연세대학교 청송대에서 마포구 어린이들 그리고 연세대학교대학생 언니 오빠가 12차 플레이파티의 자리에서 만났습니다.아이들은 딱지와 바닥놀이에 여념이 없었습니다.아이들은 놀이를 익히고 어느새 선생님이 필요 없이 친구들과 어울려 놉니다.선생님과 아이들이 어울려 무궁화꽃이 피었습니다를 하고 있습니다.아이들에게도 즐거운 시간이지만 대학생 선생님 또한 옛 추억을 생각하며 어린아이가 된 듯 어울립니다.아이들이 몰랐던 할머니꽃이 피었습니다, 앉은뱅이 꽃이 피었습니다를 가르쳐주고아이들은 선생님에게 팽이 꽃을 알려주기도 합니다.여러 아이들이 놀다보면 하고 싶은 놀이가 다른 친구, 혹은 단체 놀이를 어려워하는 친구가 있기 마련입니다.일곱번째 플레이파티에서 만났던 현민이는 첫 삼십분 동안 언니 오빠와의 놀이가 어려웠던 모양입니다.현민이는 워밍업 프로그램 중 하나였던 보물찾기를 계속하고 싶었지만 다른 친구들은 준비된 바닥놀이 프로그램을 하고 있었지요.놀담의 놀이선생님은 아이들의 주도에 이루어지는 놀이를 지향합니다.단체 프로그램이라 모든 아이들의 이야기를 반영할 수는 없지만가능한 모든 아이가 원하는 놀이를 할 수 있도록 다양한 프로그램과 되도록 많은 선생님을 자리에 준비합니다.바닥놀이에 적응하기 어려워했던 현민이는 구석 자리에서 아이들이 노는 모습을 바라만 보고 있었습니다.이 때 희원선생님이 현민이에게 다가가 뭐하고 놀고 싶은 지 물었습니다.현민이는 여전히 보물찾기가 하고 싶다고 대답합니다.희원선생님은 다른 아이들과 선생님이 잘 놀고 있다는 것을 확인한 후현민이와 청송대에서 보물찾기를 하기로 했습니다.도토리, 낙엽잎사귀, 작은 돌맹이와 나뭇가지를 모으느라 시간 가는 줄 몰랐습니다.청솔모가 있다는 이야기에 현민이는 모아둔 도토리를 느티나무 밑동에 가지런히 모아두었습니다.두시간의 놀이가 끝나갈 무렵 청솔모 두 마리를 마주하는 행운이 찾아오기도 했습니다.현민이는 플레이파티가 끝나고 어머니가 찾아오시자 희원선생님에게 모아둔 선물을 전부 주었습니다.희원선생님에게도 현민이에게도 잊을 수 없는 봄날의 추억이되었습니다.날씨가 좋지 않은 날엔 실내에서 놀이를 진행하기도 합니다.실내 놀이는 놀이의 몰입이 실외보다 어렵기 때문에 놀이선생님은 더 다양한 놀이를 준비합니다.아이들은 그 자리에서 놀이의 형태와 방식을 바꾸고 응용해가며 즉석 놀이를 만들어내곤 합니다.딱지치기가 딱지 던지기로, 비행기 접기가 전투기 놀이로 바뀌더라도놀이선생님은 상황에 적응하며 아이들이 놀이를 주도하도록 함께 보조합니다.놀이의 마지막은 항상 샤크로 마무리됩니다.샤크놀이는 4-6세의 아이들에게 적합한 술레잡기형 놀이입니다.두 개의 원을 두고 아이들은 원에서 원 사이를 뛰어다닙니다.술레를 맡은 놀이선생님은 상어, 일명 샤크를 맡아 원과 원 사이에서 아이들을 잡고 잡힌 친구들은 다시 샤크가 됩니다.샤크 놀이는 아이들이 땀나게 뛰어놀 수 있는 놀이입니다. 소리지르며 뛰어다니는 아이들의 얼굴에 웃음이 한가득입니다.놀이가 끝나면 공간 뒷정리와 손씻기로 플레이파티를 마무리합니다.아이들은 언제나 선생님과의 헤어짐을 아쉬워합니다.아이들의 순수함을 느낄 수 있었던 시간이기에 선생님들이 더 많은 선물을 얻어갑니다.선생님과 아이들이 서로 놀아주어서 고맙다며 작별을 하는 중에학부모님은 오늘의 추억을 사진으로 남기고자 단체사진을 찍기도 합니다.놀담은 놀이가 세상을 바꿀 수 있다고 믿습니다.그 첫 걸음으로 노는 것이 제일 좋은 아이들의 놀 권리를 지켜주고 그것이 가능하도록 돕는 일을 하고 있습니다.#잘노는 #이벤트개최 #이벤트후기 #인사이트
조회수 1610

2018 왓챠 송년회 (feat. 왓챠데미 어워드) : Watcha, Inc.

2018 왓챠 송년회 (feat. 왓챠데미 어워드)아카데미 어워드를 방불케했던 제1회 왓챠데미 어워드2018 왓챠 송년회를 지금 바로 만나보세요  제법 연말 분위기가 나는 왓챠 사옥잠시후 이곳에서 세상 어디에도 없는 시상식이 열린대요 아름다운 술로 가득 찬 냉장고무려 김포에서 날아왔어요시상식이라고 멋지게 빼입은 왓챠인들드디어 시작된 시상식(와아)올 한 해 가장 많은 술자리를 도모해왓챠 직원들의 간 수치를 높이는데 기여한 사람에게 주는 우루상과연 누가 받게 될까요?“나야?”모두가 예상한 영광의 주인공은 버즈!건강 챙기시라고 우루* 챙겨드렸어요취향매칭률이 가장 높은 두 사람에게 주는찰떡궁합상은 데이지와 매튜가 받았어요.두 분 다 행복해 보여요취향 매칭률이 가장 낮은 취향존중상의 주인공은 케빈과 메이.두 분 협업에 참고바랍니다.올 한 해 가장 많은 갬블 참여로손모가지 날아갈 상을 받은 그린도박 신고는 국번없이 13361년 중 무려 42일을 꼬박 왓챠플레이를 감상한 매튜는감상을 수상해 감을 받았어요상이 조금 억지스러워 보인다면 그건 당신의 착각(번외) 가장 긴 출퇴근 길로하루하루를 여행처럼 살아가는 케빈..보부상을 수상해 캐리어를 받았어요이제 출퇴근길도 문제 없겠어요이 밖에도 한 해동안 왓챠에서 활발하게 활동하신 분들께다양한 시상이 진행되었어요.– TMT상(ben) : 슬랙에서 최다 멘션한 사람상품 : 왕 엔터키– 밥상(Elaine) : 슬랙 #hungry 채널 최다 이니시상품 : 레알 밥상 – 왓챠さん(kay) : 한 해 동안 슬랙에서 ‘왓챠’를 가장 많이 외친 사람상품 : 확성기– 타짜상(jeremy) : #z_gamble에서 가장 높은 승률을 보인 사람상품 : 화투– 빙다리 핫바지상(dora) : #z_gamble 에서 가장 저조한 승률을 보인 사람상품: 기모바지(핫바지…)– 콜바넴 상(ben) : 한 해 슬랙에서 가장 많은 태그를 당한 사람상품: 멘션 거부 1일권– 올해의 스타상(hazel) : 올 한 해 왓챠에 가장 많은 별점을 남김 사람상품: 별과자 –  책상(Lyla) : 올 한 해 왓챠 도서에 평점을 가장 많이 남긴 사람상품: 펭귄북스 굿즈세트시상식 후엔 랜덤 선물 추첨 타임포장만 보고 가져가는 눈치 게임 시작다들 궁금하지만 가져가지 않은가장 큰 선물을 용기있게 pick난방 가성비 갑 뽁뽁이!모두가 부러워했어요“뭔데, 뭔데”그가 절규하는 이유는?(체념)다들 정신없이 흡입중도란도란완벽한 타인..?술자리에서_먼저_잠들면.jpg2018년 진짜 안녕~2019년도 열심히 달릴테니 지켜봐주세요!
조회수 2925

Adwords로 YouTube 동영상 광고 집행 방법

출처 : 구글 이미지여러분의 브랜드 영상을 유튜브를 통해 광고를 하고 싶으신가요? 오늘 오피노의 글에서는 YouTube 동영상 광고를 Google 애드워즈 캠페인과 함께 설정하는 방법에 대해 알아 보겠습니다.사실 유튜브 영상광고는1) 유튜브 채널에서 집행하는 광고 집행2) 구글 애드워즈에서 유튜브 광고 집행의 두 가지 방법이 있습니다.하지만 성과를 파악하고, 데이터에서 인사이트를 찾고, 조금 더 정교한 리마케팅을 진행하기 위해서는 단순히 그냥 유튜브 광고를 집행한다 할지라도 구글 애드워즈의 계정과 함께 연결하여 사용하여야 의미있는 성과를 창출해내실 수 있습니다.# 1 : 애드워즈 캠페인 설정 여러분이 여러분의 비즈니스의 잠재 고객을 파악하고 이 잠재 고객에게 가치있는 브랜드 영상을 만들어 애드워즈에서 광고를 집행하면 여러분의 YouTube 채널의 성장까지 함께 도울 수 있습니다. 순전히 광고를 기반으로 한 YouTube 채널 제작은 효과가 없지만 고품질 콘텐츠를 제공하고 광고가 적합한 잠재 고객을 타겟팅하는 경우 애드워즈 캠페인은 채널에 부가적인 유기적 도달율을 부여하고 자연히 브랜드 인지도 성장을 촉진 할 수 있습니다. 당연히 애드워즈 계정이 필요하겠지요. 가지고 있지 않으신 분들이라면 바로 구글애드워즈를 검색창에 검색하셔서 계정을 만드세요!그런 다음 애드워즈 계정을 YouTube 채널에 연결하세요. 도구 -> 결제 및 설정 아이콘 (몽키스패너 모양)을 클릭하고 연결된 계정을 선택한 다음 YouTube를 클릭하세요. 그런 다음 아래 이미지처럼 따라해보세요 :)애드워즈 계정의 기본 설정을 완료하면 애드워즈에서 새 캠페인을 만들 준비가 된 것입니다. 왼쪽 열에서 캠페인을 선택하시고, 파란색 원의 + 기호 아이콘을 클릭하고 나타나는 메뉴에서 새 캠페인을 선택하시면 됩니다. 아마 GDN 광고를 집행해본 경험이 있으신 분들은 익숙하실 것입니다 !표시되는 캠페인 유형 화면에서 동영상 옵션을 선택합니다. 그런 다음 애드워즈 캠페인에 대한 두 가지 목표 중 하나를 선택하거나 따로 목표없이 캠페인을 만들 수 있습니다. 1) 브랜드 인지도 및 도달 범위 : 브랜드 인지도 및 도달 범위를 선택하면 소액의 광고가 많은 사람들에게 도달 할 수 있지만 검색 결과에는 나타나지 않습니다. 이 목표는 새로운 시청자와 구독자에게 자신의 채널과 콘텐츠를 알리려는 크리에이터 분들에게 좋습니다. 2) 제품 및 브랜드 고려 사항 :이 목표를 사용하면 사람들이 제품을 조사하거나 쇼핑하면서 YouTube 검색 결과에 광고가 게재됩니다. 이 목표는 가능한 소비자에게 제품, 도구 또는 서비스를 홍보하기 위해 권장됩니다.다음 화면에서 캠페인의 예산 및 기타 세부 정보를 설정합니다. 먼저 캠페인에 여러분이 알아볼 수 있는 캠페인 이름을 지정하세요. 그런 다음 일일 예산을 설정하세요. 좋은 시작 예산은 하루에 1만원입니다. 표준 게재 방법 (기본적으로 선택됨)은 광고가 하루 종일 게재되도록합니다. 공격적인 게재 방법은 당초 예산의 대부분을 사용합니다.네트워크 영역에서 광고가 관련없는 웹 사이트에 게재되지 않도록 디스플레이 네트워크에서 동영상 파트너 확인란을 선택 취소합니다. YouTube에서 YouTube 동영상을 홍보하려고하므로 YouTube 검색에서만 광고를 게재하고 싶기 때문입니다.참고 : Google 디스플레이 네트워크에 광고를 게재하지 않으려는 경우 의도적으로 캠페인에 대한 하나의 입찰 전략으로 만 제한됩니다. 그 입찰전략이 바로 최대 조회 당 비용 (CPV)입니다. 다른 입찰 전략 옵션은 Google 디스플레이 네트워크에 광고를 게재하는 경우에만 사용할 수있는 최대 CPM (1,000 회 노출 당 비용)입니다. 동영상 크리에이터들은 조회수가 아닌 노출 수에 집중하고자합니다. 이렇게하면 새로운 시청자가 가장 많이 찾는 위치와 시간에 광고가 노출됩니다.언어, 위치 및 기기 설정은 광고 캠페인의 잠재 고객을 좁히는 데 도움이됩니다. 이 캠페인에서 광고 그룹을 만들면 잠재 고객 인구 통계 및 관심 분야에 대한 추가 옵션이 표시됩니다. 언어의 경우 잠재 고객이 주로 영어를 사용하는 경우 영어를 사용하는 사용자만 타겟팅 할 수 있지만 YouTube 동영상이 여러 언어로 인기 있거나 동영상에 자막이있는 경우 여러 언어를 선택하여 더 많은 사람들에게 다가갈 수 있습니다.위치 설정을 통해 잠재 고객의 위치를 조정할 수 있습니다. 예를 들어 동영상 블로그에 미국 기반 잠재 고객이있는 경우 미국 거주자 만 타겟팅하세요. 그러나 위치 타겟팅을 단일 국가보다 넓게 또는 좁게 만들 수 있습니다. 필요한 경우 국가 또는 위치를 제외 할 수도 있습니다. 일반적으로 여러분의 잠재고객들이 구사하는 언어가 사용되는 대상 국가를 말하는 것이지요.기기 설정은 광고가 iOS 기기하고만 관련된 경우 유용합니다. 그러나 기기 타겟팅은 거의 도움이되지 않으므로 그렇게해야하는 이유가 확실한 경우가 아니면 기기를 따로 지정하지 마세요. iOS 관련 동영상을 제작하더라도 iOS 관련 동영상에 관심이있는 사용자는 누구인지 알 수 없습니다. 게재 빈도 설정을 사용하면 개별 사용자가 광고를 보는 횟수를 제한 할 수 있습니다. 조회수뿐만 아니라 노출 수를 제한 할 수 있습니다. 인스트림 게재 위치 광고의 경우 조회수를 조정합니다. 검색 게재 위치 광고의 경우 노출 수를 제한하는게 좋습니다. 애드워즈는 광고가 게재 될 때마다 노출 수를 표시합니다. 애드워즈에서 게재 빈도 설정을 위해 조회수를 계산하려면 사용자가 광고에 참여하거나 30 초 이상 (또는 30 초 미만의 전체 동영상) 시청해야합니다. 예산을 최대화하려면 노출 수를 일일 2 회로 제한하는 것이 좋습니다. (주당 5 ~ 10 회로 제한). 우리가 의도하는 광고 캠페인의 목적에 따라 게재 빈도 설정 전략은 달라질 수 있겠지요.콘텐츠 제외 기능을 사용하면 민감한 콘텐츠 및 콘텐츠 유형을 필터링하여 기본 콘텐츠 필터보다 약간 더 나은 잠재 고객을 확보 할 수 있습니다. YouTube의 표준 필터는 효과가 있지만 옵션을 조정하면 관련성없는 카테고리의 웹 사이트, 동영상 및 모바일 앱에 동영상 광고를 게재하지 않아도됩니다. 아래 그림의 설정을 사용하면 필터의 수준이 강해집니다. 그러나 DL-MA 디지털 콘텐츠 레이블을 사용하면 콘텐츠가 성숙한 경우 (예 : 다큐멘터리) 광고가 표시됩니다. 콘텐츠에 라벨이 지정되지 않은 경우 광고를 게재하면 도움이됩니다. 실시간 스트리밍 비디오 및 게임 확인란을 선택하면 사람들이 라이브 스트리밍이나 게임을 시청하는 동안 광고에 참여하지않기 때문에 유용합니다.광고 일정 설정은 균등하게 순환 게재 (예산을 빠르게 사용하지 않음)하거나보기에 최적화 할 수 있습니다. 특정 시간 프레임이 시청자에게 가장 잘 작동하는 것으로 알고있는 경우 광고를 게재 할 특정 시간 또는 요일을 설정하세요. 예를 들어 유튜브 애널리틱스로 여러분의 유튜브 채널을 분석할 때, 주말 조회수가 더 많고 월요일에 조회수가 더 많지 않으면 월요일보다 주말에 동영상을 더 자주 홍보 할 수 있습니다. 캠페인 설정이 완료되면 다음 단계는 캠페인 내에 광고 그룹을 설정하는 것입니다.# 2 : 캠페인 내 광고 그룹 구성하기하나의 애드워즈 캠페인에서 여러 개의 광고 그룹을 만들 수 있습니다. 광고 그룹에는 광고를 통해 홍보하려는 여러 YouTube 동영상이 포함될 수 있겠지요. 제가 설명하고 있는 전략들을 이해하고 YouTube 동영상을 홍보하는 광고 그룹 설정을 선택하면 전반적인 캠페인과 관련하여 광고 그룹을 구성하는 방법을 이해하는 것이 도움이될 것입니다. 각 광고 그룹이 동일한 키워드 또는 YouTube 콘텐츠 (특정 YouTube 채널 또는 동영상에 광고를 게재하므로 게재 위치라고 함)를 타겟팅해야합니다. 타겟팅은 특정 키워드를 검색하는 사람들이나 특정 YouTube 채널을 보는 사람들과 같이 동영상을 보는 사람을 결정합니다. 또한 그룹의 모든 동영상은 인스트림 광고 유형이나 검색광고 유형 중 하나를 사용합니다. 다양한 광고 유형에 따라 광고가 YouTube에 게재되는 위치가 결정됩니다. 인스트림 광고는 사용자가보고 싶어하는 YouTube 동영상보다 먼저 표시되지만 검색 광고는 시청자가 시청하는 모든 동영상과 함께 검색결과로써 표시가 될 수 있습니다.우리 브랜드가 두 가지 언어를 사용하고 있는 비즈니스 채널 (헝가리어 및 영어)이 있고, 이 전략에 대한 캠페인 및 광고 그룹 구조를 구성하려고 한다고 가정해보겠습니다. 헝가리 및 영어로 동영상을 게시하고 언어에 따라 해당 동영상에 대한 캠페인을 분리하세요. 각 캠페인에 대해 광고 유형 및 타겟팅을 기반으로 광고 그룹을 만듭니다. 즉, 각 캠페인에 대해 다음 광고 그룹을 포함시켜야합니다. 검색 게재 위치 검색 키워드 인스트림 게재 위치 인스트림 키워드 그런 다음 모든 광고 그룹에서 두 가지 유형의 동영상 광고 크리에이티브를 추가하세요.이 구조를 사용하면 각 캠페인의 예산을 최대화 할 수 있습니다. 각 캠페인의 광고는 서로 경쟁하며 가장 성공적이고 관련성이 가장 높은 광고에 예산이 소진됩니다. 영상광고는 굉장히 엄청난 기능이 있는데, 예를 들어 잠재 고객이 인스트림 광고를 볼 때 지불해야하지만 사용자가 광고를 건너 뛰기(Skip)로 선택하면 비용을 지불하지 않습니다. 마찬가지로 검색 광고의 경우 사용자가 클릭하여 광고를 보는 경우에만 비용을 지불하게됩니다. 이 구조의 또 다른 장점은 검색 광고에 대한 적절한 타겟팅을 수행 한 후 인스트림 광고를 쉽게 삭제할 수 있다는 것입니다.인스트림 광고는 조회수를 높이고 특히 게재 위치 타겟팅을 통해 투자 수익을 높일 수 있습니다. 하지만 검색 광고의 조회율은 훨씬 높습니다. 타겟팅이 제대로 완료되면 인스트림 광고는 대부분 시청자가 싫어하므로 이탈 할 수 있습니다. 잘 배치 된 디스커버리 광고는 고객들을 끌어당기는 자석같은 효과가 있지요. 사용자는 제목과 미리보기 이미지가 흥미로운 경우 적극적으로 클릭합니다. 광고를 검색 광고로 전환하는 이 기능을 사용하면 많은 이점을 얻을 수 있습니다. 좋은 조회율을 제공하고 YouTube 채널을 구독할 가능성이 더 큰 관심있는 시청자만 유도 할 수 있습니다. 그렇게함으로써 시청자와 진정한 관계를 구축하게됩니다.# 3 : 캠페인에 대한 각 광고 그룹 만들기캠페인에서 첫 번째 광고 그룹을 만들려면 캠페인 세부 정보 바로 아래 광고 그룹 만들기 영역으로 스크하세요. 알아볼 수 있게 그룹 이름을 설정하시고,  입찰가 영역에서 최대 CPV 입찰가와 인기 동영상 조정을 추가합니다.최대 CPV 입찰가는 잠재 고객이 광고를 클릭 할 때 지불하고자하는 최고 가격입니다. 예를 들어 최대 조회 당 0.10 달러 인 경우 최대 CPV 입찰가 입력란에 값을 입력하십시오. 그런 다음 한 달 동안 1,000 명이 동영상을 통해 광고를 보게되면 캠페인의 예산 중 2/3를 지출하게됩니다 (하루에 5 달러 또는 1 개월에 150 달러 정도기준으로). 인기있는 동영상에 대한 입찰가를 조정하면 YouTube에서 가장 인기있는 동영상이나 채널에 동영상 광고가 게재 될 확률이 높아집니다. 최대 CPV 입찰가의 비율로 입찰가 조정을 입력하십시오. 따라서 최대 CPV 입찰가가 0.10 달러이고 인기있는 동영상에 대한 입찰가 조정이 10 % 인 경우 광고가 상위 YouTube 콘텐츠에 표시되고 다른 사용자가 광고를 클릭하면 $ 0.11을 지불하게됩니다. 애드워즈의 인구 통계 영역에서는 성별, 연령, 자녀 유무 및 소득별로 잠재 고객을 정의 할 수 있습니다.잠재 고객에게 도달하는 데 도움이되는 인구 통계학적 타겟팅 설정을 확인하려면 YouTube 채널 애널리틱스를 확인하세요. 동영상마다 가장 적합한 옵션은 당연히 콘텐츠에 따라 다릅니다. 기본적으로 모든 인구통계학적 타겟팅 옵션이 선택되어 있습니다. 잠재 고객에 대한 지식과 상호작용을 토대로 주제에 대해 장기적인 관심을 갖고 있거나 주제를 연구중인 YouTube 사용자를 타겟팅 할 수 있습니다. 맞춤 동일 관심 분야 잠재 고객을 타겟팅 할 수도 있습니다. 귀하의 동영상에 대한 인지도를 높이려면 여러분의 첫 번째 광고 배치 옵션에 중점을 둡니다. 맞춤 동일 관심 분야 잠재 고객은 특히 유용할 수 있습니다. 예를 들어, 채널이 기술에 관심이있는 사람들에게 호소하는 경우 기술 및 미디어 및 엔터테인먼트 및 라이프 스타일 및 취미와 같은 관련 옵션을 선택할 수 있습니다. 적절한 방법으로 컴퓨터 및 주변 장치에 관심이있는 구매 의도 잠재 고객을 선택하세요.(GDN을 집행하는 방식과 유사합니다.)광고 타겟팅을 더욱 세분화하기 위해 키워드, 주제 또는 게재 위치 (YouTube 채널 또는 동영상)를 사용할 수 있습니다. 애드워즈로 동영상을 홍보하기 시작하면이 세 가지 중 하나를 선택하십시오. 둘 이상의 방법을 사용하여 잠재 고객을 타겟팅하면 잠재 고객을 너무 많이 좁혀져 광고비 소진이 안될 수도 있으니 항상 주의하시길 바랍니다 !게재 위치 타겟팅은 동영상 광고를 특정 YouTube 채널이나 동영상으로 타겟팅 할 수 있기 때문에 매우 유용합니다. 예를 들어 Gary Vaynerchuk 동영상을 시청중인 사람들을 타겟팅하려면 전체 채널을 타겟팅하면됩니다. 실제로 광고시장에서 굉장히 강력한 기능이라고 평가받고 있습니다.# 4 : 동영상용 광고 만들기캠페인 및 광고 그룹 기준을 설정하면 홍보하려는 동영상을 추가 할 수 있습니다. 광고를 작성할 때 각 광고는 애드워즈 광고 정책을 준수해야합니다. 첫 번째 광고를 만들려면 광고를 만들 수있는 영역까지 아래로 스크롤하세요. 링크를 YouTube 동영상에 붙여넣고 인스트림 또는 검색 광고 유형을 선택하세요. 범퍼 광고 유형은 다음에 따로 설명드릴 예정입니다. 광고에 자동으로 생성되는 사진을 선택하세요. 옵션 중 하나는 동영상 용으로 디자인한 미리보기 이미지입니다. 다음으로 광고 제목과 설명을 추가하세요. 세부 정보를 입력하면 모바일 버전과 데스크톱 버전간에 전환되는 광고 미리보기가 오른쪽에 표시됩니다. 광고의 기본 방문 페이지는 선택한 상태로 유지하려는 동영상의보기 페이지입니다. 마지막으로 광고 이름을 지정하시면 모든 과정이 끝이납니다.첫 번째 광고 설정이 끝나면 계속해서 광고 그룹을 만들고 각 그룹에 동영상을 추가 할 수 있습니다. 그룹을 만들려면 애드워즈 대시 보드에서 캠페인을 연 다음 파란색 더하기 기호를 클릭하세요. 그룹 내에 새 광고를 만들려면 그룹을 열고 파란색 + 기호를 클릭하여 광고 작성 옵션을 표시하세요.# 5 : 애드워즈 애널리틱스를 통해 동영상 광고 실적을 평가할 수있는 주요 통계이 기사 앞부분에서 언급했듯이 타겟팅이 올바른 경우 최상의 결과를 얻을 수 있습니다. 광고 실적을 모니터링하려면 애드워즈 대시 보드에서 광고 분석을 확인하고 다음 사항에 특히 주의하셔야합니다.조회수 조회율 비율 75 %까지보기 속도 시청 시간 참여 (좋아요 및 댓글) 또한 광고 그룹 설정에서 중복 키워드를 찾아보세요. 마지막으로 동영상 콘텐츠를 확인하시고, 동영상이 처음 10 초 이내에 사람들의 시선을 사로 잡도록하고 시청자가 내 동영상을 좋아하거나 구독하도록 장려하는 등 행동을 촉구하도록 유도하는 장치가 필요합니다.결론 YouTube 잠재 고객에게 우수한 콘텐츠를 만들기 위해 투자 한 후 애드워즈를 사용하여 YouTube 동영상을 홍보하면 플랫폼에서의 인지도를 높이고 채널 성장을 도울 수 있습니다. 광고가 여러분의 동영상에 제공하는 가시성은 여러분의 컨텐츠의 유기적 도달에 힘을 실어줍니다. 또한 이 글에 실려있는 다양한 전략론들을 사용하면 필요한 모든 옵션을 포함하는 캠페인을 구성 할 수 있습니다. 또한 이 조직은 광고 실적을 기반으로 캠페인을 모니터링하고 조정하는 데 도움이됩니다. 초기 애드워즈 캠페인을 실행 한 후에도 캠페인에 리마케팅 광고를 포함해야합니다. 어떻게 생각하시나요? 애드워즈로 YouTube 동영상을 홍보해 보세요! 애드워즈에서 동영상 홍보를 시도했다면 어떤 기술이 효과가 생길지 생각해 봅시다 :)퍼포먼스 마케팅 에이전시, 오피노 바로가기
조회수 3366

LG화학인은 무슨 일을 할까요? #2 – TS&D 직군 인터뷰

지난 R&D 직군 인터뷰 많은 도움이 되셨나요? 이번에는 역시 대전에 위치한 LG화학 테크센터의 TS&D 직군 인터뷰를 준비했습니다. TS&D라니, R&D보다 낯설고 어렵게 느껴진다고요? 걱정 마세요. TS&D 직군의 주 업무부터 딱 맞는 인재까지, 블로그지기가 신정철 사원(사출기술팀)과 이지현 사원(EP사업부 시장개척팀)에게 꼼꼼히 묻고 답을 들었습니다. LG화학 TS&D 직군이 궁금하다면 이 글을 놓치지 마세요!Q. 반갑습니다. 인터뷰로 LG화학 테크센터를 찾은 건 처음이네요. 사실 TS&D라는 직군이 저도 낯선데요. 우선 두 분 소개와 업무를 부탁드립니다.신정철 사원 안녕하세요. LG화학 테크센터에서 근무 중인 신정철입니다. TS&D는  Technical Service & Development의 약자로, 말 그대로 기술지원과 개발이 주 업무입니다. 저는 사출기술팀 소속으로 고객이 LG화학 소재로 제품을 생산하다가 문제가 생겼을 때, 기술적인 문제를 해결하는 데에 도움을 주는 일을 맡고 있죠. 사출은 플라스틱 소재를 열로 녹여서 ‘금형’이라고 불리는 틀에 찍어서 실제 제품을 만드는 일이라는 뜻이에요. 쉽게 말하면 붕어빵 기계에 팥과 반죽을 넣고 굽는 것과 비슷한 거죠.이지현 사원 안녕하세요. 저는 EP사업부 시장개척팀 이지현입니다. EP사업부에는 소재개발팀, 응용기술팀 등이 있는데요. 시장개척팀은 그 중 고객과 가장 가까이에서 밀접하게 기술 지원을 실행하는 팀이에요. 소재에 대한 고객사의 요청을 확인하고 알맞은 부서에 그 내용을 정리해 의뢰를 합니다. 예를 들어 고객사에서 기존 소재의 개선을 요청해온다면 그에 필요한 요건을 확인하고 소재개발팀이나 사출기술팀 등 연관 팀에 자세히 업무를 의뢰하고 조율하는 일종의 코디네이터(coordinator)죠. 그 중에서도 저는 자동차 소재 관련 중국 고객사를 담당하고 있어요.Q. 같은 TS&D 직군이라도 두 분의 업무 영역이 굉장히 다른 것 같은데요. 구체적인 차이점을 알 수 있을까요?신정철 사원 저희 팀은 기존 고객사의 사후 관리, 사후 기술 서비스라는 측면이 강해요. 이미 LG화학의 소재를 쓰고 있는 고객사에서 기술적 문제가 발생했을 때 국내외를 막론하고 현장에 직접 달려가 해결을 하고 솔루션을 제시하죠.이지현 사원 시장개척팀은 사후 관리를 담당하기도 하지만, 그 전에 새로운 시장 개척을 위한 업무도 수행하고 있어요. 미래 고객사의 요구조건을 확인해 최대한의 서비스를 지원할 수 있도록 안팎으로 기술적인 조율을 맡고 있습니다.Q. TS&D 직군이 생각보다 업무 범위가 넓군요. 워낙 낯선 직군이라 예비 LG화학인들에게 좀 더 팁을 드려야 할 것 같은데, 두 분의 업무 분야에서 요구되는 능력은 무엇인가요? TS&D 직군을 지망하는 이들에게 힌트 좀 주세요.신정철 사원신정철 사원 아무래도 고객사와 직접 소통하는 건 기본이고, 필요할 때는 현장으로 달려가 파견근무를 하기 때문에 해당 직군에 대한 전문적인 지식이 매우 중요해요. 이를테면 저희 사출기술팀에는 사출이나 금형 관련 전공자가 온다면 더욱 업무가 수월하겠죠. 그리고 해외 고객사가 많은 만큼 원활한 소통을 위해 외국어 실력 또한 중요한 역량이 될 수 있고요.  보통 현장에 파견을 갈때는 영업사원들과 동행하는만큼 다른 직군의 사람들과도 의견을 그때그때 공유하고 사실을 확인하는 게 중요한 것 같아요.이지현 사원 사실 R&D와 약간 헷갈려 하는 분들이 많은 계실 것 같은데.. Development라는 표현이 두 직군 이름에 들어가다 보니 겹치는 부분도 있어요. 하지만 R&D가 실험과 연구를 통해 새로운 기술을 만들고 이를 상품화하는 데에 주력한다면, 저희 팀은 ‘고객의 요구’에서부터 그 연구가 시작되는 점이 다른 것 같아요.  TS&D는 고객 서비스라는 측면이 크기 때문에 최종적으로 요청 받은 요건(SPEC)에 부합하는 제품을 만들어야 해요. 때문에 무엇보다 고객이 원하는 바를 잘 알고 이를 내부에 전달하는 소통 능력이 중요하죠. 선행기술을 연구하는 CRD 연구소나 영업 같은 직군의 사람까지 다양하게 의견을 주고 받아야 해요.Q. TS&D라는 명칭 자체를 낯설게 느끼는 분들도 많을 텐데요. 두 분은 처음에 어떻게 이 직군을 알고 지원을 하게 되었는지 궁금합니다.이지현 사원 저는 LG화학이라는 회사 자체를 공부하면 공부할수록 매력적이라는 생각이 많이 들었어요. 사실 제 전공이 화학 쪽은 아니라서 고민도 했는데 ‘결국 전공은 다 이어지는 분야지, 뭐’라는 생각으로 용기있게 지원했어요.(웃음) 사실 TS&D 직군에 지원할 때는 정확히 어떤 일을 하는 곳인지는 알지 못했지만, 정적인 면과 활동적인 면을 다 갖고 있는 제 성격과 잘맞겠다고 생각했고요.신정철 사원 저는 전공이 기계공학, 그 중에서도 유체역학 쪽을 주로 공부했어요. 저도 제 전공과는 다른 분야였고 테크센터의 존재나 TS&D라는 직군에 대해서도 아는 게 별로 없던 터라 처음에는 막막했죠. 그래도 신입사원은 어느 곳으로 발령이 나도 처음부터 직무에 대해 다 알기는 힘들잖아요. TS&D 역시 실무를 접하고 배워나가다 보면 그렇게 낯설거나 어렵지 않다는 걸 느끼게 될 거에요. 낯설다고 항상 어려운 건 아니에요.Q. 역시 쉽지가 않네요(웃음) 결국 TS&D 직군은 ‘문제를 해결한다’는 측면이 가장 중요한 것 같은데, 지난 1년 동안 익히게 된 노하우가 있다면 무엇인가요? 신정철 사원 저희는 보통 문제해결을 위해 고객사에 파견을 가는데요. 그곳 현장에서 오래 근무하신 직원분들과의 소통이 가장 어렵고 중요해요. 나름의 원칙이나 방식을 고집하실 때도 있어서 문제 해결을 하고, 이를 잘 설명해드리는 게 제일 어렵죠. 그래서 현장에 가면 제가 알고 있는 지식을 전부라 여기지 않고 귀 기울여 현장 분들의 노하우를 듣고, 거기에 저희가 가진 해결법을 결합하는 방식으로 일해요. 고객사 직원들의 경험에 LG화학의 기술 서비스가 더해지는 게 가장 이상적으로 문제를 해결할 수 있거든요.이지현 사원 처음 입사했을 때부터 가장 중요하다고 배운 것이 CTQ(Critical To Quality, 핵심품질인자)인데요. 고객이 요구하는 바를 정확히 파악해서 그에 딱 맞는 솔루션을 제공해야 한다는 뜻이에요. 그래서 고객과의 소통에 앞서 관련 지식을 알고 상대가 가장 필요로 하는 것을 파악하는 일이 중요한데, 경험이 많지 않은 만큼 아직은 그게 쉽지 않아요. 입사해서도 꾸준히 공부하는 습관을 길러야해요. 제가 아는 영역이 아니라, 모르는 영역을 새롭게 알아가며 일을 해야한다는 것을 말씀드리고 싶어요. Q: TS&D라는 직군도 정말 많은 공부가 필요하군요. 혹시 업무능력 향상을 위한 내부의 시스템이나 팀내 지원이 있나요?신정철 사원 저희 팀은 새로운 기술지식 습득을 위해 매년 직원들이 MBO(management by objectives)를 작성해 연구목표를 설정하고 이를 달성하기 위해 노력하고 있어요. 저는 일단 파견을 가기 전에, 선배님들이 이전에 문제를 해결했던 기록들을 쭉 살펴보고 가요. 저희는 회사 시스템에 예전 업무기록이 남아있기 때문에 실전에서의 경험을 참조하는게 가장 많은 공부가 되는 것 같아요.이지현 사원 저희 팀도 사내에서 지원되는 교육은 적극적으로 배울 수 있도록 배려를 해주세요. 아직 많은 배움과 경험이 필요하기에 세미나, 고객 미팅 등도 현장에서 직접 느낄 수 있도록 자주 보내주시고요. 그리고 옆에 계신 선배들에게도 적극적으로 여쭤봐요. 아직 배우는 단계인 걸 다들 공감해주셔서 감사할 따름입니다.Q. 다시 테크센터 질문으로 돌아올게요. 아직 입사희망자들에게 비교적 낯선 곳인데요. 간단히 소개해주실 수 있으신가요? 이지현 사원 대전 테크센터에는 센터장님 이하 TS&D 직군 300여 명이 함께 근무하고 있어요. 일단 저희는 다들 얼굴을 알아요. 실제로 업무관계가 없더라도 다 인사를 하거든요. 모든 구성원들과 친밀하게 지낼 수 있는 가족 같은 분위기라 좋아요. 또 인포멀을 통해서 다양한 취미생활이나 공부도 함께 할 수 있고요. 기숙사나 주말 셔틀버스 같은 혜택도 있으니까 불편하지 않아요.신정철 사원 소개는 제가 해볼게요. 제가 사내행사에서 MC도 자주 보기 때문에.. 소개나 이런 것을 잘합니다. (웃음) 테크센터는 1979년에 럭키중앙연구소로 처음 개설되었고요. 고객사와 가까운 곳에서 언제든 기술 서비스를 지원할 수 있도록 미주, 유럽, 일본, 중국 등에도 설립되었습니다. LG화학의 고객이 있는 곳이라면 어디든지 언제든지 도움을 드리고 있어요. 이 인터뷰를 통해 많은 분들이 TS&D 직군과 LG화학 테크센터에 관심을 가졌으면 좋겠어요. 웰컴입니다.이지현 사원Q: 입사 지원 후 많은 관문을 통과해 LG화학인이 되셨을텐데요. 두 분의 면접 당시 이야기를 듣고 싶습니다. 재미있는 에피소드가 있나요? 신정철 사원 무엇보다 대학시절을 알차게 보낸 게 도움이 되었던 것 같아요. 전공 공부도 열심히 했고, 그밖에 인턴 등 대외활동도 폭넓게 경험했고요. 그리고 면접에서는 저 자신을 과대포장하지 않고 있는 그대로 보여드리려고 노력했어요. 면접관을 너무 의식하거나, 같이 면접에 들어간 사람들을 반드시 이겨야겠다거나 하는 부차적인 것들을 의식하지 않았어요. 솔직함에서 우러나온 자신감 있는 모습, 그게 면접에서 좋은 인상을 남기지 않았을까 싶습니다.이지현 사원 저는 사실 면접에서 ‘무조건 잘 할 수있다’고 했는데….(웃음) 면접보기 전날 너무 떨려서 잠도 오지 않았어요. 새벽에 저절로 눈이 떠지기에 좀 이른 시간이지만 면접장으로 갔죠. 면접 3시간 전에 도착해서 1시간을 로비에서 기다리다 2시간을 남겨놓고 면접장에 올라가 대기하고 있었어요. 혼자 기다리고 있는데, 인사팀 직원분이 저를 발견하시고 긴장을 풀어주셨어요. 면접관님들도 제가 면접 2시간 전에 가장 먼저 도착했다는 얘길 들으셨는지 더 많은 것들을 질문해주셔서 적극적으로 저를 어필했어요. 자신 없는 질문도 일단 ‘할 수 있다’고 당당하게 말씀드렸어요. 정말 운이 좋았죠.Q: 그럼 LG화학인을 꿈꾸는 이들에게 마지막으로 하고 싶은 말이 있나요?이지현 사원 항상 선배님들께서 하시는 말씀이 있는데요. 가장 중요한 건 다른 사람들과의 조화이고, 그 다음은 일에 대한 열정과 지식, 그 다음이 흔히 말하는 ‘스펙’이라고 하시거든요. ‘스펙이 좋은 사람’보다는 함께 웃으며 일할 수 있는 적극적인 분들을 기대하고 있습니다. 자신의 전공을 살려 더 많은 연구와 공부를 하고 싶다면, 그리고 다른 사람들과의 소통에서 재미를 느끼는 분이라면 TS&D 직군에서 날개를 활짝 펼 수 있을 거예요.신정철 사원 좋은 얘기는 이미 앞에서 다 했네요. (웃음) 현재 자신이 속한 환경에서 최선을 다하라고 말씀드리고 싶어요. 학생이라면 전공분야에 대해서 빠삭하게 공부하는 것이 가장 ‘기본’이라고 생각합니다. 서류에서나 면접에서나 ‘제가 전공공부를 열심히 했다’는 부분이 절대로 마이너스가 될 일이 없거든요. 그렇게 하나하나 기본을 밟아나가시면 좋겠습니다.#LG #LG그룹 #LG화학 #직무정보 #구성원정보 #직무인터뷰 #구성원인터뷰 #공채정보 #사원인터뷰
조회수 609

실리콘밸리 스타트업의 문화

스타트업은 현실을 왜곡하는 공간이다. 적은 인력과 자본으로 무에서 유를 창조해야 한다. 시장의 반응이 좋다 싶으면 어느 시점에는 거대 공룡들과 싸워서 살아남아야 한다. 거대 기업들이 동일 시장에 들어오는 것을 비판할 수 없다. 자연스러운 시장의 논리이고, 경쟁이 치열해야 산업의 질도 높아진다.지속적이고 빠른 속도로 현실을 왜곡하기 위해서 가장 중요한게 뭘까? 세번의 창업을 하면서 수많은 실험과 실패를 경험하고 비슷한 길을 걸어 온 멘토들과 이야기하면서 얻게 된 결론은 "견고한 회사의 문화"다.회사의 문화는 보상과 승진, 해고에 의해 결정된다.렌딧(Lendit)을 창업하고 얼마 지나지 않아 미국에 있는 가까운 멘토가 이메일로 링크 하나를 보내줬다. 스톰벤처스(Storm Ventures)라는 실리콘밸리 VC의 남태희 파트너가 뉴욕타임즈와 한 인터뷰였다. 그중 성공적인 실리콘밸리 회사의 문화에 대한 그의 정의는 세번의 창업 동안 모호하기만 하던 내 머리 속을 한순간에 정리해주었다. 본문을 옮기면 아래와 같다:문화란 사람들이 무엇을 해야하는지 일일이 지시를 받지 않아도 올바른 판단을 내릴 수 있도록 하는 보이지 않는 가이드라인입니다. 우리 회사 문화가 무엇이다 말하는 것과 상관 없이, 사실 이는 누가 승진하고, 연봉이 올라가고, 해고되는지와 밀접하게 관련이 있습니다. 회사에 공표된 문화 선언문이 있을 수 있지만, 실제 문화는 보상, 승진, 해고에 따라 정의됩니다. 기업 문화는 회사 내의 누가 성공하고 실패하는지를 보는 직원들에 의해 정의됩니다. 즉 사내에서 성공한 사람은 회사가 무엇을 중요시하는지 보여주는 롤 모델이 되고, 이러한 인식이 기업 문화를 결정합니다.Culture, to me, is about getting people to make the right decision without being told what to do. No matter what people say about culture, it’s all tied to who gets promoted, who gets raises and who gets fired. You can have your stated culture, but the real culture is defined by compensation, promotions and terminations. Basically, people seeing who succeeds and fails in the company defines culture. The people who succeed become role models for what’s valued in the organization, and that defines culture.만약 회사 대표가 비전 선언문의 일부로서 회사의 문화가 어떤 것인지 공식화하고 그것이 회사의 비공식적인 문화(누가 보너스를 받고 승진하고 해고되는지)와 일치된다면 그곳은 최고의 기업 문화를 갖고 있는 것입니다. 하지만 이 둘이 일치하지 않는다면 조직 내에 큰 혼란이 발생하게 됩니다.If the C.E.O. can outline, as part of the vision statement, what the stated culture is, and if that official proclamation of culture is aligned and consistent with the unofficial culture — based on who gets raises and promotions and who gets fired — then you have the best culture. When the two are disconnected, you have chaos.영화 인턴의 한 장면 (출처 : 네이버 영화)외부 사람들에게 자주 회자되는 놀이터 같은 사무실과 식당, 자유로운 출퇴근이 기업 문화를 결정하지 않는다. 이러한 것들은 과거 어느 순간부터 불필요하게 경직되어 온 업무 환경을 조금 더 효과적으로 만드는 변화일 뿐, 현실을 왜곡할 수 있는 견고한 기업 문화의 주축이 되지는 못한다. 고전에서 배울 수 있는 가치인 언행일치가 바로 성공적인 기업 문화의 비결이다.
조회수 5001

Bluetooth Low Energy(BLE) 파헤치기

1. What is BLE?스마트폰이 출시되어 대중화가 될 무렵, ‘스마트’한 개념의 밴드, 워치, 글래스 등이 출시되면서 웨어러블 디바이스 시장이 태동하기 시작했다. 그리고, 2015년 상반기, 애플워치의 등장으로 작은 생태계를 이루고 있던 웨어러블 디바이스들이 다시 한번 각광을 받게 되었다. 각기 생긴 모습은 다르지만 이들의 공통점은 스마트폰과 연동되어 작동한다는 것이었다. 과거부터 기기들간의 단거리 무선통신은 Bluetooth라는 기술이 이용되었다. Bluetooth가 공식적으로 등장한지 약 16년이라는 세월이 흘렀지만, 여전히 기기간의 무선통신에는 Bluetooth가 사용된다. 하지만, 지금 사용되는 Bluetooth는 기존과는 다른 방식이다. 바로 BLE라는 특징을 가진 Bluetooth인데, 바로 이것이 오늘날 다양한 종류의 웨어러블 디바이스들이 태어날 수 있었던 원동력이 되었다. 그렇다면 BLE라는 것이 도대체 무엇일까?그림1. BLE가 뭐지? 먹는건가?과거부터 기기들간의 무선 연결은 주로 Bluetooth라는 기술을 이용했는데, 이들은 기기간에 마스터, 슬레이브 관계를 형성하여 통신하는 Bluetooth Classic이라는 방식을 이용했다. 사람들이 이러한 기기들을 이용하면서 많이 염려했던 것은 ‘Bluetooth를 연결하면 베터리가 빨리 소모된다’, ‘사용하지 않을 때는 Bluetooth 꺼놓아야지’ 등과 같은 베터리 관련된 문제들이었다. 사실이었다. Bluetooth Classic은 다른 디바이스를 무선으로 연결을 하여 사용할 수 있는 편리함을 주었지만, 연결이 되는 동안에는 베터리를 빠르게 소모시켰기 때문에 사용하는 데에 많은 불편함이 있었다.2010년, 새로운 Bluetooth 표준으로 Bluetooth 4.0 이 채택이 된다. 기존의 Bluetooth Classic과의 가장 큰 차이는 훨씩 적은 전력을 사용하여 Classic과 비슷한 수준의 무선 통신을 할 수 있다는 점이었다. 이는 당시 Bluetooth의 최대 단점이었던 과도한 베터리를 소모 문제를 해결하는 기술이었기 때문에, Bluetooth 관련 업계에 큰 반향을 일으켰다. 이렇게 저전력을 이용하여 무선통신을 하는 특징을 Bluetooth Low Energy (이하 BLE) 라고 부르는데, Bluetooth 4.0 이후의 버전들은 이 용어로 대체되서 불리기도 한다. 최근 출시되고 있는 스마트 밴드, 워치, 글래스 등의 웨어러블 무선통신 기기들의 대부분은 이 BLE 방식을 이용하여 무선 통신을 한다.Bluetooth Smart Ready, Smart, ClassicBLE 기술이 등장하면서 Bluetooth 디바이스들은 아래와 같이 3가지로 분류 되었다.그림2. BLE 3가지 분류Bluetooth 4.0과 함께 새롭게 등장한 Bluetooth Smart Ready, Bluetooth Smart에 대해서 살펴보면,Bluetooth Smart Ready 디바이스는 Bluetooth Classic 및 저에너지 Bluetooth 무선통신 (BLE)을 지원하기 때문에 “듀얼 모드” 라디오라고 불린다. 따라서, 이들은 현재 시장에 나와 있는 수억 종의 Bluetooth 디바이스들에 대한 역방향 호환성을 가진다. 종류에는 스마트폰, 태블릿, PC, TV 그리고 셋탑박스 및 게임 콘솔 등이 있다. 이런 디바이스들은 클래식 Bluetooth 디바이스 및 Bluetooth Smart 디바이스들로부터 데이터를 받아, 이들을 유용한 정보로 변환시키는 Bluetooth 시스템의 허브라고 할 수 있다.Bluetooth Smart 디바이스 내에 있는 라디오는 “싱글모드” 라디오라 불리는데, BLE 연결만을 지원한다는 의미이다. 이들은 기존의 Bluetooth Classic 디바이스들과 호환이 되지 않고 듀얼모드 라디오를 가진 Bluetooth Smart Ready 디바이스 혹은 제조업체에 의해 호환성이 명시된 특정 Bluetooth 디바이스에만 연결이 가능하다. Bluetooth Smart 디바이스들은 ‘우리 집의 창문은 모두 잠겨 있는지’, ‘내 인슐린 농도는 얼마인지’, ‘오늘 내 몸무게는 몇 킬로그램인지’ 등과 같이 특정한 형태의 정보를 수집해, Bluetooth Smart Ready 디바이스로 보내기 위해 만들어진 디바이스이다. 종류에는 심박 모니터, 스마트 손목시계, 창문 및 현관 보안 센서, 자동차 키 체인, 그리고 혈압 팔찌 등이 있다.이 글에서는 BLE를 사용하는 디바이스들이 어떤 과정으로 서로 연결되어 통신을 하는지 그리고 이 과정들을 tracking 할 수 있는 장비인 Ubertooth 에 대해 내용을 정리해서 공유해보고자 한다.2. How they communicate?BLE를 지원하는 디바이스들은 기본적으로 Advertise(Broadcast) 과 Connection 이라는 방법으로 외부와 통신한다.Advertise Mode ( = Broadcast Mode)특정 디바이스를 지정하지 않고 주변의 모든 디바이스에게 Signal을 보낸다. 다시 말해, 주변에 디바이스가 있건 없건, 다른 디바이스가 Signal을 듣는 상태이건 아니건, 자신의 Signal을 일방적으로 보내는 것이라고 생각하면 된다. 이 때, Advertising type의 Signal을 일정 주기로 보내게 된다.Advertise 관점에서, 디바이스의 역할은 다음과 같이 구분된다.Advertiser ( = Broadcaster) : Non-Connectable Advertising Packet을 주기적으로 보내는 디바이스.Observer : Advertiser가 Advertise를 Non-Connectable Advertising Packet을 듣기 위해 주기적으로 Scanning하는 디바이스.그림3. Advertiser and ObserverAdvertise 방식은 한 번에 한 개 이상의 디바이스와 통신할 수 있는 유일한 방법이다. 주로 디바이스가 자신의 존재를 알리거나 적은 양(31Bytes 이하)의 User 데이터를 보낼 때도 사용된다. 한 번에 보내야 하는 데이터 크기가 작다면, 굳이 오버헤드가 큰 Connection 과정을 거쳐서 데이터롤 보내기 보다는, Advertise를 이용하는 것이 더 효율적이기 때문이다. 게다가 전송할 수 있는 데이터 크기 제한을 보완하기 위해 Scan Request, Scan Response을 이용해서 추가적인 데이터를 주고 받을 수 있다 (이에 대해서는 뒤에 자세히 설명한다). Advertise 방식은 말 그대로 Signal을 일방적으로 뿌리는 것이기 때문에, 보안에 취약하다.Connection Mode양방향으로 데이터를 주고받거나, Advertising Packet으로만 전달하기에는 많은 양의 데이터를 주고 받아야 하는 경우에는, Connection Mode로 통신을 한다. Advertise처럼 ‘일대다’ 방식이 아닌, ‘일대일’ 방식으로 디바이스 간에 데이터 교환이 일어난다. 디바이스간에 Channel hopping 규칙을 정해놓고 통신하기 때문에 Advertise보다 안전하다.Connection 관점에서 디바이스들의 역할은 다음과 같이 구분된다.Central (Master) : Central 디바이스는 다른 디바이스와 Connection을 맺기 위해, Connectable Advertising Signal을 주기적으로 스캔하다가, 적절한 디바이스에 연결을 요청한다. 연결이 되고 나면, Central 디바이스는 timing을 설정하고 주기적인 데이터 교환을 주도한다. 여기서 timing이란, 두 디바이스가 매번 같은 Channel에서 데이터를 주고 받기 위해 정하는 hopping 규칙이라고 생각하면 된다.Peripheral (Slave) : Peripheral 디바이스는 다른 디바이스와 Connection을 맺기 위해, Connectable Advertising Signal을 주기적으로 보낸다. 이를 수신한 Central 디바이스가 Connection Request를 보내면, 이를 수락하여 Connecion을 맺는다. Connection을 맺고 나면 Central 디바이스가 지정한 timing에 맞추어 Channel을 같이 hopping을 하면서 주기적으로 데이터를 교환한다.그림4. Central and Peripheral3. Protocol Stack디바이스들은 Bluetooth로 통신을 하기 위한 Protocol Stack을 가지고 있다. 일반적으로 네트워크 통신을 하기 위해서는, 통신을 위한 규약인 Protocol을 정의해야 되는데, 이렇게 정의된 Protocol들을 층층이 쌓아놓은 그룹이 Protocol Stack이다. Bluetooth Signal Packet을 수신하거나 송신할 때, 이 Protocol Stack을 거치면서 Packet들이 분석되거나 생성된다.그림5. Protocol Stack위 그림에서 볼 수 있듯이 Protocol Stack은 가장 아랫단부터 크게 Controller, Host, Application 로 나뉜다. 여기서는 Connection 과정에서 필요한 부분인 Physical Layer, Link Layer, Generic Access Profile(GAP), Generic Attribute Profile(GATT)에 대해서 알아볼 것이다.3.1 Physical LayerPhysical Layer에는 실제 Bluetooth Analog Signal과 통신할 수 있는 회로가 구성되어 있어서, Analog 신호를 Digital 신호로 바꾸어 주거나 Digital 신호를 Analog 신호로 바꾼다. 또한 Bluetooth에서는 2.4 GHz 밴드를 총 40개의 Channel로 나누어 통신을 한다. 40개 Channel 중 3개 Channel은 Advertising Channel 로써 각종 Advertising Packet을 비롯하여 Connection을 맺기 위해 주고 받는 Packet들의 교환에 이용된다. 나머지 37개의 Channel은 Data Channel 로써 Connection 이후의 Data Packet 교환에 이용된다.그림6. Channels3.2 Link LayerPhysical Layer의 바로 윗단에는 Link Layer이 있다. Link Layer은 하드웨어와 소프트웨어의 조합으로 구성되어 있다. 하드웨어 단에서는 높은 컴퓨팅 능력이 요구되는 작업들 (Preamble, Access Address, and Air Protocol framing, CRC generation and verification, Data whitening, Random number generation, AES encryption 등)이 처리되고, 소프트웨어 단에서는 디바이스의 연결 상태를 관리한다. 또한 통신하는데 있어서 디바이스의 Role을 정의하고 이에 따라 변경되는 State를 가지고 있다.RoleMaster : 연결을 시도하고, 연결 후에 전체 connection을 관리하는 역할.Slave : Master의 연결 요청을 받고, Master의 timing 규약을 따르는 역할.Advertiser : Advertising Packet을 보내는 역할.Scanner : Advertising Packet을 Scanning하는 역할. Scanner는 아래와 같은 2가지 Scanning 모드가 있다.Passive Scanning : Scanner는 Advertising Packet을 받고 이에 대해 따로 응답을 보내지 않는다. 따라서 해당 Packet을 보낸 Advertiser는 Scanner가 Packet을 수신했는지에 대해서 알지 못한다.Active Scanning : Advertising Packet을 받은 Scanner는 Advertiser에게 추가적인 데이터를 요구하기 위해 *Scan Request라는 것을 보낸다. 이를 받은 Advertiser는 *Scan Response로 응답한다.Scan Request, Scan Response : Advertising Packet type의 한 종류이다. 앞서, 31bytes 이하의 User data에 대해서는 Advertising Signal Packet에 넣어서 보낼 수 있다고 하였다. 하지만 31bytes보다는 크지만, Commection까지 맺어서 보내기는 오버헤드가 큰 데이터가 있을 때, Scan Request, Scan Response를 이용하면 두 번에 걸쳐서 데이터를 나눠 보낼 수 있게 된다. Advertising Packet을 받은 Scanner는 추가적인 User Data(예를 들어, Peripheral 디바이스의 이름)를 얻기 위해 Scan Request를 보내게 된다. Scan Request를 받은 Advertiser는 나머지 데이터를 Scan Response Signal에 담아서 보낸다.이들은 크게 Connection 전의 역할(Advertiser, Scanner), 후의 역할(Master, Slave)로 분류된다.StateLink Layer는 5가지 State를 가지고 있는데, 각 디바이스는 서로 연결이 되는 과정에서 이 State를 변화시킨다. 다음과 같은 5개의 State가 존재한다.Standby State : Signal Packet을 보내지도, 받지도 않는 상태.Advertising State : Advertising Packet을 보내고, 해당 Advertising Packet에 대한 상대 디바이스의 Response를 받을 수 있고 이에 응답할 수 있는 상태.Scanning State : Advertising Channel에서 Scaning하고 있는 상태.Initiating State : Advertiser의 Connectable Advertising Packet을 받고난 후 Connetion Request를 보내는 상태.Connection State : Connection 이후의 상태.아래 그림은 각각의 State를 Diagram으로 나타낸 것이다.그림7. Link Layer State3.3 Generic Access Profile (GAP)Generic Access Profile (GAP)는 서로 다른 제조사가 만든 BLE 디바이스들끼리 서로 호환되어 통신할 수 있도록 해주는 주춧돌 역할을 한다. 즉, 어떻게 디바이스간에 서로를 인지하고, Data를 Advertising하고, Connection을 맺을지에 대한 프레임워크를 제공한다. 그래서 GAP는 최상위 Control Layer라고도 불린다. Advertising Mode일 때, GAP에서 Advertising Data Payload와 Scan Response Payload를 포함할 수 있다.또한 GAP에서는 BLE 통신을 위해 Role, Mode, Procedure, Security, Additional GAP Data Format 등을 정의한다. 이들은 실제 API와 직접적으로 많은 연관이 있기 때문에 그 내용이 상당히 많지만, 여기서는 BLE Connection과 관련이 있는 Role에 대해서만 알아보겠다.RoleBroadcaster : Link Layer에서 Advertiser 역할에 상응한다. 주기적으로 Advertising Packet을 보낸다. 예를 들면, 온도센서는 온도데이터를 자신과 연결된 디바이스에게 일정주기로 보낸다.Observer : Link Layer에서 Scanner 역할에 상응한다. Broadcaster가 뿌리는 Advertising Packet에서 data를 얻는다. 온도센서로부터 온도데이터를 받아서 디스플레이에 나타내는 테블릿 컴퓨터의 역할이다.Central : Link Layer에서 Master 역할과 상응한다. Central 역할은 다른 디바이스의 Advertising Packet을 듣고 Connection을 시작할 때 시작된다. 좋은 성능의 CPU를 가지고 있는 스마트폰이나, 테블릿 컴퓨터들의 역할이다.Peripheral : Link Layer에서 Slave 역할과 상응한다. Advertising Packet을 보내서 Central 역할의 디바이스가 Connection을 시작할 수 있도록 하게끔 유도한다. 센서기능이 달린 디바이스들의 역할이다.3.4 Generic Attribute Profile (GATT)BLE Data 교환을 관리하는 GATT는 디바이스들이 Data를 발견하고, 읽고, 쓰는 것을 가능하게 하는 기초적인 Data Model과 Procedure를 정의한다. 그래서 GATT는 최상위 Data Layer라고도 불린다. 디바이스간에 low-level에서의 모든 인터렉션을 정의하는 GAP와는 달리, GATT는 오직 Data의 Format 및 전달에 대해서만 처리한다. Connection Mode일 때, GATT Service와 Characteristic을 이용하여 양방향 통신을 하게 된다. Service와 Characteristic에 대한 내용은 여기를 참고하길 바란다.GATT도 Data 처리와 관련해서 다음과 같은 역할을 정의한다.RoleClient : Server에 Data를 요청한다. 하지만 처음에는 Server에 대해서 아는 것이 없기 때문에, Service Discovery라는 것을 수행한다. 이 후, Server에서 전송된 Response, Indication, Notification을 수신할 수 있다.Server : Client에게 Request를 받으면 Response를 보낸다. 또한 Client가 사용할 수 있는 User Data를 생성하고 저장해놓는 역할을 한다.4. Packet TypeBLE 통신에서는 두 가지 종류의 패킷인 Advertising Packet, Data Packet만이 존재한다. Connection을 맺기 전에는 Advertising Packet type, 맺은 후에는 Data Packet type으로 Signal을 생성한다. Data Packet은 하나로 통일되지만, Advertising Packet은 특정 기준에 따라서 다음과 같은 성질들을 갖는다.ConnectabilityConnectable : Scanner가 Connectable Advertising Packet을 받으면, Scanner는 이를 Advertiser가 Connection을 맺고 싶어한다는 신호로 받아들인다. 그러면 Scanner는 Connection Request (이하 CONNECTREQ)를 보낼 수 있다. 해당 Connectable Signal을 보낸 Advertiser는 Scanner가 CONNECTREQ가 아닌 다른 타입의 Signal을 보내면 해당 Packet을 무시하고 다음 Channel로 이동하여 계속 Advertising을 진행한다.Non-Connectable : Non-Connectable Packet을 받은 Scanner는 CONNECT_REQ를 보낼 수 없다. 주로 Connection 목적이 아닌, Data 전달이 목적일 때 쓰인다.ScannabilityScannable : Scanner가 Scannable Advertising Packet을 받으면, Scan Request (이하 SCANREQ)를 보낼수 있다. Scannable Signal을 보낸 디바이스는 Scanner가 SCANREQ가 아닌 다른 타입의 Signal을 보내면 해당 Packet을 무시하고 버린다.Non-Scannable : Non-Scannable Signal을 받은 Scanner는 SCAN_REQ를 보낼 수 없다.DirectabilityDirected : Packet안에 해당 Signal을 보내는 디바이스의 MAC Address와 받는 디바이스의 MAC Address가 들어있다. MAC Address 이외의 데이터는 넣을 수 없다. 모든 Directed Advertising Packet은 Connectable 성질을 갖는다.Undirected : 해당 Signal을 받는 대상이 지정되어 있지 않다. Directed Advertising Packet과는 다르게, 사용자가 원하는 데이터를 넣을 수 있다.위의 내용을 종합하면, Advertising pakcet을 아래와 같이 4가지 type으로 나눌 수 있다.그림6. Advertising Packet Type5. How they really communicate?BLE 통신의 핵심은 ‘timing’이다.Before ConnectionConnection 전, 디바이스는 3개의 Advertising Channel을 이용해서 데이터를 주고 받는다고 했다. 이들은 이 3개의 Channel을 자신만의 time interval로 hopping한다. 서로의 hopping 규칙이 일치하지 않기 때문에 Channel이 서로 엇갈리는 경우가 많을 것이다. 예를 들어, Advertiser는 1번 Channel에 Advertising Packet을 보냈는데, 같은 시간에 Scanner는 3번 Channel에 대해서 Scanning을 하게 되면 데이터 전달이 되지 않는 것이다. 하지만 이러한 hopping이 빠르게 자주 일어나기 때문에, 두 디바이스가 같은 Channel에 대해 Advertising와 Scanning이 발생하는 경우도 많이 생긴다. 이 경우에 서로 데이터를 주고 받을 수 있다.After ConnectionConnection이 되면, Advertising은 종료되고 기기들은 Central, Peripheral 중 하나의 역할을 하게된다. Connection을 개시한 기기가 Central이며, Advertiser가 Peripheral이 된다. 그리고 두 디바이스는 엇갈렸던 hopping 규칙을 통일시킨다. 그렇게 함으로써, 매번 같은 채널로 동시에 hopping하면서 Signal을 주고 받을 수 있게 된다. 이는 둘 간의 Connection이 끊어질 때까지 지속된다.6. How they connect each other?디바이스간의 BLE 연결을 iPhone과 Zikto Walk와의 연결과정으로 설명하면 다음과 같다.1) Zikto Walk가 Advertising Channel을 hopping하면서 Advertising Packet을 보낸다.(Zikto Walk의 Advertising Packet 유형은 ADV_IND이다)2) iPhone Bluetooth를 켠 후, Zikto 앱에 Zikto Walk를 등록한다. iPhone은 Advertising Channel을 hopping하면서 Scan을 하다가 연결하려는 Zikto의 디바이스 이름 등의 추가적인 정보를 얻기위해 SCAN_REQ를 보낸다.3) SCANREQ를 받은 Zikto Walk는 SCANRSP를 보낸다.4) Pairing이 완료되고, Zikto Walk는 다시 Advertising Packet을 다시 일정 주기마다 보낸다.5) iPhone에서 Zikto Walk로부터 걸음 수 등의 Data를 받기 위해 Sync 버튼을 누른다. 이 버튼을 누르면 iPhone은 CONNECT_REQ를 보낸다.6) Zikto와 iPhone은 서로 Acknowledging을 시작하고, timing 정보 등을 동기화 한다.7) Connection이 완료된다.8) Connection이 완료된 후, Service Data, Characteristic Data 등에 대한 Data 교환이 일어난다.9) iPhone과 Zikto Walk간에 Data Sync가 완료되면, Connection이 해제되고, 다시 Advertising Packet을 보낸다. 이를 그림으로 표현하면 아래와 같다.그림6. Advertising Packet Type7. Ubertooth디바이스간 BLE를 이용한 통신 과정에 대해 알고나니, Bluetooth Signal Packet도 Capturing 할 수 있을 거라는 생각이 들었다. 검색을 해 본 결과, 오픈소스 Bluetooth Test tool인 Ubertooth라는 장치로 디바이스간의 BLE 통신을 tracking 할 수 있다는 사실을 알게 되었다. 가격은 100달러로 생각보다 저렴했지만 국내에서는 구매할 수가 없었다. 그렇다고 궁금한 것을 해보지도 않고 포기하는 것은 엔지니어의 마인드가 아니지 않겠는가. 직접 아마존 (www.amazon.com)에서 해외구매를 하였다. 이렇게 바다 건너 멀리서 날아온 Ubertooth를 사용했던 경험을 바탕으로, Ubertooth의 원리와 BLE 통신에 대해서 조금 더 자세히 설명을 해보고자 한다.Ubertooth는 10cm정도의 몸체와 그와 비슷한 길이의 안테나를 가지고 있는 매우 작고 귀여운 모양이다. 이것이 이름하여 Ubertooth!그림8. Ubertooth오픈소스이기 때문에 모든 소스가 공개되어 있고, 소스를 빌드하고 사용하는 방법도 Ubertooth Github 및 Ubertooth Blog에 잘 나와 있어서 사용하기가 수월했다.How it works?Ubertooth는 크게 Bluetooth Classic을 tracking하는 기능과 BLE를 tracking하는 기능으로 나뉘는데, 여기서는 BLE 통신을 tracking 하는 원리에 대해서 다루겠다.BLE는 앞에서 언급했다시피, Connection 전, 후로 통신하는 방법이 다르다. 그리고 위의 내용들을 꼼꼼히 읽은 독자라면 BLE 통신에서 가장 중요하다고 언급했던 timing 이라는 것을 기억할 것이다. timing 은 BLE 통신에서 굉장히 중요한 요소이기 때문에, 보다 더 자세하고 쉽게 설명을 해보겠다.종이컵 전화기를 사용하여 대화를 해야하는 두 사람이 있다. 종이컵 전화기는 총 40개가 놓여져 있다. 이 두 사람은 40개 전화기 중 하나를 사용해서 대화를 주고 받고, 일정시간 뒤에 다음번 전화기를 이용해야 한다. 이러한 커뮤니케이션 방식에서 소통을 하기 위해서는 한 전화기로 얼마만큼의 시간동안 통화를 할 것인지, 다음 전화기는 어떤 전화기를 사용할 것인지, 그리고 어떤 방식으로 자신들의 대화를 다른 사람들의 대화들로부터 구분할 것인지 등에 대해 알아야 할 것이다. 이것들이 위에서 말했던 timing 관련 정보이다.실제 BLE 통신에서 timing 과 관련된 정보들은 다음과 같다 : Access Adress, CRC Info, Hop Interval, Hop Increment (해당 내용들에 대한 자세한 설명은 여기를 참고하기 바란다). BLE 통신을 하는 디바이스들은 이 timing 관련 정보를 동기화하여, Connection이 맺어진 이후에 해당 규칙에 따라 Channel을 hopping하면서 데이터를 주고 받는다. Ubertooth는 바로 이 정보를 알아내어, Master, Slave와 같은 패턴으로 Channel을 hopping하면서 대화를 엿듣는다. 아까 말한 종이컵 전화기에 빗대어 말하면, 제 3자(Ubertooth)가 두 사람이 정한 대화 규칙을 알아내서, 매번 이들이 전화기를 바꿔가며 대화를 할 때 마다 해당 전화기의 대화 내용을 엿듣는 것이다. 굉장히 흥미로운 방법이 아닐 수 없다. 그렇다면 Ubertooth는 어떻게 이 정보를 알아낼까?Before Connection두 디바이스가 연결되기 전, Ubertooth가 timing 관련 정보를 알아내는 방법은 매우 간단하다. Scanner가 Advertiser에게 Connection을 맺기위해 보냈던 CONNECT_REQ을 기억하는가? 공교롭게도 해당 패킷에는 이 네 가지 정보가 전부 들어있다. Ubertooth는 그 정보를 추출해내어 저장해 두고, 그 규칙에 맞게 Channel을 hopping하면서 Signal Data를 전부 엿듣는다.그림9. Ubertooth로 Capture한 CONNECT_REQ packetAfter Connection이미 연결된 디바이스들은 CONNECT_REQ를 보낼 일이 없다. 그러면 Ubertooth는 Connection 이후의 상황에 대해서는 Signal Data를 엿듣지 못하는 것일까? 아니다. Connection 이후의 상황에 대해서 Ubertooth는 다음과 같은 방법을 이용한다.BLE Signal Packet은 Advertise Mode이든 Connection Mode이든간에 무조건 하나의 Signal Packet format만 존재하기 때문에, Packet마다 특정 정보가 존재하는 부분은 어느 Packet에서나 똑같다. 4가지 정보 중 Access Address라는 것은 모든 Signal Packet마다 존재한다. Access Address라는 것은 두 디바이스간의 Unique한 Connection을 나타내는 4bytes 크기의 Identifier로써, CONNECT_REQ를 보내는 디바이스에 의해 랜덤하게 생성된다. Ubertooth는 37개의 Data Channel을 hopping하면서 모든 Data Packet의 Access Address를 추출해내어 Look Up Table 형태로 저장해 놓는다. 그리고는 각각의 Access Address가 등장한 횟수를 세게 되는데, 가장 먼저 특정 횟수만큼 등장한 Access Address를 target으로 잡는다. 나머지 3가지 정보는 각각 추출해내는 방법 및 알고리즘이 따로 존재하는데 해당 내용도 위에 언급한 사이트에 잘 나와있다. 이렇게 해서 네 가지 정보를 알아낸 Ubertooth는 두 디바이스와 같은 패턴으로 Channel을 hopping하면서 Signal Data를 엿듣는다.그림10. Ubertooth로 Capture한 Aceess Address과 나머지 3가지 정보들이렇게 보면, Ubertooth로 모든 것을 할 수 있을 것처럼 보이지만, 몇 가지 한계점이 있기도 하다. Ubertooth가 timing 관련 정보를 얻어내는 과정에 대해 다시 한 번 생각해보길 바란다. 잘 모르겠다면, 직접 Ubertooth 구매하여 테스트를 해보는 것도 엔지니어로써 굉장히 좋은 경험이 될 것이다.8. ConclusionBLE 통신과 이를 tracking하는 Ubertooth에 대해서 알아보았다. 매우 장황한 내용처럼 보이지만 이것도 매우 압축해서 설명한 것이다. 하나하나 디테일하게 쓰기 보다는 BLE를 처음 접하는 사람이 최대한 이해하기 쉽도록 작성하는 것에 초점을 맞추었다. 위의 내용들을 바탕으로, 독자들이 BLE에 더 넒고 깊은 지식을 얻게 되었으면 하는 바램이다. 글을 읽으면서 Bluetooth Classic은 어떻게 통신하는지에 대해 궁금하신 분들도 있을거라 생각한다. 이에 대해서 간단히 언급하자면, Bluetooth Classic 통신 방식은 BLE보다 훨씬 더 복잡하다. BLE에 대해서 어느 정도 알게 되었다면, Bluetooth Classic에 도전해보는 것도 괜찮을 것이다. BLE내용과 관련해서 보충이 필요한 내용이나, 관련 경험 혹은 궁금한 점 등에 대해서 아낌없이 조이와 공유해주길 바란다.9. ReferenceAkiba, “Getting Started with Bluetooth Low Energy: Tools and Techniques for Low-Power Networking”, O’Reilly Media(2015)http://www.slideshare.net/steveyoon77/bluetooth-le-controllerhttp://www.hardcopyworld.com/ngine/aduino/index.php/archives/1132https://www.bluetooth.org/ko-kr/bluetooth-brand/smart-marks-faqshttp://trvoid.blogspot.kr/2013/05/ble.htmlhttp://blog.lacklustre.net/posts/BLEFunWithUbertooth:SniffingBluetoothSmartandCrackingItsCrypto/#조이코퍼레이션 #개발팀 #개발자 #개발환경 #업무환경 #인사이트 #경험공유
조회수 1494

원하는 정보를 5초 안에 인지할 수 있게 하자

우리나라에서 웹 서비스가 아이디어에서 출발해 출시되기까지 여러 단계를 거치게 되는데 크게는 기획, 디자인, 개발의 3단계를 거치게 된다고 볼 수 있다. 각 단계별로 세분화된 역할들이 있어도 결국은 각각 기획자, 디자이너, 개발자로 분류된다. 어니스트펀드에서는 그들이 제품개발팀을 이루고 있다.어니스트펀드 제품개발팀나는 그중 개발자로 속하고 퍼블리싱 & 프론트 개발을 하고 있다. 퍼블리싱은 디자이너가 그린 디자인된 화면을 웹페이지용 프로그래밍 언어라고 할 수 있는 HTML과 CSS로 웹 문서화하는 것이고, 프론트 개발은 HTML과 CSS로 만들어진 웹문서를 사용자의 의도/목적에 따라 기능이 동작하도록(주로 데이터 입출력, 예를 들자면 네이버 검색창의 자동 완성이나, 네이버 메인의 다음 뉴스 보기 등) 기능을 개발하는 것이다.어니스트펀드에서는 팀원들이 자신의 지식/경험을 공유하는 브런치 글을 돌아가면서 쓰고 있고 나도 함께하기로 결정하였다. 내가 가치 있게 공유할 수 있는 내용이 무엇인지를 고민하면서 나의 과거 경험들을 생각해보았다.나는 2002년 웹 디자인을 시작으로 퍼블리싱 업무를 겸하다 2004년부터 퍼블리싱 업무를 본격적으로 했고 2011년부터 스타트업에 합류하면서 기획 및 프론트 개발까지 제품 개발에 있어서 서버 개발을 제외한 사용자와 접하는 모든 업무를 두루 경험하였다. 보통 디자인 전공자들은 기획파트로 전업하는 경우가 많지만 나는 프로그래밍 언어로 코드를 작성하는 것이 재미있어 기회가 닿을 때마다 업무 영역을 넓혀왔다.따라서 기획과 디자인, 퍼블리싱, 프론트 개발에 이르는 사용자와 접점이 많은 다양한 업무를 해오면서 경험한 것을 바탕으로, 서비스를 구성하고 화면을 개발하는 데 있어 도움이 되는 유용한 내용을 공유하고자 한다.1. 많을 땐 나눠서 해결하자정보가 많다는 것은 정리 정돈할 물건이 많다는 것과 비슷하게 생각할 수 있다. 물건이 목적에 맞게 정리되지 않으면 찾기 어렵고 정리해놓더라도 쉽게 어질러질 수 있다. 정보도 마찬가지로 목적에 맞게 정리가 안되어 있을 때 이해가 어렵게 되고, 이해가 어려워서 이해를 돕기 위한 불필요한 설명이 덧붙여지다보면 더욱 이해하기 어려운 결과를 낳게 된다. 그렇게 되면 결국 설명하는 말만 늘어나고 고객의 이해는 저편에 남게 된다.웹페이지가 뜨는데 1초, 훑어보는데 3초, 원하는 정보를 캐치하는데 5초로 충분해야 한다. 사용자가 원하는 정보를 5초 안에 캐치하지 못할 정보의 양이라면 정보를 나누는 것이 좋다. 2. 제목을 생략하지 말자목적으로 나누어진 정보를 사용자가 빠르게 캐치할 수 있도록 돕는 가장 중요한 요소는 바로 제목이다. 제목은 본문을 다 읽지 않아도 내용을 어느 정도 짐작할 수 있게 한다. 따라서 훒어보는데 3초라는 의미는 한 페이지의 메뉴와 제목을 훑어보는데 필요한 시간이다. 이런 제목의 중요성 때문에 제목은 직관적이어야 하고 되도록 생략하지 말아야 한다. 생략을 할 때는 제목이 없어도 이해가 가능하며, 생략된 제목을 누구나 유추할 수 있을 경우가 아니면 제목의 생략을 피하도록 한다. 위 캡쳐화면은 네이버 메인 콘텐츠의 일부를 캡처한 이미지다. 네이버 메인 중 제목이 생략된 예는 왼쪽 하단 영역인 '주제형 캐스트'뿐이다. 다른 영역들은 '뉴스스탠드', '쇼핑' 등 제목을 생략하지 않고 노출시키고 있다. 메인 페이지처럼 목적이 다양한 페이지일수록 콘텐츠의 성격을 분명히 알 수 있게 하는 제목은 짧은 시간 안에 원하는 정보를 찾는데 도움을 준다.3. 한눈에 중요 정보를 읽을 수 있게 하자그다음으로는 정보의 배치이다. 해당 정보가 발생한 원인, 결과 등 고객이 인지하는 과정에 기반한 그룹으로 나누는 것이 좋다. 정보를 배치할 때는 개별 정보의 중요도 순서와 왼쪽에서 오른쪽, 위에서 아래로 흘러가는 흐름대로 배치고 중간에 역행하는 구성이 없는 것이 좋다. 국내 대형 인터넷 쇼핑몰의 상품 목록을 보면서 위 설명을 이해할 수 있다.정보 배치에 정답이 있는 것은 아니지만 마치 정답이 있는 것처럼 상품, 제목, 할인율, 가격, 현재 판매현황에 이르는 순서대로 나열하고 있다. 이는 선두업체를 따라 흉내 낸 것이 아니라 이와 같은 구성이 인지하기에 용이하기 때문에 모두 이와 같이 구성했다고 생각한다.   4. 어렵지 않게 보이도록 하자서비스에 대한 정보를 전달하고 나서 우리가 기대하는 바는 고객이 서비스를 이해하고 우리 서비스를 이용하게 하는 것이다. 쇼핑몰에서는 주문을 받는 것일 것이고, 어니스트펀드의 경우는 대출이나 투자를 신청하는 경우이다. 서비스를 이용하게 하려면 고객의 정보를 필수적으로 입력을 받아야 한다. 어니스트펀드의 경우는 대출 및 투자에 대한 금융서비스이기 때문에 더욱 많은 정보를 고객에게 요청한다. 고객의 정보를 웹 상에서 입력을 받을 때는 "폼"이라는 일종의 정형화된 웹페이지 구성항목을 이용하게 되는데 이것은 정형화되어있기 때문에 남들과는 다른 개성적인 방식을 이용하기는 어렵다. 금융서비스의 입력 폼이 아주 쉽지는 않다는 것을 고객들은 여러 다른 서비스를 이용하면서 어느 정도 알고 있다. 그러나 고객이 중간에 포기하지 않고 제대로 서비스 이용을 완료할 수 있도록 어렵지 않게 만들어야 하고, 언제나 경쟁사의 서비스를 확인하고 경쟁사보다는 어려워 보이지 않도록 만들어야 한다.5. 순서는 반드시 지키자순서는 여러 가지가 있다. 입력해야 할 항목이 무엇인지를 알려주는 입력항목 및 입력하는 창(=입력 필드), 입력하는데 필요한 도움말, 입력해야 할 항목들을 나열하고 전송/입력완료 버튼까지의 순서가 곧 정보의 순서이다. 이 중 쉽게 놓치는 부분은 첫 입력 필드에서 입력완료 버튼까지의 여정 중에 연관이 없는 링크나 버튼을 추가하는 경우이다. 이 순서는 디자인상으로는 잘 구분되지 않을 수 있지만, 웹코드 상으로는 100% 지켜져야 하는 순서이고 디자인과 웹코드의 순서가 일치하면 가장 좋은 결과이다.'다음'과 '네이버'의 로그인 영역을 비교해보자면 두 포탈 서비스 모두 메인 검색창에서 탭키로 아이디 입력 칸까지 이동할 수 있지만, 아이디 입력 후 비밀번호를 입력하고 로그인 버튼을 누르기까지의 탭키 이동 경로가 다르다. 다음 로그인 화면네이버 로그인 화면다   음 : 아이디 입력 -> 비밀번호 입력 -> 로그인 버튼 -> 로그인 상태 유지 순서로 이동한다.네이버 : 아이디 입력 -> 비밀번호 입력 -> 로그인 상태 유지 -> IP보안 선택여부 -> 로그인이다.탭키로 입력필드를 이동하는 경우가 곧 웹코드상에서의 각 입력 필드의 순서가 되는데, '다음'과 같은 경우는 아이디/비밀번호 입력 후 로그인에 대한 옵션을 키보드로 선택하기 위해서는 로그인 버튼을 지나쳐야 선택할 수 있다. 로그인에 대한 옵션은 로그인 버튼을 선택하기 전에 나오는 것이 더 자연스럽지 않을까? 눈에 보이는 순서도 중요하지만 각 입력필드의 논리적 우선순위를 지키는 것 또한 중요하다.6. 틀린 부분을 즉시 명확하게 알려주자고객이 언제나 우리가 기대한 값을 입력해주지는 않는다. 이 경우 너무너무 명확하게도 오류가 발생한 시점에 오류가 발생한 지점을 알려주는 것이 필요하다. 10개의 입력필드가 있는데 입력완료 버튼을 누르자마자 10개 항목 구구절절이 맞고 틀리고를 알려주는 것보다는, 오류가 발생한 시점에 알려주는 것이 훨씬 인지가 빠르다. 따라서 오류 항목을 보여주어야 하는 곳은 해당 입력필드의 다음이고 전송 버튼이나 후속 작업 이전이 되는 것이다. 위 캡쳐화면은 어니스트펀드에서 대출을 받고자 할 때 이름과 생년월일을 입력하는 부분이다. 필자는 생년월일 부분에 5월 32일이라고 없는 날짜 정보를 넣었고, 이와 같은 입력 실수는 사용자가 실수를 했다는 것을 시스템이 "정확한 정보를 입력해 주세요"라고 즉시 알려주고 있어 사용자가 입력을 실수하지 않도록 돕고 있다. 웹 페이지를 보는 고객들은 아무런 도움 없이 해당 서비스를 이해하고 이용할 수 있어야 한다. 똑같은 정보라고 하더라도 어떤 순서로 어떻게 보여주느냐에 따라서 인지와 인식은 크게 개선될 수 있다. 하물며 정보까지 가공을 하게 되면 더욱 큰 개선을 이끌어 낼 수 있다. 각자가 맡고 있는 서비스에서 5초 안에 고객이 원하는 정보를 웹 페이지 내에서 바로 인지할 수 있는지를 생각해보고 아니다면 테스트해보고 개선해보자.#어니스트펀드 #개발자 #개발팀 #UX개발 #철학 #인사이트
조회수 776

누락 없는 인수인계를 할 수 있다면?

안녕하세요 협업툴 플로우입니다.회사 생활을 함께했던 팀원이 퇴사한다고 했을 때, 가장 먼저 무엇이 떠오르시나요? 성공적인 이직과 새 출발을 축하하며 쿨하게 이직 선물을 고민하고 싶지만, 현실은 인수인계에 대한 걱정이 앞서게 됩니다. 새로운 직원을 뽑으면 다행이지만, 그렇지 못할 경우에는 다른 직원이 인수인계를 받아야 하죠. 인수인계는 구전동화와 비슷해서 많은 사람을 거칠수록 내용이 달라지거나 누락되기 쉽습니다. 오늘은 인수인계 누락을 줄이기 위한 확실한 방법에 대해서 알아보려 합니다. 먼저 가장 흔하게 인수인계가 누락되는 세 가지 상황을 볼까요.1. 인수인계 내용이 많은 경우인수인계를 할 수 있는 기간은 길어봐야 1개월입니다. 도의적인 책임을 묻지 않기 위해 대부분 규정대로 1개월 후 퇴사를 하지만, 빠른 경우 2~3일 안에 퇴사를 하는 경우도 있습니다. 매일, 매주, 매월, 매년 했던 일을 정리하기 위해서는 누구에게나 물리적인 시간이 필요합니다. 하지만 인계자(전임자)는 이미 마음이 뜬 상태이고, 알려줄 내용이 많은 상황이라면 내용을 축소하거나 요약하여 인계하는 경우가 발생합니다. 인수자(후임자) 역시 갑작스럽게 많은 양의 정보들을 숙지해야 하는 상황이 온다면 포인트만 기억하게 되고, 전임자가 떠난 후에는 ‘이게 무슨 말이었지?’라는 아찔한 경험을 하게 되죠.인수인계 내용이 많다면, 직원을 붙잡으세요! 회사에 도움이 되는 능력자입니다!2. 책임과 기간이 명확하지 않은 경우퇴사하는 직원은 있지만, 신규 직원을 채용하지 않는 경우도 있습니다. 이런 상황에서는 다른 직원이 일을 맡아야 합니다. 하지만 업무가 바뀌고 쪼개지면 일의 책임과 기간이 불명확해지기 때문에, 아무리 인계자(전임자)가 열심히 설명하더라도 일이 누락되는 경우가 발생합니다. 만약 인수자(후임자)가 들어온다고 하더라도, 업무의 기간이 명확하지 않다면 일을 놓칠 수 있고 중요한 프로젝트라면 회사에 큰 손실을 줄 수도 있습니다.과정 없이 결과만 남은 경우, 처음으로 돌아갈 가능성이 높다.3. 히스토리 없이 결과만 남은 경우디자인 작업물의 경우 수정을 하기 위해서 포토샵, 일러스트 같은 원본 소스 파일이 필요합니다. 문서에도 수정이 가능한 워드(word)나 한글(hwp), 엑셀(xls), 파워포인트(ppt) 파일이 있어야 하죠. 만약 pdf, jpg 파일만 있다면 처음부터 일을 다시 해야 하는 경우가 발생합니다. 파일과 마찬가지로 프로젝트에도 결과물과 소스가 있습니다. 여기서 말하는 소스란 히스토리입니다. 왜 이 프로젝트를 하게 되었는지, A/B 안 중에 A를 결정한 이유가 무엇인지 등 가볍게 말하면 히스토리지만, 중요하게 생각하면 회사의 기밀이자 팁, 노하우로 볼 수 있습니다. 히스토리 없이 결과만 공유된다면 후임자는 전임자의 똑같은 실수를 반복하게 됩니다.누락 없는 인수인계를 할 수 있다면?직원들의 퇴사와 입사가 반복되면 팀장님과 대표, 회사에게는 큰 리스크입니다. 그동안 쌓아온 노하우들이 한순간에 사라질 수 있죠. 인수인계가 제대로 이뤄진다면 퇴사로 인한 부담요소를 조금이나마 줄일 수 있습니다. 협업툴 플로우를 이용해서 말이죠.프로젝트별 파일 보관카테고리만 잘 분류해 놓으면 원하는 파일을 빠르게 찾을 수 있는데요. 플로우는 프로젝트별로 파일을 보관할 수 있어 찾아보기 편리합니다. USB나 외장하드 같은 관리 위험부담이 큰 저장장소가 아닌 클라우드로 저장할 수 있어, 언제 어디서나 다운로드가 가능하죠.댓글 방식의 히스토리업무를 진행하는 데 있어 결과만큼이나 중요한 것이 히스토리입니다. 히스토리를 알고 있다면 기회비용을 줄일 수 있는데요. 플로우는 업무에 대한 히스토리를 댓글 형태로 남길 수 있습니다. 프로젝트별, 업무별로 다른 팀과 논의했던 히스토리, 외주 업체와 공유했던 내용들은 모두 볼 수 있습니다.‘역사를 잊은 민족에게 미래가 없다’라는 유명한 말처럼 회사에서도 역사(History)가 중요합니다. 또 후대가 역사를 알기 위해서는 기록이 수반되어야 하죠. 지금도 늦지 않았습니다. 회사에 안전한 기록을 남기기 위해, 인수인계 누락을 줄이기위해 근본적인 제도가 필요하다면, 협업툴과 같은 업무 도구를 이용해 보시는 것도 도움이 될 수 있습니다.협업툴 플로우 바로가기
조회수 971

반드시 아마존에 판매해야  하는 이유

안녕하세요, 대한민국 사업자들의 해외 전자상거래 진출(아마존 판매)을 도와주는 컨설팅 회사이자 업무대행사 컨택틱의 이이삭 대표입니다.이번 포스트에서는 '제조사들이나 브랜드 오너들이 반드시 아마존에서 판매해야 하는 이유'에 대해서 말씀드리고자 합니다.1. 세상의 흐름, 그리고 유통의 흐름세상은 점점 좁아지고 있습니다. 인터넷의 도래 이후로부터 그 속도는 누구도 예상하지 못할 정도로 빠르게 좁아졌으며, 이제는 유통에도 그 영향이 적극적으로 반영되고 있는 상황입니다. 인터넷 쇼핑이 발달되지 않았던 시절에는 전통 유통 방식인, '제조사 > 도매 > 소매 > 소비자' 이렇게 제품이 유통되었습니다. 하지만 21세기 이후부터는 온라인 쇼핑이라는 개념이 생기면서 더이상 제조사가 도매 상인이나 소매 상인을 거치지 않고서도 세상의 여러 고객들에게 직접 다가갈 수 있는 세상이 열리게 되었습니다. 즉, 이제는 '제조사 > 소비자'로 중간 다리가 없는 유통이 가능해졌다고 볼 수 있습니다. 인터넷이 발단하기 전의 세상에서는 고객이 제품을 구매하기 위해서는 반드시 오프라인 매장을 방문하는 등 직접 실제로 제품을 볼 수 있어야한다는 전제 조건이 있었습니다. 제조사가 아무리 좋은 제품을 만들었어도, 그 제품을 알리려면 일단 오프라인으로 매장이든지 길거리든지 어떻게든 사람들의 눈에 띄게 해야했기 때문에 도매상과 소매상들이 필요했던 것입니다. 하지만 인터넷이라는 수단이 생기면서, 고객들은 굳이 매장에 가지 않아도, 길거리에서 제품을 보지 않아도, 화면상으로 제품을 확인하고, 심지어 구매까지 할 수 있게 된 것입니다. 여기까지는 모두가 아는 내용일겁니다. 하지만 인터넷을 통한 구매가 가능해졌다고 한들 여전히 해결되어야할 문제는 (1) 인터넷 상으로도 어쨌거나 고객들의 눈에 띄게 해야한다는 점 - 온라인 마케팅 (2) 인터넷 상으로 주문한 고객들에게 배송해야한다는 점 - 물류. 크게 봐서 이 두 가지입니다. 온라인 마케팅은 공부만 한다고 해서 쉽게 되는 것도 아니고, 판매에만 집중하면 되는 소매상들이 오히려 제조사들보다 온라인 마케팅 쪽으로 빠르게 전문 지식을 키우게 되어서 전문 회사들이 생기면서 여전히 제조에 급급한 제조사들은 결국 직접 소비자들에게 판매하는 것을 포기하고 여전히 전통 유통 방식을 고수하게 되었습니다. 그렇다면 물류에 대해서는? 물류 또한 생각 외로 주문 수집, 주문 이행, CS, 사후관리, 등등 제조사들 입장에서는 너무나도 버거운 잡일들이 있었던거라 이 부분도 결국 포기하고 다시 전통 유통 방식을 고수하게 되었습니다. 만약 이 두 문제를 동시에 해결 해주는 어떠한 존재가 있었다면, 제조사들은 정말 전통 유통 방식을 포기하고 소비자에게 직접 유통하는 신세대 유통 방식을 도입할 수 있었을겁니다.2. 그것이 가능하게 한 아마존2010년 이후로부터 아마존이 말도 안되는 성장을 하게 되었습니다. 그 이유가 바로 1번에서 언급한 '세상의 흐름'의 해결책을 제공했기 때문입니다. 아마존은 전세계 고객들을 하나의 사이트로 끌어모으는 데에 성공했고 (고객 유치), 아마존 사이트에 판매자로 입점한 제조사들이 쉽게 고객들의 눈에 띌 수 있도록 플랫폼을 마련했으며 (상품의 노출), 주문이 발생하면 그것을 이행하는 것도 제조사 입장에서 전혀 부담되지 않도록 FBA 라는 배송대행 시스템을 만들어낸 것입니다 (물류 해결). 뿐만 아니라, 아마존은 그 성장을 미국으로만 국한시키지 않고 캐나다, 멕시코, 일본, 영국, 독일, 프랑스, 이태리, 스페인, 호주, 중국, 그리고 인도까지도 확장했습니다. 제가 봤을 때 이 모든 것을 통틀어서 가장 혁신적이라고 보는 것은, 최대한 '동일한 시스템'으로 운영되도록 인터페이스와 판매 절차를 일관 시켰다는 것입니다. 즉, 아마존 미국에서 판매하던 셀러는 아마존 일본에서 판매하는 것이 거의 동일할 정도로 메뉴 구성이 비슷하고 입점 및 상품 등록의 절차가 비슷합니다. 제조사들이 중간 유통을 버리지 못한 문제를 단 번에 해결하고, 심지어 더 나아가서 전세계적으로 확장까지 한 아마존 - 제조사들의 입장에서는 아마존에 판매하지 않을 이유가 없는 것이나 마찬가지입니다.3. 앞으로 다가올 제조사만의 세상이런 맥락에서, 기존의 도소매업자들은 어떻게 되는 것일까요? 답은 간단합니다: 도소매 상인들이 설 자리는 없어집니다. 가만히 생각해보면 그 이유는 매우 간단합니다. (1) 평균 소비자 가격의 저하 - 세상이 작아지면서 고객들도 판매가격에 대해 스마트해집니다. 검색 한 번만 하면 특정 제품의 퀄리티, 후기, 질문, 가격대, 등등 못알아볼 것이 없습니다. 자연스럽게 판매자들도 가격 경쟁이 심하게 일어날 수 밖에 없고, 전체적인 평균 소비자 가격이 저하될 수 밖에 없습니다 (2) 마진폭이 넓은 제조사의 유리함 - 1번과도 연관이 있지만, 전체적인 소비자 가격은 내려가는데, 안그래도 적은 수익 마진을 챙기고 있는 도소매 상인들은 결국 나가떨어지게 됩니다. 매우 당연한 얘기입니다. (3) 마케팅 지출 여유분 - 이 부분도 역시 2번 마진폭과 연관이 있습니다. 세상은 좁아지고, 온라인 소비자들은 스마트해지고, 평균 소비자가가 낮아지는 와중에 판매자들간의 경쟁은 더욱 심해집니다. 그럼 그 경쟁에서 이기려면 어떻게 해야하나요? 바로 온라인 광고입니다. 온라인 광고는 전부 돈, 돈, 돈입니다. 당연한 얘기지만 마진폭이 넓은 제조사만이 마케팅에 지출할 여유 금액이 있기 때문에 결국 살아남는 것은 제조사만입니다.혹시 이 글을 읽고 있는 제조사가 있다면, 그리고 아마존에 판매하고 있지 않다면 오늘부터라도 당장 아마존 판매에 대해 알아보시길 적극적으로 추천드립니다. 2018년 기준 아마존 시장은 제가 봤을 때 더 이상 블루오션은 아니며, 오렌지 오션 정도 됩니다. 2020년 정도 되면 아마존US는 레드 오션이 될거라고 예상합니다. 아직 아마존 유럽 시장, 호주 시장, 일본 시장 등은 포화 상태가 아니라서 조금 더 시간적 여유는 있겠지만, 시장이라는 곳 자체가 원래부터 먼저 자리 잡는 사람들이 임자인 시스템입니다. 하루라도 빨리 시장을 선점해야 됩니다. 대한민국 제조사분들 중에 아마존 진출에 도움이 필요하신 분들은 언제든지 컨택틱을 찾아주세요.
조회수 3153

모니터링 기본 상식 - CPU Steal Time

클라우드 서비스를 사용하시는 많은 분들이 CPU Steal Time에 대해 문의합니다. CPU Steal은 클라우드 서비스와 물리 서버의 환경차이에서 발생하는 대표적인 지표이기도 합니다. CPU Steal Time이 높아지면 CPU 부하율이 높아지기 때문에 웹 서비스에 장애를 초래하기도 합니다. 가상화를 위해 자원을 분배하는 과정에서 cpu의 자원을 빼기는 것이기 때문에 클라우드 사용자 입장에서는 억울한 감이 있는 지표이기도 합니다. 하지만 클라우드 서비스가 공유 자원을 효율적으로 사용하는 것이기에 어쩔 수 없는 부분이기도 합니다. 그럼 이 CPU Steal Time 또는 CPU Stolen Time이라고 불리는 지표에 대해 알아보도록 하겠습니다.  CPU Steal Time이 무언가요?CPU Steal time은 은 하이퍼 바이저가 다른 가상 프로세서를 서비스하는 동안 가상 CPU가 실제 CPU를 기다리는 시간을 백분율로 표시한 값입니다.가상 환경에서 동작하는 가상 시스템 (VM)은 단일 호스트에있는 다른 인스턴스와 리소스를 공유합니다. 공유하는 리소스 중 하나가 CPU주기입니다. VM이 실제 서버에있는 동일한 크기의 4 개의 VM 중 하나 인 경우 해당 CPU 사용률은 모든 CPU주기의 25 %로 제한되지 않습니다. CPU 사용 비율보다 많은 비율을 사용할 수 있습니다.CPU Steal Time은 어떻게 확인하는가?Linux top 명령을 실행하면 주요 성능 메트릭의 실시간보기를 볼 수 있습니다. 그 중 하나는 CPU를위한 것입니다.이미 경험 한 두 가지 통계는 % id (percent idle)와 % wa (percent I/O wait)입니다. % id가 낮 으면 CPU가 열심히 작동하고 있는 것이며 % id가 높으면 남은 용량이 많지 않은 것입니다. % wa가 높으면 CPU는 실행할 준비가되었지만 I / O 액세스가 완료 될 때까지 기다리고 있습니다 (디스크에 저장된 데이터베이스 테이블에서 행을 가져 오는 것과 같습니다).% st 또는 % steal time은 표시된 마지막 CPU 메트릭입니다.CPU steal time이 높으면 어떤 상황이 발생하는가.백그라운드에서 장시간 걸리는 작업의 경우, 다른 VM들과 CPU 주기를 공유하는 과정에서 조금 더 느리게 작업이 마무리 될 수 있습니다. CPU steal time은 이런 경우 작업을 중지시키는 요소로 작용하지 않습니다. 가끔은 리소스를 나누는 과정에서 작업이 더 빠르게 끝나기도 합니다. 하지만 웹앱의 경우 실시간 처리가 필요한 경우들이 있습니다. 많은 웹 응답이 이뤄져야 하는 상황에서 cpu steal time이 높아지고, 그로인해 성능이 4배이상 감소한다면 중요한 리케스트가 처리되지 못하면서 서비스에 장애가 발생할 수도 있습니다. CPU steal time이 높은 원인은?cpu steal time이 높은 원인은 둘 중 하나입니다.  더 많은 CPU 리소스를 가지고 있는 VM을 필요로 합니다. (여러분의 문제입니다.)물리버서가 과대 판매되어 가상화 장비가 공격적으로 경쟁하는 상황입니다. (여러분의 문제가 아닙니다. 아마존 나빠요.)아쉽게도 cpu 매트릭만으로 위 두가지 상황을 판별하는 것은 쉽지 않습니다. 하지만 같은 역할을 하는 복수의 호스트를 여러개 가지고 있다면 다음과 같이 분별해 볼 수 있습니다.  1. 리소스 부족의 경우위 그림처럼 모든 VM에서 %st(cpu steal time)이 높다면 시스템이 더 많은 cpu를 사용해야 한다는 것을 의미합니다. 더 높은 사양의 VM을 선택하셔야 합니다. 2. 클라우드 사업자의 과다 판매의 경우위 그림처럼 일부의 VM에서만 %st(cpu steal time)이 높다면 같은 물리 호스트에 있는 다른 VM들이 서버의 자원을 과다하게 사용하고 있을 확률이 높습니다. 물리적으로 다른 호스트로 이동하여 해결 할 수 있습니다.대처 방법을 알아보자.일반적인 경우 steal time이 20분동안 10%를 넘기는 상태에서 유지되고 있다며, VM은 정량 보다 느리게 동작하고 있을 것입니다.인스턴스를 중지하고 다른 물리 서버로 이동하세요. 그래도 steal time이 높다면 cpu 리소스를 업그레이드하세요. 그리도 steal time이 높다면 클라우드 서비스 제공자에게 문의하세요.클라우드 서비스가 과설계된것은 아닌지 알아보세요. 와탭을 사용해서 cpu steal 매트릭을 추적하세요. 최근 와탭에 들어오는 가장 많은 문의 중 하나가 cpu steal입니다. cpu steal로 인해 cpu 부하율이 80%이상으로 올라가는 경우 클라우드 서비스에 익숙하지 않은 분들은 많이 당항하게 됩니다. 이런 경우 너무 곤란해 하지 마시고 일회성 이슈인지 체크하시고 반복된다면 cpu 리소스를 업그레이드 하거나 서비스를 다른 물리서버로 이동하시기 바랍니다. 제가 가지고 있는 sample중에 cpu steal이 나온 케이스가 없지만 whatap.io는 cpu steal 값을 5초마다 저장하여 제공합니다.  관련 urlhttp://hakurei.tistory.com/67[Linux] 가상환경에서의 CPU Steal Time 개념물리 장비에다가 여러대의 가상머신을 두는 가상환경을 구축하는 경우가 많다. 가상머신이 많아지는 경우, 동일한 물리 장비에서 제공되는 환경이다보니, 특정 가상머신이 CPU를 많이 차지하게 되면, 다른 머신들도 따라서 느려지게 되는데, 이 현상을 CPU Steal이라고 한다. CPU를 많이 차지하고 있는 머신의 CPU Steal Time은 낮게 측정이되고, 같은 물리 장비에 구성된 다른 가상 머신의 경우 CPU Steal Time이 높게 측정이..hakurei.tistory.com http://www.stackdriver.com/understanding-cpu-steal-experiment/» Understanding CPU Steal – An Experimentwww.stackdriver.com http://blog.scoutapp.com/articles/2013/07/25/understanding-cpu-steal-time-when-should-you-be-worriedUnderstanding CPU Steal Time - when should you be worried?blog.scoutapp.com #와탭랩스 #개발자 #개발팀 #인사이트 #경험공유 #일지

기업문화 엿볼 때, 더팀스

로그인

/