스토리 홈

인터뷰

피드

뉴스

조회수 2594

콘텐츠+커머스를 '대만'에 들고간 준호씨

그간 우리에게 가장 큰 피해를 끼친 말은'지금껏 항상 그렇게 했어'라는 말이다-그레이스 호퍼-콘텐츠에 재미를 느끼면서 달려왔다. 각기 다양한 사람들의 반응과 피드백을 즐기며 살펴봤다.사람들의 라이프스타일을 들여다보니, 삶의 질을 높이는 방법이 보였다. 삶에 '킥'을 주는 상품으로, 커머스를 가미하니 너무 재미있다.지금껏 블랭크는 이렇게 재미 위에 능동적으로 성장해왔다. 콘텐츠로 하여금 사람들의 삶과 반응을 엿볼 수 있었다.그런데, 이 사람들은 비단 대한민국에만 있는 것이 아닐 것. "사는 국가는 달라도 사는 행위는 존재한다" 글로벌에도 우리의 솔루션을 전파할 수 있는 수 많은 기회가 있다고 생각했다. 이를 몸소 체험하고 실험하고 검증해보고자 블랭크는 글로벌도 함께 바라본다. "아니 설립하진 3년도 안됐자나" "왜 이렇게 서둘러" "다른 곳도 다 그랬어 천천히 생각해" 다양한 조언이 맴돌지만, 사실 그 어디에도 룰은 없다. 항상 해오던대로만 한다면 재미가 있을까? 블랭크는 언제나 빠르게 부딪히고 실험하고 싶다. 블랭크는 대만법인을 헤드쿼터로 대만, 홍콩, 싱가포르 지역에서 '콘텐츠+커머스'를 검증해보고자 진출했다. 블랭크코퍼레이션, 대만법인 설립… 중화권 공략 본격화종합 라이프스타일 기업 블랭크코퍼레이션이 대만법인을 설립했다고 1일 밝혔다. 블랭크코퍼레이션은 대만법인 설립을 마치고 지역별 사업을 준비해 연내 소비자거래(B2C)에 돌입한다. 대만법인은 대만, 홍콩, 싱가포르 등news.naver.com  대만은 어떤 시장일까? 홍콩과 싱가포르는 대한민국과 어떻게 다를까? 현지 비즈니스의 초반 전략은 무엇이고, 어떤 쟁점이 있었을까? 해외검증에 나선 블랭크코퍼레이션 박준호 프로와 티타임을  갖고 이야기를 나눴다. 블랭크코퍼레이션 박준호 프로Jason KH : 준호님은 중화권에서 비즈니스 경험이 많으시죠?박준호 : 어쩌다보니..  블랭크에 오기 전 회사에서 중국, 대만에서의 경험이 조금! 있습니다.또 블랭크에서도 새로운 경험들을 써내려 가는 중이고요~ Jason KH : 블랭크에서 준호님이 맡은 분야와 영역은 무엇인가요? 박준호 : 블랭크의 사고방식으로 설명드리자면, 우리의 비즈니스 모델이 해외에서도 통할 수 있는지 ‘가설’을 설정하고 이것을 '입증'하는 것이 블랭크에서 저의 가장 큰 미션이에요. 입증해야 하는 ‘가설’들에는 '해외 마케팅 구축', '해외 유통 구축'과 같이 해외시장 진출 시 당연히 필요한 기반적인 영역부터 우리 회사의 콘텐츠가 먹힐까? 대한민국에서 성공사례를 남긴 상품들의 현지 시장 경쟁력은?  그리고 조금은 많이 특별한 블랭크코퍼레이션의 조직문화, 업무환경이 이식될 수 있을까? 등등 다양한 물음들이 있습니다.이 가설들을 차근차근 글로벌에서 검증해보고 입증하고자 합니다. Jason KH : 블랭크코퍼레이션의 핵심 비즈니스는 ‘콘텐츠’와 ‘커머스’의 융합인데요. 새로운 시도이자 괜찮은 융합사례다 보니, 아직 한국에서도 더 확장 가능성이 있다고 여겨집니다. 준호님 근데 왜 이 시점에 우리는 서둘러서 대만과 홍콩, 싱가포르로 진출했을까요?박준호 : 물론 한국에서의 발전 가능성은 여전히 높고, 확장할 수 있는 영역도 무궁무진하다고 생각합니다. 우리의 세계관이라고 하면 일단 커머스가 있고요. 커머스 속에는 물건을 구매하는 고객들이 있어요. 세계는 넓고, 물건을 접하고 구매하고자 하는 고객들은 각 대륙에 있는데, 굳이 블랭크의 가능성을 한국으로만 제한할 필요는 없잖아요?무엇보다 가장 중요한 것은, 전 블랭크의 이러한 융합 커머스 방식이 해외에서도 먹힌다는 강한 확신이 있었어요. 전세계 그 어떤 나라도 이제는 모바일과 모바일플랫폼, 콘텐츠공급 환경을 갖췄기 때문이죠. 더 나중에 진출하거나, 시간을 필요로 하다거나..그런것 보다는 빨리 몸으로 부딪혀보고 싶었습니다. 실무자가 명확한 논리와 검증해야할 가설이 있다면, 이를 뒷받침해주고 지원하는 것이 블랭크니까요. 그래서 아주 후다다닥 정신없이 준비하고 진행하고 있습니다.대만, 홍콩, 싱가포르를 먼저 진행하게 된 이유는요.첫 해외 진출은 ‘도전, 시도, 경험’도 물론 유의미하지만 이왕이면 ‘성공 사례’를 만드는 것이 중요하다고 생각했어요.  한 번 성공 경험을 맛본 회사들이 분위기를 타고 승승장구 하는 경우가 많은데, 이런 좋은 흐름을 글로벌에서도 만들어보고 싶기도 했구요. 그러다보니, ‘성공 가능성’ 측면에서 가능성이 비교적 높다고 판단되는 곳들을 우선적으로 선택하였고, 그게 대만, 홍콩, 싱가포르 였습니다. Jason KH : 그렇다면 '성공 가능성' 측면에서 대만, 홍콩, 싱가포르 각 지역은 어떠한 요건을 갖췄는지, 각각 어떤 시장이며 수치와 규모, 문화 등등 궁금한 부분이 많아요. 먼저 대만은 어떤 시장이에요? 대만의 특징이 있을까요?  박준호 : 대만은 많은 기업들이 중국과의 가교 혹은 동남아 진출의 교두보로 많이들 생각하시는 시장인데요. 실제로는 중국 시장 진출과는 큰 관계가 없다고 보여집니다. 동남아로의 진출 측면도 인접한 말레이시아 정도를 제외하면 교두보로써 큰 영향력이 없다는 판단입니다. 대만은 독립된 시장으로 보는 편이 좋겠습니다.인구는 한국의 절반 정도, 직장인들의 소득은 한국보다 낮지만 모바일 보급률과 활용률 측면에서 상당히 진보된 지역입니다. 실제 모바일 게임 이용규모나 콘텐츠 결제 규모도 큰 나라고요.블랭크코퍼레이션 대만법인이 서비스를 시작한지 2개월 남짓 밖에는 되지 않았는데요. 초반성과는 상당히 고무적입니다. 특히 '바디럽' 같은 라이프스타일 브랜드는 대만의 주요 커머스 업체들 대부분이 판매해보고 싶다고 연락이 오기도 했고요. '마약베개'는 이미 이미테이션 제품이 많이 출시되고 있을 정도 입니다.초반 시장에서 긍정적인 반응이 따르다보니, 블랭크 대만 법인의 물류를 도와주는 회사의 경우 ‘시작하자마자 이렇게 파는 경우가 어딨냐’라며, 저희 제품을 포장해 주시는 인력을 급하게 늘린 에피소드도 있습니다.Jason KH : 나라는 달라도, 일상에 도움이 되는 상품에 대한 니즈는 어디든 비슷하네요. 이어서 홍콩과 싱가포르도 설명해주세요.박준호 : 홍콩은 사실 e커머스를 하기에 만만한 시장은 아니에요. 우리가 홍콩을 생각했을 때 주로 떠올리는 이미지 중에는 분명 ‘쇼핑’이 있잖아요. 그만큼 쇼핑몰과 같은 오프라인 유통망이 발달된 지역이고, ‘몰링’을 여가 활동으로 생각하는 현지인들이 많을 정도로 탄탄한 오프라인 기반을 갖추고 있습니다.그리고 홍콩을 여행해보신 분들도 많으시겠지만 큰 길이 많지 않잖아요?좁은 길에 높은 건물들은 많고요.. 그렇다보니, 한국처럼 물류서비스(택배)가 잘 구현되기 어렵고, 또 잘 마련되어 있지도 않습니다. 물류 비용은 상당히 비싸고, 집까지 배달하게 되면 기존 택배비 외에 3,000원 가량의 추가요금도 내야 하고요.그리고 일단 물가가 만만치 않아요. 다른 제반비용들도 모두 비싼 곳입니다."그럼에도 블랭크의 비즈니스 모델은 작동한다고 보고 있어요"제가 겪은 좀 험난한 에피소드인데, 현지에서 결제를 도와주는 PG사에서 ‘인지도가 없는 외국회사'가 → ‘처음 보는 브랜드'를 → 그것도 ‘몇 가지 종류밖에 없이’ 판매를 진행하는데, '너무 많이 팔아서' → 이것을 ‘비정상적인 거래’로 보고 → 서비스를 중단했든요이 정도면 블랭크의 모델이 작동한다고 봐도 되겠죠? ㅎㅎ싱가포르도 대만보다는 홍콩과 유사한 환경입니다. 여긴 10월부터 본격적인 준비에 들어갔고 판매를 시작할 예정이라, 아직은 드릴만한 이야기들이 많진 않습니다만, 홍콩에서의 짧은 경험과 사례를 잘 참고해서 진행해보고자 합니다. 유의미한 인사이트와 에피소드가 있으면 공유 드릴께요. Jason KH : 이야기 들으니, 현지에서 어마어마한 고생을...준호님 비즈니스를 시작해보니 실제 계획 잡으셨던 것과 비슷하던가요? 아니라면 확연히 생각과 달랐던 경우, 혹은 사례가 있을까요? 박준호 : 당초 계획과 비슷한 부분은 전체적인 맥락이라고 보여집니다. 블랭크의 방식이 이런 부분은 될 것 같고, 이런 부분은 개선해가면서 해야겠구나의 정도의 예상은 비슷하게 가고 있는 것 같아요. 다만!! 좀 더 디테일한 부분으로 들어가면 예상도 못한 문제들이 마구마구 터져나오죠.대만의 아주 높은 CS에 대한 수요라든가 (이 부분은 설명을 생략하고 싶습니다…)각 국가의 법규나 행정적인 부분의 높은 허들이 갑자기 튀어나올 때도 있구요.그래도 이런 부분은 어떻게든 해결이 가능한 부분들이라고 생각합니다.가장 중요한 항목인 '블랭크의 방식이 작동하는지' 여부에서는 큰 탈 없이 진행 중인 것 같습니다.Jason KH : 결국 우리 모델과 방식은 먹혀들어가는데, 제반에 있어 예기치 못한 이슈가 있군요. 지난번 말씀해주셨던 대만의 CS수요는 아무래도 제품에 대한 지독한 관심과 호기심, 기대에 못 미칠 시 발생하는 컴플레인인 것 같아요. 무엇보다, 한국보다 낮은 소득수준 등을 고려했을때 아무리 팬시한 제품이라도 체감하는 비용이 다르기에, 제품에 대한 소비자 관여도가 한국보다 높을 수도 있을 것 같고요. 결국 '현지화'에 따르는 부분이라 보여집니다. 준호님 예전에 저랑 이야기 나누실 때, 대만, 홍콩을 국가라고 표현하는 것보다 지역으로 표기하는 것을 추천해주셨는데요. 이해할 수 있는 히스토리 혹은 특별한 이유가 있을까요? 박준호 : 홍콩의 행정구역상의 명칭은 ‘중화인민국공화국 홍콩특별행정구’입니다. 중국에 속한 하나의 행정구역이니, 국가라고 표기하기엔 어폐가 있었어요. 대만 같은 경우엔 역사적으로 좀 민감한 부분이기도 하고요.  해당 국가나 지역에서 비즈니스를 하려면 현지와 현지인들의 문화, 감성에 대한 부분도 인지하고 있어야, 리스크를 관리할 수 있어서 사전에 조심하는게 좋을 것 같아 말씀드려봤어요!Jason KH : 덕분에 많은 참고가 됐어요. 감사합니다. 준호님 제가 여행하면서 실제 보고 느끼기도 했지만, 싱가포르는 경제지수도 상당히 높고, 선진국 대열에 있다고 보여져요. 혹시 싱가포르에서의 실험과 검증은, 소득수준이 높은 다른 국가에서도 먹힐 수 있다는 가설을 세워볼 수 있을까요? 박준호 : 음…. 검증을 하고 있는 가설 중 ‘상품의 경쟁력’에 대한 부분이 있습니다. 이는 상품 자체의 경쟁력 + 가격 경쟁력을 포함한 개념인데요. 현재 싱가포르를 미국과 같이 소득수준이 높은 국가와 비슷한 선상에 놓고 실험하지는 않고 있습니다.싱가포르는, 1인당 GDP가 USD 6만이 넘고, 세계 9위 수준의 분명 경제 선진국이에요.자동차를 운전하기 위해 반드시 필요한 운행증명서(COE)를 경매로 구매해야 하는데,이 증명서 한 장이 한화로 따지면 소형차 기준 3500만 원이나 하는데요. 그럼에도 불구하고 길에 차들이 가득한 걸 보면.. 확실히 소득수준도 높은 나라고요.다만, 코트라 국가정보 > 싱가포르 > ‘싱가포르 수출 시 애로사항’을 참고해보면‘이미 싱가포르에는 중국, 동남아시아 산 제품들이 시장에 많이 들어온 상태이기 때문에 한국업체가 이들과 가격으로 경쟁하는 것은 쉽지 않다’라는 선경험 인사이트를 제시합니다.따라서 가격 경쟁력은 천차만별일거 같아요. 게다가, 싱가포르는 화교 인구가 75% 이상인 국가이고, 화교 중에서도 장사 잘하는 광동성과 복건성 출신이 80%이며, 싱가포르 주변 국가들은 대게 물가가 저렴한 동남아시아 국가들이죠. 대부분의 상품 관세가 0%이기도 하고요. 이렇듯 환경 자체가 많이 다르기 때문에, 다른 경제 선진국들을 생각하면서 쉐도우 복싱을 하기에는 적당한 국가가 아니라는 판단입니다. Jason KH : 싱가포르를 좀 더 이해할 수 있는 대목이네요. 결국 경제수준 외에도 고려해야할 다양한 이해사항과 주변국과의 교류 사정도 잘 파악해야 한다는 생각이 듭니다. 미국과 같은 선진국을 대상으로 비즈니스를 한다면 또 다른 요인과 가설로 접근해야겠고요.  준호님, 블랭크의 각 현지법인 소개 좀 부탁드릴께요. 어떤 구성원들을 만나셨고 어떤 특징이 있나요? 박준호 : 우선 대만 법인은 대만-홍콩-싱가포르의 헤드쿼터 역할을 수행하는 법인입니다.현재 17명의 직원이 근무하고 있고, 국적은 대만인 12명, 홍콩인 4명, 싱가포르인 1명으로 다국적 기업이 되었습니다 ㅎㅎ 대만법인의 주요한 특징은 싱가포르와 홍콩을 대상으로 한 '콘텐츠 수급', '마케팅', '온라인CS'까지 담당한다는 점이고요. 블랭크코퍼레이션 대만법인대만에서는 저희 대광님이 아이디어를 주셨는데, 아주 재미있는 시도를 해보고자 합니다. (오랜 시간 지나지 않아 보실 수 있을거에요^^) 또 오프라인에서의 경험을 온라인으로 전이시키기 위한 '오프라인 체험관 운영' 등 다양한 실험이 함께 이루어질 예정이고요. 테스트베드가 용이한 지역으로 바라보고 있어요.오프라인 체험관도 기존 방식과는 다르게 대만스러운(?) 재밌는 곳에 자리잡을 예정입니다.특이하죠? 보통은 홍콩이나 싱가포르를 헤드쿼터로 두는데…  하지만 이 구조는 블랭크 해외법인의 회계 관련 컨설팅을 도와주시는 파트너사에서도 정말 훌륭한 구조라고 말씀하실만큼 많은 시너지를 낼 수 있는 구조랍니다.  대만법인이 생각하는 방향대로 완성된다면 약 100~200명 규모가 될 듯 한데...아...잘 되겠죠? 홍콩과 싱가포르는 현재는 미니 오피스 개념이에요. 현지에 꼭 필요한 오퍼레이팅 인력을 두고 운영하고 있어요. 향후, 각 해외 법인들이 현지화된 상품기획 혹은 소싱까지 그 역할을 수행할 수 있기 전까지는, 대만법인을 헤드쿼터로! 각 현지법인은 오퍼레이팅 오피스로! 현 구조를 유지할 생각입니다.Jason KH : 대만법인에서 다양한 비즈니스를 많이 진행하게 되겠네요. 대광님 아이디어 궁금하네요. 홍콩이랑 싱가포르의 미니오피스는 어떻게 꾸리셨어요? 박준호 : 대만은 법인사무실을 구성했고요. 홍콩과 싱가포르는 미니오피스 개념의 소규모 법인이라 '위워크(We work)'에 둥지를 틀었습니다. 작은 규모의 오피스를 운영할 때는 '공유 오피스'가 참 좋은 것 같아요.그런데, 공유 오피스에 입점했다는 점과 소규모 미니 오피스라는 점으로 인해, 현지 PG사와 은행으로 하여금 낮은 신용도를 부여받게끔 하는 그런 예상치못한 이슈가 있었어요.   하지만, 위워크! 효율이 좋은 공간임에는 틀림없는 것 같습니다.물론, 오래지나지 않아 저희만의 공간이 필요할 만큼의 규모가 커질 것으로 예상하고 있어서 그때는 공유오피스를 떠날 계획입니다.Jason KH : 지금 이야기 나누고 있는 세 개 지역이 한국 못지않게 모바일과 망 보급이 잘 되어있고, 이용률도 점차 증가되고 있는데요. 그래서 초반 모델 검증에도 수월함이 있을 듯 합니다. 혹시, 한국과는 전혀 다른 전략을 취하는 것도 있을까요? 박준호 : 의도한 바는 아니지만, 세 곳 모두 화교가 인구의 대부분인 지역들이에요. 사견으로 이러한 현지분들의 특징 중 하나는 ‘경제활동에 있어 다소 조심스럽고, 직접 확인하는 것을 좋아한다’라고 말씀 드리고 싶어요.중국의 타오바오나, 동남아 권의 Shopee, 싱가포르의 Q10이 빠르게 성장하는 것처럼 이 지역의 e커머스 시장은 급격하게 성장하고 있어요. 하지만 여전히 상품이나 판매자에 대한 신뢰도 문제가 e커머스에서 핸디캡이 되고 있습니다.그래서, 대만 지역에서는 ‘오프라인에서의 경험을 온라인으로 전이’시키면서  눈으로보고 만질 수 있는 요소로 신뢰도를 개선하는 테스트를 해보려고 기획 중이고요. 위에서 언급한 블랭크 제품 체험관이 한국과는 다른 전략의 예가 되겠네요.아까 넘치는 CS수요와 지독한 관심이라고 말씀 주셨죠? ㅎㅎ지금도 하루에 몇 분씩 고객들이 제품을 직접 확인하고 싶으시다며 회사 사무실로 불쑥 찾아오시는데, 이런 분들에게는 꼭 필요한 공간이 되지 않을까 생각됩니다.Jason KH : 한국과는 다른 점이 바로 그러한 현지인들의 시각과 문화라는 생각이 듭니다. 애초에 신뢰도를 바로 세우지 못한, 지난 중화권 지역의 과오에 대해서는 그들이 반성했으면 좋겠네요. 그나저나, 준호님 얼굴 보기가 힘들어요. 출장도 많으시고,,,, 현지 체류가 분기의 절반은 넘는 것 같아요. 어떤 고충이 있으실까요? 박준호 : 일단.. 체력적으로 조금 힘들 때가 있어요. 환경적으로나 체계가 이미 갖춰진 해외법인이 있을 때에는, 저에게 해외 출장은 즐거운 일 중 하나였어요. 업무 시간만 일을 하고 그 외엔 여행을 온 것처럼 지낼 수도 있었거든요.최근 3개월을 곱씹어 본다면, 3개월 동안 내내 해외 법인 3곳을 준비하면서 제반만 다졌는데요. 진출부터 서비스를 다지는 단계에서의 해외 현지 근무는 해외 출장과는 아주 많이 다르더라고요.예를 들면, 지난 주엔 홍콩에서 발생한 PG사 문제, 통관 문제 등 급한 일들을 서둘러 처리했고요. 오늘은 싱가포르에 와서 사무실을 계약하고, 채용 계약과 새 동료분에게 제공해야 하는 각종 보험계약 그리고 연금 계좌 개설을 했답니다. 대만법인 세팅, 손수 가구와 집기를 구매하고, 컴퓨터 설치도 직접!오히려 컴퓨터, 집기 등을 구매하는 시간이 한숨 돌리는 여유 시간이 됩니다. 전반적으로는 저도 처음해보는 일들이 많고 그래서 작은업무 하나에도 높은 집중을 발휘해야 하는 것 같아요.내일은 물류사 창고 실사, 물류 계약서 검토, 단가 산정 등을 두고 싱가포르 파트너사와 함께, '얼굴은 웃지만, 서로 긴장해야하는 시간'을 가져야 할 것 같아요. 또, 몸은 싱가포르에 있지만 대만, 홍콩에서 일이 생기지 않는 것은 아니니…*^^*분명한 사실은 한국에 있는 우리 동료들, 블랭커들이 많이 도와주지 않았다면, 체력적으로 정말 더 힘들었을 것 같아요. Jason KH : 그래도 추석 전에 준호님 얼굴도 보고 이렇게 긴 시간 티타임을 갖게되서 너무 좋네요. 예전에 준호님께서 사무실을 만들기 위해서 여기저기 답사하시다가 영화에서나 볼법한 철제 엘리베이터를 보여주셨었는데, 정말 새삼 다른 환경이구나 하고 느낀 적 있어요. 혹시 이런 것처럼 재미있는 에피소드가 있을까요? 박준호 : 대만에서는 하루에도 몇 분씩 사무실로 찾아오는 고객분들 관련한 에피소드가 많아요.어떤 분은 심지어 사무실 바닥에 베개를 놓고 누워보시기도 했고요.저희가 가짜를 파는 회사가 아니냐며, 회사 등기부등본을 가지고 오라는 분도 계셨고요.사실은 다 감사할 따름이죠. 홍콩에서는 워낙 고층 빌딩들이 다닥다닥 붙어있고, 쇼핑몰과 사무실이 혼재되어 있는 빌딩들이 많다보니, 미팅하러 가서 사무실을 못찾는 경우가 많아요. 이럴까봐, 아예 상대 회사에서 지하철역까지 나와서 에스코트 해주시는는 경우도 있었고요.싱가포르는 임대료가 비싸다보니 창고들이 말레이시아 국경 근처, 도서산간 같은 외진 곳에 많이 있더라구요. 대중교통도 잘 없어서 '그랩'을 이용해 찾아갔는데, 미팅을 마치고 보니 배터리가 없어 핸드폰이 꺼져있더라고요. 지나가는 아저씨의 핸드폰으로 '그랩'을 잠시 빌려쓴 뒤, 차를 기다리는데…시골 같은 곳에서, 짠 매실이 들어간 음료를 들고, 말레이시아어 노래를 들으면서 쭈그리고 앉아있는 제 상황이 너무 비현실적인 느낌이 들어 웃음만 나왔던 기억이 있습니다. 핸드폰 빌려주신 아저씨께 다시 한 번 감사한 마음이 물씬 드네요. 마약베개 선물 드려야겠어요. 싱가포르의 창고지대Jason KH : 준호님 에피소드가 결국은 다 사람들이 함께 사는 세상이구나 하는 생각이 들게하네요. 마지막으로, 해외사업에서 앞으로의 비전이 있다면, 준호님이 그리는 그림이 있다면 어떤 것일까요? 우리 실현 가능성 따위는 제외하고, 한 번 이야기 나눠봐요. 박준호 : 저는 블랭크의 비즈니스 모델이 전 세계 모든 나라에서 작동할거라고 생각합니다!물론 일본처럼(일본이 블랭크 방식에 허들이 가장 많은 나라라고 생각합니다..)SNS를 사용하는 문화가 다르고, 상품 구매 시의 습관 등이 달라, 다른 지역보다는 더 많이 현지화에 공을 들여야겠지만, 제아무리 일본이라도 ‘이렇게 하면 되겠구나’라는 대안은 가지고 있습니다.이렇게 현지화가 필요한 부분들이 있겠지만, 결과적으로는 ‘정도의 차이’가 있을 뿐 대부분의 국가에서 블랭크의 방식이 작동할거라고 생각합니다.그리고, 현재는 해외시장이 단순히 블랭크의 제품을 판매하는 유통채널의 역할을 하는 것처럼 보이지만, 머지 않아 블랭크 해외법인들은 상품기획이나 소싱 그리고 생산에 이르기까지 더 많은 발전을 거듭하고,비즈니스에 기여하게 될 예정입니다.  조리기구가 발달한 중화권의 다양한 조리기구를 한국에 소개할 수도 있고, 태국의 천연 라텍스를 활용한 제품을 블랭크 미국 법인을 통해 북미에 팔 수도 있게 되겠죠! 이렇게 전 세계 다양한 지역의 제품들이 블랭크를 통해 새로운 소비자들을 찾을 수 있게 되고 소비자들의 삶을 변화시킬 수 있게 될 겁니다.그리고 세계 각지에서 유행하는 콘텐츠 포맷과 트렌드도 블랭크를 통해, 문화적 특수성은 재미있게 살리되 보편적인 가치는 함께 공유할 수 있도록 재탄생 될 수 있겠죠.이쯤되면 콘텐츠와 커머스의 융합뿐아니라 전 세계 다양한 사람들을 아우르는 하나의 거대한 플랫폼이나 유기적인 커뮤니티가 될 수 있지 않을까요? ###Jason KH커뮤니케이션    기획자
조회수 1138

오토 레이아웃(Auto Layout), 넌 누구냐!

OverviewiOS 프로그래밍을 하면서 많이 접했던 단어 중 하나는 오토 레이아웃(Auto Layout) 입니다. 스토리보드에서 화면을 만들 때 오토 레이아웃을 이용해서 뷰와 컨트롤의 크기와 위치를 지정합니다. 이미 잘 사용하고 있지만 문득 정확하게 오토 레이아웃은 무엇인지 궁금해져 이번 기회에 써 보기로 했습니다. 오토 레이아웃(Auto Layout)은?오토 레이아웃(Auto Layout)은 제약 조건(Constraints)을 이용해서 뷰의 위치를 지정하는 것입니다. 다시 말하면, 두 뷰 사이의 관계를 제약 조건이라는 것을 이용해서 뷰의 크기와 위치를 지정하는 것입니다. 너와 나의 연결 고리!오토 레이아웃은 여러 해상도를 지원하려고 이 세상에 나왔습니다. 아이폰의 크기가 다양해지면서 해상도도 달라졌는데, 다른 크기에서도 같은 화면을 똑같이 보여주기 위해 오토 레이아웃을 사용합니다. 세로 보기 화면뿐만 아니라 가로 보기 화면까지도 지원합니다. 아이폰SE 혹은 아이폰8 Plus에서도 같은 비율의 화면을 볼 수 있도록 오토 레이아웃을 사용하는 것입니다. 만약 오토 레이아웃을 사용하지 않는다면, 아이폰 기종마다 스토리보드를 만들어야 하죠. 이렇게 되면 스토리보드 파일이 많아집니다. 앱을 실행할 때 아이폰 기종을 확인하고, 그에 맞는 스토리보드를 찾아 화면을 보여주는 번거로움도 생깁니다. 위의 이미지를 보면 아이폰SE와 아이폰8, 아이폰8 Plus 브랜디 앱 화면. 기종이 달라도 보여지는 화면이 똑같다는 것을 볼 수 있습니다. 오토 레이아웃을 이용해서 하나의 스토리보드에서 모두 대응할 수 있는 것이죠.Frame Layout vs Auto Layout전통적으로 앱은 유저 인터페이스를 각 뷰의 프레임(frame)을 프로그래밍 방식으로 계산해 배치합니다. 유저 인터페이스를 배치하려면 뷰 계층의 모든 뷰에 대한 크기와 위치를 계산해야 합니다. 그리고 변경이 발생하면 영향을 받는 모든 뷰에 대해 프레임을 다시 계산합니다.Frame Layout뷰의 프레임을 프로그래밍 방식으로 정의하면 유연해집니다. 어떤 변화가 생겨도 대응할 수 있기 때문입니다. 그러나 모든 변경 사항을 직접 관리해야 하기 때문에 많은 노력이 필요합니다. 설계부터 시작하여 디버그 및 유지 관리까지 많은 것을 관리해야 합니다. 가장 효과적인 방법이지만 난이도도 많이 어려워집니다.이와 달리 오토 레이아웃은 일련의 제약 조건을 사용하여 유저 인터페이스를 정의합니다. 제약 조건은 앞서 말한 것 처럼, 일반적으로 두 뷰 간의 관계를 나타냅니다. 그런 다음 오토 레이아웃은 이러한 제약 조건을 기반으로 각 뷰의 크기와 위치를 계산합니다.Auto Layout화면에 배치하는 모습이 같기 때문에 프레임 방식을 사용해도 되고, 오토 레이아웃을 사용해도 됩니다. 둘 다 스위프트와 오브젝티브 C를 지원하기도 합니다. 각각 장단점이 있지만 가장 많이 사용하는 방법이 오토 레이아웃입니다. 빠르게 적용할 수 있고 많은 시간을 줄일 수 있기 때문입니다.스토리보드에서의 오토 레이아웃iOS 앱 개발은 스토리보드를 이용해서 화면을 만듭니다. 그래서 스토리보드가 익숙한 개발자들이 많은데, 사실은 뷰를 배치하면서 썼던 툴이 오토 레이아웃과 관련된 것이었습니다.스토리보드 오른쪽 하단에 있는 메뉴핀(Pin) 메뉴는 버튼 또는 레이블과 같은 UI 요소에 새로운 제약 조건들을 추가할 수 있습니다. 시계 방향으로 Top, Trailing, Bottom, Leading 제약 조건의 값을 입력할 수 있고, 화살표를 누르면 어떤 뷰와 관계를 가질 것인지 선택할 수 있습니다. 두 뷰와 핀 메뉴를 선택하면 같은 너비와 높이를 설정할 수 있습니다.Pin 메뉴정렬(Align) 메뉴는 다른 뷰와의 가로, 세로 정렬과 같은 정렬 제약 조건들을 추가할 수 있습니다. 정렬하고 싶은 두 뷰를 선택하여 수직 정렬, 수평 정렬을 추가할 수 있습니다.Align 메뉴맨 오른쪽 메뉴인 오토 레이아웃 이슈 툴은 오토 레이아웃 관련된 이슈들을 해결하는 옵션들을 제공합니다. 오토 레이아웃을 현재 설정된 상태로 재설정하는 옵션들입니다. 상단은 선택된 뷰와 관련된 것이고, 하단은 모든 뷰와 관련된 것입니다.Resolve Auto Layout IssuesAlign 옆에 있는 Stack 메뉴는 복잡한 제약 조건 없이 오토 레이아웃의 기능을 쉽게 뷰를 배치할 수 있도록 스택에 쌓아서 묶어주는 스택뷰를 생성합니다. 하나의 묶음으로 만들 뷰들을 선택하여 Stack 메뉴를 선택하면 스택처럼 그룹으로 됩니다. 여기서 뷰 사이의 공간과 정렬들을 설정할 수 있습니다.Stack View로 만든 간단한 뷰, 오른쪽 메뉴에 정렬과 뷰 사이의 공간을 선택할 수 있는 곳이 있습니다.스토리보드에서 뷰를 배치하고 오토 레이아웃 메뉴들을 이용하면 아래 스크린샷과 같이 제약 조건들을 볼 수 있습니다. 어떤 값을 지정하는 것이 아닌 같다는 뜻의 “=“를 이용하여 제약 조건들을 표현합니다.스토리보드에서 많이 볼 수 있는 제약 조건들(Constraints)프로그램 상의 제약 조건들스토리보드에서만 제약 조건들을 설정할 수 있는 건 아닙니다. 프로그램 상에서도 제약 조건들을 설정할 수 있습니다. 스토리보드에서 뷰를 배치한 다음, 제약 조건들을 소스 파일과 연결해서 값을 지정할 수 있습니다. 주로 어떤 변화가 일어나면 제약 조건들을 다시 설정할 때, 프로그램 상에서 값을 다시 설정합니다. 예를 들어, 데이터가 있을 땐 해당 뷰를 보여줍니다. 만약 데이터가 없으면 그 뷰가 사라지면서 그 뷰와 관련되어 있는 다른 뷰의 제약 조건들을 다시 설정하여 화면에 재배치하는 것입니다.func hideTag(_ hide: Bool) {         if hide {             self.labelTag1.isHidden = true             self.labelTag2.isHidden = true             self.constLabelTag1Top.constant = 0.0             self.constLabelTag1Height.constant = 0.0         } else {             self.labelTag1.isHidden = false             self.labelTag2.isHidden = false             self.constLabelTag1Top.constant = 15.0             self.constLabelTag1Trailing.constant = 5.0             self.constLabelTag1Height.constant = 20.0         }     } 위 소스에서 hide 값에 따라 레이블의 숨김을 설정하고 레이블의 제약 조건의 값을 재설정하는 메소드가 있습니다. 데이터가 있으면 숨김을 해제하고 제약 조건들의 값을 설정하지만, 데이터가 없으면 레이블을 숨기고 제약 조건들의 값을 0으로 설정합니다.스토리보드에서 연결한 제약 조건들을 가지고 설정할 수 있는데, 프로그램 상에서 직접 제약 조건들을 생성하여 사용할 수 있습니다. 아래의 예시는 뷰의 높이를 60으로 설정하는 코드입니다.NSLayoutConstraint(item: self.testView, attribute: .height, relatedBy: .equal, toItem: nil, attribute: .notAnAttribute, multiplier: 1.0, constant: 60) Conclusion애플에서는 개발자가 다양한 해상도에 대응할 수 있게 오토 레이아웃이라는 시스템을 개발했습니다. 스토리보드에서 쉽게 화면에 뷰를 배치할 수 있고, 별다른 기능을 추가하지 않아도 다양한 아이폰 크기에 맞춰서 대응해줍니다. 오토 레이아웃을 이용하여 멋지게 모든 아이폰과 아이패드에 대응하는 앱을 개발해보세요! 곧 산호세로 떠나 설레는 마음으로 글을 마치겠습니다. 감사합니다. :)글김주희 사원 | R&D 개발1팀[email protected]브랜디, 오직 예쁜 옷만#브랜디 #개발팀 #개발자 #개발환경 #업무환경 #인사이트 #경험공유
조회수 1416

우리는 인연이 아닌가 봐요

콜라보레이션!스타트업들 간의 협업은언뜻 멋져 보인다.취지도, 명분도뭔가 그럴듯해 보인다.우리가 강한 경쟁자를 상대하기에부족한 것들을 같은 처지의 스타트업끼리뭉쳐 이겨낼 수 있을 것 같다.이론상 참 좋은 연합이다.(출처: 만화책 "드래곤볼카이" 중에서 퓨전합체)그런데 실제로는 어떠할까?나도 콜라보레이션의 취지는 좋게 생각한다.분명 장단점이 있고,콜라보를 통해 서로 시너지를 낸 선례들도 있다.근데 그게 그냥 "같이 합시다"라고 뭉친다고잘 되는 게 아니라더 신경 쓰고, 양보하고, 신뢰해야 하며,에너지가 많이 소비되는 형태이다.부족한 것은 상대방이 채워줄 것 같지?아니, 상대방도 너를 의존하고 있고,너에게 기대하는 바가 크기에제대로 뭉치지 않으면오합지졸 당나라 군대가 돼버리기 쉽다.우리 함께 연합해서 Win-win 하자고?괜히 어설프게 연합하다간함께 Lose-lose 할 수도 있다.무작정 뭉친다고 강해지는 게 아니다.오히려 서로에게 악영향이 되고,서로에게 감정만 상할 수도 있다.그럼 콜라보레이션은어떻게 해야 제대로 운영될 수 있을 까?1. 리더가 필요하다.양 무리에도 리더가 있다.둘 이상의 콜라보에서 동등한 의사결정이이상적으로 보일지는 몰라도업무를 수행하는 데 있어서 누군가는 전체 연합을조율하고, 이끌어가야 할 보다 강한 리더십이 있어야 한다.스타트업들 간의 연합의 취약점은바로 체계가 없음이다.동등한 위치에서,평등한 의사결정을 꿈꾼다면평행선을 달릴 일도 많아진다.우리에게 시간이 넉넉하고,자금이 풍족하다며시장이 우리의 제품/서비스를 기다려 준다면그 사이에 우리 모두 웃음꽃 피우며좋은 게 좋다고 끝없는 토론의 장을 가질 수 있겠지.한정된 시간과늘 부족한 자금과눈 깜빡할 새 변하는 변덕스러운 시장을순간순간 체크해야 하는데...누군가는 앞서서 진두지휘를 해야 한다.이게 참 말이나 글로 적긴 쉬운 건데실제로 적용되는 건 어려운 일이다.이리저리 신경 쓰기엔창업자가 할 일이 참 많잖아.2. 목적이 명확해야 한다.콜라보로 우리가 얻을 수 있는 것이 무엇인지에 대한명확한 목표/목적이 있어야 한다.양보할 수 있는 부분은 무엇이고,물러 설 수 없는 부분은 무엇인지를 확실하게 알려야 한다.이게 어정쩡하면,뒤에서 아쉬운 소리가 나올 수밖에 없다.두 가지 문제가 있더라.일단 뭔가를 잘 정의를 못 내리는 문제.우리가 왜 콜라보를 해야 하고,무엇을 위해서 해야 하는지 그다지 선명하지 않았다.두 번 째는상대방의 목적이 무엇인지 모르겠더라.뭐 상생이라던가,파트너십이라던가 참 듣기는 좋은 말인데...그래서 어쩌라는 건지,뭘 어떻게 하자는 건지너무 두리뭉실하다 보니...결국 거절을 하였다.서로의 목적이 다르면,서로 딴 주판을 튕기게 되고,그 끝은 서로에 대한 원망과 후회가 남는다.그나마 서로의 목적이 다르다는 것을 알기라도 한다면의견을 조율하고, 협의를 할 수 있겠지만서로 무슨 목적을 가지고 있는지 관심이 없을 때도 있다.그보다 콜라보를 해야 할 자신들의 근거조차스스로 모를 때가 더 많다고 해야 하나?3. 서로 신뢰할 수 있어야 한다.상대방을 믿을 수 있느냐가 가장 큰 벽이다.스타트업과 스타트업 간의 협력은대표들끼리 쿵짝쿵짝 코드 맞춘다고 돌아가는 게 아니다.구성원들 모두가 공감하고커뮤니케이션이 원활해져야 하는데...더군다나 자주 만나지도 못 하고,어쩌다 이슈가 생길 때만서로 연락 주고받는다면콩가루 스타트업 연합이 되지 않을까?사실 우리에게도 몇 번인가 콜라보 제의가 들어왔었다.그중 두 번 진행을 해봤다.한 번은 Good case, 한 번은 Bad case처음에는 뭣도 모르고  바로 계약서 준비하려 한 때가 있었다.(상대 쪽 대표가 착하고, 좋아서...)분쟁의 소지를 미연에 방지하기 위해서계약서는 큰 도움이 되는 것은 사실이니까.하지만 다시 생각해보니계약서는 굳이 쓸 필요를 못 느끼겠더라.괜히 계약서에 싸인 잘 못 했다가,우리 멤버들이 고생은 고생대로 하고,우리 방향에서 벗어날까 봐하는 노파심이 들었다.그래서 우리는 콜라보 제의에크게 비중을 두지 않은 상태에서확인 작업을 한다.아주 작은 사소한 일을 함께 해 본다.그리고 일이 진행되는 과정을 확인한다.그러다 몇 번의 소소한 미팅이 동반되는작은 일을 같이 해 본다.그리고 결과적으로신뢰할 수 있는 상대라고 판단되면,계약서를 준비한다.최근에 두 곳과 이런저런 일로작은 일을 진행하고 있는데...글쎄...좀 시간과 거리를 두고더 신중하게 접근하고 있다.신뢰라는 것은갑자기 생기는 것이 아니라관찰과 행동에서 나오는 것이다.팀빌딩에 신중했듯이,협업도 신중해야 하고,확인해야 하고, 복기해야 한다.힘들 때,우리는 누군가를 의지하고 싶어 진다.외로울 때,우리는 누군가 공감해 줄 사람이 그리워진다.그러한 감성적인 이유는콜라보레이션의 타당성을 주지 못 한다.논리적이고 합리적인 타당성이 없는콜라보레이션은 서로에게 죄를 짓는 것이다.오랜만에 스타트업 대표들끼리식사를 한 적이 있다.그 자리에서 한 분이연합 이야기를 꺼내셨다.어떤 대표들은 박수를 치며 환호를 하였지만,어떤 대표들은 고개를 절레절레 흔들었다.(출처: 게임 삼국지10, 황건동란, 도원결의)삼국지의 유비, 관우, 장비의 도원결의에 대해지극히 현실적이고 냉철하게 상상해보자.뜬금없이 술 한잔 나누면서 뭉친 모습으로상상하고 있는 건 아니겠지?그들이 서로를 몰랐겠는가.유비가 누구이고, 어떤 상황에 놓여 있는지,관우는 어떤 사람이고, 무엇을 중요시 여기는지,장비는 성격이 어떻고, 무엇이 관심사인지...그리고 그들이 공통적으로 꿈꾸는 목적이무엇인지 제대로 나누지도 않은 채그냥 꽃잎 날리는 복숭아나무 아래에서술 한 잔 주거니 받거니 하며의형제를 맺었겠는가.서로 다른 환경에서다른 삶을 살아왔던셋이 모여 리더(유비)를 정하고,더 필요한 누군가(공명)를 영입하고,후원자와 병사들을 모으고황건적의 난이라는 시기적절한 타이밍에그들이 전면에 등장하지 않았던가.단지,동지애만으로,즉흥적인 분위기에 휩쓸려서,아는 사람들이니까,백지장도 맞들면 낫다니까이런 말도 안 되는 이유로연합하자는 것은다 죽자는 거다.혼자 가는 길보다는 같이 가는 길이더 좋을 거라 착각하지 말자.같이 가는 길이 같은 방향일 때,같이 가는 동료가 서로에게 도움이 될 때,동행이 의미있고, 행복한 길이 되는거지무작정 함께라고 꽃길이 되지 않는다.함께 동행한다고 안심했는데그 길이 낭떠러지로 향하는 길일 수도 있다.이 글을 쓰는 말미에 꼭 남기고 싶은 말이 있다.스타트업 간의 연합 또는 콜라보레이션이나쁘다는 주장으로 오해하지 마시라.어정쩡한 콜라보레이션을 피하자는 것이다.방향이 없는, 목적성이 없는, 신뢰가 없는그런 연합을 만들지 말라는 것이다.실제로콜라보레이션이 성공한 케이스는너무나도 많다.그들이 성공한 이유는서로에게 시너지를 줄 수 있는제대로 된 콜라보레이션이었기 때문이다.한 가지만 더 첨언하자면,우리가 좋은 스타트업과 함께 동행하길 원한다면,우리도 상대에게 좋은 스타트업으로 준비되어 있어야 한다.세상은 Give and Take!줄 것이 있어야 받을 것이 있고,우리에게도 무언가가 있어야상대방의 필요를 채워 줄 수 있다.오늘도스타트업 창업자 동지들을 응원합니다.#클린그린 #스타트업 #스타트업창업 #초기창업 #창업자 #고민 #응원 #인사이트
조회수 7226

클라우드 서비스 이해하기 IaaS, PaaS, SaaS

클라우드 컴퓨팅은 인터넷으로 가상화 된 IT 리소스를 서비스로 제공하는 것을 의미합니다. 그리고 클라우드 컴퓨팅에서 가상화 하여 서비스로 제공하는 대상은 인프라스트럭쳐, 플랫폼, 소프트웨어입니다. AWS와 Azure가 대중화되면서 클라우드를 인프라스트럭쳐의 가상화 개념으로만 이해하기도 하지만 클라우드는 인프라스트럭쳐 뿐만이 아니라 플랫폼과 소프트까지 포함하는 온라인의 모든 영역을 다루는 꽤 광범위한 개념입니다. 그렇기 때문에 클라우드는 분야별 특성별로 나누어서 이해하는 것이 좋습니다. 클라우드 서비스의 종류는 아래와 같이 크게 3가지로 나눌 수 있습니다. Infrastructure as a Service (IaaS, 아이아스, 이에스)서비스로 제공되는 인프라스트럭처입니다. 개발사에 제공되는 물리적 자원을 가상화합니다. Platform as a Service (PaaS, 파스)서비스로 제공되는 플랫폼입니다. 개발사에 제공되는 플랫폼을 가상화합니다.Software as a Service (SaaS, 사스)서비스로 제공되는 소프트웨어입니다. 고객에게 제공되는 소프트웨어를 가상화합니다.클라우드 구분하여 알아보자IaaS: 서비스로 제공하는 인프라스트럭쳐클라우드 인프라스트럭처 서비스는 확장성이 높고 자동화된 컴퓨팅 리소스를 가상화하여 제공하는 것입니다. IaaS는 컴퓨팅, 네트워킹, 스토리지 및 기타 인프라스트럭쳐를 사용하기 위한 서비스이며 사용자는 필요할 때 마다 서비스를 통해 리소스를 구입할 수 있습니다.(IaaS는 한국에서 이아스 또는 아이아스로 부르며 영미권에서는 이에:스 또는 아이아스로 발음합니다.)PaaS: 서비스로 제공하는 플랫폼클라우드 플랫폼 서비스는 주로 응용 프로그램을 개발 할 때 필요한 플렛폼을 제공하는 것입니다. PaaS는 사용자 정의 응용 프로그램을 개발하고 사용할 수있는 개발자를위한 프레임워크를 제공합니다. 개발사는 미들웨어를 설치하지 않고도 미들웨어에서 제공하는 API를 사용하여 소프트웨어를 개발할 수 있습니다. SaaS : 서비스로 제공하는 소프트웨어클라우드 애플리케이션(소프트웨어) 서비스는 사용자에게 제공되는 소프트웨어를 가상화하여 제공하는 것입니다. SaaS는 타사 공급 업체가 관리하는 사용자에게 응용 프로그램을 제공하기 위해 인터넷을 사용합니다. 대부분의 SaaS 애플리케이션은 웹 브라우저를 통해 직접 실행되므로 클라이언트 측에서 다운로드 나 설치가 필요하지 않습니다.무엇을 제공하는가클라우드는 온라인의 광범위한 영역을 모두 다루는 광범위한 영역입니다. 클라우드 서비스들은 제공하는 범위에 따라 IaaS, PaaS, SaaS로 나뉘고 있으므로 각각의 클라우드 서비스가 제공하는 내역을 살펴보는 것은 클라우드를 이해하는 데 많은 도움이 됩니다.  IaaS: 물리적 자원 제공IaaS는 고객에게 서버, 네트웍, OS, 스토리지를 가상화하여 제공하고 관리합니다. IaaS는 가상화 된 물리적인 자산을 UI형태의 대시보드 또는 API로 제공합니다. IaaS의 고객들은 서버와 스토리지를 접근할 수 있지만 사실상 클라우드에 있는 가상 데이터 센터를 통해 리소스를 전달받는 형태입니다. IaaS는 기존의 데이터센터에서 제공받던 물리적인 자산을 완벽하게 가상화하여 제공하기 때문에 서버 사양의 변경 등 물리적 자산의 수정이 필요한 경우 기존의 방식에 비해 훨씬 빠른 대응이 가능합니다.IaaS의 제공업체는 서버, 하드 드라이브, 네트워킹, 가상화 및 스토리지를 관리하며 고객은 OS, 미들웨어, 애플리케이션 및 데이터와 같은 자원들을 관리해야 합니다. PaaS: 소프트웨어 개발을 돕는 플랫폼 제공PaaS는 고객에게 OS, 미들웨어, 런타임과 같은 소프트웨어 작성을위한 플랫폼을 가상화하여 제공하고 관리합니다. 이 가상화 된 플랫폼은 웹을 통해 제공되며 개발자는 운영 체제, 소프트웨어 업데이트, 저장소 또는 인프라에 대한 관리 없이 소프트웨어 개발에 집중할 수 있습니다.PaaS를 사용하면 기업에서는 특수 소프트웨어 구성 요소를 사용하여 PaaS에 내장 된 응용 프로그램을 설계하고 만들 수 있습니다. 이러한 응용 프로그램 또는 미들웨어는 특정 클라우드 특성을 채택 할 때 확장 가능하고 가용성이 높습니다.SaaS: 고객이 사용하는 소프트웨어 제공SaaS는 고객을 대신하여 소프트웨어와 데이터를 제공하고 관리합니다. 패키지 또는 On-Prems 방식이라고 하는 기존의 소프트웨어 전달 방식과 다르게 SaaS는 개별 컴퓨터에 응용 프로그램을 다운로드하고 설치할 필요가 없습니다. SaaS를 통해 서비스를 공급하는 업체는 데이터, 미들웨어, 서버 및 스토리지와 같은 모든 잠재적 인 기술적 문제를 관리하기 때문에 고객은 유지 보수 및 지원을 간소화 하면서 비지니스에 집중 할 수 있습니다.클라우드의 장점과 단점클라우드 인프라 서비스를 사용할 때의 장점과 클라우드 소프트웨어 서비스를 사용할 때의 장점은 다를 수 밖에 없습니다. 이에 3가지 클라우드 서비스의 장점과 단점을 각각 설명합니다. IaaS: 장점비용물리적 자원을 소비 형태로 사용하기 때문에 고정비가 들지 않습니다.속도물리적 자원을 즉시 소비할 수 있습니다.관리물리적  자원에 대한 관리를 논리적인 영역으로 대체할 수 있습니다.물리적 자원에 대한 자동화 된 배포가 가능합니다.물리적 자원에 대한 안정적인 운영을 벤더에 맞길 수 있습니다.물리적 자원에 대한 규모의 확장 또는 축소가 자유롭습니다.  PaaS: 장점비용필요한 플랫폼만 소비 형태로 사용하기 때문에 비용 부담을 덜 수 있습니다. 속도개발 및 배포 프로세스를 빠르게 확보할 수 있습니다.관리소프트웨어 유지 관리가 쉬워집니다.가상화 기술을 기반으로 구축되어 비즈니스가 변함에 따라 리소스를 쉽게 확장 또는 축소 할 수 있습니다.응용 프로그램의 개발, 테스트 및 배포를 지원하는 다양한 서비스를 제공합니다.수많은 사용자가 동일한 개발 응용 프로그램에 액세스 할 수 있습니다.PaaS: 단점특정 플랫폼 서비스에 종속될 수 있습니다.SaaS: 장점SaaS는 소프트웨어 설치, 관리 및 업그레이드와 같은 지루한 작업에 소요되는 시간과 비용을 크게 줄임으로써 직원과 회사에 많은 이점을 제공합니다. 따라서 기술 직원이 조직 내에서 보다 긴급하고 중요한 문제에 집중할 수 있습니다. 비용소프트웨어를 소비 형태로 사용하기 때문에 비용 부담을 덜 수 있습니다.속도즉시 사용이 가능합니다. 관리소프트웨어를 설치할 물리적 자원이 필요하지 않습니다.언제 어디서든 접근가능합니다.SaaS: 단점커스터마이징이 어렵습니다. 클라우드 언제 적용해야 하는가IaaS: 빠른 변화를 원한다면스타트업이나 중소기업에게 IaaS는 훌륭한 옵션이므로 하드웨어나 소프트웨어를 설치하는데 시간과 돈을 낭비 할 필요가 없습니다. IaaS는 응용 프로그램과 인프라를 완벽하게 제어하고자하는 대규모 조직에 유용하지만 실제로 소비되거나 필요로하는 것을 구매하려는 경우에만 유용합니다. 빠르게 성장하는 기업의 경우, IaaS는 요구 사항이 변화하고 발전함에 따라 특정 하드웨어 나 소프트웨어에 전념 할 필요가 없으므로 좋은 선택이 될 수 있습니다. 또한 필요에 따라 확장 또는 축소 할 수있는 많은 유연성이 있으므로 새로운 응용 프로그램에 어떤 요구가 필요한지 확실하지 않은 경우 도움이됩니다.PaaS: 신속한 개발을 원한다면PaaS를 이용하는 것이 유익하거나 필요한 경우가 많이 있습니다. 동일한 개발 프로젝트를 수행하는 여러 개발자가 있거나 다른 공급 업체도 포함해야하는 경우 PaaS는 전체 프로세스에 뛰어난 속도와 유연성을 제공 할 수 있습니다. PaaS는 사용자 정의 된 응용 프로그램을 만들려는 경우에도 유용합니다. 또한이 클라우드 서비스는 비용을 크게 절감 할 수 있으며 앱을 신속하게 개발하거나 배포하는 경우 발생하는 몇 가지 문제를 단순화 할 수 있습니다.SaaS: 비지니스에 집중하고 싶다면보안상 민감한 사항이 아니라면 모든 기업에게 SaaS는 훌륭한 옵션입니다. 또한 협업이 필요한 단기 프로젝트라면 SaaS 를 도입하는 것이 훨씬 유리합니다. 일반적으로 On-Prems 솔루션은 모바일 액세스를 지원하지 않기 때문에 모바일 액세스가 필요한 경우에도 SaaS를 사용하면 비용가 시간을 절약할 수 있습니다.클라우드 서비스 예클라우드는 적용된 분야별로 이해해야 합니다. 아래는 분야별 서비스 예입니다. IaaSAmazon Web Services (AWS), Microsoft Azure, DigitalOcean, Google Compute Engine (GCE)PaaSAWS Elastic Beanstalk, Windows Azure, Heroku, Google App EngineSaaSGoogle Apps, Dropbox, Salesforce, WhaTap마무리지금도 많은 기업의 임원분들이 클라우드의 적용 여부에 대해 고민을 하고 있으며 많은 스타트업들이 클라우드 기반의 서비스를 만들어 가고 있습니다. 회사에 클라우드를 도입해야 한다면 IaaS를 도입할 지, PaaS를 도입할 지 아니면 SaaS를 도입해야 하는지 알고 있어야 합니다. 그리고 자사의 서비스가 클라우드 기반의 서비스라면 고객에게 왜 도입해야 하는지 쉽게 설명할 수 있어야 합니다. 제가 다니는 와탭랩스(whatap.io)는 국내에서 드물게 SaaS 모니터링 서비스를 제공하고 있습니다. 2015년 1월에 시작한 서비스는 이제 만 4년을 달려가고 있습니다. 앞으로 한국에서 더 많은 클라우드 서비스들이 나왔으면 합니다. #와탭랩스 #개발자 #개발팀 #클라우드서비스 #서비스소개
조회수 3318

Attention is all you need paper 뽀개기

이번 포스팅에서는 포자랩스에서 핵심적으로 쓰고 있는 모델인 transformer의 논문을 요약하면서 추가적인 기법들도 설명드리겠습니다.Why?Long-term dependency problemsequence data를 처리하기 위해 이전까지 많이 쓰이던 model은 recurrent model이었습니다. recurrent model은 t번째에 대한 output을 만들기 위해, t번째 input과 t-1번째 hidden state를 이용했습니다. 이렇게 한다면 자연스럽게 문장의 순차적인 특성이 유지됩니다. 문장을 쓸 때 뒤의 단어부터 쓰지 않고 처음부터 차례차례 쓰는 것과 마찬가지인것입니다.하지만 recurrent model의 경우 많은 개선점이 있었음에도 long-term dependency에 취약하다는 단점이 있었습니다. 예를 들어, “저는 언어학을 좋아하고, 인공지능중에서도 딥러닝을 배우고 있고 자연어 처리에 관심이 많습니다.”라는 문장을 만드는 게 model의 task라고 해봅시다. 이때 ‘자연어’라는 단어를 만드는데 ‘언어학’이라는 단어는 중요한 단서입니다.그러나, 두 단어 사이의 거리가 가깝지 않으므로 model은 앞의 ‘언어학’이라는 단어를 이용해 자연어’라는 단어를 만들지 못하고, 언어학 보다 가까운 단어인 ‘딥러닝’을 보고 ‘이미지’를 만들 수도 있는 거죠. 이처럼, 어떤 정보와 다른 정보 사이의 거리가 멀 때 해당 정보를 이용하지 못하는 것이 long-term dependency problem입니다.recurrent model은 순차적인 특성이 유지되는 뛰어난 장점이 있었음에도, long-term dependency problem이라는 단점을 가지고 있었습니다.이와 달리 transformer는 recurrence를 사용하지 않고 대신 attention mechanism만을 사용해 input과 output의 dependency를 포착해냈습니다.Parallelizationrecurrent model은 학습 시, t번째 hidden state를 얻기 위해서 t-1번째 hidden state가 필요했습니다. 즉, 순서대로 계산될 필요가 있었습니다. 그래서 병렬 처리를 할 수 없었고 계산 속도가 느렸습니다.하지만 transformer에서는 학습 시 encoder에서는 각각의 position에 대해, 즉 각각의 단어에 대해 attention을 해주기만 하고, decoder에서는 masking 기법을 이용해 병렬 처리가 가능하게 됩니다. (masking이 어떤 것인지는 이후에 설명해 드리겠습니다)Model ArchitectureEncoder and Decoder structureencoder는 input sequence (x1,...,xn)<math>(x1,...,xn)</math>에 대해 다른 representation인 z=(z1,...,zn)<math>z=(z1,...,zn)</math>으로 바꿔줍니다.decoder는 z를 받아, output sequence (y1,...,yn)<math>(y1,...,yn)</math>를 하나씩 만들어냅니다.각각의 step에서 다음 symbol을 만들 때 이전에 만들어진 output(symbol)을 이용합니다. 예를 들어, “저는 사람입니다.”라는 문장에서 ‘사람입니다’를 만들 때, ‘저는’이라는 symbol을 이용하는 거죠. 이런 특성을 auto-regressive 하다고 합니다.Encoder and Decoder stacksEncoderN개의 동일한 layer로 구성돼 있습니다. input $x$가 첫 번째 layer에 들어가게 되고, layer(x)<math>layer(x)</math>가 다시 layer에 들어가는 식입니다.그리고 각각의 layer는 두 개의 sub-layer, multi-head self-attention mechanism과 position-wise fully connected feed-forward network를 가지고 있습니다.이때 두 개의 sub-layer에 residual connection을 이용합니다. residual connection은 input을 output으로 그대로 전달하는 것을 말합니다. 이때 sub-layer의 output dimension을 embedding dimension과 맞춰줍니다. x+Sublayer(x)<math>x+Sublayer(x)</math>를 하기 위해서, 즉 residual connection을 하기 위해서는 두 값의 차원을 맞춰줄 필요가 있습니다. 그 후에 layer normalization을 적용합니다.Decoder역시 N개의 동일한 layer로 이루어져 있습니다.encoder와 달리 encoder의 결과에 multi-head attention을 수행할 sub-layer를 추가합니다.마찬가지로 sub-layer에 residual connection을 사용한 뒤, layer normalization을 해줍니다.decoder에서는 encoder와 달리 순차적으로 결과를 만들어내야 하기 때문에, self-attention을 변형합니다. 바로 masking을 해주는 것이죠. masking을 통해, position i<math>i</math> 보다 이후에 있는 position에 attention을 주지 못하게 합니다. 즉, position i<math>i</math>에 대한 예측은 미리 알고 있는 output들에만 의존을 하는 것입니다.위의 예시를 보면, a를 예측할 때는 a이후에 있는 b,c에는 attention이 주어지지 않는 것입니다. 그리고 b를 예측할 때는 b이전에 있는 a만 attention이 주어질 수 있고 이후에 있는 c는 attention이 주어지지 않는 것이죠.Embeddings and Softmaxembedding 값을 고정시키지 않고, 학습을 하면서 embedding값이 변경되는 learned embedding을 사용했습니다. 이때 input과 output은 같은 embedding layer를 사용합니다.또한 decoder output을 다음 token의 확률로 바꾸기 위해 learned linear transformation과 softmax function을 사용했습니다. learned linear transformation을 사용했다는 것은 decoder output에 weight matrix W<math>W</math>를 곱해주는데, 이때 W<math>W</math>가 학습된다는 것입니다.Attentionattention은 단어의 의미처럼 특정 정보에 좀 더 주의를 기울이는 것입니다.예를 들어 model이 수행해야 하는 task가 번역이라고 해봅시다. source는 영어이고 target은 한국어입니다. “Hi, my name is poza.”라는 문장과 대응되는 “안녕, 내 이름은 포자야.”라는 문장이 있습니다. model이 이름은이라는 token을 decode할 때, source에서 가장 중요한 것은 name입니다.그렇다면, source의 모든 token이 비슷한 중요도를 갖기 보다는 name이 더 큰 중요도를 가지면 되겠죠. 이때, 더 큰 중요도를 갖게 만드는 방법이 바로 attention입니다.Scaled Dot-Product Attention해당 논문의 attention을 Scaled Dot-Product Attention이라고 부릅니다. 수식을 살펴보면 이렇게 부르는 이유를 알 수 있습니다.Attention(Q,K,V)=softmax(QKT√dk)V<math>Attention(Q,K,V)=softmax(QKTdk)V</math>먼저 input은 dk<math>dk</math> dimension의 query와 key들, dv<math>dv</math> dimension의 value들로 이루어져 있습니다.이때 모든 query와 key에 대한 dot-product를 계산하고 각각을 √dk<math>dk</math>로 나누어줍니다. dot-product를 하고 √dk<math>dk</math>로 scaling을 해주기 때문에 Scaled Dot-Product Attention인 것입니다. 그리고 여기에 softmax를 적용해 value들에 대한 weights를 얻어냅니다.key와 value는 attention이 이루어지는 위치에 상관없이 같은 값을 갖게 됩니다. 이때 query와 key에 대한 dot-product를 계산하면 각각의 query와 key 사이의 유사도를 구할 수 있게 됩니다. 흔히 들어본 cosine similarity는 dot-product에서 vector의 magnitude로 나눈 것입니다. √dk<math>dk</math>로 scaling을 해주는 이유는 dot-products의 값이 커질수록 softmax 함수에서 기울기의 변화가 거의 없는 부분으로 가기 때문입니다.softmax를 거친 값을 value에 곱해준다면, query와 유사한 value일수록, 즉 중요한 value일수록 더 높은 값을 가지게 됩니다. 중요한 정보에 더 관심을 둔다는 attention의 원리에 알맞은 것입니다.Multi-Head Attention위의 그림을 수식으로 나타내면 다음과 같습니다.MultiHead(Q,K,V)=Concat(head1,...,headh)WO<math>MultiHead(Q,K,V)=Concat(head1,...,headh)WO</math>where headi=Attention(QWQi,KWKi,VWVi)dmodel<math>dmodel</math> dimension의 key, value, query들로 하나의 attention을 수행하는 대신 key, value, query들에 각각 다른 학습된 linear projection을 h번 수행하는 게 더 좋다고 합니다. 즉, 동일한 Q,K,V<math>Q,K,V</math>에 각각 다른 weight matrix W<math>W</math>를 곱해주는 것이죠. 이때 parameter matrix는 WQi∈Rdmodelxdk,WKi∈Rdmodelxdk,WVi∈Rdmodelxdv,WOi∈Rhdvxdmodel<math>WiQ∈Rdmodelxdk,WiK∈Rdmodelxdk,WiV∈Rdmodelxdv,WiO∈Rhdvxdmodel</math>입니다.순서대로 query, key, value, output에 대한 parameter matrix입니다. projection이라고 하는 이유는 각각의 값들이 parameter matrix와 곱해졌을 때 dk,dv,dmodel<math>dk,dv,dmodel</math>차원으로 project되기 때문입니다. 논문에서는 dk=dv=dmodel/h<math>dk=dv=dmodel/h</math>를 사용했는데 꼭 dk<math>dk</math>와 dv<math>dv</math>가 같을 필요는 없습니다.이렇게 project된 key, value, query들은 병렬적으로 attention function을 거쳐 dv<math>dv</math>dimension output 값으로 나오게 됩니다.그 다음 여러 개의 head<math>head</math>를 concatenate하고 다시 projection을 수행합니다. 그래서 최종적인 dmodel<math>dmodel</math> dimension output 값이 나오게 되는거죠.각각의 과정에서 dimension을 표현하면 아래와 같습니다.*dQ,dK,dV<math>dQ,dK,dV</math>는 각각 query, key, value 개수Self-Attentionencoder self-attention layerkey, value, query들은 모두 encoder의 이전 layer의 output에서 옵니다. 따라서 이전 layer의 모든 position에 attention을 줄 수 있습니다. 만약 첫번째 layer라면 positional encoding이 더해진 input embedding이 됩니다.decoder self-attention layerencoder와 비슷하게 decoder에서도 self-attention을 줄 수 있습니다. 하지만 i<math>i</math>번째 output을 다시 i+1<math>i+1</math>번째 input으로 사용하는 auto-regressive한 특성을 유지하기 위해 , masking out된 scaled dot-product attention을 적용했습니다.masking out이 됐다는 것은 i<math>i</math>번째 position에 대한 attention을 얻을 때, i<math>i</math>번째 이후에 있는 모든 position은 Attention(Q,K,V)=softmax(QKT√dk)V<math>Attention(Q,K,V)=softmax(QKTdk)V</math>에서 softmax의 input 값을 −∞<math>−∞</math>로 설정한 것입니다. 이렇게 한다면, i<math>i</math>번째 이후에 있는 position에 attention을 주는 경우가 없겠죠.Encoder-Decoder Attention Layerquery들은 이전 decoder layer에서 오고 key와 value들은 encoder의 output에서 오게 됩니다. 그래서 decoder의 모든 position에서 input sequence 즉, encoder output의 모든 position에 attention을 줄 수 있게 됩니다.query가 decoder layer의 output인 이유는 query라는 것이 조건에 해당하기 때문입니다. 좀 더 풀어서 설명하면, ‘지금 decoder에서 이런 값이 나왔는데 무엇이 output이 돼야 할까?’가 query인 것이죠.이때 query는 이미 이전 layer에서 masking out됐으므로, i번째 position까지만 attention을 얻게 됩니다.이 같은 과정은 sequence-to-sequence의 전형적인 encoder-decoder mechanisms를 따라한 것입니다.*모든 position에서 attention을 줄 수 있다는 게 이해가 안되면 링크를 참고하시기 바랍니다.Position-wise Feed-Forward Networksencoder와 decoder의 각각의 layer는 아래와 같은 fully connected feed-forward network를 포함하고 있습니다.position 마다, 즉 개별 단어마다 적용되기 때문에 position-wise입니다. network는 두 번의 linear transformation과 activation function ReLU로 이루어져 있습니다.FFN(x)=max(0,xW1+b1)W2+b2x<math>x</math>에 linear transformation을 적용한 뒤, ReLU(max(0,z))<math>ReLU(max(0,z))</math>를 거쳐 다시 한번 linear transformation을 적용합니다.이때 각각의 position마다 같은 parameter W,b<math>W,b</math>를 사용하지만, layer가 달라지면 다른 parameter를 사용합니다.kernel size가 1이고 channel이 layer인 convolution을 두 번 수행한 것으로도 위 과정을 이해할 수 있습니다.Positional Encodingtransfomer는 recurrence도 아니고 convolution도 아니기 때문에, 단어의sequence를 이용하기 위해서는 단어의 position에 대한 정보를 추가해줄 필요가 있었습니다.그래서 encoder와 decoder의 input embedding에 positional encoding을 더해줬습니다.positional encoding은 dmodel<math>dmodel</math>(embedding 차원)과 같은 차원을 갖기 때문에 positional encoding vector와 embedding vector는 더해질 수 있습니다.논문에서는 다른 *frequency를 가지는 sine과 cosine 함수를 이용했습니다.*주어진 구간내에서 완료되는 cycle의 개수PE(pos,2i)=sin(pos/100002i/dmodel)<math>PE(pos,2i)=sin(pos/100002i/dmodel)</math>PE(pos,2i+1)=cos(pos/100002i/dmodel)<math>PE(pos,2i+1)=cos(pos/100002i/dmodel)</math>pos<math>pos</math>는 position ,i<math>i</math>는 dimension 이고 주기가 100002i/dmodel⋅2π<math>100002i/dmodel⋅2π</math>인 삼각 함수입니다. 즉, pos<math>pos</math>는 sequence에서 단어의 위치이고 해당 단어는 i<math>i</math>에 0부터 dmodel2<math>dmodel2</math>까지를 대입해 dmodel<math>dmodel</math>차원의 positional encoding vector를 얻게 됩니다. k=2i+1<math>k=2i+1</math>일 때는 cosine 함수를, k=2i<math>k=2i</math>일 때는 sine 함수를 이용합니다. 이렇게 positional encoding vector를 pos<math>pos</math>마다 구한다면 비록 같은 column이라고 할지라도 pos<math>pos</math>가 다르다면 다른 값을 가지게 됩니다. 즉, pos<math>pos</math>마다 다른 pos<math>pos</math>와 구분되는 positional encoding 값을 얻게 되는 것입니다.PEpos=[cos(pos/1),sin(pos/100002/dmodel),cos(pos/10000)2/dmodel,...,sin(pos/10000)]<math>PEpos=[cos(pos/1),sin(pos/100002/dmodel),cos(pos/10000)2/dmodel,...,sin(pos/10000)]</math>이때 PEpos+k<math>PEpos+k</math>는 PEpos<math>PEpos</math>의 linear function으로 나타낼 수 있습니다. 표기를 간단히 하기 위해 c=100002idmodel<math>c=100002idmodel</math>라고 해봅시다. sin(a+b)=sin(a)cos(b)+cos(a)sin(b)<math>sin(a+b)=sin(a)cos(b)+cos(a)sin(b)</math>이고 cos(a+b)=cos(a)cos(b)−sin(a)sin(b)<math>cos(a+b)=cos(a)cos(b)−sin(a)sin(b)</math> 이므로 다음이 성립합니다.PE(pos,2i)=sin(posc)<math>PE(pos,2i)=sin(posc)</math>PE(pos,2i+1)=cos(posc)<math>PE(pos,2i+1)=cos(posc)</math>PE(pos+k,2i)=sin(pos+kc)=sin(posc)cos(kc)+cos(posc)sin(kc)=PE(pos,2i)cos(kc)+cos(posc)sin(kc)<math>PE(pos+k,2i)=sin(pos+kc)=sin(posc)cos(kc)+cos(posc)sin(kc)=PE(pos,2i)cos(kc)+cos(posc)sin(kc)</math>PE(pos+k,2i+1)=cos(pos+kc)=cos(posc)cos(kc)−sin(posc)sin(kc)=PE(pos,2i+1)cos(kc)−sin(posc)sin(kc)<math>PE(pos+k,2i+1)=cos(pos+kc)=cos(posc)cos(kc)−sin(posc)sin(kc)=PE(pos,2i+1)cos(kc)−sin(posc)sin(kc)</math>이런 성질 때문에 model이 relative position에 의해 attention하는 것을 더 쉽게 배울 수 있습니다.논문에서는 학습된 positional embedding 대신 sinusoidal version을 선택했습니다. 만약 학습된 positional embedding을 사용할 경우 training보다 더 긴 sequence가 inference시에 입력으로 들어온다면 문제가 되지만 sinusoidal의 경우 constant하기 때문에 문제가 되지 않습니다. 그냥 좀 더 많은 값을 계산하기만 하면 되는거죠.Trainingtraining에 사용된 기법들을 알아보겠습니다.Optimizer많이 쓰이는 Adam optimizer를 사용했습니다.특이한 점은 learning rate를 training동안 고정시키지 않고 다음 식에 따라 변화시켰다는 것입니다.lrate=d−0.5model⋅min(step_num−0.5,step_num⋅warmup_steps−1.5)warmup_step<math>warmup_step</math>까지는 linear하게 learning rate를 증가시키다가, warmup_step<math>warmup_step</math> 이후에는 step_num<math>step_num</math>의 inverse square root에 비례하도록 감소시킵니다.이렇게 하는 이유는 처음에는 학습이 잘 되지 않은 상태이므로 learning rate를 빠르게 증가시켜 변화를 크게 주다가, 학습이 꽤 됐을 시점에 learning rate를 천천히 감소시켜 변화를 작게 주기 위해서입니다.RegularizationResidual ConnectionIdentity Mappings in Deep Residual Networks라는 논문에서 제시된 방법이고, 아래의 수식이 residual connection을 나타낸 것입니다.yl=h(xl)+F(xl,Wl)<math>yl=h(xl)+F(xl,Wl)</math>xl+1=f(yl)<math>xl+1=f(yl)</math>이때 h(xl)=xl<math>h(xl)=xl</math>입니다. 논문 제목에서 나온 것처럼 identity mapping을 해주는 것이죠.특정한 위치에서의 xL<math>xL</math>을 다음과 같이 xl<math>xl</math>과 residual 함수의 합으로 표시할 수 있습니다.x2=x1+F(x1,W1)<math>x2=x1+F(x1,W1)</math>x3=x2+F(x2,W2)=x1+F(x1,W1)+F(x2,W2)<math>x3=x2+F(x2,W2)=x1+F(x1,W1)+F(x2,W2)</math>xL=xl+L−1∑i=1F(xi,Wi)<math>xL=xl+∑i=1L−1F(xi,Wi)</math>그리고 미분을 한다면 다음과 같이 됩니다.σϵσxl=σϵσxLσxLσxl=σϵσxL(1+σσxlL−1∑i=1F(xi,Wi))<math>σϵσxl=σϵσxLσxLσxl=σϵσxL(1+σσxl∑i=1L−1F(xi,Wi))</math>이때, σϵσxL<math>σϵσxL</math>은 상위 layer의 gradient 값이 변하지 않고 그대로 하위 layer에 전달되는 것을 보여줍니다. 즉, layer를 거칠수록 gradient가 사라지는 vanishing gradient 문제를 완화해주는 것입니다.또한 forward path나 backward path를 간단하게 표현할 수 있게 됩니다.Layer NormalizationLayer Normalization이라는 논문에서 제시된 방법입니다.μl=1HH∑i=1ali<math>μl=1H∑i=1Hail</math>σl= ⎷1HH∑i=1(ali−μl)2<math>σl=1H∑i=1H(ail−μl)2</math>같은 layer에 있는 모든 hidden unit은 동일한 μ<math>μ</math>와 σ<math>σ</math>를 공유합니다.그리고 현재 input xt<math>xt</math>, 이전의 hidden state ht−1<math>ht−1</math>, at=Whhht−1+Wxhxt<math>at=Whhht−1+Wxhxt</math>, parameter g,b<math>g,b</math>가 있을 때 다음과 같이 normalization을 해줍니다.ht=f[gσt⊙(at−μt)+b]<math>ht=f[gσt⊙(at−μt)+b]</math>이렇게 한다면, gradient가 exploding하거나 vanishing하는 문제를 완화시키고 gradient 값이 안정적인 값을 가짐로 더 빨리 학습을 시킬 수 있습니다.(논문에서 recurrent를 기준으로 설명했으므로 이에 따랐습니다.)DropoutDropout: a simple way to prevent neural networks from overfitting라는 논문에서 제시된 방법입니다.dropout이라는 용어는 neural network에서 unit들을 dropout하는 것을 가리킵니다. 즉, 해당 unit을 network에서 일시적으로 제거하는 것입니다. 그래서 다른 unit과의 모든 connection이 사라지게 됩니다. 어떤 unit을 dropout할지는 random하게 정합니다.dropout은 training data에 overfitting되는 문제를 어느정도 막아줍니다. dropout된 unit들은 training되지 않는 것이니 training data에 값이 조정되지 않기 때문입니다.Label SmoothingRethinking the inception architecture for computer vision라는 논문에서 제시된 방법입니다.training동안 실제 정답인 label의 logit은 다른 logit보다 훨씬 큰 값을 갖게 됩니다. 이렇게 해서 model이 주어진 input x<math>x</math>에 대한 label y<math>y</math>를 맞추는 것이죠.하지만 이렇게 된다면 문제가 발생합니다. overfitting될 수도 있고 가장 큰 logit을 가지는 것과 나머지 사이의 차이를 점점 크게 만들어버립니다. 결국 model이 다른 data에 적응하는 능력을 감소시킵니다.model이 덜 confident하게 만들기 위해, label distribution q(k∣x)=δk,y<math>q(k∣x)=δk,y</math>를 (k가 y일 경우 1, 나머지는 0) 다음과 같이 대체할 수 있습니다.q′(k|x)=(1−ϵ)δk,y+ϵu(k)<math>q′(k|x)=(1−ϵ)δk,y+ϵu(k)</math>각각 label에 대한 분포 u(k)<math>u(k)</math>, smooting parameter ϵ<math>ϵ</math>입니다. 위와 같다면, k=y인 경우에도 model은 p(y∣x)=1<math>p(y∣x)=1</math>이 아니라 p(y∣x)=(1−ϵ)<math>p(y∣x)=(1−ϵ)</math>이 되겠죠. 100%의 확신이 아닌 그보다 덜한 확신을 하게 되는 것입니다.Conclusiontransformer는 recurrence를 이용하지 않고도 빠르고 정확하게 sequential data를 처리할 수 있는 model로 제시되었습니다.여러가지 기법이 사용됐지만, 가장 핵심적인 것은 encoder와 decoder에서 attention을 통해 query와 가장 밀접한 연관성을 가지는 value를 강조할 수 있고 병렬화가 가능해진 것입니다.Referencehttp://www.whydsp.org/280http://mlexplained.com/2017/12/29/attention-is-all-you-need-explained/http://openresearch.ai/t/identity-mappings-in-deep-residual-networks/47https://m.blog.naver.com/PostView.nhn?blogId=laonple&logNo=220793640991&proxyReferer=https://www.google.co.kr/https://www.researchgate.net/figure/Sample-of-a-feed-forward-neural-network_fig1_234055177https://arxiv.org/abs/1603.05027https://arxiv.org/abs/1607.06450http://jmlr.org/papers/volume15/srivastava14a.old/srivastava14a.pdfhttps://arxiv.org/pdf/1512.00567.pdf
조회수 1447

웹 서비스 개발자가 APM을 사용해야 하는 이유

백엔드 서비스를 만들고 운영하는 개발자라면, 지금 바로 APM 서비스를 사용해 보세요. 와탭의 APM은 국내 수많은 Enterprise 기업에서 자사의 서비스를 분석하기 위해 사용되고 있으며 많은 효과를 보고 있습니다. 북미에서는 이미 수많은 스타트업이 DevOps의 기본 도구로 APM을 선택하고 있습니다. APM은 원래 대규모 서비스를 운영하는 분들이 전문적으로 사용하고 있었지만 최근 트렌드는 운영자에서 개발자로 이동하고 있는 서비스 이기도 합니다. 특히 와탭의 APM은 개발자 분들을 위한 스택 분석 기능이 있습니다. 개발자라면 와탭 APM 서비스가 제공하는 아래의 3가지 스택 분석 기능을 꼭 사용해 보세요. 유니크 스택탑 스택액티브 스택많은 개발자들이 자신이 만든 서비스가 어떻게 동작하는지 또는 웹 서비스에 어떤 영향을 주고 있는지 알지 못합니다. 하지만 와탭 애플리케이션 성능 모니터링(APM) 서비스를 사용하면 메소드가 애플리케이션에서 어떻게 사용되는지 얼마나 사용되는지 알수 있습니다. 와탭은 다른 APM 서비스와 다르게 10초에 한번씩 활동중인 트랜잭션을 검사하여 트랜잭션에 콜스택정보를 저장하고 있습니다. 그리고 이렇게 저장된 스택정보를 가지고 3가지 형태로 가공하여 보여주는데, 이 것이 유니크 스택 / 탑 스택 / 액티브 스택입니다. 먼저 유니크 스택은 가장 많이 사용된 스택 정보를 보여주는 방식입니다. 트랜잭션에서 실행되고 있는 메소드가 A 이고 이를 호출한 메소드가 모두 일치하는 스택을 유니크 스택이라고 합니다.1. A() ← C()2. A() ← C()3. B() ← D()4. B() ← E()5. B() ← F()위와 같은 경유 유니크 스택은 아래와 같이 통계를 내어 보여 줍니다. 40% A()    A()    C()20% B()    B()    D()20% B()    B()    E()20% B()    B()    F()이렇게 콜스택 정보 전체를 기준으로 분석을 하는 경우에는 성능에 영향을 주는 기능 단위의 분석이 가능합니다. 하지만 성능에 영향을 많이 주는 메소드를 알고 싶을 때가 있습니다. 이런 경우에 사용하는 것이 탑 스택 분석입니다. 아까와 같은 상황을 예를 들겠습니다.1. A() ← C()2. A() ← C()3. B() ← D()4. B() ← E()5. B() ← F()이런 상황에서 탑 스택 분석은 아래와 같이 가장 많이 사용되느 메소드를 알려줍니다. 60% B()    33% D()    33% E()    33% F()40% A()    100% C()유니크 스택에서는 A() ← C() 가 가장 많이 사용된 스택이라는 것을 알려주지만 탑 스택에서는 B() 메소드가 가장 많이 사용된 메소드라는 것을 알려줍니다. 이 두가지 내용을 통해 가장 많이 사용되는 메소드의 집합가 가장 많이 호출되는 메소드를 알아 낼 수 있습니다. 만일 서비스를 메소드 단위에서 개선하고 싶다면 이 정보를 기반으로 개선 작업을 진행하면 많은 도움을 받을 수 있습니다. 위에 화면에서 메소드를 선택하면 메소드를 호출한 스택들의 정보를 확인 할 수 있습니다. 마지막으로 액티브 스택입니다. 액티브 스택은 WAS 서버와 URL 그리고 발생 시간을 기준으로 저장된 콜스택의 정보를 보여줍니다. 서비스 성능이 떨어진 시간대의 콜스택 정보를 확인 함으로써 메소드 구간에서의 튜닝 정보를 제공합니다. 액티브 스택은 핵심 기능이 하나더 있습니다. 바로 서비스가 동작하는 스탭정보에 통합됨으로써 문제를 바로 확인할 수 있는 기능입니다. 와탭의 APM에서만 분석가능한 기능이며 특허로 등록되어 있습니다. 액티브 스택은 통계 관점이 아니라 실행 관점에서 문제를 바라보고 있습니다. 우리가 만든 웹 어플리케이션을 고객에 입장에서 보면 아래와 같이 동작합니다. 고객 → 웹 서비스 요청 → 서버 접속 → 서비스 접속 → 애플리케이션1 → 메소드 1 → DB 1접근 → Query 1 → Query 2 → 메소드 2 → 파일 접근 → 메소드 3 → 결과 취합 → WAS 통과 → 웹 서비스 결과 반환 일반적으로 애플리케이션 모니터링은 이런 상항을 아래와 같이 보여줍니다. 서비스 접속 → Query 1 → Query 2 → 파일 접근 → 트랜잭션 종료와탭의 애플리케이션 모니터링은 수집된 콜 스택 정보를 기반으로 아래와 같이 보여줍니다.  서비스 접속 → Query 1 → 메소드 2 → Query 2 → 파일 접근 →메소드 3 → 트랜잭션 종료위에 상황은 트랜잭션에서 메소드 2와 메소드 3이 수집된 경우에 트랜잭션의 스탭의 실행시간에 맞쳐서 정보를 재구성하는 것을 보여주고 있습니다. 이렇게 확인하게 된다면 메소드에서 발생하는 성능 문제를 확인 할 수 있습니다. APM 서비스는 와탭 / 뉴렐렉 / 데이터 독과 같은 서비스들을 통해서 2주에서 한달간 언제든 무료로 사용가능합니다. 다만 메소드에 대한 분석 기능은 와탭의 APM에서만 제공하는 기능들이 많습니다. 개발자라면 한번쯤 와탭의 APM 서비스를 통해 자신이 만들고 운영하고 있는 서비스에서 가장 많이 사용되는 메소드가 무엇인지 확인 해 보시기 바랍니다. Tip!! APM은 개발시에 사용하는 디버깅 도구라기 보다는 막대한 량의 트랜잭션이 발생하는 운영과정에서 사용되는 도구입니다. 트랜잭션 자체가 적다면 원하는 데이타가 안 나올 수 도 있습니다. 와탭으로 모니터링 하기 - 목차 바로가기#와탭랩스 #개발자 #개발팀 #인사이트 #경험공유 #일지 #서비스소개
조회수 5274

100일 간의 챗봇 디자인 실패기-1편

디자인 학도로서 4년 넘게 학교에서 UI/UX를 공부했다. 또래에 비해 학교를 오래 다녔으며 해당 분야에 대한 관심도 남달랐거니와, 심지어는 UI 디자인 소프트웨어를 만드는 회사에 다닌 경험이 있는 만큼 실무적으로는 아직 많이 부족할 지라도 이론만큼은 이제 어느 정도 자신이 있다고 생각했다.그런데 대체 이 녀석은 또 뭐지. 챗봇이라니.   지난 1월, 새로운 사업을 결심한 팀원들과 사업구상을 하며 챗봇이라는 아이템을 마주하게 되었다. 우리가 챗봇에 대한 무한 신뢰를 했던 이유는 한 가지였다. '일상적 편리함에 있어 메신저만 한 것은 없다'는 것.한때 SNS에 화제가 되었던 '엄마의 메모장'챗봇은 이미 한 차례 미국 본토를 강타하고 조금씩 국내 시장에 진입하고 있던 상황이었고, 새로운 기술에 호기심을 가진 우리 팀은 챗봇에 희망을 품고 해당 분야에 대한 학습을 진행하기 시작했다.  자연어 처리, 형태소 분석 등 기술적인 부분들을 개발팀원들이 검토하고 있는 동안 디자이너로서 챗봇에 대한 리서치를 시작하려는 찰나, 아무리 검색을 해도 평소에 비해 아무것도 나오지 않는 매우 당황스러운 시추에이션이 발생했다.  일반적인 웹이나 어플리케이션 기획의 경우 이미 레퍼런스 삼을 만한 사례가 충분히 있었고, 설령 국내 자료 중에 없다고 한들 영어로 조금만 검색해보면 해외 자료들을 금세 찾을 수 있었다. 그러나 챗봇은 상황이 달랐다. 영어권 챗봇 또한 이제 막 성장하는 단계인 만큼 해외 챗봇 사례 중에서도 이렇다 할 벤치마킹 대상을 찾는 것이 쉽지 않았다.우선 우리가 만들고자 한 챗봇은 '일정' 관련 봇이었다. '자연스러운 대화를 이해하여 사용자의 일정 입력을 돕는 챗봇이 있다면 어떨까'라는 것이 우리의 가설이었다.괜찮지 않을까?지난 4년 간 학교에서 배운 과정대로라면 브레인스토밍, AEIOU, 컨셉맵핑, 유저 인터뷰, 포커스그룹 인터뷰 등에 걸친 여러 기법들을 통해 디자인을 시작해야 했다. 하지만 현 상황은 우리가 대체 정확히 무엇을 만드는 것인지에 대한 정의조차 내려지지 않은 상태였다.이 챗봇의 기능은 무엇이며, 타겟은 누구이고, 어떻게 구현될 수 있는 걸까. 너무나 생소한 분야였던 만큼 우선 첫 한 달 동안은 챗봇 관련 국내외 글을 꾸준히 읽기 시작했다. 4차 산업혁명, 완전자동화 등 챗봇에 대한 여러 이론적인(쓸데없는) 내용들이 있었지만 그중에서도 유독 눈에 띄는 글이 하나 있었다.https://chatbotsmagazine.com/bots-hype-or-glory-656f4d614efb#.g6s68jvkgI was an undercover-bot for 2 months. Here is what I learned.Bots: hype or glory?chatbotsmagazine.com 해당 글의 주요 내용을 번역 및 요약하자면 이러하다.- UX 매니아로서, 그 수많은 챗봇 중에 쓸만한 게 없더라.- 그래서 챗봇을 개발하기 전 직접 실험을 해보기로 했다.- 약 2달간 직접 서비스 내에 사용자를 돕는 봇인'척' 했다(틈틈이 사람이라고 힌트는 줬다).- 우리 서비스를 사용하는 사용자들은 컴퓨터나 기술을 좋아하는 사람들이 아닌, 일반인이었다.- 봇이 아닌 사람이 실시간으로 응대한다고 인지는 시켜주었지만 사실 신경 쓰는 사람은 없었다.본문은 '아직 챗봇은 기술적으로도, 시대적으로도 준비가 되지 않았다'로 최종 결론을 지으며 마무리되는데, 이미 챗봇에 콩깍지가 씌여 있던 나에게는 그저 앞부분의 내용이 중요할 뿐이었다."사람이 챗봇인 척 테스트를 한다고?"서비스 기획 및 디자인에 갈피를 못 잡고 있었던 우리 팀은 긴말할 것 없이 곧바로 실행에 들어갔다. 대학교 게시판에 피실험자 알바 구인 글을 올리고 약 30명의 캘린더 유저를 확보했다. 실험에 대한 대략적인 안내사항은 이러했다.1. 우리는 현재 일정 관련 챗봇을 만들기 위해 수동으로 실험 중이며, 주 기능은 '일정등록' 이다.2. 구글 또는 네이버 캘린더 작성 권한을 사용자로부터 공유받아 일정을 입력한다(캘린더 공유 기능 활용).3. 사용자는 최소 주 1회 이상 카톡을 통해 캘린더에 일정을 입력하여야 한다(페이 지급 조건).4. 사용자는 챗봇에게 일정 등록뿐만이 아닌 일정 관련 어떠한 요청도 할 수 있다.5. 이에 대한 예시로 문자/메일 분석, 공개 캘린더 추가, 키워드 일정 추천 등을 제시한다.6. 대화의 형태는 정해져 있지 않으며 원하는 어떠한 형태(말투, 축약어, 신조어)로든 가능하다.응대에 사용한 옐로아이디 관리자 툴지금은 플러스친구로 업데이트된 카카오톡 옐로아이디 관리자 툴을 활용하여 사용자들과 대화(채팅)를 진행했다. 데스크탑용 웹 인터페이스를 통해 대화를 입력할 수 있었기에 입력 속도는 빨랐지만 사용자가 언제 무슨 말을 걸어올지 도저히 예측이 불가능했다. 팀 내 개발자들이 자연어 처리에 대한 공부를 지속하는 동안 운영을 맡은 팀원과 함께 2명이서 상시 대기하며 사용자들의 요청에 응대했다.운영 초기 우리가 기대했던 이상적인 요청들은 이러했다.하지만 현실은 아래와 같았다.목적어 및 각각의 형태소가 매우 명료하고 명확한, 챗봇 개발 시 자동화가 가능한 텍스트들을 기대하고 있었지만 실상 대부분의 요청은 실제 사람이 개입하지 않는 이상 과연 처리가 가능할까 싶은 내용들이 태반이었다.텍스트 입력 시간도 사용자마다 다 제각각이었다. 아침 일과를 시작할 때 일정을 입력하는 사용자들이 있는 반면 하루를 정리하며 다음날 일정을 계획하는 사용자들도 있었다. 밥을 먹다가도, 샤워를 하다가도 옐로아이디 알람이 울리면 컴퓨터로 달려가 응답을 했다. 아무리 상시 대기를 한다 해도 잠은 자야 했기에 결국 자정부터 다음날 아침 8시까지는 옐로 아이디의 자동 응답기능을 활용하여 '잠시만 기다려주세요'를 출력하였다.(물론 잠시는 아니었지만)여러 시행착오를 거쳐 약 한 달 간의 기나긴 응대 끝에 실험이 종료되었고, 우리는 사용자들을 대상으로 설문 및 인터뷰를 진행하였다.우선 가장 중요하게 생각한 전체 캘린더 일정 입력률(데스크탑/모바일 캘린더를 포함한 모든 입력) 대비 카톡을 통한 일정 입력률은 약 절반 정도로 확인되었다.카톡을 통한 일정 입력률 / 전체 일정 입력률  = 51%이와 더불어 '카톡을 통해 캘린더에 일정을 등록하는 방식에 대해 불편한 점'을 질문한 결과1. 즉각적이지 않은, 늦은 응답 - 40%2. 개인 일정 정보 유출에 대한 불안 - 20%3. 익숙하지 않은 카톡 입력의 불편함 - 13.3%순으로 응답함을 확인하였다.생각보다 나쁘지 않은 결과였다.비록 입력 된 내용들을 정형화 하기가 쉽지는 않았지만, 기대했던 것에 비해 카톡을 통한 입력률이 높은 편이었고 가장 큰 문제점으로 지적된 '늦은 응답'과 '개인 정보 유출'은 챗봇 개발을 통해 개선할 수 있을 것으로 기대했다. 자동화를 통해 즉각적으로 응답할 수 있을뿐더러 사람의 개입을 없애 개인 일정 정보 유출을 방지할 수 있을 것이라는 판단 하에 챗봇 개발을 진행하였다.그렇게 한달 간 입력받은 텍스트 데이터를 활용, 약 2주 간의 개발 끝에 간단한 일정 등록 기능을 갖춘 일정 관리 챗봇, 린더봇이 탄생하게 되었다.https://www.youtube.com/watch?v=zSRYRYfzTFo2편에서 계속...#히든트랙 #챗봇 #기술기업 #개발자 #개발팀 #인사이트 #경험공유
조회수 1065

[ADC] 제 2회 에이스프로젝트 사내 컨퍼런스 'Change-up'

안녕하세요, 공유를 중시하는 야구게임 전문 개발사 에이스프로젝트입니다.지난 1회 ADC에 이어,에이스프로젝트만의 컨퍼런스인 두 번째 ADC(Aceproject Diversity Conference) 가 성공적으로 개최되었습니다!(지난 ADC는 아래 링크를 참고하세요!)https://blog.naver.com/aceproject/221000991234이번 ADC는 야구게임 전문 개발사인 에이스프로젝트 정체성에 맞게‘Change-up’(야구 용어)에서 주제의 영감을 받았답니다.'Change-up'은 여러 가지 의미를 내포하고 있는데요. 1. (기어를) 올리다2. (눈에 띄는) 변화3. 체인지업 (야구 용어)에이스프로젝트에서 변화한 모습, 실패를 딛고 성장한 경험까지 자신의 이야기를 할 수 있는 자리를 만들고자 'Change-up'이라는 주제를 선정했습니다.이번 ADC에서는 총 11명의 발표자들이 구성원들과 의미 있는 컨퍼런스를 위해 자원했답니다.열정적으로 발표해준 멋진 발표자들 덕분에 2회 ADC도 훌륭하게 진행할 수 있었습니다!장난끼 많은 팀 디렉터가 말하는 진지한 QA 팀의 업무 이야기부터초창기 멤버의 컴프매 1.0.0 비하인드스토리, 이제 막 육아휴직을 마치고 돌아온 워킹맘의 이야기까지.개발자, 기획자, 그래픽, QA, 프론트까지 모든 팀의 참여로 훨씬 더 풍부한 컨퍼런스가 될 수 있었어요.발표는 사내 카페테리아와 다저스 회의실, 그리고 잠실 회의실.듣고 싶은 세션을 자유롭게 선택하여 들을 수 있도록 여러 장소에서 진행했습니다.다른 장소에서 진행된 세션이 궁금하다면????모든 세션을 다시 들을 수 있도록 영상 녹화를 했답니다. 사내 공유 툴을 활용해 ADC 세션 영상을 에이스인 모두에게 공유하고 있어요.모두가 발표를 경청하는 아름다운 모습!바쁜 시간을 쪼개 발표를 준비해준 발표자들을 위해 소소하게 마련한 특전도 있었어요!지난번과 마찬가지로 챔피언스필드를 발표자 대기실로 세팅하고 간단한 다과와 소정의 선물을 준비했답니다.(발표할 때 떨지 마시라고 우황청심환도 같이 준비하는 센스!)제2회 ADC 기념품으로 ‘Change-up’이 적힌 에코백을 에이스인 모두에게 선물하기도 했어요.매 발표마다 청중들 모두가 귀를 기울이고, 적극적으로 Q&A 하는 모습도 볼 수 있었습니다.발표자들이 청중의 피드백을 통해 좀 더 성장할 수 있도록 ‘발표 만족도 설문’도 실시했는데요.청중들이 객관적으로 평가하며 성심성의껏 피드백도 남겨주었답니다.열심히 발표 만족도 설문을 적는 모습!만족도 설문 작성자에게 추첨을 통해 소정의 선물을 주는 시간도 가졌어요!또한 만족도 설문 최우수자인 ‘에이스 스피커’를 선정하여 국내 최대 게임 쇼인 ‘지스타 패키지’ 상품(KTX 왕복 1인+호텔 숙박 2박+지스타 입장권)을 증정했습니다.이번 에이스 스피커는 다소 복잡할 수 있는 디지털 마케팅에 관한 내용을적절한 예시와 함께 쉽고 조리 있게 잘 말해준 기획팀의 ‘H 님’! (무려 4점 만점에 3.9점을 받았답니다! 거의 모든 사람들이 100% 만족한 발표!)수고했어요, 정말 축하해요!! (짝짝)ADC가 끝난 후, 단란한 분위기의 에이스 파티와 함께 행사를 마무리했어요!에이스 파티에서는 발표자에 대한 격려와 응원은 물론, 발표 내용에 대한 좀 더 심도 있는 논의까지다양한 이야기를 나누었답니다! (훈훈)
조회수 1329

통제의 세상에서 꽃을 피울 수 있을까

1년 전 이맘때만 하더라도 나는 국내에서 꽤 잘 나간다는 대기업에서 근무를 하고 있었다. 나름 내부에서 평가도 좋게 받고 있다고 생각했고, 나름은 남들이 부러워할만한 연봉을 받으며 직장을 다니고 있었다. 회사 내에서 나의 목표도 설정해놓고 한 걸음씩 한 걸음씩 그것에 다가가고 있는 느낌도 받고 있었다.근로계약서상 근로시간은 아침 9시부터였지만 업무시간엔 업무를 해야 한다며 8시 정도에 회의를 시작했다. 아침 5시가 조금 넘으면 일어나서 7시가 조금 넘은 시각에 회사에 도착했다. 회의시간은 업무에 관하여 말할 수 있는 몇 안 되는 시간이지만 내 몫만 얘기한 후에는 말하면 안 된다. 정해진 회의 시간을 넘겨버리게 되고 혹여나 버릇없게 보이면 안 되기 때문이다. 주말에는 회사에서 나를 내버려두면 매일 놀기만 할 것으로 생각했는지 끊임없이 사이버 교육에 나를 입과시키고 특정 자격증들을 취득할 것을 요구했다. 회사에서 시키는 것이니깐 이왕 할 거 열심히 하자라는 생각으로 착실히 공부하고 좋은 성적을 취득해나갔다. 근로계약서에 일하다 졸리면 잠을 잔다라는 계약조건은 없기 때문에 무척 피곤하여 잠이 쏟아지면 화장실로 가서 변기 위에서 잠을 자곤 했다. 피곤해서 눈을 감고 있으면 누군가가 계속 내 등을 밀며 앞으로 걸어가고 있는 기분의 나날이었다.‘나의 시간에 대해 조금만 더 나에게 통제력이 주어진다면, 자율성이 주어진다면 나 자신과 회사에 훨씬 도움이 될 만한 것들에 대하여 준비할 수 있는데!’자연스럽게 입사 초기에 비하여 내부 성적은 떨어져 갔다. 최상위권을 유지했던 성적은 커트라인 부근에서 놀고 있었다. 점점 회사에 대한 불만은 늘어갔다. 무엇보다 가장 큰 불만은 나의 시간 중 압도적으로 큰 부분을 차지하고 있는 주중 업무시간이었다. 대기업의 특징은 이미 모든 업무의 매뉴얼화가 상당 부분 이루어졌다는 점이다. 가끔은 다른 생각을 하면서 일을 해도 될 정도로 업무 시간 중에 고민하고 문제 해결을 해나가는 시간이 없었다. 항상 주중엔 회사에서 나에게 부여한 일을 하고, 그러면서 피곤해진 몸을 이끌고 주말에 나의 성장을 준비하는 과정의 연속이었다. 글을 읽다 보면 어느 정도 눈치를 챘겠지만, 나는 결국 퇴사하였다. 일을 하면서 동시에 성장하는 경험을 해보고 싶었다. 일과 배움이 따로 떨어져 있는 것은 체력적으로나 정신적으로 경험하고 싶지 않은 것이었다. 대부분의 기업의 업무가 매뉴얼화되어 있는 마당에 또다시 일정 규모 이상의 기업을 가고 싶지 않았다.퇴사를 한 후에 스타트업에 합류한 지 이제 10개월 정도 되었는데, 어쩔 수 없이 양쪽을 비교해보게 된다. 지금도 내가 퇴사한 회사는 무척이나 잘 나가고 있다. 당연한 얘기지만 나 같은 사람 한 명이 퇴사하여도 회사에는 아무런 영향이 없다. 누군가가 매우 빠른 속도로 나의 업무를 대체했을 것이다. 그와 나는 같은 매뉴얼을 보고 일을 했기 때문에.  현재 일하고 있는 스타트업은 어떨까. 그에 앞서, 난 이 글이 결코 ‘스타트업이 만능이자 최고’라는 식으로 읽히지 않았으면 좋겠다. 다만 너무나 큰 조직에 잠시나마 몸을 담으면서 느꼈던 여러 아쉬움을 해결할 수 있는 열쇠를 스타트업이라는 작은 조직에서 찾을 수 있었고, 이러한 소중한 가치가 훼손되지 않고 널리 전파되었으면 하는 마음에 조심스럽게 적고 있는 중이다.이곳에서 일을 하며 느낀 가장 큰 차이점은 구성원들이 나에 대해 보장해주는 자율성이다. 일을 하다가 졸음이 와서 쇼파에서 자거나 카페에서 노트북으로 일을 한다고 하더라도 이에 대하여 제한을 두는 것이 전혀 없다. 기본적으로 나를 포함한 구성원들이 서로에 대한 신뢰에 기반한 업무 환경 속에 지내고 있다. 이러한 신뢰가 밑받침되어 있다 보니 회의나 논의를 진행할 때 감정이 배제될 수 있다. 격렬하고 진지하고 깊게 논의를 하고도 회의실 밖에서는 다시 아무렇지도 않게 업무에 복귀할 수 있는 것은 논리와 근거에 바탕을 둔 회의를 진행할 수 있어서가 아닐까. 평소에 본인이 무시하거나 감정이 있던 상대방으로부터 피드백을 받을 때, 그때부터 회의가 감정에 의하여 산으로 가는 경우 종종 경험하였다. 기본적으로 구성원에 대한 신뢰는 모든 일의 기본이다.이러한 분위기가 형성되니 그다음으로는 내가 변하기 시작했다. 스스로 팀에 도움이 되고 필요한 일을 찾아보기 시작하였고, 팀원의 도움이 필요한 경우에는 찾아가 설명을 하고 프로젝트 팀을 구성하기도 하였다. 자율은 책임을 수반하기 때문에 그동안 느낄 수 없었던 최고조의 책임감 속에 일하기 시작했다. 매일매일 진행 상황에 대하여 보고할 필요도 없었고, 모두가 자신의 일들이 워낙 많아 서로의 일에 대하여 큰 관심을 보일 수 없음에도 불구하고 ‘나의 일’이라는 책임감 아래 시간 가는 줄 모르고 끊임없이 고민하고 또 생각하였다. 나는 내가 전 직장에서 잃어버리고 말았던 자발성이 요즘 기업들이 자주 외치는 혁신과 도전의 핵심 열쇠라고 생각한다. 그렇다면 구성원들의 자발성을 고취시키기 위해서는 조직은 어떤 것을 제공해주어야 하는가? 앞에서 어느 정도 내가 생각하는 답을 언급한 대로, 일과 배움의 일치성이 높을수록 구성원의 자발성은 높아질 것이라 생각한다. 회사에서 일을 하면서 본인이 성장하고 있다는 느낌을 받게 되면 그것은 어느 정도까지의 연봉 갭까지도 커버할 수 있으며, 더 나아가 회사에 대한 로열티도 강하게 상승시킬 수 있다. 당연히 주중에 일을 하며 머리를 짜내며 성장했기 때문에 주말엔 잠시 몸과 마음에 휴식을 주며 마음 편히 독서도 하고 사람들도 만나는 선순환 구조까지 만들 수 있다.퇴사한 전 회사에서 갖게 된 고민이었던 일과 배움의 일치성을 높이기 위한 방안 중 하나를 현재 일하고 있는 회사에서 찾았다. 바로 배울만한 동료들이 주변에 가득한 것인데, 같은 목표를 바라보는 뛰어난 팀원들이 주변에 있으며 끊임없이 토론하고 의견을 주고받을 수 있는 환경이 조성되어 있으니 일을 열심히 하면서도 자극받고 내가 성장하고 있다는 느낌을 받고 있다. 실제로 개인의 성장이라 함은 누군가가 객관적 지표로 측정할 수 없기 때문에 결국 당사자의 자기 최면이 중요한 것인데, 이렇게 함으로써 능동적으로 업무에 참여할 수 있게 되었다. 그렇다면 주변에 같은 목표를 생각하고 있는 뛰어난 사람이 많기만 하면 일과 배움의 일치성이 높아지는 것인가? 앞에서 약간의 힌트가 있었지만 이때에는 자유로운 토론을 할 수 있는 분위기가 조성되어 있어야 한다. 이 점이 현재 우리나라의 대다수 큰 기업들의 고민이라 생각된다. 현재 우리나라 기업에는 뛰어난 분들이 많고 매년 대졸자 분들 중에서도 매우 능력 있는 분들이 합류하고 있다. 이는 즉, 사람의 문제는 아니라는 것이다. 도전과 창의 그리고 직원들의 근무기강 통제가 공존하고 있는 현재 우리나라 대부분 기업의 현실이다. 회의 시간에 회의와 보고의 구분이 애매한 것 또한 현실이다. 회의라기보단 보고하고 질책당하는 자리이며, 새로운 목표를 강제로 부여받는 자리이기도 하다. 심지어 창의적인 아이디어마저 한 사람당 몇 개씩 뽑아오라고 할당하기도 한다. 과도한 통제의 문제라고 생각한다. 구성원들의 업무에 관한 대화 행위 자체도 통제된 시간과 장소에서만 가능하며, 대부분 기업의 경우는 회의시간, 식사시간, 회식 시간으로 되어있다. 심지어 자유롭지도 않은 시간들이다. 매우 거창해 보이는 도전과 혁신이란 가치는 각 조직에서 유지하고 있는 통제력을 조금씩만 낮춰도 훨씬 가깝게 다가올 수 있다. 구성원들의 자발적인 참여를 막았던 조직의 통제는 구성원들에 대한 불신이 바탕이 되어있다. 따라서 통제와 혁신은 절대로 함께 할 수 없는 단어들이다. 즉, 현재 우리나라 기업들이 주장하는 통제 속의 혁신은 불가능하다는 것이다. 요즘 정부, 기업 가릴 것 없이 도전과 혁신을 외치고 있어서 들어도 아무런 감흥이 없는 정도의 단어가 되었고 점점 더 추상적인 것들이 되고 있다. 혁신을 위한 행동 수칙 10 계명을 만드는 회사도 있고, 회장님과 신입사원의 자유로운 대화시간이라는 통제된 시간을 만들어 통제된 모습을 사진으로 수백 장씩 담기도 한다. 모든 것의 매뉴얼화를 해오다 보니 도전과 혁신, 창의력마저도 매뉴얼화하여 쉽게 쉽게 생산하고 싶은 마음이 앞서 만들어진 결과물이다.이런 반문이 올 수 있다. 스타트업은 조직이 작기 때문에 이러한 통제 속에 업무를 할 필요성이 없지만, 일정 규모의 대기업이 되면 자율성의 부여는 곧 조직의 엄청난 혼란을 야기한다는 것이다. 하지만 내가 이야기하고 있는 ‘통제’와 ‘신뢰’, ‘자발성’ 은 거창한 것이 아니다. 수천 명, 수만 명이 일하는 대기업에서 명문화된 규정을 상당 부분 없애 구성원들에게 해방감을 안겨주자는 극단적인 글이 아니다. 최고의 효율성을 끌어내야 하는 대기업의 특성도 알고 있고, 이와 동시에 거대한 글로벌 기업들과의 경쟁을 위해 창의와 혁신 또한 끌어내야 하는 어려움도 알고 있다. 그러나 현재 우리 사회는 창의와 혁신이라는, 어찌 보면 이 지긋지긋한 단어 때문에 더 많은 통제를 생산하고 있다. 오히려 나는 우리의 생활 가까운 곳에서의 조그마한 변화를 통해 효율성을 해하지 않으며 일정 수준의 긴장된 창의와 혁신성을 이끌어낼 수 있다고 본다. ‘더 하고 싶은 말은 없나?’라는 말이 안 나오는 회의를 해보는 건 어떨까, 사전에 모든 의견을 조율한 후 보고하는 것이 아닌 다듬어지지 않는 주제로 논쟁을 펼치면서 시간 가는 줄 모르고 해보는 회의는 어떨까, 꼭 회의는 정해진 시간에 정해진 순서에 의해서 진행되고 끝나야만 하는 것일까. 사무실은 항상 조용해야만 하는 것일까. 부장님과 사원이 이야기를 할 때에 항상 부장님은 앉아있고 사원은 부장님의 책상 옆에 서서 공손하게 대답을 해야만 하는 것일까. 회식의 참여가 왜 회사에 대한 충성심일까. 왜 열정은 신입직원의 몫일까, 열정은 나이가 들면 식어야만 하는 것일까. 왜 내가 시키지 않으면 상대방은 일을 하지 않을 것이라 생각할까. 의외로 통제의 수준을 낮추는 것은 가까이에 있다. 우리도 모르게 너무 많은 것들이 매뉴얼화되고 통제되면서 갖고 있는 매우 좋은 인적 자원들 간의 시너지 효과가 잘 나고 있지 않은 것은 아닐까.분명 혁신과 도전이라는 꽃은 현재 우리나라 기업들과 정부에서 피워야 할 과제이다. 그리고 아직은 우리나라에는 많이 피어나지 못했다. 가만히 보고 있으면, 황폐한 땅에서 꽃을 피우기 위해 사용했던 재배법을 아직 사용 중인 것 같다. 끊임없이 만져대는 사람의 손길 속에서 과연 아무리 흙이 좋아도, 종자가 아무리 좋아도 아름다운 꽃을 피울 수 있을까. 도전과 혁신이라는 꽃을 피우기 위하여 우리 기업들이 잠시 통제의 끈을 적절히 내려놓는 것도 필요해 보인다.#어니스트펀드 #대기업경험 #스타트업 #스타트업일상 #인사이트
조회수 502

다 같은 엔젤투자자가 아니다?

다 같은 엔젤투자자가 아니다? 이전 포스팅에서 엔젤투자가 무엇인지에 대하여 알아보았는데요. 개인이 특별한 자격이나 실적 요건을 갖추어야만 엔젤투자를 할 수 있는 것은 아닙니다. 투자할 자금과 관심, 그리고 투자할 대상 기업만 있다면 누구나 엔젤투자를 진행할 수 있는 것이죠. 하지만 일정한 요건을 갖추고 엔젤투자협회에 등록하여 공인된 엔젤투자자가 되면 엔젤매칭펀드 등의 지원사업을 활용하여 좀더 효과적인 투자를 할 수 있는데요. 일련의 자격 요건과 지원사업의 한도에 따라 개별(적격)엔젤투자자, 전문엔젤투자자, 엔젤클럽, 개인투자조합으로 구분해 볼 수 있습니다. 이중에서 개인엔젤이라고 할 수 있는 적격엔젤투자자와 전문엔젤투자자에 대해서 자세히 알아보도록 하겠습니다.  적격엔젤투자자 한국엔젤투자협회는 적격엔젤투자자에 대하여 “창업초기 중소기업에 투자와 경영지도를 해주는 개인 투자자로서 엔젤투자지원센터에 등록된 자”라고 정의하고 있습니다. 투자와 경영지도를 해주는 개인투자자는 누구나 될 수 있지만 ‘엔젤투자지원센터에 등록된 자’에 한정하여 그 요건을 충족할 시 혜택을 부여하는 것이지요. 적격엔젤투자자로 등록하기 위해서는 ① 비상장기업 신주에 대한 투자실적, ② 교육이수, 혹은 ③ 유관기관이나 지역엔젤관리기관의 추천 중 한 가지의 요건을 갖추어야 합니다.  1) 첫번째 요건인 비상장기업 신주에 대한 투자실적에 대하여 구체적으로 살펴보면 다음과 같습니다.가. 최근 2년간, 비상장기업 신주(보통주, 우선주)에 대한 2천만원 이상의 투자실적 보유나. 단, 투자한 기업이 중소기업창업지원법에서 정의하는 “창업에서 제외되는 업종”이 아니어야 함→ 여기서 “창업에서 제외되는 업종”이란 숙박 및 음식점업, 무도장운영업, 골프장 및 스키장운영업, 갬블링 및 베팅업 등이 있습니다. (중소기업창업지원법 시행령 제4조)  2) 엔젤투자협회가 실시하는 적격엔젤 양성 교육과정을 이수한 투자자도 적격엔젤투자자로 인정받을 수 있습니다.적격엔젤 양성 교육과정은 지역별로 매월 1회(1일, 6시간) 개설되며 엔젤투자협회가 운영하는 엔젤투자지원센터 홈페이지를 통해 신청 후 소정의 교재비(10만원)을 납부하면 누구나 참석이 가능합니다.(자세한 사항은 엔젤투자지원센터 엔젤교육 메뉴 참조)  3) 세번째, 엔젤투자의 전문성과 기업에 대한 멘토가능성을 보유한 기업가이면서 유관기관의 추천을 받은 투자자는 적격엔젤투자자로서 인정받을 수 있습니다.이때 기업가란 코스닥 상장사, 벤처기업 천억클럽 회원사 대표이사 경력을 보유한 자를 말하며, 추천기관은 벤처기업협회, 여성벤처기업협회, 이노비즈협회를 말합니다.  4) 마지막으로 일정 경력을 갖춘 투자자 중 지역엔젤관리기관이 추천하고 엔젤 양성 과정 교육을 이수한 투자자가 적격엔젤로 등록할 수 있습니다. 일정 경력이란 다음과 같습니다.가. 유가증권시장 또는 코스닥시장 상장기업 상근 임원으로 2년 이상 역임한 자나. 매출 300억원 이상의 비상장기업에 상근 임원으로 2년 이상 역임한 자다. 변호사, 공인회계사, 변리사 자격증 보유자라. 국가기술자격법에 따른 기술사 자격취득자마. 이공/경상계열 박사학위 소지자바. 석사학위 소지자로서 경영지도사/기술지도사 자격취득자사. 학사학위 소지자로서 국공립연구기관, 정부출연 연구기관, 기술개발 관련법의 기업부설연구소에서 4년 이상 종사한 자아. 기타 엔젤투자 여력을 갖추고 투자판단에 책임질 수 있다고 인정되는 자   전문엔젤투자자 전문엔젤투자자는 엔젤투자에 대한 위험을 사전적으로 관리할 수 있는 전문가를 육성하기 위하여 투자실적, 경력, 자격요건 등 법적으로 정하는 기준에 충족하는 개인에게만 부여하고 있는 자격입니다. 위의 적격엔젤투자자보다 까다로운 요건을 충족하고 전문성을 인정받은 투자자라 보면 되겠지요. 최근 정부에서는 전문엔젤투자자 등록 요건을 완화하여, 투자자들의 진입장벽을 낮추고 벤처투자 활성화를 통해 시장을 부양하고자 관련 법령을 개정하는 방안을 발표했습니다. 이러한 시장의 방향성에 대해서는 별도의 포스팅을 통해 짚어보도록 하고, 현행 전문엔젤투자자 등록 요건을 살펴보도록 하겠습니다.  1) 먼저 적격엔젤투자자에 비하여 더욱 까다로운 투자 실적 요건을 갖추어야하는데, 그 상세 요건은 다음과 같습니다.가. 최근 3년 간 벤처기업 등에 투자한 금액이 1억원 이상일 것나. 인수하여 6개월 이상 보유한 주식 및 지분일 것다. 특수관계인이 발행한 주식이 아닐 것  2) 위의 투자실적과 더불어 전문성을 가진 경력도 갖추고 있어야 합니다.가. 주권상장법인의 창업자나. 주권상장법인의 등기이사로 3년 이상 재직한 경력이 있는 자다. 연매출액 1천억원 이상의 벤처기업 창업자라. 신기술창업전문회사, 유한회사, 중소기업창업투자회사에서 투자심사 업무를 2년 이상 수행한 경력이 있는 자마. 기술사 자격을 취득한 자, 변호사, 공인회계사, 세무사, 변리사, 경영지도사, 기술지도사, 감정평가사 등 전문직 종사자바. 박사학위(이공계열 또는 경상계열에 한정)를 소지한 자사. 전문엔젤투자자 교육과정을 이수한 자  이러한 심화된 자격 요건을 갖추어 전문성을 인정 받은만큼 엔젤 투자시 받을 수 있는 혜택의 범위와 정도도 확대됩니다.가. 전문엔젤투자자가 투자한 기업은 한국벤처캐피탈협회를 통해 벤처기업 인증을 받을 수 있습니다.나. 엔젤매칭펀드 신청 시 2배수 매칭펀드를 신청할 자격이 부여됩니다.다. 개인투자조합 운영시 한국벤처투자(모태펀드)의 출자검토 대상이 될 수 있는 자격이 부여됩니다.라. 코넥스 시장 참여시 기본예탁금(1억원)이 면제됩니다. (전문엔젤투자자에 대한 자세한 내용은 엔젤투자지원센터의 전문엔젤투자자 메뉴 참조)  엔젤클럽, 개인투자조합 적격/전문엔젤투자자와 같이 개인이 직접 투자할 수도 있지만, 엔젤클럽이나 개인투자조합처럼 단체를 이루어 투자를 진행하는 방법도 있습니다. 엔젤클럽이란 일종의 투자동호회라고 볼 수 있습니다. 엔젤투자에 관심이 많은 개인들이 모여 정보를 교환하고 공동으로 투자를 진행하게 됩니다. 개인투자조합은 말그대로 개인들이 투자를 위해 각자 일정 금액을 출자하여 설립한 조합입니다. 이러한 개인투자조합을 통한 투자의 경우 개인이 아닌 조합, 즉 법인의 이름으로 투자가 진행되며 각 개인이 조합에 출자한 지분율에 따라 성과를 나누어 받습니다. 엔젤클럽과 개인투자조합에 관한 상세한 내용은 추후 별도의 포스팅을 통해 설명을 드릴 예정입니다.  마치며 꼭 협회에 등록된 엔젤투자자가 아니더라도 자본과 엔젤투자에 대한 뜻이 있다면 누구나 엔젤투자를 진행할 수 있습니다. 하지만 투자의 리스크를 최소화하기 위한 제도적인 관리와 투자 주체 간 신뢰성, 더욱이 뒤이어 살펴볼 엔젤투자매칭펀드라는 지원사업 활용을 위해 본인이 어떠한 엔젤투자자로 등록될 수 있는지 꼭 확인해보는 것이 좋겠습니다. 다음 포스팅에서는 등록된 엔젤투자자가 투자 시 활용할 수 있는 “엔젤투자매칭펀드”가 무엇인지 자세히 알아보도록 하겠습니다.  

기업문화 엿볼 때, 더팀스

로그인

/