"문화는 혼자가 아닌 모두가 만들어가는 거라 생각해요.
그래서 새로운 사람이 올 때마다 함께 문화에 대해 이야기하고 개선해야 합니다."
주요 기술
- 프론트엔드: Node.js, 장고
- 백엔드: 대부분은 파이썬, 약간의 C++와 자바
- 인프라: AWS 및 사내 인프라
- 안드로이드: 자바
- iOS: Objective-C, 스위프트
- 데이터베이스: MySQL, MongoDB
- 게임 엔진: 코코스2d, 언리얼, 유니티
특징적 문화
- 닉네임 문화: 이름 대신 닉네임을 사용합니다.
- 파티션 없는 회사: 자유로운 분위기를 추구합니다.
- 사내 인프라: 사내에 별도 인프라를 두고 있습니다.
Q 박준철 CTO는……
자유로운 분위기와 토론하는 문화를 좋아합니다. 항상 다양한 시도를 통해 시장에 가장 적합한 기술을 찾으며 변화를 두려워하지 않는, 그런 사람입니다.
Q 어떤 기술을 사용하나요?
초기에는 앱 서비스가 전부였어요. 그래서 안드로이드는 자바를, iOS는 Objective-C를 사용했죠. 생산성이 중요했기 때문에 백엔드 서버는 파이썬을 사용했습니다.
파이썬은 생산성이 높은 언어 중 하나입니다.
지금은 함께 일하는 분들도 점점 늘고 시장이 고도화된 만큼 다양한 라이브러리와 프레임워크를 사용하고 있어요. 게임을 개발할 때도 코코스2d, 유니티, 언리얼 엔진을 모두 사용하고 있습니다.
백엔드 쪽도 이제 Node.js를 많이 사용합니다. 트랜스코딩 서버나 일부 게임에서는 정말 필요한 경우 C++/자바 기반 서버도 사용하고 있습니다.
기술 선택에 정답은 없는 것 같아요. 시장에 적합한 기술인지 판단하는 게 더 중요합니다. 몬스터 슈퍼리그 게임 서버는 상대적으로 느리다고 생각하는 파이썬으로 개발했는데 지금도 잘 동작합니다.
파이썬으로도 충분히 게임 서버를 만들 수 있군요!(발표자료 : http://bit.ly/2JpvWbW)
Q 어떤 문화가 있나요?
콘텐츠를 만드는 회사 특징상 개발자 외에도 많은 분야의 사람이 올 수밖에 없었어요. 그래서 이를 고려한 문화와 프로세스가 필요했죠. 개발자에게만 익숙한 것은 도입하기 어려웠어요.
가장 처음에는 이름과 직급 대신 닉네임을 사용하는 문화를 만들었어요. 직급이 없어 자유로운 느낌을 주었고, 닉네임은 딱딱하지 않은 분위기를 만드는 데 큰 역할을 했죠.
많은 사람이 닉네임을 정하기가 너무 힘들어해 대신 작명해주는 분까지 있다고……
그 외에도 다양한 것을 시도했어요. 여러 글을 읽어보고 괜찮다는 것을 시도해봤죠. 예를 들어 파티션이 있으면 항상 파티션 너머를 의식하고 부담스러운 기분이 들지만, 처음부터 파티션이 없으면 신경 쓰지 않게 돼요. 그래서 파티션을 없앴고, 대신 큰 책상을 들여와 간격을 넓혔죠. 업무 시간에 무슨 일을 하든 아무도 간섭하지 않기 때문에 함께 일하는 분들도 잘 적응하고 있어요.
Q 개발 프로세스는 어떻게 발전했나요?
초기에는 서로에게 ‘모르는 부분은 사소한 것이라도 대답해주자’라는 규칙을 정했어요. 문제가 발생했을 때는 검색을 하는 것도 좋지만 서로에게 물어보고 대답함으로써 힘이 된 것도 있어요.
때로는 대답을 바라지 않고 물어본 적도 많아요. 테디베어 효과(Teddy Bear Effect)라고도 하는데, 듣는 사람이 아무런 대답을 하지 않아도 마치 답을 준 것과 같은 효과를 내는 거죠. 스스로가 문제를 설명하면서 되돌아보게 되고 답을 찾은 적도 많거든요. 그래서 지나가던 팀원을 붙잡고 설명한 적도 많았어요.
이후 사람이 늘면서 많은 것을 시도했죠. 하지만 개발에 참여하는 모두가 개발자는 아니었으니 복잡한 것은 최대한 배제했어요. 애자일의 경우도 애자일 회고, 스프린트 등 모두가 이해할 수 있는 프로세스만 도입했죠.
회사가 안정화된 후에는 개발팀에서 코드 리뷰도 시작했어요. 하지만 전반적인 코드베이스를 모르는 상태에서 하는 리뷰는 큰 의미가 없기 때문에 모든 코드에 대해 진행하지는 않아요.
Q 개발자가 아닌 모두를 포용하기 위한 서비스가 있을까요?
처음에는 대표님이 PHP로 만든 이슈 관리 시스템을 사용해서 이슈를 등록하고 관리했어요. 꽤 오래 전에 만든 시스템인데 이슈 관리 서비스에 있을 법한 기능은 모두 있었죠.
하지만 유지보수가 어려웠고 필요한 기능도 많아지다 보니 레드마인을 도입하게 됐어요. 그런데 이 역시 오래 가진 못했어요. 레드마인은 루비 기반인데, 루비를 아는 개발자가 거의 없어 커스터마이징하기 어려웠고 디자인도 그리 좋은 편이 아니었어요.
프로젝트나 이슈 관리 서비스는 프로젝트의 흐름과 맞아야 해요. 예를 들어 앱이나 게임 쪽은 주기적인 업데이트가 필수인 만큼 스프린트 구성과 잘 어울리지만, 콘텐츠 제작이나 서버 쪽은 스프린트 구성이 어렵거든요. 그래서 팀이나 업무 흐름에 따라 사용하는 서비스가 다양해지기 시작했어요. 예를 들어 게임 개발팀에서는 칸반 보드에 최적화된 Taiga(https://taiga.io/)를 사용했죠.
기능을 백로그에 정리하고 우선순위에 따라 처리하는 환경에 적합한 Taiga
이렇게 프로젝트 관리 서비스가 다양해지다 보니 통합이 필요했고, 고민 끝에 지라(JIRA)를 선택했습니다. 클라우드 기반은 너무 느려서 사내 인프라에 설치해 사용하고 있죠.
지라는 다른 프로젝트 관리 서비스와 다르게 다양한 업무 흐름에 맞춘 프로젝트 보드를 만들 수 있다는 장점이 있어요. 하지만 사용하기 어렵고 복잡해서 작은 규모에서는 적합하지 않습니다.
다행히 지라를 잘 알고 있는 분이 각 팀의 업무 흐름에 맞춰 프로젝트 보드를 만드는 법과 사용법을 가르쳐 줬어요. 그래서 아직까지 잘 사용하고 있습니다.
Q 라인 메신저를 쓴다는 소문이 있어요
저희는 직접 만들어서 쓰는 걸 좋아해요. 커뮤니케이션 용도로는 라인(LINE)을 사용하는데, 라인이 지원하는 봇 기능 때문이었어요. 슬랙이 제공하는 많은 기능(멘션, 알람 등)을 직접 만들어서 사용했죠. 예쁜 스티커도 있고요.
그 후 일부 기능을 사용할 수 없게 정책이 바뀌면서 슬랙을 사용하기 시작했어요. 하지만 슬랙은 개발팀이 주로 사용하는 편이고, 전사적으로는 여전히 라인을 사용합니다.
네! 그 라인 맞습니다.
문서 관리는 구글 문서를 사용하는데 문서가 많아질수록 관리하기 힘들어졌어요. 그래서 문서들의 인덱스를 위키로 관리하고 있죠. 개발팀에서 사용하는 설치 스크립트, 명령어, 아키텍처 문서도 위키로 관리합니다.
그 외에도 개발팀에서 모두의 편의를 위한 장치들을 만들었어요. 시트에 휴가를 적으면 캘린더에 등록되거나 하는 것 말이죠.
최근에는 채용 업무 부담을 줄이기 위해 워커블(Workable, https://www.workable.com/)을 도입했습니다. 사람을 채용할 때 필요한 정보를 제공하고, 평가를 도와주는 서비스 덕분에 업무 부하가 크게 줄었죠.
워커블은 지원자에게 필요한 정보를 주고 평가할 수 있는 온라인 플랫폼을 제공합니다.
Q 개발팀은 어떤 서비스를 사용하나요?
처음에는 젠킨스로 지속적 통합을 관리했어요. 하지만 레드마인처럼 사용하기 힘든 부분 이 많아서 트레비스 CI(Travis CI)와 서클 CI(Circle CI) 중 하나를 도입하기로 했죠. 당시 트레비스 CI는 특정 버전에서 생기는 문제로 쓰기 어려워서 결국 서클 CI를 선택했습니다. 파이썬 코드는 항상 테스트 커버리지가 80% 이상 나오도록 하고 있어요. 테스트를 통과하지 못하면 배포할 수 없죠.
서클 CI는 트레비스 CI처럼 지속적 통합을 제공합니다.
모바일과 웹은 같은 서비스라도 플랫폼마다 조금씩 다르기 때문에 많은 고민이 필요해요. 화면은 디자이너와 개발자 사이의 커뮤니케이션 착오가 생기기 쉽거든요. 그래서 제플린을 도입했죠.
제플린을 사용하면 원하는 부분을 정확하게 이야기할 수 있고 내용을 기록할 수 있습니다.
그 외에도 문제가 발생했을 때 이슈를 추적할 수 있는 장치를 만들었어요. 모든 로그에는 공통 규칙을 가진 ID를 넣고 있는데, 보통은 플랫폼 정보나 이벤트 정보를 저장합니다. 이 정보를 데이터베이스에 저장하고 문제가 생길 때마다 유용하게 사용하고 있습니다.
Q 마지막으로 하고 싶은 말이 있다면
문화는 혼자가 아닌 모두가 만들어가는 거라 생각해요. 그래서 새로운 사람이 올 때마다 함께 문화에 관해 이야기하고 개선해야 합니다. 이렇게 만들어진 문화는 우리가 함께 할 사람, 우리가 사용하는 서비스, 우리가 만드는 제품을 결정하는 데 하나의 기준이 되거든요.
물론 처음부터 원하는 전부를 하기에는 어려울 수 있어요. 당장은 돈을 벌기 급급할 수도 있죠. 무엇부터 시작할지 감이 잡히지 않는다면 전 직장에서의 경험을 살려보는 것도 좋은 방법이라고 생각해요.
문화가 없는 회사라면 신념이 없기 때문에 겉으로는 그럴듯해도 결국에는 빈 껍데기만 남게 됩니다.
이 글은 이기곤 저자의 『모던 스타트업: 팀 생산성을 높여주는 21가지 도구와 서비스』에 수록된 네 분의 스타트업 CTO 인터뷰 중 하나입니다.
"치열한 경쟁에서 앞서가려면 항상 일을 ‘덜’ 하도록 노력해야 합니다. 하지만 일을 ‘덜’ 하기란 상당히 어렵습니다. 불필요한 일과 우선순위가 낮은 일을 걸러내야 하고, 생산성 높은 환경과 프로세스를 구축해야 합니다. 특히 최소기능제품(MVP)을 빠르게 출시해야 하는 오늘날의 스타트업은 이러한 생산성의 차이가 생존을 결정짓는 중요한 경쟁력이 되기도 합니다.
다행히 우리 주변의 수많은 도구와 서비스를 잘 활용하면 조직 관리부터 마케팅까지 모든 분야에서 일을 줄일 수 있습니다. 이 책이 ‘덜’ 일하고 싶은 모든 분께 조금이나마 도움이 되길 바랍니다."
_지은이의 말 중에서
최신 콘텐츠