구글 안티그래비티 완전 분석 — 모델·요금제·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...

CPU 엔지니어가 처음 접하는 리눅스 커널의 기초 개념

🖥️ CPU 엔지니어를 위한 '커널(Kernel)' 완벽 가이드

CPU 엔지니어로서 ISA(Instruction Set Architecture)와 하드웨어 레벨의 연산에 익숙하시다면, 커널은 마치 "보이지 않는 거대한 미지의 소프트웨어 덩어리"처럼 느껴질 수 있습니다. 하지만 사실 커널은 하드웨어와 가장 밀접하게 맞닿아 있는 소프트웨어이며, CPU 입장에서 보면 커널 역시 하나의 명령어 집합에 불과합니다. 학생에게 설명하듯, 기초부터 핵심까지 차근차근 풀어보겠습니다.

1️⃣ 커널은 무엇인가? (거대한 프로그램인가?)

네, 맞습니다. 커널은 일종의 거대한 프로그램입니다. 하지만 일반적인 애플리케이션(카카오톡, 게임 등)과는 성격이 완전히 다릅니다. 커널은 '컴퓨터의 모든 자원을 관리하는 운영체제의 핵심 실행 파일'입니다.

CPU가 하는 일이 '명령어를 읽어와 실행하는 것'이라면, 커널은 '그 명령어들 중 하드웨어를 직접 제어하는 아주 특별한 명령어들을 모아둔 집합체'라고 볼 수 있습니다.

💡 알아두면 좋은 점: 리눅스 커널의 경우 2026년 현재 약 3천만 줄 이상의 코드로 구성되어 있으며, 전 세계 수천 명의 개발자가 지속적으로 기여하고 있습니다. 하지만 이 방대한 코드도 결국 CPU가 이해할 수 있는 기계어로 컴파일되어 실행됩니다.

2️⃣ 커널은 '어디에' 올라가는가?

CPU 엔지니어 입장에서 가장 궁금하실 부분입니다. CPU는 단순히 Fetch-Decode-Execute 루프를 돌 뿐인데, 커널은 어디에 존재할까요?

물리적 위치: 커널은 평소에는 디스크(SSD/HDD)에 저장되어 있다가, 부팅 시 메인 메모리(RAM)의 특정 영역으로 로드됩니다.

메모리 맵핑: 커널은 메모리의 가장 낮은 주소나 가장 높은 주소 등 미리 약속된 특정 주소 공간을 점유합니다.

CPU와의 관계: CPU는 전원이 켜지면 '리셋 벡터'라고 불리는 고정된 주소의 명령어를 읽습니다. 이 명령어들이 연쇄적으로 실행되면서 커널을 메모리에 올리고, CPU의 PC(Program Counter) 레지스터가 커널 코드의 시작 지점을 가리키게 만듭니다.

✅ 결국, 커널이 올라간다는 것은 CPU가 실행할 명령어들이 메모리에 상주하고 있으며, CPU가 언제든지 그 코드로 점프할 준비가 되었다는 뜻입니다.

3️⃣ '커널을 올린다'는 것의 진짜 의미

리눅스에서 "커널을 올렸다(Load)" 혹은 "포팅(Porting)했다"는 말은 다음과 같은 상태를 의미합니다.

1자원 관리의 시작: CPU가 커널 코드를 실행하면서 인터럽트 컨트롤러, 타이머, 메모리 관리 장치(MMU) 등을 초기화합니다.

2모드 전환 (Privilege Level): CPU는 보통 유저 모드와 커널 모드(또는 EL0, EL1 등)라는 권한 레벨을 가집니다. 커널이 로드되면 CPU는 하드웨어를 직접 제어할 수 있는 '특권 모드'에서 동작하기 시작합니다.

3추상화 레이어 구축: CPU는 단순히 레지스터 값을 옮길 뿐이지만, 커널은 이를 통해 "파일", "프로세스", "네트워크 포트" 같은 개념을 만들어냅니다.

4️⃣ CPU는 커널을 어떻게 바라보고 행동하는가?

CPU는 커널을 '특별한 프로그램'이라고 생각하지 않습니다. 그저 '권한이 높은 명령어들의 묶음'으로 봅니다.

⏱️ 스케줄링

CPU는 한 번에 하나의 일만 하지만, 커널은 아주 짧은 시간 간격으로 타이머 인터럽트를 발생시킵니다. 이때 CPU는 하던 일을 멈추고 커널의 '스케줄러 코드'로 점프합니다. 스케줄러는 "이제 A 프로그램 말고 B 프로그램을 실행해"라고 CPU의 레지스터 값들을 바꿔버립니다. CPU 입장에선 그저 시키는 대로 레지스터를 바꾸고 다음 명령어를 실행할 뿐인데, 사용자 입장에서는 멀티태스킹이 되는 것처럼 보이는 것이죠.

📞 시스템 콜 (System Call)

유저 프로그램이 "화면에 글자를 찍어줘"라고 요청하면, CPU는 syscall 같은 특수 명령어를 만납니다. 이때 CPU는 자동으로 권한 레벨을 높여 커널 코드 주소로 점프합니다. 이것이 CPU가 커널과 소통하는 방식입니다.

🔍 실무 팁: CPU 설계 시 Exception Level(EL)이나 Ring 구조를 설계할 때, "이 권한 레벨에서 커널이 어떤 동작을 수행할 것인가"를 함께 고려하면 하드웨어-소프트웨어 인터페이스에 대한 이해가 깊어집니다. ARM 아키텍처의 경우 EL0(User), EL1(Kernel), EL2(Hypervisor), EL3(Secure Monitor) 구조를 참고해 보세요.

5️⃣ 왜 커널 버전이 중요한가?

CPU 엔지니어에게 ISA 버전이 중요하듯, 소프트웨어에게는 커널 버전이 중요합니다.

항목 설명
🆕 새로운 하드웨어 지원 최신 CPU가 나온 경우, 그 CPU의 특수한 레지스터나 새로운 ISA 기능을 활용하려면 커널이 그 기능을 이해할 수 있는 코드를 가지고 있어야 합니다.
🔒 보안과 안정성 오래된 커널에는 하드웨어 보안 취약점(멜트다운, 스펙터 등)에 대한 패치가 없을 수 있습니다.
⚡ 성능 최적화 커널 버전이 올라갈수록 메모리를 관리하는 알고리즘이나 프로세스를 배분하는 방식이 개선되어, 동일한 하드웨어에서도 더 높은 성능을 낼 수 있습니다.

⚠️ 2026년 현재 주목할 점: 최신 리눅스 커널 6.x 시리즈에서는 RISC-V 아키텍처 지원이 크게 강화되었고, ARM의 Confidential Computing(CCA) 기능도 지원됩니다. CPU 설계 시 이러한 커널 트렌드를 파악하면 하드웨어 기능이 실제로 어떻게 활용될지 예측할 수 있습니다.

📌 요약: CPU 엔지니어를 위한 비유

CPU가 '최첨단 요리 도구(칼, 불, 도마)'라면, 커널은 그 도구를 사용해 요리 전체를 진두지휘하는 '수석 셰프'입니다.

🍳 셰프는 레시피(커널 코드)를 머리(메모리)에 담고 있습니다.

🍳 손님(유저 프로그램)이 주문을 하면, 셰프는 도구(CPU)를 사용해 요리를 완성합니다.

🍳 "커널을 올린다"는 것은 주방에 숙련된 셰프를 모셔와서 주방 도구의 위치를 알려주고 일을 시작하게 하는 과정입니다.

커널은 어렵지만, 결국 하드웨어의 잠재력을 끌어내는 가장 강력한 도구입니다. CPU 설계를 하실 때 "내가 설계한 이 레지스터를 커널이 어떻게 제어할까?"를 상상해 보신다면 커널이 훨씬 친숙하게 느껴지실 겁니다.

📚 References

📄 Raw Data
### CPU 엔지니어를 위한 '커널(Kernel)' 완벽 가이드

CPU 엔지니어로서 ISA(Instruction Set Architecture)와 하드웨어 레벨의 연산에 익숙하시다면, 커널은 마치 "보이지 않는 거대한 미지의 소프트웨어 덩어리"처럼 느껴질 수 있습니다. 하지만 사실 커널은 하드웨어와 가장 밀접하게 맞닿아 있는 소프트웨어이며, CPU 입장에서 보면 커널 역시 하나의 명령어 집합에 불과합니다. 학생에게 설명하듯, 기초부터 핵심까지 차근차근 풀어보겠습니다.

---

#### 1. 커널은 무엇인가? (거대한 프로그램인가?)

네, 맞습니다. **커널은 일종의 거대한 프로그램입니다.** 하지만 일반적인 애플리케이션(카카오톡, 게임 등)과는 성격이 완전히 다릅니다. 커널은 **'컴퓨터의 모든 자원을 관리하는 운영체제의 핵심 실행 파일'**입니다.

CPU가 하는 일이 '명령어를 읽어와 실행하는 것'이라면, 커널은 **'그 명령어들 중 하드웨어를 직접 제어하는 아주 특별한 명령어들을 모아둔 집합체'**라고 볼 수 있습니다. 

#### 2. 커널은 '어디에' 올라가는가?

CPU 엔지니어 입장에서 가장 궁금하실 부분입니다. CPU는 단순히 Fetch-Decode-Execute 루프를 돌 뿐인데, 커널은 어디에 존재할까요?

*   **물리적 위치:** 커널은 평소에는 디스크(SSD/HDD)에 저장되어 있다가, 부팅 시 **메인 메모리(RAM)의 특정 영역**으로 로드됩니다.
*   **메모리 맵핑:** 커널은 메모리의 가장 낮은 주소나 가장 높은 주소 등 **미리 약속된 특정 주소 공간**을 점유합니다.
*   **CPU와의 관계:** CPU는 전원이 켜지면 '리셋 벡터'라고 불리는 고정된 주소의 명령어를 읽습니다. 이 명령어들이 연쇄적으로 실행되면서 커널을 메모리에 올리고, CPU의 PC(Program Counter) 레지스터가 커널 코드의 시작 지점을 가리키게 만듭니다.

결국, **커널이 올라간다는 것은 CPU가 실행할 명령어들이 메모리에 상주하고 있으며, CPU가 언제든지 그 코드로 점프할 준비가 되었다는 뜻**입니다.

#### 3. '커널을 올린다'는 것의 진짜 의미

리눅스에서 "커널을 올렸다(Load)" 혹은 "포팅(Porting)했다"는 말은 다음과 같은 상태를 의미합니다.

1.  **자원 관리의 시작:** CPU가 커널 코드를 실행하면서 인터럽트 컨트롤러, 타이머, 메모리 관리 장치(MMU) 등을 초기화합니다.
2.  **모드 전환 (Privilege Level):** CPU는 보통 유저 모드와 커널 모드(또는 EL0, EL1 등)라는 권한 레벨을 가집니다. 커널이 로드되면 CPU는 하드웨어를 직접 제어할 수 있는 **'특권 모드'**에서 동작하기 시작합니다.
3.  **추상화 레이어 구축:** CPU는 단순히 레지스터 값을 옮길 뿐이지만, 커널은 이를 통해 "파일", "프로세스", "네트워크 포트" 같은 개념을 만들어냅니다.

#### 4. CPU는 커널을 어떻게 바라보고 행동하는가?

CPU는 커널을 '특별한 프로그램'이라고 생각하지 않습니다. 그저 **'권한이 높은 명령어들의 묶음'**으로 봅니다. 

*   **스케줄링:** CPU는 한 번에 하나의 일만 하지만, 커널은 아주 짧은 시간 간격으로 타이머 인터럽트를 발생시킵니다. 이때 CPU는 하던 일을 멈추고 **커널의 '스케줄러 코드'**로 점프합니다. 스케줄러는 "이제 A 프로그램 말고 B 프로그램을 실행해"라고 CPU의 레지스터 값들을 바꿔버립니다. CPU 입장에선 그저 시키는 대로 레지스터를 바꾸고 다음 명령어를 실행할 뿐인데, 사용자 입장에서는 멀티태스킹이 되는 것처럼 보이는 것이죠.
*   **시스템 콜(System Call):** 유저 프로그램이 "화면에 글자를 찍어줘"라고 요청하면, CPU는 `syscall` 같은 특수 명령어를 만납니다. 이때 CPU는 자동으로 권한 레벨을 높여 **커널 코드 주소**로 점프합니다. 이것이 CPU가 커널과 소통하는 방식입니다.

#### 5. 왜 커널 버전이 중요한가?

CPU 엔지니어에게 ISA 버전이 중요하듯, 소프트웨어에게는 커널 버전이 중요합니다.

*   **새로운 하드웨어 지원:** 최신 CPU가 나온 경우, 그 CPU의 특수한 레지스터나 새로운 ISA 기능을 활용하려면 커널이 그 기능을 이해할 수 있는 코드를 가지고 있어야 합니다.
*   **보안과 안정성:** 오래된 커널에는 하드웨어 보안 취약점(멜트다운, 스펙터 등)에 대한 패치가 없을 수 있습니다.
*   **성능 최적화:** 커널 버전이 올라갈수록 메모리를 관리하는 알고리즘이나 프로세스를 배분하는 방식이 개선되어, 동일한 하드웨어에서도 더 높은 성능을 낼 수 있습니다.

#### 요약: CPU 엔지니어를 위한 비유

CPU가 **'최첨단 요리 도구(칼, 불, 도마)'**라면, 커널은 그 도구를 사용해 요리 전체를 진두지휘하는 **'수석 셰프'**입니다. 
- 셰프는 레시피(커널 코드)를 머리(메모리)에 담고 있습니다. 
- 손님(유저 프로그램)이 주문을 하면, 셰프는 도구(CPU)를 사용해 요리를 완성합니다. 
- "커널을 올린다"는 것은 주방에 숙련된 셰프를 모셔와서 주방 도구의 위치를 알려주고 일을 시작하게 하는 과정입니다.

커널은 어렵지만, 결국 하드웨어의 잠재력을 끌어내는 가장 강력한 도구입니다. CPU 설계를 하실 때 "내가 설계한 이 레지스터를 커널이 어떻게 제어할까?"를 상상해 보신다면 커널이 훨씬 친숙하게 느껴지실 겁니다.
---

## References

- [위키백과: 커널 (운영 체제)](https://ko.wikipedia.org/wiki/커널_(운영_체제))
- [리눅스 커널 아카이브](https://www.kernel.org/)

댓글

이 블로그의 인기 게시물

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

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

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