용어 사전
노드Node
한 가지 일을 맡은 작업 단위. 코드에서는 모듈(Module), 컴포넌트(Component)라고도 부른다
프로그램이 하는 일을 작게 나눴을 때, 그 한 칸을 노드라고 부릅니다. 노드는 언제나 세 가지로 설명할 수 있습니다. 무엇을 받는지(입력), 무슨 일을 하는지, 무엇을 넘기는지(출력)입니다.
그림에서 본문 가져오기 노드는 글 주소를 받아 본문 글자를 넘깁니다. 이 노드는 요약이 어떻게 쓰이는지, 슬랙에 어떻게 올라가는지 몰라도 됩니다. 받기로 한 것을 받아 넘기기로 한 것을 넘기면 제 할 일을 다 한 것입니다. 노드로 나눈다는 건 이렇게 맡은 일의 경계를 긋는 일입니다.
노드의 크기는 정해져 있지 않습니다
코드에서는 함수 하나가 노드일 수도 있고, 파일 하나나 서버 하나가 노드일 수도 있습니다. 크기보다 중요한 기준은 한 가지 일만 맡았는가입니다. 본문을 가져와서 요약까지 하는 노드는 두 가지 일을 하고 있으니, 둘로 나누는 편이 다루기 쉽습니다.
노드로 나눠 보면 원인을 찾기 쉽습니다
슬랙에 올라온 요약이 이상하다고 해서 원인이 요약 요청에 있다는 보장은 없습니다. 본문 가져오기가 본문 대신 광고 문구를 넘겼을 수도 있습니다. 노드마다 입력과 출력을 확인해 보면, 값이 처음 틀어진 노드가 원인이 있는 곳입니다. 문제가 보이는 노드와 원인이 있는 노드는 다를 때가 많습니다.
아래에서 값 하나를 네 노드에 차례로 통과시켜 보세요. 위에서 '본문 가져오기 고장'을 고르면, 어느 노드에서 값이 처음 틀어지는지 표로 볼 수 있습니다.
| 노드 | 넘긴 값 |
|---|---|
| 새 글 확인 | … |
| 본문 가져오기 | … |
| 요약 요청 | … |
| 슬랙 전송 | … |
AI에게 맡길 때
노드 단위로 말하면 AI가 고칠 범위가 좁아집니다.
"요약이 이상해.
본문 가져오기노드만 확인해 줘. 입력은 글 주소, 출력은 본문 글자야. 다른 노드는 건드리지 마."
"요약이 이상해, 고쳐 줘"라고만 하면 AI는 문제가 보이는 요약 요청부터 고치기 쉽습니다. 원인이 다른 노드에 있다면 그 수정은 증상만 가립니다.