본문 바로가기

Programmer

(33)
회사 개발환경에서 AI 코드 도구를 써보려 했던 이야기 개발 커뮤니티를 보면 Claude code나 Codex 같은 AI 코드 도구를개발환경에 연결해 생산성을 높이고 있다는 이야기를 자주 볼 수 있다. 나 역시 개인적으로 여러 가지를 만들어보면서AI 도구가 개발 생산성을 꽤 많이 높여준다는 것을 체감하고 있었다. 그러던 중 회사에서도기존 소스를 AI 코드 도구를 활용해 정리해볼 수 있는지 테스트해보라는 요청이 있었다.그래서 테스트 삼아 복잡한 JSP 파일을 Claude에게 넘겨 리팩토링을 시켜보았다.회사 개발환경현재 회사 개발환경은 대략 다음과 같은 구조다.SVN 기반 형상관리JSP 중심의 레거시 구조여러 기능이 하나의 파일에 몰려 있는 형태Claude에게 JSP 정리를 시켜봤다이번 테스트의 목표는 단순했다.중복 코드 정리로직 분리가독성 개선현재 서비스는 처..
jQuery Ajax async:false 사용 시 렌더링이 멈추는 이유와 해결 방법 웹 개발을 하다 보면 jQuery ajax에서 async:false를 사용했을 때로딩 UI가 보이지 않거나 화면 렌더링이 멈추는 현상을 경험할 수 있습니다. 최근 예전에 만들어진 소스를 유지보수 중에도 “로딩이 보이지 않는다”는 이슈가 발생했습니다.확인해보니 로딩 이미지를 표시하는 코드가 분명히 존재했지만 실제 화면에서는 전혀 보이지 않았습니다. 코드를 확인하던 중 ajax 요청에서 async:false가 사용되고 있었고,이 때문에 브라우저 렌더링이 차단되어 로딩 UI가 표시되지 않는 문제였습니다.이번 글에서는 async:false가 왜 렌더링을 막는지, 그리고 어떻게 해결할 수 있는지 정리해보겠습니다.1. async:false란 무엇인가async:false는 동기(Synchronous) Ajax 요청입..
업로드된 데이터의 카운트(count) 성능 문제, 왜 구조를 바꾸게 되었을까? 사용자에게 업로드된 사진 수를 표시하기 위해가장 단순하고 직관적인 방식은 필요할 때마다 개수를 직접 세는 것이다. 기존 운영에서는 이 방식이 큰 문제가 되지 않았다.데이터 양도 많지 않았고, 호출 빈도 역시 낮았기 때문이다.문제는 데이터가 쌓이기 시작하면서 발생했다서비스가 운영되면서 다음과 같은 변화가 생겼다.사진 데이터가 지속적으로 누적됨업로드 및 조회 트래픽 증가동일 조건의 count 쿼리가 짧은 시간에 반복 실행됨그 결과, 단순한 count 쿼리 하나가 API 응답 속도에 영향을 주기 시작했다.특히 다음과 같은 상황에서 체감이 컸다.목록 화면 진입 시 여러 종류의 사진 개수 표시업로드 직후 전체 개수 갱신사용자/타입별 개수를 동시에 조회하는 경우기능은 단순하지만, 성능 비용은 점점 커지고 있었다.그..
다시 Selenium SessionNotCreatedException 발생으로 인한 다운로드 경로 정리(ChromeDriver 140 ~ ChromeDriver 147) Selenium으로 크롤링이나 자동화를 돌리다 보면 언젠가 반드시 마주치게 되는 오류가 있다. org.openqa.selenium.SessionNotCreatedException: This version of ChromeDriver only supports Chrome version XXX Current browser version is YYY 작년에 보았던 것을 다시 한번 보게 되었다.원인은 늘Chrome 브라우저 버전 ≠ ChromeDriver 버전내 크롬 버전 확인 방법크롬 주소창에 입력 : chrome://settings/help버전 확인 : 144.0.7559.133 (공식 빌드) Chrome for Testing 공식 페이지에는 145부터 올라가 있었기에나중에 또 다시 옛날 버전이 필요할거 같..