<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>AI코딩 &#8211; WONIZZ.LOG</title>
	<atom:link href="https://blog.wonizz.com/tag/ai%EC%BD%94%EB%94%A9/feed/" rel="self" type="application/rss+xml" />
	<link>https://blog.wonizz.com</link>
	<description>AI 자동화를 직접 굴려 본 개발자의 실무 교훈</description>
	<lastBuildDate>Sun, 18 Oct 2026 04:51:44 +0000</lastBuildDate>
	<language>ko-KR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0.2</generator>

<image>
	<url>https://i0.wp.com/blog.wonizz.com/wp-content/uploads/2026/08/wz-siteicon-512.png?fit=32%2C32&#038;ssl=1</url>
	<title>AI코딩 &#8211; WONIZZ.LOG</title>
	<link>https://blog.wonizz.com</link>
	<width>32</width>
	<height>32</height>
</image> 
<site xmlns="com-wordpress:feed-additions:1">152411368</site>	<item>
		<title>[AI 코딩] 안티그래비티 사용법, agy 로 버그 3개 찾기 13초</title>
		<link>https://blog.wonizz.com/2026/10/07/antigravity-how-to-use/</link>
					<comments>https://blog.wonizz.com/2026/10/07/antigravity-how-to-use/#respond</comments>
		
		<dc:creator><![CDATA[워니즈]]></dc:creator>
		<pubDate>Wed, 07 Oct 2026 00:58:06 +0000</pubDate>
				<category><![CDATA[AI & LLM]]></category>
		<category><![CDATA[agy]]></category>
		<category><![CDATA[AI코딩]]></category>
		<category><![CDATA[antigravity]]></category>
		<category><![CDATA[안티그래비티]]></category>
		<category><![CDATA[터미널CLI]]></category>
		<guid isPermaLink="false">https://blog.wonizz.com/?p=4212</guid>

					<description><![CDATA[<p>The standard Lorem Ipsum passage, used since the 1500s<br />
"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."</p>
<p>Section 1.10.32 of "de Finibus Bonorum et Malorum", written by Cicero in 45 BC<br />
"Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla pariatur?"</p>
<p>1914 translation by H. Rackham<br />
"But I must explain to you how all this mistaken idea of denouncing pleasure and praising pain was born and I will give you a complete account of the system, and expound the actual teachings of the great explorer of the truth, the master-builder of human happiness. No one rejects, dislikes, or avoids pleasure itself, because it is pleasure, but because those who do not know how to pursue pleasure rationally encounter consequences that are extremely painful. Nor again is there anyone who loves or pursues or desires to obtain pain of itself, because it is pain, but because occasionally circumstances occur in which toil and pain can procure him some great pleasure. To take a trivial example, which of us ever undertakes laborious physical exercise, except to obtain some advantage from it? But who has any right to find fault with a man who chooses to enjoy a pleasure that has no annoying consequences, or one who avoids a pain that produces no resultant pleasure?"</p>
<p>Section 1.10.33 of "de Finibus Bonorum et Malorum", written by Cicero in 45 BC<br />
"At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil impedit quo minus id quod maxime placeat facere possimus, omnis voluptas assumenda est, omnis dolor repellendus. Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet ut et voluptates repudiandae sint et molestiae non recusandae. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat."</p>
<p>1914 translation by H. Rackham<br />
"On the other hand, we denounce with righteous indignation and dislike men who are so beguiled and demoralized by the charms of pleasure of the moment, so blinded by desire, that they cannot foresee the pain and trouble that are bound to ensue; and equal blame belongs to those who fail in their duty through weakness of will, which is the same as saying through shrinking from toil and pain. These cases are perfectly simple and easy to distinguish. In a free hour, when our power of choice is untrammelled and when nothing prevents our being able to do what we like best, every pleasure is to be welcomed and every pain avoided. But in certain circumstances and owing to the claims of duty or the obligations of business it will frequently occur that pleasures have to be repudiated and annoyances accepted. The wise man therefore always holds in these matters to this principle of selection: he rejects pleasures to secure other greater pleasures, or else he endures pains to avoid worse pains."</p>
<p>안티그래비티 사용법을 2026-10-03 빈 폴더에서 agy 1.2.12 로 직접 따라 했습니다. 버그 3개 찾기 13초, 33줄 스크립트 받기 8초, 8줄 셸 스크립트 한국어 설명 33초와 파일 쓰기가 거부된 곳, 확인하지 못한 요금까지 상황별로 정리했습니다.</p>
<p>The post <a rel="nofollow" href="https://blog.wonizz.com/2026/10/07/antigravity-how-to-use/">[AI 코딩] 안티그래비티 사용법, agy 로 버그 3개 찾기 13초</a> appeared first on <a rel="nofollow" href="https://blog.wonizz.com">WONIZZ.LOG</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>The standard Lorem Ipsum passage, used since the 1500s<br />
"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."</p>
<p>Section 1.10.32 of "de Finibus Bonorum et Malorum", written by Cicero in 45 BC<br />
"Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla pariatur?"</p>
<p>1914 translation by H. Rackham<br />
"But I must explain to you how all this mistaken idea of denouncing pleasure and praising pain was born and I will give you a complete account of the system, and expound the actual teachings of the great explorer of the truth, the master-builder of human happiness. No one rejects, dislikes, or avoids pleasure itself, because it is pleasure, but because those who do not know how to pursue pleasure rationally encounter consequences that are extremely painful. Nor again is there anyone who loves or pursues or desires to obtain pain of itself, because it is pain, but because occasionally circumstances occur in which toil and pain can procure him some great pleasure. To take a trivial example, which of us ever undertakes laborious physical exercise, except to obtain some advantage from it? But who has any right to find fault with a man who chooses to enjoy a pleasure that has no annoying consequences, or one who avoids a pain that produces no resultant pleasure?"</p>
<p>Section 1.10.33 of "de Finibus Bonorum et Malorum", written by Cicero in 45 BC<br />
"At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil impedit quo minus id quod maxime placeat facere possimus, omnis voluptas assumenda est, omnis dolor repellendus. Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet ut et voluptates repudiandae sint et molestiae non recusandae. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat."</p>
<p>1914 translation by H. Rackham<br />
"On the other hand, we denounce with righteous indignation and dislike men who are so beguiled and demoralized by the charms of pleasure of the moment, so blinded by desire, that they cannot foresee the pain and trouble that are bound to ensue; and equal blame belongs to those who fail in their duty through weakness of will, which is the same as saying through shrinking from toil and pain. These cases are perfectly simple and easy to distinguish. In a free hour, when our power of choice is untrammelled and when nothing prevents our being able to do what we like best, every pleasure is to be welcomed and every pain avoided. But in certain circumstances and owing to the claims of duty or the obligations of business it will frequently occur that pleasures have to be repudiated and annoyances accepted. The wise man therefore always holds in these matters to this principle of selection: he rejects pleasures to secure other greater pleasures, or else he endures pains to avoid worse pains."</p>
<div class="box-4212-steps" style="border:2px solid #2563eb;border-radius:8px;padding:14px 18px;margin:0 0 24px;background:#f1f5ff">
<strong>안티그래비티 사용법, 3단계로 먼저 보면 이렇습니다.</strong></p>
<ol>
<li><strong>설치 확인</strong> 터미널에 <code>agy --version</code> 을 쳐서 버전이 나오는지 봅니다(이 글은 1.2.12 기준, 설치 과정은 다루지 않았습니다)</li>
<li><strong>폴더로 이동</strong> 시험할 작업 폴더로 <code>cd</code> 로 들어갑니다</li>
<li><strong>한 줄 입력</strong> <code>agy -p "할 일"</code> 을 보냅니다. 권한이 거부되면 요청 문장을 바꿔 다시 보냅니다</li>
</ol>
</div>
<p>2026-10-03 새벽 빈 폴더에서 안티그래비티 CLI(<code>agy</code>)로 안티그래비티 사용법을 상황별로 따라 해 보니, 버그 3개는 13초, 33줄 코드는 8초, 8줄 셸 스크립트 설명은 33초 만에 답이 왔습니다. 그런데 처음 보낸 요청 두 번은 권한 거부로 아무것도 남기지 않았고, 종료 코드는 0이었습니다.</p>
<p>안녕하세요? 정리하는 개발자 워니즈입니다. IDE 가 아니라 터미널용 Antigravity CLI 로 해 본 안티그래비티 사용법을 상황별로 정리했고, 이번 시험을 위해 새로 가입한 서비스는 없습니다.</p>
<ul>
<li><strong>무엇을 했나</strong> 안티그래비티 사용법의 기본은 작업 폴더에서 <code>agy -p "할 일"</code> 한 줄을 보내는 것이고, 저는 agy 1.2.12 로 세 상황에 요청 아홉 개를 보냈습니다</li>
<li><strong>결과 숫자</strong> 읽고 답하는 일(버그 3개 13초, 설명 33초)은 바로 됐고, 파일 쓰기와 명령 실행은 거부돼 요청 문장을 바꾼 뒤에야 결과가 나왔습니다(8초, 33초)</li>
<li><strong>누구에게 쓸모</strong> 터미널에서 AI 에게 버그 찾기와 코드 설명을 맡겨 보려는 개발자, 그리고 그 결과를 스크립트로 받으려는 분께 맞습니다</li>
</ul>
<figure class="wp-block-table">
<table>
<thead>
<tr>
<th>상황</th>
<th>막힌 요청</th>
<th>통한 요청</th>
<th>걸린 시간</th>
</tr>
</thead>
<tbody>
<tr>
<td>디버깅</td>
<td>없음</td>
<td>&#8220;고치지 말고 문제와 고칠 방법만&#8221;</td>
<td>13초</td>
</tr>
<tr>
<td>새 기능</td>
<td>&#8220;현재 폴더에 만들어 줘&#8221;(write_file 거부)</td>
<td>&#8220;파일은 만들지 말고 코드만 출력&#8221;</td>
<td>8초</td>
</tr>
<tr>
<td>코드 공부</td>
<td>&#8220;실행하지는 마&#8221;(command 거부)</td>
<td>&#8220;터미널 명령은 쓰지 말고 파일 읽기만&#8221;</td>
<td>33초</td>
</tr>
<tr>
<td>기본 모델</td>
<td>429 오류(종료 코드 3)</td>
<td><code>--model claude-sonnet-4-6</code></td>
<td>5초</td>
</tr>
</tbody>
</table>
</figure>
<h2 id="s1">1. 안티그래비티 사용법, 세 가지를 시켜 보니 몇 초 걸렸을까?</h2>
<p>짧게는 8초, 길게는 33초였습니다. 2026-10-03 05:13~05:17 KST, macOS 27.0 arm64 와 agy 1.2.12 로 <code>/tmp</code> 아래 새 폴더 세 개에서만 돌렸고, 시간은 명령 앞뒤 <code>date +%s</code> 의 차이입니다. 이날 기본 모델이 429 로 끝나 세 상황 모두 Claude Sonnet 4.6 으로 돌렸습니다.<br />
<img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/blog.wonizz.com/wp-content/uploads/2026/10/01-chart.png?w=1200&#038;ssl=1" alt="안티그래비티 사용법 시험에서 보낸 요청 9개의 걸린 시간을 초 단위 막대로 비교한 그림, 만들기 거부와 실행마 거부 두 요청도 14초·7초로 표시된다" /><br />
<strong>권한이 거부돼 아무것도 만들지 못한 두 번도 종료 코드는 0이었습니다.</strong> 이 안티그래비티 사용법을 스크립트로 옮긴다면 종료 코드가 아니라 결과 파일이나 답 내용으로 성공을 판정해야 합니다.</p>
<h2 id="s2">2. 디버깅할 때 버그 3개를 찾게 하려면?</h2>
<p>파일이 있는 폴더에서 범위를 묶어 묻습니다. 22줄짜리 <code>orders.py</code> 에 흔한 실수 셋을 심어 두고 파일은 고치지 말고 문제가 있는 함수와 고칠 방법만 알려 달라고 보내자 13초 만에 셋 다 줄 번호와 함께 짚었고, 빠진 것도 지어낸 것도 없었습니다. 답 뒤에도 파일은 그대로였습니다.</p>
<figure class="wp-block-table">
<table>
<thead>
<tr>
<th>함수</th>
<th>심어 둔 문제</th>
<th>agy 가 짚은 줄</th>
</tr>
</thead>
<tbody>
<tr>
<td>average_price</td>
<td>빈 목록이면 0으로 나눔</td>
<td>5번 줄, ZeroDivisionError</td>
</tr>
<tr>
<td>add_tag</td>
<td>기본값 <code>tags=[]</code> 를 호출끼리 공유</td>
<td>8번 줄, 가변 기본 인자</td>
</tr>
<tr>
<td>page</td>
<td>끝 인덱스에서 1을 더 뺌</td>
<td>15번 줄, off-by-one</td>
</tr>
</tbody>
</table>
</figure>
<p><img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/blog.wonizz.com/wp-content/uploads/2026/10/04-diagram-2.png?w=1200&#038;ssl=1" alt="orders.py 에서 agy 가 짚은 버그 3개를 함수 이름과 줄 번호로 정리한 카드 그림(average_price 5번 줄, add_tag 8번 줄, page 15번 줄), repro.log 응답을 다시 그린 것으로 실제 터미널 캡처는 아니다" /><br />
가변 기본 인자 설명은 <a href="https://docs.python.org/3/tutorial/controlflow.html#default-argument-values" target="_blank" rel="noopener">파이썬 공식 튜토리얼의 기본 인자 값 절</a>과 같았습니다. 다만 버그 위치를 제가 미리 아는 파일이었고, 실제 코드에서 무엇을 놓치는지는 이 기록으로 말할 수 없습니다.</p>
<h2 id="s3">3. 새 기능을 만들 때 &#8216;만들어 줘&#8217; 대신 무엇이라고 해야 하나요?</h2>
<p>&#8220;코드만 출력해 줘&#8221; 입니다. &#8220;현재 폴더에 wordcount.py 를 만들어 줘&#8221; 는 14초 뒤 아래 문구만 남기고 끝났고 폴더는 비어 있었습니다.</p>
<blockquote><p>
a tool required the &#8220;write_file&#8221; permission that headless mode cannot prompt for, so it was auto-denied.
</p></blockquote>
<p><img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/blog.wonizz.com/wp-content/uploads/2026/10/05-diagram-1.png?w=1200&#038;ssl=1" alt="같은 폴더에서 '만들어 줘'는 write_file 권한 자동 거부로 끝나고 '출력해 줘'로 문장만 바꾸자 성공한 결과를 좌우로 비교한 그림(repro.log 응답을 다시 그린 것)" /><br />
&#8220;파일은 만들지 말고 코드만 출력&#8221; 으로 바꾸자 8초에 33줄이 왔고, 저장해 돌리니 동작했습니다. 그런데 시험 글에서 Apple 과 <code>banana.</code> 를 다른 단어로 세어 apple 을 3회로 냈습니다. <code>-c</code> 로 대화를 이어 대소문자와 문장부호를 떼게 하자 8초에 37줄 코드가 왔고 사람이 센 값(apple 4회, banana 3회)과 같아졌습니다.<br />
<img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/blog.wonizz.com/wp-content/uploads/2026/10/06-chart.png?w=1200&#038;ssl=1" alt="wordcount.py 첫 코드와 고친 코드를 같은 시험 글에 돌린 결과를 막대로 비교한 그림, apple 이 3회에서 4회로 바뀐 막대가 강조돼 있다" /><br />
오류 없이 도는 코드의 빈틈은 사람이 일부러 까다로운 입력을 넣어야 보였습니다. 테스트를 통과했는데 틀렸던 비슷한 일은 <a href="https://blog.wonizz.com/2026/09/27/vibe-coding-reality-selftest-real-data/">테스트는 통과했는데 261편 중 6편만 맞았다</a>에 적었습니다.</p>
<h2 id="s4">4. 코드 공부할 때 실행 권한 거부를 피하려면?</h2>
<p>쓸 도구를 직접 적습니다. 8줄짜리 <code>backup.sh</code> 를 &#8220;줄마다 설명, 실행하지는 마&#8221; 로 물었더니 7초 만에 command 권한 거부로 끝났고, &#8220;터미널 명령은 쓰지 말고 파일 읽기만&#8221; 을 앞에 붙이자 33초 만에 8줄 전부를 한국어로 풀었습니다. <code>-c</code> 로 &#8220;처음 돌리기 전 조심할 점 세 줄&#8221; 을 묻자 14초 만에 가장 위험한 줄을 짚었습니다.</p>
<blockquote><p>
7번째 줄의 <code>-delete</code> 때문에 <code>~/backups/</code> 안에 있는 7일 이상 된 <code>.tar.gz</code> 파일이 모두 즉시 삭제됩니다.
</p></blockquote>
<p><img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/blog.wonizz.com/wp-content/uploads/2026/10/07-diagram.png?w=1200&#038;ssl=1" alt="backup.sh 설명을 받기까지 보낸 세 번의 요청 흐름도, 실행하지는 마(거부, 7초) 다음 파일 읽기만(8줄 설명, 33초) 다음 조심할 점 묻기(14초) 순서를 로그 값으로 다시 그렸다" /><br />
<code>-c</code> 는 앞 대화의 파일을 기억했고, <code>--output-format json</code> 은 <code>status</code> 와 <code>response</code> 를 따로 줘서 스크립트로 받기 편했습니다(출력은 부록). 권한을 어디까지 열지는 <a href="https://blog.wonizz.com/2026/08/03/ai-agent-permission-recovery-cost/">AI 에이전트 권한 설계</a>에서 다룬 적이 있습니다.</p>
<h2 id="s5">5. 안티그래비티는 무료인가요, 그리고 안 되는 것은?</h2>
<p>요금표와 무료 범위는 이번에 공식 문서로 확인하지 못했습니다. 안티그래비티 사용법을 따라 하다 보면 먼저 한도 오류를 만날 수 있습니다. 기본 모델과 제미나이 모델 두 개는 &#8220;Individual quota reached. Please upgrade your subscription to increase your limits.&#8221; 로 끝났고, Claude 와 GPT 쪽 모델로 바꾸자 5초 만에 답했습니다. <code>/usage</code> 화면에는 모델 묶음마다 주간 한도와 5시간 한도 행이 따로 있었습니다(비율 값은 가림). 가격은 <a href="https://antigravity.google/" target="_blank" rel="noopener">Google Antigravity 공식 사이트</a>에서 확인하셔야 합니다.<br />
<img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/blog.wonizz.com/wp-content/uploads/2026/10/02-diagram-2.png?w=1200&#038;ssl=1" alt="agy /usage 화면 구조를 보여 주는 카드 그림, Gemini 모델과 Claude·GPT 모델 묶음마다 주간 한도 행과 5시간 한도 행이 따로 있다는 것만 나타내고 비율 값은 가렸다" /><br />
같은 날 <code>agy models</code> 목록 14개에 제미나이 4 는 없었습니다(3.8 Flash ~ 3.1 Pro). 설치, IDE, 제미나이 모델로 같은 세 상황, 파일 쓰기 허용 규칙은 다루지 않았습니다(부록 표).<br />
<img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/blog.wonizz.com/wp-content/uploads/2026/10/03-diagram-2.png?w=1200&#038;ssl=1" alt="agy --version 으로 1.2.12 를 확인하고 agy models 로 14개 모델을 나열한 뒤 제미나이 4 가 목록에 없다는 것을 로그 값으로 다시 그린 흐름도(실제 터미널 캡처가 아니라 repro.log 수치를 옮긴 그림)" /><br />
<img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/blog.wonizz.com/wp-content/uploads/2026/10/08-diagram.png?w=1200&#038;ssl=1" alt="같은 목적의 요청이 문장 하나를 바꾸자 거부에서 성공으로 바뀐 두 쌍(만들기 요청/출력 요청, 실행 마/읽기만)을 카드 네 개로 나란히 비교한 그림" /><br />
<img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/blog.wonizz.com/wp-content/uploads/2026/10/09-diagram.png?w=1200&#038;ssl=1" alt="읽고 답하는 요청은 바로 성공하고, 쓰거나 실행하는 요청은 문장을 바꿔야 결과가 나온다는 갈림길을 좌우로 비교한 그림" /></p>
<h3>필자의 결론</h3>
<blockquote><p>
안티그래비티 CLI 는 기본 권한 그대로 두고, 파일을 읽거나 코드를 답으로 받는 일에만 씁니다.
</p></blockquote>
<blockquote><p>
&#8220;만들어 줘&#8221; 대신 &#8220;코드만 출력&#8221;, &#8220;실행하지는 마&#8221; 대신 &#8220;파일 읽기만&#8221; 이라고 쓰면 거부가 결과로 바뀌었습니다.
</p></blockquote>
<blockquote><p>
오늘은 최근 고친 버그가 있던 파일 하나를 빈 폴더에 복사하고 &#8220;고치지 말고 줄 번호와 이유만&#8221; 물어 보세요.
</p></blockquote>
<p>안티그래비티 IDE 와 CLI 를 둘 다 써 보신 분은, 같은 요청을 IDE 에서는 권한을 어떻게 묻던가요?</p>
<h2 id="s6">부록: 재현 명령과 출력</h2>
<ol>
<li><strong>시작 명령.</strong> 이 맥에는 agy 가 이미 깔려 있고 로그인돼 있었습니다(설치는 범위 밖).</li>
</ol>
<pre class="wp-block-code"><code class="language-bash">agy --version
agy models
cd /tmp/agy-howto-1003/new
agy -p "ok 라고만 답해" --model claude-sonnet-4-6</code></pre>
<ol>
<li><strong>보낸 요청 아홉 개</strong>(순서대로).</li>
</ol>
<figure class="wp-block-table">
<table>
<thead>
<tr>
<th>상황</th>
<th>보낸 요청(요지)</th>
<th>걸린 시간</th>
<th>종료 코드</th>
<th>결과</th>
</tr>
</thead>
<tbody>
<tr>
<td>확인</td>
<td>기본 모델로 &#8220;ok 라고만 답해&#8221;</td>
<td>6초</td>
<td>3</td>
<td>429 오류, 답 없음</td>
</tr>
<tr>
<td>확인</td>
<td>같은 요청, Claude Sonnet 4.6</td>
<td>5초</td>
<td>0</td>
<td>ok</td>
</tr>
<tr>
<td>디버깅</td>
<td>orders.py 버그를 고치지 말고 알려 달라</td>
<td>13초</td>
<td>0</td>
<td>심어 둔 버그 3개 모두 찾음</td>
</tr>
<tr>
<td>새 기능</td>
<td>현재 폴더에 wordcount.py 를 만들어 달라</td>
<td>14초</td>
<td>0</td>
<td>파일 쓰기 권한 거부, 파일 없음</td>
</tr>
<tr>
<td>새 기능</td>
<td>파일은 만들지 말고 코드만 출력</td>
<td>8초</td>
<td>0</td>
<td>33줄 코드, 저장해 돌리니 동작</td>
</tr>
<tr>
<td>새 기능</td>
<td>대소문자와 문장부호를 정리하도록 고쳐 달라</td>
<td>8초</td>
<td>0</td>
<td>37줄 코드, 세는 값이 바로잡힘</td>
</tr>
<tr>
<td>코드 설명</td>
<td>backup.sh 를 줄마다 설명, 실행하지는 마</td>
<td>7초</td>
<td>0</td>
<td>명령 실행 권한 거부, 답 없음</td>
</tr>
<tr>
<td>코드 설명</td>
<td>터미널 명령은 쓰지 말고 파일 읽기만</td>
<td>33초</td>
<td>0</td>
<td>8줄 모두 한국어 설명</td>
</tr>
<tr>
<td>코드 설명</td>
<td>처음 돌리기 전 조심할 점 세 줄</td>
<td>14초</td>
<td>0</td>
<td>삭제 범위 경고 포함 3줄</td>
</tr>
</tbody>
</table>
</figure>
<ol>
<li><strong>orders.py 직접 실행</strong>(Python 3.14.7). 빈 목록이면 <code>ZeroDivisionError: division by zero</code> 도 따로 확인했습니다.</li>
</ol>
<pre class="wp-block-code"><code>$ python3 orders.py
2000.0
['new']
['new', 'sale']
[10, 11, 12, 13, 14, 15, 16, 17, 18]</code></pre>
<ol>
<li><strong>JSON 출력</strong>(대화 식별값은 가림). 두 글자 답에도 입력이 10,194 토큰이었고, <code>duration_seconds</code> 는 0.92초인데 명령 전체는 4초였습니다.</li>
</ol>
<pre class="wp-block-code"><code>$ agy -p "ok 라고만 답해" --model gpt-oss-120b-medium --output-format json
{"conversation_id":"(가림)","status":"SUCCESS","response":"ok\n","duration_seconds":0.922087,"num_turns":1,"usage":{"input_tokens":10194,"output_tokens":25,"thinking_tokens":0,"cache_read_tokens":0,"total_tokens":10219}}</code></pre>
<ol>
<li><strong>확인하지 못한 것.</strong> 요금표와 등급 차이(공식 요금 문서를 열지 않음), 설치 과정, IDE 사용법, 제미나이 모델로 같은 세 상황(이날 429), 파일 쓰기 허용 규칙과 전부 허용 플래그(기본값으로만 진행), <code>--effort</code>, <code>--mode</code>, <code>--sandbox</code>(도움말만 봄), 다른 폴더 대화 직후의 <code>-c</code>, 같은 요청을 다시 보냈을 때 같은 답인지.</li>
<li><strong>곁가지.</strong> 시간은 초 단위 벽시계라 표의 5초는 실제로 4초대에서 5초대 사이였을 수 있습니다. 규칙 파일 없이도 한국어 요청에는 한국어로 답했습니다. 규칙 파일이 안 읽히는 증상은 <a href="https://blog.wonizz.com/2026/09/19/agents-md-not-loaded/">AGENTS.md 안 읽힐 때 해결 방법 총정리</a>에, 다른 AI 코딩 도구의 무료 범위는 <a href="https://blog.wonizz.com/2026/09/20/cursor-free-limit-check/">커서 AI 무료 한도 총정리, 공식 문서 기준</a>에 있습니다. <code>agy changelog</code> 의 1.2.15 항목에는 크레딧 잔액 부족 문구와 권한 요청 우회 방지 수정이 있었지만, 설치된 1.2.12 기준으로 썼습니다.</li>
<li><strong>출처.</strong> 직접 재현 2026-10-03 05:13~05:17 KST, macOS 27.0 arm64, agy 1.2.12, <code>/tmp</code> 아래 빈 폴더 세 개, 권한 기본값. <code>agy --help</code>, <code>agy models</code>, <code>agy changelog</code>, <code>agy -p "/usage"</code> 출력은 같은 날 같은 환경.</li>
</ol>
<p>The post <a rel="nofollow" href="https://blog.wonizz.com/2026/10/07/antigravity-how-to-use/">[AI 코딩] 안티그래비티 사용법, agy 로 버그 3개 찾기 13초</a> appeared first on <a rel="nofollow" href="https://blog.wonizz.com">WONIZZ.LOG</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.wonizz.com/2026/10/07/antigravity-how-to-use/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">4212</post-id>	</item>
		<item>
		<title>[AI 코딩] 안티그래비티 오류 7가지, 로그인 안됨과 권한 거부 해결</title>
		<link>https://blog.wonizz.com/2026/10/03/antigravity-cli-errors/</link>
					<comments>https://blog.wonizz.com/2026/10/03/antigravity-cli-errors/#respond</comments>
		
		<dc:creator><![CDATA[워니즈]]></dc:creator>
		<pubDate>Fri, 02 Oct 2026 23:06:25 +0000</pubDate>
				<category><![CDATA[AI & LLM]]></category>
		<category><![CDATA[agy]]></category>
		<category><![CDATA[AI코딩]]></category>
		<category><![CDATA[CLI]]></category>
		<category><![CDATA[안티그래비티]]></category>
		<category><![CDATA[터미널오류]]></category>
		<guid isPermaLink="false">https://blog.wonizz.com/?p=3938</guid>

					<description><![CDATA[<p>The standard Lorem Ipsum passage, used since the 1500s<br />
"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."</p>
<p>Section 1.10.32 of "de Finibus Bonorum et Malorum", written by Cicero in 45 BC<br />
"Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla pariatur?"</p>
<p>1914 translation by H. Rackham<br />
"But I must explain to you how all this mistaken idea of denouncing pleasure and praising pain was born and I will give you a complete account of the system, and expound the actual teachings of the great explorer of the truth, the master-builder of human happiness. No one rejects, dislikes, or avoids pleasure itself, because it is pleasure, but because those who do not know how to pursue pleasure rationally encounter consequences that are extremely painful. Nor again is there anyone who loves or pursues or desires to obtain pain of itself, because it is pain, but because occasionally circumstances occur in which toil and pain can procure him some great pleasure. To take a trivial example, which of us ever undertakes laborious physical exercise, except to obtain some advantage from it? But who has any right to find fault with a man who chooses to enjoy a pleasure that has no annoying consequences, or one who avoids a pain that produces no resultant pleasure?"</p>
<p>Section 1.10.33 of "de Finibus Bonorum et Malorum", written by Cicero in 45 BC<br />
"At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil impedit quo minus id quod maxime placeat facere possimus, omnis voluptas assumenda est, omnis dolor repellendus. Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet ut et voluptates repudiandae sint et molestiae non recusandae. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat."</p>
<p>1914 translation by H. Rackham<br />
"On the other hand, we denounce with righteous indignation and dislike men who are so beguiled and demoralized by the charms of pleasure of the moment, so blinded by desire, that they cannot foresee the pain and trouble that are bound to ensue; and equal blame belongs to those who fail in their duty through weakness of will, which is the same as saying through shrinking from toil and pain. These cases are perfectly simple and easy to distinguish. In a free hour, when our power of choice is untrammelled and when nothing prevents our being able to do what we like best, every pleasure is to be welcomed and every pain avoided. But in certain circumstances and owing to the claims of duty or the obligations of business it will frequently occur that pleasures have to be repudiated and annoyances accepted. The wise man therefore always holds in these matters to this principle of selection: he rejects pleasures to secure other greater pleasures, or else he endures pains to avoid worse pains."</p>
<p>안티그래비티 CLI agy 1.2.13 을 macOS 에서 직접 돌리며 낸 오류 7가지를 원문 메시지 그대로 모았습니다. 명령 못 찾음, 로그인 안됨, 모델 선택 안됨, 503, 파일 쓰기 권한 거부와 종료 코드 0, 한국어 답변을 증상별로 고치는 방법을 정리했습니다.</p>
<p>The post <a rel="nofollow" href="https://blog.wonizz.com/2026/10/03/antigravity-cli-errors/">[AI 코딩] 안티그래비티 오류 7가지, 로그인 안됨과 권한 거부 해결</a> appeared first on <a rel="nofollow" href="https://blog.wonizz.com">WONIZZ.LOG</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>The standard Lorem Ipsum passage, used since the 1500s<br />
"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."</p>
<p>Section 1.10.32 of "de Finibus Bonorum et Malorum", written by Cicero in 45 BC<br />
"Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla pariatur?"</p>
<p>1914 translation by H. Rackham<br />
"But I must explain to you how all this mistaken idea of denouncing pleasure and praising pain was born and I will give you a complete account of the system, and expound the actual teachings of the great explorer of the truth, the master-builder of human happiness. No one rejects, dislikes, or avoids pleasure itself, because it is pleasure, but because those who do not know how to pursue pleasure rationally encounter consequences that are extremely painful. Nor again is there anyone who loves or pursues or desires to obtain pain of itself, because it is pain, but because occasionally circumstances occur in which toil and pain can procure him some great pleasure. To take a trivial example, which of us ever undertakes laborious physical exercise, except to obtain some advantage from it? But who has any right to find fault with a man who chooses to enjoy a pleasure that has no annoying consequences, or one who avoids a pain that produces no resultant pleasure?"</p>
<p>Section 1.10.33 of "de Finibus Bonorum et Malorum", written by Cicero in 45 BC<br />
"At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil impedit quo minus id quod maxime placeat facere possimus, omnis voluptas assumenda est, omnis dolor repellendus. Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet ut et voluptates repudiandae sint et molestiae non recusandae. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat."</p>
<p>1914 translation by H. Rackham<br />
"On the other hand, we denounce with righteous indignation and dislike men who are so beguiled and demoralized by the charms of pleasure of the moment, so blinded by desire, that they cannot foresee the pain and trouble that are bound to ensue; and equal blame belongs to those who fail in their duty through weakness of will, which is the same as saying through shrinking from toil and pain. These cases are perfectly simple and easy to distinguish. In a free hour, when our power of choice is untrammelled and when nothing prevents our being able to do what we like best, every pleasure is to be welcomed and every pain avoided. But in certain circumstances and owing to the claims of duty or the obligations of business it will frequently occur that pleasures have to be repudiated and annoyances accepted. The wise man therefore always holds in these matters to this principle of selection: he rejects pleasures to secure other greater pleasures, or else he endures pains to avoid worse pains."</p>
<p>터미널에서 안티그래비티 CLI 를 불렀더니 로그인 안됨이나 권한 거부 같은 오류가 떠서 어디부터 고쳐야 할지 막막하신가요?</p>
<p>안녕하세요? 정리하는 개발자 워니즈입니다. 이 글은 필자가 2026-09-29 에 macOS arm64 와 agy 1.2.13 으로 안티그래비티 CLI 를 직접 돌리며 낸 오류 7가지를 원문 메시지 그대로 적고 증상별로 고친 방법을 정리합니다.</p>
<blockquote><p>
<strong>한 줄 요약</strong> 안티그래비티 CLI 오류는 대부분 PATH 와 첫 로그인과 모델 이름에서 나왔고 오류 문구가 고칠 방향을 알려 줬습니다. 가장 위험했던 것은 헤드리스 모드에서 파일 쓰기가 거부됐는데도 종료 코드가 0 으로 끝나는 경우였습니다.
</p></blockquote>
<ul>
<li><strong>바로 고칠 것</strong> <code>command not found</code> 는 PATH 문제였고 <code>authentication timed out</code> 은 대화형 첫 로그인으로, <code>requires --effort</code> 는 <code>--effort high</code> 로 풀렸습니다</li>
<li><strong>스크립트라면</strong> 종료 코드만 보지 말고 출력 문구와 결과 파일로 성공을 판정해야 권한 거부를 놓치지 않습니다</li>
<li><strong>macOS 함정</strong> 허용 규칙을 <code>/tmp</code> 로 적으면 걸리지 않았고 실제 경로인 <code>/private/tmp</code> 로 적어야 걸렸습니다</li>
</ul>
<p>목차</p>
<ol>
<li><a href="#s1">안티그래비티 CLI 오류 7가지, 직접 재현하니 무엇이 나왔나요?</a></li>
<li><a href="#s2">터미널에서 agy 를 못 찾을 때</a></li>
<li><a href="#s3">안티그래비티 로그인 안됨, 60초 뒤 authentication timed out</a></li>
<li><a href="#s4">로그에 not logged into 가 찍히면 다시 로그인해야 할까?</a></li>
<li><a href="#s5">안티그래비티 모델 선택 안됨, 오류 문구 세 가지</a></li>
<li><a href="#s6">503 서버 오류는 다시 돌리면 지나가나요?</a></li>
<li><a href="#s7">에이전트가 파일을 못 쓸 때와 종료 코드 0</a></li>
<li><a href="#s8">안티그래비티 한국어 답변 받는 법</a></li>
<li><a href="#s9">안티그래비티 CLI 로 안 되는 것과 확인 못 한 것</a></li>
<li><a href="#s10">정리: 누구에게 맞고 누구에게는 굳이인가, 그리고 운영자 의견</a></li>
</ol>
<h2 id="s1">1. 안티그래비티 CLI 오류 7가지, 직접 재현하니 무엇이 나왔나요?</h2>
<p>필자가 직접 낸 안티그래비티 CLI 오류는 일곱 가지였고 그중 네 가지(모델 선택, 503, 권한 거부, 한국어 답변)는 고친 뒤 다시 돌려서 풀린 것까지 확인했습니다. PATH 와 로그인은 오류와 안내문까지만 봤습니다. 시험은 2026-09-29 17:33~17:41 KST 에 macOS 27.0 arm64 와 <code>~/.local/bin/agy</code> 에 깔린 agy 1.2.13 으로 했고, 새로 설치한 것과 같은 상태는 빈 HOME(<code>/tmp/agy-fresh/home</code>)을 만들어 재현했습니다.</p>
<p>안티그래비티 CLI 는 터미널에서 <code>agy</code> 한 단어로 부르는 명령인데요, 옵션 없이 띄우면 대화형으로 돌고 <code>-p</code> 를 붙이면 한 번 묻고 답을 받은 뒤 끝나는 헤드리스 모드로 돕니다. 이 글의 오류 대부분은 사람이 옆에서 답해 줄 수 없는 헤드리스 쪽에서 나왔고 데스크톱 IDE 는 설치하지 않아서 다루지 않습니다.</p>
<p>권한 규칙 시험은 settings.json 을 백업한 뒤 규칙 한 줄만 넣고 매번 되돌렸고 에이전트에게 파일을 쓰게 한 시험은 전부 빈 임시 폴더에서 돌렸습니다. 증상은 구글 자동완성에서 안티그래비티 뒤에 붙는 오류, 안됨, 한국어 갈래를 보고 그 갈래에 맞는 것을 골랐는데 결과를 한 표로 먼저 모으면 아래와 같습니다. 이 글의 터미널 이미지는 그날 남긴 재현 로그의 원문 출력을 터미널 모양으로 옮긴 것입니다.</p>
<figure class="wp-block-table">
<table>
<thead>
<tr>
<th>증상</th>
<th>원문 문구(일부)</th>
<th>종료 코드</th>
<th>고친 방법</th>
<th>확인</th>
</tr>
</thead>
<tbody>
<tr>
<td>터미널에서 agy 를 못 찾음</td>
<td><code>zsh:1: command not found: agy</code></td>
<td>127</td>
<td><code>~/.local/bin</code> 을 PATH 에 추가</td>
<td>설치기 경고문까지</td>
</tr>
<tr>
<td>로그인 안됨</td>
<td><code>Error: authentication timed out.</code></td>
<td>1</td>
<td>대화형 <code>agy</code> 로 한 번 로그인</td>
<td>시간 초과까지</td>
</tr>
<tr>
<td>로그에 not logged into</td>
<td><code>You are not logged into Antigravity.</code></td>
<td>0</td>
<td>답변과 종료 코드로 판단</td>
<td>정상 실행 2회</td>
</tr>
<tr>
<td>모델 선택 안됨</td>
<td><code>requires --effort (available: low, high)</code></td>
<td>1</td>
<td><code>agy models</code> 로 이름 확인, <code>--effort high</code></td>
<td>정상 답변</td>
</tr>
<tr>
<td>서버 503</td>
<td><code>UNAVAILABLE (code 503)</code></td>
<td>1</td>
<td>20~30초 뒤 재실행</td>
<td>2회 모두 통과</td>
</tr>
<tr>
<td>파일 쓰기 권한 거부</td>
<td><code>so it was auto-denied</code></td>
<td>0</td>
<td><code>write_file(/private/tmp/...)</code> 허용 규칙</td>
<td>파일 생성</td>
</tr>
<tr>
<td>영어로 답함</td>
<td>영어 질문에 영어 답</td>
<td>기록 없음</td>
<td>작업 폴더 AGENTS.md</td>
<td>한국어 답</td>
</tr>
</tbody>
</table>
</figure>
<p>일곱 가지 가운데 스크립트로 안티그래비티를 부르는 분이 가장 먼저 알아야 할 것은 여섯째 줄이었습니다. 빈 폴더에서 파일 하나를 만들라고 시켰더니 아래처럼 거부 문구가 나왔는데 종료 코드는 0 이었고 파일은 생기지 않았습니다(2026-09-29, macOS 27.0 arm64, agy 1.2.13 실측).</p>
<pre class="wp-block-code"><code>$ cd /tmp/agy-try; agy -p "현재 폴더에 hello.txt 파일을 만들고 내용으로 hi 한 줄을 써라. 끝나면 done 이라고만 답해"
jetski: no output produced — a tool required the "write_file" permission that headless mode cannot prompt for, so it was auto-denied. Add an allow-rule under permissions.allow in settings.json (e.g. write_file(<target>)). Alternatively, re-run with --dangerously-skip-permissions to auto-approve all tools.
rc=0, hello.txt 없음</code></pre>
<p><strong>직접 확인 1.</strong> 종료 코드만 보고 성공을 판정하는 스크립트라면 파일이 하나도 생기지 않은 이 실행을 성공으로 기록하게 됩니다. 실패인데 성공 신호가 나오는 이 경우는 7절에서 고친 방법과 함께 다시 다루고 나머지 여섯 가지는 겪은 순서대로 적어 두겠습니다.<br />
<img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/blog.wonizz.com/wp-content/uploads/2026/09/01-screenshot-1.png?w=1200&#038;ssl=1" alt="안티그래비티 CLI 가 빈 폴더에서 write_file 권한을 자동 거부하고 종료 코드 0 으로 끝난 터미널 화면" /></p>
<h2 id="s2">2. 터미널에서 agy 를 못 찾을 때</h2>
<p><code>zsh:1: command not found: agy</code> 가 나오면 agy 가 깔린 <code>~/.local/bin</code> 이 지금 셸의 PATH 에 없는 것입니다. 필자는 PATH 를 <code>/usr/bin:/bin</code> 만 남긴 새 셸을 <code>env -i HOME=/tmp/agy-fresh/home PATH=/usr/bin:/bin /bin/zsh -f -c 'agy --version'</code> 으로 띄워서 이 오류를 냈고 종료 코드는 127 이었습니다.</p>
<p>같은 조건에서 <code>agy install</code> 을 돌리면 안티그래비티 설치기가 먼저 이 문제를 알려 주는데 경고문 첫 두 줄은 아래와 같았습니다.</p>
<blockquote><p>
Warning: /tmp/agy-fresh/home/.local/bin is not present in your active PATH.
</p></blockquote>
<blockquote><p>
To use the &#8216;agy&#8217; CLI globally, please manually add it to your shell profile:
</p></blockquote>
<p>경고문이 권하는 대로 셸 설정 파일에 PATH 한 줄을 넣고 새 셸을 열면 됩니다. zsh 를 쓰는 macOS 기준으로는 아래 세 줄이고 마지막 줄은 제대로 잡혔는지 보는 확인용입니다.</p>
<pre class="wp-block-code"><code class="language-bash">echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc
agy --version</code></pre>
<p><strong>직접 확인 2.</strong> 필자가 확인한 것은 오류와 설치기 경고문까지이고 빈 HOME 에 이 줄을 넣은 뒤 다시 돌려 보는 것은 하지 않았습니다. cron 처럼 셸 설정 파일을 읽지 않는 환경에서는 PATH 한 줄이 먹지 않을 수 있으니 그런 곳에서는 <code>~/.local/bin/agy</code> 를 절대 경로로 부르는 편이 덜 헷갈립니다.<br />
<img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/blog.wonizz.com/wp-content/uploads/2026/09/02-screenshot-1.png?w=1200&#038;ssl=1" alt="안티그래비티 CLI PATH 가 빠진 새 셸에서 command not found 오류와 설치기 PATH 경고문이 함께 보이는 터미널 화면" /></p>
<h2 id="s3">3. 안티그래비티 로그인 안됨, 60초 뒤 authentication timed out</h2>
<p>안티그래비티 로그인 안됨 증상은 로그인을 한 번도 하지 않은 환경에서 헤드리스 모드(<code>-p</code>)부터 부를 때 나왔습니다. 빈 HOME 으로 <code>HOME=/tmp/agy-fresh/home agy -p "ok 라고만 답해" --print-timeout 45s < /dev/null</code> 을 돌리자 로그인 주소를 한 번 보여 준 뒤 기다리다가 종료 코드 1 로 끝났습니다.</p>
<blockquote><p>
Authentication required. Please visit the URL to log in:
</p></blockquote>
<blockquote><p>
Waiting for authentication (timeout 60s)...
</p></blockquote>
<blockquote><p>
Or, paste the authorization code here and press Enter:
</p></blockquote>
<blockquote><p>
Error: authentication timed out.
</p></blockquote>
<blockquote><p>
error: authentication failed or timed out
</p></blockquote>
<p>로그인 주소는 accounts.google.com 의 OAuth 주소였고 돌아올 곳은 antigravity.google 의 oauth-callback 이었는데, 주소에 붙은 식별값은 이 글에서 가렸습니다. 브라우저는 자동으로 열리지 않았고 필자가 <code>--print-timeout 45s</code> 를 줬는데도 안내문의 대기 시간은 <code>timeout 60s</code> 로 찍혔습니다.</p>
<p>고친 방법은 순서를 바꾸는 것입니다. 처음 한 번은 옵션 없이 대화형 <code>agy</code> 를 띄워 로그인을 끝내고 그다음부터 <code>-p</code> 를 쓰면 됩니다. 필자의 원래 환경은 이렇게 로그인이 끝나 있어서 같은 <code>-p</code> 명령이 바로 답을 돌려줬습니다.</p>
<ul>
<li><strong>SSH 로 붙은 원격 맥</strong> 안내문에는 주소를 다른 기기의 브라우저에서 열고 받은 코드를 붙여 넣는 길이 있지만 필자는 새 인증을 만들지 않으려고 끝까지 가지 않았습니다</li>
<li><strong>표준 입력을 막은 스크립트</strong> 필자 시험처럼 <code>< /dev/null</code> 로 입력을 막아 두면 코드를 붙여 넣을 자리가 없으니 결국 시간 초과로 끝납니다</li>
</ul>
<p><strong>직접 확인 3.</strong> 필자가 확인한 것은 로그인 대기와 시간 초과 문구와 종료 코드 1 까지이고, 코드를 붙여 넣어 안티그래비티 로그인을 마치는 경로가 실제로 끝까지 되는지는 확인하지 못했습니다.<br />
<img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/blog.wonizz.com/wp-content/uploads/2026/09/03-screenshot-1.png?w=1200&#038;ssl=1" alt="안티그래비티 로그인 안됨 증상, 빈 HOME 에서 agy -p 가 로그인 주소와 60초 대기 안내 뒤 타임아웃하는 화면(OAuth 식별값 가림)" /></p>
<h2 id="s4">4. 로그에 not logged into 가 찍히면 다시 로그인해야 할까?</h2>
<p>아니요, 답변이 정상으로 오고 종료 코드가 0 이라면 다시 로그인할 필요가 없었습니다. 필자 환경에서 <code>agy -p</code> 가 정상 답변을 돌려준 실행 직후에 <code>grep -c "You are not logged into Antigravity" ~/.gemini/antigravity-cli/cli.log</code> 를 돌렸더니 58줄이 나왔고 <code>E</code> 로 시작하는 줄은 32줄이었습니다.</p>
<p>58줄을 문구별로 나누면 아래 세 종류였고 모두 <code>errorreport.go:224]</code> 에서 찍혔습니다.</p>
<ul>
<li><strong>15줄</strong> <code>error getting token source: You are not logged into Antigravity.</code></li>
<li><strong>13줄</strong> <code>failed to get load code assist response: error getting token source: You are not logged into Antigravity.</code></li>
<li><strong>2줄</strong> <code>Failed to poll ListExperiments: error getting token source: You are not logged into Antigravity.</code></li>
</ul>
<p>같은 로그에는 <code>.gemini must be an absolute path: path is not absolute, falling back to default</code> 라는 줄도 한 번 있었는데 이것도 답변에는 영향이 없었습니다. <code>cli.log</code> 는 실행할 때마다 <code>log/cli-YYYYMMDD_HHMMSS.log</code> 로 새로 걸리는 링크였고 17:33:46 과 17:40:51 두 정상 실행 모두 같은 58줄이 찍혔습니다.</p>
<p><strong>직접 확인 4.</strong> 이 줄이 왜 찍히는지 내부 동작은 확인하지 못했습니다. 다만 정상 실행 두 번에서 매번 같은 수로 나왔으니 로그의 이 줄만 보고 안티그래비티에 다시 로그인하기보다는 답변이 왔는지와 종료 코드로 판단하는 편이 맞다고 봤습니다.<br />
<img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/blog.wonizz.com/wp-content/uploads/2026/09/04-screenshot-2.png?w=1200&#038;ssl=1" alt="정상 실행 뒤에도 안티그래비티 cli.log 에서 not logged into 줄이 58줄 세어지는 grep 결과 화면" /></p>
<h2 id="s5">5. 안티그래비티 모델 선택 안됨, 오류 문구 세 가지</h2>
<p>안티그래비티 모델 선택 안됨 오류는 문구가 셋으로 갈렸고 셋 다 종료 코드 1 이었습니다. 일부러 없는 이름을 넣은 경우와 effort 를 빼먹은 경우와 그 모델에 없는 effort 를 준 경우입니다. 어느 쪽인지는 문구 끝부분만 읽어도 가려졌습니다.</p>
<figure class="wp-block-table">
<table>
<thead>
<tr>
<th>넣은 옵션</th>
<th>원문 문구(끝부분)</th>
<th>원인</th>
<th>고친 방법</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>--model gemini-9-pro</code></td>
<td><code>model gemini-9-pro is not recognized as a known model or custom model in settings</code></td>
<td>없는 모델 이름</td>
<td><code>agy models</code> 로 정확한 이름 확인</td>
</tr>
<tr>
<td><code>--model gemini-3.1-pro</code></td>
<td><code>--model gemini-3.1-pro requires --effort (available: low, high)</code></td>
<td>pro 는 effort 필수</td>
<td><code>--effort high</code> 또는 <code>low</code></td>
</tr>
<tr>
<td><code>--effort medium</code></td>
<td><code>gemini-3.1-pro has no "medium" effort (available: low, high)</code></td>
<td>모델마다 effort 값이 다름</td>
<td>문구의 available 값 중에서 고름</td>
</tr>
</tbody>
</table>
</figure>
<p>첫 번째 오류는 문구 뒤에 <code>Available models:</code> 목록을 함께 보여 주고 <code>agy models</code> 로도 같은 목록을 볼 수 있습니다. 필자 환경에서는 14개가 나왔고 <code>gemini-3.8-flash-high</code> 부터 <code>claude-sonnet-4-6</code>, <code>claude-opus-4-6-thinking</code>, <code>gpt-oss-120b-medium</code> 까지 들어 있었는데 이 목록은 환경에 따라 다를 수 있습니다.</p>
<p>effort 를 문구가 알려 준 값으로 바꾸자 바로 답이 왔습니다(2026-09-29, 같은 환경 실측).</p>
<pre class="wp-block-code"><code>$ agy -p "ok 라고만 답해" --model gemini-3.1-pro --effort high
ok   (rc=0)</code></pre>
<p><strong>직접 확인 5.</strong> 화면에 보이는 이름을 그대로 넣은 <code>--model "Gemini 3.1 Pro (High)"</code> 도 종료 코드 0 으로 받아졌습니다. 이름을 외우기 어렵다면 <code>agy models</code> 목록의 이름을 복사해 쓰는 편이 오타로 첫 번째 오류를 다시 밟지 않는 길이었습니다.<br />
<img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/blog.wonizz.com/wp-content/uploads/2026/09/05-screenshot.png?w=1200&#038;ssl=1" alt="안티그래비티 모델 선택 안됨 오류, requires --effort 문구와 agy models 목록이 함께 보이는 터미널 화면" /></p>
<h2 id="s6">6. 503 서버 오류는 다시 돌리면 지나가나요?</h2>
<p>필자가 겪은 두 번은 모두 20~30초 뒤에 같은 명령을 다시 돌리자 지나갔습니다. 모델에 요청이 간 실행 12번 가운데 2번이 503 으로 끝났고 17:38 경과 17:40 경에 한 번씩 나왔는데 문구는 아래 두 가지였습니다.</p>
<blockquote><p>
error: failed to send message: send failed; already reported to the user: Eligibility check failed: failed to get load code assist response: UNAVAILABLE (code 503): The service is currently unavailable.
</p></blockquote>
<blockquote><p>
error: Eligibility check failed: UNAVAILABLE (code 503): The service is currently unavailable.
</p></blockquote>
<p>문구 그대로 안티그래비티 쪽 서비스가 잠시 응답하지 않은 경우라서 필자 쪽 설정에서 고칠 곳은 없었고 기다렸다가 다시 돌리는 것 말고는 할 수 있는 일이 없었습니다. 스크립트로 부른다면 출력에 <code>code 503</code> 이 있을 때만 짧게 몇 번 다시 시도하고 그래도 안 되면 멈추게 두는 편이 무한 재시도를 피하는 방법입니다.</p>
<p><strong>직접 확인 6.</strong> 503 은 종료 코드 1 로 끝나서 스크립트가 실패로 알아챌 수 있었습니다. 문제는 다음 절의 권한 거부인데요, 그쪽은 실패인데도 종료 코드가 0 이라서 같은 방식으로는 잡히지 않았습니다.</p>
<h2 id="s7">7. 에이전트가 파일을 못 쓸 때와 종료 코드 0</h2>
<p>헤드리스 모드는 사람에게 권한을 물어볼 수 없어서 파일 쓰기 같은 도구 권한을 자동으로 거부했고 그러면서도 종료 코드는 0 이었습니다. 1절의 거부 문구가 이 경우인데 문구 안에 <code>Add an allow-rule under permissions.allow in settings.json (e.g. write_file(<target>))</code> 라는 해결 방향이 이미 들어 있습니다.</p>
<p>필자는 문구가 알려 준 두 길과 편집 허용 모드까지 차례로 시험했고 같은 요청을 다섯 가지 조건으로 돌린 결과는 아래 표와 같았습니다(2026-09-29 실측).</p>
<figure class="wp-block-table">
<table>
<thead>
<tr>
<th>조건</th>
<th>출력</th>
<th>종료 코드</th>
<th>hello.txt</th>
</tr>
</thead>
<tbody>
<tr>
<td>옵션 없음, <code>/tmp/agy-try</code></td>
<td>거부 문구</td>
<td>0</td>
<td>없음</td>
</tr>
<tr>
<td><code>--mode accept-edits</code></td>
<td>같은 거부 문구</td>
<td>0</td>
<td>없음</td>
</tr>
<tr>
<td>허용 규칙 <code>write_file(/tmp/agy-try2)</code>, <code>/tmp/agy-try2</code> 에서 실행</td>
<td>같은 거부 문구</td>
<td>0</td>
<td>없음</td>
</tr>
<tr>
<td>허용 규칙 <code>write_file(/private/tmp/agy-try2)</code></td>
<td>done</td>
<td>0</td>
<td>hi</td>
</tr>
<tr>
<td><code>--dangerously-skip-permissions</code>, <code>/tmp/agy-try</code></td>
<td>done</td>
<td>0</td>
<td>hi</td>
</tr>
</tbody>
</table>
</figure>
<p>이 표에서 가장 먼저 볼 곳은 종료 코드 열입니다. 파일을 만든 두 번과 만들지 못한 세 번이 모두 0 으로 똑같이 끝났습니다. 편집 허용 모드인 <code>--mode accept-edits</code> 로도 거부 문구가 그대로 나왔으니 헤드리스에서 파일을 쓰게 하려면 허용 규칙을 넣거나 전부 허용 플래그를 쓰는 두 길만 남았습니다.</p>
<h3>허용 규칙은 /tmp 가 아니라 /private/tmp 로</h3>
<p>macOS 의 <code>/tmp</code> 는 <code>/private/tmp</code> 로 가는 링크라서 안티그래비티 허용 규칙은 실제 경로로 적어야 걸렸습니다. 필자 맥에서 <code>/tmp</code> 의 실제 경로를 파이썬 <code>os.path.realpath</code> 로 찍어 보면 <code>/private/tmp</code> 가 나왔고 같은 폴더를 가리키는데도 <code>/tmp</code> 로 적은 규칙은 걸리지 않았습니다.</p>
<p>필자 환경에서 settings.json 은 <code>cli.log</code> 와 같은 <code>~/.gemini/antigravity-cli/</code> 폴더에 있었습니다. 원래 들어 있던 설정은 그대로 두고 아래처럼 허용 규칙 한 줄만 더하면 됩니다.</p>
<pre class="wp-block-code"><code class="language-json">{
  "permissions": {
    "allow": ["write_file(/private/tmp/agy-try2)"]
  }
}</code></pre>
<p>작업 폴더의 실제 경로가 헷갈릴 때는 그 폴더에서 <code>pwd -P</code> 를 돌려 나온 값을 규칙에 쓰면 됩니다. 필자가 확인한 링크 경로는 <code>/tmp</code> 하나뿐이라서 홈 폴더 아래 다른 심볼릭 링크에서도 같은 일이 생기는지는 확인하지 못했습니다.<br />
<img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/blog.wonizz.com/wp-content/uploads/2026/09/06-diagram-vs.png?w=1200&#038;ssl=1" alt="안티그래비티 허용 규칙을 /tmp 로 적으면 거부되고 /private/tmp 로 적어야 write_file 이 통과하는 경로 비교 다이어그램" /></p>
<h3>전부 허용 플래그는 빈 폴더에서만</h3>
<p><code>--dangerously-skip-permissions</code> 는 거부 문구가 설명하는 그대로 모든 도구를 자동 승인하는 플래그입니다. 파일 쓰기 하나를 풀려고 이 플래그를 켜면 그 폴더에서 에이전트가 하는 모든 도구 호출이 확인 없이 돌아가기 때문에 필자는 비워 둔 시험 폴더에서만 썼습니다.</p>
<p>에이전트에게 권한을 어디까지 줄지는 DevOps 카테고리의 <a href="https://blog.wonizz.com/2026/08/03/ai-agent-permission-recovery-cost/">AI 에이전트 권한 설계</a> 에서 되돌릴 수 있다는 믿음이 권한을 넓히는 함정으로 다룬 적이 있습니다. 허용 규칙 한 줄은 폴더 하나만 열고 전부 허용 플래그는 모든 도구를 여니 같은 문제를 풀어도 여는 범위가 크게 다릅니다.</p>
<h3>스크립트는 종료 코드 대신 무엇을 봐야 하나요?</h3>
<p>출력 문구와 결과 파일을 함께 봐야 합니다. 이번 시험에서 나온 신호를 스크립트가 판정할 기준으로 옮기면 아래 표처럼 됩니다. 종료 코드가 같은 0 이어도 첫 두 줄처럼 성공과 실패로 갈리니, 안티그래비티 실행 결과는 문구와 파일까지 봐야 제대로 가려집니다.</p>
<figure class="wp-block-table">
<table>
<thead>
<tr>
<th>종료 코드</th>
<th>출력에 보이는 문구</th>
<th>판정</th>
<th>할 일</th>
</tr>
</thead>
<tbody>
<tr>
<td>0</td>
<td><code>auto-denied</code> 또는 <code>no output produced</code></td>
<td>실패</td>
<td>허용 규칙 추가</td>
</tr>
<tr>
<td>0</td>
<td>결과 파일 있음</td>
<td>성공</td>
<td>다음 단계 진행</td>
</tr>
<tr>
<td>1</td>
<td><code>code 503</code></td>
<td>일시 실패</td>
<td>20~30초 뒤 몇 번만 재시도</td>
</tr>
<tr>
<td>1</td>
<td><code>authentication timed out</code></td>
<td>실패</td>
<td>대화형으로 로그인</td>
</tr>
<tr>
<td>1</td>
<td><code>invalid model selection</code></td>
<td>실패</td>
<td>모델 이름과 effort 확인</td>
</tr>
<tr>
<td>127</td>
<td><code>command not found</code></td>
<td>실패</td>
<td>PATH 또는 절대 경로</td>
</tr>
</tbody>
</table>
</figure>
<p><strong>직접 확인 7.</strong> 허용 규칙을 <code>/private/tmp/agy-try2</code> 로 적은 실행과 전부 허용 플래그를 켠 실행은 둘 다 <code>done</code> 을 답하고 hello.txt 에 <code>hi</code> 를 남겼습니다. 테스트는 통과했는데 결과는 틀렸던 경험은 AI 코딩 카테고리의 <a href="https://blog.wonizz.com/2026/09/27/vibe-coding-reality-selftest-real-data/">테스트는 통과했는데 261편 중 6편만 맞았다</a> 에서도 다뤘는데, 성공 신호와 실제 결과를 따로 봐야 한다는 교훈이 여기서도 그대로 통했습니다.<br />
<img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/blog.wonizz.com/wp-content/uploads/2026/09/07-diagram-steps.png?w=1200&#038;ssl=1" alt="안티그래비티 CLI 실행 결과를 종료 코드, 출력 문구, 결과 파일 순서로 보고 성공과 재시도와 실패를 가르는 판정 흐름도" /></p>
<h2 id="s8">8. 안티그래비티 한국어 답변 받는 법</h2>
<p>작업 폴더에 AGENTS.md 를 두고 한국어로 답하라는 규칙 한 줄을 넣으니 영어 질문에도 한국어로 답했습니다. 빈 폴더에서 <code>agy -p "In one sentence, what does git stash do?"</code> 를 물었을 때는 아래처럼 영어로 답이 왔습니다.</p>
<blockquote><p>
<code>git stash</code> temporarily shelves your uncommitted changes (both staged and unstaged) and reverts your working directory to match the <code>HEAD</code> commit,
</p></blockquote>
<p>같은 폴더에서 <code>printf '# 규칙\n\n모든 답변은 한국어로 한다. 명령어와 코드는 원문 그대로 둔다.\n' > AGENTS.md</code> 로 규칙 파일을 만든 뒤 똑같이 물었더니 답이 한국어로 바뀌었습니다.</p>
<blockquote><p>
<code>git stash</code>는 커밋하지 않은 작업 트리의 변경 사항을 임시 보관소에 저장하고, 작업 디렉터리를 최근 커밋(HEAD) 상태로 되돌려 놓는 명령어입니다.
</p></blockquote>
<p>규칙에 명령어와 코드는 원문 그대로 두라고 적어 둔 덕분에 <code>git stash</code> 와 HEAD 는 영어 그대로 남았습니다. agy 바이너리의 안내문에는 규칙 파일 경로가 GEMINI.md, AGENTS.md, <code>.agents/rules/*.md</code> 로 나오는데 필자가 시험한 것은 AGENTS.md 하나뿐입니다.</p>
<p><strong>직접 확인 8.</strong> AGENTS.md 를 넣었는데도 안티그래비티가 규칙을 따르지 않는다면 파일 위치와 이름부터 봐야 하는데요, 그런 증상은 AI 코딩 카테고리의 <a href="https://blog.wonizz.com/2026/09/19/agents-md-not-loaded/">AGENTS.md 안 읽힐 때 해결 방법 총정리</a> 에서 따로 정리해 두었습니다.<br />
<img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/blog.wonizz.com/wp-content/uploads/2026/09/08-screenshot.png?w=1200&#038;ssl=1" alt="AGENTS.md 를 넣기 전 영어 답과 넣은 뒤 한국어 답을 나란히 보여 주는 안티그래비티 CLI 화면" /></p>
<h2 id="s9">9. 안티그래비티 CLI 로 안 되는 것과 확인 못 한 것</h2>
<p>이번에 풀지 못했거나 확인하지 못한 것을 그대로 남깁니다. 같은 증상을 찾아 들어온 분이 여기서 헛걸음하지 않도록 무엇을 안 봤는지까지 적어 두는 편이 낫다고 봤습니다.</p>
<ol>
<li><strong>헤드리스는 권한을 묻지 못합니다.</strong> <code>-p</code> 로 부른 에이전트는 사람에게 확인을 받을 수 없어서 허용 규칙에 없는 도구를 자동으로 거부했고 편집 허용 모드도 파일 쓰기를 풀지 못했습니다</li>
<li><strong>거부돼도 종료 코드는 0 입니다.</strong> 이번 시험에서 권한 거부는 세 번 모두 0 으로 끝나서 종료 코드만으로는 실패를 알 수 없었습니다</li>
<li><strong>503 은 사용자 쪽에서 막을 수 없었습니다.</strong> 필자가 할 수 있었던 일은 기다렸다 다시 돌리는 것뿐이었습니다</li>
<li><strong>not logged into 줄의 원인은 모릅니다.</strong> 정상 실행에서도 매번 58줄이 찍혔고 왜 찍히는지는 확인하지 못했습니다</li>
</ol>
<p>아래 네 가지는 이번에 확인하지 못한 항목입니다.</p>
<figure class="wp-block-table">
<table>
<thead>
<tr>
<th>항목</th>
<th>상태</th>
<th>이유</th>
</tr>
</thead>
<tbody>
<tr>
<td>IDE(데스크톱 앱) 설치와 실행 오류</td>
<td>확인 못 함</td>
<td>이 맥에 IDE 를 설치하지 않았다</td>
</tr>
<tr>
<td>코드 붙여넣기로 로그인 완료</td>
<td>확인 못 함</td>
<td>새 인증을 만들지 않으려고 끝까지 가지 않았다</td>
</tr>
<tr>
<td>모델 오류 때 exit 3 과 AGY_ERROR 줄</td>
<td>확인 못 함</td>
<td>1.2.10 변경 기록에 있는 항목이지만 재현하지 못했다</td>
</tr>
<tr>
<td>GEMINI.md 와 <code>.agents/rules</code> 규칙 파일</td>
<td>확인 못 함</td>
<td>AGENTS.md 만 시험했다</td>
</tr>
</tbody>
</table>
</figure>
<p>IDE 에서 나는 안티그래비티 오류를 찾으셨다면 이 글은 CLI 만 다루니 <a href="https://antigravity.google/" target="_blank" rel="noopener">Google Antigravity 공식 사이트</a> 의 안내를 먼저 보시는 편이 빠릅니다. 버전이 바뀌면 문구와 동작이 달라질 수 있는데 이 글에 옮긴 원문 문구는 전부 agy 1.2.13 에서 나온 것입니다.</p>
<h2 id="s10">10. 정리: 누구에게 맞고 누구에게는 굳이인가, 그리고 운영자 의견</h2>
<p>이 글이 가장 쓸모 있는 쪽은 안티그래비티 CLI 를 SSH 나 스크립트에서 <code>-p</code> 로 부르는 분인데요, 로그인 시간 초과와 권한 거부와 503 이 모두 이 경로에서 나왔고 그중 권한 거부는 종료 코드 0 이라 모르고 지나가기 쉬웠습니다. 증상 문구를 검색해 들어오셨다면 1절 표에서 자기 문구를 찾고 해당 절로 바로 가시면 됩니다.</p>
<p>굳이인 쪽은 IDE 만 쓰시는 분입니다. 필자는 IDE 를 설치하지 않아서 그쪽 오류는 한 줄도 다루지 못했고 대화형 <code>agy</code> 로만 쓰는 분이라면 헤드리스처럼 권한을 자동으로 거부당하지는 않을 테니 7절의 함정은 밟을 일이 드물 것 같습니다. 대화형에서 권한을 묻는 화면은 이번에 따로 확인하지 않았습니다.</p>
<p>안티그래비티 CLI 를 새로 깐 날이라면 필자가 겪은 순서를 거꾸로 밟지 않도록 아래 네 가지를 차례로 보는 편이 시간을 아낍니다.</p>
<ol>
<li><code>agy --version</code> 이 새 셸에서 도는지 보고 안 되면 PATH 에 <code>~/.local/bin</code> 을 넣습니다</li>
<li>옵션 없이 대화형 <code>agy</code> 를 띄워 로그인을 한 번 끝낸 뒤에 <code>-p</code> 로 넘어갑니다</li>
<li><code>agy models</code> 로 쓸 모델 이름을 확인하고 pro 계열이면 <code>--effort</code> 값을 함께 줍니다</li>
<li>파일을 쓰게 할 폴더는 <code>pwd -P</code> 로 실제 경로를 확인해 허용 규칙에 적습니다</li>
</ol>
<p>이번에 일곱 가지를 직접 내 보면서 필자가 가장 크게 느낀 것은 오류 문구가 대부분 해결 방법을 이미 품고 있었던 반면 종료 코드는 그만큼 믿을 수 없었던 일이었습니다. <code>requires --effort (available: low, high)</code> 는 넣을 값을 알려 줬고 권한 거부 문구는 settings.json 의 어느 키에 무엇을 넣을지까지 알려 줬는데, 같은 실행의 종료 코드는 성공을 말하고 있었으니 운영자로서는 문구 쪽을 믿어야 했습니다.</p>
<h3>필자의 결론</h3>
<p><strong>스크립트에서 안티그래비티 CLI 를 부를 때 필자는 종료 코드 대신 출력 문구와 결과 파일로 성공을 판정하기로 정했습니다.</strong> 파일 쓰기 권한은 <code>pwd -P</code> 로 확인한 실제 경로의 허용 규칙 한 줄로만 열고, <code>--dangerously-skip-permissions</code> 는 비워 둔 시험 폴더에서만 씁니다. 503 은 출력에 <code>code 503</code> 이 보일 때만 20~30초 간격으로 몇 번 다시 돌리고 그래도 안 되면 멈추게 둡니다.</p>
<p>The post <a rel="nofollow" href="https://blog.wonizz.com/2026/10/03/antigravity-cli-errors/">[AI 코딩] 안티그래비티 오류 7가지, 로그인 안됨과 권한 거부 해결</a> appeared first on <a rel="nofollow" href="https://blog.wonizz.com">WONIZZ.LOG</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.wonizz.com/2026/10/03/antigravity-cli-errors/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">3938</post-id>	</item>
		<item>
		<title>[DevOps] AI 도입 효과, 코딩 속도를 재면 답이 안 나옵니다</title>
		<link>https://blog.wonizz.com/2026/08/07/ai-coding-productivity-14-percent/</link>
					<comments>https://blog.wonizz.com/2026/08/07/ai-coding-productivity-14-percent/#respond</comments>
		
		<dc:creator><![CDATA[워니즈]]></dc:creator>
		<pubDate>Fri, 07 Aug 2026 00:22:01 +0000</pubDate>
				<category><![CDATA[AI & LLM]]></category>
		<category><![CDATA[AI코딩]]></category>
		<category><![CDATA[DevOps]]></category>
		<category><![CDATA[개발문화]]></category>
		<category><![CDATA[생산성]]></category>
		<category><![CDATA[측정]]></category>
		<guid isPermaLink="false">https://blog.wonizz.com/?p=3020</guid>

					<description><![CDATA[<p>The standard Lorem Ipsum passage, used since the 1500s<br />
"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."</p>
<p>Section 1.10.32 of "de Finibus Bonorum et Malorum", written by Cicero in 45 BC<br />
"Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla pariatur?"</p>
<p>1914 translation by H. Rackham<br />
"But I must explain to you how all this mistaken idea of denouncing pleasure and praising pain was born and I will give you a complete account of the system, and expound the actual teachings of the great explorer of the truth, the master-builder of human happiness. No one rejects, dislikes, or avoids pleasure itself, because it is pleasure, but because those who do not know how to pursue pleasure rationally encounter consequences that are extremely painful. Nor again is there anyone who loves or pursues or desires to obtain pain of itself, because it is pain, but because occasionally circumstances occur in which toil and pain can procure him some great pleasure. To take a trivial example, which of us ever undertakes laborious physical exercise, except to obtain some advantage from it? But who has any right to find fault with a man who chooses to enjoy a pleasure that has no annoying consequences, or one who avoids a pain that produces no resultant pleasure?"</p>
<p>Section 1.10.33 of "de Finibus Bonorum et Malorum", written by Cicero in 45 BC<br />
"At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil impedit quo minus id quod maxime placeat facere possimus, omnis voluptas assumenda est, omnis dolor repellendus. Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet ut et voluptates repudiandae sint et molestiae non recusandae. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat."</p>
<p>1914 translation by H. Rackham<br />
"On the other hand, we denounce with righteous indignation and dislike men who are so beguiled and demoralized by the charms of pleasure of the moment, so blinded by desire, that they cannot foresee the pain and trouble that are bound to ensue; and equal blame belongs to those who fail in their duty through weakness of will, which is the same as saying through shrinking from toil and pain. These cases are perfectly simple and easy to distinguish. In a free hour, when our power of choice is untrammelled and when nothing prevents our being able to do what we like best, every pleasure is to be welcomed and every pain avoided. But in certain circumstances and owing to the claims of duty or the obligations of business it will frequently occur that pleasures have to be repudiated and annoyances accepted. The wise man therefore always holds in these matters to this principle of selection: he rejects pleasures to secure other greater pleasures, or else he endures pains to avoid worse pains."</p>
<p>AI 도구를 도입하고 나면 누군가는 반드시 묻습니다. "그래서 얼마나 빨라졌어요?"</p>
<p>The post <a rel="nofollow" href="https://blog.wonizz.com/2026/08/07/ai-coding-productivity-14-percent/">[DevOps] AI 도입 효과, 코딩 속도를 재면 답이 안 나옵니다</a> appeared first on <a rel="nofollow" href="https://blog.wonizz.com">WONIZZ.LOG</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>The standard Lorem Ipsum passage, used since the 1500s<br />
"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."</p>
<p>Section 1.10.32 of "de Finibus Bonorum et Malorum", written by Cicero in 45 BC<br />
"Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla pariatur?"</p>
<p>1914 translation by H. Rackham<br />
"But I must explain to you how all this mistaken idea of denouncing pleasure and praising pain was born and I will give you a complete account of the system, and expound the actual teachings of the great explorer of the truth, the master-builder of human happiness. No one rejects, dislikes, or avoids pleasure itself, because it is pleasure, but because those who do not know how to pursue pleasure rationally encounter consequences that are extremely painful. Nor again is there anyone who loves or pursues or desires to obtain pain of itself, because it is pain, but because occasionally circumstances occur in which toil and pain can procure him some great pleasure. To take a trivial example, which of us ever undertakes laborious physical exercise, except to obtain some advantage from it? But who has any right to find fault with a man who chooses to enjoy a pleasure that has no annoying consequences, or one who avoids a pain that produces no resultant pleasure?"</p>
<p>Section 1.10.33 of "de Finibus Bonorum et Malorum", written by Cicero in 45 BC<br />
"At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil impedit quo minus id quod maxime placeat facere possimus, omnis voluptas assumenda est, omnis dolor repellendus. Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet ut et voluptates repudiandae sint et molestiae non recusandae. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat."</p>
<p>1914 translation by H. Rackham<br />
"On the other hand, we denounce with righteous indignation and dislike men who are so beguiled and demoralized by the charms of pleasure of the moment, so blinded by desire, that they cannot foresee the pain and trouble that are bound to ensue; and equal blame belongs to those who fail in their duty through weakness of will, which is the same as saying through shrinking from toil and pain. These cases are perfectly simple and easy to distinguish. In a free hour, when our power of choice is untrammelled and when nothing prevents our being able to do what we like best, every pleasure is to be welcomed and every pain avoided. But in certain circumstances and owing to the claims of duty or the obligations of business it will frequently occur that pleasures have to be repudiated and annoyances accepted. The wise man therefore always holds in these matters to this principle of selection: he rejects pleasures to secure other greater pleasures, or else he endures pains to avoid worse pains."</p>
<p>안녕하세요. 정리하는 개발자 워니즈입니다.</p>
<p>AI 도구를 도입하고 나면 누군가는 반드시 묻습니다. <strong>&#8220;그래서 얼마나 빨라졌어요?&#8221;</strong></p>
<p>저도 답하기 어려웠습니다. 분명 코드는 빨리 나오는데 일이 끝나는 속도는 크게 달라지지 않았거든요. 그동안은 감각의 문제라고 생각했습니다.</p>
<p>그런데 최근에 숫자 하나를 보고 이유를 알았습니다.</p>
<blockquote><p><strong>개발자가 코드 작성에 쓰는 시간은 전체의 14%다.</strong></p>
</blockquote>
<blockquote><p>, 2025년 Microsoft 엔지니어 450명 이상 조사</p>
</blockquote>
<p><strong>AI 코딩 생산성</strong>을 코딩 속도로 재고 있었으니 답이 안 나온 겁니다. 전체의 14%를 재고 있었으니까요.</p>
<p>그러면 본격적으로 정리해보도록 하겠습니다.</p>
<h2>1. 왜 답이 안 나오는가, 산술이 안 맞습니다</h2>
<p>코드 작성이 전체의 14%라면, <strong>나머지 86%는 원래부터 코딩이 아니었습니다.</strong></p>
<p>설계를 고민하고, 남의 코드를 읽고, 왜 안 되는지 찾고, 리뷰를 기다리고, 회의하고, 배포를 지켜보는 시간입니다.<br />
<img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/blog.wonizz.com/wp-content/uploads/2026/08/wz-d8.png?w=1200&#038;ssl=1" alt="AI 도입 효과 측정, 코드 작성은 전체 시간의 14%, 나머지 86%는 설계, 읽기, 디버깅, 리뷰" /><br />
여기서 계산이 나옵니다.</p>
<figure class="wp-block-table">
<table>
<thead>
<tr>
<th></th>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<td>코드 작성 시간</td>
<td>14%</td>
</tr>
<tr>
<td>AI로 그 부분을 <strong>2배</strong> 빠르게 하면</td>
<td>14% → 7%</td>
</tr>
<tr>
<td><strong>전체 절감</strong></td>
<td><strong>7%</strong></td>
</tr>
</tbody>
</table>
</figure>
<p><strong>코딩 속도를 두 배로 올려도 전체는 7% 줄어듭니다.</strong></p>
<p>7%는 하루 8시간 중 30분입니다. 회의 하나 길어지면 사라지는 양이죠. <strong>측정에 안 잡히는 게 당연합니다.</strong></p>
<p>같은 자료에 좋은 근무일의 코딩 시간이 18%, 나쁜 근무일이 11%라는 수치도 있습니다. 하루가 잘 풀리든 안 풀리든 <strong>코드를 치는 시간은 원래 그 정도</strong>입니다.</p>
<h2>2. 그럼 무엇을 재야 하는가</h2>
<p><strong>리뷰 대기 시간입니다.</strong></p>
<p>AI 채택도가 높은 팀을 조사한 결과가 이 방향을 가리킵니다.</p>
<figure class="wp-block-table">
<table>
<thead>
<tr>
<th>지표</th>
<th>변화</th>
</tr>
</thead>
<tbody>
<tr>
<td>처리한 작업, 병합 PR 수</td>
<td>증가 ✅</td>
</tr>
<tr>
<td><strong>PR 리뷰 시간</strong></td>
<td><strong>91% 증가</strong></td>
</tr>
<tr>
<td><strong>PR 크기</strong></td>
<td><strong>154% 증가</strong></td>
</tr>
<tr>
<td>버그 수</td>
<td>9% 증가</td>
</tr>
</tbody>
</table>
</figure>
<p>그리고 이 숫자가 핵심입니다. <strong>AI가 작성한 PR은 리뷰어가 집어들기까지 사람이 쓴 것보다 평균 4.6배 오래 기다립니다.</strong></p>
<p>만드는 14%가 빨라지면 그 뒤에 줄이 생깁니다. <strong>속도가 사라진 게 아니라 다음 단계로 옮겨간 것</strong>이고, 코딩 시간만 재면 이 이동이 보이지 않습니다.</p>
<p>생각해보면 당연합니다. PR이 2.5배 커졌는데 리뷰할 사람 수는 그대로입니다. <strong>만드는 쪽만 빨라지면 그다음 단계에 줄이 생깁니다.</strong></p>
<p>AI 도입 효과를 코딩 시간으로 재면 이 이동이 통계에 잡히지 않습니다. 코딩 시간은 줄었고 리뷰 대기는 늘었는데, 둘을 따로 보면 &#8220;빨라졌다&#8221;만 남습니다.</p>
<p>이 얘기는 <a href="https://blog.wonizz.com/2026/08/04/ai-coding-tools-review-bottleneck/">AI 코딩 도구, 빨라진 건 맞는데 어디가 느려졌을까</a>에서 더 다뤘습니다.</p>
<h2>3. 제 경우에도 그랬습니다</h2>
<p>에이전트를 여러 개 굴리면서 산출물은 확실히 늘었습니다. 문서 초안, 스크립트, 조사 자료가 동시에 만들어집니다.</p>
<p>그런데 <strong>늘어난 만큼 읽어야 했습니다.</strong> 혼자 짰다면 짜는 동안 검증이 끝나 있는데, 받은 것은 읽고 판단해야 합니다. 그 부담이 전부 한 사람에게 몰렸습니다. (<a href="https://blog.wonizz.com/2026/08/06/ai-agent-solo-work-verification/">AI 에이전트로 혼자 일하기</a>)</p>
<p><strong>하네스를 절반 걷어낸 것도 같은 이유였습니다.</strong> 코딩을 더 돕는 도구를 추가하는 것보다, 판단과 검증 쪽 부담을 줄이는 게 실제로 남았습니다.</p>
<p>세 경우 모두 <strong>14%가 아니라 86% 쪽에서 일이 벌어지고 있었습니다.</strong></p>
<p>공통점이 하나 있습니다. <strong>문제가 생긴 곳은 전부 &#8220;만든 뒤&#8221;였습니다.</strong> 만드는 과정은 순조로웠고, 그 결과물을 읽고 판단하고 책임지는 단계에서 시간이 갔습니다.</p>
<h2>4. AI 도입 효과, 이렇게 재기로 했습니다</h2>
<p>AI 도입 효과를 물을 때 저는 이제 코딩 시간을 묻지 않습니다. 대신 이 셋을 봅니다.</p>
<figure class="wp-block-table">
<table>
<thead>
<tr>
<th>측정할 것</th>
<th>왜</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>PR이 올라간 뒤 리뷰까지 걸린 시간</strong></td>
<td>병목이 여기로 이동했다</td>
</tr>
<tr>
<td><strong>PR 하나의 평균 크기</strong></td>
<td>커질수록 리뷰가 밀린다</td>
</tr>
<tr>
<td><strong>되돌린 횟수(롤백, 재작업)</strong></td>
<td>빨리 만들고 다시 만드는 건 절감이 아니다</td>
</tr>
</tbody>
</table>
</figure>
<p>세 지표 모두 <strong>코딩 속도와 무관하게 움직입니다.</strong> 그리고 도구를 바꿨을 때 실제로 값이 변합니다.</p>
<p>반대로 &#8220;AI가 코드를 몇 줄 썼는가&#8221;는 재봐야 소용없습니다. 줄 수가 늘어난 만큼 읽을 것도 늘어나니까요.</p>
<p>한 가지 덧붙이면, 이 지표들은 <strong>도입 전에 먼저 재둬야</strong> 의미가 있습니다. 도입 후에 재면 비교 대상이 없어 &#8220;느낌&#8221;으로 판단하게 됩니다. AI 도입 효과를 두고 논쟁이 갈리는 이유가 대개 여기 있습니다. 양쪽 다 기준선이 없습니다.</p>
<h2>5. AI 코딩 생산성, 정리</h2>
<ul>
<li><strong>코드 작성은 개발 시간의 14%다.</strong> 좋은 날 18%, 나쁜 날 11%</li>
<li>그 14%를 2배 빠르게 해도 <strong>전체는 7%만 줄어든다.</strong> 하루 30분이라 측정에 안 잡힌다</li>
<li><strong>속도는 사라진 게 아니라 리뷰로 이동했다.</strong> 리뷰 시간 91%↑, PR 크기 154%↑</li>
<li>그래서 재야 할 것은 코딩 시간이 아니라 <strong>리뷰 대기 시간, PR 크기, 재작업 횟수</strong>다</li>
<li>&#8220;AI가 개인을 10배 개발자로 만든다&#8221;는 기대는 <strong>애초에 산술이 안 맞는다</strong></li>
</ul>
<p><strong>당장 해보실 수 있는 것 하나</strong>를 남기겠습니다. 최근 PR 다섯 개를 열어 이것만 확인해보세요.</p>
<blockquote><p><strong>올린 시각과 첫 리뷰가 달린 시각의 차이</strong></p>
</blockquote>
<p>여기가 코딩 시간보다 길다면, AI 도구를 더 붙여도 체감은 달라지지 않습니다. <strong>줄여야 할 곳은 그쪽입니다.</strong></p>
<p>읽어주셔서 감사합니다. 팀에서 어떤 지표를 보고 계신지 궁금합니다.</p>
<h2>참고</h2>
<ul>
<li><a href="https://news.hada.io/topic?id=32175" target="_blank" rel="noopener">소프트웨어 엔지니어링과 생성형 AI에 관한 8가지 오해 (GeekNews)</a></li>
<li><a href="https://arxiv.org/abs/2507.09089" target="_blank" rel="noopener">Measuring the Impact of Early-2025 AI on Experienced Open-Source Developer Productivity (arXiv)</a></li>
</ul>
<p>The post <a rel="nofollow" href="https://blog.wonizz.com/2026/08/07/ai-coding-productivity-14-percent/">[DevOps] AI 도입 효과, 코딩 속도를 재면 답이 안 나옵니다</a> appeared first on <a rel="nofollow" href="https://blog.wonizz.com">WONIZZ.LOG</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.wonizz.com/2026/08/07/ai-coding-productivity-14-percent/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">3020</post-id>	</item>
		<item>
		<title>[DevOps] AI 코딩 하네스, 6개월 굴리고 절반을 걷어냈습니다</title>
		<link>https://blog.wonizz.com/2026/08/05/ai-coding-harness-what-to-remove/</link>
					<comments>https://blog.wonizz.com/2026/08/05/ai-coding-harness-what-to-remove/#respond</comments>
		
		<dc:creator><![CDATA[워니즈]]></dc:creator>
		<pubDate>Wed, 05 Aug 2026 02:33:41 +0000</pubDate>
				<category><![CDATA[AI & LLM]]></category>
		<category><![CDATA[AI코딩]]></category>
		<category><![CDATA[ClaudeCode]]></category>
		<category><![CDATA[DevOps]]></category>
		<category><![CDATA[생산성]]></category>
		<category><![CDATA[하네스]]></category>
		<guid isPermaLink="false">https://blog.wonizz.com/?p=2801</guid>

					<description><![CDATA[<p>The standard Lorem Ipsum passage, used since the 1500s<br />
"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."</p>
<p>Section 1.10.32 of "de Finibus Bonorum et Malorum", written by Cicero in 45 BC<br />
"Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla pariatur?"</p>
<p>1914 translation by H. Rackham<br />
"But I must explain to you how all this mistaken idea of denouncing pleasure and praising pain was born and I will give you a complete account of the system, and expound the actual teachings of the great explorer of the truth, the master-builder of human happiness. No one rejects, dislikes, or avoids pleasure itself, because it is pleasure, but because those who do not know how to pursue pleasure rationally encounter consequences that are extremely painful. Nor again is there anyone who loves or pursues or desires to obtain pain of itself, because it is pain, but because occasionally circumstances occur in which toil and pain can procure him some great pleasure. To take a trivial example, which of us ever undertakes laborious physical exercise, except to obtain some advantage from it? But who has any right to find fault with a man who chooses to enjoy a pleasure that has no annoying consequences, or one who avoids a pain that produces no resultant pleasure?"</p>
<p>Section 1.10.33 of "de Finibus Bonorum et Malorum", written by Cicero in 45 BC<br />
"At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil impedit quo minus id quod maxime placeat facere possimus, omnis voluptas assumenda est, omnis dolor repellendus. Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet ut et voluptates repudiandae sint et molestiae non recusandae. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat."</p>
<p>1914 translation by H. Rackham<br />
"On the other hand, we denounce with righteous indignation and dislike men who are so beguiled and demoralized by the charms of pleasure of the moment, so blinded by desire, that they cannot foresee the pain and trouble that are bound to ensue; and equal blame belongs to those who fail in their duty through weakness of will, which is the same as saying through shrinking from toil and pain. These cases are perfectly simple and easy to distinguish. In a free hour, when our power of choice is untrammelled and when nothing prevents our being able to do what we like best, every pleasure is to be welcomed and every pain avoided. But in certain circumstances and owing to the claims of duty or the obligations of business it will frequently occur that pleasures have to be repudiated and annoyances accepted. The wise man therefore always holds in these matters to this principle of selection: he rejects pleasures to secure other greater pleasures, or else he endures pains to avoid worse pains."</p>
<p>요즘 AI 코딩 하네스를 두고 정반대 이야기가 동시에 나옵니다.</p>
<p>The post <a rel="nofollow" href="https://blog.wonizz.com/2026/08/05/ai-coding-harness-what-to-remove/">[DevOps] AI 코딩 하네스, 6개월 굴리고 절반을 걷어냈습니다</a> appeared first on <a rel="nofollow" href="https://blog.wonizz.com">WONIZZ.LOG</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>The standard Lorem Ipsum passage, used since the 1500s<br />
"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."</p>
<p>Section 1.10.32 of "de Finibus Bonorum et Malorum", written by Cicero in 45 BC<br />
"Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla pariatur?"</p>
<p>1914 translation by H. Rackham<br />
"But I must explain to you how all this mistaken idea of denouncing pleasure and praising pain was born and I will give you a complete account of the system, and expound the actual teachings of the great explorer of the truth, the master-builder of human happiness. No one rejects, dislikes, or avoids pleasure itself, because it is pleasure, but because those who do not know how to pursue pleasure rationally encounter consequences that are extremely painful. Nor again is there anyone who loves or pursues or desires to obtain pain of itself, because it is pain, but because occasionally circumstances occur in which toil and pain can procure him some great pleasure. To take a trivial example, which of us ever undertakes laborious physical exercise, except to obtain some advantage from it? But who has any right to find fault with a man who chooses to enjoy a pleasure that has no annoying consequences, or one who avoids a pain that produces no resultant pleasure?"</p>
<p>Section 1.10.33 of "de Finibus Bonorum et Malorum", written by Cicero in 45 BC<br />
"At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil impedit quo minus id quod maxime placeat facere possimus, omnis voluptas assumenda est, omnis dolor repellendus. Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet ut et voluptates repudiandae sint et molestiae non recusandae. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat."</p>
<p>1914 translation by H. Rackham<br />
"On the other hand, we denounce with righteous indignation and dislike men who are so beguiled and demoralized by the charms of pleasure of the moment, so blinded by desire, that they cannot foresee the pain and trouble that are bound to ensue; and equal blame belongs to those who fail in their duty through weakness of will, which is the same as saying through shrinking from toil and pain. These cases are perfectly simple and easy to distinguish. In a free hour, when our power of choice is untrammelled and when nothing prevents our being able to do what we like best, every pleasure is to be welcomed and every pain avoided. But in certain circumstances and owing to the claims of duty or the obligations of business it will frequently occur that pleasures have to be repudiated and annoyances accepted. The wise man therefore always holds in these matters to this principle of selection: he rejects pleasures to secure other greater pleasures, or else he endures pains to avoid worse pains."</p>
안녕하세요. 정리하는 개발자 워니즈입니다.

요즘 <strong>AI 코딩 하네스</strong>를 두고 정반대 이야기가 동시에 나옵니다.

한쪽은 걷어내라고 합니다. 모델이 충분히 좋아졌으니 복잡한 하네스는 맥락만 오염시키고, 유지보수 부채에 디버깅까지 어렵게 만든다는 겁니다. 다른 쪽은 하네스는 필연적으로 낡으니 <strong>리팩토링하라</strong>고 합니다.

둘 다 일리가 있어서 판단이 어려웠습니다. 저는 6개월째 하네스를 굴리고 있고, 그동안 <strong>실제로 절반 가까이 걷어냈습니다.</strong> 무엇을 버렸고 무엇을 남겼는지, 그 기준이 무엇이었는지 적어보려 합니다.

그러면 본격적으로 정리해보도록 하겠습니다.

<h2>1. AI 코딩 하네스는 왜 무거워지는가</h2>

처음엔 다들 비슷하게 시작합니다. 반복되는 지시를 파일로 빼고, 자주 쓰는 절차를 명령으로 만들고, 실수한 것을 규칙으로 적습니다.

문제는 <strong>추가는 쉽고 제거는 어렵다</strong>는 점입니다.

<ul>
  <li>규칙은 한 번 사고가 나면 추가되지만, 사고가 안 나면 지울 이유가 없습니다</li>
  <li>명령어는 만들 때 비용이 들었으니 아까워서 못 지웁니다</li>
  <li>&#8220;혹시 나중에 쓸지도&#8221;가 쌓입니다</li>
</ul>

그렇게 제 하네스는 <strong>스킬 109개</strong>까지 늘었습니다.

<h2>2. 걷어낸 것 — 숫자로 보면 명확했습니다</h2>

정리하고 나서야 비용이 보였습니다.
<img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/blog.wonizz.com/wp-content/uploads/2026/08/wz-d6.png?w=1200&#038;ssl=1" alt="AI 코딩 하네스 정리 전후 비교 — 스킬 109개에서 66개로, 세션당 5813 토큰 절감" />

<figure class="wp-block-table">

<table><thead><tr><th></th><th>정리 전</th><th>정리 후</th></tr></thead><tbody><tr><td>등록된 스킬</td><td><strong>109개</strong></td><td><strong>66개</strong></td></tr><tr><td>세션당 고정 비용</td><td>—</td><td><strong>5,813 토큰 절감</strong></td></tr></tbody></table>

</figure>

여기서 중요한 건 절감량 자체가 아니라 <strong>그게 고정 비용이었다는 사실</strong>입니다.

스킬 설명문은 매 세션 컨텍스트에 통째로 들어갑니다. 한 번도 안 쓰는 스킬이라도 <strong>존재하는 것만으로 매번 값을 치릅니다.</strong> 43개를 지우고 나서야 그동안 무엇을 내고 있었는지 알았습니다.

그래서 규칙을 하나 만들었습니다.

<blockquote><strong>생성 30일 경과 + 최근 60일 호출 0회 = 아카이브 후보</strong></p></blockquote>

<h2>3. 그런데 이 규칙에 함정이 있었습니다</h2>

호출 이력만으로 판정하면 <strong>멀쩡한 걸 지웁니다.</strong>

<ul>
  <li>다른 스킬이 내부에서 불러 쓰는 것 — 로그에 안 남습니다</li>
  <li>문서에서 경로로만 참조하는 것</li>
  <li>핸드오프 체인 중간에 있는 것</li>
</ul>

그리고 <strong>장애 대응용이나 연간 1회짜리</strong>는 호출 0이 정상입니다. 이런 건 따로 표시해 면제했습니다.

즉 &#8220;안 쓰니까 지운다&#8221;가 아니라 <strong>&#8220;안 쓰는지 확인하고 지운다&#8221;</strong>로 한 단계를 더 뒀습니다.

<h2>4. 남긴 것 — 걷어내면 안 되는 세 가지</h2>

절반을 지우면서 오히려 분명해진 게 있습니다. AI 코딩 하네스에서 이건 남겨야 합니다.

<strong>첫째, 사고가 재발하는 규칙.</strong> 한 번 크게 데인 것은 규칙으로 박아둬야 합니다. 모델이 좋아져도 같은 실수를 합니다. 제 경우 &#8220;작업 결과를 보고만 믿지 말고 상태를 직접 확인한다&#8221;가 그렇습니다.

<strong>둘째, 판단 기준.</strong> &#8220;언제 맡기고 언제 직접 하는가&#8221; 같은 것은 매번 새로 생각하면 흔들립니다. 이건 프롬프트가 아니라 <strong>의사결정 비용을 줄이는 장치</strong>입니다.

<strong>셋째, 검증 게이트.</strong> 발행 전 보안 검사처럼 <strong>빠뜨리면 되돌릴 수 없는 것</strong>은 자동화해서 강제해야 합니다. 사람이 기억하는 방식은 언젠가 실패합니다.

반대로 걷어내기 좋은 건 <strong>&#8220;하는 방법&#8221;을 적어둔 것들</strong>이었습니다. 모델이 이미 아는 걸 굳이 설명하고 있던 문서가 많았습니다.

<h2>5. AI 코딩 하네스, 어느 쪽이 맞나</h2>

처음의 두 주장으로 돌아가면 제 답은 이렇습니다.

<strong>&#8220;걷어내라&#8221;는 절반 맞습니다.</strong> 방법을 설명하는 문서, 모델이 이미 잘하는 영역을 통제하려는 규칙은 부채가 맞습니다. 모델이 좋아질수록 더 그렇습니다.

<strong>&#8220;리팩토링하라&#8221;도 절반 맞습니다.</strong> 다만 리팩토링의 대상은 규칙 자체가 아니라 <strong>&#8220;이 규칙이 여전히 필요한 이유&#8221;</strong>입니다. 이유가 사라졌으면 지우고, 남아 있으면 유지합니다.

그래서 제 기준은 이겁니다.

<figure class="wp-block-table">

<table><thead><tr><th>물어볼 것</th><th>판단</th></tr></thead><tbody><tr><td>이게 없으면 <strong>같은 사고가 재발</strong>하는가</td><td>남긴다</td></tr><tr><td>매번 <strong>판단이 흔들리는가</strong></td><td>남긴다</td></tr><tr><td>빠뜨리면 <strong>되돌릴 수 없는가</strong></td><td>남긴다 (게이트로 강제)</td></tr><tr><td>모델이 <strong>이미 잘하는 걸 설명</strong>하고 있는가</td><td>지운다</td></tr><tr><td><strong>&#8220;혹시 나중에&#8221;</strong> 때문에 남아 있는가</td><td>지운다</td></tr></tbody></table>

</figure>

<h2>6. 정리</h2>

<ul>
  <li>AI 코딩 하네스는 <strong>추가는 쉽고 제거는 어려워서</strong> 필연적으로 무거워진다</li>
  <li>안 쓰는 것도 <strong>고정 비용을 낸다.</strong> 설명문이 매 세션 컨텍스트에 들어가기 때문</li>
  <li>실측: 스킬 109개 → 66개, <strong>세션당 5,813 토큰 절감</strong></li>
  <li>다만 <strong>호출 이력만으로 판정하면 멀쩡한 걸 지운다.</strong> 경유 호출·문서 참조·연간 작업은 로그에 안 남는다</li>
  <li>남길 것은 셋뿐이다 — <strong>사고 재발 방지 / 판단 기준 / 되돌릴 수 없는 것의 게이트</strong></li>
  <li>지울 것은 <strong>&#8220;하는 방법&#8221;을 적어둔 문서</strong>다. 모델이 이미 안다</li>
</ul>

<strong>당장 해보실 수 있는 것 하나</strong>를 남기겠습니다. 지금 쓰는 하네스에서 규칙을 하나 골라 이렇게 물어보세요.

<blockquote>&#8220;이 규칙은 <strong>어떤 사고</strong> 때문에 생겼는가?&#8221;

</blockquote>

답이 안 나오면 지워도 되는 규칙입니다. 답이 나오는데 그 사고가 이제 안 일어난다면, 그것도 지울 때가 된 겁니다.

AI 에이전트에게 어디까지 맡길지는 권한 문제이기도 합니다. 그 얘기는 <a href="https://blog.wonizz.com/2026/08/03/ai-agent-permission-recovery-cost/">AI 에이전트 권한 설계 — &#8216;되돌릴 수 있다&#8217;는 착각</a>에 정리했습니다.

읽어주셔서 감사합니다. 하네스를 어떻게 정리하고 계신지, 남기신 규칙은 무엇인지 궁금합니다.

<h2>참고</h2>

<ul>
  <li><a href="https://www.youtube.com/watch?v=rdaQSG8KG-g" target="_blank" rel="noopener">아직도 하네스 쓰세요? 다른 사람들은 이미 움직입니다 (메이커 에반)</a></li>
  <li><a href="https://www.youtube.com/watch?v=jE-r1bDM6No" target="_blank" rel="noopener">잘 만든 하네스도 금방 낡는 이유 — 하네스 리팩토링과 루프 엔지니어링 (개발동생)</a></li>
</ul>
<h2>하네스를 걷어낸 뒤, 실제로 속도는 빨라졌나요?</h2>

<p>이 글에서 잰 건 토큰 절감(세션당 5,813 토큰)이지 작업 속도는 아닙니다. &#8220;AI 도구를 쓰면 빨라진다&#8221;는 전제 자체를 따로 재 본 적이 있는데, 결과는 단순하지 않았습니다. 하네스를 가볍게 하는 것과 실제 체감 속도가 항상 같이 가지는 않는다는 걸 그때 알았습니다.</p>

<div class="wonizz-next-read" style="margin:28px 0;padding:14px 18px;border:1px solid #e5e7eb;border-left:4px solid #f5a623;border-radius:6px;background:#fafafa;"><div style="font-weight:700;margin-bottom:6px;">이 글 다음에 읽을 글</div><ul style="margin:0;padding-left:20px;"><li><a href="https://blog.wonizz.com/2026/08/04/ai-coding-tools-review-bottleneck/?from=nr-2801-end">[DevOps] AI 코딩 도구, 빨라진 건 맞는데 어디가 느려졌을까</a></li><li><a href="https://blog.wonizz.com/2026/08/07/ai-coding-productivity-14-percent/?from=nr-2801-end">[DevOps] AI 도입 효과, 코딩 속도를 재면 답이 안 나옵니다</a></li></ul></div>

<p><strong>AI 활용 고지</strong>: AI 도구로 초안을 만들고 직접 실행·검증한 내용입니다.</p>

<h2 class="wp-block-heading">함께 보면 좋은 글</h2>
<ul class="wp-block-list"><li><a href="https://blog.wonizz.com/2026/08/27/aside-browser-review/">[AI Now] Aside 브라우저 후기, 함정 6가지</a></li></ul>
<p>The post <a rel="nofollow" href="https://blog.wonizz.com/2026/08/05/ai-coding-harness-what-to-remove/">[DevOps] AI 코딩 하네스, 6개월 굴리고 절반을 걷어냈습니다</a> appeared first on <a rel="nofollow" href="https://blog.wonizz.com">WONIZZ.LOG</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.wonizz.com/2026/08/05/ai-coding-harness-what-to-remove/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2801</post-id>	</item>
		<item>
		<title>[DevOps] AI 코딩 도구, 빨라진 건 맞는데 어디가 느려졌을까</title>
		<link>https://blog.wonizz.com/2026/08/04/ai-coding-tools-review-bottleneck/</link>
					<comments>https://blog.wonizz.com/2026/08/04/ai-coding-tools-review-bottleneck/#respond</comments>
		
		<dc:creator><![CDATA[워니즈]]></dc:creator>
		<pubDate>Tue, 04 Aug 2026 00:53:02 +0000</pubDate>
				<category><![CDATA[AI & LLM]]></category>
		<category><![CDATA[AI에이전트]]></category>
		<category><![CDATA[AI코딩]]></category>
		<category><![CDATA[DevOps]]></category>
		<category><![CDATA[생산성]]></category>
		<category><![CDATA[코드리뷰]]></category>
		<guid isPermaLink="false">https://blog.wonizz.com/?p=2798</guid>

					<description><![CDATA[<p>The standard Lorem Ipsum passage, used since the 1500s<br />
"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."</p>
<p>Section 1.10.32 of "de Finibus Bonorum et Malorum", written by Cicero in 45 BC<br />
"Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla pariatur?"</p>
<p>1914 translation by H. Rackham<br />
"But I must explain to you how all this mistaken idea of denouncing pleasure and praising pain was born and I will give you a complete account of the system, and expound the actual teachings of the great explorer of the truth, the master-builder of human happiness. No one rejects, dislikes, or avoids pleasure itself, because it is pleasure, but because those who do not know how to pursue pleasure rationally encounter consequences that are extremely painful. Nor again is there anyone who loves or pursues or desires to obtain pain of itself, because it is pain, but because occasionally circumstances occur in which toil and pain can procure him some great pleasure. To take a trivial example, which of us ever undertakes laborious physical exercise, except to obtain some advantage from it? But who has any right to find fault with a man who chooses to enjoy a pleasure that has no annoying consequences, or one who avoids a pain that produces no resultant pleasure?"</p>
<p>Section 1.10.33 of "de Finibus Bonorum et Malorum", written by Cicero in 45 BC<br />
"At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil impedit quo minus id quod maxime placeat facere possimus, omnis voluptas assumenda est, omnis dolor repellendus. Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet ut et voluptates repudiandae sint et molestiae non recusandae. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat."</p>
<p>1914 translation by H. Rackham<br />
"On the other hand, we denounce with righteous indignation and dislike men who are so beguiled and demoralized by the charms of pleasure of the moment, so blinded by desire, that they cannot foresee the pain and trouble that are bound to ensue; and equal blame belongs to those who fail in their duty through weakness of will, which is the same as saying through shrinking from toil and pain. These cases are perfectly simple and easy to distinguish. In a free hour, when our power of choice is untrammelled and when nothing prevents our being able to do what we like best, every pleasure is to be welcomed and every pain avoided. But in certain circumstances and owing to the claims of duty or the obligations of business it will frequently occur that pleasures have to be repudiated and annoyances accepted. The wise man therefore always holds in these matters to this principle of selection: he rejects pleasures to secure other greater pleasures, or else he endures pains to avoid worse pains."</p>
<p>요즘 AI 코딩 도구 입문 콘텐츠가 부쩍 늘었습니다. 터미널을 모르는 사람도 시작할 수 있다는 가이드가 나오고, 실제로 진입장벽은 많이 낮아졌습니다.</p>
<p>The post <a rel="nofollow" href="https://blog.wonizz.com/2026/08/04/ai-coding-tools-review-bottleneck/">[DevOps] AI 코딩 도구, 빨라진 건 맞는데 어디가 느려졌을까</a> appeared first on <a rel="nofollow" href="https://blog.wonizz.com">WONIZZ.LOG</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>The standard Lorem Ipsum passage, used since the 1500s<br />
"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."</p>
<p>Section 1.10.32 of "de Finibus Bonorum et Malorum", written by Cicero in 45 BC<br />
"Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla pariatur?"</p>
<p>1914 translation by H. Rackham<br />
"But I must explain to you how all this mistaken idea of denouncing pleasure and praising pain was born and I will give you a complete account of the system, and expound the actual teachings of the great explorer of the truth, the master-builder of human happiness. No one rejects, dislikes, or avoids pleasure itself, because it is pleasure, but because those who do not know how to pursue pleasure rationally encounter consequences that are extremely painful. Nor again is there anyone who loves or pursues or desires to obtain pain of itself, because it is pain, but because occasionally circumstances occur in which toil and pain can procure him some great pleasure. To take a trivial example, which of us ever undertakes laborious physical exercise, except to obtain some advantage from it? But who has any right to find fault with a man who chooses to enjoy a pleasure that has no annoying consequences, or one who avoids a pain that produces no resultant pleasure?"</p>
<p>Section 1.10.33 of "de Finibus Bonorum et Malorum", written by Cicero in 45 BC<br />
"At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil impedit quo minus id quod maxime placeat facere possimus, omnis voluptas assumenda est, omnis dolor repellendus. Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet ut et voluptates repudiandae sint et molestiae non recusandae. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat."</p>
<p>1914 translation by H. Rackham<br />
"On the other hand, we denounce with righteous indignation and dislike men who are so beguiled and demoralized by the charms of pleasure of the moment, so blinded by desire, that they cannot foresee the pain and trouble that are bound to ensue; and equal blame belongs to those who fail in their duty through weakness of will, which is the same as saying through shrinking from toil and pain. These cases are perfectly simple and easy to distinguish. In a free hour, when our power of choice is untrammelled and when nothing prevents our being able to do what we like best, every pleasure is to be welcomed and every pain avoided. But in certain circumstances and owing to the claims of duty or the obligations of business it will frequently occur that pleasures have to be repudiated and annoyances accepted. The wise man therefore always holds in these matters to this principle of selection: he rejects pleasures to secure other greater pleasures, or else he endures pains to avoid worse pains."</p>
안녕하세요. 정리하는 개발자 워니즈입니다.

요즘 <strong>AI 코딩 도구</strong> 입문 콘텐츠가 부쩍 늘었습니다. 터미널을 모르는 사람도 시작할 수 있다는 가이드가 나오고, 실제로 진입장벽은 많이 낮아졌습니다.

저도 매일 씁니다. 그런데 최근에 관련 연구들을 찾아보다가 <strong>결과가 정면으로 엇갈리는 걸</strong> 발견했습니다. 그리고 그 이유를 따라가 보니, 제가 겪은 일들과 정확히 맞아떨어졌습니다.

그러면 본격적으로 정리해보도록 하겠습니다.

<h2>1. 같은 질문에 정반대 답이 나옵니다</h2>

먼저 긍정적인 쪽입니다.

<ul>
  <li>GitHub Copilot 대조 실험 — AI 사용 그룹이 작업을 <strong>55.8% 빨리</strong> 완료</li>
  <li>맥킨지 — 코딩 작업을 <strong>최대 2배</strong> 빠르게 처리 가능</li>
</ul>

그런데 반대 결과도 있습니다.

<ul>
  <li><strong>METR 2025</strong> — AI 도구 사용이 허용됐을 때 문제 해결에 <strong>19% 더 오래</strong> 걸림</li>
  <li>숙련 개발자 대상 연구 — AI 사용 시 오히려 <strong>18% 느려짐</strong></li>
  <li>Uplevel 보고서 — PR 주기와 병합 수에서 <strong>유의미한 개선 없음</strong></li>
</ul>

METR 결과가 특히 눈에 띕니다. <strong>개발자 본인과 전문가의 예상을 모두 뒤집었기 때문입니다.</strong> 참가자들은 자기가 빨라졌다고 느꼈는데 실제로는 느려져 있었습니다.

<h2>2. 왜 갈리나 — 무엇을 쟀느냐의 차이</h2>

자세히 보면 두 진영이 <strong>다른 것을 재고 있습니다.</strong>

긍정적 수치들은 대체로 <strong>&#8220;코드를 만드는 시간&#8221;</strong>을 잽니다. 맥킨지 보고서도 단서를 달아뒀는데, 개발자가 까다롭다고 평가한 작업에서는 시간 절감이 <strong>10% 미만</strong>으로 줄었습니다.

즉 빨라지는 건 맞습니다. <strong>쉬운 작업의 초안을 뽑는 속도</strong>가요. 그리고 그건 원래 병목이 아니었습니다.

<h2>3. 병목은 사라진 게 아니라 이동했습니다</h2>

AI 채택도가 높은 팀을 조사한 결과가 이 구조를 잘 보여줍니다.
<img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/blog.wonizz.com/wp-content/uploads/2026/08/wz-d5.png?w=1200&#038;ssl=1" alt="AI 코딩 도구 도입 후 지표 변화 — 처리량은 늘었지만 PR 리뷰 시간 91% 증가, PR 크기 154% 증가, 버그 9% 증가" />

<figure class="wp-block-table">

<table><thead><tr><th>지표</th><th>변화</th></tr></thead><tbody><tr><td>처리한 작업·병합 PR 수</td><td>증가 ✅</td></tr><tr><td><strong>PR 리뷰 시간</strong></td><td><strong>91% 증가</strong></td></tr><tr><td><strong>PR 크기</strong></td><td><strong>154% 증가</strong></td></tr><tr><td>버그 수</td><td>9% 증가</td></tr></tbody></table>

</figure>

Uplevel의 별도 조사에서는 Copilot 사용 시 <strong>버그가 41% 더 발생</strong>했다는 결과도 나왔습니다.

그리고 이 숫자가 상황을 압축합니다. <strong>AI가 작성한 PR은 리뷰어가 집어들기까지 사람이 쓴 것보다 평균 4.6배 오래 기다립니다.</strong>

생각해보면 당연합니다. PR이 2.5배 커졌는데 리뷰할 사람 수는 그대로니까요. <strong>만드는 쪽만 빨라지면 그다음 단계에 줄이 생깁니다.</strong>

<h2>4. 가장 무서운 숫자는 따로 있습니다</h2>

한 보안 조사 결과입니다.

<blockquote>개발자의 <strong>96%</strong>가 AI 생성 코드가 기능적으로 완전히 옳다고 확신하지 못한다고 답했다.</p></blockquote>

<blockquote>그런데 커밋 전에 <strong>항상 검증한다</strong>고 답한 비율은 <strong>48%</strong>였다.</p></blockquote>

<strong>믿지 않는데 확인도 안 합니다.</strong> 이 48%포인트의 간극이 앞의 버그 증가율과 연결된다고 봅니다.

저도 자유롭지 않습니다. 얼마 전 작업을 AI에게 맡겼는데, 결과 보고에 &#8220;기존 스캐너에 특정 패턴이 없다&#8221;고 적혀 있었습니다. 저는 의심하고 <code>grep</code>으로 확인했고, 14건이 나오길래 <strong>&#8220;틀렸네&#8221;라고 판단했습니다.</strong>

그런데 실제로 파일을 열어보니 그 14건은 전부 패턴의 <em>이름</em>이었습니다. 실제 탐지 규칙은 하나도 없었습니다. <strong>AI가 맞았고 제가 틀렸습니다.</strong>

검증을 안 한 게 아니라 <strong>검증을 잘못한 것</strong>입니다. 그리고 이건 검증에도 시간과 실력이 든다는 뜻입니다.

<h2>5. 그래서 어디서 끊을 것인가</h2>

이 경험들을 정리하면서 저는 판단 기준을 이렇게 바꿨습니다. <strong>작업 종류가 아니라 &#8220;검증 방식&#8221;으로 나눕니다.</strong>

<figure class="wp-block-table">

<table><thead><tr><th>검증이 이렇게 되면</th><th>판단</th></tr></thead><tbody><tr><td><strong>기계적</strong> — 테스트 통과 여부로 끝남</td><td>맡긴다. 이득이 확실하다</td></tr><tr><td><strong>읽어야 함</strong> — 사람이 코드를 판독해야 함</td><td>신중. 읽는 시간이 짓는 시간과 크게 다르지 않다</td></tr><tr><td><strong>판단 필요</strong> — 맥락을 알아야 옳고 그름이 갈림</td><td>직접 한다</td></tr></tbody></table>

</figure>

세 번째가 핵심입니다. 위 사례에서 제가 틀린 이유가 <strong><code>grep</code> 결과를 해석하는 맥락이 없었기 때문</strong>입니다. 기계적 확인은 했지만 판단이 빠졌던 거죠.

그리고 하나 더 — <strong>PR을 작게 유지하는 게 전보다 훨씬 중요해졌습니다.</strong> AI는 요청하면 큰 변경을 한 번에 만들어냅니다. 만들 때는 편한데, 리뷰 단계에서 그 비용을 그대로 치릅니다. 154%라는 숫자가 그겁니다.

<h2>6. AI 코딩 도구를 쓸 때 남는 질문</h2>

<ul>
  <li>빨라지는 건 <strong>쉬운 작업의 초안 작성</strong>이고, 그건 원래 병목이 아니었다</li>
  <li>병목은 사라지지 않고 <strong>리뷰로 이동</strong>했다 (리뷰 시간 91%↑, PR 크기 154%↑)</li>
  <li><strong>믿지 않으면서 확인도 안 하는 구간</strong>이 가장 위험하다 (96% vs 48%)</li>
  <li>검증에도 실력이 든다. <strong>확인했다고 맞는 게 아니다</strong></li>
  <li>작업이 아니라 <strong>검증 방식으로 나눈다.</strong> 기계적이면 맡기고, 판단이 필요하면 직접 한다</li>
</ul>

권한을 어디까지 줄지는 별개의 문제이기도 합니다. 그 얘기는 <a href="https://blog.wonizz.com/2026/08/03/ai-agent-permission-recovery-cost/">AI 에이전트 권한 설계 — &#8216;되돌릴 수 있다&#8217;는 착각</a>에 따로 정리했습니다.

<strong>당장 해보실 수 있는 것 하나</strong>를 남기겠습니다. 다음 PR을 올리기 전에 이것만 확인해보세요.

<blockquote>&#8220;이 변경을 리뷰하는 사람은 몇 분을 써야 하는가?&#8221;

</blockquote>

만드는 데 10분, 리뷰에 40분이 든다면 그건 빨라진 게 아닙니다. <strong>비용을 옆으로 옮긴 것뿐입니다.</strong>

읽어주셔서 감사합니다. 팀에서 다르게 운영하고 계시다면 어떻게 나누셨는지 궁금합니다. 편하게 남겨주세요.

<h2>참고</h2>

<ul>
  <li><a href="https://www.cio.com/article/3541670/ai-%EC%BD%94%EB%94%A9-%EB%8F%84%EA%B5%AC-%EC%83%9D%EC%82%B0%EC%84%B1-%ED%9A%A8%EA%B3%BC-%EA%B1%B0%EC%9D%98-%EC%97%86%EB%8B%A4-%EB%B2%88%EC%95%84%EC%9B%83%EC%97%90%EB%8F%84-%EB%A7%88%EC%B0%AC.html" target="_blank" rel="noopener">“AI 코딩 도구, 생산성 효과 거의 없다” — Uplevel 보고서 (CIO Korea)</a></li>
  <li><a href="https://blog.gridge.co.kr/ai-coding-tool-comparison-2026/" target="_blank" rel="noopener">AI 코딩 툴 비교 2026 — 클로드코드·코덱스 실무 생산성 분석</a></li>
  <li><a href="https://we0.ai/ko/articles/ai-coding-tools-2026-productivity-compliance" target="_blank" rel="noopener">2026년의 AI 코딩 도구: 생산성만으로는 충분하지 않다</a></li>
</ul>
<h2 class="wp-block-heading">함께 보면 좋은 글</h2>
<ul class="wp-block-list"><li><a href="https://blog.wonizz.com/2026/10/09/ai-agent-build-claude/">[AI 코딩] AI 에이전트 만들기, 고쳤다는데 파일은 그대로였던 일</a></li><li><a href="https://blog.wonizz.com/2026/10/07/antigravity-how-to-use/">[AI 코딩] 안티그래비티 사용법, agy 로 버그 3개 찾기 13초</a></li><li><a href="https://blog.wonizz.com/2026/08/07/ai-coding-productivity-14-percent/">[DevOps] AI 도입 효과, 코딩 속도를 재면 답이 안 나옵니다</a></li><li><a href="https://blog.wonizz.com/2026/08/05/ai-coding-harness-what-to-remove/">[DevOps] AI 코딩 하네스, 6개월 굴리고 절반을 걷어냈습니다</a></li></ul>



<div class="jetpack_subscription_widget"><h2 class="widgettitle"></h2>
			<div class="wp-block-jetpack-subscriptions__container">
			<form action="#" method="post" accept-charset="utf-8" id="subscribe-blog-1"
				data-blog="152411368"
				data-post_access_level="everybody" >
									<div id="subscribe-text"><p>새 글이 올라오면 메일로 받아 보실 수 있습니다.</p>
</div>
										<p id="subscribe-email">
						<label id="jetpack-subscribe-label"
							class="screen-reader-text"
							for="subscribe-field-1">
							전자 우편 주소						</label>
						<input type="email" name="email" autocomplete="email" required="required"
																					value=""
							id="subscribe-field-1"
							placeholder="전자 우편 주소"
						/>
					</p>

					<p id="subscribe-submit"
											>
						<input type="hidden" name="action" value="subscribe"/>
						<input type="hidden" name="source" value="https://blog.wonizz.com/tag/ai%EC%BD%94%EB%94%A9/feed/"/>
						<input type="hidden" name="sub-type" value="widget"/>
						<input type="hidden" name="redirect_fragment" value="subscribe-blog-1"/>
						<input type="hidden" id="_wpnonce" name="_wpnonce" value="1170125b69" /><input type="hidden" name="_wp_http_referer" value="/tag/ai%EC%BD%94%EB%94%A9/feed/" />						<button type="submit"
															class="wp-block-button__link"
																						style="margin: 0; margin-left: 0px;"
														name="jetpack_subscriptions_widget"
						>
							메일로 받기						</button>
					</p>
							</form>
						</div>
			
</div><p>The post <a rel="nofollow" href="https://blog.wonizz.com/2026/08/04/ai-coding-tools-review-bottleneck/">[DevOps] AI 코딩 도구, 빨라진 건 맞는데 어디가 느려졌을까</a> appeared first on <a rel="nofollow" href="https://blog.wonizz.com">WONIZZ.LOG</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.wonizz.com/2026/08/04/ai-coding-tools-review-bottleneck/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2798</post-id>	</item>
	</channel>
</rss>
