스토리 홈

인터뷰

피드

뉴스

조회수 713

P2P금융 법제화, 논의 중인 주요 포인트는 무엇일까?

정부는 P2P금융이 조속히 입법화 될 수 있도록 국회 입법 지원 등에 전력을 다하겠습니다. 또한, P2P금융이 우리 금융산업의 일원으로서 자리매김 할 수 있도록 적극 지원해 나가겠습니다.2월11일 있었던 ‘P2P금융 법제화에 대한 공청회'에 참석한 최종구 금융위원장과 민병두 국회 정무위원장 (사진 출처 = 금융위원회)지난 2월11일 있었던 ‘P2P금융 법제화에 대한 공청회’에서 최종구 금융위원장은 이렇게 축사를 마쳤다. 지난 3년 여 간 P2P금융기업 창업자들과 많은 관련자들이 노력한 결실이 이루어 지기 시작하는 순간이었다. 공청회에 참석한 미디어와 수많은 방청객들 모두 정부가 이 새로운 금융산업에 대해 어떠한 방향성을 갖고 있는지 명확히 느낄 수 있는 시간이기도 했다. 정부와 국회가 모두 뜻을 모아 추진되고 있는 P2P금융 법제화, 현재 논의 중인 사항들 중 가장 중요한 포인트는 무엇이 있을까? 첫째는 금융회사가 P2P금융사가 집행한 대출에 투자할 수 있도록 허용하겠다는 내용이다. 금융회사가 P2P금융에 투자하는 것은 개인 투자자를 보호할 수 있는 좋은 방법이다. 전문적인 리스크 관리팀이 P2P금융회사의 심사평가능력과 채권 관리 프로세스를 엄격하고 지속적으로 관리감독하게 되기 때문이다. 둘째는 P2P금융사의 자기자본 투자를 허용하겠다는 내용이다. 자기자본대출 역시 대출 고객 보호를 위해 필수적이다. P2P 대출을 받는 고객들 대부분이 3일 이내에 대출을 받지 못할 경우, 대출금이 모이는 기간을 기다리지 못하고 고금리 대출을 받는 경우가 많기 때문이다. P2P금융을 통해 10% 초반대의 중금리 대출을 받을 수 있음에도 불구하고 20%에 가까운 고금리 대출을 받게 되는 상황을 줄이기 위해서는 P2P금융회사의 자기자본대출이 허용되어야 한다는 것이 업계의 지속적인 요구 사항이었다. 무엇보다 자기자본 투자를 허용하고, 금융회사가 투자할 수 있도록 하겠다는 내용은 전세계 P2P금융산업의 발전 양상에 부합하는 방향성이다. P2P금융이 이미 10여 년 앞서 발전해 전체 금융시장의 약 5% 이상을 차지하고 있는 미국 시장의 경우, 대표적인 P2P금융사인 렌딩클럽이나 프로스퍼 등 회사의 투자 중 80% 이상이 전통적인 금융회사와 사모펀드의 대체 투자로 이루어져 있다. P2P금융은 빅데이터 분석 기반의 정교한 심사평가모델을 개발해, 기존 금융권이 발전시키지 못한 중금리대출을 활성화 시켜 새로운 소셜임팩트를 만들어 내고 있다. 지난 1월 기준 마켓플레이스금융협의회 회원사인 렌딧, 모우다, 팝펀딩, 펀다, 8퍼센트 등 5개사의 차입자(근로소득자와 개인사업자)가 아낀 이자의 총합은 약 408억원이며, 소상공인 대출을 취급하는 4개사의 차입자(1,366개 상점 및 1,108개 사업자)가 창출한 고용 효과는 약 13,025명으로 집계된다. 3월에 접어 들며 국회가 정상화 되었다는 반가운 소식이 들렸다. 그간 인터넷기업협회, 코리아스타트업포럼, 스타트업얼라이언스, 엔젤투자자협회 등 업계의 여러 조직들이 많은 도움을 주셨다. 어쩌면 한국 스타트업의 새로운 역사가 될 지도 모르는 P2P금융법안에 대한 논의가 잘 이루어지고, 새로운 산업에 대한 법제정이 이루어지기를 기대해 본다. 
조회수 696

[모바일 앱분석] Step3. CONVERSION (성과 분석)

모바일 앱 분석의 마지막 3단계 Conversion (성과분석) 에 대해 알아보겠습니다.[모바일 앱분석] Step1. MARKETING (마케팅분석)[모바일 앱분석] Step2. EXPERIENCE (사용자경험분석)마케팅 활동으로 아무리 많은 사용자를 확보하고, 좋은 경험을 제공해도 전환 최적화가 되어 있지 않다면, 투자 만큼의 결과(Outcomes)를 얻지 못해 지속적인 앱 운영의 어려움을 느끼게 됩니다. Conversion 단계의 분석 핵심은 사용자의 전환 트렌드를 이해하고, 전환 효율을 떨어뜨리는 문제점을 도출하여 더 많은 전환을 획득할 수 있도록 개선하는 데 있습니다. 앱 비즈니스 마다 목표 값이 다르겠지만, 이번 설명에서는 커머스 앱 기준으로 설명했습니다.# 전환 트렌드 이해먼저 사용자의 주문이 집중되는 시점(시간/요일/계절 등)을 인지하는 게 중요합니다.  주문이 집중된다는 건 그만큼 구매 욕구가 증가하는 시점으로 해석할 수 있기 때문에, 해당 시간을 활용한 이벤트로 높은 성과를 기대하거나 반대로 주문에 영향을 줄 수 있는 앱 업데이트, 서버 점검 등은 해당 시간을 피해서 작업하는 것이 좋습니다.데이터를 볼 때는 매크로 컨버전(거시적 전환) 지표가 중요하지만, 필히 마이크로 컨버전(미시적 전환)도 함께 봐야 합니다.  많은 주문을 얻기 위해선 당연하게도 ‘장바구니담기’, ‘바로구매시도’ 등의 전환이 많이 발생해야 하며, 주문까지의 연결율이 높아야 하기 때문에 이런 상황을 파악할 수 있는 마이크로 컨버젼 지표에 대한 관리가 중요합니다.( 와이즈트래커 > 커머스 > 주문/매출액 리포트 )# 타겟별 선호 상품 파악커머스 업계에서 가장 뜨거운 기술은 바로 개인화(personalization)입니다. 개인화의 목적은 범용적 컨텐츠 제공이 아닌 나만을 위한 컨텐츠를 제공함으로써 구매 확률을 높이고자 함입니다. 이 기술의 근간은 타겟팅이라고 볼 수 있습니다.저에게 원피스, 브라우스를 수백번 보여줘도 구매할 확률은 0%이겠지만, 시계, 운동화 등의 관심 상품을 제시한다면 앞선 상품보다 구매 확률은 크게 증가할 것입니다. 이처럼, 상품 구매 데이터를 성별, 연령대, 직업 등의 사용자 정보를 다차원으로 조합 후 세분화하면 타겟이 선호하는 상품이 무엇인지 알 수 있으며, 이를 바탕으로 상품 구매 의사가 높은 최적의 타겟을 설정하고 마케팅 전략을 수립한다면 매스 마케팅과는 차원이 다른 ROI를 경험할 수 있습니다.( 와이즈트래커 > 커머스 > 상품별 주문/매출에서 다차원 세그먼트 적용 후 리포트 ) # 전환 시나리오 분석사용자가 주문(전화)을 하기 위해 거쳐야 하는 일련의 프로세스를 전환 시나리오라고 합니다. 전환 시나리오는 전환 단계별 통과율/이탈률 데이터 제공으로, 전환을 방해하는 문제 화면을 도출하여 개선의 힌트를 얻을 수 있는 리포트입니다.아래 예시를 보면 사용자가 주문을 하기 위해 1) 상품 상세 > 2) 장바구니 > 3) 주문정보 입력 > 4)주문완료, 총 4단계의 스텝을 밟게 되는데요. ‘상품 상세’에서 ‘장바구니’로의 이탈률(92%)은 이해할 수 있습니다. 상품 조회 자체를 목적으로 온 사용자가 많기 때문입니다. 그러나 ‘주문정보 입력’까지 온 사용자는 구매의사가 매우 높은 사용자로, 81%의 높은 이탈률은 심각한 문제입니다.이를 통해 ‘주문정보 입력’의 통과율을 높이기 위한 폼 양식 리뉴얼, 결제 방식의 개선 등의 최적화 작업을 한다면 전체적인 주문율 향상을 기대할 수 있습니다(와이즈트래커 >  컨텐츠   > 화면이동경로 분석 리포트)앱 분석의 단계별 접근방법에 대해 살펴봤는데요, 모든 앱에는 개선이 필요한 부분이 존재합니다. 데이터는 개선의 방향을 알려주고, 실행(Action)은 성과 향상으로 답할 것입니다.* WISETRACKER는 모바일 광고 성과 측정부터 In-app 이용자/컨텐츠 분석, 푸시메시지 최적화까지 지원하는 모바일 통합 분석/타겟팅 솔루션입니다. 와이즈트래커 솔루션의 무료체험을 원하실 경우 여기를 클릭해주세요.* WISETRACKER가 제공하는 무료 데이터 분석 컨설팅를 원하신다면 여기를 클릭해주세요.#와이즈트래커 #데이터분석 #성과분석 #마케팅 #마케터 #인사이트 
조회수 1397

생산과 출고의 연결고리, 품고 물류운영실 입고팀장 대호님_Interview

   이커머스 풀필먼트 기업, 품고 물류 입고팀 팀장. 이대호님.   1. 안녕하세요! 대호님:) 간단한 자기소개 부탁드립니다!   안녕하세요. 두손컴퍼니에서 물류운영실 입고팀장으로 일하고 있는 이대호입니다:)     2. 대호님이 품고에 입사하시게 된 계기는 무엇일까요?   대학 때 유통경영학을 전공하면서 물류 시장이 앞으로 성장 가능성이 크다는 것을 알게 되었어요. 이후 미래 산업에서 물류가 중요한 화두가 될 것이라고 생각했고 물류에서의 혁신이 기업의 성장 가능성을 좌우할 것이라고 판단했어요.   그 때문에 졸업 이후 물류업에서 계속 종사를 해왔고 처음에는 프랜차이즈 업계 물류 담당자로 약 2년 정도 근무를 했었어요. 그러던 중 온라인 쇼핑몰들이 늘어나는 것을 보면서 이커머스 물류에 관심을 가지게 되었고, 당시 아마존에서 풀필먼트를 한다는 소식까지 듣게 되면서 풀필먼트 서비스를 운영하는 곳에 지원해야겠다는 생각을 가지게 되었습니다.    이후 당시 이커머스 물류 비즈니스를 진행하고 있다는 몇곳에 지원을 했었는데 두손컴퍼니만큼 면접 당시 느낌이 좋았던 회사는 없었던 것 같아요. 대부분 물류업이라고 하면 딱딱하고 거친 분위기라고 생각하기 쉽고 실제로 대부분 면접 당시 그런 인상을 받았어요.    하지만 두손컴퍼니는 당시 면접 분위기가 내가 평가를 받고 그에 따라 채용 여부를 판단하는 자리라는  느낌보다 내 생각과 회사의 생각을 공유하고 서로가 생각하는 성장의 방향성과 비즈니스를 바라보는 관점이 잘 맞는지를 맞혀보는 듯한 인상을 받았어요.   그래서 이 곳이라면 회사 안에서 주도적으로 물류업을 혁신하는 일에 참여할 수 있고 내 역량을 편하고 자유롭게 발휘할 수 있다고 생각이 들어서 입사하게 되었어요.      2. 두손컴퍼니에 처음 입사한 후에는 어떤 기분이 드셨나요?    제가 입사한 시기에 품고 고객사가 늘기 시작하면서 센터를 더 늘려야하는 상황이라 현재의 품고 1센터로 이사를 하고 있는 시기였어요. 이전에도 물류업에 종사하기는 했었지만 현재의 품고 1센터만큼 큰 물류 센터를 운영하게 된 것은 그 때가 처음이라 걱정보다는 설레는 마음이 더 많이 들었던 것 같습니다.    제가 입사한지 2년이 아직 안되었지만 그 동안에 벌써 곳곳에 새로운 품고 창고들이 생겨나고 작년에 중순에는 품고 2센터도 생기면서 요즘은 정말 회사와 내가 함께 성장하고 있다는 기분이 들어요. 앞으로도 센터가 늘어나면서 품고 안에서 물류는 물론 물류와 연관된 다양한 기회가 열릴 것이라 생각하고 있습니다.      3. 품고 물류 매니저는 어떤 일을 하는 사람일까요?        우선 저는 입고 팀장 역할을 맡고 있어요. 입고 팀장은 고객사 제품의 품고 센터로의 입고 프로세스를 조정하고 이후의 임가공 작업과의 연결고리를 설계하는 일을 하고 있어요. 구체적으로는 입고 및 임가공 일정을 조정하고 임가공 규모 등을 파악하여 출고까지 원활히 이루어질 수 있도록 하는 업무를 담당하고 있습니다.      새로 오게 되시는 물류 매니저분들의 경우는 저보다 더 넓은 범위의 물류 업무를 경험하게 되실 거에요. 전담 고객사의 입고부터 출고까지의 모든 물류 과정을 컨트롤하게 되고 주문 데이터가 들어오는 순간부터 반품까지 거의 모든 퍼스트마일 물류 프로세스를 경험하실 수 있을 것 같습니다.     앞으로 이커머스 산업의 핵심이 될 풀필먼트 프로세스를 전체적으로 경험하고 싶거나 배움에 대한 갈망이 크신 분께는 굉장히 좋은 기회가 될 것이라고 생각해요. 저도 다시 입사해서 입고 팀장이 아니라 품고 물류 매니저로 다시 시작해보고 싶은 마음이 드네요:)     4. 일을 하다 보면 기쁜 일만 있는 것은 아닐 텐데요! 혹시 물류운영실에서 일하며 겪게 되는 힘든 점은 어떤 것들이 있을까요?    배송 및 물류 프로세스상에서 문제가 생길 경우 제품의 추적이 어려운 경우가 많아요. 그 때문에 기존에 하는 일 외에 다른 업무가 생길 가능성이 크고 그럴 때마다 기존 업무들이 숙제로 쌓이는 경우가 많아요.      물류의 경우 예측하지 못하는 변수가 생길 가능성이 크기 때문에 이러한 상황이 발생했을 때 해당 업무를 가장 쉽고 빠르게 해결할 수 있는 방법을 찾으려고 하고 있어요.    그 때문에 품고의 물류 매니저는 문제 해결에 관심이 많고 새로운 프로세스를 구축할 줄 아는 역량이 가장 중요할 것이라고 생각해요.       5. 품고 물류 담당자로 일하면서 가장 만족스러운 경험들은 어떤 것일까요?    두손컴퍼니에서 일을 하면 내가 월급을 받기위해 일하는 것이 아니라 옆사람과 함께 한걸음 더 나아가기 위해, 그리고  함께 손잡고 문제를 해결하고 나아가고 있다는 느낌을 받을 때가 있어요.    그리고 최근부터 진행하기 시작한 인덱스 회의를 통해 입고팀에서 해결해야 할 다양한 물류 프로세스들을 정의하고 이것들을 어떻게 해결할 지 팀원들과 함께 고민하면서 새로운 활력이 되고 있는 기분이에요. 실제로 이번 1분기 동안 입고팀 내의 다양한 프로세스들을 개선시킨 경험들이 저에게는 정말 좋았어요.  구체적으로는 고객사별로 다른 판매 추이 및 배송 데이터를 파악해서 판매 건수를 예측하고 미리 안전 재고량을 설정했어요. 이렇게 판매량을 예측해서 미리 진열 재고를 마련해두게 되면, 미할당이 발생하는 확률을 현저히 낮출 수 있어요.    실제로 프로세스 적용 이후에 송장이 안나와 주문이 들어왔는데 재고 데이터가 없어서 미할당이 되는 물류 이슈를 상당 부분 해결할 수 있게 되었어요.     6. 앞으로 함께 일하게 되실 품고 팀원분께 하고 싶은 한 마디!   기본적으로 문제 해결에 대한 열정을 가진 분이 오셨으면 좋겠어요! 일을 주도적으로 진행하고 문제에 대한 원인을 파헤치려는 태도를 가진 사람이 좋다고 생각합니다. 일하면서 꾸준히 문제를 해결하고 더 발전할 수 있도록 열정의 불이 꺼지지 않는 분이었으면 좋겠습니다.   저 또한 신입 매니저분의 성장에 도움이 될 수 있도록 노력할게요!  
조회수 1733

인턴의 시선에서 본 스타트업 문화

나는 캣니스!나는 워낙 빠르게 돌아가는 스타트업 ‘어니스트펀드'에서 생존해보고자 헝거게임의 여전사처럼 어니스트펀드의 여전사를 꿈꾸는 UX 팀 인턴 ‘캣니스'이다. 2개월 동안 보고 느낀 어니스트펀드의 스타트업 문화 두 가지 ‘수평적인 소통’과 ‘자유로운 근무환경' 대해 이야기하고자 한다.1. 스타트업 수평적인 소통은 이름부터“안녕하세요. 포세이돈이에요.”“반가워요. 머니입니다."“저는 시나몬이에요.”“안녕하세요. 저는 캣니스입니다. 잘 부탁드립니다.”위의 대화를 보면 마치 인터넷상에서 이루어지는 채팅이 연상되기도 한다. 하지만 이 대화는 내가 처음 어니스트펀드에 와서 팀원들과 나눴던 인사다.어니스트펀드의 인턴 면접을 볼 때 부대표님이 자신을 “제우스” 라고 소개하였다. ‘제우스?! 내가 알고 있는 그리스 로마 신화에 나오는 신들의 왕 제우스란 말인가…’ 하며 매우 당혹스러우면서 지금까지 봐왔던 면접 중 굉장히 유쾌했던 기억이 있다.협업 툴 ‘Slack’에 있는 팀원 네임대게 회사들은 일반적으로 이름과 직급으로 서로를 부른다.("김xx 대리님", "유과장님" 등). 이 자체만으로 서로간에 주는 직급의 위계질서가 생기고 수직적인 관계가 형성된다. 따라서 많은 스타트업은 수평적인 조직 문화를 만들기 위해 영어 이름을 사용하기도 한다.어니스트펀드도 수평적인 문화를 만들기 위해 영어 이름을 쓰지만 조금 더 특별한 닉네임을 쓴다. 나는 이런 닉네임 형태가 해당하는 사람의 직위와 이름을 합쳐 만들어 낸 어니스트펀드 안에만 존재하는 하나의 캐릭터라는 이미지가 더 강하게 박힌다. 그래서인지 팀원들과 이야기를 할 때 수평적인 소통을 하기에 조금 더 편하다고 실제로 느낀다.사실 나는 인턴으로 온 지 첫 주 동안 닉네임에 가까운 이름을 부르면 예의가 없어 보일 것 같은 마음으로 팀원들에게 닉네임과 ‘-님' 자를 붙여 불렀다. (예를 들면, “머니 님, 점심 드셨어요?”) 그런데 나와 함께 UX업무를 하시는 ‘테일러'는 나에게 “내 안에 위계질서를 만들지 말아요.”라고 조언을 해주셨다. 나도 모르게 수평적인 조직 안에서 위계질서를 만들고 있지는 않았을까 하고 아차 싶었다.21. 수평적인 소통과 수직적인 의사결정을 지향합니다.(어니스트펀드 매뉴얼 21번)스타트업에서 수평적인 문화를 만드는 가장 큰 이유는 모든 사람의 의견을 듣기 위해서다. 그리고 구성원 모두가 이해하고 동의한 상태에서 일을 진행하는게 목표 지점에 도달하기가 더 효과적이기 때문이다. 그렇기 때문에 영어 닉네임과 같은 방식을 팀원들과 자유로운 커뮤니케이션의 수단으로 이용된다.2. 쉴 수 있는 자유와 근무환경출근한 지 이튿날, 회사원들이 가장 졸린 오후 2시에 잠을 깨기 위해 커피를 마시러 아고라(Agora_각종 음료가 있는 휴식 겸 소통의 공간)로 갔다. 내 눈앞에는 생각지도 못한 상황이 펼쳐져 있었고 신선한 문화 충격을 받았다.당시 아고라 앞에 위치한 전면 유리로 구성된 미팅룸 안에는 대표님과 외부 손님이 미팅 중이었고, 그 맞은편 소파에는 대놓고 드러누워 자는 ‘터보’가 보였다.도대체 이게 무슨 일이란 말인가????미팅 중인 외부 손님 바로 앞에서 드러누워 자는 직원, 그런 모습이 아무렇지 않은 양 평온한 상태로 미팅을 진행 중인 대표의 태도는 이해하려야 이해할 수 없는 장면이었다.순간 이 장면을 본 나는 ‘미팅룸 안에 설치된 블라인드를 어떻게 내리지?’, ‘자는 터보를 깨워야 하나?’ 등의 이 상황을 어떻게 대처해야 할지에 대한 생각들로 어쩔 줄 몰랐다. 하지만 그 시각 아고라에 커피를 마시러 온 팀원은 아무 일이 없다는 듯 커피를 타서 자리로 돌아갔고, 이 회사 공간 안에서 나는 마치 다른 나라 사람이 된듯 한 기분이 들었다.어니스트펀드의 agora어니스트펀드 인턴으로 오기 전까지 1년 동안 평균 연령 40세인 사람들로 구성된 보수적인 회사에 있던 나에게는 생각지도 못할 일이었다. 업무 중 잠이 쏟아질 때면 화장실 변기 위에서 15분간 쪽잠을 자고, 아무렇지 않은 표정으로 돌아와 업무로 복귀하던 나였다. 이런 상황은 나뿐만 아니라 대부분 회사원이 겪었을 일상이라고 생각한다.하지만 어니스트펀드의 일상은 달랐다. 언제 어디서나 업무 중에 과열된 머리를 식힐 수 있는 자유가 있다. 최대의 업무 효율을 내기 위해 서로의 눈치를 보지 않고 휴식을 취할 수 있는 권리가 보장되어 있다는 것이다. 또한 그 권리를 구현할 수 있는 근무환경이 조성되어 있다.손님이 와도 굴하지 않고 잘 수 있는 우리 팀원들이 멋있어요.위의 말은 서상훈 대표가 지난 워크숍에서 팀원들에게 했던 말이다. 회사 안에서 어떤 상황과 요건으로 구애받지 않고 팀원 스스로가 업무의 효율성을 높이기 위해 적합한 환경으로 만들어 나가는 것에 대한 만족감이 아닐까 싶다.일이 잘 안풀릴때는 여의도 전경을 보며 휴식을!“직원들이 자신의 생각을 자유롭게 표현할 수 있고,낡은 규칙은 임의로 깨뜨릴 수 있으며,자신이 일하는 공간을 자기 집처럼 사랑할 수 있어야 한다.”-IDEO CEO 톰 켈리-스타트업하면 빠지지 않는 키워드 중 하나는 자유로운 근무환경이다. 근무환경은 문화를 만들고 직원들의 업무 생산성을 높이는 데 기여할 것이다. 자유로운 공간 안에서 더 좋은 시너지를 내기 위해서는 팀원들이 공간 그대로를 200% 활용할 수 있는 태도와 자세가 관건이라고 생각한다.분명 스타트업에서 팀원들과 수평적인 소통을 하기 위해 풀어나가는 방식과 자유로운 근무 환경이 장점만 가지고 있는 것은 아니라고 생각한다. 이것들이 긍정적으로 이루어지려면 팀원 간의 믿음이 먼저 바탕에 깔려있어야 한다. 내가 인턴으로서 바라본 어니스트펀드는 활기 넘치는 근무환경을 바탕으로 한 믿음이 있었기에 더욱 매력적인 곳이었다. 앞으로 어니스트펀드의 젊은 에너지가 핀테크의 기폭제로 되기를 기대해 본다.#어니스트펀드 #인턴 #기업문화 #스타트업 #스타트업문화 #조직문화 #사내문화 #인턴인터뷰 #인사이트 #경험공유 #팀원 #팀문화 #팀워크 #팀플레이
조회수 75

친환경 에너지, 분노력 발전소

저는화가 많은 사람입니다저의 넘쳐나는 분노를 해소하기 위해서 스트레스컴퍼니를 만들었지요. 그래서 인지는 모르겠지만, 저희 분노 캐릭터인 화리를 보고 저를 닮았다는 이야기를 많이 하시더라고요. (그러려고 만든 건 아니었는데... ) 미대 입시생들이 석고상을 그리던 시절, 분명 아그립빠인데 묘하게 다 본인 얼굴처럼 그려놓더라는 전설이 갑자기 떠오르는군요..나야 나제가 왜 그렇게 화를 많이 냈었나를 가만히 생각해보니, 당위적으로 이래야만 한다는 기준이 많았던 것 같습니다. 언니는 나보다 먼저 태어났으니 본을 보여야 하고, 동생은 내 말을 잘 들어야 하고, 부모님 말씀은 어겨서는 안 된다는 그런 기준들 말입니다. 그러한 기준들은 사회에서 질서를 지키는데 유용하게 쓰이곤 합니다.그런데 누군가가 그 기준에 맞지 않는 행동을 보일 때, 그때부터 문제가 일어나기 시작합니다. '나는 이렇게 힘들게 기준을 지키고 있는데, 왜 당신은 지키지 않는 거지?' 하고 곧장 분노가 치밀어 오르게 되니까요. 3단 분노하는 화리의 모습 (3년 전쯤 카카오 이모티콘에 냈다가 광탈함)그런데 우리는 화가 나면 대체 어디서 그 에너지가 솟아나는지 가공할만한 파괴력을 보이곤 합니다. 드라마만 봐도 분노한 주인공이 벽을 때려 부수거나 거울을 깨고 김치 싸대기를 날리는 등의 장면 등을 너무나 쉽게 발견할 수 있습니다.아... 아프겠...그런데 말입니다저는 여기서 이런 생각을 해봤습니다. 사람들이 분노하게 되면 집까지 때려 부술정도로 엄청난 에너지가 뿜어져 나오는데, 그 방향을 조금만 바꾸면 분노 에너지를 건설적으로 활용할 수 있지 않을까라고 말입니다. 그래서 생각해봤습니다. 분노력 발전소. 두둥.바로 이렇게 말이죠이 아이디어 스케치는 제 머릿속을 떠다니고 있던 분노력 발전소를 펀치 기계와 결합시켜본 것입니다. 분노한 사람들이 펀치를 치면 그 운동 에너지가 전기 에너지로 변환되어 선풍기가 돌아가도록 만드는 것인데요. 화난 사람들은 펀치를 치면서 자신의 분노를 해소할 수 있으니 좋고, 펀치를 치니까 선풍기가 돌아가서 시원한 바람까지 덤으로 얻을 수 있어서 좋습니다. 누이 좋고, 매부 좋고 이것이야말로 분노 에너지를 바람직하게 승화시킬 수 있는 절호의 기회인 겁니다!분노 에너지를 전기에너지로 변환시킬 수만 있다면, 그걸로 선풍기만 돌리겠어요? 휴대폰을 충전할 수도 있고, 라디오를 들을 수도, 심지어 가로등을 켤 수도 있을지도 모릅니다. 그러면 시도 때도 없이 분노하는 사람들은 전기를 생산하는 애국자가 되는 겁니다. 씨익.    상상만 해도 신남한동안 이 아이디어에 꽂혀서 이게 정말 가능한 일인지, 그렇다면 어떻게 만들 수 있을지를 수소문했었는데요. "운동에너지를 전기에너지로 변환하는 것은 가능하지만 100명의 사람들이 줄을 서서 같은 정도의 힘으로 펀치를 계속 내려친다면 가능할지 모른다", "그렇게 에너지가 발생하더라도 그 양은 아주 미미하며 발생된 에너지를 저장하는 것이 더 어려운 기술이다"와 같은 의견들을 듣고 현실화시키는 것은 어려운 일이구나 하며 의기소침해졌답니다.그러나 이것이 아주 허무맹랑한 소리만은 아니구나 라는 생각을 하게 되었던 것은 바로 이 기사 덕분이었는데요. 춤추는 사람들의 에너지를 자가발전용 전력으로 바꾼 영국과 네덜란드 친환경 나이트클럽의 사례가 있었기 때문입니다. 이 나이트클럽은 춤을 추는 사람들이 바닥을 자극하면서 생기는 전류가 충전식 배터리로 이동, 전력을 생산할 수 있게 설계되었다고 하는군요. (넘나 멋짐)관련 기사 링크 기사에 따르면 춤추는 사람들의 에너지로 클럽의 실내 조도를 유지하려면 2,000여 명의 손님이 들어야 할 것으로 추정했다고 하니... 역시나 쉬운 일은 아닐 것 같습니다. 그나저나 2008년도에 나온 기사라 벌써 10년이나 지났는데 이 클럽들이 아직까지 현존하고 있는지도 궁금하네요.    네덜란드 클럽 WATT일단 뜨겁게 인정하라저는 화가 나면 제가 원하는 것을 말하지 않고, 혼자 기대하다가 실망하고 토라져서 이유조차 설명하지 않으며 가장 가까운 사람들을 상처 주는 일들을 반복해왔었습니다.분기탱천해있을 당시에는 제가 그러한 패턴으로 분노한다는 사실조차 깨닫지 못했지만, 문제가 반복이 되고 제 마음이 지옥이 되니 그제야 현실이 느껴지더라고요. 그리곤 변화해야겠다는 생각이 들었습니다. 모든 변화는 현실을 인정하고 받아들이는 것에서부터 시작됩니다. 저의 변화는 여전히 진행 중이지만, 이와 같은 과정을 통해 저의 분노 에너지를 의미 있게 활용하고자 노력했던 것들은 스트레스컴퍼니란 회사를 만들어나가는데 크나큰 원동력이 되고 있답니다. 모두 그동안 저의 분노를 참아주신 분들 덕분입니다.스트레스컴퍼니는 분노조절을 못하시는 회사 사장님께 극도로 스트레스를 받고 그 상황을 극복하고자 떠올린 아이디어에서 시작되었습니다. 그리고 5년 뒤 정말로 현실이 되었지요. 분노력 발전소는 언제쯤 현실이 될 수 있을지 모르겠지만, 정말로 만들어진다면, 그것을 통해 전하고 싶은 메세지가 있습니다  첫째, 분노라는 감정 자체가 나쁜 것이 아니라, 그 감정 때문에 나쁜 행동을 하는 것이 잘못되었다는 것둘째, 당신의 분노 에너지를 건설적으로 활용한다면 나와 주변인들에게 더 좋은 영향을 끼칠 수도 있다는 것셋째, 그것은 결정은 오직 당신에게 달려있다는 것입니다. 저의 이 아이디어는 2017년 월간디자인에 실렸었으나 아직도 아이디어로 남아있네요. 혹시라도 이 글을 보고 함께 만들어보고 싶다 생각이 드는 자칭 천재 엔지니어분 계시면 언제든 my@stresscompany.net으로 연락 주세요. 머리를 맞대다 보면 분명 더 좋은 방법이 생겨날 테니까요. 우리 함께 분노력 발전소를 만들어볼까요. :-)   월간디자인 기사 링크   감동을 주는 사람이 되고 싶은 디자이너. 스트레스컴퍼니를 혼자서 6년째 만들고 있는 이남희입니다.할머니가 될 때까지 세상을 이롭게하는 지속적인 생산자로 살고 싶습니다.스트레스컴퍼니의 모든 상품은 스트레스컴퍼니샵에서 구매 가능합니다.매달 마음을 나누는 감정카드 모임을 진행합니다. 함께해요~새 소식은 페이스북과 인스타가 제일 빠릅니다.ⓒ스트레스컴퍼니 - 무단 전재-재배포 금지  
조회수 3571

[제일극장] 제일기획 직무소개 디지털캠페인플래너 편_김진희 프로

 통화 대신 실시간 메신저를 주고받고, 시간 맞춰 보던 TV 드라마는 인터넷으로 하이라이트 영상만 다시 보는 시대. 디지털이 우리 삶의 중심이 되었다라고 해도 과언이 아닌데요. 라이프스타일 변화에 발 빠른 대응이 필요한 마케팅 분야에서도 다양한 디지털 마케팅 활동을 펼치고 있답니다.제일기획 논픽션 직무 시리즈 ‘제일극장’! 이번 시간에는 디지털 플랫폼을 중심으로 한 마케팅 활동을 하는 ‘디지털캠페인플래너’ 직무를 자세히 알아보기 위해 김진희 프로를 만나봤습니다. ‘디지털캠페인플래너’란 직무는 아직 좀 생소한데, 간단히 소개 부탁드려요.디지털캠페인플래너란 디지털 플랫폼을 기반으로 한 모든 업무를 담당합니다. 캠페인을 기획하고 콘텐츠를 만드는 것부터 매체에 집행하고, 소비자 반응에 대한 모니터링 및 광고 효과를 측정한 결과치로 전반적인 캠페인 운영 방향을 조정하기도 하지요. 좀 광범위하죠? 저희들끼린 ‘디’자 들어가는 건 다~~한다고 말하기도 해요.ㅎㅎ 현재는 GM 쉐보레 브랜드를 전담하면서 브랜드 사이트 및 페이스북, 유튜브 등의 SNS채널을 담당하고 있고, 이런 디지털 플랫폼을 활용해 판매를 촉발시킬 수 있는 캠페인을 진행하고 있어요. 담당하셨던 디지털캠페인 중 기억에 남는 게 있다면요? 사례를 들어주시면 업무에 대한 이해가 좀 더 수월할 것 같아요.사례를 말하면 그게 저희 일의 전부처럼 보일까 봐 걱정이 좀 되는데요.^^;; 삼성전자를 담당할 때 소치 동계올림픽 스폰서로써 진행했던 캠페인인데, 그 당시 우리나라 선수들의 경기가 끝나면 경기 결과로 응원 메시지를 만들어 광고를 내보냈어요. ‘리얼 타임 팩션’ 광고라고 언론에도 많이 보도됐었죠. 예를 들면, 선수가 1등을 하면 1등 축하 메시지를 담은 광고를 경기 끝남과 동시에 매체에 태우는 거죠. 올림픽 경기 관전을 모바일, PC로도 하니까 포털에서의 온라인 경기 생중계나, 동영상 다시보기 등 다양한 디지털 채널에도 동일하게 같은 형태로 동시 집행을 했고, 응원 사이트를 만들어서 전국민의 응원메시지를 전달하기도 했죠.또, 쉐보레에서 신형 스파크가 출시됐을 때 다양한 드라이빙 기능을 체험할 수 있는 주행 영상을 만들었습니다. 직접 타보지 않고도 차의 편리한 기능을 간접 경험하게 한 것이죠. 15초 TV광고로는 다 전할 수 없는 제품의 특장점을 디지털 콘텐츠로 효과적인 전달을 했다는 점에서 디지털 캠페인의 기능이 극대화됐던 사례로 기억해요. 디지털 캠페인과 전통 캠페인의 차이가 있다면 무엇일까요?콘텐츠죠. 쉐보레를 예로 들면 TV 광고에서는 “신차가 출시됐어요” 라는 메시지와 근사한 경험을 하는 영상으로 이미지를 소구하게 되는데, 디지털은 좀더 구체적으로 소비자들이 알고 싶어하는 정보를 제공해야 하죠. 앞서 든 사례처럼 차를 간접체험 할 수 있도록 한다거나 스펙 정보를 주는 것 등 말이죠. 자동차 마니아들 사이에선 차종 간 스펙 비교가 일반적이거든요.또 가장 큰 차이는 정확한 숫자로 얘기할 수 있다는 점이에요. 몇 명이 클릭을 하고, 사이트에 접속했는지 등을 수치로 파악해 성과를 확인할 수 있는데요. 목표한 성과가 잘 나오지 않으면 그 원인을 데이터에서 찾아내고 콘텐츠를 디벨롭하거나 UI를 바꿔보는 등 지속적으로 유지/관리를 합니다. 캠페인이 집행되는 순간부터 시작인 셈이죠. 디지털 트렌드에 대한 공부도 중요할 것 같아요. 트렌드는 어떻게 파악하시나요?팀장이다 보니 다른 직원들보다 출근 시간이 좀 더 빨라서, 그 시간을 활용해요. 트렌드 리포트나 미디어 리포트, 관련 기사들을 읽으며 제 것으로 만들려고 하죠. 하지만 그런 전문적인 자료들은 거시적인 흐름을 읽기 위한 것이고요, 실질적으로 가장 도움이 되는 건 젊은 친구들이랑 이야기 나누는 거예요. 그들이 생각하고, 말하고, 소비하고, 사용하는 모든 것들이 곧 트렌드가 되니까요. 아이디어를 내거나 발전시키는 데 많은 도움이 된답니다. 아이디어는 어떻게 내는지, 프로님만의 리프레쉬 방법은?아이디어를 어떤 방향으로 내야 할지에 대해 고민을 많이 하고, 레퍼런스를 많이 찾아보는 편이에요. 다양한 자료를 보면서 키워드를 뽑고, 메시지의 가닥을 잡죠. 회의하면서 아이디어가 막히면 강행하기 보다는 잠시 쉬었다 갑니다. 팀원들 각자 자기만의 방법으로 리프레쉬를 할텐데 그 와중에도 다들 책임감이 있는 지라 아이디어를 고민하는 것 같아요. 다른 일을 하더라도 안테나는 계속 세우고 있는 거죠.제 경우엔 회사 근처에서 하는 전시회도 보러 가고, 집에서 TV나 책을 보면서 최대한 아날로그 모드가 되요. 쉬는 시간만큼은 디지털과 멀어지는 것도 한 방법이라고 할까요?^^ 특히 만화책이나 동화책 보는 걸 좋아하는데요. 동화책은 짧은 스토리 안에 담긴 기승전결이나 크리에이티브가 어마어마해서 즐겨 봐요. 마지막으로, 앞으로 꿈꾸는 목표가 있다면 말씀해주세요.  나이가 들면 트렌드를 따라잡지 못할 거라는 고정관념이 있는데, 나이가 들어서도 디지털 전문가로 계속 남아있고 싶어요. 디지털이 변두리에서 보조/지원하는 역할을 하다가 중심으로 들어선 게 불과 몇 년 되지 않은 만큼, 제가 가진 경험이나 노하우를 통해서 후배들이 이 분야에서 비전을 키워나갈 수 있도록 좋은 기반이 되는 선배가 되고 싶어요. 아, 하나 더 꿈꾸는 게 있다면 나중에 꼭 하와이 가서 살고 싶어요. ^^인터뷰에 앞서 제일기획 페친들이 보내준 ‘디지털캠페인플래너’에 대한 질문이 있었죠. 그 답변도 함께 살펴볼까요? #삼성 #삼성그룹 #제일기획 #김진희프로 #디지털전문가 #디지털캠페인 #디지털캠페인플래너 #리프레쉬 #마케팅 #아이디어 #직무 #직무소개 #직무정보 #기업문화 #조직문화 #구성원인터뷰
조회수 5164

안드로이드 백그라운드 서비스 개발시 고려해야 할 사항

지난 시간엔 사운들리 백엔드에 대해 설명을 드렸었죠. 이번 시간엔 사운들리 서비스중 클라이언트에 해당하는 안드로이드 SDK, 그 중에서도 백그라운드 서비스에 초점을 맞추어 설명을 해 볼까 합니다.안드로이드의 특징 중 하나로 Service 를 들 수 있습니다. 이 서비스란 녀석은 백그라운드에서 실행 될 수 있다는 점이 가장 큰 특징인데요. 물론 iOS 에서도 일부 지원은 합니다만 매우 제한적인 경우(음악 재생 등)에만 사용 가능합니다.제가 생각하는 백그라운드 서비스 개발 시 유의 사항은 아래와 같습니다.동작 기간 - 상시 동작 해야 하는가, 특정 조건에서 특정 작업을 할때만 동작 해야 하는가글로벌 프로세스 사용 유무 - 서로 다른 어플리케이션에서 접근이 가능 해야 하는가동작 조건 - 특정 시간 혹은 기간마다 동작 해야 하는가, 특정 이벤트 발생시 동작 해야 하는가그 외에도 많은 부분들이 있지만 일단 저 정도만 고려해도 개인적인 생각으로는 충분히 개발 가능하다고 생각 합니다.그러면 각각에 대해서 좀 더 자세하게 알아 볼까요?1. 동작 기간동작 기간에 대해서 이야기 하기 전에 먼저 유저 레벨에서 가장 많이 사용하는 Service 와 IntentService 의 차이점에 대하여 짚고 넘어가보겠습니다.Service 를 상속`Context#startService//Context#stopService` 혹은 `Context#bindService(w/BIND_AUTO_CREATE)//Context#unbindService` 를 통해 수명 조절 (Service 내에서 Service#stopSelf 를 호출하는 방법도 있습니다.)Service 시작된 이후에 커뮤니케이션 가능수명 종료 API(stopService or unbindService) 를 호출 하기 전에는 프로세스가 사라지지 않음 (물론 LMK에 의해서 종료 된다던지 등등이 있지만 여기서는 논외로 하겠습니다.)IntentService 를 상속startService 를 통해 서비스를 시작함사용자가 따로 수명 관리를 할 필요가 없음상기 특징을 보면 Service 는 상시 동작하는 서비스에, IntentService 는 특정 조건에서 동작하는 서비스에 더 특화된 것을 볼 수 있습니다.사운들리 서비스는 백그라운드에서 상시 신호를 감지해야 하므로 Service 를 상속해서 쓰고 있습니다.2. 글로벌 프로세스 사용 유무안드로이드 컴포넌트 속성 중 android:process  속성을 소문자로 시작하는 이름을 쓰면 글로벌 프로세스로 사용 할 수 있습니다. 글로벌 프로세스니까 당연히 다른 어플리케이션에서도 접근이 가능하답니다.아래와 같은 경우에는 글로벌 프로세스를 사용 할 때 더 이점이 있습니다.불필요한 리소스 사용 자제 - 서버와 통신하는 모듈의 경우, 여러 앱에서 동일한 모듈이 사용 될 때 하나의 통로만 사용 하는 것이 네트워크 리소스를 적게 먹습니다.공유 불가능한 자원 사용 - 사운들리 SDK 가 이 경우에 해당합니다. 비가청 대역 음파를 사용하는 특성상 마이크를 사용 해야 하나 안드로이드에서는 서로 다른 어플리케이션 간의 마이크 공유가 불가능합니다.하지만 일반적인 어플리케이션 서비스는 굳이 글로벌 프로세스를 쓸 필요가 없습니다. 모듈 버전에 따른 실행, 데이터 공유 등 골치 아픈게 이것저것이 아니에요... ㅠ3. 동작 조건동작 조건은 크게 time base 와 event base 로 나눌 수 있는데요. 각각의 경우에 서비스를 동작 시킬 트리거를 다르게 쓰는 것이 좋습니다.동작 조건에 따라 안드로이드에서 사용 가능한 트리거는 아래와 같습니다.시간 기반 (time base)AlarmManager 의 alarm API (set, setExact, setExactAndAllowWhileIdle 등)Android System Broadcast (ACTION_TIME_TICK 등)GCM Message이벤트 기반 (event base)Android System Broadcast (ACTION_SCREEN_ON, ACTION_POWER_CONNECTED 등)GCM Message그 외 각종 어플리케이션 사용시 발생되는 이벤트위에서 이야기한 것을 표로 정리하면 아래와 같습니다.동작 기간동작 조건사용해야할 서비스동작 트리거그 외상시동작시간기반 동작Service 를 상속 받아 startService 서비스 시작bindService 를 통해 서비스와 연결하여 커뮤니케이션해당 Service 는 START_STICKY 로 실행AlarmManager 혹은 서버에서 주기적으로 동작하는 GCM Message 사용글로벌 프로세스를 사용 해야 한다면 android:process 속성을 사용이벤트 기반 동작System Broadcast 혹은 GCM Message, JobService 등을 사용작업 할때만 동작시간 기반 동작IntentService 를 상속받아 startservice 로 실행Intent 에 작업 관련된 파라매터를 전달AlarmManager 혹은 서버에서 주기적으로 동작하는 GCM Message 사용이벤트 기반 동작System Broadcast 혹은 GCM Message, JobService 등을 사용Etc. 유의해야 할 부분추가로 백그라운드 서비스 개발 시 유의해야 할 점들을 기술 해 보겠습니다.i) 배터리 절전 기술안드로이드 버전이 올라갈수록, 그리고 벤더들의 기술력이 높아질수록 배터리 절전 기술 역시 발전합니다. 이러한 기술들은 사용자 입장에서는 반가운 기술이지만 개발자들에게는 종종 절망을 선사합니다 ㅜㅜ사운들리 서비스도 개발 과정에서 각종 절전 기술 때문에 고생을 했는데요, 크게 고생한 기술 및 특징은 아래와 같습니다.DozeAndroid 6.0 이후 버전에 적용아래의 상태에서 일정 시간 이후 Doze 모드 진입충전 중이 아님스크린 꺼져 있음일정 수치 이상 움직이지 않음제한되는 사항AlarmManager 의 AlarmJobServiceWakeLock 무시네트워크 접근 제한회피 방법AlarmManager#setExactAndAllowWhileIdle() - Doze 에서도 동작하지만 최대 15분에 한 번씩만 동작 가능GCM high priority messageApp StandbyAndroid 6.0 이후 버전에 적용일정 기간 동안 아래 상황 중 하나도 발생하지 않은 경우 시스템에서 해당 앱을 standby state 로 간주명시적 앱 실행액티비티나 서비스가 포그라운드(전경)에서 실행 중, 혹은 포그라운드에서 실행 중인 앱이 해당 앱의 컴포넌트 사용중알림을 생성하고 유저가 잠금 화면이나 알림 트레이에서 확인한 경우제한되는 사항네트워크 사용 및 동기화 기능 사용 불가회피방법유저와 상호 작용유저가 디바이스 충전스마트 매니저삼성에서 킷캣 (안드로이드 4.4) 이후의 모델 (일부 제외)에 적용일정 시간 이상 유저가 사용하지 않은 앱은 알림 생성 불가관련글: 구글 개발자 블로그의 Android M 관련 변경점ii) LMK (Low Memory Killer)안드로이드의 각각의 프로세스는 특성에 따라 상태가 부여됨각 상태는 제한되는 메모리 사이즈가 정해져 있고, 디바이스의 가용 메모리가 해당 사이즈 이하로 떨어질 시 시스템에서 프로세스를 종료START_STICKY 로 실행한 서비스의 경우 일정 시간 이후에 null Intent 를 가진채로 재시작킷캣 이상에서 PID가 0이 된 채로 남아있는 버그가 있음ActivityManager#getRunningServices 에서 서비스 리스트를 가져 왔을때 찌꺼기가 존재마치며보기엔 복잡해 보이지만 사실 서비스 기획에 맞게 기능들을 골라서 쓰기만 하면 되니까 생각보단 복잡하진 않습니다. '사용자 중심의 나이스한 서비스 기획' 만 있으면 위의 표에서 기능을 골라서 조립만 하면 됩니다.물론 실제 개발 시에는 훨씬 더 고민 해야 될 부분이 많을 겁니다. 네트워크 트래픽도 최소화 해야 하고, WakeLock 도 적절히 써야 하고, 글로벌 프로세스 사용시는 DB 동기화도 시켜야 하고 GCM 은 downstream 이냐  group 이냐 topic 이냐 등등...개인적인 전망으론 장기적으로 Google 에서도 iOS 처럼 백그라운드 서비스 사용에 점점 제한을 둘 것 같습니다. 하지만 완전히 없애진 않을 것 같네요. 나름 특색 이니까요. 그러니 없애지만 않으면 방법을 찾아 낼 수 있을 겁니다.너무 두서없이 주저리주저리 쓴 글 같지만 조금이라도 도움이 되었으면 좋겠습니다.#사운들리 #개발 #개발자 #안드로이드 #안드로이드개발 #앱개발 #앱개발자 #SDK #인사이트 #조언 #경험공유
조회수 550

선진국 P2P금융시장이 개인신용에 집중된 이유

모든 투자의 기본은 리스크를 낮추는 것이다. 미국, 영국과 같은 금융 선진국들의 P2P금융시장을 자세히 살펴보면 이들이 어떻게 리스크 관리를 해왔는지 알 수 있다. 전세계 P2P금융을 분석해 온 HJCO Capital Partners 의 보고서에 따르면, P2P금융은 대출 대상에 따라 개인, 소상공인, 부동산의 3가지로 분류되며, 미국과 영국 모두에서 개인신용대출의 비율이 압도적으로 높다.[미국] 개인: 60%, 소상공인: 35%, 부동산: 5% (2014년말 기준)[영국] 개인: 40%, 소상공인: 35%, 부동산: 25% (2015년말 기준)이처럼 개인신용대출이 P2P금융시장의 주가 되어온 이유는 "다수"의 "상호연관성이 낮은" 자산에 분산투자할 수 있다는 장점 때문이다. 리스크 관리의 2가지 기본을 정리해보면 아래와 같다.1) 다수의 자산에 분산투자계란을 한 바구니에 담으면 안된다는 것은 우리 모두가 아는 투자의 기본이다. 100만원을 1개의 자산에 투자하는 것보다 100개의 자산에 분산투자하는 것이 리스크가 낮다. 이에 대한 분석은 다음 포스트에서 본격적인 통계적 접근으로 다뤄보기로 한다.2) 상호연관성이 낮은 자산에 분산투자리스크를 논할 때 투자 자산 간의 상호연관성에 대한 분석 없이 다수 분산투자만을 언급하는 경우가 많다. 하지만 "유의미한 분산"이 되려면 투자 자산 간에 연관성(correlation)이 낮아야 한다. 예를 들어, 특정 환경의 변화가 생겼을 때 자산A의 가치가 하락한다고 가정해보자. 이때 자산B의 가치 역시 하락한다면 이 두 자산 간의 연관성은 매우 높다고 볼 수 있다. 좀 더 구체적인 예로 아래 표를 살펴보면, 미국 주가(US Stocks)와 부동산 가격(Real Estate)의 연관성 지표는 0.82 인 반면, 미국 주가와 개인신용대출(Personal Credit)의 연관성 지표는 0.19 에 불과하다. 즉, 미국 주가가 하락했을 때 미국 내 부동산 가격이 하락할 확률은 개인신용대출의 부도율이 상승할 확률보다 4배 이상 높다. 이러한 자산 간의 연관성 지표는 국내에서도 사실상 거의 동일한 것으로 파악된다.개인신용대출은 다른 자산과의 상호연관성이 매우 낮다. 출처: LendingMemoHJCO Capital Partners 의 보고서에 다르면, 렌딩클럽(LendingClub), 프로스퍼(Prosper)와 같은 미국 주요 P2P금융업체들은 개인신용대출을 기반으로 하고 있다. 이 회사들이 2007년부터 2014년까지의 기간 동안 경기 변동과 상관없이 평균적으로 연 7.0% 이상의 수익률을 달성할 수 있었던 것은 "다수"의 "상호연관성이 낮은" 개인신용대출에 분산투자하였기 때문이다.개인대출자들은 모두가 서로 다른 직업과 소비 패턴을 갖고 있기 때문에 상호 완벽하게 독립적이다. 따라서 개인신용대출에 분산투자하는 것 자체가 단순히 금액 면에서 뿐만 아니라 자산의 특성 면에서 유의미한 분산투자를 의미한다.반면, 부동산 시장은 경기 변동과의 상호연관성이 매우 높다. 그렇다면 다수의 부동산 PF대출에 분산하여 투자하는 경우 어떨까? 이 경우 위에서 첫번째로 언급한 다수의 자산에 분산투자는 가능하지만, 투자한 자산 모두가 부동산 시장과의 연관성이 높기 때문에 진정한 분산투자로 해석되기 어렵다. 경기 변동으로 인해 과열된 부동산 시장이 침체되기 시작하면 모든 자산이 동일 리스크에 노출되기 때문이다. 다음 포스트에서는 부동산 담보 대출과 부동산 PF대출의 차이점에 대해서 설명하고, 2011년 저축은행 사태의 원인이었던 부동산 PF대출의 구체적인 사례 분석을 해보기로 한다.금융선진국들의 사례에서와 마찬가지로 국내에서도 P2P금융이 중금리 시장의 중요한 한 축이 될 것으로 기대한다. 아직 발아기에 있는 국내 P2P금융시장이 건전하게 성숙하기 위해서는 "다수"의 "상호연관성이 낮은" 자산에 유의미한 분산투자가 이루어져야 할 것이다.
조회수 1049

레고를 만들다 든 startup 관련 생각들...

스타워즈 개봉 기념으로 X-wing fighter를 하나 구매하여, 하나하나 만들면서 들었던 생각들을 사진과 함께 정리해 보았다. 그렇다! 8~14세가 적정 연령이지만 38세 아저씨가 본인이 갖기 위해 사고 직접 조립했다. 영화를 보신 분이라면, X-wing fighter가 등장하는 장면에서 이 비행기가 얼마나 멋지게 나오는지 알 것이다. 그 장면에서 난 정말  감동받았다 ㅜㅜ암튼 그런 레고를 하나 만들면서 들었던 몇몇 생각들을 짧게 정리!1. 레고의 설명서에는 말이 필요 없다.일단 레고의 제품 설명서에는 말이 한마디도 없다. 그냥 보면 알게 된다는 것이고, 사진과 숫자로 잘 표현하기 때문에 그냥 잘 따라가다 보면 어느새 완성이 되어버리는 것이다. 파펨(paffem)의 경우, 고객들에게 제품을 배송할 때, 소개 카드 한 장이 동봉되는데 거기에는 텍스트들이 난무한다. ㅜㅜ말로 설명을 해야 고객에게 우리 서비스가 무엇인지 설명할 수 있기 때문인데, 이것을 어떻게 쉽게 고객들에게 전달해볼까? 에 대한 고민을 진행 중이고, 동영상으로 이 것을 해결하는 작업을 진행하고 있다. 또한 파펨을 언제 이용하면 좋은지에 대한 설명을... 글이 아닌 영상으로 풀기!2. 레고는 단순 조립이 아니다.사실 레고를 만들다 보면 그냥 멍하니.. 설명서에서 하라는 순서대로 따라 하는 경우가 많다. 그런데 그 와중에도 레고 디자이너의 의도들이 느껴지는 경우가 있는데, 그럴  때마다 이 디자이너가 얼마나 고민을 많이 했고, 그 의도를 숨겨놓았는지를 찾아가면서 감동하게 된다. 다 만들어지고 나면 보이지 않는 것들에 까지도 하나하나 블록을  달리해가면서 그게 왜 거기에 있어야 하는지에 대한 설계를 하고 있고, 또한 그 대상의 원리 같은 것에 대해서도 설명을 하고 싶은 의도를 곧곧에 숨겨 놓았다.예를 들면 왜 굳이 1번(아래 사진 중)에서 한 개로 만들어도 되는 부품을, 두개를 따로 만들어서 조립하게 했을까? 이런 질문들이 튀어나올  수밖에 없다.3. 내부 조율은 어떻게 할까?아래 부품을 보면서 들었던 생각이, 저런 부품은 레고의 다른 "모델"들에서는 사용되지 않을 것인데, 굳이 저렇게 까지 만들었어야 하는  것일까?라는 생각이 들었다. 디자인 부서에는 당연히 저렇게 만들어야 한다고 주장했을 터이고, 제조 쪽 부서에서는 호환되지 않는 제품의 경우는 원가, 공정의 번거로움 등등의 이유로 거부를 했을 것이라는 상상을 해보았다. (이런 부서간의 다툼?은 사실 회사들에서는 일상이다)내가 어릴 때만 해도 레고가 이렇게 다양한 제품(모델)을 만들지는 않았고, 대부분 호환되는 블록들로만 만들어서,  맘대로  이것저것 만드는 재미가 있었던 것 같은데, 요즘의 레고는 굉장히 디테일을 살리고 실사들을 하나의 미니어처 화 시키는 작업에 공을 들이고 있다. 아마도 계속해서 본인들의 본질은 변하지 않되 정체성에 대한 고민을 하고 있는 듯. 또한 이런 상품들이 많아지면서 덕후들은 계속 양산되고 있다.4. 오퍼레이션 관리의 신, 레고아래 사진은 남은 블록들이다. 대부분 아주 작은 부품들을 몇 개씩 더 넣어주는데, 이것은 물론 일부러 더 넣어주는 것이겠지만..여기서 하나의 호기심이 생긴 것이.. 레고에서는 저런 부품들의 종류와 개수를 어떻게 정확하게 맞춰  넣을까?라는 것이다.사실 파펨(paffem) 박스를 포장할 때도 많은 요소들이 들어가는데, 일단 향수, 이미지 카드, 설명카드, 바틀 부착용 스티커, 첫 구매고객의 경우는 선택하지 않은 향의 샘플까지.. 암튼 이것들도 뭔가 빠져서 갈 때가 많고, 실수를 하는 경우가 많은데.. 레고의 경우는 그 많은 그리고 그 다양한 블록들을 어떻게 하나하나 실수하지 않고 넣을까? 물론 기계가 하겠지?5. 빅픽쳐를 설명해주는 레고의 위엄조립의 매 챕터에서는 그 챕터의 완성작으로 Big picture를 보여준다. 4번의 봉다리를 뜯어서 만들면 오른쪽의 모양과 같이 만들어진다는 것을 미리 보여주고 있다. 내가 항상 중요하게 생각하는 "예측가능성"에 대한 너무나도 좋은 예시인 듯하다. 그리고 저 숫자 4와 같이 블록들을 모듈화 시켜두었기 때문에, 단계별로 만드는 것도 가능하고 또한 부품들 찾느라 너무 많은 고생을 시키지 않는다는 장점 또한 살리고 있다. 이런 것들이 보이지 않는 고객 배려!!레고를 조립하며 들었던 이런저런 생각들을 짧게 정리해 보았는데, 레고는 그저 어린이들이 가지고 노는 장난감이 아니다. 물론 요즘은 아저씨 덕후들이 더 난리라는 것도 잘 알고 계실 듯한데.. 아무튼  철학들, 고민들, 노력들과  creative들이 어우러져서 이렇게 멋진 제품이 나오고 또 발전하여 위대한 제품들이 나온다.  정말 멋지다 레고!!#파펨 #스타트업 #창업가 #창업자 #마인드셋 #인사이트
조회수 2225

Tabnabbing 피싱 공격의 동작 원리와 대응책

브라우저에서 사용자의 개인 정보를 가로채는 여러가지 피싱 공격 기법이 있습니다. 이 글에서는 그 중에서도 상대적으로 단순해서 과소평가된 Tabnabbing 공격의 동작 원리와 대응책을 함께 알아보겠습니다.Tabnabbing 의 동작 원리Tabnabbing은 HTML 문서 내에서 링크(target이 _blank인 Anchor 태그)를 클릭 했을 때, 새롭게 열린 탭(또는 페이지)에서 기존의 문서의 location을 피싱 사이트로 변경해 정보를 탈취하는 공격 기술을 뜻한다. 이 공격은 메일이나 오픈 커뮤니티에서 쉽게 사용될 수 있습니다.(출처: blog.jxck.io 영어 스펠링이 이상해 보이는 것은 기분 탓입니다)공격 절차는 다음과 같습니다:사용자가 cg**m**.example.com에 접속합니다.해당 사이트에서 happy.example.com으로 갈 수 있는 외부 링크를 클릭합니다.새 탭에 happy.example.com가 열립니다.happy.example.com에는 window.opener 속성이 존재합니다.자바스크립트를 사용해 opener의 location을 피싱 목적의 cg**n**.example.com/login 으로 변경합니다.사용자는 다시 본래의 탭으로 돌아옵니다.로그인이 풀렸다고 착각하고 아이디와 비밀번호를 입력한다.cg**n**.example.com은 사용자가 입력한 계정 정보를 탈취한 후 다시 본래의 사이트로 리다이렉트합니다.예제: 네이버 메일 vs. Gmail시나리오를 하나 그려볼까요?공격자가 네이버 계정을 탈취할 목적으로 여러분에게 세일 정보를 담은 메일을 보냅니다. 그 메일에는 [자세히 보기]라는 외부 링크가 포함되어 있습니다. 물론 이 세일 정보는 가짜지만 공격자에겐 중요하지 않습니다. 메일을 읽는 사람이 유혹에 빠져 링크를 클릭하면 그만이죠.(상단의 주소를 주목하세요)하지만 Gmail은 이 공격이 통하지 않습니다. Gmail은 이러한 공격을 막기 위해 Anchor 태그에 data-saferedirecturl 속성을 부여해 안전하게 리다이렉트 합니다.rel=noopener 속성이러한 공격의 취약점을 극복하고자 noopener 속성이 추가됐습니다. rel=noopener 속성이 부여된 링크를 통해 열린 페이지는 opener의 location변경과 같은 자바스크립트 요청을 거부합니다. 정확히 말해서 Uncaught TypeError 에러를 발생시킵니다(크롬 기준).이 속성은 Window Opener Demo 페이지를 통해 테스트해볼 수 있습니다. 크롬은 버전 49, 파이어폭스 52부터 지원합니다. 파이어폭스 52가 2017년 3월에 릴리즈 된 것을 감안하면 이 속성 만으로 안심하긴 힘들겠네요. 자세한 지원 여부는 Link types를 참고하세요.따라서, 이러한 공격이 우려스러운 서비스라면 blankshield 등의 라이브러리를 사용해야 합니다:blankshield(document.querySelectorAll('a[target=_blank]')); 참고로, noopener 속성은 이 외에도 성능 상의 이점도 있습니다. _blank 속성으로 열린 탭(페이지)는 언제든지 opener를 참조할 수 있습니다. 그래서 부모 탭과 같은 스레드에서 페이지가 동작합니다. 이때 새 탭의 페이지가 리소스를 많이 사용한다면 덩달아 부모 탭도 함께 느려집니다. noopener 속성을 사용해 열린 탭은 부모를 호출할 일이 없죠. 따라서 같은 스레드일 필요가 없으며 새로운 페이지가 느리다고 부모 탭까지 느려질 일도 없습니다.성능 상의 이점에 대한 자세한 내용은 The performance benefits of rel=noopener을 참고하세요.참고자료Tabnabbing: A New Type of Phishing AttackTarget=”_blank” - the most underestimated vulnerability ever링크에 rel=noopener를 부여해 Tabnabbing을 대비(일어)The performance benefits of rel=noopener
조회수 1479

HBase 설정 최적화하기 - VCNC Engineering Blog

커플 필수 앱 비트윈은 여러 종류의 오픈 소스를 기반으로 이루어져 있습니다. 그 중 하나는 HBase라는 NoSQL 데이터베이스입니다. VCNC에서는 HBase를 비트윈 서비스의 메인 데이터베이스로써 사용하고 있으며, 또한 데이터 분석을 위한 DW 서버로도 사용하고 있습니다.그동안 두 개의 HBase Cluster 모두 최적화를 위해서 여러 가지 설정을 테스트했고 노하우를 공유해 보고자 합니다. 아랫은 저희가 HBase를 실제로 저희 서비스에 적용하여 운영하면서 최적화한 시스템 구성과 설정들을 정리한 것입니다. HBase를 OLTP/OLAP 목적으로 사용하고자 하는 분들에게 도움이 되었으면 좋겠습니다. 아래 구성을 최적화하기 위해서 했던 오랜 기간의 삽질기는 언젠가 따로 포스팅 하도록 하겠습니다.HBaseHBase는 Google이 2006년에 발표한 BigTable이라는 NoSQL 데이터베이스의 아키텍처를 그대로 따르고 있습니다. HBase는 뛰어난 Horizontal Scalability를 가지는 Distributed DB로써, Column-oriented store model을 가지고 있습니다. 사용량이 늘어남에 따라서 Regionserver만 추가해주면 자연스럽게 Scale-out이 되는 구조를 가지고 있습니다. 또한, Hadoop 특유의 Sequential read/write를 최대한 활용해서 Random access를 줄임으로 Disk를 효율적으로 사용한다는 점을 특징으로 합니다. 이 때문에 HBase는 보통의 RDBMS와는 다르게 Disk IO가 병목이 되기보다는 CPU나 RAM 용량이 병목이 되는 경우가 많습니다.HBase는 많은 회사가 데이터 분석을 하는 데 활용하고 있으며, NHN Line과 Facebook messenger 등의 메신저 서비스에서 Storage로 사용하고 있습니다.시스템 구성저희는 Cloudera에서 제공하는 HBase 0.92.1-cdh4.1.2 release를 사용하고 있으며, Storage layer로 Hadoop 2.0.0-cdh4.1.2를 사용하고 있습니다. 또한, Between의 데이터베이스로 사용하기 위해서 여러 대의 AWS EC2의 m2.4xlarge 인스턴스에 HDFS Datanode / HBase Regionserver를 deploy 하였습니다. 이는 m2.4xlarge의 큰 메모리(68.4GB)를 최대한 활용해서 Disk IO를 회피하고 많은 Cache hit이 나게 하기 위함입니다.또한 Highly-Available를 위해서 Quorum Journaling node를 활용한 Active-standby namenode를 구성했으며, Zookeeper Cluster와 HBase Master도 여러 대로 구성하여 Datastore layer에서 SPOF를 전부 제거하였습니다. HA cluster를 구성하는 과정도 후에 포스팅 하도록 하겠습니다.HDFS 최적화 설정dfs.datanode.handler.countHDFS에서 외부 요청을 처리하는 데 사용할 Thread의 개수를 정하기 위한 설정입니다. 기본값은 3인데 저희는 100으로 해 놓고 사용하고 있습니다.dfs.replicationHDFS 레벨에서 각각의 데이터가 몇 개의 독립된 인스턴스에 복사될 것 인가를 나타내는 값입니다. 저희는 이 값을 기본값인 3으로 해 놓고 있습니다. 이 값을 높이면 Redundancy가 높아져서 데이터 손실에 대해서 더 안전해지지만, Write 속도가 떨어지게 됩니다.dfs.datanode.max.transfer.threads하나의 Datanode에서 동시에 서비스 가능한 block 개수 제한을 나타냅니다.과거에는 dfs.datanode.max.xcievers라는 이름의 설정이었습니다.기본값은 256인데, 저희는 4096으로 바꿨습니다.ipc.server.tcpnodelay / ipc.client.tcpnodelaytcpnodelay 설정입니다. tcp no delay 설정은 TCP/IP network에서 작은 크기의 패킷들을 모아서 보냄으로써 TCP 패킷의 overhead를 절약하고자 하는 Nagle's algorithm을 끄는 것을 의미합니다. 기본으로 두 값이 모두 false로 설정되어 있어 Nagle's algorithm이 활성화되어 있습니다. Latency가 중요한 OLTP 용도로 HBase를 사용하시면 true로 바꿔서 tcpnodelay 설정을 켜는 것이 유리합니다.HBase 최적화 설정hbase.regionserver.handler.countRegionserver에서 외부로부터 오는 요청을 처리하기 위해서 사용할 Thread의 개수를 정의하기 위한 설정입니다. 기본값은 10인데 보통 너무 작은 값입니다. HBase 설정 사이트에서는 너무 큰 값이면 좋지 않다고 얘기하고 있지만, 테스트 결과 m2.4xlarge (26ECU) 에서 200개 Thread까지는 성능 하락이 없는 것으로 나타났습니다. (더 큰 값에 관해서 확인해 보지는 않았습니다.)저희는 이 값을 10에서 100으로 올린 후에 약 2배의 Throughput 향상을 얻을 수 있었습니다.hfile.block.cache.sizeHBase 의 block 들을 cache 하는데 전체 Heap 영역의 얼마를 할당한 것인지를 나타냅니다. 저희 서비스는 Read가 Write보다 훨씬 많아서 (Write가 전체의 약 3%) Cache hit ratio가 전체 성능에 큰 영향을 미칩니다.HBase 에서는 5분에 한 번 log 파일에 LruBlockCache (HBase 의 Read Cache) 가 얼마 만큼의 메모리를 사용하고 있고, Cache hit ratio가 얼마인지 표시를 해줍니다. 이 값을 참조하셔서 최적화에 사용하실 수 있습니다.저희는 이 값을 0.5로 설정해 놓고 사용하고 있습니다. (50%)hbase.regionserver.global.memstore.lowerLimit / hbase.regionserver.global.memstore.upperLimit이 두 개의 설정은 HBase에서 Write 한 값들을 메모리에 캐쉬하고 있는 memstore가 Heap 영역의 얼마만큼을 할당받을지를 나타냅니다. 이 값이 너무 작으면 메모리에 들고 있을 수 있는 Write의 양이 한정되기 때문에 디스크로 잦은 flush가 일어나게 됩니다. 반대로 너무 크면 GC에 문제가 있을 수 있으며 Read Cache로 할당할 수 있는 메모리를 낭비하는 것이기 때문에 좋지 않습니다.lowerLimit와 upperLimit의 두 가지 설정이 있는데, 두 개의 설정이 약간 다른 뜻입니다.만약 memstore 크기의 합이 lowerLimit에 도달하게 되면, Regionserver에서는 memstore들에 대해서 'soft'하게 flush 명령을 내리게 됩니다. 크기가 큰 memstore 부터 디스크에 쓰이게 되며, 이 작업이 일어나는 동안 새로운 Write가 memstore에 쓰일 수 있습니다.하지만 memstore 크기의 합이 upperLimit에 도달하게 되면, Regionserver는 memstore들에 대한 추가적인 Write를 막는 'hard'한 flush 명령을 내리게 됩니다. 즉, 해당 Regionserver이 잠시 동안 Write 요청을 거부하게 되는 것입니다. 보통 lowerLimit에 도달하면 memstore의 크기가 줄어들기 때문에 upperLimit까지 도달하는 경우는 잘 없지만, write-heavy 환경에서 Regionserver가 OOM으로 죽는 경우를 방지하기 위해서 hard limit가 존재하는 것으로 보입니다.hfile.block.cache.size와 hbase.regionserver.global.memstore.upperLimit의 합이 0.8 (80%)를 넘을 수 없게 되어 있습니다. 이는 아마 read cache 와 memstore의 크기의 합이 전체 Heap 영역 중 대부분을 차지해 버리면 HBase의 다른 구성 요소들이 충분한 메모리를 할당받을 수 없기 때문인 듯합니다.저희는 이 두 개의 설정 값을 각각 0.2, 0.3으로 해 놓았습니다. (20%, 30%)ipc.client.tcpnodelay / ipc.server.tcpnodelay / hbase.ipc.client.tcpnodelayHDFS의 tcpnodelay 와 비슷한 설정입니다. 기본값은 전부 false입니다.이 설정을 true로 하기 전에는 Get/Put 99%, 99.9% Latency가 40ms 와 80ms 근처에 모이는 현상을 발견할 수 있었습니다. 전체 요청의 매우 작은 부분이었지만, 평균 Get Latency가 1~2ms 내외이기 때문에 99%, 99.9% tail이 평균 Latency에 큰 영향을 미쳤습니다.이 설정을 전부 true로 바꾼 후에 평균 Latency가 절반으로 하락했습니다.Heap memory / GC 설정저희는 m2.4xlarge가 제공하는 메모리 (68.4GB)의 상당 부분을 HBase의 Read/Write cache에 할당하였습니다. 이는 보통 사용하는 Java Heap 공간보다 훨씬 큰 크기이며 심각한 Stop-the-world GC 문제를 일으킬 수 있기 때문에, 저희는 이 문제를 피하고자 여러 가지 설정을 실험하였습니다.STW GC time을 줄이기 위해서 Concurrent-Mark-and-sweep GC를 사용했습니다.HBase 0.92에서부터 기본값으로 설정된 Memstore-Local Allocation Buffer (MSLAB) 을 사용했습니다. hbase.hregion.memstore.mslab.enabled = true #(default)hbase-env.sh 파일을 다음과 같이 설정했습니다. HBASE_HEAPSIZE = 61440 #(60GB) HBASE_OPTS = "-XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=70 -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps"GC log를 Python script로 Parsing해서 STW GC 시간을 관찰하고 있습니다. 지금까지 0.2초 이상의 STW GC는 한 번도 발생하지 않았습니다.그 밖에 도움이 될 만한 설정들hbase.hregion.majorcompactionHBase는 하나의 Region에 대해서 여러 개의 StoreFile을 가질 수 있습니다. 그리고 주기적으로 성능 향상을 위해서 이 파일들을 모아서 하나의 더 큰 파일로 합치는 과정을 진행하게 됩니다. 그리고 이 과정은 많은 CPU usage와 Disk IO를 동반합니다. 그리고 이때 반응 속도가 다소 떨어지게 됩니다. 따라서 반응 속도가 중요한 경우에는, 이 Major compaction을 off-peak 시간대를 정해서 manual 하게 진행하시는 것이 좋습니다.저희는 사용자의 수가 상대적으로 적은 새벽 시간대에 crontab 이 실행시키는 script가 돌면서 전체 Region에 대해서 하나하나 Major Compaction이 진행되도록 하였습니다.기본값은 86,400,000 (ms)로 되어 있는데, 이 값을 0으로 바꾸시면 주기적인 Major Compaction이 돌지 않게 할 수 있습니다.hbase.hregion.max.filesizeHBase는 하나의 Region이 크기가 특정 값 이상이 되면 자동으로 2개의 Region으로 split을 시킵니다. Region의 개수가 많지 않을 때는 큰 문제가 없지만, 계속해서 데이터가 쌓이게 되면 필요 이상으로 Region 수가 많아지는 문제를 나을 수 있습니다. Region 수가 너무 많아지면 지나친 Disk IO가 생기는 문제를 비롯한 여러 가지 안 좋은 점이 있을 수 있기 때문에, split 역시 manual 하게 하는 것이 좋습니다. 그렇다고 Table의 Region 수가 너무 적으면 Write 속도가 떨어지거나 Hot Region 문제가 생길 수 있기 때문에 좋지 않습니다.HBase 0.92.1 에서는 기본값이 1073741824(1GB)로 되어 있는데, 저희는 이 값을 10737418240(10GB)로 늘인 후에 manual 하게 split을 하여 Region의 개수를 조정하고 있습니다.hbase.hregion.memstore.block.multipliermemstore의 전체 크기가 multiplier * flush size보다 크면 추가적인 Write를 막고 flush가 끝날때까지 해당 memstore는 block 됩니다.기본값은 2인데, 저희는 8로 늘려놓고 사용하고 있습니다.dfs.datanode.balance.bandwidthPerSec부수적인 설정이지만, HDFS의 Datanode간의 load balancing이 일어나는 속도를 제한하는 설정입니다. 기본값은 1MB/sec로 되어 있지만, 계속해서 Datanode를 추가하거나 제거하는 경우에는 기본값으로는 너무 느릴 때가 있습니다. 저희는 10MB/sec 정도로 늘려서 사용하고 있습니다.dfs.namenode.heartbeat.recheck-intervalHDFS namenode에만 해당되는 설정입니다.Datanode가 응답이 없는 경우에 얼마 후에 Hadoop cluster로부터 제거할 것인지를 나타내는 값입니다.실제로 응답이 없는 Datanode가 떨어져 나가기까지는 10번의 heartbeat가 연속해서 실패하고 2번의 recheck역시 실패해야 합니다. Heartbeat interval이 기본값인 3초라고 하면, 30초 + 2 * recheck-interval 후에 문제가 있는 Datanode가 제거되는 것입니다.기본값이 5분으로 되어 있는데, fail-over가 늦어지기 때문에 사용하기에는 너무 큰 값입니다. 저희는 문제가 있는 Datanode가 1분 후에 떨어져 나갈 수 있도록 이 값을 15,000 (ms) 으로 잡았습니다.Read short-circuitRegionServer가 로컬 Datanode로부터 block을 읽어올 때 Datanode를 통하지 않고 Disk로부터 바로 읽어올 수 있게 하는 설정입니다.데이터의 양이 많아서 Cache hit이 낮아 데이터 대부분을 디스크에서 읽어와야 할 때 효율적입니다. Cache hit에 실패하는 Read의 Throughput이 대략 2배로 좋아지는 것을 확인할 수 있습니다. OLAP용 HBase에는 매우 중요한 설정이 될 수 있습니다.하지만 HBase 0.92.1-cdh4.0.1까지는 일부 Region이 checksum에 실패하면서 Major compaction이 되지 않는 버그가 있었습니다. 현재 이 문제가 해결되었는지 확실하지 않기 때문에 확인되기 전에는 쓰는 것을 추천하지는 않습니다.설정하는 방법은 다음과 같습니다. dfs.client.read.shortcircuit = true #(hdfs-site.xml) dfs.block.local-path-access.user = hbase #(hdfs-site.xml) dfs.datanode.data.dir.perm = 775 #(hdfs-site.xml) dfs.client.read.shortcircuit = true #(hbase-site.xml)Bloom filterBloom filter의 작동방식에 대해 시각적으로 잘 표현된 데모 페이지HBase는 Log-structured-merge tree를 사용하는데, 하나의 Region에 대해서 여러 개의 파일에 서로 다른 version의 값들이 저장되어 있을 수 있습니다. Bloom filter는 이때 모든 파일을 디스크에서 읽어들이지 않고 원하는 값이 저장된 파일만 읽어들일 수 있게 함으로써 Read 속도를 빠르게 만들 수 있습니다.Table 단위로 Bloom filter를 설정해줄 수 있습니다.ROW와 ROWCOL의 두 가지 옵션이 있는데, 전자는 Row key로만 filter를 만드는 것이고, 후자는 Row+Column key로 filter를 만드는 것입니다. Table Schema에 따라 더 적합한 설정이 다를 수 있습니다.저희는 데이터 대부분이 메모리에 Cache 되고 하나의 Region에 대해서 여러 개의 StoreFile이 생기기 전에 compaction을 통해서 하나의 큰 파일로 합치는 작업을 진행하기 때문에, 해당 설정을 사용하지 않고 있습니다.결론지금까지 저희가 비트윈을 운영하면서 얻은 경험을 토대로 HBase 최적화 설정법을 정리하였습니다. 하지만 위의 구성은 어디까지나 비트윈 서비스에 최적화되어 있는 설정이며, HBase의 사용 목적에 따라서 달라질 수 있음을 말씀드리고 싶습니다. 그래서 단순히 설정값을 나열하기보다는 해당 설정이 어떤 기능을 하는 것인지 저희가 아는 한도 내에서 설명드리려고 하였습니다. 위의 글에서 궁금한 점이나 잘못된 부분이 있으면 언제든지 답글로 달아주시길 바랍니다. 감사합니다.
조회수 1281

이케아(IKEA), 스타트업 진화의 산물

몇 년 전에 유명한 개발자 분과 의기투합하여 이런 서비스를 만들어보면 어떨까요?라고 논의하고.. 딱 5장의 기획서를 만들어서 VC를 찾아가 미팅을 한 적이 있었다. 다행히 만나 논의하는 자리까지는 가지게 되었지만, 지금 생각하면 조금 무모했다는 생각이 든다. ㅎㅎ 사실 그 다섯 장의 아이디어가 실제로 구현되고 만들어졌다면 아마도 그 모습과는 판이하게 달랐을 것이다.당연히 아이디어는 중요하다. 하지만, 기획서는 만들어지는 과정에서 큰 변화를 거칠 수밖에 없고.. 또한 론칭 이후에도 큰 변화를 겪을 수밖에 없다. 그래서 실행의 중요성이 엄청나다는 것을 뼈저리게 느끼고 있는 상황이며, 이러한 변화.. 즉, 인간이 계속해서 환경에 적응하며 진화해 온 것과 같이 스타트업의 서비스 또한 진화하지 않으면 생존하기 어렵다는 생각이다.그런데! 서비스의 진화는 기획자가 책상에 앉아서 기획서를 쓰겠다고 고민을 하다가 나오는 것이 아니라,어떻게 하면 더 만족스러운 서비스가 될 수 있을까?...라는 질문에 대한 해결책을 찾고, 실행하면서 진화해야 한다.  지금은 글로벌 가구 왕국인 이케아도 처음에는 스타트업으로 시작하였고, 그 진화의 과정을 거쳐 지금의 모습을 갖추게 되었다고 한다. 이케아의 창업 시점부터 다루고 있는 "IKEA, 스웨덴이 사랑한 이케아, 그 얼굴 속 비밀을 풀다"라는 책을 읽다 보면, 이케아의 창업 이후부터 서비스 진화를 설명해주는 부분이 있는데, 그 부분이 재미있었다.이케아도 처음부터 지금의 이케아가 아니었던 것이다.1. 이케아는 왜 조립식 가구.. 일까?이케아가 조립식 가구 형태로 판매하게 된 배경은, 통신판매업으로 여러 가지 제품을 팔던 회사(이케아의 전신)가 가구 공장을 인수하게 되었고, 역시 가구를 통신판매로 판매하기 시작했다. 그런데 가구는 배송이 까다로웠고, 이를 해결하기 위해.. 고객이 직접 조립하는 가구를 만들자!! 의 아이디어가 실행되었다. 그것도 1950년대에...  2. 왜 창고형 매장인가?이케아가 초창기 선풍적인 인기를 끌면서, 스톡홀름 매장을 오픈 었는데.. 개장하자마자 사람이 너무 많이 와서, 카운터에서 고객이 주문한 상품을 창고에서 물건을 가져오는데 시간이 많이 걸렸다고 한다. 그래서 고민 끝에 창고를 개방해서 고객이 직접 물건을 챙길 수 있도록 하였다.  3. 왜 핫도그를 싸게 파는가?쇼핑을 하느라 지치고 또는 계산대에서 줄이 너무 길었거나.. 원하는 상품을 구매하지 못한 고객들에게 즐거움을 주기 위함이었다고 한다. 보통 판매되는 핫도그의 1/4의 가격으로 핫도그를 판매해서 고객들이 계산대를 나오면 바로 즐길 수 있도록 준비하였다고 한다.  계속해서 관찰!좀 더 효율성을 높이는 서비스에 대한 고민, 고객의 대기 시간을 줄여주기 위한 고민.. 고객의 기분을 즐겁게 해 주기 위한 고민들이 모여 지금의 이케아가 된 것이고.. 이러한 관찰은 (내가 생각하기에는) 기획 부서의 사람들이라기보다는, 그 현장에서 일하는 사람들의 의견이 반영되어 이렇게 진화한 것이 아닐까?라는 추측을 해본다.진화의 주체는 책상위의 기획자가 아니라..현장 Staff들이 주체가 되어야...파펨에는 기획만을 담당하는 staff이 없다(Pie Startup). 작은 조직의 효율성을 기하기 위함이고.. 구성원 한 명 한 명이 모두 본인의 주요 업무 영역에서 일하면서 문제점을 발견하고 그것을 해결하기 위한 기획을 하며, 또한 실행 안을 만들고 적용해 보는 것이 최선이라는 생각이다. 대표의 역할은 그것의 우선순위를 정하고, 조율하며 필요한 자원을 적절하게 지원해 주는 것이다.파펨도 계속해서 진화하고 있다. 패키지에 대한 변화도 조금씩 이루어지고 있고, 또한 고객들이 파펨을 사용하면서 생기는 불편함을 해결하는 방향으로 변화해 가고 있다. 예를 들면, 고객들이 향수를 정기 구독하다가 남는 것들이 생기면 고객들은 정기결제를 중단하는 사태가 발생(어릴 적 학습지가 쌓이면 엄마에게 등짝 스매시를 당하고 당장 학습지가 끊기는 사태와 같이 ^^;;)할 수 도 있는데, 이럴 경우를 방지하기 위해 향수 팔레트를 만들어 제공하고, 고객들이 향수의 특성별로 Weather, occasion & fashion 등과 잘 어울리는 향을 쉽게 선택 및 사용할 수 있도록 돕는 tool을 제공하는 프로젝트도 진행 중에 있다.파펨도 다음주에 고객의 의견을 듣는 survey를 준비하고 있다. 좋은 말씀 부탁드립니다 .고객님!!!#파펨 #스타트업 #창업가 #창업자 #마인드셋 #인사이트

기업문화 엿볼 때, 더팀스

로그인

/