Skip to main content

코딩 공부에서 가장 위험한 순간

코딩을 공부할 때 AI는 정말 강력하다. 에러 메시지를 붙여 넣으면 원인을 설명해주고, 만들고 싶은 기능을 말하면 코드 예시를 만들어주며, 낯선 라이브러리 사용법도 순식간에 알려준다. 예전 같으면 검색창을 열고 여러 블로그를 돌아다니며 한참 헤맸을 일을 이제는 대화 한 번으로 해결할 수 있다.

그런데 바로 그 점 때문에 코딩 공부는 쉽게 무너진다.

초보자가 가장 자주 빠지는 함정은 "이 기능을 만드는 코드를 짜줘"라고 묻고, AI가 준 코드를 그대로 붙여 넣는 것이다. 실행이 된다. 화면도 나온다. 문제도 풀린다. 그래서 공부가 된 것처럼 느껴진다. 하지만 며칠 뒤 비슷한 문제를 만나면 손이 멈춘다. 코드를 읽을 수는 있는데 쓸 수는 없다. 오류가 나면 어디를 봐야 할지 모른다. 함수 하나를 바꾸면 전체 흐름이 어떻게 달라지는지 예측하지 못한다.

이것은 코딩을 배운 것이 아니라, 코딩 결과물을 빌린 것이다.

AI 시대의 코딩 공부는 복사해서 실행하는 능력이 아니라, 코드가 왜 그렇게 움직이는지 설명하고 고칠 수 있는 능력을 길러야 한다. AI는 코드를 대신 써주는 비서가 될 수도 있지만, 제대로 쓰면 훨씬 좋은 역할을 한다. 바로 디버깅 튜터이자 코드 리뷰어다. 에러가 났을 때 "정답 코드"를 던져주는 존재가 아니라, 내 생각의 빈틈을 찾아주고, 내가 쓴 코드를 더 나은 코드로 다듬게 해주는 개인 교사로 활용해야 한다.

코딩과 데이터 공부에서 기억해야 할 원칙은 간단하다.

AI가 코드를 먼저 쓰게 하지 말고, 내 생각을 먼저 쓰게 하라.

코딩과 데이터 공부

복붙하지 않고 배우는 4단계 절차

코딩 문제를 만나면 우리는 빨리 답을 보고 싶어진다. 특히 에러가 계속 나면 마음이 급해진다. "그냥 정답 코드만 보면 이해될 것 같은데?"라는 생각이 든다. 하지만 코딩 실력은 완성된 코드를 읽을 때보다, 완성되기 전의 막막함을 다룰 때 자란다.

AI를 코딩 학습에 사용할 때는 다음 절차를 습관으로 만들어야 한다.

첫째, 바로 코드부터 쓰지 말고 문제를 말로 풀어쓴다. 내가 만들려는 기능이 무엇인지, 입력은 무엇이고 출력은 무엇인지, 어떤 순서로 처리해야 하는지를 자연어로 적는다. 이것을 의사코드라고 한다. 의사코드는 실제 프로그래밍 언어 문법이 아니라, 생각의 순서를 코드처럼 정리한 문장이다.

예를 들어 "학생 점수 목록에서 평균 이상인 학생 이름만 출력하라"는 문제를 만났다고 해보자. 바로 파이썬 코드를 요청하는 대신 이렇게 적는다.

1. 학생 이름과 점수가 들어 있는 목록을 준비한다.
2. 전체 점수의 평균을 구한다.
3. 각 학생의 점수를 평균과 비교한다.
4. 평균 이상이면 그 학생의 이름을 결과 목록에 넣는다.
5. 결과 목록을 출력한다.

이렇게 쓰면 코딩은 갑자기 쉬워진다. 코드란 결국 이 절차를 컴퓨터가 이해하는 언어로 바꾼 것이기 때문이다.

둘째, AI에게 바로 정답 코드를 요구하지 말고 내 설계를 점검하게 한다.

나는 다음 문제를 이렇게 풀려고 합니다.
문제: 학생 점수 목록에서 평균 이상인 학생 이름만 출력하기
내 의사코드:
1. 학생 목록을 만든다.
2. 평균을 구한다.
3. 점수가 평균보다 큰 학생을 찾는다.
4. 이름을 출력한다.

이 설계에서 빠진 조건이나 잘못 생각한 부분이 있나요?
정답 코드는 아직 주지 말고, 힌트와 점검 질문만 주세요.

여기서 중요한 문장은 "정답 코드는 아직 주지 말고"다. AI는 친절해서 자꾸 완성 코드를 주려고 한다. 학습자는 그 친절함을 조절해야 한다. 코드를 빨리 받는 것이 목표가 아니라, 내가 코드를 쓸 준비가 되었는지 확인하는 것이 목표다.

셋째, 내가 먼저 코드를 작성한다. 틀려도 된다. 오히려 처음에는 틀리는 편이 좋다. 에러는 실력 부족의 증거가 아니라, 지금 배울 개념이 어디인지 알려주는 신호다. 변수 이름을 잘못 썼는지, 반복문의 범위를 착각했는지, 자료형을 잘못 다뤘는지, 조건문을 반대로 썼는지 에러가 알려준다.

넷째, 실행 결과를 예측한 뒤 AI에게 검토를 요청한다. 코드를 실행하기 전에 "이 코드는 어떤 결과가 나올 것이다"라고 먼저 적어보자. 예측이 맞으면 흐름을 이해한 것이고, 틀리면 거기에 배울 것이 숨어 있다.

아래 코드를 실행하면 어떤 결과가 나올지 저는 이렇게 예측했습니다.
제 예측: 평균 이상인 학생 이름만 출력된다.

코드:
...

제가 놓친 부분이 있나요?
실행 결과를 설명하되, 먼저 제 예측이 왜 맞거나 틀렸는지 설명해주세요.

이 절차를 거치면 AI는 복붙 도우미가 아니라 사고 훈련 도구가 된다. 코딩을 잘하는 사람은 코드를 많이 외운 사람이 아니다. 코드를 쓰기 전에 흐름을 상상하고, 실행 결과를 예측하고, 문제가 생기면 원인을 좁혀갈 줄 아는 사람이다.

에러 메시지는 실패가 아니라 교재다

코딩 초보자에게 가장 무서운 화면은 빨간 에러 메시지다. 영어로 길게 나오고, 파일명과 줄 번호가 섞여 있으며, 처음 보는 단어가 가득하다. 그래서 많은 사람이 에러 메시지를 읽지 않고 그대로 AI에게 붙여 넣는다.

"이거 고쳐줘."

AI가 고쳐주면 당장은 편하다. 하지만 다음에 같은 에러가 나도 또 묻는다. 에러는 해결됐지만 실력은 남지 않는다.

에러 메시지를 공부 자료로 바꾸려면 질문을 바꿔야 한다. "고쳐줘"가 아니라 "이 에러를 읽는 법을 알려줘"라고 물어야 한다. 에러 메시지는 컴퓨터가 보내는 항의문이 아니라, 코드의 어느 지점에서 어떤 약속이 깨졌는지 알려주는 보고서다.

에러를 만났을 때는 네 가지 항목으로 정리해보자.

  • 원인: 에러가 왜 발생했는가

  • 재현 방법: 어떤 입력이나 어떤 상황에서 다시 발생하는가

  • 해결 과정: 무엇을 바꾸었더니 해결되었는가

  • 배운 개념: 이 에러를 통해 어떤 문법이나 원리를 익혔는가

예를 들어 파이썬에서 TypeError가 났다고 하자. 단순히 "TypeError 해결해줘"라고 묻는 대신 이렇게 물어볼 수 있다.

아래 에러 메시지를 공부 자료로 정리해주세요.
단순히 수정 코드만 주지 말고, 제가 다음에 비슷한 에러를 스스로 해결할 수 있게 설명해주세요.

1. 에러의 핵심 의미
2. 에러가 발생한 줄에서 컴퓨터가 기대한 것
3. 실제로 들어온 값
4. 최소 재현 예제
5. 해결 방법 2가지
6. 이 에러로 배워야 할 개념

에러 메시지:
...

관련 코드:
...

이렇게 질문하면 에러 하나가 작은 강의가 된다. 특히 "최소 재현 예제"가 중요하다. 최소 재현 예제란 같은 문제가 발생하는 가장 짧은 코드다. 복잡한 프로젝트 전체를 들여다보는 대신, 문제의 핵심만 남겨서 실험하는 것이다.

예를 들어 웹 애플리케이션에서 데이터가 화면에 안 나온다고 하자. 전체 코드가 수백 줄이면 어디가 문제인지 찾기 어렵다. 이때 AI에게 "이 문제를 최소 재현 예제로 줄이면 어떤 코드가 될까요?"라고 물어보면, 문제를 변수 하나, 함수 하나, API 응답 하나의 수준으로 작게 나눌 수 있다.

디버깅은 천재적인 직감이 아니다. 문제를 작게 만들고, 가설을 세우고, 하나씩 확인하는 과정이다. AI는 이 과정을 함께 해주는 훌륭한 튜터가 될 수 있다.

이 버그를 바로 고쳐주기보다, 제가 디버깅하는 과정을 도와주세요.
먼저 가능한 원인 후보를 3가지로 좁혀주세요.
그다음 각 원인을 확인하기 위한 실험 방법을 제안해주세요.
제가 결과를 알려주면 다음 단계로 넘어가 주세요.

이 질문은 코딩 학습의 방향을 바꾼다. AI가 답을 주는 것이 아니라, 내가 탐정처럼 원인을 추적하게 만든다. 그 과정에서 변수, 조건문, 함수 호출, 데이터 흐름, 비동기 처리 같은 개념이 살아 있는 지식이 된다.

작은 프로젝트로 개념을 익혀라

코딩은 문법만 공부하면 지루해진다. 변수, 조건문, 반복문, 함수, 클래스, API, 데이터베이스를 각각 따로 배우면 머릿속에 조각만 쌓인다. 그런데 작은 프로젝트를 만들기 시작하면 조각들이 연결된다.

예를 들어 "할 일 목록 앱"은 단순해 보이지만 그 안에는 많은 개념이 들어 있다. 사용자가 입력한 값을 변수에 담고, 버튼을 누르면 함수가 실행되고, 할 일 목록은 배열이나 리스트에 저장되며, 완료 여부는 불리언 값으로 표시된다. 저장 기능을 붙이면 로컬 저장소나 데이터베이스가 등장하고, 로그인 기능을 붙이면 인증과 보안 개념이 나온다.

AI와 함께 프로젝트를 할 때도 "전체 코드를 한 번에 만들어줘"라고 하면 안 된다. 그러면 결과물은 생기지만 머릿속에는 아무것도 남지 않는다. 대신 프로젝트를 학습 단위로 쪼개야 한다.

저는 초보자이고, 할 일 목록 앱을 만들며 자바스크립트를 배우고 싶습니다.
전체 코드를 한 번에 주지 말고, 학습 단계로 쪼개주세요.
각 단계마다 배울 개념, 직접 구현할 기능, 확인 질문을 포함해주세요.

AI가 좋은 튜터로 작동하려면 프로젝트를 작은 계단으로 나눠야 한다. 한 계단에서는 변수와 배열만 다룬다. 다음 계단에서는 함수와 이벤트를 다룬다. 그다음 계단에서는 화면 업데이트를 다룬다. 다시 그다음 계단에서는 저장 기능을 붙인다.

이때 각 단계가 끝날 때마다 "내가 무엇을 배웠는지"를 말로 설명해야 한다.

제가 방금 구현한 기능을 제 말로 설명해보겠습니다.
설명:
사용자가 입력창에 글을 쓰고 버튼을 누르면, 그 값이 배열에 추가됩니다. 그다음 배열을 반복해서 화면에 목록으로 보여줍니다.

이 설명이 정확한지 확인해주세요.
빠진 개념이 있다면 질문으로 알려주세요.

프로젝트 학습에서 가장 중요한 질문은 "어떤 코드가 필요한가?"가 아니라 "데이터가 어디에서 어디로 흐르는가?"이다. 사용자가 입력한 값은 어디에 저장되는가. 함수는 언제 실행되는가. API에서 받은 데이터는 어떤 형태인가. 화면은 언제 다시 그려지는가. 데이터 공부에서도 마찬가지다. CSV 파일을 불러오고, 결측치를 처리하고, 그래프를 만들고, 모델을 학습시키는 과정은 모두 데이터 흐름이다.

데이터 분석을 배운다면 다음과 같이 AI에게 요청할 수 있다.

저는 판매 데이터를 분석하는 작은 프로젝트를 하고 싶습니다.
파이썬 pandas를 사용한다고 가정하고, 프로젝트를 6단계로 나눠주세요.
각 단계마다 다음을 포함해주세요.
- 이 단계의 목표
- 사용해야 할 핵심 개념
- 제가 먼저 작성해야 할 의사코드
- 실수하기 쉬운 지점
- 단계가 끝난 뒤 스스로 설명해야 할 질문

작은 프로젝트는 코딩 공부의 운동장이다. 문법은 운동 기구이고, 프로젝트는 실제 경기다. AI는 코치처럼 옆에서 자세를 봐줄 수 있다. 하지만 뛰는 사람은 나여야 한다.

코드 리뷰를 받으며 실력을 키우는 법

코드가 실행된다고 해서 좋은 코드는 아니다. 초보자는 보통 "돌아가면 끝"이라고 생각한다. 하지만 실무에서는 돌아가는 코드보다 유지보수할 수 있는 코드가 더 중요하다. 유지보수란 나중에 코드를 다시 읽고, 고치고, 확장할 수 있게 만드는 것이다.

AI를 코드 리뷰어로 쓰면 이 부분에서 큰 도움을 받을 수 있다. 코드 리뷰란 다른 사람이 내 코드를 읽고 개선점을 알려주는 과정이다. 회사에서는 동료 개발자가 해주지만, 학습자는 그런 환경이 없을 때가 많다. AI에게 코드 리뷰를 요청하면 혼자 공부해도 피드백을 받을 수 있다.

다만 "이 코드 어때?"라고만 묻지 말자. 그러면 AI는 대체로 칭찬과 일반적인 조언을 늘어놓는다. 코드 리뷰는 관점을 지정할수록 좋아진다.

아래 코드를 초보자 학습용으로 리뷰해주세요.
다음 관점에서 피드백을 주세요.

1. 가독성: 변수명과 구조가 읽기 쉬운가?
2. 중복: 반복되는 코드가 있는가?
3. 예외 처리: 예상하지 못한 입력에서 문제가 생기지 않는가?
4. 성능: 불필요하게 비효율적인 부분이 있는가?
5. 보안: 사용자 입력이나 민감 정보 처리에서 위험한 부분이 있는가?

단, 수정 코드를 바로 주기보다 먼저 문제점을 설명하고,
제가 직접 고칠 수 있도록 힌트를 주세요.

이 프롬프트에서 특히 중요한 관점은 예외 처리다. 초보자의 코드는 정상 상황에서는 잘 작동하지만, 조금만 다른 입력이 들어오면 무너진다. 숫자를 입력해야 하는데 문자가 들어오면 어떻게 되는가. 목록이 비어 있으면 어떻게 되는가. API 요청이 실패하면 어떻게 되는가. 파일이 없으면 어떻게 되는가. 이런 질문을 던지는 순간 코딩은 훨씬 깊어진다.

AI에게 "이 코드가 실패할 수 있는 상황을 찾아줘"라고 물어보는 습관을 들이면 좋다.

아래 코드는 현재 정상 입력에서는 작동합니다.
하지만 실패할 수 있는 상황을 찾고 싶습니다.
가능한 엣지 케이스를 찾아주세요.
각 엣지 케이스마다 왜 문제가 되는지, 어떻게 테스트하면 되는지 설명해주세요.

엣지 케이스란 흔하지는 않지만 실제로 발생할 수 있는 특수한 상황을 말한다. 예를 들어 이름 입력칸에 아무것도 입력하지 않는 경우, 점수가 0점인 경우, 데이터가 10만 개 들어오는 경우, 인터넷 연결이 끊긴 경우가 엣지 케이스다. 좋은 개발자는 "대부분 잘 된다"에서 멈추지 않고 "언제 망가질 수 있는가"를 생각한다.

보안 관점도 빼놓을 수 없다. 특히 웹 개발을 배우는 사람은 사용자 입력을 그대로 믿으면 안 된다. 비밀번호를 코드에 직접 써두거나, API 키를 공개 저장소에 올리거나, 로그인 여부를 제대로 확인하지 않는 실수는 초보자에게 흔하다. AI에게 보안 리뷰를 요청하면 위험한 습관을 초기에 줄일 수 있다.

아래 코드를 보안 학습 관점에서 리뷰해주세요.
저는 초보자이므로 어려운 보안 용어는 쉽게 풀어 설명해주세요.
특히 사용자 입력, 비밀번호, API 키, 권한 확인과 관련된 위험이 있는지 봐주세요.

코드 리뷰를 받을 때는 AI의 제안을 무조건 받아들이지 말아야 한다. AI도 문맥을 잘못 이해하거나, 현재 수준에 맞지 않는 복잡한 패턴을 제안할 수 있다. 그래서 리뷰 후에는 항상 이렇게 되물어야 한다.

방금 제안한 개선안 중에서 초보자인 제가 지금 반드시 적용해야 할 것과,
나중에 배워도 되는 것을 구분해주세요.
각 항목의 우선순위를 알려주세요.

좋은 코딩 공부는 모든 것을 한 번에 고치는 것이 아니다. 지금 배울 개념을 정확히 고르고, 조금씩 더 나은 코드를 쓰는 것이다.

"왜 이렇게 동작하지?"가 실력을 만든다

코딩에서 가장 강력한 질문은 "정답이 뭐야?"가 아니다.

"왜 이렇게 동작하지?"다.

코드가 예상과 다르게 움직일 때 우리는 보통 짜증을 낸다. 하지만 사실 그 순간이 가장 좋은 학습 기회다. 내가 생각한 컴퓨터의 동작 방식과 실제 동작 방식 사이에 차이가 드러났기 때문이다. 이 차이를 메우면 개념이 깊어진다.

예를 들어 반복문을 배울 때 출력이 한 번 더 나오거나, 한 번 덜 나오는 일이 생긴다. 이때 단순히 조건식을 고쳐달라고 하면 그 문제만 해결된다. 하지만 "왜 이 반복문은 제가 예상한 횟수보다 한 번 더 실행되나요?"라고 물으면 인덱스, 범위, 조건식의 의미를 배울 수 있다.

아래 코드는 제가 예상한 결과와 다르게 동작합니다.
제 예상:
...
실제 결과:
...

정답 코드부터 주지 말고,
1. 제가 어떤 개념을 오해했는지
2. 코드가 실제로 어떤 순서로 실행되는지
3. 각 줄에서 변수 값이 어떻게 바뀌는지
4. 비슷한 실수를 막는 확인 질문
을 설명해주세요.

이 프롬프트는 거의 모든 언어와 상황에 사용할 수 있다. 파이썬의 리스트, 자바스크립트의 비동기 처리, SQL의 조인, 데이터 분석의 결측치 처리, 머신러닝 모델의 예측 결과 해석에도 적용된다.

특히 데이터 공부에서는 "왜 이렇게 동작하지?"가 더 중요하다. 데이터 분석 코드는 실행이 되더라도 결과 해석이 틀릴 수 있다. 평균을 구했는데 이상치 때문에 값이 왜곡될 수 있고, 그래프는 그럴듯하지만 축 범위 때문에 실제 차이를 과장할 수 있다. 모델 정확도가 높아 보여도 데이터가 한쪽으로 치우쳐 있을 수 있다.

데이터 분석을 공부할 때는 AI에게 단순히 코드를 묻지 말고, 결과를 의심하는 질문을 던져야 한다.

아래 분석 결과를 보고 제가 잘못 해석할 수 있는 지점을 찾아주세요.
데이터의 편향, 결측치, 이상치, 표본 크기, 그래프 해석 문제를 중심으로 설명해주세요.
그리고 추가로 확인해야 할 질문을 제안해주세요.

코딩은 컴퓨터에게 명령하는 기술이지만, 데이터 공부는 숫자에게 속지 않는 기술이기도 하다. AI는 표와 그래프를 설명해줄 수 있지만, 그 설명이 항상 옳은 것은 아니다. 그래서 데이터 학습자는 "이 결과가 정말 의미 있는가?", "다른 해석은 없는가?", "원본 데이터에서 확인해야 할 것은 무엇인가?"를 계속 물어야 한다.

에러 노트를 만들면 실력이 쌓인다

앞 장에서 오답노트를 다뤘다면, 코딩에서는 에러 노트가 그 역할을 한다. 코딩 실력은 에러를 안 내는 사람이 아니라, 같은 에러를 두 번 덜 내는 사람이 빠르게 성장한다.

에러 노트는 길 필요가 없다. 다만 매번 같은 형식으로 기록해야 한다. 형식이 있어야 나중에 패턴이 보인다.

[에러 이름]
예: TypeError, IndexError, KeyError, SyntaxError, ModuleNotFoundError

[상황]
무엇을 하려다가 발생했는가?

[에러 메시지 핵심]
긴 메시지 중 가장 중요한 한 줄은 무엇인가?

[원인]
내가 어떤 개념을 착각했는가?

[해결]
무엇을 바꾸었는가?

[다음에 확인할 것]
비슷한 문제가 생기면 먼저 무엇을 볼 것인가?

AI에게 이 형식으로 정리를 맡길 수도 있다.

아래 에러와 해결 과정을 제 에러 노트 형식으로 정리해주세요.
단, 제가 배운 개념이 드러나도록 쉽게 써주세요.

에러 메시지:
...

내 코드:
...

해결한 방법:
...

몇 주만 이렇게 기록하면 나의 약점이 보인다. 어떤 사람은 자료형 에러가 많다. 어떤 사람은 함수의 반환값을 자주 착각한다. 어떤 사람은 비동기 코드에서 순서를 자주 놓친다. 어떤 사람은 SQL 조인 조건을 자주 빠뜨린다. 이 패턴을 알면 공부할 주제가 분명해진다.

그다음에는 AI에게 이렇게 물을 수 있다.

아래는 제가 최근에 기록한 에러 노트입니다.
반복되는 약점 개념을 찾아주세요.
우선순위가 높은 순서로 복습 계획을 세워주세요.
각 개념마다 작은 연습 문제도 만들어주세요.

이렇게 하면 에러는 더 이상 짜증나는 방해물이 아니라 개인 맞춤형 커리큘럼이 된다. 학원이나 강의가 모두에게 같은 순서로 가르친다면, 에러 노트는 내가 실제로 막힌 지점에서 출발한다. 그래서 강력하다.

코딩 학습용 AI 대화 예시

나쁜 질문은 보통 결과만 요구한다.

파이썬으로 웹 크롤링하는 코드 짜줘.

이 질문을 하면 AI는 코드를 줄 것이다. 하지만 학습자는 그 코드에서 requests가 무엇인지, BeautifulSoup이 무엇인지, HTML 구조를 왜 확인해야 하는지, 사이트 이용 조건을 왜 고려해야 하는지 모른 채 넘어갈 수 있다.

좋은 질문은 목표, 현재 수준, 학습 방식, 제한 조건을 함께 말한다.

저는 파이썬 초보자이고, 웹 페이지에서 제목만 가져오는 방법을 배우고 싶습니다.
완성 코드를 한 번에 주지 말고 다음 순서로 도와주세요.

1. 웹 페이지 요청과 HTML 파싱의 개념을 쉽게 설명하기
2. 의사코드 작성하기
3. 제가 직접 코드 일부를 작성할 수 있도록 빈칸 문제 내기
4. 제가 쓴 코드를 리뷰하기
5. 마지막에 전체 흐름을 제가 설명할 수 있도록 질문하기

나쁜 질문은 에러를 외주화한다.

이 에러 고쳐줘.

좋은 질문은 에러를 학습으로 바꾼다.

이 에러를 제가 이해하고 직접 고칠 수 있게 도와주세요.
정답 코드는 바로 주지 말고, 에러 메시지를 읽는 방법부터 설명해주세요.
그다음 제가 확인해야 할 순서를 질문 형태로 제시해주세요.

나쁜 질문은 프로젝트 전체를 맡긴다.

로그인 기능 있는 게시판 만들어줘.

좋은 질문은 프로젝트를 계단으로 나눈다.

로그인 기능 있는 게시판을 만들며 웹 개발을 배우고 싶습니다.
전체 코드를 만들지 말고, 학습 단계로 쪼개주세요.
각 단계에서 제가 배워야 할 개념과 직접 구현할 작은 기능을 알려주세요.
현재는 HTML, CSS, 자바스크립트 기초만 알고 있습니다.

AI를 코딩 선생님으로 쓰려면 질문 안에 "나를 가르쳐달라"는 구조가 들어 있어야 한다. AI에게 결과물을 요구하면 결과물이 남고, 사고 과정을 요구하면 실력이 남는다.

데이터 공부에서는 코드보다 질문이 먼저다

데이터 분석이나 인공지능을 공부하는 사람도 같은 원칙을 적용해야 한다. 많은 사람이 데이터 공부를 시작하면 라이브러리 사용법부터 외우려고 한다. pandas, numpy, matplotlib, scikit-learn 같은 도구 이름을 익히는 데 시간을 쓴다. 물론 도구는 필요하다. 하지만 데이터 공부의 본질은 도구를 외우는 것이 아니라 질문을 세우고 검증하는 것이다.

예를 들어 쇼핑몰 판매 데이터를 분석한다고 하자. "이 데이터를 분석하는 코드 짜줘"라고 물으면 AI는 매출 합계, 월별 추이, 카테고리별 판매량 같은 코드를 만들어줄 수 있다. 하지만 좋은 데이터 학습자는 먼저 질문을 만든다.

이 매출은 언제 증가했는가. 특정 상품이 많이 팔린 이유는 무엇인가. 할인 기간과 판매량은 관계가 있는가. 신규 고객과 재구매 고객의 행동은 어떻게 다른가. 데이터에 빠진 값은 없는가. 이상하게 큰 주문은 실제 주문인가 오류인가.

AI에게는 이렇게 요청해보자.

아래 데이터 설명을 바탕으로 분석 질문을 먼저 만들어주세요.
코드는 아직 작성하지 마세요.

데이터: 온라인 쇼핑몰 주문 데이터
컬럼: 주문일, 고객ID, 상품명, 카테고리, 가격, 수량, 할인율, 지역

제가 초보자라고 가정하고,
1. 쉬운 분석 질문
2. 중간 난이도 분석 질문
3. 실무에 가까운 분석 질문
으로 나눠주세요.
각 질문마다 필요한 컬럼과 배울 수 있는 개념을 설명해주세요.

데이터 공부에서는 "무엇을 계산할까?"보다 "왜 계산하는가?"가 먼저다. 평균을 구하는 이유, 비율을 보는 이유, 그래프를 그리는 이유를 알아야 한다. AI는 분석 질문을 만드는 데도 좋은 파트너가 될 수 있다.

분석을 마친 뒤에는 결과 해석을 검증받아야 한다.

제가 데이터 분석 결과를 이렇게 해석했습니다.
해석:
할인율이 높을수록 판매량이 증가하므로, 할인은 항상 매출에 도움이 됩니다.

이 해석에서 성급한 결론이나 빠진 조건이 있는지 비판적으로 검토해주세요.
상관관계와 인과관계의 차이를 쉽게 설명해주세요.
추가로 확인해야 할 분석을 제안해주세요.

상관관계는 두 현상이 함께 움직이는 관계이고, 인과관계는 하나가 다른 하나의 원인이 되는 관계다. 할인율이 높을 때 판매량이 늘었다고 해서 할인 때문에 판매량이 늘었다고 바로 말할 수는 없다. 인기 상품이라서 할인도 많이 하고 판매도 많이 됐을 수 있다. 특정 시즌이라 원래 수요가 높았을 수도 있다.

이처럼 데이터 공부에서 AI는 계산 도구이기 전에 생각을 점검하는 질문 파트너가 되어야 한다.

AI와 함께하는 코딩 공부 루틴

코딩과 데이터 공부는 하루에 많은 시간을 몰아서 하는 것보다, 짧게라도 매일 손으로 써보는 편이 좋다. AI가 있으면 짧은 시간 안에도 꽤 밀도 있는 학습이 가능하다. 다음 루틴을 40분 정도로 잡아보자.

처음 5분은 오늘의 목표를 정한다. "반복문 공부하기"처럼 넓게 잡지 말고 "리스트에서 조건에 맞는 값만 골라내기"처럼 작게 잡는다. 데이터 공부라면 "결측치를 찾고 처리하는 방법 이해하기"처럼 정한다.

다음 10분은 의사코드와 예측을 작성한다. 문제를 읽고 바로 AI에게 묻지 않는다. 내가 어떤 순서로 풀 것인지, 실행하면 어떤 결과가 나올지 먼저 적는다.

그다음 15분은 직접 구현한다. 막히면 AI에게 정답을 요구하지 말고 힌트를 요청한다.

제가 여기까지 작성했습니다.
다음 줄을 대신 써주지 말고, 제가 생각해야 할 질문을 주세요.

이 문장은 코딩 공부에서 매우 강력하다. AI가 손을 대신 움직이지 못하게 하고, 머리를 움직이게 만든다.

마지막 10분은 리뷰와 기록이다. 내가 쓴 코드를 AI에게 리뷰받고, 에러가 있었다면 에러 노트에 정리한다. 그리고 오늘 배운 개념을 세 문장으로 설명한다.

오늘 제가 작성한 코드와 에러 기록을 바탕으로,
제가 반드시 기억해야 할 개념 3가지를 정리해주세요.
그리고 내일 이어서 풀면 좋은 작은 문제 2개를 만들어주세요.

이 루틴을 반복하면 코딩 공부가 막연하지 않다. 매일 작은 기능을 만들고, 작은 에러를 이해하고, 작은 개념을 자기 언어로 설명하게 된다. 그것이 쌓이면 실력이 된다.

마지막에는 AI 없이 해봐야 한다

AI를 활용한 코딩 공부의 마지막 단계는 언제나 AI 없이 다시 해보는 것이다. 이것을 생략하면 AI와 함께 있을 때만 잘하는 사람이 된다. 시험장, 면접장, 실무 상황에서는 AI가 없거나 제한될 수 있다. 설령 AI를 쓸 수 있더라도, 기본 실력이 없으면 AI가 준 답이 맞는지 판단할 수 없다.

하루 공부가 끝나면 같은 문제를 새 파일에서 다시 풀어보자. 힌트도 보지 않고, 이전 코드도 보지 않고, 의사코드부터 다시 쓴다. 완벽하지 않아도 된다. 중요한 것은 내 머리로 흐름을 재구성하는 것이다.

AI 없이 최종 점검할 때는 세 가지를 확인한다.

  • 코드 없이 말로 설명할 수 있는가

  • 빈 파일에서 다시 구현할 수 있는가

  • 에러가 났을 때 확인 순서를 떠올릴 수 있는가

이 세 가지가 되면 그 개념은 어느 정도 내 것이 되었다고 볼 수 있다. 반대로 AI가 있으면 할 수 있는데 혼자서는 한 줄도 못 쓰겠다면, 아직 공부가 끝난 것이 아니다. 다시 의사코드로 돌아가야 한다. 다시 작은 예제로 줄여야 한다. 다시 "왜 이렇게 동작하지?"라고 물어야 한다.

코딩과 데이터 공부에서 AI는 놀라운 도구다. 하지만 도구가 실력을 대신 만들어주지는 않는다. 망치가 있다고 집이 저절로 지어지지 않는 것처럼, AI가 있다고 개발 실력이 저절로 생기지는 않는다. 대신 올바르게 쓰면 AI는 매일 내 코드를 읽어주는 리뷰어가 되고, 에러를 함께 추적하는 디버깅 파트너가 되고, 프로젝트를 작은 계단으로 나눠주는 코치가 된다.

코드를 복사하면 결과물은 남는다. 코드를 설명하고 고치면 실력이 남는다.

AI 시대의 코딩 학습자는 더 이상 혼자 막막하게 버티지 않아도 된다. 그러나 마지막 질문은 여전히 나에게 돌아온다.

"나는 이 코드가 왜 이렇게 동작하는지 설명할 수 있는가?"

그 질문에 답할 수 있을 때, AI는 공부를 대신한 것이 아니라 나를 진짜 개발자로 훈련시킨 것이다.

책 목록

AI 공부법 혁명: ChatGPT, Gemini, NotebookLM으로 배우고, 기억하고, 시험까지 준비하는 법

전체 목차 보기

이 노트는 보도·비평·교육·연구 목적으로 작성되었습니다. 저작권 문의가 있으시면 에서 알려주세요.

틸노트는 사용자가 AI를 활용해 노트를 쉽게 작성하거나 편집할 수 있는 서비스입니다.

AI 스퀘어 단톡방에 함께해요

AI 활용과 틸노트 사용 팁을 나누는 오픈채팅방입니다. 입장 비밀번호는 tilnote입니다.

참여하기