연차가 높아지면서 사람들이 스스로에게 하는 질문이 있습니다. "나는 내 직급에 맞는 실력과 역량을 갖추고 있을까?" 그런데 이 '직급에 맞는 실력과 역량'이라는 게 정확히 무엇일까요? 회사에서 직급에 따라 기대하는 바가 정확히 정의되어 있으면 그나마 낫겠지만, 그렇지 않은 경우 스스로 이를 파악해야 합니다. 오늘 글에서는 Kamran Ahmed님이 정의한 주니어, 미드 레벨, 시니어 개발자의 차이를 소개드립니다!
🌱 주니어 개발자
- 코드를 작동하게 하는 것에만 주로 집중함. ‘작동하는 코드 = 좋은 코드’라고 생각함.
- 업무를 받을 때 구체적이고 잘 정리된 요구사항을 받아야 진행 가능.
- 일을 하다 막히면 직접 해결하기보다는 시니어의 도움을 필요로 함.
- 문제가 있을 때 그 문제의 근본 원인을 파악하기보다는 당장 눈에 보이는 상황을 해결하려 함.
- 익숙하지 않은 시스템의 업무를 받는 것을 두려워함.
- 자신이 얼마나 모르는지 알지 못함.
주니어 개발자는 해당 분야에 경력이 얼마 없기 때문에 당연히 모르는 것이 많습니다. 하지만 이게 꼭 나쁜 것은 아닙니다. 팀에서 주니어가 모든 걸 다 알 거라고 기대하지도 않고요. 하지만 계속 배우고, 경험을 쌓고, ‘주니어’라는 타이틀에서 벗어나기 위해 스스로를 발전시켜 나가는 것은 본인의 몫입니다.
🪴 미드 레벨 개발자
- 자신의 기존 코드에서 개선점을 발견하기 시작함.
- 주니어 개발자보다 문제를 빠르게 해결할 수 있음.
- 지식이 어느 정도 쌓여 문제를 “올바른 방법”으로 해결하려 하지만, 그 과정에서 실수를 하기도 하고 모든 걸 “제대로” 하려는 마음에 시간을 너무 많이 쓰기도 함. 아직까지 시니어의 도움이 필요한 상태.
- 일을 원칙적으로 해야 하는 상황과 트레이드오프(trade-off)가 필요한 상황을 잘 구분하지 못함.
- 자신의 코드에 애착을 느껴 피드백을 잘 받아들이지 못하는 경우가 많음.
미드 레벨 개발자는 주니어 개발자보다 탄탄한 실력을 갖췄지만, 아직까지는 전체를 볼 수 있는 시야가 부족한 상태입니다. 현업에서 여러 경험을 쌓고, 시니어 개발자의 멘토링을 받으면 충분히 다음 단계로 발전할 수 있는 레벨입니다.
🌳 시니어 개발자
- 과거 경험을 바탕으로 비슷한 상황에서 발생할만한 문제를 미리 예상할 수 있게 됨.
- 코드 및 시스템 아키텍처의 방향성을 가이드할 수 있음.
- 광범위하고 추상적인 문제를 제대로 정의하고, 더 작은 단위로 쪼개고, 하나씩 해결하는 것에 익숙함.
- 상황에 맞게 적절한 선택을 할 줄 아는 능력을 갖춤. 어떨 때 원칙적으로 밀고 나가야 하고 어떨 때 트레이드오프(trade-off)가 필요한지 이해하고 있음.
- 대부분의 상황에서 특정 문제를 어떤 툴/언어/기술을 이용해 해결해야 하는지 알고 있음. 본인이 직접 그 기술을 사용해본 경험이 없더라도 기존 지식을 바탕으로 방향성을 제시할 수 있음.
- 모두가 한 팀으로 일해야 한다는 걸 인지하고 있음. 다른 개발자들을 멘토링 하고, 문서화를 하는 등 팀원들을 서포트하는 역할을 자신의 책임이라고 생각함.
- 개발 뿐 아니라 비즈니스 도메인을 깊게 이해하고 있음. 프로덕트와 비즈니스 전체를 이해하는 게 개발에도 얼마나 도움이 되는지 알고 있음.
시니어 개발자는 기존의 경험과 노하우를 바탕으로 팀의 방향성을 제시하고, 팀원들을 이끌고, 어려운 문제를 나서서 해결하는 역할을 합니다. 물론 연차가 쌓인다고 모두가 이런 역량을 갖추는 건 아닙니다. 단순히 몇 년을 일했는지보다는 얼마나 다양한 문제를 해결해봤는지, 그리고 그 과정에서 얼마나 많은 고민을 해봤는지가 더 중요하죠.
📌
이상적인 팀에서는 다양한 직급의 개발자들이 섞여 함께 조화롭게 일합니다. 자신이 부족한 부분에 대해 너무 조급한 마음을 가질 필요는 없지만, 다음 단계로 나아가기 위한 꾸준한 노력은 필요합니다. “나는 주니어니까 이건 못해”, “이런 건 시니어가 해야지”라는 마인드셋보다는 어려운 문제도 직접 해결해보려는 시도를 하는 건 어떨까요? 그렇게 한 단계씩 성장하다 보면 어느새 멋진 시니어 개발자가 되어 있을 거예요!
📔 함께 읽어보면 좋은 글
- 주니어 개발자가 알았으면 하는 10가지: https://careerly.co.kr/comments/70537
- 빠르게 승진하는 사람들의 네 가지 특징: https://careerly.co.kr/comments/70698
위 내용은 Kamran Ahmed님의 글 <Levels of Seniority>의 일부를 정리한 내용입니다.