저는 개발자가 아닌데 사내 B2B 교육 관리 ERP를 바이브코딩으로 만들었고, 지금은 팀이 같이 씁니다. 프로젝트, 강사, 세션, 매출 같은 게 다 들어있는 시스템이에요.
어느 날부터 프로젝트 목록 화면이 답답했어요. 클릭하면 몇 초씩 멈춰 있습니다. 그냥 목록인데요. 그래서 다른 작업을 하다 말고 느리다고 한마디 했어요.
참고로 이건 챗봇 대화창 얘기가 아니라, 내 컴퓨터의 코드를 직접 열고 실행까지 해주는 도구를 쓰는 얘기예요. 저는 클로드 코드를 씁니다.
AI가 재서 가져온 답
고치라고 안 하고 재보라고 했어요. 이게 이 글에서 제일 중요한 부분이에요. 느리다고만 하면 AI는 바로 코드를 고치기 시작하는데, 그러면 뭐 때문에 빨라졌는지 영영 모르게 되거든요.
돌아온 답이 이랬어요. 목록 화면 하나 여는 데 4.17초, 화면에 내려오는 데이터는 0.23MB. 그중 교육 세션을 붙이는 조회 하나가 1.9초였고 나머지 조각들은 각각 0.5초 안팎이었어요.
데이터가 무거워서가 아니었어요. 0.23MB면 사진 한 장 수준이에요. 화면 한 번 여는 데 데이터베이스에 열여섯 번 따로 물어보고 있었던 거예요.
화면 한 번 여는 데 데이터베이스에 열여섯 번 물어보고 있었고, 고친 뒤에는 한 번으로 줄었다
AI가 제일 먼저 민 방법
원인과 같이 고칠 방법 세 가지가 왔는데, 1번이 이거였어요.
목록에서 세션 상세를 빼기 (효과 제일 큼). 목록·타임라인·캘린더는 세션 날짜만 있으면 됩니다. 강사·파 견자는 배정 탭에서만 쓰니 그 탭 열 때 따로 불러오면 됩니다. 4.2초 → 2.2초 정도로 떨어집니다.
읽어보면 틀린 말이 하나도 없어요. 제일 무거운 조각이 세션이니까 그걸 빼면 제일 많이 빨라지죠. 효과도 정확하게 예측했고요.
그런데 저는 목록에서 강사 이름을 봐요. 어느 차수에 누가 들어가는지 훑으려고 목록을 여는 거니까요. 그걸 배정 탭에 들어가야만 볼 수 있게 바꾸면, 화면은 빨라지는데 제 일은 느려집니다. 클릭이 한 번 더 늘어나니까요.
AI는 그걸 몰라요. 알 수가 없어요. 코드를 보면 그 필드가 화면에 쓰이는지는 알 수 있지만, 그게 제 업무에서 어떤 무게를 갖는지는 코드에 안 적혀 있거든요. 그래서 AI 입장에서 제일 확실한 답은 언제나 덜어내는 쪽이에요. 안 하면 빨라지는 건 확실하니까요.
그날 제가 한 말은 이거였어요.
그거말고 다른 방법은없어?
정말 이렇게만 물어봤어요. 그랬더니 다른 선택지들이 나왔고, 그중에 여러 번 나눠 묻던 걸 한 번에 묻게 합치는 방법이 있었어요. 기능은 그대로 두고요.
그래 sql로 ㄱㄱ
결과
물어본 횟수는 16번에서 1번으로, 걸린 시간은 2.1초에서 0.18초로 줄었어요. 제 노트북에서 잰 값이에요.
운영 서버에서는 고친 뒤로 중앙값 0.35초가 나왔어요. 다만 운영 서버에서 고치기 전 상태는 재본 적이 없어요. 안 잰 걸 잰 것처럼 적을 수는 없어서 나눠 적어요.
목록에서 빠진 건 없습니다. 강사 이름 그대로 보여요.
SQL은 제가 짠 게 아니라 AI가 짰어요. 저는 SQL을 못 씁니다. 제가 한 건 첫 번째 답을 안 받은 것뿐이에요.
여기서 제 실수도 하나 적어둘게요. 제가 쓰던 도구에는 여러 번 나눠 묻는 대신 한 번에 묻게 하는 설정이 이미 있었어요. 그걸 확인 안 하고 바로 SQL로 갔습니다. 나중에 지적받고 알았어요. 설정 하나로 끝났을 수도 있는 걸 돌아간 거예요.
빨라진 다음에 한 가지 더
조회 방식을 바꾸면 결과가 미묘하게 달라질 수 있어요. 강사 이름이 하나 빠지거나 매출 숫자가 다르게 잡히거나. 그럼 빨라진 의미가 없죠. 속도는 눈에 보이는데 값이 틀어진 건 한참 뒤에 발견돼요. 팀이 같이 쓰는 시스템이면 더 그렇고요.
그래서 배포 전에 바꾸기 전 방식과 바꾼 방식을 둘 다 돌려서, 실제 데이터 87건을 항목 하나하나 비교시켰어요. 차이가 딱 하나 나왔습니다. 기존 방식이 화면에서 쓰지도 않는 값까지 딸려 보내고 있었더라고요.
배운 점
AI한테 느리다고 하면 대체로 뭘 덜어내자고 합니다. 안 하면 빨라지는 건 확실하고, 그 기능이 실제로 얼마나 쓰이는지는 코드에 안 적혀 있으니까요. 그게 게으른 게 아니라, 모르는 걸 모른다고 표시할 방법이 없어서 그래요.
그래서 저는 요즘 AI가 방법을 여러 개 가져오면 1번을 그대로 받지 않고 한 번 되물어봐요. 그거 말고 다른 방법은 없냐고요.
혹시 지금 만드신 게 느리다면 순서만 기억하셔도 돼요.
만든 게 느릴 때 물어보는 순서 네 가지