스토리 홈

인터뷰

피드

뉴스

조회수 852

광고의 간소화 - 영상트렌트 "6초로 답을 찾다."

Youtube 6초 범퍼광고“손이 가요, 손이 가 OOO에 손이 가요”  대한민국 20대 이상이라면 해당 CM송이 어떤 제품의 영상광고인지 아마 바로 알 수 있을 것입니다.   1991년도에 TV매체를 통해 전달된 새우깡 광고는 당시 메가 히트를 하였고, 이로 인해 지금까지 국민 CF로 자리매김하고 있는 중입니다.    최근 가장 임팩트 있었던 영상광고는 EXID의 하니가 모델로 등장하여 초특가를 외쳐되던 야놀자 광고와 2017년 김희철과 설현이 등장하여 중독성 있는 문구와 ‘하드 캐리' 카피를 사용했던 G마켓 광고라고 생각합니다.  지금 이 글을 작성하면서도 야놀자 광고송을 흥얼거리고 있는 정도면 이 광고의 영향력이 얼마나 큰지에 대해 몸소 체험하고 있는 중이니까요.   과거부터 지금까지 영상 광고업계는 기억에 남는 광고 소재를 소비자들에게 주입시켜 해당 브랜드를 지속적으로 인지시키기 위해 노력하고 있습니다. 브랜드 인지도 상승은 결론적으로 재구입을 유도하는 가장 중요한 요소로 작용되니, 각 브랜드에선 영상 콘텐츠 소재에 심혈을 기울이는 게 당연시되었고, 영상 광고들의 영향력을 그렇게 커져갔습니다. 하지만 최근 트렌드는 기존의 틀을 깨고 새로이 변경하고 있는 추세입니다. 과거 TV 매체를 통해서만 영상광고를 볼 수 있었던 것에 비해 현재는 다양한 SNS 채널의 광고매체를 통해 영상 광고를 게재할 수 있으며, 인터넷의 발달로 TV에서 PC, 그리고 모바일로의 유저들의 이동으로 인해 매체 변화가 이뤄지며, 이로 인한 영상 컨텐츠의 형식 역시 꾸준히 변화하고 있는 상황입니다. 다양한 종류의 광고들도 그러하듯 영상광고 역시 시대를 거듭날수록 그 형태가 변화되고 다양해지고 있습니다.  특히 최근에 있어서 영상 컨텐츠는 과거 짜임새 있는 스토리텔링 형식에서 간략화하고 임팩트 있는 형식을 추구하고 있습니다.   그리고 그렇게 해서 등장한 광고 형식의 Youtube의 범퍼 광고입니다. 범퍼 광고는 2016년 Youtube에서 새롭게 공개한 광고 형태인데, 당시 광고업계 에센 범퍼 광고의 구조를 보고 의아해했었습니다. 당시 업계 표준이었던 15~30초 광고를 단, 6초로 압축하여 스토리를 전달해야 하니 당연한 반응이 아닐 수 없습니다.    (여담이지만 과거 미국 한 패스트푸드 체인의 영상 컨텐츠는 무려 13시간 동안 TV에 반영되어 기네스북에  최장 시간 광고로 기록되어 있다고 합니다.) 과거 장황한 스토리라인을 펼쳐놓던 영상광고는 달리 이젠 매우 간략한 6초의 영상으로 모든 걸 설명해야 하는 시점이 되었습니다. 그렇게 영상 광고의 트렌드가 변화하고 있는 시점이기도 하고요. 물론 광고 매체가 무엇인지에 따라 6초 광고를 적용하느냐의 여부는 있겠지만, 적어도 지금 2018년도는 보내고 있는 모든 사람들이 주로 활용하는 Youtube엔 6초짜리 범퍼 광고가 매우 큰 효과를 보고 있다는 것은 사실이고, 그렇기 때문에 범퍼 광고를 활용하지 않는 다면 성과 측면에서 효율이 떨어지게 된다는 것은 명백한 사실이 되었습니다. 현재 6초짜리 범퍼 광고를 가장 잘 활용하는 국내 회사는 현재 굉장히 많지만 작년(2017년)엔 LG전자가 스마트폰 ‘G6’의 6초 광고를 잘 활용하여 광고 20일 만에 1,000만 뷰를 돌파하는 성과를 얻을 수 있었다고 합니다. G6의 각 새로운 기능을 6초라는 짧은 시간에 간단하고 재밌는 소재로 풀어놓은 것에 소비자들은 색다른 인상을 받아 더 기억에 남았다는 반응이 많았는데,  이제는 스토리라인이 탄탄한 소재의 광고가 아니더라도 짧고 간략한 광고의 소재가 소비자들에게 먹힌다는 것을 증명했던 광고라 생각됩니다.  혹시 여러분의 브랜드를 알릴 수 있고 제품의 특장점을 소개할 수 있는 영상 컨텐츠를 제작 중이신가요? 그렇다면 재밌고 짜임새 있는 스토리의 광고 영상도 좋지만,  소재들을 압축하여 6초짜리 범퍼 비디오 소재도 같이 제작해보는 건 어떨까요? 현재의 영상 광고의 트렌드는 이미 6초로 간소화된 범퍼 광고이니까요.                                 오피노 자세히 보러가기 
조회수 1982

소셜 기부 플랫폼 3대장

그동안 3대장 시리즈를 통해 수많은 서비스들을 소개해 드렸습니다. 창업 보육기관과 엑셀러레이터를 소개해드리기도 했고 스타트업을 주로 다루는 미디어들을 소개해드리기도 했지요. 이번에는 조금 더 특별한 서비스를 소개해드리려고 합니다."혹시 기부하고 계신가요?"2016년 '아름다운 재단' 산하 '기부문화연구소'의 발표에 의하면 2015년 대한민국 국민 중 기부를 하는 사람의 비율은 45.6%로 지난 2013년 조사 때 나왔던 48.5%보다 2.9%가량 낮아졌으며 2005년 조사에는 68.6%였으니 10년 사이에 무려 23%가 낮아진 겁니다.[출처] 기부문화연구소그렇다면 기부를 하지 않는 이유는 무엇일까요? 해당 연구소에서 발표한 자료에 따르면 가장 큰 이유는 경제적인 이유였습니다. 그다음으로 기부단체를 믿지 못한다는 답변과 기부에 관심이 없거나, 기부 방법을 알지 못해서라는 답변이 가장 많았습니다.[출처] 기부문화연구소그렇다면 이 문제를 해결할 수 있는 방법이 무엇일까요? 경제적인 어려움 없어도 기부를 할 수 있고, 신뢰를 얻을 수 있고, 기부에 관심을 유도할 수 있으며, 기부를 쉽게 접할 수 있게 할 방법. 이런 문제들을 해결하기 위해 나온 서비스가 있습니다.1. 네이버 해피빈2005년 7월에 시작된 해피빈은 네이버에서 운영하고 있는 기부 플랫폼입니다. 국내 최초의 공익 플랫폼이라고 자신들을 설명하고 있죠. 초기의 해피빈은 자사의 서비스를 이용하는 유저들에게 콩을 나눠주며 그 콩을 통해 기부를 쉽게 할 수 있도록 만들어졌습니다. 이후 미투데이 같은 서비스에도 도입하며 점점 더 큰 규모로 성장을 했죠. 현재는 자사의 서비스에서 받을 수 있는 방법들은 거의 사라졌고 해피빈 내에서 활동을 하면 받을 수 있는 해피에너지 스탬프를 통해 콩을 충전할 수 있습니다.2017년 현재 해피빈2017년 현재의 해피빈은 다양한 프로젝트를 할 수 있습니다. 나눔기부를 통해 도움이 필요하신 분들이 모금을 할 수 있으며 공감펀딩을 통해서는 일종의 리워드형 크라우드펀딩을 하고 있습니다. 정기저금은 기부를 위해 적금처럼 정기적으로 계좌이체를 통해 기부금을 모아두는 일종의 기부 저금통입니다. 마지막으로 캠페인은 해피빈의 파트너들과 참여형 봉사활동이나 제품 판매와 같은 다양한 형태의 프로젝트를 모아두었습니다.2005년 시작된 해피빈은 2017년 현재 누적 기부액이 674억에 달하며 누적 사용자는 1300만 명이 넘습니다. 우리나라 국민이 5천만 명이라고 보면 4명 중 한 명은 해피빈을 통해 기부를 해 본 적이 있다는 말이니 정말 대단하죠.그런 해피빈이지만 과거에 비하면 기부를 하는 방법이 어려워진 느낌이 있습니다. 콩은 한 개 당 100원의 가치를 가지고 있고 과거에는 콩을 지급해주었지만 현재는 스탬프로 바뀌었고 스탬프는 5개를 모아야만 콩 1개로 바꿀 수 있습니다.  그래서 사용자들은 서비스를 사용하며 얻은 콩으로 기부하던 간접기부에서 직접 충전한 콩으로 기부하는 직접 기부 형태로 발전하고 있습니다.실제로 서비스가 시작된 첫 해에 총 기부금액이 7억 8천만 원 정도였는데 후원콩과 기업 기부금이 6억 5천만 원 정도로 그 비중이 83%에 달했는데 12년이 지난 2016년에는 총 기부금액이 106억 정도였는데 63억이 후원콩과 기업 기부금이었습니다. 그 비중이 59%로 24%가 낮아졌죠. 그 추세는 계속될 것 같습니다. 아직 2달 정도 지난 2017년이지만 그 비중이 이제는 5:5까지 낮아졌네요. 어떻게 보면 기부에 관심을 가지는 사용자는 정해져 있고 그 사용자들은 더 많은 기부를 원하셔서 이런 흐름으로 왔다고 볼 수 도 있겠네요.실제 앞에서 언급했던 기부문화연구소의 자료에 따르면 기부를 하는 사람의 수는 줄었지만 인당 기부금액은 늘어났다고 합니다.[출처] 기부문화연구소 : 금액은 만원단위자료를 보면 인당 기부금액은 우상향을 하고 있으며 기부를 하고 계신 분들의 평균금액 증가는 더 큰 폭임을 알 수 있습니다. 그렇다고 하면 네이버의 정책이 어느 정도 이해는 됩니다. 하지만 더 많은 분들이 기부를 할 수 있는 방법은 계속 고민해서 이어나갔으면 하는 바람이 있네요.2. 같이가치 with 카카오네이버가 하면 다음도 해야겠죠? 2007년 12월 다음도 기부 관련 서비스가 생깁니다. 다음 아고라 내의 희망모금 메뉴로 시작되었죠. 아고라는 네티즌들이 각종 청원을 위해 만들어진 서비스인데 그 안에서 모금활동이 시작되었고 그걸 메뉴화 시킨 겁니다. 2011년 4월 희망해라는 이름으로 독립 서비스로 나왔고 카카오와의 합병 이후 2016년 3월 현재의 같이가치가 되었습니다.2017년 현재 같이가치모금활동으로 시작된 같이가치는 2017년 현재 같이기부라는 형태의 모금활동을 이어가고 있으며 같이타요라는 형태의 독특한 프로젝트를 진행하고 있습니다. 매거진은 같이가치의 소식이나 웹툰 같은 다양한 콘텐츠를 보실 수 있습니다.같이기부는 일반적인 기부활동이라고 한다면 같이타요는 조금은 독특한 형식입니다. 속마음버스는 서울시와 함께 하는 프로젝트로 말 그대로 속마음을 나눌 수 있도록 버스를 제공합니다. 그 안에서 1시간 40분가량의 드라이브를 즐기면서 소중한 사람과 그동안 나누지 못했던 속마음을 나누는 거죠.어떤버스는 미스테리봉사여행이라는 컨셉으로 약간은 진부할 수 있는 봉사활동을 미스테리여행이라는 이름으로 재미를 더했다고 볼 수 있습니다. 봉사활동에 대한 정보를 최소화시켜서 몇 가지 주어진 아이콘만으로 추측을 하고 봉사에 참여하고 싶다면 신청을 해서 낯선 사람들과 단체로 버스에 올라타고 봉사를 하러 가는 겁니다. 2월의 여행은 이미 끝이 났고 3월의 여행에 대한 정보는 아직 공개되지 않았습니다.네이버의 콩과 같은 소셜화폐가 과거에는 있었지만 같이가치로 개편된 이후에는 특별한 소셜화폐가 있지는 않습니다. 대신 SNS로 공유하거나 댓글과 응원을 통해 각 100원이라는 금액을 기부해주며 이를 참여기부라는 이름으로 부르고 있습니다.같이가치는 현재 누적 기부액이 146억을 넘었으며 누적 참여자는 2015년 기준으로 764만여 명이며 이후 자료는 찾기가 어려워 현재는 얼마나 누적되었을지 모르겠습니다.3. 쉐어앤케어지금까지 나왔던 서비스들은 모두 포털이라는 자산을 가지고 시작했다면 마지막으로 소개해드릴 쉐어앤케어는 유일한 스타트업 서비스입니다. 세상에서 가장 쉬운 기부 플랫폼이라고 칭하는 쉐어앤케어는 2015년 7월 베타 서비스를 시작했으니 이제 1년 반이 조금 더 되었네요.2017년 현재 쉐어앤케어쉐어앤케어는 페이스북을 기반으로 기부활동을 하고 있습니다. 도움이 필요한 곳과 도움을 주고자 하는 곳을 연결해주며 그 스토리를 캠페인으로 담아내면 사용자들이 자신의 페이스북으로 공유하여 기부를 할 수 있습니다. 그리고 그 사용자의 게시물을 사용한 사람들이 그 내용에 동감하여 좋아요를 누르면 그 역시 기부로 이어지는 말 그대로 소셜기부플랫폼이라고 할 수 있겠습니다. 앞에서 기부문화연구소의 발표에 의하면 경제적인 이유로 기부를 못한다는 답변이 가장 많았는데 현재 쉐어앤케어는 온전히 스폰서를 통해 기부금액을 모금하며 기부를 사용자들의 공유를 통해 만들어냅니다.실제 쉐어앤케어가 2016년을 결산하며 발표한 자료를 보면 2015년 대비 2016년에 큰 성장을 이루었음을 알 수 있습니다. 2017년 현재 누적 사용자는 41만 명이며 누적 기부액은 14억을 넘었습니다. 이게 작은 스타트업이 이루어낸 성과라고 생각하면 대단하다고 말하지 않을 수 없을 것 같네요.쉐어앤케어는 캠페인이 시작되면서부터 끝까지 모든 과정이 투명하게 나와있습니다. 모금되는 과정부터 모금된 금액이나 물품이 어떻게 전달되는지 후기를 통해 보이며 영수증과 같은 증빙자료들도 게시되어 있습니다. 이것 역시 기부문화연구소가 발표한 기부단체를 신뢰하지 못해서 기부를 안 한다는 답변에 대한 해답이 될 수 있겠네요.그리고 쉐어앤케어도 쉐케뉴스를 통해 자신들의 소식을 전하고 있습니다. 언론 기사나 진행했던 캠페인 관련된 이야기를 들려주네요. 예를 들어 최근 진행되었던 캠페인 눈길 시사회의 진행 소식이나 과거 초인종 의인 故안치범님을 기리는 소화기 기증식 같은 소식들이 눈에 띕니다. 이벤트에서는 자신이 기부했던 금액을 페이스북으로 공유하는 이벤트가 진행 중이네요.쉐어앤케어는 게이미피케이션을 적극적으로 활용하는 모습입니다. 매일, 그리고 매월 공유를 통해 가장 많은 좋아요를 얻은 사용자의 랭킹을 보여주고 있습니다. 가수나 정치인, 다양한 인플루언서들이 상위에 랭크되는 모습을 볼 수가 있네요.하지만 위의 두 서비스와는 달리 간접기부에만 묶여 있습니다. 해피빈과 같이가치를 보면 직접 기부의 비중이 점점 더 커지고 있다는 것을 알 수 있습니다. 쉐어앤케어도 분명 그런 부분에 대해 고민하고 있으러라고 생각이 드네요."그래서 제가 쉐어앤케어에 합류하였습니다."그동안 3대장 시리즈를 연재하면서 제가 몸담았던 서비스를 소개한 적이 없었지만 이번에는 꼭 소개해드리고 싶었습니다. 작은 스타트업이 강력한 인프라를 가진 회사들인 네이버와 카카오가 하고 있는 소셜기부플랫폼에 도전하여 사회공헌을 위해 힘쓰고 있다는 사실도 알려드리고 싶었고, 더불어 제 소식도 함께 알려드리고 싶었습니다.과거에 페이스북에 좋아요 1개당 1달러를 기부하겠다는 글들이 많이 돌았습니다. 쉬운 행동이라 많은 분들이 좋아요를 눌러주었지만 그게 정말 기부로 연결되었는지를 확인할 방법이 없었습니다.그런 사례로 사용되던 이미지그래서 좋아요가 무슨 도움이 되냐는 말이 있었습니다. 하지만 쉐어앤케어의 좋아요는 정말로 도움이 됩니다. 공유는 1,000원이 기부되고 내가 공유한 글에 좋아요가 눌릴 때마다 나의 이름으로 200원씩 기부가 됩니다. 그렇게 모인 기부금이 위에서 말씀드린 것처럼 14억이 넘었습니다.스타트업들이 가장 많이 하는 말이 '더 나은 세상을 만들겠다.'라고 하죠? 쉐어앤케어는 정말 더 나은 세상을 만들기 위해 노력하고 있습니다. 저와 쉐어앤케어 앞으로 지켜봐 주세요.#쉐어앤케어 #쉐케 #기업문화 #회사자랑 #사회공헌 #사회적활동
조회수 1858

데이터 검증이 중요한 이유

데이터 검증은 system error 또는 human error에 의해 garbage data가 쌓이고 있진 않은지, 정상적으로 데이터가 수집되는지 여부를 확인하는 매우 중요한 단계인데요. 오늘은 왜 데이터 검증 단계가 중요한지를 최근 경험을 통해 설명드리고자 합니다.한 고객사에서 데이터 검증 과정 중 GA(Google Analytics for Mobile Apps) 대비 저희가 공급한 툴(와이즈트래커)의 세션수(방문수)가 너무 낮다는 문의를 주셨습니다. 그 수치는 무려 3배 가량의 차이로 acceptable이 힘든 데이터였습니다.사실 세션은 설정이 요하는 분석 항목이 아니기 때문에 측정기준으로 비교해 봐야 했지만, 세션 기준 역시 30분으로 GA와 와이즈트래커와 동일했습니다. 이에 저는 GA에서 over counting되는 요인이 있을거라 생각하고 열심히 구글링 하다 흥미로운 아티클을 발견했습니다. GA SDK V4 적용했더니 세션수 2배 이상 증가했다?>> Link이 문의에 한 사람이 답변을 달기를, GA에는 activity auto tracking 기능이 있는데, 이를 사용할 경우 앱을 백그라운드에 내리거나 프로세스 킬하고 재실행하면 30분 세션 유지기간에 상관없이 세션이 증가한다는 내용이었습니다. 이 말인즉, 사용자가 앱과의 인터렉션이 없어도 GA SDK가 자동으로 새로운 세션을 발급한다는 건데요. 설마했지만 사실 확인을 위해 테스트를 진행했습니다.1) 테스트 앱 개발2) GA SDK v4 적용3) 앱 실행4) 앱 프로세스 종료 후 30분 이내 재실행 or 백그라운드 처리이는 불과 1분 안에 일어난 현상테스트 전 데이터는 사용자 1, 세션 6건이었고, 3단계 앱을 실행하는 시점에 사용자 2, 세션 7이 되었습니다. 정상적으로 사용자 1건, 세션 1건이 증가한 것입니다. 여기서 앱을 종료하고 바로 앱을 다시 재실행 해보았습니다. 그리고 데이터를 보니 오잉? 정말 세션이 증가했습니다. 정말인가 싶어 여러 번 했지만, 아래 캡쳐시간을 보시면 알겠지만, 불과 1분도 채 안되서 3건의 신규세션이 발생한 것입니다.그렇다면 도대체 왜 이렇게 처리한 것일까? 오류일까?정확히 알 수는 없지만 이 기준 자체는 데이터 해석에 큰 오해를 일으킬 수 있습니다. 우리는 보통 평균 값을 갖는 파생지표를 세션을 기준으로 산정합니다. 그래서 보시는 것 처럼, 평균 세션당 화면, 평균 세션 시간이 세션수를 기준으로 나눠진 것을 알 수 있습니다.평균 세션당 화면, 평균 세션 시간, 사용자당 방문횟수와 같은 지표는 사용자의 앱 인게이지먼트를 판단하는 척도로 활용하는 사용성 높은 지표인데, 사용자와 앱 간의 실질적인 인터렉션이 전혀 없는 허수의 세션이 증가하니 세션수와 연관있는 모든 파생지표 데이터가 실제보다 낮은 수치로 표기되고, 이를 가지고 잘못된 해석을 하고 잘못된 액션까지 취할 수 있다는 것입니다.해당 고객은 안타깝게도 세션 뿐만 아니라 세션과 관련된 파생지표 모두 잘못된 기준의 KPI를 보았다고 할 수 있는데요, 사실 아직까지 국내는 GA에서 추출하는 기본 데이터 수준으로 KPI를 활용하는 경우가 많고, 특히 GA의 activity auto tracking 기능을 대부분 true로 설정하여 활용하고 있을 것이기 때문에 데이터 해석의 문제는 생각보다 굉장히 범용적으로 발생하고 있을 것으로 예상됩니다.!! 데이터 검증은 선택이 아닌 필수 과정데이터 분석을 잘하기 위한 전제 조건은 좋은 데이터를 수집하는 것입니다. 하지만 보통 3rd party tracking 업체는 툴을 제공하는 것 까지만 수행하지, 클라이언트의 개발자가 제대로 적용했는지, 적용한 데이터가 정상 수집되고 있는지 등의 과정까지 support 하지 않습니다. 그럼 클라이언트가 직접해야 하는데 이건 현실상 더더욱 힘들 수 밖에 없습니다.그래서 툴을 선택할 때는 반드시 도입 단계에 데이터 검증을 지원하는지 여부를 확인해야 합니다. 2012년부터 빅데이터 분석 바람이 불고 있지만, 현실은 기업에 전문 분석가 1명이 없는 기업이 아직 대부분입니다. 또한 비전문가가 쉽게 배우고 커버할 수 있는 업무도 아니기 때문에 전문 업체의 지원을 받아야 합니다. 안해주면 해달라고 떼 써야 합니다. 초기 도입시에 말이죠. 그래야 이후에 자신감있게 데이터를 신뢰하고 분석하고 액션 플랜을 수립할 수 있습니다.오늘 당장 리포트의 데이터를 의심의 눈으로 한 번 다시 보시는 계기가 되면 좋겠습니다. * WISETRACKER는 모바일 광고 성과 측정부터 In-app 이용자/컨텐츠 분석, 푸시메시지 최적화까지 지원하는 모바일 통합 분석/타겟팅 솔루션입니다. 와이즈트래커 솔루션의 무료체험을 원하실 경우 여기를 클릭해주세요.* WISETRACKER가 제공하는 무료 데이터 분석 컨설팅를 원하신다면 여기를 클릭해주세요. #와이즈트래커 #데이터 #데이터리포트 #데이터분석 #서비스소개
조회수 2006

CTE for postgresql and sqlalchemy

저희 서비스는 가게마다 웹에서 접속할 수 있는 어드민을 제공하는데, 프렌차이즈가 아닌 하나의 독립적인 가게들일 경우 정보를 가져와 나타내는 데는 굳이 CTE 를 쓸 필요가 없지만 프렌차이즈일 경우 본사와 지점들로 나누어져 있어서 본사와 지점들 정보를 다 가져오기 위해서 CTE 를 사용하게 되었습니다.그럼 postgresql 의 CTEReadme 에 나와 있는 예제와 sqlalchemy core 로 변환하는 것까지 살펴보겠습니다.CTE란?Common table expression 의 약자로 ‘공통 테이블 식’입니다.CTE 특징WITH절 같은 SELECT 문에서 효과적으로 테이블 식을 정의 할 수 있습니다.CTE는 VIEW의 사용방법과 비슷하지만, VIEW보다 편리합니다.VIEW와 달리 사전에 CTE를 정의할 필요가 없습니다.개체로 저장되지 않고, 쿼리 지속시간에만 존재합니다.CTE는 재귀 쿼리를 사용할 수 있습니다.재귀 CTE는 여러행을 반환 가능합니다.동일 문에서 결과 테이블을 여러번 참조 가능합니다.재귀 CTE 예제아래 예제는 ‘A’부서 하위에 있는 부서만 추출하는 예제입니다.일단 재귀 CTE를 이용한 쿼리를 사용하려면 ‘WITH RECURSIVE’ 키워드를 추가해야 합니다.Table ‘department’ 인접 리스트로 조직 구조를 나타냅니다.CREATE TABLE department ( id INTEGER PRIMARY KEY, -- department ID parent_department INTEGER REFERENCES department, -- upper department ID name TEXT -- department name ); INSERT INTO department (id, parent_department, "name") VALUES (0, NULL, 'ROOT'), (1, 0, 'A'), (2, 1, 'B'), (3, 2, 'C'), (4, 2, 'D'), (5, 0, 'E'), (6, 4, 'F'), (7, 5, 'G');부서 구조:ROOT-+->A-+->B-+->C | | | +->D-+->F +->E-+->G A의 하위 부서를 추출, 다음과 같은 재귀 쿼리를 사용할 수 있습니다.WITH RECURSIVE subdepartment AS ( -- non-recursive term SELECT * FROM department WHERE name = 'A' UNION ALL -- recursive term SELECT d.* FROM department AS d JOIN subdepartment AS sd ON (d.parent_department = sd.id) ) SELECT * FROM subdepartment ORDER BY name;위의 쿼리는 다음과 같이 설명할 수 있습니다.중간 테이블(Intermediate table), 작업 테이블(work table), 결과 테이블(result table)이 있습니다.초기화비재귀 구간을 실행 (SELECT * FROM department WHERE name = ‘A’)ResultTable = WorkTable = (‘A’) 결과 테이블과 작업 테이블에 결과를 배치합니다.IntermediateTable = () 중간 테이블을 비웁니다.재귀 쿼리 실행(SELECT d.* FROM WT AS d JOIN subdepartment AS sd ON d.parent_department = sd.id) 하위 부서와 작업 테이블을 바꾸고, 재귀 구간을 실행합니다.중간 테이블에 쿼리 결과를 할당합니다.결과 테이블 및 작업 테이블에 중간테이블 추가합니다.중간 테이블을 비웁니다.재귀가 끝났는지 확인2번 과정의 중간테이블이 비어 있으면 재귀의 실행이 종료되고, 결과 테이블은 반환됩니다.중간테이블이 비어 있지 않으면 다시 2번의 과정으로 돌아갑니다.“subdepartment”는 재귀 표현을 포함하고 있는 CTE입니다. 먼저 비재귀항이 평가되고, 다음 재귀항이 평가됩니다. 재귀항은 평가하고 처리하는 데이터가 없을 때까지 결과가 반복적으로 이전 결과에 추가됩니다. 끝으로 마지막 SELECT가 실행되고 데이터는 결과 집합에서 추출됩니다.CTE의 한계점SEARCH 및 CYCLE 절은 구현되지 않습니다.상호 재귀는 허용되지 않습니다.UNION ALL의 마지막 SELECT만 재귀 이름을 포함할 수 있습니다.재귀와 재귀스캔(RecursiveScan) 계획의 비용은 항상 0입니다sqlalchemy 로 변환sqlalchemy 에서 필요한 모듈들을 불러옵니다.from sqlalchemy import Table, Column, Text, Integer, MetaData, select metadata = MetaData() department 테이블을 정의합니다.department = Table('department', metadata, Column('id',Integer), Column('parent_department',Integer), Column('name',Text)) WITH 절부터 시작되는 CTE 부분의 비재귀항을 subdepartment로 만듭니다. 재귀 사용을 위해 .cte( recursive=True) 부분을 붙여줍니다.subdepartment = select([ department.c.id, department.c.parent_department, department.c.name]).where(department.c.name == 'A') \ .cte(recursive=True) department 와 subdepartment 에 각각 alias를 붙여줍니다.subd_alias = subdepartment.alias() department_alias = department.alias() CTE 부분의 재귀항과 비재귀 항을 union all 해주는 subdepartment를 만듭니다. (이 부분이 postgresql 예제 쿼리에서 봤던 WITH RECURSIVE subdepartment 전체를 나타내는 부분이라 할 수 있습니다.)subdepartment = subdepartment.union_all( select([ department_alias.c.id, department_alias.c.parent_department, department_alias.c.name]) \ .where(department_alias.c.parent_department == subd_alias.c.id)) 마지막으로 결과 쿼리를 출력하기 위한 statement를 만듭니다.statement = select([ subdepartment.c.id, subdepartment.c.parent_department, subdepartment.c.name]).order_by(subdepartment.c.name) 원문: CTEReadme참조: 공통 테이블 식 사용 ,공통 테이블 식을 사용하는 재귀 쿼리#스포카 #개발 #개발자 #서버개발 #개발팀 #꿀팁 #인사이트 #조언
조회수 1310

함께 성장하는 커뮤니티를 경험했습니다

임팩트 커리어 Y를 통해체인지메이커를 돕는 커리어를 경험한루트임팩트 김정현 님 임팩트 커리어 Y 2기로 RootImpact(이하 루트임팩트)에서 인턴기간을 마친 김정현 님. 커뮤니티 어시스턴트로, 체인지메이커를 돕는 체인지메이커로 커리어 탐색을 마친 김정현 님의 이야기를 들어보자.*헤이그라운드에서 함께 활약했던 커뮤니티 어시스턴트 분들과 정현 님(가운데)정현 님을 소개해 주세요. 어떻게 사회혁신 커리어에 관심을 갖게 되었나요?어렸을 때부터 막연하게 더 나은 세상을 만드는 것에 대한 로망이 있었던 것 같아요. 직업으로 그런 사회를 만드는데 기여하고 싶다는 고민을 하던 중 우연히 소셜벤처, 소셜섹터에 대해 알게 되었어요. 사회 문제를 해결하는 회사들이 점점 성수동에 모여 함께 일하고 있다는 점도 굉장히 흥미로웠고요.많은 회사들 중에 왜 루트임팩트에 지원하게 되었나요?루트임팩트는 소셜벤처들이 활동하는 임팩트 생태계를 조성하는 조직이에요. 쉽게 말하면 다른 소셜 벤처들이 빠르게, 그리고 잘 성장할 수 있도록 돕는 일을 하고 있죠. 저는 이러한 루트임팩트의 역할이 굉장히 매력적이라고 느꼈어요. 분야에 얽매이지 않고 다양한 방식을 통해 소셜 벤처를 돕는다는 것이 가장 흥미로웠거든요. 마침 휴학을 결심한 때에 임팩트 커리어Y 공고를 보고 지원하게 되었습니다.부트캠프 교육기간 동안 가장 좋았던 것은 무엇인가요?부트캠프 커리큘럼을 보고임팩트 커리어에 지원했다고 말할 정도로 기대가 컸어요.이 질문에 답하기 위해 오랜만에 부트캠프 시간표를 펼쳐보았습니다. (웃음) 사실 저는 부트캠프 커리큘럼을 보고 임팩트 커리어Y에 지원했다고 말할 정도로 부트캠프 교육에 대한 기대가 컸어요. 기대 만큼이나 모든 교육 시간이 좋았습니다. 기존에 개별적인 회사로만 알고 있었던 각각의 소셜벤처들이 함께 모여 하나의 사회적 흐름을 만들고 있는 것을 파악할 수 있었던 ‘임팩트 에코시스템’ 수업부터, 논리적 사고구성에 대해 배우는 ‘로지컬씽킹’, 마케팅 기초를 다지는 ‘디지털 마케팅 101’, 등등 배운 것이 정말 많아요. 소규모 팀 프로젝트로 마지막에 총 리뷰하면서 배웠던 것들을 적용한 기회도 너무 좋았습니다. 무엇보다 부트캠프의 하이라이트는 1박2일로 떠난 ‘라이프 셰어’였어요. 각자가 가지고 있는 가치와 삶의 이야기를 공유하면서 동기들과 한껏 더 친해질 수 있었습니다. 친해지니 교육 시간들이 더 재미있어졌고요!*슬로워크 해리 님의 졸업전시회에 함께 다녀온 임팩트 커리어 Y 2기 동기들과 정현 님 (오른쪽)인턴기간 동안 무슨 일을 했고, 어떤 성장을 했다고 생각하시나요? 저는 루트임팩트 헤이그라운드 팀에 있었는데요. 커뮤니티 어시스턴트로서, 헤이그라운드의 70여개 입주사의 커뮤니티 형성을 돕는 일을 했습니다. 구체적으로 멤버 분들의 조식을 챙기고, 불편한 점이 없는지 매일 체크하고 또 헤이그라운드 내 열리는 여러 행사를 보조하기도 했습니다.헤이그라운드에서의 경험은 저에게 ‘커뮤니티’에 대해서 곰곰이 생각해보는 시간을 만들어주었어요. 한국말로 옮길 때 적절한 말이 ‘공동체’인데, 사람은 어느 하나의 공동체에는 속해 있는 거잖아요. 크게 보면 저는 ‘20대’, ‘여자’라는 기준의 공동체에 속해 있는 거고요. 제가 맡은 업무를 하면서 ‘커뮤니티’에 관심을 갖게 되었고 점점 제 삶에 적용해서 바라보게 되더라고요. 평소에도 함께 있어 몰랐던, 제가 속해 있는 커뮤니티 사람들의 소중함을 알게 되었습니다.*체인지메이커로 한 걸음 더 성장한 후 이제 학교로 돌아가 학업을 마치게 될 정현 님.임팩트커리어 3기 지원자들에게 해주고 싶은 말이 있나요?임팩트 커리어Y는 지원자분들에게 굉장히 많은 기회를 준다고 생각해요. 그 소중한 기회들이 여러분들의 꿈을 실현하는데 도움이 됐으면 좋겠습니다. 우리 각자의 자리에서 최선을 다해 보아요!#루트임팩트 #헤이그라운드 #임팩트커리어 #커뮤니티어시스턴트 #체인지메이커 #부트캠프 #회사찾는법 #스타트업동기동창 #스타트업인턴
조회수 1758

2018 Facebook 광고전략 13가지!

출처 : 구글 이미지많은 사람들이 예상해왔던 디지털 광고시장의 규모를 이젠 데이터를 통해 확인할 수 있습니다.2017년은 디지털 광고 지출이 최종적으로 전 세계적으로 2,800 억달러(41%)에서 1,780 억달러(35%)를 상회하는 해였습니다.하지만 온라인 광고시장이 모두에게 공평한 기회를 주는 민주주의의 세상은 아닙니다. 대부분의 광고시장은 구글과 페이스북이라는 두 가지의 거대한 플랫폼에 집중되어 있기 때문입니다. 안타깝게도, 구글 광고를 공부하기 위한 ebook이나 책은 다양하게 있지만, 페이스북의 경우에는 아무리 찾아봐도 완벽한 마스터 가이드를 찾기가 쉽지 않습니다. 왜그럴까요?두가지 이유가 있습니다…첫번째는 어디에나 거짓말이 있다는 점입니다. 페이스북 전문가가 되고 싶은 마음에 한두가지 성공적인 캠페인가지고 모든 상황에 적용 가능하듯이 얘기를 합니다. 두번째는, 대체로 진짜 전문가들은 침묵을 지키고 조용히 비밀리에 자신들의 지식을 클라이언트에게 적용하고, 밖으로 공유하지 않습니다.저는 온전히 다른 자료들을 참조하지 않고, 2년 동안 페이스북 광고를 진행하면서 느낀것들을 바탕으로 이 글을 써보았습니다. 물론 제가 정리한 내용들이 정답이 아닐 수 있습니다 ㅎㅎ페이스북 광고 퍼널 모델을 만들고 최적화하기 위한 데이터 기반의 상세 가이드를 써보겠습니다.앞으로도 몇 주 동안 이 상세가이드를 계속 정리하여 게재할 예정입니다.- Top of the Funnel Model 전략 : 적절한 대상에 대한 목표를 설정하고, 광고를 생성하고, 메신저 채팅을 통해 참여를 자동화하기 위한 최고의 방법입니다.- Middle of the Funnel Model 전략 : 목표 재설정, 광고 및 랜딩 페이지 수정, 캠페인 확장을 위한 중간 단계 전략입니다.- Bottom of the Funnel Model 전략 : 물론 현재의 고객들이 평생 가치를 높일 수 있도록 유지하는 업셀링, 교차 판매, 그리고 채널에 대한 접근 방식들을 다루는 방법론입니다.이번 글에서는, 여러분의 퍼널 모델에서 가장 상단에 있는(Top of the Funnel Model 전략) 고객들에 대한 캠페인을 만드는 데 초점을 맞춘 페이스북 광고 전략을 13개 보여 드리겠습니다.1. 우리의 잠재고객을 정리하고, "전환 온도"와 함께 제공하라 !페이스북 광고를 통해 고객을 확보하는 데는 두가지 주요한 방법이 있습니다.AudienceOffer만일 우리가 우리들의 잠재고객과 우리의 제품을 함께 활용하는 방법을 알고 있다면 광고 자체는 중요하지 않습니다.잠재고객도 우선순위가 있습니다. 일단 첫번째로 페이스북에서 광고를 집행할 때, [맞춤 타겟]을 가장 우선순위로 설정해두셔야 합니다. 웹사이트 또는 랜딩페이지에 방문한 사람들 , 이메일 구독자들이 맞춤 타겟의 가장 대표적인 예가 될 수 있겠지요. 이 잠재고객들이 전환할 확률이 가장 높습니다.두번째로 중요한 고객은 [유사 타겟]입니다. [유사 타겟]이란 [맞춤 타겟]을 생성하면 페이스북에서 맞춤 타겟과 유사한 사람들을 기반으로 타겟 모수를 확보하기 위해 더욱 생성해주는 세그먼트를 의미합니다. 예를들어보겠습니다.[맞춤 타겟] : 구독 버튼을 누른 사람[유사 타겟] : 구독 버튼을 누른 사람과 유사한 사람이 될 것입니다.마지막으로 일반 타겟팅 고객군(인구 통계학적, 관심사 및 동작으로 구성되는 타겟)을 배포할 수 있습니다. 이 잠재고객들이 가장 많을 것이고, 그들은 전환을 할 가능성이 가장 낮은 고객군이지요.자, 이제 우리가 우리 고객들을 우선순위에 맞게 나누어 놓았으면, 1차 우선순위 고객, 2차 우선순위 고객, 3차 우선순위 고객별로 '어느 정도를 제공해주어야 그들이 전환할까' 라는 개념의 고객군별 '전환 온도' 를 매치시켜야합니다. 출처 : 구글 이미지우리가 가장 우선순위로 지정해두었던 [맞춤 타겟]이 화산과 같이 가장 뜨거운 전환온도를 가지고 있는데, 그들이 일반적으로 우리 제품의 데모버젼이나, 시험 버젼, 할인 프로모션등을 실시했을때, 전환할 확률이 가장 높기 때문입니다. [유사 타겟]은 위의 이미지에서 중간 단계에 속하고 전환 온도는 따뜻한 정도겠지요. 이 유사타겟에서 여러분은 이들의 전환온도를 높이는데 집중해야 하고, 1:1 문의나 ebook 제공과 같은 call to action을 가볍게 불러일으킬 만한 것들을 제공해야합니다. 마지막으로 3번째 우선순위인 [일반 저장 타겟]은 얼음과 같은 차가운 전환온도를 가지고 있겠지요. 아마도 우리 광고 컨텐츠를 클릭해보거나, 영상을 시청하거나, 우리 게시글에 좋아요를 누르는 수준의 행위를 취할 것입니다.2. 고객 추천 광고(Social Proof)로 차가운 전환온도를 높여라!차가운 전환온도를 가지고 있는 사람들(3차 저장된 타겟)의 경우, 실제로 우리들의 제품을 사용해본 다른 사람들의 후기를 광고 컨텐츠로 제작하여 그들에게 노출시키는 것이 효과적입니다. 실제 광고와 관련하여 고객의 실제 견적과 함께 고객 후기 스타일을 컨텐츠 기획에 사용하면 아직 브랜드에 익숙하지 않은 잠재 고객과의 신뢰를 구축하는 데 가장 적합합니다. 실제 고객들이 구매한 제품 사진이나 제품 사용 영상도 차가운 온도의 전환온도를 가지고 있는 고객들에게는 훌륭하게 작동합니다.출처 : 구글 이미지구매 대신 장바구니에 추가하기 이벤트에 대한 전환 온도가 낮은 잠재 고객 광고를 최적화하는 것으로 시작하십시오. 이렇게하면 Facebook에서 많은 양의 전환 데이터를 확보 할 수 있습니다. 어떤 광고 세트를 일시 중지하거나 확장할지 결정하는 것은 일반적으로 구매 당 비용 및 전반적인 ROAS (광고 지출 수익)에 근거해야합니다.Top of the Funnel Model 전략에서 마케터가 저지르는 한 가지 공통적인 실수 중 하나는 단순히 잠재고객을 확보하기 위하여 수익성이 낮은 광고를 너무도 오래 집행한다는 사실입니다. 첫 광고 단계에서 조금의 수익이라도 발생하게 된다면, 여러분은 타겟과 광고를 확장할 수 있습니다. 또한,  Funnel Model의 아랫단계로 갈수록 광고 수익에 훨씬 더 영향을 미칠 수 있습니다.3. 정확한 타겟팅 광고로 판매하라!정말 당연한 얘기겠지만, 적절한 잠재 고객을 타겟팅하는 것은 굉장히 중요합니다. 크리에이티브 광고는 이 단계에서 끝이 나버려도 좋습니다. 예를 들어 블록버스터 영화 제품을 제작하는 동안 CPA가 매우 높고 비용에 큰 차이가없는 광고 소재를 여러 개 만들었습니다. 특정 잠재 고객을 유럽이나 여성 및 젊은 층 인구로 살짝 틀어지게 만들었을 때에는 CPA가 크게 감소했습니다. 즉, 몇 가지 연령 및 위치 인구 통계 (기존 소비자 기반 및 설문 조사를 중심으로)를 테스트하여이 사실을 파악했습니다. 저는 젊은 층이 특정 영화가 낭만적이고 실용적이라고 느꼈던 제품을 소비하기가 훨씬 더 쉽다는 것을 깨달았습니다. 나이가 많은 인구층은 향수라는 감정이 들었을 때 제품을 소비 할 가능성이 더 많았다는 사실을 찾아냈습니다.이로 인해 영화 프랜차이즈의 티켓 판매량이 전반적으로 증가했습니다. 우리가 이 사실을 깨달았을 때 우리는 홍보했던 영화를 더 많이 소비 할 가능성이 큰 잠재 고객을 타겟팅 할 수있었습니다.4. 광고제목을 명확하게 최적화하라!광고의 가장 중요한 구성 요소 중 하나로서, 유료 고객을 성공적으로 유치하려는 경우 잠재 고객에게 명확하고 간결하며 흥미롭고 관련성있는 광고제목을 만들어야합니다. 항상 고객들의 발자취를 따라가는 것이 중요합니다. 여러분의 광고제목 또한 여러분이 광고하고자 하는 영상또는 이미지 컨텐츠와 완벽하게 일치해야합니다.저는 몇 가지 잘못 셋팅 된 광고를 본적이 있습니다. 테스트, 테스트 및 테스트. 약간 변형 된 여러 버전을 실행하고 최고의 실적을 지속적으로 최적화하셔야 합니다. 광고제목과 컨텐츠가 조화를 이루어 높은 전환율을 이끄는 것이 중요합니다. 그러나 여러분이 특정 전환율이 높은 광고제목과 컨텐츠를 찾았다고 생각할 때조차도 실험을 중단하지 마세요.단순히 클릭수를 높이는 주목을 위한 광고카피를 사용하지마세요. 이러한 클릭 수가 전환되지 않는다면 클릭 수를 얻는 데는 아무런 인사이트가 없습니다! 즉, 광고 소재를 CPC ,CTR로 측정하지 마시고, 항상 CPA나 ROAS를 기준으로 커뮤니케이션 할 필요가 있습니다. CPC는 의미없습니다.아래 이미지에 있는 광고제목에서는 좀 더 창의적인 카피보다 41.14 % 높은 전환율을 나타 냈습니다.굉장히 단순하고 직관적인 광고제목이지요?5. 비주얼 하나가 수천개의 클릭을 좌우한다.저는 광고제목이 중요하다고 강조했고, 적절한 타겟팅 역시 중요하다고 얘기를 했고, 고객군별로 어떤 CTA를 제공할지에 대한 것도 중요하다고 했습니다. 그러나 모든 사람들이 페이스북에서 광고를 누르지 않고 스크롤해버리면 이때까지 제가 중요하다고 했던 것들은 더 이상 중요하지 않습니다. 광고에서 사용하는 이미지 또는 비디오는 관심을 끌 수 있는 가장 중요한 요소입니다. 일단 시각적으로 광고를 주목한 다음 광고제목이나 내용을 읽고 우리들이 제공하는 것을 얻기 위해 클릭 할 것입니다. 다행히도, 여러분은 좋은 이미지를 내놓을 그래픽 디자이너나 창조적인 천재가 될 필요는 없습니다. 세 가지가 알면 되니까요. Canva AdEspresso Psychology 아마도 Canva에 대해서는 많이들 알고 계실것입니다. 디자인 된 이미지를 공짜로 사용할 수 있는 것이지요.AdEspresso의 경우 사이트에 거의 모든 업계의 인기있는 Facebook 광고 사례와 상상할 수있는 틈새 시장을 보여주는 검색 엔진입니다.이 세 가지 중 가장 활용도가 적은 것은 Psychology 입니다. 우스운 것이든, 이상한 것이든, 진절머리 나는것이든, 충격적인 비주얼은 사람들을 그 길에서 막습니다. 아래 그림은 이상하지만 제품과 브랜드가 완벽하게 일치합니다. 카피 라이팅은 의도적으로 더 기괴하게 해두는 것이지요. 그리고 그게 핵심입니다.출처 : 구글 이미지다음으로 이미지에 20 %의 텍스트 리밋이 페이스북 정책에 있지요. 그걸 효과적으로 써야 합니다!페이스북 광고의 제목과 설명은 너무 작습니다. 이미지를 먼저 보지 않으면 사람들은 그것을 읽지 않을 것입니다. 그러나 이미지안에 있는 20%의 텍스트는 엄청날 수 있습니다. 주어진 공간을 최대한 활용하셔야 합니다. 특히 동영상 광고의 스크립트 오버레이에 있어서는 더욱 그렇습니다.마지막으로, 시각적인 것(이미지나 영상)과 단어, 광고제목을 우리가 의도하는 고객들의 행동을 목표로하여 초점을 맞춥니다. 한국에도 좋은 예가 있군요.https://www.youtube.com/watch?v=b47648Buy-E     <iframe width="700.000000" height="394.000000" src="//www.youtube.com/embed/b47648Buy-E" frameborder="0" allowfullscreen="">6. 자연 검색 Funnel Model 을 제가공하라 !가능한 가장 좋은 Facebook 마케팅 퍼널 모델을 만드는 방법을 알고 싶으시죠?가장 좋은 자연 검색을 통한 구매자를 볼까요? 이들은 여러분의 비즈니스를 사랑하고, 판매중인 모든 단일 제품을 구매하는 사람들입니다. 그들이 어떻게 우리를 처음으로 발견했는지, 그들이 우리들에 대해 어떻게 배웠는지를 분석할 필요가 있습니다. 무엇이 그들을 우리 브랜드에 사랑에 빠지게 만들었을까요?그런 다음, 그 과정을 재현하셔야 합니다! 예를 들어, 저는 아이들을 위해 30만원짜리 제품을 판매했던 클라이언트와 함께 일했습니다. 그들은 대부분의 부모가 유기적으로 구매하게 된 원인을 알고있었습니다.1. 부모 중 한 명이 Facebook 에서 우리 서비스에 관한 기사를 발견했습니다.2. 그들은 웹 사이트에 와서 홈페이지를 스크롤하여 몇 가지 리뷰를 읽었습니다.3. 가격을 알아 낸 뒤, 제품에 대한 게시물에서 남편 이름을 태깅했습니다.이 프로세스를 염두에 두고 유입 경로를 구축했습니다. 저는는 제품에 대한 짧은 30 초짜리 비디오를 특징으로하는 타겟팅 페이스북 영상 광고를 집행했습니다.  페이스북 영상에 달려있는 링크를 통해, 기사를 읽은 후 사람들을 홈페이지로 유도하였습니다. 원래 저의 계획은 배우자를 태그한 고객들에게 리타겟팅을 실시하는 것이었습니다. 제가 발견 한 것은 원래 광고가 너무 잘되어 사람들이 그 게시물을 공유하고 배우자에게 태그를 붙였으며 결국 많은 사람들이 제품을 장바구니에 추가했다는 사실입니다. 제품 가격은 30만원인데 비해 평균 거래당 단가가 3천원 정도였습니다.자연 유입 경로를 정리해보니 구매를 이끈 것은 낮은 전환온도의 고객들이었습니다. 1) 제품에 대한 영상 광고 시청. 2) 제품에 대한 기사 클릭3) 홈페이지로 이동 4) 배우자와 제품 공유 5) 장바구니에 상품 추가유기적인 퍼널 모델을 재현함으로써, 우리를 들어 본 적이없는 사람들로 하여금 훌륭한 충성고객으로 만들 수 있었습니다. 이 동일한 성공 방정식을 사용하여 여러분의 비즈니스에도 완벽한 퍼널을 구축 할 수 있습니다.7. 고정된 요소와 유연한 요소를 적용하라 !가장 좋은 팁은 문화적 고정 관념과 유연성을 교차적으로 사용해야 하는 것입니다. 예를 들어서, 제가 샌프란시스코에서 광고를 한다면, 나는 제 카피에 "테크 브라더스"를 사용할 것이다. 만약 내가 로스 엔젤레스에서 광고를 한다면, 저는 "모델이 되고 싶어"를 사용할 것입니다.유연성의 경우 저는 가장 높은 감정적인 반응을 이끌어 내는 이미지를 사용합니다. 예를 들어, 만약 제가 뉴욕시의 사람들에게 지역 스타트업 이벤트를 마케팅한다면, 저는 스타트 업 이벤트가 아니라 뉴욕의 사진을 사용해서 광고를 할 것입니다. 그 이유는, 평균적으로, 사람들이 그들의 도시에 대해 더 강한 정서적 연결을 갖기 때문이지요.여기서 얻을 수 있는 교훈은 가장 낮은 CPL[Cost Per Like]을 생성하기 위해 사용해야 하는 사진이 흔히 처음에 예상했던 것과 많이 다르다는 것입니다.만약 여러분이 문화적인 고정 관념을 가지고 유연성과 함께 결합할 수 있다면, 여러분은 낮은 CPL을 생성하게 될 것입니다. 두가지 요소 사이에 균형을 잡는것만은 잊지 마세요.출처 : 구글 이미지8. 3단계에 걸쳐 영상 시퀀스 광고를 집행하라!우리는 아까처럼 잠재고객들의 브랜드 인지도, 페이스북 게시물 참여도, 전환에 따라 맞춤 고객을 정의하고, 전환온도 별로 고객들의 우선순위를 매길 수 있었습니다.영상광고도 마찬가지로, 브랜드인지도로 노출에 중심을 둔 영상 광고를 집행한 뒤, 나중에 10초 이상 영상을 시청한 고객만 묶어서 그들에게 참여를 권장하는 참여형 영상광고를 집행하고, 또 다시 그들이 10초 정도 광고 영상을 시청하면 , 전환을 목적으로 한 영상 캠페인 광고를 다시 집행하시면 됩니다.대부분의 사람들은 그들이 제공하는 제품이나 서비스에 대한 영상 광고는 집행하지만, 왜 이 제품을 사용해야 하는지, 어떻게 이 제품을 사용해야 하는지에 대한 영상 컨텐츠를 만들지는 않습니다.이 방법을 사용하면 잠재 고객에게 관심을 보이면서 왜 그렇게 하는지, 어떻게 하는지를 알려 줄 수 있습니다.출처 : 구글 이미지9. 사용자 기반의 컨텐츠, Social Proof , 인플루언서 마케팅을 결합하라!자료와 페이스북 광고를 통해 완벽한 고객을 공략하는 것과 관련해서는 많은 정보가 있지만, 이런 사람들을 겨냥해야 할 실제 To Do List 에 대해서는 충분한 논의가 없었던 것이 사실입니다.종종, 마케팅 담당자들은 분석에 너무 몰두하여 그들이 페이스북 광고를 사용하는 이유를 잊어 버립니다.성공적인 마케팅 캠페인은 훌륭한 타겟 외에도 훌륭한 창의력을 지녀야 합니다(사진이든 영상이든). 이는 여러분이 핵심 고객과 잠재 고객의 인구 통계에 대해 잘 알고 있어야 한다는 것을 의미합니다. 잘 알고 집행하는 광고에 사람들이 더 많이 반응하는 것은 당연하니까요.더구나, 목표로 삼은 이러한 창의성을 달성하기 위한 가장 좋은 방법은 UGC(User-Generated contents)를 통해 만들어진 것입니다.  UGC 기반 광고는 캠페인 타겟 또는 웹 사이트가없는 캠페인보다 29% 높은 웹 전환율로 전환시킬뿐만 아니라 Facebook 광고 입찰 시스템에서 더 저렴하게 운용할 수 있습니다. UGC 기반 광고는 클릭률이 4 배 높고 클릭당 비용 (CPC)이 평균보다 50 % 하락했습니다.여기 UGC의 멋진 예가 있습니다.아시다시피 좋아요, 댓글 및 공유의 형태로 된 사회적 증거의 정도가 높을수록 광고는 규모가 커지고 더 저렴한 클릭을 받고 더 저렴한 전환을 얻을 수 있습니다. 또한 UGC와 영향력있는 마케팅을 결합한 유명인의 이야기를 통해 빅토리아 팬을 대상으로 광고 타겟을 나눴습니다. 목표로 한 팬을 통해 충분한 Social Proof가 만들어지면 새로운 인구 통계에서 광고를 탐색하는 데 사용되었습니다. 제가 직접 테스트해서 얻은 놀라은 데이터입니다. UGC 컨텐츠를 집행했을 때의 광고 성과클릭률(CTR) : 13.2 % CPC : 35원 CPM : 4천원 비교해 보면, 전통적인 미디어로 최고의 실적을내는 광고는 ... 클릭률 (CTR) : 2.81 % CPC : 200원 CPM : 6천원UGC는 본질적으로 여러분의 영상 광고를 제작하는 데 수천 달러를 지출하는 대신 굉장히 자유롭게 만들 수 있습니다. 실제 고객이 컨텐츠를 만드는 형식이기 때문에 따로 인구통계를 파악하여 타겟팅을 할 필요도 없지요.10. 메신저 봇을 통하여, 퀴즈 컨텐츠 만들기 !메신저 봇에서 실행할 수있는 훌륭한 워크 플로는 Facebook 게시글 댓글에 대한 자동 응답입니다.질문이있는 게시물을 만들 수 있으며, 사람들이 의견에 답변을 제공하고 타겟 고객에게 홍보하도록 권장 할 수 있습니다. 사람들이 소식에 댓글을 남기면 봇이 메신저에서 자동으로 응답하도록 설정하여 메신저 채널에서 잠재 고객을 확보 할 수 있습니다.즉, 나중에 메신저에서 브로드 캐스트를 보내거나 순서대로 정렬된 메시지 등을 구독하여 직접 이 모든 사람들과 다시 참여할 수 있습니다. 그리고 모든 사용자가 직접 우리 브랜드에 대해 케어를 받게됩니다.페이스북 알고리즘에 의존하여 메신저 광고를 하는 것 보다 페이스북 페이지 팔로잉을 하여 게시물을 노출시키는 것이 훨씬 더 정확합니다.이 페이지의 고정 된 게시물을 살펴보세요. Lifetime Bulb는이 기술을 통해 높은 수준의 리드를 확보하고 있습니다. 또한이 워크 플로우를 통한 잠재고객당 비용은 다른 채널보다 약 80 % 정도 낮을 수 있습니다.출처 : 구글 이미지11. 컨텐츠를 통해 'Context'를 만들어라 !이제 우리가 Mofu(Middle of the Funnel Model) , Bofu(Bottom of the Funnel Model)에 대한 프레임워크가 구축되었다면, 신규고객 전략(Top of the Funnel Model)을 위한 컨텐츠 배포가 비즈니스 성장의 모든 것이 될 것입니다. 핵심은 우리 비즈니스의 특징이나 신뢰도, 연결고리를 다양한 컨텐츠를 통해 지속적으로 노출시키면서 고객들과 끈끈한 관계를 유지하는 것입니다.예를 들어 한달에 한번 고객들을 위한 컨텐츠를 정기적으로 배포하여 Top of the Funnel Model에 속해있는 고객들의 트래픽을 우리 웹사이트로 정기적으로 유입시키는 방법이 있습니다.Facebook이 점점 더 광고 플랫폼으로 진화하게 되면서, 클릭당 비용도 점점 더 비싸지고 있습니다. 이러한 트렌드 때문에, 마케터가 더이상 비효율적인 광고를 집행하는 일을 방지하기 위해 지속적인 관계유지를 위한 컨텐츠 배포를 페이스북에서 진행하는 것은 매우 중요합니다. 12. 경쟁사 타겟을 사용하라!제가 새로운 클라이언트나 고객들을 얻기위해 가장 중요시하게 생각하는 관점은  '많은 사람들이 내 브랜드를 알고 있지만, 더 많은 사람들은 그렇지 않을것이다' 라는 사실입니다.이러한 관점을 가지고 저는 처음으로 저의 경쟁사를 좋아하는 타겟들에게 광고집행을 했습니다. 예를들어서, 만약에 여러분이 Tony Robbins' 라는 브랜드의 고객들에게 무언가를 호소하고자 한다면 그 브랜드를 좋아하는 사람들을 타겟팅하면 되는 것이지요.페이스북은 모든 데이터를 공짜로 제공합니다. 그 중에서도 단연 최고인 것은 경쟁사 타겟이 일반적인 인구통계 타겟팅 보다 훨씬 더 광고와 관련성이 높다는 사실이지요.이 전략은 기존에 우리가 광고 집행을 할때 쓰였던 타겟팅의 인구 통계 정보와 함께 사용하면 더욱 효과적인 성과를 얻을 수 있습니다. 이 전략은 단순히 인구통계만으로 타겟팅을 진행했던 유저들에게 필터링 작용을 사용할 수 있다는 거지요. 그런 다음 우리는 이 두가지 필터를 사용하여, 메세지를 전달할 수 있습니다.출처 : 구글 이미지13. 라이브 영상과 유료 캠페인 광고를 구축하라사람들이 여러분의 비즈니스에 엄청난 참여도와 데이터를 기술적으로 묶어서 페이스북 광고에 사용하는 것은 절대적으로 중요한 일입니다. 여러분은 이미지 컨텐츠를 사용하던, 영상 컨텐츠를 사용한던, 이러한 것들을 다양한 방식으로 셋팅할 수 있습니다. 제가 가장 좋아하는 타겟팅 기술은 매일매일 라이브 영상을 페이스북에서 진행한 이후에, 영상을 시청한 사람들과 라이브 영상에 참여한 사람들을 타겟으로 지정하여 저의 웹사이트에 방문하게끔하는 전략입니다.물론 여러분은 좀 더 다르고 세밀한 방식으로 리타겟팅을 진행해도 괜찮습니다. 이러한 방식을 이용한 리타겟팅은 우리들에게 좀 더 낮은 CPA를 제공할 가능성이 높으니까요. 아래쪽 예시를 참조해주세요.출처 : 구글 이미지여기 까지 다양한 페이스북 광고의 전략론들을 공유해보았습니다.아직은 정리가 제대로 안된 것 같다는 느낌이 들지만 조만간 ebook으로 정리하여 배포할 예정이니 많은 관심 가져주세요.퍼포먼스 마케팅 에이전시, 오피노 바로가기
조회수 1098

[사람이 서비스다] #4 JD, 안드로이드앱 개발 담당

셀잇은 기존 중고거래 시장에서 이용자들이 겪는 불편과 불안감을 해소하기 위해 등장한 서비스라는 자부심을 가지고 구매자와 판매자를 잇는 접점이 되고자 합니다. 이를 위해 서비스를 기획하고 실행하는 저희 구성원들에 대한 이야기를 간간히 들려드리고자 합니다. 좋은 서비스든 아이디어든 결국 사람이 하는 일이니까요-저희가 어떤 생각을 품고 어떤 마음가짐으로 살아가는지에 대해 진솔하게 풀어보고자 합니다. 이 청년들의 이야기, 한 번 들어보실래요? Interviewee: JD (제이디, 개발팀 / 안드로이드앱 개발 담당)Interviewer: Austin (오스틴, 마케터)  우선 자기소개부터 간단히 해주시죠. 흔해 빠진 소개일랑 집어치우고! 최대한 자신을 우리에게 알려봐요! 정~ 뭐라고 쓸지 모르겠으면 자기 이름으로 삼행시라도 해보세요. 우선 저에게 이런 귀찮은 일을 안겨준 브라이언에게 감사의 인사를 전하는 바입니다. 덕분에 독무대에 이어 다시 한번 불면증에 시달리게 되었어요. 그건 브라이언에게 개인적으로 앙갚음(?)을 해주시고, 본인 소개부터 해주세요. 저도 바쁘답니다. 안녕하십니까? 저는 전남 해남의 작은 시골 마을에서 2남 중 장남으로 태어나 안드로이드 개발을 하고 있는 JD라고 합니다. 원래는 게임 개발이 하고 싶어서 프로그래밍 공부를 시작하였지만 어쩌다 보니 앱을 개발하고 있네요. (뭐, 뭐지? 이 ‘신입사원의_패기.wav’ 같은 느낌은?) 그럼 현재 셀잇에서 개발자로 일하시겠군요. 그럼 본인이 하는 일 중에서 이건 나만의 스페셜티다! 하는 부분은 무엇인가요? 당연히 안드로이드 개발입니다. 우리 회사에서 저 밖에 못하는 거죠~(찡긋) (찡...찡긋?) 하하하;; 네네 그렇군요. (셀잇이 잘 되는 이유가 이거였군. 정상적인 놈이 없는...) 그게 다인가요? 개발하시다가 잘 안풀리거나 열 받을 때는 어떻게 하나요? 자세한 건 ‘영업비밀’이니까- 전 안풀리면... 음- (한참을 생각한다)잠을 잡니다. (역시 오늘도 산으로 가는건가…) 아…(포기한 듯) 얼마나 자나요? 한 20분 정도 짧게 자요. 사실 잔다기보다는 자는 척을 하면서 생각을 하는거죠. 읭? 굳이 자는 척을 해야 될 필요가 있나요? 그냥 대놓고 생각하면 안되는건가요? 안됩니다! 온전한 집중을 위해서 자는 척을 해야 해요. (정적) 인터뷰 하는 중에 월드시리즈까지 끝나버렸네요... 올해 모든 야구가 끝나버렸어요 ㅠ (후우... 내가 이걸 왜 시작했을까...) 그럼 일 얘긴 그만하고(더 할 수도 없겠어;;) 업무 외의 시간에는 주로 뭘 하시나요? 듣자하니 야구를 좋아하는 것 같은데- 야구를 봅니다. 한국 야구는 기아를 응원하고, 메이저리그는 한국 선수들이 진출한 팀들을 응원하고 있어요. 주말에는요? 주말이면 아침에 일어나서 메이저리그 두 경기 정도 보고 오후에는 한국 야구를 보면서 하루를 보냅니다. 이제 야구 시즌도 다 끝나서 다가오는 겨울이 두렵습니다ㅠ 차라리 야구선수로 전향하시는게- 만약 실력이 문제라면 사회인 야구팀이라도 해보시는건요? 그건 돈도 많이 들고, 일단 귀찮고-부상 위험도 크고, 일단 귀찮고-그냥 친구랑 캐치볼 하는 것으로 만족합니다. 그리고 일단 귀찮고- 커피나 한 잔 하실래요? 커피나 마시면서 다른 얘기로 넘어가죠~ 괜찮습니다. 저는 카페인 마시면 안되서- 아, 그럼 그냥 계속 하죠. (여자랑은 술 마시고 나랑은 커피도 안 마시냐?-_- 쳇, 근데 이해되네...) 중고에 대해서 어떻게 생각하세요? 중고를 바라보는 가치관 같은게 있으시면 말씀해 주세요. 제가 환경 문제에 관심이 많습니다. 중고거래가 보편적으로 활성화 된다면 상대적으로 공산품의 생산량이 줄어들게 되고, 이는 지구의 자연 환경에 도움이 되지 않을까 합니다. (응? 뭔가 익숙한데?) 제가 예전에 쓴 글을 보신건가요?… 네~ 꼭 중고 거래가 활성화되서 지구 환경을 지켜주세요… 그럼 마지막으로 셀잇에서 이루고 싶은 것은 무엇인가요? 주로 컴퓨터 부품들을 중고 거래를 이용해 구매했던 적이 있는데요. 항상 직거래를 했지만 정상 작동하는지 불안했던 기억이 있습니다. 집에 와서 컴퓨터에 장착해 보고서야 안심을 하곤 했었는데, 셀잇을 이용하면 최소한 이런 걱정 없이 믿고 안심하며 거래할 수 있는 서비스로 자리 잡을 수 있었으면 합니다. 아니 이건 셀잇이 나아갈 방향이고~ 저는 제이디 본인 개인의 목표에 대해서 물은거예요. 셀잇이 곧 저입니다. 화, 화이팅...! (후우...) 이런 자리가 부끄럽죠? 가슴 속에 뜨거운 뭔가가 있는게 보이지만 굳이 밝히지 않으시겠다면 앞으로 안드로이드 앱을 통해 그 뭔가를 제가 찾아보겠습니다. (빨리 끝내려 애쓴다;;) 인터뷰는 이 정도로 마치는 것으로 하고~ 셀잇에서 칭찬하고 싶은 사람 한 명만 꼽아주세요. 이유도 함께 말해주세요. 전 네이쓴을 칭찬하고 싶습니다. 특유의 친화력과 유머러스함으로 주변 사람들을 기분 좋게 만들어주는 아주 훌륭한 팀원이기 때문입니다. 로봇입니까? 네? 아닙니다. 그럼 오늘 수고하셨습니다. 아! 최근에 셀잇 앱 2.0이 배포됐는데 감회가 남다를 것 같 같은~ 어떠세요? 딱히 이렇다할 소감은 없습니다만 이용자분들이 이전보다 더 편하게 서비스를 이용할 수 있었으면 하는 바람입니다. (로봇 맞네...) 넵- 수고하셨습니다. (하아... 네이쓴이라... 다음엔 우주로 가겠구만...)#셀잇 #번개장터 #인터뷰 #팀소개 #팀인터뷰 #팀원소개 #기업문화 #조직문화 #회사문화 #사내문화
조회수 1192

S/W 공학과 실전과의 거리감

학교에서 배우는 소프트웨어 공학이 왜? 실제 업무에서 사용이 안되는가?그동안 후배들에게 멘토링을 할 때에 가장 많이 받았던 질문 중의  하나이다. 평소에 답변하던 것들을 글로 옮겨 본다.소프트웨어를 전공하는 많은 후배들은 대학생활 4년 동안 배우는 다양한 이론들과 소프트웨어공학들의 수많은 이론을 배운다. 하지만. 대부분의 선배들은 사회생활의 실제 프로그래머로 취업을 한다고 해도, 프로그래밍을 실제 업무에서 하지만, 실제 관련된 이론과 기술. 수많은 가이드라인과 품질 관련 이슈에 대해서 실제 적용하기 어렵거나, 거의 사용하지 않는다고 선배들에게서 이야기를 듣는다.물론, 이 경향은 많이 바뀐 것은 사실이다. 이제 대부분 공학적인 접근법을 사용한다. 하지만, 그럼에도 불구하고 실제 현장에서는 이 현상이 그다지 바뀌지는 않았다.과연 우리가 학창 시절 배우는 그 많은 이론들은 도대체 왜? 만들어졌는데, 실제 사용이 안 되는 이유는 무엇인가? 학창 시절에는 자바나 C와 같은 프로그래밍 스킬만 높이면 되는 것인가? 도대체, 학생 시절 배우는 그 많은 이론과 공학, 품질 관련 이슈들은 실제 업무에서 그렇게 쓸모없는 것이라고 대부분의 선배들이 이야기하는가?실전과 대한민국의 현실. 그리고. 소프트웨어 프로그래밍에 대해서 학생들에게 삽질의 대가가 한마디 하려 한다. 왜? 우리는 학교에서 배우는 이론을 실제 사용할 기회가 없는 것일까?필자는 소프트웨어 공학을 학창 시절 배운 것이 아니다. 오히려, 실제 소프트웨어 개발 활동을 하면서, 공학적인 것이나 소프트웨어의 시각화를 해야만, 소프트웨어의 품질을 관리할 수 있다는 것을 몸으로 느끼고, 이것이 실제 소프트웨어를 상품이나 서비스의 명목으로 사용자들에게 제공하는 경우에 정말 필요하다는 것을 20년의 실제 개발자 생활을 하면서 그 필요성에 대해서 처절하게 느껴왔다.차라리, 필자가 핵심 서비스와 중요한 개발 내용을 직접 코딩하는 개발자의 역할을 할 때에는 이러한 공학적인 것이나, 작은 규모의 소프트웨어를 개발할 때에는 이러한 필요성을 느끼지 못했었다. 대부분의 작은 규모의 소프트웨어를 개발할 때에는 단기적인 일들이 많았다.사용자의 요구사항에 맞추어서 그 시기에 그때에 맞추어서 소프트웨어를 개발하였고, 해당 소프트웨어를 다시 유지 보수한다던가, 다시 수정 작업을 하지 않는 식의 작업을 하는 경우에는 이러한 공학적인 개념이나 그 배경으로 디자인하고 설계한다는 것에 대해서 매우 귀찮게 생각했었다.과거 첫 경험이었던 코볼이나 클리퍼 시절에는 해당 소프트웨어의 규모가 크지도 않았으며, 데이터의 구조 설계 또한 대부분 파일 중심의 데이터였었고, 화면의 구조 또한 수십 개를 넘지 않는 정도의 규모였다.오히려, 고속의 인덱스를 걸기 위한 테이블 접근법이나, 고속으로 화면에 출력하는 방법. 데이터를 조금 더 빠르게 구성하는 방법들에 집중할 시기에는 굳이 플로우 차트를 왜? 그리는 것이며, 파일 구조에 대해서 디자인해야 하는지에 대해서 의아함을 똑같이 가지고 있었으며, 굳이 설계나 디자인 없이 바로 코딩과 개발을 하던 시절이었다.하지만, 대규모 시스템을 주로 구사하는 웹서비스의 시대에 있어서, 단순한 로그 정보하나를 시리얼라이즈화시키는 것만 봐도 그 사람의 수준을 파악할 수 있고, 텍스트 중심의 구성 설계를 보면 향후 시스템의 성능에 대해서도 예측이 되는 경험을 축적하게 되면, 가장 중요한 것은 역시... 공학적인 접근법이다.필자가 소프트웨어 공학의 첫 번째 개념에 대해서 눈을 뜨고, 그 필요성을 절감하던 첫 번째가 바로, 고객에게 제공되는 소프트웨어가 지속적인 유지보수성을 가지기 시작할 때에 그 필요성을 처음으로 인지하기 시작하였다.처음의 요구사항이 변화되면서 사용자의 업무 흐름이 소프트웨어의 구조와 데이터베이스의 구조를 계속 변화하여 나가고, 이러한 상황을 미리 설계된 자료를 통해서 예측하거나, 소프트웨어 아키텍처적인 관점으로 조금 더 세밀한 환경에 대해서 메모가 되어있고, 그 구성에 대해서 서술해두었다면, 상당히 고속 개발을 하고, 소프트웨어 품질을 향상시키는데 매우 중요한 첫 번째 개발 행위가 되었을 것이라고 느꼈었다.또한, 개발자가 수십, 수백 명 단위로 소프트웨어의 설계가 대단위로 변화하고, 그 개발 품질에 대한 통제와, 적정한 수준의 개발 수준을 형성하게 하는 방법에 대해서 고민할 때에도 똑같이 이러한 소프트웨어 개발의 시각화에 대해서 인지하기 시작한 것이다.당시에는 공학적인 개념 없이 유사한 방법이나 표현방법을 고안하였으나, 관련된 내용을 찾아보고, 전문가들에게 조언을 구해보니, 상당 부분 그 부분에 대해서 전문가들 간의 협의가 있었고, 그 표준화되는 시각화 방법들과 방법론들이 매우 많이  연구되었다는 것을 알게 되었다.필자는 오히려, 이러한 개발과정에 있어서 필요한 것들을 개발하다가, 공학적인 베이스나 방법론들이 어떻게 실제 개발에 사용되어야 효과적인가에 대해서 실전에서 터득하고, 실전에 배치되는 것에 대해서 이해를 넓혔다.또한, 미국에서 개발되어진 개발 방법론이 국내의 실정이나 환경에 적합하지  않은다는 것을 깨닫고, 그러한 부분들을 어떻게 지식을 바꾸어야 하며, 실제 실천해야  하는지에 대해서 아키텍트 포럼이나 모임에서 역설하기 시작하였고, 그 부분을 실제 개발에 접목하려 애써왔다.그리고, 그 경험을 중심으로 소프트웨어 아키텍팅과 관련된 경험을 늘려왔고, 모바일과 웹서비스를 중심으로 하는 기업에서 개발 총괄을 하는 경우에는 그동안 축적한 소프트웨어 개발의 경험을 바탕으로 소프트웨어 형상관리 SCM(Software Configuration Management)을 중심으로 이슈관리, 개발, 테스트, 배포의 단계를 자동화하는 소프트웨어 개발의 비주얼라이제이션을 어떻게 실현할 것인가에 대해서 고민하고, 그 환경을 보다 쉽게 전파할 수 있는 공정과 형태를 미국 중심의 CMMI체계와 국내의 SP의 기준을 배경으로 상당 부분 고민하고 있다.그런데, 가끔 만나는 후배들이나 이제 막 개발자의 생활을 시작하려는 친구들에게서 많이 받은 질문 중의 대표적인 질문이 ‘도대체, 학교에서 배우는 소프트웨어 공학은 언제 사용하나요?’, ‘도대체, 대학 4년 동안 배우는 그 많은 이론들은 언제쯤 사용할 수 있는 것일까요?라는 질문들을  그동안 수십 번, 수백 번 받아왔다.심지어, 소프트웨어 개발 생활을 몇 년정도 한 후배들에게서 마저도 듣게 되니, 이 부분에 대해서 한 번쯤은 글로 남겨 두어야 하겠다고 생각하였다.과거, ‘서울 행복 직업박람회’에서  질문받은 내용은 이러했다.그 당시 필자에게 찾아온 대학생이 질문한 내용은 매우 간단하지만, 매우 어려운 답변일 수 있었다. 그것은, ‘왜 대학교 때 배우는 이론이나 원론과 같은 기본적인 내용들이 실제 사회생활 나가면 필요 없다고 자기의 선배들이 이야기하는 것일까요?. 실제. 취업하면 정말 그런가요?’이 질문은 이번 이야기의 주제이며, 필자가 20년을 넘게 소프트웨어 개발자 생활을 하면서 받아온 질문 중에 가장 빈도수가 높은 질문이라고 하겠다. 필자가 자부해온 삽질의 대가라는 점에서 그 친구는 그 친구는 정말 그 이야기를 잘 해줄 사람을 찾아온 것이라고 생각하면서 다음과 같이 설명했다.결과론적으로 '필요하지만, 필요없는 곳도 있다. 하지만, 가능한 필요한 곳을 찾아봐라.'라는 식의 이야기를 해주었다.자, 그렇다면. 필자가 이런 선문답 식의 답변을 하게 된 내용을 하나씩 풀어서 설명해보자. 도대체, 대한민국의 소프트웨어 개발을 하는 곳에서 왜? '소프트웨어 공학'적인 개념이나 이론들이 사용이 안되고 있는 것일까?물론, 정답은 간단할 수 있다. 국내의 대부분의 소프트웨어 개발회사의 경우에는 소프트웨어 공학쯤은 없어도, 아무런 문제(?) 없이 소프트웨어 개발이 가능한 경우이다.실제, 그런 회사도 그런 개발 조직도 상당히 많다는 것을 필자는 경험으로 알게 되었다. 그렇다면, 그렇게 소프트웨어 공학쯤은 필요 없는 기업이나 개발 조직은 어떤 곳들일까? 그곳들부터 알아보자.개발 총괄 책임자의 대우가 형편없는 회사필자는 개발자의 생활을 시작하는 어린 친구들이 첫 번째 직장을 가지는 곳에 대한 선택에 대해서 조언을 해왔을 때에 가장 먼저 해주는 조언은 이것이다. 면접을 보려는 회사의 개발 총괄 책임자나 리더에 대한 대우와 회사 내에서의 위치를 먼저 살펴보라는 것이다.대부분 대우가 형편없거나, 매일 야근과 반복된 개발 일정의 반복이 계속되는 회사의 경우에는 그 대우가 형편없는 것 이상으로 개발의 공정이나 개발의 방법이 정형화되어있지 못할 가능성이 매우 높다.물론, 소프트웨어 개발이 시각화가 되면, 요구사항의 변동폭이 보이게 되고, 해당 정량적인 지수가 도출되므로, 해당 부분에 대해서 대응이 가능하지만, 개발 총괄 책임자의 지위가 낮거나 대우가 형편없다는 이유는 다음의 두 가지의 경우에 해당이 된다.하나. 공학적인 방법이나 정형화된 방법을 제안하는데, 회사의 최고책임자가 인정하지 않는 경우이다.이 경우에는, 보통은. 제대로 알고 있는 소프트웨어 개발자들은  해당되는 조직을 빠르게 떠나고, 별로 기대할 수 없다는 것에 대해서 자괴감이나 패배감과 같은 분위기가 개발 조직 내에 흐른다는 것을 곧 감지할 수 있을 것이다.둘. 실제 이러한 공학적인 방법 따위의 개발 방법론으로 통제할 수 없는 고객이 '슈퍼갑'인 경우이다.실제, 소프트웨어 개발 활동을 해당 '슈퍼갑'에서 영업적인 능력으로 얻어낸 경우의 회사의 경우에는 아무리, 옳은 이야기, 옳은 방법론으로 대응한다고 해도, 개발 막판에 개발의 방향성 자체를 손 뒤집듯이 바꿔버리는 상황이 빈번한 경우이다.대부분 이런 경우에는 소프트웨어 개발 총괄 책임자가 오히려, 공학적인 것을 알고 있거나, 똑똑한 사람이라면 멘붕에 빠지거나, 자괴감에 빠져서,  대충대충 소프트웨어 개발을 하거나, 자기가 먼저 자리를 뜨는 경우가 대부분이다. ( 버티는 사람은 몰라서 버틸 수 있다고 설명하는 것이 더 바람직하겠다. )물론, 이 경우에도 그런 것을 당연시하면서, 공학적인 개념도 모르는 리더가 고객과 같이 동조하는 경우가 오히려, 업무가 수월해지는 경우가 많은 것 또한 현실이다. 고객과 개발 책임자가 같이 '닭짓'을 하는데, 개발 조직이 온전할 리 없다. 공학 따위는 집어치우고, 프로세스나 정량화된 목표, 자동화된 방법과 같은 소프트웨어 품질은 그냥, '책'에만 나오는 단어이며, 개념일 뿐이다.실제, 똑똑하고 말 잘하고, 올바른 방향으로 이끄는 리더가 이 조직에 리더가 된다고 하더라도. 어쩔 수 없이, 버티지 못하고, 떠나게 되는 것을 흔히 보게 된다.그리고, 이러한 조직에 있는 대부분의 개발자들은 '소프트웨어 공학'따위의 '장난'은 실제 개발이 필요 없다고 역설하고, 이것을 당연하게 여긴다. 보통, 이렇게 만들어지는 소프트웨어의 품질은 보장할 수 없고, 이 보장할 수 없는 소프트웨어를 통해서, '슈퍼갑'에서 꾸준한 유지보수 비용과 일거리가 발생하는 방법은.. 아마도, '4대 강'처럼. 한번 만들어 두면, 끊임없는 유지보수 업무를 발생시키는 식의 문제 정의와 처리방법이라고 할 수 있겠다.당연한 것이지만, 결론적으로 이야기하자면, 이런 개발 조직에서 개발 총괄 책임자의 대우는 형편없고, 일정 조절이나 개발에 대해서 지휘할 수 있는 권리나 인사권 같은 것도 매우 부족한 상황으로 변화한다.그래서, 이런 회사일 수록, 소프트웨어 공학은 그냥, 뜬구름 잡는 이야기가 되는 경우가 일상다반사이다.실제, 소프트웨어 개발을 하지 않는 회사소프트웨어 개발 조직이 있지만, 실제 소프트웨어는 개발하지 않고, 심지어. 소프트웨어 유지보수마저도 관련 업체에 일임하거나 위임하는 경우의 조직이 해당되는 경우이다. 대부분의 슈퍼갑인 회사와, 어설프게 소프트웨어를 개발하는 기업들의 전산실에  해당하는 곳이 이런 환경에 해당된다.이 경우 소프트웨어의 공학적인 배경이나, 개발에 대한 스킬과 협조보다는, 일반 회사의 기획과 경영, 회계와 관리에  해당하는 업무들이 가장 중요하므로, 소프트웨어 개발의 시각화나 공정에 대해서는 그다지 관심이 없는 경우이다. 오히려, 제품을 선택하고, 유지보수 업체를 어떻게 관리하고 운용할 것이냐에 핵심과 초점이 있기 때문에, 소프트웨어 공학적인 배경은 가장 중요한 선택의 포인트가 되지 못한다.오히려, 투입 대비 효과에 대한 경영학적인 관점의 스킬과 개념이 더욱더 중요하다고 하겠다. 필자는 개인적으로 대부분의 대학에서 이러한 관점으로 교육을 하지 않는 것에 대해서 매우  불만족스럽다.분명, 소프트웨어 개발과 소프트웨어를 개발, 유지보수, 운영 및 관리한다는 것은 매우 연관성이 높기 때문에, 이와 관련된 과정이나 소통방법, 그리고. 윤리체계와 운영방법 등에 대해서도 충분하게 소프트웨어 관련학과에서 교육이 필요하다고 생각한다.이러한 회사에 입사하게 되는 개발자의 경우에는 소프트웨어 개발자가 된다기 보다는, 소프트웨어 개발과 운영을 관리하는 회사를 관리하는 업무를 더욱더 많이 배우고 경험하게 되므로, 소프트웨어 개발공학 따위의 뜬구름 잡는 이야기는 경력이 쌓여갈수록 더더욱 필요 없게 된다.사장이 직접 개발하는 소규모 개발회사이러한 경우도 몇 가지의 사례로 나눌 수 있지만, 대부분의 구성 형태는 정말 비슷해지는 점이 매우 특이하다. 그것은, 소프트웨어 개발회사에 있어서 개발 총괄 책임을 '사장님'이 직접 통제를 하는 경우이고, 실제, 중요한 코딩도 '사장님'께서 직접 하는 경우이다.이 경우에는 '소프트웨어 공학'적인 콘셉트보다는, '사장님'의 경험적인 바탕에 의해서 소프트웨어 개발의 시각화가 만들어지고, '사장님'의 지극히 개인적인 경험과 지식의 배 경위에서 '정량적'지수들이 결정되는 경우이다.이 경우에는 '사장님'의 스킬이 높은 파트의 경우에는 매우 느슨할 수도, 매우 강하게 조일 수 있고, 사장님의 경험이 부족하거나 어색한 지식을 가진 파트의 경우에는 매우 불완전하고, 매번 변경된다는 것을 개발 조직 전체가 느낄 수 있다.이러한 조직의 특성은 상당 부분 필요한 소프트웨어 품질을 유지하고 있기는 하지만, 특정 버그나 특정 형태, 특정 상황에 대해서는 포기하는 경우가 많다는 점이다. 또한, 개발 조직의 구성역시 특정한 방향으로 구성되어진 기형적인 개발 조직이 만들어진다는 것이다.물론, 이 방향이 완전히 틀린 것이 아니라는 점 또한 매우 중요한다. 해당 업무나 설루션, 패키지에 적합한 방향에 대해서 '사장님'의 경험에 의해서 구축되었기 때문에, 특정 공학적인 지식을 가지고 있거나, 개발의 경험이 풍부한 사람이 해당 조직에 들어와서 보기에는 매우 어색한 점이나, 매우 이상한 형태를 느끼게 된다.대부분 이러한 소프트웨어 개발 조직은 보통, 수년 이상 설루션이나 서비스를 진행해오고 있고, 특정한 형태로 발전되어 있고, 적당한 개발자들이나 서비스 운영조직과 내재화된 자체들의 경험들이 중첩되어 있어서, 정말 세밀하게 분석하고, 환경을 조절하기에는 정말 어려운 환경으로 진화된 경우가 많다.대부분, 급여와 업무, 직원들의 잦은 이탈과 특정 개발 조직에 대한 '사장님'의 편애가 눈에 뜨일 정도로 보이는 경우가 많다. 그것은, 해당 소프트웨어와 서비스가 그 환경에 가장 적합한 구조를 가지고 있기 때문에 발생하는 경우이기 때문에, 냉정하게 분석해보면, 그 조직의 형태가 매우 적합한 구조인 경우가 많다.그래서, 이러한 조직에 들어가는 경우에는 '이론적'인 소프트웨어 공학은 잠시 뒤로하고, '경험적으로 구축되어진 개발 프로세스'에 익숙해져야만 그 조직과 프로세스를 이해할 수 있게 된다. 이러한 회사의 경우에는 필요한 경험과 지식에 대해서 매우 제한적이기는 하지만, 나름대로의 규칙과 개발 철학, 향후. 발전방향에 대해서 어느 정도 구축하고, 이를 따라서 개발 조직을 운영하고 있다는 점이기 때문에, 어설픈 개발공학적인 개념으로 이러한 환경을 이해한다는 것은 매우 어려울 것이다.초보 개발자들의 경우에는 이러한 개발 조직에서 수년 이상을 지내야만, 이러한 방법을 이해하는 경우가 대부분이다. 그래서, 초기에는 '공학'따위는 없다고 푸념하거나, 필요 없다고 이야기하는 경우이다.소프트웨어 공학은 해당 개발 조직과 개발자들의 수준, 축적된 시각화 방법들을 종합화하여 보이는 활동이기 때문에, 이러한 개발 조직은 이러한 정착된 패턴에 대해서 한 번쯤은 시각화를 위한 종합진단과, 형태에 대해서 정립하고 자신들만의 개발 문화를 선언하는 방법을 택하는 것이 좋다. 그래서, 공학적인 방법에 대해서 고민하고, 품질에 대해서 조금은 더 발전적인 방법으로 진화할 수 있게 하는 방법이 될 것이다.하여간, 잘 모르는 사람들에게는 이러한 개발 조직은 매우 이상하게 보인다. 단, 이 조건에 가장 적합한 회사의 경우는 '적당한 수익을 시장에서 얻고 있으며, 그 시장에 맞추어 개발 조직과 문화가 발전한 회사의 경우'를 의미하는 경우이다.당연한 것이겠지만, 이러한 환경으로 '시장'에서는 버티기 매우 어려울 것이고, 곧 망할 가능성이 높은 경우이다. 물론, 영업적은 능력으로 개발 조직이나 회사가 운영되고 있다면, 자연스럽게, '개발 총괄 책임자의 대우가 형편없는 기업'으로 변화되기 때문이다.특정 개발 조직이 관습화 된 인사권을 행사하는 경우보통은 이러한 회사를 게임회사에서 잘 찾아볼 수 있다. 특정 서버의 기술이나 클라이언트의 개발팀에서 사람을  구인하는 데 있어서, 일반적인 구인의 방법보다는 인맥이나, 특정 방법에 의해서 인력을 수급하는 경우이다.이 경우에 중요한 개발 공정이나 프로세스와 개발경험들은 내부의 팀에서 내부의 팀원들을 통해서만 서로 간에 운영되는 형태이며, 보통은 게임회사나 특정 하드웨어 기술을 가진 업체들에게서 이러한 환경들이 빈번하게 나타난다.한편으로는 이러한 방법이 개발 조직 내에서의 테두리가 제한되기는 하지만, 어느 정도 회사가 성장하거나, 회사의 규모 이상이 되지 않는다면, 그렇게 문제가 되지 않는 경우가 된다. 필자의 경험에 의하면 매출 1조 원을 넘기는 기업이 되는 경우의 하드웨어 업체이거나, 매출 1천억을 넘기는 소프트웨어 기업의 경우에 이러한 개발 조직의 문화가 가장 큰 걸림돌이 되는 경우를 많이 보아왔다.이런 경우에 대부분의 중심 개발 조직이 아닌 조직에서는 자신들이 공정을 변화시키거나 제품의 중요 기능을 다룰 수 없고, 반복적인 유지보수나 무의미한 행위들이 연속되는 경우를 계속 경험하게 되므로, 소프트웨어 공학에 대해서 많은 의아심을 가지게 되는 경우이다.이상의 몇 가지 기업의 형태를 살펴보면서 필자가 알게 된 것은 소프트웨어 개발의 형식은 역시 무형식이며, 그 상황과 형태에 따라서 변화되고 진화한다는 것이다. 또한, 위에서 이야기한 몇 가지의 경우의 공통점은 바로, ‘소프트웨어의 품질’이 그다지 중요하지 않은 기업의 경우에 해당한다고 이야기할 수 있다.위에서 언급한 회사들의 공통점은 ‘소프트웨어의 품질’ 때문에 개발 조직을 변화시키거나, 개발 문화에 대해서 고민할 필요가 없는 회사라는 점이다. 당연한 것이겠지만, 소프트웨어 공학은 ‘뜬구름 잡는 이야기’를 하는 학창 시절 때에나 이야기한다고 이야기를 하는 선배들을 대부분 만날 것이다.대한민국에서 만날 수 있는 대부분의 소프트웨어 개발 활동들은 소프트웨어의 품질이 그다지 중요하지 않은 경우가 참 많다는 것이다.일단, 가동을 시작한 서비스가 죽게 되면 크게 문제가 되는 경우이거나, 해당되는 소프트웨어가 작은 문제로 인해서, 실제 비즈니스와 업무에 크게 문제가 되는 경우가 아니라면, 소프트웨어의 품질에 대해서는 그 중요성이 떨어지게 되는 것이 당연하다.충분한 소프트웨어 가치를 인정받을 수 있는 평가와 방향성에 대해서 충분하게 고민하고 있지 않은, 회사이거나 소프트웨어 개발 조직의 경우에는 당연한 것이겠지만, ‘소프트웨어 공학’은 그다지 중요하지 않다는 것이 결론이라고 하겠다.소프트웨어 품질이 정말 필요한 곳인가?이렇게 답변을 정의할 수 있다.소프트웨어 품질이 중요한 가치를 가지는 곳에서는 충분하게 소프트웨어 공학적인 이론과 배경이 가장 중요한 것이 될 것이다. 필자가 아는 어느 회사의 경우에는 소프트웨어의 기본적인 행위하나 가 실제 큰 비용으로 계산되는 경우가 있었다.단순한 하나의 물류이지만, 어떤 물류를 크레인을 사용하여 한 번 잘못 이동하게 되고, 해당되는 물품이 전혀 엉뚱한 나라에 가있거나, 해당 물품이 적재되고 내려지는 과정이 중첩되면서 만들어지는 비용을 단 한번 행위의 가치로 평가하였을 때에 1번 펑션이 1억 원 정도의 비용으로 계산되는 경우라면, 소프트웨어 개발의 펑션이나 개발 프로세스에 대해서 얼마나 고수준으로 설계하고 평가될 것인가에 대해서 생각해보면 될 것이다.이미, 은행에서 자금이 이체되고, 움직이는 과정에 대해서도 개별적인 가치에 대해서 평가를 할 수 있을 것이다. 과연, 내가 만드는 소프트웨어의 기본가치는 어떻게 되는 것일까? 에 대해서 생각해보면, 우리가 만드는 소프트웨어에 얼마나 고품질이 필요한 것인가에 대해서 설명할 수 있을 것이다. 그렇지만, 필자는 이렇게 이야기하겠다.슬프지만, 대한민국의 IT 중에서 소프트웨어 개발 분야에 있어서, 정말 고품질이나 고성능을 요하는 수준으로 요구하는 곳이 거의 없기 때문에 이러한 문제는 계속 발생할 것이며, 계속 이러한 질문은 만들어질 것이다.대부분의 학생 시절에 우리가 배우는 기본과 이론들은 쉽게 설명해서 죽지 않는 서버와 데몬을 만들고, 가능한 정해진 규칙 하에서는 다운되지 않는 웹서비스를 만들려고 그런 기본과 이론을 배운다.하지만, 대부분의 서비스들은 죽으면, 서버의 데몬 프로세스를 죽였다가, 다시 동작하면 되는 수준의 업무면 충분한 경우가 대부분이다. 더군다나, 외국에서 만들어진 프레임웍이나 만들어진 소프트웨어 위에서 동작되는 소프트웨어를 만드는 환경에서라면, 이러한 공학이나 이론 따위야 그다지 중요한 것이 아니게 될 것이 아니라는 점이다. ( 그 책임은 비싸게 구매한 DBMS나 프레임웍이 해결해야할 책임이라고 떠넘긴다. )결론적으로 마지막 이야기를 한다면, 과연 이러한 소프트웨어 가치를 충분하게 만들어 낼 수 있는 소프트웨어 개발 활동을 내가 하고 있는가에 대해서 고민해보자. 그리고, 그러한 행위를 할 수 있고, 발전 가능성이 있는 곳이야말로, 이러한 고수준의 품질활동이 필요한 곳이 될 것이다.그리고, 이러한 고수준의 소프트웨어 품질활동이 필요한 곳은, 바로. 아직은 단 한 번도 이러한 소프트웨어나 서비스가 만들어지지 않은 곳에서 이러한 활동이 더 많이 필요하다. 그것은 바로, 스타트업이나 이제 서비스를 개시하려는 곳일수록, 적절한 소프트웨어 품질활동이나 시각화가 필요하다고 이야기할 수 있겠다.소프트웨어 활동을  시각화한다는 것은 결론적으로 소프트웨어 개발자가 투입하는 행위에 대한 가치에 대해서 얼마나 고수준으로 끌어올린 것이며, 어느 정도 적절한 품질 수준을 고려할 것인가에 대한 활동을 의미한다.그러므로, 현재 스타트업을 꿈꾸고 있거나, 적적할 소프트웨어의 개발비용을 고민하고 있는 곳이라면, 소프트웨어 공학은 매우 중요한 활동이나 방향성에 대해서 정답에 근접하도록 도움을 줄 것이다. 소프트웨어 고품질의 세계와 소프트웨어 공학의 세계는 소프트웨어 개발자들이 어떤 생각을 하고, 개발에 참여하느냐에 따라서 결정되어진다. 그 선택은 역시, 각자가 하는 것이다.
조회수 1281

Emotional Customer Journey Map

안녕하세요. 크리에이터팀 김재석입니다. 오늘부턴 저희 팀이 서비스 디자인 과정을 진행하면서 사용하는 도구들을 하나씩 소개하는 시간을 가져볼까 합니다.무엇인가요?Emotional Customer Journey Map (이하 EJM)은 서비스의 사용자의 이용 경험을 정리하고 효과적으로 시각화할 수 있는 도구입니다. 주로 완전히 새로운 것을 만들기 보단, 기존의 경험을 개선하기 위해 어떤 개선점이 있을까를 알아보기 적합한 도구로, 의도한 서비스와 실제 사용자가 느끼는 서비스와의 갭을 분명히 알 수 있고 어떻게 개선해나가야 할 지에 대한 훌륭한 힌트를 제공합니다.구체적으로 어떤 점을 알 수 있나요?EJM은 사용자가 인지하는 전체 경험을 경험소라는 최소 단위로 분리하면서 서비스의 사용 시나리오를 정확하게 이해할 수 있습니다.사용자가 경험을 시작하는 동기에서부터 경험의 끝까지를 두루 살피기 때문에, 단편적으로 접하게 되는 유저 시나리오보다 훨씬 설득력있게 문제를 파악할 수있습니다.각각의 경험소에 연결하는 터치포인트와 감성 점수를 평가하면서, 사용자가 어떤 서비스 제공자를 대면하면서 문제에 봉착하는지를 평가할 수 있습니다.어떻게 진행하죠?EJM을 그리는 데에는 여러가지 방법이 있지만, 아래와 같은 요소가 들어가야 합니다.경험소: 전체 경험 안의 최소단위의 부분 경험입니다. 이는 사용자 관점에서 구분되어야 합니다.터치포인트: 경험을 위해 대면하는 대상입니다. 기기가 될 수도, 사람이 될 수도 있습니다.인터랙션: 터치 포인트와 주고 받는 일에 대한 설명을 담습니다.감정수준: 해당 경험소에서의 감정 수준을 측정합니다.여기서 연속된 경험소를 선으로 연결하고, 감정수준 역시 경험소의 순서대로 선을 연결하면 EJM이 완성됩니다.위 정보를 받아 시각화할 수 있는 양식을 준비하고, 사용자와 인터뷰를 통해 개개 사용자의 경험소, 터치포인트, 인터랙션, 감정수준을 채워나갑니다. 대화를 통해 인터뷰어가 채워나가기도 하고, 혹은 사용자에게 직접 빈칸을 채워달라고 요청하기도 합니다.질문, 경험소와 터치포인트를 고정시킬까요?경험소와 과정이 비교적 명확하다면 파일럿 인터뷰를 통해 경험소와 터치포인트를 고정시킨 상태로 인터뷰를 진행하기도 합니다. 고정을 시킨다면 추후 수집된 경험들을 취합할 때 편하다는 장점이 있죠. 하지만 사용자가 인지하는 경험소를 더 깊게 바라보려면 개개 사용자의 생각에 따라 경험소, 터치포인트도 따로 작성하는 것이 좋습니다.EJM을 수집하실 때, 주요 감정 변화 포인트에선 사용자의 심층 인터뷰를 추가로 진행하는 것을 추천합니다. 해당 경험소에서 왜 감정이 변화했는지를 알아내는 것이 서비스 개선에 중요한 힌트가 되기 때문입니다. 사용자의 관점에서 찍은 사진이나 동영상이 있다면 이를 함께 첨부하시는 것이 좋습니다.개개 사용자별로 EJM 수집이 완료되었다면, 이를 효과적으로 취합하기 위해 먼저 페르소나를 도출하시는 것을 추천합니다. 페르소나를 도출하고나서, 해당 페르소나의 EJM을 새로 그려보면 사용자의 경험에 보다 쉽게 몰입할 수 있습니다.자세히 알고 싶으시다면…서울대학교 융합대학원 UX랩에서 최근 EJM에 대해 쉽게 설명하는 동영상을 제작하였습니다. 보시고 많은 참고가 되시길 바랍니다.#스포카 #디자인 #디자이너 #크리에이티브 #크리에이터 #협업 #UX #EJM #인사이트
조회수 1352

깃발 올려, Git Effect!

안녕하세요, 개발 2팀에서 단아함을 맡고 있는 오연주입니다. 평소에 관심이 많았던 깃(Git)을 공부하면서 알게 된 내용들을 글로 쓰려고 합니다. ‘어떤 닝겐이 만들었나’ 궁금할 정도로 천재적인 깃은 도대체 누가 만든 것일까요? 바로 리누스 토발즈(Linus Torvalds)입니다. 이름에서부터 OS의 느낌이 가득합니다. 네, 맞습니다. 그는 리눅스(Linux)의 창시자이기도 합니다. 리누스는 말했죠. “My name is Linus, and I am your God.” 리누스 토발즈 (Linus Torvalds)그가 깃을 만들기 전에는 보통 중앙집중식 VCS(Version Control System)를 사용했었습니다. 예를 들면 다음과 같은 도구들로요. CVSSVN(Subversion)…반면에 깃은 분산 버전 관리 시스템(DVCS, Distributed Version Control System)입니다. 그렇다면 중앙집중식의 대표주자인 Subversion(VCS)에 비해 무엇이 더 좋을까요? 속도가 빠르다. snv log svn diff -rN svn commit 등 대부분의 명령어가 네트워크 연결이 되어야 실행 가능한 명령어입니다. 그러나 git push git clone 등 몇몇 명령어를 제외하고는 네트워크에 연결되어 있지 않아도 로컬에서 실행할 수 있습니다. 용량이 적다. Mozilla의 SVN Repository는 126GB인데 반해 Git Repository은 420MB입니다. 왜냐하면 해쉬, 스냅샷을 이용한 효율적인 파일 변화 관리가 가능하기 때문입니다. 브랜치를 만드는 작업이 수월하다. SVN은 diff를 전부 적용해서 파일을 생성한 뒤 네트워크에서 내려받는 반면, 깃은 스냅샷을 가리키는 링크(Commit Object)만 만들면 됩니다.어떠한 특징을 가지고 있길래 이런 차이점이 생기는 걸까요?분산 저장소로, 로컬에서도 중앙 저장소와 연결되지 않은 상태에서 지지고 볶기가 가능하다니! 여러 개의 다른 저장소를 생성할 수 있고 서로서로 연결되어 독립적으로 개발 프로젝트를 진행할 수 있고 유기적인 업데이트가 가능합니다. 델타 기법이 아닌 스냅샷 방식을 사용합니다. SVN의 경우 파일 변화를 diff로서 추적한 반면, Git은 각 시점의 파일 상태를 모두 스냅샷을 찍어 관리합니다.변화를 기억했던 기존 방식변화된 소스를 커밋할 때 스냅샷을 찍는 방식두 가지 특징을 살리려면 깃이 여타 다른 VCS와는 다른 방식으로 정보를 관리할 필요가 있습니다. 예를 들어 Revision number로 히스토리를 관리했던 Subversion으로 분산된 저장소의 히스토리를 관리하려고 하면 ‘시점 충돌’ 문제가 발생합니다.그..그려봤습니다..금융 프로젝트에 참여했을 때의 일입니다. VCS 중 H사 툴을 사용하였는데 한 소스의 버전을 받고 개발하는 과정에서 커밋의 횟수가 많아지니 중앙 저장소 입장에서는 ver 1 → ver 9로 갑자기 타임워프하는 일이 생겼습니다. 그래서 개발자 스스로 본인의 버전을 모두 삭제한 후 ver 9였던 파일을 수동으로 ver 2로 바꿔주는 것이 관례였습니다. 소스가 모두 날아가는 경우가 있어 소스 commit 과정이 공포스러웠죠. 깃은 해쉬(hash)를 이용한 정보 관리를 통해 이런 문제를 말끔하게 해결합니다.Git의 핵심, 정보 Hashing! git reset --hard 3269aecad9ffea81763a42b9fff34c76a0aa4cf0 브랜디 소스 코드를 pull 했는데 특정 시점으로 돌아가 할 일이 생겨 위의 명령어를 입력했던 적이 있습니다. 명령어로 깔끔하게 원하는 시점으로 되돌아올 수 있었죠. 뒤에 붙는 40자리의 기괴한 문자열은 바로 깃이 정보를 관리하는 데에 사용하는 해쉬값입니다. 해쉬값이 제일 많이 보이는 곳은 git log 가 아닐까 싶은데요. commit 옆에 나열된 일련번호같은 문자열이 궁금하진 않으셨나요?깃은 소스 코드를 포함해서 히스토리를 관리하는데 필요한 모든 정보를 이런 해쉬로 저장 및 관리합니다. 이 해쉬값은 40자리 16진수 숫자이며 SHA-1 알고리즘으로 생성됩니다. SHA-1 알고리즘은 보안 표준 해쉬 알고리즘 중 하나입니다. 충돌할 확률은 1 / 10^45로, 매우 매우 낮기 때문에 수많은 정보를 저장 및 관리하기에 안전하고 적합합니다. 4GHz CPU로 SHA-1 해쉬 중복값을 찾아내려면 4000년이 걸린다.앞서 SHA-1 해쉬값으로 모든 정보를 저장한다고 말씀드렸는데, 과연 어떤 정보를 어디에, 어떻게 저장하고 있는 것일까요? 각 해쉬 값은 깃이 내부적으로 저장하는 파일 이름이 되기도 하는데, 이 파일들은 .git/objects 경로에서 전부 찾아볼 수 있습니다. 해쉬값 40자리 중 앞 2자리를 디렉토리 이름으로 따고, 뒤 38자리를 파일 이름으로 지정합니다. 각 파일 안에는 서로 다른 정보가 담겨 있습니다. 해쉬값으로 표현되는 이 파일들은 정보의 종류에 따라 3가지 객체로 분류됩니다. Blob ObjectTree ObjectCommit Object폴더나 파일명이 어떤 오브젝트인지 힌트를 주지 않기 때문에 세 가지의 오브젝트 파일 내용의 캡처를 위해 복불복으로 열어봤는데요, 하나의 파일을 열 때마다 포춘쿠키를 까듯 심장이 쫄깃쫄깃했습니다. Blob Object란 실제 파일을 뜻하며, 실제 소스파일을 가지고 있는 실세 오브젝트같은 느낌입니다. Blob Object - 열어보면 내가 작성한 소스 코드가 들어있다.Tree Object 내부에는 프로젝트 구조의 각 디렉토리에 대한 정보가 담겨 있습니다. 하위에 어떤 폴더와 파일을 가지고 있는지 알려주고, 객체 해쉬 값을 저장하고 있습니다. 이 Tree Object의 제일 상위 객체는 root이며, 프로젝트의 최상위 폴더에 대한 정보를 담게 됩니다.앞서 깃은 각 시점별 스냅샷을 찍어 관리한다고 했습니다. 스냅샷을 찍는 행위는 새로운 Root Tree Object를 만들고, 각 시점에 가지고 있는 Tree Object와 Blob Object로 새로운 트리 구조를 만드는 과정입니다. Tree Object - 하위에 php라는 폴더와 README.md라는 파일이 들어있는 것을 볼 수 있다.Commit Object는 커밋 시점의 Repository Root Directory의 해쉬 값을 가지고 있는 녀석입니다. Parent는 내 커밋 전에 커밋이 누구인지를 뜻하는데요. 또한, 커밋할 때의 committer(user), commit message등의 정보도 가지고 있습니다.Commit Object - 해당 commit 시점의 root tree object와 이전 커밋, 작성자 등에 대한 정보를 담고 있다.세 종류의 객체는 깃이 분산된 Repository 간의 소스 히스토리를 쉽게 관리하도록 도와줍니다. 해쉬값으로 관리되기 때문에 특정 스냅샷에 이동하거나, 히스토리를 변경 또는 추가하는 데에 적은 리소스만 필요합니다. 또 분산된 저장소 사이에 상호 시간 순서에 대한 모호함도 해결할 수 있었습니다. 이 정도면 갓누스….깃을 공부하기 시작한 이유는 Git UI Tool을 쓰면서 습관적으로 commit, push 버튼을 눌렀기 때문입니다. 깃에 대한 이해도가 있는 상태에서 사용한다면 실수가 줄어들 거라 생각합니다. 다음 글은 Git branching Model을 다루겠습니다. ps. Git, 협업과 원활한 커뮤니케이션을 위해 알고 씁시다! 우리 함께 깃빨 받읍시다!! 참고 Scott Chacon and Ben Straub, ⌈Pro Git, 2nd Edition⌋, Apress(2014)Schneier on SecurityProbability of SHA1 collisions, stack overflowSVN 능력자를 위한 git 개념 가이드, Insub Lee, Slide Share글오연주 사원 | R&D 개발2팀[email protected]브랜디, 오직 예쁜 옷만#브랜디 #개발문화 #개발팀 #업무환경 #인사이트 #경험공유
조회수 2742

왜 육각형인가요?

작년(2016년) 중순 즈음, 데일리호텔의 로고가 새롭게 리뉴얼되었습니다. 기존에 '데일리호텔'이라는 명칭에 맞게 손바닥 위에 호텔의 아이콘이 올라가 있는 심벌 형태였는데요. 점차 사업의 방향이 더 넓게 확장되고, 데일리가 가져가고자 하는 기업 이념을 보여주고자 기존 형태에서 많이 변형된 현재의 로고가 탄생했습니다.로고 탄생 이후에 계속 듣던 질문. '왜 육각형인가요?'지금부터 그 이유와 심벌에 담긴 데일리만의 철학을 소개합니다.데일리가 가고자 하는 길로고를 제작하기 이전에 우리는 데일리가 걸어온 길이 어디였으며, 나아가고자 하는 방향이 어디인지 확립해야 했습니다. 많은 데이터와 고객 경험 사례들을 분석해본 결과 결국 데일리는 '특별함'에 초첨이 맞추어져 있다는 걸 알게 되었어요.또 위와 같이 정의된 키워드들을 가지고 브랜드 이미지를 시각적으로 표현하기 위해 아래와 같이 디자인 키워드와 표현 원칙을 정의하였습니다.'문'을 통해 '특별함'으로 다가가다데일리의 철학 '언제든 특별해질 수 있다'.그렇다면 그 '언제든'의 정의 또한 필요했습니다. 우리가 언제든 일상 속에서 만나는 동일한 패턴은 무엇일까를 생각하기 시작했어요.추출한 답은 '문'이었습니다.아침에 일어나 방문을 열고 거실에 나와 세면을 하기 위해 화장실 문을 통해 화장실에 들어가고, 현관문을 열고 회사로 향하는 패턴. 우리는 이와 같이 항상 동일한 문을 드나들고 있었습니다. 해서 데일리는 '언제든'을 '문(Door)'으로 정의하여 그 형태를 형상화시켜 쉐입을 제작하였습니다.'일상적인 문'을 뜻하는 쉐입그 반대에는, 일상적인 패턴에서 벗어나서 어디론가 떠나고 싶고, 멋있는 식사를 즐기고 싶어 하는(곧, 데일리가 추구하는) '특별함'을 나타내는 '문(Door)'의 쉐입을 제작하였어요.데일리가 지향하는 '호텔/레스토랑의 문'을 뜻하는 쉐입또한, 우리가 접하는 일상적인 문과, 특별함을 상징하는 호텔/레스토랑 문의 높이를 비교해보면 라이프스타일을 즐기기에 시간적, 금전적 부담을 느끼고 있기 때문에 쉽게 마음을 열지 못합니다. 여기서 데일리는 고객이 느끼는 부담적 마음의 문 높이를 채워줌으로써 라이프스타일에 한층 더 가까워질 수 있도록 조력자 역할을 해줍니다. 곧, 데일리의 미션인 '더 나은 하루, 더 나은 삶을 위해'를 이루기 위한 길이기도 하죠.이로써 견고해진 데일리의 심볼또 이렇게 제작된 심벌은 Connect, Precious, Perfect를 뜻하기도 합니다. 무슨 뜻이냐구요?하나_Connect. 잘 보시면 심벌이 모든 선으로 서로 이어져 있음을 볼 수 있습니다. 이는 고객들에게 특별한 경험을 연결 지어준다는 뜻을 지니고 있습니다.둘_Precious. 문을 형상화하여 심벌을 제작하였지만 완성된 형태를 보면 마치 보석과도 같습니다. 이는 사람들의 하루, 삶에 대해 소중히 여긴다는 뜻을 지니고 있습니다.셋_Perfect. 데일리의 심벌은 안정적인 구조를 지닐 수 있도록 견고한 선으로 균형 있게 제작되었습니다. 이런 심벌에서부터 나오는 완벽함은 탐색부터 예약, 그리고 경험까지 플랫폼으로써 추구하는 완벽함을 뜻합니다.마치며.이제 궁금증이 조금 풀리셨나요?우리는 하루에도 수십 번 많은 CI(Corporate Identity)들과 마주하게 됩니다. 어찌 보면 흔한 것일 수 있지만, 그 안에는 기업의 이념과 철학, 그 외의 많은 것들이 담겨있습니다. 그리고 그 CI가 품고 있는 뜻을 이루고자 지금도 이렇게 열심히 달리고 있는 거고요. 이제, 주위를 둘러보시면 많은 CI들이 각기 다른 미션/비전으로 아우성치고 있을 거예요.(ㅎㅎ) 그럼 다음에 더 재미있는 글로 찾아뵙겠습니다!작성자 : Creative팀 Blair Ahn#데일리 #브랜드 #브랜딩 #디자인 #로고 #디자이너 #인사이트 #일지 #후기

기업문화 엿볼 때, 더팀스

로그인

/