안녕하세요, RX SOFT에서 PM을 맡고 있는 이승민입니다. 벌써 이 바닥에서 잔뼈 굵은 지 12년이 훌쩍 넘었네요. 그동안 수많은 프로젝트의 시작과 끝을 함께했지만, 유독 기억에 남는, 아니 솔직히 말하면 밤샘의 미학을 제대로 보여준 프로젝트가 하나 있습니다. 바로 오픈헬스케어의 "KZ Self-Test" 앱인데요. 오늘은 그 이야기, 커피 한 잔 놓고 편하게 풀어볼까 합니다.
아마 저처럼 현장에서 뛰시는 분들은 다 아실 거예요. 프로젝트라는 게 마냥 정교하게 짜인 스케줄대로만 흘러가지는 않는다는 걸요. 예측 불가능한 변수, 고객사의 '반짝이는' 아이디어, 개발팀의 '멘붕' 유발 기술 난관까지. 이 모든 걸 뚫고 하나의 결과물을 만들어내는 과정은, 흡사 정글 탐험과도 같습니다. 이번 KZ Self-Test는 그 정글 한복판에 최고급 리조트를 지어 올린 것 같은 기분이었죠.
이 프로젝트는 저희 RX SOFT에 '오픈헬스케어'라는 이름으로 처음 문을 두드리면서 시작됐습니다. "개인의 건강을 스스로 관리하고, 간편하게 테스트 키트를 활용해 결과를 받아보는 스마트한 헬스케어 솔루션"이라는 큰 그림을 가지고 오셨죠. 처음 미팅 때 고객사 담당자분들의 눈에서 광채가 났던 걸 잊을 수 없습니다. 저희 기획팀 박범수 팀장님도 그 열기에 금세 동화되어 "이거 제대로 한번 만들어봅시다!"라며 무릎을 탁 치더라고요.

하지만 '스마트'하고 '간편'하다는 두 단어 뒤에는 언제나 개발팀의 피와 땀이 숨어있습니다. 기획 초기부터 박범수 팀장님과 저는 고객사의 니즈를 뼛속까지 파고들기 위해 수없이 회의 테이블에 앉았습니다. "키트 등록은 어떻게? 수거 신청은 어떤 방식으로? 결과는 누가, 어떻게 보여줄 것인가?" 이 질문들에 대한 답을 찾아가는 과정은 마치 미로 찾기와 같았죠. 특히 '개인의 건강 정보'라는 민감한 데이터를 다루는 만큼, 보안과 신뢰성에 대한 고민은 단 한 순간도 놓칠 수 없었습니다. 저희 RX SOFT가 100명에 달하는 베테랑 전문가 집단을 보유하고 있고, 그만큼 다양한 헬스케어 프로젝트 경험이 풍부하다는 점이 이때 빛을 발했습니다. 단순히 요구사항을 받아 적는 게 아니라, 고객이 미처 생각지 못한 부분까지 짚어내고, 더 나은 방향을 제시하는 '컴퍼니빌더' 마인드로 접근했죠.
기획이 어느 정도 윤곽을 잡아가자, 이제는 사용자 경험과 시각적인 아름다움을 책임질 UI/UX본부 임정민 본부장님과 디자인팀 조수현 팀장님 차례였습니다. 오픈헬스케어라는 이름에 걸맞게 밝고 직관적이면서도, 헬스케어 앱으로서의 전문성과 신뢰감을 놓치지 않아야 했어요.
이때 첫 번째 에피소드가 터졌습니다.
저희 디자인팀은 앱의 핵심 기능인 '키트 등록' 과정을 최대한 심플하게 만들고자 했습니다. 키트에 인쇄된 QR 코드를 스캔하거나, 고유 식별 번호를 입력하는 두 가지 방식으로 등록하고, 바로 수거를 요청할 수 있도록요. 그런데 고객사 측에서 "등록 과정에서 사용자에게 키트의 종류, 제조사, 유효기간 등 상세 정보를 일일이 확인하고 입력하게 해야 한다"는 의견을 주신 겁니다. 사용자 스스로 점검하는 셀프 테스트의 의미를 강화하고, 혹시 모를 오등록을 방지한다는 취지였죠.
조수현 팀장님 얼굴이 순간 굳는 게 보였습니다. "본부장님, 이건 사용자 경험 측면에서 치명적입니다. 셀프 테스트 앱의 핵심 가치는 '간편함'인데, 매번 이렇게 많은 정보를 직접 입력하게 하면 진입 장벽이 너무 높아져요. 고객 이탈이 불 보듯 뻔합니다." 임정민 본부장님도 고개를 끄덕였습니다.
저희는 곧장 고객사와의 회의를 요청했고, 이때부터 기획팀과 디자인팀의 '설득 작전'이 시작됐습니다. 단순히 "불편하다"고 말하는 대신, 저희는 미리 준비해 간 워크플로우 시뮬레이션과 경쟁사 앱 분석 자료를 제시했습니다. 키트 번호만으로 필요한 모든 정보가 자동으로 불러와지고, 사용자는 단지 '확인' 버튼만 누르면 되는 과정을 시연했어요. 만약 그럼에도 불구하고 수동 입력이 필요하다면, '상세 정보 수정' 옵션을 따로 두어 접근성을 높이는 방안을 제안했습니다.

고객사도 처음에는 완강했지만, 저희가 제시한 '간편함 속의 안정성'이라는 타협점을 받아들였습니다. 실제로 자동화된 키트 정보 불러오기 기능은 사용자들의 만족도를 크게 높이는 핵심 요소가 되었고, 나중에 고객사에서도 "RX SOFT의 전문적인 인사이트 덕분에 좋은 결과물이 나왔다"며 극찬을 아끼지 않았습니다. 이렇게 고객의 '무리한' 요구를 그저 수용하는 것이 아니라, 더 나은 해결책을 제시하며 함께 성장하는 것이 저희 RX SOFT의 강점이죠.
디자인이 어느 정도 정리되자, 이제 개발본부 장원찬 본부장님의 지휘 아래 프론트팀 류현광 팀장님, 백엔드팀 박재현 팀장님이 전면에 나설 차례였습니다. Next.JS와 React를 중심으로 앱과 관리자 페이지를 구축하고, 안정적인 서버 환경을 마련하는 대장정이었죠.

저희는 최신 기술 스택을 과감하게 도입하는 것을 주저하지 않습니다. Next.JS와 React는 빠르고 효율적인 개발을 가능하게 할 뿐만 아니라, 사용자들에게 끊김 없는 부드러운 경험을 제공하는 데 최적화된 기술입니다. 하지만 최신 기술에는 언제나 새로운 도전이 따르기 마련이죠.
두 번째 에피소드는 바로 이 개발 과정에서 발생했습니다.
KZ Self-Test 앱의 핵심 기능 중 하나는 사용자가 등록한 키트의 '상태'를 실시간으로 보여주는 것이었습니다. "등록", "수거 대기", "수거 중", "검사 진행 중", "결과 확인 가능" 등 다양한 상태 변화를 매끄럽게 반영해야 했죠. 그런데 문제가 생겼습니다. 오픈헬스케어 측에서 사용하는 외부 검사기관의 시스템이 저희 예상보다 훨씬 더 레거시(legacy)하고, API 연동 방식도 매우 비표준적인 데다가, 실시간 데이터 업데이트가 매끄럽지 않았던 겁니다.
처음에는 박재현 팀장님이 이끄는 백엔드팀이 이 난관에 부딪혀 적잖이 고생했습니다. "본부장님, 이쪽 시스템은 마치 90년대 유물 같아요. 데이터 구조도 복잡하고, 오류 핸들링도 미흡해서 연동 자체가 너무 불안정합니다. 자칫하면 사용자에게 엉뚱한 키트 상태를 보여줄 수도 있어요." 박 팀장님의 얼굴에 깊은 그림자가 드리워져 있었습니다.
이 문제는 단순한 개발 버그가 아니라, 시스템 간의 철학적(?) 충돌에 가까웠습니다. 최신 기술로 무장한 저희 시스템과, 오래된 레거시 시스템 간의 간극을 메우는 일이었으니까요. 저희 개발본부는 즉시 태스크포스팀을 꾸렸습니다. 박재현 팀장님과 류현광 팀장님은 물론, 장원찬 본부장님까지 직접 팔을 걷어붙이고 나섰습니다. 밤낮없이 외부 시스템의 연동 프로토콜을 분석하고, 데이터 전송 방식의 허점을 보완할 수 있는 최적의 방법을 찾아 헤맸죠.

단순히 API를 호출하는 것을 넘어, 백엔드에서는 일종의 '미들웨어' 역할을 하는 별도의 모듈을 구축해야 했습니다. 외부 시스템에서 넘어오는 불완전한 데이터를 정제하고, 표준화된 형식으로 변환하여 저희 앱에 안정적으로 제공하는 브릿지 역할을 하는 모듈이었죠. 프론트팀에서는 이 데이터 흐름이 혹시라도 끊기거나 지연될 때 사용자에게 어떤 메시지를 보여줄지, UI/UX적으로 어떻게 처리할지에 대한 방안까지 함께 고민했습니다. 이 과정에서 저희 RX SOFT 개발팀이 가진 '문제 해결 능력'과 '협업 시너지'가 다시 한번 빛을 발했습니다. 서로의 영역을 넘어 유기적으로 소통하며, 불가능해 보였던 문제를 기어이 해결해 냈습니다.

개발이 진행되는 동안에도 고객사의 요청은 끊이지 않았습니다. "이 버튼 색깔을 조금 더 따뜻하게 바꿔줄 수 있을까요?", "이 문구를 좀 더 친근하게 수정하고 싶습니다.", "새로운 이벤트 배너를 추가하고 싶어요!" 작은 수정부터 기능 추가 요청까지, PM으로서 저의 가장 중요한 임무는 이 모든 요청을 개발팀의 부담을 최소화하면서도 고객사의 만족도를 높이는 방향으로 조율하는 것이었습니다. RX SOFT는 잦은 수정 요청과 변동 사항에도 유연하게 대처할 수 있는 애자일(Agile) 개발 방식을 지향합니다. 이승민 본부장인 제가 언제나 고객과 개발팀 사이의 든든한 가교 역할을 하면서, 프로젝트가 산으로 가지 않도록 중심을 잡았죠.

개발이 막바지에 이르자, QA팀 안미려 팀장님의 눈은 그 어느 때보다 날카로워졌습니다. 헬스케어 앱은 오작동 하나가 치명적인 결과를 낳을 수 있기에, QA는 그야말로 '살벌'하게 진행됩니다. 안미려 팀장님은 앱의 모든 기능을 시나리오별로 꼼꼼히 테스트하고, 상상 가능한 모든 엣지 케이스를 찾아내 버그 리포트를 쏟아냈습니다. "키트 등록 버튼을 0.5초 안에 두 번 눌렀을 때 오류가 발생합니다!", "특정 환경에서 수거 대기 상태가 '수거 중'으로 넘어가지 않는 경우가 있어요!" 개발팀은 QA팀의 끈질긴 보고서 덕분에 놓칠 뻔한 수많은 버그를 잡아낼 수 있었고, 앱의 완성도를 한층 더 끌어올릴 수 있었습니다.
그리고 마침내! 모든 테스트를 통과하고, 오픈헬스케어 KZ Self-Test 앱이 세상에 나왔습니다.

출시 후 사용자들의 피드백은 뜨거웠습니다. "이렇게 간편하게 셀프 테스트를 관리할 수 있다니 놀랍다", "결과 확인도 빨라서 너무 좋다" 등 긍정적인 반응이 쏟아져 나왔고, 고객사에서도 저희에게 감사의 메시지를 전해왔을 때, RX SOFT 팀원들의 얼굴에는 뿌듯함과 보람이 가득했습니다. 저도 이승민 본부장으로서 지난 몇 달간의 고생이 주마등처럼 스쳐 지나가더라고요. 커피 한 잔이 아니라, 시원한 맥주 한 잔이 간절해지는 순간이었습니다. (웃음)
오픈헬스케어 KZ Self-Test 프로젝트는 저희 RX SOFT에게 또 하나의 값진 경험을 선사했습니다. 고객의 비전을 현실로 만들고, 그 과정에서 수많은 난관을 극복하며, 궁극적으로 사용자에게 가치를 제공하는 것. 이것이 바로 저희가 끊임없이 노력하는 이유입니다. 100명이 넘는 베테랑 전문가들이 각자의 위치에서 최고의 역량을 발휘하고, 서로 유기적으로 협력하며 만들어내는 시너지는 RX SOFT의 가장 큰 자산입니다. 저희는 단순한 개발 파트너가 아니라, 고객의 비즈니스 성공을 함께 만들어가는 '컴퍼니빌더'의 마인드로 언제나 여러분 곁에 서 있습니다.
만약 여러분의 아이디어를 현실로 만들고 싶다면, 혹은 복잡한 프로젝트를 성공적으로 이끌어갈 든든한 파트너를 찾고 있다면, 주저하지 말고 RX SOFT의 문을 두드려 주세요. 저희의 포트폴리오를 확인하고 싶으시거나 문의사항이 있다면 언제든지 https://rxsoft.co.kr/ 로 방문해 주시면 됩니다. 다음에는 또 어떤 흥미진진한 프로젝트 이야기로 돌아올지 기대해주세요!