새로운 디지털 격차
20년 넘게 개발자로 일하면서, 그리고 몇 년간 강의를 하면서 느낀 가장 큰 아쉬움은 교육과 현실 사이의 엄청난 괴리다. 학원에서 6개월, 부트캠프에서 1년을 배운 신입 개발자들이 현업에 와서 가장 많이 하는 말이 "학원에서는 안 가르쳐줬어요"다. 하지만 정작 문제는 '안 가르쳐준 것'이 아니라 '잘못 가르쳐진 것'에 있다.
현재 코딩 교육의 가장 큰 문제는 '기술주의'에 빠져 있다는 점이다. 도구 사용법을 배우는 것이 곧 개발 능력이라고 착각하는 접근 방식이다. 학생들은 파이썬 문법은 완벽하게 외우고, 리액트 컴포넌트도 뚝딱 만들어 낼 수 있는 것도 극소수이지만, "왜 이렇게 설계했나요?"라고 물으면 대답하지 못한다. "다른 방법은 없었나요?"라고 하면 더더욱 당황한다.
이런 현상이 최근 AI 도구들의 확산과 만나면서 더욱 심각해지고 있다. GitHub Copilot, ChatGPT, Claude Code 같은 도구들이 코딩의 상당 부분을 자동화되고 있는 시대에, 학생들은 여전히 문법 암기와 알고리즘 문제 풀이에 매달리고 있다. 마치 자동차가 보편화된 시대에 말 타는 법을 가르치는 것과 같다.
코딩 교육의 한계가 드러나자 이제는 'AI 리터러시'라는 용어가 새로운 해답처럼 등장했다. 하지만 현업에서 AI 도구들을 사용하는 입장에서 보면, 현재 교육계에서 말하는 AI 리터러시는 또 다른 형태의 도구주의에 불과하다.
"ChatGPT 프롬프트 잘 쓰는 법", "미드저니로 이미지 생성하기", "GitHub Copilot 활용법" 같은 내용들이 AI 리터러시 교육이라는 이름으로 포장되고 있다. 하지만 이는 1990년대에 "한글 워드프로세서 사용법"을 컴퓨터 교육이라고 했던 것과 똑같은 착각이다.
실제로 AI 도구들을 현업에서 제대로 활용하려면 훨씬 복잡한 이해가 필요하다. AI가 왜 특정한 답변을 하는지, 그 답변이 얼마나 신뢰할 만한지, 어떤 상황에서 AI를 사용해야 하고 어떤 상황에서는 사용하지 말아야 하는지에 대한 판단력이 필요하다. 하지만 현재 교육은 이런 깊이 있는 이해보다는 표면적인 사용법에만 집중하고 있다.
몇 년 전부터 업체들이 코딩테스트를 도입하면서 학원이나 커뮤니티등에서 코딩테스트 교육이 활성화되었다. 이로 인해 코딩테스트 점수는 점점 높아지지만, 설계에 대한 이해는 점점 떨어지고 있다. "DB구조를 왜 이렇게 하셨나요?", "서버사이드가 아닌 API구조로 하기 위해서는 어떻게 해야 하나요?"라고 물으면 대부분 당황한다. 알고리즘 문제는 척척 풀지만, 실제 비즈니스 문제는 어떻게 접근해야 할지 모르는 것이다.
이런 현상의 근본 원인은 현재 교육이 '분절된 사고'에만 치중하기 때문이다. 문제를 작은 단위로 나누어 순차적으로 해결하는 알고리즘적 사고는 훈련되어 있지만, 전체를 조망하고 통합적으로 설계하는 시스템적 사고는 전혀 기르지 못한다.
실제 개발 현장에서는 이런 차이가 극명하게 드러난다. 신입 개발자들에게 "회원가입 기능을 만들어주세요"라고 하면 일단 당황하는 것은 기본이고, 꾸역꾸역 작동하는 코드를 만들어 내는 것도 감지덕지다. 여기에 보안은 어떻게 할 것인지, 나중에 사용자가 늘어나면 어떻게 대응할 것인지, 다른 시스템과는 어떻게 연동할 것인지에 대한 고민은 없다. 기능 구현에만 매몰되어 있고, 전체적인 설계 관점은 부족하다.
최근 AI 도구들을 사용하는 주니어 개발자들을 보면 React 컴포넌트를 자동 생성하거나, 로직을 만들어내는 것은 능숙하지만, 그 컴포넌트나 로직이 왜 그렇게 설계되었는지, 성능상 문제는 없는지, 다른 컴포넌트와의 의존성은 어떻게 관리할 것인지에 대해서는 깊이 생각하지 않는다. AI가 생성한 코드를 이해하고 개선하기보다는 그대로 복사해서 사용하는 것에 그친다.
더 심각한 문제는 이런 의존성이 점진적이고 은밀하게 진행된다는 점이다. 당장은 AI 도구 덕분에 생산성이 높아진 것처럼 보이지만, 장기적으로는 독립적 사고 능력과 창의적 문제 해결 능력이 심각하게 약화될 수 있다. 마치 GPS에 의존하면서 길 찾기 능력을 잃는 것과 같은 메커니즘이다.
현업에서 다양한 개발자들과 일하면서 새로운 형태의 디지털 격차가 등장하고 있음을 체감한다. 이는 기존의 정보 접근 격차와는 전혀 다른 양상을 보인다.
대부분의 개발자들은 AI 도구를 사용하는 법만 배우고, 소수의 개발자들만이 AI를 설계하고 통제할 수 있는 능력을 기른다. 전자는 AI에 종속된 실행자가 되고, 후자는 AI를 활용하는 창조자가 된다.
알고리즘 문제는 잘 풀지만 전체 시스템을 설계하지 못하는 개발자들과, 기술적 세부사항은 AI에게 맡기고 전체적인 아키텍처와 비즈니스 로직에 집중하는 개발자들 사이의 간극이 벌어지고 있다.
AI 도구를 무비판적으로 수용하는 개발자들과 AI의 한계를 이해하고 의도적으로 활용하는 개발자들 사이의 차이다. 전자는 AI가 만든 허위정보나 잘못된 코드를 그대로 받아들이고, 후자는 이를 걸러내고 보완한다.
강의를 하면서 가장 답답한 것은 학생들이 '정답 찾기'에만 매달린다는 점이다. "이 문제의 정답이 뭐예요?", "어떤 프레임워크를 써야 해요?", "어떤 방법이 최선인가요?" 같은 질문들이다. 하지만 실제 현업에서는 정답이 없는 경우가 대부분이다.
"이 비즈니스 문제를 해결하기 위한 최적의 시스템 아키텍처는?", "사용자 경험을 개선하면서도 개발 비용을 최소화할 수 있는 방법은?" 같은 열린 질문들에 대해서는 상황에 따라 최선책이 달라진다. 이런 불확실성과 복잡성을 다루는 능력이 진짜 개발자의 역량인데, 현재 교육은 이를 전혀 기르지 못한다.
또한 개별 성취에만 집중하는 교육 방식도 문제다. 실제 개발은 협업을 통해 이뤄지는 경우가 많고, 다양한 관점과 전문성을 종합하는 과정이 중요하다. 하지만 현재 교육은 개인의 코딩 실력만 측정하므로, 협업적 설계 능력이나 소통 능력은 평가받을 기회가 없다.
20년간의 개발 경험과 몇 년간의 강의 경험을 바탕으로 보면, 문제의 해결책은 도구 중심에서 사고력 중심으로, 기능 구현에서 시스템 설계로, 단기 성과에서 장기 역량으로 교육의 패러다임을 바꿔야 한다고 생각한다.
주어진 문제를 해결하는 능력보다는 문제를 발견하고 정의하는 능력을 기르는 교육이 필요하다. - 간단하게 단어를 정의하는 것부터 길러보는 것이 좋다. - AI는 명확히 정의된 문제는 잘 해결하지만, 숨겨진 문제를 찾아내는 것은 여전히 인간의 고유 영역이다.
작은 알고리즘 문제들을 개별적으로 해결하는 것이 아니라, 처음부터 끝까지 완전한 시스템을 설계하고 구현하는 경험을 제공해야 한다. 이 과정에서 요구사항 분석, 시스템 설계, 구현, 테스트, 배포, 유지보수의 전 과정을 경험하게 해야 한다.
AI가 제공하는 정보와 해결책을 무비판적으로 수용하지 않고, 그 타당성과 적절성을 스스로 판단할 수 있는 능력을 기르는 교육이 필요하다. 특히 AI 생성 코드를 리뷰하고 개선하는 능력이 점점 중요해지고 있다.
AI를 포함한 다양한 주체들과 효과적으로 협업하면서도 자신의 주체성을 유지할 수 있는 능력을 기르는 교육이 필요하다. 코드 리뷰, 설계 토론, 기술 의사결정 과정에 적극적으로 참여할 수 있는 소통 능력이 중요하다.
AI 시대에 진정으로 필요한 것은 AI 도구를 잘 사용하는 능력이 아니라, AI와 함께 더 나은 시스템을 설계할 수 있는 창의적이고 비판적인 사고 능력이다. 도구는 계속 바뀌지만, 좋은 설계 원칙과 시스템적 사고는 시대를 초월하는 가치를 가진다.
현업에서 정말로 필요한 개발자는 최신 프레임워크를 많이 아는 사람이 아니라, 비즈니스 문제를 이해하고 이를 기술적으로 해결할 수 있는 설계 능력을 가진 사람이다. AI 도구들이 발전할수록 이런 고차원적 사고 능력의 가치는 더욱 높아질 것으로 보인다.
교육의 본질에 대해 근본부터 생각해봐야 한다. 기술의 노예가 아닌 주인으로, 도구의 사용자가 아닌 창조자로 성장할 수 있는 개발자를 양성하는 교육으로의 전환이 돼야 한다. 그래야만 AI 시대에도 인간만이 할 수 있는 창조적 가치를 실현하며 지속가능한 발전을 이룰 수 있을 것으로 보인다.
앞서 작성했던 내용들과 많은 부분이 반복되고 있는 점이 있다. 그만큼 강조하고 싶은 마음이다. 현시대는 하루가 다르게 빠르게 지나간다. 8,90년대와 2000년대 초반 컴퓨터와 인터넷 붐이 일어났던 시기와는 전혀 다른 속도다. 이 당시에는 기술의 속도가 몇 년 단위로 이루어졌지만, 현재는 며칠 단위로 이루어지고 있다. - 참고로 claude code 버전은 거의 매주 또는 한 달 이내에 업데이트되고 있는 듯하다. - 동기와 선택이 길어지면 길어질수록 그만큼 기술의 속도는 이미 몇 배 달라져 있기에, 강조에 강조를 해도 모자를 듯하다.