W5 Homework W5 과제 워크북 0 / 100 점
📝 HOMEWORK
WEEK 5

멀티 스케줄 + Vector DB
24/7 자동 운영

총점 100점 · 필수 60 + 심화 40
🎯 W5 학습 목표 복습

여러 시간대 루틴 + Supabase pgvector + 에러 자동 복구. 장기 안정 운영을 가능하게 하는 주차.

🔧 핵심 도구
Supabase pgvector
OpenAI Embedding
Error Trigger
⏱ 예상 시간
필수 4~5시간
심화 +3시간
📊 과제 배점표
과제 1
20
과제 2
20
과제 3
20
과제 4
20
과제 5
20
합계 100점 · 필수 60 + 심화 40
📍 빠른 이동
🔴 REQUIRED — 과제 1
멀티 스케줄 4종 시장 시간대 자동 운영
배점 20

한국장 / 미국장 / 암호화폐 / 매크로 4개 시간대 루틴을 서로 다른 Schedule Trigger로 분리 운영.

필수 요구사항
  • 한국장 개장 브리핑: 평일 08:30 (월~금)
  • 한국장 마감 리포트: 평일 15:45
  • 미국장 개장 브리핑: 평일 22:30
  • 암호화폐 체크: 4시간 간격 24/7
  • 모든 워크플로 Timezone = Asia/Seoul 설정

Cron 표현식 치트시트

평일 08:30       : 30 8 * * 1-5
평일 15:45       : 45 15 * * 1-5
평일 22:30       : 30 22 * * 1-5
4시간마다 24/7   : 0 */4 * * *
매 30분          : */30 * * * *
⚠️ 중요: n8n Cloud 기본 Timezone은 UTC입니다. 워크플로 Settings → Timezone: Asia/Seoul 명시 필수. 안 하면 한국시간 기준으로 9시간 늦게 실행됩니다.
채점 기준 (20점 만점)
A. 4개 Schedule 정확 설정5점
B. 시간대별 루틴 내용 차별화5점
C. Timezone 설정3점
D. 3일 이상 실행 기록4점
E. Sticky Note 워크플로 설명3점
🔴 REQUIRED — 과제 2
Supabase pgvector 환경 구축
배점 20

Supabase 프로젝트 생성 + pgvector 활성화 + documents 테이블 + match_documents RPC 함수 배포.

필수 요구사항
  • Supabase 무료 플랜 계정 + 프로젝트 생성
  • SQL Editor에서 CREATE EXTENSION vector 실행
  • documents 테이블 (1536차원 embedding 컬럼 포함) 생성
  • match_documents RPC 함수 배포
  • n8n Credentials에 Supabase URL + Service Role Key 등록

필수 SQL 스크립트

-- pgvector 확장
CREATE EXTENSION IF NOT EXISTS vector;

-- documents 테이블
CREATE TABLE documents (
  id uuid PRIMARY KEY DEFAULT gen_random_uuid(),
  content text,
  metadata jsonb,
  embedding vector(1536),
  created_at timestamptz DEFAULT now()
);

-- RPC 함수 (유사도 검색)
CREATE OR REPLACE FUNCTION match_documents(
  query_embedding vector(1536),
  match_count int DEFAULT 5
) RETURNS TABLE (
  id uuid, content text, metadata jsonb, similarity float
) LANGUAGE plpgsql AS $$
BEGIN
  RETURN QUERY
  SELECT d.id, d.content, d.metadata,
         1 - (d.embedding <=> query_embedding) AS similarity
  FROM documents d
  ORDER BY d.embedding <=> query_embedding
  LIMIT match_count;
END; $$;
🔒 Service Role Key 보안: 절대 GitHub·Discord에 공개 금지. n8n Credential에만 저장하고, 외부 공유 전 anon key로 교체.
채점 기준 (20점 만점)
A. Supabase 프로젝트 + pgvector 활성화4점
B. SQL 정확 실행5점
C. 테이블 스키마 완성도4점
D. RPC 함수 작동 확인4점
E. Key 보안 관리3점
🔴 REQUIRED — 과제 3
문서 10개 Vector DB 저장 + 의미 검색 검증
배점 20

관심 있는 금융 메모·뉴스·연구자료 10개를 임베딩 저장하고 의미 기반 검색이 작동하는지 실증.

필수 요구사항
  • 금융 관련 문서·메모·요약 10건 수집 (각 100~500자)
  • OpenAI Embeddings 노드(text-embedding-3-small)로 임베딩
  • Supabase Vector Store Insert 모드로 저장
  • metadata에 category, source, date 3개 태그 필수
  • 다양한 질문 5개로 Retrieve → 유사도 점수 분석
채점 기준 (20점 만점)
A. 10건 정상 저장4점
B. metadata 태그 체계4점
C. 5개 테스트 질문 다양성4점
D. 유사도 결과 해석 리포트5점
E. 부정확 케이스 개선 제안3점
🟣 ADVANCED — 과제 4
Switch 기반 Discord 3채널 차등 발송
배점 20

verdict + confidence 기반으로 긴급/일반/로그 3개 채널을 자동 분기 발송하는 시스템.

필수 요구사항
  • Discord 서로 다른 3개 채널 + Webhook 각각 설정
  • Switch 노드: verdict·confidence 조합으로 3분기
  • 긴급 채널: BUY/SELL + conf≥4 → @everyone + 빨강 Embed
  • 일반 채널: WATCH → 노랑 Embed + 이모지
  • 로그 채널: HOLD + 모든 실행 기록 (성공·실패)
채점 기준 (20점 만점)
A. 3채널 설계 논리4점
B. Switch 분기 조건5점
C. 채널별 Embed 차별화5점
D. @everyone 톤 조절3점
E. 로그 채널 실사용성3점
🟣 ADVANCED — 과제 5
Error Trigger로 실패 자동 감지 + 재시도
배점 20

운영 중 발생하는 실패를 자동 감지 → 분류 → 재시도 또는 알림하는 에러 복구 시스템.

필수 요구사항
  • 별도 Error Workflow 생성 (첫 노드: Error Trigger)
  • 대상 워크플로 Settings → Error Workflow 연결
  • 에러 메시지에 '429' 또는 'EGW00201' 포함 시 Wait 5초 → Execute Workflow로 재시도
  • 재시도성 아닌 에러는 Discord 전용 채널에 상세 알림
  • 일부러 API Key 틀리게 해서 실제 발동 확인 + 로그 캡처

Error Workflow 구조

Error Trigger (원본 워크플로 실패 시 자동 발화)
    ↓
IF 노드 ($json.execution.error.message contains "429" || "EGW00201")
    ├─ TRUE  → Wait 5s → Execute Workflow (원본 재시도)
    └─ FALSE → Discord 긴급 알림 (@here 포함)
⚠️ 함정: Error Workflow를 만들어도 대상 워크플로의 Settings에서 Error Workflow로 연결하지 않으면 작동 안 함. 양방향 설정 필수.
채점 기준 (20점 만점)
A. Error Trigger 설정3점
B. 워크플로 연결 완료3점
C. 에러 분류 로직5점
D. 재시도 구현4점
E. 실제 발동 증거5점
Submit

📤 제출 방법 + 기한

⏰ 제출 기한: 다음 주 수업 시작 전까지. 지연 시 하루당 -2점.
📝 W5 HOMEWORK COMPLETE
Multi-Schedule · Supabase · Error Recovery
5 tasks · 100 pt · 4~8 hours