나는 사람들이 '기술적 깊이가 중요하다'라고 말하는 것을 잘 인지하지 못했다. 그도 그럴 것이 내 경력에서 쌓아온 경험들은 사실 기술적 깊이가 있는 업무들은 아니었다. 앱 개발 내의 UI작업부터 시작해서, WPF UI, C# Socket서버 개발 등등 사실 깊은 수준까지 다뤄본 적은 없다. 회사 내에서 코어 부분을 맡아서 작업하는 개발자도 아니었으니 뭐... 그래도 상대적으로 어려운 부분을 작업할 때도 있었다.
내가 생각하기에 그나마 기술적 깊이를 체험해본 프로젝트는 개인적으로 진행했던, WebRTC와 블록체인 포트폴리오인 것 같다. 상대적으로 다루기 어려운 기술을 사용하고 있고, 나쁘지 않은 수준까지는 경험해본 느낌이다(물론 더 깊게 파면 끝이 없는 분야인 것은 맞음)
사람들은 특정 도메인 내에서 경력을 쌓으면서 전문성을 키워야 한다고 말한다. 물론 나 역시 이런 의견에 동의한다. 다만, 그 분야가 진입장벽이 상대적으로 높아야 한다고 본다. 솔직히 어느 분야든지 깊게파면 끝이 없다. 프론트엔드도 마찬가지고 백엔드도 마찬가지다. 근데 A분야를 5년 했다고 무조건적으로 실력이 늘 것이라고 생각하진 않는다. 특정 분야에서 전문성을 쌓는다는 것이 '생산성이 빨라진다'라는 의미가 되면 의미가 약해진다.
예를 들어 프론트엔드 분야에서 경력 5년을 쌓은 사람이 있다고 해보자. 이 사람은 프론트엔드 분야에서 생산성이 높은 사람이다. 근데 '대체 불가능한 사람'이라고 부를 수 있을까? 그건 사람에 따라 다를 수 있다. 다만, 회사 입장에서 보기에는 대체제를 구하기 쉬운 분야인 것은 사실이다(이러면 진입장벽이 낮다는 소리이고 해당 기술로 인정받기에는 어려울 가능성이 있음, FE 분야만 그런 것은 아니고 다른 분야도 마찬가지임)
근데 만약에 프론트엔드 분야의 개발을 메인으로 잡으면서, WebRTC기술을 딥하게 몇 년간 개발했다고 해보자. 그러면 이 사람은 WebRTC 분야에서는 대체하기 어려운 사람이 된다. 왜냐하면 프론트엔드 분야를 다뤄본 사람은 많지만, WebRTC 분야의 전문성이 뛰어난 사람은 상대적으로 적기 때문이다. 물론 해당 기술을 다루는 회사들에서만 인정받고, 기술에 귀속되는 것도 사실이다. 그러나 전문성은 확실히 가져가게 된다.
나는 제너럴한 분야의 개발도 중요하다고 생각한다. 어지간한 회사에서는 프론트엔드/백엔드/앱개발 분야의 사람을 필요로 한다. 근데 요즘 드는 생각이... 대기업 같이 한 분야를 심도있게 다루는 경우를 제외하고, 어느 정도 수준으로 만드는 개념에서 '시간을 주면 개발을 못하는가?'하면 또 아닐 것 같다는 생각이 든다. 반면 WebRTC 기술에서 나한테 가상배경 작업해보라고 하면 막히지 않을까? 내부 코어 기술을 분석해서 바로 개발시키면 버벅거릴 것이 분명하다. 이게 진입장벽이다.
처음에는 플랫폼 개발을 위주로 제너럴한 분야를 맛보고, 어느 시점에는 특정 기술을 골라서 심도있게 파보는 경험을 해야한다고 본다. 일반적인 개발자 기준에서는 2~3년 경력 이후에 코어쪽을 해보는 것이 좋지 않을까 싶다(물론 실력에 따라 그냥 신입인데 시켜도 하는 경우도 있으니 뭐..)
내가 지금 이런 시점이라 생각하는데 코어 기술을 보면 눈이 반짝거리는 경향이 있는 듯 싶다. 솔직히 코드 자체가 UI쪽이랑 난이도가 다르다. 기본 코드 자체가 파악하는데만 해도 배경지식이 많이 필요하다. 근데 이 코어 코드를 파악하고 수정할 정도의 실력이라면 무조건 회사에서 인정받는 개발자가 된다는 확신이 있다. 왜냐하면 회사 코어 기술 파악하는 게 일반적으로 쉬운 일은 아니니까. 누가봐도 어려운 부분을 작업해야 회사에서는 고연봉을 주고 대우를 해주려고 한다. 솔직히 코어 기술 분야 개발자 영입은 공급도 적고 사람 구하기 까다롭다. 대체제를 구하기가 상대적으로 어렵다.
코드만 보더라도 '이거 꽤 어렵네?'라는 생각이 드는 부분을 빠르게 익힐 생각을 해야 인정받기에 편하다. 첫 회사의 선임개발자가 이런 케이스였는데 한 회사에 8년 다니면서 내부 코어로직 다 흡수하신 분이었다. (예전에 퇴사한다고 하니까 대표가 애원하고 장난 아니었음;; 대표가 꼰대라서 나한테는 이렇게 안 했는데...)
물론 내 입장에서 상대적으로 많이 안 해본 분야인 '프론트엔드' '백엔드' 분야도 더 해보고 싶긴 하다. 같은 UI개발이어도 플랫폼을 바꿔서 개발하면 신기하고 재밌다. 근데 작업 난이도 자체가 높은 것은 아니라서 바로... 만들긴 하더라. 시간만주면 누구나 만들 정도면 진입장벽은 상대적으로 낮은 것 같다. 물론 진입장벽이 낮다는 것이 중요하지 않다는 의미는 아니다. 나는 클라 서버든 기본은 다 할 줄 알아야 한다고 믿는다.
나는 약간 성향이 독특한 것 같은데 보통 사람들은 '서브스킬: 20점' 수준을 생각할 때, 나는 60점 정도까지 숙련도를 끌어올리고 싶어한다. 이건 그냥 내 성향상 이것저것 제너럴하게 해보는 걸 좋아해서 그런 듯 싶다(그래서 책도 분야를 섞어서 읽는건가..?) 나쁜 성향은 아니라고 본다. 기본적으로 기술에 대한 욕심이 많다는 소리니까.
아무튼, 요즘 회사 코어로직을 보면서 분석을 해보려고 노력하고 있다. 나는 뭐 욕심이 많은 만큼, 내가 생각하는 이상적인 개발자의 모습(메인 스택 80점 + 서브스택 60점 + 기술적 깊이 deeply)으로 가고자 노력할 것이다. 회사에서 인정 받으려면 코어기술, 제너럴한 기술 무엇하나 놓쳐서는 안 된다고 생각하고 있다.
개인적으로 오히려 '기술을 가진 기업'에서 성장하기에 더 적합하다고 생각한다. 특정 분야에서 N년 경력이 쌓이는 것도 충분히 전문성을 쌓는 길이지만, 기술 기반의 회사에서 코어로직 다 뽑아먹는 방향성도 나쁘지 않다. 몇 년 빡세게 구르면 내부에서 핵심 개발자될 수 있는데, 이걸 어떻게 참아? ㅋㅋ
아무튼... 이런 방향성으로 성장할 수 있다는 것을 조금씩 알게 되는 것 같다.
'프로그래밍 > 개발 이야기' 카테고리의 다른 글
더욱 인정받는 개발자가 되려면... (0) | 2025.04.05 |
---|---|
경력 3년 개발자 구직 후기 (0) | 2025.04.03 |
열등감을 땔감삼아 성장하는 법 (0) | 2025.03.31 |
Z세대에게 필요한 '바닥 정신' (0) | 2025.03.30 |
Z세대에 대한 생각(자기객관화...) (0) | 2025.03.29 |
댓글