Reddit

Junior Developers Can No Longer Write a Working Function Without a Chatbot

주니어 개발자는 이제 챗봇 없이는 작동하는 함수도 못 쓸까요?

PixLab의 모회사 Symisc Systems는 인턴십 프로젝트를 맡은 학생 20여 명 가운데 일부가 챗봇의 단계별 안내 없이는 간단한 함수를 구현하기 어려워했다고 전합니다. 작성자는 AI 사용을 금지하기보다 먼저 직접 시도하게 하고, 코드 리뷰에서 구현 이유와 동작을 설명하도록 해야 한다고 제안합니다.

AI 요약

PixLab의 모회사 Symisc Systems는 선발된 학교의 공학도 20여 명에게 원격 또는 현장 인턴십 프로젝트를 맡겼습니다. 학생들은 C/C++ 임베디드 소프트웨어나 순수 JavaScript 웹 개발을 했습니다. 작성자는 학생들이 작동하는 함수 하나를 완성하는 과정에서 챗봇에 자주 도움을 구했다고 전합니다. 사용 도구는 ChatGPT와 Z.ai의 GLM 모델이었고 Claude는 보지 못했지만, 정식 조사가 아니라 함께 일하며 관찰한 결과라고 선을 긋습니다.

대시보드 함수 과제

사례로 든 과제는 Think-Act 데스크톱 에이전트의 내부 사용량 대시보드에 통계를 표시하는 일이었습니다. Redis에 JSON으로 저장한 통계를 백엔드에서 가져와 순수 JavaScript로 페이지에 보여줘야 했습니다. 작성자는 석사 학위를 받고 구직 중인 주니어 개발자가 HTML 요소를 ID로 찾는 방법, 즉 document.getElementById()를 묻는 등 구현 중 계속 챗봇으로 돌아갔다고 설명합니다.

메서드 이름을 잊어 찾아보는 일 자체는 문제 삼지 않습니다. 작성자가 우려한 지점은 다음 단계마다 챗봇에 묻느라, JSON 응답을 살펴보고 요소를 선택해 내용을 갱신하는 기본 작업을 독립적으로 진행하지 못했다는 점입니다. 이 과제는 학생이 회사 코드베이스에 익숙해지는 데 필요한 도움을 넘어, 이미 익숙해야 할 브라우저 개발의 기초를 다루는 일이었습니다.

완성과 학습은 다릅니다

생성된 코드를 따라가며 설명을 들으면 각 줄을 이해할 수 있어도, 비슷한 함수를 처음부터 직접 작성하기는 어려울 수 있습니다. 작성자는 첫 시도에서 입력을 살펴보고 처리 방법을 결정하며 오해한 부분을 발견하는 과정이 다음 작업을 쉽게 만든다고 봅니다. 챗봇이 매 단계 답을 제공하면 학생이 그 연습을 얼마나 했는지 판단하기 어려워집니다.

Symisc Systems도 AI 제품을 만들며 챗봇의 효용을 인정합니다. 인턴십에서 도구를 금지할 이유는 없지만, 과제를 끝내는 것만으로 성공을 판단해서는 안 된다고 말합니다. 인턴이 처음보다 더 유능해져야 한다는 뜻입니다. 따라서 주니어에게 먼저 직접 시도하고 문서를 읽고 응답을 살펴본 뒤, 막힌 지점을 구체적으로 질문하라고 제안합니다. 코드 리뷰에서는 조건문의 이유를 설명하거나 빈 응답을 처리하고 작은 변경을 해보게 할 수 있습니다. 암기 시험이나 심문을 하자는 취지는 아닙니다.

작성자는 석사 학위가 모든 지식을 보장하지 않으며 주니어가 도움 없이 일하리라 기대하지 않는다고 덧붙입니다. 다만 대시보드 함수 하나를 구현한 뒤에는 다음 함수를 작성할 때 필요한 안내가 줄어야 한다고 봅니다. 목표는 챗봇 사용을 멈추게 하는 것이 아니라 경험이 쌓일수록 도움을 덜 필요로 하는지 확인하는 일입니다.

PixLab의 개발 환경

PixLab은 프런트엔드에서 React나 Vue 없이 순수 JavaScript만 사용합니다. 작성자는 이 방식이 수천 명의 고객이 쓰는 대시보드에도 적용되며, 백엔드가 실시간 API 사용 기록 수백만 건을 처리한다고 설명합니다. 과제를 어렵게 만들려고 프레임워크를 뺀 것이 아니라 실제 제품에서 쓰는 도구를 사용하게 했다는 설명입니다. 고객은 배경 제거 API 같은 서비스의 사용량을 대시보드에서 확인합니다. 따라서 데이터가 화면에 도달하는 경로와 수치가 잘못 표시되는 이유를 이해하는 일이 과제의 목적이었습니다.

Reddit 반응

  • @u/thesatchmo — 지나치게 일반화한 말이지만, 무슨 뜻인지는 알겠습니다.
    • @u/wildrabbit12 — 주니어 한 명을 채용했는데 토큰을 다 써서 티켓 작업이 막혔습니다. 그러니 맞는 말이긴 합니다.
    • @u/thesatchmo — 그럼 교육은 하고 계시길 바랍니다.
    • @u/yopla — 그 사례는 무엇보다 채용 과정의 수준을 말해주는 것 같습니다.
  • @u/l2protoss — 이것도 여러 면에서 스스로 만든 문제입니다. 주니어가 배우길 바란다면 좋은 코드와 아키텍처가 무엇인지 익힐 동안 에이전트 없이 일하게 해야 합니다.
  • @u/creaturefeature16 — 문제는 단순히 문법이나 메서드 이름을 잊었다는 게 아닙니다. 챗봇이 사고 과정까지 대신하지 않으면, JSON 응답을 살펴보고 요소를 골라 내용을 갱신하는 일을 혼자 진행할 수 없었다는 점입니다. 앞으로 잘할 개발자에게 필요한 판단력은 코드의 세부를 직접 다루며 쌓은 경험에서 나옵니다. 도구가 전문성을 요구하면서도 전문성을 기르는 어려움을 건너뛰게 한다면, 전문가는 어떻게 성장해야 할까요?
    • @u/dcabines — 잔잔한 바다는 능숙한 선원을 만들지 않습니다. 계산기를 쓰기 전에 수학을 손으로 풀며 실력을 길러야 하는 것과 같습니다. 아이들이 배우지 못하게 될 테니 학교에서 AI를 없애야 합니다.
    • @u/SplendidPunkinButter — 계산기 비유가 적절합니다. 세상에서 가장 좋은 계산기가 있어도 수학 전문가가 되는 건 아닙니다. 계산기로 무엇을 해야 하는지 알아야 합니다.
  • @u/dw444 — 말도 안 되는 소리입니다. 저는 주니어 개발자를 면접하고 팀에서 함께 일하는데, 젊은 개발자들은 괜찮습니다.
    • @u/Rechenplaner — 일반화하기는 어렵다고 봅니다. LLM을 배우는 데 쓰는지, 답을 빨리 뽑는 데만 쓰는지에 따라서도 다릅니다.
  • @u/yopla — 저는 시니어인데 더는 함수를 직접 쓰고 싶지 않습니다. 결국 대부분 사람의 일에서 코드 작성이 빠질 수밖에 없다고 봅니다.
    • @u/pydry — 저도 시니어인데 그런 태도를 가진 사람들의 엉성한 결과물이 최근 많이 보입니다.
  • @u/Shadowforce426 — 저는 주니어인데 회사에서 제대로 교육하는 대신 Claude를 쓰라고 합니다. 심한 가짜 impostor syndrome을 느끼고, 생성된 결과를 최대한 이해하려고 하지만 제가 잘 이끌고 있는지도 모르겠습니다. 장기적으로 불안합니다. 시니어 개발자들의 조언이 있을까요?
    • @u/Mailbind — 회사의 업무 방식은 따르면서 학습 단위를 작고 구체적으로 만들 수 있습니다. 티켓의 작은 변경 하나를 골라 코드를 요청하기 전에 입력, 예상 결과, 실패 사례 하나를 적어보세요. 그 뒤 예시 하나를 코드에서 따라가고 입력을 바꾸면 어떻게 될지 예측한 다음 실행해 확인하세요. 이해되지 않는 부분은 코드를 다시 써달라고 하기보다 그 부분의 설명을 요청하세요. 나중에는 생성된 코드를 보지 않고 작은 함수를 다시 작성해보세요. 문서는 봐도 됩니다. 팀원에게 정기적으로 짧은 리뷰를 부탁해 접근 방식이 코드베이스에 맞는 이유를 함께 살펴보는 것도 좋습니다. 챗봇은 문법을 설명할 수 있지만 팀의 판단을 가르쳐주지는 않습니다.
  • @u/thanghil — 1957년: 주니어 개발자는 컴파일러 없이는 작동하는 프로그램을 못 씁니다. 1995년: 주니어 개발자는 가비지 컬렉터 없이는 작동하는 애플리케이션을 못 씁니다. 2008년: 주니어 개발자는 Stack Overflow 없이는 작동하는 해법을 못 씁니다.
  • @u/Personal_Twist7787 — 문제는 AI를 쓰는 게 아니라, AI가 마법처럼 알아서 해준다고 여기며 생성된 내용을 이해하지 않는 겁니다. 결과가 깨졌을 때 디버깅하거나 논리를 나눠 설명할 수 없다면 코딩하는 게 아니라 프롬프트만 쓰는 겁니다.
  • @u/Itchy_Resolve9115 — “주니어 개발자는 구글 없이 함수를 못 쓴다”는 말과 다를 게 있나요? 세상에 있는 모든 문법을 기억하는 것보다 코드 품질이 더 중요하지 않나요?

원문: PixLab Blog / 번역·요약: Trawling