스토리 홈

인터뷰

피드

뉴스

조회수 1302

[아마존 FBA] 04. 관세 납부 편

인사말안녕하세요 대한민국 셀러들의 성공적인 아마존 진출을 도와주는 컨설팅 회사이자 대행사인 컨택틱의 이이삭 대표입니다. 저번 포스팅 "관세"편의 연장선이자 오늘은 관세는 얼마나 발생하고, 누가 납부하나에 관한 내용을 다루도록 하겠습니다. 특히 관세를 누가 납부하냐는 부분은 인보이스 작성 시에도 필요하기 때문에 많은 분들이 궁금해하시는데요. 오늘의 포스팅을 통해서 그간 궁금해하시던 내용이 해결되시기를 바랍니다. QUESTION 4. 관세는 얼마나 발생하나요?목록통관 기준을 벗어난 Invoice Value가 $800 이상인 화물에 대한 관세는 얼마나 발생하나요ANSWER 4. 제품에 따라 다릅니다. 관세율을 결정짓는 것은 HS Code입니다.관세청, 트레이드네비, 등등의 사이트를 통해 '수입국가' 기준으로 내 상품의 HS Code를 조회하면 관세율을 알 수 있습니다. HS Code는 Harmonized System Code의 약자로, 전 세계에 존재하는 그 어떤 제품이라고 하더라도, 전 세계적으로 통용할 수 있는, 한마디로 표현하자면, ‘상품의 분류를 나타내는 “분류 번호”’입니다. 내가 보내는 화물의 제품들의 HS Code의 관세율 * Invoice Value = 관세 납부액입니다.QUESTION 5. 관세가 발생한다면 누가 납부하나요?저는 한국에서 아마존 FBA 창고 주소로 바로 화물을 보내려고 합니다. 관세가 발생하면 누가 납부하나요?ANSWER 5. 운송사에게 화물을 접수할 때 무역조건을 어떻게 정했는지에 따라 관세 납부 주체는 발송인이 될 수도 있고 수취인이 될 수도 있습니다.당연한 얘기지만, 아마존은 여러분들의 화물에 대해 관세를 납부해줄 의무가 없습니다. 따라서 EMS 같은 서비스를 이용해서 화물을 보내게 되면 무역조건이 DDU밖에 안되기 때문에 (수취인이 관세를 납부하는 조건) 화물 총액이 $800이 넘어가는 화물에 대해서는 반드시 해외 특송을 사용하고 무역조건을 DDP로 설정하시길 권장합니다 (발송인이 관세를 납부하는 조건). 저도 지금까지 수백수천 회 해외로 물건을 보내고 FBA 입고를 해봤지만, 화물 총액이 $800이 넘어도 관세가 발생하지 않은 경우도 많았습니다. 하지만 이 글의 목적은 '정석'을 알려드리는 것이기 때문에 안전함을 추구하는 여러분이라면 위험을 감수하지 마시고 정석의 방법으로 위처럼 진행하시길 바랍니다.마치며컨택틱에서 가장 많은 문의 중 하나인 "관세"부분에 대한 여러분의 궁금증이 해결되었기를 바랍니다. 또한, 이와 관련하여 도움이 필요하신 분들은 언제든지 컨택틱을 찾아주시기 바랍니다.그럼 오늘도 즐거운 글로벌 셀링 되세요!컨택틱  서울특별시 강남구 강남대로 62길 11, 8층 (역삼동, 유타워)  대표 전화: 02-538-3939  해외 부서: 070-7771-1727  영업 부서: 070-7771-1728  이메일: [email protected]  유튜브: https://www.youtube.com/channel/UC8OxbQGAnMqWGpGj5weLcZA 홈페이지: https://www.kontactic.com
조회수 1656

냉정과 열정 사이

냉정과 열정 사이라는 소설이 있다. 대학교 때 읽었던 소설인데 두 사람의 여정을 각자의 시선에서 다룬 소설이다. 에잇퍼센트에 인턴으로 입사해 9개월간 일하고 훨훨 날아간 병훈님과 나도 이 소설처럼 각자의 시선에서 지난 9개월을 되돌아보려 한다. (경고한다. 로맨틱하지 않다.)병훈님이 떠나는 날. 아마 여러분이 보는것과 내가 이 사진을 보는 느낌이 많이 다를거다.1. 만나기까지- 소병훈 이야기2015년 대학교 3학년이 시작될 때부터 졸업 이후에 대한 고민이 생겨났다. 대학원 진학과 취직은 수많은 대학생들의 공통된 고민이기에 수많은 조언이 넘쳐나지만 결론은 '나에게 맞는 길'을 선택하는 것이다. 내 인생 내가 선택해야지 언제까지 남들 좋다는 길로만 가겠는가. 둘 다 겪어보고 내가 선택하겠다고 다짐했다.졸업을 위해서는 대학원에서 과제연구를 1년 해야 했기에 대학원은 겪어 볼 수 있었다. 그러면 취직도 경험해보고 싶은데 어떻게 하지? 대기업에서 1~2개월 인턴을 했던 친구들에게 물어보니 한결같이 '놀고먹다 보니 월급이 나온다'는 경험담을 늘어놓았다. 하지만 정말로 취직해서 놀고먹으면 잘리겠지. 대기업 인턴은 패스. 스타트업 관련 세미나에서 한 VC의 '스타트업은 망해도 스타트업 인턴은 망하지 않는다'는 말을 들었다. 창업에 생각이 있으면 스타트업에서 인턴을 해보라는 말이었다. 그래서 '스타트업에서 일해보자'라고 결정했다.수많은 스타트업 중에서 왜 에잇퍼센트를 선택했다고 물으신다면, 빠른 속도로 성장하면서 변하고 있는 스타트업 속에서 일해보기를 원했기 때문이다. 그리고 당시의 나는 CTO의 멋진 말 한마디에 눈을 반짝이며 '이 회사에서 이 사람과 일하고 싶다'라고 생각하면 앞뒤 안 가리고 지원하는 이상주의자였다. 그래서 페이스북에서 호성님의 글을 읽고 '이 회사가 내가 생각하던 회사구나'라는 생각이 들어서 먼저 지원했던 회사를 포기하고, 에잇퍼센트 입사를 간절히(?) 원하게 되었다.- 이호성 이야기2016년 1월의 첫 번째 근무 날. 대표님이 모두를 불러 모았다. 그리고는 회사의 투자 유치 소식을 알려 주었다. (무슨 투자 유치 소식을 "오늘 저녁에는 치킨을 시켜 먹기로 했어요." 수준으로 재미없게 이야기하는지 모르겠다.) 투자를 받는 것이 확정되었으니 대표님이 내게 전달해 주신 미션은 개발자를 채용해서 제품 개발의 속도를 높이라는 것이었다. 사실 에잇퍼센트에 오기 전에 한 회사에만 오래 있기도 했고 개발자들과의 네트워킹도 게을리했던 터라 당장 좋은 개발자를 뽑을 수 있는 방법이 없었다.그래서 블로그에 회사를 알리는 글을 쓰기 시작하면서 주위 분들께 추천을 부탁드렸다. 그중 JDLab의 양주동 대표님이 괜찮은 학교 후배를 추천해 주신다고 해서 속으로 쾌재를 불렀다. 하지만 추천해 주신 친구가 애매하게 9개월만 일할 수 있는 상황이라고 하니 고민이 되었다. 주니어가 실제로 일을 잘 하게 되려면 꽤 긴 시간이 필요한데, 실제로 일을 잘할 수 있게 되었을 때쯤 회사를 떠나는 게 아닐까 하는 생각이 들었기 때문이다. 하지만 인력(당시 4명)에 비해 해야할 일이 너무나도 많았기에 누군가의 손이라도 빌려야 할 판이었다. 그래서 일단 병훈님을 만나 보기로 했다.2. 면접- 소병훈 이야기에잇퍼센트에 들어가는 과정은 상당히 길다.처음에 간단한 티타임을 시작으로 실제 코딩 문제를 풀어보게 하고, 그 뒤에서 다시 1대 n으로 토론하는 과정, 그리고 대표님과의 이야기로 면접이 이어진다. 요즘은 논술 문제도 있다고 들었다. (역시 취직은 어려워)내 경우는 '면접 보려는 것은 아니니 그냥 커피 한잔 하자'는 부님의 간단한 속임수에 넘어가 티타임을 가졌다. 카페에서 커피 한잔 하면서 부님과 에잇퍼센트는 어떠냐고 물어보려고 왔는데, 어느새 내 앞에는 호성님이 앉아 있었고, 메일로 코딩 문제를 받는 것으로 커피 한잔이 끝났다. 이 티타임은 면접보다는 나에게 회사를 소개하고 회사가 나에게 적합한지 보는 과정이었다.코딩 문제는 성호님의 글로 유명해진 pingpong을 포함한 take-home 과제였다. 문제를 받은 다음날 다른 회사 면접을 보고 온 뒤 밤샘으로 문제를 풀었던 것과 제출할 때 pingpong 문제만큼은 자신 있어했던 기억이 난다. 그때의 기억을 떠올리며 당시에 제출했던 코드를 보니 'Assignment를 쓰지 말 것'이라는 조건이 깨져있었다. 자신감 넘치던 과거의 내가 부끄러워지는 순간이다.마지막 면접 과정도 조금은 숨 막히는 경험이었다. 가볍게 대화하는 분위기 속에서 대학에서 들었던 전공과목 별로 하나하나 물어가며 내 지식의 바닥을 확인했다. 대학에서 3년간 들었던 전공과목은 많지만, 질문 들어오는 족족 '모르겠습니다' 밖에 할 수 없었다. 내가 답할 수 있는 수준을 찾으시려는지 점점 질문의 난이도가 낮아졌고, 마지막으로 스택과 큐를 물어보는 질문에 답하면서 '이 회사는 못 들어가겠구나'라는 생각이 들었다.동시에 진행했던 다른 회사에서 합격 메일이 왔기에 에잇퍼센트에 '0월 0일까지 합격/불합격 결과를 알려주세요'라는 당당한 요구를 한 뒤 떨어졌다는 메일을 기다리고 있었다. 하지만 예상치 못한 합격 메일을 받았고, 그 메일에는실력에 대해서는 회사에 오셔서 보여주세요라는 잊지 못할 문구가 있었다.그리고 첫 출근, 4월 4일 9시 20분에 출근해서 잠긴 문을 보며 에잇퍼센트의 첫 날을 맞이했다.- 이호성 이야기병훈님이 왔다고 하셔서 학교 선배인 부님과 함께 회사 옆 '피어나' 카페로 갔다. (당시만 해도 사무실에 회의실이 없어서 모든 미팅을 회사 옆 카페에서 해야만 했다.) 병훈님의 첫인상은 “꺼벙이"였다.공대에서 흔히 볼 수 있는 스타일. 하지만 말하고 이야기하는 것은 번뜩이는 느낌은 크게 들지 않았다. 아마 나정도로 평범한 느낌이었던 것 같다. 이야기를 하다 보니 다른 곳에 면접을 이미 본 상태였다. 일단 우리 회사와 나에 대해서 좋은 감정을 갖게 하는 것이 좋겠다 싶어서 이래저래 약을 팔았다. 그리고 면접 문제를 메일로 전달하겠다고 하고 첫 번째 만남을 마쳤다.며칠 뒤 제출한 과제를 가지고 다시 한번 병훈님을 만났다. 전공에 관련된 기본적인 질문들을 던졌다.(정확히는 졸업한 지 10년이 지나서 그냥 내가 기억나는 것들을 물어보았다.) 그런데 10개의 질문을 던지면 8개의 질문 은 원하는 답을 듣지 못했다. 실망했다. 겸손하고 배움의 자세가 갖춰져 있는 친구라는 생각은 들었다. 하지만 이렇게 모르는 친구를 뽑아도 될까 하는 생각이 들었다.하지만 뽑았다. 솔직히 그냥 학벌을 보고 뽑았다. 좋은 학교에 다니고 있는 친구이니 지금까지 최소한 한 번쯤은 최선을 다해 본 적이 있겠지 라는 생각을 했다. 무엇보다 당시 나는 꽤 급했다.합격 메일에는 ‘실력에 대해서는 회사에 오셔서 보여주세요'라는 내용을 적어서 보냈다. 부족한 만큼 회사에 와서 최선을 다해주었으면 하는 마음이었다. 그리고 입사할 주에 있을 워크숍 준비에 대한 요청도 함께 드렸다.지금 와서 이야기하는 것이지만 최근에 병훈님을 면접 봤다면 떨어뜨렸을 거다. 생각해 보면 이게 면접, 특히 주니어 면접의 어려움이다. 그 사람이 입사해서의 2주 정도는 예상해 볼 수 있지만 그 뒤는 예상하는 것은 너무나 어려운 일이다.3. 들어와서 처음 했던 일- 소병훈 이야기들어와서 처음으로 했던 일은 나를 대학생에서 직장인으로 바꾸는 일이었다.회사에 들어온 지 1~2개월이 지났을 때 외부 업체와 전문 통신을 개발하는 작업을 맡았다. 대학교에서 두 PC 사이의 전문 통신 프로젝트를 만들었던 기억이 있어 충분히 혼자서(그리고 짧은 기간에) 만들 수 있으리라 생각하고 작업을 시작했다. 기존의 코드를 조금씩 수정하고 추가하던 이전의 작업들과는 다르게 처음부터 만들어내는 일이었다.이 일을 하면서 지금까지 '하나의 동작을 하는 무언가'를 100% 혼자서 만든 적이 없다는 것을 깨달았다. 항상 기본 틀을 받아서 코딩하고, 어려울 때는 모범 답안을 보면서 힌트를 얻었으며, 그러고도 힘이 부치면 7~80%만 완성하고 (시간이 없었다는 핑계를 대면서) 넘어갔었다. 회사에서는 이 일이 '소켓 통신의 이해를 확인하기 위한 프로그래밍'이라고 설명되어 있지 않았고, 어디서 버그가 발생했는지 힌트를 얻을 수 없었다.대학 강의로 들었던 내용들과 전혀 다른 지식들이 필요했지만, 필요한 기초적인 요소들은 구글에서 찾을 수 있었다. 하지만 어떤 키워드를 검색해야 하는지부터가 문제였다. 검색해야 하는 단어를 알아내려고 시니어 개발자님들께 돌아가면서 물어봤다. (너무 자주 물어야 해서 한 분에게만 묻기 죄송했다.) 처음에는 학교에서 배운 내용은 쓸모없다고 생각했었는데, 지금 생각해보니 그마저도 없었으면 구글과 위키의 내용도 이해 못했을 것 같다.웹 개발에 대한 기초도 없고, 어디가 끝인지 확신도 없어서 개발 시간이 길어졌다. 야근을 반복했다. 노력한다고 해서 없던 능력이 생기지는 않았고, 결과로 커다란 똥덩어리 같은 코드가 만들어졌다. 다행히도 (달리는 중간에 몇 개의 부품을 갈아 끼운 이후에) 최소한의 기능은 정상적으로 돌아갔다.그렇지만 이 코드가 12월까지 구린 냄새를 피우고 있었다. 에러를 만들지는 않지만 가독성이 떨어지고 창의적인 구조 때문에, 유지/보수를 할 때마다 과거의 내 실력을 확인하는 좋은 지표가 되었다.- 이호성 이야기시간이 많다면 병훈님을 옆에 앉혀 두고 차근차근 알려주고도 싶고, 같이 스터디도 하고 싶었지만 내게는 당장 해야 하는 일이 쌓여 있었다. 다행히 팀에 계신 시니어 개발자 분들이 병훈님일 이래 저래 잘 돌봐 주었다. (20살이 넘는 청년에게 "돌봐 주었다"라는 표현이 적당한 가에 대해서 곰곰 생각해 보았는데, 흠. 역시 적절하다.) 병훈님께 처음 한 달 동안은 조각을 고치는 일, 작지만 급한 일 들을 맡겼다. 덕분에 시니어 개발자들이 다른 일들에 집중을 할 수 있었다. 그리고는 한 달이 지나자 하나의 일을 떼어서 맡겨볼 수 있겠다는 생각이 들었다. 단순히 개발하는 일뿐만 아니라 다른 회사 개발자들과 커뮤니케이션을 직접 하면서 일을 할 수 있도록 했다. 병훈 님은 잊어버렸을지는 모르겠지만 외부 업체로 처음 전화를 걸었을 때 우리 팀의 시니어 개발자들은 모두들 키보드에서 손을 놓고 병훈님의 대화를 노심초사하면서 듣고 있었다.이 프로젝트는 곧 병훈님이 예상한 일정을 넘어섰고, 얼마 이후에는 내가 예상한 일정도 넘어섰다. 병훈님이 끙끙 앓고 있는 게 보였다. 그 일을 다른 사람에게 넘겨야 하는가의 고민도 여러 번 했다. 병훈님이 만들어 낸 창의적(이라고 말하고 싶겠지만 상식을 벗어난)인 코드들을 뜯어고치고 싶다는 생각도 했다. 하지만 시간은 지났고 테스트를 통과한 코드는 에잇퍼센트 프로덕트의 한 자리를 차지했다.4. 무엇을 배웠을까?- 소병훈 이야기첫 번째로 회사가 어떻게 돌아가는 지를 배웠다. 작은(?) 스타트업이었기에 개발팀 외 다른 팀원들과도 친하게 지낼 수 있었고, 회사 내에서 생기는 사건들을 전부 들을 수 있었다. 그렇게 아이디어가 나오는 순간부터 제품으로 완성되는 과정을 볼 수 있었다. 또한 회사의 크고 작은 의사 결정 과정을 지켜볼 수 있었는데, 모든 의사 결정들에 원인과 논리적인 과정이 따른다는 점이 재밌었다.내가 알지 못하는 원인들과 다른 사람들이 결정하게 된 이유가 궁금해서 여기저기 물어보았고, 모두들 숨기지 않고 말해 주었다. 대표님과의 티타임에 찾아가서 묻기도 하고(모두에게 열려있었는데 단 2명이 왔었다), 퍼포먼스 마케팅이 궁금하다며 점심시간에 옆에 앉아 이야기하고, 전화 응대를 어깨너머로 들어보기 했다. 글로 적어보니 처음 초등학교에 들어간 8살 아이 같기도 하지만, 에잇퍼센트에 있으면서 물어보는 만큼 알 수 있었고, 그만큼 이전과는 다른 세상을 알 수 있었다. (그리고 그만큼 야근을 했다.)두 번째는 개발자가 되는 과정을 배웠다. 당연히 개발 실력도 늘었지만, 조금 더 보태서 개발자가 되는 과정을 배웠다고 말하고 싶다. 누구라고 말할 것 없이 남는 시간을 조금씩 쪼개 공부하고 있는 사람들, 새벽 4시가 넘었음에도 꼼꼼히 기록을 남기며 마무리하는 야간작업, 그리고 혼자서는 만들 수 없는 거대한 코드를 점진적으로 만들어가는 개발팀을 보면서 개발자라는 직업을 만날 수 있었다. 내가 본 개발자는 (에잇퍼센트의 개발자만의 특징일 수도 있지만,) 모든 결과를 '우연'으로 넘기지 않고 원인을 찾았고, 원하는 분야를 찾아서 스스로 공부하고, 삶의 즐거움을 하나씩 가지고 있는 사람들이었다.마지막으로 나 되돌아보기. 나는 내 실력을 과대평가하고 있었다. 회사에 들어오면서 '열심히 하겠다'라고 말했지만 몇 개월 '열심히' 뛰어서 갈 수 있는 거리에는 한계가 있었다. 다른 사람들이 불가능하다고 말해도 혼자서 '노력하면 할 수 있다'라고 생각하면서 오기로 붙잡고 있다가 결국 기한을 넘긴 적이 많았다. 시간이 지나면서 '할 수 있을 것 같다'는 자신감이 아니라 완성된 결과물을 보면서 실력을 확인했다. 항상 자신감이 넘치다 보니 매번 내 생각보다 실력이 뒤에 있었고, 그런 생각이 들 때마다 기숙사에서 공부를 했다.그렇지만 나를 과대평가했던 것처럼 나의 목표도 과대평가 했었다. 내가 도달하려고 했던 목표도 꾸준히 달리면 도달할 수 있는 거리에 있었고, 생각보다 멀리 있지 않았다. 다만 '꾸준히'의 기준이 몇 주, 몇 개월이 아니라는 것을 배웠을 뿐이다.- 이호성 이야기내가 입사하기 전에 에잇퍼센트에 여러 명의 개발 인턴이 있었다고 했다. (commit log에서만 만날 수 있는 그대들이여. 왜 버그를 내게 주고 갔는가.) 그리고 한 명을 제외하고는 회사를 모두 떠났다. 처음에 대표님이 인턴 채용 제안을 몇 번 하셨을 때 개발팀에는 인턴을 채용하지 않겠노라고 말했었다. 사람이 전부인 개발팀에서 떠나는 것이 예정된 사람을 뽑고 싶지 않은 마음이었다. 하지만 병훈님은 이런 내 생각을 바꿔 놓았다.연말 평가에서 성장에 대한 상을 받을 만큼 병훈님의 성장은 눈부셨다. 이제 좋은 주니어는 무엇인가에 대해서 병훈님을 기준으로 생각을 할 수 있게 되었다. 주니어 채용에 대한 성공체험을 했다고도 할 수 있겠다.상은 병훈님이 받는데 주는 사람이 더 좋아하네?좋은 주니어는 당연하게도 일정 시간이 지났을 때 높은 곳에 올라갈 수 있는 사람이다. 높은 곳에 올라가기 위한 조건은 다음과 같은 것들이 있다.1) 상대적으로 이미 높은 곳에 있을 것 전설 속에만 존재하는 시니어 같은 주니어 되시겠다. 고등학교, 대학교 때 많은 지식과 경험을 쌓아서 이미 현업에서 잘할 수 있는 친구들이다.2) 인지능력, 학습능력문제를 이해하고 정의하는 능력이 뛰어나고 논리적인 사고를 한다. 속칭 똑똑한 친구들이다. 문제를 자세하게 설명해 주지 않아도 문제의 본질을 이해할 수 있고, 답으로 가는 길을 빠르게 찾아낼 수 있다. 새로운 것을 빠르게 익히고 배움에 대한 두려움이 없다.3) 지적겸손배움에 대해 열린 자세를 가지고 있어야 한다. 나는 개인적으로 주니어의 경우 이 능력을 "내갈굼력"이라고도 부른다. 다른 사람들에게 지적과 갈굼을 받으면서도 그것이 배움으로 이어진다면 감사한 마음으로 받아들인다. 감사한 마음은 다시 지식을 전해주는 사람에게 긍정적인 피드백이 되어 더 많은 것을 알려주게 되는 선순환 구조를 만들어 간다.4) 태도긍정적이고 도전적인 태도를 갖추어야 한다. 자신의 인생을 발전적으로 개척해 나갈 태도. 그리고 자신을 둘러싼 환경에 감사하는 태도. 이 태도는 팀에도 많은 영향을 미친다.병훈님을 면접 볼 때의 나는 1) 만을 중요하게 생각했기에 병훈님을 떨어뜨려야 하나 하고 생각했다. 하지만 이제 와서 뒤돌아 보니 병훈님은 2), 3), 4)을 모두 갖추고 있는 인재였다. 아마 몇 년 뒤에는 1)도 충분히 갖추게 되리라.5. 어떻게 일했나?- 소병훈 이야기 9개월 동안 에잇퍼센트를 다니면서 항상 내 능력으로 조금 힘들지만 불가능하지 않을 만큼 업무가 들어왔다. 스프린트(2주) 단위로 업무를 나눠가지는데, 일방적으로 업무를 할당받지 않고 팀 회의로 업무를 나눠갖는다. 호성님이 업무를 강요하지도 않고 업무 일정도 각자가 정하지만, 모두가 보고 있다는 느낌과 '스스로를 과대평가하는 나' 때문에 매번 촉박한 일정에 시달리게 되었다. 그렇게 나는 손을 들고 해당 업무의 책임자가 된다. 초반에는(전문 개발할 때까지)는 아예 질문하지 않아서 혼자 끙끙 댔는데, 너무 안쓰러워 보였는지 옆에 앉은 연태님이 먼저 도와주셨다. 시간이 지나면서 길이 명확하게 보이지 않을 때는 시니어 개발자(대부분 연태님)에게 물어보면서 일을 진행했다. 어느 날 호성님이 에잇퍼센트처럼 '실패하면서 성장할 수 있는 환경'이 다른 회사에서는 없다고 말했었다. 생각해보니 내가 자유롭게 개발해도 테스트와 코드 리뷰를 거치면서 문제를 잡아낸다. 그러고도 버그가 생기면 실서버에서 디버깅해서 문제를 해결한다. 심적으로 매우 죄송한 마음이 들지만 추가적으로 다른 벌은 받지 않았다. 일을 시작하기 전부터 지레 겁먹을 필요는 없었다. 그 뒤로 길이 희미하더라도 우선 걸어가 봤다. 그러다가 도저히 길이 보이지 않을 때, 조언을 받는 방식으로 일을 진행했다. 시간이 더 오래 걸리면서 최종 결과물의 수준이 떨어지는 상황이 발생했지만, 코드 리뷰를 받으며 최소한의 수준은 맞춰졌다. (그러면서 시간은 더 오래 걸린다.) 최대한으로 생각해서 만들어도 항상 놓치는 부분이나 더 간단한 해결 방법이 있었고, 그때 느끼는 아쉬움과 안타까움이 다음 개발할 때 잊지 않고 기억나서 내가 성장한다는 느낌이 들었다. 막바지에는 개발을 시작하기 전에 항상 의자를 들고 해당 업무를 요청한 사람 옆으로 갔다. 말로 이야기면 Slack이나 Trello로 이야기하는 것보다 빠르고, 해당 문제를 직접 보면서 자세한 설명도 들을 수 있었다. 요청사항을 받아 개발하는 느낌이 아니고 함께 문제를 해결한다는 느낌으로 이야기하면서 실시간으로 여러 해결방안을 제시하면서 생각을 주고받았다. 문제를 해결하면서 회사에 장기적으로 도움이 되는 방향을 고민하다 보니 '주인의식을 가지고 일한다'는 느낌이 들었다. (정확히는 이왕 만드는 거 아름답게 만든다는 생각이었다.)- 이호성 이야기회사에서 병훈님의 별명은 '아기새'였다. 업무를 하면서도 사람들의 보살핌을 필요로 했지만 그것 외에도 이런저런 허술한 면을 많이 보여줘서 누가 붙였는지 기억이 나진 않지만 모두의 입에 착 붙어 있는 별명이었다. (개발팀 내에서는 간혹 '아. 이런. 손이 많이 가는 친구'로 불리기도 했다.)에잇퍼센트에는 퇴사하면 털린다. 다들 떠나지 마라.병훈님을 연태님 옆자리에 앉게 했다. 회사 내에서 스위퍼(스프린트 내의 개발 잡일들을 처리하는 담당) 팀도 연태님과 같이할 수 있도록 했다. 경험과 인내심이 많고 상냥한 언니 같은 연태님(남자)은 병훈님의 좋은 파트너가 되어 주었다. 그리고 세바님은 어려운 문제를 함께 해결해 주고 코드의 퀄리티에 대한 감시자(갈굼자)가 되어 주었다. 언젠가 병훈님이 개발자의 길을 가게 되어 첫 월급을 받게 되면 이 두 분에게는 빨간 내복을 사드려야 할 거다.처음에는 아기새의 Pull Request(반영하고자 하는 코드 뭉치)에는 코멘트가 수십 개가 달렸다. 그것들을 꾸역꾸역 고치고 나면 다시 그 절반 정도의 코멘트가 달리곤 했다. 하지만 병훈님이 떠날 때쯤에는 내 코드에 "이렇게 저렇게 고치는 게 더 좋은 것 같은데요?"라고 코멘트를 달곤 했으니 발전하지 못한 나는 부끄러울 따름이다.그리고 병훈님은 다른 팀일에도 참 관심이 많았다. 그러고 보면 나도 처음에 스타트업에서 일하기 시작했을 때 다른팀 일들도 왜 그렇게 재미있었는지 모르겠다. 하지만 분명한 것은 작은 조직에서는 다른 팀에 대한 관심이 개발을 잘하는 데 많은 도움이 된다.6. 떠나기 이주일 전- 소병훈 이야기정해졌던 퇴사일이 가까워지면서 새로운 업무는 들어오지 않았다. To-do list는 사라지고, 대신 '인수인계'라는 일이 생겨났다. 지금까지 했던 일들을 문서로 남기면서 새로운 책임자에게 넘겨주는 일이었다. 큰 그림을 그렸던 것들이 있는데 완성을 하지 못한다는 아쉬움이 컸다.호성님께 1,2월 프리랜서 제안서를 받게 된 건 우연이였다. 다 같이 점심을 먹을 때 우연히 호성님과 같은 테이블에 있었고, 1,2월에 남은 일정을 이야기하다 농담처럼 나온 제안이었다.제안서를 받은 날, 기숙사에서 많은 계산을 했다. 개발하는데 어느 정도 시간이 걸릴지, 제안서의 업무 기한을 변경한다면 일정이 어떻게 될지, 그렇게 받은 돈으로 어느 정도 도움이 될지. 충분히 가능한 일정이었다. 못해서 아쉬워하던 일이기도 했다. 그렇기에 더 고민했다.긍정적으로 고민하던 제안을 거절한 이유는 '여행 도중에도 계속 개발을 생각할까 걱정되어서'였다. 이번 여행에서 아쉬움이 남으면 다음은 언제가 될지 모른다는 생각이 들자, 내 시간이 더 귀하다는 생각이 들었다.그러면서 내가 조금이라도 더 필요하다고 말해주는 점이 고마웠다. 내가 생각해보지 못한 선택지를 받아서, 나의 가치관을 되짚어 본 느낌이었다.- 이호성 이야기병훈님과 같이 식사를 했다. 병훈님은 복학하기 전 유럽으로 여행을 다녀온다고 했다. 밤에 돌아다니면 위험하니까 숙소에서 코딩이나 하라고 살살 꼬셨다. 밤에 코딩하고 그 아르바이트비로 낮에 럭셔리하게 맛있는 것 먹고 다니면 얼마나 즐거운 여행이 되겠냐고. 제안서를 하나 작성해서 해야 할 일과 보수를 적어서 병훈님께 주었다. 왠지 넘어올 것만 같은 느낌이었다.병훈님이 하루 정도 생각해 보더니 "어정쩡한 상태가 될 것 같아요. 생각해보니 이런 제안을 주신 것만으로도 정말 감사합니다."라고 했다. 실패했다.회사 입장에서 업무를 잘 알고 있는 병훈님이 조금이라도 일을 더 해주면 하는 마음이었다. 하지만 다시 생각해보니 인생의 후배에게는 좋지 않은 권유였던 것 같다. 돈이 중요할 때가 아니라 세상에 대한 경험과 자신을 뒤돌아 볼 시간이 필요했던 거니깐.7. 떠나는 날케익이나 먹고 떠나랏!- 소병훈 이야기떠나는 날도 크게 다르지 않았다. 코드도 살펴보고 pull request도 적으면서 이전과 같은 하루를 보냈다. 그리고 마지막 날, 혹시 작별 인사를 하면서 내가 울지 않을까 걱정했지만 괜한 걱정이었다. 2달 전부터 작별 인사(라 쓰고 갈굼이라 읽는다)를 받아서 그런지 마지막 인사가 특별한 느낌이 들지 않았다.그렇지만 그 뒤로 며칠간 회사를 나왔다는 묘한 홀가분함과 그동안 했던 일들이 내 손을 떠난 공허함이 있었다. 내가 없으면 회사가 바뀌지 않을까 하는 조그만 기대도 있었지만, 다들 나 없이 잘 지내나 보다. 나는 조금 아쉬웠는데.- 이호성 이야기9개월이라는 시간이 참 금방 지났다. 남은 기간 동안 여행을 떠나는 병훈님에게 사람들이 "에이 그거 여행 가면 뭐해. 그냥 회사에서 일해"와 같은 장난을 수도 없이 했던 것 같다. 하지만 떠날 시간은 정해져 있었고 병훈님은 사람들의 박수를 받으며 떠났다. 마치 80분을 열심히 뛴 축구선수가 교체를 위해 떠날 때 받는 박수처럼.8. 떠나고 난 후- 이호성 이야기며칠 간은 아침 데일리 미팅이 왠지 허전하고, 슬랙으로 말을 걸면 대답을 할 것만 같았다. 하지만 또 새로운 사람이 회사에 들어오고 바쁘게 회사가 돌아가면서 금방 잊혀지긴 하더라. 아 그러고 보니 병훈님이 만든 코드에서 버그가 나올 때마다 우리는 회사에 남은 아기새 인형을 괴롭히긴 했다.병훈님이 떠나고 나서 같은 학교의 후배인 선희님이 회사에 마케팅 인턴으로 들어왔다. 선희님이 자기소개 시간에병훈 선배와 같은 동아리에..라고 말하자마자 전 직원이 다 뒤집어졌다. 그렇다. 우리에게 "병훈"과 "선배"는 함께할 수 없는 단어였다.여행을 갔다가 돌아온 아기새 병훈님이 와인을 하나 물어왔다. 그리고는 파닥파닥.군대 문제가 있기에 당분간 병훈님과 함께 오래 일할 수 있는 기회는 찾아오지 않을 것 같다. 아쉬운 마음이 든다. 에잇퍼센트에서의 병훈님을 "막 알에서 깨어나 호기심을 가지고 세상을 바라보는 아기새"로 기억해야겠다. 그리고 그 모습을 기억하며 나 또한 초심을 되새겨야지.우리가 다시 만날 그날까지 병훈님이 더 큰 날갯짓으로 더 넓은 세상을 여행하길 바란다. 9개월간 함께 해준 병훈님께 감사한다. 안녕!덧, 그나저나 난 또 어디에서 찾아야 하나. 이 다음 아기새를.#8퍼센트 #에잇퍼센트 #인턴 #조직문화 #후기 #팀워크 #팀플레이
조회수 4875

회사에서 당신의 이름은 무엇인가요?

루피, 제우스, 드루와, 아이린, 돌핀, 윈터, 앤, 시나몬……위에 언급된 단어들을 보면 어떤 것들이 떠오르는가. 애니메이션 ‘원피스’의 주인공, 그리스 로마 신화 속 신들, 영화 ‘신세계’ 속 황정민의 대사 등 다양한 매체들을 통해 형성된 이미지들이 떠오를 것이다. 그런데 왜 연관성이라고는 하나도 없는 단어들을 함께 나열한 것일까?도통 공통점이라고는 없어 보이는 이 단어들은 하나의 공통점을 가지고 있다. 바로 어니스트펀드에서 꿈을 키워나가고 있는 팀원들의 닉네임이라는 것이다. 어니스트펀드의 모든 팀원들은 닉네임을 사용하고 있다. 회사에 오면 만화 캐릭터, 신화 속 인물, 동물, 계절 등 다양한 닉네임들이 사람들의 입을 오간다.어니스트펀드에 합류하기로 결정한 이들에게 제일 처음으로 주어지는 일은 자신이 사용할 닉네임을 짓는 것이다. 나 또한 마찬가지였다. 만약 내게 입사 전에 나의 직급에 대해 알려주고, 회사의 조직도를 보여줬다면 입사하는 나의 마음가짐은 지금과는 많이 달랐을 것이다. 조직도를 보며 직급과 이름을 외우고, 만나보기도 전에 직급에 따른 편견을 만들었을 확률이 높다.입사 후에 회사 사람들을 소개받을 때 오로지 닉네임에 대해서만 소개받았다. ‘이 분은 XXX이사님이시고 IT기업인 XXX출신이십니다’라는 식의 소개 대신 ‘이 분은 린다이고 마케팅을 담당하고 있어요’라는 식의 소개를 받는 것이다. 이런 식의 소개를 받다 보니 직급과 경력에 따른 편견 대신 ‘저 닉네임의 뜻은 무엇일까’와 같은 지극히 개인적인 호기심이 먼저 든다.이전에 다니던 직장에서는 본명을 소개함과 동시에 자연스럽게 이어지는 질문들이 존재했다. 고향과 나이, 출신학교와 경력 등의 질문이 통과의례처럼 이어졌다. 그리고 지금의 어니스트펀드에서는 ‘윈터’라는 닉네임을 소개하고 나면 ‘윈터라는 닉네임은 어떻게 지었나요’, ‘윈터는 겨울을 좋아하나요’와 같은 질문을 주로 받는다. 내 배경에 대한 질문 대신 온전히 나 자신에게 집중된 질문이 이어지는 것이다.언어는 생활을 지배하고, 문화를 만든다. 서로 편하게 닉네임을 부른다는 것은, 업무를 진행할 때도 그대로 반영된다. 직급이나 연차와 상관없이 닉네임을 부르며 동등하게 의견을 낼 수 있고, 모두들 그것을 당연하게 생각한다.업무 효율이 높다는 것도 좋지만, 사실 가장 좋은 것은 사람을 조건이나 배경 대신 있는 그대로 볼 수 있다는 것이다. 어니스트펀드에 오기 전에는 직장에서 친구를 만든다는 것에 대해 굉장히 회의적인 생각을 가지고 있었다. 서로 다른 배경을 가진 이들이 모여서 편견을 가지고, 서로 간의 격차가 있다고 믿는 분위기 속에서 가까워지지 못하는 경우가 많았다. 직장에서 친구를 만들기 위해서 필요한 것이 진심이 아니라 다양한 조건과 배경이 되어버린 것이다.하지만 닉네임을 사용하는 지금은 다르다. 나이와 출신학교, 경력과 상관없이 동료이자 친구가 된다. 서로에 대해 알아갈 때 그 사람의 배경이 아닌, 함께 생활하며 느낀 그 사람에 대한 솔직한 감정에서 관계가 시작된다. ‘이전 직장에서 일할 때는 어땠어요’라는 질문 대신 ‘출근길에 보니까 책 읽고 계시던데 저도 책 추천 좀 해주세요’라는 질문으로 관계가 시작될 수 있는 것이다.이름은 일종의 배역이다. 본명인 ‘김승용’과 어니스트펀드에서 사용하는 닉네임인 ‘윈터’는 동일인물이 사용하고 있는 이름이지만 그 성격을 달리 한다. 김승용이라는 이름 뒤에는 수많은 배경이 존재한다. 김승용이라는 개인은 태어나서 학교에 입학하고, 군대에 가고, 직장에 들어가는, 사회가 만들어놓은 대한민국 남성 평균의 절차를 거쳤을 것이라고 사람들은 예상한다.반면 윈터라는 닉네임은 어니스트펀드에서 시작되었기에 함부로 예측할 수 없다. 윈터라는 개인의 삶을 그 누구도 정해두고 제한하지 않는다. 어니스트펀드라는 집단 안에서 윈터의 영역은 만들어가기 나름인 것이다. 마케팅 업무를 하는 윈터가 데이터 업무에 관심을 가진다고 해도 그 누구도 뭐라고 하지 않는다. 이름 대신 새로운 닉네임으로 일을 한다는 것, 그것은 결국 모든 편견에서 벗어나서 주체적으로 일할 수 있다는 것을 뜻한다. 하나의 이름은 하나의 고유한 세계를 담고 있다. 앞으로 내게 ‘윈터’라는 단어는 어니스트펀드에서의 삶을 온전히 함축한 단어로 기억될 것이다. 훗날 윈터라는 단어를 보며 어떤 모습을 떠올리게 될까. 먼 훗날에도 여전히 사람들이 내게 배경이 아닌 윈터라는 닉네임을 짓게 된 이유에 대해 묻고, 서로의 삶에 안부를 물으며 편한 동료가 될 수 있다면 윈터로서의 나의 삶은 충분히 성공적으로 기억될 것 같다.금융과 IT를 결합하여 기존의 대출·투자 경험을 혁신하는 P2P금융 스타트업, 어니스트펀드의 이야기가 연재될 팀 브런치에 많은 관심 부탁드립니다. 어니스트펀드에 대해 더 알고 싶으시다면, 어니스트펀드 홈페이지를 방문해보세요#어니스트펀드 #사내문화 #수평적조직 #닉네임 #호칭 #사내호칭
조회수 1873

스타트업 창업자에게, 투자란?

스타트업을 4번 창업해보면서, 과연 투자, Funding이 갖는 의미에 대해서 이렇게 진지하게 생각해 본 적이 있었나 싶다. 어찌 보면 너무 어리고 모르기도 했었던 것 같기도 하고, 실제로 투자가 자금 그 이상도 이하도 아닌 생존을 위한 수단이었던 경험들이 더 많았던 것 같다. 그러나 이번에 핀다를 시작하고 투자를 2번 받게 되면서 이에 대해서 다시 생각해 볼 수 있는 계기가 되어 그 생각을 공유해보고 싶었다.(본격적으로 글을 쓰기 전에) 핀다(Finda) 를 시작한 지 1년도 되지 않았고, 아직은 초기 기업이기에, 다른 훌륭한 창업자들과 선배님들에 비하자면, 사실 많이 짧은 생각일 수 있다. 그래서 지극히 주관적이고 개인적인 생각임을 먼저 알리고 싶다.투자는 언제 받아야 할까?가장 많이 듣는 질문이다. 나 또한 스스로에게 그리고 초반 공동창업자인 홍민님과도 가장 많이 이야기했던 요소가 바로 '타이밍'이었다. 왜냐하면 피말리는 경험을 한 적이 있기 때문이다. 정말로 자금이 천만 원 이하로 떨어져서 두 달치 급여를 주지 못했을 만큼 투자 타이밍을 놓쳤을 때. 다시는 그런 경험을 하고 싶지 않을 만큼 힘들었다.개인적으로는 두 가지가 가장 중요하다고 생각한다. 1) 앞으로 1년 이상의 시간 동안 정말 우리 회사가 만들고 싶은 제품과 서비스 그리고 팀에 얼마나 자금이 필요할지, 2)그리고 그 자금을 어떤 방식, 즉 투자인지 매출인지 등으로 채워나갈 수 있을지가 어느 정도 자신 있게 그림 그릴 수 있을 때를 아는 것. 물론 초기에는 도화지에 스케치했던 것들을 여러 번 지우고 덧 그리기는 했었지만, 뼈대를 잘 살렸다면 계획도 잘 세우고 좋은 타이밍에 투자를 받았다고 평가해도 좋을 것 같다.하나의 부수적인 팁으로는 어느 정도 runway가 남았을 때 IR을 시작하는 것이 내게는 좋았던 것 같다. 우리 회사의 경우 약 8개월 정도 자금이 남았을 때 본격적으로 IR을 시작했는데, 그래서인지 마음이 덜 조급해지기도 했고, 결과적으로는 매우 운이 좋게도 빠르게 투자를 유치하는데 큰 도움이 되었다.투자는 누구에게 받아야 할까?창업자라면 한 번이라도 고민했을 부분이라고 생각한다. 예비창업자라도 부모님, 친구, 지인 등에게 작게라도 투자를 받고 시작할 수 있을 거라고 생각할 수 있으니 말이다. 사실 투자를 고민할 때 가장 먼저 생각이 드는 질문이기도 하다. 이에 대한 고민을 할 때마다 나는 주변에 창업 선배님들이나 예전 투자자분들 그리고 멘토분들에게 많은 조언을 구하고 있다.2014년 7월 투자자이자 스타트업멘토인 이택경대표님, 호창성대표님, 정세주대표님, Scrum Ventures 의 Tak, 류중희대표님, 임정욱센터장님 그리고 비석세스 정현욱 대표이에 대해서는 내 경험을 조심스럽지만 꼭 공유하고 싶다. 지금까지 투자자들은 적어도 내가 해결해나가는 문제에 크게 공감해 주셨던 분들이었던 것 같다. 그래서 만약 공감해주는 분들을 만난다면 그 ‘관계’가 매우 중요하다고 생각했다. 물론 투자를 받았던 ‘나의’ 투자자이든, 받지 못한 아쉬운 분들과의 관계 모두…모두에게 인정받을 수는 없지만, 하지만 관계가 없거나 안 좋다가도 다시 좋아질 수 있다. 그리고 다시 기회는 올 수 있다! 생각지도 못했지만 현재의 투자자가 된 퓨처플레이와의 첫 만남은 잊을 수가 없다. 정부 자금지원을 위한 후보자들의 IR이 있는 날인데, IR인 줄 모르고 참석해서 제대로 발표를 망쳤는데, 난 아직도 그 실망한 투자팀들의 표정을 잊을 수가 없다. 아직도 떠올리면 등에 땀이 날 정도다.그때 어떤 생각이었는지 1주일 이후에 다시 한번 기회를 달라고 사정했고, 아주 가까스로 1달 뒤 정부자금 지원에 성공했다. 그 날 이후로 주말 없이 미국과 한국팀과 함께 자료를 만들고, 최종 발표 전에는 선정릉 공원을 돌며 발표자료와 스크립트를 중얼거리며 준비했었다. 하지만 결론적으로는 본사가 미국에 있고 한국인 지분율이 크지 않아 최종 심의에서 떨어졌고, 그렇게 퓨처플레이와는 관계를 다하는 듯했다. 하지만, 생각지도 못하게 이번 창업 아이템에 대한 고민, 그리고 시작 그리고 두 번의 투자를 모두 류중희 대표님 그리고 퓨처플레이와 함께하게 되었고 그렇게 관계는 시간에 따라 바뀌어가지만 계속 이어지고 있다.그리고 두 번의 투자를 리드했던 500 스타트업, Tim Chae와 샌프란시스코, 500 Stratups, 500 Kimchi는 너무나 할 이야기가 많아, 다음 기회에 다시 하도록 하겠다.2015년 2월 500스타트업 데모데이 때 현 500 Kimchi 의 Tim Chae Partner와 Founding Partner인 Dave Mcclure와 함께 핀다는 투자를 통해 어떤 것들을 이루고자 하나?첫 번째, 제대로 된 프로덕트와 서비스의 구축이다. 현재까지 핀다는 풀어나가고 싶은 문제의 1/100 정도를 풀었다. 금융상품을 가입하고 개인의 자산을 관리하는데 개인들이 겪고 있는 문제점은 정말 너무나도 많다. 그러기 위해서는 이 문제를 함께 풀 수 있는 정말 좋은 팀이 필요하다. 프로덕트와 서비스를 기획하고 설계하고 개발하고 풀어나가는데 더 많은 사람들과 함께하고 싶다.둘째, 고객들에게 정말 유용한 콘텐츠를 많이 생산하고 전달할 예정이다. 학창 시절 소위 ‘경제’라는 과목을 배웠지만, 실제 ‘개인금융’과 직결되는 경제에 대해서는 정말 회사를 취직해서도 아무것도 아는 것이 없었다. 부모님에게로부터 독립하지 못했기에, 무지한 채로 돈을 벌게 되었고 버는 족족 나가기가 일 수였다. 엄마에게 통장과 알지 못하는 보험 등을 넘겨받았을 때 당황했던 그 순간을 아직도 잊을 수가 없는데, 그 이후로 제대로 된 교육은 아니었지만 내게 필요한 정보를 찾고 적용하는데 무려 10년이나 걸렸다. 특히 부모님과 다른 시대를 살고 있는 우리들에게 부모님과 같은 금융생활, 절약, 투자, 저축 이 모든 게 너무나 달랐기에 우리 밀레니얼들이 필요한 금융 정보는 정말 필요하다고 생각한다.       마지막으로, 우리 팀을 위해 쓰고 싶다. 늘 넉넉하지 못하더라도, 지금까지 최고의 팀원에게 주는 상, 그리고 두 번의 명절, 생일, 결혼, 돌과 같은 경조사 그리고 아주 가끔의 회식 등을 통해 격려와 축하를 나누려고 홍민 님과 노력했고 앞으로 더 노력할 예정이다.이 모든 것을 가능하게 만드는 데 우리 핀다의 선택은 투자였고, 앞으로도 투자와 그리고 매출을 통해 더 많은 꿈들을 이뤄내고 싶다. Build Things that Matter.#핀다 #스타트업 #창업자 #창업가 #투자유치 #자금유치 #자금조달
조회수 3028

iOS 아키텍처 패턴(MVC, MVVM, VIPER)

Overview“글 한 번 써보실래요?” 입사하고 일주일이 지나 기술 블로그에 글을 써 보라는 제안을 받았습니다. 여러 고민 끝에, 아이폰 앱(이하 ‘iOS’) 주니어 개발자로서 프로젝트 경험과, 공부한 내용을 바탕으로 글을 쓰기로 했습니다. 적절한 짤이라고 생각하는 중iOS 개발자 사전 준비iOS 개발자의 길에 들어섰다면 이미 앱 개발과 개발 언어에 대해서는 알고 있을 겁니다. 개발 프로그램 Xcode와 프로그램을 지원하는 macOS 환경, 개발 언어 Swift 또는 Objective-C, iOS 앱 프로그래밍 등 iOS 앱을 개발하기 위해 필요한 내용까지도요. 우선 ‘iOS 주니어 개발자라면 꼭 알고 있어야 할 것’들을 아래 목록과 같이 정리했습니다. 글을 읽기 전, 목록 중에서 공부가 더 필요한 것이 있다면 꼭! 검색해보세요. Xcode, macOSApple Developer ProgramSwift or Objective-CCocoa TouchUIKitAuto Layout…iOS Architecture Patterns(아키텍처 패턴)“Viper 패턴 들어보셨어요?” Viper는 단순히 ‘독사’를 의미하는 줄 알았는데, MVC 패턴와 같이 디자인 패턴의 한 종류라는 건 입사하고 나서 알게 됐습니다. MVC와 SingleTon(싱글톤) 패턴은 익숙했지만 Viper 패턴은 생소했습니다. Viper 패턴을 3일 안에 분석하겠다는 저의 부끄러운 과거를 반성합니다... ㅜㅜ검색해보니 다양한 디자인 패턴을 찾을 수 있었습니다. iOS 개발자는 앱 프로젝트를 시작하기 전 또는 이미 진행되고 있는 프로젝트에서 개발을 시작한다면 우선 어떤 패턴으로 설계되어 있는지 파악해야 합니다. 그러므로 오늘은 iOS 개발에 주로 사용되는 패턴인 MVC, MVVM, VIPER를 간단하게 살펴보겠습니다.MVCMVC 패턴Model(모델), View(뷰), Controller(컨트롤러). Model에서는 애플리케이션에서 사용할 데이터들을 관리하고, View는 유저 인터페이스를 표현 및 관리합니다. Controller는 View와 Model의 다리 역할을 해 View의 입력을 Model이 반영하고, Model의 변화를 View에 갱신하는 역할을 합니다. 하지만, 애플의 MVC 패턴은 기존 MVC 패턴과 다릅니다. View와 Controller가 강하게 연결되어 있어 View Controller가 거의 모든 일을 합니다.1) 애플 MVC 패턴MVVMMVVM 패턴Model(모델), View(뷰), ViewModel(뷰모델). Controller를 빼고 ViewModel을 추가한 패턴입니다. 여기서 View Controller가 View가 되고, ViewModel이 중간 역할을 합니다. View와 ViewModel 사이에 Binding(바인딩-연결고리)가 있습니다. ViewModel은 Model에 변화를 주고, ViewModel을 업데이트하는데 이 바인딩으로 인해 View도 업데이트됩니다. ViewModel은 View에 대해 아무것도 모르기 때문에 테스트가 쉽고 바인딩으로 인해 코드 양이 많이 줄어듭니다.import Foundation // ViewModel var gameScore: Int? var gameScoreLabel: UILabel func updateGameScoreLabel() {   var text = ""   if let gameScore = gameScore, gameScore == 100 {       text = "Excellent!!"   } else if let gameScore = gameScore, gameScore >= 90 && gameScore < 100>       text = "Great Job!"   } else if let gameScore = gameScore, gameScore < 90>       text = "Not Bad~"   }   gameScoreLabel.text = text } // View Controller gameScoreLabel.text = viewModel.updateGameScoreLabel간단한 예를 들면, 게임 점수에 따라서 textView에 보여줄 내용을 담당하는 함수 등, View에서 변화가 일어나는 함수들이 View Controller에 정의되어 사용하는 경우가 많을 겁니다. 이런 함수들이 점점 많아지면 View Controller가 Massive, 많은 코드를 담게 됩니다. 그래서 이런 함수들을 ViewModel에 옮기고, 값들을 미리 세팅한 다음에 view controller에서 viewModel을 선언하고 viewModel의 함수를 불러오는 식으로 사용하면 됩니다. 매우 간단한 예제이기 때문에 대략 viewModel과 view controller에서 어떻게 사용하는지만 보시면 될 것 같습니다. 이 패턴은 주로 Reactive programming(ReactiveCocoa, RxSwift 등)을 할 때 많이 사용하는 패턴이어서 다음에 설명하겠습니다.VIPERVIPER 패턴View(뷰), Interactor(인터렉터), Presenter(프리젠터), Entities(엔티티), Router(라우터). MV(X) 패턴과 다른 패턴으로 MVC 패턴을 대체하기 위해 만들어진 패턴입니다. 먼저 Entity는 그저 모델 객체입니다. 단순하게 어떤 모델의 속성들만 있는, Dumb Model이라고 부를 수 있습니다. 이 모델 객체를 조작하는 것이 바로 Interactor입니다. 어떤 행동(behavior or use case)에 따라서 모델 객체를 조작하는 로직이 담겨 있습니다. 작업이 완료되어도 View에 아무런 영향 없이 오로지 데이터 작업만 합니다.Presenter는 데이터를 Interactor에서 가져오고, 언제 View에 보여줄지 결정합니다. View에 보여주기 전 내용을 준비하는 로직을 담당한다고 생각하면 됩니다. View는 Presenter에서 어떻게 보여줘야 할지 요청대로 디스플레이하고, 사용자의 입력을 받으면 다시 Presenter로 넘깁니다. Presenter는 View/ViewController, Interactor, Router와 상호작용합니다. Interactor로부터 조작된 데이터를 가져오고, 디스플레이하기 위해 데이터들을 준비한 다음 View/ViewController에 보냅니다.Router 또는 Wireframe은 화면 전환(navigation information)을 담당합니다. Presenter가 “언제” 화면을 전환해야 하는지 안다면, Router는 화면 전환을 “어떻게” 하는지 알고 있습니다. Router는 화면 전환 애니메이션을 구현하고, View Controller를 생성하여 Presenter와 연결합니다.항목내용ViewPresenter의 요청대로 디스플레이하고, 사용자 입력을 Presenter로 보내는 작업을 합니다.InteractorUse case에 따라서 Entity 모델 객체를 조작하는 로직을 담고 있습니다.PresenterInteractor로부터 데이터를 가져오고, View로 보내기 위해 데이터를 준비하여 “언제” View에 보여줄지를 결정합니다.Entity모델 객체. Dumb Model.Router(Wireframe)화면 전환(navigation information)을 담당하며, Presenter가 “언제” 화면 전환해야하는지를 안다면, Wireframe은 화면 전환을 “어떻게” 하는지를 알고 있습니다.하...지금까지 설명한 내용들은 막상 프로젝트 만들어 소스를 작성하려고 하면 막막해집니다. 역할이 잘 분할되어 있기에 앱의 기능을 하나 정하여 interactor, entity, presenter, view, router 만들고, 또 앱의 기능에 따라서 다시 interactor, entity,…. 고민을 많이 해야 해서 다시 MVC 패턴으로 돌아가고 싶은 마음이 생깁니다.크게 보면 Add Module와 List Module, 그리고 공통적인 모델(데이터)을 잘 분리한 앱 구조Conclusion도대체 우리는 왜 다양한 앱 디자인 패턴을 알아야 할까요? 그 이유는 바로 앱의 특성에 따라 적합한 설계를 가지고 작업해야 하기 때문입니다. 간단한 앱 프로젝트는 쉽게 개발하고 적용할 수 있는 MVC 패턴이 더 적합합니다. 반대로 MVVM 패턴이나 VIPER 패턴을 적용하면 점점 커지는 앱 프로젝트에 잘 대응할 수 있습니다. 또는 어떤 디자인 패턴이 적용된 앱 프로젝트에 참여하면, 그 디자인 패턴에 대해 알아야 앱 구조를 이해하고 기능을 추가하거나 수정할 수 있고, 작업하는 시간을 줄일 수 있을 겁니다.가장 좋은 패턴은 사람마다 차이가 있습니다. 패턴마다 장단점도 있습니다. 다만 어떤 패턴이든지 간에 구조화되고 정리된 코드는 쉽고, 직관적입니다. 이 글 하나만으로 앱 패턴을 완벽하게 마스터할 수는 없어도 패턴의 종류와 특징을 알게 되었다면 본전입니다. 다음 편도 기대해주세요! :-) 도움말 1) View Controller에서는 Controller가 View의 life cycle(라이프 사이클)에 관여하기 때문에 View와 Controller를 분리하기 어렵습니다. 개발자들 사이에서는 Massive View Controllers라고도 불립니다. 앱을 테스트할 때, Model은 따로 분리되어 테스트를 할 수 있어도 View와 Controller는 강하게 연결되어 있기 때문에 각각 테스트하기 어렵습니다. 참고문헌 iOS Architecture Patterns: Demystifying MVC, MVP, MVVM and VIPER글김주희 사원 | R&D 개발1팀[email protected]브랜디, 오직 예쁜 옷만#브랜디 #개발문화 #개발팀 #업무환경 #인사이트 #경험공유 #iOS
조회수 1485

경험 부족한 스타트업의 devops 도입기 2편

출처 : 구글 이미지 검색그 동안 테스트코드작성, 코드리뷰를 집중적으로 수행했는데요. 아직은 엔지니어 모두가 걸음마 단계여서 실무리듬에 코드리뷰와 TDD를 끼워넣진 않았습니다. 대신 각자 리서치를 수행하고 매주 수요일 SW 세미나에서 lesson&learn 공유하는 식으로 devops를 공부했습니다.회고2주를 되돌아보고 느낌점을 한 문장으로 요약하면 다음과 같습니다.기술부채의 이자율은 고정 값이 아니다. 시간이 흐를수록 점점 더 높아진다.코드리뷰부터 말씀드리겠습니다. android와 iOS의 경우 앱 개발기간 3개월 동안 커밋한 어떠한 코드도 리뷰하지 않은 상황이었습니다. devops를 계기로 두 프로젝트 간의 코드리뷰를 드디어 시작했는데요. 방대한 코드를 빠르게 이해하기 위해 코드리뷰에 앞서 시각화된 자료를 준비해 아키텍쳐리뷰부터 수행하였습니다. 아니나 다를까 두 클라이언트의 유저스토리가 완벽하게 똑같음에도 불구하고 클래스 설계며 구현상의 코드며 개발 상의 내용이 완전히 갈라져 있음을 목도했습니다.출처 : 구글 이미지 검색iOS, android 환경적 차이로인해 어쩔 수 없이 코드의 다름이 나타나는 경우도 있었지만 대다수의 차이는 코드리뷰를 하지 않아서였습니다. 코드리뷰를 진행하면서 조금 신기했던 사실은 아주 간단한 요구사항(기능)도 개발자 개성에따라 구현법이 각양각생이라는 점입니다. 한 가지 문제에도 다양한 해결법이 존재하는만큼 각 구현법 마다 강점과 약점이 존재하기 때문에 코드리뷰의 필요성이 생각보다 더 크다는 점을 깨달았습니다. 앞으로 클라이언트에는 고도화된 유저스토리가 계속 추가될 예정인데 두 클라이언트간 갈라진 구현상의 설계는 분명히 피처 딜리버리에 병목지점으로 작용될 것입니다. 두 갈래로 나뉜 클라이언트를 어떻게 설계적으로 통합시켜 나갈지 지속적으로 고민해봐야 겠습니다. 또한 더 이상 차이가 벌어지지 않도록 지금부터 추가되는 피쳐들이라도 코드리뷰를 수행하는 환경에서 개발되도록 해야할 의무감도 느꼈습니다.테스트 코드도 마찬가지로 기술부채가 생각보다 많이 쌓였음을 깨달았습니다. 스위처의 클라이언트의 기술적 난이도는 낮은 편입니다. 그런데 그럼에도 불구하고 기존 코드에 테스트코드를 입혀 SUT로 만드는 일은 여간 까다로운 일이 아니었습니다. 기존 코드는 비즈니스로직과 I/O(DB,Network, BLE), UI 코드간의 커플링이 높아서 막상 어느것 하나 테스트코드를 입히기 쉽지 않았습니다. 테스트코드를 작성하기 위해서는 논리단위의 클래스들을 떼어내는 리팩토링이 병행되어야만 했습니다. 테스트코드 없이 작성한 코드는 시간이 지날 수록 테스트코드가 비집고 들어갈 틈 또한 점점 없애는듯 합니다. 그래도 이러한 현상들은 몸소 체험하면서 확신을 갖게된 사실도 있었습니다.테스트코드가 존재함으로서 SUT의 설계는 옳은방향으로 향한다.기존 코드에 테스트코드를 입히려고 이리저리 애쓰다보면 무관한 기능들이 뭉쳐있는 비대한 클래스는 발견하게 됩니다. 테스트코드를 입히기 까다로운 이 거대한 클래스를 쪼개야할 필요성을 느끼게 되는데요. 이 시점에서 개발자는 테스트코드가 있기 전에 절대 하지 않던 리팩토링 고민을 하게 됩니다. 치열하게 고민하는 과정에서 리팩토링에 실패하면 제대로된 테스트코드를 작성하기가 불가능해집니다. 즉, 테스트코드를 작성 했다면 분명히 설계상의 리팩토링이 일어 났을 확률이 높습니다.스위처 어플리케이션의 내 주변의 스위처 목록 페이지를 예를 들어보겠습니다. 해당 스크린에서는 유저가 여러개의 스위처를 확인하기 때문에 몇 가지 비즈니스 룰에 의해 스위처들의 정렬 순서가 결정됩니다. 그래서 유저는 여러개의 스위처가 검색되어도 내가 가장 사용할 확률이 높은 스위처를 최상단에서 만나는데요. 그 정렬 역할을 맡은 클래스가 switcher sorting(이름이 잘 기억안나네요..) 입니다.저희 안드로이드 개발자는 이 클래스를 첫 SUT로 만들기로 결정했고 일 주일간 테스트코드를 작성하려고 노력했습니다. 그러나, 생각보다 쉽지 않았습니다. SW세미나때 코드를 리뷰하면서 발견한 사실인데 swithcer sorting는 단순히 비즈니스룰에 사용되는 정보 뿐만 아니라 꽤나 무거운 무거운 switcher 클래스도 의존하고 있었습니다. 정작 sorting 우선순위를 결정하는데 필요한 정보는 switcher 클래스가 갖고있는 정보들 중 극히 일부분이었는데 말이죠. 이렇게 큰 클래스 때문에 테스트 코드를 짜려면 안드로이드 라이브러리인 BluetoothDevice와 Context 인스턴스를 공급하는 목업 클래스가 필요한 상황이 벌어질 수도 있었습니다. 더 큰 문제는 비대한 클래스로 인해서 test의 fixture를 구성하는데 수십 줄의 코드가 필요 했다는 사실입니다. 자연스럽게 테스크코드를 작성하면서 리팩토링의 필요성을 느끼게 되었습니다. 가까운 미래에 스위처 개발자가 성공적으로 switcher sorting 클래스를 SUT로 만들었다면 이 클래스의 설계 또한 분명 리팩토링을 거쳐 더 좋은 방향으로 거듭 났을 것 입니다.앞으로 2주간 할 일어떠한 일이든 균형이 중요하다고 생각합니다. 마냥 기술부채를 털어낸답시고 리서치와 공부만 하고 있을 수는 없습니다. 동아리가 아닌 회사이기 때문에 시장의 니즈에 맞춰서 분명히 다시 피쳐를 개발하는 속도를 높이는 가속 패달을 밟아야 할 시점이 올 것입니다.출처 : 구글 이미지 검색너무 이르지도 않게 그렇다고 너무 느리지도 않게 적절한 시점에 고객이 불만을 터뜨리지 않을 정도의 SW 안정성을 보장하는 최소한의 devops 수준을 달성해야합니다. 어느정도까지가 devops를 도입해야 오버엔지니어링이 아닌 기술부채를 탕감하면서 동시에 I/O 초중기 목표를 달성할 수 있는지 치열하게 고민하고 부딪혀보며 기민하게 대응해야 겠습니다.앞으로의 2주간 할 일은 다음 질문 두 가지에 대한 대답을 하면서 자연스럽게 도출될 것 같습니다.테스트코드 작성을 위한 TDD를 어떻게하면 엔지니어가 효과적으로 학습할 수 있을 것인가?코드리뷰를 스프린트 일과에 어떻게 자연스럽게 안착시킬 것인가?#스위쳐 #Switcher #개발 #개발팀 #문제해결 #인사이트 #DevOPS #데브옵스
조회수 1520

오직 땀으로만 불행을 지운 100억 매출의 청소 아줌마

얼마전 성실캠프에서 임희성 대표님을 모시고 인생 스토리를 들었다. 눈물을 3번 흘렸다. 기업가의 강연을 듣고 눈물을 흘린 적은 두번째다. 첫번째는 바로 손정의 강연에서 눈물을 흘렸었다.임희성 대표님의 어린 시절얘기부터 파란만장한 이야기들이 머릿 속에 아주 생생하게 한 편에 영화처럼 그려졌다. 아주 깊은 나의 내면속에서 존경심이 우러러 나왔다. 이런 분들이 세상에 존재해주셔서, 아직 살아계셔서, 이렇게 이야기들을 시간내서 사람들에게 말해주는 것에 대해서 정말 감사한 마음이 들었다.내가 사업을 하면서 겪고 있는 어려움, 불행, 힘든 일들은 이런 분들에 비하면 아무것도 아니다. 그렇기 때문에 그것에 힘들어하며 제자리에 멈춰있는 것은 하수다. 항상 나보다 더 어려운 상황에 놓인 사람들이 많다. 나는 계속 전진하면 된다. 그리고 빨리 여유있는 나 스스로의 환경을 만들어내어 어려운 환경 탓에 꿈을 실현하지 못하고 있는 사람들의 엄청난 잠재력이, 먹고 살기 위한 일에 인생을 허비하지 않도록 그들을 도와준다.나중에 이들을 따로 돕는 펀드를 만들 것이다. 펀드 이름은 PM(Potential Mankind) fund. 한국에서 시작해서 해외에서도 이러한 사람들을 돕는다. 100억 규모로 편성해서 1명당 월 100만원씩 한 해에 약 1천만원씩 지원하고 매년 1,000명의 잠재력을 발굴한다.강연때 너무 기억하고 싶은 구절 구절들이 많아서 전문을 공개한다. 길지만 꼭 일독을 추천한다.[전문] 지금 뇌종양 판단을 받은 상태다. 머릿 속에 종양이 생겼다. 수술을 계속 하는 상황에서도 사회 생활을 계속 하고 있다. 나는 다음과 같은 이력, 경력을 가지고 있다.이력 : 연성대학교 절업, 고려대 경영전문대 졸업, 이화여대 평생 교육원, 연세대 외식산업과정이수, 한국 농수산 대학 수료, 한영신학대학교 졸업 경력 : 나이 18살 직장, 남대문 점원 10년, 자영업 2년, 대양기업 창업 - 희림뷔페, 매운갈미찜, 3대 막국수, 석봉토스트 자격 : 요양보호사 2급, 펀리더쉽 지도사 1급 사회복지사 2급, 웃음치료사 1급, HSK 2급. 나는 대표직을 맡고 있으면서도 사장님이라고 부르지 말라고 한다. 굿모닝대양이라는 우리 회사는 아침에 잘 잤어? 라고 하는 회사다. 나는 뭐 뷔페도 했고 갈비찜도 했다. 여기 있는 사업은 아주 처절하게 실패를 했다. 자격증도 많이 땄다. 왜 땄냐면 올 2월 22일 대학교를 졸업했다. 이 나이에. 실패는 끝이 아닌 또 다른 성공이다라고 생각한다. 실패를 여러번 느껴본 사람이 성공이라는 단어를 말할 수 있는 자격이 주어진다고 생각한다. 실패를 안해본 사람은 성공이라는 참의미를 모른다.  내 인생에는 터닝포인트 4가지가 있었다.  1. 소녀가장 2. 미혼모(과부) 3. 뇌종양 4. 비전, 아직도 꿈을 꾸고 있다.  이 4가지는 내가 자신있게 얘기할 수 있는 제목이 되어버렸다.  1. 소녀 가장 이때는 대한민국이 그냥 너무 가난했다. 우리집도 너무 가난했다. 부자인 친구보다 가난한 친구들이 많았다. 근데 가난이 부끄럽지는 않았다. 내가 부끄러운 것은 아버지였다. 그때 의술이 발달되지 않았다. 몸이 아프셨는데 민간요법으로 목숨을 어떻게 구하셨는데 근데 지적 장애가 되셨고 주위에서는 말 더듬이라고 불렀다. 어렸을 때 아버지에게 누가 말을 걸면 내가 앞에 서서 얘기했다. 대신 말 해주려고. 그때 어릴 때 나는 멋진 아버지들을 보면 사실 부러웠다. 우리 아빠는 왜케 의기 소침할까? 이런 원망 아닌 원망을 했었다. 내가 그래서 가장 역할을 하게 된 것 같았다. 그때 큰 딸인 내가 동생들한테 등록금을 양보하다보니깐 매번 내가 돈 안내는 사람으로 칠판 뒤에 적혀있었다. 그래서 학교를 왠지 주눅이 들며 다녔다. 공부를 잘하는 머리도 아니여서 장학금도 못탔다. 나는 아버지의 어깨가 무겁다고 생각되어 고등학교 2학년때 취업을 하러 나갔다. 그때는 취업을 하면 졸업장을 그래도 줬다. 그래서 아버지의 반쪽 어깨를 덜어드리고자 반쪽 가장 역할을 했다. 20대 초반때 멋진 대학생을 소개 받았다. 돈까스 사준 다는 말에 미팅을 나갔는데 대학생이 너무 멋있었다. 아버지가 하지 못한 행동을 나한테 해주고 토닥여주고 마음을 안아줬다. 나도 모르게 이 남자가 나를 진정으로 사랑한다고 믿었다. 그때 당시에는 손만 잡으면 결혼하는 줄 알았다. 그러던 내가 아이가 생겼다. 이 남자의 발목을 붙잡았는데 이 대학생은 전혀 원하지 않았다. 어찌어찌 딸 아이가 탄생했다. 아이가 탄생하고 2주 만에 남자가 군대를 갔다. 그때 뭐 3년 금방 가지 아이도 있는데하며 기다렸다. 그리고 아이를 낳았던 것이다. 남편만 믿고 기다렸다. 36년개월을 마치고 돌아와야 되는데 10개월 뒤에 만날 수 없는 사람으로 돌아왔다.  아이를 키워야되니깐 시댁에 들어갔는데 근데 시댁에서는 우리 모녀를 달가워하지 않았다. 결혼식도 안 올렸는데 아이를 낳고 왔으니 예뻐보이지 않았을 것이다. 이만큼 살아보니깐 그 당시 충분히 그럴 수 있다 그렇게 생각한다. 그때 아이 분유를 시어머니가 안사주시더라. 내가 분유하나 못살까 그러다가 토큰 하나 들고 남대문 시장에 갔다. 버스에서 내렸다. 새벽 장사를 끝낸 상인들이 무척 바쁘게 움직였다. 나는 가게를 두리번 거리다가 손님이 가장 많은 곳에 점을 찍었다. 그리고 그 앞에 서서 내가 여기 사장님이 누구세요라고 했다. 그러더니 아주머니가 나가. 라고 하더라. 점원좀 시켜달라고 했다. 콧방귀를 뀌면서 뒤도 안돌아보셨다. 그때는 아이를 낳고 얼마 안되서 앳된 얼굴에 45kg이여서 되게 홀짝해보였다. 그때는 옷을 어떻게 샀었냐면 노란색 포대로 옷을 담아서 빨간 노끈으로 동동 동여매어 야무지게 포장을 해서 머리에 이고 서울역까지 가야됬다. 그때는 지방 손님이 올라왔고 서울역까지 가던가 돈이 좀 있으면 지게 아저씨가 지어주는 거였다. 이때 점원을 구할 때는 서울역까지 픽업하는 걸 보통 옷집에서 구하는데 나는 깡마르고 하니깐 사장님이 나를 내 쫓더라. 그리고 다시 내가 아무것도 못할 것 같지만 뭐든지 시켜달라고 했다. 사장님이 지나고 나서 말하는게 너 당차다고, 너 무슨 생각으로 나한테 그랬니라고 했다. 그때 나는 대답했다. 아 배고파서요…  그래서 사장님이 너 아침 먹었니? 그러더니 "밥 시켰다 밥 먹어라" 하얀 쌀밥에 소고기가 둥둥 떠있는 국을 먹었다. 하얀쌀에 고기국은 너무 맛있어서 평생 잊을 수 없는 맛이였다. 내가 밥 값을 하고 싶어서 옷을 주섬 주섬 있고 치우고 일을 했다. 그리고 다음날 취업을 했다. 사장님이 안시켜주는 걸 나는 찾아서 했다. 그때는 옷을 쌓아두고 팔았기 때문에 하나만 빼서 주니깐 옷이 막 무너지는 경우가 많았다. 나는 그때 신문지랑 장대 활용해서 옷을 무너지지 않게 했는데 옆집 사장님들이 칭찬하더라. 근데 우리 사장님은 나한테 한마디도 칭찬을 안하더라 근데 다른 가게가서 내 칭찬을 하더라.  나는 내 새끼 굶지 않게 하려고 분유를 사기 위해서 남대문 시장을 나갔다. 나는 그때 무슨 일을 할지도 모르고 그냥 갔다. 나는 우유값 벌려고 나갔다. 나는 근데 분유값만 번게 아니라 집도 조금씩 이사를 하며 좋은 집으로 갈 수 있게 되었다. 남대문 시장은 우리 가족을 살려준 장소다. 이전에는 산꼭대기 위에서 살았는데 가로등도 없는 그 껌껌한 곳에서 버스정류장까지 우리집이 내려왔었다. 이 남대문은 아픔을 잊게 해준 장소다.나는 남편이 일찍 죽고 결혼식도 못올렸으니 미혼모였고 남편이 죽어서 무덤을 만들었는데 미망인 임희성이라고 써져있었다. 나는 남편이라는 존재도 모르고 왜 미망인이야. 미망인이 뭐지. 나는 미망인이 몰랐다. 비석에 미망인이라고 써져있으니 그냥 미망인인줄 알았다.  나는 초심을 잊거나 기분이 다운되거나 내가 걸었던 남대문 시장을 쭉 걷는다. 그럼 그 새벽 골목에 내가 머리를 이고 걸었던 그 골목이 아직도 변하지 않아서 그 과거가 안 잊혀져서 한번씩 찾아가보는 것 같다. 딸이 유치원을 갔는데 엄마 얼굴을 그려오라고 했다. 근데 엄마 얼굴을 본 적이 없으니 이불을 덮고 자는 엄마의 얼굴을 그렸다. 그때 내가 가슴이 먹먹했다. 사람답게 살 수 있는 그런 직업을 가졌으면 좋겠다. 딸이 그려온 그림을 보니깐 내가 내 구실을 못한다고 생각했다. 그래서 내가 청소 용역이라는 걸 생각했다. 아파트가 있는데 아주머니를 데리고 계단을 쓸고 닦고 엘리베이터를 닦아주고 화단에 있는 쓰레기를 치워주고 그런 일을 하는 직업이 있었다. 구질구질한 일을 치워주고 남이 안하는거라 뭔가 이 일이 땡꼈다. 점원은 사장님이 하는 일을 금방 배우는데 13년을 배우면서 내가 사장을 하고 싶은 생각을 하지 않았다. 실패가 그때는 두려웠다. 그냥 열심히 점원 생활을 하면서 차곡차곡 돈을 모았다. 그런데 청소 용역이라는 걸 생각해보니깐 낮에 나가서 청소용역을 하고 밤에 남대문 보고 나중에 직원을 두면 되겠다라고 생각했다.청소용역 25년중 가장 힘들었던 부분이 낮에 청소용역하고 밤에 남대문 일하려니깐 아 이러다 죽겠다 싶어서 하나씩 접었다. 가장 친한친구에게 노점을 하나 주고 노하우를 가르쳐주고 6:4로 수익을 배분하고 나는 청소용역에 집중하려고 한다고 말했다. 남대문에서 돈 맛을 보면 본질에 대한 판단이 흐려지는 사장들을 많이 봤다. 아주머니에게 이렇게 교육을 한다. 건강하니깐 청소를 할 수 있 수 있다는 자부심을 가지십시오. 계단을 오르고 내릴 때마다 나 운동하고 있는거야. 내 직업은 다른 사람이 하기 싫은 일을 지구 한 구석에 더러운 부분들을 쓸고 닦는 그 일을 할거야. 아주머니가 명절 지나고 나서 엘리베이터에 3일만 안치워보세요. 다들 아주머니를 많이 그리워할 겁니다. 그러면 내 직업이 얼마나 소중한지 아시게 될 겁니다. 이렇게 교육을 시키니깐 힘들었다. 대부분의 아주머니들이 뭐야 나 이런 청소하는 사람 아니야. 이런 식이 대부분이였고 그 인식을 바꾸는데 많은 노력을 했다. 내가 계속 얘기하는 것은 자부심을 심어주고 이 청소가 남들이 안하는 것을 내가 하고 전문 인력이라고 한다. 혼자 가지말고 다같이 삼삼오오 모여 오늘도 수고했고 그렇게 파이팅하면서 서로 팀워크가 강화되더라. 서로 친구가 되더라. 직장이 되더라.  돈에 맛들려 인생을 돌아보지 못했다. 운전을 하고 가는데 갑자기 한쪽 눈이 안보이더라. 남들보다 노안이 왔다고 생각하고 참 노안이 빨리오구나 그렇게 생각했다. 그때 병원이 뭔가 그냥 가기 싫더라. 눈에 안보이면 안경을 써야되는데 이건 눈이 흐릿하게 보이는게 아니라 그냥 칠흙 같으니깐 그때 안과의사가 신경과쪽으로 가보라고 조심스럽게 CT 촬영을 권했다. 그때 영상을 찍으로 갔는데 찍는 분이 쯧쯧쯧하는게 들리더라. “이 정도 사이즈인데 불편하지 않으셨어요?” 라고 하더라. 그때 내가 뭐 남들도 다 머리 아프지 않나요. ?  종양이 시신경을 눌렀네요. 이 정도면 많이 아팠을텐데요. 빨리 수술을 해야될 것 같습니다라고 하더라. 그때 베드에 누워서 가는데 급한 전화 받으려고 수술 받으러 가는데 전화를 하면서 갔다. 그때 그 베드를 이끄는 사람이 막 뭐라고 하더라. 어떻게 수술하러 가는 사람이 휴대폰을 들고 오냐고. 5번의 뇌종양 수술을 했다. 아직도 다 제거하지 못했다. 그 남아있는 것을 제거하면 그냥 같이 내 목숨도 간다고 하더라. 5번 수술을 하면서 많이 힘들었다. 마취를 하고 나면 깨고 나면 오는 여파가 정말 많이 힘들더라. 뇌종양이라는 수술을 머리를 열고 했고 두번째는 머리를 열지 못한다고 해서 코를 들었다. 그리고 또 들어갈 자리가 없다고 하더니 제 몸무게만한 튜브를 쓰고 마취도 없이 이마에 두개를 연고만 발라서 귀 옆에다가 걸고 머릿속에 있는 뼈가 드릴로 갈리는 소리가 들리는데 이런 생각이 들더라.아… 이제 그만 살고 싶다. 이렇게까지도 내가 살아야할까. 뼈가 갈리는 소리가 들리면서 그만 살았으면 좋곘어요. 제가 할일은 다한 것 같은데.. 아버지 역할도 해봤고 죽은 남편에 대한 역할을 대신하여 딸을 대신 대학교에 보내봤고 이제는 내가 제 몫은 다한 것 같은데 그만 좀 살고 싶다는 생각을 많이 했다. 수술을 하고 나니깐 생각이 급해졌다. 하나만 남지 않은 딸에게 꼭 뭔가를 해주고 싶었다. 그래서 생각지도 않은 식당에 손을 댔다. 한번도 경험해보지 않은 식당일을 했다. 내가 옷집에 가서 사장님 돈을 많이 벌어줬고 청소 용역이라는 걸 했을 때 잘 벌었다. 돈을 버는데 어려움이 없었다. 식당은 터만 잘 잡으면 되니깐 3개를 벌렸는데 3개가 다 잘 됬다. 근데 그 때 왜 잘 됬는지를 생각해보니깐 일단 내가 세를 안내니깐 그냥 잘 됬던거다.1천명이 돌아가는 군식당 운영해보는게 어떠냐는 제안이 들어왔다. 그때는 3개가 돌아가니깐 어 뭐 잘되겠다. 그때 지인이 보증금을 혜택을 많이 준다고 해서 식권 3,800원에 한식 양식 중식 뷔페를 깔았다. 근데 해보니깐 3,800원 내가 더 보태서 팔아야했다. 근데 이게 돈이 될려면 식권이 몇백장이 팔려야 되는데 군대 특성상 빨리 밥먹고 일해야되는 특성 때문에 간부가 뭐야 일을 안하네 그래서 식권을 안사더라. 그래서 6개월 되더니 적자 폭이 막 늘어나는게 보였다. 계속 돈 메꾸면서 버티고 버텼다. 임대료 줘야지, 월급 줘야지, 자재값 줘야지.. 이 작은 가게에서 돈을 메꾸다보니깐 만신창이가 되었다. 그 군의 식당에서 한번에 훅 갔다.  내가 딸에게 돈을 남겨주려고 하다보니깐 돈을 쫓았다. 그리고 돈이 나를 도망갔던 것 같다. 그때 내가 20억을 날렸다. 신용불량까지 갔다. 내가 가지고 있던 굿모닝대양은 25년된 법인이다. 그때 나는 개인 파산만 해야된다고 생각해서 다 털었다. 나 하나 신용불량자 되고 나니깐 게임 아웃이 되더라. 너무 힘들었던게 휴대폰이 011이 010으로 바뀌는데 휴대폰이 개설이 안되더라. 휴대폰이 개설 안되니깐 마음이 짠하더라. 휴대폰은 신용 때문에 해주기 때문이다. 초심으로 돌아가자. 내 재산은 몸뚱아리 하였는데. 나 몸뚱아리 하나로 가족들 먹여살렸는데.. 그때 직원들에게 진짜 부끄러웠다. 직원들이 나에게 제발 그만 좀 하세요. 밖에 몇시간 연락안되면 불안해한다. 나는 행복하기 위해서 돈을 벌었다. 내 재산을 많이 물려주면 그게 행복인 줄 알았다. 저 멀리 있는 행복을 자꾸 쫓으려고 하다보니 그 행복은 나에게 불행으로 왔던 것 같다. 실패를 통해서 내가 깨달은 것은 사람들이 왜 성공을 하려고 할까. 성공이라는 단어가 한번도 생각해본 적이 없는데 왜 성공을 하려고 저렇게 사람들이 발버둥치는지. 그게 알게됬다. 그래서 지나온 세월을 거슬러 오면서 다시 생각해봤다. 나는 진짜 무엇을 하고 싶을까. 대학교때 친구들이 나 남자친구 만나러갈꺼야. 책을 끼고 막 가는게 나는 피하면서 전봇대 뒤에 숨었다. 그래서 학교에 가서 공부를 하고 싶다는 생각을 했다. 돈을 더 벌지 말고 텅텅 비어있는 내 머릿속에 뭔가라도 채워보자. 그때 등록금 못냈던 대학을 내 돈으로 스스로 내보자. 그때 야간대학에 들어갔는데 젊은 친구들이 다 자고 있더라. 그래서 내가 야단을 쳤다. 나보고 이모님이라 부르더라. 내가 그래서 같은 대학생 13학번 같은 학번인데 어떻게 이모님이라 부르냐 누나로 불러라. 언니라 불러라. 나는 마법의 시간인 것 같았다. 나는 23살이다. 취준생이다. 대학생들에게 말해줬다. 너 지금 이 시간은 절대 돌아오지 않는 시간이다. 이 시간은 값진 시간이다. 너희들에게 하고 싶은 이야기는 경험을 해라. 그 경험은 너에게 값진 경험이 될 것이다. 스펙 쌓으려고 오는 대학 말고 차라리 여행을 가라. 배낭 여행을 가서 그네들의 살고 있는 선진국이 뭔지 문화가 뭔지 보고 와라. 대학은 니가 가고 싶을 때 언제든지 가고 싶다. 나를 봐라.  친구들이 샤넬 향수를 가지고 있는데 넘버가 있다 고유한 번호가 있다. 근데 나는 내 몸에는 락스 냄새가 난다. 락스는 내 고향 냄새이다. 락스 냄새는 아파트 위에서 내려온다. 밑에 있으면 락스 냄새 나면 몇층에 아주머니가 있는지 알 수 있다. 그러면 가서 인사한다. 그럼 아주머니가 어떻게 내가 있는 줄 알아? 에이~ 내가 누군데요..? 그 락스 냄새가 나를 있게 해줬다. 계란은 남이 깨면 계란 후라이가 될거다. 내가 깨면 생명이 되고 병아리가 되고 성장한다. 저 병아리도 얼마나 많은 시련들이 있었을까. 그 계란 껍질안에 쪼다가 또 멈췄으면 계란 후라이가 됬을 거다. 언제까지 남의 계란 후라이가 될 것인가. 실패를 이겨내고 일어섰을 때 성공할 수 있다. 후라이가 되기 싫다면 닭장을 박차고 나가야된다.  내가 CEO가 되고 싶었다면 그 13년동안 점원으로 일하지는 않았을 것 같다. 그때는 하루하루 그냥 충실히 살았던 것 같다. 사람은 태어나면 누구나 이유가 있다. 우리 가족에게 많이 얘기한다. 오늘 밥상에 올라온 걸 보면 나는 간장 종지, 아름다운 그릇에 시금치, 사골이 우러나오는 맛잇는 소고기국이 될 수도 있고.. 자기만의 역할들이 있다. 그래서 세상이 돌아간다. 내가 특별했던 것은 아니다. 그냥 내 위치에서 최선을 다했다. 나는 작은 일에 정성을 다하는 것이 정말 중요하다고 생각한다.  여러분들에게 감히 제가 성공과 실패에 대한 얘기를 했지만 제 삶의 얘기를 계단의 닦는 CEO로서 내 이야기를 한 것 같다. 나의 이야기가 조금이나마 도움이 되었으면 좋겠다. 박수호 기자님 마무리멘트.어려울 때 다른 곳에 눈을 돌리는게 아니라 그걸 어떻게 겪어내고 끈기를 가지고 결국 방법을 찾아내는 것을 말해주셨다. 젊은 사람들을 보면 안되면 다른 곳에 바로 눈을 돌린다. 임 대표님은 식당때 아주 망했지만 개인이 파산하더라도 본인이 만들어놓은 모체는 포기하지 않고 계속 이어갔다.  Q. 외롭지 않았나? 가족을 책임져야 한다는 책임의식 때문에 솔직히 외로움을 몰랐다. 무감각이였던 것 같다. 사회복지학과 공부를 배우면서 상담 공부를 했다. 상담 공부 과정에 내가 몹쓸병에 걸렸다. 억압, 분노를 많이 가지고 있었다. 가슴에 끌어안고 있는 화병 때문에 제가 감정을 너무 억누르고 있어 맛있는 음식을 먹어도 맛있다고 하지 못하고 배만 부르면 되지, 꽃을 봐도 이쁘다고 얘기를 하지 못했다. 강아지가 사료 먹듯이.. 그냥 내 충족 욕구만 채웠었다. Q. 직원들이 몇백명이 되고 하면 기존에 의미있는 직업 의미 부여에 대해서 희미해 질수도 있는데 어떻게 그 동기부여를 하나?우린 직원이 2,000명이다. 이게 계약직이라 1년 단위로 한다. 그래서 1천명을 깔고 간다. 우리는 중소기업도 아닌 영세상인이다. 그 분들이 개념이 딱히 없다. 사람들 옆에 보고 봉급 얼마 받아? 조금 더 줄게. 애사심을 가질만하면 누군가가 꼬시고 꼬심을 당하면 가는거다. 왜냐하면 목구멍이 포도청이니깐. 그래서 우리 회사에 대한 이미지가 그만큼 없는거다. 내가 어느 회사 소속이 어디인지 모르면서도 그냥 돈 좀 더 주니깐 다른데 가는거다. 다음날 출근을 안해버린다. 그러면 중간 관리자가 참 힘들어진다. 우리는 가족 같은 분위기가 많은 것 같다. 우리는 만원 더 준다고 가지말고 만원 안준다고 뺏지말고 어머니가 좋은 일 하세요. 궂은 일을 내가 다할게. 근데 중간 관리자들이 나보고 뭐라한다. 혼내셔야되는데 왜케 안 혼내시냐고. Q. 지금은 어느 것을 목표로 하고 계신지? 너 이제 먹고 살만한데 왜 이렇게 사냐. 등록금만 내면 졸업장 줘. 뭘 그렇게 야간대학 다니면서 해. 라고 한다. 내가 대학 4년 다니니깐 푸는게 너무 어렵더라. 첫 중간고사는 백지를 냈다. 아 그럴려면 책을 읽어야되고 그럼 많이 써야하고 이런게 늦은 나이에 깨달을려고 하니깐 힘들더라. 3~4년전에 사람 만나기 시작했다. 그때 대학 다니면서 직원들이 많이 놀랐다. 왜 남들에게 흠과 치부를 드러내면서 얘기를 하냐고. 나는 내가 다른 사람들에게 이렇게 함으로써 20대때 실패할 수 있다. 20대때 자빠질 수 있다. 넘어져도 다시 일어설 수 있다. 이불 뒤짚어쓰고 울었니? 나는 울음이 안나오더라. 그럴 수 있다. 용기내서 살아라. 어느 누군가에게 나의 아픔이 똑같이 전이가 되서 그 사람에게 용기를 주고 싶었다. 당신이 성장해야 올바른 아이를 키울 수 있다. 모성애는 대단하다. 몸이 아프면 병원에 가면 되. 누가 나를 뇌종양으로 보겠니. 나도 내가 이걸 말하고 다니니 치유가 되더라. 한 사람이라도 살려주고 내가 죽더라도 내가 태어난 이유가 있으니 그 이유에 하나가 되지 않을까 생각한다. 몇년 전 대학생들이랑 대학 다닐 때 느꼈던 게 아 정말 젊은이들이 머리가 잘 돌아가구나. 이해가 안되는게 많았다. 대학생들한테 배운게 나이 많은 사람들이 젊은 사람들한테 못한다고 얘기한다. 내것이 아닌 것 같으니깐 스쳐가는 바람이라고 생각한다. 니가 나보다 더 살았어?라고들 한다. 근데 대학생들이랑 같이 있다보니깐 많이 변하게 되더라. 그렇게 보니깐 좀 더 젊게 사는 방법을 배웠던 것 같다.    Q. 사업에서 가장 중요한 건 뭐라고 생각하는지?초심을 잃지 않는 것이라고 생각한다. 항상 내가 이걸 처음 시작했을 때의 마음가짐을 생각해야된다.  건강한 강아지와의 특별한 만남, 페오펫'유리 진열장'이 아닌 '잔디밭'에서 특별하게 시작하세요.#페오펫 #peopet #아이디어기업 #기업문화 #목표 #비전 #각오
조회수 1190

채식주의자들의 오해

앞의 글에서 나는 채식주의자 이지만 이건 개인적 신념같은 거고, 이를 남에게 강요하는 행위는 인간의 자유를 침해하는 행위이기 때문에 해선 안된다고 언급한 바 있다. (채식주의자가 되다 글 참고) 이 글에서는 채식주의자들이 마치 종교처럼 남에게 설득하기 위해 제시하는 (대부분은 과학적 근거가 부족한) 채식주의자들의 오해 또는 맹신에 대해 몇가지 논해 보고자 한다.1. 채식주의는 환경보호에 긍정적 영향을 준다.채식주의자나 환경단체들이 채식주의의 우월성을 논할때 가장 많이 언급하는 것이다. 논리는 대충 이렇다.축산업에서 발생하는 온실가스 (메탄, 이산화탄소)가 지구 온난화를 유발하기 때문에 고기 소비가 많을 수록 더 많은 가축 농장이 생길 거고 거기서 나오는 더 많은 온실가스들로 인해 지구 온난화가 가속화되니 고기 섭취를 줄여야 한다. 사실 축산업이 온실가스를 배출하는 부분에 있어서는 학자들 사이에 이견이 없는 듯 하다. 하지만 많은 사람들이 간과하는 부분은, 저렇게 고기 섭취를 줄인 만큼의 에너지 섭취는 그럼 무엇으로 이루어지는가 이다. 어차피 현 인류에서 호포 사피언스 시절 처럼 수렵과 채집으로 먹거리를 공급하는 인간의 비율은 전 세계에 1%도 채 안될 만큼 인류의 먹거리는 이미 수 많은 농장과 연결되어 있다. 즉, 저렇게 줄인 고기 섭취 만큼 채소나 곡류의 섭취가 늘어날 것이고, 어차피 채소농장도 에너지 사용, 용수 공급을 위한 물 낭비, 이산화탄소 배출 등의 환경 오염 행위를 동일하게 할 수 밖에 없다. 즉, Trade-off 관계로 보면 채식주의를 한다고 해서 실제로 환경에 이로운가? 이 질문에 대해서는 절대로 Yes라고 답할 수 없는 것이다.실제로 얼마전 카네기멜론 대학의 한 연구결과에서도 다음과 같이 보고된 바 있다.총 에너지 섭취를 유지하면서 육류에서 채식으로 완전히 식단이 바뀔 경우 전체 에너지 사용은 43%, 물 사용은 16%, 온실가츠 배출은 11% 증가할 것이다.- Environment Systems and Decisions journal, Carnegie Mellon University, 2015-12-15즉, '채식주의자가 되면 환경보호도 하고 일석 이조랍니다~' 이런식으로 다른 사람을 설득하는 행위는 예수천국 불신지옥과 크게 다르지 않는 행위일 수도 있다.인류의 채식주의로의 완전 이행은 오히려 더 큰 환경적 재앙을 초래할 수도 있다는 연구결과도 있다.2. 채식주의가 건강에 좋다.채식한다고 하면 대표적으로 많이 듣는 이야기 중 하나이다. 채식하면 건강에 좋다며?넌 채식해서 이렇게 살이 안찐거야? 건강해서 좋겠다~가장 황당한 얘기이다. 고기를 먹으면 건강에 안좋고 상추 많이 뜯어먹으면 건강에 좋다는 편견은 도데체 어디서 부터 시작된 건지 모르겠다. 결론부터 얘기하자면 채식주의가 더 큰 확률로 당신의 건강을 해칠 수 있다. 물론 지나친 육식으로 동물성 지방의 과다 섭취, 과다 콜레스테롤 등이 각종 성인명을 유발하여 건강을 좀 먹는 것은 맞다. 하지만 뭐든지 극단적인건 좋은 결말을 얻지 못하듯이 육류, 해산물 섭취가 아예 없는 채식주의자의 경우 단백질, 철분, 칼슘, 비타민 B12 등 결핍되면 건강에 치명적인 영향을 줄 수 있는 영양소들이 결핍되기 쉽다. 특히, 비타민 B12의 경우 조금만 결핍되도 거대적아구성 빈혈 및 각종 신경장애를 일으킬 정도로 치명적이라는 연구결과가 많다. 안타깝게도 B12는 주로 육류 또는 치즈, 계란등의 유제품에서 섭취할 수 있기 때문에 비건 채식주의자들에게 결핍되기 매우 쉬운 영양소 중 하나이다. (자세한 내용은 vegan society 글 참고)따라서, 극단적 채식주의는 절대로 건강에 좋을 수가 없다. 오히려 우리같은 채식주의자들은 이런 내용을 더욱 깊이 알고 부족한 영양분들을 인위적으로 섭취해 주는 것이 매우 중요하다. 우리 부부도 철분, 칼슘, 각종 비타민등은 빼먹지 않고 영양제를 통해 섭취하려 노력하곤 있지만, 건강기능식품의 가라 흡수율에 대한 이슈는 뭐 이 업계의 오래된 문제점이기 때문에 이마저도 좀 불안하다. (비타민제 복용한다고 저기 써있는 비타민들이 다 내 몸으로 흡수되지 않는다는 뜻임.)채식주의가 건강에 무조건 좋다고 하는건 사이비 종교같을 수 있다.3. 인류는 원래 채식주의자였다.이런 주장을 하시면서 주변 사람들에 채식을 강권하시던 한 비건 채식주의자를 만난 적이 있다. 그 분의 논리는 대략 이런데, 호모 사피언스 이전의 인류는 원래 먹이사슬 중 채식동물에 더 가까운 위치에 있었는데 농경과 가축업이 발달하면서 보다 효율적인 에너지 섭취를 위해 육식주의로 이동중에 있다. 하지만 유전학적으로 채식주의자로 설계되었기 때문에 육식주의로 이동할 수록 인간 수명에 악영향을 줄 것이라고 설명했다. 아마도 어디서 이런 기사를 줏어 듯고 이야기 한 것이 뻔하다.Humans are becoming MORE carnivorous: Global move towards a more meat-rich diet is driven by China and India's rising economies사실 저런 연구가 있기는 하다. UN 산하 Food and Agriculture Organization에서 발간하는 'Human trophic level tracking report'라는 보고서가 있는데, 약 100여가지의 식단을 기준으로 1961년부터 지금까지 매년 그 변동을 기록하는 보고서 이다. 일부 학계에서 이를 바탕으로 천년전, 만년전 인류의 식습관을 추정하여 위와 같이 인류의 육식성이 더 증가하고 있다 라는 연구결과 있다.하지만, 그렇다고 해서 인류가 유전학적으로 채식주의에 가깝게 태어났다?? 이건 완전 또다른 주제의 이야기이고, 이 부분은 그 어떤 근거자료도 찾지 못했다. 물론, 인류와 진화적으로 가까운 유인원은 대부분이 채식주의, 또는 채식에 가까운 잡식을 보인다는 연구결과는 많이 있다. (Do Apes Eat Meat? 참고) 하지만 이거 하나만 가지고 인류도 유전적으로 채식주의에 가깝게 설계되어 있다고 말하는건 너무하지 않는가? 실제로 이 글을 쓰면서도 진짜 유전학적으로 인류가 초식동물에 가까운지에 대한 믿을만한 연구결과를 찾기는 힘들었다.필자가 하고싶은 말은 뭐냐면, 뭔가 짜집기 스러운 단편적인 연구결과들을 모아서 '인간은 원래 채식주의자다' 이런식으로 말하는건 뭔가 약장수 스멜이 풍기는 행위이니 하지 말자... 라는 것이다.영화 '약장수'의 한 장면..지금까지 채식주의자들이 다른 사람들을 설득하기 위해 저런 myth에 가까운 주장을 하다가 오히려 공격을 받는 경우를 많이 봐왔기 때문에 그 대표적인 오해 몇가지를 짚어 보았다. 물론, 저사람이 나와 다르다고 채식주의자들을 일부러 공격해 대는 사람들도 많이 봐왔고, 대부분 저런 내용에 대해 공격을 한다. 그냥 이런 논쟁 다 무의미하고 에너지 낭비일 뿐인 설전이다. 이 글로 조금이나마 줄어들길 바랄 뿐이다.
조회수 1926

효율적인 회의를 위해 필요한 것들

일반적으로 회의는 짧은 시간 안에 다수의 팀원들의 소통을 통해팀의 목표를 확인하고,업무에 필요한 정보를 공유하고,빠르게 의사결정을 진행하는,하는 중요한 업무이고 무엇보다회의를 참여한 모든 사람들의 소중한 시간과 리소스를 모은다.라는 점에서 매우 중요한 업무입니다. 그러나, 잘못된 회의 때문에 목표를 명확하게 알 수 없고, 필요 없는 정보 때문에 논지가 흐려져 정확하게 의사결정을 할 수없다면, 정말 비싼 낭비가 될 수 있습니다.동료 간의 오버 커뮤니케이션은 필요한 덕목 중 하나지만,목표가 정해져 있는 회의에서 오버 커뮤니케이션은 시간낭비입니다.그래서 오늘은 이 글은 목적에 맞는, 목표를 확인하고, 정보를 공유하고, 의사결정과 수렴을 명확하게 할 수 있도록 도와주는 회의 방법에 대해 원론적으로 고민해 보고 수행할 수 있도록 해 보도록 제안해 보도록 하겠습니다. (애자일 시리즈도 곧 나올 예정이니 기다려 주세요!)너무 많은 주제와 목표, 참여자는 국물맛을 망칠 뿐이죠!효과적인 회의를 위해 필요한 요소1. 명확한 회의 주제 회의를 만들기 전 “왜 회의를 해야 하는 건지, 목적과 얻고자 하는 것은 무엇인지”에 대해 회의 발의자는 명확하게 설정하고 진행할 수 있어야 합니다.2. 회의에 참여하는 인원에 대한 고려"일단 회의에 필요한 사람들이라고 생각하면 다 모은다.”는 생각으로 참여자를 모으게 되면모두가 공유하는 배경지식이 없을 경우 명확히 의사결정을 할 수 없고,필요한 사람들에게 필요한 정보가 가는 것이 아닌 불필요한 정보전달로 업무의 모호함을 일으킬 수 있고,회의 참석자 역시 왜 자신이 해당 회의에 들어왔는지 의도가 파악되지 않아 혼란을 야기할 수 있어서,회의 발의자는 회의 주제를 명확하게 하는 것만큼 어떤 인원이 참여해야 할 지에 대해 고민해야 합니다.회의 참가가 반드시 필요한 인원을 예시를 들자면,발의된 내용에 의사결정을 할 수 있는 자배경지식에 대해 정확히 알고 있는 자의사결정에 도움을 줄 수 있는 자해당 의사결정으로 업무에 영향을 미치는 자로, 이외에 부분도 어느 정도 고려할 수 있지만, 명료하게 커뮤니케이션을 할 수 최소한의 인원을 모으는 것이 가장 중요합니다.3. 회의를 통해 얻을 산출물 회의를 통해 얻어갈 산출물(또는 예상하는 회의의 Outcome)이 없는 회의는 명확한 주제 없이 흘러가거나목적에 대해 관철시키지 못하는 방향으로 흐르게 돼 회의의 논지를 흐리게 됩니다. 그리고 논지가 흐린 회의는 길고 의미 없는 회의시간으로 진행돼, 남는 게 없는 회의를 하게 됩니다. 흔히 “회의록"이라는 것이 산출물이라고 생각할 수 있지만, 회의록은 “회의의 기록”이지 회의에서 얻고자 하는 결론을 얻어낸 것이 아닙니다. 그래서 제안드리는 부분은 발의자가 회의 시작 전 회의를 통해 얻어내고자 하는 산출물에 대해 참여자와 공유하거나, 어젠다를 공유해 배경과 과정에 대해 설명하고, 회의 참여자도 산출물에 대해 같이 고민할 수 있는 방향으로 진행할 수 있게 합니다.4. 회의의 과정, 어젠다 설정과 진행, 그리고 타임 박싱“일단 이야기를 시작해 볼까?”나 “내가 다 준비해 왔으니, 이거 설명하고 회의 끝내면 되겠다.” 아니면, "기왕 모였으니 이야기도 해볼까?" 등으로 어젠다 설정과 타임라인 없이 회의를 진행하면,대화를 어떻게 시작하고 어떻게 끝내야 할 것인지에 대해 명확하지 못하고정해진 시간보다 더 많은 시간이 소요되될 수 있고이로 인해서명확하지 못한 산출물을 얻어가거나회의가 아닌 설명회로 끝나거나회의가 삼천포로 빠지게 되는목적과 결과에 벗어난 회의로 빠질 수밖에 없습니다. 그러므로, 회의를 진행하는 발의자는 목적 달성과 명확한 산출물을 위해 회의 참여자들과 어떻게 커뮤니케이션을 진행해야 하는지, 어떤 순서와 과정으로 커뮤니케이션을 진행해야 하는지 확인하고(어젠다 설정), 회의에 맞지 않는 이야기가 나올 경우 명확하게 정리하고(목적 주지), 모든 참여자가 회의에 집중할 수 있도록 환경을 만들고(외부 요소, 잡담 차단),회의 진행에 시간을 명확하게 잡아(타임 박싱) 회의시간을 최대한 넘어가게 하지 않도록,회의를 진행해야 합니다.5. 회의 참여자의 집중이야기가 시작되었을 때 시작대는 타이핑 소리, 바로 옆에 있는 직원과 다른 이야기를 공유하는 소리(같은 주제더라도 모든 사람이 아닌 둘이서만 공유하는 소리) 등은 모든 회의에 참여하는 사람들의 집중을 흐릴뿐더러, 한번 공유한 내용을 두 번 세 번 다시 공지해야 하는 상황을 만들 수 있습니다. 정말 중요한 사항이 있다 라고 한다면, 회의를 참가하지 않거나 회의에서 나올 때 양해를 구하는 것이 모두에게 효과적입니다.그렇다면, 효과적인 회의를 위해 내가 해야 할 일은 무엇일까요?회의 발의자회의를 발의하고, 진행하는 사람. 발의한 사람의 의견이 필요할 경우, 진행하는 사람을 따로 두는 것도 좋으나, 배경과 목적을 가장 잘 아는 사람이 발의자 이기 때문에 진행을 같이 하는 게 더 좋습니다.회의에 대해 명확하게 준비해 주세요회의 시작 전회의를 진행하는 배경과 목적회의를 통해 얻어야 할 산출물회의에 필요한 인원회의 어젠다등을 준비하고 예상하는 시간 안에 회의를 잘 마칠 수 있도록 스코핑과 준비에 노력해 주세요.(나의 시간이 중요하듯 회의에 참여한 사람들의 시간도 중요하다는 것을 잊지 말아주세요).회의 목적과 시간을 참여자에게 미리 설명해 주세요회의시간이 시작되면(또는 시작 전), 참여자들에게 구두상으로 또는 메일로라도회의를 통해 얻어가는 목적회의 시간 (열리는 시간과 기간)를 알려주세요. 회의에 대한 정보를 더 정확하게 알 수록 회의를 참여자들도 더 집중해서 회의에 참여할 수 있습니다.회의를 진행할 사람을 반드시 어사인 해주세요회의 진행자를 반드시 어사인해 주세요(매우 중요!). 대부분은 발의자가 진행을 하겠지만, 발의자가 의견을 내고 보다 자유로운 자리에서 회의를 보고 싶다고 한다면, 해당 회의를 드라이브할 수 있는 Facilitator를 두고 진행하는 것이 반드시 필요합니다. Facilitator는 회의 어젠다에 따라 의견 수렴 및 정리를 하고, 잘 진행될 수 있도록 의견을 내기보단 진행에 집중해야 합니다.회의 시작 전, 어젠다에 대해 공유해 주세요회의 시작 시 모두가 모이면, 이번 회의는 어떻게 시작할 것이고 어떻게 끝이날 것인지에 대해 간단히 공유 휴 시작하게 되면 과정과 결과에 대해 서로가 보다 쉽게 접근할 수 있습니다. 저는 개인적으로 시작하기 전 화이트보드에 어젠다와 종료 시간을 적어놓고 시작하는 습관을 들여 모든 사람들이 쉽게 회의에 참여할 수 있도록 노력하는 편입니다.발의자 또는 Facilitor는 회의 주제를 벗어나는 이야기는 과감히 정리하고, 목표시간을 넘길 경우 과감히 대화를 중단시켜 주세요회의가 길어지거나, 집중력이 흐트러질 경우, 주제가 벗어난 이야기들이 나오고, 목표와는 다른 이야기들이 나올 수 있습니다. 그럴 때마다 회의 진행자는 의도치 않은 부분이 나온다 라고 할 경우, 다시 목표하는 부분으로 돌아와 이야기할 수 있도록 가이드해 주세요 해당 부분에 대한 이야기를 해야 할 필요가 있다고 해도, 주제와 벗어났다면, 다른 회의시간을 잡는 게 낫습니다.회의 참여자회의 때 전화기와 노트북은 잠시 꺼두셔도 좋습니다.(정말 진짜 진짜 제일 중요합니다!) 진짜 회의와 상관없이 커뮤니케이션을 위해 노트북이 필요하다면, 필요한 일을 마치고 회의에 들어와 주세요. 한 명의 정신 분산이 다른 사람들의 생산성을 떨어뜨릴 수 있습니다.잡담은 나중에. 모든 회의 참여자와 공유할 이야기가 아니면 지양해 주세요.다른 이야기 도중에 콘텍스트가 흐려질 수 있고, 두 그룹, 세 그룹으로 나눠 이어지는 대화는 회의에 집중을 해치고 회의시간을 낭비하게 됩니다.무엇보다도 집중해 주세요.회의에 집중하는 것이 무엇보다도 가장 중요하겠죠?오늘도 정신없고 긴 글이 나와버렸네요. 최근에 업무도 많아지고 다양한 업무를 하다 보니 글을 잘 못쓰게 되었네요. (네 다 핑계고 열심히 다시 쓸 수 있도록 환경을 좀 바꿔볼까 합니다.)다음글은 애자일 시리즈에 마지막글이 발행될 예정입니다! 마지막이라고 하기엔 앞으로도 제가 일하고 있는 업무환경과 일하고 있는 팀에 대한 글을 많이 쓸 예정이라 민망스럽긴 하지만, 그래도 서둘러 더 재밌는 글 많이 많이 올릴 수 있게 할게요 오늘도 읽어주셔서 감사합니다!#코인원 #블록체인 #기술기업 #암호화폐 #스타트업인사이트
조회수 2235

제니퍼 개발 이야기(UI/UX)_ 제니퍼 UI/UX의 특징

사용자가 목표로 하는 경험이나 서비스가 빠르게 구현되는 환경에서 B2B 제품의 UI는 대부분의 제품이 어렵고 복잡하여 전문가가 아니면 배우기 힘든 단점이 있었다. 제니퍼의 UX는 중요하고 자주 사용하는 기능의 사용성을 높이는데 중요도를 높이 둔다. 그렇다고 자주 사용하지 않는 기능의 UX를 중요시하지 않는다는 것이 아니다. 많은 사용자(비전문가 포함)가 사용하는 기능의 접근성을 높이고, 쉽게 사용할 수 있도록 하는 것이다. 반면, 전문가가 분석을 위해서 사용하는 복잡한 기능은 정확하게 기능을 사용할 수 있도록 유도하고, 데이터를 가장 잘 표시하는데 집중한다. 제니퍼 5는 제작 시기부터 다른 경쟁사가 하지 않은 도전을 시작하였다. 타사 제품들이 기능적인 부분에 포커스를 맞추고 개발하였다면, 제니퍼는 사용자 경험적으로 더 뛰어나게 만들기 위해 기존의 제니퍼가 가지고 있던 모든 요소를 하나하나 다시 고민하고 새롭게 재 창조하였다. 그 결과 심미적이면서도 직관적으로 사용자들이 겪는 불편함과 어려움을 최소화하였다. 많이 사용하고 중요한 기능일수록 쉬운 UX/UI현재 기업의 웹 서비스는 기업의 수익을 높이는 중요한 요소로 자리잡았다. 개발자나 웹 관리자뿐만 아니라, C 레벨 혹은 마케터까지 자신이 관련된 웹 서비스 방문자가 얼마나 되며 서비스 이용은 순조로운지 등에 관심 갖게 됐다. 그러나 이전의 APM은 IT관점으로 설계되어 현업이 제품을 이용해 애플리케이션을 모니터링 하는 것이 거의 불가능했다. 그래서 제니퍼 5는 기획 단계부터 현업까지 이해 가능한 UX/UI를 만드는데 공들였고, 사용자가 사용하기 쉬운 UX/UI를 제공하려고 애썼다. 개발 후에도 피드백을 받고 개선하는 작업을 게을리 하지 않고 있다. 간결하고 직관적인 인터페이스 제공대시보드는 관제실이나 전용 화면에서 공간을 최대한 활용할 수 있도록 만들었고, 분석의 경우 쉬운 조작만으로도 사용자가 보고자 하는 데이터를 직관적으로 보여주는데 중점을 두었다. 또한 대시보드에서 어떤 이벤트가 발생하면 해당 이벤트를 쉽게 볼 뿐만 아니라 그와 연관된 데이터의 분석도 바로 할 수 있도록 하여 사용자의 Interaction(사용자가 클릭 등의 행위를 하는 것)을 최소화하였다. 사용자는 이벤트를 선택하면 문제가 발행한 지점으로 바로 도달하는 느낌을 받도록 한 것이다. HTML 5 기반의 UI제니퍼 5는 HTML 5 스팩을 기반으로 UI를 개발했다. 제니퍼 5는 HTML 5 스팩이 나온 초기부터 개발을 시작해서 정보나 제공되는 기능 등의 부족으로 많은 어려움을 겪었지만, 수많은 연구를 통해 현재는 JUI(JENNIFER User Interface)라는 오픈소스 프로젝트를 진행할 수 있는 수준까지 이르렀다. 앞으로 HTML 5 스팩은 더욱더 발전할 것으로 예상되고 이에 맞추어 3D를 포함한 다양한 Frontend 기술을 접목해 더욱 발전시킬 예정이다. 제니퍼 네비게이션, 최단기간에 목적지까지 도달하는 구조사용자 경험을 긍정적으로 만들기 위해 신경 썼던 부분 중 하나가 네비게이션 기능이었다. 제니퍼 5의 네비게이션은 사용자 인지 네비게이션으로, 이벤트가 발생하거나, 사용자가 데이터를 분석하고자 할 때 접근하기 가장 쉬운 형태로 만들었다. 이를 위해 특정 기능이 다음으로 넘어가는 과정을 자연스럽게 구현하려고 노력했다. 제니퍼는 사용자가 주로 사용하는 기능을 집중해서 보여주는 방법으로 선택과 집중해서 제품의 UX를 개발했다. 반면 외산은 평면적으로 기능을 늘어놓아 이용자에게 적지 않은 학습을 요구한다. 제니퍼는 이용 목적이 분명한 사용자가 최단기간에 목적지에 도달할 수 있게 해준다. 이용자가 대시보드를 모니터링 할 것인지, 분석을 할 것인지, 아니면 통계를 할 것인지에 대한 목적이 정해지면 해당 메뉴를 클릭하는 방식으로 목적지까지 쉽게 도달할 수 있다.컴포넌트화를 통한 UI 통일성 및 유지보수 편의성 도모 디자인과 개발의 일관성을 위해 자주 사용하는 요소는 모두 컴포넌트화시켰다. 이에 한 요소가 JUI이고 이로 인해 새로운 화면이 추가되더라도 디자인의 일관성이 유지되었고, 화면상의 문제가 발생할 경우에도 컴포넌트 단위로 버그를 수정하여 반영함으로써 유지보수도 쉬워졌다.제니퍼는 이와 달리 데이터 관점에서 UX를 적용하기 보단, UX/UI에 제니퍼의 데이터를 맞추는 전략을 썼다. UX에 딱 맞는 옷을 찾기 위해 UI라이브러리나 차트도 새로 만들었다. 개발 생산성을 높이기 위해 제니퍼는 최대한 작은 단위로 디자인 구성요소들을 나눴다. 작은 단위로 쪼갠 후 재사용이 가능해야 개발의 일관성 및 확장성을 보장할 수 있기 때문이다. 쉽게 재사용할 수 있는 것을 컨셉으로 기술 트렌드인 HTML5를 스펙을 맞춰 공유를 목적으로 구성요소를 개발했다. 예를 들면 화면에 들어가 있는 버튼을 일일이 나눠 개발했고, 이를 재사용하기 쉽게 만들었다. 이를 통해 페이지마다 버튼이 다르게 보이는 문제를 해결했다. 하나의 버튼을 고치면 나머지 버튼도 바뀌도록 해 UI의 일관성을 유지했다.
조회수 1593

역사뒤로 사라진 페블에게서 배우는 교훈

2012년 4월 킥스타터(Kickstarter)와 함께 역사적인 마일스톤을 만든 스타트업이 있다. 바로 페블(Pebble)이다. 10만불 목표금액을 2시간만에 달성하더니 6일만에 킥스타터의 펀딩 최고가를 경신하고 결국 69,000여명의 펀딩으로 $10.3M를 달성하면서 하드웨어 스타트업의 붐을 일으킨 장본인이기 때문이다. 하지만 이 영광도 잠시, 2016년 12월, 페블은 문을 닫고 역사속으로 사라졌다[1]. 도대체 무슨 일이 있었던 것인가?페블 킥스타터 캠페인 결과페블의 성공가도페블의 CEO Eric Migicovsky는 2011년 Y-combinator 겨울배치에 속해 있었지만 제대로 투자를 이끌어내지 못한다. 그해 애플의 스마트워치가 출시된다는 소문이 무성해지기 시작했고, Eric은 그 타이밍을 놓치지 않기 위해 크라우드펀딩을 이용하기로 마음먹는다. 2012년, 결국 킥스타터에서 잭팟을 터뜨리고 페블은 일약 하드웨어 스타트업과 스마트워치 웨어러블의 스타로 등극한다. 애플의 워치때문에 생긴 관심이 페블을 통해 발산되는 어부지리도 있었던 덕인지, 2014년 누적 백만대를 팔아치우더니 2015년 페블타임(Pebble Time)으로 다시 킥스타터에서 17분만에 목표금액 50만불을 달성하고 최종 75,000여명에게서 $20.3M를 달성하는 기염을 토했다.쇠락의 길하지만 연이어 2016년 5월 킥스타터에 런칭된 페블 TIME2와 페블 CORE는 펀딩에 성공했음에도 불구하고 그 해 말까지 배송이 진행되지 않았다. 이미 자금은 바닥 나 있었고 재정은 계속 적자상태였다. 결국 2016년 12월 회사의 문을 닫고 핏빗(Fitbit)에 인수되게 된다. 2015년 시티즌이 제안한 인수금액 $740M과 인텔의 $70M에도 무산되었던 페블인수가 핏빗에 간신히 부채를 청산할 $40M도 채 안되는 금액에 인수된 것이다. 웨어러블 하드웨어의 신화에 어떤 문제가 있었기에 4년만에 천당과 지옥을 오가는 롤러코스터 같은 궤적을 그리게 된 것인가?페블이전 춘추전국시대핏빗(Fitbit)은 2007년 5월에 한국계 James Park이 창업한 웨어러블 회사이다. 2008년 9월 첫 액티비티 트래커인 핏빗 트래커(Fitbit Tracker)를 출시하여 2006년 나이키+가 만들어 낸 시장을 함께 키우면서 성장을 한다. 2011. 10월 Fitbit Ultra가 출시되기전 3년간 한가지 제품으로 시장을 공략하며 규모에 맞는 내실을 만드는데 주력을 한다.2011년은 액티비티트래커 시장의 춘추전국시대가 열리는데 1999년부터 블루투스 해드셋과 스피커를 만들던 조본(Jawbone)이 조본업(Jawbone UP)을 출시하면서 신규사업을 전개하고, 애플의 CEO였던 존스컬리는 아이폰용 의료기기를 만들던 AgaMatrix의 멤버들과 미스핏(Misfit)이란 회사를 설립하고 샤인(Shine)이란 제품을 출시한다. 2012년에는 나이키가 퓨얼밴드(Fuel band)를 출시하며 가세한다. 이때만해도 단순한 액티비티 트래커들이 10~20만원에 팔리던 시기였으며 아이폰의 시장 확대와 맞물리면서 건강을 위한 최고의 악세서리이자 유망한 장미빛 시장이었다.  웨어러블 시장의 변화1. 초기 웨어러블 시장은 소비자에게도 생소한 시장이었다. 그래서 공급자와 소비자가 모두 경험이 없는 상태에서 제품을 만들고 구매 해 사용했다. 시장조사기관들은 웨어러블 시장에 대해서 스마트폰과 함께 낙관적인 전망들을 쏟아냈고 소비자는 신기한 앱들과 디바이스들을 구매하며 새로운 패러다임을 즐겼다. 하지만 경험이 쌓이기 시작하면서 소비자들은 웨어러블에 대해 학습효과가 축적되기 시작한다. 불편한 착용감, 배터리, 생각보다 불편한 UX, 기대이하의 유용함들이 경험을 통해 쌓이면서 진성소비자와 지나쳐가는 소비자로 분리되기 시작한다. 결국 웨어러블 마켓의 시장전망은 계속 축소 수정되고 있으며 특별한 티핑이 오기전까지는 지리한 성장을 이어 나갈 것 이다.2. 웨어러블 마켓이 진화하기 시작한다. 페블이 주도하던 스마트워치와 핏빗이나 미스핏, 나이키+등이 주도하던 액티비티트래커 시장에 두 강자가 나타난다. 2014년 7월에는 샤오미의 미밴드가 13불대 초저가 액티비티트래커로 시장에 진입을 한다. 2015년 4월 소문만 많았던 애플워치가 아이폰과 심리스(seamless)하게 연동되는 프리미엄 스마트워치로 출시가 되고, 첫 2사분기에만 420만대를 판매한다. 시장은 급속도로 양극화가 되며 샤오미는 더 개선된 미밴드 펄스를 출시하고 삼성은 흥행참패에도 불구하고 기어시리즈를 계속 출시한다. 이렇게 웨어러블 시장은 자본력과 스마트폰과의 연계성을 무기로 애플이 장악한 스마트워치 시장과 저가의 중국산 트래커들, 그리고 핏빗의 체제로 양극화가 심화된다.   3. 2014년 애플워치 출시이후, 시장을 관망하던 기존 시계 업계들이 변화가 불가피함을 깨닫기 시작한다. 소프트웨어라는 새로운 도구에 미숙하다는 한계를 인지한 전통 워치업계들이 2015년 웨어러블 소프트웨어를 위해 러브콜을 보내기 시작하고 자체적으로도 투자를 시작한다. 본격적으로 브랜드를 가진 전통 시계업계와 스마트워치의 경쟁구도도 만들어지기 시작한다.         웨어러블 시장의 정체이렇게 웨어러블 시장은 변했고, 시련기가 다가온다. 양극화와 함께 시장은 정체되고 사람들은 있던 웨어러블 기기들도 서랍에 넣고 꺼내지 않기 시작한다. 먼저 시장의 변화을 읽은 Misfit은 2015년, $260M을 받고 Fossil에 인수된다. 페블이 시티즌의 제안을 거절한 것과는 대비되는 선택이었다. 2016년말, 자금이 떨어지고 사업여력이 없어진 Jawbone은 피트니스트래커 시장의 포기를 선언하고 헬스케어 서비스업체들을 위한 디바이스 업체로 피보팅을 시도한다[2]. 기존 스포츠웨어 강자인 언더아머가 HTC와 손을 잡고 디바이스를 출시하고, 중국은 정체된 시장에도 아랑곳하지 않고 샤오미뿐만 아니라 화웨이 같은 업체들이 수많은 저가 트래커들을 출시한다. 시장 정체와 함께 프리미엄은 에코시스템의 경쟁을, Low-end에서는 가격 경쟁을 통해 시장점유율을 놓고 싸워야 하는 시장이 된것이다.          페블의 선택: 페블과 핏빗의 엇갈린 과정에게 배우는 교훈 1. 시장의 왜곡된 이해와 판단 미스: 핏빗은 오랫동안 사업을 해오면서 시장이 급변함을 느꼈다. 그래서 다양한 제품군들을 통해 시장의 반응을 끊임없이 센싱하였고, 2016년 10월 급기야는 소비자가전회사(Consumer Electronics Company)에서 디지털헬스케어회사(Digital Healthcare Company)로의 변화를 선언한다. 페블은 스마트워치의 달콤한 승리에 취해있었다. 애플워치 출시이후 급격하게 변하는 시장의 기류를 다른 페블워치 모델로 대응하려는 시도를 한다. 페블OS와 함께 앱스토어안에 있는 15,000개의 앱은 페블의 경쟁력이었지만, 반면에 시장을 왜곡하여 이해하게 만들 충성스런 고객들과의 채널이기도 했다. 또한 개발시 고려하여할 요소들의 과도함과 함께 늘어난 비용과 개발기간에 대한 새로운 전략이 부족했다.2. 판매채널의 견고함과 다양함 부족: 핏빗은 오랜시간 다양한 채널을 통해 제품을 판매해왔다. 그래서 초기 시장을 선점하면서 생긴 포지셔닝의 이점은 분명히 가지고 있었겠지만, 더해서 리테일에 대한 투자와 함께 파트너들과 밀착된 관계를 유지하기 위해 애를 썼고, 한대 한대를 판매하며 발생하는 현금의 흐름을 통해 지속가능성에 대한 시야를 확보했다. 반면에 페블은 킥스타터의 성공에서 재미를 본 탓에 후속모델의 펀딩을 자주 킥스타터를 통해 진행했다. 큰 자금을 일시적으로 확보할 수 있었고, 마케팅의 효과도 훌륭했으나 매달 체계적으로 흘러야 할 자금의 유동성을 만드는 데는 독약이 되었을 것이다. 하드웨어를 개발해 생산하고 유통하는 과정은 결국 제조업의 속성을 가지기에 지속가능한 현금의 흐름을 만들지 못했을 때 가지는 리스크는 절대 작을 수 없다.3. 제품자체의 경쟁력 상실: 가격을 제외하고라도, 피트니스트래커는 건강과 운동의 본질적기능에, 스마트워치는 시계로써의 본질적 속성에 충실해야 한다.[6] 핏빗은 이를 유지하기위한 선택을 견지한 반면, 페블은 정체성을 소구할 브랜드로 진화하지도 못했고, 기능적 완성도에서도 거리가 멀어졌다. 많은 소비자들이 이미 알고 있었다.핏빗의 미래와 숙제핏빗도 시장상황이 좋지 않음을 알고 있다. 그래서 연말에는 6%의 직원들을 레이오프하기도 했다[3]. 하지만 변화해야 하는 방향을 알고 있고, 실행하고 있다. 코인(Coin)을 인수하여 모바일결제와 페이먼트의 경쟁력을 이식하기 위한 청사진을 실행하고 있고[4], 페블의 인수를 통해 IP확보와 함께 페블OS와 앱스토어의 생태계를 재구성하고자 할 것이다. 최근 유럽의 스마트워치 업체인 벡터(Vector)를 인수한 것 역시 IP확보를 넘어 시계의 본질을 소구하고자 하는 전략의 일환일 것이다[5]. 언제든 페블같은 위기가 다가올 것이라는 것을 알기에 핏빗에게 2017년은 매우 중요한 전략적 변곡점이 될 것이다. 늘 그랬듯 미래는 변화하지 않는 플레이어에게 가장 큰 위기를 안겨 줄 것이니 말이다.페블이 남긴 유산페블을 실패다 말하기엔 성급하다. 오히려 소비자를 지키고 개발자들을 지키기위해 늦었지만 포기를 통한 Exit이라는 바람직한 선택을 했기 때문이다. 비슷한 웨어러블 업체 조본도 피봇팅(Pivoting)을 선택했고, 인기를 한몸에 받았던 코인(Coin)이나 네러티브클립(Narrative Clip)같은 하드웨어 스타트업들도 문을 닫는 선택을 했기에 우리는 하드웨어 스타트업이 쉽지 않은 길임을 이제서야 공감하고 있다. 하지만 실리콘밸리가 늘 그랬듯, 이들의 시도가 남긴 유산들은 다른 기업들에 자양분이 될 것이고, 또 다른 시도로 이어질 것이다. 실패할까봐 아무것도 시도하지 못하는 것과 실패를 인정하기 어려워 제때 포기하지 못하고 썪은 밭에 계속 물을 주고 있는 것이 오히려 더 어리석지 않은가. IoT라는 연결의 큰 그림은 아직도 진화중이다. 웨어러블은 그 중 하나의 구성요소일 뿐이다. 이 큰 그림에 웨어러블의 본질[6]이 진정으로 연결 될 때 우리는 다시 제2의 페블이 탄생하는 것을 목격하게 될 것이다.[1] The Inside Story Behind Pebble’s Demise[2] Jawbone Bails Out of Consumer Fitness Tracker Market[3] Fitbit to cut 6 percent of its staff following a disappointing Q4[4] The Failure of Coin[5] Fitbit continues to beef up smartwatch efforts with acquisition of Vector[6] 웨어러블의 본질이미지 출처: https://blog.getpebble.com#라이프스퀘어 #스타트업 #창업자 #창업가 #마인드셋 #조언
조회수 4264

LSTM Tutorial

Summary:이 포스팅은 LSTM에 대한 기본 개념을 소개하고, tensorflow와 MNIST 데이터를 이용하여 구현해봅니다.LSTM1. 개념 설명LSTM(Long Short Term Memory)은 RNN(Recurrent Neural Networks)의 일종으로서, 시계열 데이터, 즉 sequential data를 분석하는 데 사용됩니다.기존 RNN모델은 구조적으로 vanishing gradients라는 문제를 가지고 있습니다. RNN은 기본적으로 Neural network이기 때문에 chain rule을 적용하여 backpropagation을 수행하고, 예측값과 실제 결과값 사이의 오차를 줄여나가면서 각 시간 단계의 gradient를 조정합니다. 그런데, 노드와 노드(시간 단계) 사이의 길이가 길어지다보면, 상대적으로 이전의 정보가 희석됩니다. 이 문제는 시퀀스 상 멀리 떨어져 있는 요소, 즉 오래 전에 발생한 이벤트 사이의 연관성을 분석할 수 없도록 만듭니다.LSTM은 RNN의 문제를 셀상태(Cell state)와 여러 개의 게이트(gate)를 가진 셀이라는 유닛을 통해 해결합니다. 이 유닛은 시퀀스 상 멀리 있는 요소를 잘 기억할 수 있도록 합니다. 셀상태는 기존 신경망의 은닉층이라고 생각할 수 있습니다. 셀상태를 갱신하기 위해 기본적으로 3가지의 게이트가 필요합니다. Forget, input, output 게이트는 각각 다음과 같은 역할을 합니다.Forget : 이전 단계의 셀 상태를 얼마나 기억할 지 결정합니다. 0(모두 잊음)과 1(모두 기억) 사이의 값을 가지게 됩니다. Input : 새로운 정보의 중요성에 따라 얼마나 반영할지 결정합니다. Output : 셀 상태로부터 중요도에 따라 얼마나 출력할지 결정합니다.게이트는 가중치(weight)를 가진 은닉층으로 생각할 수 있습니다. 각 가중치는 sigmoid층에서 갱신되며 0과 1사이의 값을 가지고 있습니다. 이 값에 따라 입력되는 값을 조절하고, 오차에 의해 각 단계(time step)에서 갱신됩니다.2. 응용 (MNIST data)MNIST는 손으로 쓴 숫자 이미지 데이터입니다. 하나의 이미지는 가로 28개, 세로 28개, 총 784개의 값으로 이루어져 있습니다.Many-to-One model는 여러 시퀀스를 넣었을 때 나오는 최종 결과물만을 이용하는 모델입니다. 이를 이용하여 784개의 input으로 1개의 output값(A) 을 도출합니다. 이 A를 하나의 층에 통과시켜 10개의 숫자 label중 하나를 할당합니다.784개의 입력값을 사이즈가 28인 벡터가 28번 이어지는 시퀀스(time step)로 보고, input의 크기를 28, 시퀀스 길이를 28로 각각 설정합니다. 28개의 input은 C라고 표현되어 있는 LSTM 셀로 순차적으로 들어가게 됩니다.output의 크기는 셀의 크기와 같으며, 64로 설정하였습니다. 셀크기가 너무 작으면 많은 정보를 담지 못하기 때문에 적당히 큰 값으로 설정합니다. 전체 output은 64개의 값을 가지고 있는 벡터 28개의 집합이 되고, 마지막 벡터만 사용합니다.1층의 fully connected layer를 이용하여 64차원 벡터를 10차원으로 줄이고 softmax를 이용하여 0부터 9까지 중 하나의 값을 예측합니다.LSTM으로부터 나온 예측값을 실제갑과 비교하여 cost를 개산합니다. cost function은 cross-entropy를 이용합니다. AdamOptimizer를 이용하여 cost를 최소화하는 방향으로 모델을 최적화 시킵니다.3. 토의구현 시 어려웠던 점을 중심으로 서술하였습니다. 전체 코드는 여기를 참고해주세요.batch sizebatch_size = 128 batch_x, batch_y = mnist.train.next_batch(batch_size) MNIST의 train data의 크기는 55,000개 입니다. 이는 (55000, 784) 크기의 데이터를 학습시켜야 한다는 것을 의미합니다. 이것을 한번에 학습시킨다는 것은 매우 어려운 일입니다. 전체 데이터를 메모리에 올리기 힘들뿐만 아니라, 너무 큰 data 한번에 학습시키면 가장 작은 cost값으로 수렴하기 힘들어진다는 문제가 있습니다. (너무 작아도 마찬가지입니다.) 그렇기 때문에 큰 덩어리를 일정크기의 작은 덩어리로 잘라서 모델에 넣어 학습시는데, 이 작은 덩어리의 크기를 batch size라고 합니다.작은 덩어리로 짜르는 것이 중요한 이유는, 작은 덩어리 단위로 모델에 밀어넣고(propagation) 네트워크의 파라미터들을 조정(update)하기 때문입니다. batch size는 분석하려고 하는 데이터가 어떻게 구성되어있는지에 따라 결정되는 경우가 많습니다. 어떤 수준의 batch size가 좋다고 이야기하기 어렵고, 아주 크지 않은 값으로 설정합니다.unstack모델 구현 시 static RNN을 사용하였습니다. Static RNN에서는 unstack을 해주지 않으면 TypeError가 발생합니다.unstack( value, num=none, axis=0, name=‘unstack’)unstack은 R차원(rank)의 데이터를 R-1 차원으로 줄여주는 역할을 합니다. value로부터 axis 차원을 기준으로 num개로 자른다고도 할 수 있습니다. 이 예제로 예를 들어보겠습니다.batch_x = batch_x.reshape((batch_size, input_steps, input_size)) x = tf.unstack(X, input_steps, axis=1) outputs1, states1 = tf.nn.static_rnn(lstm_cell, x, dtype=tf.float32) 실제 학습이 진행되는 순서로 보자면, batch size만큼 불러온 인풋 데이터는 (128, 784)에서 (128, 28, 28) 형식의 3차원 벡터로 reshape해 줍니다. 그리고 다시 unstack을 통해 time step을 기준으로(axis=1) 28개의 텐서를 만듭니다. 다시말해, (128, 28, 28)이라는 3차원 형식의 벡터는 (128, 28)이라는 2차원 벡터 28개로 변환되어 모델에 입력되게 됩니다. 이런 변환이 필요한 이유는 28*28의 크기를 가진input들을 차례로 넣게 되면 처리속도가 제한적이기 때문입니다. unstack을 이용하면 하나의 batch 안에 있는 input을 한꺼번에 한줄씩 병렬적으로 처리할 수 있게 됩니다.Dynamic RNN에서는 unstack을 해주는 과정이 필요 없습니다. Static과 Dynamic의 차이는 추후 포스팅에서 자세히 다루도록 하겠습니다.Training cycle참고한 다른 예제코드들은 서로 다른 스타일의 사이클로 학습시키고 있었습니다. 스타일은 크게 두가지로 나누어볼 수 있었습니다. 하나의 방법은 전체 학습 횟수를 정해놓고 while문을 통해 학습시키는 방법이었습니다. 다른 방법은 똑같은 데이터를 몇번 반복해서 학습시킬지 결정하는 것입니다. 이 반복 횟수를 epoch이라고 합니다. epoch의 사전적 의미는 ‘시대’ 또는 ‘세’이지만 예제 코드에서 만나는 epoch은 전체 데이터를 학습시키는 반복회수라고 이해하시면 되겠습니다. (이 두가지 방법은 스타일의 문제일 뿐입니다. 이것을 언급한 이유는 개인적으로 epoch을 처음 접했을 때 생소했기 때문입니다.for epoch in range(training_epochs): avg_cost = 0 total_batch = int(mnist.train.num_examples/batch_size) for i in range(total_batch): batch_x, batch_y = mnist.train.next_batch(batch_size) batch_x = batch_x.reshape((batch_size, input_steps, input_size)) c, _ = sess.run([cost2, optimizer2], feed_dict={X:batch_x, Y:batch_y}) avg_cost += c/total_batch 위의 코드는 두번째 스타일이고, 각 epoch마다 cost값과 test data로 예측의 accuracy를 계산하여 출력하였습니다. 당연하게도 학습이 반복 될수록 cost는 감소하고 accuracy는 증가하였습니다.4. 정리기본적으로 도식을 통해 input size, time step, hidden_size에 대한 개념을 이해하는 것이 도움이 됩니다.tensor의 shape을 이해하는 것이 중요하다고 생각합니다. input과 output의 형식(shape)을 머리속에 떠올릴 수 있다면 에러를 줄일 수 있고 해결하기도 수월합니다.batch size의 의미, unstack을 하는 이유, epoch의 의미를 알아두면 좋겠습니다.ReferenceDEEPLEARNING4J 초보자를 위한 RNNs과 LSTM 가이드Colah’s blog, Understanding LSTM Networks이태우, 엘에스티엠 네트워크 이해하기김성훈, 모두의 딥러닝 lec 9-2. Vanishing gadient

기업문화 엿볼 때, 더팀스

로그인

/