챗GPT, 제미나이, 클로드 같은 AI가 등장하면서, 예전에는 전문가의 영역이던 개발 작업을 이제는 누구나 시도해 볼 수 있는 시대가 되었습니다. 이른바 '바이브 코딩'이라 불리는, AI에게 말로 지시해 코드를 만드는 방식이 빠르게 퍼지고 있습니다. 아이디어만 있으면 프로그램이나 플러그인의 초안을 손쉽게 뽑아낼 수 있게 된 것입니다.
다만 직접 해보면서 느낀 점은, 코딩 지식이 전혀 없으면 제대로 된 결과물을 내기는 여전히 어렵다는 것입니다. AI가 만들어 준 코드가 당장 동작하는 것처럼 보여도, 보안에 허점이 없는지, 나중에 유지보수가 가능한 구조인지까지 챙기려면 어느 정도의 기초 지식이 필요하지 않을까 생각됩니다. AI는 강력한 도구이지만, 그 결과물을 검토하고 다듬는 것은 결국 사람의 몫이라 할 수 있습니다.
코딩에 대하여 수박 겉핥기 식으로 코딩 지식이 미천하지만 AI가 나오기 이전부터 저는 간단한 워드프레스 플러그인을 만들 곤 했습니다. 물론 복잡한 기능을 하는 플러그인은 엄두도 내지 못했지만요. 워드프레스로 이런저런 소소한 플러그인을 만들어 왔지만, 이번에는 조금 복잡한 작업을 의뢰받았습니다. 안과 전문의의 의뢰로, 백내장 수술을 앞둔 분들이 자신에게 맞는 인공수정체(렌즈)를 고를 때 상담을 돕는 도구를 구현하는 작업이었는데, 환자가 문의 양식을 통해 입력한 정보를 받아 챗GPT가 분석하고 결과를 보기 좋게 정리해 주는 시스템이었습니다.

과제(Challenge)
백내장 수술을 받을 때는 혼탁해진 수정체를 제거하고 인공수정체를 넣습니다. 그런데 이 렌즈에는 종류가 여러 가지입니다. 멀리 보는 데 강한 것, 여러 거리를 두루 보는 것, 안경 의존을 줄여주는 것 등 특성이 제각각입니다. 사람마다 직업, 생활 패턴, 눈 상태가 다르기 때문에 "어떤 렌즈가 가장 좋다"는 정답은 없는 것 같습니다.
안과 전문의와의 상담을 통해 환자에게 가장 적합한 렌즈를 결정할 수 있겠지만, 방문자(환자)가 웹 상에서 렌즈 선택에 필요한 몇 가지 설문에 답을 하면 AI가 데이터를 분석하여 해당 방문자에게 적합한 렌즈를 추천해 주는 시스템을 워드프레스에서 구현하는 작업을 의뢰받았습니다.
전체 구조
복잡해 보이지만 전체 구조는 간단하게 다음과 같이 3단계로 구성됩니다.
- 첫째, 환자가 설문에 답합니다. 나이, 직업, 평소 안경 사용 습관, 야간 운전 빈도, 그리고 검사 수치 같은 항목을 단계별로 선택합니다.
- 둘째, 이 답변을 모아 점수를 계산하고 AI에게 분석을 맡깁니다.
- 셋째, AI가 정리한 내용을 환자가 읽기 좋은 리포트 형태로 보여줍니다.
기술적으로는 설문 부분에 컨택트 폼 플러그인(예: WPForms, Quform 등)을 사용하고, 분석 부분에 OpenAI의 챗GPT를 연동했으며, 결과를 보여주는 페이지를 따로 만들었습니다. 이 세 조각을 자연스럽게 이어 붙이는 것이 작업의 핵심이라 할 수 있습니다.

이번 작업에 Quform이라는 유료 문의폼 플러그인을 사용했습니다. 사용자가 단계별로 답변할 수 있는 다단계(멀티-스텝) 또는 다중 페이지(멀티-페이지) 설문을 쉽게 만들 수 있어 클라이언트의 요구사항에 부합했습니다. 심플한 문의 폼인 경우 WPForms나 Contact Form 7, Ninja Forms 등과 같은 무료 플러그인을 사용하는 것도 가능합니다.
스코어링 엔진만으로 부족
처음에는 단순하게 생각했습니다. 각 답변에 점수를 매기고, 렌즈군별로 합산해서 높은 순으로 추천하면 되지 않을까 싶었습니다. 하지만 클라이언트와 이야기를 나누면서 그렇게 단순하지 않다는 생각이 들었습니다.
예를 들어 어떤 렌즈는 점수상으로는 1순위가 될 수 있어도, 특정 눈 상태(녹내장, 황반 질환, 심한 빛번짐 민감도 같은)에서는 신중해야 합니다. 점수가 높다고 무조건 추천하면 오히려 위험할 수 있는 것입니다. 그래서 "점수는 기본으로 삼되, 주의가 필요한 요소가 있으면 그것을 우선 반영한다" 등과 같은 원칙을 세우는 작업이 필요했습니다.
클라께서 정리해 준 임상 판단 기준을 AI가 이해할 수 있는 형태로 옮기고, 사용자(환자)가 선택한 답변에서 주의 요소가 발견되면 그것을 분석에 반영하도록 했습니다. 덕분에 결과 리포트가 "점수가 높으니 이걸 쓰세요"가 아니라 "당신의 눈 상태를 고려하면 이런 점을 함께 봐야 합니다"처럼 한결 신중한 톤이 되었습니다.
프롬프트가 중요!
챗GPT를 연동하는 것 자체는 어렵지 않았습니다. AI를 사용하여 쉽게 OpenAI API를 기반으로 챗GPT와 연동되도록 했습니다. 어려운 건 프롬프트 최적화였습니다. 같은 데이터를 제공해도 지시를 어떻게 쓰느냐에 따라 결과의 퀄리티가 달라졌기 때문입니다.
초기 결과물은 조금 어설펐습니다. 같은 말을 여러 번 반복하거나, 지나치게 단정적으로 말하거나, 환자가 듣기에 부담스러운 표현을 쓰기도 했습니다. 그래서 지시문을 계속 다듬었습니다. 예시:
- "무조건", "완벽하게", "100%" 같은 표현은 자제할 것
- 각 섹션은 정해진 역할만 할 것
- 같은 내용을 다른 섹션에서 되풀이하지 말 것(반복 방지)
- 환자에게 직접 설명하듯 부드럽게 쓸 것
- ...
이런 규칙을 하나씩 추가하면서 원하는 결과가 나오는지 모니터링했습니다.
결과물을 보기 좋게 디자인하는 것이 관건
기능이 동작하는 것과, 사람이 보고 신뢰감을 느끼는 것은 다른 문제입니다. 분석 결과가 그냥 평범한 텍스트로 쭉 나오면 읽기 어렵게 됩니다. 그래서 결과 페이지를 카드 형태로 디자인했습니다.
1순위와 2순위 렌즈를 카드로 나란히 보여주고, 각 렌즈의 특성(주간 시력, 야간 시력, 빛번짐, 컴퓨터 작업, 근거리 작업)을 오각형 형태의 그래프로 한눈에 비교할 수 있게 했습니다. 순위는 카드 모서리에 동그란 배지로 표시하고, 렌즈 이미지도 함께 넣었습니다. 환자가 결과를 받았을 때 "아, 내 눈은 이런 상태이고 이런 렌즈가 후보구나" 하고 직관적으로 느낄 수 있도록 한 것입니다.

이 디자인 작업이 생각보다 손이 많이 갔습니다. 글자 크기 하나, 카드 사이 여백 하나를 두고 여러 차례 피드백을 통해 수정해 나갔습니다. 화면에서는 멀쩡한데 인쇄하면 레이아웃이 흐트러지는 문제도 있었고, 컴퓨터 환경(맥과 윈도우)에 따라 출력 결과가 달라지는 일도 있었습니다. 이런 자잘한 차이들을 하나씩 잡아가는 작업 또한 개발 작업만큼이나 시간이 소요되었습니다.
에러 디버깅
개발에서 늘 그렇듯, 정작 발목을 잡은 건 핵심 기능이 아니라 주변부였습니다.
문의 양식의 첫 번째 페이지에서 답변을 선택하고 다음 버튼을 누르면 "An error occurred. Refresh the page and try again." 오류가 가끔 표시되었습니다. 항상 오류가 발생하는 것도 아니고 간헐적으로 이 오류 메시지가 발생해서 원인을 찾기가 까다로웠습니다. 결국 캐시 설정과 폼 세션이 복합적으로 얽힌 문제인 것으로 의심되어 그쪽에 초점을 두고 디버깅하여 문제 해결을 시도했습니다.
또한 사용자 시스템 환경에 따라 페이지가 다르게 보이는 문제도 발생했습니다. 워드프레스 테마에 의해 글자 크기가 의도와 달리 다르게 설정되기도, 인쇄할 때 특정 윈도우 환경에서만 카드 레이아웃이 모바일처럼 보이기도 했습니다. 이런 것은 직접 해당 환경에서 보지 않으면 재현조차 어려워서, 피드백에 많이 의존했습니다.
질문과 답변 (Q&A)
Q. 이 플러그인이 의사를 대신해서 렌즈를 결정해 주나요?
아닙니다. 이 도구는 상담을 돕는 보조 자료를 만들 뿐입니다. 최종 인공수정체 선택은 담당 안과 전문의가 정밀 검사 결과와 환자의 생활 우선순위를 함께 확인한 뒤 결정합니다. AI의 결과는 단순 참조용에 불과합니다.
Q. 환자가 입력한 정보로 정확한 진단이 가능한가요?
설문은 진단이 아니라 상담의 방향을 잡기 위한 참고 자료입니다. 실제 판단에는 검사 수치와 의료진의 임상 경험이 함께 필요합니다. 그래서 결과 리포트도 단정적인 표현 대신 "고려할 수 있습니다", "상담해 볼 수 있습니다" 같은 신중한 표현을 쓰도록 설계했습니다.
Q. AI가 잘못된 추천을 할 위험은 없나요?
이러한 위험을 줄이는 것이 개발에서 신경 쓴 부분 중 하나였습니다. 점수만으로 기계적으로 추천하지 않고, 주의가 필요한 눈 상태가 있으면 그것을 우선 반영하도록 했습니다. 또 결과는 1순위와 2순위 정도만 제시하고, 최종 판단은 반드시 의료진이 하도록 전제했습니다.
Q. 다른 병원이나 분야에도 비슷하게 적용할 수 있나요?
구조 자체는 응용이 가능하리라 생각합니다. 설문으로 정보를 받고, 규칙과 AI로 분석하고, 결과를 정리해 보여주는 흐름은 여러 분야에 쓸 수 있습니다. 다만 의료처럼 민감한 영역일수록 전문가의 기준을 충실히 반영하고, 그 결과가 어디까지나 보조 자료임을 분명히 하는 설계가 필요합니다.
Q. OpenAI API 키 비용이 많이 드나요?
AI 분석에는 사용량에 따른 API 비용이 듭니다. 다만 한 번 분석에 드는 비용은 크지 않은 편이고, 사용하는 모델에 따라 조절할 수 있습니다. 운영 규모에 맞게 선택하면 부담이 크지 않습니다.
Q. 이런 방식의 개발을 다른 분야에도 응용할 수 있을까요?
충분히 가능합니다. 핵심 구조는 "사용자에게 설문을 받고, 규칙과 AI로 분석해 결과를 정리해 보여준다"는 것인데, 이 흐름은 여러 분야에 그대로 옮겨갈 수 있습니다.
비슷하게 적용해 볼 수 있는 분야를 떠올려보면, 피부과나 성형외과에서 시술 전 상담 보조 도구로 쓸 수 있습니다. 환자의 피부 상태, 생활 습관, 기대치를 설문으로 받아 적합한 시술 방향을 정리해 보여주는 방식입니다. 치과에서도 임플란트나 교정 방식을 선택할 때 비슷한 접근이 가능합니다.
의료 외 분야로도 응용 범위는 넓습니다. 건강기능식품이나 영양제를 추천하는 도구, 보험 설계 상담 전 고객의 상황을 정리해 주는 도구, 인테리어나 가구 구매 시 생활 패턴에 맞는 제품을 안내하는 도구도 같은 구조로 만들 수 있습니다. 교육 분야에서는 학습 스타일 진단 후 커리큘럼을 안내하는 형태도 가능합니다.
다만 AI를 활용하여 생성하는 결과는 어디까지나 참고 자료이고 최종 판단은 사람이 한다는 전제를 명확히 해야 합니다. 특히 의료나 금융처럼 민감한 영역일수록 그 선을 분명히 설계에 반영하는 것이 안전하리라 생각합니다.
👉 간단한 플러그인 개발을 비롯하여 워드프레스 또는 웹호스팅 관련 문제로 해결에 어려움을 겪고 있다면 여기에서 서비스(유료)를 의뢰하실 수 있습니다.😄
참고
https://avada.tistory.com/3787
WPForms 문의 폼 제출 시 SMS 문자 알림 전송 작업
WPForms는 워드프레스에서 가장 많이 사용되는 문의 폼 플러그인 중 하나로서 드래그 앤 드롭 방식으로 쉽게 문의 양식을 만들어서 방문자들로부터 문의를 받을 수 있습니다. WPForms 문의 폼에서
avada.tistory.com
https://avada.tistory.com/3833
챗GPT를 활용한 워드프레스 AI 댓글 자동 생성 플러그인으로 방문자 참여율을 높이는 방법
블로그에서 댓글은 단순한 의견 교환을 넘어 독자와 블로거 간의 직접적이고 강력한 소통 수단으로, 댓글이 많을수록 글에 대한 관심과 인기도가 상승하여 블로그 성장에 중요한 역할을 합니다
avada.tistory.com