Cursor AI

Cursor AI 개발 기록 4 - 서버 부하를 해소 해보자(2)

lazyboy-develop 2025. 5. 13. 11:49

지난 글에 이어 socket.io 룸 분할 오류를 해결 해보자.

 

먼저 발생했던 Room 문제를 언급하고 나머지 문제점은 일일이 설명하기 귀찮으니 알아서 찾아보라고 해보자.

 

방 관리 코드에 몇 가지 문제점이 있다고 한다.

새 방으로 이동하지 않는 문제와 그 외 추가 개선사항을 알려준다.

 

1. 21번째 사용자부터는 자동으로 새로운 방으로 이동합니다.

2. 방마다 독립적인 캔버스와 채팅을 사용합니다.

3. 로그 메시지를 통해 방 할당 상황을 명확히 볼 수 있습니다.

4. 방에 사용자가 없을 경우 자동으로 방 리소스를 정리합니다.

 

4번 사항 같은 경우는 내가 생각해보지 못했던 기능인데 아주 좋은 것 같다.

이제 잘 돌아가겠지? 테스트를 진행해보자.

 

테스트를 진행해 봤는데 여전히 첫번째 접속자와 두번째 접속자가 같은 방을 배정받지 않는다.

 

다시 코드를 확인해보라고 시켜보자.

 

코드 끝부분에 오류가 있었다고 한다.

이 녀석 갑자기 신뢰감이 확 떨어진다.

 

그래도 고쳐 줬다고 하니 테스트를 진행해보자!

 

하지만 똑같은 문제가 발생한다.

방이 계속 갈린다.

 

내가 직접 코드를 고쳐볼까 잠깐 생각해봤지만 아무래도 나보다 얘가 더 빨리 고쳐줄 것 같다.

 

본 교관은 AI와 타협하지 않는다.

오류는 고쳐질 때 까지 수정을 무한 반복한다.

 

다시 명확하게 문제점을 짚어주자!

 

 

방 할당 조직을 더욱 철저하게 디버깅 해보겠다고 한다.

 

수정된 코드를 확인해 보니 이제 콘솔창에 Room 키를 찍어준다.

 

테스트 하기 쉽게 방 최대인원도 3명으로 줄였다.

 

테스트를 진행해보자!

 

 

오오! 테스트해보니 내가 원했던 대로 같은 방을 공유하고 3번째 인원부터 분리가 되기 시작한다!

 

하지만 다른 부분에서 문제가 발생했다.

접속 중인 사용자 List 부분이 정상적으로 갱신이 되지않는다.

지금 이 방에는 2명이 접속해 있지만 다른 사용자가 뜨지않는다..

 

고쳐 달라고 요청해보자.

 

내용을 읽어보면 사용자 입장/퇴장/이름 변경 시 모든 클라이언트의 사용자 목록을 자동 업데이트 하게 변경했다고 한다.

 

서버 측에서 Room 분할 기능을 추가하면서 리스트 업데이트 부분과 연동이 안됐던것 같다.

 

이제 진짜 잘 작동 하는지 테스트를 진행해보자

 

테스트를 해보니 리스트에 사용자가 잘 뜨나 싶었는데 첫번째 방 사용자 리스트에 두번째 방 사용자까지 떠버렸다.

룸 별로 사용자 목록이 표시되도록 수정을 요구하자.

 

 

서버 측 코드는 정상적으로 작동하고 있었지만 클라이언트 측에서 이정 보를 받아서 처리하는 코드가 없었다고 한다.

뭐 하자는 거지 ㅋㅋ 생각보다 손이 많이 간다.

한번에 좀 고쳐주면 안되겠니?ㅠㅠ

 

이제 진짜_최종_최종 수정이 완료된 것 같다.

게다가 방 이름이 표시되는 UI까지 추가해줬다고 한다.

테스트를 진행해보자!!

 

이제 방 별로 접속 중인 사용자가 잘 뜬다!

방 이름도 보여줘서 좋은 것 같다.

내가 요구하지 않았던 유용한 기능까지 알아서 추가해주니 아주 만족스럽다.

 

그런데 아이디 변경을 했더니 리스트에서 갱신이 되지않는다.

원래 작동했던 기능인데..

수정을 요청하자!

 

 

사용자 이름 변경 이벤트 핸들러를 생성해서 추가했다고 한다.

이번에도 역시 서버측 에는 문제없었는데 클라이언트 측에서 이 이벤트를 제대로 처리하지 않았다고 한다.

 

뭐.. 고쳤다고 하니 테스트를 진행해보자!

 

 

아이디를 변경에 성공했다!

 

오늘 Cursor AI를 활용해 내가 만든 서비스 드로우 투게더의 적절한 서버 구동 사양을 물어보고 예상되는 서버 부하를 줄이기 위해 자동 Room 생성 기능을 구현해 보았다.

 

글을 마무리 하면서 오늘 Cursor AI를 사용하면서 느꼈던 아쉬웠던 점을 얘기해보고자 한다.

그 중 하나는 내가 추가 기능 구현을 요구했을 때 단편적으로 딱 요구한 기능을 구현해주는 데서 그친다는 것이다.

 

내가 기능 추가를 요구한 부분과 연동되어 코드 변경이 필요한 부분은 알아서 자동으로 수정해주지 않기 때문에 직접 테스트를 진행하고 문제점을 발견해서 수정요청을 해야한다.

 

특히 프로젝트가 커지고 복잡해 질수록 수정해야할 부분이 많이 발생할 것이라고 생각한다.

또한 내가 쉽게 요청하고 Cursor AI를 통해 쉽게 만들어진 코드라서 모든 변경사항을 읽어보려 하지 않고 쉽게 accept를 눌러버린다.

 

Cursor AI가 짜준 코드를 내가 이해 하고 있지 않으면 내가 아까 그랬던 것처럼 반복해서 오류 수정을 요청해야 하기 때문에 하나의 오류를 고치는데도 많은 시간이 소요될 것 이다.

 

이런 부분에서 내가 사용했던 Claude-3.7의 성능이 아직 조금 아쉬운 것 같다.

하지만 나는 이정도만 해줘도 개발 어시스트 툴로써 아주 훌륭한 수준이며 많은 유저들이 돈을 내고 사용할 것 같다.

그리고 지금 정도의 개발 AI 어시스트의 성장 속도면 1년 안에 해결되는 문제이지 않을까?

 

 

마지막으로 현재까지 개발된 드로우 투게더 화면을 올리며 글을 마친다.