안녕하세요. 인포그랩에서 DevOps 엔지니어로 일하는 Chris입니다. 요즘 IT 업계에서는 ‘인공지능(AI)’만큼 센세이셔널한 키워드를 찾기 어려울 정도로 이 기술이 핫 이슈입니다. 특히 생성형 AI가 비약적인 속도로 발전하면서 이제 AI를 뺀 일상을 상상할 수 없는 시대가 됐는데요. 5~10년 전만 해도 우리는 구글이나 네이버에서 직접 검색하며 궁금증을 해소했습니다. 요즘은 AI에 질문만 하면 내가 원하는 정보를 바로 답변받을 수 있죠. 심지어 AI는 ‘내가 알고 싶어할 법한 정보’까지 예측하고, 답변도 바로 찾아줍니다.

생성형 AI 도구 Claude, Perplexity, ChatGPT 모바일 화면(왼쪽)과 Perplexity에서 AI가 철학적인 질문에 답변한 내용 | 인포그랩 GitLab
생성형 AI 도구 Claude, Perplexity, ChatGPT 모바일 화면(왼쪽)과 Perplexity에서 AI가 철학적인 질문에 답변한 내용

AI가 떠먹여 주는 건 이뿐만이 아닙니다. 소위 개발자의 영역으로 불리던 ‘코딩’, ‘설계’ 업무에도 AI가 들어오기 시작했죠. 요즘 개발자 사이에는 이러한 공감대가 형성되기도 합니다. ‘ChatGPT가 있으면 개발자는 필요 없다’, ‘Perplexity가 모든 일을 해준다.’ 개발자든, 비개발자든 “AI가 코딩까지 하니까 이제 개발자가 없어지는 거 아냐?”라고 생각합니다. 저는 개발자에서 DevOps 엔지니어로 커리어를 전환했는데요. 이런 이야기를 듣노라면 “진짜 개발자가 없어지면 어떡하지?”라는 생각이 들 때도 있습니다.

그러나 전 AI가 개발자를 대체할 거로 생각하지 않습니다. 오히려 AI가 발전하면서 개발자의 필요성은 부각될 걸로 예상합니다. AI가 개발자를 완전히 대체하는 건 아니며, 개발자 역할은 변화해 AI와 함께 성장하는 형태가 될 것입니다. 이 글에서는 “AI 시대에 개발자는 어떻게 될까?”를 주제로 1990년대~2020년대 개발자 풍경을 스토리텔링하고, 제가 생각하는 개발자 역할을 논하려 합니다.

IT 강국! 대한민국!

IT는 다른 산업과 비교할 수 없을 만큼 급속도로 발전한 보기 드문 산업입니다. 특히 대한민국은 얼마 전까지만 해도 개발도상국이었지만 이제 선진국이자 IT 강국으로 빠르게 도약하며 세계적 기술 경쟁력을 갖췄습니다. 개인에게 컴퓨터와 인터넷이 본격적으로 보급된 시기는 1990년대인데요. 이때부터 IT는 우리 일상에 녹아들기 시작했습니다.

1990년대~2020년대까지 30년의 세월은 강산이 세 번 변할 만큼 길다면 길고, 짧다면 짧은 시간입니다. 이 기간에 글로벌 경제와 산업의 근간은 송두리째 흔들리기도 했는데요. IT도 마찬가지입니다. 기술이 가파른 속도로 발전한 만큼 IT 업계 풍경도 급격히 변화했는데요. IT 업계 근간을 이루는 개발자의 업무도 빠르게 바뀌었습니다. 시기별로 그 내용을 살펴보겠습니다.

1990년대 개발자

Loop Unrolling 적용 전(왼쪽)과 후. 현대 컴파일러는 알아서 ��코드를 변경하기에 프로그램 성능이 개선됨👍 | 인포그랩 GitLab
Loop Unrolling 적용 전(왼쪽)과 후. 현대 컴파일러는 알아서 코드를 변경하기에 프로그램 성능이 개선됨👍

이때 개발자들은 기술 정보와 지식을 머릿속에 저장하고 개발해야 했습니다. 컴파일러 최적화 성능이 좋지 않아 이들은 컴파일러에 최적화된 코드 패턴(Loop Unrolling, Dead Code Elimination 등)을 작성해야 했는데요. 컴퓨터 구조를 모르면 사람의 실수로 성능이 떨어지는 프로그램을 작성하기 일쑤였습니다.

2000년~2010년대 개발자

2000년, 2010년 전 세계 인터넷 사용자 수 비교. 출처=Pingdom | 인포그랩 GitLab
2000년, 2010년 전 세계 인터넷 사용자 수 비교. 출처=Pingdom

1990년대 후반부터 웹 기술이 점진적으로 발전한 이후, 2000년대에는 정보 교류가 인터넷에서 활발히 이뤄졌습니다. 인터넷 검색은 일상화됐고, 휴대전화가 널리 보급돼 이동하면서 인터넷도 이용할 수 있었죠. 특히 2000년대부터 인터넷 사용자는 폭발적으로 증가했는데요. 2000년에는 전 세계에 3억6100만명의 인터넷 사용자가 있었고요. 2010년에는 그 수가 20억명에 육박했습니다.

개발자들도 이러한 시대 흐름에 발맞춰 인터넷 커뮤니티를 형성하기 시작했고요. 온라인에 기반한 문제 해결 방식이 보편화됐습니다. 개발하다 문제가 생기면 ‘다른 개발자도 비슷한 문제를 겪었는지, 이를 어떻게 해결했는지’ 검색하는 건 기본이고요. 블로그나 포럼, Q&A 사이트에 질문을 올리고, 답변을 받으며 문제를 해결했습니다.

이 시기는 인터넷을 ‘정보의 바다’라고 불렀던 시기였죠. 그러나 인터넷에는 수많은 거짓 정보도 있기에 이를 잘 분별해야 했습니다. 사람들은 정보 과부하(information overload)에 걸려 필요한 정보를 선별하려면 긴 시간을 써야 했습니다.

2020년대 개발자

AI 코드 완성 도구 Codeium으로 코드를 리팩토링하는 모습 | 인포그랩 GitLab
AI 코드 완성 도구 Codeium으로 코드를 리팩토링하는 모습

이 시기부터 본격적인 AI 시대가 도래했습니다. 더는 구글에서 직접 검색하고 정보의 바닷속을 헤매지 않아도 됩니다. AI에 질문하면 AI가 이를 토대로 정보를 필터링해 원하는 정보를 바로 제공합니다.

개발자도 AI의 수혜를 입었습니다. 이제 개발 지식과 경험이 부족해도 AI에 질문하고, 원하는 걸 명확히 말하면 AI가 정보의 바닷속에서 필요한 정보를 대신 알아서 찾아주고요. 이로써 원하는 대답을 빠르게 얻을 수 있습니다.

이제 개발자는 컴퓨터 구조를 알 필요가 없어졌습니다. 컴파일러의 현대화로 구조를 몰라도 성능이 나쁜 프로그램이 나오지 않고요. AI가 한번 작성한 코드를 스스로 리팩토링하거나 생성하기도 합니다. 이렇듯 IT의 발전은 개발자 커리어 초기에 필요한 지식의 장벽까지 허물었습니다.

아직 필요한 개발자 역할

출처=픽사베이 | 인포그랩 GitLab
출처=픽사베이

많은 사람이 AI가 인간의 대부분 일을 대체할 걸로 기대합니다. 실제 많은 변화가 일어났죠. 그러나 기대와 달리 완벽한 자동화에 한계가 있고요. 여전히 해결해야 할 문제가 많습니다. 이는 개발 영역에서도 마찬가지입니다. 저는 AI 시대에 아직 인간이 수행해야 할 개발자 역할이 따로 있다고 생각합니다. 그 내용을 하나씩 설명하겠습니다.

AI에 방향 제시

AI가 제대로 동작하도록 방향을 제시하는 역할은 여전히 개발자의 몫입니다. 예를 들어, AI는 코드 방향과 아키텍처를 선택하는 고차원적 활동을 완벽하게 수행하기 어렵습니다. 따라서 AI에 명령을 내리고 명령의 수행 결과를 결정하는 오퍼레이터 역할은 개발자가 계속 수행할 걸로 예상합니다.

물론 AI가 개발자의 코딩 활동을 100% 대체하는 시대가 올 수 있습니다. 그러나 AI는 코드를 실행하기 전까지 ‘이 코드로 문제가 해결될지’ 정확하게 예측하기 어렵습니다. 언젠가 그 예측도 정확히 할 수 있도록 성능이 향상될 수 있겠죠. 그러나 세상에 완벽한 예측은 존재하지 않고요. 예측하지 못한 이례적 사건이 AI 결과물에도 나타날 수 있습니다. 인간의 통찰과 신속한 개입은 이러한 불확실성을 대비하는 데 보완재 역할을 할 것입니다.

기술 부채 해결

기술 부채를 해결하는 것도 개발자의 역할이라고 생각합니다. 새로운 시대가 지나온 길에는 오래된 시대, 달리 표현하면 ‘기술 부채’가 남습니다. 서비스 발전 속도는 여러 가지 이유로 기술 발전 속도를 따라가기 어려운데요. 기업은 신규 서비스를 출시할 뿐만 아니라, 기존 서비스를 유지 보수하고 업그레이드해야 하기도 합니다. 그 역할의 주체는 개발자고, 앞으로도 그럴 것입니다.

기술 부채를 해소하려면 인간의 통찰과 개입, 팀워크 등 휴먼 터치가 필요합니다. 기술 부채를 정리하려면 회고가 먼저 이뤄져야 하고요. 이를 언제, 어떻게 해결할지 결정하려면 팀 간 논의가 있어야 하죠. 물론 기술 부채를 해결할 때 AI로 자동화할 수 있는 일도 있습니다. 코드 리뷰, 리팩토링, 테스트 코드 작성이 그 예죠. 이러한 작업은 AI에 맡기되, 인간과 AI가 시너지를 내 기술 부채를 해결하는 노력이 필요합니다.

맺음말

시대별로 개발자 역할은 늘 변화했습니다. 우리가 최첨단 기술과 서비스를 사용해도 개발자는 여전히 필요할 것입니다. 단, 미래에 개발자 역할은 지금과 다를 수 있습니다. 오늘날 기술 발전은 가속화되고, 기술 트렌드는 빠르게 변화하고 있습니다. 개발자는 새로운 프레임워크, 프로그래밍 언어, 도구를 발견하고, 업무에 민첩하게 접목할 줄 알아야 합니다. 나아가 기술 또는 개발자 역할 가운데 ‘변하지 않는 가치는 무엇인지’ 분별하고, 이를 시대 흐름에 맞춰 구현하는 것도 생존과 성장에 도움이 될 수 있습니다.

참고 자료

  1. 개인용 컴퓨터
  2. Loop unrolling
  3. Dead-code elimination
  4. Number of software developers worldwide in 2018 to 2024
  5. 생성형 AI 기반 코딩 툴의 장점과 단점
  6. The incredible growth of the Internet since 2000
  7. 인공지능 업계, ‘세 번째 AI겨울’ 올까
  8. #데이터고갈(the Lack of data for AI)

DevOps와 GitLab에 대한 고민과 궁금증, 인포그랩과 함께 해결하세요.