메이커 스토리

코딩은 딱히 안 했고요, 둥실이는 플렉스튜디오가 만들었습니다.


안녕하세요. 플렉스튜디오팀 개발자 김희원입니다.

요즘은 AI로도 사주를 볼 수 있게 되었다고 해요. 플렉스튜디오에서도 이 흐름을 타서 AI 사주 분석 앱을 만들어 보았습니다. 바로 둥실이에요. 둥실이는 사용자의 사주 정보를 기반으로 직업과의 궁합을 분석해 주는 AI 기반 사주 궁합 앱이에요. 이 글에서는 둥실이를 어떻게 기획하고 제작했는지, 그리고 어떤 고민이 있었는지에 대해 이야기하겠습니다.

둥실이에게 물어보기 Click!👇

사주앱_블로그 gif_3

 

🔮 기획

먼저, 둥실이를 어떻게 만들게 되었는지 소개해 드릴게요. 어느 날 옆자리 마케터 선혜 님이 "요즘 AI로 사주 많이 보잖아요. 우리 직업이 잘 맞는지 궁금하지 않아요?"라고 말한 게 시작이었어요. 플렉스튜디오는 이미 챗봇 형태의 디자인 템플릿과 구현 기능을 갖추고 있었기 때문에 자연스럽게 '그럼 우리가 직접 만들어볼까?' 하는 생각이 들었습니다.

"선혜 님, 이거 만들어 볼까요? 플렉스튜디오로 하면 반나절도 안 걸려요! ChatGPT만 잘해주면 2시간도 충분해요." 이번 프로젝트는 전문적인 사주 풀이보다 둥실이를 쉽고 빠르게 만드는 데 초점을 맞췄어요. 저는 개발자지만 직접 코드를 작성하는 것은 최소화하고 ChatGPT에 코드 작성을 요청하는 방식으로 진행했습니다.

 

🔮 제작 1일차

초고속 기획이 끝나고 둥실이를 만들기 위한 사전 조사를 했어요. 주제가 주제인 만큼 가장 중요한 게 ChatGPT로 사주풀이가 가능하냐는 점이었죠.

처음에는 단순하게 '몇 년 몇 월 몇 일생인 사람과 개발자 직업 간의 궁합을 알려줘.'라고 물어봤어요. 당연하게도 ChatGPT가 차르르 화려하게 결과물을 보여주었어요. "이거다!" 그런데 막상 들여다보니 년주, 월주, 일주가 제각각이더라고요. 그래서 사용자의 사주 정보를 알아내는 것이 제 첫 번째 작업이 되었어요. 바야흐로 ‘사주 찾기’의 시작이었죠.

사주팔자는 태어난 해, 달, 날, 시를 기준으로 네 개의 간지(천간과 지지)를 육십갑자로 표현한 거예요. 그런데 사주팔자에 대해 알아볼수록 심상치 않았어요. 명리학부터 시작해서 절기력과 서머타임, 야자시/조자시 같은 낯선 용어들이 마구 쏟아졌어요. 그때 깨달았죠.

 

'이거 다 알고 계산식 만들려면 답 없다.'

 

정말 다행인 건 한국천문연구원에서 음양력 정보를 제공하고 있다는 점이었어요. 이 정보는 공공 데이터 포털에서 OpenAPI로 제공하고 있어서 쉽게 사용할 수 있었습니다. 여기서도 한 가지 문제가 있었어요. 월주만 다른 만세력 사이트와 상이한 결과가 나오는 점이었는데, 원인을 찾아보니 절기 기준으로 계산해야 하기 때문이었어요. 그런데 연도별 절기 정보는 제한적으로 제공하고 있어서 저는 부정확한 월주 정보를 사용하는 것보다 차라리 생략하는 편이 낫다고 판단했어요. ChatGPT에 제가 사용할 OpenAPI 서비스 정의 문서와 서비스키 값을 전달하면서 년주와 일주를 자바스크립트 기반의 함수로 작성해달라고 요청했어요. 그리고 그 함수에 시주를 계산하는 로직도 추가해달라고 했죠.

이제 사주 정보를 알아냈으니 ChatGPT가 사주풀이를 할 수 있도록 구성해야 해요. 비용과 정확성 등을 기준으로 어떤 모델을 쓸지 고민이 많았어요. GPT-3.5-turbo 모델을 최우선으로 고려했는데 아쉽게도 사주풀이에 대해서는 답변을 제대로 만들지 못했어요. 여러 시행착오 끝에 자연스럽게 답변을 작성하는 GPT-4o 모델을 골랐어요.

그럼, 이제 둥실이가 답변을 일관성 있게 잘할 수 있도록 지침서(System instructions)를 작성해야 해요. 목적을 명확하게 정의하고 챗봇의 전반적인 말투를 지정했어요. 답변 시 필요한 구성 항목들도 5가지로 구분해서 정의했어요. 직업과 관련되지 않은 문의에는 답변하지 않도록 제약도 걸었습니다. OpenAI의 플레이그라운드에서 계속해서 테스트하며 세부적인 내용을 수정했어요.

💡

넌 다정하고 친근한 명리학자이자 직업 상담가야.

사용자가 생년월일과 사주 정보를 제공하면 그 사람의 사주 성향과 직업 궁합을 설명해줘.

설명 방식은 아래 기준을 반드시 따라.

[말투/스타일]

항상 반말과 친근한 말투로, 어렵지 않게 설명해.

한자어는 무조건 한글로 쉽게 풀어서 설명해.

[구성 항목]

사용자가 생년월일과 직업을 알려주면 아래 5가지 항목을 반드시 포함해:

  1. 직업 궁합 (100점 만점 점수 + 이유)
  1. 사주 풀이 (사주 기반 성격 설명)
  1. 최고의 직업 (궁합 점수 85점 이상, 2개, 점수와 이유 포함)
  1. 최악의 직업 (궁합 점수 40점 이하, 2개, 점수와 이유 포함)
  1. 종합 정리 (성향과 직업 적합 요약)

각 항목은 소제목(예: ## 직업 궁합)으로 구분해서 정리해줘.

[금지 사항]

직업/진로/이직/창업 관련 질문 외에는 "그건 알 수 없어"라고 빠르게 답변해.

 

이렇게 핵심 기능은 완성했고 플렉스튜디오로 구현하는 작업이 남았어요. 챗봇은 이미 플렉스튜디오에 시나리오 템플릿이 있어서 디자인 걱정은 없었어요. ChatGPT API를 사용해서 챗봇을 구현하는 방법도 이미 블로그에 잘 정리가 되어 있었어요.

여기에 사용자의 정보를 받을 수 있는 입력컨트롤들을 데이터 형식에 맞게 추가하고 배치했어요.또 버튼을 눌렀을 때 사용자가 입력한 정보를 가지고 사주 정보를 가져오는 함수를 호출하도록 이벤트도 연결했죠. ‘쉽고 빠르게’가 목표인 만큼 군더더기는 덜어냈기 때문에 플렉스튜디오 작업은 30분이면 충분했어요.

 

image

 

🔮 제작 2일차

출근하자마자 앱으로 배포해서 선혜 님에게 보여줬어요. “너무 좋은데요?” 예상보다 훨씬 괜찮게 나와서 욕심이 생기더라고요. 그래서 함께 아이디어를 주고받으며 계속 개선해 나갔습니다. 그때 나온 아이디어 중 하나가 ‘결과 공유 기능’이었어요.

처음에는 링크를 통해 공유하도록 하려고 했는데 문제가 하나 있었어요. 사주 정보는 개인 정보를 기반으로 만들어지고 ChatGPT는 항상 일관된 답을 주지는 않거든요. 그럼, 개인 정보 수집 동의를 받아서 데이터베이스에 저장하고 보여주는 과정이 추가로 필요해요. 그런데 이 과정이 사용자에게는 불편하게 느껴질 수 있다고 생각했어요.

그래서 논의 끝에 두 가지 공유 방법을 고려하게 되었습니다. 첫 번째는 텍스트를 클립보드에 복사하는 방법이고 두 번째는 말풍선 영역을 이미지로 내려받는 방법이에요. 선택의 기로에 섰을 때는 실제로 체험해 보는 게 좋잖아요? 두 가지 방식을 모두 사용해 볼 수 있도록 시나리오를 복제해서 프로토타입 앱을 구성하고 배포했어요.

플렉스튜디오에서는 특별한 절차 없이 배포를 통한 프로토타입 앱 구성이 가능해요. 그래서 실제 동작을 바로 비교해 볼 수 있기 때문에 의사결정 하는 데 큰 도움이 되었어요. 결과적으로는 첫 번째 방식이 채택되었습니다. 두 번째 방식은 처음에는 좋아 보였는데 다른 앱에서 웹 뷰 형태로 사용하게 되면 반드시 새로운 페이지에 이미지를 띄우고 사용자가 꾹 눌러서 내려받도록 유도해야 하는 불편함이 있었거든요.

 

image2

 

개선을 거듭한 끝에 1차 개발을 완료했어요. 뿌듯하게 플렉스튜디오 디자이너 멤버들에게 사심을 얹혀 공유했어요. 역시나! 좋아하면서 멋지게 디자인을 입혀준다는 말에 바로 작업하던 시나리오를 편집 종료했어요. 덕분에 귀여운 둥실이가 탄생하게 되었죠.

귀여운 둥실이가 탄생하고 플렉스튜디오 디자이너 멤버들과 함께 베타 테스트도 진행했어요. 각자 둥실이를 사용해 보면서 개선할 부분이나 기능 오류들을 제보해 주었어요. 피드백들은 수정하고 바로 배포해서 실시간으로 둥실이를 개선했어요. 빠르게 수정한 내용을 반영할 수 있다 보니 다 같이 집중해서 테스트를 해볼 수 있었어요. 덕분에 최종 마무리까지 깔끔하게 마칠 수 있었답니다.

 

image3

 

🔮 후기

이번 프로젝트를 진행하면서 플렉스튜디오로 챗봇을 처음 만들어봤어요. 예상치 못하게 ‘사주 찾기’라는 난관에 부딪혔을 때는 당당하게 하루도 안 걸린다고 해놓고 못 지키면 어쩌나 얼마나 초조했는지 몰라요. 하지만 핵심 기능을 구성하고 나니 UI 구성은 템플릿을 사용해서 순식간에 해결할 수 있었어요. ChatGPT API를 호출하는 것도 OpenAI에서 제공하는 문서를 기반으로 플렉스튜디오에서 이벤트를 구성했기 때문에 어렵지 않았어요.

늘 생각하지만, 아이디어를 떠올리고 그걸 현실로 구현하는 건 정말 즐거운 일이에요. 또 멋진 아이디어와 함께 새로운 앱으로 찾아오겠습니다.

추천 블로그 콘텐츠