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

Secure Boot vs Non-Secure Boot: SoC 하드웨어와 OTP의 역할 상세 분석

🔐 SoC Secure Boot vs Non-Secure Boot: 하드웨어 보안의 핵심 원리

스마트폰, 서버, 임베디드 시스템 등 현대 컴퓨팅 기기의 전원을 켜면 OS가 로딩되기까지 SoC 내부에서는 시스템 신뢰성을 검증하는 치열한 과정이 진행됩니다. 이 부트 시퀀스(Boot Sequence)의 핵심 개념인 Secure BootNon-Secure Boot의 차이를 SoC 하드웨어와 OTP 메모리 관점에서 상세히 분석해보겠습니다.

⚡ Non-Secure Boot: 속도와 편의성 우선

Non-Secure Boot는 보안 검증 없이 저장 매체(eMMC, UFS, SPI Flash 등)의 부트 로더를 그대로 실행하는 방식입니다.

▶ 동작 방식: SoC 전원 인가 → 내부 ROM의 초기 코드 실행 → 외부 저장장치에서 부트로더 로드 → 제어권 이전

▶ 특징: 소프트웨어 무결성 검사 없음. 악의적 수정도 감지 불가

▶ 용도: 초기 개발 단계, 저가형 임베디드 장치, 빈번한 코드 수정 환경

🛡️ Secure Boot: Chain of Trust(신뢰의 사슬)

Secure Boot는 하드웨어 수준에서 소프트웨어 진위를 확인하는 프로세스입니다. 시스템 부팅부터 OS 실행까지 각 단계의 소프트웨어가 인가된 것인지 검증하며, 이를 Chain of Trust라고 합니다.

🔹 동작 방식: Boot ROM이 다음 단계 코드를 메모리에 로드 → 디지털 서명 검증 → 서명 불일치 시 부팅 즉시 중단

🔹 핵심 원리: 제조사가 개인키로 서명 → SoC 내부에 공개키 해시값 저장 → 실행 전 해싱 비교로 변조 여부 확인

🔧 SoC 하드웨어적 차이점

Secure Boot 구현을 위해서는 Non-Secure Boot 장치에 없는 특수 하드웨어 블록이 필요합니다.

🏛️ Hardware Root of Trust (RoT)

보안 부트의 시작점은 절대 변경 불가능한 Boot ROM입니다. SoC 제조 시 하드와이어드 방식으로 로직이 심어지며, 소프트웨어적 수정이 불가능합니다. 이 Boot ROM이 부팅 첫 단계에서 검증 로직을 수행합니다.

⚙️ Cryptographic Accelerator (암호화 가속기)

부팅 시 수십~수백 MB 데이터를 SHA-256, RSA, ECC 알고리즘으로 검증하는 과정은 CPU에 큰 부담입니다. SoC 내부의 하드웨어 암호 가속기(Crypto Engine)가 이를 전담하여 부팅 속도와 보안성을 동시에 확보합니다.

🔒 Bus Isolation (버스 격리)

Secure Boot 상태에서는 암호키 등 보안 데이터가 일반 버스를 통해 외부 노출되지 않도록 하드웨어적으로 차단합니다. ARM의 TrustZone 기술이 대표적이며, Secure World와 Non-secure World를 하드웨어적으로 분리합니다.

💾 OTP(One-Time Programmable)와 Key 저장소

Secure Boot에서 가장 중요한 질문: "검증용 공개키를 어디에 안전하게 저장하는가?" 외부 Flash에 저장하면 해커가 키를 바꿔치기할 수 있습니다. 이때 등장하는 것이 OTP(eFuse)입니다.

📌 OTP란?

하드웨어적으로 한 번만 데이터를 기록할 수 있는 메모리입니다. eFuse(Electronic Fuse) 방식이 가장 흔하며, 특정 비트에 높은 전압을 가해 미세 회로를 물리적으로 끊어버립니다. 한 번 끊어진 회로는 재연결 불가능하므로 데이터가 영구 고정됩니다.

📋 OTP의 세 가지 핵심 역할

1️⃣ Root Public Key Hash 저장
제조사의 공개키 해시값(256비트)을 OTP에 기록. 부팅 시 Boot ROM이 로드된 소프트웨어의 공개키를 해싱하여 OTP 값과 비교 검증

2️⃣ Security Life Cycle 관리
'Secure Boot Enable' 비트(Fuse) 존재. 개발 중에는 Non-secure 모드, 출하 시 비트를 Blow하면 영구적으로 Secure Boot 모드로만 동작

3️⃣ Rollback Protection
현재 버전 숫자를 OTP에 기록. 하드웨어가 OTP 버전보다 낮은 소프트웨어 실행을 거부하여 보안 취약점이 있는 구버전으로의 다운그레이드 방지

📊 Non-Secure vs Secure Boot 비교

구분 Non-Secure Boot Secure Boot
검증 여부 검증 없음 (신뢰 기반) 디지털 서명 검증
SoC 하드웨어 표준 Boot ROM Boot ROM + Crypto Engine + OTP
공격 내성 악성 부트로더 주입 취약 하드웨어 수준 변조 방지
유연성 높음 (자유로운 코드 수정) 낮음 (인가된 서명자만)
신뢰의 기점 소프트웨어 하드웨어 (Root of Trust)

🔍 실무 적용 시 고려사항

✓ 개발 단계: Non-Secure Boot로 시작하여 빠른 개발 사이클 유지

✓ 양산 단계: OTP Fuse를 Blow하여 Secure Boot 활성화 (되돌릴 수 없음!)

✓ 키 관리: 개인키는 HSM(Hardware Security Module)에서 엄격히 관리

✓ 펌웨어 업데이트: 새 버전마다 서명 필요, OTA 업데이트 시 버전 관리 주의

🎯 결론

Secure Boot는 단순한 소프트웨어 기능이 아닌, SoC 하드웨어 로직, OTP 메모리의 물리적 특성, 암호학적 알고리즘이 결합된 고도의 보안 시스템입니다.

우리가 사용하는 기기가 해킹으로부터 안전할 수 있는 이유는, 부팅되는 짧은 순간 SoC 내부에서 OTP에 새겨진 "절대 변하지 않는 약속"을 근거로 수많은 검증 프로세스가 작동하고 있기 때문입니다. 하드웨어 엔지니어링 관점에서 이러한 설계를 이해하는 것은 안전한 시스템 구축의 첫걸음입니다.

📚 참고 자료: ARM TrustZone Technology | NXP Secure Boot Overview | eFuse and OTP Technology

📄 Raw Data
임베디드 시스템이나 스마트폰, 서버 등 현대의 컴퓨팅 기기를 처음 켤 때 우리는 단순히 OS가 로딩되는 것만 보게 됩니다. 하지만 그 이면의 SoC(System on Chip) 내부에서는 이 시스템이 '믿을 수 있는 상태'인지 확인하는 치열한 과정이 일어납니다. 이것이 바로 **부트 시퀀스(Boot Sequence)**이며, 여기에서 핵심이 되는 개념이 **Secure Boot(보안 부트)**와 **Non-Secure Boot(일반 부트)**입니다.

오늘은 이 두 부트 방식의 차이점을 SoC 하드웨어 구조와 OTP(One-Time Programmable) 메모리의 관점에서 상세히 파헤쳐 보겠습니다.

---

### 1. Non-Secure Boot: 신뢰보다는 속도와 편의성
**Non-Secure Boot**는 말 그대로 보안 검증 과정 없이 저장 매체(eMMC, UFS, SPI Flash 등)에 있는 부트 로더를 그대로 읽어와 실행하는 방식입니다.

*   **동작 방식:** SoC가 전원이 켜지면 내부 ROM(Read-Only Memory)에 기록된 아주 작은 코드가 실행됩니다. 이 코드는 외부 저장 장치에서 부트 로더(UBL, 부트로더 등)를 찾아 복사한 뒤, 해당 주소로 점프하여 제어권을 넘깁니다.
*   **특징:** 하드웨어가 소프트웨어의 무결성(Integrity)을 검사하지 않습니다. 즉, 누군가 부트 코드를 악의적으로 수정하더라도 SoC는 이를 감지하지 못하고 실행합니다.
*   **용도:** 보안이 중요하지 않은 초기 개발 단계나 저가형 임베디드 장치에서 주로 사용됩니다. 개발자가 코드를 자주 수정하고 구워야 하는 환경에서는 검증 과정이 번거롭기 때문에 유리합니다.

### 2. Secure Boot: 신뢰의 사슬(Chain of Trust)
**Secure Boot**는 하드웨어 수준에서 소프트웨어의 진위 여부를 확인하는 프로세스입니다. 시스템이 켜지는 순간부터 OS가 실행될 때까지 각 단계의 소프트웨어가 승인된 것인지 확인하며, 이를 **Chain of Trust(신뢰의 사슬)**라고 부릅니다.

*   **동작 방식:** SoC 내부의 고정된 코드(Boot ROM)가 다음 단계의 코드(Bootloader)를 메모리에 올린 후, 코드의 **디지털 서명(Digital Signature)**을 검증합니다. 서명이 올바르지 않으면 부팅을 즉시 중단합니다.
*   **핵심 원리:** 제조사는 배포할 소프트웨어를 개인키(Private Key)로 서명하고, SoC 내부에는 그에 대응하는 공개키(Public Key)의 해시값을 저장해 둡니다. 하드웨어는 실행 전 소프트웨어를 해싱한 값과 서명을 비교하여 변조 여부를 확인합니다.

---

### 3. SoC 관점에서의 하드웨어적 차이점

SoC 설계 관점에서 Secure Boot를 구현하기 위해서는 Non-Secure Boot 장치에는 없는 특수 하드웨어 블록들이 필요합니다.

#### A. Hardware Root of Trust (RoT)
보안 부트의 시작점은 절대 변하지 않는 **Boot ROM**입니다. SoC가 제조될 때 내부에 하드와이어드(Hard-wired) 방식으로 로직이 심어지며, 이는 소프트웨어적으로 절대 수정할 수 없습니다. 이 Boot ROM이 부팅의 가장 첫 단계에서 검증 로직을 수행합니다.

#### B. Cryptographic Accelerator (암호화 가속기)
부팅 시 수십~수백 MB의 데이터를 SHA-256이나 RSA, ECC 알고리즘으로 검증하는 과정은 CPU에 큰 부담을 줍니다. 따라서 SoC 내부에는 암호 연산을 전담하는 하드웨어 가속기(Crypto Engine)를 탑재하여 부팅 속도를 높이고 보안성을 강화합니다.

#### C. Bus Isolation (버스 격리)
Secure Boot 상태에서는 보안이 중요한 데이터(예: 암호키)가 일반적인 버스를 통해 외부로 노출되지 않도록 하드웨어적으로 차단합니다. ARM의 **TrustZone** 기술 등이 대표적이며, Secure World와 Non-secure World를 하드웨어적으로 분리하여 관리합니다.

---

### 4. OTP(One-Time Programmable)와 Key 저장소의 비밀

Secure Boot에서 가장 중요한 것은 "검증에 사용할 공개키를 어디에 믿음직하게 저장하는가?"입니다. 외부 Flash 메모리에 저장하면 해커가 키 자체를 바꿔치기할 수 있기 때문입니다. 이때 등장하는 것이 바로 **OTP(eFuse)**입니다.

#### OTP란 무엇인가?
**OTP(One-Time Programmable)**는 하드웨어적으로 한 번만 데이터를 기록할 수 있는 메모리입니다. 가장 흔한 방식은 **eFuse(Electronic Fuse)** 방식인데, 특정 비트에 높은 전압을 가해 미세한 회로를 물리적으로 끊어버리는 방식입니다. 한 번 끊어진 회로는 다시 연결할 수 없으므로 데이터의 영구적인 고정이 가능합니다.

#### OTP의 역할
1.  **Root Public Key Hash 저장:** 제조사는 자신의 공개키를 그대로 넣기에는 용량이 부족하므로, 공개키의 해시값(예: 256비트)을 OTP에 굽습니다. 부팅 시 Boot ROM은 로드된 소프트웨어의 공개키를 해싱하여 OTP에 저장된 값과 일치하는지 확인합니다.
2.  **Security Life Cycle 관리:** SoC에는 'Secure Boot Enable'이라는 특정 비트(Fuse)가 있습니다. 개발 중에는 이 비트를 굽지 않아 Non-secure 모드로 사용하다가, 제품 출하 시 이 비트를 끊어버리면(Blow) 해당 SoC는 영구적으로 Secure Boot 모드로만 동작하게 됩니다.
3.  **Rollback Protection (버전 관리):** 보안 취약점이 발견된 옛날 버전의 OS로 되돌아가는 것을 막기 위해, 현재의 버전 숫자를 OTP에 기록합니다. 하드웨어는 OTP에 기록된 버전보다 낮은 소프트웨어는 실행을 거부합니다.

---

### 5. 요약 및 결론

| 구분 | Non-Secure Boot | Secure Boot |
| :--- | :--- | :--- |
| **검증 여부** | 검증 없음 (신뢰 기반) | 디지털 서명 검증 (무결성 기반) |
| **SoC 하드웨어** | 표준 Boot ROM | Boot ROM + Crypto Engine + OTP |
| **공격 내성** | 악성 부트로더 주입에 취약 | 하드웨어 수준의 변조 방지 |
| **유연성** | 높음 (누구나 코드 수정 가능) | 낮음 (인가된 서명자만 가능) |
| **신뢰의 기점** | 소프트웨어 | 하드웨어 (Root of Trust) |

결론적으로, **Secure Boot**는 단순히 소프트웨어적인 기능이 아니라 **SoC 하드웨어 로직, OTP 메모리의 물리적 특성, 그리고 암호학적 알고리즘**이 결합된 고도의 보안 시스템입니다. 우리가 사용하는 기기가 해킹으로부터 안전할 수 있는 이유는, 부팅되는 그 짧은 순간 SoC 내부에서 OTP에 새겨진 "절대 변하지 않는 약속"을 근거로 수많은 검증 프로세스가 작동하고 있기 때문입니다.

하드웨어 엔지니어링 관점에서 이러한 설계를 이해하는 것은 안전한 시스템 구축의 첫걸음이라고 할 수 있습니다.
---

## References

- [ARM TrustZone Technology](https://www.arm.com/technologies/trustzone-for-cortex-a)
- [NXP Secure Boot Overview](https://www.nxp.com/docs/en/application-note/AN12196.pdf)
- [Understanding eFuse and OTP](https://en.wikipedia.org/wiki/EFuse)

댓글

이 블로그의 인기 게시물

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

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

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