스토리 홈

인터뷰

피드

뉴스

조회수 1142

스푼 CSO Jay를 지금 만나보세요!

제이, 제이도 월요병이란 게 있어요?가끔은 동네 바보 오빠, 또는 젊은 아빠 같은 그는 업무가 시작되면 이 세상 그 누구보다 프로페셔널하고 진지해진다. 남들 다~있는 월요병이란 없을 것 같은 사람. 본인의 일을 사랑하고, 스푼을 사랑하는 CSO Jay를 소개합니다.출처: 대웅제약 (술과 친한 Jay에게 필요한 것)아빠라는 별명, 마음에 드세요?※ 그는 '미혼이자 현재 싱글'임을 알려드립니다.마케팅팀을 총괄하는 Jay에겐 여러 가지 별명이 있다. 그중에서도 단연 돋보이는 건 '아빠'라는 애칭. 그를 아빠라고 칭하는 동료들에게 물어보니, 그가 따뜻하고 포근해서라고 했다. 사람 냄새나는 사람이라 그런지 많은 이들이 편하게 생각하고 좋아한다고 생각이 든다. 한국팀 멤버들 뿐만 아니라, 글로벌 마케팅 팀원들마저 그를 아빠라고 칭하는데 일본팀 한 친구는 이렇게 말해주었다.제이요? 제이는.. 저에게 한국인 아빠 같아요듣고 싶은 당신의 스푼 라이프마케팅, 데이터 분석 그리고 스푼 CSO"저는 처음엔 대리라는 직책으로 입사를 했었어요. 입사 3년 후, 500 스타트업에서 교육을 받은 후부터 이사직을 맡게 되었어요. 그러니 이사직을 맡은 지 오래되진 않았네요. 입사 후 초창기 멤버로서 개발 빼고 정말 모든 일을 다 해봤던 것 같아요. 처음에 분석부터 시작을 했는데요. 원래 수학을 좋아하기도 했고, 공부하면서 너무 재미있더라고요. 제가 능력을 발휘할 수 있는 영역이라고 확신이 들었어요. 사실 저는 제 자신을 마케터라고 칭한 건 작년부터인데요. 퍼포먼스 마케팅이라는 용어 자체가 없을 때였어요. 500 Startup을 만나서 마케팅과 분석을 공부했던 점이 마케터로 성장하는데 가장 도움이 컸던 것 같아요. 그때는 세미나라는 세미나는 정말 다 찾아다녔었고, 마케팅을 잘한다는 회사는 다 쫓아다니면서 배웠던 것 같아요."초창기 멤버가 된 에피소드 들려주세요"현재 COO 직책을 맡고 계신 Jun과의 인연으로 시작되었어요. 저랑 준은 대학교 선 후배 관계인데요. 제가 학교 다닐 때부터 신뢰하고 좋아하는 분이었어요. 어떤 분이냐면, 저에게 1년 간 한 달에 한 권씩 12권의 책을 보내주실 만큼 저를 챙겨주셨고 아껴주셨던 선배예요. 제가 영어공부를 하게 된 계기도 바로 준이 제안해주셔서 인데요.  처음에 준이 창업을 하신다고 하셨을 때, 저는 아무런 고민 없이 YES라고 대답했어요. 그러고 나서 사실 1년 동안 정말 많이 후회를 했었어요. 왜냐고요? 힘들었어요 정말. 진짜로 너무 힘들었어요. 그때는 스푼이라는 서비스를 하기 전, 저희의 첫 번째 서비스 배터리 교체 사업 '만땅'을 했었을 땐데요. 그땐 이렇게 사무실에서 앉아서 일하는 게 아니었어요. 노점상에서 배터리 교체를 해주고, 오토바이를 타고 배달도 해야 했을 때였는데 그게 어린 마음에 괜한 자존심에 스크레치가 가더라고요. 그래서 참 힘들었었던 것 같아요. 그때 정말 힘들고 첫 번째 사업에 실패했을 때도 포기하지 않고 지금까지 함께 올 수 있었던 이유는, 제가 혼자 나간다고 되는 게 아니었기 때문이에요. 제가 나가면 모두에게 피해를 입힐 수 있는 상황이었고 어떻게 보면 제가 선택한 일에 대한 책임감이었다고도 생각해요. 제가 떠남으로써 상처 받을 사람들이 많았고, 관계로 이 일을 시작했고 제가 아끼는 사람들과의 관계가 무너지는 건 정말 싫었거든요. 그래서 남았어요. 그리고 만약 다시 6년 전으로 돌아간다고 해도 저는 준이랑 닐이랑 같이 창업할 거예요."스스로도 워커홀릭이라고 인정하세요?"음.. 아니요? 저는 제가 워커홀릭까진 아니지 않나 싶어요. 저도 일을 하기 싫을 때가 있어요. 작년? 까지만 해도 저는 월요병이 없었던 것 같은데, 최근에 저도 월요병이 생기더라고요. 혼자 일할 때는 내가 더 열심히 하면 해결이 되는 부분이 많았는데 지금은 제가 혼자서 할 수 없는 것들이 더 많다 보니.. 중요한 문제에 있어, 벽에 부딪치게 될 때면 그게 정말 힘들더라고요. 저도 사람인지라 피곤하기도 하고 지칠 때도 있지만 열정의 힘으로 다시 일어나는 것 같아요"팀원들에게 어떤 상사가 되고 싶나요?"그 부분이 사실 제가 제일 고민하고 있는 부분인데요. 이게 참 딜레마에 빠지게 되더라고요. 조금 더 팀원들을 명확하게 리드해주고, 방향성을 제시해주고 싶지만 조율하는 과정이 쉽지 않더라고요. 관리해야 하는 사람들도 드러나고, 국가도 많아지다 보니 일적인 것 들뿐만 아니라 여러 가지 문제나 도움을 줘야 하는 상황이 오니 부담스럽기도 하고 힘들 때도 많아요. 하지만 꼭 팀원들과 약속한 건 지키려고 노력합니다. 그래도, 아빠라는 별명을 얻은 건 좋은 의미라고 생각해요. 저에게 일하는 동기가 되더라고요. 근데 왠지 마케팅팀에서 제가 제일 나이가 많아서 아빠라고 부르는 거 아닌가요? 어쨌든 팀원들의 긍정적인 피드백은 저에게 크게 영향을 줘요. 제가 팀원들에게 바라는 점이 있다면, 문제를 문제로 인식하지 않아줬으면 해요. 문제 자체를 고민하기보다 그 문제를 해결하고 발전할 수 있는 방향으로 나아갔으면 좋겠어요.스푼이 이런 브랜드가 되었으면 좋겠습니다."양적으로 말씀드리면, 포커스는 저희가 20대에 두고 있지만 앞으로 30대 그리고 40대도 아는 즉 사람들이 모두 아는 그런 국민 브랜드가 되었으면 좋겠어요. 질적으로는 진심 어린 소통을 하면서도 재미를 느끼는 플랫폼이 되었으면 좋겠어요. 소통을 어려워하는 사람들도 의지하고 찾을 수 있는 그런 플랫폼이요. 누구나 동등하게, 선입견 없이 말하고 듣는 그런 서비스가 되었으면 좋겠고 그러려고 노력하고 있습니다"알고 싶은 Jay의 이야기나를 한마디로 표현한다면?개구쟁이 - "저는 제가 순수함을 간직할 수 있는 사람이었으면 좋겠어요. 세상에 때 타고 싶지 않은 마음이 있거든요" 그리고 저의 별명은 '히발이'인데요. 저는 동네에서 어릴 때부터 어리바리해서 유명했어요. 술 먹다가 앞에 차가 오면 저를 비추는 스포트라이트 같아서 막 그 앞에서 춤도 추고 그랬어요. 흥이 좀 많은 편이에요.사내에 팬 클럽이 생기셨던데(?)"저는 사실 그런 단어가 어색해요. 요즘 팀원들이 저를 우리 제이라고 불러주곤 하는데.. 어색해요 정말.. 하지만 저는 나이젤을 무너뜨릴 겁니다. (나이젤 독보적 사내 1위 팬클럽 보유자) 장난이고요 하하.. 저는 나이젤이랑 키도 비슷하고, 많은 것(?)이 비슷하지만 다른 게 있다면 '성품' 같아요. 나이젤 성품은 정말 따라올 사람이 없는 것 같아요. 그런 면에서 저도 그의 팬이에요"2019년 Jay의 목표는"첫 번째로 저에겐 회사의 성장이 제일 중요하고요. 두 번째로는 인격적으로 제가 조금 완성(?) 되었으면 좋겠어요. 조금 더 좋은 성숙한 사람이 되고 싶다고 느껴져요. 많은 사람들을 포용할 수 있는 능력을 가지는 것이 목표입니다"Jun과 함께 창업하지 않았더라면"저는 아마 지금쯤 학교 체육 선생님을 하고 있지 않았을까요? 체대를 나오기도 했고, 부모님께서 안정적인 직장을 가지길 바라셨었거든요. 저는 사실 20대 때 서른이 될 때까지 취업을 하지 말자라는 위주였어요. 다만 취업을 하지 않았을 뿐 게으르게 살지는 않았어요. 자격증도 따고, 열심히 놀고 열심히 살았던 것 같아요. 다만 취업을 30대 때에 해도 늦지 않고, 저는 결국엔 잘 될 수 있을 거라고 생각했거든요. 왜냐고요? 100세 시대이잖아요. 20대부터 일하면 30~40년을 앞으로 일해야 하는데 굳이 그럴 필요가 없다고 생각했어요. 그래서 첫 직장을 29살에 시작을 다니게 되었고 이곳에 오기 전까지 광고 대행사에서 일을 했었어요. 그 후에 준이 사업을 시작하시면서 조인을 하게 되었고요. 만약 준이 창업을 시작하지 않으셨다면 지금 저는 아마 제가 창업을 하고 있을지도 모르겠네요."유난히 남자한테 인기 많은 비결"저도 잘 모르겠어요. 특이하게 어릴 때부터 남자한테 인기가 많았어요. (하지만 여자한테도 인기가 많다고 소문이 자자함) 형들한테도 예쁨을 정말 많아 받았어요. 남자 동생들도 저를 잘 따르고.. 근데 진짜 이유를 잘 모르겠어요. 외국에 나가면 게이라는 오해를 자꾸 받더라고요 하하하.. 어디서든 항상 잘 웃고 다녀서 그런가 봅니다"Jay는  1. 농구를 즐기고, 청바지를 좋아합니다.2. 입맛이 까다롭지 않아 가리는 음식은 없지만 '참치'와 '육회'를 좋아합니다.3. 제이가 함께 일하고 싶은 사람은, '포용력이 있는 사람. 그리고 개개인이 갖춘 뛰어난 능력을 잘 발휘할 수 있는 사람'입니다.팀원들이 Jay를 한마디로 표현한다면?Ted 曰: 가능성 - "어떠한 상황에서도 같이하면 모든 할 수 있을 것 같은 사람"Summer 曰: 겉바속촉- "머리는 차갑게, 마음은 따뜻하게"William 曰: 시몬스침대 - "흔들림 없는 편안함, 어떠한 풍파가 오더라도 묵묵히 걸어 나가는 모습이 함께하는 사람으로 하여금 편안함을 안겨준다"Ceci 曰: Yeah!! - "항상 열정 넘쳐 보이는 Jay와 어울리는 단어"Hennie 曰: 큰오빠 - "맨날 우리 보면서 아빠미소 짓는데 아빠라고 하기엔 젊으니까(?)"Cherish 曰:  곰돌이 아빠-  "그냥 곰돌이처럼 생겼는데 아빠처럼 맨날 장난받아주고 웃음"Chole 曰: 구조대 - "팀원이 힘든 상황을 돌파할 수 있도록 큰 도움을 주기 때문"Sunny 曰: 유니콘 - "요즘 같은 세상에 존재하지 않을 것 만 같은 존재. 사람 냄새 풀풀 풍기는 인간미 넘치는 그냥 진짜 말 그대로 진국인 사람"
조회수 2468

사운들리 백엔드 이야기

사운들리는 '귀에 들리지 않는 소리'를 이용해서 컨텐츠를 전달할 수 있는 SaaS 플랫폼을 서비스하고 있습니다.제품의 구성요소는,음파를 송신할 수 있는 송신단음파를 모바일에서 수신할 수 있는 Android, iOS SDK그리고 컨텐츠를 제공하고 데이터를 수집, 분석하는 백엔드로 구성되어 있습니다.오늘은 구성 요소중 백엔드에 대해서 이야기 해보도록 하겠습니다.<그림 1. 사운들리 솔루션 구성도>사운들리의 인프라는 모두가 잘 아시는 아마존 웹 서비스를 이용하고 있으며, 크게 컨텐츠를 제공하는 API서버 부분, 로그를 수집, 분석하는 부분, 그리고 컨텐츠를 관리하는 CMS 부분으로 이루어져 있습니다.소프트웨어 스택Java : 현재 사운들리의 일부 시스템을 제외하고는 전부 자바로 작성되어 있습니다. Node.js로 시작하여 PHP를 거쳐 지금의 자바 기반의 시스템으로 구성하게 되었습니다. 다양한 사람들이 개발을 해오면서 각자 가장 잘할 수 있고, 빠르게 구현할 수 있는 언어로 개발되어 가다 현재의 자바로 통일되어 구성되게 되었습니다.Spring : API서버는 HTTP 기반의 REST API를 이용해 컨텐츠를 전달하고 있으며 스프링 프레임워크를 이용해 개발되었습니다. 이외에도 일부 분석에 스프링 배치를 사용하고 스프링을 편리하게 사용할 수 있게해주는 스프링 부트도 이용하고 있습니다.gRPC : 분산되어있는 서버들끼리 이기종 언어간 통신을 하기 위해서 Protocol Buffers 기반의 gRPC를 이용하고 있으며 서버들의 모니터링하는 서버와 에이전트들 사이의 통신 목적으로 사용합니다.Flume : 분산된 서버들에서 로그를 수집하는 역할을 합니다. 수집된 로그는 파일로 저장하며 실시간으로 볼수 있도록 엘라스틱서치에 같이 저장하고 있습니다. SDK에서 전송되는 로그 또한 웹서버의 엑세스 로그를 플럼 에이전트가 수집하는 방식으로 비동기로 처리하고 있습니다.ElasticSearch : 수집된 로그들을 실시간으로 확인하기 위해서 사용되며 Kibana를 이용해 시각화하고 있습니다.Angular.js : CMS의 프론트엔드는 Angular.js + Bootstrap을 이용해 개발되었으며, Bower를 이용한 라이브러리 관리, Grunt를 이용한 빌드 관리를 하고 있습니다.소프트웨어 개발/운영GIT : 소스코드는 git로 관리하며 Git-Flow를 이용한 브랜치 정책을 수립하여 가져가고 있고 저장소로는 깃허브를 이용합니다.Quality Practice : QA단계에서 제품을 테스트하기 전 개발자들은 QA 프로세스에 맞게 다음 3가지 기준으로 소스 코드의 품질을 관리합니다.코딩 컨벤션 : 사운들리 내부 코딩 컨벤션에 맞게 개발되었는지 확인합니다. Checkstyle의 규칙을 정의 및 자동화합니다.테스트 코드 : 단위 테스트 코드를 작성하며 테스트 결과는 모두 통과되어야 합니다.테스트 커버리지 : 단위 테스트 코드가 작성된 커버리지를 계산하며 현재 60%를 목표로 진행하고 있습니다.젠킨스 : 소스코드 저장소에 변동이 일어나면 젠킨스가 소스코드를 빌드하고 위에서 언급한 세가지에 대한 리포트를 작성합니다.소나큐브 : 무료 오픈소스로 코드 정적 분석을 해주며 및 QA 리포트를 같이 볼 수 있습니다.슬랙 : 인력이 적은 저희 팀도 슬랙을 적극적으로 개발/운영에서 사용하고 있습니다.팀 커뮤니케이션 : 팀원들 간의 의사사통을 위한 주요 수단으로 모든 팀원이 함께 사용하고 있습니다.분석 리포트 : 젠킨스나 배치를 통해 분석된 데이터들은 분석이 끝난 지표들은 슬랙으로 결과를 전송하여 모든 팀원이 볼 수 있도록 공유하고 있습니다.서버 모니터링 : 서버들의 이상 징후 감지나 배치 오류등을 슬랙을 통해 담당자에게 전송하여 조치할 수 있도록 합니다.애플리케이션 및 서버 모니터링 : 애플리케이션의 모니터링은 Naver에서 오픈소스로 공개한 핀포인트를 사용하고 있고, 서버 상태 모니터링을 위해 자체 개발한 모니터링 시스템을 사용하고 있습니다. 모니터링 데이터 수집을 하는 에이전트와 전체 시스템의 데이터를 관장 하는 서버간에는 gRPC를 이용하여 상태 체크를 합니다. 서버의 상태에 문제가 있을 때에는 slack을 통해 담당자들에게 알람을 주도록 시스템 설계를 하였습니다.개발 문화개발자들은 각각 개발을 할때 정해진 정책에 맞춰 브랜치를 만들어 개발합니다.각각 개발된 소스들은 저장소인 깃허브에 푸시된 후 깃허브의 댓글 기능을 이용하거나 오프라인을 통해 코드 리뷰를 진행합니다.리뷰가 끝난 후 합쳐진 소스는 QP 활동을 통해 분석이 됩니다.빌드가 실패할 경우 커피를 사야합니다 ^^ (커피를 얻어 먹으려는 것이 아닌 소스코드를 푸시하기 전 잘 확인하자는 취지입니다) AWSEC2 : 사운들리의 대부분의 구성 요소인 API서버와 로그 수집, 분석 서버, 엘라스틱서치, 플럼, CMS등이 모두 EC2에 구축되어 있습니다.RDS : 컨텐츠의 주 저장소로 데이터베이스 관리의 용이성을 고려하여 RDS의 Multi-AZ에 배포하여 Active-Standby로 구성되어 있으며 이 데이터들은 레디스와 로컬 캐시를 이용하여 API서버에서 활용하고 있습니다.S3 : 컨텐츠에 포함된 각종 정적 데이터들이 저장되며 수집된 로그들도 저장하여 보관됩니다. EMR : 로그 수집서버를 통해 S3에 저장된 로그들은 EMR을 이용해서 분석됩니다.Beanstalk : 개발 서버의 배포에 사용됩니다. 최근 IntelliJ의 플러그인이 업데이트 되면서 IntelliJ 15버전을 지원하게 되므로써 로컬에서 개발하고 개발 서버에 배포까지 편리하게 하고 있습니다. VPC : 인터넷이 필요 없는 서버들은 VPC 내부 private-zone에 배포 및 ELB를 통해 외부에서 접근하도록 구성되어 있습니다.<그림 2. AWS 배포 구성도>이상으로 사운들리에서 사용하고 있는 백엔드 소프트웨어들을 소개해 보았습니다. 적은 인력으로 빠르게 사업을 진행하는 스타트업에서는 비즈니스에 집중할 수 있도록 도와주는 다양한 툴이나 오픈소스를 이용하여 많은 도움을 받을 수 있는 것 같습니다. 또한 코드를 잘 작성하여 에러를 줄이는 것도 필요하지만 여유가 많지 않으면 최소한 제품의 에러에 빠르게 대응할 수 있도록 하는 방법도 필요한 것 같습니다.#사운들리 #개발 #개발자 #문제해결 #프레임워크 #스킬스택 #스택 #인사이트
조회수 964

(연말특집 소환글) 안녕하세요 블랭크 최진영입니다.

블랭크의 소소한 이야기를 구독하시는 분들과 공유하고 싶은 글이렇게 링크로 소환합니다. 바쁜 송년의 시간을 보내고 계실 독자 여러분들이 꼭 하루 정도는 한 해를 뒤돌아보면서 정리하셨으면 좋겠습니다! 내가 얼마나 성장했는지내가 무엇을 했고, 어떤 배움이 있었는지내가 어떤 실패를 했는지 그래서! 내가 어떻게 나아갈지!  블랭크코퍼레이션 최진영 프로/ 마케팅유닛 리더블랭크코퍼레이션 마케팅유닛의 2018년 핵심 히스토리안녕하세요, 블랭크 최진영입니다블랭크에서의 마케팅, 지난 1년을 돌아보며 | "안녕하세요, 블랭크 최진영입니다" 올해 이메일에서 가장 많이 사용한 말이다. 대학졸업 직후 입사해 7년을 다닌 첫 직장을 과감히 박차고 나와 블랭크에 온 지 1년하고도 3개월이 지났다. 이젠 정말 비로소 내 회사답다. 고운 정 미운 정 다 들어 어떻게든 끝을 보지 않으면 안 될 지경에 이른 것 같다. 내 지난 1년은 자신있게 말하건데 너무 치열했기brunch.co.kr/@posselavaboy/10 1월 디스플레이 배너광고 테스트 2월~3월 웹로그 수집 시작4월 네이버 타임보드의 재발견6월 트위터 광고 집행시작7월~9월 본격적인 팀 빌딩과 슬럼프 10월 블랭크 대시보드 프로토타입 완성11월~12월 시퀀스 있는 마케팅, 브랜딩의 시작 Jason KH커뮤니케이션    기획자
조회수 1626

Java의 json 라이브러리 google-gson

문제 상황안드로이드 어플리케이션을 개발하다 보면 주소록을 다루는 일이 종종 있습니다. 어플리케이션에서 주소록에 관련된 정보를 접근할 일이 있는 어플이라면 ContentResolver를 통해 단말의 주소록에 접근해서 필요한 정보를 가져오게 됩니다.그런데, 최근 개발하고 있는 스포카 어플을 통해 아주 많은 사람의 연락처가 저장된 주소록을 가지고 이런 저런 로직을 실행하는 상황을 테스트 하다보니, OutOfMemory(OOM)에러가 발생하는 현상을 볼 수 있었습니다. 모바일 디바이스들은 PC와 다르게 자원이 제한적이기 때문에 어떻게 하면 OOM을 일으키지 않을 수 있을까 라는 고민을 해야 하는 상황이었습니다.대강 문제가 되었던 클라이언트 사이드의 로직을 살펴보면 이렇습니다.단말의 주소록에 접근하여 필요한 정보를 추출 후 서버에 전송서버에서 정보를 가공하여 필요한 json 문자열을 생성 후 반환, 이 문자열은 주소록에서 보낸 정보의 양에 비례해서 늘어나게 됩니다.클라이언트 측에서 서버 측에서 보낸 json 문자열을 이용하여 JSONObject객체를 만든 후 이 JSONObject를 이용 리스트 완성eclipse의 MAT(Memory Analyzer)을 이용하여 어느 시점에서 OOM이 일어나는지를 추측해보았습니다. 서버에서 보내준 json형식의 문자열을 HttpURLConnection을 통해 전달받고 이를 StringBuilder를 이용하여 완전한 문자열으로 만들던 도중에 OOM이 일어나는 것으로 의심되었는데 이 때문에 JSONObject의 생성자에 json 문자열을 전달하기도 전에 메모리가 가득 차 버리니 매우 난감한 상황이었습니다.대게 주소록에 사람이 그렇게 많지 않으므로 (200~500명 정도) 아무런 문제가 없었지만 10000명 정도의 더미데이터를 주소록에 저장하고 테스트하다 보니 append 메서드를 호출하다 OOM에러를 뱉으면서 어플이 종료되었습니다. 문제는 append 메서드를 호출 시 StringBuilder의 capacity를 넘을 경우 내부적으로는 메모리 재할당과 copy과정이 일어난다는 것이었습니다. 그렇다고 초기 StringBuilder생성시 capacity를 무작정 높게 잡기도 애매한 상황이었습니다.gsongson은 Java객체를 json형식으로 변환하고 그 역으로도 변환할 수 있도록 도와주는 라이브러리입니다. gson의 사용법이 궁금하다면 gson user guide를 읽어보면 되고 api가 궁금하다면 gson api document를 참조하면 됩니다.gson 적용대략 이런 방식으로 프로젝트에 gson라이브러리를 적용하였고, HttpURLConnection을 통해 받아온 InputStream을 이용 바로 객체를 생성할 수 있었습니다. 이전에 StringBuilder를 이용할때 생기는 오버헤드가 사라진 셈이죠. 위와 같은 방식으로 OOM이 생기는 문제 상황을 해결 할 수 있었습니다.위의 예는 상황을 최대한 단순화하여 설명하려고 작성한 예제이고 이 사이트를 통해 더 상세하게 설명된 사용예를 보실 수 있습니다.#스포카 #개발 #개발자 #GSON #Java #인사이트 #google_gson
조회수 1398

스푼 콘텐츠 디자이너 Cherish를 만나보세요!

체리씨는 '청춘' 그 자체 같아요인터뷰를 하는 내내 체리씨에게 이렇게 말했다. 알면 알수록 젊음과 열정의 아이콘인 한국 마케팅팀의 막내이자 콘텐츠 디자이너. 마냥 막내일 거라고 생각했던 예상을 뒤엎고 그 누구보다 '청춘스럽다', '대단하다'라는 단어를 연발하게 하는 글로 모든 매력을 담을 수 없는 매력의 소유자 체리씨를 소개합니다. 체리씨가 준비했던 포트폴리오 Super Rookie드디어 왔다, 우리 회사에 우리 팀에 슈퍼루키가 등장했다! 면접부터 남달랐던 체리씨. 자기 브랜딩은 타고 난 건가요?저를 어떻게 보여줄 수 있을까 고민을 하던 차 갑자기 머릿속에 떠올랐어요.그래! 이렇게 나를 제대로 보여주자!저의 포트폴리오 그래서 만들게 되었어요. 저는 첫 번째 페이지가 굉장히 중요하다고 생각해서 임팩트를 주려고 노력했어요. 제주도에서의 체리씨나를 표현하는 한마디 제주 현무암 - "현무암은요, 구멍도 많고 까맣지만 돌이 굉장히 가치 있는 돌이에요. 그래서 제주도 가서 함부로 돌을 가져오면 안 된다는 이유도 그렇다고 해요. 굴러 다니는 흔한 돌 같아 보여도 꼭 가치가 있는 현무암처럼 그런 가치 있는 쓸 모있는 존재가 되고 싶어요"듣고 싶은 당신의 스푼 라이프첫 직장, 첫 사회생활 어때요?"일단! 엄청 좋아요. 제가 지금 입사한 지 3개월 차인데요. 시간 정말 빠른 것 같아요. 저는 사실 스푼 라디오를 이미 알고 있었어요. 사용도 해본 유저였어요. 졸업하고 취업을 준비할 때, 마이쿤(스푼 라디오)에서 구인중이라는 것을 알고 지원하게 되었어요.사실 스푼이 이 정도로 규모가 크고 좋은 회사일 거라고 상상도 못 했어요. 제가 찾아볼 때만 해도 회사에 대한 정보가 크게 없었거든요. 지금은 브런치에 '스푼을 만드는 사람들' 이란 매거진이 생겨서 좋은 것 같아요. 스푼이라는 회사에 대해 미리 알아볼 수 있다는 건 큰 장점인 것 같아요! 저는 회사에 대한 확신이 면접 때 생겼어요. 모든 팀원이 다 같이 면접을 보고, 서로의 의견을 존중해주는 모습을 보고 와 진짜 여기에서 꼭 일하고 싶다고 느꼈거든요. 이런 회사라면 무조건 일하고 싶다! 나도 이 사람들과 함께 하고 싶다 생각했고 안 뽑히면 한 이틀은 울 예정이었어요"콘텐츠 디자이너, 체리씨"어릴 때부터 그럼 그리는 걸 좋아했던 것 같아요. 자연스럽게 예대를 가게 되었던 것 같아요.제가 집중을 잘할 수 있는 이유요? 저는 좋아하는 걸 하면 집중을 정말 잘하는데요. 제가 잘할 수 있고 좋아하는 일을 할 수 있어서 다행인 것 같고 감사해요. 또 그만큼 많은 지원을 회사에서 아끼지 않고 해 주시니까 더 몰입도가 높아지는 것 같아요. 재미있는 일, 좋아하는 일을 좋은 사람과 할 수 있다는 것은 정말 큰 축복인 것 같아요. 무엇보다 함께 일하는 디자이너 멤버와의 캐미가 잘 맞아서 인 것 같아요. 텐션이 일단 비슷한 데다가 저의 부족한 점을 채워주시거든요! (체리씨♥해니)"퇴근 후, 영어 공부하는 이유"일단, 영어를 잘하고 싶어요! 예전에 코타키나발루에 갔었는데 어떤 한국분이 너무 멋지게 스타벅스에서 영어로 주문하고 가시는데 너~~ 무 멋있는 거예요. 반했어요! 저도 그렇게 살고 싶어요. 제가 따뜻한 나라를 좋아하는데, 따뜻한 나라에 가서 영어 쓰면서 살고 싶은 희망사항이 있거든요. 아! 그리고 저희 미국 진출하면 미국으로 파견도 가보고 싶고요. 그리고 영어 배우는 거 진짜 재미있어요. 가끔 집중 못해서 영어 선생님한테 딱밤 맞을 때도 있지만.. 히히"체리씨네 잡화점알고 싶은 Cherish의 이야기특유의 밝음은 어디서 나오나요?"저희 가족들 만나 보시면 체리씨 4명을 보실 수 있어요. 아빠 포함하여 모든 가족들이 다 저랑 똑같아요.(하하) 워낙 집안 자체가 밝고 긍정적이다 보니, 가족에게 물려받은 것 같아요. 다들 제가 항상 텐션이 높으신 줄 아는데 사실 조용할 땐 또 조용해요. 사람 많은 걸 항상 좋아하진 않아요. 혼자만의 시간도 필요해서 자주 혼자만의 시간을 가지곤 해요. 예를 들면 영어공부 또는 운동 아니면 원데이 클래스 같은 곳에 참여하면서 주로 시간을 보내요"체리씨의 창업 도전기 "저는 창업에 대한 환상이 늘 있었어요. 대학교 때 학교에서 창업 지원을 해준다고 하길래 저는 저만의 가게를 시작했었는데요. 정말 작은 구멍가게 같은 곳이었어요. '체리씨의 잡화점'이라는 제가 직접 만든 굿즈들을 판매하는 곳이었어요. 제가 아기자기한 것들을 좋아하거든요. 그림뿐만 아니라 집 꾸미고, 인테리어에도 굉장히 관심이 많은 편이에요. 그래서 저만의 창업 공간이 생기면서 오전에는 학교를 가고 오후와 주말엔 가게에서 일을 했었어요. 한 9개월에서 10개월 정도 했던 것 같아요. 정말 많이 배우고, '잘' 망했던 케이스예요. 그때 정말 많이 배우고 깨달았고 다행히 학생 신분이라 돌아갈 곳이 있어서 다행이었어요. 그리고 저는 원래 독립 출판을 하다가 그만둔 적도 있는데, 책에 관심이 많거든요. 나중엔 다시 책을 만들어 출판하고 싶은 마음도 있어요. 사실 한 권은 이미 출간한 책이 있는데요. 저의 꿈을 나타내는 동화 같은 이야기의 책이에요. 다시 재 수정해서 다시 한번 출간하고 싶어요!" (기대하겠습니다)제주도를 좋아하는 체리씨"저는 예전부터 제주도에서 살고 싶다는 마음을 항상 가지고 있었어요. 바다 앞에서 살고 싶은 로망이 있었고, 대학교 때 우도에서 아르바이트를 했었어요. 한 6개월 정도? 했던 것 같아요. 숙식 제공해주는 곳에서 일하면서 좋은 사람들도 많이 만났었어요. 그때 그 기억이 아직도 생생해요. 그렇게 조용하고 한 적한 곳에서 나중에 꼭 살아야겠다 마음먹었거든요. 우도는 5시가 되면 관광객들이 모두 떠나고 굉장히 한 적한 곳인데, 그 잔잔함이 전 너무 좋았어요. 그림 그리면서 보내는 시간, 운동하는 시간 등 저만의 시간들이 소중하거든요그리고, 제주도와 관련은 없지만 이집트를 꼭 가보고 싶어요! 영화 '미이라'를 보고 피라미드가 궁금하기도 하고, 이집트가 독특한 스쿠버다이빙으로 굉장히 유명한 곳이라고 들었어요. 수영을 좋아하고 잘하다 보니, 관심이 가더라고요!"Cherish는,1. Cherish라는 이름의 뜻은 '소중한'이라는 의미를 가지고 있습니다2. 간판 또는 인테리어를 보고 영감을 얻습니다3. 해산물을 정말 좋아합니다! 팀원들이 Cherish를 한마디로 표현한다면?Jay 曰: 슈퍼루키 - "잠재력이 보임.."Ted 曰: 천혜향 - "특산품인 천혜향처럼 본인만의 특별한 향이 있는 사람"Sunny 曰: 청춘 그 자체 - "볼 때마다 생기 넘치는 그 젊은 에너지에서 느껴지는 청춘스러움이 있음"Summer 曰: 어른 아이- "어리지만 언니 같은 느낌을 주는 매력이 있다"Chloe 曰: 재간둥이 - "체리시는 막내 미 낭낭! 한 재간둥이다. (본인은 자칭 '으른'이라고 하지만, 그 모습마저 퀴엽) 본인의 일은 척척 해내지만, 순간순간 보이는 그녀의 모습은 재간둥이가 따로 없다!!!! "William 曰: 말죽거리 잔혹사 - "모든 순간 최고의 작품을 위해 자신을 불태우고 뼈를 가는 장인 정신을 발휘하는 그녀, 멋있다"Henie 曰: 베프 - "내가 이 회사에 정착할 수 있겠단 결심을 내리게 된 가장 큰 이유"Ceci 曰: 연예인 - "스타일링이 바뀔 때마다 매력도 확확 달라져서.... 골져스.."
조회수 196

스타트업, 식사는 하셨습니까? 130회차

배고픈 스타트업에게 사주는 밥 한 끼, 스타트업 식사는 하셨습니까. 130회 차 스밥은 6월 29일 금요일, 청담동 옛날집에서 진행되었습니다.  오늘의 게스트는 암 환우를 위한 뷰티 서비스를 제공하는 #인디뷰티 팀입니다.암 치료를 하다 보면 머리가 빠지고 피부색이 검게 변하는 등 외모에 변화가 올 수밖에 없지만, 그렇다고 해서 아름다워지고 싶은 욕구가 사라지지는 않습니다. 아니 오히려 하루가 다르게 수척해지는 모습을 보다 보면 예뻐지고 싶다는 욕구가 더 욕구가 강해질지도 모릅니다. 그러나 암 환우분들은 화장품 성분 하나하나에 민감할 수밖에 없기 때문에 화장품을 쓰는 것조차 조심스러울 수밖에 없지요.  암환우에게 메이크업을 하고있는 인디뷰티 유지영 대표인디뷰티 팀은 이런 고충을 겪고 있는 암 환우 메이크업 서비스로 암 환우 전문 화장품과 가발까지 제작하고자 하는 계획을 가진 당찬 소셜벤처입니다. 이 팀을 위해 대한민국 최고의 메이크업 아티스트이자 해외에서도 활발하게 활동하고 계신 서수진 대표님께서 호스트로 함께 해주셨습니다. 서수진팔레트의 서수진 대표님초기 암환자에게 뷰티케어를 하는 직업을 만든 유지영 대표는 단순히 외모를 바꾸자는 마음보다 그분들과 소통을 하는 것이 더 중요하다고 생각하기 때문에, 암센터를 찾아가 직접 환우들을 만나고 그분들의 이야기를 들으며 그분들에게 정말 필요한 것이 무엇인지 길을 찾아가고 있었습니다. 그러나 아직은 사업 초기단계라 지금 제대로 하는 것이 맞는지, 앞으로는 어떻게 나아가야 할 지에 대해서도 고민이 많았는데요. 쉽게 생각하기 어려운 암환자들을 위한 뷰티 산업에 유지영 대표가 뛰어들게 된 계기는 가까운 분들이 암 투병을 하며 힘들어하는 모습을 보면서 자신들이 할 수 있는 메이크업으로 도울 수 있겠다는 생각을 하게 되었기 때문이라고 합니다. 선한 마음에서부터 사업이 시작된 만큼, 그 마음을 알아보고 관심을 가져주시는 분들 덕분에 한발 한발 내딛을 수 있었다고 하네요. 서수진 대표님께서는 먼저 그 길을 걸었던 선배 메이크업 아티스트로서 자라나는 후배들에게 맞춤 조언을 해주셨는데요. 좋은 취지로 시작된 사업도 이윤이 나야 지속될 수 있기때문에, 사업화 시킬 수 있는 부분에 대해서 많은 조언을 해주셨습니다. 어떤 길로 가는 것이 좋을 지 고민하는 스타트업에게 앞서간 선배의 조언만큼 귀중한 것이 없겠죠? 지금 뷰티시장에는 메이크업을 잘하는 사람도 많고, 강의를 잘하는 사람도 많지만, 암환자분들이 원하는 메이크업에 대한 데이터 갖고 있는 사람은 없기 때문에, 인디뷰티가 직접 병원을 찾아가서 환우분들을 만나서 그분들에게 정말 필요한 정보를 차곡차곡 쌓아가고 있는 것이 앞으로 정말 중요한 자산이 될 것이라며 조언과 함께 칭찬 또한 아끼지 않으셨습니다.  이번 모임에는 크립톤의 문지연 이사님과 양경준 대표님도 함께해주셔서 두분도 격려와 조언을 나눠주셨는데요. 밥 먹는 내내 정말 좋은 이야기들을 해주셔서, 에디터로 참석했던 저 또한 몸의 양식뿐 아니라 영혼의 양식까지 가득 채우고 돌아가는 느낌이었습니다. 이번 스밥은 게스트가 고민하는 부분을 너무나 잘 알고 계신 호스트님께서 맞춤 솔루션을 제시해주셔서 게스트에게는 정말 큰 도움이 되었을거라 생각됩니다. 맛난 식사가 끝나고, 유지영 대표가 서수진 대표님께 만나 봬서 영광이었습니다라는 후기를 전하자, "나중에 내가 유대표를 만나는 것이 더 영광이 되는 날이 오도록 열심히 해주세요."라는 답을 주셨는데요. 안될 사업이면, 냉정하게 그만두라고 말씀하신다는 서대표님께 칭찬을 듣고 인디뷰티팀이 정말 기뻐했다는 후문을 전하며 화기애애했던 130회 차 스밥 포스팅을 마무리하겠습니다. **스타트업 식사는 하셨습니까? 에서는 배고픈 스타트업과 스타트업을 사랑하는 선배님들의 신청을 기다리고 있습니다. 언제든지 문을 두드려주세요~ 게스트 신청하기호스트 신청하기#스트레스컴퍼니 #심리스타트업 #스트레스관리 #서비스소개 #제품소개
조회수 4843

신입 개발자를 위한 코드의 정석

Overview대학을 수석으로 졸업했지만, 정작 회사에서는 A부터 Z까지 제대로 할 줄 아는 게 없었습니다. 실수를 남발할 때마다 느꼈던 좌절감은 아직도 생생하지만 되돌아보면 그때의 삽질이 소중한 피와 살이 되었지요. 오늘은 헤매고 있는 신입 개발자를 위한 글을 쓰려고 합니다. 신입 개발자, 당신! 내 이야기를 편하게 듣고 가지 않으실래요? 남을 위한 코드, 클-린 코드“너랑 같이 일하는 사람은 어떻게 보라는 거야?” “한 명이 짠 코드인데, 어째 한 사람이 짠 것 같지가 않다..” “이게 네 스타일이냐?” 대학생이었을 땐, 대부분 혼자서 프로젝트를 진행했습니다. 다른 사람이 제 코드를 보는 일도 거의 없어서 띄어쓰기나 들여쓰기 등에 통일이 없었고, 함수의 네이밍도 전혀 고려하지 않았습니다. 이게 나쁜 습관이었다는 걸 입사하고 알게 되었죠. 이 습관을 고치려고 코딩 컨벤션(coding convention)을 지키는 것에 꽤 오랜 시간을 들여야만 했습니다. 우리는 협업을 하는 사람들입니다. 사람들이 더러운 방보다 깨끗한 방을 좋아하는 것처럼, 당신과 협업하는 개발자도 보기 어려운 코드보다 깨끗한 코드를 더 좋아합니다. 클린 코드를 작성하기 위한 세 가지 기본 원칙을 잠시 소개합니다. 클린 코드를 위한 세 가지 기본 원칙 코드를 최초로 작성한 사람이 끝까지 유지보수를 한다는 보장은 없다.이미 잘 정리된 코드는 효율성이 증가한다. 정리할 시간에 코드 한 줄을 더 분석할 수 있으니까!리팩토링은 미루었다가 한꺼번에 하는 것이 아니다. 코드를 작성하는 매순간 함께 하는 활동이다.작은 것 하나부터 습관을 들여보세요. 분명 깔끔하고 보기 좋은 코드를 만드실 수 있을 겁니다. 머지 않아 “남을 위한 코드는 곧 나를 위한 코드”라는 것도 알게 될 거고요. 책의 한 구절이 떠오르네요. “우리는 저자이다. 저자에게는 독자가 있다. 그리고 저자에게는 독자와 잘 소통해야할 책임이 있다.”⌈Clean Code⌋의 저자, Robert C. Martin 설마가 사람 잡는다, 철저한 검증만약 누군가 검증 단계에서 잊지 말아야할 것이 뭔지 묻는다면 이렇게 대답하고 싶습니다. “절대 사용자가 입력한 값을 신뢰하지 말라. 프론트엔드에서도, 백엔드에서도.” 모든 사용자가 각 항목에 맞게 올바른 정보만 입력해준다면 얼마나 좋을까요? 세상에는 다양한 사용자가 있습니다. 너무 바빠서 얼른 회원가입을 해야하는 사용자는 항목을 채우지도 않고 신청 버튼을 누를 수도 있습니다. 영어로 입력해야 하는 항목엔 한글을 입력한 사용자도 있을 겁니다. 이런 휴먼 에러(human error)뿐만 아니라 의도적으로 비정상적인 요청을 시도하는 사용자도 분명 있습니다. 이 때문에 개발자는 기능에 대해 항상 검증해야 합니다. 바로 이렇게요!그런데 프론트엔드에서 유효성 검사를 하면, 백엔드에는 유효한 값만 넘어온다고 보장할 수 없습니다. 자바스크립트는 브라우저 엔진에 따라 다르게 동작할 수도 있습니다. 또 자바스크립트에서 다루는 값들은 크롬의 개발자도구(option + command + i)를 이용하면 얼마든지 값을 변조하거나 검증을 회피할 수 있습니다. 또 불온한 시도가 아니더라도 다양한 예외 케이스들이 존재하기 때문에 백엔드에서도 무조건 검증해야 합니다.페이스북 페이지의 개발자 도구를 열었을 때 노출되는 화면입니다. 얼마나 나쁜 사람들이 많으면 경고화면까지 만들었을까요?누군가 질문할 수도 있겠군요. “프론트엔드의 검증이 의미가 없다면, 백엔드에서만 검증을 해도 되지 않을까요?” 네, 아닙니다.(단호) 많은 양의 일을 한꺼번에 하는게 힘든 것처럼 무분별한 요청이 서버에 쏟아지면 서버도 사람처럼 지치고 말 겁니다. 응답이 느려지는 등의 문제가 생길 수도 있고, 결국 사용자가 불편해질 것입니다. 그러므로 가장 좋은 검증 방식을 3단계로 정리하면 아래와 같습니다. 고수가 되는 검증 방식 3단계프론트엔드에서 먼저 값 검증을 하여 빠른 사용자 경험을 제공한다.백엔드에서 다시 한 번 더 검증을 거쳐 상황에 적절한 응답 코드를 내려준다.프론트엔드는 상황에 맞게 적절한 UX와 메시지를 보낸다. 동작 그만! 정리는 하고 코딩하자!예전에는 요구사항이 있으면 바로 키보드 위에 손부터 올렸습니다만, 그건 좋은 태도가 아니었습니다. 팀장님이 “이 경우엔 어떻게 하지?”라고 질문하면 아무 대답도 하지 못했기 때문이죠. 팀장님은 늘 “항상 먼저 생각하고 코딩하자!“라고 조언하십니다. 맞습니다. 최대한 모든 경우의 수를 머릿속에 정리하고 코딩을 시작해야 합니다. 시간이 없다는 핑계로 무작정 시작하면 분명 문제가 발생합니다. 또 구현할 기능만 몰두하지 말고, ‘이 기능이 다른 기능에 영향을 미칠 수 있을까?’를 고민하면 훨씬 좋은 코드를 만들 수 있을 겁니다. “이런 거 다 생각하고 짜면 도대체 코딩은 언제 하라고?” “얼른 선임 분들에게 코딩하는 내 모습을 보여줘야 하는데!” “당장 코드 안 짜고 있으면 노는 것처럼 보이지 않을까?” 혹시 이런 생각을 하고 계신가요? 나도 그런 생각을 했던 적이 있습니다. 하지만 요구사항을 확실하게 정리한 후, 코드를 짜는 게 더 효율적입니다. (그렇지 않으면.. ‘수정’이란 이름 아래 모든 것을 뒤엎고 처음부터 다시 시작해야할 수도 있습니다.) ‘더 나은 개발자가 되는 8가지 방법(8 Ways to Become a Better Coder)’이란 글에는 이런 내용이 있습니다. “동작하는 코드는 끝이 아니라 시작이다.” 신입 개발자는 종종 요구사항에 따라 동작하는 코드만 짜면 된다고 여길 때가 있습니다. 물론 사회생활에 적응하느라 정신 없는 와중에 그나마 자신의 코드가 요구사항대로 동작하면 무척 뿌듯할 겁니다. 하지만 동작만 한다고 절대 지나치지 말아주세요. 위에서 언급한 것처럼 깨끗한 코드가 되도록 리팩토링을 하고, 검증하고, 동작이 제대로 되는 것인지 의심하면서 꾸준히 노력해야 합니다. 마지막으로 항상 중요하게 생각하는 문장 하나를 남기고 글을 마치겠습니다.“진정으로 훌륭한 프로그래머는 적극적으로 어디가 잘못되었지를 찾는다. 자기가 놓친 결함은 결국 ‘사용자’가 발견하게 된다는 것을 알고 있기 때문이다.” Esther SchindlerConclusion지금까지 다룬 내용은 결국 같은 맥락입니다. 모든 개발조직은 좋은 품질의 소프트웨어를 개발할 줄 아는 개발자, 협업할 줄 아는 개발자를 원합니다. 누군가 “당신은 잘 지키고 있는가”라고 질문한다면, “저 또한 노력하고 있습니다.”라고 답변하고 싶습니다. 같은 자리에 머무르는 개발자가 될 것인지, 부족함을 알고 항상 배우고 나아가는 개발자가 될 것인지는 스스로의 몫이라고 생각합니다. 이 글을 끝까지 읽은 신입 개발자 당신! 같이 노력하지 않으실래요? :-) 참고 Robert C. Martin, 「Clean Code」, 케이엔피북스(2010)Esther Schindler, 8 Ways to Become a Better Corder, New Relic, 2018.03.02.유석문, 「프로그래머 철학을 만나다 - 소프트웨어를 사랑하는 기술」, 로드북(2014)임백준, 「읽기 좋은 코드가 좋은 코드다」, 한빛미디어(2012)팀장들이 꼽은 신입 PHP 개발자가 가급적 빨리 알았으면 하는 것들프론트에서”만” 유효성 검사가 문제인 경우남을 위한 코드 만들기 - 클린코드글김우경 대리 | R&D 개발1팀[email protected]브랜디, 오직 예쁜 옷만#브랜디 #개발문화 #개발팀 #업무환경 #인사이트 #경험공유
조회수 1597

이달의 반장님(6월) 선정 - '조 반장님' 감사드립니다

 안녕하세요. 다시 찾는 인테리어, 두번째입니다.  온라인 기반이라는 한계에도 불구하고 많은 고객님들이 저희를 찾고 만족해 하시는 가장 큰 이유 중 하나는 바로 오프라인 시공 현장에서 열심히 수고해주시는 '반장님'들 덕분이라고 생각합니다. 항상 수고해주시는 반장님들에게 조금이나 즐거움을 드릴 수 있는 방법을 꾸준히 고민해왔는데요. 드디어 한가지 작은 실천을 시작해보게 되었습니다. 이제부터 월마다 '이달의 반장님'을 선정하여  수고하시는 시공파트너분들에게는 소정의 금액과 감사의 표시로 상장을 드리기로 했습니다.  6월달에는 '조익현' 반장님이 이달의 반장님으로 선정이 되셨습니다. 마침 저희 사무실 근처에서 시공 일정이 있으셔서, 저희들이 갑자기 방문을 드려서 '이달의 반장님' 으로 선정되었다면서 상장을 드리고 왔는데요. 바쁘신 상황에서 갑작스러운 방문이라서 놀라셨을 수도 있으실텐데, 친절히 맞아주셨습니다.  조 반장님께는 연식이 오래된 아파트나 또는 험한(?) 시공지를 많이 부탁을 드렸었는데요.  이번에 방문드렸던 현장도 오래된 아파트 현장이었습니다...  그만큼 조 반장님을 신뢰를 할 수 있었고, 신뢰한 만큼 항상 최선의 시공으로 좋은 결과물이 나왔던 것 같습니다.  또 많은 도배 시공자들이 그리 반기지 않은 '1품 작업'도 자주 협조해주셨습니다.  어제 방문했던 현장에서도 '1품 작업'이다 보니 반장님 혼자서 바쁘게 시공을 해주시고 계시더라구요.  그래서 기회를 보다가 준비한 상장만 드리고 금방 복귀해야 했답니다.  크지 않은 선물임에도 반장님이 굉장히 만족해하셔서 저희도 기분이 같이 좋아지더라구요.   이렇게 감사의 마음을 표현하고 나니, 항상 머릿속에만 있었던 아이디어를 실행하는 것이 그렇게 어려운 일이 아니었던 것 같습니다.  '조 반장님' 외에 다른 시공 파트너 분들에게도 항상 감사한 마음 뿐인데요.  이렇게 좋은 기획을 더 일찍 시작하지 못해서, 죄송한 마음이 드네요.  항상 열심히 수고해주시는 모든 반장님들, 감사합니다!! 
조회수 1090

원하는 대로 뭉치는 GROUP BY

편집자 주전문 용어는 특정의 학술 용어나 기술 용어를 말하는데, 대개 둘 이상의 단어가 결합하여 하나의 의미 단위에 대응하는 말, 곧 합성어의 성격으로 되어 있다. 아래와 같은 전문 용어는 단어별로 띄어 씀을 원칙으로 하나, 편의상 붙여 썼다. 1) 수행 결과 > 수행결과2) 수행 시간 > 수행시간3) 실행 계획 > 실행계획Overview지난 글에서는 ORDER BY를 파헤쳤습니다. 이번에는 ORDER BY만큼이나 자주 쓰이는 GROUP BY를 알아볼 시간인데요. GROUP BY는 컬럼 값을 그룹짓고(중복을 제거하고) 이에 대해 건수나 값의 합을 계산할 때 사용합니다.지난 글 보기: 순서대로 척척, ORDER BY지난 글 보기: 단일 TABLE을 SELECT하자! 1.GROUP BY의 이해GROUP BY의 기본적인 문법은 아래와 같습니다.SELECT     MBR_NM FROM test.TB_MBR_BAS GROUP BY     MBR_NM  ; 실행계획은 아래와 같습니다. 테이블을 전부 읽어서 temp를 만들고 GROUP BY를 수행하라는 의미죠. GROUP BY가 수행되는 것은 Extra에 Using filesort가 표시된 것으로 유추할 수 있습니다.참고로 Using filesort는 GROUP BY, ORDER BY, DISTINCT 등의 정렬과 관련한 작업을 수행하면 나타납니다. Query를 수행해볼까요?위와 같은 결과가 나왔는데, 수행시간은 3.77초가 걸렸습니다. 이 Query는 MBR_NM의 중복을 제거해서 화면에 표시한 것입니다. 이번에는 아래의 Query를 수행해보겠습니다.SELECT     MBR_NM      ,COUNT(*) FROM test.TB_MBR_BAS GROUP BY     MBR_NM  ; 바뀐 것이 있다면 SELECT 절에 COUNT(*) 가 추가된 것입니다. 실행계획은 다른 점이 없습니다.COUNT(*)는 레코드의 건수를 계산할 때 사용합니다. 위의 계획은 MBR_NM의 값이 같은 건수를 출력하라는 의미입니다. 수행해보겠습니다.수행시간은 3.64초로 비슷하게 나옵니다. 위의 내용을 보면 강나영 1437건, 강다은 1465건, 강도연 1445건 … 인 것을 알 수 있습니다. 만약 테이블의 전체 건수를 알고 싶다면 어떻게 할까요? 아래와 같이 수행해보세요.SELECT     COUNT(*) FROM test.TB_MBR_BAS  ; 수행결과는 다음과 같습니다.2.GROUP BY의 응용(1): 나이 구하기이번에는 나이 컬럼을 추가하고 이름별 나이의 합을 구해보겠습니다. 아래의 명령으로 컬럼을 추가합니다.ALTER TABLE test.TB_MBR_BAS ADD COLUMN AGE TINYINT UNSIGNED DEFAULT 0 COMMENT '나이'; 컬럼이 추가되고, 다음과 같은 구조를 갖출 겁니다.AGE 컬럼에 모두 0이 들어간 것을 알 수 있다.SELECT     * FROM test.TB_MBR_BAS ; 0으로 들어간 값을 1에서 100 사이의 임의 값으로 변경하겠습니다. 만약 내용을 변경한다면 아래 예시와 같이 UPDATE문을 사용하세요. UPDATE test.TB_MBR_BAS SET AGE = TRUNCATE(RAND()*100,0)+1 ; test.TB_MBR_BAS 의 AGE 컬럼 내용을 변경하라는 명령을 하기 위해 RAND() 함수를 쓰고 임의의 값을 발생시겼습니다. UPDATE 및 SELECT를 수행하면 값이 변경된 것을 알 수 있습니다.SELECT     * FROM test.TB_MBR_BAS  ; 변경된 값이번에는 이름이 같은 사람들의 나이 합을 구해볼까요? 합을 구할 때는 SUM 함수를 사용합니다. SELECT     MBR_NM     ,COUNT(*)     ,SUM(AGE) FROM test.TB_MBR_BAS GROUP BY     MBR_NM ; 실행계획은 AGE 컬럼을 추가하기 전과 바뀐 것이 없다는 걸 알 수 있습니다. 실행결과를 보겠습니다.수행시간은 4.3초 걸렸습니다. ‘강나영’이란 이름을 가진 사람의 건수는 1,437건이고, 나이의 합은 74,092인 것을 알 수 있습니다. 합산만 하면 의미가 없으니 평균 나이를 구해보겠습니다. 방법은 SUM / COUNT하는 방법과 AVG 함수를 이용하는 방법 두 가지가 있습니다.SELECT     MBR_NM      ,COUNT(*)      ,SUM(AGE)      ,SUM(AGE)/COUNT(*)      ,AVG(AGE) FROM test.TB_MBR_BAS GROUP BY     MBR_NM  ; 실행계획은 이전과 달라진 부분이 없습니다. 수행결과를 보도록 하죠.수행시간은 5.6초 정도 걸렸습니다. 좀 더 빨리 수행하면 좋을 텐데 말이죠. 시간을 단축시키려면 어떻게 해야 할까요?3.GROUP BY의 응용(2): 수행시간 단축하기기본적인 방법은 GROUP BY할 컬럼으로 INDEX를 생성하는 것입니다. MBR_NM으로 INDEX를 생성해보겠습니다.CREATE INDEX IX_MBR_BAS_02 ON test.TB_MBR_BAS (MBR_NM); 생성 후, 이전 Query를 수행합니다.SELECT     MBR_NM      ,COUNT(*)      ,SUM(AGE)      ,SUM(AGE)/COUNT(*)      ,AVG(AGE) FROM test.TB_MBR_BAS GROUP BY     MBR_NM  ; 아래의 실행계획이 달라진 것을 알 수 있습니다.실행계획을 보면 전체를 읽어서 처리하는 부분은 사라졌습니다. 대신 IX_MBR_BAS_02 INDEX를 사용하는 것으로 나옵니다. 이미 정렬된 구조를 갖추고 있는 INDEX에서는 GROUP BY 수행 시, 또 정렬하지 않아도 됩니다. 그래서 별도 정렬인 Using filesort가 Extra에 나오지 않은 것이고, GROUP BY에 INDEX를 사용하는 것으로 해석할 수 있습니다. 그렇다면 시간은 얼마나 줄었을까요? 수행해보겠습니다.0.5초 정도 걸렸습니다. 기존 5.6초보다 훨씬 많이 개선된 것을 알 수 있습니다. 시간은 단축되었는데 결과는 같습니다.이번에는 IX_MBR_BAS_02를 기존 MBR_NM에서 MBR_NM, AGE로 생성해 보겠습니다.DROP INDEX IX_MBR_BAS_02 ON test.TB_MBR_BAS; CREATE INDEX IX_MBR_BAS_02 ON test.TB_MBR_BAS (MBR_NM,AGE); INDEX를 생성하고 이전 Query를 수행합니다.SELECT     MBR_NM      ,COUNT(*)      ,SUM(AGE)      ,SUM(AGE)/COUNT(*)      ,AVG(AGE) FROM test.TB_MBR_BAS GROUP BY     MBR_NM  ; 달라진 것이 있다면 Extra에 Using index가 표시된 것입니다. 기존에 INDEX가 MBR_NM으로만 구축된 Query는 IX_MBR_BAS_02 INDEX로 GROUP BY하고, TB_MBR_BAS에서 AGE 합을 구한 것입니다. 하지만 INDEX가 MBR_NM, AGE로 구축된 이번 경우는 IX_MBR_BAS_02 INDEX를 이용해 GROUP BY 와 AGE의 합까지 구한 것이죠. 물론 결과는 같았지만, 수행속도는 0.3초로 개선되었습니다.4.GROUP BY의 응용(3): 특정 조건의 결과 출력WHERE마지막으로 성이 김 씨인 경우에만 GROUP BY하여 값을 출력해보겠습니다. 위의 Query에서 WHERE로 조건만 더하면 되는데요.SELECT     MBR_NM      ,COUNT(*)      ,SUM(AGE)      ,SUM(AGE)/COUNT(*)      ,AVG(AGE) FROM test.TB_MBR_BAS WHERE MBR_NM LIKE '김%' GROUP BY     MBR_NM  ; 위의 이미지처럼 WHERE 조건이 들어가면서 type이 index에서 range로 바뀐 것을 알 수 있습니다. 이것을 해석하면 ‘ IX_MBR_BAS_02를 WHERE조건의 범위만큼 처리하라는 것’입니다. 실행결과를 보죠.HAVINGHAVING 절은 GROUP BY로 SUM, COUNT, AVG한 값을 필터 조건으로 걸고 싶을 때 사용합니다. 예시로 위의 Query에서 AVG(AGE) 값이 50보다 작은 것을 출력해보겠습니다.SELECT     MBR_NM      ,COUNT(*)      ,SUM(AGE)      ,SUM(AGE)/COUNT(*)      ,AVG(AGE) FROM test.TB_MBR_BAS WHERE MBR_NM LIKE '김%' GROUP BY     MBR_NM HAVING AVG(AGE) < 50>결과를 출력하면 아래와 같습니다.AVG(AGE)가 50보다 작은 값들이 출력된 것이 보이는군요.글을 마치며간단한 예제를 소개해드렸지만 큰 규모로 GROUP BY를 하면 재미있는 결과들을 만날 수 있습니다. 예를 들어 대한민국 전체 국민을 대상으로 GROUP BY를 실행하면, 평균 나이가 가장 많은 성 씨를 찾을 수 있습니다. 인구통계학 분석에 적용하면 100년 안에 없어질 성 씨를 알 수도 있고요. 응용할 수 있는 범위가 아주 많겠죠? 이상으로 GROUP BY에 대한 소개를 마칩니다. 글한석종 부장 | R&D 데이터팀[email protected]브랜디, 오직 예쁜 옷만#브랜디 #개발자 #개발팀 #인사이트 #경험공유
조회수 4902

“디자인과 기술을 이어주는 존재, 마크업 개발자를 함께 알아볼까요?” - 유저플로우셀 오혜진

'마크업 개발자', 아직은 우리들에게 다소 생소한 직군이죠. '마크업 개발자'는 디자이너와 개발자 사이에서 '오작교' 같은 역할을 하는 아주 중요한 포지션이에요. 오늘은 코인원의 마크업 개발자로 활약 중인 혜진님과 이야기를 나눠보려 해요. 자신의 위치에서 묵묵히 유저 친화적인 웹 환경을 만들어나가고 있는 혜진님을 만나러 가보시죠!사실 이미 혜진님은 지난 4월 13일(토), 테크 업계 여성들의 목소리에 집중하는 소중한 행사 ‘Women Techmakers Seoul 2019’에서 ‘스타트업에서 마크업 개발자로 살아남기’를 주제로 자신의 이야기를 널리 알리고 왔답니다. 스타트업 그리고 코인원에서 마크업 개발자로 살아남는 혜진님만의 방법은 무엇일까요? :-)Q. 혜진님 안녕하세요, 자기소개 부탁드립니다.안녕하세요, 코인원 유저플로우셀에서 마크업 개발자로 일하고 있는 오혜진입니다. 유저플로우셀은 암호화폐 거래와 프로차트와 같은 트레이딩 영역을 제외한 전반적인 서비스 영역을 담당하고 있어요. 특히 ‘셀'이라는 목적조직으로 개편된 이후 PM, 디자이너, 개발자가 한곳에 모여 누구나 코인원에서 거래를 하고 싶은 마음이 들도록 매력적인 곳으로 탄생시키고 있답니다. 저는 셀안에서 마크업 개발자로 일하며 디자이너와 프론트엔드 개발자를 이어주는 다리 역할을 하고 있습니다.Q. 지난 ‘Women Techmakers Seoul 2019’에서 마크업 개발자를 널리 알리는 발표를 했다고 들었어요. 어떤 내용인지 소개해주세요!감사하게도 ‘스타트업에서 마크업 개발자로 살아남기' 라는 주제로 300명이 넘는 관중들 앞에서 발표를 하고 왔습니다. (사실, 많은 분들이 와주셔서 땀이 좀 나기도 했고요;) 마크업 개발자는 스타트업에서 발견하기 힘든 직군이기도 해요. 보통은 웹 에이전시에 많이 속해 있거든요. 제가 마크업 개발자로 일한지 6년이라는 시간 동안 스타트업에서 어떤 방식으로 일해왔는지 알리고 싶었어요. 그래서 지금까지 이런 일들을 해왔고, 앞으로도 더 활발하게 할 것이라고 속시원하게 말하고 왔습니다.Q. 마크업 개발자는 구체적으로 어떤일들을 하나요?마크업 개발자는 한마디로 디자인(Design)과 기술(Tech)의 오작교 같은 존재입니다. 디자인의 의도가 개발과 충돌하는 부분은 없는지 파악하고, 개발에 잘 녹아들 수 있도록 프론트엔드의 앞단을 맡고 있어요. 코인원 웹 서비스에서 제공하는 신규 기능의 마크업 개발을 담당하고, 운영하면서 생긴 이슈들을 처리합니다. 또한 마크업 레거시에 대한 유지보수 작업도 병행하죠.예를 들어, 코인원의 회원가입 페이지를 제작할 때 디자인 작업을 먼저 들어갑니다. 그럼 디자인 작업을 바탕으로 개발자들이 기능을 만들어 넣게 돼요. 이 때, 기능적인 개발을 제외하고 UI(User Interface)적인 부분을 제가 담당합니다. 회원가입 페이지에는 이메일 인증, 휴대폰 인증 등 여러가지 개발요소들이 많아요. 그래서 개발하기 전에 기능이 들어가는 기본적인 레이아웃을 만들어 개발자에게 전달합니다. 마크업 작업이 바탕이 되어 그 위에 기능 개발이 이뤄진다고 보시면 돼요.디자이너가 레시피를 만드는 사람이라면, 마크업 개발자는 레시피 재료를 세팅해 주는 사람이에요. 개발자들은 세팅된 레시피를 끓이고 버무려 요리를 완성시키고요. 저는 좋은 요리가 탄생할 수 있도록 중간과정을 도와주는 역할인거죠. ▲ 'Women Tachmakers 2019'에서 발표에 열중한 혜진님!Q. 디자인과 기술의 중간 역할을 담당하고 계시군요, 사실 중간자의 역할이라고 하면 이어주는 과정에서 고충(?)이 생길 것 같아요.아무래도 디자이너와 개발자, 양쪽과 다 소통해야하는 부분입니다. 디자이너 입장에서는 ‘왜 프론트엔드에서 이 디자인이 안되는걸까?’ 라는 불만이 생길때도 있고, 프론트엔드에서는 ‘왜 디자인이 이렇게 들어가야 하는걸까?’ 라고 이해를 못할 때도 있어요. 서로의 이해관계를 잘 전달해야 한다는 점이 나름의 고충이죠. 코인원에서는 ‘디자이너 - 마크업 개발자 - 프론트 개발자’의 협업 프로세스를 정립해서 각자가 맡은 분야에 집중 할 수 있는 초석을 다졌어요. 무엇보다도 배경이 다른 세 개의 직군이 원활하게 소통할 수 있는 체계가 잡혀 고충이 해결되고 있습니다 :) Q. 그렇다면 마크업 개발자는 어떤 부분을 기여한다고 볼 수 있나요?코인원 메인 화면에 기능 개발을 추가하지 않고도 마크업단에서의 처리만으로도 쉽게 변화를 줄 수 있습니다. 메인화면의 배너 이미지는 유저들이 코인원에 접속해 제일 먼저 마주하는 부분이죠. 그래서 유저들이 코인원의 시각화된 정보를 빠르게 접할 수 있도록 이미지를 교체합니다. 웹 페이지의 운영 측면에서 비주얼 개편을 빠르게 할 수 있는 환경을 만들어 놓고 대응하는거에요.곧 코인원 마이페이지 화면이 개편될겁니다. 웹 페이지를 새로 만든다는 것은 무에서 유를 창조하는 과정과 같아요. 제가 마크업 개발을 잘 해놓으면 다른 직군에게도 도움이 됩니다. 개발 속도도 더 잘 붙고, 디자인에서도 빈공간이 없는 페이지가 탄생하는거죠. 최대한 밑바탕을 꼼꼼하게 만들어 모두가 일에 더 집중할 수 있는 환경을 만든다고 보시면 돼요.Q. 코인원 마이페이지에서 새롭게 바뀌는 부분은?기존의 마이페이지는 유저들이 보기에 정리가 잘 안되어있다는 느낌이 있었어요. 어떤 인증과정을 끝마쳐야 하는지 한눈에 들어오지 않는 부분이 있었거든요. 이번에 개편될 마이페이지는 좀 더 명확해졌습니다. 이전의 인증페이지가 도돌이표의 느낌이었다면, 이번에는 UX(User experience)를 생각해서 flow 개선도 많이 이뤄졌습니다. 편리한 암호화폐 거래 경험을 코인원에서 느낄 수 있어요. (새롭게 바뀔 마이페이지 많은 기대 부탁드립니다! 물론 편리한 암호화폐 거래도 언제나 코인원!)Q. 유저들에게 편리한 거래경험을 선사하기 위해 어떤 가치를 가장 중요시 여기나요? 저는 중간자이므로 유저들 뿐만 아니라 개발까지 두 가지 측면을 모두 고려합니다. 유저의 입장에서 사용성과 접근성이 용이한 마크업을 짜려고 하고, 개발측면에서는 유지보수가 편리한 마크업을 최대한 짜려고 해요. 개발하기 편한것과 사용하기 편한 것은 다른 맥락이거든요. 요새는 코인원 디자인시스템을 적용하고 있어요. 디자이너 분들이 정리해주신 디자인 시스템을 잘 적용시켜서 코드적으로도 재사용성이 용이하게 관리가 되도록 하고, UI도 정돈이 되어가는 과정을 진행 중입니다. 이런 과정을 계속 거치면 유저들에게 편리한 거래 경험을 선사하는 부분은 놓치지 않을 것 같아요.▲ 마크업에 열중하고 있는 혜진님 (약간의 설정샷 +_+)Q. 코인원 크루로 일하면서 장점을 뽑자면?유저플로우셀은 코인원이 셀이라는 목적조직으로 개편되고나서 만족도가 높은 셀이라고 알고 있어요. 업무도 많은 편인데, 톱니바퀴처럼 잘 맞물린다는 느낌이거든요. 특히 일에 대해서 선긋지 않고, 이슈가 발생했을 때 해결할 수 있는 부분들을 빠르게 파악해주는 부분들이 정말 좋아요. 속도랑 효율성 측면에서 이만큼 해낼 수 있는 팀은 앞으로 만나지 못할 것 같아요. 항상 원활한 업무 소통을 위해 힘써주시는 셀원들에게 감사 드립니다!Q. 앞으로 이루고 싶은 목표가 무엇인가요?회사 안 뿐만 아니라, 바깥에서의 활동도 꿈꾸고 있어요. 마크업 개발자들이 모두 모여 이야기할 수 있는 CSS 컨퍼런스를 열어 좀 더 커뮤니티를 활성화 시키고 영향력을 높이고 싶습니다. 아직 마크업 개발자들만이 모여서 이야기 할 수 있는 곳이 부족하거든요. 저의 이야기도 차곡차곡 쌓아서 여러 창구를 통해 들려드리고 싶고요.코인원에서는 지금 하는 것 이상으로 마크업 개발도 열심히 할거에요. 우선 단기적인 목표로, 프론트엔드에서 사용하고 있는 angular에 대한 이해력을 높일 겁니다. 마크업 컴포넌트 단위에 최적화 된 CSS로 개편해서 사용하지 않는 스타일 리소스가 최소화가 되도록 만들거에요.▲ 마크업 개발자에 많은 관심 부탁드려요 :)디자이너가 디자인에 집중할 수 있게, 개발자가 개발에 집중할 수 있게 ‘일잘러’로 통한다는 혜진님. 혜진님의 인터뷰를 통해 ‘마크업 개발자’에 좀 더 친해지는 시간이길 바라봅니다. 그리고 이렇게 멋진 코인원 크루와 함께 성장하고 싶지 않으세요?  현재 코인원은 멋진 크루들과 함께 크립토갤럭시를 헤쳐나갈 분들을 기다리고 있습니다 :-)
조회수 2183

홈클의 흥망성쇠

*2016년에 작성된 글입니다2016년 4월 6일 홈클 서비스를 종료했습니다. 그리고 정말 많은 분들의 연락을 받았습니다. 그동안 주신 과분한 관심에 감사드리고, 그동안 큰 도움을 받았으나 미처 연락을 못 드린 분들께 죄송한 마음을 전합니다. 신변이 정리되고 연락드리도록 하겠습니다.서비스 종료 후, 그냥 숨기보다는 어떠한 이유로 서비스를 종료하게 되었는지를 명확히 밝히고, 홈클을 운영하면서 느낀 점을 간략하게 정리해서 향후 O2O 서비스를 준비하시는 분들에게 미약하게 도움이 되고자 홈클 관련 마지막 글을 쓰기로 했습니다.  (밑에부턴 반말 이해해주세요.)Cash flow is King'와트니 법칙'이라는 말이 요즘 스타트업계에서 종종 회자된다. 펀딩 시장이 얼어붙으면서 영화 마션에서 영감을 받은 단어이다. 더 이상 외부 자금에 의존한 사업은 존속하기 어렵고 자생력을 키워야 한다는 뜻이다.영화에서 마크 와트니는 외부로부터 식량을 조달받을 수 없어지자 '온실'을 만들어 감자를 재배하고 생산가능량(revenue)과 자신이 먹는 양(burn rate)을 계산해서 며칠이나 버틸 수 있는지 계산하는 장면도 나온다.나는 원래 외식사업을 했었고, 수익구조와 현금흐름에 목숨 거는 '쫀쫀한' 사장님이었다. 하지만 '스타트업'은 다르게 운영되어도 괜찮다고 생각했다. 당장 돈이 벌리지 않아도 운영비는 투자금으로 충당하고, 시장 선점과 '이쁜' 그래프를 만들고자 했다. Operation에서 cash가 나오지 않는 O2O 비즈니스는 회사의 운명을 외부 상황에 맡기게 된다는 사실을 애써 외면했다. 마일스톤을 달성하고 이를 기반으로 투자를 받는 것을 공식처럼 여겼다. 확실시되던 투자가 미끄러지고, 대기업 진출 소식까지 전해지면서 외부 상황은 최악으로 치닫았다. 뒤늦게 전략을 수정하고 BEP를 맞추기 위해 '온실'을 만들어 보려 했으나 온실을 만들 재원조차 남지 않은 상황이 생각보다 훨씬 더 빨리 왔다. 적어도 O2O 비즈니스에서 일단 시장을 선점하고 그 기반으로 나중에 뭘 해보겠다는 건 너무 어렵다. 그리고 여러 O2O 비즈니스를 병렬식으로 연결해서 돈을 벌겠다는 건 정말 꿈같은 이야기이다. (불가능한 건 아니다.)"일단 돈이 안되면 똥이야. 똥을 모으면 다이아몬드가 되냐? 똥이 모이면 x라 큰 똥이 된다."청소업체 모 대표님의 말이 기억에 남는다.'존버 정신'의 필요(충분) 조건아마존의 매출, 수익 그래프위 그래프를 보면 뭐가 느껴지는가? 나는 답답한 성장 단계에서의 지루함을 끝까지 버텨낸 제프 베조스의 위대함을 느낀다. 그는 95년 창업해서 10년 가까이 존x 버텼다. 10년 동안 흔들림 없이 아마존을 이끈 그의 인내심과 끈기 그리고 미래에 대한 확신은 나 같은 범인이 범접하기에는 너무나도 위대해 보인다. 아마존의 97년도 주주서한을 읽어보았는가? 나 같은 일개 스타텁 대표는 그저 그의 위대함에 감탄할 수 있을 뿐이다.https://sttora2.net/30175564371 (97년 아마존 주주서한)나 같은 범인이 제프 베조스의 인내와 끈기를 발끝만큼이라도 쫓아가려면 최소한 나에게 맞는 일, 내가 즐거운 일, 내 일생의 mission을 clear 할 수 있는 일을 해야 한다.에어비앤비 호스트 데이에 부스로 참가한 홈클홈클 서비스는 나에게 어떤 의미였을까?호텔 비즈니스가 궁금했던 나는 에어비앤비 호스팅을 몇 개 시작했다. 오잉? 매달 풀 부킹이었다. 근데 빨래, 청소가 죽을 만큼 하기 싫었다. 그래서 홈클은 에어비앤비 청소 서비스로 탄생했다. 아이러니하게도 청소가 죽을 만큼 싫었지만 홈클을 만들고 근 1년 동안 청소만 생각하면서 살아왔다. 가정집으로 확장을 하고 매출이 늘면서 VC분들에게 피칭도 할 기회가 생겼다. 하지만 솔직히 가사도우미 업에 대한 가슴 떨림이나 사명감은 없었다. 대신 어렵고 모두가 기피하는 비즈니스에서 큰 획을 그어보자는 결연한 의지가 있었다. 힘든 외부 상황이 계속되니 사명감없는 결연한 의지는 봄날 눈녹듯 사르륵 녹아내렸다.세금 & 법률 이슈1) 법률문제가사도우미는 직업안정법의 선급금 금지조항의 영향을 받는다. 이 법에 의하면 중개업자는 가사도우미의 임금을 줄 수 없다. 실 서비스 이용자가 임금을 줘야 한다. 한 번의 카드결제로 도우미 배정을 하는 경우 선급금 금지법안을 피할 수 없다. 물론 꼼수는 있다. 고객의 결제 금액이 회사 통장에 들어오기까지는 3~5일 정도 소요된다. 이 기간 동안 가사도우미의 가상계좌에 먼저 해당 임금을 이체하고 청소가 끝난 후 정산할 수 있는 시스템을 구축하면 된다. 하지만 근본적인 해결 방안은 가사도우미를 정규직원으로 고용하는 것뿐이다. 근데 계산을 몇 번 돌려 보면 사대보험을 지급하고는 답이 안 나온다. razor thin margin....2) 세금 문제직업상담사 2급을 따고 유료직업소개업으로 등록하면 부가세가 발생하지 않는다. (면세사업) 아직 유료직업소개업 등록하고 카드 결제 시 카드사 명세서에서 부가세가 0으로 찍혀나오는 건 확인하지 못했다. 가사도우미분들에게는 3.3%를 제외하고 세무사 사무실에는 사업소득으로 신고하면 제일 깔끔하다. 그런데 유료직업소개소를 운영할 때는 직업안정법의 선급금 금지 법안을 지켜야 하는데 3.3%를 떼고 서비스 이후에 임금으로 지급하는 건 명백한 선급금 금지 법안 위반이다.법률적 검토도 안 해보고 왜 시작했냐?고용노동부에서 발행하는 질의회신서에서는 '강박이 없고 예약 내용을 보증하는 예약금 형식의 선급금은 지급 가능하다'라고 나와 있었다. 법안과 상충되는 내용을 고용노동부에 몇 차례 질문을 하였으나... 그 누구도 확인을 해주지 않았다. 심지어 해당 질의 회신서를 쓰신 분은 퇴사했다고... 질의회신서도 맞긴 하나 아무튼 어떠한 형식의 선급금은 절대 불허한다라는 최종 답변을 받았다. 읭?..3줄 요약1. 수익화 실패.2. 외부 상황이 힘들 때 버틸 요인이 부족.3. 세금&법률 리스크.4. 민감한 문제이므로 삭제이렇게 실패 요인만 쓰고 글을 마무리 하기는 아쉬워 쑥스럽지만 홈클이 잘한 점도 한번 써볼라고요.실행력 (hustle)보통 서비스 공급자를 뽑아서 교육시키고 현장에 배치하면 되지 않냐고 한다. 그렇게만 하면 어마어마한 컴플레인 후폭풍을 경험하게 될 것이다. 단순한 연결, 본질이 없는 growth hacking은 가사도우미 업에서는 통하지 않는다. Uber 기사는 A지점에서 B지점까지 데려다만 주면 되는 반면, 가사도우미는 집에 들어가서 수십 가지 접점 포인트를 만들어 낸다. 게다가 고객의 집은 모두 제각각이고, 원하는 사항과 기대치는 천차만별이다. 홈클 매니저의 서비스와 고객의 기대치 사이의 간극은 홈클 팀원들의 시간과 열정을 갈아 넣어서 메꿀 수 있었다."정답은 항상 현장에 있다."반년 동안 현장을 누비고 수십 명의 고객과 매니저를 인터뷰 한 끝에 웬만큼 쓸만한 서비스 매뉴얼을 만들 수 있었고, 매니저를 교육할 수 있는 역량을 갖추게 되었다. 평소에 본인집 청소도 잘 안 하던 홈클 팀원들의 고생은 이루 말로 표한할 수 없을 정도였다. ㅠㅠ홈클 팀원이 직접 나갔던  첫 서비스 현장호기롭게 시작한 서울 전 지역 서비스는 재앙이었다. 몰려드는 주문에 모두들 멘붕에 빠졌다. 하지만 결국 우리는 해냈다. 가사도우미가 없는 지역에서 주문이 들어오면, 고객에게는 아직 해당 매니저가 교육 중이라고 양해를 구하고 1주일의 유예기간을 만들어냈다. 그리고 그 기간 동안 무슨 수를 써서라도 해당 지역 매니저를 뽑고 교육해서 배정을 완료했다. 일종의 buffer를 만들고 서울 전역으로의 주문수를 차근차근 늘려 나갔다.[고객 구인 - 매니저 구인 - 매니저 교육 - 업무 배정] 업무를 꾸역꾸역 계속하면서, operation 고도화는 한 번도 소홀하게 하지 않았다. 홈클 만큼은 기존 업체들과 비교해서 명확한 서비스 차별화를 이뤄내고 싶었다. 홈클 없인 못산다는 팬도 생겨나고, 매출은 매월 30%씩 늘었다. 월 천 건을 돌파하고, 우리가 한 땀 한 땀 뽑고 교육한 매니저는 200명을 넘어섰으며, 정기 서비스 재구매율을 85%까지 돌파했다. 그리고 돈은 남지 않았다.중간중간 환희의 순간들이 있었지만, 대부분 고통스럽고 정신적, 육체적으로 힘들었다. 수백명의 인력을 관리한다는 건 상당한 스트레스를 동반했다. 뱃살과 흰머리가 부쩍 많이 늘었다.  홈클 서비스 종료하기 직전에 올라온 마지막 두 리뷰를 보니, '우리가 진짜 열심히 노력했었구나' 라는게 실감이 나면서 코끝이 찡해졌다.마지막 날 무능한 대표에 빙의되어 미안한 마음에 홈클팀원들에게 그동안 너무너무 고생이 많았고, 너무너무 고마웠다는 말을 하지 못한것이 맘에 걸린다. ㅠㅠ (내맘 다 알죠?)홈클 관계자 여러분 그동안 정말정말 감사했습니다. 수고했구요. 어딜가나 성공할겁니다.Good- Bye 홈클#삼분의일 #매트리스 #홈클 #팀원 #CEO #대표 #고민 #성장 #인사이트 #경험공유
조회수 1093

이커머스 고객사의 고객경험을 지키는 사람들, 품고 운영 팀장 지원님을 만나다.

1. 안녕하세요! 지원님, 간단히 자기소개 부탁드려요! 안녕하세요! 이커머스 풀필먼트 서비스 ‘품고’ 커뮤니케이션 팀에서 일하고 있는 노지원입니다!  커뮤니케이션팀으로 입사해서 현재 운영 팀장으로 ‘품고’와 함께하고 있습니다.     2. ‘품고’ 운영 팀에서 주로 하고계신 업무는? 고객사 분들께 ‘품고’의 IT 물류 시스템 사용에 대한 안내를 해드리고  있어요.  제품이 품고를 통해 배송되어, 고객의 손에 닿는 순간까지  배송상황을 체크하고 제품이 고객에게 전달 된 이후에도 고객사와 소통하며 다양한 상황에 대비해드리고 있어요:)     3. 품고 커뮤니케이션 팀만의 강점이 있을까요? 직접 물류를 하면서 쌓은 전문성을 바탕으로 고객의 ‘비즈니스’를 함께 고민하고 더 나은 방법을 제안 드릴 수 있다는 점인 것 같아요. 예를 들어 상황에 따라 제품 발송에 있어 비용절감이 가능한 방법 등을 안내해드리고 있어요.     4. 품고 운영팀에서 일하시면서 기억에 남는 일이 있으실까요? 현재 저희와 함께 하고 계신 고객사 ‘하비풀’이 기억에 남아요. 온라인 취미 클래스와 함께 취미 키트를 판매하는 곳이고, 취미문화를 선도하고 있는 기업이라고 생각해요.   키트 제품이다 보니 배송 전 임가공 작업이 필요해요. ‘품고’의 임가공 전문팀이 임가공 작업을 해드리는 고객사 중 하나에요. 물류 업무를 품고에 맡기시고 하비풀에서 잘하시는 상품 기획, 마케팅 등 핵심업무에 집중하신 이후,  현재 하비풀은 저희와 처음 함께할 때보다  주문량이 약 10배정도 늘으셨어요:)     5. 앞으로 품고에 계시면서 해보고 싶은 일이 있으실까요? 현재 품고와 함께하고 있는 고객사 분들 중에 뷰티 브랜드 고객사 분들도 계세요.  요즘  ‘K뷰티’가  많은 관심을 받고 있잖아요?  뷰티업체 중에 혹시 해외배송을 생각하는 업체가 계시다면 만나서 ‘품고’의 해외배송 서비스를 통해 도움을 드리고 싶어요.    ‘품고’는 단순히 배송을 대행하는 것이 아니라, 고객사의 성장을 함께 응원하고 돕는 것을 목표로 하고 있어요.  앞으로도 많은 이커머스 사업자 분들의 품을 덜어드리고 고객경험을 함께 지켜드리는 든든한 물류팀 ‘품고’가 되고 싶습니다:)  

기업문화 엿볼 때, 더팀스

로그인

/