소프트웨어 개발자 김수보님의 글을 모비인사이드에서 소개합니다.
'풀스택 개발자' 한동안 인터넷을 강타했던 용어입니다. 지금은 많이 사그라들었지요. 하지만, 아직도 일부 학생들 사이에서 이상적인 개발자처럼 인식되고 있습니다. 그래서, 이 실상에 대해 한번 짚고 넘어가고자 정리를 했습니다.
한국 채용시장에서는 단말, 서버, 웹, DB 등 모든 것을 다 할 줄 아는 개발자를 말합니다. 얼추 맞는 말인 것 같은데 종종 2명을 뽑지않고 1명을 뽑아도 되는 것처럼 인식되고 있습니다. 이상하지만 실제로 이렇게 알고 계시는 분들이 많습니다. 간혹 높은 연봉에 이끌려 지원했다가 마음 고생 후 이직을 하는 개발자들도 있었습니다.
그러면 풀스택이란 말은 어떻게 유행이 되었을까요? 테크크런치에 실린 자료를 바탕으로 정리해 보았습니다.
참고 글 : The Rise And Fall Of The Full Stack Developer (2014. 테크크런치)
1980년대: 어셈블러나 C 로 컴퓨터 프로그램을 만들던 시절에는 1인이 모두 다 개발했습니다. 컴퓨터 자원이
한정되어 있기도 하고, 프로그램 구조도 단순했습니다.
1990년대: 클라이언트 서버, 인터넷이 등장하자 기술구조가 매우 복잡해지면서 많은 전문가가 필요하게 되었습니다. 그리고 이를 튜닝하는 일도 매우 복잡했습니다.
2000년대: 그래서 뭐 하나 만드는게 매우 비쌌습니다. 통신이 늘어날수록 계층이 추가되었습니다. 유지보수도 작은 인력으로 할 수 없게 되었습니다. 그래서 Java Enterprise Version + Oracle 로 작업할 수 밖에 없었습니다.
그런데, Web2.0 으로 웹기술이 뜨면서 통신계층을 단순화 시켰습니다. 그러자 꽤 많은 부분이 LAMP 스택으로 대체되었습니다.
2000년대 후반. LAMP 스택을 지원하는 클라우드 환경이 생겼고, 새로운 기술들을 스택형태로 제공되기 시작했습니다. 그래서, 이 당시 실리콘밸리에서는 Full Stack Developer를 많이 찾게 되었습니다.
즉, 풀스택 개발자는 서버가 지속적으로 확장해야 하는 환경에서 기술의 동질성을 확보하기 위한 기술팀의 선택이었습니다. 그래서 채용의 주체가 인사팀이 아니라 개발팀이었습니다. 또 모든 스택을 잘 다룰 줄 안다는 전제도 없었습니다. 다만, 기술경험이 유사한 동료들을 뽑고 싶었던 것입니다.
참고로, 이것은 실리콘밸리의 사업환경과도 밀접한 관계가 있습니다. 빠르게 성과를 보여 투자를 받아야 하고, 글로벌하게 증가하는 트래픽과 데이터에도 능동적으로 대처할 수 있어야 하기 때문입니다. 반면 그런 사업적 환경이 낮은 나라에서는 풀스택 개발자의 필요성을 적게 느꼈습니다.
결론부터 이야기 하자면, 취업준비생이 국비과정을 거쳐서 풀스택 개발자가 되는 경우는 존재하지 않습니다. LAMP 를 배웠다고 하더도 트러블슈팅이나 응용능력이 없기 때문에 채용 목적을 충족시킬 수 없습니다. 그래서 많은 개발팀이 오히려 열려 있고 적극적인 친구를 찾아서 팀에 맞는 개발자로 키워내고 싶어 합니다.
풀스택 개발자는 일반적으로 중급 이상의 개발자가 그런 프로젝트를 하면서 다양한 문제해결능력과 서비스 구축능력을 갖추게 된 경우를 말합니다. 하지만, 풀스택 개발자라고 하더라도 1인이 2인분의 일을 해낼 수 있다는 것은 아닙니다. 그리고, 모든 계층에서 전문가가 된다는 것도 아닙니다.
5. 풀스택 개발자, 아직도 인기인가?
이미 실리콘밸리에서는 Full Stack Developer에서 Full Stack Integrator 로 옮겨 갔습니다. 이미 충분히 복잡한 기술들이 패키징 되어서 클라우드 위에 올라가고, SaaS 형태로 제공되고 있기 때문입니다. 즉, 기술 환경의 변화에 따라서 채용시장도 변했다는 뜻입니다.
문제는 현업의 트렌드가 채용시장으로 흘러 나올 때 잡음들이 많이 생깁니다. 또는 용어가 바다를 건너면서 잘못 이해되는 경우도 많습니다.
새로운 용어가 등장하면 왜 나왔을까 한 번쯤 깊이 고민하면 좋겠습니다. 트렌드의 출발점이 우리가 풀려는 문제점과 유사할 때 선택했으면 합니다. 아무런 문제의식 없이 수용하면 다양한 거부반응들이 일어납니다. 특히 실제 일을 해야 할 개발팀이 마비되어 버리는 경우가 적지 않습니다.
취업을 목표로 한다면, 현실적인 채용상황들에 맞출 필요가 있습니다. 한국의 IT 상황이 많이 변하긴 했지만, 여전히 Java Spring 이 강세라는 건 부정할 수 없을 것 같습니다. 다만 Oracle 은 이미 MySQL 로 많이 대체되었습니다.
새로운 용어나 기술환경이 등장하면 꼭 현황 진단을 먼저 했으면 좋겠습니다. 일반적으로 새로운 기술은 새로운 문제를 해결하고자 합니다. 그리고, 그 문제는 대부분 사업환경의 변화 때문에 일어납니다. 아직 우리 조직이 새로운 사업을 시도하지 않는다면 새로운 기술이 필요없을 수도 있습니다.
새로운 기술은 결코 ‘새 기술 덕후’들이 만들어 내지 않습니다. 현재의 기술로 해결할 수 없는 문제를 고렙의 개발자들이 해결하고자 시도한 것입니다. 그래서 반드시 기술이 만들어진 이유가 있습니다. 시장에서 핫한 기술이라고 스타와 팬처럼 따라가서는 곤란합니다. 문제가 존재하지 않는 곳에 솔루션이 존재할 이유가 없기 때문입니다.