2026-09-18 ServiceOn Blog 작업일지입니다. 오늘은 23건의 작업을 진행했습니다.
구독 메일 (그 밖의 뉴스)
현상/기능
- 메일 하단 더보기 우측끝에 "그 밖의 뉴스" 추가, 링크 https://blog.serviceon.kr/cards/extra-news
작업
- n8n Build Digest moreHtml만 좌(더보기) / 우(그 밖의 뉴스)로 변경. 다른 함수 미변경. 실발송 없음
구독 메일 (태그라인)
현상/기능
- 메일 태그라인을 "오늘 아침, 당신을 깨울 하루의 인사이트"로 변경
- n8n Build Digest TAGLINE만 변경함. 사이트 문구·다른 함수 미변경. 실발송 없음
구독 메일 (자동 09:00)
현상/기능
- 자동 발송을 9시로 변경
- n8n Daily 09:30 Trigger 시각을 09:00으로 변경. 노드명 유지(Build Digest 참조)
- 발송 로그 구분 '자동 09:00'
- vercel.json cron '0 0 * * *' (09:00 KST 백업)
- 새 모듈 없음. 실발송 없음
구독 메일 (신청 즉시 소식지)
현상/기능
- 구독 성공 문구 변경 및 구독신청 시 즉시 메일 발송
- SubscribePanel 성공 문구를 '오늘자 소식지 발송 + 매일 아침 9시'로 변경함
- sendSubscribeDigest에서 저장 후 n8n 웹훅 { source: subscribe, email } 호출하도록 함
- n8n에서 해당 이메일만 발송하도록 함, 로그 source=subscribe
- 새 모듈 없음. 웹 운영 반영은 배포 필요
구독 메일 (현황 좌우·아이콘)
현상/기능
- 메일양식에 추가한 프로젝트 현황과 AI 자동화 현황을 좌우 배치, 타이틀 앞 아이콘 추가, 글자를 2배 크게, 역동적으로 보이도록 함
- n8n Build Digest만 수정. 현황 2열 카드 구성
- 🚀/⚡ 아이콘 추가, 제목 26px, 기획·진행·종료 큰 숫자로 변경
- 다른 함수 미변경. 실발송 없음
관리자 구독자 (좌우 배치)
현상/기능
- /subscribers 페이지가 상하 배치로 되어 있음, 좌우 배치로 변경
- subscribers/에서 구독자(좌)·발송 로그(우) 2열 구조로 변경함. 다른 함수 미변경
구독 메일 (발송 로그 · 본문 현황)
현상/기능
- n8n 자동이든 관리자페이지에서 수동이든 메일발송로그 정보 반영
- 메일 본문양식에서 글자 크기를 1px 줄이고 전체 줄 간격을 줄여서 blog.serviceon.kr / 구독 해지 위에 프로젝트 현황과 AI 자동화 현황을 추가
- 관련 저장 구조를 조정함
- n8n에 Load Site Status 추가, 본문 글자/간격 축소, 프로젝트/AI 자동화 현황 추가
- 발송 후 Build Send Logs → Insert Send Log로 로그 기록(source=schedule/admin/manual)
- 관리자 /subscribers에 발송 로그 카드 추가, GET /api/subscribers/send-logs 구현
- @serviceon/shared에 BlogDigestSendLog 타입 추가 및 db map/call/mock 연결
- 실발송 없음. 관리자 UI 운영 반영은 배포 필요
구독 메일 (09:30 스케줄 · 지금 발송 웹훅)
현상/기능
- 매일 9시 30분 발송으로 변경, /subscribers 페이지의 지금 발송 버튼 웹훅 연결
- n8n SO-블로그 구독 메일의 Daily 09:30 Trigger를 09:30 Asia/Seoul로 설정. 웹훅 경로 유지(so-blog-digest-send-9am)
- apps/admin의 api/subscribers/send/에서 env 없을 시 운영 웹훅 URL로 호출하도록 함
- cron을 '30 0 * * *'로 설정(09:30 KST 백업, env 있을 때만)
- 실발송 없음. 운영 반영은 배포 필요
n8n 워크플로우 (구독 메일 재발송)
현상/기능
- gmail 설정을 완료하여 재발송 확인
- SO-블로그 구독 메일 실발송 execution 156 진행. From On Blog <admin@serviceon.kr>
- airforcz@gmail.com 250 수락(bc4c4560-487d-ce04-9917-b7f37d2bf8bb@serviceon.kr)
- airforcz@nate.com 250 수락(05ca13e2-4191-c6b5-4598-a4f121b0b215@serviceon.kr)
- 제목 'On Blog 0918 — AI 안전·규제·기술 격변의 하루'. 일간호 CTA '브리핑 보기' 확인
n8n 워크플로우 (구독 메일 일간호 CTA)
현상/기능
- 맨 상단 문구를 기사보기 대신 브리핑 보기로 변경
- Build Digest만 수정. 일간호 CTA를 '브리핑 보기'로 변경, 카드는 '기사보기' 유지. 웹/관리자/DB 미변경. 실발송 없음
n8n 워크플로우 (구독 메일 매거진 본문)
현상/기능
- ITWORLD식 다크 매거진(로고·태그라인·날짜·일간호 큰 제목·기사보기·썸네일 카드) 형태로 메일 본문 구성 필요
- SO-블로그 구독 메일(7p6KtUGdcYAOnJfv)만 수정. 웹/관리자/DB 미변경
- Load Today Posts에 image_url, SUBSTRING(content,1,8000) 추가하여 카드 썸네일 지원
- Build Digest를 다크 매거진 HTML로 변경: 전원 아이콘 + 태그라인 + 'yyyy년 MM월 dd일' + 일간호 큰 제목/요약/기사보기 + 카드 5개(썸네일·제목·요약·기사보기) + 더보기 + 해지
- 참고 레이아웃에 없는 사이트 안내 문단은 제거함
- 발행 6805ad70-2083-43ff-9541-093feaa7689f. pin 테스트 execution 155. 실발송 없음
n8n 워크플로우 (Daum SMTP 연결·발송)
현상/기능
- 자격증명 이름은 admin@serviceon.kr SMTP임
- Send Digest Email SMTP에 자격증명 'admin@serviceon.kr SMTP'(n8n-워크플로우) 연결함. Gmail 발송 노드 삭제함
- 발행 84c2552e-8cf4-46e3-81ac-0a54fc4591ea
- 실발송 execution 154 진행: airforcz@nate.com 성공(From admin@serviceon.kr), airforcz@gmail.com 실패(Gmail이 serviceon.kr SPF/DKIM 미인증으로 550 차단)
n8n 워크플로우 (구독 메일 Daum SMTP)
현상/기능
- admin@serviceon.kr은 imap.daum.net을 사용하며 연결 방법 확인 및 변경 필요
- SO-블로그 구독 메일 초안에서 Gmail 발송 노드를 비활성화함
- Send Digest Email SMTP(emailSend) 노드 추가, From 'On Blog <admin@serviceon.kr>'로 설정
- SMTP 자격증명은 n8n에 없어(비밀번호를 MCP로 만들 수 없음) 발행하지 않음, 운영은 기존 Gmail 발행본 유지
- 다음 메일 IMAP/SMTP를 켠 뒤 n8n에 smtp.daum.net:465 SSL, user admin@serviceon.kr 자격증명을 만들면 연결·발행 가능함
n8n 워크플로우 (구독 메일 실발송 시도)
현상/기능
- 구독자 중 동작중인 2명에 대한 발송 여부 확인
- 활성 구독자 2명(airforcz@gmail.com, airforcz@nate.com)에게 오늘 다이제스트 발송 시도. execution 153
- Gmail OAuth 'Gmail account' 재연결 필요로 실패, 메일은 나가지 않음
- n8n UI에서 자격증명 재연결 후 재시도 가능
n8n 워크플로우 (구독 메일 카드 5개·더보기)
현상/기능
- 이어서 볼 카드를 5개로 하고 그 아래 더보기 구성, 실제 메일발송 가능 여부 확인
- n8n SO-블로그 구독 메일 Build Digest에서 카드 최대 5건으로 제한
- 아래 더보기 → /cards?date=YYYY-MM-DD 연결. 발행함
- 실발송은 하지 않음. Gmail·활성 구독자·당일 글은 준비됨, 발송 확인 후 가능
n8n 워크플로우 (구독 메일 사이트 안내)
현상/기능
- 4번 항목에 AI 자동화가 들어가야 하며, AI 자동화도 프로젝트와 동일하게 진행·기획·종료 등 상태 표시 필요
- n8n SO-블로그 구독 메일 Build Digest에서 사이트 안내에 AI 자동화(/automation) 추가
- 프로젝트와 같이 진행·기획·종료 상태 표시. 발행함
n8n 워크플로우 (구독 메일 정보형 브리핑)
현상/기능
- 메일발송을 위한 내용을 홍보성이 아닌 정보형 개념으로 구성
- 매일 09:00 정보형 템플릿을 먼저 고치고 준비되면 최신 일자로 한 번 보내 검증하는 계획으로 진행
- n8n SO-블로그 구독 메일(7p6KtUGdcYAOnJfv) 발행함, activeVersionId: 3b2b4218-b28c-4ba7-99f5-da4400116ff4
- Load Today Posts에서 당일 ai_news를 매거진 우선, 그다음 published_at DESC로 정렬
- Build Digest에서 제목을 'On Blog MMDD — {일간호 제목}'로, 본문은 안내+일간호 summary+카드 한 줄+사이트 안내+해지로 구성, 홍보 문구 제거
- 초안에 있던 09:30 스케줄은 발행본과 같이 09:00으로 되돌림. Gmail HTML·웹훅 설정 유지
- pin 테스트 execution 147 성공, 제목 예: 'On Blog 0918 — AI 안전·규제·인프라 격변의 하루'
- 전체 구독자 실발송은 하지 않음, 관리자 '지금 발송'은 사용자 확인 후 진행
n8n 워크플로우 (기업 시연·홍보 뉴스 제외)
현상/기능
- 특정 뉴스류를 되도록 넣지 않도록 하며, 홍보·시연·공공사업 발표만 제외
- SO-블로그 파이프라인 Filter Today Tech News에서 VENDOR_PR을 홍보(공동관·부스·기자간담회)·시연(전시회 시연·솔루션 시연)·공공사업(도입 지원사업·컨소시엄 참여·국책과제)만 무조건 제외하도록 함
- N2SF·망 보안체계 등 주제 키워드는 제외 목록에서 제거함. '보안'은 STRONG에서 제거함. 발행함
- 기존 카드(54a536e5-b5cd-4e0f-ab65-dff3e2c671b4)는 삭제하지 않음
n8n 워크플로우 (뉴스 수집 시각)
현상/기능
- 수집시간을 오전 7시, 오후 2시로 변경, 서버시간이 한국시간인지 확인
- SO-블로그 파이프라인 Schedule Trigger를 09:00·14:00에서 07:00·14:00 Asia/Seoul로 변경
- 워크플로 timezone Asia/Seoul 유지함. 발행함
공개 웹 (달력 광고 높이)
현상/기능
- 달력 아래 광고 높이가 공유링크 광고와 다름
- HomeHero 날짜띠 아래 AdSlot에 compact 적용(zoom 0.62, 공유링크와 동일하게 맞춤)
공개 웹 (공유링크 광고)
현상/기능
- 안내 문구 아래에 더 낮은 높이의 광고 필요
- ShareLinkBoard 안내 문구 아래 compact AdSlot 추가함
- AdSlot에서 compact 시 zoom 0.62 적용(AdSense가 overflow 높이를 푸는 것 회피)
공개 웹 (광고 높이)
현상/기능
- 광고 높이가 높음
- AdSlot을 auto에서 horizontal로 변경, ins 높이 90px로 조정. overflow로 자르지 않도록 함
공개 웹 (AdSense 광고 단위)
현상/기능
- 사이트 확인 후 광고 단위 코드 적용 필요, data-ad-slot="3126463962" (blog.serviceon)
- 기본 slot을 3126463962로 설정함
- env로 덮어쓰기 가능하도록 함. AdSlot이 ins+push 활성화되도록 함