스토리 홈

인터뷰

피드

뉴스

조회수 1892

문돌이가 어설프게 디자이너 대타로 일하는 법

지난번 '문돌이가 개발자랑 일할만큼만 프로그래밍 익히기'에 이어 PM 시리즈의 일환으로 이번에는 PM으로서 디자이너 역할을 대신할 수 있는 방법론에 대해 논해보고자 한다. 아 우선 두가지 미리 가드 치고 들어가고 싶은게 있는데 첫째, 여기서 PM이라 함은 Product Manager, 즉 본인이 직접 자식처럼 키우고 가꾸고 있는 프로덕트가 있고 이를 잘 살려나가기 위해 개발자, 디자이너, 마케터 등등 다양한 분야의 전문가들과 함께 일하는 사람들을 의미한다는 것과, 둘째, 이 글의 요지는 '디자이너가 아직 없어서...' PM이 어설프게 디자이너 역할을 대신할 수 있는 방법론이지 'PM이 디자이너 제끼고 디자이너 되는 법'이 아니라는 것이다.가장 이상적인 스타트업 팀은 아마도 3명의 팀원이 개발자1, 디자이너1, 하려는 분야 전문가1 이렇게 이루어진 팀이겠지만 (또는 기술스택이 높은 분야면 개발자2, 디자이너1) 이렇게 이상적으로 디자이너를 품어서 팀 꾸리고 시작할 수 있는 스타트업이 많지 않을거라 생각한다. 특히 웹/모바일 분야의 제품을 구상하고 있는 초기 스타트업이라면 당장 프로토타입이라도 만들어서 런칭하는게 중요하기 때문에 아무래도 정식 디자이너까지 꾸려서 팀빌딩 하는건 많이 부담스러울 것이다.따라서 (내 경우처럼) 높은 확률로 당신의 스타트업에는 개발자(들)와 (디자인 해본적 없는) 기획자만 있게 될 것이고, 이 때 가장 중요하게 터지는 문제가 바로 '개발자가 참고해서 개발할 수 있는 디자인물과 디자인파일들이 없다' 이다. 사실 이런 경우 보통 만렙 개발자들은 본인들이 와이어프레임만 보고도 알아서 웹사이트 돌아다니면서 이미지 앉히고 아이콘들은 폰트어썸 같은 라이브러리에서 그럴싸한거 적용하고 메뉴바나 네비게이션 같은것도 그럴싸한 라이브러리 찾아서 적용해 버림으로써 해결하기 때문에 크게 문제될 것은 없지만, 아마도 속으로는 이렇게 생각하고 있을 가능성이 크다. '아니 도대체 저xx가 하는일은 뭐야?!'당신 개발자가 속으로 이렇게 생각하고 있을수도 있다...자, 이제 본론으로 들어가서, 그러면 아직 디자이너가 없는 팀에서 PM이 디자이너 역할을 대신할 수 있는 방법론에 대해 논의해 보자. 본 방법론은 '모바일 앱'을 디자인하는걸 전제로 작성하였고, 이 방법론이 성공적이기 위해서는 다음의 전제조건들이 필요하다.1. 나는 와이어프레임을 많이 그려봤고, 대략적인 앱의 인터페이스 구성 및 흐름에 대해 어느정도 알고 있다.2. 나는 맥북을 가지고 있다.3. 나는 $99짜리 프로그램 구입할 만한 돈이 있다.Step 1. 와이어프레임 만들지 말고 기능플로우 차트만 만들어서 개발자랑 상의하기웹/모바일쪽 제품 담당하는 PM들이 가장 많이 하는 일들이 아마도 와이어프레임을 아주 멋있게 그려서 파워포인트 (또는 키노트)에 멋드러지게 얹은 다음에 개발자와 디자이너에게 전달하는 일일 것이다. 그런데 사실 자세한 와이어프레임은 1/내가 대규모 조직에 있어서 많은 사람들에게 동일한 정보를 전달해야 하거나 2/누군가에게 컨펌을 받아야 해서 뭔가 보여줄게 있어야 하는경우들이 아니라면 위에 언급한 스타트업에서는 별로 필요하지 않다. 오히려 개발자 앉혀놓고 종이에다가 쓱쓱 그려서 보여주면 10분이면 끝날일을 하루 걸려서 파워포인트에 그리고 있는 시간이 더 아까울 뿐이다. (어차피 개발자들은 핵심만 보기 때문에 저 기능플로우가 종이에 끄적거려져 있던 멋있게 파워포인트에 그려져 있던 아무 차이도 없고 중요하게 생각치도 않는다.)따라서 1분1초가 아까운 스타트업에서 저거에 시간낭비하지 말고 그냥 슬랙이나 에버노트에 대충 기능플로우 차트만 만들어서 개발자랑 바로 상의하고, 기술적으로 된다 안된다 시간낭비다 등등 의견 수렴하고 다시 수정해서 보여주고... 요런 식으로 코어 기능들과 그 흐름을 빠르게 결정하는게 훨씬 효율적이다. 개발자와 상의할 기능플로우 차트에는 보통 다음 내용들이 들어간다.1. 기능 섹션과 해당 섹션의 세부기능들 정의 - 기능 섹션이라 함은 유저가 앱을 사용하는 여정상에 각각 큰 덩어리를 정의해 주는것을 말한다. 예를들면 온보딩, 회원가입, 메인화면, 유저 프로필 등등 큰 덩어리를 정의하고 각 섹션에 필요한 세부 기능들을 나열하는 작업이다. 2. 코어 기능과 추가 기능의 구분 - 프로토타입 단계에서 요 기능이 없으면 우리 앱이 제시하는 핵심가치 제공이 절대로 불가능하다고 생각되는 진짜 꼭 필요한 기능만 골라낸다. 뭐 있으면 좋거나 핵심가치 제공에 도움이 되는 기능들이지만 이게 없다고 해서 앱을 제대로 사용하는게 아예 불가능하다..가 아닌 기능 요건들은 다 쳐내서 서 프로토타입 런칭 이후에 순차적으로 적용시킬 기능들을 나열하고 스케줄링 한다.3. 서비스 플로우 (선택) - 와이어프레임 그리듯이 순차적인 서비스 흐름도를 그리는건데, 개발자와 상의하기 전에 종이에 미리 그려서 가져가도 상관없지만 개인적으로 위에 1, 2번만 잘 정해서 가져가면 어차피 개발자랑 상의하면서 이건되고 이건 안되고 하면서 다 작살이 나기 때문에 3번을 미리 그려갈 필요가 없다... 그냥 1, 2번을 개발자랑 상의해서 컨펌한 후에 3번을 같이 머리 맞대고 (종이에) 그리면 된다 (파워포인트 제발..여기다 그리지 말아줘..).이런 현란한 와이어프레임 그리고 있을 시간에 얼른 개발자랑 기능요건만 정해서 상의하자. Step 2. 디자인 아카이브에서 맘에드는 화면 매칭하기위에서 개발자랑 머리 맞대고 대충 종이에 서비스 플로우 그렸다면 이제 본격적인 디자이너스러운 업무의 시작이다. 각 단계별 화면마다 우리가 벤치마킹 할(이라고 적고 '적당히 베끼기 쉬운'이라고 읽는다) 참고화면들을 디자인 아카이브 사이트들을 열심히 돌아다니면서 수집한다. 디자인 아카이브는 정말 많은데 여기서는 필자가 자주 쓰는 사이트 3군데만 소개하도록 한다.1. CollectUI.com고퀄의 모바일/웹 관련 디자인, 인터렉션들이 각 기능섹션별로 정리된 아카이브 이다.콜렉트UI는 아까 얘기한 각 기능섹션 또는 유저태스크 별로 필요한 화면 디자인이나 인터렉션 디자인들이 잘 정리된 아카이브인데, 그 하나하나 퀄리티가 매우 뛰어나다. 예를들어서 온보딩 관련 디자인을 찾아보고 싶으면 왼쪽 사이드바에서 onboarding을 검색해 보면 해당 메뉴가 나오고 수 많은 앱들의 온보딩 화면들이 모아져 있다. 주로 아이폰 위주이긴 한데 가끔 안드로이드에 최적화된 디자인도 찾을 수 있다.2. Behance의 Interaction Gallery전 세계의 디자이너들이 작업한 코퀄의 앱/웹 디자인 아트워크만 모아놓은 갤러리이다.비핸스는 비전공자들도 많이 찾아보는 유명한 사이트가 되었지만, 이 갤러리를 아는 사람들은 드물거라 생각한다. 원래 옛날에 앱디자인갤러리 (http://www.appdesignserved.co/)라는 사이트가 비핸스에서 저런 고퀄 디자인 아트워크만 묶어서 보여줬었는데 어도비에서 비핸스로 통합시킨 것 같다. 아무튼 전 세계의 잘나가는 디자이너들의 수려한 아트워크를 볼 수 있는 갤러리인데, 여기서 내 앱과 기능요건이 유사하거나 비슷한 분야에 있는 앱 위주로 아트워크를 찾아서 클리핑 한다.3. 핀터레스트 검색핀터레스트는 검색어가 중요하다.핀터레스트를 모르는 사람은 없어도 내 주변에 '핀터레스트 하고 있어'라고 말하는 사람은 한국에서 본 적이 없을 정도로 아직 우리나라 사람들한테는 생소한 사이트 이다. 여기는 사람들이 스크랩 하고 싶은 자료들을 마치 냉장고나 칠판에 핀 꼽아서 수집해 놓듯이 모아놓는 사이트인데 역시 디자이너들이 많이 쓴다. 내가 만일 앱 온보딩 디자인을 여기서 찾고자 하면 Mobile app onboarding라고 치고, 특정 버전의 온보딩만 검색해 보고자 하면 app onboarding iOS, 또는 app onboarding android 이런 식으로 검색하면 된다.Step 3. 스케치 프로그램 구입하기이제부터 가장 중요한 단계다. 내가 디자이너 대타를 하기로 마음 먹었다면, 그리고 당신이 맥북 유저라면 (혹시 맥북 유저가 아니면 포토샵으로 해야 하는데 이건 벡터기반이 아니여서 어렵다.. 그냥 이 기회에 미래를 위해 투자하는셈 치고 맥북 하나 장만하심이 어떨지..) 고민하지 말고 스케치라는 프로그램을 구입하도록 한다. 가격은 A사처럼 치사하게 월별 과금방식이 아닌 쿨하게 한번에 $99이다. (혹시 맥북의 앱스토어에서 구입하면 더 비쌀수도 있다. 애플의 치사한 수수료 때문에.. 꼭 웹사이트 들어가서 구매하길 바람)스케치는 비전공자의 벡터기반 디자인작업을 마법처럼 쉽게 만들어준다. 고민하지 말고 구입하자.보통 디자인 작업은 벡터로 이루어지는데 이는 기기마다 화면 사이즈가 다 제각각인지라 이를 픽셀 기반으로 작업해 버리면 화면 사이즈를 키울때 마다 깨지게 된다. 벡터로 작업하면 적합한 사이즈로 손실 없이 export가 가능하다. 어도비로 이 작업을 하려면 일러스트레이터를 만질 줄 알아야 하는데, 솔직히 우리가 정식 디자이너 될것도 아니고 그냥 임시로 대타 하는건데 저걸 월별로 돈내면서 설치해서 또 겁나 복잡한 인터페이스 공부하면서 낑낑대느니 난 고민하지 말고 스케치를 사용할 것을 추천한다. 스케치는 일단 인터페이스가 웹/모바일 디자인하는데에 특화되어 있고 일러스트레이터는 그래픽 디자인, 아트 디자인, 일러스트 디자인 등등 훨씬 더 복잡한 세계의 디자인까지 커버해야 하는 프로그램이기에 당연히 인터페이스가 스케치보다 10배는 복잡하다.하지만, 역시 우리는 비전공자이기 때문에 스케치가 아무리 쉽다 한들, 여기서 뭘 어떻게 작업을 시작해야할지 생각하면 막막해 질게 뻔하다. 이 방법론은 step 4 부터 자세하게 보여줄테니 겁먹지 말자.Step 4. 컬러 선택 및 심플한 앱 로고 디자인혹시 디자인 전공자가 보기엔 말도 안되는 얘기일수는 있으나... 필자의 개인적인 생각으로 모든 디자인의 시작은 메인 컬러 잡는것 부터라고 생각한다. 즉, 내 앱에서 메인으로 쓸 컬러를 일단 정하고 나면 향후 디자인은 그 한 컬러를 중심으로 통일해서 쓰기만 하면 결과물이 제법 나쁘지 않게 나오기 때문이다. 보통 비전공자들의 디자인이 패망하게되는 대표적인 이유가 메인컬러를 여러개 써서 촌스러워 보이는 건데 사실 본인들은 내 디자인이 왜 촌스러워 보이는지 잘 모른다. 예를 들어 보자. 메인 컬러는 한개만 써야 촌스러워 보이지 않는다.여기 두개의 컬러 조합이 있다. 일단 딱 봐도 1번이 2번에 비해 10배는 깔끔한 느낌이다. 물론 디자인 전공자들은 이를 이론적으로 구분 가능하다. (배색-보색 관계가 어쩌고 저쩌고) 하지만 우리 비전공자는 그런거 모르고 느낌으로 해야 하기 때문에 이런식의 접근이 필요하다.1. 메인컬러라 함은 우리가 보기에 눈에 띄는 컬러를 말한다. - 위의 예시에서 당연히 오렌지 색은 엄청나게 눈에 띄는 색이니까 메인컬러, 2번 디자인의 네이비색도 눈에 띄니까 메인컬러, 역시 2번 디자인의 어설픈 초록색도 눈에 띄니까 메인컬러이다. 하얀색, 회색계열은 눈에 띄긴 하지만 보색관계에 의해 눈에 띄는 거니까 그냥 메인컬러로 아예 생각하지 말자.2. 메인컬러 2개 이상 쓰지 말자. - 2번 디자인처럼 메인컬러를 여러개 써버리면 우리같은 비전공자들이 컬러 배치할 경우 99.9%의 확률로 촌스러워 진다. 나중에 앱 기능이 복잡해 지면 더 점입가경이다. 따라서 메인컬러는 반드시 한개로만 가고 나머지는 메인컬러에서 색을 좀 빼서 색을 만들거나 흰색, 회색 계열로 가는게 제일 안전하다.자, 그러면 메인컬러를 어디서 어떻게 결정하지? 이를 위해 내가 자주 쓰는 컬러 사이트들 2곳을 소개한다.1. ColorHunt.co각 컬러 배색의 윗 줄이 메인 컬러 들이다.컬러헌트는 다양한 색깔 조합을 스펙트럼으로 구성해서 모아논 컬러 아카이브 이다. 여기서 밑 색깔들은 볼거 없이 맨 윗띠의 메인컬러들만 보면서 색깔을 골라서 헥스코드를 기록해 놓는다. (헥스코드는 보통 #2794EB 요런식으로 적혀있는 코드를 말한다) 'hot' 이나 'popular' 탭을 누르면 인기 많은 색들을 볼 수 있다.2. Colovely 스페이스를 눌러가면서 랜덤하게 컬러를 보여준다.여기는 컬러헌트에서 색 찾기도 귀찮거나 잘 모르겠을때 들어가서 그냥 스페이스바를 눌러대면 랜덤하게 컬러를 제안해 주는 사이트 이다. 어떤 알고리즘으로 색을 추천해 주는지는 모르겠지만 그냥 스페이스 계속 눌러대다 보면 제법 끌리는 색깔 많이 보여준다. 맘에드는 색이 있으면 역시 헥스코드를 기록해 놓는다.이렇게 메인 컬러를 결정했으면 다음 단계는 심플한 로고를 만드는건데, 만일 본인이 의기양양하게 로고를 디자인해 보고 싶으면 말리진 않겠으나 로고 디자인의 세계는 정말 심오한 세계이기 때문에 괜히 건들지 말자. 그냥 내가 하는 방법대로 해보도록 한다.1. 그냥 깔끔해 보이는 폰트에 메인컬러를 적용해서 만들기위의 문돌이닷컴의 예를 들어 보자. 당신이 메인컬러를 저 오렌지색으로 결정했다면 가장 무난한 로고 배치는 오렌지색을 백그라운드컬러로, 폰트컬러는 하얀색으로 하는 것이고, 나눔고딕이나 산돌고딕과 같은 무료 폰트를 활용해서 앱 로고를 저런식으로 심플하게 만들어 볼 수 있을 것이다.메인컬러를 배경색으로, 폰트를 흰색으로 배색하는것 만으로도 깔끔한 앱 로고가 나온다.2. Dribbble에서 벤치마킹(이라고 쓰고 베낀다고 읽는다) 하기드리블은 아까 소개한 비헨스같은 디자인 아카이브인데, 주로 그래픽 디자인이 단컷으로 모여있는 아카이브이다. 여기에서 simple logo, 또는 simple app logo라고 치면 참고할만한 디자인이 많이 검색된다. 최대한 타이포크라피 중심의 심플한 디자인을 참고하여 본인의 앱 로고를 디자인 해 보도록 한다.드리블에서 최대한 심플한 앱 로고를 찾아서 벤치마킹 해본다.Step 5. 스케치 디자인 컴포넌트 및 아이콘 아카이브 활용하기자 이제부터 본격적인 앱 스크린 디자인 시작이다. 이제 메인컬러도 선택 했고, 앱 로고도 만들었지만 역시 비전공자 입장에서 어디서부터 시작할지 막막할 것이 뻔하다. 이를 위해 준비한 비장의 무기가 있다. 바로 스케치로 디자인한 파일들을 무료로 쓸 수 있게 해주는 아주 감사한 스케치 디자인 컴포넌트 아카이브들 두 군데를 소개하겠다.1. Sketch App Sources제법 오래된 아카이브로 수 많은 스케치 디자인 파일을 무료로 다운받을 수 있다.2. Sketch Repo생긴지 얼마 안된 사이트이지만 모던하고 세련된 디자인들이 많이 올라온다. 역시 무료.위 2개의 사이트에서 UI kit, app design 등의 검색어를 입력하면 아예 필요한 앱 화면이 미리 디자인 된 무료 UI kit 파일을 다운받을 수 있다. 여기서 중요한건 다음과 같은 기준에 부합하는 파일을 다운받아야 하는 것이다.1. 이미지 배경이 아닌 단색 위주의 배경으로 구성되어 있고 메인컬러를 한개만 쓴 것2. 내가 하려는 앱과 유사한 분야의 UI kit. (예를들면 메신저 앱을 개발할 거면 메신저 킷)3. 메뉴바 구조가 일반적이거나 자연스러운 것내가 다운받은 뉴스피드 관련 앱 UI kit이다. 단색위주의 평이한 메뉴 구조로 디자인 되어 있다.본격적인 디자인을 하기 전에 개발자에게 메인이 되는 스크린 사이즈를 물어보도록 하자. iOS를 예로 들어보면 어떤 개발자는 iPhone 6 plus의 큰 화면 기준으로 디자인해서 컨스트레인을 좁혀나가는 방식을 선호하는 개발자가 있고, 반대로 iPhone 5의 작은 화면 기준으로 스페이스를 넓혀나가는 방식을 선호하는 개발자도 있다. 이에 맞추어 아트보드의 스크린 사이즈를 결정하도록 한다. 스케치는 친절하게도 아트보드를 클릭하면 기기에 맞춘 아트보드 스크린 사이즈가 이미 선택되어 있으니 클릭만 하면 된다.스케치에는 이미 기기별로 아트보드 사이즈가 세팅되어 있어서 선택만 하면 된다.이제부터 마법을 부려보자. 방금 다운받은 UI kit을 우선 위에서 선택한 스크린 사이즈에 맞추어 크기를 바꿔 준다. 이때 주의할 것은 각 스크린의 폴더를 전체를 잡아서 크기를 변경해 주어야 비율대비 변경이 가능하다. (마치 파워포인트에서 각 요소를 그룹으로 묶어서 크기를 변경해 주어야 깨지지 않고 비율대비 변경이 가능한 것과 같은 원리이다.) 위의 킷은 메인컬러를 붉은색 하나만 쓴 것을 알 수 있다. 저 부분을 모두 아까 우리가 정한 오렌지색 계열의 메인컬러로 바꾸고, 불필요한 요소는 삭제하고 컨텐츠를 내가 하려는 컨텐츠로 변경해 준다. 또한 크기를 변경하면서 정렬이 흐트러 진 것도 다시 맞춰준다.메인컬러 하나만 바꿔도 느낌이 확 다르다.위의 UI kit은 iOS라기 보다는 안드로이드에 어울리는 디자인이다. 특히 하단의 탭메뉴바가 지나치게 안드로이드 스럽다. 이를 iOS 스럽게 바꿔보자. 예를들어 저 문돌이닷컴 앱의 3개 메뉴가 '이벤트,' '뉴스,' '채팅' 이런 식으로 구성되어 있다고 가정해 보자. 우선 탭바의 높이를 좀더 높혀주고 (이건 구글링 조금 해보면 아이폰 탭메뉴바 높이가 얼마인지 금방 찾을 수 있다) 아이콘을 다른걸로 교체해 줘야 한다. 여기서 부딪치는 문제가 비록 iOS에 기본 아이콘을 쓰면 괜찮지만 적당한 아이콘이 없을 경우 당신이 직접 디자인해 줘야 하는데, 아이콘 디자인이 어디 쉬운일인가? 걱정할 것 없다. 이를 또한 마법처럼 해결해 주는 사이트가 있다. 바로 Noun Project이다.눈프로젝트 사이트에서 필요한 아이콘을 찾아 SVG 파일로 다운받는다.개발자들이 오픈소스 운동에 열심히 참여하는 것 처럼 여기도 본인의 디자인력을 수 많은 사람들과 공유하는 아주 훌륭한 디자이너들이 올린 수 많은 아이콘들을 png와 svg로 다운받을 수 있다. 뭐 모르는 사람도 있으리라 생각되지만 참고로 png는 픽셀기반, svg는 벡터기반이다. 우리는 스케치에서 벡터기반으로 작업하고 있기 때문에 svg 파일을 다운받도록 한다. 다운받은 아이콘을 스케치로 불러온 후 크기를 조정하고 컬러도 우리의 메인컬러로 변경해서 다음과 같이 적용해 봤다. 덤으로 로딩파일도 한번 만들어 봤다.물론 디자이너가 보면 코웃음 치겠지만 뭐 이정도 디자인이면 프로토타입으로는 나쁘지 않다. Step 6. 제플린에 디자인 가이드 올리고 개발자에게 디자인 파일 넘겨주기드디어 마지막 단계이다. 보통 디자이너들은 개발자에게 디자인파일 넘겨줄때 다음 두개를 준다.1. 디자인 가이드 - 이건 스크린에 각 요소들의 크기가 몇 픽셀이고, 간격을 얼마고 뭐 이런것들을 상세하게 표시해 준 가이드를 말한다.2. 디자인 파일 - 각종 아이콘, 이미지 등등 개발에 필요한 파일들을 다양한 파일 사이즈로 익스포트해서 전달해 준다.우선 디자인 가이드는 역시 우리가 이거 만드려면 엄청난 노가다인데, 이를 마법처럼 쉽게 해주는 프로그램이 또 있다!! (고맙게도 1개 프로젝트까지는 무료이다.) 바로 제플린이라는 프로그램이다.제플린을 사용하면 디자인가이드 만들 필요 없이 알아서 생성해 준다.제플린을 다운받으면 스케치와 자동으로 연동이 되고, 스케치에서 제플린으로 업로드하고 싶은 아트보드를 클릭한후 plugin에서 제플린으로 업로드를 클릭하면 알아서 제플린으로 업로드 된다. 그리고 나서 제플린으로 개발자를 초대하면 끝. 개발자는 여기서 저 버튼들의 크기가 얼마이고 여백을 얼마이고 컬러의 헥스코드는 뭐고 이런 내용들을 쉽게 확인 가능하다.디자인 파일은 사실 제플린에서 개발자가 바로 내려받는게 가능한데, 이것도 조금 노가다일 수 있으니 직접 익스포트해서 깔끔하게 전달해 주자. 스케치에 보면 내가 익스포트하고 싶은 요소를 클릭해서 우측 하단에 보면 어떤 사이즈로 익스포트할지 선택할 수 있는 기능이 있다. 아이폰 개발할때는 보통 기본 스크린 사이즈에서 2배 파일, 3배파일을 같이 줘야한다. 파일명에 @2x가 2배파일, @3x가 3배파일을 의미하고 스케치에서 알아서 파일명까지 형성에서 익스포트 해 준다.2x가 2배파일, 3x가 3배파일이고 서픽스도 알아서 스케치가 생성해 준다.이때 주의할 것은 파일명인데, 개발자들은 보통 나름의 파일명 규칙이 있다. 이건 꼭 개발자에게 물어보고 컨벤션에 맞춰서 파일명을 정하도록 하자. 찾기 쉽게 작성하는게 중요하기 때문에 보통은 이런식으로 작성한다.[종류]_[섹션명]_[이름]예를들면 탭바에 있는 채팅 아이콘을 2배파일로 추출한다고 하면 파일명은 '[email protected]'가 되는 것이다.여기까지의 사이클을 한 2-3번정도 경험해 보면 이제 어느정도 우리 문돌이가 디자이너 대타 역할을 수행하기에는 어느정도 가능해 질 것이다. 이 외에도 사실 앱 스크린샷, 앱스토어 아이콘 등등 개발자에게 전달해야 할 파일들이 많은데, 이것 역시 위의 레퍼런스 사이트들을 잘 찾아보면 수 많은 무료 양식이 있어서 쉽게 벤치마킹(이라고 쓰고 베낀다라고 읽는다) 할 수 있다.다시한번 강조하지만 이 방법론은 어디까지나 '디자이너가 아직 없어서 문돌이가 디자이너 역할 대신하는 법' 이지 '문돌이가 디자이너 되는 법'이 절대로 아니다. 디자인의 세계는 정말 깊고 심오해서 초보 디자이너 되는게 초보 개발자 되는법 보다 더 어려울 수도 있다. 특히 요즘 많은 사람들이 남발해 대는 UX라는 단어도 심리학에 기반을 둔 매우 심오한 영역인데 사람들은 그냥 'UX = 보기좋은 디자인' 요렇게 생각해 버리는 경향이 있다. 뭐 UX까지 안가더라도 그래픽디자인의 세계 역시 구도, 배치, 컬러 등등 공부해야 할 것이 매우 많은 세계이니 괜히 넘보지 말고 우리는 그냥 기획자 본연의 업무에 충실하도록 하자.다음 글에서는 역시 같은 맥락으로 문돌이 PM이 초기 스타트업에서 마케터의 역할을 대신하기 위한 야매스러운 방법론에 대해 논의해 보고자 한다.글쓴이는 스팀헌트 (Steemhunt) 라는 스팀 블록체인 기반 제품 큐레이션 플랫폼의 Co-founder 및 디자이너 입니다. 비즈니스를 전공하고 대기업에서 기획자로 일하다가 스타트업을 창업하고 본업을 디자이너로 전향하게 되는 과정에서 경험한 다양한 고군분투기를 연재하고 있습니다.현재 운영중인 스팀헌트 (Steemhunt)는 전 세계 2,500개가 넘는 블록체인 기반 앱들 중에서 Top 10에 들어갈 정도로 전 세계 150개국 이상의 많은 유저들을 보유한 글로벌 디앱 (DApp - Decentralised Application) 입니다 (출처 - https://www.stateofthedapps.com/rankings).스팀헌트 웹사이트 바로가기
조회수 793

제대로 물 마시는 법

나에겐 일년에 한번 꼭 치러야 하는 거사가 있다.바로 환절기 감기로 병원을 찾는 일이다.올해도 가을로 넘어가는 문턱에 걸려 병원을 찾아 진찰을 받았다."몸이 많이 무리를 했네요. 당분간은 쉬시면서 무리하지 마시고, 스트레스 많이 받지 마세요. 따뜻한 물 많이 드시구요"매 해 다른 병원에 가서 새로운 의사선생님을 만나지만 처방내용은 거의 비슷하다. 무리하지 말것 그리고 물 많이 마실 것. 물 많이 마시라는 처방은 나도하겠선생님 앞에서는 시키는 것은 뭐든 다하겠노라 약속하지만, 집에 돌아와서는 약먹는 것 마저도 거를 때가 많다. 하물며 물을 많이 마시라니. 하지만 올해는 병원을 나오며 나도 이참에 물을 한번 마셔볼까 하는 생각을 했는데, 그 계기는 올 여름 결혼한 동생 덕분이다.올 초, 결혼을 3개월 앞둔 동생이 다이어트를 하겠다고 호들갑을 떨며 물을 마시기 시작했다.평소 한방울의 물로 하루를 버텨내던 선인장같은 동생이 어느 순간부터 물을 찾았다. 아마도 다이어트 클리닉을 다녀온 다음이었던 것 같은데, 운동을 하지 않고도 살을 빼는 방법이라며 물을 마시기 시작한 것이다. 내심 얼마나 가겠냐고 생각했지만, 동생은 물통을 끼고 살았다. 도대체 물을 마시면 뭐가 좋은걸까. 동생은 두말 않고 나에게 링크 하나를 던져줬다."우리 몸은 진짜 배고픔과 가짜 배고픔을 구별하지 못한다"사람은 밥을 먹은 직후에도 갑자기 허기가 지는 느낌을 받는다. 단맛이나 자극적인 음식을 먹고 싶은 것이 가짜 배고픔의 예다. 가짜 배고픔은 영양분이 부족해 나타나는 진짜 배고픔과 달리 스트레스를 받을 때 세로토닌 수치가 떨어지기 때문에 나타난다. 이 세로토닌 분비를 다시 늘리기 위해 뇌가 몸에게 당을 더 섭취 하도록 만드는 것이다. 결국 '스트레스를 받았어' 라는 신호를 '난 배고파' 라는 신호로 해석하는 것이 가짜 배고픔의 골자다.이런 실수에서 벗어나는 좋은 판별법이 물마시기라고 한다. 물을 마시고 20분이 지나도 식사를 하고 싶다면 음식을 적정량 섭취해주면 되고, 그렇지 않다면 가짜 배고픔이었으니 물로 넘기면 된다는 것이다. 과연 그 이론적인 내용만큼 효과도 있을까? 나는 이후 여동생을 유심히 살펴봤다. 동생에게 나타난 첫번째 변화는 간식먹는 양의 감소였다. 주말이면 집에 있는 과자나 빵을 누가 다 먹었느냐며 서로를 의심했는데, 올 초에는 집안에 늘 간식이 풍족한 상태가 유지되었다. 이것도 일종의 가짜 배고픔이었는지, 간식이 풍족해지니 나도 평소보다 오히려 과자를 찾는 양이 줄었다. (물마시기의 간적적 수혜를 입은 셈이다) 대신 집 냉장고에 몇통씩 자리를 차지하던 물들이 점점 줄어갔는데, 심할 때는 어머니께서 하루에 한번 보리차를 끓이기도 하셨다. 물 마시기를 하고 2-3주가 지난 시점부터는 동생의 체형도 조금씩 변하는 것 같았다. 매주 몇킬로씩 빠졌다며 자랑처럼 이야기를 하던데, 숫자도 숫자지만 한 눈에도 팔이나 다리 살이 많이 빠진 것이 눈에 들어왔다. 누가 알겠냐마는 3개월 동안 6kg 을 빼서 지금은 50kg 초반이라고 한다.하지만 동생이 진짜 입이 마르게 자랑하는 물마시기의 장점이 있었으니, 그것은 바로 화장이 잘 먹는다는 것이었다. 자기는 여름에도 수분크림을 한통씩 써야하는 건성피부인데, 물마시기 하고 나서는 피부가 촉촉하고, 당기는 느낌도 예전보다 덜하다고 했다. 동생은 피부과 열심히 다닐 때보다도 피부 상태가 훨씬 좋아졌다며 이것만큼은 물마시기 효과가 분명하다고 만나는 사람마다 이야기를 하고 다녔다. 결혼 준비를 하면서 다이어트 클리닉은 빠지지 않고 가던데, 피부과 가겠다는 이야기는 안했던 것을 보면 확실히 효과가 있긴 있었지 싶다. 동생이 물마시기로 톡톡한 효과를 보는 것을 바로 옆에서 봤기에, 매년 흘려들었던 의사선생님의 '물마시라'는 조언이 이번에는 마음에 걸렸다. 그래서 병원을 다녀온 날 (9/21 금) 부터 하루 2L 물마시기를 시작했다. 의식적으로 물을 마시기 시작했다물마시기를 하니 확실히 간식을 줄일 수 있었다. 입이 심심할 때면 으레 쵸콜렛이나 과자를 찾았는데, 지금은 배가 불러서 음식이 땡기지 않는다. 그래서인가 확실히 컨디션도 좋아지는 것 같고 덜 피곤한 것 같은 느낌을 받았다. 그런데 문제는 물마시기를 자꾸 까먹는다는 것이었다. 처음 3일은 250ml 컵으로 하루 6잔을 즐거운 마음으로 마셨는데, 그 다음주는 하루 평균 2-3잔을 마시게 되었다. 어떻게 하면 물을 꾸준히 마실 수 있을까?동생이 나름의 노하우 두가지를 알려줬는데, 첫째는 밥먹고 잠자는 행동과 연결해서 규칙적으로 물을 마시는 방법이다. 먹는 약도 사실 '식후 30분이내' 에 먹어야 할 이유가 별로 없다고 한다. 다만 사람들의 약 복용률이 너무 낮아서 이를 개선할 의도로 '밥먹는 행동' 과 연결을 시킨 것이다. 밥먹는 것만큼 하루에 규칙적으로 까먹지 않고 하는 행동이 없으니 그야말로 창의력 넘치는 해결방법인 것이다. 어쨋든 동생의 이야기는 '밥먹기', '잠자기' 와 연결을 시켜서 물을 마시면 하루 5잔은 꼭 마실 수 있다고 했다. 잠에서 깨서 한잔, 자기 전에 한잔. 그리고 매 끼 식사전 30분-1시간 전에 한잔씩. 그리고 추가적으로 생각날 때 한두잔을 더 마시면 2L 를 빼놓지 않고 먹을 수 있다.물마시기 알람을 설정해두는 것도 방법이다또 한가지 방법은 아침 출근했을 때 책상에 2L 물을 준비해놓고 퇴근하기 전까지 물을 다 마시는 것이다. 나는 물 마시러 캔틴으로 가며 움직이기 위해 이 방법대신 알람을 선택했다. 하지만 같은 사무실에 근무하는 동료들 중에 아침 출근할 때 물을 떠오고 하루 종일 떠온 물을 나눠 마시는 것이 이제는 눈에 들어오기 시작했다. 어쨋든 해야 하는 일이 눈에 보이면 목표를 까먹을 일이 없다. 끝으로 물마시기와 관련해서 한가지 팁이 있다.우리가 보통 2L 의 물을 하루에 마셔야 하는 이유는 하루동안 몸에서 배출되는 2.5L 의 수분중 0.5L 를 음식 등을 통해서 얻고 있기 때문이다. 즉, 빠져 나가는 만큼 채우는 공식인데, 흔히 맥주와 차 그리고 커피를 마시면서 수분 보충을 했다고 생각들을 많이 한다. 하지만, 술이나 커피는 마시는 양보다 더 많은 양을 체내에서 빼내는 효과가 있다고 하니 사실상 마실수록 손해인 것이다. 그러니 잊지 말자. 물은 그냥 물이다. 바라건대 올 해 물마시기 습관을 꾸준히 이어가서, 내년 환절기에는 굳이 병원을 찾지 않아도 되면 좋겠다. by 건강에 관심많은 20대 직장인챌린저스, 확실한 목표달성 꾸준한 습관형성 앱www.chlngers.com
조회수 1214

AWS Batch 사용하기

OverviewAWS Batch는 배치 컴퓨팅 작업을 효율적으로 실행할 수 있게 도와줍니다. 배치 작업량과 리소스 요청을 기반으로 최적의 리소스 수량 및 인스턴스 유형을 동적으로 프로비져닝합니다. AWS Batch에서는 별도의 관리가 필요 없기 때문에 문제 해결에 집중할 수 있습니다. 별도의 추가 비용은 없습니다. 배치 작업을 저장 또는 실행할 목적으로 생성된 AWS 리소스(인스턴스 등)에 대해서만 비용을 지불하면 됩니다. 이번 포스팅에서는 간단한 튜토리얼로 AWS Batch 사용 방법을 크게 11개의 Step으로 알아보겠습니다. 이렇게 진행하겠습니다.AWS에서 제공하는 Dockerfile, fetch&run 스크립트 및 myjob.sh 다운로드Dockerfile를 이용하여 fetch&run 스크립트를 포함한 Docker 이미지 생성생성된 Docker 이미지를 ECR(Amazon Elastic Container Registry)로 푸쉬간단한 샘플 스크립트(myjob.sh)를 S3에 업로드IAM에 S3를 접속 할 수 있는 ECS Task role 등록Compute environments 생성Job queues 생성ECR을 이용하여 Job definition 생성Submit job을 통해 S3에 저장된 작업 스크립트(myjob.sh)를 실행하기결과 확인 STEP1. AWS에서 제공하는 Dockerfile, fetch&run 스크립트 및 myjob.sh 다운로드AWS Batch helpers페이지에 접속합니다.    2. /fetch-and-run/에서 Dockerfile, fetchandrun.sh, myjob.sh 다운로드합니다.STEP2. Dockerfile을 이용하여 fetch&run 스크립트를 포함한 Docker 이미지 생성Dockerfile을 이용해서 Docker 이미지를 빌드합니다.잠시 Dockerfile의 내용을 살펴보겠습니다.FROM amazonlinux:latestDocker 공식 Repository에 있는 amazonlinux 의 lastest 버젼으로 빌드RUN yum -y install which unzip aws-cliRUN을 통해 이미지 빌드 시에 yum -y install which unzip aws-cli를 실행ADD fetch_and_run.sh /usr/local/bin/fetch_and_run.shADD를 통해 Dockerfile과 같은 디렉토리에 있는 fetch_and_run.sh를 /usr/local/bin/fetch_and_run.sh에 복사 WORKDIR /tmp컨테이너가 동작할 때 /tmp를 기본 디렉토리로 설정USER nobody컨테이너 실행 시 기본 유저 설정 ENTRYPOINT [“/usr/local/bin/fetch_and_run.sh”]컨테이너 실행 시 /usr/local/bin/fetch_and_run.sh를 call shell에 docker 명령을 통해 이미지 생성shell : docker build -t fetch_and_run . 실행하면 아래와 같은 결과가 출력됩니다.[ec2-user@AWS_BRANDI_STG fetch-and-run]$ docker build -t fetch_and_run . Sending build context to Docker daemon 8.192kB Step 1/6 : FROM amazonlinux:latest latest: Pulling from library/amazonlinux 4b92325dc37b: Pull complete Digest: sha256:9ee13e494b762db41b9db92a200f6784b78da5ac3b0f974fb1c38feb7f636474 Status: Downloaded newer image for amazonlinux:latest ---> 81bb3e78db3d Step 2/6 : RUN yum -y install which unzip aws-cli ---> Running in 1f5293a2294d Loaded plugins: ovl, priorities Resolving Dependencies --> Running transaction check ---> Package aws-cli.noarch 0:1.14.9-1.48.amzn1 will be installed --> Processing Dependency: python27-jmespath = 0.9.2 for package: aws-cli-1.14.9-1.48.amzn1.noarch --> Processing Dependency: python27-botocore = 1.8.13 for package: aws-cli-1.14.9-1.48.amzn1.noarch --> Processing Dependency: python27-rsa >= 3.1.2-4.7 for package: aws-cli-1.14.9-1.48.amzn1.noarch --> Processing Dependency: python27-futures >= 2.2.0 for package: aws-cli-1.14.9-1.48.amzn1.noarch --> Processing Dependency: python27-docutils >= 0.10 for package: aws-cli-1.14.9-1.48.amzn1.noarch --> Processing Dependency: python27-colorama >= 0.2.5 for package: aws-cli-1.14.9-1.48.amzn1.noarch --> Processing Dependency: python27-PyYAML >= 3.10 for package: aws-cli-1.14.9-1.48.amzn1.noarch --> Processing Dependency: groff for package: aws-cli-1.14.9-1.48.amzn1.noarch --> Processing Dependency: /etc/mime.types for package: aws-cli-1.14.9-1.48.amzn1.noarch ---> Package unzip.x86_64 0:6.0-4.10.amzn1 will be installed ---> Package which.x86_64 0:2.19-6.10.amzn1 will be installed --> Running transaction check ---> Package groff.x86_64 0:1.22.2-8.11.amzn1 will be installed --> Processing Dependency: groff-base = 1.22.2-8.11.amzn1 for package: groff-1.22.2-8.11.amzn1.x86_64 ---> Package mailcap.noarch 0:2.1.31-2.7.amzn1 will be installed ---> Package python27-PyYAML.x86_64 0:3.10-3.10.amzn1 will be installed --> Processing Dependency: libyaml-0.so.2()(64bit) for package: python27-PyYAML-3.10-3.10.amzn1.x86_64 ---> Package python27-botocore.noarch 0:1.8.13-1.66.amzn1 will be installed --> Processing Dependency: python27-dateutil >= 2.1 for package: python27-botocore-1.8.13-1.66.amzn1.noarch ---> Package python27-colorama.noarch 0:0.2.5-1.7.amzn1 will be installed ---> Package python27-docutils.noarch 0:0.11-1.15.amzn1 will be installed --> Processing Dependency: python27-imaging for package: python27-docutils-0.11-1.15.amzn1.noarch ---> Package python27-futures.noarch 0:3.0.3-1.3.amzn1 will be installed ---> Package python27-jmespath.noarch 0:0.9.2-1.12.amzn1 will be installed --> Processing Dependency: python27-ply >= 3.4 for package: python27-jmespath-0.9.2-1.12.amzn1.noarch ---> Package python27-rsa.noarch 0:3.4.1-1.8.amzn1 will be installed --> Processing Dependency: python27-pyasn1 >= 0.1.3 for package: python27-rsa-3.4.1-1.8.amzn1.noarch --> Processing Dependency: python27-setuptools for package: python27-rsa-3.4.1-1.8.amzn1.noarch --> Running transaction check ---> Package groff-base.x86_64 0:1.22.2-8.11.amzn1 will be installed ---> Package libyaml.x86_64 0:0.1.6-6.7.amzn1 will be installed ---> Package python27-dateutil.noarch 0:2.1-1.3.amzn1 will be installed --> Processing Dependency: python27-six for package: python27-dateutil-2.1-1.3.amzn1.noarch ---> Package python27-imaging.x86_64 0:1.1.6-19.9.amzn1 will be installed --> Processing Dependency: libjpeg.so.62(LIBJPEG_6.2)(64bit) for package: python27-imaging-1.1.6-19.9.amzn1.x86_64 --> Processing Dependency: libjpeg.so.62()(64bit) for package: python27-imaging-1.1.6-19.9.amzn1.x86_64 --> Processing Dependency: libfreetype.so.6()(64bit) for package: python27-imaging-1.1.6-19.9.amzn1.x86_64 ---> Package python27-ply.noarch 0:3.4-3.12.amzn1 will be installed ---> Package python27-pyasn1.noarch 0:0.1.7-2.9.amzn1 will be installed ---> Package python27-setuptools.noarch 0:36.2.7-1.33.amzn1 will be installed --> Processing Dependency: python27-backports-ssl_match_hostname for package: python27-setuptools-36.2.7-1.33.amzn1.noarch --> Running transaction check ---> Package freetype.x86_64 0:2.3.11-15.14.amzn1 will be installed ---> Package libjpeg-turbo.x86_64 0:1.2.90-5.14.amzn1 will be installed ---> Package python27-backports-ssl_match_hostname.noarch 0:3.4.0.2-1.12.amzn1 will be installed --> Processing Dependency: python27-backports for package: python27-backports-ssl_match_hostname-3.4.0.2-1.12.amzn1.noarch ---> Package python27-six.noarch 0:1.8.0-1.23.amzn1 will be installed --> Running transaction check ---> Package python27-backports.x86_64 0:1.0-3.14.amzn1 will be installed --> Finished Dependency Resolution Dependencies Resolved ================================================================================ Package                              Arch   Version            Repository                                                                           Size ================================================================================ Installing:  aws-cli                              noarch 1.14.9-1.48.amzn1  amzn-main 1.2 M  unzip                                x86_64 6.0-4.10.amzn1     amzn-main 201 k  which                                x86_64 2.19-6.10.amzn1    amzn-main  41 k  Installing for dependencies:  freetype                             x86_64 2.3.11-15.14.amzn1 amzn-main 398 k  groff                                x86_64 1.22.2-8.11.amzn1  amzn-main 1.3 M  groff-base                           x86_64 1.22.2-8.11.amzn1  amzn-main 1.1 M  libjpeg-turbo                        x86_64 1.2.90-5.14.amzn1  amzn-main 144 k  libyaml                              x86_64 0.1.6-6.7.amzn1    amzn-main  59 k  mailcap                              noarch 2.1.31-2.7.amzn1   amzn-main  27 k  python27-PyYAML                      x86_64 3.10-3.10.amzn1    amzn-main 186 k  python27-backports                   x86_64 1.0-3.14.amzn1     amzn-main 5.0 k  python27-backports-ssl_match_hostname                                       noarch 3.4.0.2-1.12.amzn1 amzn-main  12 k  python27-botocore                    noarch 1.8.13-1.66.amzn1  amzn-main 4.1 M  python27-colorama                    noarch 0.2.5-1.7.amzn1    amzn-main  23 k  python27-dateutil                    noarch 2.1-1.3.amzn1      amzn-main  92 k  python27-docutils                    noarch 0.11-1.15.amzn1    amzn-main 1.9 M  python27-futures                     noarch 3.0.3-1.3.amzn1    amzn-main  30 k  python27-imaging                     x86_64 1.1.6-19.9.amzn1   amzn-main 428 k  python27-jmespath                    noarch 0.9.2-1.12.amzn1   amzn-main  46 k  python27-ply                         noarch 3.4-3.12.amzn1     amzn-main 158 k  python27-pyasn1                      noarch 0.1.7-2.9.amzn1    amzn-main 112 k  python27-rsa                         noarch 3.4.1-1.8.amzn1    amzn-main  80 k  python27-setuptools                  noarch 36.2.7-1.33.amzn1  amzn-main 672 k  python27-six                         noarch 1.8.0-1.23.amzn1   amzn-main  31 k Transaction Summary ================================================================================ Install 3 Packages (+21 Dependent packages) Total download size: 12 M Installed size: 51 M Downloading packages: -------------------------------------------------------------------------------- Total 1.0 MB/s | 12 MB 00:12 Running transaction check Running transaction test Transaction test succeeded  Running transaction   Installing : python27-backports-1.0-3.14.amzn1.x86_64                    1/24   Installing : python27-backports-ssl_match_hostname-3.4.0.2-1.12.amzn1    2/24   Installing : python27-setuptools-36.2.7-1.33.amzn1.noarch                3/24   Installing : python27-colorama-0.2.5-1.7.amzn1.noarch                    4/24   Installing : freetype-2.3.11-15.14.amzn1.x86_64                          5/24   Installing : libyaml-0.1.6-6.7.amzn1.x86_64                              6/24   Installing : python27-PyYAML-3.10-3.10.amzn1.x86_64                      7/24   Installing : mailcap-2.1.31-2.7.amzn1.noarch                             8/24   Installing : python27-ply-3.4-3.12.amzn1.noarch                          9/24   Installing : python27-jmespath-0.9.2-1.12.amzn1.noarch                  10/24   Installing : python27-futures-3.0.3-1.3.amzn1.noarch                    11/24   Installing : python27-six-1.8.0-1.23.amzn1.noarch                       12/24   Installing : python27-dateutil-2.1-1.3.amzn1.noarch                     13/24   Installing : groff-base-1.22.2-8.11.amzn1.x86_64                        14/24   Installing : groff-1.22.2-8.11.amzn1.x86_64                             15/24   Installing : python27-pyasn1-0.1.7-2.9.amzn1.noarch                     16/24   Installing : python27-rsa-3.4.1-1.8.amzn1.noarch                        17/24   Installing : libjpeg-turbo-1.2.90-5.14.amzn1.x86_64                     18/24   Installing : python27-imaging-1.1.6-19.9.amzn1.x86_64                   19/24   Installing : python27-docutils-0.11-1.15.amzn1.noarch                   20/24   Installing : python27-botocore-1.8.13-1.66.amzn1.noarch                 21/24   Installing : aws-cli-1.14.9-1.48.amzn1.noarch                           22/24   Installing : which-2.19-6.10.amzn1.x86_64                               23/24   Installing : unzip-6.0-4.10.amzn1.x86_64                                24/24   Verifying  : libjpeg-turbo-1.2.90-5.14.amzn1.x86_64                      1/24   Verifying  : groff-1.22.2-8.11.amzn1.x86_64                              2/24   Verifying  : unzip-6.0-4.10.amzn1.x86_64                                 3/24   Verifying  : python27-pyasn1-0.1.7-2.9.amzn1.noarch                      4/24   Verifying  : groff-base-1.22.2-8.11.amzn1.x86_64                         5/24   Verifying  : aws-cli-1.14.9-1.48.amzn1.noarch                            6/24   Verifying  : python27-six-1.8.0-1.23.amzn1.noarch                        7/24   Verifying  : python27-dateutil-2.1-1.3.amzn1.noarch                      8/24   Verifying  : python27-docutils-0.11-1.15.amzn1.noarch                    9/24   Verifying  : python27-PyYAML-3.10-3.10.amzn1.x86_64                     10/24   Verifying  : python27-botocore-1.8.13-1.66.amzn1.noarch                 11/24   Verifying  : python27-futures-3.0.3-1.3.amzn1.noarch                    12/24   Verifying  : python27-ply-3.4-3.12.amzn1.noarch                         13/24   Verifying  : python27-jmespath-0.9.2-1.12.amzn1.noarch                  14/24   Verifying  : mailcap-2.1.31-2.7.amzn1.noarch                            15/24   Verifying  : python27-backports-ssl_match_hostname-3.4.0.2-1.12.amzn1   16/24   Verifying  : libyaml-0.1.6-6.7.amzn1.x86_64                             17/24   Verifying  : python27-rsa-3.4.1-1.8.amzn1.noarch                        18/24   Verifying  : freetype-2.3.11-15.14.amzn1.x86_64                         19/24   Verifying  : python27-colorama-0.2.5-1.7.amzn1.noarch                   20/24   Verifying  : python27-setuptools-36.2.7-1.33.amzn1.noarch               21/24   Verifying  : which-2.19-6.10.amzn1.x86_64                               22/24   Verifying  : python27-imaging-1.1.6-19.9.amzn1.x86_64                   23/24   Verifying  : python27-backports-1.0-3.14.amzn1.x86_64                   24/24 Installed:   aws-cli.noarch 0:1.14.9-1.48.amzn1        unzip.x86_64 0:6.0-4.10.amzn1   which.x86_64 0:2.19-6.10.amzn1   Dependency Installed:   freetype.x86_64 0:2.3.11-15.14.amzn1   groff.x86_64 0:1.22.2-8.11.amzn1   groff-base.x86_64 0:1.22.2-8.11.amzn1   libjpeg-turbo.x86_64 0:1.2.90-5.14.amzn1   libyaml.x86_64 0:0.1.6-6.7.amzn1   mailcap.noarch 0:2.1.31-2.7.amzn1   python27-PyYAML.x86_64 0:3.10-3.10.amzn1   python27-backports.x86_64 0:1.0-3.14.amzn1   python27-backports-ssl_match_hostname.noarch 0:3.4.0.2-1.12.amzn1   python27-botocore.noarch 0:1.8.13-1.66.amzn1   python27-colorama.noarch 0:0.2.5-1.7.amzn1   python27-dateutil.noarch 0:2.1-1.3.amzn1   python27-docutils.noarch 0:0.11-1.15.amzn1   python27-futures.noarch 0:3.0.3-1.3.amzn1   python27-imaging.x86_64 0:1.1.6-19.9.amzn1   python27-jmespath.noarch 0:0.9.2-1.12.amzn1   python27-ply.noarch 0:3.4-3.12.amzn1   python27-pyasn1.noarch 0:0.1.7-2.9.amzn1   python27-rsa.noarch 0:3.4.1-1.8.amzn1   python27-setuptools.noarch 0:36.2.7-1.33.amzn1   python27-six.noarch 0:1.8.0-1.23.amzn1   Complete! Removing intermediate container 1f5293a2294d  ---> 5502efa481ce Step 3/6 : ADD fetch_and_run.sh /usr/local/bin/fetch_and_run.sh  ---> 1b69173e586f Step 4/6 : WORKDIR /tmp Removing intermediate container a69678c65ee7  ---> 8a560dd25401 Step 5/6 : USER nobody  ---> Running in e063ac6e6fdb Removing intermediate container e063ac6e6fdb  ---> e5872fd44234 Step 6/6 : ENTRYPOINT ["/usr/local/bin/fetch_and_run.sh"]  ---> Running in e25af9aa5fdc Removing intermediate container e25af9aa5fdc  ---> dfca872de0be Successfully built dfca872de0be Successfully tagged awsbatch-fetch_and_run:latest docker images 명령으로 새로운 로컬 repository를 확인할 수 있습니다.shell : docker images [ec2-user@AWS_BRANDI_STG fetch-and-run]$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE fetch_and_run latest dfca872de0be 2 minutes ago 253MB amazonlinux              latest              81bb3e78db3d        2 weeks ago         165MB STEP3. ECR에서 repository 생성아래는 ECR 초기 화면입니다.fetch_and_run이란 이름으로 Repository 생성합니다. 3. Repository 생성이 완료되었습니다.STEP4. ECR로 빌드된 이미지를 pushECR에 docker login후 빌드된 Docker 이미지에 태그합니다. shell : aws ecr get-login --no-include-email --region ap-northeast-2 빌드된 docker 이미지에 태그하세요.shell : docker tag fetch_and_run:latest 000000000000.dkr.ecr.ap-northeast-2.amazonaws.com/fetch_and_run:latest 태그된 docker 이미지를 ECR에 push합니다.shell: docker push 000000000000.dkr.ecr.ap-northeast-2.amazonaws.com/fetch_and_rrun:latest 아래는 ECR fetch_and_run Repository에 푸쉬된 Docker 이미지입니다.STEP5. 간단한 샘플 스크립트(myjob.sh)를 S3에 업로드아래는 간단한 myjob.sh 스크립트입니다.#!/bin/bash date echo "Args: $@" env echo "This is my simple test job!." echo "jobId: $AWS_BATCH_JOB_ID" sleep $1 date echo "bye bye!!" 위의 myjob.sh를 S3에 업로드합니다.shell : aws s3 cp myjob.sh s3:///myjob.sh STEP6. IAM에 S3를 접속할 수 있는 ECS Task role 등록Role 등록 화면에서 Elastic Container Service 선택 후, Elastic Container Service Task를 선택합니다.AmazonS3ReadOnlyAccess Policy를 선택합니다.아래 이미지는 Role에 등록 하기 전 리뷰 화면입니다.Role에 AmazonS3ReadOnlyAccess가 등록된 것을 확인합니다.STEP7. Compute environments 생성AWS Batch 콘솔에서 Compute environments를 선택하고, Create environment 선택합니다.Compute environment type은 Managed와 Unmanaged 두 가지를 선택할 수 있습니다. Managed는 AWS에서 요구사항에 맞게 자원을 관리해주는 것이고, Unmanaged는 직접 자원을 관리해야 합니다. 여기서는 Managed를 선택하겠습니다.Compute environment name을 입력합니다.Service Role을 선택합니다. 기존 Role을 사용하거나 새로운 Role을 생성할 수 있습니다. 새 Role을 생성하면 필수 역할 (AWSBatchServiceRole)이 생성됩니다.Instnace Role을 선택합니다. 기존 Role을 사용하거나 새로운 Role을 생성할 수 있습니다. 새 Role을 생성하면 필수 역할(ecsInstanceRole)이 생성됩니다.EC2 key pair에서 기존 EC2 key pair를 선택합니다. 이 key pair를 사용하여 SSH로 인스턴스에 접속할 수 있지만 이번 글의 예제에서는 선택하지 않겠습니다.Configure your compute resources Provisioning Model은 On-Demand와 Spot이 있습니다. 차이점은 Amazon EC2 스팟 인스턴스를 참고해주세요. 여기서는 On-Demand를 선택합니다.Allowed instance types에서는 시작 인스턴스 유형을 선택합니다. optimal을 선택하면 Job queue의 요구에 맞는 인스턴스 유형을 (최신 C, M, R 인스턴스 패밀리 중) 자동으로 선택합니다. 여기서는 optimal을 선택하겠습니다.Minimum vCPUs는 Job queue 요구와 상관없이 Compute environments에 유지할 vCPU 최소 개수입니다. 0을 입력해주세요.Desired vCPUs는 Compute environment에서 시작할 EC2 vCPU 개수입니다. Job queue 요구가 증가하면 필요한 vCPU를 Maximum vCPUs까지 늘리고 요구가 감소하면 vCPU 수를 Minimum vCPUs까지 줄이고 인스턴스를 제거합니다. 0을 입력해주세요.Maximum vCPUs는 Job queue 요구와 상관없이 Compute environments에서 확장할 수 있는 EC2 vCPU 최대 개수입니다. 여기서는 256을 입력합니다.Enable user-specified Ami ID는 사용자 지정 AMI를 사용하는 옵션입니다. 여기서는 사용하지 않겠습니다.Networking VPC Id 인스턴스를 시작할 VPC를 선택합니다.Subnet을 선택합니다.Security groups를 선택합니다.그리고 EC2 tags를 지정하여 생성된 인스턴스가 이름을 가질 수 있게 합니다. Key : Name, Value : AWS Batch InstanceCreate을 클릭해 Compute environment를 생성합니다.아래 이미지는 생성된 Compute environment입니다.STEP8. Job queues 생성AWS Batch 콘솔에서 Job queues - Create queue를 선택합니다.Queue name을 입력합니다.Priority는 Job queue의 우선순위를 입력합니다. 우선순위가 1인 작업은 우선순위가 5인 작업보다 먼저 일정이 예약됩니다. 여기서는 5를 입력하겠습니다.Enable Job queue가 체크되어 있어야 job을 등록할 수 있습니다.Select a compute environment에서 Job queue와 연결될 Compute environment을 선택합니다. 최대 3개의 Compute environment를 선택할 수 있습니다.생성된 Job queue, Status가 VALID면 사용 가능합니다.STEP9. ECR을 이용하여 Job definition 생성AWS Batch 콘솔에서 Job definitions - Create를 선택합니다.Job definition name을 입력하고 이전 작업에서 만들 IAM Role을 선택하세요, 그리고 ECR Repository URI를 입력합니다. 000000000000.dkr.ecr.ap-northeast-2.amazonaws.com/fetch_and_runCommand 필드는 비워둡시다.vCPUs는 컨테이너를 위해 예약할 vCPU의 수, Memory(Mib)는 컨테이너에 제공할 메모리의 제한, Job attempts는 작업이 실패할 경우 다시 시도하는 최대 횟수, Execution timeout은 실행 제한 시간, Ulimits는 컨테이너에 사용할 사용자 제한 값입니다. 여기서는 vCPUs는 1, Memory(MiB)는 512, Job Attempts는 1로 설정, Execution timeout은 기본값인 100 그리고 Limits는 설정하지 않습니다.vCPUs: 컨테이너를 위해 예약할 vCPU의 개수Memory(Mib): 컨테이너에 제공할 메모리의 제한Jop attempts: 작업이 실패할 경우 다시 시도하는 최대 횟수Execution timeout: 실행 제한 시간Ulimits: 컨테이너에 사용할 사용자 제한 값User는 기본값인 nobody로 선택 후, Create job definition을 선택합니다.Job definitions에 Job definition이 생성된 것을 확인할 수 있습니다.STEP10. Submit job을 통해 S3에 저장된 작업 스크립트(myjob.sh)를 실행하기AWS Batch 콘솔에서 Jobs를 선택합니다. Job을 실행할 Queue를 선택하고 Submit job을 선택합니다.Job run-time1)Job name을 입력합니다.2)Job definition을 선택합니다.3)실행될 Job queue를 선택합니다.Environment Job Type을 선택하는 부분에서는 Single을 선택합니다. Array 작업에 대한 자세한 내용은 어레이 작업 페이지를 참고해주세요.Job depends on은 선택하지 않습니다.자세한 내용은 작업 종속성 페이지를 참고해주세요.Environment Command에서 컨테이너에 전달할 명령을 입력합니다. 여기서는 [“myjob.sh”, “30”] 를 입력해주세요. vCPUs, Memory, Job attempts와 Execution timeout은 job definition에 설정된 값을 가져옵니다. 이 Job에 대한 설정도 가능합니다.Parameters를 통해 job을 제출할 때 기본 작업 정의 파라미터를 재정의 할 수 있습니다. Parameters에 대한 자세한 내용은 작업 정의 파라미터 페이지를 참고해주세요.Environment variables는 job의 컨테이너에 환경 변수를 지정할 수 있습니다. 여기서 주의할 점은 Key를 AWS_BATCH로 시작하면 안 된다는 것입니다. AWS Batch에 예약된 변수입니다.Key=BATCH_FILE_TYPE, Value=script Key=BATCH_FILE_S3_URL, Value=s3:///myjob.shSubmit job을 선택합니다.Job이 Submitted 된 화면입니다.Dashboard를 보시면 Runnable 상태로 대기 중인 것을 확인할 수 있습니다.STEP11. 결과 확인CloudWatch > Log Groups > /aws/batch/job에서 실행 로그를 확인할 수 있습니다.Conclusion간단한 튜토리얼로 AWS Batch를 설정하고 실행하는 방법을 알아봤습니다.(참 쉽죠?) 다음 글에서는 AWS Batch의 Array 또는 Job depends on등의 확장된 기능들을 살펴보겠습니다. 참고1) AWS Batch – 쉽고 효율적인 배치 컴퓨팅 기능 – AWS2) AWS Batch 시작하기 - AWS Batch3) Amazon ECR의 도커 기본 사항 - Amazon ECR글윤석호 이사 | 브랜디 [email protected]브랜디, 오직 예쁜 옷만#브랜디 #개발문화 #개발팀 #업무환경 #인사이트 #경험공유
조회수 13929

TLX에 대한 진실 혹은 거짓

인사가 만사. 리더가 해야될 일은 적절한 인재를 적절히 배치하는 인데. 중요하지만 어디 그게 쉬운가요;;TLX PASS에서 Product Owner (PO)를 맡게 되면서 좋은 사람을 팀내에 모셔오려고 노력하지만, jobplanet 리뷰가 좋지 않아서 발목 잡히는 경험이 몇번 있었네요.깔끔히 좋지 않은 부분은 인정하고 어떻게 바뀌어 나가고 있는지 알려드리고 싶어 글을 적습니다.(Jobplanet TLX 페이지로 가면 리뷰를 하나하나 보실 수 있습니다.)— 참고사항 —TLX는 10년차 회사이며, 저는 이 회사에서 일한지 1년이 거의 다 되어갑니다. 초기엔 B2B 영업기반으로 회사 복지를 대행해주는 회사였으며, 8년차부터 제품개발팀을 구성해 App 개발을 통해 B2C 사업을 진행하고 있습니다. 제가 PO로 맡고 있는 팀은 15명 내외의 다양한 분야(사업/제품개발/마케팅/영업)의 인력들이 한 팀으로 일하며, B2C 사업을 담당하고 있습니다.아래는 저희 팀에서 오픈 된 포지션입니다. 안드로이드 개발자백엔드 개발자SNS 마케터아래는 저희 팀에서 곧 오픈될 포지션 입니다.모바일 UI 디자이너브랜드 디자이너데이터 분석 및 그로스 해킹 담당그럼 리뷰부터 한 번 보시죠.#1사실 비전이 없어보여서 자주 갈등되긴함. 퇴사자는 꾸준히생김.인력돌려막기 심해서 전문성없이 일하는 인력이보임. 팀에서 배우는사람도있고. 실무자 채용이 상식인데 학원좀 다녔다고 만들수있을거같나. ;;ㅋ인력관리를 못하긴함 — 별점 2/5, 전문직 | 현직원 | 경기 | 2018/1/18#2영업팀은 다른회사같고 분위기도 무섭고 군기잡고 소리지르고 욕도함 다 퇴사함 개발디자인쪽은 널널하고 능력도 없는듯 뭘 요청해도 소통할줄모르고 열심히 안함 대충다니고 싶으면 이쪽을 추천 이쪽은 연차 낮아도 태도 안좋으니 말다했지본인이 일은 꽤 하거나 소통이 잘되는 성격이거나 상식적이라면 추천하지 않음 잘생각해보시길요 — 별점 3/5, IT/인터넷 | 전직원 | 경기 | 2017/9/27#3업무적인 압박이 별로 없어서 배우려고 회사에 들어오면 발전 없을 수 있음 / 주니어들은 자발적인 일처리가 어려울 수 있음 — 별점 4/5, 마케팅/시장조사 | 전직원 | 경기 | 2017/8/2#4대기업도 아니면서 사내정치 장난아님. 윗 사람들 말이 계속 바뀜. 부서가 자꾸 생기고 사라짐. 군대식 문화. 부서에 따라 야근있음. 회사 망할 것 같음. — 별점 1/5 | IT/인터넷 | 전직원 | 경기 | 2017/7/13#5말이 매번 바뀌고, 이거 잘 하다가 갑자기 다른 거 하라니 당황.. 그런데 이게 매번 바뀜. 연차는 안쓰면 수당 안나오니 쓰라는 식이고, 영업은 실적 압박이 많음.. 개발쪽에 비해 야근하는일이 비일비재, , 갑질마인드로 제휴사 대하는 태도 — 별점 2/5 | 영업/제휴 | 전직원 | 경기 | 2017/7/9#6가족회사/직원들한테 돈쓰는거 아까워함/ 사내정치로 뒤통수의 연속으로 괜찮은사람은 다 나감 — 별점 1/5 | IT/인터넷 | 전직원 | 경기 | 2017/2/11그럼 하나씩 얘기해 보겠습니다. 편의상 어투는 평소에 제가 쓰는 어투로 바꿀께요.비전이 없다 —TLX PASS는 원래 운동시설만 이용하다가 사용자의 요청으로 자연스럽게 피부관리나 마사지와 같은 분야로 사업이 확장됐다. 이 과정에서 기존에 가지고 있던 건강관리라는 비전이 좀 흐릿해졌고, 2017년이 좀 전환기였던 것 같다. 여느 O2O 플랫폼과 같이 제휴사에서 파생되는 모든 비지니스를 IT를 통해 혁신시키자는 큰 줄기 아래 지금은 각 사업부가 각자의 비전을 가지고 고객의 문제를 해결하기 위해 움직이고 있다.TLX PASS 만 놓고 봤을 때, 빈 자리를 채워주는 사업 모델의 특성상 한계가 보이는 것은 맞다. 그래서 다른 부서에서는 새로운 제품으로 신사업을 모색하고 있고, 기존에 우리가 가지고 있는 제휴사 네트워크를 활용한 유통사업 또한 차근차근 밟아 나가고 있다.B2C 고객에게 TLX PASS가 어떤 문제를 풀어주어야 할지는 우리 팀 멤버들이 다같이 고민하고 있다. 월 매출이 10억이 넘어가지만 2017년의 성장을 돌아보면 우리가 아직 정확히 문제를 정의하지 못했다는 반성을 하게된다. 2018년이 이 문제를 정의하는 여정이 될 것 같다.비전이 성장성을 의미한다면 사업 모델의 한계에도 불구하고 아직 성장할 부분은 많다고 생각한다. 매주 데이터를 보며 새로운 기능이나 운영 방식을 테스트해 나가는데, 주간 3% 성장 목표를 달성해 나가고 있다.이 속도라면 현재 우리 팀이 가지고 있는 단기 목표인 상반기내에 유저베이스 2배수가 가능하리라 생각한다.인력관리 못 한다 —사내에 HR담당자가 지금도 없다. 꾸준히 요청하고 있지만 다른 포지션이 더 급해서, PO/CTO/대표가 팀에 필요한 인력을 리크루팅 하고 있다. (지금 나 처럼)회사가 성장하면서 기존 멤버들이 같이 성장해주면 정말 좋지만, 현실은 그러지 못하는 경우가 많다. 신규채용이 늦어져 고육지책으로 기존 인력의 재교육을 진행한 적이 있었지만, 결국 신규채용이후에 업무는 신규인력이 진행했다. 적절한 시점에 인력수급이 아쉬운 부분이다.이제 50명 정도 되는 회사다. 제품개발 인력만 본다면 20명 안팎. 한 사람이 하나의 플랫폼을 맡아서 진행하기 때문에, 사수를 잘 둬서 일을 배우려고 했을 때 좋은 회사는 아니다. 다만, 회사에서 자기 학습을 위한 도서구매 및 세미나참석은 적극 지원해 주고 있다.팀에서는 회식 문화를 지양하고, 회고미팅을 통해서 업무방식으로 인해 생긴 문제점을 해결해 나가고 있다. 이를 통해 팀이 스스로 문화를 만들어 나가면서 소속감을 높이는 일을 하고 있다.커뮤니케이션이 잘 안된다 —작년엔 기능조직으로 조직이 구성되었다. 팀장이 부서장에게 부서장이 임원에게 보고를 했고, 임원미팅을 통해서 결정된 사항이 다시 부서장 미팅, 팀장 미팅을 통해서 전달이 되었으니. 몇단계를 통해서나 왔는지 모르겠다;;;제품개발부는 장기적인 제품 로드맵을 중시했고, 사업부는 단기적인 매출을 중요시 했으니. 사업부 입장에서 답답함을 느낄만도 했다.기능조직으로 나눠져있다보니, 적은 인원수에도 커뮤니케이션이 원할하지 못해 지금의 사업부제로 개편되었다. 지금은 같은 팀에 사업/제품개발/영업/마케팅 인력이 모두 같이 일하고 있다.현재 우리팀은 칸반을 중심으로 업무가 진행된다. 결국 제품의 완성도와 사업기회가 같은 선상에서 고민되며, 하나의 우선순위 리스트로 제품개발 업무가 관리되고 있다.칸반 미팅/데이터 공유 미팅/팀 레터를 통해 서로 같은 수준의 정보가 공유될 수 있도록 하고 있다.팀 레터는 매주 작성되는데, 정보량이 제일 많은 PO가 제품/사업적인 방향과 진행사항을 팀원에게 공유한다.야근이 많다 / 널널하다 —1년 동안 나는 야근한 경험이 1번 있다. 그리고 이 글을 적는다고 두 번째 야근을 하고 있다. 물론 야근이 잦은 사람도 많다. 이건 선택의 문제인 것 같다. 나는 주로 아이를 재우고 늦은 밤에 사용자 데이터 분석을 하는 경우가 많다. 칸반으로 모든 업무가 공유되고 하나의 목표를 위해 달려가고 있는 팀에서 프리라이더가 버틸 자리는 없다.망할 것 같다 —2월중에 브릿지 투자가 잘 마무리될거라 향후 2년간은 망하진 않을 것 같다.사내정치가 심하다 —사내정치가 있다. 대표가 2명인 것부터 시작해서 그런 요소들이 많다. 이전엔 사내정치를 통해서 제품개발의 우선순위가 바뀌는 경우가 빈번했는데, 사업부제로 변경된 이후로는 많이 줄어들었다.내가 PO가 되고 나서는 역으로 사내정치를 이용해 제품 로드맵에 맞게 제품 개발이 진행될 수 있게 사업 우선순위를 조절하고 있다. 기존에 이벤트 위주로 매출을 올리던 구조에서, 데이터분석을 기반으로한 제품개선과정을 통해서 고객을 늘려나가는 구조로 변경해 나가고 있다.사실 다 떠나서 성장에 집중해서 성장 하면 된다고 본다. 고인물이 썩지 흐르는 물은 썩지 않으니깐.다시 한 번 깨알같은 홍보. 주간 성장률 3%이랬다가 저랬다가 한다 —내가 처음 맡았던 예약시스템 진행을 결정할 때도, 그 당시 경영진은 예약보다 헬스장 1년 회원권을 TLX에서 판매하는게 더 중요하다고 판단해서 진행 중인 프로젝트가 중단되었다. 그 이후에 회원권 판매를 위해선 기존 코드에 대한 정리가 선행되어야 된다는게 뒤늦게 발견되어, 개발이 늦어지고 끝내 두 기능 모두 릴리즈 되지 못했다.작년엔 기능조직과 긴 의사결정 구조로 한 번 결정된 사항이 실무진에 도달할 때 쯤에는, 다른 사업기회로 기존의 의사결정이 뒤집히는 적이 많았다. 그리고 내가 처음 들어왔을 때는 대표 두분이 제품개발/제품중심성장/데이터를 기반으로한 성장 등의 개념이 많이 부족했고 책임과 권한을 위임하는 데 좀 서툴렀던게 사실이다.지금은 달라졌다. 제품에 대한 책임과 권한은 PO가 확실하게 가지고 있다. 우리팀은 칸반으로 제품 개발 프로세스를 관리하고, 칸반에서는 개발이 진행되던 테스크를 PO가 개발을 중단시키진 않는다. 다만 다음 테스크에 대한 우선순위를 잘 정리할 뿐이다. 의사결정도 한 팀에 다양한 인력이 같이 일하고 있어서 빠르다. 대부분의 의사결정은 PO선에서 진행되고, 그 이상이어도 대표와 바로 의견을 조율해 의사결정 라인을 짧게 가져가고 있다.직원에게 돈 쓰는걸 아까워 한다 —비용 컨트롤이 좀 심하긴하다. 이건 업태 자체가 현금흐름이 매우 중요한 업이라서 그렇다. 밖에서 보면 중개해주고, 낙전수입으로 땅짚고 헤엄치는 것 처럼 보이나, 안에서 보면 마냥 그렇진 않다. 8년간 생존전쟁을 치러왔고, 2년전 Series A 투자로 어느정도 캐쉬가 있게 된 회사이다. 올해 브릿지 투자와 Series B 투자를 마치고 나면 복지정책에 대해서 목소리를 크게 낼 생각이다.나는 우리팀 매출/수익이 높아지는 만큼 회사에 복지를 요구할 생각이다. 아직까지는 간단히 간식을 사먹는 수준이지만.기본적으로 TLX 직원에게는 12만원 정도의 PASS가 매월 지급되어서, TLX 제휴시설을 이용할 수 있다. 나는 주로 헬스장에 쓰고, 아내가 한달에 한 번 에스테틱시설에서 마사지를 받고 있다.마치며 —안 좋은 리뷰를 일부러 언급한게 아닌가 하는 생각도 듭니다. 어떻게 보면 가장 어려운 길인 정공법을 택한 것 같기도 하네요. 하지만 단점을 덮어두고 넘어가기 보다는 들어내서 고쳐나가는게 올바른 방향이라고 생각합니다. JobPlanet 리뷰에 나온 모습이 현재의 모습이 아니라는 것을 알려드리고 싶었습니다.리뷰에 나온 내용중에 아직도 개선하려 노력하는 부분이 많습니다. 작게는 제가 맡은 부서부터 시작해서 크게는 회사의 시스템까지 변화를 만들려고 노력 중 입니다.저희 팀에서는 데이터 기반으로 빠르게 실행에 옮겨서 제품을 통한 성장을 추구합니다. PO인 제가 직접 데이터 분석을 해서, 여러 가설들을 실험해 나가고 있습니다. 같이 아이디어를 내고 실행하고 학습해 나갈 사람들을 찾고 있습니다.한줄요약 —현재 제가 주도적으로 바꿔나가고 있는 팀/회사의 모습은 JobPlanet 리뷰와 다르며, 저와 같이 성장해 나갈 사람을 찾습니다.#티엘엑스 #TLX #기업문화 #조직문화 #비전 #목표
조회수 963

바이럴루프, 중요한건 알겠는데 어떻게 적용할래?

** 본 글은 문돌이 PM의 마케터 따라하기 시리즈 입니다.** 1화 보기 - 초기에 할만한 ASO (앱스토어 최적화) 팁** 2화 보기 - 초보 PM이 알아야 하는 초기 모바일앱 분석 101** 3화 보기 - 스타트업 브랜딩: 내가 보는 나와 너가 보는 나의 일치** 4화 보기 - 홍보영상 직접 제작해서 수백만원 절약해보자바이럴 루프 (Viral Loop)라는 말을 들어봤는가? 아마도 들어봤을 것이다. 소위 스타트업 한다는 분들은 모두 이 얘기 하고 다니고 있으니까 말이다. 그런데 솔직히 들어는 봤고 그게 내 제품 추천해주는 소비자가 얼마나 많은지랑 관계된 개념정도로 이해하고 있거나, 혹여 정확한 개념을 알고 있어도 이를 실제로 적용해 본 적은 없는 사람이라면 꼭 이 글을 정독하길 바란다. (나도 역시 우리 개발자한테 혼나면서 배우기 전에는 그런 사람들 중 한 명 이었다.)도대체 누가 그린 그림인지는 모르겠으나 바이럴 루프에 대해 아주 명쾌하게 설명한 그림.우선 바이럴 루프의 개념부터 살펴보도록 하자. 바이럴 루프는 Loop라는 단어에서 알 수 있듯이 소비자가 새로운 소비자를 끌고오는 매커니즘이 일종의 선순환 고리가 형성되는 것을 의미한다. 즉, 제품을 사용하는 소비자가 → 다른사람한테 공유하고 (SR - Share Rate) → 이걸 본 새로운 사람들이 → 그걸 클릭해서 내 제품으로 유입되고 (CR - Click Rate) → 이사람들 중 일부가 또 새로운 사람에게 공유를 해서 이게 루프처럼 돌아가게 되면 '바이럴 루프'가 생겼다고 말한다.바이럴 루프 개념에서 가장 중요한 것은 Viral Coefficient (VC)를 계산하는 건데, 계산 방법은 여러가지가 있지만 우리 바크 (Bark) 앱에서 쓰고 있는 방법은 다음과 같다. (% of users who invites × average number of people invites) × % of sent invites accepted뭐 영어로 써 있어서 뭔가 있어보이지만 사실 별거 아니고 크게 2 부분으로 나뉘어 있는건데 [유저가 다른 유저 초대하는 비율] × [초대받은 사람들이 억셉트 하는 컨버젼 비율] 이 두개를 곱해서 VC를 구하는 것이다.  우리는 매일 Viral Coefficient를 측정해서 User Project를 예상하고 현재 달성율과 비교해 본다.위의 표에서 두가지 결과값을 주목해야 하는데 첫번째는 물론 방금 계산한 VC이고, 두번째는 Loop Cycle이다. Loop Cycle (LC)은 기존 유저가 다른 유저를 초대해서 그 유저가 수락할때 까지의 1 사이클이 도는데 걸리는 시간을 의미한다. 바크 앱의 경우 평균 6일이 소요된다. VC는 1보다 커야 유의미한건데 예를들어 바크 VC가 1.18이라는 뜻은 100명의 유저로 시작하면 기존 100명에 바이럴루프로 유입된 118명이 합해져 위의 LC시간이 지나면 유저가 218명이 되어 있는거고, 이게 또 한번 LC시간이 지나면 475명이 되어있고, 계속 1035명, 4918명... 이런식으로 특별한 마케팅 홍보 없이 기존 유저만 가지고도 exponential curve를 그리게 되는 아주 아름다운 현상이 벌어지는 것이다. (물론 실제 현실에서는 저 VC가 1보다 클때도 있고 적을때도 있고 계속 변하기 때문에 저런 아름다운 커브는 초기에는 잘 그려지지 않는다.)언제나 처럼 서론이 길었다. 이 글에서 말하고자 하는 본문은 사실 이 바이럴 루프를 잘 계산해 보자가 아니라, 이런 아름다운 개념을 실제 내 서비스에 어떻게 적용해 볼 수 있을까에 대한 것이다. 내가 운영하는 서비스가 앱서비스이기 때문에 앱 비즈니스 중심으로 이야기가 전개되니까 알아서 본인 상황에 맞게 가감해서 듣길 바란다.1단계 - 유저가 내 앱이 너무 좋아서 알아서 주변사람들에게 공유해 줄거라는 순진한 상상은 버리자나도 초기에 범했던 오류이다. 우리는 제품만 좋다면 순진하게도 사용자가 알아서 "우와 대박, 이거 써봤어?" "나 쓰고있으니까 너도 써봐" "젠장, 이렇게 좋은걸 나만 쓰고 있을 수는 없지" 뭐 이런 생각이 들게 만들 수 있고, 알아서 주변사람들을 다단계 하듯이 내 앱을 다운받게 할 거라고 생각한다. 안타깝지만 이런 마법과 같은 일은 절대로 초기 앱 서비스에서는 발생하지 않는다. 설령 내 유저가 저런 생각을 알아서 들게 할 정도로 제품이 엄청나게 훌륭하다 하더라도 실제로 저 생각을 행동으로 옮기는 이는 아주 극히 드물다고 보면 된다. 즉, 유저가 아무 댓가 없이 본인이 쓰고 있는 앱을 주변 사람에게 추천해 주는 행위의 가격은 엄청나게 비싸다는걸 인정해야 한다.내 앱이 너무 훌륭해서 유저가 알아서 이런 다단계 행위를 해줄거라는 순진한 상상은 버리는게 바이럴 루프 전략 1단계 이다.2단계 - 내 앱에 희소성 오브젝트를 포함시키자초기 앱이 바이럴 루프를 생성시키려면 어떤 형태로든 간에 앱을 사용하는데 있어서 사용자가 어떤 희소성을 느끼게 만드는 희소성 오브젝트를 포함시키는게 아주아주 중요하다. 예를들어 옛날에 대 히트를 쳤던 애니팡은 게임을 내가 원한다고 무한정 할 수 있는게 아니라 '하트'라는 일종의 에너지 같은게 필요했고, 이 하트를 다 쓰고 나면 게임을 할 수 없게 만들었다. 또한 하트는 8분에 1개씩 자동 생성되게 만들어 놨는데 이는 게임을 계속 하기에는 턱없이 부족한 수준이라 사람들이 이놈의 하트를 얻기 위해 주변에 추천을 하거나 아예 돈주고 구매하도록 되어 있었다. 바로 애니팡의 '하트'가 아주 대표적인 희소성 오브젝트이다. 즉, 사용자로 하여금 내 앱을 무한정 사용 가능하게 하는게 아니라 어떤 제한 장치를 걸어서 사용자들이 희소성을 느끼게 만드는 오브젝트인 것이다.애니팡의 저 하트를 얻기 위해 하트 구걸 앱까지 쏟아지는 상황이 벌어질 정도로 애니팡의 하트는 앱 역사상 최고의 희소성 오브젝트였다.바크에도 이런 희소성 오브젝트가 있는데 바로 '바크 에너지'이다. 바크 에너지는 모든 유저가 기본적으로 100씩 가지고 있고, 한번 짖을때 마다 1씩 감소하고, 메시지 바크를 보내게 되면 10씩 감소한다. 물론 1분에 1%씩 자동으로 차게 만들어 놨지만 애니팡과 마찬가지로 바크 헤비 유저들에게는 턱없이 부족한 수준이기에 이게 희소성 오브젝트 역할을 하고 있다.바크에는 '바크에너지'라는게 있어서 사용자가 바크를 짖을때 마다 저 가운데에 보이는 배터리 바가 금방 닳아 없어진다.3단계 - 희소성 오브젝트를 활용해서 추천에 대한 보상으로 제공하기본인의 앱에 희소성 오브젝트를 만들었고, 이게 실제로도 뭔가 유저들에게 희소성을 느끼게끔 하는 오브젝트로 잘 작동하고 있다면 이제 이 오브젝트를 활용해서 유저들에게 추천에 대한 보상으로 제공하는 기작을 만들 차례이다.다시 애니팡 사례로 돌아가보면, 애니팡에서는 모두가 알다시피 저 하트를 구하기 위해 사람들에게 카톡 메시지를 뿌려대야 했고, 그 중 일부가 그 메시지를 보고 애니팡으로 들어오면 내가 하트를 겟할 수 있는 기작이 마련되어 있었다. 즉, 애니팡의 희소성 오브젝트인 '하트'를 유저들에게 추천 행위의 보상으로 제공하는 기작을 처음부터 만들어 놨기에 아주 초기부터 바이럴 루프가 형성될 수 있었던 것이다.이놈의 하트 구걸 카톡이 짜증나서 카카오톡을 지워버린 사람들도 여럿 있었을 정도로 애니팡의 추천제도는 바이럴 루프 전략의 전설이 되었다.바크에서도 역시 추천에 대한 보상 개념으로 희소성 오브젝트인 바크에너지를 다음과 같이 활용하고 있다. 앱 내에 'Invite Friends'라는 친구 추천 버튼이 있는데, 그 버튼을 클릭하게 되면 그 사용자의 ID 넘버가 포함된 앱 다운로드 URL이 자동으로 생성되고 이를 SNS나 주변 사람들에게 뿌린 후에 누군가가 그 URL을 클릭해서 앱을 다운받게 되면 그 유저는 +10 point의 추가 바크에너지를 얻게 된다. 즉, 처음에 Max 바크 에너지가 100이였는데 친구 1명 초대하면 Max가 110이 되는 것이다.바크 앱 내에 있는 친구 초대하기 버튼을 통해 주변 친구를 소환하면 추가 바크에너지 10% point를 얻게 된다.바크 앱은 현재 이 기작을 통해 바이럴루프를 만들려고 노력하는 중이고, (물론 애니팡같은 전설에 비해 먼지같은 수준이기는 하나) 이를 통해 2주만에 무려 70명 넘게 소환한 사람도 있을 정도로 반응이 괜찮은 편이다. 아직 정식 출시한지 한달남짓 밖에 안된 앱이라서 이 바이럴루프 기작은 앱의 성장에 아주 큰 도움이 되고 있다.지금까지 논의한 내용을 총 정리해 보면 다음과 같다.1. 바이럴 루프는 계산하는게 중요한게 아니라 저 루프를 어떻게 만드느냐가 중요하다.2. 내 제품이 좋으면 초기 유저들의 추천 만으로도 Viral Coefficient가 1이 넘을거라는 순진한 상상은 버려야 한다.3. 내 제품에 유저들이 뭔가 희소성을 느끼게끔 만드는 희소성 오브젝트를 반드시 만들어 놔야 한다.4. 희소성 오브젝트를 유저 추천 행위의 보상으로 활용하자.한가지 덧붙이자면 개인적으로 4번, 즉 유저 추천행위의 보상으로 본인 제품에 탑재된 희소성 오브젝트가 아닌 다른 현금성 보상 이벤트로 대신하는건 좋지 못하다고 본다. 왜냐하면 위에서 설명했듯이 Viral Coefficient가 1이 넘지 못하면 아름다운 exponential curve가 생성되지 않는데, 현금성 보상 이벤트를 돈이 넘쳐나서 계속 진행할 수 있는것도 아니고, 설사 그렇다 해도 현금성 이벤트는 금방 내성이 생기기 때문에 결국 VC가 1 밑으로 떨어지게 될 것이기 때문이다. 따라서 바이럴 루프 전략의 핵심은 결국 얼마나 매력적인 희소성 오브젝트를 고안해 내느냐에 달려있다고 해도 과언이 아니다.글쓴이는 스팀헌트 (Steemhunt) 라는 스팀 블록체인 기반 제품 큐레이션 플랫폼의 Co-founder 및 디자이너 입니다. 비즈니스를 전공하고 대기업에서 기획자로 일하다가 스타트업을 창업하고 본업을 디자이너로 전향하게 되는 과정에서 경험한 다양한 고군분투기를 연재하고 있습니다.현재 운영중인 스팀헌트 (Steemhunt)는 전 세계 2,500개가 넘는 블록체인 기반 앱들 중에서 Top 10에 들어갈 정도로 전 세계 150개국 이상의 많은 유저들을 보유한 글로벌 디앱 (DApp - Decentralised Application) 입니다 (출처 - https://www.stateofthedapps.com/rankings).스팀헌트 웹사이트 바로가기
조회수 1087

아무것도 하기 싫은데, 일이 쌓였을 때 우리는...

보통 뭔가를 하고싶거나 하기 싫은 것을 구분하는 건 두뇌의 역할입니다. 두뇌는 굉장한 냠냠이입니다. 활동하기 위해선 많은 에너지를 필요로하죠. 흔히 포도당을 에너지원으로 삼지만, 항상 그런 것은 아닙니다. 때론 간에서 지방을 분해하며 생성되는 케톤체에서 에너지를 얻기도 하죠. 코코넛 등에 많이 함유되어 있다고 해요. (공부가 안될 땐 역시 코코팜....)물론 그렇다고 해서 지방이 줄어드는 것은 아닙니다. 아시다시피 우린 풍부한 지방을 지니고있으니까요. (배나..배..또는 배같은 곳에)당분해를 통해 에너지를 만든 두뇌는 아미노산의 일종인 글루타메이트와 GABA(Gamma-aminobutyric acid)을 통해 흥분과 억제작용을 만들어냅니다. 이 두 신경전달물질은 뉴런사이에 전기자극을 찌릿찌릿 만들어서 E-E-E-Electric Shock 전 전 전류들이 몸을 타고 흘러 다녀 기 기 기절할듯 아슬아슬 찌릿찌릿 충 충 충분해 네 사랑이 과분해 격 격 격하게 날 아끼는 거 다 알아 블랙홀처럼 (Yeah) 빨려들어가 (Haha) 끝이 안보여 (Yeah) 떨어져 쿵 (Oh).....여튼 글루타메이트는 흥분과 자극을 담당하는 신경전달물질이예요. 적당히 나오면 두뇌의 활동을 활발하게 만들어주지만, 너무 나오면 발작을 일으키거나 뉴런을 싸늘한 주검으로 만들죠. 반면 GABA는 원하지 않는 생각을 억제할 수 있게 만들어요. 예를 들어 개무서운 공포영화 귀신모습이(이를테면 곤지암의 슈비슈비같은) 1년365일 머릿속에 떠돈다고 생각해봅시다. 삶이 얼마나 지옥같겠어요. 그래서 GABA는 이러한 자극을 억제해서 정상적인 삶이 가능하도록 만든답니다. GABA가 제대로 작동하지 않으면 무단침입이라는 증상이 발생하면서 환각이나 원치않는 기억들이 마구 떠오르고 해리성 정신장애나 조현증같은 증상을 보이기도 해요.글루타메이트갑자기 생물학공부를 하는 느낌이네요. 위와 같이 두뇌는 에너지를 냠냠하고 전기작용을 뿜어내면서 활동량을 조절하는데 아무것도 하기 싫고 누워만 있고싶을 때는 이 과정에 문제가 생겼거나 그냥 귀찮은 경우라고 할 수 있어요. 흔히 문제의 종류는 둘 중 하나입니다. 1. 당이 떨어졌거나2. 할 일이 너무 많거나1번의 경우는 두뇌의 에너지원인 포도당이나 케톤체가 부족해지면서 일시적으로 에너지원이 앵꼬난 상태가 되는 거예요. 물론 실제로 그렇진 않습니다. 느낌일 뿐이죠. 두뇌는 포도당이 떨어졌다고 작동을 멈추거나 하진 않아요. 지속적인 신경전달물질을 만들어내고 재흡수하는 과정에서 정말 중요한 건 둥실둥실 뇌를 둘러싼 뇌수(물주머니)안에 이온농도예요. 풀때기에 많이 들어있는 칼륨과 짜디짠 나트륨이 이 농도를 유지시키는 데 이 때 필수적인 건 홈런볼이나 바닐라라떼 같은 게 아니라 '산소' 입니다. 사무실에 5명이나 숨쉬고 있으니 산소가 떨어지고 아무것도 하기 싫어지면서 숨이 막히고 가슴이 답답하고 퇴사하고 싶은 거예요. 자꾸 하품이 나오는 건 일을 하기 싫어서가 산소가 부족한 거니까, 일을 때려치고 빨리 바다나 숲으로 가야해요.(아무말)산소가..부족해!!!!!!!!!!!2번의 경우는 할 일이 45개나 쌓여있는데 내일은 또 내일의 일이 있을 것이라는 공포스러운 기억을 억제시키기 위한 GABA의 역할이예요. GABA는 기억하고싶지 않은 기억을 억제시킨다고 했잖아요. 그래서 존나 무서운 업무량을 잊게 해버리고 두뇌의 활동도 억제시켜버려요. 이제부턴 아무것도 생각하지 말고 그냥 어항바라보는 고냥이처럼 가마니 있으라는 거죠. 신경전달물질은 오랜 진화의 산물이예요. 대부분의 신경전달물질은 아미노산의 일종인데, 아미노산은 지구에 생명체가 태어난 그 시절부터 생명을 구성하던 원시단백질이예요. 우리몸을 구성하는 기본적인 단백질이기도 하죠. 그러니 이 분의 작용을 우리 전두엽으론 막을 수 없어요. 진화의 역사와 궤를 함께하신 분이잖아요. 대자연의 명령이니까 우린 따라야해요. (헛소리)이런 느낌보통 이렇게 두뇌가 아무것도 하기 싫을 땐 신체에 이상한 명령을 내리곤 하는데, 때문에 특이한 행동들이 발생하곤 한답니다. 가끔은 이성적으로 이해하기 힘든 것들이죠. 몇 가지 한 번 알아보도록 할께요. 사실 이걸 왜 알아보는지 모르겠어요. 아마 제가 일이 하기 싫은 거겠죠. 이 글도 그러한 특이한 행동 중 하나입니다..1. 벽을 쳐다보는 것 조차 재미있다.사실 일을 하기 싫은거지 다른 것에는 계속 주의집중 할 수 있는 경우예요. 딴짓이라고 하죠. 지금 이 글이 그래요.샴푸성분도 재미있음..2. 예전 사진 뒤적이기여행갔을 때 사진을 다시 뒤적여보거나 자기 셀카를 보면서 프사 뭘로 바꿀 지 고민해요. 신기하게도 어느 때보다도 신중하게 셀카에 집중할 수 있어요. 여행갔을 때 사진을 보다보면, 아래의 행동도 함께 동반되요.3. 어디 여행갈 지 괜히 검색해보기여행뽐뿌를 떠올리게 되면 괜히 어딜 가고싶어져요. 돈이 있든 없든 그냥 여행후기나 사진, 또는 스카이스캐너로 뱅기값을 검색하면서 대리만족을 느껴요. 매우 즐거워져요. 특히 아이슬란드나 오로라사진은 효과가 뛰어나요. 하아...언제가지? 하면서 남은 연차와 대체공휴일을 막 이리저리 조합해보기도 해요.너무 대놓고하면 안돼요.4. 로또 당첨되지 뭐할지 구상하기흔히 밤에 자기전에 많이 하는 생각이예요. 한 번 떠오르면 그 날 잠은 다 잔거예요. 돈이 많다는 건 경우의 수가 많아진다는 얘기와 같아요. 생각할 거리가 넘쳐나죠. 롤랜드 에머리히 감독도 이 공상을 따라올 수 없어요. 사실 돈 생기면 쓸 곳이 그리 많지 않아요. 차/집/땅을 사거나 기껏해야 먹을 거,  평소 사고싶던 콜렉션이나 사 모으는 정도가 고작이예요. 하지만 구체적으로 들어가면 한도끝도 없죠. 이미 머릿속에선 마당있는 집에 개가 뛰어놀고 있어요. 견종까지 고민하다보면 어느새 출근시간이 다가와요. 해가 떠오르면 엄청나게 공허해져요. 그게 다 무슨 소용인가....5. 어딘가 간지러워뭔가 하기 싫을 땐 맨날 어딘가 간지러워요. 긁다보면 그 옆도 간지럽고. 허리도 뭔가 불편하고, 왠지 목도 말라요. 물을 마시면 쉬가 마려운 것 같고 쉬싸다보면 똥도 마려워요. 똥싸고 나면 눈이 뻑뻑하고, 눈물액 넣고나면 어깨에 오십견이 느껴지기도 해요. 14년전 넘어졌던 무릎도 다시 욱신거리는 느낌이예요. 몸의 예민함이 거의 스파이더센서와 같아요. 우주 먼 곳 어디에선가 초신성이 폭발하는 것도 느낄 수 있을 것 같아요.6. 배고파하이에나는 하루종일 뭔갈 킁킁대며 찾아다녀요. 우리는 두번째서랍을 찾아다녀요. 계속 뭔갈 먹어요. 딱히 진짜 배가 고픈건 아니예요. 그냥 뭔가 손과 입이 심심해서예요. 피해자는 뱃살이예요.7. 유튜브봐유튜브는 올레TV보다 재미있어요. 게다가 연관동영상을 끊임없이 보다보면 하루해가 저물어요. 요즘엔 정말 끊임없이 방탄소년단의 광고가 나오는데, '이 모든 건 우연이 아니니까~ 디에네이!~' 이것만 하루에 50번은 듣는 것 같아요. (요즘 유튜브틀면 5초광고에 맨날 방탄소년단나와요. 한 번 틀어보세요.)8. 못일어나보통 누워있다라고 하면 일하다가 눕는게 아니라 애시당초 아침부터 누워있었을 가능성이 높아요. 그리고 하루종일 못일어나요. 머리의 무게는 4.5~6kg에 가까워요. 엄청나게 무겁죠. 그 머리를 들고 일어날 순 없는 거예요. 보통 이런 날엔 꿈을 시리즈로 꾸는데 놀랍게도 극적인 장면에서 항상 깨요. 그리고 다시 자면 2탄이 시작되죠. 흥미진진한 하루를 겪을 수 있어요. 시간개념이 사라지고, 현실감각도 사라져요. 밥도 안먹어요. 저녁은 치킨을 먹어요.내가 왜 일어나야 하지?9. 연락처뒤지기갑자기 인연의 소중함을 깨닫기도 해요. 연락처나 카톡숨김친구, 카톡친구목록등을 뒤지며 말 걸 사람 없나아아..하고 찾아봐요. 헤어진 애인, 싸운 사람, 나쁜 상사, 광고, 대부업체, 절교한 친구, 결혼해서 연락하기 뻘쭘한 친구, 그냥 어색한 친구, 친한 것 같았는데 딱히 말걸긴 싫은 사람 등등...이 눈에 보여요. 대부분은 인사해도 그 다음 할 말이 없기에 그냥 프사나 구경하다가 추억에 잠기곤 해요.10. 다른 일 하기시킨거 말고 다른 일 하고 있어요. 그것도 엄청 열심히 하고 있어요. 심지어 굉장히 잘돼요.11. 이상한 노래부르기정체를 알 수 없는 노래를 흥얼거리기도 해요. 제목도 뭣도 없어요. 어르신들이 낚싯대 찾으러갈 때 어디있나보자아아아~~ 하면서 혼잣말에 가락을 붙이는 것과 비슷해요. 종종 아침부터 내 머릿속에서 떠나지 않는 노래를 하루종일 흥얼거리는 경우도 있어요.12. 지르기 or 아이쇼핑괜히 집안에 뭔가 부족하진 않은지 혹시 특가세일을 갑자기 하고있진 않은 지 궁금해져요. 저 같은 경우엔 마켓컬리나 무인양품을 뒤적거려요.13. 스케쥴정리하기정리를 하려고 하는게 아니라, 이걸 언제까지 미뤄도되는지 계산하고 있는거예요. '진짜 빡세게하면 이틀이면 하겠지?' 라는 생각을 해요. (물론 할 순 있어요. 빡셈의 정도가 기대이상이어서 그렇지)대학일기 자까님 감사요14. 남의 소식보기페북이나 인스타를 뒤져요. 그냥 스크롤 놀이하는거예요. 좋아요도 투척해줘요. 댓글도 남겨요. 대부분 이런 상태에선 'ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ미친' 정도의 성의없는 댓글이 많아요.15. 담배피기흡연자들은 막 담배가 땡겨서 피는 경우도 있지만 실은 심심해서 그냥 피는 담배가 더 많아요.16. 돈계산하기가계부앱을 쓰거나 자산정리를 해놓는 분들은 괜히 이번달 얼마 쓸수있지? 얼마 남아있지...하고 계산해봐요. 오천오만번 계산해도 숫자가 달라지는 건 아니지만 407만원이 있으면 왠지 7만원은 그냥 써도될 것 같아요. 그리고 12번으로 돌아가요.17. 핸드폰 게임하기아무것도 하기싫을 때는 폰게임만큼 시간때우기 좋은 게 없어요. 한 판만 해야지라고 결심해요. 배터리가 75%였는데 한판하고 나니까 43%가 됬어요.배터리가 너무 빨리 닳는건가?18. 다른 사람 뭐하나 구경하기괜히 미어캣마냥 두리번거리며 주변사람은 뭐하나 살펴봐요. 사람구경하는거죠. 좀 더 나가면 분석도 해요. 저 사람 NCS준비중이네, 쟤 쟤 분명 취준 한 4개월차정도? 됬겠다. 이번에도 떨어지겠네 게임하면서 에흐 쯧쯧..아 시발 일해야하는데..아...아 하기싫어.. 언제하지..집에 갈까..하아..19. 멍때리기무상무념의 세계로 빠져들어요. 진짜 아무 생각도 없어요. 초점도 없어요. 영혼도 없어요. 공허의 장막을 들추고 내면을 엿보았지만 그곳엔 암흑뿐이었어...20. 쓰기싫어요.보통 이렇게 마지막 하나 남겨두고 하기 싫어져요. 안 쓸래요.인간은 하루하루 성장하고 발전해나가는 존재예요. 내일의 내가 오늘의 나보다 더 발전된 모습이란 소리죠. 그러니 오늘 이 일을 하는 것보다 내일의 나에게 맡겨보는 게 더 현명할 수 있어요. 내일의 나는 오늘의 나보다 더 똘똘할테니까요. 뭔 소리야....아 하기 싫어...
조회수 629

9 to 6 : 만들어진 허구의 시간

주4일 근무내가 처음 사회 생활을 시작할 즈음에는, 지금은 당연하게 생각하는 주 5일 근무를 일부 회사에서만 시작하고 있었다. 운 좋게 주 5일 근무를 시행하는 회사에 첫 입사를 한 내게는 토요일에 출근해야하는 몇몇 지인들의 주말이 안타깝기도 했고 무척 짧게 느껴졌었다."토요일 오전 반나절 더 일한다고 성과가 더 좋을까?"가끔 술자리에서 (부럽게도) 일부 유럽에서 선행적으로 시행하고 있는 주 4일 근무에 대해 얘기할 때가 있는데, 이  주제는 늘 이런 논쟁으로 마무리 된다. 생각만해도 흐뭇하다.금요일이 좋을까? 수요일이 좋을까?이 때 꼭 한쪽에서 얼굴을 찡그리는 친구들이 있다. 자기 사업을 하는 친구들이다. 이들은 고개를 절래절래 흔들며, 벌써부터 근심 가득한 얼굴로 있어서는 안될 일을 얘기하고 있다는 투로 직장인의 행복한 상상을 씁쓸해한다.과연 정말 일하는 시간이 줄어들면 일이 제대로 되지 않을까?'사피엔스'의 저자 유발하라리는 인류 문명이 지금처럼 발전할 수 있었던 근거를 '사기와 거짓말'이라고 표현한다. 인간이 상상력을 통해 만들어낸 허구의 개념을 언어를 통해 집단적으로 전파함으로써 세상을 지배할 수 있었다는 것이다.종교와 국가의 개념도 세상을 통제하기 위해서 만들어낸 실존하지 않는 허구이며, 화폐와 자본주의도 인간이 집단적으로 믿고있는 상상 속의 개념이라는 것이다. 그렇게 믿게 함으로써 엄청난 규모의 집단을 통치할 수 있게 된 것이다.근대에 시작된 의무 교육은 인류가 갖춰야할 필수 개념을 차곡차곡 주입시키는 시스템이었고, 이를 통해 만들어진 허구의 개념을 모두의 상식으로 의심없이 받아들이게 한 체제의 기틀이 되어왔다.기술의 발달로 사람이 해야할 노동을 기계가 대신하고, 앞으로는 사람의 두뇌로 했던 일을  인공지능으로 하나씩 대체 된다고한다. 이렇게 문명이 발달했음에도 불구하고 왜 정해진 출근시간에 야근까지 불사하고 하루하루를 보내야할까?무언가를 하는 척하며 보내는 시간하루 8시간은 정말 필요한 시간일까? 우리는 하루에 정말 필요한 일을 하는 것일까? 하루 8시간이 주어졌기 때문에 그 시간을 채우기 위해 중요하지도 않은 무언가를 애써 만들어내고 있지 않은가? 많이 채워진다고 생산성이 올라갔던가?단순히 일을 적게 하자는 것이 아니다. 생산성있게 일이 되게하기 위한 방법을 찾아보자는 것이다. 정해진 시간 땡 출근해서 정해진 시간에 슬그머니 눈치보며 퇴근하지 않고도 집중력있게 의미있는 일을 처리할 수 있는 방법을 찾아보자는 것이다. 그리고 시간을 채우기위해 억지 일을 만드는 것을 줄이고 정말 필요한 일에 시간을 집중하자는 것이다.중요한 일을 더 잘한다고해서 그 일이 중요해지는 것도 아니고, 시간이 더 필요한 일이라고해서 그 일이 더 중요해지는 것도 아니다.더 적게 일하고 더 자유로워져야 성과가 올라갈 수 있다. 시간에 비례하는 일이라면 그건 기술로 대체될 일일 것이다.자신이 원하는 곳에서 원하는 시간에 꼭 해야하는 일에 집중할 수 있어야 한다. 그리고 내가 스스로 생산적인 것처럼 느끼기위해 만들어내는 일을 피해야한다. 또는 정말 중요한 일을 피하기 위해 다른 중요하지 않은 일을 만들고 있지 않나 반성해야 한다.분명 절대시간이 필요한 일이 있다. 정해진 시간에 처리되어야하는 업무도 반드시 존재한다. 다만 인간의 노동을 무의미한 허구의 시간의 틀에 맞춰 소모적으로 의미없이 날려버리는 일은 바로 잡아야 한다. 누구에게도 도움이 되지 않기 때문이다.나는 분명 주 4일 근무의 시대가 올거라 믿는다.그리고, 줄어든 하루는 수요일도 금요일도 아닌, 자신이 선택할 수 있는 요일이었으면 좋겠다.인간에겐 선택할 자유가 있으니까...
조회수 4521

문돌이가 개발자랑 일할만큼만 프로그래밍 익히기

나는 대기업(스러운 곳)의 경영기획팀의 기획자로 5년간 일하다가 작년 초 회사를 그만두고 스타트업을 하겠다고 나왔다 (이거 뭐 써먹을데가 있어야지). 흔히 스타트업에서 '기획'한다고 하면 그건 대부분 '모바일/웹 서비스 기획자'를 의미한다. 이들은 개발자, 디자이너, 마케터들 사이에 새우 등 터지듯 일하는 경우가 많기 때문에 프로그래밍 배경지식이 없으면 특히 개발자들에게 x무시 당하기 쉽다. 이 글에서는 나같은 문돌이가 짜투리시간 약 3-4개월만 투자하면 초보 수준의 웹사이트는 개발 가능할 정도의 프로그래밍 스킬을 익혀서 개발자랑 어느정도 대화가 되는 PM이 되는 법에 대해 논하고자 한다. 참고로, 책보고 공부하는거 질색인 사람들에게 강추한다.지금부터 내가 설명하려는 '문돌이의 프로그래밍공부 방법론'은 어디까지나 다음에 해당하는 사람들에게 어울리는 방법임을 미리 밝혀둔다.1. 나는 학원같은거 다니면 적어도 반 이상은 완주할 정도의 인내력이 있다.2. 기본적인 영어 리스닝 실력은 있다.3. 내 목표는 개발자 되는게 아니라 개발자랑 일하는거다 (-> 진짜 프로그래머가 되는법은 절대로 내가 한 방법론으로 해서는 안된다.. 이건 그러니까.. 어디까지나 야매) Step 1. 생활코딩으로 공부하지 말고 준비운동만 하기 (1주일)생활코딩은 이제 너무 유명해져서 많은 문돌이들이 코딩 공부하는 성역이 되어버렸다. 그런데 아이러니한건 여기를 아는 사람은 많은데 여기서 코스 하나를 완주했다는 사람 보기는 힘들다는거. 생활코딩 사이트에 보면 생활코딩 작심 40시간 라이브 가 있는데 그야말로 40시간동안 웹서비스의 방대한 영역을 전부 건드리는 무지막지한 코스로서, 아무리 이고잉님이 쉽게 리드한다지만 문돌이가 처음부터 저걸 다 따라하는건 무리가 있다고 생각한다. 하지만, 이고잉님이 프로그래밍의 세계에 대해 전반적인 그림을 아주 잘 그려주시기 때문에 한번쯤 완주하고 나면 앞으로 내가 뭘 공부해야 하겠구나 하고 감 잡는데 큰 도움이 된다. 여기서 명심할 것은 이걸 그냥 가벼운 마음으로 시청만 하라는거다. 설치하라는거 다 설치하고, 코딩하라는거 다 코딩하면서 너무 진지하게 보지 말고, 그냥 시청만 하면서 프로그래밍 세계에 대해 맛만 보는거다. 왜냐면 완전 초보자가 AWS 트고, 리눅스, 우분투 설치하고, 깃허브에 서브라임까지 생소한 툴들 만지작하다 보면 겁부터 먹고 그냥 접게되는 경우가 많기 때문이다.생활코딩으로 프로그래밍의 방대한 세계의 맛만 보자Step 2. 유데미에서 Ruby on Rails 프로그래밍 코스 완주 (2개월)요즘 온라인에서 프로그래밍 배우는 사이트가 정말 많아졌다. 유데미, 유다시티, 칸, 코세라, 린다닷컴 등등 내가 아는 곳만 해도 10군데는 된다. 개인적으로 처음 프로그래밍 공부하는거면 왠만하면 한글로 배우지 말고 영어로 배우는 것을 추천한다. 객체 지향, 변수, 매개변수, 상수, 선택자, 제어문... 등등 한글로 배우면 이런 한문어로 된 단어들로 가르치는데 솔직히 더 어렵기도 하고 어차피 나중에 코딩하다 막히면 가장 많이 찾아볼 사이트가 스택오버플로우일텐데 저거 다시 영어로 찾아보느니 아예 처음부터 저걸 object-oriented, variable, parameter, constant, control statement... 요런식으로 인식해 버리는게 더 낫기 때문이다.해외 온라인 사이트는 많은 사람들이 유다시티를 얘기하는데 나는 유데미를 추천한다. 이유는 간단하다. 우리의 목표는 프로그래머로 취직하는게 아니라 프로그래머랑 일을 같이 하는게 목표이기 때문이다. 유다시티는 진짜 프로그래머 취업을 목표하는 사람들을 위해 디자인되었기 때문에 일단 수강료가 비싸고, 퀴즈도 엄청 풀어야 하고, 출석률도 체크하고, 아무튼 엄청 까다로운데 비해 유데미는 내가 필요한 특정 스킬들만 골라서 퀴즈같은거 없이 (있어도 점수체크 없음) 빠르게 수강 가능하고, 수업료도 저렴한 편이고, 무엇보다도 강사들이 대부분 실제 현업 종사자들이어서 가르치는 내용이 매우 실무적이다. (유다시티는 대학 백그라운드에 좀 교수같은 느낌)유데미에는 내가 필요한 특정 분야만 골라서 빠르게 마스터가 가능한 구조로 되어 있다.아까 1단계의 생활코딩 40시간 라이브를 전부 들었다면, 이제 프로그래밍의 세계가 대략 클라이언트-서버 프로그래밍의 두 영역으로 구분될 수 있고 (하드웨어, OS 이런거 제외), 프로그래밍 언어가 뭔지 (Ruby, Python, PHP 이런거), 프레임워크가 뭔지 (Ruby on Rails, Django, CodeIgnitor 이런거) 정도는 감이 생겼을 거다. (저게 각각 뭔지는 몰라도 되고 그냥 카테고리화만 할 줄 알아도 된다는 뜻임)이 글에서는 간단하게 프로그래밍 언어와 프레임워크의 차이점만 짚고 넘어가 보자. 프로그래밍 언어는 말그대로 소프트웨어를 작성하기위해 필요한 언어규약을 의마한다. 즉 내가 미국사람과 대화를 하려면 영어라는 언어가 필요하듯이 어떤 웹서비스를 통해 사용자와 통신하려면 수 많은 프로그래밍 언어들 중 내가 필요한거를 사용한다는것으로 이해하면 편하다. 흔히 고급언어-저급언어 이런말이 있는데 뭐 고급언어가 더 좋은거고 저급언어가 나쁜거고 이런말이 아니고, 최대한 사람이 사용하는 언어와 가까우면 고급언어라 부른다. 반대로 컴퓨터가 CPU 레벨에서 비트단위로 직접 사용하는 언어는 저급언어라고 부르고 기계어, 어셈블리어 뭐 이런걸 말하는데 이런건 지금 몰라도 된다. (생활코딩에서 이고잉님이 빙산의 일각 그림으로 아주 명쾌하게 설명해 주신다) 즉, 우리 초보레벨에서 프로그래밍 언어라고 하면 Ruby, Python, PHP, Java, JavaScript, C, C++, HTML, CSS 요런거 말하는거라고 이해하면 되고, 저기서 HTML, CSS는 웹브라우저에서 지금 당신이 보고있는 페이지 띄워주기 위해 필요한 언어이다. 즉, HTML, CSS는 웹페이지 코딩하려면 반드시 들어가는 내용이고, 좀 현란한 인터렉션도 넣으려면 JavaScript도 이 범주에 필요할 수 있고, 나머지 Ruby, Python, PHP, Java, C들 중에서 당신이 기본 베이스로 할 프로그래밍 언어를 선택하면 된다는 뜻이다. 정리하면, |HTML, CSS, JavaScript (선택) | + |기본 베이스로 할 언어 한개| 요렇게 공부를 해야 한다는 뜻이다. 프레임워크는 저기 언급한 프로그래밍 언어들로 프로그래밍을 쉽게 할 수 있도록 필요한 뼈대를 미리 설계해 놓은것, 좀더 어려운 말로는 재사용이 가능한 클래스들과 그 관계들을 미리 정의해 놓은 패키치같은거라고 이해하면 되는데, 각 기본 베이스로 선택하는 언어별로 프레임워크가 정해져 있다. 예를들어 Ruby 언어를 공부하면 프레임워크는 Ruby on Rails, Python을 공부할거면 프레임워크는 Django를 같이 공부하는 식이다.정리하면, 생활코딩 강의로 그냥 저 전반적인 세계에 대해서는 맛만 보고 당신은 그냥 Ruby와 Ruby on Rails를 선택해서 배우도록 하자. 왜 Ruby on Rails로 공부해야 하는가에 대해서는 여러가지 내 나름의 이유가 있는데 첫째, 컨벤션이 매우 엄격해서 비록 처음에는 러닝커브가 조금 있는 편이지만 초보자가 실수할 여지를 최대한 줄여준다. 예를들어 내가 써야하는 구문이 살짝만 틀려도, 명령어 하나의 대소문자만 틀려도 레일즈는 아예 페이지 전체를 보여주지 않는다. 이게 장점일수도 단점일수도 있겠지만 초보자가 어느정도 돌아가는 웹사이트 만들기 위해서 말도안되게 코딩한게 지저분하게 돌아가는 웹사이트보다는 좀 오래걸리지만 한번 만들고 나면 제대로 돌아가는 웹사이트가 운영하는데 더 유리하겠다라는 내 개인적 의견이다. 둘째, 레일즈에는 Ruby Gem이라고 불리는 아주 강력한 서드파티 라이브러리가 있다. 물론 대부분의 프로그래밍 언어에서 서드파티 라이브러리는 다 있지만, 루비젬이 강력한 이유는 앞서 얘기한 첫번째와 유사하다. 다른 언어의 라이브러리는 초보자가 그대로 가져다 쓰면 분명 에러 백퍼일것이다. 내 상황에 맞게 어느정도 변형할 수 있는 수준의 프로그래밍 능력이 있어야 할텐데 문돌이 초보자에게 그걸 기대하긴 어렵다. 반면 루비젬은 (전부 다 그렇진 않지만) 진짜 옛날 MS도스 시절 디스크 갔다 꼽고 인스톨 클릭하면 알아서 프로그램 깔아주던 느낌으로 젬파일을 인스톨하면 대부분의 라이브러리가 알아서 장착된다.루비를 선택해야 하는 마지막 이유는 (또 가장 중요한 이유는) 실제 웹사이트를 Deploy하는데 있어서 아무런 지식이 필요 없이 가능하다는데에 있다. 당신의 컴퓨터에서 코딩한 웹페이지들을 실제로 유저가 사용하기 위해서는 크게 다음 3가지가 필요하다. 1/서버 - 당신이 만든 웹페이지들을 어딘가에 가져다 놔야 유저가 찾아올수 있다. 당신 컴퓨터로 유저가 직접 접속할 순 없지 않은가. 2/도메인 - 당신 집에 유저가 놀러오려면 집주소가 필요한것 처럼, 당신이 올려놓은 웹페이지를 호출하기 위해서 필요한 주소같은 거다. 3/Deploy (배포) - 위 준비된 내용들을 실제 서버에 설치하고 유저가 찾아올 수 있게 만들어주는 일. 이 3가지 영역은 보통 백엔드라고 부르고 아마존 클라우드 서버니 하는게 다 저거 매니징하기 위해서 활용하는 서비스 이다. 아무튼, 이 영역은 나같은 평범한 문돌이에게 넘사벽의 영역이다. 괜히 배우려고 낑낑댈 필요도 없다. 레일즈를 배우면 나중에 디플로이할때 '헤로쿠'라는 서비스를 활용할 수 있는데 (물론 다른 언어도 가능하지만 쓱 읽어보면 레일즈로 하는게 젤 편해보임) 저기 웹사이트에서 시키는 대로 코드 복붙하고 명령어 몇번 치면 디플로이가 정말 마법처럼 이루어지고 덤으로 공짜 도메인까지 준다!! (물론 일정 트래픽 이하에는 서버비도 공짜) 난 이 3번째 이유만으로도 초보자들이 첫 배우는 프로그래밍 언어로 루비만큼 강력한게 없다고 생각한다.서론이 너무 길었다.. 아무튼 결론은 아까 말한 유데미 사이트에서 Ruby on Rails로 웹사이트 만들기 프로그램을 찾아서 공부하라는 말을 하려고 이 긴 설명을 한 거다. 유데미에서 레일즈로 웹사이트 만드는 코스 찾아보면 한 20개는 넘게 검색되는데, 다음 기준에 부합하는 내용의 코스를 선택하도록 한다.1. Bootcamp가 제목에 있는 코스 - 부트캠프라고 명시한 코스는 대부분 웹서비스 하나를 실제 서버에까지 올려서 완전하게 구현하는 코스를 말한다.2. Ruby on Rails를 활용하는 코스 - 각 코스 실라부스에서 Ruby on Rails를 활용하는지 확인해 본다.3. 레이팅이 적어도 4.5 이상, 별점 준 학생수가 최소 200 이상인 코스를 선택한다.참고로 내가 들었던 과정은 The Complete Web Developer Bootcamp라는 코스인데, 이미 1년 넘은 과정이기 때문에 이걸 듣지 말고, 그냥 이 코스의 실라부스를 참고해서 유사한 최신 코스를 찾아서 완주하길 바란다. 보통 2-3달 코스로 디자인 되어 있는데 하루에 1시간정도씩만 투자하면 2달이면 완주 가능하도록 되어있다.내가 수강했던 레일즈로 웹사이트만드는 부트캠프 코스. 이 코스의 실라부스를 참고해서 수강할 코스를 결정하도록 하자.Step 3. 부트스트랩 (Bootstrap) 숙달하기 (1주일)부트스트랩이란 아까 잠시 짚고 넘어간 HTML, CSS등의 웹페이지를 구현하는 언어를 위한 프레임워크이다. 사실 HTML, CSS도 초보자가 자유자재로 내가 구상한대로 화면에 딱 띄우도록 코딩하는건 매우매우 어렵다. 심지어 버튼하나 중앙정렬 하는것도 쉽지 않다. 부트스트랩은 이런 일들을 마법같이 쉽게 해주는, 그리고 모바일 반응형 구현도 코딩 몇줄로 가능하게 해주는 프레임워크이다. 아마도 당신이 선택할 유데미 코스에서 부트스트랩 활용하는 법이 포함되어 있을 듯 한데, 거기서는 정말 기본적인 내용만 훑어볼게 뻔하니 1주일정도 투자해서 부트스트랩을 제대로 익히고 넘어가도록 하자. 부트스트랩 사용법은 유데미에서 저렴한 코스를 하나 찾아서 수강하는것도 좋은 방법이고 그리 어렵지 않으니 부트스트랩 공식 웹사이트에서 필요한 내용만 골라서 본인의 웹사이트에 이것저것 적용해보며 익히는것도 좋다.부트스트랩은 초보자에게 어려울 수 있는 CSS의 박스모델, 플로팅, 정렬 이런걸 마법같이 쉽게 해주는 프레임워크이다.Step 4. 부트스트랩 코딩 되있는거 통째로 다운받아서 내 포트폴리오 사이트로 변형해보기 (3주일)여기까지 왔으면 당신은 이미 웹서비스에 관해서는 개발자랑 어느정도 대화는 되는 수준이 되어있을 것이다. 하지만, 여기까지 왔는데 실제로 내가 직접 코딩해서 서버에 디플로이까지 해 본 사이트 하나 정도는 있어야 하지 않겠나? 하지만 아무리 유데미 코스 하나 들었다고 당장 멋진 포트폴리오 웹사이트 만드는게 그리 쉽지는 않을 것이다. 이 단계를 아주 쉽게 해주는 사이트가 하나 있다. 바로 부트스트랩에서 제공하는 연습용 웹페이지인 Start Bootstrap이다.  완성도 높은 부트스트랩기반 웹사이트 파일을 통째로 다운받아 공부할 수 있는 사이트 이다.여기 가면 아주 잘 디자인된 다양한 종류의 부트스트랩 기반 웹사이트 코딩 파일들을 통째로 다운받을 수 있다. 본인이 도전해 보고 싶은 스타일 몇개를 골라서 다운받은 후에 index.html과 연결된 css파일 구조를 잘 파악해 본 다음에, 본인의 포트폴리오 웹사이트를 한번 만들어 보자. 이미 뼈대가 다 잡혀있기 때문에 그 뼈대를 분석하는 것 만으로도 큰 공부가 된다. 박스모델을 어떻게 쓰고 있고, 각종 버튼들을 글리피콘이랑 폰트어썸을 써서 멋있게 구현하는 법, jQuery의 각종 트랜지션들을 어떻게 구현하고 있는지 등등을 배울수 있고, 이 중에서 내가 필요한 부분을 복붙해서 내 웹사이트에 붙여볼 수도 있다. 나는 이 당시 여기의 웹사이트들 중 3개를 적절히 조합해서 다음과 같은 내 포트폴리오 웹사이트를 만들었다.StartBootstrap에서 3-4개의 사이트를 조합해서 만들어본 내 포트폴리오 웹사이트이다.당신이 여기까지 오는데 아마도 3-4달정도의 시간이 필요할 것이다. 다시 한번 강조하지만, 이렇게 공부하고 나서 당신이 '나는 개발자 입니다'라고 말하면 x욕 먹기 쉽다. 개발자의 세계는 웹개발만 해도 그리 녹록한 세상이 아니다. 하지만 이렇게 3달정도 야매로 포트폴리오 웹사이트 하나 뚝딱 만들어낼 정도로 훑어내고 나면 개발자랑 어느정도 대화가 통하는 문돌이 PM이 될수는 있다. 또한 당신이 정말 뜻이 생겨서 앞으로 앱개발도 배우고 직접 스택오버플로우 찾아다니면서 버그도 고치고 하다 보면 한 반년쯤 후에는 진짜 기본수준의 프로그래밍은 할 줄 아는 문돌이 PM이 되어 있을 것이다. PM으로서 본인이 구현하고자 하는 기능의 기술스택에 대해 개발자랑 어느정도 대화도 가능할 것이다.다음 글에서는 같은 맥락으로 디자이너랑 일할 수 있는 PM되기, 또는 디자이너 없는 스타트업에서 PM이 디자이너역할하기의 야매스러운 방법론에 대해 논해보고자 한다.글쓴이는 스팀헌트 (Steemhunt) 라는 스팀 블록체인 기반 제품 큐레이션 플랫폼의 Co-founder 및 디자이너 입니다. 비즈니스를 전공하고 대기업에서 기획자로 일하다가 스타트업을 창업하고 본업을 디자이너로 전향하게 되는 과정에서 경험한 다양한 고군분투기를 연재하고 있습니다.현재 운영중인 스팀헌트 (Steemhunt)는 전 세계 2,500개가 넘는 블록체인 기반 앱들 중에서 Top 10에 들어갈 정도로 전 세계 150개국 이상의 많은 유저들을 보유한 글로벌 디앱 (DApp - Decentralised Application) 입니다 (출처 - https://www.stateofthedapps.com/rankings).스팀헌트 웹사이트 바로가기
조회수 715

훌륭한 브랜드의 원칙 - S.T.A.R.

러브마크 (lovemark)모두가 사랑받고 싶어한다.사람도 기업도 사랑받고 싶어한다.사랑이 목적일 수도 있고, 수단이 될 수도 있지만선택받고 싶어하는 것은지극히 자연스런 욕망이다.브랜드도 마찬가지다.사랑받는 러브마크가 되고 싶지 않은 브랜드는 없을 것이다.어떻게 사랑받을 수 있을까?브랜드가 사랑을 받고 있다면,그건 우연일까? 기묘한 타이밍 때문일까?아니면 진정 정밀하게 기획된 계획이 맞아떨어진 것일까?사랑받을 수 있는 조건들을 찾기 위해서목마른 기업들은 소비자의 취향을 조사하고트랜드를 조사하는데 막대한 비용과 노력을 투자한다.문제는 그럴수록 불안함이 늘어간다는 것이다.소비자가 진정 좋아할까?하나의 상품이 시장에서 성공하는데에는그 시점, 그 타겟, 그 상황에 최적화된 소비자의 흐름에민감할 필요가 있다.하지만,브랜드는 다르다.그때 그때 무언가를 쫓아가서는 안된다.쫓아갈 수도 없다. 130년이 넘는 헤리티지를 가진 벤츠,107년이 되어가는 샤넬,53년의 역사를 지켜온 나이키,40년간 팬들의 사랑을 받아온 애플...브랜드는 잠깐 주목받는 것으로는 생존할 수 없다.지속가능해야 하고, 그러기 위해서는 일관된 가치를전달해야만 한다.쫓아오게 만들어야 한다쫓아가서는 안되고, 쫓아오게 해야 한다.브랜드가 지향하는 가치를고객들이 따라오게 해야 한다.그것이 명품 브랜드들의 공통점이다.자,여기서부터가 이 글의 본론이다.고객이 쫓아올 만한 가치가 갖춰졌다면,이것을 어떻게 커뮤니케이션 할 것인지가 매우 중요하다.상품이나 서비스 자체를 포함해서미디어나 마케팅 활동 및 기업 전반의 활동이 여기에 해당한다.브랜드의 가치가 표현되는 방식에 따라서소리없이 사라지는 브랜드가 되기도 하고,100년을 지속하는 브랜드로 사랑받기도 한다.1. 첫 번째 원칙 : SimpleSimple (단순)Simplicity is the ultimate form of Sophistication- Leonardo da Vinci -레오나르도 다빈치는 단순함 (Simplicity)이야말로 정교함의 극치라고 표현했다.코코 샤넬은 진정한 우아함의 정수로써 단순함 (Simplicity)을 통해근대 여성의 의상을 혁신해왔다.이 단순함은 눈에 보여지는 것 뿐만 아니라,보여지지 않는 가치의 명료함까지를 포함하는 것이다.소비자에게 전달하려는 메시지가 단순해야 하며,이해하기 쉬워야 한다는 의미도 녹아있다.그럴 듯한 수식어구 따위로는 트랜드에 편승할 수야 있겠지만,소비자의 인식에 각인할 수는 없다.덜어내고 덜어내고 또 덜어내야 한다.마지막에 남는 가치 그것 하나로커뮤니케이션 해야 한다.2. 두 번째 원칙 : ThoughtfulThoughtful (배려)명품에 감동하는 것은그 상품을 사는 순간이 아니라,그것을 사용하는 과정에서 나타난다.드러내며 강조하지 않지만,예상치 못한 곳에서의 세심함과 꼼꼼함.그것에 감동하는 것이다.마치 무심한 듯하지만 세심하고 자상함을 보여주는츤데레 남친처럼 늘 고객의 benefit과 행복을우선시하는 배려가 담겨있어야 한다.4가지 키워드 중에서 아마도가장 기본이 되는 원칙일 것이다.3. 세 번째 원칙 : AuthenticAuthentic (진정성)대부분의 브랜드가 이 단어에서 갈린다.해석의 여지가 많은 키워드이기도 하지만,진짜 가치를 추구하는 브랜드 기업인지,가치를 그럴 듯하게 포장하는 '가짜 가치' 기업인지를구분해주는 핵심적인 원칙이다.컴퓨터를 만들어 파는 기업은 많지만,컴퓨팅(computing)을 인간의 삶의 차원에서 고민하고개발하는 업체는 극소수이다.식품을 판매하는 브랜드는 수도 없이 많지만,돈벌이가 아니라, 고객의 건강과 좋은 먹거리를 진심으로고민하는 업체는 일부일 것이다.돈을 버는 것이 지상 최대의 가치인 기업이그럴 듯한 광고로 아무리 소비자의 마음을 사로잡으려해도그 속내는 어느 순간 드러날 수밖에 없다.시민의 알 권리를 최고의 가치로 내세우는 언론기업은 많지만,사실에 기반한 정보를 공정하고 투명하게 다루는 기업은많지 않다는 것도 좋은 사례이다.솔직함, 투명함, 진정성이야 말로50년, 100년을 지속시킬 수 있는 롱~런 브랜드의핵심 가치라고 생각한다.거짓은 드러난다.가짜 브랜드이다.4. 네 번째 원칙 : RemarkableRemarkable (탁월)구별되지 않는 브랜드는 의미가 없다.아무리 좋은 가치라도주목시키지 못한다면 가치를 전달할 수조차 없다.그런 측면에서 눈에 띌 만한 비범함은 고객과 커뮤니케이션하기 위해필수적인 요소라고 할 수 있다.수 천가지의 브랜드가 서로 자신을 드러내기 위해 경쟁한다.'최초', '최고', '1등', '최대', '유일', '특종', '단독'...등등비범함을 알리기 위한 샤우팅이 매일 범람하는 사회이다.동일한 잣대로 비범함을 겨루기는 매우 어렵다.모두가 최선을 다하기 때문이다.그 영역에서 탁월하지 않다면,전혀 다른 영역에서 싸워야 하고, 독보적이 되어야 한다.Think Different'다르게 생각하라' 라는 스티브 잡스의 구호는그래서 큰 의미가 있다.아예 기존의 틀을 바꿔 버리고,전혀 새로운 관점을 제시함으로써 주목을 이끈다.테슬라의 엘론 머스크처럼남들은 상상 속으로 구상하고 있는 것들을테슬라 브랜드로 멋지게 전기차를 양산해내고,우주산업을 현실의 레벨로 한 단계 앞서구현해내는Pioneer 정신이야 말로 탁월함과 비범함의 정수일 것이다.S : SimpleT : ThoughtfulA : AuthenticR : Remarkable이 4가지 원칙은거대한 기업이 대단한 브랜드를 만들 때 필요한 조건이 아니다.S/T/A/R 원칙은 우리 모두가 어느 영역에서건메시지를 전달하고 소통하는데 염두에 두어야 할 핵심 원칙이다.디자이너가 창의적인 아이디어를 발휘할 때도 마찬가지이며,언론인이 사실을 근거로 자신의 주장의 제시할 때도 마찬가지이며,대선 주자가 자신의 공약을 내세울 때도 마찬가지이다.기억해두자.S. T. A. R.
조회수 655

핵심만 말하는 능력

분야를 막론하고진정한 고수들은 공통점을 가지고 있다.무엇이 본질인지 알고 있다중고등학교 시절에어렵고 이해하기 어려운 책들을 접하면나의 지적 능력이 형편 없구나라며 자책했던 적이 많았다.도무지 넘어가지 않는 책장을 보며읽어도 읽어도 이해가 가지 않는 문장들과명확하지 않은 개념들이 나의 탓인줄만 알았다.고등학교 때 만난 수학 선생님과대학때 만난 타이포그래피 교수님은내겐 신선한 충격이었다.수학의 원리를 그렇게 쉽게 이해시킬 수 있다는 것,동일한 문제를 전혀 다르게 바라볼 수 있게 해준 분이셨고,타이포 교수님은 디자인의 감각적인 영역을 이성적으로공감할 수 있게 해준 분이셨다.그렇게 한참이 지나서현학적인 말이나 글이 보여주는 난해함과 모호함은어설픈 자들의 알량한 지식을 그럴듯하게 표현하려는위장전술일 수도 있겠다는 생각을 대학원 논문을쓰면서 뼈져리게 느끼게 되었다.어렵게, 대단한 척, 전문 용어를 난발하며 풀어낸,논문들이 말하고자 하는 내용은딱 한가지였다.어때? 나 전문가 같지?내가 찾아본 수 많은 논문들에는전달하려는 핵심이 명확한 논문은 정말 소수에 불과했다.논문의 형식을 따를 뿐 짜집기로 범벅된 거품 투성이였다.그 후로 난 논문 쓰기를 그만두었다.직장에서도 이런 일은 비일비재하다.말만 그럴듯이 얘기하면서 핵심이 없는 사람들,자기 생각은 없고 남의 얘기만 자기 것처럼 하는 사람들,장황하게 얘기하지만 요점이 없는 사람들...보고서가 30장이 넘어도무엇을 얘기하는지 전달이 안되는 자료들,사례와 근거는 넘치지만 결론을 이끌어내지 못하는 문서들,손에 잡히지 않는 모호한 개념의 형용사만 늘어놓는있어빌리티 문장들...뭘 얘기하고 싶은 건가요?이런 보고서들은 거품을 빼고 걷어내면결국 남는게 별로 없다.보통 이런 자료들이 남발하는 이유는자신이 무엇을 위해 일하는지 이해하지 못한채습관적으로 일하거나, 형식에만 맞춰서 칸 채우기식으로일하기 때문이다.또는 말하고 싶은 내용은 있지만이것을 단어와 문장으로 풀어내지 못하는 기술이부족하기 때문이다.아래 3가지를 유념하면 도움이 될지 모르겠다.1. 문서의 목적을 다시 생각하라. - 무엇을 위해 이 보고서(문장)을 쓰는가?2. 중2 학생도 이해할 수 있게 하라 - 전문지식이 없어도 이해할 수 있는 명확한 표현인가?3. 다르게 해석될 표현은 없는가? - 보는 사람에 따라 전혀 다르게 이해될 단어는 없는가?무엇보다 중요한건작성자 중심이 아니라, 그 말과 글을 전달할 대상을중심으로 정리되어야 한다는 것이다.남의 입장에서 생각해보는 것이결국은  핵심이다.그것만으로도 대단한 일이다!
조회수 1781

Prototyping

안녕하세요. 스포카 디자인팀 인턴 박소연입니다. 이번 글에서는 사용자 경험User Experience 디자인 과정 중 프로토타이핑Prototyping에 대해 설명해보도록 하겠습니다.Prototyping이란,Prototype이란 “처음”을 뜻하는 그리스어 protos와 “느낌”을 뜻하는 typos가 합쳐져 “원본”, “초기”를 뜻하는 prototypos가 되었고, 이것에서 발전한 “초기 형태”인 prototypon에서 유래하였습니다. (출처: 위키피디아)프로토타이핑의 주목적은 UX 컨셉을 구체화하여 사용자에게 직접 실험을 하기 위한 것입니다. 먼저 조사한 결과를 토대로 아이디어와 컨셉을 도출합니다. 그 이후 실제 모델을 제작하고, 해당 모델에 해당하는 사용자와 전문가에게 사용하게 한 후 의견을 기록합니다. 프로토타입을 제작할 시에는 사용자가 구현될 시스템에 대하여 어느 정도 명확한 심상을 얻을 수 있을 정도의 디테일을 유지하여 제작합니다. 실험 시, 최대한 실제 환경이나 그와 비슷한 상황에서 실험하는 것이 중요합니다. 또한, 실험 중에 전체적인 서비스의 감성의 흐름과 피드백을 기록해야 합니다.프로토타이핑은 크게 두가지로 나누어질 수 있습니다.첫째는 아날로그 프로토타이핑으로, 종이에 연필로 쉽고 빠르게 스케치하는 것이 관건입니다. 두 번째는 디지털 프로토타이핑입니다. Low fidelity 혹은 high fidelity로 제작할 수 있는데, low fidelity는 최소한의 구성요소는 다 갖추고 있는 정도를 뜻합니다. 주로 보여주기용인 파워포인트, 키노트 등으로 구현할 수 있습니다. 발사믹과 같은 프로그램을 사용하여 간단한 인터랙션을 구현할 수도 있습니다. High fidelity는 완성에 거의 가까운 형태로, 장식적인 요소도 모두 포함하여 정확히 제작하게 됩니다. 실험에 적합한 형태를 선택하는 것이 중요한데, 장단점을 표로 정리해서 보여 드리겠습니다.다양한 프로토타이핑 유형:프로토타이핑특징장점단점아날로그프로토타이핑연필과 종이.빠르고 간단하다.수정이 쉽다.구체적이지 않다.구현할 항목이 많을 시오래 걸린다.디지털프로토타이핑-low fidelity보여주기 혹은인터랙션 가능.하나 혹은 다수의프로세스를 표시.수정이 비교적 간단.시스템의 특징을 살리기어려울 수 있다.디지털프로토타이핑-high fidelity인터랙션과 장식적요소까지 구현.가장 구체적이고이해가 빠르다.특징을 모두 구현할수 있다.제작에 오래 걸린다.수정이 힘들다.프로토타입을 제작하고 난 후에는 제작한 모델을 사용하여 실험을 진행 할 수 있습니다. 실험 종류 역시 여러 가지가 있지만, 이번에는 세 가지만 추려서 소개해 드리겠습니다.Desktop Walkthrough말 그대로 책상 위에서 구현할 수 있는 작은 모형을 말합니다. 레고와 같은 3D모형을 이용하여 실제상황의 특징들을 구현합니다. 이를 무대로 삼아, 사용자의 페르소나Persona를 구현한 모형을 직접 움직이며 사용자 경험을 재현합니다. 간단한 모형으로 다양한 사람들이 이해하기 쉽고, 전체적인 프로세스를 포괄적으로 검토할 수 있습니다. 또한, 모형을 여기저기 움직이면서 문제점을 수정하기에 쉽습니다.Service Prototype서비스 프로토타입은 소품과 물리적인 목업mock-up을 이용하여 상세한 서비스를 재현하게 됩니다. 주로 해당 제품을 사용하는 실제 환경과 최대한 비슷한 곳에서 사용자가 직접 사용하고 역할극 등을 진행하게 됩니다. 사용자가 직접 사용하고 만져볼 수 있는 모델이 있기 때문에 사용자가 서비스에 대해 좀더 깊은 이해를 할 수 있습니다.Service Staging서비스 스테이징은 좀 더 많은 인원이 필요합니다. 여러 이해관계자가 지켜보는 가운데 디자이너와 사용자가 함께 프로토타입을 사용한 시나리오scenario를 재현합니다. 역할을 바꾸어 여러 번 반복 재연하면서, 다양한 이해관계자의 피드백을 받을 수 있습니다.프로토타입 실험 요약:DesktopWalkthroughService PrototypeService Staging장소LEGO 모형실험실, 스튜디오, 실제상황실험실, 스튜디오, 실제 상황대상LEGO 모형사용자사용자, 디자이너 등목적시범, 설명이해 도모,사용성 파악사용성 파악, 이해관계 정립,시나리오 점검Conclusion이제까지 UX Design의 과정 중 한 가지인 프로토타이핑에 대해 간략히 설명해보았습니다. 프로토타이핑의 가장 중요한 목적은 사용자들이 직접 체험하고 이해할 수 있도록 최대한 실제와 가깝게 재현하는 것입니다. 하지만 프로토타이핑으로 다양한 실험을 했다고 디자인이 완료된 것은 아닙니다. 수집한 의견을 반영하여 수정과 보완을 거쳐 새로운 프로토타입으로 다시 실험하는 등 응용 범위는 다양합니다. 프로토타이핑은 UX Design에 필수적인 과정입니다. 보통, 디자이너와 개발자들은 사용자들이 자신이 생각한 대로 움직일 것이라고 일종의 “착각”을 하게 되는데, 이는 프로토타이핑을 통해 적절히 조정할 수 있을 것입니다.참고자료 및 이미지 출처:· 서비스 디자인 교과서, 안그라픽스, 2012· http://www.enginegroup.co.uk/site· http://www.loop-ux.com· http://www.davidarno.org/2009/09/17/napkee-converting-balsamiq-mockups-into-flex-views-just-became-a-complete-breeze/· http://inspirationfeed.com/inspiration/25-examples-of-wireframes-and-mockups-sketches/#스포카 #디자인 #디자이너 #디자인팀 #인턴 #인턴생활 #인사이트 #꿀팁 #경험공유
조회수 1543

8퍼센트 '프로덕트' 팀 인터뷰

안녕하세요, 8퍼센트입니다.8퍼센트는 다양한 매체와 콘텐츠로 이야기를 전하고 있습니다. 이번엔 인터뷰를 통해 8퍼센트를 이루고 있는 각 팀들의 이야기를 들어보며 고객에게 더 가까이 다가가고자 합니다. 그 첫 번째 주인공은 서비스 개발을 담당하는 ‘프로덕트’ 팀입니다.Q. 안녕하세요, 인터뷰를 위해 프로덕트 팀 허재영 님과 이호성 CTO님이 자리해주셨는데요. 먼저, 8퍼센트의 제품을 만드는 프로덕트팀은 구체적으로 어떤 일을 하시나요?A. 프로덕트 팀은 8퍼센트의 서비스를 만드는 팀입니다. 고객들이 8퍼센트를 이용하는 데 있어서 불편함이 없도록 서비스를 개선하고 유지하는 역할을 하고 있습니다. 예를 들어 기존의 인터넷 기반 금융 서비스는 공인인증서, Active X를 보면 알 수 있듯이 사용자의 편리함에 초점을 두고 있지 않습니다. 저희의 역할은 사용자들에게 더 편리하고 효율적인 금융 생활을 할 수 있도록 새로운 금융서비스를 시도하는 것입니다.Q. 새로운 금융시스템을 구축하고 운영해나가는 과정이 쉽지 않을 것 같은데, 그것에 대해 어려움과 극복해낸 경험이 궁금합니다.A. 8퍼센트는 이미 만들어진 솔루션을 사용하거나 외주를 통해 시스템을 구축하는 기존의 회사들과 다르게 직접 바닥부터 금융 시스템을 쌓고 있습니다. 금융시스템은 정확함과 안정성을 빼놓을 수 없는데 사용자가 많아지고 시스템이 거대해질수록 생각지 못한 부분에서 오류가 생기게 됩니다. 이러한 오류는 회사의 손실을 발생시키고, 고객들의 신뢰를 잃게 합니다. 위와 같은 일이 발생하지 않게 시스템을 정밀하게 설계하는 것은 기본이고 추가로 발생하는 문제들에 대해 올바르게 대처하는 것이 금융 시스템을 구축하고 운영하는 과정입니다. 물론 힘든 과정이지만 단계별로 시스템을 구축하는 것이 앞으로 남들과 다른 서비스를 제공할 수 있는 기반이 된다고 생각합니다.서비스 초기, 지급 프로세스에 문제가 있었던 적이 있었는데, 이를 인지하고 그에 대한 대응을 진행했습니다. 또한, 대응에 그치지 않고 테스트와 수정한 부분에 대해 제대로 동작하고 있는지 알아보는 QA(Quality Assurance) 프로세스를 갖추는 계기가 되었습니다. Q. 그렇게 만들어지는 8퍼센트 서비스만의 차별화된 점은 무엇인가요?A. 첫 번째는 '자동 투자'입니다. 자동 투자를 선택하게 되면 예치금과 상환된 투자금이 지속적으로 재투자됩니다. 따라서, 고객이 직접 신경 쓰지 않아도 자산을 쉽게 불릴 수 있습니다. 두 번째는 '스페셜딜'입니다. 일부 스페셜딜은 기업이 제공하는 서비스를 투자자가 직접 체험해볼 수 있으며, 이를 통해 고객은 투자 이외의 부수적인 혜택을 누릴 수 있습니다. 소개해드릴 마지막 차별점은 다양한 업체와의 제휴입니다. 8퍼센트는 현재, 기존 금융권에 있는 많은 금융 회사들과 제휴를 맺고 있습니다. 기존 금융 회사가 오랜 시간 쌓아놓은 시스템과 노하우, 그리고 8퍼센트의 서비스를 합쳐 좋은 서비스를 제공하는 것은 저희 서비스의 강점이 된다고 생각합니다. 또한, 기존 금융권뿐 아니라 토스와 같은 스타트업과의 제휴 역시, 토스 플랫폼에서 간편하게 8퍼센트 서비스를 이용할 수 있다는 점에서 이런 다양한 제휴는 저희만의 차별점이 된다고 생각합니다.Q. 8퍼센트 서비스에는 정말 다양한 장점이 있는 것 같습니다. 이렇게 좋은 서비스를 구상할 때 중요하게 생각하는 기준이 무엇인가요?A. 프로덕트 팀에서는 제품을 구상하는 데 있어서 ‘고객들에게 전달될 수 있는 가치’, ‘안정성과 정확성’, ‘사용성’ 이렇게 세 가지 기준을 중요하게 생각하고 있습니다. 금융 서비스는 대부분 돈으로 환산되는 가치를 추구합니다. 프로덕트 팀이 추구하는 금전적인 가치 역시 투자를 했을 때 돈을 벌고, 대출을 통해 돈을 절약하는 것입니다. 이러한 금전적 가치는 개인과 개인들이 서로 연결되어 발생한다는 점에서 사회적 가치에 기여한다 생각합니다. 또한, 핀테크 서비스들이 나오기 이전에 투자와 대출은 상당히 무겁고 다가가기 힘든 면이 있었습니다. 그래서 프로덕트 팀에서는 투자와 대출로 이뤄진 8퍼센트 서비스를 이용자가 손쉽게 쓸 수 있게 만드는 ‘사용성’이 제품을 구상하는 데 있어서 중요한 기준이 됩니다. 예를 들어, 토스 플랫폼을 통해서 저희 투자 서비스를 이용할 수 있게 하는 것도 ‘사용성’을 높이는 것의 일환입니다.Q. 얘기를 들어보니 명확한 기준을 통해 좋은 서비스가 나오는 것 같습니다. 8퍼센트 투자나 대출 서비스를 직접 이용하시나요? A. 모두가 소액부터 거액까지 다양하게 투자 서비스를 직접 체험하고 있습니다. 이는 고객의 입장에서 생각해볼 기회가 되어 일하는데 좋은 자극이 됩니다. ‘개밥 먹기’라고 개 사료를 만드는 회사에서 실제로 먹어보면서 제품이 어떤지 테스트하는 것에서 유래한 말이 있습니다. 8퍼센트 역시 이런 '개밥 먹기' 테스트를 꾸준히 하고 있습니다. 상품 2.0이 처음 출시되었을 때, 직접 소액 대출을 받아 안내, 혹은 연체 문자가 잘 오는지 등 대출 프로세스를 경험하기 위해서 대출 서비스를 이용했습니다. 물론 회사 내부 관계자에게 대출하기 위해 투자자를 모은다는 것은 윤리적인 문제가 있기 때문에 딜을 내부로만 열어서 회사 분들이 투자한 것만으로 모집했습니다. 신용등급은 당연히 떨어지지 않았고 상환하며 아직 잘 쓰고 있습니다.Q. 현재 P2P 금융 법제화에 대한 논의가 활발히 진행되고 있는데, 과거 새로운 규제가 생겼을 때 대처한 경험이 궁금합니다.A. 지금까지 가장 큰 변화는 작년 5월 가이드라인이 시행되면서 일어났습니다. 그전까지 투자자들로부터 모집한 자금은 회사의 소속으로 되어있었는데, 회사가 부도가 나게 되면 그 돈이 압류되어 투자자들의 돈을 못 빼는 현상이 발생할 수 있었습니다. 가이드라인에서 제시한 부분 중 가장 큰 것이 바로 이에 대한 것입니다. 투자자의 돈을 제삼자가 보관하게 해라 즉, 금융기관이 그 돈을 보관하게 하라는 것인데 이를 위해 농협과 함께 설계부터 시작해 지금의 시스템을 만들었습니다. 농협 측에 자금을 보관하고 저희가 시스템상으로 자금의 흐름을 요청하는 식으로 자금이 직접 저희를 통하지 않고 P2P 거래가 이루어지게 되었습니다.Q. 프로덕트 팀의 대처 능력이라면 법제화 같은 변화에서도 흔들림 없는 서비스를 제공할 수 있을 것 같습니다. 마지막으로 프로덕트팀의 목표는 무엇인가요?A. 프로덕트 팀에서는 항상 ‘우리가 바라는 프로덕트가 무엇일까?’ 고민합니다. 개발자로서 가장 안타까운 것은 열 명의 팀원들이 서로 힘내서 만들어내는 서비스가 사라지는 것입니다. 더 나아가, 사라지지 않는다는 것은 사회적인 가치를 인정받는다는 것입니다. 물론 돈을 만들어낸다는 얘기이기도 하지만 우리가 열심히 만든 자식과도 같은 서비스의 사회적인 가치를 인정받고 지속가능하게 하는 것이 최종적인 목표입니다. 특히 이번 18년도 1분기에 8퍼센트의 단기적 성장과 함께 미래 계획이 구체화 되고 그에 대한 긍정적인 확신이 생겨 큰 동기부여가 되었습니다. 8퍼센트 고객들도 더 편리하고 효율적인 서비스를 만들어갈 저희와 끝까지 동행해주셨으면 좋겠습니다.인터뷰는 8퍼센트의 모든 팀을 소개할 때까지 계속되니 많이 기대해주세요:)> 8퍼센트 서비스 보러 가기 #8퍼센트 #에잇퍼센트 #프로덕트팀 #프로덕트 #인터뷰 #팀원소개 #팀소개

기업문화 엿볼 때, 더팀스

로그인

/