스토리 홈

인터뷰

피드

뉴스

조회수 17261

Nodejs 기반의 개발 환경 클린하게 재 구성하기

다양한 언어 기반으로 개발 환경을 구축하여 만들다보면, 소프트웨어 버전관리 해야할 일이 흔히 생기곤 한다. 특히, 종종 대격변이 있는 버전의 판올림으로인해 충돌이 나거나 심볼릭 링크가 유실되는 경우들이 간혹 있는데 이번에도 그런 케이스였다.최근 node.js 기반으로 다양한 프로젝트 (vue.js, react.js등)를 진행하다가 이것저것 환경을 만지고 고치다보니 결국 node.js 를 완전히 클린하게 삭제해야 할 일이 생겼다.아마 이 환경에 결정타를 먹인 것이 OSX 환경에서 El Capitan에서 작업하던 Node.js를 그대로 high sierra로 OSX를 판올림 하면서 퍼미션 권한의 문제가 생긴건지, 노드 패키지 관리나 npm이 정상적으로 동작하지 않으면서 개발환경을 재 설정 할 수 밖에 없게 되었는데, 그 과정에 기름을 부어버리듯 당시에 brew로 설치한 노드가 brew로 삭제가 되지 않는 문제가 발생해버렸다.결국 환경을 처음부터 재 설치 해야하는 과정을 겪어야했는데 기존에 설치된 다양한 패키지 모듈의 찌꺼기들이 남아서 한방에 클린 설치를 할 수 있는 방법이 없을까 싶어 구글링을 해본 결과 앞서서 수많은 시행착오를 겪은 선배님들의 아주 좋은 작업 방식이 있어서 아래에 방법을 공유해본다.요세미티에서 nodejs 정리하는 법 [1]Uninstall nodejs from OSX Yosemite# 첫번째:lsbom -f -l -s -pf /var/db/receipts/org.nodejs.pkg.bom | while read f; do  sudo rm /usr/local/${f}; donesudo rm -rf /usr/local/lib/node /usr/local/lib/node_modules /var/db/receipts/org.nodejs.*# 완전히 nodejs + npm 을 날려버리는 방법 :# /usr/local/lib 경로로 가서 node 와 관련된 노드 모듈을 전부 삭제cd /usr/local/libsudo rm -rf node*# /usr/local/include 경로로 가서 node 와 관련된 노드 모듈 전부 삭제cd /usr/local/includesudo rm -rf node*# 만약 brew 로 인스톨을 했다면 아래와 같은 방법으로 삭제도 가능함. (저는 아래는 brew자체가 망가졌었는지 판올림으로 인한 권한 문제인지 brew로는 삭제 불가능했음.)brew uninstall node# home 디렉토리나 local, lib, include등의 폴더와 관련된 모든 파일은 아래의 경로에 있으니 찾아 들어가서 삭제cd /usr/local/binsudo rm -rf /usr/local/bin/npmsudo rm -rf /usr/local/bin/nodels -las# 아마 혹시 모르니까 클린하게 아래의 명령어도 한번 돌려주자sudo rm -rf /usr/local/share/man/man1/node.1sudo rm -rf /usr/local/lib/dtrace/node.dsudo rm -rf ~/.npmhomebrew를 사용하는 유저들 중에 npm이 제대로 동작하지 않으면 아래와 같은 방법으로도 처방이 가능하다. [2]rm -rf /usr/local/lib/node_modulesbrew uninstall nodebrew install node --without-npmecho prefix=~/.npm-packages >> ~/.npmrccurl -L https://www.npmjs.com/install.sh | sh클린하게 설치를 끝나고 react-native를 컴파일하는 과정에서 깃에 관련된 오류가 발생한다면 아래의 방법을 사용해보자. [3]오류메세지 :xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun솔루션 :xcode-select --install엘케피탄에서 하이시에라로 osx를 업데이트 하면서 homebrew의 링크가 깨졌다면 아래의 방법으로 다시 붙여준다. [4]sudo chown -R "$USER":admin /usr/localsudo chown -R "$USER":admin /Library/Caches/Homebrewbrew link libpng참고 출처 :[1] : https://gist.github.com/TonyMtz/d75101d9bdf764c890ef[2] : https://stackoverflow.com/questions/32893412/command-line-tools-not-working-os-x-el-capitan-macos-sierra-macos-high-sierra[3] : https://stackoverflow.com/questions/39778607/error-running-react-native-app-from-terminal-ios[4] : https://github.com/mikepurvis/ros-install-osx/issues/28 #더팀스 #THETEAMS #풀스택개발자 #Node.js #백엔드 #인사이트 #꿀팁
조회수 656

HHI 사람들 - “내겐 너무나 특별한 사보”

- 최지순 기장, 30년간 모아 “사보는 제 회사생활의 추억이자,안부를 전하는 편지였습니다” 현대중공업 최지순 기장에게는 특별한 보물이 있습니다. 그건 바로, 집 한 편에 회사의 역사와 자신의 추억이 오롯이 담긴 ‘사보’입니다.30살도 더된 사보부터 지난달에 나온 따끈따끈한 신간까지 총 350여권에 달하는 사보가 연도순으로 정리돼 있더라고요.  그가 사보와 첫 인연을 맺은 건 1988년 무렵입니다.초등학교 시절 은사(恩師)님이 강원도 정선의 한 분교에서 근무하신다는 소식을 접했는데요.같은 강원도(강릉) 출신인 최 기장은 동향의 산골 학생들에게 너른 바다와 웅장한 선박 건조현장을 소개하고 싶어 매월 사보를 1~2권씩 보내기 시작했대요. 그는 “회사 소식과 교훈적인 이야기, 생활 정보들로 가득해, 당시 10여명의 학생들이 사보를 닳도록 읽는다는 말에 매우 뿌듯했다”고 말했습니다. 최 기장은 고향 친구들을 만나는 날이면 그들에게 한 권씩 사보를 선물했어요. 그렇게 함으로써 울산에서의 건강하고 자랑스러운 삶을 친구들에게 알려줬어요.△최지순 기장은 2015년 4월호에 '한마음회관 아코디언 동호회' 기사에 자신의 사진이 실린 일이 가장 기억에 남는다고 말했습니다.  올해 정년퇴직이라는 최지순 기장. 그의 근속연수는 32년에 달하는데요.앞으로도 사보가 현장 곳곳의 생동감 넘치고 가슴 따뜻한 이야기들을 계속 전해주기를 바란다고 당부하며, 저희와 작별인사를 나눴답니다. 넵~! 44년 전통의 ‘현대중공업 사보’와 함께, 저희 블로그도 더더욱 분발할게요.#현대중공업 #조직문화 #기업문화 #사보 #공채정보 #직무정보 #구성원인터뷰
조회수 1997

CSS animation으로 프로토타이핑하기

들어가며Framer, Flinto, Origami, Invision. 많은 프로토타이핑 도구가 존재합니다. 디자인에 활력을 불어넣고 개발팀과의 커뮤니케이션을 위해 필수라고 하는 프로토타이핑. 어떻게 하기는 해야겠는 데 어려운 도구나 코드르 공부하기엔 시간이 없고, 막상 열심히 공부하면 새로운 버전이 나오고, 더 좋은 도구가 나오고. 이런 경험을 많이 하셨을 겁니다. 프로토타이핑 도구로 멋지고 완결된 시나리오를 가진 결과물을 만들 수도 있습니다. 하지만 우리에게 당장 필요한 것은 지금 당장 떠오르는 아이디어를 보여줄 수 있는 아이콘의 간단한 모션, 쓱 움직이는 화면 전환 같은 것이 아닐까요? 오늘 배워서 바로 쓸 수 있는 CSS animation으로 하는 간단한 프로토타이핑 방법을 소개합니다.https://codepen.io/yunkimoon/embed/preview/BZEYgY?default-tabs=css,result&embed-version=2&height=600&host=https://codepen.io&referrer=https://blog.stibee.com/media/c7c8adfdea76b3b98829ecce41fee7d7?postId=e5bb1630afb5&slug-hash=BZEYgY<iframe data-width="800" data-height="600" width="700" height="525" data-src="/media/c7c8adfdea76b3b98829ecce41fee7d7?postId=e5bb1630afb5" data-media-id="c7c8adfdea76b3b98829ecce41fee7d7" data-thumbnail="https://i.embed.ly/1/image?url=https://s3-us-west-2.amazonaws.com/i.cdpn.io/1370087.BZEYgY.small.f06b1cb1-09d2-4285-b8b5-eb8f5b9cea7a.png&key=a19fcc184b9711e1b4764040d3dc5c07" class="progressiveMedia-iframe js-progressiveMedia-iframe" allowfullscreen="" frameborder="0" src="https://blog.stibee.com/media/c7c8adfdea76b3b98829ecce41fee7d7?postId=e5bb1630afb5" style="display: block; position: absolute; margin: auto; max-width: 100%; box-sizing: border-box; transform: translateZ(0px); top: 0px; left: 0px; width: 700px; height: 525px;">어디서, playground코딩을 공부하려면 텍스트 에디터도 설치해야 하고, 각종 패키지도 설치해야 합니다. 또한, 결과물이 담길 파일도 생성해야 하고, 여러 파일이 연결되니까 폴더 구조도 고민해야 하죠. 이런 고민을 하다 보면 시작조차 하기 싫어집니다. 그래서 브라우저에서 바로 작성하고 확인하고 공유할 수 있는 온라인 코딩 플레이 그라운드가 있습니다. 대표적으로 jsbin과 codepen이 있습니다. 그냥 해당 서비스에서 가서 각 섹션(html 또는 css)에 맞게 코드를 입력하기만 하면 됩니다. 우리는 html과 css섹션만 사용할 예정입니다. js와 같은 다른 섹션은 최소화(minimize)해주세요.codepen.io어떻게 시작할까html에 내용을 담고, css에 디자인(스타일)을 담을 겁니다. 당장 직접 작성하기는 어려우니 예제(https://codepen.io/yunkimoon/pen/BZEYgY)의 html과 css코드를 그대로 복사합니다. 코드의 주석(회색글씨)을 확인해 봅니다. 요약하면 아래와 같습니다.가장 바깥의 파란 배경 상자이미지와 그걸 담고 있는 상자파란 배경 상자에 hover(마우스 오버 이벤트)를 하면,left 포지션을 2%에서 80%로 변경여기서 중요한 건 .box상자에 설정된 transition이라는 속성입니다. transition은 딱딱한 움직임을 부드럽게 해줍니다. 여기서는 position left를 2%에서 80%로 부드럽게 바꿔주었습니다. 위치뿐만 아니라 색상(color, background), 크기(width, height)도 자연스럽게 바꿔주는 속성입니다. “all 3s”라는 값을 가지고 있는데 “모든 변경사항에 대해 3초 동안 움직여라”라는 의미입니다.꼭 알아야할 3가지css 애니메이션의 맛을 잠깐 보았습니다. transition을 통해 부드러운 움직임을 줄 수 있습니다. 하지만 더 복잡하고 멋진 움직임을 위해서는 많은 속성들을 이해하고 응용할 수 있어야 합니다. 하지만 모든 속성을 다 알아볼 수는 없으므로 가장 중요한 3가지를 알아보도록 하겠습니다. 미리 살펴본 transition과 transform, keyframe(s) 입니다.1. transition위에서 살펴본 것처럼 대상의 위치, 크기, 색상 등에 부드러운 움직임을 줍니다.2. transform대상의 위치, 크기, 방향 등을 상대적으로 변경합니다. 예제를 통해 알아보겠습니다.<iframe data-width="800" data-height="600" width="700" height="525" data-src="/media/43617ca3eab01b6f86f50b25a362c5a1?postId=e5bb1630afb5" data-media-id="43617ca3eab01b6f86f50b25a362c5a1" data-thumbnail="https://i.embed.ly/1/image?url=https://s3-us-west-2.amazonaws.com/i.cdpn.io/1370087.BZErpP.small.5ebe332d-41b1-4a16-8253-6e2df7b347d0.png&key=a19fcc184b9711e1b4764040d3dc5c07" class="progressiveMedia-iframe js-progressiveMedia-iframe" allowfullscreen="" frameborder="0" src="https://blog.stibee.com/media/43617ca3eab01b6f86f50b25a362c5a1?postId=e5bb1630afb5" style="display: block; position: absolute; margin: auto; max-width: 100%; box-sizing: border-box; transform: translateZ(0px); top: 0px; left: 0px; width: 700px; height: 525px;">2.1. rotate대상에 각도 값을 설정합니다. 즉, 주어진 값만큼 회전합니다. 첫 번째 예제와 조금 다른 부분은 :hover { }에 작성된 내용입니다. transform:rotate(360deg)에서 rotate는 회전을 뜻하고, 360deg는 각도입니다. 즉, 360도(한 바퀴)만큼 회전하라는 의미입니다. 미리 transition이 걸려있었기 때문에 부드럽게 회전하는 모습을 볼 수 있습니다.2.2. translate대상의 이동 값을 설정합니다. 주어진 값만큼 이동합니다. 값은 좌푯값으로 x축, y축 값을 나눠서 줍니다. transform: translate(100px, 100px)에서 translate는 이동을 뜻하고, 이후에 나오는 값은 순서대로 x축의 이동값, y축의 이동 값입니다. 그런데 y축 이동 값이면 위로 올라가야 할 것 같은데, 그림은 아래로 이동합니다. 그 이유는 스크린에서 좌측 위가 기준점이기 때문입니다.2.3. scale대상의 크기를 설정합니다. 즉, 주어진 값만큼 늘어나거나 줄어듭니다. 값은 가로 값, 세로 값을 차례로 줍니다. transform:scale(1.5, 2)에서 scale은 크기를 뜻하고, 1.5와 2는 각각 가로값, 세로값을 뜻합니다. 가로는 1.5배가 늘어나고 세로는 2배가 늘어납니다. 그래서 그림은 세로로 긴 비율로 보입니다.이제 우리는 css만으로 대상의 위치, 크기, 회전 애니메이션을 줄 수 있습니다 :)3. keyframes마우스 오버 액션에 대한 애니메이션을 보아왔습니다. 이렇게 사용자의 특정 반응(마우스 오버)이 없어도 자동으로 움직이도록 할 수는 없을까요? 앞의 두 예제보다 조금 복잡하지만 keyframes를 사용하면 가능합니다. keyframes는 미리 움직임을 지정해두고, 대상에 해당 애니메이션의 속성을 부여하는 방식으로 작성됩니다. 예제를 확인해 보겠습니다.<iframe data-width="800" data-height="600" width="700" height="525" data-src="/media/fc6ef62f3a79def6442479e60dcba75d?postId=e5bb1630afb5" data-media-id="fc6ef62f3a79def6442479e60dcba75d" data-thumbnail="https://i.embed.ly/1/image?url=https://s3-us-west-2.amazonaws.com/i.cdpn.io/1370087.vZMRdd.small.22bea369-dda5-4454-9f16-f5ad68f9b292.png&key=a19fcc184b9711e1b4764040d3dc5c07" class="progressiveMedia-iframe js-progressiveMedia-iframe" allowfullscreen="" frameborder="0" src="https://blog.stibee.com/media/fc6ef62f3a79def6442479e60dcba75d?postId=e5bb1630afb5" style="display: block; position: absolute; margin: auto; max-width: 100%; box-sizing: border-box; transform: translateZ(0px); top: 0px; left: 0px; width: 700px; height: 525px;">3.1. spin앞서 살펴 본 transform의 rotate를 미리 애니메이션을 만들어 놓고 대상에 animation이라는 속성을 설정했습니다.@keyframes spin 처름 spin이라는 애니메이션을 설정합니다. 그 안에는 from과 to가 있는데 각각 시작과 끝을 뜻합니다. 즉, 시작할 때는 회전이 0(rotate(0deg))이고 끝날 때는 회전이 360도(rotate(360deg))입니다.대상과 keyframes를 연결할 때는 대상에 animation: spin 8s infinite linear;와같이 애니메이션 속성을 줍니다. spin은 keyframes의 이름, 8s는 8초 동안, infinite는 무한 반복을 뜻합니다. 여기서 linear는 easing을 나타내는데, 우선은 조금 딱딱한 애니메이션이라고 해둡시다.3.2. leftAndRighttransform의 translate를 활용해서 우측으로 이동했다 돌아오는 애니메이션을 반복시키는 예제입니다. from과 to대신 조금 상세한 타임라인을 가지고 있습니다. 0%, 50%, 100%는 타임라인을 구성하는 속성들로 전체 애니메이션 시간 동안 해당하는 타이밍에 맞게 속성이 변경됩니다. 역시 infinite 속성이 있어 계속 반복되고 있습니다. 그리고 마지막에 linear대신 ease라는 속성을 넣어서 조금 부드러운 움직임 표현했습니다.3.3. hideAndShow앞서 다루지 않은 opacity(투명도)를 활용했습니다. 1이 100%이고 0은 보이지 않는 상태입니다. 1 → 0 → 1을 반복하며 보였다 안 보였다 하는 애니메이션을 보여줍니다.이제 우리는 css만으로 대상의 위치, 크기, 회전 애니메이션 반복적으로 사용할 수 있게 되었습니다. 그리고 무한 반복 애니메이션도 만들 수 있습니다.마무리 예제<iframe data-width="800" data-height="600" width="700" height="525" data-src="/media/f95d4317209e7a3488242568bbdcd5a3?postId=e5bb1630afb5" data-media-id="f95d4317209e7a3488242568bbdcd5a3" data-thumbnail="https://i.embed.ly/1/image?url=https://s3-us-west-2.amazonaws.com/i.cdpn.io/1370087.OgeMEY.small.ab075079-b3bb-443e-a11e-d707c5a6a198.png&key=a19fcc184b9711e1b4764040d3dc5c07" class="progressiveMedia-iframe js-progressiveMedia-iframe" allowfullscreen="" frameborder="0" src="https://blog.stibee.com/media/f95d4317209e7a3488242568bbdcd5a3?postId=e5bb1630afb5" style="display: block; position: absolute; margin: auto; max-width: 100%; box-sizing: border-box; transform: translateZ(0px); top: 0px; left: 0px; width: 700px; height: 525px;">앞서 살펴본 예제들을 활용한 마무리 예제를 만들어 보았습니다. 앞서 공부한 내용을 바탕으로 소스를 분석해 보시기 바랍니다. 각 버튼에는 transiton으로 부드러운 hover 전환 효과를 주었고, 녹색의 메시지는 keyframes를 주어 상하로 계속 움직이도록 했습니다. frame에 마우스가 올라가면 메시지는 프레임 바깥으로 밀려나고 사용자 메뉴가 프레임 안으로 이동하도록 했습니다. 메뉴는 하위 메뉴가 펼쳐지는 인터렉션을 가지고 있습니다.마치며전문 프로토타이핑 도구보다 결과물이 투박하고, 지금 당장 만들 수 있는 장면도 제한적입니다. 자바스크립트 같은 동적 언어가 들어가 있지 않아 표현할 수 있는 화면도 많지 않습니다. 기본적으로 제공되는 템플릿이나 자원이 없으므로 하나하나 html로 코딩하거나 공개 소스를 넣어가면서 만들어야 하는 수고로움도 존재합니다.하지만 실행만 해도 막막한 도구들을 바라보며 “언제 한 번 해보나”하는 생각을 할 시간에 간단히 익혀 한 번이라도 써먹을 수 있다면 그 자체로 의미가 있지 않을까요? 물론 탄탄한 시나리오와 설계를 가지고, 제대로 만든다면 전문 프로토타이핑 도구보다 절대 뒤쳐지지 않을 것입니다. 그리고 우리가 만든 코드들은 커뮤니케이션을 위한 전달용이 아니고 실제로 쓰일 수도 있는 코드라는 점에서도 의미가 있습니다. 간단한 프로토타이핑이라도 지금 시작해 보면 어떨까요?참고https://www.w3schools.com/css/css3_animations.aspttps://www.w3schools.com/css/css3_transitions.asphttps://www.w3schools.com/css/css3_2dtransforms.asphttp://report.stibee.com/2017 by 조은지 디자이너#슬로워크 #스티비 #CSS #퍼블리셔 #개발 #디자인 #인사이트 #꿀팁 #조언
조회수 850

[Buzzvil People] Michael Yeom, Sales Manager

 Buzzvil People에서는 다양한 배경과 성격 그리고 생각을 지닌 버즈빌리언들을 한 분 한 분 소개하는 시간을 갖습니다. 어떻게 버즈빌에 최고의 동료들이 모여 최고의 팀을 만들어가고 있는 지 궁금하시다면, 색색깔 다양한 버즈빌리언들 한분 한분의 이야기가 궁금하시다면, Buzzvil People을 주목해주세요.1. 간단한 자기 소개 부탁드립니다. 안녕하세요 버즈빌에서 나이(사내 2번째 고령자)를 담당하고 있는 Sales Manager Michael(염기찬)입니다. 운동을 굉장히 좋아하고요. 현재 사내에서 축구, 탁구, 농구를 하고 있습니다. 농구는 다른 회사에서도 종종 게스트로 초청돼 영업의 한 채널로 유용하게 쓰고 있네요. ^^ 원래는 제휴영업이 주 전공이었지만 광고영업도 별반 다를 것이 없다는 크나큰 착오로 인하여 초반에 큰 어려움을 겪었으나 어찌어찌 이겨내며 조금씩 영역을 확장하고 있네요. 컨펌이 돼도, 리젝이 돼도 빨리빨리 다음을 찾아야 하는 Sales팀의 최고령자입니다.  2. 어떻게 버즈빌에 오시게 되셨나요? 조그맣게 사업을 하다가 잘 안 되던 중 친한 후배가 연락처 하나를 건네며 거기에다 이력서를 한 통 넣으라고 하더군요. 이름을 보니까 제가 예전부터 알고 지내던 버즈빌의 최고령자 Steve이었습니다. 연락을 드리고 간단하게 티타임을 가지며 당당히 Business Development Team으로 면접을 보았으나 Sales팀으로 입사를 하게 됐습니다.  그 후배 덕에 버즈빌리언이 된지 어느덧 2년이 다 되었네요. 수평적이고 젊은 조직에 적응을 잘 할 수 있을까에 대한 주위 분들의 걱정이 많았지만 정신연령 자체가 낮다(?) 보니 아주 잘 적응하며 즐겁게 지내고 있습니다. 3. 버즈빌에서 어떤 업무를 담당하고 계신가요? 전 Sales Team에서 외부 영업을 담당하고 있고요. 저의 전문 분야는 금융과 프랜차이즈입니다. 프랜차이즈에서 오랫동안 경험을 쌓고 업계를 잘 이해하고 있다 보니 회사에서도 잘 밀어주고 있습니다.  주위의 매체사들, 대행사들을 포함한 업계 분들을 만나면 버즈빌의 연락을 이미 받은 경험이 있는 분이 많습니다. “여기도 버즈빌 왔다 갔어요?” , “여긴 안 왔겠지 했는데 역시나 왔다 갔군요..” 이와 같은 맥락의 말을 자주 하게됩니다. 그만큼 버즈빌 Sales Team의 전투력을 엿볼 수 있죠? ^^ 사실 전투력도 전투력이지만 버즈스크린의 특장점, 어필 포인트가 분명히 있는데 이 내용이 광고주에게까지 효과적으로 전달되는 경우가 많지 않아서 매출을 만들기 위해서는 직접 얼굴을 보고 자세하게 버즈스크린의 장점을 설명 해야 합니다. 그래서 저는 오늘도 열심히 발로 뛰고 있습니다.  4. 스타트업에서 혹은 광고업계에서 일하는 느낌이 어떠세요? 저는 제휴마케팅을 주로 하던 사람이었는데요. 같은 영업이라 크게 문제가 되지 않을 것이라 생각하고 광고업계로 들어왔는데 정말 큰 차이가 있더군요. 제휴는 나름 시간을 길게 가지고 양사 간의 이익 점을 서로 조율해나가는 부분이 있습니다. 반면, 광고영업은 짧은 시간에 모든 게 결정되기 때문에 항상 다음을 빠르게 만들어야 하는 부분이 있더라고요. 또한, 광고주의 분야마다 전략을 명확하게 수립하는 건 당연하고 순간순간마다 전략수정 등 임기응변이 훨씬 더 많이 필요하다는 걸 느꼈습니다. 그래서 피곤하기도 하고 약간 지칠 때고 있지만, 내가 살아있음을 느끼고 있어서 광고 쪽으로 온 것을 후회하지 않습니다.  5. 이것만큼은 버즈빌이 참 좋다! 어떤 게 있으실까요? #문화가 좋은 기업 버즈빌은 어떤 회사냐면요.   자유, 책임과 주인의식이 공존하는 회사 주입이 아닌 스스로 느끼고 알아서 일 하는 회사  전 이게 책에서 혹은 바른 기업상 등에서 나오는 얘기라고만 느꼈었는데 버즈빌이 그런 회사라는 것에 대해 약간의 으쓱함이 생기네요. 회사에서 주는 문화적 혜택을 악용하는 사람들이 눈에 안 보이는 게(제 눈에만 그런가요? ^^) 정말 참 좋습니다! #자유로운 분위기를 형성 하는 버즈빌 이게 정말 최고의 업무적 혜택인 거 같습니다. 회사에 나오지도 않아도 각자 알아서 업무를 하는 걸 보면 스스로 안 할 수가 없는 분위기입니다. 이런 분위기가 만들어가는 게 정말 어려운데 그 어려운걸 버즈빌이 해내고 있네요.  6. 개인적인 목표나 꿈이 있으신가요? 있다면, 버즈빌에서의 경험이 어떻게 도움이 된다고 생각하시나요? 고1, 중2의 자녀를 둔 아빠 입장에서 역시 가족이 건강하고 부족함 없이 사는 것이 가장 큰 목표입니다. 그러기 위해서는 역시 열심히 일하고 있습니다. 안정적인 매출을 확보해 회사와 제가 모두 이익을 볼 수 있는 상황을 빨리 만들고자 열심히 뛰고 있습니다. 또한, 버즈빌에서의 나의 경험도 경험이지만 우리 버즈빌리언들이 현재까지 살아온 얘기들을 들으면 정말 배울 것이 많다고 느껴요. 나보다 훨씬 어린 친구들임에도 불구하고 너무나 알찬 인생을 살고 있습니다. 많은 정보를 찾고 그 정보로 내가 누릴 수 있는 혜택, 내가 가질 수 있는 경험을 마음껏 즐기고 있는 버즈빌리언의 모습이 정말 보기 좋습니다. 저도 앞으로 이러한 자세로 살고 싶고 제 아이들에게도 적극적으로 권하려고 합니다. 우리 버즈빌리언들이 100%까진 아니겠지만 그래도 크게 만족감을 느끼며 서로 오랫동안 얼굴 볼 수 있는 그런 회사를 계속 만들어 가고 싶습니다.    *버즈빌의 채용공고(전문연구요원 포함)를 확인하고 싶으면 아래 버튼을 눌러주세요!
조회수 744

클라이언트가 내게 와인을 권했다.(feat.작업후기)

지난 2주간 새로운 프로젝트를 맡아서 일을 했답니다. 플젝의 내용은 이런 것이었어요. 회사소개 문구 좀 세련되게 고쳐달라. 음...그렇습니다. 회사소개서를 만들다보면 처음 의뢰는 디자인으로 오기 마련이예요. 하지만 정작 자료를 받아보면 디자인은 부차적인 문제죠. 일단은 내용이... 뭔 말인지 모르겠어!!... 또는 노잼이야!!.. 아니면 문맥이 이상해!! 또는 상투적이야!! 지나치게 노골적이거나!! ... 등등의 문제들이 있습니다.그래서 대부분은 텍스트부터 손대기 마련이랍니다. 이젠 익숙해져서 아예 앗싸리 처음부터 이렇게 텍스트 기획부터 들어가는 경우가 많아요. 이번 프로젝트는 특이하게 디자인말고 문구수정만 맡아서 하게 되었습니다. 사실 디자인은 꽤나 괜찮더라구요. 다만 뭐랄까...텍스트가 지나치게 평범해서 마치 체크남방에 뿔테안경, 카키색 카고바지를 착용하고 인케이스 백팩을 맨 착한오빠 느낌이랄까요.  일단 미팅부터 진행해보고자 강남구청역으로 슝슝 달려갔습니다.1.이번 클라이언트는 와인회사였어요. 소믈리에 양성교육과 와인유통, 콘텐츠제작등을 하고 있는 곳이죠. 건물에 1층은 오져버리게 세련된 바&카페였고 2,3층 교육장이 있고, 4층에 사무실이 있고..테라스도 있고... 뭐여. 이쁘잖아? 네, 건물이 예뻤습니다. 미팅은 1층 바에서 진행했어요.보통 대표님은 내향형대표님과 외향형대표님이 있는 듯 합니다. 이번 대표님은 전자에 가까웠어요. 그리 말이 많은 편도 아니었고 조용한 성격에 상당히 전문가느낌을 물씬 풍기는 그런 인상이셨죠. 하지만 정작 와인얘기가 나오면서부턴 각성한 마법전사마냥 눈이 반짝거리시더니 봇물 터져벌임.2.일단 전 와인을 1도 모릅니다. 물론 마셔보기는 했으나 이 맛이 저 맛이고 떫고 달다..정도를 구분할 수 있는 정도?.. 네, 혀가 있다면 누구나 구별할 수 있는 그 정도의 맛만 알고있는 상태였습니다. 게다가 비싼 와인일수록 떫다....라는 뜬소문이 장착된 상태라 이마트에서 파는 8,000원짜리 기획와인이나 꼴짝꼴짝 마시는 정도였죠. 술을 즐기긴 하지만 뭔가 와인은 선뜻 혼술로 즐기기엔 좀 뭐랄까.... 선입견이 좀 있었던 것 같아요. 이건 조낸 특별한 날에 까야해. 라는...?3.텍스트를 만들려면 일단 와인을 이해해야 했습니다. 이 술이 당최 뭔지 알아야 뭔가 구상을 하든 말든 할테니까요...그래서 일단 싸디싼 와인을 홀짝이며 와인책을 뒤적뒤적거리기 시작했어요.최근 개봉한 '부르고뉴, 와인에서 찾은 인생' 도 찾아 보았죠. 오우 영화가 상당히 재밌더라구요. 혹시 못보신 분들은 꼭 한 번 찾아보셨으면 합니다. 진심 그 영화보면 와인멍청이라고 해도 어느 순간 혜안이 열리는 듯한 기분입니다. 그리고 끝나면 와인이 땡기죠.개꿀잼입니다. 진심4.이번 컨셉은 와인은 '언어다!' 라는 컨셉이었어요. 사실 술이란 게 그렇잖아요. 소주는 소주를 마실 때 하는 대화가 있고, 맥주는 맥주 나름이 대화가 있습니다.뭔가 인생의 크으으으 쓴 맛을 느끼고 나눌 때는 소주가 제격이고...청춘의 짠내나는 한숨을 담은 편맥과 오땅....수다와 근황얘기에 적합한 수제맥주...비오는 날 거나하게 취하고 흥청이망청이 노래부르고싶은 막걸리..등등 술과 대화는 뗄레야 뗄 수 없거든요. 와인은 또 와인 나름대로의 대화가 있기 마련이죠. 그래서 언어라고 규정해 봤어요. 술자리는 꼭 목소리로 오고가는 대화 대신에 잔끼리 부딪히며 마시는 와중에 느껴지는 무언의 대화가 있기 마련이거든요. 중간에 뭔가 굉장히 어색해지면 '야야야 짠해 짠!' 이라고 끊어주는 역할을 하는 것처럼 말이예요. 뭔가 잔을 기울여 마신다는 것은 그 자체로 하나의 언어가 된다고 생각해요.짠해 짠.5.자 그래서...텍스트를 다듬기 시작했습니다. 진심 4줄 쓰는게 이렇게 힘든 건지 오랜만에 깨달았습니다.이렇게 일단 언어와 와인의 속성을 뽑아서 사랑의 작때기 마냥 서로 연관있는 것 끼리 연결시켜 주었어요. 은유라는 것은 유사속성끼리 서로 묶는 게 먼저거든요.그리고 각각 속성을 연결시켜 문장으로 만들어냈어요. 논리는 이런 식이었어요.'와인은 언어다.''언어는 사고방식과 행동을 규정한다.''와인은 우리의 삶을 바꾼다.'이런 3단 논법으로 갔던거죠. 몇몇 키워드들이 등장했어요. 오감, 깊어짐, 가벼움, 묵직함, 섹시함, 섬세함, 감각 등등..말이예요. 이제 이 녀석들을 문장안에 잘 녹여서 하나로 만들어야 해요. 이 때 만큼은 존윅에 나오는 총기소믈리에가 된 것같은 느낌이죠.그래서 기존 텍스트를 이렇게저렇게 바꾸고 만들고 난리를 쳤습니다. 자세한 과정은 재미가 없으니 생략하도록 할께요. 여튼 이렇게 14개의 사업영역에 대한 텍스트가 모두 만들어졌습니다. 텍스트를 만들 때는 몇가지를 고려해야해요!~일단 읽혀야 해요. 끝까지 읽히고 나선 찰져야 해요. 입천장에 달라붙은 양반김마냥 입에 챡!! 붙어야 하죠.  그리고 무엇보다 쉬워야 해요. 와인은 안그래도 전문가들만 알고있다라는 느낌이 강력한데 영어나 한자어가 수두룩하면 읽는 사람은 느에에에에 핵노잼! 하면서 뒤로가기를 누르기 마련이니까요. 그리고 입으로 말해도, 글로 써도 둘 다 어색하지 않은 글이면 더더욱 좋겠죵. 그래서 문장에 구성할 때 운율을 잘 짜요. 3.3.5라던지 3.4.3이라던지 음보를 잘 짜주면 딜리버리 쩌는 스피치를 만들 수 있어요. 그리고 라임도 잘 맞춰주면 좋아요. 이응이응이 가득한 어절에 하나씩 파열음이나 된소리를 넣어주면 엑센트가 살면서 일종의 리듬감을 만들어 준달까요.그렇게 머리를 두번짜고 세번짰더니!!  이런 것이 만들어졌어요!대표님은 맘에 든다고 끄덕이끄덕이를 하셨고(으아아아아...감사합니다!!!)  전 2주간 시달리던 긴장에서 봉인해제될 수 있었어요. 대표님께선 와인을 적극 권하셨습니다. 한 잔 잡숴봐~ 이런 느낌은 아니었고. 진심으로 와인이 삶을 보는 눈을 바꿀 수 있다고 믿고 계셨어요. 근데 사실 이 점은 저도 동일해요. 술이란 것은 대화를 동반한다고 했잖아요. 심지어 아무 말없이 술만 기울여도 뭔가 그 분위기라는 것이 전하는 메시지가 있기도 하구요. 이게 주종에 따라 조금씩 어투나 언어가 달라지는 느낌입니다. 분명 와인은 와인 나름의 대화와 분위기가 있기 마련이죠. 그리고 그 분위기를 이해하기 위해선 내 몸속에 들어가는 이 알싸한 것들이 당최 뭔지 이해해야 해요.와인을 배운 다는 건 내 몸속에 또 하나의 언어를 채워넣는 느낌이죠. 말로 내뱉는 언어가 아닌 혀와 코끝으로 느끼는 언어말이예요.그래서 말인데, 대표님이 그렇다면 이번 기회에 소믈리에 기초과정을 한 번 들어보라고 권하셨어요. 우왕굿이예요. 자랑입니다. 이제 더 이상 와인코르크도 제대로 못따서 코르크 빠뜨려서 둥실둥실 할 일은 없을 것 같아요.클라이언트 비즈니스를 한다는 게 장단점이 있습니다. 모든 디자이너와 콘텐츠제작자는 '나만의' 무언가를 만들고 싶어해요. 그건 숙명과도 같은 숙제죠. 내 것을 만들면서 느끼는 뿌듯함은 굉장한 쾌감을 줍니다. 하지만 그에 못지않게 클라이언트 비즈니스도 짜릿한 매력이 있어요. 다른 사람들이 몸담고 있는 세계를 맛볼 수 있잖아요. 특히 이번 프로젝트 처럼 전혀 관심도 없었던 영역을 '일을 하기 위해' 공부했다가 매력이를 느껴버리는 경우엔 더더욱요. 매번 새로운 일을 하시는 대표님들을 만날 때마다 새로운 세계를 조금씩 테이스팅하는 기분입니다. 이번엔 진짜로 알싸한 와인을 테이스팅 하게 될 것 같구요. 조만간 소믈리에 과정을 듣게되면 이 언어가 얼마나 기가 맥히게 매력적인지 꽐라가 되어서 글을 주저리 해보도록 하겠습니다. 역시 글 중에 글은 취중끄적 아니겠습니까.이렇게 또 하나의 일이 끝났습니다. :)물심양면으로 지원해주시고 생에 두번 없을 기회까지 제공해주신 와인비전 대표님께 감사드립니다!~ 딱히 돈을 받거나 광고하는 것은 아니지만 새로운 언어에 관심있으신 분이라면 한번쯤 들려보세요 :) http://winevision.kr/
조회수 668

당신의 마케팅에는 고객경험을 고려한 시나리오가 있는가

작은 부탁의 힘가끔 마트의 장난감 진열대 앞에서 아이와 곤란한 줄다리기를 하고 있는 젊은 부부들을 볼 때가 있다. 평소 사고 싶던 장난감 앞에서 한 꼬마는 엄마에게 이렇게 물어본다.  “엄마, 저게 뭐예요?” (가끔, 저렇게 놀랍도록 뻔뻔한 질문을 하는 아이들을 보면 역시, 아이들에게 배울 것이 많다는 생각을 한다. )  그럼, 엄마는 이렇게 이야기 한다.  “아빠가 빨리 오래”  상황 파악이 된 아이는 그 자리에 풀썩 주저 앉더니 보채기 시작한다. 그리고 마법의 주문을 외우기 시작한다.  “엄마! 이번 한 번 만요!” 늘 이런 패턴을 알고 있는 부모지만 이 ‘한번만’이라는 마법같은 단어에 못 이긴 듯 결국, 장난감을 사주고 만다.  그런데 이런 대화는 비단, 아이와 부모 사이에서만 일어나는 것이 아니다. 영업이나 설득의 기술에 탁월한 이들을 보면, 애초에 부탁하고자 하는 것보다 더 어렵거나 들어주기 힘든 부탁을 전략적으로 건네곤 한다. 그리고 상대가 거절하게 되면 기다렸다는 듯이 부탁의 수준을 낮춰 작은 부탁을 제안한다. 그럼, 절반 이상은 거절할 수 없게 되는 것이다. 사실, 그 부탁이 원래 목적의 부탁인지도 모른 채 말이다.  그런데 더 놀라운 것은 이렇게 작은 부탁을 들어준 친구는 어느샌가 처음에 제시했던 큰 부탁도 크게 어렵지 않게 들어 줄 가능성이 크다는 것이다.  맥락에서 오는 실행력과 설득력마치 저것이 거절의 미안함을 스스로 없애기 위한 자기만족의 선택이라고 느껴지는가? 그렇지 않다. 고전에서도 많이 다뤄지고 있는 설득 법칙 중의 하나다. 바로, 자신이 한 행동의 방향성을 그대로 유지 시키고 싶은 관성의 법칙이기도 하다.  즉, 원인과 결과, 그리고 그 결과는 다른 행동의 원인이라는 이 맥락의 흐름을 파악하게 되면 어떻게 우리가 얻고자 하는 결과의 앞 단에 어떤 원인이 있어야 하는 지 알게 될 것이다. 더 나아가 원하는 결과를 얻기 위해 필요한 원인을 디자인하고 적절한 곳에 배치 시킬 수도 있을 것이다.  이런 모든 흐름들을 원인과 결과라는 맥락의 단위로 쪼개다 보면, 각 단계로의 진전에 자연스럽게 실행력과 설득력이 생기게 된다. 정말 쉬운 예를 들어보면 어떨까? 일찍 일어나고 싶다. > 일찍 잔다. 운동을 하고 싶다. > 운동을 하러 간다.  혹시 피식 웃는 이가 있을 지 모르겠다. 누가 이것을 모르나라고 할 수 있을 것이다. 혹시 알면서도 못 하는 것이라고 이야기 한다면, 한 번 더 원인을 만들어 보자. 그럼, 자연스럽게 ‘실행력’까지 생기게 될 것이다.  일찍 일어나고 싶다. > 일찍 잔다. > 무조건 7시 전에는 업무를 마치고 8시까지는 식사와 샤워를 마치고 9시 전에는 침대에 눕는다.  운동을 하고 싶다. > 운동을 하러 간다. > 정해진 시간에 친구와 헬스장에서 만나기로 한다.  물론, 원하는 결과를 얻을 수 없을 때도 있다. 운동을 하기로 한 친구의 연락을 차단하면 모든 것은 수포로 돌아간다. 다만, 저 원인들이 있다면, 운동을 할 가능성은 커진다.  고객이 행동을 맥락으로 바라보는 관점이런 맥락의 흐름을 마케팅의 관점으로 바라보면 어떨까? 쇼핑몰의 한 예를 들어보자. 구매를 하기 직전, 원하는 제품에 찜을 해두거나 장바구니에 담아두는 행동을 유도해보는 것은 어떨까. 그런 이전의 행동들을 해 본 유저는 구매까지 가는 과정이 어렵게 느껴지지 않을 것이다.  어느 오프라인 교육프로그램을 예를 들어보자. 오프라인 마케팅 과정이 있다면, 그 전에 pre-seminar를 진행하기도 하고 프로그램을 안내하는 웹사이트 페이지에 교육의 일부를 촬영하여 미리 보여줄 수도 있을 것이다. 해당 프로그램에 흥미를 느끼는 이들은 pre-semina에 참여하거나 영상을 보게 되며, 이런 행동은 본 프로그램 참여까지 관성 작용을 일으키게 될 가능성이 커진다.  이렇게 관성을 이용한 설득의 법칙을 페이스북과 같이 full-funnel 마케팅이 가능한 매체를 활용하면 그 효과가 더욱 커질 수 있다. 10초 정도의 짧은 영상으로 관심을 유발하고, 이에 반응했던 유저를 대상으로 캠페인의 full 영상을 보여준다. 긴 영상에도 일정 시간 시청하며 반응한 유저에게는 세일즈 전환 메시지를 다시 보여줌으로써 전환을 유도하게 된다. 아마 당신도 이런 full-funnel 마케팅에 반응한 경험이 꽤 많을 것이다.  고객은 어떠한 경험을 하는가 이런 맥락을 더 잘 활용하려면 어떻게 해야 할까? 당신의 고객이 특정 니즈를 가진 순간부터 최종 구매 완료를 하는 순간까지 어떤 경험을 하게 되는 지를 모두 관찰 할 필요가 있다. 그리고 그 과정을 작은 단위로 쪼개어 정의 할 필요가 있다. 작은 단위로 고객의 경험을 쪼개어 보면 어느 부분의 고객 경험을 향상 시켜야 할 지, 그 솔루션이 보이게 된다. 즉, 이런 과정의 연속이 마케팅 실행력을 성장 시키게 된다.  가령, 쇼핑몰의 메인 페이지에서 제품의 상세 페이지를 경험하는 과정에 고객이 있다고 하자. 마케터 입장으로는 메인 페이지에만 고객이 머물다가 사이트를 나가면 무의미하다. 단 한명이라도 더 제품, 서비스의 상세 페이지를 보게 만들어야 한다. 이 때, 상세페이지 확인이 가능한 썸네일 이미지 클릭이나, 배너 클릭이 이루어져야만 다음 단계로 갈 수 있다. 이 때, 해당 이미지나 배너는 고객이 클릭할 수 있는 요소들을 갖추고 있어야 한다. 단순 제품 이미지를 싣는 방법도 있을 테고, 직접 해당 제품을 사용하는 모습의 이미지가 들어갈 수도 있다. 사실, 어떤 이미지가 고객의 클릭율을 높일 수 있을지는 모른다. 다만, 해당 이미지나 배너는 클릭하고 싶게끔 만들어야 상세 페이지뷰가 많아진다는 것은 누구나 안다.  이런 생각의 흐름으로 쪼개진 고객 경험의 모든 구간에서 전환율 상승에 도움되는 모든 전략을 구성해 볼 수 있다.  고객의 경험에 따라 우린 어떤 메시지를 적절하게 줄 수 있는가 만약, 제품의 상세페이지에 유입된 고객이 후기 텝을 눌러 후기를 3가지 정도 읽어보고 구매 없이 나간 데이터가 많다고 생각해보자. 이들은 구매에 대한 의사결정으로 무엇을 주로 본다고 할 수 있는가. 두말 할 나위 없이 바로 후기다. 구매를 실패한 유저 외에 구매를 한 유저도 사전에 후기 콘텐츠 소비가 많다고 판단되면 고객에게 구매 전, 후기 확인이 매우 중요한 구매결정우선순위라고 이야기 할 수 있다.  그럼, 이 데이터를 기반으로 무엇을 해야만 하는가. 바로 구매는 실패했지만 유의미한 행동(후기 소비)을 했던 유저를 다시 사이트에 불러 올 필요가 있다. 바로, 리타겟팅이다. 바로, 이때 우린 어떤 메시지로 이들을 데려와야 할까? 바로, 후기다. 그들의 구매결정우선순위에 맞는 후기 콘텐츠를 통해 그들의 흥미를 다시 끌어야 하는 것이다.  고객을 다시 데리고 올 때, 혹은 신규 고객을 더 많이 유입 시키고자 할 때, 적절한 메시지는 바로 웹사이트에서 목표 전환 전, 유저가 가장 많이 해본 행동이나 소비한 콘텐츠의 내용이 된다. 흥미를 유발하는 콘텐츠는 이미 사이트 유입 전, 한 참 전에 사용되었어야 한다.  우리가 처음에 이야기했던 작은 행동으로부터의 힘은 바로 이렇게 연결된다. 작은 부탁이라도, 작은 행동이라도 그것을 실행하게 되면 관성의 법칙이 생긴다. 즉, 그 다음 요구되는 액션을 할 가능성이 높아지는 것이다. 마트의 시식코너나 화장품의 테스터는 이런 전략의 아주 기초적인 사례라 할 수 있다. 웹사이트에서 찜 버튼을 누른 이는 장바구니 버튼의 클릭을 더 잘 할 것이며, 장바구니 버튼 클릭 유저는 구매를 더 잘 할 것이다. 그래서, 더 작은 것부터 우린 제안해야 한다. 그리고 그 제안을 받아 들인 유저가 물 흐르 듯 흘러 갈 수 있게 그 다음 단계가 잘 준비되어 있어야 한다.  즉, 구매고객들의 구매결정우선순위에 맞춰, 작은 행동부터 요구하라. 이 작은 행동이나 부탁을 들어 줄 가능성은 당신의 본 제품이나 서비스를 구매 할 가능성보다 크다. 이렇게 처음부터 끝까지 고객 행동경험을 디자인하고 이 경험을 웹사이트 내부, 외부에서 모두 디자인하는 것을 시나리오 마케팅이라고 부른다. 자, 당신의 마케팅에는 시나리오가 있는가. 지금부터 한 번 고객의 경험을 A to Z, 모두 설계 해 볼 수 있길 바란다.  
조회수 1861

좋은 회사가 좋은 브랜드가 된다.

사랑받는 브랜드는 어떻게 만들어질까? 많은 기업들이 자신의 브랜드가 잊히지 않도록 시장에서 사랑받기 위해 고군분투하고 있습니다. 하지만 다각도로 급변하는 시장 상황에서 기존의 전략은 유효하지 않는 경우가 많습니다. 그래서 저는 새로운 해법을 찾아보기 위해, 젊은 열정을 갖고 있는 스타트업을 만나보기로 했습니다.2016년 봄. 저는 와디즈를 만났습니다.투박하고 소박한 것을 향해있는 와디즈의 따듯한 시선이 좋았습니다.금융권의 정보의 불균형을 해결하고 싶습니다.사람들의 이야기를 잘 들어주는 것이 우리가 해야 할 일입니다.-Brand Interview-브랜드는 정체성에 대한 이야기이며, 정체성은 사람으로부터 나옵니다. 그래서 제일 먼저 와디즈의 사람들을 만나고 이야기를 나누었습니다. 많은 분들을 인터뷰를 하며 구성원들이 브랜드 가치에 대해 이미 충분히 공감하고 있었고, 열의에 가득 차 있다는 것을 느낄 수 있었습니다. 와디즈는 분명 훌륭한 브랜드가 될 수 있을 거라고 확신했습니다. 하지만! 아이가 어른으로 성장하기 위해 자아탐색이 필요하듯, 브랜드도 꼭 그런 사춘기를 겪어야 하나 봅니다. 좋은 회사가 꼭 좋은 브랜드로 성장할 수 있도록, 먼저 와디즈가 좋은 어른이 되기 위해 기준을 세워보았습니다. 와디즈가 잊지 말아야 할 3가지! @Wadiz@Wadiz 와디(Wadi)는 사막의 강을 뜻합니다. 사막 같은 자본시장에 물줄기를 만들겠다는 당찬 포부가 느껴지는 이름입니다. @Wadiz회사의 뚜렷한 생각최근 금융권이 큰 변화를 겪고 있습니다. 많은 은행이 오프라인 지점을 축소하고, 새롭게 인터넷 전문은행도 등장하고 있습니다. 손해 없는 높은 수익을 내세우며, 새로운 투자임을 자처하는 신생 스타트업이 많아졌습니다. 대부분 편리한 사용과 함께 빠른 부의 축적을 내세우고 있죠. 우리는 어떤 차별점을 가지고 있을까?기존 금융은 극소수의 엘리트가 투자 결정을 내립니다. 스펙이 모자란 사람들은 시험대에 올라 누군가의 판단을 기다리며 그들의 미래를 운과 연줄에 맡겨야 합니다. 와디즈는 금융의 사회적 역할을 고민하며 극적인 발상의 전환을 이루었습니다. 소수의 투자자가 거액을 투자하는 것이 아니라 다수의 투자자가 소액을 모아 투자하는 방식*으로 새로운 길을 마련할 수 있다고 생각합니다. (*자금을 필요로 하는 수요자를 위해 금융 기관 없이 불특정 다수가 소셜 네트워크를 기반으로 자금을 모으는 방법을 크라우드펀딩이라고 말합니다.)  집단지성이 작동할 수 있는 커뮤니티를 만들어가고 있습니다.수익의 극대화만이 최고의 가치로 알게 되는 구조 속에서는 우리의 인간성은 상실되기 쉽습니다. 우리는 관점을 달리해 보았습니다. 기존 금융이 집중하던 스펙이나 실적보다 그 사람의 진정성 있는 이야기와 열정에 집중할 수 있도록 스토리텔링에 집중합니다. 이야기는 또 다른 이야기와 관계를 부르며, 이는 금융 플랫폼을 넘어 커뮤니티로 부를 수 있는 이유입니다. 꿈을 응원해주는 친구를 만나서 감성적 응원과 자금적 지원을 동시에 얻어가게 될 수 있습니다. 건강한 커뮤니티는 서로에 대한 신뢰로 만들어집니다. 기존 금융권에서는 열람되지 않았던 다양한 사실 자료를 예비 투자자에게 제공합니다. 스스로 비정상적인 활동에 대해 판단하여 결정할 수 있습니다. 법망을 피해 새로운 시도를 하기보다, 국가기관의 법적 안전망을 갖추어 서비스를 제공하고 있습니다. 와디즈는 투자자 보호를 가장 중요하게 여깁니다.이러한 현실적인 문제 해결을 통해 기존의 자본보다 Better Funding이 가능하다고 생각합니다. 이를 통해 건강한 Better Business를 가능하게 하는 것이 우리가 Better Life를 만드는데 기여할 수 있는 우리의 역할이라고 생각합니다.와디즈 슬로건 @Wadiz브랜드 일관성현대카드 상담전화를 하거나 계절밥상에서 식사를 하면 누구나 일관된 고객응대 태도를 느낄 수 있습니다. 보통 브랜드의 일관성은 고객 대응 매뉴얼로 정해져 있습니다. 와디즈 브랜드 일관성은 어떻게 정의해가야 할까요?  이 곳 와디즈에는 기존 시스템에 스스로 문제를 느끼고, 올바른 방향으로 변화시키고자 하는 분들이 모여있습니다. 누구나 세상을 바꾸는 멋있는 일을 꿈꿀 수 있지만 실제로 그 일에 뛰어들기란 어렵습니다. 더군다나 안정적이고 좋은 직장을 그만두고는요.  한 회사에 한두 명 만나보기도 힘든 분들이 다양한 전문성과 투철한 의지를 지닌 채 모여있습니다."기존의 불합리한 금융시스템을 와디즈와 함께 새로 만들고 싶어요." "내 아이가 자랑스럽게 이야기할 수 있는 회사에 다녔으면 좋겠어요." "내가 열심히 일할 수록 사람들이 행복해지는 일을 하고 싶어요."  와디즈는 구성원 모두 "We make  (      )  Better" 메시지를 스스로 만듭니다.와디즈의 가치에 공감하는 전문가분들과 함께더 큰 성장을 꿈꾸어 봅니다.최근 브랜드를 통해 자기표현을 하는 고객들이 늘어나고 있습니다. 그리고 자신과 비슷한 취향의 사람을 만나고 싶어 하죠. 이런 추세처럼 와디즈의 고객분들도 우리와 많이 닮아있습니다. 고객과 우리가 관심을 보이는 콘텐츠가 거의 동일합니다. 와디즈의 서포터*는 단순히 수익만을 바라보지 않습니다. 상품 하나하나에 의미와 가치를 따지며 펀딩하고, 이를 통해 사회적/윤리적 가치를 실현하기를 희망합니다. 와디즈의 메이커*는 일을 함에 있어 최선을 다하고, 실수를 솔직히 인정합니다. 신뢰를 중요하게 여겨 좋은 품질과 수익을 나누기 위해 노력합니다. (*서포터는 와디즈 프로젝트에 펀딩을 하는 지지자 *메이커는 와디즈 프로젝트를 개설하여 펀딩을 모집하는 자) 수익과 성장의 맹목성을 비판하며, 일관되게 자신이 하고 있는 업에 <질문>을 던지고 있습니다. 비슷한 가치관을 가진 사람들과 와디즈-다운 <답>을 찾는 과정에 올인합니다.환경을 생각하는 파도 에너지, 인진 / 총 218 명의 투자자에게 449,065,000원 배정완료 국내유일 수제자동차 모헤닉 게라지스 3차 앵콜펀딩 /  총 506명의 투자자에게 699,887,500원 배정완료고대 명물 영철버거 341% 달성 / 총 2,579명에게 68,115,000원 펀딩 내일에 대한 믿음브랜드는 잠깐의 선행이나 이미지 광고를 통해 고객의 관심을 끌 수 있습니다. 하지만 과거와 현재, 그 이후에도 이 모습이 일관될 것 같은 믿음을 준다면 고객은 잠깐의 친구가 아닌 영원한 친구가 될 수 있겠죠. 우리의 일관됨을 Rule을 만드는 것이 아닌 사람에게서 그 해답을 찾았었습니다. 내일에 대한 믿음 또한 외부가 아닌 내부에서 그 해답을 찾아보았습니다. 10명, 100명, 1000명, 10,000명 이상의 인원으로 성장해서도 동일한 생각을 유지하기 위해 개인의 성장, 우리가 머무는 공간, 함께 하는 시간에 대해서 많은 고민을 합니다. 1. 와디즈는 따듯한 시선으로 멤버 한 명 한 명의 진정한 성장을 옆에서 지켜봅니다. 그리고 서로를 응원하면서 와디즈의 성장을 꿈꾸죠. 그래서 인사제도 관련해서도 와디즈 브랜드가 잘 녹여져 진행될 수 있도록 많은 노력을 기울이고 있습니다. 구성원 모두 “하고 싶은 일”을 발견하고, 용기를 내어 마음 깊이 꿈꿀 수 있도록 와디즈는 돕고 있습니다. 서로의 가치에 공감하며, 함께 전문가로 성장할 수 있도록 합니다. 왜 그것을 못했는지 질책하기보다, 무엇이 문제였는지 파악하여 도울 수 있도록 합니다.2. 우리가 머무는 공간과 시간이 곧 와디즈-다울 수 있도록 브랜드 컬처를 만들기 위해 많은 시도를 하고 있습니다. 2017년 1월 공간 확장 때, 단순히 넓은 공간으로의 확장이 아닌 우리의 지향점이 곳곳에 녹아날 수 있도록 와디즈 콘텐츠에 대해 고민하였습니다. 와디즈의 사회적 임팩트를 매달 접해볼 수 있는 임팩트 포럼, 신규 입사자분들의 빠른 적응을 돕기 위한 부트캠프, 전문성 향상을 돕는 독서모임 등의 다양한 활동을 통해 와디즈-다운 것에 대해 서로의 공감을 얻을 수 있도록 노력합니다. 3. 와디즈는 지속적으로 근본적인 질문을 합니다. 좋은 질문은 그것만으로 새로운 길에 지혜를 얻을 수 있다고 합니다. 깊은 질문을 통해 와디즈 구성원 스스로가 열정과 철학을 발견하게 된다면 와디즈의 생각은 아름다운 허구가 아닌 견고한 현실이 되어 갈 수 있습니다.우리는 어떻게 살아야 할까요?우리는 왜 돈을 벌 까요?좋은 회사가 곧 좋은 브랜드가 된다. 거짓되고 자극적인 정보가 넘치는 세상에서 우리에게 필요한 것은 철학적 사유라고 합니다. 고객과 판매자는 영리해졌습니다. 그들은 기업이 만들어내는 가짜 콘텐츠를 금세 알아챕니다. 좋은 회사가 되기 위해 노력하는 과정 속에 자연스레 좋은 브랜드가 되는 것. 더 많은 이윤을 내는 것 이상의 사회적 사명을 추구하는 모습. 자신이 하는 말에 그 어느 때보다 더 진심과 신념을 담아야 합니다. 나침반이 없던 먼 옛날 뱃사람들은 밤하늘의 별을 보며 올바른 방향을 찾았습니다. 와디즈의 브랜드도 북극성처럼 길잡이가 되도록 밝게 빛나고 있겠습니다. 더 밝게 빛나 저 멀리서도 알아볼 수 있도록!#와디즈 #브랜드 #브랜딩 #마케팅 #마케터 #인사이트
조회수 1839

현대건설 2019 신입사원을 소개합니다!

현대건설을 빛낼 슈퍼루키들이 등장했습니다!짧지만 알찼던 2주간의 입사 교육을 받으며 현대건설인이 되기 위해 만반의 준비를 다한 2019년 신입사원들. 열정과 패기 무엇 하나 빠지지 않는 신입들의 열정을 느껴보세요.현대건설 신입사원 인터뷰사회생활의 첫걸음을 뗀 현대건설 신입사원에게 현대건설은 어떤 의미인지 물어보았습니다. Q1. 현대건설은 내게 (      )이다.Q2. 현대건설에 입사해 가장 기대되고 이루고 싶은 것은?Q3. 첫 월급을 받으면 가장 먼저 하고 싶은 것은?공동욱 사원A1. 현대건설은 저에게 ‘평생의 반려자’ 입니다. 즐겁고 어려운 일을 함께하며 서로 배우고 성장하는 반려자처럼 현대건설과 평생을 함께하고 싶습니다.A2. 정년퇴직할 때까지 현대건설에서 일하고 싶습니다. 차근차근 경력을 쌓아가다 보면 회사의 미래와 방향을 정할 수 있는 중역의 위치까지 올라갈 수 있지 않을까요(웃음)?A3. 부모님의 선물을 직접 골라본 적이 없는데, 첫 월급으로 부모님께 좋은 선물을 사드리려고 합니다. 받고 기뻐하실 두분의 모습을 빨리 보고 싶어요.김경태 사원A1. 대학원에서 연구했던 분야를 업무로 계속 할 수 있게 해준 현대건설은 ‘기회’입니다. 현대건설이 제게 준 가능성을 헛되이 날리지 않기 위해 담당 분야 최고의 전문가로 거듭나겠습니다.A2. 건설 자동화 기술을 현장에 도움이 되도록 구현해 R&D의 중요성과 기술 혁신을 일으키고 싶습니다. A3. 첫 월급으로는 부모님께 용돈을 드리고 주식 계좌도 만들어 볼까 합니다. 세계 경제 흐름을 파악하면 현대건설에 필요한 기술과 미래 사업 영역도 가늠해 볼 수 있지 않을까요.김두현 사원A1. 저의 가능성을 알아봐준 현대건설은 ‘감사함’입니다. 입사통지서를 받았을 때 가족 모두가 함께 기쁨의 눈물을 흘렸던 순간이 생생합니다. 사회 구성원이 될 수 있는 기회를 준 현대건설은 저에게 정말 특별하고 소중합니다.A2. 회사에서 필요로 하는 인재로 거듭나고, 송·변전 분야에서 최고의 전문가가 될 수 있도록 커리어를 꾸준히 쌓아나가겠습니다.A3. 첫 월급의 기쁨은 가족들과 함께 나누려고 합니다. 힘들 때 옆에서 도움을 준 친구들에게도 맛있는 저녁을 사려고요.김소희 사원A1. 늦깎이 신입으로 입사한 현대건설은 저에게 ‘또 다른 시작’입니다. 레스토랑 창업, 디지털 광고 기획, 데이터 분석까지 남다른 이력을 가지고 현대건설 R&D센터에 입사하게 되었습니다.A2. 기존 컨설팅 회사와는 다르게 건설업에서는 어떤 대상과 자료를 분석할지 너무 기대되고 궁금합니다. 현대건설의 데이터 전문 분석가로 성장하겠습니다.A3. 월급은 계획을 세워 쓸 예정입니다. 엄마 용돈도 드리고 미래를 위해 다달이 100만 원씩 모으려고 합니다. 그동안 힘이 되어준 남자친구와 맛집 데이트도 할 예정입니다.박정재 사원A1. 저에게 있어 현대건설은 ‘인생의 전환점’입니다. 사회생활에 첫발을 내디딘 지금이 인생의 전환점이자 새로운 시작을 할 수 있는 시기라 생각합니다. 업무를 하며 스스로 정한 꿈과 목표를 달성하기 위해 끊임없이 도전하겠습니다.A2. 현장 근무를 통해 많은 경험을 쌓고 저의 손길이 닿아 완공되는 건축물들을 보며 보람을 느끼고 싶습니다.A3. 부모님과 할머니께 의미 있는 선물을 사드리고 싶습니다. 그리고 셀프 입사 축하 선물로 눈여겨 본 코트를 구매할까 고민 중입니다.손태희 사원A1. 저의 ‘제2의 인생’은 현대건설에서 막 시작됐습니다. 가장 입사하고 싶었던 현대건설의 입사통지서를 받았던 순간을 떠올리면 아직도 설렙니다.A2. 매일 배우고 성장하며 사람들에게 더 좋은 환경을 조성해 줄 수 있는 디벨로퍼가 되는 것이 제 최종 목표입니다. 빨리 현대건설 DNA를 체득해 업무 성과를 낼 수 있는 직원이 되겠습니다.A3. 첫 월급은 그동안 받은 부모님의 사랑에 작게나마 보답하는 마음으로 용돈을 드리려고 합니다.윤승욱 사원A1. 누구에게나 자신만의 드림카가 있고 한번은 꼭 타겠다는 꿈을 꿉니다. 토목공학인으로서 늘 현대건설 입사를 꿈꿔온 저에게 이 회사는 ‘드림카’입니다. 현대건설 드림카에 탑승했으니 주인 의식을 갖고 우리 회사가 발전하는데 기여하겠습니다.A2. 업무에 있어 가장 기대되는 부분은 지금까지 배운 지식을 현장에서 어떻게 활용할 수 있는지 직접 공사를 하며 확인해볼 수 있다는 점입니다.A3. 월급은 저를 키우시느라 고생하신 할머니와 부모님께 감사 선물을 드리려고 합니다. 곁에서 힘이 되어준 여자친구에게도 깜짝 선물을 준비하려고요.이양희 사원A1. 해외를 주무대로 일하고 싶었던 저에게 현대건설은 ‘Dreams Come True’입니다. 현대건설이 전 세계에서 프로젝트를 진행하며 주목받는 회사가 될 수 있도록 제 모든 역량을 다해 맡은 업무를 수행하겠습니다.A2. 입사 후 가장 기대되는 것도 대한민국 일등 건설사인 현대건설에서 책임감을 갖고 업무를 할 수 있게 된 부분입니다. 꼭 현장에 보탬이 되는 직원이 되겠습니다.A3. 첫 월급은 누구보다 현대건설 입사를 자랑스럽게 생각하시는 부모님께 드려 더욱 자랑스러운 딸이 되고 싶습니다.최시훈 사원A1. 건축공학을 전공해 현대건설이라는 대한민국 최고의 건설명가에 입사하게 된 것이 아직도 꿈만 같습니다. 오랫동안 건설 엔지니어를 꿈꿔온 저에게 현대건설은 ‘빛’과 같은 존재입니다.A2. 국내 건설업계의 정상에 있는 현대건설의 조직원이 되어 최상의 기술력을 지닌 선배님들께 직접 배울 수 있다는 점이 가장 기대됩니다. 하루가 다르게 성장해 최고의 건설 엔지니어가 되겠습니다.A3. 월급을 받으면 부모님을 모시고 소고기를 먹으러 가려 합니다. 서프라이즈로 준비한 용돈도 드리려고요.최호창 사원A1. 현대건설은 저에게 ‘새로운 출발’ 입니다. 사회 구성원으로서 첫발을 내딛는 곳이 바로 ‘현대건설’이기 때문입니다.A2. 데이터 분석을 공부하며 인생 처음으로 건설이라는 도메인을 접했습니다. 어떤 업무를 할지 마음이 설렙니다. 현대건설인이 갖춰야 할 아이덴티티를 체내화해 목표를 향해 질주하는 직원이 되겠습니다.A3. 첫 월급을 받으면 저만의 공간을 맘껏 꾸미고 싶습니다.원하는 디자인으로 인테리어를 하고 소품도 구매해 보기만 해도 편안한 힐링 공간으로 꾸미려 합니다.#현대 #현대그룹 #현대건설 #2019 #신입사원 #인터뷰 #건설회사 #건설회사취업 #사회생활 #HMG저널 #HMG_Journal #HMG #기업문화 #조직문화 #구성원인터뷰 #사내문화
조회수 1036

안드로이드 개발자의 고민 Fragment (2)

이전 글 보기: 안드로이드 개발자의 고민: Fragment이번 글에서는 Fragment stack 관리와 Fragment 데이터 Lifecycle 관리 이슈를 줄일 수 있는 해결 방법을 찾아보겠습니다. 이전 글에서는  Fragment를 하나의 View로 관리하는 오픈소스를 검토했었습니다.하지만 검토하는 중에 기존 오픈 소스의 변경과 버전업 관리 이슈의 문제를 그냥 넘어갈 수는 없었습니다. 상용 소스에 바로 적용하기에는 리스크가 크다고 판단해 좀 더 신뢰할 수 있는 방법을 선택하기로 했는데요.요즘은 작년 6월에 Google IO 에 발표한 AndroidX의 내용을 다시 검토하고 있습니다. Deeplink를 통한 목적 화면과 Fragment 스택 관리가 중요한데, 이 기능을 도와주는 것이 AndroidX Navigation이기 때문입니다. 화면 전환을 UI 기반으로 사용하여 화면 관리를 용이하게 만들었습니다. 물론 코드 기반에 익숙한 저는 적용하는데 시간이 걸렸죠.기존의 Fragment 관리는 FragmentManager를 통하여 개발자가 직접 코드 상에서 관리했습니다. 하지만 Navigation의 경우에는 아래와 같이 직관적으로 설정할 수 있습니다.firstFragment -> secondFragment -> thirdFragment 로 화면 간의 흐름을 설정합니다. 하나의 Navigation 파일은 하나 이상의 Activity 에서 사용할 수 있습니다.이 방식은 오히려 현재 사용하는 브랜디 소스와 비슷합니다. 하나의 Activity에 ActivityFragment를 만들어서 1:1 매핑으로 화면을 Fragment를 관리하는 방식과 유사합니다. Navigation 의 세부내용은 Google Developers에서 확인할 수 있습니다.Deeplink 를 통한 Fragment Stack 관리도 간단합니다.Notification 또는 Serice 등에서 PendingIntent를 사용하여 테스트할 수 있습니다. Navigation Fragment stack 순서대로 화면을 쌓은 다음 최종 destination Fragment 로 도착합니다. 이와 같은 방법으로 Push를 통한 화면 관리를 쉽게 할 수 있습니다. 이 내용은 여기에서 자세히 확인할 수 있습니다.신속한 마무리기존 Android 에서 화면 관리가 불편했다면 Navigation으로 직관적이고 쉽게 화면을 관리할 수 있을 겁니다. 브랜디는 아직 적용할 준비 중이지만, 꼭 kotlin과 Navigation을 적용해보려 합니다. 그럼 다시 개발의 숲으로 들어가보겠습니다.글고재성 과장 | R&D 개발1팀gojs@brandi.co.kr브랜디, 오직 예쁜 옷만
조회수 704

창업 아이템은 무조건 숨겨야 한다?

 많은 창업자들이 서비스를 기획하는 도중 생기는 오류들이 몇 가지 있는데, 그중 가장 대표적인 것이 바로 “내가 생각하는 데로만 가면 다 잘될 것이고, 서비스를 런칭하기 전까지 아이템을 절대로 알려주면  안 돼.”라고  생각하는  것입니다. 아물논 자신이 하고자 하는 서비스에 대한 큰 믿음과 의지가 있는 것은 분명히 좋은 신호이죠, 그만큼 열심히 서비스에 대하여 진취적으로 나아갈 수 있으니까요. 그리고 이러한 태도는 분명히 서비스에 대한 철학을 확고하게 만들고 기획을 세워나가는 길에서는 좋은 영향을 줄 수 있습니다. 그리고 아이템을 잘 지키는 것도 분명히 좋은 것이라고 할 수 있습니다. 내가 만들고 있던 서비스가 누군가에 의해 부우웅 하고 나와서 시장을 먼저 선점해 버리면 전에 일했던 곳 상사님 얼굴이 생각나기 마련이죠..... 그러나! 자신의 서비스를 맹신하는 것은 큰 문제를 야기할 수 있다는 것을 잊으시면  안 됩니다. 모든 사람들은 다르고 다양한 견해들을 가지고 있다는 건 기본적으로 모두들 알고 계시겠지만, 그것을 간과하는 경우가 많습니다. 그래서 자신의 기획하는 서비스에 대해 비관적인 입장을 가지고 있는 사람을 만나면 서운한 마음도 들고, 섭섭하게 생각하는 분들이 많죠, 저도 그렇습니다;; 그럼에도 불구하고! 섭섭하고 서운해도, "네가 뭘 안다고  그래!"라는 식의 배척하는 태도는 절대로 현명하지 않습니다. 어떠한 일에 대해 한걸음 뒤에서 보면 조금 더 객관적, 중립적으로 볼 수 있듯, 스타트업 서비스도 그러합니다. 스타트업 이 제공하는 서비스들은 대부분 새로운(또는 새로운 접근 방법의) 서비스들이기 때문에, 서비스에 관한 관점이 호불호가 갈릴 수 있고, 심지어 서비스에 대하여 한두번 들어봤어도 서비스에 대하여 이해하기  힘들어하시는 분들도 많을 것입니다(그래서 4.1에서 말씀드린 서비스 이해하기(못 읽으신 분들은 여기를 클릭!)가  선결되어야 하는 것이죠!). 그런 분들의 의견을 수렴할 수 있다면, 그것만큼 서비스에 대해 잘 이해할 수 있는 길은 없다고 생각합니다. 그리고 처음 서비스를 준비하시는 분들은 자신이 기획하는 서비스에 대한 것을 설명하기를  꺼려하시는 분들이 많은데, 기회가 된다면 (적어도 자신이 신뢰한다고 생각하시는 분들에게는) 서비스에 대한 이야기를, 적어도 간단하게라도,  한 번씩은 꼭 해 보시는 것을 추천드립니다. 제가 이러한 말씀을 드리는 이유는, 저도 서비스를 해본 결과, 제가 제 머릿속에 있는 서비스를 잘 설명하고 보여주더라도, 결국 자신의 머릿속에 있는 서비스를 도출해 낼 수 있는 분은 바로 처음 스타트업을 구상한 분이 서비스를 가장 잘 아는 사람이라는 겁니다.  그냥 “들어만” 본 서비스로는 절대 경쟁자들이 여러분이 계획하시는 서비스를 할 수 없을 것이고, 카피켓이 나와봤자 서비스에 대한 인사이트가 부족한 카피켓은 완전히 다른 부가가치를 제공하지 못하는 이상 아류밖에 되지 않는다는 것이 제 확실한 생각입니다. 이런 거죠, 서비스 하나를 만드는데 "3 명이 10개월 정도 걸리는  프로젝트다."를 보고, 그럼 10 명이 3개월이면 충분히 만들겠다."라고 생각하는 거나 마찬가지 인 거죠.(여기서 그게 뭐가  달라?라고 생각하시면 안돼요....) 그리고 "네가 뭘 안다 그래!"라고 생각하게 되는 것은, 분명히 그럴 수는 있어요 (저도 많이 찔리네요;;) 근데 나중에 생각해보니 후에 사용자들에게도 네가 뭘 안다고  그래!라고 할 수는 없잖아요 그쵸? 그런 피드백을 느낄대는 2가지를 생각해 보세요. 1. 내가 내 서비스를 이해할 수 있도록 정리했고 설명을 정확하게 했는가? 2. 어느 부분에서 청자가 그런 피드백을 주었고,  그 부분에 대하여 반론을 정확하게 할 수 있는가?이 2가지를 생각해 본다면 어느 정도 이해가 되는 부분도 있을 테고, 아무리 그래도 이해가  안 된다!라고 생각하시면 그냥 무시하세요, 창업자가 그 정도 배짱은 또 필요하다고도 생각합니다. 힘내세요 여기까지도 고생 많이 했잖아요. :) 정리하자면,  "다른 목소리 들어보기"의 과정은 서비스에서 개선이 필요한 사항들이나, 창업자가 스스로 생각해보지 못한 것들을  다시 한번 생각해 볼 수 있고, 재정립이 필요한 부분들에 대하여  다시 한번 생각해 볼 수 있는 기회를 줄 수 있는 금 같은 시간이 될 겁니다. 저 역시 처음 서비스를 시작하려고 할 때는 의심병 환자처럼 기획하고 생각하고 있던 것을 많이 숨겼었고, 항상 조심히 대하였습니다. 그러나 지금 서비스를 정리하고 그때를 생각해보면, 다양한 사람들이 조언이  맞아떨어진 것들이 생각보다 많이 있었고, 개선해야 할 사항들도 많았는데, 조금은 독선적으로, 제 서비스에 대한 맹신으로 넘어간 부분들이 많았습니다. 그래서 지금은  “조금 더 나눠보고 조금 더 생각할 수 있었으면 좋았을 텐데...”라는 생각이 들기도 합니다. 어차피 다른 사람들이 한번 두 번 들어봐서 만들 수 있는 서비스라면, 여러분보다 먼저 다른 분들이 시작했을 것이라도 저는 생각합니다. 가끔씩은 아집을 버리고 들리는 목소리를 존중할 수 있는 시간을 가지시길 바랍니다. 그리고 끝까지 읽으신 분들에게 정말로 개꿀팁을 드리자면, 어떤 서비스를 어떻게 만드려 한다라는 게 다들 있으시잖아요, 그 부분에서 분명 지금까지의 서비스들이랑은 다른 소위 "킬러 콘텐츠"가 분명히 있으실 거예요, 그 부분에 대한 것들은 조금 숨기시거나 모호하게 설명을 하시고, 다른 부분들에 집중해서, 현재의 갈등 상황이나, 문제 상황 해결 등을 위주로 설명을 하시면 동기와 풀이에 대한 전반적인 이야기를 하실 수 있을 거예요. :)오늘도 끝까지 읽어주셔서 너무나 감사합니다! 좋은 하루 보내세요.#코인원 #블록체인 #기술기업 #암호화폐 #스타트업인사이트
조회수 2992

Node 서버로 Slack 메신저 자동화하기

Overview백엔드 업무를 하면 데이터 요청과 CS문의를 자주 받습니다. 날짜만 다를 뿐 같은 유형의 문의가 대부분이죠. 결국 반복적인 업무를 효율적으로 처리할 수 있는 방법을 고민했고, 사내 메신저로 사용하는 Slack의 몇 가지 API를 사용하기로 했습니다.1. 알림봇 만들기비즈니스 로직을 만들다 보면 정해진 시간에 맞춰 작업을 해야 하는 경우가 발생합니다. Slack 메신저에 로그온한 상태에서 스케줄러를 이용해 지정한 시간에 Slack 메세지를 전송해보겠습니다.1)Slack API 유저토큰 받기Slack API에 사용할 해당 계정의 토큰을 받아야 합니다. Slack 가입 절차 및 채널 생성은 생략하겠습니다.https://api.slack.com/custom-integrations/legacy-tokens 접속합니다.Legacy tokens 메뉴에서 아래로 스크롤을 내려 토큰 생성버튼을 누릅니다.계정 패스워드를 입력하여 확인하면 토큰을 생성할 수 있습니다.생성된 토큰을 복사하여 저장합니다.2)Node.js를 이용한 알림봇 구현2-1.Node.js 설치Node.js 다운로드 해당 사이트에서 운영체제 환경에 맞는 파일을 다운받아 설치2-2.프로젝트 생성해당 프로젝트 폴더로 이동 후 명령어 실행$ npm init --yes // package.json 파일 생성2-3.Slack 연동2-3-1. slack-node 모듈 설치$ npm install slack-node --save2-3-2. 유저토큰을 이용하여 해당채널에 메세지 전송const Slack = require('slack-node'); // 슬랙 모듈 사용 apiToken = "발급받은 유저토큰"; const slack = new Slack(apiToken); const send = async(message) => { slack.api('chat.postMessage', { username: 'dev-test', // 슬랙에 표시될 봇이름 text:message, channel:'#general' // 전송될 채널 및 유저 }, function(err, response){ console.log(response); }); } send('메세지 내용'); 지정한 채널에 메시지가 발송됩니다. 하지만 이와 같은 방법은 유저 토큰이 공개 코드에 노출되기 때문에 보안이 취약할 수 있습니다. 유저 토큰이 필요 없어도 해당 채널에 URL을 생성하는 WebHooks API를 이용하여 메시지를 전송해보겠습니다.3) Incoming WebHooks APIWebHooks는 유저 토큰 대신 Webhook URL을 생성해 HTTP 통신으로 Slack 메세지를 전송할 수 있습니다. 다양한 메시지 형식을 지원하고 게시할 사용자 이름 및 아이콘 등을 통합적으로 관리할 수 있는 장점을 가지고 있습니다.3-2. Webhook URL 생성하기Slack 해당채널에서 Add an app 클릭검색필터에 WebHooks 검색Incoming WebHooks 추가채널 선택 후 Incoming WebHooks 생성생성된 Webhook URL 복사하여 저장해당채널에 생성되었는지 확인봇이름 및 아이콘등 기본 설정 변경하여 저장curl 사용 예제$ curl -s -d "payload={'text':'메세지 내용'}" "Webhook URL"Webhook URL 사용 중인 모든 메시지는 통합적으로 기본 설정이 변경된 걸 확인할 수 있습니다.다양한 형식의 메세지를 전송해보겠습니다.const Slack = require('slack-node'); // 슬랙 모듈 사용 const webhookUri = "Webhook URL"; // Webhook URL const slack = new Slack(); slack.setWebhook(webhookUri); const send = async(message) => { slack.webhook({ text:"인터넷 검색 포털 사이트", attachments:[ { fallback:"링크주소: ", pretext:"링크주소: ", color:"#00FFFF", fields:[ { title:"알림", value:"해당링크를 클릭하여 검색해 보세요.", short:false } ] } ] }, function(err, response){ console.log(response); }); } 다양한 형태의 메시지를 전송할 수 있습니다.4) Schedule 연동이제 스케줄러를 이용하여 지정한 시간에 메세지를 전송해보겠습니다.4-1. node-schedule 모듈 설치node-schedule는 Node.js 작업 스케줄러 라이브러리입니다.$ npm install node-schedule --savenode-schedule 코드 작성const schedule = require('node-schedule'); // 스케줄러 모듈 사용 // rule-style 사용 var rule = new schedule.RecurrenceRule(); rule.dayOfWeek = new schedule.Range(3,4); rule.hour = 19; rule.minute = 50; schedule.scheduleJob(rule, function(){ console.log('rule 방식'); }); // cron-style 사용 schedule.scheduleJob('50 19 * * *', function(){ console.log('cron-style 방식'); }); 취향에 맞는 스타일로 사용하면 됩니다.5) 지정 시간에 메세지를 전송하는 알림봇을 작성해보겠습니다.const Slack = require('slack-node'); // 슬랙 모듈 사용 const schedule = require('node-schedule'); // 스케줄러 모듈 사용 const webhookUri = "Webhook URL"; // Webhook URL const slack = new Slack(); slack.setWebhook(webhookUri); const send = async(message) => { slack.webhook({ text:message, attachments:[ { fallback:"구글드라이브: ", pretext:"구글드라이브: ", color:"#00FFFF", fields:[ { title:"[알림]", value:"해당링크로 접속하여 작성해 주세요.", short:false } ] } ] }, function(err, response){ console.log(response); }); } schedule.scheduleJob('5 19 * * *', function(){ send('업무보고 보내셨나요?'); }); 업무보고 시간을 미리 알려주는 알림봇2. 대화봇 만들기업무 문서는 주로 구글 독스와 같은 온라인 문서로 관리하고 있습니다. 하지만 매번 구글 드라이브에서 문서를 찾는 건 정말 귀찮은 일입니다. 번거로운 건 딱 질색입니다. Slack API를 이용해 관련된 키워드를 입력하면 링크 주소를 바로 받을 수 있는 대화봇을 만들어 보겠습니다.1) Slack API Bots 토큰 받기Slack API에 사용될 Bots 토큰을 받아야 합니다.https://{App Name}.slack.com/apps 에 접속합니다.Bots 추가Bots Api 토큰을 복사해 저장합니다.설정한 봇이름으로 Apps 영역에 자동으로 추가됩니다.2) 구글독스 대화봇 코드 작성2-1. botkit 모듈 설치$ npm install botkit --save2-2. 코드 작성const botkit = require('botkit'); // 봇 모듈 사용 const Slack = require('slack-node'); // 슬랙 모듈 사용 const controller = botkit.slackbot({ debug: false, log: true }); const botScope = [ 'direct_message', 'direct_mention', 'mention' ]; controller.hears(['업무보고'], botScope, (bot, message) => { bot.reply(message, '업무보고 링크주소'); }); controller.hears(['가이드', 'guide', '튜토리얼'], botScope, (bot, message) => { bot.reply(message, '가이드 링크주소'); }); controller.hears(['api', '명세서'], botScope, (bot, message) => { bot.reply(message, 'api명세서 링크주소'); }); controller.hears(['일정', '일정관리'], botScope, (bot, message) => { bot.reply(message, '일정관리 링크주소'); }); controller.hears(['비품', '비품정리'], botScope, (bot, message) => { bot.reply(message, '비품관리 링크주소'); }); controller.spawn({ token: '발급받은 봇 토큰' }).startRTM(); 지정한 키워드를 입력하면 해당 링크가 수신 됩니다.3) 데이터문의 대화봇 코드 작성데이터 요청 시 결과 데이터를 보내주는 대화봇을 만들어 보겠습니다. 일단 먼저 데이터문의 전용 Bots을 생성합니다.3-1. Python 연동 요청한 데이터는 Mysql 데이터를 조회해서 전송합니다. 그러면 Mysql 을 연동해야겠죠? Node.js에서도 직접 mysql 연결할 수 있지만, 기존 프로젝트가 Python으로 구현되어 있어 Python을 실행해 필요한 데이터를 추출해보겠습니다.3-2. python-shell 모듈 설치Node.js에서 Python 실행가능하도록 모듈을 설치$ npm install python-shell --save3-3. Mysql Sample Table3-4. 회원테이블에 저장된 가입일시 기준으로 몇일전에 가입한 회원을 추출하여 전송하는 코드 작성해 보겠습니다.const botkit = require('botkit'); // 봇 모듈 사용 const Slack = require('slack-node'); // 슬랙 모듈 사용 const ps = require('python-shell'); // 파이썬 쉘 모듈 사용 // 몇일 전 날짜 구하기 function getDaysAgo(dayNo = 0) { let nowDate = new Date(); let tempDate = nowDate.getTime() - (dayNo * 24 * 60 * 60 * 1000); nowDate.setTime(tempDate); let getYear = nowDate.getFullYear(); let getMonth = nowDate.getMonth() + 1; let getDay = nowDate.getDate(); if (getMonth < 10 xss=removed xss=removed xss=removed xss=removed xss=removed xss=removed xss=removed xss=removed xss=removed xss=removed xss=removed xss=removed xss=removed xss=removed xss=removed> 3-5. Python 코드 작성 # -*- coding: utf-8 -*- import sys import pymysql // mysql 접속 db = pymysql.connect('hostname', user='', passwd='', db='', charset='utf8') cursor_db = db.cursor() exe_query = "SELECT MEMBER_NAME FROM MEMBER_INFO WHERE MEMBER_REGIST_DETE >= '{}' ORDER BY MEMBER_NO ASC ".format(sys.argv[1]) cursor_db.execute(exe_query) all_rows = cursor_db.fetchall() for idx, row in enumerate(all_rows): print(row[0])     지정한 며칠 전에 가입한 회원 이름이 전송됩니다.   로그도 정상적으로 출력됩니다. 3. Node.js 프로세스 관리를 위한 pm2 모듈 설치 Node.js 는 비동기 I/O를 지원하며 단일 스레드로 동작하는 서버입니다. 비동기식 방식이지만 처리하는 Event Loop는 단일 스레드로 이루어져 있어 처리 작업이 오래 걸리면 전체 서버에 영향을 줍니다. 그래서 pm2를 이용해 프로세스별로 상태를 관리해야 합니다. 1) pm2 모듈 설치$ npm install pm2 -g2) 자주사용하는 pm2 명령어 pm2 list -> 실행중인 프로세스 확인pm2 start {node 파일} -> 시작pm2 stop {id or App name} -> 중지pm2 delete {id or App name} -> 삭제pm2 show {id or App name} -> 상세정보pm2 restart {id or App name} -> 재시작pm2 kill -> pm2 종료pm2 logs {id} -> id 앱의 로그 확인 3) pm2 실행화면$ pm2 start bot.js   프로세스별로 앱 이름, 버전, 상태, cpu 및 memory 사용량이 표시됩니다.$ pm2 show 0   해당 프로세스의 상세 정보를 확인할 수 있습니다. Conclusion 지금까지 Node.js 로 유용한 Slack 메신져 API를 알아봤습니다. 반복적인 업무를 하나씩 줄이다 보면 분명 일의 능률을 높아집니다. 하지만 무분별한 자동화는 서버의 부하를 증가시키기 때문에 꼭 필요한지 확인하고 선택하길 바랍니다. 오늘은 여기까지 글곽정섭 과장 | R&D 개발1팀kwakjs@brandi.co.kr브랜디, 오직 예쁜 옷만  
조회수 1985

홈클의 흥망성쇠

*2016년에 작성된 글입니다2016년 4월 6일 홈클 서비스를 종료했습니다. 그리고 정말 많은 분들의 연락을 받았습니다. 그동안 주신 과분한 관심에 감사드리고, 그동안 큰 도움을 받았으나 미처 연락을 못 드린 분들께 죄송한 마음을 전합니다. 신변이 정리되고 연락드리도록 하겠습니다.서비스 종료 후, 그냥 숨기보다는 어떠한 이유로 서비스를 종료하게 되었는지를 명확히 밝히고, 홈클을 운영하면서 느낀 점을 간략하게 정리해서 향후 O2O 서비스를 준비하시는 분들에게 미약하게 도움이 되고자 홈클 관련 마지막 글을 쓰기로 했습니다.  (밑에부턴 반말 이해해주세요.)Cash flow is King'와트니 법칙'이라는 말이 요즘 스타트업계에서 종종 회자된다. 펀딩 시장이 얼어붙으면서 영화 마션에서 영감을 받은 단어이다. 더 이상 외부 자금에 의존한 사업은 존속하기 어렵고 자생력을 키워야 한다는 뜻이다.영화에서 마크 와트니는 외부로부터 식량을 조달받을 수 없어지자 '온실'을 만들어 감자를 재배하고 생산가능량(revenue)과 자신이 먹는 양(burn rate)을 계산해서 며칠이나 버틸 수 있는지 계산하는 장면도 나온다.나는 원래 외식사업을 했었고, 수익구조와 현금흐름에 목숨 거는 '쫀쫀한' 사장님이었다. 하지만 '스타트업'은 다르게 운영되어도 괜찮다고 생각했다. 당장 돈이 벌리지 않아도 운영비는 투자금으로 충당하고, 시장 선점과 '이쁜' 그래프를 만들고자 했다. Operation에서 cash가 나오지 않는 O2O 비즈니스는 회사의 운명을 외부 상황에 맡기게 된다는 사실을 애써 외면했다. 마일스톤을 달성하고 이를 기반으로 투자를 받는 것을 공식처럼 여겼다. 확실시되던 투자가 미끄러지고, 대기업 진출 소식까지 전해지면서 외부 상황은 최악으로 치닫았다. 뒤늦게 전략을 수정하고 BEP를 맞추기 위해 '온실'을 만들어 보려 했으나 온실을 만들 재원조차 남지 않은 상황이 생각보다 훨씬 더 빨리 왔다. 적어도 O2O 비즈니스에서 일단 시장을 선점하고 그 기반으로 나중에 뭘 해보겠다는 건 너무 어렵다. 그리고 여러 O2O 비즈니스를 병렬식으로 연결해서 돈을 벌겠다는 건 정말 꿈같은 이야기이다. (불가능한 건 아니다.)"일단 돈이 안되면 똥이야. 똥을 모으면 다이아몬드가 되냐? 똥이 모이면 x라 큰 똥이 된다."청소업체 모 대표님의 말이 기억에 남는다.'존버 정신'의 필요(충분) 조건아마존의 매출, 수익 그래프위 그래프를 보면 뭐가 느껴지는가? 나는 답답한 성장 단계에서의 지루함을 끝까지 버텨낸 제프 베조스의 위대함을 느낀다. 그는 95년 창업해서 10년 가까이 존x 버텼다. 10년 동안 흔들림 없이 아마존을 이끈 그의 인내심과 끈기 그리고 미래에 대한 확신은 나 같은 범인이 범접하기에는 너무나도 위대해 보인다. 아마존의 97년도 주주서한을 읽어보았는가? 나 같은 일개 스타텁 대표는 그저 그의 위대함에 감탄할 수 있을 뿐이다.https://sttora2.net/30175564371 (97년 아마존 주주서한)나 같은 범인이 제프 베조스의 인내와 끈기를 발끝만큼이라도 쫓아가려면 최소한 나에게 맞는 일, 내가 즐거운 일, 내 일생의 mission을 clear 할 수 있는 일을 해야 한다.에어비앤비 호스트 데이에 부스로 참가한 홈클홈클 서비스는 나에게 어떤 의미였을까?호텔 비즈니스가 궁금했던 나는 에어비앤비 호스팅을 몇 개 시작했다. 오잉? 매달 풀 부킹이었다. 근데 빨래, 청소가 죽을 만큼 하기 싫었다. 그래서 홈클은 에어비앤비 청소 서비스로 탄생했다. 아이러니하게도 청소가 죽을 만큼 싫었지만 홈클을 만들고 근 1년 동안 청소만 생각하면서 살아왔다. 가정집으로 확장을 하고 매출이 늘면서 VC분들에게 피칭도 할 기회가 생겼다. 하지만 솔직히 가사도우미 업에 대한 가슴 떨림이나 사명감은 없었다. 대신 어렵고 모두가 기피하는 비즈니스에서 큰 획을 그어보자는 결연한 의지가 있었다. 힘든 외부 상황이 계속되니 사명감없는 결연한 의지는 봄날 눈녹듯 사르륵 녹아내렸다.세금 & 법률 이슈1) 법률문제가사도우미는 직업안정법의 선급금 금지조항의 영향을 받는다. 이 법에 의하면 중개업자는 가사도우미의 임금을 줄 수 없다. 실 서비스 이용자가 임금을 줘야 한다. 한 번의 카드결제로 도우미 배정을 하는 경우 선급금 금지법안을 피할 수 없다. 물론 꼼수는 있다. 고객의 결제 금액이 회사 통장에 들어오기까지는 3~5일 정도 소요된다. 이 기간 동안 가사도우미의 가상계좌에 먼저 해당 임금을 이체하고 청소가 끝난 후 정산할 수 있는 시스템을 구축하면 된다. 하지만 근본적인 해결 방안은 가사도우미를 정규직원으로 고용하는 것뿐이다. 근데 계산을 몇 번 돌려 보면 사대보험을 지급하고는 답이 안 나온다. razor thin margin....2) 세금 문제직업상담사 2급을 따고 유료직업소개업으로 등록하면 부가세가 발생하지 않는다. (면세사업) 아직 유료직업소개업 등록하고 카드 결제 시 카드사 명세서에서 부가세가 0으로 찍혀나오는 건 확인하지 못했다. 가사도우미분들에게는 3.3%를 제외하고 세무사 사무실에는 사업소득으로 신고하면 제일 깔끔하다. 그런데 유료직업소개소를 운영할 때는 직업안정법의 선급금 금지 법안을 지켜야 하는데 3.3%를 떼고 서비스 이후에 임금으로 지급하는 건 명백한 선급금 금지 법안 위반이다.법률적 검토도 안 해보고 왜 시작했냐?고용노동부에서 발행하는 질의회신서에서는 '강박이 없고 예약 내용을 보증하는 예약금 형식의 선급금은 지급 가능하다'라고 나와 있었다. 법안과 상충되는 내용을 고용노동부에 몇 차례 질문을 하였으나... 그 누구도 확인을 해주지 않았다. 심지어 해당 질의 회신서를 쓰신 분은 퇴사했다고... 질의회신서도 맞긴 하나 아무튼 어떠한 형식의 선급금은 절대 불허한다라는 최종 답변을 받았다. 읭?..3줄 요약1. 수익화 실패.2. 외부 상황이 힘들 때 버틸 요인이 부족.3. 세금&법률 리스크.4. 민감한 문제이므로 삭제이렇게 실패 요인만 쓰고 글을 마무리 하기는 아쉬워 쑥스럽지만 홈클이 잘한 점도 한번 써볼라고요.실행력 (hustle)보통 서비스 공급자를 뽑아서 교육시키고 현장에 배치하면 되지 않냐고 한다. 그렇게만 하면 어마어마한 컴플레인 후폭풍을 경험하게 될 것이다. 단순한 연결, 본질이 없는 growth hacking은 가사도우미 업에서는 통하지 않는다. Uber 기사는 A지점에서 B지점까지 데려다만 주면 되는 반면, 가사도우미는 집에 들어가서 수십 가지 접점 포인트를 만들어 낸다. 게다가 고객의 집은 모두 제각각이고, 원하는 사항과 기대치는 천차만별이다. 홈클 매니저의 서비스와 고객의 기대치 사이의 간극은 홈클 팀원들의 시간과 열정을 갈아 넣어서 메꿀 수 있었다."정답은 항상 현장에 있다."반년 동안 현장을 누비고 수십 명의 고객과 매니저를 인터뷰 한 끝에 웬만큼 쓸만한 서비스 매뉴얼을 만들 수 있었고, 매니저를 교육할 수 있는 역량을 갖추게 되었다. 평소에 본인집 청소도 잘 안 하던 홈클 팀원들의 고생은 이루 말로 표한할 수 없을 정도였다. ㅠㅠ홈클 팀원이 직접 나갔던  첫 서비스 현장호기롭게 시작한 서울 전 지역 서비스는 재앙이었다. 몰려드는 주문에 모두들 멘붕에 빠졌다. 하지만 결국 우리는 해냈다. 가사도우미가 없는 지역에서 주문이 들어오면, 고객에게는 아직 해당 매니저가 교육 중이라고 양해를 구하고 1주일의 유예기간을 만들어냈다. 그리고 그 기간 동안 무슨 수를 써서라도 해당 지역 매니저를 뽑고 교육해서 배정을 완료했다. 일종의 buffer를 만들고 서울 전역으로의 주문수를 차근차근 늘려 나갔다.[고객 구인 - 매니저 구인 - 매니저 교육 - 업무 배정] 업무를 꾸역꾸역 계속하면서, operation 고도화는 한 번도 소홀하게 하지 않았다. 홈클 만큼은 기존 업체들과 비교해서 명확한 서비스 차별화를 이뤄내고 싶었다. 홈클 없인 못산다는 팬도 생겨나고, 매출은 매월 30%씩 늘었다. 월 천 건을 돌파하고, 우리가 한 땀 한 땀 뽑고 교육한 매니저는 200명을 넘어섰으며, 정기 서비스 재구매율을 85%까지 돌파했다. 그리고 돈은 남지 않았다.중간중간 환희의 순간들이 있었지만, 대부분 고통스럽고 정신적, 육체적으로 힘들었다. 수백명의 인력을 관리한다는 건 상당한 스트레스를 동반했다. 뱃살과 흰머리가 부쩍 많이 늘었다.  홈클 서비스 종료하기 직전에 올라온 마지막 두 리뷰를 보니, '우리가 진짜 열심히 노력했었구나' 라는게 실감이 나면서 코끝이 찡해졌다.마지막 날 무능한 대표에 빙의되어 미안한 마음에 홈클팀원들에게 그동안 너무너무 고생이 많았고, 너무너무 고마웠다는 말을 하지 못한것이 맘에 걸린다. ㅠㅠ (내맘 다 알죠?)홈클 관계자 여러분 그동안 정말정말 감사했습니다. 수고했구요. 어딜가나 성공할겁니다.Good- Bye 홈클#삼분의일 #매트리스 #홈클 #팀원 #CEO #대표 #고민 #성장 #인사이트 #경험공유

기업문화 엿볼 때, 더팀스

로그인

/