Post View

내가 생각하는 풀스택 개발자란?

웹 개발자를 칭하는 용어 중 프론트엔드 개발자(Frontend developer), 백엔드 개발자(Backend developer) 그와 동시에 자주 나오는 풀스택 개발자(full-stack developer)가 있다.
프론트엔드 개발자는 클라이언트 측의 프로그램, 백엔드 개발자는 서버 측의 프로그램 개발을 담당한다.

그런데 풀스택 개발자는 이야기하는 사람들 마다 생각하는 범위가 다르다.
어떤 사람은 프론트엔드와 백엔드를 모두 할 수 있는 사람을 말하고, 또 어떤 사람은 서버와 네트워크나 보안까지 다룰 줄 아는 사람이 풀스택이라고 말한다.
그런데 오히려 실제 이런 부분을 모두 담당하는 사람들은 자신은 풀스택 개발자가 아니라고도 하는 경우를 봤다.
그렇다면 과연 풀스택 개발자라는 것은 뭘까?

내가 생각하기에 위에서 말한 사람들은 풀스택 개발자일 수도 있고 아닐 수도 있다.
그럼 그것을 결정 짓는 것은 무엇일까?

나는 프로젝트의 규모라고 생각한다.
만약 내가 작은회사에서 간단한 홈페이지를 만든다면 프론트부터 백엔드, 보안이나 네트워크 모두 신경쓸 수 있을 것이다.
그렇다면 이 회사에서의 나는 누가봐도 풀스택 개발자처럼 보일 것이다.

하지만 프로젝트의 규모가 커질수록 프로젝트를 혼자 진행한다는 것은 말이 안되는 일이 된다.
그렇다면 여기서는 아무리 잘하더라도 기술적으로 모든 영역을 커버할 수 없을 것이다.
그러므로 규모가 커질 수록 자신을 풀스택 개발자라고 지칭하는 사람은 줄어드는 것이라고 생각한다.

그런데 내가 생각하는 풀스택 개발자의 정의는 조금 다르다.
내가 생각하는 정의는 "프로젝트를 완성시킬 수 있는 능력을 가진 사람"이다.
여기서 말하는 프로젝트는 "소프트웨어 개발"을 뜻하며, "소프트웨어 개발은 시장 목표나 사용자의 요구를 소프트웨어 제품으로 만드는 과정이다."라고 위키백과에 나와있다.

내가 말하는 "프로젝트를 완성시킬 수 있는 능력"은 위에서 말한 것 처럼 작은 회사에서의 기업 홈페이지 규모라면 그 회사에서의 풀스택 개발자가 맞다고 본다.
하지만 규모가 있는 프로젝트에서의 풀스택 개발자에게 필요한 능력은 고객의 요구사항을 이해하고, 시스템 전반적인 부분을 이해하고 있고, 상황을 빠르게 판단하고 결정할 수 있는 능력을 가지며, 팀원을 리드할 수 있는 능력을 가진 사람이라고 생각한다.

그래서 정말 잘하는 개발자들도 자신을 함부로 풀스택 개발자라고 지칭하지 않는게 아닌가 싶다.
사실상 위와 같은 역량을 가진 사람들이 CTO를 맡는게 아닐까 생각해본다.

결론적으로 누구나 풀스택 개발자가 될 수 있지만, 프로젝트의 규모에 따라 필요한 역량이 달라질 수 있다는게 내 생각이다.

물론 이 글은 생각은 굉장히 주관적인 판단이며, 실제와 다를 수 있음을 인지하길 바란다.

 

Comments