스토리 홈

인터뷰

피드

뉴스

조회수 1402

이노버즈미디어의 대표 미남, '박충선 디자이너'

안녕하세요, Y입니다! 지난 옐로피플 스토리에서 뷰신 나나가 첫 번째 인터뷰로 소개되면서 엄청난 화제를 몰고 왔는데요. 이번 두 번째 타자는 바로바로 YDM 소속의 디지털 마케팅 에이전시 이노버즈미디어의 대표 꽃미남 박충선 디자이너 입니다!Y: 안녕하세요! 옐블 독자들을 위한 자기소개 부탁 드려요! 박충선: 안녕하세요, 이노버즈미디어에서 브랜드 콘텐츠를 만들고 있는 디자이너 박충선입니다! 반갑습니다! Y: 브랜드 콘텐츠라! 정확히 어떤 일인지 궁금합니다박충선: 쉽게 말해서 각 기업 브랜드들이 페이스북, 인스타그램 등 소셜미디어에 발행하는 이미지를 제작하는 거죠. 현재는 롯데카드랑 글로벌 스포츠 의류 브랜드인 스파이더 코리아를 맡고 있어요. 아래와 같은 식으로 각 브랜드의 소셜미디어 콘텐츠를 제작하고 있습니다.Y: 본인이 느끼는 이노버즈만의 특별한 점이나 자랑할만한 사내문화가 있나요? 박충선: 사실 이노버즈가 제 첫 직장이라 다른 회사들과 비교하긴 어렵지만, 여기서 1년 4개월동안 몸담으면서 느낀 것은 정말 수평적이라는 거예요. 서로 눈치보지 않고 말할 수 있는 분위기다 보니 정말 다양하게 싱크빅 돋는 아이디어가 많이 나오죠 :) 또 매월 두 명씩 뽑아서 전 직원 앞에서 다양한 주제로 스피치를 해요. 업무에서 벗어나 본인이 흥미를 느끼는 분야 등 개인적인 이야기로 진행하기 때문에 서로를 알아가는데 큰 도움이 되는 것 같아요. 또 인턴과 신입사원은 물론 임직원들을 위한 다양한 교육과 지원을 해주는 것도 이노버즈만의 특별한 점인 것 같아요.출처 : 이노버즈 페이스북Y: 박충선님의 주제는 뭐였나요? 박충선: 저는 아직 안 했어요!ㅋㅋㅋㅋ 샤이가이라서.. Y: 샤이가이셨구나ㅋㅋㅋㅋ 네 다음질문 드릴게요! 기억나는 재미있는 에피소드가 있나요?박충선: 인턴기간에 업무와는 별개로 동료들에 대한 콘텐츠를 만들었어요. 이노버즈 가족 한 명 한 명에 대해 웹툰형식으로 만들었는데 친해질수록 디스(?)내용을 조금씩 넣어봤거든요. 그러다 보니 반응도 좋았고 다들 다음 편은 어떤 디스가 나올지 기대해줘서 재미있었어요ㅋㅋㅋ 역시 까야 제맛이라고……Y: 드라이플라워 고문이라니ㅋㅋㅋㅋ앞으로 드라이플라워 볼 때마다 죄책감들것 같아요ㅋㅋㅋ 그나저나 디자인 팀이라 남자가 많이 없을 것 같아요! 박충선: 이노버즈에 처음 입사했을 때 디자인 실에 저 포함 두 명 빼고 전부 여자분들이었어요. 처음엔 좀 걱정이 됐는데, 다들 좋으신 분들이고 형들처럼(!) 편하게 대해 주셔서 좋았어요ㅎㅎ Y: 다 여자분들이면 회식이 많이 없겠어요! 박충선: 왜 때문에 그런 생각을…… 저보다 잘 드세요 다들 (또르르)Y: 빨리 넘어갈게요!! 이노버즈/옐로모바일에 바라는 점이 있다면? 박충선: 일을 한다는 건 돈을 버는 것도 중요하지만 함께 일하는 사람들, 그리고 회사에서 임직원들을 대하는 자세가 엄청 중요한 것 같아요. 앞으로도 지금처럼 인간관계를 중요시 여기고 직원 한 사람 한 사람을 우선시하는 회사였음 좋겠어요. Y: 마지막 질문입니다! 앞으로는 어떤 일을 해보고 싶으신가요? 충선: 아주 먼 미래에는 디자인을 접목한 카페나 술집을 운영하고 싶어요. 당장은 원래 하고 싶었던 미술을 배워서 지금 하는 일에 적용시켜보고 싶습니다. 앞으로도 재미있는 컨텐츠로 브랜드에 좋은 영향을 미치는 디자이너가 되겠습니다! 저와 이노버즈 많이 응원해주세요! 
조회수 965

Sublime Text 3에서 Gist 연동하기

블로그 같은 곳에 작성한 코드를 올리기 위해 매번 구현된 코드를 복사 붙여넣기 하여 하나하나 gist에 업로드하기는 엄청 귀찮은 일이다. 그래서 알아보았더니 서브라임 텍스트에서는 플러그인을 통해 서브라임 자체에서 바로 gist에 업로드 할 수 있었다. 엄청 간단하게 연동할 수 있음.Package Control 설치일단 서브라임 텍스트 플러그인을 설치하기 위해 Package Control을 설치해야 함.1. Sublime Text Package Control 코드 복사하기2. 서브라임 텍스트를 실행하여 control+`으로 콘솔 열기3. 복사한 내용을 붙여넣고 엔터를 눌러 설치플러그인 설치이번엔 방금 설치한 패키지 컨트롤을 이용하여 gist 플러그인을 설치해야 함.1. 서브라임에서 command+shift+p로 Command Palette 열기2. Package Control: Install Package를 선택3. gist 검색 후 설치github와 연동하기1. github에서 Settings>Personal access tokens에서 Generate new token 버튼 클릭2. Token description에 내가 알아볼 수 있게 설명을 입력한 후 Select scopes에서 gist 선택 후 Generate token 버튼을 클릭하여 생성3. 생성된 토큰을 복사4. 서브라임에서 Preferences>Package Settings>Gist>Settings-User 선택5. 열린 창에서 아래와 같이 token에 복사해놓은 키를 붙여넣고 include_users에 내 깃헙 아이디 입력 후 저장사용서브라임 텍스트에서 코드 작성 후 command+k, command+p를 누르면 하단에 gist 순서대로 설명 입력하고 엔터 제목을 입력하고 엔터를 누르면 자동으로 업로드됨.#트레바리 #개발자 #안드로이드 #앱개발 #Sublime #백엔드 #인사이트 #경험공유
조회수 3463

초보 PM이 알아야 하는 초기 모바일앱 분석 101

** 본 글은 문돌이 PM의 마케터 따라하기 시리즈 입니다.** 1화 보기 - 초기에 할만한 ASO (앱스토어 최적화) 팁모바일 앱 관련 분석지표, KPI같은걸 인터넷에 검색해 보면 ARPU, APPPU, ARPDAI, LTV 등등 무슨 코드 암호명같이 생긴 분석지표들에 대해 난해하게 설명하는 글들이 많다. 뭐, 물론 향후 매출을 일으키고 스케일이 나는 앱같은 경우 ARPU (사용자 당 평균 매출)을 모니터링 하는건 매우 중요하다고 한다. 하지만 나같이 초기에 매출도 없는 무료 SNS앱을 제로베이스에서 일구어나가야 하는 경우 저런 어려운 분석지표들을 공부하고 있으면 시간낭비다.본 글에서는 필자처럼 모바일 앱 세계의 완전 초보가 무료 앱을 완전 제로베이스에서 운영한다고 했을때 알아야 하는 모바일앱 지표 분석 방법론에 대해 설명하고자 한다. 본론에 들어가기 앞서, 모바일 앱의 다양한 지표를 트래킹 하기 위해서는 분석 툴이 필요한데, 이 툴에대해 소개하는것만 해도 한페이지가 소요되기 때문에 이건 다른 글들을 찾아보기 바란다. 여기서는 필자가 운영하는 바크 (Bark) 앱에서 사용중인 Fabric, 구글애널리틱스, 애플에서 기본 제공하는 아이튠즈 커넥트를 기준으로 설명하도록 하겠다.요즘 가장 핫한 분석툴 중 하나인 Fabric. 트위터에서 인수했다.우선 당신이 트래킹해야 하는 영역은 크게 다음 3가지가 있다.1. Acquisition (획득)2. Retention (유지)3. Referral (추천)1. Acquisition_ 새로운 사용자를 획득하기 위한 분석지표이 영역에서 가장 중요하게 트래킹 해야 하는 부분은 바로 '신규 유저가 어느 경로로 들어왔는가'를 집요하게 파는것이다. 초기에 코묻은 돈으로 발품 팔아가며 앱을 마케팅하고 있을 것인데, 내가 들이는 노력 만큼 신규 유저가 유입되고 있는지 체크하지 않으면 선택과 집중이 불가능하기 때문이다. 그렇다면 유저가 유입된 경로를 어떻게 추적하는가? 그건 바로 마케터가 베포하는 모든 URL에 추적 코드를 붙임으로써 가능하다. 크게 2가지 추적경로를 만들어야 하는데, 하나는 아이튠즈로 유입되는 추적코드, 하나는 웹사이트로 유입되는 추적코드 이다.아이튠즈로 유입되는 추적코드는 보통 다음과 같이 생겼다.https://itunes.apple.com/app/apple-store/id1100131438?pt=118117595&ct=Facebook-gangnamAd2&mt=8저기서 'ct='와 '&mt' 사이에 있는 'Facebook-gangnamAd2' 부분이 바로 추적코드 이다. 내가 만일 페이스북에 광고를 태우고 거기에 링크를 위와같이 만들어 놓으면, 그 링크를 클릭해서 아이튠즈로 유입되는 모든 트래픽은 'Facebook-gangnamAd2'라는 키워드가 기록되고, 아이튠즈 커넥트에서 저 키워드로 얼마나 유입이 됐는지 확인이 가능하다. (개발자한테 정기적으로 아래와 같이 생긴 키워드별 유입 숫자를 보여달라고 요청하자)아이튠즈 커넥트에서 Source 탭에서 확인 가능하다. (그냥 개발자한테 보여달라고 요청하자)그런데 여기서 두가지 발생하는 문제점이 있는데, 첫째는 저 링크가 너무 길어서 글 내에서 자리도 많이 차지하고 보기에도 지저분해 보인다는 것과, 둘째는 난 바로바로 결과를 알아야 하는데 아이튠즈 커넥트는 저 수치 업데이트가 보통 하루정도 지연된다는 것이다. 이를 말끔하게 해결하는 툴이 바로 구글에서 제공하는 URL Shortener 이다.저기 들어가서 URL을 goo.gl로 시작하는 아주 짧은 URL로 변경할 수 있고, 더 훌륭한 것은 간단한 통계 툴도 제공한다는 것이다. 아래 그림과 같이 실시간으로 현재 몇명이 이 링크를 클릭했고 (유니크클릭이다), 클릭이 발생한 채널이 어디인지 (페북이냐 웹이냐), 국가는 어디인지 등등의 결과를 실시간으로 확인 가능하다.구글의 URL줄이기 툴은 간단한 통계를 실시간으로 제공한다.이런식으로 모든 마케팅 컨텐츠의 URL에 추적코드를 붙여서 실시간으로 유입 결과를 확인하고 초기 반응이 좋으면 더 집중, 별로면 바로 내리거나 변경 등의 린한 초기 마케팅 활동이 가능해 진다.웹사이트로 유입되는 추적코드는 다음과 같이 생겼다.http://barkapp.co/?ref=Brunch여기서 '?ref=' 뒤에 있는 'Brunch' 부분이 추적코드이다. 이렇게 하면 내가 뿌려놓은 수많은 컨텐츠들에서 웹사이트로 유입된 유저들의 경로를 따로 추적 가능하다. 여기서 웹사이트로 유입된 유저들이 아이튠즈로 또 타고 들어갈 경우 저 추적코드를 유지하게 하는 것도 가능한데, 이건 개발자한테 물어보도록 하자.2. Retention_ 앱 내에서 유저가 얼마나 지속적으로 사용하는지를 관리하기리텐션은 신규유입보다 더 중요하다. 왜냐하면 신규유입이야 사실 마케팅 버짓과 밀접한 관계를 가지기 때문에 돈만 많으면 늘리는게 가능하다지만, 리텐션은 앱이 얼마나 퀄리티가 있느냐와 직결되는 문제이기 때문이다. 즉, 앱의 리텐션이 별로면 보통 다음 중 하나의 문제점을 가지고 있을 가능성이 크다.1. 앱이 추구하는 코어 가치를 제공하기에 기능적 완성도가 떨어진다.2. 유저가 느끼는 앱의 목적성이 모호하다.3. 코어 가치 자체가 가치가 없다.1번은 MVP로서 제공해야 하는 코어 기능들의 완성도가 떨어져서 유저가 불편을 겪거나 부족하다고 느끼는 경우이고, 2번은 유저가 이 앱을 왜 사용하는지 잘 모르는 경우이며, 3번은 그 앱이 제공하는 코어 가치 자체가 앱을 지속적으로 사용해야할 만큼 크리티컬하지 않은 경우를 의미한다.아무튼, 어떤 이유에서 리텐션이 떨어지는지를 분석하는건 소비자 리서치의 영역이기 때문에 여기서는 생략한다. (사실 필자도 잘 모른다) 다만 우리가 할 수 있는건 저 리텐션 수치와 관련된 가설을 수립하고 기능 추가, 수정 등을 통해서 끊임없이 테스트하고 결과적으로 봤더니 이 앱의 코어가치가 가치가 있네 없네를 따질 수 있다는 것이다.리텐션은 보통 다음 두가지 툴을 통해서 확인한다.첫번째는 아이튠즈 커넥트에서 기본적으로 제공하는 수치를 통해 확인하는데, 이렇게 생겼다. (역시 이것도 그냥 개발자한테 보여달라고 요청하자)아이튠즈 커넥트에서 제공하는 리텐션 차트이다. (역시 개발자에게 보여달라고 요청하자)위의 x축은 앱에 유입된 유저가 1일차에 얼마나 남아있는지, 2일차에는 또 얼마나 남아있는지...를 30일까지 보여주는 부분이고, y축은 그걸 날짜별로 보여주는 부분이다. 예를들어 위에서 5월 31일에 유입된 유저가 다음날 얼마나 남아있는지를 Day 1 리텐션이라 부르고 위의 표에서 58%가 그 숫자에 해당한다. 이 말은 처음 유입된 유저가 100명이라면 58명이 다음날 앱을 또 사용한 거다.하지만, 우리팀 개발자에 의하면 애플에서 트래킹하는 리텐션 수치의 정확도가 떨어지기 때문에 패브릭을 같이 봐줘야 한다고 한다. 패브릭에서는 Day1, Day7, Day30 리텐션만 그래프로 보여주는데 보통 숫자가 아이튠즈 커넥트 보다 낮다. 패브릭에서 Answers > MAU 섹션에 들어가면 하단에 나온다.패브릭에서 MAU 탭 하단에 보면 리텐션 차트가 나온다.패브릭에서 리텐션을 좀더 깊게 파는 방법이 있는데 뭐냐면, 일별로 앱 내에서 유저가 비활성 유저 - 낮은 활성 유저 - 중간 활성 유저 - 높은 활성 유저 사이를 왔다 갔다 하는 숫자를 보여주는 기능인데 이걸 매일 확인하면 이 앱의 리텐션이 죽어가는구나, 살고 있구나를 더 직관적으로 알 수 있다. 본 차트는 Answers > DAU 섹션 하단에 있다.일별로 유저의 활성도가 어떻게 움직이고 있는지를 패브릭에서 확인 가능하다.여기서 궁금한게, 내 앱의 리텐션 수치가 다른 앱과 비교해서 좋은지 나쁜지를 어떻게 아느냐인 건데, 이를 아주 자세하게 소개한 Andrew Chan의 블로그 글이 있으니 꼭 일독하길 바란다. 결과부터 얘기하면 Top 10 앱들은 보통 Day1 리텐션이 70%를 넘고, Day90까지 가도 반 이상이 살아있다.안드로이드 상위 탑 10, 50, 100, 5000 앱들의 평균 리텐션 추이3. Referral_ 유저가 내 앱을 얼마나 소문내고 다니는지 트래킹하기가장 어려운 부분이다. 내 앱을 사용하는 유저가 이 앱을 다른 사람에게 소개하는지를 어떻게 확인할까? 우리 앱에서는 앱 내에 아예 'Invite Friends' 버튼을 만들어 놓고, 여기에다가 유저 번호의 추적코드를 삽입해서 아이튠즈 커넥트에서 모니터링 하고 있다. 즉, 아래 버튼에 위의 아이튠즈 주소에서 추척코드 삽입하는 부분을 현재 유저 번호가 들어가게 해서 이 유저가 보내준 URL로 얼마나 신규 유저가 유입됐는지를 아이튠즈 커넥트에서 모니터링 하는 것이다. 바크 앱의 경우 한 유저가 20-30명씩 추천한 사람도 있다.추천하기 버튼에서 생성되는 URL에 유저 번호 추적코드를 삽입해 놓았다.지금까지 모바일 앱 세계의 완전 초보가 무료 앱을 완전 제로베이스에서 운영한다고 했을때 알아야 하는 모바일앱 지표 분석 방법론에 대해 알아보았다. 아마도 MAU니 DAU니, ARPU등의 이야기를 기대하고 온 분들은 실망하실수도 있는 얘기이지만 완전 제로베이스에서 시작하는 초기 앱의 경우 MAU같은거는 크게 의미가 없다. 이건 나중에 스케일을 키워서 얻어지는 결과값같은 거기 때문에 초기 부터 '아 우리앱의 DAU가 지금 100명이야, 어제는 50명이였는데 2배나 뛰었네..' 이런거 따지고 있는건 시간낭비라는 뜻이다. 그 보다는 위에 언급한 3개, 즉 Acquisition, Retention, Referral을 어떻게 모니터링하고 이를 초기 마케팅 활동에 반영해서 계속 린하게 튜닝해 나가느냐가 한 백배는 더 중요하다고 생각한다.글쓴이는 스팀헌트 (Steemhunt) 라는 스팀 블록체인 기반 제품 큐레이션 플랫폼의 Co-founder 및 디자이너 입니다. 비즈니스를 전공하고 대기업에서 기획자로 일하다가 스타트업을 창업하고 본업을 디자이너로 전향하게 되는 과정에서 경험한 다양한 고군분투기를 연재하고 있습니다.현재 운영중인 스팀헌트 (Steemhunt)는 전 세계 2,500개가 넘는 블록체인 기반 앱들 중에서 Top 10에 들어갈 정도로 전 세계 150개국 이상의 많은 유저들을 보유한 글로벌 디앱 (DApp - Decentralised Application) 입니다 (출처 - https://www.stateofthedapps.com/rankings).스팀헌트 웹사이트 바로가기
조회수 4017

왜 SVG로 갈아탔는가?

이 글에서는 데일리호텔이 왜 png에서 svg로 갈아탔는지, 그리고 간단한 svg 실무 적용 팁에 대해 알려드리고자 합니다.01 SVG란 무엇인가?SVG는 “ Scalable Vector Graphics”의 약자입니다.JPEG, PNG 처럼 SVG도 그래픽 포맷(Graphic format) 중 하나입니다. SVG는 벡터 기반이기 때문에 리사이징이 되어도 전혀 깨지지 않습니다. 모든 해상도에서 자유자재로 활용할 수 있기 때문에 특정 해상도에 제한되어있지 않다는 게 핵심 포인트라고 할 수 있습니다.02 SVG가 왜 좋은가?다른 그래픽 포맷보다 SVG가 좋은 이유는 참으로도 다양합니다. 필자가 생각했을 때의 핵심 장점들은 이러합니다.1. 특정 사이즈에 구애를 받지 않습니다.즉 어느 해상도에서든 pixelate 되지 않습니다. 요새 디자이너들이 자주 사용하는 디자인 프로그램인 스케치로 따지면 아트보드와 비슷한 것 같습니다. 아트보드 안에 만든 레이어, 요소들은 다 벡터 기반입니다. 아트보드를 리사이징 해도 안에 요소들은 깨지지 않고 그 모습 그대로를 가지고 있습니다. 같은 원리로 SVG도 어떤 사이즈로든 그 모습 그대로가 유지됩니다. 그렇기 때문에 사이즈별로 아이콘을 일일이 생성해서 개발자에게 넘겨줄 필요가 없습니다. SVG 파일 하나면 모든 해상도를 대응할 수 있습니다.2. 작은 파일 사이즈비트맵 이미지들(PNG, JPEG) 같은 경우 파일 크기를 결정하는 주요 요소는 바로 ‘해상도’입니다. 예를 들어 5000x5000 픽셀 이미지는 항상 500x500보다 파일 사이즈가 큽니다.반면, SVG 그래픽 같은 경우 파일 크기를 결정하는 주요 요소는 바로 ‘복잡도’입니다. Path가 비교적 적은 간단한 이미지는 PNG, JPEG 보다 파일 사이즈가 적을 수도 있지만 이미지를 구성하는 요소의 복잡도(레이어가 많다든지 특정 효과가 많다든지)에 따라 파일 사이즈가 커집니다.하지만 이런 용량 문제는 SVG Optimizing을 하게 되면 나름 해결됩니다. 필자 같은 경우 업무적으로 스케치를 사용하고 있기 때문에 스케치에서 제공해주는 SVGO Compressor 플러그인을 활용하고 있습니다.https://github.com/BohemianCoding/svgo-compressorBohemianCoding/svgo-compressorsvgo-compressor - A Plugin that compresses SVG assets using SVGO, right when you export them. This Plugin requires Sketch 3.8.github.com 작은 파일 사이즈로 인해 로딩 시간도 훨씬 더 줄어든다는 장점 또한 있습니다.여기서 잠깐!혹시나 Bitmap과 SVG의 구성요소에 대해 잘 모르실 분들을 위하여 간단한 비교 해드리겠습니다.비트맵 그래픽: Raster Graphics (픽셀 기반)대표적인 포맷은 JPEG, PNG입니다. 이들은 픽셀로 구성되어 있습니다. 예를 들어 2x2 픽셀인 비트맵 이미지는 총 4px로 구성되어 있습니다. 개개인에 대한 픽셀들은 자유자재로 바꿀 수가 없고 움직일 수도 없습니다. 그렇기 때문에 100% 이상으로 이미지를 확대하면 Pixelate가 됩니다.SVG 그래픽: 벡터 기반픽셀로 구성되어 있지 않고 작업하고 있는 그래픽에 대한 정보로 구성되어 있습니다. 그렇기 때문에 어떤 사이즈로든 자유자재로 늘어나는 것이 가능합니다. 이러한 이유들로 인해 코드로 쉽게 적용된 스타일을 수정할 수 있습니다. 예를 들어 동그라미의 보더 값을 6에서 8로 바꾼다 / 색상을 그레이에서 블랙으로 바꾼다 / 사이즈를 40x40에서 80x80을 바꾼다 등스케치로 작업할 때도 쉽게 두 개의 차이점을 확인해볼 수 있습니다. 스케치에서 Export를 할 경우 비트맵 이미지는 하나의 압축된 레이어로 Export 됩니다. 반면 SVG는 레이어 그대로 눈에 보이지 않는 그래픽을 구성하는 정보들이 같이 저장된 채 Export가 됩니다.SVG를 구성하는 눈에 보이지 않는 정보들03 스케치가 SVG 이미지를 Export하는 방식다른 그래픽 포맷보다 SVG가 좋은 이유는 참으로도 다양합니다. 제가 생각했을 때의 핵심 장점들은 이러합니다.Sketch Export 기능스케치 하단 오른쪽 패널을 보면 Export 버튼이 있습니다. 여기서 Format을 SVG로 바꾸고 Export하면 금방 쉽게 끝나겠지 라고 생각할 수 있는데 여기서 조심해야 할 점은 본인이 어떻게 이미지를 작업했냐에 따라 옳지 않게 SVG가 내보내질 수 있습니다. 옳지 않게 SVG가 내보내 지게 되면 나중에 두 번 일을 작업하는 일이 발생할 수도 있습니다.쉽게 이해하실 수 있도록 이미지를 제작해 보았습니다. 아래 이미지는 같은 디자인인데 만들어진 방식이 각각 다릅니다.같은 아이콘이지만 구성하는 방식이 다름1. Two Shape2. One Shape3. Border and Shape Mix위 3가지 방법들은 옳고 그름이 없습니다. 다만 어떻게 이 아이콘을 나중에 활용할 것인가에 따라 만드는 방법이 달라지겠죠. 만약에 자동차 아이콘 안에 헤드라이트 색상을 바꾸고 싶다고 하면 위 방법 중 1번을 선택하면 될 것이고 선의 두께를 따로 조정하고 싶다 하면 3번 방식을 택하면 됩니다.SVG에 대해 잘 알지 못할 때는 프로그램 탓을 했었습니다. ‘왜 프로그램이 알아서 잘 못해주지?’라는 질문을 던졌지만… 슬프게도 이건 프로그램 잘못이 아닌 작업자 잘못입니다 �스케치 프로그램이든 아도비 일러스트레이터든 이 프로그램들은 디자이너가 만든 그래픽을 있는 그대로 svg 레이어로 번역하도록 프로그램이 되어 있습니다. 디자이너가 어떻게 작업했냐에 따라 그 정보 그대로 인식해서 svg로 만들어줍니다.04 SVG 아이콘이 제대로 적용 안될 경우다른 그래픽 포맷보다 SVG가 좋은 이유는 참으로도 다양합니다. 필자가 생각했을 때의 핵심 장점들은 이러합니다.헐 이건 도대체 왜….?!!!어느 날 SVG를 적용하기로 마음먹고 데일리호텔 앱 내 편의시설 아이콘 중 수영장 SVG 파일을 개발자에게 넘겼습니다. 근데 구멍이 뚫려야 할 곳이 채워져서 나오는데 원인을 모르고 헤매던 시절이 있었습니다. 미디엄에서 이 문제를 해결해줄 좋은 글을 발견하게 되었는데 난생처음 보는 단어가 2개 있었습니다.Even-Odd, Non-Zero…여기서 Even-Odd, Non-Zero의 차이점을 자세히 언급하기에는 너무 길어서 제가 참고한 미디엄 블로그 링크를 공유해드릴 테니 가서 보시면 이해하실 수 있을 것 같습니다. 작업하기에 앞서 꼭 읽어보시기를 권장합니다.https://medium.com/sketch-app-sources/preparing-and-exporting-svg-icons-in-sketch-1a3d65b239bbPreparing and Exporting SVG Icons in Sketch – Design + Sketch – MediumThis article is going to assume that you already understand the fundamentals of icon design. And focus on how to prepare and export them…medium.com 그래도 가볍게 필요한 내용만 공유드리자면 안드로이드에서는 fill-rule:evenodd를 제대로 지원하지 않고 fill-rule:nonzero만 지원한다고 보시면 됩니다. Even Odd는 특정 앱에서 호환이 안된다는 뜻입니다. (안드로이드 API 24 이상에서만 evenodd가 지원됨)근데 우리가 사용하고 있는 스케치 프로그램에서는 default값이 fill-rule:evenodd로 설정이 되어있고 여러 Path가 겹치는 아이콘 같은 경우 그대로 svg export를 하게 되면 위에서 제가 경험하였던 아이콘이 다 채워진 현상을 겪을 수 있게 되는 것입니다.1. Fills 섹션에서 Even-Odd를 Non-Zero로Fills 섹션에 가면 설정 아이콘이 있습니다. 클릭 시 Even-Odd가 디폴트 값인 것을 확인할 수 있습니다.스케치 Fill Default 값 = Even-OddNon-Zero로 설정값을 바꾸면 수영장 사다리 부분이 가득 채워진 채로 나오게 되는 것을 확인할 수 있습니다. 실제로 이 파일을 개발자에게 넘기게 되면 이렇게 채워진 채로 아이콘이 노출이 됩니다.Non-Zero 설정 / 모든 shape이 다 칠해짐이렇게 나가면 안 될 테니 수정하는 법을 알려드리겠습니다.2. Paths > Reverse Order 적용원래 뚫려 있어야 하는 Path를 Layer 패널에서 찾으면 됩니다. 빨간색으로 칠한 부분이 뚫려있어야 하는 부분들입니다.레이어 패널에서 path 확인하기Path가 선택된 채로 Layers > Paths > Reverse Order을 클릭합니다.Paths > Reverse OrderReverse Order을 클릭한 후 원래 뚫려있어야 하는 부분이 뚫리게 됩니다. 이 상태로 svg로 export하시고 개발자에게 전달을 하면 됩니다.마치며개인적으로 SVG에 대한 장점이 너무나도 크다고 생각하여 굳이 갈아타지 않을 이유가 없다고 생각합니다. 특히 Web 디자인을 할 때도 SVG를 저는 적극적으로 사용하시라고 권장하고 싶습니다. � 안드로이드 개발자에게 넘기기 전에 SVG 파일이 문제가 있는지 가볍게 확인하고 싶은 경우 아래와 같은 사이트를 추천해드립니다.http://inloop.github.io/svg2android/위에 문제가 되었던 수영장 아이콘을 이 사이트에 올려서 보게 되면 이런 화면이 뜹니다. Warning하고 노란색 경고 박스가 뜨게 되는데 fills-rule:evenodd에 대해서 언급을 하더라구요. 정말 유용한 사이트인 것 같습니다.아울러..많은 디자이너들이 SVG 적용을 해보시길 바라며 주변에 이 글도 많이 공유해주시면 감사하겠습니다. (ㅎㅎ)또한 데일리호텔 Tech, UI/UX 등의 정보를 얻어보고자 하시는 분은 https://dailyhotel.io/ 를 읽어 보시길 권장합니다.그럼 다음에도 좋은 정보로 찾아뵙겠습니다!원문 링크 : https://dailyhotel.io/디자인-안드로이드-앱-svg-아이콘-적용기-왜-svg로-갈아탔는가-99c57cd84240작성자 : Product팀 Rachel Kim#데일리 #데일리호텔 #개발자 #개발팀 #업무환경 #개발환경 #SVN
조회수 5072

플랫폼 산업의 발전과 온라인 광고시장의 변화

핀테크 시장에는 P2P, 송금, 결제, 보안 등 다양한 카테고리가 있다. 해당 카테고리마다 성격은 다르지만, 대부분 '플랫폼 비즈니스'라는 공통된 특징을 가지는데, 그 중 플랫폼 비즈니스와 함께 성장한 온라인 광고 시장에 대해 더 살펴보자.  플랫폼 비즈니스와 광고 시장의 연관성  플랫폼 서비스는 인터넷 발전과 함께 다양하고, 빠르게 성장했다. 플랫폼 서비스는 양면 시장 구조로, '플랫폼'이라는 네트워크를 통해 서로 다른 집단을 연결시켜주는 시장을 뜻한다. 대표적인 예로 개인과 개인을 연결하는 '페이스북', 유휴차량과 승객을 연결하는 '우버', 숙박공간과 여행자를 연결하는 '에어비앤비' 등이 있다. 인터넷 플랫폼은 양면 시장 구조(출처=미래에셋대우 리서치센터)플랫폼, 수수료 외에 광고 수익모델이 필요  플랫폼 비즈니스의 주요 수익모델은 바로 중개 수수료다. 하지만 중개 수수료 모델은 시장에서 한 기업이 독점하지 않는 이상 수수료율을 높게 책정할 수 없다. 이에 많은 플랫폼은 중개 수수료 외에 다른 수익 모델을 찾는다. 문제는 많은 플랫폼 서비스가 높은 트래픽을 보유하고 있지만, 뚜렷한 수익모델을 찾지 못한다. 이 때 플랫폼 기업들은 일반적으로 자사 플랫폼에 광고를 붙이는 방식을 선택한다. 사실 이 수익모델도 이용자와 광고주를 연결한다는 부분에서 플랫폼 서비스 본질과 같다.  때문에 이제는 광고가 플랫폼 산업의 주요한 수익 모델로 자리잡는 중이다. 대부분의 플랫폼 서비스가 '일단 사용자를 많이 모은 후, 광고로 수익을 내자'는 계획으로 시장에 진입, 그 결과 온라인 광고시장은 폭발적으로 성장 중이다. 게다가 기존 온라인(모바일+PC인터넷) 광고 시장은 PC를 중심으로 운영되었지만, 스마트폰 등장 이후 모바일 광고 시장은 빠르게 성장했다. 다만, 온라인 광고 시장은 다른 광고 매체와 비교해 상대적으로 짧은 시간동안 급성장해, 생태계는 이제 막 형성되는 단계다. 그럼에도 확실한 것은 온라인 광고 매체 파급력은 그 어느 매체보다 강력하다는 점이다.  온라인 광고 시장 초기에는 퍼블리셔(홈페이지 운영 기업)와 광고주(광고를 요청한 기업)가 직접 연락해 자료나 게재 위치, 광고 단가 등을 합의하고 진행했다. 하지만, 온라인 광고 시장 규모가 커질수록 퍼블리셔들은 사용자를 유입시키는 주요 사업 모델이 아닌 광고를 관리하는 요소가 늘어나며 부담이 커졌다. 광고주가 바뀔 때마다 필요한 수정 작업과 코드 변경 작업 등이 점점 업무 강도를 높이고 있는 것. 이에 업무 비효율성이 증가했으며, 사이트 내 게재 광고가 많아지면서 퍼블리셔가 일일이 개별 광고 데이터를 분석하기도 어려워졌다.  방송통신 광고비 조사 결과(출처=한국방송광고진흥공사)광고를 쉽고 효율적으로 관리하는 애드서버 등장  이를 해결하기 위해 애드서버(AD server)가 등장했다. 퍼블리셔는 애드서버를 통해 많은 광고를 쉽고 효율적으로 관리할 수 있고, 애드서버는 퍼블리셔에게 일정 수수료를 받는다. 애드서버는 광고주 문제도 해결했다. 이제는 광고주도 다양한 퍼블리셔에 광고를 내고 싶기에 애드서버를 활용한다. 결국, 퍼블리셔와 광고주 모두를 위한 각각의 애드서버가 등장한다.  인터넷이 발전하면서 퍼블리셔와 광고주는 각각의 애드서버를 통해 편리하게 광고를 집행고, 보다 효율적으로 관리할 수 있도록 변화했다. 쉽게 말하자면, 애드서버는 광고주와 퍼블리셔가 광고를 진행하기 위한 하나의 툴이다. 퍼블리셔는 애드서버에 특정 조건을 설정한 광고 인벤토리(광고가 노출되는 영역)를 등록해 광고를 송출하고, 광고주는 애드서버에 광고를 등록해 매체에서 진행되는 광고 노출횟수나 결과값 등을 통합 관리하는 것.  하지만, 애드서버도 결국 퍼블리셔와 광고주의 업무를 덜어줄 뿐, 광고 효율을 위해 퍼블리셔와 광고주를 연결하는 데는 한계가 존재한다. 애드서버의 한계, 애드네트워크가 해결  당연히 광고주는 여러 퍼블리셔에 자사의 애드서버를 연결, 광고 노출 효과를 높이고 싶어한다. 하지만, 광고주가 수많은 퍼블리셔 중에서 직접 자사 광고에 적합한 퍼블리셔를 찾기 어렵고, 퍼블리셔와 각기 다른 애드서버를 통해서 광고를 집행할 경우 서버연동 문제 등이 발생했다. 퍼블리셔 또한, 한 광고주의 광고만 노출시키는 것보다 여러 광고주의 광고를 집행해 자사 매체에 가장 적합한 광고로 광고수익을 높이길 원한다. 때문에 광고주가 증가하면서 퍼블리셔도 서버연동에 문제가 발생했다. 여러 사용자들이 각각 사용하는 애드서버 툴마다 독립적으로 운영되면서, 연동하는 과정에 문제가 발생한 것. 이 문제를 해결해기 위해 등장한 것이 애드네트워크다. 애드네트워크란, 여러 퍼블리셔와 여러 광고주를 적합하게 매칭할 수 있는 환경을 조성하는 서비스다. 수많은 퍼블리셔들이 보유한 광고 인벤토리를 확보, 이를 상품화해 광고주에게 제공한다. 이를 통해 광고주는 자사가 원하는 형식의 광고를 직접 선택할 필요 없이 설정을 통해 다양한 매체에 광고를 집행할 수 있다. 퍼블리셔도 자사와 같은 애드네트워크를 이용하는 광고주가 증가할수록 다수의 광고를 확보할 수 있다. 애드네트워크 종류로는 구글의 'GDN', 다음카카오의 'DDN', 네이버의 'ACE Trader', 페이스북의 'Audience Network' 등이 있다. IT 대기업들이 자사의 애드네트워크를 구축하기 위해 경쟁을 펼치고 있는 것. 특히, 퍼블리셔와 광고주에게 ROI를 쉽게 분석할 수 있는 'Data analytics'를 제공하거나 여러 솔루션을 같이 제공하면서 자사 애드네트워크로 제휴사들을 모으고 있다.  애드네트워크와 금융  앞서 언급한 것처럼 인터넷의 발전과 스마트폰의 등장 등으로 온라인 광고 시장은 빠르게 성장했다. 이와 함께 광고를 효율적으로 집행하기 위한 시스템도 끊임없이 발전 중이다. 이에 맞춰 새롭게 등장하고 있는 플랫폼도 변화하는 흐름에 대응해야만 한다.  플랫폼 서비스가 잊지 말아야 할 것은 광고로 수익을 내기 위해서 많은 소비자들이 해당 플랫폼을 방문해야 한다는 점이다. 즉 트래픽이 높아야 한다.  핀다는 사람들에게 좋은 금융 상품을 추천하고 노출하기 위해 효과적인 광고모델을 구축하려고 노력했다. 차별점은 애드네트워크다. 여러 금융상품 중 많은 사람이 사용하는 상품이나 서비스를 핀다 파트너 매체로 제휴, 이를 통해 금융상품 부문에서 독자적인 애드네트워크를 구축했다. 소셜 커머스 티켓몬스터와, 송금 서비스를 제공하는 토스, 개인의 금융이나 신용 정보를 제공할 수 있는 플랫폼 등과 제휴해 소비자에게 금융 상품을 알린다.  즉, 핀다의 금융상품 DB와 추천 알고리즘을 많은 소비자에게 효과적으로 노출하기 위해 서로 다른 성격의 매체에 모듈을 붙인 것. 이처럼 애드서버, 애드네트워크를 구축하기 위해 플랫폼 서비스는 많은 소비자를 확보하고, 각 서비스에서 확보한 정보를 바탕으로 추천 알고리즘을 발전시켜야 한다.  온라인 광고 생태계는 변화의 물결이 부는 곳이다. 가변성과 불확실성이 높은 만큼 새로운 광고 형태가 등장할 확률도 높다. 변화하는 흐름 속에서 뒤처지지 않기 위해서는 자사가 보유하고 있는 플랫폼 서비스의 특징과 장점을 파악해 유연하게 대응해야 하는 것을 잊지 말자.  #핀다 #스타트업 #시장분석 #광고생태계 #노하우 #인사이트
조회수 834

창업자의 일기장(8)-닥치는 대로!

----지난 이야기----잠시 교육생이라는 이름의 소속감과성적이라는 목표로 달려왔던 시간을 지났다.그런데 이제 슬슬 통장 잔고는 바닥을 보이고....실업급여를 마지막으로 수령하고 나니겁이 덜컥 들었다.이제는 죄꼬리만큼 남은 퇴직금이 전부구나.처음 퇴사해서 잡은 계획과 달리,창업 준비는 꽤 더디기만 했다.예상보다 함께 하기로 했던 지인들은 망설였고, 굳이 잘 다니던 직장생활을 벗어나라고유혹할 명분과 근거가 없었다.그리고 그나마 있던 저축도 빠르게 줄어들었다.도서관이라는 장소가 가장 저렴하지만,이제는 왕복거리에 들어가는 교통비마저 부담스러웠다.사업계획서를 시뮬레이션해봐도계속 적자, 적자, 적자가 나오는 구조고반복해서 수정하다 보니...이것은 자본력이 없으면 애초 시작이 불가능하다는 결론이 났다.그렇게 소멸돼버린 사업계획이 늘어날수록정신적 압박감은 더 심해졌고,회사를 나온 것이 너무 이른 결정이었나 하는의구심이 들었다.가만히 있을 수 없어서 닥치는 대로일당벌이를 시작했다.학창 시절에 용돈 벌려고 했던 일용직 알바는생존을 위한 목적과는 마음가짐 자체가 달랐다.새벽에 옷가지 챙겨서 나가선택받는 시간이 너무나 슬로모션으로 느껴진다.공쳐버리면 도서관으로 갈 수밖에...하루살이의 삶이 이런 걸까.하루 열심히 일해서 쥐어지는 일당을손에 쥐고 나면,내일은 과연 일이 있을까 하는걱정부터 생긴다.그나마 좀 긴 시간을 작업하는 경우야반장 눈에만 잘 들어가면, 한동안 안심할 수 있지만당일치기 일은 참... 마음을 어렵게 한다.월급쟁이일 때는 몰랐는데...일용직의 불안함은 너무 생소했고,생생했고, 두렵기도 했다.중간중간에 프리랜서로 인허가 서류 좀 봐주는 일도 하고,물품 찾아주는 일도 했다.사실 군 전역 후에 잠시 창업해서알게 된 지인들이 비정기적이지만조금씩 일을 주었다.진심으로 고마웠던 것은 본인들이 직접 해도 되는 일이었는데도나에게 넘겨준 사실이다.문제는 이렇게 일하다 보니창업 준비에 소홀해지더라.그리고 벌이는 그리 시원치 않았고,몸은 몸대로 항상 고단하였다.아... 다시 한번 더 직장을 다닐까?근데 날 받아 줄 회사가 있으려나?차라리 좀 시간적 여유 있는 회사에서 고정적인 수입을 확보하고,틈틈이 긴 숨 가지고 창업 준비를 해야 하나?그렇게 재취업에 대한 유혹이 컸고,마음이 흔들리기 시작했다.
조회수 2174

어느 온라인 명품 커머스의 페이스북 리타게팅 광고

아래 적어 나갈 글은 오피노에서 제가 맡고 있는 프로젝트의 페이스북 광고에 대한 이야기입니다. 온라인에서 명품을 구매하고자 하는 니즈가 생겨 여러 온라인 명품 커머스 사이트를 들어가게 되었고 이후 리타게팅 대상이 된 상황을 가정하고 이야기를 구성해보았습니다. 그리고 이야기를 풀어나가기 위해 저희 대표님과의 일화를 바탕으로 이야기를 적어나갔습니다.#2019.02.18저는 그날을 정확히 기억합니다. 그날은 신규 고객사의 미팅이 있는 날이었습니다. 미팅 10분 전에 건물 1층에서 대표님과 만나기로 했습니다. 저는 대표님보다 일찍 도착하기 위해 15분 전에 건물 1층에 도착해 있었습니다. #정확히 미팅 10분 전, 대표님이 멀리서 걸어오셨습니다. 표정이 밝아 보였습니다. 유독 밝아 보이셨습니다. 그리고 제 눈앞 5m쯤 도착했을 때 저는 그 이유를 알게 되었습니다. 대표님 표정과 함께 대표님 발, 아니 신발도 굉장히 밝아 보였습니다. 새 신발을 사신 것 같았습니다. 그리고 대표님이 제 앞에 도착했을 때 저는 신발을 보고 좀 많이 놀랬습니다. 신발 한편에  'BALENCIAGA(한글로 발렌시아가)'라고 적혀 있었기 때문입니다. 맞습니다. 대표님은 요즘 핫한 명품 발렌시아가 신발을 신고 있었습니다. 놀랬습니다. 근데 부러워서 아는 척 안 했습니다. 그리고 우리는 미팅을 하러 갔습니다. #미팅이 끝나고 엘리베이터를 기다리고 있는데, 대표님이 제 눈치를 보시더니 조심스레 말을 꺼냈습니다. 대표님: 이런 신발 처음 신어 보는데 잘 어울리는 거 같니? 이상하지 않아?나: 괜찮은데요?(사실 많이 잘 어울렸습니다.) 근데 이거 엄청 비싸지 않아요?대표님: 얼마인 줄 알아??나: 40~50만 원 정도 하나요??대표님: 이게 거의 100만 정도 한대!나: 헐~ 완전 비싼데요? 와~ 저는 반스 슬립온만 2년째 신는데. 대박 비싸네요~대표님: 나도 이런 거 안 사지. 근데 와이프가 신발이 너무 없어 보인다고 진짜 큰 맘먹고 선물해줬어~나: 와~~~ (부러움) 그날 밤 저는 네이버에서 '발렌시아가 신발'을 검색했고, 여러 사이트에 들어가서 새벽 3시까지 발렌시아가 신발을 찾아봤습니다. 그리고 잠이 들었습니다.본론: 어느 온라인 명품 커머스의 페이스북 리타게팅 광고 파헤쳐보기#다음 날 페이스북 피드에서, 저는 여러 온라인 명품 커머스의 리타겟팅 대상이 되어 있었습니다. 아침, 점심, 저녁, 그리고 다음날, 그 다음다음날까지 페이스북 피드를 열 때마다 내가 봤던 발렌시아가 제품과 그 제품과 유사한 제품들이 피드에 계속 보였습니다. 그리고 페이스북 광고를 세팅해 본 저는 바로 직감했습니다.최근 00일 이내 해당 제품을 조회했거나 장바구니에 담은 타겟에게 해당 제품, 그리고 그와 유사한 제품을 노출시키는 광고를 하고 있구나총 7개 정도의 사이트에 들어갔었는데, 역시나 의류 커머스답게 (내가 봤던 제품을 노출하는) 상품 피드 광고를 진행하고 있었습니다. 근데 유독 한 곳이 상품 피드 광고와 함께 다른 광고로 저에게 메시지를 던져주고 있었습니다. 2- 3일 정도의 기간 동안 상품 피드 광고 외 총 7개 정도의 광고를 본 것 같은데, 그 광고를 하나씩 볼 수록, 그리고 그 광고를 보고 사이트를 다시 유심히 살펴볼수록 발렌시아가 신발을 여기서 사고 싶은 마음이 생겼습니다. 다른 온라인 명품 커머스와 달라 보였습니다. 고객 입장 전에, 먼저 마케터 입장에서 광고 콘텐츠를 수집해서 분석해보기로 했습니다.#어느 온라인 명품 커머스의 페이스북 광고 콘텐츠들 1.해외직구보다, 국내 백화점보다 가격이 저렴하다는 것을 강조하는 영상 콘텐츠 온라인에서 명품을 구매할 때 가격을 고려하게 될 텐데, 왜 이 사이트에서 가격을 저렴하게 구매할 수 있는지 대표님의 스피치 영상이 광고로 노출되고 있었습니다. 저렴한 가격과 신뢰성을 어필하기 위한 목적으로 보였습니다. 2.이 사이트의 UVP(Uniq Value Proposition: 고유 가치)가 나열된 슬라이드 콘텐츠슬라이드의 내용을 살펴보면 재구매의사 99.5% 백화점과 동일한 A/S 삼성 SDS와의 계약으로 해외배송 추적이 가능하고, 정품 인증유럽 명품 유통 최상위 부티크와 직접 계약으로 해외 현지 매장, 해외직구보다 평균 33% 저렴한 가격 제공이탈리아, 프랑스 등 유럽 명품 부티크 200개와 독점 계약을 통해 100% 정품 보장의류, 신발 사이즈 교환 1회 무료 고객에게 배송하기 전 상품을 검수하고 영상을 촬영해서 보내주는 리얼 패킹 영상 시스템밀라노 런웨이 제품이 고객에게 단, 3일! 백화점보다 두 달 정도 빠른 신상 입고등 이 사이트가 가지고 있는 UVP를 보여줌으로써 안심하고 구매해도 된다는 메시지를 던져 주고 싶었던 것 같습니다. 3.이미 이 사이트에서 구매한 사용자들의 배송 관련 후기광고 콘텐츠의 후기들을 읽고, 사이트에 들어가서 후기들을 하나씩 하나씩 읽어나갈수록 배송에 대한 만족도가 굉장히 높은 것을 확인할 수 있었습니다. 그리고 포장 영상을 언급하는 사람들이 많았는데, 그 광고 또한 저에게 노출되고 있었습니다. 그 광고는 아래에 있습니다.4.구매한 고객들이 좋아했던 포장 영상 구매한 고객들이 후기에서 가장 많이 언급하는 포장 영상입니다. 고객이 주문한 제품이 이탈리아 부티크에서 발란으로 배송된 후 '퍼스널 쇼퍼'라는 분들이 제품의 오배송, 포장상태, 사이즈, 색상 등을 미리 검수하고 촬영해서 고객에게 영상을 보내주는 시스템이었습니다. 고객에게 제품이 잘 못 배송되는 것을 사전에 막기 위한 것으로 보였습니다. 광고 문구에서 이야기하고 있는 것처럼, 럭셔리한 제품만 판매하는 게 아니라 럭셔리한 제품을 고객이 받기까지 럭셔리한 경험을 제공하는 이 회사의 철학이 느껴졌습니다.    5.숫자로 각인시키는 단일 광고입점 브랜드 3,000개, 보유상품수 260,000개.해당 숫자들이 각인되는 순가 저는 이 사이트가 작은 곳이 아니고, 믿고 살만큼의 규모가 있는 사이트로 느껴졌습니다. 6.온라인 명품을 구매할 때 걱정하는 A/S에 대한 광고온라인에서 명품을 구매할 때 걱정하는 A/S에 대해서도 친절한 설명과 비포 & 애프터, 후기들을 보여주면서 온라인에서 명품을 구매해도(우리 브랜드에서 구매하면) A/S 걱정이 필요 없다는 이야기를 전하고 싶었던 것으로 보입니다.7.백화점에서나 볼 수 있었던 퍼스널 쇼퍼 이야기저는 이 광고를 보고 퍼스널 쇼퍼라는 개념을 처음 알게 되었습니다. 백화점에서 VIP분들 대상으로 쇼핑을 편하게 할 수 있도록 도와주는 역할을 한다고 하는데, 해당 브랜드는 퍼스널 쇼퍼 서비스를 고객에게 제공하고 있다고 친절하게 설명하고 있고, 이용하도록 안내하고 있었습니다. 그리고 퍼스널 쇼퍼 서비스에 만족한 고객의 이야기들을 들려주면서 좀 더 신뢰감을 전해주고 있었습니다.#위에서 언급한 광고들은 무엇에 집중하고 있을까?이 글을 적고 있는 저는 지금 당장은 아니지만, 대표님의 발렌시아가 신발을 보고 잠재적으로 그 신발을 구매하려는 사람입니다. 저는 명품을 구매해보지 않았습니다. 관심도 없었습니다. 하지만, 온라인에서 처음으로 명품을 구매하려고 하는 사람입니다. 그런데 걱정되는 부분이 있습니다. 1.온라인에서 명품을 구매하려는 내가 하고 있는 걱정은?그 사이트는 정품을 판매하고 있을까? (신뢰할 수 있는 곳인가)배송은 빠를까? 신어보지 못하니깐 사이즈가 안 맞거나 크면 어떻게 하지? 가격은 저렴한가? 신발이라 딱히 A/S를 하지 않을 것 같지만 A/S는 가능한가? 2.나의 불안함을 해소해준 광고들그 사이트는 정품을 판매하고 있을까? (신뢰할 수 있는 곳인가)   - UVP 광고,  발란 대표님의 영상 광고 배송은 빠를까?  -이미 구매한 사람들의 배송 후기 광고 신어보지 못하니깐 사이즈가 안 맞거나 크면 어떻게 하지?  -UVP 광고에 언급한 무료 사이즈 교환 1회 내용,  퍼스널 쇼퍼 광고, 그리고 사이트에 해당 내용이 나와 있어서 안심할 수 있었음가격은 저렴한가?  -UVP 광고, 발란 대표님의 영상광고 신발이라 딱히 A/S를 하지 않을 것 같지만 A/S는 가능한가? -UVP 광고, A/S 광고=> 이 모든 광고들이 짧은 기간 내에(2~3일 이내) 저에게 노출되다 보니, 이 사이트를 신뢰할 수 있게 해주는 장치들로 보였습니다. 그리고 온라인에서 명품을 구매하려는 잠재고객들의 걱정을 덜어줄 수 있는 콘텐츠들로 보였습니다. 광고이지만, 걱정하는 저에게 이런 메시지를 먼저 던져주는 부분이 오히려 친절하게 느껴졌습니다. 해당 정보들은 고객이 이 사이트에서 구매를 함에 있어 직접 찾아봐야 하는 정보들일 수도 있기 때문입니다.#페이스북 광고를 집행하고 계신 마케터 분들이라면 한 번 경험해보셨으면 좋겠습니다. 발란 사이트에 들어가서 몇 개의 제품 페이지를 조회하면 페이스북 피드와 인스타그램 피드에서 광고를 경험할 수 있습니다. 그리고 처음 온라인에서 명품을 구매하려는 고객 입장에서, 혹은 온라인에서 명품을 구매하려는 고객 입장에서도 생각해보셨으면 좋겠습니다. 마지막으로 우리 브랜드의 잠재고객은 누구이고, 구매를 하기까지 어떤 걱정들을 하고 있는지, 고객들에게 어떤 해결책과 가치를 전해 줄 수 있는지, 그리고 그 걱정을 해소시켜주고 브랜드의 가치를 전해주기 위해 어떤 콘텐츠를 보여줄 수 있을지 함께 고민해보는 시간이 되었으면 좋겠습니다. 저도 이번 주를 고민하고 있습니다. 혹시 '온라인에서 명품을 구매하려고 했던 적이 있거나, 구매 하신 적이 있다면 어떤 부분들을 걱정했는지' 아래 링크를 통해서 의견 주시면 도움이 많이 될 것 같습니다:) 고민하는 마케터에게 도움 주기 >>발란에서 제품 페이지 조회하고 광고 경험해보기 >>(**모바일로 들어가셔서 제품 페이지까지 확인해야 합니다.)마지막으로, 감사하게도 이 글을 읽어보신 발란의 대표님께서 독자분들이 사용하실 수 있는 쿠폰을 주셨습니다. 마음에 드시는 제품이 있으시다면 혜택과 함께 경험해보셨으면 좋겠습니다:) 발란의 Special 쿠폰 발급받기 >>퍼포먼스 마케팅 에이전시, 오피노 바로가기
조회수 878

안드로이드 클라이언트 Reflection 극복기 - VCNC Engineering Blog

 비트윈 팀은 비트윈 안드로이드 클라이언트(이하 안드로이드 클라이언트)를 가볍고 반응성 좋은 애플리케이션으로 만들기 위해 노력하고 있습니다. 이 글에서는 간결하고 유지보수하기 쉬운 코드를 작성하기 위해 Reflection을 사용했었고 그로 인해 성능 이슈가 발생했던 것을 소개합니다. 또한 그 과정에서 발생한 Reflection 성능저하를 해결하기 위해 시도했던 여러 방법을 공유하도록 하겠습니다.다양한 형태의 데이터Java를 이용해 서비스를 개발하는 경우 POJO로 서비스에 필요한 다양한 모델 클래스들을 만들어 사용하곤 합니다. 안드로이드 클라이언트 역시 모델을 클래스 정의해 사용하고 있습니다. 하지만 서비스 내에서 데이터는 정의된 클래스 이외에도 다양한 형태로 존재합니다. 안드로이드 클라이언트에서 하나의 데이터는 아래와 같은 형태로 존재합니다.JSON: 비트윈 서비스에서 HTTP API는 JSON 형태로 요청과 응답을 주고 받고 있습니다.Thrift: TCP를 이용한 채팅 API는 Thrift를 이용하여 프로토콜을 정의해 서버와 통신을 합니다.ContentValues: 안드로이드에서는 Database 에 데이터를 저장할 때, 해당 정보는 ContentValues 형태로 변환돼야 합니다.Cursor: Database에 저장된 정보는 Cursor 형태로 접근가능 합니다.POJO: 변수와 Getter/Setter로 구성된 클래스 입니다. 비지니스 로직에서 사용됩니다.코드 전반에서 다양한 형태의 데이터가 주는 혼란을 줄이기 위해 항상 POJO로 변환한 뒤 코드를 작성하기로 했습니다.다양한 데이터를 어떻게 상호 변환할 것 인가?JSON 같은 경우는 Parsing 후 Object로 변환해 주는 라이브러리(Gson, Jackson JSON)가 존재하지만 다른 형태(Thrift, Cursor..)들은 만족스러운 라이브러리가 존재하지 않았습니다. 그렇다고 모든 형태에 대해 변환하는 코드를 직접 작성하면 필요한 경우 아래와 같은 코드를 매번 작성해줘야 합니다. 이와 같이 작성하는 경우 Cursor에서 원하는 데이터를 일일이 가져와야 합니다.@Override public void bindView(View view, Context context, Cursor cursor) { final ViewHolder holder = getViewHolder(view); final String author = cursor.getString("author"); final String content = cursor.getString("content"); final Long timeMills = cursor.getLong("time"); final ReadStatus readStatus = ReadStatus.fromValue(cursor.getString("readStatus")); final CAttachment attachment = JSONUtils.parseAttachment(cursor.getLong("createdTime")); holder.authorTextView.setText(author); holder.contentTextView.setText(content); holder.readStatusView.setReadStatus(readStatus); ... } 하지만 각 형태의 필드명(Key)이 서로 같도록 맞춰주면 각각의 Getter와 Setter를 호출해 형태를 변환해주는 Utility Class를 제작할 수 있습니다.@Override public void bindView(View view, Context context, Cursor cursor) { final ViewHolder holder = getViewHolder(view); Message message = ReflectionUtils.fromCursor(cursor, Message.class); holder.authorTextView.setText(message.getAuthor()); holder.contentTextView.setText(message.getContent()); holder.readStatusView.setReadStatus(message.getReadStatus()); ... } 이런 식으로 코드를 작성하면 이해하기 쉽고, 모델이 변경되는 경우에도 유지보수가 비교적 편하다는 장점이 있습니다. 따라서 필요한 데이터를 POJO로 작성하고 다양한 형태의 데이터를 POJO로 변환하기로 했습니다. 서버로부터 받은 JSON 혹은 Thrift객체는 자동으로 POJO로 변환되고 POJO는 다시 ContentValues 형태로 DB에 저장됩니다. DB에 있는 데이터를 화면에 보여줄때는 Cursor로부터 데이터를 가져와서 POJO로 변환 후 적절한 가공을 하여 View에 보여주게 됩니다.POJO 형태로 여러 데이터 변환필요Reflection 사용과 성능저하처음에는 Reflection을 이용해 여러 데이터를 POJO로 만들거나 POJO를 다른 형태로 변환하도록 구현했습니다. 대상 Class의 newInstance/getMethod/invoke 함수를 이용해 객체 인스턴스를 생성하고 Getter/Setter를 호출하여 값을 세팅하거나 가져오도록 했습니다. 앞서 설명한 ReflectionUtils.fromCursor(cursor, Message.class)를 예를 들면 아래와 같습니다.public T fromCursor(Cursor cursor, Class clazz) { T instance = (T) clazz.newInstance(); for (int i=0; i Reflection을 이용하면 동적으로 Class의 정보(필드, 메서드)를 조회하고 호출할 수 있기 때문에 코드를 손쉽게 작성할 수 있습니다. 하지만 Reflection은 튜토리얼 문서에서 설명된 것처럼 성능저하 문제가 있습니다. 한두 번의 Relfection 호출로 인한 성능저하는 무시할 수 있다고 해도, 필드가 많거나 필드로 Collection을 가진 클래스의 경우에는 수십 번이 넘는 Reflection이 호출될 수 있습니다. 실제로 이 때문에 안드로이드 클라이언트에서 종종 반응성이 떨어지는 경우가 발생했습니다. 특히 CursorAdapter에서 Cursor를 POJO로 변환하는 코드 때문에 ListView에서의 스크롤이 버벅이기도 했습니다. Bytecode 생성 Reflection 성능저하를 해결하려고 처음으로 선택한 방식은 Bytecode 생성입니다. Google Guice 등의 다양한 자바 프로젝트에서도 Bytecode를 생성하는 방식으로 성능 문제를 해결합니다. 다만 안드로이드의 Dalvik VM의 경우 일반적인 JVM의 Bytecode와는 스펙이 다릅니다. 이 때문에 기존의 자바 프로젝트에서 Bytecode 생성에 사용되는 CGLib 같은 라이브러리 대신 Dexmaker를 이용하여야 했습니다. CGLib CGLib는 Bytecode를 직접 생성하는 대신 FastClass, FastMethod 등 펀리한 클래스를 이용할 수 있습니다. FastClass나 FastMethod를 이용하면 내부적으로 알맞게 Bytecode를 만들거나 이미 생성된 Bytecode를 이용해 비교적 빠른 속도로 객체를 만들거나 함수를 호출 할 수 있습니다. public T create() { return (T) fastClazz.newInstance(); } public Object get(Object target) { result = fastMethod.invoke(target, (Object[]) null); } public void set(Object target, Object value) { Object[] params = { value }; fastMethod.invoke(target, params); }  Dexmaker 하지만 Dexmaker는 Bytecode 생성 자체에 초점이 맞춰진 라이브러리라서 FastClass나 FastMethod 같은 편리한 클래스가 존재하지 않습니다. 결국, 다음과 같이 Bytecode 생성하는 코드를 직접 한땀 한땀 작성해야 합니다. public DexMethod generateClasses(Class<?> clazz, String clazzName){ dexMaker.declare(declaringType, ..., Modifier.PUBLIC, TypeId.OBJECT, ...); TypeId<?> targetClassTypeId = TypeId.get(clazz); MethodId invokeId = declaringType.getMethod(TypeId.OBJECT, "invoke", TypeId.OBJECT, TypeId.OBJECT); Code code = dexMaker.declare(invokeId, Modifier.PUBLIC); if (isGetter == true) { Local<Object> insertedInstance = code.getParameter(0, TypeId.OBJECT); Local instance = code.newLocal(targetClassTypeId); Local returnValue = code.newLocal(TypeId.get(method.getReturnType())); Local value = code.newLocal(TypeId.OBJECT); code.cast(instance, insertedInstance); MethodId executeId = ... code.invokeVirtual(executeId, returnValue, instance); code.cast(value, returnValue); code.returnValue(value); } else { ... } // constructor Code constructor = dexMaker.declare(declaringType.getConstructor(), Modifier.PUBLIC); Local<?> thisRef = constructor.getThis(declaringType); constructor.invokeDirect(TypeId.OBJECT.getConstructor(), null, thisRef); constructor.returnVoid(); }  Dexmaker를 이용한 방식을 구현하여 동작까지 확인했으나, 다음과 같은 이유로 실제 적용은 하지 못했습니다. Bytecode를 메모리에 저장하는 경우, 프로세스가 종료된 이후 실행 시 Bytecode를 다시 생성해 애플리케이션의 처음 실행성능이 떨어진다.Bytecode를 스토리지에 저장하는 경우, 원본 클래스가 변경됐는지를 매번 검사하거나 업데이트마다 해당 스토리지를 지워야 한다.더 좋은 방법이 생각났다. Annotation Processor 최종적으로 저희가 선택한 방식은 컴파일 시점에 형태변환 코드를 자동으로 생성하는 것입니다. Reflection으로 접근하지 않아 속도도 빠르고, Java코드가 미리 작성돼 관리하기도 편하기 때문입니다. POJO 클래스에 알맞은 Annotation을 달아두고, APT를 이용해 Annotation이 달린 모델 클래스에 대해 형태변환 코드를 자동으로 생성했습니다. 형태 변환이 필요한 클래스에 Annotation(@GenerateAccessor)을 표시합니다. @GenerateAccessor public class Message { private Integer id; private String content; public Integer getId() { return id; } ... }  javac에서 APT 사용 옵션과 Processor를 지정합니다. 그러면 Annotation이 표시된 클래스에 대해 Processor의 작업이 수행됩니다. Processor에서 코드를 생성할 때에는 StringBuilder 등으로 실제 코드를 일일이 작성하는 것이 아니라 Velocity라는 template 라이브러리를 이용합니다. Processor는 아래와 같은 소스코드를 생성합니다. public class Message$$Accessor implements Accessor { public kr.co.vcnc.binding.performance.Message create() { return new kr.co.vcnc.binding.performance.Message(); } public Object get(Object target, String fieldName) throws IllegalArgumentException { kr.co.vcnc.binding.performance.Message source = (kr.co.vcnc.binding.performance.Message) target; switch(fieldName.hashCode()) { case 3355: { return source.getId(); } case -1724546052: { return source.getContent(); } ... default: throw new IllegalArgumentException(...); } } public void set(Object target, String fieldName, Object value) throws IllegalArgumentException { kr.co.vcnc.binding.performance.Message source = (kr.co.vcnc.binding.performance.Message) target; switch(fieldName.hashCode()) { case 3355: { source.setId( (java.lang.Integer) value); return; } case -1724546052: { source.setContent( (java.lang.String) value); return; } ... default: throw new IllegalArgumentException(...); } } }  여기서 저희가 정의한 Accessor는 객체를 만들거나 특정 필드의 값을 가져오거나 세팅하는 인터페이스로, 객체의 형태를 변환할 때 이용됩니다. get,set 메서드는 필드 이름의 hashCode 값을 이용해 해당하는 getter,setter를 호출합니다. hashCode를 이용해 switch-case문을 사용한 이유는 Map을 이용하는 것보다 성능상 이득이 있기 때문입니다. 단순 메모리 접근이 Java에서 제공하는 HashMap과 같은 자료구조 사용보다 훨씬 빠릅니다. APT를 이용해 변환코드를 자동으로 생성하면 여러 장점이 있습니다. Reflection을 사용하지 않고 Method를 직접 수행해서 빠르다.Bytecode 생성과 달리 애플리케이션 처음 실행될 때 코드 생성이 필요 없고 만들어진 코드가 APK에 포함된다.Compile 시점에 코드가 생성돼서 Model 변화가 바로 반영된다. APT를 이용한 Code생성으로 Reflection 속도저하를 해결할 수 있습니다. 이 방식은 애플리케이션 반응성이 중요하고 상대적으로 Reflection 속도저하가 큰 안드로이드 라이브러리에서 최근 많이 사용하고 있습니다. (AndroidAnnotations, ButterKnife, Dagger) 성능 비교 다음은 Reflection, Dexmaker, Code Generating(APT)를 이용해 JSONObject를 Object로 변환하는 작업을 50번 수행한 결과입니다.성능 비교 결과 이처럼 최신 OS 버전일수록 Reflection의 성능저하가 다른 방법에 비해 상대적으로 더 큽니다. 반대로 Dexmaker의 생성 속도는 빨라져 APT 방식과의 성능격차는 점점 작아집니다. 하지만 역시 APT를 통한 Code 생성이 모든 환경에서 가장 좋은 성능을 보입니다. 마치며 서비스 모델을 반복적으로 정의하지 않으면서 변환하는 방법을 알아봤습니다. 그 과정에서 Reflection 의 속도저하, Dexmaker 의 단점도 설명해 드렸고 결국 APT가 좋은 해결책이라고 판단했습니다. 저희는 이 글에서 설명해 드린 방식을 추상화해 Binding이라는 라이브러리를 만들어 사용하고 있습니다. Binding은 POJO를 다양한 JSON, Cursor, ContentValues등 다양한 형태로 변환해주는 라이브러리입니다. 뛰어난 확장성으로 다양한 형태의 데이터로 변경하는 플러그인을 만들어서 사용할 수 있습니다. Message message = Bindings.for(Message.class).bind().from(AndroidSources.cursor(cursor)); Message message = Bindings.for(Message.class).bind().from(JSONSources.jsonString(jsonString)); String jsonString = Bindings.for(Message.class).bind(message).to(JSONTargets.jsonString());  위와 같이 Java상에 존재할 수 있는 다양한 타입의 객체에 대해 일종의 데이터 Binding 기능을 수행합니다. Binding 라이브러리도 기회가 되면 소개해드리겠습니다. 윗글에서 궁금하신 점이 있으시거나 잘못된 부분이 있으면 답글을 달아주시기 바랍니다. 감사합니다. 
조회수 1845

스타트업을 쓰다'만' 쓰다

나의 시각은 매우 좁은 편이다.딱히, 취미나 관심사가 내 일에 한정되어 있다 보니글을 쓸 일이 다 회사에 대한 이야기다.삭막하고 건조하게 들리겠지만,대표라는 이름은깨어있을 때부터잠들 때까지...가능하다면, 꿈꿀 때까지회사 걱정과 미래에 대한 생각으로가득 차 있어야 한다.직장 생활할 때는공감하지 못했던 관리자/경영자의삶은 달고 쓰다.그리고 계속 쓰고 또 쓰여야 하는 역사이며,모든 활동, 심지어 숨 쉬는 것조차회사를 위해 사용되길 원한다.이런 나의 마음과는 달리,직원과 경영진의 입장/관점이 다르기에대화의 평행선을 달리기 일쑤다.조금이나마 그 간격을 좁히는 글이 되길 원하며,타이핑을 써 내려간다.명목상, 외견상, 명분상은 이렇게 글을 시작한다.진짜 목적은 따로 있으니까.1) 쓰다: write about start up나도 대학생이었고,나도 직장인이었다.처음부터 창업자의 길을 걷지는 않았다.한 때는 직장에 애사심과 충성심으로 가득한열정의 직원이었을 때도 있었고,매너리즘에 허우적거리며 방황하던 시절도 있었다.창업에 관심을 가진 것은 대학생 때였다.그때는 친구들이 나의 꿈에 대하여토익점수나 받으라고, 공무원 준비나 하라고매우 일반적인 조언을 해주었다.첫 창업은 사실 대학 2학년 복학하기 전에폐수처리약품과 세제를 직접 제조하면서경험하였다.그때는 솔직히 쉽게 돈을 벌었다.하루하루 노동한 그대로 통장에 현금으로 찍혔다.'돈 버는 거 그렇게 안 어렵네'라는 착각 덕분에지금까지 참 많은 시행착오를 겪게 되었다.다만, 그때 배운 가장 소중한 배움은 "영업"이다.거래처에 찾아가서 애걸복걸하기도 하고,요래 저래 가격을 맞추려 밀고 당기기도 하고,참 많은 사람들을 직접 상대하면서얼굴이 두꺼워졌다는 점이다.우리나라에서 창업은 참 쉽다.대신, 수성하기가 어렵다.매출을 내고, 수익을 내고,사람을 관리하고,제품을 신경 쓰는 게 쉽지 않다.2013년에 창업을 준비할 때,참 많이 깨졌다.아이디어에 대한 혹평과회사라는 조직의 뒷배경 없이세상에 홀로 떨어져 나와서마주하는 현실은막막함을 넘어 두려움이었다.실업급여가 동나버리고,그간 모아 온 통장잔고의 자릿수가 줄어들고,나는 호구라는 사실을깨닫기까지 여러 번의 이용을 당하고,속 쓰린 좌절과 얼굴이 붉어지는 거절의 연속이었다.그전까지 나는 할 수 있다는 근거 없는 희망을붙잡고 밀어붙이고 있었다.사업이라는 것이 준비 없이 들이대기에는짊어져야 할 부담이 너무나 크다는 것을뒤늦게 체감하게 되었다.2014년 12월에 법인을 설립할 때,뭔가 이뤘다는 착각을 하였지만그것 역시 실상은 아무것도 아니었다.바뀐 것은 없었다.오히려 세무신고, 법무비용이 늘어나고,나 혼자 존재하면서나 혼자 대표인아무것도 아닌 그냥 이름 뒤에"대표"란 어색한 단어만 붙었을 뿐.그렇게 1인 기업으로 시작하였고,스타트업이란 이름으로불리는 별 볼 것 없는 창업자가 되었다.법인등기부등본에내 이름 석자가 쓰였고,자본금 100만 원이 쓰였다.사업자등록증을 발부해주는 담당공무원에게잠시 스치듯 기억에서 사라질 회사 이름이 쓰였다.존재는 하되,아무도 몰라주는 회사가 탄생하였다.관심을 가져주지 않는이름만 회사가 시작되었다.2) 쓰다: 달콤한 쓴 맛법인으로써 창업의 시작을 한 지 4개월 만에자본금이 동나버렸다.100만 원 가지고 그동안 버틴 걸 생각하면,징하게 잘 버틴 셈이지만...지금 생각해도참~~ 답이 없었다.창업을 준비할 때부터쓴 맛의 연속이었는데...창업하고 나니 더 쓴 맛이더라.얼마 안 되는 자금인데...그조차도 회사 통장에 0원이 되는 순간,진짜 앞이 깜깜하더라.아무것도 할 수 없을 것 같아서더욱 미래가 불투명했다.그때, 나에게 힘을 준 것은바로 직장 생활할 때, 한 솥밥 먹던동료들이었다.그들이 십시일반으로 모은 돈200만 원!내 허무맹랑한 꿈에 맞장구쳐주고,이제부터는 내 꿈이 아닌 우리의 꿈이라고의기투합했던 동료들이 응원을 해 주었다.뻔히 다 아는 서로의 집안 형편인데...우리 모두 흙수저에, 책임져야 할 가족이 딸린 몸들인데...그러한 환경 속에서도나를 지지해 준 동료들은 나의 두 번째 투자자이다.가장 힘들 때,나의 손을 들어준 소중한 파트너들이다.200만 원은 단지 그 가치가 아니라나에게 어떤 투자자보다 더 큰 가치의의미를 지니고 있다.꺼져가던 열정에 기름을 붓는 돈이며,신뢰라는 가치가 더해진 피 같은 돈이다.절실함이 묻어있는 돈이다.다시금 힘을 쥐어짜서,정부지원자금에 도전하였다.가까스로 서류 경쟁에서 통과하였지만,멘토들에게 혹평을 받았고,사업계획서를 전면적으로 다 수정하게 되었다.3일 밤낮을 거의 새다시피 하며,시장조사, 아이템 수정, 비즈니스 모델 변경,마케팅 계획 수정 등... 모조리 다 바꾸었다.이전 같으면,좌절하고 멍~하니 초점 없이 하늘만 바라봤을 나였지만,그럴 수 없는 이유는믿어주는 사람들이 있었고,그들의 응원이 있었기 때문이다.내가 틀렸다는 것을 인정하고,빠르게 보완하고,재정비하는 것은 자존심 따위의 문제가 아니다.앞으로 나아가기 위한아니,앞으로 나아가야 하는의무감과 책임감이다.그리고하늘은 나의 세 번째 투자자가 되어주었다.치열하고, 높은 벽이었던 정부지원사업에선정되었고, 회사는 다시 살아날 수 있었다.쓰지만 달콤함이 있다.바닥이 있어 딛고 일어날 수 있다.위기 속에서 기회가 있더라.그 맛을 처음 접하게 되면,쓰다고 뱉거나, 쓰다고 투정하지 않게 된다.그 너머에 단 맛을 찾아쓴 맛을 삼키게 된다.3) 쓰다: 스타트업의 사용법그렇게 기사회생한 우리 회사는기회를 최대한 살리기 위해교육과 네트워킹, 생산 인프라, 업계 전문가,멘토링, 고객 설문/인터뷰 등가능한 모든 시간을 투입하였다.하나둘씩 동료들이 합류하고,목표한 작은 성과들이 하나씩 달성되었다.사람들이 관심을 가지기 시작했고,도움을 주는 분들이 늘어났다.이전에는 만나주지 않았던 업체가적어도 만나는 주는 장족의 발전을 가져왔다.여전히 열에 일고여덟은실패하고, 거절당하고, 좌절한다.하지만 둘셋은 공감해주고,응원해주고, 지지해준다.여전히 궁핍하지만,적게나마 매출이 생기고,적절한 시기에 시드 투자도 받았다.여전히 미흡한 제품이지만작은 전시회에 참가해서 고객의 반응을 직접 체험하고,보다 뚜렷해진 길이 나타났다.여전히 가진 것이 많이 없지만,아무것도 없던 회사에 장비가 늘어나고,통장에 그래도 몇 달은 더 버틸 수 있는 숫자가 찍히고,바다 건너 해외에서 불러주는 사람들이 생겼다.여전히 일이 많지만,혼자가 아니라 시끌벅쩍하게난상 토론하는 동료들이 북적거린다.함께 고민하고, 함께 골머리 싸매는 사람들이 있다.그렇게 창업 한지 2년 8개월 차가 되었다.살아남아있다.희망을 담은 미래를 꿈꾸는 수준이 아니라어렴풋이나마 그려볼 수 있는 중심이 생겼다.여러 가지 지표와 숫자들이우리의 비전과 목표에 근거로 사용된다.우리의 과정과 결과물들이우리 회사의 뒷배경으로 사용된다.우리의 시간과 땀들이우리가 만드는 회사의 밑거름으로 사용된다.경험치의 누적!무언가를 실패했을 때, 거기서 끝나는 것이 아니라지는 법에 대한 하나의 경험치를 얻는다.무언가를 성공했을 때, 거기서 만족하는 것이 아니라이기는 방법에 대한 다른 방법을 고민하게 된다.스타트업은 선천적으로 약하다.하지만 점점 얻는 것들이 누적되고,깨닫는 것이 늘어나면서 빠르게 성장한다.첫 술에 배부르랴라는 말처럼스타트업이 부족한 것을채우는 방법을 터득하기란쉬운 일이 아니다.그러나부족함 가운데 만족함을 얻는 방법을 알아내기도 하고,부족함을 인정하는 방법을 체득하기도 한다.부족함을 서서히 메꾸는 방법을 깨닫기도 한다.그렇게 발전하고 성장해 간다.제품도, 회사도, 직원도, 대표도어제와 또 다른 오늘을 마주하게 된다.스타트업이라는 회사는그렇게 사용되고 있다.4) 쓰다'만' 쓰다: ing형 삽질그렇다고 늘 낙관적인 미래를 바라보는 건 아니다.적어도 경영진은 최악의 상황도 늘 고민하고 있다.중국 쪽에 지인들이 있어 첫 수출 타깃시장으로 준비할 때,갑작스레 터진 "사드 배치 이슈"급랭한 한국과 중국 간의 외교 간극은 좀처럼 좁아질 줄 모르고,중국을 바라보던 회사들에게는 지금도 현재 진행형의 난관이다.웃으며 덕담 건네던 협력사에서실제로 협업하면서 얼굴 붉히고, 책임소재 따질 일이 발생하면,여간 골치 아픈 일이 아닐 수 없다.예상치 못 했던 큰돈이 지출되는 상황이 빈번해지고,선뜻 결정 내리기 어려운 선택의 기로는 매일 우리를 기다린다.아무리 노력한다고 한들,손해를 볼 수밖에 없는 상황도 부지기수다.동료들과 읏샤읏샤 한 마음으로 업무에 집중할 때도 있지만,사소한 오해나 작은 실수로 마음 상하게 하는 상황도늘 우리를 긴장시킨다.처음 창업했을 때나,지금이나,밤에 잠을 못 이루고샛별 보기 운동하며뱃살이 늘어가는 것은 변함이 없다.함께 많은 시간을 나누고 싶은 아들내미들과육아전쟁으로 매일 고생하고 있는 아내를뒤로하고 일에 파묻혀 있는 것도 바뀐 것이 없다.모든 것이 현재 진행형이다.지금 그러한 현재 진행형을 쓰고 있다.내게 주어진 상황 그대로만을 쓰고 있다.사업계획서는 쓰고 지웠다가 다시 쓰고 있다.수정하고 보완할 사항들이 늘 새로이 생겨난다.계약서도 쓰고, 다시 쓰고, 다시 쓰고 있다.제품을 써보고, 또 써보고, 또 써가며확인하고 기록하고 있다.쓰다'만' 쓰다.여기에 덧붙여서사실 이 글을 쓰는 진짜 숨겨진 본질은다음과 같다.나는 쓰다'만' 휴가를 쓸 것이다.4년째 없었던 휴가!올해는 어떻게 해서든 2일 정도는모든 것을 동료들에게 맡기고가족과 휴가를 보낼 것이다.대표가 무슨 휴가냐고?이제 나태해졌냐고?아니다.지금까지 쉼 없이 달릴 수 있었던 것도,지금까지 수많은 위기들을 극복할 수 있었던 것도,사실은 가장 원초적인 힘이 있었기 때문이다.바로 나의 첫 번째 투자자인사랑하는 가족 덕분이다.가족의 희생과 응원,지지와 신뢰가현재의 내가 일에 미칠 수 있는진짜배기 영업비밀이고 나의 경쟁력이다.가족이 더 좋아하는 회사가우리 회사의 사훈이다.내 가족이 행복하지 않다면,내가 누구를 행복하게 할 수 있을 것인가?내가 어떻게 고객을 행복하게 할 수 있는가?나의 첫 투자자이자,우리 회사의 처음부터 지금까지한결같이 응원해주는가족들에게 이 글을 통해감사함과 사랑을 전한다.늘죄인 된 마음으로,빚진 마음으로가족에게 부끄럽지 않도록꼭 사업을 성공하고야 말겠다.가족이 더 좋아하는 회사를 반드시 만들겠다.추신:이 글을 써놓고저는 휴가 계획 짤 겁니다.우리 동료들과 투자자분들은잠시 저를 잊어주세요.저 휴가 가려고...미리 밑밥 까는 글입니다.저 없다고 회사가 더 잘 돌아가면,매우 감사할 겁니다~~!#클린그린 #스타트업 #스타트업창업 #창업자 #창업가 #고민 #성장 #인사이트 #조언
조회수 1167

내가 생각하는 2020년의 소비자기술

4년동안 인터넷에 모든 것을 바치면서 많은 것을 배워왔다.4년 전에는 상상도 못했던 챗봇, 비트코인, 인공지능, VR 등이 학문의 수준을 넘어 실제 상용화되려는 조짐이 보이는 것 같기도 하다. 많은 스타트업과 기업들이 이 새로운 변화에 대응하기 위해 선행투자를 이어가고 있는데, 나는 개인적으로 이러한 변화가 실제 소비될 수 있는 기술이 되기 까지는 일정 부분의 시간이 필요하다고 생각한다.2020년에 우리가 어떤 세상을 맞을 것이냐에 대해서 누군가 묻는다면, 나는 지금과는 완전히 차원이 다른 영역의 세상이 도래할 것이라 생각하진 않는다. 기술혁신은 매우 진보적으로 빠르게 이뤄지는데 반해 실제 소비자에게 적용되는 영역은 매우 보수적이고 느리게 적용되기 때문이다.실제로, 인간의 생활을 극단적으로 바꾼 퍼스널 컴퓨터(PC)나 모바일 컴퓨팅(스마트폰)은 우리가 예측 가능한 수준에서 매우 느리게 이뤄져왔다. PC를 상용화 시킨 것은 우리가 늘 쓰던 장부를 디지털화한 Visicalc(액셀의 원형)의 역할이 가장 컸다고 생각하고, 스마트폰은 우리가 늘 쓰던 '인터넷 브라우저'를 모바일에서 사용할 수 있다는 단순한 가치가 가장 컸다고 생각한다. 2010년 이후, 급속도로 수많은 모바일 기반의 소프트웨어와 서비스들이 등장했지만, 2017년 지금도 오프라인에서 우리가 하던 일에 이동성(Mobility)을 부여하는 서비스들이 아직도 등장하고 있다. 7년이다. 모바일 컴퓨팅이 완전히 자리잡기 까지 걸린 기간이 6-7년이라고 본다면, 3년뒤 미래가 극단적으로 바뀔 것이라는 미래학자들과 일부 진보적인 기술자들의 예언은 실현 불가능할 가능성이 크다.모바일 컴퓨팅 환경은 어느정도 자리를 잡았기 때문에 이제 사람들은 스마트폰에 다운로드할 소프트웨어를 적극적으로 찾지도, 저장하지도 않는다. 애플, 구글 모두 스마트폰 어플리케이션에 대한 고객의 채택(Adoption)은 극단적으로 떨어지고 있다.퍼스널컴퓨터(PC)가 만들어진 이후, 수많은 소프트웨어들이 탄생했지만, 결국 PC를 가장 많이 점유한 소프트웨어는 업무용 소프트웨어(오피스), 무료 메신저, 게임이다. 이게 기존 PC가 제공할 수 있는 가장 높은 가치였다고 본다. 이후 만들어진 소프트웨어들은 사용자들에게 과잉된 가치를 제공했기 때문에 큰 인기를 끌지 못하였다 보고, 그 이후 나온 것이 모바일 컴퓨팅 환경의 스마트폰이다.스마트폰 또한 수많은 소프트웨어들이 탄생했지만 결국 모바일을 가장 많이 점유한 소프트웨어는 메모, 무료메신저, 소셜네트워크, 카메라, 게임, 생활밀착형 O2O 서비스다. 그리고 여기서 더이상의 혁신이 일어나기는 힘들어 보인다.  '혁신의 딜레마'에도 나오듯, 지금부터 탄생하는 데스크톱 소프트웨어, 모바일 기반 소프트웨어들은 사람들에게 과잉된 가치를 제공해주고 있다. 이럴 때, 기술혁신과 시장혁신이 가능해지는 타이밍이라고 하는데, 극적으로 동의한다.그렇다면 이 혁신은 인공지능, VR 등 새로운 기술에서 탄생할까? 내 생각에는 기술혁신을 주도하는 것은 결국 하드웨어에 있다고 본다. 아무리 스타트업이 날고 긴다고 하여도 애플과 마이크로소프트가 만들어내는 기술적 흐름에 반하지 못했다. 지금의 세계적인 서비스들 대부분이 애플과 마이크로소프트가 만들어놓은 거대한 세상안에 구축한 작은 일부에 볼과하다. 이러한 이유로 나는 3년 뒤 기술의 미래를 보려면 애플과 마이크로소프트의 하드웨어 생산 계획을 살펴보는 것이 중요하다고 생각한다. 애플과 마이크로소프트가 동시에 밀고 있고, 미래 컴퓨팅 환경을 선도하겠다며 경쟁적으로 생산하고 있는 제품군이 무엇일까?이러한 부분에 대해 특히 우리 IT직군의 사람들이 생각하지 않는 이유는 그들이 제시하는 미래 컴퓨팅이라는 것이 나름 따분하기 때문이다. 우리는 인공지능이나 VR, 챗봇과 같은 뭔가 혁신적인 미래를 토대로 우리가 비즈니스를 만들어 나가길 바란다. 그러나, 그들이 보고 있고 계속해서 제시하고 있는 미래는 간단하다.바로 '터치형 디바이스'다. 터치형 패널의 가격이 급속도로 떨어지면서 애플과 마이크로소프트 모두 터치가 가능한 컴퓨팅 환경에 많은 돈을 쏟아붓고 있다. 애플은 아이패드 프로를 필두로 새로운 컴퓨팅 환경을 열려고 하고 있는데, 마이크로소프트는 이에 더 나아가 데스크톱 OS 환경을 터치로 이용할 수 있는 '서피스'시리즈로 시장을 점유하려 하고 있다. ASUS와 같은 선도적인 업체들 또한 마이크로소프트 OS 기반의 터치가 가능한 노트북을 출시하고 있으며, 마이크로소프트는 27인치 대형 터치 디바이스인 '서피스 스튜디오'를 출시하기도 했다.사실, 스마트폰이 터치가 된다고 하여 드라마틱하게 변화가 이뤄지지는 않았다. 스마트폰이 가진 화면크기의 제약 때문에 유저인터페이스 자체에 큰 제약이 있었기 때문이다. 그러나, 태블릿 크기 이상의 디바이스에서 터치가 가능해질 경우 양상이 완전히 달라진다.이 곳에 큰 기회가 있는 이유는 아직 12인치 이상 대형 디바이스에서 터치가 가능할 때, 최적화된 소프트웨어들이 많이 있지 않기 때문이다. 앞서 말했듯, 스마트폰 사용자의 신규앱에 대한 Adoption은 매우 낮지만 아이패드 사용자의 신규앱 Adoption은 높다. 아직 개척되지 않은 컴퓨팅 환경에 대한 시장이 존재하는 셈이다.나는 인공지능이나 VR과 같은 영역은 아직 학문적인 수준, 기업의 미래를 위한 선행투자 정도의 수준에서 수 년의 시간이 더 필요할 것으로 생각하고 있다. 기업에서 인공지능이나 VR과 같은 화두를 계속해서 던지고 스타트업들을 끌어들이고, 데이터를 끌어들이는 이유는 이 기간을 단축하기 위함이라고 본다. 결국, 아직은 소비자 레벨에서는 활용될 수 없는 영역이다.앞서 내가 말한대로 PC를 가장 많이 점유한 소프트웨어는 업무용 소프트웨어(오피스), 무료 메신저, 게임이었다. 그럼, PC에 터치형 패널이 들어가면 양상이 어떻게 바뀔까? 이메일을 보내는데 풀 터치 디바이스가 무슨 소용이란 말인가? 메신저 사용하는데 서피스 스튜디오와 같은 27인치 대형 터치디스플레이가 무슨 소용이 있을까? 리그오브레전드와 같은 게임에서 터치가 된다고 달라질 게 있을까?MS와 애플은 컴퓨팅 기술에 미묘한 변화를 불어넣었고, 그것이 터치형 UI/UX다. 아직 터치형 디바이스가 우리 삶을 압도하지 못하고 있는 이유는 PC 초기의 Visicalc 나 스마트폰 초기의 모바일 웹 브라우저와 같은 킬러 소프트웨어가 존재하지 않기 때문이다. 우리가 간과하고 있는 미묘한 컴퓨팅 환경의 변화에 생각보다 큰 혁신 기회가 있을 것이라 생각한다.뭔가 사업계획을 말할 때도 인공지능이나 머신러닝, 데이터마이닝, VR, 블록체인 등을 언급하면 매우 혁신적이고 선도적인 미래를 선도한다고 생각하는 데 반해, 이런 터치형 디바이스가 새로운 컴퓨팅의 미래라고 규정하는 것은 다소 따분하게 생각하는 경우가 많다. 그러나 소비자 기술은 이제까지의 역사를 봤을 때 매우 보수적으로 변화했기 때문에 앞으로 그 기조가 극적으로 바뀔 것이라 보지는 않는다. 우리가 기술업계에 있기 때문에 미묘한 변화를 매우 둔감하게 받아들이는 경향이 있는데, 때로는 아주 작은 것이 세상에 큰 영향을 미치기도 한다. 우리는 이런 미묘한 변화에 예민한 촉을 갖고 접근해야 한다. '마우스'라는 작은 디바이스가 우리의 세상을 어떻게 바꾸었는 지를 보면 알 수 있다. 컴퓨터 전면에 달린 카메라 하나가 우리의 업무환경을 어떻게 바꿨는지, 스마트폰 후면에 달린 카메라 하나가 세상을 어떻게 바꿨는 지 말이다. 모두가 앨런머스크고 손정의일 필요는 없겠다. 
조회수 3323

KBS 신입사원 입사후기 - [장아련] 한 시절의 미완성이 나를 완성시킨다(방송경영(경영기획) 편)

딸과 많은 시간을 보내지 못한 아버지가, 암으로 딸을 먼저 보낸 후 쓴 책 <딸에게 보내는 굿나잇 키스>. 그 한 구절을 인용하자면 다음과 같습니다. “딱 한 번이라도 좋다. 낡은 비디오 테이프를 되감듯이 그때의 옛날로 돌아가자. 나는 펜을 내려놓고, 읽다 만 책장을 덮고, 두 팔을 활짝 편다. 너는 달려와 내 가슴에 안긴다. 내 키만큼 천장에 다다를 만큼 널 높이 들어 올리고 졸음이 온 너의 눈, 상기된 너의 뺨에 굿나잇 키스를 하는 거다.” ‘후회’라는 한 단어로는 미처 담지 못할, 딸을 잃어버린 아버지의 진심을 전하는 말입니다. 감히 딸을 잃은 아버지의 마음에 빗댈 수는 없겠으나, 이와 같은 후회가 남지 않도록 끊임없이 마음에 되새겼던 이 말 덕택에, 저 역시 이번 길을 완주할 수 있었습니다. 완주 후 숨을 고르고 있는 지금, 정보 부족, 적은 인원, 높은 경쟁률, 자격증, 스펙 등 많은 언덕들과 싸우기 위해 준비하고 계신, 혹은 이런 언덕들로 인해 지쳐있을 누군가를 위해 조금이나마 도움이 될만한 문장들을 적어보고자 합니다. 1% 차별성을 만들자. 방송사를 준비하시는 분들의 경우 엄두도 못 낼 높은 스펙과 역량을 갖고 계신 경우가 대부분입니다. 그 가운데서 저는 휴학 없이 달려온 대학교 4년, 경영 또는 언론과 관련 없는 학과, 방송 경험 부재의 상태에서 3개월이라는 상당히 짧은 기간 동안에 KBS를 준비해야 했습니다. 그래서 자신만의 차별성으로, 자신만의 존재감을 드러내기 위해 저는 오히려 방송사 입사의 정석이라고 알려진 길만을 가지 않도록 노력했습니다. 모두들 방송과 관련된 경험들로 자기소개서를 채워나갈 때, 방송과는 전혀 상관 없는 밴드나 법 동아리, 지리, 교생 실습 이야기 등으로 자기소개서를 작성하며 오롯이 저의 이야기를 전달하는데 집중했습니다. ‘형식이 너무 과감하다’, ‘소재가 위험하다’는 주변 사람들의 만류에도 제 방향에 확신이 있다면 이를 포기하지 않았습니다. 소위 KBS에 들어오기 위한 ‘높은 정량’에 속하지 않음에도 서류 전형을 통과할 수 있었던 건, 바로 이런 시도들에 있지 않았나 예상합니다. 우리나라의 법에서 모든 죄를 열거하기 보다 특정 죄목을 법관의 재량으로 해석할 수 있도록 허용하는 이유는, 지나치게 원칙을 지키다 보면 오히려 허점이 드러나 선량한 피해자가 발생할 수 있기 때문입니다. 선배님들의 훌륭한 입사 사례도 분명 도움이 되겠지만, 이를 바탕으로 본인에게 가장 적합한 방법을 찾고, 그 속에서 본인의 차별성을 드러낼 수 있는 방향을 잡는 것이 필요합니다. 정답이 없는 경쟁. 필기 과정을 보며 들었던 첫 번째 생각입니다. 어마한 경쟁률을 뚫어야 한다는 것도 무서웠지만, 도대체 ‘상식’과 ‘논술’이라는 이 모호한 과제를 어떻게 준비해야 할 지가 더 난감했습니다. 부족한 시간 속에서도 이를 극복할 수 있는 방법이 필요했습니다. -상식 공략 방안은, 자신만의 정리 본을 만드는 것입니다. 사실 상식 시험은 스터디에서 각 분야의 지식들을 취합하는 경우가 대부분이었습니다. 분명 효율적이겠지만, 성향이 다른 개인들이 모여 취합하다 보니 나타나는 단점도 있었습니다. 그래서 저는 서점에 가서 상식에 대한 여러 책들을 비교한 뒤, 넓은 범위를 심도 있게 다루는 책 한 권을 선정했습니다. 그리고 책에 나오는 용어들을 스스로 정리하여 한 권을 마스터하는데 중점을 두었습니다. 여기에 최근 이슈들은 여러 언론사들의 기사를 취합하여 보충했습니다. 실제로 제가 상식을 많이 맞은 편이 아니라서 확언하지는 못하겠으나, 그래도 약술(5문제)과 객관식(35문제)이 혼합된 상식 시험에서 평균 점수라도 받을 수 있었던 건, 해당 방법 덕택이라 생각합니다. -논술 공략 방안은 자신만의 논리 구조들을 끊임없이 재생산해내는 것입니다. 논술에서 어떤 주제가 나올 지는 정말 미지수이기에, 어떠한 주제가 나오더라도 근거로 사용할 수 있는 소스들을 최대한 많이 보유하는 것이 중요합니다. 가령 로이터, AP에서 시행하고 있는 ‘팩트 체크 전담팀’ 소스를 ‘신뢰도 회복’이라는 주제에 맞춰 구조화했다면, 이는 ‘가짜 뉴스에 대한 대응 방향’라는 주제에도 하나의 근거로 활용될 수 있고, 나아가 팩트체크 전담팀-> 신뢰도 및 저널리즘의 회복-> 2030세대의 유입의 논리 구조로도 이어질 수 있습니다. 이렇게 최대한 많은 소스들을 접하고자 노력하고, 해당 소스들을 여러 개의 논리 구조로 만들어보고자 노력했습니다. 또한 항상 글을 쓸 때 ‘포용, 인내, 주관, 긍정’의 뉘앙스가 많이 풍기던 글을 보다 명백히 전달할 수 있도록 논술을 작성하는 내내 ‘객관, 비판, 비난’의 눈을 되새긴 것이 큰 도움이 되었습니다. 상황을 주도하는 작가가 되자. 면접 상황에서 주도권을 잡는 방안을 고민하시면 좋겠습니다. 사실 면접관님들이 저희에게 어떤 질문을 던질 지는 알 수 없습니다. 아마도 그 날의 상황, 이전 면접자의 대답, 혹은 면접관님들의 가치관 등등에 따라 영향을 받을 겁니다. 이 모든 걸 대비하여 예상 질문을 만들고, 예상 답변을 만들어 암기하는 것은 비효율적이라 생각합니다. 대신 간략한 답변 속에서도 면접관님들이 궁금해 할 만한 trigger들을 본인의 답변 안에서 만드는 연습을 계속 하시는 것이 더 중요합니다. 면접 시뮬레이션도 중요하지만, 한 질문에 대해 trigger들을 심어놓고, 그 trigger들로 면접관님들을 유인하여 본인이 준비한 답변을 말할 수 있도록 해야 합니다. 그저 준비한 질문들이 나오기만을 바라기보다는, 본인이 면접 상황을 구성해나가는 작가라 생각하고, 본인이 원하는 방향으로 면접을 이끌고 가야 할 것 같습니다. 나아가 자신에 대한 성찰도 필요합니다. 꼬리에 꼬리를 무는 질문들을 끊임없이 던져야 합니다. ‘왜 여타의 언론 기관이 아닌 방송국을 택했는지’, ‘방송국 중에서는 왜 하필 KBS인지’, ‘KBS라는 방송국 내에서 PD, 기자 직군이 아닌 경영을 택한 이유는 무엇인지’ 질문했습니다. 보기에 그럴 듯한 답변이 아닌, 스스로가 인정할 수 있고, 스스로를 합리화시킬 수 있으며, 스스로가 당당한 답변을 준비하기 위해 노력했습니다. 그리고 그런 진심이 분명 최종 면접에 통했다고 확신합니다.  하고 싶은 일을 평생의 업으로 할 수 있다는 축복을 받은 제가, 아직은 그 준비과정에 있는 분들께 조언의 말씀을 드리는 것 자체가 어불성설이라는 점을 잘 압니다. 그러기에 제가 전해드리는 이 작은 글들이 완주의 유일한 길이 아니라는 것만은 꼭 알려드리고 싶었습니다. 그러나 꼭 얘기하고 싶은 한 마디는, 본인과 본인의 인생이 특별함 그 자체를 증명하고 있다는 사실입니다. 확률이 지나치게 낮은 이 시험에 도전하다 보면, 완벽하게 준비하기 위해 시험에 나를 맞추고, 부족한 나의 모습을 비난하고, 완벽하게 준비하지 못한 자신을 탓하기도 합니다. 허나 완벽하지 않고 조금 서툰, 미완성의 답변과 인생이 오히려 더 매력적으로 다가오는 순간이 있을 겁니다.  ‘나는 오래 멈춰있었다. 한 시절의 미완성이 나를 완성시킨다.’는 이훤 시인의 시처럼, 지금의 미완성을 너무 탓하지 말고 훗날을 기약하시길 바랍니다. 아주 부족한 제가 길을 완주한 만큼, 글을 읽고 계시는 여러분 모두들도 분명 무궁한 가능성이 존재할 거라 생각합니다. 동일한 축복을 함께 누릴 수 있는 날이 오기를, 동료가 되어 함께 발맞추어 투닥 거릴 수 있는 날이 오기를, 진심을 담아 기대하고 고대하겠습니다.#한국방송공사 #KBS #KBS공채 #KBS신입채용 #KBS채용 #입사후기

기업문화 엿볼 때, 더팀스

로그인

/