여기서 쓰는 말 33개

이 사이트 글은 자동화하다 막힌 자리를 그대로 기록한 것이라 설명 없는 말이 많다. 여기 실은 건 일반 IT 용어 사전이 아니라, 발행 글 23편에 실제로 나온 말만 골라 뜻과 그 말이 왜 나왔는지를 붙인 것이다. 줄을 누르면 그 말이 나온 글로 간다.

색인

검색엔진이 내 페이지를 결과 후보로 등록하는 것. 색인됐다고 상위에 뜬다는 뜻은 아니고, 뜰 자격이 생겼다는 뜻이다.

사이트맵에 올린 30개 주소를 전수 조회했더니 색인된 건 2개뿐이었다. 30개 중 2개만 색인될 때 원인 찾는 법

크롤

검색엔진 봇이 내 페이지를 실제로 가지러 오는 것. 서치콘솔의 크롤 시각 칸이 비어 있으면 아직 한 번도 가지러 온 적이 없다는 뜻이다.

색인 안 된 10개는 상태만 "발견됨"이었고 크롤 시각 칸이 전부 비어 있었다. 30개 중 2개만 색인될 때 원인 찾는 법

사이트맵

사이트에 있는 URL 목록을 검색엔진에 알려주는 파일. 여기 올라 있다고 전부 색인된다는 뜻은 아니고, 검색엔진이 그 주소를 알게 될 뿐이다.

발행한 글 19편보다 사이트맵에 찍힌 URL이 27개로 더 많이 나와서, 둘을 나란히 두고 벌어진 칸을 봤다. 사이트맵 URL이 실제 글보다 많을 때 원인 찾는 법

robots.txt

검색엔진 봇에게 어느 경로를 긁어도 되는지 알려주는 파일. 여기서 막아두면 색인 자체가 안 된다.

색인 안 된 원인을 하나씩 지우는 순서에서 가장 먼저 robots.txt 차단 여부부터 확인했다. 30개 중 2개만 색인될 때 원인 찾는 법

noindex

이 페이지는 검색 결과에 내지 말라고 검색엔진에 지시하는 태그. 자동으로 만든 페이지 중 품질이 낮은 것을 걸러낼 때 쓴다.

자동 수집으로 만든 페이지 1,623개 중 1,585개에 noindex를 걸고 38개만 색인 대상으로 남겼다. ENOENT가 파일 이름만 바꿔가며 반복될 때 확인할 것

서치콘솔 URL 검사

구글 서치콘솔에서 주소 하나의 색인 상태를 확인하는 기능. 상태 조회는 API로 되지만, 색인 요청은 화면에서 직접 눌러야 한다.

사이트맵의 30개 URL을 이 기능으로 전수 조회해 구글이 돌려준 상태 문자열 그대로 세 갈래로 나눴다. 30개 중 2개만 색인될 때 원인 찾는 법

AI Overview

검색 결과 맨 위에 구글이 AI로 요약해 보여주는 답변. 이게 뜬 질의는 그 아래 일반 결과를 클릭할 이유가 줄어든다.

같은 계정의 다른 사이트는 색인이 됐는데도 노출 135에 클릭 2였고, 질의 8개 중 6개 위에 AI Overview가 떠 있었다. 30개 중 2개만 색인될 때 원인 찾는 법

유입 링크

다른 사이트에서 내 페이지로 걸어둔 링크. 검색엔진이 새 페이지를 찾아오는 통로 중 하나라, 이게 없으면 사이트맵 제출에만 기대게 된다.

robots·사이트맵·canonical·noindex를 다 지우고 남은 원인이, 30일 동안 외부에 하나도 심지 않은 유입 링크 0개였다. 30개 중 2개만 색인될 때 원인 찾는 법

SEO

검색 결과에 잘 뜨도록 페이지를 다듬는 작업 전체를 가리키는 말. 화면 안에서 보기 좋게 분류하는 것과는 다르다 — 검색으로 들어올 사람은 제목 문자열만 본다.

카테고리로 글을 묶어놓고 끝났다고 여겼는데, "이게 seo에 걸릴 거 아냐"라는 지적을 받고서야 제목에 검색어가 있어야 한다는 걸 다시 봤다. 연재 글 제목에 검색어 넣는 법

사람 없이 돌리기 9개

launchd

macOS에서 정해진 시각에 프로그램을 대신 실행해 주는 시스템 스케줄러. 윈도우의 작업 스케줄러나 리눅스의 cron에 해당하는 맥 쪽 장치다.

윈도우용 자동화 스크립트를 맥으로 옮기면서, 그 스크립트를 깨워줄 장치도 새로 만들어야 했다. 윈도우 자동화를 맥으로 옮길 때 brew not found부터 볼 것

PATH

셸이 명령 이름만으로 실행 파일을 찾을 때 뒤지는 폴더 목록. 여기 없는 폴더에 설치된 도구는 이름만 쳐서는 안 잡힌다.

brew와 yt-dlp를 분명히 설치했는데도 새 세션에서는 "없다"는 에러가 반복됐다. 원인은 설치가 아니라 PATH였다. 윈도우 자동화를 맥으로 옮길 때 brew not found부터 볼 것

허용 목록 (permissions.allow)

에이전트가 승인 없이 바로 실행해도 되는 명령 패턴을 적어두는 설정. 정확히 적어도 그 폴더를 신뢰한 기록이 없으면 통째로 무시된다.

23줄을 정확히 적어뒀는데도 실행 로그 첫 줄에 이 설정을 무시한다는 문구가 찍혀 있었다. 클로드 코드 권한 설정이 통째로 무시될 때 확인할 것

작업 디렉터리

그 세션이 접근할 수 있다고 정해진 폴더 범위. 한 프로젝트로 고정된 세션은 그 폴더 밖의 파일(예: 홈 디렉터리의 설정)을 읽지 못한다.

무인 발행 세션이 승인 요구로 멈췄는데, 원인을 보려고 연 홈의 설정 파일마저 같은 경계에 막혀 세션 안에서는 진단이 안 됐다. settings.json 못 읽어 무인 실행이 멈출 때 푸는 법

파이프 (|)

명령 하나의 출력을 다음 명령의 입력으로 그대로 잇는 기호. 파이프로 이은 명령은 조각마다 따로 승인 판정을 받는다.

파이프를 떼고 조각만 따로 다시 쳐보고서야, 막힌 게 파이프가 아니라 앞쪽 명령 자체라는 걸 갈랐다. 클로드 코드 승인 프롬프트를 덜 뜨게 하는 법

sleep / until 루프

sleep은 정해진 시간만큼 그냥 멈추는 것이고, until 루프는 조건이 참이 될 때까지 짧게 반복해서 확인하는 것이다. 백그라운드 작업 결과를 기다릴 때는 후자를 쓴다.

sleep 240으로 기다리다가 명령 자체가 차단됐고, 조건을 보는 루프로 바꾸자 통과했다. 클로드 코드에서 백그라운드 작업 결과 기다리는 법

ENOENT

파일이나 폴더가 없다는 뜻의 에러 코드. 아직 만들어지지 않은 산출물을 읽으려 하거나, 스크립트가 빌드보다 먼저 돌 때 난다.

빌드가 만들어내는 파일을 빌드 앞 단계에서 읽으려다, 파일 이름만 바뀌며 이 에러가 반복됐다. ENOENT가 파일 이름만 바꿔가며 반복될 때 확인할 것

종료 코드

명령이 끝날 때 성공인지 실패인지를 알려주는 숫자. 0은 성공, 0이 아니면 어딘가 실패했다는 뜻이다.

발행 글에 새 필수 항목 게이트를 걸자, 그날부터 상태 점검이 종료 코드 1로 끝났다. 사이트맵 URL이 실제 글보다 많을 때 원인 찾는 법

게이트

발행이나 배포 전에 반드시 통과해야 하는 자동 검사 하나하나를 부르는 말. 여러 개를 이어 붙였을 때 앞쪽 하나가 죽으면 뒤 검사가 통째로 건너뛰어질 수 있다.

검사 다섯 개를 하나로 묶어뒀는데 맨 앞 빌드가 죽자 "build failed, skipping the rest" 한 줄만 받았다. 글 검사기가 build failed 한 줄로 멈출 때 고치는 법

글과 자동화 파이프라인 9개

CLAUDE.md

그 프로젝트에서 에이전트가 세션마다 자동으로 읽는 지시문 파일. 판단 기준을 바꾸려면 그 자리에서 매번 다시 설득하는 대신 이 파일을 고친다.

AI가 매번 안 되는 이유부터 답해서, 그 자리에서 설득하는 대신 CLAUDE.md를 고쳐 기준을 옮겼다. CLAUDE.md를 프로젝트 여러 개에 나눠 쓰는 법

frontmatter

글 파일 맨 위에 붙는 설정 블록. 발행 여부·제목·날짜 같은 값이 여기 들어가고, 본문과 달리 기계가 읽어 판단에 쓴다.

글 전체를 다시 쓰라고 시켰더니, frontmatter의 발행 스위치 줄까지 같이 날아갈 뻔했다. AI에게 글 고치라고 시킬 때 프롬프트에 꼭 넣을 것

발행 스위치 (publish)

frontmatter 안에서 그 글을 사이트에 낼지 말지를 정하는 값 하나. 이 줄이 지워지면 글이 목록에서 조용히 내려간다.

다시 쓰기는 곧 덮어쓰기라, "그대로 둬"라는 말만으로는 이 줄이 지켜지지 않았다. AI에게 글 고치라고 시킬 때 프롬프트에 꼭 넣을 것

서브에이전트

메인 세션과 별도로 도는 보조 에이전트. 글 한 편, 작업 하나처럼 쪼개 맡기면 그 안의 맥락이 서로 섞이지 않는다.

발행된 글 전부를 다시 쓰게 하면서, 글 한 편에 서브에이전트 하나씩 붙였다. AI에게 글 고치라고 시킬 때 프롬프트에 꼭 넣을 것

tool_use_error

도구 호출 자체가 실패했을 때 로그에 붙는 표준 태그. 로그에서 진짜 실패만 세려면 이런 표준 태그 기준으로 걸러야 한다.

"error"·"failed" 같은 문자열로 실패를 세던 추출기가 정상 출력까지 실패로 올렸다. 로그 실패 집계에서 tool_use_error로 진짜만 거르는 법

빌드

소스 코드와 데이터를 실제 사이트 파일로 만들어내는 과정. 사이트맵이나 집계 숫자처럼 빌드가 만들어내는 산출물은, 빌드 뒤에 오는 스크립트만 읽을 수 있다.

빌드 산출물을 읽는 색인 정책 스크립트를 빌드 앞에 뒀다가 두 번 죽이고서야 순서를 뒤집었다. ENOENT가 파일 이름만 바꿔가며 반복될 때 확인할 것

마스킹

로그나 출력에서 비밀값을 가려 화면에 안 보이게 지우는 처리. 기준을 너무 넓게 잡으면 지우면 안 되는 정상 문구까지 같이 지워진다.

키워드 뒤를 통째로 지우는 규칙이 정상 에러 문구인 "denied"까지 같이 지워서, 판정 기준을 길이와 숫자 포함 여부로 바꿨다. 클로드 코드 세션 로그에서 작업일지 자동으로 뽑기

정규식

문자열에서 특정 패턴을 찾아내는 규칙을 적는 표기법. 발급 토큰처럼 정해진 모양이 있는 값을 잡아낼 때 쓴다.

비밀값을 걸러내려고 발급 토큰 모양 등 일곱 종류의 정규식을 만들었다. 클로드 코드 세션 로그에서 작업일지 자동으로 뽑기

자격증명

서비스에 로그인하거나 API를 호출할 때 신원을 증명하는 값. API 키·토큰·비밀번호를 통틀어 부르는 말이다.

윈도우에서 맥으로 옮기며 무엇을 복사해야 하는지 몰라 "자격증명 3개가 뭐지?"라고 되물었다. 윈도우 자동화를 맥으로 옮길 때 brew not found부터 볼 것

돈이 걸린 자동화 6개

401

요청한 사람이 누구인지 증명하지 못했다는 인증 실패 응답 코드. 서버는 멀쩡히 살아 있지만 그 요청만 거부되는 상태다.

실거래 매매 봇의 주문 호출이 401로 막혀 있었는데, 프로세스는 계속 떠 있어서 한참 몰랐다. 자동매매 봇이 인증에 막혔는지 감시하는 법

허용 IP

그 주소에서 오는 요청만 받아주고 나머지는 막는 보안 설정. 여기 등록 안 된 주소로 API를 부르면 401이 난다.

업비트 키에 등록해둔 허용 IP 목록에 지금 이 맥의 주소가 없어서 주문이 막혀 있었다. 자동매매 봇이 인증에 막혔는지 감시하는 법

IPv4 / IPv6

인터넷 주소 체계 두 종류. 업비트 같은 서비스는 IPv4만 허용 목록에 받고, 콜론이 든 값이 나오면 그건 IPv6라 등록조차 안 된다.

IP를 뽑는 명령이 IPv6 주소를 돌려주고 있어서, 화면에 찍힌 "허용 IP에 넣을 값"이 애초에 등록할 수 없는 값이었다. 업비트 API 401 no_authorization_ip 해결하는 법

그리드 (격자 매매)

가격 구간을 일정 간격으로 나눠, 떨어지면 사고 오르면 파는 자동매매 방식. 격자 하나하나가 매수·매도 주문 한 쌍이 된다.

코인 자동매매 소재로 그리드 전략을 골라 실제 주문 전에 과거 데이터로 먼저 검증했다. 무인 발행이 OAuth 만료로 멈출 때 확인할 것

백테스트

실제 돈을 쓰지 않고 과거 시세 데이터로 전략을 돌려 성과를 미리 확인하는 것. 결과가 좋아도 실제 시장에서 같은 성과가 나온다는 보장은 아니다.

그리드 전략을 실거래에 걸기 전에, 과거 분봉으로 돌리는 백테스터를 먼저 만들었다. 무인 발행이 OAuth 만료로 멈출 때 확인할 것

페이퍼 트레이딩

실제 주문을 넣지 않고 판단만 실거래처럼 굴려보는 검증 단계. 백테스트 다음, 실거래 이전 단계다.

3일 검증에 막 들어간 시점이었는데, 그 결과가 나오기도 전에 결과 글을 써서 예약 발행에 걸어둔 게 문제였다. 무인 발행이 OAuth 만료로 멈출 때 확인할 것