AI.zip
  • AI 모델
  • 방법론
  • AI 서비스
  • 가격 비교
  • 블로그

AI.zip

AI 모델, 서비스, 방법론을 큐레이션하는 에디토리얼 플랫폼

탐색

  • AI 모델
  • AI 서비스
  • 방법론
  • 블로그

커뮤니티

  • 소개
  • 디스코드 참여
  • 문의

법적고지

  • 이용약관
  • 개인정보처리방침

© 2026 ai.zip. All rights reserved.

Discord 커뮤니티
모델OpenAI: GPT-4o

GPT-4o

OpenAILMM시각-언어 (Vision-Language)오디오-언어 (Audio-Language)통합 모달리티 (Any-to-Any)128K 토큰
2024년 5월 13일Proprietary

OpenAI가 2024년 5월 13일 출시한 멀티모달 모델. 'o'는 'omni'를 의미하며, 텍스트와 이미지를 동시에 처리하는 통합 모델이다. ChatGPT의 기본 모델로 2년간 운영되며 전 세계에서 가장 많이 사용된 프리미엄 AI 모델이 되었다. 2026년 4월 ChatGPT에서 은퇴했지만, API는 계속 사용 가능하며 사용자들의 강한 애착을 받는 독특한 위치의 모델이다.

주요 특징

GPT-5보다 사랑받은 모델 - GPT-4o의 가장 특이한 위치는 후속 모델인 GPT-5 출시 후 더 주목받았다는 점이다. GPT-5 출시 직후 Reddit에서 "horrible"이라는 4,600 좋아요 게시글이 올라왔고, 사용자들은 GPT-4o가 더 인간적이고 매력적이라고 평가했다. 850건의 이중 블라인드 테스트에서 GPT-4o가 GPT-5보다 선호되었다(48% vs 43%). 결국 OpenAI는 24시간 만에 GPT-4o를 복원하는 전례 없는 조치를 취했다. "GPT-4.5가 진심으로 나와 대화했는데, GPT-5는 기업적이고 건조한 한 문장만 던진다"는 사용자 반응이 대표적이다.

네이티브 멀티모달 - 텍스트와 이미지를 하나의 모델에서 처리. MMBench 81.8, AI2D 84.7, RealWorldQA 76.5로 비전 벤치마크에서 강력한 성능. GPT-4 대비 2배 빠른 응답 속도를 제공한다.

한국어 토큰 효율 혁신 - 한국어 토큰 사용을 70% 개선(45개 -> 27개 토큰). 비영어권 언어 성능을 본격적으로 향상시킨 첫 GPT 모델이다. 한국어 뉘앙스 파악 능력이 크게 향상되었다는 평가를 받았다.

빠른 속도 - 136.7 tok/s로 현세대 프론티어 모델(Opus 4.6: 43 tok/s)보다도 빠르다. 대량 처리와 실시간 응답에 적합.

GPT-4o 주요 특징

할 수 있는 것

범용 대화 AI

2년간 ChatGPT의 기본 모델로 운영되며 검증된 안정성. 일상 대화, 질의응답, 글쓰기 보조, 브레인스토밍에서 자연스러운 톤과 인간적인 성격이 강점이다. 커뮤니티 평가: "벤치마크는 GPT-5가 높지만, 실제 대화 품질은 GPT-4o가 낫다."

멀티모달 분석

이미지 기반 질의응답, 차트 분석, 문서 OCR, 제품 이미지 분류 등. MMMU 69.9%, ScienceQA 90.1%로 시각적 이해와 과학 문제 풀이에서 실용적인 수준.

대량 프로덕션 워크플로우

2.50/2.50/2.50/10의 가격과 136.7 tok/s 속도로 대량 처리에 적합. 콘텐츠 생성, 이메일 분류, 데이터 추출 등 "충분히 좋은 품질을 빠르게" 처리하는 워크플로우의 표준.

안 되는 것

  • 현세대 프론티어 모델과의 격차: MMLU-PRO 74.8%(Gemini 3.1 Pro: 90.5%), SWE-bench 미지원. 고급 추론, 에이전트 코딩에서는 세대 차이가 명확하다.
  • 128K 컨텍스트 한계: 64K 이상에서 검색 정확도 급락(94% -> 23%). 현세대의 1M 컨텍스트와 비교 불가.
  • 2023년 10월 지식 컷오프: 2024년 이후 정보를 모른다. 현세대 모델(2025년 지식)과 1년 이상 격차.
  • ChatGPT 은퇴: 2026년 4월 3일부로 ChatGPT에서 서비스 종료. API만 사용 가능.

성능

벤치마크 결과

벤치마크점수카테고리
MMLU85.7%지식
MMLU-PRO74.8%지식
HumanEval90.2%코딩
IFEval81.0%지시 따르기
MMMU69.9%멀티모달
MMBench81.8%멀티모달
ScienceQA90.1%과학
AI2D84.7%비전
RealWorldQA76.5%비전

벤치마크는 이런데 실제로는

"성격"이 가장 큰 장점이다. 벤치마크 수치로는 설명이 안 되는 부분이다. GPT-5가 모든 벤치마크에서 앞서지만, 실사용자 850명 블라인드 테스트에서 GPT-4o가 더 선호되었다. 창의적 글쓰기에서 감각적 디테일, 긴장감, 분위기가 살아 있다는 평가. GPT-5는 "선언적 문장 3개와 일반적 내용"을 내놓는다는 비교.

코딩은 실용적이지만 최신 모델에 뒤진다. HumanEval 90.2%로 코드 생성은 강하지만, SWE-bench 같은 실무 코딩에서는 현세대 모델(80%+)과 격차가 크다.

속도는 여전히 강점이다. 136.7 tok/s는 Opus 4.6(43 tok/s)의 3배. 대량 처리나 실시간 응답이 중요한 서비스에서 현세대 프리미엄 모델보다 유리할 수 있다.

벤치마크 비교

사용 방법

API

OpenAI API, Azure OpenAI에서 사용 가능. model ID는 gpt-4o이다.

python
from openai import OpenAI

client = OpenAI()
response = client.chat.completions.create(
    model="gpt-4o",
    messages=[{"role": "user", "content": "..."}]
)

이미지 입력도 지원한다(URL 또는 base64).

ChatGPT

2026년 4월 3일부로 ChatGPT에서 서비스 종료. GPT-5 시리즈로 마이그레이션 필요.

가격

API 가격 (1M 토큰당)

티어InputOutput비고
Standard$2.50$10.002025년 10월 인하 (5−>5->5−>2.50)
Cached Input$1.25-50% 절감
Batch$1.25$5.0050% 절감

가성비 평가

2.50/2.50/2.50/10은 현세대 기준으로 중간 가격대다. GPT-5.4(3/3/3/15)보다 약간 싸고, Gemini 3.1 Pro(2/2/2/12)와 비슷하지만 성능은 한 세대 뒤진다. "레거시 모델 가격으로 레거시 성능"이라는 평가가 맞지만, 속도(136 tok/s)와 성격(인간적 톤)이라는 고유 가치가 있어서 일부 사용 사례에서는 여전히 합리적이다. GPT-4o mini(0.15/0.15/0.15/0.60)가 비용 민감 워크플로우에서는 더 나은 선택.

가격 비교

기술 사양

항목사양
ProviderOpenAI
ArchitectureTransformer
ModalityText + Image (입력), Text (출력)
Context Window128,000 tokens
Max Output16,384 tokens
Knowledge Cutoff2023년 10월
Release Date2024년 5월 13일
Parameters비공개
LicenseProprietary
API Speed~137 tok/s
StatusLegacy (ChatGPT 은퇴, API 유지)
SuccessorGPT-5.4

기술 사양

References

  1. Hello GPT-4o - OpenAI - 공식 발표 블로그
  2. GPT-4o Pricing - OpenAI - 공식 가격 페이지
  3. Everyone Is Wrong About Why GPT-5 Feels Worse Than GPT-4o - RoboRhythms - GPT-5 vs 4o 논란 분석
  4. GPT-4o Retired: What Replaced It - NxCode - 은퇴 및 마이그레이션 가이드
  5. GPT-4o - Artificial Analysis - 독립 성능 분석

스펙

컨텍스트 윈도우

128K 토큰

라이선스

Proprietary

출시일

2024년 5월 13일

학습 마감일

2023년 10월 31일

가성비 지수

0.7

API 가격 (혼합)

입력 $2.50/1M

조회수

0

API 가격 (USD 기준)

입력 (Prompt)

$2.50 / 1M 토큰

출력 (Completion)

$10.00 / 1M 토큰

용도별 성능

태스크 관련 벤치마크 평균 점수

지시따르기최강

81.0

복잡한 지시사항 이해 및 수행

멀티모달

75.2

이미지, 비디오 등 멀티모달 이해

일반지식

72.6

다양한 분야 지식 및 이해

코딩

61.7

코드 생성, 버그 수정, 소프트웨어 엔지니어링

Provider

OpenAI

OpenAI의 다른 모델

OpenAI: GPT-3.5 TurboOpenAI: o4 MiniOpenAI: o3 MiniOpenAI: GPT-4.1 MiniOpenAI: GPT-4

분류

시각-언어 (Vision-Language)오디오-언어 (Audio-Language)통합 모달리티 (Any-to-Any)Multimodal TransformerLMM

성능 평가

꼭지점 클릭 → 벤치마크 행 이동

벤치마크

유사 모델 비교

모델ProviderLLM 점수GPQA·MMLU·MATH·IFEval·HumanEvalAgentic 점수SWE·τ-bench·OSWorld·GAIA
GPT-4oOpenAI66.2-
Nova Pro 1.0Amazon68.4-
Gemma 4Google86.2-
Claude 3 HaikuAnthropic46.5-
Nova Premier 1.0Amazon73.2

관련 블로그 글

튜토리얼2026년 4월 6일

NotebookLM + Genspark로 PPT 10분 만들기: 직장인 발표자료 완전 가이드

## 3 0분 PPT 작업을 10분으로 — 이제는 AI가 한다 발표자료 만들기는 직장인이 가장 많은 시간을 쏟는 작업 중 하나입니다. 내용을 조사하고, 목차를 잡고, 디자인까지 신경 쓰다 보면 반나절이 금방 지나갑니다. 하지만 **구글 NotebookLM**과 **Genspark**를 조합하면 이 과정이 완전히 달라집니다. 이 가이드에서는 코딩이나 기술 지식 없이, **오늘 당장** 쓸 수 있는 실전 방법을 알려드립니다. --- ## NotebookLM이란? — AI가 내 자료를 읽어주는 비서 **NotebookLM**은 구글이 만든 AI 기반 노트 도구입니다. 내가 올린 문서(PDF, 구글 문서, 유튜브 링크 등)를 AI가 읽고 분석해서 원하는 정보를 바로 뽑아줍니다. **핵심 기능** | 기능 | 설명 | |---|---| | 자료 업로드 | PDF, Word, 구글독스, 유튜브, 웹페이지 등 | | AI 요약 | 긴 문서를 핵심만 추출 | | 질문 응답 | 내가 원하는 정보만 골라서 답변 | | 오디오 개요 | 자료를 팟캐스트처럼 대화 형식으로 요약 | **무료로 사용 가능**: notebooklm.google.com — 구글 계정만 있으면 됩니다. **활용 예시** 경쟁사 분석 보고서 3개를 올리고 "각 회사의 강점과 약점을 표로 정리해줘"라고 하면, NotebookLM이 세 문서를 동시에 읽고 비교 분석 결과를 바로 줍니다. 직접 읽으면 1시간, AI와 함께하면 5분입니다. --- ## Genspark이란? — 내용을 입력하면 슬라이드가 완성 **Genspark**는 AI가 자동으로 아름다운 프레젠테이션 슬라이드를 만들어주는 서비스입니다. 주제나 내용을 입력하면 디자인까지 완성된 PPT가 생성됩니다. **Genspark의 특징** - 주제만 입력하면 10~20장 슬라이드 자동 생성 - 다양한 디자인 테마 제공 (비즈니스, 미니멀, 컬러풀 등) - 내용 수정, 슬라이드 추가/삭제 자유롭게 가능 - PowerPoint(.pptx), PDF로 다운로드 지원 - **무료 플랜 있음**: genspark.ai > 💡 Genspark는 단순한 PPT 도구가 아니라 AI 에이전트입니다. 주제를 말하면 인터넷 검색까지 해서 최신 내용으로 슬라이드를 채워줍니다. --- ## 1 0분 PPT — 3단계 실전 워크플로우 두 도구를 조합하면 다음과 같은 흐름으로 작업할 수 있습니다. ### 1단계: NotebookLM에 자료 올리기 (3분) 발표에 필요한 자료를 NotebookLM에 업로드합니다. - 참고 보고서, 데이터 파일, 뉴스 기사 등 모두 OK - 내부 문서라면 PDF로 변환해서 업로드 - 유튜브 영상이나 웹사이트 링크도 직접 입력 가능 업로드 후 다음 질문을 입력합니다: > "이 자료들을 바탕으로 발표자료의 핵심 포인트 5가지를 뽑아줘. 각 포인트별로 설명과 수치 데이터도 포함해서." ### 2단계: 목차와 스크립트 정리 (2분) NotebookLM이 핵심 내용을 정리해주면, 이를 복사해서 다음 프롬프트와 함께 붙여넣습니다: > "위 내용을 발표자료 형식으로 정리해줘. 슬라이드 제목과 각 슬라이드 내용을 구분해서. 총 10장 분량으로." ChatGPT, Claude 어디서든 이 작업이 가능합니다. ### 3단계: Genspark로 슬라이드 생성 (5분) Genspark에 접속해서: 1. **"Slides"** 기능 선택 2. 2단계에서 정리한 목차와 내용을 붙여넣기 3. 디자인 테마 선택 (비즈니스 발표라면 "Professional" 추천) 4. 생성 클릭 → 약 30초 후 완성된 슬라이드 확인 5. 필요한 부분 수정 후 다운로드 --- ## 실전 예시: 마케팅 전략 보고서 만들기 **상황**: 팀장이 내일까지 경쟁사 분석 + 내년 전략 발표자료 준비 요청 **기존 방식**: 경쟁사 홈페이지, 보고서, 뉴스 하나하나 읽고 → 메모하고 → PPT 슬라이드 직접 만들고 → 디자인 수정 = **3~4시간** **AI 활용 방식**: 1. 경쟁사 IR 자료, 최신 뉴스 기사 PDF 5개를 NotebookLM에 업로드 2. "경쟁사 세 곳의 2025년 전략 핵심을 비교 분석해줘. 강점/약점/기회로 정리해줘." → **5분** 3. 분석 결과를 Genspark에 붙여넣고 슬라이드 생성 → **5분** 4. 슬라이드 내용 확인 및 회사 로고 추가 → **5분** 총 소요 시간: **15분**. 디자인 완성도까지 높은 수준의 발표자료가 나옵니다. --- ## 더 잘 활용하는 팁 **NotebookLM 팁** - 자료를 많이 올릴수록 분석 품질이 높아집니다 (최대 50개 소스) - 오디오 개요 기능으로 출퇴근길에 팟캐스트처럼 들으면서 내용 파악 가능 - 여러 프로젝트를 노트북으로 분리해서 관리하면 효율적 **Genspark 팁** - 슬라이드 생성 후 "더 간결하게", "그래프 추가해줘" 식으로 AI와 대화하며 수정 가능 - 회사 색상이나 폰트에 맞게 수동 수정도 쉽게 가능 - 발표 노트(스피커 노트)도 자동 생성됨 — 발표 연습에 활용 **두 도구 조합 팁** - 정기 보고서라면 NotebookLM 노트북을 계속 업데이트해두면 매번 새로 분석할 필요 없음 - 영어 자료가 많다면 NotebookLM에서 한국어 요약 요청 후 Genspark에 붙여넣기 --- ## 마치며 NotebookLM과 Genspark는 발표자료 준비의 두 가지 핵심 병목 — **자료 분석**과 **슬라이드 디자인** — 을 AI가 대신 해결해주는 도구입니다. 처음에는 어색할 수 있지만 한 번 해보면 "왜 이제야 알았지"라는 생각이 들 겁니다. 오늘 퇴근 전에 한 번 써보세요. 내일 발표자료 준비가 완전히 달라집니다.

이전글

OpenAI: GPT-4.1 Mini

다음글

OpenAI: GPT-4o-mini

댓글

0개

댓글을 작성하려면

로그인

해주세요

사용하는 서비스

Grammarly

Text Generation (텍스트 생성)

Gamma

Text Generation (텍스트 생성)

Elicit

Summarization (문서 요약)

관련 기사

NotebookLM + Genspark로 PPT 10분 만들기: 직장인 발표자료 완전 가이드

TUTORIAL

AI 기반 시맨틱 검색 엔진 구축하기: 하이브리드 검색 완전 가이드

TUTORIAL

멀티모달 AI 개발 가이드: 이미지+텍스트 분석 실전 구현

TUTORIAL
수학/추론

57.3

수학, 과학, 논리적 추론

카테고리
이 모델
전체 평균
전체 최고
단위
AI2D84.781.393.9%
GPQALLM46.064.094.3%
HallusionBench54.248.964.1%
HumanEvalLLM90.286.097.6%
IFEvalLLM81.085.395.9%
MATH Lvl 5LLM68.575.599.2%
MathVista62.956.080.9%
MMBench81.874.593.7%
MMLU85.784.298.0%
MMLU-PROLLM72.673.890.5%
MMMU69.971.185.0%
MMStar64.759.883.8%
MMVet75.161.683.3%
RealWorldQA76.563.076.5%
ScienceQA90.179.290.1%
SWE-bench VerifiedAgentic33.263.680.9%
-
GPT-4o-miniOpenAI62.6-
튜토리얼2026년 3월 28일

AI 기반 시맨틱 검색 엔진 구축하기: 하이브리드 검색 완전 가이드

## 키워드 검색 vs 시맨틱 검색 | 구분 | 키워드(BM25) | 시맨틱(Vector) | 하이브리드 | |------|-------------|---------------|-----------| | 검색 방식 | 단어 일치 | 의미 유사도 | 둘 다 | | "파이썬 배우기" → "Python 강좌" | ❌ 불일치 | ✅ 유사 | ✅ | | 정확한 키워드 검색 | ✅ 우수 | ❌ 약함 | ✅ | | 오타 처리 | ❌ 약함 | ✅ 강함 | ✅ | | 속도 | 매우 빠름 | 느림 | 중간 | --- ## 아키텍처 ```mermaid flowchart TD Query[사용자 쿼리] --> Parallel{병렬 검색} Parallel --> BM25[BM25 키워드 검색<br/>Elasticsearch] Parallel --> Vec[벡터 시맨틱 검색<br/>pgvector] BM25 --> Merge[결과 병합<br/>RRF 알고리즘] Vec --> Merge Merge --> Rerank[Cohere Rerank<br/>재정렬] Rerank --> Results[최종 검색 결과] ``` --- ## pgvector + BM25 하이브리드 검색 ```python import psycopg2 from openai import OpenAI from rank_bm25 import BM25Okapi import numpy as np client = OpenAI() class HybridSearchEngine: def __init__(self, conn): self.conn = conn self.documents = [] self.bm25 = None def add_documents(self, docs: list[dict]): self.documents = docs # BM25 인덱스 구축 tokenized = [doc["content"].split() for doc in docs] self.bm25 = BM25Okapi(tokenized) # 벡터 임베딩 저장 contents = [doc["content"] for doc in docs] response = client.embeddings.create( input=contents, model="text-embedding-3-small" ) with self.conn.cursor() as cur: for i, (doc, emb_data) in enumerate(zip(docs, response.data)): cur.execute( '''INSERT INTO search_index (id, content, metadata, embedding) VALUES (%s, %s, %s, %s) ON CONFLICT (id) DO UPDATE SET content=EXCLUDED.content, embedding=EXCLUDED.embedding''', (doc["id"], doc["content"], doc.get("metadata", {}), emb_data.embedding) ) self.conn.commit() def search(self, query: str, top_k: int = 10, bm25_weight: float = 0.3) -> list: # 1. BM25 점수 bm25_scores = self.bm25.get_scores(query.split()) bm25_scores = (bm25_scores - bm25_scores.min()) / (bm25_scores.max() - bm25_scores.min() + 1e-8) # 2. 벡터 유사도 query_vec = client.embeddings.create( input=[query], model="text-embedding-3-small" ).data[0].embedding with self.conn.cursor() as cur: cur.execute( '''SELECT id, 1 - (embedding <=> %s::vector) AS score FROM search_index ORDER BY embedding <=> %s::vector LIMIT %s''', (query_vec, query_vec, top_k * 2) ) vec_results = {row[0]: row[1] for row in cur.fetchall()} # 3. 점수 융합 (가중 합산) combined = [] for i, doc in enumerate(self.documents): vec_score = vec_results.get(doc["id"], 0) combined_score = bm25_weight * bm25_scores[i] + (1 - bm25_weight) * vec_score combined.append((doc, combined_score)) combined.sort(key=lambda x: x[1], reverse=True) return combined[:top_k] ``` --- ## RRF (Reciprocal Rank Fusion) 두 결과 목록을 더 공정하게 합치는 알고리즘: ```python def reciprocal_rank_fusion(rankings: list[list], k: int = 60) -> list: ''' rankings: 각 검색 방법의 문서 ID 순위 리스트 k: 완화 상수 (기본값 60) ''' scores = {} for ranking in rankings: for rank, doc_id in enumerate(ranking): scores[doc_id] = scores.get(doc_id, 0) + 1 / (k + rank + 1) return sorted(scores.items(), key=lambda x: x[1], reverse=True) # 사용 bm25_ranking = ["doc3", "doc1", "doc7", "doc2"] vec_ranking = ["doc1", "doc5", "doc3", "doc8"] fused = reciprocal_rank_fusion([bm25_ranking, vec_ranking]) print(fused[:3]) # [('doc3', 0.0317...), ('doc1', 0.0313...), ...] ``` --- ## Typesense: 빠른 오픈소스 대안 ```python import typesense client = typesense.Client({ "api_key": "your-api-key", "nodes": [{"host": "localhost", "port": "8108", "protocol": "http"}], "connection_timeout_seconds": 2 }) # 스키마 생성 client.collections.create({ "name": "articles", "fields": [ {"name": "id", "type": "string"}, {"name": "title", "type": "string"}, {"name": "content", "type": "string"}, {"name": "embedding", "type": "float[]", "num_dim": 1536} # 벡터 필드 ] }) # 하이브리드 검색 (키워드 + 벡터 동시) results = client.collections["articles"].documents.search({ "q": "파이썬 머신러닝", "query_by": "title,content", "vector_query": f"embedding:([{','.join(map(str, query_embedding))}], k:10)", "hybrid_search_weight": 0.7, # 벡터 검색 가중치 "per_page": 10 }) ``` --- ## Cohere Rerank으로 최종 정렬 ```python import cohere co = cohere.Client("your-api-key") def rerank_results(query: str, documents: list[str], top_n: int = 5) -> list: results = co.rerank( model="rerank-multilingual-v3.0", query=query, documents=documents, top_n=top_n, ) return [(results.results[i].index, results.results[i].relevance_score) for i in range(len(results.results))] # 하이브리드 검색 후 리랭킹 candidates = hybrid_search(query, top_k=20) doc_texts = [c["content"] for c, _ in candidates] reranked = rerank_results(query, doc_texts, top_n=5) final_results = [candidates[idx] for idx, score in reranked] ``` --- ## 검색 품질 평가 ```python # NDCG (Normalized Discounted Cumulative Gain) 계산 def ndcg_at_k(relevance_scores: list, k: int) -> float: dcg = sum(rel / np.log2(i + 2) for i, rel in enumerate(relevance_scores[:k])) ideal = sum(s / np.log2(i + 2) for i, s in enumerate(sorted(relevance_scores, reverse=True)[:k])) return dcg / ideal if ideal > 0 else 0 # A/B 테스트 프레임워크 results_a = keyword_search(query) results_b = hybrid_search(query) ndcg_a = ndcg_at_k([1 if doc in relevant_docs else 0 for doc, _ in results_a], k=5) ndcg_b = ndcg_at_k([1 if doc in relevant_docs else 0 for doc, _ in results_b], k=5) print(f"키워드 검색 NDCG@5: {ndcg_a:.4f}") print(f"하이브리드 검색 NDCG@5: {ndcg_b:.4f}") ``` 실제 서비스에서는 클릭 데이터, 체류 시간, 전환율을 오프라인 지표와 함께 측정하세요.

튜토리얼2026년 3월 28일

멀티모달 AI 개발 가이드: 이미지+텍스트 분석 실전 구현

## 멀티모달 AI란? 멀티모달 AI는 텍스트뿐 아니라 이미지, 오디오, 비디오 등 여러 형태의 데이터를 동시에 처리합니다. 이미지를 설명하거나, 차트를 해석하거나, 문서에서 정보를 추출하는 작업이 가능합니다. ```mermaid flowchart LR Image["이미지/PDF"] --> Encode[인코딩<br/>Base64/URL] Text["텍스트 질문"] --> API[멀티모달 LLM API] Encode --> API API --> GPT["GPT-4o<br/>Vision"] API --> Claude["Claude 3.5<br/>Sonnet"] API --> Gemini["Gemini 2.5<br/>Pro"] GPT --> Result["분석 결과<br/>텍스트"] Claude --> Result Gemini --> Result ``` --- ## GPT-4o Vision API ```python import base64 from openai import OpenAI from pathlib import Path client = OpenAI() def encode_image(image_path: str) -> str: with open(image_path, "rb") as f: return base64.b64encode(f.read()).decode("utf-8") def analyze_image(image_path: str, question: str) -> str: base64_image = encode_image(image_path) ext = Path(image_path).suffix.lower() media_type = {"jpg": "image/jpeg", ".jpeg": "image/jpeg", ".png": "image/png", ".gif": "image/gif", ".webp": "image/webp"}.get(ext, "image/jpeg") response = client.chat.completions.create( model="gpt-4o", messages=[{ "role": "user", "content": [ { "type": "image_url", "image_url": { "url": f"data:{media_type};base64,{base64_image}", "detail": "high" # low/high/auto } }, {"type": "text", "text": question} ] }], max_tokens=1024 ) return response.choices[0].message.content # URL로 직접 이미지 분석 def analyze_image_url(url: str, question: str) -> str: response = client.chat.completions.create( model="gpt-4o", messages=[{ "role": "user", "content": [ {"type": "image_url", "image_url": {"url": url}}, {"type": "text", "text": question} ] }] ) return response.choices[0].message.content # 사용 예시 result = analyze_image("chart.png", "이 차트에서 가장 높은 값은 무엇이고 어떤 트렌드를 보이나요?") print(result) ``` --- ## Claude Vision API Claude는 특히 긴 문서와 복잡한 레이아웃 분석에 강합니다. ```python import anthropic import base64 import httpx client = anthropic.Anthropic() def analyze_with_claude(image_path: str, question: str) -> str: with open(image_path, "rb") as f: image_data = base64.standard_b64encode(f.read()).decode("utf-8") ext = image_path.rsplit(".", 1)[-1].lower() media_type_map = {"jpg": "image/jpeg", "jpeg": "image/jpeg", "png": "image/png", "gif": "image/gif", "webp": "image/webp"} media_type = media_type_map.get(ext, "image/jpeg") response = client.messages.create( model="claude-sonnet-4-5-20251001", max_tokens=2048, messages=[{ "role": "user", "content": [ { "type": "image", "source": { "type": "base64", "media_type": media_type, "data": image_data, }, }, {"type": "text", "text": question} ] }] ) return response.content[0].text # URL에서 다운로드 후 분석 def analyze_url_with_claude(url: str, question: str) -> str: image_data = base64.standard_b64encode(httpx.get(url).content).decode("utf-8") response = client.messages.create( model="claude-sonnet-4-5-20251001", max_tokens=2048, messages=[{ "role": "user", "content": [ { "type": "image", "source": {"type": "base64", "media_type": "image/jpeg", "data": image_data}, }, {"type": "text", "text": question} ] }] ) return response.content[0].text ``` --- ## PDF 문서 분석 (멀티페이지) ```python import fitz # PyMuPDF import base64 from anthropic import Anthropic client = Anthropic() def pdf_to_images(pdf_path: str, dpi: int = 150) -> list[str]: doc = fitz.open(pdf_path) images = [] for page in doc: mat = fitz.Matrix(dpi/72, dpi/72) pix = page.get_pixmap(matrix=mat) img_bytes = pix.tobytes("png") images.append(base64.standard_b64encode(img_bytes).decode("utf-8")) doc.close() return images def analyze_pdf(pdf_path: str, question: str, max_pages: int = 10) -> str: images = pdf_to_images(pdf_path)[:max_pages] content = [] for i, img_data in enumerate(images): content.append({ "type": "image", "source": {"type": "base64", "media_type": "image/png", "data": img_data} }) content.append({"type": "text", "text": question}) response = client.messages.create( model="claude-sonnet-4-5-20251001", max_tokens=4096, messages=[{"role": "user", "content": content}] ) return response.content[0].text # 계약서 핵심 조항 추출 result = analyze_pdf( "contract.pdf", "이 계약서에서 위약금, 계약 기간, 비밀유지 조항을 표 형태로 정리해줘" ) ``` --- ## 실전 활용 사례 ### 영수증/청구서 OCR ```python def extract_invoice_data(image_path: str) -> dict: prompt = '''이 영수증/청구서에서 다음 정보를 JSON으로 추출하세요: { "vendor": "가게/회사명", "date": "날짜 (YYYY-MM-DD)", "total": 총금액(숫자), "tax": 세금(숫자), "items": [{"name": "상품명", "qty": 수량, "price": 가격}] }''' result = analyze_with_claude(image_path, prompt) import json return json.loads(result.replace("```json", "").replace("```", "").strip()) # 상품 사진 → 상세 설명 생성 def generate_product_description(image_url: str) -> str: return analyze_image_url( image_url, "이 상품의 상세 설명을 한국어로 작성해줘. 특징, 소재, 활용 방법을 포함해서 200자 이내로." ) ``` ### 차트 데이터 추출 ```python def extract_chart_data(chart_path: str) -> dict: prompt = '''이 차트에서 다음을 JSON으로 반환하세요: { "chart_type": "차트 유형", "title": "제목", "x_axis": "X축 레이블", "y_axis": "Y축 레이블", "data_points": [{"label": "라벨", "value": 값}], "trend": "전반적인 트렌드 설명" }''' import json result = analyze_with_claude(chart_path, prompt) return json.loads(result.replace("```json", "").replace("```", "").strip()) ``` --- ## 모델 멀티모달 기능 비교 | 모델 | 이미지/요청 | 해상도 | PDF | 동영상 | 강점 | |------|-----------|------|-----|------|------| | GPT-4o | 최대 20개 | 최대 2048px | ❌ (이미지 변환 필요) | ❌ | 다이어그램, UI 분석 | | Claude 3.5 Sonnet | 최대 20개 | 최대 8000px | ✅ 네이티브 | ❌ | 긴 문서, 복잡한 레이아웃 | | Gemini 2.5 Pro | 최대 16개 | 제한 없음 | ✅ | ✅ | 동영상, 초대형 문서 | | Gemini 2.5 Flash | 최대 16개 | 제한 없음 | ✅ | ✅ | 가성비 최고 | --- ## 기술 심층 분석 ### Vision 모델 내부 동작 GPT-4V/Claude Vision은 CLIP 같은 인코더로 이미지를 패치(보통 224×224px 타일) 단위로 분할하고, 각 패치를 임베딩 벡터로 변환해 텍스트 토큰과 함께 트랜스포머에 입력합니다. `detail: "high"` 모드(OpenAI)는 이미지를 더 많은 타일로 분할해 세밀한 분석이 가능하지만 토큰 비용도 증가합니다. ### 이미지 토큰 비용 - OpenAI GPT-4o `detail: "low"`: 이미지당 고정 85토큰 - OpenAI GPT-4o `detail: "high"`: 이미지 크기에 따라 170~1360토큰 - Claude: 이미지 크기/해상도에 비례 (1024×1024 ≈ 1600 tokens) ### 멀티모달 프롬프트 팁 1. **구체적 질문**: "이미지 설명해줘" 보다 "왼쪽 그래프의 2023년 매출액은?" 2. **구조화 요청**: JSON, 표, 목록 형식으로 출력 요청 3. **좌표 참조**: "왼쪽 상단의..." 처럼 공간적 참조 활용 4. **체인 분석**: 여러 이미지를 순서대로 제공해 비교 분석 --- ## Footnotes [^1]: GPT-4V 논문: [GPT-4 Technical Report](https://arxiv.org/abs/2303.08774) — OpenAI의 멀티모달 LLM 기술 개요 [^2]: Claude Vision 이미지 크기 권장사항: 최적 품질/비용을 위해 1568px 이하 권장 (Anthropic 공식 문서) [^3]: Gemini 1.5 Pro는 최대 3600개 이미지를 하나의 요청에 포함 가능 (1M 컨텍스트 활용) — 동영상 프레임 분석에 활용

비교2026년 3월 28일

OpenAI Codex 5.3 vs Claude Opus 4.6: 2026 AI 코딩 에이전트 완전 비교

## 2 026년, 개발자의 선택지는 둘로 좁혀졌다 AI 코딩 도구 시장은 빠르게 두 진영으로 재편됐습니다. OpenAI의 **Codex 5.3**과 Anthropic의 **Claude Opus 4.6**. 둘 다 터미널에서 직접 코드를 작성·수정·실행할 수 있는 AI 에이전트이지만, 철학과 강점이 확연히 다릅니다. 어떤 걸 선택해야 할까요? 이 글에서는 **실제 개발 시나리오** 기준으로 두 도구를 낱낱이 비교합니다. 벤치마크 숫자가 아닌, 매일 쓰는 작업에서 무엇이 더 나은지를 중심으로 정리했습니다. --- ## OpenAI Codex 5.3 — 속도와 실행력 **Codex 5.3**은 OpenAI가 2025년 출시한 터미널 기반 AI 코딩 에이전트의 최신 버전입니다. GPT 계열 모델을 기반으로 코드 생성·실행·디버깅을 하나의 흐름으로 처리합니다. **핵심 특징** | 항목 | 내용 | |---|---| | 기반 모델 | OpenAI o-series (최신 추론 모델) | | 실행 환경 | 샌드박스 내 코드 자동 실행 | | 주요 강점 | 빠른 코드 생성, 다양한 언어 지원 | | 통합 | VS Code, GitHub Copilot 생태계 | | 가격 | ChatGPT Pro ($20/월) 또는 API 과금 | **Codex 5.3이 빛나는 순간** - 반복적인 보일러플레이트 코드 빠르게 생성 - 기존 코드를 분석해 버그 위치 바로 지목 - GitHub 이슈에서 PR 초안까지 자동화 - 다양한 프레임워크(React, FastAPI, Spring 등) 지원 > 💡 Codex는 "일단 작동하는 코드"를 빠르게 만드는 데 최적화돼 있습니다. 스타트업이나 프로토타입 개발에서 특히 강점을 보입니다. --- ## Claude Opus 4.6 — 깊이와 정확성 **Claude Opus 4.6**은 Anthropic이 개발한 최상위 모델입니다. Claude Code라는 터미널 에이전트 위에서 동작하며, 단순 코드 생성을 넘어 **코드베이스 전체를 이해하고 추론**하는 데 강점이 있습니다. **핵심 특징** | 항목 | 내용 | |---|---| | 기반 모델 | Claude Opus 4.6 (claude-opus-4-6) | | 컨텍스트 윈도우 | 200K 토큰 (대규모 코드베이스 처리) | | 주요 강점 | 긴 추론, 보안 코드 리뷰, 복잡한 리팩토링 | | 통합 | Claude Code CLI, IDE 플러그인 | | 가격 | Claude Pro ($20/월) 또는 API 과금 | **Opus 4.6이 빛나는 순간** - 수천 줄짜리 레거시 코드를 통째로 분석·설명 - "이 코드에 보안 취약점 있어?" — 심층 리뷰 - 복잡한 비즈니스 로직을 코드로 정확하게 구현 - 아키텍처 수준의 리팩토링 제안 > 💡 Opus는 "정확하고 안전한 코드"를 만드는 데 최적화돼 있습니다. 엔터프라이즈 프로젝트나 대규모 코드베이스 유지보수에서 강점을 발휘합니다. --- ## 성능 비교 — 무엇이 더 뛰어난가? 주요 코딩 벤치마크에서 두 모델은 서로 다른 영역에서 강점을 보입니다. ### 코드 생성 속도 | 작업 유형 | Codex 5.3 | Opus 4.6 | |---|---|---| | 간단한 함수 생성 | ⭐⭐⭐⭐⭐ 매우 빠름 | ⭐⭐⭐⭐ 빠름 | | REST API 구현 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | | 복잡한 알고리즘 | ⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | | 레거시 코드 분석 | ⭐⭐⭐ | ⭐⭐⭐⭐⭐ | | 보안 취약점 탐지 | ⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ### 언어별 지원 수준두 모델 모두 Python, JavaScript/TypeScript, Go, Java, Rust, C++ 등 주요 언어를 지원합니다. 다만 Codex는 OpenAI 생태계(Python 라이브러리, Jupyter 노트북)에서, Opus는 복잡한 타입 시스템과 함수형 언어에서 더 정확한 코드를 냅니다. --- ## 실전 시나리오별 추천 실제로 어떤 작업에서 어떤 도구가 더 나을지 정리했습니다. ### 시나리오 1: 새 기능 빠르게 프로토타입 **→ Codex 5.3 추천** "로그인 API 만들어줘, JWT 토큰 방식으로"라고 입력하면 수십 초 안에 작동하는 코드가 나옵니다. 방향을 빠르게 잡고 싶을 때 Codex가 더 빠릅니다. ### 시나리오 2: 오래된 코드베이스 파악 **→ Opus 4.6 추천** 5년 된 레거시 Django 프로젝트를 넘겨주고 "전체 구조 설명해줘, 그리고 현대적으로 리팩토링하면 뭐부터 해야 해?"라고 하면 Opus가 코드베이스 전체를 이해하고 단계별 개선 계획을 제시합니다. ### 시나리오 3: 코드 리뷰 / 보안 점검 **→ Opus 4.6 추천** Opus는 OWASP 기준 취약점, 인젝션 공격, 인증 로직 오류까지 꼼꼼하게 짚어냅니다. 배포 전 최종 점검에는 Opus가 월등합니다. ### 시나리오 4: 반복 작업 자동화 **→ Codex 5.3 추천** "이 폴더의 모든 이미지를 WebP로 변환하는 스크립트 만들어줘"처럼 명확한 반복 작업은 Codex가 더 군더더기 없이 처리합니다. --- ## 가격 과 접근성두 도구 모두 월 $20 플랜부터 시작하며 기업용 API도 제공합니다. | | Codex 5.3 | Opus 4.6 | |---|---|---| | 개인 플랜 | ChatGPT Pro $20/월 | Claude Pro $20/월 | | API 입력 | $15 / 1M 토큰 | $15 / 1M 토큰 | | API 출력 | $60 / 1M 토큰 | $75 / 1M 토큰 | | 무료 체험 | 제한적 무료 | 제한적 무료 | | 컨텍스트 | 128K 토큰 | 200K 토큰 | > 💡 비용 면에서는 비슷하지만, **대규모 코드베이스 작업이 많다면 Opus의 200K 컨텍스트가 실질적인 차이**를 만듭니다. 작은 코드 조각을 자주 생성하는 작업이라면 Codex가 비용 효율적입니다. --- ## 결론 — 무엇을 선택해야 할까? 두 도구는 경쟁 관계가 아니라 **상호 보완 관계**입니다. 실제로 많은 개발자들이 두 가지를 모두 구독하고 상황에 따라 골라 씁니다. **Codex 5.3이 맞는 사람:** - 빠른 프로토타이핑이 중요한 스타트업 개발자 - OpenAI/GitHub 생태계를 이미 쓰고 있는 팀 - 반복적인 코드 작업을 자동화하고 싶은 경우 **Opus 4.6이 맞는 사람:** - 대규모 코드베이스를 다루는 시니어 개발자 - 보안, 정확성이 중요한 엔터프라이즈 프로젝트 - 복잡한 아키텍처 설계나 기술 부채 해결이 목표인 경우 **둘 다 쓰는 경우:** - 아이디어 단계 → Codex로 빠르게 프로토타입 - 완성 단계 → Opus로 코드 리뷰 및 보안 점검 AI 코딩 도구는 이미 개발자의 생산성을 2~3배 높이고 있습니다. 어떤 걸 선택하든, 쓰지 않는 것보다는 쓰는 것이 훨씬 낫습니다.

유사 모델

Amazon: Nova Pro 1.0

Amazon

Google: Gemma 4

Google

Anthropic: Claude 3 Haiku

Anthropic

Amazon: Nova Premier 1.0

Amazon

OpenAI: GPT-4o-mini

OpenAI