내 사이드 프로젝트 백엔드를 AI로 교체했더니 — 먼저 고장난 것은?
Source: Dev.to
실험 개요
최근 인터넷을 5분이라도 사용했다면, 누군가 이렇게 말했을 가능성이 큽니다:
“형, 이제 AI가 백엔드 전체를 다 짤 수 있어.”
작은 실험을 해보기로 했습니다: 내 사이드 프로젝트 백엔드 로직 대부분을 AI가 만든 코드와 프롬프트로 대체할 수 있을까?
짧은 답변: 가능했습니다.
결과: 아니, 안 됩니다.
사이드 프로젝트
- 간단한 백엔드 (CRUD + 인증 + 알림)
- 화려한 건 없고, 동작하던 것 그대로
- 스택: REST API, 데이터베이스, “자연스럽게” 늘어난 비즈니스 규칙들
계획
- AI를 이용해 컨트롤러, 서비스, 일부 검증 로직을 생성한다.
- “나중에 정리하자” (유명한 마지막 말).
- 빠르게 움직이고, 부수고 — 가능하면 프로덕션에서는 하지 않는다.
가정
- AI는 코드 작성에 뛰어나다.
- AI는 당신의 가정을 이해하는 데 서툴다.
예시
프롬프트: “알림을 보내는 엔드포인트를 생성해줘.”
AI 응답: “알겠어요, 실패한 알림을 무한히 재시도할게요.”
결과: 무한 재시도, 백오프 없음, 제한 없음, 서킷 브레이커 없음. AI는 다음을 전제로 합니다:
- 네트워크 호출은 언제나 복구된다.
- 외부 시스템은 친절하다.
- 레이트 리밋은 권고사항일 뿐이다.
현실은 그렇지 않다.
보안 (조용히)
아무것도 크래시되지 않아 오히려 더 무서웠습니다. AI는 기꺼이:
- 내부 ID를 노출했다.
- 민감한 페이로드를 로그에 남겼다.
- “중복돼 보이니” 라는 이유로 가장자리 인증 검사를 건너뛰었다.
코드는 깔끔했지만… 눈에 보이지 않았다.
교훈: “이건 보안에 민감한 부분이다” 라고 명시하지 않으면, AI는 튜토리얼처럼 다룬다.
비즈니스 로직 미묘함
AI에게 “사용자가 특정 행동을 할 자격이 있는지 검증해줘” 라고 요청했습니다.
AI는:
- 기본 조건만 확인했다.
- 그 조건들이 처음에 왜 존재했는지는 놓쳤다.
사람은 의도를 추한 if 문과 패턴에 담아 둡니다. 그 차이가 생각보다 크게 작용했습니다.
반전
AI가 뛰어났던 부분:
- 보일러플레이트 (DTO, 매퍼).
- 테스트 케이스 스캐폴딩.
- 내 코드를 다시 설명해 줌.
하지만 나를 대체하지는 못했습니다.
권고 사항
이 방법을 시도해보고 싶다면 (한 번쯤은 해보는 게 좋습니다):
✅ AI를 활용할 영역
- 스켈레톤 코드.
- 반복적인 로직.
- 테스트.
- 문서화.
🚫 AI를 무조건 신뢰하면 안 되는 영역
- 인증.
- 재시도 로직.
- 금전 관련 로직.
- 특정 역사적 사건(예: “2021년 사건 때문에 존재하는 가장자리 케이스”) 때문에 존재하는 예외 상황.
핵심: AI는 뛰어난 인턴일 뿐, 당신의 기술 리드는 아니다. 내 과신이 백엔드를 망가뜨렸지, AI 자체가 문제는 아니었다. 더 좋은 프롬프트와 더 많은 테스트가 있다면 결과는 크게 달라질 수 있다.