챗GPT 코딩 결과의 품질은 모델보다 프롬프트에 담은 맥락, 즉 입력·출력·제약·환경을 얼마나 구체적으로 적었는지에서 대부분 갈린다. 초보는 한 줄 요청과 요구사항 누락, 검증 없는 복사 같은 정해진 실수를 반복한다. 특히 생성된 코드에는 존재하지 않는 패키지가 섞이기도 하므로, 실행 전 패키지 실재 여부와 보안·경계 상황을 반드시 점검해야 한다.

챗GPT로 같은 기능을 요청해도 어떤 날은 바로 돌아가는 코드가, 어떤 날은 엉뚱한 결과가 나온다. 이 차이의 대부분은 모델 성능이 아니라 요청에 담긴 맥락에서 생긴다. OpenAI가 안내하는 프롬프트 원칙도 결국 한 문장으로 모인다. 무엇을, 어떤 조건에서, 어떤 형태로 원하는지 구체적으로 적으라는 것이다.
초보의 요청은 보통 "회원가입 기능 만들어줘"에서 멈춘다. 모델은 빈칸을 자기 방식으로 채우고, 그래서 언어도 라이브러리도 매번 달라진다. 반대로 "파이썬 3.11, FastAPI로, 이메일 중복이면 400을 반환하는 회원가입 엔드포인트"라고 적으면 결과의 편차가 크게 줄어든다. 입력, 출력, 제약, 실행 환경. 이 네 가지를 적었는지가 품질을 가르는 첫 갈림길이다.

Jakub Zerdzicki
실수는 대체로 정해진 유형으로 반복된다.
고치는 방법은 단순하다. 한 번에 완성하려 하기보다, 초안을 받고 조건을 덧붙여 다시 요청하는 식으로 다듬는 쪽이 결과가 안정적이다.
가장 중요한 습관은 마지막에 있다. 생성된 코드를 검증 없이 실행하지 않는 것이다. 여기엔 초보가 놓치기 쉬운 구체적 위험이 있다.
챗GPT는 존재하지 않는 라이브러리를 진짜처럼 지어내기도 한다. 2025년 한 대규모 연구에서 16개 모델의 코드 57만여 건을 분석했더니, 패키지 참조의 약 19.7%가 실재하지 않는 이름이었다. 모델에 따라 이 비율은 20%에서 60%대까지 벌어졌다. 문제는 공격자들이 이렇게 자주 지어내지는 이름을 미리 선점해 악성 코드를 심어두는 '슬롭스쿼팅' 수법이다. 그래서 설치 명령을 그대로 복사하기 전에 그 패키지가 공식 저장소에 실제로 존재하는지, 널리 쓰이는지부터 확인해야 한다.
실행 전 아래 항목을 훑는 습관을 들이면 사고를 크게 줄일 수 있다.
마지막 항목이 핵심이다. 이해하지 못한 코드를 그대로 넣는 순간, 그건 내 코드가 아니라 언젠가 터질 남의 코드가 된다. 챗GPT는 초안을 빠르게 뽑아주는 도구이고, 그 초안을 검증해 내 것으로 만드는 일은 여전히 사람의 몫이다.