스토리 홈

인터뷰

피드

뉴스

조회수 1820

스켈티인터뷰 / 스켈터랩스의 잡학다이너마이트 변규홍 님을 만나보세요:)

Editor. 스켈터랩스에서는 배경이 모두 다른 다양한 멤버들이 함께 모여 최고의 머신 인텔리전스 개발을 향해 힘껏 나아가고 있습니다. 스켈터랩스의 식구들, Skeltie를 소개하는 시간을 통해 우리의 일상과 혁신을 만들어가는 과정을 들어보세요! 스켈터랩스의 잡학다이너마이트 변규홍 님을 만나보세요:)PART1. About Skelter Labs사진1. 스켈터랩스의 소프트웨어 엔지니어, 변규홍 님Q. 간단한 자기소개를 부탁한다.A. 이름은 변규홍. 스켈터랩스에서 소프트웨어 엔지니어로 일하며, 컴퓨터에게 열심히 한국어를 가르치고 함께 배우고 있다. 대충 20년 전부터 컴퓨터 공부를 시작해서 컴퓨터 관련된 일이라면 사족을 못쓰는 덕후이기도 하다.Q. 현재 스켈터랩스에서 어떤 업무를 맡고있는가.A. 스켈터랩스의 인공지능 대화 엔진 개발 팀인 헤르메스(Hermes)에서 흔히 ‘챗봇’이라 부르는 인공지능 대화 엔진을 만들고 있다. 우리가 만드는 인공지능 대화 엔진은 ‘챗봇을 만들고자 하는 사람들이 누구나 쉽게 챗봇을 만들도록 돕는 편리한 사용'을 목표로 한다. 때문에 비개발자도 이해하기 쉽도록 효율적이고 간편한 UI와 구조로 개발하고 있다. 거기서 나는 어떻게 하면 컴퓨터가 사람이 하는 말을 더 잘 알아듣고 잘 대답할 수 있는지 연구하고 있다. 어떤 처리를 해야하는지, 언어의 어떤 패턴을 인식하는지 등 ‘자연어 처리(Natural Language Processing,NLP)’ 혹은 자연언어처리라고 불리는 기술 전반에 대한 연구를 진행하고 있다.Q. 자연어 처리라는 부분이 생소하다. 언어의 분석이나 처리에 대한 얘기를 더 해줄 수 있나.A. 챗봇 위주로 설명해 보자. 우리가 한국어 문장을 컴퓨터나 스마트폰에 입력할 때, 특히 채팅할 때는 문장의 변화가 심한 편이다. 띄어쓰기를 실수할 수도 있고 급식체같은 축약어를 사용하기도 한다. 같은 의도를 담은 문장이 아주 다르게 표현되는가 하면, 비슷한 문장이 어순이나 표현 한 두 가지만 바뀌어도 전혀 다른 뜻이 되기도 한다. 이러한 인간의 언어를 컴퓨터가 잘 알아들을 수 있도록 분석하고 처리하는 것이다. 입력된 문장에서 어떤 부분이 명사고 어떤 부분이 동사인지를 찾거나, 문장 속에서 어떤 형태소에 집중해야 하는지 분석한다. 그리고 은행 계좌나 전화번호처럼 규칙에 맞는 숫자가 다양하게 입력될 수 있는 경우를 찾아내기도 한다. 이런 과정을 거쳐 사람이 어떤 의도를 갖고 입력한 문장인지, 어떤 정보가 담겨있는지 식별해낼 수 있다.Q. 들어보니 기술에 대한 지식뿐만 아니라 언어학에 대한 조예가 필요한 분야로 보인다.A. 맞다. 이 분야를 전산학(컴퓨터공학)에서는 ‘자연언어처리’라고 하고 언어학에서는 ‘전산언어학(Computational Linguistics)’ 혹은 ‘계산언어학’이라고 한다. 학제 간 학문으로서의 성격이 강한 분야다. 초창기에는 언어학자들이 찾아낸 인간 언어의 구조, 규칙을 컴퓨터공학자 / 전산학자들이 프로그램으로 구현하는 연구가 많았다. 그러다가 애초의 예상보다 인간의 언어 구조가 훨씬 더 복잡하다는 것을 인식한 이후부터는 인간의 언어에서 규칙성을 찾는 과정도 통계적 방법 등을 통해 컴퓨터의 힘을 빌리게 되었다. 최근에는 요즘 화두인 머신러닝 기법을 적극적으로 적용하면서 연구 트렌드가 조금씩 바뀌고 있다. 다양한 규칙에 따라 문장을 분석하기보다, 빅데이터로 정리된 방대한 언어생활 자료를 컴퓨터 스스로 학습하여 문장 속에서 필요한 정보를 찾아내는 식으로의 전환이랄까. 하지만 여전히 좀 더 좋은 결과물을 내려면 언어학에 대한 지식과 규칙성에서 찾아낸 정보들이 필요한 것도 사실이다. 그래서 스켈터랩스에서는 규칙 기반 기법들과 머신러닝 기법 모두를 하이브리드 형태로 결합하여 대화 엔진을 개발하고 있다.Q. 아무리 다양한 형태로 기법을 결합하여 사용하더라도, 엔지니어가 언어학에 대해 연구하기는 쉽지 않아 보인다. 언어학을 별도로 공부하거나 혹은 언어학에 대한 관심을 이전부터 가지고 있었는지.A. 언어학이라기보다는 사실 나는 대학교에서 문학 동아리 활동을 오랫동안 했다. 자연스럽게 다양한 활동을 통해서 문학에 대한 얘기를 하다 보니 언어에 대한 관심도 꽤 높았던 것 같다. 무엇보다 구글코리아의 번역기 개발팀에서 인턴을 하며, 컴퓨터로 인간의 언어를 다루는 것이 굉장히 흥미롭다고 생각했고 꾸준히 관심을 이어왔다. Q. 구글 코리아 인턴 경험이 규홍님에게 여러모로 지대한 영향을 끼친 것으로 알고 있다. 그 얘기를 듣고 싶다.A. 대학에 처음 입학했을 때, 사실 실망감이 더 컸다. 합리적인 의사소통은 막혀있었고, 당시 학교의 학사제도 개편으로 인해 여러모로 시끄러운 상황이었다. 그러던 차에 마침 학교에 구글코리아에서 캠퍼스 리쿠르팅을 왔는데, 선배 중 한 명이 ‘왜 구글은 한국에서 인턴을 채용하지 않습니까' 라고 꽤나 당돌한 질문을 던졌다. 그렇게 구글 코리아 인턴 채용이 열려 면접 기회를 얻게 되었다. 당시 내 이력서에는 대학교 입학 후의 경력이라고는 연극동아리 공연 이력이 전부였기 때문에 일종의 두려움도 컸다. 하지만 일본어로 된 만화책을 컴퓨터에 넣으면 한국어로 번역된 만화책이 튀어나오게 하고, 컴파일(COMPILE) 사의 게임 중 미처 한국어로 번역되지 못한 게임들을 컴퓨터가 알아서 번역해 즐길 수 있게 하는, 그런 컴퓨터 프로그램을 직접 만들고 싶다는 꿈이 더 컸다. 마침 나의 면접관들도 구글 코리아 번역기 개발팀 분들이었다. 그렇게 구글 코리아 번역기 개발팀 인턴으로 입사하게 되었고, 그때의 경험이 나의 꿈의 실현 가능성에 대한 일종의 확신을 주었다.Q. 스켈터랩스에는 어떻게 입사하게 되었나A. 인턴 할 당시의 구글 코리아 사장이 지금 스켈터랩스 창업자, 조원규 대표님이다. 그리고 구글 코리아 면접관이었던 분이 우리 팀의 테크 리더(Tech Leader)를 맡고 있는 이충식 님이기도 하다. 작년 충식 님으로부터 어려운 문제를 풀어야 하는데 같이 한번 풀어보자는 연락을 받았다. 그 문제가 너무 어려울 것 같아서 답장을 망설이고 있었다. 그러다 이전 직장에 대한 염증과 새로운 일에 대한 호기심 등의 마음으로 충식님을 다시 만나 뵈니, 스켈터랩스에서 내가 어렸을 적 꿈꾸던 챗봇을 만들고 계셨다.Q.  스켈터랩스에서의 업무는 이전에 일했던 혹은 알고 있는 다른 개발자의 업무랑 어떻게 다른가. A. 사실 인공지능을 기반으로 한 스타트업에는 뛰어난 사람들이 많은 것 같다. 그러나 스켈터랩스가 다른 회사와 다른 점은 ‘내 동료가 누구인가'에 대한 인식의 범위가 조금 더 넓다는 점이다. 가령 디자이너는 디자이너끼리, 기획자들을 기획자끼리만 협력하고 부서에 따른 책임이나 업무 범위에 대해서 선을 긋는 문화가 흔히 있지 않나. 어떤 직장들은 수직적인 위계 구조를 강요하고 모든 걸 서류로 보고하게 만들기 때문에 일의 효율이 떨어지기도 한다. 그러나 스켈터랩스는 팀 간에, 직무 간에 서로의 업무 영역을 자로 재듯 규정하지 않고 넘나들며, 좀 더 활발한 소통을 추구한다. 덕분에 ‘하나의 공동체'라는 인식을 자연스럽게 가질 수 있다. 서로와 함께 일한다는 것에 대해 우리 스스로 가지는 자긍심도 대단하다. 사내에는 지인을 신규 입사자로 추천하는 채용 제도가 있는데, 그간 내가 일해왔던 회사 중 우리 회사만큼 열심히 지인들에게 추천하는 회사도 없었다. 사실 내가 일하는 회사가 별로면 친구에게 추천도 못 하지 않겠나. 그만큼 서로 만족하고, 자부심을 가지고 일한다는 것을 방증하는 면모인 것 같다.또한 스켈터랩스는 불필요한 서류 업무를 배제하는 대신, 아주 엄격한 코드 리뷰 시스템을 가지고 있다. 내가 과거에 근무했던 회사들은 많은 경우 상대적으로 지금 당장 작동하는 코드를 만들어 내는 것에 집중했다. 물론 이러한 방식이 때로는 실용적이다. 그러나 기능이 잘 작동되는지만 살피다 보니, 숨겨진 버그(Software Bug)가 남겨지고 이것이 뒤늦게 발견되어 더 큰 문제를 일으키기도 했다. 때로는 버그의 존재를 코드 작성자만이 알고 있기도 했다. 이렇듯 단기간 눈앞의 기능에만 집중하다가 코드의 품질이 저해되는 방식으로 개발이 진행되어 언젠가는 다시 수정해야 하는 일거리가 남겨지는 것을 ‘기술 부채(Technical Debt)’라고 부른다. 스켈터랩스의 코드 리뷰 문화는 사소한 영역까지 기술 부채를 남기지 않는다. 궁극적으로는 짧은 기간 완성도 높은 프로그램을 만들 수 있게 해주는 문화다. 엄격한 코드 리뷰가 가능한 것은 스켈터랩스의 개발자 역량이 높기 때문이기도 하다. 개발자들이 모두 기술에 대한 근본적인 이해와 최신 기술에 대한 섭렵을 두루 갖추었기에 타인이 작성한 코드도 바로 이해할 수 있다. 수준 높은 동료와 함께 일하며 피드백 받고 성장할 수 있다는 것은 회사의 굉장한 강점이라고 생각한다.사진2. 규홍 님과 다른 팀원 간의 코드 리뷰 모습.Q. 코드 리뷰 문화가 유익하기도 하지만, 일종의 압박감도 있을 것 같다. A. 압박감으로 여겨본 적은 없다. 한국 사회에서 개발자의 커리어에 대한 얘기를 나누다 보면 자연스럽게 ‘회사 일을 하다 보니 공부할 시간이 없어서 최신 기술을 알지 못해 뒤처진다.'라는 볼멘소리가 나온다. 그러나 스켈터랩스에서는 개발자 모두가 엄격한 코드리뷰를 거치는 과정에서 자연스럽게 더 나은 성능의 코드, 동료가 더 잘 이해할 수 있는 코드, 예상치 못한 예외 상황을 고려하는 코드를 작성하는 법을 실시간으로 배우게 되고, 때로는 그 과정에서 자연스럽게 코드 리뷰자가 제안하는 최신 기술에 대해 공부하고 습득하며 실력을 늘려나간다. 덕분에 코드 리뷰를 마치고 나면, 다음에 어떻게 해야 개선된 코드를 짤 수 있을지에 더 집중할 수 있고 실제로도 더 나은 코드를 작성할 수 있게 된다.물론 이런 문화가 신규 입사자로서는 다소 답답할 수 있을 것 같다. 나 또한 초반에는 ‘굳이 이런 디테일까지 다 잡아가며 이렇게 리뷰를 남겨야 할까'라는 생각을 해본 적도 있다. 그러나 스켈터랩스와 함께하는 시간이 점점 길어질수록, 꼼꼼한 리뷰로 기술 부채를 최소화하는 것이 팀 전체에도, 나의 성장에도 도움이 된다는 걸 느낀다.Q. 아무리 뛰어난 개발자가 있더라도 코드를 작성하는 사람은 한 명인데, 이를 함께 리뷰하다보면 작성된 코드를 이해하지 못하는 경우가 발생하지는 않나.A. 물론 그럴 수 있다. 때문에 스켈터랩스에서는 코드의 공동 소유, 공동 이해 개념을 깊이 이해하고, 잘 지킬 수 있게 만든다. 나만 이해할 수 있는 코드를 작성하면 장기적으로 다른 개발자들의 수정과 응용이 어려워진다. 그래서 스켈터랩스에서는 각 프로그래밍 언어별로 코딩 스타일 가이드를 준수할 것을 권장하고, 코드 리뷰 이전에도 가이드 준수 여부를 점검하는 도구를 활용하고 있다.Q. 스켈터랩스를 자랑한다면.A. 스켈터랩스는 아직 성장 중인, 그래서 ‘함께 만들어 갈 여지가 많은 회사'다. 나는 개인적으로 대기업부터 창업 초창기 단계의 스타트업까지 다양한 회사를 경험했는데, 이러한 과정에서 구성원 한 명 한 명이 회사의 문화와 기술적 원칙을 만들어가는데 얼마나 큰 영향을 주는지를 느꼈다. 스켈터랩스는 다양한 배경을 가진 개발자와 서로 영감을 주고받으며 함께 성장해가는 곳이다. 개발자 직군의 동료들과 비개발자 직군의 동료들이 끊임없이 소통하며 시행착오와 함께 점점 더 나은 기업문화를 만들어가고 있다. 그리고 실제로 이런 문화가 완성도 높은 프로그램을 만드는 데에 긍정적인 기여를 하고 있고, 현재는 성공 경험을 조금씩 안겨주고 있는 단계다. 역량 있는 인재들과 최신의 기술을 활용하여 새로운 결과물을 창출하는 것에 관심 있는 이들이라면 입사를 추천하고 싶다.#스켈터랩스 #사무실풍경 #업무환경 #사내복지 #기업문화 #개발팀 #팀원인터뷰 #팀원소개 #팀원자랑
조회수 307

“점점 더 좋은 답을 찾게 되는 것 같아요.”

인터뷰를 위해 작성한 질문지에 쓴 답을 보고 조금 감동받았다. 사실, 인터뷰 전 질문지는 흡족한 대답을 듣기 위함이라기보다 만나기 전 아이스-브레이킹 같은 개념이라 서로가 힘을 싣지 않기 마련인데 조윤성은 달랐다. 질문 하나하나에 얼마나 고민을 하고 성심성의껏 답을 썼을지 투명하게 보이는 답안들을 건네주었다. 더 추가적인 질문을 할 게 있을까 당황이 들 정도로 충분히 100% 다 눌러 담아낸 듯. 비록 질문지의 답을 그대로 적더라도, 계속 사람들을 만나고 더 좋은 답을 찾고 싶다는 그와 만나 좋은 답에 대한 이야기를 나누어야겠다는 생각이 들었다.인터뷰 시작하기 전, 자신감 충전 좀 하고 가시죠. 입사한지 얼마 되지 않았는데 이번에 처음 생긴 MBP(Most B.A.Table Player) 시상식(?)에서 유기적인 협업상을 받았잖아요. 축하해요!하하 너무 쑥스럽네요. 진짜 예상도 못 했거든요. 나 지금 잘하고 있는 건가, 뭘 더 해야 하는 건 아닌가 하는 생각이 들 찰나에 이런 상을 받게 되었네요. 앞으로 더 잘하라는 부담인 것 같기도 한데.. (웃음) 어쨌든 더 열심히 해보겠습니다!자, 기분 좋은 부담을 안고 인터뷰를 시작해볼까요? 먼저 조윤성이 어떤 사람인지 말해주세요.안녕하세요. 사람에 대한 관심이 많은 AE 조윤성입니다. 음, 쓸데없는 생각이 많은 사람일 수도 있는데요. 누군가가 어떤 행동이나 말을 하면 왜, 무슨 생각으로, 어떤 이유로 그런 말이나 행동을 했는지 궁금하고 생각하게 되는 편입니다.이런 성향(?)이기 때문에 지금 하는 일이 적성에 맞는 것 같은걸요. (웃음) 자연스럽게 이어질 것 같으니 B.A.T에서 무슨 일을 하고 있는지 알려주세요. 전 클라이언트 커뮤니케이션과 광고 기획을 담당하고 있습니다. 현재는 레드락, LG 소셜 캠퍼스, KT&G 등의 브랜드를 맡아 클라이언트와 내부 크리에이티브 팀 사이의 커뮤니케이션을 진행하고 디지털 컨텐츠 방향을 조율합니다. 또, 경쟁 PT도 준비하면서 제안서를 이끌어갈 빅 아이디어를 생각하고 온오프라인 캠페인 아이디어를 고민하고 있고요. 최근에는 신사업 준비를 위해 다양한 포토그래퍼와 PD 분들도 만나고 있어요! 워낙 사람들과 만나서 대화하는 걸 좋아하다 보니 즐겁게 돌아다니고 있습니다. [(좌) LG 소셜 캠퍼스, (우) 레드락 프로젝트 외에도 많은 프로젝트를 담당하고 있다.]B.A.T는 어떻게 알고 지원했는지 궁금해요.전 회사에서는 사수가 기본적인 방향을 잡아주고 퀄리티 컨트롤을 해주셔서 조금은 수동적으로 일을 했던 것 같아요. 스스로가 더 주체적인 개념이 되어 다양한 실무에 직접 부딪혀보고 싶다는 욕심이 생겼을 때, 우연히 B.A.T를 발견하게 되었습니다. 관심이 생겨 브런치를 정독하다 보니 가보지도 않은 회사에 일원이 된 듯한 호감을 느끼기도 했고, 스타트업이기에 하고 싶은 것들을 도전해볼 수 있겠다는 생각이 들어서 주저 없이 지원하게 되었습니다.그래서 지금 만족스러운가요?생각했던 것처럼 100% 흘러가진 않지만 (웃음) 지금보다 더 나은 방법에 대해 고민하고 디테일까지 꼼꼼하게 신경 쓰며 진취적으로 일할 수 있는 부분들은 좋습니다. 철저한 아웃풋 퀄리티에 신경 쓰다 보니 책임감도 더 생기고 제 자신이 발전하는 것 같기도 하고요. 아, 무엇보다 함께 일하는 좋은 사람들, 자유로운 근무환경, 다양한 분야의 지식 공유 등이 만족스럽습니다!최종적으로 이루고 싶은 목표가 있다면.요즘 고민하는 부분이기도 한데, 제 스스로에 대한 브랜딩이 확실해야 할 것 같아요. 대체 가능한 누군가가 아닌 저만의 무기를 가지고 이런 상황에선 바로 저라는 사람이 생각날 수 있도록 말이죠. 그리고 이 모든 것을 아우를 수 있는, 필요한 사람이 되고 싶어요!오, 멋지네요. 마지막 질문이에요. 윤성님에게 B.A.T란?Better Answer Team이요! 아무리 자신의 프로젝트라고 해도 혼자 생각하고 일하다 보면 항상 막히거나 부족한 부분이 나오기 마련인데, 그럴 때마다 주변 동료들에게 도움을 요청하고 이야기를 나누다 보면 항상 더 좋은 답이 나왔어요. 특히 우리가 하는 일은 그저 그런 답이 아니아 항상 지금보다 더 좋은 답을 찾는 일이잖아요. 그래서 B.A.T는 지금 제 일을 더 잘 할 수 있게 해주는, 더 좋은 답을 찾게 해주는 Better Answer Team입니다!
조회수 1871

코인원에서 가장 분주한 '우사인 볼트', 제가 맡고 있습니다! - 운영지원팀 최진웅

우사인 볼트가 세상에서 ‘가장 빨리 달리는 사나이’라면, 코인원의 진웅님은 ‘가장 분주하게 달리는 사나이’ 중 한명일 거에요. 코인원 고객들의 VOC를 실시간으로 수집하고 개발팀, 기획팀, 법무팀 등을 찾아가며, 실제로 서비스에 반영될 수 있도록 발로 뛰기 때문인데요. 오늘의 인터뷰는 진웅님과 함께 코인원이 지향하는 고객만족에 대한 이야기를 들어 볼 예정입니다.Q. 오늘도 코인원을 매우 분주하게 뛰어다니고 계신 진웅님, 자기소개 부탁드립니다.안녕하세요, 운영지원팀 최진웅입니다. 운영지원팀이라는 이름을 들으셨을 때 제가 어떤 업무를 하고 있는지 독자분들께서 바로 감잡았을거에요. 운영지원팀은 코인원 고객들의 최접점에 위치하고 있어, 고객센터와 블록스 등 여러 채널을 통해 VOC를 수집하고 저희 서비스를 편리하게 이용할 수 있도록 지원하고 있습니다.암호화폐 시장 특성 상, 365일 24시간 동안 거래할 수 있기 때문에 고객들의 서비스 이용 문의가 실시간으로 발생해요. 운영지원팀에서는 고객들의 거래기반을 탄탄하게 정립시키는 것을 목표로 하고 있기 때문에 다른 팀들에게 VOC (Voice of Customer)를 전달하며 분주하게 뛰어다니고 있죠. (참고로, 요새 살이 빠졌답니다?)Q. ‘운영지원팀'에서는 어떤 업무를 하고 있나요? 상세하게 설명해주세요. 기본적으로 ‘운영'이라고 하면 플랫폼과 서비스로 나뉘어서 생각해볼 수 있는데요, 저희 팀은 서비스에 중심을 두고 움직입니다. 운영지원팀은 코인원 고객들의 만족도를 향상시켜, 코인원에서 거래할 수 있는 거래기반을 탄탄하게 확립시키는 것을 목표로 하고 있어요. 운영지원팀에서 하는 일은 크게 운영기획, 일반고객관리, 이용자 보호 세 가지로 구분됩니다.먼저 운영기획에서는 VOC로 수집한 고객들의 피드백을 기능단계에서 정립하고, 개발팀과 기획팀 등 유관부서에 전달해 코인원 서비스까지 실질적으로 반영될 수 있도록 전달하고 있습니다. 일반고객관리에서는 여러 채널에서 수집된 VOC를 바탕으로 무중단으로 돌아가는 암호화폐 시장 속에서 고객들이 안전하게 거래할 수 있도록 돕고있어요. 마지막으로 이용자 보호를 위해 이상거래탐지, 보이스피싱과 해킹 대응 진행 등 고객들의 암호화폐 자산 오입금을 막기 위해 24시간 대기조로 활동하고 있습니다. 고객들의 VOC를 실시간으로 수집하고 있는 진웅님, 조금은 설정샷? ㅇㅅㅇQ. 운영지원팀이 특히 가장 밀접하게 협업하는 팀을 꼽자면 어느 팀일까요?아무래도 기술본부를 가장 첫 번째로 꼽을 수 있을 것 같아요. 코인원 서비스가 성장하는데 있어서 고객들의 피드백과 사용후기, 그리고 전반적인 CS문의는 상당히 중요한 역할을 하고 있어요. 특히 VOC로 수집된 피싱사기사례를 통해 고객들을 보호하기 위한 출금제한정책과 *FDS룰을 적용시켜 사고 예방률을  90~95% 정도 끌어올릴 수 있었습니다. 이를 통해 시중은행들과의 협조가 원만히 이루어질 수 있었고, NH농협은행과의 재계약 건도 성공하게됐죠!*FDS(이상금융거래탐지시스템, Fraud Detection System) : 전자금융거래 시 단말기 정보와 접속 정보, 거래 정보 등을 수집하고 분석해 의심스러운 거래나 평소와 같지 않은 금융 거래가 발생하면 이를 차단하는 시스템입니다. 'NH농협은행과 실명확인 계좌 제공 재계약' 기사 바로가기▼Q. 운영지원팀이 고객들의 VOC를 잘 반영하려면 다른 부서와의 협업이 정말 중요해 보이네요.현재 운영지원팀에서는 다양한 채널을 통해 코인원 고객들의 VOC를 수집하고 있습니다. 그래서 더욱더 다른 팀들과 발로 뛰면서 협업을 진행하는 것이 중요해요. 당연한 이유겠지만 누구나 급하게 암호화폐를 입출금해야 하는 경우가 있습니다. 코인원 고객들이 다양한 이유로 암호화폐 거래가 필요할 때, 오류가 생기거나 궁금증이 생기면 곧바로 해결해 드리기 위해 조금이라도 미흡한 부분은 지속적으로 모니터링하고 피드백을 통해 개선하고 있어요.Q. 암호화폐 거래소를 포함한 블록체인 업계가 날이 갈수록 발전하고 고도화되고 있지만, 여러 취약점을 이용한 사기 사례도 빈번하게 발생하고 있는 것 같아요. 코인원은 여기에 어떻게 대응하고 있을까요?암호화폐 시장에서 일어나는 금융사기나 자금세탁은 기존의 금융사기방법에서 보다 복잡하게 진화하고 있어요. 코인원은 소중한 고객자산 보호를 위해서 독자적인 코인원 이상거래탐지시스템 (Coinone - Fraud Detection System) 을 자체 개발해 적용하고 있습니다. C-FDS를 통해 평상시와 다른 거래 패턴이나 입/출금이 고객계정에서 발생할 경우, 이상거래 여부를 판별하여 피해를 최소화합니다.또한 암호화폐 출금제한 정책을 들 수 있어요. 기존 은행이나 증권사 같은 금융사에서는 건당 이체 한도, 일일이체한도, 자동화기기 인출제한 등을 통해 금융사기 피해를 줄이고 있어요. 반면에 암호화폐 시장에서는 출금제한이 정해져 있지 않거나, 한도 액수가 높게 설정된 경우가 많아 피해가 커지는 경우가 많았습니다. 이러한 이유로, 기존의 금융권에서 활동하던 금융사기범들이 피해금을 현금화하기 위해 기존의 대포통장과 함께 출금정책과 한도에 대한 모니터링등이 약한 거래소를 악용하기도 합니다.코인원에서는 이러한 어둠의 손길로부터 회원들의 자산을 보호하기 위해서 레벨에 따라 출금한도를 유동적으로 분류합니다. 이용자 본인여부를 판단하거나, 갑자기 고액을 출금하거나, 평소와 다른 매매패턴을 보이는 고객의 경우 C-FDS에 따라 이상유무를 판별하고 사용자의 이력들을 확인하여 대응하고 있어요.Q. 암호화폐 사기를 방지할 수 있는 진웅님만의 꿀팁을 독자분들에게 알려주실 수 있을까요?암호화폐 사기유형은 계속적으로 진화하고 있습니다. *피싱(Phishing), *파밍(Pharming), 명의도용, *워터링 홀(Watering Hole), 랜섬웨어 등 해커들이 정말 교묘하게 사이트를 만들면서 일반인들이 사이트의 거짓 유/무를 판단하기가 정말 어려워졌습니다. 코인원 고객들 포함 암호화폐 거래소 이용자분들께서는 정보를 비판적으로 바라보는 시각이 매우 필요합니다. ‘돌다리도 두들겨보고 건너자’ 라는 속담이 있죠? 공식사이트 출처인지 꼭 확인해보고 사이트를 이용하는 것이 필요합니다.본인인증수단과 관련된 모든 것들은 아무리 조심해도 지나치지 않습니다. OTP 설정과 비밀번호는 꼭!꼭! 주기적으로 바꿔주세요. 또한 이메일나 공유어플 등 해커들에게 해킹당할 수 있는 공간에는 개인정보를 남기지 않는 것이 좋습니다. 이 외에 궁금하신 사항은 언제든지 코인원 온라인 고객센터 및 코인원블록스를 방문해서 문의주세요!여기서 잠깐, 전자금융사기예방 상식!*피싱(Phishing) : 개인정보(Private data)와 낚시(Fishing)의 합성어로, 금융기관을 가장한 이메일을 발송하여 가짜사이트로 접속을 유도해 금융정보를 탈취합니다.*파밍(Pharming) : 악성코드에 감염된 사용자PC를 조작하여 금융정보를 빼내는 수법입니다.*스미싱(Smishing) : 문자메시지(SMS)와 피싱(Phishing)의 합성어로 문자메시지를 통해 악성코드를 스마트폰에 설치해서, 피해자가 모르는 사이에 소액결제 피해 발생 또는 개인/금융정보를 탈취합니다.*워터링홀(Watering Hole) : 표적 집단이 자주 방문하는 웹사이트에 악성 코드를 심어 놓고, 해당 웹사이트를 방문할 때까지 기다리는 해킹 수법입니다.코인원에는 진웅님이 있어, 언제나 든든합니다!Q. 실제로 거래소 운영지원팀에서는 어떻게 고객들의 거래기반을 다지고 있는지 들을 수 있는 유익한 시간이었습니다. 그렇다면, 진웅님께서 지향하는 고객만족의 최종목표는 무엇인가요?운영지원팀의 목표는 한마디로 말씀드리자면 우렁각시(?)가 되는거에요. 가장 좋은 서비스는 불편함이 없는 서비스, 혹은 불편함이 느껴졌다가도 바로 해결되는 서비스가 아닐까요? 저희가 고객들의 이야기를 듣고 문제점을 해결해 드리면서 얻는 만족감도 있지만, 정말 편하게 사용할 수 있는 서비스야말로 완벽한 서비스 운영이라고 생각합니다.현재는 블록체인과 암호화폐 산업이 초기단계라 기술적인 용어나 개념들이 생소해 딱딱하고 어려울 수 있습니다. 인터넷을 하기 위해 넷스케이프와 익스플로러를 배우던 시절에서 어느새 인터넷을 사용하는 시대로 넘어간 것처럼, 사용자들에게 필요한 것을 제공하고 쉽게 다가갈 수 있는 환경이 되도록 디딤돌이 되고 싶어요. 구체적으로는 고객들이 검색엔진에서 검색하듯, 편리하게 안내할 수 있는 가이드와 코인원 위키 등을 만드는 것을 목표로 하고 있습니다.운영지원팀 뿐만 아니라 함께하는 코인원 서포트는 물론 모든 코인원 조직들은 항상 최고의 고객만족을 위해 노력하고 있습니다. 언제나 개선점을 하나라도 더 찾아내서 고객의 의견과 목소리를 중시하는 조직이 되는 것이 될겁니다.코인원 온라인 고객센터 바로가기▼코인원 운영지원팀은 항상 최고의 고객 만족을 위해 노력합니다. 팀원 한 명, 한 명이 1건의 불편 사항도 놓치지 않으려 애쓰고 항상 고객을 행복하게 할 수 있는 아이디어를 쏟아내고 있어요. 고객의 의견과 목소릴 중시하며, VOC를 통해 코인원 서비스 개발과 고도화에 함께 힘쏟고 있습니다. 최접점에서 소통하는 운영지원팀, 앞으로 많이 기대해주세요!#코인원 #블록체인 #기술기업 #암호화폐 #스타트업인사이트 #기업문화 #조직문화 #팀원소개 #인터뷰
조회수 1613

Darden MBA School 소개

내가 공부했던 University of Virgina의 MBA School인 Darden은 한국에서는 잘 알려져 있지 않은 학교이다. 매년 한국 학생들이 많게는 30명씩 가는 미국 MBA도 있는 반면에 Darden에는 매년 한국 학생들이 5명 내외 정도 입학을 한다. 내가 공부했을 때는 같은 학년에 나 포함 3명의 한국 학생이 있었고, 내 위로는 2명, 그리고 아래로는 0명이었다. 그래서인지 한국에서는 잘 모르는 사람도 많고 그렇기 때문에 더 선호를 하지 않는 경향이 있다. 난 Darden의 2년간의 시간이 내 인생 최고의 경험이었고, 더 많은 한국의 MBA 지원자들이 Darden을 선택했으면 하는 바람으로 한국에서는 저평가되어있는 Darden을 소개하고자 한다.우리나라에서 MBA를 지원하는 사람들이 학교를 선택할 때 가장 큰 고려를 하는 것이 Ranking이다. 사실 Ranking을 아주 안 볼 수는 없지만, 한국 사람들은 여기에 지나치게 집착하는 경향이 있다. 사실 Ranking은 평가하는 기관마다 조금씩 다르고, 또 매년 조금씩 다르기 때문에 큰 의미가 없는 참고자료에 불과한데 한국 지원자들은 이게 가장 큰 고려 대상이다. 그렇기 때문에 잠깐 소개를 하면 Darden은 US news Ranking으로는 2016년 기준 11위로 랭크되어 있다. Ranking이 매년 바뀌기 때문에 보통 Top 10이라고 불리는 학교들을 15개 정도로 본다. 그런 기준으로 보면 Top 10 School로 분류될 수 있다. 하지만 MBA를 졸업하고 나면 이 Ranking이라는 것이 얼마나 부질없는 것이라는 것을 깨닫게 된다. 정말 중요한 것은 학교에서 어떤 경험을 할 수 있고, 그것이 내가 원하는 방향과 얼마나 일치하느냐가 더 중요하다. 그래서 내가 Darden에서 경험했던 것을 소개하려고 한다.Darden의 가장 큰 특징은 수업이다. 나도 MBA를 지원 준비를 했을 때 Darden은 내 1순위가 아니었다. 한국에서는 알려져 있지 않은 학교이고, 공부가 너무 힘들다는 소문이 나 있어서 한국의 지원자들에게는 기피하는 학교 중에 하나였기 때문이다. 하지만 난 Darden의 수업을 듣고 나서 나의 생각을 180도로 바꾸었다. 몇 개 학교를 방문하면서 수업을 들어봤지만, 다른 학교들에게서는 내가 한국에서 배웠던 강의식 수업과 크게 다르다는 느낌을 받지 못했다. 그리고 심지어는 어느 학교에서는 수업 중에 졸기까지 했다. 하지만 Darden의 수업은 달랐다. 너무나 역동적이어서, 90분의 수업이 어떻게 지나갔는지 모를 정도였다.Darden의 수업의 가장 큰 특징은 강의가 없다는 것이다. 모든 수업은 Case 중심으로 한 토론 수업이고, 이론에 대한 준비는 미리 나누어 준 Class Note를 통해서 학생들이 각자 알아서 준비를 해야 한다. Case도 미리 읽고 와서 토론에 참여를 해야 한다. 90분 내내 토론이 펼쳐지고 각자의 경험과 관점을 바탕으로 자신의 의견을 펼친다. 수업의 속도는 정말 빠르다. 30분 정도 지나갔나 싶어 시계를 보면 이미 수업시간은 10분밖에 남지 않는 상황이 펼쳐진다. 지루하거나 남을 이기기 위한 토론이 아니다. 치열하기도 하지만, 언제나 유머와 농담을 주고받기 때문에 수업 내내 웃음이 떠나지 않는다. 문제는 90분의 수업이 끝나고 나서 무엇이 답이지 모르겠다는 것이다. 처음 난 이 문제로 인해 혼란스러웠다. 답이 정해져 있는 수업에 익숙했던 나로서는 상당히 당황스러웠다. 수업이 끝나고 교수님에게 나의 이러한 혼란에 대해서 이야기를 했다. 교수님은 이런 나에게 우리의 수업의 목적이 답을 제시하는 것이 아니라 우리 스스로 답을 찾기 위한 연습을 하는 것이라는 답변을 들었다. 나는 정답이 있는 문제를 푸는 것에 익숙했기 때문에 Case 수업에도 정답이 있을 것이라 생각했다. 하지만 실제 경영 환경에서는 정답이 없다. 각자의 답이 있을 뿐이다. 그리고 중요한 것은 스스로의 답을 찾는 방법을 이해하는 것이 중요하다. Darden의 Case 수업은 이걸 훈련하는 과정이다. '스스로 답을 찾는 방법'Darden의 또 하나의 특징인 Community이다. Darden은 Community를 중요시한다. 건물에서도 이러한 정신이 숨어 있다. Darden은 University of Virginia에 속해있다. UVA는 미국 3대 대통령이자 미국 독립선언문의 초안을 작성한 토머스 제퍼슨이 설립한 학교이다. 그래서 지금도 사용하고 있는 UVA의 초기 건물에는 제퍼슨의 뜻이 숨어 있다. 제퍼슨은 학생과 교수가 하나의 community를 이루어 토론하고 배우는 아테네의 학당과 같은 이상향의 학교를 꿈꾸었고, 그것을 원활하게 할 수 있도록 건축을 했다. 그래서 한쪽에는 학생들의 기숙사와 교수들의 방이 Lawn을 마주 보고 서 있고, 모든 동선이 Lawn을 지나가도록 설계를 했다. 그래서 자연스럽게 학생과 교수가 부딪히는 구조로 만들었다. Darden은 이러한 UVA의 건축 양식을 그대로 가져와서 건물이 설계되어 있다. Darden은 Flagler court를 중심으로 학생들의 수업공간과 교수들의 방이 나란히 서있다. 교수와 학생이 수업 외에도 길을 가다가 자연스럽게 부딪히게 되어있고 자연스럽게 이야기가 오갈 수 있는 구조로 만들어져 있다. 이것을 나도 입학할 때는 알지 못했는데, 공부를 하고 하다 보니 수업이 끝나고 어딜 가던지 언제나 Flagler court에서 친구들을 만나기도 하고 교수들을 자연스럽게 부딪히는 것을 경험하면서 깨닫게 되었다. 공간이 문화를 만든다는 사실을 깨닫게 된다.Darden이 Community를 중시하는 것은 비단 건물의 배치뿐만 아니다. 매일 아침 전교생과 교수, 교직원들이 다 같이 모여서 Coffee와 간단한 다과를 하는 First Coffee, 매주 목요일에는 학생의 가족, 교수들의 가족들이 Flagler court에서 하는 가든파티, 그리고 이게 끝나면 동네 술집에서 술을 먹은 TNDC (Thursday Night Drinking Club), 그리고 학생들의 집에서 열리는 비정기적인 파티 등등,  많은 Community 행사들이 있다. 2년이 지나면 350명의 동기들을 모두 친하지는 않더라도 350명의 친구들을 웬만하면 이름을 알고 인사는 할 정도는 될 수 있다. Darden의 Community는 학생들에서 학생들의 가족으로 확장된다. 나와 같이 유학생들은 별로 해당이 안되지만, 학생들의 부모를 비롯한 가족들이 수업을 참여하는 행사도 있다. 유치원 생도 아니고 다 큰 성인들의 수업을 참관하는 게 좀 우습기는 하지만, 수업 시간 중에 참여한 가족들이 학생들과 똑같이 소개를 하고 Case 토론에 참여도 한다. 가족들이 참여한 수업은 더욱 화기애애해진다. 심지어는 지역 봉사 활동에도 가족들을 초정해서 같이 하는 경우도 있다.종종 이런 질문을 받는다. "MBA가 비싼 수업료와 2년의 시간의 가치가 있는가?","돈을 투자한 만큼의 ROI가 있는가?", 난 이런 질문을 받을때마다 이렇게 답한다. ROI를 생각하면 가지말라고, 냉정하게 이야기해서 한국에서 미국 MBA 갔다와서 대부분의 경우 우리나라 대기업에 들어가면 ROI 절대 뽑을 수 없다. 요즘에는 MBA 갔다왔다고 해서 특별히 연봉을 높여주지도 않거니와, 그렇다고 특별히 직급을 높여주지도 않는다. 나 같이 창업한 경우는 더더욱 그렇다. 난 아직도 수업료와 생활비로 생긴 빚을 6년째 갚고 있지만 빚에서 벗어날 날이 언제일지 기약이 없다. 그렇지만 난 절대 후회하지 않는다. 그 2년의 시간이 내게는 내 인생에서 최고의 시간중에 하나였고, 지식과 경험에 있어서 많이 배웠고, 그리고 더 중요한 것은 전세계에 있는 내 소중한 친구들을 2년이라는 시간동안에 만들 수 있었다. 지금도 해외 출장을 가게되면 그 도시에 있는 친구들을 시간을 내서 잠깐 보기도 하고, 친구들이 한국에 방문할 때는 나도 시간을 내서 함께 하기도 한다. 내가 얻은 것을 돈으로 환산할 수는 없지만, 내가 Darden에서 얻은 것은 분명 내가 투자한 돈보다도 나에게 더 큰 가치를 가지고 있다.#NEOFECT #스타트업 #딜레마 #고민 #스타트업창업 #인사이트 #조언 #미국 #성장
조회수 1612

플레이팅 2일차

이 포스트는 플레이팅 개발자 박은환님의 '회사 1일차' 포스트를 오마쥬 한 것 입니다.회사 1일차어쩌다 보니 나도 매달 한 번씩 마루180에서 열리는 플레이팅 액티비티 데이(워크숍)부터 출근을 시작하게 되었다. 워크숍이다 보니 1일 차 때는 맛보기? 정도였고, 2일 차가 된 오늘부터 본격적인 업무가 시작되었다. 언젠가부터 기록(문서화)은 분명 중요한 것이라는 생각이 들어 기록을 남긴다.그래도 첫 출근을 워크숍으로 하니 좋은 점도 있다. 각 팀의 현재 상황을 공유하는 자리이다 보니 현재 회사의 각 팀 업무와 팀별로 엮여있는 각종 상황, 앞으로의 방향성 등 큰 그림 파악하기에 매우 좋은 자리였다.회사 2일차영어 이름을 사용해보자사실 영어 이름은 전 직장인 이큐브랩에서도 사용하던 것이라 거부감이 0에 가까웠다. 개인적으로 국내 회사에서의 영어 이름은 계륵일 수 있다는 입장이지만 2일 차인 아직은 괜찮은 것 같다. 나는 영어 이름보다는 닉네임을 선호하는 편이라 늘 사용하던 요우(Yowu) 라는 이름을 사용하기로 했다. 몇몇 분들은 되게 어려운 이름이라고 하신다. 사실 영어 이름은 군대 시절 해외파 통역병 준엽이 형이 지어준 Anthony라는 부담스러우면서 간지 넘치는 이름이 있지만 사용해본 적이 거의 없어 요우가 편하다.정말 오랜만의 스크럼 회의스크럼 회의를 했다. 지금까지 했던 스크럼 회의보다 훨씬 간단한 형태다. 애자일 보드도 없고 Task를 보면서 하는 회의도 아니었지만 각자 어제 한 일과 오늘 한 일을 간단명료하고 신속하게 공유한 뒤 종료되었다.회사 시스템과 코드를 파악해보자입사 후 1주일 정도의 순수 업무 파악 기간이 있으면 가장 좋지만 아무래도 스타트업이다 보니 바로 내부에서 사용할 간단한 서비스를 만들게 되었다. 회사 개발자들 모두 MacBook Pro 쓸 때 혼자 노트북에서 쓰던 Ubuntu 쓰겠다고 해서 eslint (es6 + airbnb)를 vim으로 올리는데 꽤 애를 먹었다. eslint를 사용하는 것에서 눈치챘겠지만 플레이팅의 기술 스택은 node.js, react.js, redux 등이다. (그런데 airbnb의 컨벤션이 나를 너무 귀찮게 한다.. 그 수 많은 빨간 줄이란..)정말 다행히도 나는 최근 node.js를 메인으로 사용하고 있었고, 더 다행히도 react.js와 redux 역시 최근에 사용하고 있었다. 덕분에 코드 이해는 어렵지 않았지만 node.js 구조화의 자유로움 덕분에 현재 플레이팅에서 사용 중인 Application 구조 파악에 시간이 걸린다. 여기에 내가 사용해보지 않은 기술들. graphQL이나 knex, material-ui 등을 익히는데 걸리는 시간은 어쩔 수 없는 당연한 학습 비용이다. (나는 SQL문을 직접 핸들링하는 걸 더 좋아하는데 ㅜㅜ)다만, 워낙 급성장한 스타트업인 탓에 내부 인프라 개선이나 가이드라인 수립, 데이터베이스, 문서화 등에서 정말 할 일이 많아 보인다.(없는 것 보다는 낫다) 순수 개발은 나보다 감각이 좋은 개발자들이 많으니, 개인적으로 업무도 익힐 겸 한동안 이쪽 부분을 일들을 맡아보는 것도 좋을 것 같다. (바쁘면 그런 거 없겠지만.)그렇다면 이제 밥을 먹어보자플레이팅에서 판매하는 '홍콩식 비빔 탄탄면'이다.역시나 플레이팅에서 판매되는 음식들은 가히 최상급이다. 심지어 신선함을 위한 당일 판매가 원칙이다 보니 당일에 팔지 못한 음식은 재고로 나와 먹고 싶은 직원은 그냥 먹을 수 있다. (물론 오늘 처럼 재고 없이 완판되면 없으면 아무것도 가져갈 수 없다. 흑) 그렇다고 우리가 짬처리되는 음식만 먹을 수 있는 것은 아니고, 직원들을 위한 포인트가 직원 복지로써 따로 지급된다. 그 포인트로 회사 내에서 주문하여 먹을 수 있다. 오늘은 홍콩식 탄탄면을 먹었는데 정말 맛있더라. 내 지출을 분석해보면 앵겔 지수가 매우 높은 편인데, 차후 엥겔 지수의 감소를 기대해본다.플레이팅의 사원에게는 수저 세트가 지급된다. (...군대?)마무리2일 차 출근이지만 제대로 된 1일 차 출근으로써 느낀 점은 개발하는 데 있어 자유로운 분위기가 강하다. 이것이 나에게 어떻게 작용할지는 앞으로 지켜봐야겠지만 스스로 텐션을 잘 조절하고 경계심을 가져야 할 필요를 느낀다. 자유로운 분위기의 스타트업이지만 동시에 물론 급성장하는 스타트업이니만큼 당장 떠오르는 창의적이고 편리한 무언가를 만들기보다 당장 눈앞에 닥친 작업을 하게 될 일이 많을 것이다. 하지만 이는 회사가 어느 정도 안정 궤도에 오르고 나면 언제든지 시도해볼 수 있을 것이다.#플레이팅 #입사 #입사2일차 #출근 #2일차출근 #경험공유 #기업문화 #조직문화 #회사소개 #팀소개
조회수 22574

Next.js 튜토리얼 9편: 배포하기

* 이 글은 Next.js의 공식 튜토리얼을 번역한 글입니다.** 오역 및 오탈자가 있을 수 있습니다. 발견하시면 제보해주세요!목차1편: 시작하기 2편: 페이지 이동 3편: 공유 컴포넌트4편: 동적 페이지5편: 라우트 마스킹6편: 서버 사이드7편: 데이터 가져오기8편: 컴포넌트 스타일링9편: 배포하기 - 현재 글개요아래와 같은 궁금증이 생긴 적이 있나요?어떻게 내가 만든 Next.js 애플리케이션을 배포할 수 있나요?아직 배포에 대해 이야기하지 않았지만 배포하는 것은 꽤 간단하고 직관적입니다.Node.js를 동작할 수 있는 곳이라면 어디든 Next.js 애플리케이션을 배포할 수 있습니다. 매우 간단한 ▲ZEIT now로 배포하는 데에도 불구하고 어떤 잠금 장치도 없습니다.설치이번 장에서는 간단한 Next.js 애플리케이션이 필요합니다. 다음의 샘플 애플리케이션을 다운받아주세요:아래의 명령어로 실행시킬 수 있습니다:이제 http://localhost:3000로 이동하여 애플리케이션에 접근할 수 있습니다.Build와 Start처음으로 프로덕션에 우리의 Next.js 애플리케이션을 빌드해야 합니다. 빌드는 최적화된 프로덕션의 코드 세트를 생산합니다.이를 위해 간단히 다음의 npm 스크립트를 추가하세요:그런 다음 하나의 포트에서 Next.js를 시작해야 합니다. 사이드 렌더링을 수행하고 페이지를 제공합니다. (위의 명령으로 빌드됩니다)이를 위해 다음의 npm 스크립트를 추가하세요:이러면 3000 포트에서 우리의 애플리케이션이 시작됩니다.이제 프로덕션에서 애플리케이션을 동작시키 위해 다음의 명령어를 실행할 수 있습니다:두 개의 인스턴스 실행하기애플리케이션의 인스턴스 두 개를 실행시켜 봅시다. 대부분 앱을 수평으로 확장하기 위해 이 작업을 수행합니다. 처음으로 start npm 스크립트를 다음과 같이 변경해봅시다:만약 Winodws라면 next start -p %PORT%로 스크립트를 변경해야 합니다.이제 애플리케이션을 처음으로 빌드해봅시다.npm run build그러면 터미널에서 다음의 명령어로 실행시켜 봅시다:PORT=8000 npm startPORT=9000 npm startWinodws에서는 다른 명령어를 실행시켜야 합니다. 하나의 옵션은 애플리케이션에 cross-env npm 모듈을 설치하는 것입니다.그런 다음 커맨드 라인에서 cross-env PORT=9000 npm start를 동작시켜 주세요.두 개의 포트 모두에서 애플리케이션에 접근할 수 있나요?- 네. http://localhost:8000와 http://localhost:9000 둘 다 접근할 수 있습니다.- http://localhost:8000에서만 접근 가능합니다.- http://localhost:9000에서만 접근 가능합니다.- 둘 다 접근할 수 없습니다.한 번의 빌드로 많은 인스턴스 실행시키기보다시피 애플리케이션을 한 번 빌드해야 합니다. 그런 다음 원하는만큼의 많은 포트들을 시작할 수 있습니다.▲ZEIT now에 배포하기Next.js 애플리케이션을 빌드하고 시작하는 방법을 배웠습니다. npm 스크립트를 사용하여 모든 것을 수행했습니다. 그래서 원하는 배포 서비스를 사용해서 동작하도록 애플리케이션을 설정할 수 있습니다.하지만 ▲ZEIT now를 사용하면 딱 한 번의 과정만 수행하면 됩니다.다음과 같은 npm 스크립트만 추가해주세요:그런 다음 now를 설치해주세요. 설치 후 다음 명령어를 적용해주세요:now기본적으로 애플리케이션의 루트 디렉터리 안에서 "now" 명령어를 실행합니다.여기에서 애플리케이션을 시작하는 포트로 8000 포트를 지정했지만 ZEIT now에 배포할 때 변경하지 않았습니다.그러면 ZEIT now에 배포할 때 애플리케이션에 접근할 수 있는 포트는 어떤 것일까요?- 8000- 443 (혹은 언급되는 포트가 없음)- URL에 언급한 모든 포트- 에러를 표시한다. "443 포트에서만 시작할 수 있습니다"ZEIT는 항상 443 포트를 사용합니다실제로 8000 포트에서 애플리케이션을 시작해도 now에 배포될 때는 443 포트를 사용해서 접근할 수 있습니다. ("https" 웹사이트의 기본 포트)이것은 ▲ZEIT now의 특징입니다. 원하는 포트에서 애플리케이션을 시작해야 합니다. ▲ZEIT now는 항상 443 포트로 매핑합니다.로컬에서 애플리케이션 빌드하기▲ZEIT now는 npm build 스크립트를 발견하고 빌드 인프라 내부에 빌드합니다.하지만 모든 호스팅 제공자가 이와 같은 것을 가지고 있지는 않습니다.이 경우 로컬에서 다음의 명령어를 사용해서 빌드할 수 있습니다:npm run build그런 다음 .next 디렉터리를 사용하여 애플리케이션을 배포하세요.커스텀 서버를 사용하여 애플리케이션 배포하기우리가 막 배포한 애플리케이션은 커스텀 서버 코드를 사용하지 않았습니다. 하지만 만약 사용한 경우에는 어떻게 배포할 수 있을까요?다음의 브랜치로 체크아웃하세요:커스텀 서버를 사용하여 애플리케이션을 실행하기 위해 애플리케이션에 Express를 추가해주세요:npm install --save express애플리케이션 빌드하기이를 위해 next build를 사용하여 애플리케이션을 배포할 수 있습니다. 다음의 npm 스크립트를 추가해주세요:애플리케이션 시작하기프로덕션 애플리케이션임을 알리기 위해 커스텀 서버 코드를 생성해야 합니다.이를 위해 server.js로부터 이 코드를 살펴봅시다.이 부분을 살펴봅시다:그러면 프로덕션으로 이와 같이 애플리케이션을 시작할 수 있습니다.그래서 "npm start" 스크립트는 다음처럼 변경됩니다:마무리Next.js 애플리케이션을 배포하는 것에 대해 거의 다 배웠습니다.문서에서 Next.js 배포하기에 대해 더 배울 수 있습니다.배포에 대한 질문이 있다면 자유롭게 Slack에서 물어보거나 issue를 제출하세요.#트레바리 #개발자 #안드로이드 #앱개발 #Next.js #백엔드 #인사이트 #경험공유
조회수 6089

개발자 직군 파헤치기 1 | 프론트(Front), 백(Back), 풀스택(Full-Stack) 개발자

수많은 개발자 직군들개발자가 되기 위해서는 프로그래밍 언어만 배운다고 끝나는 것이 아닙니다. 자신이 배운 언어를 가지고 어떤 개발자가 될지 고민도 해야합니다. 실제로, 많은 분들이 내가 어떤 분야의 개발자가 되야 할지 고민을 많이 합니다. 그런데 이 고민에 앞서 어떤 개발자의 종류가 있고 직군이 있는지를 살펴보아야 합니다. 그래서 이번에 준비한 연재는 개발자 직군 파헤치기 시리즈입니다. 우리가 개발의 한 직군이라고 부를 수 있는 것들 중 관심이 많이 가는 직군들을 위주로 알아볼 것입니다. 일하는 분야에 대한 직군(게임 개발자)에 대한 이야기도 할 것이고, 지금 이야기할 프론트-엔드, 백-엔드처럼 개발의 영역에 대한 이야기도 할 것입니다. 다양한 관점에서 개발자의 영역들을 살펴볼 것입니다. 자, 그럼 지금부터 시작해 보죠!(※이 글은 유다시티 3Web Dev Careers Decoded: Front-End vs Back-End vs Full Stack을 번역한 것입니다.Front, Back and Full Stack우리가 매일같이 인터넷을 사용하는 과정을 떠올려봅시다. 새 브라우저 탭을 열고 URL을 입력 한 다음 Enter 키를 누르면 그 즉시 사이트가 로딩이 됩니다. 깔끔한 레이아웃, 잘 구성된 페이지, 그리고 화려한 시각적 효과들은 때로 감탄을 자아내죠.순식간에 일어난 이 모든 경험을 담당하는 사람들이 바로 웹 개발자들입니다.2018 년 4 월 현재 인터넷에 있는 페이지의 수는 45 억개가 넘습니다.  지금 이 순간에도 그 수는 계속 늘어나고 있습니다. 누군가 안정적인 직업을 찾고 싶다면 웹 사이트의 코딩, 설계, 분석 및 유지 관리를 담당하는 사람들, 곧 웹 개발자들을 찾아야 할 것입니다.웹 사이트는 이제 모든 비즈니스가 경쟁력을 유지하는 데 중요한 구성 요소입니다. 웹 개발의 트렌드와개발의 패러다임이 거의 매 시즌마다 바뀌는 상황에서, 개발자에 대한 수요는 부족함이 없습니다.그러나 웹 개발자의 범위는 매우 넓기 때문에 정확히 어떤 종류의 웹 개발자 채용 공고를 찾아보아야 하고, 그러한 개발자가 되기 위해 무슨 교육을 받아야 하는지를 판단하기는 쉽지 않습니다.  만약 구직 사이트를 둘러 보거나 온라인 강좌를 알아본 경험이 있다면, 프론트엔드, 백엔드, 그리고 풀스택 개발자라는 용어를 한번쯤은 들어보았을 것입니다.HTML, 자바 스크립트 또는 약간의 파이썬을 사용해 본 적이 있지만, 막상 개발자 직군에 대해서는 막막했다면 이 글이 매우 유용할 것입니다. Photo by Annie Spratt on UnsplashFront-End Developer프론트엔드는 웹사이트 중 사용자가 직접 상호작용을 하게 되는 부분입니다. 글꼴 부터 색상, 드롭 다운 메뉴 및 슬라이더에 이르기까지 인터넷에서 보게 되는 모든 것들은 브라우저의 제어를 받는 HTML, CSS 및 JavaScript의 조합입니다.SKILLS AND TOOLS프런트엔드 개발자는 웹 사이트에서 사용자가 직접 경험하는 부분과 그 경험의 아키텍처를 담당합니다. 이를 위해 프론트엔드 개발자는 HTML, CSS, Javascript 활용에 능숙해야합니다. 언어를 잘 다루는 것 외에도 프런트 엔드 개발자는 사용자의 도구에 따라 유연한 방식으로 컨텐츠를 보여줄 수 있게 하는 Bootstrap, Foundation, Backbone, AngularJS, EmberJS와 같은 프레임워크에 익숙해야합니다. 또한 jQuery, LESS와 같은 라이브러리를 사용할 수 있다면 더욱 유용하고 효율적인 코드를 작성할 수 있게됩니다. 프론트엔드 개발자를 채용할 때에는 Ajax 사용 경험을 요구하는 경우도 많습니다. 백그라운드에서 서버 데이터를 가져와 페이지를 동적으로 만드는 Javascript를 활용하는 데 있어서 Ajax는 보편적으로 사용되는 기술이기 때문입니다.프런트 엔드 개발자는 백엔드 개발자가 만든 집의내부 디자인을 담당합니다.프론트엔드 개발자는 이러한 기술을 사용하면서도, 목업(mockup) 혹은 와이어프레임(wireframe)의 개발에서 전달의 단계까지 디자이너 또는 사용자 경험 분석가와 긴밀히 협력합니다. 실력 있는 프론트엔드 개발자는 사용자 경험에서의 문제를 정확하게 발견하고, 디자인을 수정에 관한 조언과 문제 해결을 위한 코드를 제공합니다. 또한 목표와 필요, 기회들을 정확히 이해하고 수행하기 위해서는 다른 팀들과 유연하게 협력하는 능력이 중요합니다. 이처럼 프론트엔드 개발자의 작업은 여러 영역에 대한 책임을 동시에 감당하는 일이면서도 그만큼의 보람이 따라오는 것이기도 합니다. 8 년차 프론트엔드 개발자 인 Mikey Ilagan은 아래와 같은 이야기를 합니다.저는 기술적인 사람이면서도 시각적인 사람입니다.그래서 저는 자연스럽게 목업과 코드를 동시에 다루며 사람들이디지털 플랫폼과 상호작용하는 방식을 만들어 낼 수 있게 되었습니다.-Mikey Ilagan-종합해보자면, 프론트엔드 개발자는 백엔드 개발자가 만든 집의 내부 설계를 담당합니다. 집을 장식하는취향과 스타일은 집주인이 결정합니다. Apptix의 제품 마케팅 디렉터인 Greg Matranga는 "프론트엔드에서 작업하는 개발자는 자신의 창의성을 실질적으로 작업에 반영할 수 있기 때문에 때로는 자신이 하는 일에 대해 더욱 흥분한다"며 자신이 관리하는 프론트엔드 및 백엔드 개발자 팀 모두에게 말하기도 했습니다.HOW IT TRANSLATES지금 이 블로그에서 보고있는 모든 것은 프론트엔드 개발자의 손을 타지 않은 곳이 없습니다. 물론 로고와 그래픽은 디자이너가 만들고, 사진은 자신 작가가 찍었으며, 텍스트는 지금 글을 쓰고 있는 제가 작성합니다. 그러나 이 모든 조각들을 모아 웹으로 만들고, 각 페이지마다 사용자가 경험할 것을 설계한 것은 프론트엔드 개발자입니다.Photo by Lee Campbell on UnsplashBack-End Developer프론트엔드에서 일어나는 일을 이해했다면, 그것만으로는 웹사이트가 완성되지 않는 다는 것 역시 이해했을 것입니다. 그렇다면 프론트엔드 자체를 가능하게 만드는 것은 무엇일까? 데이터는 어디에 저장되는 것일까? 바로 백엔드입니다. 웹 사이트의 백엔드는 서버, 응용 프로그램 및 데이터베이스로 구성됩니다. 백 엔드 개발자는 이러한 구성요소들이 작동할 수 있게하는 기술을 만들고 유지하는 일을 합니다. 이러한 작업을 통해 비로소 사용자에게 보여지는 측면이 존재할 수 있게 됩니다.SKILLS AND TOOLS서버, 응용 프로그램, 데이터베이스가 서로 통신 할 수 있도록 만들기 위해 백엔드 개발자는 PHP, Ruby, Python, Java, .Net과 같은 서버 측 언어를 활용하여 응용 프로그램을 만듭니다. 또한 데이터를 검색, 저장 또는 변경하고 이를 프론트엔드 코드로 사용자에게 다시 제공하기 위해서는 MySQL, Oracle 및 SQL Server를 사용합니다. 백엔드 개발자에 관한 채용 공고는 그 외에도 1) Zend, Symfony 및 CakePHP와 같은 PHP 프레임 워크에 대한 경험, 2) SVN, CVS 또는 Git과 같은 버전 제어 소프트웨어 사용 경험, 3) 개발 및 배포 시스템으로서의 Linux 사용 경험을 요구하는 경우가 있습니다.백엔드 개발자는 이러한 도구를 사용하여 깔끔하고 모듈화가 가능한 코드로 웹 응용 프로그램을 만듭니다. 그러나 이와 같이 코드를 작성하기 전에 백엔드 개발자는 비즈니스 이해 관계자와 소통하면서 구체적인 요청 사항을 파악해야 합니다. 그런 다음 이를 기술적 내용으로 변환하여 기술 설계를 위한 가장 효과적이고 효율적인 솔루션을 제시할 수 있어야 합니다.나는 데이터를 다루는 것을 좋아하기 때문에항상 백엔드 개발을 선호 해 왔습니다.-JP Toto-오랫동안 백 엔드 개발자였던 JP Toto는 현재 와일 비트의 소프트웨어 개발자입니다. 그는 "최근 공개 및 비공개 API는 모바일, 웹 사이트를 포함한 여러 시스템간에 데이터를 교환하는 데 필수적인 부분이되었으며, 사람들이 유용하다고 생각하는 API를 만드는 것은 그에게 큰 만족감을 주는 일 중에 하나"라고 말한다.HOW IT TRANSLATES여러분이 코드스테이츠의 웹사이트를 찾아 들어오는 과정을 봅시다.  웹사이트의 서버는 여러분의 컴퓨터 또는 모바일로 정보를 보내고, 그 정보는 코드스테이츠 소개가 담긴 페이지로 보여집니다. 이 프로세스는 백엔드 개발자의 작업 결과입니다. 또한 회원가입을 할 때 저장되는 개인정보, 그리고 로그인을 할 때마다 각 계정의 정보가 불러와지는 과정 역시 백엔드 개발자 덕분입니다.Full Stack Developer프론트엔드 개발과 백엔드 개발 간에는 흑백 구분이 없는 경우가 종종 있습니다. 프론트엔드 개발자는 종종 추가 백엔드 기술을 습득해야하며 그 반대의 경우도 있습니다. 개발자는 여러 분야를 넘나들어야 할 때가 많아 종종 제너럴리스트가 되어야 합니다.  풀스택 개발자라는 역할은 7년 전 페이스북의 엔지니어링 부서에서 대중화되었습니다. 풀스택 개발자라는 호칭은 프론트엔드와 백엔드 모두에서 교차적으로 작업 할 수 있는 역할을 지칭하는 것에서 시작했습니다. 말 그대로 풀패키지(full package)를 제공하는 개발자라는 뜻입니다.서버와 클라이언트 측 모두에서 작업할 있는 전문성은더 많은 기회를 열어줍니다.-Federico Ulfo-Grovo의 풀스택 개발자인 Federico Ulfo는 이를 음식에 비유에 이야기합니다. "요리와 베이킹 중에 하나를 잘할 수는 있습니다. 그러나 두 가지를 모두 마스터하는 데에는 시간과 경험이 필요합니다. 마스터 한다는 것은 단지 레시피를 따라서 만드는 것을 말하는 게 아닙니다. 그건 누구든지 할 수 있습니다. 마스터 한다는 것은 직접 재료를 고르고 자신의 레시피로 훌륭한 음식을 만들어내는 것입니다."Photo by freestocks.org on UnsplashSKILLS AND TOOLS풀스택 개발자는 백엔드 개발자와 마찬가지로 웹 프로그래밍의 서버 측에서 작업하지만, 이와 동시에 사용자 측에서 콘텐츠가 보여지는 방법에 관해 프론트엔드의 언어로 능숙하게 소통할 수 있습니다. 아래의 이미지는 풀스택 개발이 얼마나 복잡해지고 있는지를 체감하게 해줍니다. 몇년 전까지만 해도 3-4가지의 기술의 종합으로 표현될 수 있었던 풀스택은 현재 7개의 기술이 종합된 형태로 훨씬 복잡해졌음을 알 수 있습니다.출처: Techrunch출처: Techrunch구체적인 기술의 종류는 프로젝트나 클라이언트에 따라 달라질 수 있지만, 풀스택 개발자는 기술의 종류와 상관없이 Linux 서버의 설정과 구성, 서버 측 API 작성, 클라이언트 측 JavaScript, 디자인을 맡는 CSS 등 웹이 작동하는 모든 차원에 있어서 해박해야합니다.풀스택 개발자는 이러한 기술들을 사용하여 클라이언트 측과 서버 측이 담당할 영역을 즉각적으로 구분해내고, 다양한 솔루션들의 장단점을 명확히할 수 있어야 합니다. HOW IT TRANSLATES풀스택 개발자는 로딩 시간부터 레이아웃, 그리고 사용자와의 상호작용성과 구조적 토대에 이르기까지이 게시물이 주는 경험의 전체적인 흐름을 책임집니다.The Bottom Line웹 개발에는 많은 면모가 있습니다. 그러나 당신이 어떠한 개발자가 되고 싶든지 디테일에 주의를 기울이는 능력, 빠르게 학습할 수있는 능력, 문제를 효율적으로 해결하는 능력, 그리고 커뮤니케이션 능력은 당신을 돋보이게 만들것입니다. 다행히 웹 개발 분야에서 경력을 쌓기 위해 이보다 더 좋은 시기는 없습니다. 웹 개발자의 고용은 2014 년에서 2024 년까지 10 년 동안 27 % 증가 할 것으로 예상되며 이는 모든 직종의 평균보다 빠릅니다. 지금까지 Front, Back, Full Stack 개발자에 대해서 알아보았습니다.다음 포스팅은 개발의 한 축을 담당하고 있기는 하지만 일반 개발 분와야는 다른 '게임 개발자'에 대해서 알아보도록 하겠습니다.
조회수 1704

채권 투자할 때 꼭 봐야 하는 재무제표 속 숫자들!

우리는 채권형 크라우드펀딩을 통해 자금이 꼭 필요한 기업에 직접 돈을 빌려줄 수 있습니다. 그런데 이 회사가 만기에 약속대로 돈을 갚을지 아니면 “미안해. 내가 요즘 좀 어려워서… 조금만 시간을 줘…”라고 말할지 어떻게 알 수 있을까요?이미 가진 돈이 많거나 돈을 열심히 벌고 있거나이 회사가 1) 얼마나 가졌는지(과거)와 2) 돈을 얼마나 벌고 있는지(현재)를 살펴보면 어느 정도 예측할 수 있어요. “내가 재산이 이만큼 있으니 이걸 팔아서라도 갚을 거야.” 아니면 “아직 가진 건 없지만 얼마씩 벌고 있으니까 언제까지 갚을게.” 중 하나는 약속이 되어야 하죠. 사람이면 연봉과 재산을 확인해보면 될 텐데 기업이면 재무제표를 봐야 알 수 있습니다.‘아…. 재무제표…?’ 벌써 현기증 나신다고요? 걱정 마세요. 쉽게 알려드릴게요.Ⅰ. 재무상태표: 일단 지금 가진 것 좀 봅시다재무상태표를 보면 지금 이 회사가 얼마나 가졌는지 쉽게 알 수 있습니다. 재무 "상태"”라는 말에서 알 수 있듯이 지금 이 시점에 이 회사가 얼마를 갖고 있고(자본), 빚은 얼마라서(부채) 총자산은 얼마인가를 보여주는 게 바로 재무상태표입니다.먼저 자산은 자본과 부채의 합을 의미합니다. 자본이 2억인데 부채가 2억이면? 2억에서 2억을 빼니 자산은 0원 아니냐 하실 수 있지만, 이 경우 자산은 4억이 됩니다. 예를 들어볼까요? 제가 2억을 모으고, 2억을 대출받아 아파트를 샀습니다. 빚이 2억이긴 하지만 4억짜리 아파트는 제 명의니까 제 자산은 4억이 되는 거죠. 1. 부채비율이 낮은 기업을 찾아라! 이처럼 자산이 많은 것도 중요하지만, 그중에서도 부채(빌린 돈)보다 자본(내 돈)이 많을수록 안정적인 회사입니다. 자본 대비 부채가 적어야(부채비율이 낮을수록) 돈을 돌려받을 가능성이 커지는 거죠.2. 자산 중에서도 유동자산이 많은 기업을 찾아라! 그럼 부채는 적고, 자본은 많으면 무조건 좋은 거냐? 하시면 그건 또 아니에요. 자산은 보통 유동자산과 비유동자산으로 나뉩니다. 유동자산은 1년 이내 현금화할 수 있는 자산을, 비유동자산은 1년 이내에 현금화하기 어려운 자산을 의미합니다. 빨리 현금으로 바꿀 수 있는 유동자산이 많을수록 안심이 되겠죠? 반면에 부채의 경우 1년 안에 갚아야 하는 유동부채보다 1년 이상 갚지 않아도 되는 비유동부채가 많을수록 채권자에게 유리합니다. 3. 현금이 최고야!유동자산은 또다시 당좌자산과 재고자산으로 나눌 수 있습니다. 당좌자산은 기업이 정상적으로 운영되는 경우 바로 현금화할 수 있는 자산을 말해요. 현금이나 예적금 같은 단기 금융상품, 외상을 의미하는 매출채권 등이 여기에 포함됩니다.반면에 재고자산은 기업이 판매를 위해 생산 중인 상품이나, 부품, 원료, 재료, 소모품 등을 말해요. 당좌자산보다는 현금화가 어렵죠. 그래서 유동자산 중에서도 당좌자산이 많으면 조금 더 믿어도 됩니다. 당좌자산 중에서도 외상인 매출채권보다는 현금 및 현금성 자산이 많은 회사가 좋겠죠?하지만 현금이나 빠르게 현금화할 수 있는 형태의 자산의 비율이 높은 기업일수록 돈을 빌리려고 하지 않겠죠. 그래서 이런 상황이 발생합니다. “재무상태표만 봐서는 잘 모르겠습니다. 현금화하기 쉬운 자산이 아예 없지는 않은데 충분한지 모르겠어요.” 그럼 이제 이 회사가 요즘 얼마나 벌고 있는지 알아볼 차례입니다. Ⅱ. 손익계산서: 그래서 얼마나 벌고 있나요?이 회사가 얼마를 벌고 있느냐를 보려면 재무제표 중에 손익계산서를 보면 됩니다. 손익계산서는 말 그대로 회사의 손실과 이익을 계산한 것입니다. 일정 기간 동안(보통은 1년 단위) 기업활동을 통해 얼마의 수익을 벌었고, 얼마의 비용이 들었는지 알려줍니다. 손익계산서에서 꼭 봐야 할 부분은 매출액과 영업이익입니다. 해당 기간 얼마나 팔았고, 그래서 얼마 남았나를 의미하죠.  *매출액: 해당 기간에 판매한 제품이나 서비스 등의 총금액을 말합니다.*매출원가: 제품이나 서비스를 만들고 파는데 드는 비용을 의미합니다.*매출총액: 매출총액 = 매출액- 매출원가입니다. *판매비와 관리비(줄여서 판관비): 제품이나 서비스를 판매하고 관리하는 데 드는 비용입니다. 인건비, 광고비, 임대료, 공과금 등이 포함되어요.*영업이익: 매출총이익- 판관비입니다.1. 매출액이 증가하고 있는가매출액은 해당 기간에 판매한 제품이나 서비스 등의 총금액을 말합니다. 기본적으로 매출액이 전기보다 증가 추세에 있는지, 제품이나 서비스를 만드는 데 드는 총비용인 매출원가가 매출액 대비 지나치게 높지는 않은지 살펴봐야 합니다. 사람도 그렇잖아요. 제가 돈을 벌기는 버는데 연봉이 계속 줄거나, 버는 돈에 비해 나가는 돈이 너무 많으면 다음 달 카드 대금 갚을 돈이 없겠죠. 2. 영업이익이 +인가손익계산서에서 가장 중요한 것을 하나만 꼽으라면 영업이익입니다. 매출액에서 매출원가를 뺀 매출총액에서 제품을 판매하고 관리하는 데 드는 비용까지 빼면 영업이익입니다. 영업이익이 0보다 작으면 이 회사는 적자를 내고 있는 상태입니다. 반대로 영업이익이 0보다 크고, 지속적으로 늘어나고 있다면 이 회사가 착실하게 성장하고 있다는 뜻이겠죠. 영업이익이 큰 폭으로 늘어나고 있다면 참 좋은 신호입니다. 하지만 채권자는 돈 빌려주기 전에 미리 이자율을 설정하기 때문에 영업이익이 엄청나게 늘어난다고 돈을 더 많이 돌려받지 않습니다. 내 돈을 간신히 갚을 정도로 돈을 버는 기업이나 엄청나게 많은 돈을 기업이나 갚는 돈(원금+이자)은 똑같습니다. 그래서 채권자의 경우 회사가 내는 영업 이익이 지금 빌리려는 돈을 갚을 정도가 되는지만 알아보면 손실은 피할 수 있어요.3. [주의!] 당기순이익의 함정을 조심하세요.기업의 손익계산서를 보면 영업이익 아래에 몇 개의 항목이 더 나와있습니다.*영업외수익(영업외비용): 기업의 주요 영업활동이 아닌 활동으로 발생하는 수익(비용)을 의미합니다. 이자수익(이자비용), 유형자산처분이익(유형자산처분손실) 등이 포함되죠. *법인세차감전순이익: 영업이익 +영업외수익-영업외비용=법인세차감전순이익*법인세: 법인의 소득에 부과하는 세금*당기순이익: 영업이익 + 영업외수익 – 영업외비용 – 법인세 = 당기순이익그중에서도 가장 아래에 표기되는 게 바로 당기순이익인데요. 매출액에서 매출원가, 판관비, 영업외이익, 법인세를 모두 뺀 당기순이익이 크면 당연히 좋은 신호입니다. 하지만 당기순이익은 큰데 영업이익은 적은 기업이라면 조심하셔야 해요. 기업의 주요 영업활동으로 얻는 이익은 적은데, 해당 기간에 부동산 등의 유형자산을 처분해서 얻은 영업외수익이 있다면 일시적으로 당기순이익이 크게 잡힐 수 있기 때문입니다. “매출액과 영업이익, 그리고 당기순이익이 증가하는 기업이 좋다. 하지만, 당기순이익보다 중요한 것은 영업이익이다.”라고 정리할 수 있겠네요.투자 한 번 하기 쉽지 않죠? 그래도 채권은 과거(재무상태 표)와 현재(손익계산서)의 기록으로 이 기업의 상환 능력을 어느 정도 예측할 수 있습니다. 와디즈 채권 프로젝트의 투자설명서를 내려받으시면 재무상태 표와 손익계산서가 포함되어 있어요. 날도 더운데 에어컨 아래에서 현금 및 현금성 자산을 많이 보유한 기업과 영업이익이 날로 커지며 성장하는 기업을 골 라보는 거 어떠신가요? 내년엔 이자 소득으로 에어컨 더 빵빵하게 틀 수 있을지도 모릅니다.다음 주에는 미래를 보고 주식에 투자하는 법을 알려드립니다!글 김영아 와디즈의 막내 투자 콘텐츠 디렉터(CD)입니다. 우리의 작은돈이 필요한 곳에 모여 세상을 바꾸는 꿈을 꾸고 있어요. 아 물론 돈도 벌면서요. 더 많은 ‘우리’에게 크라우드 펀딩을 알리기 위해 어렵고 복잡한 투자 이야기를 쉽고 재미있게 풀어내는 일을 합니다.그림 이윤경와디즈의 브랜드 디자이너입니다. 좋은 '사람' 와디즈가 좋은 '브랜드'로 무럭무럭 자라나도록 물을 주고 있어요. 더 많은 사람들의 시작을 돕기를, 그리고 더 재미있는 세상을 만들어 가기를 기대하고 있습니다. #와디즈 #금융지식 #서비스소개
조회수 692

금융위기 시 가장 매력적인 투자처는 개인신용대출

시장을 뒤흔드는 금융위기는 반드시 주기적으로 찾아온다. 언제가 될지 정확히 예측하기는 어렵지만, 금융위기가 찾아 왔을 때 가장 빛을 발할 매력적인 투자처는 개인신용대출에 대한 대체투자(alternative investment on personal credit)다.* 대체투자 : 전통적인 투자 상품이 아닌 다른 대상에 투자하는 방식을 말한다. 대상은 사모펀드, 헤지펀드, 부동산, 벤처기업, 원자재, 선박 등 다양하다.빅토리 파크 캐피탈(Victory Park Capital, 이하 VPC)의 고든 왓슨(Gordon Watson) 파트너가 지난 10월 중순에 있었던 2016 렌딧 유럽(Lendit Europe) 컨퍼런스에서 한 말이다. VPC는 전세계 다양한 국가에서 총 4조 원 이상의 채권, 주식 등에 투자하고 있다. 우리가 잘 아는 잠바 쥬스(Jamba Juice) 역시 VPC 의 투자 포트폴리오 중 하나다.또한, 세계적으로 P2P금융에 가장 활발하게 투자하고 있는 사모펀드이기도 하다. 2015년 8월에 발행한 보고서에 따르면 VPC는 35개 P2P금융사가 발행하는 대출 채권에 대체투자하고 있다. 좀 더 자세히 살펴 보면, VPC가 P2P금융사의 채권에 투자하는 자산 중 72%는 개인대출에, 28%는 소상공인 및 법인대출에 투자가 이루어지고 있음을 알 수 있다. P2P금융사의 채권에 대한 투자 자산 중 72%가 담보 대출이 아닌 무담보의 개인신용대출에 집중되고 있다는 점이 매우 흥미롭다.출처 : 2016 렌딧 유럽 컨퍼런스VPC 외에도 다양한 투자사들이 P2P금융사의 대출 채권에 투자하고 있다. 이 때 대출 대상에 따라 개인, 소상공인, 법인, 부동산의 4가지로 대출의 종류를 분류한다. 이는 일반 금융사들이 대출 종류를 분류하는 기준과 동일한데, 각 대상에 따라 리스크가 확연히 다르기 때문에 명확하게 분리하여 관리하는 것이다.역시 흥미로운 점은, 우리가 통상적으로 안전할 것이라고 생각하는 법인담보대출, 부동산담보대출에 대해 기관 투자자들의 참여가 월등히 떨어진다는 점이다. 앞서 설명했듯이 P2P금융사에 가장 큰 규모로 투자하고 있는 VPC의 경우 개인과 소상공인 및 일부 법인에만 투자를 집중하고 있다.이 점에 대해 2016 렌딧 유럽 컨퍼런스에서 VPC 고든 왓슨 파트너에게 질의했을 때 얻은 2가지 답변은 아래와 같다.1) 경기 변동에 따라 채무자의 상환 능력이 변화하는데, 이때 시장 변동에 가장 적은 영향을 받는 것이 개인신용대출이다. 소상공인, 법인, 부동산의 경우 크고 작은 금융 위기에 빠른 속도로 직격타를 받기 때문에 변동성(volatility)이 심하다. 반면, 개인 채무자의 경우 국가 실업률에 급격한 변화가 생기지 않는 이상 예측 가능한 수준에서 소극적으로 변화한다. 2) 담보 확보보다 중요한 것은 최대한 분산 투자하는 것이다. 계란은 여러 바구니에 담아야한다. 담보물이 있다고 원금이 보장되지 않는다. 대부분의 담보는 유동성(liquidity)이 떨어지고 회수하는데 오래 걸리기 때문에, 회수하기까지의 기회 비용을 따져야 한다. 작게는 $100K (한화 1억원), 크게는 $3M (한화 30억원) 규모인 타 대출과 달리, 개인신용대출은 평균 $15K(한화 1,500만원)이기 때문에 훨씬 잘게 쪼개어 투자할 수 있다.이전 포스트에서 주지했듯, 개인 간 거래 형식(Peer-to-Peer)에서 시작된 P2P금융의 투자자는 개인(individual lender)에서 기관(institutional lender)으로 빠르게 확장되어 왔다. 기관 투자자의 참여는 P2P금융사들의 채권 신뢰도를 높이는 한편, 개인 투자자들의 투자를 보호할 수 있는 장치로 작용해 P2P 금융업권 전체의 발전을 견인하는 요인이 되었다. 기관 투자자의 경우 자체적으로 운영하는 리스크 관리(risk management)팀을 통해 철저한 실사를 진행한 후 투자 의사를 결정하기 때문이다. 아직 태동기에 있는 국내 P2P금융의 경우, 까다로운 리스크 관리팀을 운영하는 기관 투자자의 참여는 거의 이루어지지 않고 있으며, 사회적 증거에 의존하는 개인 투자자의 참여만으로 업권이 형성되고 있는 상황이다. 하지만 미국, 영국, 호주 등의 P2P금융 선진국에서 관찰되었듯, 기관 투자자의 참여와 함께 빠른 속도로 업권이 발전할 것으로 기대해본다.
조회수 6999

늑대 VS 개. 당신은 어떤 유형인가?

얼마 전, 개와 늑대의 차이에 대한 흥미로운 실험을 한 다큐멘터리를 봤다. 실험자는 일부로 고기를 먹기 힘들게 배치해 놓은 뒤 개와 늑대가 어떻게 대처하는 지를 알아보았다.개와 늑대는 얼추 조상도 비슷하여 시베리안 허스키와 늑대는 크게 분간도 안 간다. 그런데, 외관과 달리 실험 결과는 개와 늑대의 확연한 차이를 보여줬다. 늑대는 끝까지 혼자 고기를 꺼내먹으려 애썼다. 반면, 개는 고기를 먹으려 몇 번을 시도한 뒤 쉽지 않자 옆에 있는 사람에게 불쌍한 표정으로 고기를 꺼내 달라는 듯 쳐다봤다. 개는 문제 해결을 위해 인간에게 의존하게끔 진화한 것이다. 개는 더 강한 이빨도, 발톱도, 근육도 필요가 없게끔 진화했고, 고양이나 늑대와 달리 야생에서 살아남을 수 없는 동물이 되어버렸다.'인간에게 의존하여 문제를 해결한다'라는 개의 좋은 학습력이 개라는 동물을 지금까지 생존하게끔 만든 것이다. 많은 동물들이 인간에 의해 멸종했지만 개는 꿋꿋이 살아남아 지금도 우리의 반려'견'으로서 어떻게 보면 인간보다도 더 좋은(?) 대우를 받고 있다.늑대와 개의 차이를 드러낸 실험늑대는 인간에게 길들여지는 것이 불가능할 정도로 야생성이 강하다. 또한 '비열하다'라고 평가할 만큼 인간에 대한 충성도가 매우 낮고 조금도 의지하지 않는다. 늑대는 수세대에 걸쳐 더 강하고 더 빠르고 더 영리하게 진화했다. 늑대는 지금도 야생에서 살아남고 있고, 타고난 사냥꾼으로서 입지를 굳히고 있다.즉, 늑대는 오랜 시간에 걸쳐 문제 해결 능력을 매우 느리게 체득해온 반면, 개는 태어나자마자 인간을 통해 대부분의 문제를 해결해왔다. 우리가 보기엔 늑대가 바보처럼 보일 수 있다. 그러나, 개를 야생에 던져놓으면 개는 순식간에 바보가 되어버린다. 지구 상에 어떠한 개도 늑대를 이길 수 없다. 어떤 이들은 핏불이나 로트와일러 같은 전투형으로 개량된 개가 늑대를 이길 수 있다고 주장하는데, 늑대와 개의 심폐지구력 자체가 다르기 때문에 늑대를 결코 이길 수 없다.투견끼리는 서로의 목을 물어 제압을 하려 한다. 반면, 늑대는 개의 몸통을 물어 갈비뼈를 부러뜨릴 정도의 힘을 갖고 있다. 실제로 대부분의 늑대와 개의 싸움을 보면 늑대가 개의 몸통을 물어 곧바로 내장까지 뜯어내는 방식으로 싸움이 끝난다. 개는 결코 늑대를 이길 수 없다. 아무리 개량된 투견이라 할 지라도, 인간에 의해 개량된 투견은 아주 짧은 시간 동안 투견장에서 승리하기 위해 개량됐기 때문에 심폐지구력이 매우 낮다. 인내심이 강한 개라고 할 지라도 심폐지구력이 월등한 늑대와는 상대가 안된다. 늑대는 심폐지구력이 월등하면서도 싸울 때 즉각적으로 달려드는 것이 아니라 심리전을 계속하며 느리고 차분하게 한 방을 노린다. 오랜 세대에 걸쳐 야생에서 살아남을 수 있는 전투력을 갖게 된 늑대와 인간에 의해 개량되고 길러진 개는 이렇게 큰 차이를 갖는다.늑대형 창업자와 개형 창업자그럼에도 불구하고, 개는 늑대보다 훨씬 오랫동안 행복하게 살아남는다. 확률적으로 죽을 확률이 늑대에 비해 훨씬 낮다. 개가 아프면 인간이 동물병원에서 치료를 해준다. 반면, 늑대는 작은 상처에도 기생충이 감염되면 죽어야 된다. 결국, 개와 늑대의 차이는 둘 사이에 어떠한 우월성도 갖지 않는다. 그저 다를 뿐이다.이 다큐멘터리를 보고 창업자의 삶도 이와 크게 다르지 않다는 생각이 들었다.나는 개형 창업자와 늑대형 창업자가 있다고 본다. 개형 창업자와 늑대형 창업자는 둘이 싸우는 것이 아니기 때문에 우열을 가릴 수 없다. 그저 두 부류의 창업자 모두 제품-시장 핏을 맞추기 위해 시장과, 기존의 패러다임 속에서 고독하게 싸울 뿐이다. 어떤 창업가는 관계를 통해 대부분의 문제를 해결한다. 대부분 이런 창업자들의 문제 해결 능력은 극도로 뛰어나다. 대기업을 나와 창업을 한 창업자나, 해외 유명대학을 나와 끈끈한 네트워크를 갖고 창업한 창업자들이 이런 유형에 해당한다. 유명한 기업인으로는 잭 웰치나 아마존의 제프 베조스 같은 사람들이 이러한 개형 창업자에 속한다고 본다.많은 사람들이 창업자의 학력이 중요하냐고 묻는 것을 보았다. 그런데, 잘 생각해보면 안중요할 수가 없다. 학력이 좋거나 대기업 출신인 사람들이 성공확률이 높은 것은 당연한 것이다. 그들이 그러한 경험을 갖기까지의 인내심과 노력도 그렇지만, 그 이후 구축된 관계들, 그리고 그것을 통한 문제 해결 능력은 결코 무의미한 것이 아니다. 그들이 온갖 노력 끝에 얻은 '관계'와 '안정성'은 언제 어디서든 힘을 발휘한다. 반면, 늑대형 창업자가 있다. 뭔가 늑대라고 하니까 더 멋있어 보일지 모르겠으나, 현실적으로 비즈니스를 수행할 때 어떠한 관계도 없는 경우 실패 확률이 대단히 크다. 지금의 늑대는 강하지만, 그러한 늑대가 태어나기까지 수세대에 걸쳐 수많은 늑대들이 죽음을 맞이했다. 결국, 늑대형 창업자의 경우 맨땅에 헤딩을 하는 경우가 많고 이때 들어가는 시간이나 비용적인 부분이 굉장히 크다. 이러한 늑대형 창업자의 대부분은 실패한다고 본다.그런데, 아주 만약에 이러한 늑대형 창업자가 생존했을 경우 일반적인 개형 창업자들보다 훨씬 더 강한 면모를 드러낸다. 애플의 스티브 잡스나 소프트뱅크의 손정의 회장이 이러한 늑대형 기업인에 속한다고 본다. 스티브 잡스나 손정의 회장 모두 '안정성'과는 거리가 멀다. 스티브 잡스는 리드 대학을 중퇴하고 창업했으며, 손정의 회장 또한 일본의 와세다나 동경대학을 나온 사람이 아닌 미국 UC버클리 출신이다. 우리나라에서 서울대를 하버드보다 더 알아주듯 일본이나 중국도 로컬 대학이 더 높은 비즈니스적 가치를 갖는다. 늑대형 창업자 - 손정의 회장. (동시대 인류에서 나오기 힘든 인물이라고 보면 되겠다)즉, 늑대형 창업자는 생존이 매우 어렵지만, 만에 하나 생존했을 때는 매우 강하고 저돌적인 측면이 있다. 개형 창업자의 경우 생존확률이 높고 영리하지만, 만에 하나 실패 문턱에 갈 경우 늑대형 창업자에 비해 쉽게 지칠 확률이 있다. 늑대와 개는 저렇게 이미 진화가 끝났다. 하지만 인간은, 창업자는 끊임없이 진화할 수 있다.결국 우리는 개형 창업자과 늑대형 창업자의 면모를 섞어서 더 강력한 개체를 만들어야 한다. 늑대형 창업자는 개형 창업자들이 가진 관계나 관계를 통한 문제 해결 능력을 배우면 되고, 개형 창업자는 늑대형 창업자가 가진 헝그리 하게, 가끔은 무식하게 저지르고 보는 그러한 승부 수적 기질에 대해 배우면 된다.공동창업자가 있는 회사가 더 성공할 확률이 크다는 것도 이러한 맥락일 수 있다고 본다. 한 명은 개형, 한 명은 늑대형 창업자일 경우 회사가 성공할 확률이 월등하게 높을 수밖에 없다. 스티브 잡스는 마이크 마쿨라라는 귀인을 얻어 사업을 폭발적으로 키울 수 있었다. 인텔 출신의 마쿨라는 창업 동아리 수준의 애플을 세계적인 회사로 키워낸 일등공신으로 꼽힌다. 이 마이크 마쿨라가 애플에 '안정성'을 부여하는 개형 창업자라고 볼 수 있다.이제 우리도 몇 가지 질문을 던질 때가 아닌가 싶다.우리는 개형 창업자인가? 늑대형 창업자인가?관계를 통한 빠른 학습이 중요한가?느리더라도 직접 체득하며 학습할 것인가?고통을 미리 예견하고 피할 것인가?고통을 맞닥뜨릴 것인가?No pain, No gain 이라지만, Yes pain, Yes gain! 은 아니다.고통이 없으면 얻는 것도 없을지라도, 꼭 고통받아야 얻는 게 있는 것도 아니다.창업자는 이러한 근본적 고민을 계속해야 한다고 본다.왜냐하면, 창업자의 심리적 안정성이 회사의 안정성과 직결되기 때문이다.기업 초기에는 창업자가 무너지면 회사가 무너진다.그러나, 창업자는 늘 매우 무너지기 쉬운 감정상태로 버텨 나간다. 그렇기 때문에 이러한 방향성을 잘 정하고 자신이 추구하는 기업가정신을 마음속에 되새기는 것이 매우 중요하다고 본다.  오늘 늑대와 개의 사진을 보며 이러한 고민을 해보는 건 어떨까?* 이 글은 비캔버스로 초안을 잡아 작성한 글이다. 비캔버스로 잡은 글 초안을 https://beecanvas.com/s/77c25a 에서 확인할 수 있다.
조회수 901

환상 속 브랜딩: 소비자들의 마음속엔 무엇이 있을까

비트코인캐쉬로 한 5만원 벌어서 기분이 겁내 좋았습니다. 자고 일어나보니 5만원이 시뻘겋게 깜박이고 있는 거죠. 이제 제가 어떻게 했을까요? 그 5만원을 뽑아서 카카오 적금에 차곡히 넣어놓았을까요? 음, 아마 누구도 그러지 않을 겁니다. 인생의 즐거움은 돈을 모으는 게 아니라 써버리는 탕진잼에서 비롯된다는 진리를 몸소 실천코자 냉큼 신발을 사버렸죠. 왜냐! 코인은 계속 오를 것 같았으니까! 기영이가 등장했으니까. (미친..) 일단 카드로 신발을 샀으니 지출한 건 코인이 메꿔주겠지~~ 라며 룰루랄라 하고 있었습니다. 기영이가 나타나면 오른!!!....(미친)다음 날 어떻게 되었을까요? 네 그렇습니다. 거래소 폐쇄! 중국발 악재! 선물옵션 종료! 큰손들 빠져나가기! 개미무덤! 그렇습니다. 나이아가라 폭포의 시원함을 맛보게 되었죠. 이렇게 모지리즘을 실현하고 나니, 문득 궁금해졌습니다. 도대체 소비자의 마음 속엔 무엇이 있는걸까.(응?...) 아니..정확힌 도대체 난 무슨 생각을 살고 있는걸까...난 왜 살지..하아.한강가즈아.... 여튼 오늘은 소비자들의 알 수 없는 마음에 대해 한 번 알아보고 싶어졌습니다. 저만 알아보면 재미가 없으니 여러분도 함께 알아보도록 합시다. 사람은 기똥찬 신상 조던이나 발색이 아름다운 틴트를 발견했을 때 두 가지 경로를 거쳐 판단을 합니다. 틴트를 보고 '저 틴트의 발색은 효과가 2시간밖엔 안갈거야. 난 또 알게 모르게 츄릅츄릅 틴트를 갈비탕과 함께 삼키고 말겠지.... 굳이 내 뱃속으로 들어갈 틴트를 32,000원이나 주고 살 필욘 없을거야. 차라리 그 돈이면 고기를 먹는 게 낫지 않을까?'라며 심사숙고하며 결정을 내리는 "중심경로 프로세스(central route processing)" 와 보자마자 어머 이건 사야돼! 라며 틴트 이름을 외우기도 전에 '저거 뭐지, 저거 주세요.' 라고 냉큼 사버리는 "주변 경로 프로세싱(peripheral route processing)"이 있습니다. 인간은 하루에 약 70번 정도의 결정을 하게 됩니다. 그런데 모든 선택에 심사숙고를 하게 되면 엄청 피곤해지고 배가 고파지겠죠? 그러니 효율적인 선택을 하기 위해 주변경로를 활용하려는 경향이 있습니다. 지인의 추천, 화려한 광고문구, 점원의 말발 등 환경적 요소와 필요하진 않지만 왠지 갑자기 필요한 이유를 만들어내는 알 수 없는 그 존재(=지름신)의 강림 등 말입니다.이러한 주변경로 활용은 두 가지의 장점이 있습니다. 일단 소비자입장에선 정신적 에너지를 아끼고 구매에 대한 책임 등에서 자유로워 질 수 있습니다. 사고 나서의 합리화나 편향기제가 작용하는 것도 훨씬 용이해지죠. 지름신이 시킨 일이니 나의 잘못은 별로 없다고 여겨지거든요. 예쁜 쓰레기는 예쁨으로서 역할을 다했다....는 식의 현명(?)한 사고가 사람을 지배하게 됩니다.나머지 하나는 빠른 결정입니다. 이건 기업 입장에서도 즐겁고 행복한 일이죠. 4일 밤낮을 공부하고 연구하며 저걸 살지말지 고민하는 것보다 보자마자 이거 주세요! 를 외치는 극단적 시원함(COOL) 속성 고객을 만나면 매우 즐겁지 않겠습니까. 제가 아디다스에서 신발팔때는 이런 고객님이 오면 왠지 양말이라도 하나 더 챙겨드리고 싶었.....하지만 이러한 주변경로 프로세싱이 항상 좋은 측면만 있는 것은 아닙니다. 인간의 선택을 너무 다각화시키고 충동/감정적으로 만들어서 예상치 못한 행동들을 만들어내는데 이 때문에 브랜딩이나 마케팅전략을 세우는 데 있어 꽤나 골치를 썩게 되죠.예를 하나 들어보죠. House-money effect 라는 이론이 있습니다. '꽁돈 효과' 라고도 하죠. 코인으로 5만원을 벌면 저축을 하지 않고 더 큰 돈을 써버리는 겁니다. 이스라엘의 경제학자인 랜즈버그(Michael Landsberger)가 진행한 '랜즈버그 조사'에선 한발 더 나아가 꽁돈이 소액일수록 그 이상의 지출을 쓰게 된다고 했습니다. 로또 정도의 거액에 당첨되면 오히려 그걸 저축하고 관리하려고들 하죠. 하지만 한 번에 구매할 수 있을 정도의 금액이라면 오히려 거기에 얼마를 더 얹어서 큰 지출을 하는 겁니다.  예를 들어볼께요. 오늘 길가다가 78만원을 주웠습니다. 근데 마침사고싶던 미러리스 카메라가 90만원인거예요. 그럼 12만원 얹어서 카메라를 사고 생각하겠죠. 우와 12만원에 카메라를 샀어!! 라고. 사실 그 돈이 없었다면 카메라가 필요없다고 느꼈을 지도 모릅니다. 몇 달 지나면 머릿속에서 지워질 충동이었을지도 모를 일이죠. 이는 '심적회계(mental accounting)'의 작동 때문입니다. 우리 마음 속엔 전혀 논리적이지도 정확하지도 않지만 꽤나 놀라운 성능의 계산기가 하나씩있죠. 말도 안되는 계산을 척척해내는 물건입니다. 1. 기프티콘은 현금지출에 비해 돈을 아끼는 듯한 기분이다.2. 다음 달에 낼 돈은 미래의 내가 알아서 하겠지.3. 오늘은 고생했으니 써도 된다.4. 나를 위한 선물이다.5. 왠지 다음달엔 돈이 들어올 것 같아.6. (당연한 돈을 받았는데) 내 계획에 없었으니 꽁돈이다.7. 오늘 기분이 개똥이므로 질러버리자!8. 다 먹고살자고 하는 건데 먹는 데 쓰는 건 괜찮아9. 할부로 내면 충분히 가능할 듯10. 비트코인골드 호재가 있으니 다음주엔 오를거야등등의.... 초자연적인 계산을 가능케하는 계산기죠.  하지만 놀라운 건 이 심적회계엔 하나의 스위치가 있습니다. '감정회계'라는 모드죠.우연히 구스다운 주머니를 뒤지다가 1만원 짜릴 발견하면 냉큼 치킨을 시켜버립니다.그러나 돌아가신 어머님의 유품을 정리하다  어머니 바지에 있던 1만원을 우연히 발견했다면 고이고이 평생 간직할지도 모릅니다.같은 돈이라도 감정에 따라 그 가치가 엄청나게 달라지게 되는 것이죠. 이러한 긍정적 공돈효과를 극단적으로 활용하는 곳이 바로 휴대폰 정책입니다. 18개월간 쓰고 중고폰을 반납하면 나머지 6개월분의 할부금은 없애줄께! 하는 등의 조금만 알고보면 호갱트랩인 정책들이죠. 왠지 지금 이것저것 할인을 붙여 왠지 싸게 사는 듯한 기분이 드는 겁니다. 백화점이나 뷰티브랜드의 '통합포인트 제도' 도 이와 비슷하죠. 잠자고 있던 포인트를 깨우라는 건 당신을 위한 배려가 아니라 올리브영에서만 쓸 수 있는 포인트가 꽁돈으로 생겼으니 어서 달려가서 질러라!! 는 얘깁니다.이러한 체제를 휴리스틱이라고 하며, 다양한 마케팅이나 인지편향을 활용한 브랜딩전략으로 자주 활용되고 있습니다. 인간이 기본적으로 지니고 있는 인지편향심리는 소비와 브랜드인지에 아주 크나큰 영향을 미칩니다. 몇 가지를 좀 알아보도록 할까요1. 가용 휴리스틱 (availability heuristic)사람들은 먼저 배운 정보를 과도하게 신뢰합니다. 특히 부정적인 정보를 제압할 때 많이 사용하죠. 우리 아부지는 술 매일 마셔도 건강하게 잘 지내시는데?? 하면서 과음의 폐해를 축소시켜 인지하는 등의 심리입니다.에베베베베베2. 선택 지원 편향 (choice-supportive bias)흔히 단레몬기제라고도 하는데, 일단 무언가를 지르고 나면 그 선택에 대해 잘했다고 생각합니다. 맥북을 질러버렸으면 고장나지 않을 거야! 설사 고장이 나더라도 오히려 비싼 돈을 주고 AS를 받는 것을 기꺼이 납득하는 경우입니다. 내 선택이 틀리지 않았다는 것을 강화시키고 싶으니까요.3. 클러스터 착각 (clustering illusion)그냥 운으로 이루어진 경우인데 뭔가 그 속에서 패턴을 찾아내려고 하는 겁니다. 이는 도박사의 심리와도 연관이 되어 있는데 동전의 앞면이 9번 나왔으니 10번째는 뒷면이 나올 것이다! 라거나, 고양이 3마리가 차트에 등장했으니 반드시 내일 고점 돌파한다!! 는 식의 말도 안되는 논리이죠.4. 최신 편향 (recency)사람들은 최신정보를 더 신뢰합니다. 항상 최신이라고 해서 옳은 정보가 있는 것은 아니죠. 마케팅에서 흔히 '지금까지 알던 것은 잊어라!!' 또는 '우리는 잘못 알고 있었습니다...' 는 등 심각하게 정보의 오류를 찝어내는 식의 문구를 쓰는 것은 이러한 최신편향에 기대는 전략입니다.5. 특징 효과 (salience)브랜딩에 특징효과는 매우 중요합니다. 사람들은 '행복한 것' 을 떠올릴 때 단순히 삼시세끼 잘먹고 잘 곳있으면 되지~는 식을 떠올리지 않습니다. '행복한 것 = 로또당첨' 등의 극단적인 이미지를 먼저 떠오리려고 합니다. 가끔 담백하고 솔직한 마케팅이 실패하는 이유 중 하나라고 할까요. 큰 특징을 잡기 힘든 평범한 이미지로 브랜딩을 하려고 해도 소비자들은 극단적인 정보로 인식하려고 합니다. 특히 보고들은 정보를 누군가에게 전달할 때 이는 아주 심해지죠.6. 제로 리스크 편향 (zero-risk bias)확실한 것! 을 추구하길 좋아합니다. 때문에 두 번 세 번 확인하는 절차도 기꺼이 감당하죠. 그리고 놀라운 건 이렇게 확실한 절차를 거치고 나면 그것은 변하지 않을 것이다! 라는 믿음을 가집니다. 흔히 금융/법률 서비스등이 여러가지 복잡하고 완고한 절차를 요구함에도 그러한 번거로움이 신뢰로 변환되는 경우가 이러한 제로리스크 편향의 좋은 예라고 할 수 있습니다.7. 현상유지 편향(status quo bias)몇몇의 요지부동 소비자들의 심리입니다. '이불밖은 위험해' 라는 생각이죠. 비슷한 개념으로 부작위 편향(omission bias), 손실 회피 편향(loss aversion bias)이 있는데, 이는 소비자보단 경영측면에서 더욱 많이 활용됩니다. '새로운 건 젊은 애들이나 하는 거야!' 는 식의 의견을 합리화하는 데 유용한 마인드입니다.8. 사후확증편향(hindsight bias)오....이것은 매우 흥미진진한 편향입니다. 어떤 일이 일어나고 나서 평가할 때 "내가 그렇게 될 줄 알고 있었어!" 라고 무릎을 탁 치는 거죠. 정말 알고 있었을까요? 노놉. 이는 누군가가 좋은 아이디어를 냈을 때도 마찬가지입니다. "그 정돈 나도 할 수 있겠다!" 는 식의 심리죠. 그럼 미리 하지 그랬어요. 누군가의 성공이 쉽게 이해되고 그 원인을 마구 분석할 수 있는 것도 이러한 사후확증 편향에서 비롯됩니다. 그러니 성공사례에 대한 분석을 너무 믿진 마세요.9. 내집단 편애(ingroup favoritism)코란도를 구매한 사람들은 구매한 사람들끼리의 커뮤니티가 있습니다. OO을 사랑하는 모임 등도 비슷한 원리죠. 팬클럽을 조직하거나, 간담회, 베타테스터를 만들려는 이유는 이러한 내집단 편애현상을 활용해서 소비자계층을 끈끈하게 만들려는 심리입니다. 내가 산 제품을 너도 샀다는 데에서 동질감을 형성하고 그것은 이 제품을 비난하는 사람들을 적으로 간주하여 대신 공격하는 경우도 있습니다.10. 임의적 추론이건 매우 .....이상한 심리입니다. 흔히 원인과 결과가 동일시 되는 경우가 이에 해당합니다. - 나는 이걸 사고싶다- 그러니 이걸 사겠다.....이해가 확 되시나요? 근거가 곧 결과가 되버리는 이상한 추론인데, 심적회계 못지않게 초월적인 논리력을 구사할 수 있습니다. 이런 임의적 추론은 브랜딩전략을 구축할 때 엄청난 노력으로 고객 타겟팅을 해서, 고민고민한 슬로건과 워딩, 소개콘텐츠등을 순식간에 바보로 만들어버릴 수 있습니다.- 이건 뭔가 맘에 안들어(뭔진 모름)- 그러니까 싫어(응????)흔히 이러한 편향과 오류들은 정보를 분석해야하는 경우에 많이 발생합니다. 내가 에너지를 쏟아서 뭔가를 판단해야 할 때 두뇌는 귀찮아져버리죠. 그래서 주변정보에 기대버리려고 합니다. 또는 지난 경험이나 습관에 의존하려는 성향이 있죠. 그렇다면 브랜드는 고객에게 어떤 워딩으로 어떤 정보를 줘야 할까요?ㅎㅎㅎ 이건 숙제입니다. 저는 스압이 강력해서 여러분들의 눈이 피곤해질 걱정으로 이만 글을 줄이도록 하겠습니다. 숙제검사는 17화에서 하도록 하겠습니다 :) 모두 감기조심하세요!
조회수 2847

Retrofit2 로 전환

Android 와 NetworkAndroid 에서 Network 라이브러리들은 다양하지만 근 1년 사이에 주로 사용되는 라이브러리들이 점차적으로 적어지고 있습니다.오늘은 그 중에서 Retrofit 에 대해 이야기 하고자 합니다.토스랩의 Android Network Library1. Spring-Android, Retrofit 그리고 Retrofit2토스랩은 총 3개의 네트워크 라이브러리를 사용하였습니다. 초창기에는 AndroidAnnotations 에 연동되어 있는 Spring-Android 를 사용하였습니다. 하지만 다중 쓰레드 환경에서 동일한 Request 객체를 사용하면서 저사양 단말에서 문제로 두각되기 시작하였습니다.그래서 Retrofit 으로 2015년 중순쯤 전환을 하였습니다. 그러다 2016년 초 Retrofit2 가 정식 배포가 되면서 자연스럽게 Retrofit2 로의 전환이 대두되기 시작하였습니다. 전환의 이유는 내부의 네트워크 모듈에 대한 Refactoring 이었는데 그와 동시에 Retrofit2 로의 전환도 함께 진행되었습니다.2. 이슈들What the CALL기존의 Retrofit 은 200~399 에러에 대해서는 정상적인 Body 를 반환하고 400 이상의 경우에는 Typed Exception 형태로 로직을 진행하였습니다. 하지만 이정도로는 Response Status 나 Header 정보를 알기에는 추가적인 로직이 필요로 하였습니다. 물론 Success 케이스에도 마찬가지이긴 하였습니다.이는 Retrofit 의 기본적인 목적에 부합되지 않는다는 문제가 있었습니다. Retrofit 의 가장 기본적인 목적은 Okhttp 의 상위 구현체로써 쉽게 Request 와 Response 를 구현한다는 것입니다. 손쉬운 구현이 필요한 정보를 제외시킨다는 것은 별개의 문제이기 때문입니다.그래서 Retrofit2 에서는 Call 객체를 통해서 Request 와 Response 에 적용된 Header, StatusCode, Body 등을 직접 접근 할 수 있도록 인터페이스를 추가하였습니다.이 객체는 불변성을 가지고 있기 때문에 Getter 만이 존재하며 Request 에 필요한 정보는 다른 부분에서 적용되어야 함을 명시하셔야 합니다.Call 객체의 적용Call 객체를 적용하는 과정에서 2가지의 이슈가 있었습니다.Interface 의 모든 Return Value 를 Call 로 전환할 것Request Error 를 직접 핸들링 하도록 수정해야 함이 2가지 때문에 여러가지가 연쇄적으로 수정되어야 했습니다.먼저 수정과정을 설명하기 앞서 Jandi 앱의 Network 통신 전제조건에 대해서 설명해드리도록 하겠습니다.Jandi 앱은 모든 Network 통신은 Current Thread 에서 한다는 것을 전제로 합니다. 이는 MainThread 에서의 통신이 아니라 호출자의 Thread 를 따라간다는 것을 전제로 하고 있습니다. 또한 이를 위해 Reponse 반환, Error Handling, 세션 자동 갱신을 위해 Generic 으로 선언된 Facade 용도의 Wrapper Class 를 별도로 두고 있습니다.따라서 수정해야할 1,2 번을 위해 아래와 같은 수정을 하였습니다.Facade Class 내에서 성공여부를 직접 파악한다.성공시 Return Value 를 직접 반환할 수 있도록 한다.실패시 Status, Response 정보를 이용하여 throw Exception 을 한다. (세션 정보를 갱신 로직은 당연히 포함되어 있습니다.)그래서 아래와 같은 코드 형태가 되었습니다.Response response = apiExecutor.execute(); if (response.isSuccessful()) { RESULT object = response.body(); retryCnt = 0; return object; } else { // 400 이상 오류에 대해 처리 return handleException(apiExecutor, response, null); } Network 통신 과정에서의 Exception 이 나는 경우는 2가지 입니다.기기의 Network 자체가 끊겨 있거나 비정상인 경우Response 의 Parsing 과정에서 오류가 발생한 경우Annotation 의 변화Annotation 의 가장 큰 변화는 DELETE 였습니다. 기존의 Retrofit 에서는 DELETE 요청은 GET 방식으로 가능하였습니다. 즉 POST 처럼 Body 를 설정할 수 없게 되어 있었습니다. 따라서 DELETE 를 쓰기 위해서는 별도의 Custom HTTP Annotation 을 설정 할 적용하여야 했습니다.Retrofit2 에서는 이런 경우에 대비하기 위해 @HTTP 를 개방하였습니다. @HTTP(path = "{url}", method = "DELETE", hasBody = true) 와 같이 사용해야만 Custom HTTP Method 를 적용하실 수 있습니다.Jackson2-Converter 대응Jackson2-Converter 의 이슈는 최근에서야 알게 되었습니다. Jandi 앱은 그동안 Jackson 1.x 를 사용하였고 최근에서야 Jackson2 로 전환을 하였습니다.그 과정에서 Retrofit2 의 converter-jackson 라이브러리를 사용하려 하였으나 중대한 문제가 있었습니다.Retrofit2 에서 Reqeust Body 의 Serialize 는 메소드의 참조변수로 선언된 클래스만 지원하며 상속한 자녀클래스를 넣어도 부모 클래스의 결과만을 리턴 하는것이었습니다. (gson 과 여타 converter 에 대해는 해당 이슈에 대해 파악해보지 않았습니다).이를테면 아래와 같은 경우입니다.interface Api { @PUT("/profile") Call modifyProfile(@Body Profile profile); } public class Profile {} public class NameProfile extends Profile{ String name; } public class PhoneProfile extends Profile{ String phone; } // using case api.modifyProfile(new NameProfile("Steve")); 허나 아래와 같은 상황이 펼쳐집니다.// expect {"name":"Steve"} // actual {} 해당 문제는 Converter-Jackson 의 이슈이기 때문에 위와 같은 상황이 예상된다면 별도의 Converter.Factory 를 선언하여 사용하시기 바랍니다.OkHttpClient 생성 이슈Okhttp 에 여러가지 기능이 추가되었습니다. 그중 잔디가 사용 중인 목록입니다.okhttp-logging-interceptorauthenticatorCutome SSL이런 이유 때문에 OkHttpClient 를 직접 생성하여 사용 하고 있습니다.처음에는 OkHttpClient 를 모든 API 호출시 새로 생성하도록 하였습니다. 헌데 TestCode 가 200회가 넘어가면 File IO 를 너무 많이 사용했다는 오류가 계속적으로 발생하였습니다.이 오류가 단순히 File IO 가 많아서 라는 메세지 때문에 처음에는 Database 에 대한 오류인 줄 알고 Memory Cache 작업과 테스트코드 개선작업을 하였으나 정상 동작이 되지 않았습니다. (테스트 코드 1회에 평균 2번의 API 통신과 2회의 DB 처리를 합니다.)그 와중에 기존의 테스트 코드는 정상 동작하는 것을 보고 Retrofit2 작업을 진행한 branch 만의 문제임을 깨달았습니다.현재는 OkhttpClient.Builder 를 통해 생성한 1개의 OkhttpClient 만을 재사용하도록 변경하였습니다.Network Retry 시 동작 변경Retrofit2 는 Call 객체를 이용하여 동일한 정보로 재요청을 할 수 있도록 지원하고 있습니다. 하지만 이에 대한 제약이 하나 있습니다. 이미 Network IO 가 끝난 경우 Retrofit2 는 Call 객체를 복사하여 재사용할 것을 가이드 하고 있습니다. 그래서 재요청시 다음과 같이 코드를 작성하셔야 합니다.Call call = action0.call(); if (!call.isExecuted()) { return call.execute(); } else { return call.clone().execute(); } OkHttp3 의존성Okhttp 를 사용하는 타 라이브러리가 있다면 Okhttp3 의존성을 가지고 있기 때문에 이에 유념하셔야 합니다.3. 정리Retrofit1 -> Retrofit2 로 변경하는 과정에서 다양한 이슈를 발견하였습니다.Return Value 수정Exception 처리 강화Annotation 수정Request-Response Converter 수정OkhttpClient 재사용 정의재요청 처리에 대한 validation 추가OkHttp3 의존성Retrofit2 로 변경에 있어서 가장 큰 핵심은 Call 이라는 객체라고 할 수 있다는 것입니다.이 객체는 Request 에 대한 동작 제어(cancel, retry 등), Request-Response 의 독립성 보장, 그에 따라 각각의 정보에 대한 접근 등을 보장하게 됩니다.Retrofit2 는 그외에도 Okhttp3 와 다양한 플러그인 지원하고 있습니다. 요청-응답에 필요한 Body 의 변환툴 (Converter-xxx), EndPoint 에서 접근하는 Call 객체에 대한 다양한 툴 (CallAdapter-xxx)현재 Retrofit1 에서 잘 동작하고 있고 의도대로 흐름제어를 하고 있다면 Retrofit2 로 옮겨갈 이유는 없습니다. 하지만 변경을 하고자 한다면 이러한 영향도가 있을 것임을 공유해드렸습니다.참고하면 좋은 Slidehttps://speakerdeck.com/jakewharton/simple-http-with-retrofit-2-droidcon-nyc-2015Jake Wharton’ Retrofit2Presentation 영상#토스랩 #잔디 #JANDI #개발 #개발자 #인사이트 #경험공유

기업문화 엿볼 때, 더팀스

로그인

/