Symfony AI 1.0: PHP의 네이티브 AI 시대가 시작됩니다

발행: (2025년 12월 29일 오후 10:09 GMT+9)
14 min read
원문: Dev.to

Source: Dev.to

오랫동안 AI 개발은 “파이썬이 장악하고 있다”는 느낌이었습니다. PHP 개발자가 LLM을 통합하고 싶을 때는 각 제공자에게 직접 HTTP 호출을 구현하거나, 파편화된 서드‑파티 패키지에 의존해야 했습니다. 이는 통합된 표준이 없고, 장기적인 유지보수가 고통스럽다는 뜻이었습니다.

Symfony AI overview

Symfony AI 1.0과 함께라면, PHP 생태계가 드디어 네이티브하고, 전문적이며, 모듈식인 AI 스택을 얻게 됩니다. 이것은 단순한 API 클라이언트가 아니라, AI 기능을 애플리케이션 아키텍처에 깊이 통합하는 프레임워크입니다.

Symfony AI가 중요한 이유

Symfony AI는 AI를 PHP에 일류 방식으로 통합하는 표준화된 컴포넌트 세트를 제공합니다.

Symfony AI 구성 요소

AI를 직접 “붙이는” 작업을 멈추고 다른 핵심 서비스와 마찬가지로 AI 기능을 설계하기 시작합니다.

  • 공급자를 교체하고, 모델을 변경하며, 비즈니스 로직을 다시 작성하지 않고도 기능을 확장할 수 있습니다.

핵심적으로, Symfony AI는 세 가지 주요 컴포넌트를 중심으로 구축됩니다:

  1. Platform – AI 공급자에 대한 통합 인터페이스.
  2. Agent – 추론하고 행동할 수 있는 지능형 에이전트.
  3. Store – RAG 및 의미 검색을 위한 검색 레이어.

플랫폼 구성 요소: 하나의 추상화, 다중 제공자

플랫폼 구성 요소는 OpenAI, Anthropic(Claude), Google Gemini, Azure, Mistral, Ollama와 같은 주요 AI 플랫폼에 대한 통합 API를 제공합니다.

실제로 의미하는 바

  • AI 통합을 한 번만 작성하고 다중 백엔드를 대상으로 합니다.
  • 로컬 개발에서는 자체 호스팅 모델(예: Ollama)을 사용할 수 있고, 프로덕션에서는 설정만으로 GPT‑4 또는 Claude 3.5로 전환할 수 있습니다.
  • 각 제공자마다 약간씩 다른 요청/응답 형식을 다루는 번거로움이 사라집니다.

이는 빠르게 프로토타입을 만들고 나중에 스택을 견고하게 구축해야 하는 팀에게 특히 강력합니다.

에이전트 컴포넌트: 실제로 행동할 수 있는 AI

전통적인 PHP에서 LLM 사용은 종종 “채팅‑형식 생성”에 머무릅니다. 에이전트 컴포넌트는 모델을 추론하고, 도구를 호출하며, 워크플로를 수행할 수 있는 에이전트로 전환합니다.

주요 기능

  • 도구 호출 – PHP 메서드를 도구로 정의합니다(예: DB 쿼리, 외부 API). 에이전트는 사용자 의도에 따라 언제 호출할지 스스로 결정합니다.
  • 다단계 추론 – 에이전트는 여러 호출 및 도구 사용을 조정하여 복잡한 작업을 완수합니다.
  • 조합 가능한 행동 – 비즈니스 제약을 에이전트의 시스템 프롬프트와 도구 계층에 포함시켜 관리합니다.

“LLM을 블랙 박스로 보는” 대신, 아키텍처에 통합된 “제어된 작업자” 로서의 LLM을 얻을 수 있습니다.

스토어 컴포넌트: 네이티브 RAG 지원

모델은 현실에 뒤처지기 쉽고, 비즈니스 데이터는 GPT 안에 존재하지 않습니다. 스토어 컴포넌트RAG(검색‑증강 생성) 시나리오를 위해 벡터 데이터베이스와 검색을 추상화합니다.

  • ChromaDB, Pinecone, Weaviate, MongoDB Atlas 등과 같은 벡터 스토어를 지원합니다.
  • 문서, 지식 베이스, 데이터베이스 콘텐츠를 인덱싱할 수 있습니다.
  • 관련 콘텐츠를 모델에 다시 공급하여 답변이 귀하의 데이터에 기반하도록 합니다.

이는 지식 봇, 내부 문서 어시스턴트, 도메인‑특화 코파일럿의 핵심 기반이 됩니다.

구조화된 출력: JSON, 단순 텍스트가 아님

LLM은 자연어를 좋아하고, 백엔드는 예측 가능한 구조를 선호합니다. Symfony AI를 사용하면 PHP 클래스 또는 배열 스키마를 정의하고 모델에게 해당 타입에 직접 매핑되는 구조화된 JSON을 반환하도록 요청할 수 있습니다.

장점

  • 응답 형태에 대한 더 강력한 보장.
  • 검증 및 직렬화가 간단함.
  • 타입이 지정된 데이터를 기대하는 프론트‑엔드 및 워크플로와의 통합이 쉬움.

레시피, 설정 파일, 혹은 “단순 텍스트”만으로는 부족한 도메인 객체 등에 활용하세요.

Real‑World Demos: From Chat to Multimodal

The Symfony AI repository ships with demos that showcase how these pieces work together in real apps.

Demo gallery

예시 포함

  • YouTube Transcript Bot – 전형적인 RAG 애플리케이션; 비디오의 트랜스크립트를 가져와 사용자가 내용에 대해 질문할 수 있게 함.
  • Recipe Bot – 구조화된 출력을 사용해 레시피를 데이터(재료, 단계) 형태로 반환하고, 자유 텍스트가 아닌 형태로 제공.
  • Wikipedia Research Bot – 도구를 활용해 에이전트가 실시간으로 Wikipedia를 읽고 기본 학습 범위를 넘어선 답변을 제공.
  • Smart Image Cropping – GPT‑4o와 같은 멀티모달 모델을 이용해 이미지 내 피사체를 감지하고 잘라낼 영역을 제안.

이 예시들은 단순한 코드 조각이 아니라 실제 프로덕션 기능을 위한 템플릿입니다.

시작하기: Symfony AI 설치 및 구성

Symfony AI를 기존 Symfony 프로젝트에 추가하는 것은 의도적으로 간단합니다.

1. 번들 설치

composer require symfony/ai-bundle

2. 플랫폼 구성 (OpenAI 예시)

# config/packages/ai.yaml
ai:
    platform:
        openai:
            api_key: '%env(OPENAI_API_KEY)%'
    agent:
        default:
            model: 'gpt-4o-mini' # default model

3. 서비스에서 에이전트 사용

agent = $agent;
    }

    public function generateAnswer(string $prompt): AgentResponse
    {
        return $this->agent->run($prompt);
    }
}

이것으로 끝입니다! 이제 도구, 스토어 및 맞춤형 에이전트로 확장할 수 있는 완전한 AI 스택을 갖추었습니다. 즐거운 코딩 되세요!

use Symfony\AI\Platform\Message\Message;
use Symfony\AI\Platform\Message\MessageBag;

public function chat(AgentInterface $agent): string
{
    $messages = new MessageBag(
        Message::forSystem('你是一个专业的 PHP 顾问。'),
        Message::ofUser('如何优化数组遍历性能?')
    );

    return $agent->call($messages)->getContent();
}

The Environment Challenge: PHP + AI Is Not Just Code

코딩 모델 자체는 깔끔하지만, 최신 AI 기반 PHP 애플리케이션은 인프라 요구사항을 동반합니다:

  • Symfony AI는 일반적으로 PHP 8.2+를 기대하며(일부 기능은 8.4+에서 최적).
  • intl, mbstring 등과 같은 확장 모듈이 활성화돼 있어야 합니다.
  • RAG와 웹훅은 로컬 머신에서도 콜백 및 엄격한 API를 위해 HTTPS가 필요합니다.

PHP 버전, 확장 모듈, TLS 설정을 머신 및 팀원마다 수동으로 관리하면 금세 병목이 됩니다.

ServBay를 사용한 무드라마 로컬 AI 환경 구축

팀이 인프라가 아니라 AI 로직에 집중할 수 있도록 ServBay는 PHP 및 기타 스택을 위한 전체 웹‑개발 환경 관리 레이어 역할을 합니다.

번거로움 없는 다중 버전 PHP

Symfony AI는 최신 PHP 버전을 목표로 하지만, 많은 팀이 아직 오래된 프로젝트를 유지하고 있습니다.

  • ServBay는 PHP 5.x부터 8.5까지 지원하며 다중 버전 동시 존재를 제공합니다.
  • 프로젝트마다 PHP 버전을 지정할 수 있어 레거시 앱과 최신 앱을 전역 스위치 없이 나란히 실행할 수 있습니다.
  • 수동 컴파일이나 직접 설정해야 하는 커스텀 FPM 풀은 필요 없습니다.

ServBay multi‑version support

기본 제공되는 의존성 및 확장 모듈

누락된 모듈을 찾아 헤매는 대신, ServBay는 다음을 기본으로 제공합니다:

  • Composer 내장.
  • 프레임워크와 AI 라이브러리에서 일반적으로 요구하는 PHP 확장 모듈이 사전 설정되어 있음.

따라서 composer require symfony/ai-bundle 은 디버깅 마라톤이 아닌 한 줄 명령으로 끝납니다.

자동 로컬 HTTPS

RAG 웹훅, OAuth 흐름, 일부 AI 플랫폼은 로컬 환경에서도 HTTPS를 요구합니다.

ServBay는 웹‑개발 환경 관리 기능의 일환으로 로컬 SSL 인증서를 자동으로 생성하고 신뢰하도록 설정합니다.
OpenSSL 명령을 직접 실행하거나 OS 신뢰 저장소를 조정할 필요가 없습니다.

  • 콜백 및 보안 API를 로컬 머신에서 테스트할 때 특히 유용합니다.

일관된 팀 환경

ServBay가 PHP, 웹 서버, 데이터베이스를 일관된 GUI와 설정 모델 뒤에 추상화하기 때문에 macOS 또는 Windows를 사용하는 팀도 다음을 공유할 수 있습니다:

  • 동일한 PHP 버전.
  • 동일한 데이터베이스 스택.
  • 동일한 TLS 동작 및 도메인 매핑.

“내 머신에서는 동작한다”는 말을 줄이고, “모두의 머신에서 동작한다”는 말을 늘릴 수 있습니다.

API 키(OPENAI_API_KEY 등)를 위한 환경 변수 설정이 필요할 경우, Symfony의 .env 파일이나 OS 환경 변수를 그대로 사용할 수 있지만, 매번 PHP/런타임 연결을 직접 다루는 번거로움은 없습니다.

최종 생각

Symfony AI는 PHP가 네이티브 AI 개발 분야에 완전히 진입했음을 알립니다. Platform, Agent, Store, 그리고 구조화된 출력 덕분에 AI를 애플리케이션의 일급 구성 요소처럼 다룰 수 있으며, 어색한 사이드카가 아닙니다.

여기에 ServBay와 같은 강력한 웹‑개발 환경 관리 솔루션을 결합하면—PHP 버전, 확장, TLS, 서비스 등을 문제 없이 조정할 수 있는—PHP 개발자들이 이미 사랑하는 언어와 프레임워크로 지능형 앱을 구축할 수 있는 스택을 얻게 됩니다.

이제 질문은 “PHP가 AI를 할 수 있을까?” 가 아니라 “PHP가 네이티브하게 AI를 할 수 있게 된 지금, 무엇을 만들 건가요?” 가 됩니다.

Back to Blog

관련 글

더 보기 »