Firebase와 Cloud Firestore로 실시간 메신저 서비스 이전 Part 3

메신저 서비스 연동 및 데이터 마이그레이션

Bubble(김동현)
번개장터 기술 블로그
3 min readSep 8, 2022

--

신규 메신저 서비스의 개발이 완료됐지만, 당시 구버전 앱뿐만 아니라 여러 서비스와 컴포넌트에서 기존 메신저 서비스를 사용하고 있었기 때문에 기존 메신저 서비스와 신규 메신저 서비스를 동시에 지원하면서 점진적으로 신규 메신저 서비스를 적용하는 기간이 필요했습니다.

이때 두 메신저 서비스에서 사용자들에게 서로 동일한 대화 내역을 표시하고 있어야 했으며, 이를 위해서는 두 메신저 서비스에서 서로 동일한 데이터를 저장하고 있어야 했는데요.

이번 포스트에서는 두 메신저 서비스에서 동일한 데이터를 저장 및 조회하기 위해 서로의 비즈니스 로직을 연동하고 기존 메신저 서비스에 저장되어 있는 데이터를 신규 메신저 서비스로 마이그레이션하는 과정을 정리해보겠습니다.

메신저 서비스 API 연동

우선 기존 메신저 서비스와 신규 메신저 서비스의 API에서 클라이언트의 요청을 처리한 다음, Response를 전달하는 시점에 다른 메신저 서비스에서 같은 역할의 비즈니스 로직이 구현된 API를 호출하여 두 메신저 서비스에 적용되는 비즈니스 로직과 데이터의 변경 사항을 연동하는 작업을 진행했습니다.

이때 중복된 API 호출을 방지하기 위해 사진과 같이 메신저 서비스 API 호출 시 넘어오는 ‘s’라는 파라미터의 값으로 (기존 메신저 서비스 API는 ‘v1’, 신규 메신저 서비스 API는 ‘v2’를 파라미터에 넘겨주고 있습니다.)

메신저 서비스 API의 호출 경로를 조회하고 이미 다른 메신저 서비스 API가 호출되었다면 Response 전달 이후 다른 메신저 서비스의 API를 호출하지 않고 비즈니스 로직을 종료했습니다.

메신저 서비스 데이터 마이그레이션

마지막으로 별도의 데이터 마이그레이션 스크립트를 구현해서 메신저 서비스 API를 연동하기 전에 변경 및 생성된 기존 메신저 서비스의 데이터를 JSON 파일로 Export하고, Export한 JSON 파일의 데이터를 신규 메신저 서비스로 Import하는 작업을 진행했습니다.

이후 메신저 기존 메신저 서비스와 신규 메신저 서비스의 사용자들에게 동일한 대화 내역을 표시하고 있는지 두 메신저 서비스에 저장된 데이터를 비교 및 검증하는 작업을 진행했으며, 비교 및 검증 작업이 완료되면 기존 메신저 서비스의 데이터를 Export 한 JSON 파일을 삭제했습니다.

--

--