/// 실습 · 만들면서 배우기 · 05

회로 연결 축소판 — 퍼즐과 판정

점프 게임은 해 보면 잘 되는지 바로 보였다. 퍼즐은 다르다 — "다 풀었다"를 컴퓨터가 가려내야 한다. 이번에는 "불이 켜졌다"를 세 줄로 정확히 적고, Claude 에게 판정과 함께 시험까지 만들게 한다. 그리고 시험 결과표를 읽다가 고칠 곳 하나를 찾는다. 요점은 하나 — 내 말이 정확해야 판정도 정확하다.

걸리는 시간50분
요금제유료 요금제(Pro 이상)가 있어야 한다 — Cowork 는 무료 계정에서 쓸 수 없다
준비물실습 04 까지 해 본 것, Windows 또는 맥 컴퓨터
설치Claude 데스크톱 앱 (claude.ai 에서 내려받는다). 이미 있으면 그대로
이 페이지의 화면은

IC Infinite LAB 이 2026-09-27 에 Claude 데스크톱 앱의 Cowork 로 이 순서 그대로 해 보며 찍었다. 채팅 목록 · 계정 · 이름 · 즐겨찾기 줄은 흐리게 가렸다. 판은 열 때마다 새로 섞이고, 시험의 개수와 이름도 시킬 때마다 조금씩 다르다. 결과표가 나오고 모두 합격인지를 본다.

1. 원작을 한 판 한다

이 사이트의 회로 연결 을 앞쪽 스테이지로 두세 판 해 본다. 칸을 누르면 타일이 돌고, 전지에서 나와 LED 를 지나 다시 전지로 돌아오게 이으면 불이 들어온다. 하면서 불이 들어올 때와 안 들어올 때를 눈여겨본다.

회로 연결 원작에서 회로를 완성해 전선에 색이 흐르고 LED 에 불이 들어온 화면
원작 · 켜짐 — 닫힌 회로가 되면 불이 들어온다
회로 연결 원작에서 단락 — 전류가 LED 를 우회합니다 경고가 뜬 화면
원작 · 단락 — 선은 다 이었는데 전류가 LED 를 건너뛰었다

2. "불이 켜졌다"를 세 줄로 적는다

사람은 화면을 보고 "켜졌네" 하고 안다. 컴퓨터는 적어 준 규칙대로만 가려낸다. 이 규칙을 판정이라고 한다. "잘 이어지면 켜진다" 처럼 적으면, 무엇이 "잘" 인지 Claude 가 짐작해서 채운다. 짐작이 틀리면 퍼즐이 이상해진다.

원작은 LED 여러 개 · 방향 · 스위치까지 있다. 축소판은 전지 하나 · 전구 하나 · 직선과 코너 타일만 남기고, 켜지는 조건을 세 줄로 줄인다.

원작축소판의 "켜졌다"
+에서 나와 LED 를 거쳐 -로 돌아오는 닫힌 회로1. + 입구에서 출발해, 맞닿은 입구끼리만 따라가면 전구를 지나 - 입구로 돌아온다
열린 끝이 없어야 한다2. 그 길 위의 모든 입구는 이웃 칸의 입구와 짝이 맞는다
단락이 없어야 한다3. 전구를 거치지 않고 +에서 -로 바로 이어지면 "단락" — 켜지지 않고 경고

여기에 한 줄을 더 붙인다 — "길에 끼지 않은 나머지 타일은 어떻게 놓여 있어도 상관없다." 이 줄이 없으면 판 전체를 다 맞춰야 켜지는 퍼즐이 나올 수도 있다.

3. 연습 폴더를 만든다

Cowork 는 채팅과 달리 내 컴퓨터의 폴더에 직접 파일을 만들고 고친다. 맡긴 폴더 안의 파일은 읽고 · 고치고 · 지울 수 있다. 그러니 중요한 파일이 든 폴더가 아니라 빈 연습 폴더를 맡긴다.

  1. 문서 폴더 안에 AI실습 폴더를 만든다. 실습 02 에서 만들었다면 그대로 쓴다.
  2. 그 안에는 아직 아무것도 넣지 않는다. 이번 실습의 파일은 Claude 가 만든다.

4. Cowork 를 열고 폴더를 맡긴다

  1. Claude 데스크톱 앱을 열고 왼쪽 위 새로 생성을 누른다.
  2. 입력칸 아래에서 채팅 옆의 Cowork 를 고른다.
  3. 그 아래 프로젝트 또는 폴더를 누른다.
Claude 데스크톱 앱 새 화면. 입력칸 아래 채팅과 Cowork 두 칸 가운데 Cowork 가 골라져 있고, 그 아래 프로젝트 또는 폴더 단추
① Cowork · ② 프로젝트 또는 폴더
  1. 뜬 목록 맨 아래 폴더 추가를 누르고, 3단계의 AI실습 폴더를 골라 폴더 선택을 누른다.
프로젝트 검색 목록이 열리고 맨 아래 새 프로젝트와 폴더 추가 두 줄이 있는 모습
① 폴더 추가 — 위쪽 목록은 전에 쓴 프로젝트들이라 가렸다
  1. "파일을 변경하도록 허용하시겠습니까?" 가 뜨면 허용을 누른다. 항상 허용은 누르지 않는다 — 다음에 또 물어보는 편이 안전하다.
Claude가 AI실습의 파일을 변경하도록 허용하시겠습니까 라는 창. 취소 항상 허용 허용 세 단추
① 허용 — 이 창의 말 그대로, 맡긴 폴더의 파일을 편집 · 삭제할 수 있게 된다
입력칸 아래에 C:\OneDrive\문서\AI실습 폴더가 붙은 모습
① 입력칸 아래에 맡긴 폴더가 붙었다 — 경로는 컴퓨터마다 다르다

5. 만들 것을 말한다

아래 글을 붙여 넣고 보낸다. 2단계의 세 줄이 가운데에 그대로 들어가 있다.

이 폴더 안에 circuit-mini 폴더를 만들고, 거기에 작은 회로 퍼즐 게임을 만들어 줘. 브라우저에서 파일을 더블클릭하면 바로 되게.

판
· 5×5 칸. 칸을 누르면 그 칸의 타일이 시계 방향으로 90도 돈다
· 타일은 두 가지 — 직선(입구 2개가 마주 봄), 코너(입구 2개가 옆으로 꺾임)
· 전지 칸 하나: + 입구 하나, - 입구 하나. 돌아가지 않는다
· 전구 칸 하나: 입구 둘. 돌아가지 않는다
· 처음 판은 풀 수 있는 판이어야 하고, 타일은 섞어서 돌려 둔다

"불이 켜졌다"의 뜻 — 셋 다 맞아야 켜진다
1. + 입구에서 출발해, 서로 맞닿은 입구끼리만 따라가면 전구를 지나 - 입구로 돌아온다
2. 그 길 위의 모든 입구는 이웃 칸의 입구와 짝이 맞는다 (열린 끝이 없다)
3. 전구를 거치지 않고 +에서 -로 바로 이어지면 "단락" — 켜지지 않고 붉은 경고를 띄운다
길에 끼지 않은 나머지 타일은 어떻게 놓여 있어도 상관없다.

판정과 시험
· 판정은 judge.js 파일 하나에 따로 둔다. 게임은 그 파일을 불러 쓴다
· 시험 판을 만들어 판정을 확인해 줘 — 켜지는 판, 한 칸 틀어져 꺼지는 판, 단락 판, 처음 섞인 판
· 시험을 실제로 돌려서 결과를 표로 보여 줘

화면 아래에 지금 상태(꺼짐 / 켜짐 / 단락)와 누른 횟수를 보여 줘.
덩어리왜 넣나
판무엇을 누르면 무엇이 되는지. 4편의 "조작" 과 같다.
"불이 켜졌다"의 뜻이번 실습의 핵심. 판정은 이 세 줄을 그대로 옮긴 것이 된다.
판정은 judge.js 에 따로판정만 떼어 두면 게임을 안 띄워도 판정만 따로 시험할 수 있다.
시험 판 네 가지켜지는 판만 시험하면 "무조건 켜짐" 이라고 답해도 합격한다. 안 켜져야 하는 판이 꼭 있어야 한다.
실제로 돌려서 표로"시험을 만들었다" 와 "돌려서 합격했다" 는 다르다. 돌린 결과를 눈으로 본다.
Cowork 입력칸에 긴 요청 글을 붙여 넣은 모습. 불이 켜졌다의 뜻 세 줄과 판정과 시험 부분이 보인다
① 붙여 넣은 글 — 보내기 전에 세 줄이 다 들어갔는지 본다

6. 한 번 더 허락하고, 기다린다

보내면 "이 Cowork 세션이 폴더에 접근하도록 허용할까요?" 가 한 번 더 뜬다. Allow 를 누른다. 아래 Don't ask again 칸은 비워 둔다.

Folder access request 창. Allow this Cowork session to access this folder 라는 제목과 Allow 단추, 아래에 Don't ask again 체크 칸
① Allow — 창의 설명대로 이 작업은 클라우드에서 돌아, 맡긴 폴더의 파일이 Anthropic 서버에서 처리된다. 빈 연습 폴더를 맡긴 까닭이다

그다음은 Claude 가 스스로 할 일을 나눠 적고 하나씩 해 나간다. 우리 때는 5분쯤 걸렸다.

Cowork 가 일하는 중. 시험 판 작성 및 실행 결과 표, 폴더 저장 및 사용자 PC에서 검증 이라는 할 일이 추가되고 judge.js 생성됨
① Claude 가 스스로 적은 할 일 — 시험 돌리기, 폴더에 저장하고 확인하기 · ② 아직 일하는 중
끝난 뒤 Judge JS, Board JS, Test JS, Index HTML 네 파일 카드가 나란히 있는 모습
① 만들어진 파일 — judge.js(판정) · board.js(판 만들기) · test.js(시험) · index.html(게임)

7. 시험 결과표를 읽는다

답을 위로 올려 시험 결과 표를 찾는다. 합격(PASS)만 세지 말고, 각 줄이 무엇을 시험했는지 읽는다.

Claude 의 답. AI실습 폴더 안에 circuit-mini 폴더를 만들고 게임을 넣었다, 시험은 PC 에서 node test.js 로 돌렸고 12개 항목이 모두 합격했다는 글과 시험 결과 표
① 어디서 무엇으로 돌렸는지 · ② 결과표 — 시험 판 · 기대 · 결과 · 판정 사유 · 합격

우리 때는 시험이 열두 줄 나왔다. 4번 "켜짐 판 + 길 밖 타일 전부 회전 → 켜짐" 은 2단계에서 덧붙인 한 줄 ("길에 끼지 않은 타일은 상관없다") 을 확인하는 시험이다. 우리가 적은 말이 시험이 된 것이다.

그리고 맨 아래 줄에서 멈췄다.

결과표 12번 줄. 무작위 2000판 섞인 상태, 기대 전부 켜짐 아님, 결과 2000/2000 (꺼짐 1999, 단락 1), PASS
① 섞인 판 2000개 — "켜짐 아님" 이라 합격이지만, 그중 하나는 단락으로 시작한다

합격은 맞다. 우리는 처음 판이 어떤 상태여야 하는지 말하지 않았고, Claude 는 "켜져 있지만 않으면 된다" 고 보고 시험을 짰으니까. 하지만 게임을 열자마자 붉은 경고가 깜빡이는 판은 이상하다. 규칙에 빠진 말이 있었던 것이다 — 9단계에서 고친다.

답을 더 올리면 Claude 가 시키지 않은 것도 적어 두었다. 이런 줄은 꼭 읽는다.

답의 화면 부분. 꺼져 있을 때는 +에서 이어진 데까지만 청록색으로 표시한다, 요청하지 않은 기능이 하나 있다 — 콘솔에서 판을 직접 올릴 수 있게 했다는 설명
① +에서 어디까지 이어졌는지 청록색으로 보여 준다(너무 쉬우면 끌 수 있다고 한다) · ② "요청하지 않은 기능이 하나 있습니다"

8. 직접 풀어 본다

  1. 파일 탐색기에서 문서 › AI실습 › circuit-mini 를 열고 index.html 을 더블클릭한다.
  2. 전지(+ · - 표시가 있는 칸)와 전구를 찾는다. 이 두 칸은 눌러도 돌지 않는다.
  3. +에서 나가는 쪽부터 한 칸씩 돌려 길을 잇는다. 청록색이 어디까지 왔는지 보면서.
Chrome 으로 연 circuit-mini. 5×5 판에 타일이 섞여 있고, 오른쪽에 + - 표시가 있는 전지, 아래에 전구. 아래 막대에 상태 꺼짐, 누른 횟수 0
① 전지 · ② 전구 · ③ 상태와 누른 횟수 — 처음에는 "꺼짐", 0
풀고 있는 중. +에서 나온 길이 청록색으로 판을 크게 돌아 전구 바로 앞까지 와 있다. 상태 꺼짐, 누른 횟수 11
① +에서 이어진 데까지 청록색 — 전구 바로 앞 한 칸이 남았다 · ② 아직 "꺼짐"
회로가 완성된 화면. 위에 불이 켜졌습니다! (12번 만에), 길 전체와 전구가 노랗게 빛나고 상태 켜짐, 누른 횟수 12
① "불이 켜졌습니다!" · ② 상태 켜짐, 12번 — 길 밖의 타일은 제멋대로여도 켜졌다(2단계의 넷째 줄)
이렇게 보이면 성공

결과표가 모두 합격이고, 직접 풀었을 때 켜짐으로 바뀐다. 한 칸만 다시 돌려 보면 곧바로 꺼짐으로 돌아간다. 판정은 화면이 아니라 judge.js 에 있으니, 시험이 합격했다는 것은 화면 없이도 판정이 맞았다는 뜻이다.

9. 결과표에서 찾은 것을 고친다

7단계에서 찾은 빠진 말을 채운다. 이번에도 본 것을 적고, 하나만, 나머지는 그대로.

시험 결과 12번을 봤다 — 섞인 판 2000개 가운데 1개가 "단락"으로 시작한다. 처음 판은 "꺼짐"으로만 시작하게 고쳐 줘. 이 조건을 시험에도 넣어서 다시 돌리고 결과를 보여 줘. 다른 곳은 그대로 두고.
같은 Cowork 대화의 입력칸에 고쳐 달라는 글을 넣은 모습
① 같은 대화에 이어서 — "시험에도 넣어서" 가 중요하다. 고친 것이 다음에 다시 깨지지 않게 지켜 준다
Claude 의 답. 12번 줄이 기대 전부 꺼짐, 결과 2000/2000 꺼짐 (켜짐 0, 단락 0) PASS 로 바뀌었고, 확인한 것 — 예전에 단락으로 시작하던 판은 seed 865 하나였다, 새 시험이 고치기 전 board.js 로 돌리면 FAIL 이 나온다
① 12번이 "전부 꺼짐" 으로 바뀌었다 · ② 새 시험을 고치기 전 판으로 돌리면 실패하는 것까지 확인했다 — 시험이 정말로 그 문제를 잡아낸다는 뜻이다

②가 이번 실습에서 가장 좋은 대목이다. 늘 합격만 하는 시험은 아무것도 지켜 주지 않는다. 고치기 전에는 떨어지고, 고친 뒤에는 붙는 시험이어야 쓸모가 있다. Claude 가 스스로 하지 않으면 이렇게 물어본다 — "이 새 시험을 고치기 전 코드로 돌리면 떨어지는지도 확인해 줘."

우리는 따로 판 2만 개를 더 만들어 돌려 봤다. 모두 "꺼짐" 으로 시작했다.

막히면

Cowork 가 보이지 않는다 → 무료 계정이거나 앱이 오래된 것이다. 요금제를 확인하고 앱을 새로 받는다.
시험을 "만들었다" 고만 하고 결과표가 없다 → "시험을 실제로 돌린 결과를 표로 보여 줘. 떨어진 게 있으면 고치지 말고 먼저 알려 줘."
풀었는데 켜지지 않는다 → 길 위 어딘가에 열린 끝이 있다. 청록색이 끊긴 곳을 본다. 그래도 모르겠으면 그 판 그대로 — "판을 이렇게 맞췄는데 꺼짐이다. 판정이 어디서 끊겼다고 보는지 알려 줘." 판정이 틀렸다면 그 판을 시험에 넣어 달라고 한다.
index.html 을 열었는데 판이 비어 있다 → judge.js · board.js 가 같은 폴더에 있는지 본다. 한 파일만 옮기면 안 된다.

정리 — 세 줄

  1. 퍼즐의 핵심은 판정이다. "다 풀었다" 를 줄 번호를 붙여 정확히 적는다.
  2. 시험에는 켜져야 하는 판과 켜지면 안 되는 판이 모두 있어야 하고, 실제로 돌린 결과표를 읽는다.
  3. 결과표에서 이상한 줄을 찾으면 고치고, 그 조건을 시험에 넣는다 — 고치기 전에는 떨어지는 시험으로.
해 볼 것 · 15분
  1. 판을 하나 풀고 나서, 길 밖의 타일 하나를 돌려 본다. 여전히 켜져 있는지 본다.
  2. 이번에는 규칙을 하나 바꾼다 — "판을 다 풀면 누른 횟수와 함께, 이 판을 가장 적게 누른 횟수도 보여 줘. 가장 적은 횟수는 시험으로도 확인해 줘."
  3. 결과표에 새 줄이 생겼는지, 원래 있던 줄이 모두 그대로 합격인지 먼저 본다.

새 규칙을 넣을 때마다 옛 시험이 그대로 붙는지를 먼저 본다. 시험이 쌓일수록 고치기가 겁나지 않는다.

확인 질문 눌러서 답 보기
"켜지는 판" 시험만 열 개 있으면 판정을 믿을 수 있나?

아니다. 무엇이든 "켜짐" 이라고 답하는 판정도 그 열 개를 다 통과한다. 켜지면 안 되는 판(한 칸 틀림 · 단락 · 처음 판) 시험이 함께 있어야 한다.

결과표가 모두 PASS 인데 고칠 것이 나왔다. 어떻게 된 일인가?

시험은 적힌 규칙만 확인한다. 처음 판이 어때야 하는지 우리가 적지 않아서, Claude 가 "켜져 있지만 않으면 된다" 로 채웠고 단락으로 시작하는 판도 합격이었다. 규칙에 빠진 말을 채우고, 그 말을 시험에도 넣었다.

Cowork 에 폴더를 맡길 때 왜 빈 연습 폴더를 쓰나?

맡긴 폴더의 파일은 Claude 가 고치고 지울 수 있고, 클라우드로 보내져 처리된다. 필요한 것만 든 폴더를 맡기고, "항상 허용" 대신 그때그때 허용한다.