요즘 '풀스택 개발자(full stack developer)'라는 말이 쓰이고 있다. 한 마디로 '모든 걸 다 하는 개발자'라는 뜻이다. 주로 웹(web) 쪽에서 자주 쓰이는 듯 하다.

 

사실 풀스택 개발자의 정의는 내리는 사람마다, 적용하는 범위마다 조금씩 다를 수 있다. 예를 들어 HTML5에 범위를 국한시키면 여기서 풀스택 개발자는 HTML5의 전반적인 내용들을 모두 다 하는 개발자를 뜻한다.

 

하지만 대체로 (웹 쪽에서) 풀스택 개발자라고 하면, DB, 서버, 백 엔드 개발(PHP, JSP, ASP 등), 프론트 엔드 개발(HTML, CSS 등)을 혼자서 모두 하는 개발자라는 의미로 쓰인다.

 

여기서 범위를 좀 더 확대해서, 서버를 놓을 IDC 선정이나, 클라우드를 사용할지 독립 서버를 사용할지 의사결정을 하는 것 등을 포함시킬 수도 있다.

 

 

어쨌든 '혼자서 웹 서비스 하나를 다 만들 수 있는 개발자'라는 의미인 건 확실한데, 예전에는 '풀스택 개발자'라는 단어는 없었지만 거의 모든 개발자가 그런 능력을 갖춰야만 했던 때가 있었다. 주로 코딩 작업이라 불리는 프론트 엔드 작업도 따로 나눠져 있지 않아서, 웹 디자이너와 개발자가 업무 영역을 두고 싸우기도 많이 싸웠다. 웹 디자이너면 간단한 코딩은 해야하잖아라는 인식도 있었고.

 

그당시 웃기는 것은, 실제 업무에서는 너나 할 것 없이 거의 모든 회사들이 풀스택 개발자로 활동하도록 시켰으면서, 사람을 뽑을 때는 어떤 기술에 깊이를 가졌는지를 측정했다는 거다. 그러면서 '이것저것 다 한' 경력을 보고는 '깊이가 없네요'라고 툭 던지기도 하고.

 

개발자들 사이에서도 하나의 특화된 자신만의 깊이 있는 기술을 가지고자 하는 분위기가 있었고, 그래서 다 같은 웹 개발을 하더라도 특정한 기술을 접목시켜 특화시켜 나가기도 했었다.

 

 

유행이 돌고 돌듯이 이제 다시 '풀 스택 개발자'라는 용어가 나오면서 다시 이런 분위기로 가는 걸까. 요즘은 업계 분위기가 달라진 걸까.

 

아직 잘은 모르겠지만, 요즘 창업 붐이 일면서 다시 이런 '모든 걸 다 하는 개발자'를 찾는 곳이 많아진 게 아닌가 싶다. 아무래도 작은 회사에서는 역할별로 작업을 나누기도 어렵고, 효율적인 분업을 할 정도로 충분한 인원을 충원하기도 어려울 테니까.

 

하지만 밑바닥 풀스택 개발자는 자신의 수명을 갉아서 작업에 투입한다. 작업 할 때야 무아지경에 빠져서 밤샘도 하고 매일 야근도 하고 하겠지만, 나중에 보면 체력은 형편없이 떨어져있을 수 밖에 없다. 물론 야근 안 하고 풀스택 개발을 한다면 그건 정말 능력자고.

 

물론 규모가 있는 회사도 풀스택 개발자가 필요하다. 한 프로젝트의 전체를 조감할 수 있는 사람이 있어야 일을 원활하게 굴릴 수 있는데, 이 역할을 하는 사람이 주로 PM(프로젝트 매니저)인데... ... ... (너무 할 말이 많아진다, 자르자). 그리고 이걸 회사 전체 규모로 조감할 수 있는 사람이 맡는 직책이 CTO라고 할 수 있다.

 

 

그런데 한 기술에 깊이를 가지면서 점점 다른 영역으로 넓이를 넓혀가는 것과, 처음부터 넓이만 넓히며 얉게 지식을 가져가는 것은 크게 차이가 있다. 얉고 넓은 지식은 상품 개발에도 나쁜 영향을 미칠 가능성도 있고.

 

 

...아, 하다보니 뭔가 곁가지 칠 이야기들이 마구 쏟아진다. 이미 글도 너무 길어졌는데. 이쯤에서 그냥 자르고 결론만 내자. 풀스택 개발자로 방향을 잡는 것은 좋으나, 너무 일찍 너무 얉게 가져가면 망한다. 테크트리를 언제 어떻게 타느냐가 중요하다. 끝. -ㅅ-;

 

 

p.s.

이것저것 많은 생각도 들고, 꽤 민감한 내용도 생각나고 해서 도저히 글을 이어갈 수 없었음. 어쨌든 내가 가진 생각은, '회사는 협업을 하기 위한 곳이다'라는 것. 창업 초기라거나, 프로토타입만 간단하게 만든다거나 하는 특수 상황이 아니라면, 회사를 위해서도 자신을 위해서도 혼자 다 하는 것보다는 협업이 낫다고 봄.

 

 

Posted by 빈꿈