구글 안티그래비티 완전 분석 — 모델·요금제·CLI 총정리

🚀 구글 안티그래비티(Antigravity) 완전 분석 구글이 2025년 11월 Gemini 3와 함께 공개한 에이전트 퍼스트(agent-first) IDE 안티그래비티는 Claude·GPT·Gemini를 한 도구에서 골라 쓰는 멀티모델 코딩 환경이다. 이 글에서는 ① 지원 모델과 요금제별 사용량의 실체, ② 실사용자 평가, ③ 구글의 방향성, ④ Claude Code와의 비교·연계, ⑤ CLI( agy )로 직접 쓰는 법까지 다섯 갈래를 차례로 정리한다. 자료 간 충돌이 있는 지점은 한쪽으로 단정하지 않고 양쪽을 모두 살려 표기했다. 📅 기준 시점: 2026년 6월 · 프리뷰 단계 정보로 수치는 변동 가능 1. 안티그래비티란 무엇인가 — 기초 정리 안티그래비티는 2025년 7월 구글이 24억 달러 규모 라이선스 계약 으로 영입한 전 Windsurf 팀이 설계를 주도했다. VSCode를 포크한 위에 자율 에이전트 오케스트레이션 계층을 얹은 구조다. 2026년 5월 Google I/O에서 발표된 안티그래비티 2.0 은 데스크탑 앱과 함께 공식 CLI agy 를 처음 공개하며 기존 Gemini CLI의 공식 후계자 자리를 확정했다. 핵심 정체성은 단순 코드 자동완성이 아니라 병렬 에이전트 오케스트레이션 이다. 여러 에이전트가 동시에 — 하나는 API, 하나는 테스트, 또 하나는 프론트엔드 — 작업을 나눠 진행하고, 각 에이전트는 계획·테스트 결과·스크린샷·영상을 담은 Artifact 를 남긴다. "사람이 한 줄씩 승인"하는 방식이 아니라 "에이전트들이 일을 마치고 사람이 사후 검수"하는 모델이다. flowchart TD A([사용자 작업 지시]) --> B[에이전트 A API 구현] A --> C[에이전트 B 테스트 작성] A --> D[에이전트 C UI 생성] B --> E[Artifact 계획·결과·영상] C --> E D --> E...

Stack vs. Heap: Understanding Memory Management in Your CPU

Stack vs. Heap: Understanding Memory Management in Your CPU

When your computer's CPU processes information, it needs a place to store data temporarily. Two fundamental areas for this storage are the stack and the heap. While both are crucial for program execution, they operate very differently and serve distinct purposes. Understanding them is key to grasping how programs manage memory efficiently.

The Stack: Organized and Speedy

Think of the stack like a stack of plates. You can only add a new plate to the top, and you can only take a plate from the top. This is known as a Last-In, First-Out (LIFO) principle.

  • How it Works: When a function is called, a new "stack frame" is created on top of the stack. This frame contains all the information related to that function call: its local variables, function arguments, and the return address (where to go back to after the function finishes). When the function completes, its stack frame is removed from the top, and control returns to the previous frame.
  • Automatic Management: The compiler and the operating system automatically manage the stack. You don't need to explicitly allocate or deallocate memory for local variables. This makes stack operations very fast.
  • Use Cases: Local variables within functions, function parameters, and return addresses.
  • Limitations: The stack has a fixed, relatively small size. If too many functions are called without returning (e.g., infinite recursion), you can get a "stack overflow" error.

Example (Conceptual C-like code):

void myFunction(int arg1) {
    int localVar = 10; // Stored on the stack
    // ... function logic ...
    // When myFunction finishes, its stack frame is popped.
}

int main() {
    int mainVar = 5; // Stored on the stack
    myFunction(mainVar); // A new stack frame is created for myFunction
    return 0;
}

The Heap: Flexible and Dynamic

The heap, on the other hand, is like a large, unsorted storage room. You can grab any available space to store data, and you can free up space whenever you need it. This is called dynamic memory allocation.

  • How it Works: When your program needs memory for data whose size isn't known at compile time, or data that needs to persist beyond the scope of a single function, it requests it from the heap. This is done explicitly using functions like malloc() in C or the new keyword in C++/Java/Python. When you're done with the data, you must explicitly deallocate it using free() or the equivalent garbage collection mechanism.
  • Manual (or Semi-Manual) Management: You, as the programmer, are responsible for managing heap memory. If you forget to deallocate memory that is no longer needed, it leads to a memory leak, where your program consumes more and more memory over time, potentially slowing down or crashing the system.
  • Use Cases: Dynamically sized data structures (like linked lists, trees), objects created at runtime, data that needs to live for the entire duration of the program.
  • Characteristics: Heap operations are generally slower than stack operations because the system has to find suitable blocks of memory and manage their allocation and deallocation. It's also more prone to fragmentation, where free memory is broken into small, unusable pieces.

Example (Conceptual C++ code):

void processData() {
    int* dataArray = new int[100]; // Allocate an array of 100 integers on the heap
    // ... use dataArray ...

    // IMPORTANT: Manually deallocate the memory when done
    delete[] dataArray;
    dataArray = nullptr; // Good practice to nullify pointer after delete
}

int main() {
    // ...
    processData(); // dataArray is allocated and deallocated within processData
    // If processData forgot 'delete[]', the memory would be leaked.
    return 0;
}

Key Differences at a Glance

Feature Stack Heap
Management Automatic (Compiler/OS) Manual (Programmer) or Garbage Collection
Allocation Compile-time, fixed size Run-time, dynamic size
Speed Very fast Slower
Data Structure LIFO (Last-In, First-Out) No specific order, managed by allocation algorithms
Size Relatively small, fixed Much larger, limited by available RAM
Usage Local variables, function calls Objects, dynamic data structures, long-lived data
Errors Stack Overflow Memory Leaks, Fragmentation

An Analogy: A Busy Restaurant

Imagine a busy restaurant:

  • The Stack: This is like the waiter's order pad. When a new table orders, the waiter writes their order on a new page on top. When they finish serving that table, they tear off the page. It's ordered, efficient, and you only deal with the current order. If the waiter never tears pages off, their pad gets too thick (stack overflow!).
  • The Heap: This is like the restaurant's pantry. When the chef needs ingredients for a special dish (data that might be used for a long time or needs to be very flexible), they request them from the pantry. The pantry manager finds space and gives them what they need. When the dish is made and no longer needs those specific ingredients, they should be returned to the pantry manager to be reused (deallocated). If ingredients are left out in the kitchen and not returned, the pantry gets full over time (memory leak!).

Conclusion

Both stack and heap memory are vital components of how your CPU and programs operate. The stack provides fast, automatic memory management for temporary data, while the heap offers flexibility for dynamically allocated data. Understanding their roles helps in writing more efficient, robust, and bug-free software.

References

댓글

이 블로그의 인기 게시물

Vim 9.2 릴리즈 총정리: 더 빠르고 강력해진 텍스트 편집의 제왕

폐쇄망 SoC 설계자를 위한 가볍고 빠른 Vim 최적화 가이드

에이전트 시대를 위한 터미널 cmux 가이드: 설치부터 AI 활용까지