올해 일어나고 있는 변화들을 늦게나마 살펴보며, 계속 놀라고 있다. 특히 아래 영상은 그 흐름을 잘 정리해 주셔서, 흥미롭게 볼 수 있었다.

 

Claude Code 스터디를 하며 처음엔, 단지 에이전트에게 일을 시키는 정도로 생각했다. 하지만 간단한 YouTube 콘텐츠 분석 요약만 시켜봐도, 지금은 수준 자체가 달라졌음을 금방 체감할 수 있었다. 영상에서 언급하는 많은 내용에 공감했고, 특히 이제는 10x, 100x 엔지니어라는 표현조차 무색할 정도라는 생각이 들었다.

 

그럼에도 불구하고, 미래에 대한 전망은 조금 다른 관점에서 보고 싶다. 특히 “협업은 필요 없다”, “소통은 비용이다”라는 메시지에는 질문이 생긴다.

 

AI가 잘하는 건 여전히 수학과 프로그래밍 같은 명확한 문제들이다. 하지만 사람을 다루는 일, 인간 사이의 관계 형성과 의미 조율은 다르다. 커뮤니케이션의 본질은 그 ‘모호함’을 다루는 데 있다.

 

AI 덕분에 솔로프리너의 시대가 열린 건 분명하다. 하지만 조직이 성장하는 단계에서는, 협업의 역할은 여전히 중요하다고 생각한다. 1000x 엔지니어가 등장해서 이 문제마저 해결할지도 모르지만, 스케일의 법칙에는 늘 한계가 있었다. 그렇기에 협업은 완전히 사라지지는 않을 것이다.

 

짧게 요약하자면:

사람이 다루는 문제에 어찌 0과 1만 존재하겠는가?
1도 들여다봐야겠지만, 0과 1사이의 세계야말로 우리가 더 탐구해야 할 영역 아닐까?

👋 개요

앞에서 GCP에 적용하기로 한 뉴스 요약 앱을 만들기 위한 여정을 두 단계로 나누어 정리한다.

  • 1단계는 Google Cloud 기반의 백엔드 구축과 자동화에 중점을 두었고,
  • 2단계는 Firebase 인증과 React Native Expo 앱을 개발하여 실제 사용자 경험을 다듬은 단계입니다.

✅ 1단계: Cloud 기반 백엔드 + 뉴스 요약 자동화

🎯 목표

  • Google News에서 원하는 키워드로 뉴스 수집
  • Gemini API를 활용한 요약 처리
  • 사용자별 요약 결과 저장
  • 자동 실행 및 확장 가능한 구조로 구축

🧱 주요 기술 스택

구성 요소 기술/서비스 설명
뉴스 수집 Python (requests, bs4) Google News 크롤링
요약 처리 Gemini Flash API 텍스트 요약 모델 호출
API 서버 FastAPI + Cloud Run RESTful API 제공
데이터 저장 Firestore (NoSQL) 사용자별 키워드 및 요약 결과 저장
인증 Firebase Authentication Google 로그인 기반 사용자 인증
예약 실행 Cloud Scheduler + Functions 키워드별 뉴스 수집/요약 자동 실행
배포 GitHub Actions + Cloud Build CI/CD 파이프라인

🔄 동작 흐름 요약

  1. 사용자가 관심 키워드를 등록
  2. Cloud Scheduler가 주기적으로 트리거 발행
  3. Cloud Function이 사용자별 Keyword를 취합하고 Pub/Sub을 통해서 FastAPI의 /summary API 호출
  4. 결과를 Firestore에 사용자별로 저장

📁 예시 Firestore 스키마

{
  "users": {
    "userId123": {
      "keywords": {
        "AI": {
          "2025-07-06": {
            "title": "OpenAI launches GPT-5",
            "summary": "OpenAI unveiled GPT-5 today with multimodal capabilities..."
          }
        }
      }
    }
  }
}

특이 사항

이 때, 특이 사항으로는 사용자 Id에서도 document를 만들지 않으면 접근이 되지 않는 부분이 있어서 debugging에 어려움이 있었다. 문제는 아래의 코드에서 를 통해서 keywords_ref = db.collection("users").document(uid).collection("keywords")를 통해서 Firebase에 접근하려고 할 때, 데이터가 읽히지 않는 것이었다. 이는 uid수준에 document가 없기 때문이었다.

def fetch_all_user_keywords():
    db = firestore.Client()
    users = db.collection("users").stream()
    users_list = list(users)

    result = []
    for user in users_list:
        uid = user.id
        keywords_ref = db.collection("users").document(uid).collection("keywords")
        keywords = [doc.to_dict()["keyword"] for doc in keywords_ref.stream()]
        if keywords:
            result.append({"user_id": uid, "keywords": keywords})

    print(f"result {result}")
    return result

여러가지 실험들이 있었고, 그 실험을 통해서 문제점에 대해서 이해하고 Database에 keyword를 추가할 때, 상위 user document가 없다면 빈 document를 만드는 코드를 추가하여, 문제가 해결되는 것을 확인하였다.

def add_keyword(user_id: str, keyword: str) -> str:
    # ✅ 상위 user 문서가 없다면 빈 문서라도 생성 (merge=True)
    db.collection("users").document(user_id).set({}, merge=True)

    keyword_ref = db.collection("users").document(user_id).collection("keywords")
    existing = keyword_ref.where("keyword", "==", keyword).limit(1).stream()
    if any(existing):
        raise ValueError("Keyword already exists")

    doc_ref = keyword_ref.document()
    doc_ref.set({
        "keyword": keyword,
        "created_at": datetime.utcnow().isoformat()
    })
    return doc_ref.id

✅ 2단계: React Native 앱으로 사용자 경험 구현

🎯 목표

  • 사용자 로그인
  • 키워드 등록 및 요약 리스트 보기
  • 앱 내에서 요약 결과 확인
  • 다크/라이트 모드 지원

🧱 주요 기술 스택

구성 요소 기술/서비스 설명
프레임워크 React Native (Expo) 크로스 플랫폼 앱 개발
인증 Firebase Authentication Google 로그인 연동
데이터 통신 REST API (FastAPI) 백엔드와 데이터 연동
앱 배포 EAS Build + Expo Go Android/iOS 앱 테스트 및 배포
디자인 React Native Paper 테마 기반 다크/라이트 모드 지원

📱 주요 UI 기능

  • 🔑 로그인 화면: Firebase 인증 기반
  • 📝 키워드 입력: 관심 주제 등록
  • 📄 요약 리스트: 날짜별 요약 보기
  • 🎨 다크/라이트 모드: 시스템 설정 연동
  • 🚫 백버튼 제어: 앱 종료 버튼으로 대체

💡 화면 예시 흐름

  1. 로그인 화면
  2. → 요약 리스트 화면
  3. → 키워드 등록 화면

특이 사항

Frontend 개발 시 특이 사항은 React Native Expo였다. Web 기반 React를 다룰 때도 그랬지만, 가이드가 최신 버전과 충돌이 있는 부분이 있었다. Web에서 Tailwindcss의 초기 설정이 달라져서 적절한 설정을 찾는데 어려움이 있었던 것과 같이 Expo의 SDK 최신이 53이었는데 Firebase 연동에 문제가 있다는 것을 알았다(1). 그래서, SDK 버전을 52로 낮추고 Expo Go 앱도 낮은 버전 찾아서 설치하면서 문제를 해결했다.

React Native Expo의 중간 테스트는 Expo Go라는 앱으로 로컬에서 실행하는 내용을 가져와서 테스트하기 때문에 로컬 서버가 항상 동작하고 있어야했다. 이것은 중간 테스트하는 결과물이고 최종 결과물은 Android 혹은 iOS에서 동작하는 결과물을 만들어야 하는 것이다. 이 결과물을 만드는 과정을 EAS(Expo Application Service) build라고 불렀다. 실재로 코드가 github에 있어야했고, 서버에서 빌드하는 과정이 필요하다 그리고, Free 모델에서는 Queue에 2시간 대기 하고 나서 빌드하는데 Fail이 발생하면 결과를 최소 2시간 이후에 알 수 있어서 동작하는 버전을 처음 얻는데 까지 이틀 가까이 걸렸다.

🔚 마무리: 확장 가능성과 다음 단계

이 프로젝트는 다음과 같은 방향으로 확장 가능하고 고민해보고 있다:

  • 🔐 다른 사용자 인증 지원: Google account와 같은 OAuth 2.0 연동. 이를 통한 가입의 유연성 증대
    • 📈 요약 품질 개선: Selenium으로 News를 가져오고 Gemini Pro 또는 LLM fine-tuning 도입
  • 🔊 TTS 기능: 요약 내용을 음성으로 읽어주는 기능
  • 📡 푸시 알림: 새로운 뉴스 요약이 도착했을 때 알림 제공

✨ 느낀 점

Cloud 기반 자동화와 모바일 내이티브 앱을 한 프로젝트 안에서 다뤄본 덕분에, 서비스 기획부터 운영까지 전 과정을 경험할 수 있었다. 특히 Pub/Sub, Cloud Function, Firestore를 연결하는 구조가 매우 유연하면서도 확장성 있게 느껴졌다. 나에게도 유용한 기능이어서 나만의 서비스로 활용하고 있다. 조금 더 확장하면 실재로 타인들에게도 공개해서 피드백 받을 수 있는 기능으로 확장도 가능하겠다.

참고 문헌

[1] https://www.inflearn.com/community/questions/1581981/expo-%EA%B0%80-%EC%97%85%EB%8D%B0%EC%9D%B4%ED%8A%B8-%EB%90%98%EB%A9%B4%EC%84%9C-%EB%AC%B8%EC%A0%9C%EA%B0%80-%EB%B0%9C%EC%83%9D%ED%95%9C%EA%B1%B0%EA%B0%99%EC%8A%B5%EB%8B%88%EB%8B%A4?srsltid=AfmBOopaM9vHkoH-TpxDm6dFG6jVK585QCe4zMDbJ_LatRew-t_iiVP1
[2] https://github.com/blcktgr73/GCPNewsPortal

현재 Claude Code를 main으로 사용하고 있고, Codex도 이야기를 들어서 ChatGPT와 Claude에서 비교해 보았다.

ChatGPT 정리 비교표

기능 항목 Claude Code OpenAI Codex 설명
Custom Commands ✅ 지원 (~/.claude/commands/*.md) ✅ 지원 (~/.codex/prompts) 자주 쓰는 프롬프트를 명령처럼 저장해 재사용
Sub-agent (하위 에이전트) ✅ 공식 지원 (/agents 명령 등) ⚠️ 실험적 (agents.json 기반 제한적 기능) 역할별 에이전트 구성 가능, Claude는 완성도 높음
인터넷 검색 (MCP) ✅ Claude Code 전용 MCP 연동 지원 ❌ 미지원 MCP를 통해 웹에서 뉴스, 블로그, GitHub 등 직접 검색
외부 명령 실행 (Shell / API) shell:curl: 스타일 명령 실행 ✅ 일부 !command 또는 도구 인터프리터 기반 Claude는 Shell 및 웹 요청 명령을 명시적으로 구분
도구 연동 (Tool Use) ✅ 예: shell, python, web-search 등 ✅ Code Interpreter 기반 도구 일부 제공 Claude는 tool_use: 블록으로 구조화 지원
파일 시스템 접근 ✅ 제한적 허용 (명시적 권한 기반) ✅ 클라우드 세션 디렉토리 접근 둘 다 환경 내 파일 읽기/쓰기 가능
IDE 통합 (VS Code, Cursor) ❌ 없음 (CLI 기반) ✅ 공식 지원 Codex는 Cursor, VS Code와 깊게 통합됨
GitHub ⚠️ 제한적 (MCP 혹은 git command 연동 가능) @codex 태그 기반 자동 리뷰 PR 리뷰 워크플로우에서 차별화됨
브라우저/캘린더/메일 연동 ❌ 미지원 ✅ 일부 외부 앱 자동화 연동 Codex는 에이전트 기반 일정 처리 등 실험
가상 머신 샌드박스 실행 ❌ 로컬 CLI 기반 ✅ 클라우드 샌드박스 내 병렬 실행 안전하고 상태 유지되는 클라우드 환경 제공
상태 유지형 세션 ❌ 세션 단절 (CLI 중심) ✅ 브라우저/IDE 간 상태 유지 Codex는 Cloud + ChatGPT 통합되어 멀티 환경 지원
다중 에이전트 병렬 실행 ✅ sub-agent 기반 병렬 가능 ⚠️ 실험적 Claude는 명시적 병렬 구조 구성 가능 (26 agents 사례 등)
명확한 역할 설정 (System Prompt) ✅ agent별 역할 설정 지원 ✅ 가능 (대화 초기 설정 필요) Claude는 agent마다 role/context 독립 설정
명령어 기반 CLI 인터페이스 ✅ 매우 직관적 (claude code) ✅ Codex CLI 존재 둘 다 CLI 기반 자연어 코딩 지원
장기 실행 지원 ✅ 최대 수 시간 실행 가능 (Opus 4 기준) ✅ 작업 제한 시간 존재 (최대 30분 내외) Claude Opus 4 기준 장기 코드 흐름 유리
코드 리뷰 / 리팩토링 능력 ✅ (sub-agent 활용) ✅ (Codex 자체 기능) 양측 모두 코드 리뷰/리팩터링 가능하나 스타일 차 있음
컨텍스트 분리 ✅ sub-agent 마다 독립 컨텍스트 ❌ 단일 세션 흐름 중심 Claude는 메인 흐름 오염 없이 세분화 가능
MCP 및 실시간 검색 ✅ 다양한 MCP 검색 플러그인 연동  

Claude Desktop 비교

OpenAI Codex vs Claude Code 종합 비교표

🔍 핵심 아키텍처

     
실행 환경 클라우드 샌드박스 로컬 터미널
병렬 처리 ✅ 무제한 병렬 작업 ❌ 단일 세션 순차 처리
작업 지속성 ✅ 1-30분 장시간 작업 ⭕ 즉시 응답 기반
기반 모델 Codex-1 (o3 최적화) Claude Opus 4.1 / Sonnet 4

🌐 인터넷 접근 & 외부 연동

기능 OpenAI Codex Claude Code
인터넷 검색 ✅ 제한적 인터넷 접근 (설정 가능) ✅ MCP를 통한 웹 검색 지원
MCP 지원 ✅ CLI에서 MCP 서버 지원 ✅ 네이티브 MCP 클라이언트/서버
외부 API 접근 ❌ 보안상 기본 차단 ✅ MCP를 통한 다양한 API 연동
실시간 데이터 ⭕ 제한적 (허용 도메인만) ✅ 실시간 웹 스크래핑 가능

🤖 AI 에이전트 기능

기능 OpenAI Codex Claude Code
Sub-agents ❌ 없음 ✅ 76+ 전문화된 서브에이전트
Custom Commands ⭕ 기본적인 스크립팅 ✅ 마크다운 기반 워크플로우 자동화
에이전트 자동 델리게이션 ❌ 수동 작업 분배 ✅ 컨텍스트 기반 자동 라우팅
독립 컨텍스트 ✅ 작업별 격리된 샌드박스 ✅ 서브에이전트별 독립 컨텍스트

👥 협업 및 통합

기능 OpenAI Codex Claude Code
GitHub 통합 ✅ 자동 PR 생성/리뷰/병합 ⭕ 수동 Git 작업 지원
멀티디바이스 접근 ✅ 웹/모바일/IDE/CLI ❌ 터미널만
원격 작업 위임 ✅ @codex 태그로 GitHub에서 작업 시작 ❌ 로컬에서만
팀 공유 ✅ AGENTS.md + 클라우드 환경 ✅ Git을 통한 설정 공유

🔧 개발자 경험

기능 OpenAI Codex Claude Code
인터페이스 ChatGPT 사이드바 + CLI 터미널 UI
실시간 모니터링 ✅ 작업 진행 상황 추적 ❌ 즉시 완료 방식
작업 검증 ✅ 터미널 로그 + 테스트 출력 인용 ⭕ 기본적인 설명
IDE 통합 ✅ VSCode, Cursor, Windsurf ⭕ MCP를 통한 제한적 통합

🛡️ 보안 및 프라이버시

기능 OpenAI Codex Claude Code
데이터 위치 클라우드 (격리된 컨테이너) 로컬 머신
코드 전송 저장소 전체가 클라우드로 프롬프트와 컨텍스트만
네트워크 격리 ✅ 완전 격리 (설정 시) ✅ 로컬 제어
MFA 요구 ✅ 필수 ❌ 선택사항

💰 비용 및 접근성

기능 OpenAI Codex Claude Code
가격 모델 ChatGPT 플랜 포함 + API 토큰 Anthropic API 토큰 기반
CLI 비용 $1.50/1M 입력, $6/1M 출력 $3/1M 입력, $15/1M 출력
무료 크레딧 Plus/Pro 사용자 $5/$50 없음
오픈소스 ✅ CLI는 오픈소스 ✅ CLI 오픈소스

🔌 확장성 및 커스터마이징

기능 OpenAI Codex Claude Code
MCP 생태계 ✅ 제3자 MCP 서버 연결 ✅ 풍부한 MCP 서버 생태계
스크립팅 능력 ⭕ 기본적인 자동화 ✅ Unix 철학 기반 완전 스크립팅
Hooks 시스템 ❌ 없음 ✅ Pre/Post 툴 사용 훅
플러그인 시스템 ⭕ 제한적 ✅ 커뮤니티 기반 확장

🎯 최적 사용 시나리오 (Claude Desktop)

OpenAI Codex가 우수한 경우:

  • 🏢 대규모 팀 협업: 병렬 작업 처리와 자동 PR 관리
  • ⏰ 장시간 작업: 30분 이상의 복잡한 리팩토링
  • 📱 멀티디바이스: 모바일에서 작업 시작, 데스크톱에서 확인
  • 🔄 자동화된 워크플로우: CI/CD 완전 통합
  • 🏭 엔터프라이즈: 보안이 중요한 대기업 환경

Claude Code가 우수한 경우:

  • ⚡ 즉시 응답: 빠른 코드 수정과 설명
  • 🔒 로컬 제어: 코드가 외부로 나가면 안 되는 환경
  • 👤 개인 개발: 1인 개발자의 일상적 코딩
  • 🖥️ 터미널 중심: Vim/Emacs 사용자
  • 🎛️ 고도 커스터마이징: 서브에이전트와 워크플로우 자동화

최적 사용 시나리오(ChatGPT)

상황 추천 도구 이유
터미널 기반 반복 작업 자동화 Claude Code 명령어/agent/검색/툴 연결 모두 CLI 구조에 최적
GitHub PR 리뷰 자동화 Codex @codex 태그 한 줄로 전체 리뷰 실행
실시간 문서화 + 코드 리팩터링 Codex 프로젝트 전체 흐름을 대화형으로 처리 가능
모듈별 역할 분리된 개발 환경 구성 Claude Code sub-agent 기반 role 분리
최신 기술 블로그/문서 분석 후 적용 Claude Code MCP 웹 검색 후 요약 + 코드 적용
VS Code + GPT 연동 개발 Codex IDE 통합 경험
보안/성능 분석 리포트 작성 Claude Code markdown 기반 agent가 shell 결과까지 통합
긴 코드 흐름 제어 및 세분화된 제어 Claude Code (Opus 4) 길고 깊은 구조화 + 명시적 제어 가능
AI 개발 파트너로 전체 작업 위임 Codex “기획 → 구현 → 테스트”까지 대화형 수행

나의 총평

아직, Codex ai는 아직 써보지 못했고, Claude Code를 열심히 쓰고 있는 입장에서 Codex는 지켜볼 도구 중 하나가 되었다.

 

Agentic CLI를 쓰면서, 점차 AI가 Computing System의 기반, 소위 Operating System으로 발전해 가겠구나 하는 생각이 들었다.

 

또 하나, 궁금한 것은 Digital Native 처럼 AI native들은 어떤 모습을 보여줄까? 기다려 지는 일이다.

+ Recent posts