로컬 환경에서 전체 기능 점검
기능 구현이 대부분 완료된 이후, 바로 배포 환경만 확인하기보다는 먼저 각자 로컬 환경에서 전체 기능을 직접 사용하면서 문제를 찾아보는 시간을 가졌다.
개발 과정에서는 각자 맡은 기능을 중심으로 테스트했기 때문에, 서비스 전체를 처음부터 끝까지 사용해보면서 다른 기능과 연결했을 때 발생하는 문제를 확인할 필요가 있었다.
팀원들이 각자 회원가입부터 온보딩, 게임 기록, 리뷰, 프로필, Friends 등 전체 기능을 직접 사용해보면서 여러 UI 및 기능상의 개선점을 발견했다.
발견한 문제와 개선 사항
회원가입
이메일 중복 확인 과정에서 이메일 형식이 아닌 값도 확인할 수 있는 문제가 있었다. 이메일 형식에 대한 검증을 추가할 필요가 있었다.
또한 잘못된 이메일 형식을 입력했을 때 Email must be a well-formed email address와 같은 영어 메시지가 그대로 노출되는 문제도 발견했다. 사용자가 이해하기 쉬운 한글 안내 메시지로 변경할 필요가 있었다.
게임 기록
마지막 플레이 날짜에 오늘 이후의 미래 날짜도 입력할 수 있는 문제를 발견했다. 실제 플레이 기록 데이터의 특성을 고려해 미래 날짜가 저장되지 않도록 검증할 필요가 있었다.
게임 상세 및 리뷰 신고
리뷰의 스포일러 여부에 따라 신고 버튼의 위치가 달라지는 UI 문제를 발견했다.
또한 하나의 리뷰에 여러 신고가 들어왔을 때 각각 별개의 신고처럼 처리되는 문제도 확인했다. 하나의 리뷰에 대한 신고를 하나의 대상으로 관리할 수 있도록 신고 데이터 처리 방식을 다시 검토할 필요가 있었다.
Reviews 탭
비로그인 상태에서 Reviews 탭을 조회했을 때 다른 사용자의 정보가 제대로 표시되지 않는 문제를 발견했다.
Friends 탭
다른 사용자의 프로필에서 팔로우/언팔로우 기능이 없다는 것, Follow 버튼을 눌렀을 때 팔로우했습니다 메시지가 표시되는 위치가 적절하지 않는 점을 확인했다.
프로필 탭
프로필에서는 데이터 처리와 UI 양쪽에서 여러 문제를 발견했다.
- COMPLETED 상태만 완료로 인식하고 있어 끝냄 상태도 완료에 포함할지 검토
- 산점도는 플레이 시간과 평점이 모두 있어야 표시되므로 사용자에게 해당 조건을 안내할 필요
- 게임 이름이 긴 경우 영역 밖으로 벗어나는 문제
- playStatus 없이 플레이 시간만 기록된 게임은 게임 취향 분석에 반영되지 않는 문제
- 평점을 3개 이상 기록해도 평점 성향이 표시되지 않는 문제 확인
이를 통해 단순히 기능이 정상적으로 동작하는지만 보는 것이 아니라, 실제 데이터가 쌓였을 때 분석 결과가 의도대로 나오는지도 확인해야 한다는 점을 알게 되었다.
배포 환경에서 추가로 발견한 문제
로컬 환경에서 1차적으로 기능을 점검한 이후, 다시 배포 환경을 연결해서 팀원들과 함께 실제 서비스에서도 동일한 기능을 확인했다.
이 과정에서 로컬에서는 정상적으로 동작하지만 배포 환경에서는 다르게 동작하는 문제를 발견했다.
현재 GameLog에서는 이미지 업로드에 Cloudinary를 사용하고 있는데, 로컬 환경에서는 이미지 업로드가 정상적으로 동작했지만 배포된 사이트에서는 이미지 업로드가 되지 않았다.
먼저 Railway에 필요한 전역 변수가 제대로 설정되어 있는지 확인했고, 환경 변수 자체는 정상적으로 등록되어 있는 것을 확인했다.
하지만 환경 변수가 존재하는 것과 실제 애플리케이션에서 정상적으로 사용되는 것은 별개의 문제이기 때문에, 현재는 정확한 원인을 추가로 확인하고 있다.
아직 해당 문제는 해결하지 못했으며, 로그 작성을 통해 배포 환경에서만 발생하는 문제를 로컬 환경과 비교하면서 원인을 찾아가는 과정을 이어갈 예정이다.
배포 후 성능 및 모니터링 고민
배포 환경을 확인하면서 앞으로 서비스의 성능을 어떻게 측정하고 모니터링할지도 고민했다.
JMeter, nGrinder, Grafana, Pinpoint, Sentry, Firebase 등의 역할을 비교해본 결과, 현재 프로젝트에서는 부하 테스트에는 k6를 사용하고 애플리케이션 오류 모니터링에는 기존 Sentry를 활용하는 방향으로 정리했다.
특히 k6는 테스트를 코드로 관리할 수 있고 Git이나 CI와 연계하기 쉽다는 점을 고려했다. 이후 Grafana와 함께 사용해 부하 테스트 결과를 시각화하는 것도 고려하고 있다.
마무리
오늘은 기능을 새롭게 추가하기보다는 완성된 기능을 실제 사용자의 흐름에 맞춰 점검하고, 로컬과 배포 환경의 차이까지 확인하는 단계에 가까웠다.
특히 로컬 환경에서는 발견되지 않았던 Cloudinary 이미지 업로드 문제가 배포 환경에서 발생하면서, “로컬에서 잘 동작한다”는 것만으로 실제 서비스에서도 정상적으로 동작한다고 판단해서는 안 된다는 것을 다시 느꼈다.
아직 이미지 업로드 문제의 원인은 해결하지 못했지만, Railway의 환경 변수 설정부터 확인하면서 원인을 좁혀가고 있다. 아직 로그가 없어서 확인이 불가능한데, 앞으로는 단순히 기능을 구현하는 것뿐만 아니라 로그를 작성하는 습관을 가져야겠다고 느꼈다.
'회고 > GameLog 프로젝트' 카테고리의 다른 글
| 2차 프로젝트: GameLog - 프로필 기능 개선 (0) | 2026.09.23 |
|---|---|
| 2차 프로젝트: GameLog - 프로필 탭 API 구현 (0) | 2026.09.21 |
| 2차 프로젝트: GameLog - RailWay 배포 과정에서의 문제와 해결 (0) | 2026.09.18 |
| 2차 프로젝트: GameLog 3일차 - 403 오류 (0) | 2026.09.16 |
| 2차 프로젝트: GameLog 2일차 (0) | 2026.09.15 |
댓글