IT1004

AI로 코드를 쓸 때 반드시 사람이 봐야 하는 곳

개발 실무 IT1004

AI로 며칠이면 동작하는 것이 나옵니다. 다만 동작하는 것과 안전한 것은 다릅니다.

반드시 직접 확인할 곳

  1. 인증·권한 — 남의 데이터가 보이는지
  2. 금액 계산 — 클라이언트 값을 믿고 있는지
  3. 입력 검증 — 서버에서 다시 확인하는지
  4. 비밀키 취급 — 코드나 저장소에 들어갔는지
  5. 에러 처리 — 실패했는데 성공으로 넘어가는지
특히 결제 금액을 클라이언트에서 받는 코드는 자주 생성됩니다. 금액은 반드시 서버에서 확정해야 합니다.

생성된 코드의 전형적인 문제

증상왜 생기나
동작은 하는데 느림쿼리를 반복 호출
가끔 깨짐예외 처리가 빠짐
보안 구멍권한 검사 누락
나중에 못 읽음일관성 없는 구조

테스트가 더 중요해졌습니다

직접 한 줄씩 쓰지 않았으니 내가 모르는 동작이 들어 있을 수 있습니다. 핵심 흐름만이라도 테스트를 걸어두어야 합니다.

특히 결제·인증·데이터 삭제는 반드시 테스트가 필요합니다.

속도가 빨라진 만큼 검토가 밀립니다

만드는 속도가 빨라지면 검토 없이 배포하는 습관이 생기기 쉽습니다. 배포 전 확인 목록을 만들어 두는 편이 안전합니다.

가장 위험한 패턴 — 금액을 클라이언트에서 받기

AI가 생성한 결제 코드에서 자주 나오는 실수입니다. 화면에서 금액을 받아 그대로 결제 요청에 넣는 구조입니다.

이러면 브라우저에서 값을 바꿔 1원으로 결제할 수 있습니다.

올바른 구조
① 화면은 상품 ID만 보냅니다
② 서버가 그 상품의 가격을 DB에서 조회합니다
③ 서버가 확정한 금액으로 결제를 요청합니다
④ 승인도 서버에서 처리하고 금액을 다시 검증합니다

권한 검사 누락

목록 조회에는 사용자 필터가 있는데 상세 조회에는 없는 경우가 흔합니다. ID만 바꾸면 남의 데이터가 보입니다.

  1. 모든 조회에 소유자 조건이 들어갔는지
  2. 수정·삭제에도 같은 조건이 있는지
  3. 목록과 상세가 같은 기준을 쓰는지
  4. 관리자 기능이 일반 사용자에게 노출되지 않는지
테스트할 때 계정을 두 개 만들어 서로의 데이터에 접근해 보세요. 이 한 번의 테스트가 가장 흔한 사고를 막습니다.

생성 코드에서 자주 보이는 성능 문제

패턴증상해결
반복문 안 쿼리목록이 느려짐한 번에 조회
인덱스 없음데이터가 쌓이며 느려짐조회 조건에 인덱스
전체 조회 후 필터메모리 사용 급증DB에서 필터
불필요한 컬럼 조회네트워크 낭비필요한 것만

데이터가 적을 때는 안 보입니다. 100건에서는 멀쩡하다가 10,000건에서 갑자기 느려집니다. 테스트 데이터를 많이 넣어보면 미리 발견할 수 있습니다.

실패를 성공으로 처리하는 코드

예외를 잡았다면 반드시 무언가를 해야 합니다. 최소한 로그는 남겨야 합니다.

배포 전 최소 체크리스트

  1. 다른 계정으로 남의 데이터에 접근되는가
  2. 금액이 서버에서 확정되는가
  3. 키가 코드나 저장소에 있는가
  4. 실패 시 사용자에게 알려지는가
  5. 삭제가 되돌릴 수 없는 것인지 확인했는가
  6. 대량 데이터에서 동작하는가
여섯 개를 순서대로 확인하는 데 30분이면 됩니다. 사고가 나면 며칠이 걸립니다.

자주 묻는 질문

AI가 쓴 코드를 그대로 상용에 써도 되나요?
동작 확인만으로는 부족합니다. 보안과 금액 관련 부분은 반드시 직접 읽어보시길 권합니다.
AI에게 보안 검토를 시켜도 되나요?
도움은 됩니다. 다만 같은 AI가 만든 코드를 같은 AI가 검토하면 놓치는 부분이 생깁니다. 체크리스트로 직접 확인하는 편이 안전합니다.
테스트 코드도 AI로 만들어도 되나요?
가능합니다. 다만 테스트가 무엇을 검증하는지는 직접 읽어야 합니다. 항상 통과하는 무의미한 테스트가 만들어지기도 합니다.

같이 보면 좋은 글

개발 실무 전체 글

개발 실무 목록 보기 →