Skip to content
Soo-Kyung Kim
Go back

진단검사의학과 의사의 Vibe coding 도전기 — Lovable로 만든 labconf-finder

Edit page

올해 참석할 학회를 검색 중이었다.

엑셀 파일에 개최 날짜, 개최지, 초록 마감일, 등록일을 한 줄씩 정리하고 있었다. 진단검사의학 안에서도 진단혈액, 임상화학, 임상미생물, 수혈의학, 진단면역, 진단유전 등 그 분야가 다양하다. 그리고, 학회가 분야별·계절별로 흩어져 있어 매번 같은 작업을 반복해야 했다. 수십개의 학회를 손으로 추적하는 일은 매우 번거로웠다.

그때 떠오른 것이 Lovable이었다. 일주일 전 유튜브에서 본 도구였다. 자연어로 “이런 사이트를 만들어줘”라고 입력하면 AI가 코드를 대신 작성한다고 했다. 코딩을 한 번도 제대로 배운 적이 없었다. 그래도 한번 해보자고 생각했다.

그 결정 후 몇시간 뒤, labconf-finder.com 이라는 사이트가 완성되었다. 전 세계 진단검사의학 관련 학회 88개를 한 지도 위에 모은 사이트다. 분야별 필터, 날짜 검색, abstract deadline, 개최지 날씨까지 표시된다. 도메인을 구매하고, SEO를 설정하고, Google Search Console과 네이버 서치어드바이저에 등록하고, Google AdSense를 신청했다. 코드 한 줄을 직접 쓰지 않고, 한달여만에 진행되었다.

이 글은 그 시간의 기록이다. 코딩을 모르는 의사가 어떻게 시작했고, 무엇이 잘 되었고, 무엇이 어려웠는지, 비용은 얼마가 들었는지를 정리했다. 이미 출시된 도구 한 가지와, 그 과정에서 배운 교훈이 다음에 무엇을 만들지를 결정하는 데 도움이 되었다.

글쓴이 김수경 소개

이대목동병원 진단검사의학과 전문의. 진단면역, 수혈의학 파트를 담당하고 있다. 검사실 이곳 저곳 흩어진 정보를 모으고, 업무를 효율적으로 진행하는 것에 관심이 있다. 코딩을 정식으로 배운 적은 없다.

왜 만들었나

진단검사의학 학회는 분야별로 분산되어 있다. 한국 학회, 아시아 학회, 유럽·미국 학회가 모두 다른 일정으로 운영되고, 분야가 다르면 검색 경로도 달라진다. 매년 학회 일정을 정리할 때마다 같은 엑셀 작업을 반복했다.

이 문제 자체는 작아 보인다. 그러나 진단검사의학과 의사 업무의 상당 부분이 이런 “정보를 모아 결정으로 만드는” 일이며, 많은 시간이 소요된다. 학회 검색, 서류 검토, 판독, 연구 아이디어 발굴 등이 모두 같은 패턴이다.

그 패턴 하나를 도구로 만들어 보고 싶었다. 진단검사의학과 의사가 진단검사의학과 의사를 위해 직접 만든 AI 도구가 한국에 거의 없다는 점도 작용했다.

Vibe coding이란 무엇인가

Vibe coding은 자연어 프롬프트만으로 코드를 작성하는 방식이다. 작성자는 코드나 논리 구조를 직접 다루지 않고, 만들고 싶은 것의 의도(intent)를 자연어로 표현한다. 대형 언어 모델(LLM)이 그 의도를 해석해서 소스 코드를 생성하고 수정한다.

핵심은 “코드를 작성하지 않는다”는 것이 아니라 “코드 작성에 자연어가 사용된다”는 것이다. AI가 작성한 코드를 사람이 검토하고, 필요하면 다시 자연어로 수정 요청한다. 결과물은 일반 소스코드와 동일하게 GitHub에 저장되고 서버에 배포된다.

이런 작업이 가능해진 것은 LLM의 코드 생성 능력이 일정 수준 이상으로 올라오면서부터다. 2024년 후반부터 도구가 빠르게 등장했다.

Lovable

Vibe coding 도구는 여러 가지가 있다. 초보자에게 가장 진입 장벽이 낮은 것은 Lovable이다. Replit, Cursor, Bolt.new 등 다른 옵션도 있지만, “코딩 지식이 전혀 없는 사용자”를 위한 설계는 Lovable이 가장 친절하다.

Lovable의 핵심 특징은 네 가지다.

첫째, 자연어 프롬프트만으로 시작할 수 있다. 한국어로 원하는 것을 설명하면 그것으로 충분하다.

둘째, 실시간 미리보기가 된다. 수정 요청 즉시 화면에서 결과를 확인할 수 있다. 저장이나 빌드 대기가 없다.

셋째, AI가 작성하는 코드의 수준이 일정하다. React 기반의 전문가급 코드를 생성한다.

넷째, 모바일 반응형이 자동으로 적용된다. PC와 스마트폰 화면 모두 별도 작업 없이 최적화된다.

진단검사의학 의사가 가장 처음 만져보는 도구로 추천할 만하다. 단점은 비용이다. 이 부분은 뒤에서 다룬다.

1단계: 프로젝트 시작

lovable.dev에 접속해 회원 가입을 하고, 사용 목적과 작업자 수 등 간단한 설문에 답한다. 그다음이 핵심이다. 첫 프롬프트를 입력한다.

내가 첫 프롬프트로 입력한 내용은 다음과 같다.

전세계의 진단검사의학 관련 학회를 검색해주고, 지도에 표시해주고, 초록 제출기한과 열리는 기간을 표시해주는 conference 사이트를 만들어줘. clinical pathology, transfusion, clinical immunology, cell therapy, CAR-T, hematology, immunology, microbiology, clinical chemistry, genetics 등 분야를 포함해줘.

이 한 문장으로 첫 버전이 만들어졌다. 우측 미리보기 화면에 세계 지도가 뜨고, 학회 위치가 표시되고, 카테고리 필터가 작동했다. 완벽하지 않았지만 출발점이 되기에는 충분했다.

2단계: 작성 단계의 네 가지 원칙

여기서부터가 진짜 작업이다. 첫 버전을 만든 다음 어떻게 다듬느냐가 결과물의 품질을 결정한다. 한달 동안 시행착오를 거치며 정리한 네 단계는 다음과 같다.

기반 구축 단계. 개별 화면을 요청하기 전에 사이트의 정체성, 타깃 유저, 사용 이유, 유저의 핵심 액션을 먼저 설명해야 한다. 화면들 사이의 흐름을 먼저 설계하고, 디자인 방향(미니멀, 다크, 프리미엄, 세련됨 등)을 결정한다. 이 단계를 건너뛰면 뒤에서 뭐가 잘못된지 모른 채 계속 수정만 하게 된다.

시스템적 사고 단계. 페이지가 아니라 컴포넌트 단위로 요청한다. “학회 정보 카드의 디자인을 이렇게 바꿔줘”라고 요청하는 것이 “메인 페이지를 이렇게 바꿔줘”보다 결과가 정확하다.

정밀 구축 단계. 이미지와 영상 URL을 직접 삽입한다. AI가 자동 생성하는 이미지는 라이센스 문제가 있을 수 있으므로 본인이 권리를 가진 자료를 사용한다.

반복 및 출시 단계. 한 번에 하나만 변경하는 것이 원칙이다. 큰 변경 전에는 프로젝트 버전을 복제해 안전장치를 마련한다. 이 부분에서 시간을 많이 잃었다.

한 가지 더 중요한 기법이 있다. Lovable에게 명확한 질문을 유도하는 것이다. 요구사항을 서술한 다음 마지막에 다음 문구를 추가한다.

내가 이 기능에서 원하는 바와 구상을 완전히 이해하기 위해 필요한 질문을 나에게 던져라.

이 한 줄이 설계 의도와 결과물 사이의 간극을 크게 줄였다. AI가 추측으로 채우는 대신, 부족한 정보를 본인에게 물어보게 된다.

3단계: 추가 설정 — 세부 항목들

기본 작동이 되면 본격적인 디테일 작업이 시작된다. labconf-finder에 적용한 설정은 다음과 같다.

콘텐츠 측면에서는 제목과 부제목, 외부 링크 설정, 분야별 카테고리 정의와 명칭 확정, 파비콘 적용을 했다.

UI/디자인 측면에서는 세계 지도 위의 학회 위치 표시, 지도 크기 조정, 스크롤 방식, 학회 목록 카드 UI(날짜, 장소, abstract deadline, 날씨), 색상 수정, Dark mode 토글을 적용했다.

기능 측면에서는 분야별 탭 필터, 날짜 범위 검색, 지역 검색, 학회 수 카운터, 누적 방문자 수 / 오늘 방문자 수 표시를 구현했다.

데이터 관리는 GPT, Gemini, Claude 세 가지 AI 도구를 모두 사용해서 정보 정확성을 1차 검토한 다음 사람이 직접 확인하고자 하였다. 신규 학회 추가, 중복 학회 삭제, 이상 데이터 삭제를 반복했으나, 모든 학회를 전부 검토하는 것은 무리라고 판단을 내렸다. 사이트 하단에 “Please verify all details on the official website for accuracy”라는 disclaimer를 추가했다.

4단계: 도메인 연결

labconf-finder.lovable.app이라는 기본 URL이 발급되었지만, 브랜드를 만들려면 본인 도메인이 필요하다. Lovable의 도메인 메뉴에서 IONOS를 통해 labconf-finder.com을 구매했다. 같은 메뉴에서 www.labconf-finder.com도 함께 연결했다.

도메인 등록부터 SSL 인증서 적용까지 자동으로 처리되었다. HTTPS가 적용된 사이트로 라이브가 되기까지 몇 시간이 걸렸다.

5단계: 검색 노출 — 가장 중요한데 가장 자주 잊는 부분

사이트가 생성되었다고 끝이 아니다. Google이나 네이버에서 검색되지 않는 사이트는 사실상 존재하지 않는 것과 같다. 이 단계에서 가장 많이 헤맸다.

검색엔진에 노출되려면 두 가지가 필요하다.

첫 번째는 사이트맵(Sitemap)과 SEO 메타태그다. 사이트맵은 웹사이트 안에 어떤 페이지들이 있는지 검색엔진에게 알려주는 목록 파일이다. 도서관 색인과 같은 개념이다. 색인이 없으면 책이 있어도 찾기 어렵다. sitemap.xml이라는 파일이 그 역할을 한다.

SEO 메타태그는 검색 결과에 어떻게 표시될지를 결정하는 HTML 코드다. Google에서 검색했을 때 나오는 파란 제목과 그 아래 회색 설명 문장이 메타태그로 지정된다.

Lovable에 다음 프롬프트를 입력해 두 가지를 자동으로 추가했다.

이 사이트가 구글이나 네이버에서 검색되게 하려면 어떻게 해야 해?

Lovable이 public/sitemap.xml 생성, index.html에 메타태그 보강, public/robots.txt에 사이트맵 경로 추가, 네이버 크롤러(Yeti) 추가까지 한 번에 처리했다.

두 번째는 검색엔진에 직접 사이트를 등록하는 일이다. Google Search Console에 도메인을 입력하고, 소유권을 확인하기 위해 발급받은 HTML 태그를 Lovable에 삽입한 다음, sitemap.xml을 제출한다. 색인 반영까지 1~4주가 걸린다.

네이버 서치어드바이저도 같은 절차를 거친다. 웹사이트 등록, 소유권 확인, sitemap.xml 제출이다. 한국 사용자가 주 타깃이라면 네이버 등록을 빠뜨리면 안 된다.

Google AdSense — 신청은 쉬웠지만 수익은 없다

사이트가 검색에 잡히기 시작하면 광고를 붙일 수 있다. Google AdSense다. 신청 조건은 세 가지다. 독자적 콘텐츠, 충분한 트래픽, 개인정보처리방침 페이지의 존재. adsense.google.com에서 사이트를 추가하고 수일에서 수주를 기다리면 승인 여부가 결정된다.

labconf-finder는 승인을 받았다. cine-history(취미로 만든 다른 사이트)도 같이 운영 중이라 두 사이트 모두 등록했다. 하지만 수익은 사실상 zero에 가깝다. 28일 누적 수익이 0.45 달러였다. 이런 종류의 niche 사이트로 AdSense 수익을 기대하는 것은 비현실적이다.

비용의 현실

여기서부터가 가장 중요한 부분이다. Vibe coding 도구는 처음에는 무료처럼 보이지만 실제로 만들기 시작하면 비용이 빠르게 누적된다.

Lovable의 과금 방식은 크레딧 기반이다. Chat mode(코드 수정 없음)는 1 크레딧, Agent mode(실제 코드 생성/수정)는 앱 구조 생성 약 2 크레딧, 버튼 변경 등 단순 수정 0.5 크레딧, 복잡한 기능 추가는 그 이상이다. Pro 요금제 기준 월 $200에 800 크레딧이다.

내 경우 두 사이트(labconf-finder + cine-history)를 만들면서 누적 $130을 썼다. 도메인 두 개 구매에 $21 × 2 = $42. 그 외 ChatGPT, Claude, Gemini 사용료까지 합치면 총 약 $172, 한화로 약 25만 원이다.

수익은 zero. 이 사실을 처음 깨달은 날 Tistory에 이렇게 적어두었다.

재미로 막 하다보니 어마어마하게 결제를 했구먼. 심지어 순전히 취미로 만든 거라 수입은 zero.

비용 통제는 처음부터 의식적으로 해야 한다. 한 번 흥미가 붙으면 “조금만 더 고치면” 하는 마음으로 크레딧이 빠르게 소진된다.

보안과 저작권 — AI가 작성한 코드의 함정

Lovable이 자동으로 생성하는 코드는 보안 설정이 기본적으로 허술하다. labconf-finder를 publish하자마자 다음과 같은 경고가 떴다.

각 항목을 Lovable에게 다시 자연어로 설명해 수정을 요청했다. API 키가 클라이언트 코드에 노출되지 않게 서버 사이드에 보관, 학회 추가/삭제 기능에 관리자 인증 적용, 방문자 카운터 API에 rate limiting 추가, HTTPS와 SSL 인증서 확인 등을 했다.

저작권도 함정이다. 지도, 웹페이지, 이미지를 무심코 가져다 쓰면 안 된다. 이미지는 본인이 권리를 가진 자료를 사용하거나 Creative Commons 라이선스를 확인해야 한다. 학회 정보는 공개 정보이지만 disclaimer를 명시적으로 표기하는 것이 안전하다.

개인정보처리방침은 국내 법령상 필수다. AI에게 사이트 운영 형태를 설명하고 개인정보처리방침 페이지의 초안을 생성해달라고 요청하면 한 번에 만들어준다. 본인이 한 번 검토한 다음 게시하면 된다.

비용을 낮추기 위한 다음 단계

Lovable의 비용이 부담스럽다는 것을 깨달은 시점에서 다음 단계를 고민하기 시작했다. 결론은 GitHub로 코드를 내보낸 다음 VS Code + GitHub Copilot 또는 Cursor, Windsurf 같은 IDE 도구로 옮기는 것이다.

Lovable에서 만든 코드는 GitHub에 자동으로 연동되어 있다. 그 코드를 로컬로 clone한 다음, AI 도구가 통합된 IDE에서 직접 수정한다. 호스팅은 Netlify나 Vercel 같은 무료 또는 저비용 서비스를 쓴다. 이렇게 하면 월 $200의 Lovable 구독 없이도 사이트 유지가 가능하다.

이 전환은 진행 중이나, 결론은 매우 어렵다이다. lovable에 들어있는 data는 supabase와 같은 외부 DB에 연결시키는 것이 거의 불가능해보인다. lobable 사이트도 지속적으로 업데이트가 되고 있는데, 현 시점에는 외부 DB에 심는 것을 원천적으로 막고 있는 것 같다.

한달 동안 배운 것

세 가지로 정리할 수 있다.

첫째, Vibe coding은 쉽지만 무료가 아니다. 진입 장벽이 낮은 만큼 비용이 빠르게 누적된다. 처음부터 예산을 정하고 시작하는 것이 좋다.

둘째, AI가 작성한 코드는 보안과 품질 측면에서 본인이 한 번 더 검토해야 한다. “AI가 알아서 해주겠지”라는 가정은 위험하다. 특히 데이터베이스 권한, API 키 노출, 사용자 입력 검증 등은 반드시 확인이 필요하다.

셋째, 작은 단위로 변경하고 자주 복제해 두는 것이 결과적으로 시간을 가장 적게 쓰는 방법이다. 큰 변경을 한 번에 시도하면 어디서 망가졌는지 추적하기 어렵다.

진단검사의학 의사가 이걸 왜 하는가

검사실 의사가 코드를 짜는 일이 본업은 아니다. 그러나 임상 검사실의 일상에는 도구로 해결할 수 있는 마찰이 곳곳에 있다. 학회 검색, 장비 평가 보고서, 내부정도관리·외부정도관리 문서, 전공의 교육 자료, 판독문 작성 시 여러 데이터 취합 등이 모두 그렇다.

이런 도구를 진단검사의학을 모르는 외부 개발자가 만들면 본질을 놓친다. 검사실 의사가 검사실 의사를 위해 직접 만드는 것의 의미가 여기에 있다. 의사가 코드를 짤 줄 알 필요는 없다. 다만 의사가 도구의 의도를 설계할 수 있어야 한다. Vibe coding은 이 격차를 메울 수 있는 통로다.

labconf-finder는 그 첫 실험이었다. 다음에 무엇을 만들지는 이미 정해져 있다. 검사실 운영, 전공의 교육, 연구 워크플로우의 마찰을 줄이는 도구 몇 가지를 준비하고 있다.

다음 글 예고

다음 글을 준비 중이다.

하나는 Obsidian으로 노트를 관리하는 방법이다. LLM과 obsidian을 결합하여 사용하면서 매우 효율이 높아졌다.

질문이나 의견이 있으면 LinkedIn 또는 이메일로 연락하면 된다.


이 글은 2026년 4월 1일 이식면역연구회에서 발표한 “AI, 코딩, 컴퓨터 잘 모르는 사람이 Vibe coding으로 홈페이지 만들기”의 내용을 외부 독자용으로 재정리한 것이다.


Edit page
Share this post on:

Next Post
How to configure AstroPaper theme