Baker Health

원격의료 앱 · iOS, Android, 웹 · 뉴욕과 뉴저지

Baker Health는 뉴욕에 기반을 둔 의료 서비스 회사로, 뉴욕과 뉴저지에서 1차 진료와 소아과 진료를 합니다. Speer에서 이 회사 앱을 개발자로 만들다가 리드를 맡았고, React Native 전환을 이끌며 새 프로젝트를 처음부터 직접 구성했습니다.

역할
개발자로 시작해 리드를 맡음
기간
2021–2026
플랫폼
iOS, Android, 웹
기술 스택
React Native · TypeScript · Node.js · NestJS · PostgreSQL · Stream Chat · AWS · Loki
게시일
수정일
bakerhealth.com 홈페이지bakerhealth.com에 나온 Baker Health 앱 채팅 화면. 회원이 보낸 메시지가 보입니다.
Baker Health의 공식 웹사이트 bakerhealth.com입니다.

배경

앱의 아키텍처와 기술적 의사결정, API와 DB 설계, 릴리스를 책임졌습니다. 리드를 맡으면서도 직접 코드를 짰고, 팀의 PR을 리뷰하며 주니어 개발자가 막힌 부분을 도왔습니다.

실시간 채팅은 이 앱의 핵심 기능 중 하나입니다. 환자 데이터를 다루는 앱이라, 설계를 논의할 때면 거의 매번 HIPAA를 짚고 넘어갔습니다.

제약 조건

채팅은 외부 서비스인 Stream Chat을 쓰고 있어서, 레이트 리밋은 어떤 요금제를 쓰느냐에 따라 정해집니다. 저는 쓰던 요금제를 그대로 유지하고 싶었습니다.

문제

채팅 메시지가 가끔씩 사라졌습니다.

원인을 찾는 데 한참 걸렸습니다. Stream Chat이 저희 API 호출에 레이트 리밋을 걸고 있었습니다.

바꾼 점

엔터프라이즈 요금제로 올리면 해결되는 문제였습니다. 하지만 버그 하나 때문에 그 비용을 내고 싶지는 않아서, 팀과 함께 API 호출 수를 줄여 한도 안으로 들어오게 했습니다.

Loki도 도입해서, 비슷한 문제가 생기면 로그에서 먼저 보이게 했습니다.

API 호출 수업체 레이트 리밋변경 전변경 후
  • 한도 이내
  • 한도 초과, 메시지 유실
다이어그램Stream Chat의 레이트 리밋과 API 호출 수를 변경 전후로 비교한 그래프입니다.

결과

요금제를 바꾸지 않고 해결했습니다.

그 뒤로 사라진 메시지는 없었습니다.