스토리 홈

인터뷰

피드

뉴스

조회수 1583

파이콘 2018 도도 파이터 후기

아이들과 오전에 놀아주고 집안일을 마치고 나서 지하철을 탔다. 파이콘에 가는 길이었다. 5년째 참석하다 보니 이제 모든 세션을 빡빡하게 들어야 한다는 부담이 없다. 그래서 늦었지만 여유로웠다. 가는 길에 습관적으로 본  페이스북 타임라인은 이미 파이콘 이야기로 가득했다. 인증과 세션 자료 그리고 개발자를 뽑고 싶어 하는 회사들의 홍보로. 피드에서 스포카에서 진행하는 도도 파이터 이벤트를 보고 "이건 뭐야?" 싶어서  링크를 눌렀다. 어이쿠 개발자 컨퍼런스에 이게 도대체 뭐야오. 깔끔하게 잘 만들었다. 예제 코드를 살펴보니 설명도 잘 되어 있고 간단하다. 도전해 보고 싶은 생각이 들었다. 지하철 자리에 앉아 테더링을 연결하고 코딩을 시작했다. (사실 이것이 내가 세션은 듣지 않고 이틀 동안 부스/이벤트 체험만 하게 된 계기가 될 줄은 몰랐다.)대단히 잘 할 생각은 없었다. 세상에 굇수는 많으니까. 참여에 의의를 둬야지 싶었다. 비록 설명에는 “인공지능 코드”를 작성하여 다른 참가자와 겨루는 “인공지능 격투 대전”이라고 되어 있지만 당연해 보이는 규칙만 구현하고 나머지는 랜덤으로 동작하게 해서 제출해 보자 싶었다. 코엑스에 도착한 후  조금만 더 작업해서 제출하려고 하는데 아무리 제출해도 제출이 되지 않고 다음과 같은 메시지만 받았다.  코드가 테스트를 통과하지 못했습니다.아니 랜덤 봇이랑 하면 잘만 이기는데 왜 통과를 못하는 거야! 하던 차에 다시 설명을 읽어 보니  가만히 있는 더미 에이전트를 상대로 이겨야 제출이 이루어집니다.란다. 먼저 가면 손해인지라 가까워지면 더 안 가고 제 자리에서 주먹질만 시켰더니 더미 에이전트를 못 이기나 보다. 그래서 5초 아래로 시간이 남고 지금까지 한 번도 안 싸웠으면 앞으로 가도록 했더니 테스트를 통과하고 제출이 되었다.  제출에 성공하고 기분 좋게 돌아다니면서 다른 부스도 구경하고 있는데 회사 슬랙으로 함께 파이콘에 참여하고 계신 동료 분이 메시지를 보내셨다.봇이 화끈하면 뭐햐나. 이기면 장땡!스포카 부스에서 사람들이 제출한 봇들을 랜덤으로 붙여 주는 모양이었다. 후후. 어찌 되었든 이겼다고 하니 기분이 좋군.첫날 마지막 행사인 라이트닝 토크에서 스포카 도도 파이터 개발자분의 발표가 있었다. 회사에서 파이콘을 준비하면서 한 달 가까이 준비했다고 한다. 그리고 최근 2주도 동안은 도도 파이터만 달렸다는 이야기를 해주셨다. 컨퍼런스 이벤트로 만든 게임의 퀄리티가 좋아서 감탄한 것도 있었지만 팀에서 개발자들에게 그런 여유를 줄 수 있는 것도 부러운 마음이 들었다. 좋은 회사다. 도도 파이터 토너먼트는 다음날 파이콘 정식 행사가 끝나고 열렸다. 기억으로는 80명 정도가 참여했었던 것 같다. 조별 토너먼트를 진행하고 우승자들을 모아서 다시 토너먼트를 하는 구조였다.   싸워라! 싸워라!조금 늦게 왔더니 자리가 없어서 가장 앞자리에 나왔는데, 내 봇의 차례가 될 때마다 github 계정의 내 얼굴이 스크린에 크게 나와서 부끄러웠다. 외국 친구들은 자기 얼굴 github 프로필에 잘 넣어 놓던데, 왜 우리나라 개발자들은 자기 사진을 안 넣는 걸까... 게다가 내 봇이 나오는 경기는 모두 지루하고 얍삽한 느낌이 있어서 왠지 더 부끄러웠다. 니가 올래? 내가 갈까?다행히 조별리그도 통과해서 결승 리그에 올라갔다. 사실 한 두경기만 이기면 좋겠다 했었는데, 결승 리그에 올라가니 왠지 욕심이 생겼다. 제일 그럴싸하게 싸운 경기운 좋게도 아슬아슬하게 16강부터 4경기를 모두 이겨서 우승을 하고 문성원 CTO님께 해피해킹 키보드도 상품으로 받았다. 기분이 좋으면서도 멋쩍기도 한 기분이다. 사실 이번 파이콘에 와서 여러 곳의 부스를 참여하고, 이벤트도 적극적으로 참여해 본 이유는 내년에 8퍼센트도 파이콘에 스폰서로 참여하고 싶어서 였다. 우리의 (잉여) 개발력도 보여주고, 다른 개발자 분들과도 적극적으로 교류하고 싶은 마음이었다. 그 바람이 꼭 이루어질 수 있게 다음 파이콘 때 까지 좋은 분들을 모시고, 회사의 성장을 만들어 나가야겠다는 생각이 들었다. 마지막으로 내 코드를 공개한다.  https://gist.github.com/leehosung/f784d9efc71dce12855739647dd98877다시 코드를 살펴보니 개선할 점도 여러 개 보인다. 하지만 기존에 제출한 코드를 보기 좋게 정리만 하고 주석만 붙여 보았다. 사실 별 특별한 것이 없는 코드다. 실제 작성하고 테스트하는 것에도 한 시간이 걸리지 않았다.다음에 이런 기회가 온다면 글을 읽으시는 분들도 가벼운 마음으로 도전해 보셨으면 한다.  성적이 좋으면 더 좋지만 나쁘면 또 어떠한가? 개발자인 우리만 즐길 수 있는 놀이인데.  #8퍼센트 #에잇퍼센트 #파이콘 #파이썬 #Python #Pycon #이벤트참여 #참여후기 #개발자 #개발
조회수 1004

에잇퍼센트와 함께한 2016년

2016년 4월에 에잇퍼센트에 합류해서 2016년을 에잇퍼센트와 함께 보냈다. 1년을 다 채운건 아니지만 에잇퍼센트의 성장과 발전에 개발자로서 어떤 기여를 했는지 한 번 정리해 보려고 한다. 나에게 있어서는 물론이고 에잇퍼센트에도 의미가 있을 것이다.1. 대출 개설 내역 신용평가사 공유대출자에게 대출이 실행되면 이 내역을 신용평가사의 시스템으로 공유하는 것을 개발했다. 에잇퍼센트에서 받은 대출 내역이 공유되면 타 금융권에서 대출 개설 내역을 확인할 수 있으므로 추가 대출이 쉽게 이루어지지 않을 것이다. 우리의 고객은 대출자도 있지만 투자자도 있다는 측면에서 투자자의 소중한 투자금을 안전하게 지켜내기 위한 안전 장치 중 하나가 될 수 있다.  2. 성능 개선에잇퍼센트는 빠르게 성장하고 있는 스타트업이다. 스타트업이 비즈니스적으로 빠른 실행을 하며 달리다 보면 성능의 벽에 부딪힐 때가 있는데 마침 내가 합류하고 얼마 되지 않은 시점이었다. 주로 우리의 개발 환경인 Python Django 코드를 개선하는 방향으로 진행을 했고 추후에는 사용자 브라우저단 성능 개선도 진행했다. Python Django 코드 개선에 대한 자세한 내용은 내가 쓴 블로그 포스팅에서 확인할 수 있다.3. 서버 인프라 서울 이전에잇퍼센트는 서버 인프라로 Amazon Web Services(이하 AWS)를 사용하고 있다. 서비스를 처음 시작할 때에는 AWS 도쿄 리전이 가장 가까운 곳이어서 도쿄 리전을 사용하고 있었다. 그러다가 2016년이 되어 서울 리전이 생겼고 도쿄 리전에 비해 네트워크도 빠르고 비용도 저렴해서 사용하지 않을 이유가 없었다. 그래서 도쿄 리전에서 서울 리전으로 이전하는 작업을 진행했다. 밤샘 작업을 함께 해준 개발팀원들에게 고맙다는 얘기를 다시 한번 하고 싶다.그 날의 풍경과 작업 기록, 그리고 django-storages 서울 리전 연동에 대한 글까지 남겨두었다.4. Python Django 버전 업그레이드에잇퍼센트에 합류했을 때 Python 3.4 , Django 1.8을 사용하고 있었고 Python 3.5 Django 1.9로 버전 업그레이드를 진행했다. 버전 업을 하면서 발견된 큰 문제는 없었고 Django admin 의 UI 에 flat 디자인이 적용되어 화면이 이뻐졌다. 내가 직접 한 건 아니지만 화면이 이뻐졌다고 다들 좋아해 준 기억이 난다.참고로 현재의 최신 버전은 Python 3.6 Django 1.10이다.5. 테스트 개선개발을 빠르게 하는 것도 중요하지만 안정적으로 잘 동작하는 것도 그에 못지않게 중요하다. 안정적인 서비스 개발과 운영을 위해 테스트가 중요하다. 특히나 돈을 다루는 금융회사라면 더욱 중요한 것이 테스트이기에 에잇퍼센트 개발팀에도 테스트는 매우 중요하다. 테스트 코드를 잘 작성해야 하고 테스트 코드가 실제 코드를 얼마나 커버하는지에 대한 측정도 필요하다. 에잇퍼센트는 코드를 개발해서 push 하고 pull request를 할 때마다 travis를 통해서 테스트를 수행하고 커버리지를 측정하고 있다. 커버리지 측정을 처음 시작할 때와 비교해보면 기존 대비 10% 포인트 가량 커버리지가 올라갔다. 커버리지가 떨어지면 pull request를 승인하지 않는 것을 정책으로 가져가고 있다.테스트 수행 시 커버리지 측정과 함께 PEP8 준수 확인, migration 체크, 템플릿 검증 등을 하도록 개선했다. 또한 기존에는 테스트 수행 시 sqlite3을 DB로 사용했는데 개선 후에는 실제로 사용하고 있는 PostgreSQL을 사용하도록 했다. 성능을 위해 raw SQL을 사용하는 경우가 가끔 있는데 이때 테스트가 제대로 안 되는 문제를 개선할 수 있었다.6. 개발 환경 개선유지 보수가 용이하고 효율적으로 개발하기 위한 환경을 만들기 위해 노력했다. smarturls, django-debug-toolbar, factory boy 등의 패키지를 적용했으며 로컬 서버 외에 개인별로 배포해서 테스트할 수 있는 서버 환경을 만들어서 테스트를 용이하게 했다. django 설정 분리, 모델 분리, 상수 분리 등의 리팩토링도 진행했다.7. NH핀테크 오픈플랫폼 적용 (진행 중)NH 농협 은행에서 제공하는 API를 사용해서 금융 관련 작업을 자동화하고 효율화하려고 한다. NH에서 요구하는 정보보호 및 보안 기준에 맞춰 시스템을 정비하고 만들어 나가는 중이다. 올해 상반기 안에 API 연동이 되어 에잇퍼센트에 NH핀테크 오픈플랫폼이 알맞게 녹아들어 가기를 기대해본다.8. 서비스 개선에잇퍼센트의 서비스적인 개선도 몇 가지 진행했다.- 채권 상세 페이지 개선 : 투자한 채권에 대한 지급 현황, 지난 내역을 볼 수 있게 되었다.- 로그인 상태 유지 : 기본 30분 로그인이 유지되고 30일 유지를 선택할 수 있게 되었다.- Ada 챗봇 연동 : 금융권 챗봇 중 유일하게 학습하는 Ada가 서비스와 연동하기 위한 개발을 진행했다.1~7번까지의 작업은 주로 눈에 보이지 않거나 개발팀 내부적인 개선이었고 8번은 사용자에게 바로 보이는 서비스적인 개선이었다. 위에 언급한 것 외에 코드 리뷰를 열심히 한 것이 기억에 남는다. 코드 리뷰를 통해 유지보수가 용이하고 효율적인 코드를 만들어 나가고 싶었다. 어떤 코드가 유지보수가 용이하고 효율적인지 리뷰를 통해 토론하고 배워나가는 과정이 나뿐만 아니라 개발팀 모두에게 도움이 되었으리라 본다.개인적으로는 이음에서 Ruby on Rails로 개발을 재밌게 하다가 에잇퍼센트에서의 Python Django를 사용한 개발로의 도전과 전환이었다. 새로운 언어를 접하고 배워나가는 과정 또한 개발자에게는 즐거움이 아닐까 싶다. Ruby, Python 둘 다 엄청나게 잘 하는 건 아니지만 기회가 되면 Ruby와 Python 각각의 장단점을 비교해보는 것도 재미있을 것 같다.2016년은 내가 2006년 첫 회사에 들어간 지 10년이 된 해였다. 10년 전 신입 사원 시절에는 서비스적인 개선을 주로 하고 다른 팀원에게 도움을 주기보다 내 할 일에만 충실했었다. 10년이 지난 지금 작년 한 해를 이렇게 돌아보니 서비스에 직접적인 개선도 하고 다른 팀원들이 개발을 더 잘할 수 있도록 환경을 만들고 도움을 주는 데에도 제법 역할을 했다는 생각이 든다. 나 자신이 엄청나게 변화한 건 아니지만 10년이 헛된 시간은 아니었다는 생각이 들어서 내심 뿌듯하다.2016년을 이렇게 정리하고 보니 2017년에는 더 잘 해야겠다는 생각이 든다. 에잇퍼센트 모든 구성원들과 함께 엄청나고 멋지게 성장해 보고 싶다. 화이팅!2016년 처럼 올해도 해맑게 화이팅!#8퍼센트 #에잇퍼센트 #조직문화 #기업문화 #2016년 #돌아보기 #스타트업개발자 #개발자
조회수 649

코호트 분석(Cohort Analysis)

올해 1월, Google Analytics(이하 GA)에서 Audience 카테고리에 Cohort Analysis(코호트 분석)라는 리포트가 추가되었습니다. 그런데 UI가 늘 보던 리포트와 달리 독특해서 이 리포트는 어떻게 데이터를 보고 해석해야 할지 막막하기까지 합니다. 일단 리포트보다 용어조차 생소한 코호트에 대한 이해가 필요합니다.( GA > Audience > Cohort Analysis Report )코호트 분석이란코호트 : 특정 기간에 특정의 경험을 공유한 사람들의 집합http://en.Wikipedia.org/wiki/Cohort_(statistics)코호트 분석 : 특정 기간에 특정의 경험을 공유한 집단간의 행동패턴을 비교/분석http://en.Wikipedia.org/wiki/Cohort_analysis리포트 조회 방법모바일 앱 분석에서 가장 많이 사용하는 코호트 분석은 같은 기간에 앱 설치를 경험한 사용자 그룹이 시간이 지남에 따라 앱의 꾸준한 사용여부(Retention)를 분석하는 것입니다. 앱은 설치보다 지속적인 재사용성이 앱 비즈니스를 좌우하기 때문입니다.( WISETRACKER > 방문행동 > Retention 리포트 )A열은 특정 기간에 앱을 설치한 사용자의 집단이며, +기간이 표기된 B열은 설치 시점으로부터 재사용율/삭제율을 제공하고 있는데, 여기서 데이터를 해석하기 위해선 데이터를 수직적으로 바라봐야 합니다.위 데이터로 예를 들면 다음과 같습니다.A : 2016년 12월 1일부터 5일까지 설치수가 꾸준히 증가하고 있다.B : 설치 후 하루가 지난 뒤 재사용률은 지속적으로 떨어지고 있고 오히려 삭제율이 증가하고 있다.코호트 분석 왜 필요한가첫째, 비즈니스 상황을 알 수 있다.위 그림의 데이터를 단순 앱 설치 추세 리포트로 보았다고 생각해봅시다. 설치수가 꾸준히 증가하고 있기 때문에 “우리 앱의 시장반응이 좋구나”라는 1차원적인 결과만 얻었을 것입니다. 그러나 코호트 분석을 통해 신규 고객 획득은 잘 이루어지고 있으나, 고객이 된 이후의 사용성이 떨어지고 앱을 삭제하는 비율이 점점 증가하고 있다는 사실을 인지함으로, 마케팅은 밑 빠진 독에 물 붓는 격이니 보다 고객관리/최적화에 먼저 집중해야 함을 알 수 있습니다. 이처럼 현재의 상황을 정확히 이해해야 더 나은 의사결정을 할 수 있습니다.둘째, 깊은 마케팅 인사이트 얻을 수 있다.보통 모바일 마케팅의 성과 지표로 얻을 수 있는 건 클릭수, 설치수 정도 입니다. 그러나 이것만으로 가치 채널을 도출하고 마케팅 전략을 수립하기엔 데이터가 부족한 것이 사실입니다. 같은 채널이라 하더라도 시점에 따라 게재하는 광고 내용도 다를 수 있고, 설치수가 많더라도 체리피커들 때문에 설치 후 바로 삭제하는(광고비만 날리는..) 비율도 꽤 높기 때문에 설치 이후의 데이터가 꼭 필요합니다. 코호트 분석은 특히 모바일 앱 기반의 스타트업에게 매우 중요한 분석기법으로, 사업 단계마다 우리가 잘하고 있는지 여부를 판단하고 더 나은 의사결정을 돕는 중요한 나침반 역할을 할 것입니다.
조회수 616

스타트업 견문록(1)

 15세기 후반부터 18세기 중반까지 미지의 땅을 찾아 너도나도 탐험에 뛰어들었던 대항해시대(大航海時代).      나는 이번 탐험을 하기 위해 은행에서 융자도 받고, 왕실의 후원도 받았어. 그들은 이번 항해로 엘 도라도의 황금을 한 가득 싣고 오길 기대하고 있지. 우리의 가장 큰 후원자인 여왕은 정해진 기한 내에 온갖 보물을 가지고 돌아오라고 응원 아닌 협박 같은 메시지를 보내왔지.  식량과 물은 오직 6 개월 치 분량인데 항해 도중에 상하거나 버려질 분량을 생각하면 4개월 내에 도착해야할거야. 항해를 위해 뽑은 선원들은 여전히 나를 미심쩍어 하는 눈빛이고 그나마 마음이 통하는 벗이자 항해사가 동행하게 되었지. 떠나기 전 날 연회에서 만난 평생 바닷길 지도를 그려온 학자가 이런 말을 하더군.“너무 서쪽으로 가면 세상 끝 낭떠러지로 떨어질 테니 안전하게 해안가로만 다니세요.”       현재는 바야흐로 대창업의 시대! 대한민국의 청년 실업률이 나날이 증가하고, 국가 성장동력에 이상신호가 감지되는 지금! 정부가 나서서 창업을 독려하고, 많은 지원과 교육/자금을 풀어서 잠재되어있던 수많은 아이디어를 현실에 소환하려는 계획은 어느 정도 효과를 보고 있어.  적어도 수치상으로는 매년 거의 10만개에 가까운 창업기업이 탄생하고 있으며, 언론 매체에서 스타트업 성공신화를 줄기차게 소개하잖아. 그럼에도 불구하고 자금 조달은 어디서 해야 하는지, 사업계획서는 어떻게 써야하는지, 팀 빌딩은 누구를 영입해야 할지에 대한 고민은 끝이 없어. 많은 예비창업자들은 준비단계에서부터 우왕좌왕할거야.  나 역시 2년 동안은 소위 베이킹(baking)이라는 시간을 가졌거든. 뒤늦게 알게 된 거지만, 창업 지원과 인프라, 교육은 다 활용하기 힘들 정도로 넘쳐나. 우리는 단지 방법을 몰랐고, 사람을 몰랐고, 실행을 못 하고 있었던 거지. 돌이켜보면, 조금만 더 디테일하게 신경 썼으면 시간을 더 단축하고, 자금을 더 효과적으로 운영했을 거야.        스타트업의 길은 탐험과도 같아. 어떤 분들은 여행으로 비유하는데 동의하지 못 하겠어. 룰루랄라~ 마음 맞는 친구들과 즐거운 상상을 하면서 계획 해 둔 일정과 여러 SNS 친구들이 방문해 보고 추천했던 맛집들을 찾아다니는 것과 현실은 정반대거든.       사업계획서라는 이름의 항로가 그려지지 않은 채 출처가 불명확한 지도를 가지고 있어. 이 지도는 계속 측정하고 수정하면서 그려 나가야하는 불완전한 지도야. 알음알음 또는 내가 그래도 경험이 있어서 조금은 더 뚜렷해 질 수는 있어도 100% 완벽하지 않기에 스스로 의구심을 가지고 항로를 개척해야 해.      탐험은 예측불가능한 잠재리스크가 많아. 스타트업도 그래. 내부적인 리스크는 관리하고, 조정할 수 있어도, 외부 리스크는 정말 암담하거든. 지난 번에 정치외교적인 사드 문제라던가 한일 외교 경색로 인한 시장 환경 변화는 마치 항해 도중에 만나는 폭풍우와 같아. 아무리 돛을 접고, 방향키를 돌려보아도 망망대해에 높은 파도와 비바람을 견디기란 쉽지 않거든.       계획한대로 흘러가지 않을 때, 팀원들의 불안감과 두려움은 고조되지. 그리고 불만이 여기저기서 독버섯처럼 퍼져나가기도 하지. 그러다 리더십에 대한 의문과 사업 방향에 대한 의심으로 확대 되면 이탈하고자하는 사람들이 나타나. 계획된 목적지 도달 일정이 지연되고 식량이 고갈되는 상황에서 선원들이 해상반란을 일으키는 영화 속 장면이 꼭 멀리 있지는 않거든. 팀 빌딩도 중요하지만, 인력관리는 그 보다 몇 배 더 중요하지.       바쁘고 정신없었던 하루가 끝나갈 때 쯤, 밤이 되면 선장(창업자) 역시 두려움과 고민의 시간을 가지게 되지. 우리가 잘 하고 있는 건지, 무언가 챙기지 못 한 것은 없는지 확인하고 의심해야 해. Plan A, PlanB, Plan Z를 준비해야 하지. 우리 항로에 대하여 가장 잘 아는 사람은 사실 우리거든. 다른 사람이 고민 해 주거나 고쳐주지 않아. 내일 아침도 무사히 항해하기 위해서는 나 자신이 더 확실한 지도를 만들어가야 해.       꿈에서 그려 본 황금의 도시 엘 도라도!  적어도 우리는 엘 도라도가 존재한다고 하는 믿음이 있어야 해. 그곳에 진짜 황금이 있을지, 아니면 우리를 위협할 창과 화살이 있을지는 솔직히 지금은 알 수 없어. 엘 도라도에 대한 우리의 상상과 현실은 다를 수 있지만, 분명한 것은 과거와 달리 지금은 정보가 공유되어 있다는 거야. 이전에 탐험가들은 정보교류나 자신의 지도를 쉽사리 넘겨주지 않았지만 현재는 집단지성과 이 길을 걸어 본 많은 경험자들과 현직자들, 인프라가 유용한 정보는 넘치고 있지. 어쩌면 이미 먼저 도착했던 사람들을 통해 어렴풋이나마 확신할 수 있어.      “당신만의 엘 도라도는 분명하게 있다. 너가 도착할 수 있느냐의 문제만 남아있을 뿐”        투자자가 되었든, 팀원이 되었든, 고객이 되었든 우리가 확신이 없으면 어느 누가 이 항해에 동참하겠어? 이렇게 수많은 위험이 있음에도 불구하고 우리를 웅원하고 후원해 주는 사람들에게 지속적으로 신뢰를 주어야 해. 따라서, 우리는 보다 전략적이고 계획적이며 성과로 증명해 나가야 하지. 효율적이고 영리해져야 해. 대안을 늘 찾아내야 해. 부단히 배우고 성장해야 해.     “너는 엘도라도에 어떻게 갈래?”지난 칼럼에서는 네가 이 탐험을 위해 얼마나 강한 동기를 가지고 있는지를 물었다면, 이번에는 네가 왜 전략과 실행을 끊임없이 반복해야하는지에 대한 이 질문을 던지면서 마무리할게. 의욕으로는 버틸 수 있어도, 전략과 전술이 없으면 목적을 달성하기 어려워.     (역주)* 팀빌딩이란 창업/프로젝트 수행을 위해 적합한 인재/동료/팀원을 구성하는 것을 뜻하며, 초창기 스타트업은 지인과 친구, 가족으로부터 시작해서 확장하는 경우가 많다.* 스타트업계에서 베이킹(baking) 이란 창업을 준비하기 위한 시간을 뜻하며, 보통 사업자등록을 내기 전까지 사업계획을 하고, 팀원을 모으고, 선행조사 등의 활동을 한다* Plan A, PlanB, Plan Z이라는 용어의 뜻은 다음과 같다.Plan A: 어떠한 업무 또는 프로젝트를 수행하는데 최선의 방법/방안/경로를 뜻함 Plan B: Plan A가 달성하지 못 할 때를 대비한 대안/대책을 뜻함Plan Z: 최종적으로 목표 달성이 어려운 상황에 대하여 더 큰 손실이 발생을 회피하고, 피해를 최소화하기 위한 최후의 출구전략을 뜻함 
조회수 1247

태그솔루션의 투명디스플레이 이야기 (2)

안녕하세요! 태그솔루션의 대표 박승환입니다! 먼저 앞선 글(링크: https://brunch.co.kr/@rr5ys5s/9 )을 통해 태그솔루션의 전체적인 이야기와 밑그림을 보셨다면 이번에는 말씀드렸던 제품 개발 및 양산에 대한 제조의 이야기를 해보려고 합니다! 태그솔루션의 투명디스플레이 이야기 (1)왜 기술기반의 하드웨어 창업인가? | 안녕하세요. 중장거리용 투명디스플레이 패널을 만들고 있는 4년차 하드웨어 스타트업 태그솔루션의 대표 박승환입니다. 위 영상은 2016년, 2017년에 설치 및 전시한 태그솔루션의 모노컬러 제품 영상입니다! 현재는 더 높은 해상도의 풀컬러 패널 개발이 완료된 상태이며, 2018년 올해 하반기 다양한 건물 유리에 풀컬러 패널 제품 설치를 진행할 예정입니다.brunch.co.kr/@rr5ys5s/9 이 글을 통해서 기술기반의 제조 창업이라는 분야에 대한 거부감이나 어려움을 조금이나마 덜어 드릴 수 있으면 좋겠습니다. 참, 사람을 뽑고 있습니다! (채용링크: https://brunch.co.kr/@rr5ys5s/8 ) 태그솔루션 콘텐츠 디렉터 채용 공고채용기간 : ~ 10월 중순까지 | 안녕하세요. 하드웨어 제조 스타트업 태그솔루션 입니다. 저희에 대한 자세한 소개글은 아래 링크를 통해 확인할 수 있습니다!^^ https://brunch.co.kr/@rr5ys5s/9 태그솔루션 시작 그리고 비전 태그솔루션은 2015년 1월 사업을 시작한 하드웨어 스타트업입니다. 투명한 유리에 다양한 기술을 융합하여 부가가치를 창출하는 것을 목표로 하는brunch.co.kr/@rr5ys5s/8 시작은 미약하지만 끝은 창대하리라!2015년 만든 시제품들의 모습위 사진을 보라. 엄청난 퀄리티(?)의 시제품이다. 이걸 시제품이라고 부르기도 민망할 정도의 제품이지만 처음 시작은 이러했다. 정녕 이것이 기술을 가진 스타트업의 모습인 것일까? 정말 솔직해지자면, 나는 공대생이긴 하지만 투명 디스플레이와 정말이지 1도 관계없는 삶을 살았다. 위 제품 모습을 보면 알 수 있을 것이다. 저 미친듯한 배선과 제품의 퀄리티를 보라.... 지금 보면 조금 민망하지만 그 당시에는 최선이었다. 하지만 어떻게 완제품에 가까운 훨씬 높은 퀄리티의 제품을 개발하고 이를 양산이 가능한 제품으로 만들 수 있었을까?  일단 위 제품에서 변신한 우리 제품의 모습을 살펴보자.최근 풀컬러 제품 라스베가스 전시회 영상... 설치된 패널 수가 적어서 아쉽다...위 사진과 발전된 제품의 모습을 보시면 아시겠지만, 실제로 제품을 만드는 과정은 만만치 않다. 과거에 제가 썼던 양산부터 제품의 판매 및 유통까지 적은 글이 있는데 이 글을 읽기 전에 한번 보시고 오시는 걸 추천한다!https://brunch.co.kr/@rr5ys5s/3시제품부터 양산 그리고 유통까지(1)태그솔루션 조명 브랜드 코스모블랑 생존기 | 하드웨어 기술창업에 관심을 가진건 2014년 6월부터였다. 사실 스타트업이라는 단어도 그때 인생에서 처음 들었던 것 같다. 그 후 2015년 1월 태그솔루션을 만들고 지금은 만 3년이 지나고 나 자신과 태그솔루션 모두 죽음의 고개를 넘어가고 있는 시점이다. 지금의 태그솔루션이 있기까지 나 자신의 무지함으로 겪은 어려움이 굉장히 많았고, 지금도 그 문제를brunch.co.kr/@rr5ys5s/3 처음 프로토타입부터 시제품 그리고 제품까지 가는 과정은 온전히 제조 인프라에 대한 이해가 큰 비중을 차지한다. 단적으로 "지금 내가 손에 들고 있는 일상 제품은 어떤 과정(공정)을 거쳐서 어떻게 만들어졌는지 이해하는 것" 이 제품을 만드는 것의 핵심이다. 실제 태그솔루션의 공정이 진행되는 모습위 영상에서는 우리 투명LED패널이 만들어지는 일부 공정들을 실제 촬영한 영상이다. 아마 일반적으로 공정에 대한 이해도가 없으신 분들은 정확히 어떤 원리로 저 공정이 이루어지고 있는지 파악하기는 쉽지 않은 게 사실이다. 또 공정에 대해서 조금 알더라도 직접 제품을 만드는 과정을 겪지 않으면 정확히 어떤 조건에 어떤 물질을 활용한 것인지는 절대 알 수 없다. 유일하게 해당 기술과 노하우는 제품을 만드는 회사의 노하우로 남는 것이다.이렇게 이제 막 하드웨어 스타트업에 뛰어든 사람이 제품이 만들어지는 공정에 대한 이해를 하고 있는 건 거의 불가능하다고 할 수 있다. 금형, 사출, 압출, 프레스, PCB, SMT, 에칭, Fpcb, 스퍼터링, 임프린팅, 스크린인쇄, 솔더링, 마스크 등등 공정과 관련된 접하기 쉽지 않은 단어가 많이 존재한다. 사실 어떤 공정이던 구글링을 하면 친절한 설명들을 찾아볼 수 있다. 그 원리와 용도 또한 인터넷이라는 바다에 넘쳐난다.그. 러. 나.저런 단어나 검색어 조차 모르는 상황에... 어찌... 찾을 수 있냔 말이다!!! 그리고 글로만 배운 것은 항상 98% 정도 부족함을 느낀다. 그렇다면 어찌 접근하는 게 좋을까? 일단 어떤 제품이든 좋으니(만들고 싶은 제품과 비슷하면 더 좋을 것 같다.) 구매해서 해체하는 것부터 시작해보자. 여러 제품을 뜯어보자면, 공통된 구성을 확인할 수 있다.제품은 대부분 바디(사출 및 가공부) + 제어부(PCB - 초록색 기판) + 전원부(배터리, SMPS 등)로 구성된다. 특정 용도에 따라 추가되는 부분이 있지만 원리는 간단하다. 제어부인 PCB에 제품의 제어에 필요한 펌웨어(코드)를 라이팅하면 제품은 원하는 대로 작동한다.그럼 이 공통된 각자의 부분에 맞는 제조와 기술들에 대한 이해를 하면 빠르게 제품을 만들 수 있는 부분이 아닌가!?! 그럼 한번 우리 제품을 뜯어보면서 맞는지 확인해보도록 하자!! 다시 투명 디스플레이 패널로 돌아와서, 우리 제품 역시도 구성은 기본적인 구성대로 바디( 패널부 + 패널 기구부 ) + LED 제어부 ( 드라이버보드 + 컨트롤보드 -> 다 초록색 기판들) + 전원부 (SMPS -> 파워서플라이를 저렇게 부른다)로 구성된다. 이 구성부에 대한 내용은 다음 편에서 좀 더 자세히 다뤄보도록 하자!  사실 수년간 제조업계에서 우리 제품을 만들면서 가장 크게 느낀 것은 하드웨어 창업에서의 핵심은 위에서 언급한 세 가지 구성(바디+제어부+전원부)을 만들거나 확보하기 위한 기술 및 제조 인프라 확보라고 할 수 있다. 제조라는 것이 나만 뛰어나서 잘할 수 있는 분야가 절대 아니라는 것이다. 아무리 개발을 잘해도, 좋은 인프라의 알맞은 공정 방식을 택하지 않으면, 가격과 품질 등의 다양한 제품의 핵심적인 요소에 영향을 주게 된다.결국 무수히 많은 공장을 돌고 눈으로 공정을 확인하고 새로운 기술에 대한 이해도와 빠른 습득력으로 하고자 하는 하드웨어 분야의 제조 부분을 익히는 것이 가장 올바른 방식이라고 할 수 있다. ( 발품을 미친 듯이 팔아야 한다. 필자는 만 3년이 넘는 기간을 경기도권 충청도권에 있는 공장은 정말 엄청나게 돌아다니고 눈으로 익히고 실무자들과 이야기했다. )다음 편에는 구성부 중에 바디에 해당하는 패널부와 기구부에 대해서 구체적으로 이야기해보도록 하겠다!3편에서는 패널부에 쓰이는 투명한 전극(투명 회로), 기구부를 만들기 위해 쓰이는 공정들을 에 대해 살펴보도록 하자! 과연 투명한 회로는 어떻게 만들어지는가!?!?마지막 편인 4편에서는 제어부와 전원부를 동시에 이야기해보도록 하겠다! 미리 이야기하자면 제어부는 LED로 영상을 구현할 수 있도록 도와주는 초록색 기판인 PCB! 그리고 전원부는 말 그대로 전기를 공급하는 장치에 대해서 언급할 예정이다.주위에 좋은 콘텐츠 디렉터 소개 부탁드리겠습니다.꾸벅.태그솔루션 박승환 씀.#태그솔루션 #TAGSOLUTION #제품소개 #인사이트
조회수 900

[마케터]창업일기2

#퇴사학교 #꼬꼬마 #마케터 #창업일기 #조교일기"H님은 사실, 사람을 엄청 좋아하는데, 좋아하는 사람들로부터 받은 상처들이 많아서 마음 열기 무서워하는 것 같아요."내 말 한 마디에 그 분의 눈에는 금세 눈물이 핑 돌았다. 왜 그런지 모르겠다고 말했다. 사실 그게 나를 착즙하듯 쥐어짜는 회사 생활과 나의 일상 중에서 '애써 잊어 왔던' 자신의 모습인데.1퇴사학교라 하면, "오늘 회사가기 싫다" "그냥 다 짜증나니, 회사 때려치우고 싶다." 뭐 이런 식의 가벼운 마음으로 온다고 생각하는 사람들이 꽤나 있다. 혹은 '퇴사'를 가지고 장난질한다는 헐뜯기도 있었다. 2공동창업자로서 처음부터 1년 넘게 퇴사학교라는 커뮤니티를 만들어가며, 확실히 말할 수 있는 것은 퇴사학교는 그런 곳이 아니다. 퇴사를 권장하고, 멋대로 살라고 하는 무책임한 곳은 더더욱 아니다. 장난질하기 위해, 사람을 그저 자원이니, 소모품이니, 돈이니 뭐 이런 시각으로 보는, 무책임한 곳은 더더더욱 아니다.3사회의 정답, 주변 사람의 기대들을 나의 가치라고 생각해오며 정말 최선을 다해 열심히 살아왔건만 "무엇을 위해 이렇게 살아야 할까." 퇴근길 지하철에서 이게 인생의 전부인가, 공허함, 허무함이 몰려오는 순간.내가 좋아하는 것, 하고 싶은 것, 일하는 이유조차 생각해보지 못한 채 그저 조급한 마음에 내달려왔지만, 열심히 달릴수록 정작 갈 길을 잃고 무슨 일을 해야 할 지 인생의 방향조차 잡지 못하는 순간.그저 '나'라는 모습 있는 그대로 행복하게 살고 싶을뿐인데, 의미없는 숫자놀음, 사람이 사람을 사람으로서 존중하지 못하는 비상식적 환경, 언제든 대체가능할 것만 같은 '자원', '부품'으로서의 삶이 허무한 순간.그 속에서 대체 나는 무엇을 위해 삶을 살며, 이 일을 해야 하는 것인지. 삶의 이유를 찾고자, 사람들은 퇴사학교라는 곳을 찾는다. 그저 아주 조금만이라도 의미있는 일을 하고 싶은 소망, 그리고 지금보다 조금만 더 행복하게 일하고, 가치있게 내 삶을 주체적으로 살고 싶은 작은 불씨를 가지고.4"나도, 지금보다 더 나은 일과 삶이 있진 않을까?""내 삶에 변화를 만들기 위해, 무언갈 시작할 수 있을까?""내가 꿈꾸던 무언가, 새로운 것에 나도 도전해볼 수 있진 않을까?"한 사람 한 사람의 있는 그대로의 모습, 내면의 가능성보단 "너가 성공못한 건 노~력을 안해서야. 너가 못나서야." 늘 so what? 성과주의적인 사고와 '정답'을 따라가야 한다는 압박, 튀어 보이면 깎아내려야 하고, 늘 기존의 방식대로만 안주해야 하고. 끝도 없이 비교하고, 깎아내리고, 있는 그대로의 모습을 존중해주지 않는 수많은 상황들. 그리고 조급함, 불안함, 번아웃.그런 상황 속에서도 그동안 꾹꾹 숨겨만 왔지만, 마음 한 켠엔 막연하지만 더 나은 일과 삶을 스스로 만들고 싶은 겨자씨만한 불씨를 가진 사람들이 모이는 그런 곳이 퇴사학교라 생각한다.비록 이들은 고민하고 방황하고 흔들리고, 현실적이지 않아 보이는 '이상'을 꿈꾸기도 한다. "뭐, 그런 진지한 생각을 해? 원래 다들 그렇게 살아. 버텨." 주변의 압박 속에서 어쩌면 한없이 불안하고 나약하고 철없고 비현실적으로 보이기도 하는 사람들.하지만 사실은 이들이 세상에서 가장 용기 있는 보통의 위대한 사람들이라 생각한다. 오롯이 나라는 사람으로 서기 위해 내 안의 불안함, 두려움들을 온전히 마주하는 사람들이니까. 5퇴사학교는 그런 사람들이 모여, 각자의 있는 그대로의 모습을 존중해주고, 각자의 삶에 변화를 만드는 커뮤니티의 공간이다. 그리고 사람간의 커뮤니케이션으로 더 많은 사람들의 인식의 변화를 만들어가며, 조금씩 사회를 변화시키는 곳이다. 그렇게 믿고 있고, 만들고 싶고, 그렇게 만들어갈 것이다.6"좀 가벼운 마음으로 왔는데, 저에 대해 이렇게 깊게 고민하는 건 처음이에요. 정말, 인생의 전환점이 되어준 곳이에요. 더 많은 사람들이 퇴사학교를 왔으면 좋겠어요. 너무 감사해요."누군가가 슬쩍 이렇게 말해줬다. 마음이 참 가벼우면서도, 무거웠다. 현실이 슬프기도 하면서도 한편으로는 기쁜 마음이었다. 아이러니하다.7.앞으로 더 많은 사람들이 인생의 방향성을 제대로, 그리고 주체적으로 찾아갈 수 있는 세상이 되었으면 좋겠다. 그래서 그런 세상을 만들기 위해, 오늘 이 순간 내 앞에 있는 사람들에게 그렇게 말해주기로 했다."괜찮아. 사실 너는 지금도 충분히 괜찮아. 너무 귀하고, 너무 예쁘고 멋져. 다른 누군가가 되기 위해, 스스로를 옭아맬 필요는 없어.""괜찮아. 잠시 쉬어가도 돼. 지금껏 너무나 열심히 달려왔고, 최선을 다해왔고, 너무 고생해왔어. 잠깐만 자신을 뒤돌아보면서 조금은 쉬어도 돼. 조급해하지 않아도 돼. 아직 인생은 길잖아. 지금은 그래도 돼."그리고 눈을 지긋이 보며 이렇게 물어보고 싶다."그럼, 너는 무엇을 할 때 가장 행복해? 너는 어떤 삶을 살고 싶니?그리고 너를 가장 보람있게 만들고, 행복하게 만들고, 너를 움직이는 '일'은 무엇일까? 그냥 자유롭게, 있는 그대로의 너의 생각을 들어보고 싶어."> 사진 : 퇴사학교 <아이덴티티 워크숍>
조회수 1093

CodeStar + Lambda + SAM으로 테스트 환경 구축하기

들어가기 전: 실제로 프로젝트와 팀원들과의 작업 환경을 구축한 경험을 바탕으로 작성했습니다. 한마디로 실화. Overview소스를 수정할 때마다 지속적인 테스트를 하기 위해 AWS lambda 로컬 테스트 환경, SAM을 결합해서 환경을 구축했습니다. 이번 글에서는 팀원을 추가하고 CodeCommit을 리포지토리로 사용하는 것도 소개하겠습니다. 예상 구성도테스트 환경 구축, 도저언!1. 팀원 추가하기 IAM 서비스를 이용해서 프로젝트를 같이 사용할 유저를 추가합니다. IAM에 유저를 추가하면 AWS 콘솔을 같이 사용할 수 있습니다. 사용자 추가를 클릭해 유저를 추가합니다. 팀원마다 한 개의 계정을 추가해야 합니다. 사용자 세부 정보 설정 > 엑서스 유형에서 ‘프로그램 방식 엑서스’와 ‘AWS Managrment Console 엑서스’를 체크합니다. 여기에서는 개발2팀 팀원인 강원우 과장의 계정을 생성했습니다.1) 비번은 귀찮으니 미리 세팅해둡시다. 유저 계정은 그룹을 생성해서 관리하면 편합니다. 그룹을 사용하면 보다 편리하게 계정 권한을 제어할 수 있기 때문입니다. 이번 예제에서는 그룹 이름을 codeStarGroup으로 만들었습니다. AWSCodeStarFullAcess를 정책으로 설정하고 ‘그룹생성’을 클릭해 그룹을 추가합니다. 2) codeStarGroup에 체크한 후, ‘다음: 검토’를 클릭해 진행합니다.‘사용자 만들기’를 클릭해 생성을 마무리합니다.계정 추가를 완료했습니다.사용자 이름(위의 예시에서는 kanggw)을 클릭하고, 뒤이어 ‘보안자격 증명’ 탭을 클릭합니다.콘솔 로그인 링크를 공유합시다. 링크를 입력하고 들어가면 그룹 로그인이 활성화가 되어있다는 걸 볼 수 있습니다.2. CodeStar 설정하기 프로젝트 인원을 무사히 추가했습니다. 이제 프로젝트를 만들어 봅시다. CodeStar 프로젝트 세팅 방법은 R&D본부 윤석호 이사님이 쓴 ‘애플리케이션 개발부터 배포까지, AWS CodeStar’를 참고해주세요.새 프로젝트를 생성합니다.python AWS Lambda를 선택합니다.프로젝트 이름은 ‘admin-lambda-API’로 입력하겠습니다. 그 후에 ‘다음’을 클릭합니다.‘프로젝트 생성’을 클릭합니다.우리는 Git을 이용해 로컬에서 직접 관리할 것이므로 ‘명령행 도구’를 선택한 후, ‘건너뛰기’를 클릭합니다.3분 만에 프로젝트가 생성되었습니다. 참 쉽죠?3. 프로젝트에 팀원 추가하기프로젝트를 같이 하려면 팀원을 추가해야겠죠. 팀원 추가는 codeStar 대시보드 좌측의 ‘팀’ 탭을 클릭하면 됩니다.‘팀원 추가’ 클릭IAM에서 등록한 팀원의 정보를 불러옵니다. ‘추가’를 클릭해 팀원을 추가합니다. 여기에서 중요한 사실 하나! 프로젝트의 소유자로 지정해야 소스 접근 및 코드 변경이 가능합니다.4. 코드 체크 아웃앞서 설명한 것처럼 직접 Git으로 소스를 받아야 하기 때문에 codeCommit으로 이동합니다. codeStar 대시보드 왼쪽 ‘코드’ 탭을 클릭하면 코드 내역들을 확인할 수 있습니다.‘URL 복제 > HTTPS’를 클릭해 경로를 복사합니다. 소스를 클론하기 전에 계정에 깃허용을 먼저 해주세요. IAM 돌아와서는 계정 설정을 변경해야 합니다.사용자 > kangww > 보안 자격 증명 탭 클릭 > HTTPS Git 자격 증명 > 생성Git에서 사용할 ID와 비밀번호를 받았습니다. 해당 정보를 팀원에게 전달합니다. 이제 workspace로 이동해 체크아웃을 시작합니다.git clone [복사한 경로] [id 입력] [pw 입력] clone이 완료 되었습니다. 이제 기본 프로젝트가 들어있기 때문에 바로 실행할 수 있습니다. 미리 설치된 SAM으로 실행해보겠습니다.이제 해당 경로에 이동해 SAM을 돌려서 정상적으로 구동되는지 확인해봅시다. (SAM설치 방식은 부록에서 소개합니다.) sam local start-api -p 3333 성공적으로 SAM이 구동되었습니다. (짝짝) http://localhost:3333 으로 접근해 결과를 확인할 수 있습니다. 이제 로컬에서 작업을 진행하면서 바로 바로 확인이 가능해졌습니다. 만약 동료와 함께 개발한다면 아래처럼 구동해야 자신의 IP에 접근할 수 있습니다.sam local start-api -p 3333 -host [자신의아이피] 글을 마치며CodeStar의 관리와 배포 기능은 강력합니다. 많은 부분을 알아서 해주니 고마울 뿐입니다.3) 이제 Lambda의 local 테스트 환경인 SAM을 이용해서 배포 전 과정까지 간편하게 테스트를 해보세요. 배포의 복잡함을 codeStar에서 해결하고 테스트를 하거나 개발을 할 때는 SAM을 이용해 효율적으로 업무를 진행합시다.글 쓰면서 발견한 다섯 가지1) codeDeploy > executeChangeSet 에 구동될 때 cloundFormation 이 자동 세팅 됩니다. 엄청 편합니다. API 배포가 진행되면 lambda에서 바로 수정하는 게 편합니다.2) codeCommit은 https 보다 ssh방식을 권장하며, https방식으로 하다가 꼬이면 여기를 클릭해 해결하세요.3) codeStar는 다음과 같은 추가 구성을 자동 세팅합니다.codeStar 용 S3 버킷codePipeLine용 S3 버킷cloundFormation 세팅lambda 세팅4) IDE를 cloud9을 사용하면 EC2 및 EBS가 생성되니 주의하세요. 그리고 생각보다 느립니다.5) 로컬에서 Git push를 하면 약 5분 정도 뒤에 최종적으로 배포됩니다.부록1)SAM을 설치하기 전, 여기를 클릭해 docker를 미리 설치하세요.2)SAM 설치 안내는 여기를 클릭하세요. ( npm install -g aws-sam-local )참고1)강원우 과장은 귀여운 두 달팽이, 이토와 준지의 주인이기도 하다. 2)AWSCodeStarFullAcess는 codestar 접근에 대한 권한을 부여한다.3)자동 배포까지 2~5분 정도 걸리는 게 어렵게 느껴질 수 있다.글천보성 팀장 | R&D 개발2팀chunbs@brandi.co.kr브랜디, 오직 예쁜 옷만#브랜디 #개발문화 #개발팀 #업무환경 #인사이트 #경험공유
조회수 1655

CTE for postgresql and sqlalchemy

저희 서비스는 가게마다 웹에서 접속할 수 있는 어드민을 제공하는데, 프렌차이즈가 아닌 하나의 독립적인 가게들일 경우 정보를 가져와 나타내는 데는 굳이 CTE 를 쓸 필요가 없지만 프렌차이즈일 경우 본사와 지점들로 나누어져 있어서 본사와 지점들 정보를 다 가져오기 위해서 CTE 를 사용하게 되었습니다.그럼 postgresql 의 CTEReadme 에 나와 있는 예제와 sqlalchemy core 로 변환하는 것까지 살펴보겠습니다.CTE란?Common table expression 의 약자로 ‘공통 테이블 식’입니다.CTE 특징WITH절 같은 SELECT 문에서 효과적으로 테이블 식을 정의 할 수 있습니다.CTE는 VIEW의 사용방법과 비슷하지만, VIEW보다 편리합니다.VIEW와 달리 사전에 CTE를 정의할 필요가 없습니다.개체로 저장되지 않고, 쿼리 지속시간에만 존재합니다.CTE는 재귀 쿼리를 사용할 수 있습니다.재귀 CTE는 여러행을 반환 가능합니다.동일 문에서 결과 테이블을 여러번 참조 가능합니다.재귀 CTE 예제아래 예제는 ‘A’부서 하위에 있는 부서만 추출하는 예제입니다.일단 재귀 CTE를 이용한 쿼리를 사용하려면 ‘WITH RECURSIVE’ 키워드를 추가해야 합니다.Table ‘department’ 인접 리스트로 조직 구조를 나타냅니다.CREATE TABLE department ( id INTEGER PRIMARY KEY, -- department ID parent_department INTEGER REFERENCES department, -- upper department ID name TEXT -- department name ); INSERT INTO department (id, parent_department, "name") VALUES (0, NULL, 'ROOT'), (1, 0, 'A'), (2, 1, 'B'), (3, 2, 'C'), (4, 2, 'D'), (5, 0, 'E'), (6, 4, 'F'), (7, 5, 'G');부서 구조:ROOT-+->A-+->B-+->C | | | +->D-+->F +->E-+->G A의 하위 부서를 추출, 다음과 같은 재귀 쿼리를 사용할 수 있습니다.WITH RECURSIVE subdepartment AS ( -- non-recursive term SELECT * FROM department WHERE name = 'A' UNION ALL -- recursive term SELECT d.* FROM department AS d JOIN subdepartment AS sd ON (d.parent_department = sd.id) ) SELECT * FROM subdepartment ORDER BY name;위의 쿼리는 다음과 같이 설명할 수 있습니다.중간 테이블(Intermediate table), 작업 테이블(work table), 결과 테이블(result table)이 있습니다.초기화비재귀 구간을 실행 (SELECT * FROM department WHERE name = ‘A’)ResultTable = WorkTable = (‘A’) 결과 테이블과 작업 테이블에 결과를 배치합니다.IntermediateTable = () 중간 테이블을 비웁니다.재귀 쿼리 실행(SELECT d.* FROM WT AS d JOIN subdepartment AS sd ON d.parent_department = sd.id) 하위 부서와 작업 테이블을 바꾸고, 재귀 구간을 실행합니다.중간 테이블에 쿼리 결과를 할당합니다.결과 테이블 및 작업 테이블에 중간테이블 추가합니다.중간 테이블을 비웁니다.재귀가 끝났는지 확인2번 과정의 중간테이블이 비어 있으면 재귀의 실행이 종료되고, 결과 테이블은 반환됩니다.중간테이블이 비어 있지 않으면 다시 2번의 과정으로 돌아갑니다.“subdepartment”는 재귀 표현을 포함하고 있는 CTE입니다. 먼저 비재귀항이 평가되고, 다음 재귀항이 평가됩니다. 재귀항은 평가하고 처리하는 데이터가 없을 때까지 결과가 반복적으로 이전 결과에 추가됩니다. 끝으로 마지막 SELECT가 실행되고 데이터는 결과 집합에서 추출됩니다.CTE의 한계점SEARCH 및 CYCLE 절은 구현되지 않습니다.상호 재귀는 허용되지 않습니다.UNION ALL의 마지막 SELECT만 재귀 이름을 포함할 수 있습니다.재귀와 재귀스캔(RecursiveScan) 계획의 비용은 항상 0입니다sqlalchemy 로 변환sqlalchemy 에서 필요한 모듈들을 불러옵니다.from sqlalchemy import Table, Column, Text, Integer, MetaData, select metadata = MetaData() department 테이블을 정의합니다.department = Table('department', metadata, Column('id',Integer), Column('parent_department',Integer), Column('name',Text)) WITH 절부터 시작되는 CTE 부분의 비재귀항을 subdepartment로 만듭니다. 재귀 사용을 위해 .cte( recursive=True) 부분을 붙여줍니다.subdepartment = select([ department.c.id, department.c.parent_department, department.c.name]).where(department.c.name == 'A') \ .cte(recursive=True) department 와 subdepartment 에 각각 alias를 붙여줍니다.subd_alias = subdepartment.alias() department_alias = department.alias() CTE 부분의 재귀항과 비재귀 항을 union all 해주는 subdepartment를 만듭니다. (이 부분이 postgresql 예제 쿼리에서 봤던 WITH RECURSIVE subdepartment 전체를 나타내는 부분이라 할 수 있습니다.)subdepartment = subdepartment.union_all( select([ department_alias.c.id, department_alias.c.parent_department, department_alias.c.name]) \ .where(department_alias.c.parent_department == subd_alias.c.id)) 마지막으로 결과 쿼리를 출력하기 위한 statement를 만듭니다.statement = select([ subdepartment.c.id, subdepartment.c.parent_department, subdepartment.c.name]).order_by(subdepartment.c.name) 원문: CTEReadme참조: 공통 테이블 식 사용 ,공통 테이블 식을 사용하는 재귀 쿼리#스포카 #개발 #개발자 #서버개발 #개발팀 #꿀팁 #인사이트 #조언
조회수 1133

마케팅과 그로스해킹이 같은 말일까요?

"강아지의 꼬리를 다리라고 부르면, 강아지는 몇 개의 다리를 가지고 있는 것일까요? 네. 다리를 꼬리라고 부른다고 해도 실제로 다리가 되지는 않습니다. 미국의 대통령, 아이브라함 링컨의 유명한 어록입니다. 제가 대학교를 졸업하고, 마케팅 직무를 위해 취직 준비를 할때, 저는 단순히 "Sales"라는 단어보다는 "Marketing"이라는 단어가 좀 더 섹시하게 느껴졌습니다.그럼에도 불구하고, 대부분의 마케터들이 지금도 [마케팅 업무] 보다는 [판매] 업무에 더 적합한 일들을 하고 있습니다. 그리고 오늘날 저는 "Marketing" 과 "Sales" 의 유사 관계처럼 , "Growth Hacking" 이라는 단어가 "Marketing" 이라는 단어와 비슷한 맥락으로 사용되고 있다는 것을 느끼게 되었습니다. Sean Ellis는 2010 년에 "그로스 해킹"이라는 용어를 처음 만들었을 때 구체적인 정의를 내놓았지만, 현재 많은 분들은 "그로스 해킹"이라는 우산 아래서 마케팅 관련 내용들만을 던지려합니다.단순히 그로스 해킹이라고 부르는 것만으로, 마케팅이 그로스해킹이 될수는 없지요. 그래서 오늘은 그로스 해킹에 대한 개념에 좀 더 진지하게 다가가 보고자 합니다. 목차는 하기와 같습니다.1) 마케팅과 진짜 그로스해킹의 차이2) 그로스 해킹은 어떤 녀석인가?3) 왜 그로스해킹이 중요한가?1. 동의어로써의 그로스해킹 & 마케팅우리가 그로스 해킹과 마케팅의 차이점을 본격적으로 분석해보기 이전에, 동의어로써 그로스해킹과 마케팅이같은 의미로 사용되는 경우를 몇가지 살펴보겠습니다.그로스 해킹이라 칭해지는 이 마케팅 전략은 인바운드, 아웃바운드 마케팅 할 것 없이, 공통적인 개념을 가지고 있습니다. ConversionXL의 Shanelle Mullin은 다음과 같이 설명합니다.[마케팅의 개념으로 쓰이는 그로스 해킹에 대해 다루고 있는 유명한 글들]고객에게 KISSmetrics를 통해 비용을 사용하지 않고도 얻을 수 있는 6 가지 최고의 그로스 해킹검색 엔진 저널에 의해 시작을위한 100 가지 그로스 해킹의 서사시기업가가 지금 시도 할 수있는 6 가지 성장 해킹 기법많은 업계 선두 기업들도 소셜 미디어를 통해이 문제에 무게를 두고 있습니다. 다음은 검색 엔진 랜드의 창립자 대니 설리반 (Danny Sullivan)의 트위터로, 표준 마케팅 기법을 성장 해킹으로 잘못 식별하는 문제를 다루고 있습니다."SEO, SEM , 소셜미디어 마케팅은 진정한 그로스 해킹이 아닙니다. 그건 그냥 마케팅이죠. 문제는 수많은 마케터들과 스타트업들이 전혀 이 부분을 인지하고 있지 못한 것입니다"2. Growth Hacking vs Marketing그로스 해킹은 아직 새롭게 나온 용어이기 때문에, 그 정의에 있어서 사회적 합의점을 찾고 있지 못한 것만은 사실입니다. Schirr 씨의 블로그에서는 그로스 해킹의 다른 개념을 무려 6가지로 나누어서 정의하고 있지요. 물론 해당 글에서 나온 개념들은 몇 가지 유사한점을 공통적으로 가지고 있지만, 그렇다고 모두 같은 것은 아니지요.[글 참조 : 그로스 해킹의 6가지 다른 개념]그래서 그로스 해킹이 뭔데 ? 그로스 해킹 정의에 대해서는 많은 글들이 다루고 있긴 하지만, 오늘 여러분은 그렇게 깊게까지는 다가가지 않을 것입니다. 대신에 빠르게 살펴볼게요.그로스 해킹은 [과정], [테스트 및 비즈니스를 성장시키는 확장 가능 / 지속 가능한 방법]을 찾는 데 중점을 둡니다.아래에는 Ellis의 2010년 블로그 글의 그로스 해킹의 개념을 정의한 글입니다."그로스 해커는 자신들의 비즈니스의 핵심 성과 지표를 계속하여 성장시키는 사람을 의미합니다. 그들이하는 모든 일은 잠재력 있는 성장에 미칠 수있는 모든 요인들을 면밀히 조사합니다. 이 직무가 회사에서 중요할까요? 지속적인 성장을 하려는 기업들에게는 가장 중요한 일이 될 것입니다. 일잘하는 그로스 해커는 또한 아이디어의 우선 순위를 정하는 그로스 해킹 프로세스를 따르도록 훈련 받아야합니다. 또한 그들은 아이디어를 테스트하고, 분석 할 수있는 성장 동력을 지속적으로 유지하고 불필요한 리소스들 중 어떤 것들을 줄일 것인지 분석 할 수 있어야 합니다. 이 프로세스가 신속하게 반복 될수록 확장 가능하고 반복 가능한 방식으로 비즈니스를 성장시킬 가능성이 커집니다. "Inman News의 COO 인 Morgan Brown은 그로스 해킹 및 마케팅이 어떻게 다른지 직접적으로 이야기하는 그로스 해킹의 정의를 제공합니다."그로스 해킹은 주로 제품 생산 과정 부터 충성 고객 유지 단계까지의 성장을 창출하는 데 어떻게 사용되는지에 초점을 맞춘 실험 기반의 마케팅입니다.핵심적인 차별화 요소는 제품 수준의 집중 vs 전통적인 마케팅 노력의 채널 수준의 집중입니다. "제품(Product). 이것이 진짜 그로스 해킹과 마케팅의 차이입니다.Similar goals, Different Focus그로스 해킹은 제품에 좀 더 초점을 맞춥니다.마케팅은 제품 수명주기에 따른 고객 유치부터와 제품 사용 활성화 전체 과정에 걸쳐 집중을 한다면, 그로스 해킹은 제품에 집중을 한다는 것입니다.대부분의 경우 마케터의 상호 작용이 랜딩 페이지에서 중단됩니다. 그로스 해커가 활성화 및 유지 영역에서 활약 할 수있는 반면, 대부분의 마케팅 담당자는 개발 팀을 이끌기가 불편할 것입니다. 3. Case Study : 그로스해킹 , 마케팅  중 무엇이 더 나을까?Case 1 : DropboxEllis는 "그로스 해커"라는 용어를 창안했을뿐만 아니라 Dropbox의 첫 마케팅 담당자였습니다. 따라서 Dropbox의 성공 사례가 그로스 해킹의 대표적인 사례로써 높이 평가되는 것은 놀라운 일이 아닙니다.페이팔의 "추천 친구"프로그램은 DropBox가 잠재고객과 신규 사용자 모두에게 500MB의 추가 저장 용량을 제공하도록 (새로운 사용자가 등록하자 마자) 영감을주었습니다. 성장 해킹 비평가들은 추천 마케팅 자체는 새로운 것이 아니지만, Dropbox가 전통적인 추천 마케팅을 사용하지는 않는다고 말합니다.여기에서 그로스 해킹 성공은 Dropbox 제품이 도달 범위를 확장하는 데 사용되었다는 것입니다. Dropbox 추천으로 가입 수가 60 % 증가했습니다. 그리고 그들은 계속해서 성장합니다.Pinterest Growth Engineer 존 에건 (John Egan)은 Dropbox는 "Dropbox 추천" 이라는 순수한 멋진 이메일을 보내어 중독성을 불러 일으킨다고 말합니다.하나는 사용자에게 지금 얼마만큼의 저장 공간이 있는지 알려주고 Dropbox를 사용하도록 상기시켜 다시 참여 고리로써의 역할을 하도록 합니다. 둘째, 더 중요한 것은 사용자에게 더 많은 사람들을 초대하라는 것입니다. 이 초대문을 매우 효과적으로 만들게 된 것이지요. 신규 사용자를 초대할때 마다, 저장 공간을 위한 용량을 계속 받을 수 있었지만, 여전히 더 많은 것을 원하는 심리가 있었기 때문에, 친구 추천 시스템은 매우 중독성 있었지요.Case 2 : Airbnb에어 비앤비의 Craigslist 통합은 가장 자주 언급되는 그로스 해킹 성공 사례 중 또 하나입니다. 통합 작업 방법에 대한 자세한 내용을 보려면 Andrew Chen의 블로그를 확인하시면 됩니다 :)간단히 말씀드리자면,  Airbnb는  Airbnb 호스트가 Airbnb UX 내에서 Craigslist에 그들의 집을 홍보할 수 있는 게시글을 공유할 수 있게끔 기능을 추가하였습니다. 그러나 이러한 방식은 마케팅 캠페인이 아니었습니다. 제품 중심이었습니다. Airbnb는  Craigslist에 그들의 집을 공유하는 방법을 역설계했습니다 (그 당시에는 공개된 Craigslist API조차도 없었습니다).Chen은 Craigslist (고유 URL을 사용하는 클릭 추적, 제한된 HTML 만 지원하는 Craigslist 등)에 게시하는 요소로 인해 공유 기능이 굉장히 간단하다는 점을 강조하였습니다. 전통적 마케팅 담당자는 분명히 이 문제를 제기하지 않았을 수도 있고 심지어 가능할 수도 있음을 인지하지도 못했을 수 있습니다. 대신 제품(웹사이트)를 해부하고 원활하게 통합 할 수있는 마케팅 사고를 가지고 있는 엔지니어가 필요했습니다.Airbnb 와 Craigslist의 연동의 이점은 다양했습니다. Craigslist를 통해 접근 할수있는 잠재적인 사용자들의 거대한 볼륨을 확보할 수 있는 것 뿐만이 아니라, 에어비앤비의 고객 DB 리스트가 다른 이용 가능한 속성보다 월등히 우수하다는 사실을 의미합니다. ( 좀 더 디테일하고, 품질이 좋은 DB를 얻을 수 있었다는 거지요). 일단 Craigslist 사용자가 전환 한 후에는 앞으로 Craigslist를 무시하고 Airbnb를 통해 예약 할 가능성이 더 커져버리게 된 것이지요.Case 3 : YoutubeYoutube는 그로스 해킹이라는 용어가 존재하기도 전에 이미, 그로스 해킹 성공 스토리로 분류되었습니다! Strikedeck의 공동 설립자인 Shreesha Ramdas는 Youtube가 어떤 기능이 성장에 도움이 될 수 있는지에 만 초점을 집중시켜 놀라운 성장을 경험했습니다. YouTube 동영상의 소스 코드는 21세기 최고의 그로스 해킹입니다.모든 Youtube 비디오에 포함 된 비디오 옵션을 사용하면 사용자가 Youtube 비디오를 업로드하고 자신의 웹 사이트에서 비디오를 재생할 수 있게 된 것이지요. 오늘날 우리는 Youtube가 임베디드 기능이 그처럼 큰 기능처럼 보이지 않을 수도있고, 그냥 일상생활인양 익숙할 수도 있습니다.이때, Ramdas는 Youtube가 탄생하기 이전에 어떤 삶이 있었는지 우리들에게 상기시켜줍니다." 동영상 업로드는 힘들었습니다. 일반적으로 사용자는 전송 소프트웨어를 다운로드해야하며 동영상을 실시간으로 만들기위한 업로드 및 승인 프로세스는 복잡했습니다. YouTube는 간단하고 직관적이었습니다. 사용자가 로그인하여 비디오 제목과 설명을 추가하고 즉시 업로드 된 비디오를 업로드했습니다. "Youtube는 비디오를 쉽게 업로드하고 삽입 할 수있을뿐만 아니라 비디오를 간단하게 볼 수있었습니다. 누구든지 계정이나 특별한 소프트웨어를 다운로드하지 않고도 유튜브 비디오를 볼 수 있습니다유튜브 (Youtube)는 2005 년 차고에서 시작됐으며 2006 년 10 월에 구글이 유튜브를 인수 한다고 발표했습니다. 오늘날 YouTube 사용자는 매분 약 500 시간 분량의 동영상을 사이트에 업로드합니다.결론예, 그로스 해킹과 마케팅간에 유사점이 있습니다. 마케팅과 마찬가지로 그로스 해킹은1) 마법이 아닙니다.2) 싸구려 제품을 고쳐주지 않습니다. 성장을 위해서는 여전히 우수한 제품과 타겟 고객의 니즈와 필요를 이해해야합니다.3) 바이럴 효과를 보장해주지 않습니다. Sujan Patel은 Airbnb와 같은 성장 스토리가 영감을 줄 수 있는 이야기로 여겨 져야한다고 지적합니다. 단순히 모든 스타트업이 똑같은 방법을 취한다고 하더라도, 같은 결과를 만들어줄 수는 없습니다. "그로스 해킹"을 획득하는 것은 제품이나 브랜드마다 다를 수 있으므로 단순히 그들의 성공스토리를 복사하는 계획을 세우지는 마세요.마케팅에 그로스 해킹이라는 이름을 덧붙이는 것은 현재 콘텐츠 트렌드에도 불구하고, 이 둘은 일부 중복되는 내용을 가지곤 있지만 동의어는 아닙니다.기억하세요.제품에 포커스를 맞추는 것이 그로스해킹입니다. 그로스 해킹 전략이라고 이름붙인다고 해서, 절대 그로스 해킹이 될 수는 없습니다.퍼포먼스 마케팅 에이전시, 오피노 바로가기
조회수 3941

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

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

모든 소리는 음악의 재료! : 김자현 TA

ㅡ실패 없는 도전, 일등 없는 성취모든 소리는 음악의 재료!#서서울예술교육센터 #서울문화재단#김자현 #TA #전자음악‡ Nice to meet you, Artist meets you ! ‡서울에서 활동하는 예술가들이 만들어내는 창의적인 예술 활동. 서울문화재단의 15개 창작공간 입주작가들을 소개합니다.김자현은 숙명여대 작곡과, 한양대 대학원 전자음악작곡 전공을 졸업한 후, 상명대 대학원 뉴미디어음악학과 박사과정에서 학업과 연구를 이어가고 있다. 클래식음악 작곡을 기반으로 전자음악작곡, 즉흥음악연주, 실내악 편곡 등의 활동을 하고 있으며, 다양한 소리의 가능성과 테크놀로지를 결합한 음악작업, 그리고 이것을 시각화하는 작업에 관심을 두고 있다. 서울에서 가장 많은 사람들이 오고 가는 곳. 아마도 서울역이 아닐까? 다양한 사람들이 스치고 지나치는 만큼 반갑고 낯선 소리도 가득할 것만 같다. 서울역이 바로 앞에 보이는 곳에 둥지를 튼 서서울예술교육센터의 김자현 T/A를 만났다. 음악을 하는 사람이라면, 소리를 다루는 사람이라면 시계 바늘 소리에도 예민하게 반응 할거라 생각했다. 서울역 근처라서 시끄러운 소리가 많이 나지 않냐는 질문에 “소리는 눈을 감아도 들을 수 있는 것. 귀를 막아도 들리는 것이라고 생각해요. 어떻게 해도 피할 수 없죠. 제 주위의 모든 소리는 음악의 재료입니다.”고 답했다.안녕하세요, 김자현입니다.전자음악을 떠올리면 가장 먼저 머릿속을 스치는 것이 뭘까? 아마도 일렉트로닉한 느낌을 맘껏 풍기는 멜로디 일 것이다. 김자현 T/A는 일렉트로닉 외에도 프로그래밍을 통해 컴퓨터로 소리를 만들어 내고 주변의 소리를 녹음하며 컴퓨터로 소리가 나는 시스템을 만들고 있다. “존재하는 모든 소리들과 테크놀로지를 이용해서 음악을 만들고 있어요. 이를 테면 코딩을 사용하기도 해요. 전자 음악의 중요한 요소 중 하나죠.”음악의 구조를 보여주는 전자음악 공연 ‘비디오 푸가’ 중 김자현 작가비디오푸가 포스터김자현 작가는 학부 때 클래식 음악을 작곡 했다. 전자 음악 공연을 보고 선인장 가시를 건들일 때마다 소리가 나더라는 친구의 말을 듣고 전자 음악에 호기심이 생겼다. 학교 행사에서 전자 음악을 들을 수 있는 기회가 있으면 놓치지 않았고 전자 음악 스터디에도 참석했다. 맛보기였지만 코딩 수업도 들으면서 ‘졸업 연주를 반드시 전자 음악으로 해야지’라고 다짐도 했었다. 전자 음악에 대한 관심과 열정으로 대학원에 입학했다.“전자 음악의 소리를 만들기 위해서 컴퓨터 같은 전자 시스템을 이용할 수도 있지만 주변의 소리를 녹음해서 만드는 방법이 있다는 걸 배웠어요. 여러 번 실습 기회를 통해 전자 음악을 만들어 보면서 정말 모든 소리가 음악이 될 수 있다는 걸 알게 됐어요. 쓸 수 있는 음악 재료가 많아진 것이죠. 제가 직접 낼 수 있는 모든 소리를 사랑해요. 주변의 사소한 소리일지라도, 그 속에서 음악적인 규칙을 발견해 내면서 소리를 변조시키기도 하고 다양하게 요리 할 수 있어요.”볼 수 있는 소리를 꿈꾸다김자현 작가는 석사 과정을 마치고 문래 예술 공장에서 ‘사운드 아트 워크숍’을 들었다. 그동안 알고 있던 전자 음악 외의 사운드 아트에 대해 새롭게 알게 됐고, 특히 ‘소리 시각화’ 에 관심을 두게 됐다. “무대 위에서 컴퓨터로 뭔가 하고 있으면 관객들은 제가 뭘 하는지 잘 모를 거라고 생각해왔어요. 시각이라는 감각이 청각 보다 훨씬 강렬하니까 복잡한 레이어를 쌓기 보다 관객들이 이해하기 쉽게, 예를 들어 제가 코딩을 무대에서 하고 있을 때 차라리 그 화면을 보여주자고 결심하게 된 거죠. 관객들과 소통하는 것이 무엇보다 중요하니까요.” 김자현작가의 <비디오푸가> 공연 중 코딩 하는 장면을 관객들에게 보여주는 모습‘소리 요리사’가 가장 행복할 때김자현 작가가 음악을 시작할 때 옆에서 지도 해주셨던 선생님은 하고 싶은 걸 하면서 음악을 가르치는 것이 가장 행복한 삶이라고 말했다. 그 영향 때문인지 김자현 작가는 대학을 졸업하면서부터 다양한 형태로 계속 누군가를 만나고 가르치는 것이 매우 보람된 일이라는 확신을 가졌다. 이런 이유로 2017년에는 서울문화재단 청소년T/A로 한 해를 보냈다. 각각 영화와 연극을 전공한 선생님과 함께 통합 예술 프로그램을 만들어 중학교에 찾아가 수업을 했다.“원래 함께 하던 팀이 아니니까 빠른 시간 안에 통합 예술 프로그램을 만들어 내기는 쉽지 않았어요. 그런데 제가 생각하지 못한 교육 방식이나 사고를 알아가는 과정이기도 했어요. 학생들이 소리를 연결해서 우연성 음악을 만들고, 거기에서 연상되는 이미지를 가지고 스토리를 만들어 짧은 영화를 만드는 수업을 했던 게 기억에 남아요.”서서울예술교육센터에서 가족 수업을 진행하고 있는 김자현 작가올해는 서서울예술교육센터에서 T/A로 활약하며 ‘소리 지도 만들기’ 프로그램을 진행하기도 했다. 동네에서 들리는 소리에 귀 기울여 들여보고 녹음한 다음에 이 소리를 바탕으로 내가 살고 싶은 동네를 상상하고, 그림을 그려보며 ‘우리 동네에 이런 소리가 났으면 좋겠다는 것을 상상해 보는 과정’이다. 과정 중에 하나로 누르면 소리가 나는 ‘인터랙티브 지도’를 만들어 봤다.“소리를 직접 내보고 맞춰보고 찾아보는 활동을 하다가도 가만히 소리를 들어보면 정적인 순간이 찾아와요. 이 때 이탈한 어린이 들이 많죠. (웃음)”서서울예술교육센터에서 진행했던 가족 수업 소리지도 만들기의 결과물 전시더불어 하자센터의 ‘비커밍 프로젝트’에서 수 많은 중학교, 고등학교 학생들을 만났다.“이곳에서도 마찬가지로 주변의 소리를 잘 들어보고 발견하고 그 소리를 각자 탐구해서 친구들의 소리와 함께 모아 합주해 보고 있어요. 직접 학생들 앞에서 코딩하는 걸 보여주기도 하고요. 누구를 대상으로, 어떤 목적으로 수업을 하느냐에 따라서 다양하게 수업을 구상해야 해요. 영감을 받기 위해서 다른 사람들의 작품을 보며 재미있는 생각을 많이 해보려고 해요. 다른 장르의 예술을 보고 ‘이걸 내가 음악으로 만들어 본다면?’ 가정하고 상상하고 공부해요. 주로 미술관에 가요.”서서울예술교육센터에서 진행했던 가족 수업“요즘 진로 고민을 하고 있는 시기이기도 한데요, (웃음) 음악을 계속 해나갈 수 있는 내적 힘을 갈고 닦아야 할 필요성을 느껴요. 수업도 많이 하고 학교도 많이 다니다 보니 개인 작업엔 조금 소홀한 것 같아서 2019년에는 다양한 작업을 하려고요. 기술이 계속 발전해 나가는 만큼 빨리 익히고 접근할거예요.”김자현 작가는 1월 말, 아르보 페르트(Ar o Part) 라는 훌륭한 작곡가를 배출한 나라이기도 한 에스토니아에서 첫 해외 레지던시 경험을 할 예정이다. 별빛이 쏟아질 듯한 드넓은 공간을 닮은 여러 작곡가들처럼 김자현 작가도 새로운 소리를 발견하고 담아오길. 귀 기울이는 자에게만 들리는, 행운 같은 소리들로 완성될 김자현 작가의 전자 음악이 기다려진다. “일주일에 한 번씩 5년간 해온 수업이 있는데 마무리하게 돼서 해외로 나갈 수 있게 되었어요. 폐교를 개조해서 만든 아티스트 레지던시 공간이라고 해요. 그 환경에 있는 소리를 녹음해서 어울리는 멜로디언이나 리코더 같은 간단한 악기와 함께 연주할 수 있는 소품을 만들어볼 생각입니다.”글  시민기자단 이혜원사진제공  김자현디자인  이한솔#서울문화재단 #TA업무 #직무정보 #기업문화 #사회공헌 #예술지원 #서서울예술교육센터 #입주작가인터뷰 #예술활동 #15개창작공간
조회수 728

P2P금융에서 고도의 엔지니어링이 필수적인 이유

지난 8월30일, 매일경제신문이 주최하고 과학기술정보통신부와 금융위원회, 금융감독원이 후원한 매경핀테크어워드2018에서 렌딧이 최우수상을 수상했다. 렌딧이 굳이 이런 경연대회에 참여를 한 이유는 ‘P2P금융산업에서 기술력과 고도의 엔지니어링 파워가 얼마나 중요한 지’를 널리 알리고 싶기 때문이었다.매경핀테크어워드 수상 소식을 들은 후, 엔지니어링팀 렌딧맨들과최근 렌딧은 개발자 채용에 그 어느때보다도 열심이다. 많은 개발자들과 만나 P2P금융산업의 미래와 우리 회사가 하는 일에 대해 설명하고 좋은 개발자를 영입하기 위해 노력하고 있다. 그런데 생각보다 훨씬 더 개발자들에게 P2P금융기업이 어떤 일을 하고 있고, 왜 개발자가 도전할 만한 분야인지 알려져 있지 않다는 사실을 알게 되었다. 이번 글에서는 렌딧이 하는 일을 바탕으로 P2P금융회사에서 왜 고도의 소프트웨어 엔지니어링이 필수적으로 필요하고, 개발자 여러분이 어떤 일에 도전해 볼 수 있는지에 대해 설명해 보려고 한다. 우선 대출과 투자 등 모든 서비스가 기존 금융회사와 달리 온라인 상에서 이루어진다. 특히 렌딧이 집중하고 있는 개인신용 P2P금융의 경우, 대출 심사와 집행, 투자 모집과 운용 등 서비스 전 과정을 100% 온라인, 비대면 서비스로 구축하고 있는 디지털 금융 플랫폼이다.대출 서비스에서는 머신러닝 기반의 대출자 심사평가모델 개발이 핵심적이다. 렌딧이 자체 개발한 렌딧 개인신용평가시스템(Lendit Credit Scoring System)을 예로 들어 보겠다. 신용평가사에서 제공하는 250여가지의 금융 데이터를 순식간에 분석해 모든 대출 신청자마다 개인화 된 적정금리를 산출해 내는 시스템이다. P2P금융기업인 렌딧이 개발한 심사평가모델을 기존 금융권의 심사평가모델과 비교할 때 가장 큰 차이점은, 머신러닝 기법을 사용해 각종 금융 데이터의 최근 12개월 간 트렌드를 분석한다는 점. 이를 통해 보다 정교하게 개인의 신용을 평가해 낸다. 여기에 추가적으로 신용평가사에서 제공하는 사기정보공유(Fraud Bureau)데이터, 직장 신용정보, 상환 정보 등을 종합적으로 반영하고 있다. 최근에는 대출자가 제출하는 신분증 확인 과정에 머신러닝을 적용해 자동화해 나가기 시작했다. 투자 서비스에서는 실시간으로 분산투자 포트폴리오를 추천해 주는 알고리듬이 돌고 있다. 투자자가 투자할 금액을 입력하면 눈깜짝할 사이에 현재 투자 가능한 채권을 조합해 분산투자 포트폴리오를 추천해 주는 시스템이다. 포트폴리오에 조합된 모든 채권에 투자금을 일정한 비율로 고르게 나누어 분산투자할 수 있도록 추천해 주는 것이 특징이다. 렌딧이 개발한 분산투자 시스템은 투자자 1인이 수백~수천개의 채권에 분산하는 것과 동시에, 채권 1개도 평균 1,303명, 최대 3,814명(기준 2018년 6월30일 현재)이 나누어 리스크를 분산하도록 개발되어 있다. 이렇게 분산투자를 시스템적으로 활성화 시키고 있는 덕분에, 현재까지 렌딧의 모든 투자자가 하고 있는 분산투자의 총 누적 건수는 거의 800만 건에 육박하는 수준이다. 점점 더 많은 데이터가 축적되고 있기 때문에, 이러한 데이터를 바탕으로 고객에게 제공할 수 있는 서비스 아이디어도 하루 하루 쌓여 가고 있는 중이다.P2P금융산업이 가장 발전한 시장인 미국의 경우, 최대 규모인 렌딩클럽 한 회사가 미국 개인신용대출 시장 전체의 약 1.5%이상을 차지할만큼 금융 시장을 혁신해 나가고 있다. 렌딧 역시 지난 3년간 빅데이터 분석에 기반한 정교한 신용평가를 통해, 대출 고객의 이자를 총 100억원이 넘게 절약해 드리는 성과를 만들어 냈다. 그간 기존 금융회사들이 만들어 내지 못한 중금리 대출 시장을 스타트업인 렌딧이 활짝 열어낸 것이다.렌딧에서 우리 렌딧맨들과 함께 한국의 금융을 혁신하는 금융 플랫폼을 만들어 가실 엔지니어 여러분을 기다립니다. 관심있는 분은 주저없이 sjkim@lendit.co.kr 로 연락 주세요. 많은 엔지니어 여러분과 만나뵙고 싶습니다. 

기업문화 엿볼 때, 더팀스

로그인

/