brunch

You can make anything
by writing

C.S.Lewis

by 김길원 Apr 17. 2023

ChatGPT와 함께한 의료기기 검색기 MVP 개발기

진단검사 의료기기 온라인 큐레이터, d1curator

디원큐레이터' 프로젝트의 MVP(Minimum Viable Product)는 아래와 같은 상황에서 출발했다. 


임상병리 검사실 도입 컨설팅 미팅을 하면 개원 원장님들은 공통된 질문을 하신다. 


원장님: CRP(염증) 검사하려면 어떤 장비가 필요해요?

나: CRP 검사는 4가지 종류의 의료기기로 가능합니다. 생화학, 혈액학, 당화혈색소, 면역 장비로 CRP 검사가 가능한데 각 장비에 대한 장단점은 블라 블라.. 그래서 원장님 병원은 이 의료기기로 검사하시는 게 좋습니다.


한 가지 검사에도 다양한 의료기기로 검사가 가능하기 때문에 병원 상황에 알맞는 의료기기가 추천되어야 한다. 그런데 위와 같은 의료기기 추천이 자동화될 수 있을까? 원장님 스스로 어떤 장비가 필요한지 미리 알 수 있으면 어떨까?


사실 의료기기 견적서 제작도 시간이 오래 걸렸다. 검사 항목에 맞는 시약 견적을 포함한 수익성까지 도출해야 하기 때문에 경험과 전문성이 있는 사람만 적절한 의료기기를 추천하고 견적서를 뽑아낼 수 있었다. 


때문에 업계에 유통되는 장비와 시약을 데이터베이스로 한 자동 견적 플랫폼이 있으면 좋겠다는 염원이 늘 있어왔다. 영업 사원이 방문하기도 전에 원장님 혼자서도 장비 구성과 견적을 바로 받아볼 수 있다면? 

인터넷 세상에 흩뿌려진 의료기기 정보를 모으고 추천해 주는 서비스를 만들어 보고 싶었다. 


그동안 고객에게 개인화된 온라인 견적서를 제작하고자 여러 가지 툴을 시도해 봤다. 처음엔 구글 스프레드시트를 사용했다. 클라우드 베이스라는 이점이 있었으며 견적에 필요한 의보수가, 참고치 정보를 API로 가져올 수 있었다. 이전보단 빠르게 견적서를 만들 수 있었으나 내부용도였기 때문에 고객은 여전히 영업 사원을 기다렸다. 자동화를 했다고는 했지만 사용성이 좋지 않아 나 외에 다른 팀원들은 사용하지 않았다. 


다른 방법으로 노코드 툴을 활용할 방법을 알아보았다. 요즘 노코드 툴 서비스가 다양해지고 편리해진 만큼 MVP를 쉽고 빠르게 테스트해 볼 수 있는 방법이 생겨나고 있다. 데이터베이스는 Airtable을 사용하고 프런트는 Glide, Softr, 또는 Webflow를 고려했다. 그러나 고객과 상호작용하기엔 기능이 제한적이었고 결과물을 필터 해주는 기능도 약했다. 노코드 툴은 아직 내가 원하는 기능을 구현할 단계까진 발전하지 않았다. 



결국 개발자에게 외주주는 방법 밖엔 없을까? 

늦은 일요일 저녁 카페에 혼자 앉아 생각에 잠겼다. 


누구한테 물어볼 일이 생기면 일단 ChatGPT에게 물어보라고 했던가. 

설마 ChatGPT로 되겠어?라는 마음으로 GPT에게 서비스에 대한 코드를 만들어 줄 수 있을지 물어보았다. 


서비스 설명과 구조를 설명한 프롬프트 (자세한 내용은 아래 링크)




html. css. javascript를 사용해서 코드를 만들어달라고 했다. 데이터베이스는 Airtable을 사용할 것이라고 알려줬다. 데이터베이스를 Airtable로 선정한 이유는 첫 번째론 API 연동 때문이고 두 번째론 보기 쉬운 UI 때문이다. 에어테이블은 구글스프레드시트와 노션이 결합된 느낌을 주었기 때문에 나 외에도 다른 팀원들도 새로운 툴 적응에 부담이 적을 것이라고 생각했다. 



질문을 했더니 코드가 쭉 나온다. VS code에 하나씩 입력해 보고 내용을 바꿔가며 여러 가지 시도를 하고 코드를 지속적으로 수정했다. 그리고 코드를 실행해 보았더니...?


어? 이게 되네?


처음엔 물론 단번에 내가 원하는 결과물을 짜잔-! 보여주진 않았지만 가능성을 보았다. 

이후에 수많은 질문들을 하면서 웹페이지를 만들어 갔다. 


1. Airtable API를 연결하는 방법

2. Fetch() 함수에 대한 설명 

3. 코드 내용 설명 요청 


질문이 떨어짐과 동시에 ChatGPT는 거침없이 코드를 써 내려갔다. 

천재 개발자가 내 옆에 딱 붙어서 내 프로젝트를 맡아주는 기분이었다. 


아래 결과물을 보기까지 매일 2~5시간씩 ChatGPT에 사용 리밋이 걸릴 때까지 작업했다.  

d1curator

원하는 결과물을 뽑아내기까지 ChatGPT와 씨름을 계속하였다. 이 과정에서 인사이트를 얻었다. 


1. 주기적으로 이전 내용 리마인더 해주기

어느 정도 대화가 길어지면 주기적으로 코드 내용을 리마인드 해주어야 했다. ChatGPT는 대화 내용이 길어지면 처음 부분의 대화 내용을 조금씩 잊힌다. 


2. Do not answer me

주기적으로 코드 전체를 복붙 해주었는데 이때 사용한 꿀팁은 memorize ***코드와 do not answer me를 사용했다. Do not answer me를 붙이지 않으면 코드 내용을 해석하면서 토큰을 낭비한다.  


프롬프트 작성: memorize ***.js and do not answer me. (***.js는 프로젝트에 사용한 자바스크립트)

do not answer me!


3. 수정 버튼 잘 사용하기 

자주 사용하는 기능은 수정 버튼이다. ChatGPT가 질문의 의도를 다르게 이해할 경우 (또는 질문을 잘못한 경우) 잘못된 답변을 줄 때 사용한다. 질문을 수정하면서 올바른 질문과 답변을 찾아갈 수 있다. 

수정 버튼을 자주 활용하자


4. [step by step]과 -!IMPORTANT:

프롬프트에 [step by step]를 넣어주고 순차적으로 흐름을 알려준다. ChatGPT 역시 한 번에 많은 일을 시키면 혼란스러워하지만, 단계별로 생각하도록 써주면 마치 사람이 하나씩 문제를 풀어가듯 답변을 해준다. 

-!IMPORTANT: 도 넣어주면 필수적으로 고려해야 할 사항을 꼭 결과에 반영시켜 준다. 그렇기에 놓치지 않아야 하는 부분은 꼭 리마인드 해줘서 올바른 답변을 하도록 유도한다. 

step by step & important



최종적으로 만들어진 결과물은 클라우드타입이라는 백엔드 배포 서비스를 사용하여 무료로 배포를 했다. 결과물은 아래 링크에서 확인 가능하다. MVP 개발은 현재 진행형이며 미래에 누군가 이 글을 발견한다면 상당한 수준까지 도달해 있을 것이다.


https://www.d1curator.com/



ChatGPT에게 코딩을 시키면서 비개발자도 MVP 수준의 개발은 가능하다는 결론에 도달했다. 불과 4개월 전만 해도 개발은 개발자에게였고 이런 수준까지 기능을 구현할 수 있으리라고는 생각하지도 못했다. 기술의 발전이 혁신적인 수준으로 삶을 바꿔놓고 있다.


최근에 ChatGPT를 활용한 다양한 사례와 애플리케이션을 모니터링하고 있다. 매일같이 쏟아지는 활용 사례들을 보면서 방금 소개한 MVP 개발을 활용한 사례는 이미 전 것이 되어버린 기분이다. 


아스키아트로 ChatGPT에게 공간을 인식시키기, 다중 ChatGPT를 활용한 AGI에게 업무 시키기 등 무시무시한 활용 사례가 하루가 멀다 하고 쏟아지고 있다. 혁신의 물결은 이제 시작이니 열심히 파도를 타봐야겠다. 




이 글과 함께 읽어볼 만한 글


브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari