본문 바로가기

Programmer

(33)
CCTV RTSP 연동 삽질기, MJPEG 부터 go2rtc 적용 처음 맡아본 CCTV RTSP 연동오늘은 처음으로 CCTV 영상을 웹에서 실시간으로 연동하는 작업을 맡게 됐다.단순히 영상을 화면에 띄우는 것에서 끝나는 게 아니라,연동한 영상에서 일정 시간마다 캡처 이미지를 추출하는 기능까지 필요했다. 최근에는 모바일 소스 수정에 이어 RTSP 연동까지, 익숙하지 않은 영역의 작업을 계속 맡고 있다.새로운 걸 배우는 건 의미 있는 일이지만, 한편으로는 점점 내가 감당해야 할 일이 늘어나는 느낌도 든다. 모바일 쪽은 예전에 아파치 코르도바(Apache Cordova)를 다뤄본 적이 있어서 그나마 덜 낯설었다.하지만 RTSP 연동은 이번이 처음이라, 어디서부터 손대야 할지 막막했다. 회사에서는 클로드와 RTSP만 있으면 금방 데모가 나올 수 있다고 생각하고 있었다.겉으로 ..
모바일 담당자 없는 프로젝트에서 GPT로 FFmpegKit 크래시 해결하기 회사에서 프로젝트를 유지보수하다 보면 가장 막막한 순간이 있다.코드가 어려운 것보다 더 큰 문제는, 이걸 만들었던 사람도 없고, 유지보수하던 사람도 없고, 물어볼 사람도 없다는 점이다. 더구나 나는 평소 Java/Javascript 기반으로 개발을 주로 해왔기 때문에, 모바일 앱 유지보수는 익숙한 영역이 아니었다.이번에 맡게 된 프로젝트는 카메라 촬영, 동영상 녹화, 업로드, 후처리까지 붙어 있는 안드로이드 앱이었는데,모바일 쪽을 알던 사람들은 이미 모두 빠져 있었고, 남은 건 소스와 로그뿐이었다. 결국 이번 유지보수는 Logcat을 보며 흐름을 추적하고,GPT를 같이 활용해서 소스 구조와 오류 원인을 하나씩 좁혀가는 방식으로 진행할 수밖에 없었다. 그 과정에서 가장 크게 막혔던 문제 중 하나가 바로 F..
유지보수 힘든 JSP를 Claude Code로 구조화해본 기록 드디어 틈새 시간이 조금 생겨서,Claude Code를 활용해 유지보수가 너무 힘들었던 기존 JSP를 정리하는 테스트를 해봤다. 이번에 손댄 화면은 특정 타입에 따라 표시되는 내용이 달라지는 구조였는데,기존에는 타입마다 소스가 덕지덕지 붙어 있는 상태였다. 여러 사람의 손을 거쳐 수정되다 보니, 타입 하나만 추가하려고 해도 어디를 건드려야 할지부터 막막한 수준이었다.말 그대로 소스만 봐도 머리가 아파오는 구조였다.왜 이 화면이 특히 힘들었나이 페이지가 더 골치 아팠던 이유는 단순히 조건문이 많아서가 아니었다. $().load() 방식으로 다른 페이지를 불러오고 있어서실제로는 JSP가 2개가 얽혀 있었고, 변수 선언도 여기저기 흩어져 있었다. 중복 소스는 기본이고, 왜 존재하는지조차 알기 어려운 코드도 적..
jQuery UI Sortable 사용 시 checkbox 클릭이 안 되는 원인과 해결 방법 유지보수 중이던 화면은 항목 순서를 sortable로 변경할 수 있고,각 항목마다 checkbox 옵션도 함께 있는 구조였습니다. 이 화면은 웹과 앱에서 함께 사용하고 있었는데,웹 브라우저에서는 별다른 문제가 없었지만 앱에서는 checkbox가 정상적으로 클릭되지 않는 문제가 발생했습니다. 항목 순서를 변경하는 기능 자체는 정상적으로 동작했지만,같은 영역 안에 있는 체크박스만 유독 클릭이 불안정했던 것입니다. 처음에는 단순한 체크박스 이벤트 문제처럼 보였습니다.하지만 원인을 확인해보니, 실제 문제는 jQuery UI Sortable이 드래그 시작을 감지하는 방식에 있었습니다. 이번 글에서는 이 문제가 왜 발생했는지, 그리고 가장 깔끔하게 해결한 방법이 무엇이었는지 예제와 함께 정리해보겠습니다.문제 상황유..