슈발 개발자 ai로 대체된다 다 구라임
제목으로 어그로 끌어서 죄송하지만 현 시점 저의 마음입니다.
안녕하세요. 저는 공공기관 프로젝트 유지보수 일을 주로하는 개발…비스무리한 일을 하고 있습니다.
(전자정부프레임워크는 내 친구! 자바 1.6 버전 플젝도 있음)
이번 새 기능을 추가하여 배포를 진행했는데 분명 로컬에선 문제 없이 돌아간 게 운영에 배포하니 문제가 생긴 것입니다.
왜 테스트 서버에서 테스트 안했냐구요? 그런건 없습니다. 워낙 영세한 쟈근 기업이라… 테스트 db도 없어 로컬도 운영 db 연결해서 돌리고 있습니다.
아침에 배포하고 문제 발견했을 때 거의 패닉 상태였고, 강의 듣는 시스템이라 수강생때문에 서버 재시작을 함부로 할 수 없었습니다. 아침 배포 실패하고 회사에서 도입한 클로드 코드랑 제미나이 개 닥달해서 코드를 수정했습니다.
count 쿼리 돌리는 기능인데 인공지능 걔들은 iBatis에서 값을 BigDecimal로 반환하니 반환값을 담는 타입이 int라 문제가 발생한다고 답했습니다. 다른 문제 원인이 없을지 꼬치꼬치 캐물었지만 저게 100퍼센트 원인이다 했었죠.
설명도 납득가게 했고, 로컬에서 톰캣 버전도 맞추고 이클립스에서 전자정부프레임워크로 돌려봐도 문제 재현은 안되서 그대로 수정했습니다. 그리고 저녁 11시에 다시 재배포 했는데 문제가 전혀 해결되지 않는 것입니다. 쿼리 부분에서 터지는 것이죠.
희안하게 값이 0일때는 쿼리가 안터지는데 1일때는 쿼리가 터져서 미치기 일보직전이었습니다. ai한테 계속 안된다고 문제가 뭔지, 어딜 수정해야하는지 물어보며 수정해보고 라이브러리가 문제인가 해서 war로 말아 통배포도 해봤지만 해결이 안됐습니다.
그리고 오늘 혹시 테스트 데이터가 문제인지 해서 db에 테스트 데이터 지우고 다시 새 데이터 넣다 강의 시작 날짜 컬럼이 varchar2인게 눈에 들어왔고 where절 마지막에 날짜 데이터랑 sysdate 비교하는 부분도 같이 눈에 들어온 겁니다.
그렇습니다. 0인 값은 그 전 조건문에서 나가리이니까 날짜 비교없이 정상 작동한거고 1인 값은 날짜 비교하는 조건문이 작동한거니까 쿼리가 터진거죠. 그때 깨달은 기쁨과 함께 왜 이걸 클로드도 제미나이도 찾지 못한거지? 열받더라구요.
그래도 제가 sysdate를 문자형으로 안바꾼게 죄인 거죠. 그리고 ai 도움으로 로컬은 윈도우 환경이니까 환경변수 때문에 잘 변환됐지만 운영서버는 리눅스고 환경변수 따로 설정해두지 않아 터져버렸다는걸 알았습니다.
(우리 시스템은 안터지던데? 라고 하실 수도 있는데 아마 날짜 데이터가 YYYY/MM/DD나 YYYY-MM-DD로 되어 있을 것입니다. 근데 이 시스템 강의 시작 날짜 데이터는 2026.04.01 이따구로 저장되어 있었습니다. ㅅ벌…)
며칠 이것때문에 뺑이 치고 나니까 AI ㅈㄴ 못믿겠고 이런 개판 5분전 구닥다리 시스템은 인간 개발자가 관리할 수밖에 없다는 생각이 들어 주서없이 주저리주저리 적습니다.
재미도 없는 글 읽어주셔서 감사합니다.