한 줄 요약: 봇이 하루 3번 뉴스에서 용어를 뽑아 위키에 자동으로 붙인다. 자동화는 성공했는데, 그 결과물이 잘 안 읽혔다. 이번 주는 코드를 크게 새로 짜는 대신, 자동으로 쌓인 것과 읽히는 것 사이에 사람 손을 어디에 얼마나 넣을지를 네 자리에서 정한 한 주다.
이런 분께 도움이 돼요: 자동화를 붙였더니 결과물이 오히려 안 읽혀서 곤란한 분, 매일 쌓이는 자료가 낱개라 머리에 안 들어오는 분, “이건 봇한테 시킬까 내가 할까”를 매번 고민하는 분.
시작점 — 봇은 잘 도는데, 위키가 안 읽혔다
지난 주에 봇이 위키에 글을 자동으로 쌓기 시작했다. RSS에서 그날 기사를 모으고, LLM이 반도체·배터리·AI로 분류하고, 섹터당 키워드 1개를 뽑아 용어 사전에 붙인다. 하루 3번, 노트북을 덮어도 돈다.
성공한 자동화다. 그런데 한 주 굴려놓고 보니 결과물에 문제가 세 겹 있었다.
| 증상 | 뭐가 문제인가 |
|---|---|
| 용어 사전에 “K배터리 소재 경쟁력” 같은 게 올라와 있다 | 이건 한 문장으로 정의되는 용어가 아니라 분석성 쟁점이다 |
HBM과 NVHBM이 사전에서 다섯 칸 떨어져 있다 | 한 식구인데 관계가 어디에도 안 적힌다 |
| 지도에서 용어를 눌러도 뭘 눌렀는지 안 보인다 | 제목이 화면 맨 위에 붙어서 눈에 들어오는 건 ‘다음 용어’다 |
세 개 다 “봇이 잘못했다”가 아니다. 봇은 시킨 대로 했고, 규칙을 만들 때 이 상황을 몰랐던 것이다. 그래서 이번 주는 그 자리마다 사람 손을 넣었다.
자리 1 (8/27) — 용어 사전에 용어가 아닌 게 섞였다
용어 사전을 보다가 “K배터리 소재 경쟁력”이 용어처럼 올라와 있는 걸 봤다. 봇이 “오늘의 키워드 1개”를 억지로 용어 자리에 넣다 보니 생긴 일이다.
갈래를 셋 놓고 골랐다.
- 라벨만 넓히기 (“용어” → “키워드”)
- 봇이 진짜 용어만 뽑게 프롬프트 고치기
- 용어 사전 / 이슈 노트로 아예 분리
3번을 골랐다. 정의되는 것과 정의 안 되는 것은 읽는 목적이 다르기 때문이다. (“이 단어 뜻이 뭐지?” vs “이 쟁점 어떻게 돌아가지?”)
재현 — 봇 출력에 칸 하나 추가하기
n8n 위키용 LLM은 출력 형식을 Structured Output Parser로 강제하고 있었다. 여기에 유형 필드를 더했다.
유형: "용어" | "이슈"
- 용어 = 한 문장으로 정의되는 기술·제품·규격·공정 이름
- 이슈 = 정의되지 않는 동향·전망·분석·쟁점
- 프롬프트에 위 판정 기준을 넣고
- Structured Output Parser 스키마에도
유형을 같이 추가 (프롬프트만 고치면 파서가 막는다 — 필드를 늘릴 땐 스키마도 함께) - 경로 만드는 Code 노드에서
유형이 “이슈”면issues-, 아니면glossary-로 저장 경로를 가름
사이트 쪽은 판정 규칙을 새로 만들지 않았다. 사이드바는 원래 “주차 없는 글 = 봇 자동 생성”으로 묶고 있었고, 그 안에서 파일명 앞부분으로 한 단계만 더 쪼갰다.
자리 2 (8/31) — 낱개로 쌓이니 큰 그림이 안 보였다
용어는 잘 쌓이는데, 봐도 머릿속에 지도가 안 생겼다. 봇은 뉴스 나온 순서대로 평평하게 붙인다.
## 차세대 HBM
## DSP
## Arm 기반 메인프레임
## HBM
## NVHBM
...
HBM과 NVHBM은 사실상 한 식구인데 사전에서는 멀리 떨어져 있고, 새 용어 HBC가 들어와도 “HBM의 저비용 대안”이라는 관계가 안 적힌다.
Before → After
| Before (용어 사전만) | After (지도를 얹음) | |
|---|---|---|
| 모양 | 시간순 평평한 목록 | 위→아래 계층 나무 |
| 보는 순간 | ”이 단어 뜻이 뭐지?" | "이게 큰 그림에서 어디 붙지?” |
HBM·NVHBM 관계 | 안 적힘 | 같은 가지에 나란히 |
어떻게 만들었나 (재현)
- 두 필요를 갈랐다 — 용어 사전(봇이 채우는 흐르는 피드)은 그대로 두고, 그 위에 지식 지도(내가 골라 넣는 정리본)를 새로 얹는다. 성격이 다르니 섞지 않는다.
- 옵시디언으로 모양부터 — 옵시디언은 사이트가 쓰는
src/content/wiki/폴더를 그대로 연다. 새 도구가 아니라 같은 폴더의 다른 창이다. 나무를 이리저리 옮겨보며 구조를 실험하고, 굳으면 사이트로. (옵시디언 설정 폴더.obsidian/은.gitignore에 넣는다.) - 초안은 AI, 판정은 나 — 용어 사전의 30여 개를 나무에 다 걸어 초안을 만들게 하고, 나는 옵시디언으로 열어 각 지도 파일 아래
확인해 주세요칸에 답을 적었다. 이번에 정한 것:
| 판정 | 결정 | 이유 |
|---|---|---|
| QD-OLED를 반도체 지도에 둘까 | 뺐다 | 원리는 닮았어도 디스플레이는 별개 분야 |
| HBM / 차세대 HBM 중복 | 하나로 병합 | ”요즘 HBM이 이 방향으로 발전 중”이라고 서술 |
| 배터리 분리막 이슈 | 소재 밑 → 시장 동향으로 이동 | 소재 기술이 아니라 회사 사업 구조 얘기 |
| 전해질 가지 (용어 0개) | 남기고 오히려 키움 | 저온 유동성·화재 방지가 배터리 핵심 주제. 곧 들어올 자리 |
- 추측한 자리는 공식 자료로 못 박기 — 배터리 만드는 공정을 일반 지식으로
믹싱→코팅→건조→압연이라고만 적었다가 “슬리팅·노칭이 빠졌다”는 지적을 받고, LG에너지솔루션 제조공정 자료 기준으로 다시 맞췄다. - 게시 — 옵시디언 링크
[[glossary-semiconductor#HBM|HBM]]는 웹에서 글자 그대로 보인다.[HBM](/wiki/glossary-semiconductor#hbm)형식으로 바꾸고, 앵커 30여 개(#hbm,#포터블-ssd등)가 실제로 걸리는지 미리보기로 전부 눌러봤다. 사이드바에는 “지식 지도” 칸을 따로 신설(용어 사전 칸에 섞이지 않게).
여기 왼쪽 사이드바 "지식 지도" 칸이 새로 생긴 화면을 넣으면 좋아요.
자리 3 (8/31) — 새 용어를 지도에 어떻게 넣지: 자동화 대신 ‘주간 배치’
지도를 만들고 나니 다음 질문이 왔다. 봇이 매일 새 용어를 붙이는데, 그걸 지도에는 누가 넣나?
봇이 자동으로 넣게 할 수도 있었다 (n8n에 Claude가 이미 있으니). 안 했다. 그러면 내가 분류를 직접 안 하게 되면서 구조 감각이 안 생긴다. “이거 왜 여기지?” 5분이 이 프로젝트에서 제일 공부되는 시간인데, 그걸 봇한테 넘기면 남는 게 없다.
그래서 사람이 하되, 매번이 아니라 주간 배치로 정했다.
| 언제 | 무엇 |
|---|---|
| 평소 | 봇이 용어 사전만 채움 (지도는 안 건드림) |
| 매주 수요일 | 주간 회고 하면서 그 주 새 용어를 지도에 일괄 편입 |
- 주간 루틴에 “새 용어 지도 편입” 단계를 추가 (학습메이트가 넣을 위치 초안 → 내가 검수)
- n8n에 수요일 오전 9시 텔레그램 알람을 새로 만듦 (기존 뉴스 워크플로와 같은 자격증명·Chat ID, Schedule Trigger
Weeks / Wednesday / 9am, 타임존 Asia/Seoul). 알람이 방아쇠다.
자리 4 (9/1) — 눌러도 뭘 눌렀는지 안 보였다
지도에서 용어를 누르면 그 제목이 헤더 바로 밑에 딱 붙었다. 그러니 눈에 들어오는 건 정작 그 아래 ‘다음 용어’였다.
막힘 → 해결
- 제목을 화면 위쪽 40% 지점에 세운다 →
.prose :is(h1,h2,h3,h4)[id] { scroll-margin-top: 40vh; } - “여기야” 표시를 준다 →
:target에 2.4초 노란 배경 플래시 - 맨 끝 용어도 가운데까지 올라오게 →
.col-main { padding-bottom: 45vh; }(여백이 없으면 브라우저가 페이지 끝에서 멈춰 맨 아래에 붙는다) - 한 번 더 막혔다 — 브라우저가
#앵커로 스크롤하는 순간엔 아직 글꼴·툴팁 밑줄이 안 붙어서 글 길이가 다르다. 그래서 엉뚱한 자리에 멈춘다.anchor-center.ts가requestAnimationFrame·document.fonts.ready·load시점에 위치를 다시 맞춘다.
용어를 눌렀을 때 제목이 화면 40% 지점에 노란 배경으로 뜬 화면을 넣으면 좋아요.
한 주를 꿰는 실
네 자리가 다르게 생겼지만 실은 하나다.
봇이 자동으로 채우는 건 ‘흐름’이고, 그걸 읽히게 만드는 건 ‘사람 손’이다.
- 자리 1 — 흐름에 섞인 걸 골라냄 (용어 / 이슈)
- 자리 2 — 흐름 위에 사람이 만든 지도를 얹음
- 자리 3 — 그 지도에 손을 “매번”이 아니라 “주간 배치”로 넣기로
- 자리 4 — 그렇게 만든 지도가 실제로 읽히게 손질
배운 것
| 배운 것 | 왜 중요한가 |
|---|---|
| 자동화의 완성은 “돌아간다”가 아니라 “읽힌다”까지다 | 봇이 용어를 100개 모아줘도 관계가 안 적히면 지식이 아니다 |
| 성격이 다른 건 한 칸에 안 넣는다 | 용어/이슈, 봇이 채우는 것/내가 쓰는 것 — 이번 주 판단이 전부 이 한 줄 |
| 초안은 AI, 판정은 나 | 맨땅 분류는 노동이지만 “이거 왜 여기지?”는 공부다 |
| 자동화에 사람 손은 “매번”이 아니라 “주간 배치”로 | 매번 알람은 피곤하다. 방아쇠 하나 두고 몰아서 처리 |
#앵커 스크롤은 글 길이가 확정된 뒤 다시 맞춘다 | 글꼴·툴팁이 붙기 전엔 위치가 어긋난다 |
가져다 쓸 것
용어 vs 이슈 판정 기준
- 용어 = 한 문장으로 정의되는 기술·제품·규격·공정 이름 (예: HBM, LFP, 슬리팅)
- 이슈 = 정의되지 않는 동향·전망·분석·쟁점 (예: “K배터리 소재 경쟁력”)
LLM 출력에 필드 하나 늘릴 때 체크리스트 (n8n Structured Output)
- 프롬프트에 새 필드의 판정 기준을 명시
- Structured Output Parser 스키마에도 같은 필드 추가 (안 하면 파서가 막음)
- 그 필드를 쓰는 다운스트림 노드(경로 분기 등) 수정
- 워크플로 수동 실행으로 실제 값이 갈리는지 확인
옵시디언 → 사이트 게시 전 체크리스트
[[파일#앵커|표시]]→[표시](/wiki/파일#앵커)로 링크 변환- 앵커 규칙: 소문자, 공백은
-, 한글은 그대로 (## 포터블 SSD→#포터블-ssd) - 미리보기에서 앵커를 실제로 눌러 전부 확인
.obsidian/는.gitignore에- 성격 다른 글은 사이드바에서 칸을 나눔
이어지는 두 편: 용어 vs 이슈를 가른 하루 · 지식 지도를 얹은 하루