개발자의 단계별 수준

우리가 개발자를 매니저를 제외한 순전히 개발을 하는, 프로그래밍을 하는 직종 이라고 정의를 내렸을때 개발자의 단계는 통상적으로 주니어, 미드, 시니어, 리드 이렇게 구분할 수 있다.

각각 단계별로 회사에서 고용할때마다 각각 고용주 입장에서는 기대하는 실력이 조금씩 다르고 단계별로 보고자 하는 퍼포먼스의 레벨도 조금씩 다르다.

특히 이 부분에 대해서는 예전에 연봉과 관련된 이야기와 간략하게 유튜브에서 다룬적이 있는데, 몇가지 추가 하자면 여기에서 명시했던 셀러리 밴드는 지금은 또 많이 바뀐 추세이다. 요즈음은 펜데믹 때문에 개발자들이 많이 필요로 하는 상황이고 회사에서 우후죽순으로 뽑아대다보니 인력 시장이 고갈되어 개발자들의 몸값이 상당히 많이 오른편이다.

다시 본론으로 돌아와서, 주니어는 실력 면에서나 실무적인 그런 경험치가 상대적으로 많이 떨어지기 때문에 주니어에 대한 기대치가 그만큼 낮고, 그 수준에 맞는 리스크가 크지 않은 일을 맡기는 경우가 대부분이다. 그렇다고 해서 주니어로서 구직을 하는 것이 절대로 쉽다는 것을 말하는 것은 아니다. 물론 어렵다. 취업에서 가장 힘든 때가 주니어로서, 신입으로 실무경험을 없이 취업준비를 해야할때 이때의 첫 관문이 가장 어렵다고 볼 수가 있겠다.

그와 더불어 업무처리를 하는 속도가 상대적으로 다른 단계의 개발자보다 느리고 그와 더불어서 많은 멘토쉽이 필요한 사람들이 바로 주니어들이다. 이런 복합적인 이유 때문에 회사에서는 주니어에게 투자해야하는비중은 연봉에서 그치는것이 아닌, 그들이 실무에 있어서 다른사람들보다 추가적으로 소모해야 하는 시간, 더불어 사수들이 그 주니어를 위해서 투자되는 시간과 노력들이 마찬가지로 투자가 되어야 된다고 예상하기 때문에 회사에서는 어느정도 좀 리스크를 가지고뽑는 것이 바로 이 주니어롤이다. 그만큼 이제 주니어에 줄 만한 일거리가 있기 때문에 주니어을 뽑는것이라 말할수 있겠다. 이것이 주니어의 회사에서 생각하는 주니어의 레벨이다.

그리고 미드 개발자는 이제 그래도 어느정도 좀실무경력이 생기고 개발관련 지식적인 부분에서 어느정도 경험이 생기고 실무적인 부분도 상황 판단 능력, 상황따라 어떤 반응을 해야되는지 이런 기본적인 부분에 대해서 익숙해져 있다고 말할수 있겠다.

단편적으로 봤을때, 순수 코딩부분 지식적인부분에서는 미드와 시니어는 그렇게 큰 차이가 없다고 말할 수도 있을것이다. 하지만 그들간 실력을 구분짓는것은 자신이 가지고 있는 지식을 어떤 상황에 접목을 시켜서 일처리를 해야 되는지, 빠른 상황판단 능력, 문제해결 방식을 어떻게 더 효율성 있게, 현실성 있게 접근할 수 있는지, 이 것의 차이점을 보여 줄 수 있는 것이 바로 시니어와 미드와 의 차이이다.

그런 것을 알기 위해서 다방면으로 더 많은 지식을 갖고 있어야 되고, 특히 프론트엔드 개발자들은 프론트엔드영역 안에서만 쉽게 갇힐 수 있는 스스로를 가둘 수 있는 그런 현상이 많이 생기는데요. 시니어는 약간 거기서 조금 더 벗어나서 큰 그림을 그리는데 필요한 지식을 갖고 있는 그런 사람들을 가르쳐서 우리는 시니어 라고 말할수가 있습니다

시니어가 되면 사람들을 멘토를 할 수 있는 그런 멘토쉽도 필요하고사람들과 소통을 통한 설득력, 이런 여러가지 이제 소프트 스킬 셋을 어느정도 좀 키워 나가는데 필요한 위치이다. 시니어와 리드사이에서는 커다란 차이 점이 없다고도 말할 수 있는데, 리드개발자는 조금 더 팀 메니지먼트에 가까운 일을 많이 하고 전체적으로 코딩에 대한 스탠다드를 정하고 어느정도 좀 규율을 정하는 일을 한다.

더 나아가 지금 현재 내가 하고있는, 엔지니어링 매니지먼트 롤은 더 큰 설계를 잡고 그것에 따른 전체적인 로드맵을 정하고 그것을 성취하기위해 기술적, 인력적, 회계적인 부분에 대한 구체적인 계획을 세우는 그런 일을 맡아서 하는 자리이다.

개발자들의 탄 각 단계별로 어떤 역할을 감당해야 되는 지 알아보았는데, 이들각자 인터뷰를 하고 취직을 준비를 할 때 개발자 각 단계별로 준비를 해야 하는것이 조금씩 틀리게 된다

이부분에 대해선 또 다른 포스팅에서 다루도록 하겠다.

이포스트관련한 유튜브 영상은 여기에서 시청할수 있다