대규모 프로젝트에서 풀 스택 개발자의 역할

20 년 전에는 상황이 단순했습니다. 소프트웨어 개발자는 주로 종단 간 소프트웨어 개발에 참여했습니다. UI를 만드는 사람과 백엔드를 개발하는 사람 사이에는 큰 차이가 없었습니다. 대부분의 애플리케이션은 데스크톱 모놀리스이거나 네트워크를 통해 일종의 서버 백엔드와 통신하는 데스크톱 “클라이언트”였습니다.

두 경우 모두 초기 개발 도구는 개발자가 동일한 프로젝트에서 모든 것을 만들 수 있도록 충분한 구성 요소를 제공했습니다. 이로 인해 동 질적이지만 지루하고 매력적이지 않은 응용 프로그램이 생겼습니다. 그 당시 웹은 대부분의 경우 서로 연결되는 정적 페이지였습니다. 일부 특이한 예외를 제외하고 대부분은 뭉툭한 Windows 제품의 모양과 느낌과 비슷했습니다.

몇 년 후 2000 년대 초반과 중반에 웹 2.0 혁명이 일어나 모든 것을 휩쓸 었습니다. 남아있는 단일 목적의 모 놀리식이 아니라 소프트웨어 애플리케이션이 분산 된 “서비스”로 바뀌 었습니다. 컴퓨터에 수백 메가 바이트를 설치하는 기존 모델이 웹 브라우저에 좋아하는 웹 앱의 URL을 입력하는 방식으로 대체되었습니다. 시간이 지남에 따라 기본 운영 체제의 관련성이 감소했습니다. 10 년이 채되지 않아 브라우저가 OS가되었습니다. 많은 사람들에게 항상 열려있는 유일한 창입니다.

웹 2.0과 그에 따른 모바일 진출은 새로운 소프트웨어 응용 프로그램의 구축 방식에 큰 변화를 가져 왔습니다. 한때 백엔드와 프런트 엔드 개발은 별개의 분야가되었고 각각 다른 기술과 전문 지식이 필요했습니다. 사실, 최근 몇 년 동안 프런트 엔드와 백엔드 사이의 격차가 너무 커져서 이러한 부분을 다시 결합하려는 새로운 원칙이 도래했습니다. 풀 스택 개발자의 역할입니다.

오해

요즘 구인 정보를 보면 거의 모든 사람이 프로젝트의 모든 측면에서 작업 할 수있는 개발자를 찾고있는 것 같습니다. 많은 회사에서이를 “풀 스택”위치라고 부르며 실제로 많은 조직이 이미 팀 전체에서 이러한 “풀 스택”위치를 열었습니다. 나는 “풀 스택”개발자가 “모든 것을 아는”전문가라는이 아이디어에 결함이 있으며, 상대적으로 소수의 조직이 새로운 역할을 최대한의 잠재력으로 끌어 올릴 수 있다고 감히 믿습니다. 이 게시물은 이러한 오해를 해결하는 데 도움이되기를 바라면서 풀 스택 개발자가 이상적으로 팀 내에 머물러야하는 부분을 밝힙니다.

풀 스택 개발자가 무엇인지, 풀 스택이해야 할 일을 정의 할 때 두 가지 모순되는 오해가 있습니다.

풀 스택 개발자는 모든 것을 알고 있으므로 일부를 고용하여 인적 자원을 절약 할 수 있습니다.

또는

풀 스택 개발자는 모든 것을 알고 있지만 특별히 아무것도 모릅니다. 풀 스택 개발자는 우리 팀의 부담 일뿐입니다. 그녀는 프런트 엔드 또는 백엔드 직원이하는 방식과 같은 세부 수준에 대해 절대 설명 할 수 없습니다.

둘 다 100 % 틀린 것은 아니지만 어느 쪽도 맞지 않습니다. 풀 스택 개발자는 백엔드 및 프런트 엔드 전문가 팀을 마술처럼 대체 할 수있는 유능한 아이가 아닙니다. 아니요. 풀 스택 개발자는 두 세계를 모두 이해해야하지만 그녀의 역할은 대체하는 것이 아니라 두 그룹을 더 가깝게 연결하는 것입니다. 사실, 좋은 풀 스택 개발자는 록 밴드의베이스 연주자와 약간 비슷합니다.

풀 스택 = Bass Player?!?

록 밴드에서베이스를 연주하는 것은 종종 과소 평가되지만 매우 중요한 역할입니다. 보컬리스트 나 기타 연주자와는 달리 베이시스트는 그녀의 연주에 거의 공로를 인정하지 않습니다. 재즈와 펑크 음악을 제외하고는 베이시스트가 혼자서 황금 시간을 보내는 경우는 거의 없습니다. 그녀는 리드 기타가하는 것처럼 항상 숨막히는 솔로를 연주하지는 않을 것입니다. 그녀는 또한 보컬리스트 만이 할 수있는 방식으로 항상 팬과 소통하지 않을 것입니다. 그러나 훌륭한베이스 연주자는 항상 밴드 전체를 하나로 묶어줍니다.

“베이스 연주자는 벽돌 사이의 박격포와 비슷합니다.” (David Elefson, Megadeth)

저음 연주가 좋지 않은 록 밴드를 본 적이 있습니까? 아니면베이스 연주자가 전혀없는 자존심이 강한 록 밴드일까요? 아니? 여기에는 몇 가지 좋은 이유가 있습니다.

먼저, 저음의 드럼과 다른 쪽의 고음 기타 및 보컬 사이에는 큰 사운드 스펙트럼 차이가 있습니다. 이 간격은 일반적으로 저음으로 채워집니다. 등식에서베이스를 제거하면 “영혼과 영혼”의 왼쪽에 얕은 곡이 남습니다. 여전히들을 수 있지만 항상 무언가 빠진 것처럼 느껴질 것입니다.

밴드에 숙련 된베이스 연주자를 보유하는 것은 청중과 마찬가지로 다른 밴드 메이트에게도 중요합니다. 밴드에서 연주 할 때 가장 어려운 것 중 하나는 다른 사람들과 조율하고 동기화하는 것입니다. 코디네이터이자 플레이어 간의 허브 역할을하는베이스 플레이어의 역할이 매우 중요합니다. 그녀는 드러머가 설정 한 템포와 리듬을 항상 유지하면서 노래 전체에서 거의 동일하게 유지되는 메인 멜로디의 토대를 마련합니다. 이를 통해 기타 연주자는 소리가 느슨해지는 것을 두려워하지 않고 아름다운 솔로를 연주 할 수 있습니다.

팀으로 돌아 가기

요즘 소프트웨어 팀은 록 밴드와 매우 비슷해 보입니다. 지금까지 설명했습니다. 일반적으로 자신의 작업 스펙트럼을 다루는 순수한 백엔드 및 프런트 엔드 개발자가 있습니다. 현재 진행중인 프로젝트가 잘 지정되어있는 경우 양측은 일반적으로 API에 동의하고 최선을 다하는 일을 계속하면서 상대방이 작업을 수행하는 방식에 대해서는 거의 관심을 갖지 않습니다.

우리 모두 알고 있듯이 이상적인 상태에서 작동하는 것은 거의 없습니다. 대부분의 시간 동안 개발자는 커뮤니케이션의 오해를 제거하는 데 소비합니다. 그들은 긴 회의에서 이것을합니다. 그러한 회의에 참석했다면 프론트 엔드 직원이 백엔드 속도를 높이기위한 세부 제안에 대해 얼마나 존경심을 느끼지 못할 지 알 것입니다. 하지만 솔직히 말해서 프론트 엔드 직원이 문제를 설명 할 때는 휴대 전화를 살펴볼 차례입니다. 그게 현실입니다. 종종 양측의 비전이 일탈하고 있으며이를 정상화하는 유일한 방법은 더 많은 회의와 리팩토링 노력입니다.

여기서 풀 스택 개발자를 팀에 도입하면 팀의 생산성이 크게 향상 될 수 있습니다. 반드시 새로운 기능을 시장에 출시하는 것이 아니라 팀 마찰을 줄이고 리팩토링 노력을 줄이는 측면에서 더 많습니다.

풀 스택 개발자는 양쪽의 우려를 이해하고 한쪽에서 입력을 받아 다른 쪽이 쉽게 처리 할 수 ​​있도록 코드로 변환 할 수 있습니다. 대규모 프로젝트에서 이는 일반적으로 프런트 엔드와 백엔드 사이에있는 얇은 추상화 계층을 생성하는 것을 포함합니다. “미들웨어”라고도하는이 계층은 프런트 엔드와 백엔드의 구현 세부 정보를 모두 숨기고 한쪽 끝에서 다른 끝으로의 원활한 데이터 흐름을 제공해야합니다.

전통적으로 백엔드 기술 스택을 사용하여 미들웨어를 개발하는 경우 격차를 더 해소하는 방향으로 전환하는 것을 목격했습니다. 코어 백엔드가 Java 기반 일 수 있고 NodeJS 기반의 미들웨어가 전면에있는 서버에서 혼합 스택을 보는 것은 놀라운 일이 아닙니다. 대규모 소프트웨어 프로젝트의 경우, 그러한 위업을 발휘하면 프로젝트가 급증하거나 부적절하게 수행 될 경우 프로젝트를 지구로 가져 오는 효과가있을 수 있습니다. 여기에서 전체 스택에 능숙한 팀 구성원이 있으면 큰 차이를 만들 수 있습니다.

그 뿐만이 아닙니다. 풀 스택 개발자는 새로운 기능 개발의 동인이 될 수 있습니다. 전체 스택에서만 새로운 기능을 개발할 수는 없지만 전체 스택 개발자가 백엔드 및 프런트 엔드 개발자가 나중에 작업 할 수있는 스캐 폴딩을 구축하도록하는 것이 좋습니다. 다시 말하지만, 이는 초기에 시간과 커뮤니케이션 노력을 절약 할 수있을뿐만 아니라 나중에 프로젝트에서 리팩토링 노력을 절약 할 수 있습니다.

보시다시피, 대규모 프로젝트에서 풀 스택 개발자의 역할은 모든 것을 할 수있는 전문가 나 전문가가 아닙니다. 록 밴드의베이스 연주자와 비슷하게 풀 스택 개발자의 역할은 프론트 엔드와 백엔드 사이의 커뮤니케이터 및 코디네이터 역할에 훨씬 더 가깝습니다. 이는 가까운 미래에 이러한 역할을 대체하기위한 것이 아니라이를 지원하고 이들 사이에 다리를 구축하는 것입니다. 이 모든 것이 여러분에게도 이해되기를 바라며 다음에 조직에서 풀 스택 개발자를 참여 시키기로 결정할 때이를 고려해 보시기 바랍니다.

면책 조항 : 저는 풀 스택 개발자이자 열성적인베이스 기타 연주자입니다. 😉

이 게시물은 내 블로그

에도 표시됩니다.