"완성했다"와 "서비스할 수 있다"는 다릅니다. 로컬에서 혼자 테스트할 때와 실제 사용자가 들어왔을 때는 완전히 다른 세계입니다. AI 코딩으로 만든 서비스에서 특히 자주 나오는 상황들을 정리했습니다.
실사용자 받으면 나오는 Top 5
- 이상한 걸 입력하면 서버가 죽음개발자 본인은 정상적인 값만 넣어서 테스트합니다. 실제 사용자는 빈 칸 제출, 특수문자, 엄청 긴 문자열 같은 걸 넣습니다. 입력값 검증이 없으면 서버 에러가 납니다.
- 동시 접속자 3명에 느려지거나 죽음무료 플랜 서버는 리소스가 작습니다. 혼자 쓸 때는 괜찮던 게 몇 명이 동시에 들어오면 응답이 없어집니다.
- 모바일에서 레이아웃 깨짐크롬 데스크탑에서만 테스트하면 모바일 사용자가 보는 화면을 모릅니다. 버튼이 잘리거나 텍스트가 넘치는 경우가 많습니다.
- 개인정보가 URL에 노출됨URL에 사용자 ID, 이메일이 그대로 노출되는 케이스가 있습니다. AI가 예시로 만든 구조를 그대로 쓰면 이런 문제가 생깁니다.
- 에러가 나도 뭔지 모름사용자한테 "뭔가 안 되는 것 같아요"라는 메시지를 받아도 서버 로그를 어떻게 보는지 모르면 원인을 찾을 수 없습니다.
런칭 전 체크리스트
- 실제 폰으로 모바일 테스트 완료
- 빈 칸 제출, 특수문자 입력 테스트
- URL에 민감한 정보(이메일, 이름) 노출 없음
- 에러 모니터링 연동 (Sentry 무료 플랜)
- 서버 로그 확인 방법 알고 있음
- 개인정보처리방침 페이지 있음
- 서비스 중단 시 사용자에게 알릴 방법 있음
AI 코딩의 한계가 아닙니다. 프로덕션 기준이 다른 겁니다. 이 체크리스트만 통과해도 런칭 후 큰 사고를 막을 수 있습니다.
에러 모니터링 빠르게 설정하는 법
Sentry는 무료로 쓸 수 있습니다. 코드 몇 줄이면 연동됩니다. 실사용자에게 에러가 발생하면 이메일로 알림이 오고, 에러 내용과 발생 경로를 볼 수 있습니다. 이게 없으면 사용자가 에러를 직접 말해줄 때까지 모릅니다.
AI한테 "Sentry 연동 코드 추가해줘, 스택은 [사용 중인 기술]"이라고 하면 바로 코드가 나옵니다.
자주 묻는 질문
입력값 검증(validation)과 try-catch 에러 처리를 모든 API 엔드포인트에 추가해야 합니다. AI에게 '모든 입력값 검증과 에러 처리를 추가해줘'라고 요청하면 됩니다.
브라우저 주소창에 사용자 ID, 이메일, 이름 같은 정보가 보이면 문제입니다. 민감한 데이터는 URL 파라미터 대신 POST body나 세션으로 전달해야 합니다.
Sentry를 무료로 사용할 수 있습니다. 코드 몇 줄로 연동하면 실사용자에게 발생하는 에러를 실시간으로 이메일/슬랙으로 받을 수 있습니다.