Expansion ยท 2026-08-10

๐Ÿ”Œ WSL ํ™•์žฅ ์Šฌ๋กฏ โ€” ํ”Œ๋Ÿฌ๊ทธ ์•ค ํ”Œ๋ ˆ์ด ์•„ํ‚คํ…์ฒ˜

S21์—์„œ ์„ค๊ณ„ํ•œ 2๊ณ„์ธตยท์–‘๋ฐฉํ–ฅ ๋ธŒ๋ฆฟ์ง€ยท๋ฃจํ”„๋ฐฑ์€ ํ™˜๊ฒฝ ๋…๋ฆฝ์ ์ด๋‹ค.
WSL ๋จธ์‹ ์„ "์Šฌ๋กฏ"์ฒ˜๋Ÿผ ๊ฝ‚์œผ๋ฉด ์ˆ˜๋™ โ†’ ์™„์ „์ž๋™์œผ๋กœ ์ฆ‰์‹œ ์—…๊ทธ๋ ˆ์ด๋“œ.

๐Ÿ’ก ํ•ต์‹ฌ ๊ฐœ๋… โ€” "์Šฌ๋กฏ ์•„ํ‚คํ…์ฒ˜"

S21 Paste Pipeline์˜ ๋ชจ๋“  ์„ค๊ณ„๋Š” ํŠน์ • ๊ธฐ๊ณ„์— ์ข…์†๋˜์ง€ ์•Š๋Š”๋‹ค. GitยทActionsยทTelegram APIยทRSSยท์›นํ‘œ์ค€ โ€” ์ „๋ถ€ ๋„คํŠธ์›Œํฌ ๋„ˆ๋จธ์— ์žˆ๋Š” ์ถ”์ƒํ™” ๊ณ„์ธต์ด๋‹ค. ์ฆ‰ ์‹คํ–‰ ๋จธ์‹ ์ด ๋ฐ”๋€Œ์–ด๋„ ์„ค๊ณ„๋Š” ๊ทธ๋Œ€๋กœ.

๊ณต์œ  ์ฝ”์–ด (GitHub โ€” ๋จธ์‹  ๋…๋ฆฝ์ )
๐ŸŒ GitHub 6๋ ˆํฌ โ†” โšก Actions 27WF โ†” ๐ŸŒ Pages 6๊ณณ โ†” ๐Ÿ“ก RSS 5ํŒŒ์ดํ”„
์‹คํ–‰ ์Šฌ๋กฏ โ€” ๋จธ์‹  ๊ต์ฒด ๊ฐ€๋Šฅ
๐ŸŸฃ ์Šฌ๋กฏ #1: S21 (ํ˜„์žฌ)
Paste Pipeline v5.1
.txt ํ‘œ์ค€ยท5-Click ์ˆ˜๋™
๋ฃจํ”„๋ฐฑ ํ‰๊ฐ€ยท๊ธฐํš
โ‡„ ๋™์ผ
์„ค๊ณ„
๊ณต์œ 
โ‡„
๐ŸŸข ์Šฌ๋กฏ #2: WSL (๋Œ€๊ธฐ)
Playwright ์™„์ „์ž๋™
21+15+3์ฑ„๋„ยทMCP 20๋„๊ตฌ
์ฝ”๋“œ ์™„์„ฑยทํ™˜๊ฒฝ ๋Œ€๊ธฐ
๐Ÿ“‹ Paste(๋‚ด๋ถ€โ†’์™ธ๋ถ€) + ๐Ÿ“ก RSS(์™ธ๋ถ€โ†’๋‚ด๋ถ€) + ๐Ÿ”„ Loopback(ํ‰๊ฐ€)
๋‘ ์Šฌ๋กฏ์€ ๋™์ผํ•œ GitHub ์ฝ”์–ด๋ฅผ ๊ณต์œ ํ•œ๋‹ค. ์‹คํ–‰ ๋จธ์‹ ๋งŒ ๋‹ค๋ฅผ ๋ฟ, ์„ค๊ณ„ ์›๋ฆฌยท๋ฐ์ดํ„ฐยทํŒŒ์ดํ”„๋ผ์ธ์€ 100% ๊ณต์œ .

๐Ÿ”Œ WSL ์Šฌ๋กฏ์„ ๊ฝ‚์œผ๋ฉด ๋‹ฌ๋ผ์ง€๋Š” ๊ฒƒ

์ฐจ์›S21 ์Šฌ๋กฏ (ํ˜„์žฌ)WSL ์Šฌ๋กฏ (๊ฝ‚์œผ๋ฉด)
ํ‹ฐ์Šคํ† ๋ฆฌ ๋ฐœํ–‰์‚ฌ๋žŒ 5-Click (2~3๋ถ„/๊ฑด)Playwright ์ž๋™ (30์ดˆยท๋ฌด์ธ)
์ ์šฉ ์ฑ„๋„5 Tistory21 Tistory + 15 YouTube + 3 Naver + Discord 28
HTML ํ’ˆ์งˆparksy_to_html.pygenerator.py (ํŒŒํ”ผ๋ฃจ์Šค CSS v4.0ยท๋‹จํ–‰๋ณธ๊ธ‰)
์ฝ˜ํ…์ธ  ํ˜•์‹Markdown ์ง๋ณ€ํ™˜posts/*.json ํ‘œ์ค€ํ™” โ†’ publisher.py ์ผ๊ด„์ฒ˜๋ฆฌ
๊ณ„์ •0 (๋กœ๊ทธ์ธ ๋ถˆํ•„์š”)5๊ณ„์ •ยทKakao ์„ธ์…˜ยท์ž๋™๊ฐฑ์‹ 
MCP ๋„๊ตฌ626+ (ํ†ต๊ณ„ยท์นดํ…Œ๊ณ ๋ฆฌยท์Šคํ‚จยท์˜์ƒยท์ฑ„๋„๊ด€๋ฆฌ)
์‚ฌ๋žŒ ์—ญํ• ๋ฐœํ–‰์ž๊ฐ๋…์ž (์Šน์ธยท์ „๋žตยทํ’ˆ์งˆ)
๐Ÿ”Œ ํ”Œ๋Ÿฌ๊ทธ ์•ค ํ”Œ๋ ˆ์ด: WSL ๋จธ์‹ ์— git clone + pip install playwright + python3 login.py ํ•œ ๋ฒˆ์ด๋ฉด ์Šฌ๋กฏ ํ™œ์„ฑํ™” ์™„๋ฃŒ. GitHub ์ฝ”์–ด๋Š” ๊ทธ๋Œ€๋กœ, ์‹คํ–‰ ์Šฌ๋กฏ๋งŒ ๊ต์ฒด. ๋ฐ์ดํ„ฐ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์ œ๋กœ.

๐Ÿงฌ ์™œ "์Šฌ๋กฏ ๊ต์ฒด"๊ฐ€ ๊ฐ€๋Šฅํ•œ๊ฐ€ โ€” ์„ค๊ณ„์˜ 4๊ฐ€์ง€ ํ™˜๊ฒฝ ๋…๋ฆฝ์„ฑ

1. Git = ๋ฒ”์šฉ ์ €์žฅ์†Œ
์ฝ˜ํ…์ธ ยท์ฝ”๋“œยท์„ค์ • ์ „๋ถ€ Git. git pull ํ•œ ๋ฒˆ์œผ๋กœ ์–ด๋–ค ๋จธ์‹ ์—์„œ๋“  ๋™์ผ ์ƒํƒœ ๋ณต์ œ. WSL์ด๋“  S21์ด๋“  ๊ฐ™์€ ๋ ˆํฌ๋ฅผ ๋ฐ”๋ผ๋ณธ๋‹ค.
2. Actions = ์›๊ฒฉ ์‹คํ–‰
RSSยทPages ๋ฐฐํฌยทํ’ˆ์งˆ ๊ฒŒ์ดํŠธ๋Š” GitHub Actions๊ฐ€ ๋Œ€์‹  ์‹คํ–‰. ๋‚ด ์ปดํ“จํ„ฐ๊ฐ€ ๊บผ์ ธ๋„ ํŒŒ์ดํ”„๋ผ์ธ์€ ๋ˆ๋‹ค.
3. HTTP API = ์–ธ์–ด ๋ฌด๊ด€
TelegramยทRSSยทGitHub API ๋ชจ๋‘ HTTP. curl์ด๋ฉด ์ถฉ๋ถ„. PythonยทNodeยทShell โ€” ์–ด๋–ค ์–ธ์–ด๋กœ๋„ ๊ตฌํ˜„ ๊ฐ€๋Šฅ.
4. ์›นํ‘œ์ค€ = ์˜๊ตฌ ํ˜ธํ™˜
HTMLยทCSSยทRSSยทJSON โ€” 30๋…„ ๋œ ํ‘œ์ค€. ๊ธฐ๊ณ„ยทOSยท๋ธŒ๋ผ์šฐ์ €๊ฐ€ ๋ฐ”๋€Œ์–ด๋„ ์ฝ˜ํ…์ธ ๋Š” ๊นจ์ง€์ง€ ์•Š๋Š”๋‹ค.

๐Ÿ“ฆ ์ด๋ฏธ ์ค€๋น„๋œ ์ฝ”๋“œ โ€” reference/wsl-automation/

ํŒŒ์ผ์ถœ์ฒ˜ํ•˜๋Š” ์ผWSL์—์„œ ์‹คํ–‰
_tistory_publish.pydtslib-papyrusPlaywright ๋ฐœํ–‰ โ€” TinyMCE ์ œ์–ดยทKakao ๋กœ๊ทธ์ธยท์„ธ์…˜ ์ฟ ํ‚คpublish_tistory(account, blog, title, html)
publisher.pyparksy-logs๋ฐฐ์น˜ ๋ฐœํ–‰๊ธฐ โ€” posts/*.json โ†’ ๊ณ„์ •๋ณ„ ์ˆœ์ฐจ ๋ฐœํ–‰python3 publisher.py --blog ์ฒ ํ•™์ž๋ฐ•์”จ
generator.pyparksy-logsMD โ†’ ๋‹จํ–‰๋ณธ HTML (ํŒŒํ”ผ๋ฃจ์Šค CSS v4.0)python3 generator.py --blog ์ฒ ํ•™์ž๋ฐ•์”จ --input draft.md
parksy_distributor_mcp.pydtslib-papyrusMCP 20+๋„๊ตฌ โ€” TGยทYTยทNaverยทTistoryยทDiscordยทํ†ต๊ณ„MCP stdio ์„œ๋ฒ„

โšก WSL ์Šฌ๋กฏ ํ™œ์„ฑํ™” โ€” 3๋‹จ๊ณ„๋ฉด ๋

Step 1
ํ™˜๊ฒฝ ์ค€๋น„
git clone โ†’ pip install โ†’ playwright install chromium
5๋ถ„
Step 2
๋กœ๊ทธ์ธ
python3 login.py โ†’ Kakao OAuth โ†’ ์ฟ ํ‚ค ์ €์žฅ
2๋ถ„
Step 3
๋ฐœํ–‰
python3 publisher.py
๋ฌด์ธ ์ž๋™
โš ๏ธ S21์€ ํ๊ธฐ๋˜์ง€ ์•Š๋Š”๋‹ค. WSL์ด "์†"(๋ฐœํ–‰)์„ ๋งก์œผ๋ฉด S21์€ "๋‘๋‡Œ"(๊ธฐํšยท๋ฃจํ”„๋ฐฑ ํ‰๊ฐ€ยทํ’ˆ์งˆ ๊ฐ๋…)์— ์ง‘์ค‘. ๋‘ ์Šฌ๋กฏ์€ ๊ฒฝ์Ÿ์ด ์•„๋‹ˆ๋ผ ๋ถ„์—….

๐ŸŽฏ ์ด๊ฒŒ ์ฆ๋ช…ํ•˜๋Š” ๊ฒƒ

ํ™˜๊ฒฝ ๋…๋ฆฝ์  ์„ค๊ณ„๋Š” ํ™•์žฅ์„ฑ์„ ๋‚ณ๋Š”๋‹ค
S21์—์„œ ์‹œ์ž‘ํ–ˆ์ง€๋งŒ WSLยทํด๋ผ์šฐ๋“œVMยทGitHub Codespaces ์–ด๋””์„œ๋“  ๋™์ผํ•˜๊ฒŒ ์ž‘๋™. ๋จธ์‹ ์€ ์Šฌ๋กฏ์ผ ๋ฟ.
์ฝ”๋“œ๋Š” ์ค€๋น„๋๋‹ค, ํ™˜๊ฒฝ๋งŒ ๊ธฐ๋‹ค๋ฆฐ๋‹ค
WSL ์ž๋™ํ™” ์ฝ”๋“œ๋Š” ์ด๋ฏธ 2026-05๋ถ€ํ„ฐ ์กด์žฌ. S21์—์„œ 3๊ฐœ์›”๊ฐ„ ๋‹ค๋“ฌ์€ ์„ค๊ณ„ ์›๋ฆฌ๊ฐ€ WSL ์ฝ”๋“œ์™€ ์™„๋ฒฝํžˆ ํ˜ธํ™˜.
์‚ฌ๋žŒ ์—ญํ• ์€ ๊ธฐ๊ณ„๊ฐ€ ๋Œ€์ฒดํ•  ์ˆ˜ ์—†๋Š” ๊ณณ์œผ๋กœ
๋ฐœํ–‰(๊ธฐ๊ณ„์ ) โ†’ WSL. ๊ธฐํšยท์ „๋žตยทํ’ˆ์งˆํŒ๋‹จ(์ธ๊ฐ„์ ) โ†’ S21. ์ž๋™ํ™”๋Š” ์‚ฌ๋žŒ์„ ๋Œ€์ฒดํ•˜๋Š” ๊ฒŒ ์•„๋‹ˆ๋ผ ํ•ด๋ฐฉํ•˜๋Š” ๊ฒƒ.
ํ•œ๊ณ„ ๋น„์šฉ 0์˜ ํ™•์žฅ
28๋ฒˆ์งธ ์ฑ„๋„ ์ถ”๊ฐ€? blog_map.json์— ํ•œ ์ค„. 2๋ฒˆ์งธ ๋จธ์‹  ์ถ”๊ฐ€? git clone ํ•œ ๋ฒˆ. ์ด ์•„ํ‚คํ…์ฒ˜๋Š” ๋Š˜๋ ค๋„ ๋น„์šฉ์ด ๋Š˜์ง€ ์•Š๋Š”๋‹ค.