본문으로 건너뛰기

메드고

개발팀 Backend Engineer

2022.04 — 2023.05

누적 30만 다운로드 비대면 진료 및 약배달 플랫폼 스타트업

주요 성과

  • Express.js 단일 파일(app.js) 10,000줄 레거시 유지보수 한계 — 3단계 점진적 전환(단일 파일→레이어드→NestJS) + JS→TS 마이그레이션, TDD 80% 달성, 주요 릴리스 구간 장애 0건 유지
  • 수동 처방전 입력 병목(약사 건당 3~5분) — Naver Clova OCR + 식약처 API 연동으로 처방전→복약지도 자동화, 약사 처리 시간 90% 단축(3~5분→30초)
  • 진료·조제·배달 상태 반영 지연(수십 초) — Socket.IO 실시간 동기화 + Web Push 알림 도입, 상태 반영 1초 미만으로 단축, 환자 대기 불만 해소

프로젝트

Auth 서버 신규 개발

2022.04 (3주)

서브도메인 간 세션 충돌 문제를 해결하기 위한 JWT 기반 통합 인증 시스템 신규 개발

  • 서브도메인 간 세션 충돌로 인한 인증 불안정 — NestJS + JWT 기반 토큰 인증 시스템 설계 및 구현, 통합 인증 시스템 구축
  • 세션 방식의 서브도메인 간 사용자 전환 불가 — 세션→토큰 방식 마이그레이션, 서브도메인 간 원활한 사용자 전환 구현

기술 선택 이유

서브도메인 간 쿠키 기반 세션 충돌을 JWT 무상태 토큰으로 구조적 해결. Redis 대신 MySQL 키 관리 — 트래픽 규모 대비 Redis는 오버엔지니어링으로 판단하여 인프라 단순화.

기여도: 3주간 단독 설계·구현. 웹(의사/약사/관리자 포털) + 모바일 앱 통합 인증 체계 전반.
NestJS TypeScript JWT MySQL

공통 모듈 개발

2022.05 ~ 2022.06

서비스별 독립 관리로 인한 코드 중복과 일관성 부족 문제를 공통 모듈 통합으로 해결

  • 서비스별 권한 검증 로직 중복 및 보안 일관성 부족 — 사용자 권한 확인 미들웨어 공통 모듈화, 보안성 강화 및 권한 검증 일원화
NestJS TypeScript

의사/약사 웹 서비스 고도화

2022.04 ~ 2023.05

의사·약사용 백오피스 시스템의 실시간 상태 반영 부재와 수동 알림 체계 문제를 Socket.io 및 Web Push 도입으로 해결

  • 중복 예약 발생 — 의사ID+시간대 복합 유니크 키 적용, 중복 예약 원천 차단
  • 진료·조제·배달 상태 반영 지연(수십 초) — Socket.IO Room 기반 실시간 상태 동기화로 이벤트 즉시 반영, 상태 반영 1초 미만으로 단축, 환자 대기 불만 해소
  • 외부 서비스(배달·결제) 장애 전파 리스크 — 배달(후다닥) 및 결제 외부 서비스 통합 API 게이트웨이 설계, Circuit Breaker 패턴 적용, 외부 서비스 장애 전파 차단

기술 선택 이유

Socket.IO Room 단위 이벤트 격리로 진료·조제·배달 상태 실시간 동기화. 외부 서비스 장애 전파 방지를 위해 API 게이트웨이 + Circuit Breaker 통합. DB 복합 유니크 키로 중복 예약을 데이터 레벨에서 차단.

기여도: BE 2인 체계에서 Socket.IO 실시간 동기화, Web Push 알림, API 게이트웨이, 진료 예약 중복 방지 전 기능 직접 구현.
Express.js NestJS TypeScript EJS MySQL Socket.io Web Push

처방전 자동 인식 및 복약지도 시스템

2022.11 ~ 2022.12

약사의 수동 처방전 입력 과정을 OCR 연동으로 자동화

  • 처방전 수동 입력 병목 — Naver Clova OCR API 연동으로 처방전 이미지에서 텍스트 자동 추출, 처방전 입력 자동화
  • 복약지도 수동 작성 비효율 — 공공데이터(식약처 API) 의약품 정보 활용한 자동 복약지도 생성, 약사 건당 처리 시간 90% 단축(3~5분→30초)

기술 선택 이유

한국어 의약품 용어 인식률을 고려하여 Naver Clova OCR 선택. 의약품 정보 DB 자체 구축 대신 식약처 공공데이터 API 활용으로 유지보수 부담 제거.

기여도: 2개월간 단독 구현. 이미지 수신 → OCR 추출 → 식약처 API 매칭 → 복약지도 생성 파이프라인 전 구간.
NestJS TypeScript Naver Clova OCR MySQL

백엔드 아키텍처 전환

2023.03 ~ 2023.05

Express.js 단일 파일(app.js) 구조에서 NestJS 모듈 아키텍처로 전환

  • Express.js 단일 파일(app.js) 10,000줄 레거시 유지보수 한계 — 3단계 점진적 전환: app.js 단일 파일 → 레이어드 아키텍처(Controller/Service/Repository) → NestJS 프레임워크 도입, 모듈 아키텍처 이관 완료
  • JavaScript 기반 코드의 타입 안정성 부족 — JavaScript → TypeScript 마이그레이션, 타입 안정성 강화
  • 테스트 부재로 인한 회귀 리스크 — TDD 도입 및 단위 테스트 작성, 테스트 커버리지 80% 달성

기술 선택 이유

Express 단일 app.js 10,000줄 레거시의 유지보수 한계 해결을 위해 NestJS DI·모듈 시스템 도입. 3단계 점진적 전환(단일 파일 → 레이어드 → NestJS)으로 리스크 최소화. TDD 도입으로 전환 중 회귀 방지.

기여도: 단독 주도. 3단계 전환 전 구간, JS→TS 마이그레이션, TDD 도입, 팀 내 코드 컨벤션 확립 모두 직접 수행.
NestJS TypeScript TypeORM Jest MySQL

기술 스택

NestJS Express.js TypeScript TypeORM EJS MySQL JWT Socket.io Web Push Naver Clova OCR Jest