Skip to main content
Summary

만들 기능을 먼저 문서로 고정하기

AI 글쓰기 도우미는 "글을 대신 써주는 버튼"이 아니라, 사용자가 더 빨리 초안을 만들고 다듬도록 돕는 기능입니다. 개발을 시작하기 전에 요구사항을 짧게 정리해야 합니다.

예를 들어 대상 사용자는 블로그 글을 쓰는 개인, 마케팅 문안을 작성하는 운영자, 지식 콘텐츠를 정리하는 크리에이터가 될 수 있습니다. 입력 항목은 주제, 대상 독자, 원하는 톤, 글 형식, 길이, 참고 문맥입니다. 생성 결과는 본문 초안, 제목 후보, 요약, 태그, 목차로 나눕니다.

성공 기준도 필요합니다. "사용자가 1분 안에 초안을 얻는다", "결과를 수정해 저장할 수 있다", "제목과 태그는 검색 가능한 데이터로 남긴다"처럼 측정 가능한 문장으로 써야 합니다. 이 기준이 있어야 모델, UI, 비용을 판단할 수 있습니다.

최종 프로젝트: AI 글쓰기 도우미 만들기

입력 화면은 자유보다 제한이 중요하다

AI 기능은 입력이 흐릴수록 결과도 흐려집니다. 화면에서는 사용자가 무엇을 넣어야 하는지 명확히 보여줘야 합니다.

필수 입력은 주제와 대상 독자로 둡니다. 톤은 친절한, 전문적인, 짧고 명확한처럼 선택지로 제공합니다. 형식은 블로그 글, 뉴스레터, 제품 소개, 요약 노트 등으로 제한합니다. 길이는 짧게, 보통, 길게처럼 단순한 옵션으로 시작하는 편이 좋습니다.

검증 규칙도 서버에서 다시 확인합니다. 주제가 비어 있거나 너무 짧으면 요청하지 않습니다. 참고 문맥이 너무 길면 파일 입력과 긴 문서 처리에서 다룬 방식처럼 잘라서 요약하거나, 최대 길이를 넘는 부분은 제외합니다. 클라이언트 검증은 편의를 위한 것이고, 서버 검증은 안전을 위한 것입니다.

입력 화면을 설계할 때는 "사용자가 자유롭게 쓸 수 있게 하자"보다 "모델이 안정적으로 처리할 수 있게 하자"에 더 무게를 두어야 합니다. 자유 입력은 참고 문맥처럼 꼭 필요한 곳에만 두고, 톤·형식·길이처럼 반복되는 값은 선택지로 관리하는 편이 좋습니다.

프롬프트는 기능별로 분리한다

하나의 거대한 프롬프트에 모든 역할을 넣으면 유지보수가 어렵습니다. 글쓰기 도우미는 기능을 나누는 편이 좋습니다.

  • 본문 생성 프롬프트: 주제, 독자, 톤, 형식, 길이에 맞춰 초안을 만듭니다.

  • 제목 추천 프롬프트: 본문이나 주제를 바탕으로 여러 제목을 만듭니다.

  • 요약 생성 프롬프트: 저장 목록이나 공유 화면에 쓸 짧은 설명을 만듭니다.

  • 태그 생성 프롬프트: 검색과 분류에 사용할 키워드를 만듭니다.

  • 목차 생성 프롬프트: 긴 글의 구조를 잡습니다.

본문 생성은 자연어가 적합하지만, 제목·요약·태그·목차는 프로그램이 읽어야 하므로 JSON 응답으로 받는 것이 좋습니다. 예를 들어 titles, summary, tags, outline 같은 필드를 고정하면 DB 저장과 화면 렌더링이 쉬워집니다.

기능별로 프롬프트를 분리하면 실험도 쉬워집니다. 제목 추천 품질만 떨어진다면 제목 프롬프트만 고치면 됩니다. 태그가 너무 많이 나온다면 태그 스키마만 조정하면 됩니다. 한 프롬프트가 모든 일을 하게 만들면 작은 수정이 전체 결과를 흔들 수 있습니다.

본문은 스트리밍, 부가 정보는 JSON으로 처리한다

사용자가 가장 오래 기다리는 부분은 본문 생성입니다. 이 부분은 스트리밍으로 출력합니다. 첫 문장이 바로 보이면 사용자는 기능이 멈추지 않았다고 느낍니다. 중단 버튼도 함께 제공해 불필요한 비용을 줄입니다.

반면 제목, 요약, 태그, 목차는 스트리밍보다 정확한 구조가 중요합니다. 본문 생성이 끝난 뒤 별도 요청으로 구조화 응답을 받거나, 저장 시점에 백그라운드 작업으로 생성할 수 있습니다.

저장 데이터는 최소한 다음과 같이 나눌 수 있습니다.

  • 사용자 입력값: 주제, 독자, 톤, 형식, 길이

  • 생성 결과: 본문, 제목 후보, 요약, 태그, 목차

  • 운영 정보: 사용 모델, 토큰 사용량, 생성 시간, 오류 여부

  • 피드백: 사용자의 만족도, 재생성 여부, 수정량

이 데이터가 쌓이면 나중에 품질 개선의 근거가 됩니다. 예를 들어 재생성률이 높다면 첫 결과가 기대에 맞지 않는다는 뜻일 수 있습니다. 특정 톤에서 만족도가 낮다면 해당 톤의 프롬프트를 다시 점검해야 합니다.

배포 후에는 개선 루프를 만든다

AI 기능은 배포가 끝이 아닙니다. 실제 사용자가 입력하는 문장은 예측보다 훨씬 다양합니다. 그래서 로그와 피드백을 보고 계속 다듬어야 합니다.

응답이 너무 느리면 더 빠른 모델을 쓰거나 본문 길이를 줄입니다. 비용이 높으면 캐싱, 입력 길이 제한, 저렴한 모델 분리를 적용합니다. 품질이 흔들리면 프롬프트를 수정하고, JSON 실패가 많으면 스키마를 단순하게 바꿉니다. 사용자가 자주 재생성한다면 입력 화면의 선택지가 부족한 것일 수 있습니다.

개선할 때는 한 번에 모든 것을 바꾸지 않는 편이 좋습니다. 모델, 프롬프트, 입력 UI, 출력 형식을 동시에 바꾸면 무엇이 효과를 냈는지 알기 어렵습니다. 작은 변경을 배포하고, 로그를 보고, 다시 조정하는 방식이 안정적입니다.

좋은 AI 서비스는 한 번에 완성되지 않습니다. 작은 기능을 배포하고, 기록하고, 고치고, 다시 배포하는 흐름에서 완성됩니다. 이 프로젝트의 목표는 OpenAI API를 호출하는 데서 끝나지 않습니다. 입력을 설계하고, 출력을 통제하고, 저장하고, 운영하며, 사용자가 실제로 쓰는 AI 기능을 만드는 것입니다.

책 목록

처음 만나는 AI API 개발: OpenAI API로 서비스 기능 만들기

전체 목차 보기

이 노트는 보도·비평·교육·연구 목적으로 작성되었습니다. 저작권 문의가 있으시면 에서 알려주세요.

틸노트는 사용자가 AI를 활용해 노트를 쉽게 작성하거나 편집할 수 있는 서비스입니다.

AI 스퀘어 단톡방에 함께해요

AI 활용과 틸노트 사용 팁을 나누는 오픈채팅방입니다. 입장 비밀번호는 tilnote입니다.

참여하기