ChatGPT로 코딩 공부해본 후기 - 초보 개발자가 실제로 써본 이야기
"ChatGPT만 있으면 코딩 공부는 다 되는 거 아니야?" 처음 싸지방에서 ChatGPT를 켰을 때 저도 이런 기대를 했습니다. 모르는 문법을 물어보면 바로 답이 나오고, 막힌 코드를 붙여넣으면 고쳐주기까지 하니 이보다 편한 공부 도구가 없어 보였습니다. 그런데 몇 달을 써보니 생각이 달라졌습니다. 편하게 쓰는 것과, 실력이 느는 방식으로 쓰는 것은 전혀 다른 이야기였습니다.
목차
- "ChatGPT만 있으면 다 된다"는 생각이 놓친 것
- 처음엔 정답 코드부터 요청했다가 생긴 문제
- 질문 방식을 바꾸고 나서 달라진 점
- 오류가 발생했을 때 활용한 3단계 방법
- 환각(Hallucination) 현상, 검증 없이 믿으면 안 되는 이유
- 코드 리뷰 요청하는 법 - 그대로 받지 않고 제대로 쓰는 법
- 실력을 끌어올린 프롬프트 패턴 3가지
- 초보자가 빠지기 쉬운 복사-붙여넣기의 함정
- 한눈에 보는 상황별 활용 가능표
- 자주 묻는 질문(FAQ)
1. "ChatGPT만 있으면 다 된다"는 생각이 놓친 것
코딩을 처음 시작할 때 ChatGPT는 정말 매력적인 도구처럼 보입니다. 문법을 몰라도 물어보면 설명해주고, 오류가 나도 코드를 붙여넣으면 원인을 찾아줍니다. 그래서 "이 정도면 강의나 책이 따로 필요 없지 않을까"라는 생각까지 든 적이 있습니다.
기존에는 에러 메시지가 뜨면 검색창에 그대로 복사해서 검색하는 게 전부였습니다. 검색 결과로 나오는 글들은 대부분 전문 용어로 가득 차 있어 읽는 것 자체가 쉽지 않았습니다. ChatGPT는 이 과정을 건너뛰고 내 상황에 맞춰 정리된 답을 바로 준다는 점에서 확실히 편했습니다. 하지만 몇 달간 써보니, ChatGPT가 대신 풀어준 문제는 제 머릿속에 거의 남지 않았습니다. 편리함과 실력 향상은 반드시 같은 방향으로 가지 않는다는 걸, 몇 번의 시행착오 끝에 깨달았습니다.
2. 처음엔 정답 코드부터 요청했다가 생긴 문제
초반에는 문제를 풀다가 막히면 바로 "이 문제 정답 코드 알려줘"라고 물어봤습니다. 코드는 순식간에 나왔고, 실행해보면 정확히 원하는 결과가 나왔습니다.
문제는 그다음이었습니다. 비슷한 유형의 문제를 며칠 뒤 다시 마주쳤을 때, 분명 예전에 풀어본 문제인데도 처음 보는 것처럼 막막했습니다. 정답을 받아서 실행 결과만 확인했지, 그 코드가 왜 그런 순서로 짜였는지는 이해하지 않고 넘어갔기 때문입니다. 결국 "풀었다"는 기록만 남고 "이해했다"는 실력은 남지 않은 셈이었습니다. "코드가 실행된다"와 "코드를 이해한다"는 전혀 다른 얘기라는 걸 이때 확실히 체감했습니다.
3. 질문 방식을 바꾸고 나서 달라진 점
이후로는 질문 방식을 완전히 바꿨습니다. 정답을 바로 요청하는 대신, 다음과 같은 순서로 접근했습니다.
- 먼저 직접 문제를 풀어봅니다.
- 막히면 "정답은 알려주지 말고, 내가 어느 부분을 잘못 생각했는지만 짚어줘"라고 요청합니다.
- 힌트를 받아서 다시 직접 코드를 고쳐봅니다.
- 그래도 안 되면 "이 코드를 처음 배우는 사람도 이해할 수 있게 한 줄씩 설명해줘"라고 요청합니다.
문법 개념을 물어볼 때도 "쉽게 설명해줘"보다 구체적인 조건을 붙이는 게 훨씬 도움이 됐습니다. 예를 들어 클래스와 객체 같은 개념은 다음처럼 순서를 정해 질문했습니다.
Java의 클래스와 객체를 초보자가 이해할 수 있도록 설명해줘.
1. 클래스가 무엇인지
2. 객체가 무엇인지
3. 둘의 차이
4. 간단한 코드 예제
5. 내가 직접 풀어볼 연습문제
순서로 설명해줘.
이렇게 바꾸고 나서 체감되는 가장 큰 차이는, 같은 문제를 나중에 다시 풀 수 있게 됐다는 점입니다. 시간은 조금 더 걸렸지만, 그만큼 남는 게 훨씬 많았습니다.
4. 오류가 발생했을 때 활용한 3단계 방법
에러 메시지는 처음엔 어디부터 봐야 할지 모르는 경우가 많습니다. 이럴 때는 다음 순서로 질문하는 게 효과적이었습니다.
- 코드와 에러, 원하는 결과를 함께 전달: 에러 메시지만 보내지 말고, 코드 전체와 "내가 원하는 결과"를 같이 적습니다.
- 실행 환경 명시: 사용하는 언어 버전이나 실행 환경 정보를 함께 알려주면 답변의 정확도가 올라갑니다.
- 제시된 해결책을 순서대로 적용: 여러 해결책이 나오면 가장 간단한 것부터 하나씩 적용하며 반응을 확인합니다.
Java로 배열을 처리하는 코드를 작성했습니다.
내가 원하는 결과:
배열에서 가장 큰 숫자를 출력하고 싶습니다.
현재 코드:
[내 코드]
발생한 오류:
[에러 메시지]
초보자도 이해할 수 있게 오류가 발생한 원인을 단계별로 설명해주세요.
이렇게 질문하면 단순히 수정된 코드를 받는 것보다 오류의 원인을 이해하는 데 훨씬 도움이 됩니다.
5. 환각(Hallucination) 현상, 검증 없이 믿으면 안 되는 이유
ChatGPT를 쓰면서 가장 조심해야 했던 부분은, 실제로 존재하지 않는 함수나 잘못된 문법을 마치 맞는 것처럼 답변하는 경우였습니다. 이런 현상을 흔히 "환각(Hallucination)"이라고 부르는데, 초보자는 이게 틀린 답인지 구분하기가 쉽지 않아서 잘못된 정보를 그대로 학습할 위험이 있습니다.
이 문제를 줄이려면 다음 습관이 필요합니다.
- ChatGPT가 준 코드는 반드시 직접 실행해서 결과를 확인합니다.
- 실행 중 이상한 동작이나 처음 보는 함수가 나오면 공식 문서로 교차 검증합니다.
- 특히 최신 라이브러리나 잘 알려지지 않은 문법을 물어봤을 땐 한 번 더 의심하고 확인하는 습관을 들입니다.
편리하다고 해서 답변을 그대로 믿기보다, "이게 맞는지 확인해봐야겠다"는 태도를 유지하는 게 장기적으로는 훨씬 안전했습니다.
6. 코드 리뷰 요청하는 법 - 그대로 받지 않고 제대로 쓰는 법
코드를 작성한 뒤 ChatGPT에게 리뷰를 요청하는 것도 유용한 활용법이었습니다. 다만 처음부터 "코드를 개선해줘"라고 뭉뚱그려 요청하기보다, 확인하고 싶은 항목을 구체적으로 정하는 게 좋았습니다.
아래 Java 코드를 리뷰해주세요.
1. 초보자가 이해하기 어려운 부분
2. 논리적으로 잘못된 부분
3. 변수명이나 코드 구조에서 개선할 부분
4. 시간복잡도
5. 내가 직접 고쳐볼 수 있도록 수정 코드는 마지막에 보여주세요.
이렇게 하면 새로운 코드를 그냥 받는 게 아니라, 내가 작성한 코드의 어떤 부분이 문제인지부터 파악하게 됩니다. 다만 코드 리뷰를 받는 것과 그걸 직접 반영해서 고쳐보는 것은 완전히 별개의 과정입니다. 리뷰 결과를 보고 실제로 손을 대서 고쳐보는 단계까지 거쳐야 진짜 공부가 됩니다.
7. 실력을 끌어올린 프롬프트 패턴 3가지
질문을 어떻게 구성하느냐에 따라 답변의 질이 크게 달라졌습니다. 특히 다음 세 가지 패턴이 자주 도움이 됐습니다.
- 역할 부여 프롬프트: "너는 경력이 오래된 백엔드 개발자야. 내가 작성한 코드를 코드 리뷰 관점에서 가독성과 안정성 측면으로 평가해줘."
- 단계별 작성 요청: "한 번에 모든 코드를 주지 말고, 전체 구조를 먼저 설명해준 뒤 내가 확인하면 첫 번째 파트 코드를 보여줘."
- 소크라테스식 질문 요청: "정답 코드를 바로 알려주지 말고, 내가 스스로 문제를 해결할 수 있도록 단계별 힌트를 질문 형태로 던져줘."
세 가지 모두 공통점은 "결과물을 즉시 받는 질문"이 아니라 "생각할 여지를 남기는 질문"이라는 점입니다. 아쉬운 질문과 좋은 질문을 비교하면 이 차이가 더 뚜렷해집니다.
- 아쉬운 질문: "이 문제 풀어줘" → 좋은 질문: "내 풀이가 왜 틀렸는지, 정답은 말하지 말고 힌트만 줘"
- 아쉬운 질문: "이 코드 고쳐줘" → 좋은 질문: "이 에러 메시지가 무슨 뜻인지 설명해주고, 어디를 확인해봐야 할지 알려줘"
- 아쉬운 질문: "배열이 뭐야" → 좋은 질문: "배열과 리스트의 차이를 예제와 함께 설명해줘"
8. 초보자가 빠지기 쉬운 복사-붙여넣기의 함정
ChatGPT가 완성된 코드를 제시해주면 나도 모르게 그대로 드래그해서 에디터에 붙여넣고 싶은 유혹이 생깁니다. 당장은 기능이 동작해서 뿌듯하지만, 이건 내 실력이 아니라 AI의 실력일 뿐입니다.
코드를 이해하지 못한 채 복사하고 붙여넣는 행위만 반복하면, 조금만 변형된 문제가 나와도 스스로 해결하지 못하는 상태가 됩니다. 아무리 짧은 코드라도 직접 손으로 타이핑하며 한 줄 한 줄의 의미를 되새기는 과정이 필요합니다. 저는 이후로 다음 원칙을 지켰습니다.
- 답을 받기 전에 먼저 스스로 5분 이상 고민해보는 시간을 갖습니다.
- 받은 설명을 그대로 복사하지 않고, 반드시 직접 다시 타이핑해봅니다.
- 하나의 질문에서 여러 개념이 한꺼번에 쏟아지면, 한 번에 전부 이해하려 하지 말고 하나씩 나눠서 다시 질문합니다.
9. 한눈에 보는 상황별 활용 가능표
지금까지의 경험을 정리하면 다음과 같습니다.
| 문법 개념 처음 배우기 | 높음 | 필요한 부분만 빠르게 설명받을 수 있음 |
| 에러 메시지 해석 | 높음 | 원인 파악 속도가 빠름 |
| 코딩테스트 접근 힌트 얻기 | 중간 | 힌트로만 활용하면 효과적 |
| 코드 리뷰 요청 | 높음 | 확인 항목을 구체적으로 정하면 효과적 |
| 문제 정답을 그대로 받기 | 낮음 | 실력으로 남지 않음 |
| 실전 코딩테스트 감각 훈련 | 낮음 | 직접 풀어보는 경험을 대체할 수 없음 |
| 최신 라이브러리·문법 정보 | 주의 필요 | 환각 현상으로 부정확한 답변 가능성 있음 |
이 표에서 알 수 있듯, ChatGPT는 "무엇이든 대신 해결해주는 도구"가 아니라 "생각하는 과정을 돕는 도구"로 썼을 때 가장 효과가 좋았습니다.
10. 자주 묻는 질문(FAQ)
Q. 코딩을 하나도 모르는 초보자도 ChatGPT로 공부할 수 있나요? A. 가능은 하지만 기본 문법이나 CS 기초가 전혀 없는 상태에서는 답변이 맞는지조차 판단하기 어렵습니다. 기초 강의나 책으로 최소한의 개념을 잡은 뒤, 보조 학습 도구로 함께 쓰는 걸 추천합니다.
Q. ChatGPT가 짠 코드가 작동하지 않을 때 어떻게 해야 하나요? A. 발생한 오류 메시지 전체를 다시 붙여넣고 "방금 제공한 코드를 적용했는데 이런 에러가 발생했다, 원인이 무엇인가"라고 구체적으로 추가 질문하는 게 좋습니다. 그래도 해결이 안 되면 공식 문서로 교차 확인하는 과정이 필요합니다.
Q. 무료로 써도 코딩 공부에 충분한가요? A. 기초 문법을 익히고 간단한 오류를 분석하는 수준에서는 무료로도 충분히 도움이 됐습니다. 다만 서비스 정책이나 제공되는 기능은 계속 바뀌기 때문에, 필요하다면 현재 제공되는 옵션을 직접 확인해보는 걸 추천합니다.
ChatGPT는 분명 편리한 도구입니다. 하지만 편리함에 기대어 정답만 받아 챙기면, 그 순간의 문제는 풀려도 실력에는 거의 남지 않습니다. 질문하는 방식을 조금만 바꿔서 힌트와 설명 위주로 쓰고, 답변은 항상 한 번 더 검증하는 습관을 들이면, 같은 도구로도 훨씬 오래 남는 공부를 할 수 있습니다.
이 글은 실제 경험과 정보를 바탕으로 작성한 개인적인 정리 글이며, 특정 서비스로부터 협찬을 받지 않았습니다.