Outsider's Dev Story

Stay Hungry. Stay Foolish. Don't Be Satisfied.

2017년 회고

벌써 2017년의 마지막 날이다...

Work

더 해보고 싶은 것도 많았지만 일하면서 많이 배운 한해였다. 1년여 동안 AWS 관리도 어느 정도 참여해서 주종은 아니지만, AWS와 인프라에 대해서 많이 고민해보고 실험도 해본 한해였다. 특히 Infrastructure as Code에 많이 꽂혀있다. 작년까지는 좀 어색하면 원격 근무도 아주 익숙해 져서 원격 근무에 대한 인상이 전보다 훨씬 좋아졌다. 나는 출퇴근이 먼 편은 아니라 한참 원격하다가 또 한참 사무실 나가다가 했는데 팀 전부가 원격근무자를 염두에 두고 일하게 되면서 대부분이 비동기로 진행되었기 때문에 사무실을 나가던 안 나가던 큰 차이가 없었다. 전에는 책만 읽으면서 상상만 했는데 올해는 실제로 원격 근무를 하면서 장단점에 대해서도 경험하게 되었고 컨퍼런스 콜 등 원격으로 팀이 일하는 방식에 대해 실험을 많이 해보았다.

무엇보다 팀으로 일하는 것을 제대로 느낀 한해라고 생각한다. 전에도 항상 팀에 소속되어 있었지만, 프로젝트는 거의 혼자 하거나 아주 소규모로만 진행을 해야 했지만 올해는 꽤 다수가 같이 팀 빌딩을 하고 협업을 하기 위해서 좋은 방법을 논의하고 실험해봤다가 안 되면 다시 바꾸고 하는 식으로 협업을 했다. 신뢰할 수 있는 팀과 일한다는 것이 얼마나 재미있는지 실패에 대해 두려움 없이 얼마나 시도해 볼 수 있는지 많이 경험했기에 앞으로도 이런 쪽에 더 관심을 두게 될 것 같다.

어쨌든 소셜네트워크에도 올렸듯이 한 해를 보내고 퇴사를 하게 되어 현재는 무직 상태로 있다. 아직 이제 어떤 일을, 어디서 할지 고민 중에 좀 더 지내야 나도 생각이 정리되고 방향을 잡을 것 같다. 지금은 그냥 사람들이 불러주면 가서 얘기 듣고 내가 어떤 부분에 흥미를 느끼는지 고민하는 상황이다.

Coding

회사 GitHub 그래프

위는 회사 GitHub 계정의 그래프이다. 커밋만 기록되는 건 아니지만 꽉꽉 찬 그래프를 보니 기분이 좋다.

GitHub 그래프

위는 내 GitHub 그래프인데 스스로 만족스러운 정도는 아니지만 그래도 작년보다는 많이 했다. 전반기 동안 만들고 싶은 사이드 프로젝트 아이디어가 없어서 고민을 많이 했는데 후반기 들어서는 만들고 싶은게 많아져서 그래도 사이드 프로젝트를 하는 리듬이 좀 돌아온 느낌이다. 아직 코딩보다 공부에 더 많은 시간을 들이는 것 같지만... 후반기에 시작한 몇 개의 사이드 프로젝트를 하나도 완성하지 못했다. 내년에는 이것들은 다 만들어서 공개를 하는 게 목적이다.(공개 후 결과가 어떻든지 상관없이...) 오픈소스는 제대로 해야지 하면서도 항상 못하는데 내년에는 사이드 프로젝트에 오픈소스에 좀 더 참여할 수 있으면 좋겠다 싶다.

코딩도 언젠가부터 기존에 해오던 관성만으로 하는 것 같아서 매너리즘에 빠졌나 하는 걱정을 좀 하고 있다. 거의 컴퓨터 앞에 앉아있지만 뭔가 자극이나 전환점이 조금 더 필요하다고 생각하고 있다. 내년에는 그 부분에 대한 고민을 해결하는 게 주 관심사가 아닐까 싶다.

주말에 모여서 코딩하고 저녁에 만나서 기술 얘기나 프로젝트 아이디어 공유하고 하던 사람들이 결혼이나 육아로 점점 줄어들어서 이젠 같이할 사람이 정말 없어졌다. 어쨌든 나와 살게 되면서 집에 코딩 환경을 아주 잘 갖춰놨기 때문에 그동안은 항상 카페에서 코딩했지만 요즘은 카페에 안 가고 거의 집에만 있다. 막상 집에 있으니 카페에 있을 때랑 많은 부분이 달라서 적응 중이고 효율적이지 않은 부분이 있는데(자꾸 집안일을 하게 되는...) 좀 더 적응하면 괜찮아 질 것 같다. 덕분에 내 코딩 + 생활방식이 내년에는 크게 달라져서 히키코모리로 살게 되지 않을까 싶다.

내 코딩 팩토리

내가 대부분 시간을 보내야 하는 곳이라 시간과 돈을 들여 만족스럽게 꾸며놓은 내 코딩 팩토리(?!). ㅎㅎ

Study

한창 공부를 많이 못 했는데 그래도 올해는 다시 공부를 다시 하기 시작했다. 아무래도 최근 관심사가 있어서 인프라 관련해서 공부를 많이 했다. 인프라 그룹 스터디도 참여하고 Terraform이랑 Vault를 특히 많이 보면서 클라우드에서 인프라스트럭처 구성을 많이 본 것 같다.

그래도 책은 별로 못 봐서 팀을 위한 Git, 파이썬 3에 뛰어들기, 코드로 인프라 관리하기, 바지 벗고 일하면 안 되나요? 4권 밖에 못 봤다. 생활방식을 좀 더 규칙적으로 만들어서 내년에는 다양한 분야의 책을 더 많이 봐야겠다 싶다.

Python 공부도 시작했다. 연초에 생각했던 것처럼 엄청나게 하진 못했지만 이전 글에 썼듯이 새로운 언어를 배우는 게 오랜만이라서 꽤 재미있게 보고 있다. 예전에는 조금 공부하면 바로 써먹을 수 있었지만 손에 익숙한 도구가 이미 있으니 새로운 언어를 배워도 비슷한 수준으로 숙련해야 해서 시간이 오래 걸리는 느낌이다. Python 관련 글은 몇 개 못 썼지만, 시간은 꽤 많이 투자했다. Python이 필요한 상황이 이제 없어졌지만, Flask를 새로 배우는 느낌이 좋아서 큰일이 없으면 계속 공부할 예정이다.

추가로 올 초에 보려고 했던 Golang은 거의 공부를 못했다. 공부할 기술은 계속 고민하고 있지만, JavaScript의 세계에 너무 갇혀 있어서 다른 언어를 계속 고민 중이고 그중에 가장 유력한 후보가 Golang이다. Node.js에 익숙하다 보니 Node.js로 할 수 있는 다른 언어는 배워도 써먹지 못하고 Node.js를 먼저 사용하게 되는 것 같다. 그래도 완전히 다른 쪽의 Golang이 좋지 않을까 싶고 요즘 관심 있는 인프라 관련 도구들이 다 Golang으로 되어 있어서 이쪽 소스를 볼 때도 도움이 될 거로 생각하고 있다. 내년 가봐야 알겠지만..

Blog

올해는 블로그에 글을 77개 작성했다.(이 글 포함) 100개를 목표하고 있지만 3년째 70개 정도를 쓰고 있는 거 보면 요즘 여력으로는 이 정도가 한계인가 싶다. 그래도 100개를 목표로 작성하면 최소한 더 적게 쓰는 일은 없겠지. 그래도 한해 회고를 할 때 블로그를 한 번씩 돌아보게 되는 것 같다. 블로그는 이제 하도 오래 해서 내가 개발하고 공부하는 의식 흐름에서 계속 사용하게 되는 것 같다. 딱히 더 연구하거나 하진 않고 글감을 많이 쌓여있지만, 시간이 없어서 다 못 쓰는 게 대부분이다.

월별 블로그 글 수

  1. Javascript에서 String을 Number타입으로 바꾸기 - 2009/08/19, 58,539 PV
  2. Ubuntu의 apt-get 명령어 정리 - 2009/06/23, 39,518 PV
  3. 알고 있어야 할 8가지 정규식 표현 from nettuts+ - 2009/08/14, 31,978 PV
  4. GET과 POST의 차이 - 2009/03/31, 30,380 PV
  5. Git 명령어 정리 - 2010/12/28, 29,662 PV
  6. JSON Text를 JSON Object로 변환하기 - 2008/12/21, 29,175 PV
  7. 여러 행 SELECT해서 INSERT 하기 - 2009/01/06, 21,639 PV
  8. git에서 원격저장소의 branch 가져오기 - 2011/05/13, 16,871 PV
  9. Lets' Encrypt로 무료로 HTTPS 지원하기 - 2015/12/06, 16,405 PV
  10. [Spring 레퍼런스] 26장 태스크(Task) 실행과 스케줄링 - 2014/06/30, 15,652 PV

올해 기준으로 페이지뷰가 가장 많은 글 목록이다. 작년과 거의 차이가 없다. 시간이 지나도 계속 검색해 보는 건 비슷한가보다.

  1. Ajax를 사용할 때 웹브라우저 "뒤로 가기"의 구현 - 2017/02/28, 8,049 PV
  2. 12인치 MacBook과 15인치 MacBook Pro를 사용해 본 느낌 - 2017/03/26, 7,487 PV
  3. 유닛테스트에 대한 생각 - 2017/02/25, 3,894 PV
  4. [Book] 파이썬 3에 뛰어들기 - 2017/06/12, 2,864 PV
  5. 내가 블로그에 글을 쓰는 과정 - 2017/01/31, 2,181 PV
  6. Headless Chrome의 사용방법 - 2017/05/28, 2,137 PV
  7. 나는 AMP를 좋아하지 않는다. - 2017/04/22, 2,077 PV
  8. Python 개발환경 구성 - 2017/10/08, 1,486 PV
  9. 기술 뉴스 #74 : 17-03-16 - 2017/03/17, 1,419 PV
  10. 기술 뉴스 #72 : 17-02-15 - 2017/02/15, 1,221 PV

위는 올해 올린 글 중에서 페이지 뷰가 많은 10개의 글이다.(내가 열심히 쓴 Terraform 관련 글은 하나도 없다 ㅠ)

사용자 삽입 이미지

그래도 매년 페이지뷰가 늘어나는 걸 보면 신기하긴 하다.

올 한해도 제 블로그에 방문해 주신 분들 감사드립니다.

2017/12/31 23:32 2017/12/31 23:32

[Book] 바지 벗고 일하면 안 되나요?

이 책의 목표는 두 가지다. 첫째, 구식인 내가 미래지향적 회사에서 배운 바를 공유하려고 한다. 둘째, 뛰어난 기업에서 프로젝트를 수행하는 한 팀과 그 이면의 이야기를 담아내려고 한다. 나는 오토매틱 안에서 내가 배운 것, 내가 사랑한 것, 나를 미치게 한 것들을 밥벌이에 바쁜 세상의 모든 사람과 공유할 것이다.

이 책은 블로그 플랫폼인 WordPress를 만든 Automattic의 문화에 관한 이야기이다. Automattic은 WordPress를 만든 매트 뮬렌웨그가 만든 회사로 전 직원이 원격으로 근무하는 것으로 유명하다. Automattic의 회사 규모가 커지면서 처음 팀 체제가 도입되던 시기에 스콧 버쿤이 팀장으로 합류하면서 Automattic의 문화와 관련해서 1년 동안 여러 가지를 시도하면서 그 과정을 정리한 글이다. 최근에 원격근무에 관심도 커져서 Automattic을 원격 근무를 어떻게 접근하고 협업하는지가 궁금해서 읽게 되었다.

관리라는 낱말에 따옴표를 붙인 이유는 나중에 설명하겠지만, 오토매틱은 전통적 의미에서 보자면 직원들을 전혀 관리하지 않았기 때문이다. 오토매틱은 초기에는 위계 구조가 전혀 없는 수평 조직으로, 직원들 모두가 창립자인 매트 뮬렌웨그에게 직접 업무를 보고했다. 그들은 당시 오십 명이던 직원들을 열 개 팀으로 나누고 각 팀에 팀장을 하나씩 두었다. 창업 이래 처음으로 생긴 서열이었다.

뮬렌웨그와 프로젝트 공여자들을 면담하면서 그들의 핵심 철학을 아래 세 가지로 정리했다.
- 투명성. 워드프레스 커뮤니티 안에서 논의된 내용, 결정된 사안, 내부적으로 있었던 논쟁 등을 모두 공개했고 숨기는 것이 거의 없었다. 커뮤니티 안에서 당당하게 밝히지 못할 의견이라면 누구든 확신을 하기 어렵다는 것이었다.
- 능력주의. 프로젝트에 더 많은 시간을 투자하고 더 나은 기여를 하는 사람을 존중했다. 권위는 노력한 만큼 얻는 것이지 주어지는 것이 아니었다.
- 연속성. 워드프레스가 실패한 프로젝트에서 태어났다는 사실을 뮬렌웨그는 절대 잊지 않았다. 그는 이 프로젝트가 영원히 중단되지 않기를 바랐다. 오픈소스 라이선스를 채택했다는 뜻은 설령 매트가 악당으로 돌변해 워드프레스를 파괴하려고 도모해도 또 다른 사람이 소프트웨어를 분기시켜 계속 이어나갈 수 있다는 의미였다.

두 사람은 수직적이고 관료적인 조직 체계는 물론이고, 유능한 인재들이 그 기량을 발휘하는 데 방해가 되는 모든 것을 피하고 싶어 했다.

요즘은 해외 회사 중에는 원격 근무를 하는 회사가 꽤 있지만 그런데도 오토매틱의 문화는 상당히 혁신적이라고 생각한다. 뮬렌웨그를 자세히 알지는 못하지만 오픈소스로 시작했기 때문인지 워드프레스가 만들어진 시기를 생각하면 원격 근무를 시작한 것과 회사를 운영하는 방식 모두 꽤 놀랍다. 내가 선호하는 방식이기도 한데 질서가 없는 것처럼 보이면서도 각자 자신의 일을 찾아서 필요한 일을 처리하는 오픈소스식 방식을 그대로 도입했다는 생각이 든다. 그리고 책을 읽으면서 오토매틱의 직원들이 이렇게 일하는 방식에 익숙하고 그안에서 소프트웨어를 잘 만들고 있다는 생각이 들었다.

오픈소스는 우리 세대를 움직이는 가장 강력한 사상 가운데 하나다.

회의에서 중요한 안건만 다룬다면 온라인으로 회의를 하든, 얼굴을 맞대고 하든지 상관없다.

신뢰가 중요하다는 것은 누구나 안다. 그런데도 주변에서 찾아보기 드문 것이 신뢰이기도 하다.

촘촘한 질서 대신 무질서를 허용한다.

종합 일정이라든가 총괄계획은 거의 없었고, 협업을 위해 의무적으로 따라야 하는 방법론도 없었다. 질서가 없는 것처럼 보이는데, 실제로도 그랬다. 무질서와 불확실성의 장점을 이해하고 흡족해하는 구성원들은 자유를 누리며 스스로 기회를 찾는다. 또 개발 범위가 큰 경우에는 협력자를 찾아 필요에 따라 질서를 도입하면 된다. 팀 체제로 전환한 것은 이와 같은 협업을 좀 더 장려하기 위해서였다.

오픈소스 프로젝트도 마찬가지 지겠지만 회사이므로 어떤 목표나 방향도 필요하고 더 일을 효율적으로 하기 위한 여러 가지 시도가 필요하다. 나는 지금은 원격 근무에 대한 신뢰도가 아주 높아진 상태이지만 당연히 여기에 아무런 문제가 없는 것은 아니고 그 안에서 더 잘 일하는 방법은 여러 가지로 고민을 하고 있다.

원활한 진행을 위해 오토매틱에서는 일반적으로 다음의 7가지 단계를 밟는다.
1. 문제를 선정한다. 워드프레스닷컴을 위한 요구사항 혹은 아이디어를 선정한다.
2. 출시 공고문을 작성하고 지원 페이지를 만든다. 대부분 기능은 워드프레스닷컴에서 가동 준비를 마치고 세상에 출시된다.
3. 효과를 측정할 수 있는 데이터를 선정한다. 워드프레스닷컴은 실시간 서비스이므로 사용자들의 행동을 관찰하며 배워야 한다.
4. 작업에 들어간다. 디자이너들은 디자인하고 개발자들은 프로그램을 짠다. 주기적으로 출시 공고문을 확인하면서 모든 사람에게 목표를 상기시킨다. 비전을 명확하게 그릴수록 공고문을 정확하게 작성할 수 있다.
5. 출시한다. 설정한 요구사항이 충족되었으면 신규 기능을 출시한다.
6. 배운다. 실행과 동시에 작업을 했던 사람들이 시간 단위로 데이터를 즉각 수집하고 논의한다.
7. 반복 개발한다.

뮬렌웨그는 중요하지 않은 것들은 도태시키고 성과를 우선시하는 문화를 장려하는 데 탁월했다. 그는 방대한 독서를 통해 존경받는 인사들이 어떻게 하는지 그 방법론을 연구했지만, 항상 더 단순한 대안이 있을 것이라고 믿었다.

슈나이더는 자신의 경영철학을 이렇게 기술한 바 있다.
1. 우수한 인재를 채용하라.
2. 우선순위를 올바로 설정하라.
3. 몰입을 방해하는 요소들을 제거하라.
4. (창작자들을) 발행하지 마라.

이 책은 에세이처럼 읽기 편하게 작성되어 있다. 스콧 버쿤이 회사에 입사에서 프로젝트를 진행하고 워크숍을 진행했던 과정을 일기처럼 작성되어 있다. 원격근무나 오토매틱의 문화에 대해서 자세히 설명하기보다는 스콧 버쿤이 오토매틱에 적응하고 팀과 협업하면서 고민했던 부분들, 진행했던 일들이 죽 적혀 있어서 오토매틱에서 일이 진행되는 과정을 엿보듯이 글을 읽을 수 있다. 개인적으로 원격 근무는 기존의 업무 방식보다 좋고 나쁨보다 완전히 다른 형태라는 생각을 많이 하게 되었다. 원격으로 일을 할 때 사람들과 협업하는 방식, 신뢰하는 방식, 고민의 내용 등이 완전히 다른데 원격 근무가 잘 정착된 회사에서 이런 부분을 엿볼 수 있다.

원격 근무는 단지 육체가 자유롭다는 것뿐, 원격 근무자들은 자신의 마음을 다스려야 하는 난제를 안고 있다. 더 많은 자율성이 부여된 만큼 생산성을 유지하려면 자신의 습관을 다스릴 줄 알아야 한다.

샌프란시스코로 날아간 이유 중의 하나는 원격 근무제에서는 동료들에 대해 얻을 수 있는 정보가 제한적이라는 사실 때문이었다.

그들이 프로젝트를 망치지 않아야 한다는 기본 원칙에 동의한다면 너무 많은 안전장치는 방해가 된다고 생각했다. 안전장치 대신에 직원들을 신뢰하고 서비스를 빨리 배포하도록 힘을 실어주었다.

오토매틱인들은 프로젝트가 아무리 커도 작은 단위의 연속에 지나지 않는다고 여기는 분위기였고, 나는 이 점이 마음에 들었다. 이런 태도라면 원대한 계획을 수립하는 일 자체에 지나치게 몰입하는 일이 없기 때문이다.

끝내 극복하지 못한 문제가 하나 있다. 회사 내에서 내가 어떤 위치에 있는지 가늠할 수가 없다는 것이었다. 일반적인 회사에서는 사람들이 얼마나 자주 당신을 찾는지, 또 당신이 있을 때와 없을 때 사람들이 나누는 대화 내용을 비교해 봄으로써 당신의 조직이 융화되고 있는지 감지한다. 하지만 온라인에서는 이 같은 잣대가 없다.

원격 근무제에서는 사회적 관계를 맺는 데 능동성을 발휘해야 한다. 시공간이 체계적으로 짜인 전통적인 사무실이 몸에 맞는 인재들은 원격 근무를 통해 얻는 자유를 버겁게 여기기도 한다.

P2 테마는 구조적으로 이메일과는 정반대 입장에 있다.
- 발신자가 아니라 독자가 무엇을 읽을지 선택한다.
- 독자가 얼마나 자주, 또 어떤 형태로 글을 읽을지 선택한다.
- P2는 블로그 형태를 취하기 때문에 훑어보기가 쉽고, URL로 참조하기 쉽고, 모든 직원이 언제든 접근할 수 있다. 또한 검색할 수 있고 다른 읽기 도구에서도 쉽게 열어볼 수 있다.

꽤 오래전에 추천을 받았지만 안 읽고 있다가 이번에 읽었는데 아주 재미있었다. 흥미로운 제목 만큼이나...

뮬렌웨그는 이 같은 관습을 따르지 않았고, 그런데도 성공했다. 뮬렌웨그는 이를 통해 새로운 것을 배우는 가장 좋은 방법은 자신의 신념을 실행에 옮기는 것이라는 믿음을 가지게 되었다. 그리고 이는 생각하고(너무 오래 생각해서는 안 된다), 결단하고, 경험하면서 교훈을 얻고, 또 이 과정을 반복하는 오토매틱의 기업문화로 이어졌다. 그는 몇 주씩 같은 문제를 논의하고 정교한 전략을 수립하는 데 골몰할 이유가 없다고 생각했다. 뮬렌웨그는 실험하고 데이터를 수집하고, 그리고 이 과정을 반복하는 편이 더 좋았다. 또 그는 통합적 사고에 남다른 능력이 있다. 그는 실패로 돌아갈 실험이 많을 것을 알면서도 실험은 꼭 필요하다고 생각했다.

2017/12/30 23:32 2017/12/30 23:32