본문 바로가기

개발

구글 Antigravity 사용 후기 - QML프로젝트로 AI IDE 특징 알아보기

들어가며

요즘 AI를 활용한 이른바 '바이브 코딩(Vibe Coding)'은 더 이상 특별한 일이 아니다.

간단한 프로젝트 생성부터 기능 추가, 빌드 자동화까지 AI에게 맡기는 흐름이 자연스러워지고 있다.

 

특히 최근 등장한 AI 기반 IDE들은 단순 코드 생성 수준을 넘어,

프로젝트 구조를 분석하고 실행 계획을 세운 뒤 작업을 수행하는 단계까지 발전하고 있다.

 

이번 글에서는 Google에서 개발한 Antigravity를 직접 사용해 보며,

QML 프로젝트 생성부터 TCP 서버 기능 추가까지의 경험을 정리해 보려 한다.


Antigravity란?

Antigravity를 설치하고 실행하면 비교적 익숙한  IDE 형태의 화면이 나타난다.

좌측으로는 프로젝트를 관리할 수 있고, 우측으로는 AI와 대화할 수 있는 채팅창이 위치한다.

Antigravity 설치후 첫 모습

구조 자체는 Cursor와 유사하지만, 명령 실행 전 Implementation Plan을 먼저 보여주는 점이 특징이다.


프로젝트 생성 테스트

간단히 테스트해 보기 위해 다음 경로에 빈 폴더를 하나 만들었다.

"C:\Projects\antigravityTest"

그리고 AI 대화창에 다음과 같이 요청했다.

▶ AI COMMAND INPUT
> 비어있는 QML 프로젝트를
디버그 모드로 실행할 수 있어도록 만들어줘
난 Qt6에 컴파일러는 이 경로를 참고해. "C:\Qt\6.10.0\mingw_64"

잠시 후 Antigravity는 바로 파일을 생성하지 않고, Implementation Plan이라는 임시 계획 파일을 먼저 보여주었다.

 

이 파일에는 어떤 파일을 생성하고 어떤 단계를 거쳐 빌드할지 상세히 적혀 있었고,

각 줄마다 Comment를 달아 수정할 수 있는 구조였다.

명령을 실행하기 전 세부계획을 조정

특별히 수정할 부분은 없어 "ok"라고 입력하자 실제 프로젝트 파일 생성과 빌드가 진행되었다.

 

한 가지 놀란 점은 CMake Extension이 필요하다고 판단하자 자동으로 설치를 요청하고,

Extension 설치 후 이후 작업을 이어서 진행했다는 것이다.

Project Setup은 다음과 같은 10단계로 실행되었다.

  1. Creating project files
  2. Configuring and building the project
  3. Waiting for CMake configuration to complete
  4. Checking for MinGW compiler in Qt directory
  5. Listing C:\Qt\Tools to find MinGW compiler path
  6. Running qmake -query to determine compiler path
  7. Configuring CMake project with MinGW compiler
  8. Verifying build artifacts
  9. Finalizing verification and creating walkthrough
  10. Notifying user of completion

프로젝트 실행 테스트

생성된 프로젝트를 실행해 보기 위해 다음과 같이 요청했다.

▶ AI COMMAND INPUT
> 프로젝트를 디버그 모드로 실행해줘

처음에는 &&토큰을 인식하지 못해 빌드가 실패했다.

하지만 AI가 스스로 필요한 Qt정보를 확인했고, 고쳐가며 프로그램 실행까지 완료됐다.

  1. mkdir build && cd build && cmake -GNinja -DCMAKE_BUILD_TYPE=Debug -DCMAKE_PREFIX_PATH=C:\Qt\6.10.0\mingw_64 .. 
    → && 토큰을 인식 못하면서 빌드 실패
  2. C:\Qt\6.10.0\mingw_64\bin\qmake.exe -query
    → Qt 설치 정보 확인명령
  3. $env:PATH = "C:\Qt\Tools\mingw1310_64\bin;$env:PATH"; cmake -S . -B build -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Debug -DCMAKE_PREFIX_PATH="C:\Qt\6.10.0\mingw_64" 
    → 컴파일러 환경 설정 Ninja로 빌드해 보려다 실패하고 MinGW Makefiles를 사용하도록 컴파일러를 변경함
  4. $env:PATH = "C:\Qt\Tools\mingw1310_64\bin;$env:PATH"; cmake --build build
    → 실제 빌드 진행
  5. $env:PATH = "C:\Qt\6.10.0\mingw_64\bin;C:\Qt\Tools\mingw1310_64\bin;$env:PATH"; .\build\appantigravityTest.exe
    → Qt dll 경로를 추가하고, 실행파일 실행

정상적으로 실행된 QML 프로젝트

결과적으로 단 3번의 명령으로 QML 프로젝트를 생성하고 실행할 수 있었다.

이 시점까지는 Cursor와 비교해 큰 단점을 느끼지는 못했다.


기능 추가 테스트: TCP 서버 + JSON 처리

조금 더 복잡한 테스트를 위해 다음과 같이 요청했다.

▶ AI COMMAND INPUT
> 프로그램에 TCP서버를 만들고 JSON데이터를 받아 반환하는 기능을 추가해줘.
그리고 QML메인화면에 버튼을 눌러 서버를 테스트 할 수 있는 기능을 추가해줘.

우선 결과적으로 명령을 실행하면서 많은 문제를 겪었다.

 

처음에는 Gemini 3 Pro (High) 모델로 명령을 실행했다.

실행 초반부터 응답 속도가 다소 느리다는 인상을 받았고,

작업이 진행되는 도중 working 상태에서 멈춰 버리는 현상이 반복적으로 발생했다.

 

Google에서 개발한 Antigravity이기 때문에 Gemini와의 궁합이 좋을 것이라 기대했지만, 실제 사용 경험은 그렇지 않았다.

아무런 Output 없이 멈추는 현상 때문에, 결국 모델을 변경할 수밖에 없었다.

 

동일한 요청을 Claude Sonnet 4.5 모델로 실행했을 때는 비교적 안정적으로 수행되었다.

아래는 생성된 핵심 코드 일부이다.

더보기

Main.qml

Button {
	text: "Run Server Test"
	onClicked: serverTest.runTest()
}

ServerTest.h

class ServerTest : public QObject
{
    Q_OBJECT
    Q_PROPERTY(QString log READ log NOTIFY logChanged)

public:
    Q_INVOKABLE void startServer();
    Q_INVOKABLE void runTest();
};

ServerTest.cpp

#include "ServerTest.h"
#include <QHostAddress>

void ServerTest::startServer()
{
    if (m_server->isListening()) {
        appendLog("Server is already running on port " + QString::number(m_server->serverPort()));
        return;
    }

    if (m_server->listen(QHostAddress::Any, 4567)) {
        appendLog("Server started on port " + QString::number(m_server->serverPort()));
    } else {
        appendLog("Server failed to start: " + m_server->errorString());
    }
}

void ServerTest::runTest()
{
    // Ensure server is running
    if (!m_server->isListening()) {
        startServer();
    }

    if (!m_server->isListening()) {
        appendLog("Cannot run test: Server not running.");
        return;
    }

    appendLog("Starting Client Test...");
    m_client->abort(); // Reset state
    m_client->connectToHost(QHostAddress::LocalHost, m_server->serverPort());
}

실제 테스트용으로 사용할 수 있는 TCP 프로그램


회고

처음 Antigravity를 써보면서 자연스럽게 Cursor와 비교하게 되었다.

Cursor AI와 차이점으로 느린 속도가 거론되는데,

나 역시 느린 속도와 명령실행이 무기한 대기되는 현상을 체감했다.

특히 평소 개발할 때 Gemini 3보다는 ChatGPT나 Claude를 사용하는 나로서는, Antigravity만의 장점은 크게 다가오지 않았다.

 

장점으로는 명령 실행 이전에 Implementation Plan을 보여주는 UX가 인상적이었다.

그리고 Comment를 통해 세부 계획을 조정하는 구조는 좋은 시스템으로 느꼈다.

 

종합적으로 하나만 선택해야 한다면 현재로서는 Cursor를 이용할 것이다.

다만 Antigravity 역시 모델을 적절히 선택한다면 충분히 활용 가능하며,

실제 프로젝트 규모에서 얼마나 안정적으로 동작하는지 테스트해 볼 필요가 있을 것 같다.

부족한 부분이나 더 궁금한 주제가 있다면 댓글로 남겨주세요.
직접 공부해서 다음 글로 정리해 보려고 합니다.