병원 약 8만 곳의 정보를 제공하는 모바일 CRM과 관리자 웹. 제약사 영업사원(MR)이 방문할 병원을 고르고 매출·개원예정 정보를 확인하는 서비스입니다.
인력 구성 개발 1명(본인) · PM 1명 · 디자인 1명 · 기술 구현 전 영역 단독 담당
핵심 기여
- 인수한 레거시 서버를 4계층으로 재설계. 파일 4개에 섞인 라우팅·로직·SQL을 분리했습니다. 약 8만 병원의 정보를 제공하는 CRM에서 비동기 처리 병목을 교정해 API 최대 6분 → 개선 후 0.2초로 단축했습니다.
- 병원 대량 조회를 30초에서 0.1초로 단축. 행마다 반복되는 상관 서브쿼리를 CTE로 축약하고 복합 인덱스를 추가했습니다. 실행 계획으로 반복 조회 제거를 확인했습니다.
- 약 8만 병원의 지역별 매출 비교 조회를 92초 → 0.3초로 단축. 병원 상세의 매출 백분위 계산을 반복 조인에서 4단계 처리로 분리하고 API와 화면에 반영했습니다.
- 행정구역 개편으로 누락된 병원 약 1,900건 복구. 지역 코드 연결 단절을 확인하고 행정구역 폴리곤 703개의 신구 코드 매핑과 변환 파이프라인을 수정했습니다. 개편 대응 절차를 운영 문서로 남겼습니다.
- 건강보험심사평가원(심평원)의 병원 공공데이터 이상으로 발생한 알림 1,000건 폭주를 병원별 중복 방지와 임계치 기반 프로시저로 차단했습니다.
- 다중 워커의 캐시 불일치를 파일 수정시각을 버전 신호로 사용해 해결했습니다. Mixpanel 이벤트 24종을 정의해 사용자 행동을 수집했습니다.
- WAF 탐지로그 5,045건 분석 → 공격/오탐 분류 + 차단정책 권고, iOS Universal Link 미동작 원인(Apple CDN) 규명.
- Flutter 앱 A-to-Z 개발·배포·운영 — GetX 상태관리, 딥링크/웹뷰/한글 조합 입력 버그, Crashlytics 관제, MDM 정책 배포.