스스로를 시니어 개발자라고 부르는 것도, 시니어랍시고 주니어들에게 조언하는 것도 아직은 부담스럽다. 그럼에도 요즘 멘토링을 꽤 많이 하고 있다. 지금 멘토링을 받고 있는 분들, 그리고 앞으로 만나게 될 주니어 개발자들에게 조금이나마 도움이 되었으면 하는 마음으로 이 글을 써본다.
여기서 말하는 회사는 소위 ‘판교어’가 익숙한 테크 기업을 의미한다.
앞으로 어떤 개발자가 필요할까
얼마 전 클로드 코드를 만든 보리스 체르니가 미래에 일하는 사람의 다섯 가지 원형을 이야기한 적이 있다.
Prototyper는 아이디어를 빠르게 만들고 버리는 사람, Builder는 그 아이디어와 프로토타입을 실제 서비스로 만드는 사람, Sweeper는 이미 만들어진 것을 정리하고 단순화하는 사람, Grower는 출시된 제품을 계속 개선하 며 키우는 사람, Maintainer는 제품과 시스템이 안정적으로 돌아가도록 책임지는 사람이다.
공감하지 못하는 사람도 많을 것이다. 대기업에서 거대한 조직과 레거시 시스템을 다뤄온 개발자와, 작은 스타트업에서 제품을 처음부터 끝까지 만들어본 개발자의 생각은 당연히 다를 수밖에 없다.
다만 AI가 개발자의 일하는 방식을 바꾸고 있다는 사실 자체는 부정하기 어렵다. 그리고 지금 취업이나 이직을 준비하고 있다면, 이 변화가 왜 이렇게까지 뜨거운 논쟁거리가 되었는지는 한 번쯤 진지하게 생각해볼 필요가 있다.
지금 개발자 채용시장은
신입 개발자의 취업은 앞으로 더 어려워질 가능성이 높다.
팬데믹 시절부터 개발자 멘토링을 시작했는데, 그때만 해도 열심히 준비한 주니어라면 이력서를 다듬고 기술 면접을 준비해서 원하는 회사에 붙는 경우가 많았다.
그런데 지금은 다르다.
멘토링을 하다 보면 나조차 난감할 때가 많다.
‘이분은 왜 안 될까?’
‘면접도 잘 본 것 같은데 왜 계속 떨어질까?’
예전에는 할 일은 많은데 사람이 없어서 채용하는 회사가 많았다. 지금은 개발자 한 명을 뽑는 데 훨씬 더 많은 시간을 쓰고 신중해졌다.
AI를 활용하면 정해진 시간 안에 어느 정도의 제품을 만들어 배포할 수 있고, 적은 인원으로도 비즈니스를 이어갈 수 있다고 생각하는 회사가 많아졌기 때문이다.
FE 개발자라면 무엇을 해야 할까
프론트엔드 개발자를 시작하는 이유는 사람마다 다르겠지만, 화면에 내가 만든 결과물이 나타나고 실제 사용자가 그것을 사용하는 경험 때문에 시작하는 경우가 많다.
그래서인지 FE 개발자에게 백엔드 개발을 이야기하면 생각보다 거부감이 크다. 특히 컴퓨터공학을 전공하지 않았다면 백엔드에 대한 막연한 두려움도 있다.
하지만 이제는 조금 다른 질문을 해봐야 한다.
‘AI 시대에 내가 회사에 줄 수 있는 가장 큰 가치는 무엇일까?’
그렇다고 억지로 풀스택 개발자가 될 필요는 없다.
FE에서 누구보다 뛰어난 사람이 되는 길도 있다. 애니메이션 구현에 몰입해서 그 분야의 전문성을 가진 개발자가 될 수도 있고, 구글의 UX 엔지니어처럼 특정 영역에서 두각을 나타낼 수도 있다.
React를 깊이 이해해서 AI가 작성한 코드의 문제를 짚어내고, 더 나은 구조로 리팩토링할 수 있는 개발자가 될 수도 있다.
중요한 건 AI가 쉽게 따라오기 어려운 나만의 전문성을 갖는 것이다.
회사는 왜 나를 뽑아야 하는가
한 발 떨어져서 생각해보자.
‘회사는 왜 나를 채용하고 월급을 주는가?’
내가 지금 개발자로서 하고 있는 일이 정말 어려운 일인가.
그렇지 않다면 새로운 무기가 필요하다.
AI가 코드를 만들어주는 시대에는 코드를 짤 줄 안다는 것만으로는 부족하다. AI가 만든 코드가 실제 서비스에 사용해도 되는 코드인지 판단할 수 있어야 한다.
취약점을 찾아낼 수 있어야 하고, 성능 문제를 발견할 수 있어야 하며, 잘못된 설계는 고칠 수 있어야 한다.
무엇보다 왜 그렇게 고쳤는지 설명할 수 있어야 한다.
Builder가 될 것인가, Sweeper가 될 것인가
앞서 말한 다섯 가지 역할 중 개발자에게 특히 중요한 역할은 Builder와 Sweeper라고 생각한다.
Builder는 빠르게 제품을 만드는 사람이다.
하나의 기술만 잘하는 것이 아니라 FE, BE, DB, 인프라까지 어느 정도 이해하고 필요하면 직접 연결할 수 있다. 웹과 앱을 가리지 않고 초기 배포까지 책임지며, 다른 직군과 소통하고 비즈니스에 대한 이해도 어느 정도 갖춰야 한다.
기술 하나를 깊게 파는 것보다 다양한 기술을 경험하면서 아이디어를 실제 제품으로 만들어내는 능력이 중요하다. 특히 작은 스타트업에서는 이런 사람이 강력하다.
반대로 Sweeper는 깊이가 있는 사람이다.
AI가 만들어낸 코드를 그대로 받아들이지 않는다. 왜 이렇게 작성되었는지 이해하고, 문제가 있으면 찾아내고, 더 나은 구조로 바꾼다. 그리고 그 이유를 다른 사람에게 설명할 수 있다.
결국 AI가 만들어낸 결과물을 비판적으로 바라보고 책임질 수 있는 능력이다.
이 둘은 서로 반대되는 개념이 아니다.
처음에는 Builder로 넓게 경험하다가, 그 과정에서 좋아하고 잘하는 영역을 발견해 Sweeper로 깊어질 수도 있다. 반대로 회사의 요구에 따라 Builder 역할을 하다가, 제품과 시스템이 안정화되면서 Sweeper 역할을 맡게 될 수도 있다.
중요한 건 둘 중 하나를 선택하는 것이 아니라, 필요에 따라 두 역할을 오갈 수 있는 개발자가 되는 것이라고 생각한다.
주니어의 취업은 누가 봐도 예전보다 어려워졌다.
하지만 반대로 생각해볼 수도 있다.
AI는 주니어에게 과거에는 가질 수 없었던 능력을 한순간에 줬다. 예전에는 몇 년의 경험이 있어야 접할 수 있었던 기술들을 이제는 AI의 도움을 받아 직접 써볼 수 있다.
물론 10년 넘게 현업에서 일하면서 얻은, 흔히 말하는 ‘암묵지’까지 따라갈 수는 없다.
하지만 회사가 어떤 사람을 채용할지 생각해볼 필요가 있다.
AI를 잘 활용해서 빠르게 성장하는 1~2년 차 개발자와, AI를 제대로 활용하지 못하는 10년 차 개발자 중 어느 쪽이 더 나은 선택인지 단순히 연차만으로는 판단하기 어려워졌다.
이제 중요한 건 연차가 아니다.
무엇을 만들 수 있고, 무엇을 이해하고 있으며, 어디까지 책임질 수 있는가.
과거의 취업공식을 버릴 필요가 있다
과거에는 비교적 명확한 공식이 있었다.
코테를 공부하고, 기술 면접을 준비하고, 사이드 프로젝트를 만들고, 좋은 이력서를 쓰면 됐다.
물론 지금도 필요하다.
하지만 그것만으로는 충분하지 않다.
대혼란의 시대에 과거의 취업공식만 붙잡고 있는 건 위험하다.
‘혹시 모르니까 알고리즘을 더 공부해야지.’
‘면접 문제를 더 외워야지.’
이것만 반복하기보다 한 발짝 떨어져서 생각해봐야 한다.
AI를 활용하면 나는 무엇까지 할 수 있는가.
그리고
그중에서 AI가 만든 결과물을 내가 책임질 수 있는 부분은 어디까지인가.
그래서
그래도 우리는 코드를 읽고 작성해봤던 사람들이다.
비개발자가 AI를 활용해 앱을 10개 만들었다고 해서 그 사람이 곧바로 좋은 Builder가 되는 것은 아니다.
우리는 코드를 볼 수 있다.
AI가 만든 코드를 읽고, 뭐가 잘못됐는지 판단하고, 왜 문제인지 설명하고, 어떻게 고쳐야 하는지 지시하고, 그 결과가 실제 서비스에서 안전하게 동작하는지 책임질 수 있다.
AI를 사용해서 무작정 만들어내는 사람과, AI를 활용해 가장 좋은 결과물을 만들어내고 그 결과에 책임질 수 있는 사람의 가치는 다르다.
그러니 스스로를 주니어라고 가두지 않았으면 좋겠다.
시 니어가 되는 것을 기다릴 필요도 없다.
지금부터 시니어처럼 생각해보자.
AI가 개발자에게 마법 지팡이를 줬다.
그러니 너무 겁먹지 말고, 자신감을 갖고 마음껏 주문을 외워봤으면 좋겠다.