2015년 3월 27일 금요일

풀스택 개발자가 되어야 하는가?

요즘 풀스택 개발자라는 말이 심심찮게 들리고 있다. 서버 개발뿐만 아니라 프론드엔드 개발과 DB 설계 심지어는 인프라구축까지 할수 있는 개발자를 말한다. 예전에도 거의 소규모의 기업이나 벤처(요즘은 '스타트업' 이라고 하는)기업에서의 개발자는 거의 이러한 형태였다. 

그러나, 요즘의 웹개발을 보면 그래픽 디자인, 퍼블리싱, HTML/CSS 코딩, 프론트엔드 개발, 백엔드 개발, DB 설계 등 개발자별로 각각 맡은 부분만을 작업하게 되는 형태가 많다. 지금 내가 다니고 있는 회사만 보아도 프론트엔드 개발자, 백엔드 개발자가 나뉘어져 있고, 그래픽 디자이너의 업무참여를 줄이기 위해 유료 부트스트랩 템플릿을 구매해서 사용하고 있다.

그런데, 각각의 개발자들이 자기가 맡은 부분만 개발을 완료하고는 개발이 끝났다고 한다. 더 엄밀히 말하면 백엔드 개발자는 도저히 소비자에게 내놓기 부끄러울 정도의 UI 를 만들고도 기능 개발이 끝났다며 자기 할 일은 다 한듯한 태도를 보인다. 사실 이말이 틀린것도 아닌게 백엔드 개발이 끝나면 프론트 UI 를 예쁘게 만드는 것은 그래픽 디자이너와 프론트엔드 개발자의 몫이다.

그렇지만, 왜 이러한 문제가 발생하는 것일까? 내가 해당 백엔드 개발자가 아니기 때문에 정확한 답변은 못하겠지만 미루어 짐작하건데, 백엔드 개발용 PHP 는 자신있지만, 화면구성을 위한 HTML, CSS, JavaScript 는 내 업무도 아닐뿐더러 잘 다루지도 못하기 때문이 아닐까? 그러면 언제까지 PHP 만 잡고 있을것인가? 그리고 다른회사로 이직하고서도 PHP 만 할 줄 안다고 그것만 할것인가?

얼마전에 보았던 '구글엔지니어에게 필요한 11가지 기술'이라는 칼럼에서도 얘기하는 것처럼 구글에서조차 꼭 자기가 개발하는 한가지만 파는것 보다는 여러가지 기술을 익히는 것을 권장한다고 했다.

풀스택 개발자라는 개념을 폴리글랏 개발자와 비슷한 개념으로 가져가면 어떨까? 임백준님은 자신의 칼럼에서 이렇게 얘기했다. "어떤 언어를 얼마나 알고 있는가 하는것 보다, 어떤 언어를 얼마나 빨리 배울수 있는가 하는 것이 중요한 시대이다"

그렇다면, 풀스택 개발자가 되어야 하는가?
처음부터 모든 언어를 알고 유창하게 사용하는 개발자는 없을 것이다. 그렇지만, 자기가 모르고 사용하지 않는 언어 및 기술들을 얼마나 빠르게 습득해서 자기화하느냐 하는 것은 비단 풀스택 개발자가 아니더라도 개발자라면 꼭 한번은 고려해보아야 할 개발자의 기본적인 소양이라고 생각해본다.