변화하는 개발자의 Role

예전에는 개발자의 실력을 논할 때 Muscle Memory 이라는 표현이 어울렸던 것 같다. 디자인 패턴을 몸에 익히고, Side Effect를 줄이기 위해 함수형 프로그래밍을 적용하며, 유지보수하기 쉬운 설계를 위해 IoC나 객체지향 원칙을 실전에 바로바로 녹여내는 것이 개발자의 가장 큰 미덕이자 실력이었다.

하지만 최근 ‘바이브 코딩’을 체험하며 느낀 점은, 이제 그런 ‘구현’의 영역은 AI가 메인으로 수행하는 시대가 되었다는 것이다. 이제 개발자의 역할은 직접 코드를 작성하는 ‘Writer’에서, AI가 작성한 초안을 검토하고 교정하는 ‘Code Reviewer’에 더 가까워지고 있다.

AI는 만능이 아니다: 여전히 기본기가 중요한 이유

AI가 코드를 쏟아낸다고 해서 개발자가 뇌를 비워도 된다는 뜻은 아니다. 오히려 그 반대다. 최근 출장에서 경험했듯, AI는 복잡한 보안 환경이나 특정 프로토콜(예: MQTT TCP Connection 유지) 문제에서 비효율적이거나 불가능한 답변을 내놓기도 한다.

이런 상황에서 우리가 길을 잃지 않기 위해 필요한 것이 바로 컴퓨터 공학의 기본기다.

  • 방향성 제시: AI는 구현 그 자체를 목적으로 삼지만, 개발자는 그 결과물이 ‘우아한 방향’으로 갈 수 있도록 가이드해야 한다.
  • 질문의 수준: Webpack, Vite, Turbopack의 차이를 이해하려면 CSR, JS 모듈 시스템, Babel 같은 근본 개념을 알아야 한다. 이런 지식이 있어야만 AI에게 제대로 된 질문을 던질 수 있다.
  • 검증 능력: AI가 짠 알고리즘이 오버헤드를 일으켜 브라우저를 뻗게 만들 때, 이를 잡아낼 수 있는 것은 결국 자료구조와 알고리즘 같은 기초 지식이다.

‘깊이’만큼 중요한 ‘넓은 시야’

과거에는 프론트엔드 개발자라면 FE 스택만 깊게 파는 것이 정석이었다. 하지만 이제는 쏟아지는 수많은 패키지와 프레임워크들의 아이디어를 넓고 다양하게 파악하는 능력이 중요해졌다고 생각한다.

직접 오픈소스를 포크해서 밑바닥까지 공부하지 않더라도, “이런 패러다임이 있구나”를 알고 있으면 AI와 대화할 때 “이런 개념을 참고해서 구현해줘”라고 제안할 수 있다. i18n이나 다크모드 구현처럼 매번 설정법이 바뀌어 러닝커브가 발생하는 지점들을 AI를 통해 효율적으로 해결하되, 개발자는 그 상위의 구조를 설계하는 데 집중해야 한다.

회고: 결국은 본질로

재작년에 SQLD와 정보처리기사를 취득하며 기초 이론을 다시 다졌던 경험이 떠오른다. 당시에는 “실무에서 굳이?”라는 생각이 들 수도 있었지만, 결국 데이터베이스의 정규화나 네트워크의 기본 개념 같은 본질적인 지식들이 AI의 결과물을 리뷰하는 가장 강력한 무기가 되고 있다.

컴퓨터 공학의 큰 틀은 쉽게 바뀌지 않는다. 새로운 패러다임이 나와도 그 뿌리는 같다. 앞으로의 개발자는 AI라는 뛰어난 신입 개발자를 옆에 두고, 탄탄한 기본기를 바탕으로 정답을 골라내고 최적의 경로를 지시하는 ‘오케스트라의 지휘자’ 같은 역량을 키워야 하지 않을까 싶다.

앞으로도 단순히 기술을 소비하는 것을 넘어, 기본기를 채우고 트렌드를 넓게 읽는 공부를 계속해 나아가자.