스토리 홈

인터뷰

피드

뉴스

조회수 1259

[바풀] 보노보노들을 위해

나는 학교 다닐 때 한 번도 과외를 받아본 적이 없다.일대일로 누군가에게 무언가를 배우는 행위가 '과외'라면 - '과외'의 사전적 정의는 '정해진 과정 이외에 하는 공부'이긴 하다 - 열아홉에서 스무 살로 접어들 때 실용음악학원에 가서 드럼을 배웠던 것이 전부다.대신 가르치는 일은 여러 번 해봤다. 대학생 때는 주로 중고등학생 과외를 했고, 휴학하고는 학원에서 초중생을 가르쳤다. 첫 번째 직장을 관두고 그다음을 위해 공부를 할 때도 초등학교 방과후교사를 하면서 아이들을 가르쳤다. 전문가가 아니었고 전업 교사도 아니었다. '가르치는 일'에 대한 사명 때문이기보다는 '내가 할 수 있는 일 가운데 오랜 시간을 투자하지 않고 돈을 벌 수 있는 일'이기 때문에 했다는 사실을 부정할 수 없다. 그렇다고 해서 수업도 대충 한 건 아니다. 시작한 계기가 무엇이든 간에 내가 무언가를 알려주고 설명했다면 상대방이 그것을 알아듣고 이해해야 의미가 있으니까 열심히 했고, 성의를 다했고, 특별히 더 많은 관심과 더 자세한 설명이 필요한 아이들에게는 어떻게 더 가르쳐줘야 할지를 고민했었다.그렇다고 해서 그 일이 적성에 맞는 건 아니었다. 과외보다는 학원이나 방과후학교에서 여럿을 한꺼번에 가르쳐야 할 때 더 힘들었는데, 아이들을 하나하나 붙잡고 가르쳐줄 수 없다는 점이 특히 그랬다.십 수명의 아이들이 일제히 나 하나를 보고 있고, 특정 문제를 설명하는 사람은 나 하나에 내가 설명하는 방식도 일단은 하나인데, 아이들의 표정을 살펴보면 어떤 아이는 이미 설명이 끝나기도 전에 알아 들었지만, 대부분의 아이들은 설명이 끝나도 여전히 알아듣지 못한 것이 명백했다. 그렇다고 해서 마지막 한 명이 알아들을 때까지 다르게 설명하고 반복해서 설명하는 건 불가능하다. 이미 알아들은 아이들이 있기 때문이다.당시 본래 학년보다 한 학년 낮춰 방과후수업을 듣는 남자아이가 하나 있었는데, 특히 기초가 많이 부족해서 다른 아이들이 문제를 스스로 풀어보는 동안 최대한 일대일로 설명도 해주고 해 봤지만 한계가 있었다. 나름대로는 할 수 있는 걸 다 했는데도 아이가 여전히 모르고 있다는 사실을 깨달았을 때는 사실 기운이 좀 빠졌다. '내가 이만큼 설명했는데도 모르다니!'의 의미가 아니라, '아, 이 친구는 앞으로 점점 더 어려워지겠구나...' 하는 안타까움 때문이었다. 따로 붙잡고 정말 인내심 있게 처음부터 하나하나 가르쳐주지 않으면 일반적인 수업을 전혀 따라갈 수 없을 텐데, 그럼 점점 더 교실에 앉아 있는 시간이 괴롭겠구나 하는 생각이 들어 안타까웠다. 그럼에도 불구하고 나는 점점 더 그 아이에게 할애하는 시간을 줄여가고 있었다. 끝까지 책임져 줄 수 없었기 때문에 포기하고, 다른 아이들에게 하나라도 더 알려주자는 마음을 나도 모르게 먹었던 것 같다.이제는 더 이상 누군가를 가르치는 일을 하지 않는다. 남은 것은 이제 배우는 일뿐이다.그런데 세상의 모든 일은 조금씩 연결이 돼 있는 건지 - 그렇다고 믿는다 - 지금 하는 일도 예전의 그 경험들과 무관하지 않다. 내가 일하고 있는 회사 바풀은 에듀테크 기업이다. 에듀테크란 교육에 기술을 접목한 것이고, 교육의 문제를 기술로 풀어나가는 것이다. 요즘 보면 기존에 오프라인이나 PC로 하던 것을 고스란히 모바일로 옮기기만 하고도 에듀테크라는 이름을 부여받는 경우도 있지만, 진짜 에듀테크는 새로운 기술로 새로운 방식의 공부방법을 제시하고 그를 통해 궁극적으로는 교육문화를 바꿔나가야 할 사명이 있다고 믿는다.바풀은 2012년 3월 바로풀기라는 공부질문앱을 출시해 지금까지 무료로 운영해오고 있고, 올초에는 바로풀기에도 곧 적용될 '문자인식(OCR | Optical Character Recognition)' 기술을 활용해 영어 지문을 촬영하면 사전 검색을 해서 자동으로 단어장을 만들어주는 바로단어장을 내놓기도 했다.그리고 지난 3월 말부터는 바풀공부방이라는 채팅과외앱을 서비스하고 있다. 바풀공부방이 나오기 전에도 과외앱들은 많았지만 기존의 과외앱들은 크게 2가지로 나뉜다.- 과외를 중개해주는 앱- 동영상 강의를 시청취하는 앱과외를 중개하는 앱은 정확히는 과외중개앱이라고 불러야 하고, 동영상을 서비스하는 앱은 비록 그것이 맞춤 동영상이라고 해도 과외라 부르기에는 무리가 있다. 과외를 하는 이유는 일대일로 쌍방향 대화를 통해 배울 수 있기 때문이다. 그런 의미에서 바풀공부방은 우리나라에서는 현재 유일한 진짜 과외앱이다. 학생들이 실제로 앱에서 과외를 받기 때문이다.앱에서 어떻게 과외를 받을까?카톡 하듯이 채팅으로 한다.학생 - 공부하다가 모르는 문제가 나오면 사진을 찍어 공부방 채팅창에 올린다.선생님 - 풀이해주고 필요한 개념을 설명해준다.(곧바로 터치펜을 이용해 풀거나 노트에 풀이해 사진을 찍어 공유하는 방식)학생 - 설명을 들어도 잘 모르겠다면 또 질문한다.선생님 - 설명을 해도 모르는 건 관련 개념이 부족한 거니 관련 개념을 설명한다.학생 - 설명을 듣다 보니 그 설명 중에 또 모르는 부분이 생긴다.선생님 - 이렇게 설명해서 못 알아들으니 저렇게 설명한다.학생 - 이제 알겠다고 생각해서 알겠다고 한다.선생님 - 일단 알겠다고 하고 보는 학생도 많이 만나봤으니 정말 아는지 응용문제를 내준다.학생 - 정말로 푼다.이런 식이다. 물론, 완전히 이해한 게 맞는지 확인하려고 제출한 응용문제를 못 푼다면 다시 이전 단계로 돌아가게 된다. 그래서 경우에 따라서는 한 문제를 완전히 푸는데 한 시간이 넘게 걸리기도 한다.더구나 채팅이기 때문에 일방적으로 수업이 진행될 수가 없다. 카톡을 생각해보면 상대방이 메시지를 확인하지 않는다거나 읽고도 대답하지 않는데도 혼자서 대화를 하는 것이 불가능하다는 사실을 쉽게 알 수 있다.간혹 이렇게 설명하면 글자를 언제 다 치고 있어? 라고 말하는 분들이 있는데, 요즘 학생들은 생각보다 채팅을 훨씬 더 편하고 익숙하게 사용한다. 수학의 경우는 텍스트보다는 그림이 더 많기도 하고.선생님들은 누굴까?교재가 없어도 수업이 가능하다면 말 다 한 것 아닌가.바풀공부방이 기존 과외와 다른 점은 정해진 교재가 없다는 점이다. 학교든, 학원이든, 심지어 과외도, 대개는 교재를 정해놓고 진도를 나가는 방식으로 수업을 한다. 진도는 대개 가장 늦게 따라오는 학생이 아니라 가장 잘 따라오는 학생, 많이 양보해도 웬만큼 따라오는 학생들을 중심으로 나간다. 혹은 전체 목표를 정해놓고 무조건 쪼개서 조금씩 나간다거나.하지만 바풀공부방은 대부분의 학생들이 공부하다가 모르는 문제가 생기면 질문을 하는 것에서 시작한다. 학교나 학원에서 배웠지만 혼자서 다시 문제를 풀어보니까 잘 모르겠다 싶은 것, 바로 지금 궁금한 것을 질문한다. 그러면 선생님 입장에서는 이거 난감하다. 언제, 어떤 질문을 할지 모르는 상태에 웬만큼 준비가 돼 있어야 하니까.천재 수학자도 풀지 못하는 문제가 있다는데, 바풀공부방 선생님들은 어떻게 이 상황에 대처가 가능하냐면 경험이 풍부하기 때문이다. 중고등학교 수학 문제는 대개 유형이 있다. 처음 접하는 문제라도 비슷한 유형을 많이 가르쳐봤다면 웬만큼 소화할 수 있다.바풀공부방 선생님들은 대학생이 거의 없고 대부분 전현직 학원 강사이거나 현재 공부방을 운영 중인 공부방 원장이거나 오랜 기간 교직에 몸담았던 퇴직교사이거나 교사 자격증까지 따고도 출산과 육아로 경력이 단절된 경단녀로 이루어져 있다. 짧게 하고 관둘 가능성이 적은, 전업/전문 선생님들인 거다.써본 학생들의 반응은 어떨까?화 안 내고 친절한 선생님을 그토록 원했을 줄이야.서비스 초기 학생들의 반응을 보며 의외였던 것 중 하나가 '선생님이 정말 친절해서 좋아요' '계속 질문해도 화 안 내고 끝까지 자세하게 설명해주니까 계속 질문할 수 있어요'였다. 사실 우리는 내심 '스마트폰으로 하니까 정말 편해요', '내가 원하는 시간에 할 수 있어서 좋아요' 같은 반응이 훨씬 더 많을 거라 생각했는데 학생들의 만족도를 표시하는 키워드는 '친절'이었다.이런 반응은 그동안 중고등 학생들이 '선생님이 불친절하다'라고 느껴왔거나 '선생님은 불친절할 것이다'라고 예상해왔거나 '선생님이 화를 내지 않을까' 불안했다는 것을 뜻하는 것이다.이렇게 쉬운 걸 물어봐도 되나?이렇게 쉬운 걸 물어본다고 다른 사람들이 흉보지 않을까?선생님이 바빠 보이시는데 자꾸 물어봐도 되나?지금쯤이면 이해가 안 돼도 이해되는 척해야겠지?이렇게 설명 듣고도 이해 못하면 선생님이 화내시겠지?그런데 채팅으로 질문하니까 일단 선생님의 표정이 보이지 않으니까 눈치 보지 않고 얼마든지 물어볼 수 있고 물어보면 물어보는 대로 자세하게 설명해주시니까 학생들의 만족도가 높을 수밖에 없는 것 같다. 서비스 시작한 지 이제 100일 정도 됐는데 4주 수업 재결제율이 무려 83%에 이른다.내가 다니는 회사이기 때문에, 나에게 월급을 주는 회사이기 때문에 이러고 있는 게 아니다. 그냥 시간 때우고 돈 벌러 다니는 회사라면 이런 글을 쓰지 않을 것이다. 나는 진심으로 우리 서비스가 잘 되면 학생들이 좀 더 행복해질 수 있을 거라고 믿는다.공부에 관심이 없고, 공부가 하기 싫은 사람은 공부를 안 하고 다른 걸 찾아서 하면 된다.하지만 공부를 하고 싶고, 잘 하고 싶은데 도와주는 사람이 없거나, 제대로 도움을 받을 만한 형편이 안 되는 학생들에게는 누군가 있어줘야 하지 않나? 근데 학원은 완전한 해결책이 아니고, 일반적인 과외는 너무 비싸니까 그렇다면 누구나 웬만큼 만만하게 써볼 수 있는 교육 서비스가 있어야 하지 않나? 그런 생각으로 회사에 다니고 열심히 일한다.예나 지금이나 결국 공부는 누가 대신해줄 수 없는 게 맞다. 어차피 혼자서 외롭게 해야 할 싸움이라면 제대로 할 수 있도록 도와줄 사람이 필요하다. 얼마간 잘 도와주면 언젠가부터는 혼자서도 잘 간다. 모든 걸 다 알게 되는 것이 아니라, 모르는 걸 어떻게 공부해야 할지를 알게 되는 것이다.#바풀 #경험공유 #보노보노 #조언 #인사이트 #기획 #마케팅 #운영 #성장
조회수 2532

AWS 서비스를 활용한 Kubernetes 클러스터 구축 - VCNC Engineering Blog

Kubernetes 클러스터를 상용 환경에서 운영하기 위해서는 몇 가지 추가 구성요소를 설치해야 합니다. 예를 들어 Ingress를 만들더라도 실제로 트래픽을 받아줄 Ingress Controller를 설치해두지 않았으면 소용이 없습니다. 그리고 모니터링을 위해 컨테이너의 로그나 CPU/메모리 사용량 등을 수집, 조회할 수 있는 서비스도 필요합니다.다행히 이러한 추가 구성요소 또한 Kubernetes 클러스터 위에서 일반 애플리케이션과 거의 같은 방식으로 작동하므로 설치하는 것이 어렵지는 않습니다. 다만 클러스터를 원하는 대로 구성할 수 있는 만큼 선택의 폭이 넓어서 여러 가지 해법을 놓고 고민하게 될 수 있습니다. 이 글에서는 타다 서비스를 위해 Kubernetes 클러스터를 구성할 때 어떤 선택을 했는지, 특히 AWS 환경에서는 어떤 서비스들을 활용할 수 있는지 공유합니다.서비스를 외부에 노출: NGINX Ingress Controller + NLBIngress Controller 고르기Kubernetes에서 클러스터 내부 서비스를 외부에 HTTP(S)로 노출할 때는 Ingress를 사용할 수 있습니다. TLS 암호화, 로드밸런싱, 호스트명/경로 기반 라우팅 등을 제공해서 상당히 편리한데, Ingress가 실제로 작동하기 위해서는 Ingress Controller가 필요합니다.시중에는 다양한 종류의 Ingress Controller 솔루션이 나와 있습니다. 그중 Kubernetes 프로젝트에서 공식 지원하는 NGINX Ingress Controller와 AWS ALB 로드밸런서를 이용하는 AWS ALB Ingress Controller를 두고 고민을 했습니다.타다에서는 클라이언트(모바일 앱)에 실시간 이벤트를 전달하기 위해 gRPC를 사용하고 있어서 gRPC를 지원하지 않는 ALB는 선택할 수 없었습니다. 그리고 AWS ALB Ingress Controller는 현재 Ingress 하나마다 ALB를 1개 생성하는 구조여서 앞으로 노출할 서비스 수가 늘어난다면 비용 효율이 떨어진다고 판단했습니다. 따라서 NGINX Ingress Controller를 선택하게 되었습니다.NGINX Ingress Controller는 NGINX 웹서버를 기반으로 하므로 gRPC 모듈을 비롯하여 다양한 NGINX 모듈을 통해 굉장히 세세한 부분까지 설정할 수 있습니다. NGINX Ingress Controller는 Ingress나 Ingress가 가리키는 서비스의 엔드포인트에 변화가 생길 때마다 동적으로 NGINX 설정을 업데이트하는 방식으로 동작합니다.NGINX Ingress Controller 로드밸런싱NGINX Ingress Controller를 사용해도 외부에서 오는 트래픽을 적절히 분배해 줄 외부 로드밸런서는 필요합니다. AWS의 로드밸런서는 Classic ELB, ALB, NLB가 있습니다. 앞서 설명했듯이 ALB는 gRPC를 지원하지 않아서 Classic ELB를 TCP 모드로 사용하거나 NLB를 사용해야 합니다. Classic ELB는 동시에 많은 연결을 처리하려면 웜 업이 필요한 단점이 있어 NLB를 사용하기로 하였습니다.최근 NLB가 TLS termination을 지원하기 시작했지만, HTTP/2와 gRPC를 사용하기 위해 필요한 ALPN 정보를 설정할 수 없어서 NGINX 수준에서 TLS 암호화를 처리하고 있습니다. NLB 수준에서 TLS 처리를 하면 무료로 자동 갱신되는 ACM 인증서를 사용할 수 있는 등 여러 가지 이점이 있어서 아쉽습니다.Kubernetes에서 LoadBalancer 타입의 서비스를 생성하면 알아서 AWS 로드밸런서를 만들어줍니다. 하지만 이렇게 해서 NLB를 생성하는 방식은 아직 알파 기능입니다. 따라서 먼저 NodePort 타입의 서비스를 생성하여 모든 노드의 특정 포트에 NGINX를 노출한 다음, 별도로 생성한 NLB에 노드들이 속한 오토스케일링 그룹을 연결해주는 방식으로 직접 설정하게 되었습니다.정리해보면 외부에서 오는 트래픽을 처리할 때는 다음과 같은 과정을 거칩니다.모든 서브도메인(*.tadatada.com)은 NLB를 가리킵니다.NLB의 443 포트로 암호화된 HTTP 또는 gRPC 요청이 들어옵니다. NLB는 적절한 Kubernetes 노드 중 하나의 특정 포트(예: 30000번)로 요청을 전달합니다.Kubernetes 노드에서는 포트 번호를 보고 NGINX 서비스로 향하는 요청임을 알 수 있고 NGINX 컨테이너 중 하나로 요청을 전달합니다.NGINX는 복호화를 한 다음 HTTP Host 헤더를 확인하여 요청을 전달할 Ingress를 알아냅니다. 그리고 해당 Ingress의 엔드포인트 중 하나로 복호화한 요청을 프록시합니다.애플리케이션 컨테이너가 요청을 처리합니다.트래픽 흐름: NLB → NodePort → NGINX Ingress Controller → 내부 서비스Pod에 IAM 역할 부여: kube2iamS3, SQS 등 IAM으로 인증하는 AWS 서비스에 접근하려면 인증 정보가 필요합니다. EC2에서는 액세스 키를 직접 넣는 대신 EC2 인스턴스 프로파일로 인스턴스에 IAM 역할을 부여할 수 있습니다. 하지만 하나의 Kubernetes 노드 (=EC2 인스턴스)에는 여러 Pod이 실행될 수 있기 때문에 Pod마다 다른 IAM 역할을 부여하기를 원한다면 인스턴스 프로파일을 활용할 수 없게 됩니다. (인스턴스 프로파일에는 하나의 IAM 역할만 부여 가능)kube2iam을 사용하면 다음과 같이 Pod 어노테이션으로 IAM 역할을 지정할 수 있습니다.apiVersion: v1 kind: Pod metadata: name: aws-cli labels: name: aws-cli annotations: iam.amazonaws.com/role: role-arn spec: ... 설치나 사용법은 문서를 참고하면 어렵지 않은데, 원리를 간단히 설명해 보겠습니다. EC2 인스턴스 안에서는 특정 IP 주소(169.254.169.254)로 접속하면 EC2 메타데이터 API에 접근할 수 있습니다. AWS SDK는 EC2 메타데이터 API를 통해서 인스턴스 프로파일에 붙은 IAM 역할과 IAM 역할에 해당되는 액세스 키 쌍을 받아오게 됩니다.kube2iam은 모든 노드에 실행되면서 Pod 내부에서 EC2 메타데이터 서버 주소로 나가는 모든 요청을 가로챕니다. 그리고 인스턴스 프로파일 정보와 액세스 키 발급 요청을 kube2iam 서버가 대신 처리합니다. 따라서 Pod 안에서는 인스턴스 프로파일이 부여된 EC2 인스턴스 내부에 있는 것처럼 느껴지게 됩니다.추후 AWS SDK에 EKS 지원이 추가되면 별도로 데몬을 설치하지 않고도 Pod에 IAM 역할을 줄 수 있게 될 것으로 보입니다.로그 수집: fluentd + CloudWatch LogsKubernetes의 컨테이너가 stdout/stderr로 출력하는 로그는 노드에만 쌓이고 컨테이너를 재시작하거나 삭제하면 함께 삭제됩니다. 또한 노드의 디스크가 꽉 차는 것을 방지하기 위해 일정 크기를 넘으면 오래된 로그는 없어집니다. 그러므로 로그가 사라지지 않도록 계속 어딘가에 모아두어야 합니다.AWS에서 활용할 수 있는 로그 저장 서비스에는 CloudWatch Logs가 있습니다. fluentd를 DaemonSet으로 노드마다 하나씩 실행해서 컨테이너 로그를 CloudWatch Logs로 전송할 수 있습니다.CloudWatch Logs에 저장한 로그는 최근 나온 CloudWatch Logs Insights로 검색, 분석할 수 있습니다. 아직 나온 지 얼마 되지 않아서 기능이 많지는 않지만, 간단히 조회하는 용도로는 충분합니다.CloudWatch Logs Insights 사용 예모니터링: PrometheusEC2 인스턴스 하나에 서비스 하나를 띄워서 사용할 때는 CloudWatch로 CPU 사용률 등의 지표를 측정할 수 있었습니다. 하지만 Kubernetes를 사용하면 여러 서비스가 하나의 인스턴스에서 동시에 실행될 것이므로 인스턴스 수준의 지표는 무의미합니다. 특히 최소 실행 단위인 컨테이너 수준의 CPU 사용률 같은 값을 측정해야 하는데, CloudWatch를 사용하기에는 과금 체계가 적합하지 않습니다.기본 제공되는 5분 간격의 EC2 지표는 무료지만 CloudWatch에 커스텀 지표를 올리게 되면 지표 당 비용을 지불해야 합니다. 이 때 '지표'는 지표 이름 + 고유한 차원(dimension)의 조합입니다. 예를 들어 CPUUtilization이라는 이름의 지표가 PodName=server-aaaaaaaa과 PodName=server-bbbbbbbb라는 다른 차원으로 올라온다면 각각을 다른 지표로 취급합니다. 따라서 지표 수가 너무 많아지지 않게 조정해야 하는데 그러면 상세하게 모니터링하기가 어렵습니다.비용 문제도 있고, Kubernetes의 여러 가지 정보를 CloudWatch로 내보내는 기존 도구가 없었기 때문에 다른 방법을 찾아보게 되었습니다. 그래서 Kubernetes 모니터링을 위해 많이 사용하는 Prometheus를 선택했습니다. Prometheus를 온전히 사용하기 위해서는 다양한 컴포넌트들이 필요한데, Prometheus Operator Helm 차트를 사용하면 비교적 쉽게 구축할 수 있습니다.Prometheus는 Kubernetes 클러스터 모니터링 외에 애플리케이션 모니터링에도 사용할 수 있습니다. 타다의 애플리케이션들은 Spring Boot로 작성되어 있는데 Spring Boot Actuator와 Micrometer의 Prometheus 지원을 사용해서 애플리케이션 수준의 지표도 Prometheus로 모니터링하고 있습니다. 특히 Prometheus Operator를 사용하면 모니터링 대상을 추가할 때 Prometheus 설정 파일을 수정하지 않아도 Kubernetes에 ServiceMonitor 리소스를 등록하기만 하면 되어서 편리합니다.Prometheus로 수집된 지표는 Grafana 대시보드로 시각화하고, 정해진 조건에서 Alertmanager를 통해 PagerDuty와 Slack에 알림을 보냅니다.Grafana 대시보드의 모습자동 처리량 확장: Cluster AutoscalerKubernetes에서 자동 처리량 확장은 크게 두 종류로 나눌 수 있습니다. 먼저 Horizontal Pod Autoscaler로 CPU, 메모리 사용량에 따라 Pod의 수를 자동으로 조정할 수 있습니다. HPA가 실제로 동작하기 위해서는 오토스케일링을 위한 지표를 제공하는 Metrics Server를 설치해야 합니다. 그런데 부하가 증가해서 HPA가 Pod 수를 늘리려고 할 때 워커 노드에 여유가 충분하지 않으면 새로운 Pod을 실행할 수 없어서 소용이 없습니다. 이 때 워커 노드의 수를 자동으로 조정해주는 것이 Cluster Autoscaler입니다. Cluster Autoscaler는 노드 수를 증가시키기만 하는 것이 아니라 여유가 생겼을 때 노드 수를 자동으로 줄여서 불필요한 비용이 발생하지 않도록 해줍니다.AWS 환경에서 Cluster Autoscaler는 EC2 API를 통해 EC2 오토스케일링 그룹의 Desired Capacity 값을 필요한 노드 수로 조정하는 방식으로 작동합니다. 따라서 Cluster Autoscaler에는 EC2 API를 호출할 수 있는 IAM 권한을 주어야 합니다. 이를 위해 위에서 소개한 kube2iam을 사용할 수 있습니다. 그리고 Cluster Autoscaler가 오토스케일링 그룹을 자동으로 발견할 수 있도록 미리 정해진 태그를 붙여야 합니다.한 가지 주의할 점은 노드의 오토스케일링 그룹이 여러 가용 영역(AZ)에 걸쳐있으면 안 된다는 것입니다. 오토스케일링 그룹이 여러 AZ에 속한 경우 AZ 간 인스턴스 수의 균형을 맞추려고 하는데 이 과정에서 인스턴스가 예기치 않게 종료될 수 있습니다. 이 때 해당 노드에 실행되어 있던 Pod이 안전하게 종료되지 않을 수 있기 때문에 AZ마다 오토스케일링 그룹을 따로 만들고 AZ 간 균형은 Cluster Autoscaler가 맞추도록 설정해야 합니다.도움이 되는 링크들위에서 소개한 컴포넌트들은 다음과 같은 Helm 차트를 통해 설치해서 사용하고 있습니다.stable/nginx-ingressstable/kube2iamincubator/fluentd-cloudwatchstable/prometheus-operatorstable/metrics-serverstable/cluster-autoscalerEKS Workshop: AWS 환경에서 Kubernetes 운영할 때 참고할 만한 정보가 많이 있습니다.Kubernetes Slack 채널: #eks 채널에는 AWS 직원들도 접속해 있어서 높은 확률로 답변을 받을 수 있습니다.
조회수 4157

[Tech Blog] Go 서버 개발하기

Go 서버 개발을 시작하며   특정 API만 다른 언어로 구현해서 최대의 성능을 내보자! 저희 서버는 대부분 Django framework 위에서 구현된 광고 할당 / 컨텐츠 할당 / 허니스크린 앱 서비스 이렇게 나눌 수 있는데 Python 이라는 언어 특성상 높은 성능을 기대하기가 어려웠습니다. 하지만 세가지 서비스에서 락스크린에서 어떤 컨텐츠나 광고를 보여줄지 결정하는 Allocation(할당) API 가 가장 많이 호출되고 있었는데 빈도로 보면 80% 정도로 높은 비중을 차지하고 있어서 이 Allocation API 들을 성능이 좋은 다른 언어로 구현하면 어떨까 하는 팀내 의견이 있었습니다. Why Go? 저는 예전부터 Java,  C# 등의 컴파일 언어에 익숙해서 기존 Java 와 C, 그리고 Go 라는 최근에 새로 나온 언어 중에서 아래 블로그글과 같이 여러 reference 들을 통해 성능이 좋다는 Go 로 이 API 들을 포팅하는 작업을 시작하게 되었습니다. Go 에 대한 첫 인상은 Java, C계열 언어보다 덜 verbose 보였고 python 보다는 strongly-typed, encapsulated 하다보니 자유도를 제한해서 코드를 보기 쉽게 하는 것을 선호하는 저의 성격과도 잘 맞는 언어였습니다.     출처: Carles Mateo, Performance of several languages서버 개발 환경   Server design How to import libraries  GVT (https://github.com/FiloSottile/gvt) – Go 는 vendering tool 을 통해 dependency 를 관리할 수 있습니다. GVT 의 경우 처음 도입했을 때 별로 유명하지 않았는데 사용법이 간단해서 도입하게 되었습니다. 아래와 같이 참조하고 있는 revision 을 관리해주며 update 통해서 최신 소스를 받아 올수 있습니다.   { "version": 0, "dependencies": [ { "importpath": "github.com/Buzzvil/go-env", "repository": "https://github.com/Buzzvil/go-env", "vcs": "git", "revision": "2d8489d40184a12c4d09d09ce1ff717e5dbb0745", "branch": "master", "notests": true }, ....  Design pattern  Go 언어에서는 package level cycling dependency 를 허용하지 않아서 좀더 명확한 구조를 만들기 좋았습니다. 예를들어 Service 에서는 Controller 를 참조할수 없고 Model 에서는 Controller / Service / DTO 등을 참조할수 없도록 강제했습니다. 모든 API 요청은 Route 를 통해 Controller 에게 전달되고 이 때 생성된 DTO (Data transfer object) 들을 Controller 가 직접 혹은 Service layer 에서 처리하도록 하였고 DB 에 접근할 때는 모델을 통해 혹은 직접 접근하도록 했지만 추후 구조가 복잡해지면 DB 쿼리 등을 담당하는 DAO (Data access object) 를 도입할 계획입니다   Libraries                  요소이름선택 이유NetworkGinWeb 서버이다 보니 네트워크 성능을 최우선으로 고려, 벤치마크 표를 보고 이 라이브러리를 선택Redis & cachego-redis역시 성능을 가장 중요한 지표로 보고 이 라이브러리 선택MysqlGormORM 없이는 개발하기 힘든 시대이죠. 여러 Database를 지원하고 ORM 중에서도 method chaining 을 사용하는 Gorm 을 선택Dynamoguregu dynamoAWS에서 제공하는 Dynamo 패키지를 그대로 사용하면 코드 양이 너무 많아지고 역시 method chaining 을 지원해서 선택Environment variablescaarlos0 envGo 에서는 tag 를 이용하면 좀더 코드를 간결하고 읽기 쉽게 사용할수 있는데 이 라이브러리가 환경변수를 읽어오기 쉽도록 해줌   Redis cache  func SetCache(key string, obj interface{}, expiration time.Duration) error { err := getCodec().Set(&cache.Item{ Key: key, Object: obj, Expiration: expiration, }) return err } func GetCache(key string, obj interface{}) error { return getCodec().Get(key, obj) }  Mysql  var config model.DeviceContentConfig env.GetDatabase().Where(&model.DeviceContentConfig{DeviceId: deviceId}).FirstOrInit(&config)  Dynamo if err := env.GetDynamoDb().Table(env.Config.DynamoTableProfile).Get(keyId, deviceId).All(&profiles); err == nil && len(profiles) > 0 { ... }  Environment variables  var ( Config = ServerConfigStruct{} onceConfig sync.Once ) type ( ServerConfigStruct struct { ServerEnv string `env:"SERVER_ENV"` LogLevel string .... } ) func LoadServerConfig(configDir string) { onceConfig.Do(func() {//최초 한번반 호출되도록 env.Parse(&Config) } }    Unit test   환경 구성 Test 환경에는 Redis / Mysql / Elastic search 등에 대한 independent / isolated 된 환경이 필요해서 이를 위해 docker 환경을 따로 구성하였습니다. Test case 작성은 아래와 같이 package 를 분리해서 작성했습니다.  package buzzscreen_test var ts *httptest.Server func TestMain(m *testing.M) { ts = tests.GetTestServer(m) // 환경 시작 tearDownElasticSearch := tests.SetupElasticSearch() tearDownDatabase := tests.SetupDatabase() code := m.Run() // 여기서 작성한 TestCase 들 실행 // 환경 종료 tearDownDatabase() tearDownElasticSearch() ts.Close() os.Exit(code) }  Mock server는 은 http.RoundTripper interface 를 구현해서 http.Client 의 Transport 멤버로 설정해서 구현했습니다. 아래는 Test case 작성 예제입니다.  httpClient := network.DefaultHttpClient mockServer := mock.NewTargetServer(network.GetHost(MockServerUrl)) .AddResponseHandler(&mock.ResponseHandler{ WriteToBody: func() []byte { return []byte(mockRes) }, Path: "/path", Method: http.MethodGet, }) clientPatcher := mock.PatchClient(httpClient, mockServer) defer clientPatcher.RemovePatch()  Unit test 관련해서는 내용이 방대해서 추후 다른 포스트를 통해 자세히 소개하도록 하겠습니다.  Infra API 요청 분할 AWS Application load balancer 여러 API 중에서 할당 API 를 제외한 요청은 기존의 Django 서버로 요청을 보내고 할당요청에 대해서만 Go서버로 요청을 보내도록 구현하기 위해 먼저 시도 했던 것은 AWS Application load balancer (이후 ALB) 였습니다. ALB 의 특징이 path 로 요청을 구별해서 처리할수 있었기 때문에 Allocation API 만 Go 서버 로 요청이 가도록 구현했습니다.  출처: Amazon Devops Blog, Introducing Application Load Balancer   하지만 이렇게 오랫동안 서비스 하지 못했는데 그 이유는 서버 구성이 하나 더 늘어나고 앞단에 ALB 까지 추가되다 보니 이를 관리하는데 추가 리소스가 들어가게 되어서 어떻게 하면 이러한 비용을 줄일수 있을까 고민하게 되었습니다.   Using docker & nginx  Go로 작성된 서버가 독립적인 Micro service 냐 아니면 Django 서버에서 특정 API 를 독립시켜 성능을 강화한 모듈이냐 의 정체성을 두고 생각해봤을때 후자가 조금더 적합하다보니 Go / Django 서버는 한 묶음으로 관리하는 것이 명확했습니다. Docker 를 도입하면서 nginx container 가 proxy 역할을 하고 path를 보고 Go container / Django container 로 요청을 보내는 구성을 가지게 되었습니다.  글을 마치며   시작은 미약하였으나 끝은 창대하리라 하나의 API를 이전했음에도 불구하고 Allocation API 에 대해서는 약 1/3, 서버 Instance 비용은 1/2.5 수준으로 감소했습니다.   설명: 기존 4개의 Django 인스턴스의 CPU 사용률이 모두 13% 정도 감소, Go 인스턴스의 CPU 사용율은 17% 정도   17 / (13 * 4)  ≒ 1 / 3  충분히 만족할만한 성과가 나와서 그 뒤로 몇가지 API도 Go 로 옮겼고 새로 작성하는 API 는 Go 환경 안에서 직접 구현하는 중입니다. 처음에는 호출이 많은 하나의 API 를 다른 언어로 포팅하기 위해 시작한 작업이었는데 Container 기술을 도입하는 등 서버 Infra 까지 변경하면서 상당히 큰 작업이 뒤따르게 되었습니다. 하지만 이 작업을 하면서 많은 동료들의 도움과 조언이 있었고 결국 완성할수 있었습니다. 이렇게 실험적인 도전을 성공 할수 있는 환경에 여러분을 초대하고 싶습니다! Go언어에 대한 문의나 좋은 의견도 환영합니다.
조회수 1501

일본 스타트업 적응기

운명이란 단어를 좋아하는 편은 아니지만,사람의 노력 너머로 작용하는 3가지가 있다.학교에 입학하는 것,사람과의 관계를 만들어 나가는 것그리고 업을 구하는 것.이 3가지는 운칠기삼이라고인생의 방향을 결정하는 중요한 선택들임에도항상 노력 너머로 작용하는 무언가가 있는 것 같다.그렇다면 나는 무엇에  2-3년간 익숙했던 업계를 떠나새로운 나라, 새로운 필드에서, 새 이야기를 쓰게 되었을까1. 무엇보다 중요한 것은 궁합취업을 할 때야 어디서든 자리 잡아 제 밥값을 하며 살아가고 싶다 생각하지만,직원을 구하는 입장뿐만 아니라 직업을 구하는 입장에서도가장 중요하게 생각해야 할 것은 서로에 대한 필요(궁합)이다.회사도 필요에 맞는 사람을 채용하는 것이 중요한 만큼피고용인도 자신의 가치에 부합하는 자리인지를 판단하는 것은 중요하다.몰입의 즐거움도 그렇지만,자신의 존재에 대한 감사함을 느끼며 살아가는 것일을 하면서 지켜야 할 무엇보다 중요한 감정인 것 같다.나의 경우에는서로가 서로의 필요에 대해 심도 있게 생각해 볼 수 있도록, 직접, 질문을 건네었다.1.  앞으로 계획하고 있는 것은?2. 그 계획에 필요로 하는 사람, 능력은?3. 어떤 사람들이 모여있는 조직인지?그리고 3일 후그 질문은 빽빽하게 쓰인 답으로 돌아왔다.그때 난 결심했다. "함께 하고 싶다. 이 회사"2. 다시 열정적으로 살아가는 내 모습을 되찾고 싶다.자리 잡아가는 직장을 박차고 이직을 하는 사람들의 마음, 같지 않을까?'한 단계 더 발전하고 싶다'물론 그 발전에는 급여, 복지, 지위 등 다양한 것들이 포함될 수 있지만,나의 경우에는 '중간만 가자' 주의에 물들이지 않고,다시 열정적으로 살아가는 내 모습을 되찾고 싶었다.일을 열심히 할수록 일이 몰려들고,무엇을 위해 열심히 하는가 회의감이 들지 않도록...난 아직 젊으니까, 더 하얗게 불태우고 싶었다.함께 만들어나가는 성장, 보상이 뒤따르는 조직3. 젊음 새로운 도전 속으로사실 새로운 업에 대한 도전에 고민이 없었던 것은 아니지만우연하게 접한 아래의 내용.(하고 싶지 않은 일을 하고 있는 것은 아니 었다......)젊음, '내가 다른 어떤 일을 더 잘하게 될지 아직 모르기에'다시 새로운 가능성에 도전하고 싶었다.If you’re offered a seat on a rocket ship, don’t ask what seat. Just get on.그렇게 2016년 나는 일제 로켓 Fuller에 몸을 싣게 되었다.슝#Fuller #일본 #스타트업 #해외취업 #스타트업합류
조회수 748

MZ세대 팀원이 믿고 따르는 리더의 조건

직장을 다니면서 혹시 이런 말을 접해 본 적이 있으신가요? ‘나 퇴사할 거야!’, ‘나 유튜브 시작할 거야!’. 이 두 가지 말은 몇 년 전까지 직장인 2대 허언이었는데요. 지금은 2대 허언이 바뀌지 않았을까 합니다. 링크드인 조사에 따르면, 밀레니엄 세대는 대학 졸업 후 32세 전까지 직업을 평균 2.85번 바꾼다고 해요. 평생직장의 개념이 퇴색하고 있고, 우수한 직원을 장기근속시키기 위해서 회사와 리더들에게 노력이 요구됨을 시사하고 있습니다."요즘 애들은 끈기가 없어! 라떼는 말이야."“요즘 애들은 끈기가 없어! 라떼는 말이야.”하지만 안타깝게도 기성세대들은 MZ세대의 배경을 이해하지 못한 채 불만을 토로합니다. 오늘은 MZ세대 팀원이 믿고 따르는 팀장, 리더의 조건을 알아보려 합니다. 밀레니얼 세대를 사로잡는 리더, 성과를 내는 리더가 되려면 어떻게 해야 할지 살펴보겠습니다.1. 진정성으로 신뢰를 얻는다.MZ세대는 가식적인 친절함보다 진정성 있는 리더를 원합니다. 진정성이란 말 그대로 마음에서 우러나는 참된 마음인데요. 팀장, 리더라고 하더라도 실수나 문제가 있을 때 슬쩍 넘어가는 게 아닌, 솔직하게 이야기하는 모습을 보여야 합니다. 예를 들어 진행하고 있던 업무가 무산되거나, 예정된 담당자가 변경되었다면 타당한 이유와 내용을 정확히 전달해야 합니다. 리더를 신뢰하는 직원은 안정감을 느끼게 된다고 하는데요. 팀장에 대한 신뢰도가 높은 직원일수록 위험을 감수하고 혁신적인 시도를 할 가능성이 높다고 하네요. MZ세대 팀원이 혁신적인 시도를 원하신다면 진정성 있게 대해주세요.2. 기회를 주고 인정한다.MZ세대는 수평적인 커뮤니케이션과 탈권위주의를 추구하는데요. 권위주의적 리더는 회사 정보나 권한, 목표를 독점할 때 생기게 됩니다. 팀장만 참여하는 회의가 있다면 일반 팀원에게도 회의 내용을 공유해 주세요. 모든 일을 알고 하는 것과 모르고 하는 일은 천지 땅 차이입니다.택시 기사가 되었다고 가정을 해보죠. 그리고 목적지를 알려주지 않는 손님이 탔다고 생각해 보세요. 갑자기 ‘우회전이요’, ‘좌회전이요’라고 말하는 불안한 상황. 택시 기사는 눈을 가리고 운전하는 것 같은 막막함을 느끼게 됩니다. 손님은 지름길로 갈 수 있었을 텐데 기회를 놓치거나, 갑작스러운 방향 전환으로 사고를 당할 수도 있죠.직원의 역량 강화를 위해 전체적인 맥락을 알려주시고, 업무의 기회를 주세요. 업무 기회가 없다면 MZ세대는 ‘이곳에서는 성장할 수 없겠구나’라는 생각을 하게 됩니다. MZ세대가 대기업을 퇴사하는 이유 중 하나는 기계 부품처럼 일하는 구조라고 하는데요. ‘언제까지 이거 해와’라는 업무 지시보다, 일의 목적과 취지, 맥락을 함께 설명해 주시는 게 좋습니다.3. 업무 환경을 개선한다.오픈서베이의 조사 결과에 의하면 3년 차 미만 또는 Z세대는 ‘메신저, 문자’를 통한 커뮤니케이션을 선호한다고 하는데요. 대면이 편한 베이비붐 세대와는 상반되는 결과입니다. 코로나19로 재택근무와 자율출퇴근제가 일상이 된 시대에 발맞춰 업무 환경을 개선해야 합니다.MZ세대는 청소년기부터 IT 기기와 인터넷, 스마트폰을 접했기 때문에 스마트한 환경에 익숙한데요. 업무를 할 때에도 여러 툴의 도움을 받아 일을 하죠. 기업용 업무 툴은 떨어져 있더라도 원활하게 커뮤니케이션을 할 수 있습니다. 채팅은 물론 화상회의도 가능하죠. 업무 관리 기능이 들어간 협업툴의 경우에는 모든 정보를 공유할 수 있어서 자연스럽게 수평적인 문화가 만들어지기도 하죠.  요즘 우리 사회에서는 일상 곳곳에서 세대 갈등을 마주하고 있습니다. 명절에 만난 친척 어른과 조카 사이에서, 회사의 부장과 신입 사원 사이에서, 지하철에서 만난 승객 사이에서도 서로의 입장을 생각하지 않아 갈등이 생깁니다. 자신이 보고 들은 경험만 강조한다면 이런 감정의 골은 점점 깊어지겠죠. 좋은 리더란 조직원 간의 갈등을 조성하기보다, 앞으로 조직을 이끌어 갈 세대를 명확히 이해하고 변화를 꾀하는 것. 직원을 배려하는 문화와 업무 환경을 구축하는 것이야말로 MZ세대 팀원을 지킬 수 있는 방법이 아닐까요.협업툴 플로우 바로가기
조회수 877

아래로부터 스타트, 업(up)

저는 스타트업 경험이 없어서 그런지 핀다에 들어온 일주일 간은 서로서로 oo 님이라고 부른다는 것에 익숙하지 않았습니다. 대표님이 인턴을 부를 때에도, 인턴이 그 누구를 부를 때에도 직책이 아닌 oo 님이라고 지칭하며 존대를 하는 문화는 갓 제대한 군인에게는 오히려 부담스럽게 느껴졌습니다. 익숙하지 않았기에 더욱 의문이 들었습니다. 때론 상명하복 방식이 효율적이라고 생각하지만 스타트업에서는 왜 서로의 의견을 존중해야 하며 그렇기에 존대를 하는 것일까라는 의문이 들었습니다. 핀다에서 약 두 달간 일하며 드디어 이 물음에 대한 답을 찾은 것 같아 여러분과 공유하고 싶습니다.   #1. 스타트업에서 일하는 것은 힘듭니다. 회사의 Front 와 Back을 넘나들며 경영, 인사, 재무, 기획 때로는 개발까지 넘나들며 모든 일을  처리해야 하기 때문일까요. 불확실한 미래, 많은 업무량, 현재로서는 만족할 수 없는 월급 등 생각 없이 무작정 덤벼들기에는 포기해야 할 것들이 많습니다. 하지만 창업이라는 힘든 길을 찾아서 걷는 사람들에게는 한 가지 공통된 이유가 있습니다. 바로 회사가 이 세상에서 이루고자 하는 비전, 그 꿈을 믿고 실현시키기 위하여, 현실에서 그 꿈을 이루어 세상에 조금이라도 보탬이 되고자, 많은 것들을 포기하고도 밤을 설쳐가며 일을 하고 있습니다.   Finda, For your better Financial Decision. 당신의 더 나은 금융 선택을 위하여, 핀다.IMF 외환위기, 2009년 금융위기를 겪으며, 또 그 사태에 대해 공부하면서 대한민국의 금융 기반 시설 자체가 선진국들에 비해 매우 부족하다는 생각이 들었습니다. 저는 투자은행, 국제 금융기관을 거쳐 경험을 쌓은 뒤 금융법까지 공부하여 대한민국의 금융 시스템 발전에 조그마한 도움을 주겠다는 꿈을 가지고 있습니다. 어떻게 보면 그 큰 꿈의 목표 중 하나가 개개인의 금융에 대한 접근성, 이해성을 높이는 것이라고 생각했습니다. 개인의 금융 선택을 편리하게 만들어 사람들의 삶의 질을 높이겠다는 핀다의 비전, 저는 핀다의 그러한 클래시한 비전에 동참하고자 핀다와 함께하게 되었습니다.스타트업에서의 꿈과 현실, 그리고 고민모든 것들이 계획한 대로, 처음 꿈꾸던 대로 이루어진다면 얼마나 좋을까요. 역시나 꿈을 이뤄나가는 데에 있어서 항상 이상적으로 모든 것이 해결되는 것은 아니었습니다.  “Of course your opinion MATTERS.”#2. 비전 차원의 고민저는 두 달간  회사의 재무 계획 (financial projection)을 세우는 일을 담당하였습니다. 회사의 사업과 비용을 사용하는 모든 활동에 대한 분석을 하다 보니 의문이 들었습니다. 우리가 하려고 하는 사업과 우리가 사용하는 모든 돈은 과연 우리의 비전을 위한 것인가. 제휴사들을 위한 페이지를 만든다는 것은 과연 누구를 위한 일인 것일까. 페이스북에서 광고를 하는 것이, 타 검색 사이트에서 핀다를 노출시켜 방문자 수를 높이는 것은 얼마나 의미가 있는 것인지, 사업 초기 단계에 어떻게 해서라도 제휴사, 방문자를 늘리는 것도 중요하지만 이것이 과연 고객을 위한 일 일지, 이렇게 하는 것이 비전에서 멀어지는 것이 아닌지 걱정도 들더군요. 고객의 입장에서 항상 고민하는 핀다(Finda)새로운 사업영역을 확장하는 것에서부터, 제휴사와 협약을 맺을 때, 사이트상 노출 우선순위를 정할 때,  또는 이메일을 작성하는 가장 기본적인 회사의 업무 프로세스까지 핀다는 항상 핀다의 가치관에 따른 결정을 내리고자 노력합니다. 모든 결정과 판단이 비전과 직접적 연관이 있는 것은 아니지만 항상 비전 차원의 논의를 한다는 것이 핀다의 멋이 아닐까요. 저 또한 비록 인턴으로 일하였지만 제가 처리하는 모든 업무에 저의 결정권, 그리고 재량을 가지고 핀다의 비전을 업무 곳곳에 녹여낼 수 있었습니다. 그렇기에 인턴사원의 발언, 업무 하나하나 존중받는 아래로부터 시작하는 핀다의 문화는 매력적이었습니다. 바로 그런 점에서 핀다는 비전을 함께하는 자, 구성원 모두를 존중하기에 서로를 존대하는 것이라고 생각합니다. 때로는 그 과정이 비생산적일 수도, 결과적으로 더 돌아가는 길이기에 느릴 수도 있지만 단순히 설립자의 비전을 위해 직원들이 지시사항을 따르는 회사가 되는 것을 핀다는 거부 합니다. 꿈과 현실 사이... 금년의 투자유치 계획을 달성하는 것, 제휴사를 늘리는 것, 회사의 기업가치를 높이는 것 모두 중요한 일입니다. 하지만 그보다 중요한 것은 대표부터 인턴까지 회사의 일원 모두가 하나의 꿈을 이루기 위하여 나아가고 있다는 것, 그리고 그것을 항상 고민하며 반성하고 있다는 사실이 핀다의 클래시함입니다.  금융 선택의 길잡이가 되겠다는 장기적 계획을 가지고 꾸준히 노력한다면 언젠가 핀다를 알아주는 분들이 생길 것이라는 확신이 있습니다. 조급하지 않게 언젠가는 올 기회를 기다리며 오늘의 화려함보다는 기업의 진실됨으로 평가받고 싶고, 그렇기에 고객 중심의 서비스를 만들기 위하여 항상 노력하고 있습니다. 진정한 기업의 가치란 이러한 비전에서 나오는 것이라 믿습니다. #3. 핀다는 항상 미래를 고민하고 있습니다.한 번은 신규 사업/카테고리 론칭을 위해 900개 정도 웹상에 흩어져있는 데이터를 엑셀 파일로 한 곳에 모으는 작업을 수기로 진행한 적이 있었습니다. 단순 반복적인 작업에 심신이 피폐해져, 핀다에 조인하게 된 이유 + 열정적으로 회사의 비전에 동참하겠다는 초기의 모습과는 멀어져 있는 제 자신을 발견하게 되더군요. 이때마다 동료들의 도움이 컸습니다. 멋진 비전으로 뭉쳐져 있고 열정에 차있는 동료들을 볼 때면 제 자신을 반성하며 초심에 대해 생각하고, 회사의 거시적 방향성에 대해 다시 한번 생각을 해보게 되는 시간이 되었습니다.  때로는 일에 치여, 때로는 현실과의 타협 속에 초심을 잊어버릴 때면 핀다의 일원 모두는 항상 목표를 다시 가다듬으며 더욱 큰 꿈을 위해, 클래시 한 기업이 되기 위하여 노력하고 있고 그러한 진정한 기업가치를 높이기 위하여 노력하고 있습니다.비록 저는 이제 다시 학업을 마치기 위해 타국에 홀로 돌아와 있지만 핀다의 멋진 비전에, 열정적인 사람들과 잠시나마 함께했다는 추억은 잊지 못할 것 같습니다. 기업으로서의 격, 클래시함을 추구하는 핀다, 항상 옆에서 지켜보며 응원하겠습니다.You Stay Classy, Finda!RA from Finda최민 드림.   #핀다 #스타트업일상 #RA #기업문화 #조직문화
조회수 1102

Team Profile: Meet Yonghyun

Read In KoreanAs a yet minuscule startup, each member holds a significant power over the overall atmosphere of the team. And in our ultimate quest to make big waves in the data world, we need to make sure that the people at the helm are at least kind of cool. We think we’ve done a pretty good job so far in assembling a society of unique but equally driven members.So we bring you this seven-part series, one of each devoted to interviewing each of our members in detail, to give you an in-depth glimpse into the people responsible for bringing you the future of machine learning with Daria. Plus, we peppered the interviews with questions from Dr. Aron’s “The 36 Questions that Lead to Love”*, cherry picked to make work appropriate and concise, but interesting.(*actually falling in love with our members highly discouraged)Yonghyun joined the XBrain team in August as a software engineer, and has worked closely with other members in constructing the software that Daria runs on. But his interests run beyond just making sure that Daria become the future star of machine learning and data science — Yonghyun is also an avid soccer player, and an enthusiastic dabbler of virtual and artificial reality. Learn more about him here!Yonghyun saves a few minutes of his day for some introspection/staring broodily out the windowHi Yonghyun! Start by telling us about your role.YH: I work with JM as a software engineer at XBrain, developing and testing our software infrastructure.How do you usually spend a work day?YH: I usually come to work around lunchtime, and devote my time to whatever needs to be done for the day. Today we worked on tests involving transferring data from MS SQL. I enjoy afternoon walks sometimes, and usually head home after working a little post-dinner.Tell us about the parts of your job that you most enjoy.YH: I enjoy transforming machine learning modules into Spark to fit with the cloud system, and looking at the code Suzin’s written in order to understand the process.What about the aspects that you least enjoy or find challenging?YH: Setting up the environment to test our systems is something I least enjoy. It’s frustrating, because you can follow all the steps and still go the wrong way.Pick one item on your desk that tells us something about you.YH: I don’t have a whole lot on my desk…so I would probably have to say my laptop. The very very big laptop provided to me by the company.Laptop in photo is larger than it appearsWhat made you want to become a software engineer?YH: I was originally majoring in History in college, but I was struck by how computer science could help you create something tangible. Programming helps turn your ideas into reality on the screen, which is something I was really drawn to.So why XBrain?YH: As an incoming programmer, you don’t really come across the opportunity to participate in the making of a product that’s still under development. It’s a good learning experience for me to watch Daria’s progress. Furthermore, because I started programming at a relatively later stage, I still need help with my mathematical background, which working here allows me to do.As the one of the newest additions to the team, tell us about your vision for XBrain.YH: I think my vision is one of becoming a household name for a machine learning tool that a lot of people use on the daily — Daria doing useful things in every facet of the world, big or small.What is your go-to work playlist?YH: When I’m coding, I usually prefer EDM, so stations like Hardwell On Air, and hip-hop as well.Recommend a movie for our next Cinema Society, please.YH: Watchmen (2009). Its protagonist Rorschach is an anti-hero, and the plot line is complex and interesting to follow.Where do you see yourself 10 years from now?YH: Career-wise, honestly I wouldn’t mind what I have right now — working a job that I love without getting too swamped with deadlines, with plenty of time for exercise and socializing, playing soccer with my friends.Given the choice of anyone in the world, whom would you want as a dinner guest?YH: Mark Zuckerberg, maybe? I’d like to hear about his ideas for the future.If you had to have dinner with one XBrain member, who would it be and why?YH: JP, our new machine learning engineer. I’d like to get to know him better, and he seems like an interesting person.Would you like to be famous? In what way?Nope.What would constitute a “perfect” day for you?YH: A day productive enough that I could go to bed without worrying about the next day.If you were able to live to the age of 90 and retain either the mind or body of a 30-year-old for the last 60 years of your life, which would you want?YH: The body of a 30 year old… I don’t think that youth isn’t everything when it comes to minds.For what in your life do you feel most grateful?YH: The privilege to have been able to learn and achieve everything I’ve wanted is something I’ll always be thankful for, and also the flexibility to be able to change directions I’m headed in.If you could wake up tomorrow having gained any one quality or ability, what would it be?YH: I’ve always wanted more drive to carry out the projects I’ve devised in my head, the ability to see things through no matter what.Is there something that you’ve dreamed of doing for a long time? Why haven’t you done it?YH: I’ve always wanted to learn how to cook. I lived in a dorm in college so I didn’t have the opportunity then, but now would be a good time as any.What is the greatest accomplishment of your life?YH: I would say my greatest accomplishment is putting my best efforts into learning and improving my mind, inside and outside of school.What is your most memorable XBrain moment?YH: My fondest memories are usually of events we held outside — the hike we went on in September, or the soccer game we had. I like that we got to bond as a team and get some exercise.If you knew that in one year you would die suddenly, would you change anything about the way you are now living? Why?YH: I haven’t been able to get decent sleep recently, so I’d probably give myself some time to rest.If you were going to become close friends with someone, please share what would be important for him or her to know.YH: I don’t have very strong likes or dislikes, so I usually get along with most people.What, if anything, should never be joked about?YH: You should never joke about the disadvantaged, or others’ insecurities.If you could sum up XBrain in three words or less?YH: Freedom. Consideration. Learning…. Is that too serious?#엑스브레인 #팀원소개 #팀원인터뷰 #기업문화 #조직문화 #팀원자랑
조회수 1145

그럴싸해 보이는데 읽기 힘든 글들의 특징

오늘은 글에 대한 이야기이니, 짤이미지 없이 글만 적어보겠습니다. 이미지 찾기 귀찮아서 그런거 아님 브런치에서 자주 놀다보니, 요즘은 브런치에 올라오는 글들을 읽게 됩니다. 브런치 담당자님들이 꿀같이 픽해준 글들이 아주 찰지더군요. 최근엔 가상화폐 글들이 온통 올라와서 떡락장에 시퍼렇게 멍든 제 가슴을 한층 더 먹먹하게 해주고 있습니다. 이 다양한 글들을 읽으면서 쓰신 분들의 정신세계를 유영하는 즐거움을 느끼고 있습니다. 타인의 표현속으로 풍덩 뛰어드는 것은 아주 아스트랄한 경험이죠. 세상엔 참 다양하고 똑똑한 분들이 많다는 생각을 하며 그러면 도대체 난 뭐하는 놈일까...라는 자기성찰의 시간을 가지기도 합니다.꼭 브런치가 아니더라도 페이스북이든 뭐 트위터를 포함해서 최근엔 다양한 텍스트콘텐츠가 슬며시 떠오르고 있습니다. 시각적 피로가 쌓인 탓도 있겠고, 아날로그한 트렌드가 슬쩍슬쩍 롤라장과 함께 되돌아오고 있는 까닭도 있겠군요.모든 콘텐츠가 그러하듯, 어떤 것은 눈에 땋! 보이면서 공차의 타피오카 펄마냥 쑤욱 읽힙니다. 가끔 너무 잘읽혀서 목에 펄이 걸리는 느낌을 받을 때도 있죠. 거친 리딩이었어..하앍하앍..거리면서. 금손님들의 미친 필력과  일필휘지의 감동을 느낄 때면 동공이 두근대며 살아있음을 느낍니다. 반면 종종 순간 14년전으로 되돌아가 11월10일 그 날의 언어영역 비문학 지문을 보는 기분을 느낄 때도 있습니다. 순간 수능용 시계를 손목에 차고있는 착각을 느껴 깜짝 놀라곤 합니다.우리의 주요 일상은 일집일집일집일집 입니다. 집에서 글쓸 일이야 페북이나 브런치에 썰푸는 것 정도일테고, 주로 글을 쓴다면 일할 때 많이 쓰겠네요. 업무용 텍스트는 결이 다르긴 하지만 궁극적으론 평소의 필력대로 속도와 퀄리티가 결정됩니다. 종종 기획안이나 보고서 등을 보다보면 비슷한 언어영역 시간에 빠져든 기분에 저도 모르게 컴싸를 꺼내들게 됩니다. 밑줄 친 a를 자꾸 찾게 되죠.그래서 오늘은 왜 그럴싸해 보이는 데 어떤 글을 잘 읽히고 어떤 글은 안 읽히는 지 생각해봤습니다. 글 잘 쓰는 방법에 대해선 이미 다양한 콘텐츠들이 나와있으니, 우리는 똥글을 만드는 방법을 알아보도록 하죠.1. Deep하고 Complicated한 Word의 complexity아니 그냥 '마무리' 라고 하면 될 걸 굳이 'Finalize해주시고..' 라고 쓰는 경우가 있습니다. 한/영키도 두번 눌러야 하고 키보드로 따지면 2글자나 더 쳐야하는데 정작 의미는 전혀 다르지 않습니다. 기본적으로 한영혼용체는 가독성을 격렬히 떨어뜨립니다.  인간이 언어를 이해하는 구조는 아주 다양합니다. 소뇌에선 독서에 필요한 운동능력, 그러니까 동공의 움직임, 타이밍, 정확성을 담당합니다. 그리고 전두엽과 좌뇌부근의 브로카 영역에서 언어의 음운/의미 등을 처리하게 되죠. 이 때 마치 컴퓨터의 캐시파일처럼 자주 쓰는 단어는 자동적으로 기억이 나도록 임시저장을 해두기도 한답니다. 그러나 새로운 단어나 외국어가 등장할 경우엔 그 단어의 뜻과 맥락을 파악해야 하니까 새로운 파일을 여는 동작을 하는 셈이죠.  우리는 흔히 책을 대각선으로 읽는다고 생각하지만, 실제 아이트래킹에선 완벽한 대각선을 그리지 않습니다. 밑에 1/3부분은 거의 시선이 가지 않죠. 시작은 왼쪽 상단에서 시작하지만 중간쯤에선 그냥 전체적으로 보이는 단어들을 쏙쏙 뽑아 문맥을 자체적으로 정리하고 이해하는 과정을 거칩니다. 그런데 영단어들이 중간중간에 등장해버리면, 단어만 뽑아서 문맥을 이해할 때 움찔합니다. '어...어서 뜻을 찾아!!''그 뜻이 이 문맥과 맞는지 확인해!!''혹시 잘난 척은 아닌지 파악해!!(?)'등등 언어처리과정에서 몇 개의 추가적인 과정을 거쳐야 합니다. 직관적인 이해를 방해하고 다시 읽고 또 읽게끔 만들죠. 두뇌는 엄청나게 게으르고 귀찮아서, 몇 번 봤는데 자꾸 걸리적 거리면 안 보려고 합니다. 한글과 영어의 혼용체는 일전의 병신보그체라는 이름으로 백성들에게 널리 알려졌는데, 딱히 좋은 느낌은 아닙니다.2. 수동태 작렬"마케팅은 고객으로 하여금, 브랜드로의 접근을 용이케하고 구매에 있어서 원활한 루트를 경험되어지게 한다."영문법에서 까다로운 부분 중 하나가 수동태였죠. be+p.p로 과거분사 뒤엔 항상 전치사가 붙었습니다. 수동형문장은 기본적으로 국문법에서 잘 쓰이지 않기도 할 뿐더러 '조사'를 엄청 쓰기 때문에 문장을 복잡하게 만듭니다. '~로 하여금, ~에게, ~에 의하여, ~하게 한다.' 등의 조사들은 굉장한 지루함을 선사하죠. 반성문에 자주 쓰는 표현입니다. 문장을 억지로 늘려야 하니까요.3. 영문번역체'이러한 연구결과는 상품선택에 있어서 우리에게 주어진 너무 많은 정보가 선택을 어렵게 할 수 있음을 느끼게 한다.'음, 번역체가 사실 잘못된 표현은 아닙니다. 오히려 꽤나 익숙하죠. 우리는 십수년간 영어지문을 기계적으로 독해해왔고, 타일러도 이해못하는 수능외국어영역 문제를 구조화시켜 풀 수 있는 신박한 능력을 지니고 있으니까요. 하지만, 그건 1~5번 중에 답 하나를 고르기 위한 분석을 할 때 얘기이고, 쭉 읽어내려갈 때는 번역체는 꽤나 걸림돌이 됩니다. 사실 저도 번역체를 많이 씁니다. 가장 흔한 예로"씁니다 - 쓰고 있습니다."등의 어미 늘리기와 "그것은 이것과 함께 어쩌고..그녀에게"와 같은 폭풍대명사 사용하기가 대표적이군요. 추가적으론"아름다운 그녀의 목걸이를 본 그는 황홀한 눈빛을 감출 수 없었다.""그는 그녀의 아름다운 목걸이를 보고 황홀함을 감출 수 없었다."등의 관계대명사 수식절 사용도 있겠네요.4. 쓸데없이 괄호/인용구 쓰기도… 돌은 내려놔 주세요. 아무쪼록 빠른 시일 내에 연재를 재개 할 수 있도록 노력하겠습니다. 어차피 기다려주시는 분도 별로 없겠지만(웃음) 그래도 제 글을 기다리는 분들을 실망시키고 싶지는 않으니까! (퍽퍽퍽, 탕! 질질 끌려간다.)오덕체에서 자주 보던 괄호형 혼잣말하기나 쓸데없이 직접인용구를 사용하는 경우도 있습니다. 독서의 맥을 끊죠. '작은 따옴표' 를 자주 쓰는 경우도 마찬가지입니다. 줄바꿈이 너무 많거나 문장부호가 괜히 막 들어가 있는 경우도 있죠. 5. 그냥 뭔 말인지 모르겠는 문장의사가 진단서에 '목감기 콜록콜록' 이라고 쓰면 처방전받을 때 왠지 손을 머뭇거리게 됩니다. 그렇습니다. 말과 글은 상대방의 지식수준과 신뢰와 직결되어 있죠. 하지만 종종 그걸 졸라 뽐내고 싶은 분들이 있는 듯 합니다. 처방전은 약사보라고 주는 겁니다. 약사는 휘갈긴 악필을 이해할 수 있구요. 하지만 소비자와 대중들을 상대로 하는 글에서 전문용어를 폭풍 남발해버리는 건 난 똑똑해!!! 라고 어깨 견장 움찔거리는 느낌이 들어 불편합니다.6. 어설픈 재수없음문법의 문제가 아니라, 이런 내용입니다.'나에게 닥쳐온 시련은 이번 뿐만이 아니었다. 하지만, 내 행동력이 어디 가겠는가. 후우... 이건 나에게 단점이자 장점과 같은 것이었다. 날 괴롭게 하고 잦은 실수에 빠뜨렸지만, 언제나 다시 일어설 힘을 주었던 내면의 힘같은 것이었다.'단점이자 장점이 아니라 그냥 대놓고 난 오늘도 영도다리에서 눈물을 흘리지 따위의 싸이감성을 뿜뿜하는 오글이토글이 글이 아닙니까. 물론 이러한 감성은 2000년대 싸이질의 추억을 깨워주지만 계속 읽어내려가긴 몹시 힘듭니다.7. 접속사 폭발, 끝나지 않는 스토리투머치토커라는 말이 있습니다. 글에도 투머치가 있지요. 도무지 끝나지 않는 문장입니다. 접속사와 쉼표로 끊임없이 연결된 시베리아 횡단열차같은 문장. 도대체 그 끝은 어디일까요. 이런 문장은 읽다가 삼천포로 빠지는 경우가 많습니다. 작성자나 읽는 이나 둘 다 말이죠. 나중에 삼천포에서 만나면 그나마 다행이겠지만 대부분은 각자 제 갈 길을 떠나는 경우가 많습니다.8. 시종일관 날카롭고 저속한 글정부비판에 극단적인 표현들, 가상화폐 비난 등등 의문형 문장이 넘쳐나는 날카롭고 강렬한 글들은 처음엔 임팩트가 있긴하지만 계속 질문만 던지고 따지는데 스크롤을 내리기가 좀 무섭습니다. 굉장히 피로한 글입니다. 마지막에 기똥차게 결론을 내려주면 또 나름의 카타르시스가 있지만 대부분은 마이클 베이영화처럼 처음부터 끝까지 터지고 부서지고 폭발하다가 결국 메간 폭스 엉덩이같은걸 클로즈업하며 끝납니다. 9. 노잼유행어를 쓴다고 재미있진 않습니다.10. 같은 말 반복"가치를 되살리는 일은 결국 그 본질적인 부분을 깨워 세상에 달리는 것과 같다. 이러한 가치의 재생은 사업의 참모습을 깨닫게 하고 고객에게 스토리텔링할 수 있는 기반을 만들어 준다. 때문에 가치에 대해 고민하는 것은 사업자에게 아주 중요한 과정이라고 할 수 있다."똑같은 말을 몇 번 반복하고 있는거야...이렇게 같은 말이 반복되는 이유는 사실 네이버에 "아아아아아...뭐더라" 라고 치는 심리와 비슷합니다. 뭔가 정리가 안되서 계속 그 자리에서 맴돌고 있는거죠. 쓰면서 생각 정리중입니다. 글은 정리를 끝내고 쓰는 겁니다.#모두 즐글 :)
조회수 2266

미소, 고객들에게 100만 시간을 선물하다!

미소, 고객들에게 100만 시간을 선물하다!2008년쯤 맬콤 클레드웰(Malcolm gladwell)의 저서 <아웃라이어>에서 ‘1만 시간의 법칙’을 인상 깊게 본 적이 있었습니다. “무엇인가에 대해 전문가가 되려면 1만 시간을 그것에 투자해야 한다”는 내용이었죠. 당시 이 내용은 저에게 많은 동기부여가 되어 “나도 축구선수가 될 수 있어!”라며 운동장에서 친구들과 매일 트래핑 연습을 했던 기억이 납니다. 이후 뉴욕타임스가 정반대의 연구결과를 내놓아 1만 시간의 법칙은 몇 년 간 논쟁의 대상이었죠.최근 미소의 2017년 상반기 데이터를 정리하던 중, 고객들이 미소를 통해 100만 시간이 넘게 청소를 받았다는 사실을 확인했습니다. 다시 말하면, 고객들은 40,000일 이상, 114년 이상의 시간 동안 청소를 할 필요가 없었다는 뜻이죠.미소에 청소를 맡기고 지난 100만 시간 동안 모든 고객님이 취미를 즐기거나 사랑하는 사람들과 함께 행복한 시간을 보냈기를 바랍니다. 또한, 맬콤 클레드웰의 말을 빌려 표현하자면 미소가 제공한 그 100만 시간 동안 어느 분야든 멋진 전문가가 탄생했길 바랍니다“행복한 일에만 집중할 수 있도록 미소가 도와드립니다.”미소는 단순히 청소회사가 아닙니다. 미소의 미션은 집안에 필요한 일을 미소가 대신해 고객님들이 행복한 일에만 집중할 수 있는 라이프 스타일을 만드는 것입니다.미소 내에서 고객의 정의란 Customer와 Cleaner 모두를 말합니다. 클리너 님들도 역시 미소의 소중한 고객입니다. 미소가 클리너님들에게 100만 시간이라는 청소 일거리를 드리는 동안, 클리너님들도 행복하셨기를 희망하죠.미소가 초기 투자유치를 했을 때, 많은 투자자분이 질문하셨습니다. “미소는 다른 경쟁사와 어떤 차별점이 있죠?” 이 질문에 대답은 항상 같았습니다. “없습니다. 만약 미소에 투자하기로 했다면, 그 이유는 미소가 경쟁자들보다 훨씬 더 빠른 실행력을 가지고 있다는 것을 믿으시기 때문입니다. 그렇지 않다면, 투자하지 않으셔도 됩니다.” 라고요.현재 미소는 새롭게 변하고 있습니다. 우리의 business는 network effect business입니다. 많은 주문이 있을수록 많은 클리너님들이 일을 하실 수 있습니다. 많은 클리너님들이 일을 하실수록 많은 고객님이 청소로부터 해방되어 행복한 일에 집중할 수 있습니다. 미소는 이러한 순환을 크게 확장하기 위해 집중하고 있습니다.그럼 이 network effect business가 어떻게 클리너님들에게 좋은 경험을 전달할 수 있을까요? 미소에 방문하시는 클리너님과 직접 만나 미소에 가장 큰 문제점이 뭐냐고 물을 때마다, 5분 중 4분은 ‘너무 먼 이동 거리’라고 말씀하십니다.고객과 클리너님들은 각기 다른 곳에서 거주합니다.기존의 이동 경로는 이렇게 됩니다.클리너님은 보통 오전 일을 위해 집에서 1시간 정도 이동하고, 거기서 오후 일을 위해 또 1시간 정도 이동합니다. 그리고 집으로 돌아가 하루를 마무리하죠.1시간은 오전 일자리에서 오후 일자리로 이동하는데 충분한 시간이 아닙니다.미소의 오전 일은 보통 9시에 시작해서 1시에 끝납니다. 그리고 오후 일은 2시에 시작하죠. 이 말은 클리너님들은 1시간 내로 다음 일을 위해 충전하고, 점심 먹고, 이동까지 해야 한다는 뜻입니다. 하루에도 몇 번이나 점심을 드시지 못했다는 클리너님들의 이야기를 듣습니다. 또 다른 클리너님들은 오후 일을 늦지 않기 위해 오전 일을 30분 일찍 시작해달라는 요청도 하시죠.하지만 현재 미소는 하루에 1,000명의 고객님의 청소를 해드리고 있으니 기존의 이동 경로를 상당히 높은 수준에서 개선할 수 있습니다. 15분 내로 오전 일과 오후 일을 이동하는 클리너님들이 많아야 한다고 강조하고 있습니다.우리의 가장 큰 불만은 지각과 연관이 있습니다. 만약 1시간 이동해야 할 거리를 15분 만에 이동할 수 있게 된다면, 지각할 가능성은 작아질 것입니다.매 주마다 미소를 이용하고 있는 정기 고객님들에게도 좋은 소식입니다. 미소의 정기 고객님들은 클리너가 자주 바뀌는 것에 대해 달가워하지 않습니다. 만약 클리너님이 정기 고객님의 집에 방문하기 편하다면, 훨씬 더 많은 클리너님이 정기 고객님 집에 방문하는 것을 정말 좋아하겠죠. 이렇게 이동 경로를 줄여준다는 것은 정기 고객님의 우려 또한 줄여드릴 수 있다고 생각합니다.높은 임금을 위해선 긴 이동시간도 감수할 수 있다.미소는 현재 오전 일과 오후 일 사이에 이동경로를 줄이는데 많은 노력을 기울이고 있습니다. 그럼 실제 출퇴근 거리에 대해서는 어떨까요? 미소의 다음 목표는 수요와 공급에 맞추어 가격을 조정하는 일입니다. 공급 즉 클리너님들이 많은 지역은 가격이 내려갈 수 있지만 공급이 부족한 지역은 가격은 비싸지겠죠?미소는 7월 내에 다양한 가격정책을 준비할 것입니다. 대부분 지역은 기존 가격인 45,000원으로 유지할 것이나 클리너 분들이 적은 지역은 50,000원으로 조정될 것입니다. 이제 클리너님은 선택할 수 있죠.더 편리한 이동을 원하느냐? 더 높은 임금을 원하느냐 ?우리가 하는 일들이 흥미롭지 않나요?우리는 진짜 혁신적인 무언가를 만들 수 있는 충분한 규모에 다가가고 있습니다. 미소는 고객 중심으로 고속 성장을 하고 있고, 해결할 수 있는 흥미로운 문제들을 가지고 있습니다. 미소는 모든 정규직들에게 의미 있는 주식을 함께 나누어 가집니다. 만약 이 글을 읽는 여러분이 개발자, Data Scientist, Product Manager 또는 디자이너라면, 우리가 찾고 있는 사람들입니다. 또한, 미소의 전반적인 운영을 담당할 수 있는 분도 함께 채용하고 있습니다. 만약 관심이 있다면 [email protected] 로 지원해주세요.감사합니다.마지막으로 가장 중요한 것은, 100만 시간의 청소 주문을 해주신 모든 고객님과 이 100만 시간이 넘는 청소를 수행해주신 모든 클리너님들에게 미소 전 직원은 진심으로 감사를 드린다는 것입니다. 미소는 완벽하지는 않습니다. 그렇기에 우리는 365일 하루도 쉬지 않고 고객님과 클리너님들을 위해 미소를 더 좋게 만들기 위해 노력합니다. 이 글은 우리 미션의 첫 번째 단계를 설명하고 있고 곧 미소의 다음 단계에 관한 글을 가지고 돌아오겠습니다.다음 100만 시간은 지난번보다 훨씬 나아질 것이라는 걸 진심으로 믿습니다.#미소 #유한회사미소 #서비스 #인사이트 #가치중심 #고객중심 #100만시간
조회수 980

회의실의 브랜딩: 브랜딩 회의만 7시간

오전회의가 시작되었습니다. 일단은 졸립니다. 커피를 들고 출근을 하긴 했지만, 그 정도의 카페인으로는 아침잠 대악마를 이길 수가 없죠. 오늘의 회의 주제는 '우리 회사 브랜딩 뜯어고치기' 입니다. 침을 삼키며 긴장감이 어린 표정들이 가득합니다. 대표님의 표정은 사뭇 진지합니다. 이제부터 극한업무 '회의'가 시작됩니다. 회의라는 것은 모든 직장인들에게 점심메뉴 고르기만큼 어려운 업무입니다. 회의라는 것은 '모을 會 / 뜻 意', 즉 '뜻을 모은다.' 라는 뜻입니다. 회의가 어려워지는 것은 이 두 글자 때문입니다. 뜻을 내는 것과 그걸 모으는 일이지요. 생각보다 우리는 우리의 생각을 밖으로 표출하거나, 드러내 본 적이 없습니다. 당연히 모아본 경험도 그리 많지 않습니다. 경험의 부재는 자꾸 어긋난 방향의 회의를 만들고, 어긋난 결론에 도달합니다. 그런데도 회의는 필수불가결한 업무요소 중 하나입니다. 그 방식은 물론 다양합니다. 원탁의 기사 컨셉도 있고, 독재자놀이도 있고, 모란시장 컨셉도 있고, 취침시간, 헥소고지 전투 컨셉 등..뭐 직원들의 성향과 비즈니스의 특성에 따라 각각 달라집니다. 그러나 그 과정이 어떠하던 결론적으로 "행동을 만든다." 라는 것에는 변함이 없습니다.음? 행동을 만든다고? 그렇습니다. 일단 이 정의부터 잡고 들어가봅시다. 회의는 결론을 내거나 솔루션을 만드는 것이 아닙니다. 잘 생각해보세요, 국K-1이 멱살잡고 의사봉을 집어던지고 마스크를 쓰거나 연필을 책상에 세우는 등 다양한 행위를 통해 그렇게 치열한 논쟁을 벌이는 이유가 무엇인가요? 그렇습니다. 그들은 '표결'을 하기 위함입니다. 이것을 '진행할 것이냐, 아니냐.' 를 결정하기 위해 갑론을박을 하는 것이죠. 그러나 업무의 회의는 정책회의와는 다릅니다. 우리는 정해진 어떤 두 항목 중 택일을 하는 것이 아닙니다. 표결에 부쳐 가부를 결정하는 과정이 아니죠.(물론 아예 그런 회의라면 또 모르겠습니다만) 회의시간엔 말을 통한 솔루션을 내는 것이 아닙니다. 솔루션은 행동을 통해 만들어지는 것이죠. 회의에선 바로 "어떤 행동을 할 것이냐?" 에 대한 결정을 내리는 것 뿐입니다.어떤 행동을 할 것이냐? 에 대한 결정을 내리는 것 뿐입니다.이 포커스가 자꾸 어긋나서 '해결방안' 을 만드는 것에 초점이 맞추어지면 전설의 탁상공론이 탄생하게 되는데, 그 결과는 코엑스 앞에 말춤 손목동상같은 것들이라고 할 수 있습니다. 책상에선 아무것도 해결할 수 없습니다. 뜻을 모은다는 것은 서로의 현명함과 지식을 끌어모아서 자랑질을 하자는 것이 아닙니다. 또한 전문가집단이 아니므로 학술적인 결론을 내는 것도 아닙니다. 따라서 오늘은 '행위를 만드는 것'에 초점을 맞춰 회의의 프로세스를 한 번 정리해보도록 하겠습니다. 물론 이 프로세스는 그냥 예제에 가까운 가이드일 뿐입니다. 실제 클라이언트사에서 브랜딩회의를 진행할 때 주로 제가 사용하는 방법이기도 합니다. 폭망한 적도 있고, 꽤 좋은 결과를 낸 적도 있었죠. 그러니 각각의 회사 성향에 맞게끔 쏙쏙 자체 필터링을 하신다면 흥미진진하실거라 생각합니다.0. 회의하쟝회의하러 가쟝출근하자마자 회의실로 모이라는 건 잔혹한 일입니다. 이론적으로야 당연히 9시는 출근시간이 아닌 업무시작시간입니다. 그러나 9시가 딱 되었다고 해서 갑자기 정신이 또렸해지고 영혼이 깨어나면서 없던 인사이트가 폭발하는 것은 아닙니다. 여전히 졸립고 피곤하고 멍한 것은 사실 대부분 마찬가지입니다. 그러니 딜레이타임과 자료준비 시간은 어느정도 확보하는 것이 좋습니다.회의 당일날 실무자들은 일단 출근하자마자 5가지 일을 챡챡 하도록 합시다.1. 커피사오기커피는 알아서 사옵니다.2. 물티슈로 책상닦기왠지 정돈된 느낌을 받을 수 있습니다. 물티슈는 DC백화점에서 구매한 100매에 990원짜리 싼 것을 쓰도록 합시다. 키보드를 뒤집어 털어주면 거대한 드러움과 알 수 없는 쾌감을 느낄 수 있습니다.3. 간밤에 들어온 메일확인 및 첨부파일 정리CC걸린 메일도 확인합니다. 첨부파일은 다운받아서 각 프로젝트 폴더에 저장해놓도록 합시다. 파일명이 이상야리꾸리하면 바꿔줍니다.4. 금일 to do list 정리메일은 크게 보고/진행/요청으로 나뉘어지는데 업무 리스트도 보고할 것, 진행중, 요청받은 것으로 쪼개서 정리합시다. 보고는 회의전 모두 진행할 겁니다. 진행중인 것들은 루틴업무로 뺍니다. 요청받은 것들은 진행중인 것들과의 선후관계를 따져 우선순위를 설정합니다. 각 할 일 옆에는 이거 끝내는데 몇 분 걸릴 지 러닝타임에 기재해주고, 1~5순위까지 정해서 먼저 처리할 것들부터 나눕니다. 1. 양이 적고 급한 것2. 양이 많고 급한 것3. 양이 적고 안 급한 것4. 양이 많아 안 급한 것순서로 정리합니다.5. 회의자료 정리회의자료는 쓸데없이 복잡하게 만들지 말고, 숫자달아서 리스팅합시다. 1. 회의실에 앉아보쟈사실 서서하는 회의가 더 효율적이란 얘기도 있습니다. 15분안에 끝나고 졸림도 예방할 수 있고 뭐..등등. 원하신다면 한 번 시험삼아 해보시는 것도 좋겠습니다만 반발이 이만저만이 아닐 수 있습니다. 회의실엔 회의자료를 쨕 돌려놓습니다. 빔 당연히 켜져있어야 하고, 노트북 셋팅하고. 그리고 절대 간식을 빼놓지 맙시다. 간식은 생명이자 떡이요 구원입니다. 2. 회의시간을 지정합니다.사회자 : 오늘 회의는 60분안에 끝낼 겁니다팀원 : 뻥치시네.시간 지정 중요합니다. 한도 끝도 없이 모여서 논쟁만 나눈다고 될 일이 아닙니다. 그렇게 끝난 회의에게서 카타르시스를 느끼거나 오늘 하루 보람찼다!!라고 느끼는 건 변태입니다. 의사결정은 빠르게!! 행동은 디테일하게 하는 것이 더 중요합니다.3. 회의 주제를 던집니다.코난 말투로 회의주제를 던집니다. 사회자죠."내 이름은 코난, 사회자죠. 이 공간엔 모두 10명의 사람들이 있어요. 어젯밤 11시, 우리 회사 브랜드가 죽었습니다. 회사엔 외부인이 전혀 없었고 브랜드는 현망진창이 되어있었어요. 이건 완벽한 밀실살인이예요. 지금부터 브랜드를 죽인 범인을 찾아낼 때까지 다들 한 발자국도 못나갑니다."4. 현재 상황에 대해 짧고 간결하게 브리핑을 합니다.창업전설까지 거슬러 올라가며 오래 전 그 날을 끄집어내란 얘기가 아닙니다. 현상황이 더 중요합니다. '현재 저희와 유사한 업체가 3개 있는데 그 중 1개업체가 우리 점유율을 앞질렀습니다.''대외적 인지도도 훨씬 높습니다. 우리의 트래픽 자체는 크게 변하지 않았지만 SNS상에서 그들의 프로모션 이벤트가 크게 회자되면서 이미지를 선점하고 있어요.''현재 우리는 네이버연관검색어 등 유료마케팅을 통한 고정유입률만을 유지하고 있습니다. 늘지도 줄지도 않고 있죠. 그러나 현재 이 유입을 통한 전환이 굉장히 높은 편이라 유입율 자체에 대한 아젠다는 생략하도록 하겠습니다.''대신 오늘은 브랜드의 이미지구축과 시각화를 위한 방안회의를 할 겁니다.'5. 용어정의를 내립니다. 다들 이 부분을 굉장히 간과합니다. 용어정의. 회의란 것은 기본적으로 한 가지의 주제를 여러사람이 생각하는 과정입니다. '이미지' 란 단어를 듣고 김대리는 "로고?" 라고 생각하고, 박팀장은 "소비자의 니즈?", 김실장은 "우리의 컨셉?" 등 각각 다른 그림을 떠올리고 생각한단 말이죠. 다 좋은데 이런 식이라면 다각적인 인사이트가 아니라 그냥 아무말대잔치가 되버리고 맙니다. 영역을 쪼개는 것이 아니라, 한 영역에 대한 다양한 시각을 모으는 것이 회의예요. "여기서 이미지. 라고 함은 시장이 아닌, 우리가 우리를 규정하는 1인칭관점을 의미합니다. 따라서 시장의 평가보단 우리 비즈니스를 우리 입으로 먼저 정의내리도록합니다. 이것은 텍스트, 비쥬얼 두 가지 방향으로 나눌 것입니다. 텍스트는 한 단어, 한 문장, 간단한 보일러플레이트 제작 이렇게 3가지로. 비쥬얼은 '키비쥬얼, 로고시스템, 브랜드패턴' 이렇게 3가지로 나누도록 하겠습니다."일단 소비자의 원함이나 서비스의 편의성등은 차치하고, 우리 입으로 말하는 우리 이미지부터 정확하게 규정하잔 것이 아젠다군요. 그렇다면 일단 내부의 결을 맞추는 작업이니 내부 인원들의 얘기를 한 번 들어봐야 겠네요.6. 의견을 개진합니다.의견 있는 사람?항상 여기에서 폭망입니다. '자, 의견 있으면 얘기해보세요.' 라고 하면 모두가 예상하는 바로 그 장면이 등장하죠. 인간의 사고는 프레임에 의해 움직입니다. 프레임이 없이 너무 큰 자유를 선사하면 기뻐서 우주로 사라져버리고 말죠. 적당한 제한사항과 프레임을 하나하나 규정해주는 것이 엄청 중요합니다. 그래서 회의 진행자는 담날 회의를 위해 철저하게 기획하고 운영안을 짜서 움직여야 되요. 그냥 모여서 얘기해야지...라는 개념이 아니라 소규모 사내 행사운영한다는 생각으로 타임라인별 멘트, 회의운영안이 필요하단 말이죠. 에이 뭘..그런 것까지!!!....라고 고개를 가로젓는 순간 어제의 회의가 앞으로도 영원히 복붙되고 말거예요."일단 우리 브랜드를 색깔로 한 번 묘사해볼까요? 각자 우리 브랜드는 어떤 컬러에 가까운 지 1분간 생각후에 얘기해보도록 해요."이렇게 미장센과 코드가 존재해야 해요. '색깔' 이라는 코드를 주면 사람의 사고는 빨주노초파남보 등으로 한정되기 시작하고 한정된 정보안에선 각각의 유사성과 대조점을 발견하기가 굉장히 쉽습니다. 함수관계와 비슷해요. 일단 정의역을 제공하고, 공역을 제공해야 대응관계를 만들어낼 수 있죠. 정보는 단일로 존재할 땐 쉽게 인식되지 않습니다. 항상 어떤 것과 연결된 '유기성'을 지니고 있을 때 의미를 갖죠. 사회자의 질문은 엄청나게 중요합니다.7. 쳐내고 모으고 나누고 곱한다.각각의 의견들이 책상으로 쏟아지면 누군가는 그것들을 모두 기록하면서 하나로 모으고 있어야 해요. 사람들은 생각보다 남의 의견을 잘 듣지 않습니다. 그리고 '말해보라' 라고 했지 '들어보라' 라고 하지 않았기 때문에 '내가 담번에 무슨 말을 할지' 에만 크게 집중하고 있는 상태입니다. 제3자 입장에서 그 회의를 관찰하는 사람이 있어주어야 합니다. 흔히 서기같은 사람이 가장 적합하죠. 텍스트로 그걸 변환하면서 정리를 하는 것입니다. 각각의 의견들의 공통점과 논외의 주장들을 구별하고 헛소리는 빼고, 공통적인 것은 묶고 반대의견은 따로 대립시키는 거죠. 그래서 크게 3가지 정도의 의견으로 압축시킵니다. 1가지는 너무 단편적이고 2가지는 택일의 상황을 유발합니다. 3가지는 서로 견제하는 느낌이고 4가지는 너무 안정적이예요. 5가지 이상부턴 복잡하고 많아보입니다. 3가지의 의견이 나오면 A,B그리고 어느쪽에 힘을 더 실어줄 C로 나누어지면서 지금의 여당,야당,3당과 같은 느낌의 균형이 맞추어지게 됩니다. 이렇게 3가지의 안으로 압축시킨 뒤 일단 쉬는 시간을 갖습니다. 이 작업은 20분 이내에 빠르게 쳐내는 것이 좋습니다.8. 쉬는 시간쉬는 시간은 회의를 하며 계속 그림을 그렸던 두뇌를 정리하고 생각들이 가라앉힐 텀을 주는 과정입니다. 대부분의 사람들은 말하면서 생각하기 때문에 자기가 말해놓고도 정리가 안되어 있거나 내가 무슨 말을 했는지도 모르는 경우가 많습니다. 이것들을 정리하는 것은 계속 생각하는 것이 아니라, 생각을 하지 않는 것이예요. 더도 말고 5분정도가 좋습니다.9. 의견선택눈치보지 말고 명확하게이제 의견을 선택합니다. 당연히 어떤 안이 선택되면 나머지 2개안을 냈던 사람들의 의견은 묵살되는 형태입니다. 이것에 대한 동의함과 설득의 과정은 반드시 필요합니다. 대신 질질 매달리기 보단 인정함과 합당한 이유를 설명해주는 것이 좋아요."아 나머지 두 개 의견을 내신 분께 죄송합니다..조금만 양해부탁드리고 힘들더라도 따라와주시면 감사하겠습니다.." 가 아닙니다. 이렇게 죄송, 힘들, 따라와, 감사해버리면 부탁도 아니고 뭣도 아니고 그냥 아무 따뜻한 말로 엿먹이는 느낌이예요. 차라리 이렇게 말합시다."나머지 두 개 의견은 매우 훌륭하였으나 현재 주어진 예산과 업무량의 여건상 우선 A안을 먼저 시행해보도록 하겠습니다. 추후 이 프로토타입이 괄목할 만한 성과를 내지 못할 경우 2안으로 B안을 택하도록 하겠습니다."감정적인 위로나 그런 군더더기 없이 합리적인 선택의 이유을 설명해주고 그럼 나머지 의견은 짬시킬건지 아니면 쌩깔건지 나중에 쓸 건지 등등을 정확하게 얘기해주는 편히 훨씬 인정받는 느낌입니다.10. 실무회의이제 업무분장을 합시다. 쪼개고 나누는 겁니다. 구체적인 실행단계를 만드는 일이죠. 이것은 앞서 2화 브랜딩, 일의 시작편 에서 설명했던 아래의 내용과 같습니다.01.   어떤 방식으로 전달할 것인가? – 채널, 방식, 제작방식, 시기, 기간, 컨셉 등02.   누가 얼마나 담당할 것인가? – 업무분장시작03.   PM은 BM과 제일 비슷한 성향의 기획자가.04.   기획 서포트는 반대 성향의 담당자가05.   중재자는 관찰자 성향의 담당자가06.   실행과 운영은 모험가형 2명이07.   검토와 트래킹은 사색가1명이08.   기획안 도출과 프로토타입 제작은 언제까지09.   리브랜딩 제작물과 디자인 작업은 언제까지10.   사내 전체 공유와 적용 시기는 언제부터11.   대외노출과 공표는 언제12.   유지와 운영 점검의 1차 지점은 언제까지13.   해당 업무에 대한 각 팀 별 세부업무 관리는 어떤 식으로14.   총 예산은 어느 정도15.   1차 랜딩이 끝난 후 2차 유지보수비(고정비)는 어느 정도 책정16.   책임과 권한 부여각각의 업무분장과 행동화과정에선 모든 업무의 목표와 평가지표가 오늘 나온 주제로 합치되어야 합니다. 이 과정에서 각각의 업무로딩을 파악하는 것은 매우 중요합니다. 특히나 브랜딩업무는 뭔가 일을 만들고 늘리는 것이 장땡이 아니므로, 현재 업무 중 오늘 업무를 함에 있어서 걸림돌이 되거나 또는 필요없거나 이관, 지연해도 상관없는 것들을 분류해서 업무가 +a 로 과중되지 않도록 신경써야 합니다. 대부분 이 작업없이 그냥 일을 만들어서 뿌리기만 하니까 "회의실 = 일 만드는 공장" 이 됩니다. 항상 무언가를 뿌릴 때는 총량유지를 생각해보시는 것이 좋을 듯 합니다.11. 정리/조율회의안을 정리하고 전체공유합니다. 이 때 회의안은 그 자체가 곧 '업무목표'가 되므로 업무결과보고의 제일 앞장에 위치하는 것이 맞습니다. 그리고 짧은 회의시간에 미쳐 다 하지 못했던 각자의 개인사정 및 업무역량에 대한 조율은 실무자간에 따로 담배 or 커피타임을 통해 옥상에서 따로 처리하도록  재량권을 주는 것이 더 효율적입니다. 일단은 이렇게 11단계로 정리를 해보았습니다. 추상적인 의견들만이 난무하는 브랜딩회의는 시간 대비 성과가 굉장히 조악해질 위험이 있습니다. 결국 말로 시작해서 말로 끝나는 것이죠.망한 결론회의는 생각으로 시작해서 말로 그리고 행동으로 끝나야 합니다. 이 방점을 제대로 찍지 못하면 끝나고 나서도 뭘 해야할 지 모르고 구슬피 한맺힌 사내 지박령처럼 이리저리 영혼이 떠도는 상태가 된단 말이죠.생각보다 회의는 굉장히 어렵습니다. 치밀한 기획이 있어야 하고, 사회자의 역량도 중요합니다.  늘 보던 얼굴이라고 하지만 얘기하는 주제가 달라지면 갑자기 낯설어지는 것이 또 회사라는 곳입니다. 적절한 질문과 운영방식을 찾아내기 위해 정말 수도 없이 고민해야 하는 것이 회의죠. 단순히 즐겁고 웃고 떠들며 앙버터 치아바타를 나눠먹는다고 수평적인 회의실의 모습이 만들어지는 것은 아닙니다. 적막하고 졸음만 가득한 회의실도, 아무말과 별 대책없이 끝나는 회의실도 둘 다 그다지 좋은 모습이라고 할 수는 없죠. 회의는 속이 시원해야 하고 모두가 머릿속에 각자 어떤 일을 왜 하는지에 대한 그림을 그리고 나와야 합니다. 그래서 사실은 브랜딩을 위한 회의...라고 얘긴했지만. 이 회의실안의 모습이야말로 우리 회사의 문화와 역량을 가장 적나라하게 보여주는 Inner Branding 그 자체라고 하는 편이 더 좋을 것 같습니다.
조회수 808

창업자의 일기장(5)-놀고먹는 착각

----이전 이야기------실업급여와 퇴직금으로 6개월간창업 준비를 하기로 마음먹었다.퇴사를 하면,여행도 가고,하루 종일 잠만 자보기도 하고,늦은 밤에 야시장을 거니는 꿈을 꾸겠지만적어도 생계 걱정을 해야 하는 가장에게는상상 속의 이야기일 뿐.부양해야 할 가족이 있음은허투루 시간을 보내는 것이죄책감으로 되돌아온다.몇 번은 결혼하기 전에 창업을 했으면 하는 생각도 했지만,여전히 결혼하고 창업하길 잘 했다는 마음이 더 크다.그 책임감과 중압감이나를 더 몰아쳐왔고,한 번 더 고민하게 만들었으니까.실업자(백수)가 하루를 시작하는데늦잠 잔다는 것은 현실 자각이 없는 소리다.슬로 라이프, 여유 있는 아침,느긋한 스케줄이라는 것은 낭만적 일지 몰라도,굳이 이쁘게 포장하고 싶지 않다.(비추천 하나 드립니다.)놀고먹는 착각이 현실화되기 위해서는수익이 창출되는 시스템이 있어야 한다.내 노동력이 들어가지 않더라도알아서 돈이 불어나는 시스템.그런데 갓 퇴사한 사람이 그런 시스템을 가지고 있을 리 만무하고그렇다면 빠르게 다음 수를 준비해야 한다.일단 아침에는 무조건 일찍 일어나서세수하고, 정리하고, 나갈 준비를 한다.몸이 나태해지면,마음도 나태해지고,하루라는 시간도 낭비돼버린다.그 하루들이 모여서 내 일생이 되기에퇴사하더라도 부지런하고 꾸준함은 절대 계명처럼 지켜야 한다.그래!그동안 수고했으니까,고생했으니까,나 자신을 위해서시간을 한정해서 보상을 해 줄 수는 있다.1주일 또는 2주일 정도만제한된 스케줄 안에서여행이든, 쉼이든 가질 수 있다.딱 거기까지!!!그게 습관이 되어버리면,점차 돌이키기 힘든 후회의 시간들이 늘어갈 것이다.그러니까 쉬더라도시간을 정해 놓고 쉬어라.퇴사한 다음 날에나는 아내와 인사동에 놀러 갔다.그다음 날에는 파주 헤이리에 갔고,그다음 날에는 집에서 놀았다.딱 그렇게 일주일을 쉬었다.그리고는 도서관으로 출퇴근하였다.도시락도 챙겨가고,가끔은 구내식당도 이용하고,아침에 나갔다가 밤에 돌아왔다.백수의 시간들 동안열심히 살았고, 꾸준했음에도...기대했던 만큼의 성과나,가시적인 레퍼런스를 만들지는 못 했다.그러나 그때에 공부하고, 준비했던 것들이나중에 창업하고, 회사를 운영하는데큰 힘이 되어주었다.실업급여와 퇴직금에 안심하지 마라.진짜 금방 사라진다.추가적인 수입이 없기에통장의 숫자가 줄어드는 것에 민감해진다.시간과 돈에 쫓기기 시작하면,마음이 분주해지고, 성급해진다.그리고 작은 유혹에도 흔들리게 된다.섣부르게 행동하게 되고,날림으로 판단하게 된다.요즘은 퇴사도 잘 해야 한다고,퇴사 준비를 시켜주는 교육도 있더라.나라고 무작정 퇴사하지는 않았다.분명 나름 확신을 가졌고,계획은 몇 번이고 시뮬레이션해서자신 있었다.회사 다니면서점심시간을 굶어가면서토익학원 다녀서 점수도 만들어놓고,퇴근하고 도서관 열람실에서가득 채운 두꺼운 노트만 2권이다.(다이어리 미포함)주말에는 알라딘 서점과 공립도서관에서 읽은 책 또는 빌린 책이매주 3권 씩이다.그러나,막상 퇴사하고 나면,그래도 부족했고, 허점이 많았다는 걸 알게 된다.퇴사준비가 부질없다는 이야기가 아니라잘 준비해도 생각지 못한 문제들이 많이 생긴다는 거다.쉽게 재취업하거나쉽게 창업할 수 있다고 착각하지 마라.퇴사 후에 새로운 일을 시작하기까지의 시간은놀고먹는 시간이 아니라 준비하는 시간이다.그 공백의 시간이 늘어날수록,훗날 그 시간에 대하여 해명해야 할 날이 온다.
조회수 3884

프롤로그: 커뮤니티 매니저, 들어본 적 있나요?

한 번쯤 이 단어를 들어본 적이 있나요? 여러분이 '커뮤니티 매니저(Community Manager)'라는 단어를 들어본 적이 있다면, 이런 공간들을 알거나 방문해본 적도 있을 겁니다. 코워킹 스페이스(co-working space), 공유 공간, 협업 공간, 청년 공간, 마을 공간, 거점 공간 등등 다양한 이름과 형태를 가진 ‘커뮤니티 공간’을 말이죠. 다양한 커뮤니티 공간에서는 '커뮤니티 매니저'를 직업으로 하는 사람들을 만나볼 수 있다. ⓒ wework, 마이크임팩트스퀘어, 아트업서울, 무중력지대G밸리최근 몇 년 간 서울을 비롯한 전국 각지에는 다양한 형태의 ‘커뮤니티 공간’이 빠른 속도로 새롭게 만들어지고 있습니다. 이 흐름은 자연스럽게 공간 운영과 관리를 담당하는 사람들의 등장으로 이어집니다. 바로 ‘커뮤니티 매니저’라고 불리는 사람들이죠.  이들은 때론 공간을 넘나들며 다양한 활동과 문화를 만들어나가며, 커뮤니티 회복과 활성화, 사회적 가치 창출 등을 지향하기도 합니다.물론 각 공간/직무 등에 따라 이들에 관한 호칭은 다양합니다. 하지만 광범위하게 자주 쓰이는 것은 아무래도 ‘커뮤니티 매니저’인 듯합니다. (과연 그 단어가 적절한지 혹은 더 멋진 새로운 단어는 없을지에 대한 고민은 일단 차치하고) 그 낯설고 생소한 이름으로 활동하는 사람들이 ‘커뮤니티 공간’의 양적 확대와 더불어 많아지고 있습니다.    그런데 '커뮤니티 매니저'가 뭐하는 사람이죠?체인지메이커들을 위한 공유주택 '디웰하우스'에도 운영와 커뮤니티를 담당하는 '커뮤니티 매니저'가 있다.  ⓒ 루트임팩트‘커뮤니티 매니저’의 정확한 뜻은 무엇일까요? ‘커뮤니티 매니저’라고 하는 사람들은 구체적으로 무엇을 하고, 어떤 공통적인 특성을 가질까요? 실제로 얼마나 많은 ‘커뮤니티 매니저’들이 어떻게 일하고 있을까요? ‘커뮤니티 공간’과 ‘커뮤니티 매니저’는 또 어떤 관계가 있는 걸까요? 로모는 이제부터 ‘커뮤니티 매니저’와 관련된 여러 다양한 질문들을 던져보려 합니다. 그리고 그 질문의 답을 찾는 여정을 여러분과 함께 시작해보려고 합니다.왜 로모는 ‘커뮤니티 매니저’를 화두로 꺼냈을까요?       최근 연재를 시작한 <처음 만나는 커뮤니티 공간 디자인>에 이어, ‘커뮤니티 매니저’에 관한 이야기를 꺼낸 데에는 이유가 있습니다.그저 하나의 공간(a place)이 아니라 의미를 가진 공간(the place)이 되기 위해서는 다양한 요소들이 필요하다. ⓒ Tim Mossholder on Unsplash물리적 공간뿐만 아니라 그 공간의 정체성과 문화를 만들어가는 ‘사람’에 대한 이야기가 동시에 함께 이루어져야, 새롭게 조성되는 공간이 그저 하나의 공간이 아니라 다양한 사람들과 여러 비물질적인 가치들이 ‘공존’하는 유기적인 공간으로 기능할 수 있기 때문이죠.어쩌면 너무도 당연한 말로 들릴지 모르겠네요. 하지만 로모의 팀원들이 그동안 여러 지역에 수십 개의 커뮤니티 공간들이 조성/운영되는 과정에 직/간접적으로 참여해온 경험을 돌이켜보면, 꼭 그렇지만은 않습니다. 대부분 기획과 조성의 단계 이후 '운영'의 차원으로까지는 논의가 밀도 있게 이어지지 못합니다. 또한 운영주체와 인력의 문제 역시 '인건비 부담' 등을 이유로 크게 축소되어버리기 쉽고, 그나마 배치된 각 공간의 매니저들이 무엇을 어떻게 해야 하는가에 대한 이야기는 제대로 다루어지지 못한 채 "각자 알아서 눈치껏"의 수준에 머물고 맙니다. 실제로 로모의 팀원들이 지난 몇 년간 '커뮤니티 매니저'로 경험했던 현장도 크게 다르지 않습니다. '커뮤니티 매니저'의 정의와 역할은 불분명한 채, 아니 그보다도 "커뮤니티 매니저가 도대체 뭐길래?"라는 질문이 제대로 던져지거나 다뤄지지 못한 채, 일단 '커뮤니티 매니저'라는 이름으로 역할이 주어졌고 잘 수행해야 했습니다.  그렇다면 결국 의지할 곳은 현장뿐입니다. 맨 땅에 헤딩하듯이 때론 조심스럽게, 때론 과감하게 다양한 시도를 이어나가며 끊임없이 데이터를 축적해나갔고, 그 과정에서 소위 '커뮤니티 매니저'에 관한 우리만의 그림을 그려나갈 수밖에 없었습니다. 문제는 수많은 '커뮤니티 매니저'들이 유사한 상황에 처해있거나, 그럴 것이라 추측된다는 것입니다. 관련된 체계적인 교육이나 활용할 수 있는 자원, 서로의 경험과 노하우를 나눌 수 있는 네트워크도 부족하니까요. 결국 공간 운영의 경험과 노하우는 공유되거나 축적되지 못한 채, 커뮤니티 공간이 늘어나면 늘어날수록, 각 공간에서 다시금 '0'에서부터 시작하듯 고군분투하는 매니저들이 늘어날 뿐이죠.  결국은 ‘커뮤니티 공간의 질을 어떻게 높일까?’의 문제   그렇다면 '커뮤니티 매니저'가 해답이 될 수 있을까요?모든 문제를 손쉽게 해결할 수 있는 해답은 존재하지 않습니다. 단순한 결론은 때론 효과적일 수 있지만, 때론 중요한 맥락을 가려버리기도 합니다.‘커뮤니티 공간’이 잘 운영되기 위해서도, 다양한 요소들이 필요합니다. ‘하드웨어(hardware)’, ‘소프트웨어(software)’, ‘휴먼웨어(humanware)’, 이 세 가지 요소들이 각자 제 역할을 다 하며, 조화를 이루는 게 필수적입니다. (이 부분은 로모의 또 다른 브런치 매거진 <처음 만나는 커뮤니티 공간 디자인>에서 좀 더 자세히 전할 예정입니다.)그리고 그중 '휴먼웨어'가 꼭 ‘커뮤니티 매니저’에만 국한된 것도 아닙니다. 수많은 이용자들, 공간문화를 만들어나가는데 적극적으로 동참하는 소위 '단골'들, 유관된 다양한 협력 주체 및 기관들, 이들 모두가 공간의 질을 높이는 데 일정한 역할과 책임, 영향력을 행사합니다. 그래서 커뮤니티 공간은 특정 주체에 지나치게 의존하기보단, 커뮤니티 공간을 제대로 이해하는 다양한 주체들의 활동력과 네트워크에 기반하였을 경우보다 지속 가능할 수 있습니다. 다만 그럼에도 중요하고 분명한 사실은 현장에서 '커뮤니티 매니저'들이 '휴먼웨어'의 핵심을 차지하며, 공간의 '하드웨어'와 '소프트웨어'에도 강한 영향을 미친다는 점입니다. "설계자, 시공자, 운영자가 명확히 구분됐던 과거와 달리 최근에는 설계자, 시공자, 운영자의 간극이 좁아지는 사례가 증가하고 있다. 공간의 성패는 어쩌면 설계자보다 운영자가 쥐고 있는지도 모른다. 운영자의 취향과 캐릭터가 고스란히 반영된 공간을 조성하고 그 공간을 완성시키는 다양한 운영전략을 갖출 때 비로소 건축설계가 완성된다고 볼 수 있다" - 윤주원, 김주원, 김수정 공저 (건축도시공간연구소),  7쪽 中그래서 '커뮤니티 매니저'의 정의와 역할, 필수적인 역량이 무엇인지에 대한 문제들은 "각자 알아서 눈치껏"의 차원을 넘어서서, "커뮤니티 공간의 질을 어떻게 높일 수 있을까?"라는 질문 아래 구체화될 필요가 있습니다. 새로운 직업(군)으로서 커뮤니티 매니저  로모는 이제부터 새로운 직업(군)으로서 커뮤니티 매니저를 바라보고, 그에 대한 이야기를 본격적으로 꺼내보려 합니다. 커뮤니티 공간 안팎에서 벌어지는 A to Z를 발로 뛰며 해결하는 '커뮤니티 매니저'들을 하나의 직업군으로서 접근해야, 각 현장에서 개인들이 부딪히는 문제들과 그를 풀기 위한 각종 시행착오들이 흩어지지 않고 의미 있는 경험 자원으로 재해석될 수 있고, 각 공간 혹은 기관의 장벽을 넘어서서 우리 삶 속의 커뮤니티 공간의 질을 높이는 데 필요한 공유재가 될 수 있습니다. <커뮤니티 매니저가 뭐길래>, 앞으로의 이야기 로모의 새로운 프로젝트 <커뮤니티 매니저가 뭐길래>는 앞으로 구체적으로 이렇게 진행될 예정입니다. 먼저, 현재 일하고 있는 커뮤니티 매니저들의 현장성 있는 이야기들을 수집하고 기록할 것입니다. 여러 이야기 조각들을 짜 맞추어보면, "도대체 커뮤니티 매니저가 뭐길래?"라는 질문에 대한 윤곽이 나오겠죠. 그와 함께 현장의 실무자들이 주요하게 마주치는, 다르게 말하면 앞으로 풀어나가야 하는 구체적인 이슈들도 추려볼 수 있을 겁니다. 각자의 이야기가 모여, 함께 나눌 수 있는 서사가 되는 것이 기본이자 핵심이다 ⓒ Headway on Unsplash이야기들을 모은 다음에는, 이제 제대로 된 판을 만들어볼 차례입니다. 다양한 제안과 대안을 생산해내기 위한 담론장을 열어나갈 예정입니다. 커뮤니티 매니저들을 심층 인터뷰하며 발견한 주요 이슈들을 중심으로, 더 많은 커뮤니티 매니저들과 함께, 혹은 굳이 커뮤니티 매니저가 아니더라도 커뮤니티 공간 운영과 이번 프로젝트에 공감하는 사람들이 모두 모여 상상하고, 제안하고, 토론하는 자리도 열어보려 합니다. 그렇게 얼마간 함께 이야기를 하다 보면, 우리는 어쩌면 함께 발견할 수 있을지도 모릅니다. "커뮤니티 매니저가 뭐길래?"라는 질문의 끝에는, '커뮤니티 매니저'라는 애매모호하고 한정된 언어의 틀을 넘어서서, 우리의 고민들과 방향성을 더 적절히 담은, 더 멋지고 새로운 언어를 말이죠. 언어의 힘은 크니까요. 그 발견의 여정을 이제 시작합니다!  이번 편에서는 매거진 <커뮤니티 매니저가 뭐길래>를 왜 시작했는가에 대한 이야기를 중심으로 솔직하게 풀어보았습니다. 앞으로는 커뮤니티 매니저들의 인터뷰 내용을 바탕으로, 좀 더 구체적인 이야기들을 전할 예정입니다. 다음 편을 기대해주세요 :) 커뮤니티 매니저 심층 인터뷰에 참여해주세요! 서울에서 활동하고 있는 '커뮤니티 매니저'들의 이야기와 생각을 수집하고 있습니다.   인터뷰를 희망하시거나, 주변에 관련 일을 하고 있는 사람이 있다면, 아래 링크를 클릭해주세요! http://bit.ly/whoisacommunitymanagerBY 나무  CCO & Co-Founder다양한 삶의 방식과 공존 사례를 연구하고, 실험합니다. 루시드폴의 노랫말을 좋아합니다.   #로모 #기업문화 #조직문화 #사내문화 #기업소개

기업문화 엿볼 때, 더팀스

로그인

/