AI 코딩 도구가 빠르게 확산되면서 “이제 기본기를 몰라도 된다”는 말이 돌고 있다. 실제로 GitHub Copilot이나 ChatGPT 같은 도구는 함수 하나를 뚝딱 만들어내고, 에러 메시지를 붙여 넣으면 해결책까지 제시한다. 그런데 현장에서 채용을 담당하는 개발자들 사이에서는 정반대의 목소리가 들린다. “AI가 써준 코드를 설명하지 못하는 지원자가 너무 많다.” 기본기를 갖춘 사람이 AI 도구를 쓸 때와, 기본기 없이 AI 도구에 의존할 때의 결과는 실무에서 큰 차이로 벌어진다. 왜 지금 이 시점에 기본기가 더 중요한지, 구체적으로 살펴본다.
AI가 코드를 생성해도 ‘판단’은 사람이 한다
AI 코딩 도구는 문법적으로 올바른 코드를 빠르게 만들어낸다. 그러나 그 코드가 현재 맥락에서 올바른 선택인지는 도구 스스로 판단하지 못한다. 예를 들어, 데이터베이스에서 레코드를 조회하는 쿼리를 AI가 생성했다고 하자. 이 쿼리가 실제 데이터 규모에서 얼마나 느려질지, 인덱스를 타는지 타지 않는지, 이후 유지보수 시 문제가 생길 구조인지를 파악하려면 기본기가 있어야 한다.
더 흔한 문제는 AI가 “그럴듯한 오답”을 자신 있게 내놓는다는 점이다. 코드 자체는 실행되지만, 특정 엣지 케이스에서 조용히 잘못된 결과를 반환하거나, 보안 취약점을 품고 있는 경우가 있다. 기본기가 없으면 이 코드를 그냥 복사하게 된다. 기본기가 있으면 “이 로직이 이 상황에서는 맞지 않는다”는 걸 30초 안에 알아챈다.
결국 AI 도구는 초안을 빠르게 만드는 역할을 한다. 초안이 맞는지 틀린지를 검토하고 결정하는 역할은 여전히 개발자가 담당한다. 판단력 없이 도구를 쓰는 것은, 맞춤법 검사기를 믿고 논리가 엉망인 글을 제출하는 것과 비슷하다.
채용 현장에서 기본기 검증이 오히려 강화되고 있다
AI 도구가 퍼지면서 일부에서는 코딩 테스트나 기술 면접이 사라질 거라는 예측도 나왔다. 실제로는 반대 방향으로 움직이는 곳이 더 많다. “AI를 써도 괜찮지만, 코드를 설명해야 한다”는 방식의 면접이 늘고 있다. 코드를 작성하는 능력보다 코드를 이해하고 설명하는 능력을 보는 방향으로 면접 방식이 진화하고 있는 것이다.
이런 변화는 자연스럽다. 도구가 생성한 코드를 그대로 쓸 수 있는 환경이라면, 같은 코드를 만드는 건 누구나 할 수 있다. 기업 입장에서는 그 코드의 의미를 이해하고, 요구사항이 바뀌었을 때 수정할 수 있는 사람이 필요하다. 면접관 입장에서 AI 도구를 쓰더라도 기본기가 있는지 없는지를 구분하는 것은 어렵지 않다. 조금만 깊이 파고들면 금세 드러난다.
실무에서도 마찬가지다. 코드 리뷰에서 “이 코드가 왜 이렇게 작성됐는지”를 설명하지 못하면, 팀에서 신뢰를 쌓기 어렵다. 처음에는 AI가 만들어준 코드로 결과물을 낼 수 있지만, 시간이 지날수록 기본기 없는 사람은 코드베이스를 이해하지 못해 변경에 취약해지고, 디버깅에서 막히기 시작한다.
기본기가 있는 사람이 AI 도구를 더 잘 쓴다
AI 도구를 실제로 잘 다루는 개발자와 그렇지 않은 개발자의 차이는, 아이러니하게도 기본기에서 갈린다. AI에게 질문하는 방식 자체가 다르다. 기본기가 있는 사람은 문제를 정확하게 정의하고, AI에게 어떤 제약 조건을 줘야 원하는 답이 나오는지를 안다. 기본기가 없는 사람은 막연하게 물어보고, AI가 내놓는 첫 번째 답이 맞는지 틀린지도 알 수 없다.
예를 들어, 배열에서 중복을 제거하는 코드를 AI에게 요청한다고 하자. 기본기가 있는 개발자는 “원본 순서를 유지해야 하는지, 데이터 타입은 어떤지, 성능 제약이 있는지”를 고려해 프롬프트를 구성한다. AI의 답변이 나오면 그 자료구조의 시간 복잡도를 평가하고 적합한지 판단한다. 기본기가 없는 개발자는 “중복 제거 코드 만들어줘”라고만 요청하고, 나온 코드를 그대로 사용한다. 두 결과물의 품질은 다를 수밖에 없다.
결국 AI 도구는 기본기를 증폭시키는 도구다. 기본기가 탄탄한 사람에게는 생산성을 크게 높여주는 도구가 되고, 기본기가 없는 사람에게는 그럴듯한 실수를 빠르게 만드는 도구가 된다.
지금 기본기를 쌓는 구체적인 방법
기본기를 쌓아야 한다는 말은 많지만, 막상 무엇부터 해야 할지 막막한 경우가 많다. AI 도구와 병행하면서 기본기를 다지는 실용적인 방법을 단계별로 정리한다.
- 코드를 작성한 후 소리 내어 설명하는 습관 들이기: AI가 생성한 코드든 내가 직접 쓴 코드든, 줄 단위로 “이 코드가 하는 일은 무엇인지”를 설명해본다. 설명이 막히는 부분이 내가 이해하지 못한 부분이다. 이 습관만 들여도 이해 없이 복사하는 패턴에서 벗어날 수 있다.
- 자료구조와 알고리즘 기초 반복 학습: 거창한 알고리즘 문제가 아니어도 된다. 배열, 해시맵, 스택, 큐가 어떤 상황에서 쓰이는지, 각각의 시간 복잡도가 어떻게 다른지를 체감할 수 있는 수준까지 반복 학습한다. 이 이해가 있으면 AI가 제안하는 자료구조를 평가할 수 있다.
- AI 없이 먼저 풀어보기: AI 도구를 쓰기 전에, 문제를 직접 풀어보는 시간을 의도적으로 갖는다. 막힌 후에 AI의 답변을 참고하면 학습 효과가 훨씬 크다. 처음부터 답을 보는 것과 막힌 지점에서 힌트를 얻는 것은 다르다.
- 에러 메시지를 직접 읽고 분석하는 연습: 에러가 생겼을 때 바로 AI에게 붙여 넣지 말고, 에러 메시지를 직접 읽고 어떤 뜻인지 파악하는 연습을 한다. 에러 메시지 해독 능력 자체가 중요한 기본기다.
- 코드 리뷰 경험 쌓기: 다른 사람의 코드를 읽고 피드백하거나, 내 코드에 대해 피드백을 받는 경험을 의도적으로 만든다. 오픈소스 프로젝트에 작은 기여를 하거나, 스터디 그룹에서 코드 리뷰를 하는 것이 효과적이다.
기본기는 단기간에 눈에 보이지 않지만 복리로 쌓인다
기본기 학습의 어려운 점은 단기 성과가 눈에 잘 보이지 않는다는 것이다. AI 도구를 쓰면 오늘 당장 뭔가를 만들 수 있다. 자료구조를 공부하는 건 오늘 당장 무언가가 만들어지지 않는다. 이 차이 때문에 기본기 학습을 미루거나 포기하는 경우가 생긴다.
그러나 기본기는 복리로 쌓인다. 처음 3개월은 더디게 느껴지지만, 자료구조와 알고리즘의 기초가 잡히면 새로운 기술을 배우는 속도가 달라진다. 새로운 프레임워크를 접했을 때 “이건 결국 이 패턴이구나”라고 연결되기 시작한다. AI가 제안하는 코드를 빠르게 평가할 수 있게 된다. 디버깅 시간이 짧아진다. 이 모든 것이 1~2년 뒤 실력 격차로 누적된다.
반대로 기본기 없이 AI 의존도만 높아지면, 도구가 잘 작동하는 환경에서는 결과물을 낼 수 있지만 조금만 상황이 달라지면 막힌다. 새로운 도구나 언어로 넘어갔을 때 기초가 없으면 처음부터 다시 시작해야 한다. 기본기가 있는 사람은 새로운 언어와 도구를 훨씬 빠르게 습득한다.
AI 시대에 기본기는 ‘선택’이 아닌 ‘필수’가 됐다
AI 도구가 없던 시절에는 기본기가 없어도 특정 기술 스택에서만 오래 일하다 보면 어느 정도 경험이 쌓이는 경우가 있었다. 반복하다 보면 어느 순간 이해가 되는 면도 있었다. 그런데 AI 도구가 개입되면 이 자연스러운 학습 과정이 단락된다. 막히는 지점에서 고민하지 않고 바로 해결책을 받아버리기 때문이다.
역설적으로, AI 도구가 발전할수록 기본기의 중요성은 더 커진다. 도구가 단순 반복 작업을 대체할수록, 사람에게 기대하는 역할은 더 고차원으로 올라간다. 어떤 문제를 어떻게 설계할지, 시스템 전체를 어떻게 구성할지, 기술 부채가 쌓이는 방향인지 아닌지를 판단하는 능력이 요구된다. 이 판단력은 기본기에서 나온다.
지금 당장 AI 도구를 쓰는 것을 멈추라는 이야기가 아니다. 도구를 쓰면서 동시에 기본기를 다지는 두 가지를 병행해야 한다. 도구가 만들어준 코드를 그냥 쓰지 말고, 그 코드를 이해하는 데 시간을 쓰는 것만으로도 시작이 된다. 이 습관 하나가 1년 뒤 실력 차이를 만든다.
커리어 관점에서 보면, 기본기는 이직과 성장의 기반이다. 단기 프로젝트 하나를 빠르게 끝내는 것보다, 3년 뒤에 더 좋은 기회를 선택할 수 있는 실력을 갖추는 것이 더 중요하다. AI 도구를 잘 쓰는 개발자가 되려면, 먼저 AI가 만든 코드를 평가할 수 있는 개발자가 돼야 한다.
기본기를 다지는 여정이 막막하거나, 현재 방향이 맞는지 점검하고 싶다면 누스쿨 커뮤니티에서 현직 개발자 멘토와 이야기를 나눠보자. 추상적인 조언 대신 지금 내 상황에서 무엇을 어떻게 하면 되는지를 구체적으로 확인할 수 있다.



💬 댓글 0