전통적인 기업 사무실 환경에서 일한다면 첨단 기술과는 거리가 멀 수 있고 경우에 따라 시대에 뒤처진 기술을 사용 중일 수도 있으므로 이 글이 모든 개발 조직에 해당되지는 않을 것이다. 마이크로소프트에 “어떤 툴을 구입해야 하는가?”라고 묻는다 해도 정해진 답은 없지만, 마이크로소프트조차 인정하는 현실은 현재 깃(Git)이 최고이며 세계가 갈수록 다양화되면서 단일 업체의 개발 툴 스택에 온전히 헌신하기는 어려워지고 있다는 점이다. 개발 툴의 춘추전국시대라 할 만하다.
업계 다른 사람들과 비교해서 자신의 현재 위치가 궁금하다면, 이 글이 감을 잡는데 도움이 될 것이다. 회사를 창업하면서 “다른 회사에서는 무엇을 하고 있으며 우리는 어디로 가야 하는가?”를 고민하고 있다면 그 답 역시 찾을 수 있을 것이다.
확실한 한 가지는 현대의 개발 조직은(스스로 고리타분한 조직이라 생각한다 해도) 몇 년 전과는 다르다는 점이다. 머지 않아 우리는 컨테이너/머신러닝 기반, 어쩌면 더 나가서 챗옵스(Chatops) 기반의 환경에서 일하게 될 가능성이 높다. 스크럼과 데브옵스가 생소한 개념으로 취급 받던 때가 별로 오래되지 않았음을 생각해 보자.
다음은 필자가 이야기한 사람들 대부분이 해당되는 공통점으로, 소프트웨어 개발의 현황을 있는 그대로 반영한다.
이메일은 끝. 슬랙(Slack)이 왕
슬랙처럼 빠른 시간 내에 광범위하게 확산된 툴은 역사상 없다. 물론 힙챗(HipChat)을 비롯해 슬랙과 유사한 다른 툴을 사용하는 경우도 있지만, 요즘 슬랙은 조직의 업무 방식 자체다. 많은 대화가 오가며 그 대화 내용을 검색할 수도 있다.
PCM과 CVS의 사망. 이제 깃과 깃허브의 세상
예전에는 코드 체크인이 어려웠고 잠금은 비관적이었다. 글로벌 프로젝트를 추진할 경우 대서양 횡단 케이블을 건너 체크인하려면 엄청나게 오랜 시간이 걸렸다. 체크아웃에 대해서는 말을 꺼내지도 말자.
지금은 리비전 제어가 분산된다. 깃은 과거의 툴에 비해 훨씬 더 사용하기 어렵다는 단점이 있긴 하지만 그럼에도 사실상 이 분야에서 완전히 독주하고 있다.
모두가 맥 사용
필자는 하는 수 없이 맥을 사용한다. 마음대로 해도 된다면 좀더 고성능 하드웨어에서 우분투 리눅스를 사용하고 싶다. 그러나 필자가 다니는 회사에서 구입 비용을 지급하는 컴퓨터는 맥이다. 필자만 다니는 회사만이 아니라 그런 기업들이 많다. 맥OS는 쓸데없는 프로그램이 많고 무겁지만 윈도우보다는 더 빠르고 SSH와 같은 익숙한 툴도 모두 있다. 그래도 리눅스가 그리운 것은 어쩔 수 없다.
지라(Jira)는 여전히 유효하다
지라는 오래된 툴이고 베이스캠프(BaseCamp), 오픈소스인 오픈 프로젝트(Open Project)와 같은 대안도 있다. 그러나 지라의 힘은 일단 올라탄 사람은 떠나지 않는다는 것이다. 지라는 많은 사람들에게 익숙한 툴이고 확장 기능을 위한 마켓플레이스도 있다. 폭넓게 연결되며 대부분의 다른 툴에서 지원된다.
젠킨스(Jenkins)는 여전히 현역
트래비스-CI(Travis-CI)와 같은 신흥 강자도 있고, 지라를 만든 아틀라시안(Atlassian)의 뱀부(Bamboo)도 있다. 그러나 지속적 통합을 실행하고 테스트 환경을 구축하는 데 있어서는 여전히 젠킨스가 최상위를 지키고 있다.
AWS는 모든 일의 중심
아마존 웹 서비스는 가장 경제적인 클라우드 플랫폼은 아니다. 가장 사용하기 쉬운 플랫폼도 아니다. 그러나 가장 많은 기능을 갖췄고 가장 많은 사람들이 익숙한 클라우드 플랫폼이다. 필자는 구글 컴퓨트 엔진이나 마이크로소프트 애저를 사용하는 사람들을 만나봤고 직접 프로젝트에 사용한 적도 있지만 이 분야의 기준 플랫폼은 뭐니뭐니해도 AWS다.
내부 플랫폼은 여전히 VM웨어
클라우드는 그저 꿈일 뿐인 회사 방화벽 뒤의 개발자들은 여전히 VM웨어를 사용하고 VM웨어 방식으로 일을 한다. 프로비저닝은 여전히 기다려야 하고 SAN 성능은 여전히 예측 불가다.
애자일 개발은 대부분 유사 스크럼
모두가 스크럼 류의 작업을 하지만 정확한 스크럼은 아니다. 애자일을 제대로 하고 있거나 그 “애자일”이 이름뿐인 “빈 껍데기 애자일” 또는 혼돈이 아닌, 정말 애자일임을 확언할 수 있는 사람은 극소수에 불과하다. 규율과 프로젝트 관리, 제품 관리 기술은 여전히 부족하며 그에 대한 보상도 부족하다.
지배적인 신기술은 없다
데브옵스, 도커 컨테이너, 쿠버네티스 컨테이너, 윈도우 컨테이너, 클라우드 개발 플랫폼(PaaS), 옴니디바이스 개발, 머신 러닝, 코틀린(Kotlin)이나 구글 고(Go)와 같은 새로운 언어 등 많은 첨단 기술이 있지만, 그 중에서 전 세계적인 도입 수준에 이른 기술은 (아직) 없다.
컨테이너
도커든 그 후계자로 유력시되는 쿠버네티스든 컨테이너를 아직 사용하지 않는 사람들도 많다. 첫째, 거의 항상 부하에 놓인 상태라면 AWS에서 컨테이너를 실행하는 데 따르는 오버헤드가 있다. 비용상의 혜택은 실제 자원을 공유할 수 있을 때만 실현된다.
둘째, 컨테이너를 사용하면 소프트웨어의 유지 보수성은 더 높아지지만 빌드 및 배포 프로세스가 더 느려지고 복잡해진다.
머신러닝
머신러닝(인공 지능의 부분집합)을 사용할 수 있는 부분을 찾고 머신러닝을 사용할 수 있는 형식으로 데이터를 개조하는 일은 어려운 일이다.
일부는 구입하는 제품에서 내부적으로 머신러닝을 사용하지만 그 유용성을 입증할 데이터 과학 전문 지식이 없다. 또한 전문 지식이 부족한 탓에 머신러닝의 시장 도입은 당초 예상보다 더디게 진행되고 있다.
챗옵스
챗옵스에 대한 관심이 늘고 있지만 필자가 만나본 사람 중 사용하는 사람은 아직 없다. editor@itworld.co.kr