오래전, 아마도 1990년대로 기억하는 시기에 우리나라 최초의 SI기업이었던 쌍용정보통신의 대표가 신문에 기고했던 칼럼의 내용이 아주 인상깊게 각인이 된 적이 있다. 요약하면 ‘후진국은 저렴한 임금을 무기로 선진국과 제조업 경쟁에서 우위를 가지고 성장했지만 제조업 종사자의 개인별 생산성 측면에서는 선진국이 후진국보다 경쟁력이 높다. 하지만 제조업에서의 개인별 생산성 차이는 커야 두세배에 지나지 않는다. 임금이 1/10이라면 비록 후진국의 개인별 생산성이 뒤져도 비용대비 생산성은 충분한 경쟁력이 나온다. 하지만 소프트웨어 분야에서는 그렇지 않다. 후진국과 선진국 개발자의 생산성 차이가 많게는 100배 이상도 날 수 있기 때문이다. 따라서 소프트웨어 산업은 저렴한 임금을 무기로 후진국이 선진국을 따라잡을 수 없다’라는 내용이다.
여전히 미국은 세계 최고의 경쟁력을 가진 소프트웨어 강국이다. 실리콘밸리의 임금 수준은 세계 최고 수준을 자랑하지만 여전히 강력한 경쟁력을 유지하고 있다. 이는 미국 소프트웨어 기업의 개발자 수준이 세계 최고이기 때문이다. 하지만 미래는 어떻게 될까?
지금까지 개발자의 실력을 좌우하는 것은 코딩 실력이라고 생각돼 왔다. 즉 ‘코딩을 잘하는 개발자’가 개발자로의 성공의 중요한 조건이었지만, IT 산업이 빠르게 변화하면서 이제는 그 이상이 요구되고 있다. 단순히 뛰어난 코딩 실력만으로는 우수한 개발자가 되는 것은 고사하고 살아남기조차 어려운 시대가 오고 있는 것이다. 그렇다면 미래의 개발자는 어떤 역량을 갖춰야 할까?
우선 문제 해결 능력과 논리적 사고력을 강화해야 한다. 1990년대 클라이언트/서버 붐이 한창이던 시절 갑작스러운 개발자 수요 폭발로 인해 초급 개발자를 구하는 것이 매우 어려운 시절이 있었다. 그때 회자되었던 농담이 ‘개발자의 전공 중 제일 많은 비중을 차지하는 것인 불문과다’라는 것이다. 개발자 채용에 대부분의 기업이 ‘전공 불문’ 이라는 조건을 달았기 때문이었다.
그래서 당시 유명했던 비트컴퓨터 학원의 6개월 개발자 과정을 이수한 인력들이 개발 시장에 많이 투입되었다. 이들은 프로그램 코딩의 문법과 작성에 대해 잘 배웠지만 실전에서 보면 컴퓨터공학이나 전산학을 전공한 인력과 분명한 차이가 있었다.
프로그램 코딩이 단순히 문법을 익히는 것이 아니라 논리를 구현하는 작업인 것처럼, 개발자에게는 문제 해결 능력이 필수적이다. 단순히 요구사항을 구현하는 것이 아니라, 문제의 본질을 파악하고 최적의 해결책을 찾는 능력이 중요하다. 이를 위해 알고리즘, 데이터 구조, 디자인 패턴 등 기본 CS 지식은 여전히 강력한 무기다. 이런 기본적인 배경 지식이 있는 것과 없는 것은 장기적으로 분명한 차이를 가져온다. 이를 위해 개발자는 알고리즘 & 데이터 구조 학습, 시스템 설계, 문제 해결 역량 등을 강화하여야 한다.
다음으로 커뮤니케이션과 협업 능력이 중요하다. 과거에는 개발자가 코드만 작성하면 됐지만, 이제는 기획자, 디자이너, 마케팅 팀과의 협업이 필수적이다. 특히 생성형 인공지능의 발전으로 단순 코딩 영역이 점차 자동화되는 상황으로 발전하는 상황에서 개발자의 역할이 단순한 ‘기능 구현자’에서 ‘문제 해결사’로 확장되면서, 비개발자와 원활하게 소통하는 능력이 중요해지고 있다. 이와 관련하여 코드 리뷰, 기술 문서 작성, 프레젠테이션 등의 소통 스킬도 필수적이다.
또한 생성형 인공지능 기반의 자동화된 코딩 시대가 오면 개발자의 실력을 차별화할 수 있는 핵심 역량은 시스템 개발과 관련된 업무 도메인 지식과 비즈니스 이해력이 될 수 있다. 기술은 결국 특정 문제를 해결하기 위한 도구일 뿐이다. 개발자가 자신이 속한 산업(예: 제조, 금융, 헬스케어, 커머스 등)에 대한 이해가 깊을수록, 더 가치 있는 솔루션을 제공할 수 있다. 즉 단순히 ‘어떻게 개발할까?’가 아니라, ‘왜 이 기능이 필요한가?’를 고민할 줄 아는 개발자가 경쟁력을 갖게 된다. 이러한 역량을 키우기 위해서는 특정 산업의 동향 분석, 데이터 기반 의사결정 역랑을 강화해야 할 것이다.
그리고 1990년대부터 지금까지 변하지 않는 중요한 개발자의 역량은 지속적인 학습 능력 및 기술 트렌드에 대한 파악 노력이다. IT분야의 기술은 빠르게 변하고, 현재 주류인 기술이 몇 년 후면 사라질 수도 있다. 그렇기 때문에 IT분야 대학교수들 사이에서 수학이나 물리 심지어 역사학 분야의 교수들을 부러워한다는 우스개 소리도 있는 이유일 것이다. 이와 관련하여 새로운 언어나 프레임워크가 등장했을 때 빠르게 적응할 수 있는 능력도 중요하다. 이러한 역량을 키우기 위해서는 유명한 기술 블로그 구독, 사이드 프로젝트 진행, 오픈소스 기여 등을 통해 가능하다.
‘피할 수 없으면 즐겨라’라는 말처럼 점점 발전하고 있는 생성형 인공지능 기술을 위협으로만 받아들이지 말고 적극적으로 자동화 및 생산성 도구를 활용하는 능력을 키워야 한다. 어차피 미래에는 개발자가 직접 코드를 작성하는 시간이 점점 줄어들게 될 것이기 때문이다. 또한 개발 환경의 대세가 되고 있는 CI/CD, 테스트 자동화, 코드 생성 AI(GitHub Copilot, ChatGPT) 등을 적극적으로 활용하면 개발자의 생산성을 크게 향상시킬 수 있다. 결국 단순 반복적인 업무를 자동화할 줄 아는 개발자가 더 높은 가치를 제공할 수 있다. 이를 위해 데브옵스 기본 개념, AI 코딩 도구 활용, 스크립트 자동화 등의 영역에 대한 역량을 키우는 것을 추천한다.
결국 미래의 개발자는 단순한 프로그램 코딩을 넘어서, 해결하고자 하는 도메인의 문제 해결자로 거듭나야 한다. 즉 단순한 ‘코드 작성자’가 아니라, 문제를 해결하고 가치를 창출하는 전략적 사고를 가진 전문가가 되어야 한다는 것이다. 뛰어난 개발 관련 기술력은 기본이고, 원활한 커뮤니케이션과 협업 능력, 비즈니스 이해력과 지속적인 학습 태도가 필수적이다.
당신은 어떤 개발자가 되고 싶은가?
[email protected]
Read More from This Article: 정철환 칼럼 | 코딩만 잘하면 될까? 미래의 개발자가 갖춰야 할 역량
Source: News