수요 높은 박학다능··· 풀스택 개발자란? 되는 방법은?

InfoWorld
풀스택 개발자란 GUI 프론트엔드부터 데이터베이스 백엔드에 이르는 모든 소프트웨어 스택을 이해하는 개발자를 말한다. 그러나 이 용어가 남발됨에 따라 일부 논란이 일고 있다. 

다재다능한 ‘풀스택’ 개발자(Full-stack developer)는 많은 기업이 원하는 인재(입사 지원자)이다. 이렇듯 광범위한 지식을 갖추고 있는 사람들은 인적자원이 부족한 신생 창업 회사는 물론 복잡한 앱 환경을 관리해야 하는 대기업에 모두에서 값진 역할을 할 수 있다.

그러나 개발자들 사이에서는 이 ‘풀스택’ 개발자라는 개념에 대한 논란이 있다. 일부는 전체 소프트웨어 스택에서 동등하게 경쟁력을 갖출 수 있다는 개념 자체를 인정하지 않는다. 또 다른 일부는 직원과 고용주 모두 이 용어를 너무 많이 사용하는 바람에 의미가 없어졌다고 믿고 있다.
 
ⓒ Image Credit : Getty Images Bank


정의 : 풀스택 개발자란?
풀스택 개발자는 전체 애플리케이션 스택 이면의 기술들, 즉 현대적인 애플리케이션을 구성하는 다양한 기술 계층을 다룰 수 있는 역량을 갖고 있는 사람이다. 애플리케이션의 프론트 엔드(UI, 통상 웹사이트나 모바일 앱), 백엔드(애플리케이션에 필요한 정보가 저장된 데이터베이스와 애플리케이션을 견인하는 비즈니스 로직)에만 초점을 맞추는 개발자와 대비시키기 위해 활용되곤 했다.

‘이론적’으로 보면, 풀스택 개발자는 사용자의 브라우저에 실행되는 자바스크립트 코드, 사용자가 데이터베이스에서 원하는 정보를 가져오는 MySQL 쿼리 모두를 처리할 수 있는 역량을 갖추고 있다.

당연히 이를 위해서는 여러 기술에 정통해야 하며, 그만큼 드물다. 그래서 몇몇 사람들은 이런 사람들을 ‘유니콘(unicorn)”으로 부른다. 개발자인 앤디 쇼라는 장문의 글에서 진짜 풀스택 개발자는 존재하지 않는 '허구’라고  비판했다. 그는 누가 되었든 스택에서 특정 부분에 더 정통할 수밖에 없으며, 풀스택 개발자라는 용어는 역량 가운데 일부를 과장하도록 만든다고 주장했다.

그는 “요즘은 단 몇 시간이면 언어/프레임워크의 ‘기초’를 터득할 수 있는 경우가 많다. 그러나 여기에 문제가 있다. 이러면서 웹 개발에 대해 무언가를 단순히 알고 있는 것과 이를 ‘마스터’한 것 사이의 경계가 점점 더 흐려지고 있기 때문이다”라고 지적했다.  참고로 쇼라는 자신은 프론트 엔드 개발자라고 강조했다.

스택 전체를 '마스터’할 수 없을지라도, 애플리케이션의 모든 구성 요소에 편안하다면 가치가 있다. 스스로를 풀스택 코딩 부트캠프로 홍보하고 있는 코드업(Codeup)은 이른바 ‘현실적인’ 정의를 제공하고 있다.

“풀스택 개발자는 컴퓨터 소프트웨어 개발의 모든 계층에 친숙한 사람을 일컫는 용어이다. 모든 분야에서 전문가라는 의미는 아니다. 직무와 관련된 지식을 갖고 있고, 관련 개념을 완제품에 적용해 구현시킬 능력을 갖고 있는 사람이다. 이런 ‘구루(Guru)’ 들은 소프트웨어 빌드 과정을 더 용이하게 만든다. 위부터 아래까지 모든 것이 작동하는 원리를 이해하고 있고, 따라서 문제를 적절히 예측할 수 있기 때문이다.”

다시 말해, 애플리케이션 백엔드에 대부분의 업무 시간을 사용하고 있는 경우에도, 관련 팀과 효과적으로 협력하고, 전체 프로젝트의 큰 그림을 볼 수 있는 프론트 엔드 개발에 대한 지식을 갖추고 있는 사람이라는 의미이다. 웹 디자이너 데포(Web Designenr Depo) 또한 ‘완전한 마스터’보다는 ‘전체적’이라는 비전을 강조하고 있다. 

“풀스택 개발자는 시작부터 끝까지 제품 개발 과정을 이해하고, 최소한 이에 대한 기본 스킬을 갖고 있는 사람이다.” 

쇼라에 따르면, 인력이 부족한 신생 창업회사가 특히 이런 다재 다능한 인재 유치 및 획득에 관심을 갖는다.

‘풀스택 개발(Full-stack development)’이라는 용어가 처음 등장한 시기는 정적인 웹 페이지가 AJAX 기반의 동적 웹페이지에 자리를 내준 웹 2.0 시대 초기이다. 쇼라에 따르면, 당시 풀스택 개발의 개념은 훨씬 더 단순했다. 일반적인 소프트웨어 스택이 훨씬 덜 복잡했기 때문이다. 2000년대의 경우, LAMP(Linux, Apache, MySQL, Perl/PHP)가 지배적이었다.

지금은 다르다. 스택 전체에서 더 복잡한 코딩이 요구되고, 각 계층마다 기술과 프레임워크 선택지가 다양하다. 일부 조직은 풀스택 개발을 더 용이하게 만들기 위해, 가능한 스택 전체에 단 하나의 기술만 사용하려 노력한다.

풀스택 개발자가 되는 방법 
좀더 간단히 설명하면, 풀스택 개발자가 되고 싶다면 광범위한 기술에 친숙해져야 한다. 이와 관련된 조언을 제공하는 장소들이 아주 많다. 그 중에서도 코더바이트(Coderbyte)의 가이드가 꽤 상세하다. 이 가이드는 다음의 내용을 다루고 있다.

• HTML/CSS
• JavaScript
• 백엔드 언어/ 프레임워크(예: Node.js, Python, Ruby, Java)
• 데이터베이스 및 웹 스토리지(예: MySQL/MariaDB, MongoDB)
• 웹 애플리케이션 아키텍처

기술에 더해, 어디에나 있는 버전 관리 시스템, 컴퓨터 과학 기본 알고리즘, 데이터 구조인 기트(Git) 등에 친숙해져야 한다. 주목해야 할 첨단 기술에 대한 정보를 얻고 싶다면 소프트웨어 개발자인 안드레이 네고이(Andrei Neagoie)의 소프트웨어 라이브러리 목록을 확인해보는 것도 좋다.

풀스택 개발자 과정
최소한의 '기초’ 지식을 제공하는 온라인 과정들은 다양하게 찾아볼 수 있다. 

Lynda
Udacity
Coursera
Thinkful
General Assembly

또한 더 상세한 대인(값 비싼) 교육 과정을 제공하는 부트 캠프도 많다. 풀스택 아카데미(Fullstack Academy)가 평판이 높다(그렇지만 풀스택 자바스크립트 개발에 초점을 맞추고 있음). 코스 리포트(Course Report)에서 다양한 옵션이 비교되어 있다.

풀스택 개발자 인터뷰(면접) 질문 
베터팀(Betterteam) 같은 구인구직 게시판이나 트레이닝 기업인 디지털 비디야(Digital Vidya) 같은 온라인 리소스에서 풀스택 개발자에 대한 전형적인 인터뷰 질문의 템플릿을 입수할 수 있다. 대부분은 구직자 관점보다 HR의 채용 결정에 도움이 되도록 맞춤화돼 있다. 그러나 흥미로운 패턴을 발견할 수 있으며 풀스택 개발자의 일상이 어떤지 알 수 있는 질문들도 있다.

예를 들어, 업무에 대해 알아야 할 모든 것을 알고 있을 수 없기 때문에 고용주는 당신이 빨리 학습을 할 수 있는지 알고 싶을 것이다. 즉 학습 방법에 대한 좋은 ‘대답’을 갖고 있어야 한다. 또 팀웍과 소프트 스킬에 대해서도 이야기하는 것이 좋다. 풀스택 개발자의 업무에는 팀에서의 조율이 요구되기 때문이다.

그러나 ‘감정 표현’과 관련된 부분만 있는 것은 아니다. 또 기술 인터뷰에 반드시 포함되는 일반적인 컴퓨터 사이언스 지식에 대해서도 대비해야 한다.

풀스택 개발자 일자리
풀스택 개발자는 일자리 분야에서 꽤 시끄러운 용어다. 여기에는 이유가 있다. 보수를 전문적으로 다루는 페이스케일(PayScale)의 분석에 따르면, 미국에서 2018년 한 해 가장 빠르게 성장한 직종이 풀스택 개발자 직종이다. 이 직종에 대한 수요가 많다. 따라서 여기에 맞춰 계획을 세워야 한다.

구직 과정에서 궁금증을 가질 수 있는 것 중 하나는 풀스택 개발자와 소프트웨어 엔지니어의 차이이다. 레딧(Reddit)의 커리어 조언 스레드에 이에 대한 내용이 있다. 레딧 스레드는 개발자는 일반 계약업자(더 실제적인 업무에 참여하는), 엔지니어는 토목 공학자(이론적인 고수준 업무에 참여하는)로 생각하면 무난하다고 조언한다. 

그러나 ‘진실’은 조금 다르다. 소프트웨어 엔지니어가 ‘스마트’한 개발자로 사용되는 경우가 많다. 또 풀스택 소프트웨어 엔지니어로 표시된 일자리가 많은 데, 풀스택 개발자 일자리와 다르지 않다.

풀스택 개발자의 연봉
연봉을 정확히 추정하기란 아주 어렵다. 그러나 풀스택 개발자들이 꽤 많은 연봉을 받는다는 데 의견이 일치되어 있다. 엔진 야드(Engine Yard)에 따르면, 풀스택 개발자 연봉은 9만 7,000달러 이상이다. 물가가 비싸고 연봉이 높은 실리콘 밸리 지역은 그 이상이 될 수도 있다. 

테크 리퍼블릭(Tech Republic)은 풀스택 개발자의 평균 기본 연봉을 11만 1,640달러로 추정한다. 풀스택 개발자를 찾는 일자리가 2014년 대비 3배가 증가했다. ciokr@idg.co.kr