제공 :
한빛 네트워크저자 : Matt Makai
역자 : 류재섭
원문 :
Driving demand for full-stack developers소프트웨어 산업에서 유행어는 신속하고 빈번하게 생기고 사라진다. "growth hacker", "sales engineer" , "rockstar developer" 와 같은 애매한 용어들은 사람들이 그것들을 좋은 것이라고 말하고 있는 착각이라고 빠지게 하고 있다. 그러나 종종 새로운 용어들은 소프트웨어 개발 산업에서 변화들 때문에 수요로 인하여 프로그래밍 기술과 연관되어 생겨난다.
2013년 검색용어인 "풀스택 개발자(full stack developer)"는 구글 트랜드에서 유행했고 수많은 기술 스타트업 구인 공고 안에서 나타나기 시작했다. 이런 경우에 따라 개발자로 하여금 풀스택 개발자로써 배우고 검증하도록 하는 몇몇의 실제 트렌드가 있다.
풀스택 개발자(full stack developer) 용어의 사용은 소프트웨어 개발 안에서 몇몇의 큰 동향을 가져왔다. 첫 번째 오픈소스 프로젝트의 높은 성숙도는 그 어느 때보다 코드 재사용을 높였다. 웹API의 확산은 개발자가 적은 비용으로 의미 있는 기능을 개발 가능하도록 해주었다. 세 번째, 인프라스트럭쳐로서의 코드와 즉시 사용 할 수 있는 서버들은 이전에 개발자가 특정 운영팀에 요구했어야 했던 업무를 수행 할 수 있게 되었다.
풀스택 개발자가 트렌드가 된 이유를 자세히 살펴보고, 이 용어에 대해 정의하면서 시장의 수요가 풀스택 개발자에게 무엇을 원하는지 살펴보자.
오픈소스 프로젝트의 성숙주요 오픈소스 프로젝트 문서들의 품질이 높아짐에 따라 프로젝트들과 함께 개발자들은 이전보다 좀 더 효율적이게 되었다. 명확한 문서들과 튜토리얼들이 오픈소스 채택을 가져왔고 높은 품질의 문서를 유지하고 지속적인 생산을 할 수 있는 긍정적인 피드백의 순환을 만들었다. 예를 들어 파이썬의 Django 프로젝트는 문서 기여에 높은 가치를 두고 있다. 프로젝트는 버전화 된 릴리즈로 빌드할 때마다 그것의 문서를 지속적으로 추가되고 확장한다.
10~15년 전 오픈소스 프로젝트에서 문서화는 코드가 작성 된 뒤 뒤늦게 작성하는 것이었던 일반적인 관습과 달리 프로젝트 코드의 기본이 되고 기여자를 통해 활발하게 현행화되고 있다. 프로젝트 소스코드와 관련된 문서는 또한 GitHub에 clone off 할 수 있고 웹 브라우져를 통하여 참고문서를 볼 수 있게 미리 가능하다. 문서 속에 오픈소스 프로젝트의 성숙도와 접근성은 백엔드의 라이브러리 코드 뿐만 아니라 설계에도 향상을 가져왔다.
애플리케이션에 사용자 인터페이스를 만드는 것은 프레임워크와 애플리케이션 설계에 대해 애플리케이션 설계에 대해 잘 모르는 사람들에게 설명하기 위한 자료들 때문에 과거보다 오늘날 더 쉬워졌다. 무료이며 싼 템플릿이 조합된 Bootstrap과 Foundation 같은 프론트 엔드 프레임워크는 훌륭한 사용자 인터페이스 한 예이다.
오픈소스 프로젝트의 성숙도는 소프트웨어 프로젝트의 초기 이터레이션의 완성의 어려움을 줄여준다. 개발자들은 그들 소유의 커스터 마이징된 코드와 함께 재사용 할 수 있는 코드 라이브러리 조합을 통해서 어려움을 줄이는 효과를 가진다.
웹 API의 확산웹 API의 확산 또한 트렌드에 기여했다. 몇 년 전까지만 해도 개발자들은 PayPal 외적의 결제 프로세스를 통합하는 데에만 몇 일에서 몇 주까지 소요되기도 했다. 오늘날 STripe나 Balanced와 같은 회사들은 여러 범위에 걸친 프로그램 언어를 통해 오픈소스 예제나 단계별로 차례차례 해볼 수 있는 튜토리얼들을 통해 API를 제공한다.
API는 또한 이전에 불가능했던 것들을 간단한 코드 몇 줄로 작성하게 만든다. 10년 전 문자를 보내거나 음성전화를 하는 것은 소수의 사람들만 알고 있는 통신 프로토콜과 불분명한 각 통신사들의 동작에 대한 통합하는 지식을 알고 있어야 구현 가능했다. 오늘날 Twilio에서 모든 개발자들이 신용카드를 가입하고, 핸드폰 번호를 사고 몇 분 후에 메세지를 보내는 것이 가능하다. 풀스택 개발자들은 어떻게 발견하고 이 API를 통해 몇 주, 몇 달, 심지어 몇 년이 걸렸던 기능을 통합하는지 알고 있다.
코드로써 기반클라우드 환경 기반에 배포는 10년 전에 존재하지 않은 오늘날 특히 중요한 가능성이다. 하지만, AWS(Amazon Web Service)나 다른 비슷한 클라우드 환경들이 가능해진 이후로도 풀스택 개발에 대한 사고방식이 나타나기까지에는 시간이 좀 걸렸다.
놓친 부분들은 오늘날 개발자들이 Puppet, Chef, Ansible와 같은 우수한 설정관리 소프트웨어와 Paas를 발달시키면서 가능해졌다. 특별히 Ansible은 낮은 장애 요소와 그것의 쉬운 학습 때문에 새로운 프로그래머 청중을 위한 배포가 시작되었다. Puppet과 Chef는 코드로써 기반 프로젝트로 놀랄 만큼 우수하다. 그러나 그것들은 애플리케이션 개발자들 보다는 운영과 시스템 관리나 운영 요소를 함께 하는 기술자에게 적용되었다. 이러한 설정 관리 툴들에 대한 요구가 있었는데 그 중 단순함은 신속한 처음 통합 배포를 하는 것을 찾는 것은 소프트웨어 개발자에게 중요했다.
시스템 관리자와 운영 전문가들은 회사 내에서 여전히 지속 관리가 필요하다. 그러나 그들에 첫 번째 운영 애플리케이션 이후로 출발한 가치는 소프트웨어의 첫 번째 통합 때 더 성공적으로 입증된다.
무엇이 풀스택 개발자인지에 대해 명백한 생각을 가져보자.
코드로써의 기반 웹 API의 확산, 오픈소스의 성숙도에 대한 넓은 소프트웨어 산업의 경향은 풀스택 개발자에 대한 요구를 만들고 있다. 그러나 무엇이 풀스택 개발자인가?
풀스택 개발자는 모든 범위에 특정한 소프트웨어 생태계에서 즉시 일 할 수 있는 경력에 초점이 맞춰있는 소프트웨어 개발자를 말한다. 풀스택 개발자가 되는 것은 소프트웨어 개발 경력에 어느 어떠한 접근처럼 부산물이 따라온다.
풀스택 개발자들은 소프트웨어 계층에서의 이미 알고 있는 지식들을 더 깊게 알려고 하는 것보다 모르는 지식들을 알아내려 하고 그러한 약점을 약화시키려고 한다. 예를 들어 데이터베이스를 주된 업무로 하는 개발자는 CSS, HTML 그리고 잘 만들어진 웹페이지 디자인 같은 프론트 엔드 쪽에 그들의 학습의 주요시간을 소비한다.
풀스택 개발자가 그들의 시간을 어떻게 쓰는가에 대한 정의
-
어떻게 새로운 프로젝트를 더 효율적으로 빌드 할 것인지 결정하기 위해서 새로운 오픈소스 라이브러리와 웹 API를 평가한다.
-
유지보수를 통한 이해로부터 전체 소프트웨어 흐름을 배우는 것을 찾기 위해 프로젝트를 개발과 배포를 한다.
-
특정 영역 안에서 문제가 너무 깊을 때 특별한 개발자에 대한 지식에 대해서 의지한다.
풀스택에 대한 시장에 수요가 상승한다
소프트웨어 개발자들은 끓임 없이 새로운 도구에 학습과 그들의 도구에서 존재하는 기술에 더 깊은 이해 사이에서 적정성을 검토한다. 지식의 심화 또는 넒은 지식 사이의 선택은 소프트웨어 개발 구인 시장에서 요구하는 정해진 기술에 영향을 받는다.
특별히 기술 스타업에서는 단지 애플리케이션의 수평적인 부분보다는 더 많은 것을 다룰 수 있는 개발자를 찾는다. "나는 백엔드 개발만 해. 나는 프론트엔드 코딩을 할 수 없어"와 같은 언급은 대기업의 IT 시장에서는 용인될지도 모른다. 어디서 수입이 발생될 것인지 모르는 환경에서 이런 코멘트들은 지지되지 못한다. 첫 번째 출시물에 대한 출시는 매우 중요한 목표이다. 심지어 그것은 개발자가 다른 영역에 부분에 대해 일하기 위해 그들에 안락을 멈춰야 하는 것을 의미하기도 한다.
많은 소프트웨어 영역에서 개발자에게 기술 스타트업에서 요구는 명확히 증가하는 "풀스택 Python/Ruby/otherlang 개발자" 구인 글에 의존된다. 풀스택(full stack) 용어는 요즘 스타트업 회사들이 소프트웨어 스택의 다양한 계층에서 최대한 많은 경험을 가진 개발자를 구할 때 쓰는 제일 명확한 표현이다. 어떤 영역에서 투입 가능하고 즉시 참여 하는 것에 대한 마인드는 애플리케이션을 생성하고, 배포하고, 출시하는데 매우 중요하다. .
기술 스타트업 기업에서 일하거나 창업하고 싶어하는 개발자들은 잘 모르는 계층에 대해 고심하거나 그들이 어떤 소프트웨어 스택 계층에서도 잘 할 수 있다는 것을 보여주는 포트폴리오 만듬으로써 좋은 대우를 받는다.