𝗥𝗲𝗮𝗰𝘁 𝗜𝘀𝗻'𝘁 𝗧𝗵𝗲 𝗣𝗿𝗼𝗯𝗹𝗲𝗺. 𝗛𝗼𝘄 𝗪𝗲 𝗧𝗲𝗮𝗰𝗵 𝗜𝘁 𝗜𝘀.

주니어 개발자에게 제출 버튼을 클릭하면 어떤 일이 일어나는지 물어보세요. 대부분은 명확한 답변을 내놓지 못합니다.

API 호출이 서버로 전송되고 응답이 돌아온다고 말할 수도 있습니다. 이는 피상적인 답변입니다.

더 구체적인 질문을 던져보세요:

  • 브라우저는 요청을 어떻게 패키징하나요?
  • 어떤 HTTP 메서드가 사용되나요?
  • 인증은 어디에서 이루어지나요?
  • 데이터가 데이터베이스에 도달하기 전, 서버는 데이터를 어떻게 처리하나요?

여기서부터 침묵이 시작됩니다.

주니어 개발자들은 게으른 것이 아닙니다. 재능이 부족한 것도 아닙니다. 그들에게 부족한 것은 맥락(context)입니다.

우리는 기초보다 추상화를 먼저 가르칩니다.

부트캠프와 튜토리얼은 빠른 결과에 집중합니다. 포트폴리오를 만들고 취업하는 것을 목표로 하죠. React는 결과를 빠르게 확인할 수 있기 때문에 이 과정에 도움이 됩니다.

학습자들은 시스템을 보기 전에 프레임워크를 먼저 접합니다.

  • HTTP를 배우기 전에 React를 배웁니다.
  • 서버를 배우기 전에 컴포넌트를 배웁니다.
  • 데이터베이스를 배우기 전에 상태 관리를 배웁니다.

이는 무엇을 해야 할지는 알지만, 왜 그렇게 해야 하는지는 모르는 개발자를 만듭니다.

이것이 튜토리얼 지옥(tutorial hell)으로 이어집니다. 영상에서 코드를 따라 하며 생산적이라고 느낍니다. 그러다 혼자 무언가를 만들어 보려 하면 실패하죠. 익숙함을 이해함으로 착각했기 때문입니다.

AI 도구는 이 문제를 가중시킵니다. ChatGPT와 같은 도구는 생산성을 높여줍니다. 하지만 위험은 AI가 사고를 지원하는 것이 아니라 사고를 대체하기 시작할 때 발생합니다.

예전에는 디버깅이 어려웠습니다. 근본 원인을 찾을 때까지 문서를 읽고 실패를 반복해야 했죠. 그 고군분투가 뇌를 발달시켰습니다. 모든 문제를 AI에 외주 준다면, 엔지니어링적 판단력을 잃게 될 것입니다.

소프트웨어 엔지니어링은 의사결정을 내리고 트레이드오프(trade-offs)를 이해하는 과정입니다. 프롬프팅만으로는 이를 배울 수 없습니다.

만약 제가 커리큘럼을 만든다면, 다음과 같은 순서로 가르칠 것입니다:

  • HTML/CSS
  • JavaScript 기초
  • 브라우저 기초
  • HTTP and APIs
  • 기본적인 백엔드 개념
  • 데이터베이스
  • 인증
  • React

학생들이 React에 도달할 때쯤이면, 왜 데이터 페칭(data fetching)이 존재하는지 이해하게 됩니다. 버튼 클릭 뒤에 숨겨진 메커니즘을 이해하게 되죠.

React가 문제는 아닙니다. AI도 문제가 아닙니다.

문제는 기초를 너무 빠르게 지나치며, 그 빈틈이 저절로 채워지기를 기대하는 것입니다.

우리는 사람들에게 만드는 법을 가르치고 있습니까, 아니면 이해 없이 복사하는 법을 가르치고 있습니까?

출처: https://dev.to/franklyn_nmesoma_86940ec9/react-isnt-the-problem-how-we-teach-it-is-38m8