'풀스택 개발자'라는 표현을 쓰면 '풀스택은 잡부다.', '진정한 풀스택은 없다.'와 같은 부정적인 반응을 많이 보게 된다. 그런 반응을 보면 풀스택이라는 표현은 좀 더 조심스럽게 써야 하나?라는 생각이 든다. 그런데 나는 프론트엔드와 백엔드를 함께 하는 개발자는 그냥 풀스택 개발자라고 부르고 싶다. '백엔드와 프론트엔드를 다 하는 개발자' 보다는 '풀스택 개발자'가 좀더 경제적인 표현이기 때문이다.
나는 1년여 간 프론트엔드 개발자로 취업 준비를 하고 프론트엔드 직무로 회사에 입사했다. 그리고 약 5개월 후 백엔드로 직무를 바꾸었다. 현재는 백엔드 위주로 개발을 하지만, 프론트엔드 개발도 종종 하고 있다. 그런 점에서 풀스택 개발자라고도 할 수 있다. 그런데 풀스택 개발자로서 이런 저런 이득을 많이 보았다고 생각한다. 특히 주니어로서 주변 동료들에게 풀스택 개발을 추천하고 싶다는 생각을 많이 했다.
나의 적성이라고 막연히 생각했던 것이 직접 겪어보면 나와 맞지 않을 때가 종종 있다. 항상 새로운 것에 관심이 많은 나는 새로운 기술이 많이 나오는 프론트엔드가 적성에 맞는다고 생각했다. 그런데 백엔드 직무를 경험해보니 오랜기간 연구되고 검증된 기술에 대해 고심해보는 것이 더 재밌다는 사실을 알게 되었다. 이렇듯 자신이 무엇을 진짜 재밌게 여기고 어떤 것을 잘하는지는 직접 경험해보기 전까지는 100% 알 수 없다. 그러므로 할 수 있는 한 넓은 직무를 탐구해보며 자신의 적성을 파악하면 경력을 많이 쌓은 후에야 적성을 잘못 파악했다는 사실을 알고 후회할 일을 줄일 수 있다.
하나만 잘하기도 어려운 데 두 가지를 하려면 버거운 기분이 들 수도 있다. 나 또한 자바를 전혀 배워본 적이 없는 상태에서 바로 실무를 해야한단 점이 매우 부담스러웠었다. 그런데 회사마다 다르겠지만, 많은 개발자들은 연차가 적은 개발자에게는 큰 기대를 하지 않는다. 이 때가 많은 시행착오를 해볼 수 있는 기회이다. 상상해보라. 10년차일 때보단 0년차일 때 직무를 바꾸는 것이 훨씬 쉬울 것이다. 작은 리스크로 도전을 해볼 수 있는 특권을 이왕이면 사용하면 좋지 않을까?
두 직무에 발을 걸치고 있으면 개발 프로세스 전체에 대한 이해를 갖추는데 도움이 된다. 이를 통해 협업을 원활히 진행하는 데 기여할 수도 있다. 또한, 다양한 기술 스택을 익히는 과정에서 문제 해결 능력을 향상시킬 수 있다. 프론트엔드와 백엔드는 관심사가 다를 수 있다. 또 백엔드에서는 풀기 복잡하지만 프론트엔드에서 처리하면 해결하기 쉬운 문제가 있을 수 있다. 이런 차이에 대해 이해하고, 다양한 요구사항과 제약 조건을 고려하여 효율적이고 유연한 솔루션을 제시할 수도 있다.
혹시나 이 글을 본 주니어가 '나도 풀스택을 해야하나?'라는 FOMO(fear of missing out)를 느끼지는 않았으면 좋겠다. 회사마다 환경은 매우 다를 것이고, 이 글은 나의 한정된 경험에만 초점이 맞춰져 있기 때문이다. 다만 어쩔 수 없이 풀스택을 해야만 하는 상황이 올 수도 있을텐데, 그런 상황이 무조건 꺼릴 일만은 아니라고 말하고 싶었다. 또한 다른 직무를 경험하고 싶지만 머뭇거리는 사람이 있다면 나처럼 긍정적인 케이스도 있다고 말하고 싶었다.
저도 여러 가지를 해야 이해의 폭이 넓어져서 추천을 하지만, 한국 한정으로는 이직 할 때 어려운 지점이 있긴 합니다. Software Engineer 경력 N년차가 아닌, 다들 특정 포지션으로 경력 N년 이상으로 해서 올리는 채용 공고가 많아서요.