Skip to main content
Summary

모델 호출과 AI 기능은 다르다

AI API를 처음 쓰면 대부분 먼저 "질문을 보내고 답을 받는 코드"를 작성합니다. 이것은 중요한 시작입니다. 하지만 실제 서비스에서 필요한 것은 단순한 호출이 아닙니다.

서비스의 AI 기능은 사용자의 입력을 받고, 그 입력이 적절한지 확인하고, 목적에 맞게 프롬프트를 만들고, 모델을 호출한 뒤, 응답을 화면이나 데이터베이스에 맞게 가공하는 전체 흐름입니다.

간단히 표현하면 다음과 같습니다.

사용자 입력 → 클라이언트 화면 → 서버 검증 → 프롬프트 구성
→ AI API 호출 → 응답 가공 → 저장 또는 화면 출력

이 흐름 중 하나라도 빠지면 기능은 불안정해집니다. 예를 들어 사용자가 너무 긴 글을 입력하면 비용과 응답 시간이 늘어납니다. 모델의 답을 그대로 화면에 보여 주면 형식이 매번 달라질 수 있습니다. API Key를 브라우저에 두면 누구나 훔쳐 쓸 수 있습니다.

AI 기능 개발은 결국 모델을 잘 부르는 일이 아니라, 모델이 서비스 안에서 안전하고 예측 가능하게 일하도록 만드는 일입니다.

AI 모델을 서비스에 붙인다는 것

네 가지 기본 요소: 모델, 프롬프트, 입력값, 출력값

AI API 기능을 설계할 때는 네 가지를 나누어 생각해야 합니다.

첫째, 모델은 실제로 답을 생성하는 엔진입니다. 빠른 모델을 쓸지, 더 정확한 모델을 쓸지, 긴 문서를 처리할 수 있는 모델을 쓸지 결정해야 합니다.

둘째, 프롬프트는 모델에게 주는 작업 지시문입니다. "이 글을 요약해 줘"보다 "핵심 주장 3개와 실행할 일 2개로 나누어 요약해 줘"가 더 좋은 지시입니다.

셋째, 입력값은 사용자가 제공하는 데이터입니다. 글쓰기 도우미라면 주제, 독자, 톤, 초안이 입력값이 됩니다. 요약 기능이라면 원문과 원하는 길이가 입력값입니다.

넷째, 출력값은 서비스가 사용할 결과입니다. 사용자가 읽을 자연어 문장일 수도 있고, 데이터베이스에 저장할 JSON일 수도 있습니다.

예를 들어 "블로그 제목 추천" 기능을 만든다고 해 봅시다. 입력값은 글의 주제와 대상 독자입니다. 프롬프트는 "클릭을 유도하되 과장하지 않는 제목 5개를 만들어라"가 됩니다. 모델은 이 작업을 수행하고, 출력값은 제목 목록입니다. 이 목록을 화면에 보여 주거나 저장할 수 있습니다.

챗봇과 목적형 AI 기능의 차이

챗봇은 사용자가 자유롭게 질문하고 모델이 대화하듯 답하는 형태입니다. 범위가 넓고 유연합니다. 반면 목적형 AI 기능은 정해진 일을 수행합니다. 요약, 번역, 문체 변환, 추천, 분류, 태그 생성이 여기에 해당합니다.

챗봇은 "무엇이든 물어보세요"에 가깝습니다. 목적형 기능은 "이 글을 5줄로 요약하세요"처럼 결과의 형태가 분명합니다.

서비스에서는 목적형 기능이 더 다루기 쉬운 경우가 많습니다. 입력 화면을 설계할 수 있고, 출력 형식을 제한할 수 있으며, 실패 여부도 비교적 쉽게 판단할 수 있기 때문입니다. 예를 들어 고객 문의를 "환불, 배송, 계정, 기타" 중 하나로 분류하는 기능은 답이 정해져 있습니다. 이런 기능은 모델의 창의성보다 일관성이 더 중요합니다.

따라서 AI 기능을 만들 때는 먼저 질문해야 합니다.

  • 사용자가 무엇을 입력하는가?

  • 모델이 어떤 작업을 해야 하는가?

  • 결과는 어떤 형식이어야 하는가?

  • 이 결과를 화면에 보여 줄 것인가, 저장할 것인가?

이 질문에 답하면 챗봇이 필요한지, 목적형 기능이 필요한지 분명해집니다.

왜 서버에서 호출해야 할까

AI API는 반드시 서버에서 호출하는 구조로 설계해야 합니다. 가장 큰 이유는 API Key 보호입니다. API Key는 서비스가 AI API를 사용할 수 있게 해 주는 비밀 열쇠입니다. 이 값을 브라우저 코드에 넣으면 사용자에게 노출될 수 있습니다.

서버에서 호출해야 하는 이유는 보안만이 아닙니다. 서버는 요청을 검증할 수 있습니다. 너무 긴 입력을 막고, 로그인한 사용자만 사용하게 하고, 하루 사용량을 제한할 수 있습니다.

또한 서버는 로그를 남길 수 있습니다. 어떤 기능이 자주 쓰이는지, 실패가 얼마나 발생하는지, 평균 응답 시간이 얼마인지 기록해야 운영이 가능합니다. 비용 관리도 서버에서 해야 합니다. 사용자별 사용량을 추적하지 못하면 예상보다 큰 비용이 발생할 수 있습니다.

즉, 브라우저는 입력을 받고 결과를 보여 주는 역할에 집중합니다. 모델 호출, 검증, 비용 관리, 로그 수집은 서버가 담당해야 합니다.

기본 아키텍처 그리기

이 책에서는 Next.js와 Node.js를 기준으로 AI 기능을 만들어 갑니다. 기본 구조는 다음과 같습니다.

클라이언트 화면
  ↓ 사용자 입력
Next.js 서버 또는 Node.js 서버
  ↓ 입력 검증, 프롬프트 구성
AI API
  ↓ 모델 응답
서버
  ↓ 응답 가공, 로그 저장, DB 저장
클라이언트 화면

여기에 데이터베이스가 연결되면 기능은 더 실용적이 됩니다. 사용자가 만든 결과를 저장할 수 있고, 이전 요청을 다시 불러올 수 있으며, 사용량도 기록할 수 있습니다.

예를 들어 AI 글쓰기 도우미라면 클라이언트는 주제와 톤을 입력받습니다. 서버는 입력 길이를 확인하고 프롬프트를 만듭니다. AI API는 초안을 생성합니다. 서버는 결과를 정리해 데이터베이스에 저장하고, 클라이언트는 글을 화면에 보여 줍니다.

이것이 AI API 개발의 기본 지도입니다. 앞으로의 장에서는 이 지도를 따라 API Key 설정, 모델 호출, 스트리밍, 구조화 응답, 도구 호출, 비용 최적화, 안정성 개선을 하나씩 구현해 볼 것입니다.

책 목록

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

전체 목차 보기

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

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

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

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

참여하기