신입, 기본기에 충실하라
신입은 기본기에 충실하라는 말들이 여럿 보인다. 그리고 비난과 비판 여론도 좀 있는 것 같다. 까놓고 말해서 내가 좀 정리를 하려고 하는데, 신입보고 기본을 하라는 이유를 생각해보자.
분산 시스템 환경에서 신입이 모든 인프라와 모든 서버를 만들어보는 경험을 통해 취업을 했다고 하더라도, 커다란 인프라 속에 하나를 제대로 만드는 능력이 필요하기 때문에 기본이 안되어있으면 운영 환경에 올라갈 서버를 제작하기 어렵다.
네트워크, 데이터베이스, 운영체제, 자바, 스프링 정도만 잘 알아도 하나의 서버를 구축하긴 어렵지 않지만 신입은 아무리 잘해도 항상 한계에 부딪힌다. 물론 변수는 늘 있다.
그렇다고 해서 신입에게 신기술 학습을 막는 것은 웃긴 얘기다. 섣불리 이런 말을 하면, 신입들이나 주니어들을 기본기가 안되었다라는 명목으로 틀에 가둬둘 수 있기 때문이다.(내가 경험한 것은 쿠키 세션만 알고 jwt 는 몰랐던 9년차 자바 스프링 개발자)
애초에 좋은 회사는 당신의 경험을 공감할 줄 안다. 당신이 분산 환경을 “돌아가게” 만들었다면, 그 과정에서 필요한 지식들을 습득 했을 것이다. 그건 기본기가 아니라고 생각하는가?
각종 디버깅에 블로그글, 챗지피티 후려치면서도 강의를 사서 들었을 것이고 키워드에 혹해 부트캠프도 갔을 것이다. 그 모든 행동들이 “잘못된” 행동은 아니다. 면접에서 탈락할만큼은 더더욱 아니다. 그것은 “앎” 에 대한 당신의 탐구능력이고, 열정이다.
이 사실 하나만 알고 있으면 좋겠다. MSA 아키텍처랑 별도의 소프트웨어 공학, 분산 시스템이라는 개념은 국내에 도입된지 얼마 안됐다. 다시 말하면, 키워드가 국내에 부상한 얼마 안됐다는 것. 직접 구축할 수 있는 사람도 많이 없거니와 컨설팅이라고 돈만 빼먹는 사람들이 꽤 존재했기 때문이다. 실제로 당신이 분산 시스템을 구축한 회사를 들어가서 내부 시스템 코드를 보면 “기본기를 잘 지킨 프로젝트” 일까?
참 웃기는 게 뭐냐하면, 실무 경력자들은 신입의 기본기를 원한다. 그런데 정작 회사 프로젝트는 왜 기본이 안되어있는가? 그럼 취업한 기본기가 되어있는 신입이 머리를 싸매고 전부 바꿔야하는가? 실무는 타협이 가능하면서 왜 신입 개발자들한테만 기본기를 강요하는가? 신입이 모르는게 있으면 가르쳐 줄 생각은 없는가? 없다면 당신이 챗지피티보다 나은 사수가 맞는가?
어느 글에는 자바스크립트 개발자가 window 함수를 모르고, 리액트 개발자가 컴포넌트의 개념을 모르면서 면접장에 온다고 한다. 사실일까?
또는 모를수도 있지 않았을까?
내가 바라본 기준에서 경력자가 알아야 할 것들도 모르는 경력자도 많이 있고, 기본기가 안된 경력자는 수도 없이 봤다.
그런 글 봤다고 해서 상처 입지마라. 기본기는 매일 닦아야하고 항상 정진해야 한다. 언어 마스터, 기본기 마스터라는게 현실적으로 가능한가?
당신들 같은 신입들이 많아야 나라의 기술력이 올라가고 프레임이 걷힌다. 정진하고 또 정진하자. 배우고 또 배워라.