<?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>자동화 &#8211; WONIZZ.LOG</title>
	<atom:link href="https://blog.wonizz.com/tag/%EC%9E%90%EB%8F%99%ED%99%94/feed/" rel="self" type="application/rss+xml" />
	<link>https://blog.wonizz.com</link>
	<description>AI 자동화를 직접 굴려 본 개발자의 실무 교훈</description>
	<lastBuildDate>Fri, 09 Oct 2026 01:33:15 +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>자동화 &#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 코딩] Aside 브라우저 자동화 제약 6가지</title>
		<link>https://blog.wonizz.com/2026/09/23/aside-browser-unattended-automation/</link>
					<comments>https://blog.wonizz.com/2026/09/23/aside-browser-unattended-automation/#respond</comments>
		
		<dc:creator><![CDATA[워니즈]]></dc:creator>
		<pubDate>Wed, 23 Sep 2026 00:43:30 +0000</pubDate>
				<category><![CDATA[AI & LLM]]></category>
		<category><![CDATA[AI 코딩]]></category>
		<category><![CDATA[Aside]]></category>
		<category><![CDATA[macOS]]></category>
		<category><![CDATA[브라우저 자동화]]></category>
		<category><![CDATA[자동화]]></category>
		<guid isPermaLink="false">https://blog.wonizz.com/?p=3817</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>Aside 브라우저 자동화를 사람 없이 스케줄러로 돌리며 실측한 제약 6가지입니다. 개발자 도구 포트, 배경 탭 판정, 요소 번호 수명, 파일 저장 위치까지 재현 명령과 함께 정리했습니다.</p>
<p>The post <a rel="nofollow" href="https://blog.wonizz.com/2026/09/23/aside-browser-unattended-automation/">[AI 코딩] Aside 브라우저 자동화 제약 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>
<p>안녕하세요? 정리하는 개발자 워니즈입니다.</p>
<p>브라우저 자동화 도구를 쓸 때, 화면을 보면서 시킬 때는 멀쩡했는데 스케줄러에 걸어두고 자리를 뜨면 이상하게 어긋난 적 있으신가요?</p>
<p>이 글은 Aside 브라우저 자동화를 한 달 가까이 사람 없이 돌리면서 실제로 걸린 지점 6가지를 정리한 것입니다. 사람이 앉아서 쓰는 사용기는 이미 여러 편이 있는데요, 사람이 없을 때만 드러나는 제약은 따로 있었습니다.</p>
<p><strong>【한 줄 요약】</strong> Aside 브라우저 자동화의 제약은 기능이 부족해서가 아니라 판정에 쓰는 신호가 사람 기준으로 맞춰져 있어서 생깁니다. 개발자 도구 포트가 닫혀 있고, 배경 탭이 스스로를 보이는 중이라고 답하며, 요소 번호가 명령 한 번을 넘기지 못하고, 상대 경로로 쓴 파일이 실행할 때마다 다른 폴더로 들어갑니다.</p>
<ul>
<li><strong>가장 위험한 것</strong>은 배경 탭이 화면에 보인다고 답하는 것입니다. 틀린 답을 오류 없이 자신 있게 줍니다.</li>
<li><strong>가장 오래 헤맨 것</strong>은 파일 저장 위치입니다. 상대 경로의 기준이 실행 폴더가 아니라 매번 새로 생기는 세션 폴더였습니다.</li>
<li><strong>가장 먼저 막히는 것</strong>은 개발자 도구 포트입니다. 기존 자동화 스크립트가 통째로 못 붙습니다.</li>
</ul>
<blockquote><p>
판정에 쓸 수 있는 신호는 탭 목록이 알려주는 활성 여부 하나뿐입니다. 웹 표준이 주는 신호 세 개는 배경 탭에서 전부 거짓을 말했습니다.
</p></blockquote>
<p>측정 환경은 macOS이고 CLI 버전 <code>1.26.916.1741</code>, 브라우저 앱 버전 <code>1.0.914.1</code> 기준입니다. 확인한 날짜는 2026년 9월 23일입니다. 여섯 가지 모두 재현 명령과 결과를 아래에 그대로 적었습니다.</p>
<p><strong>목차</strong></p>
<ol>
<li>Aside 브라우저 자동화는 다른 도구와 무엇이 다른가요</li>
<li>무엇을 자동화해 두었나요</li>
<li>사람이 볼 때와 없을 때가 왜 갈리나요</li>
<li>제약 1. 개발자 도구 포트가 열려 있지 않습니다</li>
<li>제약 2. 배경 탭이 보이는 중이라고 답합니다</li>
<li>제약 3. 앞으로 끌어와도 앞으로 오지 않습니다</li>
<li>제약 4. 요소 번호는 명령이 끝나면 죽습니다</li>
<li>제약 5. 파일을 썼는데 어디에도 없습니다</li>
<li>제약 6. 탭은 늘어나기만 합니다</li>
<li>그래서 어떻게 짜야 할까요</li>
<li>누구에게 맞고 누구에게는 굳이일까요</li>
</ol>
<p><img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/blog.wonizz.com/wp-content/uploads/2026/09/aside-browser-unattended-automation.png?w=1200&#038;ssl=1" alt="Aside 브라우저 자동화를 사람 없이 돌리는 구조를 그린 대표 이미지" /></p>
<h2>1. Aside 브라우저 자동화는 다른 도구와 무엇이 다른가요</h2>
<p>Aside는 Chromium을 바탕으로 만든 별도의 데스크톱 브라우저이고, 확장 프로그램이 아니라 앱 자체입니다. 자동화 관점에서 다른 도구와 갈리는 지점은 하나로 좁혀집니다. 로그인 세션이 앱 프로필에 그대로 남는다는 것인데요, 이게 왜 중요한지는 갈아타기 전에 겪은 일로 설명하는 편이 빠를 것 같습니다.</p>
<p>필자는 원래 크롬 프로필을 복제해서 원격 디버깅 포트로 붙이는 방식을 썼습니다. 그런데 이 방식은 프로필 복제본을 띄우는 구조라서 소셜 계정 세션이 오래 버티지 못했습니다. 실측으로는 오전에 게시가 성공한 뒤 같은 날 오전에 로그아웃됐고, 쿠키가 251개에서 12개로 줄어 있었습니다.</p>
<p>Aside로 옮기고 나서는 이 실패 방식이 사라졌습니다. 세션이 앱 프로필에 유지되기 때문에 복제라는 단계 자체가 없습니다. 도구를 바꾼 이유가 기능 비교가 아니라 이 한 가지였다는 점을 먼저 적어둡니다. <a href="https://blog.wonizz.com/2026/08/27/aside-browser-review/">Aside 브라우저를 처음 써본 기록</a>은 별도 글로 정리해 두었으니 설치와 요금이 궁금하시면 그쪽을 보시면 됩니다.</p>
<p>이 글은 그다음 이야기입니다. 도구를 골랐으니 이제 사람 없이 돌리는 단계인데요, 여기서부터 성격이 달라졌습니다.</p>
<h2>2. 무엇을 자동화해 두었나요</h2>
<p>제약 이야기를 하기 전에 무엇을 시키고 있는지부터 적는 편이 맞을 것 같습니다. 아래 네 가지가 지금 Aside 브라우저 자동화로 돌아가는 일들입니다. 전부 공개 API가 없거나, 있어도 로그인 세션이 있어야 쓸 수 있는 화면들입니다.</p>
<figure class="wp-block-table">
<table>
<thead>
<tr>
<th>하는 일</th>
<th>왜 브라우저가 필요한가</th>
<th>빈도</th>
</tr>
</thead>
<tbody>
<tr>
<td>소셜에 글 게시</td>
<td>공개 API가 사실상 없음</td>
<td>정기적으로</td>
</tr>
<tr>
<td>받은 답글에 회신</td>
<td>같음, 화면 조작이 유일한 경로</td>
<td>답글이 올 때마다</td>
</tr>
<tr>
<td>게시 결과 실재 확인</td>
<td>게시 성공 응답과 실제 노출이 다를 수 있음</td>
<td>게시 직후 매번</td>
</tr>
<tr>
<td>긴 문서 본문 수집</td>
<td>화면에만 그려지고 내려받기가 없는 뷰어</td>
<td>필요할 때</td>
</tr>
</tbody>
</table>
</figure>
<p>세 번째를 따로 둔 이유가 있습니다. 자동화가 게시를 했다고 보고했는데 실제로는 안 올라간 적이 있었고, 반대로 실패했다고 보고했는데 올라가 있던 적도 있었습니다. 후자가 훨씬 위험한데요, 실패로 읽고 다시 누르면 같은 글이 두 번 올라가기 때문입니다. 지금은 스크립트가 뭐라고 보고하든 믿지 않고, 게시물 주소를 직접 열어 본문에서 그 문장이 몇 번 나오는지 세는 단계를 따로 두고 있습니다.</p>
<p>네 번째는 한 번 크게 데인 경우입니다. 화면에 글자를 그려주지만 내려받기가 없는 뷰어에서 수백 쪽을 읽어야 했는데요, 키를 눌러 넘기면서 화면의 글자를 모으는 방식으로 처리했습니다. 이때 걸린 것이 아래 제약 5입니다.</p>
<p>네 가지 모두 사람이 옆에서 보고 있으면 문제가 없습니다. 자리를 비우는 순간부터 성격이 달라집니다. 참고로 코딩 도구의 무료 한도를 확인하는 쪽은 브라우저가 필요 없어서, <a href="https://blog.wonizz.com/2026/09/20/cursor-free-limit-check/">커서 AI 무료 한도를 정리한 글</a>처럼 문서와 계정 화면만으로 끝나는 주제도 있습니다.</p>
<h2>3. 사람이 볼 때와 없을 때가 왜 갈리나요</h2>
<p>브라우저 자동화 글이 대부분 사람이 앉아 있는 상황을 전제합니다. 화면이 떠 있고, 원하는 탭이 앞에 있고, 뭔가 어긋나면 눈으로 보고 바로잡습니다. 이 전제가 깔려 있으면 도구가 내주는 신호를 굳이 의심할 일이 없습니다.</p>
<p>무인 실행은 그 전제를 전부 뺍니다. 실행되는 시각에 필자가 컴퓨터를 보고 있을 수도 있고 아예 없을 수도 있습니다. 심지어 필자가 같은 브라우저로 다른 일을 하고 있을 수도 있습니다. 이 세 상황에서 같은 코드가 다르게 동작하면 자동화는 신뢰할 수 없게 됩니다.</p>
<p>아래 여섯 가지는 전부 그 차이에서 나왔습니다. Aside 브라우저 자동화가 기능이 안 되는 것이 아니라, 판정에 쓰는 신호가 사람이 보고 있다는 전제 위에 설계돼 있어서 사람이 없으면 엉뚱한 답을 주는 쪽에 가깝습니다.</p>
<figure class="wp-block-table">
<table>
<thead>
<tr>
<th>구분</th>
<th>사람이 볼 때</th>
<th>사람이 없을 때</th>
</tr>
</thead>
<tbody>
<tr>
<td>탭 상태</td>
<td>눈으로 확인</td>
<td>코드가 묻는데 답이 틀림</td>
</tr>
<tr>
<td>요소 지정</td>
<td>스냅샷 찍고 바로 클릭</td>
<td>명령이 나뉘며 번호가 죽음</td>
</tr>
<tr>
<td>파일 저장</td>
<td>저장 위치를 눈으로 확인</td>
<td>실행마다 폴더가 달라짐</td>
</tr>
<tr>
<td>오류 대응</td>
<td>보고 고침</td>
<td>그 회차가 통째로 사라짐</td>
</tr>
</tbody>
</table>
</figure>
<h2>4. 제약 1. 개발자 도구 포트가 열려 있지 않습니다</h2>
<p>가장 먼저 막힌 곳입니다. 기존에 쓰던 자동화 스크립트가 전부 원격 디버깅 포트에 붙는 방식이었는데요, Aside는 그 포트를 열어주지 않습니다.</p>
<p><strong>직접 확인 1.</strong> 흔히 쓰는 포트 두 개를 확인했습니다.</p>
<pre class="wp-block-code"><code>nc -z 127.0.0.1 9222 ; nc -z 127.0.0.1 9333</code></pre>
<p>결과는 둘 다 닫힘이었습니다. 같은 시각에 브라우저 프로세스는 정상적으로 떠 있었고 아래에서 다룰 명령들도 전부 동작했습니다. 포트만 없는 것입니다.</p>
<p>Aside가 자체 데몬으로 움직이는 구조라서 그런데요, 남는 선택지는 기존 스크립트를 통째로 포기하거나 입력 전송 계층만 갈아끼우거나 둘로 갈렸는데요, 필자는 후자를 골라서 게시 성공 판정이나 중복 방지 같은 검증 로직은 그대로 두고 실제로 키를 누르고 클릭하는 부분만 Aside 명령으로 바꿨습니다.</p>
<p>같은 로직을 두 벌 만들면 이미 막아둔 사고를 다시 겪습니다. 필자는 예전에 그렇게 하다가 이미 고쳐둔 문제를 재발시킨 적이 있어서, 이번에는 층을 나누는 쪽을 택했습니다. 바꾼 것은 손끝이고 판단은 그대로 둔 셈입니다.</p>
<h2>5. 제약 2. 배경 탭이 보이는 중이라고 답합니다</h2>
<p>이게 여섯 개 중 가장 위험합니다. 틀린 답을 자신 있게 주기 때문인데요, 코드가 그 답을 믿고 다음 단계로 넘어갑니다.</p>
<p>웹 표준에는 지금 이 페이지가 화면에 보이는지 확인하는 신호가 있습니다. <code>document.visibilityState</code>와 <code>document.hidden</code>, 그리고 <code>document.hasFocus()</code>입니다. 보통은 배경 탭이면 숨김으로 나옵니다.</p>
<p><strong>직접 확인 2.</strong> 명백히 배경에 있는 탭에 붙어서 세 신호를 한 번에 물었습니다. 대상 탭은 탭 목록에서 활성 여부가 거짓으로 나온 탭입니다.</p>
<figure class="wp-block-table">
<table>
<thead>
<tr>
<th>신호</th>
<th>기대값</th>
<th>실측값</th>
</tr>
</thead>
<tbody>
<tr>
<td>탭 목록의 활성 여부</td>
<td>거짓</td>
<td>거짓</td>
</tr>
<tr>
<td><code>document.visibilityState</code></td>
<td>hidden</td>
<td><strong>visible</strong></td>
</tr>
<tr>
<td><code>document.hidden</code></td>
<td>참</td>
<td><strong>거짓</strong></td>
</tr>
<tr>
<td><code>document.hasFocus()</code></td>
<td>거짓</td>
<td><strong>참</strong></td>
</tr>
</tbody>
</table>
</figure>
<p>셋 다 앞에 있다고 답했습니다. 눈으로는 전혀 다른 탭이 화면을 차지하고 있는데요, 코드가 물으면 자기가 보이는 중이라고 합니다.</p>
<p>결국 전면 여부를 판정할 때 쓸 수 있는 신호는 탭 목록이 알려주는 활성 여부 하나뿐이고, 웹 표준 쪽 신호 세 개는 Aside 브라우저 자동화에서 판정 근거로 쓰면 안 된다는 결론이 됩니다.</p>
<p>무인 실행에서 이게 왜 문제냐면, 되돌릴 수 없는 동작 앞에 두는 안전장치가 보통 이런 신호라서 그렇습니다. 지금 화면이 맞는지 확인하고 게시 버튼을 누르는 구조였다면, 확인은 통과하고 엉뚱한 탭에서 눌릴 수 있습니다.</p>
<h2>6. 제약 3. 앞으로 끌어와도 앞으로 오지 않습니다</h2>
<p>그럼 원하는 탭을 앞으로 끌어오면 되지 않을까 싶은데요, 그것도 안 됩니다.</p>
<p><strong>직접 확인 3.</strong> 배경 탭에 붙어서 앞으로 가져오는 명령을 실행하고, 실행 전후로 탭 목록을 다시 읽었습니다.</p>
<figure class="wp-block-table">
<table>
<thead>
<tr>
<th>항목</th>
<th>결과</th>
</tr>
</thead>
<tbody>
<tr>
<td>명령 반환값</td>
<td>정상 종료, 반환값 없음</td>
</tr>
<tr>
<td>오류 발생</td>
<td>없음</td>
</tr>
<tr>
<td>대상 탭 활성 여부 (전)</td>
<td>거짓</td>
</tr>
<tr>
<td>대상 탭 활성 여부 (후)</td>
<td><strong>거짓</strong></td>
</tr>
<tr>
<td>화면의 활성 탭 목록</td>
<td>변화 없음</td>
</tr>
</tbody>
</table>
</figure>
<p>오류를 내지 않고 조용히 성공한 척합니다. 이게 제약 2와 겹치면 더 고약해집니다. 앞으로 끌어왔다고 믿고, 앞에 있냐고 물으니 그렇다고 답하니까, 코드 입장에서는 모든 조건이 충족된 상태가 됩니다.</p>
<p>필자가 정리한 결론은 이렇습니다. 전면을 확보할 수 있는 시점은 탭을 처음 만드는 순간 하나뿐이고, 그 뒤에 사용자가 다른 탭으로 옮기면 프로그램으로는 되돌릴 방법이 없다는 것인데요, 그 뒤로는 작업용 탭을 하나만 만들어 계속 재사용하고, 되돌릴 수 없는 동작 앞에서는 활성 여부를 바꾸려 하지 말고 기록만 남기고 진행하도록 바꿨습니다.</p>
<p>무인 실행일 때는 아예 전면 확보를 시도하지 않게 했습니다. 자동 실행이 사용자 화면을 가로채면 그게 더 큰 방해가 되기 때문입니다. 자동 실행 여부를 환경 변수로 넘겨두고, 그 값이 있으면 전면 확보 단계를 통째로 건너뜁니다.</p>
<h2>7. 제약 4. 요소 번호는 명령이 끝나면 죽습니다</h2>
<p>Aside의 편한 점 중 하나가 화면 요소마다 번호를 붙여준다는 것입니다. 복잡한 선택자를 쓰지 않고 번호로 지정할 수 있습니다. 그런데 이 번호에는 수명이 있습니다.</p>
<p><strong>직접 확인 4.</strong> 같은 페이지를 열고 같은 번호를 두 번 썼습니다. 한 번은 번호를 딴 명령 안에서, 한 번은 명령을 새로 띄워서입니다.</p>
<figure class="wp-block-table">
<table>
<thead>
<tr>
<th>상황</th>
<th>결과</th>
</tr>
</thead>
<tbody>
<tr>
<td>같은 명령 안에서 사용</td>
<td>성공, 요소 글자를 정상으로 읽음</td>
</tr>
<tr>
<td>명령을 새로 띄워 사용</td>
<td><strong>실패</strong></td>
</tr>
</tbody>
</table>
</figure>
<p>실패했을 때 나온 문구를 그대로 옮기면, 요소가 제거됐거나 페이지가 바뀌었으니 스냅샷을 다시 찍으라는 안내가 나옵니다. 그런데 필자가 확인한 상황에서 페이지는 전혀 바뀌지 않았고 요소도 그 자리에 그대로 있었는데요, 달라진 것은 명령을 실행하는 프로세스 하나뿐이었습니다.</p>
<p>메시지를 그대로 믿으면 페이지 쪽을 붙잡고 시간을 씁니다. 필자도 처음에는 사이트가 화면을 다시 그리는 줄 알고 그쪽을 뒤졌습니다. 원인이 화면이 아니라 실행 단위에 있다는 것을 알기까지 한참이 걸렸습니다.</p>
<p>정리하면 이렇습니다. 여러 번에 걸쳐 진행되는 화면 조작은 번호로 잡으면 안 되고 선택자로 잡아야 합니다. 번호는 한 명령 안에서 스냅샷을 찍고 바로 쓰는 용도로만 씁니다.</p>
<p>여기에 하나 더 있습니다. 화면에 떠 있는 요소가 예상한 위치에 없을 수 있습니다. 어떤 화면은 대화상자를 열면 그 안이 아니라 문서 바깥쪽에 내용을 그립니다. 대화상자 안만 뒤지면 없다고 나오는데 실제로는 떠 있는 상태였습니다. 이 경우도 번호가 아니라 선택자로 문서 전체를 뒤져야 잡힙니다.</p>
<p>비슷한 계열로 화면 밖 내용이 아예 없는 경우도 있는데요, 목록을 조금씩 채워 넣는 화면은 화면 밖 항목을 문서에 두지 않기 때문에 한 번 읽고 없다고 판정하면 이미 올라가 있는 글도 없는 것으로 나옵니다. 판정 전에 스크롤을 넣는 동작을 따로 만든 이유가 이것입니다.</p>
<h2>8. 제약 5. 파일을 썼는데 어디에도 없습니다</h2>
<p>가장 오래 헤맨 것이 이겁니다. 결론부터 말하면 상대 경로의 기준점이 생각과 다릅니다.</p>
<p><strong>직접 확인 5.</strong> 경로 세 개에 같은 내용을 쓰려고 했습니다.</p>
<figure class="wp-block-table">
<table>
<thead>
<tr>
<th>경로</th>
<th>결과</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>/tmp</code> 아래 절대 경로</td>
<td><strong>거부</strong>, 프로젝트와 세션 범위를 벗어난다는 안내</td>
</tr>
<tr>
<td><code>./artifacts</code> 아래</td>
<td>실패, 폴더가 없음</td>
</tr>
<tr>
<td><code>./</code> 바로 아래</td>
<td>성공</td>
</tr>
</tbody>
</table>
</figure>
<p>성공한 파일이 어디에 있는지가 핵심입니다. 명령을 실행한 폴더가 아니었습니다. 홈 아래 Aside 전용 폴더의 세션 폴더 안에 들어가 있었습니다. 그리고 그 세션 폴더는 명령을 실행할 때마다 새로 만들어집니다.</p>
<p>필자의 컴퓨터에서 오늘 하루치를 세어봤더니 세션 폴더가 342개 있었고, 그중 323개가 빈 폴더였습니다. 명령 한 번에 폴더 하나가 생기는 구조인 셈인데요, 상대 경로로 파일을 쓰면 그중 어느 하나에 들어가고 다음 명령은 다른 폴더를 봅니다. 방금 쓴 파일이 다음 단계에서 사라진 것처럼 보이는 이유가 여기에 있습니다.</p>
<p>필자는 이걸 모른 채 긴 작업을 한 번에 돌렸다가 결과물을 전부 잃은 적이 있습니다. 수십 쪽 분량을 모아 파일로 저장하는 코드였는데, 저장은 성공했다고 나오고 파일은 찾을 수 없었습니다. 다시 처음부터 넘기는 데 시간이 그대로 두 배로 들었습니다.</p>
<p>지금은 파일로 남기지 않고 표준 출력으로 찍어서 셸 쪽에서 받는 방식으로 바꿨는데요, 여러 명령에 걸쳐야 하는 데이터는 브라우저 안이 아니라 밖에서 들고 있는 편이 훨씬 안전하더군요.</p>
<h2>9. 제약 6. 탭은 늘어나기만 합니다</h2>
<p>주소를 지정해 브라우저를 여는 방식은 항상 새 탭을 만듭니다. 같은 주소여도 재사용하지 않습니다. 그리고 그렇게 만들어진 탭은 프로그램으로 닫히지 않았습니다.</p>
<p><strong>직접 확인 6.</strong> 현재 열려 있는 탭을 세어봤습니다.</p>
<figure class="wp-block-table">
<table>
<thead>
<tr>
<th>항목</th>
<th>값</th>
</tr>
</thead>
<tbody>
<tr>
<td>전체 탭 수</td>
<td>25</td>
</tr>
<tr>
<td>활성으로 잡히는 탭</td>
<td>2</td>
</tr>
<tr>
<td>같은 주소가 중복으로 열린 건</td>
<td>1건, 탭 2개</td>
</tr>
</tbody>
</table>
</figure>
<p>반복해서 도는 자동화가 회차마다 탭을 하나씩 남기면 며칠 만에 눈에 띄게 쌓이는데요, 작업용 탭을 하나 만들어 식별자를 파일에 적어두고 다음 회차에서는 그 탭이 살아 있으면 새로 만들지 않고 그 안에서 주소만 바꾸도록 했습니다.</p>
<p>부수적으로 알게 된 것도 하나 있습니다. 사용자가 브라우저를 쓰는 중이면 활성 탭을 자동으로 잡는 방식이 엉뚱한 화면을 집는다는 것입니다. 자동화는 활성 탭을 잡지 말고 식별자로 특정 탭에 붙어야 하는데요, 다행히 화면 저장은 배경 탭에서도 정상으로 찍혔습니다.</p>
<h2>10. 그래서 어떻게 짜야 할까요</h2>
<p>여섯 가지를 겪고 나서 필자가 지키는 규칙은 네 줄로 줄었습니다. Aside 브라우저 자동화를 무인으로 돌릴 생각이라면 이 네 가지만 먼저 반영해도 대부분 막힙니다.</p>
<p>첫째, 전면 여부는 탭 목록의 활성 값만 믿습니다. 웹 표준 신호 세 개는 판정에서 뺍니다.</p>
<p>둘째, 여러 명령에 걸치는 조작은 번호가 아니라 선택자로 잡습니다. 번호는 한 명령 안에서만 씁니다.</p>
<p>셋째, 명령 사이로 넘겨야 하는 데이터는 브라우저 밖에서 들고 있습니다. 파일 저장에 의존하지 않습니다.</p>
<p>넷째, 탭은 하나만 만들어 재사용하고 식별자를 남깁니다. 활성 탭을 자동으로 잡지 않습니다.</p>
<p>자동 실행과 사람이 쓰는 세션이 같은 브라우저를 동시에 건드리면 중복 실행 사고가 납니다. 사람과 기계가 같은 창을 공유한다는 점이 이 도구의 장점이자 가장 조심할 부분인 것 같습니다.</p>
<h2>11. 누구에게 맞고 누구에게는 굳이일까요</h2>
<p>정리해 보면 대상이 꽤 분명하게 갈립니다.</p>
<figure class="wp-block-table">
<table>
<thead>
<tr>
<th>상황</th>
<th>판단</th>
</tr>
</thead>
<tbody>
<tr>
<td>로그인이 필요한 화면을 사람이 보며 조작</td>
<td>잘 맞습니다</td>
</tr>
<tr>
<td>공개 API가 없는 서비스를 다뤄야 함</td>
<td>잘 맞습니다</td>
</tr>
<tr>
<td>스케줄러로 무인 실행</td>
<td>가능하지만 이 글의 여섯 가지를 먼저 반영해야 합니다</td>
</tr>
<tr>
<td>로그인이 필요 없는 단순 페이지 수집</td>
<td>굳이 필요 없습니다</td>
</tr>
<tr>
<td>화면 없이 서버에서 돌려야 함</td>
<td>맞지 않습니다</td>
</tr>
</tbody>
</table>
</figure>
<p>마지막 줄이 중요한 것 같습니다. Aside 브라우저 자동화는 사람 컴퓨터에서 사람 계정으로 도는 것이 전제인데요, 무인으로 돌린다는 말이 서버에서 돌린다는 뜻은 아니고, 사람이 잠깐 자리를 비운 컴퓨터에서 돈다는 뜻에 가깝습니다. 이 차이를 헷갈리면 설계가 처음부터 어긋납니다.</p>
<p>필자는 개인 블로그 운영에 이걸 붙여서 쓰고 있는데요, 같은 계열로 명령줄 도구의 사용량을 확인하는 방법은 <a href="https://blog.wonizz.com/2026/09/18/claude-code-usage-check/">클로드 코드 사용량을 확인하는 세 가지 방법</a>에 정리해 두었습니다. 설치와 요금은 <a href="https://aside.com/download" target="_blank" rel="noopener">공식 사이트</a>에서 확인하시면 됩니다.</p>
<p>확인하지 못한 것도 적어둡니다. 이 글의 여섯 가지는 전부 macOS에서 잰 값이고, 다른 운영체제에서 같은지는 확인하지 못했습니다. 버전이 올라가면 달라질 수 있는 항목들이라 위에 적어둔 버전과 날짜를 같이 봐주시면 좋겠습니다. Aside 브라우저 자동화를 이미 쓰고 계신 분이라면 여섯 가지 중 몇 개나 겪으셨는지 궁금합니다.</p>
<p>The post <a rel="nofollow" href="https://blog.wonizz.com/2026/09/23/aside-browser-unattended-automation/">[AI 코딩] Aside 브라우저 자동화 제약 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/09/23/aside-browser-unattended-automation/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">3817</post-id>	</item>
		<item>
		<title>[AI Now] Aside 브라우저 후기, 함정 6가지</title>
		<link>https://blog.wonizz.com/2026/08/27/aside-browser-review/</link>
					<comments>https://blog.wonizz.com/2026/08/27/aside-browser-review/#respond</comments>
		
		<dc:creator><![CDATA[워니즈]]></dc:creator>
		<pubDate>Thu, 27 Aug 2026 00:22:09 +0000</pubDate>
				<category><![CDATA[AI Now]]></category>
		<category><![CDATA[AI도구]]></category>
		<category><![CDATA[Aside]]></category>
		<category><![CDATA[macOS]]></category>
		<category><![CDATA[브라우저]]></category>
		<category><![CDATA[자동화]]></category>
		<guid isPermaLink="false">https://blog.wonizz.com/2026/08/27/aside-browser-review/</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>Aside 브라우저를 macOS에 설치해 개인 블로그 화면을 직접 조작해 봤습니다. 로그인 유지, 화면 요소 번호 매기기, 요금제, Playwright와의 차이, 그리고 실제로 막혔던 6가지 함정까지 화면 그대로 정리했습니다.</p>
<p>The post <a rel="nofollow" href="https://blog.wonizz.com/2026/08/27/aside-browser-review/">[AI Now] Aside 브라우저 후기, 함정 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>
<p>로그인이 걸려 있는 화면을 AI에게 맡기려면, 매번 로그인부터 다시 시켜야 할까요?</p>
<p>이 글은 Aside 브라우저를 macOS에 설치해서 제 개인 블로그 화면을 실제로 열고 눌러 본 기록입니다. 공식 문서에 적힌 설명과 제가 화면에서 확인한 것을 나눠서 적었고, 중간에 막혔던 지점도 그대로 남겼습니다.</p>
<blockquote><p><strong>한 줄 요약</strong> Aside 브라우저는 Chromium 기반의 macOS 전용 데스크톱 브라우저입니다. 평소 쓰던 로그인 세션을 그대로 물고 뜨기 때문에 로그인 뒤 화면을 바로 다룰 수 있고, 화면 요소마다 번호가 붙어서 CSS 선택자 없이도 &#8220;몇 번을 눌러&#8221;라고 지시할 수 있습니다. 조작 자체는 내장 AI 모델을 쓰지 않아 무료로 시작할 수 있습니다.</p>
</blockquote>
<ul>
<li>설치는 명령 한 줄이고 관리자 권한이 필요 없습니다</li>
<li>브라우저 앱과 CLI는 별개라서 둘 다 받아야 합니다</li>
<li>macOS 전용이고 자료가 적어서, 막히면 공식 문서 말고는 참고할 데가 거의 없습니다</li>
</ul>
<p>측정 환경은 macOS이고, CLI 버전 <code>1.26.810.1915</code>, 데몬 버전 <code>1.26.826.1414</code> 기준입니다. 확인한 날짜는 2026년 8월 27일입니다.</p>
<h2>1. Aside 브라우저는 어떤 도구일까요</h2>
<p>Aside 브라우저는 Chromium을 바탕으로 만든 독립 데스크톱 브라우저입니다. 크롬에 끼워 넣는 확장 프로그램이 아니라 별도로 설치하는 앱이고, 지금은 macOS만 지원합니다.</p>
<p>만든 곳은 Aside Computer Inc.이고, 공식 사이트에 Y Combinator 지원을 받았다는 배지가 붙어 있습니다. 사이트 첫 화면에 걸린 문장은 &#8220;The most intelligent AI assistant, but it&#8217;s a browser.&#8221;입니다. AI 비서를 브라우저 안에 넣은 것이 아니라, 브라우저 자체가 비서라는 쪽에 방점이 찍혀 있습니다.<br />
<img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/blog.wonizz.com/wp-content/uploads/2026/08/04-aside-home-scaled.png?w=1200&#038;ssl=1" alt="Aside 브라우저 공식 사이트 첫 화면. AI 비서가 곧 브라우저라는 헤드라인과 Y Combinator 배지가 보입니다" /><br />
여기서 처음 헷갈리는 지점이 하나 있습니다. <strong>브라우저 본체와 명령줄 도구(CLI)가 서로 다른 설치물</strong>이라는 점입니다. 사이트에서 받는 것은 브라우저 앱이고, 터미널에서 쓰는 <code>aside</code> 명령은 따로 설치해야 합니다. 저는 CLI만 깔아 놓고 브라우저가 안 뜬다고 한참을 헤맸습니다.</p>
<p>자체 패스워드 매니저도 들어 있습니다. 공식 문서 설명으로는 저장된 자격증명이 자동입력 경로로만 들어가고 AI 쪽에는 노출되지 않는다고 합니다. 다만 이 부분은 문서를 읽은 것일 뿐, 제가 직접 검증하지는 못했습니다.</p>
<h2>2. Aside 브라우저로 무엇을 할 수 있나요</h2>
<p>공식 개발자 문서를 보면 쓰는 방법이 세 갈래로 나뉩니다. 목적이 다르니 골라 쓰면 됩니다.</p>
<figure class="wp-block-table">
<table>
<thead>
<tr>
<th>방식</th>
<th>명령</th>
<th>어떤 때 쓰나</th>
</tr>
</thead>
<tbody>
<tr>
<td>CLI</td>
<td><code>aside "자연어 지시"</code></td>
<td>할 일을 통째로 말로 맡길 때</td>
</tr>
<tr>
<td>MCP</td>
<td><code>aside mcp</code></td>
<td>코딩 도구가 브라우저를 직접 쓰게 할 때</td>
</tr>
<tr>
<td>REPL</td>
<td><code>aside repl "코드"</code></td>
<td>정확한 조작이 필요할 때</td>
</tr>
</tbody>
</table>
</figure>
<p>CLI는 가장 편한 대신 결과를 예측하기 어렵고, REPL은 손이 더 가는 대신 무엇이 실행될지가 분명합니다. REPL의 API는 Playwright와 생김새가 비슷해서, 그쪽을 만져 본 적이 있다면 눈에 익습니다. 다만 비슷하다는 말과 같다는 말은 다릅니다. 이 차이가 나중에 저를 한 번 붙잡았습니다.</p>
<p>MCP 방식은 코딩 도구 쪽에서 브라우저를 도구로 등록해 쓰는 경로입니다. 코드를 쓰다가 화면 확인이 필요할 때 도구를 갈아타지 않아도 된다는 것이 장점입니다. 도구 사이를 잇는 규약 자체가 궁금하다면 <a href="https://blog.wonizz.com/2026/08/25/mcp-roadmap-5-areas-long-running-tasks/">MCP 로드맵의 장기 실행 작업 정리</a>를 같이 보셔도 좋습니다.</p>
<p>셋 중 무엇을 고를지는 결과를 얼마나 정확히 통제하고 싶은지로 갈립니다. 무엇을 눌러야 할지까지 이미 정해져 있다면 REPL이 맞고, 화면을 보고 판단하는 단계까지 맡기고 싶다면 CLI가 맞습니다. 저는 화면이 어떻게 생겼는지부터 확인하고 싶었기 때문에 REPL로 시작했습니다.<br />
<img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/blog.wonizz.com/wp-content/uploads/2026/08/05-aside-docs-scaled.png?w=1200&#038;ssl=1" alt="Aside 브라우저 개발자 문서 화면. CLI와 MCP, REPL 세 가지 사용 방식이 나열돼 있습니다" /><br />
이 글에서 제가 쓴 것은 REPL 하나뿐입니다. 내장 AI 모델이 얼마나 똑똑한지는 다루지 않았습니다. 모델 성능은 따로 확인해 봐야 할 주제라서, 여기서는 &#8220;브라우저를 코드로 조작하는 도구&#8221;로만 놓고 봤습니다.</p>
<h2>3. 설치부터 첫 명령까지 시작하는 법</h2>
<p>CLI 설치는 명령 한 줄입니다.</p>
<pre class="wp-block-code"><code>curl -fsSL https://releases.aside.com/install.sh | bash</code></pre>
<p>설치가 끝나면 <code>~/.local/bin/aside</code> 에 심링크가 생깁니다. 관리자 권한을 묻지 않으니 권한 문제로 막힐 일이 적습니다. 이 경로가 <code>PATH</code> 에 없다면 그 부분만 잡아 주면 됩니다.</p>
<p>브라우저 앱은 <a href="https://aside.com/" target="_blank" rel="noopener">공식 사이트</a>에서 따로 받습니다. 앞서 적었듯 CLI만 깔면 명령이 붙을 대상이 없습니다.</p>
<p>둘 다 준비됐으면 첫 명령을 넣어 봅니다. 페이지 하나를 여는 것으로 시작하면 충분합니다.</p>
<pre class="wp-block-code"><code>aside repl "const p = await openTab('https://내블로그주소/')"</code></pre>
<p>여기까지가 시작 지점입니다. 그다음부터는 연 페이지를 어떻게 읽고 어떻게 누를지의 문제인데, 이 부분이 Aside 브라우저에서 가장 다르게 느껴진 대목이었습니다.</p>
<p>코딩 도구 쪽에서 붙여 쓰고 싶다면 아래 명령이 진입점입니다.</p>
<pre class="wp-block-code"><code>aside mcp</code></pre>
<p>이 경로로 붙이면 코딩 도구가 브라우저를 자기 도구 목록에 놓고 씁니다. 다만 이 글에서 제가 확인한 것은 REPL 쪽이라, MCP 연결이 실제로 어떤 느낌인지는 따로 적지 않겠습니다.</p>
<h2>4. 직접 확인 1: 로그인 상태가 그대로 유지됐습니다</h2>
<p>첫 명령으로 제 블로그를 열었더니, 화면 위쪽에 검은 관리자 도구 표시줄이 그대로 떠 있었습니다. 로그인 절차를 한 번도 거치지 않았는데 관리자 메뉴가 보이고, 오른쪽에는 로그인된 계정 표시까지 있었습니다.<br />
<img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/blog.wonizz.com/wp-content/uploads/2026/08/01-logged-in-scaled.png?w=1200&#038;ssl=1" alt="Aside 브라우저로 연 개인 블로그 화면. 상단 검은 막대에 관리자 메뉴와 로그인 계정 표시가 그대로 보입니다" /><br />
별것 아닌 화면 같지만, 자동화 브라우저를 만져 본 적이 있다면 이게 왜 눈에 띄는지 바로 아실 겁니다. 자동화용 브라우저는 보통 아무것도 없는 빈 프로필로 뜹니다. 그래서 로그인 뒤에 있는 화면을 다루려면 매번 로그인부터 다시 해야 하고, 2단계 인증이라도 걸려 있으면 그 지점에서 작업이 통째로 멈춥니다.</p>
<p>제가 자동화하고 싶은 화면은 대부분 로그인 뒤에 있습니다. 글 목록, 통계 화면, 설정 화면이 전부 그렇습니다. 로그인을 어떻게 넘길지가 매번 첫 번째 숙제였는데, Aside 브라우저는 그 숙제를 아예 없앴습니다. 평소 쓰던 브라우저가 곧 자동화 대상이니 로그인 상태도 그대로입니다.</p>
<p>이 차이는 편의의 문제만은 아닙니다. 로그인을 자동화하려면 아이디와 암호를 어딘가에 적어 두게 되고, 그 파일을 어떻게 보관할지가 새로운 숙제로 따라붙습니다. 세션이 만료되면 스크립트가 조용히 실패하기도 합니다. 로그인 단계를 아예 건드리지 않으면 그 숙제들이 통째로 사라집니다. 제가 이 도구를 계속 써 보기로 한 이유의 절반은 여기에 있습니다.</p>
<p>뒤집어 말하면, 로그인된 계정으로 무엇이든 할 수 있는 상태라는 뜻이기도 합니다. 결제 화면이나 계정 설정처럼 되돌리기 어려운 화면에서는 지시를 좁게 주는 편이 낫습니다. AI에게 일을 맡길 때 어디까지 열어 줄지의 문제는 <a href="https://blog.wonizz.com/2026/08/11/ai-agent-delegation-cost/">AI에게 일을 맡길 때 드는 비용</a>에서 따로 정리한 적이 있습니다.</p>
<h2>5. 직접 확인 2: 화면 요소마다 번호가 붙습니다</h2>
<p>두 번째로 확인한 것은 페이지를 읽는 방식입니다. <code>snapshot(page, { interactive: true })</code> 를 부르면 클릭할 수 있는 요소마다 <code>e1</code>, <code>e2</code> 같은 참조 번호가 붙은 목록이 돌아옵니다.</p>
<p>여기서 한 걸음 더 가면 재미있어집니다. <code>annotatedScreenshot(page)</code> 를 부르면 그 번호가 화면 위에 빨간 박스로 그려진 이미지가 나옵니다. 목록과 그림이 같은 번호를 공유하는 셈입니다.<br />
<img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/blog.wonizz.com/wp-content/uploads/2026/08/02-annotated-scaled.png?w=1200&#038;ssl=1" alt="Aside 브라우저의 주석 스크린샷. 메뉴와 제목, 본문, 광고 영역까지 요소마다 빨간 번호 박스가 붙어 있습니다" /><br />
메뉴와 제목은 물론이고 본문 링크와 광고 영역까지 번호가 매겨졌습니다. 이게 왜 편하냐면, <strong>CSS 선택자를 몰라도 조작을 지시할 수 있기 때문</strong>입니다. 클래스 이름이 뭔지 개발자 도구를 열어 볼 필요 없이 &#8220;23번을 눌러&#8221;라고 말하면 됩니다.</p>
<p>사람이 화면을 읽는 방식과 도구가 화면을 읽는 방식이 여기서 겹칩니다. 저는 지금까지 개발자 도구를 열어 요소를 찍고 클래스 이름을 복사해 오는 과정을 당연하게 여겼는데, 그 과정이 통째로 빠지니 작업 순서가 단순해졌습니다. 화면을 한 장 받고, 누를 번호를 고르고, 그 번호를 넘기면 끝입니다.</p>
<p>주의할 점이 하나 있습니다. 번호는 그 시점의 화면에만 유효합니다. 페이지가 바뀌면 번호가 새로 매겨지므로, 조작을 한 번 할 때마다 목록을 다시 받아야 합니다. 이걸 잊으면 엉뚱한 자리를 누르게 됩니다. 저는 이 규칙을 아래 함정 목록의 다섯째 항목과 묶어서 기억하고 있습니다. 화면도 세션도 매번 새로 시작한다고 놓고 쓰면 헷갈릴 일이 줄어듭니다.</p>
<h3>번호로 눌러 페이지를 옮겼습니다</h3>
<p>목록에서 &#8220;AI &amp; LLM&#8221; 메뉴가 <code>e23</code> 이었습니다. 그 번호를 그대로 눌러 봤습니다.</p>
<pre class="wp-block-code"><code>await p.locator('e23').click();
console.log(p.url());</code></pre>
<p>주소가 <code>https://blog.wonizz.com/</code> 에서 <code>https://blog.wonizz.com/category/ai-llm/</code> 로 바뀌었고, 페이지 제목도 <code>AI & LLM Archives - WONIZZ.LOG</code> 로 따라 바뀌었습니다. 선택자를 한 글자도 쓰지 않고 화면을 옮긴 것입니다.<br />
<img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/blog.wonizz.com/wp-content/uploads/2026/08/03-after-click-scaled.png?w=1200&#038;ssl=1" alt="클릭 후 이동한 카테고리 페이지 화면. 주소와 제목이 모두 카테고리 쪽으로 바뀌었습니다" /><br />
이동한 뒤에 <code>snapshot()</code> 을 다시 부르면 <code>diff</code> 로 무엇이 달라졌는지만 볼 수도 있습니다. 화면 전체를 다시 읽지 않아도 되니 그만큼 가볍습니다.</p>
<h2>6. 요금은 얼마이고 무료로 어디까지 쓸 수 있나요</h2>
<p>요금제는 네 단계입니다. 아래는 2026년 8월 27일 기준 가격 페이지 내용입니다.</p>
<figure class="wp-block-table">
<table>
<thead>
<tr>
<th>플랜</th>
<th>가격</th>
<th>들어 있는 것</th>
</tr>
</thead>
<tbody>
<tr>
<td>Free</td>
<td>$0 forever</td>
<td>본인 구독 연결(BYO), 크레딧 한 달 500, routine 최대 3개, 패스워드 매니저, 개인화 메모리</td>
</tr>
<tr>
<td>Pro</td>
<td>한 달 $20</td>
<td>Free의 3배 사용량, Ultrabrowse 심층 리서치, routine 무제한, 원격 제어(Channels), Cloud handoff</td>
</tr>
<tr>
<td>Max</td>
<td>한 달 $200</td>
<td>Pro의 40배 사용량, 얼리 액세스</td>
</tr>
<tr>
<td>Enterprise</td>
<td>문의</td>
<td>팀 단위</td>
</tr>
</tbody>
</table>
</figure>
<p>연간 결제를 고르면 20% 할인이 붙는다고 표기돼 있습니다.<br />
<img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/blog.wonizz.com/wp-content/uploads/2026/08/06-pricing-scaled.png?w=1200&#038;ssl=1" alt="Aside 브라우저 요금표 화면. Free와 Pro, Max, Enterprise 네 단계가 나열돼 있습니다" /><br />
여기서 꼭 짚고 넘어갈 것이 있습니다. <strong>REPL로 브라우저를 조작하는 동작 자체는 내장 AI 모델을 쓰지 않습니다.</strong> 그래서 크레딧과 무관합니다. 이 글에서 제가 한 작업, 그러니까 페이지 열기와 요소 목록 받기, 스크린샷 찍기, 클릭까지는 전부 무료 구간에서 돌아갔습니다.</p>
<p>Free 플랜에 적힌 BYO는 본인이 이미 갖고 있는 AI 구독을 연결해서 쓰는 방식을 말합니다. 이미 쓰는 구독이 있다면 그쪽을 물려서 시작할 수 있다는 뜻입니다. routine은 최대 3개까지 만들 수 있고, 패스워드 매니저와 개인화 메모리는 무료 구간에도 들어 있습니다.</p>
<p>크레딧이 깎이는 쪽은 자연어 지시를 모델이 해석해 주는 CLI 방식이나 심층 리서치 같은 기능입니다. 즉 &#8220;브라우저를 코드로 조작하는 도구&#8221;로만 쓸 생각이라면 돈을 내지 않고 끝까지 써 볼 수 있습니다. 저는 이 점이 진입 장벽을 크게 낮춘다고 봤습니다.</p>
<h2>7. Playwright와 무엇이 다를까요</h2>
<p>가장 자연스러운 비교 대상은 Playwright입니다. REPL API가 비슷하게 생겼으니 더 그렇습니다. 다만 두 도구가 서 있는 자리는 꽤 다릅니다.</p>
<figure class="wp-block-table">
<table>
<thead>
<tr>
<th>항목</th>
<th>Aside 브라우저</th>
<th>Playwright</th>
</tr>
</thead>
<tbody>
<tr>
<td>로그인 상태</td>
<td>평소 쓰던 브라우저 세션을 그대로 씁니다</td>
<td>보통 빈 프로필로 시작해 로그인이 필요합니다</td>
</tr>
<tr>
<td>요소 지정</td>
<td>화면에 붙은 번호로 지정합니다</td>
<td>CSS 선택자나 텍스트로 지정합니다</td>
</tr>
<tr>
<td>플랫폼</td>
<td>macOS 전용입니다</td>
<td>여러 운영체제를 지원합니다</td>
</tr>
<tr>
<td>성숙도</td>
<td>신생 제품이라 자료가 적습니다</td>
<td>오래돼 자료가 많습니다</td>
</tr>
</tbody>
</table>
</figure>
<p>속도나 안정성 같은 수치는 제가 나란히 재보지 않았으므로 여기에 적지 않았습니다. 표에 적은 네 가지는 문서와 화면에서 확인한 범위입니다. 어느 쪽이 빠른지 궁금하다면 같은 작업을 양쪽으로 짜서 재보는 수밖에 없는데, 그건 이 글의 범위를 넘습니다.</p>
<p>특히 성숙도 항목은 실제로 체감했습니다. 막혔을 때 검색으로 답을 찾은 적이 한 번도 없었고, 바로 다음 장에 적은 함정 여섯 가지는 전부 제가 직접 부딪혀서 알아낸 것입니다.</p>
<p>정리하면 Playwright는 테스트 자동화를 위해 만들어진 도구이고, Aside 브라우저는 사람이 쓰던 브라우저를 AI가 이어받는 쪽에 가깝습니다. 반복 실행되는 테스트를 짠다면 여전히 Playwright 쪽이 맞습니다. 반대로 로그인 뒤 화면을 한두 번 다루는 일이라면 Aside 브라우저가 준비 시간을 크게 줄여 줍니다.</p>
<h2>8. 막혔던 지점 6가지, 이건 안 됩니다</h2>
<p>여기부터는 제가 실제로 부딪힌 것들입니다. 전부 화면에 에러가 떠서 알게 된 내용이고, 나열한 순서도 제가 부딪힌 순서 그대로입니다. 문서를 먼저 꼼꼼히 읽었다면 몇 개는 피했을 텐데, 저는 그러지 않았습니다.</p>
<p><strong>첫째, Playwright 코드가 그대로 돌지 않습니다.</strong> 습관대로 <code>page.waitForTimeout()</code> 을 불렀더니 <code>TypeError: p.waitForTimeout is not a function</code> 이 떴습니다. API가 비슷하게 생겼을 뿐 같지는 않습니다. 대기 동작은 직접 만들어 써야 했습니다. 비슷한 문법을 보면 나머지도 같겠거니 하고 넘어가게 되는데, 그 가정이 여기서 깨집니다.</p>
<p><strong>둘째, 프로젝트 폴더 밖으로 파일을 못 씁니다.</strong> 스크린샷을 다른 경로에 저장하려니 <code>Error: Path escapes Project and session roots</code> 가 나왔습니다. 브라우저가 임의 경로에 파일을 쓰지 못하게 막아 둔 것이라 취지는 납득이 되지만, 처음에는 그냥 막힌 것처럼 보입니다. 저장 경로를 프로젝트 안쪽으로 옮겨서 넘어갔습니다.</p>
<p><strong>셋째, <code>/tmp</code> 에 저장하면 조용히 다른 곳으로 갑니다.</strong> 경고가 한 줄 뜨면서 파일이 세션 폴더 안으로 옮겨져 저장됩니다. 저는 그 경고를 놓쳤고, 지정한 경로에 파일이 없어서 한참을 찾아다녔습니다. 실패로 끝났으면 차라리 빨리 알았을 텐데 저장은 성공했다고 나오니 더 헷갈렸습니다. 결국 세션 폴더 안에서 파일을 찾아내고 나서야 무슨 일이 벌어진 건지 알았습니다. 그 뒤로는 저장 경로를 아예 프로젝트 폴더 안으로 정해 두고 씁니다.</p>
<p><strong>넷째, 폴더를 미리 만들어 두지 않으면 저장이 실패합니다.</strong> <code>./artifacts/</code> 같은 경로에 쓰려면 그 폴더가 먼저 있어야 합니다. 자동으로 만들어 주지 않습니다. 셋째 항목과 합쳐 놓고 보면 규칙은 하나입니다. 파일을 쓰기 전에 프로젝트 안쪽에 폴더를 만들어 두고, 저장 경로를 그 폴더로 고정해 두면 셋째와 넷째가 같이 해결됩니다. 저는 이 두 가지를 각각 다른 문제로 착각해서 두 번 헤맸습니다.</p>
<p><strong>다섯째, 명령을 한 번 실행할 때마다 세션이 새로 시작됩니다.</strong> 앞 명령에서 열어 둔 탭이 다음 명령에는 남아 있지 않습니다. 그래서 여러 단계짜리 작업은 한 번의 호출 안에 몰아 넣거나 대화형 모드로 붙어서 해야 합니다. 저는 이걸 모르고 명령을 잘게 쪼갰다가 매번 빈 화면을 받았습니다.</p>
<p><strong>여섯째, 호출 한 번에 4초에서 14초가 걸립니다.</strong> 가볍게 여러 번 부르는 방식과는 맞지 않습니다. 한 번 부를 때 할 일을 최대한 담아야 합니다. 다섯째 항목과 겹쳐서, 결국 &#8220;한 호출에 다 넣는다&#8221;가 기본 전략이 됩니다. 화면을 열고 요소 목록을 받고 하나를 누른 다음 결과 주소까지 찍는 흐름을 한 덩어리로 묶어 두면, 기다리는 시간이 한 번으로 끝납니다. 반대로 한 줄씩 나눠 실행하면 매번 처음부터 다시 시작하면서 기다리는 시간만 늘어납니다.</p>
<p>여섯 가지를 한 줄로 줄이면 이렇습니다. <strong>API는 비슷할 뿐 같지 않고, 파일은 프로젝트 안에만 쓸 수 있으며, 세션은 매번 새로 시작하고, 호출은 느립니다.</strong> 이 네 문장을 먼저 알고 시작했다면 제가 쓴 시간의 절반은 아꼈을 것입니다.</p>
<p>여기에 하나 덧붙이면, 도구가 알려 주는 실패 메시지를 끝까지 읽어야 한다는 점입니다. 셋째 항목은 경고가 분명히 떠 있었는데 제가 넘겼습니다. 자동화 도구의 완료 보고를 그대로 믿었다가 놓친 사례는 <a href="https://blog.wonizz.com/2026/08/18/ai-completion-report-verification/">AI 완료 보고를 검증하는 법</a>에도 적어 뒀습니다.</p>
<h2>9. 누구에게 맞고 누구에게는 굳이일까요</h2>
<p>먼저 맞지 않는 쪽부터 적겠습니다.</p>
<p>윈도우나 리눅스를 쓴다면 지금은 선택지가 아닙니다. macOS 전용입니다. 반복 실행되는 테스트 코드를 짜야 한다면 이미 검증된 도구가 있으니 굳이 갈아탈 이유가 약합니다. 자료가 많이 필요한 사람에게도 아직 이릅니다. 검색해도 후기가 거의 없어서, 제가 막혔을 때 참고할 데는 공식 문서뿐이었습니다.</p>
<p>반대로 잘 맞는 쪽은 이렇습니다. 로그인 뒤에 있는 화면을 다뤄야 하는 사람, 특히 개인 블로그나 각종 관리 화면처럼 매번 로그인이 걸림돌이 되던 작업을 자동화하려는 사람입니다. 준비 과정이 거의 없다시피 하니 시도해 보는 비용이 낮습니다. 코드 없이 자연어로 맡겨 보고 싶은 사람에게도 CLI 방식이 있습니다.</p>
<p>써 볼지 말지 정하는 가장 빠른 방법은 이렇습니다. CLI를 깔고 브라우저 앱을 받은 다음, 평소 로그인해 두고 쓰는 화면을 하나 열어 보면 됩니다. 로그인이 유지된 채로 뜨는지만 확인하면 이 도구가 나에게 무슨 값을 하는지 그 자리에서 판단이 섭니다. 여기까지는 돈이 들지 않고, 열어 보는 데 몇 분이면 됩니다. 유지가 안 되는 화면이라면 그 뒤 과정도 볼 것 없이 접으면 됩니다.</p>
<p>저는 당분간 Aside 브라우저를 블로그 화면 확인용으로 계속 써 볼 생각입니다. 발행한 글이 화면에서 제대로 보이는지 눈으로 확인하는 일은 지금까지 손으로 해 왔는데, 로그인이 유지된다는 점 하나만으로도 그 작업이 훨씬 간단해졌습니다. 도구를 하나 더 얹는 것이 늘 이득은 아니라는 이야기는 <a href="https://blog.wonizz.com/2026/08/22/ai-automation-completion-condition-reality/">AI 자동화의 완료 조건</a>에서 다룬 적이 있는데, 이번에는 얹을 만하다고 판단했습니다.</p>
<p>마지막으로 이 글의 한계를 분명히 해 두겠습니다. 저는 REPL 조작만 썼고 내장 AI 모델의 성능은 재보지 않았습니다. 패스워드 매니저의 안전성도 문서 설명을 읽었을 뿐 검증하지 못했습니다. 성능 비교 수치도 이 글에는 없습니다. 그 세 가지가 궁금하시다면 이 글로는 답이 되지 않습니다.</p>
<p>The post <a rel="nofollow" href="https://blog.wonizz.com/2026/08/27/aside-browser-review/">[AI Now] Aside 브라우저 후기, 함정 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/27/aside-browser-review/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">3394</post-id>	</item>
		<item>
		<title>[DevOps] AI 에이전트 위임, 넘기는 것 자체가 공짜가 아니다</title>
		<link>https://blog.wonizz.com/2026/08/11/ai-agent-delegation-cost/</link>
					<comments>https://blog.wonizz.com/2026/08/11/ai-agent-delegation-cost/#respond</comments>
		
		<dc:creator><![CDATA[워니즈]]></dc:creator>
		<pubDate>Tue, 11 Aug 2026 01:01:25 +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=2792</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 에이전트 위임을 여러 개로 나누는 구조가 부쩍 늘었습니다. [AWS의 3-에이전트 아키텍처 사례](https://aws.amazon.com/ko/blogs/tech/a1mobilsoft-ops-automation-1/)처럼 문의 유형별로 에이전트를 쪼개 응답</p>
<p>The post <a rel="nofollow" href="https://blog.wonizz.com/2026/08/11/ai-agent-delegation-cost/">[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>을 여러 개로 나누는 구조가 부쩍 늘었습니다. <a href="https://aws.amazon.com/ko/blogs/tech/a1mobilsoft-ops-automation-1/" target="_blank" rel="noopener">AWS의 3-에이전트 아키텍처 사례</a>처럼 문의 유형별로 에이전트를 쪼개 응답 시간을 몇 시간에서 몇 분으로 줄였다는 이야기가 나오고, 여러 에이전트를 한 팀처럼 묶는 도구도 계속 등장합니다.

저도 그렇게 씁니다. 판단은 제가 하고, 구현은 다른 에이전트에게 넘기는 구조입니다.

그런데 어제 그 구조가 저를 배신했습니다. 정확히는 <strong>제가 위임 비용을 계산에 넣지 않았습니다.</strong>

이 글의 결론을 먼저 말씀드리겠습니다. <strong>AI 에이전트 위임이 줄여주는 것은 실행 시간뿐입니다.</strong> 브리프를 쓰는 시간, 결과를 검증하는 시간, 실패했을 때 복구하는 시간은 그 대신 새로 생깁니다. 특히 복구 비용은 확률적으로 발생하기 때문에 계산에서 빠지기 쉽습니다.

그래서 저는 넘길지 말지를 &#8220;이게 더 빠른가&#8221;로 판단하지 않습니다. <strong>&#8220;이게 중간에 멈추면, 나는 무엇을 건지는가.&#8221;</strong> 답이 &#8220;아무것도&#8221;라면 작업을 쪼개거나 직접 하는 편이 낫습니다.

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

<h2>1. 어제 있었던 일</h2>

콘텐츠 파이프라인 스크립트 두 개를 만들어야 했습니다. 저는 이렇게 판단했습니다.

<blockquote>코드가 300줄쯤 될 것 같다. 브리프는 그보다 짧다. 그러니 위임한다.</blockquote>

브리프를 썼습니다. 데이터 스키마, 함정, 보안 요구사항, 완료 기준까지 넣었습니다. 꽤 정성껏 썼고, 실제로 좋은 브리프였다고 생각합니다.

그리고 <strong>워커가 세션 한도에 걸려 중단됐습니다.</strong>

돌아온 건 &#8220;파일을 읽기 시작하겠습니다&#8221; 한 줄이었습니다. 결국 제가 처음부터 다시 만들었습니다.

여기서 잃은 건 시간만이 아닙니다. <strong>브리프를 쓰는 데 들인 시간이 통째로 매몰됐습니다.</strong> 직접 만들었다면 그 시간에 이미 절반은 끝났을 겁니다.

<h2>2. 위임 비용은 세 갈래로 나뉩니다</h2>

이 일을 겪고 나서 AI 에이전트 위임이 시간을 절약해준다는 전제를 다시 봤습니다. 절약되는 건 <strong>실행 시간</strong>뿐이고, 나머지는 새로 생깁니다.
<img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/blog.wonizz.com/wp-content/uploads/2026/08/wz-d3.png?w=1200&#038;ssl=1" alt="AI 에이전트 위임 비용의 세 갈래, 브리프 작성, 결과 검증, 실패 복구" />
<strong>브리프 작성 비용.</strong> 에이전트가 재탐색하지 않으려면 이미 파악한 컨텍스트를 전부 적어야 합니다. 파일 경로, 프로젝트 컨벤션, 알려진 함정, 완료 기준. 이걸 대충 쓰면 결과가 산으로 가고, 제대로 쓰면 그 자체가 일입니다.

<strong>검증 비용.</strong> 에이전트의 완료 보고는 자기 행동에 대한 서술이지 시스템 상태가 아닙니다. diff를 직접 봐야 하고, 테스트를 돌려야 합니다.

<strong>실패 복구 비용.</strong> 중단되거나 잘못 만들면 원점입니다. 그리고 이건 <strong>확률적으로 발생</strong>하기 때문에 평소 계산에서 빠지기 쉽습니다.

<h2>3. 그래서 판단 기준을 이렇게 바꿨습니다</h2>

AI 에이전트 위임을 판단하는 원래 기준은 단순했습니다.

<blockquote>예상 브리프가 예상 코드보다 짧으면 위임한다.</blockquote>

틀리진 않았지만 부족했습니다. <strong>실패 확률과 복구 비용이 빠져 있었습니다.</strong> 지금은 이렇게 봅니다.

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

<table><thead><tr><th>물어볼 것</th><th>위임 쪽으로 기우는 경우</th></tr></thead><tbody><tr><td>브리프가 결과물보다 짧은가</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></tbody></table>

</figure>

세 번째가 어제 제가 놓친 것입니다. 스크립트 두 개를 한 워커에게 묶어 맡겼는데, 그러면 <strong>중단 시 둘 다 사라집니다.</strong> 쪼개서 맡겼다면 하나는 건졌을 겁니다.

네 번째도 중요합니다. &#8220;이 코드가 맞는가&#8221;를 사람이 읽어서 판단해야 한다면, 읽는 시간이 짓는 시간과 크게 다르지 않습니다.

<h2>4. 검증 비용은 생각보다 비쌉니다</h2>

같은 날 이런 일도 있었습니다.

워커가 보고에 이렇게 적었습니다.

<blockquote>기존 보안 스캐너에 <code>사내</code> 라는 단어를 잡는 패턴이 없다. 즉 &#8220;사내 환경을 점검하세요&#8221; 같은 문장은 그대로 통과한다.</blockquote>

저는 이걸 의심했습니다. <code>grep -c 사내</code> 를 돌렸더니 <strong>14건</strong>이 나왔거든요. &#8220;워커가 틀렸다&#8221;고 판단했습니다.

그런데 실제로 열어보니 14건은 전부 패턴의 <strong>이름</strong>이었습니다.

<pre class="wp-block-code"><code class="language-python">("사내 도메인",   r"..."),   # ← '사내'는 레이블이지 탐지 대상이 아니다
("사내 인프라",   r"..."),</code></pre>

<strong>단어 자체를 잡는 정규식은 하나도 없었습니다.</strong> 워커가 맞았고 제가 틀렸습니다.

여기서 얻은 건 두 가지입니다. 하나는 <strong>검증도 틀릴 수 있다</strong>는 것. 다른 하나는 그 검증에 시간이 든다는 것입니다. 위임의 이득을 계산할 때 이 시간을 빼야 합니다.

참고로 저 구멍은 그 자리에서 메웠습니다. 어휘 자체를 잡는 규칙을 추가했습니다.

<pre class="wp-block-code"><code>("회사 맥락 어휘", r"사내|우리\s*(?:팀|회사)|자사|당사"),</code></pre>

<h2>5. 그럼 위임을 줄여야 하나</h2>

아닙니다. AI 에이전트 위임을 포기하자는 게 아니라 계산을 바꿔야 한다는 얘기입니다.

위임이 확실히 이득인 경우가 있습니다.

<ul>
  <li><strong>서로 독립적인 작업 여러 개</strong>, 병렬로 도니 실행 시간이 실제로 줄어듭니다</li>
  <li><strong>검증이 기계적인 작업</strong>, 테스트가 통과하면 끝나는 종류</li>
  <li><strong>컨텍스트가 오염되면 안 되는 작업</strong>, 구현자와 리뷰어를 분리해야 할 때</li>
</ul>

반대로 <strong>한두 줄 수정, 설정 파일 변경, 이미 맥락을 다 쥐고 있는 단발 작업</strong>은 직접 하는 게 빠릅니다. 브리프를 쓰는 동안 이미 끝났을 일이니까요.

병렬로 나눌 때 실제로 무엇을 얻고 무엇을 잃는지는 <a href="https://blog.wonizz.com/2026/08/10/parallel-coding-agents-tradeoffs/">병렬 코딩 에이전트 손익계산서</a>에서 공개된 실측치로 따로 정리했습니다.

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

<h2>6. AI 에이전트 위임 요약</h2>

<ul>
  <li>위임이 줄여주는 건 <strong>실행 시간</strong>뿐이다. 브리프, 검증, 복구 비용은 새로 생긴다</li>
  <li><strong>실패 복구 비용은 확률적이라 평소 계산에서 빠진다.</strong> 한 번 겪어야 보인다</li>
  <li>여러 작업을 <strong>한 워커에 묶으면 중단 시 전부 잃는다.</strong> 쪼개면 부분이라도 건진다</li>
  <li>검증이 사람의 판독을 요구하면, 읽는 시간이 짓는 시간과 크게 다르지 않다</li>
  <li><strong>검증하는 쪽도 틀린다.</strong> 워커 보고를 반박하기 전에 내 근거부터 확인할 것</li>
</ul>

<strong>당장 해보실 수 있는 것 하나</strong>를 남기겠습니다. 다음에 에이전트에게 일을 넘기기 전에 이 질문에 답해보세요.

<blockquote>&#8220;이게 중간에 멈추면, 나는 무엇을 건지는가?&#8221;</blockquote>

답이 &#8220;아무것도&#8221;라면 작업을 쪼개거나 직접 하는 편이 낫습니다.

다음 글에서는 이 파이프라인을 실제로 어떻게 굴리고 있는지, 어디서 자동화를 의도적으로 끊었는지 정리해보겠습니다.

읽어주셔서 감사합니다. 비슷한 고민을 하고 계시거나 짚어주실 부분이 있으면 편하게 남겨주세요.

<h2>함께 보면 좋은 글</h2>

AI 에이전트에게 일을 넘기는 기준을 더 보고 싶다면 아래 세 편을 이어서 읽어 보세요.

<ul>
  <li><a href="https://blog.wonizz.com/2026/08/03/ai-agent-permission-recovery-cost/?from=2792">AI 에이전트 권한 설계, &#8216;되돌릴 수 있다&#8217;는 착각</a>: 되돌리는 명령이 있어도 복구가 보장되지 않는 이유와 권한을 나누는 기준</li>
  <li><a href="https://blog.wonizz.com/2026/08/06/ai-agent-solo-work-verification/?from=2792">AI 에이전트로 혼자 일하기, 늘어난 건 산출물이 아니라 검증이었습니다</a>: 검증 부담이 한 사람에게 몰리는 자리</li>
  <li><a href="https://blog.wonizz.com/2026/08/23/claude-code-automation-human-role/?from=2792">Claude Code 자동화, 사람 몫 4가지</a>: 코드 생성을 자동화해도 사람에게 남는 판단</li>
<li><a href="https://blog.wonizz.com/2026/09/29/meta-muse-korea-availability/">[AI Now] 메타 뮤즈 한국 다운로드와 대안 3가지</a></li></ul>

새 글은 <a href="https://www.threads.com/@wonizz.ai" target="_blank" rel="noopener">Threads @wonizz.ai</a> 와 <a href="https://x.com/wonizz_ai">X @wonizz_ai</a> 에 먼저 올립니다. 팔로우해 두시면 다음 글을 받아 보실 수 있습니다.<p>The post <a rel="nofollow" href="https://blog.wonizz.com/2026/08/11/ai-agent-delegation-cost/">[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/11/ai-agent-delegation-cost/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2792</post-id>	</item>
	</channel>
</rss>
