블로그 자동 게시앱 개발을 위한 코딩 에이젼트 비교(Cursor, OpenAI Codex, Gemini3 Antigravity)

소개

이번에 GPTers에서 배우고자 했던 것은 Cursor AI를 활용한 블로그 자동화 프로그램 개발이었습니다.

그동안 개념만 대략 이해하고 있는 상태였지만, 실제로 Cursor AI를 처음 접해 보니 흥분을 감추지 못할 만큼 새로운 가능성이 느껴졌습니다. 특히 스터디장 필군님의 정성스러운 가이드를 따라가며, 순수 바이브 코딩(Vibe Coding) 방식으로 코드를 작성해 실행 가능한 EXE 배포 파일까지 직접 만들어보는 것까지 성공했습니다.

다음은 본 프로젝트에서 개발한 GUI 기반 블로그 자동화 앱의 실행 화면입니다.

Cursor AI를 통해 작성한 로직이 PyInstaller로 패키징되어 실제 앱 형태로 구동되는 모습을 확인할 수 있습니다.

한국어 텍스트가 표시된 컴퓨터 화면의 스크린샷

[19기 커서반]의 다른 분들이 이미 많은 유사 사례를 공유해주셨기에, 저는 조금 다른 관점에서 접근해보겠습니다. 이번 사례에서는 같은 AI기반 IDEOpenAI CodexGoogle Antigravity로 구현한 결과를 비교해 보고자 합니다.

(1) OpenAI Codex 에이전트에 작업지시한 화면

컴퓨터의 한국어 설정 스크린샷

OpenAI Codex를 에이전트에게 필요한 네이버 로그인에 필요한 정보를 제공하고 “이 정보를 바탕으로 앱을 만들어달라”고 요청했는데… 돌아온 답변은 의외였습니다.

Codex는 보안 문제를 야기할 수 있다는 이유로 자동 로그인 프로그램의 생성 자체를 거부했습니다. “도와줄 수 없다”는 명확한 선을 그으며, 사용자 계정 정보를 이용한 자동 로그인 기능은 지원하지 않는다고 답한 것입니다.

이 허무하고 황당함이란! 이것도 정보라면 정보이겠지요.

(2) Gemini 3 Antigravity

  • CursorAI에게 지시한 명령어셋을 그대로 적용하여 얻어낸 실행화면은 다음과 같습니다.

한국어 응용 프로그램의 스크린샷

  • 다음은 Antigravity가 별도의 파일로 작성한 구현계획(Implemetation Plan) 입니다.

네이버 로그인 자동화 구현 계획

사용자의 요청에 따라 Selenium과 Pyperclip을 사용하여 네이버 로그인을 자동화하는 스크립트를 작성합니다.

## 사용자 검토 필요 사항
- **계정 정보**: 스크립트에 아이디와 비밀번호가 하드코딩됩니다. 보안에 유의하세요.
- **브라우저**: Chrome 브라우저를 기준으로 작성됩니다.

## 제안 변경 사항

### 의존성 설치
- `selenium`
- `pyperclip`
- `webdriver-manager` (드라이버 자동 관리를 위해)

### [NEW] naver_login.py (기능 추가)

- **블로그 글쓰기 페이지 이동**: `https://blog.naver.com/GoBlogWrite.naver` 로 이동
- **Iframe 전환**: `#mainFrame`으로 전환
- **팝업 처리**:
    - `.se-popup-button-cancel` (존재 시 클릭)
    - `.se-help-panel-close-button` (존재 시 클릭)
- **타이핑 유틸리티**: `ActionChains`를 사용하여 글자 단위로 0.01초 딜레이를 주며 입력하는 함수 구현
- **내용 작성**:
    - `.se-section-documentTitle` 클릭 후 "제목 입력중" 입력
    - `.se-section-text` 클릭 후 "내용 입력중" 10줄 입력
- **저장**: `.save_btn__bzc5B` 클릭

## 검증 계획

### [NEW] 콘텐츠생성하기.py
- **데이터 읽기**: `pandas`를 사용하여 
    data.xlsx 읽기
- **Gemini API**: `google-generativeai` 라이브러리 사용 (API 키 필요, 
    gemini_test.py 참조 예정)
- **콘텐츠 생성**:
    - 프롬프트: "블로그 제목 '[제목]'에 대해 서론, 본론, 결론으로 나누어 작성해줘. 각 섹션은 2~3문단으로 구성하고 이모지는 사용하지 마."
    - 반복문으로 각 행 처리
- **진행 상황 출력**: `tqdm` 또는 단순 print 사용
- **저장**: 결과 `DataFrame`을 
    data.xlsx에 덮어쓰기

### [NEW] 엑셀기반자동글쓰기.py
- **목적**:  
    data.xlsx의 내용을 읽어 네이버 블로그에 자동으로 포스팅
- **기능**:
    - naver_login.py의 로그인 로직 재사용
    - `pandas`로 data.xlsx 로드
    - 각 행에 대해:
        - 블로그 글쓰기 페이지 이동 (`https://blog.naver.com/GoBlogWrite.naver`)
        - 제목/본문 입력 (ActionChains 사용)
        - 저장/발행 버튼 클릭
        - 다음 글 작성을 위해 대기 및 반복

## 검증 계획

### 자동 테스트
- 스크립트 실행 후 
    data.xlsx의 B열(내용)이 채워져 있는지 확인
- `엑셀기반자동글쓰기.py` 실행 시 브라우저가 열리고 순차적으로 글이 작성되는지 확인

### [NEW] GUI 및 EXE 생성
- **라이브러리**: `customtkinter` (Modern UI), `pyinstaller` (Packaging)
- **리팩토링**:
    - `샘플데이터생성.py`, `콘텐츠생성하기.py`, `엑셀기반자동글쓰기.py`를 모듈 형태로 호출 가능하도록 수정 (main 함수 분리 및 인자 전달)
- **GUI 구성 (`main_gui.py`)**:
    - **설정**: 네이버 ID/PW, Gemini API Key 입력 필드 (기본값 채움)
    - **액션 버튼**:
        1. 샘플 데이터 생성
        2. 콘텐츠 생성 (Gemini)
        3. 블로그 자동 포스팅
    - **로그**: 진행 상황 표시 텍스트 박스
- **EXE 빌드**: `pyinstaller --noconsole --onefile main_gui.py`

## 검증 계획

### 자동 테스트
- GUI 실행 확인
- 각 버튼 클릭 시 기능 정상 동작 확인
- 생성된 EXE 파일 실행 확인

(3) 결론

아직 한정된 기능(블로그 자동화)만 테스트해 본 결과이지만, 작업 계획을 세우는 방식부터 코드가 정리되는 흐름, 실제 구현 속도까지 살펴보면 저는 Cursor AI보다는 Gemini 3 Antigravity가 한 발 앞선 느낌을 받았습니다.

시장의 주식 수를 보여주는 표

위 BMT 결과만 놓고 보더라도, 앞으로는 Cursor 2.0과 함께 Antigravity를 병행해서 계속 써 볼 가치가 있다고 생각합니다. 감사합니다.

4
1개의 답글

👉 이 게시글도 읽어보세요