끝이 아닌 변화: AI가 컴퓨터 과학을 심층 공학(Deeper Engineering)으로 이끄는 방식
요약
생성형 AI의 등장으로 주니어 개발자의 일자리가 위협받고 있으며, AI는 반복적인 코드 작성이나 루틴한 작업을 자동화합니다. 그러나 시스템 설계, 문제 정의, 그리고 결과에 책임을 지는 고차원적 분석 능력은 여전히 인간의 핵심 역량입니다. 따라서 개발자는 단순 코딩을 넘어 공학적 사고방식으로 역할을 전환해야 합니다.
핵심 포인트
- AI는 패턴 기반의 루틴한 코드 작성 및 작업을 자동화한다.
- 주니어 레벨 일자리는 AI가 대체하기 쉬운 영역에서 감소하는 추세다.
- 개발자의 핵심 가치는 설계, 분석, 그리고 문제 해결에 대한 책임이다.
- 단순 구현보다 공학적 사고방식(Engineering Mindset)이 중요해지고 있다.
만약 지금 컴퓨터 과학을 공부하고 있거나, 막 졸업했다면, 아마도 'AI가 코드를 작성하니 이제 무슨 소용인가?'라는 식의 이야기를 들어봤을 것입니다.
이것은 비합리적인 두려움이 아닙니다. 그 근거가 되는 수치들은 실제로 존재합니다.
이 두려움은 현실이다
Stanford의 Digital Economy Lab 연구원들은 수백만 명에 달하는 미국 노동자들의 급여 데이터를 조사했고, 불편한 사실을 발견했습니다. 생성형 AI(generative AI)가 등장한 이후, AI에 가장 많이 노출되는 직종에서 22세에서 25세 사이의 근로자들은 다른 집단 대비 고용이 약 13% 감소했습니다. 특히 젊은 소프트웨어 개발자의 경우, 고용률이 2022년 후반 최고점 대비 거의 20%나 떨어졌습니다.
그리고 이것이 주로 해고 때문만은 아닙니다. 젊은 사람들이 밀려나는 것이라기보다는 아예 채용되지 못하는 상황에 가깝습니다. 기업들이 단순히 주니어(junior)급 인력을 적게 고용하고 있는 것입니다.
따라서 불안감을 느낀다면, 당신의 상상이 아닙니다. 기반 자체가 움직이고 있습니다.
하지만 같은 연구 자료에는 제가 헤드라인보다 더 중요하다고 생각하는 세부 사항이 담겨 있으며, 이 글은 바로 그 부분에 초점을 맞출 것입니다.
AI가 실제로 자동화하는 것들
AI가 어떤 종류의 작업을 대체하고 있는지 살펴보세요.
Stanford 팀은 주니어 레벨의 일자리가 주로 AI가 **자동화(automates)**할 수 있는 역할에서 감소했다고 밝혔습니다. 예를 들어, 완전한 코드를 생성하거나, 루틴한 요청을 처리하거나, 표준 문서를 생산하는 작업들입니다. 반면, AI가 사람들을 **보강(augments)**하여 복잡한 문제를 해결하거나 더 나은 결정을 내리도록 돕는 역할에서는 젊은 근로자들의 고용이 안정적이거나 심지어 증가했습니다.
소프트웨어 분야에서 자동화된 부분은 알아차리기 쉽습니다. 보일러플레이트(Boilerplate) 코드, CRUD 엔드포인트(CRUD endpoints), API에 양식을 연결하는 작업, 한 형식의 데이터를 다른 형식으로 변환하는 것, 로그인 페이지를 백 번째 버전으로 작성하는 등의 일입니다. 이것들은 패턴을 따르는 작업이며, 패턴은 AI가 가장 잘하는 영역입니다.
반면, AI가 훨씬 취약한 부분은 패턴을 따르지 않는 영역입니다. 즉, 시스템이 어떻게 구축되어야 할지 결정하는 것, 왜 실패했는지 이해하는 것, 문제가 발생하기 전에 무엇이 잘못될 수 있는지 아는 것, 그리고 그 결과에 책임을 지는 것입니다.
그 차이가 바로 이 글의 핵심입니다.
왜 일상적인 개발 작업은 나에게 공학처럼 느껴지지 않았는가
이 부분은 개인적인 이야기임을 분명히 밝힙니다.
진정으로 기능(feature)을 만드는 것을 좋아하는 개발자들도 많고, 매일 깊고 진지한 엔지니어링 작업을 수행하는 개발자들도 많습니다. 이는 그들을 판단하려는 것이 아닙니다.
하지만 저에게는 일상적인 개발 작업이 항상 반복적으로 느껴졌습니다. 알고리즘, 운영체제(OS), 네트워크, 컴퓨터 아키텍처, 이론을 4년간 공부한 후에도, 졸업생들에게 남겨진 작업의 상당 부분이 이전 프로젝트와 거의 똑같이 보이는 코드를 작성하는 것이라는 사실에 계속 의문을 품었습니다. 그것이 제가 배운 모든 것의 목적처럼 느껴지지 않았습니다.
그리고 저만 그렇게 느낀 것은 아니라고 생각합니다.
다른 공학 분야는 어떻게 작동하는가
다른 공학 학문들을 살펴보세요.
토목 엔지니어는 다리를 설계합니다. 하중을 계산하고, 재료를 선택하며, 지진과 홍수에 대비하고, 안전에 서명합니다. 하지만 콘크리트를 붓거나 강철을 용접하는 것은 아닙니다. 건설 인력이 엔지니어가 설계한 대로 수행합니다.
전자 공학자는 회로를 설계하고 그것이 어떻게 작동해야 할지 결정합니다. 하지만 보드는 기술자들과 생산 라인에 의해 조립되고 제조됩니다.
두 경우 모두에서, 엔지니어의 가치는 설계, 분석, 그리고 책임에 있습니다. 건물은 다른 사람들에 의해 완성되는 것입니다.
컴퓨터 과학은 예외였습니다. 수십 년 동안 CS 졸업생들은 엔지니어이자 빌더(builder)여야 한다는 기대가 있었고, 대부분의 초급 직무는 '빌딩' 쪽에 크게 치우쳐 있었습니다.
AI가 이 균형을 바꾸기 시작했습니다. AI가 점차 '빌딩' 작업을 할 수 있게 된다면, 인간의 가치는 다른 엔지니어들이 항상 집중해 온 부분으로 이동하게 됩니다.
컴퓨터 과학의 공학적 측면
여기서 희망이 생깁니다.
단순히 코드를 생산하는 것을 넘어 시스템을 이해하고 설계하는 것에 관한 컴퓨터 과학의 전체 영역이 존재합니다:
- 시스템 설계 및 아키텍처 (System design and architecture): 서비스들이 어떻게 결합되는지, 데이터가 어떻게 흐르는지, 시스템이 어떻게 확장하는지, 그리고 일부 구성 요소에 문제가 생겼을 때 무슨 일이 발생하는지를 결정합니다.
- 네트워크 엔지니어링 (Network engineering): 데이터가 실제로 장치 간에 어떻게 이동하는지 이해하고, 그 이동을 빠르고, 안정적이며, 안전하게 유지하는 것입니다.
- 사이버 보안 (Cybersecurity): 공격자처럼 생각하며 취약점을 찾고 방어 체계를 설계합니다. AI가 공격을 더 빠르고 저렴하게 만들면서, 이 분야는 적은 인력이 아닌 더 많은 인력을 필요로 합니다.
- 인프라 및 신뢰성 엔지니어링 (Infrastructure and reliability engineering): 시스템이 계속 작동하도록 유지하고, 장애를 진단하며, 복구되도록 설계합니다.
이러한 역할들은 컴퓨터 과학 학위가 정확히 무엇을 가르치는지에 따라 달라집니다. 운영체제가 자원을 어떻게 관리하는지, 네트워크가 패킷을 어떻게 라우팅하는지, 데이터베이스가 데이터를 일관되게 유지하는 방법, 그리고 분산 시스템이 시계가 불일치하고 메시지가 손실될 때 어떻게 작동하는지를 배웁니다.
그리고 사람들은 이미 이런 방향으로 움직이고 있습니다. 미국 데이터를 분석한 한 자료에 따르면 2023–24년 컴퓨터 과학 졸업생 코호트의 약 31%만이 소프트웨어 개발자로 일하는 것으로 나타났는데, 이는 2019–20년도 코호트의 약 39%와 비교됩니다. 컴퓨터 과학 졸업생들은 더 넓은 범위의 역할로 퍼져나가고 있습니다.
솔직히 말하자면: 이 변화는 쉽지 않을 것이다
이것을 간단하게 들리게 만든다면 제가 잘못하는 것입니다.
이러한 엔지니어링 역할들은 대학 졸업 직후에 쉽게 진입할 수 있는 분야가 아닙니다. 시스템 설계는 보통 실제 시스템이 성장하고 고장 나는 것을 본 경험을 요구합니다. 보안 역할은 종종 실습 기술과 경험을 기대합니다. 네트워크 및 인프라 관련 일자리는 자체적인 인증서와 가파른 학습 곡선을 동반합니다. 그리고 경쟁도 치열합니다.
스탠퍼드 연구원들조차 AI가 주니어 채용 감소의 유일한 원인이라고 말하는 것은 아니며, 아무도 이것이 정확히 어떻게 전개될지 알지 못한다고 조심스럽게 말하고 있습니다.
따라서 이것은 AI가 더 나은 직업을 손에 쥐여줄 것이라는 약속이 아닙니다. 어디를 목표로 삼아야 하는지에 대한 제안입니다. 희망은 솔직할 때 가장 잘 작동합니다.
실제 엔지니어링 기술을 쌓기 시작하는 곳
만약 아직 공부하고 있다면, 당신에게는 소중한 자원인 '시간'이 있습니다. 제가 이 시간을 어떻게 활용할지 알려드리겠습니다.
기본기를 진지하게 다지세요. 운영체제(Operating systems), 컴퓨터 네트워크(computer networks), 데이터베이스(databases), 컴퓨터 아키텍처(computer architecture)는 많은 학생들이 서둘러 지나치는 과목들입니다. 하지만 이 과목들이 바로 위에 언급된 모든 역할의 기초이며, AI가 당신을 대신하여 배울 수 없는 영역이기도 합니다.
작동 원리뿐만 아니라 고장 나는 원리를 배우세요. 회사들의 장애 발생 후 사후 분석 보고서(postmortem)를 읽어보세요. 작은 서버를 직접 구축해보고 그것을 다운시키는 과정을 시도해보세요. 디스크가 가득 차거나, 인증서가 만료되거나, 네트워크 분할(network partition)로 인해 시스템이 두 부분으로 나뉠 때 무슨 일이 발생하는지 배우는 것입니다. 엔지니어에게는 '실패를 아는 것'이 중요합니다.
실제 시스템을 다뤄보세요. 오래된 노트북이나 저렴한 클라우드 계정이라도 작은 홈 랩(home lab)을 구축해보세요. 네트워크를 구성하고, 방화벽을 설정하며, 데이터베이스를 실행시키고, 그것을 고장 내보고 다시 고치는 과정을 거치세요. 보안 분야에서는 초보자에게 친숙한 CTF(Capture-the-flag) 챌린지를 시도해 보세요.
AI를 대체재가 아닌 과외 선생님으로 사용하세요. AI에게 개념 설명을 요청하거나, 퀴즈를 풀게 하거나, 디자인을 검토하게 하세요. 하지만 항상 '당신'이 그 답을 이해하고 있는지 확인해야 합니다. 만약 AI가 작성한 코드를 당신이 설명할 수 없다면, 당신은 AI보다 더 가치 있는 것을 아무것도 배우지 못한 것입니다.
결정 과정을 설명하는 연습을 하세요. 엔지니어링이란 트레이드오프(trade-offs)에 관한 학문입니다. 프로젝트를 구축할 때, 왜 다른 접근 방식 대신 이 방식을 선택했는지 반드시 기록하세요. 이러한 습관이야말로 해당 직무 면접에서 정확히 테스트하는 것입니다.
끝이 아닌 변화
AI는 컴퓨터 과학을 변화시키고 있으며, 막 시작하는 많은 사람들에게 그 변화는 고통스러울 수 있습니다. 저는 그렇지 않다고 가장하고 싶지 않습니다.
하지만 이것이 끝이라고도 생각하지 않습니다. 오히려 이 분야를 본래의 모습으로 밀어붙이고 있을지도 모릅니다. 즉, 단순히 코드를 작성하는 것을 넘어 시스템을 충분히 깊이 이해하여 설계하고, 보호하며, 그에 대한 책임을 질 수 있는 수준입니다.
토목 엔지니어들이 모든 벽돌을 놓는 것은 아닙니다. 어쩌면 곧 컴퓨터 과학자들 역시 모든 줄의 코드를 작성하지 않을지도 모릅니다. 그리고 이것은 손실이 아니라, 우리가 학위로 갖게 된 엔지니어가 되어볼 수 있는 기회일 수도 있습니다.
양쪽 모두의 의견을 듣고 싶습니다. 만약 학생이라면, 이러한 변화가 걱정되나요 아니면 기대되나요? 그리고 경험 많은 엔지니어라면, 일상적인 코딩이 이 직업의 진정한 핵심이었다고 생각하시나요?
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기