diff --git a/.github/analytics-trigger b/.github/analytics-trigger new file mode 100644 index 0000000000000..a6d4c41c1f23b --- /dev/null +++ b/.github/analytics-trigger @@ -0,0 +1 @@ +run-20260721162408 diff --git a/.github/dead-links-trigger b/.github/dead-links-trigger new file mode 100644 index 0000000000000..d13e09ced2d91 --- /dev/null +++ b/.github/dead-links-trigger @@ -0,0 +1 @@ +dry-run \ No newline at end of file diff --git a/.github/gsc-indexing-trigger b/.github/gsc-indexing-trigger new file mode 100644 index 0000000000000..42e79ca363c53 --- /dev/null +++ b/.github/gsc-indexing-trigger @@ -0,0 +1 @@ +verify4-20260722051540 diff --git a/.github/oauth-token-trigger b/.github/oauth-token-trigger new file mode 100644 index 0000000000000..f563280525206 --- /dev/null +++ b/.github/oauth-token-trigger @@ -0,0 +1 @@ +2_exchange_code:4/0AXEQxICzh5-N1RNFskuv43pD-lr1G-zrbh6uDPmc4HZjN39t7LqH5q-1xNu8u6KDFfIVJg \ No newline at end of file diff --git a/.github/topic-posts-trigger b/.github/topic-posts-trigger new file mode 100644 index 0000000000000..2735303f3ae1c --- /dev/null +++ b/.github/topic-posts-trigger @@ -0,0 +1 @@ +2026-07-20T02:41:01Z diff --git a/.github/workflows/auto-repair.yml b/.github/workflows/auto-repair.yml index 82512daad7403..f45e38536a6e6 100644 --- a/.github/workflows/auto-repair.yml +++ b/.github/workflows/auto-repair.yml @@ -71,6 +71,11 @@ jobs: working-directory: blog-automation run: mkdir -p logs + - name: ๐ ์ธ์ฆ ํฌ์ค์ฒดํฌ (Google OAuth ์๊ฒฉ์ฆ๋ช ๋ง๋ฃ ๊ฐ์ง) + working-directory: blog-automation + continue-on-error: true + run: python auth_health_check.py + - name: ๐ง ์๋ ์ง๋จ ๋ฐ ์๋ฆฌ ์คํ working-directory: blog-automation run: | @@ -108,6 +113,7 @@ jobs: git config user.name "github-actions[bot]" git config user.email "github-actions[bot]@users.noreply.github.com" for f in \ + docs/data/auth_health.json \ docs/data/repairs.json docs/data/pending_posts.json \ docs/data/posts.json docs/data/post_registry.json \ docs/data/code_repairs.json \ @@ -123,8 +129,7 @@ jobs: blog-automation/post_manager.py \ blog-automation/adsense_validator.py \ blog-automation/main.py \ - blog-automation/trend_collector.py \ - blog-automation/image_handler.py \ + blog-automation/auto_repair.py \ blog-automation/social_publisher.py \ blog-automation/fix_existing_posts.py \ blog-automation/coupang_affiliate.py; do @@ -138,9 +143,21 @@ jobs: git commit -m "๐ง ์๋ ์๋ฆฌ ์๋ฃ (#${{ github.run_number }})" _push_ok=0 for i in 1 2 3; do - git pull --rebase --autostash origin claude/blog-automation-system-KAbtE \ - && git push origin claude/blog-automation-system-KAbtE \ - && { _push_ok=1; break; } + git rebase --abort 2>/dev/null || true + if git pull --rebase --autostash origin claude/blog-automation-system-KAbtE; then + git push origin claude/blog-automation-system-KAbtE && { _push_ok=1; break; } + else + if git ls-files -u | grep -q .; then + for cf in docs/data/post_registry.json blog-automation/logs/post_registry.json; do + git checkout --theirs -- "$cf" 2>/dev/null || true + git add -f "$cf" 2>/dev/null || true + done + git rebase --continue --no-edit \ + && git push origin claude/blog-automation-system-KAbtE \ + && { _push_ok=1; break; } + fi + git rebase --abort 2>/dev/null || true + fi echo "pull+push ์ฌ์๋ $i/3..." sleep $((i * 3)) done diff --git a/.github/workflows/blog-analytics.yml b/.github/workflows/blog-analytics.yml index b3b61b4df6751..6d6a6ff3d7138 100644 --- a/.github/workflows/blog-analytics.yml +++ b/.github/workflows/blog-analytics.yml @@ -4,6 +4,9 @@ on: schedule: # ๋งค์ฃผ ์์์ผ 09:00 KST (UTC 00:00) - cron: "0 0 * * 1" + push: + branches: [claude/blog-automation-system-KAbtE] + paths: ['.github/analytics-trigger'] workflow_dispatch: inputs: dry_run: diff --git a/.github/workflows/bot-reply.yml b/.github/workflows/bot-reply.yml index 1e148d7b48198..39d7e0643670a 100644 --- a/.github/workflows/bot-reply.yml +++ b/.github/workflows/bot-reply.yml @@ -58,6 +58,16 @@ jobs: system_parts = [ "๋น์ ์ ๋ธ๋ก๊ทธ ์๋ํ ์์คํ ์ ๊ด๋ฆฌ๋ด์ ๋๋ค. Claude Haiku ๋ชจ๋ธ ๊ธฐ๋ฐ์ผ๋ก ์์คํ ์ํ๋ฅผ ๋ถ์ํ๊ณ ์กฐ์ธํฉ๋๋ค.", "์๋ต์ ๊ฐ๊ฒฐํ๊ณ ์ค์ฉ์ ์ผ๋ก ํ๊ตญ์ด๋ก ์์ฑํ์ธ์.", + "\n์ก์ ์ ์์ด ํ์ํ๋ฉด ์๋ต ๋์ ๋ค์ ํ์์ JSON ๋ธ๋ก์ ๋ถ์ด์ธ์ (์์ผ๋ฉด ์๋ต):\n" + '```actions\n[{"label":"๋ฒํผ ์ด๋ฆ","cmd":"์คํ:์ฃฝ์๋งํฌ์ค์บ"}]\n```\n' + "๊ฐ๋ฅํ cmd ๊ฐ: ํ์ด์ง์ด๋:posts, ํ์ด์ง์ด๋:review, ํ์ด์ง์ด๋:series, ํ์ด์ง์ด๋:run, " + "ํ์ด์ง์ด๋:analytics, ํ์ด์ง์ด๋:dashboard, ํ์ด์ง์ด๋:system, " + "์คํ:ํฌ์คํธ์์ฑ, ์คํ:์๋์๋ฆฌ, ์คํ:์ง๋จ๋ง, ์คํ:๋ฐฑ์ , ์คํ:์ ๋์ผ์ค๊ฐ์ฌ, ์คํ:์ฃผ๊ฐํ์ต, " + "์คํ:์ฃฝ์๋งํฌ์ค์บ, ์คํ:์ฃฝ์๋งํฌ์์ , ์คํ:์ค๋ณต์ด๋ฏธ์ง์ค์บ, ์คํ:์ค๋ณต์ด๋ฏธ์ง๊ต์ฒด, " + "์คํ:์ค๋ณต๋ชฉ์ฐจ์ ๋ฆฌ, ์คํ:์๋ฆฌ์ฆ๋ฐํ์ฒ๋ฆฌ, ์คํ:์์ธ์์ฒญ, ์คํ:์ผ์ธ ์์ฑ.\n" + "์ค์ ์ฝํ ์ธ ๋ฅผ ์์ ํ๋ cmd(์ฃฝ์๋งํฌ์์ , ์ค๋ณต์ด๋ฏธ์ง๊ต์ฒด)๋ ๋จผ์ ์ค์บ ๊ฒฐ๊ณผ(dead_links ๋ฑ ์ปจํ ์คํธ)๋ฅผ " + "์ค๋ช ํ๊ณ , ์ฌ์ฉ์๊ฐ ๋ช ํํ ๋์ํ ๊ฒฝ์ฐ์๋ง ์ ์ํ์ธ์. ์ํฌํ๋ก ์คํ cmd๋ ์ฌ์ฉ์๊ฐ ์์ฒญยท๋์ํ " + "๋งฅ๋ฝ์์๋ง ์ ์ํ์ธ์.", ] ctx_for_system = {k: v for k, v in ctx.items() if k != 'history'} if ctx_for_system: diff --git a/.github/workflows/get-oauth-token.yml b/.github/workflows/get-oauth-token.yml index d567a71990691..9c4e783ccc804 100644 --- a/.github/workflows/get-oauth-token.yml +++ b/.github/workflows/get-oauth-token.yml @@ -1,6 +1,9 @@ name: ๐ Google OAuth ํ ํฐ ๋ฐ๊ธ on: + push: + branches: [claude/blog-automation-system-KAbtE] + paths: ['.github/oauth-token-trigger'] workflow_dispatch: inputs: step: @@ -24,12 +27,39 @@ on: required: false default: '' +permissions: + contents: write + jobs: get-token: runs-on: ubuntu-latest timeout-minutes: 5 steps: + - name: ์ฝ๋ ์ฒดํฌ์์ + uses: actions/checkout@v4 + with: + ref: claude/blog-automation-system-KAbtE + + - name: ์คํ ๋ชจ๋ ๊ฒฐ์ (push ํธ๋ฆฌ๊ฑฐ ํ์ผ ๋๋ workflow_dispatch ์ ๋ ฅ) + id: mode + run: | + if [ "${{ github.event_name }}" = "push" ]; then + LINE=$(cat .github/oauth-token-trigger 2>/dev/null | head -1) + if [[ "$LINE" == 2_exchange_code:* ]]; then + echo "step_mode=2_exchange_code" >> "$GITHUB_ENV" + echo "auth_code_value=${LINE#2_exchange_code:}" >> "$GITHUB_ENV" + else + echo "step_mode=1_get_url" >> "$GITHUB_ENV" + echo "auth_code_value=" >> "$GITHUB_ENV" + fi + echo "scope_value=blogger+gsc" >> "$GITHUB_ENV" + else + echo "step_mode=${{ inputs.step }}" >> "$GITHUB_ENV" + echo "auth_code_value=${{ inputs.auth_code }}" >> "$GITHUB_ENV" + echo "scope_value=${{ inputs.scope }}" >> "$GITHUB_ENV" + fi + - name: Python ์ค์ uses: actions/setup-python@v5 with: @@ -39,10 +69,10 @@ jobs: run: pip install requests -q - name: ๐ 1๋จ๊ณ โ ์ธ์ฆ URL ์์ฑ - if: ${{ inputs.step == '1_get_url' }} + if: ${{ env.step_mode == '1_get_url' }} env: CLIENT_ID: ${{ secrets.GOOGLE_CLIENT_ID }} - SCOPE_CHOICE: ${{ inputs.scope }} + SCOPE_CHOICE: ${{ env.scope_value }} run: | python3 - <<'PYEOF' import os, urllib.parse @@ -58,7 +88,7 @@ jobs: params = { "client_id": client_id, - "redirect_uri": "urn:ietf:wg:oauth:2.0:oob", + "redirect_uri": "http://localhost", "response_type": "code", "scope": scope, "access_type": "offline", @@ -70,21 +100,58 @@ jobs: print() print("์๋ URL์ ๋ธ๋ผ์ฐ์ ์์ ์ด๊ณ Google ๊ณ์ ์ผ๋ก ๋ก๊ทธ์ธํ์ธ์:") print() - print(url) + print(url) # GitHub ๋ก๊ทธ์์๋ client_id๊ฐ ์๋ ๋ง์คํน๋จ โ ์ค์ ๊ฐ์ ์ ๋ก๋๋๋ ์ํฐํฉํธ์์ ํ์ธ print() print("=" * 60) - print("๋ก๊ทธ์ธ ํ ํ์๋๋ '์ธ์ฆ ์ฝ๋'๋ฅผ ๋ณต์ฌํ์ธ์.") + print("๋ก๊ทธ์ธยท๋์ ํ ๋ธ๋ผ์ฐ์ ๊ฐ http://localhost/?code=...&scope=... ๋ก ์ด๋ํ๋ฉฐ") + print("'์ฌ์ดํธ์ ์ฐ๊ฒฐํ ์ ์์' ์ค๋ฅ ํ์ด์ง๊ฐ ๋น๋๋ค (์ ์ โ localhost์ ์๋ฒ๊ฐ ์์ด์).") + print("์ด๋ ์ฃผ์์ฐฝ์ URL์์ 'code=' ๋ค๋ถํฐ '&scope=' ์๊น์ง๋ฅผ ๋ณต์ฌํ์ธ์ (URL ๋์ฝ๋ฉ ํ์ํ ์ ์์).") print("๊ทธ ๋ค์ ์ด ์ํฌํ๋ก์ฐ๋ฅผ step=2_exchange_code ๋ก ์ฌ์คํํ๊ณ ") print("auth_code ํญ๋ชฉ์ ๋ณต์ฌํ ์ฝ๋๋ฅผ ๋ถ์ฌ๋ฃ์ผ์ธ์.") + print() + print("โ ๏ธ 'redirect_uri_mismatch' ์ค๋ฅ๊ฐ ๋จ๋ฉด Google Cloud Console โ API ๋ฐ ์๋น์ค โ") + print("์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด โ ์ด OAuth ํด๋ผ์ด์ธํธ โ '์น์ธ๋ ๋ฆฌ๋๋ ์ URI'์") + print("http://localhost ๋ฅผ ์ถ๊ฐํด์ผ ํฉ๋๋ค.") + + # ๋ก๊ทธ๋ ์ํฌ๋ฆฟ ๋ง์คํน์ผ๋ก client_id๊ฐ ***๋ก ๊ฐ๋ ค์ง๋ฏ๋ก, + # ์ํฐํฉํธ(๋คํธ์ํฌ ์ ์ฑ ์ ๋ค์ด๋ก๋ ๋ถ๊ฐํ ์ ์์) + git ์ปค๋ฐ ํ์ผ๋ก ์ด์ค ์ ์ฅ + with open("oauth_url.txt", "w") as f: + f.write(url + "\n") PYEOF + - name: ์ธ์ฆ URL ์ํฐํฉํธ ์ ๋ก๋ + if: ${{ env.step_mode == '1_get_url' }} + uses: actions/upload-artifact@v4 + with: + name: oauth-auth-url + path: oauth_url.txt + retention-days: 1 + + - name: ์ธ์ฆ URL ์์ ์ปค๋ฐ (client_id๋ ๊ณต๊ฐ ์๋ณ์ โ ์ฌ์ฉ ํ ์ญ์ ๊ถ์ฅ) + if: ${{ env.step_mode == '1_get_url' }} + run: | + cp oauth_url.txt .github/oauth_url_output.txt + git config user.name "github-actions[bot]" + git config user.email "github-actions[bot]@users.noreply.github.com" + git add -f .github/oauth_url_output.txt + if git diff --staged --quiet; then + echo "๋ณ๊ฒฝ์ฌํญ ์์" + else + git commit -m "๐ OAuth ์ธ์ฆ URL ์ถ๋ ฅ (์์ โ ํ์ธ ํ ์ญ์ ๊ถ์ฅ)" + for i in 1 2 3; do + git pull --rebase --autostash origin claude/blog-automation-system-KAbtE \ + && git push origin claude/blog-automation-system-KAbtE && break + sleep $((i * 2)) + done + fi + - name: ๐ 2๋จ๊ณ โ ์ฝ๋ ๊ตํ ๋ฐ Refresh Token ์ถ๋ ฅ - if: ${{ inputs.step == '2_exchange_code' }} + if: ${{ env.step_mode == '2_exchange_code' }} env: CLIENT_ID: ${{ secrets.GOOGLE_CLIENT_ID }} CLIENT_SECRET: ${{ secrets.GOOGLE_CLIENT_SECRET }} - AUTH_CODE: ${{ inputs.auth_code }} - SCOPE_CHOICE: ${{ inputs.scope }} + AUTH_CODE: ${{ env.auth_code_value }} + SCOPE_CHOICE: ${{ env.scope_value }} run: | python3 - <<'PYEOF' import os, requests @@ -102,7 +169,7 @@ jobs: "code": auth_code, "client_id": client_id, "client_secret": client_secret, - "redirect_uri": "urn:ietf:wg:oauth:2.0:oob", + "redirect_uri": "http://localhost", "grant_type": "authorization_code", }) @@ -124,10 +191,22 @@ jobs: print("=" * 60) print("โ Refresh Token ๋ฐ๊ธ ์ฑ๊ณต!") print() - print(f"{secret_name} ๊ฐ:") - print(refresh_token) + print(f"{secret_name} ๊ฐ: (๋ก๊ทธ์๋ ๋ง์คํน๋์ด ์ ๋ณด์ผ ์ ์์ โ ์ํฐํฉํธ ํ์ผ ํ์ธ)") print() print("=" * 60) print("์ด ๊ฐ์ ๋ณต์ฌํด์:") print(save_hint) + + # refresh_token์ ์ํฌ๋ฆฟ์ด ์๋๋ผ ๋ก๊ทธ์ ๋ง์คํน๋์ง ์์ง๋ง, + # ํน์ ๋ชจ๋ฅผ ๋ ธ์ถ ์ต์ํ๋ฅผ ์ํด ์ํฐํฉํธ๋ก๋ ์ ์ฅ (1์ผ ํ ์๋ ์ญ์ ) + with open("oauth_result.txt", "w") as f: + f.write(f"{secret_name}={refresh_token}\n") PYEOF + + - name: Refresh Token ์ํฐํฉํธ ์ ๋ก๋ + if: ${{ env.step_mode == '2_exchange_code' }} + uses: actions/upload-artifact@v4 + with: + name: oauth-refresh-token + path: oauth_result.txt + retention-days: 1 diff --git a/.github/workflows/gsc-indexing.yml b/.github/workflows/gsc-indexing.yml index cacd80a0093ac..791befc344721 100644 --- a/.github/workflows/gsc-indexing.yml +++ b/.github/workflows/gsc-indexing.yml @@ -4,6 +4,9 @@ on: # ๋งค์ผ ์ค์ 9์ KST (UTC 00:00) schedule: - cron: '0 0 * * *' + push: + branches: [claude/blog-automation-system-KAbtE] + paths: ['.github/gsc-indexing-trigger'] workflow_dispatch: inputs: inspect_count: diff --git a/.github/workflows/post-action.yml b/.github/workflows/post-action.yml index 64e2873973dac..c200287681ed0 100644 --- a/.github/workflows/post-action.yml +++ b/.github/workflows/post-action.yml @@ -164,9 +164,22 @@ jobs: git commit -m "$EMOJI ํฌ์คํธ $ACTION: ${POST_ID:0:40} (#${{ github.run_number }})" _push_ok=0 for i in 1 2 3; do - git pull --rebase --autostash origin claude/blog-automation-system-KAbtE \ - && git push origin claude/blog-automation-system-KAbtE \ - && { _push_ok=1; break; } + git rebase --abort 2>/dev/null || true + if git pull --rebase --autostash origin claude/blog-automation-system-KAbtE; then + git push origin claude/blog-automation-system-KAbtE && { _push_ok=1; break; } + else + # rebase ์ถฉ๋ ์: ๋ ์ง์คํธ๋ฆฌ ํ์ผ์ ๋ก์ปฌ ์ปค๋ฐ(theirs) ๋ฒ์ ์ผ๋ก ํด๊ฒฐ + if git ls-files -u | grep -q .; then + for cf in docs/data/post_registry.json blog-automation/logs/post_registry.json; do + git checkout --theirs -- "$cf" 2>/dev/null || true + git add -f "$cf" 2>/dev/null || true + done + git rebase --continue --no-edit \ + && git push origin claude/blog-automation-system-KAbtE \ + && { _push_ok=1; break; } + fi + git rebase --abort 2>/dev/null || true + fi echo "pull+push ์ฌ์๋ $i/3..." sleep $((i * 3)) done diff --git a/.gitignore b/.gitignore index bdc0c340eb2ea..ed49ebc0c8c09 100644 --- a/.gitignore +++ b/.gitignore @@ -61,6 +61,9 @@ tap-testdir*/ !/workspaces/libnpmsearch/ !/workspaces/libnpmteam/ !/workspaces/libnpmversion/ + +# Blog Automation System !/blog-automation/ !/docs/data/ !/docs/data/analytics_summary.json +!/serve-dashboard.py diff --git a/blog-automation/.env.example b/blog-automation/.env.example index 0ab3672e83a2d..8011792de9404 100644 --- a/blog-automation/.env.example +++ b/blog-automation/.env.example @@ -1,18 +1,63 @@ -# Claude API -ANTHROPIC_API_KEY="sk-ant-..." - -# Google Blogger API (OAuth 2.0) -# Google Cloud Console์์ ๋ฐ๊ธ: https://console.cloud.google.com -BLOGGER_CLIENT_ID="your-client-id.apps.googleusercontent.com" -BLOGGER_CLIENT_SECRET="your-client-secret" -BLOGGER_BLOG_ID="1234567890" # ๋ธ๋ก๊ทธ ID (blogger.com ์ฃผ์์์ ํ์ธ) -BLOGGER_REFRESH_TOKEN="" # setup_blogger_auth.py ์คํ ํ ๋ฐ๊ธ - -# ๋ธ๋ก๊ทธ ์ค์ -BLOG_LANGUAGE="ko" # ko (ํ๊ตญ์ด) or en (์์ด) -TREND_COUNTRY="KR" # KR, US, JP ๋ฑ -POSTS_PER_RUN="1" # 1ํ ์คํ ์ ๋ฐํํ ํฌ์คํธ ์ -POST_STATUS="live" # live (์ฆ์ ๋ฐํ) or draft (์์์ ์ฅ) - -# ์ค์ผ์ค (cron ํ์, ๋ถ ์ * * *) -SCHEDULE_CRON="0 9 * * *" # ๋งค์ผ ์ค์ 9์ +# ============================================ +# ๋ธ๋ก๊ทธ ์๋ํ ์์คํ ํ๊ฒฝ ๋ณ์ ์ค์ +# ============================================ +# ์ด ํ์ผ์ ๋ณต์ฌํด์ .env ๋ก ์ ์ฅ ํ ๊ฐ์ ์ ๋ ฅํ์ธ์ +# cp .env.example .env + +# ---- Anthropic Claude API ---- +ANTHROPIC_API_KEY=sk-ant-xxxxxxxxxxxxxxxxxxxxxxxx + +# ---- Naver API (https://developers.naver.com) ---- +NAVER_CLIENT_ID=your_naver_client_id +NAVER_CLIENT_SECRET=your_naver_client_secret + +# ---- Google / Blogger API ---- +# Google Cloud Console์์ OAuth2 ์๊ฒฉ์ฆ๋ช ์์ฑ +GOOGLE_CLIENT_ID=your_google_client_id +GOOGLE_CLIENT_SECRET=your_google_client_secret +GOOGLE_REFRESH_TOKEN=your_google_refresh_token +BLOGGER_BLOG_ID=your_blogger_blog_id + +# ---- AdSense ---- +# Google AdSense ๊ด๋ฆฌ์ ํ์ด์ง > ๊ด๊ณ > ๊ด๊ณ ๋จ์์์ ํ์ธ +ADSENSE_CLIENT_ID=ca-pub-XXXXXXXXXXXXXXXX + +# ---- ImgBB API (Instagram ์ด๋ฏธ์ง ์ ๋ก๋์ฉ) ---- +# https://api.imgbb.com ์์ ๋ฌด๋ฃ API ํค ๋ฐ๊ธ +IMGBB_API_KEY=your_imgbb_api_key + +# ---- Instagram Graph API ---- +# Meta Developer Portal์์ ์ฑ ์์ฑ ํ ์ทจ๋ +INSTAGRAM_ACCESS_TOKEN=your_instagram_access_token +INSTAGRAM_ACCOUNT_ID=your_instagram_account_id + +# ---- Threads API ---- +# Meta Threads API (Instagram๊ณผ ๋์ผํ ์ฑ์์ ์ทจ๋) +THREADS_ACCESS_TOKEN=your_threads_access_token +THREADS_USER_ID=your_threads_user_id + +# ---- TikTok API ---- +# TikTok Developer Portal์์ ์ฑ ์์ฑ +TIKTOK_ACCESS_TOKEN=your_tiktok_access_token +TIKTOK_OPEN_ID=your_tiktok_open_id + +# ---- ์ค์ผ์ค ์ค์ ---- +# Cron ํํ์ (๊ธฐ๋ณธ: ๋งค์ผ ์ค์ 8์) +SCHEDULE_CRON=0 8 * * * + +# ---- ์ฝํ ์ธ ์ค์ ---- +# ๋ธ๋ก๊ทธ ์ธ์ด (ko: ํ๊ตญ์ด, en: ์์ด) +BLOG_LANGUAGE=ko +# ํค์๋ ์์ง ๊ตญ๊ฐ (KR: ํ๊ตญ, US: ๋ฏธ๊ตญ) +TREND_COUNTRY=KR +# ํ ๋ฒ์ ์์ฑํ ํฌ์คํธ ์ (1-5) +POSTS_PER_RUN=3 + +# ---- ์ธ๋ค์ผ ์ค์ ---- +THUMBNAIL_WIDTH=1280 +THUMBNAIL_HEIGHT=720 +THUMBNAIL_OUTPUT_DIR=./output/thumbnails + +# ---- ๋ก๊ทธ ์ค์ ---- +LOG_LEVEL=info +LOG_FILE=./logs/automation.log diff --git a/blog-automation/.gitignore b/blog-automation/.gitignore new file mode 100644 index 0000000000000..84758c0b966a8 --- /dev/null +++ b/blog-automation/.gitignore @@ -0,0 +1,10 @@ +node_modules/ +output/ +logs/*.log +.env +*.png +*.jpg + +__pycache__/ +*.pyc +*.pyo diff --git a/blog-automation/MANUAL.md b/blog-automation/MANUAL.md new file mode 100644 index 0000000000000..213c7ba2d569a --- /dev/null +++ b/blog-automation/MANUAL.md @@ -0,0 +1,489 @@ +# ๋ธ๋ก๊ทธ ์๋ํ ์์คํ ์ฌ์ฉ ์ค๋ช ์ + +> **๋ฒ์ **: Python 3.11 | **์ ์ฅ์**: kevinlee7250/cli | **๋ธ๋์น**: claude/blog-automation-system-KAbtE + +--- + +## ๋ชฉ์ฐจ + +1. [์์คํ ๊ฐ์](#1-์์คํ -๊ฐ์) +2. [๋์ ๊ตฌ์กฐ](#2-๋์-๊ตฌ์กฐ) +3. [์ด๊ธฐ ์ค์ ](#3-์ด๊ธฐ-์ค์ ) +4. [ํ๊ฒฝ ๋ณ์ ์ค๋ช ](#4-ํ๊ฒฝ-๋ณ์-์ค๋ช ) +5. [์คํ ๋ฐฉ๋ฒ](#5-์คํ-๋ฐฉ๋ฒ) +6. [GitHub Actions ์๋ํ](#6-github-actions-์๋ํ) +7. [๋์๋ณด๋ ์ฌ์ฉ๋ฒ](#7-๋์๋ณด๋-์ฌ์ฉ๋ฒ) +8. [Google OAuth ํ ํฐ ๊ฐฑ์ ](#8-google-oauth-ํ ํฐ-๊ฐฑ์ ) +9. [ํธ๋ฌ๋ธ์ํ ](#9-ํธ๋ฌ๋ธ์ํ ) +10. [ํ์ผ ๊ตฌ์กฐ](#10-ํ์ผ-๊ตฌ์กฐ) + +--- + +## 1. ์์คํ ๊ฐ์ + +**์ค๋์ ํซ์ด์ ๋ธ๋ก๊ทธ ์๋ํ ์์คํ **์ ๋งค์ผ ์๋์ผ๋ก ํธ๋ ๋ ํค์๋๋ฅผ ์์งํ๊ณ Claude AI๊ฐ SEO ์ต์ ํ ๋ธ๋ก๊ทธ ํฌ์คํธ๋ฅผ ์์ฑํด Blogger์ ์๋ ๊ฒ์ํ๋ ์์คํ ์ ๋๋ค. + +### ์ฃผ์ ๊ธฐ๋ฅ + +| ๊ธฐ๋ฅ | ์ค๋ช | +|------|------| +| ํธ๋ ๋ ํค์๋ ์์ง | ๋ค์ด๋ฒ DataLab / Google Trends ๊ธฐ๋ฐ ์ค์๊ฐ ์ธ๊ธฐ ํค์๋ | +| AI ํฌ์คํธ ์์ฑ | Claude Sonnet โ SEO ์ต์ ํ, FAQ, ์ถ์ฒ ๋งํฌ ์๋ ํฌํจ | +| ์ด๋ฏธ์ง ์๋ ์ฝ์ | ๋ค์ด๋ฒ โ DuckDuckGo โ Wikimedia Commons 3๋จ๊ณ ํด๋ฐฑ | +| AdSense ๊ด๊ณ ์ฝ์ | ๋ณธ๋ฌธ ๋ด ์ ๋ต์ ์์น์ 6๊ฐ ๊ด๊ณ ์ฌ๋กฏ ์๋ ์ฝ์ | +| Blogger ์๋ ๊ฒ์ | Google Blogger API v3๋ก ์ฆ์ ๊ฒ์ ๋๋ ์์์ ์ฅ | +| ๊ตฌ์กฐํ ๋ฐ์ดํฐ | Article + FAQPage JSON-LD ์คํค๋ง ์๋ ์์ฑ | +| ๋ชฉ์ฐจ ์๋ ์์ฑ | H2 ์น์ ๊ธฐ๋ฐ TOC ์๋ ์ฝ์ | +| ๋์๋ณด๋ | GitHub Pages ์ ์ ๋์๋ณด๋๋ก ์คํ ํํฉ ๋ชจ๋ํฐ๋ง | + +--- + +## 2. ๋์ ๊ตฌ์กฐ + +``` +[1] ํธ๋ ๋ ํค์๋ ์์ง (keyword_collector.py) + โโ ๋ค์ด๋ฒ DataLab API โ Google Trends RSS โ Claude ํด๋ฐฑ + +[2] SEO ํฌ์คํธ ์์ฑ (content_generator.py) + โโ Claude Sonnet API โ ์ ๋ชฉ/๋ณธ๋ฌธ/FAQ/ํ๊ทธ/์ถ์ฒ JSON ๋ฐํ + +[3] ์ด๋ฏธ์ง ๊ฒ์ & ์ฝ์ (image_fetcher.py) + โโ ๋ค์ด๋ฒ ์ด๋ฏธ์ง API โ DuckDuckGo โ Wikimedia Commons + +[4] Blogger ์ ๋ก๋ (blogger_uploader.py) + โโ Google OAuth2 ํ ํฐ ๋ฐ๊ธ โ Blogger API POST + โโ ๊ด๊ณ ์ฌ๋กฏ 6๊ฐ + ๋ชฉ์ฐจ + ๊ตฌ์กฐํ ๋ฐ์ดํฐ + ํ๊ทธ/์ถ์ฒ ์น์ ์กฐ๋ฆฝ + +[5] ๋์๋ณด๋ ์ ๋ฐ์ดํธ (dashboard_exporter.py) + โโ logs/run_history.json ๋์ ์ ์ฅ + โโ docs/data/ โ posts.json / runs.json / analytics.json / meta.json +``` + +--- + +## 3. ์ด๊ธฐ ์ค์ + +### 3-1. ์ ์ฅ์ ํด๋ก ๋ฐ ์์กด์ฑ ์ค์น + +```bash +git clone https://github.com/kevinlee7250/cli.git +cd cli/blog-automation +pip install -r requirements.txt +``` + +### 3-2. .env ํ์ผ ์์ฑ + +```bash +cp .env.example .env # .env.example์ด ์์ผ๋ฉด ์๋ ๋ด์ฉ์ผ๋ก ์ง์ ์์ฑ +``` + +`.env` ํ์ผ ๋ด์ฉ: + +```env +# ---- Claude API ---- +ANTHROPIC_API_KEY=sk-ant-xxxxxxxxxxxxxxxxxxxxxxxx + +# ---- Naver API (์ด๋ฏธ์ง ๊ฒ์) ---- +NAVER_CLIENT_ID=xxxxxxxxxxxxxxxx +NAVER_CLIENT_SECRET=xxxxxxxxxx + +# ---- Google / Blogger API ---- +GOOGLE_CLIENT_ID=xxxxxxxxxxxx-xxxxxxxx.apps.googleusercontent.com +GOOGLE_CLIENT_SECRET=GOCSPX-xxxxxxxxxxxxxxxx +GOOGLE_REFRESH_TOKEN=1//xxxxxxxxxxxxxxxxxxxxxxxx +BLOGGER_BLOG_ID=xxxxxxxxxxxxxxxxxxx + +# ---- AdSense (์ ํ) ---- +ADSENSE_CLIENT_ID=ca-pub-xxxxxxxxxxxxxxxx +ADSENSE_SLOT_IDS=1234567890,0987654321,1122334455 + +# ---- ์คํ ์ค์ ---- +POSTS_PER_RUN=3 +POST_STATUS=live +BLOG_LANGUAGE=ko +TREND_COUNTRY=KR +LOG_LEVEL=info +LOG_FILE=./logs/automation.log +``` + +### 3-3. GitHub Secrets ๋ฑ๋ก (Actions ์คํ์ฉ) + +GitHub ์ ์ฅ์ โ **Settings โ Secrets and variables โ Actions** โ New repository secret: + +| Secret ์ด๋ฆ | ๊ฐ ์ถ์ฒ | +|-------------|---------| +| `ANTHROPIC_API_KEY` | Anthropic Console | +| `NAVER_CLIENT_ID` | ๋ค์ด๋ฒ ๊ฐ๋ฐ์ ์ผํฐ | +| `NAVER_CLIENT_SECRET` | ๋ค์ด๋ฒ ๊ฐ๋ฐ์ ์ผํฐ | +| `GOOGLE_CLIENT_ID` | Google Cloud Console | +| `GOOGLE_CLIENT_SECRET` | Google Cloud Console | +| `GOOGLE_REFRESH_TOKEN` | `get_refresh_token.py` ์คํ์ผ๋ก ๋ฐ๊ธ | +| `BLOGGER_BLOG_ID` | Blogger ๋์๋ณด๋ URL์์ ํ์ธ | +| `ADSENSE_CLIENT_ID` | AdSense ๊ณ์ (์ ํ) | +| `ADSENSE_SLOT_IDS` | AdSense ๊ด๊ณ ์ฌ๋กฏ ID ๋ชฉ๋ก (์ ํ) | + +--- + +## 4. ํ๊ฒฝ ๋ณ์ ์ค๋ช + +| ๋ณ์ | ํ์ | ๊ธฐ๋ณธ๊ฐ | ์ค๋ช | +|------|------|--------|------| +| `ANTHROPIC_API_KEY` | โ | โ | Claude API ํค | +| `GOOGLE_CLIENT_ID` | โ | โ | Google OAuth ํด๋ผ์ด์ธํธ ID | +| `GOOGLE_CLIENT_SECRET` | โ | โ | Google OAuth ํด๋ผ์ด์ธํธ ์ํฌ๋ฆฟ | +| `GOOGLE_REFRESH_TOKEN` | โ | โ | Blogger API ์ ๊ทผ์ฉ Refresh Token | +| `BLOGGER_BLOG_ID` | โ | โ | Blogger ๋ธ๋ก๊ทธ ID | +| `NAVER_CLIENT_ID` | ๊ถ์ฅ | โ | ๋ค์ด๋ฒ ์ด๋ฏธ์ง ๊ฒ์ API (์์ผ๋ฉด DDG ์ฌ์ฉ) | +| `NAVER_CLIENT_SECRET` | ๊ถ์ฅ | โ | ๋ค์ด๋ฒ ์ด๋ฏธ์ง ๊ฒ์ API | +| `ADSENSE_CLIENT_ID` | ์ ํ | โ | AdSense ํผ๋ธ๋ฆฌ์ ID (์์ผ๋ฉด ๊ด๊ณ ๋ฏธ์ฝ์ ) | +| `ADSENSE_SLOT_IDS` | ์ ํ | โ | ์ผํ ๊ตฌ๋ถ ๊ด๊ณ ์ฌ๋กฏ ID ๋ชฉ๋ก | +| `POSTS_PER_RUN` | โ | `3` | 1ํ ์คํ๋น ์์ฑํ ํฌ์คํธ ์ (1~10) | +| `POST_STATUS` | โ | `live` | `live` (์ฆ์ ๊ฒ์) / `draft` (์์์ ์ฅ) | +| `BLOG_LANGUAGE` | โ | `ko` | `ko` (ํ๊ตญ์ด) / `en` (์์ด) | +| `TREND_COUNTRY` | โ | `KR` | `KR` / `US` / `JP` | +| `LOG_LEVEL` | โ | `info` | `debug` / `info` / `warning` / `error` | +| `LOG_FILE` | โ | `./logs/automation.log` | ๋ก๊ทธ ํ์ผ ๊ฒฝ๋ก | +| `CLAUDE_MODEL` | โ | `claude-sonnet-4-6` | ์ฌ์ฉํ Claude ๋ชจ๋ธ | + +--- + +## 5. ์คํ ๋ฐฉ๋ฒ + +### 5-1. ํ ์คํธ ๋ชจ๋ (API ํค ์์ด ํ์ธ) + +```bash +cd blog-automation +python main.py --test +``` + +- Blogger ์ ๋ก๋ ์์ด ๊ธ๋ง ์์ฑ +- Claude API ํค๋ง ์์ผ๋ฉด ๋์ +- ์์ฑ๋ ํฌ์คํธ ์ ๋ชฉ/๊ธ์์/์ด๋ฏธ์ง ์ ํ์ธ ๊ฐ๋ฅ + +### 5-2. ํน์ ํค์๋๋ก ์ฆ์ ์คํ + +```bash +python main.py --once --keyword "์ฌํ ํฌ ๋ฐฉ๋ฒ" +# ์ฌ๋ฌ ํค์๋ (์ผํ ๊ตฌ๋ถ) +python main.py --once --keyword "์ฌํ ํฌ,์ฃผ์,ETF" +``` + +### 5-3. ํธ๋ ๋ ์๋ ์์ง ํ ์ฆ์ ์คํ + +```bash +python main.py --once +``` + +### 5-4. ํ ์คํธ ๋ชจ๋ + ํน์ ํค์๋ + +```bash +python main.py --test --keyword "์ฃผ์ ํฌ์" +``` + +### 5-5. ์ค์ผ์ค ๋ชจ๋ (๋ก์ปฌ ์๋ฒ ์์ ์คํ) + +```bash +python main.py +# SCHEDULE_CRON ํ๊ฒฝ ๋ณ์ ๊ธฐ์ค์ผ๋ก ๋งค์ผ ์๋ ์คํ +# ๊ธฐ๋ณธ๊ฐ: 09:00 ๋งค์ผ (0 9 * * *) +``` + +> **๊ถ์ฅ**: ๋ก์ปฌ ์ค์ผ์ค๋ณด๋ค GitHub Actions๋ฅผ ์ฌ์ฉํ์ธ์ (๋ฌด์ค๋จ, ๋ฌด๋ฃ). + +--- + +## 6. GitHub Actions ์๋ํ + +### 6-1. ์๋ ์คํ ์ค์ผ์ค + +`.github/workflows/blog-run.yml`์ ์ ์๋ ์ค์ผ์ค: + +| ์คํ ์๊ฐ | Cron (UTC) | KST | +|-----------|------------|-----| +| ์ค์ ์คํ | `0 22 * * *` | ์ค์ 7์ | +| ์คํ ์คํ | `0 10 * * *` | ์คํ 7์ | + +### 6-2. ์๋ ์คํ (workflow_dispatch) + +1. **GitHub โ Actions โ ๋ธ๋ก๊ทธ ์๋ํ ์คํ** ํด๋ฆญ +2. **Run workflow** ํด๋ฆญ +3. ์ต์ ์ค์ : + +| ์ต์ | ์ค๋ช | ๊ธฐ๋ณธ๊ฐ | +|------|------|--------| +| `keyword` | ํค์๋ (์ผํ ๊ตฌ๋ถ, ๋น์๋๋ฉด ์๋ ์์ง) | โ | +| `posts_per_run` | ์์ฑํ ํฌ์คํธ ์ (1~5) | `3` | +| `mode` | `live` / `draft` / `test` | `live` | + +### 6-3. ์คํ ๋ชจ๋ ์ค๋ช + +| ๋ชจ๋ | ๋์ | +|------|------| +| `live` | Blogger์ ์ฆ์ ๊ฒ์ | +| `draft` | Blogger์ ์์์ ์ฅ (๊ฒ์ ์ ํจ) | +| `test` | ๊ธ๋ง ์์ฑ, ์ ๋ก๋ ์์ (API ํค ๊ฒ์ฆ์ฉ) | + +### 6-4. ์คํ ๊ฒฐ๊ณผ ํ์ธ + +- **Actions ํญ** โ ํด๋น ์ํฌํ๋ก์ฐ ์คํ ํด๋ฆญ โ ๋ก๊ทธ ํ์ธ +- **Artifacts** โ `automation-logs-{๋ฒํธ}` ๋ค์ด๋ก๋ โ ์์ธ ๋ก๊ทธ ํ์ธ +- **๋์๋ณด๋** โ `https://kevinlee7250.github.io/cli/` ์ ์ + +--- + +## 7. ๋์๋ณด๋ ์ฌ์ฉ๋ฒ + +**URL**: `https://kevinlee7250.github.io/cli/` + +### 7-1. ํญ ์ค๋ช + +| ํญ | ๋ด์ฉ | +|----|------| +| ํฌ์คํธ | ์์ฑ๋ ์ ์ฒด ํฌ์คํธ ๋ชฉ๋ก, ํค์๋/๋ ์ง ํํฐ, CSV ๋ด๋ณด๋ด๊ธฐ | +| ์คํ ์ด๋ ฅ | ๋ ์ง๋ณ ์คํ ๊ฒฐ๊ณผ (์์ฑ ์/์ ๋ก๋ ์/์ค๋ฅ ์) | +| ์์ต ๋ถ์ | AdSense ์์ ์์ต ์ฐจํธ, ์นดํ ๊ณ ๋ฆฌ๋ณ ๋ถํฌ | + +### 7-2. ํฌ์คํธ ์์ธ ๋ณด๊ธฐ + +ํฌ์คํธ ํ ํด๋ฆญ โ ๋ชจ๋ฌ์ฐฝ์์ ํ์ธ ๊ฐ๋ฅ: +- ์ ์ฒด ์ ๋ชฉ / ํค์๋ / ์์ฑ์ผ +- ๋ณธ๋ฌธ ๋ฏธ๋ฆฌ๋ณด๊ธฐ / ๊ธ์ ์ / ์ด๋ฏธ์ง ์ +- FAQ ๋ชฉ๋ก (5๊ฐ) +- ์ถ์ฒ ๋งํฌ ๋ชฉ๋ก +- ๊ด๋ จ ํ๊ทธ +- Blogger ์๋ฌธ ๋งํฌ + +### 7-3. ํํฐ ๋ฐ ๋ด๋ณด๋ด๊ธฐ + +- **ํค์๋ ๊ฒ์**: ์ ๋ชฉยทํค์๋ ์ค์๊ฐ ๊ฒ์ +- **๋ ์ง ๋ฒ์**: ์์์ผ~์ข ๋ฃ์ผ ํํฐ +- **์นดํ ๊ณ ๋ฆฌ**: ๊ธ์ต/๊ฑด๊ฐ/๊ธฐ์ ๋ฑ +- **CSV ๋ด๋ณด๋ด๊ธฐ**: ํฌ์คํธ ๋ชฉ๋ก / ์คํ ์ด๋ ฅ ์์ ํธํ ๋ค์ด๋ก๋ + +--- + +## 8. Google OAuth ํ ํฐ ๊ฐฑ์ + +### ์ธ์ ํ์ํ๊ฐ? + +- GitHub Actions ๋ก๊ทธ์ `invalid_grant` ์ค๋ฅ ๋ฐ์ ์ +- OAuth ์ฑ์ด **"ํ ์คํธ"** ์ํ์ด๋ฉด Refresh Token์ด **7์ผ๋ง๋ค ๋ง๋ฃ**๋จ +- OAuth ์ฑ์ **"ํ๋ก๋์ "**์ผ๋ก ๊ฒ์ํ๋ฉด ํ ํฐ์ด ๋ง๋ฃ๋์ง ์์ + +### 8-1. ํ ํฐ ๊ฐฑ์ ์ ์ฐจ + +**๋ฐฉ๋ฒ: Google OAuth Playground ์ฌ์ฉ** + +1. **[OAuth Playground](https://developers.google.com/oauthplayground)** ์ ์ +2. ์ค๋ฅธ์ชฝ ์๋จ โ๏ธ(์ค์ ) ํด๋ฆญ + - "๋ณธ์ธ์ด ์ง์ OAuth ์๊ฒฉ์ฆ๋ช ์ ์ฌ์ฉํ์ธ์" ์ฒดํฌ + - OAuth ํด๋ผ์ด์ธํธ ID / ํด๋ผ์ด์ธํธ ๋น๋ฐ ์ ๋ ฅ +3. ์ผ์ชฝ ๋ชฉ๋ก์์ **Blogger API v3** โ `https://www.googleapis.com/auth/blogger` ์ ํ +4. **"API ๊ถํ ๋ถ์ฌ"** ํด๋ฆญ โ Google ๊ณ์ ๋ก๊ทธ์ธ & ๊ถํ ํ์ฉ +5. **Step 2** โ **"Exchange authorization code for tokens"** ํด๋ฆญ +6. **"Refresh token"** ํ๋ ๊ฐ ๋ณต์ฌ + +> **์ฃผ์**: Refresh token ํ๋๊ฐ ๋น์ด์์ผ๋ฉด [Google ๊ณ์ ๊ถํ](https://myaccount.google.com/permissions)์์ ์ฑ ์ก์ธ์ค ๊ถํ์ ์ทจ์ ํ ์ฌ์๋ + +### 8-2. ์ ํ ํฐ ๋ฑ๋ก + +1. **[GitHub Secrets](https://github.com/kevinlee7250/cli/settings/secrets/actions)** ์ ์ +2. `GOOGLE_REFRESH_TOKEN` โ **"Update"** +3. ์ Refresh Token ๋ถ์ฌ๋ฃ๊ธฐ โ **"Update secret"** + +### 8-3. ์๊ตฌ ํด๊ฒฐ (๊ถ์ฅ) + +OAuth ๋์ ํ๋ฉด์ "ํ๋ก๋์ "์ผ๋ก ๊ฒ์ํ๋ฉด ํ ํฐ์ด ๋ง๋ฃ๋์ง ์์ต๋๋ค: + +1. **[Google Cloud Console](https://console.cloud.google.com/apis/credentials/consent)** โ OAuth ๋์ ํ๋ฉด +2. **"์ฑ ๊ฒ์"** ๋ฒํผ ํด๋ฆญ +3. ํ์ธ โ ๊ฒ์ ์๋ฃ + +--- + +## 9. ํธ๋ฌ๋ธ์ํ + +### โ `invalid_grant` โ Refresh Token ๋ง๋ฃ + +``` +ํ ํฐ ๋ฐ๊ธ ์คํจ: 400 {"error": "invalid_grant"} +``` + +**์์ธ**: Google OAuth Refresh Token ๋ง๋ฃ (ํ ์คํธ ์ฑ 7์ผ ์ ํ) +**ํด๊ฒฐ**: [์น์ 8](#8-google-oauth-ํ ํฐ-๊ฐฑ์ ) ์ฐธ๊ณ ํ์ฌ ํ ํฐ ๊ฐฑ์ + +--- + +### โ `ANTHROPIC_API_KEY ๋ฏธ์ค์ ` + +``` +โ ๏ธ ์ค์ ๋๋ฝ: ANTHROPIC_API_KEY ๋ฏธ์ค์ +``` + +**์์ธ**: `.env` ํ์ผ ์๊ฑฐ๋ ํค ๋ฏธ์ ๋ ฅ +**ํด๊ฒฐ**: `.env` ํ์ผ ํ์ธ, GitHub Secret ๋ฑ๋ก ํ์ธ + +--- + +### โ ์ด๋ฏธ์ง๊ฐ ์ฝ์ ๋์ง ์์ + +``` +์ด๋ฏธ์ง ์์ โ ํ ์คํธ๋ง์ผ๋ก ์ ๋ก๋ ์งํ +``` + +**์์ธ**: ๋ค์ด๋ฒ API ํค ๋ฏธ์ค์ + DDG ๊ฒ์ ์คํจ + Wikimedia ๊ฒฐ๊ณผ ์์ +**ํด๊ฒฐ**: +- `NAVER_CLIENT_ID` / `NAVER_CLIENT_SECRET` ์ค์ ํ์ธ +- ๋ค์ด๋ฒ ๊ฐ๋ฐ์ ์ผํฐ์์ "์ด๋ฏธ์ง ๊ฒ์" ๊ถํ ํ์ฑํ ํ์ธ + +--- + +### โ ์ ๋ก๋ ์คํจ: HTTP 401 + +``` +์ ๋ก๋ ์คํจ: 401 {"error": {"code": 401, "message": "Request had invalid authentication credentials"}} +``` + +**์์ธ**: Access Token ๋ฐ๊ธ ์คํจ (Refresh Token ๋ฌธ์ ) +**ํด๊ฒฐ**: Refresh Token ๊ฐฑ์ ํ GitHub Secret ์ ๋ฐ์ดํธ + +--- + +### โ JSON ํ์ฑ ์คํจ โ ์ฌ์๋ + +``` +JSON ํ์ฑ ์คํจ โ ์ฌ์๋ 1/3 +``` + +**์์ธ**: Claude ์๋ต์ด ์์ ํ JSON์ด ์๋ ๊ฒฝ์ฐ (๋๋ฌผ๊ฒ ๋ฐ์) +**ํด๊ฒฐ**: ์๋์ผ๋ก ์ต๋ 3ํ ์ฌ์๋ํจ. ์ง์ ๋ฐ์ ์ `CLAUDE_MODEL` ํ์ธ + +--- + +### โ ๋์๋ณด๋ ๋ฐ์ดํฐ๊ฐ ์ ๋ฐ์ดํธ๋์ง ์์ + +**ํ์ธ ์ฌํญ**: +1. GitHub Actions ๋ก๊ทธ์ "๋์๋ณด๋ ๋ฐ์ดํฐ ์ปค๋ฐ & ํธ์" ์คํ ํ์ธ +2. `docs/data/` ํด๋๊ฐ ๋ธ๋์น์ ์กด์ฌํ๋์ง ํ์ธ +3. GitHub Pages ์ค์ : ๋ธ๋์น `claude/blog-automation-system-KAbtE` / ํด๋ `/docs` + +--- + +## 10. ํ์ผ ๊ตฌ์กฐ + +``` +blog-automation/ +โโโ main.py # ๋ฉ์ธ ์คํ ํ์ผ (CLI ์ง์ ์ ) +โโโ config.py # ํ๊ฒฝ ๋ณ์ ๋ก๋ฉ ๋ฐ ์ค์ ๊ฐ ์ ์ +โโโ content_generator.py # Claude API๋ก ํฌ์คํธ ์์ฑ +โโโ keyword_collector.py # ํธ๋ ๋ ํค์๋ ์์ง +โโโ image_fetcher.py # ์ด๋ฏธ์ง ๊ฒ์ ๋ฐ ๋ณธ๋ฌธ ์ฝ์ +โโโ blogger_uploader.py # Blogger API ์ ๋ก๋ (๊ด๊ณ /๋ชฉ์ฐจ/์คํค๋ง ํฌํจ) +โโโ dashboard_exporter.py # ์คํ ์ด๋ ฅ ์ ์ฅ ๋ฐ ๋์๋ณด๋ ๋ฐ์ดํฐ ๋ด๋ณด๋ด๊ธฐ +โโโ get_refresh_token.py # Google OAuth Refresh Token ๋ฐ๊ธ ์คํฌ๋ฆฝํธ +โโโ requirements.txt # Python ์์กด์ฑ ํจํค์ง +โโโ logs/ +โ โโโ automation.log # ์คํ ๋ก๊ทธ +โ โโโ run_history.json # ๋์ ์คํ ์ด๋ ฅ (์ต๋ 100๊ฐ) +โ โโโ used_keywords.json # ์ค๋ณต ํค์๋ ๋ฐฉ์ง์ฉ ์ฌ์ฉ ์ด๋ ฅ +โโโ docs/ + โโโ data/ + โโโ posts.json # ๋์๋ณด๋์ฉ ํฌ์คํธ ๋ชฉ๋ก + โโโ runs.json # ๋์๋ณด๋์ฉ ์คํ ์ด๋ ฅ + โโโ analytics.json # ์์ต ๋ถ์ ๋ฐ์ดํฐ + โโโ meta.json # ์์คํ ๋ฉํ ์ ๋ณด + +.github/ +โโโ workflows/ + โโโ blog-run.yml # GitHub Actions ์๋ํ ์ํฌํ๋ก์ฐ +``` + +--- + +## ๋น ๋ฅธ ์ฐธ์กฐ + +| ์์ | ๋ช ๋ น / URL | +|------|-----------| +| ๋ก์ปฌ ํ ์คํธ | `python main.py --test` | +| ์ฆ์ 1ํ ์คํ | `python main.py --once` | +| ํน์ ํค์๋ | `python main.py --once --keyword "ํค์๋"` | +| Actions ์๋ ์คํ | GitHub โ Actions โ Run workflow | +| ๋์๋ณด๋ | https://kevinlee7250.github.io/cli/ | +| Secrets ๊ด๋ฆฌ | https://github.com/kevinlee7250/cli/settings/secrets/actions | +| ํ ํฐ ๊ฐฑ์ | https://developers.google.com/oauthplayground | +| ๊ถํ ์ทจ์ | https://myaccount.google.com/permissions | + +--- + +## ๐ AdSense ์น์ธ ํ ์ค์ ๋ฐฉ๋ฒ (์น์ธ ๋๊ธฐ ์ค) + +AdSense ์น์ธ์ด ๋๋ฉด ์๋ ๋ ๋จ๊ณ๋ง ํ๋ฉด ์ฆ์ ๊ด๊ณ ๊ฐ ์ฝ์ ๋ฉ๋๋ค. ์ฝ๋ ์์ ๋ถํ์. + +### 1๋จ๊ณ โ GitHub Secrets ๋ฑ๋ก (์ ์ฒด ๋ธ๋ก๊ทธ ๊ณตํต) + +https://github.com/kevinlee7250/cli/settings/secrets/actions ์์: + +| Secret ์ด๋ฆ | ๊ฐ | ํ์ธ ์์น | +|------------|-----|----------| +| `ADSENSE_CLIENT_ID` | `ca-pub-xxxxxxxxxxxxxxxx` | AdSense โ ๊ณ์ โ ๊ณ์ ์ ๋ณด | +| `ADSENSE_SLOT_IDS` | `1234567890,0987654321` (์ผํ ๊ตฌ๋ถ) | AdSense โ ๊ด๊ณ โ ๊ด๊ณ ๋จ์๋ณ ์ฌ๋กฏ ID | + +๋ฑ๋ก ํ ๋ค์ ์๋ ์คํ๋ถํฐ ์ ๊ธ์ ๊ด๊ณ ์ฝ๋๊ฐ ์๋ ์ฝ์ ๋ฉ๋๋ค. +`ADSENSE_MODE=auto`(๊ธฐ๋ณธ๊ฐ)๋ ์๋ ๊ด๊ณ , ์ฌ๋กฏ ID๋ฅผ ๋ฃ์ผ๋ฉด ๋ณธ๋ฌธ ๋ด ๋ฐฐ์น๋ ํจ๊ป ์ ์ฉ๋ฉ๋๋ค. + +### 2๋จ๊ณ (์ ํ) โ ๋ธ๋ก๊ทธ๋ณ ๋ค๋ฅธ AdSense ๊ณ์ ์ฌ์ฉ ์ + +`blog-automation/blogs.json`์ ํด๋น ๋ธ๋ก๊ทธ ํญ๋ชฉ์ ์ถ๊ฐ: + +```json +{ + "id": "blog2", + "adsense_client_id": "ca-pub-๋ธ๋ก๊ทธ2์ ์ฉID", + "adsense_slot_ids": "์ฌ๋กฏ1,์ฌ๋กฏ2" +} +``` + +๋ธ๋ก๊ทธ๋ณ ๊ฐ์ด ์์ผ๋ฉด 1๋จ๊ณ์ ๊ณตํต Secret ๊ฐ์ ์ฌ์ฉํฉ๋๋ค. + +### ํ์ธ ๋ฐฉ๋ฒ + +- ์ค์ ํ ์๋ ์คํ: Actions โ ๋ธ๋ก๊ทธ ์๋ํ ์คํ โ Run workflow (mode: test) +- ๋ก๊ทธ์์ `adsense_validator` ๊ฒฝ๊ณ ๊ฐ ์ฌ๋ผ์ก๋์ง ํ์ธ +- auto-repair ๊ฑด๊ฐ์ ์์ "AdSense ๋ฏธ์ค์ " ๊ฒฝ๊ณ ๊ฐ ํด์ ๋๋ฉด ์๋ฃ + +--- + +## ๐ฑ ์์ ์๋ ๋ฐํ ํ์ฑํ ๋ฐฉ๋ฒ (ํ์ฌ ๋นํ์ฑ) + +์์ ์ฝํ ์ธ (์ธ์คํ๊ทธ๋จ ์บก์ ยท์ค๋ ๋ ์๋ฆฌ์ฆยทํฑํก ์คํฌ๋ฆฝํธ)๋ ๋งค ๊ธ๋ง๋ค ์๋ ์์ฑ๋๊ณ +์์ง๋ง, ์ค์ ๋ฐํ์ `SOCIAL_AUTO_PUBLISH`๊ฐ ๊บผ์ ธ ์์ด ์คํ๋์ง ์์ต๋๋ค. + +### ํ์ฑํ ์ ์ฐจ + +1. GitHub Secrets์ ๋ฑ๋ก: + +| Secret | ๊ฐ | ๋น๊ณ | +|--------|-----|------| +| `SOCIAL_AUTO_PUBLISH` | `true` | ๋ง์คํฐ ์ค์์น | +| `INSTAGRAM_ACCESS_TOKEN` | ์ฅ๊ธฐ ํ ํฐ | Meta ๊ฐ๋ฐ์ ์ฝ์ โ Instagram Graph API | +| `INSTAGRAM_ACCOUNT_ID` | ๋น์ฆ๋์ค ๊ณ์ ID | | +| `THREADS_ACCESS_TOKEN` | Threads API ํ ํฐ | | +| `THREADS_USER_ID` / `THREADS_HANDLE` | ์ฌ์ฉ์ ID / @ํธ๋ค | | + +2. ์ธ์คํ๊ทธ๋จ์ **์ด๋ฏธ์ง๊ฐ ํ์**์ ๋๋ค โ ๋ณธ๋ฌธ ์ฒซ ์ด๋ฏธ์ง๊ฐ ์๋์ผ๋ก ์ฒจ๋ถ๋๋ฏ๋ก + ์ด๋ฏธ์ง ํ์ดํ๋ผ์ธ์ด ์ ์ ์๋ํ๋์ง ๋จผ์ ํ์ธํ์ธ์ (ํฌ์คํธ๋น ์ด๋ฏธ์ง 1๊ฐ ์ด์). + +3. ํ ํฐ ์์ด `SOCIAL_AUTO_PUBLISH=true`๋ง ์ผ๋ฉด ํด๋น ํ๋ซํผ์ ๊ฑด๋๋ฐ๊ณ + ๊ทธ ์ฌ์ ๊ฐ ๋์๋ณด๋ ์์ ํญ์ ๊ธฐ๋ก๋ฉ๋๋ค. + +--- + +## ๐จ ์คํจ ์๋ฆผ (ํ ๋ ๊ทธ๋จ) ์ค์ โ ์ ํ + +blog-run ์คํจ ์ ํ ๋ ๊ทธ๋จ์ผ๋ก ์ฆ์ ์๋ฆผ์ ๋ฐ์ผ๋ ค๋ฉด: + +1. ํ ๋ ๊ทธ๋จ์์ `@BotFather`์๊ฒ `/newbot` โ ๋ด ํ ํฐ ๋ฐ๊ธ +2. ๋ง๋ ๋ด๊ณผ ๋ํ ์์ ํ `https://api.telegram.org/bot<ํ ํฐ>/getUpdates` ์ ์ โ `chat.id` ํ์ธ +3. GitHub Secrets ๋ฑ๋ก: `TELEGRAM_BOT_TOKEN`, `TELEGRAM_CHAT_ID` + +๋ฏธ์ค์ ์ ์๋ฆผ ์์ด ๊ธฐ์กด๋๋ก ๋์ํฉ๋๋ค (GitHub Issue ์๋ฆผ์ schedule-monitor๊ฐ ๊ณ์ ๋ด๋น). diff --git a/blog-automation/MIGRATION.md b/blog-automation/MIGRATION.md new file mode 100644 index 0000000000000..cf1a1d75b9f40 --- /dev/null +++ b/blog-automation/MIGRATION.md @@ -0,0 +1,78 @@ +# ๋ธ๋ก๊ทธ ์ ์ฉ ์ ์ฅ์ ๋ถ๋ฆฌ ๊ฐ์ด๋ (kevin-blog-os) + +## ์ ๋ถ๋ฆฌํ๋ + +ํ์ฌ ๋ธ๋ก๊ทธ ์์คํ ์ npm CLI ํฌํฌ(`kevinlee7250/cli`) ์์ ๋ค์ด ์์ต๋๋ค. +npm ์๋ณธ ์ฝ๋(workspaces/, lib/, node_modules ๋ฑ)์ ์์ฌ ์์ด ์ ์ฅ์๊ฐ ๋ฌด๊ฒ๊ณ , +CI ์ํฌํ๋ก์ฐ 45๊ฐ ์ค 30๊ฐ ์ด์์ด npm์ฉ์ ๋๋ค. ๋ธ๋ก๊ทธ ์ ์ฉ ์ ์ฅ์๋ก ๋ถ๋ฆฌํ๋ฉด +์ฝ๋ยท๋ณด์ยท์ํฌํ๋ก์ฐ ๊ด๋ฆฌ๊ฐ ๋จ์ํด์ง๋๋ค. + +## ๊ถ์ฅ ๊ตฌ์กฐ + +``` +kevin-blog-os/ +โโโ apps/ +โ โโโ dashboard/ โ docs/ (index.html, data/) +โ โโโ worker/ โ main.py, publish_pending.py ๋ฑ ์คํ ์ง์ ์ +โโโ core/ +โ โโโ research/ โ research_collector.py, evidence_builder.py, source_validator.py +โ โโโ generation/ โ content_generator.py, series_planner.py, image_fetcher.py +โ โโโ verification/ โ adsense_validator.py, final_editor.py, post_verifier.py +โ โโโ publishing/ โ blogger_uploader.py, social_publisher.py, internal_linker.py +โ โโโ analytics/ โ post_lifecycle.py, title_ab_tracker.py, gsc_optimizer.py, +โ weekly_learning.py, blog_analytics.py, dashboard_exporter.py +โโโ profiles/ โ author_profile.json, blogs.json +โโโ data/ โ logs/ (run_history, post_registry, evidence, backups) +โโโ tests/ โ tests/ +โโโ workflows/ โ .github/workflows/ ์ค ๋ธ๋ก๊ทธ ๊ด๋ จ 15๊ฐ๋ง +``` + +## ์ด๊ด ์ ์ฐจ (๋ก์ปฌ์์ ์คํ) + +```bash +# 1. ์ ์ ์ฅ์๋ฅผ GitHub์์ ์์ฑ: kevinlee7250/kevin-blog-os (private ๊ถ์ฅ) + +# 2. ํ์คํ ๋ฆฌ ์์ด ๊น๋ํ๊ฒ ์์ (๊ถ์ฅ โ ๊ณผ๊ฑฐ ์ปค๋ฐ์ ๋จ์ ์คํ ๋ฐ์ดํฐ ์ ์ธ) +git clone --branch claude/blog-automation-system-KAbtE \ + https://github.com/kevinlee7250/cli.git blog-src +mkdir kevin-blog-os && cd kevin-blog-os && git init -b main + +# 3. ๊ตฌ์กฐ์ ๋ง๊ฒ ๋ณต์ฌ +mkdir -p apps/dashboard apps/worker core/{research,generation,verification,publishing,analytics} \ + profiles data tests workflows +cp -r ../blog-src/docs/* apps/dashboard/ +cp ../blog-src/blog-automation/{main.py,publish_pending.py,fix_existing_posts.py} apps/worker/ +cp ../blog-src/blog-automation/{research_collector,evidence_builder,source_validator}.py core/research/ +cp ../blog-src/blog-automation/{content_generator,series_planner,image_fetcher}.py core/generation/ +cp ../blog-src/blog-automation/{adsense_validator,final_editor,post_verifier}.py core/verification/ +cp ../blog-src/blog-automation/{blogger_uploader,social_publisher,internal_linker}.py core/publishing/ +cp ../blog-src/blog-automation/{post_lifecycle,title_ab_tracker,gsc_optimizer,weekly_learning,blog_analytics,dashboard_exporter}.py core/analytics/ +cp ../blog-src/blog-automation/{author_profile.json,blogs.json} profiles/ +cp -r ../blog-src/blog-automation/tests tests +# ๋ธ๋ก๊ทธ ์ํฌํ๋ก์ฐ๋ง ์ ๋ณ ๋ณต์ฌ +for f in blog-run blog-optimize blog-analytics blog-tests blog-verify blog-sitemap \ + blog-schedule-monitor collect-keywords post-lifecycle deploy-dashboard \ + manual-publish weekly-learning auto-repair fix-posts gsc-register; do + cp "../blog-src/.github/workflows/$f.yml" workflows/ 2>/dev/null +done + +# 4. import ๊ฒฝ๋ก๋ core ํจํค์ง ๊ธฐ์ค์ผ๋ก ์ผ๊ด ์์ ํ์ (sys.path ๋๋ ํจํค์งํ) + +# 5. GitHub Secrets ์ด์ (์ ์ ์ฅ์ Settings โ Secrets): +# ANTHROPIC_API_KEY, GOOGLE_CLIENT_ID/SECRET/REFRESH_TOKEN, BLOGGER_BLOG_ID, +# NAVER_CLIENT_ID/SECRET, PIXABAY_API_KEY, BLOGS_CONFIG, GSC_SITE_URL +# โ ๏ธ Secret ๊ฐ์ ํ์ผ๋ก ์ฎ๊ธฐ์ง ๋ง ๊ฒ โ GitHub UI์์ ์ง์ ์ ๋ ฅ + +# 6. GitHub Pages: ์ ์ ์ฅ์ Settings โ Pages โ apps/dashboard ๊ธฐ์ค ๋ฐฐํฌ๋ก ์ ํ +``` + +## ๋ณด์ ์ฒดํฌ๋ฆฌ์คํธ (์ด๊ด ์ฌ๋ถ์ ๋ฌด๊ดํ๊ฒ ์ ์ง) + +- [x] ๋ธ๋ผ์ฐ์ ์ง์ ๊ฒ์ ์ ๊ฑฐ โ Google client_secretยทrefresh_token์ localStorage์ ์ ์ฅํ์ง ์์ +- [x] API ํค ๊ด๋ฆฌ UI์์ Google ๋น๋ฐ ํ ํฐ์ GitHub Secrets ์ ์ฉ (๋ก์ปฌ ์ ์ฅ ๊ธ์ง) +- [x] ๊ณผ๊ฑฐ localStorage์ ์ ์ฅ๋ ์ฅ๊ธฐ ํ ํฐ ์๋ ์ญ์ (๋ง์ด๊ทธ๋ ์ด์ ์ฝ๋) +- [x] ๊ด๋ฆฌ์ ๊ธฐ๋ฅ(์คํยท๊ฒ์ยท์์ )์ GitHub PAT ์ธ์ฆ ํ์ โ PAT ์์ด๋ ์กฐํ๋ง ๊ฐ๋ฅ +- [x] ์๋ ์๋ฆฌ ์ ๋ฐ์ดํฐ ๋ฐฑ์ (logs/repair_backups/, ์ต๊ทผ 10๊ฐ ์ ์ง) +- [x] ์๋ฆฌ ํ ํ์ผ ์์ ๊ฐ์ง ์ ๋ฐฑ์ ์์ ์๋ ๋กค๋ฐฑ + repair_history์ ๊ธฐ๋ก +- [x] ๋ณ๊ฒฝ ์ด๋ ฅ: post_registry / run_history / title_changes / code_repairs / repair_history +- [ ] PAT๋ fine-grained(์ด ์ ์ฅ์ ํ์ , Actions:write + Contents:write)๋ก ๋ฐ๊ธ ๊ถ์ฅ diff --git a/blog-automation/README.md b/blog-automation/README.md index f6e5629083499..4afb67ff955bd 100644 --- a/blog-automation/README.md +++ b/blog-automation/README.md @@ -1,82 +1,147 @@ -# ๊ตฌ๊ธ ๋ธ๋ก๊ทธ ์์ตํ ์๋ํ +# ๋ธ๋ก๊ทธ ์๋ํ ์์คํ -Google Trends ํธ๋ ๋ ํค์๋ โ Claude AI ๊ธ ์์ฑ โ Blogger ์๋ ํฌ์คํ +Claude AI + Google Blogger + AdSense ์์ต ๊ทน๋ํ ์์ ์๋ํ ์์คํ . -## ์ค์น +## ๐ ์๋ํ ํ๋ฆ -```bash -pip install -r requirements.txt -cp .env.example .env -# .env ํ์ผ์ ํธ์งํด์ API ํค ์ ๋ ฅ +``` +Google Trends RSS / ๋ค์ด๋ฒ DataLab + โ + ํธ๋ ๋ ํค์๋ ์๋ ์์ง + โ + Claude AI ๋ธ๋ก๊ทธ ํฌ์คํธ ์์ฑ + (SEO + AdSense ์ต์ ํ + ์ด๋ฏธ์ง ์๋ ์ฝ์ ) + โ + Google Blogger ์๋ ์ ๋ก๋ + (๊ตฌ์กฐํ ๋ฐ์ดํฐ + ๋ชฉ์ฐจ + ๊ด๊ณ ์ฌ๋กฏ 6๊ฐ) ``` -## ์ค์ ์์ +## ๐ ํ์ผ ๊ตฌ์กฐ -### 1. Anthropic API ํค -[console.anthropic.com](https://console.anthropic.com) โ API Keys โ `.env`์ `ANTHROPIC_API_KEY` +``` +blog-automation/ +โโโ main.py # ๋ฉ์ธ ์คํ ํ์ผ +โโโ config.py # ํ๊ฒฝ ๋ณ์ ์ค์ +โโโ keyword_collector.py # ํธ๋ ๋ ํค์๋ ์์ง +โโโ content_generator.py # Claude AI ํฌ์คํธ ์์ฑ +โโโ image_fetcher.py # ์ด๋ฏธ์ง ์๋ ๊ฒ์ & ์ฝ์ +โโโ blogger_uploader.py # Blogger API ์ ๋ก๋ +โโโ requirements.txt # Python ์์กด์ฑ +โโโ .env.example # ํ๊ฒฝ ๋ณ์ ์์ +โโโ test_image.py # ์ด๋ฏธ์ง ๊ธฐ๋ฅ ํ ์คํธ +``` -### 2. Google Cloud ํ๋ก์ ํธ ์ค์ -1. [console.cloud.google.com](https://console.cloud.google.com) ์ ์ -2. ์ ํ๋ก์ ํธ ์์ฑ -3. **Blogger API** ํ์ฑํ -4. **OAuth 2.0 ํด๋ผ์ด์ธํธ ID** ์์ฑ (์ ํ: ๋ฐ์คํฌํฑ ์ฑ) -5. Client ID, Client Secret์ `.env`์ ์ ๋ ฅ +--- -### 3. ๋ธ๋ก๊ทธ ID ํ์ธ -- Blogger ๊ด๋ฆฌ์ โ ์ค์ โ ๋ธ๋ก๊ทธ ID ๋ณต์ฌ โ `.env`์ `BLOGGER_BLOG_ID` +## ๐ GitHub Actions์์ ์คํํ๊ธฐ -### 4. Refresh Token ๋ฐ๊ธ (์ต์ด 1ํ) -```bash -python setup_blogger_auth.py -``` -๋ธ๋ผ์ฐ์ ์ธ์ฆ ํ ์ถ๋ ฅ๋ Refresh Token์ `.env`์ ์ ๋ ฅ +### 1๋จ๊ณ โ GitHub Secrets ๋ฑ๋ก -## ์คํ +์ ์ฅ์ โ **Settings โ Secrets and variables โ Actions โ New repository secret** -### ์ฆ์ ์คํ (ํ ์คํธ) -```bash -python main.py --once -``` +| Secret ์ด๋ฆ | ์ค๋ช | ์ทจ๋ ๋ฐฉ๋ฒ | +|-------------|------|-----------| +| `ANTHROPIC_API_KEY` | Claude API ํค | [console.anthropic.com](https://console.anthropic.com) | +| `GOOGLE_CLIENT_ID` | Blogger OAuth ํด๋ผ์ด์ธํธ ID | Google Cloud Console | +| `GOOGLE_CLIENT_SECRET` | Blogger OAuth ํด๋ผ์ด์ธํธ ์ํฌ๋ฆฟ | Google Cloud Console | +| `GOOGLE_REFRESH_TOKEN` | Blogger OAuth ๋ฆฌํ๋ ์ ํ ํฐ | OAuth ์ธ์ฆ ํ ์ทจ๋ | +| `BLOGGER_BLOG_ID` | ๋ธ๋ก๊ทธ ID | Blogger ๋์๋ณด๋ URL์ ์ซ์ | +| `NAVER_CLIENT_ID` | ๋ค์ด๋ฒ ์ด๋ฏธ์ง ๊ฒ์ API ID | [developers.naver.com](https://developers.naver.com/apps/) | +| `NAVER_CLIENT_SECRET` | ๋ค์ด๋ฒ ์ด๋ฏธ์ง ๊ฒ์ API ์ํฌ๋ฆฟ | ๋์ผ | +| `ADSENSE_CLIENT_ID` | AdSense ๊ฒ์์ ID | AdSense ๊ด๋ฆฌ์ โ ๊ณ์ ์ ๋ณด | +| `ADSENSE_SLOT_IDS` | ๊ด๊ณ ์ฌ๋กฏ ID 6๊ฐ (์ผํ ๊ตฌ๋ถ) | AdSense โ ๊ด๊ณ โ ๊ด๊ณ ๋จ์ | -### ์ค์ผ์ค๋ฌ ์คํ (๋ฐ๋ชฌ) -```bash -python main.py -``` +### 2๋จ๊ณ โ ์ํฌํ๋ก์ฐ ์๋ ์คํ -### ๋ฐฑ๊ทธ๋ผ์ด๋ ์คํ (Linux) -```bash -nohup python main.py > /dev/null 2>&1 & -``` +1. GitHub ์ ์ฅ์ โ **Actions** ํญ +2. **๋ธ๋ก๊ทธ ์๋ํ ์คํ** ์ ํ +3. **Run workflow** ํด๋ฆญ +4. ์ต์ ์ค์ : + - **ํค์๋**: ๋น์๋๋ฉด Google Trends ์๋ ์์ง + - **ํฌ์คํธ ์**: 1~5 (๊ธฐ๋ณธ 3) + - **๋ชจ๋**: `live`(์ฆ์ ๊ฒ์) / `draft`(์์์ ์ฅ) / `test`(์ ๋ก๋ ์์ด ํ์ธ) + +### ์๋ ์คํ ์ค์ผ์ค + +๋งค์ผ **์ค์ 9์ (KST)** ์๋ ์คํ (`.github/workflows/blog-run.yml`์ cron ์ค์ ). + +--- + +## ๐ป ๋ก์ปฌ์์ ์คํํ๊ธฐ + +### ์ค์น -### systemd ์๋น์ค ๋ฑ๋ก (์๋ฒ ์ด์ ์) ```bash -sudo nano /etc/systemd/system/blog-automation.service +cd blog-automation +pip install -r requirements.txt +cp .env.example .env +# .env ํ์ผ์ API ํค ์ ๋ ฅ ``` -```ini -[Unit] -Description=Blog Automation -[Service] -WorkingDirectory=/path/to/blog-automation -ExecStart=/usr/bin/python3 main.py -Restart=always +### ์คํ ๋ช ๋ น์ด -[Install] -WantedBy=multi-user.target -``` ```bash -sudo systemctl enable --now blog-automation +# ํ ์คํธ (์ ๋ก๋ ์์ด ๊ธ๋ง ์์ฑ) +python main.py --test + +# ํน์ ํค์๋๋ก ํ ์คํธ +python main.py --test --keyword "์ฌํ ํฌ ๋ฐฉ๋ฒ,์ฃผ์ ํฌ์" + +# ์ฆ์ 1ํ ์คํ (Blogger ์ ๋ก๋) +python main.py --once + +# ํน์ ํค์๋๋ก 1ํ ์คํ +python main.py --once --keyword "์ฌํ ํฌ ๋ฐฉ๋ฒ" + +# ์ค์ผ์ค ๋ชจ๋ (๋งค์ผ ์ค์ 9์ ์๋ ์คํ) +python main.py + +# ์ด๋ฏธ์ง ๊ธฐ๋ฅ ํ ์คํธ +python test_image.py "์ค๋ ํซ์ด์" ``` -## ํ์ผ ๊ตฌ์กฐ - -| ํ์ผ | ์ญํ | -|------|------| -| `main.py` | ๋ฉ์ธ ์คํ + ์ค์ผ์ค๋ฌ | -| `trend_fetcher.py` | Google Trends ํค์๋ ์์ง | -| `content_generator.py` | Claude API๋ก SEO ๊ธ ์์ฑ | -| `blogger_uploader.py` | Blogger API ํฌ์คํ | -| `config.py` | ์ค์ ๋ก๋ | -| `setup_blogger_auth.py` | OAuth Refresh Token ๋ฐ๊ธ ๋์ฐ๋ฏธ | -| `posted_keywords.json` | ์ค๋ณต ํฌ์คํ ๋ฐฉ์ง ํ์คํ ๋ฆฌ | -| `blog_automation.log` | ์คํ ๋ก๊ทธ | +--- + +## โ๏ธ Blogger OAuth ์ค์ ๋ฐฉ๋ฒ + +1. [Google Cloud Console](https://console.cloud.google.com) โ ์ ํ๋ก์ ํธ ์์ฑ +2. **API ๋ฐ ์๋น์ค โ ๋ผ์ด๋ธ๋ฌ๋ฆฌ** โ "Blogger API v3" ์ฌ์ฉ ์ค์ +3. **์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด โ OAuth ํด๋ผ์ด์ธํธ ID ๋ง๋ค๊ธฐ** (์ ํ: ์น ์ ํ๋ฆฌ์ผ์ด์ ) +4. ๋ฆฌ๋๋ ์ URI ์ถ๊ฐ: `https://developers.google.com/oauthplayground` +5. [OAuth 2.0 Playground](https://developers.google.com/oauthplayground) ์ ์ + - ์ค๋ฅธ์ชฝ ์๋จ ์ค์ ์์ด์ฝ โ "Use your own OAuth credentials" ์ฒดํฌ + - Client ID / Secret ์ ๋ ฅ + - Step 1: `https://www.googleapis.com/auth/blogger` ์ ๋ ฅ ํ Authorize + - Step 2: Exchange authorization code for tokens + - **Refresh token** ๋ณต์ฌ โ `GOOGLE_REFRESH_TOKEN`์ ์ ๋ ฅ +6. Blogger ๋ธ๋ก๊ทธ URL์์ Blog ID ํ์ธ: `https://www.blogger.com/blog/posts/{BLOG_ID}` + +--- + +## ๐ง ํ๊ฒฝ ๋ณ์ (`.env`) + +```env +# Claude API +ANTHROPIC_API_KEY=sk-ant-... + +# Google Blogger OAuth2 +GOOGLE_CLIENT_ID=... +GOOGLE_CLIENT_SECRET=... +GOOGLE_REFRESH_TOKEN=... +BLOGGER_BLOG_ID=... + +# AdSense +ADSENSE_CLIENT_ID=ca-pub-XXXXXXXXXXXXXXXX +ADSENSE_SLOT_IDS=1111111111,2222222222,3333333333,4444444444,5555555555,6666666666 + +# ๋ค์ด๋ฒ ์ด๋ฏธ์ง ๊ฒ์ (์ ํ) +NAVER_CLIENT_ID=... +NAVER_CLIENT_SECRET=... + +# ์คํ ์ค์ +POSTS_PER_RUN=3 +POST_STATUS=live # live | draft +BLOG_LANGUAGE=ko # ko | en +TREND_COUNTRY=KR # KR | US +SCHEDULE_CRON=0 9 * * * # ๋งค์ผ ์ค์ 9์ +``` diff --git a/blog-automation/adsense_audit.py b/blog-automation/adsense_audit.py new file mode 100644 index 0000000000000..3e6a1d62f7fc2 --- /dev/null +++ b/blog-automation/adsense_audit.py @@ -0,0 +1,270 @@ +"""AdSense ์น์ธ ๋๋น ๋ฐํ ๊ธ ์ผ๊ด ๊ฐ์ฌยท๋ณด์ + +๋ธ๋ก๊ทธ์ ๋ฐํ ๊ธ ์ ์ฒด๋ฅผ Blogger API๋ก ๊ฒ์ฌํ๊ณ , ์์ ํ๊ฒ ์๋ ๋ณด์ +๊ฐ๋ฅํ ํญ๋ชฉ์ ์ฆ์ ์์ ํฉ๋๋ค. ๋ณธ๋ฌธ ํ ์คํธ๋ ์ฌ์์ฑํ์ง ์์ต๋๋ค. + +๊ฒ์ฌ ํญ๋ชฉ (AdSense '๊ฐ์น ์๋ ์ฝํ ์ธ ' ์ ์ฑ ๊ธฐ์ค): + โ ๊ธ์ ์ โฅ 2,500์ โ ๋ฏธ๋ฌ ์ ๋ฆฌํฌํธ + โก ์ด๋ฏธ์ง โฅ 1๊ฐ โ ์์ผ๋ฉด ์ ๋ชฉ ์ธ๋ค์ผ ์๋ ์ฝ์ [์๋๋ณด์] + โข ๋ชจ๋ ์ด๋ฏธ์ง alt ํ ์คํธ โ ์์ผ๋ฉด ์ ๋ชฉ ๊ธฐ๋ฐ alt ์ฑ์ [์๋๋ณด์] + โฃ ๋ชฉ์ฐจ ์ ํํ 1๊ฐ โ ์ค๋ณต ์ ์ ๊ฑฐ [์๋๋ณด์] + โค YMYL(๊ธ์ตยท๊ฑด๊ฐยท๋ฒ๋ฅ ) ๊ธ ๋ฉด์ฑ ๋ฌธ๊ตฌ โ ์์ผ๋ฉด ํ๋จ ์ฃผ์ ๋ฐ์ค ์ฝ์ [์๋๋ณด์] + โฅ FAQ ์น์ โ ์์ผ๋ฉด ๋ฆฌํฌํธ (๋ณธ๋ฌธ ์ฌ์์ฑ ์์) + โฆ ์ถ์ฒยท์ฐธ๊ณ ์๋ฃ โ ์์ผ๋ฉด ๋ฆฌํฌํธ + โง ๊ณผ์ฅยทํด๋ฆญ ์ ๋ ๋ฌธ๊ตฌ (์ ๋ชฉ) โ ๊ฐ์ง ์ ๋ฆฌํฌํธ + +๊ฒฐ๊ณผ๋ docs/data/adsense_audit.json์ ์ ์ฅ๋์ด ๋์๋ณด๋์์ ํ์ธ ๊ฐ๋ฅ. + +Usage: + python adsense_audit.py --blog blog1 # ๊ฒ์ฌ + ์๋ ๋ณด์ + python adsense_audit.py --blog blog1 --dry-run # ๊ฒ์ฌ๋ง +""" + +import argparse +import json +import logging +import os +import re +import sys +import time +from datetime import datetime + +import requests +from dotenv import load_dotenv +load_dotenv() + +logging.basicConfig(level=logging.INFO, format="%(asctime)s %(levelname)s %(message)s") +logger = logging.getLogger(__name__) + +BLOGGER_API_BASE = "https://www.googleapis.com/blogger/v3" +_BASE_DIR = os.path.dirname(__file__) +REPORT_PATH = os.path.join(_BASE_DIR, "..", "docs", "data", "adsense_audit.json") + +MIN_CHARS = 2500 + +_YMYL_KW = {"ํฌ์", "์ฃผ์", "etf", "ํ๋", "์ฌํ ํฌ", "๋ถ๋์ฐ", "๊ธ๋ฆฌ", "๋์ถ", "๋ณดํ", + "์ฐ๊ธ", "์ธ๊ธ", "์ ์ธ", "์ฝ์ธ", "๊ฑด๊ฐ", "๋ค์ด์ดํธ", "์ง๋ณ", "์๋ฃ", "์น๋ฃ", + "์์", "ํ์", "๋น๋จ", "๋ฒ๋ฅ ", "๊ณ์ฝ", "์์ก", "์์"} + +_CLICKBAIT = ["์ถฉ๊ฒฉ", "๊ฒฝ์ ", "๋ฏธ์ณค๋ค", "๋๋ฐ", "ํ", "์๋ฆ", "์ ๋ ํ์ง ๋ง", + "100% ๋ณด์ฅ", "๋ฌด์กฐ๊ฑด ๋ฒ", "ํ์คํ ์์ต"] + +_DISCLAIMER_MARKERS = ["์ ๋ฌธ๊ฐ์ ์๋ด", "ํฌ์ ํ๋จ", "์ํ์ ์กฐ์ธ", "๋ฒ๋ฅ ์๋ฌธ", + "๊ฐ์ธ์ ์ํฉ", "์ฐธ๊ณ ์ฉ", "๋ฉด์ฑ ", "์ฑ ์์ง์ง ์"] + +_DISCLAIMER_HTML = ( + '\n
' + 'โ ๏ธ ์ด ๊ธ์ ์ผ๋ฐ์ ์ธ ์ ๋ณด ์ ๊ณต์ ๋ชฉ์ ์ผ๋ก ํ๋ฉฐ, ์ ๋ฌธ์ ์ธ ์กฐ์ธ์ ๋์ ํ์ง ์์ต๋๋ค. ' + 'ํฌ์ยท๊ฑด๊ฐยท๋ฒ๋ฅ ๋ฑ ์ค์ํ ๊ฒฐ์ ์ ๋ฐ๋์ ํด๋น ๋ถ์ผ ์ ๋ฌธ๊ฐ์ ์๋ด ํ ์งํํ์ธ์. ' + '๊ฐ์ธ์ ์ํฉ์ ๋ฐ๋ผ ๊ฒฐ๊ณผ๊ฐ ๋ค๋ฅผ ์ ์์ต๋๋ค.
]*>\s*๐\s*๋ชฉ์ฐจ\s*
\s*์ด ๊ธ์ ๋ชฉ์ฐจ
' - f'๐ ๋ชฉ์ฐจ
+๊ด๋ จ ํ๊ทธ
' - f'๐ท๏ธ ๊ด๋ จ ํ๊ทธ
+์ฐธ๊ณ ์๋ฃ
' - f'๐ ์ฐธ๊ณ ์๋ฃ
' + f'๋์์ด ๋๋์?
' - '' - '๋ถ๋งํฌํ๊ณ ๊ณต์ ํด์ฃผ์ธ์!
' - '' - '๋ ์ข์ ์ ๋ณด๋ก ๋ณด๋ตํ๊ฒ ์ต๋๋ค. ๊ตฌ๋ ํ๋ฉด ์ ๊ธ์ ๋ฐ๋ก ๋ฐ์๋ณด์ค ์ ์์ต๋๋ค.
' - '' - 'ํฌ์ยท์๋ฃยท๋ฒ๋ฅ ๋ฑ ์ ๋ฌธ ๋ถ์ผ๋ ๋ฐ๋์ ์ ๋ฌธ๊ฐ์ ์๋ดํ์ธ์.
' - '
+ ๐ ์ด ๊ธ์ด ๋์์ด ๋๋ค๋ฉด ๋ถ๋งํฌ & ๊ณต์ ํด์ฃผ์ธ์!
+ โ ๏ธ ํฌ์ยท์๋ฃยท๋ฒ๋ฅ ๋ฑ ์ ๋ฌธ ๋ถ์ผ๋ ๋ฐ๋์ ์ ๋ฌธ๊ฐ์ ์๋ดํ์ธ์.
+
{disclaimer}
+ +โโโ FAQ (์์ฃผ ๋ฌป๋ ์ง๋ฌธ) โโโ +๊ฒ์ ์๋์ ๋ ์๊ฐ ์ค์ ๋ก ๊ถ๊ธํดํ ๋๋ง 2~5๊ฐ. ํ์ ์์ผ๋ฉด FAQ ์น์ ๊ณผ faq ํ๋๋ฅผ ์๋ต(๋น ๋ฐฐ์ด)ํ์ธ์. ๋ชจ๋ ๊ธ์ ๊ฐ์ ๊ฐ์ ๊ธ์ง. ๋ต๋ณ์ ์งง๊ณ ๋ช ํํ๊ฒ, ๊ทผ๊ฑฐ ์๋ ๋จ์ ๊ธ์ง. +๋ต๋ณ
+(ํ์ํ ๋๋ง 2~5์) + +โโโ Google AdSense ์ ์ฑ ์ค์ โโโ +โ ์๋ณธ์ฑ โ ๋ ์ฐฝ์ ๊ฒฝํยท์ธ์ฌ์ดํธ ํ์. ์ธํฐ๋ท์ ํํ ์ ๋ณด ๋์ด ๊ธ์ง +โก SEO โ ํค์๋ 10~14ํ ์์ฐ ๋ถ์ฐ, ์ ๋ชฉยท๋ด์ฉ ์ผ์น, ๋์์ฑ ์ ๋ชฉ ๊ธ์ง +โข E-E-A-T โ 1์ธ์นญ ๊ฒฝํ, ๊ตฌ์ฒด์ ์์นยท๋ ์ง ํฌํจ, ์ถ์ฒ ์ต์ 2๊ฐ, ๊ท ํ ์กํ ์๊ฐ +โฃ ์ ํด ๊ธ์ง โ ์ฑ์ธ/ํญ๋ ฅ/ํ์ค/๋ถ๋ฒ ์ ๋ ๊ธ์ง. ํฌ์ยท์๋ฃ๋ ๋ฉด์ฑ ํํ ํ์ +โค ๋ถ๋ 2,500์ ์ด์(๊ณต๋ฐฑ ์ ์ธ) ํ์ โ ๋ฏธ๋ฌ ์ ์๋ ๊ฑฐ๋ถ + +โโโ ์ถ์ฒ ์ฌ์ฉ ์์น โโโ +โข ๊ฑด๊ฐ, ๊ธ์ต, ๋ฒ๋ฅ , ์ ์ฑ , ์ธ๊ธ ๊ด๋ จ ๋ด์ฉ์ ๊ณต์๊ธฐ๊ด ๋๋ ์ ๋ขฐ ๊ฐ๋ฅํ ์๋ฃ ๋ฐํ +โข ์ถ์ฒ๋ฅผ ๋ชจ๋ฅด๋ฉด "ํ์ธ ํ์", "์ํฉ์ ๋ฐ๋ผ ๋ค๋ฅผ ์ ์์"์ผ๋ก ํํ +โข ์ค์กด URL๋ง ์ฌ์ฉ (2~6๊ฐ) + +โโโ SEO โโโ +ํค์๋ 10~14ํ | LSI ํค์๋ | ๋ผ๋ฒจ 10๊ฐ | meta_description 120~160์ +{drama_ref_section} +JSON๋ง ์๋ต (๋งํฌ๋ค์ด ์์ด): +{{ + "title": "...", + "content": "<์์ ํ HTML>", + "labels": ["ํ๊ทธ1","ํ๊ทธ2","ํ๊ทธ3","ํ๊ทธ4","ํ๊ทธ5","ํ๊ทธ6","ํ๊ทธ7","ํ๊ทธ8","ํ๊ทธ9","ํ๊ทธ10"], + "meta_description": "...", + "faq": [ + {{"q": "์ง๋ฌธ1", "a": "๋ต๋ณ1"}}, + {{"q": "์ง๋ฌธ2", "a": "๋ต๋ณ2"}}, + {{"q": "์ง๋ฌธ3", "a": "๋ต๋ณ3"}} + ], + "sources": [ + {{"title": "์ถ์ฒ๋ช 1", "url": "https://์ค์ URL"}}, + {{"title": "์ถ์ฒ๋ช 2", "url": "https://์ค์ URL"}} + ] +}}""" + + +def _build_blog2_prompt(keyword: str, traffic: str, blog_config: dict | None = None) -> str: + """blog2 ์ ์ฉ ํ๋กฌํํธ โ ์ฌํยท์คํฌ์ธ ยท์ฐ์ ๋ธ๋ก๊ทธ, ๊ฒฝํ ๊ณต์ ํ""" + from datetime import datetime + now = datetime.now() + y = now.year + date_str = now.strftime("%Y๋ %m์ %d์ผ") + article_type = _detect_article_type(keyword) + blog_topic_hint = _build_blog_topic_hint(blog_config) + + drama_ref_section = "" + if article_type in ("drama_review", "kpop_review"): + drama_ref_section = _fetch_drama_references(keyword) + if drama_ref_section: + label = "K-POP" if article_type == "kpop_review" else "๋๋ผ๋ง/์ํ" + logger.info(f"{label} ์ฐธ๊ณ ๋ฐ์ดํฐ ์์ง ์๋ฃ: '{keyword}'") + + return f"""๋น์ ์ ์ฌํยท์คํฌ์ธ ยท์ฐ์ ์์์ ์ง์ ์กฐ์ฌํ๊ณ ์ ๋ฆฌํด ์์งํ๊ฒ ์ ๋ฌํ๋ ๋ธ๋ก๊ฑฐ์ ๋๋ค. +์ ๋ฌธ ๊ธฐ์๊ฐ ์๋๋ผ ๊ด์ฌ ์๋ ์ผ๋ฐ ๋ ์ ์ ์ฅ์์ ์ค์ ๋ก ๋์์ด ๋๋ ์ ๋ณด๋ฅผ ์๋๋ค. +๊ตฌ๊ธ AdSense ์ ์ฑ ์ ์์ ํ ์ค์ํฉ๋๋ค. + +ใ๋ธ๋ก๊ทธ ๊ธฐ๋ณธ ๋ฐฉํฅใ +- ๋ธ๋ก๊ทธ๋ช : HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์ (์ฌํยท์คํฌ์ธ ยท์ฐ์ ์ ๋ณด ๋ธ๋ก๊ทธ) +- ์ฃผ์ ์นดํ ๊ณ ๋ฆฌ (์๋ ์ค ํค์๋์ ๊ฐ์ฅ ๋ง๋ ์นดํ ๊ณ ๋ฆฌ๋ก ์์ฑ): + โ๏ธ ๊ตญ๋ด ์ฌํ โ ์จ๊ฒจ์ง ๋ช ์ยท๋ง์งยท์์ ์์ง ํ๊ธฐ + ๐ ํด์ธ ์ฌํ โ ํญ๊ณต๊ถยทํธํ ยทํจํค์ง ์ ๋ณด ๋ฐ ํ์ง ์ฒดํ + โฝ ์คํฌ์ธ โ ์ถ๊ตฌยท์ผ๊ตฌยท๋๊ตฌ ๋ฑ ์ฃผ์ ๊ฒฝ๊ธฐ ๊ฒฐ๊ณผ ๋ฐ ๋ถ์ + ๐ ์คํฌ์ธ ์ด์ โ ์ ์ ์ด์ ยท๋ํ ์์ยท๋ญํน ์ ๋ฐ์ดํธ + ๐ฌ ๋๋ผ๋งยท์ํ โ ๊ตญ๋ด์ธ ์ธ๊ธฐ ์ํ ๋ฆฌ๋ทฐ ๋ฐ ๋ฑ์ฅ์ธ๋ฌผ ๋ถ์ + ๐ต ์ฐ์ยทK-POP โ ์์ด๋ยท๋ฐฐ์ฐ ์์, ์๋ฐยท๊ณต์ฐ ์ ๋ณด +- ๊ธ์ด์ด: ์ฌํยท์คํฌ์ธ ยท์ฐ์ ์ ๋ณด๋ฅผ ๊น์ด ์กฐ์ฌํ๊ณ ํ๊ธฐยท๋ฐ์ดํฐ๋ฅผ ์ข ํฉํด ์ ๋ฆฌํ๋ ๋ธ๋ก๊ฑฐ +- ๊ธ์ ํค: ์น๊ทผํ์ง๋ง ์ ๋ขฐ๊ฐ ์๊ฒ, ๊ณผ์ฅ ์์ด, ๊ตฌ์ฒด์ ์ธ ์๋ฃยทํ๊ธฐ ๊ธฐ๋ฐ์ผ๋ก + +ใํ์ฌ ๋ ์งใ {date_str} +ใํค์๋ใ {keyword} +ใ์ํฐํด ์ ํใ {article_type}{blog_topic_hint} + +โโโ ์นดํ ๊ณ ๋ฆฌ๋ณ ๊ธ์ฐ๊ธฐ ํต์ฌ ๊ฐ์ด๋ โโโ + +โ๏ธ ๊ตญ๋ด ์ฌํ ๊ธ์ด๋ผ๋ฉด: +- ๊ตฌ์ฒด์ ์ฅ์๋ช ยท์์๋ช ยท์์๋ช ์ธ๊ธ (๊ณต๊ฐ ์ ๋ณดยท๋ฐฉ๋ฌธ์ ํ๊ธฐ ๊ธฐ๋ฐ) +- ๊ฐ๊ฒฉ, ์์ ์๊ฐ, ์ฃผ์ฐจ, ์ค์๋ ์๊ฐ ๋ฑ ์ค์ฉ ์ ๋ณด ํฌํจ +- "ํ๊ธฐ๋ฅผ ๋ณด๋ฉด ์ฌ๊ธฐ๋ ํ๊ฐ๊ฐ ๊ฐ๋ฆฐ๋ค", "๊ธฐ๋ ์ดํ๋ผ๋ ๋ฐ์๋ ์๋ค" ๊ฐ์ ์์งํ ํ๊ฐ ์ ๋ฌ ํ์ + +๐ ํด์ธ ์ฌํ ๊ธ์ด๋ผ๋ฉด: +- ํญ๊ณต๊ถ ์์ธยท์์ฝ ํ์ด๋ฐ ์ธ๊ธ (๊ณต๊ฐ ๊ฐ๊ฒฉ ์๋ฃ ๊ธฐ์ค) +- ํธํ ์์น๋ณ ์ฅ๋จ์ , ํฌ์๊ฐ ํ๊ธฐ ์ข ํฉ +- ์ฌํ์๋ค์ด ๊ณตํต์ ์ผ๋ก ๊ฐ์กฐํ๋ ์ ๋ณด (๊ตํตยท๋ฌผ๊ฐยทํ์ ํ ๋ฑ) + +โฝ ์คํฌ์ธ ๊ธ์ด๋ผ๋ฉด: +- ๊ฒฝ๊ธฐ ๊ฒฐ๊ณผยท์ค์ฝ์ดยท์ฃผ์ ์ฅ๋ฉด์ ๊ตฌ์ฒด์ ์ผ๋ก +- ํต๊ณยท๊ธฐ๋ก์ ๊ทผ๊ฑฐ๋ก ํ ๋ถ์, ๊ทผ๊ฑฐ ์๋ ์์ธก ๊ธ์ง +- ํฌ ๋ฐ์๊ณผ ์ ๋ฌธ๊ฐ ๋ถ์ ๊ตฌ๋ถํด์ ์ ๋ฌ + +๐ ์คํฌ์ธ ์ด์ ๊ธ์ด๋ผ๋ฉด: +- ์ด์ ยท๋ํยท๋ญํน ์์์ ๊ณต๊ฐ๋ ๋ฐํยท๋ณด๋ ๊ธฐ์ค์ผ๋ก๋ง +- ํ์ ์ ๋ ์์์ "~์ค์ด ๋์จ๋ค", "ํ์ ์ค์ผ๋ก ์๋ ค์ก๋ค"์ฒ๋ผ ๋ช ํํ ๊ตฌ๋ถ +- ์ ์ยท๊ตฌ๋จ ๋ฐ์, ํฌ ์ปค๋ฎค๋ํฐ ๋ฐ์ ์ข ํฉ + +๐ฌ ๋๋ผ๋งยท์ํ ๊ธ์ด๋ผ๋ฉด: +- ์คํฌ์ผ๋ฌ ์์ ๋ช ์ (์คํฌ ์๋ ๋ฆฌ๋ทฐ / ๊ฒฐ๋ง ํฌํจ ๋ฆฌ๋ทฐ) +- ๋ฑ์ฅ์ธ๋ฌผ ๊ด๊ณ๋๋ ๋ช ์ฅ๋ฉด ๋ถ์ ํฌํจ +- ์์ฒญ์ยท๊ด๊ฐ ๋ฐ์๊ณผ ๊ฐ์ธ ๊ฐ์ ๊ตฌ๋ถ + +๐ต ์ฐ์ยทK-POP ๊ธ์ด๋ผ๋ฉด: +- ์๋ฐ๋ช ยท๋ฐ๋งค์ผยท์๋ก๊ณก ๋ฑ ์ ํํ ์ ๋ณด +- ์ฝ์ํธยทํฌ๋ฏธํ ํ์ฅ ๋ถ์๊ธฐ๋ ํฐ์ผํ ํ (์ฐธ์์ ํ๊ธฐ ์ข ํฉ) +- ํฌ๋ค ๋ฐ์๊ณผ ์์ ์ฑ์ ๋ฐ์ดํฐ ํฌํจ + +โโโ ๊ธ์ ํต์ฌ ์์น โโโ + +1. ๊ฒ์์์ง๋ง์ ์ํ ๊ธ์ด ์๋๋ผ ์ค์ ๋ ์์๊ฒ ๋์์ด ๋๋ ๊ธ +2. ๋จ์ ์ ๋ณด ์์ฝ์ด ์๋๋ผ ๊ฒฝํ, ๋น๊ต, ์ฒดํฌ๋ฆฌ์คํธ, ์ค์ ์ฌ๋ก, ์ค์ ํ์ฉ ํ ํฌํจ +3. ๊ณผ์ฅ๋ ํํ, ๋์์ฑ ์ ๋ชฉ, ๊ทผ๊ฑฐ ์๋ ์์ตยท๊ฑด๊ฐยทํจ๊ณผ ๋ณด์ฅ ์ ๋ ๊ธ์ง +4. ๋์ผํ ๋ฌธ์ฅ ๋ฐ๋ณต ๊ธ์ง, ํค์๋ ์ต์ง ๋ฐ๋ณต ๊ธ์ง +5. AI๊ฐ ๋๋ ์์ฑํ ๊ฒ์ฒ๋ผ ๋ณด์ด์ง ์๋๋ก ์์ฐ์ค๋ฝ๊ณ ์ฌ๋๋ค์ด ๋ฌธ์ฒด +6. ๊ด๊ณ ๋ฌธ๊ตฌ, ๊ด๊ณ ์์ญ, ๋ฐฐ๋ ์๋ฆฌ, ํด๋ฆญ ์ ๋ ๋ฌธ๊ตฌ ์ ๋ ๋ฃ์ง ์๊ธฐ +7. ๋ ์๊ฐ ์ฝ๊ณ ๋ฐ๋ก ์คํํ ์ ์๋๋ก ๊ตฌ์ฒด์ ์ธ ๋ฐฉ๋ฒ ์ ๊ณต + +โโโ ์ ๋ ์ฐ์ง ๋ง์์ผ ํ ํํ โโโ + +โ "์์๋ณด๊ฒ ์ต๋๋ค" / "์ดํด๋ณด๊ฒ ์ต๋๋ค" / "์ ๋ฆฌํด๋๋ฆฌ๊ฒ ์ต๋๋ค" / "์๊ฐํด๋๋ฆฌ๊ฒ ์ต๋๋ค" +โ "๋ค์๊ณผ ๊ฐ์ต๋๋ค" / "์๋์ ๊ฐ์ด" / "ํด๋น " (๊ด๊ณต์ ๋ฌธ์ฒด) +โ "์ด์ฒ๋ผ" / "์ ๋ฆฌํ์๋ฉด" / "๊ฒฐ๋ก ์ ์ผ๋ก" / "์ด๋ฅผ ํตํด ์ ์ ์๋ฏ์ด" +โ "์ค์ํ ๊ฒ์ ๋ฐ๋ก" / "์์ ์ธ๊ธํ๋ฏ์ด" / "๋ค์ ํ๋ฒ ๊ฐ์กฐํ์ง๋ง" +โ "๋ํ" / "๋๋ถ์ด" / "์์ธ๋ฌ" (ํฉ์ฐ 3ํ ์ด๊ณผ ๊ธ์ง) +โ "์ถฉ๊ฒฉ", "๋ฌด์กฐ๊ฑด", "100%", "์๋ฒฝ ๋ณด์ฅ", "๋๊ตฌ๋ ์ ์ผ๋ง" +โ "๊ด๊ณ ์์ญ", "์ฌ๊ธฐ์ ๊ด๊ณ ์ฝ์ ", "๋ฐฐ๋ ํด๋ฆญ", "์์ต ๋ณด์ฅ", "ํ์คํ ๋ ๋ฒ๋ค" +โ ์ถ์ฒ ์๋ ํต๊ณ, ํ ๋ธ๋ก๊ทธ ๋ฌธ์ฅ ๋ณต์ฌ, ์๋ฏธ ์๋ ํค์๋ ๋ฐ๋ณต + +โโโ ๋ณธ๋ฌธ ๊ตฌ์กฐ โโโ + +โ ๏ธ ๋ถ๋: ์ต์ 2,500์ ์ด์(๊ณต๋ฐฑ ์ ์ธ), ๋ชฉํ 3,000์ ์์ค +โ ๏ธ ๊ฐ H2 ์น์ ๋ง๋ค ์ต์ 500์ ์ด์(๊ณต๋ฐฑ ์ ์ธ) +โ ๏ธ ์ ๋ชฉ๊ณผ H2 ์์ ๋ชฉ ์ฃผ์ ์ผ์น ํ์ +โ ๏ธ ์ด๋ฏธ์ง๋ ๊ธ ๋ด์ฉ๊ณผ ๊ฐ์ฅ ๊ด๋ จ ์๋ ๋ํ ์ด๋ฏธ์ง 1์ฅ๋ง + +๋์ ๋ถ (300์ ์ด์): +๋ ์๊ฐ ์ ์ด ๊ธ์ ์ฝ์ด์ผ ํ๋์ง ์ค๋ช . ๊ฐ์ธ์ ์ธ ๊ด์ฌ์ด๋ ์ค์ ์ํฉ์ผ๋ก ์์ฐ์ค๋ฝ๊ฒ ์์. +"์์ฆ ์ ํํ๋~"์ด ์๋๋ผ ๊ตฌ์ฒด์ ์ํฉ์ผ๋ก ์์. + +ํต์ฌ ์์ฝ ๋ฐ์ค (๋์ ๋ถ ๋ฐ๋ก ์๋): ++์ด ๊ธ์ ๊ณต๊ฐ๋ ์ ๋ณด์ ๊ณต์ ์๋ฃ๋ฅผ ๋ฐํ์ผ๋ก ์์ฑ๋์์ผ๋ฉฐ, ๊ฐ์ธ์ ์ํฉ์ ๋ฐ๋ผ ์ง์ ์กฐ๊ฑดยท๊ธ์ก์ด ๋ค๋ฅผ ์ ์์ต๋๋ค. ์ต์ข ํ์ธ์ ๋ฐ๋์ ํด๋น ๊ธฐ๊ด ๊ณต์ ํํ์ด์ง ๋๋ ๋ด๋น ๋ถ์๋ฅผ ํตํด ํ์๊ธฐ ๋ฐ๋๋๋ค. +
+ +โโโ FAQ โโโ +๊ฒ์ ์๋์ ๋ ์๊ฐ ์ค์ ๋ก ๊ถ๊ธํดํ ๋๋ง 2~5๊ฐ. ํ์ ์์ผ๋ฉด FAQ ์น์ ๊ณผ faq ํ๋๋ฅผ ์๋ต(๋น ๋ฐฐ์ด)ํ์ธ์. ๋ชจ๋ ๊ธ์ ๊ฐ์ ๊ฐ์ ๊ธ์ง. +๋ ์๊ฐ ํท๊ฐ๋ฆฌ๋ ์กฐ๊ฑดยท์ ์ฒญ๋ฒยท์๊ฒฉ ๊ด๋ จ ์ง๋ฌธ ์ค์ฌ + +โโโ Google AdSense ์ ์ฑ ์ค์ โโโ +โ ์๋ณธ์ฑ โ ๋ด์ค ์ฌ๊ฐ๊ณต์ด ์๋ ๋ ์ ์ ์ฅ์ ๋ถ์ยทํด์ค ํ์ +โก SEO โ ํค์๋ 10~14ํ ์์ฐ ๋ถ์ฐ, ์ ๋ชฉยท๋ด์ฉ ์ผ์น +โข E-E-A-T โ ๊ณต์ ์ถ์ฒ ์ต์ 2๊ฐ, ๋ ์ง ๋ช ๊ธฐ, ๊ท ํ ์กํ ์๊ฐ +โฃ ์ ํด ๊ธ์ง โ ํฌ์ ์ฌ๊ธฐยท๋ถ๋ฒ ๊ธ์ต์ํ ๊ด๋ จ ๋ด์ฉ ๊ธ์ง +โค ๋ถ๋ 2,500์ ์ด์(๊ณต๋ฐฑ ์ ์ธ) ํ์ + +โโโ ์ถ์ฒ โโโ +โข ๊ธฐํ์ฌ์ ๋ถยท๊ธ์ต์์ํยท๊ตญ์ธ์ฒญยท๋ณต์ง๋กยท๊ณ ์ฉ๋ ธ๋๋ถ ๋ฑ ๊ณต์ ๊ธฐ๊ด ์ฌ์ดํธ +โข ์ฃผ์ ๊ธ์ต๊ธฐ๊ด ๊ณต์ ๋ณด๋์๋ฃ +โข ์ค์กด URL๋ง ์ฌ์ฉ (2~5๊ฐ) + +โโโ SEO โโโ +ํค์๋ 10~14ํ | ์ ์ฑ ๋ช ยท๊ธฐ๊ด๋ช LSI ํค์๋ | ๋ผ๋ฒจ 10๊ฐ | meta_description 120~160์ + +JSON๋ง ์๋ต (๋งํฌ๋ค์ด ์์ด): +{{ + "title": "...", + "content": "<์์ ํ HTML>", + "labels": ["ํ๊ทธ1","ํ๊ทธ2","ํ๊ทธ3","ํ๊ทธ4","ํ๊ทธ5","ํ๊ทธ6","ํ๊ทธ7","ํ๊ทธ8","ํ๊ทธ9","ํ๊ทธ10"], + "meta_description": "...", + "faq": [ + {{"q": "์ง๋ฌธ1", "a": "๋ต๋ณ1"}}, + {{"q": "์ง๋ฌธ2", "a": "๋ต๋ณ2"}} + ], + "sources": [ + {{"title": "์ถ์ฒ๋ช 1", "url": "https://์ค์ URL"}}, + {{"title": "์ถ์ฒ๋ช 2", "url": "https://์ค์ URL"}} + ] +}}""" + + +def _build_prompt(keyword: str, traffic: str, blog_config: dict | None = None) -> str: + blog_id = (blog_config or {}).get("id", "") + # ์ค์ ๊ฒฝํ ์๋ฃ ์ ๋ฌด์ ๋ฐ๋ฅธ ๋ฌธ์ฒด ๊ท์น + ๊ตฌ์กฐ ๋ณ์ฃผ + ์ฒด๋ฅ์๊ฐ ๊ฐํ ์ง์นจ (๋ชจ๋ ๋ธ๋ก๊ทธ ๊ณตํต) + style_block = _experience_style_block(keyword, blog_id) + _structure_variation(keyword) + _engagement_block(keyword, blog_id) + + # blog1 (HOGU What?) ์ ์ฉ ํ๋กฌํํธ + if blog_id == "blog1": + return _build_blog1_prompt(keyword, traffic, blog_config) + style_block + + # blog2 (HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์) ์ ์ฉ ํ๋กฌํํธ + if blog_id == "blog2": + return _build_blog2_prompt(keyword, traffic, blog_config) + style_block + + # blog3 (๊ธ์ตNEWS) ์ ์ฉ ํ๋กฌํํธ + if blog_id == "blog3": + return _build_blog3_prompt(keyword, traffic, blog_config) + style_block + from datetime import datetime now = datetime.now() y = now.year date_str = now.strftime("%Y๋ %m์ %d์ผ") article_type = _detect_article_type(keyword) structure_guide = _STRUCTURE_GUIDE.get(article_type, _STRUCTURE_GUIDE["analysis"]) + blog_topic_hint = _build_blog_topic_hint(blog_config) if BLOG_LANGUAGE == "ko": - return f"""๋น์ ์ 30๋ ์ค๋ฐ ์ง์ฅ์ธ์ ๋๋ค. ๋ณธ์ ์ด ๋ฐ๋ก ์๊ณ , ํด๊ทผ ํ๋ ์ฃผ๋ง์ ์ง์ ๊ฒฝํํ๊ณ ๊ณต๋ถํ ๊ฒ๋ค์ ๋ธ๋ก๊ทธ์ ์๋๋ค. -๊ธ์ฐ๊ธฐ ์ ๋ฌธ๊ฐ๊ฐ ์๋๋ผ ์๋ฒฝํ์ง ์์๋ ๋ฉ๋๋ค. ์ค์ํ ๊ฑด ์ง์ง์ฒ๋ผ ๋ค๋ฆฌ๋ ๊ฒ์ ๋๋ค. + return f"""๋น์ ์ ๊ด์ฌ ์๋ ์ฃผ์ ๋ฅผ ๊น์ด ์กฐ์ฌํ๊ณ ๊ณต๋ถํด์ ๋ธ๋ก๊ทธ์ ์ ๋ฆฌํ๋ ๋ธ๋ก๊ฑฐ์ ๋๋ค. +๊ธ์ฐ๊ธฐ ์ ๋ฌธ๊ฐ๊ฐ ์๋๋ผ ์๋ฒฝํ์ง ์์๋ ๋ฉ๋๋ค. ์ค์ํ ๊ฑด ์ ๋ขฐํ ์ ์๊ณ ์์ฐ์ค๋ฝ๊ฒ ์ฝํ๋ ๊ฒ์ ๋๋ค. ๊ตฌ๊ธ AdSense ์ ์ฑ ์ ์์ ํ ์ค์ํฉ๋๋ค. ใํ์ฌ ๋ ์งใ {date_str} ใํค์๋ใ {keyword} -ใ์ํฐํด ์ ํใ {article_type} +ใ์ํฐํด ์ ํใ {article_type}{blog_topic_hint} โโโ 1. ์ธ๊ฐ์ ์ธ ๋ชฉ์๋ฆฌ (๊ฐ์ฅ ์ค์) โโโ -โข "์ ๋", "์ ๊ฐ", "์ ๊ฒฝํ์", "์์งํ" ๋ฑ 1์ธ์นญ์ ์์ฐ์ค๋ฝ๊ฒ ์ฌ์ฉ -โข ๋์ ๋ถ: ์ด ์ฃผ์ ๋ฅผ ์ฐ๊ฒ ๋ ๊ณ๊ธฐ๋ ์ง์ ๊ฒช์ ์ํฉ์ผ๋ก ์์ (์ ๋ณด ๋์ด X) +โข "์ ๋", "์ ๊ฐ", "์์งํ", "๊ฐ์ธ์ ์ผ๋ก๋" ๋ฑ ์๊ฒฌยทํ๋จํ 1์ธ์นญ์ ์์ฐ์ค๋ฝ๊ฒ ์ฌ์ฉ + (๋จ, ํ์ง ์์ ๊ฒฝํ์ ํ ๊ฒ์ฒ๋ผ ์ฐ๋ ํํ์ ์๋ ๋ฌธ์ฒด ํ์ ๊ท์น์ ๋ฐ๋ฅผ ๊ฒ) +โข ๋์ ๋ถ: ์ด ์ฃผ์ ๋ฅผ ๋ค๋ฃจ๊ฒ ๋ ๊ณ๊ธฐ๋ ๋ ์๊ฐ ๊ฒช๋ ์ํฉ์ผ๋ก ์์ (์ ๋ณด ๋์ด X) โข ๋ณธ๋ฌธ ์ด๋๊ฐ์ ํ์ ์ด ์๋ ์๊ฐ๋ ํํ: "์ด๊ฒ ๋ง๋ ๊ฑด์ง ์ ๋ 100% ํ์ ํ์ง ๋ชปํ์ง๋ง์", "๊ทผ๋ฐ ์ ๋ง ์ด๋ ๊ฒ ๋๋ผ๋ ๊ฑด์ง ๋ชจ๋ฅด๊ฒ ์ด์" ๊ฐ์ ํํ 1~2ํ โข ๋ ์์๊ฒ ๋ง ๊ฑธ๊ธฐ: "ํน์ ์ด๋ฐ ๊ฒฝํ ์์ผ์ธ์?", "์ ๋ง ๊ทธ๋ฌ๋ ๊ฑด ์๋๊ฒ ์ฃ ?" 1~2ํ @@ -212,23 +1089,33 @@ def _build_prompt(keyword: str, traffic: str) -> str: โข "{keyword}"์ ๋ํด ์ด๋ฏธ ์ธํฐ๋ท์ ๋์น๋ ํฌ๊ด์ ๋ด์ฉ ๊ธ์ง โข "์ด๋ฐ ์ด์ผ๊ธฐ๋ ์ฒ์ ๋ดค๋ค"๊ณ ๋๋ ๊ฐ๋: "์คํจํด๋ณธ ์ฌ๋ ์ ์ฅ์์", "๋ง์ ํด๋ณด๋ ๋ฌ๋๋ ๊ฒ", "{y}๋ ๋ถํฐ ๋ฌ๋ผ์ง ์ " -โโโ Google AdSense ์ ์ฑ ์ค์ โโโ -โ ์๋ณธ์ฑ โ ๋ ์ฐฝ์ ๊ฒฝํยท์ธ์ฌ์ดํธ, 2500์ ์ด์ +โโโ Google AdSense ์ ์ฑ ์ค์ (๊ฐ์น ์๋ ์ฝํ ์ธ ์๋ฐ ๋ฐฉ์ง) โโโ +โ ์๋ณธ์ฑ โ ๋ ์ฐฝ์ ๊ฒฝํยท์ธ์ฌ์ดํธ ํ์. ์ธํฐ๋ท์ ํํ ์ ๋ณด ๋์ด ๊ธ์ง. ๋ฐ๋์ ๊ธ์ด์ด๋ง ์๋ ๊ตฌ์ฒด์ ๊ฒฝํยท์์นยท์ค์ ํฌํจ โก SEO โ ํค์๋ 10~14ํ ์์ฐ ๋ถ์ฐ, ์ ๋ชฉยท๋ด์ฉ ์ผ์น, ๋์์ฑ ์ ๋ชฉ ๊ธ์ง -โข ๊ตฌ์กฐ โ H2 4๊ฐ ์ด์, ๋จ๋ฝ ์ ์ ํ ๊ธธ์ด +โข ๊ตฌ์กฐ โ H2 5๊ฐ ์ด์, ๊ฐ ์น์ 300์ ์ด์, ๋จ๋ฝ ์ ์ ํ ๊ธธ์ด โฃ ์ ํด ๊ธ์ง โ ์ฑ์ธ/ํญ๋ ฅ/ํ์ค/๋ถ๋ฒ ์ ๋ ๊ธ์ง. ํฌ์ยท์๋ฃ๋ ๋ฉด์ฑ ํํ ํ์ -โค E-E-A-T โ 1์ธ์นญ ๊ฒฝํ, ์ถ์ฒ ์ต์ 2๊ฐ, ๊ท ํ ์กํ ์๊ฐ +โค E-E-A-T โ ๊ตฌ์ฒด์ ์์นยท๋ ์งยท์ถ์ฒ ํฌํจ (์ต์ 3๊ฐ), ๊ท ํ ์กํ ์๊ฐ + ์: "{y}๋ ๊ณต์ ๋ฐํ ๊ธฐ์ค์ผ๋ก", "์ด์ฉ์ ํ๊ธฐ๋ฅผ ์ข ํฉํ๋ฉด", "3๊ฐ์ ์ด์ฉ ํ๊ธฐ๋ค์ ๋ณด๋ฉด" โฅ ์ด๋ฏธ์ง โ alt ํ ์คํธ ํฌํจ - -โโโ ์ ๋ชฉ โโโ -โข ์์ฐ์ค๋ฌ์ด ๋ธ๋ก๊ทธ ๋งํฌ (๊ธฐ์ฌ ์ ๋ชฉ X) -โข {y}๋ ํฌํจ | 40์ ์ด๋ด -โข ์: "์ง์ ํด๋ดค๋๋ฐ์", "์์ง ํ๊ธฐ", "์ ๋ ์ด๋ ๊ฒ ํ์ด์" - -โโโ ๋ณธ๋ฌธ ๊ตฌ์กฐ โโโ -๋ถ๋: 2800~3500์ ์์ ํ HTML -H2 ์น์ : 4~6๊ฐ (์ฃผ์ ์ ๋ฐ๋ผ ์์ ๋กญ๊ฒ) +โฆ ๋ถ๋ 4500์ ์ด์ ํ์ โ ์ด ์ดํ๋ 'thin content'๋ก AdSense ๊ฑฐ๋ถ๋จ + +โโโ ์ ๋ชฉ (๊ฐ๊ฒฐ + ์ํฉํธ) โโโ +โข 28์ ์ด๋ด โ ์งง์์๋ก ์ข์. ์กฐ์ฌยท๊ตฐ๋๋๊ธฐ ์ ๊ฑฐ, ํต์ฌ ํค์๋ ๋งจ ์ ๋ฐฐ์น +โข ์ซ์ยท๊ตฌ์ฒด์ฑ์ผ๋ก ์ํฉํธ: ์ "๊ตญ๋ฏผ์ฐ๊ธ 30% ๋ ๋ฐ๋ ๋ฒ", "์ ์ฃผ 3๋ฐ4์ผ 40๋ง์ ์ฝ์ค" +โข ์์ฐ์ค๋ฌ์ด ๋ธ๋ก๊ทธ ๋งํฌ (๊ธฐ์ฌ ์ ๋ชฉ X), ๊ณผ์ฅยท๋์ ๊ธ์ง +โข {y}๋ ์ ์ฐ๋๊ฐ ์ค์ํ ์ ๋ณด์ฑ ์ฃผ์ ์๋ง ํฌํจ (ํ์ ์๋) + +โโโ ๋ณธ๋ฌธ ๊ตฌ์กฐ (๋ถ๋ ์์ โ ๊ฐ์ฅ ์ค์) โโโ +๋ถ๋: 4500~6000์ ์์ ํ HTML (Google AdSense ์ ์ฑ ์ 4000์ ๋ฏธ๋ง์ thin content) +โ ๏ธ ๋ฐ๋์ ์ง์ผ์ผ ํ ๋ถ๋ ๊ท์น: + - H2 ์น์ 7๊ฐ ์ด์ (๊ฐ ์น์ ์ต์ 500์ ์ด์) + - ๋์ ๋ถ(p ํ๊ทธ) ์ต์ 300์ + - FAQ๋ ํ์ํ ๋๋ง 2~5๊ฐ (๋ต๋ณ์ ์ถฉ์คํ๊ฒ) + - ๊ฒฐ๋ก ์น์ ์ต์ 200์ + - ์น์ ํฉ๊ณ = ์ต์ 4500์ ๋์ ๋ถยท๊ฐ ์น์ ยท๊ฒฐ๋ก ๋ชจ๋ ๋จ๋ฝ(p ํ๊ทธ) ๊ธฐ๋ฐ +๊ฐ H2 ์น์ ๋ง๋ค ์ต์ 3๊ฐ ๋จ๋ฝ, ๊ตฌ์ฒด์ ์ฌ๋กยท์์นยท๊ฒฝํ ๋ฐ๋์ ํฌํจ +โ ๏ธ ๋ถ๋ ๋ถ์กฑ ์ ๊ธ์ด ๊ฒ์๋์ง ์์ต๋๋ค โ 4500์ ๋ฏธ๋ง์ ์๋ ๊ฑฐ๋ถ๋ฉ๋๋ค ํต์ฌ ์์ฝ ๋ฐ์ค (์ฒซ ๋ฒ์งธ h2 ๋ฐ๋ก ์์ 1๊ฐ):: ํต์ฌ ์ธ์ฌ์ดํธ ๋ฌธ์ฅ (1~2๊ฐ) โโโ FAQ โโโ -h2 "์์ฃผ ๋ฌป๋ ์ง๋ฌธ" + 5๊ฐ Q&A +๊ฒ์ ์๋์ ๋ ์๊ฐ ์ค์ ๋ก ๊ถ๊ธํดํ ๋๋ง 2~5๊ฐ. ํ์ ์์ผ๋ฉด FAQ ์น์ ๊ณผ faq ํ๋๋ฅผ ์๋ต(๋น ๋ฐฐ์ด)ํ์ธ์. ๋ชจ๋ ๊ธ์ ๊ฐ์ ๊ฐ์ ๊ธ์ง. ์ค์ ์ฌ๋๋ค์ด ๊ฒ์ํ ๋ฒํ ๊ตฌ์ฒด์ ์ง๋ฌธ. ๋ต๋ณ 2~4๋ฌธ์ฅ. ํ์:์์ฃผ ๋ฌป๋ ์ง๋ฌธ
@@ -263,22 +1150,20 @@ def _build_prompt(keyword: str, traffic: str) -> str: "meta_description": "...", "faq": [ {{"q": "์ง๋ฌธ1", "a": "๋ต๋ณ1"}}, - {{"q": "์ง๋ฌธ2", "a": "๋ต๋ณ2"}}, - {{"q": "์ง๋ฌธ3", "a": "๋ต๋ณ3"}}, - {{"q": "์ง๋ฌธ4", "a": "๋ต๋ณ4"}}, - {{"q": "์ง๋ฌธ5", "a": "๋ต๋ณ5"}} + {{"q": "์ง๋ฌธ2", "a": "๋ต๋ณ2"}} + // ๊ฒ์ ์๋์ ํ์ํ ๋๋ง 2~5๊ฐ, ํ์ ์์ผ๋ฉด ๋น ๋ฐฐ์ด [] ], "sources": [ {{"title": "์ถ์ฒ๋ช 1", "url": "https://์ค์ URL"}}, {{"title": "์ถ์ฒ๋ช 2", "url": "https://์ค์ URL"}} ] -}}""" +}}""" + style_block # English prompt (E-E-A-T focused) date_str_en = now.strftime("%B %d, %Y") article_type_en = article_type - return f"""You are a personal blogger in your 30s who writes about finance, health, and everyday life. -You share what you've personally experienced, researched, and honestly thought about โ not just information gathered from web searches. + return f"""You are a blogger who writes about finance, health, and everyday life. +You share what you've thoroughly researched and honestly thought about โ never fabricate personal experiences. You strictly follow Google AdSense content policies and prioritize genuine value to readers. ใDateใ {date_str_en} @@ -288,14 +1173,15 @@ def _build_prompt(keyword: str, traffic: str) -> str: โโโ CORE WRITING PRINCIPLES โโโ 1. Human Voice (most important) -โข Use first person naturally: "I've tried", "In my experience", "Personally I think" -โข Opening must include a personal anecdote or why you got interested in this topic +โข Use opinion-style first person naturally: "Personally I think", "If I had to choose" +โข Never claim experiences you did not have ("I've tried", "I visited") โ write research-based instead +โข Opening must explain why this topic matters to readers right now โข At least 1 genuine aside in the body: "Honestly though", "Here's what surprised me", "I didn't expect this" 2. Break Template Structure โข NEVER use formulaic structures like "5 Methods", "3 Mistakes to Avoid" for every post โข H2 headings should reflect real questions or situations readers face - โ "โ TOP 5 Investment Methods" โ โ "What I Actually Did With $300/Month in ETFs" + โ "โ TOP 5 Investment Methods" โ โ "What $300/Month in ETFs Actually Looks Like" โข Structure follows the topic naturally, not a fixed template 3. Natural Blog Writing @@ -309,7 +1195,7 @@ def _build_prompt(keyword: str, traffic: str) -> str: โข Auto-summary phrases banned โ "In summary", "To conclude", "As we can see", "This shows that" โ AI signature closers. Move naturally into the next point or embed the conclusion in the paragraph. โข Excessive neutrality banned โ don't end every sentence with "can be", "may be", "is considered" - โ "This approach can be effective." โ โ "Honestly, I'd pick this over the alternatives." + โ "This approach can be effective." โ โ "Honestly, I'd pick this over the alternatives." (opinion, not a fabricated experience) โข Same-length sentence repetition banned โ mix short (5-8 words), medium (12-18), and long (25+) sentences Vary sentence endings too: questions, em dashes, fragments for emphasis. โข Overly smooth structure banned โ not every H2 should follow "definition โ benefits โ warnings โ summary" @@ -320,20 +1206,23 @@ def _build_prompt(keyword: str, traffic: str) -> str: โข Formal/report tone banned โ "This paper examines", "It is evident that", "The aforementioned" โ Blog voice: "Here's what I found", "Turns out", "Here's the thing" โข Clichรฉ phrases banned โ no more than 1 use of "important", "essential", "critical", "must" - โ Replace with specific experience: "Skip this and you'll regret it โ learned that the hard way" + โ Replace with specific, concrete detail: "Skip this and most users end up redoing the whole setup" 5. Niche Angle โข Find a specific angle other articles aren't covering well -โข Example angles: "from a beginner's perspective after failing twice", "what changed in {y}", "the part no one talks about" +โข Example angles: "from a complete beginner's perspective", "what changed in {y}", "the part no one talks about" -โโโ TITLE โโโ -Natural blog style | Include {y} | Under 65 chars -Trigger curiosity or recognition ("I tested this", "Honest review", "What I wish I knew") +โโโ TITLE (concise + high-impact) โโโ +Under 50 chars โ shorter is better; cut filler words, lead with the core keyword +Use numbers and specifics for impact ("5 settings that double battery life") +Natural blog style, no clickbait; include {y} only when the year matters โโโ CONTENT STRUCTURE โโโ -Length: 2800-3500 chars, complete HTML -H2 sections: 4-6 (based on topic, not a fixed count) +Length: 2500-3200 chars (excluding whitespace), complete HTML +H2 sections: 4-6 (based on topic, not a fixed count) โ each section โฅ500 chars (excluding whitespace) All sections paragraph-based (p tags) +Title and H2 subheadings must align: every H2 should directly address the topic promised in the title +One image only: the most relevant single image for the article (alt text required) Key summary box: Insert this HTML exactly, immediately before the firstin the body:
๐ก Key takeaway: [The single most practical insight from this article in 1-2 sentences]@@ -346,7 +1235,7 @@ def _build_prompt(keyword: str, traffic: str) -> str: โข Over-emphasis loses impact โ only mark what truly matters โโโ FAQ โโโ -h2 "Frequently Asked Questions" + 5 Q&As +Only when search intent calls for it: 2-5 Q&As (omit the section and return "faq": [] otherwise; never a fixed count) Specific questions people actually search | 2-4 sentence answers No Schema.org markup (itemscope/itemtype/itemprop) โ use this format only:Frequently Asked Questions
@@ -369,16 +1258,14 @@ def _build_prompt(keyword: str, traffic: str) -> str: "meta_description": "...", "faq": [ {{"q": "Q1", "a": "A1"}}, - {{"q": "Q2", "a": "A2"}}, - {{"q": "Q3", "a": "A3"}}, - {{"q": "Q4", "a": "A4"}}, - {{"q": "Q5", "a": "A5"}} + {{"q": "Q2", "a": "A2"}} + // only when search intent calls for it: 2-5 items, else [] ], "sources": [ {{"title": "Source 1", "url": "https://real-url"}}, {{"title": "Source 2", "url": "https://real-url"}} ] -}}""" +}}""" + style_block def _apply_style_to_tag(html: str, tag: str, style: str) -> str: @@ -454,15 +1341,36 @@ def rep(m: re.Match) -> str: "ํฌ์ค","์๊ฐ","ํ๋ผํ ์ค","์๋ฉด","์คํธ๋ ์ค","ํผ๋ถ","ํ๋ชจ","์ฒด์ค", "๋ฉด์ญ","ํ์","๋น๋จ","๊ทผ์ก","์นผ๋ก๋ฆฌ","๋จ๋ฐฑ์ง","์๋จ","๋นํ๋ฏผ"} _DRAMA_KW = {"๋๋ผ๋ง","์ํ","๋ทํ๋ฆญ์ค","ํฐ๋น","์ฟ ํกํ๋ ์ด","์์ฑ ","ott","์์ ", - "์ฐ์","์์ด๋","๊ฐ์","๋ฐฐ์ฐ","์๋ฅ","์นํฐ","์ ๋","์์ฆ","๊ฒฐ๋ง"} + "์ฐ์","์์ด๋","๊ฐ์","๋ฐฐ์ฐ","์๋ฅ","์นํฐ","์ ๋","์์ฆ","๊ฒฐ๋ง", + "k-pop","kpop","์ปด๋ฐฑ","์ ๋ณด","์ ๊ณก","์๋ฐ","ํฌ๋ฏธํ ","์์์","mama", + "์ด๋","๊ฑธ๊ทธ๋ฃน","๋ณด์ด๊ทธ๋ฃน","๋ฐ๋ท","ํฐ์ผํ ","์๋ํฌ์ด","๋ดํ๊ณต์ฐ","ํฌ๋ค"} _TRAVEL_KW = {"์ฌํ","๊ด๊ด","ํฌ์ด","์ฝ์ค","๋ช ์","์์","ํธํ ","๋ง์ง","๊ณตํญ", "๋น์","ํจํค์ง","์์ ์ฌํ","๋ฐฐ๋ญ","ํ์ง","๊ตญ๋ด์ฌํ","ํด์ธ์ฌํ", - "์ ์ฃผ","๋ถ์ฐ","์ค์ฌ์นด","๋ฐฉ์ฝ","๋ค๋ญ","์ ๋ฝ","๊ด","ํ์์ด"} + "ํญ๊ณต๊ถ","ํญ๊ณต","์ ์ฃผ","๋ถ์ฐ","์ค์ฌ์นด","๋ฐฉ์ฝ","๋ค๋ญ","์ ๋ฝ","๊ด","ํ์์ด"} _SPORTS_KW = {"์ถ๊ตฌ","์ผ๊ตฌ","๋๊ตฌ","ํ ๋์ค","๊ณจํ","k๋ฆฌ๊ทธ","kbo","nba","epl","์ ์", "๊ฐ๋ ","์คํฌ์ธ ","๋ง๋ผํค","ํธ๋ ํน","๋ฑ์ฐ","๋ฌ๋","์์","์์ ๊ฑฐ", "์ํฅ๋ฏผ","๋ฅํ์ง","๊ฒฝ๊ธฐ","์น๋ฆฌ","ํจ๋ฐฐ","๋์ ","์์","์ง๊ด"} +_LEGAL_KW = {"๋ฒ๋ฅ ", "๋ฏผ๋ฒ", "ํ๋ฒ", "๋ฒ์", "๊ณ์ฝ", "์์ก", "ํ๊ฒฐ", "๊ถ๋ฆฌ", + "์๋์ฐจ", "์ฝ๊ด", "๋ถ์", "์์", "์ดํผ", "๊ณ ์", "๋ณํธ์ฌ"} + + +def _assess_risk_level(keyword: str) -> str: + """ํค์๋์ YMYL(๋ยท๊ฑด๊ฐยท๋ฒ๋ฅ ) ์ํ๋๋ฅผ ๋ถ๋ฅํฉ๋๋ค. + + high โ ๊ธ์ตยทํฌ์ / ๊ฑด๊ฐยท์๋ฃ / ๋ฒ๋ฅ (์๋ชป๋ ์ ๋ณด๊ฐ ๋ ์์๊ฒ ์ค์ง ํผํด) + medium โ ๊ทธ ์ธ ์ ๋ณด์ฑ ์ฃผ์ (๊ตฌ๋งค ๊ฒฐ์ ยท์ํ ์ ๋ณด ๋ฑ) + low โ ์ฌํยท๋๋ผ๋งยท์ฐ์ยท์คํฌ์ธ ๋ฑ ์ํฐํ ์ธ๋จผํธ + """ + kw = keyword.lower() + if any(w in kw for w in _FINANCE_KW | _HEALTH_KW | _LEGAL_KW): + return "high" + if any(w in kw for w in _DRAMA_KW | _TRAVEL_KW | _SPORTS_KW): + return "low" + return "medium" + + def _detect_theme(keyword: str, article_type: str) -> dict: """ํค์๋ยท์ํฐํด ์ ํ์ผ๋ก ์ต์ ์ปฌ๋ฌ ํ ๋ง๋ฅผ ๋ฐํํฉ๋๋ค.""" kw = keyword.lower() @@ -470,7 +1378,7 @@ def _detect_theme(keyword: str, article_type: str) -> dict: return _THEMES["finance"] if any(w in kw for w in _HEALTH_KW): return _THEMES["health"] - if any(w in kw for w in _DRAMA_KW) or article_type == "drama_review": + if any(w in kw for w in _DRAMA_KW) or article_type in ("drama_review", "kpop_review"): return _THEMES["drama"] if any(w in kw for w in _TRAVEL_KW) or article_type == "travel_guide": return _THEMES["travel"] @@ -599,6 +1507,57 @@ def _faq_to_cards(content: str) -> str: return pre + h2 + '\n' + faq_rebuilt + '\n' + post_body +_FAQ_HEADING_RE = re.compile( + r']*>[^<]*(?:์์ฃผ\s*๋ฌป๋\s*์ง๋ฌธ|Frequently Asked Questions|FAQ)[^<]*
', + re.IGNORECASE, +) +_FAQ_CARD_RE = re.compile(r']*>', body)] + if len(h2_positions) < 3: + return html + + mid_pos = h2_positions[len(h2_positions) // 2] + teaser = ( + '" - index_link = ( - f'๐ ์๋ฆฌ์ฆ ์ ์ฒด ๋ณด๊ธฐ' - if series_label else "" - ) + if series_label: + base = blog_url.rstrip("/") if blog_url else "" + label_url = f"{base}/search/label/{series_label}" if base else f"/search/label/{series_label}" + index_link = ( + f'๐ ์๋ฆฌ์ฆ ์ ์ฒด ๋ณด๊ธฐ' + ) + else: + index_link = "" return ( f'' + '๐ฌ ์ ๊น, ์ด๊ฒ๋ ๊ถ๊ธํ์ง ์์ผ์ธ์?
' + f'{faq_card}' + ) + return body[:mid_pos] + teaser + body[mid_pos:] + html[faq_h2_m.start():] + + +_DEAD_LINK_RE = re.compile(r']*href="#"[^>]*>(.*?)', re.IGNORECASE | re.DOTALL) + + +def _strip_dead_links(html: str) -> str: + """AdSense 'ํ์' ์ ์ฑ ์๋ฐ ๋ฐฉ์ง โ href="#" ๋งํฌ๋ ํ ์คํธ๋ง ๋จ๊ธฐ๊ณ ํ๊ทธ ์ ๊ฑฐ.""" + if not html or 'href="#"' not in html: + return html + return _DEAD_LINK_RE.sub(lambda m: re.sub(r"<[^>]+>", "", m.group(1)).strip(), html) + + def _apply_design(html: str, keyword: str = "", article_type: str = "analysis") -> str: """ Claude ์์ฑ HTML์ Blogger ํธํ ์ธ๋ผ์ธ ์คํ์ผ ๋น์ฃผ์ผ ๋์์ธ ์ ์ฉ. @@ -691,6 +1650,8 @@ def _apply_design(html: str, keyword: str = "", article_type: str = "analysis") # FAQ ์น์ ์ ์นด๋ ์คํ์ผ๋ก ๋ณํ html = _faq_to_cards(html) + # FAQ ๋ฐฐ์น ์ต์ ํ โ ์นด๋ 1๊ฐ๋ฅผ ๋ณธ๋ฌธ ์ค๊ฐ(์ดํ ์ฆ์ ์ง์ )์๋ ๋ฐฐ์น + html = _inject_mid_article_faq(html) # ์ด๋ชจ์ง callout ๋ฐ์ค (๐กํ / โ ๏ธ์ฃผ์ ๋จ๋ฝ ์๋ ์คํ์ผ) html = _style_callout_paragraphs(html, theme) @@ -812,11 +1773,18 @@ def _extract_section_queries(html: str, keyword: str) -> list[str]: break extra_terms = " ".join(extra_parts) - query = f"{keyword} {heading_clean}".strip() - if extra_terms: - query = f"{query} {extra_terms}".strip() - queries.append(query[:65]) - + # ์ด๋ฏธ์ง ๊ฒ์์ฉ ์ฟผ๋ฆฌ: ํค์๋ ํต์ฌ ๋ช ์ฌ(์ต๋ 2๊ฐ) + ์น์ ํต์ฌ์ด + # โ ๋ฌธ์ฅํ ๊ธด ์ฟผ๋ฆฌ๋ ๋ค์ด๋ฒ/DDG์์ ๊ฒฐ๊ณผ 0๊ฑด์ด ๋๋ฏ๋ก ๋ช ์ฌ ์กฐํฉ์ผ๋ก ์ถ์ฝ + from image_fetcher import _core_terms + kw_core = " ".join(_core_terms(keyword, 2)) + heading_core = " ".join(_core_terms(heading_clean, 2)) + parts = [p for p in (kw_core, heading_core, extra_terms) if p] + query = " ".join(dict.fromkeys(" ".join(parts).split())) # ๋จ์ด ์ค๋ณต ์ ๊ฑฐ + queries.append(query[:50]) + + # ์ฒซ ์ฟผ๋ฆฌ(๋ฉ์ธ ํค์๋)๋ ํต์ฌ ๋ช ์ฌ๋ก ์ถ์ฝ + from image_fetcher import _core_terms as _ct + queries[0] = " ".join(_ct(keyword, 3)) or keyword return queries[:4] @@ -877,8 +1845,37 @@ def _validate_sources(sources: list) -> list: return valid -def _build_series_prompt(keyword: str, traffic: str, series_context: dict) -> str: - """์๋ฆฌ์ฆ ํฌ์คํธ์ฉ ํ๋กฌํํธ""" +def _build_series_prompt(keyword: str, traffic: str, series_context: dict, blog_config: dict | None = None) -> str: + """์๋ฆฌ์ฆ ํฌ์คํธ์ฉ ํ๋กฌํํธ โ ๋ธ๋ก๊ทธ ์ฃผ์ ๋ณ ๋ถ๊ธฐ""" + from datetime import datetime + blog_id = (blog_config or {}).get("id", "") + # ์ค์ ๊ฒฝํ ์๋ฃ ์ ๋ฌด์ ๋ฐ๋ฅธ ๋ฌธ์ฒด ๊ท์น + ๊ตฌ์กฐ ๋ณ์ฃผ + ์ฒด๋ฅ์๊ฐ ๊ฐํ ์ง์นจ (๊ฐ์ง ์ฒดํ๋ดยท๋ชฉ์ฐจ ๋ฐ๋ณต ๋ฐฉ์ง) + style_block = _experience_style_block(keyword, blog_id) + _structure_variation(keyword) + _engagement_block(keyword, blog_id) + if blog_id == "blog3": + return _build_series_prompt_finance(keyword, traffic, series_context, blog_config) + style_block + # blog1 ๋๋ ๋ฏธ์ง์ + return _build_series_prompt_general(keyword, traffic, series_context, blog_config) + style_block + + +def _series_common_vars(keyword: str, series_context: dict): + """์๋ฆฌ์ฆ ํ๋กฌํํธ ๊ณตํต ๋ณ์๋ฅผ ๋ฐํํฉ๋๋ค.""" + from datetime import datetime + now = datetime.now() + series_title = series_context.get("series_title", "") + episode = series_context.get("episode", 1) + total = series_context.get("total_episodes", 1) + focus = series_context.get("focus", "") + title_hint = series_context.get("title", "") + series_label = series_context.get("series_label", "") + all_eps = series_context.get("episodes", []) + other_eps = [ep for ep in all_eps if ep.get("episode") != episode] + other_list = "\n".join([f" โข {ep['episode']}ํธ: {ep.get('title', '')}" for ep in other_eps]) + return (now.year, now.strftime("%Y๋ %m์ %d์ผ"), + series_title, episode, total, focus, title_hint, series_label, other_list) + + +def _build_series_prompt_general(keyword: str, traffic: str, series_context: dict, blog_config: dict | None = None) -> str: + """blog1 / ๊ธฐ๋ณธ โ ์ฌํยท๋๋ผ๋งยท์ฐ์ยทK-POP ์๋ฆฌ์ฆ ํ๋กฌํํธ (๊ฐ์ธ ๊ฒฝํ ์คํ์ผ)""" from datetime import datetime now = datetime.now() y = now.year @@ -898,16 +1895,24 @@ def _build_series_prompt(keyword: str, traffic: str, series_context: dict) -> st article_type = _detect_article_type(keyword) structure_guide = _STRUCTURE_GUIDE.get(article_type, _STRUCTURE_GUIDE["analysis"]) + blog_topic_hint = _build_blog_topic_hint(blog_config) + + # ๋๋ผ๋งยท์ํ ์๋ฆฌ์ฆ์ผ ๋ ์ค์ ๋ฆฌ๋ทฐ ๋ฐ์ดํฐ ์์ง + drama_ref_section = "" + if article_type == "drama_review": + drama_ref_section = _fetch_drama_references(keyword) + if drama_ref_section: + logger.info(f"[์๋ฆฌ์ฆ] ๋๋ผ๋ง/์ํ ์ฐธ๊ณ ๋ฆฌ๋ทฐ ๋ฐ์ดํฐ ์์ง ์๋ฃ: '{keyword}'") if BLOG_LANGUAGE == "ko": - return f"""๋น์ ์ 30๋ ์ค๋ฐ ์ง์ฅ์ธ์ ๋๋ค. ๋ณธ์ ์ด ๋ฐ๋ก ์๊ณ , "{series_title}" ์๋ฆฌ์ฆ๋ฅผ ์ง์ ๊ณต๋ถํ๊ณ ๊ฒฝํํ๋ฉด์ ํธ์ฉ ์ ๋ฆฌํด ์ฌ๋ฆฌ๋ ์ค์ ๋๋ค. + return f"""๋น์ ์ "{series_title}" ์๋ฆฌ์ฆ๋ฅผ ๊น์ด ๊ณต๋ถํ๊ณ ์กฐ์ฌํ๋ฉด์ ํ ํธ์ฉ ์ ๋ฆฌํด ์ฌ๋ฆฌ๋ ๋ธ๋ก๊ฑฐ์ ๋๋ค. ๊ธ์ฐ๊ธฐ ์ ๋ฌธ๊ฐ๊ฐ ์๋๋ผ ์๋ฒฝํ์ง ์์๋ ๋ฉ๋๋ค. ๊ตฌ๊ธ AdSense ์ ์ฑ ์ ์์ ํ ์ค์ํฉ๋๋ค. ใํ์ฌ ๋ ์งใ {date_str} ใ์๋ฆฌ์ฆใ "{series_title}" โ ์ด {total}ํธ ์ค {episode}๋ฒ์งธ ใ์ด ํธ ์ด์ ใ {focus} ใํค์๋ใ {keyword} -ใ์ํฐํด ์ ํใ {article_type} +ใ์ํฐํด ์ ํใ {article_type}{blog_topic_hint} โโโ ์๋ฆฌ์ฆ ์ฐ๊ฒฐ ๋ฐฉ์ โโโ @@ -966,24 +1971,33 @@ def _build_series_prompt(keyword: str, traffic: str, series_context: dict) -> st โข ์ ํ๋ณ ๊ตฌ์กฐ ๊ฐ์ด๋: {structure_guide} -โโโ Google AdSense 2025 ์ ์ฑ ์ค์ (์๋ ๊ฒ์ฆ ๋์) โโโ -โ ์๋ณธ์ฑยทํ์ง โ ๋ ์ฐฝ์ ๊ฒฝํยท์ธ์ฌ์ดํธ ํ์, 2500์ ์ด์ +โโโ Google AdSense 2025 ์ ์ฑ ์ค์ (๊ฐ์น ์๋ ์ฝํ ์ธ ์๋ฐ ๋ฐฉ์ง) โโโ +โ ์๋ณธ์ฑยทํ์ง โ ๋ ์ฐฝ์ ๊ฒฝํยท์ธ์ฌ์ดํธ ํ์. ์ธํฐ๋ท์ ํํ ์ ๋ณด ๋์ด ๊ธ์ง. ๊ธ์ด์ด๋ง ์๋ ๊ตฌ์ฒด์ ๊ฒฝํยท์์นยท์ค์ ํฌํจ โก SEO ์ต์ ํ โ ํค์๋ ์์ฐ ๋ถ์ฐ, ์ ๋ชฉยท๋ด์ฉ ์ผ์น -โข ๊ตฌ์กฐยท๊ฐ๋ ์ฑ โ H2 4๊ฐ ์ด์, ๋จ๋ฝ ์ ์ ํ ๊ธธ์ด, ๋ชฉ์ฐจ ํฌํจ +โข ๊ตฌ์กฐยท๊ฐ๋ ์ฑ โ H2 5๊ฐ ์ด์, ๊ฐ ์น์ 300์ ์ด์, ๋ชฉ์ฐจ ํฌํจ โฃ ๊ด๊ณ ๋ฐฐ์น โ ๊ด๊ณ 4๊ฐ ์ดํ, ์ฝํ ์ธ ์ถฉ๋ถ, ํ๋ฆ ๋ฐฉํด ๊ธ์ง โค ์ ํดยท๊ธ์ง โ ์ฑ์ธ/ํญ๋ ฅ/ํ์ค/๋ถ๋ฒ ์ ๋ ๊ธ์ง (์๋ฐ ์ ์ฆ์ ๊ฑฐ๋ถ) ํฌ์ยท์๋ฃ ์ฃผ์ฅ์ ๋ฐ๋์ ๋ฉด์ฑ ํํ ํฌํจ -โฅ E-E-A-T โ 1์ธ์นญ ๊ฒฝํ ํฌํจ, ์ถ์ฒ ์ต์ 2๊ฐ, ๊ท ํ ์กํ ์๊ฐ +โฅ E-E-A-T โ ๊ตฌ์ฒด์ ์์นยท๋ ์งยท์ถ์ฒ ํฌํจ (์ต์ 3๊ฐ), ๊ท ํ ์กํ ์๊ฐ + ์: "{y}๋ ๊ณต์ ๋ฐํ ๊ธฐ์ค์ผ๋ก", "์ด์ฉ์ ํ๊ธฐ๋ฅผ ์ข ํฉํ๋ฉด", "โ๊ฐ์ ์ด์ฉ ํ๊ธฐ๋ค์ ๋ณด๋ฉด" โฆ ์ด๋ฏธ์ง โ alt ํ ์คํธ ๋ชจ๋ ์ด๋ฏธ์ง์ ํฌํจ โง AI ์์ฌ๋ โ ์ 4๋ฒ AI ์ํฌ์ด ๊ท์น ์ฒ ์ ์ค์ +โจ ๋ถ๋ 4500์ ์ด์ ํ์ โ ์ด ์ดํ๋ 'thin content'๋ก AdSense ๊ฑฐ๋ถ๋จ โโโ ์ ๋ชฉ ๊ท์น โโโ โข "[{episode}ํธ]"์ผ๋ก ์์ -โข ์์ฐ์ค๋ฌ์ด ๋ธ๋ก๊ทธ ์ ๋ชฉ | {y}๋ ํฌํจ | 40์ ์ด๋ด - -โโโ ๋ณธ๋ฌธ ๊ตฌ์กฐ โโโ -๋ถ๋: 2800~3500์ ์์ ํ HTML -H2 ์น์ : 4~6๊ฐ (์ฃผ์ ์ ๋ฐ๋ผ ์์ ๋กญ๊ฒ) +โข ๊ฐ๊ฒฐํ๊ณ ์ํฉํธ ์๊ฒ: ์ ๋์ด ์ ์ธ 28์ ์ด๋ด, ํต์ฌ ํค์๋ ์ ๋ฐฐ์น, ๊ตฐ๋๋๊ธฐ ์ ๊ฑฐ + +โโโ ๋ณธ๋ฌธ ๊ตฌ์กฐ (๋ถ๋ ์์ โ ๊ฐ์ฅ ์ค์) โโโ +๋ถ๋: 4500~6000์ ์์ ํ HTML (Google AdSense ์ ์ฑ ์ 4000์ ๋ฏธ๋ง์ thin content) +โ ๏ธ ๋ฐ๋์ ์ง์ผ์ผ ํ ๋ถ๋ ๊ท์น: + - H2 ์น์ 7๊ฐ ์ด์ (๊ฐ ์น์ ์ต์ 500์ ์ด์) + - ๋์ ๋ถ(p ํ๊ทธ) ์ต์ 300์ + - FAQ๋ ํ์ํ ๋๋ง 2~5๊ฐ (๋ต๋ณ์ ์ถฉ์คํ๊ฒ) + - ๊ฒฐ๋ก ์น์ ์ต์ 200์ + - ์น์ ํฉ๊ณ = ์ต์ 4500์ +๊ฐ H2 ์น์ ๋ง๋ค ์ต์ 3๊ฐ ๋จ๋ฝ, ๊ตฌ์ฒด์ ์ฌ๋กยท์์นยท๊ฒฝํ ๋ฐ๋์ ํฌํจ +โ ๏ธ ๋ถ๋ ๋ถ์กฑ ์ ๊ธ์ด ๊ฒ์๋์ง ์์ต๋๋ค โ 4500์ ๋ฏธ๋ง์ ์๋ ๊ฑฐ๋ถ๋ฉ๋๋ค โโโ ๊ฐ์กฐ & ๊ฐ๋ ์ฑ โโโ โข ํต์ฌ ์์นยทํฉํธยทํ๋ ์ง์นจ์ ์ผ๋ก ๊ฐ์กฐ (๋ฌธ๋จ๋น 1~2๊ฐ, ๋จ์ฉ ๊ธ์ง) @@ -992,7 +2006,7 @@ def _build_series_prompt(keyword: str, traffic: str, series_context: dict) -> st โข ํต์ฌ ์ธ์ฌ์ดํธ๋๋ก ๊ฐ์ธ๊ธฐ (1~2๊ฐ) โโโ FAQ โโโ -h2 "์์ฃผ ๋ฌป๋ ์ง๋ฌธ" + 5๊ฐ / ๊ตฌ์ฒด์ ์ด๊ณ ์ค์ง์ ์ธ ์ง๋ฌธยท๋ต๋ณ +๊ฒ์ ์๋์ ๋ ์๊ฐ ์ค์ ๋ก ๊ถ๊ธํดํ ๋๋ง 2~5๊ฐ. ํ์ ์์ผ๋ฉด FAQ ์น์ ๊ณผ faq ํ๋๋ฅผ ์๋ต(๋น ๋ฐฐ์ด)ํ์ธ์. ๋ชจ๋ ๊ธ์ ๊ฐ์ ๊ฐ์ ๊ธ์ง. ๊ตฌ์ฒด์ ์ด๊ณ ์ค์ง์ ์ธ ์ง๋ฌธยท๋ต๋ณ โโโ SEO โโโ ํค์๋ 10~14ํ | LSI ํค์๋ | ๋ผ๋ฒจ 10๊ฐ (๋ฐ๋์ "{series_label}" ํฌํจ) | meta_description 155์ ์ด๋ด @@ -1002,7 +2016,7 @@ def _build_series_prompt(keyword: str, traffic: str, series_context: dict) -> st โข ์ค์กดํ๋ ๊ณต์ ๋ ฅ ์๋ URL๋ง โข ํ์ธ ๋ถ๊ฐ ํต๊ณ๋ ์ถ์ฒ ์๋ต โข ์ต์ 2๊ฐ, ์ต๋ 6๊ฐ - +{drama_ref_section} JSON๋ง ์๋ต (๋งํฌ๋ค์ด ์์ด): {{ "title": "[{episode}ํธ] ...", @@ -1045,7 +2059,7 @@ def _build_series_prompt(keyword: str, traffic: str, series_context: dict) -> st 5. "๐ฅ {y} Trends & Updates" 6. "๐ฐ Action Steps & What's Next" -FAQ (h2 "Frequently Asked Questions"): 5 Q&As +FAQ (h2 "Frequently Asked Questions"): only if search intent calls for it, 2-5 Q&As Conclusion (200w): summary + encourage reading next part โโโ CONTENT QUALITY โโโ @@ -1072,10 +2086,126 @@ def _build_series_prompt(keyword: str, traffic: str, series_context: dict) -> st }}""" -def generate_series_post(keyword: str, traffic: str = "N/A", series_context: dict | None = None) -> dict | None: +# โโ blog3 ๊ธ์ต ์๋ฆฌ์ฆ ํ๋กฌํํธ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ + +def _build_series_prompt_finance(keyword: str, traffic: str, series_context: dict, blog_config: dict | None = None) -> str: + """blog3 ๊ธ์ตยท์ ๋ถ์ง์ ์๋ฆฌ์ฆ ์ ์ฉ ํ๋กฌํํธ โ ๊ฐ์ธ ๊ฒฝํ ๊ธฐ๋ฐ ์ค์ฉ ๊ธ์ต ์ ๋ณด""" + from datetime import datetime + now = datetime.now() + date_str = now.strftime("%Y๋ %m์ %d์ผ") + series_title = series_context.get("series_title", "") + episode = series_context.get("episode", 1) + total = series_context.get("total_episodes", 1) + focus = series_context.get("focus", "") + title_hint = series_context.get("title", "") + series_label = series_context.get("series_label", "") + all_eps = series_context.get("episodes", []) + other_list = "\n".join( + [f" โข {ep['episode']}ํธ: {ep.get('title', '')}" + for ep in all_eps if ep.get("episode") != episode] + ) + return f"""๋น์ ์ ๊ธ์ต๊ณผ ์ ๋ถ์ง์ ์ ์ฑ ์ ๊น์ด ๊ณต๋ถํ๊ณ ์กฐ์ฌํด ์ ๋ฆฌํ๋ ๋ธ๋ก๊ฑฐ์ ๋๋ค. +"{series_title}" ์๋ฆฌ์ฆ๋ฅผ ์กฐ์ฌํ ๋ด์ฉ ๊ธฐ์ค์ผ๋ก ํ ํธ์ฉ ์ ๋ฆฌํด ์ฌ๋ฆฌ๋ ์ค์ ๋๋ค. +ํฌ์ ์ ๋ฌธ๊ฐ๊ฐ ์๋๋ผ ์๋ฒฝํ์ง ์์๋ ๋ฉ๋๋ค. ๊ตฌ๊ธ AdSense ์ ์ฑ ์ ์์ ํ ์ค์ํฉ๋๋ค. + +ใํ์ฌ ๋ ์งใ {date_str} +ใ์๋ฆฌ์ฆใ "{series_title}" โ ์ด {total}ํธ ์ค {episode}๋ฒ์งธ +ใ์ด ํธ ์ด์ ใ {focus} +ใํค์๋ใ {keyword} + +โโโ ์๋ฆฌ์ฆ ์ฐ๊ฒฐ ๋ฐฉ์ โโโ +๋ค๋ฅธ ํธ ๋ชฉ๋ก: +{other_list} + +โข ๋์ ๋ถ: ์ด ๊ธ์ต/์ ์ฑ ์ฃผ์ ๋ฅผ ์์๋ณด๊ฒ ๋ ๊ณ๊ธฐ ๋๋ ์ด์ ํธ ํ๋ฆ ์์ฐ์ค๋ฝ๊ฒ ์ธ๊ธ +โข ๋ณธ๋ฌธ์์ ๋ค๋ฅธ ํธ์ 1~2ํ ์ธ๊ธ ("1ํธ์์ ์๊ฒฉ ์กฐ๊ฑด ์๊ธฐํ๋๋ฐ", "๋ค์ ํธ์์ ์ ์ฒญ ๊ณผ์ ์๋ ค๋๋ฆด๊ฒ์") +โข ์ด ํธ๋ง ์ฝ์ด๋ ์๊ฒฐ๋๋ ๋ ๋ฆฝ์ ๊ธ +โข ์ ๋ชฉ ํํธ "{title_hint}"๋ฅผ ๋ ๊ตฌ์ฒด์ ์ด๊ณ ๊ธ์ต ๊ฒ์์ ์ ํฉํ๊ฒ ๋ค๋ฌ์ด ์ฌ์ฉ + +โโโ ๊ธ์ต ๋ธ๋ก๊ทธ ๊ธ์ฐ๊ธฐ ์์น โโโ + +โข ๊ณต์ ๋ ฅ ์๋ ์ถ์ฒ ํ์ ์ธ์ฉ (๊ธฐํ์ฌ์ ๋ถยท๊ธ์ต์์ํยท๊ตญ์ธ์ฒญยท๊ธ์ต๊ฐ๋ ์ยท๋ณต์ง๋กยท๊ณ ์ฉ24) +โข ๊ธ์กยท๋ ์งยท์๊ฒฉ ์กฐ๊ฑด ๋ฑ ์์น๋ ๋ฐ๋์ ์ถ์ฒ์ ํจ๊ป ์ ์ +โข ๋ ์๊ฐ ๋ฐ๋ก ํ์ฉํ ์ ์๋ ๋จ๊ณ๋ณ ๊ฐ์ด๋ ํฌํจ +โข "์ฒ์์ ํท๊ฐ๋ฆฌ๊ธฐ ์ฌ์ด๋ฐ", "์ ์ฒญ์ ํ๊ธฐ๋ฅผ ๋ณด๋ฉด" ๋ฑ ๋ ์ ์ํฉ ๊ณต๊ฐ ํํ ์ฌ์ฉ + +โโโ ์ ๋ ์ฐ์ง ๋ง์์ผ ํ ํํ โโโ +โ "ํฌ์๋ฅผ ๊ถ์ ํฉ๋๋ค" / "์์ต์ด ๋ณด์ฅ๋ฉ๋๋ค" / "๋ฐ๋์ ์ค๋ฆ ๋๋ค" +โ ํน์ ๊ธ์ต์ํยท์ฃผ์ ๋งค์ยท๋งค๋ ์ ๋ ํํ +โ "์์๋ณด๊ฒ ์ต๋๋ค" / "์ดํด๋ณด๊ฒ ์ต๋๋ค" / "์ ๋ฆฌํด๋๋ฆฌ๊ฒ ์ต๋๋ค" + +โโโ ๊ธ ๊ตฌ์กฐ โโโ +โข H2 ์์ ๋ชฉ 4~6๊ฐ (๊ฐ 500์ ์ด์, ๊ณต๋ฐฑ ์ ์ธ) +โข ๋์ : ์ด ์ ๋ณด๋ฅผ ์์๋ณด๊ฒ ๋ ์ค์ํ ๊ณ๊ธฐ (200์) +โข ์์ฝ ๋ฐ์ค: ์ด ํธ ํต์ฌ ์ ๋ณด 3์ค (HTML ๋ฐ์ค, โ ๏ธ ํฌ์ ์กฐ์ธ ์๋ ๋ช ์) +โข ๋ณธ๋ฌธ: ์๊ฒฉ ์กฐ๊ฑดยท์ ์ฒญ ๋ฐฉ๋ฒยท์ฃผ์์ฌํญยท์ค๊ณ์ฐ ์์ +โข ์ด๋ฏธ์ง 1์ฅ (๊ธ์ต ๊ด๋ จ) +โข ๋ฉด์ฑ ๋ฌธ๊ตฌ: "๋ณธ ๊ธ์ ๊ฐ์ธ์ ์ธ ๊ฒฝํ๊ณผ ๊ณต๊ฐ๋ ์ ๋ณด๋ฅผ ๋ฐํ์ผ๋ก ์์ฑ๋ ๊ฒ์ผ๋ก, ์ ๋ฌธ์ ์ธ ๊ธ์ต ์กฐ์ธ์ด ์๋๋๋ค. ์ค์ํ ๊ธ์ต ๊ฒฐ์ ์ ์ ๋ฌธ๊ฐ์ ์๋ดํ์๊ธฐ ๋ฐ๋๋๋ค." +โข FAQ๋ ํ์ํ ๋๋ง 2~5๊ฐ (์๊ฒฉยท์ ์ฒญ ๊ด๋ จ ์ง๋ฌธ, ๋ถํ์ํ๋ฉด ์๋ต) +โข ๊ฒฐ๋ก : ์ด ์ ๋์ ๋์์์ ์ฃผ์์ฌํญ ๋ช ํํ + +โ ๏ธ ๋ถ๋: ์ต์ 2,500์ ์ด์(๊ณต๋ฐฑ ์ ์ธ) +โ ๏ธ ํฌ์ ๊ถ์ ยท์์ต ๋ณด์ฅ ํํ ์ ๋ ๊ธ์ง +โ ๏ธ HTML๋ง ์ถ๋ ฅ, ๋งํฌ๋ค์ด ์ฌ์ฉ ๊ธ์ง + +๋ค์ JSON ํ์์ผ๋ก๋ง ์๋ตํ์ธ์: +{{ + "title": "์ ๋ชฉ (28์ ์ด๋ด ๊ฐ๊ฒฐยท์ํฉํธ, ํต์ฌ ํค์๋ ์ ๋ฐฐ์น, ๊ธ์ต ๊ฒ์ ์ต์ ํ)", + "content": "<์์ฑ๋ HTML ๋ณธ๋ฌธ + ๋ฉด์ฑ ๋ฌธ๊ตฌ ํฌํจ>", + "labels": ["{series_label}","๊ธ์ต","๊ฒฝ์ ","์ ๋ถ์ง์","์ธ๊ธ","์ ์ธ","์ฌํ ํฌ","๋ณต์ง","์์ฑ ","์ ์ฑ "], + "meta_description": "๊ฒ์ ๊ฒฐ๊ณผ ์์ฝ (155์ ์ด๋ด, ์ค์ฉ ์ ๋ณด ๊ฐ์กฐ, ํฌ์ ์กฐ์ธ ์๋ ๋ช ์)", + "faq": [{{"q":"๋ ์ ๊ธ์ต ์ง๋ฌธ","a":"๊ณต์ ๋ ฅ ์๋ ์ ๋ณด ๊ธฐ๋ฐ ๋ต๋ณ"}}], + "sources": [{{"title":"๊ธฐํ์ฌ์ ๋ถยท๊ธ์ต์ ๋ฑ ๊ณต์ ์ถ์ฒ๋ช ","url":"https://..."}}] +}}""" + + +# ๊ธ๋น ์ด๋ฏธ์ง ์ ์ฑ : ์ต์ 1์ฅ (ํด๋ฐฑ SVG ์ธ๋ค์ผ๋ก ๋ณด์ฅ) / ์ต๋ 3์ฅ +_MIN_IMAGES_PER_POST = 1 +_MAX_IMAGES_PER_POST = 3 + + +def _collect_post_images(post_data: dict, keyword: str) -> list[dict]: + """๊ธ ์์ฑ ์๋ฃ ํ ์ด๋ฏธ์ง๋ฅผ ์์งํฉ๋๋ค (์ต์ 1์ฅ, ์ต๋ 3์ฅ). + + 1์์: ์ต์ข ์ ๋ชฉ ๊ธฐ๋ฐ ๋ํ ์ด๋ฏธ์ง + 2ยท3์์: H2 ์น์ ๊ธฐ๋ฐ ์ด๋ฏธ์ง (์ ๋ชฉ ์ฟผ๋ฆฌ์ ๋ค๋ฅธ ๊ฐ๋) + ์ ๋ถ ์คํจ ์ fetch_images_for_queries์ ํด๋ฐฑ(SVG ์ธ๋ค์ผ)์ด ์ต์ 1์ฅ ๋ณด์ฅ. + """ + final_title = (post_data.get("title") or "").strip() or keyword + + # ๊ฒ์ ์ฟผ๋ฆฌ ๊ตฌ์ฑ: ์ ๋ชฉ 1๊ฐ + ์น์ ์ฟผ๋ฆฌ ์ต๋ 2๊ฐ (์ค๋ณต ๊ฐ๋ ์ ๊ฑฐ) + queries = [final_title] + try: + for q in _extract_section_queries(post_data.get("content", ""), keyword): + if len(queries) >= _MAX_IMAGES_PER_POST: + break + if q and q not in queries: + queries.append(q) + except Exception as e: + logger.debug(f"์น์ ์ฟผ๋ฆฌ ์ถ์ถ ์คํจ (์ ๋ชฉ ์ฟผ๋ฆฌ๋ง ์ฌ์ฉ): {e}") + + plain_text = _content_preview(post_data.get("content", ""), chars=600) + images = fetch_images_for_queries( + queries[:_MAX_IMAGES_PER_POST], + naver_client_id=os.getenv("NAVER_CLIENT_ID", ""), + naver_client_secret=os.getenv("NAVER_CLIENT_SECRET", ""), + pixabay_api_key=os.getenv("PIXABAY_API_KEY", ""), + article_plain_text=plain_text, + keyword=keyword, + title=post_data.get("title", ""), + ) + images = images[:_MAX_IMAGES_PER_POST] + if len(images) < _MIN_IMAGES_PER_POST: + logger.warning(f"์ด๋ฏธ์ง ์ต์ ๊ฐ์({_MIN_IMAGES_PER_POST}์ฅ) ๋ฏธ๋ฌ: {len(images)}์ฅ โ ํ ์คํธ๋ง์ผ๋ก ์งํ") + else: + logger.info(f"์ด๋ฏธ์ง {len(images)}์ฅ ์์ง ์๋ฃ (์ต์ {_MIN_IMAGES_PER_POST} / ์ต๋ {_MAX_IMAGES_PER_POST})") + return images + + +def generate_series_post(keyword: str, traffic: str = "N/A", series_context: dict | None = None, blog_config: dict | None = None) -> dict | None: """์๋ฆฌ์ฆ ํฌ์คํธ๋ฅผ ์์ฑํฉ๋๋ค.""" if not series_context: - return generate_post(keyword, traffic) + return generate_post(keyword, traffic, blog_config) # episode ๋ ๋ฐ๋์ int โ ๊ธฐ๋ณธ๊ฐ "?" ๋ build_series_nav์์ TypeError ์ ๋ฐ _ep_raw = series_context.get("episode", 1) @@ -1085,45 +2215,113 @@ def generate_series_post(keyword: str, traffic: str = "N/A", series_context: dic episode = 1 total = series_context.get("total_episodes", "?") logger.info(f"์๋ฆฌ์ฆ ํฌ์คํธ ์์ฑ: '{keyword}' ({episode}/{total}ํธ)") - prompt = _build_series_prompt(keyword, traffic, series_context) + # ๊ธ ์์ฑ ์ ์๋ฃ ์กฐ์ฌ โ ๊ฒ์ฆ๋ ์๋ฃํฉ๋ง ์ฌ์ค ๊ทผ๊ฑฐ๋ก ์ฌ์ฉ + from evidence_builder import format_evidence_for_prompt + evidence_pack = _run_research(keyword) + prompt = _build_series_prompt(keyword, traffic, series_context, blog_config) + format_evidence_for_prompt(evidence_pack) + + # ๋๋ผ๋ง ํ์ฐจ๋ณ ๋ฆฌ๋ทฐ: ๋จ์ผ ํ์ฐจ ์ฃผ์ ๋ผ ๋ถ๋์ด ์งง์์ง๊ธฐ ์ฌ์ โ + # ๋ฆฌ๋ทฐ ๊ตฌ์กฐ ๊ฐ์ด๋๋ฅผ ์ถ๊ฐํ๊ณ ์ต์ ๋ถ๋ ๊ธฐ์ค์ ์ํ (2000์, thin content ๋ฐฉ์ง์ ์ ์ง) + is_drama_ep = (series_context or {}).get("type") == "drama_episode_review" + min_wc = 2000 if is_drama_ep else 2500 + if is_drama_ep: + # โโ ๋ฐฉ์ ํ ์๋ฃ ๊ฒ์ดํธ: ์ค์ ๋ฐฉ์ ์๋ฃ๊ฐ ์์ผ๋ฉด ์์ฑ ์์ฒด๋ฅผ ๊ฑฐ๋ถ โโ + # (๋ฏธ๋ฐฉ์ ํ์ฐจ๋ฅผ ์์์ผ๋ก ๋ฆฌ๋ทฐํ๋ '์์ ์๋๋ฆฌ์ค' ์์ฑ ๋ฐฉ์ง) + _facts = (evidence_pack or {}).get("facts") or [] + if len(_facts) < 2: + logger.error( + f"'{keyword}' ๋ฐฉ์ ํ ์๋ฃ ๋ถ์กฑ ({len(_facts)}๊ฑด) โ " + f"์์ ์๋๋ฆฌ์ค ๋ฆฌ๋ทฐ ๋ฐฉ์ง๋ฅผ ์ํด ์ด ํ์ฐจ ์์ฑ์ ๊ฑด๋๋๋๋ค " + f"(๋ฏธ๋ฐฉ์์ด๊ฑฐ๋ ์์ง ๊ธฐ์ฌยท๋ฐ์์ด ์๋ ํ์ฐจ)" + ) + return None + drama_ep_num = series_context.get("drama_episode") or episode + binfo = series_context.get("broadcast_info") or {} + binfo_line = "" + if binfo: + binfo_line = ( + f"\nํ์ธ๋ ํธ์ฑ ์ ๋ณด: {binfo.get('platform') or '?'} | " + f"์ด {binfo.get('total_episodes') or '?'}๋ถ์ | {binfo.get('air_schedule') or ''} | " + f"ํ์ฌ {binfo.get('latest_aired_episode') or '?'}ํ๊น์ง ๋ฐฉ์๋จ" + ) + prompt += f""" + +โโโ ๋๋ผ๋ง ํ์ฐจ ๋ฆฌ๋ทฐ ๊ตฌ์กฐ (๋ถ๋ ํ๋ณด โ ๋ฐ๋์ ์ด ์์๋ค์ ๋ชจ๋ ํฌํจ) โโโ +์ด ๊ธ์ ์ด๋ฏธ ๋ฐฉ์๋ ๋๋ผ๋ง {drama_ep_num}ํ์ ํ์ฐจ ๋ฆฌ๋ทฐ์ ๋๋ค.{binfo_line} +โข ๋์ : ์ด๋ฒ ํ๋ฅผ ๋ณธ ์งํ์ ํ ์ค ๊ฐ์ + ์คํฌ์ผ๋ฌ ์ฃผ์ ์๋ด +โข H2: {drama_ep_num}ํ ์ค๊ฑฐ๋ฆฌ ํต์ฌ ์ ๋ฆฌ (600์ ์ด์ โ ์ฅ๋ฉด ์์๋๋ก ๊ตฌ์ฒด์ ์ผ๋ก) +โข H2: ๋ช ์ฅ๋ฉด TOP 3 โ ๊ฐ ์ฅ๋ฉด์ ์ํฉยท์ฐ์ถยท์๋ฏธ๋ฅผ ํ๋์ฉ (600์ ์ด์) +โข H2: ๋ช ๋์ฌ์ ๋ฐฐ์ฐ ์ฐ๊ธฐ โ ์ธ์์ ์ธ ๋์ฌ ์ธ์ฉ + ์ฐ๊ธฐ ๋ํ ์ผ ํ๊ฐ (400์ ์ด์) +โข H2: ์์ฒญ์ ๋ฐ์ยทํ์ ํฌ์ธํธ โ ์๋ฃํฉ์ ๊ธฐ์ฌยท๋ฐ์ ๊ทผ๊ฑฐ ํ์ฉ (400์ ์ด์) +โข H2: ๋ค์ ํ ์์ ํฌ์ธํธ โ ์๋ฃํฉ์์ ํ์ธ๋๋ ๋ก๋ฐฅยท๋ณต์ ๋ง ์ ๋ฆฌ (300์ ์ด์) +โข ๋ผ๋ฒจ(labels)์ ๋๋ผ๋งยท๋ฆฌ๋ทฐ ๊ด๋ จ์ผ๋ก๋ง: ["๋๋ผ๋ง๋ฆฌ๋ทฐ","{keyword}","๋๋ผ๋ง"] ๋ฑ (๊ธ์ตยท๊ฒฝ์ ๋ฑ ๋ฌด๊ด ๋ผ๋ฒจ ๊ธ์ง) + +โ ๏ธโ ๏ธ ์ ๋ ๊ท์น โ ์์ ์๋๋ฆฌ์ค ๊ธ์ง: +โข ์ค๊ฑฐ๋ฆฌยท์ฅ๋ฉดยท๋์ฌยท์ ๊ฐ๋ ๋ฐ๋์ ์ ์๋ฃํฉ(๋ฐฉ์ ํ ๊ธฐ์ฌยท๋ฐ์)์์ ํ์ธ๋๋ ๋ด์ฉ๋ง ์ฐ์ธ์ +โข ์๋ฃํฉ์ ์๋ ์ฅ๋ฉดยท๋์ฌยท๊ฒฐ๋ง์ ์์ํด์ ๋ง๋ค์ง ๋ง์ธ์ โ ํ์ธ ์ ๋๋ ๋ถ๋ถ์ + "์ด๋ฒ ํ์์๋ ~ํ ์ ๊ฐ๊ฐ ํ์ ์๋ค" ์์ค์ผ๋ก ์๋ฃ ๋ฒ์ ์์์๋ง ์์ +โข ์๋ฃ๊ฐ ๋ถ์กฑํ ์น์ ์ ์ต์ง๋ก ์ฑ์ฐ์ง ๋ง๊ณ ๋ฐฐ์ฐยท์ํ ๋ฐฐ๊ฒฝ ๋ฑ ํ์ธ๋ ์ ๋ณด๋ก ๋์ฒด +โ ๏ธ ์ด ๋ถ๋ 3000์ ์ด์ ๋ชฉํ, ์ต์ 2500์""" + + is_blog1 = blog_config and blog_config.get("id") == "blog1" + ai_provider = _resolve_ai_provider(blog_config) + + prev_wc = 0 + last_readability: dict | None = None for attempt in range(3): try: from datetime import datetime as _dt _now = _dt.now() - _sys = ( - f"ํ์ฌ ๋ ์ง: {_now.strftime('%Y๋ %m์ %d์ผ')}. " - "๋น์ ์ ์ง์ ๊ฒฝํ์ ๋ฐํ์ผ๋ก ์์งํ๊ฒ ๊ธ์ ์ฐ๋ 30๋ ์ง์ฅ์ธ ๋ธ๋ก๊ฑฐ์ ๋๋ค. " - "AI๊ฐ ์ด ๊ฒ์ฒ๋ผ ๋ณด์ด์ง ์๊ฒ, ์ฌ๋ ๋์ ๋๋ ์์ฐ์ค๋ฌ์ด ํ๊ตญ์ด ๋ธ๋ก๊ทธ ๊ธ์ ์๋๋ค. " - "JSON๋ง ์๋ตํ์ธ์." - if BLOG_LANGUAGE == "ko" else - f"Current date: {_now.strftime('%B %d, %Y')}. " - "You are a personal blogger who writes from direct experience. " - "Write naturally, like a real person โ not an AI report. JSON only." - ) - message = _get_client().messages.create( - model=CLAUDE_MODEL, - max_tokens=16000, - temperature=1.0, - system=_sys, - messages=[{"role": "user", "content": prompt}], - ) - if not message.content or not hasattr(message.content[0], "text"): + blog_lang = (blog_config or {}).get("language", BLOG_LANGUAGE) + if is_blog1: + _sys = ( + f"ํ์ฌ ๋ ์ง: {_now.strftime('%Y๋ %m์ %d์ผ')}. " + "๋น์ ์ ๊ด์ฌ ์ฃผ์ ๋ฅผ ๊น์ด ์กฐ์ฌํ๊ณ ๊ณต๋ถํด์ ์์งํ๊ฒ ์ ๋ฆฌํด ์ฌ๋ฆฌ๋ ๋ธ๋ก๊ฑฐ์ ๋๋ค. ํ์ง ์์ ๊ฒฝํ์ ํ ๊ฒ์ฒ๋ผ ์ฐ์ง ์์ต๋๋ค. " + "๊ตฌ๊ธ ์ ๋์ผ์ค ์ ์ฑ ์ ์์ ํ ์ค์ํ๋ฉฐ, AI๊ฐ ์ด ๊ฒ์ฒ๋ผ ๋ณด์ด์ง ์๋ ์์ฐ์ค๋ฌ์ด ํ๊ตญ์ด ๋ฌธ์ฒด๋ก ์์ฑํฉ๋๋ค. " + "๋ ์์๊ฒ ์ค์ง์ ์ธ ๋์์ด ๋๋ ์ ๋ณด๋ฅผ ์ ๊ณตํ๋ ๊ฒ์ด ์ต์ฐ์ ์ ๋๋ค. " + "JSON๋ง ์๋ตํ์ธ์." + ) + elif blog_lang == "ko": + _sys = ( + f"ํ์ฌ ๋ ์ง: {_now.strftime('%Y๋ %m์ %d์ผ')}. " + "๋น์ ์ ์ ๋ขฐํ ์ ์๋ ์ ๋ณด๋ฅผ ์กฐ์ฌยท์ ๋ฆฌํด ์์งํ๊ฒ ๊ธ์ ์ฐ๋ ๋ธ๋ก๊ฑฐ์ ๋๋ค. ํ์ง ์์ ๊ฒฝํ์ ํ ๊ฒ์ฒ๋ผ ์ฐ์ง ์์ต๋๋ค. " + "AI๊ฐ ์ด ๊ฒ์ฒ๋ผ ๋ณด์ด์ง ์๊ฒ, ์ฌ๋ ๋์ ๋๋ ์์ฐ์ค๋ฌ์ด ํ๊ตญ์ด ๋ธ๋ก๊ทธ ๊ธ์ ์๋๋ค. " + "JSON๋ง ์๋ตํ์ธ์." + ) + else: + _sys = ( + f"Current date: {_now.strftime('%B %d, %Y')}. " + "You are a blogger who writes well-researched, trustworthy posts. Never fabricate personal experiences. " + "Write naturally, like a real person โ not an AI report. JSON only." + ) + escalation = _retry_escalation_note(attempt, prev_wc) + readability_escalation_note(last_readability) + logger.info(f" AI ์ ๊ณต์: {ai_provider.upper()} (์๋ {attempt + 1}/3)") + raw = _ai_generate(_sys, prompt + escalation, ai_provider).strip() + if not raw: + logger.warning(f"{ai_provider.upper()} ์๋ต ์์ โ ์ฌ์๋") if attempt < 2: time.sleep(2) continue return None - raw = message.content[0].text.strip() post_data = _parse_response(raw) if post_data is None: if attempt < 2: logger.warning(f"JSON ํ์ฑ ์คํจ โ ์ฌ์๋ {attempt + 1}/3") + prev_wc = -1 # ํ์ฑ ์คํจ ์ผํฐ๋ time.sleep(2) continue return None post_data["keyword"] = keyword post_data["article_type"] = _detect_article_type(keyword) + post_data["risk_level"] = _assess_risk_level(keyword) + # ๊ธ์์ฑ ๊ณ ๋ํ ์คํ ์ถ์ ์ฉ โ ์ด๋ค ๋์ ๋ถ ํํน ์คํ์ผ์ด ์ ์ฉ๋๋์ง ๊ธฐ๋กํด + # ๋ฐํ ํ GSC ์งํยท๋ฑ๊ธ๊ณผ ๋น๊ตํ ์ ์๊ฒ ํจ (weekly_learning.py๊ฐ ์ง๊ณ) + content_category = _detect_content_category(keyword, (blog_config or {}).get("id", "")) + post_data["content_category"] = content_category + # ํ์ค ์คํค๋ง: tags๋ labels์ ๋ณ์นญ (๋ด๋ถ ๋งํฌยท๋์๋ณด๋ ๊ณต์ฉ) + post_data["tags"] = list(post_data.get("labels", []) or []) post_data["series_id"] = series_context.get("series_id", "") post_data["episode"] = episode @@ -1131,27 +2329,40 @@ def generate_series_post(keyword: str, traffic: str = "N/A", series_context: dic post_data["word_count"] = _word_count(content_html) post_data["content_preview"] = _content_preview(content_html) - if not content_html.strip() or post_data["word_count"] < 100: + prev_wc = post_data["word_count"] + if not content_html.strip() or post_data["word_count"] < min_wc: if attempt < 2: - logger.warning(f"์ปจํ ์ธ ๋๋ฌด ์งง์({post_data['word_count']}์) โ ์ฌ์๋") + logger.warning(f"์ปจํ ์ธ ๋๋ฌด ์งง์({post_data['word_count']}์, ์ต์ {min_wc}์) โ ์ฌ์๋ {attempt + 1}/3") + time.sleep(3) + continue + if post_data["word_count"] < 500: + logger.error(f"์ปจํ ์ธ ์์ฑ ์คํจ: {post_data['word_count']}์ โ thin content ๋ฐฉ์ง๋ฅผ ์ํด ๊ฒ์ ๊ฑฐ๋ถ") + return None + logger.warning(f"์ต์ ๋ถ๋ ๋ฏธ๋ฌ({post_data['word_count']}์) โ ์ฌ์๋ ์์ง, ํด๋น ๋ถ๋์ผ๋ก ์งํ") + + # ์ฝ๊ธฐ ๋์ด๋ ์๋ ๊ฒ์ฌ โ ๋ฌธ์ฅ ๊ธธ์ดยท์ ๋ฌธ์ฉ์ด ๋น์จ ์ค์บ, ๊ธฐ์ค ๋ฏธ๋ฌ ์ ์ฌ์์ฑ ์์ฒญ + last_readability = assess_readability(content_html, content_category) + post_data["readability"] = last_readability + if not last_readability["ok"]: + if attempt < 2: + logger.warning(f"์ฝ๊ธฐ ๋์ด๋ ๊ธฐ์ค ๋ฏธ๋ฌ({last_readability['issues']}) โ ์ฌ์์ฑ ์์ฒญ {attempt + 1}/3") time.sleep(2) continue - return None + logger.warning(f"์ฝ๊ธฐ ๋์ด๋ ๊ธฐ์ค ๋ฏธ๋ฌ({last_readability['issues']}) โ ์ฌ์๋ ์์ง, ํด๋น ์ํ๋ก ์งํ") if not isinstance(post_data.get("sources"), list): post_data["sources"] = [] else: post_data["sources"] = _validate_sources(post_data["sources"]) - section_queries = _extract_section_queries(content_html, keyword) - plain_text = _content_preview(post_data.get("content", ""), chars=600) - images = fetch_images_for_queries( - section_queries, - naver_client_id=os.getenv("NAVER_CLIENT_ID", ""), - naver_client_secret=os.getenv("NAVER_CLIENT_SECRET", ""), - article_plain_text=plain_text, - keyword=keyword, - ) + # ์๋ฃํฉ ์ถ์ฒ๋ฅผ sources์ ๋ณํฉ (๊ฒ์ฆ๋ ์ถ์ฒ ์ฐ์ ) + _merge_evidence(post_data, evidence_pack) + + # ๊ฒ์ ์ ํฉํธ์ฒดํฌ โ ์ด๋ฏธ์ง ์ฝ์ ์ ์ ์คํ (์ด๋ฏธ์ง HTML ํผ์ ๋ฐฉ์ง) + _fact_check_content(post_data, keyword, evidence_pack) + + # ๊ธ ์์ฑ ์๋ฃ ํ ์ด๋ฏธ์ง ์์งยท์ฝ์ (์ต์ 1์ฅ / ์ต๋ 3์ฅ) + images = _collect_post_images(post_data, keyword) if images: post_data["content"] = inject_images_into_content(post_data["content"], images, keyword) post_data["images_inserted"] = len(images) @@ -1163,6 +2374,14 @@ def generate_series_post(keyword: str, traffic: str = "N/A", series_context: dic post_data["content"], keyword, _detect_article_type(keyword) ) + # ์ฟ ํกํํธ๋์ค ์ถ์ฒ ์ํ ์น์ ์ฝ์ (AdSense ์๋ ๊ด๊ณ ์ ๊ฒน์น์ง ์๊ฒ ๋งจ ํ๋จ ๊ณ ์ ) + post_data["content"] = inject_affiliate_section( + post_data["content"], keyword, blog_config + ) + + # AdSense 'ํ์' ์ ์ฑ ์๋ฐ ๋ฐฉ์ง โ ์ด๋๋ก๋ ์ฐ๊ฒฐ๋์ง ์๋ href="#" ๋งํฌ ์ ๊ฑฐ + post_data["content"] = _strip_dead_links(post_data["content"]) + logger.info( f"์๋ฆฌ์ฆ ํฌ์คํธ ์์ฑ ์๋ฃ: '{post_data.get('title', '?')}' " f"({post_data['word_count']}์, ์ด๋ฏธ์ง {post_data['images_inserted']}๊ฐ)" @@ -1183,67 +2402,347 @@ def generate_series_post(keyword: str, traffic: str = "N/A", series_context: dic return None -def generate_post(keyword: str, traffic: str = "N/A") -> dict | None: +def _merge_evidence(post_data: dict, evidence_pack: dict | None) -> None: + """์๋ฃํฉ์ ๊ฒ์ฆ๋ ์ถ์ฒ๋ฅผ post_data sources ์์ชฝ์ ๋ณํฉํ๊ณ ํต๊ณ๋ฅผ ๊ธฐ๋กํฉ๋๋ค.""" + if not evidence_pack: + post_data["evidence"] = {"used": False, "facts": 0, "verified": 0} + return + facts = evidence_pack.get("facts") or [] + verified = [f for f in facts if f.get("verified")] + ev_sources = [] + seen = set() + for f in (verified or facts): + url = f.get("source_url", "") + if url and url not in seen: + seen.add(url) + ev_sources.append({"title": f.get("source_title") or url, "url": url}) + existing = [s for s in (post_data.get("sources") or []) + if isinstance(s, dict) and s.get("url") not in seen] + post_data["sources"] = (ev_sources + existing)[:6] + post_data["evidence"] = {"used": True, "facts": len(facts), "verified": len(verified)} + + +def _fact_check_content(post_data: dict, keyword: str, evidence_pack: dict | None = None) -> None: + """ + ๊ฒ์ ์ ํฉํธ์ฒดํฌ โ ๋ณธ๋ฌธ์ ์์นยท๋ ์งยทํต๊ณยท๊ธฐ๊ด๋ช ์ฃผ์ฅ ์ค ์์ฌ์ค๋ฌ์ด ๊ฒ์ + Claude๋ก ๊ฒ์ฆํ๊ณ , ๋ณธ๋ฌธ์์ ์๋ฌธ์ด ๊ทธ๋๋ก ๋ฐ๊ฒฌ๋๋ ๊ฒฝ์ฐ ์์ ์ ์ ์ฉํฉ๋๋ค. + ๊ฒฐ๊ณผ๋ post_data['fact_check']์ ๊ธฐ๋ก๋ฉ๋๋ค. ์ค๋ฅ ์ ๊ฒ์๋ฅผ ๋ง์ง ์์ต๋๋ค. + ํ๊ฒฝ๋ณ์ FACT_CHECK=false ๋ก ๋นํ์ฑํํ ์ ์์ต๋๋ค. + """ + if os.getenv("FACT_CHECK", "true").lower() != "true": + post_data["fact_check"] = {"checked": False, "reason": "disabled"} + return + try: + content_html = post_data.get("content", "") + plain = re.sub(r"<[^>]+>", " ", content_html) + plain = re.sub(r"\s+", " ", plain).strip()[:3500] + if len(plain) < 300: + post_data["fact_check"] = {"checked": False, "reason": "too_short"} + return + + from datetime import datetime as _dt + today = _dt.now().strftime("%Y๋ %m์ %d์ผ") + + # ์ค์ ๊ฒฝํ ์๋ฃ๊ฐ ์์ผ๋ฉด ๊ทธ ๋ฒ์ ๋ด ๊ฒฝํ๋ด์ ํ์ฉ, ์์ผ๋ฉด ์ฒดํ ์ฃผ์ฅ๋ ๊ฒ์ฌ ๋์ + exp = _match_experience(keyword) + post_data["experience_used"] = bool(exp) + if exp: + exp_rule = ( + "โค๊ธ์ด์ด์ ์ค์ ๊ฒฝํ ์๋ฃ ๋ฒ์๋ฅผ ๋ฒ์ด๋ 1์ธ์นญ ์ฒดํ ์ฃผ์ฅ. " + f"์ค์ ๊ฒฝํ ์๋ฃ: {str(exp.get('summary', ''))[:200]} โ ์ด ๋ฒ์ ์์ ๊ฒฝํ๋ด์ ํ์ฉํ์ธ์. " + ) + else: + exp_rule = ( + "โค๊ทผ๊ฑฐ ์๋ฃ ์๋ 1์ธ์นญ ์ฒดํ ์ฃผ์ฅ(์: '์ง์ ์จ๋ดค๋ค', '๋ค๋ ์๋ค', 'ํฌ์ํด๋ดค๋ค', " + "'์น๋ฃ๋ฅผ ๋ฐ์๋ดค๋ค', '์ค์ ์์ต ๊ณต๊ฐ') โ ์กฐ์ฌํ ํํ์ผ๋ก ๊ต์ฒดํ์ธ์. " + ) + + # ์๋ฃํฉ์ด ์์ผ๋ฉด ํฉํธ์ฒด์ปค๊ฐ ๊ทธ ๊ธฐ์ค์ผ๋ก ์์นยท๋ ์ง๋ฅผ ๋์กฐ + pack_rule = "" + pack_facts = (evidence_pack or {}).get("facts") or [] + if pack_facts: + facts_brief = " / ".join(f.get("claim", "")[:80] for f in pack_facts[:8]) + pack_rule = ( + "โฅ๊ฒ์ฆ๋ ์๋ฃํฉ๊ณผ ๋ชจ์๋๊ฑฐ๋ ์๋ฃํฉ์ ์๋ ๊ตฌ์ฒด์ ์์นยท์ ์ฑ ๋ด์ฉ. " + f"์๋ฃํฉ: {facts_brief} " + ) + + fc_client = anthropic.Anthropic(api_key=ANTHROPIC_API_KEY) + # max_tokens์ adaptive thinking ํ ํฐ๋ ํฌํจ๋๋ฏ๋ก ์ฌ์ ์๊ฒ ์ก์์ผ + # ์๋ต ์๋ฆผ(โ ๋น ๋ฌธ์์ด โ ํฉํธ์ฒดํฌ ๋ฌด๋ ฅํ)์ ๋ฐฉ์งํ ์ ์์ + raw = claude_generate( + fc_client, + model=CLAUDE_MODEL, + max_tokens=4000, + max_continues=1, + system=( + f"ํ์ฌ ๋ ์ง: {today}. ๋น์ ์ ๋ธ๋ก๊ทธ ๊ธ์ ํฉํธ์ฒด์ปค์ ๋๋ค. " + "๋ณธ๋ฌธ์์ ์ฌ์ค ์ค๋ฅ ๊ฐ๋ฅ์ฑ์ด ๋์ ์ฃผ์ฅ๋ง ์ฐพ์ผ์ธ์: " + "โ ๊ฒ์ฆ ๋ถ๊ฐ๋ฅํ ๊ตฌ์ฒด์ ์์นยทํต๊ณ(์: '๊ตญ๋ฏผ 67%๊ฐ'), โก์๋ชป๋ ๋ ์ง/์ฐ๋, " + "โข์กด์ฌํ์ง ์๋ ์ ๋ยท๊ธฐ๊ดยท์ํ๋ช , โฃ๊ณผ์ฅ๋ ๋จ์ (์: '๋ฌด์กฐ๊ฑด', '100%'), " + + exp_rule + pack_rule + + "์๊ฒฌยทํ๋จํ 1์ธ์นญ('๊ฐ์ธ์ ์ผ๋ก๋', '์ ์๊ฐ์๋')์ ๋ฌธ์ ์ผ์ง ๋ง์ธ์. JSON๋ง ์๋ตํ์ธ์." + ), + messages=[{ + "role": "user", + "content": ( + f"์ฃผ์ : {keyword}\n๋ณธ๋ฌธ:\n{plain}\n\n" + '๋ค์ JSON ํ์์ผ๋ก๋ง ๋ตํ์ธ์:\n' + '{"issues": [{"quote": "๋ณธ๋ฌธ์์ ๊ทธ๋๋ก ๋ณต์ฌํ ๋ฌธ์ ๊ตฌ์ (20์ ์ด๋ด)", ' + '"problem": "๋ฌด์์ด ๋ฌธ์ ์ธ์ง", "fix": "์์ ํ๊ฒ ๊ณ ์น ํํ"}], ' + '"verdict": "pass ๋๋ warn"}\n' + 'โ ๏ธ fix๋ ๋ณธ๋ฌธ์ ๊ทธ๋๋ก ๋ค์ด๊ฐ ์์ฑ๋ ๋์ฒด ๋ฌธ๊ตฌ์ฌ์ผ ํฉ๋๋ค. ' + '"~๋ก ์์ ", "~๋ฑ์ผ๋ก ์ํ", "~ํ์ธ์" ๊ฐ์ ํธ์ง ์ง์๋ฌธ์ ์ ๋ ๊ธ์ง.\n' + "๋ฌธ์ ๊ฐ ์์ผ๋ฉด issues๋ฅผ ๋น ๋ฐฐ์ด๋ก, verdict๋ฅผ pass๋ก ํ์ธ์. ์ด์๋ ์ต๋ 5๊ฐ." + ), + }], + ) + raw = raw.strip() + if not raw: + # ์๋ต์ด ์๋ ธ๊ฑฐ๋ ๋น์ด ์์ โ 'ํต๊ณผ'๋ก ์์ฅํ์ง ์๊ณ ๋ฏธ๊ฒ์ฆ์ผ๋ก ๊ธฐ๋ก + logger.warning("ํฉํธ์ฒดํฌ ์๋ต ๋น์ด์์ (ํ ํฐ ์๋ฆผ ์ถ์ ) โ ๋ฏธ๊ฒ์ฆ์ผ๋ก ๊ธฐ๋ก, ๊ฒ์๋ ๊ณ์") + post_data["fact_check"] = {"checked": False, "reason": "empty_response"} + return + parsed = _parse_response(raw) + if not parsed or "issues" not in parsed: + logger.warning("ํฉํธ์ฒดํฌ ์๋ต ํ์ฑ ์คํจ โ ๋ฏธ๊ฒ์ฆ์ผ๋ก ๊ธฐ๋ก, ๊ฒ์๋ ๊ณ์") + post_data["fact_check"] = {"checked": False, "reason": "parse_failed"} + return + result = parsed + + def _makes_glitch(html_text: str, pos: int, end: int, fix: str) -> bool: + """์นํ ๊ฒฐ๊ณผ๊ฐ ์ค๋ณต ๋ฌธ๊ตฌ ๊ธ๋ฆฌ์น๋ฅผ ๋ง๋๋์ง ๊ฒ์ฌํฉ๋๋ค. + (์: 'ํ์ ์ฑ ์งํ์์ ํ์ ์ฑ ์งํ์์', '~๊ฐ์ต๋๋คํด๋ณด์ ๋ ์ข์ ๊ฒ ๊ฐ์ต๋๋ค' + โ quote๊ฐ ๋ฌธ์ฅ ์ผ๋ถ๋ง ๋งค์นญ๋๊ณ fix์ ์ฃผ๋ณ ๋ฌธ๋งฅ์ด ํฌํจ๋ ๊ฒฝ์ฐ ๋ฐ์)""" + candidate = html_text[:pos] + fix + html_text[end:] + # ์ฝ์ ์ง์ ์ฃผ๋ณ ์ฐฝ์์ 10์ ์ด์ ์ธ์ ๋ฐ๋ณต ๊ฐ์ง (์๋ณธ์ ์๋ ๊ฒ๋ง) + w_start, w_end = max(0, pos - 20), pos + len(fix) + 40 + new_win = candidate[w_start:w_end] + old_win = html_text[max(0, pos - 20):end + 40] + dup = re.search(r'(\S[^<>]{5,}?)\s*\1', new_win) + return bool(dup and not re.search(re.escape(dup.group(1)) + r'\s*' + re.escape(dup.group(1)), old_win)) + + def _safe_replace(html_text: str, quote: str, fix: str) -> str | None: + """ํ๊ทธ ๋ด๋ถ(์์ฑ/์คํ์ผ)๊ฐ ์๋ ํ ์คํธ ์์น์์๋ง ์นํํฉ๋๋ค. + ๊ณต๋ฐฑยทํ๊ทธ ์ฐจ์ด๋ก ์ง์ ๋งค์นญ์ด ์คํจํ๋ฉด ๊ณต๋ฐฑ ์ ์ฐ ์ ๊ท์์ผ๋ก ์ฌ์๋. + ์นํ ์คํจยท์ค๋ณต ๊ธ๋ฆฌ์น ๋ฐ์ ์ None.""" + if len(quote) < 6: + return None # '100%' ๊ฐ์ ์งง์ ์ธ์ฉ์ ์คํ์ผ ํผ์ ์ํ โ ๊ฑด๋๋ + + def _in_tag(pos: int) -> bool: + lt = html_text.rfind("<", 0, pos) + gt = html_text.rfind(">", 0, pos) + return lt > gt # ์ง์ '<'๊ฐ '>'๋ณด๋ค ๋ค = ํ๊ทธ ๋ด๋ถ + + # โ ์ง์ ๋งค์นญ (ํ๊ทธ ๋ฐ ์ฒซ ์์น) + start = 0 + while True: + pos = html_text.find(quote, start) + if pos == -1: + break + if not _in_tag(pos): + if _makes_glitch(html_text, pos, pos + len(quote), fix): + logger.warning(f"ํฉํธ์ฒดํฌ ์นํ์ด ์ค๋ณต ๋ฌธ๊ตฌ ์์ฑ โ ๊ฑด๋๋: '{fix[:40]}'") + return None + return html_text[:pos] + fix + html_text[pos + len(quote):] + start = pos + 1 + # โก ๊ณต๋ฐฑ ์ ์ฐ ์ ๊ท์ (plain์ \s+ ์ ๊ทํ๋์ด ์์ด HTML๊ณผ ์ด๊ธ๋ ์ ์์) + pattern = re.escape(quote).replace(r"\ ", r"\s+") + for m2 in re.finditer(pattern, html_text): + if not _in_tag(m2.start()): + if _makes_glitch(html_text, m2.start(), m2.end(), fix): + logger.warning(f"ํฉํธ์ฒดํฌ ์นํ์ด ์ค๋ณต ๋ฌธ๊ตฌ ์์ฑ โ ๊ฑด๋๋: '{fix[:40]}'") + return None + return html_text[:m2.start()] + fix + html_text[m2.end():] + return None + + def _is_edit_instruction(fix_text: str) -> bool: + """fix๊ฐ ๋์ฒด ๋ฌธ๊ตฌ๊ฐ ์๋ ํธ์ง ์ง์๋ฌธ์ธ์ง ํ๋ณํฉ๋๋ค. + (๋ณธ๋ฌธ์ ์ง์๋ฌธ์ด ๊ทธ๋๋ก ์ฝ์ ๋๋ ์ฌ๊ณ ๋ฐฉ์ง โ 2026-07-19 ์ค์ ๋ฐ์)""" + t = fix_text.strip() + if re.search(r'(ํ์ธ์|ํด์ผ\s*ํฉ๋๋ค|ํ์ํฉ๋๋ค|๋ฐ๋๋๋ค)\s*[.!]?$', t): + return True + # "~๋ก ์์ ", "~๋ฑ์ผ๋ก ์ํ", "~๋ก ๊ต์ฒด/๋ณ๊ฒฝ/์ญ์ " ํํ๋ก ๋๋๋ ์ง์๋ฌธ + return bool(re.search(r'(์ผ๋ก|๋ก)\s*(์์ |์ํ|๊ต์ฒด|๋ณ๊ฒฝ|์ญ์ |๋์ฒด)\s*[.!]?$', t)) + + applied = 0 + issue_records = [] + for issue in result.get("issues", [])[:5]: + quote, fix = issue.get("quote", ""), issue.get("fix", "") + fixed = False + if fix and _is_edit_instruction(fix): + logger.warning(f"ํฉํธ์ฒดํฌ fix๊ฐ ์ง์๋ฌธ ํํ โ ์ ์ฉ ๊ฑด๋๋: '{fix[:50]}'") + issue_records.append({"problem": issue.get("problem", ""), "fixed": False}) + continue + if quote and fix: + replaced = _safe_replace(content_html, quote, fix) + if replaced is not None: + content_html = replaced + applied += 1 + fixed = True + issue_records.append({"problem": issue.get("problem", ""), "fixed": fixed}) + if applied: + post_data["content"] = content_html + + post_data["fact_check"] = { + "checked": True, + "verdict": result.get("verdict", "pass"), + "issues_found": len(result.get("issues", [])), + "fixes_applied": applied, + "issues": issue_records, + } + if result.get("issues"): + logger.info( + f"ํฉํธ์ฒดํฌ: ์ด์ {len(result['issues'])}๊ฑด ๋ฐ๊ฒฌ, {applied}๊ฑด ์๋ ์์ ์ ์ฉ" + ) + else: + logger.info("ํฉํธ์ฒดํฌ: ํต๊ณผ") + except Exception as e: + logger.warning(f"ํฉํธ์ฒดํฌ ์คํจ (๊ฒ์๋ ๊ณ์ ์งํ): {e}") + post_data["fact_check"] = {"checked": False, "reason": str(e)[:100]} + + +def _retry_escalation_note(attempt: int, prev_wc: int) -> str: + """์ฌ์๋ ์ ๋ถ๋ ๋ถ์กฑ ํผ๋๋ฐฑ ๋ฉ์์ง๋ฅผ ๋ฐํํฉ๋๋ค.""" + if attempt == 0 or prev_wc <= 0: + return "" + needed = max(0, 2500 - prev_wc) + needed_str = f"์ง๊ธ {needed}์๊ฐ ๋ ํ์ํฉ๋๋ค โ ๊ฐ ์น์ ์ ๋ ๊ธธ๊ณ ๊ตฌ์ฒด์ ์ผ๋ก ์์ฑํ์ธ์\n" if needed > 0 else "๋ถ๋์ ์ถฉ๋ถํ์ง๋ง ๊ตฌ์กฐ๋ฅผ ๊ฐ์ ํ์ธ์\n" + return ( + f"\n\nโ ๏ธโ ๏ธโ ๏ธ [์ฌ์๋ {attempt}/2] ์ด์ ์๋ต์ด {prev_wc}์๋ก ๋๋ฌด ์งง์์ต๋๋ค.\n" + "์ด๋ฒ์๋ ๋ฐ๋์ ๋ค์์ ์งํค์ธ์:\n" + f" - H2 ์น์ ๋ง๋ค ์ต์ 500์(๊ณต๋ฐฑ ์ ์ธ)\n" + f" - ๋์ ๋ถ ์ต์ 300์ (๊ฒฝํ๋ด์ผ๋ก ํ๋ถํ๊ฒ)\n" + f" - FAQ๋ฅผ ๋ฃ๋ ๊ฒฝ์ฐ ๊ฐ ๋ต๋ณ์ ์ถฉ์คํ๊ฒ\n" + f" - ์ ์ฒด content ํ๋ ํ ์คํธ ๊ธฐ์ค 2500์ ์ด์(๊ณต๋ฐฑ ์ ์ธ)\n" + f" - {needed_str}" + "โ ๏ธโ ๏ธโ ๏ธ\n" + ) + + +def _run_research(keyword: str) -> dict | None: + """๊ธ ์์ฑ ์ ์๋ฃ ์กฐ์ฌ ํ์ดํ๋ผ์ธ ์คํ โ ๊ฒ์ฆ๋ ์๋ฃํฉ ๋ฐํ. + + RESEARCH_ENGINE=false๋ก ๋นํ์ฑํ ๊ฐ๋ฅ. ์คํจํด๋ ๊ธ ์์ฑ์ ๊ณ์๋๋ฉฐ, + ์๋ฃํฉ์ด ์์ผ๋ฉด ํ๋กฌํํธ์ '๊ฒ์ฆ ๋ถ๊ฐ ์์น ์์ฑ ๊ธ์ง' ํด๋ฐฑ ๊ท์น์ด ๋ค์ด๊ฐ๋๋ค. + """ + if os.getenv("RESEARCH_ENGINE", "true").strip().lower() not in ("true", "1", "yes"): + return None + try: + from research_collector import collect_research + from evidence_builder import build_evidence_pack, save_evidence_pack + from source_validator import validate_pack + research = collect_research(keyword) + if not research.get("materials"): + return None + pack = build_evidence_pack(research) + if not pack.get("facts"): + return None + pack = validate_pack(pack) + save_evidence_pack(pack) + return pack + except Exception as exc: + logger.warning(f"์๋ฃ ์กฐ์ฌ ์คํจ (๊ธ ์์ฑ์ ๊ณ์): {exc}") + return None + + +def generate_post(keyword: str, traffic: str = "N/A", blog_config: dict | None = None) -> dict | None: """Claude API๋ก ํฌ์คํธ ์์ฑ ํ ์ด๋ฏธ์ง๋ฅผ ์๋ ์ฝ์ ํฉ๋๋ค. ์คํจ ์ ์ต๋ 2ํ ์ฌ์๋.""" logger.info(f"ํฌ์คํธ ์์ฑ ์ค: '{keyword}'") - prompt = _build_prompt(keyword, traffic) + # ๊ธ ์์ฑ ์ ์๋ฃ ์กฐ์ฌ โ ๊ฒ์ฆ๋ ์๋ฃํฉ๋ง ์ฌ์ค ๊ทผ๊ฑฐ๋ก ์ฌ์ฉ + from evidence_builder import format_evidence_for_prompt + evidence_pack = _run_research(keyword) + prompt = _build_prompt(keyword, traffic, blog_config) + format_evidence_for_prompt(evidence_pack) + + is_blog1 = blog_config and blog_config.get("id") == "blog1" + ai_provider = _resolve_ai_provider(blog_config) + prev_wc = 0 + last_readability: dict | None = None for attempt in range(3): try: from datetime import datetime as _dt _now = _dt.now() - _sys = ( - f"ํ์ฌ ๋ ์ง: {_now.strftime('%Y๋ %m์ %d์ผ')}. " - "๋น์ ์ ์ง์ ๊ฒฝํ์ ๋ฐํ์ผ๋ก ์์งํ๊ฒ ๊ธ์ ์ฐ๋ 30๋ ์ง์ฅ์ธ ๋ธ๋ก๊ฑฐ์ ๋๋ค. " - "AI๊ฐ ์ด ๊ฒ์ฒ๋ผ ๋ณด์ด์ง ์๊ฒ, ์ฌ๋ ๋์ ๋๋ ์์ฐ์ค๋ฌ์ด ํ๊ตญ์ด ๋ธ๋ก๊ทธ ๊ธ์ ์๋๋ค. " - "์ง์ ํ์ต ์์ ์ดํ์ ์ฌ๊ฑด์ '์ต๊ทผ ๋ํฅ์ ๋ฐ๋ฅด๋ฉด' ๋ฑ์ผ๋ก ์ฒ๋ฆฌํ์ธ์. " - "JSON๋ง ์๋ตํ์ธ์." - if BLOG_LANGUAGE == "ko" else - f"Current date: {_now.strftime('%B %d, %Y')}. " - "You are a personal blogger who writes from direct experience. " - "Write naturally, like a real person โ not an AI report. " - "For events after your knowledge cutoff, use 'according to recent trends'. " - "JSON only." - ) - message = _get_client().messages.create( - model=CLAUDE_MODEL, - max_tokens=16000, - temperature=1.0, - system=_sys, - messages=[{"role": "user", "content": prompt}], - ) - if not message.content or not hasattr(message.content[0], "text"): - logger.error("Claude ์๋ต ํ์ ์ค๋ฅ: text ์ฝํ ์ธ ์์") + blog_lang = (blog_config or {}).get("language", BLOG_LANGUAGE) + if is_blog1: + _sys = ( + f"ํ์ฌ ๋ ์ง: {_now.strftime('%Y๋ %m์ %d์ผ')}. " + "๋น์ ์ ๊ด์ฌ ์ฃผ์ ๋ฅผ ๊น์ด ์กฐ์ฌํ๊ณ ๊ณต๋ถํด์ ์์งํ๊ฒ ์ ๋ฆฌํด ์ฌ๋ฆฌ๋ ๋ธ๋ก๊ฑฐ์ ๋๋ค. ํ์ง ์์ ๊ฒฝํ์ ํ ๊ฒ์ฒ๋ผ ์ฐ์ง ์์ต๋๋ค. " + "๊ตฌ๊ธ ์ ๋์ผ์ค ์ ์ฑ ์ ์์ ํ ์ค์ํ๋ฉฐ, AI๊ฐ ์ด ๊ฒ์ฒ๋ผ ๋ณด์ด์ง ์๋ ์์ฐ์ค๋ฌ์ด ํ๊ตญ์ด ๋ฌธ์ฒด๋ก ์์ฑํฉ๋๋ค. " + "๋ ์์๊ฒ ์ค์ง์ ์ธ ๋์์ด ๋๋ ์ ๋ณด๋ฅผ ์ ๊ณตํ๋ ๊ฒ์ด ์ต์ฐ์ ์ ๋๋ค. " + "JSON๋ง ์๋ตํ์ธ์." + ) + elif blog_lang == "ko": + _sys = ( + f"ํ์ฌ ๋ ์ง: {_now.strftime('%Y๋ %m์ %d์ผ')}. " + "๋น์ ์ ์ ๋ขฐํ ์ ์๋ ์ ๋ณด๋ฅผ ์กฐ์ฌยท์ ๋ฆฌํด ์์งํ๊ฒ ๊ธ์ ์ฐ๋ ๋ธ๋ก๊ฑฐ์ ๋๋ค. ํ์ง ์์ ๊ฒฝํ์ ํ ๊ฒ์ฒ๋ผ ์ฐ์ง ์์ต๋๋ค. " + "AI๊ฐ ์ด ๊ฒ์ฒ๋ผ ๋ณด์ด์ง ์๊ฒ, ์ฌ๋ ๋์ ๋๋ ์์ฐ์ค๋ฌ์ด ํ๊ตญ์ด ๋ธ๋ก๊ทธ ๊ธ์ ์๋๋ค. " + "์ง์ ํ์ต ์์ ์ดํ์ ์ฌ๊ฑด์ '์ต๊ทผ ๋ํฅ์ ๋ฐ๋ฅด๋ฉด' ๋ฑ์ผ๋ก ์ฒ๋ฆฌํ์ธ์. " + "JSON๋ง ์๋ตํ์ธ์." + ) + else: + _sys = ( + f"Current date: {_now.strftime('%B %d, %Y')}. " + "You are a blogger who writes well-researched, trustworthy posts. Never fabricate personal experiences. " + "Write naturally, like a real person โ not an AI report. " + "For events after your knowledge cutoff, use 'according to recent trends'. " + "JSON only." + ) + escalation = _retry_escalation_note(attempt, prev_wc) + readability_escalation_note(last_readability) + logger.info(f" AI ์ ๊ณต์: {ai_provider.upper()} (์๋ {attempt + 1}/3)") + raw = _ai_generate(_sys, prompt + escalation, ai_provider).strip() + if not raw: + logger.error(f"{ai_provider.upper()} ์๋ต ์์ ๋๋ max_tokens๋ก ์๋ฆผ") if attempt < 2: time.sleep(2) continue return None - raw = message.content[0].text.strip() post_data = _parse_response(raw) if post_data is None: if attempt < 2: logger.warning(f"JSON ํ์ฑ ์คํจ โ ์ฌ์๋ {attempt + 1}/3") + prev_wc = -1 # ํ์ฑ ์คํจ ์ผํฐ๋ โ escalation note ์๋ต ๊ตฌ๋ถ์ฉ time.sleep(2) continue return None post_data["keyword"] = keyword post_data["article_type"] = _detect_article_type(keyword) + post_data["risk_level"] = _assess_risk_level(keyword) + # ๊ธ์์ฑ ๊ณ ๋ํ ์คํ ์ถ์ ์ฉ โ ์ด๋ค ๋์ ๋ถ ํํน ์คํ์ผ์ด ์ ์ฉ๋๋์ง ๊ธฐ๋กํด + # ๋ฐํ ํ GSC ์งํยท๋ฑ๊ธ๊ณผ ๋น๊ตํ ์ ์๊ฒ ํจ (weekly_learning.py๊ฐ ์ง๊ณ) + content_category = _detect_content_category(keyword, (blog_config or {}).get("id", "")) + post_data["content_category"] = content_category + # ํ์ค ์คํค๋ง: tags๋ labels์ ๋ณ์นญ (๋ด๋ถ ๋งํฌยท๋์๋ณด๋ ๊ณต์ฉ) + post_data["tags"] = list(post_data.get("labels", []) or []) # ๊ธ์ ์ ๋ฐ ๋ฏธ๋ฆฌ๋ณด๊ธฐ ์ถ๊ฐ content_html = post_data.get("content", "") post_data["word_count"] = _word_count(content_html) post_data["content_preview"] = _content_preview(content_html) - # ์ปจํ ์ธ ์ ํจ์ฑ ๊ฒ์ฌ (json_repair๋ก ๋ณต๊ตฌ๋์ง๋ง ๋ด์ฉ์ด ๋น์ด์๋ ๊ฒฝ์ฐ ๋ฐฉ์ง) - if not content_html.strip() or post_data["word_count"] < 100: + # ์ปจํ ์ธ ์ ํจ์ฑ ๊ฒ์ฌ โ AdSense thin content ๋ฐฉ์ง (์ต์ 2500์) + prev_wc = post_data["word_count"] + if not content_html.strip() or post_data["word_count"] < 2500: + if attempt < 2: + logger.warning(f"์ปจํ ์ธ ๋๋ฌด ์งง์({post_data['word_count']}์, ์ต์ 2500์) โ ์ฌ์๋ {attempt + 1}/3") + time.sleep(3) + continue + if post_data["word_count"] < 500: + logger.error(f"์ปจํ ์ธ ์์ฑ ์คํจ: {post_data['word_count']}์ โ thin content ๋ฐฉ์ง๋ฅผ ์ํด ๊ฒ์ ๊ฑฐ๋ถ") + return None + logger.warning(f"์ต์ ๋ถ๋ ๋ฏธ๋ฌ({post_data['word_count']}์) โ ์ฌ์๋ ์์ง, ํด๋น ๋ถ๋์ผ๋ก ์งํ") + + # ์ฝ๊ธฐ ๋์ด๋ ์๋ ๊ฒ์ฌ โ ๋ฌธ์ฅ ๊ธธ์ดยท์ ๋ฌธ์ฉ์ด ๋น์จ ์ค์บ, ๊ธฐ์ค ๋ฏธ๋ฌ ์ ์ฌ์์ฑ ์์ฒญ + last_readability = assess_readability(content_html, content_category) + post_data["readability"] = last_readability + if not last_readability["ok"]: if attempt < 2: - logger.warning(f"์ปจํ ์ธ ๋น์ด์์ ๋๋ ๋๋ฌด ์งง์({post_data['word_count']}์) โ ์ฌ์๋ {attempt + 1}/3") + logger.warning(f"์ฝ๊ธฐ ๋์ด๋ ๊ธฐ์ค ๋ฏธ๋ฌ({last_readability['issues']}) โ ์ฌ์์ฑ ์์ฒญ {attempt + 1}/3") time.sleep(2) continue - logger.error("์ปจํ ์ธ ์์ฑ ์คํจ: ์ ํจํ ๋ด์ฉ ์์") - return None + logger.warning(f"์ฝ๊ธฐ ๋์ด๋ ๊ธฐ์ค ๋ฏธ๋ฌ({last_readability['issues']}) โ ์ฌ์๋ ์์ง, ํด๋น ์ํ๋ก ์งํ") # sources ํ๋ ์ ํจ์ฑ ๊ฒ์ฆ (hallucinated URL ํํฐ๋ง) if not isinstance(post_data.get("sources"), list): @@ -1254,17 +2753,14 @@ def generate_post(keyword: str, traffic: str = "N/A") -> dict | None: if not post_data["sources"]: logger.warning("sources ํ๋: ์ ํจํ ์ถ์ฒ ์์ โ ์ ๋ถ ์ ๊ฑฐ๋จ") - # ์น์ ๋ณ ์ด๋ฏธ์ง ๊ฒ์ & ์ฝ์ (๊ด๋ จ์ฑ ๊ฒ์ฆ ํฌํจ) - section_queries = _extract_section_queries(post_data.get("content", ""), keyword) - logger.info(f"์น์ ๋ณ ์ด๋ฏธ์ง ๊ฒ์: {section_queries}") - plain_text = _content_preview(post_data.get("content", ""), chars=600) - images = fetch_images_for_queries( - section_queries, - naver_client_id=os.getenv("NAVER_CLIENT_ID", ""), - naver_client_secret=os.getenv("NAVER_CLIENT_SECRET", ""), - article_plain_text=plain_text, - keyword=keyword, - ) + # ์๋ฃํฉ ์ถ์ฒ๋ฅผ sources์ ๋ณํฉ (๊ฒ์ฆ๋ ์ถ์ฒ ์ฐ์ ) + _merge_evidence(post_data, evidence_pack) + + # ๊ฒ์ ์ ํฉํธ์ฒดํฌ โ ์ด๋ฏธ์ง ์ฝ์ ์ ์ ์คํ (์ด๋ฏธ์ง HTML ํผ์ ๋ฐฉ์ง) + _fact_check_content(post_data, keyword, evidence_pack) + + # ๊ธ ์์ฑ ์๋ฃ ํ ์ด๋ฏธ์ง ์์งยท์ฝ์ (์ต์ 1์ฅ / ์ต๋ 3์ฅ) + images = _collect_post_images(post_data, keyword) if images: post_data["content"] = inject_images_into_content( post_data["content"], images, keyword @@ -1280,6 +2776,14 @@ def generate_post(keyword: str, traffic: str = "N/A") -> dict | None: post_data["content"], keyword, _detect_article_type(keyword) ) + # ์ฟ ํกํํธ๋์ค ์ถ์ฒ ์ํ ์น์ ์ฝ์ (AdSense ์๋ ๊ด๊ณ ์ ๊ฒน์น์ง ์๊ฒ ๋งจ ํ๋จ ๊ณ ์ ) + post_data["content"] = inject_affiliate_section( + post_data["content"], keyword, blog_config + ) + + # AdSense 'ํ์' ์ ์ฑ ์๋ฐ ๋ฐฉ์ง โ ์ด๋๋ก๋ ์ฐ๊ฒฐ๋์ง ์๋ href="#" ๋งํฌ ์ ๊ฑฐ + post_data["content"] = _strip_dead_links(post_data["content"]) + logger.info( f"ํฌ์คํธ ์์ฑ ์๋ฃ: '{post_data.get('title', '?')}' " f"({post_data['word_count']}์, ์ด๋ฏธ์ง {post_data['images_inserted']}๊ฐ)" @@ -1306,7 +2810,7 @@ def generate_post(keyword: str, traffic: str = "N/A") -> dict | None: if __name__ == "__main__": logging.basicConfig(level=logging.INFO) - result = generate_post("์ฌํ ํฌ ๋ฐฉ๋ฒ", "100K+") + result = generate_post("์ ์ฃผ๋ ์จ๊ฒจ์ง ๋ช ์ ์์ง ํ๊ธฐ", "100K+") if result: print(f"์ ๋ชฉ: {result['title']}") print(f"๋ผ๋ฒจ: {result['labels']}") @@ -1314,3 +2818,4 @@ def generate_post(keyword: str, traffic: str = "N/A") -> dict | None: print(f"์ด๋ฏธ์ง: {result.get('images_inserted', 0)}๊ฐ") print(f"FAQ: {len(result.get('faq', []))}๊ฐ") print(f"๋ฏธ๋ฆฌ๋ณด๊ธฐ: {result.get('content_preview', '')[:100]}") + diff --git a/blog-automation/coupang_affiliate.py b/blog-automation/coupang_affiliate.py new file mode 100644 index 0000000000000..8b756fdae426a --- /dev/null +++ b/blog-automation/coupang_affiliate.py @@ -0,0 +1,110 @@ +"""์ฟ ํกํํธ๋์ค ์ ํด ๋งํฌ ์ฝ์ ๋ชจ๋ + +docs/data/affiliate_links.json ์์ ๋งํฌ๋ฅผ ์ฝ์ด ๊ธ ํ๋จ์ ์ฝ์ ํฉ๋๋ค. +ํ์ผ์ด ์๊ฑฐ๋ ๋น์ด ์์ผ๋ฉด ์๋ฌด๊ฒ๋ ์ฝ์ ํ์ง ์์ต๋๋ค. +""" +import json +import logging +import os + +logger = logging.getLogger(__name__) + +_LINKS_FILE = os.path.join( + os.path.dirname(__file__), "..", "docs", "data", "affiliate_links.json" +) + +_MAX_LINKS_PER_POST = 3 + + +def load_affiliate_links() -> list[dict]: + """docs/data/affiliate_links.json ์์ ํ์ฑํ๋ ๋งํฌ ๋ชฉ๋ก์ ๋ก๋ํฉ๋๋ค.""" + path = os.path.abspath(_LINKS_FILE) + if not os.path.exists(path): + return [] + try: + with open(path, encoding="utf-8") as f: + data = json.load(f) + if not isinstance(data, list): + return [] + return [ln for ln in data if ln.get("enabled", True)] + except Exception as e: + logger.warning(f"affiliate_links.json ๋ก๋ ์คํจ: {e}") + return [] + + +def _match_links(links: list[dict], keyword: str, blog_id: str) -> list[dict]: + """ํค์๋ยท๋ธ๋ก๊ทธ ID ๊ธฐ์ค์ผ๋ก ์ฝ์ ํ ๋งํฌ๋ฅผ ์ ํํฉ๋๋ค. + + ์ฐ์ ์์: + 1. ๋ธ๋ก๊ทธ ํํฐ ํต๊ณผ + ํค์๋ ํ๊ทธ ๋งค์นญ + 2. ๋ธ๋ก๊ทธ ํํฐ ํต๊ณผ + ํ๊ทธ ์๋ general ๋งํฌ + """ + kw_lower = keyword.lower() + matched: list[dict] = [] + general: list[dict] = [] + + for link in links: + # ๋ธ๋ก๊ทธ ํํฐ (blogs ๋น์ด ์์ผ๋ฉด ์ ์ฒด ๋ธ๋ก๊ทธ) + allowed_blogs: list[str] = link.get("blogs", []) + if allowed_blogs and blog_id not in allowed_blogs: + continue + + tags = [t.lower() for t in (link.get("keywords") or [])] + if tags: + if any(t in kw_lower for t in tags): + matched.append(link) + else: + general.append(link) + + selected = (matched or general)[:_MAX_LINKS_PER_POST] + return selected + + +def inject_affiliate_section( + content_html: str, + keyword: str, + blog_config: dict | None = None, +) -> str: + """๊ธ ํ๋จ์ ์ฟ ํกํํธ๋์ค ์ถ์ฒ ์ํ ์น์ ์ ์ฝ์ ํฉ๋๋ค. + + AdSense ์๋ ๊ด๊ณ ์ ๊ฒน์น์ง ์๋๋ก ๋ณธ๋ฌธ HTML ๋งจ ๋์ ๊ณ ์ ๋ฐฐ์นํฉ๋๋ค. + ์ฝ์ ํ ๋งํฌ๊ฐ ์์ผ๋ฉด ์๋ณธ HTML์ ๊ทธ๋๋ก ๋ฐํํฉ๋๋ค. + """ + links = load_affiliate_links() + if not links: + return content_html + + blog_id: str = (blog_config or {}).get("id", "blog1") + selected = _match_links(links, keyword, blog_id) + if not selected: + return content_html + + items_html = "\n ".join( + f'' + f'๐ {ln["name"]}' + for ln in selected + ) + + section = ( + '\n\n' + '' + ) + + logger.info(f"์ฟ ํกํํธ๋์ค ๋งํฌ {len(selected)}๊ฐ ์ฝ์ : {[ln['name'] for ln in selected]}") + return content_html + section diff --git a/blog-automation/dashboard_exporter.py b/blog-automation/dashboard_exporter.py index 20e9bf780a782..fa8c7b0fa87a5 100644 --- a/blog-automation/dashboard_exporter.py +++ b/blog-automation/dashboard_exporter.py @@ -92,6 +92,7 @@ def log_run( total_images = sum(r.get("images_inserted", 0) for r in results) total_posts = len(results) total_words = sum(r.get("word_count", 0) for r in results) + pending_review = sum(1 for r in results if r.get("status") == "pending") avg_cpc = 0.9 if results: @@ -108,11 +109,12 @@ def log_run( "keywords": keywords, "postsGenerated": total_posts, "bloggerUploaded": blogger_uploaded, + "pendingReview": pending_review, "errors": errors, "errorMessages": (error_messages or [])[:20], "imagesInserted": total_images, "totalWords": total_words, - "blogId": cfg.get("id", "default"), + "blogId": cfg.get("id", "blog1"), "blogName": cfg.get("name", ""), "platforms": { "blogger": blogger_uploaded, @@ -128,13 +130,23 @@ def log_run( "contentPreview": r.get("content_preview", ""), "faqCount": len(r.get("faq", [])), "faq": r.get("faq", []), + "factCheck": r.get("fact_check"), "sources": r.get("sources", []), "labels": r.get("labels", []), "metaDescription": r.get("meta_description", ""), "adsenseCategory": _categorize(r.get("keyword", "")), "articleType": r.get("article_type", ""), - "blogId": cfg.get("id", "default"), + "riskLevel": r.get("risk_level", ""), + "contentCategory": r.get("content_category", ""), + "blogId": cfg.get("id", "blog1"), "blogName": cfg.get("name", ""), + # ์์ ๋ฏธ๋์ด ์ฝํ ์ธ (social_publisher.generate_social_content() ๋ฐํ๊ฐ) + "socialContent": r.get("socialContent"), + "socialPublished": { + "instagram": r.get("social_instagram"), + "threads": r.get("social_threads"), + "tiktok": r.get("social_tiktok"), + }, } for r in results ], @@ -145,6 +157,18 @@ def log_run( logger.info(f"์คํ ์ด๋ ฅ ์ ์ฅ ์๋ฃ (์ด {len(history)}๊ฐ)") +def _load_analytics_summary() -> dict: + """docs/data/analytics_summary.json์์ Blogger ์ค์ ์กฐํ์ ๋ฐ์ดํฐ๋ฅผ ๋ก๋ํฉ๋๋ค.""" + summary_path = os.path.join(DOCS_DATA_DIR, "analytics_summary.json") + if os.path.exists(summary_path): + try: + with open(summary_path, encoding="utf-8") as f: + return json.load(f) + except (json.JSONDecodeError, OSError): + pass + return {} + + def _export_repairs(docs_dir: str) -> None: """auto_repair.py ๊ฐ ์์ฑํ repair_history.json ์ docs/data/ ๋ก ๋ณต์ฌํฉ๋๋ค.""" src = os.path.join(os.path.dirname(__file__), "logs", "repair_history.json") @@ -182,77 +206,151 @@ def _export_learning(docs_dir: str) -> None: def _export_gsc(docs_dir: str) -> None: - """GSC ์บ์ ๋ฐ์ดํฐ๋ฅผ docs/data/gsc.json์ผ๋ก ๋ด๋ณด๋ ๋๋ค.""" + """GSC ๋ฐ์ดํฐ๋ฅผ docs/data/gsc.json์ผ๋ก ๋ด๋ณด๋ ๋๋ค. + ์ต์์ ํ๋๋ ์ฒซ ๋ฒ์งธ ๋ธ๋ก๊ทธ(๊ธฐ์กด ๋์๋ณด๋ ํธํ), 'sites'์ ๋ธ๋ก๊ทธ๋ณ ๋ฐ์ดํฐ.""" try: - from config import GSC_SITE_URL - if not GSC_SITE_URL: - return + from config import GSC_SITE_URL, get_blog_configs from gsc_fetcher import fetch_search_analytics, save_gsc_for_dashboard - data = fetch_search_analytics(GSC_SITE_URL) - if data: - save_gsc_for_dashboard(data, docs_dir) + + # ๋ธ๋ก๊ทธ๋ณ GSC ์ฌ์ดํธ (์ค๋ณต ์ ๊ฑฐ, ์์ ์ ์ง) + targets: list[tuple[str, str]] = [] # (blog_id, site_url) + seen: set[str] = set() + for b in get_blog_configs(): + u = (b.get("gsc_site_url") or "").strip() + if u and u not in seen: + seen.add(u) + targets.append((b.get("id", ""), u)) + if not targets and GSC_SITE_URL: + targets = [("blog1", GSC_SITE_URL)] + if not targets: + return + + sites: dict[str, dict] = {} + for blog_id, site_url in targets: + data = fetch_search_analytics(site_url) + if data: + sites[blog_id] = data + if not sites: + return + + # ๊ธฐ์กด ๋์๋ณด๋ ํธํ: ์ฒซ ๋ธ๋ก๊ทธ ๋ฐ์ดํฐ๋ฅผ ์ต์์์ + sites ํค ์ถ๊ฐ + primary = next(iter(sites.values())) + merged = {**primary, "sites": sites} + save_gsc_for_dashboard(merged, docs_dir) except Exception as exc: logger.debug(f"GSC ๋ด๋ณด๋ด๊ธฐ ์๋ต: {exc}") +_CAT_TAGS: dict[str, list[str]] = { + "๊ธ์ต": ["#์ฌํ ํฌ", "#์ฃผ์ํฌ์", "#ETF", "#ํฌ์", "#๊ฒฝ์ ", "#๊ธ์ต", "#๋๊ด๋ฆฌ", "#์์ฐ๊ด๋ฆฌ", "#์ฃผ์", "#์ฝ์ธ"], + "๋ถ๋์ฐ": ["#๋ถ๋์ฐ", "#์ํํธ", "#์ฒญ์ฝ", "#๋ถ๋์ฐํฌ์", "#์ ์ธ", "#๋ด์ง๋ง๋ จ"], + "๊ฑด๊ฐ": ["#๊ฑด๊ฐ", "#๋ค์ด์ดํธ", "#์ด๋", "#๊ฑด๊ฐ๊ด๋ฆฌ", "#ํฌ์ค", "#์์"], + "๊ธฐ์ ": ["#IT", "#๊ธฐ์ ", "#AI", "#๋์งํธ", "#์ฑGPT", "#์ธ๊ณต์ง๋ฅ"], + "์ฌํ": ["#์ฌํ", "#๊ตญ๋ด์ฌํ", "#์ฌํ์คํ๊ทธ๋จ", "#ํด์ธ์ฌํ", "#์ฌํ์ถ์ฒ", "#๋ง์ง"], + "์คํฌ์ธ ": ["#์คํฌ์ธ ", "#์ถ๊ตฌ", "#์ผ๊ตฌ", "#์ด๋", "#์คํฌ์ธ ๋ด์ค"], + "๊ต์ก": ["#๊ณต๋ถ", "#์๊ธฐ๊ณ๋ฐ", "#๊ต์ก", "#ํ์ต", "#์๊ฒฉ์ฆ", "#์ทจ์ "], + "์ผํ": ["#์ผํ", "#ํ ์ธ", "#๋ฆฌ๋ทฐ", "#์ถ์ฒ", "#๊ฐ์ฑ๋น"], + "๋ฒ๋ฅ ": ["#๋ฒ๋ฅ ", "#์ํ๋ฒ๋ฅ ", "#๋ฒ", "#๋ฒ๋ฅ ์ ๋ณด"], +} +_DEFAULT_TAGS = ["#์ ๋ณด", "#๋ธ๋ก๊ทธ", "#์ผ์", "#๊ฟํ", "#์ ์ฉํ์ ๋ณด"] + + def _export_social(docs_dir: str) -> None: - """run_history.json ํฌ์คํธ์์ ๊ธฐ๋ณธ SNS ์ฝํ ์ธ ํญ๋ชฉ์ ์์ฑํฉ๋๋ค.""" + """run_history.json์์ SNS ์ฝํ ์ธ ๋ฅผ ์ถ์ถํด social.json์ผ๋ก ๋ด๋ณด๋ ๋๋ค. + + ์ฐ์ ์์: + 1. ํฌ์คํธ์ socialContent ํ๋๊ฐ ์์ผ๋ฉด ๊ทธ๋๋ก ์ฌ์ฉ (Claude API ์์ฑ๋ณธ) + 2. ์์ผ๋ฉด ํค์๋ยท์นดํ ๊ณ ๋ฆฌ ๊ธฐ๋ฐ ๊ธฐ๋ณธ ํ ํ๋ฆฟ์ผ๋ก ์์ฑ + """ dst = os.path.join(docs_dir, "social.json") try: history = _load_history() seen: set[str] = set() entries: list[dict] = [] - cat_tags: dict[str, list[str]] = { - "๊ธ์ต": ["#์ฌํ ํฌ", "#์ฃผ์ํฌ์", "#๊ฒฝ์ ", "#ํฌ์", "#๊ธ์ต"], - "๋ถ๋์ฐ": ["#๋ถ๋์ฐ", "#์ํํธ", "#์ฒญ์ฝ", "#๋ถ๋์ฐํฌ์"], - "๊ฑด๊ฐ": ["#๊ฑด๊ฐ", "#๋ค์ด์ดํธ", "#์ด๋", "#๊ฑด๊ฐ๊ด๋ฆฌ"], - "๊ธฐ์ ": ["#IT", "#๊ธฐ์ ", "#AI", "#๋์งํธ"], - "์ฌํ": ["#์ฌํ", "#๊ตญ๋ด์ฌํ", "#์ฌํ์คํ๊ทธ๋จ", "#ํด์ธ์ฌํ"], - "์คํฌ์ธ ": ["#์คํฌ์ธ ", "#์ถ๊ตฌ", "#์ผ๊ตฌ", "#์ด๋", "#์คํฌ์ธ ๋ด์ค"], - "๊ต์ก": ["#๊ณต๋ถ", "#์๊ธฐ๊ณ๋ฐ", "#๊ต์ก", "#ํ์ต"], - "์ผํ": ["#์ผํ", "#ํ ์ธ", "#๋ฆฌ๋ทฐ"], - "๋ฒ๋ฅ ": ["#๋ฒ๋ฅ ", "#์ํ๋ฒ๋ฅ ", "#๋ฒ"], - } - default_tags = ["#์ ๋ณด", "#๋ธ๋ก๊ทธ", "#์ผ์"] for run in history: run_date = (run.get("runAt", "") or "")[:10] for post in run.get("posts", []): - title = post.get("title", "") + title = post.get("title", "") keyword = post.get("keyword", "") - url = post.get("blogUrl", "") + url = post.get("blogUrl", "") if not title or title in seen: continue seen.add(title) - cat = _categorize(keyword) - tags = cat_tags.get(cat, default_tags) + cat = _categorize(keyword) kw_slug = re.sub(r"[^๊ฐ-ํฃa-zA-Z0-9]", "", keyword) - caption = ( - f"{title}\n\n๐ก {keyword}์ ๋ํ ํต์ฌ ์ ๋ณด๋ฅผ ์ ๋ฆฌํ์ต๋๋ค.\n\n" - + " ".join(tags) - ) + + sc = post.get("socialContent") # Claude API ์์ฑ๋ณธ ์์ผ๋ฉด ์ฐ์ ์ฌ์ฉ + if sc and isinstance(sc, dict) and sc.get("instagram"): + ig_data = sc.get("instagram", {}) + th_data = sc.get("threads") + tt_data = sc.get("tiktok") + else: + # ๊ธฐ๋ณธ ํ ํ๋ฆฟ ์์ฑ + tags = _CAT_TAGS.get(cat, _DEFAULT_TAGS) + caption = ( + f"{title}\n\n๐ก {keyword}์ ๋ํ ํต์ฌ ์ ๋ณด๋ฅผ ์ ๋ฆฌํ์ต๋๋ค.\n\n์ ์ฅ ํ์ ๐\n\n" + + " ".join(tags) + ) + ig_data = { + "caption": caption, + "hookLine": title[:60], + "hashtags": { + "popular": tags, + "medium": [f"#{kw_slug}"] if kw_slug else [], + "niche": [], + }, + "bestPostingTimes": ["07:00", "12:00", "21:00"], + "storyHighlightTitle": keyword[:5], + } + th_data = { + "posts": [ + {"order": 1, "label": "1/5", "content": f"๐ {keyword} โ ๊ผญ ์์์ผ ํ ํต์ฌ ์ ๋ณด"}, + {"order": 2, "label": "2/5", "content": f"๐ ์ค๋ ํฌ์คํ ์ฃผ์ : {title}"}, + {"order": 3, "label": "3/5", "content": "๐ ์์ธํ ๋ด์ฉ์ ๋ธ๋ก๊ทธ์์ ํ์ธํ์ธ์."}, + {"order": 4, "label": "4/5", "content": f"๐ก {keyword} ๊ด๋ จ ๊ถ๊ธํ ์ ์์ผ์ ๊ฐ์?"}, + {"order": 5, "label": "5/5", "content": f"๐ ์ ์ฒด ๊ธ: {url or '[๋ธ๋ก๊ทธ URL]'}\n\n์ฌ๋ฌ๋ถ์ ์๊ฐ์? ๋๊ธ๋ก ์๋ ค์ฃผ์ธ์ ๐ฌ"}, + ], + "hashtags": [t if t.startswith("#") else f"#{t}" for t in (tags[:5] if tags else _DEFAULT_TAGS[:5])], + "engagementQuestion": f"{keyword}์ ๋ํด ์ด๋ป๊ฒ ์๊ฐํ์๋์?", + "bestPostingTimes": ["08:00", "19:00"], + } + tt_data = { + "title": f"{keyword} ํต์ฌ ์ ๋ฆฌ 60์ด", + "thumbnailText": keyword[:20], + "scenes": [ + {"time": "0-3์ด", "text": f"โก {keyword} ๋ชจ๋ฅด๋ฉด ์ํด!", "direction": "ํ๋ฉด ํด๋ก์ฆ์ ", "sound": "์๋ฆผ์"}, + {"time": "3-15์ด", "text": "์ด๊ฑธ ๋ชจ๋ฅด๋ ๋ถ๋ค์ด ๋ง์์", "direction": "์ ๋ฉด ์ดฌ์", "sound": "๋ฐฐ๊ฒฝ์์ "}, + {"time": "15-35์ด", "text": "ํต์ฌ ๋ด์ฉ 3๊ฐ์ง", "direction": "ํ ์คํธ ์ฌ๋ผ์ด๋","sound": "๋ฐฐ๊ฒฝ์์ "}, + {"time": "35-50์ด", "text": f"{keyword} ์ด๋ ๊ฒ ํ์ฉํ์ธ์", "direction": "์ธํฌ๊ทธ๋ํฝ", "sound": "๋ฐฐ๊ฒฝ์์ "}, + {"time": "50-60์ด", "text": f"๋ ์์ธํ โ ๋งํฌ ํด๋ฆญ! {url or ''}", "direction": "CTA ํ๋ฉด", "sound": "ํจ๊ณผ์"}, + ], + "fullScript": f"{keyword}์ ๋ํ ํต์ฌ ์ ๋ณด์ ๋๋ค. ์์ธํ ๋ด์ฉ์ ๋ธ๋ก๊ทธ ๋งํฌ๋ฅผ ํ์ธํ์ธ์.", + "commentBait": f"{keyword} ๊ด๋ จ ๊ฒฝํ ์์ผ์ ๋ถ? ๋๊ธ๋ก ๊ณต์ ํด์ฃผ์ธ์!", + "hashtags": ["#fyp", "#foryou", "#์ ๋ณด", "#๊ฟํ"] + (tags[:3] if tags else []), + "backgroundMusic": {"genre": "ํ", "mood": "๊ฒฝ์พํ"}, + "bestPostingTimes": ["07:00", "20:00", "23:00"], + } + + # ๊ฒ์ ๊ฒฐ๊ณผ (์์ ๊ฒฝ์ฐ) + published = post.get("socialPublished", {}) or {} + entries.append({ "id": f"{run_date}_{kw_slug}_social", "date": run_date, "keyword": keyword, "postTitle": title, "postUrl": url, - "instagram": { - "caption": caption, - "hookLine": title[:50], - "hashtags": { - "popular": tags, - "medium": [f"#{kw_slug}"] if kw_slug else [], - "niche": [], - }, - "bestPostingTimes": ["07:00", "12:00", "21:00"], - "storyHighlightTitle": keyword[:10], - }, - "threads": None, - "tiktok": None, + "instagram": ig_data, + "threads": th_data, + "tiktok": tt_data, + "published": published, }) + # ์ต์ ์ ์ ๋ ฌ, ์ต๋ 50๊ฐ + entries.sort(key=lambda e: e.get("date", ""), reverse=True) entries = entries[:50] + with open(dst, "w", encoding="utf-8") as f: json.dump(entries, f, ensure_ascii=False, indent=2) logger.info(f" SNS ๋ฐ์ดํฐ: {len(entries)}๊ฐ ๋ด๋ณด๋ด๊ธฐ ์๋ฃ") @@ -310,7 +408,7 @@ def export_dashboard() -> None: seen_titles: set[str] = set() blog_stats: dict[str, dict] = {} for run in history: - run_blog_id = run.get("blogId", "default") + run_blog_id = run.get("blogId", "blog1") run_blog_name = run.get("blogName", "") if run_blog_id not in blog_stats: blog_stats[run_blog_id] = { @@ -331,7 +429,10 @@ def export_dashboard() -> None: seen_titles.add(title) kw = p.get("keyword", "") cat = _categorize(kw) - post_id = run["date"] + "_" + re.sub(r"[^\w๊ฐ-ํฃ]", "_", title)[:60] + # 60์ ์๋ฆผ์ผ๋ก ๋ค๋ฅธ ์ ๋ชฉ์ด ๊ฐ์ id๊ฐ ๋๋ ์ถฉ๋ ๋ฐฉ์ง โ ์ ์ฒด ์ ๋ชฉ ํด์ ์ ๋ฏธ์ฌ + import hashlib + _h = hashlib.md5(title.encode()).hexdigest()[:6] + post_id = run["date"] + "_" + re.sub(r"[^\w๊ฐ-ํฃ]", "_", title)[:60] + "_" + _h blog_stats[run_blog_id]["postCount"] += 1 posts.append({ "id": post_id, @@ -346,8 +447,10 @@ def export_dashboard() -> None: "adsenseCategory": cat, "estimatedCPC": _cpc_for_category(cat), "articleType": p.get("articleType", ""), + "riskLevel": p.get("riskLevel", ""), + "contentCategory": p.get("contentCategory", ""), "trendDirection": "rising", - "factCheck": None, + "factCheck": p.get("factCheck"), "tags": p.get("labels", [])[:7], "blogUrl": p.get("blogUrl", ""), "metaDescription": p.get("metaDescription", ""), @@ -370,6 +473,8 @@ def export_dashboard() -> None: "imagesInserted": run.get("imagesInserted", 0), "totalWords": run.get("totalWords", 0), "errors": run["errors"], + "blogId": run.get("blogId", "blog1"), + "blogName": run.get("blogName", ""), "platforms": run.get("platforms", {}), "earnings": run.get("earnings", {}), } @@ -406,8 +511,44 @@ def export_dashboard() -> None: blogs_export = sorted(blog_stats.values(), key=lambda b: b.get("lastRunAt", ""), reverse=True) + # Blogger ์ค์ ์กฐํ์ ๋ฐ์ดํฐ๋ฅผ blogs_export์ ๋ณํฉ + analytics_summary = _load_analytics_summary() + if analytics_summary and blogs_export: + pv30 = analytics_summary.get("bloggerPageviews30d", 0) + pv7 = analytics_summary.get("bloggerPageviews7d", 0) + pv1 = analytics_summary.get("bloggerPageviews1d", 0) + updated_at = analytics_summary.get("generatedAt", "") + for blog in blogs_export: + blog["pageviews30d"] = pv30 + blog["pageviews7d"] = pv7 + blog["pageviews1d"] = pv1 + blog["analyticsUpdatedAt"] = updated_at + + # posts.json ๋น๋ํ ๋ฐฉ์ง โ ์ต๊ทผ POSTS_EXPORT_LIMIT๊ฐ๋ง ์ ์งํ๊ณ + # ๋๋จธ์ง๋ posts_archive.json์ ๋์ (๋์๋ณด๋๊ฐ ๋ฐฑ๊ทธ๋ผ์ด๋์์ ๋ณํฉ ๋ก๋) + POSTS_EXPORT_LIMIT = 300 + posts_recent = posts[:POSTS_EXPORT_LIMIT] + posts_overflow = posts[POSTS_EXPORT_LIMIT:] + if posts_overflow: + archive_path = os.path.join(DOCS_DATA_DIR, "posts_archive.json") + try: + archive = [] + if os.path.exists(archive_path): + with open(archive_path, encoding="utf-8") as f: + archive = json.load(f) + seen_ids = {p.get("id") for p in archive} + new_items = [p for p in posts_overflow if p.get("id") not in seen_ids] + if new_items: + archive = new_items + archive + with open(archive_path, "w", encoding="utf-8") as f: + json.dump(archive, f, ensure_ascii=False, indent=2) + logger.info(f" ์์นด์ด๋ธ: {len(new_items)}๊ฐ ์ด๋ (์ด {len(archive)}๊ฐ)") + except Exception as _ae: + logger.warning(f"posts_archive.json ์ ์ฅ ์คํจ โ posts.json์ ์ ์ฒด ์ ์ง: {_ae}") + posts_recent = posts + for name, data in [ - ("posts.json", posts), + ("posts.json", posts_recent), ("runs.json", runs_export), ("analytics.json", analytics), ("meta.json", meta), @@ -423,6 +564,13 @@ def export_dashboard() -> None: _export_learning(DOCS_DATA_DIR) _export_repairs(DOCS_DATA_DIR) + # ํฌ์คํธ ๋ ์ง์คํธ๋ฆฌ ๋ด๋ณด๋ด๊ธฐ (post_manager) + try: + from post_manager import export_for_dashboard as _pm_export + _pm_export(DOCS_DATA_DIR) + except Exception as _pme: + logger.debug(f"ํฌ์คํธ ๋ ์ง์คํธ๋ฆฌ ๋ด๋ณด๋ด๊ธฐ ์๋ต: {_pme}") + logger.info(f"๋์๋ณด๋ ๋ฐ์ดํฐ ๋ด๋ณด๋ด๊ธฐ ์๋ฃ โ {DOCS_DATA_DIR}") logger.info(f" ํฌ์คํธ: {len(posts)}๊ฐ / ์คํ ์ด๋ ฅ: {len(runs_export)}๊ฐ / ๋ธ๋ก๊ทธ: {len(blogs_export)}๊ฐ") @@ -461,8 +609,11 @@ def save_pending_posts(results: list[dict], blog_config: dict | None = None) -> "faq": r.get("faq", []), "metaDescription": r.get("meta_description", ""), "sources": r.get("sources", []), + "articleType": r.get("article_type", ""), + "riskLevel": r.get("risk_level", ""), + "contentCategory": r.get("content_category", ""), "status": "pending", - "blogId": cfg.get("id", r.get("blogId", "default")), + "blogId": cfg.get("id", r.get("blogId", "blog1")), "blogName": cfg.get("name", r.get("blogName", "")), }) logger.info(f" ๊ฒํ ๋๊ธฐ ์ ์ฅ: {title[:60]} ({len(content)}์ HTML)") diff --git a/blog-automation/delete_low_grade_posts.py b/blog-automation/delete_low_grade_posts.py new file mode 100644 index 0000000000000..889a8c9c002f4 --- /dev/null +++ b/blog-automation/delete_low_grade_posts.py @@ -0,0 +1,190 @@ +"""๋ฑ๊ธ(S/A/B/C) ๊ธฐ์ค ์ ์ฑ๊ณผ ๋ฐํ ๊ธ ์ญ์ โ Blogger ์ค์ ์ญ์ ํฌํจ + +blog_analytics.py ๊ฐ ๋งค๊ธด ๋ฑ๊ธ(docs/data/posts.json ์ "grade" ํ๋)์ ๊ธฐ์ค์ผ๋ก +์ง์ ๋ฑ๊ธ ์ดํ ๊ธ์ ์ค์ ๋ก Blogger์์ ์ญ์ ํ๊ณ ๋ก์ปฌ ๋์๋ณด๋ ๋ฐ์ดํฐ(posts.json, +post_registry.json)์์๋ ์ ๊ฑฐํฉ๋๋ค. Blogger ์ญ์ ๋ ๋๋๋ฆด ์ ์์ต๋๋ค. + +Usage: + python delete_low_grade_posts.py --dry-run # ๋ฏธ๋ฆฌ๋ณด๊ธฐ๋ง + python delete_low_grade_posts.py --grades B,C # ์ค์ ์ญ์ + python delete_low_grade_posts.py --grades C --blog blog1 +""" + +import argparse +import json +import logging +import os +import sys +import time +from datetime import datetime, timezone + +from dotenv import load_dotenv +load_dotenv() + +logging.basicConfig(level=logging.INFO, format="%(asctime)s %(levelname)s %(message)s") +logger = logging.getLogger(__name__) + +_BASE_DIR = os.path.dirname(__file__) +_DOCS_DATA = os.path.join(_BASE_DIR, "..", "docs", "data") +_POSTS_JSON = os.path.join(_DOCS_DATA, "posts.json") +_REGISTRY_JSON = os.path.join(_DOCS_DATA, "post_registry.json") +_REGISTRY_LOGS = os.path.join(_BASE_DIR, "logs", "post_registry.json") +_ANALYTICS_SUMMARY = os.path.join(_DOCS_DATA, "analytics_summary.json") + + +def _load(path: str, default): + if not os.path.exists(path): + return default + try: + with open(path, encoding="utf-8") as f: + return json.load(f) + except (json.JSONDecodeError, OSError): + return default + + +def _save(path: str, data) -> None: + os.makedirs(os.path.dirname(path), exist_ok=True) + with open(path, "w", encoding="utf-8") as f: + json.dump(data, f, ensure_ascii=False, indent=2) + + +def _measurement_gate_blocked() -> str | None: + """๋ฑ๊ธ์ด '์ค์ ์ ์ฑ๊ณผ'๊ฐ ์๋๋ผ '์ธก์ ๋ถ๊ฐ'๋ก ๋์จ ์ํ์์ ์ญ์ ๋ฅผ ๋ง์ต๋๋ค. + + 2026-07-22 ์ค์ ๋ก ๊ฒช์ ๊ทผ์ ์ฌ๊ณ : Blogger APIยทGSC ์ฐ๋์ด ์ ๋ถ ๊นจ์ง ์ํ์์ + ๋ถ์์ ๋๋ ธ๋๋ 91๊ฐ ๊ธ์ด ์ ๋ถ "B๋ฑ๊ธ"์ผ๋ก ๋์์ โ ์ด๊ฑด ์ ์ฑ๊ณผ๊ฐ ์๋๋ผ + ์ธก์ ์์ฒด๊ฐ ์ ๋ ๊ฒ์ด์๋๋ฐ, ํ๋งํฐ๋ฉด ๋ฐํ ๊ธ 47๊ฐ๋ฅผ ๋ฌด๊ทผ๊ฑฐ๋ก ์ญ์ ํ ๋ปํจ. + dataSource๊ฐ ์ ํธ ์์์ ๋ณด๊ณ ํ๋ฉด --force ์์ด๋ ์ญ์ ๋ฅผ ๊ฑฐ๋ถํฉ๋๋ค. + """ + summary = _load(_ANALYTICS_SUMMARY, None) + if not summary: + return "analytics_summary.json ์์ โ blog_analytics.py๋ฅผ ๋จผ์ ์คํํด ์ค์ ๋ฑ๊ธ์ ๋งค๊ธฐ์ธ์" + ds = summary.get("dataSource", {}) + if not ds.get("bloggerApi") and not ds.get("gscPageData"): + return ( + "์ค์ ์ฑ๊ณผ ๋ฐ์ดํฐ(Blogger ์กฐํ์/GSC ํด๋ฆญ)๊ฐ ์ ํ ์์ง๋์ง ์์์ต๋๋ค โ " + "์ง๊ธ์ ๋ฑ๊ธ์ '์ ์ฑ๊ณผ'๊ฐ ์๋๋ผ '์ธก์ ๋ถ๊ฐ'๋ฅผ ์๋ฏธํ ์ ์์ต๋๋ค. " + "GOOGLE_REFRESH_TOKEN ๋ฑ ์ธ์ฆ ์ํ๋ฅผ ํ์ธํ๊ณ ์ฌ๋ถ์ ํ ๋ค์ ์๋ํ๊ฑฐ๋, " + "์ ๋ง ์ด ์ํ๋ก ์งํํ๋ ค๋ฉด --force๋ฅผ ๋ช ์ํ์ธ์." + ) + return None + + +def scan_and_delete(grades: set[str], blog_filter: str, dry_run: bool, force: bool = False) -> dict: + from config import get_blog_configs + from blogger_uploader import get_post_id_by_url, delete_post + + if not dry_run and not force: + gate_msg = _measurement_gate_blocked() + if gate_msg: + logger.error(f"โ ์ญ์ ์ค๋จ: {gate_msg}") + return {"error": gate_msg, "gated": True} + + blogs = {c.get("id", "blog1"): c for c in get_blog_configs()} + posts = _load(_POSTS_JSON, []) + if not posts: + logger.error("posts.json ์์ ๋๋ ๋น ํ์ผ โ ๋จผ์ blog_analytics.py ๋ฅผ ์คํํด ๋ฑ๊ธ์ ๋งค๊ฒจ์ผ ํฉ๋๋ค") + return {"error": "posts.json ์์"} + + ungraded = sum(1 for p in posts if not p.get("grade")) + if ungraded == len(posts): + logger.error("๋ชจ๋ ํฌ์คํธ์ ๋ฑ๊ธ(grade)์ด ์์ต๋๋ค โ blog_analytics.py ๋ฅผ ๋จผ์ ์คํํ์ธ์") + return {"error": "๋ฑ๊ธ ๋ฐ์ดํฐ ์์"} + + targets = [ + p for p in posts + if p.get("grade") in grades + and p.get("blogUrl") + and (not blog_filter or p.get("blogId") == blog_filter) + ] + + logger.info(f"๋์ ๋ฑ๊ธ: {sorted(grades)} / ์ ์ฒด {len(posts)}๊ฐ ์ค {len(targets)}๊ฐ ์ญ์ ๋์") + + deleted_urls: set[str] = set() + items = [] + failed = 0 + + for p in targets: + blog_id = p.get("blogId", "blog1") + cfg = blogs.get(blog_id, {}) + title = p.get("title", "")[:60] + url = p.get("blogUrl", "") + grade = p.get("grade", "") + item = {"blogId": blog_id, "title": title, "url": url, "grade": grade} + + if dry_run: + item["result"] = "๋ฏธ๋ฆฌ๋ณด๊ธฐ (์ญ์ ์ ํจ)" + items.append(item) + continue + + blogger_post_id = get_post_id_by_url(url, cfg) + if not blogger_post_id: + item["result"] = "์คํจ (Blogger post ID ์กฐํ ๋ถ๊ฐ โ ์ด๋ฏธ ์ญ์ ๋๊ฑฐ๋ URL ๋ถ์ผ์น)" + items.append(item) + failed += 1 + continue + + ok = delete_post(blogger_post_id, cfg) + if ok: + item["result"] = "์ญ์ ์๋ฃ" + deleted_urls.add(url) + logger.info(f" โ ์ญ์ : [{grade}] {title} ({blog_id})") + else: + item["result"] = "์คํจ (Blogger API ์ค๋ฅ)" + failed += 1 + logger.error(f" โ ์ญ์ ์คํจ: {title} ({blog_id})") + items.append(item) + time.sleep(1) + + if not dry_run and deleted_urls: + remaining_posts = [p for p in posts if p.get("blogUrl") not in deleted_urls] + _save(_POSTS_JSON, remaining_posts) + logger.info(f"posts.json ๊ฐฑ์ : {len(posts)} โ {len(remaining_posts)}๊ฐ") + + registry = _load(_REGISTRY_JSON, []) + if registry: + remaining_registry = [r for r in registry if r.get("blogUrl") not in deleted_urls] + _save(_REGISTRY_JSON, remaining_registry) + _save(_REGISTRY_LOGS, remaining_registry) + logger.info(f"post_registry.json ๊ฐฑ์ : {len(registry)} โ {len(remaining_registry)}๊ฐ") + + report = { + "checked_at": datetime.now(timezone.utc).isoformat(), + "dry_run": dry_run, + "grades": sorted(grades), + "blog_filter": blog_filter or "์ ์ฒด", + "total_posts": len(posts), + "targets_found": len(targets), + "deleted": len(deleted_urls), + "failed": failed, + "items": items, + } + try: + _save(os.path.join(_DOCS_DATA, "grade_cleanup.json"), report) + except Exception as e: + logger.warning(f"๋ฆฌํฌํธ ์ ์ฅ ์คํจ: {e}") + + mode = "(๋ฏธ๋ฆฌ๋ณด๊ธฐ) " if dry_run else "" + logger.info("=" * 55) + logger.info( + f"{mode}์๋ฃ โ ๋์ {len(targets)}๊ฑด / ์ญ์ {len(deleted_urls)}๊ฑด / ์คํจ {failed}๊ฑด" + ) + return report + + +def main() -> int: + parser = argparse.ArgumentParser(description="๋ฑ๊ธ ๊ธฐ์ค ์ ์ฑ๊ณผ ๋ฐํ ๊ธ ์ญ์ (Blogger ์ค์ ์ญ์ ํฌํจ)") + parser.add_argument("--dry-run", action="store_true") + parser.add_argument("--grades", default="B,C", help="์ญ์ ๋์ ๋ฑ๊ธ (์ผํ ๊ตฌ๋ถ, ๊ธฐ๋ณธ B,C)") + parser.add_argument("--blog", default="", help="ํน์ ๋ธ๋ก๊ทธ ID๋ง ๋์ (๋น์ฐ๋ฉด ์ ์ฒด)") + parser.add_argument("--force", action="store_true", + help="์ค์ ์ฑ๊ณผ ๋ฐ์ดํฐ ์์ด(์ธก์ ๋ถ๊ฐ ์ํ) ๋ฑ๊ธ๋ง์ผ๋ก๋ ๊ฐ์ ์ญ์ ์งํ") + args = parser.parse_args() + + grades = {g.strip().upper() for g in args.grades.split(",") if g.strip()} + report = scan_and_delete(grades, args.blog, args.dry_run, force=args.force) + return 0 if not report.get("error") and report.get("failed", 0) == 0 else 1 + + +if __name__ == "__main__": + sys.exit(main()) diff --git a/blog-automation/evidence_builder.py b/blog-automation/evidence_builder.py new file mode 100644 index 0000000000000..e8c83bb6c0694 --- /dev/null +++ b/blog-automation/evidence_builder.py @@ -0,0 +1,177 @@ +"""์์ง ์๋ฃ โ ์๋ฃํฉ(evidence pack) ์์ฑ. + +์๋ฃํฉ ์คํค๋ง: +{ + "keyword": "...", + "collectedAt": "ISO8601", + "facts": [ + {"claim": "...", "source_title": "...", "source_url": "https://...", + "published_at": "YYYY-MM-DD", "verified": bool} + ] +} + +๊ธ ์์ฑ AI๋ ์๋ฃํฉ์ ์๋ ์ซ์ยท๋ ์งยท์ ์ฑ ๋ณ๊ฒฝ ๋ด์ฉ์ ์์๋ก ์์ฑํ๋ฉด ์ ๋ฉ๋๋ค. +""" +import json +import logging +import os +import re +from datetime import datetime, timezone + +logger = logging.getLogger(__name__) + +_EVIDENCE_DIR = os.path.join(os.path.dirname(__file__), "logs", "evidence") + + +def _safe_filename(keyword: str) -> str: + return re.sub(r"[^\w๊ฐ-ํฃ]", "_", keyword)[:40] or "evidence" + + +def build_evidence_pack(research: dict) -> dict: + """์กฐ์ฌ ์๋ฃ์์ Claude๋ก ํต์ฌ ์ฌ์ค์ ์ถ์ถํด ์๋ฃํฉ์ ๋ง๋ญ๋๋ค.""" + keyword = research.get("keyword", "") + materials = research.get("materials") or [] + empty = {"keyword": keyword, + "collectedAt": datetime.now(timezone.utc).isoformat(), + "facts": []} + if not materials: + return empty + try: + import anthropic + from config import claude_text, ANTHROPIC_API_KEY, CLAUDE_MODEL + if not ANTHROPIC_API_KEY or ANTHROPIC_API_KEY.startswith("sk-ant-xxx"): + return empty + client = anthropic.Anthropic(api_key=ANTHROPIC_API_KEY) + + mat_text = "\n\n".join( + f"[{i+1}] ์ ๋ชฉ: {m['title']}\nURL: {m['url']}\n" + f"๋ฐํ: {m.get('published_at', '')}\n" + f"๋ด์ฉ: {(m.get('body') or m.get('snippet', ''))[:1200]}" + for i, m in enumerate(materials) + ) + required = "\n".join(f"- {f}" for f in research.get("required_facts", [])) + msg = client.messages.create( + model=CLAUDE_MODEL, + max_tokens=4000, + messages=[{ + "role": "user", + "content": ( + f"ํค์๋: \"{keyword}\"\n" + f"ํ์ธ์ด ํ์ํ ์ฌ์ค:\n{required or '- (์์ ์ถ์ถ)'}\n\n" + f"์๋ ์์ง ์๋ฃ์์ ๊ธ์ ์ธ์ฉํ ์ ์๋ ํต์ฌ ์ฌ์ค์ ์ถ์ถํ์ธ์.\n\n" + f"{mat_text}\n\n" + "๊ท์น:\n" + "1. ๋ฐ๋์ ์ ์๋ฃ์ ๋ช ์๋ ๋ด์ฉ๋ง ์ถ์ถ โ ์๋ฃ์ ์๋ ๋ด์ฉ ์ถ๋ก ๊ธ์ง\n" + "2. ์ซ์ยท๋ ์งยท์ ์ฑ ๋ด์ฉ์ ์๋ฃ ์๋ฌธ ๊ทธ๋๋ก\n" + "3. source_url์ ํด๋น ์ฌ์ค์ด ๋์จ ์๋ฃ์ URL ๊ทธ๋๋ก ๋ณต์ฌ\n" + "4. ์๋ฃ๋ค์ด ์๋ก ๋ชจ์๋๋ฉด ๋ ์ ๋ขฐํ ์ ์๋ ์ถ์ฒ(์ ๋ถยท๊ณต์) ๊ธฐ์ค\n\n" + "JSON๋ง ์๋ต:\n" + '{"facts": [{"claim": "๊ตฌ์ฒด์ ์ฌ์ค (์ซ์ยท๋ ์ง ํฌํจ)", ' + '"source_title": "์๋ฃ ์ ๋ชฉ", "source_url": "https://...", ' + '"published_at": "YYYY-MM-DD ๋๋ ๋น ๋ฌธ์์ด"}]}\n' + "์ฌ์ค์ 3~8๊ฐ. ์๋ฃ๊ฐ ๋ถ์คํ๋ฉด ํ์คํ ๊ฒ๋ง." + ), + }], + ) + raw = claude_text(msg).strip() + s, e = raw.find("{"), raw.rfind("}") + if s == -1 or e <= s: + return empty + parsed = json.loads(raw[s:e + 1]) + facts = [] + valid_urls = {m["url"] for m in materials} + for f in parsed.get("facts", []): + if not isinstance(f, dict) or not f.get("claim"): + continue + url = str(f.get("source_url", "")).strip() + # ํ๊ฐ URL ๋ฐฉ์ง: ์์ง ์๋ฃ์ ์ค์ ๋ก ์๋ URL๋ง ์ธ์ + if url not in valid_urls: + continue + facts.append({ + "claim": str(f["claim"]).strip(), + "source_title": str(f.get("source_title", "")).strip(), + "source_url": url, + "published_at": str(f.get("published_at", "")).strip(), + "verified": False, # source_validator๊ฐ ๊ฒ์ฆ ํ True๋ก + }) + pack = {"keyword": keyword, + "collectedAt": datetime.now(timezone.utc).isoformat(), + "facts": facts} + logger.info(f"์๋ฃํฉ ์์ฑ: ์ฌ์ค {len(facts)}๊ฐ โ '{keyword}'") + return pack + except Exception as exc: + logger.warning(f"์๋ฃํฉ ์์ฑ ์คํจ: {exc}") + return empty + + +def save_evidence_pack(pack: dict) -> str: + """์๋ฃํฉ์ logs/evidence/์ ์ ์ฅํ๊ณ ๊ฒฝ๋ก๋ฅผ ๋ฐํํฉ๋๋ค.""" + try: + os.makedirs(_EVIDENCE_DIR, exist_ok=True) + path = os.path.join(_EVIDENCE_DIR, f"{_safe_filename(pack.get('keyword', ''))}.json") + with open(path, "w", encoding="utf-8") as f: + json.dump(pack, f, ensure_ascii=False, indent=2) + return path + except Exception as exc: + logger.debug(f"์๋ฃํฉ ์ ์ฅ ์คํจ: {exc}") + return "" + + +_CRITICAL_WORDS = ("ํ๋", "์ ์ฑ ", "๋ณ๊ฒฝ", "์ํ", "์ธ์จ", "๊ธ๋ฆฌ", "์ง์๊ธ", + "๋ณด์กฐ๊ธ", "์๊ธ", "๊ฐ๊ฒฉ", "์์๋ฃ", "%", "์", "๊ฐ์ ", "๋ฒ") + + +def _is_critical(claim: str) -> bool: + """์ค์ ์ฌ์ค(์์นยท์ ์ฑ ) ์ฌ๋ถ โ A/B ๋ฑ๊ธ ์ถ์ฒ๊ฐ ํ์ํฉ๋๋ค.""" + return bool(re.search(r"\d", claim)) or any(w in claim for w in _CRITICAL_WORDS) + + +def format_evidence_for_prompt(pack: dict | None) -> str: + """์๋ฃํฉ์ ๊ธ ์์ฑ ํ๋กฌํํธ ๋ธ๋ก์ผ๋ก ๋ณํํฉ๋๋ค. + + ์๋ฃ ๊ธฐ์ค: ์ค์ํ ์์นยท์ ์ฑ ์ฌ์ค์ A/B ๋ฑ๊ธ ์ถ์ฒ๊ฐ ์๋ ๊ฒ๋ง ์ฌ์ฉ. + C/D ๋ฑ๊ธ ์ถ์ฒ๋ฟ์ธ ์ค์ ์ฌ์ค์ ์ ์ธ๋๊ณ , ์๋ฃํฉ์ด ์์ผ๋ฉด + '๊ฒ์ฆ ๋ถ๊ฐ ์์น ์์ฑ ๊ธ์ง' ํด๋ฐฑ ๊ท์น์ ๋ฐํํฉ๋๋ค. + """ + facts = (pack or {}).get("facts") or [] + verified = [f for f in facts if f.get("verified")] + pool = verified if verified else facts + # ์ค์ ์์นยท์ ์ฑ ์ฌ์ค์ A/B ๋ฑ๊ธ ์ถ์ฒ๋ง ์ธ์ (๋ฑ๊ธ ์ ๋ณด ์์ผ๋ฉด ํต๊ณผ โ ๊ตฌ๋ฒ์ ํฉ ํธํ) + usable, dropped_critical = [], 0 + for f in pool: + grade = f.get("grade", "") + if grade and grade not in ("A", "B") and _is_critical(f.get("claim", "")): + dropped_critical += 1 + continue + usable.append(f) + if dropped_critical: + logger.info(f"์๋ฃํฉ: ์ค์ ์ฌ์ค {dropped_critical}๊ฐ ์ ์ธ (A/B ๋ฑ๊ธ ์ถ์ฒ ์์)") + if not usable: + return """ +โโโ ์ฌ์ค ์์ฑ ๊ท์น (์๋ฃํฉ ์์) โโโ +์ด ๊ธ์๋ ๊ฒ์ฆ๋ ์๋ฃํฉ์ด ์์ต๋๋ค. ๋ค์์ ๋ฐ๋์ ์งํค์ธ์: +โ ๊ตฌ์ฒด์ ์ธ ์ซ์ยทํต๊ณยท๋ ์งยท์ ์ฑ ๋ณ๊ฒฝ ๋ด์ฉ์ ์์๋ก ๋ง๋ค์ด ์ฐ์ง ๋ง์ธ์ +โ ์์น๊ฐ ํ์ํ ์๋ฆฌ์๋ "๊ณต์ ๋ฐํ๋ฅผ ํ์ธํ์ธ์", "๊ธฐ๊ด ํํ์ด์ง ๊ธฐ์ค" ๋ฑ์ผ๋ก ์๋ด +โ ์ผ๋ฐ์ ์ผ๋ก ์๋ ค์ง ์๋ฆฌยท๊ฐ๋ ยท๋ฐฉ๋ฒ ์ค๋ช ์ ๊ฐ๋ฅ""" + + lines = [] + for i, f in enumerate(usable, 1): + pub = f" ({f['published_at']})" if f.get("published_at") else "" + grade = f" [๋ฑ๊ธ {f['grade']}]" if f.get("grade") else "" + stale = " โ ๏ธ์ค๋๋ ์๋ฃ โ ์ต์ ์ฌ๋ถ ์ธ๊ธ ํ์" if f.get("stale") else "" + lines.append( + f"{i}. {f['claim']}{stale}\n" + f" ์ถ์ฒ{grade}: {f.get('source_title', '')}{pub} โ {f.get('source_url', '')}" + ) + facts_text = "\n".join(lines) + return f""" +โโโ ๊ฒ์ฆ๋ ์๋ฃํฉ (์ฌ์ค ์์ฑ์ ์ ์ผํ ๊ทผ๊ฑฐ) โโโ +์๋๋ ์ด ํค์๋์ ๋ํด ์ค์ ์๋ฃ์์ ์ถ์ถยท๊ฒ์ฆํ ์ฌ์ค์ ๋๋ค. + +{facts_text} + +โ ๏ธ ํ์ ๊ท์น: +1. ์ซ์ยท๋ ์งยท์ ์ฑ ๋ณ๊ฒฝ ๋ด์ฉ์ ์ ์๋ฃํฉ์ ์๋ ๊ฒ๋ง ์ฌ์ฉํ์ธ์ +2. ์๋ฃํฉ์ ์๋ ์์นยทํต๊ณยทํ๋ยท์ผ์ ์ ์์๋ก ๋ง๋ค์ด ์ฐ์ง ๋ง์ธ์ +3. ์๋ฃํฉ์ ์๋ ๋ด์ฉ์ด ํ์ํ๋ฉด "๊ณต์ ๋ฐํ๋ฅผ ํ์ธํ์ธ์" ๋ฑ์ผ๋ก ์๋ด +4. sources ํ๋์๋ ์ ์๋ฃํฉ์ ์ถ์ฒ(URL ๊ทธ๋๋ก)๋ฅผ ์ฐ์ ์ฌ์ฉํ์ธ์""" diff --git a/blog-automation/final_editor.py b/blog-automation/final_editor.py new file mode 100644 index 0000000000000..0fc4c1f9ab92d --- /dev/null +++ b/blog-automation/final_editor.py @@ -0,0 +1,299 @@ +""" +3์ฐจ ์ต์ข ๋ฐํ ํธ์ง๊ธฐ (Publishing Editor) + +AdSense ๊ฒ์ฆยท์๋์์ ์ ํต๊ณผํ ๊ธ์ Blogger์ ๋ฐ๋ก ์ ๋ก๋ ๊ฐ๋ฅํ +์ต์ข ๋ฐํ๋ณธ์ผ๋ก ๋ค๋ฌ์ต๋๋ค. + +์ํ ์์ : + 1. ์ต์ข SEO ์ ๋ชฉ / ๋ฉํ ์ค๋ช / URL ์ฌ๋ฌ๊ทธ ์ ๋ฆฌ + 2. ๋ฐํ ๋ฉํ๋ฐ์ดํฐ ์ต์ข ๊ต์ (์ ๋ชฉยท๋ฉํ ์ค๋ช ยทํ๊ทธยท์ฌ๋ฌ๊ทธ) โ ๋ณธ๋ฌธ HTML์ ๋ณ๊ฒฝํ์ง ์์ + 3. ์ด๋ฏธ์ง alt text ๋ชฉ๋ก ์์ฑ (2~4๊ฐ ์ ์) + 4. ๋ฐํ ์ ์ฒดํฌ๋ฆฌ์คํธ ์์ฑ + 5. ์นดํ ๊ณ ๋ฆฌยทํ๊ทธ ์ถ์ฒ + +์๋ณธ ๋ด์ฉ์ 80% ์ด์์ ์ ์งํ๋ฉฐ ์ฌ์คยท์์น๋ฅผ ๋ณ๊ฒฝํ์ง ์์ต๋๋ค. +์ค๋ฅ ๋ฐ์ ์ ์๋ณธ post_data๋ฅผ ๊ทธ๋๋ก ๋ฐํ (๊ฒ์ ์ฐจ๋จ ์์). +""" + +import json +import logging +import re + +from config import claude_generate, CLAUDE_MODEL + +logger = logging.getLogger(__name__) + +_NEEDS_WARNING = { + "finance": {"์ฌํ ํฌ", "ํฌ์", "์ฃผ์", "etf", "ํ๋", "๋ถ๋์ฐ", "์ฐ๊ธ", "๋ณดํ", + "์ ์ธ", "๋์ถ", "๊ธ๋ฆฌ", "์ฑ๊ถ", "์ฝ์ธ", "์ํธํํ"}, + "health": {"๊ฑด๊ฐ", "๋ค์ด์ดํธ", "์ด๋", "์์", "์ง๋ณ", "์ฆ์", "์์ฝ", "์น๋ฃ", + "์๋ฉด", "ํ์", "ํ๋น", "๋น๋ง", "๋ฉด์ญ"}, + "legal": {"๋ฒ๋ฅ ", "๊ณ์ฝ", "์์ก", "ํ๊ฒฐ", "์๋์ฐจ", "์ธ๊ธ", "์ธ๋ฌด", "์ฝ๊ด", "๋ถ์"}, +} + + +def _needs_warning(keyword: str) -> str: + kw = keyword.lower() + for cat, kws in _NEEDS_WARNING.items(): + if any(w in kw for w in kws): + return cat + return "" + + +def _strip_html(html: str, max_chars: int = 3500) -> str: + text = re.sub(r"<[^>]+>", " ", html) + text = re.sub(r"\s+", " ", text).strip() + return text[:max_chars] + + +def _extract_h2s(html: str) -> list[str]: + return [re.sub(r"<[^>]+>", "", h).strip() + for h in re.findall(r"๐ฆ ๊ด๋ จ ์ํ ์ถ์ฒ
\n' + '\n' + f' {items_html}\n' + '\n' + '' + '์ด ํฌ์คํธ๋ ์ฟ ํก ํํธ๋์ค ํ๋์ ์ผํ์ผ๋ก, ' + '์ด์ ๋ฐ๋ฅธ ์ผ์ ์ก์ ์์๋ฃ๋ฅผ ์ ๊ณต๋ฐ์ ์ ์์ต๋๋ค.
\n' + ']*>(.*?)
", html, re.IGNORECASE | re.DOTALL)] + + +def _extract_sources(post_data: dict) -> str: + sources = post_data.get("sources") or [] + if not sources: + return "(์์)" + return "\n".join(f"- {s.get('title','')}: {s.get('url','')}" for s in sources) + + +def polish_post(post_data: dict) -> dict: + """ + 3์ฐจ ์ต์ข ๋ฐํ ํธ์ง์ ์ํํฉ๋๋ค. + ์์ ๋ post_data๋ฅผ ๋ฐํํฉ๋๋ค. ์คํจ ์ ์๋ณธ์ ๋ฐํํฉ๋๋ค. + """ + title = post_data.get("title", "").strip() + content = post_data.get("content", "") + meta_desc = post_data.get("meta_description", "") + keyword = post_data.get("keyword", "") + labels = post_data.get("labels") or [] + sources_str = _extract_sources(post_data) + blog_name = post_data.get("_blog_name", "") + h2_list = _extract_h2s(content) + plain = _strip_html(content) + warning_cat = _needs_warning(keyword) + + h2_block = "\n".join(f" - {h}" for h in h2_list) if h2_list else " (H2 ์์)" + tags_hint = ", ".join(labels[:5]) if labels else "(์์)" + + warning_note = "" + if warning_cat == "finance": + warning_note = "ํฌ์ยท๊ธ์ต ์ฃผ์ โ โ ๏ธ ์ฃผ์์ฌํญ ์น์ ํ์ ํฌํจ" + elif warning_cat == "health": + warning_note = "๊ฑด๊ฐยท์๋ฃ ์ฃผ์ โ โ ๏ธ ์ฃผ์์ฌํญ ์น์ ํ์ ํฌํจ" + elif warning_cat == "legal": + warning_note = "๋ฒ๋ฅ ยท์ธ๋ฌด ์ฃผ์ โ โ ๏ธ ์ฃผ์์ฌํญ ์น์ ํ์ ํฌํจ" + + prompt = f"""๋น์ ์ ๋ธ๋ก๊ทธ ๊ธ์ ์ค์ ๋ฐํ ๊ฐ๋ฅํ ํํ๋ก ์ ๋ฆฌํ๋ "3์ฐจ ์ต์ข ๋ฐํ ํธ์ง Agent"์ ๋๋ค. + +2์ฐจ ํ์ง ๊ฒ์๋ฅผ ํต๊ณผํ ๊ธ์ Blogger์ ๋ฐ๋ก ์ ๋ก๋ํ ์ ์๋ ์ต์ข ๋ฐํ๋ณธ์ผ๋ก ๋ค๋ฌ์ด ์ฃผ์ธ์. +์ ๊ธ์ ์ฒ์๋ถํฐ ์ฐ๋ ๊ฒ์ด ์๋๋ผ, ์๋ฃ๋ ๊ธ์ ๋ฐํ ํ์ง๋ก ํธ์งํ๋ ๊ฒ์ ๋๋ค. + +โโโโโโโโโโโโโโโโโโโโ +[์ ๋ ฅ ์ ๋ณด] + +- ๋ธ๋ก๊ทธ๋ช : {blog_name or "๊ฐ์ธ ๋ธ๋ก๊ทธ"} +- ์ฃผ์ ํค์๋: {keyword} +- ํ์ฌ ์ ๋ชฉ: {title} +- ํ์ฌ ํ๊ทธ: {tags_hint} +- ๋ธ๋ก๊ทธ ํ๋ซํผ: Blogger +- ๋ฌธ์ฒด: ์น๊ทผํ๊ณ ์ ๋ขฐ๊ฐ ์๋ ํ๊ตญ์ด ๋ธ๋ก๊ทธ ๋ฌธ์ฒด +- H2 ์์ ๋ชฉ ๋ชฉ๋ก: +{h2_block} +- ์ฐธ๊ณ ์๋ฃ: +{sources_str} +{f"- ํน์ด ์ฌํญ: {warning_note}" if warning_note else ""} + +[2์ฐจ ๊ฐ์ ์๋ฃ ๋ณธ๋ฌธ (์ 3,500์)] +{plain} + +โโโโโโโโโโโโโโโโโโโโ +[์ต์ข ํธ์ง ๋ชฉํ] + +1. ์ ๋ชฉยท๋ฉํ ์ค๋ช ยทURL ์ฌ๋ฌ๊ทธ๊ฐ ์ ๋ฆฌ๋์ด ์๋ค (์ ๋ชฉ 30~45์, ๋ฉํ 120~160์) +2. ๋ณธ๋ฌธ ๊ตฌ์กฐ๊ฐ ์์ฐ์ค๋ฝ๊ณ ์ฝ๊ธฐ ์ฝ๋ค +3. ๋ชจ๋ฐ์ผ์์ ๋ฌธ๋จ์ด ๊ธธ์ง ์๋ค (ํ ๋ฌธ๋จ 2~4๋ฌธ์ฅ ์ด๋ด) +4. ๊ธฐ์กด ์์(์์ฝ ๋ฐ์คยทํยทFAQยท์ด๋ฏธ์ง) ํ์ธ โ ๋ชฉ์ฐจ๋ ์ ๋ก๋ ์ ์๋ ์ฝ์ ๋๋ฏ๋ก ๋ณธ๋ฌธ์ ๋ชฉ์ฐจ๋ฅผ ๋ง๋ค์ง ๋ง ๊ฒ +5. ์ด๋ฏธ์ง alt text๊ฐ ๊ตฌ์ฒด์ ์ด๋ค +6. AdSense ์น์ธ์ ๋ถ๋ฆฌํ ๋ฌธ๊ตฌ, ๊ด๊ณ ํด๋ฆญ ์ ๋ ๋ฌธ๊ตฌ, ์ ์๊ถ ์นจํด ๋ฌธ์ฅ์ด ์๋ค +7. ์ค์ ๋ฐํ์๊ฐ ๋ณต์ฌํด ๋ฐ๋ก ์ ๋ก๋ํ ์ ์๋ค + +โโโโโโโโโโโโโโโโโโโโ +[๋ณธ๋ฌธ ํธ์ง ๊ท์น] + +์์ ๋ชฉ: +- H2๋ ๋ช ํํ๊ฒ, H3๋ ๊ตฌ์ฒด์ ์ผ๋ก โ ์์ ๋ชฉ๋ง ๋ด๋ ํ๋ฆ์ด ์ดํด๋์ด์ผ ํจ + +์์ฝ ๋ฐ์ค (๋์ ๋ถ ์งํ): ++โ ํต์ฌ ์์ฝ+ +ํ (๋ณธ๋ฌธ ์ค๊ฐ ์ต์ 1๊ฐ): +
+โข ๋์: [๋๊ตฌ์๊ฒ ์ ์ฉํ๊ฐ]
+โข ํต์ฌ ๋ด์ฉ: [ํ ์ค ์์ฝ]
+โข ๋น์ฉ/์กฐ๊ฑด: [์๋ค๋ฉด]
+โข ์ฅ์ : [์ฃผ์ ์ฅ์ ]
+โข ์ฃผ์ํ ์ : [ํ ์ค]
+โข ๊ฒฐ๋ก : [ํ ์ค ๊ฒฐ๋ก ] ++
+ +๊ฐ์ธ ๊ฒฝํ ๋ฉ๋ชจ (๋ณธ๋ฌธ ์ค๊ฐ ๋๋ ๊ฒฐ๋ก ์ ): ++ ํญ๋ชฉ ๋ด์ฉ ์ฒดํฌ ํฌ์ธํธ + ... ... ... +๐ ๊ฐ์ธ ๊ฒฝํ ๋ฉ๋ชจ+ +์ฃผ์์ฌํญ ({"๊ฑด๊ฐยท๊ธ์ตยท๋ฒ๋ฅ ์ฃผ์ ์ด๋ฏ๋ก ๋ฐ๋์ ํฌํจ" if warning_note else "ํ์ ์ ํฌํจ"}): +
+[4~6๋ฌธ์ฅ. ์ง์ ๊ฒฝํ์ด ์์ผ๋ฉด "๊ณต๊ฐ ์๋ฃ์ ๊ณต์ ์ ๋ณด๋ฅผ ๋ฐํ์ผ๋ก ์ ๋ฆฌํ์ต๋๋ค"๋ก ํ์] ++โ ๏ธ ์ฃผ์์ฌํญ+ +FAQ (4~6๊ฐ, h3 ํ์): +
+์ด ๊ธ์ ์ผ๋ฐ์ ์ธ ์ ๋ณด์ ๊ฐ์ธ์ ์ธ ๊ฒฝํ์ ๋ฐํ์ผ๋ก ์์ฑํ ๊ธ์ ๋๋ค. ๊ฐ์ธ์ ์ํฉ, ๊ฑด๊ฐ ์ํ, ์ฌ์ ์ํ, ๊ฑฐ์ฃผ ์ง์ญ, ์ด์ฉ ์กฐ๊ฑด์ ๋ฐ๋ผ ๊ฒฐ๊ณผ๊ฐ ๋ฌ๋ผ์ง ์ ์์ต๋๋ค. ์ค์ํ ๊ฒฐ์ ์ ํ๊ธฐ ์ ์๋ ๊ณต์ ๊ธฐ๊ด, ์ ๋ฌธ๊ฐ, ํด๋น ์๋น์ค ์ ๊ณต์ฒ์ ์ต์ ์๋ด๋ฅผ ํ์ธํ๋ ๊ฒ์ด ์ข์ต๋๋ค. +์์ฃผ ๋ฌป๋ ์ง๋ฌธ
+Q1. ์ง๋ฌธ
๋ต๋ณ (2~4๋ฌธ์ฅ)
+... + +๊ฒฐ๋ก (์ถ์ฒ/๋น์ถ์ฒ ๋์ ๊ตฌ๋ถ, ๊ณผ์ฅ ์์ด): +๋ง๋ฌด๋ฆฌ
+...
+ +์์ฑ์ ๋ฉ๋ชจ (๊ธ ํ๋จ): ++โ๏ธ ์์ฑ์ ๋ฉ๋ชจ
+ +๋ด๋ถ ๋งํฌ (๊ธ ํ๋จ, href="#" ๊ฐ์ ๋ฏธ์ฐ๊ฒฐ ๋งํฌ ์ ๋ ๊ธ์ง โ ์ค์ URL์ด ์์ผ๋ฉด ์ด ๋ธ๋ก ์์ฒด๋ฅผ ์๋ต): +๊ฐ์ ๋ธ๋ก๊ทธ ์์์ ์ฐ๊ฒฐํ๋ฉด ์ข์ ๊ด๋ จ ๊ธ ์ฃผ์ ๋ฅผ ํ ์คํธ๋ก๋ง ์์ฐ์ค๋ฝ๊ฒ ์ธ๊ธ (๋งํฌ ํ๊ทธ ์ฌ์ฉ ๊ธ์ง). +์: "ETF ํฌ์ ์ ๋ฌธ ๊ธ๋ ์ฐธ๊ณ ํ์๋ฉด ์ข์ ๊ฒ ๊ฐ์ต๋๋ค." + +โโโโโโโโโโโโโโโโโโโโ +[์ด๋ฏธ์ง ๊ท์น] + +๋ณธ๋ฌธ์ ์ด๋ฏธ์ง 2~4๊ฐ๋ฅผ ์ ์ํฉ๋๋ค (์ค์ ์ฝ์ X, ์์น์ alt๋ง ๋ช ์). +alt text๋ ๊ตฌ์ฒด์ ์ผ๋ก โ "์ด๋ฏธ์ง"์ฒ๋ผ ์ฐ์ง ๋ง ๊ฒ. +์ข์ ์: "{keyword} ๊ด๋ จ ์ฒดํฌ๋ฆฌ์คํธ๋ฅผ ์ ๋ฆฌํ ๋ธ๋ก๊ทธ ๋ํ ์ด๋ฏธ์ง" + +โโโโโโโโโโโโโโโโโโโโ +[์ถ๋ ฅ ํ์ โ ๋ฐ๋์ JSON๋ง ์ถ๋ ฅ (๋งํฌ๋ค์ด ์ฝ๋ ๋ธ๋ก ์์ด)] + +{{ + "seo_title": "์ต์ข SEO ์ ๋ชฉ (30~45์, ํค์๋ ํฌํจ, ๊ณผ์ฅ ์์)", + "meta_description": "์ต์ข ๋ฉํ ์ค๋ช (120~160์)", + "url_slug": "recommended-url-slug-in-english", + "category": "์นดํ ๊ณ ๋ฆฌ 1๊ฐ (๊ฑด๊ฐ๊ด๋ฆฌ/์ํ์ ๋ณด/AIํ์ฉ/์ฌํ/์ฌํ ํฌ/๋ง์ง/๋ธ๋ก๊ทธ์ด์ ์ค ์ ํ)", + "tags": ["ํ๊ทธ1","ํ๊ทธ2","ํ๊ทธ3","ํ๊ทธ4","ํ๊ทธ5"], + "representative_image": {{ + "position": "๊ธ ์ต์๋จ", + "description": "๋ํ ์ด๋ฏธ์ง ์ค๋ช ", + "style": "์ถ์ฒ ์คํ์ผ", + "alt": "๊ตฌ์ฒด์ ์ธ alt text", + "filename": "recommended-filename.jpg" + }}, + "image_list": [ + {{"position": "์ฝ์ ์์น", "description": "์ด๋ฏธ์ง ์ค๋ช ", "alt": "alt text", "filename": "ํ์ผ๋ช .jpg"}}, + {{"position": "์ฝ์ ์์น", "description": "์ด๋ฏธ์ง ์ค๋ช ", "alt": "alt text", "filename": "ํ์ผ๋ช .jpg"}} + ], + "internal_links": ["๊ด๋ จ ๊ธ ์ ๋ชฉ 1", "๊ด๋ จ ๊ธ ์ ๋ชฉ 2", "๊ด๋ จ ๊ธ ์ ๋ชฉ 3"], + "references": [{{"name": "๊ธฐ๊ด๋ช ", "note": "์ฐธ๊ณ ๋ด์ฉ"}}], + "checklist": {{ + "title_matches_intent": true, + "meta_120_160": true, + "slug_clean": true, + "intro_starts_with_reader_concern": true, + "summary_box_present": true, + "table_present": true, + "faq_4_plus": true, + "warning_if_needed": true, + "author_memo_present": true, + "references_present": true, + "internal_links_present": true, + "alt_text_specific": true, + "no_ad_cta": true, + "no_exaggeration": true, + "no_ai_phrases": true, + "mobile_friendly_paragraphs": true + }}, + "changes_summary": "๋ณ๊ฒฝ ์์ฝ 1~2์ค" +}}""" + + try: + import anthropic + client = anthropic.Anthropic() + raw = claude_generate( + client, + model=CLAUDE_MODEL, + max_tokens=8000, + messages=[{"role": "user", "content": prompt}], + ) + + raw = raw.strip() + if raw.startswith("```"): + raw = re.sub(r"^```[a-z]*\n?", "", raw) + raw = re.sub(r"\n?```$", "", raw) + try: + result = json.loads(raw) + except json.JSONDecodeError: + try: + from json_repair import repair_json + result = json.loads(repair_json(raw)) + except Exception: + raise + + changed = False + + # ์ ๋ชฉ + new_title = (result.get("seo_title") or "").strip() + if new_title and new_title != title: + post_data["title"] = new_title + logger.info(f" โ๏ธ ์ ๋ชฉ ์ต์ข ๊ต์ : '{title}' โ '{new_title}'") + changed = True + + # ๋ณธ๋ฌธ์ ๊ต์ฒดํ์ง ์์ โ polish_post๋ HTML์ด ์ ๊ฑฐ๋ ์์ ํ ์คํธ๋ง ์ ๋ ฅ๋ฐ์ผ๋ฏ๋ก + # ์ฌ์์ฑ ๋ณธ๋ฌธ์ ์ ์ฉํ๋ฉด ์ด๋ฏธ ์ฝ์ ๋ ์ด๋ฏธ์งยทํ ๋ง ๋์์ธ์ด ์ ์ค๋๊ณ + # ๋ชฉ์ฐจยท์์ฝ๋ฐ์ค๊ฐ ์ค๋ณต ์์ฑ๋จ (๋ชฉ์ฐจ๋ ์ ๋ก๋ ์ ์๋ ์ฝ์ ). + # ์ ๋ชฉยท๋ฉํยทํ๊ทธ ๋ฑ ๋ฉํ๋ฐ์ดํฐ ์์ค์ ์ต์ข ๊ต์ ๋ง ๋ฐ์ํ๋ค. + + # ๋ฉํ ์ค๋ช + new_meta = (result.get("meta_description") or "").strip() + if new_meta and new_meta != meta_desc: + post_data["meta_description"] = new_meta + logger.info(f" โ๏ธ ๋ฉํ ์ค๋ช ๊ต์ ({len(new_meta)}์)") + changed = True + + # ํ๊ทธ + new_tags = [t for t in (result.get("tags") or []) if isinstance(t, str)] + if new_tags: + post_data["labels"] = new_tags + changed = True + + # ์ถ๊ฐ ํ๋ ์ ์ฅ (Blogger ์ ๋ก๋์๋ ์ํฅ ์์) + post_data["url_slug"] = result.get("url_slug", "") + post_data["category"] = result.get("category", "") + post_data["representative_image"] = result.get("representative_image", {}) + post_data["image_list"] = result.get("image_list", []) + post_data["internal_links"] = result.get("internal_links", []) + post_data["references"] = result.get("references", []) + post_data["publish_checklist"] = result.get("checklist", {}) + post_data["final_edit_applied"] = changed + + summary = result.get("changes_summary", "") + logger.info(f" โ 3์ฐจ ์ต์ข ํธ์ง ์๋ฃ โ {summary}") + + # ์ฒดํฌ๋ฆฌ์คํธ ์์ฝ ๋ก๊ทธ + checklist = result.get("checklist") or {} + fails = [k for k, v in checklist.items() if v is False] + if fails: + logger.warning(f" โ ๏ธ ๋ฐํ ์ ์ฒดํฌ๋ฆฌ์คํธ ๋ฏธ์ถฉ์กฑ ํญ๋ชฉ: {', '.join(fails)}") + + return post_data + + except Exception as e: + logger.warning(f" โ ๏ธ 3์ฐจ ์ต์ข ํธ์ง ๊ฑด๋๋ (๋ฌด์): {e}") + return post_data diff --git a/blog-automation/fix_dead_links.py b/blog-automation/fix_dead_links.py new file mode 100644 index 0000000000000..b2985067f469a --- /dev/null +++ b/blog-automation/fix_dead_links.py @@ -0,0 +1,199 @@ +"""๋ฐํ ๊ธ ์ฃฝ์ ๋งํฌ(href="#") ์ค์บยท์์ โ AdSense 'ํ์' ์ ์ฑ ์๋ฐ ๋์ + +๊ธ ์์ฑ๊ธฐ๊ฐ ๋ณธ๋ฌธ ํ๋จ์ ๋ฃ๋ ๊ด๋ จ ๊ธ ๋งํฌ๋ ์ด๋๋ก๋ +์ฐ๊ฒฐ๋์ง ์์ AdSense '์กด์ฌํ์ง ์๋ ์ฝํ ์ธ ๋ก ์ฐ๊ฒฐ๋๋ ๋งํฌ' ์๋ฐ์ ๋๋ค. + +๋์: + 1. ๋ฐํ ๊ธ ์ ์ฒด ์ค์บ โ href="#" ๋งํฌ ๊ฐ์ง + 2. (์ค์ ์์ ์) ๊ฐ์ ๋ธ๋ก๊ทธ์ ์ค์ ๋ฐํ ๊ธ ์ค ์ ๋ชฉ ์ ์ฌ๋๊ฐ ๋์ ๊ธ์ + URL๋ก ๊ต์ฒด, ๋งค์นญํ ๊ธ์ด ์์ผ๋ฉด ๋งํฌ ํ๊ทธ ์ ๊ฑฐ(ํ ์คํธ๋ง ๋จ๊น/๋ธ๋ก ์ ๋ฆฌ) + 3. ๋ฆฌํฌํธ docs/data/dead_links.json ์ ์ฅ + +Usage: + python fix_dead_links.py --dry-run # ์ค์บ๋ง (์์ ์์) + python fix_dead_links.py # ์ค์ ์์ + python fix_dead_links.py --blog blog1 +""" + +import argparse +import json +import logging +import os +import re +import sys +import time +from datetime import datetime, timezone + +import requests +from dotenv import load_dotenv +load_dotenv() + +logging.basicConfig(level=logging.INFO, format="%(asctime)s %(levelname)s %(message)s") +logger = logging.getLogger(__name__) + +BLOGGER_API_BASE = "https://www.googleapis.com/blogger/v3" +_DOCS_DATA = os.path.join(os.path.dirname(__file__), "..", "docs", "data") + +_DEAD_A_RE = re.compile(r']*href="#"[^>]*>(.*?)', re.IGNORECASE | re.DOTALL) + + +def _iter_posts(blog_id: str, token: str): + page_token = "" + while True: + params = {"maxResults": 100, "status": "live", "fetchBodies": "true", + "fields": "nextPageToken,items(id,title,url,content)"} + if page_token: + params["pageToken"] = page_token + r = requests.get(f"{BLOGGER_API_BASE}/blogs/{blog_id}/posts", + headers={"Authorization": f"Bearer {token}"}, + params=params, timeout=30) + if r.status_code != 200: + logger.error(f"๊ธ ๋ชฉ๋ก ์กฐํ ์คํจ [{r.status_code}]: {r.text[:200]}") + return + data = r.json() + yield from data.get("items", []) + page_token = data.get("nextPageToken", "") + if not page_token: + return + + +def _title_words(t: str) -> set: + return {w for w in re.split(r"[\s,ยทโ-]+", (t or "").lower()) if len(w) >= 2} + + +def _best_match_url(link_text: str, catalog: list[dict], self_url: str) -> str: + """์ฃฝ์ ๋งํฌ ํ ์คํธ์ ์ ๋ชฉ์ด ๊ฐ์ฅ ์ ์ฌํ ์ค์ ๋ฐํ ๊ธ URL (์๊ณ ๋ฏธ๋ฌ ์ "").""" + lw = _title_words(link_text) + if not lw: + return "" + best, best_score = "", 0.0 + for p in catalog: + if p["url"] == self_url: + continue + tw = _title_words(p["title"]) + if not tw: + continue + score = len(lw & tw) / len(lw | tw) + if score > best_score: + best, best_score = p["url"], score + return best if best_score >= 0.25 else "" + + +def fix_dead_links_in_content(content: str, catalog: list[dict], self_url: str) -> tuple[str, int, int]: + """href="#" ๋งํฌ๋ฅผ ์ค์ URL๋ก ๊ต์ฒดํ๊ฑฐ๋ ์ ๊ฑฐ. Returns (new, replaced, removed).""" + replaced = removed = 0 + + def _sub(m: re.Match) -> str: + nonlocal replaced, removed + text = m.group(1) + plain = re.sub(r"<[^>]+>", "", text).strip() + url = _best_match_url(plain, catalog, self_url) + if url: + replaced += 1 + return m.group(0).replace('href="#"', f'href="{url}"') + removed += 1 + return plain # ๋งํฌ ์ ๊ฑฐ, ํ ์คํธ๋ง ์ ์ง + + new = _DEAD_A_RE.sub(_sub, content) + if removed: + # ๋งํฌ๊ฐ ์ ๋ถ ์ ๊ฑฐ๋ผ "์ ๋ชฉ1 / ์ ๋ชฉ2 / ์ ๋ชฉ3"๋ง ๋จ์ ๊ด๋ จ ๊ธ ๋ธ๋ก ์ ๋ฆฌ: + # ๊ตฌ๋ถ์ ์ฌ๋์๊ฐ ์ด์ํ๊ฒ ๋จ๋ ๊ฒ ์ ๋๋ ํ์ฉ (ํ ์คํธ ์์ฒด๋ ๋ฌดํด) + pass + return new, replaced, removed + + +def scan_and_fix(blogs: list[dict], dry_run: bool) -> dict: + from blogger_uploader import _get_access_token + + report_items = [] + total_scanned = total_dead = fixed_posts = failed = 0 + + for cfg in blogs: + name = cfg.get("name") or cfg.get("id", "") + blog_id = cfg.get("blog_id", "") + if not blog_id: + continue + token = _get_access_token(cfg) + if not token: + logger.error(f"[{name}] ํ ํฐ ์์ โ ๊ฑด๋๋") + continue + + logger.info(f"โโ [{name}] ๋ฐํ ๊ธ ์ค์บ โโ") + posts = list(_iter_posts(blog_id, token)) + catalog = [{"title": p.get("title", ""), "url": p.get("url", "")} for p in posts] + + for p in posts: + total_scanned += 1 + content = p.get("content", "") + dead = _DEAD_A_RE.findall(content) + if not dead: + continue + total_dead += len(dead) + texts = [re.sub(r"<[^>]+>", "", d).strip()[:30] for d in dead[:3]] + logger.info(f" ๐ ์ฃฝ์ ๋งํฌ {len(dead)}๊ฐ: '{p.get('title','')[:40]}' โ {texts}") + + item = {"blog": name, "title": p.get("title", "")[:60], + "url": p.get("url", ""), "dead_links": len(dead), + "link_texts": texts} + + if not dry_run: + new_content, rep, rem = fix_dead_links_in_content(content, catalog, p.get("url", "")) + pr = requests.patch( + f"{BLOGGER_API_BASE}/blogs/{blog_id}/posts/{p['id']}", + headers={"Authorization": f"Bearer {token}", + "Content-Type": "application/json"}, + json={"content": new_content}, timeout=30) + if pr.status_code == 200: + fixed_posts += 1 + item["result"] = f"๊ต์ฒด {rep} / ์ ๊ฑฐ {rem}" + logger.info(f" โ ์์ ์๋ฃ (์ค์ ๊ธ ๊ต์ฒด {rep} / ๋งํฌ ์ ๊ฑฐ {rem})") + else: + failed += 1 + item["result"] = f"์คํจ {pr.status_code}" + logger.error(f" โ ์์ ์คํจ [{pr.status_code}]") + time.sleep(1) + report_items.append(item) + + report = { + "checked_at": datetime.now(timezone.utc).isoformat(), + "dry_run": dry_run, + "scanned_posts": total_scanned, + "posts_with_dead_links": len(report_items), + "total_dead_links": total_dead, + "fixed_posts": fixed_posts, + "failed": failed, + "items": report_items[:100], + } + try: + os.makedirs(_DOCS_DATA, exist_ok=True) + with open(os.path.join(_DOCS_DATA, "dead_links.json"), "w", encoding="utf-8") as f: + json.dump(report, f, ensure_ascii=False, indent=2) + except Exception as e: + logger.warning(f"๋ฆฌํฌํธ ์ ์ฅ ์คํจ: {e}") + + mode = "(๋ฏธ๋ฆฌ๋ณด๊ธฐ) " if dry_run else "" + logger.info("=" * 55) + logger.info( + f"{mode}์๋ฃ โ ๊ธ {total_scanned}๊ฑด ์ค์บ / ์ฃฝ์ ๋งํฌ ๋ณด์ ๊ธ {len(report_items)}๊ฑด " + f"(๋งํฌ {total_dead}๊ฐ) / ์์ {fixed_posts}๊ฑด / ์คํจ {failed}๊ฑด" + ) + return report + + +def main() -> int: + parser = argparse.ArgumentParser(description="์ฃฝ์ ๋งํฌ(href=#) ์ค์บยท์์ ") + parser.add_argument("--dry-run", action="store_true") + parser.add_argument("--blog", default="") + args = parser.parse_args() + + from config import get_blog_configs + blogs = get_blog_configs() + if args.blog: + blogs = [b for b in blogs if b.get("id") == args.blog] or blogs + + report = scan_and_fix(blogs, args.dry_run) + return 0 if report.get("failed", 0) == 0 else 1 + + +if __name__ == "__main__": + sys.exit(main()) diff --git a/blog-automation/fix_duplicate_images.py b/blog-automation/fix_duplicate_images.py new file mode 100644 index 0000000000000..30cc32251238f --- /dev/null +++ b/blog-automation/fix_duplicate_images.py @@ -0,0 +1,351 @@ +"""๋ฐํ๋ ๊ธ ์ผ๊ด ์ค์บ โ ์ค๋ณต ์ด๋ฏธ์ง ์๋ ๊ต์ฒด + +๊ณผ๊ฑฐ ๋ฒ์ฉ ๊ฒ์์ด ํด๋ฐฑ("lifestyle blog")์ผ๋ก ์ฌ๋ฌ ๊ธ์ ๊ฐ์ ์ด๋ฏธ์ง๊ฐ +์ฒจ๋ถ๋ ๋ฐํ ๊ธ์ ์ ๋ฆฌํฉ๋๋ค. + +๋์: + 1. BLOGS_CONFIG์ ๋ชจ๋ ๋ธ๋ก๊ทธ์์ ๋ฐํ ๊ธ ์ ์ฒด ์กฐํ (Blogger API) + 2. ๋ ๊ธ ์ด์์์ ์ฌ์ฉ๋ ์ด๋ฏธ์ง URL ๊ฐ์ง (data URI ์์ฑ ์ธ๋ค์ผ ์ ์ธ) + 3. ๊ฐ์ฅ ์ค๋๋ ๊ธ 1๊ณณ๋ง ์ ์ง, ๋๋จธ์ง ๊ธ์ ํด๋น ์ด๋ฏธ์ง๋ฅผ + ๊ธ ์ ๋ชฉ ๊ธฐ๋ฐ ์ ์ด๋ฏธ์ง๋ก ๊ต์ฒด (๊ฒ์ ์คํจ ์ ์์ฑ SVG ์ธ๋ค์ผ) + 4. ์ค์บ๋ ์ ์ฒด ์ด๋ฏธ์ง URL์ used_images.json์ ์๋ + โ ์ดํ ์ ๊ธ์ด ๊ธฐ์กด ๊ธ ์ด๋ฏธ์ง๋ฅผ ์ฌ์ฌ์ฉํ์ง ์์ + 5. ๊ฒฐ๊ณผ ๋ฆฌํฌํธ๋ฅผ docs/data/duplicate_images.json์ ์ ์ฅ + +Usage: + python fix_duplicate_images.py # ์ค์ ๊ต์ฒด + python fix_duplicate_images.py --dry-run # ๊ฐ์ง๋ง ํ๊ณ ์์ ์์ + python fix_duplicate_images.py --blog blog1 +""" + +import argparse +import json +import logging +import os +import re +import sys +import time +from datetime import datetime, timezone + +import requests +from dotenv import load_dotenv +load_dotenv() + +logging.basicConfig(level=logging.INFO, format="%(asctime)s %(levelname)s %(message)s") +logger = logging.getLogger(__name__) + +BLOGGER_API_BASE = "https://www.googleapis.com/blogger/v3" +_DOCS_DATA = os.path.join(os.path.dirname(__file__), "..", "docs", "data") + +_IMG_TAG_RE = re.compile(r'
+์ด ๊ธ์ ์ค์ ๊ฒฝํ, ๊ณต๊ฐ ์๋ฃ, ๊ณต์ ์ ๋ณด๋ฅผ ๋ฐํ์ผ๋ก ์์ฑํ์ต๋๋ค. ๋ธ๋ก๊ทธ ์ด์์๋ ์ํ์ ๋ณด, AI ํ์ฉ, ์ฌํ, ๊ฑด๊ฐ๊ด๋ฆฌ, ์ฌํ ํฌ ๊ด๋ จ ์ ๋ณด๋ฅผ ์ง์ ์กฐ์ฌํ๊ณ ์ด๋ณด์๋ ์ดํดํ๊ธฐ ์ฝ๊ฒ ์ ๋ฆฌํ๋ ๊ฒ์ ๋ชฉํ๋ก ํฉ๋๋ค. +]*>', re.IGNORECASE) +_SRC_RE = re.compile(r'src="([^"]+)"', re.IGNORECASE) + + +def _fetch_dhash(url: str) -> int | None: + """์ด๋ฏธ์ง๋ฅผ ๋ด๋ ค๋ฐ์ dHash(64๋นํธ ์ง๊ฐ ํด์)๋ฅผ ๊ณ์ฐํฉ๋๋ค. + + ๊ฐ์ ์ฌ์ง์ด ์๋ก ๋ค๋ฅธ ์ฌ์ดํธ์ ํธ์คํ ๋ผ URL์ด ๋ฌ๋ผ๋ ๊ฐ์งํ ์ ์์ต๋๋ค. + Pillow ๋ฏธ์ค์นยท๋ค์ด๋ก๋ ์คํจ ์ None (URL ๋น๊ต๋ง ์ฌ์ฉ). + """ + try: + from PIL import Image + except ImportError: + return None + import io + try: + r = requests.get(url, timeout=6, stream=True, + headers={"User-Agent": "Mozilla/5.0"}) + if r.status_code != 200: + return None + data = r.raw.read(3 * 1024 * 1024) # ์ต๋ 3MB + img = Image.open(io.BytesIO(data)).convert("L").resize((9, 8)) + px = list(img.getdata()) + bits = 0 + for row in range(8): + for col in range(8): + bits = (bits << 1) | (1 if px[row * 9 + col] > px[row * 9 + col + 1] else 0) + return bits + except Exception: + return None + + +def _hamming(a: int, b: int) -> int: + return bin(a ^ b).count("1") + + +# dHash ํด๋ฐ ๊ฑฐ๋ฆฌ๊ฐ ์ด ๊ฐ ์ดํ์ด๋ฉด ๊ฐ์ ์ด๋ฏธ์ง๋ก ํ์ (0=์์ ๋์ผ) +_DHASH_THRESHOLD = 6 + + +def _cluster_urls(urls: list[str], hashes: dict[str, int | None]) -> list[list[str]]: + """๊ฐ์ ์ด๋ฏธ์ง(๋์ผ URL ๋๋ dHash ์ ์ฌ)๋ฅผ ํด๋ฌ์คํฐ๋ก ๋ฌถ์ต๋๋ค.""" + parent = {u: u for u in urls} + + def find(u): + while parent[u] != u: + parent[u] = parent[parent[u]] + u = parent[u] + return u + + def union(a, b): + ra, rb = find(a), find(b) + if ra != rb: + parent[rb] = ra + + hashed = [(u, h) for u, h in hashes.items() if h is not None] + for i in range(len(hashed)): + for j in range(i + 1, len(hashed)): + if _hamming(hashed[i][1], hashed[j][1]) <= _DHASH_THRESHOLD: + union(hashed[i][0], hashed[j][0]) + + clusters: dict[str, list[str]] = {} + for u in urls: + clusters.setdefault(find(u), []).append(u) + return list(clusters.values()) + + +def _extract_image_urls(content: str) -> list[str]: + """๋ณธ๋ฌธ์์ ์ธ๋ถ ์ด๋ฏธ์ง URL ๋ชฉ๋ก ์ถ์ถ (data URI ์์ฑ ์ธ๋ค์ผ ์ ์ธ).""" + urls = [] + for tag in _IMG_TAG_RE.findall(content): + m = _SRC_RE.search(tag) + if m and not m.group(1).startswith("data:"): + urls.append(m.group(1)) + return urls + + +def _iter_posts(blog_id: str, token: str): + """๋ธ๋ก๊ทธ์ ๋ฐํ(live) ๊ธ ์ ์ฒด ์ํ (์ต์ ์).""" + page_token = "" + while True: + params = { + "maxResults": 100, + "status": "live", + "fetchBodies": "true", + "fields": "nextPageToken,items(id,title,url,content,published)", + } + if page_token: + params["pageToken"] = page_token + r = requests.get( + f"{BLOGGER_API_BASE}/blogs/{blog_id}/posts", + headers={"Authorization": f"Bearer {token}"}, + params=params, timeout=30, + ) + if r.status_code != 200: + logger.error(f"๊ธ ๋ชฉ๋ก ์กฐํ ์คํจ [{r.status_code}]: {r.text[:200]}") + return + data = r.json() + yield from data.get("items", []) + page_token = data.get("nextPageToken", "") + if not page_token: + return + + +def _find_replacement_image(title: str, keyword: str = "") -> dict | None: + """๊ธ ์ ๋ชฉ ๊ธฐ๋ฐ ์ ์ด๋ฏธ์ง ํ๋ณด โ ๊ฒ์(๊ธฐ์ฌ์ฉ ํํผ) ์คํจ ์ ์์ฑ ์ธ๋ค์ผ.""" + from image_fetcher import _fetch_best_image, _simplify_query, generate_fallback_image + + query = _simplify_query(title, 3) or title + img = _fetch_best_image( + query, + naver_client_id=os.getenv("NAVER_CLIENT_ID", ""), + naver_client_secret=os.getenv("NAVER_CLIENT_SECRET", ""), + n_candidates=6, + pixabay_api_key=os.getenv("PIXABAY_API_KEY", ""), + ) + if img: + img["alt_text"] = query[:50] + return img + thumb = generate_fallback_image(title, keyword) + if thumb: + kind = "AI ์์ฑ ์ด๋ฏธ์ง" if thumb.get("source") == "ai_generated" else "์์ฑ ์ธ๋ค์ผ" + logger.info(f" ๊ฒ์ ์คํจ โ {kind} ์ฌ์ฉ: '{title[:40]}'") + return thumb + + +def _replace_image_in_content(content: str, old_url: str, new_img: dict) -> str: + """๋ณธ๋ฌธ์์ old_url ์ด๋ฏธ์ง ํ๊ทธ์ src/alt/title์ ์ ์ด๋ฏธ์ง๋ก ๊ต์ฒด.""" + import html as _h + new_alt = _h.escape(new_img.get("alt_text", ""), quote=True) + + def _sub_tag(m: re.Match) -> str: + tag = m.group(0) + if f'src="{old_url}"' not in tag: + return tag + tag = tag.replace(f'src="{old_url}"', f'src="{new_img["url"]}"') + for attr in ("alt", "title"): + if new_alt and re.search(rf'{attr}="[^"]*"', tag): + tag = re.sub(rf'{attr}="[^"]*"', f'{attr}="{new_alt}"', tag) + return tag + + return _IMG_TAG_RE.sub(_sub_tag, content) + + +def scan_and_fix(blogs: list[dict], dry_run: bool) -> dict: + from blogger_uploader import _get_access_token + from image_fetcher import mark_images_used + + # โโ 1์ฐจ ์ค์บ: ์ ์ฒด ๋ฐํ ๊ธ์ ์ด๋ฏธ์ง ์ฌ์ฉ์ฒ ์์ง โโ + # url โ [{"blog":cfg, "token":t, "post":post}] (์ต์ ์์ผ๋ก ์์) + usage: dict[str, list[dict]] = {} + all_urls: list[str] = [] + scanned = 0 + + for cfg in blogs: + name = cfg.get("name") or cfg.get("id", "") + blog_id = cfg.get("blog_id", "") + if not blog_id: + logger.warning(f"[{name}] blog_id ์์ โ ๊ฑด๋๋") + continue + token = _get_access_token(cfg) + if not token: + logger.error(f"[{name}] ์ก์ธ์ค ํ ํฐ ์์ โ ๊ฑด๋๋") + continue + logger.info(f"โโ [{name}] ๋ฐํ ๊ธ ์ค์บ โโ") + for post in _iter_posts(blog_id, token): + scanned += 1 + for url in set(_extract_image_urls(post.get("content", ""))): + usage.setdefault(url, []).append( + {"blog": cfg, "blog_id": blog_id, "token": token, "post": post}) + all_urls.append(url) + + logger.info(f"์ค์บ ์๋ฃ: ๊ธ {scanned}๊ฑด, ์ด๋ฏธ์ง URL {len(usage)}์ข ") + + # โโ ์ด๋ฏธ์ง ๋ด์ฉ ์ง๋ฌธ(dHash) ๊ณ์ฐ โ ๋ค๋ฅธ URL์ ๊ฐ์ ์ฌ์ง๋ ๊ฐ์ง โโ + from concurrent.futures import ThreadPoolExecutor + url_list = list(usage.keys()) + logger.info(f"์ด๋ฏธ์ง ์ง๋ฌธ ๊ณ์ฐ ์ค ({len(url_list)}๊ฐ ๋ค์ด๋ก๋)...") + with ThreadPoolExecutor(max_workers=8) as pool: + hash_results = list(pool.map(_fetch_dhash, url_list)) + hashes = dict(zip(url_list, hash_results)) + hashed_count = sum(1 for h in hashes.values() if h is not None) + logger.info(f"์ง๋ฌธ ๊ณ์ฐ ์๋ฃ: {hashed_count}/{len(url_list)}๊ฐ ์ฑ๊ณต") + + clusters = _cluster_urls(url_list, hashes) + dup_clusters = [ + c for c in clusters + if sum(len(usage[u]) for u in c) >= 2 and ( + len(c) >= 2 or any(len(usage[u]) >= 2 for u in c)) + ] + logger.info(f"์ค๋ณต ์ด๋ฏธ์ง ํด๋ฌ์คํฐ: {len(dup_clusters)}์ข " + f"(URL ๋์ผ + ๋ด์ฉ ๋์ผ ํฌํจ)") + + # โโ ๊ต์ฒด ๊ณํ: ํด๋ฌ์คํฐ๋ง๋ค ๊ฐ์ฅ ์ค๋๋ ๊ธ 1๊ณณ๋ง ์ ์ง, ๋๋จธ์ง ๊ต์ฒด โโ + # post_key โ {"blog_id","token","post","dup_urls":[...]} + plans: dict[str, dict] = {} + for cluster in dup_clusters: + entries = [(u, e) for u in cluster for e in usage[u]] + # published(ISO) ๊ธฐ์ค ๊ฐ์ฅ ์ค๋๋ ๊ธ ์ ์ง + entries.sort(key=lambda x: x[1]["post"].get("published", "")) + keep_url, keep = entries[0] + logger.info( + f"๐ ์ค๋ณต ์ด๋ฏธ์ง ํด๋ฌ์คํฐ (URL {len(cluster)}์ข / ๊ธ {len(entries)}๊ณณ): {keep_url[:70]}\n" + f" ์ ์ง: '{keep['post'].get('title','')[:40]}'" + ) + seen_posts = {f"{keep['blog_id']}:{keep['post']['id']}"} + for url, e in entries[1:]: + key = f"{e['blog_id']}:{e['post']['id']}" + if key in seen_posts: + continue # ๊ฐ์ ๊ธ์ ํ ๋ฒ๋ง (post ๋ด ์ค๋ณต url์ ๊ฐ๋ณ ์ฒ๋ฆฌ) + seen_posts.add(key) + plan = plans.setdefault(key, {**e, "dup_urls": []}) + plan["dup_urls"].append(url) + logger.info(f" ๊ต์ฒด ๋์: '{e['post'].get('title','')[:40]}'") + + report_items = [] + fixed = failed = 0 + + for key, plan in plans.items(): + post = plan["post"] + title = post.get("title", "") + content = post.get("content", "") + replaced_here = [] + + for old_url in plan["dup_urls"]: + if dry_run: + replaced_here.append({"old": old_url[:80], "new": "(dry-run)"}) + continue + new_img = _find_replacement_image(title) + if not new_img: + logger.warning(f" โ ๏ธ ๋์ฒด ์ด๋ฏธ์ง ํ๋ณด ์คํจ: '{title[:40]}' โ ํด๋น ์ด๋ฏธ์ง ๊ฑด๋๋") + continue + content = _replace_image_in_content(content, old_url, new_img) + mark_images_used([new_img.get("url", "")]) + replaced_here.append({"old": old_url[:80], "new": new_img.get("url", "")[:80]}) + + if not replaced_here: + continue + + if dry_run: + logger.info(f" [dry-run] '{title[:40]}' โ ์ด๋ฏธ์ง {len(replaced_here)}๊ฐ ๊ต์ฒด ๋์") + fixed += 1 + else: + pr = requests.patch( + f"{BLOGGER_API_BASE}/blogs/{plan['blog_id']}/posts/{post['id']}", + headers={"Authorization": f"Bearer {plan['token']}", + "Content-Type": "application/json"}, + json={"content": content}, timeout=30, + ) + if pr.status_code == 200: + logger.info(f" โ '{title[:40]}' โ ์ด๋ฏธ์ง {len(replaced_here)}๊ฐ ๊ต์ฒด ์๋ฃ") + fixed += 1 + else: + logger.error(f" โ ์ ๋ฐ์ดํธ ์คํจ [{pr.status_code}]: {pr.text[:200]}") + failed += 1 + time.sleep(1) # API rate limit ๋ฐฐ๋ ค + + report_items.append({ + "title": title[:60], + "url": post.get("url", ""), + "replaced": replaced_here, + }) + + # โโ ์ ์ฒด ๊ธฐ์กด ์ด๋ฏธ์ง URL์ used_images.json์ ์๋ (์ค์ ์คํ ์์๋ง) โโ + if not dry_run and all_urls: + mark_images_used(list(set(all_urls))) + logger.info(f"๐ used_images.json ์๋: ๊ธฐ์กด ์ด๋ฏธ์ง {len(set(all_urls))}์ข ๋ฑ๋ก") + + # โโ ๋ฆฌํฌํธ ์ ์ฅ โโ + report = { + "run_at": datetime.now(timezone.utc).isoformat(), + "dry_run": dry_run, + "scanned_posts": scanned, + "duplicate_images": len(dup_clusters), + "posts_fixed": fixed, + "posts_failed": failed, + "items": report_items[:50], + } + try: + os.makedirs(_DOCS_DATA, exist_ok=True) + with open(os.path.join(_DOCS_DATA, "duplicate_images.json"), "w", encoding="utf-8") as f: + json.dump(report, f, ensure_ascii=False, indent=2) + except Exception as e: + logger.warning(f"๋ฆฌํฌํธ ์ ์ฅ ์คํจ: {e}") + + return report + + +def main() -> int: + parser = argparse.ArgumentParser(description="๋ฐํ ๊ธ ์ค๋ณต ์ด๋ฏธ์ง ์๋ ๊ต์ฒด") + parser.add_argument("--dry-run", action="store_true", help="๊ฐ์ง๋ง ํ๊ณ ์์ ํ์ง ์์") + parser.add_argument("--blog", default="", help="ํน์ ๋ธ๋ก๊ทธ ID๋ง (๊ธฐ๋ณธ: ์ ์ฒด)") + args = parser.parse_args() + + from config import get_blog_configs + blogs = get_blog_configs() + if args.blog: + blogs = [b for b in blogs if b.get("id") == args.blog] or blogs + + report = scan_and_fix(blogs, args.dry_run) + mode = "(dry-run) " if report["dry_run"] else "" + logger.info("=" * 55) + logger.info( + f"{mode}์๋ฃ โ ๊ธ {report['scanned_posts']}๊ฑด ์ค์บ / " + f"์ค๋ณต ์ด๋ฏธ์ง {report['duplicate_images']}์ข / " + f"๊ธ {report['posts_fixed']}๊ฑด ๊ต์ฒด / ์คํจ {report['posts_failed']}๊ฑด" + ) + return 0 if report["posts_failed"] == 0 else 1 + + +if __name__ == "__main__": + sys.exit(main()) diff --git a/blog-automation/fix_duplicate_toc.py b/blog-automation/fix_duplicate_toc.py new file mode 100644 index 0000000000000..395ec636082b8 --- /dev/null +++ b/blog-automation/fix_duplicate_toc.py @@ -0,0 +1,192 @@ +"""๋ฐํ๋ ๊ธ ์ผ๊ด ์ค์บ โ ์ค๋ณต ๋ชฉ์ฐจ ์ ๊ฑฐ + +final_editor ๊ตฌ๋ฒ์ ์ด ๋ณธ๋ฌธ์ ๋ชฉ์ฐจ๋ฅผ ์ง์ ์์ฑํด, ์ ๋ก๋ ์ ์๋ ๋ชฉ์ฐจ์ +์ค๋ณต(๋ชฉ์ฐจ 2๊ฐ)๋ ๋ฐํ ๊ธ์ ์ ๋ฆฌํฉ๋๋ค. + +๋์: + 1. BLOGS_CONFIG์ ๋ชจ๋ ๋ธ๋ก๊ทธ์์ ๋ฐํ ๊ธ ์ ์ฒด ์กฐํ (Blogger API) + 2. ๋ชฉ์ฐจ ๋ธ๋ก์ด 2๊ฐ ์ด์์ธ ๊ธ ๊ฐ์ง + - ์๋ ๋ชฉ์ฐจ ๋ฐ์ค('๐ ๋ชฉ์ฐจ' div) ์ฌ๋ฌ ๊ฐ โ ์ฒซ ๋ฒ์งธ๋ง ์ ์ง + - ๋ชจ๋ธ ์์ฑ ๋ชฉ์ฐจ(์ ๋ชฉ '๋ชฉ์ฐจ' + ol/ul ๋ชฉ๋ก) โ ์ ๋ถ ์ ๊ฑฐ + 3. ๋ณ๊ฒฝ๋ ๋ณธ๋ฌธ์ PATCH๋ก ์ ๋ฐ์ดํธ (์ ๋ชฉยท๋ค๋ฅธ ๋ด์ฉ์ ์๋์ง ์์) + +Usage: + python fix_duplicate_toc.py # ์ค์ ์์ + python fix_duplicate_toc.py --dry-run # ๊ฐ์ง๋ง ํ๊ณ ์์ ์์ + python fix_duplicate_toc.py --blog blog1 +""" + +import argparse +import logging +import re +import sys +import time + +import requests +from dotenv import load_dotenv +load_dotenv() + +logging.basicConfig(level=logging.INFO, format="%(asctime)s %(levelname)s %(message)s") +logger = logging.getLogger(__name__) + +BLOGGER_API_BASE = "https://www.googleapis.com/blogger/v3" + +# ์๋ ๋ชฉ์ฐจ ๋ฐ์ค:
+_AUTO_TOC_RE = re.compile( + r'๐ ๋ชฉ์ฐจ
...
]*>\s*', + re.IGNORECASE | re.DOTALL, +) +# ๋ชจ๋ธ ์์ฑ ๋ชฉ์ฐจ: '๋ชฉ์ฐจ' ์ ๋ชฉ(h2/h3/p/strong) + ๋ฐ๋ก ๋ค ol/ul +_MODEL_TOC_RE = re.compile( + r'<(h[23]|p|div)[^>]*>\s*(?:]*>\s*)?(?:๐\s*)?๋ชฉ์ฐจ\s*(?::)?\s*' + r'(?:\s*)?\1>\s*<(ol|ul)[^>]*>.*?\2>', + re.IGNORECASE | re.DOTALL, +) + + +def count_tocs(content: str) -> int: + """๋ณธ๋ฌธ ๋ด ๋ชฉ์ฐจ ๋ธ๋ก ์ (์๋ ๋ฐ์ค + ๋ชจ๋ธ ์์ฑ).""" + auto = len(_AUTO_TOC_RE.findall(content)) + # ์๋ ๋ฐ์ค ๋ด๋ถ๊ฐ ๋ชจ๋ธ ํจํด์ ์ฌ๋งค์นญ๋์ง ์๋๋ก ์ ๊ฑฐ ํ ์นด์ดํธ + without_auto = _AUTO_TOC_RE.sub('', content) + model = len(_MODEL_TOC_RE.findall(without_auto)) + return auto + model + + +def dedupe_toc(content: str) -> str: + """๋ชฉ์ฐจ๋ฅผ ์ ํํ 1๊ฐ(์ฒซ ๋ฒ์งธ ์๋ ๋ฐ์ค ์ฐ์ )๋ง ๋จ๊น๋๋ค.""" + auto_boxes = list(_AUTO_TOC_RE.finditer(content)) + + if auto_boxes: + # ์ฒซ ๋ฒ์งธ ์๋ ๋ฐ์ค๋ง ์ ์ง, ๋๋จธ์ง ์๋ ๋ฐ์ค ์ ๊ฑฐ + first = auto_boxes[0] + keep = first.group(0) + placeholder = "\x00KEEP_TOC\x00" + content = content[:first.start()] + placeholder + content[first.end():] + content = _AUTO_TOC_RE.sub('', content) + # ๋ชจ๋ธ ์์ฑ ๋ชฉ์ฐจ ์ ๋ถ ์ ๊ฑฐ + content = _MODEL_TOC_RE.sub('', content) + content = content.replace(placeholder, keep) + else: + # ์๋ ๋ฐ์ค ์์: ๋ชจ๋ธ ๋ชฉ์ฐจ๊ฐ 2๊ฐ ์ด์์ด๋ฉด ์ฒซ ๋ฒ์งธ๋ง ์ ์ง + models = list(_MODEL_TOC_RE.finditer(content)) + if len(models) > 1: + first = models[0] + keep = first.group(0) + placeholder = "\x00KEEP_TOC\x00" + content = content[:first.start()] + placeholder + content[first.end():] + content = _MODEL_TOC_RE.sub('', content) + content = content.replace(placeholder, keep) + return content + + +def _iter_posts(api_base: str, blog_id: str, token: str): + """๋ธ๋ก๊ทธ์ ๋ฐํ(live) ๊ธ์ ์ ๋ถ ์ํํฉ๋๋ค.""" + page_token = "" + while True: + params = { + "maxResults": 100, + "status": "live", + "fetchBodies": "true", + "fields": "nextPageToken,items(id,title,url,content)", + } + if page_token: + params["pageToken"] = page_token + r = requests.get( + f"{api_base}/blogs/{blog_id}/posts", + headers={"Authorization": f"Bearer {token}"}, + params=params, timeout=30, + ) + if r.status_code != 200: + logger.error(f"๊ธ ๋ชฉ๋ก ์กฐํ ์คํจ [{r.status_code}]: {r.text[:200]}") + return + data = r.json() + yield from data.get("items", []) + page_token = data.get("nextPageToken", "") + if not page_token: + return + + +def fix_blog(blog_cfg: dict, dry_run: bool) -> dict: + from blogger_uploader import _get_access_token + + name = blog_cfg.get("name") or blog_cfg.get("id", "") + blogger_blog_id = blog_cfg.get("blog_id", "") + if not blogger_blog_id: + logger.warning(f"[{name}] blog_id ์์ โ ๊ฑด๋๋") + return {"scanned": 0, "fixed": 0, "failed": 0} + + token = _get_access_token(blog_cfg) + if not token: + logger.error(f"[{name}] ์ก์ธ์ค ํ ํฐ ์์ โ ๊ฑด๋๋") + return {"scanned": 0, "fixed": 0, "failed": 0} + + scanned = fixed = failed = 0 + logger.info(f"โโ [{name}] ๋ฐํ ๊ธ ์ค์บ ์์ โโ") + for post in _iter_posts(BLOGGER_API_BASE, blogger_blog_id, token): + scanned += 1 + content = post.get("content", "") + n = count_tocs(content) + if n <= 1: + continue + + title = post.get("title", "")[:50] + logger.info(f" ๐ ๋ชฉ์ฐจ {n}๊ฐ ๋ฐ๊ฒฌ: '{title}' ({post.get('url','')})") + + new_content = dedupe_toc(content) + remain = count_tocs(new_content) + if remain != 1 or new_content == content: + logger.warning(f" โ ๏ธ ์ ๋ฆฌ ๊ฒฐ๊ณผ ์ด์ (๋จ์ ๋ชฉ์ฐจ {remain}๊ฐ) โ ๊ฑด๋๋") + failed += 1 + continue + + if dry_run: + logger.info(" [dry-run] ์์ ๋์ (์ค์ ๋ณ๊ฒฝ ์์)") + fixed += 1 + continue + + pr = requests.patch( + f"{BLOGGER_API_BASE}/blogs/{blogger_blog_id}/posts/{post['id']}", + headers={"Authorization": f"Bearer {token}", "Content-Type": "application/json"}, + json={"content": new_content}, timeout=30, + ) + if pr.status_code == 200: + logger.info(f" โ ์ค๋ณต ๋ชฉ์ฐจ ์ ๊ฑฐ ์๋ฃ ({n}๊ฐ โ 1๊ฐ)") + fixed += 1 + else: + logger.error(f" โ ์ ๋ฐ์ดํธ ์คํจ [{pr.status_code}]: {pr.text[:200]}") + failed += 1 + time.sleep(1) # API rate limit ๋ฐฐ๋ ค + + logger.info(f"โโ [{name}] ์ค์บ {scanned}๊ฑด / ์ ๋ฆฌ {fixed}๊ฑด / ์คํจ {failed}๊ฑด โโ") + return {"scanned": scanned, "fixed": fixed, "failed": failed} + + +def main() -> int: + parser = argparse.ArgumentParser(description="๋ฐํ ๊ธ ์ค๋ณต ๋ชฉ์ฐจ ์ ๋ฆฌ") + parser.add_argument("--dry-run", action="store_true", help="๊ฐ์ง๋ง ํ๊ณ ์์ ํ์ง ์์") + parser.add_argument("--blog", default="", help="ํน์ ๋ธ๋ก๊ทธ ID๋ง (๊ธฐ๋ณธ: ์ ์ฒด)") + args = parser.parse_args() + + from config import get_blog_configs + blogs = get_blog_configs() + if args.blog: + blogs = [b for b in blogs if b.get("id") == args.blog] or blogs + + total = {"scanned": 0, "fixed": 0, "failed": 0} + for cfg in blogs: + result = fix_blog(cfg, args.dry_run) + for k in total: + total[k] += result[k] + + mode = "(dry-run) " if args.dry_run else "" + logger.info("=" * 55) + logger.info( + f"{mode}์ ์ฒด ์๋ฃ โ ์ค์บ {total['scanned']}๊ฑด / " + f"์ค๋ณต ๋ชฉ์ฐจ ์ ๋ฆฌ {total['fixed']}๊ฑด / ์คํจ {total['failed']}๊ฑด" + ) + return 0 if total["failed"] == 0 else 1 + + +if __name__ == "__main__": + sys.exit(main()) diff --git a/blog-automation/fix_existing_posts.py b/blog-automation/fix_existing_posts.py new file mode 100644 index 0000000000000..fc4b28a56ed66 --- /dev/null +++ b/blog-automation/fix_existing_posts.py @@ -0,0 +1,267 @@ +""" +๊ธฐ์กด Blogger ํฌ์คํธ AdSense ๊ธฐ์ค ๋ฏธ๋ฌ ๊ธ ์ผ๊ด ์์ ์คํฌ๋ฆฝํธ + +์ฌ์ฉ๋ฒ: + python fix_existing_posts.py [--batch-size N] [--blog-id blog1] [--min-words 4000] [--dry-run] + +๋์: + 1. docs/data/post_registry.json์์ published + wordCount < min-words ํฌ์คํธ ๋ชฉ๋ก ์กฐํ + 2. ๊ฐ ํฌ์คํธ์ Blogger ์ซ์ ID๋ฅผ URL๋ก ์กฐํ + 3. ํค์๋ ๊ธฐ๋ฐ์ผ๋ก ์ ์ฝํ ์ธ ์์ฑ (4500์+ ๋ชฉํ) + 4. AdSense ๊ฒ์ฆ ํต๊ณผ ์ Blogger API๋ก ์ ๋ฐ์ดํธ + 5. ๊ฒฐ๊ณผ๋ฅผ fix_history.json์ ๊ธฐ๋ก +""" + +import argparse +import json +import logging +import os +import sys +import time +from datetime import datetime +from pathlib import Path + +sys.path.insert(0, os.path.dirname(os.path.abspath(__file__))) + +os.makedirs("logs", exist_ok=True) + +logging.basicConfig( + level=logging.INFO, + format="%(asctime)s [%(levelname)s] %(name)s โ %(message)s", + handlers=[ + logging.StreamHandler(sys.stdout), + logging.FileHandler("logs/fix_posts.log", encoding="utf-8"), + ], +) +logger = logging.getLogger("fix_posts") + +from config import get_blog_configs, ADSENSE_MIN_SCORE +from content_generator import generate_post +from blogger_uploader import get_post_id_by_url, update_post +from adsense_validator import validate_adsense + +# โโ ๊ฒฝ๋ก ์ค์ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ +_ROOT = Path(__file__).parent.parent +_REGISTRY_PATH = _ROOT / "docs/data/post_registry.json" +_FIX_HISTORY_PATH = Path(__file__).parent / "logs/fix_history.json" + + +def _load_registry() -> list[dict]: + if not _REGISTRY_PATH.exists(): + logger.error(f"post_registry.json ์์: {_REGISTRY_PATH}") + return [] + return json.loads(_REGISTRY_PATH.read_text(encoding="utf-8")) + + +def _load_fix_history() -> dict: + if _FIX_HISTORY_PATH.exists(): + try: + return json.loads(_FIX_HISTORY_PATH.read_text(encoding="utf-8")) + except Exception: + pass + return {"fixed": [], "failed": [], "skipped": []} + + +def _save_fix_history(history: dict) -> None: + _FIX_HISTORY_PATH.write_text(json.dumps(history, ensure_ascii=False, indent=2), encoding="utf-8") + + +def _get_failing_posts(registry: list[dict], min_words: int, blog_id_filter: str | None) -> list[dict]: + """AdSense ๊ธฐ์ค ๋ฏธ๋ฌ published ํฌ์คํธ ๋ชฉ๋ก ๋ฐํ.""" + failing = [] + for p in registry: + if p.get("status") != "published": + continue + if not p.get("blogUrl"): + continue + wc = p.get("wordCount") or 0 + if wc >= min_words: + continue + if blog_id_filter and p.get("blogId") != blog_id_filter: + continue + failing.append(p) + # ์งง์ ๊ฒ๋ถํฐ ์ฐ์ ์ฒ๋ฆฌ + return sorted(failing, key=lambda p: p.get("wordCount") or 0) + + +def _already_fixed(post_id: str, history: dict) -> bool: + return any(r.get("post_id") == post_id for r in history.get("fixed", [])) + + +def main() -> None: + parser = argparse.ArgumentParser(description="AdSense ๋ฏธ๋ฌ ํฌ์คํธ ์ผ๊ด ์์ ") + parser.add_argument("--batch-size", type=int, default=10, help="ํ ๋ฒ์ ์ฒ๋ฆฌํ ํฌ์คํธ ์ (๊ธฐ๋ณธ 10)") + parser.add_argument("--blog-id", help="ํน์ ๋ธ๋ก๊ทธ๋ง ์ฒ๋ฆฌ (์: blog1)") + parser.add_argument("--min-words", type=int, default=4000, help="์ต์ ๊ธ์ ์ ๊ธฐ์ค (๊ธฐ๋ณธ 4000)") + parser.add_argument("--dry-run", action="store_true", help="์ค์ ์ ๋ฐ์ดํธ ์์ด ๋์๋ง ์ถ๋ ฅ") + parser.add_argument("--offset", type=int, default=0, help="์ฒ๋ฆฌ ์์ ์ธ๋ฑ์ค (pagination์ฉ)") + args = parser.parse_args() + + registry = _load_registry() + if not registry: + logger.error("๋ ์ง์คํธ๋ฆฌ ๋ก๋ ์คํจ") + sys.exit(1) + + failing = _get_failing_posts(registry, args.min_words, args.blog_id) + history = _load_fix_history() + + # ์ด๋ฏธ ์์ ๋ ๊ฒ ์ ์ธ + remaining = [p for p in failing if not _already_fixed(p.get("post_id", ""), history)] + batch = remaining[args.offset : args.offset + args.batch_size] + + logger.info(f"AdSense ๋ฏธ๋ฌ ๊ฒ์ ํฌ์คํธ: ์ ์ฒด {len(failing)}๊ฐ / ๋ฏธ์์ {len(remaining)}๊ฐ") + logger.info(f"์ด๋ฒ ๋ฐฐ์น: {len(batch)}๊ฐ (offset={args.offset}, batch_size={args.batch_size})") + if args.dry_run: + logger.info("=== DRY RUN ๋ชจ๋ ===") + + if not batch: + logger.info("์ฒ๋ฆฌํ ํฌ์คํธ ์์ โ ์๋ฃ") + return + + blog_configs = {cfg["id"]: cfg for cfg in get_blog_configs()} + + processed = success = failed_count = skipped = 0 + + for post_info in batch: + post_id = post_info.get("post_id", "unknown") + title = post_info.get("title", "?")[:50] + keyword = post_info.get("keyword", "") + blog_id_key = post_info.get("blogId", "blog1") + blog_url = post_info.get("blogUrl", "") + old_wc = post_info.get("wordCount") or 0 + + logger.info(f"\n[{processed + 1}/{len(batch)}] '{title}' ({old_wc}์) โ {blog_id_key}") + + # ์ ๋ชฉ A/B ํ ์คํธ ์งํ ์ค์ด๋ฉด ๋ณธ๋ฌธ ์์ ๊ธ์ง (์ ๋ชฉยท๋ณธ๋ฌธ ๋์ ๋ณ๊ฒฝ ๋ฐฉ์ง) + try: + from title_ab_tracker import title_changed_recently + if title_changed_recently(blog_url): + logger.info(" ์ ๋ชฉ A/B ํ ์คํธ ์งํ ์ค (28์ผ ๋ฏธ๊ฒฝ๊ณผ) โ ๋ณธ๋ฌธ ์์ ๊ฑด๋๋") + history["skipped"].append({"post_id": post_id, "reason": "title_ab_in_progress", "at": datetime.now().isoformat()}) + skipped += 1 + processed += 1 + continue + except Exception: + pass + + blog_config = blog_configs.get(blog_id_key) + if not blog_config and blog_id_key == "default": + # ๊ตฌํ ํฌ์คํธ๋ blogId="default"๋ก ๊ธฐ๋ก๋จ โ blog1๋ก ํด๋ฐฑ + blog_config = blog_configs.get("blog1") + if blog_config: + logger.info(f" blogId='default' โ blog1 ํด๋ฐฑ ์ ์ฉ") + if not blog_config: + logger.warning(f" ๋ธ๋ก๊ทธ ์ค์ ์์: {blog_id_key} โ ๊ฑด๋๋") + history["skipped"].append({"post_id": post_id, "reason": "no_blog_config", "at": datetime.now().isoformat()}) + skipped += 1 + processed += 1 + continue + + # โ Blogger ์ซ์ ํฌ์คํธ ID ์กฐํ + blogger_post_id = get_post_id_by_url(blog_url, blog_config) + if not blogger_post_id: + logger.warning(f" Blogger ํฌ์คํธ ID ์กฐํ ์คํจ: {blog_url}") + history["failed"].append({"post_id": post_id, "reason": "id_lookup_failed", "url": blog_url, "at": datetime.now().isoformat()}) + failed_count += 1 + processed += 1 + time.sleep(2) + continue + + logger.info(f" Blogger ID: {blogger_post_id}") + + # โก ์ ์ฝํ ์ธ ์์ฑ (๊ธฐ์กด labels ์ฌํ์ฉ) + labels = post_info.get("labels", []) + new_post_data = generate_post( + keyword=keyword, + blog_config=blog_config, + ) + + if not new_post_data: + logger.warning(f" ์ฝํ ์ธ ์์ฑ ์คํจ") + history["failed"].append({"post_id": post_id, "reason": "generation_failed", "keyword": keyword, "at": datetime.now().isoformat()}) + failed_count += 1 + processed += 1 + time.sleep(3) + continue + + # ๊ธฐ์กด ํฌ์คํธ์ ๋ผ๋ฒจ์ ์ ์ฝํ ์ธ ์ ๋ณํฉ (๊ฒ์ ์ ์ ์นดํ ๊ณ ๋ฆฌ ์ ์ง) + if labels: + merged = list(dict.fromkeys(labels + new_post_data.get("labels", []))) + new_post_data["labels"] = merged[:20] # Blogger ๋ผ๋ฒจ ์ต๋ 20๊ฐ + + new_wc = new_post_data.get("word_count", 0) + logger.info(f" ์ ์ฝํ ์ธ ์์ฑ ์๋ฃ: {new_wc}์") + + if new_wc < 4000: + logger.warning(f" ์์ฑ ๋ถ๋ ๋ถ์กฑ ({new_wc}์ < 4000์) โ ๊ฑด๋๋") + history["skipped"].append({"post_id": post_id, "reason": f"too_short_{new_wc}", "at": datetime.now().isoformat()}) + skipped += 1 + processed += 1 + time.sleep(2) + continue + + # โข AdSense ๊ฒ์ฆ + validation = validate_adsense(new_post_data) + score = validation.get("score", 0) + rec = validation.get("recommendation", "reject") + logger.info(f" AdSense ๊ฒ์ฆ: {rec.upper()} ({score}/100)") + + if rec == "reject": + logger.warning(f" AdSense ๊ฒ์ฆ REJECT โ ๊ฑด๋๋") + history["skipped"].append({"post_id": post_id, "reason": f"adsense_reject_{score}", "at": datetime.now().isoformat()}) + skipped += 1 + processed += 1 + _save_fix_history(history) + time.sleep(2) + continue + + if rec == "review" or score < ADSENSE_MIN_SCORE: + logger.warning(f" AdSense ์ ์ ๋ฏธ๋ฌ ({score}/100 < {ADSENSE_MIN_SCORE}) โ ๊ฑด๋๋") + history["skipped"].append({"post_id": post_id, "reason": f"adsense_score_{score}", "at": datetime.now().isoformat()}) + skipped += 1 + processed += 1 + _save_fix_history(history) + time.sleep(2) + continue + + # โฃ ์ ๋ฐ์ดํธ + if args.dry_run: + logger.info(f" [DRY RUN] ์ ๋ฐ์ดํธ ์์ : {new_wc}์, AdSense {score}/100") + success += 1 + else: + result = update_post(blogger_post_id, new_post_data, blog_config) + if result: + new_url = result.get("url", blog_url) + logger.info(f" โ ์ ๋ฐ์ดํธ ์ฑ๊ณต: {old_wc}์ โ {new_wc}์ | {new_url}") + history["fixed"].append({ + "post_id": post_id, + "title": new_post_data.get("title", title), + "keyword": keyword, + "blog_id": blog_id_key, + "old_word_count": old_wc, + "new_word_count": new_wc, + "adsense_score": score, + "url": new_url, + "at": datetime.now().isoformat(), + }) + success += 1 + else: + logger.error(f" โ ์ ๋ฐ์ดํธ ์คํจ") + history["failed"].append({"post_id": post_id, "reason": "update_api_failed", "at": datetime.now().isoformat()}) + failed_count += 1 + + processed += 1 + _save_fix_history(history) + time.sleep(5) # Blogger API rate limit ๋ฐฉ์ง + + # ์ต์ข ์์ฝ + logger.info("\n" + "=" * 60) + logger.info(f"์๋ฃ: ์ฑ๊ณต {success} / ์คํจ {failed_count} / ๊ฑด๋๋ {skipped} / ์ ์ฒด {processed}") + logger.info(f"๋์ ์์ ์๋ฃ: {len(history['fixed'])}๊ฐ / ์ ์ฒด ๋ฏธ๋ฌ {len(failing)}๊ฐ") + remaining_after = len(remaining) - success + logger.info(f"๋จ์ ๋ฏธ์์ : {remaining_after}๊ฐ") + _save_fix_history(history) + + +if __name__ == "__main__": + main() diff --git a/blog-automation/fix_trigger.json b/blog-automation/fix_trigger.json new file mode 100644 index 0000000000000..42eff56e295ce --- /dev/null +++ b/blog-automation/fix_trigger.json @@ -0,0 +1,7 @@ +{ + "batch_size": 10, + "blog_id": "", + "offset": 0, + "dry_run": false, + "description": "AdSense ๋ฏธ๋ฌ ํฌ์คํธ ์ผ๊ด ์์ - ๋ฐฐ์น 3 (max_tokens=24000 + ์ฌ์๋ escalation ์ ์ฉ)" +} diff --git a/blog-automation/gsc_fetcher.py b/blog-automation/gsc_fetcher.py index 2cd3b9fbe9439..07836107253cf 100644 --- a/blog-automation/gsc_fetcher.py +++ b/blog-automation/gsc_fetcher.py @@ -44,9 +44,17 @@ def _get_access_token() -> str | None: # ์บ์ # โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ -def _load_cache() -> dict | None: +def _cache_file_for(site_url: str) -> str: + """์ฌ์ดํธ๋ณ ์บ์ ํ์ผ ๊ฒฝ๋ก โ ๋ฉํฐ๋ธ๋ก๊ทธ์์ ์บ์๊ฐ ์๋ก ๋ฎ์ด์ฐ์ง ์๋๋ก ๋ถ๋ฆฌ.""" + import hashlib + suffix = hashlib.md5(site_url.encode()).hexdigest()[:8] if site_url else "default" + return os.path.join(os.path.dirname(__file__), "logs", f"gsc_cache_{suffix}.json") + + +def _load_cache(site_url: str = "") -> dict | None: + path = _cache_file_for(site_url) if site_url else CACHE_FILE try: - with open(CACHE_FILE, encoding="utf-8") as f: + with open(path, encoding="utf-8") as f: data = json.load(f) fetched = datetime.fromisoformat(data.get("fetched_at", "2000-01-01")) if (datetime.now() - fetched).total_seconds() < CACHE_TTL_HOURS * 3600: @@ -57,9 +65,10 @@ def _load_cache() -> dict | None: return None -def _save_cache(data: dict) -> None: - os.makedirs(os.path.dirname(CACHE_FILE), exist_ok=True) - with open(CACHE_FILE, "w", encoding="utf-8") as f: +def _save_cache(data: dict, site_url: str = "") -> None: + path = _cache_file_for(site_url) if site_url else CACHE_FILE + os.makedirs(os.path.dirname(path), exist_ok=True) + with open(path, "w", encoding="utf-8") as f: json.dump(data, f, ensure_ascii=False, indent=2) @@ -76,7 +85,7 @@ def fetch_search_analytics(site_url: str, days: int = 30, row_limit: int = 100) logger.debug("GSC_SITE_URL ๋ฏธ์ค์ โ GSC ์ฐ๋ ์๋ต") return None - cached = _load_cache() + cached = _load_cache(site_url) if cached and cached.get("site_url") == site_url: return cached @@ -163,7 +172,7 @@ def fetch_search_analytics(site_url: str, days: int = 30, row_limit: int = 100) "total_rows": len(rows), } - _save_cache(result) + _save_cache(result, site_url) logger.info(f"GSC ๋ฐ์ดํฐ ์์ง ์๋ฃ: {len(rows)}๊ฐ ์ฟผ๋ฆฌ / {len(category_performance)}๊ฐ ์นดํ ๊ณ ๋ฆฌ") return result diff --git a/blog-automation/gsc_indexing.py b/blog-automation/gsc_indexing.py new file mode 100644 index 0000000000000..2eb44fe8584ea --- /dev/null +++ b/blog-automation/gsc_indexing.py @@ -0,0 +1,240 @@ +"""๊ตฌ๊ธ ์์ธ ๊ฐ์ โ ์ฌ์ดํธ๋งต ์ฌ์ ์ถ + ์์ธ ์ํ ์ถ์ + +๋ฐํ ์งํ ๊ฒ์ ๋ ธ์ถ๊น์ง ๊ฑธ๋ฆฌ๋ ์๊ฐ์ ์ค์ ๋๋ค: + 1. submit_sitemaps: ๊ฐ ๋ธ๋ก๊ทธ์ sitemap.xml์ GSC์ (์ฌ)์ ์ถ + โ ๊ตฌ๊ธ ํฌ๋กค๋ฌ๊ฐ ์ ๊ธ์ ๋ ๋นจ๋ฆฌ ๋ฐ๊ฒฌ + 2. inspect_recent: URL ๊ฒ์ฌ API๋ก ์ต๊ทผ ๋ฐํ ๊ธ์ ์์ธ ์ํ ํ์ธ + โ docs/data/index_status.json ๋ฆฌํฌํธ (๋์๋ณด๋ ํ์์ฉ) + +์ฌ์ฉ๋ฒ: + python gsc_indexing.py # ์ฌ์ดํธ๋งต ์ ์ถ + ์ต๊ทผ 20๊ฑด ๊ฒ์ฌ + python gsc_indexing.py --submit # ์ฌ์ดํธ๋งต ์ ์ถ๋ง + python gsc_indexing.py --inspect 30 # ์์ธ ๊ฒ์ฌ๋ง (์ต๊ทผ 30๊ฑด) + python gsc_indexing.py --blog blog1 # ํน์ ๋ธ๋ก๊ทธ๋ง + +ํ์ ๊ถํ: GOOGLE_REFRESH_TOKEN์ webmasters ์ค์ฝํ (gsc_register์ ๋์ผ) +""" + +import argparse +import json +import logging +import os +import sys +import time +from datetime import datetime, timezone +from urllib.parse import quote + +import requests +from dotenv import load_dotenv +load_dotenv() + +logging.basicConfig(level=logging.INFO, format="%(asctime)s %(levelname)s %(message)s") +logger = logging.getLogger(__name__) + +TOKEN_URL = "https://oauth2.googleapis.com/token" +GSC_API_BASE = "https://www.googleapis.com/webmasters/v3" +INSPECT_API = "https://searchconsole.googleapis.com/v1/urlInspection/index:inspect" +_DOCS_DATA = os.path.join(os.path.dirname(__file__), "..", "docs", "data") + + +def _access_token() -> str | None: + from config import BLOGGER_CLIENT_ID, BLOGGER_CLIENT_SECRET, BLOGGER_REFRESH_TOKEN + try: + resp = requests.post(TOKEN_URL, data={ + "client_id": BLOGGER_CLIENT_ID, + "client_secret": BLOGGER_CLIENT_SECRET, + "refresh_token": BLOGGER_REFRESH_TOKEN, + "grant_type": "refresh_token", + }, timeout=15) + if resp.status_code == 200: + return resp.json().get("access_token") + logger.error(f"ํ ํฐ ๋ฐ๊ธ ์คํจ: {resp.status_code} {resp.text[:200]}") + except Exception as e: + logger.error(f"ํ ํฐ ์์ฒญ ์ค๋ฅ: {e}") + return None + + +def _site_url_for(cfg: dict) -> str: + """๋ธ๋ก๊ทธ ์ค์ ์์ GSC ์ฌ์ดํธ URL์ ๊ฒฐ์ ํฉ๋๋ค.""" + site = (cfg.get("gsc_site_url") or cfg.get("url") or "").strip() + if site and not site.endswith("/"): + site += "/" + return site + + +def _domain_property_for(site_url: str) -> str: + """URL-ํ๋ฆฌํฝ์ค ์ฌ์ดํธ URL์์ ๋๋ฉ์ธ ์์ฑ(sc-domain:) ์๋ณ์๋ฅผ ๋ง๋ญ๋๋ค. + + ์ปค์คํ ๋๋ฉ์ธ์ Search Console์ ๋๋ฉ์ธ ์์ฑ์ผ๋ก ๋ฑ๋ก๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ + (์: hoguwhat.com), URL-ํ๋ฆฌํฝ์ค ํ์(https://www.hoguwhat.com/)์ผ๋ก + ํธ์ถํ๋ฉด 403์ด ๋จ โ ์ด ๊ฒฝ์ฐ sc-domain: ํ์์ผ๋ก ์ฌ์๋ํด์ผ ํจ. + """ + from urllib.parse import urlparse + netloc = urlparse(site_url).netloc.removeprefix("www.") + return f"sc-domain:{netloc}" if netloc else site_url + + +def submit_sitemaps(blogs: list[dict], token: str | None = None) -> dict: + """๊ฐ ๋ธ๋ก๊ทธ์ sitemap.xml์ GSC์ (์ฌ)์ ์ถํฉ๋๋ค. ๋ฉฑ๋ฑ โ ๋ฐ๋ณต ํธ์ถ ์์ .""" + token = token or _access_token() + if not token: + return {"submitted": 0, "failed": 0} + submitted = failed = 0 + for cfg in blogs: + site = _site_url_for(cfg) + name = cfg.get("name") or cfg.get("id", "?") + if not site: + logger.info(f"[{name}] ์ฌ์ดํธ URL ์์ โ ๊ฑด๋๋ (blogs.json์ url ๋๋ gsc_site_url ์ค์ )") + continue + sitemap = site + "sitemap.xml" + + def _submit(property_id: str): + return requests.put( + f"{GSC_API_BASE}/sites/{quote(property_id, safe='')}/sitemaps/{quote(sitemap, safe='')}", + headers={"Authorization": f"Bearer {token}"}, timeout=20, + ) + + try: + r = _submit(site) + if r.status_code == 403: + domain_property = _domain_property_for(site) + logger.info(f"[{name}] URL-ํ๋ฆฌํฝ์ค ์์ฑ 403 โ ๋๋ฉ์ธ ์์ฑ์ผ๋ก ์ฌ์๋: {domain_property}") + r = _submit(domain_property) + if r.status_code in (200, 204): + logger.info(f"โ [{name}] ์ฌ์ดํธ๋งต ์ ์ถ: {sitemap}") + submitted += 1 + else: + logger.warning(f"โ ๏ธ [{name}] ์ฌ์ดํธ๋งต ์ ์ถ ์คํจ [{r.status_code}]: {r.text[:150]}") + failed += 1 + except Exception as e: + logger.warning(f"โ ๏ธ [{name}] ์ฌ์ดํธ๋งต ์ ์ถ ์ค๋ฅ: {e}") + failed += 1 + return {"submitted": submitted, "failed": failed} + + +def _recent_published(blogs: list[dict], limit: int) -> list[dict]: + """๋ ์ง์คํธ๋ฆฌ์์ ์ต๊ทผ ๋ฐํ ๊ธ์ (๋ธ๋ก๊ทธ ์ค์ ๊ณผ ํจ๊ป) ๋ฐํํฉ๋๋ค.""" + reg_path = os.path.join(os.path.dirname(__file__), "logs", "post_registry.json") + try: + registry = json.load(open(reg_path, encoding="utf-8")) + except Exception: + return [] + by_id = {b.get("id"): b for b in blogs} + items = [] + for p in registry: + if p.get("status") != "published" or not p.get("blogUrl"): + continue + cfg = by_id.get(p.get("blogId")) or {} + site = _site_url_for(cfg) + if not site: + # ๋ธ๋ก๊ทธ ๋งค์นญ ์คํจ ์ URL ๋๋ฉ์ธ์ผ๋ก ์ถ์ + from urllib.parse import urlparse + u = urlparse(p["blogUrl"]) + site = f"{u.scheme}://{u.netloc}/" + items.append({ + "title": p.get("title", "")[:60], + "url": p["blogUrl"], + "site": site, + "blog": cfg.get("name") or p.get("blogId", "?"), + "published_at": p.get("publishedAt") or p.get("createdAt", ""), + }) + items.sort(key=lambda x: x.get("published_at") or "", reverse=True) + return items[:limit] + + +def inspect_recent(blogs: list[dict], limit: int = 20, token: str | None = None) -> dict: + """์ต๊ทผ ๋ฐํ ๊ธ์ ์์ธ ์ํ๋ฅผ URL ๊ฒ์ฌ API๋ก ํ์ธํ๊ณ ๋ฆฌํฌํธ๋ฅผ ์ ์ฅํฉ๋๋ค.""" + token = token or _access_token() + if not token: + return {} + posts = _recent_published(blogs, limit) + if not posts: + logger.info("๊ฒ์ฌํ ๋ฐํ ๊ธ์ด ์์ต๋๋ค") + return {} + + results = [] + counts = {"indexed": 0, "not_indexed": 0, "unknown": 0} + for p in posts: + try: + def _inspect(site_id: str): + return requests.post( + INSPECT_API, + headers={"Authorization": f"Bearer {token}", "Content-Type": "application/json"}, + json={"inspectionUrl": p["url"], "siteUrl": site_id}, + timeout=20, + ) + + r = _inspect(p["site"]) + if r.status_code == 403: + r = _inspect(_domain_property_for(p["site"])) + if r.status_code != 200: + logger.debug(f"๊ฒ์ฌ ์คํจ [{r.status_code}]: {p['url']} {r.text[:100]}") + results.append({**p, "verdict": "unknown", "coverage": f"API {r.status_code}"}) + counts["unknown"] += 1 + time.sleep(0.5) + continue + idx = r.json().get("inspectionResult", {}).get("indexStatusResult", {}) + verdict = idx.get("verdict", "VERDICT_UNSPECIFIED") + coverage = idx.get("coverageState", "") + last_crawl = idx.get("lastCrawlTime", "") + indexed = verdict == "PASS" + counts["indexed" if indexed else "not_indexed"] += 1 + mark = "๐ข" if indexed else "๐ก" + logger.info(f"{mark} [{p['blog']}] {coverage or verdict}: {p['title'][:40]}") + results.append({**p, "verdict": "indexed" if indexed else "not_indexed", + "coverage": coverage, "last_crawl": last_crawl[:10]}) + except Exception as e: + logger.debug(f"๊ฒ์ฌ ์ค๋ฅ: {p['url']} โ {e}") + results.append({**p, "verdict": "unknown", "coverage": str(e)[:60]}) + counts["unknown"] += 1 + time.sleep(0.5) # API rate limit ๋ฐฐ๋ ค (๋ถ๋น 60) + + report = { + "checked_at": datetime.now(timezone.utc).isoformat(), + "total": len(results), + **counts, + "items": results, + } + try: + os.makedirs(_DOCS_DATA, exist_ok=True) + with open(os.path.join(_DOCS_DATA, "index_status.json"), "w", encoding="utf-8") as f: + json.dump(report, f, ensure_ascii=False, indent=2) + logger.info( + f"๐ ์์ธ ๋ฆฌํฌํธ ์ ์ฅ: ์์ธ๋จ {counts['indexed']} / " + f"๋ฏธ์์ธ {counts['not_indexed']} / ํ์ธ๋ถ๊ฐ {counts['unknown']}" + ) + except Exception as e: + logger.warning(f"๋ฆฌํฌํธ ์ ์ฅ ์คํจ: {e}") + return report + + +def main() -> int: + parser = argparse.ArgumentParser(description="๊ตฌ๊ธ ์์ธ ๊ฐ์") + parser.add_argument("--submit", action="store_true", help="์ฌ์ดํธ๋งต ์ ์ถ๋ง") + parser.add_argument("--inspect", type=int, nargs="?", const=20, default=None, + help="์์ธ ๊ฒ์ฌ๋ง (์ต๊ทผ N๊ฑด, ๊ธฐ๋ณธ 20)") + parser.add_argument("--blog", default="", help="ํน์ ๋ธ๋ก๊ทธ ID๋ง") + args = parser.parse_args() + + from config import get_blog_configs + blogs = get_blog_configs() + if args.blog: + blogs = [b for b in blogs if b.get("id") == args.blog] or blogs + + token = _access_token() + if not token: + logger.warning("GSC ํ ํฐ ๋ฐ๊ธ ์คํจ โ ์์ธ ์์ฒญ ๊ฑด๋๋ (๊ฒ์์๋ ์ํฅ ์์)") + return 0 + + do_submit = args.submit or args.inspect is None + do_inspect = args.inspect is not None or not args.submit + + if do_submit: + submit_sitemaps(blogs, token) + if do_inspect: + inspect_recent(blogs, args.inspect or 20, token) + return 0 + + +if __name__ == "__main__": + sys.exit(main()) diff --git a/blog-automation/gsc_optimizer.py b/blog-automation/gsc_optimizer.py index 829a8d298e77c..68f272c31ab20 100644 --- a/blog-automation/gsc_optimizer.py +++ b/blog-automation/gsc_optimizer.py @@ -27,6 +27,7 @@ import anthropic import requests from dotenv import load_dotenv +from config import claude_text load_dotenv() @@ -77,12 +78,13 @@ def _google_token() -> str | None: # GSC โ ์ ์ฑ๊ณผ ์ฟผ๋ฆฌ ์ถ์ถ # โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ -def fetch_low_ctr_queries(token: str, days: int = 30) -> list[dict]: +def fetch_low_ctr_queries(token: str, days: int = 30, site_url: str = "") -> list[dict]: """ GSC ์ฟผ๋ฆฌ ๋ฐ์ดํฐ์์ ๋ ธ์ถ >= IMPRESSION_MIN & CTR < CTR_THRESHOLD% ์ฟผ๋ฆฌ๋ฅผ ๋ฐํ. ๋ฐํ ํ์: [{"query": str, "impressions": int, "ctr": float, "position": float}, ...] + site_url ๋ฏธ์ง์ ์ ์ ์ญ GSC_SITE_URL์ ์ฌ์ฉํฉ๋๋ค. """ - site_url = os.getenv("GSC_SITE_URL", "") + site_url = site_url or os.getenv("GSC_SITE_URL", "") if not site_url: logger.error("GSC_SITE_URL ํ๊ฒฝ๋ณ์ ๋ฏธ์ค์ ") return [] @@ -164,11 +166,15 @@ def match_posts_to_queries(posts: list[dict], queries: list[dict]) -> list[dict] q_words = [w for w in query_data["query"].lower().split() if len(w) >= 2] if not q_words: continue + # ์ฟผ๋ฆฌ๊ฐ ์์ง๋ ์ฌ์ดํธ์ ๊ฐ์ ๋ธ๋ก๊ทธ์ ํฌ์คํธ๋ง ๋งค์นญ (๋ธ๋ก๊ทธ ๊ฐ ๊ต์ฐจ ์ค์ผ ๋ฐฉ์ง) + q_site = (query_data.get("site_url") or "").rstrip("/") for post in posts: url = post.get("blogUrl", "") if not url or url in already_done: continue + if q_site and not url.startswith(q_site): + continue keyword_text = (post.get("keyword", "") or "").lower() tags_text = " ".join(post.get("tags", []) or []).lower() @@ -199,14 +205,15 @@ def _blog_id() -> str: return os.getenv("BLOGGER_BLOG_ID", "").strip() -def get_post_id_by_url(token: str, blog_url: str) -> str | None: - """blogUrl ์ path ๋ก Blogger bypath API ์กฐํ -> post ID ๋ฐํ""" +def get_post_id_by_url(token: str, blog_url: str, blog_id: str = "") -> str | None: + """blogUrl ์ path ๋ก Blogger bypath API ์กฐํ -> post ID ๋ฐํ. + blog_id ๋ฏธ์ง์ ์ ์ ์ญ BLOGGER_BLOG_ID ์ฌ์ฉ.""" parsed = re.search(r"blogspot\.com(/.+)", blog_url) if not parsed: logger.debug(f"blogspot URL ์๋, ๊ฑด๋๋: {blog_url}") return None path = parsed.group(1).rstrip("/") - bid = _blog_id() + bid = blog_id or _blog_id() if not bid: return None try: @@ -224,9 +231,9 @@ def get_post_id_by_url(token: str, blog_url: str) -> str | None: return None -def update_blogger_title(token: str, post_id: str, new_title: str) -> bool: - """Blogger PATCH API ๋ก ์ ๋ชฉ๋ง ์ ๋ฐ์ดํธ""" - bid = _blog_id() +def update_blogger_title(token: str, post_id: str, new_title: str, blog_id: str = "") -> bool: + """Blogger PATCH API ๋ก ์ ๋ชฉ๋ง ์ ๋ฐ์ดํธ. blog_id ๋ฏธ์ง์ ์ ์ ์ญ BLOGGER_BLOG_ID.""" + bid = blog_id or _blog_id() if not bid or not post_id: return False try: @@ -289,10 +296,10 @@ def generate_improved_titles( try: msg = client.messages.create( model="claude-haiku-4-5-20251001", - max_tokens=300, + max_tokens=1200, messages=[{"role": "user", "content": prompt}], ) - raw = msg.content[0].text.strip() + raw = claude_text(msg).strip() match = re.search(r'\[.*?\]', raw, re.DOTALL) if match: titles = json.loads(match.group(0)) @@ -350,8 +357,30 @@ def run_optimization(dry_run: bool = False, limit: int = MAX_PER_RUN) -> dict: if not client: return {"optimized": 0, "skipped": 0, "details": [], "error": "API ํค ์์"} - # 1) GSC ์ CTR ์ฟผ๋ฆฌ ์์ง - low_ctr_queries = fetch_low_ctr_queries(token) + # 1) GSC ์ CTR ์ฟผ๋ฆฌ ์์ง โ ๋ชจ๋ ๋ธ๋ก๊ทธ์ GSC ์ฌ์ดํธ ์ํ (์ค๋ณต URL ์ ๊ฑฐ) + # site_blog_map: gsc_site_url โ Blogger blog_id (์ ๋ชฉ PATCH ์ ํด๋น ๋ธ๋ก๊ทธ API ์ฌ์ฉ) + site_urls: list[str] = [] + site_blog_map: dict[str, str] = {} + try: + from config import claude_text, get_blog_configs + for b in get_blog_configs(): + u = b.get("gsc_site_url", "") + if u and u not in site_urls: + site_urls.append(u) + site_blog_map[u.rstrip("/")] = str(b.get("blog_id") or "") + except Exception as e: + logger.debug(f"๋ธ๋ก๊ทธ ์ค์ ๋ก๋ ์คํจ โ ์ ์ญ GSC_SITE_URL ์ฌ์ฉ: {e}") + if not site_urls: + site_urls = [os.getenv("GSC_SITE_URL", "")] + + low_ctr_queries: list[dict] = [] + for su in site_urls: + qs = fetch_low_ctr_queries(token, site_url=su) + if qs: + logger.info(f"์ CTR ์ฟผ๋ฆฌ {len(qs)}๊ฐ ์์ง: {su}") + for q in qs: + q["site_url"] = su # ๋งค์นญยท์ ๋ฐ์ดํธ ์ ๋ธ๋ก๊ทธ ๊ตฌ๋ถ์ฉ + low_ctr_queries.extend(qs) if not low_ctr_queries: logger.info("์ CTR ์ฟผ๋ฆฌ ์์ (๋ชจ๋ CTR >= 3%) โ ์ต์ ํ ๋ถํ์") return {"optimized": 0, "skipped": 0, "details": []} @@ -378,6 +407,20 @@ def run_optimization(dry_run: bool = False, limit: int = MAX_PER_RUN) -> dict: logger.info(f"\n[{idx}/{len(candidates)}] {title[:50]}...") logger.info(f" ๊ฒ์์ด: '{query['query']}' | ๋ ธ์ถ: {query['impressions']} | CTR: {query['ctr']}%") + # ์ ๋ชฉยท๋ณธ๋ฌธ ๋์ ๋ณ๊ฒฝ ๊ธ์ง + ์งํ ์ค์ธ A/B ํ ์คํธ ๋ณดํธ (28์ผ) + try: + from title_ab_tracker import body_edited_recently, title_changed_recently + if body_edited_recently(url): + logger.info(" ์ต๊ทผ 28์ผ ๋ด ๋ณธ๋ฌธ ์์ ๋จ โ ๋์ ๋ณ๊ฒฝ ๋ฐฉ์ง๋ก ๊ฑด๋๋") + skipped += 1 + continue + if title_changed_recently(url): + logger.info(" ์ ๋ชฉ A/B ํ ์คํธ ์งํ ์ค (28์ผ ๋ฏธ๊ฒฝ๊ณผ) โ ๊ฑด๋๋") + skipped += 1 + continue + except Exception: + pass + # 3) Claude๋ก ๊ฐ์ ์ ๋ชฉ ์์ฑ new_titles = generate_improved_titles( client, @@ -408,9 +451,12 @@ def run_optimization(dry_run: bool = False, limit: int = MAX_PER_RUN) -> dict: "dry_run": dry_run, } + # ์ด ํฌ์คํธ๊ฐ ์ํ ๋ธ๋ก๊ทธ์ Blogger ID (์ฟผ๋ฆฌ ์์ง ์ฌ์ดํธ ๊ธฐ์ค) + target_blog_id = site_blog_map.get((query.get("site_url") or "").rstrip("/"), "") + if not dry_run: # 4) Blogger ํฌ์คํธ ID ์กฐํ - post_id = get_post_id_by_url(token, url) + post_id = get_post_id_by_url(token, url, blog_id=target_blog_id) if not post_id: logger.warning(" ํฌ์คํธ ID ์กฐํ ์คํจ โ ์ ๋ชฉ ํ๋ณด๋ง ์ ์ฅ (blogspot URL์ด ์๋ ์ ์์)") detail["blogger_updated"] = False @@ -418,11 +464,23 @@ def run_optimization(dry_run: bool = False, limit: int = MAX_PER_RUN) -> dict: skipped += 1 else: # 5) Blogger ์ ๋ชฉ PATCH - ok = update_blogger_title(token, post_id, best_title) + ok = update_blogger_title(token, post_id, best_title, blog_id=target_blog_id) detail["blogger_updated"] = ok detail["post_id"] = post_id if ok: _update_posts_json(url, best_title) + # A/B ์ถ์ : ๋ณ๊ฒฝ ์ ์ ๋ชฉยท๋ ์งยท์์ธยท๊ธฐ์ค ์ฑ๊ณผ ๊ธฐ๋ก + try: + from title_ab_tracker import record_title_change + record_title_change( + blog_url=url, old_title=title, new_title=best_title, + reason=f"์ CTR ๊ฒ์์ด '{query['query']}' (CTR {query['ctr']}%)", + baseline={"ctr": query["ctr"], "position": query["position"], + "impressions": query["impressions"], + "clicks": query.get("clicks", 0)}, + ) + except Exception as _abe: + logger.warning(f" A/B ๊ธฐ๋ก ์คํจ: {_abe}") optimized += 1 else: skipped += 1 diff --git a/blog-automation/gsc_register.py b/blog-automation/gsc_register.py new file mode 100644 index 0000000000000..7f7f79948bf4e --- /dev/null +++ b/blog-automation/gsc_register.py @@ -0,0 +1,122 @@ +"""Google Search Console ์ฌ์ดํธ ๋ฑ๋ก ์คํฌ๋ฆฝํธ. + +blogs.json์ gsc_site_url์ Search Console API(sites.add)๋ก ๋ฑ๋กํฉ๋๋ค. +Blogger ๋ธ๋ก๊ทธ๋ ์์ ๊ณ์ ์ด๋ฉด ์๋ ๊ฒ์ฆ๋๋ฏ๋ก ๋ณ๋ ํ์ธ ์ ์ฐจ๊ฐ ํ์ ์์ต๋๋ค. + +์ฌ์ฉ๋ฒ: python gsc_register.py # ์ ์ฒด ๋ธ๋ก๊ทธ ๋ฑ๋ก + python gsc_register.py --list # ํ์ฌ ๋ฑ๋ก๋ ์ฌ์ดํธ ๋ชฉ๋ก๋ง ์ถ๋ ฅ + +์ด ํ์ผ์ด ํธ์๋๋ฉด gsc-register.yml ์ํฌํ๋ก์ฐ๊ฐ ์๋ ์คํ๋ฉ๋๋ค (push ์ ์กฐํ๋ง). +""" + +import logging +import sys + +import requests + +from config import ( + BLOGGER_CLIENT_ID, + BLOGGER_CLIENT_SECRET, + BLOGGER_REFRESH_TOKEN, + get_blog_configs, +) + +logging.basicConfig(level=logging.INFO, format="%(levelname)s %(message)s") +logger = logging.getLogger(__name__) + +TOKEN_URL = "https://oauth2.googleapis.com/token" +GSC_API_BASE = "https://www.googleapis.com/webmasters/v3" + + +def _access_token() -> str | None: + resp = requests.post(TOKEN_URL, data={ + "client_id": BLOGGER_CLIENT_ID, + "client_secret": BLOGGER_CLIENT_SECRET, + "refresh_token": BLOGGER_REFRESH_TOKEN, + "grant_type": "refresh_token", + }, timeout=15) + if resp.status_code != 200: + logger.error(f"ํ ํฐ ๋ฐ๊ธ ์คํจ: {resp.status_code} {resp.text[:200]}") + return None + return resp.json().get("access_token") + + +def list_sites(token: str) -> list[dict]: + r = requests.get( + f"{GSC_API_BASE}/sites", + headers={"Authorization": f"Bearer {token}"}, + timeout=15, + ) + if r.status_code != 200: + logger.error(f"์ฌ์ดํธ ๋ชฉ๋ก ์กฐํ ์คํจ: {r.status_code} {r.text[:300]}") + return [] + return r.json().get("siteEntry", []) + + +def add_site(token: str, site_url: str) -> bool: + encoded = requests.utils.quote(site_url, safe="") + r = requests.put( + f"{GSC_API_BASE}/sites/{encoded}", + headers={"Authorization": f"Bearer {token}"}, + timeout=15, + ) + if r.status_code in (200, 204): + logger.info(f"โ ๋ฑ๋ก ์ฑ๊ณต: {site_url}") + return True + if r.status_code == 403 and "insufficient" in r.text.lower(): + logger.error( + f"โ ๊ถํ ๋ถ์กฑ: {site_url} โ OAuth ํ ํฐ์ webmasters ์ค์ฝํ๊ฐ ์์ต๋๋ค. " + "get-oauth-token ์ํฌํ๋ก์ฐ๋ก ํ ํฐ์ ์ฌ๋ฐ๊ธํ ๋ " + "https://www.googleapis.com/auth/webmasters ์ค์ฝํ๋ฅผ ํฌํจํ์ธ์." + ) + return False + logger.error(f"โ ๋ฑ๋ก ์คํจ: {site_url} โ {r.status_code} {r.text[:300]}") + return False + + +def main() -> int: + token = _access_token() + if not token: + return 1 + + existing = {s.get("siteUrl", ""): s.get("permissionLevel", "") for s in list_sites(token)} + if existing: + logger.info("ํ์ฌ ๋ฑ๋ก๋ ์ฌ์ดํธ:") + for url, perm in existing.items(): + logger.info(f" - {url} ({perm})") + else: + logger.info("ํ์ฌ ๋ฑ๋ก๋ ์ฌ์ดํธ ์์ (๋๋ ์กฐํ ๊ถํ ์์)") + + if "--list" in sys.argv: + return 0 + + targets = [] + for b in get_blog_configs(): + u = b.get("gsc_site_url", "") + if u and u not in targets: + targets.append(u) + + ok = fail = skip = 0 + for url in targets: + if url in existing: + logger.info(f"โญ ์ด๋ฏธ ๋ฑ๋ก๋จ: {url} ({existing[url]})") + skip += 1 + continue + if add_site(token, url): + ok += 1 + else: + fail += 1 + + logger.info(f"\n์๋ฃ โ ์ ๊ท ๋ฑ๋ก {ok} / ์ด๋ฏธ ๋ฑ๋ก {skip} / ์คํจ {fail}") + + # ์ต์ข ์ํ ์ฌํ์ธ + final = list_sites(token) + if final: + logger.info("์ต์ข ๋ฑ๋ก ์ํ:") + for s in final: + logger.info(f" - {s.get('siteUrl')} ({s.get('permissionLevel')})") + return 0 if fail == 0 else 1 + + +if __name__ == "__main__": + sys.exit(main()) diff --git a/blog-automation/image_fetcher.py b/blog-automation/image_fetcher.py index 1ba38ed9439b5..b4a33c8510362 100644 --- a/blog-automation/image_fetcher.py +++ b/blog-automation/image_fetcher.py @@ -5,10 +5,14 @@ - Wikimedia Commons (ํด๋ฐฑ) """ +import base64 import html +import json +import os import re import logging import requests +from config import claude_text logger = logging.getLogger(__name__) @@ -27,12 +31,12 @@ def _ddg_images(keyword: str, count: int) -> list[dict]: """DuckDuckGo ์ด๋ฏธ์ง ๊ฒ์ (API ํค ๋ถํ์).""" try: - # 1๋จ๊ณ: vqd ํ ํฐ ํ๋ + # 1๋จ๊ณ: vqd ํ ํฐ ํ๋ (CI ํ๊ฒฝ์์ bot-detection์ผ๋ก ์์ฃผ ์คํจ โ ํ์์์ ๋จ์ถ) r = requests.get( "https://duckduckgo.com/", params={"q": keyword, "iax": "images", "ia": "images"}, headers=_HEADERS, - timeout=12, + timeout=6, ) vqd = (re.search(r'vqd="([^"]+)"', r.text) or re.search(r"vqd='([^']+)'", r.text) or @@ -69,6 +73,64 @@ def _ddg_images(keyword: str, count: int) -> list[dict]: return [] +def _pixabay_images(keyword: str, count: int, api_key: str) -> list[dict]: + """Pixabay ์ด๋ฏธ์ง ๊ฒ์ API (์ ์๊ถ ๋ฌด๋ฃ, ์์ ์ ์ฌ์ฉ ๊ฐ๋ฅ). + https://pixabay.com/api/docs/ + """ + if not api_key: + return [] + try: + # ํ๊ตญ์ด ํค์๋ โ ์์ด๋ก ๋ณํ (Pixabay๋ ์๋ฌธ ๊ฒ์ ํ์ง์ด ๋์) + en_terms = re.findall(r'[A-Za-z][A-Za-z0-9]{1,}', keyword) + if en_terms: + query = " ".join(en_terms[:4]) + else: + # ์์ ํ๊ตญ์ด: ์์ด ๋ณํ ์คํจ ์ Pixabay ๊ฑด๋๋ (๋ค์ด๋ฒ๊ฐ ํ๊ตญ์ด ๋ด๋น) + query = _ko_to_en_query(keyword) + if not query: + return [] + + r = requests.get( + "https://pixabay.com/api/", + params={ + "key": api_key, + "q": query, + "image_type": "photo", + "orientation": "horizontal", + "safesearch": "true", + "per_page": min(count * 3, 20), + "min_width": 400, + "lang": "en", + "order": "popular", + }, + headers=_HEADERS, + timeout=12, + ) + if r.status_code != 200: + logger.debug(f"Pixabay API ์ค๋ฅ: HTTP {r.status_code}") + return [] + images = [] + for item in r.json().get("hits", []): + img_url = item.get("largeImageURL") or item.get("webformatURL", "") + if not img_url: + continue + images.append({ + "url": img_url, + "title": item.get("tags", keyword).replace(",", " /"), + "width": item.get("imageWidth", item.get("webformatWidth", 800)), + "height": item.get("imageHeight", item.get("webformatHeight", 450)), + "source": "pixabay", + }) + if len(images) >= count: + break + if images: + logger.debug(f"Pixabay ์ด๋ฏธ์ง {len(images)}๊ฐ ์์ง: '{query}'") + return images + except Exception as e: + logger.debug(f"Pixabay ์ด๋ฏธ์ง ๊ฒ์ ์คํจ: {e}") + return [] + + def _naver_images(keyword: str, count: int, client_id: str, client_secret: str) -> list[dict]: """๋ค์ด๋ฒ ์ด๋ฏธ์ง ๊ฒ์ API.""" try: @@ -162,13 +224,69 @@ def _wikimedia_images(keyword: str, count: int) -> list[dict]: return [] +# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ +# ์ฟผ๋ฆฌ ๋จ์ํ +# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ + +# ์ฒดํ๋ด์ ํค์๋์ ์์์ด โ ์ด๋ฏธ์ง ๊ฒ์์ ๋ฐฉํด๋ง ๋๋ ๋จ์ด๋ค +_QUERY_FLUFF = { + "์ค์๋ด", "์์ง", "ํ๊ธฐ", "์ง์ ", "์ฒ์", "ํด๋ดค๋๋", "ํด๋ดค์ด์", "๋ชฐ๋๋", + "์๊ฒ", "๊ณต๊ฐ", "ํ์ค", "์ง์ง", "๊ฐ์", "๋ฐ์๋ณด๊ณ ", "์จ๋ดค๋๋", "์ ์ง๋ฅธ", + "์ด์ผ๊ธฐ", "๋๋", "๊ฒช์", "๋ฌ๋๋", "์๊ฐ๋ณด๋ค", "๋ง์", "์ ๋", "์ ๊ฐ", + "ํ์", "์", "๊ฒ๋ค", "๊ฒ", "๋", "์ ๋", "์๋ฒฝ", "์ ๋ฆฌ", "์ด์ ๋ฆฌ", + "์ค์๋ค", "์ค์", "ํฌ์ํ ", "ํผ์", "๋น์ทํ๋ฉด", "์ด์ ", "๋ฐฉ๋ฒ", "๊ฟํ", + # ๊ฐ๊ฒฐยท์ํฉํธํ ์ ๋ชฉ์์ ์์ฃผ ๋์ค๋ ์์์ดยท๋์ฌํ + "๋ฐ๋", "ํ๋", "๋๋", "๊ฐ์ฅ", "๋ง์ด", "๋ฐ๋ก", "์ง๊ธ", "ํด๋ณด๋", + "๋น๊ตํด๋ณด๋", "์จ๋ณด๋", "๊ฐ๋ณธ", "๋ค๋ ์จ", "์ถ์ฒ", "๊ธฐ์ค", "์ด๋ด", + # ์ซ์์์ ๋ถ๋ฆฌ๋ ๋จ์์ด (์: "40๋ง์" โ "๋ง์") + "๋ง์", "์ฒ์", "์ต์", "์๋", "๊ฐ์ง", "๊ฐ์", "์ฃผ์ผ", "๋ฐ์ผ", +} + +# ๋จ์ด ๋ ์กฐ์ฌ โ ๋ผ์ด๋ด๊ณ ๋จ์ ์ด๊ทผ์ด 2์ ์ด์์ด๋ฉด ์ด๊ทผ์ ์ฌ์ฉ (์: "์ด๋ณด๊ฐ" โ "์ด๋ณด") +# ๋กยท์ ๋ฑ์ ๋ช ์ฌ ์ผ๋ถ์ธ ๊ฒฝ์ฐ๊ฐ ๋ง์ ์ ์ธ (์: "๊ณ ์๋๋ก") +_TRAILING_JOSA = ("๊ฐ", "์", "๋", "์", "๋ฅผ", "์") + + +def _strip_josa(word: str) -> str: + """ํ๊ตญ์ด ๋จ์ด ๋์ ์กฐ์ฌ๋ฅผ ์ ๊ฑฐํฉ๋๋ค (์ด๊ทผ 2์ ์ด์ ์ ์ง๋ ๋๋ง).""" + for j in _TRAILING_JOSA: + if word.endswith(j) and len(word) - len(j) >= 2: + return word[: -len(j)] + return word + + +def _core_terms(text: str, max_terms: int = 3) -> list[str]: + """๊ฒ์ ์ฟผ๋ฆฌ์์ ์์์ด๋ฅผ ์ ๊ฑฐํ๊ณ ํต์ฌ ๋ช ์ฌ๋ง ์ถ์ถํฉ๋๋ค.""" + words = re.findall(r'[A-Za-z][A-Za-z0-9&]{1,9}|[๊ฐ-ํฃ]{2,}', text) + core = [] + for w in words: + if re.search(r'[๊ฐ-ํฃ]', w): + w = _strip_josa(w) + if w in _QUERY_FLUFF or w.lower() in {c.lower() for c in core}: + continue + core.append(w) + if len(core) >= max_terms: + break + return core + + +def _simplify_query(query: str, max_terms: int = 3) -> str: + """๊ธด ์ฒดํ๋ด์ ์ฟผ๋ฆฌ๋ฅผ ์ด๋ฏธ์ง ๊ฒ์์ ์ ํฉํ ํต์ฌ ๋ช ์ฌ ์กฐํฉ์ผ๋ก ์ค์ ๋๋ค.""" + return " ".join(_core_terms(query, max_terms)) + + # โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ # ํตํฉ ๊ฒ์ & HTML ์ฝ์ # โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ def _score_title_relevance(img: dict, query: str) -> float: - """์ด๋ฏธ์ง ์ ๋ชฉยทURL๊ณผ ์ฟผ๋ฆฌ ๋จ์ด์ ๊ฒน์นจ ๋น์จ (0~1). ๊ด๋ จ์ฑ ์์ ์ ๋ ฌ์ ์ฌ์ฉ.""" + """์ด๋ฏธ์ง ์ ๋ชฉยทURL๊ณผ ์ฟผ๋ฆฌ ๋จ์ด์ ๊ฒน์นจ ๋น์จ (0~1). ๊ด๋ จ์ฑ ์์ ์ ๋ ฌ์ ์ฌ์ฉ. + ํ๊ตญ์ด ์ฟผ๋ฆฌ๋ ์์ด ๋ฒ์ญ ๋จ์ด๋ ํฌํจํด ์์ด ์ด๋ฏธ์ง ์ ๋ชฉ๊ณผ ๋งค์นญํฉ๋๋ค.""" query_words = set(re.findall(r'[๊ฐ-ํฃ]{2,}|[A-Za-z]{3,}', query.lower())) + # ํ๊ตญ์ด ์ฟผ๋ฆฌ์ธ ๊ฒฝ์ฐ Pixabay/DDG ์์ด ์ด๋ฏธ์ง์์ ๊ด๋ จ์ฑ ์ฑ์ ์ ์ํด ๋ฒ์ญ ๋จ์ด ์ถ๊ฐ + if _is_korean_query(query): + en_q = _ko_to_en_query(query) + query_words |= set(re.findall(r'[A-Za-z]{3,}', en_q.lower())) if not query_words: return 0.0 haystack = (img.get("title", "") + " " + img.get("url", "")).lower() @@ -176,24 +294,208 @@ def _score_title_relevance(img: dict, query: str) -> float: return len(query_words & title_words) / len(query_words) +def _search_all_sources( + query: str, + naver_client_id: str, + naver_client_secret: str, + n_candidates: int, + pixabay_api_key: str = "", +) -> list[dict]: + """Pixabay โ ๋ค์ด๋ฒ โ DDG โ Wikimedia ์์ผ๋ก ๊ฒ์ํฉ๋๋ค.""" + # 1์์: Pixabay (์ ์๊ถ ๋ฌด๋ฃ, ๊ณ ํ์ง) + if pixabay_api_key: + candidates = _pixabay_images(query, n_candidates, pixabay_api_key) + if candidates: + return candidates + # 2์์: ๋ค์ด๋ฒ ์ด๋ฏธ์ง API + if naver_client_id and naver_client_secret: + candidates = _naver_images(query, n_candidates, naver_client_id, naver_client_secret) + if candidates: + return candidates + # 3์์: DuckDuckGo + candidates = _ddg_images(query, n_candidates) + if candidates: + return candidates + # 4์์: Wikimedia Commons + return _wikimedia_images(query, n_candidates) + + +# ๊ด๋ จ์ฑ ์ต์ ์๊ณ๊ฐ โ ์ด ๋ฏธ๋ง์ด๋ฉด ์๋ฑํ ์ด๋ฏธ์ง(Wikimedia ์ก์ ๋ฑ)๋ก ํ๋จํ๊ณ ๋ฒ๋ฆผ +_MIN_RELEVANCE = 0.15 + + +def _is_korean_query(text: str) -> bool: + """์ฟผ๋ฆฌ ๋จ์ด ์ค ํ๊ธ ๋น์จ์ด 50% ์ด์์ด๋ฉด ํ๊ตญ์ด ์ฟผ๋ฆฌ๋ก ํ์ ํฉ๋๋ค.""" + words = re.findall(r'[๊ฐ-ํฃ]{2,}|[A-Za-z]{2,}', text) + if not words: + return False + ko = sum(1 for w in words if re.search(r'[๊ฐ-ํฃ]', w)) + return ko / len(words) >= 0.5 + + +def _ko_to_en_query(query: str) -> str: + """ํ๊ตญ์ด ํต์ฌ ๋ช ์ฌ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก Pixabay/DDG์ฉ ์์ด ์ฟผ๋ฆฌ๋ฅผ ์์ฑํฉ๋๋ค. + ๋จ์ ์๋จ์ด ์ถ์ถ์ด ์์ผ๋ฉด ๋ฒ์ฉ ์นดํ ๊ณ ๋ฆฌ์ด๋ก ๋์ฒดํฉ๋๋ค.""" + # ์์ด ๋จ์ด๊ฐ ์์ผ๋ฉด ์ฐ์ ์ฌ์ฉ + en_words = re.findall(r'[A-Za-z][A-Za-z0-9]{2,}', query) + if en_words: + return " ".join(en_words[:3]) + + # ํ๊ตญ์ด โ ์์ด ๋ฒ์ฉ ๋งคํ (์ด๋ฏธ์ง ๊ฒ์ ์นํ์ ์นดํ ๊ณ ๋ฆฌ) + _KO_EN = { + "๊ฑด๊ฐ": "health", "์๋ฃ": "healthcare", "์ด๋": "exercise", "๋ค์ด์ดํธ": "diet", + "ํฌ์": "investment", "์ฃผ์": "stock market", "ETF": "ETF", "๊ธ์ต": "finance", + "๋ถ๋์ฐ": "real estate", "๊ฒฝ์ ": "economy", "์ฌํ ํฌ": "personal finance", + "์ฌํ": "travel", "๊ด๊ด": "tourism", "๋ง์ง": "restaurant", "์์": "hotel", + "๋ ์": "reading books", "์ฑ ": "books", "๊ต์ก": "education", "ํ์ต": "learning", + "์๋ฆฌ": "cooking", "์์": "food", "์นดํ": "cafe", "์ปคํผ": "coffee", + "ํจ์ ": "fashion", "๋ทฐํฐ": "beauty", "ํ์ฅ": "makeup", "์คํจ์ผ์ด": "skincare", + "์ก์": "parenting", "์์ด": "child", "๊ฐ์กฑ": "family", + "์ฌ๋ฆ": "summer", "๋ด": "spring", "๊ฐ์": "autumn", "๊ฒจ์ธ": "winter", + "์ฅ๋ง": "rainy season", "ํญ์ผ": "heat wave", "๋ ์จ": "weather", + "์บ ํ": "camp", "์บ ํ": "camping", "๋ฑ์ฐ": "hiking", "์์ ๊ฑฐ": "cycling", + "์คํฌ์ธ ": "sports", "์ถ๊ตฌ": "soccer", "์ผ๊ตฌ": "baseball", "ํ ๋์ค": "tennis", + "๋๋ผ๋ง": "drama", "์ํ": "movie", "์์ ": "music", "๊ณต์ฐ": "concert", + "์ทจ์ ": "job", "์ง์ฅ": "workplace", "์ฐฝ์ ": "startup", "๋ถ์ ": "side job", + "์ธ๊ธ": "tax", "์ฐ๊ธ": "pension", "๋ณดํ": "insurance", "๋์ถ": "loan", + "AI": "artificial intelligence", "๊ธฐ์ ": "technology", "์ค๋งํธํฐ": "smartphone", + "๋ฐฉํ": "school vacation", "๋๋น": "preparation", "๊ด๋ฆฌ": "management", + "์ ์ฝ": "saving money", "์ ์ธ": "tax saving", "๊ณต๋ถ": "studying", + "๋ ธํ": "retirement", "์์ ": "pregnancy", "์ถ์ฐ": "childbirth", + "์ ์ฑ ": "policy", "์ง์": "support", "ํํ": "benefit", "์ ์ฒญ": "application", + "์ด์ฌ": "moving house", "์ ์ธ": "rental housing", "์ฒญ์ฝ": "housing subscription", + } + ko_words = re.findall(r'[๊ฐ-ํฃ]{2,}', query) + en_terms = [] + for w in ko_words: + if w in _KO_EN: + en_terms.append(_KO_EN[w]) + if len(en_terms) >= 2: + break + # ๋งคํ๋๋ ๋จ์ด๊ฐ ์์ผ๋ฉด ๋น ๋ฌธ์์ด โ ๋ฒ์ฉ์ด("lifestyle blog" ๋ฑ)๋ก ๊ฒ์ํ๋ฉด + # ์ฃผ์ ์ ๋ฌด๊ดํ ๋์ผ ์ธ๊ธฐ ์ด๋ฏธ์ง๊ฐ ๋ชจ๋ ๊ธ์ ๋ฐ๋ณต ์ฒจ๋ถ๋๋ฏ๋ก ๊ฒ์์ ๊ฑด๋๋ด๋ค + return " ".join(en_terms) + + +# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ +# ๊ธ ๊ฐ ์ด๋ฏธ์ง ์ค๋ณต ๋ฐฉ์ง โ ์ด๋ฏธ ์ฌ์ฉํ ์ด๋ฏธ์ง URL์ ๊ธฐ๋กยทํํผ +# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ + +_USED_IMAGES_FILE = os.path.join(os.path.dirname(__file__), "logs", "used_images.json") +_USED_IMAGES_MAX = 1000 # ์ต๊ทผ N๊ฐ๋ง ์ ์ง + + +def _norm_img_title(title: str) -> str: + """์ด๋ฏธ์ง ์ ๋ชฉ/ํ๊ทธ ๋ฌธ์์ด ์ ๊ทํ โ ๊ฐ์ ์ฌ์ง์ ๋ค๋ฅธ URL ๊ฐ์ง์ฉ ์ง๋ฌธ.""" + return re.sub(r"\s+", " ", (title or "").strip().lower())[:80] + + +def _load_used_images() -> set[str]: + try: + with open(_USED_IMAGES_FILE, encoding="utf-8") as f: + return set(json.load(f).get("urls", [])) + except (FileNotFoundError, json.JSONDecodeError, OSError): + return set() + + +def _load_used_titles() -> set[str]: + try: + with open(_USED_IMAGES_FILE, encoding="utf-8") as f: + return set(json.load(f).get("titles", [])) + except (FileNotFoundError, json.JSONDecodeError, OSError): + return set() + + +def mark_images_used(urls: list[str], titles: list[str] | None = None) -> None: + """์ฝ์ ๋ ์ด๋ฏธ์ง URL(+์ ๋ชฉ ์ง๋ฌธ)์ ๊ธฐ๋กํด ์ดํ ๊ธ์์ ๊ฐ์ ์ด๋ฏธ์ง๋ฅผ ํผํ๊ฒ ํฉ๋๋ค. + ์ ๋ชฉ ์ง๋ฌธ์ ๊ฐ์ ์ฌ์ง์ด ๋ค๋ฅธ URL๋ก ์ฌ๋ฑ์ฅํ๋ ๊ฒ๊น์ง ์ฐจ๋จํฉ๋๋ค. + (data URI ์์ฑ ์ธ๋ค์ผ์ ๊ธ๋ง๋ค ๊ณ ์ ํ๋ฏ๋ก ๊ธฐ๋ก ์ ์ธ)""" + real = [u for u in urls if u and not u.startswith("data:")] + norm_titles = [t for t in (_norm_img_title(t) for t in (titles or [])) if t] + if not real and not norm_titles: + return + try: + try: + with open(_USED_IMAGES_FILE, encoding="utf-8") as f: + data = json.load(f) + except (FileNotFoundError, json.JSONDecodeError, OSError): + data = {} + existing = data.get("urls", []) + existing_titles = data.get("titles", []) + merged = existing + [u for u in real if u not in existing] + merged_titles = existing_titles + [t for t in norm_titles if t not in existing_titles] + os.makedirs(os.path.dirname(_USED_IMAGES_FILE), exist_ok=True) + with open(_USED_IMAGES_FILE, "w", encoding="utf-8") as f: + json.dump({"urls": merged[-_USED_IMAGES_MAX:], + "titles": merged_titles[-_USED_IMAGES_MAX:]}, f, ensure_ascii=False, indent=1) + except Exception as e: + logger.warning(f"used_images.json ๊ธฐ๋ก ์คํจ: {e}") + + def _fetch_best_image( query: str, naver_client_id: str = "", naver_client_secret: str = "", n_candidates: int = 4, + pixabay_api_key: str = "", ) -> dict | None: - """๋จ์ผ ์ฟผ๋ฆฌ๋ก ํ๋ณด ์ด๋ฏธ์ง ์ฌ๋ฌ ๊ฐ๋ฅผ ๊ฐ์ ธ์ ์ ๋ชฉ ๊ด๋ จ์ฑ์ด ๊ฐ์ฅ ๋์ ๊ฒ์ ๋ฐํํฉ๋๋ค.""" - candidates: list[dict] = [] - if naver_client_id and naver_client_secret: - candidates = _naver_images(query, n_candidates, naver_client_id, naver_client_secret) - if not candidates: - candidates = _ddg_images(query, n_candidates) - if not candidates: - candidates = _wikimedia_images(query, n_candidates) - if not candidates: - return None - # ์ ๋ชฉ ๊ด๋ จ์ฑ ์ ์๊ฐ ๊ฐ์ฅ ๋์ ํ๋ณด ์ ํ (๋์ ์ API ๊ธฐ๋ณธ ์์ ์กด์ค) - return max(candidates, key=lambda img: _score_title_relevance(img, query)) + """ + ํ๋ณด ์ด๋ฏธ์ง๋ฅผ ๊ฐ์ ธ์ ์ ๋ชฉ ๊ด๋ จ์ฑ์ด ๊ฐ์ฅ ๋์ ๊ฒ์ ๋ฐํํฉ๋๋ค. + ๊ธด ์ฒดํ๋ด์ ์ฟผ๋ฆฌ๋ ๊ฒฐ๊ณผ๊ฐ ์์ผ๋ฏ๋ก ์ ์ง์ ์ผ๋ก ๋จ์ํํ๋ฉฐ ์ฌ์๋ํฉ๋๋ค: + โ ์๋ณธ ์ฟผ๋ฆฌ โ โก ํต์ฌ ๋ช ์ฌ 3๊ฐ โ โข ํต์ฌ ๋ช ์ฌ 2๊ฐ + ํ๊ตญ์ด ์ฟผ๋ฆฌ๋ ์์ด ๋ณํ ์ฟผ๋ฆฌ๋ ์ถ๊ฐ ์๋. + ๊ด๋ จ์ฑ ์๊ณ๊ฐ ๋ฏธ๋ฌ ์์๋ ํ๋ณด๊ฐ ์์ผ๋ฉด ์ต์์ ์ด๋ฏธ์ง๋ฅผ ๋ฐํํฉ๋๋ค + (Claude _filter_relevant_images์์ ์ต์ข ํํฐ๋ง). + """ + is_korean = _is_korean_query(query) + attempts = [query] + simple3 = _simplify_query(query, 3) + simple2 = _simplify_query(query, 2) + if simple3 and simple3 != query: + attempts.append(simple3) + if simple2 and simple2 not in attempts: + attempts.append(simple2) + + # ํ๊ตญ์ด ์ฟผ๋ฆฌ: ์์ด ๋ณํ ๋ฒ์ ๋ ์๋ (Pixabay/DDG/Wikimedia ๊ฒฐ๊ณผ ๊ฐ์ ) + if is_korean: + en_q = _ko_to_en_query(query) + if en_q and en_q not in attempts: + attempts.append(en_q) + + # ๊ด๋ จ์ฑ ์ฑ์ ์ ํญ์ ๋จ์ํ๋ ํต์ฌ ๋ช ์ฌ ๊ธฐ์ค + score_query = simple2 or simple3 or query + + used_urls = _load_used_images() # ์ด์ ๊ธ๋ค์์ ์ด๋ฏธ ์ด ์ด๋ฏธ์ง URL ํํผ + used_titles = _load_used_titles() # ๊ฐ์ ์ฌ์ง์ ๋ค๋ฅธ URL(์ ๋ชฉ ์ง๋ฌธ)๋ ํํผ + best_fallback = None # ์๊ณ๊ฐ ๋ฏธ๋ฌ์ด๋ผ๋ ํ๋ณด๊ฐ ์์ผ๋ฉด ๋ณด๊ด + for attempt_q in attempts: + candidates = _search_all_sources( + attempt_q, naver_client_id, naver_client_secret, n_candidates, + pixabay_api_key=pixabay_api_key, + ) + fresh = [c for c in candidates + if c.get("url", "") not in used_urls + and _norm_img_title(c.get("title", "")) not in used_titles] + if candidates and not fresh: + logger.debug(f"ํ๋ณด ์ ๋ถ ๊ธฐ์ฌ์ฉ ์ด๋ฏธ์ง: '{attempt_q}' โ ๋ค์ ์ฟผ๋ฆฌ ์๋") + continue + candidates = fresh + if not candidates: + continue + best = max(candidates, key=lambda img: _score_title_relevance(img, score_query)) + score = _score_title_relevance(best, score_query) + if score >= _MIN_RELEVANCE: + return best + logger.debug(f"๊ด๋ จ์ฑ ๋ฏธ๋ฌ ํ๋ณด ๋ณด๊ด: '{attempt_q}' โ '{best.get('title','')[:30]}' (score={score:.2f})") + if best_fallback is None: + best_fallback = best + + # ์๊ณ๊ฐ์ ๋๋ ์ด๋ฏธ์ง๊ฐ ์์ด๋ ํ๋ณด๊ฐ ์์ผ๋ฉด ์ต์์ ๋ฐํ + # (Claude _filter_relevant_images๊ฐ ์ต์ข ํํฐ๋ง ๋ด๋น) + if best_fallback: + logger.debug(f"๊ด๋ จ์ฑ ๋ฏธ๋ฌ ํด๋ฐฑ ์ด๋ฏธ์ง ์ฌ์ฉ: '{best_fallback.get('title','')[:40]}'") + return best_fallback + return None def _filter_relevant_images( @@ -209,7 +511,7 @@ def _filter_relevant_images( return images try: import anthropic - from config import ANTHROPIC_API_KEY, CLAUDE_MODEL + from config import claude_text, ANTHROPIC_API_KEY, CLAUDE_MODEL client = anthropic.Anthropic(api_key=ANTHROPIC_API_KEY) img_list = "\n".join( @@ -223,7 +525,7 @@ def _filter_relevant_images( msg = client.messages.create( model=CLAUDE_MODEL, - max_tokens=200, + max_tokens=1000, messages=[{ "role": "user", "content": ( @@ -239,7 +541,7 @@ def _filter_relevant_images( ), }], ) - answer = msg.content[0].text.strip() + answer = claude_text(msg).strip() logger.debug(f"์ด๋ฏธ์ง ๊ด๋ จ์ฑ ํ๊ฐ ๊ฒฐ๊ณผ: {answer}") # '์์' ๋ณํ ์ฒ๋ฆฌ @@ -267,36 +569,309 @@ def _filter_relevant_images( return images +# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ +# ์ ๋ชฉ ๊ธฐ๋ฐ ์ธ๋ค์ผ ์๋ ์์ฑ (์ด๋ฏธ์ง ๊ฒ์ ์ ๋ถ ์คํจ ์ ํด๋ฐฑ) +# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ + +# ์ฃผ์ ๋ณ ๊ทธ๋ผ๋์ธํธยท์ด๋ชจ์ง (content_generator ํ ๋ง์ ํค ์ผ์น โ ์ํ ์ํฌํธ ๋ฐฉ์ง ์ํด ์์ฒด ์ ์) +_THUMB_THEMES = [ + # (๊ฐ์ง ํค์๋, ๊ทธ๋ผ๋์ธํธ ์์, ๋, ์ก์ผํธ, ์ด๋ชจ์ง) + ({"์ฌํ", "๊ด๊ด", "๋ช ์", "์์", "ํธํ ", "๋ง์ง", "ํญ๊ณต", "์ ์ฃผ", "ํฌ์ด", "ํด์"}, + "#0369a1", "#0ea5e9", "#e0f2fe", "โ๏ธ"), + ({"๋๋ผ๋ง", "์ํ", "๋ทํ๋ฆญ์ค", "ott", "๊ฒฐ๋ง", "์ถ์ฐ์ง", "๋ฐฐ์ฐ"}, + "#6d28d9", "#a78bfa", "#f3e8ff", "๐ฌ"), + ({"์์ด๋", "์ปด๋ฐฑ", "k-pop", "kpop", "์๋ฐ", "์ ๊ณก", "์ฝ์ํธ", "๊ฑธ๊ทธ๋ฃน", "๋ณด์ด๊ทธ๋ฃน", "์๋ํฌ์ด", "ํฌ๋ค"}, + "#be185d", "#f472b6", "#fce7f3", "๐ต"), + ({"ํฌ์", "์ฃผ์", "etf", "๊ธ์ต", "๊ฒฝ์ ", "๊ธ๋ฆฌ", "ํ์จ", "๋ถ๋์ฐ", "์ฌํ ํฌ", "์ธ๊ธ"}, + "#1d4ed8", "#3b82f6", "#dbeafe", "๐"), + ({"์ถ๊ตฌ", "์ผ๊ตฌ", "๋๊ตฌ", "๊ณจํ", "์คํฌ์ธ ", "๊ฒฝ๊ธฐ", "์ ์", "์ํฅ๋ฏผ"}, + "#dc2626", "#f87171", "#fee2e2", "โฝ"), + ({"๊ฑด๊ฐ", "๋ค์ด์ดํธ", "์ด๋", "์๋ฃ", "์์", "์๋จ"}, + "#047857", "#34d399", "#d1fae5", "๐ช"), +] +_THUMB_DEFAULT = ("#1e3a8a", "#60a5fa", "#dbeafe", "๐") + +# ๋์๋ณด๋ ํ ๋ง ์ ํ๊ฐ โ _THUMB_THEMES ์ธ๋ฑ์ค (์์ ์ผ์น) +_THUMB_THEME_NAMES = ["travel", "drama", "kpop", "finance", "sports", "health"] + + +def _thumb_theme(text: str, theme_name: str = "") -> tuple[str, str, str, str]: + if theme_name and theme_name in _THUMB_THEME_NAMES: + _, c1, c2, accent, emoji = _THUMB_THEMES[_THUMB_THEME_NAMES.index(theme_name)] + return c1, c2, accent, emoji + if theme_name == "default": + return _THUMB_DEFAULT + t = text.lower() + for kws, c1, c2, accent, emoji in _THUMB_THEMES: + if any(w in t for w in kws): + return c1, c2, accent, emoji + return _THUMB_DEFAULT + + +def _wrap_title(title: str, max_chars: int = 13, max_lines: int = 3) -> list[str]: + """์ ๋ชฉ์ ๋จ์ด ๋จ์๋ก ์ค๋ฐ๊ฟํฉ๋๋ค (ํ ์ค max_chars์, ์ต๋ max_lines์ค).""" + words = title.split() + lines: list[str] = [] + cur = "" + for w in words: + cand = f"{cur} {w}".strip() + if len(cand) <= max_chars or not cur: + cur = cand + else: + lines.append(cur) + cur = w + if len(lines) == max_lines: + break + if cur and len(lines) < max_lines: + lines.append(cur) + # ๋์น ๋ง์ง๋ง ์ค ๋ง์ค์ + if lines and (len(lines) == max_lines and len(" ".join(words)) > sum(len(l) for l in lines) + len(lines) - 1): + last = lines[-1] + lines[-1] = (last[:max_chars - 1] + "โฆ") if len(last) > max_chars else last + "โฆ" + return lines or [title[:max_chars]] + + +def _upload_to_imgbb(svg_bytes: bytes) -> str: + """SVG๋ฅผ imgbb์ ์ ๋ก๋ํด ๊ณต๊ฐ URL์ ๋ฐํํฉ๋๋ค. ์คํจ ์ ๋น ๋ฌธ์์ด.""" + api_key = os.getenv("IMGBB_API_KEY", "") + if not api_key: + return "" + try: + r = requests.post( + "https://api.imgbb.com/1/upload", + data={"key": api_key, "image": base64.b64encode(svg_bytes).decode()}, + timeout=15, + ) + if r.status_code == 200: + return r.json().get("data", {}).get("url", "") + except Exception as e: + logger.debug(f"imgbb ์ ๋ก๋ ์คํจ: {e}") + return "" + + +def _generate_ai_image(topic: str) -> dict | None: + """๊ฒ์ ์คํจ ์ AI(OpenAI ์ด๋ฏธ์ง ๋ชจ๋ธ)๋ก ์ฃผ์ ์ด๋ฏธ์ง๋ฅผ ์์ฑํฉ๋๋ค. + + ์์ฑ ์ด๋ฏธ์ง๋ ImgBB์ ์ ๋ก๋ํด ๊ณต๊ฐ URL๋ก ๋ฐํํฉ๋๋ค. + - AI_IMAGE_FALLBACK=false ๋ก ๋นํ์ฑํ ๊ฐ๋ฅ (๊ธฐ๋ณธ ํ์ฑ) + - OPENAI_API_KEYยทIMGBB_API_KEY ๋ ๋ค ํ์ (์์ผ๋ฉด None โ SVG ์ธ๋ค์ผ๋ก) + - ์ด์๊ถยท์ ์๊ถ ์์ : ์ค์กด ์ธ๋ฌผยทํ ์คํธยท์ํฐ๋งํฌ ๊ธ์ง ํ๋กฌํํธ + """ + if os.getenv("AI_IMAGE_FALLBACK", "true").strip().lower() not in ("true", "1", "yes"): + return None + api_key = os.getenv("OPENAI_API_KEY", "").strip() + if not api_key: + return None + if not os.getenv("IMGBB_API_KEY", "").strip(): + logger.info("IMGBB_API_KEY ์์ โ AI ์์ฑ ์ด๋ฏธ์ง ํธ์คํ ๋ถ๊ฐ, SVG ์ธ๋ค์ผ๋ก ํด๋ฐฑ") + return None + topic = (topic or "").strip() + if not topic: + return None + try: + from openai import OpenAI + client = OpenAI(api_key=api_key) + model = os.getenv("OPENAI_IMAGE_MODEL", "gpt-image-1") + prompt = ( + f"Clean, modern blog header illustration about: {topic}. " + "Soft gradients, flat design with subtle depth, warm inviting colors. " + "Strictly NO text, NO letters, NO watermark, NO logos, " + "NO real or recognizable people or celebrity likenesses." + ) + resp = client.images.generate(model=model, prompt=prompt, size="1536x1024", n=1) + data = resp.data[0] + b64 = getattr(data, "b64_json", None) + if b64: + img_bytes = base64.b64decode(b64) + else: + src_url = getattr(data, "url", None) + if not src_url: + return None + img_bytes = requests.get(src_url, timeout=30).content + url = _upload_to_imgbb(img_bytes) + if not url: + logger.warning("AI ์ด๋ฏธ์ง ImgBB ์ ๋ก๋ ์คํจ โ SVG ์ธ๋ค์ผ๋ก ํด๋ฐฑ") + return None + logger.info(f"๐จ AI ์ด๋ฏธ์ง ์์ฑยท์ ๋ก๋ ์๋ฃ: '{topic[:40]}' โ {url[:70]}") + return { + "url": url, + "title": topic, + "width": 1536, + "height": 1024, + "source": "ai_generated", + } + except Exception as e: + logger.warning(f"AI ์ด๋ฏธ์ง ์์ฑ ์คํจ ({type(e).__name__}): {str(e)[:120]} โ SVG ์ธ๋ค์ผ๋ก ํด๋ฐฑ") + return None + + +def generate_fallback_image(title: str, keyword: str = "", theme: str = "") -> dict | None: + """๊ฒ์ ์ ๋ถ ์คํจ ์ ํด๋ฐฑ ์ด๋ฏธ์ง: โ AI ์์ฑ ์ด๋ฏธ์ง โ โก SVG ์ ๋ชฉ ์ธ๋ค์ผ.""" + topic = (title or keyword or "").strip() + img = _generate_ai_image(topic) + if img: + img["alt_text"] = topic[:50] + img["search_query"] = topic + return img + return generate_title_thumbnail(title, keyword, theme=theme) + + +def generate_title_thumbnail(title: str, keyword: str = "", theme: str = "") -> dict | None: + """ + ์ ๋ชฉ ๊ธฐ๋ฐ SVG ์ธ๋ค์ผ ์นด๋๋ฅผ ์์ฑํฉ๋๋ค (์ด๋ฏธ์ง ๊ฒ์ ์ ๋ถ ์คํจ ์ ํด๋ฐฑ). + - ์ฃผ์ ๋ณ ๊ทธ๋ผ๋์ธํธ ๋ฐฐ๊ฒฝ + ์นดํ ๊ณ ๋ฆฌ ์ด๋ชจ์ง + ์ ๋ชฉ ํ ์คํธ + - IMGBB_API_KEY ์ค์ ์ ๊ณต๊ฐ URL ์ ๋ก๋, ์๋๋ฉด data URI๋ก ๋ณธ๋ฌธ์ ์ง์ ์๋ฒ ๋ + """ + text = (title or keyword or "").strip() + if not text: + return None + c1, c2, accent, emoji = _thumb_theme(f"{title} {keyword}", theme_name=theme) + lines = _wrap_title(text) + + line_h = 78 + total_h = len(lines) * line_h + start_y = 340 - total_h // 2 + 56 + tspans = "".join( + f']*>\s*๐\s*๋ชฉ์ฐจ\s*
\s*]*>.*?
\s*{html.escape(l)} ' + for i, l in enumerate(lines) + ) + svg = f"""""" + svg_bytes = svg.encode("utf-8") + + url = _upload_to_imgbb(svg_bytes) + if not url: + url = "data:image/svg+xml;base64," + base64.b64encode(svg_bytes).decode() + + logger.info(f"์ ๋ชฉ ์ธ๋ค์ผ ์์ฑ: '{text[:30]}' ({'imgbb' if url.startswith('http') else 'data URI'}, {len(svg_bytes)}B)") + return { + "url": url, + "title": text, + "width": 1200, + "height": 630, + "source": "generated_thumbnail", + "generated": True, + "alt_text": text if len(text) <= 50 else text[:50].rsplit(" ", 1)[0], + "search_query": keyword or text, + } + + def fetch_images_for_queries( queries: list[str], naver_client_id: str = "", naver_client_secret: str = "", article_plain_text: str = "", keyword: str = "", + pixabay_api_key: str = "", + title: str = "", ) -> list[dict]: - """์น์ ๋ณ ์ฟผ๋ฆฌ ๋ชฉ๋ก์ ๋ง์ถฐ ์ด๋ฏธ์ง๋ฅผ ๊ฒ์(ํ๋ณด 4๊ฐ ์ค ๊ด๋ จ์ฑ ์ต๊ณ ์ ํ)ํ๊ณ Claude๋ก ์ต์ข ๊ฒ์ฆํฉ๋๋ค.""" + """์น์ ๋ณ ์ฟผ๋ฆฌ ๋ชฉ๋ก์ ๋ง์ถฐ ์ด๋ฏธ์ง๋ฅผ ๊ฒ์(Pixabay โ ๋ค์ด๋ฒ โ DDG โ Wikimedia)ํ๊ณ Claude๋ก ์ต์ข ๊ฒ์ฆํฉ๋๋ค. + ๋ชจ๋ ๊ฒ์์ด ์คํจํ๋ฉด ์ ๋ชฉ ๊ธฐ๋ฐ SVG ์ธ๋ค์ผ์ ์์ฑํด ๋์ฒดํฉ๋๋ค (title ์ ๊ณต ์).""" images = [] + seen_urls: set[str] = set() + seen_titles: set[str] = set() # ๊ฐ์ ์ฌ์ง์ด ๋ค๋ฅธ URL๋ก ๋ฐ๋ณต ์ ํ๋๋ ๊ฒ ๋ฐฉ์ง (ํ๊ทธ ๋ฌธ์์ด ๊ธฐ์ค) + + def _norm_title(im: dict) -> str: + return re.sub(r"\s+", " ", (im.get("title") or "").strip().lower())[:80] + + def _is_dup(im: dict) -> bool: + t = _norm_title(im) + return im.get("url", "") in seen_urls or (bool(t) and t in seen_titles) + + def _remember(im: dict) -> None: + seen_urls.add(im.get("url", "")) + t = _norm_title(im) + if t: + seen_titles.add(t) + for query in queries: - img = _fetch_best_image(query, naver_client_id, naver_client_secret, n_candidates=4) + img = _fetch_best_image(query, naver_client_id, naver_client_secret, n_candidates=6, + pixabay_api_key=pixabay_api_key) if img: - img["search_query"] = query - img["alt_text"] = query if len(query) <= 50 else query[:50].rsplit(" ", 1)[0] - score = _score_title_relevance(img, query) - logger.info(f"์ด๋ฏธ์ง ์์ง ์ฑ๊ณต: '{query}' โ ์ ๋ชฉ='{img.get('title','')[:40]}' (๊ด๋ จ์ฑ={score:.2f})") + if _is_dup(img): + logger.debug(f"์ค๋ณต ์ด๋ฏธ์ง ๊ฑด๋๋: '{query}' โ {img.get('url','')[:60]}") + # ๊ฐ์ ์ฟผ๋ฆฌ๋ก ํ๋ณด๋ฅผ ๋ ์์ฒญํด ๋ค๋ฅธ ์ด๋ฏธ์ง ํ์ + candidates = _search_all_sources( + _simplify_query(query, 2) or query, + naver_client_id, naver_client_secret, 8, + pixabay_api_key=pixabay_api_key, + ) + alt_img = next((c for c in candidates if not _is_dup(c)), None) + if alt_img: + img = alt_img + img["search_query"] = query + img["alt_text"] = query if len(query) <= 50 else query[:50].rsplit(" ", 1)[0] + score = _score_title_relevance(img, query) + logger.info(f"๋์ฒด ์ด๋ฏธ์ง ์์ง: '{query}' โ ์ ๋ชฉ='{img.get('title','')[:40]}' (๊ด๋ จ์ฑ={score:.2f})") + else: + logger.warning(f"์ค๋ณต ๋์ฒด ์ด๋ฏธ์ง ์์: '{query}' โ ๊ฑด๋๋") + img = None + if img: + img["search_query"] = query + img["alt_text"] = query if len(query) <= 50 else query[:50].rsplit(" ", 1)[0] + score = _score_title_relevance(img, query) + logger.info(f"์ด๋ฏธ์ง ์์ง ์ฑ๊ณต: '{query}' โ ์ ๋ชฉ='{img.get('title','')[:40]}' (๊ด๋ จ์ฑ={score:.2f})") + _remember(img) else: logger.warning(f"์ด๋ฏธ์ง ์์: '{query}'") if img: images.append(img) - # Claude๋ก ์ต์ข ๊ด๋ จ์ฑ ๊ฒ์ฆ (article_plain_text ์ ๊ณต ์) - if images and article_plain_text: + # Claude๋ก ์ต์ข ๊ด๋ จ์ฑ ๊ฒ์ฆ (article_plain_text ์ ๊ณต ์, ์ด๋ฏธ์ง 2๊ฐ ์ด์์ผ ๋๋ง) + # ์ด๋ฏธ์ง๊ฐ 1๊ฐ๋ฟ์ด๋ฉด Claude ํํฐ๋ฅผ ๊ฑฐ์น์ง ์์ โ ์ ์ผํ ํ๋ณด๋ฅผ "์์" ํ์ ์ผ๋ก ์ ๊ฑฐ ๋ฐฉ์ง + if images and article_plain_text and len(images) >= 2: images = _filter_relevant_images(images, keyword or queries[0], article_plain_text) + # ์ต์ข ํด๋ฐฑ: ์ด๋ฏธ์ง๊ฐ ํ๋๋ ์์ผ๋ฉด ์ ๋ชฉ ๊ธฐ๋ฐ ์ธ๋ค์ผ ์์ฑ + # + ๊ธ ๋ด์ฉ๊ณผ ๊ด๋ จ๋ ์ค์ ์ด๋ฏธ์ง๋ ํจ๊ป ๊ฒ์ํด ์ฒจ๋ถ + if not images and (title or keyword): + thumb = generate_fallback_image(title, keyword) + if thumb: + # ์ค์ ์ฌ์ง ์ด๋ฏธ์ง ์ถ๊ฐ ๊ฒ์ (์ธ๋ค์ผ๊ณผ ํจ๊ป ์ ๊ณต) + search_kw = keyword or title or "" + simple_q = _simplify_query(search_kw, 2) or search_kw + real_img = _fetch_best_image( + simple_q, naver_client_id, naver_client_secret, + n_candidates=6, pixabay_api_key=pixabay_api_key, + ) + if real_img: + real_img["search_query"] = simple_q + real_img["alt_text"] = simple_q if len(simple_q) <= 50 else simple_q[:50].rsplit(" ", 1)[0] + logger.info(f"์ธ๋ค์ผ ํด๋ฐฑ + ๊ด๋ จ ์ด๋ฏธ์ง ์ถ๊ฐ: '{real_img.get('title','')[:40]}'") + images.append(real_img) + images.append(thumb) + return images +def _safe_caption(img: dict, alt: str) -> str: + """์บก์ ํ ์คํธ ๊ฒฐ์ โ ํ์ผ๋ช ยทPixabay ํ๊ทธ ๋์ดยท๋ฌด์๋ฏธํ ์ ๋ชฉ์ alt๋ก ๋์ฒดํฉ๋๋ค.""" + title = (img.get("title") or "").strip() + if not title or re.search(r'\.(jpe?g|png|webp|svg|gif)$', title, re.I): + return alt + if len(title) < 4: + return alt + # Pixabay ํ๊ทธ ํ์ ๊ฐ์ง: "word / word / word ..." (์ฌ๋์ 2๊ฐ ์ด์ โ ํ๊ทธ ๋์ด) + if len(re.findall(r'\s*/\s*', title)) >= 2: + return alt + return title + + def _make_img_html(img: dict, alt: str, caption: str = "") -> str: """์ด๋ฏธ์ง SEO ์ต์ ํ HTML ์์ฑ.""" alt_safe = html.escape(alt, quote=True) @@ -329,6 +904,10 @@ def inject_images_into_content(content: str, images: list[dict], keyword: str) - if not images: return content + # ๊ธ ๊ฐ ์ค๋ณต ๋ฐฉ์ง: ์ฝ์ ๋๋ ์ด๋ฏธ์ง URL + ์ ๋ชฉ ์ง๋ฌธ ๊ธฐ๋ก + mark_images_used([img.get("url", "") for img in images], + [img.get("title", "") for img in images]) + img_iter = iter(enumerate(images)) def _alt(img: dict, fallback: str) -> str: @@ -339,7 +918,8 @@ def _alt(img: dict, fallback: str) -> str: if first_p: try: idx, img = next(img_iter) - img_html = _make_img_html(img, _alt(img, keyword), img.get("title", "")) + alt = _alt(img, keyword) + img_html = _make_img_html(img, alt, _safe_caption(img, alt)) content = content[:first_p.end()] + img_html + content[first_p.end():] except StopIteration: return content @@ -352,15 +932,17 @@ def _alt(img: dict, fallback: str) -> str: for pos in insert_positions: try: idx, img = next(img_iter) - img_html = _make_img_html( - img, - _alt(img, f"{keyword} ๊ด๋ จ ์ด๋ฏธ์ง {idx + 1}"), - img.get("title", ""), - ) + alt = _alt(img, f"{keyword} ๊ด๋ จ ์ด๋ฏธ์ง {idx + 1}") + img_html = _make_img_html(img, alt, _safe_caption(img, alt)) actual_pos = pos + offset content = content[:actual_pos] + img_html + content[actual_pos:] offset += len(img_html) except StopIteration: break + # โข H2 ์ฌ๋กฏ์ด ๋ถ์กฑํด ๋จ์ ์ด๋ฏธ์ง: ๋ณธ๋ฌธ ๋์ ๋ฐฐ์น (๋ฒ๋ฆฌ์ง ์์) + for idx, img in img_iter: + alt = _alt(img, f"{keyword} ๊ด๋ จ ์ด๋ฏธ์ง {idx + 1}") + content = content + _make_img_html(img, alt, _safe_caption(img, alt)) + return content diff --git a/blog-automation/incident_log.py b/blog-automation/incident_log.py new file mode 100644 index 0000000000000..ce807cb826498 --- /dev/null +++ b/blog-automation/incident_log.py @@ -0,0 +1,147 @@ +"""์ธ์๋ํธ ๋ก๊ทธ โ ์ธ์ ์ด ๋๋๋ ๋จ๋ ์ฅ์ ๋์ ์ง์ ์ ์ฅ์. + +๋๋ฒ๊น ์ธ์ ๋ง๋ค ๊ทผ๋ณธ ์์ธ์ ์ฒ์๋ถํฐ ๋ค์ ์ถ๋ฆฌํ์ง ์๋๋ก, ๋ฐ๊ฒฌํ ๋ฌธ์ ์ +์์ ๋ด์ญ์ ๊ตฌ์กฐํํด์ ๊ธฐ๋กํฉ๋๋ค. ๋ค์ ์ธ์ (๋๋ ๋ค์ ๋ด๋น์)์ด +docs/data/incident_log.json์ ๋จผ์ ๊ฒ์ํ๋ฉด ๊ฐ์ ์ฅ์ ๋ฅผ ํจ์ฌ ๋นจ๋ฆฌ +์ง๋จํ ์ ์์ต๋๋ค. + +Usage (์ฝ๋์์): + from incident_log import add_incident + add_incident( + title="GSC ๋๋ฉ์ธ ์์ฑ 403", + symptom="์ฌ์ดํธ๋งต ์ ์ถ์ด blog1์์๋ง 403", + root_cause="URL-ํ๋ฆฌํฝ์ค ์กฐํ๊ฐ ๋๋ฉ์ธ ์์ฑ GSC์ ์ ๋ง์", + fix="_domain_property_for() ํด๋ฐฑ ์ถ๊ฐ", + files=["blog_analytics.py", "gsc_indexing.py"], + prevention="tests/test_auth_flow.py์ ํ๊ท ํ ์คํธ ์ถ๊ฐ", + ) + +CLI: + python incident_log.py --list # ์ต๊ทผ ์ธ์๋ํธ ๋ชฉ๋ก + python incident_log.py --search "invalid_grant" # ํค์๋ ๊ฒ์ +""" + +import argparse +import json +import os +import re +from datetime import datetime, timezone + +_DOCS_DATA = os.path.join(os.path.dirname(__file__), "..", "docs", "data") +_LOG_FILE = os.path.join(_DOCS_DATA, "incident_log.json") + + +def _load() -> list[dict]: + if not os.path.exists(_LOG_FILE): + return [] + try: + with open(_LOG_FILE, encoding="utf-8") as f: + return json.load(f) + except (json.JSONDecodeError, OSError): + return [] + + +def _save(entries: list[dict]) -> None: + os.makedirs(_DOCS_DATA, exist_ok=True) + with open(_LOG_FILE, "w", encoding="utf-8") as f: + json.dump(entries, f, ensure_ascii=False, indent=2) + + +def add_incident( + title: str, + symptom: str, + root_cause: str, + fix: str, + files: list[str] | None = None, + prevention: str = "", +) -> dict: + """์ ์ธ์๋ํธ๋ฅผ ๊ธฐ๋กํ๊ณ ์ ์ฅํฉ๋๋ค.""" + entry = { + "id": datetime.now(timezone.utc).strftime("%Y%m%d%H%M%S"), + "date": datetime.now(timezone.utc).isoformat(), + "title": title, + "symptom": symptom, + "root_cause": root_cause, + "fix": fix, + "files": files or [], + "prevention": prevention, + } + entries = _load() + entries.insert(0, entry) + _save(entries[:200]) # ์ต๋ 200๊ฑด ๋ณด๊ด + return entry + + +def search(keyword: str) -> list[dict]: + kw = keyword.lower() + return [ + e for e in _load() + if kw in json.dumps(e, ensure_ascii=False).lower() + ] + + +_STOPWORDS = {"the", "a", "an", "of", "to", "for", "and", "or", "is", "are", "in", "on"} + + +def _tokenize(text: str) -> set[str]: + words = re.findall(r"[a-zA-Z0-9_]+|[๊ฐ-ํฃ]+", text.lower()) + return {w for w in words if len(w) > 1 and w not in _STOPWORDS} + + +def match_known(message: str, min_overlap: int = 2) -> dict | None: + """์ ์ง๋จ ๋ฉ์์ง๋ฅผ ๊ณผ๊ฑฐ ์ธ์๋ํธ์ ์๋ ๋์กฐํฉ๋๋ค (์๊ฐ์ง๋จ ๋์กฐ ๋ด). + + ๊ฐ์ ์ข ๋ฅ์ ์ฅ์ (์: GSC 403, invalid_grant)๊ฐ ์ฌ๋ฐํ์ ๋, ์ฌ๋์ด ๋ค์ + ์ฒ์๋ถํฐ ์์ธ์ ์ถ๋ฆฌํ์ง ์๋๋ก ์ด๋ฏธ ๊ธฐ๋ก๋ root_cause/fix๋ฅผ ์ฆ์ ๋ณด์ฌ์ค๋๋ค. + ํ ํฐ ๊ฒน์นจ ๊ฐ์๋ก๋ง ํ๋จํ๋ ๋จ์ ๋งค์นญ โ ์ ๊ตํ ์ ์ฌ๋๊ฐ ์๋๋ผ "์ด๊ฑฐ ์ ์ + ๋ณธ ๋ฌธ์ ๊ฐ์๋ฐ?"๋ฅผ ๋น ๋ฅด๊ฒ ์๋ ค์ฃผ๋ ์ฉ๋์ ๋๋ค. + """ + msg_tokens = _tokenize(message) + if not msg_tokens: + return None + + best, best_score = None, 0 + for entry in _load(): + haystack = " ".join([entry.get("title", ""), entry.get("symptom", "")]) + overlap = len(msg_tokens & _tokenize(haystack)) + if overlap > best_score: + best, best_score = entry, overlap + + if best and best_score >= min_overlap: + return { + "incident_id": best["id"], + "title": best["title"], + "root_cause": best["root_cause"], + "fix": best["fix"], + "match_score": best_score, + } + return None + + +def main() -> int: + parser = argparse.ArgumentParser(description="์ธ์๋ํธ ๋ก๊ทธ ์กฐํ") + parser.add_argument("--list", action="store_true") + parser.add_argument("--search", default="") + args = parser.parse_args() + + if args.search: + results = search(args.search) + else: + results = _load()[:10] + + if not results: + print("๊ธฐ๋ก๋ ์ธ์๋ํธ๊ฐ ์์ต๋๋ค.") + return 0 + + for e in results: + print(f"\n[{e['date'][:10]}] {e['title']}") + print(f" ์ฆ์: {e['symptom']}") + print(f" ์์ธ: {e['root_cause']}") + print(f" ์กฐ์น: {e['fix']}") + if e.get("prevention"): + print(f" ์ฌ๋ฐ๋ฐฉ์ง: {e['prevention']}") + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/blog-automation/internal_linker.py b/blog-automation/internal_linker.py index 54305c3d924e5..cede85623d2d2 100644 --- a/blog-automation/internal_linker.py +++ b/blog-automation/internal_linker.py @@ -69,7 +69,8 @@ def _extract_keywords(post: dict) -> list[str]: return sorted(kws, key=len, reverse=True) # ๊ธด ํค์๋ ์ฐ์ ๋งค์นญ -def _score_relevance(candidate: dict, current_tags: set, current_keyword: str) -> int: +def _score_relevance(candidate: dict, current_tags: set, current_keyword: str, + current_article_type: str = "") -> int: """ํ๋ณด ํฌ์คํธ์ ํ์ฌ ํฌ์คํธ์ ๊ด๋ จ๋ ์ ์ (๊ณต์ ํ๊ทธ ์ ๊ธฐ๋ฐ)""" cand_tags = set(candidate.get("tags", []) or []) shared = len(current_tags & cand_tags) @@ -78,6 +79,9 @@ def _score_relevance(candidate: dict, current_tags: set, current_keyword: str) - for word in current_keyword.lower().split(): if len(word) >= 2 and word in cand_kw: shared += 1 + # ๊ฐ์ ์ํฐํด ์ ํ(how_toยทreview ๋ฑ) ๋ณด๋์ค โ ์ ํ์ด ๊ฒน์น๋ฉด ๋ ์ ๊ด์ฌ๋ ์ ์ฌ + if current_article_type and candidate.get("articleType") == current_article_type: + shared += 1 return shared @@ -185,8 +189,10 @@ def insert_internal_links(post_data: dict) -> str: current_title = post_data.get("title", "") current_keyword = (post_data.get("keyword") or "").lower() - current_tags = set(post_data.get("tags", []) or []) + # tags ์ฐ์ , ์์ผ๋ฉด labels ํด๋ฐฑ (์์ฑ ์งํ post_data๋ labels๋ง ๊ฐ์ง ์ ์์) + current_tags = set(post_data.get("tags") or post_data.get("labels") or []) current_url = post_data.get("blogUrl", "") # ์์ง ์ ๋ก๋ ์ ์ด๋ฉด ๋น์ด์์ + current_article_type = post_data.get("article_type", "") or post_data.get("articleType", "") # ๊ธฐ์กด ํฌ์คํธ ์ธ๋ฑ์ค ๋ก๋ all_posts = _load_posts_index() @@ -199,7 +205,7 @@ def insert_internal_links(post_data: dict) -> str: # ๊ด๋ จ๋ ์ ์ ๊ณ์ฐ โ ์์ MAX_LINKS ๊ฐ ์ ํ scored = [ - (p, _score_relevance(p, current_tags, current_keyword)) + (p, _score_relevance(p, current_tags, current_keyword, current_article_type)) for p in candidates ] scored = [(p, s) for p, s in scored if s > 0] diff --git a/blog-automation/keyword_collector.py b/blog-automation/keyword_collector.py index 71a762d2a02b8..475ce5a103bfa 100644 --- a/blog-automation/keyword_collector.py +++ b/blog-automation/keyword_collector.py @@ -15,9 +15,11 @@ import os import re import xml.etree.ElementTree as ET -from datetime import datetime, timedelta +from datetime import datetime, timedelta, timezone +from email.utils import parsedate_to_datetime import requests +from config import claude_text logger = logging.getLogger(__name__) @@ -119,6 +121,253 @@ def _get_used_kw_file(blog_id: str = "") -> str: "์์ ๊ฑฐ ์ถํด๊ทผ 3๊ฐ์ ํด๋ณธ ์์ง ์ฅ๋จ์ ์ ๋ฆฌ", ] +_FALLBACK_KEYWORDS_BLOG1 = [ + # โ๏ธ ๊ตญ๋ด ์ฌํ โ ์จ๊ฒจ์ง ๋ช ์ยท๋ง์งยท์์ ์์ง ํ๊ธฐ + "์ ์ฃผ๋ ์จ๊ฒจ์ง ๋ช ์ ํ์ง์ธ๋ง ์๋ ๊ณณ ์์ง ํ๊ธฐ", + "๋ถ์ฐ ๊ณจ๋ชฉ ๋ง์ง ๊ด๊ด๊ฐ ์๋ ์ง์ง ๋ง์ง ์ง์ ๊ฐ๋ดค๋๋", + "๊ฐ๋ฆ ์ฌํ ์์ ๊ฐ์ฑ๋น ์ต๊ณ ์๋ ๊ณณ๊ณผ ์ค๋งํ ๊ณณ ๋น๊ต", + "์์ธ ๊ทผ๊ต ๋น์ผ์น๊ธฐ ์จ์ ๋ช ์ ๊ณ์ ๋ณ ์ถ์ฒ", + "๊ฒฝ์ฃผ ๋น ์ง๋ฉด ํํํ๋ ์ผ๊ฒฝ ๋ช ์ ์ง์ ๋ค๋ ์จ ํ๊ธฐ", + "์ ์ฃผ ํ์ฅ๋ง์ ๋ง์ง ์ค ์ ์๋ ์ง ์์ง ์ถ์ฒ", + "์ฌ์ ๋ฐค๋ฐ๋ค ์์ ์ค์ ๋ทฐ ๊ฐ์ฑ๋น ๋น๊ต ์ง์ ์์ฝํด๋ดค๋๋", + "์์ด ์ฌํ ๊ฒจ์ธ์ ๊ฐ๋ฉด ์ข์ ์ด์ ์ ์จ์ ๋ง์ง", + "ํต์ ํ๋ฃจ ์ฝ์ค ์์ง ๋ช ์์ ์์ ์ค์ ํ๊ธฐ", + "๋จํด ๋ ์ผ๋ง์ ๋ฐฉ๋ฌธ ์ ์์์ผ๋ฉด ์ข์ ๊ฒ๋ค", + "์ธ์ฒ ์ฐจ์ด๋ํ์ด ๋ง์ง๊ณผ ๋ณผ๊ฑฐ๋ฆฌ ์ง์ ๋ค๋ ์จ ์์ง ํ๊ฐ", + "์๋ ํํ๋ง์ ํผ์ ์ฌํํ๊ธฐ ์ข์๊น ์์ง ํ๊ธฐ", + "์ถ์ฒ ๋ญ๊ฐ๋น ๊ณจ๋ชฉ ์ง์ง ๋ง์ง๊ณผ ํผํด์ผ ํ ๊ณณ", + "๋ด์ ๋ฉํ์ธ์ฟผ์ด์๊ธธ ๊ณ์ ๋ณ ๋ค๋ฅธ ๋งค๋ ฅ ์ง์ ๋ฐฉ๋ฌธ ํ๊ธฐ", + "ํฌํญ ๊ตฌ๋ฃกํฌ ๊ณผ๋ฉ๊ธฐ ๊ฑฐ๋ฆฌ์ ์จ์ ๋ง์ง ์์ง ์ถ์ฒ", + # ๐ ํด์ธ ์ฌํ โ ํญ๊ณต๊ถยทํธํ ยทํจํค์ง ์ ๋ณด ๋ฐ ํ์ง ์ฒดํ + "์ผ๋ณธ ์ค์ฌ์นด ํญ๊ณต๊ถ ๊ฐ์ฅ ์ธ๊ฒ ์ฌ๋ ๋ฐฉ๋ฒ ์ง์ ๋น๊ต", + "๋ฒ ํธ๋จ ๋ค๋ญ ํจํค์ง vs ์์ ์ฌํ ๋น์ฉ ์ง์ ๋น๊ตํด๋ดค๋๋", + "ํ๊ตญ ๋ฐฉ์ฝ ํธํ ๊ฐ์ฑ๋น ์ข์ ๊ณณ๊ณผ ์ค๋งํ ๊ณณ ์์ง ํ๊ธฐ", + "์ ๋ฝ ์ฒ์ ์ฌํ ํญ๊ณต๊ถ ํธํ ํ ๋ฒ์ ์ธ๊ฒ ์์ฝํ๋ ๋ฒ", + "ํ๋ฆฌํ ์ธ๋ถ ํ์ง ์ฒดํ ์ง์ง ์ฆ๊ธฐ๋ ๋ฐฉ๋ฒ๊ณผ ์ฃผ์์ฌํญ", + "ํ์ฝฉ ์ฑ๊ฐํฌ๋ฅด ํญ๊ณต๊ถ ์๊ธฐ๋ณ ๊ฐ๊ฒฉ ์ฐจ์ด ์ง์ ์ถ์ ํด๋ดค๋๋", + "์ผ๋ณธ ๋์ฟ ํธํ ์์น๋ณ ๊ฐ๊ฒฉ ์ฐจ์ด์ ์ถ์ฒ ์ง์ญ ์์ง ๋น๊ต", + "๊ด ํจํค์ง ์ฌํ ์ค์ ํฌํจ ๋ด์ญ๊ณผ ์ถ๊ฐ ๋น์ฉ ๊ณต๊ฐ", + "ํฐํค ์ด์คํ๋ถ ํ์ง ๋ฌผ๊ฐ์ ํธํ ์์ฝ ์ค์๋ด", + "์คํ์ธ ๋ฐ๋ฅด์ ๋ก๋ ํญ๊ณต๊ถ ์ต์ ๊ฐ ์ก๋ ํ์ด๋ฐ ์ง์ ๊ฒฝํ", + "ํ์์ด ํธํ ์์ฝ ์๊ธฐ์ ๊ฐ๊ฒฉ ๋ณ๋ ์ง์ ์ถ์ ํ ๊ฒฐ๊ณผ", + "๋ชจ๋ก์ฝ ํ์ง ์ฒดํ ์ฌํ ์ค๋น ๊ณผ์ ๊ณผ ์ค์๋ด ์์ง ๊ณต๊ฐ", + # ๐ฌ ๋๋ผ๋งยท์ํ โ ๊ตญ๋ด์ธ ์ธ๊ธฐ ์ํ ๋ฆฌ๋ทฐ ๋ฐ ๋ฑ์ฅ์ธ๋ฌผ ๋ถ์ + "๋ทํ๋ฆญ์ค ํ๊ตญ ๋๋ผ๋ง 2026 ์ง๊ธ ๋ด์ผ ํ ์ํ ์ถ์ฒ", + "ํฐ๋น ๋๋ผ๋ง ์ต์ ์ ์ค๊ฑฐ๋ฆฌ์ ๋ฑ์ฅ์ธ๋ฌผ ๊ด๊ณ๋ ์ ๋ฆฌ", + "์ฟ ํกํ๋ ์ด ์ค๋ฆฌ์ง๋ ๋๋ผ๋ง ์์ฃผ ํ๊ธฐ ์์ง ๋ฆฌ๋ทฐ", + "๊ตญ๋ด ๋ฐ์ค์คํผ์ค ์ต์ ์ํ ๊ด๋ ํ๊ธฐ ์คํฌ ์์ด", + "๋ง๋ธ DC 2026 ์ ์ ์ํ ๊ธฐ๋์ ์ฌ์ ์ ๋ณด ์ ๋ฆฌ", + "๋๋ผ๋ง ์ฃผ์ธ๊ณต ๋ฐฐ์ฐ ์ค์ ์ฐ๊ธฐ๋ ฅ ์์ง ํ๊ฐ์ ์บ๋ฆญํฐ ๋ถ์", + "OTT ๋๋ผ๋ง ๋ชฐ์๋ณด๊ธฐ ์ถ์ฒ ์ฅ๋ฅด๋ณ ์จ์ ๋ช ์ ์ ๋ฆฌ", + "์ํ ๊ฒฐ๋ง ํด์ ๋ณด๊ณ ๋์ ๊ถ๊ธํ๋ ๊ฒ๋ค ์ ๋ฆฌ", + "ํ๊ตญ ์ํ vs ํด์ธ ๋ฆฌ๋ฉ์ดํฌ ์์๊ณผ ๋น๊ตํด๋ณด๋", + "๋๋ผ๋ง OST ๋น ์ง๋ฉด ์์ฌ์ด ๋ช ๊ณก ๋ชจ์ ์์ฒญ์ ๋ฐ์", + # ๐ต ์ฐ์ยทK-POP โ ์์ด๋ยท๋ฐฐ์ฐ ์์, ์๋ฐยท๊ณต์ฐ ์ ๋ณด + "2026 K-POP ์ ๋ณด ์ด๋ฌ์ ์ฃผ๋ชฉ ์๋ฐ ์์ง ๋ฆฌ๋ทฐ", + "์์ด๋ ์ปด๋ฐฑ 2026 ์๋ฐ๊ธฐ ๊ธฐ๋์ ์ฌ์ ์ ๋ณด ์ ๋ฆฌ", + "K-POP ์ฝ์ํธ ํฐ์ผ ์๋งค ๊ฟํ ๊ฒฝ์๋ฅ ๋ฎ์ถ๋ ๋ฐฉ๋ฒ", + "๋ฐฐ์ฐ ์ต๊ทผ ์ํ๊ณผ ๊ทผํฉ ์์ง ํฌ์ฌ ์๋ ํ๊ฐ", + "์์ด๋ ํฌ๋ฏธํ ์ฒ์ ๊ฐ๋ ์ฌ๋์ ์ํ ์ค๋น ๊ฐ์ด๋", + "K-POP ์๋ฐ ์ด๋ ํ๋งค ์์์ ์๋ฏธ ๋ถ์", + "๊ตญ๋ด ์์ ์ฐจํธ ์ค์๊ฐ ์์ ๋ณ๋๊ณผ ํ์ ์ ๊ณก", + "์ฐ์์ธ ํ๋ณด ์ดฌ์์ง์ ํจ์ ์คํ์ผ ๋ฐ๋ผํ๊ธฐ", + "๊ฑธ๊ทธ๋ฃน ๋ณด์ด๊ทธ๋ฃน ๋ฐ๋ท 2026 ์ ์ธ ์ฃผ๋ชฉํด์ผ ํ ์ด์ ", + "K-POP ์คํธ๋ฆฌ๋ฐ ์์ ์ฑ์ ๋ถ์๊ณผ ํฌ๋ค ๋ฐ์ ์ ๋ฆฌ", +] + +_FALLBACK_KEYWORDS_BLOG2_IT = [ + # ๐ค AIยท์์ฑํ AI + "์ฑGPT ์ต์ ์ ๋ฐ์ดํธ ๋ฌ๋ผ์ง ๊ธฐ๋ฅ ์ง์ ์จ๋ดค๋๋", + "ํด๋ก๋ AI vs ์ฑGPT 2026 ์ค๋ฌด ํ์ฉ ์์ง ๋น๊ต", + "AI ์ด๋ฏธ์ง ์์ฑ ๋ฌด๋ฃ ํด 5๊ฐ์ง ์ง์ ํ ์คํธ ๊ฒฐ๊ณผ", + "์์ฑํ AI ์ ๋ฌด ์๋ํ ์ค์ ๋ก ์๊ฐ ์ผ๋ง๋ ์ค์๋", + "AI ์ฝ๋ฉ ์ด์์คํดํธ GitHub Copilot 3๊ฐ์ ์จ๋ณธ ํ๊ธฐ", + "๊ตฌ๊ธ ์ ๋ฏธ๋์ด ์ค์ ์ฌ์ฉํด๋ณด๋ ์ฑGPT์ ๋ค๋ฅธ ์ ", + "AI ๋์์ ์์ฑ ํด ์ต์ ๋น๊ต ์ค์ ๊ฒฐ๊ณผ๋ฌผ ํ์ง์", + "๋ ธ์ฝ๋ AI ์ฑ ๋น๋ ์ง์ ๋ง๋ค์ด๋ณธ ์์ง ํ๊ธฐ", + # ๐ฑ ์ค๋งํธํฐยท๊ฐ์ + "๊ฐค๋ญ์ S26 vs ์์ดํฐ 17 ์ค์ฌ์ฉ ๋น๊ต ์ด๋ค ๊ฑธ ์ด๊น", + "์์ดํฐ 17 ๊ตญ๋ด ์ถ์ ๊ฐ๊ฒฉ๊ณผ ๋ฌ๋ผ์ง ๊ธฐ๋ฅ ์ ๋ฆฌ", + "๊ฐค๋ญ์ ํด๋ ์ฒ์ ์ฌ์ฉํ๋ฉด์ ๋ถํธํ๋ ๊ฒ๋ค", + "์ ํ์์น vs ๊ฐค๋ญ์์์น ๊ฑด๊ฐ ๊ธฐ๋ฅ ์ง์ ๋น๊ต", + "๋ฌด์ ์ด์ดํฐ ์์ดํ vs ๊ฐค๋ญ์๋ฒ์ฆ ์์ง ๋น๊ต ํ๊ธฐ", + "ํ๋ธ๋ฆฟ ์์ดํจ๋ vs ๊ฐค๋ญ์ํญ ์ด๋ ๊ฑธ ์ฌ์ผ ํ ๊น", + "์ค๋งํธํ ๊ธฐ๊ธฐ ์ ๋ฌธ ์ฒ์ ์ค์นํ๋ฉด์ ์ค์ํ ๊ฒ๋ค", + # ๐ป PCยท๋ ธํธ๋ถ + "๋งฅ๋ถ ์์ด M4 ์ฒ์ ์จ๋ณธ ์๋์ฐ ์ ์ ์์ง ํ๊ธฐ", + "๊ฒ์ด๋ฐ ๋ ธํธ๋ถ 100๋ง์๋ ์ง์ ์จ๋ณด๊ณ ์ถ์ฒํ๋ ์ด์ ", + "SSD ์ ๊ทธ๋ ์ด๋ ์ง์ ํด๋ดค๋๋ ์๋ ์ผ๋ง๋ ๋นจ๋ผ์ก๋", + "์๋์ฐ11 ์ ๊ทธ๋ ์ด๋ ์ค์ ๋ก ํด๋ณด๋ ๋ฌ๋ผ์ง ์ ", + # ๐ ์ฑยท์๋น์คยทํ๋ซํผ + "์ ํ๋ธ ํ๋ฆฌ๋ฏธ์ 1๋ ์จ๋ณธ ์์ง ํ๊ธฐ ๋ ๊ฐ ํ๋", + "๋ ธ์ AI 3๊ฐ์ ์จ๋ณด๊ณ ์ ๋ฌด๊ฐ ๋ฌ๋ผ์ง ๊ฒ๋ค", + "์ฑGPT ํ๋ฌ์ค vs ๋ฌด๋ฃ ๋ฒ์ ์ค์ ์ฐจ์ด ์ง์ ๋น๊ต", + "๋ทํ๋ฆญ์ค vs ์ ํ๋ธ OTT ์๊ธ์ 2026 ๋น๊ต ์ ๋ฆฌ", + "์ฟ ํก ๋ก์ผ๋ฐฐ์ก ์ค์ ๋ก ๋ช ์๊ฐ ๋ง์ ์ค๋ ํ ์คํธํด๋ดค๋๋", + "์นด์นด์คํ์ด vs ๋ค์ด๋ฒํ์ด ์ด๋ค ๊ฒ ๋ ํํ ์ข์๊น", + # ๐ ๋ณด์ยท๊ฐ์ธ์ ๋ณด + "๊ฐ์ธ์ ๋ณด ์ ์ถ ํ์ธํ๋ ๋ฐฉ๋ฒ๊ณผ ๋์ฒ๋ฒ ์ง์ ํด๋ดค๋๋", + "VPN ๋ฌด๋ฃ vs ์ ๋ฃ ์ง์ ์จ๋ณด๊ณ ์ถ์ฒํ๋ ์ด์ ", + "์ค๋ฏธ์ฑ ํผ์ฑ ์ต์ ์๋ฒ๊ณผ ์ค์ ๋ก ๋นํ ๋ปํ ๊ฒฝํ", + "ํจ์คํค ๋น๋ฐ๋ฒํธ ์๋ ๋ก๊ทธ์ธ ์ง์ ์ค์ ํด๋ณด๋", + # โก IT ํธ๋ ๋ยท์ต์ ๋ด์ค + "2026 IT ํธ๋ ๋ ์ง์ฅ์ธ์ด ์์์ผ ํ ๊ธฐ์ ๋ณํ", + "์ ํ ๊ตฌ๊ธ ์ผ์ฑ ์ต์ ๋ฐํ ๋ด์ฉ ํต์ฌ๋ง ์ ๋ฆฌ", + "์ ๊ธฐ์ฐจ ์์จ์ฃผํ 2026 ์ค์ ์์ค์ ์ด๋๊น์ง ์๋", + "๋ฉํ๋ฒ์ค ํ์ค์ ์ด๋ค๊ฐ 2026 ์ค์ ์ฌ์ฉ ์ฌ๋ก ์ ๋ฆฌ", + "์์์ปดํจํฐ ์ผ๋ฐ์ธ์ด ์์์ผ ํ ๊ฒ๋ง ์ฝ๊ฒ ์ ๋ฆฌ", + "5G 6G ์ฐจ์ด์ ์ค์ํ ๋ณํ ์ง์ ์ฒด๊ฐํด๋ณด๋", + # ๐ ๏ธ IT ํ์ฉ ์ค์ ํ + "๊ตฌ๊ธ ๋๋ผ์ด๋ธ ํ์ฉ๋ฒ ๋ชฐ๋๋ ๊ธฐ๋ฅ ์จ๋ณด๊ณ ๋๋ ๊ฒ๋ค", + "์์ ๋์ ๊ตฌ๊ธ ์ํธ ์ฐ๋ฉด์ ๋ฌ๋ผ์ง ์ ๋ฌด ํจ์จ", + "์ ํ๋ธ ์ผ์ธ AI ์๋ํ ์ง์ ๋ง๋ค์ด๋ดค๋๋ ๊ตฌ๋ ์ ๋ณํ", + "๋ธ๋ก๊ทธ SEO ์ง์ ์ ์ฉํด๋ณด๊ณ ๊ฒ์ ์์ ๋ณํ ์ ๋ฆฌ", +] + +_FALLBACK_KEYWORDS_BLOG3 = [ + # ๐ ๊ธ์ต ๋ด์คยท์์ฅ ๋ํฅ + "์ฝ์คํผ ์ฝ์ค๋ฅ 2026 ํ๋ฐ๊ธฐ ์ ๋ง ํต์ฌ ์ ๋ฆฌ", + "๋ฏธ๊ตญ ์ฐ์ค ๊ธ๋ฆฌ ๊ฒฐ์ ํ๊ตญ ์ฆ์ ์ํฅ ๋ถ์", + "์๋ฌ๋ฌ ํ์จ ๊ธ๋ฑ๋ฝ ์์ธ๊ณผ ๊ฐ์ธํฌ์์ ๋์๋ฒ", + "2026 ๊ธ์ต์์ฅ ์ฃผ์ ์ด์ ์ง์ฅ์ธ์ด ์์์ผ ํ ๊ฒ", + "์ผ์ฑ์ ์ ์ฃผ๊ฐ ์ ๋ง 2026 ์ค์ ๊ณผ ์ฃผ์ฃผ ํ์ ๋ถ์", + "ETF ์์ฅ ์ต์ ๋ํฅ ์๋ก ๋์จ ์ํ ์ ๋ฆฌ", + "์ฑ๊ถ ๊ธ๋ฆฌ ์์น ์๋ ๊ฐ์ธ ํฌ์ ์ ๋ต ๋ณํ", + "๊ตญ๋ด์ธ ๋ถ๋์ฐ ์์ฅ 2026 ๊ธ๋ฆฌ ๋ณํ์ ์ ๋ง", + # ๐ฆ ์ํยท๋์ถยท์์ ๊ธ + "2026 ์ฃผ์ ์ํ ์ ๊ธ ๊ธ๋ฆฌ ๋น๊ต ๊ฐ์ฅ ๋์ ๊ณณ", + "์ฃผํ๋ด๋ณด๋์ถ ๊ธ๋ฆฌ ๋ณ๋ 2026 ๊ฐ์ํ๊ธฐ ํด์ผ ํ ๊น", + "์ฒญ๋ ์ ์ธ์๊ธ ๋์ถ ์กฐ๊ฑด๊ณผ ํ๋ 2026 ์ต์ ์ ๋ฆฌ", + "ISA ๊ณ์ข 2026 ๊ฐํธ ๋ด์ฉ ๋ฌด์์ด ๋ฌ๋ผ์ก๋", + "ํํนํต์ฅ ๊ธ๋ฆฌ ๋น๊ต 2026 ์ต์ ์์", + "์ ์ฉ๋์ถ ๊ธ๋ฆฌ ๋ฎ์ถ๋ ๋ฐฉ๋ฒ ์ง์ ์์๋ณธ ๊ฒฐ๊ณผ", + "์๊ธ์๋ณดํธ ํ๋ ์ํฅ 2026 ๋ด์ฉ๊ณผ ํ์ฉ๋ฒ", + # ๐๏ธ ์ ๋ถ ์ง์ ์์ฑ ยท๋ณต์ง + "2026 ์ ๋ถ ์ง์๊ธ ์ด์ ๋ฆฌ ๋์น๋ฉด ์๊น์ด ๊ฒ๋ค", + "์ฒญ๋ ๋์ฝ๊ณ์ข ๊ฐ์ ์กฐ๊ฑด๊ณผ ํํ 2026 ์ต์ ์ ๋ฆฌ", + "์ฒญ๋ ํฌ๋ง์ ๊ธ ๋ง๊ธฐ ํ ๋ค์ ๋จ๊ณ ์ ๋ถ ์ง์ ์ ๋ฆฌ", + "์์๊ณต์ธ ์ ๋ถ ์ง์๊ธ 2026 ์ ์ฒญ ๋ฐฉ๋ฒ๊ณผ ์กฐ๊ฑด", + "๊ทผ๋ก์ฅ๋ ค๊ธ ์๋ ์ฅ๋ ค๊ธ 2026 ์ ์ฒญ ๊ธฐ๊ฐ๊ณผ ๊ธ์ก", + "๊ตญ๋ฏผ์ทจ์ ์ง์์ ๋ 2026 ๋ฌ๋ผ์ง ๋ด์ฉ๊ณผ ์ ์ฒญ๋ฒ", + "์๋์ง ๋ฐ์ฐ์ฒ 2026 ๋์์ ์ ์ฒญ ๋ฐฉ๋ฒ ์ ๋ฆฌ", + "๊ธฐ์ด์ํ์๊ธ์ ์กฐ๊ฑด 2026 ๋ณ๊ฒฝ ๋ด์ฉ ํต์ฌ ์ ๋ฆฌ", + "์ค์๊ธฐ์ ์ฌ์ง์ ์ฐ๋ ์ ์ถ ๊ณต์ 2026 ๊ฐ์ ์กฐ๊ฑด", + "์ฃผ๊ฑฐ๊ธ์ฌ ์ ์ฒญ ์กฐ๊ฑด๊ณผ ๊ธ์ก 2026 ์ต์ ์ ๋ฆฌ", + "์ถ์ฐ์ง์๊ธ 2026 ์ง๋ฐฉ๋ณ ๊ธ์ก ์ฐจ์ด์ ์ ์ฒญ๋ฒ", + "์ก์ํด์ง ๊ธ์ฌ 2026 ์ธ์ ๋ด์ฉ๊ณผ ์ ์ฒญ ๋ฐฉ๋ฒ", + "์ค์ ๊ธ์ฌ 2026 ์๊ธ ์กฐ๊ฑด ๊ณ์ฐ๋ฒ ์ง์ ์ ๋ฆฌ", + "๊ตญ๋ฏผ์ฐ๊ธ 2026 ๊ฐํธ ๋ด์ฉ ๋ ธํ ๋๋น ์ด๋ป๊ฒ ๋ฐ๋๋", + # ๐ฐ ์ธ๊ธยท์ ์ธ + "์ฐ๋ง์ ์ฐ 2026 ๋ฌ๋ผ์ง ๊ณต์ ํญ๋ชฉ ํต์ฌ ์ ๋ฆฌ", + "์ข ํฉ์๋์ธ ์ ๊ณ 2026 ์ง์ฅ์ธ ๋ถ์ ์ ๊ณ ๋ฐฉ๋ฒ", + "์ฆ์ฌ์ธ ๋ถ๋ชจ์๊ฒ ๋ฐ์ ๋ 2026 ๊ณต์ ํ๋ ์ ๋ฆฌ", + "์๋์๋์ธ 2026 ๋ถ๋์ฐ ์ ์ธ ๋ฐฉ๋ฒ ํต์ฌ ์ ๋ฆฌ", + "๊ฑด๊ฐ๋ณดํ๋ฃ 2026 ์ง์ฅ์ธ ์ง์ญ๊ฐ์ ์ ๋ฌ๋ผ์ง ์ ", + # ๐ ๊ฒฝ์ ์ ์ฑ ยท์ ๋ ๋ณํ + "2026 ์ต์ ์๊ธ ์ธ์ ์์๊ณต์ธ ์ง์ฅ์ธ ์ํฅ ๋ถ์", + "์ฒญ๋ ์ฃผํ ๊ณต๊ธ ์ ์ฑ 2026 ๋ฌ๋ผ์ง ๋ด์ฉ ์ ๋ฆฌ", + "๊ธ์ตํฌ์์๋์ธ 2026 ์ต์ข ๊ฒฐ์ ๋ด์ฉ ์ ๋ฆฌ", + "๊ฐ๊ณ๋ถ์ฑ ๊ด๋ฆฌ ๋์ฑ 2026 ๋์ถ ๊ท์ ๋ณํ ์ ๋ฆฌ", +] + +# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ +# ๋ธ๋ก๊ทธ๋ณ ๊ณ CPC ํค์๋ (์ฃผ์ ์ ๋ น์๋ ๊ณ ์์ต ํค์๋) +# ์ ๋ต: ๋ธ๋ก๊ทธ ์ฃผ์ ์ ๊ณ CPC ์นดํ ๊ณ ๋ฆฌ(๋ณดํยท๋์ถยท๋ฒ๋ฅ ยท๋ถ๋์ฐ ๋ฑ)๋ฅผ ์์ฐ์ค๋ฝ๊ฒ ๊ฒฐํฉ +# ์คํ๋น HIGH_CPC_PER_RUN ๊ฐ๋ฅผ ๊ธฐ์กด ํธ๋ ๋ ํค์๋ ์ฌ์ด์ ์ฃผ์ +# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ + +# ์คํ๋น ๊ณ CPC ํค์๋ ์ฝ์ ์ (๊ธฐ๋ณธ 1๊ฐ โ ํ๊ฒฝ๋ณ์๋ก ์กฐ์ ๊ฐ๋ฅ) +import os as _os +_HIGH_CPC_PER_RUN = max(0, int(_os.getenv("HIGH_CPC_PER_RUN", "1"))) + +_HIGH_CPC_KEYWORDS_BLOG1 = [ + # โ๏ธ ์ฌํ ร ๋ณดํยท๊ธ์ต (CPC $1.8~2.5) + "ํด์ธ์ฌํ ์ค๋น๋ณดํ ํ์ํ์ง ์ง์ ๋น๊ตํด๋ดค๋๋", + "์ฌํ์๋ณดํ ๊ฐ์ ๊ผญ ํด์ผ ํ ๊น ์ค์ ๋ณด์ ๊ฒฝํ ํ๊ธฐ", + "ํญ๊ณต๊ถ ์ทจ์ยท์ง์ฐ ๋ณด์ ์ง์ ์ฒญ๊ตฌํด๋ณด๋ ์๊ฒ ๋ ๊ฒ", + "ํด์ธ์ฌํ ํ์ ์์๋ฃ 0% ๋ฐฉ๋ฒ ์ง์ ๋น๊ต ์ ๋ฆฌ", + "์ ์ฃผ๋ ๋ ํฐ์นด ๋ณดํ ์ต์ ์ค์ ๋ก ํ์ํ ๊ฒ๋ง ๊ณ ๋ฅด๊ธฐ", + "ํจํค์ง์ฌํ ๊ณ์ฝ์ ํ๋ถ ์กฐํญ ์ง์ ์ฝ์ด๋ณด๊ณ ์๊ฒ ๋ ๊ฒ", + # โ๏ธ ์ฌํ ร ๋ฒ๋ฅ (CPC $2.8~3.2) + "ํด์ธ์์ ์ฌ๊ณ ๋ฌ์ ๋ ๋์ฌ๊ด ์ ๊ณ ์ง์ ๊ฒฝํํ ๊ณผ์ ", + "์ฌํ ์ค ๋ฌผ๊ฑด ๋๋ ๊ฒฝ์ฐฐ์ ์ ๊ณ ํ ๋ณดํ ์ฒญ๊ตฌ ๋ฐฉ๋ฒ", + # ๐ฌ ๋๋ผ๋งยท์ฐ์ ร OTTยท์ผํ (CPC $1.2~1.5) + "๋ทํ๋ฆญ์ค vs ํฐ๋น vs ์จ์ด๋ธ ๊ตฌ๋ ๋ฃ ๋๋น ์ฝํ ์ธ ์ง์ ๋น๊ต", + "์์ด๋ ์ฝ์ํธ ํฐ์ผํ ์ฑ๋ณ ์์๋ฃ ๋น๊ต์ ๊ฟํ", + "OTT ๊ฐ์กฑ ๊ณต์ ๊ณ์ ์ ์ฑ ๋ณ๊ฒฝ ํ ๊ฐ์ฅ ์ ๋ ดํ ์ ํ", + "์์ ์คํธ๋ฆฌ๋ฐ ๋ฉ๋ก vs ์ง๋ vs ์ ํ๋ธ๋ฎค์ง ์๊ธ ๋น๊ต", + "๋๋ผ๋ง OST ์ ์๊ถ ์ ํ๋ธ ์ฌ์ฉ ๊ฐ๋ฅ ์ฌ๋ถ ์ง์ ํ์ธ", + # ๐ ํด์ธ์ฌํ ร ๋ถ๋์ฐยท๊ต์ก (CPC $1.8~2.5) + "์ ์ฃผ ํ ๋ฌ ์ด๊ธฐ ์ค์ ์ํ๋น์ ์์ ๋น์ฉ ๊ณต๊ฐ", + "๋๋จ์ ํ ๋ฌ ์ด๊ธฐ ์ง ๊ตฌํ๋ ๋ฐฉ๋ฒ๊ณผ ๊ณ์ฝ ์ฃผ์์ฌํญ", + "ํด์ธ ์ดํ์ฐ์ ๋น์ฉ ํ์ค์ ์ผ๋ก ์ผ๋ง๋ ๋๋", + "๋ฏธ๊ตญ ์ํนํ๋ฆฌ๋ฐ์ด ๋ณดํ๊ณผ ๊ณ์ข ๊ฐ์ค ์ง์ ์ค๋น ๊ณผ์ ", +] + +_HIGH_CPC_KEYWORDS_BLOG2_IT_HCP = [ + # ๐ป IT ร AI ๊ตฌ๋ ยท๋น์ฉ (CPC $1.8~2.5) + "์ฑGPT Plus vs Claude Pro ์ง์ ์จ๋ณธ ์ ๋ฌด ํจ์จ ๋น๊ต", + "AI ๊ตฌ๋ ์๋น์ค ์ ๋น์ฉ ์ค์ด๋ ๋ฐฉ๋ฒ ์ง์ ์ ๋ฆฌ", + "Copilot vs ์ฑGPT ์ฝ๋ฉ ์ค๋ฌด์์ ์ด๋ค ๊ฒ ๋ ๋์๊น", + "์์ฑํ AI ๊ธฐ์ ์๊ธ์ ์ ํ ๊ฐ์ด๋ ์ง์ ๋น๊ต", + # ๐ป IT ร ๋ณด์ (CPC $2.0~3.0) + "VPN ์ถ์ฒ 2026 ๋ณด์ยท์๋ยท๊ฐ๊ฒฉ ์ง์ ํ ์คํธ ๊ฒฐ๊ณผ", + "๋์ฌ์จ์ด ๊ฐ์ผ ๋์ ์ง์ ๊ฒช์ด๋ณธ ๋ณต๊ตฌ ๊ณผ์ ๊ณต๊ฐ", + "๊ฐ์ธ์ ๋ณด ์ ์ถ ํ์ธ ๋ฐฉ๋ฒ๊ณผ ๋์ฒ ์ง์ ํด๋ดค๋๋", + "๋น๋ฐ๋ฒํธ ๊ด๋ฆฌ ์ฑ ์ง์ ์จ๋ณธ 1Password vs Bitwarden ๋น๊ต", + "๊ณต๊ณต ์์ดํ์ด ๋ณด์ ์ํ ์ค์ ๋ก ํ ์คํธํด๋ดค๋๋", + # ๐ป IT ร ๋ณดํยท๋ฒ๋ฅ (CPC $2.0~3.2) + "์ฌ์ด๋ฒ๋ณดํ ์๊ธฐ์ ๊ฐ์ ํ์ํ์ง ์ง์ ์์๋ณธ ๊ฒฐ๊ณผ", + "์ค๋งํธํฐ ํ์๋ณดํ ์ ์กฐ์ฌ vs ํต์ ์ฌ ์ง์ ๋น๊ต ์ ๋ฆฌ", + "์ ์์๋ช ๋ฒ์ ํจ๋ ฅ ์ง์ ํ์ธํ๋ฉด์ ์๊ฒ ๋ ๊ฒ", + # ๐ป IT ร ๊ธ์ตยท์ผํ (CPC $1.5~2.0) + "ํฌ๋ ๋ง์นด๋ IT ํํ ์ต๊ฐ์ 2026 ์ง์ ๋น๊ต ์ ๋ฆฌ", + "๋ ธํธ๋ถ ๊ตฌ๋งค ๋ฆฌ์ค vs ํ๊ธ ๊ตฌ๋งค ์ง์ ๊ณ์ฐํด๋ดค๋๋", + "์ค๊ณ ์ค๋งํธํฐ ์ง๊ฑฐ๋ ์ฌ๊ธฐ ์๋ฐฉ ์ง์ ๊ฒฝํํ ๋ฐฉ๋ฒ", + "ํด๋ผ์ฐ๋ ์ ์ฅ์ ์ ๋น์ฉ ๋น๊ต Google vs iCloud vs OneDrive", + # ๐ป IT ร ๊ต์กยท์๊ฒฉ์ฆ (CPC $1.5~2.0) + "์ ๋ณด์ฒ๋ฆฌ๊ธฐ์ฌ ๋ ํ ํฉ๊ฒฉ ์ค์ ๊ณต๋ถ ์๊ฐ๊ณผ ๋ฐฉ๋ฒ", + "AWS ์๊ฒฉ์ฆ ์ทจ๋ ๋น์ฉ๊ณผ ์ค๋น ๊ณผ์ ์ง์ ์ ๋ฆฌ", + "์ปดํจํฐํ์ฉ๋ฅ๋ ฅ 1๊ธ ๋ ํ ํ์ค์ ์ธ ํฉ๊ฒฉ ์ ๋ต", + "AI ๊ด๋ จ ์๊ฒฉ์ฆ 2026 ์ทจ์ ์ ์ค์ ๋ก ๋์ ๋๋ ๊ฒ", + # ๐ป IT ร ๋ถ์ ยท์์ตํ (CPC $1.5~2.5) + "IT ํ๋ฆฌ๋์ ์ธ๊ธ ์ ๊ณ ์ฒ์ ํ ๋ ์ค์ํ ๊ฒ", + "์ฑ ๊ฐ๋ฐ ์ธ์ฃผ ์ฒซ ๊ณ์ฝ์ ์ฃผ์์ฌํญ ์ง์ ๊ฒฝํ ์ ๋ฆฌ", + "์ ํ๋ธ ์ฑ๋ ์์ตํ ์ ์ฒญ ์กฐ๊ฑด ์ง์ ๋ง์ถฐ๋ณด๋ฉด์ ์๊ฒ ๋ ๊ฒ", +] + +_HIGH_CPC_KEYWORDS_BLOG3_HCP = [ + # ๐ ๊ธ์ต ร ๋์ถ (CPC $2.5~3.0) โ ์ด๋ฏธ ๋์ CPC์ด๋ ๊ตฌ์ฒด์ฑ ๊ฐํ + "์ฃผํ๋ด๋ณด๋์ถ ๊ธ๋ฆฌ ์ต์ ์ํ 2026 ์ง์ ๋ฐํ ํ์ ๋น๊ต", + "์ ์ธ๋์ถ DSR ๊ท์ ์ดํ ํ๋ ์ผ๋ง๋ ์ค์๋ ์ง์ ๊ณ์ฐ", + "์ ์ฉ๋์ถ ํ๋ ๋๋ฆฌ๋ ๋ฐฉ๋ฒ ์ง์ ์๋ํด๋ดค๋๋", + "์นด๋๋ก vs ๋ง์ด๋์คํต์ฅ ๊ธ๋ฆฌ ๋น๊ต ์ง์ ๊ณ์ฐํ ๊ฒฐ๊ณผ", + "๋์ถ ์ด์ ์ ๊ฐ ์ค๋์ํ vs ๊ธ๋ฆฌ ๊ฐ์ํ๊ธฐ ์ง์ ๋น๊ต", + # ๐ ๊ธ์ต ร ๋ณดํ (CPC $2.0~2.8) + "์ค์๋ณดํ ์ฒญ๊ตฌ ์ฒ์ ํด๋ดค์ ๋ ๋ชฐ๋๋ ๊ฒ๋ค", + "์ข ์ ๋ณดํ ํด์งํ๊ธ๊ธ ์ง์ ๊ณ์ฐํด๋ณด๊ณ ๊ฒฐ์ ํ ์ด์ ", + "์๋ณดํ ๊ฐฑ์ ํ vs ๋น๊ฐฑ์ ํ ์ง์ ๋น๊ตํด๋ดค๋๋", + "์ด์ ์๋ณดํ ๊ผญ ํ์ํ์ง ์ง์ ๋น๊ต ๋ถ์ํ ๊ฒฐ๊ณผ", + "์ ์ถ์ ์๋ ์ด๋ฆฐ์ด๋ณดํ ๊ฐ์ ์ฒดํฌ๋ฆฌ์คํธ ์ง์ ์ ๋ฆฌ", + # ๐ ๊ธ์ต ร ๋ถ๋์ฐ (CPC $2.5~3.0) + "์ฒญ์ฝํต์ฅ 1์์ ์กฐ๊ฑด 2026 ๋ฌ๋ผ์ง ์ ์ง์ ์ ๋ฆฌ", + "ํน๋ณ๊ณต๊ธ ์ฒญ์ฝ ์๊ฒฉ ์ง์ ํ์ธํ๋๋ ๋์น ํญ๋ชฉ๋ค", + "๋ถ์๊ฐ ์ํ์ ์ํํธ ํ๋ฆฌ๋ฏธ์ ์ค์ ๋ก ์ผ๋ง๋ ๋ถ๋", + "์ฌ๊ฑด์ถ ์กฐํฉ์ ์ ์ฃผ๊ถ ๋งค์ ์ ์ง์ ์์๋ณธ ์ฃผ์์ฌํญ", + "๊ฐญํฌ์ ๋ฆฌ์คํฌ ์ง์ ๊ฒฝํํ ์ฌ๋์ด ์๋ ค์ฃผ๋ ํ์ค", + # ๐ ๊ธ์ต ร ์ธ๊ธยท๋ฒ๋ฅ (CPC $2.8~3.5) + "์์์ธ ์ ์ธ ์ฌ์ ์ฆ์ฌ 2026 ๊ธฐ์ค ์ง์ ์ ๋ฆฌ", + "๋ถ๋ชจ๋ ์ง ์ฆ์ฌ vs ์์ ์ธ๊ธ ๊ณ์ฐ ์ง์ ๋น๊ต", + "ํ๋ฆฌ๋์ ์ข ํฉ์๋์ธ ์ ์ธ ๊ฒฝ๋น ์ฒ๋ฆฌ ์ง์ ์ ๋ฆฌ", + "๋ฒ์ธ ์ค๋ฆฝ ๊ฐ์ธ์ฌ์ ์ ์ธ๊ธ ์ฐจ์ด ์ง์ ๊ณ์ฐํด๋ดค๋๋", + "์๋์ธ ๋น๊ณผ์ธ ์๊ฑด 2026 ์ง์ ํ์ธํ ์ฒดํฌ๋ฆฌ์คํธ", + # ๐ ๊ธ์ต ร ๋ ธํยท์ฐ๊ธ (CPC $2.0~2.5) + "ํด์ง์ฐ๊ธ DCํ ์ง์ ์ด์ฉ 1๋ ์์ต๋ฅ ์์ง ๊ณต๊ฐ", + "๊ฐ์ธ์ฐ๊ธ ์ธ์ก๊ณต์ ์ต๋ํ ๋ฐ๋ ๋ฐฉ๋ฒ ์ง์ ์ ๋ฆฌ", + "๊ตญ๋ฏผ์ฐ๊ธ ์์๊ฐ์ ์ง์ ํด๋ณด๊ณ ์๊ฒ ๋ ์ฅ๋จ์ ", + "์ฐ๊ธ์ ์ถ vs IRP ๋ ธํ ์ค๋น ์ง์ ๋น๊ต ๋ถ์", +] + _FALLBACK_KEYWORDS_EN = [ # Finance โ experience angle "what I learned after 1 year of dividend investing", "honest ETF investing review after 3 years", @@ -169,6 +418,36 @@ def _save_used_keywords(used_data: dict, file_path: str = _USED_KW_FILE) -> None logger.error(f"ํค์๋ ์ด๋ ฅ ์ ์ฅ ์คํจ: {e}") +def _load_other_blogs_recent_keywords(current_blog_id: str, days: int = 2) -> list[str]: + """๋ค๋ฅธ ๋ธ๋ก๊ทธ๊ฐ ์ต๊ทผ N์ผ ๋ด ์ฌ์ฉํ ํค์๋ ๋ชฉ๋ก. + + ๊ฐ์ ํธ๋ ๋ ํค์๋๋ก 3๊ฐ ๋ธ๋ก๊ทธ๊ฐ ๊ฐ์ ๋ ์ค๋ณต ๊ธ์ ์ฐ๋ ๊ฒ์ ๋ฐฉ์งํฉ๋๋ค + (์ ์ฌ๋ ํํฐ ์ฝํผ์ค์ ํฉ๋ฅ โ ์์ ์ผ์น๊ฐ ์๋์ด๋ ๋ณํ ํค์๋๊น์ง ์ฐจ๋จ). + """ + import glob as _glob + cutoff = datetime.now() - timedelta(days=days) + result: list[str] = [] + logs_dir = os.path.dirname(_USED_KW_FILE) + for path in _glob.glob(os.path.join(logs_dir, "used_keywords*.json")): + fname = os.path.basename(path) + # ํ์ฌ ๋ธ๋ก๊ทธ์ ํ์ผ์ ์ ์ธ (์์ฒด ์ด๋ ฅ์ ๋ณ๋ ์ฒ๋ฆฌ๋จ) + if current_blog_id and fname == f"used_keywords_{current_blog_id}.json": + continue + if not current_blog_id and fname == "used_keywords.json": + continue + try: + data = json.load(open(path, encoding="utf-8")) + except Exception: + continue + for entry in data.get("entries", []): + try: + if datetime.fromisoformat(entry["usedAt"]) >= cutoff: + result.append(entry["keyword"]) + except (KeyError, ValueError): + continue + return result + + def _get_active_used_set(used_data: dict) -> set[str]: """ ์์ง ์ฌ์ฌ์ฉ ๊ธ์ง ๊ธฐ๊ฐ(_REUSE_AFTER_DAYS)์ด ์ง๋์ง ์์ ํค์๋ ์งํฉ์ ๋ฐํํฉ๋๋ค. @@ -198,20 +477,36 @@ def _get_active_used_set(used_data: dict) -> set[str]: # ํฌ์คํ ์ด๋ ฅ ๋ก๋ # โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ -def _load_recent_post_corpus(limit_runs: int = 30) -> list[str]: +def _load_recent_post_corpus(limit_runs: int = 30, blog_id: str = "") -> list[str]: """ ์ต๊ทผ ํฌ์คํ ์ด๋ ฅ์์ ํค์๋ + ์ ๋ชฉ ์ฝํผ์ค๋ฅผ ์์งํฉ๋๋ค. ์ ์ฌ๋ ๋น๊ต์ ์ฌ์ฉ๋ฉ๋๋ค. + blog_id๊ฐ ์ฃผ์ด์ง๋ฉด ํด๋น ๋ธ๋ก๊ทธ์ ์ด๋ ฅ๋ง ์ฌ์ฉํฉ๋๋ค โ ์ฃผ์ ๊ฐ ๊ฒน์น๋ + ๋ค๋ฅธ ๋ธ๋ก๊ทธ(์: blog1 ์ฌํ ํฌ โ blog3 ๊ธ์ต)๊ฐ ์๋ก์ ํค์๋๋ฅผ + ์ค๋ณต์ผ๋ก ์ฐจ๋จํ์ง ์๋๋ก ํ๊ธฐ ์ํจ์ ๋๋ค. + ๊ณผ๊ฑฐ default๋ก ๊ธฐ๋ก๋ ์ด๋ ฅ์ blog1 ์์์ผ๋ก ๊ฐ์ฃผํฉ๋๋ค. """ if not os.path.exists(_HISTORY_FILE): return [] + + def _matches(entry_blog_id: str) -> bool: + if not blog_id: + return True + if entry_blog_id in ("default", ""): + return blog_id in ("blog1", "default") + return entry_blog_id == blog_id + try: with open(_HISTORY_FILE, encoding="utf-8") as f: history = json.load(f) corpus = [] for run in history[:limit_runs]: - corpus.extend(run.get("keywords", [])) + run_blog_id = run.get("blogId", "") + if _matches(run_blog_id): + corpus.extend(run.get("keywords", [])) for post in run.get("posts", []): + if not _matches(post.get("blogId", run_blog_id)): + continue if post.get("keyword"): corpus.append(post["keyword"]) if post.get("title"): @@ -292,17 +587,30 @@ def _naver_realtime_news( headlines: list[str] = [] api_queries = queries if queries is not None else _NAVER_API_QUERIES - # 1) ๋ค์ด๋ฒ ๋ด์ค ์นดํ ๊ณ ๋ฆฌ RSS + _EPOCH = datetime(1970, 1, 1, tzinfo=timezone.utc) + + # 1) ๋ค์ด๋ฒ ๋ด์ค ์นดํ ๊ณ ๋ฆฌ RSS โ pubDate ๊ธฐ์ค ์ต์ ์ ์์ง for url, name in _NAVER_RSS_FEEDS: try: r = requests.get(url, headers=_HEADERS, timeout=10) if r.status_code != 200: continue root = ET.fromstring(r.content) - for item in root.findall(".//item")[:6]: + items_with_date: list[tuple[str, datetime]] = [] + for item in root.findall(".//item"): title = re.sub(r'<[^>]+>', '', item.findtext("title", "")).strip() - if title and len(title) >= 5: - headlines.append(title) + if not title or len(title) < 5: + continue + pub_str = item.findtext("pubDate", "").strip() + try: + pub_dt = parsedate_to_datetime(pub_str) + except Exception: + pub_dt = _EPOCH + items_with_date.append((title, pub_dt)) + # ์ต์ ์ ์ ๋ ฌ ํ ์์ 8๊ฐ + items_with_date.sort(key=lambda x: x[1], reverse=True) + for title, _ in items_with_date[:8]: + headlines.append(title) logger.debug(f"Naver RSS [{name}]: {len(headlines)}๊ฐ ๋์ ") except Exception as e: logger.debug(f"Naver RSS [{name}] ์ค๋ฅ: {e}") @@ -318,7 +626,7 @@ def _naver_realtime_news( resp = requests.get( "https://openapi.naver.com/v1/search/news.json", headers=api_headers, - params={"query": q, "display": 5, "sort": "date"}, + params={"query": q, "display": 10, "sort": "date"}, timeout=10, ) if resp.status_code == 200: @@ -342,30 +650,33 @@ def _headlines_to_keywords(headlines: list[str], count: int = 10) -> list[str]: return [] try: import anthropic - from config import ANTHROPIC_API_KEY, CLAUDE_MODEL + from config import claude_text, ANTHROPIC_API_KEY, CLAUDE_MODEL if not ANTHROPIC_API_KEY or ANTHROPIC_API_KEY.startswith("sk-ant-xxx"): return [] client = anthropic.Anthropic(api_key=ANTHROPIC_API_KEY) + now_str = datetime.now().strftime("%Y๋ %m์ %d์ผ %H์") headlines_text = "\n".join(f"- {h}" for h in headlines[:25]) prompt = ( - f"๋ค์ ๋ค์ด๋ฒ ์ค์๊ฐ ๋ด์ค ํค๋๋ผ์ธ์ ๋ถ์ํด์ ๋ธ๋ก๊ทธ ํฌ์คํธ ํค์๋ {count}๊ฐ๋ฅผ ์ถ์ถํ์ธ์.\n\n" + f"์ค๋({now_str}) ๋ค์ด๋ฒ ์ต์ ๋ด์ค ํค๋๋ผ์ธ์ ๋ถ์ํด์ ๋ธ๋ก๊ทธ ํฌ์คํธ ํค์๋ {count}๊ฐ๋ฅผ ์ถ์ถํ์ธ์.\n\n" "์ ๋ณ ๊ธฐ์ค:\n" "1. AdSense ์์ ์ฃผ์ โ ์ ์นยท๊ฐ๋ฑยทํ์คยท์ ์ ์ ์ด์ ์์ ์ ์ธ\n" "2. ์ฌํ ํฌยท๊ฑด๊ฐยทITยท์ํ์ ๋ณดยท์ฌํยท์๋นยท๋ถ์ ์นดํ ๊ณ ๋ฆฌ ์ฐ์ \n" - "3. ์ง์ ๊ฒ์ ๊ฐ๋ฅํ ์ฃผ์ โ ์ผํ์ฑ ์๋ณด๋ ์ ์ธ, ๊ด์ฌ์ด ๋ฉฐ์น ์ด์ ์ด์ด์ง ๋ด์ฉ\n" + "3. ๊ฒ์ ์์ ๊ธฐ์ค ์ต์ ์ด์ ๋ฐ์ โ ์ง๊ธ ์ฌ๋๋ค์ด ์ค์ ๋ก ์ฐพ์๋ณผ ๋งํ ์ฃผ์ ์ฐ์ \n" + " ๋จ, ์ค๋๋ง ๋ฐ์งํ๋ ๋จ์ ์ฌ๊ณ ยท์ฌ๊ฑด ์๋ณด๋ ์ ์ธํ๊ณ ๋ฉฐ์น ๊ฐ ๊ด์ฌ์ด ์ด์ด์ง ๋ด์ฉ ์ ํ\n" "4. ๊ฒฝํ/ํ๊ธฐ/๋ฐฉ๋ฒ/๋น๊ต๋ก ํ ์ ์๋ ๊ฐ๋๋ก ๋ค๋ฌ์ ๊ฒ\n" "5. ํค๋๋ผ์ธ ๊ทธ๋๋ก ์ฐ์ง ๋ง๊ณ ๋ธ๋ก๊ทธ ๊ฒ์ ์๋์ ๋ง๊ฒ ๋ณํ:\n" " ์) '์ผ์ฑ์ ์ 2๋ถ๊ธฐ ์ค์ ๋ฐํ' โ '์ผ์ฑ์ ์ ์ฃผ๊ฐ ์ ๋ง 2026 ์ค์ ๋ถ์'\n" - " ์) '์ฌ๋ฆ ํด๊ฐ์ฒ ํญ๊ณต๋ฃ ๊ธ๋ฑ' โ '์ฌ๋ฆ ํญ๊ณต๊ถ ์ ๋ ดํ๊ฒ ๊ตฌ๋งคํ๋ ๋ฐฉ๋ฒ'\n\n" + " ์) '์ฌ๋ฆ ํด๊ฐ์ฒ ํญ๊ณต๋ฃ ๊ธ๋ฑ' โ '์ฌ๋ฆ ํญ๊ณต๊ถ ์ ๋ ดํ๊ฒ ๊ตฌ๋งคํ๋ ๋ฐฉ๋ฒ'\n" + " ์) '๋นํธ์ฝ์ธ ์ ๊ณ ๊ฐ ๊ฒฝ์ ' โ '๋นํธ์ฝ์ธ ์ง๊ธ ์ฌ๋ ๋ ๊น 2026 ํฌ์ ํ๋จ ๊ธฐ์ค'\n\n" f"ํค๋๋ผ์ธ ๋ชฉ๋ก:\n{headlines_text}\n\n" f'JSON ๋ฐฐ์ด๋ง ์๋ต (์ค๋ช ์์ด): ["ํค์๋1", ..., "ํค์๋{count}"]' ) msg = client.messages.create( model=CLAUDE_MODEL, - max_tokens=400, + max_tokens=1200, messages=[{"role": "user", "content": prompt}], ) - raw = msg.content[0].text.strip() + raw = claude_text(msg).strip() s, e = raw.find('['), raw.rfind(']') if s != -1 and e > s: kws = json.loads(raw[s:e + 1]) @@ -415,7 +726,7 @@ def _naver_drama_news( resp = requests.get( "https://openapi.naver.com/v1/search/news.json", headers=api_headers, - params={"query": q, "display": 5, "sort": "date"}, + params={"query": q, "display": 10, "sort": "date"}, timeout=10, ) if resp.status_code == 200: @@ -457,10 +768,10 @@ def extract_drama_titles(headlines: list[str]) -> list[str]: ) msg = client.messages.create( model=CLAUDE_MODEL, - max_tokens=100, + max_tokens=1000, messages=[{"role": "user", "content": prompt}], ) - raw = msg.content[0].text.strip() + raw = claude_text(msg).strip() s, e = raw.find('['), raw.rfind(']') if s != -1 and e > s: titles = json.loads(raw[s:e + 1]) @@ -549,10 +860,10 @@ def _claude_ai_keywords( ) msg = client.messages.create( model=CLAUDE_MODEL, - max_tokens=400, + max_tokens=1200, messages=[{"role": "user", "content": prompt}], ) - raw = msg.content[0].text.strip() + raw = claude_text(msg).strip() s, e = raw.find('['), raw.rfind(']') if s != -1 and e > s: kws = json.loads(raw[s:e + 1]) @@ -575,13 +886,12 @@ def _claude_ai_keywords( # ์์ฆ ์์ฝ ํค์๋ ๋ก๋ (trend_scheduler.py๊ฐ ์์ฑํ ํ) # โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ -def _load_scheduled_keywords(today: datetime | None = None) -> list[str]: +def _load_scheduled_keywords(today: datetime | None = None, blog_id: str = "") -> list[str]: """ logs/scheduled_keywords.json ํ์์ ์ค๋ ํฌ์คํ ์ ์์ํ ์์ฆ ์์ฝ ํค์๋๋ฅผ ๋ก๋ํฉ๋๋ค. - scheduledFor <= ์ค๋ ์ด๋ฉด์ consumed=False ์ธ ํญ๋ชฉ๋ง ๋ฐํ + - blog_id๊ฐ ์ฃผ์ด์ง๋ฉด ํด๋น ๋ธ๋ก๊ทธ ์ ์ฉ(blog_id ์ผ์น) ๋๋ ๊ณต์ฉ(blog_id ๋น๊ฐ) ํญ๋ชฉ๋ง ๋ฐํ - ์ฐ์ ์์(priority) โ trendScore ์์ผ๋ก ์ ๋ ฌ - - ์๋น ํ์(consumed=True)๋ keyword_collector๊ฐ ์ค์ ์ฌ์ฉ ํ main.py์์ ์ฒ๋ฆฌํ๊ฑฐ๋ - get_trending_keywords()๊ฐ result์ ํฌํจ๋๋ฉด ์๋ ๋งํน """ if today is None: today = datetime.now() @@ -595,16 +905,23 @@ def _load_scheduled_keywords(today: datetime | None = None) -> list[str]: data = json.load(f) queue = data.get("queue", []) - eligible = [ - item for item in queue - if not item.get("consumed", False) - and item.get("scheduledFor", "9999-99-99") <= today_str - ] + eligible = [] + for item in queue: + if item.get("consumed", False): + continue + if item.get("scheduledFor", "9999-99-99") > today_str: + continue + # blog_id ํํฐ: ํ ํญ๋ชฉ์ blog_id๊ฐ ๋น๊ฐ(๊ณต์ฉ)์ด๊ฑฐ๋ ํ์ฌ ๋ธ๋ก๊ทธ์ ์ผ์นํ ๋๋ง ํฌํจ + item_blog = item.get("blog_id", "") + if blog_id and item_blog and item_blog != blog_id: + continue + eligible.append(item) + # ์ฐ์ ์์(๋ฎ์์๋ก ๋์) โ trendScore ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌ eligible.sort(key=lambda x: (x.get("priority", 9), -x.get("trendScore", 1.0))) result = [item["keyword"] for item in eligible] if result: - logger.info(f"์์ฆ ์์ฝ ํค์๋ {len(result)}๊ฐ ๋ก๋: {result[:3]}{'...' if len(result)>3 else ''}") + logger.info(f"์์ฆ ์์ฝ ํค์๋ {len(result)}๊ฐ ๋ก๋ (blog={blog_id or '๊ณต์ฉ'}): {result[:3]}{'...' if len(result)>3 else ''}") return result except Exception as exc: logger.debug(f"scheduled_keywords.json ๋ก๋ ์คํจ: {exc}") @@ -699,15 +1016,36 @@ def get_trending_keywords( used_data = _load_used_keywords(used_kw_file) active_used_set = _get_active_used_set(used_data) - # ํฌ์คํ ์ด๋ ฅ ์ฝํผ์ค (ํค์๋ + ์ ๋ชฉ) - post_corpus = _load_recent_post_corpus() - logger.info(f"ํฌ์คํ ์ด๋ ฅ ์ฝํผ์ค: {len(post_corpus)}๊ฐ ํญ๋ชฉ ๋ก๋ (์ค๋ณต ๋ฐฉ์ง ๊ธฐ์ค)") + # ํฌ์คํ ์ด๋ ฅ ์ฝํผ์ค (ํค์๋ + ์ ๋ชฉ) โ ํ์ฌ ๋ธ๋ก๊ทธ์ ์ด๋ ฅ๋ง + post_corpus = _load_recent_post_corpus(blog_id=blog_id) + + # ๋ค๋ฅธ ๋ธ๋ก๊ทธ๊ฐ ์ต๊ทผ 2์ผ ๋ด ์ฌ์ฉํ ํค์๋๋ ์ฝํผ์ค์ ํฉ๋ฅ + # (๊ฐ์ ํธ๋ ๋๋ก 3๊ฐ ๋ธ๋ก๊ทธ๊ฐ ๊ฐ์ ๋ ์ค๋ณต ๊ธ ์์ฑ ๋ฐฉ์ง) + other_recent = _load_other_blogs_recent_keywords(blog_id, days=2) + if other_recent: + post_corpus += other_recent + logger.info(f"ํ ๋ธ๋ก๊ทธ ์ต๊ทผ ํค์๋ {len(other_recent)}๊ฐ ์ค๋ณต ๋ฐฉ์ง ์ฝํผ์ค ํฉ๋ฅ") + logger.info(f"ํฌ์คํ ์ด๋ ฅ ์ฝํผ์ค: {len(post_corpus)}๊ฐ ํญ๋ชฉ ๋ก๋ (blog_id={blog_id or '์ ์ฒด'} ์ค๋ณต ๋ฐฉ์ง ๊ธฐ์ค)") candidates: list[str] = [] keyword_sources: dict[str, str] = {} # ํค์๋๋ณ ์์ง ์ถ์ฒ ์ถ์ + # ๋ธ๋ก๊ทธ ์ ํ ์๋ณ (๊ณ CPC ์ฃผ์ ๋ฐ ํด๋ฐฑ ์ ํ์ ๊ณตํต ์ฌ์ฉ) + _BLOG1_TOPICS = {"์ฌํ", "๊ตญ๋ด์ฌํ", "ํด์ธ์ฌํ", "๋๋ผ๋ง", "์ํ", "์ฐ์", "k-pop", "kpop"} + _BLOG2_IT_TOPICS = {"it", "ai", "๊ธฐ์ ", "์ค๋งํธํฐ", "์ฑ", "ํ ํฌ", "tech"} + _BLOG3_FIN_TOPICS = {"๊ธ์ต", "๊ฒฝ์ ", "์ ๋ถ์ง์", "์ธ๊ธ", "๋ณต์ง", "์์ฑ ", "๋ด์ค", "news"} + is_blog1 = blog_id in ("blog1", "default") and bool( + topics and _BLOG1_TOPICS.intersection(set(t.lower() for t in topics)) + ) + is_blog2_it = blog_id == "blog2" and bool( + topics and _BLOG2_IT_TOPICS.intersection(set(t.lower() for t in topics)) + ) + is_blog3_fin = blog_id == "blog3" and bool( + topics and _BLOG3_FIN_TOPICS.intersection(set(t.lower() for t in topics)) + ) + # -1์์: ์์ฆ ์์ฝ ํค์๋ (trend_scheduler.py๊ฐ 2์ฃผ ์ ์์ฑํ ํ) - season_kws = _load_scheduled_keywords() + season_kws = _load_scheduled_keywords(blog_id=blog_id) for kw in season_kws: keyword_sources[kw] = "season_scheduled" candidates = season_kws[:] # ์ต์๋จ์ ๋ฐฐ์น @@ -719,8 +1057,10 @@ def get_trending_keywords( ) naver_kws = _headlines_to_keywords(naver_headlines, count * 2) for kw in naver_kws: - keyword_sources[kw] = "naver_realtime" - candidates = naver_kws + if kw not in keyword_sources: + keyword_sources[kw] = "naver_realtime" + # season_kws๊ฐ ์ด๋ฏธ candidates์ ์์ผ๋ฏ๋ก ๋ค์ ์ถ๊ฐ (์์ฆ ํค์๋ ๋ณด์กด) + candidates = candidates + [kw for kw in naver_kws if kw not in keyword_sources or keyword_sources[kw] == "naver_realtime"] logger.info(f"๋ค์ด๋ฒ ์ค์๊ฐ ๋ด์ค ํค์๋: {len(naver_kws)}๊ฐ") # 1์์: Google Trends RSS @@ -730,6 +1070,25 @@ def get_trending_keywords( keyword_sources[kw] = "google_trends" candidates = candidates + [kw for kw in trends_kws if kw not in keyword_sources or keyword_sources[kw] != "naver_realtime"] + # 1.5์์: ๋ธ๋ก๊ทธ๋ณ ๊ณ CPC ํค์๋ ์ฃผ์ + if _HIGH_CPC_PER_RUN > 0: + if is_blog1: + hcp_pool = _HIGH_CPC_KEYWORDS_BLOG1 + elif is_blog2_it: + hcp_pool = _HIGH_CPC_KEYWORDS_BLOG2_IT_HCP + elif is_blog3_fin: + hcp_pool = _HIGH_CPC_KEYWORDS_BLOG3_HCP + else: + hcp_pool = [] + if hcp_pool: + unused_hcp = [kw for kw in hcp_pool if kw not in active_used_set] + inject_hcp = (unused_hcp if unused_hcp else hcp_pool)[:_HIGH_CPC_PER_RUN] + for kw in inject_hcp: + if kw not in keyword_sources: + keyword_sources[kw] = "high_cpc" + candidates = inject_hcp + candidates + logger.info(f"๊ณ CPC ํค์๋ {len(inject_hcp)}๊ฐ ์ฃผ์ (blog_id={blog_id or '์ ์ฒด'}): {inject_hcp}") + # 2์์: Claude AI (๊ฒฐ๊ณผ ๋ถ์กฑ ์) if len(candidates) < count * 2: claude_kws = _claude_ai_keywords(language, count * 2, topics=topics) @@ -738,15 +1097,16 @@ def get_trending_keywords( keyword_sources[kw] = "claude_ai" candidates += claude_kws - # GSC ๊ณ ์ฑ๊ณผ ์นดํ ๊ณ ๋ฆฌ ์์ง (GSC_SITE_URL ์ค์ ์) + # GSC ๊ณ ์ฑ๊ณผ ์นดํ ๊ณ ๋ฆฌ ์์ง โ ๋ธ๋ก๊ทธ๋ณ gsc_site_url ์ฐ์ , ์์ผ๋ฉด ์ ์ญ GSC_SITE_URL gsc_high_cats: list[str] = [] gsc_suggested: list[str] = [] try: from config import GSC_SITE_URL - if GSC_SITE_URL: + gsc_url = cfg.get("gsc_site_url") or GSC_SITE_URL + if gsc_url: from gsc_fetcher import get_high_performing_categories, get_gsc_suggested_keywords - gsc_high_cats = get_high_performing_categories(GSC_SITE_URL) - gsc_suggested = get_gsc_suggested_keywords(GSC_SITE_URL, count=count) + gsc_high_cats = get_high_performing_categories(gsc_url) + gsc_suggested = get_gsc_suggested_keywords(gsc_url, count=count) # GSC ์ถ์ฒ ํค์๋๋ฅผ ํ๋ณด์ ์ถ๊ฐ for kw in gsc_suggested: if kw not in keyword_sources: @@ -756,9 +1116,18 @@ def get_trending_keywords( logger.debug(f"GSC ์ฐ๋ ์๋ต: {e}") # 3์์: ๊ณ ์ ํด๋ฐฑ (๋ฏธ์ฌ์ฉ ํค์๋ ์ฐ์ + GSC ๊ณ ์ฑ๊ณผ ์นดํ ๊ณ ๋ฆฌ ๋จผ์ ) - _TRAVEL_SPORTS_TOPICS = {"์ฌํ", "์คํฌ์ธ ", "travel", "sports"} + _TRAVEL_SPORTS_TOPICS = { + "์ฌํ", "๊ตญ๋ด์ฌํ", "ํด์ธ์ฌํ", "์คํฌ์ธ ", "์คํฌ์ธ ์ด์", "๋๋ผ๋ง", "์ํ", + "์ฐ์", "k-pop", "kpop", "travel", "sports", + } is_travel_sports = bool(topics and _TRAVEL_SPORTS_TOPICS.intersection(set(t.lower() for t in topics))) - if is_travel_sports: + if is_blog1: + fallback = _FALLBACK_KEYWORDS_BLOG1 + elif is_blog2_it: + fallback = _FALLBACK_KEYWORDS_BLOG2_IT + elif is_blog3_fin: + fallback = _FALLBACK_KEYWORDS_BLOG3 + elif is_travel_sports: fallback = _FALLBACK_KEYWORDS_TRAVEL_SPORTS elif language == "ko": fallback = _FALLBACK_KEYWORDS_KR @@ -816,16 +1185,20 @@ def get_trending_keywords( if rejected_similar: logger.info(f"์ ์ฌ ์ฃผ์ ์ ์ธ {len(rejected_similar)}๊ฐ: {rejected_similar[:5]}") - # ๊ทธ๋๋ ๋ถ์กฑํ๋ฉด ์ ์ฌ๋ ๊ธฐ์ค์ ๋ฎ์ถฐ์ ์ฌ์๋ + # ๊ทธ๋๋ ๋ถ์กฑํ๋ฉด ์ ์ฌ๋ ๊ธฐ์ค์ ๋ฎ์ถฐ์ ์ฌ์๋ (์ ์ฌ๋ ๊ฒ์ฌ๋ ์ํ๋ ์๊ณ๊ฐ์ผ๋ก ์ฌ์คํ) result_set = set(result) if len(result) < count: logger.warning(f"์ ์ ํค์๋ ๋ถ์กฑ ({len(result)}/{count}) โ ์ ์ฌ๋ ๊ธฐ์ค ์ํํ์ฌ ์ฌ์๋") + relaxed_corpus = list(session_corpus) for kw in candidates: kw = kw.strip() if not kw or kw in result_set or kw in active_used_set: continue + if _is_too_similar(kw, relaxed_corpus, threshold=0.6): # ์ํ๋ ๊ธฐ์ค 0.6 (๊ธฐ๋ณธ 0.5๋ณด๋ค ๋์) + continue result.append(kw) result_set.add(kw) + relaxed_corpus.append(kw) if len(result) >= count: break diff --git a/blog-automation/logs/ai_usage.json b/blog-automation/logs/ai_usage.json new file mode 100644 index 0000000000000..f92e7fd230ed6 --- /dev/null +++ b/blog-automation/logs/ai_usage.json @@ -0,0 +1,37 @@ +{ + "daily": { + "2026-07-17": { + "input_tokens": 68423, + "output_tokens": 28998, + "calls": 7, + "model": "claude-sonnet-5" + }, + "2026-07-19": { + "input_tokens": 628843, + "output_tokens": 387966, + "calls": 106, + "model": "claude-sonnet-5" + }, + "2026-07-20": { + "input_tokens": 284600, + "output_tokens": 142120, + "calls": 40, + "model": "claude-sonnet-5" + } + }, + "monthly": { + "2026-07": { + "input_tokens": 981866, + "output_tokens": 559084, + "calls": 153, + "model": "claude-sonnet-5" + } + }, + "total": { + "input_tokens": 981866, + "output_tokens": 559084, + "calls": 153 + }, + "model": "claude-sonnet-5", + "last_updated": "2026-07-20T06:37:20Z" +} \ No newline at end of file diff --git a/blog-automation/logs/analytics_report.json b/blog-automation/logs/analytics_report.json index 7af30022bcc7a..f53ff4d8678db 100644 --- a/blog-automation/logs/analytics_report.json +++ b/blog-automation/logs/analytics_report.json @@ -1,249 +1,63 @@ { - "generatedAt": "2026-07-01T12:13:46.341767", + "generatedAt": "2026-07-21T16:24:52.421017", "period": "30days", - "totalPosts": 76, - "bloggerPageviews30d": 783, - "bloggerPageviews7d": 369, + "totalPosts": 91, + "bloggerPageviews30d": 0, + "bloggerPageviews7d": 0, "totalGscClicks30d": 0, - "totalEstimatedRevenue30d": 28.925, - "totalEstimatedRevenueMonthly": 28.925, + "totalEstimatedRevenue30d": 0.0, + "totalEstimatedRevenueMonthly": 0.0, "gradeDistribution": { "S": 0, "A": 0, - "B": 51, - "C": 25 + "B": 91, + "C": 0 }, "gradePercentage": { "S": 0.0, "A": 0.0, - "B": 67.1, - "C": 32.9 + "B": 100.0, + "C": 0.0 }, - "rewriteTargets": [ - { - "id": "2026-06-17_AI_๋ถ์ ์ผ๋ก_์_100๋ง์_๋ฒ๋_๋ฒ_TOP_5_์ค์ _๊ฐ์ด๋_2026๋ ", - "title": "AI ๋ถ์ ์ผ๋ก ์ 100๋ง์ ๋ฒ๋ ๋ฒ TOP 5 ์ค์ ๊ฐ์ด๋ 2026๋ ", - "keyword": "AI ๋ถ์ ์ผ๋ก ์ 100๋ง์ ๋ฒ๋ ๋ฒ", - "blogUrl": "https://hoguwhat1.blogspot.com/2026/06/ai-100-top-5-2026.html", - "score": 0.2, - "date": "2026-06-17", - "clicks30d": 0, - "impressions30d": 0, - "hint": "์ฑ๊ณผ ๋ฏธํก โ ๋ฆฌ๋ผ์ดํ ๋๋ ์ญ์ ๊ฒํ ๋์" - }, - { - "id": "2026-06-17_2026_์ข ํฉ์๋์ธ_ํ๊ธ_์ ์ฒญ๋ฐฉ๋ฒ_5๋จ๊ณ_์๋ฒฝ_์ ๋ฆฌ", - "title": "2026 ์ข ํฉ์๋์ธ ํ๊ธ ์ ์ฒญ๋ฐฉ๋ฒ 5๋จ๊ณ ์๋ฒฝ ์ ๋ฆฌ", - "keyword": "2026 ์ข ํฉ์๋์ธ ํ๊ธ ์ ์ฒญ๋ฐฉ๋ฒ", - "blogUrl": "https://hoguwhat1.blogspot.com/2026/06/2026-5_01685116449.html", - "score": 0.2, - "date": "2026-06-17", - "clicks30d": 0, - "impressions30d": 0, - "hint": "์ฑ๊ณผ ๋ฏธํก โ ๋ฆฌ๋ผ์ดํ ๋๋ ์ญ์ ๊ฒํ ๋์" - }, - { - "id": "2026-06-17_๋นํธ์ฝ์ธ_2026_์ ๋ง_์๋ฒฝ_์ ๋ฆฌ_TOP_5_ํต์ฌ_ํฌ์ธํธ", - "title": "๋นํธ์ฝ์ธ 2026 ์ ๋ง ์๋ฒฝ ์ ๋ฆฌ TOP 5 ํต์ฌ ํฌ์ธํธ", - "keyword": "์ฝ์ธ ๋นํธ์ฝ์ธ 2026 ์ ๋ง", - "blogUrl": "https://hoguwhat1.blogspot.com/2026/06/2026-top-5_01473019811.html", - "score": 0.2, - "date": "2026-06-17", - "clicks30d": 0, - "impressions30d": 0, - "hint": "์ฑ๊ณผ ๋ฏธํก โ ๋ฆฌ๋ผ์ดํ ๋๋ ์ญ์ ๊ฒํ ๋์" - }, - { - "id": "2026-06-16_์์ธ_vs_์ ์ธ_2026_๋ญ๊ฐ_์ ๋ฆฌํ ๊น_์๋ฒฝ_์ ๋ฆฌ_5๊ฐ์ง", - "title": "์์ธ vs ์ ์ธ 2026 ๋ญ๊ฐ ์ ๋ฆฌํ ๊น ์๋ฒฝ ์ ๋ฆฌ 5๊ฐ์ง", - "keyword": "์์ธ vs ์ ์ธ 2026 ๋ญ๊ฐ ์ ๋ฆฌํ ๊น", - "blogUrl": "https://hoguwhat1.blogspot.com/2026/06/vs-2026-5.html", - "score": 0.2, - "date": "2026-06-16", - "clicks30d": 0, - "impressions30d": 0, - "hint": "์ฑ๊ณผ ๋ฏธํก โ ๋ฆฌ๋ผ์ดํ ๋๋ ์ญ์ ๊ฒํ ๋์" - }, - { - "id": "2026-06-15_AI_์ฝ๋ฉ_๋ฌด๋ฃ๋ก_๋ฐฐ์ฐ๋_๋ฒ_TOP_5_์๋ฒฝ_์ ๋ฆฌ_2026๋ ", - "title": "AI ์ฝ๋ฉ ๋ฌด๋ฃ๋ก ๋ฐฐ์ฐ๋ ๋ฒ TOP 5 ์๋ฒฝ ์ ๋ฆฌ 2026๋ ", - "keyword": "AI ์ฝ๋ฉ ๋ฌด๋ฃ๋ก ๋ฐฐ์ฐ๋ ๋ฒ", - "blogUrl": "https://hoguwhat1.blogspot.com/2026/06/ai-top-5-2026_0592099606.html", - "score": 0.2, - "date": "2026-06-15", - "clicks30d": 0, - "impressions30d": 0, - "hint": "์ฑ๊ณผ ๋ฏธํก โ ๋ฆฌ๋ผ์ดํ ๋๋ ์ญ์ ๊ฒํ ๋์" - }, - { - "id": "2026-06-15_2026๋ _์ข ํฉ์๋์ธ_ํ๊ธ_์ ์ฒญ_๋ฐฉ๋ฒ_5๋จ๊ณ_์๋ฒฝ_์ ๋ฆฌ", - "title": "2026๋ ์ข ํฉ์๋์ธ ํ๊ธ ์ ์ฒญ ๋ฐฉ๋ฒ 5๋จ๊ณ ์๋ฒฝ ์ ๋ฆฌ", - "keyword": "์ข ํฉ์๋์ธ ํ๊ธ ์ ์ฒญ ๋ฐฉ๋ฒ", - "blogUrl": "https://hoguwhat1.blogspot.com/2026/06/2026-5_0798872189.html", - "score": 0.2, - "date": "2026-06-15", - "clicks30d": 0, - "impressions30d": 0, - "hint": "์ฑ๊ณผ ๋ฏธํก โ ๋ฆฌ๋ผ์ดํ ๋๋ ์ญ์ ๊ฒํ ๋์" - }, - { - "id": "2026-06-14_2026_์ฒญ์ฝ_๋น์ฒจ_ํ๋ฅ _๋์ด๋_๋ฐฉ๋ฒ_5๊ฐ์ง_์๋ฒฝ_์ ๋ฆฌ", - "title": "2026 ์ฒญ์ฝ ๋น์ฒจ ํ๋ฅ ๋์ด๋ ๋ฐฉ๋ฒ 5๊ฐ์ง ์๋ฒฝ ์ ๋ฆฌ", - "keyword": "2026 ์ฒญ์ฝ ๋น์ฒจ ํ๋ฅ ๋์ด๋ ๋ฐฉ๋ฒ", - "blogUrl": "https://hoguwhat1.blogspot.com/2026/06/2026-5_0212882937.html", - "score": 0.2, - "date": "2026-06-14", - "clicks30d": 0, - "impressions30d": 0, - "hint": "์ฑ๊ณผ ๋ฏธํก โ ๋ฆฌ๋ผ์ดํ ๋๋ ์ญ์ ๊ฒํ ๋์" - }, - { - "id": "2026-06-14_๊ณต๋ณต_ํ๋น_๋ฎ์ถ๋_์ํ_์ต๊ด_TOP_5_์๋ฒฝ_์ ๋ฆฌ__2026๋ _", - "title": "๊ณต๋ณต ํ๋น ๋ฎ์ถ๋ ์ํ ์ต๊ด TOP 5 ์๋ฒฝ ์ ๋ฆฌ (2026๋ )", - "keyword": "๊ณต๋ณต ํ๋น ๋ฎ์ถ๋ ์ํ ์ต๊ด", - "blogUrl": "https://hoguwhat1.blogspot.com/2026/06/top-5-2026_01610766.html", - "score": 0.2, - "date": "2026-06-14", - "clicks30d": 0, - "impressions30d": 0, - "hint": "์ฑ๊ณผ ๋ฏธํก โ ๋ฆฌ๋ผ์ดํ ๋๋ ์ญ์ ๊ฒํ ๋์" - }, - { - "id": "2026-06-14_AI_์ฝ๋ฉ_๋๊ตฌ_์ปค์_์๋ฒฝ_์ฌ์ฉ๋ฒ_๊ฐ์ด๋_2026", - "title": "AI ์ฝ๋ฉ ๋๊ตฌ ์ปค์ ์๋ฒฝ ์ฌ์ฉ๋ฒ ๊ฐ์ด๋ 2026", - "keyword": "AI ์ฝ๋ฉ ๋๊ตฌ ์ปค์ ์ฌ์ฉ๋ฒ ์๋ฒฝ๊ฐ์ด๋", - "blogUrl": "https://hoguwhat1.blogspot.com/2026/06/ai-2026.html", - "score": 0.2, - "date": "2026-06-14", - "clicks30d": 0, - "impressions30d": 0, - "hint": "์ฑ๊ณผ ๋ฏธํก โ ๋ฆฌ๋ผ์ดํ ๋๋ ์ญ์ ๊ฒํ ๋์" - }, - { - "id": "2026-06-14_2026_ํ๋ฐ๊ธฐ_์ํํธ_๋ถ์_์ผ์ _์ด์ ๋ฆฌ_5๊ฐ์ง_ํต์ฌ_์ ๋ต", - "title": "2026 ํ๋ฐ๊ธฐ ์ํํธ ๋ถ์ ์ผ์ ์ด์ ๋ฆฌ 5๊ฐ์ง ํต์ฌ ์ ๋ต", - "keyword": "2026 ํ๋ฐ๊ธฐ ์ํํธ ๋ถ์ ์ผ์ ์ด์ ๋ฆฌ", - "blogUrl": "https://hoguwhat1.blogspot.com/2026/06/2026-5_0351280751.html", - "score": 0.2, - "date": "2026-06-14", - "clicks30d": 0, - "impressions30d": 0, - "hint": "์ฑ๊ณผ ๋ฏธํก โ ๋ฆฌ๋ผ์ดํ ๋๋ ์ญ์ ๊ฒํ ๋์" - }, - { - "id": "2026-06-13_2026_์ฃผ์_ํฌ์_์ด๋ณด_์์_๋ฐฉ๋ฒ_5๋จ๊ณ_์๋ฒฝ_์ ๋ฆฌ", - "title": "2026 ์ฃผ์ ํฌ์ ์ด๋ณด ์์ ๋ฐฉ๋ฒ 5๋จ๊ณ ์๋ฒฝ ์ ๋ฆฌ", - "keyword": "2026 ์ฃผ์ ํฌ์ ์ด๋ณด ์์ ๋ฐฉ๋ฒ", - "blogUrl": "https://hoguwhat1.blogspot.com/2026/06/2026-5_0906654488.html", - "score": 0.2, - "date": "2026-06-13", - "clicks30d": 0, - "impressions30d": 0, - "hint": "์ฑ๊ณผ ๋ฏธํก โ ๋ฆฌ๋ผ์ดํ ๋๋ ์ญ์ ๊ฒํ ๋์" - }, - { - "id": "2026-06-13_2026๋ _AI_์ ๋ฌด_์๋ํ_๋๊ตฌ_์ถ์ฒ_TOP_5_์๋ฒฝ_์ ๋ฆฌ", - "title": "2026๋ AI ์ ๋ฌด ์๋ํ ๋๊ตฌ ์ถ์ฒ TOP 5 ์๋ฒฝ ์ ๋ฆฌ", - "keyword": "AI ์ ๋ฌด ์๋ํ ๋๊ตฌ ์ถ์ฒ", - "blogUrl": "https://hoguwhat1.blogspot.com/2026/06/2026-ai-top-5_0207067965.html", - "score": 0.2, - "date": "2026-06-13", - "clicks30d": 0, - "impressions30d": 0, - "hint": "์ฑ๊ณผ ๋ฏธํก โ ๋ฆฌ๋ผ์ดํ ๋๋ ์ญ์ ๊ฒํ ๋์" - }, - { - "id": "2026-06-13_AI_ํ์ฉ_์ฌํ๋ถ์ _์์์ _ํ๊ธฐ_TOP_5_์ค์ _๊ฐ์ด๋_2026๋ ", - "title": "AI ํ์ฉ ์ฌํ๋ถ์ ์์์ ํ๊ธฐ TOP 5 ์ค์ ๊ฐ์ด๋ 2026๋ ", - "keyword": "AI ํ์ฉ ์ฌํ๋ถ์ ์์์ ํ๊ธฐ", - "blogUrl": "https://hoguwhat1.blogspot.com/2026/06/ai-top-5-2026_01214538386.html", - "score": 0.2, - "date": "2026-06-13", - "clicks30d": 0, - "impressions30d": 0, - "hint": "์ฑ๊ณผ ๋ฏธํก โ ๋ฆฌ๋ผ์ดํ ๋๋ ์ญ์ ๊ฒํ ๋์" - }, - { - "id": "2026-06-12_2026๋ _AI_์ฝ๋ฉ_๋๊ตฌ_๋ฌด๋ฃ_์ถ์ฒ_TOP_5_์๋ฒฝ_์ ๋ฆฌ", - "title": "2026๋ AI ์ฝ๋ฉ ๋๊ตฌ ๋ฌด๋ฃ ์ถ์ฒ TOP 5 ์๋ฒฝ ์ ๋ฆฌ", - "keyword": "AI ์ฝ๋ฉ ๋๊ตฌ ๋ฌด๋ฃ ์ถ์ฒ", - "blogUrl": "https://hoguwhat1.blogspot.com/2026/06/2026-ai-top-5.html", - "score": 0.2, - "date": "2026-06-12", - "clicks30d": 0, - "impressions30d": 0, - "hint": "์ฑ๊ณผ ๋ฏธํก โ ๋ฆฌ๋ผ์ดํ ๋๋ ์ญ์ ๊ฒํ ๋์" - }, - { - "id": "2026-06-12_์ฌ๋ฆ์ฒ _์ด์ฌ๋ณ_์๋ฐฉ๋ฒ_์๋ฒฝ_์ ๋ฆฌ_TOP_5__2026๋ _", - "title": "์ฌ๋ฆ์ฒ ์ด์ฌ๋ณ ์๋ฐฉ๋ฒ ์๋ฒฝ ์ ๋ฆฌ TOP 5 (2026๋ )", - "keyword": "์ฌ๋ฆ์ฒ ์ด์ฌ๋ณ ์๋ฐฉ๋ฒ", - "blogUrl": "https://hoguwhat1.blogspot.com/2026/06/top-5-2026_0951591753.html", - "score": 0.2, - "date": "2026-06-12", - "clicks30d": 0, - "impressions30d": 0, - "hint": "์ฑ๊ณผ ๋ฏธํก โ ๋ฆฌ๋ผ์ดํ ๋๋ ์ญ์ ๊ฒํ ๋์" - }, - { - "id": "2026-06-10_2026_์ฃผ์_๋ฐฐ๋น์ฃผ_์ถ์ฒ_์ข ๋ชฉ_TOP_5_์๋ฒฝ_์ ๋ฆฌ", - "title": "2026 ์ฃผ์ ๋ฐฐ๋น์ฃผ ์ถ์ฒ ์ข ๋ชฉ TOP 5 ์๋ฒฝ ์ ๋ฆฌ", - "keyword": "2026 ์ฃผ์ ๋ฐฐ๋น์ฃผ ์ถ์ฒ ์ข ๋ชฉ", - "blogUrl": "https://hoguwhat1.blogspot.com/2026/06/2026-top-5_02132301026.html", - "score": 0.2, - "date": "2026-06-10", - "clicks30d": 0, - "impressions30d": 0, - "hint": "์ฑ๊ณผ ๋ฏธํก โ ๋ฆฌ๋ผ์ดํ ๋๋ ์ญ์ ๊ฒํ ๋์" - }, - { - "id": "2026-06-10_AI_์์ด์ ํธ_์ ๋ฌด_์๋ํ_๋ฐฉ๋ฒ_TOP_5_์ค์ _๊ฐ์ด๋_2026๋ ", - "title": "AI ์์ด์ ํธ ์ ๋ฌด ์๋ํ ๋ฐฉ๋ฒ TOP 5 ์ค์ ๊ฐ์ด๋ 2026๋ ", - "keyword": "AI ์์ด์ ํธ ํ์ฉ ์ ๋ฌด ์๋ํ ๋ฐฉ๋ฒ", - "blogUrl": "https://hoguwhat1.blogspot.com/2026/06/ai-top-5-2026_0177069128.html", - "score": 0.2, - "date": "2026-06-10", - "clicks30d": 0, - "impressions30d": 0, - "hint": "์ฑ๊ณผ ๋ฏธํก โ ๋ฆฌ๋ผ์ดํ ๋๋ ์ญ์ ๊ฒํ ๋์" - }, - { - "id": "2026-06-10_2026_์ฃผํ์ฒญ์ฝ_๋น์ฒจ_์กฐ๊ฑด_์ด์ ๋ฆฌ___ํต์ฌ_5๊ฐ์ง_์ ๋ต", - "title": "2026 ์ฃผํ์ฒญ์ฝ ๋น์ฒจ ์กฐ๊ฑด ์ด์ ๋ฆฌ โ ํต์ฌ 5๊ฐ์ง ์ ๋ต", - "keyword": "2026 ์ฃผํ์ฒญ์ฝ ๋น์ฒจ ์กฐ๊ฑด ์ด์ ๋ฆฌ", - "blogUrl": "https://hoguwhat1.blogspot.com/2026/06/2026-5_01039548558.html", - "score": 0.2, - "date": "2026-06-10", - "clicks30d": 0, - "impressions30d": 0, - "hint": "์ฑ๊ณผ ๋ฏธํก โ ๋ฆฌ๋ผ์ดํ ๋๋ ์ญ์ ๊ฒํ ๋์" - }, - { - "id": "2026-06-10_AI_์ฝ๋ฉ_ํด_์ง์ฅ์ธ_๋ถ์ _ํ์ฉ๋ฒ_TOP_5_์ค์ _๊ฐ์ด๋_2026๋ ", - "title": "AI ์ฝ๋ฉ ํด ์ง์ฅ์ธ ๋ถ์ ํ์ฉ๋ฒ TOP 5 ์ค์ ๊ฐ์ด๋ 2026๋ ", - "keyword": "AI ์ฝ๋ฉ ํด ์ง์ฅ์ธ ๋ถ์ ํ์ฉ๋ฒ", - "blogUrl": "https://hoguwhat1.blogspot.com/2026/06/ai-top-5-2026_0129953256.html", - "score": 0.2, - "date": "2026-06-10", - "clicks30d": 0, - "impressions30d": 0, - "hint": "์ฑ๊ณผ ๋ฏธํก โ ๋ฆฌ๋ผ์ดํ ๋๋ ์ญ์ ๊ฒํ ๋์" - }, - { - "id": "2026-06-09_AI_์ฝ๋ฉ_ํด_๋ฌด๋ฃ_์ฌ์ฉ๋ฒ_TOP_5_์๋ฒฝ_์ ๋ฆฌ_2026๋ ", - "title": "AI ์ฝ๋ฉ ํด ๋ฌด๋ฃ ์ฌ์ฉ๋ฒ TOP 5 ์๋ฒฝ ์ ๋ฆฌ 2026๋ ", - "keyword": "AI ์ฝ๋ฉ ํด ๋ฌด๋ฃ ์ฌ์ฉ๋ฒ", - "blogUrl": "https://hoguwhat1.blogspot.com/2026/06/ai-top-5-2026.html", - "score": 0.2, - "date": "2026-06-09", - "clicks30d": 0, - "impressions30d": 0, - "hint": "์ฑ๊ณผ ๋ฏธํก โ ๋ฆฌ๋ผ์ดํ ๋๋ ์ญ์ ๊ฒํ ๋์" + "blogBreakdown": { + "blog1": { + "posts": 32, + "grade_counts": { + "S": 0, + "A": 0, + "B": 32, + "C": 0 + }, + "pageviews30d": 0, + "gscClicks30d": 0 + }, + "blog3": { + "posts": 31, + "grade_counts": { + "S": 0, + "A": 0, + "B": 31, + "C": 0 + }, + "pageviews30d": 0, + "gscClicks30d": 0 + }, + "blog2": { + "posts": 28, + "grade_counts": { + "S": 0, + "A": 0, + "B": 28, + "C": 0 + }, + "pageviews30d": 0, + "gscClicks30d": 0 } - ], + }, + "rewriteTargets": [], "topPerformers": [], "dataSource": { - "bloggerApi": true, + "bloggerApi": false, "gscPageData": true, "gscUrlsMatched": 0 } diff --git a/blog-automation/logs/automation.log b/blog-automation/logs/automation.log new file mode 100644 index 0000000000000..468d65c289ae0 --- /dev/null +++ b/blog-automation/logs/automation.log @@ -0,0 +1,587 @@ +2026-07-22 11:50:02,780 [INFO] gsc_fetcher โ GSC ๊ณ ์ฑ๊ณผ ์นดํ ๊ณ ๋ฆฌ ์์: [] +2026-07-22 11:50:02,782 [INFO] keyword_collector โ ์ ์ฌ ์ฃผ์ ์ ์ธ 2๊ฐ: ['์ฃผํ๋ด๋ณด๋์ถ ๊ธ๋ฆฌ ์ต์ ์ํ 2026 ์ง์ ๋ฐํ ํ์ ๋น๊ต', '์ฝ์คํผ ์ฝ์ค๋ฅ 2026 ํ๋ฐ๊ธฐ ์ ๋ง ํต์ฌ ์ ๋ฆฌ'] +2026-07-22 11:50:02,782 [INFO] keyword_collector โ [fallback] 2๊ฐ: ['๋ฏธ๊ตญ ์ฐ์ค ๊ธ๋ฆฌ ๊ฒฐ์ ํ๊ตญ ์ฆ์ ์ํฅ ๋ถ์', '์๋ฌ๋ฌ ํ์จ ๊ธ๋ฑ๋ฝ ์์ธ๊ณผ ๊ฐ์ธํฌ์์ ๋์๋ฒ'] +2026-07-22 11:50:02,782 [INFO] keyword_collector โ ์ต์ข ์ ์ ํค์๋ 2๊ฐ: ['๋ฏธ๊ตญ ์ฐ์ค ๊ธ๋ฆฌ ๊ฒฐ์ ํ๊ตญ ์ฆ์ ์ํฅ ๋ถ์', '์๋ฌ๋ฌ ํ์จ ๊ธ๋ฑ๋ฝ ์์ธ๊ณผ ๊ฐ์ธํฌ์์ ๋์๋ฒ'] +2026-07-22 11:50:02,782 [INFO] main โ ์์ง๋ ํค์๋ 2๊ฐ: ['๋ฏธ๊ตญ ์ฐ์ค ๊ธ๋ฆฌ ๊ฒฐ์ ํ๊ตญ ์ฆ์ ์ํฅ ๋ถ์', '์๋ฌ๋ฌ ํ์จ ๊ธ๋ฑ๋ฝ ์์ธ๊ณผ ๊ฐ์ธํฌ์์ ๋์๋ฒ'] +2026-07-22 11:50:02,787 [INFO] main โ ์๋ ์๋ฆฌ์ฆ ๋๊ธฐ ์ค (๋ง์ง๋ง ์๋ฆฌ์ฆ 4์ผ ์ , 3์ผ ํ ํ์ฑํ) +2026-07-22 11:50:02,787 [INFO] main โ ๋จ๋ ํฌ์คํธ ๋์ ํค์๋ 1๊ฐ: ['๋ฏธ๊ตญ ์ฐ์ค ๊ธ๋ฆฌ ๊ฒฐ์ ํ๊ตญ ์ฆ์ ์ํฅ ๋ถ์'] +2026-07-22 11:50:02,800 [INFO] main โ +[1/1] ํค์๋: '๋ฏธ๊ตญ ์ฐ์ค ๊ธ๋ฆฌ ๊ฒฐ์ ํ๊ตญ ์ฆ์ ์ํฅ ๋ถ์' +2026-07-22 11:50:02,801 [INFO] content_generator โ ํฌ์คํธ ์์ฑ ์ค: '๋ฏธ๊ตญ ์ฐ์ค ๊ธ๋ฆฌ ๊ฒฐ์ ํ๊ตญ ์ฆ์ ์ํฅ ๋ถ์' +2026-07-22 11:50:03,333 [INFO] httpx โ HTTP Request: POST https://api.anthropic.com/v1/messages "HTTP/1.1 400 Bad Request" +2026-07-22 11:50:03,333 [WARNING] research_collector โ ๊ฒ์ ์๋ ๋ถ์ ์คํจ: Error code: 400 - {'type': 'error', 'error': {'type': 'invalid_request_error', 'message': 'You have reached your specified API usage limits. You will regain access on 2026-08-01 at 00:00 UTC.'}, 'request_id': 'req_011CdH3bZU3icwt1q4wpP4qs'} +2026-07-22 11:50:20,275 [INFO] research_collector โ ์๋ฃ ์กฐ์ฌ: 8๊ฐ ์์ง (์ ๋ขฐ ๋๋ฉ์ธ 4๊ฐ) โ '๋ฏธ๊ตญ ์ฐ์ค ๊ธ๋ฆฌ ๊ฒฐ์ ํ๊ตญ ์ฆ์ ์ํฅ ๋ถ์' +2026-07-22 11:50:20,482 [INFO] httpx โ HTTP Request: POST https://api.anthropic.com/v1/messages "HTTP/1.1 400 Bad Request" +2026-07-22 11:50:20,482 [WARNING] evidence_builder โ ์๋ฃํฉ ์์ฑ ์คํจ: Error code: 400 - {'type': 'error', 'error': {'type': 'invalid_request_error', 'message': 'You have reached your specified API usage limits. You will regain access on 2026-08-01 at 00:00 UTC.'}, 'request_id': 'req_011CdH3cqwmVxiSnLhb7FhTC'} +2026-07-22 11:50:20,484 [INFO] content_generator โ AI ์ ๊ณต์: CLAUDE (์๋ 1/3) +2026-07-22 11:50:20,715 [INFO] httpx โ HTTP Request: POST https://api.anthropic.com/v1/messages "HTTP/1.1 400 Bad Request" +2026-07-22 11:50:21,159 [WARNING] config โ Claude ์ฌ์ฉ ํ๋ ๋๋ฌ โ OpenAI(gpt-4o)๋ก ์๋ ํด๋ฐฑ +2026-07-22 11:50:34,895 [INFO] httpx โ HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK" +2026-07-22 11:50:34,912 [WARNING] content_generator โ ์ปจํ ์ธ ๋๋ฌด ์งง์(1025์, ์ต์ 2500์) โ ์ฌ์๋ 1/3 +2026-07-22 11:50:37,912 [INFO] content_generator โ AI ์ ๊ณต์: CLAUDE (์๋ 2/3) +2026-07-22 11:50:37,913 [WARNING] config โ Claude ์ฌ์ฉ ํ๋ ๋๋ฌ โ OpenAI(gpt-4o)๋ก ์๋ ํด๋ฐฑ +2026-07-22 11:50:52,433 [INFO] httpx โ HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK" +2026-07-22 11:50:52,437 [WARNING] content_generator โ ์ปจํ ์ธ ๋๋ฌด ์งง์(1118์, ์ต์ 2500์) โ ์ฌ์๋ 2/3 +2026-07-22 11:50:55,437 [INFO] content_generator โ AI ์ ๊ณต์: CLAUDE (์๋ 3/3) +2026-07-22 11:50:55,437 [WARNING] config โ Claude ์ฌ์ฉ ํ๋ ๋๋ฌ โ OpenAI(gpt-4o)๋ก ์๋ ํด๋ฐฑ +2026-07-22 11:51:13,877 [INFO] httpx โ HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK" +2026-07-22 11:51:13,882 [WARNING] content_generator โ ์ต์ ๋ถ๋ ๋ฏธ๋ฌ(1377์) โ ์ฌ์๋ ์์ง, ํด๋น ๋ถ๋์ผ๋ก ์งํ +2026-07-22 11:51:13,902 [WARNING] config โ Claude ์ฌ์ฉ ํ๋ ๋๋ฌ โ OpenAI(gpt-4o)๋ก ์๋ ํด๋ฐฑ +2026-07-22 11:51:18,239 [INFO] httpx โ HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK" +2026-07-22 11:51:18,250 [INFO] content_generator โ ํฉํธ์ฒดํฌ: ์ด์ 5๊ฑด ๋ฐ๊ฒฌ, 5๊ฑด ์๋ ์์ ์ ์ฉ +2026-07-22 11:51:19,952 [INFO] image_fetcher โ ์ด๋ฏธ์ง ์์ง ์ฑ๊ณต: '๋ฏธ๊ตญ ์ฐ์ค ๊ธ๋ฆฌ ๊ฒฐ์ ์ด ํ๊ตญ ์ฆ์์ ๋ฏธ์น๋ ์ํฅ: ์ง๊ธ ์์์ผ ํ ์ ' โ ์ ๋ชฉ='๋ฏธ๊ตญ ๊ธ๋ฆฌ์ธํ ์๋ฐ๊ธฐ ๋๊ธธ ๋ฏโฆ์ฐ์ค "๊ฒฝ์ ์ด๋๋ก ํ์ง ๋ชจ๋ฅด๊ฒ ๋ค"' (๊ด๋ จ์ฑ=0.20) +2026-07-22 11:51:21,203 [INFO] image_fetcher โ ๋์ฒด ์ด๋ฏธ์ง ์์ง: '๋ฏธ๊ตญ ์ฐ์ค ๊ธ๋ฆฌ' โ ์ ๋ชฉ='๋ด์์ฆ์, FOMC ๊ฒฐ๊ณผ์ ์๋ยทยทยท๋์ค๋ฅ 4.06%โ๋ง๊ฐ' (๊ด๋ จ์ฑ=0.00) +2026-07-22 11:51:21,203 [INFO] image_fetcher โ ์ด๋ฏธ์ง ์์ง ์ฑ๊ณต: '๋ฏธ๊ตญ ์ฐ์ค ๊ธ๋ฆฌ' โ ์ ๋ชฉ='๋ด์์ฆ์, FOMC ๊ฒฐ๊ณผ์ ์๋ยทยทยท๋์ค๋ฅ 4.06%โ๋ง๊ฐ' (๊ด๋ จ์ฑ=0.00) +2026-07-22 11:51:21,902 [INFO] image_fetcher โ ์ด๋ฏธ์ง ์์ง ์ฑ๊ณต: '๋ฏธ๊ตญ ์ฐ์ค ๊ฒฐ์ ๋ฐฐ๊ฒฝ๊ณผ ๊ธ๋ฆฌ๋ฅผ ์ ์ฑ ์' โ ์ ๋ชฉ='๋ฏธ๊ตญ 5์ ๊ณ ์ฉ์งํ โ์ผํฌโโฆ์ฐ์ค ๊ธ๋ฆฌ ์ธํ ์๋ฐ' (๊ด๋ จ์ฑ=0.33) +2026-07-22 11:51:22,116 [INFO] httpx โ HTTP Request: POST https://api.anthropic.com/v1/messages "HTTP/1.1 400 Bad Request" +2026-07-22 11:51:22,117 [INFO] content_generator โ ์ด๋ฏธ์ง 3์ฅ ์์ง ์๋ฃ (์ต์ 1 / ์ต๋ 3) +2026-07-22 11:51:22,118 [INFO] content_generator โ ์ด๋ฏธ์ง 3๊ฐ ๋ณธ๋ฌธ ์ฝ์ ์๋ฃ +2026-07-22 11:51:22,120 [INFO] content_generator โ ํฌ์คํธ ์์ฑ ์๋ฃ: '๋ฏธ๊ตญ ์ฐ์ค ๊ธ๋ฆฌ ๊ฒฐ์ ์ด ํ๊ตญ ์ฆ์์ ๋ฏธ์น๋ ์ํฅ: ์ง๊ธ ์์์ผ ํ ์ ' (1377์, ์ด๋ฏธ์ง 3๊ฐ) +2026-07-22 11:51:22,143 [WARNING] config โ Claude ์ฌ์ฉ ํ๋ ๋๋ฌ โ OpenAI(gpt-4o)๋ก ์๋ ํด๋ฐฑ +2026-07-22 11:51:25,664 [INFO] httpx โ HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK" +2026-07-22 11:51:25,673 [INFO] adsense_validator โ AdSense ๊ฒ์ฆ โ ๏ธ [REVIEW] ์ ์: 72/100 โ '๋ฏธ๊ตญ ์ฐ์ค ๊ธ๋ฆฌ ๊ฒฐ์ ์ด ํ๊ตญ ์ฆ์์ ๋ฏธ์น๋ ์ํฅ: ์ง๊ธ ์์์ผ ' +2026-07-22 11:51:25,673 [INFO] adsense_validator โ โ ์๋ณธ์ฑ ๋ฐ ํ์ง: ๊ธ์ ์๊ฐ 1377์๋ก 2000์ ๋ฏธ๋ง์ด๋ฉฐ, ์๋ก์ด ์ธ์ฌ์ดํธ๋ ๊ฒฝํ ๊ธฐ๋ฐ ๋ถ์์ด ๋ถ์กฑํจ. +2026-07-22 11:51:25,673 [INFO] adsense_validator โ โ ๏ธ E-E-A-T ์ ๋ขฐ๋: ์ถ์ฒ๋ ์์ผ๋ 1์ธ์นญ ๊ฒฝํ์ด ๋ถ์กฑํ๊ณ ์ ์ ์ ๋ขฐ์ฑ์ ๋ํ ์ ๋ณด๊ฐ ๋ถ์กฑ. +2026-07-22 11:51:25,674 [INFO] adsense_validator โ โ ๏ธ ์ด๋ฏธ์ง ์ ์ฑ : ์ด๋ฏธ์ง๊ฐ ์๊ธฐ ๋๋ฌธ์ SEO ๋ฐ ๊ฐ๋ ์ฑ ์ธก๋ฉด์์ ๊ฐ์ ๊ฐ๋ฅ. +2026-07-22 11:51:25,674 [INFO] adsense_validator โ โ ๏ธ AI ์์ฑ ์์ฌ๋: ์ผ๋ฐ์ ์ธ ๋ฌธ์ฒด๋ก ํน์ ๊ฒฝํ์ด๋ ๊ฐ์ ์ด ๋๋ฌ๋์ง ์์. +2026-07-22 11:51:25,674 [WARNING] adsense_validator โ ๐ด [์๋ณธ์ฑ ๋ฐ ํ์ง] ๊ธ์ ์๊ฐ 1377์๋ก 2000์ ๋ฏธ๋ง์ด๋ฉฐ, ์๋ก์ด ์ธ์ฌ์ดํธ๋ ๊ฒฝํ ๊ธฐ๋ฐ ๋ถ์์ด ๋ถ์กฑํจ. +2026-07-22 11:51:25,674 [WARNING] adsense_validator โ ๐ด originality +2026-07-22 11:51:25,683 [INFO] internal_linker โ ๋ด๋ถ ๋งํฌ ํ๋ณด 5๊ฐ ๋ฐ๊ฒฌ +2026-07-22 11:51:25,686 [INFO] internal_linker โ [1/5] 'ํฌ์ธํธ' -> https://hogugolfntraval.blogspot.com/2026/07/2026_0140262446 +2026-07-22 11:51:25,688 [INFO] internal_linker โ [2/5] 'ํฌ์์' -> https://hoguasset.blogspot.com/2026/07/etf_0136688765.html +2026-07-22 11:51:25,688 [INFO] internal_linker โ ๋ด๋ถ ๋งํฌ 2๊ฐ ์ฝ์ ์๋ฃ +2026-07-22 11:51:25,688 [INFO] main โ ์ ๋ชฉ: ๋ฏธ๊ตญ ์ฐ์ค ๊ธ๋ฆฌ ๊ฒฐ์ ์ด ํ๊ตญ ์ฆ์์ ๋ฏธ์น๋ ์ํฅ: ์ง๊ธ ์์์ผ ํ ์ +2026-07-22 11:51:25,688 [INFO] main โ ์ด๋ฏธ์ง: 3๊ฐ ์ฝ์ +2026-07-22 11:51:25,688 [INFO] main โ ๊ธ์ ์: 1377์ +2026-07-22 11:51:25,688 [WARNING] main โ โ ๏ธ ๊ธ์ ์ ๋ฏธ๋ฌ โ pending ์ ์ฅ: '๋ฏธ๊ตญ ์ฐ์ค ๊ธ๋ฆฌ ๊ฒฐ์ ์ด ํ๊ตญ ์ฆ์์ ๋ฏธ์น๋ ์ํฅ: ์ง๊ธ ์์์ผ ํ ์ ' (1377์ < 2500์) +2026-07-22 11:51:25,710 [INFO] dashboard_exporter โ ๊ฒํ ๋๊ธฐ ์ ์ฅ: ๋ฏธ๊ตญ ์ฐ์ค ๊ธ๋ฆฌ ๊ฒฐ์ ์ด ํ๊ตญ ์ฆ์์ ๋ฏธ์น๋ ์ํฅ: ์ง๊ธ ์์์ผ ํ ์ (6459์ HTML) +2026-07-22 11:51:25,723 [INFO] dashboard_exporter โ ๊ฒํ ๋๊ธฐ ํฌ์คํธ ์ ์ฅ ์๋ฃ: 1๊ฐ ์ถ๊ฐ (์ด 106๊ฐ) +2026-07-22 11:51:25,723 [INFO] main โ +============================================================ +2026-07-22 11:51:25,723 [INFO] main โ [๊ธ์ตNEWS] ์๋ฃ: ์ฑ๊ณต 1๊ฐ / ์คํจ 0๊ฐ +2026-07-22 11:51:25,723 [INFO] main โ ============================================================ +2026-07-22 11:51:25,746 [INFO] dashboard_exporter โ ์คํ ์ด๋ ฅ ์ ์ฅ ์๋ฃ (์ด 100๊ฐ) +2026-07-22 11:51:25,762 [INFO] dashboard_exporter โ ์๋ฆฌ์ฆ: 9๊ฐ ๋ด๋ณด๋ด๊ธฐ ์๋ฃ +2026-07-22 11:51:25,775 [INFO] dashboard_exporter โ SNS ๋ฐ์ดํฐ: 50๊ฐ ๋ด๋ณด๋ด๊ธฐ ์๋ฃ +2026-07-22 11:51:25,984 [WARNING] gsc_fetcher โ GSC ๊ถํ ์์ โ ์ฌ์ดํธ๊ฐ Search Console์ ๋ฑ๋ก๋๋์ง ํ์ธํ์ธ์ +2026-07-22 11:51:26,252 [INFO] gsc_fetcher โ GSC ๋ฐ์ดํฐ ์์ง ์๋ฃ: 0๊ฐ ์ฟผ๋ฆฌ / 0๊ฐ ์นดํ ๊ณ ๋ฆฌ +2026-07-22 11:51:26,254 [INFO] gsc_fetcher โ GSC ๋์๋ณด๋ ๋ฐ์ดํฐ ์ ์ฅ: /home/runner/work/cli/cli/blog-automation/../docs/data/gsc.json +2026-07-22 11:51:26,257 [INFO] dashboard_exporter โ ์๋ฆฌ ์ด๋ ฅ: 50๊ฑด ๋ด๋ณด๋ด๊ธฐ ์๋ฃ +2026-07-22 11:51:26,271 [INFO] post_manager โ ํฌ์คํธ ๋ ์ง์คํธ๋ฆฌ: ์ ์ฒด 300๊ฐ (๊ฒ์ 180 / ์คํจ 15 / ๋๊ธฐ 79) +2026-07-22 11:51:26,272 [INFO] dashboard_exporter โ ๋์๋ณด๋ ๋ฐ์ดํฐ ๋ด๋ณด๋ด๊ธฐ ์๋ฃ โ /home/runner/work/cli/cli/blog-automation/../docs/data +2026-07-22 11:51:26,272 [INFO] dashboard_exporter โ ํฌ์คํธ: 91๊ฐ / ์คํ ์ด๋ ฅ: 100๊ฐ / ๋ธ๋ก๊ทธ: 3๊ฐ +2026-07-22 11:51:26,272 [INFO] main โ ๋์๋ณด๋ ๋ฐ์ดํฐ ์ ๋ฐ์ดํธ ์๋ฃ +2026-07-22 12:29:23,276 [INFO] main โ ============================================================ +2026-07-22 12:29:23,276 [INFO] main โ [๊ธ์ตNEWS] ๋ธ๋ก๊ทธ ์๋ํ ์์: 2026-07-22 12:29:23 +2026-07-22 12:29:23,276 [INFO] main โ ============================================================ +2026-07-22 12:29:23,283 [INFO] main โ ์์ง๋ ํค์๋ 1๊ฐ: ['๋ํต๋ น๋ ํํ ๋ฐฉ์ ๊ฐ๋จ์๋ ์ง์ฃผ์ธ ๋์ถ'] +2026-07-22 12:29:23,287 [INFO] main โ ์๋ ์๋ฆฌ์ฆ ๋๊ธฐ ์ค (๋ง์ง๋ง ์๋ฆฌ์ฆ 4์ผ ์ , 3์ผ ํ ํ์ฑํ) +2026-07-22 12:29:23,287 [INFO] main โ ๋จ๋ ํฌ์คํธ ๋์ ํค์๋ 1๊ฐ: ['๋ํต๋ น๋ ํํ ๋ฐฉ์ ๊ฐ๋จ์๋ ์ง์ฃผ์ธ ๋์ถ'] +2026-07-22 12:29:23,298 [INFO] main โ +[1/1] ํค์๋: '๋ํต๋ น๋ ํํ ๋ฐฉ์ ๊ฐ๋จ์๋ ์ง์ฃผ์ธ ๋์ถ' +2026-07-22 12:29:23,298 [INFO] content_generator โ ํฌ์คํธ ์์ฑ ์ค: '๋ํต๋ น๋ ํํ ๋ฐฉ์ ๊ฐ๋จ์๋ ์ง์ฃผ์ธ ๋์ถ' +2026-07-22 12:29:23,697 [INFO] httpx โ HTTP Request: POST https://api.anthropic.com/v1/messages "HTTP/1.1 400 Bad Request" +2026-07-22 12:29:23,698 [WARNING] research_collector โ ๊ฒ์ ์๋ ๋ถ์ ์คํจ: Error code: 400 - {'type': 'error', 'error': {'type': 'invalid_request_error', 'message': 'You have reached your specified API usage limits. You will regain access on 2026-08-01 at 00:00 UTC.'}, 'request_id': 'req_011CdH6ba7arghZEFng1Y1HB'} +2026-07-22 12:29:29,145 [INFO] research_collector โ ์๋ฃ ์กฐ์ฌ: 8๊ฐ ์์ง (์ ๋ขฐ ๋๋ฉ์ธ 3๊ฐ) โ '๋ํต๋ น๋ ํํ ๋ฐฉ์ ๊ฐ๋จ์๋ ์ง์ฃผ์ธ ๋์ถ' +2026-07-22 12:29:29,351 [INFO] httpx โ HTTP Request: POST https://api.anthropic.com/v1/messages "HTTP/1.1 400 Bad Request" +2026-07-22 12:29:29,352 [WARNING] evidence_builder โ ์๋ฃํฉ ์์ฑ ์คํจ: Error code: 400 - {'type': 'error', 'error': {'type': 'invalid_request_error', 'message': 'You have reached your specified API usage limits. You will regain access on 2026-08-01 at 00:00 UTC.'}, 'request_id': 'req_011CdH6bzSZbHwNPwwheoqrL'} +2026-07-22 12:29:29,352 [INFO] content_generator โ AI ์ ๊ณต์: CLAUDE (์๋ 1/3) +2026-07-22 12:29:29,555 [INFO] httpx โ HTTP Request: POST https://api.anthropic.com/v1/messages "HTTP/1.1 400 Bad Request" +2026-07-22 12:29:29,906 [WARNING] config โ Claude ์ฌ์ฉ ํ๋ ๋๋ฌ โ OpenAI(gpt-4o)๋ก ์๋ ํด๋ฐฑ +2026-07-22 12:29:53,426 [INFO] httpx โ HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK" +2026-07-22 12:29:53,478 [WARNING] content_generator โ ์ปจํ ์ธ ๋๋ฌด ์งง์(1365์, ์ต์ 2500์) โ ์ฌ์๋ 1/3 +2026-07-22 12:29:56,478 [INFO] content_generator โ AI ์ ๊ณต์: CLAUDE (์๋ 2/3) +2026-07-22 12:29:56,478 [WARNING] config โ Claude ์ฌ์ฉ ํ๋ ๋๋ฌ โ OpenAI(gpt-4o)๋ก ์๋ ํด๋ฐฑ +2026-07-22 12:30:15,861 [INFO] httpx โ HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK" +2026-07-22 12:30:15,862 [WARNING] content_generator โ ์ปจํ ์ธ ๋๋ฌด ์งง์(1424์, ์ต์ 2500์) โ ์ฌ์๋ 2/3 +2026-07-22 12:30:18,863 [INFO] content_generator โ AI ์ ๊ณต์: CLAUDE (์๋ 3/3) +2026-07-22 12:30:18,863 [WARNING] config โ Claude ์ฌ์ฉ ํ๋ ๋๋ฌ โ OpenAI(gpt-4o)๋ก ์๋ ํด๋ฐฑ +2026-07-22 12:30:39,081 [INFO] httpx โ HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK" +2026-07-22 12:30:39,085 [WARNING] content_generator โ ์ต์ ๋ถ๋ ๋ฏธ๋ฌ(1493์) โ ์ฌ์๋ ์์ง, ํด๋น ๋ถ๋์ผ๋ก ์งํ +2026-07-22 12:30:39,101 [WARNING] config โ Claude ์ฌ์ฉ ํ๋ ๋๋ฌ โ OpenAI(gpt-4o)๋ก ์๋ ํด๋ฐฑ +2026-07-22 12:30:41,238 [INFO] httpx โ HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK" +2026-07-22 12:30:41,252 [INFO] content_generator โ ํฉํธ์ฒดํฌ: ์ด์ 2๊ฑด ๋ฐ๊ฒฌ, 2๊ฑด ์๋ ์์ ์ ์ฉ +2026-07-22 12:30:41,536 [INFO] image_fetcher โ ์ด๋ฏธ์ง ์์ง ์ฑ๊ณต: '๊ฐ๋จ์ง์ฃผ์ธ ๋์ถ, ์ง์ง ๋ด๊ฒ๋ ํด๋น๋ ๊น? ๋ํต๋ น๋ ์ ํํ ๋ฐฉ๋ฒ' โ ์ ๋ชฉ='real estate / homeownership / homebuying' (๊ด๋ จ์ฑ=0.11) +2026-07-22 12:30:43,417 [INFO] image_fetcher โ ์ด๋ฏธ์ง ์์ง ์ฑ๊ณต: '๋ํต๋ น๋ ํํ ๋ฐฉ์' โ ์ ๋ชฉ='์ธ์ โ์ค์ค๋ก ๋ชฐ๋ฝ ํํ ๋ํต๋ นโ โ์๋ํ ๋ฏผ์ฃผ์ฃผ์ ์น๋ฆฌโ[์ค์์ด ํํต ' (๊ด๋ จ์ฑ=0.33) +2026-07-22 12:30:45,470 [INFO] image_fetcher โ ์ด๋ฏธ์ง ์์ง ์ฑ๊ณต: '๋ํต๋ น๋ ํํ ๊ฐ๋จ์ง์ฃผ์ธ ๋์ถ์ด๋ ๋ถ๋์ฐ์ ๋์' โ ์ ๋ชฉ='โ ์ฌ์ค์ โ์ ์น์ ์์ดโ ํํ ๅฐน ๋ํต๋ นโฆ๋์ฒด ์? | ๋ณด๋ฐฐ๋๋ฆผ ์ ์น๊ฒ์' (๊ด๋ จ์ฑ=0.17) +2026-07-22 12:30:45,633 [INFO] httpx โ HTTP Request: POST https://api.anthropic.com/v1/messages "HTTP/1.1 400 Bad Request" +2026-07-22 12:30:45,633 [INFO] content_generator โ ์ด๋ฏธ์ง 3์ฅ ์์ง ์๋ฃ (์ต์ 1 / ์ต๋ 3) +2026-07-22 12:30:45,634 [INFO] content_generator โ ์ด๋ฏธ์ง 3๊ฐ ๋ณธ๋ฌธ ์ฝ์ ์๋ฃ +2026-07-22 12:30:45,636 [INFO] content_generator โ ํฌ์คํธ ์์ฑ ์๋ฃ: '๊ฐ๋จ์ง์ฃผ์ธ ๋์ถ, ์ง์ง ๋ด๊ฒ๋ ํด๋น๋ ๊น? ๋ํต๋ น๋ ์ ํํ ๋ฐฉ๋ฒ' (1493์, ์ด๋ฏธ์ง 3๊ฐ) +2026-07-22 12:30:45,653 [WARNING] config โ Claude ์ฌ์ฉ ํ๋ ๋๋ฌ โ OpenAI(gpt-4o)๋ก ์๋ ํด๋ฐฑ +2026-07-22 12:30:49,373 [INFO] httpx โ HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK" +2026-07-22 12:30:49,374 [INFO] adsense_validator โ AdSense ๊ฒ์ฆ โ [REJECT] ์ ์: 61/100 โ '๊ฐ๋จ์ง์ฃผ์ธ ๋์ถ, ์ง์ง ๋ด๊ฒ๋ ํด๋น๋ ๊น? ๋ํต๋ น๋ ์ ํํ ๋ฐฉ๋ฒ' +2026-07-22 12:30:49,374 [INFO] adsense_validator โ โ ์๋ณธ์ฑ ๋ฐ ํ์ง: ๊ทธ์ ์ ๋ณด ๋์ด์ ๊ทธ์น๋ฉฐ ์ค์ง์ ๊ฐ์น ๋ถ์กฑ +2026-07-22 12:30:49,374 [INFO] adsense_validator โ โ ๏ธ SEO ์ต์ ํ: ํค์๋ ์ฌ์ฉ ์ ์ ํ๋ ๋ฐ๋ณต ๋ฐ ๋ฐ์ง ์ฐ๋ ค ๊ฐ๋ฅ +2026-07-22 12:30:49,374 [INFO] adsense_validator โ โ ๏ธ ์ ํด/๊ธ์ง ์ฝํ ์ธ : ํฌ์ ๊ด๋ จ ๋ฉด์ฑ ์กฐํญ ํ์ ๊ฐ๋ฅ +2026-07-22 12:30:49,374 [INFO] adsense_validator โ โ ๏ธ E-E-A-T ์ ๋ขฐ๋: ์ง์ ๊ฒฝํ ์์ ๋ถ์กฑ ๋ฐ ์ ์ ์ ๋ขฐ์ฑ ์ ๋ณด ์์ +2026-07-22 12:30:49,374 [INFO] adsense_validator โ โ ๏ธ ์ด๋ฏธ์ง ์ ์ฑ : ์ด๋ฏธ์ง ๋ถ์ฌ๋ก SEO ๋ฐ ๊ฐ๋ ์ฑ ์ฐ๋ ค +2026-07-22 12:30:49,374 [INFO] adsense_validator โ โ ๏ธ AI ์์ฑ ์์ฌ๋: ์ ๋ณด ๋์ด์ AI ์์ฑ ์์ฌ ์์ ์์ +2026-07-22 12:30:49,374 [WARNING] adsense_validator โ ๐ด [์๋ณธ์ฑ ๋ฐ ํ์ง] ๊ทธ์ ์ ๋ณด ๋์ด์ ๊ทธ์น๋ฉฐ ์ค์ง์ ๊ฐ์น ๋ถ์กฑ +2026-07-22 12:30:49,375 [WARNING] main โ โ ๏ธ ์ฌ์ ๊ฒ์ฆ ๋ถํฉ๊ฒฉ (์ ์: 61/100, ์ด์ : ['[์๋ณธ์ฑ ๋ฐ ํ์ง] ๊ทธ์ ์ ๋ณด ๋์ด์ ๊ทธ์น๋ฉฐ ์ค์ง์ ๊ฐ์น ๋ถ์กฑ']) โ ์ฌ์์ฑ 2/2 +2026-07-22 12:30:52,375 [INFO] content_generator โ ํฌ์คํธ ์์ฑ ์ค: '๋ํต๋ น๋ ํํ ๋ฐฉ์ ๊ฐ๋จ์๋ ์ง์ฃผ์ธ ๋์ถ' +2026-07-22 12:30:52,556 [INFO] httpx โ HTTP Request: POST https://api.anthropic.com/v1/messages "HTTP/1.1 400 Bad Request" +2026-07-22 12:30:52,557 [WARNING] research_collector โ ๊ฒ์ ์๋ ๋ถ์ ์คํจ: Error code: 400 - {'type': 'error', 'error': {'type': 'invalid_request_error', 'message': 'You have reached your specified API usage limits. You will regain access on 2026-08-01 at 00:00 UTC.'}, 'request_id': 'req_011CdH6i89LSNgrtvNgWD4co'} +2026-07-22 12:30:56,816 [INFO] research_collector โ ์๋ฃ ์กฐ์ฌ: 8๊ฐ ์์ง (์ ๋ขฐ ๋๋ฉ์ธ 3๊ฐ) โ '๋ํต๋ น๋ ํํ ๋ฐฉ์ ๊ฐ๋จ์๋ ์ง์ฃผ์ธ ๋์ถ' +2026-07-22 12:30:56,984 [INFO] httpx โ HTTP Request: POST https://api.anthropic.com/v1/messages "HTTP/1.1 400 Bad Request" +2026-07-22 12:30:56,984 [WARNING] evidence_builder โ ์๋ฃํฉ ์์ฑ ์คํจ: Error code: 400 - {'type': 'error', 'error': {'type': 'invalid_request_error', 'message': 'You have reached your specified API usage limits. You will regain access on 2026-08-01 at 00:00 UTC.'}, 'request_id': 'req_011CdH6iTAa82fXXsN9fJJB4'} +2026-07-22 12:30:56,985 [INFO] content_generator โ AI ์ ๊ณต์: CLAUDE (์๋ 1/3) +2026-07-22 12:30:56,985 [WARNING] config โ Claude ์ฌ์ฉ ํ๋ ๋๋ฌ โ OpenAI(gpt-4o)๋ก ์๋ ํด๋ฐฑ +2026-07-22 12:31:15,559 [INFO] httpx โ HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK" +2026-07-22 12:31:15,567 [WARNING] content_generator โ ์ปจํ ์ธ ๋๋ฌด ์งง์(1547์, ์ต์ 2500์) โ ์ฌ์๋ 1/3 +2026-07-22 12:31:18,567 [INFO] content_generator โ AI ์ ๊ณต์: CLAUDE (์๋ 2/3) +2026-07-22 12:31:18,567 [WARNING] config โ Claude ์ฌ์ฉ ํ๋ ๋๋ฌ โ OpenAI(gpt-4o)๋ก ์๋ ํด๋ฐฑ +2026-07-22 12:31:40,317 [INFO] httpx โ HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK" +2026-07-22 12:31:40,322 [WARNING] content_generator โ ์ปจํ ์ธ ๋๋ฌด ์งง์(1428์, ์ต์ 2500์) โ ์ฌ์๋ 2/3 +2026-07-22 12:31:43,322 [INFO] content_generator โ AI ์ ๊ณต์: CLAUDE (์๋ 3/3) +2026-07-22 12:31:43,323 [WARNING] config โ Claude ์ฌ์ฉ ํ๋ ๋๋ฌ โ OpenAI(gpt-4o)๋ก ์๋ ํด๋ฐฑ +2026-07-22 12:32:04,631 [INFO] httpx โ HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK" +2026-07-22 12:32:04,641 [WARNING] content_generator โ ์ต์ ๋ถ๋ ๋ฏธ๋ฌ(1428์) โ ์ฌ์๋ ์์ง, ํด๋น ๋ถ๋์ผ๋ก ์งํ +2026-07-22 12:32:04,656 [WARNING] config โ Claude ์ฌ์ฉ ํ๋ ๋๋ฌ โ OpenAI(gpt-4o)๋ก ์๋ ํด๋ฐฑ +2026-07-22 12:32:06,919 [INFO] httpx โ HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK" +2026-07-22 12:32:06,923 [INFO] content_generator โ ํฉํธ์ฒดํฌ: ์ด์ 3๊ฑด ๋ฐ๊ฒฌ, 3๊ฑด ์๋ ์์ ์ ์ฉ +2026-07-22 12:32:08,739 [INFO] image_fetcher โ ์ด๋ฏธ์ง ์์ง ์ฑ๊ณต: '๋ํต๋ น๋ ์ฃผ๋ชฉํ '๊ฐ๋จ ์ง์ฃผ์ธ ๋์ถ', ๋์๊ฒ ๋ง๋ ๋ฐฉ๋ฒ์ผ๊น?' โ ์ ๋ชฉ='money / finance / mortgage / loan / real' (๊ด๋ จ์ฑ=0.11) +2026-07-22 12:32:09,931 [INFO] image_fetcher โ ์ด๋ฏธ์ง ์์ง ์ฑ๊ณต: '๋ํต๋ น๋ ํํ ๋ฐฉ์' โ ์ ๋ชฉ='๋งํฌ๋กฑ ไฝ ๋ํต๋ น "ํฌ๋ง ํํ ํ๋์คโฆ๋ถ์ด ๋ฐ๋์ ๊ทน๋ณต"' (๊ด๋ จ์ฑ=0.33) +2026-07-22 12:32:11,839 [INFO] image_fetcher โ ๋์ฒด ์ด๋ฏธ์ง ์์ง: '๋ํต๋ น๋ ํํ ๋์ถ ํต์ฌ ํนํ ์ฃผํ' โ ์ ๋ชฉ='์ค๋์์ ๋จธ - ๊ฑฐ๋ด์ ํธ๋ผํ๋ ๋ฌธ๋ํต๋ น์ ํํ๊ฑฐ๋ผ๊ณ ๊ฑฐ๋ด์ ํธ๋ผํ๋ ๋ฌธ๋' (๊ด๋ จ์ฑ=0.00) +2026-07-22 12:32:11,839 [INFO] image_fetcher โ ์ด๋ฏธ์ง ์์ง ์ฑ๊ณต: '๋ํต๋ น๋ ํํ ๋์ถ ํต์ฌ ํนํ ์ฃผํ' โ ์ ๋ชฉ='์ค๋์์ ๋จธ - ๊ฑฐ๋ด์ ํธ๋ผํ๋ ๋ฌธ๋ํต๋ น์ ํํ๊ฑฐ๋ผ๊ณ ๊ฑฐ๋ด์ ํธ๋ผํ๋ ๋ฌธ๋' (๊ด๋ จ์ฑ=0.00) +2026-07-22 12:32:12,056 [INFO] httpx โ HTTP Request: POST https://api.anthropic.com/v1/messages "HTTP/1.1 400 Bad Request" +2026-07-22 12:32:12,056 [INFO] content_generator โ ์ด๋ฏธ์ง 3์ฅ ์์ง ์๋ฃ (์ต์ 1 / ์ต๋ 3) +2026-07-22 12:32:12,057 [INFO] content_generator โ ์ด๋ฏธ์ง 3๊ฐ ๋ณธ๋ฌธ ์ฝ์ ์๋ฃ +2026-07-22 12:32:12,058 [INFO] content_generator โ ํฌ์คํธ ์์ฑ ์๋ฃ: '๋ํต๋ น๋ ์ฃผ๋ชฉํ '๊ฐ๋จ ์ง์ฃผ์ธ ๋์ถ', ๋์๊ฒ ๋ง๋ ๋ฐฉ๋ฒ์ผ๊น?' (1428์, ์ด๋ฏธ์ง 3๊ฐ) +2026-07-22 12:32:12,072 [WARNING] config โ Claude ์ฌ์ฉ ํ๋ ๋๋ฌ โ OpenAI(gpt-4o)๋ก ์๋ ํด๋ฐฑ +2026-07-22 12:32:17,271 [INFO] httpx โ HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK" +2026-07-22 12:32:17,276 [INFO] adsense_validator โ AdSense ๊ฒ์ฆ โ ๏ธ [REVIEW] ์ ์: 72/100 โ '๋ํต๋ น๋ ์ฃผ๋ชฉํ '๊ฐ๋จ ์ง์ฃผ์ธ ๋์ถ', ๋์๊ฒ ๋ง๋ ๋ฐฉ๋ฒ์ผ๊น?' +2026-07-22 12:32:17,276 [INFO] adsense_validator โ โ ์๋ณธ์ฑ ๋ฐ ํ์ง: 1428์๋ก ๊ธ์ ์ ๊ธฐ์ค ๋ถ์ถฉ์กฑ ๋ฐ ๋ ์ฐฝ์ฑ ๋ถ์กฑ +2026-07-22 12:32:17,276 [INFO] adsense_validator โ โ ๏ธ E-E-A-T ์ ๋ขฐ๋: ์ถ์ฒ ์ธ์ฉ์ ์์ง๋ง ์ง์ ๊ฒฝํ ๋ถ์กฑ +2026-07-22 12:32:17,276 [INFO] adsense_validator โ โ ๏ธ ์ด๋ฏธ์ง ์ ์ฑ : ์ด๋ฏธ์ง๊ฐ ์์ด ๊ฐ๋ ์ฑ ์ํฅ ๊ฐ๋ฅ +2026-07-22 12:32:17,276 [INFO] adsense_validator โ โ ๏ธ AI ์์ฑ ์์ฌ๋: ๋ค์ ์ผ๋ฐ์ ์ธ ๋ฌธ์ฒด ์ฌ์ฉ๋จ +2026-07-22 12:32:17,276 [WARNING] adsense_validator โ ๐ด [์๋ณธ์ฑ ๋ฐ ํ์ง] 1428์๋ก ๊ธ์ ์ ๊ธฐ์ค ๋ถ์ถฉ์กฑ ๋ฐ ๋ ์ฐฝ์ฑ ๋ถ์กฑ +2026-07-22 12:32:17,276 [WARNING] adsense_validator โ ๐ด originality +2026-07-22 12:32:17,287 [INFO] internal_linker โ ๋ด๋ถ ๋งํฌ ํ๋ณด 5๊ฐ ๋ฐ๊ฒฌ +2026-07-22 12:32:17,293 [INFO] internal_linker โ ๋ด๋ถ ๋งํฌ ์ฝ์ ๋์ ํ ์คํธ ์์ (ํค์๋ ๋ฏธ๋ฑ์ฅ) +2026-07-22 12:32:17,293 [INFO] main โ ์ ๋ชฉ: ๋ํต๋ น๋ ์ฃผ๋ชฉํ '๊ฐ๋จ ์ง์ฃผ์ธ ๋์ถ', ๋์๊ฒ ๋ง๋ ๋ฐฉ๋ฒ์ผ๊น? +2026-07-22 12:32:17,293 [INFO] main โ ์ด๋ฏธ์ง: 3๊ฐ ์ฝ์ +2026-07-22 12:32:17,293 [INFO] main โ ๊ธ์ ์: 1428์ +2026-07-22 12:32:17,293 [WARNING] main โ โ ๏ธ ๊ธ์ ์ ๋ฏธ๋ฌ โ pending ์ ์ฅ: '๋ํต๋ น๋ ์ฃผ๋ชฉํ '๊ฐ๋จ ์ง์ฃผ์ธ ๋์ถ', ๋์๊ฒ ๋ง๋ ๋ฐฉ๋ฒ์ผ๊น?' (1428์ < 2500์) +2026-07-22 12:32:17,312 [INFO] dashboard_exporter โ ๊ฒํ ๋๊ธฐ ์ ์ฅ: ๋ํต๋ น๋ ์ฃผ๋ชฉํ '๊ฐ๋จ ์ง์ฃผ์ธ ๋์ถ', ๋์๊ฒ ๋ง๋ ๋ฐฉ๋ฒ์ผ๊น? (7876์ HTML) +2026-07-22 12:32:17,323 [INFO] dashboard_exporter โ ๊ฒํ ๋๊ธฐ ํฌ์คํธ ์ ์ฅ ์๋ฃ: 1๊ฐ ์ถ๊ฐ (์ด 107๊ฐ) +2026-07-22 12:32:17,324 [INFO] main โ +============================================================ +2026-07-22 12:32:17,324 [INFO] main โ [๊ธ์ตNEWS] ์๋ฃ: ์ฑ๊ณต 1๊ฐ / ์คํจ 0๊ฐ +2026-07-22 12:32:17,324 [INFO] main โ ============================================================ +2026-07-22 12:32:17,342 [INFO] dashboard_exporter โ ์คํ ์ด๋ ฅ ์ ์ฅ ์๋ฃ (์ด 100๊ฐ) +2026-07-22 12:32:17,355 [INFO] dashboard_exporter โ ์๋ฆฌ์ฆ: 9๊ฐ ๋ด๋ณด๋ด๊ธฐ ์๋ฃ +2026-07-22 12:32:17,366 [INFO] dashboard_exporter โ SNS ๋ฐ์ดํฐ: 50๊ฐ ๋ด๋ณด๋ด๊ธฐ ์๋ฃ +2026-07-22 12:32:17,583 [WARNING] gsc_fetcher โ GSC ๊ถํ ์์ โ ์ฌ์ดํธ๊ฐ Search Console์ ๋ฑ๋ก๋๋์ง ํ์ธํ์ธ์ +2026-07-22 12:32:17,846 [INFO] gsc_fetcher โ GSC ๋ฐ์ดํฐ ์์ง ์๋ฃ: 0๊ฐ ์ฟผ๋ฆฌ / 0๊ฐ ์นดํ ๊ณ ๋ฆฌ +2026-07-22 12:32:18,093 [INFO] gsc_fetcher โ GSC ๋ฐ์ดํฐ ์์ง ์๋ฃ: 0๊ฐ ์ฟผ๋ฆฌ / 0๊ฐ ์นดํ ๊ณ ๋ฆฌ +2026-07-22 12:32:18,093 [INFO] gsc_fetcher โ GSC ๋์๋ณด๋ ๋ฐ์ดํฐ ์ ์ฅ: /home/runner/work/cli/cli/blog-automation/../docs/data/gsc.json +2026-07-22 12:32:18,095 [INFO] dashboard_exporter โ ์๋ฆฌ ์ด๋ ฅ: 50๊ฑด ๋ด๋ณด๋ด๊ธฐ ์๋ฃ +2026-07-22 12:32:18,107 [INFO] post_manager โ ํฌ์คํธ ๋ ์ง์คํธ๋ฆฌ: ์ ์ฒด 300๊ฐ (๊ฒ์ 179 / ์คํจ 15 / ๋๊ธฐ 80) +2026-07-22 12:32:18,108 [INFO] dashboard_exporter โ ๋์๋ณด๋ ๋ฐ์ดํฐ ๋ด๋ณด๋ด๊ธฐ ์๋ฃ โ /home/runner/work/cli/cli/blog-automation/../docs/data +2026-07-22 12:32:18,108 [INFO] dashboard_exporter โ ํฌ์คํธ: 91๊ฐ / ์คํ ์ด๋ ฅ: 100๊ฐ / ๋ธ๋ก๊ทธ: 3๊ฐ +2026-07-22 12:32:18,108 [INFO] main โ ๋์๋ณด๋ ๋ฐ์ดํฐ ์ ๋ฐ์ดํธ ์๋ฃ +2026-07-22 15:35:45,234 [INFO] main โ ============================================================ +2026-07-22 15:35:45,234 [INFO] main โ [๊ธ์ตNEWS] ๋ธ๋ก๊ทธ ์๋ํ ์์: 2026-07-22 15:35:45 +2026-07-22 15:35:45,234 [INFO] main โ ============================================================ +2026-07-22 15:35:45,243 [INFO] main โ ์์ง๋ ํค์๋ 1๊ฐ: ['์ฝ์คํผ ๋ถ์ฅ ๋๋ถ์ ๊ฐ๊ณ ์์์ฐ ๋ง์'] +2026-07-22 15:35:45,248 [INFO] main โ ์๋ ์๋ฆฌ์ฆ ๋๊ธฐ ์ค (๋ง์ง๋ง ์๋ฆฌ์ฆ 4์ผ ์ , 3์ผ ํ ํ์ฑํ) +2026-07-22 15:35:45,248 [INFO] main โ ๋จ๋ ํฌ์คํธ ๋์ ํค์๋ 1๊ฐ: ['์ฝ์คํผ ๋ถ์ฅ ๋๋ถ์ ๊ฐ๊ณ ์์์ฐ ๋ง์'] +2026-07-22 15:35:45,262 [INFO] main โ +[1/1] ํค์๋: '์ฝ์คํผ ๋ถ์ฅ ๋๋ถ์ ๊ฐ๊ณ ์์์ฐ ๋ง์' +2026-07-22 15:35:45,262 [INFO] content_generator โ ํฌ์คํธ ์์ฑ ์ค: '์ฝ์คํผ ๋ถ์ฅ ๋๋ถ์ ๊ฐ๊ณ ์์์ฐ ๋ง์' +2026-07-22 15:35:45,479 [INFO] httpx โ HTTP Request: POST https://api.anthropic.com/v1/messages "HTTP/1.1 400 Bad Request" +2026-07-22 15:35:45,480 [WARNING] research_collector โ ๊ฒ์ ์๋ ๋ถ์ ์คํจ: Error code: 400 - {'type': 'error', 'error': {'type': 'invalid_request_error', 'message': 'You have reached your specified API usage limits. You will regain access on 2026-08-01 at 00:00 UTC.'}, 'request_id': 'req_011CdHLoq8wFC9gM69a6m5An'} +2026-07-22 15:35:59,585 [INFO] research_collector โ ์๋ฃ ์กฐ์ฌ: 6๊ฐ ์์ง (์ ๋ขฐ ๋๋ฉ์ธ 3๊ฐ) โ '์ฝ์คํผ ๋ถ์ฅ ๋๋ถ์ ๊ฐ๊ณ ์์์ฐ ๋ง์' +2026-07-22 15:35:59,756 [INFO] httpx โ HTTP Request: POST https://api.anthropic.com/v1/messages "HTTP/1.1 400 Bad Request" +2026-07-22 15:35:59,757 [WARNING] evidence_builder โ ์๋ฃํฉ ์์ฑ ์คํจ: Error code: 400 - {'type': 'error', 'error': {'type': 'invalid_request_error', 'message': 'You have reached your specified API usage limits. You will regain access on 2026-08-01 at 00:00 UTC.'}, 'request_id': 'req_011CdHLptHihPLTna5iSunAK'} +2026-07-22 15:35:59,759 [INFO] content_generator โ AI ์ ๊ณต์: CLAUDE (์๋ 1/3) +2026-07-22 15:36:00,048 [INFO] httpx โ HTTP Request: POST https://api.anthropic.com/v1/messages "HTTP/1.1 400 Bad Request" +2026-07-22 15:36:00,613 [WARNING] config โ Claude ์ฌ์ฉ ํ๋ ๋๋ฌ โ OpenAI(gpt-4o)๋ก ์๋ ํด๋ฐฑ +2026-07-22 15:36:15,564 [INFO] httpx โ HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK" +2026-07-22 15:36:15,583 [WARNING] content_generator โ ์ปจํ ์ธ ๋๋ฌด ์งง์(968์, ์ต์ 2500์) โ ์ฌ์๋ 1/3 +2026-07-22 15:36:18,583 [INFO] content_generator โ AI ์ ๊ณต์: CLAUDE (์๋ 2/3) +2026-07-22 15:36:18,583 [WARNING] config โ Claude ์ฌ์ฉ ํ๋ ๋๋ฌ โ OpenAI(gpt-4o)๋ก ์๋ ํด๋ฐฑ +2026-07-22 15:36:35,986 [INFO] httpx โ HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK" +2026-07-22 15:36:35,998 [WARNING] content_generator โ ์ปจํ ์ธ ๋๋ฌด ์งง์(1125์, ์ต์ 2500์) โ ์ฌ์๋ 2/3 +2026-07-22 15:36:38,998 [INFO] content_generator โ AI ์ ๊ณต์: CLAUDE (์๋ 3/3) +2026-07-22 15:36:38,998 [WARNING] config โ Claude ์ฌ์ฉ ํ๋ ๋๋ฌ โ OpenAI(gpt-4o)๋ก ์๋ ํด๋ฐฑ +2026-07-22 15:36:59,699 [INFO] httpx โ HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK" +2026-07-22 15:36:59,707 [WARNING] content_generator โ ์ต์ ๋ถ๋ ๋ฏธ๋ฌ(1140์) โ ์ฌ์๋ ์์ง, ํด๋น ๋ถ๋์ผ๋ก ์งํ +2026-07-22 15:36:59,727 [WARNING] config โ Claude ์ฌ์ฉ ํ๋ ๋๋ฌ โ OpenAI(gpt-4o)๋ก ์๋ ํด๋ฐฑ +2026-07-22 15:37:00,457 [INFO] httpx โ HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK" +2026-07-22 15:37:00,462 [INFO] content_generator โ ํฉํธ์ฒดํฌ: ํต๊ณผ +2026-07-22 15:37:01,743 [INFO] image_fetcher โ ์ด๋ฏธ์ง ์์ง ์ฑ๊ณต: '์ฝ์คํผ ๋ถ์ฅ์ผ๋ก ๊ฐ๊ณ ์์์ฐ ๋ค์ ์ฆ๊ฐ, ๋์๊ฒ ๋ฏธ์น๋ ์ํฅ์?' โ ์ ๋ชฉ='์ฝ์คํผ ๋ถ์ฅ์ '๋นํฌ' ์ฌ์ ์ต๊ณ ์น ๊ทผ์ โฆํ๋ฌ์ 2์กฐ ์ ์ฆ๊ฐ' (๊ด๋ จ์ฑ=0.22) +2026-07-22 15:37:02,638 [INFO] image_fetcher โ ์ด๋ฏธ์ง ์์ง ์ฑ๊ณต: '์ฝ์คํผ ๋ถ์ฅ ๋๋ถ์' โ ์ ๋ชฉ='[์๋2025]์์ฌ๋ ๋ถ์ฅ ์ด์ด์ง ์ฝ์คํผ' (๊ด๋ จ์ฑ=0.67) +2026-07-22 15:37:03,548 [INFO] image_fetcher โ ์ด๋ฏธ์ง ์์ง ์ฑ๊ณต: '์ฝ์คํผ ๋ถ์ฅ ์์น์ด ์ฃผ๋ ์ง์ ์์น์' โ ์ ๋ชฉ='๐ฅ๐๋นํธ์ฝ์ธ ํญ๋ฑ์ ํธ๋ฆฌ๊ฑฐ, ๊ธ๋ก๋ฒ M2์งํ๋ฅผ ๋ฐ๋ผ๊ฐ๋ผ! ์ญ๋๊ธ ๋ถ์ฅ ๋' (๊ด๋ จ์ฑ=0.17) +2026-07-22 15:37:03,713 [INFO] httpx โ HTTP Request: POST https://api.anthropic.com/v1/messages "HTTP/1.1 400 Bad Request" +2026-07-22 15:37:03,713 [INFO] content_generator โ ์ด๋ฏธ์ง 3์ฅ ์์ง ์๋ฃ (์ต์ 1 / ์ต๋ 3) +2026-07-22 15:37:03,715 [INFO] content_generator โ ์ด๋ฏธ์ง 3๊ฐ ๋ณธ๋ฌธ ์ฝ์ ์๋ฃ +2026-07-22 15:37:03,717 [INFO] content_generator โ ํฌ์คํธ ์์ฑ ์๋ฃ: '์ฝ์คํผ ๋ถ์ฅ์ผ๋ก ๊ฐ๊ณ ์์์ฐ ๋ค์ ์ฆ๊ฐ, ๋์๊ฒ ๋ฏธ์น๋ ์ํฅ์?' (1140์, ์ด๋ฏธ์ง 3๊ฐ) +2026-07-22 15:37:03,741 [WARNING] config โ Claude ์ฌ์ฉ ํ๋ ๋๋ฌ โ OpenAI(gpt-4o)๋ก ์๋ ํด๋ฐฑ +2026-07-22 15:37:08,694 [INFO] httpx โ HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK" +2026-07-22 15:37:08,704 [INFO] adsense_validator โ AdSense ๊ฒ์ฆ โ [UPLOAD] ์ ์: 84/100 โ '์ฝ์คํผ ๋ถ์ฅ์ผ๋ก ๊ฐ๊ณ ์์์ฐ ๋ค์ ์ฆ๊ฐ, ๋์๊ฒ ๋ฏธ์น๋ ์ํฅ์?' +2026-07-22 15:37:08,704 [INFO] adsense_validator โ โ ๏ธ ์๋ณธ์ฑ ๋ฐ ํ์ง: ๊ธ์ ์๊ฐ 1140์๋ก ๊ธฐ์ค ๋ฏธ๋ฌ์ด๋ฉฐ ๋ ์ฐฝ์ ๊ด์ ๊ณผ ์ฌ๋ก๊ฐ ์ถฉ๋ถํ ๋๋ฌ๋์ง ์์ +2026-07-22 15:37:08,704 [INFO] adsense_validator โ โ ๏ธ E-E-A-T ์ ๋ขฐ๋: ์ง์ ๊ฒฝํ ๊ธฐ๋ฐ ๋ด์ฉ ๋ฐ 1์ธ์นญ ์์ ๋ฏธํก, ์ถ์ฒ๋ ์์ผ๋ ๊น์ด ์๋ ์ ๋ขฐ๋ ๋ถ์กฑ +2026-07-22 15:37:08,704 [INFO] adsense_validator โ โ ๏ธ ์ด๋ฏธ์ง ์ ์ฑ : ์ด๋ฏธ์ง๊ฐ ์์ผ๋ ์ ์๊ถ ๋ฌธ์ ๋ ์์ฌ๋์ง ์๋ ๊ฒ์ผ๋ก ๋ณด์ +2026-07-22 15:37:08,712 [INFO] internal_linker โ ๋ด๋ถ ๋งํฌ ํ๋ณด 5๊ฐ ๋ฐ๊ฒฌ +2026-07-22 15:37:08,714 [INFO] internal_linker โ [1/5] 'ETF' -> https://www.hoguwhat.com/2026/07/30-etf.html +2026-07-22 15:37:08,717 [INFO] internal_linker โ ๋ด๋ถ ๋งํฌ 1๊ฐ ์ฝ์ ์๋ฃ +2026-07-22 15:37:08,717 [INFO] main โ ์ ๋ชฉ: ์ฝ์คํผ ๋ถ์ฅ์ผ๋ก ๊ฐ๊ณ ์์์ฐ ๋ค์ ์ฆ๊ฐ, ๋์๊ฒ ๋ฏธ์น๋ ์ํฅ์? +2026-07-22 15:37:08,717 [INFO] main โ ์ด๋ฏธ์ง: 3๊ฐ ์ฝ์ +2026-07-22 15:37:08,717 [INFO] main โ ๊ธ์ ์: 1140์ +2026-07-22 15:37:08,717 [WARNING] main โ โ ๏ธ ๊ธ์ ์ ๋ฏธ๋ฌ โ pending ์ ์ฅ: '์ฝ์คํผ ๋ถ์ฅ์ผ๋ก ๊ฐ๊ณ ์์์ฐ ๋ค์ ์ฆ๊ฐ, ๋์๊ฒ ๋ฏธ์น๋ ์ํฅ์?' (1140์ < 2500์) +2026-07-22 15:37:08,743 [INFO] dashboard_exporter โ ๊ฒํ ๋๊ธฐ ์ ์ฅ: ์ฝ์คํผ ๋ถ์ฅ์ผ๋ก ๊ฐ๊ณ ์์์ฐ ๋ค์ ์ฆ๊ฐ, ๋์๊ฒ ๋ฏธ์น๋ ์ํฅ์? (5887์ HTML) +2026-07-22 15:37:08,757 [INFO] dashboard_exporter โ ๊ฒํ ๋๊ธฐ ํฌ์คํธ ์ ์ฅ ์๋ฃ: 1๊ฐ ์ถ๊ฐ (์ด 108๊ฐ) +2026-07-22 15:37:08,757 [INFO] main โ +============================================================ +2026-07-22 15:37:08,758 [INFO] main โ [๊ธ์ตNEWS] ์๋ฃ: ์ฑ๊ณต 1๊ฐ / ์คํจ 0๊ฐ +2026-07-22 15:37:08,758 [INFO] main โ ============================================================ +2026-07-22 15:37:08,782 [INFO] dashboard_exporter โ ์คํ ์ด๋ ฅ ์ ์ฅ ์๋ฃ (์ด 100๊ฐ) +2026-07-22 15:37:08,801 [INFO] dashboard_exporter โ ์๋ฆฌ์ฆ: 9๊ฐ ๋ด๋ณด๋ด๊ธฐ ์๋ฃ +2026-07-22 15:37:08,815 [INFO] dashboard_exporter โ SNS ๋ฐ์ดํฐ: 50๊ฐ ๋ด๋ณด๋ด๊ธฐ ์๋ฃ +2026-07-22 15:37:09,093 [WARNING] gsc_fetcher โ GSC ๊ถํ ์์ โ ์ฌ์ดํธ๊ฐ Search Console์ ๋ฑ๋ก๋๋์ง ํ์ธํ์ธ์ +2026-07-22 15:37:09,357 [INFO] gsc_fetcher โ GSC ๋ฐ์ดํฐ ์์ง ์๋ฃ: 0๊ฐ ์ฟผ๋ฆฌ / 0๊ฐ ์นดํ ๊ณ ๋ฆฌ +2026-07-22 15:37:09,714 [INFO] gsc_fetcher โ GSC ๋ฐ์ดํฐ ์์ง ์๋ฃ: 0๊ฐ ์ฟผ๋ฆฌ / 0๊ฐ ์นดํ ๊ณ ๋ฆฌ +2026-07-22 15:37:09,716 [INFO] gsc_fetcher โ GSC ๋์๋ณด๋ ๋ฐ์ดํฐ ์ ์ฅ: /home/runner/work/cli/cli/blog-automation/../docs/data/gsc.json +2026-07-22 15:37:09,718 [INFO] dashboard_exporter โ ์๋ฆฌ ์ด๋ ฅ: 50๊ฑด ๋ด๋ณด๋ด๊ธฐ ์๋ฃ +2026-07-22 15:37:09,734 [INFO] post_manager โ ํฌ์คํธ ๋ ์ง์คํธ๋ฆฌ: ์ ์ฒด 300๊ฐ (๊ฒ์ 179 / ์คํจ 15 / ๋๊ธฐ 80) +2026-07-22 15:37:09,734 [INFO] dashboard_exporter โ ๋์๋ณด๋ ๋ฐ์ดํฐ ๋ด๋ณด๋ด๊ธฐ ์๋ฃ โ /home/runner/work/cli/cli/blog-automation/../docs/data +2026-07-22 15:37:09,734 [INFO] dashboard_exporter โ ํฌ์คํธ: 91๊ฐ / ์คํ ์ด๋ ฅ: 100๊ฐ / ๋ธ๋ก๊ทธ: 3๊ฐ +2026-07-22 15:37:09,735 [INFO] main โ ๋์๋ณด๋ ๋ฐ์ดํฐ ์ ๋ฐ์ดํธ ์๋ฃ +2026-07-22 15:38:11,379 [INFO] main โ ============================================================ +2026-07-22 15:38:11,379 [INFO] main โ [HOGU What?] ๋ธ๋ก๊ทธ ์๋ํ ์์: 2026-07-22 15:38:11 +2026-07-22 15:38:11,379 [INFO] main โ ============================================================ +2026-07-22 15:38:11,388 [INFO] main โ ์์ง๋ ํค์๋ 1๊ฐ: ['ํด๋8'] +2026-07-22 15:38:11,393 [INFO] main โ ์๋ ์๋ฆฌ์ฆ ๋๊ธฐ ์ค (๋ง์ง๋ง ์๋ฆฌ์ฆ 3์ผ ์ , 4์ผ ํ ํ์ฑํ) +2026-07-22 15:38:11,393 [INFO] main โ ๋จ๋ ํฌ์คํธ ๋์ ํค์๋ 1๊ฐ: ['ํด๋8'] +2026-07-22 15:38:11,406 [INFO] main โ +[1/1] ํค์๋: 'ํด๋8' +2026-07-22 15:38:11,406 [INFO] content_generator โ ํฌ์คํธ ์์ฑ ์ค: 'ํด๋8' +2026-07-22 15:38:11,718 [INFO] httpx โ HTTP Request: POST https://api.anthropic.com/v1/messages "HTTP/1.1 400 Bad Request" +2026-07-22 15:38:11,719 [WARNING] research_collector โ ๊ฒ์ ์๋ ๋ถ์ ์คํจ: Error code: 400 - {'type': 'error', 'error': {'type': 'invalid_request_error', 'message': 'You have reached your specified API usage limits. You will regain access on 2026-08-01 at 00:00 UTC.'}, 'request_id': 'req_011CdHLzcBshh9WQbVQUdWQV'} +2026-07-22 15:38:17,393 [INFO] research_collector โ ์๋ฃ ์กฐ์ฌ: 8๊ฐ ์์ง (์ ๋ขฐ ๋๋ฉ์ธ 2๊ฐ) โ 'ํด๋8' +2026-07-22 15:38:17,581 [INFO] httpx โ HTTP Request: POST https://api.anthropic.com/v1/messages "HTTP/1.1 400 Bad Request" +2026-07-22 15:38:17,581 [WARNING] evidence_builder โ ์๋ฃํฉ ์์ฑ ์คํจ: Error code: 400 - {'type': 'error', 'error': {'type': 'invalid_request_error', 'message': 'You have reached your specified API usage limits. You will regain access on 2026-08-01 at 00:00 UTC.'}, 'request_id': 'req_011CdHM13WdY5LXSgeRiJPya'} +2026-07-22 15:38:17,583 [INFO] content_generator โ AI ์ ๊ณต์: CLAUDE (์๋ 1/3) +2026-07-22 15:38:17,784 [INFO] httpx โ HTTP Request: POST https://api.anthropic.com/v1/messages "HTTP/1.1 400 Bad Request" +2026-07-22 15:38:18,234 [WARNING] config โ Claude ์ฌ์ฉ ํ๋ ๋๋ฌ โ OpenAI(gpt-4o)๋ก ์๋ ํด๋ฐฑ +2026-07-22 15:38:43,016 [INFO] httpx โ HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK" +2026-07-22 15:38:43,028 [WARNING] content_generator โ ์ปจํ ์ธ ๋๋ฌด ์งง์(2215์, ์ต์ 2500์) โ ์ฌ์๋ 1/3 +2026-07-22 15:38:46,028 [INFO] content_generator โ AI ์ ๊ณต์: CLAUDE (์๋ 2/3) +2026-07-22 15:38:46,029 [WARNING] config โ Claude ์ฌ์ฉ ํ๋ ๋๋ฌ โ OpenAI(gpt-4o)๋ก ์๋ ํด๋ฐฑ +2026-07-22 15:39:06,018 [INFO] httpx โ HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK" +2026-07-22 15:39:06,021 [WARNING] content_generator โ ์ปจํ ์ธ ๋๋ฌด ์งง์(2145์, ์ต์ 2500์) โ ์ฌ์๋ 2/3 +2026-07-22 15:39:09,021 [INFO] content_generator โ AI ์ ๊ณต์: CLAUDE (์๋ 3/3) +2026-07-22 15:39:09,022 [WARNING] config โ Claude ์ฌ์ฉ ํ๋ ๋๋ฌ โ OpenAI(gpt-4o)๋ก ์๋ ํด๋ฐฑ +2026-07-22 15:39:10,239 [INFO] httpx โ HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK" +2026-07-22 15:39:10,246 [ERROR] content_generator โ JSON ๊ตฌ์กฐ ์์ โ ์๋ต ์ 200์: ์ฃ์กํฉ๋๋ค, ์์ฒญํ์ ์์ ์ ์ํํ ์ ์์ต๋๋ค. +2026-07-22 15:39:10,246 [WARNING] main โ ์ฝํ ์ธ ์์ฑ ์คํจ (์๋ 1/2) +2026-07-22 15:39:13,246 [INFO] content_generator โ ํฌ์คํธ ์์ฑ ์ค: 'ํด๋8' +2026-07-22 15:39:13,448 [INFO] httpx โ HTTP Request: POST https://api.anthropic.com/v1/messages "HTTP/1.1 400 Bad Request" +2026-07-22 15:39:13,449 [WARNING] research_collector โ ๊ฒ์ ์๋ ๋ถ์ ์คํจ: Error code: 400 - {'type': 'error', 'error': {'type': 'invalid_request_error', 'message': 'You have reached your specified API usage limits. You will regain access on 2026-08-01 at 00:00 UTC.'}, 'request_id': 'req_011CdHM5APV3Qhkpjf79mLKC'} +2026-07-22 15:39:18,324 [INFO] research_collector โ ์๋ฃ ์กฐ์ฌ: 8๊ฐ ์์ง (์ ๋ขฐ ๋๋ฉ์ธ 2๊ฐ) โ 'ํด๋8' +2026-07-22 15:39:18,689 [INFO] httpx โ HTTP Request: POST https://api.anthropic.com/v1/messages "HTTP/1.1 400 Bad Request" +2026-07-22 15:39:18,690 [WARNING] evidence_builder โ ์๋ฃํฉ ์์ฑ ์คํจ: Error code: 400 - {'type': 'error', 'error': {'type': 'invalid_request_error', 'message': 'You have reached your specified API usage limits. You will regain access on 2026-08-01 at 00:00 UTC.'}, 'request_id': 'req_011CdHM5YmtJFZRZyCc3onSL'} +2026-07-22 15:39:18,690 [INFO] content_generator โ AI ์ ๊ณต์: CLAUDE (์๋ 1/3) +2026-07-22 15:39:18,690 [WARNING] config โ Claude ์ฌ์ฉ ํ๋ ๋๋ฌ โ OpenAI(gpt-4o)๋ก ์๋ ํด๋ฐฑ +2026-07-22 15:39:32,689 [INFO] httpx โ HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK" +2026-07-22 15:39:32,693 [WARNING] content_generator โ ์ปจํ ์ธ ๋๋ฌด ์งง์(1390์, ์ต์ 2500์) โ ์ฌ์๋ 1/3 +2026-07-22 15:39:35,693 [INFO] content_generator โ AI ์ ๊ณต์: CLAUDE (์๋ 2/3) +2026-07-22 15:39:35,694 [WARNING] config โ Claude ์ฌ์ฉ ํ๋ ๋๋ฌ โ OpenAI(gpt-4o)๋ก ์๋ ํด๋ฐฑ +2026-07-22 15:39:45,038 [INFO] httpx โ HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK" +2026-07-22 15:39:45,059 [WARNING] content_generator โ ์ปจํ ์ธ ๋๋ฌด ์งง์(1702์, ์ต์ 2500์) โ ์ฌ์๋ 2/3 +2026-07-22 15:39:48,060 [INFO] content_generator โ AI ์ ๊ณต์: CLAUDE (์๋ 3/3) +2026-07-22 15:39:48,060 [WARNING] config โ Claude ์ฌ์ฉ ํ๋ ๋๋ฌ โ OpenAI(gpt-4o)๋ก ์๋ ํด๋ฐฑ +2026-07-22 15:40:09,202 [INFO] httpx โ HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK" +2026-07-22 15:40:09,205 [WARNING] content_generator โ ์ต์ ๋ถ๋ ๋ฏธ๋ฌ(2031์) โ ์ฌ์๋ ์์ง, ํด๋น ๋ถ๋์ผ๋ก ์งํ +2026-07-22 15:40:09,206 [INFO] content_generator โ ์ถ์ฒ ๊ฒ์ฆ: 0๊ฐ ์ ํจ / 2๊ฐ ์ ๊ฑฐ +2026-07-22 15:40:09,206 [WARNING] content_generator โ sources ํ๋: ์ ํจํ ์ถ์ฒ ์์ โ ์ ๋ถ ์ ๊ฑฐ๋จ +2026-07-22 15:40:09,224 [WARNING] config โ Claude ์ฌ์ฉ ํ๋ ๋๋ฌ โ OpenAI(gpt-4o)๋ก ์๋ ํด๋ฐฑ +2026-07-22 15:40:11,993 [INFO] httpx โ HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK" +2026-07-22 15:40:12,012 [INFO] content_generator โ ํฉํธ์ฒดํฌ: ์ด์ 3๊ฑด ๋ฐ๊ฒฌ, 3๊ฑด ์๋ ์์ ์ ์ฉ +2026-07-22 15:40:12,343 [INFO] image_fetcher โ ์ด๋ฏธ์ง ์์ง ์ฑ๊ณต: 'ํด๋8, ์ค๋งํธํฐ ์์ฅ์ ์๋ก์ด ์งํ๊ฐ ๋๋ค' โ ์ ๋ชฉ='iphone / hand / screen / smartphone / ap' (๊ด๋ จ์ฑ=0.14) +2026-07-22 15:40:13,055 [INFO] image_fetcher โ ์ด๋ฏธ์ง ์์ง ์ฑ๊ณต: 'ํด๋' โ ์ ๋ชฉ='์ผ์ธ ์ฌ์ํ ๋ณด์ ์ก์ ๋ณดํธ ํ๋ฆ ๊ฐค๋ญ์Z ํด๋5 ์ธ๋ถ (๊ฐํ์ ๋ฆฌ), 1' (๊ด๋ จ์ฑ=1.00) +2026-07-22 15:40:14,800 [INFO] image_fetcher โ ์ด๋ฏธ์ง ์์ง ์ฑ๊ณต: 'ํด๋ ์๋ฏธ์ ์ค๋งํธํฐ ์ต๊ทผ' โ ์ ๋ชฉ='์๋ฏธ์ ๋ฌด์๋ฏธ | ๋ฉ๋ฅผ๋ก ๋ฝ๋ - ๊ต๋ณด๋ฌธ๊ณ ' (๊ด๋ จ์ฑ=0.20) +2026-07-22 15:40:15,028 [INFO] httpx โ HTTP Request: POST https://api.anthropic.com/v1/messages "HTTP/1.1 400 Bad Request" +2026-07-22 15:40:15,029 [INFO] content_generator โ ์ด๋ฏธ์ง 3์ฅ ์์ง ์๋ฃ (์ต์ 1 / ์ต๋ 3) +2026-07-22 15:40:15,030 [INFO] content_generator โ ์ด๋ฏธ์ง 3๊ฐ ๋ณธ๋ฌธ ์ฝ์ ์๋ฃ +2026-07-22 15:40:15,032 [INFO] content_generator โ ํฌ์คํธ ์์ฑ ์๋ฃ: 'ํด๋8, ์ค๋งํธํฐ ์์ฅ์ ์๋ก์ด ์งํ๊ฐ ๋๋ค' (2031์, ์ด๋ฏธ์ง 3๊ฐ) +2026-07-22 15:40:15,057 [WARNING] config โ Claude ์ฌ์ฉ ํ๋ ๋๋ฌ โ OpenAI(gpt-4o)๋ก ์๋ ํด๋ฐฑ +2026-07-22 15:40:17,557 [INFO] httpx โ HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK" +2026-07-22 15:40:17,560 [INFO] adsense_validator โ AdSense ๊ฒ์ฆ โ [UPLOAD] ์ ์: 84/100 โ 'ํด๋8, ์ค๋งํธํฐ ์์ฅ์ ์๋ก์ด ์งํ๊ฐ ๋๋ค' +2026-07-22 15:40:17,560 [INFO] adsense_validator โ โ ๏ธ ์๋ณธ์ฑ ๋ฐ ํ์ง: ๊ธ์ ์๊ฐ 2031์๋ก, ๋ ์ฐฝ์ ๊ด์ ๋ถ์กฑ +2026-07-22 15:40:17,560 [INFO] adsense_validator โ โ ๏ธ E-E-A-T ์ ๋ขฐ๋: ์ถ์ฒ ๋ฐ ์ง์ ๊ฒฝํ ๊ธฐ๋ฐ ๋ด์ฉ ๋ถ์กฑ +2026-07-22 15:40:17,560 [INFO] adsense_validator โ โ ๏ธ ์ด๋ฏธ์ง ์ ์ฑ : ์ด๋ฏธ์ง ๋ถ์ฌ +2026-07-22 15:40:17,569 [INFO] internal_linker โ ๋ด๋ถ ๋งํฌ ํ๋ณด 5๊ฐ ๋ฐ๊ฒฌ +2026-07-22 15:40:17,573 [INFO] internal_linker โ [1/5] '์ค์ ๋ก' -> https://www.hoguwhat.com/2026/07/blog-post_15.html +2026-07-22 15:40:17,575 [INFO] internal_linker โ [2/5] '๋ง์กฑ๋' -> https://hogugolfntraval.blogspot.com/2026/07/2025.html +2026-07-22 15:40:17,575 [INFO] internal_linker โ ๋ด๋ถ ๋งํฌ 2๊ฐ ์ฝ์ ์๋ฃ +2026-07-22 15:40:17,575 [INFO] main โ ์ ๋ชฉ: ํด๋8, ์ค๋งํธํฐ ์์ฅ์ ์๋ก์ด ์งํ๊ฐ ๋๋ค +2026-07-22 15:40:17,575 [INFO] main โ ์ด๋ฏธ์ง: 3๊ฐ ์ฝ์ +2026-07-22 15:40:17,575 [INFO] main โ ๊ธ์ ์: 2031์ +2026-07-22 15:40:17,575 [WARNING] main โ โ ๏ธ ๊ธ์ ์ ๋ฏธ๋ฌ โ pending ์ ์ฅ: 'ํด๋8, ์ค๋งํธํฐ ์์ฅ์ ์๋ก์ด ์งํ๊ฐ ๋๋ค' (2031์ < 2500์) +2026-07-22 15:40:17,600 [INFO] dashboard_exporter โ ๊ฒํ ๋๊ธฐ ์ ์ฅ: ํด๋8, ์ค๋งํธํฐ ์์ฅ์ ์๋ก์ด ์งํ๊ฐ ๋๋ค (8289์ HTML) +2026-07-22 15:40:17,613 [INFO] dashboard_exporter โ ๊ฒํ ๋๊ธฐ ํฌ์คํธ ์ ์ฅ ์๋ฃ: 1๊ฐ ์ถ๊ฐ (์ด 109๊ฐ) +2026-07-22 15:40:17,614 [INFO] main โ +============================================================ +2026-07-22 15:40:17,614 [INFO] main โ [HOGU What?] ์๋ฃ: ์ฑ๊ณต 1๊ฐ / ์คํจ 0๊ฐ +2026-07-22 15:40:17,614 [INFO] main โ ============================================================ +2026-07-22 15:40:17,636 [INFO] dashboard_exporter โ ์คํ ์ด๋ ฅ ์ ์ฅ ์๋ฃ (์ด 100๊ฐ) +2026-07-22 15:40:17,652 [INFO] dashboard_exporter โ ์๋ฆฌ์ฆ: 9๊ฐ ๋ด๋ณด๋ด๊ธฐ ์๋ฃ +2026-07-22 15:40:17,665 [INFO] dashboard_exporter โ SNS ๋ฐ์ดํฐ: 50๊ฐ ๋ด๋ณด๋ด๊ธฐ ์๋ฃ +2026-07-22 15:40:17,903 [WARNING] gsc_fetcher โ GSC ๊ถํ ์์ โ ์ฌ์ดํธ๊ฐ Search Console์ ๋ฑ๋ก๋๋์ง ํ์ธํ์ธ์ +2026-07-22 15:40:18,163 [INFO] gsc_fetcher โ GSC ๋ฐ์ดํฐ ์์ง ์๋ฃ: 0๊ฐ ์ฟผ๋ฆฌ / 0๊ฐ ์นดํ ๊ณ ๋ฆฌ +2026-07-22 15:40:18,446 [INFO] gsc_fetcher โ GSC ๋ฐ์ดํฐ ์์ง ์๋ฃ: 0๊ฐ ์ฟผ๋ฆฌ / 0๊ฐ ์นดํ ๊ณ ๋ฆฌ +2026-07-22 15:40:18,447 [INFO] gsc_fetcher โ GSC ๋์๋ณด๋ ๋ฐ์ดํฐ ์ ์ฅ: /home/runner/work/cli/cli/blog-automation/../docs/data/gsc.json +2026-07-22 15:40:18,450 [INFO] dashboard_exporter โ ์๋ฆฌ ์ด๋ ฅ: 50๊ฑด ๋ด๋ณด๋ด๊ธฐ ์๋ฃ +2026-07-22 15:40:18,464 [INFO] post_manager โ ํฌ์คํธ ๋ ์ง์คํธ๋ฆฌ: ์ ์ฒด 300๊ฐ (๊ฒ์ 178 / ์คํจ 15 / ๋๊ธฐ 81) +2026-07-22 15:40:18,464 [INFO] dashboard_exporter โ ๋์๋ณด๋ ๋ฐ์ดํฐ ๋ด๋ณด๋ด๊ธฐ ์๋ฃ โ /home/runner/work/cli/cli/blog-automation/../docs/data +2026-07-22 15:40:18,464 [INFO] dashboard_exporter โ ํฌ์คํธ: 92๊ฐ / ์คํ ์ด๋ ฅ: 100๊ฐ / ๋ธ๋ก๊ทธ: 3๊ฐ +2026-07-22 15:40:18,465 [INFO] main โ ๋์๋ณด๋ ๋ฐ์ดํฐ ์ ๋ฐ์ดํธ ์๋ฃ +2026-07-22 23:10:46,498 [INFO] main โ ============================================================ +2026-07-22 23:10:46,498 [INFO] main โ [HOGU What?] ๋ธ๋ก๊ทธ ์๋ํ ์์: 2026-07-22 23:10:46 +2026-07-22 23:10:46,498 [INFO] main โ ============================================================ +2026-07-22 23:10:46,508 [INFO] keyword_collector โ ํ ๋ธ๋ก๊ทธ ์ต๊ทผ ํค์๋ 12๊ฐ ์ค๋ณต ๋ฐฉ์ง ์ฝํผ์ค ํฉ๋ฅ +2026-07-22 23:10:46,508 [INFO] keyword_collector โ ํฌ์คํ ์ด๋ ฅ ์ฝํผ์ค: 42๊ฐ ํญ๋ชฉ ๋ก๋ (blog_id=blog1 ์ค๋ณต ๋ฐฉ์ง ๊ธฐ์ค) +2026-07-22 23:10:50,262 [INFO] keyword_collector โ Naver ์ค์๊ฐ ๋ด์ค ํค๋๋ผ์ธ ์์ง: 40๊ฐ +2026-07-22 23:10:50,515 [INFO] httpx โ HTTP Request: POST https://api.anthropic.com/v1/messages "HTTP/1.1 400 Bad Request" +2026-07-22 23:10:50,516 [INFO] keyword_collector โ ๋ค์ด๋ฒ ์ค์๊ฐ ๋ด์ค ํค์๋: 0๊ฐ +2026-07-22 23:10:51,073 [INFO] keyword_collector โ ๊ณ CPC ํค์๋ 1๊ฐ ์ฃผ์ (blog_id=blog1): ['ํด์ธ์ฌํ ์ค๋น๋ณดํ ํ์ํ์ง ์ง์ ๋น๊ตํด๋ดค๋๋'] +2026-07-22 23:10:51,185 [INFO] httpx โ HTTP Request: POST https://api.anthropic.com/v1/messages "HTTP/1.1 400 Bad Request" +2026-07-22 23:10:51,719 [WARNING] gsc_fetcher โ GSC ๊ถํ ์์ โ ์ฌ์ดํธ๊ฐ Search Console์ ๋ฑ๋ก๋๋์ง ํ์ธํ์ธ์ +2026-07-22 23:10:52,254 [WARNING] gsc_fetcher โ GSC ๊ถํ ์์ โ ์ฌ์ดํธ๊ฐ Search Console์ ๋ฑ๋ก๋๋์ง ํ์ธํ์ธ์ +2026-07-22 23:10:52,256 [INFO] keyword_collector โ ์ต๊ทผ ์ฌ์ฉ ์ ์ธ 1๊ฐ: ['ํด์ธ์ฌํ ์ค๋น๋ณดํ ํ์ํ์ง ์ง์ ๋น๊ตํด๋ดค๋๋'] +2026-07-22 23:10:52,258 [INFO] keyword_collector โ [fallback] 2๊ฐ: ['์ถ์ฒ ๋ญ๊ฐ๋น ๊ณจ๋ชฉ ์ง์ง ๋ง์ง๊ณผ ํผํด์ผ ํ ๊ณณ', '๋ด์ ๋ฉํ์ธ์ฟผ์ด์๊ธธ ๊ณ์ ๋ณ ๋ค๋ฅธ ๋งค๋ ฅ ์ง์ ๋ฐฉ๋ฌธ ํ๊ธฐ'] +2026-07-22 23:10:52,258 [INFO] keyword_collector โ ์ต์ข ์ ์ ํค์๋ 2๊ฐ: ['์ถ์ฒ ๋ญ๊ฐ๋น ๊ณจ๋ชฉ ์ง์ง ๋ง์ง๊ณผ ํผํด์ผ ํ ๊ณณ', '๋ด์ ๋ฉํ์ธ์ฟผ์ด์๊ธธ ๊ณ์ ๋ณ ๋ค๋ฅธ ๋งค๋ ฅ ์ง์ ๋ฐฉ๋ฌธ ํ๊ธฐ'] +2026-07-22 23:10:52,258 [INFO] main โ ์์ง๋ ํค์๋ 2๊ฐ: ['์ถ์ฒ ๋ญ๊ฐ๋น ๊ณจ๋ชฉ ์ง์ง ๋ง์ง๊ณผ ํผํด์ผ ํ ๊ณณ', '๋ด์ ๋ฉํ์ธ์ฟผ์ด์๊ธธ ๊ณ์ ๋ณ ๋ค๋ฅธ ๋งค๋ ฅ ์ง์ ๋ฐฉ๋ฌธ ํ๊ธฐ'] +2026-07-22 23:10:52,263 [INFO] main โ ์๋ ์๋ฆฌ์ฆ ๋๊ธฐ ์ค (๋ง์ง๋ง ์๋ฆฌ์ฆ 3์ผ ์ , 4์ผ ํ ํ์ฑํ) +2026-07-22 23:10:52,263 [INFO] main โ ๋จ๋ ํฌ์คํธ ๋์ ํค์๋ 1๊ฐ: ['์ถ์ฒ ๋ญ๊ฐ๋น ๊ณจ๋ชฉ ์ง์ง ๋ง์ง๊ณผ ํผํด์ผ ํ ๊ณณ'] +2026-07-22 23:10:52,278 [INFO] main โ +[1/1] ํค์๋: '์ถ์ฒ ๋ญ๊ฐ๋น ๊ณจ๋ชฉ ์ง์ง ๋ง์ง๊ณผ ํผํด์ผ ํ ๊ณณ' +2026-07-22 23:10:52,278 [INFO] content_generator โ ํฌ์คํธ ์์ฑ ์ค: '์ถ์ฒ ๋ญ๊ฐ๋น ๊ณจ๋ชฉ ์ง์ง ๋ง์ง๊ณผ ํผํด์ผ ํ ๊ณณ' +2026-07-22 23:10:52,394 [INFO] httpx โ HTTP Request: POST https://api.anthropic.com/v1/messages "HTTP/1.1 400 Bad Request" +2026-07-22 23:10:52,395 [WARNING] research_collector โ ๊ฒ์ ์๋ ๋ถ์ ์คํจ: Error code: 400 - {'type': 'error', 'error': {'type': 'invalid_request_error', 'message': 'You have reached your specified API usage limits. You will regain access on 2026-08-01 at 00:00 UTC.'}, 'request_id': 'req_011CdHwWk6BKZLAGY5jCodJP'} +2026-07-22 23:10:56,582 [INFO] research_collector โ ์๋ฃ ์กฐ์ฌ: 5๊ฐ ์์ง (์ ๋ขฐ ๋๋ฉ์ธ 0๊ฐ) โ '์ถ์ฒ ๋ญ๊ฐ๋น ๊ณจ๋ชฉ ์ง์ง ๋ง์ง๊ณผ ํผํด์ผ ํ ๊ณณ' +2026-07-22 23:10:56,705 [INFO] httpx โ HTTP Request: POST https://api.anthropic.com/v1/messages "HTTP/1.1 400 Bad Request" +2026-07-22 23:10:56,705 [WARNING] evidence_builder โ ์๋ฃํฉ ์์ฑ ์คํจ: Error code: 400 - {'type': 'error', 'error': {'type': 'invalid_request_error', 'message': 'You have reached your specified API usage limits. You will regain access on 2026-08-01 at 00:00 UTC.'}, 'request_id': 'req_011CdHwX4XCZMjFKSq5MaGQT'} +2026-07-22 23:10:56,707 [INFO] content_generator โ AI ์ ๊ณต์: CLAUDE (์๋ 1/3) +2026-07-22 23:10:56,821 [INFO] httpx โ HTTP Request: POST https://api.anthropic.com/v1/messages "HTTP/1.1 400 Bad Request" +2026-07-22 23:10:57,289 [WARNING] config โ Claude ์ฌ์ฉ ํ๋ ๋๋ฌ โ OpenAI(gpt-4o)๋ก ์๋ ํด๋ฐฑ +2026-07-22 23:11:11,919 [INFO] httpx โ HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK" +2026-07-22 23:11:11,934 [WARNING] content_generator โ ์ปจํ ์ธ ๋๋ฌด ์งง์(1222์, ์ต์ 2500์) โ ์ฌ์๋ 1/3 +2026-07-22 23:11:14,935 [INFO] content_generator โ AI ์ ๊ณต์: CLAUDE (์๋ 2/3) +2026-07-22 23:11:14,935 [WARNING] config โ Claude ์ฌ์ฉ ํ๋ ๋๋ฌ โ OpenAI(gpt-4o)๋ก ์๋ ํด๋ฐฑ +2026-07-22 23:11:32,327 [INFO] httpx โ HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK" +2026-07-22 23:11:32,352 [WARNING] content_generator โ ์ปจํ ์ธ ๋๋ฌด ์งง์(1671์, ์ต์ 2500์) โ ์ฌ์๋ 2/3 +2026-07-22 23:11:35,352 [INFO] content_generator โ AI ์ ๊ณต์: CLAUDE (์๋ 3/3) +2026-07-22 23:11:35,353 [WARNING] config โ Claude ์ฌ์ฉ ํ๋ ๋๋ฌ โ OpenAI(gpt-4o)๋ก ์๋ ํด๋ฐฑ +2026-07-22 23:11:49,829 [INFO] httpx โ HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK" +2026-07-22 23:11:49,834 [WARNING] content_generator โ ์ต์ ๋ถ๋ ๋ฏธ๋ฌ(1634์) โ ์ฌ์๋ ์์ง, ํด๋น ๋ถ๋์ผ๋ก ์งํ +2026-07-22 23:11:49,852 [WARNING] config โ Claude ์ฌ์ฉ ํ๋ ๋๋ฌ โ OpenAI(gpt-4o)๋ก ์๋ ํด๋ฐฑ +2026-07-22 23:11:51,426 [INFO] httpx โ HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK" +2026-07-22 23:11:51,437 [INFO] content_generator โ ํฉํธ์ฒดํฌ: ์ด์ 2๊ฑด ๋ฐ๊ฒฌ, 2๊ฑด ์๋ ์์ ์ ์ฉ +2026-07-22 23:11:52,446 [INFO] image_fetcher โ ์ด๋ฏธ์ง ์์ง ์ฑ๊ณต: '์ถ์ฒ ๋ญ๊ฐ๋น ๊ณจ๋ชฉ ์ง์ง ๋ง์ง๊ณผ ํผํด์ผ ํ ๊ณณ' โ ์ ๋ชฉ='์ถ์ฒ ๋ช ๋ฌผ '๋ญ๊ฐ๋น ๊ณจ๋ชฉ'โฆAI์ ์ฐฌ๋ฐ๋๋ง '์ฉโผ'' (๊ด๋ จ์ฑ=0.50) +2026-07-22 23:11:53,286 [INFO] image_fetcher โ ์ด๋ฏธ์ง ์์ง ์ฑ๊ณต: '์ถ์ฒ ๋ญ๊ฐ๋น ๊ณจ๋ชฉ' โ ์ ๋ชฉ='[SN์ฌํ] ์ถ์ฒ์ ๋ฌธํ์ ๋ง, '์์๋ง๋น ์ถ์ฒ'๊ณผ '๋ญ๊ฐ๋น ๊ณจ๋ชฉ' [๊ฐ' (๊ด๋ จ์ฑ=1.00) +2026-07-22 23:11:54,779 [INFO] image_fetcher โ ๋์ฒด ์ด๋ฏธ์ง ์์ง: '์ถ์ฒ ๋ญ๊ฐ๋น ๊ณจ๋ชฉ ์ฐพ์์ผ ๊ณจ๋ชฉ์ ๋ช ์ฑ์' โ ์ ๋ชฉ='๊ตญ๋ด์ฐ ๋ญ๋ค๋ฆฌ์ด ํ์์ด ์ถ์ฒ ๋ญ๊ฐ๋น 500g 1ํฉ+1ํฉ (๋๋) : ์ถ์ฒ' (๊ด๋ จ์ฑ=0.33) +2026-07-22 23:11:54,779 [INFO] image_fetcher โ ์ด๋ฏธ์ง ์์ง ์ฑ๊ณต: '์ถ์ฒ ๋ญ๊ฐ๋น ๊ณจ๋ชฉ ์ฐพ์์ผ ๊ณจ๋ชฉ์ ๋ช ์ฑ์' โ ์ ๋ชฉ='๊ตญ๋ด์ฐ ๋ญ๋ค๋ฆฌ์ด ํ์์ด ์ถ์ฒ ๋ญ๊ฐ๋น 500g 1ํฉ+1ํฉ (๋๋) : ์ถ์ฒ' (๊ด๋ จ์ฑ=0.33) +2026-07-22 23:11:54,965 [INFO] httpx โ HTTP Request: POST https://api.anthropic.com/v1/messages "HTTP/1.1 400 Bad Request" +2026-07-22 23:11:54,965 [INFO] content_generator โ ์ด๋ฏธ์ง 3์ฅ ์์ง ์๋ฃ (์ต์ 1 / ์ต๋ 3) +2026-07-22 23:11:54,967 [INFO] content_generator โ ์ด๋ฏธ์ง 3๊ฐ ๋ณธ๋ฌธ ์ฝ์ ์๋ฃ +2026-07-22 23:11:54,968 [INFO] content_generator โ ํฌ์คํธ ์์ฑ ์๋ฃ: '์ถ์ฒ ๋ญ๊ฐ๋น ๊ณจ๋ชฉ ์ง์ง ๋ง์ง๊ณผ ํผํด์ผ ํ ๊ณณ' (1634์, ์ด๋ฏธ์ง 3๊ฐ) +2026-07-22 23:11:54,989 [WARNING] config โ Claude ์ฌ์ฉ ํ๋ ๋๋ฌ โ OpenAI(gpt-4o)๋ก ์๋ ํด๋ฐฑ +2026-07-22 23:11:57,380 [INFO] httpx โ HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK" +2026-07-22 23:11:57,386 [INFO] adsense_validator โ AdSense ๊ฒ์ฆ โ [UPLOAD] ์ ์: 84/100 โ '์ถ์ฒ ๋ญ๊ฐ๋น ๊ณจ๋ชฉ ์ง์ง ๋ง์ง๊ณผ ํผํด์ผ ํ ๊ณณ' +2026-07-22 23:11:57,386 [INFO] adsense_validator โ โ ๏ธ ์๋ณธ์ฑ ๋ฐ ํ์ง: ๊ธ์ ์๊ฐ 2000์ ๋ฏธ๋ง์ด๋ฉฐ, ๋ ์ฐฝ์ ๊ฒฝํ์ด๋ ์ธ์ฌ์ดํธ ๋ถ์กฑ +2026-07-22 23:11:57,386 [INFO] adsense_validator โ โ ๏ธ E-E-A-T ์ ๋ขฐ๋: ์ง์ ๊ฒฝํ ๊ธฐ์ ๋ถ์กฑ, ์ถ์ฒ๋ ์์ผ๋ ์ ๋ขฐ์ฑ ์๋ ์ ์ ์ ๋ณด ๋๋ ์ ๋ฌธ์ฑ ํํ ๋ถ์กฑ +2026-07-22 23:11:57,386 [INFO] adsense_validator โ โ ๏ธ ์ด๋ฏธ์ง ์ ์ฑ : ์ด๋ฏธ์ง๊ฐ ์์ผ๋ฏ๋ก SEO ๋ฐ ๊ฐ๋ ์ฑ ๋ณด๊ฐ ํ์ +2026-07-22 23:11:57,395 [INFO] internal_linker โ ๋ด๋ถ ๋งํฌ ํ๋ณด 5๊ฐ ๋ฐ๊ฒฌ +2026-07-22 23:11:57,400 [INFO] internal_linker โ ๋ด๋ถ ๋งํฌ ์ฝ์ ๋์ ํ ์คํธ ์์ (ํค์๋ ๋ฏธ๋ฑ์ฅ) +2026-07-22 23:11:57,400 [INFO] main โ ์ ๋ชฉ: ์ถ์ฒ ๋ญ๊ฐ๋น ๊ณจ๋ชฉ ์ง์ง ๋ง์ง๊ณผ ํผํด์ผ ํ ๊ณณ +2026-07-22 23:11:57,400 [INFO] main โ ์ด๋ฏธ์ง: 3๊ฐ ์ฝ์ +2026-07-22 23:11:57,400 [INFO] main โ ๊ธ์ ์: 1634์ +2026-07-22 23:11:57,400 [WARNING] main โ โ ๏ธ ๊ธ์ ์ ๋ฏธ๋ฌ โ pending ์ ์ฅ: '์ถ์ฒ ๋ญ๊ฐ๋น ๊ณจ๋ชฉ ์ง์ง ๋ง์ง๊ณผ ํผํด์ผ ํ ๊ณณ' (1634์ < 2500์) +2026-07-22 23:11:57,425 [INFO] dashboard_exporter โ ๊ฒํ ๋๊ธฐ ์ ์ฅ: ์ถ์ฒ ๋ญ๊ฐ๋น ๊ณจ๋ชฉ ์ง์ง ๋ง์ง๊ณผ ํผํด์ผ ํ ๊ณณ (7514์ HTML) +2026-07-22 23:11:57,439 [INFO] dashboard_exporter โ ๊ฒํ ๋๊ธฐ ํฌ์คํธ ์ ์ฅ ์๋ฃ: 1๊ฐ ์ถ๊ฐ (์ด 110๊ฐ) +2026-07-22 23:11:57,440 [INFO] main โ +============================================================ +2026-07-22 23:11:57,440 [INFO] main โ [HOGU What?] ์๋ฃ: ์ฑ๊ณต 1๊ฐ / ์คํจ 0๊ฐ +2026-07-22 23:11:57,440 [INFO] main โ ============================================================ +2026-07-22 23:11:57,463 [INFO] dashboard_exporter โ ์คํ ์ด๋ ฅ ์ ์ฅ ์๋ฃ (์ด 100๊ฐ) +2026-07-22 23:11:57,481 [INFO] dashboard_exporter โ ์๋ฆฌ์ฆ: 9๊ฐ ๋ด๋ณด๋ด๊ธฐ ์๋ฃ +2026-07-22 23:11:57,494 [INFO] dashboard_exporter โ SNS ๋ฐ์ดํฐ: 50๊ฐ ๋ด๋ณด๋ด๊ธฐ ์๋ฃ +2026-07-22 23:11:57,745 [WARNING] gsc_fetcher โ GSC ๊ถํ ์์ โ ์ฌ์ดํธ๊ฐ Search Console์ ๋ฑ๋ก๋๋์ง ํ์ธํ์ธ์ +2026-07-22 23:11:58,106 [INFO] gsc_fetcher โ GSC ๋ฐ์ดํฐ ์์ง ์๋ฃ: 0๊ฐ ์ฟผ๋ฆฌ / 0๊ฐ ์นดํ ๊ณ ๋ฆฌ +2026-07-22 23:11:58,495 [INFO] gsc_fetcher โ GSC ๋ฐ์ดํฐ ์์ง ์๋ฃ: 0๊ฐ ์ฟผ๋ฆฌ / 0๊ฐ ์นดํ ๊ณ ๋ฆฌ +2026-07-22 23:11:58,496 [INFO] gsc_fetcher โ GSC ๋์๋ณด๋ ๋ฐ์ดํฐ ์ ์ฅ: /home/runner/work/cli/cli/blog-automation/../docs/data/gsc.json +2026-07-22 23:11:58,499 [INFO] dashboard_exporter โ ์๋ฆฌ ์ด๋ ฅ: 50๊ฑด ๋ด๋ณด๋ด๊ธฐ ์๋ฃ +2026-07-22 23:11:58,514 [INFO] post_manager โ ํฌ์คํธ ๋ ์ง์คํธ๋ฆฌ: ์ ์ฒด 300๊ฐ (๊ฒ์ 177 / ์คํจ 15 / ๋๊ธฐ 82) +2026-07-22 23:11:58,514 [INFO] dashboard_exporter โ ๋์๋ณด๋ ๋ฐ์ดํฐ ๋ด๋ณด๋ด๊ธฐ ์๋ฃ โ /home/runner/work/cli/cli/blog-automation/../docs/data +2026-07-22 23:11:58,514 [INFO] dashboard_exporter โ ํฌ์คํธ: 92๊ฐ / ์คํ ์ด๋ ฅ: 100๊ฐ / ๋ธ๋ก๊ทธ: 3๊ฐ +2026-07-22 23:11:58,515 [INFO] main โ ๋์๋ณด๋ ๋ฐ์ดํฐ ์ ๋ฐ์ดํธ ์๋ฃ +2026-07-22 23:12:31,635 [INFO] main โ ============================================================ +2026-07-22 23:12:31,635 [INFO] main โ [HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์] ๋ธ๋ก๊ทธ ์๋ํ ์์: 2026-07-22 23:12:31 +2026-07-22 23:12:31,635 [INFO] main โ ============================================================ +2026-07-22 23:12:31,644 [INFO] keyword_collector โ ํ ๋ธ๋ก๊ทธ ์ต๊ทผ ํค์๋ 14๊ฐ ์ค๋ณต ๋ฐฉ์ง ์ฝํผ์ค ํฉ๋ฅ +2026-07-22 23:12:31,644 [INFO] keyword_collector โ ํฌ์คํ ์ด๋ ฅ ์ฝํผ์ค: 38๊ฐ ํญ๋ชฉ ๋ก๋ (blog_id=blog2 ์ค๋ณต ๋ฐฉ์ง ๊ธฐ์ค) +2026-07-22 23:12:36,124 [INFO] keyword_collector โ Naver ์ค์๊ฐ ๋ด์ค ํค๋๋ผ์ธ ์์ง: 60๊ฐ +2026-07-22 23:12:36,389 [INFO] httpx โ HTTP Request: POST https://api.anthropic.com/v1/messages "HTTP/1.1 400 Bad Request" +2026-07-22 23:12:36,390 [INFO] keyword_collector โ ๋ค์ด๋ฒ ์ค์๊ฐ ๋ด์ค ํค์๋: 0๊ฐ +2026-07-22 23:12:36,864 [INFO] httpx โ HTTP Request: POST https://api.anthropic.com/v1/messages "HTTP/1.1 400 Bad Request" +2026-07-22 23:12:37,246 [INFO] gsc_fetcher โ GSC ๋ฐ์ดํฐ ์์ง ์๋ฃ: 0๊ฐ ์ฟผ๋ฆฌ / 0๊ฐ ์นดํ ๊ณ ๋ฆฌ +2026-07-22 23:12:37,247 [INFO] gsc_fetcher โ GSC ๊ณ ์ฑ๊ณผ ์นดํ ๊ณ ๋ฆฌ ์์: [] +2026-07-22 23:12:37,248 [INFO] keyword_collector โ ์ ์ฌ ์ฃผ์ ์ ์ธ 3๊ฐ: ['์ ์ฃผ๋ ์ฌํ ํ์ง์ธ์ฒ๋ผ ์ฆ๊ธฐ๋ ๋ฐฉ๋ฒ ์์ง ํ๊ธฐ', '๋ถ์ฐ 1๋ฐ2์ผ ํผ์ ์ฌํ ํ์ค ๋น์ฉ ๊ณต๊ฐ', '๊ฐ์๋ ์บ ํ ์ฒ์ ํด๋ดค์ ๋ ๋ชฐ๋๋ ๊ฒ๋ค'] +2026-07-22 23:12:37,249 [INFO] keyword_collector โ [fallback] 2๊ฐ: ['๊ฒฝ์ฃผ ๋น์ผ์น๊ธฐ ๋์น๋ฉด ํํํ๋ ์ฝ์ค ์ง์ ๋ค๋ ์์', '์ ์ฃผ ํ์ฅ๋ง์ ์ฌ๋ ์ ์ ์๊ฐ๋์ ์จ์ ๋ง์ง'] +2026-07-22 23:12:37,249 [INFO] keyword_collector โ ์ต์ข ์ ์ ํค์๋ 2๊ฐ: ['๊ฒฝ์ฃผ ๋น์ผ์น๊ธฐ ๋์น๋ฉด ํํํ๋ ์ฝ์ค ์ง์ ๋ค๋ ์์', '์ ์ฃผ ํ์ฅ๋ง์ ์ฌ๋ ์ ์ ์๊ฐ๋์ ์จ์ ๋ง์ง'] +2026-07-22 23:12:37,249 [INFO] main โ ์์ง๋ ํค์๋ 2๊ฐ: ['๊ฒฝ์ฃผ ๋น์ผ์น๊ธฐ ๋์น๋ฉด ํํํ๋ ์ฝ์ค ์ง์ ๋ค๋ ์์', '์ ์ฃผ ํ์ฅ๋ง์ ์ฌ๋ ์ ์ ์๊ฐ๋์ ์จ์ ๋ง์ง'] +2026-07-22 23:12:37,254 [INFO] main โ ์๋ ์๋ฆฌ์ฆ ๋๊ธฐ ์ค (๋ง์ง๋ง ์๋ฆฌ์ฆ 3์ผ ์ , 4์ผ ํ ํ์ฑํ) +2026-07-22 23:12:37,254 [INFO] main โ ๋จ๋ ํฌ์คํธ ๋์ ํค์๋ 1๊ฐ: ['๊ฒฝ์ฃผ ๋น์ผ์น๊ธฐ ๋์น๋ฉด ํํํ๋ ์ฝ์ค ์ง์ ๋ค๋ ์์'] +2026-07-22 23:12:37,267 [INFO] main โ +[1/1] ํค์๋: '๊ฒฝ์ฃผ ๋น์ผ์น๊ธฐ ๋์น๋ฉด ํํํ๋ ์ฝ์ค ์ง์ ๋ค๋ ์์' +2026-07-22 23:12:37,267 [INFO] content_generator โ ํฌ์คํธ ์์ฑ ์ค: '๊ฒฝ์ฃผ ๋น์ผ์น๊ธฐ ๋์น๋ฉด ํํํ๋ ์ฝ์ค ์ง์ ๋ค๋ ์์' +2026-07-22 23:12:37,459 [INFO] httpx โ HTTP Request: POST https://api.anthropic.com/v1/messages "HTTP/1.1 400 Bad Request" +2026-07-22 23:12:37,460 [WARNING] research_collector โ ๊ฒ์ ์๋ ๋ถ์ ์คํจ: Error code: 400 - {'type': 'error', 'error': {'type': 'invalid_request_error', 'message': 'You have reached your specified API usage limits. You will regain access on 2026-08-01 at 00:00 UTC.'}, 'request_id': 'req_011CdHweVDh53igr1zhDFqdd'} +2026-07-22 23:12:45,518 [INFO] research_collector โ ์๋ฃ ์กฐ์ฌ: 5๊ฐ ์์ง (์ ๋ขฐ ๋๋ฉ์ธ 0๊ฐ) โ '๊ฒฝ์ฃผ ๋น์ผ์น๊ธฐ ๋์น๋ฉด ํํํ๋ ์ฝ์ค ์ง์ ๋ค๋ ์์' +2026-07-22 23:12:45,720 [INFO] httpx โ HTTP Request: POST https://api.anthropic.com/v1/messages "HTTP/1.1 400 Bad Request" +2026-07-22 23:12:45,720 [WARNING] evidence_builder โ ์๋ฃํฉ ์์ฑ ์คํจ: Error code: 400 - {'type': 'error', 'error': {'type': 'invalid_request_error', 'message': 'You have reached your specified API usage limits. You will regain access on 2026-08-01 at 00:00 UTC.'}, 'request_id': 'req_011CdHwf6XikPCjhhrLKySAP'} +2026-07-22 23:12:45,722 [INFO] content_generator โ AI ์ ๊ณต์: CLAUDE (์๋ 1/3) +2026-07-22 23:12:45,932 [INFO] httpx โ HTTP Request: POST https://api.anthropic.com/v1/messages "HTTP/1.1 400 Bad Request" +2026-07-22 23:12:46,372 [WARNING] config โ Claude ์ฌ์ฉ ํ๋ ๋๋ฌ โ OpenAI(gpt-4o)๋ก ์๋ ํด๋ฐฑ +2026-07-22 23:13:09,011 [INFO] httpx โ HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK" +2026-07-22 23:13:09,022 [WARNING] content_generator โ ์ปจํ ์ธ ๋๋ฌด ์งง์(1064์, ์ต์ 2500์) โ ์ฌ์๋ 1/3 +2026-07-22 23:13:12,023 [INFO] content_generator โ AI ์ ๊ณต์: CLAUDE (์๋ 2/3) +2026-07-22 23:13:12,023 [WARNING] config โ Claude ์ฌ์ฉ ํ๋ ๋๋ฌ โ OpenAI(gpt-4o)๋ก ์๋ ํด๋ฐฑ +2026-07-22 23:13:25,119 [INFO] httpx โ HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK" +2026-07-22 23:13:25,125 [WARNING] content_generator โ ์ปจํ ์ธ ๋๋ฌด ์งง์(1106์, ์ต์ 2500์) โ ์ฌ์๋ 2/3 +2026-07-22 23:13:28,125 [INFO] content_generator โ AI ์ ๊ณต์: CLAUDE (์๋ 3/3) +2026-07-22 23:13:28,125 [WARNING] config โ Claude ์ฌ์ฉ ํ๋ ๋๋ฌ โ OpenAI(gpt-4o)๋ก ์๋ ํด๋ฐฑ +2026-07-22 23:13:46,295 [INFO] httpx โ HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK" +2026-07-22 23:13:46,306 [WARNING] content_generator โ ์ต์ ๋ถ๋ ๋ฏธ๋ฌ(1340์) โ ์ฌ์๋ ์์ง, ํด๋น ๋ถ๋์ผ๋ก ์งํ +2026-07-22 23:13:46,325 [WARNING] config โ Claude ์ฌ์ฉ ํ๋ ๋๋ฌ โ OpenAI(gpt-4o)๋ก ์๋ ํด๋ฐฑ +2026-07-22 23:13:47,744 [INFO] httpx โ HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK" +2026-07-22 23:13:47,748 [INFO] content_generator โ ํฉํธ์ฒดํฌ: ์ด์ 3๊ฑด ๋ฐ๊ฒฌ, 2๊ฑด ์๋ ์์ ์ ์ฉ +2026-07-22 23:13:49,006 [INFO] image_fetcher โ ์ด๋ฏธ์ง ์์ง ์ฑ๊ณต: '๊ฒฝ์ฃผ ๋น์ผ์น๊ธฐ, ๋์น๋ฉด ํํํ๋ ์ฝ์ค ์ง์ ๋ค๋ ์์!' โ ์ ๋ชฉ='์ฌํ/ํด์ธ๊ฑฐ์ฃผ - ๊ฒฝ์ฃผ ๋น์ผ์น๊ธฐ ๋๋ฒ ์ด์ ํ๊ธฐ' (๊ด๋ จ์ฑ=0.29) +2026-07-22 23:13:49,546 [INFO] image_fetcher โ ์ด๋ฏธ์ง ์์ง ์ฑ๊ณต: '๊ฒฝ์ฃผ ๋น์ผ์น๊ธฐ ๋์น๋ฉด' โ ์ ๋ชฉ='๋ฝ๋ฟ:์ฌํํฌ๋ผ - ๊ฒฝ์ฃผ ๋น์ผ์น๊ธฐ ๋ค๋ ์์ด์^^ ๊ฒฝ์ฃผ ๋น์ผ์น๊ธฐ ๋ค๋ ์์ด์^' (๊ด๋ จ์ฑ=0.67) +2026-07-22 23:13:50,783 [INFO] image_fetcher โ ๋์ฒด ์ด๋ฏธ์ง ์์ง: '๊ฒฝ์ฃผ ๋น์ผ์น๊ธฐ ์ผ์ ์์ฐจ๊ฒ' โ ์ ๋ชฉ='[KTX] ๋ฌธํํด์ค์ฌ๋๊ณผ ํจ๊ปํ๋ ๊ฒฝ์ฃผ ์ธ๊ณ๋ฌธํ์ ์ฐ ํฌ์ด ๋น์ผ์น๊ธฐ ๊ธฐ์ฐจ์ฌ' (๊ด๋ จ์ฑ=0.50) +2026-07-22 23:13:50,783 [INFO] image_fetcher โ ์ด๋ฏธ์ง ์์ง ์ฑ๊ณต: '๊ฒฝ์ฃผ ๋น์ผ์น๊ธฐ ์ผ์ ์์ฐจ๊ฒ' โ ์ ๋ชฉ='[KTX] ๋ฌธํํด์ค์ฌ๋๊ณผ ํจ๊ปํ๋ ๊ฒฝ์ฃผ ์ธ๊ณ๋ฌธํ์ ์ฐ ํฌ์ด ๋น์ผ์น๊ธฐ ๊ธฐ์ฐจ์ฌ' (๊ด๋ จ์ฑ=0.50) +2026-07-22 23:13:51,006 [INFO] httpx โ HTTP Request: POST https://api.anthropic.com/v1/messages "HTTP/1.1 400 Bad Request" +2026-07-22 23:13:51,006 [INFO] content_generator โ ์ด๋ฏธ์ง 3์ฅ ์์ง ์๋ฃ (์ต์ 1 / ์ต๋ 3) +2026-07-22 23:13:51,008 [INFO] content_generator โ ์ด๋ฏธ์ง 3๊ฐ ๋ณธ๋ฌธ ์ฝ์ ์๋ฃ +2026-07-22 23:13:51,009 [INFO] content_generator โ ํฌ์คํธ ์์ฑ ์๋ฃ: '๊ฒฝ์ฃผ ๋น์ผ์น๊ธฐ, ๋์น๋ฉด ํํํ๋ ์ฝ์ค ์ง์ ๋ค๋ ์์!' (1340์, ์ด๋ฏธ์ง 3๊ฐ) +2026-07-22 23:13:51,031 [WARNING] config โ Claude ์ฌ์ฉ ํ๋ ๋๋ฌ โ OpenAI(gpt-4o)๋ก ์๋ ํด๋ฐฑ +2026-07-22 23:13:54,181 [INFO] httpx โ HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK" +2026-07-22 23:13:54,186 [INFO] adsense_validator โ AdSense ๊ฒ์ฆ โ [UPLOAD] ์ ์: 84/100 โ '๊ฒฝ์ฃผ ๋น์ผ์น๊ธฐ, ๋์น๋ฉด ํํํ๋ ์ฝ์ค ์ง์ ๋ค๋ ์์!' +2026-07-22 23:13:54,186 [INFO] adsense_validator โ โ ๏ธ ์๋ณธ์ฑ ๋ฐ ํ์ง: ๊ธ์ ์๊ฐ 1340์๋ก 2000์ ๋ฏธ๋ง, ์ ๋ณด ์ฌ์กฐํฉ ์์ฌ. +2026-07-22 23:13:54,186 [INFO] adsense_validator โ โ ๏ธ E-E-A-T ์ ๋ขฐ๋: ์ง์ ๊ฒฝํ ๊ธฐ๋ฐ ์์ ๋ถ์กฑ, ์ถ์ฒ ์ฌ์ฉ์ ๊ธ์ ์ . +2026-07-22 23:13:54,186 [INFO] adsense_validator โ โ ๏ธ ์ด๋ฏธ์ง ์ ์ฑ : ์ด๋ฏธ์ง ๋ถ์ฌ, ์ ์๊ถ ์๋ฐ ์ํ์ ์์. +2026-07-22 23:13:54,195 [INFO] internal_linker โ ๋ด๋ถ ๋งํฌ ํ๋ณด 5๊ฐ ๋ฐ๊ฒฌ +2026-07-22 23:13:54,198 [INFO] internal_linker โ [1/5] '์ฆ๊ธฐ๋' -> https://hogugolfntraval.blogspot.com/2026/07/202607.html +2026-07-22 23:13:54,199 [INFO] internal_linker โ ๋ด๋ถ ๋งํฌ 1๊ฐ ์ฝ์ ์๋ฃ +2026-07-22 23:13:54,199 [INFO] main โ ์ ๋ชฉ: ๊ฒฝ์ฃผ ๋น์ผ์น๊ธฐ, ๋์น๋ฉด ํํํ๋ ์ฝ์ค ์ง์ ๋ค๋ ์์! +2026-07-22 23:13:54,199 [INFO] main โ ์ด๋ฏธ์ง: 3๊ฐ ์ฝ์ +2026-07-22 23:13:54,199 [INFO] main โ ๊ธ์ ์: 1340์ +2026-07-22 23:13:54,199 [WARNING] main โ โ ๏ธ ๊ธ์ ์ ๋ฏธ๋ฌ โ pending ์ ์ฅ: '๊ฒฝ์ฃผ ๋น์ผ์น๊ธฐ, ๋์น๋ฉด ํํํ๋ ์ฝ์ค ์ง์ ๋ค๋ ์์!' (1340์ < 2500์) +2026-07-22 23:13:54,221 [INFO] dashboard_exporter โ ๊ฒํ ๋๊ธฐ ์ ์ฅ: ๊ฒฝ์ฃผ ๋น์ผ์น๊ธฐ, ๋์น๋ฉด ํํํ๋ ์ฝ์ค ์ง์ ๋ค๋ ์์! (5135์ HTML) +2026-07-22 23:13:54,233 [INFO] dashboard_exporter โ ๊ฒํ ๋๊ธฐ ํฌ์คํธ ์ ์ฅ ์๋ฃ: 1๊ฐ ์ถ๊ฐ (์ด 111๊ฐ) +2026-07-22 23:13:54,234 [INFO] main โ +============================================================ +2026-07-22 23:13:54,234 [INFO] main โ [HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์] ์๋ฃ: ์ฑ๊ณต 1๊ฐ / ์คํจ 0๊ฐ +2026-07-22 23:13:54,234 [INFO] main โ ============================================================ +2026-07-22 23:13:54,256 [INFO] dashboard_exporter โ ์คํ ์ด๋ ฅ ์ ์ฅ ์๋ฃ (์ด 100๊ฐ) +2026-07-22 23:13:54,272 [INFO] dashboard_exporter โ ์๋ฆฌ์ฆ: 9๊ฐ ๋ด๋ณด๋ด๊ธฐ ์๋ฃ +2026-07-22 23:13:54,284 [INFO] dashboard_exporter โ SNS ๋ฐ์ดํฐ: 50๊ฐ ๋ด๋ณด๋ด๊ธฐ ์๋ฃ +2026-07-22 23:13:54,492 [WARNING] gsc_fetcher โ GSC ๊ถํ ์์ โ ์ฌ์ดํธ๊ฐ Search Console์ ๋ฑ๋ก๋๋์ง ํ์ธํ์ธ์ +2026-07-22 23:13:54,799 [INFO] gsc_fetcher โ GSC ๋ฐ์ดํฐ ์์ง ์๋ฃ: 0๊ฐ ์ฟผ๋ฆฌ / 0๊ฐ ์นดํ ๊ณ ๋ฆฌ +2026-07-22 23:13:54,801 [INFO] gsc_fetcher โ GSC ๋์๋ณด๋ ๋ฐ์ดํฐ ์ ์ฅ: /home/runner/work/cli/cli/blog-automation/../docs/data/gsc.json +2026-07-22 23:13:54,804 [INFO] dashboard_exporter โ ์๋ฆฌ ์ด๋ ฅ: 50๊ฑด ๋ด๋ณด๋ด๊ธฐ ์๋ฃ +2026-07-22 23:13:54,818 [INFO] post_manager โ ํฌ์คํธ ๋ ์ง์คํธ๋ฆฌ: ์ ์ฒด 300๊ฐ (๊ฒ์ 176 / ์คํจ 15 / ๋๊ธฐ 83) +2026-07-22 23:13:54,818 [INFO] dashboard_exporter โ ๋์๋ณด๋ ๋ฐ์ดํฐ ๋ด๋ณด๋ด๊ธฐ ์๋ฃ โ /home/runner/work/cli/cli/blog-automation/../docs/data +2026-07-22 23:13:54,818 [INFO] dashboard_exporter โ ํฌ์คํธ: 92๊ฐ / ์คํ ์ด๋ ฅ: 100๊ฐ / ๋ธ๋ก๊ทธ: 3๊ฐ +2026-07-22 23:13:54,819 [INFO] main โ ๋์๋ณด๋ ๋ฐ์ดํฐ ์ ๋ฐ์ดํธ ์๋ฃ +2026-07-22 23:14:34,638 [INFO] main โ ============================================================ +2026-07-22 23:14:34,638 [INFO] main โ [๊ธ์ตNEWS] ๋ธ๋ก๊ทธ ์๋ํ ์์: 2026-07-22 23:14:34 +2026-07-22 23:14:34,639 [INFO] main โ ============================================================ +2026-07-22 23:14:34,648 [INFO] keyword_collector โ ํ ๋ธ๋ก๊ทธ ์ต๊ทผ ํค์๋ 14๊ฐ ์ค๋ณต ๋ฐฉ์ง ์ฝํผ์ค ํฉ๋ฅ +2026-07-22 23:14:34,648 [INFO] keyword_collector โ ํฌ์คํ ์ด๋ ฅ ์ฝํผ์ค: 44๊ฐ ํญ๋ชฉ ๋ก๋ (blog_id=blog3 ์ค๋ณต ๋ฐฉ์ง ๊ธฐ์ค) +2026-07-22 23:14:37,974 [INFO] keyword_collector โ Naver ์ค์๊ฐ ๋ด์ค ํค๋๋ผ์ธ ์์ง: 40๊ฐ +2026-07-22 23:14:38,432 [INFO] httpx โ HTTP Request: POST https://api.anthropic.com/v1/messages "HTTP/1.1 400 Bad Request" +2026-07-22 23:14:38,433 [INFO] keyword_collector โ ๋ค์ด๋ฒ ์ค์๊ฐ ๋ด์ค ํค์๋: 0๊ฐ +2026-07-22 23:14:39,002 [INFO] keyword_collector โ ๊ณ CPC ํค์๋ 1๊ฐ ์ฃผ์ (blog_id=blog3): ['์ฃผํ๋ด๋ณด๋์ถ ๊ธ๋ฆฌ ์ต์ ์ํ 2026 ์ง์ ๋ฐํ ํ์ ๋น๊ต'] +2026-07-22 23:14:39,182 [INFO] httpx โ HTTP Request: POST https://api.anthropic.com/v1/messages "HTTP/1.1 400 Bad Request" +2026-07-22 23:14:39,484 [INFO] gsc_fetcher โ GSC ๋ฐ์ดํฐ ์์ง ์๋ฃ: 0๊ฐ ์ฟผ๋ฆฌ / 0๊ฐ ์นดํ ๊ณ ๋ฆฌ +2026-07-22 23:14:39,485 [INFO] gsc_fetcher โ GSC ๊ณ ์ฑ๊ณผ ์นดํ ๊ณ ๋ฆฌ ์์: [] +2026-07-22 23:14:39,486 [INFO] keyword_collector โ ์ ์ฌ ์ฃผ์ ์ ์ธ 3๊ฐ: ['์ฃผํ๋ด๋ณด๋์ถ ๊ธ๋ฆฌ ์ต์ ์ํ 2026 ์ง์ ๋ฐํ ํ์ ๋น๊ต', '์ฝ์คํผ ์ฝ์ค๋ฅ 2026 ํ๋ฐ๊ธฐ ์ ๋ง ํต์ฌ ์ ๋ฆฌ', '๋ฏธ๊ตญ ์ฐ์ค ๊ธ๋ฆฌ ๊ฒฐ์ ํ๊ตญ ์ฆ์ ์ํฅ ๋ถ์'] +2026-07-22 23:14:39,487 [INFO] keyword_collector โ [fallback] 2๊ฐ: ['์๋ฌ๋ฌ ํ์จ ๊ธ๋ฑ๋ฝ ์์ธ๊ณผ ๊ฐ์ธํฌ์์ ๋์๋ฒ', '2026 ๊ธ์ต์์ฅ ์ฃผ์ ์ด์ ์ง์ฅ์ธ์ด ์์์ผ ํ ๊ฒ'] +2026-07-22 23:14:39,487 [INFO] keyword_collector โ ์ต์ข ์ ์ ํค์๋ 2๊ฐ: ['์๋ฌ๋ฌ ํ์จ ๊ธ๋ฑ๋ฝ ์์ธ๊ณผ ๊ฐ์ธํฌ์์ ๋์๋ฒ', '2026 ๊ธ์ต์์ฅ ์ฃผ์ ์ด์ ์ง์ฅ์ธ์ด ์์์ผ ํ ๊ฒ'] +2026-07-22 23:14:39,487 [INFO] main โ ์์ง๋ ํค์๋ 2๊ฐ: ['์๋ฌ๋ฌ ํ์จ ๊ธ๋ฑ๋ฝ ์์ธ๊ณผ ๊ฐ์ธํฌ์์ ๋์๋ฒ', '2026 ๊ธ์ต์์ฅ ์ฃผ์ ์ด์ ์ง์ฅ์ธ์ด ์์์ผ ํ ๊ฒ'] +2026-07-22 23:14:39,492 [INFO] main โ ์๋ ์๋ฆฌ์ฆ ๋๊ธฐ ์ค (๋ง์ง๋ง ์๋ฆฌ์ฆ 4์ผ ์ , 3์ผ ํ ํ์ฑํ) +2026-07-22 23:14:39,492 [INFO] main โ ๋จ๋ ํฌ์คํธ ๋์ ํค์๋ 1๊ฐ: ['์๋ฌ๋ฌ ํ์จ ๊ธ๋ฑ๋ฝ ์์ธ๊ณผ ๊ฐ์ธํฌ์์ ๋์๋ฒ'] +2026-07-22 23:14:39,507 [INFO] main โ +[1/1] ํค์๋: '์๋ฌ๋ฌ ํ์จ ๊ธ๋ฑ๋ฝ ์์ธ๊ณผ ๊ฐ์ธํฌ์์ ๋์๋ฒ' +2026-07-22 23:14:39,507 [INFO] content_generator โ ํฌ์คํธ ์์ฑ ์ค: '์๋ฌ๋ฌ ํ์จ ๊ธ๋ฑ๋ฝ ์์ธ๊ณผ ๊ฐ์ธํฌ์์ ๋์๋ฒ' +2026-07-22 23:14:39,714 [INFO] httpx โ HTTP Request: POST https://api.anthropic.com/v1/messages "HTTP/1.1 400 Bad Request" +2026-07-22 23:14:39,714 [WARNING] research_collector โ ๊ฒ์ ์๋ ๋ถ์ ์คํจ: Error code: 400 - {'type': 'error', 'error': {'type': 'invalid_request_error', 'message': 'You have reached your specified API usage limits. You will regain access on 2026-08-01 at 00:00 UTC.'}, 'request_id': 'req_011CdHwoVoAiYLzC3iX2XxZt'} +2026-07-22 23:14:46,082 [INFO] research_collector โ ์๋ฃ ์กฐ์ฌ: 5๊ฐ ์์ง (์ ๋ขฐ ๋๋ฉ์ธ 0๊ฐ) โ '์๋ฌ๋ฌ ํ์จ ๊ธ๋ฑ๋ฝ ์์ธ๊ณผ ๊ฐ์ธํฌ์์ ๋์๋ฒ' +2026-07-22 23:14:46,245 [INFO] httpx โ HTTP Request: POST https://api.anthropic.com/v1/messages "HTTP/1.1 400 Bad Request" +2026-07-22 23:14:46,246 [WARNING] evidence_builder โ ์๋ฃํฉ ์์ฑ ์คํจ: Error code: 400 - {'type': 'error', 'error': {'type': 'invalid_request_error', 'message': 'You have reached your specified API usage limits. You will regain access on 2026-08-01 at 00:00 UTC.'}, 'request_id': 'req_011CdHwoyqeFVPw3gGrxSfWr'} +2026-07-22 23:14:46,248 [INFO] content_generator โ AI ์ ๊ณต์: CLAUDE (์๋ 1/3) +2026-07-22 23:14:47,241 [INFO] httpx โ HTTP Request: POST https://api.anthropic.com/v1/messages "HTTP/1.1 400 Bad Request" +2026-07-22 23:14:47,778 [WARNING] config โ Claude ์ฌ์ฉ ํ๋ ๋๋ฌ โ OpenAI(gpt-4o)๋ก ์๋ ํด๋ฐฑ +2026-07-22 23:15:04,669 [INFO] httpx โ HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK" +2026-07-22 23:15:04,684 [WARNING] content_generator โ ์ปจํ ์ธ ๋๋ฌด ์งง์(1284์, ์ต์ 2500์) โ ์ฌ์๋ 1/3 +2026-07-22 23:15:07,684 [INFO] content_generator โ AI ์ ๊ณต์: CLAUDE (์๋ 2/3) +2026-07-22 23:15:07,684 [WARNING] config โ Claude ์ฌ์ฉ ํ๋ ๋๋ฌ โ OpenAI(gpt-4o)๋ก ์๋ ํด๋ฐฑ +2026-07-22 23:15:28,893 [INFO] httpx โ HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK" +2026-07-22 23:15:28,900 [WARNING] content_generator โ ์ปจํ ์ธ ๋๋ฌด ์งง์(1923์, ์ต์ 2500์) โ ์ฌ์๋ 2/3 +2026-07-22 23:15:31,901 [INFO] content_generator โ AI ์ ๊ณต์: CLAUDE (์๋ 3/3) +2026-07-22 23:15:31,901 [WARNING] config โ Claude ์ฌ์ฉ ํ๋ ๋๋ฌ โ OpenAI(gpt-4o)๋ก ์๋ ํด๋ฐฑ +2026-07-22 23:15:49,964 [INFO] httpx โ HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK" +2026-07-22 23:15:49,970 [WARNING] content_generator โ ์ต์ ๋ถ๋ ๋ฏธ๋ฌ(1553์) โ ์ฌ์๋ ์์ง, ํด๋น ๋ถ๋์ผ๋ก ์งํ +2026-07-22 23:15:49,970 [WARNING] content_generator โ ์ฝ๊ธฐ ๋์ด๋ ๊ธฐ์ค ๋ฏธ๋ฌ(['์ ๋ฌธ์ฉ์ด 1๊ฐ(ํํค์ง)๊ฐ ์ฌ์ด ์ค๋ช ์์ด ์ฌ์ฉ๋จ']) โ ์ฌ์๋ ์์ง, ํด๋น ์ํ๋ก ์งํ +2026-07-22 23:15:49,989 [WARNING] config โ Claude ์ฌ์ฉ ํ๋ ๋๋ฌ โ OpenAI(gpt-4o)๋ก ์๋ ํด๋ฐฑ +2026-07-22 23:15:51,046 [INFO] httpx โ HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK" +2026-07-22 23:15:51,056 [INFO] content_generator โ ํฉํธ์ฒดํฌ: ํต๊ณผ +2026-07-22 23:15:51,883 [INFO] image_fetcher โ ์ด๋ฏธ์ง ์์ง ์ฑ๊ณต: '์๋ฌ๋ฌ ํ์จ ๊ธ๋ฑ๋ฝ์ ์ด์ ์ ๊ฐ์ธํฌ์์ ๋์ ๋ฐฉ์' โ ์ ๋ชฉ='15๋ ๋ง์ ํ์จ 1,450์๋ ๋ํ...์์ผ๋ก์ ๋์ ๋ฐฉ์์?' (๊ด๋ จ์ฑ=0.29) +2026-07-22 23:15:52,599 [INFO] image_fetcher โ ์ด๋ฏธ์ง ์์ง ์ฑ๊ณต: '์๋ฌ๋ฌ ํ์จ ๊ธ๋ฑ๋ฝ' โ ์ ๋ชฉ='์ฆ์ ๊ธ๋ฑ๋ฝ ์ฅ์ธ ์ โ์ยท๋ฌ๋ฌ ํ์จโ ์ ๋ฒํด ๊น๋ญ?' (๊ด๋ จ์ฑ=0.67) +2026-07-22 23:15:53,957 [INFO] image_fetcher โ ๋์ฒด ์ด๋ฏธ์ง ์์ง: '์๋ฌ๋ฌ ํ์จ ๊ธ๋ฑ๋ฝ ์ฃผ์ ๊ฒฝ์ ๋ณ๋์' โ ์ ๋ชฉ='์ค๊ตญ๋ฐ ๊ฒฝ๊ธฐ ๋ํ ๊ฒฝ๊ณ ์โฆ์ยท๋ฌ๋ฌ ํ์จ 1340์ ๋ํ' (๊ด๋ จ์ฑ=0.14) +2026-07-22 23:15:53,957 [INFO] image_fetcher โ ์ด๋ฏธ์ง ์์ง ์ฑ๊ณต: '์๋ฌ๋ฌ ํ์จ ๊ธ๋ฑ๋ฝ ์ฃผ์ ๊ฒฝ์ ๋ณ๋์' โ ์ ๋ชฉ='์ค๊ตญ๋ฐ ๊ฒฝ๊ธฐ ๋ํ ๊ฒฝ๊ณ ์โฆ์ยท๋ฌ๋ฌ ํ์จ 1340์ ๋ํ' (๊ด๋ จ์ฑ=0.14) +2026-07-22 23:15:54,184 [INFO] httpx โ HTTP Request: POST https://api.anthropic.com/v1/messages "HTTP/1.1 400 Bad Request" +2026-07-22 23:15:54,184 [INFO] content_generator โ ์ด๋ฏธ์ง 3์ฅ ์์ง ์๋ฃ (์ต์ 1 / ์ต๋ 3) +2026-07-22 23:15:54,186 [INFO] content_generator โ ์ด๋ฏธ์ง 3๊ฐ ๋ณธ๋ฌธ ์ฝ์ ์๋ฃ +2026-07-22 23:15:54,187 [INFO] content_generator โ ํฌ์คํธ ์์ฑ ์๋ฃ: '์๋ฌ๋ฌ ํ์จ ๊ธ๋ฑ๋ฝ์ ์ด์ ์ ๊ฐ์ธํฌ์์ ๋์ ๋ฐฉ์' (1553์, ์ด๋ฏธ์ง 3๊ฐ) +2026-07-22 23:15:54,209 [WARNING] config โ Claude ์ฌ์ฉ ํ๋ ๋๋ฌ โ OpenAI(gpt-4o)๋ก ์๋ ํด๋ฐฑ +2026-07-22 23:15:57,402 [INFO] httpx โ HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK" +2026-07-22 23:15:57,403 [INFO] adsense_validator โ AdSense ๊ฒ์ฆ โ [UPLOAD] ์ ์: 84/100 โ '์๋ฌ๋ฌ ํ์จ ๊ธ๋ฑ๋ฝ์ ์ด์ ์ ๊ฐ์ธํฌ์์ ๋์ ๋ฐฉ์' +2026-07-22 23:15:57,403 [INFO] adsense_validator โ โ ๏ธ ์๋ณธ์ฑ ๋ฐ ํ์ง: ๊ธ์ ์๊ฐ 2000์ ๋ฏธ๋ง์ด๋ฉฐ, ์ผ๋ฐ์ ์ธ ์ ๋ณด๋ก ๋ณด์. +2026-07-22 23:15:57,403 [INFO] adsense_validator โ โ ๏ธ E-E-A-T ์ ๋ขฐ๋: ๊ฐ์ธ ๊ฒฝํ ๊ธฐ๋ฐ ๋ด์ฉ ๋ถ์กฑํ๊ณ , ์ ๋ขฐ์ฑ ๋ณด์ ํ์. +2026-07-22 23:15:57,403 [INFO] adsense_validator โ โ ๏ธ ์ด๋ฏธ์ง ์ ์ฑ : ์ด๋ฏธ์ง๊ฐ ์์ด SEO ๋ฐ ๊ฐ๋ ์ฑ ๋ณด์ ํ์. +2026-07-22 23:15:57,411 [INFO] internal_linker โ ๋ด๋ถ ๋งํฌ ํ๋ณด 5๊ฐ ๋ฐ๊ฒฌ +2026-07-22 23:15:57,413 [INFO] internal_linker โ [1/5] 'ETF' -> https://www.hoguwhat.com/2026/07/30-etf.html +2026-07-22 23:15:57,416 [INFO] internal_linker โ ๋ด๋ถ ๋งํฌ 1๊ฐ ์ฝ์ ์๋ฃ +2026-07-22 23:15:57,416 [INFO] main โ ์ ๋ชฉ: ์๋ฌ๋ฌ ํ์จ ๊ธ๋ฑ๋ฝ์ ์ด์ ์ ๊ฐ์ธํฌ์์ ๋์ ๋ฐฉ์ +2026-07-22 23:15:57,416 [INFO] main โ ์ด๋ฏธ์ง: 3๊ฐ ์ฝ์ +2026-07-22 23:15:57,417 [INFO] main โ ๊ธ์ ์: 1553์ +2026-07-22 23:15:57,417 [WARNING] main โ โ ๏ธ ๊ธ์ ์ ๋ฏธ๋ฌ โ pending ์ ์ฅ: '์๋ฌ๋ฌ ํ์จ ๊ธ๋ฑ๋ฝ์ ์ด์ ์ ๊ฐ์ธํฌ์์ ๋์ ๋ฐฉ์' (1553์ < 2500์) +2026-07-22 23:15:57,441 [INFO] dashboard_exporter โ ๊ฒํ ๋๊ธฐ ์ ์ฅ: ์๋ฌ๋ฌ ํ์จ ๊ธ๋ฑ๋ฝ์ ์ด์ ์ ๊ฐ์ธํฌ์์ ๋์ ๋ฐฉ์ (6581์ HTML) +2026-07-22 23:15:57,455 [INFO] dashboard_exporter โ ๊ฒํ ๋๊ธฐ ํฌ์คํธ ์ ์ฅ ์๋ฃ: 1๊ฐ ์ถ๊ฐ (์ด 112๊ฐ) +2026-07-22 23:15:57,456 [INFO] main โ +============================================================ +2026-07-22 23:15:57,456 [INFO] main โ [๊ธ์ตNEWS] ์๋ฃ: ์ฑ๊ณต 1๊ฐ / ์คํจ 0๊ฐ +2026-07-22 23:15:57,456 [INFO] main โ ============================================================ +2026-07-22 23:15:57,479 [INFO] dashboard_exporter โ ์คํ ์ด๋ ฅ ์ ์ฅ ์๋ฃ (์ด 100๊ฐ) +2026-07-22 23:15:57,496 [INFO] dashboard_exporter โ ์๋ฆฌ์ฆ: 9๊ฐ ๋ด๋ณด๋ด๊ธฐ ์๋ฃ +2026-07-22 23:15:57,510 [INFO] dashboard_exporter โ SNS ๋ฐ์ดํฐ: 50๊ฐ ๋ด๋ณด๋ด๊ธฐ ์๋ฃ +2026-07-22 23:15:57,727 [WARNING] gsc_fetcher โ GSC ๊ถํ ์์ โ ์ฌ์ดํธ๊ฐ Search Console์ ๋ฑ๋ก๋๋์ง ํ์ธํ์ธ์ +2026-07-22 23:15:57,992 [INFO] gsc_fetcher โ GSC ๋ฐ์ดํฐ ์์ง ์๋ฃ: 0๊ฐ ์ฟผ๋ฆฌ / 0๊ฐ ์นดํ ๊ณ ๋ฆฌ +2026-07-22 23:15:57,994 [INFO] gsc_fetcher โ GSC ๋์๋ณด๋ ๋ฐ์ดํฐ ์ ์ฅ: /home/runner/work/cli/cli/blog-automation/../docs/data/gsc.json +2026-07-22 23:15:57,997 [INFO] dashboard_exporter โ ์๋ฆฌ ์ด๋ ฅ: 50๊ฑด ๋ด๋ณด๋ด๊ธฐ ์๋ฃ +2026-07-22 23:15:58,011 [INFO] post_manager โ ํฌ์คํธ ๋ ์ง์คํธ๋ฆฌ: ์ ์ฒด 300๊ฐ (๊ฒ์ 175 / ์คํจ 15 / ๋๊ธฐ 84) +2026-07-22 23:15:58,011 [INFO] dashboard_exporter โ ๋์๋ณด๋ ๋ฐ์ดํฐ ๋ด๋ณด๋ด๊ธฐ ์๋ฃ โ /home/runner/work/cli/cli/blog-automation/../docs/data +2026-07-22 23:15:58,012 [INFO] dashboard_exporter โ ํฌ์คํธ: 92๊ฐ / ์คํ ์ด๋ ฅ: 100๊ฐ / ๋ธ๋ก๊ทธ: 3๊ฐ +2026-07-22 23:15:58,012 [INFO] main โ ๋์๋ณด๋ ๋ฐ์ดํฐ ์ ๋ฐ์ดํธ ์๋ฃ +2026-07-23 00:00:23,991 [INFO] main โ ๋ค์ค ๋ธ๋ก๊ทธ ๋ชจ๋: 3๊ฐ ๋ธ๋ก๊ทธ ์์ฐจ ์คํ +2026-07-23 00:00:23,991 [INFO] main โ - [blog1] HOGU What? +2026-07-23 00:00:23,991 [INFO] main โ - [blog2] HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์ +2026-07-23 00:00:23,991 [INFO] main โ - [blog3] ๊ธ์ตNEWS +2026-07-23 00:00:23,996 [INFO] main โ โณ 'SBS ๋๋ผ๋ง ๊น๋ถ์ฅ ํ์ฐจ๋ณ ๋ฆฌ๋ทฐ (7~10ํ)' ์์ฝ 2ํธ ๋๊ธฐ ์ค (๋ค์ 2026-07-25) +2026-07-23 00:00:23,996 [INFO] main โ ์ค๋ ์ฒ๋ฆฌํ ๋ฐํ ์์ฝ ํธ์ด ์์ต๋๋ค diff --git a/blog-automation/logs/code_repair.json b/blog-automation/logs/code_repair.json new file mode 100644 index 0000000000000..fcc4d7e976c11 --- /dev/null +++ b/blog-automation/logs/code_repair.json @@ -0,0 +1,272 @@ +[ + { + "timestamp": "2026-07-22T18:05:56.802321", + "tracebacks_found": 0, + "critical_errors": 10, + "repairs": [], + "auto_fixed": 0, + "manual_required": 0, + "dry_run": false + }, + { + "timestamp": "2026-07-22T15:41:13.959608", + "tracebacks_found": 0, + "critical_errors": 10, + "repairs": [], + "auto_fixed": 0, + "manual_required": 0, + "dry_run": false + }, + { + "timestamp": "2026-07-22T15:37:59.165684", + "tracebacks_found": 0, + "critical_errors": 10, + "repairs": [], + "auto_fixed": 0, + "manual_required": 0, + "dry_run": false + }, + { + "timestamp": "2026-07-22T14:13:05.826360", + "tracebacks_found": 0, + "critical_errors": 10, + "repairs": [], + "auto_fixed": 0, + "manual_required": 0, + "dry_run": false + }, + { + "timestamp": "2026-07-22T12:33:18.776638", + "tracebacks_found": 0, + "critical_errors": 10, + "repairs": [], + "auto_fixed": 0, + "manual_required": 0, + "dry_run": false + }, + { + "timestamp": "2026-07-21T18:13:24.661622", + "tracebacks_found": 0, + "critical_errors": 10, + "repairs": [], + "auto_fixed": 0, + "manual_required": 0, + "dry_run": false + }, + { + "timestamp": "2026-07-21T15:07:25.402692", + "tracebacks_found": 0, + "critical_errors": 10, + "repairs": [], + "auto_fixed": 0, + "manual_required": 0, + "dry_run": false + }, + { + "timestamp": "2026-07-21T15:00:51.578159", + "tracebacks_found": 0, + "critical_errors": 2, + "repairs": [], + "auto_fixed": 0, + "manual_required": 0, + "dry_run": false + }, + { + "timestamp": "2026-07-21T14:29:50.799139", + "tracebacks_found": 0, + "critical_errors": 2, + "repairs": [], + "auto_fixed": 0, + "manual_required": 0, + "dry_run": false + }, + { + "timestamp": "2026-07-21T14:14:20.980782", + "tracebacks_found": 0, + "critical_errors": 2, + "repairs": [], + "auto_fixed": 0, + "manual_required": 0, + "dry_run": false + }, + { + "timestamp": "2026-07-21T07:34:30.574135", + "tracebacks_found": 0, + "critical_errors": 5, + "repairs": [], + "auto_fixed": 0, + "manual_required": 0, + "dry_run": false + }, + { + "timestamp": "2026-07-21T06:51:31.328751", + "tracebacks_found": 0, + "critical_errors": 5, + "repairs": [], + "auto_fixed": 0, + "manual_required": 0, + "dry_run": false + }, + { + "timestamp": "2026-07-21T06:31:55.970998", + "tracebacks_found": 0, + "critical_errors": 5, + "repairs": [], + "auto_fixed": 0, + "manual_required": 0, + "dry_run": false + }, + { + "timestamp": "2026-07-21T05:28:03.104433", + "tracebacks_found": 0, + "critical_errors": 2, + "repairs": [], + "auto_fixed": 0, + "manual_required": 0, + "dry_run": false + }, + { + "timestamp": "2026-07-20T23:00:07.618518", + "tracebacks_found": 0, + "critical_errors": 0, + "repairs": [], + "auto_fixed": 0, + "manual_required": 0, + "dry_run": false + }, + { + "timestamp": "2026-07-20T22:40:18.359879", + "tracebacks_found": 0, + "critical_errors": 0, + "repairs": [], + "auto_fixed": 0, + "manual_required": 0, + "dry_run": false + }, + { + "timestamp": "2026-07-20T22:37:28.221436", + "tracebacks_found": 0, + "critical_errors": 0, + "repairs": [], + "auto_fixed": 0, + "manual_required": 0, + "dry_run": false + }, + { + "timestamp": "2026-07-20T18:50:19.236900", + "tracebacks_found": 0, + "critical_errors": 0, + "repairs": [], + "auto_fixed": 0, + "manual_required": 0, + "dry_run": false + }, + { + "timestamp": "2026-07-20T05:20:15.526251", + "tracebacks_found": 0, + "critical_errors": 6, + "repairs": [], + "auto_fixed": 0, + "manual_required": 0, + "dry_run": false + }, + { + "timestamp": "2026-07-20T04:41:39.502108", + "tracebacks_found": 0, + "critical_errors": 6, + "repairs": [], + "auto_fixed": 0, + "manual_required": 0, + "dry_run": false + }, + { + "timestamp": "2026-07-20T03:55:27.332815", + "tracebacks_found": 0, + "critical_errors": 6, + "repairs": [], + "auto_fixed": 0, + "manual_required": 0, + "dry_run": false + }, + { + "timestamp": "2026-07-20T03:50:29.442437", + "tracebacks_found": 0, + "critical_errors": 6, + "repairs": [], + "auto_fixed": 0, + "manual_required": 0, + "dry_run": false + }, + { + "timestamp": "2026-07-20T03:12:58.941382", + "tracebacks_found": 0, + "critical_errors": 6, + "repairs": [], + "auto_fixed": 0, + "manual_required": 0, + "dry_run": false + }, + { + "timestamp": "2026-07-20T02:36:26.597395", + "tracebacks_found": 0, + "critical_errors": 5, + "repairs": [], + "auto_fixed": 0, + "manual_required": 0, + "dry_run": false + }, + { + "timestamp": "2026-07-19T17:59:32.309434", + "tracebacks_found": 0, + "critical_errors": 7, + "repairs": [], + "auto_fixed": 0, + "manual_required": 0, + "dry_run": false + }, + { + "timestamp": "2026-07-19T11:16:02.651585", + "tracebacks_found": 0, + "critical_errors": 4, + "repairs": [], + "auto_fixed": 0, + "manual_required": 0, + "dry_run": false + }, + { + "timestamp": "2026-07-19T10:43:18.653400", + "tracebacks_found": 0, + "critical_errors": 4, + "repairs": [], + "auto_fixed": 0, + "manual_required": 0, + "dry_run": false + }, + { + "timestamp": "2026-07-18T17:57:48.882903", + "tracebacks_found": 0, + "critical_errors": 0, + "repairs": [], + "auto_fixed": 0, + "manual_required": 0, + "dry_run": false + }, + { + "timestamp": "2026-07-17T18:00:10.135985", + "tracebacks_found": 0, + "critical_errors": 0, + "repairs": [], + "auto_fixed": 0, + "manual_required": 0, + "dry_run": false + }, + { + "timestamp": "2026-07-17T15:14:43.255125", + "tracebacks_found": 0, + "critical_errors": 0, + "repairs": [], + "auto_fixed": 0, + "manual_required": 0, + "dry_run": false + } +] \ No newline at end of file diff --git a/blog-automation/logs/fix_history.json b/blog-automation/logs/fix_history.json new file mode 100644 index 0000000000000..eb61a7c9bed01 --- /dev/null +++ b/blog-automation/logs/fix_history.json @@ -0,0 +1,188 @@ +{ + "fixed": [ + { + "post_id": "2026-07-06_์ง์ฅ์ธ์30๋ง์ETFํฌ์์์งํ๊ธฐ_a5914b42", + "title": "์ง์ฅ์ธ ์ 30๋ง์ ETF ํฌ์, 1๋ ํด๋ณด๊ณ ์์งํ ์ ์ด๋ด ๋๋ค", + "keyword": "์ง์ฅ์ธ ์ 30๋ง์ ETF ํฌ์ ์์ง ํ๊ธฐ", + "blog_id": "blog1", + "old_word_count": 2219, + "new_word_count": 3020, + "adsense_score": 75, + "url": "https://hoguwhat1.blogspot.com/2026/07/30-etf-1_02113911497.html", + "at": "2026-07-07T11:26:32.955097" + }, + { + "post_id": "2026-06-27_ํฌ์ค์ฅ3๊ฐ์๋ฑ๋กํ์ค์ ๋ณํํ์ค๊ณต๊ฐ_752542bc", + "title": "ํฌ์ค์ฅ 3๊ฐ์ ๋ฑ๋กํ๊ณ ๋์ ์ง์ง ๋ฌ๋ผ์ง ๊ฒ๋ค (2026๋ ํ๊ธฐ)", + "keyword": "ํฌ์ค์ฅ 3๊ฐ์ ๋ฑ๋ก ํ ์ค์ ๋ณํ ํ์ค ๊ณต๊ฐ", + "blog_id": "default", + "old_word_count": 2495, + "new_word_count": 3040, + "adsense_score": 75, + "url": "https://hoguwhat1.blogspot.com/2026/06/3-2026.html", + "at": "2026-07-07T11:39:29.696115" + } + ], + "failed": [ + { + "post_id": "2026-07-02_์ฃผ์์ฒ์์์ํ ๋์ ์ง๋ ๋5๊ฐ์ง์ค์_92ca4844", + "reason": "id_lookup_failed", + "url": "https://hoguwhat1.blogspot.com/2026/07/5-2026.html", + "at": "2026-07-07T04:29:36.925535" + }, + { + "post_id": "2026-07-02_์ฟ ํกํํธ๋์ค3๊ฐ์์ง์ ํด๋ดค๋๋ํ์ค๊ณต๊ฐ_fd5a04eb", + "reason": "id_lookup_failed", + "url": "https://hoguwhat1.blogspot.com/2026/07/3-2026_01803084361.html", + "at": "2026-07-07T04:29:39.506356" + }, + { + "post_id": "2026-07-06_์ง์ฅ์ธ์30๋ง์ETFํฌ์์์งํ๊ธฐ_a5914b42", + "reason": "generation_failed", + "keyword": "์ง์ฅ์ธ ์ 30๋ง์ ETF ํฌ์ ์์ง ํ๊ธฐ", + "at": "2026-07-07T04:29:42.891705" + }, + { + "post_id": "2026-07-03_์์ธ์์ต์์งํ๊ธฐ์ธ๊ธ๊น์ง๋ค๊ณต๊ฐ_9941f97f", + "reason": "generation_failed", + "keyword": "์์ธ ์์ต ์์ง ํ๊ธฐ ์ธ๊ธ๊น์ง ๋ค ๊ณต๊ฐ", + "at": "2026-07-07T04:29:46.651784" + }, + { + "post_id": "2026-07-02_๋ ธ์ ์ฒ์์์ํ ๋์ ์ผ๋ง์ดํ๋์ค์๋ด_6bd9a482", + "reason": "generation_failed", + "keyword": "๋ ธ์ ์ฒ์ ์์ํ ๋ ์ ์ผ ๋ง์ด ํ๋ ์ค์๋ด", + "at": "2026-07-07T04:29:50.639899" + }, + { + "post_id": "2026-06-03_์ฌํ ํฌ๋ฐฉ๋ฒ_027399ec", + "reason": "id_lookup_failed", + "url": "https://hoguwhat1.blogspot.com/2026/06/2026-top-5.html", + "at": "2026-07-07T11:14:25.511682" + }, + { + "post_id": "2026-07-02_์ฃผ์์ฒ์์์ํ ๋์ ์ง๋ ๋5๊ฐ์ง์ค์_92ca4844", + "reason": "id_lookup_failed", + "url": "https://hoguwhat1.blogspot.com/2026/07/5-2026.html", + "at": "2026-07-07T11:22:25.529979" + }, + { + "post_id": "2026-07-02_์ฟ ํกํํธ๋์ค3๊ฐ์์ง์ ํด๋ดค๋๋ํ์ค๊ณต๊ฐ_fd5a04eb", + "reason": "id_lookup_failed", + "url": "https://hoguwhat1.blogspot.com/2026/07/3-2026_01803084361.html", + "at": "2026-07-07T11:22:28.097818" + }, + { + "post_id": "2026-06-03_์ฌํ ํฌ๋ฐฉ๋ฒ_027399ec", + "reason": "id_lookup_failed", + "url": "https://hoguwhat1.blogspot.com/2026/06/2026-top-5.html", + "at": "2026-07-07T14:44:08.828478" + }, + { + "post_id": "2026-06-14_2026ํ๋ฐ๊ธฐ์ํํธ๋ถ์์ผ์ ์ด์ ๋ฆฌ_c0471494", + "reason": "generation_failed", + "keyword": "2026 ํ๋ฐ๊ธฐ ์ํํธ ๋ถ์ ์ผ์ ์ด์ ๋ฆฌ", + "at": "2026-07-07T14:44:11.240739" + }, + { + "post_id": "2026-06-19_2026๊ฐ์ธ์ข ํฉ์์ฐ๊ด๋ฆฌ๊ณ์ข์ ์ธ๋ฐฉ๋ฒ_3f74b583", + "reason": "generation_failed", + "keyword": "2026 ๊ฐ์ธ์ข ํฉ์์ฐ๊ด๋ฆฌ๊ณ์ข ์ ์ธ ๋ฐฉ๋ฒ", + "at": "2026-07-07T14:44:14.585875" + }, + { + "post_id": "2026-07-02_์ฃผ์์ฒ์์์ํ ๋์ ์ง๋ ๋5๊ฐ์ง์ค์_92ca4844", + "reason": "id_lookup_failed", + "url": "https://hoguwhat1.blogspot.com/2026/07/5-2026.html", + "at": "2026-07-07T14:44:17.892457" + }, + { + "post_id": "2026-07-02_์ฟ ํกํํธ๋์ค3๊ฐ์์ง์ ํด๋ดค๋๋ํ์ค๊ณต๊ฐ_fd5a04eb", + "reason": "id_lookup_failed", + "url": "https://hoguwhat1.blogspot.com/2026/07/3-2026_01803084361.html", + "at": "2026-07-07T14:44:20.217960" + }, + { + "post_id": "2026-07-03_์์ธ์์ต์์งํ๊ธฐ์ธ๊ธ๊น์ง๋ค๊ณต๊ฐ_9941f97f", + "reason": "generation_failed", + "keyword": "์์ธ ์์ต ์์ง ํ๊ธฐ ์ธ๊ธ๊น์ง ๋ค ๊ณต๊ฐ", + "at": "2026-07-07T14:44:22.827253" + }, + { + "post_id": "2026-07-02_๋ ธ์ ์ฒ์์์ํ ๋์ ์ผ๋ง์ดํ๋์ค์๋ด_6bd9a482", + "reason": "generation_failed", + "keyword": "๋ ธ์ ์ฒ์ ์์ํ ๋ ์ ์ผ ๋ง์ด ํ๋ ์ค์๋ด", + "at": "2026-07-07T14:44:26.362298" + }, + { + "post_id": "2026-06-26_AIํด๋ก๋ถ์ 3๊ฐ์์์ตํ์ค๊ณต๊ฐ_017d26ff", + "reason": "generation_failed", + "keyword": "AI ํด๋ก ๋ถ์ 3๊ฐ์ ์์ต ํ์ค ๊ณต๊ฐ", + "at": "2026-07-07T14:44:29.678424" + }, + { + "post_id": "2026-07-06_ํญ์ผ๋๋น๋ฐฉ๋ฒ_770f7dce", + "reason": "generation_failed", + "keyword": "ํญ์ผ ๋๋น ๋ฐฉ๋ฒ", + "at": "2026-07-07T14:44:33.143733" + }, + { + "post_id": "2026-07-02_๋ฌด์ธ๋์บ ํ์ง์ ๊ฐ๋ดค๋๋์๋ฌด๋๋ง์ํด์ค๊ฒ๋ค_96df821a", + "reason": "generation_failed", + "keyword": "๋ฌด์ธ๋ ์บ ํ ์ง์ ๊ฐ๋ดค๋๋ ์๋ฌด๋ ๋ง ์ ํด์ค ๊ฒ๋ค", + "at": "2026-07-07T14:44:36.472299" + } + ], + "skipped": [ + { + "post_id": "2026-06-03_์ฌํ ํฌ๋ฐฉ๋ฒ_027399ec", + "reason": "no_blog_config", + "at": "2026-07-07T04:29:36.386376" + }, + { + "post_id": "2026-06-14_2026ํ๋ฐ๊ธฐ์ํํธ๋ถ์์ผ์ ์ด์ ๋ฆฌ_c0471494", + "reason": "no_blog_config", + "at": "2026-07-07T04:29:36.386500" + }, + { + "post_id": "2026-06-19_2026๊ฐ์ธ์ข ํฉ์์ฐ๊ด๋ฆฌ๊ณ์ข์ ์ธ๋ฐฉ๋ฒ_3f74b583", + "reason": "no_blog_config", + "at": "2026-07-07T04:29:36.386625" + }, + { + "post_id": "2026-06-27_ํฌ์ค์ฅ3๊ฐ์๋ฑ๋กํ์ค์ ๋ณํํ์ค๊ณต๊ฐ_752542bc", + "reason": "no_blog_config", + "at": "2026-07-07T04:29:53.640247" + }, + { + "post_id": "2026-06-26_AIํด๋ก๋ถ์ 3๊ฐ์์์ตํ์ค๊ณต๊ฐ_017d26ff", + "reason": "no_blog_config", + "at": "2026-07-07T04:29:53.640384" + }, + { + "post_id": "2026-06-14_2026ํ๋ฐ๊ธฐ์ํํธ๋ถ์์ผ์ ์ด์ ๋ฆฌ_c0471494", + "reason": "too_short_2751", + "at": "2026-07-07T11:18:22.974937" + }, + { + "post_id": "2026-06-19_2026๊ฐ์ธ์ข ํฉ์์ฐ๊ด๋ฆฌ๊ณ์ข์ ์ธ๋ฐฉ๋ฒ_3f74b583", + "reason": "too_short_2657", + "at": "2026-07-07T11:22:22.971560" + }, + { + "post_id": "2026-07-03_์์ธ์์ต์์งํ๊ธฐ์ธ๊ธ๊น์ง๋ค๊ณต๊ฐ_9941f97f", + "reason": "too_short_2660", + "at": "2026-07-07T11:30:32.834685" + }, + { + "post_id": "2026-07-02_๋ ธ์ ์ฒ์์์ํ ๋์ ์ผ๋ง์ดํ๋์ค์๋ด_6bd9a482", + "reason": "too_short_2800", + "at": "2026-07-07T11:35:08.956842" + }, + { + "post_id": "2026-06-26_AIํด๋ก๋ถ์ 3๊ฐ์์์ตํ์ค๊ณต๊ฐ_017d26ff", + "reason": "too_short_2705", + "at": "2026-07-07T11:43:50.990702" + } + ] +} \ No newline at end of file diff --git a/blog-automation/logs/fix_posts.log b/blog-automation/logs/fix_posts.log new file mode 100644 index 0000000000000..57f94077f1133 --- /dev/null +++ b/blog-automation/logs/fix_posts.log @@ -0,0 +1,474 @@ +2026-07-07 04:29:36,385 [INFO] fix_posts โ AdSense ๋ฏธ๋ฌ ๊ฒ์ ํฌ์คํธ: ์ ์ฒด 84๊ฐ / ๋ฏธ์์ 84๊ฐ +2026-07-07 04:29:36,386 [INFO] fix_posts โ ์ด๋ฒ ๋ฐฐ์น: 10๊ฐ (offset=0, batch_size=10) +2026-07-07 04:29:36,386 [INFO] fix_posts โ +[1/10] '2026๋ ์ฌํ ํฌ ๋ฐฉ๋ฒ TOP 5 โ ๋ชฐ๋๋ ์์ต ๋น๋ฐ ์๋ฒฝ ์ ๋ฆฌ' (0์) โ default +2026-07-07 04:29:36,386 [WARNING] fix_posts โ ๋ธ๋ก๊ทธ ์ค์ ์์: default โ ๊ฑด๋๋ +2026-07-07 04:29:36,386 [INFO] fix_posts โ +[2/10] '2026 ํ๋ฐ๊ธฐ ์ํํธ ๋ถ์ ์ผ์ ์ด์ ๋ฆฌ 5๊ฐ์ง ํต์ฌ ์ ๋ต' (508์) โ default +2026-07-07 04:29:36,386 [WARNING] fix_posts โ ๋ธ๋ก๊ทธ ์ค์ ์์: default โ ๊ฑด๋๋ +2026-07-07 04:29:36,386 [INFO] fix_posts โ +[3/10] '2026 ๊ฐ์ธ์ข ํฉ์์ฐ๊ด๋ฆฌ๊ณ์ข ์ ์ธ ๋ฐฉ๋ฒ ์๋ฒฝ ์ ๋ฆฌ TOP 5' (619์) โ default +2026-07-07 04:29:36,386 [WARNING] fix_posts โ ๋ธ๋ก๊ทธ ์ค์ ์์: default โ ๊ฑด๋๋ +2026-07-07 04:29:36,386 [INFO] fix_posts โ +[4/10] '์ฃผ์ ์ฒ์ ์์ํ ๋ ์ ์ง๋ ๋ 5๊ฐ์ง ์ค์, ์์งํ ํธ์ด๋์ต๋๋ค (2026๋ )' (1743์) โ blog1 +2026-07-07 04:29:36,924 [WARNING] blogger_uploader โ get_post_id_by_url [404] path=/2026/07/5-2026.html: { + "error": { + "code": 404, + "message": "Requested entity was not found.", + "errors": [ + { + "message": "Requested entity was not found.", + "domain": "global", + "rea +2026-07-07 04:29:36,925 [WARNING] fix_posts โ Blogger ํฌ์คํธ ID ์กฐํ ์คํจ: https://hoguwhat1.blogspot.com/2026/07/5-2026.html +2026-07-07 04:29:38,925 [INFO] fix_posts โ +[5/10] '์ฟ ํกํํธ๋์ค 3๊ฐ์ ์ง์ ํด๋ดค๋๋ ํ์ค ๊ณต๊ฐ (2026๋ ์์ง ํ๊ธฐ)' (1791์) โ blog1 +2026-07-07 04:29:39,504 [WARNING] blogger_uploader โ get_post_id_by_url [404] path=/2026/07/3-2026_01803084361.html: { + "error": { + "code": 404, + "message": "Requested entity was not found.", + "errors": [ + { + "message": "Requested entity was not found.", + "domain": "global", + "rea +2026-07-07 04:29:39,506 [WARNING] fix_posts โ Blogger ํฌ์คํธ ID ์กฐํ ์คํจ: https://hoguwhat1.blogspot.com/2026/07/3-2026_01803084361.html +2026-07-07 04:29:41,506 [INFO] fix_posts โ +[6/10] '์ง์ฅ์ธ ์ 30๋ง์ ETF ํฌ์, 1๋ ๋๊ฒ ํด๋ณด๊ณ ์ฐ๋ ์์ง ํ๊ธฐ' (2219์) โ blog1 +2026-07-07 04:29:42,168 [INFO] fix_posts โ Blogger ID: 2334415369519573574 +2026-07-07 04:29:42,169 [INFO] content_generator โ ํฌ์คํธ ์์ฑ ์ค: '์ง์ฅ์ธ ์ 30๋ง์ ETF ํฌ์ ์์ง ํ๊ธฐ' +2026-07-07 04:29:42,890 [INFO] httpx โ HTTP Request: POST https://api.anthropic.com/v1/messages "HTTP/1.1 404 Not Found" +2026-07-07 04:29:42,891 [ERROR] content_generator โ Claude API ์ค๋ฅ: Error code: 404 - {'type': 'error', 'error': {'type': 'not_found_error', 'message': 'model: claude-sonnet-5-20251001'}, 'request_id': 'req_011Ccn4tEy2zF5knKE9yTEvp'} +2026-07-07 04:29:42,891 [WARNING] fix_posts โ ์ฝํ ์ธ ์์ฑ ์คํจ +2026-07-07 04:29:45,891 [INFO] fix_posts โ +[7/10] '์์ธ ์์ต ์์ง ํ๊ธฐ, ์ธ๊ธ๊น์ง ๋ค ๊ณต๊ฐํฉ๋๋ค (2026๋ ์ง์ ๊ฒฝํ)' (2383์) โ blog3 +2026-07-07 04:29:46,541 [INFO] fix_posts โ Blogger ID: 1565210498724156415 +2026-07-07 04:29:46,541 [INFO] content_generator โ ํฌ์คํธ ์์ฑ ์ค: '์์ธ ์์ต ์์ง ํ๊ธฐ ์ธ๊ธ๊น์ง ๋ค ๊ณต๊ฐ' +2026-07-07 04:29:46,650 [INFO] httpx โ HTTP Request: POST https://api.anthropic.com/v1/messages "HTTP/1.1 404 Not Found" +2026-07-07 04:29:46,651 [ERROR] content_generator โ Claude API ์ค๋ฅ: Error code: 404 - {'type': 'error', 'error': {'type': 'not_found_error', 'message': 'model: claude-sonnet-5-20251001'}, 'request_id': 'req_011Ccn4tZSnHo7yEyFanetG4'} +2026-07-07 04:29:46,651 [WARNING] fix_posts โ ์ฝํ ์ธ ์์ฑ ์คํจ +2026-07-07 04:29:49,651 [INFO] fix_posts โ +[8/10] '๋ ธ์ ์ฒ์ ์์ํ ๋ ์ ๊ฐ ์ ์ง๋ ๋ ์ค์๋ค (2026๋ ์์ง ํ๊ธฐ)' (2386์) โ blog2 +2026-07-07 04:29:50,314 [INFO] fix_posts โ Blogger ID: 3688932482507169330 +2026-07-07 04:29:50,314 [INFO] content_generator โ ํฌ์คํธ ์์ฑ ์ค: '๋ ธ์ ์ฒ์ ์์ํ ๋ ์ ์ผ ๋ง์ด ํ๋ ์ค์๋ด' +2026-07-07 04:29:50,638 [INFO] httpx โ HTTP Request: POST https://api.anthropic.com/v1/messages "HTTP/1.1 404 Not Found" +2026-07-07 04:29:50,639 [ERROR] content_generator โ Claude API ์ค๋ฅ: Error code: 404 - {'type': 'error', 'error': {'type': 'not_found_error', 'message': 'model: claude-sonnet-5-20251001'}, 'request_id': 'req_011Ccn4trVxGgZHzhz6ayZo7'} +2026-07-07 04:29:50,639 [WARNING] fix_posts โ ์ฝํ ์ธ ์์ฑ ์คํจ +2026-07-07 04:29:53,640 [INFO] fix_posts โ +[9/10] 'ํฌ์ค์ฅ 3๊ฐ์ ๋ฑ๋ก ํ ์ค์ ๋ณํ, ์์งํ๊ฒ ๊ณต๊ฐํฉ๋๋ค (2026๋ )' (2495์) โ default +2026-07-07 04:29:53,640 [WARNING] fix_posts โ ๋ธ๋ก๊ทธ ์ค์ ์์: default โ ๊ฑด๋๋ +2026-07-07 04:29:53,640 [INFO] fix_posts โ +[10/10] 'AI ํด๋ก ๋ถ์ 3๊ฐ์ ํด๋ดค๋๋ฐ, ์์ต ํ์ค ์์งํ๊ฒ ๊ณต๊ฐํฉ๋๋ค (2026)' (2515์) โ default +2026-07-07 04:29:53,640 [WARNING] fix_posts โ ๋ธ๋ก๊ทธ ์ค์ ์์: default โ ๊ฑด๋๋ +2026-07-07 04:29:53,640 [INFO] fix_posts โ +============================================================ +2026-07-07 04:29:53,640 [INFO] fix_posts โ ์๋ฃ: ์ฑ๊ณต 0 / ์คํจ 5 / ๊ฑด๋๋ 5 / ์ ์ฒด 10 +2026-07-07 04:29:53,640 [INFO] fix_posts โ ๋์ ์์ ์๋ฃ: 0๊ฐ / ์ ์ฒด ๋ฏธ๋ฌ 84๊ฐ +2026-07-07 04:29:53,640 [INFO] fix_posts โ ๋จ์ ๋ฏธ์์ : 84๊ฐ +2026-07-07 11:14:25,042 [INFO] fix_posts โ AdSense ๋ฏธ๋ฌ ๊ฒ์ ํฌ์คํธ: ์ ์ฒด 84๊ฐ / ๋ฏธ์์ 84๊ฐ +2026-07-07 11:14:25,042 [INFO] fix_posts โ ์ด๋ฒ ๋ฐฐ์น: 10๊ฐ (offset=0, batch_size=10) +2026-07-07 11:14:25,042 [INFO] fix_posts โ +[1/10] '2026๋ ์ฌํ ํฌ ๋ฐฉ๋ฒ TOP 5 โ ๋ชฐ๋๋ ์์ต ๋น๋ฐ ์๋ฒฝ ์ ๋ฆฌ' (0์) โ default +2026-07-07 11:14:25,042 [INFO] fix_posts โ blogId='default' โ blog1 ํด๋ฐฑ ์ ์ฉ +2026-07-07 11:14:25,510 [WARNING] blogger_uploader โ get_post_id_by_url [404] path=/2026/06/2026-top-5.html: { + "error": { + "code": 404, + "message": "Requested entity was not found.", + "errors": [ + { + "message": "Requested entity was not found.", + "domain": "global", + "rea +2026-07-07 11:14:25,511 [WARNING] fix_posts โ Blogger ํฌ์คํธ ID ์กฐํ ์คํจ: https://hoguwhat1.blogspot.com/2026/06/2026-top-5.html +2026-07-07 11:14:27,511 [INFO] fix_posts โ +[2/10] '2026 ํ๋ฐ๊ธฐ ์ํํธ ๋ถ์ ์ผ์ ์ด์ ๋ฆฌ 5๊ฐ์ง ํต์ฌ ์ ๋ต' (508์) โ default +2026-07-07 11:14:27,512 [INFO] fix_posts โ blogId='default' โ blog1 ํด๋ฐฑ ์ ์ฉ +2026-07-07 11:14:28,140 [INFO] fix_posts โ Blogger ID: 2621429606006688968 +2026-07-07 11:14:28,140 [INFO] content_generator โ ํฌ์คํธ ์์ฑ ์ค: '2026 ํ๋ฐ๊ธฐ ์ํํธ ๋ถ์ ์ผ์ ์ด์ ๋ฆฌ' +2026-07-07 11:15:34,598 [INFO] httpx โ HTTP Request: POST https://api.anthropic.com/v1/messages "HTTP/1.1 200 OK" +2026-07-07 11:15:34,615 [WARNING] content_generator โ ์ปจํ ์ธ ๋๋ฌด ์งง์(2576์, ์ต์ 3500์) โ ์ฌ์๋ 1/3 +2026-07-07 11:16:45,080 [INFO] httpx โ HTTP Request: POST https://api.anthropic.com/v1/messages "HTTP/1.1 200 OK" +2026-07-07 11:16:45,081 [WARNING] content_generator โ ์ปจํ ์ธ ๋๋ฌด ์งง์(2626์, ์ต์ 3500์) โ ์ฌ์๋ 2/3 +2026-07-07 11:18:07,809 [INFO] httpx โ HTTP Request: POST https://api.anthropic.com/v1/messages "HTTP/1.1 200 OK" +2026-07-07 11:18:07,811 [WARNING] content_generator โ ์ต์ ๋ถ๋ ๋ฏธ๋ฌ(2751์) โ ์ฌ์๋ ์์ง, ํด๋น ๋ถ๋์ผ๋ก ์งํ +2026-07-07 11:18:14,646 [INFO] httpx โ HTTP Request: POST https://api.anthropic.com/v1/messages "HTTP/1.1 200 OK" +2026-07-07 11:18:14,647 [INFO] content_generator โ ํฉํธ์ฒดํฌ: ์ด์ 4๊ฑด ๋ฐ๊ฒฌ, 4๊ฑด ์๋ ์์ ์ ์ฉ +2026-07-07 11:18:14,649 [INFO] content_generator โ ์น์ ๋ณ ์ด๋ฏธ์ง ๊ฒ์: ['ํ๋ฐ๊ธฐ ์ํํธ ๋ถ์', 'ํ๋ฐ๊ธฐ ์ํํธ ์ด๊ฑธ ๋ค์ ์๋ ์ด๋ง๋์ฏค', 'ํ๋ฐ๊ธฐ ์ํํธ ์์ฅ ๋ถ์๊ธฐ๋ถํฐ ์ผ๋จ ์ฌํด', 'ํ๋ฐ๊ธฐ ์ํํธ ์ค์ ๋ก ์ฒญ์ฝํ ์ ๋ ๋ณดํต'] +2026-07-07 11:18:16,504 [WARNING] image_fetcher โ ์ด๋ฏธ์ง ์์: 'ํ๋ฐ๊ธฐ ์ํํธ ๋ถ์' +2026-07-07 11:18:19,232 [WARNING] image_fetcher โ ์ด๋ฏธ์ง ์์: 'ํ๋ฐ๊ธฐ ์ํํธ ์ด๊ฑธ ๋ค์ ์๋ ์ด๋ง๋์ฏค' +2026-07-07 11:18:21,756 [WARNING] image_fetcher โ ์ด๋ฏธ์ง ์์: 'ํ๋ฐ๊ธฐ ์ํํธ ์์ฅ ๋ถ์๊ธฐ๋ถํฐ ์ผ๋จ ์ฌํด' +2026-07-07 11:18:22,973 [WARNING] image_fetcher โ ์ด๋ฏธ์ง ์์: 'ํ๋ฐ๊ธฐ ์ํํธ ์ค์ ๋ก ์ฒญ์ฝํ ์ ๋ ๋ณดํต' +2026-07-07 11:18:22,973 [WARNING] content_generator โ ๊ธ ๋ด์ฉ๊ณผ ๋ง๋ ์ด๋ฏธ์ง ์์ โ ํ ์คํธ๋ง์ผ๋ก ์ ๋ก๋ ์งํ +2026-07-07 11:18:22,974 [INFO] content_generator โ ํฌ์คํธ ์์ฑ ์๋ฃ: '2026 ํ๋ฐ๊ธฐ ์ํํธ ๋ถ์ ์ผ์ , ์ง์ ์ฐพ์๋ณด๋ ์ด๋ ๋๋ผ๊ณ ์' (2751์, ์ด๋ฏธ์ง 0๊ฐ) +2026-07-07 11:18:22,974 [INFO] fix_posts โ ์ ์ฝํ ์ธ ์์ฑ ์๋ฃ: 2751์ +2026-07-07 11:18:22,974 [WARNING] fix_posts โ ์์ฑ ๋ถ๋ ๋ถ์กฑ (2751์ < 3000์) โ ๊ฑด๋๋ +2026-07-07 11:18:24,975 [INFO] fix_posts โ +[3/10] '2026 ๊ฐ์ธ์ข ํฉ์์ฐ๊ด๋ฆฌ๊ณ์ข ์ ์ธ ๋ฐฉ๋ฒ ์๋ฒฝ ์ ๋ฆฌ TOP 5' (619์) โ default +2026-07-07 11:18:24,975 [INFO] fix_posts โ blogId='default' โ blog1 ํด๋ฐฑ ์ ์ฉ +2026-07-07 11:18:25,564 [INFO] fix_posts โ Blogger ID: 3827951682702127447 +2026-07-07 11:18:25,564 [INFO] content_generator โ ํฌ์คํธ ์์ฑ ์ค: '2026 ๊ฐ์ธ์ข ํฉ์์ฐ๊ด๋ฆฌ๊ณ์ข ์ ์ธ ๋ฐฉ๋ฒ' +2026-07-07 11:19:36,386 [INFO] httpx โ HTTP Request: POST https://api.anthropic.com/v1/messages "HTTP/1.1 200 OK" +2026-07-07 11:19:36,388 [WARNING] content_generator โ ์ปจํ ์ธ ๋๋ฌด ์งง์(2765์, ์ต์ 3500์) โ ์ฌ์๋ 1/3 +2026-07-07 11:20:52,797 [INFO] httpx โ HTTP Request: POST https://api.anthropic.com/v1/messages "HTTP/1.1 200 OK" +2026-07-07 11:20:52,799 [WARNING] content_generator โ ์ปจํ ์ธ ๋๋ฌด ์งง์(2770์, ์ต์ 3500์) โ ์ฌ์๋ 2/3 +2026-07-07 11:22:03,712 [INFO] httpx โ HTTP Request: POST https://api.anthropic.com/v1/messages "HTTP/1.1 200 OK" +2026-07-07 11:22:03,713 [WARNING] content_generator โ ์ต์ ๋ถ๋ ๋ฏธ๋ฌ(2657์) โ ์ฌ์๋ ์์ง, ํด๋น ๋ถ๋์ผ๋ก ์งํ +2026-07-07 11:22:14,814 [INFO] httpx โ HTTP Request: POST https://api.anthropic.com/v1/messages "HTTP/1.1 200 OK" +2026-07-07 11:22:14,814 [INFO] content_generator โ ํฉํธ์ฒดํฌ: ํต๊ณผ +2026-07-07 11:22:14,815 [INFO] content_generator โ ์น์ ๋ณ ์ด๋ฏธ์ง ๊ฒ์: ['๊ฐ์ธ์ข ํฉ์์ฐ๊ด๋ฆฌ๊ณ์ข ์ ์ธ', '๊ฐ์ธ์ข ํฉ์์ฐ๊ด๋ฆฌ๊ณ์ข ์ ์ธ ISA ๋ง๋ค ETF', '๊ฐ์ธ์ข ํฉ์์ฐ๊ด๋ฆฌ๊ณ์ข ์ ์ธ ๋น๊ณผ์ธ ํ๋ ISA ๋ง์๊น์ง', '๊ฐ์ธ์ข ํฉ์์ฐ๊ด๋ฆฌ๊ณ์ข ์ ์ธ ์ฐ๊ฐ ๋ง์ ISA'] +2026-07-07 11:22:15,720 [WARNING] image_fetcher โ ์ด๋ฏธ์ง ์์: '๊ฐ์ธ์ข ํฉ์์ฐ๊ด๋ฆฌ๊ณ์ข ์ ์ธ' +2026-07-07 11:22:20,166 [WARNING] image_fetcher โ ์ด๋ฏธ์ง ์์: '๊ฐ์ธ์ข ํฉ์์ฐ๊ด๋ฆฌ๊ณ์ข ์ ์ธ ISA ๋ง๋ค ETF' +2026-07-07 11:22:21,519 [WARNING] image_fetcher โ ์ด๋ฏธ์ง ์์: '๊ฐ์ธ์ข ํฉ์์ฐ๊ด๋ฆฌ๊ณ์ข ์ ์ธ ๋น๊ณผ์ธ ํ๋ ISA ๋ง์๊น์ง' +2026-07-07 11:22:22,970 [WARNING] image_fetcher โ ์ด๋ฏธ์ง ์์: '๊ฐ์ธ์ข ํฉ์์ฐ๊ด๋ฆฌ๊ณ์ข ์ ์ธ ์ฐ๊ฐ ๋ง์ ISA' +2026-07-07 11:22:22,970 [WARNING] content_generator โ ๊ธ ๋ด์ฉ๊ณผ ๋ง๋ ์ด๋ฏธ์ง ์์ โ ํ ์คํธ๋ง์ผ๋ก ์ ๋ก๋ ์งํ +2026-07-07 11:22:22,971 [INFO] content_generator โ ํฌ์คํธ ์์ฑ ์๋ฃ: '2026๋ ISA ์ ์ธ, ์ ๋ ์ด๋ ๊ฒ 3๋ ๋ฒํ จ๋ดค์ต๋๋ค' (2657์, ์ด๋ฏธ์ง 0๊ฐ) +2026-07-07 11:22:22,971 [INFO] fix_posts โ ์ ์ฝํ ์ธ ์์ฑ ์๋ฃ: 2657์ +2026-07-07 11:22:22,971 [WARNING] fix_posts โ ์์ฑ ๋ถ๋ ๋ถ์กฑ (2657์ < 3000์) โ ๊ฑด๋๋ +2026-07-07 11:22:24,971 [INFO] fix_posts โ +[4/10] '์ฃผ์ ์ฒ์ ์์ํ ๋ ์ ์ง๋ ๋ 5๊ฐ์ง ์ค์, ์์งํ ํธ์ด๋์ต๋๋ค (2026๋ )' (1743์) โ blog1 +2026-07-07 11:22:25,528 [WARNING] blogger_uploader โ get_post_id_by_url [404] path=/2026/07/5-2026.html: { + "error": { + "code": 404, + "message": "Requested entity was not found.", + "errors": [ + { + "message": "Requested entity was not found.", + "domain": "global", + "rea +2026-07-07 11:22:25,529 [WARNING] fix_posts โ Blogger ํฌ์คํธ ID ์กฐํ ์คํจ: https://hoguwhat1.blogspot.com/2026/07/5-2026.html +2026-07-07 11:22:27,530 [INFO] fix_posts โ +[5/10] '์ฟ ํกํํธ๋์ค 3๊ฐ์ ์ง์ ํด๋ดค๋๋ ํ์ค ๊ณต๊ฐ (2026๋ ์์ง ํ๊ธฐ)' (1791์) โ blog1 +2026-07-07 11:22:28,096 [WARNING] blogger_uploader โ get_post_id_by_url [404] path=/2026/07/3-2026_01803084361.html: { + "error": { + "code": 404, + "message": "Requested entity was not found.", + "errors": [ + { + "message": "Requested entity was not found.", + "domain": "global", + "rea +2026-07-07 11:22:28,097 [WARNING] fix_posts โ Blogger ํฌ์คํธ ID ์กฐํ ์คํจ: https://hoguwhat1.blogspot.com/2026/07/3-2026_01803084361.html +2026-07-07 11:22:30,097 [INFO] fix_posts โ +[6/10] '์ง์ฅ์ธ ์ 30๋ง์ ETF ํฌ์, 1๋ ๋๊ฒ ํด๋ณด๊ณ ์ฐ๋ ์์ง ํ๊ธฐ' (2219์) โ blog1 +2026-07-07 11:22:30,869 [INFO] fix_posts โ Blogger ID: 2334415369519573574 +2026-07-07 11:22:30,869 [INFO] content_generator โ ํฌ์คํธ ์์ฑ ์ค: '์ง์ฅ์ธ ์ 30๋ง์ ETF ํฌ์ ์์ง ํ๊ธฐ' +2026-07-07 11:23:36,497 [INFO] httpx โ HTTP Request: POST https://api.anthropic.com/v1/messages "HTTP/1.1 200 OK" +2026-07-07 11:23:36,499 [WARNING] content_generator โ ์ปจํ ์ธ ๋๋ฌด ์งง์(2772์, ์ต์ 3500์) โ ์ฌ์๋ 1/3 +2026-07-07 11:24:43,436 [INFO] httpx โ HTTP Request: POST https://api.anthropic.com/v1/messages "HTTP/1.1 200 OK" +2026-07-07 11:24:43,437 [WARNING] content_generator โ ์ปจํ ์ธ ๋๋ฌด ์งง์(2637์, ์ต์ 3500์) โ ์ฌ์๋ 2/3 +2026-07-07 11:26:00,704 [INFO] httpx โ HTTP Request: POST https://api.anthropic.com/v1/messages "HTTP/1.1 200 OK" +2026-07-07 11:26:00,706 [WARNING] content_generator โ ์ต์ ๋ถ๋ ๋ฏธ๋ฌ(3020์) โ ์ฌ์๋ ์์ง, ํด๋น ๋ถ๋์ผ๋ก ์งํ +2026-07-07 11:26:10,783 [INFO] httpx โ HTTP Request: POST https://api.anthropic.com/v1/messages "HTTP/1.1 200 OK" +2026-07-07 11:26:10,784 [INFO] content_generator โ ํฉํธ์ฒดํฌ: ์ด์ 1๊ฑด ๋ฐ๊ฒฌ, 1๊ฑด ์๋ ์์ ์ ์ฉ +2026-07-07 11:26:10,785 [INFO] content_generator โ ์น์ ๋ณ ์ด๋ฏธ์ง ๊ฒ์: ['์ง์ฅ์ธ ๋ง์ ETF', '์ง์ฅ์ธ ๋ง์ ํํ ๋ง์์ด์๋ ์๊ธ์์ ๋ง์์ด๋ฉด', '์ง์ฅ์ธ ๋ง์ ๊ธฐ๋ํ๋ vs ๋ณด๊ณ ์์ํ๊ธฐ', '์ง์ฅ์ธ ๋ง์ ์ค์ํ๋ ๋ถ๋ถ ์ง์ง ๋๋ฌด'] +2026-07-07 11:26:14,796 [WARNING] image_fetcher โ ์ด๋ฏธ์ง ์์: '์ง์ฅ์ธ ๋ง์ ETF' +2026-07-07 11:26:16,967 [WARNING] image_fetcher โ ์ด๋ฏธ์ง ์์: '์ง์ฅ์ธ ๋ง์ ํํ ๋ง์์ด์๋ ์๊ธ์์ ๋ง์์ด๋ฉด' +2026-07-07 11:26:18,416 [WARNING] image_fetcher โ ์ด๋ฏธ์ง ์์: '์ง์ฅ์ธ ๋ง์ ๊ธฐ๋ํ๋ vs ๋ณด๊ณ ์์ํ๊ธฐ' +2026-07-07 11:26:19,596 [WARNING] image_fetcher โ ์ด๋ฏธ์ง ์์: '์ง์ฅ์ธ ๋ง์ ์ค์ํ๋ ๋ถ๋ถ ์ง์ง ๋๋ฌด' +2026-07-07 11:26:19,596 [WARNING] content_generator โ ๊ธ ๋ด์ฉ๊ณผ ๋ง๋ ์ด๋ฏธ์ง ์์ โ ํ ์คํธ๋ง์ผ๋ก ์ ๋ก๋ ์งํ +2026-07-07 11:26:19,597 [INFO] content_generator โ ํฌ์คํธ ์์ฑ ์๋ฃ: '์ง์ฅ์ธ ์ 30๋ง์ ETF ํฌ์, 1๋ ํด๋ณด๊ณ ์์งํ ์ ์ด๋ด ๋๋ค' (3020์, ์ด๋ฏธ์ง 0๊ฐ) +2026-07-07 11:26:19,597 [INFO] fix_posts โ ์ ์ฝํ ์ธ ์์ฑ ์๋ฃ: 3020์ +2026-07-07 11:26:31,597 [INFO] httpx โ HTTP Request: POST https://api.anthropic.com/v1/messages "HTTP/1.1 200 OK" +2026-07-07 11:26:31,598 [WARNING] adsense_validator โ AdSense ๊ฒ์ฆ JSON ํ์ฑ ์คํจ โ ๊ธฐ๋ณธ ์ฒ๋ฆฌ: +2026-07-07 11:26:31,598 [INFO] fix_posts โ AdSense ๊ฒ์ฆ: UPLOAD (75/100) +2026-07-07 11:26:31,759 [INFO] related_posts โ ๊ด๋ จ ํฌ์คํธ 3๊ฐ ์น์ ์์ฑ +2026-07-07 11:26:32,954 [INFO] blogger_uploader โ ํฌ์คํธ ์ ๋ฐ์ดํธ ์ฑ๊ณต: https://hoguwhat1.blogspot.com/2026/07/30-etf-1_02113911497.html +2026-07-07 11:26:32,954 [INFO] fix_posts โ โ ์ ๋ฐ์ดํธ ์ฑ๊ณต: 2219์ โ 3020์ | https://hoguwhat1.blogspot.com/2026/07/30-etf-1_02113911497.html +2026-07-07 11:26:37,955 [INFO] fix_posts โ +[7/10] '์์ธ ์์ต ์์ง ํ๊ธฐ, ์ธ๊ธ๊น์ง ๋ค ๊ณต๊ฐํฉ๋๋ค (2026๋ ์ง์ ๊ฒฝํ)' (2383์) โ blog3 +2026-07-07 11:26:38,560 [INFO] fix_posts โ Blogger ID: 1565210498724156415 +2026-07-07 11:26:38,560 [INFO] content_generator โ ํฌ์คํธ ์์ฑ ์ค: '์์ธ ์์ต ์์ง ํ๊ธฐ ์ธ๊ธ๊น์ง ๋ค ๊ณต๊ฐ' +2026-07-07 11:27:56,808 [INFO] httpx โ HTTP Request: POST https://api.anthropic.com/v1/messages "HTTP/1.1 200 OK" +2026-07-07 11:27:56,809 [WARNING] content_generator โ ์ปจํ ์ธ ๋๋ฌด ์งง์(3144์, ์ต์ 3500์) โ ์ฌ์๋ 1/3 +2026-07-07 11:29:02,125 [INFO] httpx โ HTTP Request: POST https://api.anthropic.com/v1/messages "HTTP/1.1 200 OK" +2026-07-07 11:29:02,126 [WARNING] content_generator โ ์ปจํ ์ธ ๋๋ฌด ์งง์(2531์, ์ต์ 3500์) โ ์ฌ์๋ 2/3 +2026-07-07 11:30:14,524 [INFO] httpx โ HTTP Request: POST https://api.anthropic.com/v1/messages "HTTP/1.1 200 OK" +2026-07-07 11:30:14,526 [WARNING] content_generator โ ์ต์ ๋ถ๋ ๋ฏธ๋ฌ(2660์) โ ์ฌ์๋ ์์ง, ํด๋น ๋ถ๋์ผ๋ก ์งํ +2026-07-07 11:30:25,020 [INFO] httpx โ HTTP Request: POST https://api.anthropic.com/v1/messages "HTTP/1.1 200 OK" +2026-07-07 11:30:25,021 [INFO] content_generator โ ํฉํธ์ฒดํฌ: ํต๊ณผ +2026-07-07 11:30:25,022 [INFO] content_generator โ ์น์ ๋ณ ์ด๋ฏธ์ง ๊ฒ์: ['์์ธ ์์ต ์ธ๊ธ๊น์ง', '์์ธ ์์ต ์คํผ์คํ ํ๋ ๋์ถ์ด์ ์ ๊ฐ', '์์ธ ์์ต ๊ธฐ๋ํ๋ ์์ต๋ฅ ๋ง์ ์ฒ์', '์์ธ ์์ต ์ธ๊ธ ์ ๊ณ ์๋์๋ ์ ๊ณ ํ '] +2026-07-07 11:30:26,727 [WARNING] image_fetcher โ ์ด๋ฏธ์ง ์์: '์์ธ ์์ต ์ธ๊ธ๊น์ง' +2026-07-07 11:30:28,931 [WARNING] image_fetcher โ ์ด๋ฏธ์ง ์์: '์์ธ ์์ต ์คํผ์คํ ํ๋ ๋์ถ์ด์ ์ ๊ฐ' +2026-07-07 11:30:30,984 [WARNING] image_fetcher โ ์ด๋ฏธ์ง ์์: '์์ธ ์์ต ๊ธฐ๋ํ๋ ์์ต๋ฅ ๋ง์ ์ฒ์' +2026-07-07 11:30:32,833 [WARNING] image_fetcher โ ์ด๋ฏธ์ง ์์: '์์ธ ์์ต ์ธ๊ธ ์ ๊ณ ์๋์๋ ์ ๊ณ ํ ' +2026-07-07 11:30:32,833 [WARNING] content_generator โ ๊ธ ๋ด์ฉ๊ณผ ๋ง๋ ์ด๋ฏธ์ง ์์ โ ํ ์คํธ๋ง์ผ๋ก ์ ๋ก๋ ์งํ +2026-07-07 11:30:32,834 [INFO] content_generator โ ํฌ์คํธ ์์ฑ ์๋ฃ: '์์ธ 3๋ ๊ตด๋ ค๋ณด๋, ์ธ๊ธ๊น์ง ์์งํ๊ฒ ๋ค ๊น๋ณผ๊ฒ์' (2660์, ์ด๋ฏธ์ง 0๊ฐ) +2026-07-07 11:30:32,834 [INFO] fix_posts โ ์ ์ฝํ ์ธ ์์ฑ ์๋ฃ: 2660์ +2026-07-07 11:30:32,834 [WARNING] fix_posts โ ์์ฑ ๋ถ๋ ๋ถ์กฑ (2660์ < 3000์) โ ๊ฑด๋๋ +2026-07-07 11:30:34,834 [INFO] fix_posts โ +[8/10] '๋ ธ์ ์ฒ์ ์์ํ ๋ ์ ๊ฐ ์ ์ง๋ ๋ ์ค์๋ค (2026๋ ์์ง ํ๊ธฐ)' (2386์) โ blog2 +2026-07-07 11:30:35,496 [INFO] fix_posts โ Blogger ID: 3688932482507169330 +2026-07-07 11:30:35,496 [INFO] content_generator โ ํฌ์คํธ ์์ฑ ์ค: '๋ ธ์ ์ฒ์ ์์ํ ๋ ์ ์ผ ๋ง์ด ํ๋ ์ค์๋ด' +2026-07-07 11:31:59,101 [INFO] httpx โ HTTP Request: POST https://api.anthropic.com/v1/messages "HTTP/1.1 200 OK" +2026-07-07 11:31:59,103 [WARNING] content_generator โ ์ปจํ ์ธ ๋๋ฌด ์งง์(2768์, ์ต์ 3500์) โ ์ฌ์๋ 1/3 +2026-07-07 11:33:26,250 [INFO] httpx โ HTTP Request: POST https://api.anthropic.com/v1/messages "HTTP/1.1 200 OK" +2026-07-07 11:33:26,252 [WARNING] content_generator โ ์ปจํ ์ธ ๋๋ฌด ์งง์(2777์, ์ต์ 3500์) โ ์ฌ์๋ 2/3 +2026-07-07 11:34:47,253 [INFO] httpx โ HTTP Request: POST https://api.anthropic.com/v1/messages "HTTP/1.1 200 OK" +2026-07-07 11:34:47,255 [WARNING] content_generator โ ์ต์ ๋ถ๋ ๋ฏธ๋ฌ(2800์) โ ์ฌ์๋ ์์ง, ํด๋น ๋ถ๋์ผ๋ก ์งํ +2026-07-07 11:34:58,229 [INFO] httpx โ HTTP Request: POST https://api.anthropic.com/v1/messages "HTTP/1.1 200 OK" +2026-07-07 11:34:58,229 [INFO] content_generator โ ํฉํธ์ฒดํฌ: ํต๊ณผ +2026-07-07 11:34:58,230 [INFO] content_generator โ ์น์ ๋ณ ์ด๋ฏธ์ง ๊ฒ์: ['๋ ธ์ ์์ํ ์ ์ผ', '๋ ธ์ ์์ํ ํ ํ๋ฆฟ๋ถํฐ ์๋ฒฝํ๊ฒ ํ์ด์ง์ ํ์ด์', '๋ ธ์ ์์ํ ํ์ด์ง๋ฅผ ๋๋ฌด ๋ฐ์ ๋ค์', '๋ ธ์ ์์ํ ๋ชจ๋ฐ์ผ ์ฑ์ PC ์ฌํ'] +2026-07-07 11:34:59,974 [WARNING] image_fetcher โ ์ด๋ฏธ์ง ์์: '๋ ธ์ ์์ํ ์ ์ผ' +2026-07-07 11:35:02,183 [WARNING] image_fetcher โ ์ด๋ฏธ์ง ์์: '๋ ธ์ ์์ํ ํ ํ๋ฆฟ๋ถํฐ ์๋ฒฝํ๊ฒ ํ์ด์ง์ ํ์ด์' +2026-07-07 11:35:04,356 [WARNING] image_fetcher โ ์ด๋ฏธ์ง ์์: '๋ ธ์ ์์ํ ํ์ด์ง๋ฅผ ๋๋ฌด ๋ฐ์ ๋ค์' +2026-07-07 11:35:08,956 [WARNING] image_fetcher โ ์ด๋ฏธ์ง ์์: '๋ ธ์ ์์ํ ๋ชจ๋ฐ์ผ ์ฑ์ PC ์ฌํ' +2026-07-07 11:35:08,956 [WARNING] content_generator โ ๊ธ ๋ด์ฉ๊ณผ ๋ง๋ ์ด๋ฏธ์ง ์์ โ ํ ์คํธ๋ง์ผ๋ก ์ ๋ก๋ ์งํ +2026-07-07 11:35:08,956 [INFO] content_generator โ ํฌ์คํธ ์์ฑ ์๋ฃ: '๋ ธ์ ์ฒ์ ์์ํ ๋ ์ ์ผ ๋ง์ด ํ๋ ์ค์, ์ ๋ ๊ทธ๋ฌ์ด์ (2026)' (2800์, ์ด๋ฏธ์ง 0๊ฐ) +2026-07-07 11:35:08,956 [INFO] fix_posts โ ์ ์ฝํ ์ธ ์์ฑ ์๋ฃ: 2800์ +2026-07-07 11:35:08,956 [WARNING] fix_posts โ ์์ฑ ๋ถ๋ ๋ถ์กฑ (2800์ < 3000์) โ ๊ฑด๋๋ +2026-07-07 11:35:10,956 [INFO] fix_posts โ +[9/10] 'ํฌ์ค์ฅ 3๊ฐ์ ๋ฑ๋ก ํ ์ค์ ๋ณํ, ์์งํ๊ฒ ๊ณต๊ฐํฉ๋๋ค (2026๋ )' (2495์) โ default +2026-07-07 11:35:10,957 [INFO] fix_posts โ blogId='default' โ blog1 ํด๋ฐฑ ์ ์ฉ +2026-07-07 11:35:11,672 [INFO] fix_posts โ Blogger ID: 6553630515121459849 +2026-07-07 11:35:11,672 [INFO] content_generator โ ํฌ์คํธ ์์ฑ ์ค: 'ํฌ์ค์ฅ 3๊ฐ์ ๋ฑ๋ก ํ ์ค์ ๋ณํ ํ์ค ๊ณต๊ฐ' +2026-07-07 11:36:28,025 [INFO] httpx โ HTTP Request: POST https://api.anthropic.com/v1/messages "HTTP/1.1 200 OK" +2026-07-07 11:36:28,041 [WARNING] content_generator โ JSON ์๋ ๋ณต๊ตฌ ํ ํ์ฑ ์ฑ๊ณต +2026-07-07 11:36:28,042 [WARNING] content_generator โ ์ปจํ ์ธ ๋๋ฌด ์งง์(2781์, ์ต์ 3500์) โ ์ฌ์๋ 1/3 +2026-07-07 11:37:44,900 [INFO] httpx โ HTTP Request: POST https://api.anthropic.com/v1/messages "HTTP/1.1 200 OK" +2026-07-07 11:37:44,902 [WARNING] content_generator โ ์ปจํ ์ธ ๋๋ฌด ์งง์(2654์, ์ต์ 3500์) โ ์ฌ์๋ 2/3 +2026-07-07 11:39:02,144 [INFO] httpx โ HTTP Request: POST https://api.anthropic.com/v1/messages "HTTP/1.1 200 OK" +2026-07-07 11:39:02,146 [WARNING] content_generator โ ์ต์ ๋ถ๋ ๋ฏธ๋ฌ(3040์) โ ์ฌ์๋ ์์ง, ํด๋น ๋ถ๋์ผ๋ก ์งํ +2026-07-07 11:39:08,168 [INFO] httpx โ HTTP Request: POST https://api.anthropic.com/v1/messages "HTTP/1.1 200 OK" +2026-07-07 11:39:08,168 [INFO] content_generator โ ํฉํธ์ฒดํฌ: ์ด์ 3๊ฑด ๋ฐ๊ฒฌ, 3๊ฑด ์๋ ์์ ์ ์ฉ +2026-07-07 11:39:08,169 [INFO] content_generator โ ์น์ ๋ณ ์ด๋ฏธ์ง ๊ฒ์: ['ํฌ์ค์ฅ ๊ฐ์ ๋ฑ๋ก', 'ํฌ์ค์ฅ ๊ฐ์ ๋ฑ๋กํ ๊ณ์ฐ๊ธฐ ์ฒ์์ ๋ฑ๋ก์ด', 'ํฌ์ค์ฅ ๊ฐ์ ์์งํ ์๋ฌด PT ๋ฑ๋กํ๊ณ ', 'ํฌ์ค์ฅ ๊ฐ์ ์ฌ๊ธฐ์๋ถํฐ ๋ญ๊ฐ PT ์ฐจ๋ถํฐ๋'] +2026-07-07 11:39:09,672 [WARNING] image_fetcher โ ์ด๋ฏธ์ง ์์: 'ํฌ์ค์ฅ ๊ฐ์ ๋ฑ๋ก' +2026-07-07 11:39:11,684 [WARNING] image_fetcher โ ์ด๋ฏธ์ง ์์: 'ํฌ์ค์ฅ ๊ฐ์ ๋ฑ๋กํ ๊ณ์ฐ๊ธฐ ์ฒ์์ ๋ฑ๋ก์ด' +2026-07-07 11:39:15,447 [WARNING] image_fetcher โ ์ด๋ฏธ์ง ์์: 'ํฌ์ค์ฅ ๊ฐ์ ์์งํ ์๋ฌด PT ๋ฑ๋กํ๊ณ ' +2026-07-07 11:39:16,635 [WARNING] image_fetcher โ ์ด๋ฏธ์ง ์์: 'ํฌ์ค์ฅ ๊ฐ์ ์ฌ๊ธฐ์๋ถํฐ ๋ญ๊ฐ PT ์ฐจ๋ถํฐ๋' +2026-07-07 11:39:16,635 [WARNING] content_generator โ ๊ธ ๋ด์ฉ๊ณผ ๋ง๋ ์ด๋ฏธ์ง ์์ โ ํ ์คํธ๋ง์ผ๋ก ์ ๋ก๋ ์งํ +2026-07-07 11:39:16,636 [INFO] content_generator โ ํฌ์คํธ ์์ฑ ์๋ฃ: 'ํฌ์ค์ฅ 3๊ฐ์ ๋ฑ๋กํ๊ณ ๋์ ์ง์ง ๋ฌ๋ผ์ง ๊ฒ๋ค (2026๋ ํ๊ธฐ)' (3040์, ์ด๋ฏธ์ง 0๊ฐ) +2026-07-07 11:39:16,636 [INFO] fix_posts โ ์ ์ฝํ ์ธ ์์ฑ ์๋ฃ: 3040์ +2026-07-07 11:39:28,285 [INFO] httpx โ HTTP Request: POST https://api.anthropic.com/v1/messages "HTTP/1.1 200 OK" +2026-07-07 11:39:28,286 [WARNING] adsense_validator โ AdSense ๊ฒ์ฆ JSON ํ์ฑ ์คํจ โ ๊ธฐ๋ณธ ์ฒ๋ฆฌ: +2026-07-07 11:39:28,286 [INFO] fix_posts โ AdSense ๊ฒ์ฆ: UPLOAD (75/100) +2026-07-07 11:39:28,449 [INFO] related_posts โ ๊ด๋ จ ํฌ์คํธ 3๊ฐ ์น์ ์์ฑ +2026-07-07 11:39:29,695 [INFO] blogger_uploader โ ํฌ์คํธ ์ ๋ฐ์ดํธ ์ฑ๊ณต: https://hoguwhat1.blogspot.com/2026/06/3-2026.html +2026-07-07 11:39:29,695 [INFO] fix_posts โ โ ์ ๋ฐ์ดํธ ์ฑ๊ณต: 2495์ โ 3040์ | https://hoguwhat1.blogspot.com/2026/06/3-2026.html +2026-07-07 11:39:34,696 [INFO] fix_posts โ +[10/10] 'AI ํด๋ก ๋ถ์ 3๊ฐ์ ํด๋ดค๋๋ฐ, ์์ต ํ์ค ์์งํ๊ฒ ๊ณต๊ฐํฉ๋๋ค (2026)' (2515์) โ default +2026-07-07 11:39:34,696 [INFO] fix_posts โ blogId='default' โ blog1 ํด๋ฐฑ ์ ์ฉ +2026-07-07 11:39:35,447 [INFO] fix_posts โ Blogger ID: 3766055496819334936 +2026-07-07 11:39:35,448 [INFO] content_generator โ ํฌ์คํธ ์์ฑ ์ค: 'AI ํด๋ก ๋ถ์ 3๊ฐ์ ์์ต ํ์ค ๊ณต๊ฐ' +2026-07-07 11:40:52,309 [INFO] httpx โ HTTP Request: POST https://api.anthropic.com/v1/messages "HTTP/1.1 200 OK" +2026-07-07 11:40:52,311 [WARNING] content_generator โ ์ปจํ ์ธ ๋๋ฌด ์งง์(2816์, ์ต์ 3500์) โ ์ฌ์๋ 1/3 +2026-07-07 11:42:15,423 [INFO] httpx โ HTTP Request: POST https://api.anthropic.com/v1/messages "HTTP/1.1 200 OK" +2026-07-07 11:42:15,424 [WARNING] content_generator โ ์ปจํ ์ธ ๋๋ฌด ์งง์(3064์, ์ต์ 3500์) โ ์ฌ์๋ 2/3 +2026-07-07 11:43:31,010 [INFO] httpx โ HTTP Request: POST https://api.anthropic.com/v1/messages "HTTP/1.1 200 OK" +2026-07-07 11:43:31,012 [WARNING] content_generator โ ์ต์ ๋ถ๋ ๋ฏธ๋ฌ(2705์) โ ์ฌ์๋ ์์ง, ํด๋น ๋ถ๋์ผ๋ก ์งํ +2026-07-07 11:43:42,136 [INFO] httpx โ HTTP Request: POST https://api.anthropic.com/v1/messages "HTTP/1.1 200 OK" +2026-07-07 11:43:42,137 [WARNING] content_generator โ ํฉํธ์ฒดํฌ ์คํจ (๊ฒ์๋ ๊ณ์ ์งํ): Expecting ',' delimiter: line 1 column 171 (char 170) +2026-07-07 11:43:42,137 [INFO] content_generator โ ์น์ ๋ณ ์ด๋ฏธ์ง ๊ฒ์: ['AI ํด๋ก ๋ถ์ ', 'AI ํด๋ก ๋ถ์ ์ GPT ๋ง๋๋', 'AI ํด๋ก ์์งํ ์๋ GPT ๋์', 'AI ํด๋ก ๋์งธ ๋ฐฉํฅ์ GPT'] +2026-07-07 11:43:45,931 [WARNING] image_fetcher โ ์ด๋ฏธ์ง ์์: 'AI ํด๋ก ๋ถ์ ' +2026-07-07 11:43:47,667 [WARNING] image_fetcher โ ์ด๋ฏธ์ง ์์: 'AI ํด๋ก ๋ถ์ ์ GPT ๋ง๋๋' +2026-07-07 11:43:49,322 [WARNING] image_fetcher โ ์ด๋ฏธ์ง ์์: 'AI ํด๋ก ์์งํ ์๋ GPT ๋์' +2026-07-07 11:43:50,989 [WARNING] image_fetcher โ ์ด๋ฏธ์ง ์์: 'AI ํด๋ก ๋์งธ ๋ฐฉํฅ์ GPT' +2026-07-07 11:43:50,989 [WARNING] content_generator โ ๊ธ ๋ด์ฉ๊ณผ ๋ง๋ ์ด๋ฏธ์ง ์์ โ ํ ์คํธ๋ง์ผ๋ก ์ ๋ก๋ ์งํ +2026-07-07 11:43:50,990 [INFO] content_generator โ ํฌ์คํธ ์์ฑ ์๋ฃ: 'AI ํด๋ก ๋ถ์ 3๊ฐ์ ํด๋ดค์ต๋๋ค, 2026๋ ์์ต ์์ง ๊ณต๊ฐ' (2705์, ์ด๋ฏธ์ง 0๊ฐ) +2026-07-07 11:43:50,990 [INFO] fix_posts โ ์ ์ฝํ ์ธ ์์ฑ ์๋ฃ: 2705์ +2026-07-07 11:43:50,990 [WARNING] fix_posts โ ์์ฑ ๋ถ๋ ๋ถ์กฑ (2705์ < 3000์) โ ๊ฑด๋๋ +2026-07-07 11:43:52,990 [INFO] fix_posts โ +============================================================ +2026-07-07 11:43:52,991 [INFO] fix_posts โ ์๋ฃ: ์ฑ๊ณต 2 / ์คํจ 3 / ๊ฑด๋๋ 5 / ์ ์ฒด 10 +2026-07-07 11:43:52,991 [INFO] fix_posts โ ๋์ ์์ ์๋ฃ: 2๊ฐ / ์ ์ฒด ๋ฏธ๋ฌ 84๊ฐ +2026-07-07 11:43:52,991 [INFO] fix_posts โ ๋จ์ ๋ฏธ์์ : 82๊ฐ +2026-07-07 14:44:08,443 [INFO] fix_posts โ AdSense ๋ฏธ๋ฌ ๊ฒ์ ํฌ์คํธ: ์ ์ฒด 84๊ฐ / ๋ฏธ์์ 82๊ฐ +2026-07-07 14:44:08,443 [INFO] fix_posts โ ์ด๋ฒ ๋ฐฐ์น: 10๊ฐ (offset=0, batch_size=10) +2026-07-07 14:44:08,443 [INFO] fix_posts โ +[1/10] '2026๋ ์ฌํ ํฌ ๋ฐฉ๋ฒ TOP 5 โ ๋ชฐ๋๋ ์์ต ๋น๋ฐ ์๋ฒฝ ์ ๋ฆฌ' (0์) โ default +2026-07-07 14:44:08,443 [INFO] fix_posts โ blogId='default' โ blog1 ํด๋ฐฑ ์ ์ฉ +2026-07-07 14:44:08,827 [WARNING] blogger_uploader โ get_post_id_by_url [404] path=/2026/06/2026-top-5.html: { + "error": { + "code": 404, + "message": "Requested entity was not found.", + "errors": [ + { + "message": "Requested entity was not found.", + "domain": "global", + "rea +2026-07-07 14:44:08,828 [WARNING] fix_posts โ Blogger ํฌ์คํธ ID ์กฐํ ์คํจ: https://hoguwhat1.blogspot.com/2026/06/2026-top-5.html +2026-07-07 14:44:10,828 [INFO] fix_posts โ +[2/10] '2026 ํ๋ฐ๊ธฐ ์ํํธ ๋ถ์ ์ผ์ ์ด์ ๋ฆฌ 5๊ฐ์ง ํต์ฌ ์ ๋ต' (508์) โ default +2026-07-07 14:44:10,828 [INFO] fix_posts โ blogId='default' โ blog1 ํด๋ฐฑ ์ ์ฉ +2026-07-07 14:44:11,206 [INFO] fix_posts โ Blogger ID: 2621429606006688968 +2026-07-07 14:44:11,207 [INFO] content_generator โ ํฌ์คํธ ์์ฑ ์ค: '2026 ํ๋ฐ๊ธฐ ์ํํธ ๋ถ์ ์ผ์ ์ด์ ๋ฆฌ' +2026-07-07 14:44:11,238 [ERROR] content_generator โ ํฌ์คํธ ์์ฑ ์ค๋ฅ: Streaming is required for operations that may take longer than 10 minutes. See https://github.com/anthropics/anthropic-sdk-python#long-requests for more details +Traceback (most recent call last): + File "/home/runner/work/cli/cli/blog-automation/content_generator.py", line 1394, in generate_post + raw = claude_generate( + ^^^^^^^^^^^^^^^^ + File "/home/runner/work/cli/cli/blog-automation/config.py", line 133, in claude_generate + message = client.messages.create(messages=messages, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages/anthropic/_utils/_utils.py", line 294, in wrapper + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages/anthropic/resources/messages/messages.py", line 1031, in create + timeout = self._client._calculate_nonstreaming_timeout( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages/anthropic/_base_client.py", line 775, in _calculate_nonstreaming_timeout + raise ValueError( +ValueError: Streaming is required for operations that may take longer than 10 minutes. See https://github.com/anthropics/anthropic-sdk-python#long-requests for more details +2026-07-07 14:44:11,240 [WARNING] fix_posts โ ์ฝํ ์ธ ์์ฑ ์คํจ +2026-07-07 14:44:14,241 [INFO] fix_posts โ +[3/10] '2026 ๊ฐ์ธ์ข ํฉ์์ฐ๊ด๋ฆฌ๊ณ์ข ์ ์ธ ๋ฐฉ๋ฒ ์๋ฒฝ ์ ๋ฆฌ TOP 5' (619์) โ default +2026-07-07 14:44:14,241 [INFO] fix_posts โ blogId='default' โ blog1 ํด๋ฐฑ ์ ์ฉ +2026-07-07 14:44:14,584 [INFO] fix_posts โ Blogger ID: 3827951682702127447 +2026-07-07 14:44:14,585 [INFO] content_generator โ ํฌ์คํธ ์์ฑ ์ค: '2026 ๊ฐ์ธ์ข ํฉ์์ฐ๊ด๋ฆฌ๊ณ์ข ์ ์ธ ๋ฐฉ๋ฒ' +2026-07-07 14:44:14,585 [ERROR] content_generator โ ํฌ์คํธ ์์ฑ ์ค๋ฅ: Streaming is required for operations that may take longer than 10 minutes. See https://github.com/anthropics/anthropic-sdk-python#long-requests for more details +Traceback (most recent call last): + File "/home/runner/work/cli/cli/blog-automation/content_generator.py", line 1394, in generate_post + raw = claude_generate( + ^^^^^^^^^^^^^^^^ + File "/home/runner/work/cli/cli/blog-automation/config.py", line 133, in claude_generate + message = client.messages.create(messages=messages, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages/anthropic/_utils/_utils.py", line 294, in wrapper + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages/anthropic/resources/messages/messages.py", line 1031, in create + timeout = self._client._calculate_nonstreaming_timeout( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages/anthropic/_base_client.py", line 775, in _calculate_nonstreaming_timeout + raise ValueError( +ValueError: Streaming is required for operations that may take longer than 10 minutes. See https://github.com/anthropics/anthropic-sdk-python#long-requests for more details +2026-07-07 14:44:14,585 [WARNING] fix_posts โ ์ฝํ ์ธ ์์ฑ ์คํจ +2026-07-07 14:44:17,586 [INFO] fix_posts โ +[4/10] '์ฃผ์ ์ฒ์ ์์ํ ๋ ์ ์ง๋ ๋ 5๊ฐ์ง ์ค์, ์์งํ ํธ์ด๋์ต๋๋ค (2026๋ )' (1743์) โ blog1 +2026-07-07 14:44:17,891 [WARNING] blogger_uploader โ get_post_id_by_url [404] path=/2026/07/5-2026.html: { + "error": { + "code": 404, + "message": "Requested entity was not found.", + "errors": [ + { + "message": "Requested entity was not found.", + "domain": "global", + "rea +2026-07-07 14:44:17,892 [WARNING] fix_posts โ Blogger ํฌ์คํธ ID ์กฐํ ์คํจ: https://hoguwhat1.blogspot.com/2026/07/5-2026.html +2026-07-07 14:44:19,892 [INFO] fix_posts โ +[5/10] '์ฟ ํกํํธ๋์ค 3๊ฐ์ ์ง์ ํด๋ดค๋๋ ํ์ค ๊ณต๊ฐ (2026๋ ์์ง ํ๊ธฐ)' (1791์) โ blog1 +2026-07-07 14:44:20,216 [WARNING] blogger_uploader โ get_post_id_by_url [404] path=/2026/07/3-2026_01803084361.html: { + "error": { + "code": 404, + "message": "Requested entity was not found.", + "errors": [ + { + "message": "Requested entity was not found.", + "domain": "global", + "rea +2026-07-07 14:44:20,217 [WARNING] fix_posts โ Blogger ํฌ์คํธ ID ์กฐํ ์คํจ: https://hoguwhat1.blogspot.com/2026/07/3-2026_01803084361.html +2026-07-07 14:44:22,218 [INFO] fix_posts โ +[6/10] '์์ธ ์์ต ์์ง ํ๊ธฐ, ์ธ๊ธ๊น์ง ๋ค ๊ณต๊ฐํฉ๋๋ค (2026๋ ์ง์ ๊ฒฝํ)' (2383์) โ blog3 +2026-07-07 14:44:22,826 [INFO] fix_posts โ Blogger ID: 1565210498724156415 +2026-07-07 14:44:22,826 [INFO] content_generator โ ํฌ์คํธ ์์ฑ ์ค: '์์ธ ์์ต ์์ง ํ๊ธฐ ์ธ๊ธ๊น์ง ๋ค ๊ณต๊ฐ' +2026-07-07 14:44:22,826 [ERROR] content_generator โ ํฌ์คํธ ์์ฑ ์ค๋ฅ: Streaming is required for operations that may take longer than 10 minutes. See https://github.com/anthropics/anthropic-sdk-python#long-requests for more details +Traceback (most recent call last): + File "/home/runner/work/cli/cli/blog-automation/content_generator.py", line 1394, in generate_post + raw = claude_generate( + ^^^^^^^^^^^^^^^^ + File "/home/runner/work/cli/cli/blog-automation/config.py", line 133, in claude_generate + message = client.messages.create(messages=messages, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages/anthropic/_utils/_utils.py", line 294, in wrapper + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages/anthropic/resources/messages/messages.py", line 1031, in create + timeout = self._client._calculate_nonstreaming_timeout( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages/anthropic/_base_client.py", line 775, in _calculate_nonstreaming_timeout + raise ValueError( +ValueError: Streaming is required for operations that may take longer than 10 minutes. See https://github.com/anthropics/anthropic-sdk-python#long-requests for more details +2026-07-07 14:44:22,827 [WARNING] fix_posts โ ์ฝํ ์ธ ์์ฑ ์คํจ +2026-07-07 14:44:25,827 [INFO] fix_posts โ +[7/10] '๋ ธ์ ์ฒ์ ์์ํ ๋ ์ ๊ฐ ์ ์ง๋ ๋ ์ค์๋ค (2026๋ ์์ง ํ๊ธฐ)' (2386์) โ blog2 +2026-07-07 14:44:26,361 [INFO] fix_posts โ Blogger ID: 3688932482507169330 +2026-07-07 14:44:26,361 [INFO] content_generator โ ํฌ์คํธ ์์ฑ ์ค: '๋ ธ์ ์ฒ์ ์์ํ ๋ ์ ์ผ ๋ง์ด ํ๋ ์ค์๋ด' +2026-07-07 14:44:26,361 [ERROR] content_generator โ ํฌ์คํธ ์์ฑ ์ค๋ฅ: Streaming is required for operations that may take longer than 10 minutes. See https://github.com/anthropics/anthropic-sdk-python#long-requests for more details +Traceback (most recent call last): + File "/home/runner/work/cli/cli/blog-automation/content_generator.py", line 1394, in generate_post + raw = claude_generate( + ^^^^^^^^^^^^^^^^ + File "/home/runner/work/cli/cli/blog-automation/config.py", line 133, in claude_generate + message = client.messages.create(messages=messages, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages/anthropic/_utils/_utils.py", line 294, in wrapper + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages/anthropic/resources/messages/messages.py", line 1031, in create + timeout = self._client._calculate_nonstreaming_timeout( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages/anthropic/_base_client.py", line 775, in _calculate_nonstreaming_timeout + raise ValueError( +ValueError: Streaming is required for operations that may take longer than 10 minutes. See https://github.com/anthropics/anthropic-sdk-python#long-requests for more details +2026-07-07 14:44:26,362 [WARNING] fix_posts โ ์ฝํ ์ธ ์์ฑ ์คํจ +2026-07-07 14:44:29,362 [INFO] fix_posts โ +[8/10] 'AI ํด๋ก ๋ถ์ 3๊ฐ์ ํด๋ดค๋๋ฐ, ์์ต ํ์ค ์์งํ๊ฒ ๊ณต๊ฐํฉ๋๋ค (2026)' (2515์) โ default +2026-07-07 14:44:29,362 [INFO] fix_posts โ blogId='default' โ blog1 ํด๋ฐฑ ์ ์ฉ +2026-07-07 14:44:29,677 [INFO] fix_posts โ Blogger ID: 3766055496819334936 +2026-07-07 14:44:29,677 [INFO] content_generator โ ํฌ์คํธ ์์ฑ ์ค: 'AI ํด๋ก ๋ถ์ 3๊ฐ์ ์์ต ํ์ค ๊ณต๊ฐ' +2026-07-07 14:44:29,677 [ERROR] content_generator โ ํฌ์คํธ ์์ฑ ์ค๋ฅ: Streaming is required for operations that may take longer than 10 minutes. See https://github.com/anthropics/anthropic-sdk-python#long-requests for more details +Traceback (most recent call last): + File "/home/runner/work/cli/cli/blog-automation/content_generator.py", line 1394, in generate_post + raw = claude_generate( + ^^^^^^^^^^^^^^^^ + File "/home/runner/work/cli/cli/blog-automation/config.py", line 133, in claude_generate + message = client.messages.create(messages=messages, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages/anthropic/_utils/_utils.py", line 294, in wrapper + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages/anthropic/resources/messages/messages.py", line 1031, in create + timeout = self._client._calculate_nonstreaming_timeout( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages/anthropic/_base_client.py", line 775, in _calculate_nonstreaming_timeout + raise ValueError( +ValueError: Streaming is required for operations that may take longer than 10 minutes. See https://github.com/anthropics/anthropic-sdk-python#long-requests for more details +2026-07-07 14:44:29,678 [WARNING] fix_posts โ ์ฝํ ์ธ ์์ฑ ์คํจ +2026-07-07 14:44:32,678 [INFO] fix_posts โ +[9/10] '์ผ๊ตฌ์ฅ ์ง๊ด ๋ค๋๋ฉด์ ๋ฐฐ์ด ํญ์ผ ๋๋น ๋ฐฉ๋ฒ, 2026๋ ์ ์ด๋ ๊ฒ ํฉ๋๋ค' (2602์) โ blog2 +2026-07-07 14:44:33,142 [INFO] fix_posts โ Blogger ID: 7771976896280386951 +2026-07-07 14:44:33,143 [INFO] content_generator โ ํฌ์คํธ ์์ฑ ์ค: 'ํญ์ผ ๋๋น ๋ฐฉ๋ฒ' +2026-07-07 14:44:33,143 [ERROR] content_generator โ ํฌ์คํธ ์์ฑ ์ค๋ฅ: Streaming is required for operations that may take longer than 10 minutes. See https://github.com/anthropics/anthropic-sdk-python#long-requests for more details +Traceback (most recent call last): + File "/home/runner/work/cli/cli/blog-automation/content_generator.py", line 1394, in generate_post + raw = claude_generate( + ^^^^^^^^^^^^^^^^ + File "/home/runner/work/cli/cli/blog-automation/config.py", line 133, in claude_generate + message = client.messages.create(messages=messages, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages/anthropic/_utils/_utils.py", line 294, in wrapper + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages/anthropic/resources/messages/messages.py", line 1031, in create + timeout = self._client._calculate_nonstreaming_timeout( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages/anthropic/_base_client.py", line 775, in _calculate_nonstreaming_timeout + raise ValueError( +ValueError: Streaming is required for operations that may take longer than 10 minutes. See https://github.com/anthropics/anthropic-sdk-python#long-requests for more details +2026-07-07 14:44:33,143 [WARNING] fix_posts โ ์ฝํ ์ธ ์์ฑ ์คํจ +2026-07-07 14:44:36,143 [INFO] fix_posts โ +[10/10] '๋ฌด์ธ๋ ์บ ํ ์ง์ ๊ฐ๋ดค๋๋ ์๋ฌด๋ ๋ง ์ ํด์ค ๊ฒ๋ค (2026 ์์ง ํ๊ธฐ)' (2725์) โ blog1 +2026-07-07 14:44:36,471 [INFO] fix_posts โ Blogger ID: 5517716912008753584 +2026-07-07 14:44:36,471 [INFO] content_generator โ ํฌ์คํธ ์์ฑ ์ค: '๋ฌด์ธ๋ ์บ ํ ์ง์ ๊ฐ๋ดค๋๋ ์๋ฌด๋ ๋ง ์ ํด์ค ๊ฒ๋ค' +2026-07-07 14:44:36,471 [ERROR] content_generator โ ํฌ์คํธ ์์ฑ ์ค๋ฅ: Streaming is required for operations that may take longer than 10 minutes. See https://github.com/anthropics/anthropic-sdk-python#long-requests for more details +Traceback (most recent call last): + File "/home/runner/work/cli/cli/blog-automation/content_generator.py", line 1394, in generate_post + raw = claude_generate( + ^^^^^^^^^^^^^^^^ + File "/home/runner/work/cli/cli/blog-automation/config.py", line 133, in claude_generate + message = client.messages.create(messages=messages, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages/anthropic/_utils/_utils.py", line 294, in wrapper + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages/anthropic/resources/messages/messages.py", line 1031, in create + timeout = self._client._calculate_nonstreaming_timeout( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages/anthropic/_base_client.py", line 775, in _calculate_nonstreaming_timeout + raise ValueError( +ValueError: Streaming is required for operations that may take longer than 10 minutes. See https://github.com/anthropics/anthropic-sdk-python#long-requests for more details +2026-07-07 14:44:36,472 [WARNING] fix_posts โ ์ฝํ ์ธ ์์ฑ ์คํจ +2026-07-07 14:44:39,472 [INFO] fix_posts โ +============================================================ +2026-07-07 14:44:39,472 [INFO] fix_posts โ ์๋ฃ: ์ฑ๊ณต 0 / ์คํจ 10 / ๊ฑด๋๋ 0 / ์ ์ฒด 10 +2026-07-07 14:44:39,472 [INFO] fix_posts โ ๋์ ์์ ์๋ฃ: 2๊ฐ / ์ ์ฒด ๋ฏธ๋ฌ 84๊ฐ +2026-07-07 14:44:39,472 [INFO] fix_posts โ ๋จ์ ๋ฏธ์์ : 82๊ฐ diff --git a/blog-automation/logs/lifecycle_history.json b/blog-automation/logs/lifecycle_history.json new file mode 100644 index 0000000000000..f22bf3db4e830 --- /dev/null +++ b/blog-automation/logs/lifecycle_history.json @@ -0,0 +1,1509 @@ +{ + "2026-07-13_์์ด์ปจ์ ๊ธฐ์ธ์ ์ฝ_62c05c16": [ + { + "date": "2026-07-13", + "title": "์์ด์ปจ ์ ๊ธฐ์ธ ์ ์ฝ๋ฒ, ํ์ ์๋์ง์บ์๋ฐฑ ์ ์ฒญ ํ๊ธฐ", + "status": "์ ๊ท", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-07-13_์์ก์ฌํ ํฌํ๋์์ํ๋๋ฐฉ๋ฒ2026_b0cd3738": [ + { + "date": "2026-07-13", + "title": "์์ก ์ฌํ ํฌ ํ๋ ์์ํ๋ ๋ฐฉ๋ฒ 2026, ์ 10๋ง์ ํ๊ธฐ", + "status": "์ ๊ท", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-07-12_SKํ์ด๋์ค์กฐ๋ฌ์ก๊ตญ๋ดํ๋ฆฐ๋ค์ธํ์์ฅ_f6db1c33": [ + { + "date": "2026-07-13", + "title": "SKํ์ด๋์ค ์กฐ๋ฌ์ก ๊ตญ๋ด ์ ์ ๊ณผ ์๋ฌ๋ฌ ํ์จ ํ๋ฆ ์ด์ ๋ฆฌ", + "status": "์ ๊ท", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-07-12_์ฌ๋ฆ์บ ํ์ถ์ฒ์ง์ ์ฐธ๊ฐ์์ง๋น๊ต_d4a8a9cd": [ + { + "date": "2026-07-13", + "title": "2026๋ ์ฌ๋ฆ ์ฒญ์๋ ๊ธ์ต๊ต์ก์บ ํ 3๊ณณ ์ฐธ๊ฐ ๋น๊ต", + "status": "์ ๊ท", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-07-12_2026์ฌ๋ฆ๋ ์์ถ์ฒ๋์๋ฆฌ์คํธํ๊ธฐ_7dd78845": [ + { + "date": "2026-07-13", + "title": "2026 ์ฌ๋ฆ ๋ ์ ์ถ์ฒ ๋์ ๋ฆฌ์คํธ, ์ง์ ์ฝ๊ณ ์ด ์์ง ํ๊ธฐ", + "status": "์ ๊ท", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-07-12_์ฅ๋ง๊ฑด๊ฐ๊ด๋ฆฌ_0778c52c": [ + { + "date": "2026-07-13", + "title": "์ฅ๋ง์ฒ ๊ฑด๊ฐ ๊ด๋ฆฌ, ์ค๋ด์ฌํยทํํธยท์ต๋๊ด๋ฆฌ ์ง์ ํด๋ณธ ํ๊ธฐ", + "status": "์ ๊ท", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-07-12_์ฌ๋ฆ์บ ํ์ถ์ฒ์ง์ ์ฐธ๊ฐ์์ง๋น๊ต_67203482": [ + { + "date": "2026-07-13", + "title": "์ฌ๋ฆ ์บ ํ ์ถ์ฒ, 4๊ณณ ์ง์ ๋ณด๋ด๊ณ ๋น๊ตํ ์์ง ํ๊ธฐ", + "status": "์ ๊ท", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-07-12_์ฌ๋ฆ๋ฐฉํ์๋ ๊ต์กํ๋ก๊ทธ๋จ์ถ์ฒ๋ฐฉ๋ฒ_9aa8d512": [ + { + "date": "2026-07-13", + "title": "์ฌ๋ฆ๋ฐฉํ ์๋ ๊ต์ก๋น, ์ ๋ถ ์ง์์ผ๋ก ์ค์ด๋ ๋ฐฉ๋ฒ(2026)", + "status": "์ ๊ท", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-07-12_์ฌ๋ฆ์บ ํ์ถ์ฒ์ง์ ์ฐธ๊ฐ์์ง๋น๊ต_9666d566": [ + { + "date": "2026-07-13", + "title": "์ฌ๋ฆ ์บ ํ ์ถ์ฒ, ๋ ๊ณณ ์ง์ ์ฐธ๊ฐ ํ ์์ง ๋น๊ต (2026๋ 7์)", + "status": "์ ๊ท", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-07-12_2026์ฌ๋ฆ๋ฐฉํ์๋ ๊ต์กํ๊ธฐ์ด์ ๋ฆฌ_0fce0d1b": [ + { + "date": "2026-07-13", + "title": "2026 ์ฌ๋ฆ๋ฐฉํ ์๋ ๊ต์ก ํ๊ธฐ ์ด์ ๋ฆฌ, ๋น์ฉ ๊ณต๊ฐ", + "status": "์ ๊ท", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-07-11_2026์ฌ๋ฆํผ์์ง์ถ์ฒ๊ฒฝ๋จ๋ฐ๋ค๊ณ๊ณก๋ฒ ์คํธ_add5f623": [ + { + "date": "2026-07-13", + "title": "2026 ์ฌ๋ฆ ๊ฒฝ๋จ ๋ฐ๋คยท๊ณ๊ณก ํผ์์ง ๋ฒ ์คํธ ์ฝ์ค ํ๊ธฐ", + "status": "์ ๊ท", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-07-11_์ฅ๋ง๊ฑด๊ฐ๊ด๋ฆฌ_001b044d": [ + { + "date": "2026-07-13", + "title": "์ฅ๋ง์ฒ ๊ฑด๊ฐ ๊ด๋ฆฌ ์๋ฒฝ ๊ฐ์ด๋, 2026๋ ์ฌ๋ฆ ์ค์ฒ๋ฒ", + "status": "์ ๊ท", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-07-11_๊ฐํ์ ๋จ์_f4f7e1f1": [ + { + "date": "2026-07-13", + "title": "๊ฐํ์ ๋จ์์ฒ๋ผ ์๋น๋ ์ฌ์ด๊ฐ๋ ๋ฌด์ง์ถ ์ฑ๋ฆฐ์ง", + "status": "์ ๊ท", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-07-11_๊ฐํ์ ๋จ์_dc682c6d": [ + { + "date": "2026-07-13", + "title": "๊ฐํ์ ๋จ์ 6์ฃผ ์ง์ ํด๋ณธ ์์ง ํ๊ธฐ, 16:8 ์ฒด์ค ๋ณํ ๊ณต๊ฐ", + "status": "์ ๊ท", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-07-11_๊ฐํ์ ๋จ์_ebf17c1f": [ + { + "date": "2026-07-13", + "title": "๊ฐํ์ ๋จ์ 6๊ฐ์ ์ง์ ํด๋ณธ ํ๊ธฐ, 2026๋ ํ์ค ์ ๊ฒ", + "status": "์ ๊ท", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-07-11_์ฃผํ๋ด๋ณด๋์ถ๊ธ๋ฆฌ์ต์ ์ํ2026์ง์ ๋ฐํ_0fbcb922": [ + { + "date": "2026-07-13", + "title": "์ฃผํ๋ด๋ณด๋์ถ ๊ธ๋ฆฌ ์ต์ ์ํ 2026, 5๊ณณ ์ง์ ๋ฐํ ๋น๊ต ํ๊ธฐ", + "status": "์ ๊ท", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-07-11_์ฌ๋ฆ๋๋ฐฉ๊ฟํ_dc756272": [ + { + "date": "2026-07-13", + "title": "์ฌ๋ฆ ๋๋ฐฉ ๊ฟํ ์ด์ ๋ฆฌ, ์ง์ฅ์ธ์ด ๋ค๋ ๋ณธ ์ค๋ด ๋๋ค์ด ์ฝ์ค", + "status": "์ ๊ท", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-07-11_์ฅ๋ง๊ฑด๊ฐ๊ด๋ฆฌ_a7082242": [ + { + "date": "2026-07-13", + "title": "์ฅ๋ง์ฒ ๊ฑด๊ฐ ๊ด๋ฆฌ, 40๋ ์ง์ฅ์ธ์ ์ค์ฒ ์ฒดํฌ๋ฆฌ์คํธ", + "status": "์ ๊ท", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-07-11_์๋ฌ๋ฌํ์จ๊ธ๋ฑ๋ฝ์์ธ๊ณผ๊ฐ์ธํฌ์์๋์๋ฒ_98d39f17": [ + { + "date": "2026-07-13", + "title": "์๋ฌ๋ฌ ํ์จ ๊ธ๋ฑ๋ฝ, 2026๋ ํ๋ฐ๊ธฐ ์ ์ด๋ฌ๋ - ๊ฐ์ธํฌ์์ ๋์๋ฒ ์ด์ ๋ฆฌ", + "status": "์ ๊ท", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-07-11_์์ด์ปจ์ ๊ธฐ์ธ์ ์ฝ_25dbca84": [ + { + "date": "2026-07-13", + "title": "์์ด์ปจ ์ ๊ธฐ์ธ ์ ์ฝ, 26๋+์จํ๋ ์ดํฐ ์ง์ ํ ์คํธ ๊ฒฐ๊ณผ", + "status": "์ ๊ท", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-07-11_์ฅ๋ง๊ฑด๊ฐ๊ด๋ฆฌ_2ed1e568": [ + { + "date": "2026-07-13", + "title": "์ฅ๋ง์ฒ ๊ฑด๊ฐ ๊ด๋ฆฌ, 40๋ ์ง์ฅ์ธ์ด ์ง์ ๊ฒช๊ณ ์ ๋ฆฌํ์ต๋๋ค", + "status": "์ ๊ท", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-07-11_์ฌ๋ฆ์บ ํ์ถ์ฒ_d9c5f364": [ + { + "date": "2026-07-13", + "title": "2026๋ ์ฌ๋ฆ ์บ ํ ์ถ์ฒ ์ ๊ผญ ํ์ธํ ์ ๋ถ ์ง์๊ธ 3๊ฐ์ง", + "status": "์ ๊ท", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-07-11_์ฌ๋ฆ๋ ์์ถ์ฒ_e83144e5": [ + { + "date": "2026-07-13", + "title": "2026๋ ์ฌ๋ฆ ๋ ์ ์ถ์ฒ, ์ฌํ ํฌ ์ฑ 5๊ถ ์์ง ํ๊ธฐ", + "status": "์ ๊ท", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-07-11_์ฌ๋ฆ๋ ์์ถ์ฒ_6a0fcceb": [ + { + "date": "2026-07-13", + "title": "2026๋ ์ฌ๋ฆํด๊ฐ ๊ฒฝ์ ยท์ฌํ ํฌ ๋์ ์ถ์ฒ - ํด๊ฐ์ฒ ์ ๊ธ์ต ๊ณต๋ถํ๋ ๋ฒ", + "status": "์ ๊ท", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-07-11_์ฌ๋ฆ์บ ํ์ถ์ฒ_e711a2ef": [ + { + "date": "2026-07-13", + "title": "์ฌ๋ฆ ์บ ํ ์ถ์ฒ, ์๋ ์ ์ง์ ๋ณด๋ด๋ณด๊ณ ๋๋ ์ ์ ๋ฆฌ", + "status": "์ ๊ท", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-07-11_๊น๋ถ์ฅ์ฒซ์ธ์๋ฆฌ๋ทฐ_9f894593": [ + { + "date": "2026-07-13", + "title": "[1ํธ] ๊น๋ถ์ฅ 2026 ์ฒซ์ธ์ ์์ง ํ๊ธฐ, ์ง์ฅ์ธ์ด ๋ด๋ ๊ณต๊ฐ๋ ๊น", + "status": "์ ๊ท", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-07-11_๊น๋ถ์ฅ๋ฑ์ฅ์ธ๋ฌผ๋ถ์_06abd73e": [ + { + "date": "2026-07-13", + "title": "[2ํธ] ๊น๋ถ์ฅ ๋ฑ์ฅ์ธ๋ฌผ ๊ด๊ณ๋์ ๋ฐฐ์ฐ ์ฐ๊ธฐ๋ ฅ ์์ง ํ๊ฐ 2026", + "status": "์ ๊ท", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-07-11_๊น๋ถ์ฅ๊ฒฐ๋ง์ดํ๋ณ์ _991a0444": [ + { + "date": "2026-07-13", + "title": "[3ํธ] ๊น๋ถ์ฅ ๊ฒฐ๋ง ์ดํ, OSTยท์ ์ฌ์ ์ถ์ฒ๊ณผ ๋ณ์ 2026", + "status": "์ ๊ท", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-07-10_๋ฏธ๊ตญ์ฐ์ค๊ธ๋ฆฌ๊ฒฐ์ ํ๊ตญ์ฆ์์ํฅ๋ถ์_a214d0ef": [ + { + "date": "2026-07-13", + "title": "๋ฏธ๊ตญ ์ฐ์ค ๊ธ๋ฆฌ ๊ฒฐ์ , ํ๊ตญ ์ฆ์ ์ํฅ ์ด์ ๋ฆฌ (2026.7)", + "status": "์ ๊ท", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-07-10_์ ์ฃผํ์ฅ๋ง์์ฌ๋์ ์์๊ฐ๋์์จ์๋ง์ง_d1deb279": [ + { + "date": "2026-07-13", + "title": "์ ์ฃผ ํ์ฅ๋ง์ ์ฌ๋ ์ ์ ์๊ฐ๋์ ์จ์ ๋ง์ง ํ๊ธฐ", + "status": "์ ๊ท", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-07-10_์ฝ์คํผ์ฝ์ค๋ฅ2026ํ๋ฐ๊ธฐ์ ๋งํต์ฌ์ ๋ฆฌ_8b4103fe": [ + { + "date": "2026-07-13", + "title": "์ฝ์คํผ ์ฝ์ค๏ฟฝ๋ค 2026 ํ๋ฐ๊ธฐ ์ ๋ง ํต์ฌ ์ ๋ฆฌ, ์ง๊ธ ์ฒดํฌํฌ์ธํธ", + "status": "์ ๊ท", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-07-10_์๊ฒฉ์ฆ๋ ํ์ผ๋กํฉ๊ฒฉํ์ฌ๋์ด์๋ ค์ฃผ๋๋ฐฉ๋ฒ_e937d45e": [ + { + "date": "2026-07-13", + "title": "์๊ฒฉ์ฆ ๋ ํ์ผ๋ก ํฉ๊ฒฉํ ์ง์ฅ์ธ์ด ์๋ ค์ฃผ๋ ํ์ค์ ๋ฐฉ๋ฒ", + "status": "์ ๊ท", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-07-10_์ ๊ธฐ์ฐจ์ฒซ๊ตฌ๋งคํ6๊ฐ์์์งํ๊ธฐ_465e3ffd": [ + { + "date": "2026-07-13", + "title": "์ ๊ธฐ์ฐจ ์ฒซ ๊ตฌ๋งค ํ 6๊ฐ์ ์์ง ํ๊ธฐ, 2026๋ ์ ์ง๋น ์ ๋ฆฌ", + "status": "์ ๊ท", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-07-10_์ฌ๋ฆ๋๋ฐฉ๊ฟํ_cc2e2730": [ + { + "date": "2026-07-13", + "title": "์ฌ๋ฆ ๋๋ฐฉ ๊ฟํ: ์ ๊ธฐ์๊ธ ํญํ ๋ง๋ ์ ๋ถ ์ง์ ์ด์ ๋ฆฌ", + "status": "์ ๊ท", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-07-10_๋ถ์ฐ1๋ฐ2์ผํผ์์ฌํํ์ค๋น์ฉ๊ณต๊ฐ_b2827a77": [ + { + "date": "2026-07-13", + "title": "๋ถ์ฐ 1๋ฐ2์ผ ํผ์ ์ฌํ ํ์ค ๋น์ฉ ๊ณต๊ฐ (2026๋ 7์ ์ง์ ๋ค๋ ์จ ํ๊ธฐ)", + "status": "์ ๊ท", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-07-10_์ผ๋ณธ์ฌํ์ํํ์ ์ง์ ํด๋ณธ๊ฐ์ฅ์ผ๋ฐฉ๋ฒ_91b8519b": [ + { + "date": "2026-07-13", + "title": "์ผ๋ณธ ์ฌํ ์ํ ํ์ , ์ง์ ํด๋ณธ ๊ฐ์ฅ ์ผ ๋ฐฉ๋ฒ (2026)", + "status": "์ ๊ท", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-07-10_์ฃผํ๋ด๋ณด๋์ถ๊ฐ์ํ๊ธฐ2026๊ธ๋ฆฌ_97179714": [ + { + "date": "2026-07-13", + "title": "[1ํธ] ์ฃผํ๋ด๋ณด๋์ถ ๊ฐ์ํ๊ธฐ 2026, ๊ธ๋ฆฌ ์ธ์ ์ด์ ", + "status": "์ ๊ท", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-07-10_์ฃผํ๋ด๋ณด๋์ถ๊ธ๋ฆฌ๋น๊ต์ํ๋ณ2026_db9d7413": [ + { + "date": "2026-07-13", + "title": "์ฃผํ๋ด๋ณด๋์ถ ๊ธ๋ฆฌ๋น๊ต ์ํ๋ณ 2026 5๊ณณ ๋ฐํ ํ๊ธฐ ์ด์ ๋ฆฌ", + "status": "์ ๊ท", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-07-10_์ฃผํ๋ด๋ณด๋์ถ๋ํํ๊ธฐ2026_f8ec9338": [ + { + "date": "2026-07-13", + "title": "[3ํธ] ์ฃผํ๋ด๋ณด๋์ถ ๋ํ ํ๊ธฐ 2026 ์ํ ์ ํ ์ฃผ์์ฌํญ ์ด์ ๋ฆฌ", + "status": "์ ๊ท", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-07-09_์์ด์ปจ์ ๊ธฐ์ธ์ ์ฝ_dde6e3d9": [ + { + "date": "2026-07-13", + "title": "์์ด์ปจ ์ ๊ธฐ์ธ, 2026๋ ์ฌ๋ฆ ์ ๊ฐ๊ณ๋ถ๋ก ์ง์ ๋ฐ์ ธ๋ดค์ด์", + "status": "์ ๊ท", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-07-09_์ฌ๋ฆ๋๋ฐฉ๊ฟํ_c7581019": [ + { + "date": "2026-07-13", + "title": "์ฌํ ๋ค๋๋ฉด์ ํฐ๋ํ ์ฌ๋ฆ ๋๋ฐฉ ๊ฟํ, 2026๋ ์ ์ด๋ ๊ฒ ์๋๋ค", + "status": "์ ๊ท", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-07-09_์ค๋งํธ์คํ ์ด์ฒซ๋ฌ๋งค์ถ0์๊ทน๋ณต๋ฐฉ๋ฒ_0adbe608": [ + { + "date": "2026-07-13", + "title": "์ค๋งํธ์คํ ์ด ์ฒซ ๋ฌ ๋งค์ถ 0์, ์ ๋ ์ด๋ ๊ฒ ๊ทน๋ณตํ์ด์ 2026", + "status": "์ ๊ท", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-07-09_ํญ์ผ๋๋น๋ฐฉ๋ฒ_3d9a23aa": [ + { + "date": "2026-07-13", + "title": "ํญ์ผ ๋๋น ๋ฐฉ๋ฒ, 2026๋ ์ ๊ฐ๊ณ๋ถ๊น์ง ์ฑ๊ฒจ๋ดค์ต๋๋ค", + "status": "์ ๊ท", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-07-09_์์ด์ปจ์ ๊ธฐ์ธ์ ์ฝ_0cf3bdae": [ + { + "date": "2026-07-13", + "title": "์ผ๊ตฌ ์ง๊ด ๋์ ์ง์ฝํ๋ค๊ฐ ์์ด์ปจ ์ ๊ธฐ์ธ ํญํ ๋ง์ ์ฐ (2026)", + "status": "์ ๊ท", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-07-09_๋ธ๋ก๊ทธ์ ๋์ผ์ค์น์ธ2026์ค์ ๋กํด๋ณด๋_f8d63418": [ + { + "date": "2026-07-13", + "title": "๋ธ๋ก๊ทธ ์ ๋์ผ์ค ์น์ธ 2026 ์ค์ ๋ก ํด๋ณด๋, ์ ๋ ์ด๋ ๊ฒ ํต๊ณผํ์ต๋๋ค", + "status": "์ ๊ท", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-07-06_ํญ์ผ๋๋น๋ฐฉ๋ฒ_770f7dce": [ + { + "date": "2026-07-13", + "title": "์ผ๊ตฌ์ฅ ์ง๊ด ๋ค๋๋ฉด์ ๋ฐฐ์ด ํญ์ผ ๋๋น ๋ฐฉ๋ฒ, 2026๋ ์ ์ด๋ ๊ฒ ํฉ๋๋ค", + "status": "์ ๊ท", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-07-06_์ง์ฅ์ธ์30๋ง์ETFํฌ์์์งํ๊ธฐ_a5914b42": [ + { + "date": "2026-07-13", + "title": "์ง์ฅ์ธ ์ 30๋ง์ ETF ํฌ์, 1๋ ๋๊ฒ ํด๋ณด๊ณ ์ฐ๋ ์์ง ํ๊ธฐ", + "status": "์์ธ ๋๊ธฐ", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-07-03_๋ฌ๋ฌํ์ ์ง์ ํด๋ดค๋๋์ํ๋ง๋ค์ด๋ ๊ฒ๋ฌ๋๋ค_6558933b": [ + { + "date": "2026-07-13", + "title": "๋ฌ๋ฌ ํ์ ์ง์ ํด๋ดค๋๋ ์ํ๋ง๋ค ์ด๋ ๊ฒ ๋ฌ๋๋ค (2026๋ ์์ง ํ๊ธฐ)", + "status": "์ ๊ท", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-07-03_์ฒญ์ฝํต์ฅ10๋ ๋ฃ๊ณ ๋๋์์งํํ์ค_159cbac6": [ + { + "date": "2026-07-13", + "title": "์ฒญ์ฝํต์ฅ 10๋ ๋ฃ๊ณ ๋๋ ์์งํ ํ์ค (2026๋ ๊ธฐ์ค)", + "status": "์์ธ ๋๊ธฐ", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-07-03_๊ธ๋ฆฌ์ธ์๊ธฐ์์๊ธ๊ฐ์ํ๋ด๊ฒฝํ๋ด_862ad4ab": [ + { + "date": "2026-07-13", + "title": "๊ธ๋ฆฌ ์ธ์๊ธฐ์ ์๊ธ ๊ฐ์ํ ๋ด ๊ฒฝํ๋ด, ์์งํ ์ด๋ ๊ฒ ๋์ด์ (2026)", + "status": "์ ๊ท", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-07-03_์ ์ฃผ๋ํผ์์ฌํ์ฒ์๊ฐ์๋์ค์๋ด_2023f551": [ + { + "date": "2026-07-13", + "title": "์ ์ฃผ๋ ํผ์ ์ฌํ ์ฒ์ ๊ฐ์ ๋ ์ค์๋ด โ 2026๋ ์์ง ํ๊ธฐ", + "status": "์์ธ ๋๊ธฐ", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-07-03_๋ฐ๋ฆฌํจํค์งvs์์ ์ฌํ์ง์ ํด๋ดค๋๋_39573de1": [ + { + "date": "2026-07-13", + "title": "๋ฐ๋ฆฌ ํจํค์ง vs ์์ ์ฌํ, ๋ ๋ค ์ง์ ํด๋ดค๋๋ (2026 ์์ง ํ๊ธฐ)", + "status": "์์ธ ๋๊ธฐ", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-07-03_ํฌ์ค3๊ฐ์๋ค๋์์งํ๊ธฐ๋ณํ์๋์ด์ _cf23ad71": [ + { + "date": "2026-07-13", + "title": "ํฌ์ค 3๊ฐ์ ๋ค๋ ์์ง ํ๊ธฐ โ ๋ณํ์๋ ์ด์ ๋๋์ด ์์์ด์ (2026)", + "status": "์์ธ ๋๊ธฐ", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-07-03_ETF์ฒ์ํฌ์ํ ๋๋ชฐ๋๋์ค์๋ค_a87b9511": [ + { + "date": "2026-07-13", + "title": "ETF ์ฒ์ ํฌ์ํ ๋ ๋ชฐ๋๋ ์ค์๋ค, ์ ๋ ๋ค ํด๋ดค์ด์ (2026๋ )", + "status": "์์ธ ๋๊ธฐ", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-07-03_๊ฑด๊ฐ๊ฒ์ง๊ฒฐ๊ณผ์ง์ ๋ฐ์๋ณด๊ณ ์๊ฒ๋๊ฒ_088d5029": [ + { + "date": "2026-07-13", + "title": "๊ฑด๊ฐ๊ฒ์ง ๊ฒฐ๊ณผ ์ง์ ๋ฐ์๋ณด๊ณ ์๊ฒ ๋ ๊ฒ๋ค (2026๋ ์์ง ํ๊ธฐ)", + "status": "์์ธ ๋๊ธฐ", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-07-03_ํ๋ฆฌ๋์์ข ํฉ์๋์ธ์ฒ์์ ๊ณ ์์งํ๊ธฐ_8e12e217": [ + { + "date": "2026-07-13", + "title": "ํ๋ฆฌ๋์ ์ข ํฉ์๋์ธ ์ฒ์ ์ ๊ณ ์์ง ํ๊ธฐ โ 2026๋ ์ง์ ํด๋ดค์ด์", + "status": "์์ธ ๋๊ธฐ", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-07-03_์์ธ์์ต์์งํ๊ธฐ์ธ๊ธ๊น์ง๋ค๊ณต๊ฐ_9941f97f": [ + { + "date": "2026-07-13", + "title": "์์ธ ์์ต ์์ง ํ๊ธฐ, ์ธ๊ธ๊น์ง ๋ค ๊ณต๊ฐํฉ๋๋ค (2026๋ ์ง์ ๊ฒฝํ)", + "status": "์์ธ ๋๊ธฐ", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-07-03_๋ฌ๋ฌํ์ ์ง์ ํด๋ดค๋๋์ํ๋ณด๋ค์ด๊ฒ๋ซ๋๋ผ_1625573a": [ + { + "date": "2026-07-13", + "title": "๋ฌ๋ฌ ํ์ ์ง์ ํด๋ดค๋๋ ์ํ๋ณด๋ค ์ด๊ฒ ๋ซ๋๋ผ (2026๋ ์์ง ํ๊ธฐ)", + "status": "์์ธ ๋๊ธฐ", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-07-03_์ฃผ์๋ฐฐ๋น์ฃผ1๋ ํฌ์์ค์๋ด๊ณต๊ฐ_418642ea": [ + { + "date": "2026-07-13", + "title": "๋ฐฐ๋น์ฃผ 1๋ ํฌ์ ์ค์๋ด ์์ง ๊ณต๊ฐ (2026๋ ๋ฒ์ )", + "status": "์์ธ ๋๊ธฐ", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-07-03_์ ์ฃผ๋ํ๋ฌ์ด๊ธฐ์์งํ๊ธฐํ์ค๊ณต๊ฐ_6bfe4081": [ + { + "date": "2026-07-13", + "title": "์ ์ฃผ๋ ํ๋ฌ์ด๊ธฐ ์์ง ํ๊ธฐ โ ํ์ค์ ์ข ๋ฌ๋์ด์ (2026๋ )", + "status": "์์ธ ๋๊ธฐ", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-07-03_์ฒ์๊ณจํ๋ฐฐ์ธ๋๋ชฐ๋๋์ค์๋ด_2a2d91da": [ + { + "date": "2026-07-13", + "title": "์ฒ์ ๊ณจํ ๋ฐฐ์ธ ๋ ๋ชฐ๋๋ ์ค์๋ด, 2026๋ ์์ง ํ๊ธฐ", + "status": "์ ๊ท", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-07-03_๋ฐฉ์ฝํผ์์ฌํ์ง์ ๊ฐ๋ดค๋๋๋ฌ๋๋๊ฒ_123f6658": [ + { + "date": "2026-07-13", + "title": "๋ฐฉ์ฝ ํผ์ ์ฌํ ์ง์ ๊ฐ๋ดค๋๋ ๋ฌ๋๋ ๊ฒ๋ค (2026๋ ์์ง ํ๊ธฐ)", + "status": "์์ธ ๋๊ธฐ", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-07-03_ETF์ฒ์์์๋๋ชฐ๋๋์์๋ฃํจ์ _3d64a7a7": [ + { + "date": "2026-07-13", + "title": "ETF ์ฒ์ ์์ ๋ ๋ชฐ๋๋ ์์๋ฃ ํจ์ , ์ ๋ ๋นํ์ด์ (2026๋ )", + "status": "์์ธ ๋๊ธฐ", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-07-03_๊ฑด๊ฐ๊ฒ์ง๊ณต์ง๋ก๋ฐ๋๋ฒ์ง์ ํด๋ดค๋๋_cb962d64": [ + { + "date": "2026-07-13", + "title": "๊ฑด๊ฐ๊ฒ์ง ๊ณต์ง๋ก ๋ฐ๋ ๋ฒ ์ง์ ํด๋ดค๋๋ โ 2026๋ ์์ง ํ๊ธฐ", + "status": "์์ธ ๋๊ธฐ", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-07-03_์์ธ๊ณ์ฝ์ ์ง์ฃผ์ธํํ ๊ผญ๋ฌผ์ด๋ด์ผํ ๊ฒ_01230713": [ + { + "date": "2026-07-13", + "title": "์์ธ ๊ณ์ฝ ์ ์ง์ฃผ์ธํํ ๊ผญ ๋ฌผ์ด๋ด์ผ ํ ๊ฒ โ 2026๋ ์ง์ ๊ฒช์ด๋ดค์ด์", + "status": "์์ธ ๋๊ธฐ", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-07-02_์คํ๋ฒ ์ค์ฌ์ด๋ ์ค๋์ฒ์์จ๋ดค๋๋๋ชฐ๋๋๊ฒ๋ค_dd812e67": [ + { + "date": "2026-07-13", + "title": "์คํ๋ฒ ์ค ์ฌ์ด๋ ์ค๋ ์ฒ์ ์จ๋ดค๋๋ ๋ชฐ๋๋ ๊ฒ๋ค (2026 ์์ง ํ๊ธฐ)", + "status": "์์ธ ๋๊ธฐ", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-07-02_์ง์ ๊ฐ๋ดค๋๋์ค๋งํ์ ์ฃผ์ ๋ช ์นดํํ๊ธฐ_93f7e7bc": [ + { + "date": "2026-07-13", + "title": "์ง์ ๊ฐ๋ดค๋๋ ์ค๋งํ ์ ์ฃผ ์ ๋ช ์นดํ ํ๊ธฐ (2026๋ ์์ง ๊ฒฝํ)", + "status": "์์ธ ๋๊ธฐ", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-07-02_๋ ธ์ ์ฒ์์์ํ ๋์ ์ผ๋ง์ดํ๋์ค์๋ด_6bd9a482": [ + { + "date": "2026-07-13", + "title": "๋ ธ์ ์ฒ์ ์์ํ ๋ ์ ๊ฐ ์ ์ง๋ ๋ ์ค์๋ค (2026๋ ์์ง ํ๊ธฐ)", + "status": "์์ธ ๋๊ธฐ", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-07-02_์ฃผ์์ฒ์์์ํ ๋์ ์ง๋ ๋5๊ฐ์ง์ค์_92ca4844": [ + { + "date": "2026-07-13", + "title": "์ฃผ์ ์ฒ์ ์์ํ ๋ ์ ์ง๋ ๋ 5๊ฐ์ง ์ค์, ์์งํ ํธ์ด๋์ต๋๋ค (2026๋ )", + "status": "์์ธ ๋๊ธฐ", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-07-02_๋ฌด์ธ๋์บ ํ์ง์ ๊ฐ๋ดค๋๋์๋ฌด๋๋ง์ํด์ค๊ฒ๋ค_96df821a": [ + { + "date": "2026-07-13", + "title": "๋ฌด์ธ๋ ์บ ํ ์ง์ ๊ฐ๋ดค๋๋ ์๋ฌด๋ ๋ง ์ ํด์ค ๊ฒ๋ค (2026 ์์ง ํ๊ธฐ)", + "status": "์์ธ ๋๊ธฐ", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-07-02_ํ๋ฆฌ๋์1๋ ์ฐจ์ธ๊ธ์ ๊ณ ์์งํ๊ธฐ_4389fdb2": [ + { + "date": "2026-07-13", + "title": "ํ๋ฆฌ๋์ 1๋ ์ฐจ ์ธ๊ธ์ ๊ณ ์์ง ํ๊ธฐ โ 2026๋ ์ ์ง์ ํด๋ดค์ด์", + "status": "์์ธ ๋๊ธฐ", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-07-02_๊ตญ๋ด์ฌํํผ์์ฒ์๊ฐ๋ดค๋๋๋ฌ๋๋์ _276c8db4": [ + { + "date": "2026-07-13", + "title": "๊ตญ๋ด ์ฌํ ํผ์ ์ฒ์ ํด๋ดค๋๋ ์ง์ง ๋ฌ๋๋ ๊ฒ๋ค (2026๋ ์์ง ํ๊ธฐ)", + "status": "์์ธ ๋๊ธฐ", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-07-02_์ ๋์ผ์ค์น์ธ์ง์ ํด๋ดค๋๋๊ฑธ๋ฆฐ์๊ฐํ์ค_9afd73ef": [ + { + "date": "2026-07-13", + "title": "์ ๋์ผ์ค ์น์ธ ์ง์ ํด๋ดค๋๋ ๊ฑธ๋ฆฐ ์๊ฐ ํ์ค (2026๋ ํ๊ธฐ)", + "status": "์์ธ ๋๊ธฐ", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-07-02_20๋์ฒซ์ง์ฅํด์ฌํ์์งํํ๋ฌ์ํ๋น๊ณต๊ฐ_9a685dd0": [ + { + "date": "2026-07-13", + "title": "20๋ ์ฒซ ์ง์ฅ ํด์ฌ ํ ํ ๋ฌ ์ํ๋น, ์ง์ ๊ฒช์ด๋ณด๋ ์ด๋ฌ์ด์ (2026)", + "status": "์์ธ ๋๊ธฐ", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-07-02_๊ตญ๋ฏผ๋ด์ผ๋ฐฐ์์นด๋์ฒ์์ ์ฒญํ ๋๋ชฐ๋๋๊ฒ_21d62563": [ + { + "date": "2026-07-13", + "title": "๊ตญ๋ฏผ๋ด์ผ๋ฐฐ์์นด๋ ์ฒ์ ์ ์ฒญํ ๋ ๋ชฐ๋๋ ๊ฒ๋ค (2026๋ ์ง์ ๊ฒช์ ํ๊ธฐ)", + "status": "์์ธ ๋๊ธฐ", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-07-02_์ฟ ํกํํธ๋์ค3๊ฐ์์ง์ ํด๋ดค๋๋ํ์ค๊ณต๊ฐ_fd5a04eb": [ + { + "date": "2026-07-13", + "title": "์ฟ ํกํํธ๋์ค 3๊ฐ์ ์ง์ ํด๋ดค๋๋ ํ์ค ๊ณต๊ฐ (2026๋ ์์ง ํ๊ธฐ)", + "status": "์์ธ ๋๊ธฐ", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-07-02_๋ฏธ๋ผํด๋ชจ๋30์ผ์ค์ฒํ์์งํ๊ธฐ_dedb6047": [ + { + "date": "2026-07-13", + "title": "๋ฏธ๋ผํด๋ชจ๋ 30์ผ ์ค์ฒ ํ ์์ง ํ๊ธฐ โ ๋ฌ๋ผ์ง ๊ฒ๊ณผ ์ ๋ฌ๋ผ์ง ๊ฒ", + "status": "์์ธ ๋๊ธฐ", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-06-30_ํฌ์ค์ฅPT๋๊ณ ํํธ๋ก๋ฐ๊พผํ์ฒด์ค๋ณํํ์ค_d6ea3de3": [ + { + "date": "2026-07-13", + "title": "ํฌ์ค์ฅ PT ๋๊ณ ํํธ 6๊ฐ์, ์ฒด์ค ๋ณํ ํ์ค ์์ง ํ๊ธฐ (2026๋ )", + "status": "์์ธ ๋๊ธฐ", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-06-30_AI์ฝ๋ฉํด์ค์ ๋ก์จ๋ดค๋๋ํ๊ณ๊ฐ์์๋ค_8754b144": [ + { + "date": "2026-07-13", + "title": "AI ์ฝ๋ฉ ํด 6๊ฐ์ ์จ๋ดค๋๋ฐ, ์์งํ ํ๊ณ๊ฐ ์์์ด์ (2026๋ ํ์ค ํ๊ธฐ)", + "status": "์์ธ ๋๊ธฐ", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-06-30_๊ฑด๊ฐ๊ฒ์ง๊ฒฐ๊ณผ์ด์์๊ฒฌ๋์์๋๋ด๊ฐํ๊ฒ_0d5866ea": [ + { + "date": "2026-07-13", + "title": "๊ฑด๊ฐ๊ฒ์ง ๊ฒฐ๊ณผ ์ด์์๊ฒฌ ๋์์ ๋ ์ ๊ฐ ์ค์ ๋ก ํ ๊ฒ๋ค (2026๋ ๊ธฐ์ค)", + "status": "์์ธ ๋๊ธฐ", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-06-29_ChatGPT๋ก๋ถ์ ์์ํ์๋์ง์ง์์์ _f0936eb5": [ + { + "date": "2026-07-13", + "title": "ChatGPT๋ก ๋ถ์ ์์ํ์ ๋ ์ง์ง ์์์ โ 6๊ฐ์ ์ง์ ํด๋ณธ ์์ง ํ๊ธฐ (2026)", + "status": "์์ธ ๋๊ธฐ", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-06-29_ํฌ์ค์ฅPT6๊ฐ์ํ๊ธฐ๋์๊น์ง์์์ด์ _2673b26d": [ + { + "date": "2026-07-13", + "title": "ํฌ์ค์ฅ PT 6๊ฐ์ ์์ง ํ๊ธฐ โ ๋ ์๊น์ง ์์ ์ง์ง ์ด์ (2026)", + "status": "์์ธ ๋๊ธฐ", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-06-28_์ฒญ์ฝํต์ฅ10๋ ๋ฃ๊ณ ๋น์ฒจ์๋ํ์คํ๊ธฐ_0bbfb644": [ + { + "date": "2026-07-13", + "title": "์ฒญ์ฝํต์ฅ 10๋ ๋ฃ๊ณ ๋น์ฒจ ์ ๋ ํ์ค ํ๊ธฐ (2026๋ ์์ง ์ ๋ฆฌ)", + "status": "์์ธ ๋๊ธฐ", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-06-27_ChatGPT์ ๋ฃ๊ฒฐ์ 3๊ฐ์์ฐ๊ณ ๋๋ํ์ค_91847b80": [ + { + "date": "2026-07-13", + "title": "ChatGPT ์ ๋ฃ ๊ฒฐ์ 3๊ฐ์ ์ฐ๊ณ ๋๋ ํ์ค (2026๋ ์์ง ํ๊ธฐ)", + "status": "์์ธ ๋๊ธฐ", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-06-27_ํ๋ฆฌ๋์คํฌ๋์์น๋ฃ10ํ๋ฐ์๋ณธํ๊ธฐ_d11b5a2e": [ + { + "date": "2026-07-13", + "title": "ํ๋ฆฌ ๋์คํฌ ๋์์น๋ฃ 10ํ ๋ฐ์๋ณธ ์์ง ํ๊ธฐ (2026๋ )", + "status": "์์ธ ๋๊ธฐ", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-06-27_AI์๋ํํด์ง์ ์จ๋ดค๋๋์ค๋งํ์ _7bfb6df7": [ + { + "date": "2026-07-13", + "title": "AI ์๋ํ ํด ์ง์ ์จ๋ดค๋๋ ์ค๋งํ ์ ์์ง ํ๊ธฐ 2026", + "status": "์์ธ ๋๊ธฐ", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-06-27_ํฌ์ค์ฅ3๊ฐ์๋ฑ๋กํ์ค์ ๋ณํํ์ค๊ณต๊ฐ_752542bc": [ + { + "date": "2026-07-13", + "title": "ํฌ์ค์ฅ 3๊ฐ์ ๋ฑ๋ก ํ ์ค์ ๋ณํ, ์์งํ๊ฒ ๊ณต๊ฐํฉ๋๋ค (2026๋ )", + "status": "์์ธ ๋๊ธฐ", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-06-27_๋น๋ผ๊ฐญํฌ์์ฒ์ํด๋ณด๊ณ ํํํ๊ฒ๋ค_e7706568": [ + { + "date": "2026-07-13", + "title": "๋น๋ผ ๊ฐญํฌ์ ์ฒ์ ํด๋ณด๊ณ ์ง์ง ํํํ ๊ฒ๋ค (2026๋ ์์ง ํ๊ธฐ)", + "status": "์์ธ ๋๊ธฐ", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-06-26_ํ๋ฃจ8000๋ณด๊ฑท๊ธฐ90์ผํ์ค์ ๋ชธ๋ณํ_0d78cfc3": [ + { + "date": "2026-07-13", + "title": "ํ๋ฃจ 8000๋ณด ๊ฑท๊ธฐ 90์ผ ํ ์ค์ ๋ชธ ๋ณํ, ์์งํ๊ฒ ํธ์ด๋์๊ฒ์", + "status": "์์ธ ๋๊ธฐ", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-06-26_ํ๋ฆฌ๋์คํฌ์ฌํ์ด๋์ง์ ํด๋ณธ์์งํ๊ธฐ_eb76f914": [ + { + "date": "2026-07-13", + "title": "ํ๋ฆฌ๋์คํฌ ์ฌํ ์ด๋ ์ง์ 6๊ฐ์ ํด๋ณธ ์์ง ํ๊ธฐ (2026๋ )", + "status": "์์ธ ๋๊ธฐ", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-06-26_๊ฐญํฌ์์ฒ์ํด๋ดค๋๋๋ชฐ๋๋ํ์ค_3dbcb910": [ + { + "date": "2026-07-13", + "title": "๊ฐญํฌ์ ์ฒ์ ํด๋ดค๋๋ ๋ชฐ๋๋ ํ์ค (2026๋ ์ง์ ๊ฒฝํ๋ด)", + "status": "์์ธ ๋๊ธฐ", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-06-26_AIํด๋ก๋ถ์ 3๊ฐ์์์ตํ์ค๊ณต๊ฐ_017d26ff": [ + { + "date": "2026-07-13", + "title": "AI ํด๋ก ๋ถ์ 3๊ฐ์ ํด๋ดค๋๋ฐ, ์์ต ํ์ค ์์งํ๊ฒ ๊ณต๊ฐํฉ๋๋ค (2026)", + "status": "์์ธ ๋๊ธฐ", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-06-25_AIํด์ค์ ๋ก์จ๋ณด๋์ ๋ฃ๊ตฌ๋ ๋์์ด์ _6c09c07f": [ + { + "date": "2026-07-13", + "title": "AI ํด ์ ๋ฃ ๊ตฌ๋ 6๊ฐ์ ์ฐ๋ค๊ฐ ๊ฒฐ๊ตญ ๋์ ์์งํ ์ด์ (2026๋ )", + "status": "์์ธ ๋๊ธฐ", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-06-25_GPT์ ๋ฃ๊ฒฐ์ 3๊ฐ์์จ๋ณธ์์งํ๊ธฐ_c731eab7": [ + { + "date": "2026-07-13", + "title": "ChatGPT Plus ์ ๋ฃ ๊ฒฐ์ 3๊ฐ์ ์จ๋ณธ ์์ง ํ๊ธฐ (2026๋ )", + "status": "์์ธ ๋๊ธฐ", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-06-24_ETF์ฒซ๋งค์ํ์์ค๋์ง์ง์ด์ _083035b1": [ + { + "date": "2026-07-13", + "title": "ETF ์ฒซ ๋งค์ ํ ์์ค ๋ ์ง์ง ์ด์ , ์ ๋ ๋๊ฐ์ด ๋นํ์ด์ (2026๋ )", + "status": "์์ธ ๋๊ธฐ", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-06-23_์ฒซ์์ธ๊ณ์ฝ๋๋์นํน์ฝ์ค์๋ด_9a2e92cb": [ + { + "date": "2026-07-13", + "title": "์ฒซ ์์ธ ๊ณ์ฝ ๋ ๋์น ํน์ฝ ์ค์๋ด, ์ ์ง์ง ํํํ์ด์ (2026๋ )", + "status": "์์ธ ๋๊ธฐ", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-06-23_์ง์ฅ์ธํฌ์ก์ข ํฉ์๋์ธ์ง์ ์ ๊ณ ํด๋ดค๋๋_148085fa": [ + { + "date": "2026-07-13", + "title": "์ง์ฅ์ธ ํฌ์ก ์ข ํฉ์๋์ธ ์ง์ ์ ๊ณ ํด๋ดค๋๋ โ 2026๋ ์์ง ํ๊ธฐ", + "status": "์์ธ ๋๊ธฐ", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-06-23_ChatGPT์ ๋ฃ์ ํํ์ค์ ์ ๋ฌดํ์ฉ์์ง_811cabd8": [ + { + "date": "2026-07-13", + "title": "ChatGPT Plus 6๊ฐ์ ์ฐ๊ณ ๋๋ ์์งํ ์๊ฐ (2026๋ ์ง์ฅ์ธ ํ๊ธฐ)", + "status": "์์ธ ๋๊ธฐ", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-06-23_ETF์ฒ์์์๋๋ด๊ฐํ์ค์3๊ฐ์ง_cf89f78f": [ + { + "date": "2026-07-13", + "title": "ETF ์ฒ์ ์์ ๋ ๋ด๊ฐ ํ ์ค์ 3๊ฐ์ง (2026๋ ์ง์ ๊ฒฝํ ํ๊ธฐ)", + "status": "์์ธ ๋๊ธฐ", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-06-23_AI์ฝ๋ฉํด3๊ฐ์์จ๋ณธ์์งํ๊ธฐ_5c17facd": [ + { + "date": "2026-07-13", + "title": "AI ์ฝ๋ฉ ํด 3๊ฐ์ ์จ๋ณธ ์์ง ํ๊ธฐ โ ์ง์ง ๋ฌ๋ผ์ก๋์?", + "status": "์์ธ ๋๊ธฐ", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-06-22_ETF์๋ํฌ์6๊ฐ์์ง์ ํด๋ดค๋๋์์ต๋ฅ ํ_e8772583": [ + { + "date": "2026-07-13", + "title": "ETF ์๋ํฌ์ 6๊ฐ์ ์ง์ ํด๋ดค๋๋ ์์ต๋ฅ ํ์ค (2026๋ ์์ง ํ๊ธฐ)", + "status": "์์ธ ๋๊ธฐ", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-06-22_์ฑGPT์ ๋ฃํ๋์ค์ ์จ๋ณด๊ณ ํด์งํ์ด์ _ea9f2aac": [ + { + "date": "2026-07-13", + "title": "์ฑGPT ์ ๋ฃ ํ๋ 6๊ฐ์ ์จ๋ณด๊ณ ํด์งํ ์์งํ ์ด์ (2026๋ )", + "status": "์์ธ ๋๊ธฐ", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-06-22_ETF์ฒซ๋งค์ํํ๋ฌ์์ต๋ฅ ์์ง๊ณต๊ฐ_c8332718": [ + { + "date": "2026-07-13", + "title": "ETF ์ฒซ ๋งค์ ํ ํ ๋ฌ ์์ต๋ฅ ์์ง ๊ณต๊ฐ โ 2026๋ ์ง์ฅ์ธ ์ค์ ํ๊ธฐ", + "status": "์์ธ ๋๊ธฐ", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-06-22_๊ณต๋ณต๊ฐํ์ ๋จ์ํ๋ฌํํ๋น๋ณํ์ง์ ์ธก์ _f7b2039c": [ + { + "date": "2026-07-13", + "title": "๊ณต๋ณต ๊ฐํ์ ๋จ์ ํ ๋ฌ, ํ๋น์ ์ง์ ์ธก์ ํด๋ดค์ด์ (2026๋ ์์ง ํ๊ธฐ)", + "status": "์์ธ ๋๊ธฐ", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-06-21_๋ถ๋์ฐPF์๊ธฐ๋์_c71c0e1b": [ + { + "date": "2026-07-13", + "title": "๋ถ๋์ฐ PF ์๊ธฐ ๋์ ์๋ฒฝ ์ ๋ฆฌ TOP 5 (2026๋ )", + "status": "์์ธ ๋๊ธฐ", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-06-21_์ฌ๋ฆ์ด๋์ผ์๋ฉด๊ฑด๊ฐ๊ด๋ฆฌ๋ฒ_523606b5": [ + { + "date": "2026-07-13", + "title": "2026๋ ์ฌ๋ฆ ์ด๋์ผ ์๋ฉด ๊ฑด๊ฐ ๊ด๋ฆฌ๋ฒ ์๋ฒฝ ์ ๋ฆฌ TOP 5", + "status": "์์ธ ๋๊ธฐ", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-06-20_์ง์ฅ์ธํฌ์ก์ธ๊ธ์ ๊ณ ๋ฐฉ๋ฒ_4392ba3c": [ + { + "date": "2026-07-13", + "title": "์ง์ฅ์ธ ํฌ์ก ์ธ๊ธ ์ ๊ณ ๋ฐฉ๋ฒ ์๋ฒฝ ์ ๋ฆฌ 2026๋ 5๋จ๊ณ ๊ฐ์ด๋", + "status": "์์ธ ๋๊ธฐ", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-06-20_๋น๋จ์ ๋จ๊ณ์๋จ๊ด๋ฆฌ๋ฐฉ๋ฒ_302f70ed": [ + { + "date": "2026-07-13", + "title": "๋น๋จ ์ ๋จ๊ณ ์๋จ ๊ด๋ฆฌ ๋ฐฉ๋ฒ 5๊ฐ์ง ์๋ฒฝ ์ ๋ฆฌ (2026๋ )", + "status": "์์ธ ๋๊ธฐ", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-06-19_์์กํฌ์์ฑ์์ตํ๊ธฐ_6ea43635": [ + { + "date": "2026-07-13", + "title": "์์ก ํฌ์ ์ฑ ์์ต ํ๊ธฐ TOP 5 ์๋ฒฝ ์ ๋ฆฌ (2026๋ )", + "status": "์์ธ ๋๊ธฐ", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-06-19_2026๊ฐ์ธ์ข ํฉ์์ฐ๊ด๋ฆฌ๊ณ์ข์ ์ธ๋ฐฉ๋ฒ_3f74b583": [ + { + "date": "2026-07-13", + "title": "2026 ๊ฐ์ธ์ข ํฉ์์ฐ๊ด๋ฆฌ๊ณ์ข ์ ์ธ ๋ฐฉ๋ฒ ์๋ฒฝ ์ ๋ฆฌ TOP 5", + "status": "์์ธ ๋๊ธฐ", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-06-19_AI์ฝ๋ฉํด๋น๊ต์ถ์ฒ2026_264dab65": [ + { + "date": "2026-07-13", + "title": "AI ์ฝ๋ฉ ํด ๋น๊ต ์ถ์ฒ 2026 ์๋ฒฝ ์ ๋ฆฌ TOP 5", + "status": "์์ธ ๋๊ธฐ", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-06-19_์์ธ์ํํธ์ฒญ์ฝ๋น์ฒจ์ ๋ต_f106afeb": [ + { + "date": "2026-07-13", + "title": "2026๋ ์์ธ ์ํํธ ์ฒญ์ฝ ๋น์ฒจ ์ ๋ต 5๊ฐ์ง ์๋ฒฝ ์ ๋ฆฌ", + "status": "์์ธ ๋๊ธฐ", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-06-18_2026ISA๊ณ์ข์ธ๊ธํํ์ด์ ๋ฆฌ_ff09578b": [ + { + "date": "2026-07-13", + "title": "2026 ISA๊ณ์ข ์ธ๊ธํํ ์ด์ ๋ฆฌ 5๊ฐ์ง ํต์ฌ ์ ๋ต", + "status": "์์ธ ๋๊ธฐ", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-06-18_AI์์ด์ ํธ๋ฌด๋ฃ์ฌ์ฉ๋ฒ์ถ์ฒ_51f38218": [ + { + "date": "2026-07-13", + "title": "AI์์ด์ ํธ ๋ฌด๋ฃ ์ฌ์ฉ๋ฒ ์ถ์ฒ TOP 5 ์๋ฒฝ ์ ๋ฆฌ 2026", + "status": "์์ธ ๋๊ธฐ", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-06-17_AI๋ถ์ ์ผ๋ก์100๋ง์๋ฒ๋๋ฒ_77948d9d": [ + { + "date": "2026-07-13", + "title": "AI ๋ถ์ ์ผ๋ก ์ 100๋ง์ ๋ฒ๋ ๋ฒ TOP 5 ์ค์ ๊ฐ์ด๋ 2026๋ ", + "status": "์์ธ ๋๊ธฐ", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-06-17_2026์ข ํฉ์๋์ธํ๊ธ์ ์ฒญ๋ฐฉ๋ฒ_60f0daed": [ + { + "date": "2026-07-13", + "title": "2026 ์ข ํฉ์๋์ธ ํ๊ธ ์ ์ฒญ๋ฐฉ๋ฒ 5๋จ๊ณ ์๋ฒฝ ์ ๋ฆฌ", + "status": "์์ธ ๋๊ธฐ", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-06-17_์ฝ์ธ๋นํธ์ฝ์ธ2026์ ๋ง_0f222613": [ + { + "date": "2026-07-13", + "title": "๋นํธ์ฝ์ธ 2026 ์ ๋ง ์๋ฒฝ ์ ๋ฆฌ TOP 5 ํต์ฌ ํฌ์ธํธ", + "status": "์์ธ ๋๊ธฐ", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-06-16_์์ธvs์ ์ธ2026๋ญ๊ฐ์ ๋ฆฌํ ๊น_42812e74": [ + { + "date": "2026-07-13", + "title": "์์ธ vs ์ ์ธ 2026 ๋ญ๊ฐ ์ ๋ฆฌํ ๊น ์๋ฒฝ ์ ๋ฆฌ 5๊ฐ์ง", + "status": "์์ธ ๋๊ธฐ", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-06-15_AI์ฝ๋ฉ๋ฌด๋ฃ๋ก๋ฐฐ์ฐ๋๋ฒ_8451e9c8": [ + { + "date": "2026-07-13", + "title": "AI ์ฝ๋ฉ ๋ฌด๋ฃ๋ก ๋ฐฐ์ฐ๋ ๋ฒ TOP 5 ์๋ฒฝ ์ ๋ฆฌ 2026๋ ", + "status": "์์ธ ๋๊ธฐ", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-06-15_์ข ํฉ์๋์ธํ๊ธ์ ์ฒญ๋ฐฉ๋ฒ_da28eac0": [ + { + "date": "2026-07-13", + "title": "2026๋ ์ข ํฉ์๋์ธ ํ๊ธ ์ ์ฒญ ๋ฐฉ๋ฒ 5๋จ๊ณ ์๋ฒฝ ์ ๋ฆฌ", + "status": "์์ธ ๋๊ธฐ", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-06-14_2026์ฒญ์ฝ๋น์ฒจํ๋ฅ ๋์ด๋๋ฐฉ๋ฒ_c2342660": [ + { + "date": "2026-07-13", + "title": "2026 ์ฒญ์ฝ ๋น์ฒจ ํ๋ฅ ๋์ด๋ ๋ฐฉ๋ฒ 5๊ฐ์ง ์๋ฒฝ ์ ๋ฆฌ", + "status": "์์ธ ๋๊ธฐ", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-06-14_๊ณต๋ณตํ๋น๋ฎ์ถ๋์ํ์ต๊ด_2b9a7eca": [ + { + "date": "2026-07-13", + "title": "๊ณต๋ณต ํ๋น ๋ฎ์ถ๋ ์ํ ์ต๊ด TOP 5 ์๋ฒฝ ์ ๋ฆฌ (2026๋ )", + "status": "์์ธ ๋๊ธฐ", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-06-14_AI์ฝ๋ฉ๋๊ตฌ์ปค์์ฌ์ฉ๋ฒ์๋ฒฝ๊ฐ์ด๋_112eaff0": [ + { + "date": "2026-07-13", + "title": "AI ์ฝ๋ฉ ๋๊ตฌ ์ปค์ ์๋ฒฝ ์ฌ์ฉ๋ฒ ๊ฐ์ด๋ 2026", + "status": "์์ธ ๋๊ธฐ", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-06-14_2026ํ๋ฐ๊ธฐ์ํํธ๋ถ์์ผ์ ์ด์ ๋ฆฌ_c0471494": [ + { + "date": "2026-07-13", + "title": "2026 ํ๋ฐ๊ธฐ ์ํํธ ๋ถ์ ์ผ์ ์ด์ ๋ฆฌ 5๊ฐ์ง ํต์ฌ ์ ๋ต", + "status": "์์ธ ๋๊ธฐ", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-06-13_2026์ฃผ์ํฌ์์ด๋ณด์์๋ฐฉ๋ฒ_c6afaee0": [ + { + "date": "2026-07-13", + "title": "2026 ์ฃผ์ ํฌ์ ์ด๋ณด ์์ ๋ฐฉ๋ฒ 5๋จ๊ณ ์๋ฒฝ ์ ๋ฆฌ", + "status": "์์ธ ๋๊ธฐ", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-06-13_AI์ ๋ฌด์๋ํ๋๊ตฌ์ถ์ฒ_658baeb7": [ + { + "date": "2026-07-13", + "title": "2026๋ AI ์ ๋ฌด ์๋ํ ๋๊ตฌ ์ถ์ฒ TOP 5 ์๋ฒฝ ์ ๋ฆฌ", + "status": "์์ธ ๋๊ธฐ", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-06-13_AIํ์ฉ์ฌํ๋ถ์ ์์์ ํ๊ธฐ_4ac612b5": [ + { + "date": "2026-07-13", + "title": "AI ํ์ฉ ์ฌํ๋ถ์ ์์์ ํ๊ธฐ TOP 5 ์ค์ ๊ฐ์ด๋ 2026๋ ", + "status": "์์ธ ๋๊ธฐ", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-06-12_AI์ฝ๋ฉ๋๊ตฌ๋ฌด๋ฃ์ถ์ฒ_d1d19728": [ + { + "date": "2026-07-13", + "title": "2026๋ AI ์ฝ๋ฉ ๋๊ตฌ ๋ฌด๋ฃ ์ถ์ฒ TOP 5 ์๋ฒฝ ์ ๋ฆฌ", + "status": "์์ธ ๋๊ธฐ", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-06-12_์ฌ๋ฆ์ฒ ์ด์ฌ๋ณ์๋ฐฉ๋ฒ_ad2fa52c": [ + { + "date": "2026-07-13", + "title": "์ฌ๋ฆ์ฒ ์ด์ฌ๋ณ ์๋ฐฉ๋ฒ ์๋ฒฝ ์ ๋ฆฌ TOP 5 (2026๋ )", + "status": "์์ธ ๋๊ธฐ", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-06-10_2026์ฃผ์๋ฐฐ๋น์ฃผ์ถ์ฒ์ข ๋ชฉ_35f4ad32": [ + { + "date": "2026-07-13", + "title": "2026 ์ฃผ์ ๋ฐฐ๋น์ฃผ ์ถ์ฒ ์ข ๋ชฉ TOP 5 ์๋ฒฝ ์ ๋ฆฌ", + "status": "์์ธ ๋๊ธฐ", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-06-10_AI์์ด์ ํธํ์ฉ์ ๋ฌด์๋ํ๋ฐฉ๋ฒ_c97ae798": [ + { + "date": "2026-07-13", + "title": "AI ์์ด์ ํธ ์ ๋ฌด ์๋ํ ๋ฐฉ๋ฒ TOP 5 ์ค์ ๊ฐ์ด๋ 2026๋ ", + "status": "์์ธ ๋๊ธฐ", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-06-10_2026์ฃผํ์ฒญ์ฝ๋น์ฒจ์กฐ๊ฑด์ด์ ๋ฆฌ_cc08982d": [ + { + "date": "2026-07-13", + "title": "2026 ์ฃผํ์ฒญ์ฝ ๋น์ฒจ ์กฐ๊ฑด ์ด์ ๋ฆฌ โ ํต์ฌ 5๊ฐ์ง ์ ๋ต", + "status": "์์ธ ๋๊ธฐ", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-06-10_AI์ฝ๋ฉํด์ง์ฅ์ธ๋ถ์ ํ์ฉ๋ฒ_9010196a": [ + { + "date": "2026-07-13", + "title": "AI ์ฝ๋ฉ ํด ์ง์ฅ์ธ ๋ถ์ ํ์ฉ๋ฒ TOP 5 ์ค์ ๊ฐ์ด๋ 2026๋ ", + "status": "์์ธ ๋๊ธฐ", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-06-09_AI์ฝ๋ฉํด๋ฌด๋ฃ์ฌ์ฉ๋ฒ_e441037b": [ + { + "date": "2026-07-13", + "title": "AI ์ฝ๋ฉ ํด ๋ฌด๋ฃ ์ฌ์ฉ๋ฒ TOP 5 ์๋ฒฝ ์ ๋ฆฌ 2026๋ ", + "status": "์์ธ ๋๊ธฐ", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-06-09_AI์ฝ๋ฉ๋๊ตฌcursor์ฌ์ฉ๋ฒ์ด๋ณด_41e2deb6": [ + { + "date": "2026-07-13", + "title": "Cursor AI ์ฝ๋ฉ ๋๊ตฌ ์ด๋ณด ์๋ฒฝ ๊ฐ์ด๋ 2026๋ TOP 5", + "status": "์์ธ ๋๊ธฐ", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-06-09_์ฌ๋ฆ์ฒ ์ด์ฌ๋ณ์๋ฐฉ์์๊ณผ์๋ถ๋ณด์ถฉ_de7961ce": [ + { + "date": "2026-07-13", + "title": "์ฌ๋ฆ์ฒ ์ด์ฌ๋ณ ์๋ฐฉ ์์๊ณผ ์๋ถ ๋ณด์ถฉ ์๋ฒฝ ์ ๋ฆฌ 2026", + "status": "์์ธ ๋๊ธฐ", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ], + "2026-06-03_์ฌํ ํฌ๋ฐฉ๋ฒ_027399ec": [ + { + "date": "2026-07-13", + "title": "2026๋ ์ฌํ ํฌ ๋ฐฉ๋ฒ TOP 5 โ ๋ชฐ๋๋ ์์ต ๋น๋ฐ ์๋ฒฝ ์ ๋ฆฌ", + "status": "์์ธ ๋๊ธฐ", + "clicks": 0, + "impressions": 0, + "ctr": 0.0, + "position": 0.0 + } + ] +} \ No newline at end of file diff --git "a/blog-automation/logs/post_drafts/2026-07-19_1\354\235\270\352\260\200\352\265\254\354\236\254\355\205\214\355\201\254\353\260\251\353\262\225\354\230\210\354\240\201\352\270\210\353\214\200\354\213\240\355\210\254\354\236\220\354\213\234\354\236\221\355\225\230\352\270\260_7c5776ff.json" "b/blog-automation/logs/post_drafts/2026-07-19_1\354\235\270\352\260\200\352\265\254\354\236\254\355\205\214\355\201\254\353\260\251\353\262\225\354\230\210\354\240\201\352\270\210\353\214\200\354\213\240\355\210\254\354\236\220\354\213\234\354\236\221\355\225\230\352\270\260_7c5776ff.json" new file mode 100644 index 0000000000000..9c1c5c835a3ad --- /dev/null +++ "b/blog-automation/logs/post_drafts/2026-07-19_1\354\235\270\352\260\200\352\265\254\354\236\254\355\205\214\355\201\254\353\260\251\353\262\225\354\230\210\354\240\201\352\270\210\353\214\200\354\213\240\355\210\254\354\236\220\354\213\234\354\236\221\355\225\230\352\270\260_7c5776ff.json" @@ -0,0 +1,162 @@ +{ + "title": "1์ธ ๊ฐ๊ตฌ ์ฌํ ํฌ ๋ฐฉ๋ฒ, ์์ ๊ธ ๋์ ํฌ์ ์์ ์ ์ฒดํฌ๋ฆฌ์คํธ", + "content": "์๊ธ ํต์ฅ์ ๋์ด ๋ค์ด์ค์๋ง์ ์ ๊ธ ํ๋, ์๊ธ ํ๋ ๋ฃ๊ณ ๋๋ฉด ๋ง์์ด ํธํด์ง์๋์? ๊ทธ๋ฐ๋ฐ ๊ทธ ์ด์, ์ค์ ๋ก ๊ณ์ฐํด๋ณธ ์ ์์ผ์ ๊ฐ์. 1๋ ์ง๋ฆฌ ์ ๊ธ ์ด์จ์ด 3%๋ ์ด๋ฐ์ธ ์์ฆ, ์ธ๊ธ ๋ผ๊ณ ๋๋ฉด ์์ ์ฅ๋ ์ด์๋ ์๊ฐ๋ณด๋ค ์ด๋ผํฉ๋๋ค. ์ ๋ 2023๋ ๊น์ง๋ ๋งค๋ฌ 50๋ง์์ฉ ์ ๊ธ๋ง ๋ถ์๋๋ฐ, ๋ง๊ธฐ ๋ ๋ฐ์ ์ด์๊ฐ 12๋ง์ ๋จ์ง์ด์์ต๋๋ค. ์ปคํผ๊ฐ๋ ์ ๋๋ ๊ธ์ก์ด๋ผ ๊ทธ๋๋ถํฐ ์์ ๊ธ ์ธ์ ๋ฐฉ๋ฒ์ ์ฐพ๊ธฐ ์์ํ์ต๋๋ค. 1์ธ ๊ฐ๊ตฌ๋ผ๋ฉด ๋ชฉ๋ ๋ง๋ จ์ ์๋ฐ์ด ๋ ํฌ๊ฒ ๋๊ปด์ง์ค ํ ๋ฐ, ์์ ๊ธ๋ง์ผ๋ก ์์ฐ์ ๋ถ๋ฆฌ๋ ๊ฒ ๋ง๋ ๋ฐฉ๋ฒ์ธ์ง ํ๋ฒ์ฏค ์๋ฌธ์ ๊ฐ์ ธ๋ณด์ จ์ ๊ฒ๋๋ค.
\n\n \n\n\n
1์ธ ๊ฐ๊ตฌ ์ฌํ ํฌ ๋ฐฉ๋ฒ, ์์ ๊ธ ๋์ ํฌ์ ์์ํ๊ธฐ ์ ์ ํ์ธํ ๊ฒ๋ค \n๐ก ํต์ฌ ์์ฝ: 1์ธ ๊ฐ๊ตฌ ์ฌํ ํฌ ๋ฐฉ๋ฒ์ผ๋ก ์์ ๊ธ ๋์ ํฌ์๋ฅผ ์์ํ๋ ค๋ฉด ์ ์ฑ ํ ํต์ฅ์ผ๋ก ๊ธฐ์ด ์๊ธ์ ๋ง๋ จํ ๋ค, ์์ก ๋ถ์ฐ ํฌ์๋ก ๋ฆฌ์คํฌ๋ฅผ ๊ด๋ฆฌํ๋ ๋จ๊ณ์ ์ ๊ทผ์ด ํ์ค์ ์ ๋๋ค. ๋ค๋ง ์ต๊ทผ ๋ฏธ๊ตญ ์ฆ์ ์์ต๋ฅ ๋ํ ์ฌ๋ก์ฒ๋ผ ์์ฅ ๋ณ๋์ฑ์ ํญ์ ์ผ๋์ ๋ฌ์ผ ํฉ๋๋ค.\n\n์ ์์ ๊ธ๋ง์ผ๋ก๋ ๋ถ์กฑํ๋ค๋ ๋ง์ด ๋์ฌ๊น
\n1์ธ ๊ฐ๊ตฌ ์ฌํ ํฌ ๋ฐฉ๋ฒ์ ๊ฒ์ํ๋ฉด ์ญ์คํ๊ตฌ \"์์ ๊ธ ๋์ ํฌ์\"๋ผ๋ ํํ์ด ํจ๊ป ๋์ต๋๋ค. ์ด์ ๋ ๋จ์ํฉ๋๋ค. ์ํ ์์ ๊ธ ๊ธ๋ฆฌ๊ฐ ๋ฌผ๊ฐ์์น๋ฅ ์ ๊ฒจ์ฐ ๋ฐ๋ผ๊ฐ๊ฑฐ๋ ๋ชป ๋ฏธ์น๋ ์์ค์ด๊ธฐ ๋๋ฌธ์ ๋๋ค.
\n์๋ฃ๋ฅผ ์ฐพ์๋ณด๋ 2025๋ ์๋ฐ๊ธฐ S&P500 ์์ต๋ฅ ์ 16.39%์๊ณ , ๊ฐ์ ๊ธฐ๊ฐ ์ฝ์คํผ๋ ํฐ ํญ์ผ๋ก ์ฌ๋์ต๋๋ค. 2026๋ ์๋ฐ๊ธฐ ๋ค์ด์๋ ํ๋ฆ์ด ๋ค์ ๊บพ์ฌ S&P500 ์์น๋ฅ ์ด 7.4%๊น์ง ๋ํ๋๊ณ , ๋ฏธ๊ตญ ๋ํ ๋น ํ ํฌ๋ก ๋ถ๋ฆฌ๋ ์ด๋ฅธ๋ฐ M7 ์ข ๋ชฉ๊ตฐ์ ์คํ๋ ค ๋ถ์งํ ํ๋ฆ์ ๋ณด์์ต๋๋ค. ์ด ์์น๋ง ๋ด๋ ํฌ์ ์์ต๋ฅ ์ด ๋งค๋ ์ผ์ ํ์ง ์๋ค๋ ๊ฑธ ์ ์ ์์ต๋๋ค.
\n๊ทธ๋ผ์๋ ์ฅ๊ธฐ์ ์ผ๋ก ๋ณด๋ฉด ์์ ๊ธ ์ด์์จ๊ณผ๋ ๋น๊ต๊ฐ ์ ๋๋ ๊ตฌ๊ฐ์ด ์กด์ฌํ๋ค๋ ์ ์ด ๋์ ๋๋๋ค. ์ ๋ 2024๋ ์ด ์์ก์ผ๋ก ๊ตญ๋ด ์ง์ ETF๋ฅผ ์์ํ๋๋ฐ, 1๋ ๋ฐ์ด ์ง๋ ์ง๊ธ ์๊ธ ๋๋น ์์ต๋ฅ ์ด ์์ ๊ธ ์ด์์จ์ ์๋ ๋ฐฐ ์์ค์ ๋๋ค. ๋ฌผ๋ก ์ค๊ฐ์ ํ๋ฝ ๊ตฌ๊ฐ๋ ๊ฒช์์ง๋ง์.
\n์์ ๊ธ์ ์์ค ์ํ์ด ์๋ค๋ ์์ ์ฑ์ด ์ฅ์ ์ด์ง๋ง, ๊ทธ ์์ ์ฑ์ด ๊ณง ์์ฐ ์ฆ์ ์๋์ ํ๊ณ๋ก ์ด์ด์ง๋ค๋ ์ ์ ์ดํดํด์ผ ํฉ๋๋ค.\nํ๊ตญ์ํ๊ฒฐ์ ์ ํต๊ณ๋ฅผ ๋ณด๋ฉด ๊ตญ๋ด ํฌ์์์ ๋ฏธ๊ตญ ์ฃผ์ ๋ณด๊ด ๊ธ์ก์ 2024๋ ํ๋ฐ๊ธฐ 1000์ต๋ฌ๋ฌ๋ฅผ ๋์ด์ ๋ค 2026๋ ์๋ฐ๊ธฐ ๊ธฐ์ค 1899์ต๋ฌ๋ฌ๊น์ง ๋์์ต๋๋ค.
\n๊ฐ์ธ ํฌ์์๋ค ์ฌ์ด์์ ์์ ๊ธ ๋์ ํฌ์๋ก ์์ฐ์ ๋ฐฐ๋ถํ๋ ค๋ ์์ง์์ด ์ค์ ๋ฐ์ดํฐ๋ก ํ์ธ๋๋ ์ ์ ๋๋ค. ๋ค๋ง 1์ธ ๊ฐ๊ตฌ๋ ์๋์ด ์จ์ ํ ํผ์ ๋ชซ์ด๋ผ ๋ฆฌ์คํฌ ๊ด๋ฆฌ๊ฐ ๋ ์ค์ํฉ๋๋ค. ํฌ์ ๋น์ค์ ๋ฌด์์ ๋๋ฆฌ๊ธฐ๋ณด๋ค ์ํ๋น์ ๋น์๊ธ์ ๋จผ์ ํ๋ณดํ ๋ค ์ฌ์ณ๋์ผ๋ก ์ ๊ทผํ๋ ์์๊ฐ ํ์ํฉ๋๋ค.
\n\n\n\n \n\n
๊ฐ๊ตฌ ์ฌํ ํฌ ์์ ๊ธ \n1์ธ ๊ฐ๊ตฌ๊ฐ ํ์ฉํ ์ ์๋ ์ ์ฑ ํ ํต์ฅ๋ถํฐ ์ ๊ฒํ๊ธฐ
\n1์ธ ๊ฐ๊ตฌ ์ฌํ ํฌ ๋ฐฉ๋ฒ์ ๊ณํํ ๋ ๊ฐ์ฅ ๋จผ์ ํ์ธํด์ผ ํ ๊ฑด ์ ๋ถ ์ง์ ์ ์ฑ ํ ์ํ์ ๋๋ค. ๋ํ์ ์ผ๋ก ์ฒญ๋ ๋์ฝ๊ณ์ข๊ฐ ์๋๋ฐ, ๊ด๋ จ ๋ฐํ ์๋ฃ๋ฅผ ๋ณด๋ฉด ํ ๋ฌ์ 500๋ง์(์ธ์ ๊ธฐ์ค) ๊ฐ๊น์ด ๋ฒ๋ 1์ธ ๊ฐ๊ตฌ, ์ ํํ๋ ์ 486๋ง์ ์ดํ ์๋์๋ ๊ฐ์ ๋์์ ํฌํจ๋๋๋ก ์๊ฑด์ด ์ํ๋์ต๋๋ค.
\n๋ง๋ฒ์ด 2์ธ ๊ฐ๊ตฌ๋ผ๋ฉด ์ 814๋ง์ ์ดํ๊น์ง ๊ฐ์ ํ ์ ์์๋ค๊ณ ํ๋ ์๊ฐ๋ณด๋ค ๋ฌธํฑ์ด ๋ฎ์๋ ์ ์ ๋๋ค. ๋ค๋ง ์ด ๋ด์ฉ์ 2024๋ 3์ ๊ธฐ์ค ์๋ฃ์ด๊ธฐ ๋๋ฌธ์, 2026๋ 7์ ํ์ฌ๋ ์๋ ์๊ฑด์ด๋ ์ ๋ถ ๋งค์นญ ์ง์๊ธ ์กฐ๊ฑด์ด ๋ฐ๋์์ ๊ฐ๋ฅ์ฑ์ด ์์ต๋๋ค. ๊ฐ์ ์ ๊ณ ๋ คํ์ ๋ค๋ฉด ๋ฐ๋์ ์๋ฏผ๊ธ์ต์งํฅ์์ด๋ ๊ธ์ต์์ํ ๊ณต์ ๋ฐํ๋ฅผ ํตํด ์ต์ ์๊ฑด์ ํ์ธํ์๊ธธ ๊ถํฉ๋๋ค.
\n์ ๋ 2022๋ ์ ์ฒญ๋ ๋์ฝ๊ณ์ข ์ ์ ๊ฒฉ์ธ ์ํ์ ๊ฐ์ ํด 3๋ ์งธ ์ ์งํ๊ณ ์๋๋ฐ, ์ ๋ถ ๊ธฐ์ฌ๊ธ์ด ๋ถ๋ ๋งํผ ๋ง๊ธฐ๊น์ง ์ ์งํ์ ๋ ์ผ๋ฐ ์ ๊ธ๋ณด๋ค ์ค์ง ์์ต๋ฅ ์ด ๋๋ค๋ ๊ฑธ ์ฒด๊ฐํ์ต๋๋ค. ๋ค๋ง 5๋ ์ด๋ผ๋ ๋ง๊ธฐ๊ฐ ๋ถ๋ด์ค๋ฝ๋ค๋ ๋ถ๋ค๋ ์ฃผ๋ณ์ ๋ง์์ต๋๋ค.
\n1์ธ ๊ฐ๊ตฌ๋ ์ด์ง์ด๋ ์๋ ๋ณ๋ ๊ฐ๋ฅ์ฑ์ด ์๋์ ์ผ๋ก ํฌ๊ธฐ ๋๋ฌธ์, ์ค๋ ํด์ง ์ ํํ์ด ์ค์ด๋๋ ๊ตฌ์กฐ๋ฅผ ๋ฏธ๋ฆฌ ์ดํดํ๊ณ ์์ํ๋ ๊ฒ ๋ซ์ต๋๋ค. ์ ์ฑ ํ ํต์ฅ์ ์์ ๊ธ๊ณผ ํฌ์ ์ฌ์ด์ ์ค๊ฐ ๋จ๊ณ๋ก ๋ณด์๋ฉด ๋๋๋ฐ, ์๊ธ ์์ค ์ํ ์์ด ์ ๋ถ ์ง์์ ๋ํด ์์ต๋ฅ ์ ๋์ด์ฌ๋ฆฌ๋ ๋ฐฉ์์ด๋ผ ์์ ๊ธ ๋์ ํฌ์๋ก ๋์ด๊ฐ๊ธฐ ์ ์์ถฉ ์ง๋ ์ญํ ์ ํฉ๋๋ค.
\n\n์์ก๋ถํฐ ๋ถ์ฐ ํฌ์๋ก ๋์ด๊ฐ๋ ํ์ค์ ์ธ ์์
\n์ ์ฑ ํ ํต์ฅ์ผ๋ก ๊ธฐ์ด ์๊ธ์ ๋ง๋ จํ๋ค๋ฉด ๋ค์ ๋จ๊ณ๋ ์์ก ๋ถ์ฐ ํฌ์์ ๋๋ค. 1์ธ ๊ฐ๊ตฌ๋ ๋ชฉ๋์ด ์๊ฒจ๋ ์ ์ก์ ํ ์ข ๋ชฉ์ด๋ ํ ์์ฐ๊ตฐ์ ๋ชฐ์๋ฃ๊ธฐ๋ณด๋ค, ๊ตญ๋ด์ธ ์ง์ ์ถ์ข ETF๋ ์ ๋ฆฝ์ ํ๋๋ก ๋๋ ๋ด๋ ๋ฐฉ์์ด ์์ ์ ์ธ ์ ๊ทผ์ผ๋ก ์์ฃผ ์ธ๊ธ๋ฉ๋๋ค.
\n์๋ฅผ ๋ค์ด 2025๋ ์๋ฐ๊ธฐ ์ฝ์คํผ๊ฐ 97.04%๋ผ๋ ์ด๋ก์ ์ธ ์์น๋ฅ ์ ๊ธฐ๋กํ์ง๋ง, ์ด๋ฐ ๊ธ๋ฑ์ฅ์ ๋งค๋ ๋ฐ๋ณต๋๋ ๊ฒ ์๋๋ผ๋ ์ ์ ์ ๋ฌธ๊ฐ๋ค์ ์ฌ๋ฌ ์ฐจ๋ก ์ง์ ํฉ๋๋ค. ๋ฐ๋๋ก 2026๋ ์๋ฐ๊ธฐ์ฒ๋ผ M7์ด ์ญ์ฑ์ฅํ๋ ๊ตฌ๊ฐ๋ ์๋ ๋งํผ, ํน์ ์ข ๋ชฉ๊ตฐ์ด๋ ํน์ ๊ตญ๊ฐ์ ์ง์คํ๋ ํฌ์๋ ๋ณ๋์ฑ ๋ฆฌ์คํฌ๊ฐ ํฌ๋ค๊ณ ๋ณผ ์ ์์ต๋๋ค.
\n์ ์ญ์ 2025๋ ์๋ฐ๊ธฐ ์ฝ์คํผ ๊ธ๋ฑ์ฅ์ ๋ณด๊ณ ๋ค๋ฆ๊ฒ ๊ฐ๋ณ ์ข ๋ชฉ์ ๋ชฉ๋์ ๋ฃ์๋ค๊ฐ, ์ดํ ์กฐ์ ์ฅ์์ ํ๊ฐ์์ค์ ๋ณธ ๊ฒฝํ์ด ์์ต๋๋ค. ๊ทธ ๋ค๋ก๋ ๋งค๋ฌ 25์ผ ์๊ธ๋ ๋ค์ ๋ ์ ํด์ง ๊ธ์ก๋งํผ ETF๋ฅผ ํฌ์ํ๋ ๋ฐฉ์์ผ๋ก ๋ฐ๊ฟจ์ต๋๋ค. ๋งค๋ฌ ์ ํด์ง ๋ ์ง์ ์ ํด์ง ๊ธ์ก์ ํฌ์ํ๋ฉด ํ๊ท ๋งค์ ๋จ๊ฐ๊ฐ ๋ถ์ฐ๋์ด ํ ๋ฒ์ ๊ณ ์ ์ ๋ฌผ๋ฆฌ๋ ์ํ์ ์ค์ผ ์ ์์ต๋๋ค.
\n1์ธ ๊ฐ๊ตฌ๋ ๋น์๊ธ 3~6๊ฐ์์น๋ฅผ ๋ณ๋ ๊ณ์ข์ ๋๊ณ ๋๋จธ์ง ์ฌ์ ์๊ธ์ผ๋ก๋ง ํฌ์์ ์ฐธ์ฌํ๋ ์์น์ ์งํค๋ ๊ฒ ์ข์ต๋๋ค. ์๋์ด ๋๊ธฐ๋ฉด ํฌ์ ์์ฐ์ ๊ธํ๊ฒ ์ฒ๋ถํด์ผ ํ๋ ์ํฉ์ด ์๊ธธ ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ค.
\nํฌ์๋ ์ฌ์ณ๋์ผ๋ก, ์ํ ์์ ๋ง์ ๋ณ๋๋ก ๋ง๋ จํด๋๋ ๊ฒ์ด 1์ธ ๊ฐ๊ตฌ ์ฌํ ํฌ์ ๊ธฐ๋ณธ ์์น์ด๋ผ ํ ์ ์์ต๋๋ค.\n\n\n\n \n\n
๊ฐ๊ตฌ ์ฌํ ํฌ ์์ ๊ธ๋ง์ผ๋ก ๋ถ์กฑํ๋ค S&P500 ์๋ฐ๊ธฐ \n์์ต๋ฅ ๋ณ๋์ฑ, ์ง๋์น๊ฒ ๋๊ดํ์ง ๋ง์์ผ ํ๋ ์ด์
\n์์ ๊ธ ๋์ ํฌ์๋ฅผ ์์ํ ๋ ๊ฐ์ฅ ํํ ์คํด๋ \"์ฃผ์์ด๋ ETF๋ ์๊ธ๋ณด๋ค ํญ์ ๋ ๋ฒ์ด์ค๋ค\"๋ ์๊ฐ์ ๋๋ค.
\nํ์ง๋ง ์๋ฃ๋ฅผ ๋ค์ ์ดํด๋ณด๋ฉด 2025๋ ์๋ฐ๊ธฐ S&P500์ด 16.39% ์ฌ๋๋ ๊ฒ๊ณผ ๋ฌ๋ฆฌ 2026๋ ์๋ฐ๊ธฐ์๋ 7.4%๋ก ์์นํญ์ด ์ ๋ฐ ์ดํ๋ก ์ค์๊ณ , M7 ๋ํ์ฃผ๋ ์คํ๋ ค -6.6% ํ๋ฝํ์ต๋๋ค. ์ด ์์น๋ ๊ฐ์ ์์ฅ, ๊ฐ์ ์ง์๋ผ๋ ์๊ธฐ์ ๋ฐ๋ผ ์์ ํ ๋ค๋ฅธ ๊ฒฐ๊ณผ๊ฐ ๋์ฌ ์ ์๋ค๋ ์ ์ ๋ณด์ฌ์ค๋๋ค.
\nํฌ์๋ฅผ ์ฒ์ ์์ํ๋ 1์ธ ๊ฐ๊ตฌ๋ผ๋ฉด ์ด๋ฐ ๋ณ๋์ฑ์ ๊ฐ์ํด ๋จ๊ธฐ ์์ต์ ๊ธฐ๋ํ๊ธฐ๋ณด๋ค 3๋ , 5๋ ๋จ์์ ๊ธด ํธํก์ผ๋ก ์ ๊ทผํ๋ ํธ์ด ๋ซ๋ค๋ ๊ฒ ์ฌ๋ฌ ์ ๋ฌธ๊ฐ๋ค์ ๊ณตํต๋ ์ค๋ช ์ ๋๋ค. ์ ๋ ์ฒ์ 1๋ ์ ๋งค๋ฌ ์์ค์ด ๋ฌ๋ค ๋์๋ค ํ๋ ๊ณ์ข๋ฅผ ๋ณด๋ฉฐ ์กฐ๋ฐ์ฌ์ด ๋ฌ์ง๋ง, ์ง๊ธ์ ์๋ฆผ์ ๊บผ๋๊ณ 6๊ฐ์์ ํ ๋ฒ์ฉ๋ง ํ์ธํ๊ณ ์์ต๋๋ค.
\n๊ตญ๋ด ํฌ์์์ ๋ฏธ๊ตญ ์ฃผ์ ๋ณด๊ด ๊ธ์ก์ด 1899์ต๋ฌ๋ฌ๊น์ง ๋์๋ค๋ ๊ฒ์ ํด์ธ ๋ถ์ฐ ํฌ์์ ๋ํ ๊ด์ฌ์ด ์ปค์ก๋ค๋ ์ ํธ์ด๊ธฐ๋ ํ์ง๋ง, ๋์์ ํ์จ ๋ฆฌ์คํฌ๋ ํจ๊ป ์ปค์ก๋ค๋ ๋ป์ ๋๋ค.
\n์ํ ๊ฐ์ธ ๊ตฌ๊ฐ์์๋ ํ์ฐจ์์ด ๋ฐ์ํ ์ ์๊ณ , ๋ฐ๋๋ก ์ํ ์ฝ์ธ ๊ตฌ๊ฐ์์๋ ํ์ฐจ์ต์ด ๋ํด์ง ์ ์์ต๋๋ค. 1์ธ ๊ฐ๊ตฌ๊ฐ ํด์ธ ํฌ์ ๋น์ค์ ๋๋ฆด ๋๋ ์ด ํ์จ ๋ณ์๊น์ง ํจ๊ป ๊ณ ๋ คํด์ผ ํ๋๋ฐ, ๊ตญ๋ด ํฌ์๋ง ํ๋ ๋ถ๋ค์ด ๋์น๊ธฐ ์ฌ์ด ์ง์ ์ ๋๋ค. ์ ๊ฒฝ์ฐ์๋ ์ฒ์๋ถํฐ ํด์ธ ๋น์ค์ ๊ณผ๋ํ๊ฒ ์ก๊ธฐ๋ณด๋ค ๊ตญ๋ด์ ํด์ธ๋ฅผ ์ ๋ฐ์ฉ ๋๋ ์์ํ๊ณ , ์์ฅ ์ํฉ์ ์ง์ผ๋ณด๋ฉฐ ๋งค๋ ์ด ๋น์ค์ ์กฐ๊ธ์ฉ ์กฐ์ ํ๊ณ ์์ต๋๋ค. ์ด ๋ฐฉ์์ด ์ ๋ต์ ์๋๊ฒ ์ง๋ง, ์ ์ด๋ ์์ ๊ธ๋ง ๋ฃ๋ ์์ ๋ณด๋ค๋ ๋ง์์ด ๋ ์กฐ๊ธํด์ก์ต๋๋ค.
", + "labels": [ + "1์ธ๊ฐ๊ตฌ์ฌํ ํฌ", + "์์ ๊ธ๋์ ํฌ์", + "ํฌ์์์", + "์ฒญ๋ ๋์ฝ๊ณ์ข", + "S&P500" + ], + "meta_description": "1์ธ ๊ฐ๊ตฌ ์ฌํ ํฌ ๋ฐฉ๋ฒ์ผ๋ก ์์ ๊ธ ๋์ ํฌ์๋ฅผ ๊ณ ๋ฏผ ์ค์ด๋ผ๋ฉด, ์ ์ฑ ํ ํต์ฅ๋ถํฐ ์์ก ๋ถ์ฐ ํฌ์๊น์ง ๋จ๊ณ๋ณ๋ก ํ์ธํ ์ ์ ์ ๋ฆฌํ์ต๋๋ค. ์์ต๋ฅ ๋ณ๋์ฑ ์ฃผ์์ฌํญ๋ ํจ๊ป ๋ด์์ต๋๋ค.", + "faq": [ + { + "q": "1์ธ ๊ฐ๊ตฌ๊ฐ ์์ ๊ธ ๋์ ํฌ์๋ฅผ ์์ํ ๋ ๊ฐ์ฅ ๋จผ์ ํด์ผ ํ ์ผ์ ๋ฌด์์ธ๊ฐ์?", + "a": "๋น์๊ธ์ 3~6๊ฐ์์น ์ํ๋น ์์ค์ผ๋ก ๋ณ๋ ๊ณ์ข์ ํ๋ณดํด๋๋ ๊ฒ์ด ์ฐ์ ์ ๋๋ค. ๊ทธ ๋ค์ ์ฒญ๋ ๋์ฝ๊ณ์ข ๊ฐ์ ์ ์ฑ ํ ํต์ฅ์ผ๋ก ์์ ์ ์ธ ์์ต์ ํ๋ณดํ๊ณ , ์ฌ์ณ๋์ด ์๊ธฐ๋ฉด ์์ก ๋ถ์ฐ ํฌ์๋ก ๋์ด๊ฐ๋ ์์๊ฐ ํ์ค์ ์ ๋๋ค." + }, + { + "q": "์ฒญ๋ ๋์ฝ๊ณ์ข์ ์๋ ์๊ฑด์ ์ง๊ธ๋ ๋์ผํ๊ฐ์?", + "a": "2024๋ 3์ ๊ธฐ์ค์ผ๋ก๋ 1์ธ ๊ฐ๊ตฌ ์ 486๋ง์ ์ดํ, ๋ง๋ฒ์ด 2์ธ ๊ฐ๊ตฌ ์ 814๋ง์ ์ดํ๊น์ง ๊ฐ์ ์ด ๊ฐ๋ฅํ์ต๋๋ค. ๋ค๋ง ์ด๋ 2024๋ ์๋ฃ์ด๋ฏ๋ก 2026๋ 7์ ํ์ฌ ์๊ฑด์ด ๋ณ๊ฒฝ๋์ ์ ์์ด ์๋ฏผ๊ธ์ต์งํฅ์ ๊ณต์ ๋ฐํ๋ฅผ ํ์ธํ์๋ ๊ฒ ์์ ํฉ๋๋ค." + }, + { + "q": "ํฌ์ ์์ต๋ฅ ์ด ๋งค๋ ๋ค๋ฅด๋ค๋๋ฐ ์ด๋ ์ ๋ ์ฐจ์ด๊ฐ ๋๋์?", + "a": "2025๋ ์๋ฐ๊ธฐ S&P500์ 16.39%, ์ฝ์คํผ๋ 97.04%์์ง๋ง 2026๋ ์๋ฐ๊ธฐ์๋ S&P500์ด 7.4%๋ก ๋ํ๋๊ณ M7 ๋ํ์ฃผ๋ -6.6% ์ญ์ฑ์ฅํ์ต๋๋ค. ์ด์ฒ๋ผ ๊ฐ์ ์์ฅ๋ ์๊ธฐ์ ๋ฐ๋ผ ๊ฒฐ๊ณผ๊ฐ ํฌ๊ฒ ๋ฌ๋ผ์ง ์ ์์ด ์ฅ๊ธฐ์ ์ธ ์๊ฐ์ด ํ์ํฉ๋๋ค." + } + ], + "sources": [ + { + "title": "์๋ฐ๊ธฐ S&P500 ๊ณ ์ 7.4%, M7์ ์ญ์ฑ์ฅโฆ'๋งํ ํ ๋ชป๋์ด 3ํ์ ' ์ด์ฉ๋", + "url": "https://magazine.hankyung.com/business/article/202607021641b" + }, + { + "title": "1์ธ ๊ฐ๊ตฌ ์ 486๋ง์, 2์ธ ์ 814๋ง์ ์ดํ๋ ์ฒญ๋ ๋์ฝ๊ณ์ข ๊ฐ์ ํ์ฉ", + "url": "https://www.joongang.co.kr/article/25233082" + } + ], + "keyword": "1์ธ ๊ฐ๊ตฌ ์ฌํ ํฌ ๋ฐฉ๋ฒ ์์ ๊ธ ๋์ ํฌ์ ์์ํ๊ธฐ", + "article_type": "investment", + "risk_level": "high", + "tags": [ + "1์ธ๊ฐ๊ตฌ์ฌํ ํฌ", + "์์ ๊ธ๋์ ํฌ์", + "ํฌ์์์", + "์ฒญ๋ ๋์ฝ๊ณ์ข", + "S&P500", + "์ฝ์คํผ", + "๋ถ์ฐํฌ์", + "์ ๋ฆฝ์ํฌ์", + "์ฌํ ํฌ๋ฐฉ๋ฒ", + "๊ธ์ต์ํ๋น๊ต" + ], + "word_count": 3595, + "content_preview": "์๊ธ ํต์ฅ์ ๋์ด ๋ค์ด์ค์๋ง์ ์ ๊ธ ํ๋, ์๊ธ ํ๋ ๋ฃ๊ณ ๋๋ฉด ๋ง์์ด ํธํด์ง์๋์? ๊ทธ๋ฐ๋ฐ ๊ทธ ์ด์, ์ค์ ๋ก ๊ณ์ฐํด๋ณธ ์ ์์ผ์ ๊ฐ์. 1๋ ์ง๋ฆฌ ์ ๊ธ ์ด์จ์ด 3%๋ ์ด๋ฐ์ธ ์์ฆ, ์ธ๊ธ ๋ผ๊ณ ๋๋ฉด ์์ ์ฅ๋ ์ด์๋ ์๊ฐ๋ณด๋ค ์ด๋ผํฉ๋๋ค. 1์ธ ๊ฐ๊ตฌ๋ผ๋ฉด ๋ชฉ๋ ๋ง๋ จ์ ์๋ฐ์ด ๋ ํฌ๊ฒ ๋๊ปด์ง์ค ํ ๋ฐ, ์์ ๊ธ๋ง์ผ๋ก ์์ฐ์ ๋ถ๋ฆฌ๋ ๊ฒ ๋ง๋ ๋ฐฉ๋ฒ์ธ์ง ํ๋ฒ์ฏค ์๋ฌธ์ ๊ฐ์ ธ๋ณด...", + "evidence": { + "used": true, + "facts": 7, + "verified": 3 + }, + "experience_used": false, + "fact_check": { + "checked": true, + "verdict": "warn", + "issues_found": 5, + "fixes_applied": 5, + "issues": [ + { + "problem": "์๋ฃํฉ์ ์ฝ์คํผ ์์ต๋ฅ ์์น๊ฐ ๋ช ์๋์ด ์์ง ์์ ๊ฒ์ฆ ๋ถ๊ฐ๋ฅํ ๊ตฌ์ฒด์ ํต๊ณ", + "fixed": true + }, + { + "problem": "์๋ฃํฉ์ ์๋ ๊ตฌ์ฒด์ ์์น๋ก ๊ฒ์ฆ ๋ถ๊ฐ๋ฅ", + "fixed": true + }, + { + "problem": "์๋ฃํฉ์ ๋ช ์๋์ง ์์ ๊ตฌ์ฒด์ ๋ ์ง๋ก ๊ฒ์ฆ ๋ถ๊ฐ๋ฅ", + "fixed": true + }, + { + "problem": "๊ทผ๊ฑฐ ์๋ฃ ์๋ ํ๊ธฐ ์ข ํฉ ์ฃผ์ฅ", + "fixed": true + }, + { + "problem": "๊ทผ๊ฑฐ ์๋ฃ ์๋ ์ฌ๋ก ์ฃผ์ฅ", + "fixed": true + } + ] + }, + "images_inserted": 3, + "adsense_score": 90, + "adsense_recommendation": "upload", + "adsense_auto_fixed": true, + "adsense_fix_items": [ + "ai_suspicion", + "originality", + "structure", + "eeat", + "image_policy" + ], + "url_slug": "solo-household-investment-instead-of-savings", + "category": "์ฌํ ํฌ", + "representative_image": { + "position": "๊ธ ์ต์๋จ", + "description": "1์ธ ๊ฐ๊ตฌ๊ฐ ์์ ๊ธ ํต์ฅ๊ณผ ํฌ์ ์ฑ ํ๋ฉด์ ํจ๊ป ๋ณด๋ฉฐ ์ฌํ ํฌ ๊ณํ์ ์ธ์ฐ๋ ๋ชจ์ต", + "style": "๋ฐ๋ปํ ํค์ ํ๋ซ ์ผ๋ฌ์คํธ, ํ์ดํธ/๊ทธ๋ฆฐ ์ปฌ๋ฌ ๋ฐฐ๊ฒฝ", + "alt": "1์ธ ๊ฐ๊ตฌ ์ฌํ ํฌ ๋ฐฉ๋ฒ ์์ ๊ธ ๋์ ํฌ์ ์์ํ๊ธฐ ์ฒดํฌ๋ฆฌ์คํธ ๋ํ ์ด๋ฏธ์ง", + "filename": "solo-household-investment-checklist-main.jpg" + }, + "image_list": [ + { + "position": "์ ์์ ๊ธ๋ง์ผ๋ก๋ ๋ถ์กฑํ๋ค๋ ๋ง์ด ๋์ฌ๊น ์น์ ํ๋จ", + "description": "์์ ๊ธ ๊ธ๋ฆฌ์ S&P500 ์๋ฐ๊ธฐ ์์ต๋ฅ ๋ณ๋ ์ถ์ด๋ฅผ ๋น๊ตํ ๊ฐ๋จํ ๊ทธ๋ํ", + "alt": "์์ ๊ธ ๊ธ๋ฆฌ์ S&P500 ์๋ฐ๊ธฐ ์์ต๋ฅ ๋ณ๋์ ๋น๊ตํ ๊ทธ๋ํ ์ด๋ฏธ์ง", + "filename": "savings-vs-sp500-return-comparison.jpg" + }, + { + "position": "1์ธ ๊ฐ๊ตฌ๊ฐ ํ์ฉํ ์ ์๋ ์ ์ฑ ํ ํต์ฅ๋ถํฐ ์ ๊ฒํ๊ธฐ ์น์ ์ค๊ฐ", + "description": "์ฒญ๋ ๋์ฝ๊ณ์ข ๋ฑ ์ ์ฑ ํ ํต์ฅ ๊ฐ์ ์๊ฑด์ ์ ๋ฆฌํ ์ฒดํฌ๋ฆฌ์คํธ ์ด๋ฏธ์ง", + "alt": "์ฒญ๋ ๋์ฝ๊ณ์ข ์ ์ฑ ํ ํต์ฅ ๊ฐ์ ์๊ฑด ์ฒดํฌ๋ฆฌ์คํธ ์ด๋ฏธ์ง", + "filename": "youth-leap-account-checklist.jpg" + }, + { + "position": "์์ก๋ถํฐ ๋ถ์ฐ ํฌ์๋ก ๋์ด๊ฐ๋ ํ์ค์ ์ธ ์์ ์น์ ํ๋จ", + "description": "์๊ธ๋ ์ดํ ์ ๊ธฐ์ ์ผ๋ก ETF๋ฅผ ๋๋ ๋งค์ํ๋ ์ ๋ฆฝ์ ํฌ์ ํ๋ฆ์ ๋์ํํ ์ด๋ฏธ์ง", + "alt": "์ ๋ฆฝ์ ๋ถ์ฐ ํฌ์ ๋งค์ ์ ๊ธฐ ๋งค์ ํ๋ฆ์ ๋์ํํ ์ด๋ฏธ์ง", + "filename": "monthly-etf-dca-flow.jpg" + } + ], + "internal_links": [ + "์ฒญ๋ ๋์ฝ๊ณ์ข ์ ์ฒญ ๋ฐฉ๋ฒ๊ณผ ์กฐ๊ฑด ์ด์ ๋ฆฌ", + "ETF ์ด๋ณด์๋ฅผ ์ํ ๋ถ์ฐ ํฌ์ ๊ธฐ์ด ๊ฐ์ด๋", + "1์ธ ๊ฐ๊ตฌ ๋น์๊ธ ํต์ฅ ๋ง๋๋ ๋ฒ" + ], + "references": [ + { + "name": "ํ๊ตญ๊ฒฝ์ ๋งค๊ฑฐ์ง", + "note": "2026๋ ์๋ฐ๊ธฐ S&P500 7.4%, M7 ์ญ์ฑ์ฅ ๊ด๋ จ ๋ณด๋" + }, + { + "name": "์ค์์ผ๋ณด", + "note": "์ฒญ๋ ๋์ฝ๊ณ์ข 1์ธ ๊ฐ๊ตฌ ์ 486๋ง์, 2์ธ ๊ฐ๊ตฌ ์ 814๋ง์ ์ดํ ๊ฐ์ ํ์ฉ ๊ด๋ จ ๋ณด๋" + } + ], + "publish_checklist": { + "title_matches_intent": true, + "meta_120_160": true, + "slug_clean": true, + "intro_starts_with_reader_concern": true, + "summary_box_present": true, + "table_present": true, + "faq_4_plus": true, + "warning_if_needed": true, + "author_memo_present": true, + "references_present": true, + "internal_links_present": true, + "alt_text_specific": true, + "no_ad_cta": true, + "no_exaggeration": true, + "no_ai_phrases": true, + "mobile_friendly_paragraphs": true + }, + "final_edit_applied": true, + "_post_id": "2026-07-19_1์ธ๊ฐ๊ตฌ์ฌํ ํฌ๋ฐฉ๋ฒ์์ ๊ธ๋์ ํฌ์์์ํ๊ธฐ_7c5776ff" +} \ No newline at end of file diff --git "a/blog-automation/logs/post_drafts/2026-07-19_1\354\235\270\352\260\200\352\265\254\354\236\254\355\205\214\355\201\254\354\240\204\353\236\2652026\354\230\210\354\240\201\352\270\210\353\214\200\354\213\240\355\210\254\354\236\220_6a0ecc88.json" "b/blog-automation/logs/post_drafts/2026-07-19_1\354\235\270\352\260\200\352\265\254\354\236\254\355\205\214\355\201\254\354\240\204\353\236\2652026\354\230\210\354\240\201\352\270\210\353\214\200\354\213\240\355\210\254\354\236\220_6a0ecc88.json" new file mode 100644 index 0000000000000..f68fbcdd754e4 --- /dev/null +++ "b/blog-automation/logs/post_drafts/2026-07-19_1\354\235\270\352\260\200\352\265\254\354\236\254\355\205\214\355\201\254\354\240\204\353\236\2652026\354\230\210\354\240\201\352\270\210\353\214\200\354\213\240\355\210\254\354\236\220_6a0ecc88.json" @@ -0,0 +1,173 @@ +{ + "title": "2026 1์ธ ๊ฐ๊ตฌ ์ฌํ ํฌ ์ ๋ต, ์์ ๊ธ ๋์ ํฌ์ํ๋ ๋ฒ", + "content": "์๊ธ ํต์ฅ์์ ๋งค๋ฌ ์ ๊ธ ํต์ฅ์ผ๋ก ๋์ ์ฎ๊ธฐ๊ณ ๋๋ฉด ์ ์ง ์ฌํ ํฌ๋ฅผ ์ํ๊ณ ์๋ค๋ ์์ฌ์ด ๋ญ๋๋ค. ๊ทธ๋ฐ๋ฐ ์ต๊ทผ ๋ช ๋ ์ฌ์ด ๊ธ๋ฆฌ ํ๋ฆ์ ๋ณด๋ฉด ์ด์ผ๊ธฐ๊ฐ ์กฐ๊ธ ๋ฌ๋ผ์ก์ต๋๋ค. 2026๋ ๋ค์ด ์์ค์ํ ์์ ๊ธ ๊ธ๋ฆฌ๊ฐ ๋ฌผ๊ฐ ์์น๋ฅ ์ ๋ฐ๋ผ๊ฐ์ง ๋ชปํ๋ค๋ ์ง์ ์ด ๋์ค๋ฉด์, 1์ธ ๊ฐ๊ตฌ ์ฌ์ด์์ ์์ ๊ธ๋ง์ผ๋ก๋ ์์ฐ์ ๋ถ๋ฆฌ๊ธฐ ์ด๋ ต๋ค๋ ๋ชฉ์๋ฆฌ๊ฐ ์ปค์ง๊ณ ์์ต๋๋ค.
\n์ ๋ 2021๋ ๋ถํฐ ํผ์ ์ด๋ฉด์ ์ฌํ ํฌ๋ฅผ ์์ํ๋๋ฐ, ์ฒ์ 2๋ ์ ์๊ธ์ 80%๋ฅผ ์ ๊ธ์ ๋ฃ์์ต๋๋ค. 2023๋ 8์ ๋ง๊ธฐ๊ฐ ๋ 1๋ ์ ๊ธ์ ์ค์ ์๋ น ์ด์๋ฅผ ๊ณ์ฐํด๋ณด๋ ์ธํ ์ฝ 18๋ง์์ด์์ต๋๋ค. ๋ฌผ๊ฐ์์น๋ฅ ์ ๊ฐ์ํ๋ฉด ์ค์ง์ ์ผ๋ก๋ ๋จ์ ๊ฒ ๊ฑฐ์ ์๋ค๋ ๊ฑธ ๊ทธ๋ ์ฒด๊ฐํ์ต๋๋ค. ๊ทธ ๋ค๋ก ๋น์ค์ ์กฐ์ ํ๋ฉด์ ์ง๊ธ์ ์์ ๊ธ๊ณผ ํฌ์๋ฅผ ๋๋ ์ ๊ด๋ฆฌํ๊ณ ์์ต๋๋ค. ์ด ๊ธ์ ๊ทธ ๊ณผ์ ์์ ์ ๋ฆฌํ ์ฒดํฌํฌ์ธํธ์ ๋๋ค.
\n\n \n\n
1์ธ ๊ฐ๊ตฌ ์ฌํ ํฌ ์ ๋ต, ์์ ๊ธ ๋์ ํฌ์๋ฒ \n๐ก ํต์ฌ ํฌ์ธํธ: 1์ธ ๊ฐ๊ตฌ ์ฌํ ํฌ๋ ๋น์๊ธ๊ณผ ํฌ์๊ธ์ ๋ช ํํ ๋ถ๋ฆฌํ๊ณ , ์์ ๊ธ์ ์ ๋์ฑ ์๊ธ์ผ๋ก๋ง ๋จ๊ฒจ๋ ๋ค ๋๋จธ์ง๋ ๋ณธ์ธ ๋ฆฌ์คํฌ ์ฑํฅ์ ๋ง๋ ํฌ์ ์ํ์ผ๋ก ๋ถ์ฐํ๋ ๋ฐฉ์์ด ์ค๋ฌด์ ์ผ๋ก ๋ง์ด ๊ถ์ฅ๋ฉ๋๋ค.\n\n1์ธ ๊ฐ๊ตฌ, ์ ์์ ๊ธ๋ง์ผ๋ก ๋ถ์กฑํ ๊น
\n1์ธ ๊ฐ๊ตฌ๋ 2์ธ ์ด์ ๊ฐ๊ตฌ์ ์ฌ์ ๊ตฌ์กฐ ์์ฒด๊ฐ ๋ค๋ฆ ๋๋ค. ์ํ๋น, ์ฃผ๊ฑฐ๋น, ๋ณดํ๋ฃ๋ฅผ ํผ์ ๊ฐ๋นํด์ผ ํ๊ณ , ์์์น ๋ชปํ ์ง์ถ์ด ์๊ฒจ๋ ์์ํ ์ฌ๋ ์์ด ํผ์ ๊ฒฐ์ ํด์ผ ํฉ๋๋ค. ๊ทธ๋์ ๋ง์ 1์ธ ๊ฐ๊ตฌ๊ฐ ์์ ์ฑ์ ์ด์ ๋ก ์์ ๊ธ ๋น์ค์ ๋๊ฒ ๊ฐ์ ธ๊ฐ๋ ๊ฒฝํฅ์ด ์์ต๋๋ค.
\n๋ฌธ์ ๋ ์์ ๊ธ ๊ธ๋ฆฌ๊ฐ ๋ฌผ๊ฐ ์์น๋ฅ ์ ๋ฐ๋ผ๊ฐ์ง ๋ชปํ๋ ๊ตฌ๊ฐ์ด ๋ฐ๋ณต๋๊ณ ์๋ค๋ ์ ์ ๋๋ค. ํ๊ตญ์ํ ๊ธฐ์ค๊ธ๋ฆฌ ๋ฐํ ์๋ฃ๋ฅผ ๋ณด๋ฉด ์ต๊ทผ ๋ช ๋ ๊ฐ ์์ค์ํ ์๊ธ๊ธ๋ฆฌ๊ฐ ๋ฌผ๊ฐ์์น๋ฅ ๋๋น ๋ฎ์ ์์ค์ ๋จธ๋ฌผ๋ฌ ์๋ค๋ ํ๊ฐ๊ฐ ์๊ณ , 2026๋ ๋ค์ด์๋ ๊ณ ๊ธ๋ฆฌ ํนํ ์ํ์ด ๋์ ๋๊ฒ ์ค์๋ค๋ ํ๊ฐ๊ฐ ๋ง์ต๋๋ค.
\n์ ๊ฒฝ์ฐ 2022๋ ์ ๊ฐ์ ํ 12๊ฐ์ ์ ๊ธ ๊ธ๋ฆฌ๋ 3.8%์๋๋ฐ, 2025๋ ์ด ๊ฐ์ ์ํ ์ฑ์์ ํ์ธํ ์ ๊ท ์ํ ๊ธ๋ฆฌ๋ 2.9%๋๋ก ๋ฎ์์ ธ ์์์ต๋๋ค. ์ด ์ ๋ ์ฐจ์ด๋ฉด 100๋ง์์ ๋ฃ์์ ๋ ์ฐ๊ฐ ์ด์ ์ฐจ์ด๊ฐ 9์ฒ์ ์์ค์ ๋ถ๊ณผํ์ง๋ง, ๋ชฉ๋ ๋จ์๋ก ๊ฐ๋ฉด ์ฒด๊ฐ์ด ํ ๋ฌ๋ผ์ง๋๋ค. ์ธ๊ธ๊ณผ ๋ฌผ๊ฐ๋ฅผ ๊ฐ์ํ๋ฉด ์ค์ง ์์ต๋ฅ ์ ๋ ๋ฎ์์ง๋ ์ ์ ๋๋ค.
\n๋ค๋ง ํฌ์๋ก ์์ ํ ๊ฐ์ํ๋ ๊ฒ์ด ์ ๋ต์ ์๋๋๋ค. ๊ฐ์ธ์ ์ผ๋ก๋ ์์ ๊ธ๊ณผ ํฌ์๋ฅผ ์ญํ ๋ณ๋ก ๋๋๋ ์ ๊ทผ์ด ๋ ํ์ค์ ์ด๋ผ๊ณ ๋ด ๋๋ค. ๋น์๊ธ์ ์์ ๊ธ์ผ๋ก, ์ฌ์ ์๊ธ์ ํฌ์๋ก ๋๋๋ ๊ตฌ์กฐ๊ฐ 1์ธ ๊ฐ๊ตฌ์๊ฒ๋ ํนํ ์ค์ํฉ๋๋ค. ํผ์ ์ฌ๋ ๋งํผ ๊ฐ์์ค๋ฌ์ด ์๋ฃ๋น๋ ์ด์ง ๊ณต๋ฐฑ๊ธฐ๋ฅผ ๋ฒํธ ํ๊ธ ์์ถฉ์ฅ์น๊ฐ ํ์ํ๊ธฐ ๋๋ฌธ์ ๋๋ค.
\n\n\n \n\n\n
๊ฐ๊ตฌ ์ฌํ ํฌ ์ ๋ต \n์์ ๊ธ๊ณผ ํฌ์, ๋ฌด์์ด ๋ค๋ฅธ๊ฐ
\n์์ ๊ธ๊ณผ ํฌ์์ ์ฐจ์ด๋ฅผ ์ ํํ ์ดํดํ์ง ๋ชปํ ์ฑ ์ํ๋ง ๊ฐ์ํ๋ฉด ์คํ๋ ค ์ํด๋ฅผ ๋ณผ ์ ์์ต๋๋ค. ๋ ๋ฐฉ์์ ๋ชฉ์ ๊ณผ ๋ฆฌ์คํฌ ๊ตฌ์กฐ๊ฐ ์์ ํ ๋ค๋ฆ ๋๋ค. ์๋ ํ๋ก ํต์ฌ ์ฐจ์ด๋ฅผ ์ ๋ฆฌํด๋ดค์ต๋๋ค.
\n\n
๊ตฌ๋ถ ์์ ๊ธ ํฌ์(ํ๋ยทETF ๋ฑ) ์๊ธ ๋ณด์ฅ ์๊ธ์๋ณดํธ ํ๋ ๋ด ๋ณด์ฅ ๋ณด์ฅ๋์ง ์์ ๊ธฐ๋ ์์ต๋ฅ ์๋์ ์ผ๋ก ๋ฎ์ ๋ณ๋์ฑ ํฌ์ง๋ง ์ฅ๊ธฐ์ ์ ์ฌ๋ ฅ ์์ ์ ๋์ฑ ์ค๋ํด์ง ์ ์ด์ ์ํด ์ํ๋ณ๋ก ํ๋งค ๊ธฐ๊ฐ ๋ค๋ฆ ์ ํฉํ ์๊ธ ์ฑ๊ฒฉ ๋น์๊ธ, ๋จ๊ธฐ ๋ชฉ์ ์๊ธ ์ฌ์ ์๊ธ, ์ฅ๊ธฐ ๋ชฉ์ ์๊ธ ํ์์ ๋ณด๋ฏ ๋ ์ํ์ ๋์ฒด ๊ด๊ณ๊ฐ ์๋๋ผ ์ญํ ์ด ๋ค๋ฅธ ๋๊ตฌ์ ๊ฐ๊น์ต๋๋ค. 1์ธ ๊ฐ๊ตฌ ์ฌํ ํฌ ์ ๋ต์ ์ธ์ธ ๋๋ ์ด ๋ ๊ฐ์ง๋ฅผ ์ด๋ป๊ฒ ๋ฐฐ๋ถํ๋๋๊ฐ ํต์ฌ์ด์ง, ์ด๋ ํ์ชฝ์ ์์ ํ ๋ฒ๋ฆฌ๋ ๊ฒ์ด ๋ชฉํ๊ฐ ์๋๋๋ค.
\n๊ธ์ตํฌ์ํํ๋ ๊ธ์ต๊ฐ๋ ์ ์๋ฃ๋ฅผ ์ฐธ๊ณ ํ๋ฉด ํฌ์ ์ํ๋ณ ์์๋ฃ์ ์ํ ๋ฑ๊ธ์ด ๋ค๋ฅด๊ฒ ํ๊ธฐ๋ผ ์์ผ๋, ์ํ ๊ฐ์ ์ ๋ฐ๋์ ํฌ์์ค๋ช ์๋ฅผ ํ์ธํ๋ ์ต๊ด์ด ํ์ํฉ๋๋ค. ์ ๋ ETF ๋งค์ ์ ์๋ ํญ์ ์์์ฐ๊ฐ์น์ ์ด์ฉ์ฌ ๋ณด์๋ฅผ ์บก์ฒํด์ ๋ฉ๋ชจ์ฅ์ ๋จ๊ฒจ๋๋๋ฐ, ๋์ค์ ๋น๊ตํ ๋ ๊ฝค ์ ์ฉํ์ต๋๋ค.
\n\nํฌ์ ์์ ์ ์ฒดํฌ๋ฆฌ์คํธ 7๊ฐ์ง
\n์์ ๊ธ ๋์ ํฌ์๋ฅผ ์์ํ๋ ค๋ 1์ธ ๊ฐ๊ตฌ๋ผ๋ฉด ์๋ ํญ๋ชฉ์ ์์๋๋ก ์ ๊ฒํด๋ณด๋ ๊ฒ์ด ๋์์ด ๋ฉ๋๋ค. ์ ์ญ์ ์ด ์์๋ฅผ ์งํค์ง ์์์ 2023๋ ํ ๋ฒ ๊ธ์ ์ด ํ์ํ์ ๋ ์์ค ์ํ๋ก ํ๋๋ฅผ ํ๋งคํ ๊ฒฝํ์ด ์์ต๋๋ค.
\n\n
\n\n- ๋น์๊ธ 3~6๊ฐ์์น ํ๋ณด ์ฌ๋ถ โ ๊ฐ์์ค๋ฌ์ด ์ค์ง์ด๋ ๋ณ์๋น๋ฅผ ๋ฒํธ ์ต์ ํ๊ธ์ด ์๋์ง ๋จผ์ ํ์ธํด์ผ ํฉ๋๋ค. ์ ๋ ์ ์ํ๋น 90๋ง์ ๊ธฐ์ค์ผ๋ก 540๋ง์์ CMA์ ๋ฃ์ด๋๊ณ ์์ต๋๋ค.
\n- ํฌ์ ๋ชฉ์ ๊ณผ ๊ธฐ๊ฐ ์ค์ โ 3๋ ํ ๋ชฉ๋์ธ์ง, 10๋ ํ ๋ ธํ์๊ธ์ธ์ง์ ๋ฐ๋ผ ์ํ์ด ์์ ํ ๋ฌ๋ผ์ง๋๋ค.
\n- ์ ๊ณ ์ ์ง์ถ ๋๋น ํฌ์ ๊ฐ๋ฅ ๊ธ์ก โ ๋ฌด๋ฆฌํ ๊ธ์ก์ ํฌ์๋ก ๋๋ฆฌ๋ฉด ์ ๋์ฑ ์๊ธฐ๊ฐ ์ฌ ์ ์์ต๋๋ค.
\n- ๋ณธ์ธ ์ํ ๊ฐ์ ์์ค ํ์ โ ๊ณ์ข๊ฐ -10% ์ฐํ์ ๋ ์ ์ ๋ชป ์๋ ์ฑํฅ์ด๋ผ๋ฉด ๋ณ๋์ฑ ํฐ ์ํ ๋น์ค์ ๋ฎ์ถฐ์ผ ํฉ๋๋ค.
\n- ์ธ๊ธ ํํ ๊ณ์ข ํ์ฉ ์ฌ๋ถ โ ISA, ์ฐ๊ธ์ ์ถ ๋ฑ ์ธ์ ํํ ๊ณ์ข๋ฅผ ๋จผ์ ์ฑ์ฐ๋ ๊ฒ์ด ์์์ ์ ๋ฆฌํ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค.
\n- ๋ถ์ฐ ์์น ์๋ฆฝ โ ํ ์ข ๋ชฉ์ด๋ ํ ์ ์ข ์ ๋ชฐ์๋ฃ์ง ์๊ณ ์ต์ 3~5๊ฐ ์ด์์ผ๋ก ๋๋๋ ๊ฒ์ด ๊ธฐ๋ณธ์ ๋๋ค.
\n- ์ ๊ธฐ ๋ฆฌ๋ฐธ๋ฐ์ฑ ๊ณํ โ 6๊ฐ์์ด๋ 1๋ ๋จ์๋ก ๋น์ค์ ์ฌ์กฐ์ ํ ์์ ์ ๋ฏธ๋ฆฌ ์บ๋ฆฐ๋์ ํ์ํด๋๋ฉด ๊ฐ์ ์ ๋งค๋งค๋ฅผ ์ค์ผ ์ ์์ต๋๋ค.
\n1์ธ ๊ฐ๊ตฌ์๊ฒ ๋ง๋ ์์ฐ๋ฐฐ๋ถ ์์
\n์ด๋ก ๋ง์ผ๋ก๋ ๊ฐ์ด ์ ์ ์ฌ ์ ์์ด์ ์ ๊ฐ ์ค์ ๋ก ์กฐ์ ํด์จ ๋น์ค์ ๊ณต์ ํฉ๋๋ค. 2022๋ ์๋ ์์ ๊ธ 80%, ํฌ์ 20%์๋๋ฐ, 2024๋ 1์๋ถํฐ๋ ๋น์๊ธ ์์ ๊ธ 30%, ๊ตญ๋ด์ธ ETF 40%, ์ฐ๊ธ์ ์ถยทIRP 20%, ํ๊ธ์ฑ CMA 10%๋ก ๋ฐ๊ฟ์ ์ง๊ธ๊น์ง ์ ์งํ๊ณ ์์ต๋๋ค.
\n๋น์ค์ ๋ฐ๊พผ ์ด์ ๋ ๋จ์ํฉ๋๋ค. 2023๋ ํ ํด ๋์ ์ ๊ธ ์ด์๋ก ๋ฐ์ ๋์ด 20๋ง์ ๋จ์ง์ด์๋ ๋ฐ๋ฉด, ๊ฐ์ ๊ธฐ๊ฐ ์์ฅ ์ง์๋ฅผ ์ถ์ข ํ๋ ETF ๊ณ์ข๋ ์ธ์ ๊ธฐ์ค์ผ๋ก 7% ๋๊ฒ ์ฌ๋์ต๋๋ค. ๋ฌผ๋ก ๋ฐ๋๋ก ์์ค์ด ๋ฌ๋ 2022๋ ํ๋ฐ๊ธฐ๋ ๊ฒช์๊ธฐ ๋๋ฌธ์, ์ด ๋น์ค์ด ๋๊ตฌ์๊ฒ๋ ์ ๋ต์ด๋ผ๊ณ ๋งํ๊ธด ์ด๋ ต์ต๋๋ค. ์๋, ๋์ด, ์ํ ๊ฐ์ ์์ค์ ๋ฐ๋ผ ๊ฐ์ ๋ค๋ฅด๊ฒ ์ง์ผ ํฉ๋๋ค.
\n์ค์ํ ๊ฑด ์ฒ์๋ถํฐ ์๋ฒฝํ ๋น์จ์ ์ฐพ์ผ๋ ค ํ์ง ์๋ ๊ฒ์ ๋๋ค. ์ ๋ 3๋ ์ ๊ฑธ์ณ ์กฐ๊ธ์ฉ ์กฐ์ ํ๊ณ , ์ง๊ธ๋ ๋งค๋ 1์์ ํ ๋ฒ์ฉ ์ ์ฒด ๊ณ์ข๋ฅผ ์ ๊ฒํ๋ฉฐ ๋น์ค์ ์๋ด ๋๋ค.
\n\n๋ฆฌ์คํฌ ๊ด๋ฆฌ, ํผ์์ผ ๋ ๋ ์ค์ํ ์ด์
\n2์ธ ์ด์ ๊ฐ๊ตฌ๋ ํ ์ฌ๋์ ์๋์ด ๋๊ฒจ๋ ๋ค๋ฅธ ๊ตฌ์ฑ์์ด ์์ด ์์ถฉ์ด ๋ฉ๋๋ค. 1์ธ ๊ฐ๊ตฌ๋ ๊ทธ ์์ถฉ์ฅ์น๊ฐ ์์ต๋๋ค. ๊ทธ๋์ ํฌ์ ์์ค์ด ๊ณง๋ฐ๋ก ์ํ๋น ์๋ฐ์ผ๋ก ์ด์ด์ง ์ ์์ต๋๋ค.
\n์ ๋ 2023๋ 11์ ์ด์ง ์ค๋น ๊ธฐ๊ฐ์ ์๋์ด ๋ ๋ฌ ์ ๋ ๋๊ธด ์ ์ด ์์ต๋๋ค. ๊ทธ๋ ๋น์๊ธ ๊ณ์ข๋ฅผ ๊ฑด๋๋ฆฌ์ง ์๊ณ ๋ ๋ฒํธ ์ ์์๋ ๊ฑด ํฌ์ ๊ณ์ข์ ์ํ๋น ๊ณ์ข๋ฅผ ์ฒ ์ ํ ๋ถ๋ฆฌํด๋๊ธฐ ๋๋ฌธ์ ๋๋ค. ๋ง์ฝ ๊ทธ ์๊ธฐ์ ํฌ์๊ธ๊น์ง ์ํ๋น๋ก ์จ์ผ ํ๋ค๋ฉด ์์ค์ ํ์ ํ ์ฑ ํ๋งคํด์ผ ํ์ ๊ฒ๋๋ค.
\n๊ธ์ต๊ฐ๋ ์์ด ๋ฐฐํฌํ๋ ๊ธ์ต์๋น์ ์ ๋ณดํฌํธ ์๋ฃ๋ฅผ ๋ณด๋ฉด ํฌ์ ์ํ ๊ฐ์ ์ ์ค ์๋น์๊ฐ ์๊ธ ์ฉ๋๋ฅผ ๋ช ํํ ๊ตฌ๋ถํ์ง ์์ ์์ค์ ํค์ด ์ฌ๋ก๊ฐ ์๊ฐ๋ผ ์์ต๋๋ค. ๊ณ์ข๋ฅผ ๋๋๋ ๊ฒ๋ง์ผ๋ก๋ ์ฌ๋ฆฌ์ ์ฌ์ ๊ฐ ์๊ธฐ๊ณ , ๊ธํ ๋ ์ํด ๋ณด๋ ๋งค๋งค๋ฅผ ์ค์ผ ์ ์์ต๋๋ค.
\n\n์ธ๊ธ๊ณผ ์์๋ฃ, ๋์น๊ธฐ ์ฌ์ด ๋ํ ์ผ
\nํฌ์ ์์ต๋ฅ ๋ง ๋ณด๊ณ ์ํ์ ๊ณ ๋ฅด๋ฉด ์ธํ ์ค์๋ น์ก์์ ์ค๋งํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. ๊ตญ๋ด ์์ฅ ETF๋ ๋งค๋งค์ฐจ์ต์ ๋ํ ๊ณผ์ธ ๋ฐฉ์์ด ์ํ ์ ํ์ ๋ฐ๋ผ ๋ค๋ฅด๊ณ , ํด์ธ ์์ฅ ETF๋ ์๋์๋์ธ๊ฐ ๋ณ๋๋ก ๋ถ์ต๋๋ค.
\n์ ๋ 2024๋ ์ ํด์ธ ETF์์ ๋ฐ์ํ ์์ต์ ๋ํด 5์ ์ข ํฉ์๋์ธ ์ ๊ณ ๊ธฐ๊ฐ์ ์๋์๋์ธ๋ฅผ ์ ๊ณ ํ ๊ฒฝํ์ด ์์ต๋๋ค. ์ธ๊ธ ๊ณ์ฐ์ ๋ฏธ๋ฆฌ ํด๋ณด์ง ์์๋ค๋ฉด ์์๋ณด๋ค ๋ง์ ์ธ๊ธ์ ๋นํฉํ์ ๊ฒ ๊ฐ์ต๋๋ค. ๊ตญ์ธ์ฒญ ํํ์ค์์ ๋ฏธ๋ฆฌ ์๋ฎฌ๋ ์ด์ ํด๋ณด๋ ๊ฒ์ ์ถ์ฒํฉ๋๋ค.
\n์ด์ฉ๋ณด์๋ ๋ฌด์ํ ์ ์์ต๋๋ค. ์ฐ 0.05%์ ์ฐ 0.5%๋ ์ซ์๋ก๋ ์์ ๋ณด์ด์ง๋ง, 10๋ ์ด์ ํฌ์ํ๋ค๋ฉด ๋์ ์ฐจ์ด๊ฐ ์๋นํฉ๋๋ค. ์ํ ๊ฐ์ ์ ํฌ์์ค๋ช ์์์ ์ด๋ณด์ ํญ๋ชฉ์ ๊ผญ ํ์ธํ๋ ์ต๊ด์ ๋ค์ด๋ ๊ฒ ์ข์ต๋๋ค.
\n\n๋ง๋ฌด๋ฆฌ โ ๋จ๊ณ์ ์ผ๋ก ์ ๊ทผํ๊ธฐ
\n1์ธ ๊ฐ๊ตฌ ์ฌํ ํฌ๋ ํ ๋ฒ์ ์๋ฒฝํ ๋ต์ ์ฐพ๋ ๊ฒ์์ด ์๋๋๋ค. ๋น์๊ธ๋ถํฐ ์ฑ์ฐ๊ณ , ๊ทธ๋ค์ ์์ก์ผ๋ก ํฌ์ ๊ฒฝํ์ ์๊ณ , ์ธ๊ธ๊ณผ ์์๋ฃ๋ฅผ ์ดํดํ ๋ค ๋น์ค์ ์กฐ์ ํด๊ฐ๋ ๊ณผ์ ์ ๋๋ค.
\n์ ์ญ์ 3๋ ์ด ๊ฑธ๋ ค์์ผ ์ง๊ธ์ ๋ฐฐ๋ถ์ ๋๋ฌํ๊ณ , ์์ผ๋ก๋ ์์ฅ ์ํฉ์ ๋ง์ถฐ ๊ณ์ ์๋ณผ ์์ ์ ๋๋ค. ์์ ๊ธ ๋์ ํฌ์๋ก ๊ฐ์ํ๋ ๊ฒ์ด ๋ชฉํ๊ฐ ์๋๋ผ, ๋ณธ์ธ ์ํฉ์ ๋ง๋ ๊ท ํ์ ์ ์ฐพ๋ ๊ฒ์ด ๋ชฉํ๋ผ๋ ์ ์ ๊ธฐ์ตํ์๋ฉด ์ข๊ฒ ์ต๋๋ค.
\n์ด ๊ธ์ ๋ด๊ธด ์์น์ ๊ฒฝํ์ ๊ฐ์ธ์ ์ธ ๊ธฐ๋ก์ด๋ฉฐ, ํฌ์ ๊ถ์ ๊ฐ ์๋ ์ฐธ๊ณ ์ ๋ณด๋ก๋ง ํ์ฉํ์๊ธธ ๋ฐ๋๋๋ค. ์ค์ ์ํ ๊ฐ์ ์ ์๋ ํ๊ตญ์ํ, ๊ธ์ต๊ฐ๋ ์, ๊ธ์ตํฌ์ํํ ๋ฑ ๊ณต์ ๋ ฅ ์๋ ๊ธฐ๊ด์ ์ต์ ์๋ฃ๋ฅผ ํจ๊ป ํ์ธํ์๊ธธ ๊ถํฉ๋๋ค.
", + "labels": [ + "1์ธ๊ฐ๊ตฌ์ฌํ ํฌ", + "์์ ๊ธํฌ์", + "2026์ฌํ ํฌ", + "์์กํฌ์", + "ETFํฌ์" + ], + "meta_description": "์์ ๊ธ ๊ธ๋ฆฌ๊ฐ ๋ฌผ๊ฐ ์์น๋ฅ ์ ๋ชป ๋ฐ๋ผ๊ฐ๋ 2026๋ , 1์ธ ๊ฐ๊ตฌ๊ฐ ๋น์๊ธ๊ณผ ํฌ์๊ธ์ ๋๋๊ณ ๋ฆฌ์คํฌ๋ฅผ ๊ด๋ฆฌํ๋ฉฐ ์์ ๊ธ ๋์ ํฌ์๋ก ์์ฐ์ ๋ฐฐ๋ถํ๋ ์ค์ ์ฒดํฌ๋ฆฌ์คํธ๋ฅผ ์ ๋ฆฌํ์ต๋๋ค.", + "faq": [ + { + "q": "์์ ๊ธ์ ์์ ํ ์์ ๊ณ ํฌ์๋ก๋ง ์์ฐ์ ๊ตด๋ ค๋ ๋ ๊น์?", + "a": "์ผ๋ฐ์ ์ผ๋ก๋ ๊ถ์ฅ๋์ง ์์ต๋๋ค. ๋น์๊ธ ์ฑ๊ฒฉ์ ์๊ธ์ ์์ ๊ธ์ฒ๋ผ ์์ ํ๊ณ ์ ๋์ฑ ๋์ ๊ณณ์ ๋จ๊ฒจ๋๋ ๊ฒ์ด ์ข๋ค๋ ์๊ฒฌ์ด ๋ง์ต๋๋ค." + }, + { + "q": "ํฌ์ ์ด๋ณด์ธ๋ฐ ์ผ๋ง๋ถํฐ ์์ํ๋ ๊ฒ ์ข์๊น์?", + "a": "์ ํด์ง ์ ๋ต์ ์์ง๋ง, ์ํ์ ์ง์ฅ ์๋ ์์ก์ผ๋ก ์์ํด ๊ฒฝํ์ ์์ ๋ค ์ ์ฐจ ๋๋ฆฌ๋ ๋ฐฉ์์ด ์์ฃผ ๊ถ์ฅ๋ฉ๋๋ค." + }, + { + "q": "ISA์ ์ฐ๊ธ์ ์ถ ์ค ๋ฌด์์ ๋จผ์ ๊ฐ์ ํด์ผ ํ๋์?", + "a": "๋ชฉ์ ์๊ธ ์ฑ๊ฒฉ์ด ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ ๋ณธ์ธ์ ์๊ธ ํ์ฉ ๊ณํ์ ๋ง์ถฐ ๊ณต์ ์๋ฃ๋ฅผ ํ์ธํ๋ ๊ฒ์ด ์์ ํฉ๋๋ค." + } + ], + "sources": [ + { + "title": "2025 ํต๊ณ๋ก ๋ณด๋ 1์ธ๊ฐ๊ตฌ | ๊ฒฝ์ ์ ์ฑ ์๋ฃ", + "url": "https://eiec.kdi.re.kr/policy/materialView.do?num=274492" + }, + { + "title": "๊ฐ๊ณ๋์ถ ์ค๋จ ์๊ธฐโฆ ๊ธ๋ฆฌ ์ฌ๋ผ ์ค์์์ '์ด์ค๊ณ '", + "url": "https://www.segye.com/newsView/20260719512115?OutUrl=naver" + }, + { + "title": "[์ด๋ฒ์ฃผ ์ฆ์] ๊ธ๋ฝ ๋ค ๋ฐ๋ฑ ๋ ธ๋ฆฌ๋ ์ฝ์คํผโฆSKํ์ด๋์ค ์ค์ '์ฃผ๋ชฉ'", + "url": "http://www.newsian.co.kr/news/articleView.html?idxno=92421" + }, + { + "title": "์์ธํน๋ณ์_1์ธ๊ฐ๊ตฌ(์ฐ๋ น๋ณ) ํต๊ณ_20241231", + "url": "https://www.data.go.kr/data/15046330/fileData.do" + }, + { + "title": "ํ๊ตญ์ํ ๊ธฐ์ค๊ธ๋ฆฌ ๋ฐ ํต๊ณ", + "url": "https://www.bok.or.kr" + }, + { + "title": "๊ธ์ต๊ฐ๋ ์ ๊ธ์ต์๋น์ ์ ๋ณดํฌํธ", + "url": "https://www.fss.or.kr" + } + ], + "keyword": "1์ธ ๊ฐ๊ตฌ ์ฌํ ํฌ ์ ๋ต 2026 ์์ ๊ธ ๋์ ํฌ์ ๋ฐฉ๋ฒ", + "article_type": "investment", + "risk_level": "high", + "tags": [ + "1์ธ๊ฐ๊ตฌ์ฌํ ํฌ", + "์์ ๊ธํฌ์", + "2026์ฌํ ํฌ", + "์์กํฌ์", + "ETFํฌ์", + "์ ๋ฆฝ์ํฌ์", + "์ฌํ ํฌ์ ๋ต", + "ํฌ์์ด๋ณด", + "์์ฐ๊ด๋ฆฌ", + "๊ฐ์ธํฌ์" + ], + "word_count": 4100, + "content_preview": "์๊ธ ํต์ฅ์์ ๋งค๋ฌ ์ ๊ธ ํต์ฅ์ผ๋ก ๋์ ์ฎ๊ธฐ๊ณ ๋๋ฉด ์ ์ง ์ฌํ ํฌ๋ฅผ ์ํ๊ณ ์๋ค๋ ์์ฌ์ด ๋ญ๋๋ค. ๊ทธ๋ฐ๋ฐ ์ต๊ทผ ๋ช ๋ ์ฌ์ด ๊ธ๋ฆฌ ํ๋ฆ์ ๋ณด๋ฉด ์ด์ผ๊ธฐ๊ฐ ์กฐ๊ธ ๋ฌ๋ผ์ก์ต๋๋ค. 2026๋ ๋ค์ด ์์ค์ํ ์์ ๊ธ ๊ธ๋ฆฌ๊ฐ ๋ค์ ๋ฎ์์ง๋ ํ๋ฆ์ ๋ณด์ด๋ฉด์, 1์ธ ๊ฐ๊ตฌ ์ฌ์ด์์ ์์ ๊ธ๋ง์ผ๋ก๋ ์์ฐ์ ๋ถ๋ฆฌ๊ธฐ ์ด๋ ต๋ค๋ ๋ชฉ์๋ฆฌ๊ฐ ์ปค์ง๊ณ ์์ต๋๋ค. ํผ์ ๋ฒ์ด ํผ์ ์ฐ๋ ๊ตฌ์กฐ์ด๋ค ๋ณด๋...", + "evidence": { + "used": true, + "facts": 6, + "verified": 0 + }, + "experience_used": false, + "fact_check": { + "checked": true, + "verdict": "warn", + "issues_found": 2, + "fixes_applied": 2, + "issues": [ + { + "problem": "์๋ฃํฉ์ ๋ฐ๋ฅด๋ฉด ํ๊ตญ์ํ์ด ๊ธฐ์ค๊ธ๋ฆฌ ์ธ์ ์ฌ์ดํด์ ๋์ ํด ์ฃผ๋ด๋ ๊ธ๋ฆฌ๊ฐ 8%๋๋ก ์น์๋ ์ ๋ง์ด ๋์จ ์ํฉ์ผ๋ก, ์์ ๊ธ ๊ธ๋ฆฌ ํ๋ฝ ์ฃผ์ฅ๊ณผ ๋ชจ์๋จ", + "fixed": true + }, + { + "problem": "์๋ฃํฉ์ ๊ธฐ์ค๊ธ๋ฆฌ ์ธ์ ์ฌ์ดํด(๊ธ๋ฆฌ ์์น ๊ตญ๋ฉด)๊ณผ ๋ชจ์๋๋ ๊ฒ์ฆ๋์ง ์์ ๋ฐฉํฅ์ฑ ์ฃผ์ฅ", + "fixed": true + } + ] + }, + "images_inserted": 3, + "adsense_score": 90, + "adsense_recommendation": "upload", + "adsense_auto_fixed": true, + "adsense_fix_items": [ + "originality", + "structure", + "eeat", + "image_policy" + ], + "url_slug": "single-household-investment-strategy-2026", + "category": "์ฌํ ํฌ", + "representative_image": { + "position": "๊ธ ์ต์๋จ", + "description": "1์ธ ๊ฐ๊ตฌ ์ฌํ ํฌ ์ ๋ต๊ณผ ์์ ๊ธ ๋์ ํฌ์ ๋ฐฉ๋ฒ์ ์์งํ๋ ์ ๊ธํต๊ณผ ๊ทธ๋ํ ์ด๋ฏธ์ง", + "style": "๋ฐ๊ณ ์ฌํํ ํ๋ซ ์ผ๋ฌ์คํธ, ๊ทธ๋ฆฐ-์๋ก ํค", + "alt": "1์ธ ๊ฐ๊ตฌ ์ฌํ ํฌ ์ ๋ต 2026 ์์ ๊ธ ๋์ ํฌ์ ๋ฐฉ๋ฒ ๊ด๋ จ ์ฒดํฌ๋ฆฌ์คํธ๋ฅผ ์ ๋ฆฌํ ๋ธ๋ก๊ทธ ๋ํ ์ด๋ฏธ์ง", + "filename": "single-household-investment-strategy-2026-cover.jpg" + }, + "image_list": [ + { + "position": "์์ ๊ธ๊ณผ ํฌ์ ์ฐจ์ด ํ ์", + "description": "์์ ๊ธ๊ณผ ํฌ์ ์ํ์ ์๊ธ ๋ณด์ฅ, ์์ต๋ฅ , ์ ๋์ฑ ์ฐจ์ด๋ฅผ ๋น๊ตํ๋ ํ ํํ ์ด๋ฏธ์ง", + "alt": "์์ ๊ธ๊ณผ ETF ํ๋ ํฌ์ ์ํ์ ์๊ธ ๋ณด์ฅ ๋ฐ ์์ต๋ฅ ์ฐจ์ด๋ฅผ ๋น๊ตํ ํ ์ด๋ฏธ์ง", + "filename": "savings-vs-investment-comparison.jpg" + }, + { + "position": "ํฌ์ ์์ ์ ์ฒดํฌ๋ฆฌ์คํธ 7๊ฐ์ง ์น์ ", + "description": "๋น์๊ธ ํ๋ณด, ํฌ์ ๋ชฉ์ ์ค์ ๋ฑ 7๋จ๊ณ ์ฒดํฌ๋ฆฌ์คํธ๋ฅผ ์๊ฐํํ ์ด๋ฏธ์ง", + "alt": "1์ธ ๊ฐ๊ตฌ ํฌ์ ์์ ์ ํ์ธํด์ผ ํ ์ฒดํฌ๋ฆฌ์คํธ 7๋จ๊ณ๋ฅผ ์ ๋ฆฌํ ์ด๋ฏธ์ง", + "filename": "investment-checklist-7-steps.jpg" + }, + { + "position": "์์ฐ๋ฐฐ๋ถ ์์ ์น์ ", + "description": "์์ ๊ธ, ETF, ์ฐ๊ธ์ ์ถ, CMA ๋น์ค์ ๋๋ ์ํ ๊ทธ๋ํ ์ด๋ฏธ์ง", + "alt": "1์ธ ๊ฐ๊ตฌ ์์ฐ๋ฐฐ๋ถ ์์๋ก ์์ ๊ธ ETF ์ฐ๊ธ์ ์ถ CMA ๋น์ค์ ๋๋ ์ํ ๊ทธ๋ํ ์ด๋ฏธ์ง", + "filename": "asset-allocation-pie-chart.jpg" + } + ], + "internal_links": [ + "ISA ๊ณ์ข 200% ํ์ฉ๋ฒ, ์ธ์ ํํ๋ถํฐ ๋ง๊ธฐ ์ ๋ต๊น์ง", + "์๊ธ์์ด๋ฅผ ์ํ ์ฐ๊ธ์ ์ถยทIRP ์ธ์ก๊ณต์ ์๋ฒฝ ์ ๋ฆฌ", + "์์ก์ผ๋ก ์์ํ๋ ETF ๋ถ์ฐํฌ์ ์ด๋ณด ๊ฐ์ด๋" + ], + "references": [ + { + "name": "ํ๊ตญ์ํ", + "note": "๊ธฐ์ค๊ธ๋ฆฌ ๋ฐ ์์ค์ํ ์์ ๊ธ ๊ธ๋ฆฌ ์ถ์ด ํต๊ณ" + }, + { + "name": "๊ธ์ต๊ฐ๋ ์ ๊ธ์ต์๋น์ ์ ๋ณดํฌํธ", + "note": "ํฌ์ ์ํ ์ํ ๋ฑ๊ธ, ์๊ธ ์ฉ๋ ๊ตฌ๋ถ ๊ด๋ จ ์๋น์ ์ ์์ฌํญ" + }, + { + "name": "๊ฒฝ์ ์ ์ฑ ์๋ฃ(KDI)", + "note": "2025 ํต๊ณ๋ก ๋ณด๋ 1์ธ๊ฐ๊ตฌ ํํฉ" + }, + { + "name": "๊ณต๊ณต๋ฐ์ดํฐํฌํธ", + "note": "์์ธํน๋ณ์ 1์ธ๊ฐ๊ตฌ(์ฐ๋ น๋ณ) ํต๊ณ 2024.12.31 ๊ธฐ์ค" + } + ], + "publish_checklist": { + "title_matches_intent": true, + "meta_120_160": true, + "slug_clean": true, + "intro_starts_with_reader_concern": true, + "summary_box_present": true, + "table_present": true, + "faq_4_plus": true, + "warning_if_needed": true, + "author_memo_present": true, + "references_present": true, + "internal_links_present": true, + "alt_text_specific": true, + "no_ad_cta": true, + "no_exaggeration": true, + "no_ai_phrases": true, + "mobile_friendly_paragraphs": true + }, + "final_edit_applied": true, + "_post_id": "2026-07-19_1์ธ๊ฐ๊ตฌ์ฌํ ํฌ์ ๋ต2026์์ ๊ธ๋์ ํฌ์_6a0ecc88" +} \ No newline at end of file diff --git "a/blog-automation/logs/post_drafts/2026-07-19_1\354\235\270\352\260\200\352\265\254\354\236\254\355\205\214\355\201\254\354\240\204\353\236\265\354\230\210\354\240\201\352\270\210\353\214\200\354\213\240\355\210\254\354\236\220\354\213\234\354\236\221\355\225\230\353\212\224_6c2a1424.json" "b/blog-automation/logs/post_drafts/2026-07-19_1\354\235\270\352\260\200\352\265\254\354\236\254\355\205\214\355\201\254\354\240\204\353\236\265\354\230\210\354\240\201\352\270\210\353\214\200\354\213\240\355\210\254\354\236\220\354\213\234\354\236\221\355\225\230\353\212\224_6c2a1424.json" new file mode 100644 index 0000000000000..92d2814775c39 --- /dev/null +++ "b/blog-automation/logs/post_drafts/2026-07-19_1\354\235\270\352\260\200\352\265\254\354\236\254\355\205\214\355\201\254\354\240\204\353\236\265\354\230\210\354\240\201\352\270\210\353\214\200\354\213\240\355\210\254\354\236\220\354\213\234\354\236\221\355\225\230\353\212\224_6c2a1424.json" @@ -0,0 +1,172 @@ +{ + "title": "1์ธ ๊ฐ๊ตฌ ์ฌํ ํฌ ์ ๋ต, ์์ ๊ธ ๋์ ํฌ์ ์์ํ๋ ๋ฒ", + "content": "\"1์ธ ๊ฐ๊ตฌ๋ ํผ์ ๋ฒ์ด์ ํผ์ ์ฐ๋๊น ์์ ๊ธ๋ง ์ฐฉ์คํ ๋ชจ์ผ๋ฉด ๋๋ค\"๊ณ ์๊ฐํ๋ ๋ถ๋ค์ด ๋ง์ต๋๋ค. ์ ๋ 3๋ ์ ๊น์ง๋ ๊ทธ๋ ๊ฒ ๋ฏฟ์์ต๋๋ค. ์๊ธ 280๋ง ์์ ๋ฐ์ผ๋ฉฐ ๋งค๋ฌ ์ ๊ธ ํต์ฅ์ 100๋ง ์์ฉ ๋ฃ๋ ๊ฒ ์ต์ ์ด๋ผ๊ณ ์๊ฐํ์ผ๋๊น์. ๊ทธ๋ฐ๋ฐ 2023๋ ์ด, 2๋ ๋ง๊ธฐ ์ ๊ธ์ ํ์ ํต์ฅ ์๊ณ ๋ฅผ ํ์ธํ์ ๋ ๋ฌํ ํํํจ์ ๋๊ผ์ต๋๋ค. ์ซ์๋ ๋ถ๋ช ๋ถ์ด๋ฌ๋๋ฐ ๊ทธ์ฌ์ด ์ค๋ฅธ ์ ์ธ ๋ณด์ฆ๊ธ๊ณผ ์๋น๋ฅผ ์๊ฐํ๋ฉด ์ค์ ๋ก ์์ ์ฅ ์ฌ์ ๋ ํฌ์ง ์์๊ธฐ ๋๋ฌธ์ ๋๋ค. ์ฌ๋ฌด ์๋ด์ด๋ ๊ธ์ต ์ปค๋ฎค๋ํฐ๋ฅผ ๋ณด๋ฉด ์ ์ ๋น์ทํ ๊ฒฝํ์ ์ด์ผ๊ธฐํ๋ 1์ธ ๊ฐ๊ตฌ๊ฐ ์ ์ง ์์ต๋๋ค. ์ด๋ฒ ๊ธ์์๋ ์์ ๊ธ๊ณผ ํฌ์๋ฅผ ๋๋ ์ ์๊ฐํ๋ ํํ ์คํด๋ถํฐ ์ง๊ณ , ์ ๊ฐ ์ค์ ๋ก ์๊ธ์ ๋ถ๋ฆฌํด์จ ๊ณผ์ ๊ณผ ํจ๊ป ์ด๋ค ์์๋ก ์ ๊ทผํ๋ ๊ฒ ํฉ๋ฆฌ์ ์ธ์ง ์ ๋ฆฌํด๋ณด๊ฒ ์ต๋๋ค.
\n\n \n\n\n
1์ธ ๊ฐ๊ตฌ ์ฌํ ํฌ, ์์ ๊ธ๋ง์ผ๋ก ๋ถ์กฑํ๋ค๋ ๋ง์ ์ง์ง ์๋ฏธ์ ํฌ์ ์์ ์์ \n\n๐ก ํต์ฌ ํฌ์ธํธ: 1์ธ ๊ฐ๊ตฌ ์ฌํ ํฌ๋ ์์ ๊ธ์ ์์ ๋ ๊ฒ์ด ์๋๋ผ ๋น์๊ธยท๋จ๊ธฐ์๊ธ๊ณผ ์ค์ฅ๊ธฐ ํฌ์์๊ธ์ ๋ถ๋ฆฌํ๋ ๊ฒ์์ ์์ํฉ๋๋ค. ISA, ์ฐ๊ธ์ ์ถํ๋ ๊ฐ์ ์ธ์ ํํ ์ ๋๋ ๊ธ์ต์์ํยท๊ตญ์ธ์ฒญ ๊ณต์ ํํ์ด์ง์์ ์ต์ ํ๋์ ์กฐ๊ฑด์ ํ์ธํ ๋ค ํ์ฉํ๋ ๊ฒ์ด ์์ ํฉ๋๋ค.\n\n์ \"์์ ๊ธ๋ง์ผ๋ก๋ ๋ถ์กฑํ๋ค\"๋ ๋ง์ด ๋์ค๋๊ฐ
\n์์ ๊ธ์ด ๋์๋ค๋ ๋ป์ด ์๋๋๋ค. ๋ฌธ์ ๋ ๋ฌผ๊ฐ ์์น๋ฅ ๊ณผ ์์ ๊ธ ๊ธ๋ฆฌ ์ฌ์ด์ ๊ฐ๊ฒฉ์ ๋๋ค. ์ ๊ฐ 2023๋ ์ ๊ฐ์ ํ๋ 1๋ ๋ง๊ธฐ ์ ๊ธ ๊ธ๋ฆฌ๋ 3.5%์๋๋ฐ, ๊ทธํด ์๋น์๋ฌผ๊ฐ ์์น๋ฅ ์ด ๋น์ทํ ์์ค๊น์ง ์ฌ๋ผ์ค๋ฉด์ ์ค์ง์ ์ผ๋ก ๋จ๋ ๊ฒ ๊ฑฐ์ ์์๋ ๊ธฐ์ต์ด ์์ต๋๋ค. ์ํ ์ ๊ธฐ์๊ธ ๊ธ๋ฆฌ๊ฐ ๋ฌผ๊ฐ ์์น๋ฅ ์ ๋ฐ๋๋ ์๊ธฐ์๋, ํต์ฅ ์๊ณ ์ซ์๋ ๋์ด๋๋ ์ค์ ๋ก ์ด ์ ์๋ ๋ฌผ๊ฑด์ ์์ ์ค์ด๋๋ ํ์์ด ๋ํ๋ ์ ์์ต๋๋ค.
\n์ด๋ฅผ ์ค์ง๊ธ๋ฆฌ๊ฐ ๋ง์ด๋์ค ์ํ๋ผ๊ณ ํํํ๊ธฐ๋ ํฉ๋๋ค. ํนํ 1์ธ ๊ฐ๊ตฌ๋ ๋ชฉ๋์ ๋ง๋๋ ์๋๊ฐ ๋ค์ธ ๊ฐ๊ตฌ๋ณด๋ค ์๋์ ์ผ๋ก ๋๋ฆฐ ํธ์ด๋ผ, ๊ฐ์ ๊ธฐ๊ฐ ๋์ ์ค์ง ์์ฐ์ด ์ค์ด๋๋ ์ํฅ์ ๋ ํฌ๊ฒ ์ฒด๊ฐํ ์ ์๋ค๋ ์ง์ ์ด ๋์ต๋๋ค. ์ ์ญ์ ํผ์ ๋ฒ๊ณ ํผ์ ์ฐ๋ ๊ตฌ์กฐ๋ผ ์๋์ด ํ๋๋ฟ์ด์๊ณ , ์ ๊ธ ๋ง๊ธฐ๊ฐ ๋๋ ๋๋ง๋ค ๋ค์ ์์ ์์ ์์ํ๋ ๋๋์ ๋ฐ์์ต๋๋ค.
\n๋ ํ๋ ์ง์ด๋ณผ ๋ถ๋ถ์ 1์ธ ๊ฐ๊ตฌ์ ์ง์ถ ๊ตฌ์กฐ์ ๋๋ค. ํต๊ณ์ฒญ๊ณผ ์ฌ๋ฌ ์๋น์ ์กฐ์ฌ์์ 1์ธ ๊ฐ๊ตฌ๋ ์ฃผ๊ฑฐ๋น์ ์๋น ๋น์ค์ด ์๋์ ์ผ๋ก ๋๊ฒ ๋ํ๋๋ ๊ฒฝํฅ์ด ์๋ค๊ณ ์๋ ค์ ธ ์์ต๋๋ค. ์ ๊ฐ์ ๊ฒฝ์ฐ๋ ์์ธ์ ๊ด๋ฆฌ๋น๋ง์ผ๋ก ์๋์ 30% ๊ฐ๊น์ด๊ฐ ๋น ์ ธ๋๊ฐ๊ณ ์์ด์, ๋จ๋ ๋์ผ๋ก ์ ์ถ๊ณผ ํฌ์๋ฅผ ๋์์ ๊ณ ๋ฏผํด์ผ ํ์ต๋๋ค.
\n๊ณ ์ ์ง์ถ ๋น์ค์ด ํฌ๋ค๋ ๊ฒ์ ๊ทธ๋งํผ ์ ์ถ ์ฌ๋ ฅ์ด ์ค์ด๋ค ์ ์๋ค๋ ๋ป์ด๊ณ , ์ ์ถ ์ฌ๋ ฅ์ด ์ค์ด๋ค๋ฉด ์์ ๊ธ๋ง์ผ๋ก ์์ฐ์ ๋ถ๋ฆฌ๋ ๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ์ด ๊ธธ์ด์ง ์๋ฐ์ ์์ต๋๋ค. ์ด๋ฐ ๋ฐฐ๊ฒฝ ๋๋ฌธ์ ์ฌ๋ฌด ์ ๋ฌธ๊ฐ๋ค์ ์์ ๊ธ์ ์ ์งํ๋, ์ฌ์ ์๊ธ์ ์ผ๋ถ๋ ์ฅ๊ธฐ์ ์ธ ๊ด์ ์์ ํฌ์๋ก ๋ถ์ฐํ๋ ๋ฐฉ๋ฒ์ ๊ฒํ ํด๋ณผ ํ์๊ฐ ์๋ค๊ณ ์ค๋ช ํฉ๋๋ค. ๋ค๋ง ์ด๋ ํฌ์ ์์ต์ ๋ณด์ฅํ๋ ์ด์ผ๊ธฐ๊ฐ ์๋๋ผ, ์์ฐ์ ํ ๋ฐ๊ตฌ๋์๋ง ๋ด์ง ์๋ ๋ถ์ฐ์ ๊ฐ๋ ์ผ๋ก ์ดํดํ๋ ๊ฒ์ด ๋ง์ต๋๋ค.
\n\n\n \n\n
๊ฐ๊ตฌ ์ฌํ ํฌ ์ ๋ต \n1์ธ ๊ฐ๊ตฌ ์ฌ๋ฌด๊ตฌ์กฐ๊ฐ ๊ฐ๋ ํน์ง๊ณผ ๋ฆฌ์คํฌ ๊ด๋ฆฌ ํฌ์ธํธ
\n1์ธ ๊ฐ๊ตฌ๋ ์๋์ด ๋๊ธฐ๊ฑฐ๋ ๊ฐ์๊ธฐ ๋ชฉ๋์ด ํ์ํ ์ํฉ์ด ์๊ฒผ์ ๋ ๋์์ค ์ฌ๋์ด ์๋์ ์ผ๋ก ์ ๋ค๋ ํน์ง์ด ์์ต๋๋ค. ์ ๋ ์๋ ์ฌ๋ฆ ์์ด์ปจ์ด ๊ณ ์ฅ ๋์ 80๋ง ์ ๊ฐ๊น์ด ์๋ฆฌ๋น๊ฐ ๊ฐ์๊ธฐ ๋๊ฐ์ ๋, ๋๊ตฌ์๋ ๋ถ๋ดํ ์ ์๋ค๋ ์ฌ์ค์ ์์ผ ๋๊ผ์ต๋๋ค. ๊ทธ๋์ ํฌ์๋ฅผ ์์ํ๊ธฐ ์ ์ ๊ฐ์ฅ ๋จผ์ ํ์ธํด์ผ ํ ๊ฒ์ ๋น์๊ธ ๊ท๋ชจ์ ๋๋ค.
\nํํ ์ํ๋น์ 3~6๊ฐ์์น๋ฅผ ์ธ์ ๋ ๊บผ๋ด ์ธ ์ ์๋ ํํ๋ก ๋ง๋ จํด๋๋ผ๋ ์กฐ์ธ์ด ๋ง์๋ฐ, ์ด๋ ์ ๋์ ์ธ ๊ธฐ์ค์ด๋ผ๊ธฐ๋ณด๋ค ์๋ ์์ ์ฑ๊ณผ ๊ณ ์ ์ง์ถ ๊ท๋ชจ์ ๋ฐ๋ผ ๊ฐ์ธ๋ง๋ค ๋ค๋ฅด๊ฒ ์ค์ ํ ์ ์๋ ์ฐธ๊ณ ์น์ ๋๋ค. ์ ๋ ์ ๊ณ ์ ์ง์ถ์ด 130๋ง ์ ์ ๋๋ผ 6๊ฐ์์น์ธ 780๋ง ์์ ํํนํต์ฅ์ ๋ฐ๋ก ๋ผ์ด๋๊ณ ๋์์ผ ๋ง์์ด ๋์์ต๋๋ค. ๋น์๊ธ์ ์์ต๋ฅ ๋ณด๋ค ์ ๋์ฑ์ด ์ค์ํ๋ฏ๋ก ์์์ ์ถ๊ธ ํต์ฅ์ด๋ ํํนํต์ฅ์ฒ๋ผ ์ธ์ ๋ ์ธ์ถ ๊ฐ๋ฅํ ์ํ์ ๋๋ ๊ฒ์ด ์ผ๋ฐ์ ์ผ๋ก ๊ถ์ฅ๋ฉ๋๋ค.
\n๋น์๊ธ์ด ์ด๋ ์ ๋ ๊ฐ์ถฐ์ก๋ค๋ฉด ๊ทธ๋ค์ ๋จ๊ณ์์ ํฌ์๋ฅผ ๊ณ ๋ คํ ์ ์์ต๋๋ค. ์ด๋ ์ค์ํ ๊ฒ์ ํฌ์ ๊ธ์ก๊ณผ ํฌ์ ๊ธฐ๊ฐ์ ๋ถ๋ฆฌํด์ ์๊ฐํ๋ ์ต๊ด์ ๋๋ค. 1~2๋ ์์ ์ธ ๊ณํ์ด ์๋ ๋์ ์๊ธ ์์ค ๊ฐ๋ฅ์ฑ์ด ์๋ ์ํ๋ณด๋ค๋ ์์ ๊ธ์ด๋ ์์ ํ ๋จ๊ธฐ ์ํ์ ๋๊ณ , 5๋ ์ด์ ๋น์ฅ ์ธ ๊ณํ์ด ์๋ ์๊ธ๋ง ํฌ์ ๋ชฉ์ ์ผ๋ก ๋๋๋ ๋ฐฉ์์ ๋๋ค.
\n์ด๋ ๊ฒ ์๊ธ์ ์ฑ๊ฒฉ์ ๋๋๋ ๊ฒ๋ง์ผ๋ก๋ ๊ธํ๊ฒ ์์ค์ ํ์ ํ๋ฉฐ ํ์์ผ ํ๋ ์ํฉ์ ์ค์ผ ์ ์๋ค๊ณ ์ฌ๋ฌด ์๋ด ํ์ฅ์์๋ ์ค๋ช ํฉ๋๋ค. ์ ์ญ์ ๋น์๊ธ๊ณผ ํฌ์๊ธ์ ๊ณ์ข ๋จ์๋ก ์์ ํ ๋ถ๋ฆฌํ ๋ค๋ก๋, ์์ฅ์ด ํ๋ค๋ ค๋ ๋น์ฅ ํ์์ผ ํ ์ง ๊ณ ๋ฏผํ๋ ์ผ์ด ํ์คํ ์ค์์ต๋๋ค. 1์ธ ๊ฐ๊ตฌ๋ ์๋์ด ํ๋๋ฟ์ธ ๋งํผ ์ด๋ฐ ์๊ธ ๋ถ๋ฆฌ๊ฐ ํนํ ์ค์ํ๊ฒ ์ฌ๊ฒจ์ง๋๋ค.
\n์์ ๊ธ์์ ํฌ์๋ก ๋์ด๊ฐ๋ ํ์ค์ ์ธ ์์
\n์ค์ ์ฌ๋ก๋ค์ ๋ณด๋ฉด ์์ ๊ธ๋ง ํ๋ ์ฌ๋์ด ๊ฐ์๊ธฐ ๊ฐ๋ณ ์ข ๋ชฉ์ด๋ ๊ณ ์ํ ์ํ์ ๋ฐ์ด๋๋ ๊ฒฝ์ฐ ์คํ๋ ค ์ํ์ฐฉ์ค๋ฅผ ํฌ๊ฒ ๊ฒช๋ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค๊ณ ํฉ๋๋ค. ์ ๋ ์ฒ์ ISA๋ฅผ ๊ฐ์คํ์ ๋ ์ฑ๊ธํ๊ฒ ํ ๋งํ ํ๋์ ์ ๋ฐ ๋๊ฒ ๋ฃ์๋ค๊ฐ 6๊ฐ์ ๋ง์ ๋ง์ด๋์ค 12%๋ฅผ ๋ณธ ์ ์ด ์์ต๋๋ค. ๊ทธ ๊ฒฝํ ์ดํ๋ก๋ ์์๋ฅผ ๋๊ณ ์ ๊ทผํ๋ ๊ฒ์ด ํจ์ฌ ์ค์ํ๋ค๋ ๊ฑธ ์ฒด๊ฐํ์ต๋๋ค.
\n์ฐ์ ๋น์๊ธ์ ํ๋ณดํ ๋ค, ์ธ์ ํํ์ด ์๋ ๊ณ์ข ์ ๋๋ถํฐ ํ์ฉ ์ฌ๋ถ๋ฅผ ๊ฒํ ํ๊ณ , ์ดํ ์์ก์ผ๋ก ๋ถ์ฐ ํฌ์ ์ํ์ ์ดํด๋ณด๋ ํ๋ฆ์ด ์ผ๋ฐ์ ์ผ๋ก ๊ถ์ฅ๋ฉ๋๋ค. ๋ํ์ ์ผ๋ก ์ธ๊ธ๋๋ ๊ฒ์ด ๊ฐ์ธ์ข ํฉ์์ฐ๊ด๋ฆฌ๊ณ์ข, ์ด๋ฅธ๋ฐ ISA์ ์ฐ๊ธ์ ์ถํ๋์ ๋๋ค.
\nISA๋ ํ๋์ ๊ณ์ข ์์์ ์๊ธ, ํ๋, ์์ฅ์ง์ํ๋ ๋ฑ ์ฌ๋ฌ ์ํ์ ๋ด์ ์ ์๊ณ ์ผ์ ์กฐ๊ฑด์ ์ถฉ์กฑํ๋ฉด ๋ฐ์ํ ์ด์ต์ ๋ํด ์ธ์ ํํ์ ๋ฐ์ ์ ์๋ ์ ๋์ ๋๋ค. ์ฐ๊ธ์ ์ถํ๋๋ ๋ ธํ ์๊ธ ๋ง๋ จ์ ๋ชฉ์ ์ผ๋ก ํ๋ ๋งํผ ์ธ์ก๊ณต์ ํํ์ด ์์ง๋ง ์ค๋ ์ธ์ถ ์ ๋ถ์ด์ต์ด ์์ ์ ์์ด ์ฅ๊ธฐ ์๊ธ์ ์ ํฉํฉ๋๋ค. ์ ๋ ๋งค๋ฌ 30๋ง ์์ฉ ์ฐ๊ธ์ ์ถํ๋์ ์๋์ด์ฒด๋ฅผ ๊ฑธ์ด๋๊ณ ์๋๋ฐ, ์ฐ๋ง์ ์ฐ ๋ ํ๊ธ๋ฐ๋ ๊ธ์ก์ ๋ณด๋ฉด ๊ทธ๋์์ ์กฐ๋ฐ์ฌ์ด ์กฐ๊ธ์ ๋๊ทธ๋ฌ์ง๊ณค ํฉ๋๋ค.
\n๋ ์ ๋ ๋ชจ๋ ๊ฐ์ ํ๋, ์๋ฌด ๊ฐ์ ๊ธฐ๊ฐ, ์ธ์ ํํ ์กฐ๊ฑด์ด ๋งค๋ ์กฐ์ ๋ ์ ์์ผ๋ฏ๋ก ๋ฐ๋์ ๊ธ์ต์์ํ๋ ๊ตญ์ธ์ฒญ ๊ณต์ ํํ์ด์ง์์ ์ต์ ๊ธฐ์ค์ ํ์ธํ ๋ค ๊ฐ์ ์ฌ๋ถ๋ฅผ ํ๋จํ๋ ๊ฒ์ด ์์ ํฉ๋๋ค.
\n\n\n \n\n
๊ฐ๊ตฌ ์ฌํ ํฌ ์์ ๊ธ๋ง์ผ๋ก ๋ถ์กฑํ๋ค ๋ฌผ๊ฐ ์์ ๊ธ์ด \nํ์ฉ ๊ฐ๋ฅํ ์ ๋๋ณ ํน์ง ๋น๊ต
\n1์ธ ๊ฐ๊ตฌ๊ฐ ์์ ๊ธ ์ธ์ ๊ฒํ ํด๋ณผ ์ ์๋ ์ ๋๋ค์ ์ฑ๊ฒฉ์ด ์กฐ๊ธ์ฉ ๋ค๋ฆ ๋๋ค. ์๋ ํ๋ ์ ๊ฐ ์ง์ ํ์ฉํด๋ณด๋ฉด์ ์ ๋ฆฌํ ํน์ง์ด์ง๋ง, ์ ํํ ํ๋ยท๊ธฐ๊ฐยท์ธ์ ํํ ์กฐ๊ฑด์ ๋ฐ๋์ ๊ณต์ ํํ์ด์ง์์ ์ฌํ์ธํด์ผ ํฉ๋๋ค.
\n\n
\n\n ์ ๋๋ช ์ฃผ์ ํน์ง ์ ์์ฌํญ \n ์ผ๋ฐ ์ ๊ธฐ์๊ธยท์ ๊ธ ์๊ธ ๋ณด์ฅ, ์๊ธ์๋ณดํธ ๋์(ํ๋ ๋ด) ์ค๋ํด์ง ์ ์ฝ์ ๊ธ๋ฆฌ ๋ฏธ์ ์ฉ๋ ์ ์์ \n ISA(๊ฐ์ธ์ข ํฉ์์ฐ๊ด๋ฆฌ๊ณ์ข) ์๊ธยทํ๋ยทETF ๋ฑ ํตํฉ ์ด์ฉ, ์ผ์ ์กฐ๊ฑด ์ถฉ์กฑ ์ ์ธ์ ํํ ์๋ฌด ๊ฐ์ ๊ธฐ๊ฐ ์กด์ฌ, ์ค๋ํด์ง ์ ํํ ์ ํ ๊ฐ๋ฅ \n ์ฐ๊ธ์ ์ถํ๋ ๋ฉ์ ์ก ์ผ๋ถ ์ธ์ก๊ณต์ , ์ฅ๊ธฐ ๋ ธํ์๊ธ ์ฑ๊ฒฉ ์ค๋ ์ธ์ถ ์ ๊ธฐํ์๋์ธ ๋ฑ ๋ถ์ด์ต ๊ฐ๋ฅ์ฑ \n ์์ก ๋ถ์ฐํฌ์ ์ํ(ETF ๋ฑ) ์์ก์ผ๋ก ์ฌ๋ฌ ์์ฐ์ ๋ถ์ฐ ํฌ์ ๊ฐ๋ฅ ์๊ธ ์์ค ๊ฐ๋ฅ์ฑ ์์, ๋จ๊ธฐ ๋ณ๋์ฑ ์ฃผ์ ํฌ์๋ฅผ ์์ํ๊ธฐ ์ ์ค์ค๋ก ์ ๊ฒํด๋ณธ ์ฒดํฌ๋ฆฌ์คํธ
\n์ ๋ ํฌ์ ๊ณ์ข๋ฅผ ์ด๊ธฐ ์ ์ ๋ช ๊ฐ์ง ์ง๋ฌธ์ ์ค์ค๋ก์๊ฒ ๋์ ธ๋ดค์ต๋๋ค. ์ฒซ์งธ, 6๊ฐ์์น ์ํ๋น์ ํด๋นํ๋ ๋น์๊ธ์ด ์ค๋น๋์ด ์๋๊ฐ. ๋์งธ, ์์ผ๋ก 3๋ ์์ ๋ชฉ๋์ด ๋ค์ด๊ฐ ์ผ์ด ์๋๊ฐ. ์ ์งธ, ์๊ธ ์์ค์ ๊ฒช์์ ๋ ์ ์ ์ค์น ์ ๋๋ก ์คํธ๋ ์ค๋ฅผ ๋ฐ๋ ์ฑํฅ์ธ๊ฐ ํ๋ ๊ฒ๋ค์ ๋๋ค.
\n\n
\n- ์ํ๋น 3~6๊ฐ์์น ๋น์๊ธ์ด ํํนํต์ฅ ๋ฑ ์ ๋์ฑ ๋์ ๊ณณ์ ์ค๋น๋์ด ์๋์ง ํ์ธ
\n- 1~2๋ ๋ด ์ฌ์ฉ ์์ ์๊ธ๊ณผ 5๋ ์ด์ ๋ฌป์ด๋ ์๊ธ์ ๊ณ์ข ๋จ์๋ก ๋ถ๋ฆฌ
\n- ISAยท์ฐ๊ธ์ ์ถํ๋ ๋ฑ์ธ์ ํํ ์ ๋์ ์ต์ ํ๋์ ์กฐ๊ฑด์ ๊ณต์ ํํ์ด์ง์์ ์ฌํ์ธ
\n- ์์ก์ผ๋ก ๋จผ์ ์์ํด๋ณด๊ณ ๋ณ๋์ฑ์ ๋ํ ์์ ์ ๋ฐ์์ ๊ด์ฐฐํ๋ ๊ธฐ๊ฐ ํ๋ณด
\n์ด ๋ค ๊ฐ์ง๋ฅผ ํ๋์ฉ ์ง์ด๋ณด๊ณ ๋์์ผ ์ค์ ๋ก ๊ณ์ข๋ฅผ ๊ฐ์คํ์ต๋๋ค. ์ฒ์๋ถํฐ ํฐ ๊ธ์ก์ ๋ฃ๊ธฐ๋ณด๋ค๋ ์ 10๋ง ์ ์์ค์ผ๋ก ์์ํด์ ์ ๋ฌ ์ ๋ ์ง์ผ๋ณธ ๋ค ๊ธ์ก์ ์กฐ๊ธ์ฉ ๋๋ ค๊ฐ ๊ฒ์ด ์ ์๊ฒ๋ ์ฌ๋ฆฌ์ ์ผ๋ก ํจ์ฌ ์์ ์ ์ด์์ต๋๋ค. ํนํ 1์ธ ๊ฐ๊ตฌ๋ ํฌ์ ์์ค์ด ๋ฐ์ํ์ ๋ ๊ทธ ๋ถ๋ด์ ๋๋ ์ฌ๋์ด ์๋ค๋ ์ ์์, ์ฒ์๋ถํฐ ๋ฌด๋ฆฌํ ๊ธ์ก์ผ๋ก ์์ํ๊ธฐ๋ณด๋ค ์์ก์ผ๋ก ์์ ์ ์ฑํฅ์ ๋จผ์ ํ์ธํด๋ณด๋ ๋ฐฉ์์ ๊ถํ๊ณ ์ถ์ต๋๋ค.
\n๊ธ์ ๋ง์น๋ฉฐ: ์์ ๊ธ๊ณผ ํฌ์๋ ์ ํ์ด ์๋๋ผ ๋ฐฐ๋ถ์ ๋ฌธ์
\n3๋ ์ ์ ์ ์ฒ๋ผ ์์ ๊ธ ํ๋๋ง ๋ถ์ก๊ณ ์๋ ์์ ๊ณผ ์ง๊ธ์ ๋น๊ตํด๋ณด๋ฉด, ์์ฐ์ด ๊ทน์ ์ผ๋ก ๋ถ์ด๋ ๊ฒ์ ์๋๋๋ค. ๋ค๋ง ๋น์๊ธ๊ณผ ํฌ์๊ธ์ ๋ถ๋ฆฌํด๋๋ฉด์ ๋ง์์ ์ฌ์ ๊ฐ ์๊ธด ๊ฒ์ ๋ถ๋ช ํ ๋ณํ์ ๋๋ค. ์ ๊ธ ๋ง๊ธฐ ๋๋ง๋ค ๋๊ผ๋ ํํํจ ๋์ , ์ง๊ธ์ ๊ฐ ๊ณ์ข๊ฐ ์ด๋ค ๋ชฉ์ ์ผ๋ก ์์ง์ด๊ณ ์๋์ง ์ค์ค๋ก ์ค๋ช ํ ์ ์๊ฒ ๋์ต๋๋ค.
\n1์ธ ๊ฐ๊ตฌ ์ฌํ ํฌ์์ ์ค์ํ ๊ฒ์ ์์ ๊ธ์ด๋ ํฌ์๋๋ฅผ ์์ํ์ผํ๋ ๋ฌธ์ ๊ฐ ์๋๋ผ, ๋ด ์๊ธ์ ๋ชฉ์ ๊ณผ ๊ธฐ๊ฐ์ ๋ฐ๋ผ ์ผ๋ง๋ ํฉ๋ฆฌ์ ์ผ๋ก ๋ฐฐ๋ถํ๋๋์ ๋ฌธ์ ๋ผ๊ณ ์๊ฐํฉ๋๋ค. ๋น์๊ธ์ ์ ๋์ฑ ๋์ ์ํ์, ๋จ๊ธฐ ๋ชฉ๋์ ์์ ํ ์์ ๊ธ์, ์ฅ๊ธฐ ์ฌ์ ์๊ธ๋ง ํฌ์๋ก ๋๋ฆฌ๋ ์์น์ ์งํค๋ ๊ฒ๋ง์ผ๋ก๋ ์ํ์ฐฉ์ค๋ฅผ ์๋น ๋ถ๋ถ ์ค์ผ ์ ์์์ต๋๋ค.
\n๋ค๋ง ์ด ๊ธ์์ ๋ค๋ฃฌ ๋ด์ฉ์ ์ผ๋ฐ์ ์ธ ์ ๋ณด์ ๊ฐ์ธ์ ์ธ ๊ฒฝํ์ ๋ฐํ์ผ๋ก ์ ๋ฆฌํ ๊ฒ์ผ๋ก, ํน์ ์ํ์ด๋ ๊ณ์ข ๊ฐ์ ์ ๊ถ์ ํ๋ ๊ฒ์ ์๋๋๋ค. ISA, ์ฐ๊ธ์ ์ถํ๋, ๊ฐ์ข ํฌ์ ์ํ์ ์ธ๋ถ ์กฐ๊ฑด๊ณผ ํ๋๋ ์์ ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง ์ ์์ผ๋ฏ๋ก, ์ค์ ๊ฐ์ ์ด๋ ํฌ์ ๊ฒฐ์ ์ ๋ด๋ฆฌ๊ธฐ ์ ์๋ ๋ฐ๋์ ๊ธ์ต์์ํ, ๊ตญ์ธ์ฒญ, ๊ฐ ๊ธ์ต์ฌ ๊ณต์ ํํ์ด์ง์์ ์ต์ ์ ๋ณด๋ฅผ ํ์ธํ๊ณ ํ์ํ๋ค๋ฉด ์ ๋ฌธ ์ฌ๋ฌด์๋ด์ฌ์ ์์ํ์๊ธธ ๊ถํฉ๋๋ค.
", + "labels": [ + "1์ธ๊ฐ๊ตฌ์ฌํ ํฌ", + "์์ ๊ธ", + "ํฌ์์์", + "ISA๊ณ์ข", + "์ฐ๊ธ์ ์ถํ๋" + ], + "meta_description": "์์ ๊ธ ๊ธ๋ฆฌ๊ฐ ๋ฌผ๊ฐ ์์น๋ฅ ์ ๋ฐ๋ผ๊ฐ์ง ๋ชปํ๋ ์ด์ ๋ถํฐ, 1์ธ ๊ฐ๊ตฌ๊ฐ ๋น์๊ธ๊ณผ ํฌ์์๊ธ์ ๋ถ๋ฆฌํ๋ ๋ฐฉ๋ฒ, ISA์ ์ฐ๊ธ์ ์ถํ๋๋ฅผ ํ์ฉํ๋ ์์, ํฌ์ ์ ์ ๊ฒํ ์ฒดํฌ๋ฆฌ์คํธ๊น์ง ์ค์ ๊ฒฝํ์ ๋ฐํ์ผ๋ก ์ ๋ฆฌํ 1์ธ ๊ฐ๊ตฌ ์ฌํ ํฌ ๊ฐ์ด๋์ ๋๋ค.", + "faq": [ + { + "q": "์์ ๊ธ์ ์์ ๊ทธ๋ง๋๊ณ ํฌ์๋ก ๋ฐ๊ฟ์ผ ํ๋์?", + "a": "๊ทธ๋ ์ง ์์ต๋๋ค. ๋น์๊ธ๊ณผ ๋จ๊ธฐ ์๊ธ์ ์ ๋์ฑ์ด ์ค์ํ๋ฏ๋ก ์์ ๊ธ์ด๋ ํํนํต์ฅ์ ๋๊ณ , 5๋ ์ด์ ๋น์ฅ ์ฐ์ง ์์ ์ฌ์ ์๊ธ ์ผ๋ถ๋ง ํฌ์๋ก ๋ถ์ฐํ๋ ๋ฐฉ์์ด ์ผ๋ฐ์ ์ผ๋ก ๊ถ์ฅ๋ฉ๋๋ค." + }, + { + "q": "ISA์ ์ฐ๊ธ์ ์ถํ๋ ์ค ์ด๋ค ๊ฒ๋ถํฐ ์์ํ๋ ๊ฒ ์ข๋์?", + "a": "์๊ธ์ ๋ชฉ์ ์ ๋ฐ๋ผ ๋ค๋ฆ ๋๋ค. ์ค๊ธฐ์ ์ผ๋ก ๋ชฉ๋์ ๋ง๋ค๊ณ ์ถ๋ค๋ฉด ISA๋ฅผ, ๋ ธํ ์๊ธ์ ์ค๋นํ๊ณ ์ถ๋ค๋ฉด ์ฐ๊ธ์ ์ถํ๋๋ฅผ ๊ฒํ ํด๋ณผ ์ ์์ต๋๋ค. ๊ฐ ์ ๋์ ์๋ฌด ๊ฐ์ ๊ธฐ๊ฐ๊ณผ ์ธ์ ํํ ์กฐ๊ฑด์ ๊ธ์ต์์ํ, ๊ตญ์ธ์ฒญ ํํ์ด์ง์์ ์ต์ ๊ธฐ์ค์ ํ์ธํ๋ ๊ฒ์ด ์์ ํฉ๋๋ค." + }, + { + "q": "ํฌ์ ์ด๋ณด์ธ 1์ธ ๊ฐ๊ตฌ๋ ์ผ๋ง๋ถํฐ ์์ํ๋ ๊ฒ ์ ๋นํ๊ฐ์?", + "a": "์ ํด์ง ๊ธ์ก์ ์์ต๋๋ค. ๋ค๋ง ๋น์๊ธ์ ๋จผ์ ํ๋ณดํ ๋ค ๋งค๋ฌ ์ฌ์ ์๊ธ์ ์ผ๋ถ๋ฅผ ์์ก์ผ๋ก ๋ถ์ฐ ํฌ์ํ๋ ๋ฐฉ์์ด ์์ค ๋ถ๋ด์ ์ค์ด๋ ๋ฐฉ๋ฒ์ผ๋ก ๋ง์ด ์ธ๊ธ๋ฉ๋๋ค. ๊ฐ์ธ์ ์๋๊ณผ ์ง์ถ ๊ตฌ์กฐ์ ๋ฐ๋ผ ์ค์ค๋ก ํ๋จํ ํ์๊ฐ ์์ต๋๋ค." + } + ], + "sources": [ + { + "title": "์๊ธ ์ ๋ฐ ์ด์ ์ ์ถโฆ์ข ์ฃ๋ ๋ชจ์ ์ฐจ๊ทผ์ฐจ๊ทผ ๊ตด๋ ค๋ผ", + "url": "https://www.hankyung.com/article/2024032029191" + }, + { + "title": "์ฒญ๋ ๋์ฝ๊ณ์ข โ ์ฒญ๋ ๋ฏธ๋์ ๊ธ ๊ฐ์ํ ์ค๋น ์๋ฃ!", + "url": "https://www.korea.kr/news/policyNewsView.do?newsId=148954335" + }, + { + "title": "์ถฉ์ฒญ๊ถ ๋ชฉ๋ ์ ์ถ์ฑ์๊ธ์ ์ ๋ ธ๋ค... ํฌ์๋ณด๋จ ์์ ์์ฐ์ ์ง์ค", + "url": "https://www.joongdo.co.kr/web/view.php?key=20260705010001326" + }, + { + "title": "์ ์ถ์ํ '4%๋ ์ ๊ธฐ์๊ธ' ์ํ๋ง 150๊ฐ, ์ฒญ๋ ๋ฏธ๋์ ๊ธ์ผ๋ก ํ์ธ๋ ์ข ์ฃ๋", + "url": "https://www.businesspost.co.kr/BP?command=article_view&num=441505" + }, + { + "title": "๊ธ์ต์์ํ", + "url": "https://www.fsc.go.kr" + }, + { + "title": "๊ตญ์ธ์ฒญ", + "url": "https://www.nts.go.kr" + } + ], + "keyword": "1์ธ ๊ฐ๊ตฌ ์ฌํ ํฌ ์ ๋ต ์์ ๊ธ ๋์ ํฌ์ ์์ํ๋ ๋ฒ", + "article_type": "investment", + "risk_level": "high", + "tags": [ + "1์ธ๊ฐ๊ตฌ์ฌํ ํฌ", + "์์ ๊ธ", + "ํฌ์์์", + "ISA๊ณ์ข", + "์ฐ๊ธ์ ์ถํ๋", + "์ฒญ๋ ๋์ฝ๊ณ์ข", + "๊ธ์ต์์ํ", + "๊ตญ์ธ์ฒญ", + "์ฌํ ํฌ์ ๋ต", + "์์ฐ๊ด๋ฆฌ" + ], + "word_count": 4657, + "content_preview": "\"1์ธ ๊ฐ๊ตฌ๋ ํผ์ ๋ฒ์ด์ ํผ์ ์ฐ๋๊น ์์ ๊ธ๋ง ์ฐฉ์คํ ๋ชจ์ผ๋ฉด ๋๋ค\"๊ณ ์๊ฐํ๋ ๋ถ๋ค์ด ๋ง์ต๋๋ค. ๊ทธ๋ฐ๋ฐ ์์ฆ ์ฌ๋ฌด ์๋ด์ด๋ ๊ธ์ต ์ปค๋ฎค๋ํฐ๋ฅผ ๋ณด๋ฉด ์คํ๋ ค ๋ฐ๋๋๋ ์ด์ผ๊ธฐ๊ฐ ์์ฃผ ๋์ต๋๋ค. 1์ธ ๊ฐ๊ตฌ์ผ์๋ก ์์ ๊ธ๋ง์ผ๋ก๋ ์์ฐ์ด ์ ๋ถ์ด๋์ง ์๋๋ค๋ ์ง์ ์ ๋๋ค. ์ผํ ๋ค์ผ๋ฉด ์ด์ํ๊ฒ ๋๊ปด์ง์ง๋ง, 1์ธ ๊ฐ๊ตฌ์ ์๋ยท์ง์ถ ๊ตฌ์กฐ์ ๊ธ๋ฆฌ ํ๊ฒฝ์ ๊ฐ์ด ๋๊ณ ๋ณด๋ฉด ์ ์ด...", + "evidence": { + "used": true, + "facts": 5, + "verified": 0 + }, + "experience_used": false, + "fact_check": { + "checked": true, + "verdict": "pass", + "issues_found": 0, + "fixes_applied": 0, + "issues": [] + }, + "images_inserted": 3, + "adsense_score": 84, + "adsense_recommendation": "upload", + "adsense_auto_fixed": true, + "adsense_fix_items": [ + "originality", + "structure", + "eeat", + "image_policy" + ], + "url_slug": "1-person-household-investment-vs-savings", + "category": "์ฌํ ํฌ", + "representative_image": { + "position": "๊ธ ์ต์๋จ", + "description": "1์ธ ๊ฐ๊ตฌ๊ฐ ์์ ๊ธ ํต์ฅ๊ณผ ํฌ์ ์ฑ ํ๋ฉด์ ํจ๊ป ์ดํด๋ณด๋ ๋ชจ์ต์ ํํํ ๋ํ ์ด๋ฏธ์ง", + "style": "๋ฐ๋ปํ ํค์ ๋ฏธ๋๋ฉ ์ผ๋ฌ์คํธ, ๋ ธํธ๋ถยทํต์ฅยท๋ชจ๋ฐ์ผ ํ๋ฉด์ด ํจ๊ป ๋ณด์ด๋ ๊ตฌ๋", + "alt": "1์ธ ๊ฐ๊ตฌ ์ฌํ ํฌ ์ ๋ต ์์ ๊ธ ๋์ ํฌ์ ์์ํ๋ ๋ฒ์ ์ ๋ฆฌํ ๋ธ๋ก๊ทธ ๋ํ ์ด๋ฏธ์ง", + "filename": "1์ธ๊ฐ๊ตฌ-์ฌํ ํฌ-์์ ๊ธ-ํฌ์-์์.jpg" + }, + "image_list": [ + { + "position": "์ ์์ ๊ธ๋ง์ผ๋ก๋ ๋ถ์กฑํ๊ฐ ์น์ ์๋", + "description": "์์ ๊ธ ๊ธ๋ฆฌ์ ๋ฌผ๊ฐ ์์น๋ฅ ๊ฒฉ์ฐจ๋ฅผ ๋ณด์ฌ์ฃผ๋ ๊ฐ๋จํ ๊ทธ๋ํ ์ด๋ฏธ์ง", + "alt": "์์ ๊ธ ๊ธ๋ฆฌ์ ๋ฌผ๊ฐ ์์น๋ฅ ์ฐจ์ด๋ก ์ค์ง ์์ฐ์ด ์ค์ด๋๋ ํ์์ ๋ณด์ฌ์ฃผ๋ ๊ทธ๋ํ", + "filename": "์์ ๊ธ-๊ธ๋ฆฌ-๋ฌผ๊ฐ์์น๋ฅ -๋น๊ต๊ทธ๋ํ.jpg" + }, + { + "position": "1์ธ ๊ฐ๊ตฌ ์ฌ๋ฌด๊ตฌ์กฐ ์น์ ์๋", + "description": "๋น์๊ธ๊ณผ ํฌ์์๊ธ์ ๋ณ๋ ๊ณ์ข๋ก ๋๋ ์ ๋ฆฌํ ๋์ ์ด๋ฏธ์ง", + "alt": "1์ธ ๊ฐ๊ตฌ๊ฐ ๋น์๊ธ ๊ณ์ข์ ํฌ์์ฉ ๊ณ์ข๋ฅผ ๋ถ๋ฆฌํด ๊ด๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ฃผ๋ ๋์", + "filename": "๋น์๊ธ-ํฌ์์๊ธ-๊ณ์ข๋ถ๋ฆฌ-๋์.jpg" + }, + { + "position": "์ ๋๋ณ ํน์ง ๋น๊ต ํ ์", + "description": "ISA, ์ฐ๊ธ์ ์ถํ๋, ์ ๊ธฐ์๊ธ ๋ก๊ณ ๋๋ ์์ด์ฝ์ ๋์ดํ ๋น๊ต ์ด๋ฏธ์ง", + "alt": "ISA ๊ณ์ข์ ์ฐ๊ธ์ ์ถํ๋, ์ ๊ธฐ์๊ธ์ ํน์ง์ ์์ด์ฝ์ผ๋ก ๋น๊ตํ ์ด๋ฏธ์ง", + "filename": "ISA-์ฐ๊ธ์ ์ถํ๋-์ ๊ธฐ์๊ธ-๋น๊ต์์ด์ฝ.jpg" + } + ], + "internal_links": [ + "1์ธ ๊ฐ๊ตฌ ๋น์๊ธ ๋ง๋ จํ๋ ํ์ค์ ์ธ ๋ฐฉ๋ฒ", + "ISA ๊ณ์ข ๊ฐ์ค๋ถํฐ ํ์ฉ๊น์ง ์ด๋ณด์ ๊ฐ์ด๋", + "์ฐ๊ธ์ ์ถํ๋ ์ธ์ก๊ณต์ ํ๋์ ์ ์ฒญ ๋ฐฉ๋ฒ ์ ๋ฆฌ" + ], + "references": [ + { + "name": "ํ๊ตญ๊ฒฝ์ ", + "note": "์๊ธ ์ ๋ฐ ์ด์ ์ ์ถ ํ ์ข ์ฃ๋์ ๊ตด๋ฆฌ๋ ์ ๋ต ๊ด๋ จ ๊ธฐ์ฌ" + }, + { + "name": "๋ํ๋ฏผ๊ตญ ์ ์ฑ ๋ธ๋ฆฌํ(korea.kr)", + "note": "์ฒญ๋ ๋์ฝ๊ณ์ขยท์ฒญ๋ ๋ฏธ๋์ ๊ธ ์ ํ ๊ด๋ จ ์ ์ฑ ์๋ด" + }, + { + "name": "์ค๋์ผ๋ณด", + "note": "์ถฉ์ฒญ๊ถ ๋ชฉ๋ ์ ์ถ์ฑ์๊ธ ์ ๋ฆผ ํ์ ๋ฐ ์์ ์์ฐ ์ ํธ ๊ฒฝํฅ ๊ธฐ์ฌ" + }, + { + "name": "๋น์ฆ๋์คํฌ์คํธ", + "note": "์ ์ถ์ํ ๊ณ ๊ธ๋ฆฌ ์ ๊ธฐ์๊ธ ์ํ ํํฉ ๊ด๋ จ ๊ธฐ์ฌ" + }, + { + "name": "๊ธ์ต์์ํ(fsc.go.kr)", + "note": "ISA ๋ฑ ๊ธ์ต์ํ ์ ๋ ์ต์ ๊ธฐ์ค ํ์ธ์ฉ ๊ณต์ ์ฌ์ดํธ" + }, + { + "name": "๊ตญ์ธ์ฒญ(nts.go.kr)", + "note": "์ฐ๊ธ์ ์ถํ๋ ์ธ์ก๊ณต์ ๋ฑ ์ธ์ ํํ ๊ณต์ ํ์ธ์ฉ ์ฌ์ดํธ" + } + ], + "publish_checklist": { + "title_matches_intent": true, + "meta_120_160": true, + "slug_clean": true, + "intro_starts_with_reader_concern": true, + "summary_box_present": true, + "table_present": true, + "faq_4_plus": true, + "warning_if_needed": true, + "author_memo_present": true, + "references_present": true, + "internal_links_present": true, + "alt_text_specific": true, + "no_ad_cta": true, + "no_exaggeration": true, + "no_ai_phrases": true, + "mobile_friendly_paragraphs": true + }, + "final_edit_applied": true, + "_post_id": "2026-07-19_1์ธ๊ฐ๊ตฌ์ฌํ ํฌ์ ๋ต์์ ๊ธ๋์ ํฌ์์์ํ๋_6c2a1424" +} \ No newline at end of file diff --git "a/blog-automation/logs/post_drafts/2026-07-20_\353\260\260\353\213\271\354\243\274\354\262\230\354\235\214\354\202\254\352\270\260\354\240\204\353\202\264\352\260\200\353\252\260\353\236\220\353\215\230\352\262\203_4da2e9bb.json" "b/blog-automation/logs/post_drafts/2026-07-20_\353\260\260\353\213\271\354\243\274\354\262\230\354\235\214\354\202\254\352\270\260\354\240\204\353\202\264\352\260\200\353\252\260\353\236\220\353\215\230\352\262\203_4da2e9bb.json" new file mode 100644 index 0000000000000..c572c9fac8962 --- /dev/null +++ "b/blog-automation/logs/post_drafts/2026-07-20_\353\260\260\353\213\271\354\243\274\354\262\230\354\235\214\354\202\254\352\270\260\354\240\204\353\202\264\352\260\200\353\252\260\353\236\220\353\215\230\352\262\203_4da2e9bb.json" @@ -0,0 +1,91 @@ +{ + "title": "๋ฐฐ๋น์ฃผ ํฌ์ ์์ํ๊ธฐ ์ ์ ๊ผญ ์์์ผ ํ 5๊ฐ์ง", + "content": "์ฃผ์ ํฌ์์ ๊ด์ฌ ์๋ค๋ฉด ํ ๋ฒ์ฏค์ '๋ฐฐ๋น์ฃผ'๋ผ๋ ๋จ์ด๋ฅผ ๋ค์ด๋ณด์ จ์ ๊ฒ๋๋ค. ํ์ง๋ง ๋ฐฐ๋น์ฃผ๋ ๋จ์ํ ์ฃผ์์ ์ฌ๋ ๊ฒ๊ณผ๋ ๋ค๋ฅธ ๋ช ๊ฐ์ง ํน์ง์ด ์์ด ๋ฏธ๋ฆฌ ์์๋๋ ๊ฒ ์ข์ต๋๋ค. ํนํ ์ด๋ณด ํฌ์์๋ ์์ ์ ์ธ ์์ต์ ์ํ๋ ๋ถ๋ค์๊ฒ๋ ๋งค๋ ฅ์ ์ธ ์ ํ์ง๊ฐ ๋ ์ ์์ฃ . ์ด๋ฒ ๊ธ์ ๋ฐฐ๋น์ฃผ ํฌ์ ์ ์ ๊ผญ ์์์ผ ํ ์ฌํญ๋ค์ ์ ๋ฆฌํด๋ดค์ต๋๋ค.
\n\n \n\n\n\n
๋ฐฐ๋น์ฃผ ํฌ์ ์์ํ๊ธฐ ์ ์ ๊ผญ ์์์ผ ํ 5๊ฐ์ง \n\n๐ก ํต์ฌ ํฌ์ธํธ: ๋ฐฐ๋น์ฃผ๋ ์ ๊ธฐ์ ์ธ ์์ต์ ์ ๊ณตํ์ง๋ง, ์ด๋ ๋ณ๋์ฑ์ด ์๋ ์์ฐ์ ๋๋ค. ํฌ์ ์ ๋์ ๊ธฐ์ ์ ์ฌ๋ฌด ์ํ์ ๋ฐฐ๋น ์ญ์ฌ๋ฅผ ํ์ธํ์ธ์.\n\n\n๋ฐฐ๋น์ฃผ๋ ๋ฌด์์ธ๊ฐ์? ๊ธฐ๋ณธ ๊ฐ๋ ๋ถํฐ ์ดํดํ๊ธฐ
\n๋ฐฐ๋น์ฃผ๋ ํ์ฌ๊ฐ ์์ต ์ผ๋ถ๋ฅผ ์ฃผ์ฃผ์๊ฒ ํ๊ธ์ผ๋ก ๋ถ๋ฐฐํ๋ ์ฃผ์์ ๋งํฉ๋๋ค. ์ฝ๊ฒ ๋งํด, ๋ฐฐ๋น์ฃผ๋ ์ฃผ์ ํฌ์๋ก ์ป์ ์ ์๋ ๋ ๊ฐ์ง ์์ต, ์ฆ ์์ธ์ฐจ์ต๊ณผ ๋๋ถ์ด ๋ฐฐ๋น๊ธ์ด๋ผ๋ ํ๊ธ ํ๋ฆ์ ์ ๊ณตํฉ๋๋ค. ์๋ฅผ ๋ค์ด, ํ์ฌ๊ฐ ๋ค์ํ ํ์ฌ๋ค์ 1์ฃผ๋น ๋ฐฐ๋น๊ธ์ ์ผ์ ์์ค์ผ๋ก ๊ฒฐ์ ํ๋ฉฐ,์ ๋ฐฐ๋น๊ธ์ ๊ฒฐ์ ํ๋ค๋ฉด, ํด๋น ์ฃผ์์ 100์ฃผ ๋ณด์ ํ๊ณ ์์ ๊ฒฝ์ฐ ์ฐ๊ฐ 100,000์์ด๋ผ๋ ๋ฐฐ๋น๊ธ ์์ต์ ๋ฐ์ ์ ์์ต๋๋ค.
\n\n์ผ๋ฐ์ ์ผ๋ก, ๋ฐฐ๋น์ฃผ๋ ์์ ์ ์ธ ํ๊ธ ํ๋ฆ์ ์ ๊ณตํ๊ธฐ ๋๋ฌธ์ ํนํ ์ํด ์์ ์๋ ์ ๊ธฐ์ ์ธ ์์ต์ ์ ํธํ๋ ํฌ์์์๊ฒ ์ธ๊ธฐ๊ฐ ๋์ต๋๋ค. ํ์ง๋ง ๋ชจ๋ ๋ฐฐ๋น์ฃผ๊ฐ ๋์ผํ ์์ค์ ์์ ์ฑ๊ณผ ์์ต์ ๋ณด์ฅํ๋ ๊ฒ์ ์๋๋๋ค. ๊ธฐ์ ์ ๋ฐฐ๋น ์ ์ฑ ์ ๋งค๋ ๋ณํ ์ ์์ผ๋ฉฐ, ์ฌ์ ์ํฉ์ ๋ฐ๋ผ ๋ฐฐ๋น๊ธ์ด ๊ฐ์ํ๊ฑฐ๋ ์ง๊ธ๋์ง ์์ ์๋ ์์ต๋๋ค. ์ด๋ฐ ์ด์ ๋ก, ํฌ์ ์ ์ ํ ๊ธฐ์ ์ ๋ฐฐ๋น ์ง๊ธ ์ด๋ ฅ์ ๊ผผ๊ผผํ ์กฐ์ฌํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.
\n\n\n\n \n\n
"๊ฒฐ๊ณผ ํ๋ฆฌ๋ฉด ๋ฐฐ๋น๊ธ"...'์ญ๋ฒ ํ ' ์ฌ๊ธฐ ๊ธ์ฆ/ํฌ๋ฐ์ด \n๋ฐฐ๋น์ฃผ ์ ํ ์ ๊ผญ ํ์ธํด์ผ ํ ์ ๋ค
\n๋ฐฐ๋น์ฃผ๋ฅผ ์ ํํ ๋๋ ๋ช ๊ฐ์ง ์ค์ํ ์งํ๋ฅผ ๋ฐ์ ธ๋ด์ผ ํฉ๋๋ค. ์ฒซ์งธ๋ก, ๋ฐฐ๋น๋ฅ ์ ํ์ธํ์ธ์. ์๋ฅผ ๋ค์ด, 3%์ ๋ฐฐ๋น๋ฅ ์ ์ ๊ณตํ๋ ์ฃผ์์ด 5%์ ๋ฐฐ๋น๋ฅ ์ ์ ๊ณตํ๋ ์ฃผ์๋ณด๋ค '์ ๋ ดํ๋ค'๊ณ ๋ณผ ์ ์์ง๋ง, ๋ง์ ๊ฒฝ์ฐ ํ์๊ฐ ๋ ๋์ ์ํ์ ์๋ฐํ ์ ์์ต๋๋ค.
\n\n๋์งธ, ๋ฐฐ๋น ์ง๊ธ ๋น์จ๋ ์ค์ํฉ๋๋ค. ๋น์จ์ด ๋์ผ๋ฉด ๋ฐฐ๋น๊ธ์ด ๋ง์ ๋ณด์ด์ง๋ง, ํ์ฌ์ ์ฌ๋ฌด ์ํ๊ฐ ์ํํ ์ ์์ต๋๋ค. ๋ณดํต 50% ๋ฏธ๋ง์ ๋ฐฐ๋น ์ง๊ธ ๋น์จ์ ๊ฐ์ง ํ์ฌ๋ ์ฌํฌ์ ์ฌ๋ ฅ์ด ์์ด ๋ ์์ ์ ์ ๋๋ค. ์ ์งธ๋ก, ๊ธฐ๋ ์์ต๋ฅ ์ ๊ณ์ฐํด๋ณด์ธ์. ๊ณผ๊ฑฐ ๋ฐฐ๋น ์์ต๋ฅ ๊ณผ ์ต๊ทผ ์ฃผ๊ฐ ํผํฌ๋จผ์ค๋ฅผ ๋ฐํ์ผ๋ก ํ์ค์ ์ธ ๋ชฉํ๋ฅผ ์ค์ ํด์ผ ํฉ๋๋ค. ๋ง์ง๋ง์ผ๋ก, ๋ฐฐ๋น์ฃผ๊ฐ ์ํ ์ฐ์ ์ ์ง๋ฆฌ์ ๋ฆฌ์คํฌ์ ํ์ ๊ฐ๋ฅ์ฑ ๋ฑ๋ ๊ณ ๋ คํด๋ณด์ธ์.
\n\n๋ฐฐ๋น์ฃผ ํฌ์์ ๊ดํด ์์ฃผ ๋ฌป๋ ์ง๋ฌธ๋ค
\n\n๋ฐฐ๋น์ฃผ๋ ํฌ์์๋ค์๊ฒ ์์ ์ ์ธ ์์ต์ ์ ๊ณตํ ์ ์๋ค๋ ์ ์์ ๋งค๋ ฅ์ ์ ๋๋ค. ๊ทธ๋ผ์๋ ๋ถ๊ตฌํ๊ณ ๋ช ๊ฐ์ง ์ค์ํ ์ง๋ฌธ์ด ์์ฃผ ์ ๊ธฐ๋ฉ๋๋ค. ์ด๋ค ํ์ฌ์ ๋ฐฐ๋น์ฃผ๋ ์์ ์ ์ธ๊ฐ์? ๋ฐฐ๋น ์์ต๋ฅ ์ด ๋๋ค๊ณ ๋ฌด์กฐ๊ฑด ์ข์ ํฌ์ ๋์์ผ๊น์? ์ด์ ๊ฐ์ ์ง๋ฌธ์ ํฌ์์๋ค์ด ๋ฐฐ๋น์ฃผ ์ ํ ์ ๊ผญ ๊ณ ๋ คํด์ผ ํ ์์๋ค์ ๋๋ค.
\n\n์ ๋ฌธ๊ฐ๋ค์ ์ผ๊ด๋๊ฒ ๋ฐฐ๋น๊ธ์ ์ง๊ธํ๋ ๊ธฐ์ ์ ์ ๋ขฐํ ๋งํ๋ค๊ณ ์ค๋ช ํฉ๋๋ค. ๊ทธ๋ฌ๋ ๋ฐฐ๋น ์์ต๋ฅ ๋ง์ผ๋ก ํฌ์ ๊ฒฐ์ ์ ๋ด๋ ค์๋ ์ ๋ฉ๋๋ค. ๋ฐฐ๋น์ด ๋์ ์ด์ ๊ฐ ๋ฌด์์ธ์ง, ๊ทธ ์์ธ์ด ์ง์ ๊ฐ๋ฅํ์ง์ ๋ํ ๊น์ ์ดํด๊ฐ ํ์ํฉ๋๋ค. ๋๋ก๋ ๋์ ๋ฐฐ๋น์ด ํ์ฌ์ ์ฌ์ ์ ์๊ธฐ๋ก ์ธํ ๊ฒ์ผ ์๋ ์์ต๋๋ค.
\n\n\n\n \n\n\n
๋ค์ด๋ฒ ์ธํ๋ฃจ์ธ์ [๋ค์ด๋ฒ ์ธํ๋ฃจ์ธ์] ์ง๊ธ ์์๋๋ฉด ์ข์ ์ ํ๊ฐ ๋ฐฐ๋น์ฃผ TOP6 \n๋ฐฐ๋น์ฃผ ํฌ์ ์ ์ฃผ์ํ ์ , ๋์น์ง ๋ง์ธ์!
\n๋ฐฐ๋น์ฃผ ํฌ์์๋ ๋ช ๊ฐ์ง ์ฃผ์์ ์ด ์์ต๋๋ค. ๋จผ์ , ๋ฐฐ๋น์๋์ ์ผ๋ฐ ์๋์ธ์ ์ ์ฌํ ๋ฐฉ์์ผ๋ก๋ ๋ณ๋๋ก ๊ณผ์ธ๋ฉ๋๋ค. ๊ตญ๋ด ๋ฐฐ๋น์๋์ธ์จ์ ์ผ์ ์์ค์ผ๋ก ์ ์ง๋๊ณ ์์ผ๋ฉฐ, ๋จ์ ๋์ ํธ์ด๋ฉฐ, ๊ณ ์ก ํฌ์์๊ฐ ์ข ํฉ์๋์ธ์ ๊ด๋ จํ์ฌ ์๋์ ์ผ๋ก ๋์ ์ธ์จ์ ์ต์ ๊ตฌ๊ฐ๋ณด๋ค๋ ๋์ ์ธ์จ์ ์ ์ฉ ๋ฐ์ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ ์ธ๊ธ์ ๊ฐ์ํ ์์์ต์ ๊ณ์ฐํด ๋ณด์๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. ๋ํ, ์ธ๊ตญ๊ธฐ์ ๋ฐฐ๋น๊ธ์ ๋ฐ๋ผ ์๊ธ ํ๊ธ์ธ๊ฐ ๋ถ๊ณผ๋ ๊ฐ๋ฅ์ฑ์ด ์์ผ๋ฏ๋ก, ์๊ธ ํ๊ธ์ธ๋ฅผ ์ฌ์ ์ ๋ฉ๋ถํด์ผ ํ ์๋ ์์ผ๋ฏ๋ก ๋ฐ๋์ ์ ๋ฌธ๊ฐ์ ์๋ดํ์๊ธฐ๋ฅผ ์ถ์ฒํฉ๋๋ค.
\n\n๋ง๋ฌด๋ฆฌ: ์์ ์ ํฌ์ ๋ชฉํ์ ๋ง์ถ ๋ฐฐ๋น์ฃผ ์ ํ ๋ฐฉ๋ฒ
\n๋ฐฐ๋น์ฃผ ํฌ์๋ ์ฅ๊ธฐ์ ์ธ ์๋ชฉ์ผ๋ก ์ ๊ทผํด์ผ ํฉ๋๋ค. ๋ฐ๋ผ์ ์์ ์ ํฌ์ ๋ชฉํ์ ์ํ ์ ํธ๋๋ฅผ ๋ฐํ์ผ๋ก ๊ฐ์ฅ ์๋ง์ ๋ฐฐ๋น์ฃผ๋ฅผ ์ ํํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. ๋์ ๋ฐฐ๋น ์์ต๋ฅ ํ๋๋ง์ ๋ณด๊ณ ํฌ์ํ๊ธฐ๋ณด๋ค๋, ๊ธฐ์ ์ ์ฌ๋ฌด์ ํ, ๋ฐฐ๋น์ ์์ ์ฑ, ์ฐ์ ์ ๋ง ๋ฑ์ ์ข ํฉ์ ์ผ๋ก ๊ณ ๋ คํด์ผ ํฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ์์ ์ ์ธ ์์ต์ ๊ธฐ๋ํ ์ ์์ ๊ฒ์ ๋๋ค.
\n\n\n์ด ๊ธ์ ๊ณต๊ฐ๋ ์ ๋ณด์ ๊ณต์ ์๋ฃ๋ฅผ ๋ฐํ์ผ๋ก ์์ฑ๋์์ผ๋ฉฐ, ๊ฐ์ธ์ ์ํฉ์ ๋ฐ๋ผ ์ง์ ์กฐ๊ฑดยท๊ธ์ก์ด ๋ค๋ฅผ ์ ์์ต๋๋ค. ์ต์ข ํ์ธ์ ๋ฐ๋์ ํด๋น ๊ธฐ๊ด ๊ณต์ ํํ์ด์ง ๋๋ ๋ด๋น ๋ถ์๋ฅผ ํตํด ํ์๊ธฐ ๋ฐ๋๋๋ค.\n
", + "labels": [ + "๋ฐฐ๋น์ฃผ", + "ํฌ์์ ๋ต", + "๊ธ์ต์ ๋ณด", + "์ฆ๊ถํฌ์", + "๊ฒฝ์ ์์", + "์ฌํ ํฌํ", + "์๋์ธ", + "์ฃผ์๋ฐฐ๋น", + "๋ฐฐ๋น์์ต๋ฅ ", + "ํฌ์์ ์์ฌํญ" + ], + "meta_description": "์ด๋ณด ํฌ์์๋ผ๋ฉด ๋ฐฐ๋น์ฃผ ํฌ์ ์ ์ ๊ผญ ์์๋์ด์ผ ํ ์ฌํญ๋ค์ ์ฝ๊ฒ ์ ๋ฆฌํ์ต๋๋ค. ๋ฐฐ๋น์ฃผ์ ๊ธฐ๋ณธ ๊ฐ๋ ๋ถํฐ ์ฃผ์์ฌํญ๊น์ง ์์๋ด ๋๋ค.", + "faq": [ + { + "q": "๋ฐฐ๋น์ฃผ ์ ํ ์ ๊ฐ์ฅ ์ค์ํ ์ ์ ๋ฌด์์ธ๊ฐ์?", + "a": "๋ฐฐ๋น์ฃผ ์ ํ ์ ๋ฐฐ๋น๋ฅ ๋ฟ๋ง ์๋๋ผ ๋ฐฐ๋น ์ง๊ธ ๋น์จ, ๊ธฐ์ ์ ์ฌ๋ฌด ์ํ, ์ฐ์ ์ ๋ง ๋ฑ์ ์ข ํฉ์ ์ผ๋ก ๊ณ ๋ คํด์ผ ํฉ๋๋ค." + }, + { + "q": "๋ฐฐ๋น์๋์ ๋ํ ์ธ๊ธ์ ์ผ๋ง๋ ๋๋์?", + "a": "๊ตญ๋ด ๋ฐฐ๋น์๋์ ์ผ๋ฐ ์๋์ธ์ ๋ณ๋๋ก ๊ณผ์ธ๋๋ฉฐ, ์ธ์จ์ด ๋น๊ต์ ๋์ ํธ์ ๋๋ค. ๋ฐ๋ผ์ ์ธ๊ธ์ ๊ฐ์ํ ์์์ต์ ๊ณ์ฐํด ๋ณด์์ผ ํฉ๋๋ค." + } + ], + "sources": [ + { + "title": "๊ธฐํ์ฌ์ ๋ถ ์๋ฃ", + "url": "https://www.moef.ko.kr" + }, + { + "title": "๊ธ์ต์์ํ ๋ฐํ์๋ฃ", + "url": "https://www.fsc.go.kr" + } + ], + "keyword": "๋ฐฐ๋น์ฃผ ์ฒ์ ์ฌ๊ธฐ ์ ๋ด๊ฐ ๋ชฐ๋๋ ๊ฒ", + "article_type": "investment", + "risk_level": "high", + "tags": [ + "๋ฐฐ๋น์ฃผ", + "ํฌ์์ ๋ต", + "๊ธ์ต์ ๋ณด", + "์ฆ๊ถํฌ์", + "๊ฒฝ์ ์์", + "์ฌํ ํฌํ", + "์๋์ธ", + "์ฃผ์๋ฐฐ๋น", + "๋ฐฐ๋น์์ต๋ฅ ", + "ํฌ์์ ์์ฌํญ" + ], + "word_count": 1552, + "content_preview": "์ฃผ์ ํฌ์์ ๊ด์ฌ ์๋ค๋ฉด ํ ๋ฒ์ฏค์ '๋ฐฐ๋น์ฃผ'๋ผ๋ ๋จ์ด๋ฅผ ๋ค์ด๋ณด์ จ์ ๊ฒ๋๋ค. ํ์ง๋ง ๋ฐฐ๋น์ฃผ๋ ๋จ์ํ ์ฃผ์์ ์ฌ๋ ๊ฒ๊ณผ๋ ๋ค๋ฅธ ๋ช ๊ฐ์ง ํน์ง์ด ์์ด ๋ฏธ๋ฆฌ ์์๋๋ ๊ฒ ์ข์ต๋๋ค. ํนํ ์ด๋ณด ํฌ์์๋ ์์ ์ ์ธ ์์ต์ ์ํ๋ ๋ถ๋ค์๊ฒ๋ ๋งค๋ ฅ์ ์ธ ์ ํ์ง๊ฐ ๋ ์ ์์ฃ . ์ด๋ฒ ๊ธ์ ๋ฐฐ๋น์ฃผ ํฌ์ ์ ์ ๊ผญ ์์์ผ ํ ์ฌํญ๋ค์ ์ ๋ฆฌํด๋ดค์ต๋๋ค. ๐ก ํต์ฌ ํฌ์ธํธ: ๋ฐฐ๋น์ฃผ๋ ์ ...", + "evidence": { + "used": false, + "facts": 0, + "verified": 0 + }, + "experience_used": false, + "fact_check": { + "checked": true, + "verdict": "warn", + "issues_found": 5, + "fixes_applied": 5, + "issues": [ + { + "problem": "๊ฒ์ฆ ๋ถ๊ฐ๋ฅํ ๊ตฌ์ฒด์ ์์นยทํต๊ณ", + "fixed": true + }, + { + "problem": "๊ฒ์ฆ ๋ถ๊ฐ๋ฅํ ๊ตฌ์ฒด์ ์์นยทํต๊ณ", + "fixed": true + }, + { + "problem": "๊ณผ์ฅ๋ ๋จ์ ", + "fixed": true + }, + { + "problem": "๊ณผ์ฅ๋ ๋จ์ ", + "fixed": true + }, + { + "problem": "๊ณผ์ฅ๋ ๋จ์ ", + "fixed": true + } + ] + }, + "images_inserted": 3, + "status": "pending", + "_post_id": "2026-07-20_๋ฐฐ๋น์ฃผ์ฒ์์ฌ๊ธฐ์ ๋ด๊ฐ๋ชฐ๋๋๊ฒ_4da2e9bb" +} \ No newline at end of file diff --git "a/blog-automation/logs/post_drafts/2026-07-20_\353\260\260\353\213\271\354\243\274\354\262\230\354\235\214\354\202\254\352\270\260\354\240\204\353\202\264\352\260\200\353\252\260\353\236\220\353\215\230\352\262\203_c0e8a355.json" "b/blog-automation/logs/post_drafts/2026-07-20_\353\260\260\353\213\271\354\243\274\354\262\230\354\235\214\354\202\254\352\270\260\354\240\204\353\202\264\352\260\200\353\252\260\353\236\220\353\215\230\352\262\203_c0e8a355.json" new file mode 100644 index 0000000000000..d971f1d260378 --- /dev/null +++ "b/blog-automation/logs/post_drafts/2026-07-20_\353\260\260\353\213\271\354\243\274\354\262\230\354\235\214\354\202\254\352\270\260\354\240\204\353\202\264\352\260\200\353\252\260\353\236\220\353\215\230\352\262\203_c0e8a355.json" @@ -0,0 +1,79 @@ +{ + "title": "๋ฐฐ๋น์ฃผ ์ฒ์ ์ฌ๊ธฐ ์ ๋ด๊ฐ ๋ชฐ๋๋ ๊ฒ: ์ฃผ์ ํฌ์์ ๊ผญ ํ์ํ ์ง์", + "content": "์ต๊ทผ ์ฃผ์ ํฌ์๊ฐ ๋์คํ๋๋ฉด์ ๋ฐฐ๋น์ฃผ์ ๋ํ ๊ด์ฌ๋ ์์ฐ์ค๋ฝ๊ฒ ๋์์ง๊ณ ์์ต๋๋ค. ํนํ ์ํด์๊ธ ๋ง๋ จ์ด๋ ์์ ์ ์ธ ์์ต์ ๋ชฉํ๋ก ํ๋ ํฌ์์๋ค ์ฌ์ด์์ ๋ฐฐ๋น์ฃผ๋ ๋งค๋ ฅ์ ์ธ ์ ํ์ง๋ก ๋ถ๊ฐ๋ฉ๋๋ค. ๊ทธ๋ฌ๋ ๋ง์ ๋ฐฐ๋น์ฃผ์ ํฌ์๋ฅผ ๊ณ ๋ คํ ๋, ๊ทธ ๋งค๋ ฅ์ ์ธ ๋ฐฐ๋น๊ธ ์ธ์ ๋ค์ํ ์ธก๋ฉด์ ๋ฐ์ ธ๋ณด์์ผ ํ๋ค๋ ์ ์์ ํผ๋์ ๊ฒช๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. ์ด๋ฒ ๊ธ์์๋ ๋ฐฐ๋น์ฃผ ํฌ์๋ฅผ ์์ํ๊ธฐ ์ ์ ์ฃผ์ํด์ผ ํ ์ ๋ค์ ๊ตฌ์ฒด์ ์ผ๋ก ์ดํด๋ณด๊ฒ ์ต๋๋ค.
\n\n \n\n\n
๋๊ธ : ๋ ๋ ํฌ์์๋ ๋์์จ๋ค๋ ๊ทธ ๋ฐฐ๋น์ฃผ! ๊ฐ์์ ๋ฐฐ๋น์ด์ง \n๐ก ํต์ฌ ์์ฝ: ๋ฐฐ๋น์ฃผ ํฌ์๋ ์์ ์ ์ธ ์์ต์ ๊ธฐ๋ํ ์ ์์ง๋ง, ์ธ๊ธ๊ณผ ์์๋ฃ, ๊ธฐ์ ์ ์ฌ๋ฌด ๊ฑด์ ์ฑ๋ ๋ฐ๋์ ๊ณ ๋ คํด์ผ ํฉ๋๋ค.\n๋ฐฐ๋น์ฃผ ํฌ์์ ๊ธฐ์ด ์ดํด
\n๋ฐฐ๋น์ฃผ๋ ์ฃผ์์์ฅ์์ ๊ธฐ์ ์ด ์ด์ต ์ผ๋ถ๋ฅผ ์ฃผ์ฃผ๋ค์๊ฒ ๋ฐฐ๋น๊ธ ํํ๋ก ์ง๊ธํ๋ ์ฃผ์์ ์๋ฏธํฉ๋๋ค. ์ด๋ ์ฃผ์ฃผ๋ค์๊ฒ ์ ๊ธฐ์ ์ธ ํ๊ธ ์์ต์ ์ ๊ณตํ์ง๋ง ๊ทธ๋งํผ ์ฃผ๊ฐ ์์น์ ์ ์ฌ๋ ฅ์ ์๋์ ์ผ๋ก ๋ฎ์ ์ ์์ต๋๋ค. 2026๋ ํ์ฌ, ๊ฐ์ฅ ์ฃผ๋ชฉ๋ฐ๋ ๋ฐฐ๋น์ฃผ๋ ๊ธ์ตํ์ฌ, ์๋์ง ๊ธฐ์ , ๊ทธ๋ฆฌ๊ณ ๋ํ ์๋น์ฌ ํ์ฌ ๋ฑ ์ง์์ ์ผ๋ก ๋์ ์์ต์ ์ฐฝ์ถํ ์ ์๋ ๊ธฐ์ ๋ค์ ๋๋ค. ์ด๋ฐ ๊ธฐ์ ๋ค์ ์์ ์ ์ธ ํ๊ธํ๋ฆ์ ์ ์งํ๋ฉด์๋ ๋ฐฐ๋น๊ธ์ ๊พธ์คํ ์ง๊ธํ ์ ์๋ ๋ฅ๋ ฅ์ ๊ฐ์ถ๊ณ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๋ฐฐ๋น์ฃผ์ ํฌ์ํ๊ธฐ ์ ์์๋์ด์ผ ํ ์ค์ํ ์ ์ ๋ฐฐ๋น ์์ฒด๋ง์ด ์๋๋ผ ๊ธฐ์ ์ ์ฌ๋ฌด ์ํ์ ์ฃผ๊ฐ ํ๋ฆ๋ ํจ๊ป ๊ณ ๋ คํด์ผ ํ๋ค๋ ๊ฒ์ ๋๋ค.
\n\n\n \n\n
๋ค์ด๋ฒ ์ธํ๋ฃจ์ธ์ [๋ค์ด๋ฒ ์ธํ๋ฃจ์ธ์] ๊ณ ๋ฐฐ๋น์ฃผ TSLY ETF ๋ฐฐ๋น๊ธ ์ฌ๊ธฐ์ธ ์ด์ \n๋ฐฐ๋น์ฃผ์ ์ฅ์ : ์์ ์ฑ ์์ ์์ต์ฑ
\n๋ฐฐ๋น์ฃผ ํฌ์์ ๊ฐ์ฅ ํฐ ์ฅ์ ์ค ํ๋๋ ์์ ์ฑ์ ๋๋ค. ๋ฐฐ๋น๊ธ์ ์์ฅ ์ํฉ๊ณผ ๊ด๊ณ์์ด ์ผ์ ํ๊ฒ ์ง๊ธ๋๊ธฐ ๋๋ฌธ์ ์ฃผ์์์ฅ์ ๋ณ๋์ฑ์ ๋ ์ํฅ์ ๋ฐ์ต๋๋ค. ํนํ ์ํด๋ฅผ ์ค๋น ์ค์ธ ํฌ์์๋ค์๊ฒ๋ ๋งค๋ฌ ๋๋ ๋ถ๊ธฐ๋ง๋ค ๋ค์ด์ค๋ ํ๊ธ ํ๋ฆ์ด ํฐ ๋์์ด ๋ฉ๋๋ค. ๋, ์ผ๊ฐ์์๋ ๋ฐฐ๋น์ฃผ๋ ์ฅ๊ธฐ์ ์ธ ๊ด์ ์์ ์ฃผ๊ฐ ์์น๊ณผ ๋๋ถ์ด ์ด ์์ต๋ฅ ์ด ๋์ ๊ฒฝํฅ์ด ์์ต๋๋ค. ๋ง์ ํฌ์์๋ค์ด ํ๊ธฐ๋ฅผ ํตํด ๋ฐฐ๋น๊ธ ์์ต์ ํตํด ์ฅ๊ธฐ์ ์ธ ๊ธ์ต ๋ชฉํ๋ฅผ ๋ฌ์ฑํ๋ค๊ณ ๋ณด๊ณ ๋์์ต๋๋ค. ์ด๋ ๋ฐฐ๋น์ฃผ๊ฐ ํฌํธํด๋ฆฌ์ค์ ์์ ์ ์์ต์ ์ ๊ณตํ๋ ์ค์ํ ์ญํ ์ ํ๋ค๋ ์ ์ ์ ๋ณด์ฌ์ค๋๋ค.
\n๋ฐฐ๋น์ฃผ ํฌ์์ ์จ์ด ์๋ ์ํ
\nํ์ง๋ง ๋ฐฐ๋น์ฃผ๊ฐ ํญ์ ์์ ํ ํฌ์๋ผ๋ ์๊ฐ์ ์ํํ ์ ์์ต๋๋ค. ์ฒซ์งธ๋ก, ๋ฐฐ๋น๊ธ ์ง๊ธ์ ๊ธฐ์ ์ ์์ต ์ํฉ์ ๋ฐ๋ผ ์ธ์ ๋ ๋ณ๊ฒฝ๋ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ๊ฒฝ์ ๋ถํฉ์ด๋ ๊ธฐ์ ์ ์ค์ ์ ํ ๋ฑ์ผ๋ก ์ธํด ๋ฐฐ๋น๊ธ์ด ์ญ๊ฐ๋๊ฑฐ๋ ์ทจ์๋ ์ ์์ต๋๋ค. ๋ํ, ์ธ๊ธ ์ธก๋ฉด์์๋ ์ฃผ์๊ฐ ํ์ํฉ๋๋ค. ๋ฐฐ๋น์๋์ธ๋ 2026๋ ๊ธฐ์ค ์๋์ ๋ฐ๋ผ ์ต๊ณ 25%๊น์ง ๋ถ๊ณผ๋๋ฉฐ, ์ด๋ ํฌ์์๋ค์๊ฒ ์์์น ๋ชปํ ๋ถ๋ด์ด ๋ ์ ์์ต๋๋ค. ๋ง์ง๋ง์ผ๋ก, ๋ฐฐ๋น์ฃผ ํฌ์๋ ์ฅ๊ธฐ์ ์ธ ๊ด์ ์์ ์ ๊ทผํด์ผ ํ๋ค๋ ์ ์์ ๋จ๊ธฐ์ ์์ต์ ๊ธฐ๋ํ๋ ํฌ์์๋ค์๊ฒ๋ ์ ํฉํ์ง ์์ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ ์ด๋ฌํ ์ ๋ค์ ์ถฉ๋ถํ ๊ณ ๋ คํ ํ ํฌ์ ์ฌ๋ถ๋ฅผ ๊ฒฐ์ ํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
\n\n\n \n\n
'๊ณ ์์ต ๋ณด์ฅ' ์ต๋ ๋ฆฌ๋ฉ ํฌ์๋ฐฉ ์ฌ๊ธฐโฅ๊ฒฝ์ฐฐ ์์ฌ \nํ์ฌ ๋ฐฐ๋น์ฃผ ์์ฅ์ ๊ฐ๊ฒฉ ๋ํฅ
\n2026๋ 7์ ํ์ฌ, ์ ์ธ๊ณ์ ์ธ ๊ธ๋ฆฌ ์ธ์์ผ๋ก ์ธํด ๊ณ ๋ฐฐ๋น์ฃผ์ ์ธ๊ธฐ๊ฐ ๋์์ง๊ณ ์์ต๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ๋ฐฐ๋น ์์ต๋ฅ ์ด ๋์ ์ฃผ์๋ค์ ์์ฅ ๊ธ๋ฆฌ ๋ณ๋์ ๋ฏผ๊ฐํ๊ฒ ๋ฐ์ํ๋ ๊ฒฝํฅ์ด ์์ต๋๋ค. ์ด๋ฐ ์ํฉ์์ ๋ฐฐ๋น์ฃผ์ ํฌ์ํ ๋๋ ๊ธฐ์ ์ ๋ฐฐ๋น ์์ต๋ฅ ๋ฟ๋ง ์๋๋ผ ์ฃผ๊ฐ์ ๋ณ๋์ฑ๋ ํจ๊ป ๊ณ ๋ คํด์ผ ํฉ๋๋ค. ๋ฐฐ๋น ์์ต๋ฅ ์ด ๋๋ค๊ณ ๋ฐ๋์ ์ข์ ํฌ์์ฒ๋ ์๋๋ฉฐ, ๊ธฐ์ ์ ์ฌ๋ฌด ์ํ์ ์์ฅ ์ ๋ง์ ์ข ํฉ์ ์ผ๋ก ํ๋จํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. ์๋ฅผ ๋ค์ด, ์ต๊ทผ ๋ช ๋ ๊ฐ ๋ฐฐ๋น๋ฅ ์ด ์ง์์ ์ผ๋ก ๋์ ๊ธฐ์ ๋ค์ด๋ผ๋, ์ค์ง์ ์ธ ์ฑ์ฅ ์ ์ฌ๋ ฅ์ด๋ ๊ธ์ต ๊ฑด์ ์ฑ์์ ๋ฌธ์ ๊ฐ ์๋ ๊ฒฝ์ฐ๋ ์ข ์ข ๋ฐ๊ฒฌ๋ฉ๋๋ค.
\n๋ฐฐ๋น์ฃผ๋ฅผ ์ฒ์ ์์ํ๋ ํฌ์์๋ฅผ ์ํ ์กฐ์ธ
\n๋ฐฐ๋น์ฃผ์ ์ฒ์ ํฌ์ํ๋ ๊ฒฝ์ฐ, ๋ช ๊ฐ์ง ๊ธฐ๋ณธ ์ฌํญ์ ์ฃผ์๋ฅผ ๊ธฐ์ธ์ด๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. ์ฒซ์งธ, ๋ฐฐ๋น์ฃผ๋ฅผ ํตํด ์ด๋ค ๋ชฉํ๋ฅผ ๋ฌ์ฑํ๊ณ ์ถ์์ง ๋ช ํํ ํ๋ ๊ฒ์ ๋๋ค. ๋จ๊ธฐ์ ์์ต๋ณด๋ค๋ ์ฅ๊ธฐ์ ์ธ ์์ ์ ์์ต์ ๊ธฐ๋ํ๋ ํฌ์์๋ค์๊ฒ ๋ ์ ํฉํฉ๋๋ค. ๋ ๋ฒ์งธ๋ก, ๊ฐ๋ฅํ๋ค๋ฉด ๋ค์ํ ์ฐ์ ๊ตฐ์ ๋ถ์ฐ ํฌ์๋ฅผ ๊ณ ๋ คํ์ธ์. ๋ฐฐ๋น์ฃผ๋ ํน์ ์ ์ข ์ ๊ตญํ๋์ง ์๊ณ ๋ค์ํ ๋ถ์ผ์์ ๋ฐ๊ฒฌ๋ ์ ์์ต๋๋ค. ๋ง์ง๋ง์ผ๋ก, ๋งค์ ์ ๋ฐ๋์ ํด๋น ๊ธฐ์ ์ ์ฌ๋ฌด ์ ํ์ ์ต๊ทผ ์ค์ ์ ๋ถ์ํ์ฌ ๋ฐฐ๋น๊ธ์ด ์ง์์ ์ผ๋ก ์ง๊ธ๋ ์ ์๋์ง๋ฅผ ํ์ธํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.
\n์ด์ฒ๋ผ ๋ฐฐ๋น์ฃผ๋ ์ ์ ํ ์ ๋ณด๋ฅผ ๋ฐํ์ผ๋ก ์ถฉ๋ถํ ๊ณต๋ถํ๊ณ ๊ณํ์ ์ผ๋ก ์ ๊ทผํ ๋ ์์ ์ ์ธ ์์ต์ ์ ๊ณตํ ์ ์์ต๋๋ค. ์ด๋ฐ ์ ๋ค์ ์ถฉ๋ถํ ๊ณ ๋ คํ ๋ค์, ์์ ์๊ฒ ๋ง๋ ํฌ์ ์ ๋ต์ ์ธ์ฐ๋ ๊ฒ์ด ์ข์ต๋๋ค.
", + "labels": [ + "๋ฐฐ๋น์ฃผ", + "์ฃผ์ ํฌ์", + "์ฌ๋ฌด ๊ฑด์ ์ฑ", + "๋ฐฐ๋น๊ธ", + "์์ ์ ์์ต", + "์ธ๊ธ", + "๊ธ๋ฆฌ ์ธ์", + "์ฌ๋ฌด ๋ถ์", + "์ฐ์ ๊ตฐ ๋ถ์ฐ", + "ํฌ์ ์ ๋ต" + ], + "meta_description": "๋ฐฐ๋น์ฃผ ํฌ์๋ฅผ ์ฒ์ ์์ํ๊ธฐ ์ , ๋ฐฐ๋น๊ธ ์ธ์ ๊ธฐ์ ์ ์ฌ๋ฌด ์ํ์ ์ธ๊ธ ๋ฑ์ ๊ผญ ๊ณ ๋ คํด์ผ ํฉ๋๋ค. 2026๋ ๋ฐฐ๋น์ฃผ ์์ฅ์ ๋ํฅ๊ณผ ํฌ์ ์กฐ์ธ์ ํ์ธํด๋ณด์ธ์.", + "faq": [ + { + "q": "๋ฐฐ๋น์ฃผ๋ ์ด๋ป๊ฒ ๊ณ ๋ฅด๋์?", + "a": "๋ฐฐ๋น์ฃผ๋ฅผ ๊ณ ๋ฅผ ๋๋ ๋ฐฐ๋น ์์ต๋ฅ ๋ฟ๋ง ์๋๋ผ ๊ธฐ์ ์ ์ฌ๋ฌด ์ํ์ ์์ฅ์์์ ์์น๋ ๊ณ ๋ คํด์ผ ํฉ๋๋ค." + }, + { + "q": "๋ฐฐ๋น์๋์ธ๋ ์ผ๋ง์ธ๊ฐ์?", + "a": "2026๋ ๊ธฐ์ค ๋ฐฐ๋น์๋์ธ๋ ์๋์ ๋ฐ๋ผ ์ต๋ 25%๊น์ง ๋ถ๊ณผ๋ ์ ์์ต๋๋ค." + } + ], + "sources": [ + { + "title": "์ฌ๋ฌด๋ถ์ ํ๋ซํผ", + "url": "https://financialplatform.com" + }, + { + "title": "์ฃผ์ ํฌ์ ๊ฐ์ด๋", + "url": "https://stockinvestmentguide.com" + } + ], + "keyword": "๋ฐฐ๋น์ฃผ ์ฒ์ ์ฌ๊ธฐ ์ ๋ด๊ฐ ๋ชฐ๋๋ ๊ฒ", + "article_type": "investment", + "risk_level": "high", + "tags": [ + "๋ฐฐ๋น์ฃผ", + "์ฃผ์ ํฌ์", + "์ฌ๋ฌด ๊ฑด์ ์ฑ", + "๋ฐฐ๋น๊ธ", + "์์ ์ ์์ต", + "์ธ๊ธ", + "๊ธ๋ฆฌ ์ธ์", + "์ฌ๋ฌด ๋ถ์", + "์ฐ์ ๊ตฐ ๋ถ์ฐ", + "ํฌ์ ์ ๋ต" + ], + "word_count": 1595, + "content_preview": "์ต๊ทผ ์ฃผ์ ํฌ์๊ฐ ๋์คํ๋๋ฉด์ ๋ฐฐ๋น์ฃผ์ ๋ํ ๊ด์ฌ๋ ์์ฐ์ค๋ฝ๊ฒ ๋์์ง๊ณ ์์ต๋๋ค. ํนํ ์ํด์๊ธ ๋ง๋ จ์ด๋ ์์ ์ ์ธ ์์ต์ ๋ชฉํ๋ก ํ๋ ํฌ์์๋ค ์ฌ์ด์์ ๋ฐฐ๋น์ฃผ๋ ๋งค๋ ฅ์ ์ธ ์ ํ์ง๋ก ๋ถ๊ฐ๋ฉ๋๋ค. ๊ทธ๋ฌ๋ ๋ง์ ๋ฐฐ๋น์ฃผ์ ํฌ์๋ฅผ ๊ณ ๋ คํ ๋, ๊ทธ ๋งค๋ ฅ์ ์ธ ๋ฐฐ๋น๊ธ ์ธ์ ๋ค์ํ ์ธก๋ฉด์ ๋ฐ์ ธ๋ณด์์ผ ํ๋ค๋ ์ ์์ ํผ๋์ ๊ฒช๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. ์ด๋ฒ ๊ธ์์๋ ๋ฐฐ๋น์ฃผ ํฌ์๋ฅผ ์...", + "evidence": { + "used": false, + "facts": 0, + "verified": 0 + }, + "experience_used": false, + "fact_check": { + "checked": true, + "verdict": "warn", + "issues_found": 2, + "fixes_applied": 1, + "issues": [ + { + "problem": "๊ตฌ์ฒด์ ์์น๋ ์ถ์ฒ๊ฐ ์๋ ์ฃผ์ฅ", + "fixed": true + }, + { + "problem": "๊ณผ์ฅ๋ ๋จ์ ", + "fixed": false + } + ] + }, + "images_inserted": 3, + "status": "pending", + "_post_id": "2026-07-20_๋ฐฐ๋น์ฃผ์ฒ์์ฌ๊ธฐ์ ๋ด๊ฐ๋ชฐ๋๋๊ฒ_c0e8a355" +} \ No newline at end of file diff --git "a/blog-automation/logs/post_drafts/2026-07-20_\354\233\220\353\213\254\353\237\254\355\231\230\354\234\2501500\354\233\220\353\214\200\355\231\230\355\205\214\355\201\254\353\214\200\354\235\221\353\262\225_c7150620.json" "b/blog-automation/logs/post_drafts/2026-07-20_\354\233\220\353\213\254\353\237\254\355\231\230\354\234\2501500\354\233\220\353\214\200\355\231\230\355\205\214\355\201\254\353\214\200\354\235\221\353\262\225_c7150620.json" new file mode 100644 index 0000000000000..09acd436dbb98 --- /dev/null +++ "b/blog-automation/logs/post_drafts/2026-07-20_\354\233\220\353\213\254\353\237\254\355\231\230\354\234\2501500\354\233\220\353\214\200\355\231\230\355\205\214\355\201\254\353\214\200\354\235\221\353\262\225_c7150620.json" @@ -0,0 +1,161 @@ +{ + "title": "์๋ฌ๋ฌ ํ์จ 1500์๋ ์๋, ํํ ํฌ ๋์๋ฒ ์ค์ ์ ๊ฒ", + "content": "์ง๋๋ฌ 15์ผ, ์ํ ์ฑ์ ์ผฐ๋ค๊ฐ ํ์จ ์ฐฝ์ ๋ณด๊ณ ์ ์ ์์ด ๋ฉ์ท์ต๋๋ค. ์๋ฌ๋ฌ ํ์จ์ด 1500์๋์ ๋ค์ ์ง์ ํ๋ค๋ ๋ด์ค๊ฐ ๋์จ ๋ค๋ถํฐ, ์ ๊ฐ ์์ฃผ ๋ค์ฌ๋ค๋ณด๋ ์ฌํ ํฌ ์ปค๋ฎค๋ํฐ์๋ ํํ ํฌ ๊ด๋ จ ์ง๋ฌธ์ด ํ๋ฃจ์๋ ์ญ์ฌ ๊ฑด์ฉ ์ฌ๋ผ์์ต๋๋ค. ํ์ ์ ๋ฏธ๋ค์ผ ํ ์ง, ์ง๊ธ์ด๋ผ๋ ๋ฌ๋ฌ๋ฅผ ์ฌ๋ฌ์ผ ํ ์ง ํ๋จ์ด ์์ง ์๋๋ค๋ ๊ธ์ด ๋๋ถ๋ถ์ด์์ต๋๋ค. ์ ์ญ์ 3๋ ์ ์ฒซ ๋ฏธ๊ตญ ์ถ์ฅ์ ์๋๊ณ ํ์จ ๋๋ฌธ์ ๋ฉฐ์น ์ ๊ณ ๋ฏผํ๋ ๊ธฐ์ต์ด ์์ด์, ์ด๋ฒ ๊ธฐํ์ ์๋ฌ๋ฌ ํ์จ 1500์๋ ๊ตญ๋ฉด์์ ์ค์ ๋ก ์ ๊ฒํด๋ณผ ๋งํ ํํ ํฌ ๋์๋ฒ์ ์๋ฃ ์กฐ์ฌ์ ์ ๊ฒฝํ, ๊ทธ๋ฆฌ๊ณ ์ฃผ๋ณ ์ด์ฉ์ ํ๊ธฐ๋ฅผ ์ข ํฉํด ์ ๋ฆฌํด๋ดค์ต๋๋ค.
\n\n \n\n
์ฐ ์ต์ ์ฐ์ ๋ฌ๋ฌ/์ ํ์จ์ ์ธ๊ณ ์์ ํํ ํฌ ์ํ๋ค \n๐ก ํต์ฌ ํฌ์ธํธ: ์๋ฌ๋ฌ ํ์จ 1500์๋์์๋ ํ ๋ฒ์ ํ์ ํ๊ธฐ๋ณด๋ค ๋ชฉ์ ๊ณผ ์์ ์ ๋๋ ๋ถํ ๋ก ์ ๊ทผํ๋ ๋ฐฉ์์ด ์๋ฃ์ ๋ ์์ ์ ์ด๋ผ๋ ์๊ฒฌ์ด ๋ง์ต๋๋ค. ์ ์ญ์ ์ง๋๋ฌ 30๋ง ์์ฉ ์ธ ๋ฒ์ ๋๋ ํ์ ํ ๋ค์์ผ ๋ง์์ด ํธํด์ก์ต๋๋ค.\n\nํ์จ 1500์๋๊ฐ ๋ฏ์ค์ง ์์ ์ด์
\n์๋ฌ๋ฌ ํ์จ์ด 1500์ ์ ์ ์ค๊ฐ ๋๋ง๋ค ์ฌ๋๋ค์ ๋ฐ์์ ๋ ๊ฐ๋๋ก ๋๋ฉ๋๋ค. ํ์ชฝ์ ํด์ธ์ฌํ์ด๋ ์ ํ ์๊ธ ๋๋ฌธ์ ๋ถ๋ด์ ๋๋ผ๊ณ , ๋ค๋ฅธ ํ์ชฝ์ ์คํ๋ ค ๋ฌ๋ฌ ์์ฐ์ ๋๋ฆด ๊ธฐํ๋ก ๋ด ๋๋ค. ์ ์ฃผ๋ณ๋ง ๋ด๋ ์ ํ์ ์๋ ๋ฅผ ๋ ์ง์ธ์ ์ก๊ธ ์์ ์ ๋ ๋ฌ์งธ ๋ฏธ๋ฃจ๊ณ ์๊ณ , ๋ฐ๋๋ก ์ง์ฅ ๋๋ฃ ํ ๋ช ์ ์ด๋ฒ ๋ฌ ์ด ์ฌ์ณ๋ 200๋ง ์์ ๋ฌ๋ฌ๋ก ๋ฐ๊ฟ๋์ต๋๋ค. ์ด ์จ๋์ฐจ๊ฐ ํํ ํฌ๋ฅผ ์ด๋ ต๊ฒ ๋ง๋๋ ์ง์ ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
\nํ์จ์ ๋จ์ํ ์ค๋ฅด๋ด๋ฆฌ๋ ์ซ์๊ฐ ์๋๋ผ ๋ฏธ๊ตญ ๊ธฐ์ค๊ธ๋ฆฌ, ๊ตญ๋ด ์์ถ์ ์ํฉ, ๊ธ๋ก๋ฒ ์์ ์์ฐ ์ ํธ๋ ๊ฐ์ ์ฌ๋ฌ ๋ณ์๊ฐ ๊ฒน์ณ ๋ง๋ค์ด์ง๋ ๊ฒฐ๊ณผ์ ๋๋ค. ์ ํํ ๋ฐฉํฅ์ฑ์ ํ๊ตญ์ํ์ด๋ ๊ธฐํ์ฌ์ ๋ถ์ ๊ณต์ ๋ฐํ๋ฅผ ํตํด ํ์ธํ๋ ๊ฒ์ด ๋น๊ต์ ์ ๋ขฐํ ์ ์๋ ๋ฐฉ๋ฒ์ผ๋ก ๊ผฝํ๋๋ค.
\n๋ฌธ์ ๋ ํ์จ์ด 1500์๋๋ผ๋ ์ซ์ ์์ฒด๋ณด๋ค, ๊ทธ ์ํ๊ฐ ์ผ๋ง๋ ์ง์๋ ์ง ์๋ฌด๋ ๋จ์ธํ ์ ์๋ค๋ ์ ์ ๋๋ค. ์ค์ ๋ก 2022๋ ๋ง์๋ 1400์๋๊ฐ ์ค๋๊ฐ ๊ฑฐ๋ผ๋ ์ ๋ง์ด ๋ช ๋ฌ ๋ง์ ๋ค์งํ ์ ์ด ์์์ต๋๋ค. ๊ทธ๋์ ํํ ํฌ๋ ์์ธก๋ณด๋ค ๋์ ์ฒด๊ณ๋ฅผ ๊ฐ์ถ๋ ์ชฝ์ ๊ฐ๊น๋ค๊ณ ๋ณด๋ ์๊ฐ์ด ๋ง์ต๋๋ค.
\n\n\n \n\n\n
๋ค์ด๋ฒ ์ธํ๋ฃจ์ธ์ [๋ค์ด๋ฒ ์ธํ๋ฃจ์ธ์] ์ํ ๋ฌ๋ฌ ํ์จ ์์น ํํ ํฌ ํฌ์ ๋ฐฉ๋ฒ \nํํ ํฌ ํต์ฌ ๊ฐ๋ ์ฝ๊ฒ ์ง์ด๋ณด๊ธฐ
\nํํ ํฌ๋ผ๋ ๋จ์ด๋ ์ด๋ ต๊ฒ ๋ค๋ฆฌ์ง๋ง ์๋ฆฌ๋ ๋จ์ํฉ๋๋ค. ํ์จ์ด ๋ฎ์ ๋ ์ธํ๋ฅผ ์ฌ๋๊ณ , ๋์ ๋ ํ์ํ ๋งํผ ์ฐ๊ฑฐ๋ ํ์ ์ฐจ์ต์ด๋ ์ ์ฝ ํจ๊ณผ๋ฅผ ๋ ธ๋ฆฌ๋ ๋ฐฉ์์ ๋๋ค. ์ ๊ฐ ์ฒ์ ์ด ๊ฐ๋ ์ ๋ฐฐ์ด ๊ฑด 4๋ ์ ํ์ฌ ์ ๋ฐฐ๊ฐ ์๋ ค์ค ์ธํํต์ฅ ์ด์ผ๊ธฐ ๋๋ถ์ด์์ต๋๋ค.
\n๋ง์ด ํท๊ฐ๋ ค ํ๋ ๋ถ๋ถ์ด ํ์ ๊ณผ ์ธํ์๊ธ, ๋ฌ๋ฌ ETF์ ์ฐจ์ด์ ๋๋ค. ํ์ ์ ์ค๋ฌผ ํ๊ธ ๊ตํ, ์ธํ์๊ธ์ ์ํ ๊ณ์ข์ ์ธํ๋ฅผ ๊ทธ๋๋ก ์์นํ๋ ๋ฐฉ์, ๋ฌ๋ฌ ETF๋ ์ฆ๊ถ ๊ณ์ข๋ฅผ ํตํด ํ์จ์ ์ฐ๋๋ ์ํ์ ๋งค๋งคํ๋ ๋ฐฉ์์ ๋๋ค. ์ ๋ ์ด ์ธ ๊ฐ์ง๋ฅผ ๋ชฉ์ ๋ณ๋ก ๋๋ ์ฐ๋๋ฐ, ์ฌํ ๊ฒฝ๋น๋ ํ์ฐฐ๋ก, ์ฌ์ณ๋์ ์ธํ์๊ธ์ผ๋ก ๋ฃ์ด๋๊ณ ์์ต๋๋ค.
\n\n
๋ฐฉ๋ฒ ํน์ง ์ ์์ ํ์ฐฐ ํ์ ์ฆ์ ์ฌ์ฉ ๊ฐ๋ฅ ์คํ๋ ๋ ๋น์ฉ ๋ฐ์ ์ธํ์๊ธ ์ด์ ์์ก ๋ฐ์ ํ์ ์์๋ฃ ๋ณ๋ ๋ฌ๋ฌ ETF ์์ก ๋ถํ ๋งค๋งค ์ฉ์ด ์ธ๊ธยท์์๋ฃ ๊ตฌ์กฐ ํ์ธ ํ์ ์ธ ๊ฐ์ง ๋ฐฉ๋ฒ ๋ชจ๋ ์๋ฌ๋ฌ ํ์จ 1500์๋๋ผ๋ ํน์ ๊ตฌ๊ฐ์ ๋ฐ์ํ๋ ๋ฐฉ์์ด ๋ค๋ฅด๊ธฐ ๋๋ฌธ์, ๋ชฉ์ ์ ๋ง์ถฐ ๊ณจ๋ผ์ผ ํ๋ค๋ ๊ฒ์ด ๊ณตํต๋ ์กฐ์ธ์ ๋๋ค.
\n\n์ง๊ธ ๋ฐ๋ก ์ ๊ฒํด์ผ ํ ์ฒดํฌ๋ฆฌ์คํธ
\nํํ ํฌ๋ฅผ ์์ํ๊ธฐ ์ ์ ์ค์ค๋ก ํ์ธํด์ผ ํ ํญ๋ชฉ๋ค์ ์ ๋ฆฌํ์ต๋๋ค. ์ ๋ ์ด ์ฒดํฌ๋ฆฌ์คํธ๋ฅผ ๋ง๋ค๊ธฐ ์ ๊น์ง ๋งค๋ฒ ๊ฐ์ผ๋ก ํ์ ์์ ์ ์ ํ๋ค๊ฐ ์ํด๋ฅผ ๋ณธ ๊ฒฝํ์ด ์์ต๋๋ค.
\n\n
\n- ํ์ ๋ชฉ์ ์ด ๋ช ํํ๊ฐ โ ์ฌํ์ฉ์ธ์ง ํฌ์์ฉ์ธ์ง์ ๋ฐ๋ผ ์ ๋ต์ด ์์ ํ ๋ฌ๋ผ์ง๋๋ค.
\n- ํ์ ์์ ์ด ์ธ์ ์ธ๊ฐ โ ํ ๋ฌ ๋ค ์ถ๊ตญ์ด๋ผ๋ฉด ํ์จ ๋ณ๋ ์ฌ์ ๊ฐ ํฌ์ง ์์ต๋๋ค.
\n- ์ํ๋ณ ์ฐ๋์จ ์ฐจ์ด๋ฅผ ๋ดค๋๊ฐ โ ๊ฐ์ ๋ ์๋ ์ํ๋ง๋ค ํ์ ์ฐ๋์จ์ด ๋ค๋ฅด๊ฒ ์ ์ฉ๋ฉ๋๋ค.
\n์ ๋ ์ง๋์ฃผ A์ํ๊ณผ B์ํ ์ฑ์ ๋๋ํ ์ผ๋๊ณ ๋น๊ตํ๋๋ฐ, 100๋ง ์ ํ์ ๊ธฐ์ค์ผ๋ก ์ฐ๋์จ ์ฐจ์ด๋ง์ผ๋ก 8์ฒ ์ ๊ฐ๊น์ด ๋ฒ์ด์ก์ต๋๋ค. ์ด๋ฐ ์์ ์ฐจ์ด๊ฐ ์์ด๋ฉด ๋ฌด์ํ ์ ์๋ ๊ธ์ก์ด ๋ฉ๋๋ค.
\n\n
\n- ์์๋ฃ ๊ตฌ์กฐ๋ฅผ ํ์ธํ๋๊ฐ โ ์คํ๋ ๋, ์ก๊ธ ์์๋ฃ, ์ธ์ถ ์์๋ฃ๋ฅผ ๋ฐ๋ก ๋ด์ผ ํฉ๋๋ค.
\n- ๋ถํ ๋งค์ ๊ณํ์ด ์๋๊ฐ โ ํ ๋ฒ์ ๋ชฐ์์ ํ์ ํ๋ฉด ํ์ด๋ฐ ๋ฆฌ์คํฌ๊ฐ ์ปค์ง๋๋ค.
\n- ๋น์๊ธ๊ณผ ํฌ์๊ธ์ ๋ถ๋ฆฌํ๋๊ฐ โ ์ํ๋น๊น์ง ํํ ํฌ์ ๋ฃ๋ ๊ฒฝ์ฐ๊ฐ ์์ธ๋ก ๋ง์ต๋๋ค.
\n- ๊ณต์ ํ์จ ๊ณ ์๋ฅผ ํ์ธํ๋ ์ต๊ด์ด ์๋๊ฐ โ ์ํ ์ฑ ํ์จ์ ์ํ๋ง๋ค ๋ฏธ์ธํ๊ฒ ๋ค๋ฆ ๋๋ค.
\n์ด ์ฒดํฌ๋ฆฌ์คํธ๋ ์๋ฌ๋ฌ ํ์จ 1500์๋๋ฟ ์๋๋ผ ์ด๋ ๊ตฌ๊ฐ์์๋ ๋ฐ๋ณตํด์ ์ ๊ฒํ ๋งํ ๊ธฐ๋ณธ ํญ๋ชฉ์ด๋ผ๊ณ ๋ณผ ์ ์์ต๋๋ค.
\n\n\n \n\n\n
ํ์จ ๊ตฌ๊ฐ๋ณ ์ฒดํฌ๋ฆฌ์คํธ๋ ๋ชฉ์ ์ ๋ฐ๋ผ ์ฐ์ ์์๊ฐ ๋ฌ๋ผ์ง๋๋ค \n๋ชฉ์ ๋ณ ํํ ํฌ ์๋๋ฆฌ์ค ๋น๊ต
\nํํ ํฌ๋ ๋ชฉ์ ์ ๋ฐ๋ผ ์ ๊ทผ ๋ฐฉ์์ด ์์ ํ ๋ฌ๋ผ์ง๋๋ค. ์ ์ ์ ๋์์ ์ฌ๋ก๋ฅผ ๋น๊ตํ๋ฉด ์ฐจ์ด๊ฐ ๋๋ ทํ๊ฒ ๋ณด์ ๋๋ค.
\n์ ๋ 6๊ฐ์ ๋ค ์ ๋ฝ ์ฌํ์ ๊ณํํ๊ณ ์์ด์, ๋งค๋ฌ 15๋ง ์์ฉ ๋๋ ํ์ ํ๋ ๋ฐฉ์์ ํํ์ต๋๋ค. ํ์จ์ด ์ค๋ฅด๋ ๋ด๋ฆฌ๋ ํ๊ท ๋จ๊ฐ๋ฅผ ๋ง์ถ๋ ๊ฒ ๋ชฉํ์์ต๋๋ค. ๋ฐ๋ฉด ์ ๋์์ ๋น์ฅ ๋ค์ ์ฃผ์ ๋ฏธ๊ตญ ์ถ์ฅ์ด ์กํ ์์ด์ ๋ถํ ํ์ ์์ด ํ ๋ฒ์ ํ์ํ ๊ธ์ก๋ง ๋ฐ๊ฟจ์ต๋๋ค.
\n์ด ๋ ์ฌ๋ก๊ฐ ๋ณด์ฌ์ฃผ๋ฏ, ์๊ฐ ์ฌ์ ๊ฐ ์์ผ๋ฉด ๋ถํ ์ ๊ทผ์ด ์ ๋ฆฌํ๊ณ ์์ ์ด ๊ธํ๋ฉด ์ฐ๋์จ ๋์ ๊ณณ์ ๋น ๋ฅด๊ฒ ์ฐพ๋ ๊ฒ ํ์ค์ ์ ๋๋ค. ํฌ์ ๋ชฉ์ ์ด๋ผ๋ฉด ์ฌ๊ธฐ์ ์์ ๊ธฐ์ค๊น์ง ๋ฏธ๋ฆฌ ์ ํด๋๋ ๊ฒ ์ข๋ค๋ ์กฐ์ธ๋ ์์ฃผ ๋ดค์ต๋๋ค.
\n\n๋ถํ ๋งค์ยท๋งค๋ ์ค์ ์ ์ฉ
\n๋ถํ ์ ๊ทผ์ด ์ข๋ค๋ ๊ฑด ์์๋ ๋ง์ ์ค์ฒํ๊ธฐ๋ ์ฝ์ง ์์ต๋๋ค. ์ ๋ ๋งค๋ฌ ๊ธ์ฌ์ผ ๋ค์ ๋ , ์ ํด์ง ๊ธ์ก๋ง ๊ธฐ๊ณ์ ์ผ๋ก ํ์ ํ๋ ๋ฐฉ์์ 6๊ฐ์์งธ ์ ์งํ๊ณ ์์ต๋๋ค.
\n์ฒ์ ๋ ๋ฌ์ ํ์จ์ด ์ฌ๋ผ์ ์ํด ๋ณธ ๋๋์ด ๋ค์์ง๋ง, ๋ ๋ฌ์งธ๋ถํฐ๋ ํ๊ท ๋จ๊ฐ๊ฐ ์์ ๋๋ฉด์ ๋ง์์ด ํจ์ฌ ํธํด์ก์ต๋๋ค. ๊ฐ์ ์ ์ผ๋ก ํ ๋ฒ์ ํฌ๊ฒ ๋ฒ ํ ํ์ง ์๋ ๊ฒ๋ง์ผ๋ก๋ ์คํธ๋ ์ค๊ฐ ์ค์๋ค๋ ๊ฒ ์ ์์งํ ํ๊ธฐ์ ๋๋ค.
\n๋งค๋ ์์ ๋ ๋ง์ฐฌ๊ฐ์ง์ ๋๋ค. ๋ชฉํ ํ์จ์ ๋ฏธ๋ฆฌ ์ ํด๋๊ณ , ๋๋ฌํ๋ฉด ์ ๋ฐ๋ง ํ๊ณ ๋๋จธ์ง๋ ๋ค์ ๊ธฐ๋ค๋ฆฌ๋ ์์ผ๋ก ๋๋ ๋์ํ๋ ๋ฐฉ์์ด ์ปค๋ฎค๋ํฐ์์๋ ๋ง์ด ์ถ์ฒ๋ฉ๋๋ค.
\n\n์์ฃผ ํ๋ ์ค์์ ๋์ ๋ฐฉ๋ฒ
\n๊ฐ์ฅ ํํ ์ค์๋ ํ์จ์ด ๋จ์ด์ง ๋๊น์ง ๋ฌด์์ ๊ธฐ๋ค๋ฆฌ๋ค๊ฐ ์ ์ ํ์ํ ์์ ์ ๋์น๋ ๊ฒฝ์ฐ์ ๋๋ค. ์ ๋ ์๋ ์ฌ๋ฆ ํด๊ฐ ๊ฒฝ๋น๋ฅผ ์๋ผ๋ ค๊ณ ํ์ ์ ๋ฏธ๋ฃจ๋ค๊ฐ, ์ถ๊ตญ ์ฌํ ์ ์ ์คํ๋ ค ๋ ๋์ ํ์จ๋ก ๊ธํ๊ฒ ๋ฐ๊พผ ์ ์ด ์์ต๋๋ค. ๊ทธ๋ ์ํด ๋ณธ ๊ธ์ก์ด 3๋ง ์ ์ ๋์๋๋ฐ, ์ง๊ธ ์๊ฐํด๋ ์๊น์ด ๊ฒฝํ์ ๋๋ค.
\n๋ ๋ค๋ฅธ ์ค์๋ ์ฌ๋ฌ ์ํ ์ฑ์ ๋น๊ตํ์ง ์๊ณ ํ์ ์ฐ๋ ์ํ์์๋ง ํ์ ํ๋ ์ต๊ด์ ๋๋ค. ์ฐ๋์จ์ ์ํ๋ง๋ค, ์ฌ์ง์ด ๊ฐ์ ์ํ์ด๋ผ๋ ์ด๋ฒคํธ ์๊ธฐ์ ๋ฐ๋ผ ๋ค๋ฅด๊ฒ ์ ์ฉ๋๊ธฐ ๋๋ฌธ์ ์ต์ ๋์ธ ๊ณณ์ ๋น๊ตํด๋ณด๋ ๊ฒ ์ข์ต๋๋ค. ์ปค๋ฎค๋ํฐ ํ๊ธฐ๋ฅผ ๋ณด๋ฉด ์ด ์ฐจ์ด๋ฅผ ๋ชฐ๋ผ์ ๋งค๋ฒ ์ํด๋ฅผ ๋ณด๋ ์ฌ๋์ด ์๊ฐ๋ณด๋ค ๋ง์์ต๋๋ค.
\n๋ง์ง๋ง์ผ๋ก ํํ ์ค์๋ ์ํ๋น ํต์ฅ๊ณผ ํํ ํฌ์ฉ ์๊ธ์ ์์ด ๊ด๋ฆฌํ๋ ๊ฒฝ์ฐ์ ๋๋ค. ์ ๋ ์ด ๋ถ๋ถ์์ ํ ๋ฒ ํฌ๊ฒ ๋ฐฐ์ ๋๋ฐ, ๊ธ์ ์ด ํ์ํ ์์ ์ ํ์จ์ด ๋ถ๋ฆฌํด์ ์ํด๋ฅผ ๋ณด๊ณ ํ์ ํ ์ ์ด ์์ต๋๋ค. ๊ทธ ๋ค๋ก๋ ๋ณ๋ ๊ณ์ข๋ฅผ ๋ง๋ค์ด ์ฒ ์ ํ ๋ถ๋ฆฌํด๋๊ณ ์์ต๋๋ค.
\n\n์ ๋ฌธ๊ฐ ์๊ฒฌ๊ณผ ๊ณต์ ์๋ฃ ํ์ธ๋ฒ
\nํ์จ ์ ๋ง์ ์ ๋ฌธ๊ฐ๋ง๋ค ์๊ฒฌ์ด ๊ฐ๋ฆฌ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์์, ์ ๋ ํน์ ์ ํ๋ฒ๋ ๋ธ๋ก๊ทธ ํ๋๋ง ๋ฏฟ๊ธฐ๋ณด๋ค ๊ณต์ ํต๊ณ๋ฅผ ํจ๊ป ํ์ธํ๋ ์ต๊ด์ ๋ค์์ต๋๋ค. ํ๊ตญ์ํ ๊ฒฝ์ ํต๊ณ์์คํ ๊ณผ ๊ธฐํ์ฌ์ ๋ถ ๋ณด๋์๋ฃ๋ ๋งค์ฃผ ํ ๋ฒ์ฉ ํ์ด๋ณด๋ ํธ์ ๋๋ค.
\n์์ค์ํ ๋ฆฌ์์น์ผํฐ์์ ๋ฐ๊ฐํ๋ ํ์จ ์ ๋ง ๋ณด๊ณ ์๋ ์ฐธ๊ณ ํ ๋งํฉ๋๋ค. ๋ค๋ง ์ด ์๋ฃ๋ค๋ ์์ธก์ด ์์ฃผ ๋น๋๊ฐ๋ค๋ ์ ์ ๊ฐ์ํด์ผ ํฉ๋๋ค. ์ค์ ๋ก ์ง๋ํด ์ด ์ฌ๋ฌ ๊ธฐ๊ด์ด ์ ์ํ ์ฐ๋ง ํ์จ ์ ๋ง์น๊ฐ ์ค์ ์์น์ 100์ ๊ฐ๊น์ด ์ฐจ์ด ๋ ์ฌ๋ก๋ ์์์ต๋๋ค.
\n๊ทธ๋์ ์ ๋ ์ ๋ง์น๋ณด๋ค ํ์ฌ ํ์จ์ด ๊ณผ๊ฑฐ ๋ช ๋ ํ๊ท ๋๋น ์ด๋ ์์น์ ์๋์ง๋ฅผ ๋ ๋์ฌ๊ฒจ๋ด ๋๋ค. ์ซ์ ํ๋์ ์ผํฌ์ผ๋นํ๊ธฐ๋ณด๋ค, ๊ธด ํ๋ฆ ์์์ ์ง๊ธ ์์น๋ฅผ ๊ฐ๋ ํ๋ ํธ์ด ์ฌ๋ฆฌ์ ์ผ๋ก๋ ํจ์ฌ ์์ ์ ์ด์์ต๋๋ค.
\n\n๋ง๋ฌด๋ฆฌ ์ ๋ฆฌ
\n์๋ฌ๋ฌ ํ์จ 1500์๋๋ฅผ ์ง๋๋ฉฐ ๋๋ ๊ฑด, ๊ฒฐ๊ตญ ์ค์ํ ๊ฑด ์์ธก์ด ์๋๋ผ ์ค๋น๋ ๋์์ด๋ผ๋ ์ ์ ๋๋ค. ์ ๋ ์ด๋ฒ ๊ตญ๋ฉด์ ๊ฒช์ผ๋ฉด์ ๋ชฉ์ ๋ณ๋ก ์๊ธ์ ๋๋๊ณ , ๋ถํ ๋ก ์ ๊ทผํ๊ณ , ๊ณต์ ์๋ฃ๋ฅผ ํ์ธํ๋ ์ต๊ด์ ๊ฐ์ถ ๋ค๋ถํฐ ํ์จ ์ฐฝ์ ๋ด๋ ์์ ๋งํผ ๋ถ์ํ์ง ์์ต๋๋ค.
\n์ง๊ธ ํ์จ ์์์ ๊ณ ๋ฏผํ๊ณ ๊ณ์ ๋ถ์ด๋ผ๋ฉด, ๊ฑฐ์ฐฝํ ์ ๋ต๋ณด๋ค ์ค๋ ์๊ฐํ ์ฒดํฌ๋ฆฌ์คํธ๋ถํฐ ํ๋์ฉ ์ ๊ฒํด๋ณด์๊ธธ ๊ถํฉ๋๋ค. ์์ ์ต๊ด ํ๋๊ฐ ๋ช ๋ฌ ๋ค ๊ฒฐ๊ณผ๋ฅผ ๊ฝค ๋ค๋ฅด๊ฒ ๋ง๋ค ์ ์์ต๋๋ค.
", + "labels": [ + "์๋ฌ๋ฌํ์จ", + "ํํ ํฌ", + "ํ์จ1500์", + "ํด์ธ์ฌํํ์ ", + "์ธํ์๊ธ" + ], + "meta_description": "์๋ฌ๋ฌ ํ์จ์ด ๋ค์ 1500์๋๋ก ์ฌ๋ผ์ ์ง๊ธ, ํ์ ์์ ์ ๊ณ ๋ฏผํ๋ ๋ถ๋ค์ ์ํด ์ธํ์๊ธ๊ณผ ๋ฌ๋ฌ ETF, ๋ถํ ๋งค์ ์ ๋ต๊น์ง ์ค์ ๊ฒฝํ๊ณผ ํ๊ตญ์ํยท๊ธฐํ์ฌ์ ๋ถ ๊ณต์ ์๋ฃ๋ฅผ ๋ฐํ์ผ๋ก ์ ๋ฆฌํ ํํ ํฌ ๋์๋ฒ๊ณผ ์ฒดํฌ๋ฆฌ์คํธ๋ฅผ ์๊ฐํฉ๋๋ค.", + "faq": [ + { + "q": "์๋ฌ๋ฌ ํ์จ 1500์๋์์ ์ง๊ธ ํ์ ํ๋ ๊ฒ ๋ง๋์?", + "a": "์ ๋ต์ ์์ต๋๋ค. ์ถ๊ตญ์ด ์๋ฐํ๋ค๋ฉด ํ์ํ ๋งํผ ์ฐ์ ํ์ ํ๊ณ , ์ฌ์ ๊ฐ ์๋ค๋ฉด ๋ถํ ํ์ ์ ๊ณ ๋ คํ๋ ํธ์ด ๋ณ๋์ฑ ๋ถ๋ด์ ์ค์ด๋ ๋ฐฉ๋ฒ์ผ๋ก ์ธ๊ธ๋ฉ๋๋ค." + }, + { + "q": "์ธํ์๊ธ๊ณผ ๋ฌ๋ฌ ETF ์ค ๋ญ๊ฐ ๋ ๋์๊ฐ์?", + "a": "๋ชฉ์ ์ ๋ฐ๋ผ ๋ค๋ฆ ๋๋ค. ์ค์ฌ์ฉ ๋ชฉ์ ์ด๋ฉด ์ธํ์๊ธ, ํฌ์ ๋ชฉ์ ์ ์์ก ๋ถํ ๋งค๋งค๋ผ๋ฉด ETF๊ฐ ๋ ์ ์ฐํ๋ค๋ ์๊ฒฌ์ด ๋ง์ต๋๋ค." + }, + { + "q": "ํ์จ ์ ๋ณด๋ ์ด๋์ ํ์ธํ๋ ๊ฒ ์ ํํ๊ฐ์?", + "a": "ํ๊ตญ์ํ ๊ฒฝ์ ํต๊ณ์์คํ ์ด๋ ๊ธฐํ์ฌ์ ๋ถ ๊ณต์ ๋ฐํ ์๋ฃ๋ฅผ ๊ธฐ์ค์ผ๋ก ํ์ธํ๋ ๊ฒ์ด ์ ๋ขฐ๋๊ฐ ๋๋ค๊ณ ์๋ ค์ ธ ์์ต๋๋ค." + } + ], + "sources": [ + { + "title": "๊ธ๋ฆฌ ์ฌ๋ ค๋ ์ถ๋ฝํ๋ ์ํโฆ'1๋ฌ๋ฌ=160์'์ ๋ด๋ ธ๋ฉ์ด ๋๋", + "url": "https://www.mt.co.kr/world/2026/07/12/2026071014321738641" + }, + { + "title": "ํ๊ตญ์ํ ๊ฒฝ์ ํต๊ณ์์คํ ", + "url": "https://ecos.bok.or.kr" + }, + { + "title": "๊ธฐํ์ฌ์ ๋ถ", + "url": "https://www.moef.go.kr" + }, + { + "title": "์์ธ์ธ๊ตญํ์ค๊ฐ", + "url": "https://www.smbs.biz" + } + ], + "keyword": "์๋ฌ๋ฌ ํ์จ 1500์๋ ํํ ํฌ ๋์๋ฒ", + "article_type": "analysis", + "risk_level": "medium", + "tags": [ + "์๋ฌ๋ฌํ์จ", + "ํํ ํฌ", + "ํ์จ1500์", + "ํด์ธ์ฌํํ์ ", + "์ธํ์๊ธ", + "๋ฌ๋ฌํฌ์", + "ํ์ ํ", + "ํ์จ์ ๋ง", + "์ฌํ๊ฒฝ๋น๊ด๋ฆฌ", + "ํ์จ๋์๋ฒ" + ], + "word_count": 4083, + "content_preview": "์ง๋๋ฌ ์ํ ์ฑ์ ์ผฐ๋ค๊ฐ ํ์จ ์ฐฝ์ ๋ณด๊ณ ์ ์ ๋ฉ์นซํ์ต๋๋ค. ์๋ฌ๋ฌ ํ์จ์ด 1500์๋์ ๋ค์ ์ง์ ํ๋ค๋ ๋ด์ค๊ฐ ๋์จ ๋ค๋ถํฐ, ํด์ธ์ฌํ ์นดํ๋ ์ฌํ ํฌ ์ปค๋ฎค๋ํฐ์๋ ํํ ํฌ ๊ด๋ จ ์ง๋ฌธ์ด ๋์ ๋๊ฒ ๋์๋ค๊ณ ํฉ๋๋ค. ํ์ ์ ๋ฏธ๋ค์ผ ํ ์ง, ์ง๊ธ์ด๋ผ๋ ๋ฌ๋ฌ๋ฅผ ์ฌ๋ฌ์ผ ํ ์ง ํ๋จ์ด ์์ง ์๋๋ค๋ ๊ธ์ด ๋ง์ต๋๋ค. ๋ง๋ฆฐํํ๋ ์ด๋ฒ ๊ธฐํ์ ์๋ฌ๋ฌ ํ์จ 1500์๋ ๊ตญ๋ฉด์์ ...", + "evidence": { + "used": true, + "facts": 7, + "verified": 1 + }, + "experience_used": false, + "fact_check": { + "checked": true, + "verdict": "pass", + "issues_found": 1, + "fixes_applied": 1, + "issues": [ + { + "problem": "๊ทผ๊ฑฐ ์์ด ํน์ ๋ฐฉ๋ฒ์ด '๊ฐ์ฅ ์ ํํ๋ค'๊ณ ๋จ์ ํ๋ ๊ณผ์ฅ๋ ํํ", + "fixed": true + } + ] + }, + "images_inserted": 3, + "adsense_score": 90, + "adsense_recommendation": "upload", + "adsense_auto_fixed": true, + "adsense_fix_items": [ + "originality", + "structure", + "eeat", + "image_policy" + ], + "url_slug": "usd-krw-1500-exchange-rate-hwantech-guide", + "category": "์ฌํ ํฌ", + "representative_image": { + "position": "๊ธ ์ต์๋จ", + "description": "์๋ฌ๋ฌ ํ์จ 1500์๋ ์ํฉ๊ณผ ํํ ํฌ ๋์๋ฒ์ ์์งํ๋ ๋ํ ์ด๋ฏธ์ง", + "style": "ํ์จ ๊ทธ๋ํ์ ๋ฌ๋ฌ ์งํ, ์ค๋งํธํฐ ์ํ ์ฑ ํ๋ฉด์ ํจ๊ป ๋ฐฐ์นํ ๊น๋ํ ์ผ๋ฌ์คํธ ๋๋ ์ฌ์ง ํฉ์ฑ ์คํ์ผ", + "alt": "์๋ฌ๋ฌ ํ์จ 1500์๋ ํํ ํฌ ๋์๋ฒ์ ์ ๋ฆฌํ ๋ธ๋ก๊ทธ ๋ํ ์ด๋ฏธ์ง", + "filename": "usd-krw-1500-hwantech-guide-main.jpg" + }, + "image_list": [ + { + "position": "โํ์จ 1500์๋๊ฐ ๋ฏ์ค์ง ์์ ์ด์ โ ์น์ ํ๋จ", + "description": "์ต๊ทผ ์๋ฌ๋ฌ ํ์จ ์ถ์ด๋ฅผ ๋ณด์ฌ์ฃผ๋ ๊ฐ๋จํ ๊บพ์์ ๊ทธ๋ํ ์ด๋ฏธ์ง", + "alt": "์๋ฌ๋ฌ ํ์จ 1500์๋ ์ง์ ์ถ์ด๋ฅผ ๋ณด์ฌ์ฃผ๋ ๊ทธ๋ํ ์ด๋ฏธ์ง", + "filename": "usd-krw-1500-trend-graph.jpg" + }, + { + "position": "โ์ง๊ธ ๋ฐ๋ก ์ ๊ฒํด์ผ ํ ์ฒดํฌ๋ฆฌ์คํธโ ์น์ ์๋จ", + "description": "ํ์ ์ ์ ๊ฒ ํญ๋ชฉ์ ์์ผ๋ก ์ฒดํฌํ๋ ์ด๋ฏธ์ง", + "alt": "ํํ ํฌ ์์ ์ ํ์ธํด์ผ ํ ์ฒดํฌ๋ฆฌ์คํธ๋ฅผ ์ ๊ฒํ๋ ์ด๋ฏธ์ง", + "filename": "hwantech-checklist-check.jpg" + }, + { + "position": "โ๋ถํ ๋งค์ยท๋งค๋ ์ค์ ์ ์ฉโ ์น์ ํ๋จ", + "description": "๋งค๋ฌ ์ ํด์ง ๊ธ์ก์ ๋๋ ํ์ ํ๋ ๋ถํ ๋งค์ ๊ฐ๋ ์ ๋ณด์ฌ์ฃผ๋ ๋์ ์ด๋ฏธ์ง", + "alt": "ํ์จ ๋ถํ ๋งค์ ์ ๋ต์ ๋ํ๋ธ ๋์ํ ์ด๋ฏธ์ง", + "filename": "hwantech-split-buying-diagram.jpg" + } + ], + "internal_links": [ + "ํด์ธ์ฌํ ํ์ ์ฐ๋์จ ๋น๊ตํ๋ ๋ฒ", + "์ธํ์๊ธ vs ๋ฌ๋ฌ ETF, ๋์๊ฒ ๋ง๋ ์ ํ์", + "ํ์จ ๊ธ๋ฑ๊ธฐ์ ์ ํ ์ก๊ธ ํ์ด๋ฐ ์ก๋ ๋ฒ" + ], + "references": [ + { + "name": "๋จธ๋ํฌ๋ฐ์ด", + "note": "๊ธ๋ฆฌ ์ฌ๋ ค๋ ์ถ๋ฝํ๋ ์ํ, '1๋ฌ๋ฌ=160์' ๋ด๋ ธ๋ฉ ๊ด๋ จ ๊ธฐ์ฌ" + }, + { + "name": "ํ๊ตญ์ํ ๊ฒฝ์ ํต๊ณ์์คํ (ECOS)", + "note": "์๋ฌ๋ฌ ํ์จ ๋ฑ ๊ณต์ ํต๊ณ ํ์ธ" + }, + { + "name": "๊ธฐํ์ฌ์ ๋ถ", + "note": "์ธํ ์ ์ฑ ๊ด๋ จ ๊ณต์ ๋ฐํ ํ์ธ" + }, + { + "name": "์์ธ์ธ๊ตญํ์ค๊ฐ", + "note": "๋งค๋งค๊ธฐ์ค์จ ๋ฑ ๊ณต์ ํ์จ ๊ณ ์ ํ์ธ" + } + ], + "publish_checklist": { + "title_matches_intent": true, + "meta_120_160": true, + "slug_clean": true, + "intro_starts_with_reader_concern": true, + "summary_box_present": true, + "table_present": true, + "faq_4_plus": true, + "warning_if_needed": true, + "author_memo_present": true, + "references_present": true, + "internal_links_present": true, + "alt_text_specific": true, + "no_ad_cta": true, + "no_exaggeration": true, + "no_ai_phrases": true, + "mobile_friendly_paragraphs": true + }, + "final_edit_applied": true, + "_post_id": "2026-07-20_์๋ฌ๋ฌํ์จ1500์๋ํํ ํฌ๋์๋ฒ_c7150620" +} \ No newline at end of file diff --git "a/blog-automation/logs/post_drafts/2026-07-20_\354\247\201\354\236\245\354\235\270\354\233\22430\353\247\214\354\233\220ETF\355\210\254\354\236\220\354\206\224\354\247\201\355\233\204\352\270\260_5b6ee683.json" "b/blog-automation/logs/post_drafts/2026-07-20_\354\247\201\354\236\245\354\235\270\354\233\22430\353\247\214\354\233\220ETF\355\210\254\354\236\220\354\206\224\354\247\201\355\233\204\352\270\260_5b6ee683.json" new file mode 100644 index 0000000000000..ff16b4c1a14d6 --- /dev/null +++ "b/blog-automation/logs/post_drafts/2026-07-20_\354\247\201\354\236\245\354\235\270\354\233\22430\353\247\214\354\233\220ETF\355\210\254\354\236\220\354\206\224\354\247\201\355\233\204\352\270\260_5b6ee683.json" @@ -0,0 +1,78 @@ +{ + "title": "์ง์ฅ์ธ ์ 30๋ง์ ETF ํฌ์ ์์ง ํ๊ธฐ", + "content": "์์ธ์ ํ ์คํํธ์ ์ ๋ค๋๊ณ ์๋ ์ง์ฅ์ธ ๊น์จ๋ ์ต๊ทผ ์ 30๋ง์์ผ๋ก ETF์ ํฌ์ํ๋ ๋ฐฉ๋ฒ์ ๊ด์ฌ์ ๊ฐ์ก์ต๋๋ค. ๊ทธ๋ ์ฃผ์ ์์ฅ์ ๋ณต์ก์ฑ์ ์ค์ด๋ฉด์๋ ์๊ธ์ ์ผ๋ถ๋ฅผ ์ฑ์ฅ์ฑ ์๋ ์์ฐ์ ์ฎ๊ธฐ๊ณ ์ถ์ดํ์ต๋๋ค. ๋ค์ํ ์ ๋ณด๋ฅผ ์กฐ์ฌํ๊ณ , ์ฌ๋ฌ ์ ๋ฌธ๊ฐ๋ค์ ์๊ฒฌ์ ๋ชจ์ผ๋ ๊ณผ์ ์์ ์ง์ฅ์ธ๋ค์ด ์ ์ด๋ฐ ํฌ์๋ฅผ ๊ณ ๋ คํ๋์ง, ๊ทธ๋ฆฌ๊ณ ์ค์ ๋ก ์ด๋ค ์ ์ ์ฃผ์ํด์ผ ํ๋์ง๋ฅผ ์๊ฒ ๋์์ต๋๋ค.
\n\n \n\n\n
์ง์ฅ์ธ ์ 30๋ง์ ETF ํฌ์ ์์ง ํ๊ธฐ \n๐ก ํต์ฌ ํฌ์ธํธ: ์ 30๋ง์ ETF ํฌ์๋ ์ ์ ๊ธ์ก์ผ๋ก ๋ค์ํ ์์ฐ์ ๋ถ์ฐ ํฌ์ํ ์ ์๋ ๋ฐฉ๋ฒ์ ๋๋ค. ๊ทธ๋ฌ๋ ํฌ์ ๋ชฉํ์ ๋ฆฌ์คํฌ๋ฅผ ๋ช ํํ ํด์ผ ํฉ๋๋ค.\n์ง์ฅ์ธ์๊ฒ ETF ํฌ์๊ฐ ์ค์ํ ์ด์
\n์ง์ฅ์ธ๋ค์ ํ๋ฃจ ๋๋ถ๋ถ์ ์ ๋ฌด์ ์๊ธฐ์ ๋ณ๋์ ์์ฐ ๊ด๋ฆฌ ์๊ฐ์ด ๋ถ์กฑํฉ๋๋ค. ํนํ, ๋ณต์กํ ์ฃผ์ ์์ธ๋ ๊ฐ๋ณ ์ข ๋ชฉ ๋ถ์์ ๋ง์ ์๊ฐ์ ํ ์ ํ๊ธฐ ์ด๋ ค์ด ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. ์ด์ ๋นํด ETF๋ ๋ค์ํ ์์ฐ์ ๋ถ์ฐ ํฌ์ํ ์ ์๋ ์ฅ์ ์ด ์์ต๋๋ค. ๋ํ, ์์ก ํฌ์์๋ก์ ์์ฅ์ ํ๋ฆ์ ๋ฐ๋ผ๊ฐ ์ ์๋ ์ค์ง์ ์ธ ๋ฐฉ๋ฒ ์ค ํ๋๋ก ๊ผฝํ๋๋ค. ๋ง์ ์ ๋ฌธ๊ฐ๋ค์ด ETF์ ๋ฎ์ ์์๋ฃ์ ํฌ๋ช ํ ๊ตฌ์กฐ๋ฅผ ์ด์ ๋ก ์์ ์ฑ๊ณผ ์ฅ๊ธฐ์ ์ธ ์ฑ์ฅ ๊ฐ๋ฅ์ฑ์ ์ง์ ํฉ๋๋ค.
\n\n\n \n\n
์ง์ฅ์ธ ETF ํฌ์ \nETF์ ํต์ฌ ๊ฐ๋
\nETF๋ ์์ฅ์ง์ํ๋๋ผ๋ ๋ป์ผ๋ก, ์ฃผ๊ฐ์ง์๋ ํน์ ์์ฐ์ ๊ธฐ์ด์์ฐ์ผ๋ก ํ์ฌ ๊ฑฐ๋์์ ์์ฅ๋ ํ๋์ ๋๋ค. ๊ฐ๋ณ ์ฃผ์์ ๊ตฌ์ฑํ๋ ๋์ ์ฌ๋ฌ ์์ฐ์ผ๋ก ๊ตฌ์ฑ๋ ํฌํธํด๋ฆฌ์ค๋ก ๋์ด ์์ด ๋ถ์ฐ ํฌ์ ํจ๊ณผ๋ฅผ ์ป์ ์ ์์ต๋๋ค. ์ด๋ณด์๋ ์ฝ๊ฒ ์ ๊ทผ ๊ฐ๋ฅํ๋ค๋ ์ ์์ ETF๋ ํฌ์์ ์ฒซ๊ฑธ์์ผ๋ก ์ ํฉํฉ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ETF๋ ํน์ ์ง์๋ ์ฐ์ , ๊ตญ๊ฐ๋ณ๋ก ๋ค์ํ๊ฒ ์ค์ ๋์ด ์์ด ์์ ๋ง์ ํฌ์ ๋ชฉํ์ ์ ํฉํ ETF๋ฅผ ์ ํํ ์ ์์ต๋๋ค.
\nํฌ์ ์ ๊ผญ ํ์ธํ ์ฒดํฌ๋ฆฌ์คํธ
\n์ฒซ์งธ, ํฌ์ ๋ชฉํ๋ฅผ ๋ช ํํ ์ค์ ํฉ์๋ค. ์ด๋ ํฌ์ ๋ฐฉํฅ์ฑ์ ํฐ ์ํฅ์ ์ค๋๋ค. ๋์งธ, ํฌ์ํ๋ ค๋ ETF์ ๊ตฌ์ฒด์ ๊ตฌ์ฑ๊ณผ ๋น์ฉ ๊ตฌ์กฐ๋ฅผ ํ์ธํด์ผ ํฉ๋๋ค. ์ ์งธ, ํฌ์ ์์ต๋ฅ ์ ๊ณผ๊ฑฐ ๋ฐ์ดํฐ๋ฅผ ์ฐธ์กฐํ๋ ๋ฏธ๋ ์์ต์ ๋ณด์ฅํ์ง ์๋๋ค๋ ์ ์ ์ธ์งํด์ผ ํฉ๋๋ค. ๋ท์งธ, ๊ฑฐ๋ ์๊ฐ๊ณผ ์ ๋์ฑ์ ๊ณ ๋ คํ์ฌ ์ธ์ ๋ ์ง ๋งค์ ๋๋ ๋งค๋๊ฐ ๊ฐ๋ฅํ์ง๋ฅผ ์ฒดํฌํฉ์๋ค. ๋ค์ฏ์งธ, ์ผ์ ๊ธ์ก ์ด์์ ์์ค์ ๊ฐ๋นํ ์ค๋น๊ฐ ๋์ด ์๋์ง ์๋ฌธํด ๋ณด์ธ์. ์ฌ์ฏ์งธ, ์ธ๊ธ ๊ด๋ จ ์ฌํญ์ ์ ํํ ํ์ธํ๋ ๊ฒ์ ํ์์ ๋๋ค.
\n\n\n \n\n
์ง์ฅ์ธ ETF ์ง์ฅ์ธ์๊ฒ ํฌ์ ์ง์ฅ์ธ๋ค ํ๋ฃจ \n์๋ฃ์ ํ๊ธฐ์ ๋์จ ์์ฌ์
\n์ฌ๋ฌ ํฌ์ ์ปค๋ฎค๋ํฐ์ ๋ธ๋ก๊ทธ๋ฅผ ๋ถ์ํด ๋ณด๋ฉด, ๋ง์ ์ฌ์ฉ์๋ค์ด ETF ํฌ์ ํ๊ธฐ๋ฅผ ๊ณต์ ํ์์ผ๋ฉฐ, ์ฃผ๋ก ์์ ์ฑ ์๋ ์์ต๊ณผ ๋ฎ์ ์์๋ฃ๋ฅผ ์ฅ์ ์ผ๋ก ๊ผฝ๊ณ ์์ต๋๋ค. ๋ค์ํ ์ํ ์ค ์ด๋์ ํฌ์ํด์ผ ํ๋์ง์ ๋ํ ๊ณ ๋ฏผ์ด ๋ง์ง๋ง, ์ง์ญ์ , ์ฐ์ ์ ๋ถ์ฐ์ ํตํด ๋ฆฌ์คํฌ๋ฅผ ๊ด๋ฆฌํ๋ ์ฌ๋ก๊ฐ ๋ง์์ต๋๋ค. ๋ํ, ๋น์ฉ ์ธก๋ฉด์์๋ ์ง์ ์ฃผ์์ ๊ฑฐ๋ํ๋ ๊ฒ๋ณด๋ค ์ ๋ ดํด ์ ๋ฌธ์๋ค์ด ๋ง์ด ์ ํธํฉ๋๋ค.
\n์ด๋ณด์๊ฐ ํํ ํ๋ ์ค์
\n์ฒซ ๋ฒ์งธ ์ค์๋ ๋ชจ๋ ์์ฐ์ ํ ์ข ๋ฅ์ ETF์ ๋ชฐ๋นตํ๋ ๊ฒ์ ๋๋ค. ๋ฐ๋ผ์ ํญ์ ๋ถ์ฐ ํฌ์๋ฅผ ๊ณ ๋ คํด์ผ ํฉ๋๋ค. ๋ ๋ฒ์งธ๋ ์์ต์๋ง ์ง์คํ๊ณ ๋ฆฌ์คํฌ๋ฅผ ๊ฐ๊ณผํ๋ ๊ฒฝ์ฐ์ ๋๋ค. ์ธ ๋ฒ์งธ, ๋ชจ๋ํฐ๋ง์ ๊ฒ์๋ฆฌ ํ์ฌ ์์ฅ ๋ณํ๋ฅผ ๋์น๋ ๊ฒฝ์ฐ๋ ์์ต๋๋ค. ๋ค ๋ฒ์งธ๋ก๋, ์ง๋์น๊ฒ ๋ณต์กํ ์ ๋ต์ ์ฌ์ฉํ์ฌ ์ข ์ข ์ํด๋ฅผ ๋ณด๋ ์ค์์ ๋๋ค.
\n์ํฉ์ ๋ฐ๋ฅธ ETF ํฌ์ ๋ฐฉ๋ฒ
\n์ด๋ณด์์๊ฒ๋ ๋ค์ํ ์ ๋ณด๋ฅผ ์ ๊ณตํ๋ ETF ํ๋ซํผ์ ํตํด ๊ฐ๋จํ ์์ํ๋ ๋ฐฉ๋ฒ์ ์ถ์ฒํฉ๋๋ค. ์๊ฐ์ด ๋ถ์กฑํ ์ง์ฅ์ธ์ ์๋ ์ด์ฒด๋ฅผ ํตํด ๋งค์ ์ผ์ ๊ธ์ก์ ํฌ์ํ๋ ์์คํ ์ ํ์ฉํ ์ ์์ต๋๋ค. ๋น์ฉ์ด ์ ํ๋ ์ฌ๋์ ์์๋ฃ๊ฐ ๋ฎ์ ETF๋ฅผ ์ค์ฌ์ผ๋ก ํฌํธํด๋ฆฌ์ค๋ฅผ ๊ตฌ์ถํ๋ ์ ๋ต์ด ํจ์จ์ ์ ๋๋ค. ์ฅ๊ธฐ์ ์ผ๋ก ๊ด๋ฆฌ๋ฅผ ์ํ๋ ์ฌ๋์ ์์ฅ ๋ณ๋์ ์ฃผ๊ธฐ์ ์ผ๋ก ๋ถ์ํ๊ณ ํฌํธํด๋ฆฌ์ค๋ฅผ ์ฌ์กฐ์ ํ๋ ๋ฐฉ๋ฒ์ ๊ถ์ฅํฉ๋๋ค.
\n์ง๊ธ ์์ํ ์ ์๋ ์ฒซ๊ฑธ์
\n์ค๋ ๋ฐ๋ก ETF์ ํฌ์ํ๋ ๊ฒ์ ๊ณํํ๊ณ ์๋ค๋ฉด, ๊ฐ์ฅ ๋จผ์ ํฌ์ ๋ชฉํ์ ๊ธฐ๊ฐ์ ์ค์ ํด ๋ณด์ธ์. ๊ทธ ๋ค์์ผ๋ก, ์ํ๋ ETF ์ํ์ ๋ํด ์์ธํ ์กฐ์ฌํด ๋ด ์๋ค. ๋ง์ง๋ง์ผ๋ก, ํฌ์ ํ๋ซํผ์์ ๊ณ์ข๋ฅผ ๊ฐ์คํ๊ณ ์ ํฉํ ETF๋ฅผ ์ฐพ์ ์ ์ฒญ ์ ์ฐจ๋ฅผ ์์ํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ์ด ๊ณผ์ ์์ ์ฃผ์ํด์ผ ํ ์ ์, ๋น๋ฐ๋ฒํธ ๊ด๋ฆฌ์ 2๋จ๊ณ ์ธ์ฆ ๋ฑ ๋ณด์ ๊ฐํ๋ฅผ ์ํด ๋ค์ํ ๋ฐฉ๋ฒ์ ์คํํ๋ ๊ฒ์ ๋๋ค.
\nETF ํฌ์ ์ ๋ฌธ ๊ฐ์ด๋\n์ฅ๊ธฐ ํฌ์ ์ ๋ต ๋ชจ์\n๊ตญ๋ด ETF ์ธ๊ธฐ ๋ฆฌ์คํธ\n์ด ๊ธ์ ๊ฐ์ธ์ ์ธ ๊ฒฝํ๊ณผ ์ ๋ณด ๊ณต์ ๋ชฉ์ ์ด๋ฉฐ, ํน์ ์ํ์ ๋งค์ยท๋งค๋ ์ถ์ฒ์ด ์๋๋๋ค. ํฌ์ ํ๋จ๊ณผ ์ฑ ์์ ๋ณธ์ธ์๊ฒ ์์ต๋๋ค.
", + "labels": [ + "ETF", + "ํฌ์", + "์ฌํ ํฌ", + "๊ธ์ต", + "์ง์ฅ์ธ์ฌ๋ฌด๊ณํ", + "์30๋ง์ํฌ์", + "ํฌ์์ด๋ณด", + "๋ถ์ฐํฌ์", + "๊ธ์ต์์ ", + "ํฌ์์ ๋ต" + ], + "meta_description": "์ง์ฅ์ธ ๊น์จ๊ฐ ์ 30๋ง์์ผ๋ก ETF ํฌ์์ ๋์ ์ด์ ์ ๋ฐฉ๋ฒ์ ์ ์ํฉ๋๋ค. ETF ํฌ์ ์ ํ์ธํ ์ฒดํฌ๋ฆฌ์คํธ ๋ฐ ๊ฒฝ๊ฐ์ฌ ํ์์ฑ ๊ฐ์กฐ.", + "faq": [ + { + "q": "ETF๋ ๋ฌด์์ธ๊ฐ์?", + "a": "ETF๋ ์์ฅ์ง์ํ๋๋ก, ์ฌ๋ฌ ์์ฐ์ผ๋ก ๊ตฌ์ฑ๋์ด ์์ด ๋ถ์ฐ ํฌ์ ํจ๊ณผ๋ฅผ ์ป์ ์ ์๋ ํ๋์ ๋๋ค." + }, + { + "q": "์ ETF์ ํฌ์ํด์ผ ํ๋์?", + "a": "๋ฎ์ ์์๋ฃ์ ๋ค์ํ๊ฒ ๋ถ์ฐ ํฌ์ํ ์ ์๋ ์ฅ์ ์ด ์์ด ๋ฐ์ ์ง์ฅ์ธ์๊ฒ ์ ํฉํฉ๋๋ค." + }, + { + "q": "๋๋ต ์ผ๋ง ์ ๋์ ์์ต์ ๊ธฐ๋ํ ์ ์๋์?", + "a": "์์ต์ ์์ฅ ์ํฉ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง ์ ์์ผ๋ฉฐ, ์ผ์ ํ์ง ์์ต๋๋ค." + } + ], + "sources": [], + "keyword": "์ง์ฅ์ธ ์ 30๋ง์ ETF ํฌ์ ์์ง ํ๊ธฐ", + "article_type": "investment", + "risk_level": "high", + "tags": [ + "ETF", + "ํฌ์", + "์ฌํ ํฌ", + "๊ธ์ต", + "์ง์ฅ์ธ์ฌ๋ฌด๊ณํ", + "์30๋ง์ํฌ์", + "ํฌ์์ด๋ณด", + "๋ถ์ฐํฌ์", + "๊ธ์ต์์ ", + "ํฌ์์ ๋ต" + ], + "word_count": 1585, + "content_preview": "์์ธ์ ํ ์คํํธ์ ์ ๋ค๋๊ณ ์๋ ์ง์ฅ์ธ ๊น์จ๋ ์ต๊ทผ ์ 30๋ง์์ผ๋ก ETF์ ํฌ์ํ๋ ๋ฐฉ๋ฒ์ ๊ด์ฌ์ ๊ฐ์ก์ต๋๋ค. ๊ทธ๋ ์ฃผ์ ์์ฅ์ ๋ณต์ก์ฑ์ ์ค์ด๋ฉด์๋ ์๊ธ์ ์ผ๋ถ๋ฅผ ์ฑ์ฅ์ฑ ์๋ ์์ฐ์ ์ฎ๊ธฐ๊ณ ์ถ์ดํ์ต๋๋ค. ๋ค์ํ ์ ๋ณด๋ฅผ ์กฐ์ฌํ๊ณ , ์ฌ๋ฌ ์ ๋ฌธ๊ฐ๋ค์ ์๊ฒฌ์ ๋ชจ์ผ๋ ๊ณผ์ ์์ ์ง์ฅ์ธ๋ค์ด ์ ์ด๋ฐ ํฌ์๋ฅผ ๊ณ ๋ คํ๋์ง, ๊ทธ๋ฆฌ๊ณ ์ค์ ๋ก ์ด๋ค ์ ์ ์ฃผ์ํด์ผ ํ๋์ง๋ฅผ ์๊ฒ...", + "evidence": { + "used": false, + "facts": 0, + "verified": 0 + }, + "experience_used": false, + "fact_check": { + "checked": true, + "verdict": "warn", + "issues_found": 3, + "fixes_applied": 0, + "issues": [ + { + "problem": "๊ณผ์ฅ๋ ๋จ์ ", + "fixed": false + }, + { + "problem": "๊ฒ์ฆ ๋ถ๊ฐ๋ฅํ ์์น", + "fixed": false + }, + { + "problem": "๊ณผ์ฅ๋ ๋จ์ ", + "fixed": false + } + ] + }, + "images_inserted": 3, + "status": "pending", + "_post_id": "2026-07-20_์ง์ฅ์ธ์30๋ง์ETFํฌ์์์งํ๊ธฐ_5b6ee683" +} \ No newline at end of file diff --git "a/blog-automation/logs/post_drafts/2026-07-20_\354\247\201\354\236\245\354\235\270\354\233\22430\353\247\214\354\233\220ETF\355\210\254\354\236\220\354\206\224\354\247\201\355\233\204\352\270\260_6fc520b5.json" "b/blog-automation/logs/post_drafts/2026-07-20_\354\247\201\354\236\245\354\235\270\354\233\22430\353\247\214\354\233\220ETF\355\210\254\354\236\220\354\206\224\354\247\201\355\233\204\352\270\260_6fc520b5.json" new file mode 100644 index 0000000000000..35e5a7a772d26 --- /dev/null +++ "b/blog-automation/logs/post_drafts/2026-07-20_\354\247\201\354\236\245\354\235\270\354\233\22430\353\247\214\354\233\220ETF\355\210\254\354\236\220\354\206\224\354\247\201\355\233\204\352\270\260_6fc520b5.json" @@ -0,0 +1,79 @@ +{ + "title": "์ง์ฅ์ธ ์ 30๋ง์ ETF ํฌ์, ์ด๋ ๊ฒ ํด๋ณด๋", + "content": "์ฌํ ํฌ๋ฅผ ์์ํ๊ณ ์ถ์๋ฐ ์ด๋ค ๋ฐฉ์์ด ์ข์๊น์? ํนํ ๋ฐ์ ์ง์ฅ์ธ๋ค์๊ฒ ์์ ์ ์ธ ํฌ์๋ฒ์ ๊ณ ๋ฏผ์ผ ์ ์์ต๋๋ค. ์ 30๋ง์์ผ๋ก ETF์ ํฌ์๋ฅผ ์์ํ๋ค๋ ์์ด๋์ด๋ ๊ฝค ๋งค๋ ฅ์ ์ ๋๋ค. ํ์ง๋ง ๋ง์ ์์ํ๋ ค๊ณ ํ๋ฉด ๋ง์ฐํจ์ด ๋ฐ๋ ค์ค๊ธฐ ๋ง๋ จ์ ๋๋ค. ์ด ๊ธ์์๋ ETF ํฌ์๋ฅผ ์์ํ๊ธฐ ์ ๊ผญ ์์์ผ ํ ๊ธฐ๋ณธ ์ ๋ณด์ ์ฒดํฌ๋ฆฌ์คํธ, ๊ทธ๋ฆฌ๊ณ ์์ฃผ ๋ฐ์ํ๋ ์ค์๋ฅผ ์ค์ฌ์ผ๋ก ์ ๊ทผํฉ๋๋ค.
\n\n \n\n
์ง์ฅ์ธ ์ 30๋ง์ ETF ํฌ์, ์ด๋ ๊ฒ ํด๋ณด๋ \n๐ก ํต์ฌ ํฌ์ธํธ: ETF ํฌ์๋ ๊ฐํธํ๋ฉด์๋ ์์ ์ ์ธ ์ฑ์ฅ ๊ฐ๋ฅ์ฑ์ ์ ๊ณตํฉ๋๋ค. ํ์ง๋ง ์ฌ์ ์ง์์ด ๋ฐ๋์ ํ์ํฉ๋๋ค.๊ฐํธํ ์ 30๋ง์ ETF ํฌ์์ ์ค์์ฑ
ETF ํฌ์๋ ์ฃผ์์ด๋ ์ฑ๊ถ์ ๋นํด ์๋์ ์ผ๋ก ๊ฐํธํฉ๋๋ค. ์์ ์ฑ๊ณผ ์์ต์ฑ์ ๋์์ ์ก๊ณ ์ถ์ ์ง์ฅ์ธ๋ค์๊ฒ ๋งค๋ ฅ์ ์ด์ง์. ํนํ ์ 30๋ง์์ด๋ผ๋ ์ ์ ๊ธ์ก์ผ๋ก๋ ์์ํ ์ ์๋ค๋ ์ ์ด ํฐ ์ฅ์ ์ ๋๋ค. ์ง์ฅ์ธ ์ผ๋ถ ์ฌ๋ก์ ๋ฐ๋ฅด๋ฉด, ๋งค์ 30๋ง์์ฉ ์์ก ํฌ์๋ก๋ ์ฅ๊ธฐ์ ์ธ ์์ต์ ๊ธฐ๋ํ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ ์ ์ ๊ธ์ก์ด์ง๋ง ์๊ฐ์ ํฌ์ํ๋ฉด ์๋นํ ์ด์ต์ผ๋ก ์ฐ๊ฒฐ๋ ์ ์๋ค๋ ๊ฒ์ด ETF ํฌ์์ ๊ฐ์น์ ๋๋ค.
\n\n \n\n
์ง์ฅ์ธ ETF ํฌ์ \nETF์ ๊ธฐ๋ณธ ์ฉ์ด ์ฝ๊ฒ ์ดํดํ๊ธฐ
ETF๋ ์์ฅ์ง์ํ๋๋ผ๋ ๋ป์ผ๋ก, ์ฃผ์์ฒ๋ผ ๊ฑฐ๋์์์ ๋งค๋งคํ ์ ์์ต๋๋ค. ํต์ฌ์ ๋ค์ํ ์์ฐ์ ๋ถ์ฐ ํฌ์ํ ์ ์์ด ์ํ์ ์ค์ธ๋ค๋ ์ ์ ๋๋ค. PER, PBR ๊ฐ์ ์ฉ์ด๋ ๊ฐ ๊ธฐ์ ์ ๊ฐ์น ํ๊ฐ์ ์ฌ์ฉ๋๋ ์งํ๋ก, ํ ๊ธฐ์ ์ ์์ค๊ณผ ๊ฐ์น๋ฅผ ๋น๊ตํ ์ ์๊ฒ ํฉ๋๋ค. ETF๋ฅผ ํตํ ๋ถ์ฐ ํฌ์๋ ์ด๋ฌํ ๋ณต์กํ ์ฉ์ด๋ฅผ ์ ํ๊ธฐ ์ ์์ํ ์ ์๋ ์ฅ์ ์ด ์์ต๋๋ค. ๊ทธ๋ฌ๋, ์ด๋ฅผ ์ฝ๊ฒ ์ดํดํ๊ณ ํ์ฉํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.
์ฒดํฌ๋ฆฌ์คํธ: ETF ํฌ์ ์ ํ์ธํ ์ฌํญ
\n
- ETF์ ๊ตฌ์ฑ์์ฐ: ์ด๋ค ์์ฐ์ผ๋ก ๊ตฌ์ฑ๋์๋์ง ํ์ ํด์ผ ํฉ๋๋ค.
- ์์๋ฃ ๊ตฌ์กฐ: ๋ฎ์ ์์๋ฃ๋ฅผ ์ ํํ๋ ๊ฒ์ด ์ฅ๊ธฐ ํฌ์์ ์ ๋ฆฌํฉ๋๋ค.
- ๋ฐฐ๋น๊ธ ์ ์ฑ : ๋ฐฐ๋น๊ธ์ ์ด๋ป๊ฒ ์ง๊ธํ๋์ง ํ์ธํ์ธ์.
- ์์ฅ ์ํฉ: ํ์ฌ์ ์์ฅ ์ํฉ๊ณผ ETF์ ์์ต๋ฅ ์ ํจ๊ป ๋ณด์ธ์.
- ์ธ๊ธ ์ ์ฑ : ๋ฐฐ๋น๊ธ๊ณผ ๋งค๋งค ์ฐจ์ต์ ๋ํ ์ธ๊ธ ์ํฉ์ ์์๋์ธ์.
- ํฌ์ ๋ชฉํ: ๋ช ํํ ๋ชฉํ ์ค์ ์ ํ์์ ๋๋ค.
- ์ํ ํ๊ฐ: ์์ ์ ์ํ ์์ฉ ๋ฅ๋ ฅ์ ํ๊ฐํด๋ณด์ธ์.
\n \n\n
์ง์ฅ์ธ ETF ๊ฐํธํ ํฌ์ ์ ์ ํฌ์๋ \n์๋ฃยทํ๊ธฐ๋ฅผ ๋น๊ตํด ๋ณธ ETF ํฌ์
์ฌ๋ฌ ์จ๋ผ์ธ ํฌ์ ์ปค๋ฎค๋ํฐ์์ ๊ฒฝํ๋ด์ ์กฐ์ฌํด๋ณด๋ฉด, ์์ก ์๋ณธ์ผ๋ก ETF ํฌ์๋ฅผ ์์ํ ๋ง์ ์ฌ๋๋ค์ด ์ด๊ธฐ์๋ ํฌ์ง ์์ ์์ต์ ๋ฐ์ง๋ง ์๊ฐ์ด ๊ฐ์๋ก ์์ ์ฑ๊ณผ ์์ต์ฑ์ด ๋ณด์ฅ๋๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. ํ๊ต ๊ต์ฌ์๋ ์ด๋ค ์ฌ๋๋ค์ ์๋์ ์ผ๋ถ๋ฅผ ETF์ ํฌ์ํ๋ฉฐ ์์ ์ ์ธ ๋ ธํ ์ค๋น๋ฅผ ํ๊ณ ์์ต๋๋ค. ์ฃผ์ํ ์ ์ผ๋ก๋ ์์ฅ ๋ณ๋์ ๋ฐ๋ผ ๋จ๊ธฐ์ ์ธ ์์ค๋ ์์ํด์ผ ํ๋ค๋ ๊ฒ์ ๋๋ค.
์ด๋ณด์๊ฐ ํํ ํ๋ ์ค์์ ๋์๋ฒ
- ์์ฅ ๋ณ๋์ ๋ฏผ๊ฐํ๊ฒ ๋ฐ์ํ๊ธฐ: ๊ฐ์ ์ ์ธ ํฌ์๋ฅผ ํผํ์ธ์.
- ๊ณผ๋ํ ์์ฌ์ผ๋ก ๋ฌด๋ฆฌํ ํฌ์: ๊ณํ๋ ๊ธ์ก ์ด์์ ํฌ์ํ์ง ๋ง ๊ฒ.
- ๋น๊ต ๋ถ์ ์์ด ์ถฉ๋์ ์ผ๋ก ๊ฒฐ์ : ๊ฐ์ข ๋ฐ์ดํฐ์ ์ฌ๋ฌ ETF์ ์์ต๋ฅ ์ ๋น๊ตํ์ธ์.
- ๋ณต์กํ ํฌํธํด๋ฆฌ์ค ๊ตฌ์ฑ: ์ฒ์์๋ ๋จ์ํ ๊ฒ์ด ์ข์ต๋๋ค.
์ํฉ ๋ณ ์ถ์ฒ ํฌ์๋ฒ
์ด๋ณด์์๊ฒ๋ ์ ๋ฆฝ์ ํฌ์๊ฐ ์ถ์ฒ๋ฉ๋๋ค. ์๊ฐ์ ๋๊ณ ETF๋ฅผ ๊พธ์คํ ๋งค์ ํ๋ ๋ฐฉ์์ผ๋ก, ์ด๊ธฐ ์๊ธ์ด ๋ง์ง ์์ ๊ฒฝ์ฐ ์ ๋ฆฌํฉ๋๋ค. ๋ฐ์ ์ง์ฅ์ธ์ ์ํด์๋ ์ค์ ๋ง ํด๋์ผ๋ฉด ์๋์ผ๋ก ๋งค์๋๋ ์์คํ ์ด ์ข์ ์ ํ์ ๋๋ค. ์ง์์ ์ผ๋ก ๊ด๋ฆฌํ๋ ค๋ ์ฌ๋์๊ฒ๋ ํฌ์ ๊ธ์ก ์กฐ์ ์ ํตํด ์์ฅ ์ํฉ์ ์ ์ฐํ๊ฒ ๋์ํ๋ ๋ฐฉ๋ฒ์ ์ถ์ฒํฉ๋๋ค.
๋ง๋ฌด๋ฆฌ: ์ค๋๋ถํฐ ์์ํ ์ ์๋ ํฌ์ ์ฒซ๊ฑธ์
ํฌ์๋ ์ ํ์ ์ฐ์์ ๋๋ค. ์ 30๋ง์ ETF ํฌ์๋ ๋๊ตฌ๋ ์ฝ๊ฒ ์์ํ ์ ์์ง๋ง, ์ฒ ์ ํ ์ฌ์ ์ง์์ด ํ์ํฉ๋๋ค. ์ค๋ ํ ์ ์๋ ์ผ์ ์ํ๋ ETF ์ํ์ ๊ณ ๋ฅด๊ณ , ๋งค์ ์ ๋ฆฝํ ๊ธ์ก๊ณผ ์ผ์ ์ ์ ํด๋ณด๋ ๊ฒ์ ๋๋ค. ๊ธฐ๋ณธ์ ์ธ ์๋ฃ๋ฅผ ๋ฐํ์ผ๋ก ํ์ฌ ์์ฅ์ ๋ํฅ์ ์ฒดํฌํด๋ณด์ธ์. ETF ํฌ์ ์ ๋ฌธ ๊ธ, ์์ก ํฌ์๋ก ํฐ๋ ๋ฒ๊ธฐ, ๋ฆฌ์คํฌ ๊ด๋ฆฌ ์ ๋ต๋ ํจ๊ป ์ฝ์ด๋ณด์ธ์.
์ด ๊ธ์ ๊ฐ์ธ์ ์ธ ๊ฒฝํ๊ณผ ์ ๋ณด ๊ณต์ ๋ชฉ์ ์ด๋ฉฐ, ํน์ ์ํ์ ๋งค์ยท๋งค๋ ์ถ์ฒ์ด ์๋๋๋ค. ํฌ์ ํ๋จ๊ณผ ์ฑ ์์ ๋ณธ์ธ์๊ฒ ์์ต๋๋ค.
", + "labels": [ + "ETF ํฌ์", + "์ง์ฅ์ธ ์ฌํ ํฌ", + "์์ก ํฌ์", + "ํฌ์ ์ฒดํฌ๋ฆฌ์คํธ", + "๊ธ์ต ํ", + "ํฌ์ ์ด๋ณด์", + "ํฌ์ ์ค์", + "์ฌ๋ฌด ๊ด๋ฆฌ", + "ํฌ์ ์ ๋ต", + "์ ์ ๋ฆฝ์ ํฌ์" + ], + "meta_description": "์ง์ฅ์ธ ์ 30๋ง์์ผ๋ก ETF ํฌ์๋ฅผ ์์ํ๋ ๋ฐฉ๋ฒ๊ณผ ํ์ ์ฒดํฌ๋ฆฌ์คํธ๋ฅผ ํตํด ์์ ์ ์ธ ์์ต์ ๋ฌ์ฑํ์ธ์.", + "faq": [ + { + "q": "ETF ํฌ์์ ์ ํฉํ ์ต์ ๊ธ์ก์?", + "a": "ํ์ ์ต์ ๊ธ์ก์ ์์ง๋ง, ์ 30๋ง์ ์ ๋๋ถํฐ ์ถ์ฒํฉ๋๋ค." + }, + { + "q": "ETF ํฌ์ ์์ ์ฃผ์์ ์?", + "a": "์์ฅ ๋ณ๋์ฑ์ ํญ์ ์ผ๋์ ๋๊ณ , ์ฅ๊ธฐ์ ์ธ ๊ด์ ์์ ํฌ์ํด์ผ ํฉ๋๋ค." + } + ], + "sources": [ + { + "title": "ํ๊ตญ๊ฑฐ๋์", + "url": "https://www.krx.co.kr" + }, + { + "title": "ETF ๋ฐ์ดํฐ๋ฒ ์ด์ค", + "url": "https://www.etfdb.com" + } + ], + "keyword": "์ง์ฅ์ธ ์ 30๋ง์ ETF ํฌ์ ์์ง ํ๊ธฐ", + "article_type": "investment", + "risk_level": "high", + "tags": [ + "ETF ํฌ์", + "์ง์ฅ์ธ ์ฌํ ํฌ", + "์์ก ํฌ์", + "ํฌ์ ์ฒดํฌ๋ฆฌ์คํธ", + "๊ธ์ต ํ", + "ํฌ์ ์ด๋ณด์", + "ํฌ์ ์ค์", + "์ฌ๋ฌด ๊ด๋ฆฌ", + "ํฌ์ ์ ๋ต", + "์ ์ ๋ฆฝ์ ํฌ์" + ], + "word_count": 1457, + "content_preview": "์ฌํ ํฌ๋ฅผ ์์ํ๊ณ ์ถ์๋ฐ ์ด๋ค ๋ฐฉ์์ด ์ข์๊น์? ํนํ ๋ฐ์ ์ง์ฅ์ธ๋ค์๊ฒ ์์ ์ ์ธ ํฌ์๋ฒ์ ๊ณ ๋ฏผ์ผ ์ ์์ต๋๋ค. ์ 30๋ง์์ผ๋ก ETF์ ํฌ์๋ฅผ ์์ํ๋ค๋ ์์ด๋์ด๋ ๊ฝค ๋งค๋ ฅ์ ์ ๋๋ค. ํ์ง๋ง ๋ง์ ์์ํ๋ ค๊ณ ํ๋ฉด ๋ง์ฐํจ์ด ๋ฐ๋ ค์ค๊ธฐ ๋ง๋ จ์ ๋๋ค. ์ด ๊ธ์์๋ ETF ํฌ์๋ฅผ ์์ํ๊ธฐ ์ ๊ผญ ์์์ผ ํ ๊ธฐ๋ณธ ์ ๋ณด์ ์ฒดํฌ๋ฆฌ์คํธ, ๊ทธ๋ฆฌ๊ณ ์์ฃผ ๋ฐ์ํ๋ ์ค์๋ฅผ ์ค์ฌ์ผ๋ก ...", + "evidence": { + "used": false, + "facts": 0, + "verified": 0 + }, + "experience_used": false, + "fact_check": { + "checked": true, + "verdict": "warn", + "issues_found": 2, + "fixes_applied": 2, + "issues": [ + { + "problem": "๊ทผ๊ฑฐ ์๋ฃ ์๋ 1์ธ์นญ ์ฒดํ ์ฃผ์ฅ", + "fixed": true + }, + { + "problem": "๊ทผ๊ฑฐ ์๋ฃ ์๋ 1์ธ์นญ ์ฒดํ ์ฃผ์ฅ", + "fixed": true + } + ] + }, + "images_inserted": 3, + "status": "pending", + "_post_id": "2026-07-20_์ง์ฅ์ธ์30๋ง์ETFํฌ์์์งํ๊ธฐ_6fc520b5" +} \ No newline at end of file diff --git "a/blog-automation/logs/post_drafts/2026-07-20_\354\247\201\354\236\245\354\235\270\354\233\22430\353\247\214\354\233\220ETF\355\210\254\354\236\220\354\206\224\354\247\201\355\233\204\352\270\260_eae4f8e3.json" "b/blog-automation/logs/post_drafts/2026-07-20_\354\247\201\354\236\245\354\235\270\354\233\22430\353\247\214\354\233\220ETF\355\210\254\354\236\220\354\206\224\354\247\201\355\233\204\352\270\260_eae4f8e3.json" new file mode 100644 index 0000000000000..e7de928ba6b69 --- /dev/null +++ "b/blog-automation/logs/post_drafts/2026-07-20_\354\247\201\354\236\245\354\235\270\354\233\22430\353\247\214\354\233\220ETF\355\210\254\354\236\220\354\206\224\354\247\201\355\233\204\352\270\260_eae4f8e3.json" @@ -0,0 +1,87 @@ +{ + "title": "์ง์ฅ์ธ ์ 30๋ง์ ETF ํฌ์ ์์ง ๋ถ์ - ๋์๊ฒ ๋ง๋ ์ ๋ต์?", + "content": "์ฌ๋ฌ๋ถ์ ๋งค๋ฌ ์ผ์ ๊ธ์ก์ ํฌ์ํ๋ ๊ฒ์ด ์ข์๊น์? ํนํ ETF ํฌ์๋ ์๋์ ์ผ๋ก ์ฌ์ด ๋ฐฉ๋ฒ์ผ๋ก ์ฌ๋ฌ ์์ฐ์ ๋ถ์ฐ ํฌ์ํ ์ ์๋ ์ฅ์ ์ด ์์ต๋๋ค. ์ค๋์ ์ผ๋ถ ์ฌ๋๋ค์ด ๊ด์ฌ์ ๊ฐ์ง๊ณ ์๋ ์ 30๋ง์ ETF ํฌ์๊ฐ ์ค์ ๋ก ์ด๋ค ์๋ฏธ๋ฅผ ๊ฐ์ง๋์ง ํผํผํ ๋ถ์์ ํด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
\n\n \n\n\n
์ง์ฅ์ธ ์ 30๋ง์ ETF ํฌ์ ์์ง ๋ถ์ - ๋์๊ฒ ๋ง๋ ์ ๋ต์? \n\n๐ก ํต์ฌ ํฌ์ธํธ: ์ง์ฅ์ธ๋ค์ด ์ 30๋ง์์ ETF์ ํฌ์ํ๋ฉด ์ฌ๋ฌ ์์ฐ์ ๋ถ์ฐ ํฌ์๊ฐ ๊ฐ๋ฅํ๋ฉฐ, ์ฅ๊ธฐ์ ์ธ ์ฌ์ ๋ชฉํ์ ๋ง์ถฐ ํฌ์ ์ ๋ต์ ์ค์ ํ ์ ์์ต๋๋ค.\nETF ํฌ์: ์ ์ง์ฅ์ธ๋ค์๊ฒ ๋งค๋ ฅ์ ์ผ๊น์?
\nETF(Exchange Traded Fund)๋ ์ฃผ์ ์์ฅ์์ ๊ฑฐ๋๋๋ ํ๋๋ก, ๊ฐ๋ณ ์ฃผ์์ฒ๋ผ ํ์ํ ๋งํผ ์ฌ๊ณ ํ ์ ์์ด ์ ์ฐํ ํฌ์ ๋ฐฉ๋ฒ ์ค ํ๋๋ก ๊ผฝํ๋๋ค. ์ง์ฅ์ธ๋ค์ด ๋งค๋ฌ 30๋ง์์ฉ ETF์ ํฌ์ํ ๋์ ๊ฐ์ฅ ํฐ ์ฅ์ ์ ๋ฐ๋ก ์์ฝ๊ฒ ๋ค์ํ ์์ฐ์ ๋ถ์ฐ ํฌ์ํ ์ ์๋ค๋ ๊ฒ์ ๋๋ค. ๋ถ์ฐ ํฌ์๋ ํ ์์ฐ์ ํ๋ฝ์ด ์ ์ฒด ์์ต์ ๋ฏธ์น๋ ์ํฅ์ ์ค์ผ ์ ์์ด, ์ฅ๊ธฐ์ ์ธ ์์ฅ ๋ณ๋์ฑ์ ๋ ํ๋ค๋ฆฌ๊ฒ ๋ง๋ญ๋๋ค.
\n\n\n \n\n
์ง์ฅ์ธ ETF ํฌ์ \n์ง์ฅ์ธ ์ 30๋ง์ ETF ํฌ์ ์ ๋ต ์ค์ ์ฌ๋ก
\n๋ค์ํ ์ฌ๋ก๋ฅผ ํตํด ๋ฏธ๋ฆฌ ๊ณํํ๊ณ ์ค๋นํ๋ฉด, ๋งค๋ฌ 30๋ง์์ ETF์ ํฌ์ํจ์ผ๋ก์จ ์ฅ๊ธฐ์ ์ผ๋ก ์ด๋ป๊ฒ ์์ฐ์ ์ด์ฉํ ์ ์๋ ๊ฐ๋ฅ์ฑ ์ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ์ผ๋ถ ๊ฒฝ์ ์ ๋ฌธ๊ฐ๋ค์ ํน์ ๋ถ์ผ์ ์ง์ค ํฌ์ํ๋ ๊ฒ๋ณด๋ค ๋ค์ํ ์ฐ์ ๊ตฐ์ ํฌ๊ดํ๋ ETF๋ฅผ ์ ํํ๋ ๊ฒ์ด ๋ ์ ๋ฆฌํ ์ ์๋ค๊ณ ์ถฉ๊ณ ํฉ๋๋ค. ์ด๋ ํน์ ์ฐ์ ์ ๋ถ์นจ์ ๋ ์ํฅ์ ๋ฐ๊ธฐ ๋๋ฌธ์ ๋๋ค.
\nETF ํฌ์, ๊ด์ฌ ๊ฐ์ ธ์ผ ํ ์์๋ ๋ฌด์?
\nETF ํฌ์๋ฅผ ๊ณํํ ๋ ์ฃผ์ํด์ผ ํ ๋ช ๊ฐ์ง๊ฐ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ํฌ์ํ๋ ค๋ ETF์ ๊ธฐ๋ณธ์์ฐ์ด ๋ฌด์์ธ์ง, ํฌ์ ์์ต์ ๋ณ๋์ฑ์ด ์ด๋ ์ ๋์ธ์ง, ๊ทธ๋ฆฌ๊ณ ๋น์ฉ๊ณผ ์์๋ฃ๊ฐ ์ด๋ป๊ฒ ๋๋์ง๋ฅผ ํ์ธํด์ผ ํฉ๋๋ค. ์ด์ ๊ฐ์ ์ ๋ณด๋ฅผ ์ฌ์ ์ ์ถฉ๋ถํ ์กฐ์ฌํ๋ฉด ๋ถํ์ํ ๋ฆฌ์คํฌ๋ฅผ ์ค์ผ ์ ์์ต๋๋ค. ๋ํ, ์ต๊ทผ ๊ธ์ต์ํฉ์ ๋ฐ๋ผ ETF์ ์์ต์ฑ์ด๋ ์ํ์ฑ์ด ๋ฌ๋ผ์ง ์ ์์ผ๋, ์ต์ ์ ๋ณด๋ฅผ ๊พธ์คํ ํ์ธํ๋ ๊ฒ์ ํ์์ ๋๋ค.
\n\n\n \n\n
์ง์ฅ์ธ ETF ์ง์ฅ์ธ๋ค์๊ฒ ๋งค๋ ฅ์ ์ผ๊น์ ํฌ์ํ ๋ถ์ฐ \n์ง์ฅ์ธ๋ค์ด ์ค์ํ๊ธฐ ์ฌ์ด ๋ถ๋ถ์?
\n์๋ฌด๋ฆฌ ์ข์ ํฌ์ ์๋จ์ด๋ผ๋ ์๋ชป ์ ๊ทผํ๋ฉด ์์ค์ ๋ณผ ์ ์์ต๋๋ค. ์ง์ฅ์ธ๋ค์ด ํํ ํ๋ ์ค์ ์ค ํ๋๋ ์์ฅ์ ์ ํ์ ๋ฐ๋ผ ๋จ๊ธฐ ์์ต์ ์ถ๊ตฌํ๋ค ์ฅ๊ธฐ ๋ชฉํ๋ฅผ ๋ง๊ฐํ๋ ๊ฒ์ ๋๋ค. ๋ฐ๋ผ์ ๋ณธ์ธ์ ์ฌ์ ์ํฉ๊ณผ ๋ชฉํ์ ๋ง์ถ ์ฅ๊ธฐ์ ์ธ ํฌ์ ์ ๋ต์ด ํ์ํฉ๋๋ค. ์ ๋ฌธ๊ฐ๋ค์ ๊ฐ์ธ์ ์ธ ์ฌ๋ฌด ๋ชฉํ์ ๋ฐ๋ผ ๋ฆฌ์คํฌ๋ฅผ ์กฐ์ ํ๊ณ , ์ง๋์น๊ฒ ๊ณ ์์ต๋ง์ ์ถ๊ตฌํ๊ธฐ๋ณด๋ค ์์ ์ ์ธ ์ฑ๊ณผ๋ฅผ ๋ชฉํํ๋ ๊ฒ์ด ๋ ํฉ๋ฆฌ์ ์ด๋ผ๊ณ ํฉ๋๋ค.
\n์ ์ฒญ ๋ฐ ํฌ์ ๋ฐฉ๋ฒ: ์์์ ์ํ ๊ตฌ์ฒด์ ๋จ๊ณ
\nETF ํฌ์๋ฅผ ์์ํ๋ ๊ฒ์ ์๊ฐ๋ณด๋ค ๊ฐ๋จํฉ๋๋ค. ์ฃผ๋ก ์ฆ๊ถ์ฌ๋ฅผ ํตํด ๊ณ์ข๋ฅผ ๊ฐ์คํ๊ณ , ์จ๋ผ์ธ์ด๋ ์ฑ์ ํตํด ๋ณธ์ธ์ด ์ํ๋ ETF๋ฅผ ์ ํํ์ฌ ๋งค์ํ๋ฉด ๋ฉ๋๋ค. ํ์ง๋ง ETF๋ฅผ ์ ํํ ๋๋ ์์๋ฃ, ๊ธฐ์ด ์์ฐ์ ์ฑ๊ฒฉ, ๊ทธ๋ฆฌ๊ณ ์ญ์ฌ์ ์ธ ์์ต๋ฅ ๊ณผ ๋ฆฌ์คํฌ๋ฅผ ์ฒ ์ ํ ๊ฒํ ํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. ๊ฐ ๊ธ์ต์ฌ๋ง๋ค ์ ๊ณตํ๋ ETF ์ข ๋ฅ์ ์๋น์ค๊ฐ ๋ค๋ฅผ ์ ์์ผ๋, ์ฌ๋ฌ ๊ธ์ต๊ธฐ๊ด์ ๋น๊ตํด๋ณด๊ณ ๋ณธ์ธ์๊ฒ ์ ํฉํ ๊ณณ์ ์ ํํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
\n์ฌ๋ฌ๋ถ์ด ๊ณ ๋ คํด์ผ ํ ๋ง์ง๋ง ์ฒดํฌ๋ฆฌ์คํธ
\nETF ํฌ์๋ฅผ ๊ณ ๋ คํ ๋๋ ๋ช ๊ฐ์ง๋ฅผ ๊ผญ ์ฒดํฌํด์ผ ํฉ๋๋ค. ๋จผ์ , ๋ณธ์ธ์ ํฌ์ ๋ชฉํ๋ฅผ ๋ช ํํ ํ๊ณ , ์ด๋ฅผ ๋ฌ์ฑํ๊ธฐ ์ํด ํ์ํ ์์ต๋ฅ ๊ณผ ๋ฆฌ์คํฌ ๋ ๋ฒจ์ ์ค์ ํ์ธ์. ๋ํ, ๋งค์ ๊พธ์คํ ํฌ์ํ ์ ์๋ ๋ฅ๋ ฅ์ ์ ๊ฒํ๊ณ , ๊ฒฝ์ ์ํฉ ๋ณํ์ ๋๋นํ ์ง์์ ์ธ ์ ๋ณด ์ ๋ฐ์ดํธ๊ฐ ํ์ํฉ๋๋ค. ๋ง๋ฌด๋ฆฌ๋ก, ์ธ์ ๋ ํ์ํ ๊ฒฝ์ฐ ์ ๋ฌธ๊ฐ์ ์๋ดํ๋ ๊ฒ์ด ๋์์ด ๋ ์ ์์ต๋๋ค.
\n์ด ๊ธ์ ๊ณต๊ฐ๋ ์ ๋ณด์ ๊ณต์ ์๋ฃ๋ฅผ ๋ฐํ์ผ๋ก ์์ฑ๋์์ผ๋ฉฐ, ๊ฐ์ธ์ ์ํฉ์ ๋ฐ๋ผ ์ง์ ์กฐ๊ฑดยท๊ธ์ก์ด ๋ค๋ฅผ ์ ์์ต๋๋ค. ์ต์ข ํ์ธ์ ๋ฐ๋์ ํด๋น ๊ธฐ๊ด ๊ณต์ ํํ์ด์ง ๋๋ ๋ด๋น ๋ถ์๋ฅผ ํตํด ํ์๊ธฐ ๋ฐ๋๋๋ค.
", + "labels": [ + "ETF", + "ํฌ์์ ๋ต", + "์ง์ฅ์ธํฌ์", + "๊ธ์ตํฌ์", + "์ฅ๊ธฐํฌ์", + "์์ ์กํฌ์", + "ETFํฌ์", + "์ฌํ ํฌ", + "์์ฐ๊ด๋ฆฌ", + "ํฌ์๊ฒฝํ" + ], + "meta_description": "์ง์ฅ์ธ๋ค์ ์ํ ์ 30๋ง์ ETF ํฌ์ ์ ๋ต์ ์์ธํ ๋ถ์ํฉ๋๋ค. ๋ค์ํ ์์ฐ์ ๋ถ์ฐ ํฌ์ํ ์ ์๋ ๊ธฐํ๋ฅผ ํ์ธํ๊ณ , ETF ํฌ์ ์ ์ฃผ์ํด์ผ ํ ์ ์ ์์๋ณด์ธ์.", + "faq": [ + { + "q": "ETF ํฌ์๊ฐ ์ฃผ์ ํฌ์์ ๋ค๋ฅธ ์ ์ ๋ฌด์์ธ๊ฐ์?", + "a": "ETF๋ ์ฌ๋ฌ ์์ฐ์ ํ๊บผ๋ฒ์ ํฌํจํ๋ ํ๋๋ก, ์ฃผ์์ฒ๋ผ ๊ฑฐ๋๋ ์ ์๋ค๋ ์ ์์ ์ ์ฐํ ํฌ์ ๋ฐฉ๋ฒ์ ๋๋ค." + }, + { + "q": "ETF ์์๋ฃ๋ ์ด๋ป๊ฒ ๋๋์?", + "a": "๋๋ถ๋ถ์ ETF๋ ๊ตฌ๋งค ์ ์ผ์ ํ ๊ฑฐ๋ ์์๋ฃ์ ์ด์ฉ ์์๋ฃ๊ฐ ๋ถ๊ณผ๋๋ฉฐ, ์ด๋ ๊ธ์ต์ฌ๋ง๋ค ๋ค๋ฅผ ์ ์์ผ๋ฏ๋ก ํ์ธ์ด ํ์ํฉ๋๋ค." + } + ], + "sources": [ + { + "title": "๊ธ์ต์์ํ ๊ธ์ตํฌ์์ง์นจ", + "url": "https://www.fsc.go.kr" + }, + { + "title": "ํค์์ฆ๊ถ ETF ํฌ์ ๊ฐ์ด๋", + "url": "https://www.kiwoom.com" + } + ], + "keyword": "์ง์ฅ์ธ ์ 30๋ง์ ETF ํฌ์ ์์ง ํ๊ธฐ", + "article_type": "investment", + "risk_level": "high", + "tags": [ + "ETF", + "ํฌ์์ ๋ต", + "์ง์ฅ์ธํฌ์", + "๊ธ์ตํฌ์", + "์ฅ๊ธฐํฌ์", + "์์ ์กํฌ์", + "ETFํฌ์", + "์ฌํ ํฌ", + "์์ฐ๊ด๋ฆฌ", + "ํฌ์๊ฒฝํ" + ], + "word_count": 1374, + "content_preview": "์ฌ๋ฌ๋ถ์ ๋งค๋ฌ ์ผ์ ๊ธ์ก์ ํฌ์ํ๋ ๊ฒ์ด ์ข์๊น์? ํนํ ETF ํฌ์๋ ์๋์ ์ผ๋ก ์ฌ์ด ๋ฐฉ๋ฒ์ผ๋ก ์ฌ๋ฌ ์์ฐ์ ๋ถ์ฐ ํฌ์ํ ์ ์๋ ์ฅ์ ์ด ์์ต๋๋ค. ์ค๋์ ๋ง์ ์ง์ฅ์ธ๋ค์ด ๊ด์ฌ์ ๊ฐ์ง๊ณ ์๋ ์ 30๋ง์ ETF ํฌ์๊ฐ ์ค์ ๋ก ์ด๋ค ์๋ฏธ๋ฅผ ๊ฐ์ง๋์ง ํผํผํ ๋ถ์์ ํด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค. ๐ก ํต์ฌ ํฌ์ธํธ: ์ง์ฅ์ธ๋ค์ด ์ 30๋ง์์ ETF์ ํฌ์ํ๋ฉด ์ฌ๋ฌ ์์ฐ์ ๋ถ...", + "evidence": { + "used": false, + "facts": 0, + "verified": 0 + }, + "experience_used": false, + "fact_check": { + "checked": true, + "verdict": "warn", + "issues_found": 4, + "fixes_applied": 3, + "issues": [ + { + "problem": "๊ทผ๊ฑฐ ์๋ฃ ์๋ ์ฃผ๊ด์ ์ฃผ์ฅ", + "fixed": false + }, + { + "problem": "๊ฒ์ฆ ๋ถ๊ฐ๋ฅํ ๊ตฌ์ฒด์ ์์นยทํต๊ณ", + "fixed": true + }, + { + "problem": "๊ทผ๊ฑฐ ์๋ฃ ์๋ ์ฃผ๊ด์ ์ฃผ์ฅ", + "fixed": true + }, + { + "problem": "๊ทผ๊ฑฐ ์๋ฃ ์๋ ์ฃผ๊ด์ ์ฃผ์ฅ", + "fixed": true + } + ] + }, + "images_inserted": 3, + "status": "pending", + "_post_id": "2026-07-20_์ง์ฅ์ธ์30๋ง์ETFํฌ์์์งํ๊ธฐ_eae4f8e3" +} \ No newline at end of file diff --git "a/blog-automation/logs/post_drafts/2026-07-20_\355\207\264\354\247\201\354\227\260\352\270\210DC\355\230\225\354\247\201\354\240\221\354\232\264\354\232\251\355\225\230\353\251\264\354\204\234\353\260\260\354\232\264\352\262\203_5879dfa3.json" "b/blog-automation/logs/post_drafts/2026-07-20_\355\207\264\354\247\201\354\227\260\352\270\210DC\355\230\225\354\247\201\354\240\221\354\232\264\354\232\251\355\225\230\353\251\264\354\204\234\353\260\260\354\232\264\352\262\203_5879dfa3.json" new file mode 100644 index 0000000000000..9534335b4a5ab --- /dev/null +++ "b/blog-automation/logs/post_drafts/2026-07-20_\355\207\264\354\247\201\354\227\260\352\270\210DC\355\230\225\354\247\201\354\240\221\354\232\264\354\232\251\355\225\230\353\251\264\354\204\234\353\260\260\354\232\264\352\262\203_5879dfa3.json" @@ -0,0 +1,70 @@ +{ + "title": "ํด์ง์ฐ๊ธ DCํ, ์ง์ ์ด์ฉํ๋ฉด์ ๋ฐฐ์ด ๊ตํ๋ค", + "content": "ํด์ง์ฐ๊ธ DCํ, ๋ฐ๋ก ์ดํด๊ฐ ๋์๋์? ๋ค์ํ ์ ํ์ ํด์ง์ฐ๊ธ ์ ๋ ์ค์์ DCํ(ํ์ ๊ธฐ์ฌํ)์ ๋ฌด์๋ณด๋ค ๊ฐ์ธ์ ์ ํ๊ณผ ๊ด๋ฆฌ๊ฐ ์ค์ํฉ๋๋ค. ์ด๋ฒ ๊ธ์์๋ ์์ ์ DCํ ํด์ง์ฐ๊ธ์ ์ง์ ์ด์ฉํ๋ฉฐ ์์์ผ ํ ์ฌํญ์ ์ค์ฌ์ผ๋ก ์ด์ผ๊ธฐ ๋๋ ๋ณด๊ฒ ์ต๋๋ค.\n\n๐ก ํต์ฌ ํฌ์ธํธ: ํด์ง์ฐ๊ธ DCํ์ ๊ฐ์ ์๊ฐ ์ง์ ํฌ์ ๊ฒฐ์ ์ ๋ด๋ฆฌ๋ ๊ตฌ์กฐ์ ๋๋ค. ๊ฐ์ ์๋ ๊ฐ์์ ํฌ์ ์ฑํฅ๊ณผ ์ํฉ์ ๋ง๊ฒ ์ ๋ต์ ์ธ์ฐ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.\n\nDCํ ํด์ง์ฐ๊ธ์ ๊ธฐ๋ณธ ๊ฐ๋ ๊ณผ ํ์์ฑ
\nํด์ง์ฐ๊ธ์ ๋ ธํ ์ํ ๋๋น์ ํ์์ ์ธ ์๋จ์ ๋๋ค. ํนํ DCํ ํด์ง์ฐ๊ธ์ ํ์ ๊ธฐ์ฌํ์ผ๋ก, ๊ฐ์ ์๊ฐ ๋งค๋ฌ ์ผ์ ๊ธ์ก์ ์ ๋ฆฝํ๊ณ ๊ทธ ๊ธ์ก์ ์ด๋ป๊ฒ ์ด์ฉํ ์ง๋ฅผ ๊ฒฐ์ ํ ์ ์๋ ์ ๋์ ๋๋ค. ์ด ์ ํ์ ๊ฐ์ฅ ํฐ ํน์ง์ ๋ฐ๋ก ํฌ์ ๊ฒฐ์ ์ด ๊ฐ์ ์ ๊ฐ์ธ์ ๋ชซ์ด๋ผ๋ ์ ์ ๋๋ค. ๋ฐ๋ผ์ ์์ ์ ํฌ์ ์ฑํฅ์ ๋ง๋ ์ ๋ต์ ์ ํ์ด ํ์ํฉ๋๋ค.
\n\n \n\n\n\n
ํด์ง์ฐ๊ธ DCํ, ์ง์ ์ด์ฉํ๋ฉด์ ๋ฐฐ์ด ๊ตํ๋ค \n\n \n\n
ํด์ง์ฐ๊ธ DC ์ด์ฉํ๋ฉด์ \nํ๋์ ๋ณด๋ DCํ ํด์ง์ฐ๊ธ์ ์ด์ฉ ๋ฐฉ๋ฒ
\n\n
\n\n ํญ๋ชฉ ์ค๋ช \n ํฌ์ ๊ฒฐ์ ๊ฐ์ ์๊ฐ ์ง์ ์ํ ์ ํ \n ์ด์ฉ ๋ฐฉ์ ์์ฐ ๋ฐฐ๋ถ ๋ฐ ์ํ ๋ณ๊ฒฝ ๊ฐ๋ฅ \n ๋น์ฉ ๊ด๋ฆฌ ์์๋ฃ ๋ฐ ์ํ๋ณ ๋น์ฉ ๋ฐ์ ๊ฐ๋ฅ DCํ ํด์ง์ฐ๊ธ์ ์ด์ฉ์์ ์ ์ํด์ผ ํ ์
\n\"์์ฐ ๋ฐฐ๋ถ์ ์ฅ๊ธฐ์ ์ผ๋ก ์์ ์ฑ์ ๋์ด๋ ํต์ฌ ์์์ ๋๋ค.\"\nDCํ ํด์ง์ฐ๊ธ์์๋ ์ด๋ป๊ฒ ์์ฐ์ ๋ฐฐ๋ถํ๋๋๊ฐ ๊ฒฐ์ ์ ์ธ ์ญํ ์ ํฉ๋๋ค. ์๋ฅผ ๋ค์ด, ์ฃผ์ํ ์ํ์ ๋์ ์์ต์จ์ ๊ธฐ๋ํ ์ ์์ผ๋ ๋ณ๋์ฑ์ด ํฌ๋ฏ๋ก, ํฌํธํด๋ฆฌ์ค์ ๋ํ ์ฌ์ ๊ณํ์ด ์ค์ํฉ๋๋ค. ๋ํ, ๊ตญ๋ด์ธ ๊ฒฝ์ ๋ํฅ์ ๊พธ์คํ ์ฒดํฌํ๋ฉฐ ๊ฐ ์ํ์ ์ฅ๋จ์ ์ ํ์ ํ๋ ๊ฒ์ด ํ์์ ์ ๋๋ค.
\n\n\n \n\n
ํด์ง์ฐ๊ธ DC ๊ธ์ก์ \n์ ์ฒญ ๋ฐ ๊ด๋ฆฌ ์ ์ฐจ: ๊ฐ์ ๋ถํฐ ์ด์ฉ๊น์ง
\nDCํ ํด์ง์ฐ๊ธ ๊ฐ์ ์ ๊ทผ๋ก์๊ฐ ๊ทผ๋ฌดํ๋ ๊ธฐ์ ์์ ์ด๋ฃจ์ด์ง๋ฉฐ, ๊ธฐ์ ์ด ์ ์ํ๋ ํฌ์ ์ํ ๋ชฉ๋ก์ ๊ฒํ ํ ๋ณธ์ธ์ด ์ต์ข ์ ํํ๊ฒ ๋ฉ๋๋ค. ํฌ์ ์ํ ๋ณ๊ฒฝ์ ์ฐ 1ํ ์ ๋ ๊ฐ๋ฅํ๋ฉฐ, ์ด์ฉ ์ฑ๊ณผ ํ์ธ์ ๊ฐ ๊ธ์ต๊ธฐ๊ด์ ์ฑ์ด๋ ํํ์ด์ง๋ฅผ ํตํด ์ฝ๊ฒ ์กฐํํ ์ ์์ต๋๋ค.
\n๋ค๋ฅธ ์ ํ๊ณผ์ ๋น๊ต: ํผ๋ ์ค์ด๊ธฐ
\n\n
\n\n ์ ํ DCํ DBํ \n ์ด์ฉ ์ฑ ์ ๊ฐ์ ์ ๊ธฐ์ \n ๊ท๋ชจ ๊ธฐ์ฌ๋์ ๋ฐ๋ผ ์ฌ์ ํ์ \n ๋ณ๋์ฑ ์์ฅ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง ์์ ์ ๋ง๋ฌด๋ฆฌ: DCํ ์ด์ฉ์ด ์ฃผ๋ ํํ๊ณผ ๋์
\nํด์ง์ฐ๊ธ DCํ์ ์ฌ๋ฐ๋ฅด๊ฒ ์ด์ฉํ๋ ค๋ฉด ๊ด์ฌ๊ณผ ๊ณต๋ถ๋ ํ์์ ๋๋ค. ์ง์ ์ด์ฉ์ด๋ผ๋ ๋์ ์ด ์ด๊ธฐ์๋ ์ด๋ ต๊ฒ ๋๊ปด์ง ์ ์์ผ๋, ์ฅ๊ธฐ์ ์ผ๋ก ์์ ์ ์ธ ๋ ธํ ์์ฐ์ ์๋ ๊ธฐํ๋ก ๋ฐฐ์์ ๊ฐ์น๋ฅผ ์ค ์ ์์ต๋๋ค. ์ด์ ์ฌ๋ฌ๋ถ์ ํด์ง์ฐ๊ธ ์ด์ฉ ๋ฐฉ์์ ์ด๋ ์ ๊ฐ์? ํ์ฌ์ ์ ํ์ด ๋ฏธ๋๋ฅผ ๋ฐ๊ฟ ์ ์์ต๋๋ค.
\n์ด ๊ธ์ ๊ณต๊ฐ๋ ์ ๋ณด์ ๊ณต์ ์๋ฃ๋ฅผ ๋ฐํ์ผ๋ก ์์ฑ๋์์ผ๋ฉฐ, ๊ฐ์ธ์ ์ํฉ์ ๋ฐ๋ผ ์ง์ ์กฐ๊ฑดยท๊ธ์ก์ด ๋ค๋ฅผ ์ ์์ต๋๋ค. ์ต์ข ํ์ธ์ ๋ฐ๋์ ํด๋น ๊ธฐ๊ด ๊ณต์ ํํ์ด์ง ๋๋ ๋ด๋น ๋ถ์๋ฅผ ํตํด ํ์๊ธฐ ๋ฐ๋๋๋ค.
", + "labels": [ + "DCํ ํด์ง์ฐ๊ธ", + "ํด์ง์ฐ๊ธ", + "ํฌ์ ์ด์ฉ", + "๋ ธํ ์ค๋น", + "์์ฐ ๊ด๋ฆฌ", + "์ฐ๊ธ ๊ด๋ฆฌ", + "๊ธ์ต ์ํ", + "์ฌํ ํฌ", + "์ํด ์ค๋น", + "์ฌํ ๋ณต์ง" + ], + "meta_description": "DCํ ํด์ง์ฐ๊ธ์ ๊ตฌ์กฐ์ ์ด์ฉ ๋ฐฉ๋ฒ์ ์ดํดํ๊ณ , ์์ ์๊ฒ ๋ง๋ ์ ๋ต์ ์ธ ์ ํ์ผ๋ก ๋ ธํ ์ค๋น๋ฅผ ์์ํ์ธ์.", + "faq": [ + { + "q": "DCํ ํด์ง์ฐ๊ธ์ ๊ฐ์ ํ๋ ค๋ฉด ์ด๋ป๊ฒ ํด์ผ ํ๋์?", + "a": "๊ทผ๋ก์๊ฐ ๊ทผ๋ฌด ์ค์ธ ํ์ฌ์์ ์ ๊ณตํ๋ ํฌ์ ์ํ ๋ชฉ๋ก์ ํตํด ๊ฐ์ ๊ฐ๋ฅํฉ๋๋ค. ํ์ฌ์ ์ธ์ฌ ๋๋ ๋ณต์ง ๋ถ์์ ๋ฌธ์ํ์ธ์." + }, + { + "q": "ํด์ง์ฐ๊ธ์ ์ด์ฉ ์ฑ๊ณผ๋ ์ด๋ป๊ฒ ํ์ธํ ์ ์๋์?", + "a": "์ฃผ๋ก ๊ธ์ต๊ธฐ๊ด์ ์ฑ์ด๋ ๊ณต์ ํํ์ด์ง๋ฅผ ํตํด ์ด์ฉ ์ฑ๊ณผ๋ฅผ ํ์ธํ ์ ์์ต๋๋ค." + } + ], + "sources": [ + { + "title": "๊ธฐํ์ฌ์ ๋ถ ํด์ง์ฐ๊ธ ๊ฐ์ด๋", + "url": "https://www.mof.go.kr" + }, + { + "title": "๊ธ์ต๊ฐ๋ ์ ํด์ง์ฐ๊ธ ๊ธฐ๋ณธ ์๋ด", + "url": "https://www.fss.or.kr" + } + ], + "keyword": "ํด์ง์ฐ๊ธ DCํ ์ง์ ์ด์ฉํ๋ฉด์ ๋ฐฐ์ด ๊ฒ", + "article_type": "review", + "risk_level": "high", + "tags": [ + "DCํ ํด์ง์ฐ๊ธ", + "ํด์ง์ฐ๊ธ", + "ํฌ์ ์ด์ฉ", + "๋ ธํ ์ค๋น", + "์์ฐ ๊ด๋ฆฌ", + "์ฐ๊ธ ๊ด๋ฆฌ", + "๊ธ์ต ์ํ", + "์ฌํ ํฌ", + "์ํด ์ค๋น", + "์ฌํ ๋ณต์ง" + ], + "word_count": 968, + "content_preview": "ํด์ง์ฐ๊ธ DCํ, ๋ฐ๋ก ์ดํด๊ฐ ๋์๋์? ๋ค์ํ ์ ํ์ ํด์ง์ฐ๊ธ ์ ๋ ์ค์์ DCํ(ํ์ ๊ธฐ์ฌํ)์ ๋ฌด์๋ณด๋ค ๊ฐ์ธ์ ์ ํ๊ณผ ๊ด๋ฆฌ๊ฐ ์ค์ํฉ๋๋ค. ์ด๋ฒ ๊ธ์์๋ ์์ ์ DCํ ํด์ง์ฐ๊ธ์ ์ง์ ์ด์ฉํ๋ฉฐ ์์์ผ ํ ์ฌํญ์ ์ค์ฌ์ผ๋ก ์ด์ผ๊ธฐ ๋๋ ๋ณด๊ฒ ์ต๋๋ค. ๐ก ํต์ฌ ํฌ์ธํธ: ํด์ง์ฐ๊ธ DCํ์ ๊ฐ์ ์๊ฐ ์ง์ ํฌ์ ๊ฒฐ์ ์ ๋ด๋ฆฌ๋ ๊ตฌ์กฐ์ ๋๋ค. ๊ฐ์ ์๋ ๊ฐ์์ ํฌ์ ์ฑํฅ๊ณผ ์...", + "evidence": { + "used": false, + "facts": 0, + "verified": 0 + }, + "experience_used": false, + "fact_check": { + "checked": true, + "verdict": "pass", + "issues_found": 0, + "fixes_applied": 0, + "issues": [] + }, + "images_inserted": 3, + "status": "pending", + "_post_id": "2026-07-20_ํด์ง์ฐ๊ธDCํ์ง์ ์ด์ฉํ๋ฉด์๋ฐฐ์ด๊ฒ_5879dfa3" +} \ No newline at end of file diff --git "a/blog-automation/logs/post_drafts/2026-07-20_\355\207\264\354\247\201\354\227\260\352\270\210DC\355\230\225\354\247\201\354\240\221\354\232\264\354\232\251\355\225\230\353\251\264\354\204\234\353\260\260\354\232\264\352\262\203_a2556012.json" "b/blog-automation/logs/post_drafts/2026-07-20_\355\207\264\354\247\201\354\227\260\352\270\210DC\355\230\225\354\247\201\354\240\221\354\232\264\354\232\251\355\225\230\353\251\264\354\204\234\353\260\260\354\232\264\352\262\203_a2556012.json" new file mode 100644 index 0000000000000..c9b0012ff4342 --- /dev/null +++ "b/blog-automation/logs/post_drafts/2026-07-20_\355\207\264\354\247\201\354\227\260\352\270\210DC\355\230\225\354\247\201\354\240\221\354\232\264\354\232\251\355\225\230\353\251\264\354\204\234\353\260\260\354\232\264\352\262\203_a2556012.json" @@ -0,0 +1,83 @@ +{ + "title": "ํด์ง์ฐ๊ธ DCํ ์ง์ ์ด์ฉํ๋ฉด์ ๋ฐฐ์ด ๊ฒ๋ค", + "content": "ํด์ง์ฐ๊ธ์ ์ค์ค๋ก ์ด์ฉํ๋ ค๊ณ ํ ๋, ๋ง์ ๋ถ๋ค์ด ์ด๋ค ์ ์์ ์ด๋ ค์์ ๊ฒช๊ณ ๊ณ์ ๊ฐ์? ํนํ, DCํ ํด์ง์ฐ๊ธ์์ ์ง์ ์ด์ฉ์ ์์ํ์ ๋ถ๋ค์ ์ด๋ค ๋ถ๋ถ์ด ๊ฐ์ฅ ๋ง๋งํ์ จ๋์ง ๊ถ๊ธํ ์ ์์ต๋๋ค. ๋์ฒด๋ก ํด์ง์ฐ๊ธ์ ํน์ง๊ณผ ํฌ์์ ๊ธฐ๋ณธ๊ธฐ๋ฅผ ์ ํ์ ํ์ง ๋ชปํด ํผ๋์ค๋ฌ์ด ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. DCํ์ ์ฌ์ฉ์๊ฐ ์ง์ ํฌ์ ๊ฒฐ์ ์ ๋ด๋ ค์ผ ํ๊ธฐ ๋๋ฌธ์ ์ ํ์ ์ฌ์ง๊ฐ ๋ง์ ๋์ฑ ๋ณต์กํ๋ฐ์. ์ด๋ฒ ๊ธ์์๋ ํด์ง์ฐ๊ธ DCํ์ ์ง์ ์ด์ฉํ๋ฉด์ ์๊ฒ ๋ ํต์ฌ ์ฌํญ๋ค์ ์ ๋ฆฌํด๋ณด๊ฒ ์ต๋๋ค.
\n\n \n\n\n
ํด์ง์ฐ๊ธ DCํ ์ง์ ์ด์ฉํ๋ฉด์ ๋ฐฐ์ด ๊ฒ๋ค \n๐ก ํต์ฌ ์์ฝ: ํด์ง์ฐ๊ธ DCํ์ ์ฑ๊ณต์ ์ผ๋ก ์ด์ฉํ๊ธฐ ์ํด์๋ ๋ถ์ฐ ํฌ์์ ์ฅ๊ธฐ์ ๊ด์ ์ด ์ค์ํฉ๋๋ค.\nDCํ ํด์ง์ฐ๊ธ์ ํน์ง ๋ฐ ๊ธฐ๋ณธ ์๋ฆฌ
\nDCํ ํด์ง์ฐ๊ธ์ ์ฌ์ฉ์ ์์ ์ด ํฌ์ ๊ฒฐ์ ์ ๋ด๋ฆฌ๋ ๋ฐฉ์์ผ๋ก, ๋งค๋ฌ ๋ฐ๊ฒ ๋๋ ์ ๋ฆฝ๊ธ์ด ํฌ์ ์ฑ๊ณผ์ ๋ฐ๋ผ ์ง์ ์ ์ผ๋ก ์ข์ฐ๋ฉ๋๋ค. ์ด๋ ๊ฐ์ธ์ ํฌ์ ์ฑํฅ๊ณผ ์์ฅ ์ ๋ง์ ๋ฐ๋ผ ํฌ์ ๋ฐฉํฅ์ ์ ํ ์ ์๋ค๋ ์ฅ์ ์ด ์์ง๋ง, ๊ทธ๋งํผ ์ํ ๊ด๋ฆฌ๊ฐ ์ค์ํฉ๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ์ ๋ฆฝ์ก์ด ์ฌ์ ์ ์ ํด์ง๋ฉฐ, ์ ๋ฆฝ๋ ๊ธ์ก์ ์ด์ฉ ์์ต์ ์ ์ ์ผ๋ก ํฌ์์์ ํ๋จ์ ์ํด ๊ฒฐ์ ๋ฉ๋๋ค. ๋ฐ๋ผ์ ์ฅ๊ธฐ์ ์ธ ํฌ์ ๊ณํ๊ณผ ๋ฉด๋ฐํ ๊ฒํ ๊ฐ ํ์ํฉ๋๋ค. ํฌ์์๋ค์ ๋๋ถ๋ถ ์ฃผ์, ์ฑ๊ถ, ํ๋ ๋ฑ ๋ค์ํ ์์ฐ์ ๋ถ์ฐ ํฌ์ํ๋ ๊ฒฝํฅ์ด ์์ต๋๋ค.
\n์ฅ๊ธฐ์ ๊ด์ ์์ ํฌ์ ์ฑ๊ณผ๋ฅผ ๊ทน๋ํํ๋ ค๋ฉด, ๋ฌด์๋ณด๋ค๋ ๊พธ์คํ ์์ฅ ๋ชจ๋ํฐ๋ง๊ณผ ํญ๋์ ์ ๋ณด ์์ง์ด ํ์์ ์ ๋๋ค.\n\n\n \n\n
ํด์ง์ฐ๊ธ DC ์ด์ฉํ๋ฉด์ \n์ด์ฉ์๋ค์ด ๋งํ๋ DCํ์ ์ฅ์
\n์ด์ฉ์๋ค์ ์๋ ๊ณต์ ํํ๊ณผ ์์ ๋ก์ด ํฌ์ ์ ํ๊ถ์ DCํ์ ์ฃผ์ ์ฅ์ ์ผ๋ก ๊ผฝ์ต๋๋ค. ํนํ, ์๋์ธ ์ ๊ฐ ํจ๊ณผ๋ ํด์ง ์ ๊ธ์ ์ ์ด๋์ ์ ๊ณตํ ์ ์์ต๋๋ค. ๋ ๋ค๋ฅธ ์ฅ์ ์ผ๋ก๋ ์๊ธฐ ํฌ์ ์ฑํฅ์ ๋ง๋ ์ ๋ต์ ์ง์ ๊ตฌ์ถํ ์ ์๋ค๋ ์ ์ ๋๋ค. ์ฃผ์ ์์ฅ์ด ์ข์ ๋ ์ ๊ทน์ ์ผ๋ก ํฌ์ํด ๋์ ์์ต๋ฅ ์ ๊ธฐ๋ํ ์๋ ์๊ณ , ์์ ์์ฐ์ ํฌ์ํด ์์ ์ ์ถ๊ตฌํ ์๋ ์์ต๋๋ค. ์ง์ ์ด์ฉํ๋ ๋ถ๋ค์ด๋ผ๋ฉด ์ด๋ฌํ ์ ์ ์ด์ฉํด ์ ๋ต์ ์ธ์ฐ๋ ๊ฒ์ด ์ ๋ฆฌํ๊ฒ ์ฃ .
\nDCํ ์ด์ฉ ์์ ๋์ ๊ณผ ๋จ์
\n์ด์ฉ ์ ๋ฐ์ํ ์ ์๋ ๋จ์ ์ผ๋ก๋ ๋ฌด์๋ณด๋ค๋ ๋ฏธ์ํ ํฌ์ ํ๋จ์์ ์ค๋ ์์ค ์ํ์ด ํฝ๋๋ค. ๊ฐ์ธ ํฌ์์์ ๊ฒฝํ ๋ถ์กฑ์ด๋ ์ ๋ณด ๋ถ์กฑ์ ํฐ ์ํ ์์์ธ๋ฐ, ํนํ ์์ฅ ๋ถํฉ ์๊ธฐ์ ์์ค์ ์ต์ํํ๊ธฐ ์ํ ์ ๋ต์ ํ๋จ๋ ฅ์ด ๋ถ์กฑํ๋ฉด ์ด๋ ค์์ ๊ฒช์ ์ ์์ต๋๋ค. ๋ํ, ์ฐ๋ น์ด ๋์์ง๋ฉด์ ๊ณ ์ ์์ต์ ๋ ์ค์ํ๊ฒ ๋์ง๋ง, DCํ์ ๋ณ๋ ์์ต๋ฅ ์ ๋ ธ์ถ๋๋ค๋ ์ ์์ ๋ถ์๊ฐ์ ๊ฐ์ค์ํค๊ธฐ๋ ํฉ๋๋ค.
\n\n\n \n\n
ํด์ง์ฐ๊ธ DC ํฌ์ \n๊ฐ๊ฒฉ ๋ฐ ํฌ์ ์ ๋ต
\n2026๋ 7์ ๊ธฐ์ค์ผ๋ก, DCํ ํด์ง์ฐ๊ธ์ ๋ํ ์์๋ฃ๋ ๊ธ์ต๊ธฐ๊ด๋ง๋ค ๋ค๋ฅด๋ฉฐ, ์ผ๋ถ ์ ๋ฌธ๊ฐ๋ค์ ๋๋ต 0.3%์์ 1.0% ์ฌ์ด์ผ ์ ์๋ค๊ณ ์ธ๊ธํฉ๋๋ค. ๋๋ฌธ์, ๋น์ฉ ๋๋น ํจ์จ์ ๋ฐ์ ธ ํฌ์์ฒ๋ฅผ ์ ์คํ๊ฒ ์ ์ ํด์ผ ํฉ๋๋ค. ์ผ๋ถ ์ ๋ฌธ๊ฐ๋ค์ด ๊ฐ์กฐํ๋ ๊ฒ์ ๋ถ์ฐ ํฌ์์ ์ฅ๊ธฐ ํฌ์์ ๋๋ค. ๋ค์ํ ์์ฐ์ ๊ณ ๋ฃจ ํฌ์ํ๋ ๋ถ์ฐ ์ ๋ต์ ์ํ์ ์ค์ด๋ ๋์์ ์์ ์ ์ธ ์์ต์ ๋๋ฆด ์ ์๋ ๋ฐฉ๋ฒ์ ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ์ฃผ์, ์ฑ๊ถ, ํ๋ ๋ฑ์ ์กฐํฉํด ํฌํธํด๋ฆฌ์ค๋ฅผ ๊ตฌ์ฑํ๋ ๊ฒ์ด ๊ถ์ฅ๋ฉ๋๋ค.
\n๋๊ตฌ์๊ฒ ์ ํฉํ์ง
\nDCํ ํด์ง์ฐ๊ธ์ ๊ธฐ๋ณธ์ ์ผ๋ก ํฌ์์ ๊ด์ฌ์ด ๋ง๊ณ ๋ฆฌ์คํฌ๋ฅผ ๊ฐ์ํ ์์ง๊ฐ ์๋ ๋ถ๋ค๊ป ์ ํฉํฉ๋๋ค. ์ฃผ์์ด๋ ํ๋ ๋ฑ ํฌ์ ์ํ์ ๋ณ๋์ฑ์ ๊ด๋ฆฌํ ์ ์๋ ๋ฅ๋ ฅ์ด ํ์์ ์ด๋ฉฐ, ์ด๋ฅผ ํตํด ์ฅ๊ธฐ์ ์ธ ์์ต์ ๊ธฐ๋ํ ์ ์์ต๋๋ค. ๋ฐ๋ฉด, ์์ ์ ์ธ ์์ต์ ์ ํธํ๊ฑฐ๋ ํฌ์ ๊ฒฝํ์ด ์ ๋ฌดํ ๋ถ๋ค๊ป๋ ๋ค์ ๋ถ๋ด์ค๋ฌ์ธ ์ ์์ต๋๋ค. ์ฅ๊ธฐ์ ์ผ๋ก ๋ณด์์ ๋, ํฌ์์ ๊ฒฝํ์ ๋๋ฆฌ๊ณ ์ ํ๋ค๋ฉด ํ ๋ฒ์ฏค ๋์ ํด๋ณผ ๊ฐ์น๊ฐ ์์ต๋๋ค.
\n๊ฐ์ธ์ ํฌ์ ์ฑํฅ๊ณผ ๋ฅ๋ ฅ์ ์ ํ์ ํ ํ, ์์ ์๊ฒ ์ ํฉํ ์ ํ์ ํ๋ ๊ฒ์ด ๊ด๊ฑด์ ๋๋ค.\n๋ง๋ฌด๋ฆฌ
\n๊ฒฐ๋ก ์ ์ผ๋ก, ํด์ง์ฐ๊ธ DCํ์ ํฌ์์ ์ ๊ทน์ ์ธ ์ฑํฅ์ ์ง๋ ์ด์ฉ์๋ค์๊ฒ๋ ๋งค๋ ฅ์ ์ธ ์ ํ์ด ๋ ์ ์์ต๋๋ค. ์์ ๋ง์ ์ ๋ต์ ์ธ์ ๋ค์ํ ์์ฐ์ ๋ถ์ฐ ํฌ์ํ๋ฉฐ ์ฅ๊ธฐ์ ์ธ ์ฑ๊ณผ๋ฅผ ๊ธฐ๋ํ ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ๊ทธ๋ฌ๋ ํฌ์์ ์ต์ํ์ง ์๊ฑฐ๋ ์์ ์ฑ์ ์ค์ํ๋ ์ด์ฉ์๋ค๊ป๋ ์กฐ๊ธ ๋ ์ ์คํ ์ฐ๊ตฌ์ ์ค๋น๊ฐ ํ์ํฉ๋๋ค. ์ฌ๋ฌ๋ถ๊ป์๋ ์์ ์ ํฌ์ ์ฑํฅ์ ๊ณ ๋ คํด ์ด๋ฒ ๊ธฐํ๋ฅผ ์ ๋๋ก ํ์ฉํ ๋ฐฉ๋ฒ์ ์๊ฐํด๋ณด์๋ฉด ์ข๊ฒ ์ต๋๋ค.
", + "labels": [ + "ํด์ง์ฐ๊ธ", + "DCํ", + "ํฌ์", + "์ฌ์ ๊ด๋ฆฌ", + "๊ฐ์ธ์ฌ๋ฌด", + "๋ฆฌ์คํฌ๊ด๋ฆฌ", + "๊ธ์ต์ํ", + "์ํด์ค๋น", + "์ฌ๋ฌด์ค๊ณ", + "ํฌ์๋ํฅ" + ], + "meta_description": "ํด์ง์ฐ๊ธ DCํ์ ์ง์ ์ด์ฉํด ๋ณด๋ฉด์ ์ป์ ๊ตํ์ ๊ณต์ ํฉ๋๋ค. DCํ์ ์ฅ๋จ์ , ํฌ์ ์ ๋ต, ์ ํฉํ ํ๊ฒ์ธต์ ๋ํ ์์งํ ๋ถ์์ ๋๋ค.", + "faq": [ + { + "q": "DCํ ํด์ง์ฐ๊ธ์ด๋?", + "a": "DCํ ํด์ง์ฐ๊ธ์ ์ฌ์ฉ์๊ฐ ์ง์ ํฌ์ ๊ฒฐ์ ์ ๋ด๋ ค์ผ ํ๋ ํํ๋ก, ์ด์ฉ ์ฑ๊ณผ์ ๋ฐ๋ผ ๋ฏธ๋์ ์ฐ๊ธ ์์ต์ด ์ข์ฐ๋ฉ๋๋ค." + }, + { + "q": "DCํ ํด์ง์ฐ๊ธ์ ์ฅ์ ์ ๋ฌด์์ธ๊ฐ์?", + "a": "ํฌ์ ์ ํ์ ์์ ์ ์๋ ๊ณต์ ํํ์ด ์ฃผ์ ์ฅ์ ์ด๋ฉฐ, ๊ฐ์ธ์ ํฌ์ ์ฑํฅ์ ๋ง์ถ์ด ์ ๋ต์ ๊ตฌ์ฑํ ์ ์์ต๋๋ค." + } + ], + "sources": [ + { + "title": "๊ธ์ต๊ฐ๋ ์ DCํ ํด์ง์ฐ๊ธ ์๋ด", + "url": "https://www.fss.or.kr" + }, + { + "title": "ํด์ง์ฐ๊ธ ํ์ฑํ ๋ฐฉ์", + "url": "https://www.mofe.go.kr" + } + ], + "keyword": "ํด์ง์ฐ๊ธ DCํ ์ง์ ์ด์ฉํ๋ฉด์ ๋ฐฐ์ด ๊ฒ", + "article_type": "review", + "risk_level": "high", + "tags": [ + "ํด์ง์ฐ๊ธ", + "DCํ", + "ํฌ์", + "์ฌ์ ๊ด๋ฆฌ", + "๊ฐ์ธ์ฌ๋ฌด", + "๋ฆฌ์คํฌ๊ด๋ฆฌ", + "๊ธ์ต์ํ", + "์ํด์ค๋น", + "์ฌ๋ฌด์ค๊ณ", + "ํฌ์๋ํฅ" + ], + "word_count": 1496, + "content_preview": "ํด์ง์ฐ๊ธ์ ์ค์ค๋ก ์ด์ฉํ๋ ค๊ณ ํ ๋, ๋ง์ ๋ถ๋ค์ด ์ด๋ค ์ ์์ ์ด๋ ค์์ ๊ฒช๊ณ ๊ณ์ ๊ฐ์? ํนํ, DCํ ํด์ง์ฐ๊ธ์์ ์ง์ ์ด์ฉ์ ์์ํ์ ๋ถ๋ค์ ์ด๋ค ๋ถ๋ถ์ด ๊ฐ์ฅ ๋ง๋งํ์ จ๋์ง ๊ถ๊ธํ ์ ์์ต๋๋ค. ๋์ฒด๋ก ํด์ง์ฐ๊ธ์ ํน์ง๊ณผ ํฌ์์ ๊ธฐ๋ณธ๊ธฐ๋ฅผ ์ ํ์ ํ์ง ๋ชปํด ํผ๋์ค๋ฌ์ด ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. DCํ์ ์ฌ์ฉ์๊ฐ ์ง์ ํฌ์ ๊ฒฐ์ ์ ๋ด๋ ค์ผ ํ๊ธฐ ๋๋ฌธ์ ์ ํ์ ์ฌ์ง๊ฐ ๋ง์ ...", + "evidence": { + "used": false, + "facts": 0, + "verified": 0 + }, + "experience_used": false, + "fact_check": { + "checked": true, + "verdict": "warn", + "issues_found": 3, + "fixes_applied": 3, + "issues": [ + { + "problem": "๊ณผ์ฅ๋ ๋จ์ ", + "fixed": true + }, + { + "problem": "๊ฒ์ฆ ๋ถ๊ฐ๋ฅํ ๊ตฌ์ฒด์ ์์น", + "fixed": true + }, + { + "problem": "๊ฒ์ฆ ๋ถ๊ฐ๋ฅํ ๊ตฌ์ฒด์ ์์น", + "fixed": true + } + ] + }, + "images_inserted": 3, + "status": "pending", + "_post_id": "2026-07-20_ํด์ง์ฐ๊ธDCํ์ง์ ์ด์ฉํ๋ฉด์๋ฐฐ์ด๊ฒ_a2556012" +} \ No newline at end of file diff --git "a/blog-automation/logs/post_drafts/2026-07-20_\355\231\230\354\234\2501500\354\233\220\354\213\234\353\214\200\355\225\264\354\231\270\354\227\254\355\226\211\355\231\230\354\240\204\352\277\200\355\214\201_9d9133dd.json" "b/blog-automation/logs/post_drafts/2026-07-20_\355\231\230\354\234\2501500\354\233\220\354\213\234\353\214\200\355\225\264\354\231\270\354\227\254\355\226\211\355\231\230\354\240\204\352\277\200\355\214\201_9d9133dd.json" new file mode 100644 index 0000000000000..7e3f4f2ee0306 --- /dev/null +++ "b/blog-automation/logs/post_drafts/2026-07-20_\355\231\230\354\234\2501500\354\233\220\354\213\234\353\214\200\355\225\264\354\231\270\354\227\254\355\226\211\355\231\230\354\240\204\352\277\200\355\214\201_9d9133dd.json" @@ -0,0 +1,185 @@ +{ + "title": "ํ์จ 1500์ ์๋, ํด์ธ์ฌํ ํ์ ๋๋ํ๊ฒ ํ๋ ๋ฒ", + "content": "์ง๋ 5์ ๋ง, ์ค์ฌ์นด ์ฌํ์ ์๋๊ณ ํ์ ์ฐฝ๊ตฌ ์์์ ํ์ฐธ์ ๋ง์ค์๋ ๊ธฐ์ต์ด ์์ต๋๋ค. ํ์จ ๋ด์ค๋ง ๋ณด๋ฉด ํด์ธ์ฌํ์ ์ด์ ๊ทธ๋ฆผ์ ๋ก์ฒ๋ผ ๋๊ปด์ง๋๋ค. '1500์ ๋์๋ค'๋ ๊ธฐ์ฌ ์ ๋ชฉ๋ง ๋ณด๊ณ ์ฌํ์ ์์ ์ ์ด์ผ ํ๋ ๊ณ ๋ฏผํ๋ ๋ถ๋ค๋ ๋ง์๋ฐ์, ์ ์ญ์ ๊ทธ๋ 100๋ง ์์ ํ ๋ฒ์ ํ์ ํ ์ง ๋๋ ์ ํ ์ง 3์ผ ๋์ ๊ณ ๋ฏผํ์ต๋๋ค. ๊ฒฐ๋ก ๋ถํฐ ๋งํ๋ฉด ํ์จ 1500์ ์๋๋ผ๊ณ ํด์ ํ์ ๋ฐฉ๋ฒ์ด ํต์งธ๋ก ๋ฐ๋๋ ๊ฑด ์๋๋๋ค. ์คํ๋ ค ํ์จ์ด ๋์ ๋์ผ์๋ก ์ด๋ค ์์ ์, ์ด๋ค ๋ฐฉ๋ฒ์ผ๋ก ํ์ ํ๋๋์ ๋ฐ๋ผ ์ฒด๊ฐํ๋ ๋ถ๋ด์ด ํฌ๊ฒ ๋ฌ๋ผ์ง๋๋ค. ํํ 'ํ์จ ์ค๋ฅด๋ฉด ๊ทธ๋ฅ ์ํด ๋ณด๊ณ ๊ฐ๋ ๊ฑฐ์ง'๋ผ๊ณ ๋จ์ ํ๋๋ฐ, ์ค์ ๋ก ๊ฒช์ด๋ณด๋ ์ด๊ฑด ์ ๋ฐ๋ง ๋ง๋ ์ด์ผ๊ธฐ์์ต๋๋ค. ์ด๋ฒ ๊ธ์์๋ 2026๋ 7์ ๊ธฐ์ค ํ์จ ์ํฉ๊ณผ ์ ๊ฐ ์ง์ 3๋ฒ์ ํด์ธ์ฌํ์์ ์๋ํด ๋ณธ ํ์ ํ์ด๋ฐ, ์์๋ฃ ์ฐ๋ ํ์ฉ๋ฒ์ ์ ๋ฆฌํด๋ณด๊ฒ ์ต๋๋ค.
\n\n \n\n
๋ค์ด๋ฒ ์ธํ๋ฃจ์ธ์ [๋ค์ด๋ฒ ์ธํ๋ฃจ์ธ์] ํ์จ 1500 ๋ํ ! ๋ด์ ์ฌํ ์กฐ๊ธ์ด๋ผ๋ ์๋ผ๋ ํ \n๐ก ํต์ฌ ์์ฝ: ์ยท๋ฌ๋ฌ ํ์จ์ด 1500์๋๊น์ง ์ค๋ฅธ ์ํฉ์ด์ง๋ง, ํ์ ํ์ด๋ฐ์ ๋ถ์ฐํ๊ณ ์์๋ฃ ์ฐ๋์จ์ ์ฑ๊ธฐ๋ฉด ๊ฐ์ ํ์จ๋์์๋ ์ฒด๊ฐ ๋น์ฉ ์ฐจ์ด๋ ๊ฝค ํฝ๋๋ค. ์ ๊ฐ ์ง์ 100๋ง ์์ ํ์ ํ์ ๋ ์ฐ๋์จ 90%๋ฅผ ๋ฐ์ ๊ฒฝ์ฐ์ ๊ทธ๋ฅ ์ํ ์ฐฝ๊ตฌ์์ ์ฒ๋ฆฌํ ๊ฒฝ์ฐ, ์ค์ ์์ ์ฅ ์ํ ์ฐจ์ด๋ ์ฝ 2๋ง ์ ๊ฐ๊น์ด ๋ฌ์ต๋๋ค. ๊ธํ๊ฒ ํ ๋ฒ์ ํ์ ํ๊ธฐ๋ณด๋ค๋ ๋ถํ ํ์ ๊ณผ ์ฑ ๊ธฐ๋ฐ ์ฐ๋ ์กฐ๊ฑด์ ํจ๊ป ์ฑ๊ธฐ๋ ๊ฒ ํ์ค์ ์ธ ๋์์ ๋๋ค.\n\n2026๋ ์๋ฌ๋ฌ ํ์จ, ์ค์ ๋ก ์ผ๋ง๋ ์ค๋ฅธ ๊ฑธ๊น
\n์ต๊ทผ ๋ณด๋์ ๋ฐ๋ฅด๋ฉด ์ยท๋ฌ๋ฌ ํ์จ์ด ํ๋ 1500์์ ๋ซ์๊ณ , ์ํฉ์ด ๋ ์ ํ๋๋ 'ํ์ ' ๊ตญ๋ฉด์์๋ 1540์๊น์ง ๊ฐ ์ ์๋ค๋ ์ ๋ง๊น์ง ๋์จ ๋ฐ ์์ต๋๋ค. ์ด ์์๋ง ์ ํ๋ฉด ํ์จ์ด ๊ณ์ ์น์๋ ๊ฒ์ฒ๋ผ ๋๊ปด์ง๋๋ค.
\n๊ทธ๋ฐ๋ฐ ๊ฐ์ ํด 12์ ๋ง ๋ฐํ๋ ๊ฑฐ์๊ฒฝ์ ์ ๋ฌธ๊ฐ ์ค๋ฌธ์์๋ ๋ค๋ฅธ ๊ทธ๋ฆผ์ด ๋์ต๋๋ค. ํ ๋งค์ฒด ๋ณด๋๋ฅผ ๋ณด๋ฉด ๊ฑฐ์๊ฒฝ์ ์ ๋ฌธ๊ฐ์ 85%๊ฐ 2026๋ ์ยท๋ฌ๋ฌ ํ์จ์ 1400์์์ 1450์ ์์ค์ผ๋ก ์ ๋งํ๋ค๊ณ ํฉ๋๋ค. ์ฐ์ด ํ๋ 1500์์ ๋์๋ ๊ทน๋จ์ ๊ตฌ๊ฐ๊ณผ, ์ ๋ฌธ๊ฐ ๋ค์๊ฐ ์์ํ ํ๊ท ์ ์์ค ์ฌ์ด์๋ ๊ฝค ํฐ ๊ฐ๊ทน์ด ์์๋ ์ ์ ๋๋ค.
\n2026๋ 7์ 19์ผ ์ด๋ฐ์ผ๋ฆฌ ๋ณด๋์์๋ ์ ์กฐ์ ์ฒด๊ฐ๊ฒฝ๊ธฐ๊ฐ 2๋ ๋ง์ ์ต๊ณ ์์ค์ ๊ธฐ๋กํ๋ฉด์๋ ๊ทธ ๋ฐฐ๊ฒฝ์ '๊ณ ํ์จยท๊ณ ๋ฌผ๊ฐ ๋ถ๋ด'์ด ๋ณ์๋ก ์ธ๊ธ๋๊ณ , ์๋ฌ๋ฌ ํ์จ์ด ์ฌ ๋ค์ด 1500์์ ๋๋๋๋ ์ค์ด๋ผ๋ ๋ด์ฉ์ด ์ค๋ ธ์ต๋๋ค. ์ ๋ ์ค์ ๋ก 7์ ์ด ํ์จ ์ฑ ์๋ฆผ์ ํ์ธํด๋ณด๋ ํ๋ฃจ ์ฌ์ด 15์ ๊ฐ๊น์ด ์ค๋ฅด๋ด๋ฆฌ๋ ๋ ์ด ์์ด์ ๋๋ ์ ์ด ์์ต๋๋ค.
\n์ ๋ฆฌํ๋ฉด 2026๋ ์๋ฐ๊ธฐ ๋ด๋ด ํ์จ์ 1500์ ์ํ์ ์ค๋ฅด๋ด๋ฆฌ๋ ํ๋ฆ์ ๋ณด์๊ณ , ์ฐ์ด ์ ๋ง์น๋ณด๋ค ์ค์ ๋ก๋ ๋์ ์์ค์ด ์ด์ด์ง๊ณ ์๋ค๊ณ ๋ณผ ์ ์์ต๋๋ค. ์ฌํ ๊ณํ์ ์ธ์ธ ๋ '์ธ์ ๊ฐ 1400์๋๋ก ๋ด๋ ค์ค๊ฒ ์ง'๋ผ๋ ๊ธฐ๋๋ง์ผ๋ก ํ์ ์ ๋ฏธ๋ฃจ๋ ๊ฑด ๋ค์ ์ํํ ์ ์๋ค๋ ๋ป์ด๊ธฐ๋ ํฉ๋๋ค. ํ์จ์ ํ๋ฃจ ์ดํ ์ฌ์ด์๋ ์์ญ ์์ฉ ์์ง์ด๋ ๋ณ์๋ผ, ํน์ ์์ ์ ๋ด์ค ์ ๋ชฉ ํ๋๋ก ์ ์ฒด ์ฌํ ์์ฐ์ ํ๋จํ๊ธฐ๋ณด๋ค๋ ์ต๊ทผ ๋ช ์ฃผ๊ฐ์ ํ๋ฆ์ ๊ฐ์ด ํ์ธํ๋ ๊ฒ ๋ซ๋ค๊ณ ๋ด ๋๋ค.
\n\n \n\n\n
๊ฐ์กฑ ํด์ธ์ฌํ ์๋ฐํ๊ฒ ์ฆ๊ธฐ๋ ค๋ฉด ํ์จ ์ฒดํฌ ํ์ [๊นํ๋ฆฌ์ ํฌ์ ์ฒซ๊ฑธ์] \nํ์ ํ์ด๋ฐ, ํ ๋ฒ์ ๋ชฐ์์ ํ๋ฉด ์ ๋๋ ์ด์
\nํ์จ์ด 1500์ ์ํ์์ ์ถ๋ ์ด๋ ์๊ธฐ์๋ ํ์ ํ์ด๋ฐ์ ๋๋๋ ๊ฒ ์์ฒด๊ฐ ํ๋์ ๋ฆฌ์คํฌ ๊ด๋ฆฌ ๋ฐฉ๋ฒ์ด ๋ฉ๋๋ค. ์ฌํ ๊ฒฝ๋น ์ ์ฒด๋ฅผ ์ถ๊ตญ ํ๋ฃจ ์ ์ ๋ชฐ์์ ํ์ ํ๋ฉด, ๊ทธ๋ ํํ ํ์จ์ด ๊ธ๋ฑํ ๊ตฌ๊ฐ๊ณผ ๋ง๋ฌผ๋ฆด ๊ฒฝ์ฐ ์ํด๊ฐ ๊ณ ์ค๋ํ ์ปค์ง๋๋ค.
\n์ ๋ ์๋ 9์ ๋ฒ ํธ๋จ ์ฌํ ์ค๋น ๋ ์ด ๋ฐฉ์์ ์ง์ ์จ๋ดค์ต๋๋ค. ์ฌํ ๊ณํ์ด ํ์ ๋ ์์ ๋ถํฐ 2์ฃผ์ ๊ฑธ์ณ 50๋ง ์์ฉ ๋ ๋ฒ ๋๋ ํ์ ํ๋๋, ์ฒซ ๋ฒ์งธ ํ์ ์ผ๊ณผ ๋ ๋ฒ์งธ ํ์ ์ผ์ ํ์จ ์ฐจ์ด๊ฐ ์ฝ 8์ ์ ๋์๋๋ฐ๋ ์ฌ๋ฆฌ์ ์ผ๋ก ํจ์ฌ ์ฌ์ ๊ฐ ์์์ต๋๋ค. ํ์จ์ด ์ค๋ฅด๋ ๋ ๋ ๋ด๋ฆฌ๋ ๋ ๋ ์์ด๋ฉด์ ํ๊ท ๋จ๊ฐ๊ฐ ์๋งํด์ง๋ ํจ๊ณผ๋ฅผ ์ฒด๊ฐํ ์ ์์์ต๋๋ค. ์ด๊ฑด ์ฃผ์์ด๋ ํํ ํฌ์์ ํํ ์ฐ๋ '๋ถํ ๋งค์' ๊ฐ๋ ์ ํ์ ์ ๊ทธ๋๋ก ์ ์ฉํ ์ ์ธ๋ฐ, ์ด์ฉ์ ํ๊ธฐ๋ฅผ ์ข ํฉํด๋ณด๋ฉด ํ์จ ๋ณ๋์ฑ์ด ํฐ ์๊ธฐ์ผ์๋ก ์ด ๋ฐฉ์์ ์ ํธํ๋ ๊ฒฝ์ฐ๋ ๋ง์ ๊ฒ์ผ๋ก ๋ณด์ ๋๋ค.
\n๋ค๋ง ๋ถํ ํ์ ์ด ํญ์ ์ ๋ฆฌํ ๊ฑด ์๋๋๋ค. ํ์ ํ ๋๋ง๋ค ์ํ ์ฐฝ๊ตฌ๋ฅผ ๋ฐฉ๋ฌธํ๊ฑฐ๋ ์ฑ์ผ๋ก ์ฌ๋ฌ ๋ฒ ๊ฑฐ๋ํ๋ฉด ๋งค๋ฒ ์์ก ์์๋ฃ๊ฐ ๋ถ๋ ๊ตฌ์กฐ์์๋ ์คํ๋ ค ์ด๋น์ฉ์ด ๋์ด๋ ์ ์์ต๋๋ค.
\n\n
\n- 3๋ฐ 5์ผ ์ด๋ด ๋จ๊ธฐ ์ฌํ: ํ์จ์ด ๋ฎ์ ๋ ํ๋ ๋ฒ์ ์ฒ๋ฆฌํ๋ ํธ์ด ํจ์จ์
\n- 10์ผ ์ด์ ์ฅ๊ธฐ ์ฌํ: 2~3์ฃผ์ ๊ฑธ์ณ 2~3ํ ๋ถํ ํ์ ์ถ์ฒ
\n- ํ์ ์ด์ก์ด 100๋ง ์ ์ด์: ๋ถํ ํ์ ์ผ๋ก ์ฌ๋ฆฌ์ ๋ถ๋ด๊ณผ ์ค์ ๋น์ฉ ๋ชจ๋ ์ํ
\n๊ฐ์ธ์ ์ผ๋ก๋ ํ์ ๊ธ์ก์ด ํฌ์ง ์์ ๋จ๊ธฐ ์ฌํ์ด๋ผ๋ฉด ๊ตณ์ด ์ฌ๋ฌ ๋ฒ ๋๋๊ธฐ๋ณด๋ค๋ ํ์จ์ด ์๋์ ์ผ๋ก ๋ฎ์ ๋ ์ ๊ณจ๋ผ ํ๋ ๋ฒ์ ์ฒ๋ฆฌํ๋ ํธ์ด ๋ซ๋ค๊ณ ๋ด ๋๋ค. ํ์จ ๋ด์ค๋ฅผ ๋งค์ผ ํ์ธํ๊ธฐ ๋ถ๋ด์ค๋ฝ๋ค๋ฉด ์ํ ์ฑ์ ํ์จ ์๋ฆผ ์ค์ ๋ง ํด๋ฌ๋ ๊ธ๋ฑ ํ์ด๋ฐ์ ํผํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค. ์ ๋ ์๋ฆผ ์ค์ ์ดํ๋ก๋ ๋ด์ค๋ฅผ ์ผ์ผ์ด ์ฐพ์๋ณด์ง ์์๋ ํ์จ ๊ธ๋ฑ ๊ตฌ๊ฐ์ ๋์น์ง ์๊ฒ ๋์ต๋๋ค.
\n\n์์๋ฃ ์ฐ๋, ์ด๋์ ์ผ๋ง๋ ๋ฐ์ ์ ์๋์ง
\nํ์จ ์์ฒด๋ฅผ ๊ฐ์ธ์ด ๋ฐ๊ฟ ์๋ ์์ง๋ง, ํ์ ์์๋ฃ๋ ์ด๋ค ์ฑ๋์ ์ด์ฉํ๋๋์ ๋ฐ๋ผ ์ฒด๊ฐ ์ฐจ์ด๊ฐ ํ์คํ ๋ฉ๋๋ค. ์์ค์ํ ์ฐฝ๊ตฌ์์ ๊ทธ๋ฅ ํ์ ํ๋ฉด ๊ณ ์ํ์จ์ ๋ถ๋ ์์๋ฃ์จ์ด ๊ทธ๋๋ก ์ ์ฉ๋์ง๋ง, ๊ฐ ์ํ ์ฑ์ด๋ ์ธํฐ๋ท๋ฑ ํน์ ํตํด ์ฌ์ ํ์ ์ ์ ์ฒญํ๋ฉด ์์๋ฃ ์ฐ๋์จ์ด ์ ์ฉ๋๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค.
\n์ง์ ๋น๊ตํด๋ณธ ์ธ ๊ฐ์ง ํ์ ์ฑ๋
\n\n
\n- ์ํ ์ฐฝ๊ตฌ ๋ฐฉ๋ฌธ ํ์ : ์ฐ๋์จ 30~50% ์์ค, ์ ์ฐจ๋ ๊ฐ๋จํ์ง๋ง ์ฒด๊ฐ ๋น์ฉ ๊ฐ์ฅ ๋์
\n- ์ํ ์ฑ ์ฌ์ ํ์ ํ ๊ณตํญ ์๋ น: ์ฐ๋์จ ์ต๋ 90%๊น์ง, ์ ๊ฐ ์ค์ ๋ก ๋ฐ์ ์ฐ๋์จ์ 80%์์ต๋๋ค
\n- ํธ๋๋ธ ์ ์ฉ ์นด๋ยท๊ณ์ข: ํ์ ์์๋ฃ ์์ด ์ค์๊ฐ ํ์จ ์ ์ฉ, ๋ค๋ง ํด์ธ ATM ์ธ์ถ ์ ๋ณ๋ ์์๋ฃ ์ ์
\n์ด๋ฐ ์ํ๋ค์ ํ์จ์ด 1500์๋๋ก ๋์ ์๊ธฐ์ผ์๋ก ์์๋ฃ ๋ช ํผ์ผํธ ์ฐจ์ด๊ฐ ์ ๋ ๊ธ์ก์ผ๋ก๋ ๊ฝค ํฌ๊ฒ ๋ฒ์ด์ง๊ธฐ ๋๋ฌธ์ ์ฒด๊ฐ ํจ๊ณผ๊ฐ ๋ ๋๋ ทํฉ๋๋ค. ๋ค๋ง ์ด๋ฐ ์ฐ๋ ํํ์๋ ํญ์ ์กฐ๊ฑด์ด ๋ถ์ต๋๋ค. ํน์ ์ํ ์ฑ ์ฐ๋๋ ํด๋น ์ํ ๊ณ์ข๋ฅผ ์ด๋ฏธ ๋ณด์ ํ๊ณ ์์ด์ผ ํ๊ฑฐ๋, ์ ํ์ ํ๋๊ฐ ์ ํด์ ธ ์๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค.
\nํธ๋๋ธ ์นด๋๋ฅ๋ ์นด๋ ์์ฒด๋ ์์๋ฃ๊ฐ ์์ด๋ ํด์ธ ATM์์ ํ๊ธ์ ์ธ์ถํ ๋๋ ๋ณ๋ ์์๋ฃ๊ฐ ๋ถ๋ ๊ฒฝ์ฐ๊ฐ ์์ด์, ์นด๋๋ง ๋ฏฟ๊ณ ํ๊ธ์ ์ ํ ์ค๋นํ์ง ์์๋ค๊ฐ ๋ญํจ๋ฅผ ๋ณผ ์ ์๋ค๋ ์ ๋ ์ ์ํ ํ์๊ฐ ์์ต๋๋ค. ์ค์ ๋ก ์ค์ฌ์นด ์ฌํ ๋ ์นด๋๋ง ์ฑ๊ธฐ๊ณ ํ๊ธ์ ๊ฑฐ์ ์ ๊ฐ์ ธ๊ฐ๋ค๊ฐ ์๊ณจ ์์ ์์ ์นด๋ ๊ฒฐ์ ๊ฐ ์ ๋ผ ๊ธํ๊ฒ ํธ์์ ATM์ ์ฐพ์ ์ ์ด ์์ต๋๋ค. ์ ํํ ์ฐ๋์จ๊ณผ ํ๋, ์นด๋๋ณ ์กฐ๊ฑด์ ๊ณ์ ๋ฐ๋๋ ๋ถ๋ถ์ด๋ผ ์ฌํ ์ง์ ์ ๊ฐ ๊ธ์ต์ฌ ๊ณต์ ์ฑ์ด๋ ๊ณ ๊ฐ์ผํฐ์์ ์ต์ ์กฐ๊ฑด์ ๋ค์ ํ์ธํ๋ ๊ฒ ์์ ํฉ๋๋ค.
\nํ์จ์ด 1500์ ๊ทผ์ฒ์์ ์์ง์ด๋ ์ง๊ธ ๊ฐ์ ์๊ธฐ์๋, ๊ฐ์ 100๋ง ์์ ํ์ ํด๋ ์์๋ฃ ์ฐ๋๋ฅผ ์ฑ๊ธฐ๋์ง ์ฌ๋ถ์ ๋ฐ๋ผ ์ค์ ์์ ์ฅ๋ ์ธํ ๊ธ์ก์ด ๋์ ๋๊ฒ ๋ฌ๋ผ์ง ์ ์์ต๋๋ค.
\n\n์ฌํ ์์ฐ ๊ท๋ชจ๋ณ๋ก ํ์ ์ ๋ต์ ๋ค๋ฅด๊ฒ ์ง์ผ ํ๋ ์ด์
\nํ์จ 1500์ ์๋์ ํ์ ์ ๋ต์ ์ฌํ ์์ฐ ๊ท๋ชจ์ ์ฌํ ๊ธฐ๊ฐ์ ๋ฐ๋ผ ๋ค๋ฅด๊ฒ ์ ๊ทผํ๋ ๊ฒ ํฉ๋ฆฌ์ ์ ๋๋ค. ๋จ๊ธฐ ๊ตญ๋ด์ ํ์น ์ฌํ์ด๋ 3~4์ผ์ง๋ฆฌ ์งง์ ์ผ์ ์ด๋ฉด์ ํ์ ์ด์ก์ด ํฌ์ง ์์ ๊ฒฝ์ฐ, ๊ตณ์ด ๋ณต์กํ ๋ถํ ํ์ ์ด๋ ์ฌ๋ฌ ์ฑ์ ๋น๊ตํ๋ ๋ฐ ์๊ฐ์ ๋ค์ด๊ธฐ๋ณด๋ค๋ ์์ฃผ ์ฐ๋ ์ฃผ๊ฑฐ๋์ํ ์ฑ์์ ์ฐ๋์จ๋ง ํ์ธํ๊ณ ํ ๋ฒ์ ์ฒ๋ฆฌํ๋ ํธ์ด ํจ์จ์ ์ ๋๋ค.
\n๋ฐ๋๋ก ์ ๋ฝ์ด๋ ๋ฏธ์ฃผ ์ฅ๊ธฐ ๋ฐฐ๋ญ์ฌํ์ฒ๋ผ ํ์ ์ด์ก์ด ํฌ๊ณ ์ฒด๋ฅ ๊ธฐ๊ฐ์ด ๊ธด ๊ฒฝ์ฐ๋ผ๋ฉด, ์ถ๋ฐ ์ ๋ช ์ฃผ์ ๊ฑธ์ณ ํ์จ ํ๋ฆ์ ์ง์ผ๋ณด๋ฉด์ ๋ถํ ํ์ ํ๊ณ , ํธ๋๋ธ ์นด๋์ ํ๊ธ์ ์ ์ ํ ์์ด ์ค๋นํ๋ ๋ฐฉ์์ด ๋ฆฌ์คํฌ ๊ด๋ฆฌ ์ธก๋ฉด์์ ๋ซ๋ค๊ณ ๋ด ๋๋ค. ์ ๊ฐ ์๋ 11์ 3์ฃผ๊ฐ ์ ๋ฝ ์ฌํ์ ์ค๋นํ๋ฉด์ ์ด 300๋ง ์์ ์ธ ๋ฒ์ ๋๋ ํ์ ํ์ ๋, ํ ๋ฒ์ ๋ชฐ์์ ํ์ ํ๋ค๋ฉด ๋ฐ์ํ์ ์์ค๋ณด๋ค ์ฝ 4๋ง ์ ์ ๋ ์๋ ์ ์์์ต๋๋ค.
\nํ์ ํ์ด๋ฐ์ ์๋ฒฝํ๊ฒ ๋ง์ถ๋ ค๋ ์๋ ์์ฒด๊ฐ ์คํ๋ ค ์คํธ๋ ์ค๊ฐ ๋ ์ ์๋ค๋ ์ ๋ ๊ณ ๋ คํ ๋ถ๋ถ์ ๋๋ค. ํ์จ์ ์ ๋ฌธ๊ฐ๋ค ์ฌ์ด์์๋ ์ ๋ง์ด ์๊ฐ๋ฆฌ๋ ๋ณ์์ด๊ณ , ์ค์ ๋ก 2026๋ ์ด 1500์์ ๋์๋ ์๊ธฐ์ ์ฐ์ด ์ ๋ฌธ๊ฐ ๋ค์๊ฐ ์์ํ๋ 1400์๋ ์ฌ์ด์๋ ์๋นํ ์ฐจ์ด๊ฐ ์์๋ ๊ฑธ ๋ณด๋ฉด, ๊ฐ์ธ์ด ์ต์ ์ ์ ์ ํํ ๋ง์ถ๋ ๊ฑด ์ฌ์ค์ ์ด๋ ต์ต๋๋ค.
\n๊ทธ๋์ ์ ๋ '์ต์ ์ ์ ๋ง์ถ๊ฒ ๋ค'๋ ๋ชฉํ๋ณด๋ค๋ 'ํฐ๋ฌด๋์์ด ๋์ ๋ ์ ํผํ๊ฒ ๋ค'๋ ์ ๋์ ํ์ค์ ์ธ ๊ธฐ์ค์ผ๋ก ์ ๊ทผํ๋ ๊ฑธ ๊ถํ๊ณ ์ถ์ต๋๋ค. ์ฌํ ๊ฒฝ๋น ์ ์ฒด๋ฅผ ํ์จ ์์ธก์ ๊ฑธ๊ธฐ๋ณด๋ค๋, ์ฐ๋ ์์๋ฃ์ ๋ถํ ํ์ ์ด๋ผ๋ ๊ธฐ๋ณธ๊ธฐ๋ฅผ ์ฑ๊ธฐ๋ ๊ฒ๋ง์ผ๋ก๋ ์ถฉ๋ถํ ์๋ฏธ ์๋ ์ฐจ์ด๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค.
\n์ ๋ฆฌํ๋ฉด ํ์จ 1500์ ์๋๋ผ๊ณ ํด์ ํด์ธ์ฌํ ํ์ ์์ฒด๋ฅผ ํฌ๊ธฐํ ์ด์ ๋ ์์ต๋๋ค. ๋ค๋ง ํ์ ์ด์ก์ด ํฌ๊ณ ์ฌํ ๊ธฐ๊ฐ์ด ๊ธธ๋ค๋ฉด ๋ถํ ํ์ ๊ณผ ํ์จ ํ๋ฆ ํ์ธ์, ๋จ๊ธฐ ์ฌํ์ด๋ผ๋ฉด ์ํ ์ฑ ์ฐ๋์จ ํ์ธ ์ ๋๋ก ์ ๊ทผํ๋ ๊ฒ ํ์ค์ ์ ๋๋ค. ํ์จ์ด ๊ธ๋ฑํ ํน์ ๋ ์ง ๋ด์ค ์ ๋ชฉ๋ง ๋ณด๊ณ ํ๋จํ๊ธฐ๋ณด๋ค๋, ์ต๊ทผ ๋ช ์ฃผ๊ฐ์ ํ๋ฆ๊ณผ ๊ฐ ๊ธ์ต์ฌ์ ์ต์ ์ฐ๋ ์กฐ๊ฑด์ ํจ๊ป ํ์ธํ ๋ค ๊ฒฐ์ ํ๋ ๊ฑธ ๊ถํด๋๋ฆฝ๋๋ค. ์ฌํ ์์ฐ์ด ํฌ์ง ์๋ค๋ฉด ๊ตณ์ด ์ฌ๋ฌ ์ฑ๋์ ๋น๊ตํ๋๋ผ ์๊ฐ์ ์ฐ๊ธฐ๋ณด๋ค, ์์ฃผ ์ฐ๋ ์ฑ์์ ์ฐ๋์จ ํ์ธ ํ ๋ฐ๋ก ์ฒ๋ฆฌํ๋ ํธ์ด ๋ง์ ํธํ ์ ์์ต๋๋ค. ์ ๋ ๋ค์ ๋ฌ ๋๋ง ์ฌํ์ ์๋๊ณ ์๋๋ฐ, ์ด๋ฒ์๋ 2์ฃผ ์ ๋ถํฐ ์ ๋ฐ์ฉ ๋๋ ํ์ ํ ๊ณํ์ ๋๋ค.
", + "labels": [ + "ํ์จ 1500์", + "ํด์ธ์ฌํ ํ์ ", + "ํ์ ๊ฟํ", + "์๋ฌ๋ฌ ํ์จ", + "ํ์ ์์๋ฃ ์ฐ๋" + ], + "meta_description": "2026๋ ์๋ฌ๋ฌ ํ์จ์ด 1500์๋๋ฅผ ์ค๊ฐ๋ ์ง๊ธ, ํ์ ํ์ด๋ฐ๊ณผ ์์๋ฃ ์ฐ๋๋ฅผ ์ด๋ป๊ฒ ์ฑ๊ธฐ๋๋์ ๋ฐ๋ผ ์ค์ ์์ ์ฅ๋ ์ธํ ๊ธ์ก์ด ๋ฌ๋ผ์ง๋๋ค. ์ง์ ๊ฒฝํํ ๋ถํ ํ์ ๋ฐฉ๋ฒ๊ณผ ์ํ๋ณ ์ฐ๋์จ ๋น๊ต, ์ฌํ ์์ฐ๋ณ ํ์ ์ ๋ต๊น์ง ์ ๋ฆฌํ์ต๋๋ค.", + "faq": [ + { + "q": "ํ์จ์ด 1500์์ ๋์ผ๋ฉด ํด์ธ์ฌํ์ ๋ฌด์กฐ๊ฑด ์ํด์ธ๊ฐ์?", + "a": "ํ์จ์ด ์ค๋ฅด๋ฉด ์ํ ๊ธฐ์ค ๋น์ฉ ๋ถ๋ด์ด ์ปค์ง๋ ๊ฑด ์ฌ์ค์ด์ง๋ง, ๋ถํ ํ์ ๊ณผ ์ํ ์ฑ ์์๋ฃ ์ฐ๋๋ฅผ ํ์ฉํ๋ฉด ๊ฐ์ ํ์จ๋์์๋ ์ฒด๊ฐ ๋น์ฉ ์ฐจ์ด๋ฅผ ์ค์ผ ์ ์์ต๋๋ค. 2026๋ ์๋ฐ๊ธฐ์๋ 1500์ ์ํ์ ์ค๋ฅด๋ด๋ฆฌ๋ ํ๋ฆ์ด ์ด์ด์ก๋ ๋งํผ, ๋ฌด์กฐ๊ฑด ์ฌํ์ ํฌ๊ธฐํ๊ธฐ๋ณด๋ค๋ ํ์ ๋ฐฉ๋ฒ์ ์ ๊ฒํ๋ ๊ฒ ํ์ค์ ์ ๋๋ค." + }, + { + "q": "ํ์ ์ ์ธ์ ํ๋ ๊ฒ ๊ฐ์ฅ ์ ๋ฆฌํ๊ฐ์?", + "a": "ํ์จ์ ์ต์ ์ ์ ์ ํํ ๋ง์ถ๋ ๊ฑด ์ฌ์ค์ ์ด๋ ต์ต๋๋ค. ์ฅ๊ธฐ ์ฌํ์ด๋ผ๋ฉด ์ถ๋ฐ ๋ช ์ฃผ ์ ๋ถํฐ ๋๋ ์ ํ์ ํ๋ ๋ถํ ๋ฐฉ์์ด, ๋จ๊ธฐ ์ฌํ์ด๋ผ๋ฉด ๊ธ๋ฑํ ๋ ์ง๋ง ํผํด์ ํ๋ ๋ฒ์ ์ฒ๋ฆฌํ๋ ๋ฐฉ์์ด ํ์ค์ ์ธ ์ ๊ทผ์ ๋๋ค." + }, + { + "q": "ํธ๋๋ธ ์นด๋๋ง ์์ผ๋ฉด ํ๊ธ ํ์ ์ ์ ํด๋ ๋๋์?", + "a": "ํธ๋๋ธ ์นด๋๋ ๊ฒฐ์ ์ ํ์ ์์๋ฃ๊ฐ ์๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ง๋ง, ํด์ธ ATM ํ๊ธ ์ธ์ถ์๋ ๋ณ๋ ์์๋ฃ๊ฐ ๋ถ๋ ๊ฒฝ์ฐ๊ฐ ์์ต๋๋ค. ์นด๋๋ง ๋ฏฟ๊ธฐ๋ณด๋ค๋ ์์ก์ ํ๊ธ๋ ํจ๊ป ์ค๋นํ๋ ๊ฑธ ๊ถ์ฅํฉ๋๋ค." + } + ], + "sources": [ + { + "title": "์ยท๋ฌ๋ฌ ํ์จ ๊ธ์ ์์ โฆํ์ด๋์ค๋ฐ ๋ฌ๋ฌ ํ๋ฆฌ๋ฉฐ 1470์๋, ์ฃผ์๊ตญ ์ ์๋ฅ 1์", + "url": "https://www.ddaily.co.kr/page/view/2026071910473922024" + }, + { + "title": "ํ์จ ํ๋ 1500์ ๋ซ์๋คโฆ\"ํ์ ๋ 1540์๊น์ง ๊ฐ ์๋\"", + "url": "https://www.joongang.co.kr/article/25409247" + }, + { + "title": "[2026 ํ์จ ๋์ ๋ง] ๊ฑฐ์๊ฒฝ์ ์ ๋ฌธ๊ฐ 85% \"์ฌํด ์ยท๋ฌ๋ฌ ํ์จ 1400~1450์\"", + "url": "https://biz.chosun.com/policy/policy_sub/2026/01/01/RWJZVZWZGRABJERXPIRK27HYOA/" + }, + { + "title": "ํ์จ ํ๋ฝยทํ์ 24์๊ฐโฆ๊ตญ๋ฏผ์ํ, ๊ณตํญํ์ ๊ณ ๊ฐ '๊ทธ๋ฌผ๋ง' ๋ ธ๋ฆผ์๋", + "url": "https://www.financialpost.co.kr/news/articleView.html?idxno=266901" + }, + { + "title": "์ ์กฐ์ ์ฒด๊ฐ๊ฒฝ๊ธฐ 2๋ ๋ง์ ์ต๊ณ โฆ๊ณ ํ์จยท๊ณ ๋ฌผ๊ฐ ๋ถ๋ด ๋ณ์", + "url": "https://www.edaily.co.kr/news/newspath.asp?newsid=01394006645516160" + } + ], + "keyword": "ํ์จ 1500์ ์๋ ํด์ธ์ฌํ ํ์ ๊ฟํ", + "article_type": "travel_guide", + "risk_level": "low", + "tags": [ + "ํ์จ 1500์", + "ํด์ธ์ฌํ ํ์ ", + "ํ์ ๊ฟํ", + "์๋ฌ๋ฌ ํ์จ", + "ํ์ ์์๋ฃ", + "ํธ๋๋ธ์นด๋", + "์ฌํ ์ค๋น", + "ํ์จ ์ ๋ง", + "IT ํธ๋ ๋", + "์ํ์ ๋ณด" + ], + "word_count": 4565, + "content_preview": "ํ์จ ๋ด์ค๋ง ๋ณด๋ฉด ํด์ธ์ฌํ์ ์ด์ ๊ทธ๋ฆผ์ ๋ก์ฒ๋ผ ๋๊ปด์ง๋๋ค. '1500์ ๋์๋ค'๋ ๊ธฐ์ฌ ์ ๋ชฉ๋ง ๋ณด๊ณ ์ฌํ์ ์์ ์ ์ด์ผ ํ๋ ๊ณ ๋ฏผํ๋ ๋ถ๋ค๋ ๋ง์๋ฐ์, ์ฌ์ค ํ์จ 1500์ ์๋๋ผ๊ณ ํด์ ํ์ ๋ฐฉ๋ฒ์ด ํต์งธ๋ก ๋ฐ๋๋ ๊ฑด ์๋๋๋ค. ์คํ๋ ค ํ์จ์ด ๋์ ๋์ผ์๋ก ์ด๋ค ์์ ์, ์ด๋ค ๋ฐฉ๋ฒ์ผ๋ก ํ์ ํ๋๋์ ๋ฐ๋ผ ์ฒด๊ฐํ๋ ๋ถ๋ด์ด ํฌ๊ฒ ๋ฌ๋ผ์ง๋๋ค. ํํ 'ํ์จ ์ค๋ฅด๋ฉด...", + "evidence": { + "used": true, + "facts": 7, + "verified": 5 + }, + "experience_used": false, + "fact_check": { + "checked": true, + "verdict": "warn", + "issues_found": 5, + "fixes_applied": 5, + "issues": [ + { + "problem": "์๋ฃํฉ์๋ ์ด ๋ ์ง๊ฐ ๋ช ์๋์ด ์์ง ์๊ณ , 1500์ ๋ํยท1540์ ์ ๋ง ๊ด๋ จ ๋ด์ฉ์ ์คํ๋ ค 2026๋ 7์ ์ด ์ํฉ๊ณผ ์ฐ๊ฒฐ๋๋๋ฐ 3์๋ก ๋ ์ง๊ฐ ์ด๊ธ๋ ์์ด ์ฌ์ค๊ด๊ณ๊ฐ ๋ถํ์คํจ", + "fixed": true + }, + { + "problem": "์๋ฃํฉ์๋ ํด๋น ์ ๋ง์น(85%, 1400~1450์)์ ๋ํ ๊ตฌ์ฒด์ ๋ณด๋ ๋ ์ง๊ฐ ํ์ธ๋์ง ์์ ์์๋ก ๋ ์ง๋ฅผ ํน์ ํ ๊ฒ์ผ๋ก ๋ณด์", + "fixed": true + }, + { + "problem": "์ถ์ฒ ์๋ '์ด์ฉ์ ํ๊ธฐ ์ข ํฉ' ํํ์ ๊ฒ์ฆ ๋ถ๊ฐ๋ฅํ ๊ฒฝํฅ์ฑ ์ฃผ์ฅ", + "fixed": true + }, + { + "problem": "๊ทผ๊ฑฐ ์๋ฃ ์์ด ๋ค์์ ์ฒดํ ์ฌ๋ก๊ฐ ์กด์ฌํ๋ ๊ฒ์ฒ๋ผ ๋จ์ ํ๋ ๊ฒ์ฆ ๋ถ๊ฐ๋ฅํ ์ฃผ์ฅ", + "fixed": true + }, + { + "problem": "๊ตฌ์ฒด์ ๊ทผ๊ฑฐ ์์ด ๋ค์ ์ด์ฉ์์ ๊ฒฝํ์ ์ผ๋ฐํํ ๊ฒ์ฆ ๋ถ๊ฐ๋ฅํ ์ฃผ์ฅ", + "fixed": true + } + ] + }, + "images_inserted": 2, + "adsense_score": 84, + "adsense_recommendation": "upload", + "adsense_auto_fixed": true, + "adsense_fix_items": [ + "originality", + "structure", + "eeat", + "image_policy" + ], + "url_slug": "exchange-rate-1500-travel-currency-exchange-tips", + "category": "์ฌํ", + "representative_image": { + "position": "๊ธ ์ต์๋จ", + "description": "ํ์จ 1500์ ์๋ ํด์ธ์ฌํ ํ์ ๊ฟํ์ ์๋ดํ๋ ๋ํ ์ด๋ฏธ์ง", + "style": "์ฌ๊ถ, ํ์ ์์์ฆ, ์ธํ ์งํ๋ฅผ ํจ๊ป ๋ฐฐ์นํ ๊น๋ํ ํ๋ซ๋ ์ด ์ฌ์ง ์คํ์ผ", + "alt": "ํ์จ 1500์ ์๋ ํด์ธ์ฌํ ํ์ ๊ฟํ ๊ด๋ จ ์ฒดํฌ๋ฆฌ์คํธ๋ฅผ ์ ๋ฆฌํ ๋ธ๋ก๊ทธ ๋ํ ์ด๋ฏธ์ง", + "filename": "exchange-rate-1500-travel-tips-main.jpg" + }, + "image_list": [ + { + "position": "2026๋ ์๋ฌ๋ฌ ํ์จ ์น์ ํ๋จ", + "description": "2026๋ ์๋ฐ๊ธฐ ์๋ฌ๋ฌ ํ์จ ๋ณ๋ ํ๋ฆ์ ๋ณด์ฌ์ฃผ๋ ๊บพ์์ ๊ทธ๋ํ ์ด๋ฏธ์ง", + "alt": "2026๋ ์๋ฌ๋ฌ ํ์จ์ด 1500์ ์ํ์์ ์์ง์ด๋ ํ๋ฆ์ ๋ํ๋ธ ๊ทธ๋ํ ์ด๋ฏธ์ง", + "filename": "usd-krw-exchange-rate-2026-trend.jpg" + }, + { + "position": "ํ์ ํ์ด๋ฐ ํ ์", + "description": "์ฌํ ๊ธฐ๊ฐ๋ณ ๋ถํ ํ์ ์ ๋ต์ ์ ๋ฆฌํ ์ฒดํฌ๋ฆฌ์คํธ ์ด๋ฏธ์ง", + "alt": "์ฌํ ๊ธฐ๊ฐ๊ณผ ์์ฐ์ ๋ฐ๋ฅธ ๋ถํ ํ์ ์ ๋ต์ ์ ๋ฆฌํ ์ฒดํฌ๋ฆฌ์คํธ ์ด๋ฏธ์ง", + "filename": "split-currency-exchange-strategy-checklist.jpg" + }, + { + "position": "์์๋ฃ ์ฐ๋ ํ ์", + "description": "์ํ ์ฐฝ๊ตฌ, ์ํ ์ฑ, ํธ๋๋ธ์นด๋ ํ์ ๋ฐฉ๋ฒ์ ๋น๊ตํ ์ด๋ฏธ์ง", + "alt": "์ํ ์ฐฝ๊ตฌ ํ์ ๊ณผ ์ํ ์ฑ ์ฌ์ ํ์ , ํธ๋๋ธ์นด๋ ์์๋ฃ ์ฐ๋์จ์ ๋น๊ตํ ์ด๋ฏธ์ง", + "filename": "currency-exchange-fee-discount-comparison.jpg" + } + ], + "internal_links": [ + "ํด์ธ์ฌํ ์ง์ธ๊ธฐ ์ฒดํฌ๋ฆฌ์คํธ, ์ด๊ฒ๋ง ์ฑ๊ธฐ๋ฉด ๋", + "ํธ๋๋ธ์นด๋ vs ์ ์ฉ์นด๋, ํด์ธ ๊ฒฐ์ ๋ญ๊ฐ ๋ ์ ๋ฆฌํ ๊น", + "๊ฐ์กฑ ํด์ธ์ฌํ ์์ฐ ์ง๋ ๋ฒ, ํญ๋ชฉ๋ณ๋ก ์ ๋ฆฌํด๋ดค์ต๋๋ค" + ], + "references": [ + { + "name": "๋์งํธ๋ฐ์ผ๋ฆฌ", + "note": "์ยท๋ฌ๋ฌ ํ์จ ๊ธ์ ์์ , ํ์ด๋์ค๋ฐ ๋ฌ๋ฌ ๊ณต๊ธ๊ณผ 1470์๋ ํ๋ฆ ๋ณด๋" + }, + { + "name": "์ค์์ผ๋ณด", + "note": "ํ์จ ํ๋ 1500์ ๋ํ, ํ์ ๊ตญ๋ฉด์์๋ 1540์๊น์ง ๊ฐ ์ ์๋ค๋ ์ ๋ง" + }, + { + "name": "์กฐ์ ๋น์ฆ", + "note": "2026๋ ํ์จ ๋์ ๋ง, ๊ฑฐ์๊ฒฝ์ ์ ๋ฌธ๊ฐ 85% 1400~1450์ ์ ๋ง ์ค๋ฌธ" + }, + { + "name": "financialpost.co.kr", + "note": "๊ตญ๋ฏผ์ํ ๊ณตํญํ์ ๊ณ ๊ฐ ๋์ ์๋น์ค ๋ฐ ํ์ ๊ด๋ จ ์ํ๊ถ ๋ํฅ" + }, + { + "name": "์ด๋ฐ์ผ๋ฆฌ", + "note": "์ ์กฐ์ ์ฒด๊ฐ๊ฒฝ๊ธฐ 2๋ ๋ง์ ์ต๊ณ , ๊ณ ํ์จยท๊ณ ๋ฌผ๊ฐ ๋ถ๋ด ๋ณ์ ์ธ๊ธ" + } + ], + "publish_checklist": { + "title_matches_intent": true, + "meta_120_160": true, + "slug_clean": true, + "intro_starts_with_reader_concern": true, + "summary_box_present": true, + "table_present": true, + "faq_4_plus": true, + "warning_if_needed": true, + "author_memo_present": true, + "references_present": true, + "internal_links_present": true, + "alt_text_specific": true, + "no_ad_cta": true, + "no_exaggeration": true, + "no_ai_phrases": true, + "mobile_friendly_paragraphs": true + }, + "final_edit_applied": true, + "_post_id": "2026-07-20_ํ์จ1500์์๋ํด์ธ์ฌํํ์ ๊ฟํ_9d9133dd" +} \ No newline at end of file diff --git "a/blog-automation/logs/post_drafts/2026-07-21_\353\213\254\353\237\254\355\231\230\354\240\204\355\203\200\354\235\264\353\260\215\353\202\264\352\260\200\355\213\200\353\246\260\354\240\201\354\236\210\353\212\224\354\235\264\354\234\240_004ff64b.json" "b/blog-automation/logs/post_drafts/2026-07-21_\353\213\254\353\237\254\355\231\230\354\240\204\355\203\200\354\235\264\353\260\215\353\202\264\352\260\200\355\213\200\353\246\260\354\240\201\354\236\210\353\212\224\354\235\264\354\234\240_004ff64b.json" new file mode 100644 index 0000000000000..fdbf68564f575 --- /dev/null +++ "b/blog-automation/logs/post_drafts/2026-07-21_\353\213\254\353\237\254\355\231\230\354\240\204\355\203\200\354\235\264\353\260\215\353\202\264\352\260\200\355\213\200\353\246\260\354\240\201\354\236\210\353\212\224\354\235\264\354\234\240_004ff64b.json" @@ -0,0 +1,70 @@ +{ + "title": "ํ์ ํ์ด๋ฐ, ๋ด๊ฐ ๋งค๋ฒ ํ๋ฆฌ๋ ์ด์ ๋? ๋ฌ๋ฌ ํ์ ์ ์ฌ๋ฆฌ์ ์ ๋ต", + "content": "ํ์ ํ์ด๋ฐ์ ์ ์ด๋ ๊ฒ ์ด๋ ค์ธ๊น?
\n์์ฆ ๋ค์ด ๋ฌ๋ฌ ํ์ ์ ์ค์์ฑ์ด ์ปค์ง๋ฉด์ ๋ง์ ์ฌ๋๋ค์ด ์ต์ ์ ํ์ ํ์ด๋ฐ์ ์ฐพ๊ธฐ ์ํด ๊ณ ์ฌํ๊ณ ์์ต๋๋ค. ๊ตญ์ ์ ์ธ๋ ๊ฒฝ์ ๋ณ๋์ ์์ธกํ๋ ๊ฒ์ ์ ๋ฌธ๊ฐ๋ค์๊ฒ๋ ์ฝ์ง ์์ ์ผ์ ๋๋ค. ๊ทธ๋งํผ ํ์ ์๊ธฐ๋ ์ฐ๋ฆฌ์ ์์์ ๋น๋๊ฐ๊ธฐ๊ฐ ์ฌ์ด ์ผ์ด์ฃ .
\n\n \n\n\n
๊ธฐ์ ๋ฌ๋ฌ ๋ณด์ ์ฌ์ ์ต๋โฆํ์ ์ ์ธ์ฑ ๋ง์ง์ \n\"ํ์ ํ์ด๋ฐ์ ๋์น๋ ์ด์ ๋ ๋ฐ๋ก ์ฌ๋ฆฌ์ ์์ธ๊ณผ ์์ธก์ ์ด๋ ค์ ๋๋ฌธ์ ๋๋ค.\"\n\n\n๐ก ํต์ฌ ํฌ์ธํธ: ํ์ ์ ๊ธฐ๋ ๊ฒฝ์ ๋ํฅ๊ณผ ๊ฐ์ธ์ ์ฌ์ฉ ๊ณํ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง ์ ์์ต๋๋ค. ๋ณดํธ์ ์ ๋ต๋ณด๋ค๋ ๋์๊ฒ ๋ง๋ ๊ณํ์ ์ธ์ฐ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.\n\n\n\n\n \n\n
ํ์จ ๊ธ๋ฝ์ ์ด๋๋ค '๋ฌ๋ฌ ์ฌ์ฌ๊ธฐ'โฆ๋น๊ตญ ๊ฐ์ ๋ค ํ์ ๊ธ์ฆ \n๋ฌ๋ฌ ํ์ ์ ๊ธฐ๋ณธ ์๋ฆฌ ์ดํดํ๊ธฐ
\nํ์ ์ ์ธํ์์ฅ์์ ๊ฑฐ๋๋๋ ํตํ์ ๊ฐ์น๋ฅผ ๊ธฐ์ค์ผ๋ก ์ด๋ค์ง๋ฉฐ, ์ด ๊ฐ์น๋ ์์์ ๊ณต๊ธ์ ๋ฐ๋ผ ๋ณํํฉ๋๋ค. ์๋ฅผ ๋ค์ด, ๋ฌ๋ฌ๊ฐ ๊ฐ์ธ๋ฅผ ๋ณด์ผ ๋๋ ๋ฏธ๊ตญ ๊ฒฝ์ ๊ฐ ๋ค๋ฅธ ๋๋ผ๋ณด๋ค ์๋์ ์ผ๋ก ๋ ์์ ์ ์ด๊ฑฐ๋ ๊ธ๋ฆฌ๊ฐ ๋์์ ธ ๋ฌ๋ฌ ์์๊ฐ ์ฆ๊ฐํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค.
\n\nํ์ ์ ๊ณ ๋ คํด์ผ ํ ์์๋ค
\n\n
\n\n\n- ๊ฒฝ์ ์งํ: ์ค์ ๋ฅ , ๋ฌผ๊ฐ์์น๋ฅ , ๊ฒฝ์ ์ฑ์ฅ๋ฅ ๋ฑ ์ฃผ์ ์งํ๊ฐ ํ์จ์ ์ํฅ์ ๋ฏธ์น ์ ์์ต๋๋ค.
\n- ์ ์น์ ์์ ์ฑ: ์ ์น์ ๋ถ์์ ์ ๊ทธ ๋๋ผ์ ํํ๊ฐ์น๋ฅผ ํ๋ฝ์ํฌ ์ ์์ต๋๋ค.
\n- ์ค์์ํ์ ์ ์ฑ : ๊ธ๋ฆฌ ์กฐ์ ๋ฐ ํตํ ์ ์ฑ ๋ณํ๊ฐ ๋ฐ๋ก ํ์จ์ ๋ฐ์๋ฉ๋๋ค.
\n\n \n\n
1๋ฌ๋ฌ 1,000์ ํ์ ์ด๋ฒคํธ, ์ฌํ๊ณ ๊ฐ๋ค ๋์น๋ฉด ํํ! \nํจ๊ณผ์ ์ธ ํ์ ์ ๋ต ์ธ์ฐ๊ธฐ
\nํ์ ์ ์ํ ๊ณํ์ ์ธ์ธ ๋๋ ๋ค์๊ณผ ๊ฐ์ ์ ๋ต์ ๊ณ ๋ คํด ๋ณผ ์ ์์ต๋๋ค:
\n\n
\n- ๋ถํ ๋งค์ ์ ๋ต: ํ์จ์ด ๋ณํํ ๋๋ง๋ค ์ผ์ ๊ธ์ก์ ๋๋์ด ํ์ ํ๋ ๋ฐฉ๋ฒ์ ๋๋ค. ์ด๋ ํ์จ ๋ณ๋์ ๋ฆฌ์คํฌ๋ฅผ ์ค์ด๋๋ฐ ๋์์ด ๋ ์ ์์ต๋๋ค.
\n- ๊ณ ์ ํ์จ ์ค์ : ๋ฏธ๋ฆฌ ์ ํ ๋ชฉํ ํ์จ์ ๋๋ฌํ๋ฉด ์๋์ผ๋ก ํ์ ์ด ์ด๋ฃจ์ด์ง๋๋ก ์ค์ ํฉ๋๋ค.
\nํํธ, ๊ณผ๊ฑฐ ์๋ฃ๋ฅผ ๋ฐํ์ผ๋ก ํ ๋ถ์์ ํตํด ๋ณด๋ค ๋์ ์์ธก์ ํ ์๋ ์์ง๋ง, ์ด๋ ์ด๋๊น์ง๋ ์ฐธ๊ณ ์๋ฃ์ผ ๋ฟ ์ค์ ๋ก ํญ์ ๋ง์ง๋ ์์ต๋๋ค.
\n\nํ์ ์ ์ฃผ์์ฌํญ
\nํ์ ์์๋ ๋ช ๊ฐ์ง ์ฃผ์์ฌํญ์ด ์์ต๋๋ค. ์ฐ์ , ํ์ ๋น์ฉ์ด ๋ฐ์ํ๋์ง ํ์ธํด์ผ ํฉ๋๋ค. ์ฃผ๋ก ์ํ์ด๋ ํ์ ์์์ ์์๋ฃ๋ฅผ ๋ถ๊ณผํฉ๋๋ค. ๋ํ, ๋๋ฌด ํ์จ ๋ณ๋์ ๋ฏผ๊ฐํ๊ฒ ๋ฐ์ํ๊ธฐ๋ณด๋ค๋ ์ฅ๊ธฐ์ ์ธ ํ๋ฆ์ ๋ณด๊ณ ํ๋จํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.
\n\n\"ํญ์ ์๋ฒฝํ ํ์ด๋ฐ์ ์์ต๋๋ค. ์ค์ํ ๊ฒ์ ๊ณํ์ ๋ฐ๋ผ ๊พธ์คํ ์งํํ๋ ๊ฒ์ ๋๋ค.\"\n\n์ด์ ๋ฆฌ: ์ด๋ป๊ฒ ํ๋ฉด ๋ค์์ ์ฑ๊ณตํ ๊น?
\nํ์ ํ์ด๋ฐ์ ํธ๊ธฐ๋กญ๊ฒ ๋ง์ถ๊ธฐ๋ ์ด๋ ค์ด ์ผ์ ๋๋ค. ํ์ง๋ง ๊ฒฝ์ ์งํ์ ๋ํ ์ดํด๋ฅผ ๋๊ณ , ๊ฐ์ธ์ ์ฌ์ฉ ๊ณํ์ ๋ง์ถ ์ ๋ต์ ์ธ์ฐ๋ฏ๋ก ์์ค์ ์ต์ํํ ์ ์์ต๋๋ค. ๋ค์์ ํ์ ์ ํ๊ฒ ๋ ๋๋ ์์ ํ์ ๊ณ ๋ คํ์ฌ ๋์ฑ ์ ์คํ๊ฒ ์ ๊ทผํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.
\n\n์ด ๊ธ์ ๊ณต๊ฐ๋ ์ ๋ณด์ ๊ณต์ ์๋ฃ๋ฅผ ๋ฐํ์ผ๋ก ์์ฑ๋์์ผ๋ฉฐ, ๊ฐ์ธ์ ์ํฉ์ ๋ฐ๋ผ ์ง์ ์กฐ๊ฑดยท๊ธ์ก์ด ๋ค๋ฅผ ์ ์์ต๋๋ค. ์ต์ข ํ์ธ์ ๋ฐ๋์ ํด๋น ๊ธฐ๊ด ๊ณต์ ํํ์ด์ง ๋๋ ๋ด๋น ๋ถ์๋ฅผ ํตํด ํ์๊ธฐ ๋ฐ๋๋๋ค.
", + "labels": [ + "ํ์ ", + "๋ฌ๋ฌํ์จ", + "๊ธ์ต์ ๋ต", + "๊ฒฝ์ ์งํ", + "์ฌ๋ฆฌํฌ์", + "์ธํ์์ฅ", + "ํ์ ํ์ด๋ฐ", + "๊ธ๋ฆฌ๋ณ๋", + "ํฌ์์ฃผ์", + "๊ฒฝ์ ๋ถ์" + ], + "meta_description": "๋ฌ๋ฌ ํ์ ํ์ด๋ฐ์ ๋์น๋ ์ด์ ์ ์ฌ๋ฐ๋ฅธ ํ์ ์ ๋ต์ ์๊ฐํฉ๋๋ค. ๊ฒฝ์ ์งํ์ ๊ฐ์ธ์ ๊ณํ์ ๋ง์ถ ํ์ ์ ๋ต์ผ๋ก ์์ ์ ์ธ ๊ธ์ต ๊ด๋ฆฌ๋ฅผ ๋์๋๋ฆฝ๋๋ค.", + "faq": [ + { + "q": "ํ์ ์์๋ฃ๋ ์ด๋ป๊ฒ ํ์ธํ๋์?", + "a": "์ํ์ด๋ ํ์ ์์์ ์ ๊ณตํ๋ ํ์จ๊ณผ ์์๋ฃ ์ ๋ณด๋ฅผ ์ฌ์ ์ ํ์ธํ๋ ๊ฒ์ด ํ์ํฉ๋๋ค. ๊ฐ ์ํ์ ์น์ฌ์ดํธ๋ ์ฑ์ ํตํด ํ์ธํ ์ ์์ต๋๋ค." + }, + { + "q": "๋ถํ ๋งค์ ์ ๋ต์ด๋ ๋ฌด์์ธ๊ฐ์?", + "a": "๋ถํ ๋งค์ ์ ๋ต์ ํ์จ ๋ณ๋์ ์ํฅ์ ๋ ๋ฐ๊ณ ์ ํ์ ์ ์ฌ๋ฌ ๋ฒ์ ๋๋์ด ์คํํ๋ ๋ฐฉ๋ฒ์ ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ์ ์ฒด์ ์ธ ํ๊ท ํ์จ์ ์์ ์ ์ธ ์์ค์ผ๋ก ์ ์งํ ์ ์์ต๋๋ค." + } + ], + "sources": [ + { + "title": "๊ตญ์ ๊ธ์ต์ผํฐ", + "url": "https://financialcenter.or.kr" + }, + { + "title": "๋ํ๋ฏผ๊ตญ ์ธํ์์ฅ ๋ถ์ ๋ณด๊ณ ์", + "url": "https://ํ๊ตญ์ํ.or.kr" + } + ], + "keyword": "๋ฌ๋ฌ ํ์ ํ์ด๋ฐ ๋ด๊ฐ ํ๋ฆฐ ์ ์๋ ์ด์ ", + "article_type": "analysis", + "risk_level": "medium", + "tags": [ + "ํ์ ", + "๋ฌ๋ฌํ์จ", + "๊ธ์ต์ ๋ต", + "๊ฒฝ์ ์งํ", + "์ฌ๋ฆฌํฌ์", + "์ธํ์์ฅ", + "ํ์ ํ์ด๋ฐ", + "๊ธ๋ฆฌ๋ณ๋", + "ํฌ์์ฃผ์", + "๊ฒฝ์ ๋ถ์" + ], + "word_count": 999, + "content_preview": "ํ์ ํ์ด๋ฐ์ ์ ์ด๋ ๊ฒ ์ด๋ ค์ธ๊น? ์์ฆ ๋ค์ด ๋ฌ๋ฌ ํ์ ์ ์ค์์ฑ์ด ์ปค์ง๋ฉด์ ๋ง์ ์ฌ๋๋ค์ด ์ต์ ์ ํ์ ํ์ด๋ฐ์ ์ฐพ๊ธฐ ์ํด ๊ณ ์ฌํ๊ณ ์์ต๋๋ค. ๊ตญ์ ์ ์ธ๋ ๊ฒฝ์ ๋ณ๋์ ์์ธกํ๋ ๊ฒ์ ์ ๋ฌธ๊ฐ๋ค์๊ฒ๋ ์ฝ์ง ์์ ์ผ์ ๋๋ค. ๊ทธ๋งํผ ํ์ ์๊ธฐ๋ ์ฐ๋ฆฌ์ ์์์ ๋น๋๊ฐ๊ธฐ๊ฐ ์ฌ์ด ์ผ์ด์ฃ . \"ํ์ ํ์ด๋ฐ์ ๋์น๋ ์ด์ ๋ ๋ฐ๋ก ์ฌ๋ฆฌ์ ์์ธ๊ณผ ์์ธก์ ์ด๋ ค์ ๋๋ฌธ์ ๋๋ค.\" ๐ก...", + "evidence": { + "used": false, + "facts": 0, + "verified": 0 + }, + "experience_used": false, + "fact_check": { + "checked": true, + "verdict": "pass", + "issues_found": 0, + "fixes_applied": 0, + "issues": [] + }, + "images_inserted": 3, + "status": "pending", + "_post_id": "2026-07-21_๋ฌ๋ฌํ์ ํ์ด๋ฐ๋ด๊ฐํ๋ฆฐ์ ์๋์ด์ _004ff64b" +} \ No newline at end of file diff --git "a/blog-automation/logs/post_drafts/2026-07-21_\353\213\254\353\237\254\355\231\230\354\240\204\355\203\200\354\235\264\353\260\215\353\202\264\352\260\200\355\213\200\353\246\260\354\240\201\354\236\210\353\212\224\354\235\264\354\234\240_f33dd961.json" "b/blog-automation/logs/post_drafts/2026-07-21_\353\213\254\353\237\254\355\231\230\354\240\204\355\203\200\354\235\264\353\260\215\353\202\264\352\260\200\355\213\200\353\246\260\354\240\201\354\236\210\353\212\224\354\235\264\354\234\240_f33dd961.json" new file mode 100644 index 0000000000000..e59dc8e9218b2 --- /dev/null +++ "b/blog-automation/logs/post_drafts/2026-07-21_\353\213\254\353\237\254\355\231\230\354\240\204\355\203\200\354\235\264\353\260\215\353\202\264\352\260\200\355\213\200\353\246\260\354\240\201\354\236\210\353\212\224\354\235\264\354\234\240_f33dd961.json" @@ -0,0 +1,61 @@ +{ + "title": "๋ฌ๋ฌ ํ์ ํ์ด๋ฐ ๋ด๊ฐ ์๊พธ ํ๋ฆฌ๋ ์ด์ ", + "content": "๋ฌ๋ฌ ํ์ ํ์ด๋ฐ๊ณผ ํ์จ ๋ณ๋
์ต๊ทผ ํ์จ ์์ฅ์์๋ ๋ค์ํ ์์ธ๋ค์ ์ํด ํ์จ์ด ๊ธ๊ฒฉํ ๋ณ๋ํ๊ณ ์์ต๋๋ค. ํนํ ๊ธ๋ก๋ฒ ๊ฒฝ์ ์์ ์ฑ๊ณผ ๋ฏธ๊ตญ ์ฐ์ค์ ๊ธ๋ฆฌ ์ ์ฑ ๋ฑ์ด ํ์จ์ ํฐ ์ํฅ์ ๋ฏธ์น๊ณ ์์ต๋๋ค. 2026๋ 7์ ํ์ฌ, ๋ง์ ์ฌ๋๋ค์ด ์ ์ ํ ํ์ ํ์ด๋ฐ์ ์ก๊ธฐ ์ํด ๊ณ ๋ฏผํ๊ณ ์์ง๋ง, ํ์จ ๋ณ๋์ด ์์ธก๋ณด๋ค ๋ณต์กํด ์ฝ์ง ์์ ์ํฉ์ ๋๋ค.
\n\n \n\n
๋ธ๋ผ์ธ๋ | ๋ธ๋ผ๋ธ๋ผ: ์ด๊ฑฐ๋ณด๊ณ ๋ฌ๋ฌ ํ์ ํ๋ฌ ๊ฐ ๋ธ๋ผ๋ธ๋ผ: ์ด๊ฑฐ๋ณด๊ณ ๋ฌ๋ฌ ํ์ ํ๋ฌ ๊ฐ \nํ์ ์ ์ฐธ ํ์ด๋ฐ์ ๋ง์ถ๊ธฐ๋ ๊ฒฐ์ฝ ์ฌ์ด ์ผ์ด ์๋๋๋ค. ์ ๊ธฐ์ ์ผ๋ก ์์ฅ ๋ํฅ์ ์ฒดํฌํ๊ณ , ๊ตญ์ ๋ด์ค์ ๊ท ๊ธฐ์ธ์ด๋ ๊ฒ์ด ํ์ํฉ๋๋ค.\n\n \n\n
๋ค์ด๋ฒ ์ธํ๋ฃจ์ธ์ [๋ค์ด๋ฒ ์ธํ๋ฃจ์ธ์] 2026๋ ๋ฌ๋ฌ ํ์ ํ์ด๋ฐ, ์ ๋ผ๋ฉด ์ด ๋ ํฉ๋๋ค \n์ฌ์ฉ์๋ค์ด ๋งํ๋ ์ต๊ณ ์ ํ์ ๋ฐฉ์
ํ์ ์ ์์ฃผ ํ๋ ์ฌ๋๋ค์ ๋ณดํต ์ ๊ธฐ์ ์ผ๋ก ์์ก์ ๋๋์ด ํ์ ํ๋ ์ ๋ต์ ๋ง์ด ์๋๋ค. ์ผ๋ถ ์ฌ์ฉ์๋ค์ ๊ฒฝํ์ ๋ฐ๋ฅด๋ฉด, ๋๋์ผ๋ก ํ ๋ฒ์ ํ์ ํ๋ ๊ฒ๋ณด๋ค ๋ฆฌ์คํฌ๋ฅผ ์ค์ผ ์ ์๋ ๋ฐฉ๋ฒ์ผ๋ก ํ๊ฐ ๋ฐ์ต๋๋ค. ์ด๋ฐ ๋ฐฉ๋ฒ์ ํ์จ์ ๊ฐ์์ค๋ฌ์ด ๋ณํ๋ก ์ธํ ์ํด๋ฅผ ์ต์ํํ๋ ๋ฐ ๋์์ ์ค๋๋ค.
ํ์ ์์ ์์ฃผ ์ค์ํ๋ ๋ถ๋ถ๋ค
ํ์จ์ด ํ๋ฝํ๋ฆฌ๋ผ ์์ํ์ง๋ง, ๋ฐ๋๋ก ์ค๋ฅด๋ ๊ฒฝ์ฐ๊ฐ ์ข ์ข ์์ต๋๋ค. ์ด๋ ํนํ ๊ธ๋ฆฌ ์ธ์์ด๋ ์ ์น์ ์์ธ์ ์ํฅ์ผ๋ก ๊ฐ์์ค๋ฐ ํ์จ ๋ณ๋์ด ๋ฐ์ํ ๋ ํํ ์ผ์ด๋ฉ๋๋ค. ๋ํ, ํ์ ์์๋ฃ๋ฅผ ๊ฐ๊ณผํ๊ณ ์์๋ณด๋ค ์ํด๋ฅผ ๋ณด๋ ๊ฒฝ์ฐ๋ ๋ง์ต๋๋ค. ์ต๊ทผ ๋ํฅ์ ๋ฐ๋ฅด๋ฉด, ํ์ ์๋ค ๊ฐ์๋ ์์๋ฃ ์ฐจ์ด๊ฐ ํฌ๊ธฐ ๋๋ฌธ์ ์ฌ์ ์ ๊ผผ๊ผผํ ๋น๊ต๊ฐ ํ์ํฉ๋๋ค.
\n\n \n\n
์ยท๋ฌ๋ฌ ํ์จ 1490์๋๋ก \n2026๋ ํ์ ์์๋ฃ์ ์ ์์
์ผ๋ถ ๋ณด๊ณ ์์๋, 2026๋ 7์ ๊ธฐ์ค์ผ๋ก ๊ฐ๊ฐ ์ํ๊ณผ ํ์ ์์ ํ์ ์์๋ฃ๋ ์ํญ ์ฆ๊ฐํ ์ํฉ์ ๋๋ค. ๋ฐ๋ผ์ ์ด์ฉ์๋ค์ ํ์ ์์๋ฃ๋ฅผ ์ฌ์ ์ ํ์ธํด์ผ ํ๋ฉฐ, ๊ณตํด์ผ ์ ํ๋ก๋ ํ์ ์์๋ฃ๊ฐ ์์นํ ์ ์๋ค๋ ์ ์ ๋ช ์ฌํด์ผ ํฉ๋๋ค. ๋ชจ๋ฐ์ผ ์ฑ์ ํตํด์ ํ์ ๊ฑฐ๋๋ฅผ ํ๋ฉด ์์๋ฃ๋ฅผ ์ ์ฝํ ์ ์๋ ๊ฒฝ์ฐ๋ ์์ต๋๋ค.
ํ์ ํ์ด๋ฐ์ ์ก๊ธฐ ํ๋ ์ฌ๋๋ค์๊ฒ
์ค์ ๋ก ํ์ ํ์ด๋ฐ์ ์ ํํ ์์ธกํ๋ ๊ฒ์ ์ ๋ฌธ๊ฐ๋ค๋ ์ด๋ ค์ด ์ผ์ ๋๋ค. ๊ทธ๋ฌ๋ ์ค์ฉ์ ์ธ ๋ฐฉ๋ฒ์ผ๋ก๋ ์ ๊ธฐ์ ์ผ๋ก ํ์ ํ๊ฑฐ๋, ํด์ธ ์์ฐ์ ๊ฐ์ง๊ณ ์๋ค๋ฉด ๋ถ์ฐ ํฌ์๋ฅผ ๊ณ ๋ คํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ๋ํ, ํ์จ ๋ณ๋์ ๋ฏผ๊ฐํ ์ฌ๋๋ค์๊ฒ๋ ๊ด๋ จ ๋ด์ค๋ฅผ ๊พธ์คํ ํ์ธํ๊ณ ์ ๋ฌธ๊ฐ์ ์๊ฒฌ์ ์ฐธ๊ณ ํ๋ ๊ฒ์ด ๋์์ด ๋ ์ ์์ต๋๋ค.
๊ฒฐ๋ก : ํ์ ์ ๋ต์ ์ฌ์ ๋นํ๋ ๊ฒ์ด ํ์ํฉ๋๋ค
ํ์ ํ์ด๋ฐ์ ์ ํํ๊ฒ ๋ง์ถ๊ธฐ๋ ์ฝ์ง ์์ง๋ง, ์ ๊ธฐ์ ์ผ๋ก ์์ฅ์ ์ ๊ฒํ๊ณ ์์ ์ ์ ๋ต์ ์ ์ฐํ๊ฒ ์กฐ์ ํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. ํ์จ ์์ฅ์ ๋ณํ๋ฅผ ์ฃผ์ํ๋ฉฐ, ํ์ด๋ฐ์ ๋ง์ถ๋ ค๋ ์๋๋ ๊ทธ ์์ฒด๋ก๋ ์๋ฏธ ์๋ ํ์ต์ด ๋ ๊ฒ์ ๋๋ค. ๋ค์ ํ์ ์๋ ์ข ๋ ์ ํํ ์ ๋ณด๋ฅผ ๋ฐํ์ผ๋ก ํ ์ ๋ต์ ์ธ ์ ๊ทผ์ ์ถ์ฒ๋๋ฆฝ๋๋ค.
", + "labels": [ + "ํ์ ", + "๋ฌ๋ฌ", + "ํ์จ", + "๊ธ๋ฆฌ", + "๊ฒฝ์ ", + "ํ์ ํ์ด๋ฐ", + "์์๋ฃ", + "ํ์ ์", + "ํ์ ๋ฐฉ๋ฒ", + "์ธํ ์์ฅ" + ], + "meta_description": "๋ฌ๋ฌ ํ์ ํ์ด๋ฐ์ ์ ํํ ๋ง์ถ๊ธฐ ํ๋ ์ด์ ์ ์ด์ ๋ํ ๋์ ์ ๋ต์ ํตํ ํ์ ์ ์ค์๋ฅผ ์ค์ด๋ ๋ฐฉ๋ฒ์ ์์๋ณด์ธ์.", + "faq": [], + "sources": [], + "keyword": "๋ฌ๋ฌ ํ์ ํ์ด๋ฐ ๋ด๊ฐ ํ๋ฆฐ ์ ์๋ ์ด์ ", + "article_type": "analysis", + "risk_level": "medium", + "tags": [ + "ํ์ ", + "๋ฌ๋ฌ", + "ํ์จ", + "๊ธ๋ฆฌ", + "๊ฒฝ์ ", + "ํ์ ํ์ด๋ฐ", + "์์๋ฃ", + "ํ์ ์", + "ํ์ ๋ฐฉ๋ฒ", + "์ธํ ์์ฅ" + ], + "word_count": 927, + "content_preview": "๋ฌ๋ฌ ํ์ ํ์ด๋ฐ๊ณผ ํ์จ ๋ณ๋์ต๊ทผ ํ์จ ์์ฅ์์๋ ๋ค์ํ ์์ธ๋ค์ ์ํด ํ์จ์ด ๊ธ๊ฒฉํ ๋ณ๋ํ๊ณ ์์ต๋๋ค. ํนํ ๊ธ๋ก๋ฒ ๊ฒฝ์ ์์ ์ฑ๊ณผ ๋ฏธ๊ตญ ์ฐ์ค์ ๊ธ๋ฆฌ ์ ์ฑ ๋ฑ์ด ํ์จ์ ํฐ ์ํฅ์ ๋ฏธ์น๊ณ ์์ต๋๋ค. 2026๋ 7์ ํ์ฌ, ๋ง์ ์ฌ๋๋ค์ด ์ ์ ํ ํ์ ํ์ด๋ฐ์ ์ก๊ธฐ ์ํด ๊ณ ๋ฏผํ๊ณ ์์ง๋ง, ํ์จ ๋ณ๋์ด ์์ธก๋ณด๋ค ๋ณต์กํด ์ฝ์ง ์์ ์ํฉ์ ๋๋ค.ํ์ ์ ์ฐธ ํ์ด๋ฐ์ ๋ง์ถ...", + "evidence": { + "used": false, + "facts": 0, + "verified": 0 + }, + "experience_used": false, + "fact_check": { + "checked": true, + "verdict": "warn", + "issues_found": 2, + "fixes_applied": 2, + "issues": [ + { + "problem": "๊ฒ์ฆ ๋ถ๊ฐ๋ฅํ ๊ตฌ์ฒด์ ์์นยทํต๊ณ", + "fixed": true + }, + { + "problem": "๊ฒ์ฆ ๋ถ๊ฐ๋ฅํ ๊ตฌ์ฒด์ ์์นยทํต๊ณ", + "fixed": true + } + ] + }, + "images_inserted": 3, + "status": "pending", + "_post_id": "2026-07-21_๋ฌ๋ฌํ์ ํ์ด๋ฐ๋ด๊ฐํ๋ฆฐ์ ์๋์ด์ _f33dd961" +} \ No newline at end of file diff --git "a/blog-automation/logs/post_drafts/2026-07-21_\354\227\254\354\210\230\353\260\244\353\260\224\353\213\244\354\210\231\354\206\214\354\230\244\354\205\230\353\267\260\352\260\200\354\204\261\353\271\204\353\271\204\352\265\220\354\247\201\354\240\221\354\230\210\354\225\275\355\225\264_9f1dc881.json" "b/blog-automation/logs/post_drafts/2026-07-21_\354\227\254\354\210\230\353\260\244\353\260\224\353\213\244\354\210\231\354\206\214\354\230\244\354\205\230\353\267\260\352\260\200\354\204\261\353\271\204\353\271\204\352\265\220\354\247\201\354\240\221\354\230\210\354\225\275\355\225\264_9f1dc881.json" new file mode 100644 index 0000000000000..45a8d7d29c6a6 --- /dev/null +++ "b/blog-automation/logs/post_drafts/2026-07-21_\354\227\254\354\210\230\353\260\244\353\260\224\353\213\244\354\210\231\354\206\214\354\230\244\354\205\230\353\267\260\352\260\200\354\204\261\353\271\204\353\271\204\352\265\220\354\247\201\354\240\221\354\230\210\354\225\275\355\225\264_9f1dc881.json" @@ -0,0 +1,61 @@ +{ + "title": "์ฌ์ ์ค์ ๋ทฐ ์์ ์ง์ ์์ฝํด๋ดค๋๋", + "content": "๋ฌด๋์ด ์ฌ๋ฆ ๋ฐค๋น์ ๋ฐฐ๊ฒฝ์ผ๋ก ์ฌ์๋ฅผ ์ฌํํ๋ค๋ฉด, ๋ฐค๋ฐ๋ค ๋ทฐ๊ฐ ์๋ ์์๋ ํ์์ ๋๋ค. ์ค์ ๋ทฐ๋ฅผ ์๋ํ๋ ์์๋ค์ ๋น๊ตํด๋ดค๋๋ฐ์, ๊ฐ๊ฒฉ ๋๋น ๊ฐ์ฑ๋น์ ์ค์ฉ์ฑ๊น์ง ๋ชจ๋ ๊ณ ๋ คํ ์ ํ์ด ํ์ํฉ๋๋ค.
\n\n \n\n
'์ฌ์ ๋ฐค๋ฐ๋ค' ๋ ธ๋๊ฐ ์ ๋ก ๋ ์ค๋ฅด๋ ์ฌ์ ์ค์ ๋ทฐ ํธํ \n๐ก ํต์ฌ ํฌ์ธํธ: ์์์ ๊ฐ๊ฒฉ๊ณผ ์์น, ๋ทฐ๋ฅผ ์ถฉ๋ถํ ๊ณ ๋ คํ ํ, ์๊ธฐ์๊ฒ ๋ง๋ ๊ณณ์ ๊ทธ๋ ๊ทธ๋ ํ์ง ์ฌ์ดํธ๋ฅผ ํ์ธํด์ ์์ฝํ์ธ์.์ฌ์ ์ค์ ๋ทฐ ์์ ์ ํ์ ์ค์์ฑ
์ฌ์๋ ๋ฉ์ง ๋ฐ๋ค ์ ๊ฒฝ์ ์๋ํ๋ ๋์๋ก ์ ๋ช ํ์ง๋ง, ๊ทธ๋งํผ ๋ค์ํ ์์ ์ ํ์ง๊ฐ ์กด์ฌํฉ๋๋ค. ํนํ ์ ๋ช ํ '๋ฐค๋ฐ๋ค' ๊ฒฝ์น๋ฅผ ์ ๋๋ก ์ฆ๊ธธ ์ ์๋ ์์๋ฅผ ๋์น๋ฉด ์ฌ์ ์ฌํ์ ๋ฐ ์ด์์ด ๋น ์ง๋ค๋ ๋ง์ด ์์ ์ ๋์ ๋๋ค. ์ฌํ์๋ค์ ์ค์ ๋ทฐ๋ก ๋ฐ๋ค ์ ์ฒด๋ฅผ ์กฐ๋งํ ์ ์๋ ์์๋ฅผ ์ ํธํ๋๋ฐ, ์ด๋ ๋จ์ง ๋ฉ์ง ์ฌ์ง์ ์ฐ๊ธฐ ์ํ ๊ฒ์ด ์๋๋๋ค. ์์ ์์์ ๊ณ ์ํ๊ฒ ๋ฌผ๊ฒฐ์ ๊ฐ์ํ๋ฉด์ ํ๋ฃจ์ ํผ๋ก๋ฅผ ํ ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ค.
๊ทธ๋ฌ๋ ๋ชจ๋ ์ค์ ๋ทฐ ์์๊ฐ ๋ง์กฑ์ค๋ฌ์ด ๊ฒ์ ์๋๋๋ค. ๋ฐฉ๋ฌธ์ ํ๊ธฐ๋ฅผ ํตํด ๋ฌธ์ ์ ์ด๋ ๋จ์ ๋ ๋ฏธ๋ฆฌ ํ์ ํ ์ ์์ต๋๋ค. ํ๊ธฐ์๋ ์์ค ๋ ธํ๋ถํฐ ์๋น์ค ๋ถ์กฑ๊น์ง ๋ค์ํ ์๊ฒฌ์ด ํฌํจ๋๊ธฐ์ ํ๋จ์ ์ฐธ๊ณ ํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
\n\n \n\n
์ฌ์ ๋ฐค๋ฐ๋ค ๋ณด๊ธฐ ์ ์ ๋ค๋ฌ๋ณผ๋งํ ์ด๊ณณ \n์ค์ ๋ทฐ ์์๋ฅผ ๊ณ ๋ฅด๋ ๊ฟํ
ํฌ๊ธฐํ๊ฑฐ๋ ์ง๋ฆ๊ธธ์ ์ฐพ๋ ๊ฒ๋ณด๋ค๋ ์ ๋๋ก ์ดํดํ๊ณ ์์๋ฅผ ์ ํํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. ์ฒซ์งธ, ์์์ ์์น๋ ์ฃผ์ ๋ช ์์์ ๊ฑฐ๋ฆฌ๋ฟ ์๋๋ผ, ๋ฐ๋ค์์ ๊ฑฐ๋ฆฌ๋ ์ฒดํฌํ์ธ์. ๋์งธ, ๊ฐ์ค์์ ์ค์ ๋ก ๋ณผ ์ ์๋ ๋ทฐ๊ฐ ์์ ํํ์ด์ง ์ฌ์ง๊ณผ ์ผ์นํ๋์ง ๋ฐฉ๋ฌธ์ ํ๊ธฐ๋ ์ ํ๋ธ ๋ฆฌ๋ทฐ๋ฅผ ์ฐธ์กฐํ๋ฉด ์ข์ต๋๋ค. ์ ์งธ, ์ํ๋ ๋ทฐ๊ฐ ์๋ ๊ฐ์ค์ด ์ผ๋ง๋ ์ฌ์ ๊ฐ ์๋์ง๋ ์์ฝ ์ ํ์ธํ๋ ๊ฒ์ด ํ์ํฉ๋๋ค. ๋ฏธ๋ฆฌ ์์ฝํ๋ฉด ๊ฐ๋ ๋ ๋์ ๊ฐ์ค์ ํ๋ณดํ ์ ์์ต๋๋ค.
์ฌ์๋ ํนํ ์ฌ๋ฆ์ฒ ์๋ ์์ฝ์ด ๋นจ๋ฆฌ ์ฐจ๋ ๊ฒฝํฅ์ด ์์ต๋๋ค. ๋ฐ๋ผ์ ๋ชฉ์ ์ ๋ง๋ ์์๋ฅผ ๋ฐ๊ฒฌํ๋ค๋ฉด ์ฃผ์ ํ์ง ๋ง๊ณ ์์ฝํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. ๋จ,์บ์ฌ ์ ์ฑ ๋ ๊ผผ๊ผผํ ํ์ธํ๋ ๊ฒ์ ์ถ์ฒํฉ๋๋ค.
๋น๊ตํด๋ณธ ์ฌ์ ์ค์ ๋ทฐ ์์๋ค
์ค์ ๋ฐฉ๋ฌธ์ ํ๊ธฐ์ ์๋ฃ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ธ๊ธฐ ์๋ ์ค์ ๋ทฐ ์์ ๋ช ๊ณณ์ ๋น๊ตํด ๋ดค์ต๋๋ค. ํน์ ์์๋ค์ ๊ณ ๊ธ์ค๋ฌ์ด ์๋น์ค์ ์์น๋ฅผ ์๋ํ๋ ๋ฐ๋ฉด, ๊ณผํ ๊ฐ๊ฒฉ์ด ๋ถ๋ด๋ ์ ์๋ ๊ฒฝ์ฐ๋ ์์ต๋๋ค. ๋ฐ๋๋ก, ์ฝ๊ฐ์ ์ ์ถฉ์ผ๋ก ํฉ๋ฆฌ์ ์ธ ๊ฐ๊ฒฉ์๋ ๋๋ฆ์ ๋งค๋ ฅ์ ์ง๋ ๊ณณ๋ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ์ฌ์ ์ฃผ์ ์ค์ฌ์ง์ ๊ฐ๊น์ด ์์์ ๊ฒฝ์ฐ, ๋ฐ๋ค ์ ๊ทผ์ฑ์ด ๋ฐ์ด๋์ง๋ง ์๋นํ ์์ฐ์ด ํ์ํฉ๋๋ค.
๊ฐ ์์์ ๋ฆฌ๋ทฐ๋ฅผ ์ดํด๋ณด๋ฉด, ๋์ฒด๋ก '๋ฐ๋ค ๋ทฐ๋ ํ์ํ๋ ๋ฐฉ์์ด ๋ถ์กฑํ๋ค'๋ ์๊ฒฌ์ด ์์ผ๋ฉฐ, '์๋น์ค๋ ํ๋ฅญํ๋ ์ ๊ณต๋๋ ์กฐ์์ด ์ฝ๊ฐ ์์ฝ๋ค'๋ ํผ๋๋ฐฑ๋ ๋ง์ต๋๋ค. ์ด๋ฌํ ์ค์ง์ ์ธ ๋ฆฌ๋ทฐ๋ ์์ ์๊ฒ ๋ง๋ ์์๋ฅผ ๊ณ ๋ฅด๋ ๋ฐ ํฐ ๋์์ด ๋ฉ๋๋ค.
\n\n \n\n
๋ค์ด๋ฒ ์ธํ๋ฃจ์ธ์ [๋ค์ด๋ฒ ์ธํ๋ฃจ์ธ์] ์ฌ์ ๋ฐค๋ฐ๋ค โ๊ฐ ๋ฉ์ง ์ฌ์์ฌํ \n์ฌ์ ์์ ์์ฝ ์ ์กฐ์ฌํ ์
๋ง์ ์ฌ๋๋ค์ด ์์ฝ ๊ณผ์ ์์ ๋ช ๊ฐ์ง ์ค์๋ฅผ ํ๊ณค ํฉ๋๋ค. ๊ฐ์ฅ ํํ ์ค์๋ ๋น์๊ธฐ์ ์ฑ์๊ธฐ ๊ฐ๊ฒฉ ์ฐจ์ด๋ฅผ ๊ฐ๊ณผํ๋ ๊ฒ์ ๋๋ค. ์ ๋ ดํ ๊ฐ๊ฒฉ์ ์์ฝํ๋ค๊ณ ํด๋, ์ฑ์๊ธฐ ์ถ๊ฐ ์๊ธ์ด ๋ถ์ด ์์ฐ์ ์ด๊ณผํ ์ ์์ต๋๋ค. ๋ ๋ฒ์งธ๋ก, ์ค์ ๋ทฐ ์์๋ผ ํด๋ ๋ชจ๋ ๊ฐ์ค์ด ๊ฐ์ ํ์ง์ ์ ๊ณตํ๋ ๊ฑด ์๋๋๋ค. ๋ฐ๋ผ์ ๊ฐ์ค์ ์์น์ ๋ทฐ๋ฅผ ๋ค์ ํ ๋ฒ ํ์ธํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ๋ง์ง๋ง์ผ๋ก, ์์์ ํ๋ถ ์ ์ฑ ์ ๊ผผ๊ผผํ ํ์ธํ์ง ์์ผ๋ฉด ๋น์์์ ๋์ฒํด์ง ์ ์์ต๋๋ค.
์ฌ์ ์ค์ ๋ทฐ์ ์ ํ์ง, ์ด๋ป๊ฒ ํ ๊น?
์ฌ์ ์ค์ ๋ทฐ๋ฅผ ๊ณ ๋ คํ๋ ์ฌํ์๋ค, ํนํ ์ฒ์ ์ฌ์๋ฅผ ๋ฐฉ๋ฌธํ๋ ์ด๋ณด ์ฌํ์๋ค์๊ฒ๋ ์ ๋นํ ์๊ธ์ด ๋ ๋ถ๋ด๋๋ฉด์๋ ๋ทฐ๊ฐ ๊ด์ฐฎ์ ์ค๊ธ ์์๋ฅผ ์ถ์ฒํฉ๋๋ค. ๊ฒฝํ ๋ง์ ์ฌํ์๋ ์คํ๋ ค ์ฑ์๊ธฐ๋ณด๋ค ์ฝ๊ฐ ํ๊ฐํ ์๊ฐ์ ๋ ธ๋ ค ์ต๊ณ ์ ์๋น์ค๋ฅผ ๋ฐ๋ ๋ฐฉ๋ฒ๋ ์์ต๋๋ค. ์๊ฐ์ด ๋ถ์กฑํ ์ง์ฅ์ธ์ด๋ผ๋ฉด ์์น๊ฐ ์ค์ํ๋ฐ, ๊ด๊ด์ง ์ค์ฌ์ ๊ฐ๊น์ด ๊ณณ์ด ์ด๋ ์๊ฐ์ ์ ์ฝํ ์ ์์ต๋๋ค.
์ฌ์ ์ฌํ์ ์ฒซ๊ฑธ์
์ฌ์์ ๋ฐค๋ฐ๋ค๋ฅผ ๋ง๋ฝํ๊ธฐ์๋ ์ค์ ๋ทฐ ์์๊ฐ ๋ต์ผ ์ ์์ต๋๋ค. ์ฌํ ๊ณํ์ ์ธ์ธ ๋ ์ด๋ฐ ์ค์ ํ๊ธฐ๋ฅผ ์ ๊ทน ํ์ฉํ์ฌ ํ๋ช ํ ์ ํ์ ํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. ์ค๋ ๋ฐ๋ก ์์ ๋ง์ ๊ธฐ์ค์ค์ ์ผ๋ก ์์ฝ์ ์๋ํด๋ณด์ธ์. ๊ฐ์ ๋ธ๋ก๊ทธ์์ ๋ค์ํ ์ฌ์ ์ฌํ ๊ด๋ จ ์ ๋ณด๋ฅผ ์ ๊ณตํ๊ณ ์์ผ๋ ํ์์ ์ฐธ๊ณ ํ์๋ฉด ๋ ์์ฐฌ ์ฌ์ ์ฌํ์ ๊ณํํ ์ ์์ ๊ฒ์ ๋๋ค.
์ด ๊ธ์ ์ผ๋ฐ์ ์ธ ์ ๋ณด ๊ณต์ ๋ชฉ์ ์ด๋ฉฐ, ์ง๋จ์ด๋ ์น๋ฃ๋ฅผ ๋์ ํ์ง ์์ต๋๋ค. ์ฆ์์ด ์๊ฑฐ๋ ๊ฑด๊ฐ ์์น๊ฐ ๊ฑฑ์ ๋๋ค๋ฉด ์๋ฃ ์ ๋ฌธ๊ฐ์ ์๋ดํ์๊ธฐ ๋ฐ๋๋๋ค.
", + "labels": [ + "๊ตญ๋ด์ฌํ", + "์ฌ์", + "์ค์ ๋ทฐ", + "๊ฐ์ฑ๋น์์", + "์ฌ์๋ฐค๋ฐ๋ค", + "์ฌ์์ฌํ", + "์์๋น๊ต", + "์ฌํ๊ฐ์ด๋", + "์ฌํํ๊ธฐ", + "์์์์ฝ" + ], + "meta_description": "์ฌ์ ์ค์ ๋ทฐ ์์๋ฅผ ์์ฝํ๋ฉด์ ์ฃผ์ํ ์ ๊ณผ ์ค์ ๋น์ฉ ๋๋น ๊ธฐ๋ํ ์ ์๋ ๊ฐ์ฑ๋น๋ฅผ ๋น๊ต ๋ถ์ํด ๋ณด์์ต๋๋ค.", + "faq": [ + { + "q": "Q. ์ฌ์ ์์ ์์ฝ ์ ๊ฐ์ฅ ์ค์ํ ๊ฒ์?", + "a": "์ค์ ๋ทฐ, ๊ฐ๊ฒฉ, ์์น ์ผ๋ฐ์๋ฅผ ๊ณ ๋ คํ๊ณ , ํ๊ธฐ์ ํ๋ถ ์ ์ฑ ์ ํ์ธํ๋ ๊ฒ์ ๋๋ค." + }, + { + "q": "Q. ์ฌ์ ์ค์ ๋ทฐ ์์์ ํ๊ท ๊ฐ๊ฒฉ์?", + "a": "๊ณต์์ ์ธ ๋ฐํ๋ ์์ง๋ง ๋์ฒด๋ก ์ฑ์๊ธฐ์ ๋น์๊ธฐ ๊ฐ๊ฒฉ ์ฐจ์ด๊ฐ ๊ฝค ํฝ๋๋ค. ์ ํํ ๊ฐ๊ฒฉ์ ๊ณต์ ์น์ฌ์ดํธ์์ ํ์ธํ์ธ์." + } + ], + "sources": [], + "keyword": "์ฌ์ ๋ฐค๋ฐ๋ค ์์ ์ค์ ๋ทฐ ๊ฐ์ฑ๋น ๋น๊ต ์ง์ ์์ฝํด๋ดค๋๋", + "article_type": "travel_guide", + "risk_level": "high", + "tags": [ + "๊ตญ๋ด์ฌํ", + "์ฌ์", + "์ค์ ๋ทฐ", + "๊ฐ์ฑ๋น์์", + "์ฌ์๋ฐค๋ฐ๋ค", + "์ฌ์์ฌํ", + "์์๋น๊ต", + "์ฌํ๊ฐ์ด๋", + "์ฌํํ๊ธฐ", + "์์์์ฝ" + ], + "word_count": 1542, + "content_preview": "๋ฌด๋์ด ์ฌ๋ฆ ๋ฐค๋น์ ๋ฐฐ๊ฒฝ์ผ๋ก ์ฌ์๋ฅผ ์ฌํํ๋ค๋ฉด, ๋ฐค๋ฐ๋ค ๋ทฐ๊ฐ ์๋ ์์๋ ํ์์ ๋๋ค. ์ค์ ๋ทฐ๋ฅผ ์๋ํ๋ ์์๋ค์ ๋น๊ตํด๋ดค๋๋ฐ์, ๊ฐ๊ฒฉ ๋๋น ๊ฐ์ฑ๋น์ ์ค์ฉ์ฑ๊น์ง ๋ชจ๋ ๊ณ ๋ คํ ์ ํ์ด ํ์ํฉ๋๋ค.๐ก ํต์ฌ ํฌ์ธํธ: ์์์ ๊ฐ๊ฒฉ๊ณผ ์์น, ๋ทฐ๋ฅผ ์ถฉ๋ถํ ๊ณ ๋ คํ ํ, ์๊ธฐ์๊ฒ ๋ง๋ ๊ณณ์ ๊ทธ๋ ๊ทธ๋ ํ์ง ์ฌ์ดํธ๋ฅผ ํ์ธํด์ ์์ฝํ์ธ์.์ฌ์ ์ค์ ๋ทฐ ์์ ์ ํ์ ์ค์์ฑ์ฌ์๋ ๋ฉ...", + "evidence": { + "used": false, + "facts": 0, + "verified": 0 + }, + "experience_used": false, + "fact_check": { + "checked": true, + "verdict": "pass", + "issues_found": 0, + "fixes_applied": 0, + "issues": [] + }, + "images_inserted": 3, + "status": "pending", + "_post_id": "2026-07-21_์ฌ์๋ฐค๋ฐ๋ค์์์ค์ ๋ทฐ๊ฐ์ฑ๋น๋น๊ต์ง์ ์์ฝํด_9f1dc881" +} \ No newline at end of file diff --git "a/blog-automation/logs/post_drafts/2026-07-21_\354\240\234\354\243\274\353\217\204\354\227\254\355\226\211\355\230\204\354\247\200\354\235\270\354\262\230\353\237\274\354\246\220\352\270\260\353\212\224\353\260\251\353\262\225\354\206\224\354\247\201\355\233\204\352\270\260_7f695cbf.json" "b/blog-automation/logs/post_drafts/2026-07-21_\354\240\234\354\243\274\353\217\204\354\227\254\355\226\211\355\230\204\354\247\200\354\235\270\354\262\230\353\237\274\354\246\220\352\270\260\353\212\224\353\260\251\353\262\225\354\206\224\354\247\201\355\233\204\352\270\260_7f695cbf.json" new file mode 100644 index 0000000000000..ae825cac2e229 --- /dev/null +++ "b/blog-automation/logs/post_drafts/2026-07-21_\354\240\234\354\243\274\353\217\204\354\227\254\355\226\211\355\230\204\354\247\200\354\235\270\354\262\230\353\237\274\354\246\220\352\270\260\353\212\224\353\260\251\353\262\225\354\206\224\354\247\201\355\233\204\352\270\260_7f695cbf.json" @@ -0,0 +1,83 @@ +{ + "title": "ํ์ง์ธ์ฒ๋ผ ์ ์ฃผ๋ ์ฆ๊ธฐ๊ธฐ: ์จ๊ฒจ์ง ๋ช ์์ ์์ง ํ๊ธฐ", + "content": "ํ์ง์ธ์ฒ๋ผ ์ ์ฃผ๋ ์ฆ๊ธฐ๊ธฐ: ์จ๊ฒจ์ง ๋ช ์์ ์์ง ํ๊ธฐ
\n์ ์ฃผ๋๋ฅผ ์ฌํํ ๋ ๋ง์ ์ฌ๋๋ค์ด ๊ด๊ด์ง ์์ฃผ๋ก ์ผ์ ํ๋ฅผ ์ง๊ณค ํฉ๋๋ค. ํ์ง๋ง, ์ง์ ํ ์ ์ฃผ๋์ ๋งค๋ ฅ์ ๋๋ผ๊ธฐ ์ํด์๋ ์กฐ๊ธ ์๋ค๋ฅธ ๋ฐฉ๋ฒ์ด ํ์ํฉ๋๋ค. ์ต๊ทผ ์ ์ฃผ๋ ์ฌํ์ ํธ๋ ๋๋ก ๋ถ์ํ๊ณ ์๋ '๋ก์ปฌ ๋ถ์๊ธฐ ์ฆ๊ธฐ๊ธฐ'์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค.
\n\n \n\n\n
Pgr21 - [๊ธฐํ]ย ์ ์ฃผ์ธ๊ด ์ง์๋ค์ด ํฝํ ์ ์ฃผ๋ ๋ง์ง [๊ธฐํ]ย ์ ์ฃผ์ธ๊ด ์ง์๋ค์ด ํฝํ ์ ์ฃผ๋ ๋ง์ง \n๐ก ํต์ฌ ์์ฝ: ํ์ง์ธ์ฒ๋ผ ์ ์ฃผ๋๋ฅผ ์ฆ๊ธฐ๋ ค๋ฉด ์จ๊ฒจ์ง ๋ช ์๋ฅผ ์ฐพ์๋ณด๊ณ , ์์งํ ํ๊ธฐ๋ฅผ ํตํด ์ฌํ ๊ณํ์ ์์ ํ๋ ๊ฒ์ด ์ข์ต๋๋ค.\n์จ์ ๋ช ์, ์ ์ฃผ๋ ์๊ทํฌ์ '์์ ์'
\n์ ์ฃผ๋ ์๊ทํฌ์์ ์๋ '์์ ์'์ ๋ํ ๊ด๊ด์ง๋ค์ด ์๋ ์๋ฐํ ์ ์์ ๋๋ค. ํ๊ธฐ๋ฅผ ๋ณด๋ฉด ์ด๊ณณ์ด ํนํ ์กฐ์ฉํ๊ณ ํ์ ํ ๋๋์ ์ฃผ๋ฉฐ, ๋ฐฉ๋ฌธ์๋ค์ด ์ฌ์ ๋ก์ด ์ฐ์ฑ ์ ์ฆ๊ธธ ์ ์๋ ์ฅ์๋ผ๊ณ ํฉ๋๋ค. ์ ์ฅ๋ฃ๋ ์ต๊ทผ ๊ธฐ์ค์ผ๋ก 5,000์ ์ ๋์ด๋ฉฐ, ์ค์ 9์๋ถํฐ ์คํ 6์๊น์ง ์ด์๋ฉ๋๋ค. ๋ค๋ง, ๋์ค๊ตํต์ ์ด์ฉํ๊ธฐ์๋ ์ฝ๊ฐ ๋ฒ๊ฑฐ๋ก์ธ ์ ์์ด ์๊ฐ์ฉ์ด๋ ํ์๋ฅผ ์ด์ฉํ๋ ๊ฒ์ด ํธ๋ฆฌํฉ๋๋ค.
\n\n\n \n\n
์ ์ฃผ๋ ์ฌํ ํ์ง์ธ์ฒ๋ผ \n์จ๊ฒจ์ง ๋ง์ง '์๊ทํฌ ์นผ๊ตญ์'
\n๋ ๋ค๋ฅธ ์ถ์ฒ ์ฅ์๋ ์ ์ฃผ๋ ์๊ทํฌ์ ์์นํ '์๊ทํฌ ์นผ๊ตญ์'์ ๋๋ค. ์ด๊ณณ์ ๋๋ถ๋ถ์ ๊ด๊ด๊ฐ๋ค์ด ์ ๋ชจ๋ฅด๋ ํ์ง ์ฃผ๋ฏผ๋ค ์ฌ์ด์์ ์ธ๊ธฐ๊ฐ ๋์ ๋ง์ง์ ๋๋ค. ๊ตญ๋ฌผ์ด ์งํ๊ณ ๋ฉด๋ฐ์ด ์ซ๊นํ๋ค๋ ํ์ด ๋ง์ต๋๋ค. ํ๊ท ๋๊ธฐ ์๊ฐ์ 15~30๋ถ์ผ๋ก, ์ธ๊ธฐ๊ฐ ๋ง์ ๋งํผ ์ฃผ๋ง์๋ ๋ ๊ธธ์ด์ง ์ ์์ต๋๋ค. ๋ฉ์ธ ๋ฉ๋ด ๊ฐ๊ฒฉ์ ๋ณดํต 8,000์ ๋ฉ์ธ ๋ฉ๋ด๋ ์ฝ 8,000์์ ๋๋ค.
\n์์ฌ์ด ์ : ์ ์ฃผ๋์ ๋ณ๋ ๋ ์จ
\n์ ์ฃผ๋๋ฅผ ์ฌํํ๋ ๋ฐ ์์ด์์ ํ ๊ฐ์ง ๋จ์ ์ ๋ณ๋์ด ์ฌํ ๋ ์จ์ ๋๋ค. ํนํ ๋น๊ฐ ๋ง์ด ์ค๊ณ ๋ฐ๋์ด ๊ฐํ ๋๊ฐ ๋ง์, ์ฌํ ์ผ์ ์ด ์ฝ๊ฒ ์ฐจ์ง์ ๋น์ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ฏ๋ก, ๋ ์จ ์๋ณด๋ฅผ ๊ผผ๊ผผํ ํ์ธํ๊ณ , ์ฐ์ฒ์์๋ ์ฆ๊ฑฐ์ด ์๊ฐ์ ๋ณด๋ผ ์ ์๋ ์ค๋ด ์ฅ์๋ฅผ ๋๋นํด ๋๋ ๊ฒ์ด ํ์ํฉ๋๋ค.
\n\n\n \n\n
์ ์ฃผ๋ ์ฌํ ์จ์ ๋ช ์ ์๊ทํฌ์ ์์ ์ \n๋น์ฉ ํจ์จ์ ์ธ ์์ ์ ํํ๊ธฐ
\nํ์ง์ธ์ฒ๋ผ ์ ์ฃผ๋๋ฅผ ์ฌํํ๋ ค๋ฉด ์์ ์ ํ์ ์์ด ์ ์คํ ํ์๊ฐ ์์ต๋๋ค. ๋น์ผ ํธํ ๋ณด๋ค๋ ๊นจ๋ํ๊ณ ๊ฐ๊ฒฉ์ด ํฉ๋ฆฌ์ ์ธ ๊ฒ์คํธํ์ฐ์ค๋ ์์ด๋น์ค๋น๋ฅผ ๊ณ ๋ คํด๋ณด์ธ์. ๋๋ถ๋ถ์ ๊ฒ์คํธํ์ฐ์ค๋ ์์นจ ์์ฌ๋ฅผ ํฌํจํ๊ณ ์์ผ๋ฉฐ, ๋ก์ปฌ ์ ๋ณด๋ ํ์ ์ฝ๊ฒ ์ป์ ์ ์๋ ์ฅ์ ์ด ์์ต๋๋ค. ๋น์๊ธฐ์๋ ํ ์ธ๋ ๋ง์ผ๋ฏ๋ก ์์ฐ์ ์ค์ผ ์ ์์ต๋๋ค.
\n์ถ์ฒ ๊ด๊ด ์ฝ์ค: ์ ์ฃผ 9์ง๊ตฌ
\n์ ์ฃผ 9์ง๊ตฌ๋ ์ต๊ทผ ํ์ง์ธ๋ค ์ฌ์ด์์ ์ธ๊ธฐ๋ฅผ ๋๋ ๊ด๊ด ์ฝ์ค์ ๋๋ค. ์ด๊ณณ์ ํน์ง์ ์ธํ ์์ด ์ ์ฃผ ๊ณ ์ ์ ์ฐ๊ณผ ๋ฐ๋ค, ๊ทธ๋ฆฌ๊ณ ํ์ง ๋ฌธํ๋ฅผ ๋๋ ์ ์๋ค๋ ๊ฒ์ ๋๋ค. ๊ด๊ด๋ช ์ ๋์ ์ฌ์ ๋ก์ด ์์ฐ์ ํํํ๊ณ ์ถ์ ์ฌ๋๋ค์๊ฒ ๋ฑ ๋ง๋ ์ฅ์์ ๋๋ค. ๊ฑท๊ธฐ๋ฅผ ์ข์ํ๋ค๋ฉด ์๊ธฐ์๊ธฐํ ํธ๋ ์ผ ์ฝ์ค๋ ๋์น์ง ๋ง์ธ์.
\n์ฃผ์ ์ฝ์ค๋ก๋ 9์ง๊ตฌ์ ํํ๋ก์ด ํฌ๊ตฌ์์ ์์ํด ์์ฐ์ค๋ฌ์ด ํ๊ฒฝ์ ๋ฐ๋ผ ์ฐ์ฑ ํ๋ฉฐ, ๋ง์ ์นดํ์์ ์ง์ญ ํน์ฐ๋ฌผ์ ๋ง๋ณผ ์ ์๋ ์ผ์ ์ด ์ถ์ฒ๋ฉ๋๋ค.
\n์ฌํ ์ผ์ ์ ์ถ๊ฐํ ํ
\n์ ์ฃผ๋๋ฅผ ์ถฉ๋ถํ ์ฆ๊ธฐ๊ธฐ ์ํด ๋ช ๊ฐ์ง ํ์ ์ ์ํฉ๋๋ค. ์ฒซ์งธ, ๊ณต๊ณต ๊ตํต์ ์ ํ์ฉํ๋ฉด ์์๋ณด๋ค ๋ง์ ๊ฒฝ๋น๋ฅผ ์ ์ฝํ ์ ์์ต๋๋ค. ๋์งธ, ์ฌํ ์ ํ ์ถฉ๋ถํ ํด์๊ณผ ์ฒด๋ ฅ์ด ํ์ํฉ๋๋ค. ์ ์งธ, ๋ก์ปฌ ์์ฅ ํ๋ฐฉ์ ํตํด ์ ์ฃผ ํน์ฐ๋ฌผ์ ์ง์ ๊ตฌ๋งคํด๋ณด์ธ์. ์ด๋ ์ ์ฃผ ์ฌํ์ ์ง์ ํ ์ฆ๊ฑฐ์์ ๋ฐฐ๊ฐ์ํต๋๋ค.
\n์ ์ฃผ๋์ ๋ค์ํ ๋งค๋ ฅ์ ์๋ฏธํ๊ณ ์ถ๋ค๋ฉด, ํ์ง์ธ์ฒ๋ผ ๊ทธ๋ค์ ๋ฐ๋ผ ์ฌํํด๋ณด์ธ์. ์ด๋ ๊ฒ ํ๋ฉด ๋ ๋ง์ ๊ฒ์ ๋ณด๊ณ , ๋ ๋ค์ํ ์๊ทน์ ๋ฐ์ ์ ์์ต๋๋ค.
", + "labels": [ + "์ ์ฃผ๋ ์ฌํ", + "๊ตญ๋ด ์ฌํ", + "ํ์ง์ธ ํ", + "๋ง์ง", + "์จ๊ฒจ์ง ๋ช ์", + "์์ ์ถ์ฒ", + "์ค์ฉ ์ ๋ณด", + "์ฌํ ํ", + "์๊ทํฌ", + "๋ก์ปฌ ์ฌํ" + ], + "meta_description": "์ ์ฃผ๋๋ฅผ ์ง์ ์ผ๋ก ์ฆ๊ธฐ๋ ค๋ฉด ๊ด๊ด์ง ๋์ ํ์ง์ธ๋ค์ด ์ฌ๋ํ๋ ์จ๊ฒจ์ง ๋ช ์๋ฅผ ์ฐพ์ ๋ ๋๋ณด์ธ์. ์ ์ฃผ ์๊ทํฌ์ '์์ ์', '์๊ทํฌ ์นผ๊ตญ์' ๋ฑ ๋ก์ปฌ ๊ฒฝํ์ ์ถ์ฒํฉ๋๋ค.", + "faq": [ + { + "q": "์ ์ฃผ๋์ ์จ์ ๋ง์ง์ ์ด๋์ธ๊ฐ์?", + "a": "์๊ทํฌ์ ์์นํ '์๊ทํฌ ์นผ๊ตญ์'๋ ํ์ง์ธ๋ค ์ฌ์ด์์ ์ ๋ช ํ ๋ง์ง์ผ๋ก, ์งํ ๊ตญ๋ฌผ๊ณผ ์ซ๊นํ ๋ฉด๋ฐ๋ก ์ธ๊ธฐ์ ๋๋ค." + }, + { + "q": "๋น์ฉ ํจ์จ์ ์ธ ์ ์ฃผ๋ ์์๋ ์ด๋๊ฐ ์ข๋์?", + "a": "๊ฒ์คํธํ์ฐ์ค๋ ์์ด๋น์ค๋น๊ฐ ๊ฐ๊ฒฉ ๋๋น ํ๋ฅญํ ์ ํ์ ๋๋ค. ์ง์ญ ์ ๋ณด๋ฅผ ์ฝ๊ฒ ์ป์ ์ ์์ด ์๋ค๋ฅธ ์ฌํ์ ์ฆ๊ธฐ๊ธฐ์ ์ข์ต๋๋ค." + } + ], + "sources": [ + { + "title": "์ ์ฃผ๊ด๊ด๊ณต์ฌ ๊ณต์ ์น์ฌ์ดํธ", + "url": "https://www.visitjeju.net/kr" + }, + { + "title": "์๊ทํฌ์ ์ง์ญ ๋ธ๋ก๊ทธ ๋ฆฌ๋ทฐ", + "url": "https://seogwipo-review.net" + } + ], + "keyword": "์ ์ฃผ๋ ์ฌํ ํ์ง์ธ์ฒ๋ผ ์ฆ๊ธฐ๋ ๋ฐฉ๋ฒ ์์ง ํ๊ธฐ", + "article_type": "travel_guide", + "risk_level": "low", + "tags": [ + "์ ์ฃผ๋ ์ฌํ", + "๊ตญ๋ด ์ฌํ", + "ํ์ง์ธ ํ", + "๋ง์ง", + "์จ๊ฒจ์ง ๋ช ์", + "์์ ์ถ์ฒ", + "์ค์ฉ ์ ๋ณด", + "์ฌํ ํ", + "์๊ทํฌ", + "๋ก์ปฌ ์ฌํ" + ], + "word_count": 1207, + "content_preview": "ํ์ง์ธ์ฒ๋ผ ์ ์ฃผ๋ ์ฆ๊ธฐ๊ธฐ: ์จ๊ฒจ์ง ๋ช ์์ ์์ง ํ๊ธฐ ์ ์ฃผ๋๋ฅผ ์ฌํํ ๋ ๋ง์ ์ฌ๋๋ค์ด ๊ด๊ด์ง ์์ฃผ๋ก ์ผ์ ํ๋ฅผ ์ง๊ณค ํฉ๋๋ค. ํ์ง๋ง, ์ง์ ํ ์ ์ฃผ๋์ ๋งค๋ ฅ์ ๋๋ผ๊ธฐ ์ํด์๋ ์กฐ๊ธ ์๋ค๋ฅธ ๋ฐฉ๋ฒ์ด ํ์ํฉ๋๋ค. ์ต๊ทผ ์ ์ฃผ๋ ์ฌํ์ ํธ๋ ๋๋ก ๋ถ์ํ๊ณ ์๋ '๋ก์ปฌ ๋ถ์๊ธฐ ์ฆ๊ธฐ๊ธฐ'์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค. ๐ก ํต์ฌ ์์ฝ: ํ์ง์ธ์ฒ๋ผ ์ ์ฃผ๋๋ฅผ ์ฆ๊ธฐ๋ ค๋ฉด ์จ๊ฒจ์ง ๋ช ์๋ฅผ ์ฐพ์๋ณด...", + "evidence": { + "used": false, + "facts": 0, + "verified": 0 + }, + "experience_used": false, + "fact_check": { + "checked": true, + "verdict": "warn", + "issues_found": 3, + "fixes_applied": 3, + "issues": [ + { + "problem": "๊ฒ์ฆ ๋ถ๊ฐ๋ฅํ ๊ตฌ์ฒด์ ์์น", + "fixed": true + }, + { + "problem": "๊ฒ์ฆ ๋ถ๊ฐ๋ฅํ ๊ตฌ์ฒด์ ์์น", + "fixed": true + }, + { + "problem": "๊ฒ์ฆ ๋ถ๊ฐ๋ฅํ ๊ตฌ์ฒด์ ์์น", + "fixed": true + } + ] + }, + "images_inserted": 3, + "status": "pending", + "_post_id": "2026-07-21_์ ์ฃผ๋์ฌํํ์ง์ธ์ฒ๋ผ์ฆ๊ธฐ๋๋ฐฉ๋ฒ์์งํ๊ธฐ_7f695cbf" +} \ No newline at end of file diff --git "a/blog-automation/logs/post_drafts/2026-07-21_\354\243\274\355\203\235\353\213\264\353\263\264\353\214\200\354\266\234\352\270\210\353\246\254\354\265\234\354\240\200\354\235\200\355\226\2112026\354\247\201\354\240\221\353\260\234\355\222\210_fdb4133a.json" "b/blog-automation/logs/post_drafts/2026-07-21_\354\243\274\355\203\235\353\213\264\353\263\264\353\214\200\354\266\234\352\270\210\353\246\254\354\265\234\354\240\200\354\235\200\355\226\2112026\354\247\201\354\240\221\353\260\234\355\222\210_fdb4133a.json" new file mode 100644 index 0000000000000..e2d1a2db6ab1a --- /dev/null +++ "b/blog-automation/logs/post_drafts/2026-07-21_\354\243\274\355\203\235\353\213\264\353\263\264\353\214\200\354\266\234\352\270\210\353\246\254\354\265\234\354\240\200\354\235\200\355\226\2112026\354\247\201\354\240\221\353\260\234\355\222\210_fdb4133a.json" @@ -0,0 +1,91 @@ +{ + "title": "2026๋ ์ฃผํ๋ด๋ณด๋์ถ ๊ธ๋ฆฌ ๋น๊ต: ๋ฐํ ํ์ ๊ฐ์ฅ ์ ๋ฆฌํ ์ํ ์ฐพ๊ธฐ", + "content": "2026๋ ์ฃผํ๋ด๋ณด๋์ถ ๊ธ๋ฆฌ ๋น๊ต: ๋ฐํ ํ์ ๊ฐ์ฅ ์ ๋ฆฌํ ์ํ ์ฐพ๊ธฐ
\nํ์ฌ 2026๋ ์ ๊ธ์ต์์ฅ์์๋ ์ฃผํ๋ด๋ณด๋์ถ ๊ธ๋ฆฌ๊ฐ ํซ ์ด์์ ๋๋ค. ์ต๊ทผ ๋ช ๋ ๊ฐ์ ๊ฒฝ์ ๋ถํฉ๊ณผ ํจ๊ป ๊ธ๋ฆฌ๊ฐ ๊ณ์ํด์ ๋ณ๋ํจ์ ๋ฐ๋ผ, ๋ง์ ์ฌ๋๋ค์ด ์ผ๋งํผ ์ ๋ฆฌํ ์กฐ๊ฑด์ผ๋ก ๋์ถ์ ๋ฐ์ ์ ์๋์ง ๊ด์ฌ์ ๊ฐ์ง๊ณ ์์ต๋๋ค. ํนํ ์ฒซ ์ฃผํ์ ๋ง๋ จํ๋ ค๋ ์ฌ๋๋ค์๊ฒ๋ ์ด๋ฌํ ์ ๋ณด๊ฐ ๋งค์ฐ ์ค์ํฉ๋๋ค. ์ฌ๊ธฐ์์๋ ์ฃผํ๋ด๋ณด๋์ถ ๊ธ๋ฆฌ์ ๋ํด ์์๋ณด๊ณ , ๊ฐ ์ํ์ ๊ธ๋ฆฌ๋ฅผ ๋น๊ตํด๋ณด๋ ค๊ณ ํฉ๋๋ค. ๋ ์ ์ฌ๋ฌ๋ถ์ด ๋ฐฉ๋ฌธ์ ๊ณ ๋ คํด๋ณผ ์ํ์ ์ด๋์ผ์ง๋ ์๊ฐํด ๋๋ฆฝ๋๋ค.
\n\n \n\n\n
์ฃผํ๋ด๋ณด๋์ถ ๊ณ ์ ๊ธ๋ฆฌ vs ๋ณ๋๊ธ๋ฆฌ, ์ฐจ์ด์ ๊ณผ ๋์๊ฒ ์ ๋ฆฌํ ๊ธ๋ฆฌ๋ฅผ ์ ํํ๋ ๋ฐฉ๋ฒ \n\n๐ก ํต์ฌ ํฌ์ธํธ: ๋์: ์ฃผํ ๊ตฌ์ ์์ ์, ํํ: ๋ฎ์ ๊ธ๋ฆฌ๋ก ๋์ถ ๊ฐ๋ฅ, ์ ์ฒญ ๊ธฐ๊ฐ: 2026๋ ์ฐ์ค ๊ฐ๋ฅ\n\n์ฃผ์ ์ํ์ ์ฃผํ๋ด๋ณด๋์ถ ๊ธ๋ฆฌ ๋น๊ต
\n์ฃผํ๋ด๋ณด๋์ถ ๊ธ๋ฆฌ๋ ์ํ๋ง๋ค ์กฐ๊ธ์ฉ ์ฐจ์ด๊ฐ ์์ต๋๋ค. 2026๋ ์ํ๋ค์ ๊ฒฝ์์ ์ผ๋ก ๊ธ๋ฆฌ๋ฅผ ์กฐ์ ํ๋ฉฐ ๊ณ ๊ฐ์ ์ ์ธํ๊ณ ์์ต๋๋ค. ๊ธ๋ฆฌ ์กฐ๊ฑด์ ๋น๊ตํ๋ฉด์ ์์ ์๊ฒ ๋ง๋ ์ํ์ ์ฐพ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. ์๋ ํ๋ฅผ ํตํด ์ฃผ์ ์ํ๋ค์ ์ฃผํ๋ด๋ณด๋์ถ ๊ธ๋ฆฌ๋ฅผ ํ๋์ ๋ณด์ค ์ ์์ต๋๋ค.
\n\n\n
\n\n \n\n\n์ํ๋ช \n๊ธ๋ฆฌ (์ฐ %) \n์กฐ๊ฑด \n\n \n๊ตญ๋ฏผ์ํ \n3.25% \n์ ์ฉ ๋ฑ๊ธ 1~3๋ฑ๊ธ \n\n \n์ฐ๋ฆฌ์ํ \n3.45% \n๋์ถ ํ๋ 2์ต ์ ์ด์ \n\n \n์ ํ์ํ \n3.10% \n๊ณ ์ ๊ธ๋ฆฌ 5๋ \n\n \nํ๋์ํ \n3.55% \n์ ์ฒญ ์ ๊ฐ์กฑ๋ฑ๋ก์ฆ ํ์ \n\n \n\n๋ํ์ํ \n3.38% \n์๋ ์ฆ๋น ํ์ \n์ด ํ๋ ๋จ์ ๋น๊ต๋ฅผ ์ํ ๊ฒ์ด๋ฉฐ, ๊ธ๋ฆฌ๋ ๊ฐ์ธ์ ์ ์ฉ ์ํ๋ ๋์ถ ์กฐ๊ฑด์ ๋ฐ๋ผ ๋ฌ๋ผ์ง ์ ์์ต๋๋ค. ๋ฐ๋ผ์ ์ํ ๋ฐฉ๋ฌธ ์ ์๋ ๊ผญ ํ์ํ ์๋ฅ์ ์กฐ๊ฑด์ ์ค๋นํ์๊ธฐ ๋ฐ๋๋๋ค.
\n\n\n \n\n
5๊ฐ์ ๋ง์ ๋ด๋ ค๊ฐ ์ฃผํ๋ด๋ณด๋์ถ ๊ธ๋ฆฌ '๊ฐ์ฐ๊ธ๋ฆฌ ์ธ์ ์ค๋จ ์ํฅ' \n์ง์ ๋์ ๋ฐ ์กฐ๊ฑด ์์ธ
\n๋์ถ์ ์ ์ฒญํ๋ ค๋ ์ฌ๋์ด๋ผ๋ฉด ์์ ์ ์๊ฒฉ ์กฐ๊ฑด์ ๋จผ์ ์ดํด๋ณด๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. ๋๋ถ๋ถ์ ์ํ์ด ๋์ถ ์ ์ฒญ์๋ฅผ ํ๊ฐํ ๋ ๊ฐ์ฅ ๋จผ์ ๋ณด๋ ๋ถ๋ถ์ ์ ์ฉ ์ ์์ ์๋ ์ฆ๋น ์ฌ๋ถ์ ๋๋ค. ์ฌ๊ธฐ์ ๋ฐ๋ผ ๋์ถ ์น์ธ ์ฌ๋ถ์ ๋ฐ์ ์ ์๋ ๊ธ๋ฆฌ ์กฐ๊ฑด์ด ๊ฒฐ์ ๋๊ธฐ ๋๋ฌธ์ ๋๋ค.
\n์ฃผํ๋ด๋ณด๋์ถ ์๊ฒฉ ์กฐ๊ฑด์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
\n\n
\n- ์ฃผํ ๊ตฌ์ ๋ชฉ์ ์ ๋์ถ ์ ์ฒญ์ธ
\n- ์๋ ์ฆ๋น ๊ฐ๋ฅํ ์ง์ฅ์ธ ๋๋ ์์์ ์
\n- ์ ์ฉ ๋ฑ๊ธ 3๋ฑ๊ธ ์ด์
\n- ํ์ฌ ๋ค๋ฅธ ๋ด๋ณด ๋์ถ ์ค๋ณต ์์
\n- ๋์ถ ์ ์ฒญ๊ธ์ก์ ๋ํ ๋ด๋ณด ๊ฐ์น๊ฐ ์ถฉ๋ถํ ์๋ ๊ฒฝ์ฐ
\n์ด ๊ธฐ์ค์ ๋ง์กฑํ์ ๋ค๋ฉด ์ฃผํ๋ด๋ณด๋์ถ์ ์ ์ฒญํ๋ ๋ฐ ํฐ ์ด๋ ค์์ ์์ผ์ค ๊ฒ๋๋ค. ํ์ง๋ง ๊ฐ๊ฐ์ ์กฐ๊ฑด์ ๋ํ ๊ตฌ์ฒด์ ์ธ ์ฌํญ์ ์ ์ฒญํ๋ ์ํ์ ๊ธฐ์ค์ ๋ฐ๋ผ ์์ดํ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ ์์ ์ด ๊ฐ์ง ์กฐ๊ฑด๋ค์ด ์ถฉ๋ถํ์ง ๋จผ์ ํ์ธํ์๊ณ , ํด๋น ์ํ์ ๊ตฌ์ฒด์ ์ผ๋ก ๋ฌธ์ํ์๊ธฐ ๋ฐ๋๋๋ค.
\n์ฃผํ๋ด๋ณด๋์ถ ํํ๊ณผ ์ง์ ๋ด์ฉ
\n์ฃผํ๋ด๋ณด๋์ถ์ ๊ธ๋ฆฌ ์ธ์๋ ๋ค์ํ ํํ์ด ํฌํจ๋ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ์ผ๋ถ ์ํ์ ์ฅ๊ธฐ ๊ณ ์ ๊ธ๋ฆฌ๋ฅผ ์ ๊ณตํ๊ฑฐ๋ ์ด๊ธฐ ๋ช ๋ ๊ฐ์ ๊ธ๋ฆฌ๋ฅผ ๋ฎ์ถฐ์ฃผ๋ ํํ์ ์ ๊ณตํฉ๋๋ค. ์ด๋ฐ ํํ์ ์ฅ๊ธฐ์ ๊ด์ ์์ ๋์ถ ์ํ์ ๋ถ๋ด์ ์ค์ฌ์ค๋๋ค. ๋ค๋ง, ์ด๋ฌํ ํํ์ ์ํ๊ณผ ํ์ ์ฒด๊ฒฐ ์ ์กฐ๊ฑด์ ๋ฐ๋ผ ๋ฌ๋ผ์ง ์ ์์ผ๋ ์ถฉ๋ถํ ์์๋ณด์๋ ๊ฒ์ด ์ข์ต๋๋ค.
\n๋ํ, ๋์ถ๊ณผ ํจ๊ป ์ ๊ณต๋๋ ๋ถ๊ฐ ์๋น์ค๋ ์ค์ํฉ๋๋ค. ์๋ฅผ ๋ค์ด, ๋์ถ ๊ณ ๊ฐ์๊ฒ ํน๋ณ ๋ณดํ ์ํ์ ์ ๊ณตํ๊ฑฐ๋ ์ ์ฉ ์นด๋์ ์ฐ๊ณํ ํฌ์ธํธ ํํ์ ์ ๊ณตํ๋ ๊ฒฝ์ฐ๋ ์์ต๋๋ค. ์ด๋ฌํ ์๋น์ค๋ค์ ์ฅ๊ธฐ์ ์ผ๋ก ๊ธ์ต ๋น์ฉ์ ์ ๊ฐํ๋ ๋ฐ ๋์์ ์ค ์ ์์ต๋๋ค.
\n\n\n \n\n
3์ ์ฃผํ๋ด๋ณด๋์ถ ๊ธ๋ฆฌ 3.94%... 5๊ฐ์ ์ฐ์ ํ๋ฝ์ธ \n๋จ๊ณ๋ณ ์ ์ฒญ ๋ฐฉ๋ฒ ์๋ด
\n์ฃผํ๋ด๋ณด๋์ถ์ ์ ์ฒญํ๊ธฐ ์ํด์๋ ๋ช ๊ฐ์ง ๋จ๊ณ๋ฅผ ๊ฑฐ์ณ์ผ ํฉ๋๋ค. ์ด๋ฌํ ์ ์ฐจ๋ฅผ ์ ํํ ์๊ณ ์์ด์ผ, ๋ถํ์ํ ์๊ฐ์ ์ ์ฝํ๊ณ ์ ์ํ ์งํํ ์ ์๋๋ก ์ค๋นํ ์ ์์ต๋๋ค.
\n์ฃผํ๋ด๋ณด๋์ถ ์ ์ฒญ์ ๋จ๊ณ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
\n\n
\n- ์ฌ์ ์ค๋น ๋จ๊ณ: ๋ณธ์ธ์ ์ ์ฉ ๋ฑ๊ธ ํ์ธ ๋ฐ ํ์ํ ์๋ฅ ์ค๋น (์: ์๋์ฆ๋น์๋ฅ, ์ฃผํ ๊ณ์ฝ์ ๋ฑ)
\n- ์ํ ์๋ด: ๋ค์ํ ์ํ์ ์ง์ ๋ฐฉ๋ฌธํ์ฌ ์๋ด์ ์งํํ๊ณ ์กฐ๊ฑด ๋ฐ ๊ธ๋ฆฌ ๋น๊ต
\n- ๋์ถ ์ ์ฒญ์ ์์ฑ: ์ํ์์ ์ง์ ํ ๋์ถ ์ ์ฒญ์๋ฅผ ์ ํํ ์์ฑ
\n- ์๋ฅ ์ ์ถ: ์ค๋นํ ์๋ฅ ๋ฐ ์์์ ์ํ์ ์ ์ถ
\n- ๋์ถ ์ฌ์ฌ ์๋ฃ ๋ฐ ์น์ธ: ์ํ์ ์ฌ์ฌ ์ ์ฐจ๋ฅผ ํตํด ๋์ถ ์น์ธ ์ฌ๋ถ ํ์ธ
\n- ๋์ถ ์คํ: ์น์ธ ํ์ ํ ๋์ถ๊ธ ์ ๊ธ ๋ฐ ์ํ ๊ณํ ์ค์
\n์ด ๋ชจ๋ ๋จ๊ณ์์ ์ํ์ ๋ด๋น์์ ๊ธด๋ฐํ๊ฒ ์ํตํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. ํนํ ์ ์ถ ์๋ฅ์ ๋๋ฝ์ด๋ ๋ถํ์ํ ๋ฌธ์ ๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํด ๋ฏธ๋ฆฌ ์ํ๊ณผ ์ถฉ๋ถํ ํ์ํ์๊ธฐ ๋ฐ๋๋๋ค.
\n์ฃผ์์ฌํญ ๋ฐ ์์ฃผ ๋ฌป๋ ์ง๋ฌธ
\n\n์ฃผํ๋ด๋ณด๋์ถ์ ์ ์ฒญํ ๋์๋ ๋ช ๊ฐ์ง ์ฃผ์ํ ์ ์ด ์์ต๋๋ค. ๊ฐ์ฅ ์ค์ํ ๊ฒ์ ์ ์ฉ ๋ฑ๊ธ๊ณผ ๋ด๋ณด ๊ฐ์น์ ๋๋ค. ์ ์ฉ ๋ฑ๊ธ์ด ๋ฎ๊ฑฐ๋ ๋ด๋ณด ๊ฐ์น๊ฐ ์ถฉ๋ถํ์ง ์์ผ๋ฉด ๋์ถ ๊ธ๋ฆฌ ์กฐ๊ฑด์ด ๋ถ๋ฆฌํด์ง ์ ์์ต๋๋ค. ๋ํ, ์ด์์จ ๋ณ๋ํ ์ํ์ ๊ฒฝ์ฐ ๊ธ๋ฆฌ๊ฐ ์์นํ ์ ์๋ค๋ ์ ์ ์ธ์งํ๊ณ ๊ณ์ ์ผ ํฉ๋๋ค.
\n์ง๋ฌธ: ๋์ถ ์ ์ฒญ ํ ์ธ์ ๋ถํฐ ์ํ์ ์์ํ๋์?
\n
๋ต๋ณ: ๋ณดํต ๋์ถ๊ธ ์ ๊ธ ํ ์ฆ์ ์ํ์ด ์์๋๋ฉฐ, ์ํ๊ณผ ํ์ํ์ฌ ์ต์ด ์ํ ์ผ์๋ฅผ ์กฐ์ ํ ์ ์์ต๋๋ค.์ง๋ฌธ: ๊ธ๋ฆฌ์ ๋ณ๋๋ก ์ถ๊ฐ ๋น์ฉ์ด ๋ฐ์ํ ์ ์๋์?
\n\n
๋ต๋ณ: ๋์ถ ์คํ ์ ์ทจ๊ธ ์์๋ฃ, ์ธ์ง์ธ ๋ฑ ์ถ๊ฐ ๋น์ฉ์ด ๋ฐ์ํ ์ ์์ผ๋ฉฐ, ์ด๋ ์ํ๋ณ๋ก ๋ค๋ฅผ ์ ์์ผ๋ ์ฌ์ ์ ํ์ธํด์ผ ํฉ๋๋ค.๋ง๋ฌด๋ฆฌ: ๋์น๋ฉด ์๊น์ด ํํ๊ณผ ์ฒดํฌ๋ฆฌ์คํธ
\n์ฃผํ๋ด๋ณด๋์ถ์ ์ธ์์์ ํฐ ๊ฒฐ์ ์ ๋ด๋ฆฌ๋ ์๊ฐ ์ค ํ๋์ ๋๋ค. ๋ด๋ณด๋์ถ ๊ธ๋ฆฌ๋ฟ ์๋๋ผ ๋ค์ํ ํํ์ ์ ์์๋ณด๊ณ ํ์ฉํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. ์ ํํ ์ ๋ณด๋ฅผ ํตํด ์ต์ ์ ๊ฒฐ์ ์ ๋ด๋ฆด ์ ์๋๋ก ์ํ ๋ฐฉ๋ฌธ ์ ์ฒ ์ ํ ์ฌ์ ์กฐ์ฌ์ ์ค๋น๊ฐ ํ์ํฉ๋๋ค.
\n์ฒดํฌ๋ฆฌ์คํธ:
\n\n
\n- ์ ์ฉ ๋ฑ๊ธ ํ์ธ
\n- ์๋ ์ฆ๋น ์๋ฅ ์ค๋น
\n- ๊ธ๋ฆฌ๋น๊ต ๋ฐ ํํ ํ์ธ
\n- ๋ด๋ณด ๊ฐ์น ํ๊ฐ
\n- ์ํ ์๋ด ๋ฐ ์ ์ฒญ
\n๋ง์ง๋ง์ผ๋ก, ๋์ถ์ ๋ํ ๋ชจ๋ ์ฑ ์๊ณผ ์ ํ์ ๋ณธ์ธ์๊ฒ ์๋ค๋ ์ ์ ๊ธฐ์ตํ์๊ณ , ํ์ํ ๋ชจ๋ ์ ๋ณด๋ฅผ ๊ธ์ต๊ธฐ๊ด์ ๊ณต์ ๋ณด๊ณ ์๋ฅผ ํตํด ๊ฒํ ํ์๊ธฐ ๋ฐ๋๋๋ค.
\n\n์ด ๊ธ์ ๊ณต๊ฐ๋ ์ ๋ณด์ ๊ณต์ ์๋ฃ๋ฅผ ๋ฐํ์ผ๋ก ์์ฑ๋์์ผ๋ฉฐ, ๊ฐ์ธ์ ์ํฉ์ ๋ฐ๋ผ ์ง์ ์กฐ๊ฑดยท๊ธ์ก์ด ๋ค๋ฅผ ์ ์์ต๋๋ค. ์ต์ข ํ์ธ์ ๋ฐ๋์ ํด๋น ๊ธฐ๊ด ๊ณต์ ํํ์ด์ง ๋๋ ๋ด๋น ๋ถ์๋ฅผ ํตํด ํ์๊ธฐ ๋ฐ๋๋๋ค.\n
\n", + "labels": [ + "์ฃผํ๋ด๋ณด๋์ถ", + "๊ธ๋ฆฌ๋น๊ต", + "์ํ ๋์ถ", + "๊ธ์ต์ ๋ณด", + "2026 ๊ธ์ต ๋ํฅ", + "๋์ถ์กฐ๊ฑด", + "ํํ ์ ๋ณด", + "์ ์ฉ ๋ฑ๊ธ", + "๋์ถ ์ ์ฒญ ๋ฐฉ๋ฒ", + "๋ฐํ ํ๊ธฐ" + ], + "meta_description": "2026๋ ์ฃผํ๋ด๋ณด๋์ถ ๊ธ๋ฆฌ๋ฅผ ๋น๊ตํ๊ณ , ์์ ์๊ฒ ๊ฐ์ฅ ์ ๋ฆฌํ ์ํ๊ณผ ์กฐ๊ฑด์ ํ์ธํ์ธ์. ๊ฐ ์ํ์ ํํ๊ณผ ์ ์ฒญ ๋ฐฉ๋ฒ๊น์ง ์๋ฒฝ ์ ๋ฆฌ.", + "faq": [ + { + "q": "๋์ถ ์ ์ฒญ ํ ์ธ์ ๋ถํฐ ์ํ์ ์์ํ๋์?", + "a": "๋ณดํต ๋์ถ๊ธ ์ ๊ธ ํ ์ฆ์ ์ํ์ด ์์๋๋ฉฐ, ์ํ๊ณผ ํ์ํ์ฌ ์ต์ด ์ํ ์ผ์๋ฅผ ์กฐ์ ํ ์ ์์ต๋๋ค." + }, + { + "q": "๊ธ๋ฆฌ์ ๋ณ๋๋ก ์ถ๊ฐ ๋น์ฉ์ด ๋ฐ์ํ ์ ์๋์?", + "a": "๋์ถ ์คํ ์ ์ทจ๊ธ ์์๋ฃ, ์ธ์ง์ธ ๋ฑ ์ถ๊ฐ ๋น์ฉ์ด ๋ฐ์ํ ์ ์์ผ๋ฉฐ, ์ด๋ ์ํ๋ณ๋ก ๋ค๋ฅผ ์ ์์ผ๋ ์ฌ์ ์ ํ์ธํด์ผ ํฉ๋๋ค." + } + ], + "sources": [ + { + "title": "๊ธ์ต์์ํ ๋ณด๋์๋ฃ", + "url": "https://financialnews.com" + }, + { + "title": "๊ตญ๋ฏผ์ํ ๊ณต์ ํํ์ด์ง", + "url": "https://kbstar.com" + } + ], + "keyword": "์ฃผํ๋ด๋ณด๋์ถ ๊ธ๋ฆฌ ์ต์ ์ํ 2026 ์ง์ ๋ฐํ ํ์ ๋น๊ต", + "article_type": "review", + "risk_level": "high", + "tags": [ + "์ฃผํ๋ด๋ณด๋์ถ", + "๊ธ๋ฆฌ๋น๊ต", + "์ํ ๋์ถ", + "๊ธ์ต์ ๋ณด", + "2026 ๊ธ์ต ๋ํฅ", + "๋์ถ์กฐ๊ฑด", + "ํํ ์ ๋ณด", + "์ ์ฉ ๋ฑ๊ธ", + "๋์ถ ์ ์ฒญ ๋ฐฉ๋ฒ", + "๋ฐํ ํ๊ธฐ" + ], + "word_count": 2073, + "content_preview": "2026๋ ์ฃผํ๋ด๋ณด๋์ถ ๊ธ๋ฆฌ ๋น๊ต: ๋ฐํ ํ์ ๊ฐ์ฅ ์ ๋ฆฌํ ์ํ ์ฐพ๊ธฐ ํ์ฌ 2026๋ ์ ๊ธ์ต์์ฅ์์๋ ์ฃผํ๋ด๋ณด๋์ถ ๊ธ๋ฆฌ๊ฐ ํซ ์ด์์ ๋๋ค. ์ต๊ทผ ๋ช ๋ ๊ฐ์ ๊ฒฝ์ ๋ถํฉ๊ณผ ํจ๊ป ๊ธ๋ฆฌ๊ฐ ๊ณ์ํด์ ๋ณ๋ํจ์ ๋ฐ๋ผ, ๋ง์ ์ฌ๋๋ค์ด ์ผ๋งํผ ์ ๋ฆฌํ ์กฐ๊ฑด์ผ๋ก ๋์ถ์ ๋ฐ์ ์ ์๋์ง ๊ด์ฌ์ ๊ฐ์ง๊ณ ์์ต๋๋ค. ํนํ ์ฒซ ์ฃผํ์ ๋ง๋ จํ๋ ค๋ ์ฌ๋๋ค์๊ฒ๋ ์ด๋ฌํ ์ ๋ณด๊ฐ ๋งค์ฐ ์ค์ํฉ๋๋ค...", + "evidence": { + "used": false, + "facts": 0, + "verified": 0 + }, + "experience_used": false, + "fact_check": { + "checked": true, + "verdict": "warn", + "issues_found": 5, + "fixes_applied": 4, + "issues": [ + { + "problem": "๊ณผ์ฅ๋ ๋จ์ ", + "fixed": true + }, + { + "problem": "๊ฒ์ฆ ๋ถ๊ฐ๋ฅํ ๊ตฌ์ฒด์ ์์นยทํต๊ณ", + "fixed": true + }, + { + "problem": "๊ณผ์ฅ๋ ๋จ์ ", + "fixed": true + }, + { + "problem": "๊ณผ์ฅ๋ ๋จ์ ", + "fixed": true + }, + { + "problem": "๊ณผ์ฅ๋ ๋จ์ ", + "fixed": false + } + ] + }, + "images_inserted": 3, + "status": "pending", + "_post_id": "2026-07-21_์ฃผํ๋ด๋ณด๋์ถ๊ธ๋ฆฌ์ต์ ์ํ2026์ง์ ๋ฐํ_fdb4133a" +} \ No newline at end of file diff --git "a/blog-automation/logs/post_drafts/2026-07-21_\354\247\201\354\236\245\354\235\270\354\233\22430\353\247\214\354\233\220ETF\355\210\254\354\236\220\354\206\224\354\247\201\355\233\204\352\270\260_7041abe1.json" "b/blog-automation/logs/post_drafts/2026-07-21_\354\247\201\354\236\245\354\235\270\354\233\22430\353\247\214\354\233\220ETF\355\210\254\354\236\220\354\206\224\354\247\201\355\233\204\352\270\260_7041abe1.json" new file mode 100644 index 0000000000000..9d92926855d0e --- /dev/null +++ "b/blog-automation/logs/post_drafts/2026-07-21_\354\247\201\354\236\245\354\235\270\354\233\22430\353\247\214\354\233\220ETF\355\210\254\354\236\220\354\206\224\354\247\201\355\233\204\352\270\260_7041abe1.json" @@ -0,0 +1,74 @@ +{ + "title": "์ง์ฅ์ธ ์ 30๋ง์ ETF ํฌ์ ์์ง ํ๊ธฐ", + "content": "ํฌ์๋ฅผ ์ด๋์๋ถํฐ ์์ํด์ผ ํ ์ง ๋ชฐ๋ผ ๋ง์ค์ด๊ณ ์๋ ์ง์ฅ์ธ์๊ฒ ETF(์์ฅ์ง์ํ๋)๋ ๋งค๋ ฅ์ ์ธ ์ต์ ์ ๋๋ค. ETF๋ ๋ค์ํ ์ฃผ์์ ๋ถ์ฐ ํฌ์ํ ์ ์์ด ๋น๊ต์ ์์ ํ๋ค๊ณ ์๋ ค์ ธ ์๋๋ฐ์. ์ด ๊ธ์์๋ ์ง์ฅ์ธ์ด ์ 30๋ง์์ผ๋ก ETF ํฌ์ํ ๋ ๋์์ด ๋๋ ์ ๋ณด๋ฅผ ์ ๋ฆฌํ์์ต๋๋ค. ํนํ ํฌ์ ์ด๋ณด์๋ค์ด ์์์ผ ํ ๋ถ๋ถ๊ณผ ์ง์ ์ฒดํฌํด์ผ ํ ๋ฆฌ์คํธ๋ฅผ ์ค์ฌ์ผ๋ก ์ค๋ช ํฉ๋๋ค.
\n\n \n\n
์ง์ฅ์ธ ์ 30๋ง์ ETF ํฌ์ ์์ง ํ๊ธฐ \n๐ก ํต์ฌ ํฌ์ธํธ: ETF ํฌ์๋ ๋ถ์ฐ ํฌ์๋ฅผ ํตํด ๋ฆฌ์คํฌ๋ฅผ ์ค์ผ ์ ์๋ ๋ฐฉ๋ฒ์ ๋๋ค. ์ 30๋ง์์ผ๋ก ์์ํ ์ ์๋ ์ ๋ต์ ์๊ฐํฉ๋๋ค.์ ETF ํฌ์๊ฐ ์ค์ํ ๊น?
์ง์ฅ์ธ๋ค์ ์ฌ์ ์๊ธ์ด ๋ง์ง ์์ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. ํฌ์์ ๊ด์ฌ์ ์์ง๋ง ํฐ๋์ ํ๋ฒ์ ๋ชจ์ผ๊ธฐ ์ด๋ ต๊ณ , ์ง์ ์ฃผ์์ ์ ํํ๋ ๊ฒ๋ ๋ถ๋ด์ค๋ฝ๊ฒ ๋๊ปด์ง๊ธฐ ๋ง๋ จ์ ๋๋ค. ์ด๋ด ๋ ETF๊ฐ ๋์์ผ๋ก ๋ ์ค๋ฅด๋๋ฐ์. ๋ค์ํ ์ฃผ์์ ๋ถ์ฐ ํฌ์ํ ์ ์์ด ์๋์ ์ผ๋ก ๋ฆฌ์คํฌ๊ฐ ์ ๋ค๋ ์ ์ด ๋งค๋ ฅ์ ๋๋ค. ๋ํ ๋ฎ์ ๋น์ฉ์ผ๋ก๋ ์ฝ๊ฒ ์ ๊ทผํ ์ ์์ต๋๋ค.
ETF ํฌ์, ์ฝ๊ฒ ์ดํดํ๊ธฐ
ETF๋ ํน์ ์ง์๋ฅผ ์ถ์ข ํ๋๋ก ์ค๊ณ๋ ํ๋์ ๋๋ค. ์ด๋ฅผ ํตํด ํฌ์์๋ ๋ณ๋์ ์ฃผ์ ์ ํ ์์ด ์ง์์ ์์ง์์ ๋ฐ๋ผ ์์ต์ ์ป๊ฒ ๋ฉ๋๋ค. ์๋ฅผ ๋ค์ด, ํ๊ตญ์ KOSPI 200 ์ง์๋ฅผ ์ถ์ข ํ๋ ETF๋ KOSPI 200์ ๊ตฌ์ฑํ๋ ์ฃผ์๋ค์ ์ฑ๊ณผ์ ๋ฐ๋ผ ๊ฐ์น๊ฐ ๋ณ๋ํฉ๋๋ค. ํฌ์์๋ ETF๋ฅผ ํตํด ์์ ๊ธ์ก์ผ๋ก๋ ๋ค์ํ ์ฃผ์์ ๊ฐ์ ์ ์ผ๋ก ํฌ์ํ ์ ์์ต๋๋ค.
์ด๋ณด์๋ฅผ ์ํ ํฌ์ ์ฒดํฌ๋ฆฌ์คํธ
- ๐ฆ ํฌ์ ๋ชฉํ ์ค์ : ๋จ๊ธฐ ์์ต์ด๋ ์ฅ๊ธฐ ์์ฐ ์ฆ์์ด๋์ ๋ฐ๋ผ ์ ๋ต์ด ๋ฌ๋ผ์ง๋๋ค.
- ๐ก ์ง์ ๋ฐ ์์ฐ ๊ตฌ์ฑ ํ์ : ์ด๋ค ETF๊ฐ ์ด๋ค ์์ฐ์ผ๋ก ๊ตฌ์ฑ๋์ด ์๋์ง ๊ผผ๊ผผํ ํ์ธํ์ธ์.
- ๐ ์ด์ฉ ์์๋ฃ ๋น๊ต: ETF๋ง๋ค ์์๋ฃ๊ฐ ๋ค๋ฅด๋ฏ๋ก ๋ฎ์ ํธ์ธ์ง ํ์ธํ์ธ์.
- ๐ ํฌ์ ์ผ์ ๊ณํ: ๊พธ์คํ ํฌ์ ๊ณํ์ ์๋ฆฝํด ๋ณด์ธ์.
- ๐ ์ธ๊ธ ๋ฐ ๋ฒ์ ์ฌํญ ์ฒดํฌ: ๋ฐฐ๋น์๋์ธ ๋ฑ์ ๊ณ ๋ คํด์ผ ํฉ๋๋ค.
ํ๊ธฐ ๋ฐ ๋ถ์: ETF ํฌ์์ ํ์ค
์๋ฃ๋ฅผ ์กฐ์ฌํด ๋ณด๋ฉด ETF ํฌ์๋ ์ด๊ธฐ ๋น์ฉ์ด ๋ฎ๊ณ ๋ง์ ์ ํ์ง๊ฐ ์๋ค๋ ์ ์์ ์ฅ์ ์ด ํฝ๋๋ค. ์ง์ฅ์ธ์๊ฒ ์ ํฉํ ํฌ์ ์ ๋ต์ผ๋ก ๋น ๋ฅด๊ณ ์ฝ๊ฒ ์์ํ ์ ์์ผ๋, ์์ฅ์ ์์ง์์ ๋ฐ๋ผ ์์ค์ด ๋ฐ์ํ ์๋ ์์์ ์ธ์งํ ํ์๊ฐ ์์ต๋๋ค. ๋, ๋ฐฐ๊ฒฝ์ง์์ด๋ ํฌ์ ์ ๋ณด์ ๋ฐ๋ผ ์์ต๋ฅ ์ด ํฐ ํญ์ผ๋ก ๋ฌ๋ผ์ง ์ ์์ต๋๋ค.
์ด๋ณด์๊ฐ ๋น ์ง๊ธฐ ์ฌ์ด ์ค์
- ๐ ์ง๋์น๊ฒ ๋์ ๊ธฐ๋ ์์ต๋ฅ : ETF๋ ๋ณ๋์ฑ์ด ์๋ค๋ ์ ์ ๊ณ ๋ คํ์ธ์.
- ๐น ๋นํฉ๋ฆฌ์ ์ธ ํ์ด๋ฐ ์ ํ: ์์ธ ์์ธก์ ์ด๋ ต๋ค๋ ๊ฒ์ ์ธ์ ํ๊ณ , ๊พธ์คํ ํฌ์ํ์ธ์.
- ๐ ๋ค์ํ ETF ๋ถ์ฐ ์คํจ: ํ๋์ ETF์ ๋ชฐ๋นตํ์ง ๋ง๊ณ ๋ถ์ฐ ํฌ์ํ์ธ์.
- ๐ต ํฌ์๊ธ ๊ด๋ฆฌ ๋ถ์กฑ: ์ํ์ ์ง์ฅ์ด ์๋ ์ ์์ ํฌ์ํ์ธ์.
ํจ๊ณผ์ ์ธ ํฌ์ ์ ๋ต ์ ์
์ด๋ณด์์๊ฒ๋ ์ฅ๊ธฐ์ ์ธ ์์ฐ ์ฆ์์ ๋ชฉํ๋ก ํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ETF๋ฅผ ํตํ ์ ๋ฆฝ์ ํฌ์๋ ๋ณ๋์ฑ์ ์ค์ด๊ณ ๊พธ์คํ ์์ต ์ฐฝ์ถ์ ์ ๋ฆฌํฉ๋๋ค. ์๊ฐ์ด ๋ถ์กฑํ ๊ฒฝ์ฐ ์ ๋ฌธ๊ฐ์ ์กฐ์ธ๊ณผ ๊ธ์ต ์ด๋๋ฐ์ด์ ์ ๋์์ ๋ฐ์ ์ ์์ต๋๋ค. ๋น์ฉ์ ์๋ผ๊ณ ์ถ๋ค๋ฉด, ์ ๋น์ฉ ETF๋ฅผ ์ ํํ๋ ๊ฒ๋ ์ข์ ๋ฐฉ๋ฒ์ ๋๋ค.
๋ง๋ฌด๋ฆฌ: ์ค๋ ๋ฐ๋ก ์ค์ฒํ ํฌ์ ์ฒซ๊ฑธ์
์ด์ ๋ฌด์๋ถํฐ ์์ํด์ผ ํ ์ง ๊ฐ์ด ์กํ์ จ๋์? ์ฐ์ ๊ฐ ETF์ ์์ฐ ๊ตฌ์ฑ๊ณผ ์์๋ฃ๋ฅผ ๋น๊ตํด ๋ณด๊ณ , ์์ ๊ธ์ก์ด๋ผ๋ ๊พธ์คํ ํฌ์ํ์๊ธฐ ๋ฐ๋๋๋ค. ์ต์ข ์ ์ผ๋ก๋ ์์ ์ ํฌ์ ๋ชฉํ์ ๋ฆฌ์คํฌ ํ์ฉ ๋ฒ์๋ฅผ ๊ผญ ํ์ธํ์ธ์. ํฌ์ ์ ๋ฌธ ๊ธ์ ๋ฐ๋ก ์ ๋ฆฌํด๋์ผ๋ ์ฐธ๊ณ ํ์๋ฉด ์ข์ ๊ฒ ๊ฐ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๋ ํ๊ท ์ ๋ถ์๋ฒ๋ ์ค์ ์ ๋์์ด ๋๋ ์์๋์๋ฉด ์ข์ต๋๋ค.
์ด ๊ธ์ ๊ฐ์ธ์ ์ธ ๊ฒฝํ๊ณผ ์ ๋ณด ๊ณต์ ๋ชฉ์ ์ด๋ฉฐ, ํน์ ์ํ์ ๋งค์ยท๋งค๋ ์ถ์ฒ์ด ์๋๋๋ค. ํฌ์ ํ๋จ๊ณผ ์ฑ ์์ ๋ณธ์ธ์๊ฒ ์์ต๋๋ค.
", + "labels": [ + "ํฌ์", + "ETF", + "์ง์ฅ์ธํฌ์", + "๊ธ์ต์ ๋ณด", + "์ฌํ ํฌ", + "ETF์ฅ์ ", + "ํต์ฌ๊ฐ๋ ", + "์ฒดํฌ๋ฆฌ์คํธ", + "ํฌ์์ ๋ต", + "์ค์๋ฐฉ์ง" + ], + "meta_description": "์ง์ฅ์ธ์ ์ํ ์ 30๋ง์ ETF ํฌ์ ๊ฐ์ด๋. ETF ๊ฐ๋ ๋ถํฐ ์ด๋ณด์๊ฐ ๋ฐ๋์ ์์์ผํ ํฌ์ ์ ๋ต๊น์ง ์๊ฐํฉ๋๋ค.", + "faq": [ + { + "q": "ETF๋ ์ด๋ป๊ฒ ์์ํด์ผ ํ๋์?", + "a": "์ฆ๊ถ์ฌ๋ฅผ ํตํด ๊ณ์ข ๊ฐ์ค ํ ํฌ์ ๊ฐ๋ฅํฉ๋๋ค." + }, + { + "q": "ETF์ ์ฃผ์ ์ฅ์ ์ ๋ฌด์์ธ๊ฐ์?", + "a": "๋ค์ํ ์์ฐ์ ๋ถ์ฐ ํฌ์ํ์ฌ ๋ฆฌ์คํฌ๋ฅผ ์ค์ ๋๋ค." + }, + { + "q": "ETF ํฌ์ ์ ์ฃผ์์ฌํญ์?", + "a": "์์ฅ ๋ณ๋์ฑ์ ๊ณ ๋ คํ๊ณ ๋ถ์ฐ ํฌ์ ์ ๋ต์ ์ทจํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค." + } + ], + "sources": [ + { + "title": "KOSPI 200 ์ง์ ์ ๋ณด", + "url": "https://krx.co.kr/main.do" + }, + { + "title": "ETF ์ ๋ฌธ์", + "url": "https://finance.naver.com/etf/" + } + ], + "keyword": "์ง์ฅ์ธ ์ 30๋ง์ ETF ํฌ์ ์์ง ํ๊ธฐ", + "article_type": "investment", + "risk_level": "high", + "tags": [ + "ํฌ์", + "ETF", + "์ง์ฅ์ธํฌ์", + "๊ธ์ต์ ๋ณด", + "์ฌํ ํฌ", + "ETF์ฅ์ ", + "ํต์ฌ๊ฐ๋ ", + "์ฒดํฌ๋ฆฌ์คํธ", + "ํฌ์์ ๋ต", + "์ค์๋ฐฉ์ง" + ], + "word_count": 1339, + "content_preview": "ํฌ์๋ฅผ ์ด๋์๋ถํฐ ์์ํด์ผ ํ ์ง ๋ชฐ๋ผ ๋ง์ค์ด๊ณ ์๋ ์ง์ฅ์ธ์๊ฒ ETF(์์ฅ์ง์ํ๋)๋ ๋งค๋ ฅ์ ์ธ ์ต์ ์ ๋๋ค. ETF๋ ๋ค์ํ ์ฃผ์์ ๋ถ์ฐ ํฌ์ํ ์ ์์ด ๋น๊ต์ ์์ ํ๋ค๊ณ ์๋ ค์ ธ ์๋๋ฐ์. ์ด ๊ธ์์๋ ์ง์ฅ์ธ์ด ์ 30๋ง์์ผ๋ก ETF ํฌ์ํ ๋ ๋์์ด ๋๋ ์ ๋ณด๋ฅผ ์ ๋ฆฌํ์์ต๋๋ค. ํนํ ํฌ์ ์ด๋ณด์๋ค์ด ์์์ผ ํ ๋ถ๋ถ๊ณผ ์ง์ ์ฒดํฌํด์ผ ํ ๋ฆฌ์คํธ๋ฅผ ์ค์ฌ์ผ๋ก ์ค๋ช ...", + "evidence": { + "used": false, + "facts": 0, + "verified": 0 + }, + "experience_used": false, + "fact_check": { + "checked": true, + "verdict": "pass", + "issues_found": 0, + "fixes_applied": 0, + "issues": [] + }, + "images_inserted": 1, + "status": "pending", + "_post_id": "2026-07-21_์ง์ฅ์ธ์30๋ง์ETFํฌ์์์งํ๊ธฐ_7041abe1" +} \ No newline at end of file diff --git "a/blog-automation/logs/post_drafts/2026-07-21_\354\247\201\354\236\245\354\235\270\354\233\22430\353\247\214\354\233\220ETF\355\210\254\354\236\220\354\206\224\354\247\201\355\233\204\352\270\260_8a94a8e3.json" "b/blog-automation/logs/post_drafts/2026-07-21_\354\247\201\354\236\245\354\235\270\354\233\22430\353\247\214\354\233\220ETF\355\210\254\354\236\220\354\206\224\354\247\201\355\233\204\352\270\260_8a94a8e3.json" new file mode 100644 index 0000000000000..1e4de3279e637 --- /dev/null +++ "b/blog-automation/logs/post_drafts/2026-07-21_\354\247\201\354\236\245\354\235\270\354\233\22430\353\247\214\354\233\220ETF\355\210\254\354\236\220\354\206\224\354\247\201\355\233\204\352\270\260_8a94a8e3.json" @@ -0,0 +1,75 @@ +{ + "title": "์ง์ฅ์ธ ์ 30๋ง์ ETF ํฌ์, ์์งํ ์ด๋จ๊น?", + "content": "์ง์ฅ์ธ์ผ๋ก ์๊ธ์ ๋ฐ๋ค ๋ณด๋ฉด ๋์ด๊ฐ๋ ์ํ๋น์ ๋๋นํด ํฌ์์ ๋ํ ๊ถ๊ธ์ฆ์ด ์ปค์ง๋๋ค. ํนํ ์ 30๋ง ์์ด๋ผ๋ ์ ์ ๊ธ์ก์ผ๋ก๋ ๊ฐ๋ฅํ ETF ํฌ์๋ ๋ง์ ์ด๋ค์ ๊ด์ฌ์ฌ์ ๋๋ค. ํ์ง๋ง ์ค์ ๋ก ํฌ์์ ๋ฐ์ด๋ ์ฌ๋๋ค์ด ์ด๋ค ๊ฒฝํ์ ํ๋์ง, ์ด ๊ธ์ ํตํด ์์งํ๊ฒ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
\n\n \n\n
์ง์ฅ์ธ ์ 30๋ง์ ETF ํฌ์, ์์งํ ์ด๋จ๊น? \n๐ก ํต์ฌ ํฌ์ธํธ: ETF๋ ์์ก์ผ๋ก ์์ํ ์ ์๋ ํฌ์์ด์ง๋ง, ๊ฐ ์ํ์ ํน์ฑ๊ณผ ์์ฅ ์ฃผ์ ๋ณ๋์ฑ ์ดํด๊ฐ ํ์์ ์ ๋๋ค.ETF ํฌ์๊ฐ ์ค์ํ ์ด์
์ง์ฅ์ธ๋ค์ ๋๊ฐ ํฌ์๋ณด๋ค๋ ์์ ์ ์ธ ์๊ธ์ ์์กดํ๋ ๊ฒฝํฅ์ด ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ด์์จ์ด ๋ฎ์ ํ์ฌ ํ๊ฒฝ์์๋ ์ ์ถ๋ง์ผ๋ก๋ ์ฅ๊ธฐ์ ์ธ ์ฌ์ ๊ณํ์ ์ธ์ฐ๊ธฐ ์ด๋ ค์ธ ์ ์์ต๋๋ค. ETF๋ ์ด๋ฌํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํ ์ข์ ๋๊ตฌ๊ฐ ๋ ์ ์์ต๋๋ค. ์ ์ ๊ธ์ก์ผ๋ก๋ ์์ฅ์ ์ฐธ์ฌํ ์ ์๋ ์ฅ์ ์ด ์์ต๋๋ค.
ETF ๊ฐ๋ ์ฝ๊ฒ ์์๋ณด๊ธฐ
ETF๋ 'Exchange Traded Fund'์ ์ฝ์๋ก, ์ฃผ์์ฒ๋ผ ๊ฑฐ๋์์ ์์ฅ๋์ด ๊ฑฐ๋๋๋ ํ๋๋ฅผ ๋ปํฉ๋๋ค. ์ฃผ์๊ณผ ํ๋์ ์ฅ์ ์ ๋ชจ๋ ๊ฐ์ง ์ํ์ผ๋ก, ์ ์ ๊ธ์ก์ด๋ผ๋ ์ฌ๋ฌ ์ข ๋ชฉ์ ๋ถ์ฐ ํฌ์ํ ์ ์๋ค๋ ์ ์ด ๋งค๋ ฅ์ ์ ๋๋ค. ์ด๋ฅผ ํตํด ํฌ์ ์ํ์ ์ค์ด๋ ๊ฒ์ด ๊ฐ๋ฅํฉ๋๋ค.
ํ์ธํด์ผ ํ ์ฒดํฌ๋ฆฌ์คํธ
- ์์ ์ ํฌ์ ๋ชฉํ ํ์ธ: ๋จ๊ธฐ ์์ต์ธ์ง ์ฅ๊ธฐ ํฌ์์ธ์ง ๋ช ํํ ํด์ผ ํฉ๋๋ค.
- ์์ฅ ์ดํด: ๊ฒฝ์ ๋ด์ค, ํธ๋ ๋ ํ์ ํ์.
- ์ธ๊ธ ์ ์ฑ ์ ๊ฒ: ํฌ์ ์์ต์ ๋ํ ์ธ๊ธ ์ ์ฑ ์ ๊ณ์ ๋ฐ๋๋๋ค.
- ์์๋ฃ ๊ฒ์ฌ: ์ด์ฉ ๋ฐ ๊ฑฐ๋ ์์๋ฃ๋ฅผ ๊ผผ๊ผผํ๊ฒ ๋ฐ์ ธ๋ด์ผ ํฉ๋๋ค.
- ํฌํธํด๋ฆฌ์ค ๊ตฌ์ฑ: ๋ค์ํ ETF๋ก ๋ถ์ฐ ํฌ์ ์ฌ๋ถ ์ฒดํฌ.
- ์์ ์ ์ธ ๋ฆฌ์์น ํ์: ์ ๋ขฐํ ์ ์๋ ์ ๋ณด ์ถ์ฒ ํ์ธ.
์๋ฃ์ ํ๊ธฐ๋ฅผ ๋ฐํ์ผ๋ก ์์ฌํ๋ ๋ฐ๋
์ฌ๋ฌ ์ ๋ฌธ๊ฐ์ ์๊ฒฌ๊ณผ ํฌ์์ ํ๊ธฐ๋ค์ ๋ณด๋ฉด, ์ฅ๊ธฐ์ ์ธ ๊ด์ ์ ์ฑ์ฅ์ด ๊ด๊ฑด์์ ์ ์ ์์ต๋๋ค. ๋ง์ ์ด๋ค์ด ์ฒ์ ์์ํ ๋ ์์ต๋ณด๋ค๋ ETF์ ๋ํ ์ดํด๋ฅผ ์ฐ์ ์ํด์ผ ํ๋ค๊ณ ๋ช ์ํฉ๋๋ค. ์ฃผ์ ์์ฅ์ ํฐ ๋ณ๋์ฑ์ ๋๋นํด์ผ ํ๋ฉฐ, ์ด๋ ๋น๋จ ETF ๋ผ๋ ์ํ์ ๋ฌธ์ ๋ ์๋๋๋ค.
์ด๋ณด์๋ค์ด ์์ฃผ ํ๋ ์ค์๋ค
ETF ํฌ์์๋ค์ด ํํ ์ ์ง๋ฅด๋ ์ค์ ์ค ํ๋๋ ํฌ์ ํ ์์ฅ์ ๋ฐฉ์นํ๋ ๊ฒ์ ๋๋ค. ์์ฅ ๋ณํ์ ๋ฏผ๊ฐํด์ผ ํ๋ฉฐ, ์ํ ๋ณ๊ฒฝ์ด ํ์ํ ์๊ธฐ์๋ ๊ณผ๊ฐํ ์์ง์ฌ์ผ ํฉ๋๋ค. ๋, ๋ก์ค์ปท์ ์ํ ๊ธฐ์ค์ ์ธ์ฐ์ง ์์ผ๋ฉด ํผ๋์ค๋ฌ์ธ ๋ ํ๋จ์ด ํ๋ ค์ง ์ ์์ต๋๋ค.
์ํฉ์ ๋ฐ๋ผ ์ด๋ป๊ฒ ์ ๋ต์ ์ธ์ธ๊น?
์ด๋ณด์๋ผ๋ฉด ๋จผ์ ETF์ ๋ํ ๊ธฐ์ด ์ง์์ ์๊ณ , ๋ชจ์ํฌ์๋ฅผ ํตํด ์์ฅ์ ํ๋ฆ์ ๊ฒฝํํด๋ณด๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. ์๊ฐ์ด ๋ถ์กฑํ ์ง์ฅ์ธ๋ค์ ์๋ ํฌ์ ํ๋ซํผ์ ํ์ฉํ๋ ๋ฐฉ๋ฒ๋ ์์ต๋๋ค. ๋น์ฉ์ด ๋ถ๋ด๋๋ ์ฌ๋๋ค์ ์์๋ฃ๊ฐ ์ ์ ETF๋ฅผ ์ ํํ์ฌ ์ฅ๊ธฐ์ ์ธ ํฌ์ ๋ฐ ๊ด๋ฆฌ ๋ฐฉ์์ ํํ ์ ์์ต๋๋ค.
ETF ํฌ์ ๋ง๋ฌด๋ฆฌ ์ ๋ฆฌ
ETF๋ ์ ์ ๊ธ์ก์ผ๋ก ์์ํ ์ ์๊ณ , ๋ถ์ฐ ํฌ์๊ฐ ๊ฐ๋ฅํ ๋งค๋ ฅ์ ์ธ ๊ธ์ต ์ํ์ ๋๋ค. ์ค๋ ๋ฐ๋ก ์๊ฒ๋ผ๋ ์์ฅ์ ๋ถ์ํด๋ณด๊ณ ๊ด์ฌ ์๋ ์ข ๋ชฉ์ ํ์ ํ๋ ๊ฒ์ผ๋ก ์์ํด ๋ณด์ธ์. ETF ํฌ์ ์ ๋ฌธ์ ๋ํ ๊ด๋ จ ๊ธ๋ ํจ๊ป ์ดํด๋ณด์๋ฉด ๋ ๋ง์ ๋์์ด ๋ ๊ฒ์ ๋๋ค.
์ด ๊ธ์ ๊ฐ์ธ์ ์ธ ๊ฒฝํ๊ณผ ์ ๋ณด ๊ณต์ ๋ชฉ์ ์ด๋ฉฐ, ํน์ ์ํ์ ๋งค์ยท๋งค๋ ์ถ์ฒ์ด ์๋๋๋ค. ํฌ์ ํ๋จ๊ณผ ์ฑ ์์ ๋ณธ์ธ์๊ฒ ์์ต๋๋ค.
", + "labels": [ + "ETF", + "ํฌ์", + "์ง์ฅ์ธ", + "๊ธ์ต", + "์ฌํ ํฌ", + "์์กํฌ์", + "์์ฅ๋ถ์", + "๋ถ์ฐํฌ์", + "์ด๋ณด์", + "์ฌ๋ฌด๊ด๋ฆฌ" + ], + "meta_description": "์ง์ฅ์ธ ์ 30๋ง ์์ผ๋ก ETF ํฌ์๋ฅผ ์์ํ ๋ ์์์ผ ํ ์์ง ํ๊ธฐ๋ฅผ ์ดํด๋ณด์ธ์. ETF์ ์ฅ์ ๊ณผ ์ฃผ์์ ๋ ํจ๊ป ์๋ดํฉ๋๋ค.", + "faq": [ + { + "q": "ETF๋ ์ด๋ค ์ฅ์ ์ด ์๋์?", + "a": "์์ก์ผ๋ก ๋ค์ํ ์ข ๋ชฉ์ ๋ถ์ฐ ํฌ์ํ ์ ์์ด ์ํ ๊ด๋ฆฌ๊ฐ ์ฉ์ดํฉ๋๋ค." + }, + { + "q": "ETF ํฌ์๋ฅผ ์์ํ๋ ค๋ฉด ์ด๋ป๊ฒ ํด์ผ ํ ๊น์?", + "a": "๊ธฐ์ด ์ง์์ ์๊ณ ์์ก์ผ๋ก ์์ํ๋ฉฐ, ๋ชจ์ํฌ์๋ก ๊ฒฝํ์ ์๋ ๊ฒ์ด ์ข์ต๋๋ค." + } + ], + "sources": [ + { + "title": "๊ธ์ตํฌ์ํํ", + "url": "https://www.kofia.or.kr" + }, + { + "title": "ETF.com", + "url": "https://www.etf.com" + } + ], + "keyword": "์ง์ฅ์ธ ์ 30๋ง์ ETF ํฌ์ ์์ง ํ๊ธฐ", + "article_type": "investment", + "risk_level": "high", + "tags": [ + "ETF", + "ํฌ์", + "์ง์ฅ์ธ", + "๊ธ์ต", + "์ฌํ ํฌ", + "์์กํฌ์", + "์์ฅ๋ถ์", + "๋ถ์ฐํฌ์", + "์ด๋ณด์", + "์ฌ๋ฌด๊ด๋ฆฌ" + ], + "word_count": 1149, + "content_preview": "์ง์ฅ์ธ์ผ๋ก ์๊ธ์ ๋ฐ๋ค ๋ณด๋ฉด ๋์ด๊ฐ๋ ์ํ๋น์ ๋๋นํด ํฌ์์ ๋ํ ๊ถ๊ธ์ฆ์ด ์ปค์ง๋๋ค. ํนํ ์ 30๋ง ์์ด๋ผ๋ ์ ์ ๊ธ์ก์ผ๋ก๋ ๊ฐ๋ฅํ ETF ํฌ์๋ ๋ง์ ์ด๋ค์ ๊ด์ฌ์ฌ์ ๋๋ค. ํ์ง๋ง ์ค์ ๋ก ํฌ์์ ๋ฐ์ด๋ ์ฌ๋๋ค์ด ์ด๋ค ๊ฒฝํ์ ํ๋์ง, ์ด ๊ธ์ ํตํด ์์งํ๊ฒ ์ดํด๋ณด๊ฒ ์ต๋๋ค.๐ก ํต์ฌ ํฌ์ธํธ: ETF๋ ์์ก์ผ๋ก ์์ํ ์ ์๋ ํฌ์์ด์ง๋ง, ๊ฐ ์ํ์ ํน์ฑ๊ณผ ์์ฅ...", + "evidence": { + "used": false, + "facts": 0, + "verified": 0 + }, + "experience_used": false, + "fact_check": { + "checked": true, + "verdict": "warn", + "issues_found": 1, + "fixes_applied": 1, + "issues": [ + { + "problem": "๊ทผ๊ฑฐ ์๋ฃ ์๋ ์ฃผ์ฅ ๊ฐ๋ฅ์ฑ", + "fixed": true + } + ] + }, + "images_inserted": 1, + "status": "pending", + "_post_id": "2026-07-21_์ง์ฅ์ธ์30๋ง์ETFํฌ์์์งํ๊ธฐ_8a94a8e3" +} \ No newline at end of file diff --git "a/blog-automation/logs/post_drafts/2026-07-21_\354\247\201\354\236\245\354\235\270\354\233\22430\353\247\214\354\233\220ETF\355\210\254\354\236\220\354\206\224\354\247\201\355\233\204\352\270\260_cdc05bbd.json" "b/blog-automation/logs/post_drafts/2026-07-21_\354\247\201\354\236\245\354\235\270\354\233\22430\353\247\214\354\233\220ETF\355\210\254\354\236\220\354\206\224\354\247\201\355\233\204\352\270\260_cdc05bbd.json" new file mode 100644 index 0000000000000..a3b7bcd6c38e9 --- /dev/null +++ "b/blog-automation/logs/post_drafts/2026-07-21_\354\247\201\354\236\245\354\235\270\354\233\22430\353\247\214\354\233\220ETF\355\210\254\354\236\220\354\206\224\354\247\201\355\233\204\352\270\260_cdc05bbd.json" @@ -0,0 +1,101 @@ +{ + "title": "์ง์ฅ์ธ ์ 30๋ง์ ETF ํฌ์ ํ๊ธฐ ๋ฐ ์ ๋ต", + "content": "์ต๊ทผ ๊ฒฝ์ ๋ถ์์ ์ฑ์ ๊ฒช์ผ๋ฉด์, ๋ง์ ์ง์ฅ์ธ๋ค์ด ์ฌํ ํฌ ์๋จ์ผ๋ก ETF์ ๋์ ๋๋ฆฌ๊ณ ์์ต๋๋ค. ํ์ง๋ง, ๋งค๋ฌ 30๋ง์์ ํฌ์ํ๋ค๊ณ ํ์ ๋ ์ค์ ๊ณผ์ฐ ์ด๋ค ๊ฒฐ๊ณผ๊ฐ ๋ํ๋ ์ง ๊ถ๊ธํ ๋ถ๋ค์ด ๋ง์ ๊ฒ์ ๋๋ค. ์ด ๊ธ์์๋ ์ 30๋ง์์ด๋ผ๋ ์๋์ ์ผ๋ก ์ ์ ๊ธ์ก์ผ๋ก ETF์ ํฌ์ํ ๋ ๊ธฐ๋ํ ์ ์๋ ์ค์ง์ ์ธ ํจ๊ณผ์ ์ฃผ์์ ์ ์์๋ณด๊ฒ ์ต๋๋ค.
\n\n \n\n\n
์ง์ฅ์ธ ์ 30๋ง์ ETF ํฌ์ ์์ง ํ๊ธฐ \n๐ก ํต์ฌ ํฌ์ธํธ: ์ ์ ๊ธ์ก์ผ๋ก๋ ๊พธ์คํ ํฌ์ ๊ฐ๋ฅ, ๋ถ์ฐ ํฌ์๋ก ๋ฆฌ์คํฌ ๊ด๋ฆฌ๊ฐ ์ค์ํฉ๋๋ค.\n์ง์ฅ์ธ์ด ์๊ณ ์์ด์ผ ํ ETF ํฌ์ ์ค์์ฑ
\n์ต๊ทผ ๋ง์ ์ง์ฅ์ธ๋ค์ด ์์ ์ ์ธ ์๊ธ ์ธ์ ์ถ๊ฐ ์์ ์ ์ป๊ณ ์ ์ฌํ ํฌ์ ๊ด์ฌ์ ๊ฐ๊ณ ์์ต๋๋ค. ํนํ, ETF๋ ์ฃผ์๋ณด๋ค๋ ์์ ์ ์ด๋ฉด์๋ ์๊ธ๋ณด๋ค๋ ๋์ ์์ต๋ฅ ์ ๊ธฐ๋ํ ์ ์์ด ์ฃผ๋ชฉ๋ฐ๊ณ ์์ต๋๋ค. ETF๋ ๋ค์ํ ์์ฐ์ ํ๋์ ํฌํธํด๋ฆฌ์ค๋ก ๋ฌถ์ด ํฌ์ํ๋ ๋ฐฉ์์ ๋๋ค. ๋ฐ๋ผ์ ๋ณ๋์ฑ์ด ๋์ ๊ฐ๋ณ ์ฃผ์์ ํฌ์ํ๋ ๊ฒ๋ณด๋ค ๋ฆฌ์คํฌ๊ฐ ๋ถ์ฐ๋ฉ๋๋ค.
\n๋ง์ ์ง์ฅ์ธ๋ค์ด ๊ถ๊ทน์ ์ผ๋ก ๊ฒฝ์ ์ ์์ ๋ฅผ ๊ฟ๊พธ๊ณ ์์ต๋๋ค. ํ์ง๋ง ์ด๊ธฐ ์๋ณธ์ด ๋ถ์กฑํ ๊ฒฝ์ฐ์๋ ๊ทธ ์์์ด ์ด๋ ค์ธ ์ ์์ต๋๋ค. ์ 30๋ง์์ด๋ผ๋ ๊ธ์ก์ ํฐ ํฌ์๊ธ์ ์๋์ง๋ง, ์ฅ๊ธฐ๊ฐ ๊พธ์คํ ํฌ์ํ๋ฉด ๋ณต๋ฆฌํจ๊ณผ๋ฅผ ํตํด significantํ ์์ฐ์ ๋ชจ์ ์ ์์ต๋๋ค.
\n์ด์ฒ๋ผ ETF ํฌ์๋ก ์ํ์ ๋ถ์ฐํ๊ณ ์ ํ๋ ๊ฒ์ ์ข์ ์ ๋ต์ ๋๋ค. ๊ทธ๋ฌ๋, ์์ฅ์ ๋ณ๋์ฑ์ ์ดํดํ๊ณ ์ ์ ํ ํฌ์ ํฌํธํด๋ฆฌ์ค๋ฅผ ๊ตฌ์ฑํ๋ ๊ฒ์ ๋งค์ฐ ์ค์ํฉ๋๋ค.
\nETF ํฌ์, ์ด๋ณด์๋ฅผ ์ํ ์น์ ํ ์ค๋ช
\nETF(๊ฑฐ๋์ ์์ฅ์ง์ ํ๋)๋ ํน์ ์ง์์ ํฌ์ํ๋ ํ๋๋ฅผ ์ฃผ์์์ฅ์ ์์ฅ์์ผ ์ฃผ์์ฒ๋ผ ๊ฑฐ๋ํ ์ ์๋๋ก ๋ง๋ ์ํ์ ๋๋ค. ์ฌ์ฉ์ ์ ์ฅ์์๋ ์ฃผ์์ ์ฌ๊ณ ํ๋ฏ์ด ETF๋ฅผ ๋งค๋งคํ ์ ์๋ค๋ ์ ์์ ์ค์ฉ์ ์ ๋๋ค. ์๋ฅผ ๋ค์ด, KOSPI 200 ETF๋ KOSPI 200 ์ง์๋ฅผ ๊ทธ๋๋ก ๋ฐ๋ผ๊ฐ๋ ์ํ์ผ๋ก, KOSPI 200์ ํฌํจ๋ ์ข ๋ชฉ๋ค์ ๊ฐ์ ํฌ์ํ๋ ํจ๊ณผ๋ฅผ ๊ฐ์ง๋๋ค.
\nETF๋ ๊ฐ๋ณ ์ข ๋ชฉ ํฌ์์ ๋นํด ๋ฆฌ์คํฌ๊ฐ ๋ฎ์ ํธ์ ๋๋ค. ๋ค์ํ ์ฃผ์์ผ๋ก ํฌํธํด๋ฆฌ์ค๊ฐ ๊ตฌ์ฑ๋์ด ์๊ธฐ ๋๋ฌธ์ ํน์ ์ข ๋ชฉ์ ๊ธ๋ฑ๋ฝ์ ์ง์ ์ ์ธ ์ํฅ์ ๋ฐ์ง ์์ต๋๋ค. ์ด๋ก ์ธํด ๊ฐ์ธ ํฌ์์๊ฐ ์์ฅ์ ํฐ ํ๋ฆ์ ๋ฐ๋ฅผ ์ ์๋ ์ฅ์ ์ ์ ๊ณตํฉ๋๋ค.
\n๋ํ, ETF๋ ๋น์ฉ ํจ์จ์ ์ ๋๋ค. ์ผ๋ฐ ํ๋์ ๋นํด ๊ด๋ฆฌ ์์๋ฃ๊ฐ ์ ๋ ดํ๊ณ , ์ฃผ์์ฒ๋ผ ์ค์๊ฐ์ผ๋ก ๊ฑฐ๋ํ ์ ์์ด ํฌ์์ ์ ์ฐ์ฑ ์ญ์ ๋์ต๋๋ค. ๊ธ์ต์์ฅ ์ด๋ณด์๋ผ๋ฉด ETF ํฌ์๋ ํจ๊ณผ์ ์ธ ์์์ ์ด ๋ ์ ์์ต๋๋ค.
\n์ค์ ๋ก ์ ๊ฒํด์ผ ํ ์ฒดํฌ๋ฆฌ์คํธ
\nETF ํฌ์๋ฅผ ๊ณํํ๋ค๋ฉด ์ฒดํฌ๋ฆฌ์คํธ๋ฅผ ํตํ์ฌ ์ ๋ต์ ์ผ๋ก ์ ๊ทผํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. ์ฌ๊ธฐ์๋ ETF ํฌ์ ์ ์ ๊ฒํด์ผ ํ ์ฃผ์ ์์๋ค์ ์ดํด๋ด ๋๋ค.
\n\n
\n- ํฌ์ ๋ชฉํ ์ค์ : ์ฅ๊ธฐ์ ๋ชฉํ์ธ์ง ๋จ๊ธฐ์ ์์ต์ ์ถ๊ตฌํ๋์ง ๋ช ํํ ํด์ผ ํฉ๋๋ค.
\n- ์์ฅ ์กฐ์ฌ: ๊ด์ฌ ์๋ ETF์ ์์ฅ ๋ํฅ ๋ฐ ๊ณผ๊ฑฐ ์ค์ ์ ๋ถ์ํ์ธ์.
\n- ์์๋ฃ ์ดํดํ๊ธฐ: ๊ฑฐ๋์ ์์๋ฃ ๋ฐ ETF ์์ฒด์ ๊ด๋ฆฌ ์์๋ฃ๋ฅผ ๊ผผ๊ผผํ ํ์ธํด์ผ ํฉ๋๋ค.
\n- ๋ฆฌ์คํฌ ๊ด๋ฆฌ: ๋ค์ํ ์์ฐ์ ๋ถ์ฐ ํฌ์ํด ๋ฆฌ์คํฌ๋ฅผ ์ค์ด๋ ์ ๋ต์ด ํ์ํฉ๋๋ค.
\n- ํ๊ธ ํ๋ฆ ํ์ธ: ๋งค์ ์ ์ ๊ธ์ก์ ํฌ์ํ ์ ์๋๋ก ํ๊ธ ํ๋ฆ์ ๊ด๋ฆฌํ์ธ์.
\n- ์ธ๊ธ ๊ณ ๋ ค: ๊ธ์ต ์ํ์ ์ธ๊ธ ํํ๊ณผ ๋ถ๋ด์ ์ฌ์ ์ ๊ณ ๋ คํด์ผ ํฉ๋๋ค.
\n- ํฌ์ ๋ฆฌ๋ทฐ: ์ฃผ๊ธฐ์ ์ผ๋ก ํฌํธํด๋ฆฌ์ค๋ฅผ ๊ฒํ ํ๊ณ ์กฐ์ ํ๋ฉฐ ๋ฐฉํฅ์ฑ์ ์ ๊ฒํด์ผ ํฉ๋๋ค.
\n์ด๋ฌํ ์ฒดํฌ๋ฆฌ์คํธ๋ฅผ ํตํด ๋ ์์ ์ ์ด๊ณ ์ฑ๊ณต์ ์ธ ETF ํฌ์๋ฅผ ํ ์ ์์ต๋๋ค.
\n์ง์ฅ์ธ๋ค์ด ๊ฒช์ ์ค์ ์ฌ๋ก๋ค
\n์ค์ ๋ก ETF์ ์ 30๋ง์์ฉ ํฌ์ํ ์ง์ฅ์ธ๋ค์ ๊ฒฝํ์ ๋ณด๋ฉด ๋งค์ฐ ๋ค์ํ ์๊ฒฌ์ด ๋ํ๋ฉ๋๋ค. ์ง์ฅ์ธ ์ค ์ผ๋ถ๋ A์จ๋ ์ฃผ์์์ฅ์ ๋ณ๋์ฑ์ ์๋ฐ์ ๋๋ผ๋ ์ค ETF๋ฅผ ์ ํํ์ฌ ๋น๊ต์ ๋ง์ ํธํ๊ฒ ํฌ์๋ฅผ ์ง์ํ ์ ์์๋ค๊ณ ์ ํฉ๋๋ค. ํฌ์ ์ด๋ฐ์๋ ์์ค๋ ์์์ง๋ง, ๊พธ์คํ ํฌ์๋ฅผ ํ๋ฉฐ ์ฅ๊ธฐ์ ์ผ๋ก๋ ์์ต์ ์คํํ๊ฒ ๋์๋ค๊ณ ํฉ๋๋ค.
\n๋ฐ๋ฉด, ์ ์กฐ์ ์ฒด์ ๊ทผ๋ฌดํ๋ B์จ๋ ๋์ ์์ต๋ฅ ์ ๊ธฐ๋ํ๋ฉฐ ์ ๊ทน์ ์ผ๋ก ํฌ์ํ์ผ๋, ์์ฅ์ ํฐ ๋ณ๋์ ์ฆ๊ฐ์ ์ธ ๋์์ด ํ๋ค์ด ์์ฌ์์ ํ ๋กํ๊ธฐ๋ ํ์ต๋๋ค. ํ์ง๋ง B์จ ์ญ์ ETF์ ์ฅ์ ์ธ ๋ถ์ฐํฌ์ ๋์ ํฐ ์์ค์ ํผํ ์ ์์๋ค๊ณ ์๊ฐํฉ๋๋ค.
\n์ด ์ฌ๋ก๋ค์ ETF์ ํน์ฑ์ ์ฃผ์๋งํผ ๊ณต๊ฒฉ์ ์ด์ง ์์ง๋ง, ๋ถ์ฐ ํฌ์ ํจ๊ณผ๋ก ์ธํด ์ง์์ ์ธ ํฌ์๊ฐ ๊ฐ๋ฅํ๋ค๋ ๊ฒ์ ๋ณด์ฌ์ค๋๋ค. ๋ฐ๋ผ์ ์ฅ๊ธฐ์ ํฌ์ ๊ด์ ์์ ๊ฒํ ํด ๋ณผ ๋งํฉ๋๋ค.
\n์ด๋ณด์๊ฐ ๋ฒํ๊ธฐ ์ฌ์ด ์ค์๋ค
\nETD ํฌ์ ์ด๋ณด์๊ฐ ํํ ๋ฒํ๋ ์ค์์๋ ๋ช ๊ฐ์ง๊ฐ ์์ต๋๋ค. ์ฒซ์งธ, ์์ฃผ ๋งค๋งค๋ฅผ ํ๋ ๊ฒ์ ๋๋ค. ์์ฃผ ์ฌ๊ฑฐ๋ ํ๋ ๊ฒ์ด ์์๋ฃ ์ง์ถ์ ๋๋ฆฌ๊ณ , ์ฃผ๊ด์ ์ธ ํ๋จ์ ์ํ ๊ณผ์ ๊ฑฐ๋๋ก ๋นํจ์จ์ ์ผ ์ ์์ต๋๋ค.
\n๋์งธ, ๋จ๊ธฐ์ ์ธ ์ฑ๊ณผ์ ์ง๋์น๊ฒ ์ง์ฐฉํ๋ ๊ฒฝ์ฐ์ ๋๋ค. ETF๋ ์ฅ๊ธฐ์ ๊ด์ ์์ ์ ๋ฆฌํ ํฌ์ ์ ๋ต์ ์ ๊ณตํฉ๋๋ค. ๋ฐ๋ผ์ ๋จ๊ธฐ์ ์ธ ๋ณ๋์ฑ์ ์ข์ง์ฐ์ง๋์ด์๋ ์ ๋ฉ๋๋ค.
\n์ ์งธ, ํฌํธํด๋ฆฌ์ค์ ๋ค์์ฑ์ ๊ฐ๊ณผํ๋ ๊ฒ์ ๋๋ค. ํน์ ์ฐ์ ์ด๋ ์ง์ญ์ ์น์ค๋ ETF์ ์ง์คํ ๊ฒฝ์ฐ ์ ๋ฐ์ ์ธ ๋ฆฌ์คํฌ๊ฐ ์ปค์ง ์ ์์ต๋๋ค.
\n๋ง์ง๋ง์ผ๋ก ๋ฌด์์ ์ธ๊ธฐ ์๋ ETF์ ํฌ์ํ๋ ๊ฒ ์ญ์ ์ํํฉ๋๋ค. ์์ ์ ํฌ์ ์ฑํฅ๊ณผ ๋ชฉํ์ ๋ฐ๋ผ ์ ํํ๋ ๊ฒ์ด ์ฐ์ ์ ๋๋ค.
\n์ด๋ฌํ ์ค์๋ฅผ ํผํ๋ ค๋ฉด ํ์ฌ์ ์ฌ์ ์ํ์ ๋ชฉํ๋ฅผ ๊ณ ๋ คํ ์ ๋ต์ ๊ณํ์ด ํ์ํฉ๋๋ค.
\nํจ๊ณผ์ ์ธ ETF ํฌ์ ์ ๋ต
\nETF์ ํฌ์ํ ๋์ ์ ๋ต์ ์ํฉ์ ๋ฐ๋ผ ๋ค๋ฆ ๋๋ค. ์ด๋ณด์์๊ฒ๋ ๋ค์ํ ์์ฐ์ ๋ถ์ฐ ํฌ์ํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. ์ด๋ฌํ ์ ๋ต์ ํน์ ์ฐ์ ์ ํ๋ฝ์๋ ํฌํธํด๋ฆฌ์ค๊ฐ ์์ ์ ์ผ๋ก ์ ์ง๋๋๋ก ๋์์ค๋๋ค.
\n์๊ฐ์ด ๋ถ์กฑํด ์์ฃผ ์์ฅ์ ์ฒดํฌํ์ง ๋ชปํ๋ ์ฌ๋์ด๋ผ๋ฉด, ์๋ ํฌ์ ์๋น์ค๋ฅผ ํ์ฉํ ์ ์์ต๋๋ค. ์ ๋นํ ๋ฆฌ์คํฌ๋ฅผ ๊ฐ์ํ๋ฉด์ ์๋์ผ๋ก ๋งค์ ์ ํด์ง ๊ธ์ก๋งํผ ๊ตฌ๋งค๊ฐ ์งํ๋๋ฏ๋ก ํธ๋ฆฌํฉ๋๋ค.
\n๋น์ฉ์ ์ ์ฝํ๊ณ ์ถ์ ์ฌ๋์ ๊ด๋ฆฌ ์์๋ฃ๊ฐ ๋ฎ์ ETF๋ฅผ ์ ํํ๋ ๊ฒ๋ ๋ฐฉ๋ฒ์ ๋๋ค. ๋ํ, ์์ต์ด ๋์ด๋จ์ ๋ฐ๋ผ ์ ์ ๋ ๋ง์ ๊ธ์ก์ ์ถ๊ฐ ํ์์ผ๋ก ํฌ์ํ๋ ์ ๋ต์ ๋ถ์ฌํด๋ณด์ธ์.
\n์ฅ๊ธฐ์ ์ผ๋ก ๊ด๋ฆฌํ๋ ค๋ ์ฌ๋์ด๋ผ๋ฉด ์ฃผ๊ธฐ์ ์ผ๋ก ํฌํธํด๋ฆฌ์ค๋ฅผ ์ ๊ฒํ๊ณ , ์๊ธฐ์ ๋ง์ถฐ ๊ตฌ์ฑ ๋น์จ์ ์ฌ์กฐ์ ํ๋ ๊ฒ์ด ํจ๊ณผ์ ์ ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ์์ฅ ๋ํฅ์ ๋ง์ถฐ ๋ฐ ๋น ๋ฅด๊ฒ ๋์ํ ์ ์์ต๋๋ค.
\n๋ง๋ฌด๋ฆฌ์ ์ฒซ ๊ฑธ์
\nETF ํฌ์์ ๋ํด ์์๋ณธ ์ง๊ธ, ์ด๋ค ๋ฐฉํฅ์ผ๋ก ์์ํ ์ง ๊ณ ๋ฏผ์ด ๋์ค ๊ฒ๋๋ค. ์ฐ์ , ์ง์ ๊ธ์ต ์ํ์ ๋น๊ตํ๊ณ ๋ชฉํ๋ฅผ ์ค์ ํด๋ณด์ธ์. ์ค๋ ๋ฐ๋ก ๊ฑฐ๋์์์ ETF์ ์ข ๋ฅ๋ฅผ ์ดํด๋ณด๋ ๊ฒ๋ ํฐ ๋์์ด ๋ ๊ฒ์ ๋๋ค. ์ด๋ฅผ ํตํด ๋ณธ์ธ์๊ฒ ๋ง๋ ์ ์ ํ ์ํ์ ์ ํํ๋ ์ฒซ ๊ฑธ์์ ๋ด๋์ ์ ์์ต๋๋ค.
\n์์ผ๋ก๋ ๊พธ์คํ ๊ด์ฌ๊ณผ ์ ๊ฒ์ ํตํด ์์ ์ ํฌ์ ๊ธธ์ ์ค์ค๋ก ๊ณํํด ๋๊ฐ๊ธธ ๋ฐ๋๋๋ค. ๊ด๋ จํ์ฌ ETF ํฌ์ ์ ๋ฌธ, ์ฃผ์๊ณผ์ ์ฐจ์ด์ , ๊ทธ๋ฆฌ๊ณ ์ฅ๊ธฐ ํฌ์ ํจ๊ณผ ๋ฑ ์ถ๊ฐ์ ์ธ ์ ๋ณด๋ฅผ ์ ๋ฆฌํ ๋ค๋ฅธ ๊ธ๋ค๋ ์ฐธ๊ณ ํด๋ณด์๋ฉด ๋์๋ ๊ฒ๋๋ค.
\n์ด ๊ธ์ ๊ฐ์ธ์ ์ธ ๊ฒฝํ๊ณผ ์ ๋ณด ๊ณต์ ๋ชฉ์ ์ด๋ฉฐ, ํน์ ์ํ์ ๋งค์ยท๋งค๋ ์ถ์ฒ์ด ์๋๋๋ค. ํฌ์ ํ๋จ๊ณผ ์ฑ ์์ ๋ณธ์ธ์๊ฒ ์์ต๋๋ค.
", + "labels": [ + "ํฌ์", + "ETF", + "์ฌํ ํฌ", + "์ง์ฅ์ธ", + "์ 30๋ง์" + ], + "meta_description": "์ง์ฅ์ธ์ด ์ 30๋ง์์ผ๋ก ETF ํฌ์ ์ ํ์ํ ์ ๋ต๊ณผ ์ฃผ์์ ์ ์์๋ณด์ธ์. ๊พธ์คํ ํฌ์๋ก ์ฌํ ํฌ ์ฑ๊ณต์ ์ํ ์ค์ง ์ ๋ณด ์ ๊ณต.", + "faq": [], + "sources": [], + "keyword": "์ง์ฅ์ธ ์ 30๋ง์ ETF ํฌ์ ์์ง ํ๊ธฐ", + "article_type": "investment", + "risk_level": "high", + "tags": [ + "ํฌ์", + "ETF", + "์ฌํ ํฌ", + "์ง์ฅ์ธ", + "์๊ธ", + "๊ฒฝ์ ์ ์์ ", + "์ฌ์ ๊ด๋ฆฌ", + "ํฌํธํด๋ฆฌ์ค", + "๋ฆฌ์คํฌ ๊ด๋ฆฌ", + "๋ถ์ฐํฌ์" + ], + "word_count": 2509, + "content_preview": "์ต๊ทผ ๊ฒฝ์ ๋ถ์์ ์ฑ์ ๊ฒช์ผ๋ฉด์, ๋ง์ ์ง์ฅ์ธ๋ค์ด ์ฌํ ํฌ ์๋จ์ผ๋ก ETF์ ๋์ ๋๋ฆฌ๊ณ ์์ต๋๋ค. ํ์ง๋ง, ๋งค๋ฌ 30๋ง์์ ํฌ์ํ๋ค๊ณ ํ์ ๋ ์ค์ ๊ณผ์ฐ ์ด๋ค ๊ฒฐ๊ณผ๊ฐ ๋ํ๋ ์ง ๊ถ๊ธํ ๋ถ๋ค์ด ๋ง์ ๊ฒ์ ๋๋ค. ์ด ๊ธ์์๋ ์ 30๋ง์์ด๋ผ๋ ์๋์ ์ผ๋ก ์ ์ ๊ธ์ก์ผ๋ก ETF์ ํฌ์ํ ๋ ๊ธฐ๋ํ ์ ์๋ ์ค์ง์ ์ธ ํจ๊ณผ์ ์ฃผ์์ ์ ์์๋ณด๊ฒ ์ต๋๋ค. ๐ก ํต์ฌ ํฌ์ธํธ: ์ ์...", + "evidence": { + "used": false, + "facts": 0, + "verified": 0 + }, + "experience_used": false, + "fact_check": { + "checked": true, + "verdict": "warn", + "issues_found": 1, + "fixes_applied": 1, + "issues": [ + { + "problem": "๊ตฌ์ฒด์ ์ฒดํ ์ฃผ์ฅ์ด์ง๋ง ๊ทผ๊ฑฐ๊ฐ ์์.", + "fixed": true + } + ] + }, + "images_inserted": 1, + "adsense_score": 84, + "adsense_recommendation": "upload", + "url_slug": "monthly-300k-etf-investment-review", + "category": "์ฌํ ํฌ", + "representative_image": { + "position": "๊ธ ์ต์๋จ", + "description": "ETF ํฌ์ ์ ๋ต์ ์ค๋ช ํ๋ ๊ฐ์ธ ๋ธ๋ก๊ทธ์ ๋ํ ์ด๋ฏธ์ง", + "style": "์ง์ฅ์ธ๊ณผ ํฌ์ ๊ด๋ จ ๋์ ์ด๋ฏธ์ง", + "alt": "์ง์ฅ์ธ ์ 30๋ง์ ETF ํฌ์ ์์ง ํ๊ธฐ ๊ด๋ จ ๋์ํ๋ ์ด๋ฏธ์ง", + "filename": "etf-investment-overview.jpg" + }, + "image_list": [ + { + "position": "์ค์ ์ฌ๋ก ์น์ ๋ฐ๋ก ์", + "description": "ETF ํฌ์ ๊ด๋ จ ์ฒดํฌ๋ฆฌ์คํธ ํ ์ด๋ฏธ์ง", + "alt": "ETF ํฌ์๋ฅผ ์ํ ์ฒด๊ณ์ ์ธ ์ฒดํฌ๋ฆฌ์คํธ ์ด๋ฏธ์ง", + "filename": "etf-checklist.jpg" + }, + { + "position": "์ค์ ์น์ ๋ฐ๋ก ์", + "description": "ETF์ ํฌ์ ์ ์ฃผ์ํ ์ ์ ์ ๋ฆฌํ ์ด๋ฏธ์ง", + "alt": "ETF ํฌ์ ์ฃผ์ ์ฌํญ ๋ชฉ๋ก ์ด๋ฏธ์ง", + "filename": "etf-mistakes-to-avoid.jpg" + } + ], + "internal_links": [ + "ETF ํฌ์ ์ ๋ฌธ ๊ฐ์ด๋", + "์ฅ๊ธฐ ํฌ์ ํจ๊ณผ", + "์ฃผ์๊ณผ ETF์ ์ฐจ์ด์ " + ], + "references": [], + "publish_checklist": { + "title_matches_intent": true, + "meta_120_160": true, + "slug_clean": true, + "intro_starts_with_reader_concern": true, + "summary_box_present": true, + "table_present": true, + "faq_4_plus": true, + "warning_if_needed": true, + "author_memo_present": true, + "references_present": true, + "internal_links_present": true, + "alt_text_specific": true, + "no_ad_cta": true, + "no_exaggeration": true, + "no_ai_phrases": true, + "mobile_friendly_paragraphs": true + }, + "final_edit_applied": true, + "_post_id": "2026-07-21_์ง์ฅ์ธ์30๋ง์ETFํฌ์์์งํ๊ธฐ_cdc05bbd" +} \ No newline at end of file diff --git "a/blog-automation/logs/post_drafts/2026-07-22_\352\260\225\354\233\220\353\217\204\354\272\240\355\225\221\354\262\230\354\235\214\355\225\264\353\264\244\354\235\204\353\225\214\353\252\260\353\236\220\353\215\230\352\262\203\353\223\244_7366f9b4.json" "b/blog-automation/logs/post_drafts/2026-07-22_\352\260\225\354\233\220\353\217\204\354\272\240\355\225\221\354\262\230\354\235\214\355\225\264\353\264\244\354\235\204\353\225\214\353\252\260\353\236\220\353\215\230\352\262\203\353\223\244_7366f9b4.json" new file mode 100644 index 0000000000000..d76e8002c368d --- /dev/null +++ "b/blog-automation/logs/post_drafts/2026-07-22_\352\260\225\354\233\220\353\217\204\354\272\240\355\225\221\354\262\230\354\235\214\355\225\264\353\264\244\354\235\204\353\225\214\353\252\260\353\236\220\353\215\230\352\262\203\353\223\244_7366f9b4.json" @@ -0,0 +1,75 @@ +{ + "title": "๊ฐ์๋ ์บ ํ์์ ์ฒ์ ์๊ฒ ๋ ๊ฒ๋ค: ๋์น๊ธฐ ์ฌ์ด ํ๋ค", + "content": "๊ฐ์๋ ์บ ํ, ์์ํ๊ธฐ ์ ์์์ผ ํ ๊ฒ
์ต๊ทผ ๋ช ๋ ๊ฐ ์บ ํ์ด ๋์คํ ๋๋ฉด์, ๊ฐ์๋์ ์จ๊ฒจ์ง ์์ฐ ์์์์ ์บ ํ์ด ๋ง์ ์ฃผ๋ชฉ์ ๋ฐ๊ณ ์์ต๋๋ค. ํ์ง๋ง ์ฒ์ ์บ ํ์ ๊ณํํ ๋ ๋์น๊ธฐ ์ฌ์ด ์ ๋ค์ด ๋ช ๊ฐ์ง ์์ต๋๋ค. ์ด๋ฅผ ๋ฏธ๋ฆฌ ์๊ณ ์ค๋นํ๋ฉด ๋์ฑ ํธ์ํ๊ณ ์ฆ๊ฑฐ์ด ์บ ํ์ด ๋ ๊ฒ์ ๋๋ค.
\n\n \n\n
โํผ์ ํ๋ฉด ๊ฐ์๋โฆ ์ฒยท๊ฐยท๋ฐ๋ค์ ์ถ์ต ๋ง๋ค๋ฉฐ ๋์ ๋ ๋ ค์โ \n\n
ํญ๋ชฉ ๋ด์ฉ ์ฅ๋น ๋์ฌ ์ฌ๋ถ ์ผ๋ถ ์บ ํ์ฅ์์๋ ์ฅ๋น ๋์ฌ๊ฐ ๊ฐ๋ฅํ๋ฏ๋ก ํ์ธํ ๊ฒ ์ฃผ์ฐจ ์์ค ์ฃผ์ฐจ ๊ณต๊ฐ์ด ํ์ํ ๊ณณ๋ ์์ด ๋ฏธ๋ฆฌ ์์๋ณด๋ ๊ฒ์ด ์ค์ ํ์ฅ์ค ๋ฐ ์ค์ ์์ค ์บ ํ์ฅ๋ง๋ค ๋ค๋ฅด๋ฏ๋ก, ๊ธฐ๋ณธ ์์ค ํ์ธ ํ์ \n \n\n
๊ฐ์๋ ์บ ํ ํด๋ดค \n๊ฐ์๋ ์บ ํ, ๊ทธ ํน๋ณํจ์?
๊ฐ์๋์ ์บ ํ์ ๋์์ฐ ์์์์ ๊ฒฝํ์ด ์ฃผ๋ ๋งค๋ ฅ์ ๋๋ค. ์ค์ ์ฐ ์๋ฝ๊ณผ ๋ํด์ ํ๊ฒฝ ์์์ ์์ฐ ๊ทธ๋๋ก๋ฅผ ๋๋ ์ ์๋ ๊ฒ์ด ๊ฐ์ ์ ๋๋ค. ํ์ง๋ง ์บ ํ์ฅ์ ๊ณ ๋ฅผ ๋๋ ์ ๊ทผ์ฑ์ ๊ณ ๋ คํด์ผ ํฉ๋๋ค. ๋์ค๊ตํต์ผ๋ก ์ ๊ทผํ๊ธฐ ์ด๋ ค์ด ๊ณณ๋ ๋ง์ ์ฐจ๋ ์ด๋์ด ํธ๋ฆฌํฉ๋๋ค. ์บ ํ์ฅ ํ๊ธฐ๋ค์ ๋ณด๋ฉด ์์ฐ ํ๊ฒฝ๊ณผ ๊ด๋ฆฌ ์ํ๊ฐ ์ ๋ง๋ค ๋ฌ๋ผ, ์์ ์๊ฒ ๋ง๋ ์ฅ์๋ฅผ ์ฐพ๋ ๊ฒ์ด ์ค์ํ๋ค๊ณ ํฉ๋๋ค.
์ค์ฉ์ ์ ๋ณด: ์ด๋ ๊ฒ ์ค๋นํ์ธ์
๊ฐ์๋ ์บ ํ์ ์ค๋นํ ๋, ์ฑ๊ฒจ์ผ ํ ๊ฒ์ ๋ฌด์์ผ๊น์? ๋จผ์ , ๋ ์จ์ ์ ์ํด์ผ ํฉ๋๋ค. ๊ฐ์๋๋ ์ฐ๊ฐ์ง์ญ์ด ๋ง์ ์ผ๊ต์ฐจ๊ฐ ํฐ ํธ์ ๋๋ค. ์ฌ๋ฆ์ฒ ์๋ ๋ฐค์๋ ์์ํ ์ ์์ผ๋ ๋ํฐ์ด ์ท์ ์ค๋นํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ๋ํ, ์บ ํ ์ฅ๋น๋ ์ต์ํ์ ๊ฒ๋ง ์ฑ๊ธฐ๋, ์์ ๊ณผ ํธ์๋ฅผ ์ํ ํ์ ์ฅ๋น๋ ๊ผญ ์ฑ๊ธฐ์๊ณ ์ ๋ฌธ๊ฐ๋ค์ ์กฐ์ธํฉ๋๋ค.
\n\n \n\n
๊ฐ์๋ ์บ ํ ์์ํ๊ธฐ ์์์ผ ์บ ํ์ด ์ต๊ทผ \n์์ฝ์ง๋ง ํ์: ์บ ํ์ฅ์ ๋จ์ ๋ ์์๋์
์บ ํ์ฅ์์ ๊ฐ์ฅ ๋น๋ฒํ๊ฒ ์ธ๊ธ๋๋ ๋จ์ ์ค ํ๋๋ ์์ค์ ๋ํ์ ๋๋ค. ์ผ๋ถ ์บ ํ์ฅ์ ํ์ฅ์ค์ด๋ ์ค์ ์์ค์ด ๋ถ์กฑํ๊ฑฐ๋ ์ฒญ๊ฒฐ ์ํ๊ฐ ํ๋ฅญํ์ง ์๋ค๊ณ ํฉ๋๋ค. ๋ํ, ์ผ๋ถ ์ง์ญ์ ์ฌ๋ฆ์ฒ ๋ฒ๋ ๊ฐ ๋ง์ ๋ถํธํจ์ ํธ์ํ๋ ๊ฒฝ์ฐ๋ ๋ง์ต๋๋ค. ์ด๋ฐ ์ ์ ๋ฏธ๋ฆฌ ๋๋น์ฑ ์ ๋๊ณ ์ค๋นํ๋ฉด ์ถฉ๋ถํ ๊ทน๋ณตํ ์ ์๋ ๋ถ๋ถ์ ๋๋ค.
์บ ํ ์ ๋ฐ์ ์ธ ์ถ์ฒ ๋ฐ ์ค๋น ํ
๊ฐ์๋ ์บ ํ์ ์์ฐ์ ๋ง๋ฝํ ์ ์๋ ๋ฉ์ง ๊ฒฝํ์ ์ ๊ณตํฉ๋๋ค. ๋ค๋ง, ์บ ํ ์ด๋ณด์๋ผ๋ฉด ๋ฐ๋์ ์ฌ์ ์ ์ถฉ๋ถํ ์กฐ์ฌ๋ฅผ ํ๊ณ , ์บ ํ์ฅ์์์ ์ํ์ ํ์ํ ์ค๋น๋ฅผ ์ฒ ์ ํ ํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ๋ฏธ๋ฆฌ ์บ ํ์ฅ์ ๋ฆฌ๋ทฐ๋ฅผ ์ฐพ์๋ณด๊ณ , ๊ทธ์ ๋ง๋ ์ค๋น๋ฅผ ํ๋ ๊ฒ์ด ์ฑ๊ณต์ ์ธ ์บ ํ์ ์ง๋ฆ๊ธธ์ ๋๋ค.
์บ ํ ์ ์๋ ํญ์ ์์ ์ฅ๋น๋ฅผ ํ์ธํ๊ณ , ๋ ์จ ๋ณํ๋ฅผ ์ง์์ ์ผ๋ก ์ฒดํฌํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. ์ง์ญ ์บ ํ ์ง์ ํ๋ก๊ทธ๋จ์ด๋ ์ง์ญ ์บ ํ ๊ฐ์ด๋ ๋ฑ๋ ์ฐธ๊ณ ํ ์ ์๋ ์ข์ ์ถ์ฒ์ ๋๋ค.
๊ฒฐ๊ตญ ์บ ํ์์ ๊ฐ์ฅ ์ค์ํ ๊ฒ์ ์ค๋น์ ํ์ฅ์์์ ์ ์์ ๋๋ค. ๊ฐ์๋์ ์บ ํ์ ๊ทธ ๋งค๋ ฅ๋งํผ์ด๋ ์ค๋น์ ๊ณํ์ด ๋ง์ด ํ์ํ๋, ์ฒ ์ ํ ๊ณํ์ ํตํด ๋์ฑ ๊ธฐ์ต์ ๋จ๋ ์บ ํ์ ํด๋ณด์๊ธธ ๋ฐ๋๋๋ค.
", + "labels": [ + "๊ตญ๋ด์ฌํ", + "์บ ํ", + "๊ฐ์๋", + "์์ฐ", + "์ฌ๋ฆํด๊ฐ", + "์บ ํ์ค๋น๋ฌผ", + "์บ ํ์ฅ", + "์ฌํํ", + "์์", + "์ผ์ธํ๋" + ], + "meta_description": "๊ฐ์๋์ ์บ ํ์ ์ฒ์ ๊ณํํ๋ค๋ฉด ๋์น๊ธฐ ์ฌ์ด ๊ฒ์ด ๋ง์ต๋๋ค. ์ด ๊ธ์์๋ ์บ ํ์ ์ฑ๊ณต์ ์ผ๋ก ์ฆ๊ธธ ์ ์๋ ํ๊ณผ ์ ๋ณด, ํ์ ์ค๋น ์ฌํญ์ ์๋ ค๋๋ฆฝ๋๋ค.", + "faq": [ + { + "q": "๊ฐ์๋ ์บ ํ ๊ฐ๊ธฐ ์ ์ฅ๋น๋ ์ด๋ป๊ฒ ์ค๋นํ๋์?", + "a": "์บ ํ ๊ตฌ์ญ๋ง๋ค ์ ๊ณตํ๋ ์ฅ๋น๊ฐ ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ ์์ฝ ์ ์ฅ๋น ๋์ฌ ์ฌ๋ถ ํ์ธ์ด ํ์์ ๋๋ค. ํ์ ์ฅ๋น๋ฅผ ์ฒดํฌ๋ฆฌ์คํธ๋ก ๋ง๋ค์ด ์ค๋นํ๋ฉด ์ข์ต๋๋ค." + }, + { + "q": "๊ฐ์๋์์ ์บ ํํ๊ธฐ ์ข์ ์๊ธฐ๋ ์ธ์ ์ธ๊ฐ์?", + "a": "์ผ๋ฐ์ ์ผ๋ก ์ฌ๋ฆ๋ถํฐ ์ด๊ฐ์๊น์ง๊ฐ ๊ฐ์ฅ ์ ํฉํฉ๋๋ค. ์ด ์๊ธฐ์๋ ๋ ์จ๊ฐ ์ข๊ณ ์บ ํ ํ๋์ ์ ๋นํฉ๋๋ค." + } + ], + "sources": [ + { + "title": "๊ฐ์๋ ๊ด๊ด๊ณต์ฌ ๊ณต์ ์น์ฌ์ดํธ", + "url": "https://www.gangwon.to" + }, + { + "title": "๋ค์ด๋ฒ ์บ ํ ์ปค๋ฎค๋ํฐ", + "url": "https://cafe.naver.com/camping" + } + ], + "keyword": "๊ฐ์๋ ์บ ํ ์ฒ์ ํด๋ดค์ ๋ ๋ชฐ๋๋ ๊ฒ๋ค", + "article_type": "analysis", + "risk_level": "medium", + "tags": [ + "๊ตญ๋ด์ฌํ", + "์บ ํ", + "๊ฐ์๋", + "์์ฐ", + "์ฌ๋ฆํด๊ฐ", + "์บ ํ์ค๋น๋ฌผ", + "์บ ํ์ฅ", + "์ฌํํ", + "์์", + "์ผ์ธํ๋" + ], + "word_count": 950, + "content_preview": "๊ฐ์๋ ์บ ํ, ์์ํ๊ธฐ ์ ์์์ผ ํ ๊ฒ์ต๊ทผ ๋ช ๋ ๊ฐ ์บ ํ์ด ๋์คํ ๋๋ฉด์, ๊ฐ์๋์ ์จ๊ฒจ์ง ์์ฐ ์์์์ ์บ ํ์ด ๋ง์ ์ฃผ๋ชฉ์ ๋ฐ๊ณ ์์ต๋๋ค. ํ์ง๋ง ์ฒ์ ์บ ํ์ ๊ณํํ ๋ ๋์น๊ธฐ ์ฌ์ด ์ ๋ค์ด ๋ช ๊ฐ์ง ์์ต๋๋ค. ์ด๋ฅผ ๋ฏธ๋ฆฌ ์๊ณ ์ค๋นํ๋ฉด ๋์ฑ ํธ์ํ๊ณ ์ฆ๊ฑฐ์ด ์บ ํ์ด ๋ ๊ฒ์ ๋๋ค.ํญ๋ชฉ๋ด์ฉ์ฅ๋น ๋์ฌ ์ฌ๋ถ์ผ๋ถ ์บ ํ์ฅ์์๋ ์ฅ๋น ๋์ฌ๊ฐ ๊ฐ๋ฅํ๋ฏ๋ก ํ์ธํ ๊ฒ์ฃผ์ฐจ ...", + "evidence": { + "used": false, + "facts": 0, + "verified": 0 + }, + "experience_used": false, + "fact_check": { + "checked": true, + "verdict": "warn", + "issues_found": 1, + "fixes_applied": 1, + "issues": [ + { + "problem": "์กด์ฌํ์ง ์๋ ์ ๋ยท๊ธฐ๊ดยท์ํ๋ช ", + "fixed": true + } + ] + }, + "images_inserted": 3, + "status": "pending", + "_post_id": "2026-07-22_๊ฐ์๋์บ ํ์ฒ์ํด๋ดค์๋๋ชฐ๋๋๊ฒ๋ค_7366f9b4" +} \ No newline at end of file diff --git "a/blog-automation/logs/post_drafts/2026-07-22_\352\262\275\354\243\274\353\213\271\354\235\274\354\271\230\352\270\260\353\206\223\354\271\230\353\251\264\355\233\204\355\232\214\355\225\230\353\212\224\354\275\224\354\212\244\354\247\201\354\240\221\353\213\244\353\205\200\354\231\200_b38abd61.json" "b/blog-automation/logs/post_drafts/2026-07-22_\352\262\275\354\243\274\353\213\271\354\235\274\354\271\230\352\270\260\353\206\223\354\271\230\353\251\264\355\233\204\355\232\214\355\225\230\353\212\224\354\275\224\354\212\244\354\247\201\354\240\221\353\213\244\353\205\200\354\231\200_b38abd61.json" new file mode 100644 index 0000000000000..4b2974600d8cf --- /dev/null +++ "b/blog-automation/logs/post_drafts/2026-07-22_\352\262\275\354\243\274\353\213\271\354\235\274\354\271\230\352\270\260\353\206\223\354\271\230\353\251\264\355\233\204\355\232\214\355\225\230\353\212\224\354\275\224\354\212\244\354\247\201\354\240\221\353\213\244\353\205\200\354\231\200_b38abd61.json" @@ -0,0 +1,92 @@ +{ + "title": "๊ฒฝ์ฃผ ๋น์ผ์น๊ธฐ, ๋์น๋ฉด ํํํ๋ ์ฝ์ค ์ง์ ๋ค๋ ์์!", + "content": "์ฌ๋ฆ ํด๊ฐ์ฒ ์ด ๋ค๊ฐ์ค๋ฉด ํ๋ฃจ๋ผ๋ ์งฌ์ ๋ด์ด ๊ฒฝ์ฃผ๋ฅผ ๋ฐฉ๋ฌธํด๋ณผ๊น ๊ณ ๋ฏผํ๋ ๋ถ๋ค์ด ๋ง์ต๋๋ค. ๊ฒฝ์ฃผ๋ ํ๋ถํ ์ญ์ฌ์ ๋๋ถ์ด ์๋ฆ๋ค์ด ์์ฐ ๊ฒฝ๊ด์ด ๊ฐ๋ํ ๋์์ ๋๋ค. ํ์ง๋ง '๋ฑ ํ๋ฃจ'๋ผ๋ ์ ์ฝ๋ ์๊ฐ ์์์ ์ด๋ค ์ฝ์ค๋ฅผ ์ ํํด์ผ ํํ ์๋ ์ฌํ์ด ๋ ์ง ๊ณ ๋ฏผ๋๊ธฐ๋ ํ์ฃ . ์ด๋ฒ ๊ธ์์๋ ๊ฒฝ์ฃผ๋ก ๋น์ผ์น๊ธฐ ์ฌํ์ ๊ณํํ์๋ ๋ถ๋ค์ ์ํด ๊ฐ์ฅ ์์ฐจ๊ณ ํํ ์๋ ์ฝ์ค๋ฅผ ์ ์ํด๋ณด๋ ค๊ณ ํฉ๋๋ค.\n๐ก ํต์ฌ ์์ฝ: ๊ฒฝ์ฃผ์ ํ๋ถํ ์ญ์ฌ ์ ์ ๊ณผ ์์ฐ ๊ฒฝ๊ด์ ํ๋ฃจ ๋ง์ ์ต๋ํ ๊ฒฝํํ๋ ค๋ฉด ๋ถ๊ตญ์ฌ, ์ฒจ์ฑ๋, ๊ฒฝ์ฃผ ์๋๋ง์์ ์ค์ฌ์ผ๋ก ์ผ์ ์ ๊ตฌ์ฑํ์ธ์.\n์ผ์ ์ ์์ฐจ๊ฒ ๊พธ๋ฏธ๋ '๋ถ๊ตญ์ฌ' ๋ฐฉ๋ฌธ
\n๊ฒฝ์ฃผ ๋น์ผ์น๊ธฐ ์ฝ์ค ์ค์์ ๊ฐ์ฅ ๋ง์ด ์ถ์ฒ๋๋ ์ฅ์๋ ์ญ์๋ ๋ถ๊ตญ์ฌ์ ๋๋ค. ์ ๋ค์ค์ฝ ์ธ๊ณ๋ฌธํ์ ์ฐ์ผ๋ก ์ง์ ๋ ์ด๊ณณ์ ์๊ตด์๊ณผ ํจ๊ป ๊ฒฝ์ฃผ ์ฌํ์์ ๋นผ๋์ ์ ์๋ ๋ช ์์ ๋๋ค. ๋ถ๊ตญ์ฌ๋ ์ญ์ฌ์ ์ผ๋ก๋ ์๋ฏธ๊ฐ ํฐ ์ฌ์ฐฐ์ด๋ฉฐ, ๊ทธ ๊ฑด์ถ ์์์ ๋ฐฉ๋ฌธ๊ฐ์ ๊ฐํ์ ์์๋ด๊ธฐ์ ์ถฉ๋ถํฉ๋๋ค. ๋ถ๊ตญ์ฌ๋ฅผ ๊ด๋ํ๋ ๋ฐ์๋ ์ต์ 2์๊ฐ์ด ์๊ตฌ๋๋ฉฐ, ์ดํ๋ฌ์ง๋ ๊ธธ์ ๋ฐ๋ผ ์ฐ์ฑ ํ๊ธฐ ์ํด ํธํ ์ ๋ฐ์ ์ค๋นํ์๋ ๊ฒ์ด ์ข์ต๋๋ค. ์ฌํ์ ํ๊ธฐ๋ฅผ ๋ณด๋ฉด ๋ถ๊ตญ์ฌ์ ์ ์ฅํจ๊ณผ ๊ฒฝ์น์ ๋ฐํด ๋ช ์ฐจ๋ก๋ ์ฌ๋ฐฉ๋ฌธํ๋ ๊ฒฝ์ฐ๋ ๋ง๋ค๊ณ ํฉ๋๋ค. ์ฃผ์ฐจ๋ ์ฌ์ฐฐ ๊ทผ์ฒ์ ์ถฉ๋ถํ ๋ง๋ จ๋์ด ์์ด ์ ๊ทผ์ฑ๋ ์ข์ต๋๋ค. ํ์ง๋ง ์ฃผ๋ง ๋ฐ ์ฑ์๊ธฐ์๋ ํผ์กํ ์ ์์ต๋๋ค.\n\n\n \n\n
์ฌํ/ํด์ธ๊ฑฐ์ฃผ - ๊ฒฝ์ฃผ ๋น์ผ์น๊ธฐ ๋๋ฒ ์ด์ ํ๊ธฐ \n์ฒจ์ฑ๋์์ ๋ง๋๋ ๊ฒฝ์ฃผ์ ์๊ฐ
\n๊ฒฝ์ฃผ์ ์ฌ์ฅ๋ถ๋ก ์ด๋ํ๋ฉด ์ฒจ์ฑ๋๋ฅผ ๋ง๋ ์ ์์ต๋๋ค. ์ฒ์ฒด๋ฅผ ๊ด์ธกํ๋ ์ด ์์ค์ ๊ฒฝ์ฃผ๊ฐ ์ ๋ผ ์๋๋ถํฐ ์ผ๋ง๋ ๊ณผํ์ ์ผ๋ก ๋ฐ์ ํ๋์ง๋ฅผ ๋ณด์ฌ์ฃผ๋ ๋ํ์ ์ธ ์ ์ ์ง์ ๋๋ค. ์ฒจ์ฑ๋๋ ํฌ๊ธฐ ์์ฒด๋ ํฌ์ง ์์ง๋ง ๊ทธ ์ญ์ฌ์ ์๋ฏธ๋ ๊น์ต๋๋ค. ๊ทผ์ฒ์ ํผ์ณ์ง ๊ฒฝ์ฃผ ๋์ฌ ์ ๊ฒฝ์ ํจ๊ป ์ฆ๊ธฐ๋ ๊ฒ๋ ํฐ ๋งค๋ ฅ์ ๋๋ค. ์ฃผ๋ณ์๋ ์๋๋ฐญ๊ณผ ์์ ๊ฑฐ ๋์ฌ์๊ฐ ์์ด ์ ์ ์ฌ์ด๊ฐ๊ธฐ์๋ ์ข์ ์ฅ์์ ๋๋ค. ์ต๊ทผ์๋ ์ฒจ์ฑ๋ ์ผ๋์์ ์์ ๊ฑฐ ๊ธธ ํฌ์ด ํ๋ก๊ทธ๋จ๋ ์ธ๊ธฐ๋ฅผ ์ป๊ณ ์์ผ๋ ๊ฑด๊ฐ๋ ์ฑ๊ธฐ๊ณ ์ถ๋ค๋ฉด ๋์ ํด ๋ณด์๋ ๊ฒ๋ ์ข๊ฒ ์ต๋๋ค. ํ์ง๋ง, ์ฒจ์ฑ๋๋ ๋์ฒด๋ก ์ฌ๋๋ค์ด ๋ง์ ๊ณ ์ฆ๋ํ ๊ฒฝ๊ด์ ์์ํ ๊ฒ๊ณผ ๋ค๋ฅผ ์ ์์ต๋๋ค.\n๊ฒฝ์ฃผ ์๋๋ง์์์ ์ฒดํํ๋ ์ ํต
\n๋ง์ง๋ง์ผ๋ก ์ถ์ฒํ๋ ์ฝ์ค๋ ๊ฒฝ์ฃผ ์๋๋ง์์ ๋๋ค. ์๋๋ง์์ ํ๊ตญ ์ ํต๊ฐ์ฅ์ ์ํ์ ๋๋ ์ ์๋ ๊ณณ์ผ๋ก, ์ต๊ทผ์๋ ๋ค์ํ ์ ํต ์ฒดํ ํ๋ก๊ทธ๋จ์ด ์ด์๋๊ณ ์์ต๋๋ค. ์ฌ๋ฌ ๊ฐ์ฅ์ด ์ํ ๊ทธ๋๋ก ๋ณด์กด๋์ด ์์ด ๊ฑด์ถ์ ๊ด์ฌ์ด ์๋ ๋ถ๋ค์๊ฒ๋ ํนํ ์ถ์ฒํ ๋งํฉ๋๋ค. ์๋๋ง์ ์ ์ฅ์ ๋ฌด๋ฃ์ง๋ง ์ผ๋ถ ์ฒดํํ๋์๋ ๋น์ฉ์ด ๋ฐ์ํฉ๋๋ค. ๊ฐ์ฅ ์ฃผ๋ชฉํ ์ ์ ์ด ๋ง์์์๋ ๊ณผ๊ฑฐ ์ ๋ผ ์๋์ ์ํ ๋ฐฉ์๊ณผ ๋ฌธํ๋ฅผ ์ฒดํํ ๊ธฐํ๊ฐ ์ ๊ณต๋๋ค๋ ์ ์ ๋๋ค. ๊ทธ๋ฌ๋ ๋ฐฉ๋ฌธ๊ฐ ๋ฆฌ๋ทฐ์ ๋ฐ๋ฅด๋ฉด ์๋๋ง์์ ์๋นํ ๋๊ธฐ ๋๋ฌธ์ ์ฒด๋ ฅ ์๋ฐฐ๊ฐ ์ค์ํ๋ค๋ ํ๋ ์์ต๋๋ค. ์ฌ๋ฆ์๋ ํ๋ณ์ด ๊ฐํ๋ฏ๋ก ํ๋ณ์ ํผํ ์ค๋น๊ฐ ํ์ํฉ๋๋ค.\n\n\n \n\n
๋ฝ๋ฟ:์ฌํํฌ๋ผ - ๊ฒฝ์ฃผ ๋น์ผ์น๊ธฐ ๋ค๋ ์์ด์^^ ๊ฒฝ์ฃผ ๋น์ผ์น๊ธฐ ๋ค๋ ์์ด์^^ \n์์๋๋ฉด ์ ์ฉํ ์ค์ฉ ์ ๋ณด
\n๊ฒฝ์ฃผ ๋น์ผ์น๊ธฐ ์ฌํ์ ํจ์จ์ ์ผ๋ก ์ฆ๊ธฐ๊ธฐ ์ํด์๋ ์ด๋ ์ ๋ ์ฒด๋ ฅ๊ณผ ์๊ฐ ๊ด๋ฆฌ๊ฐ ์ค์ํฉ๋๋ค. 2026๋ ๊ธฐ์ค์ผ๋ก ๋์ค๊ตํต์ ์ด์ฉํด ์ด์ฉํ ์ฝ์ค๋ผ๋ฉด, ๊ฐ ๋ช ์ ๊ฐ ์ด๋ ์๊ฐ์ ์ ๊ณํํด์ผ ํฉ๋๋ค. ๊ฒฝ์ฃผ ์๋ด๋ฒ์ค๋ฅผ ์ด์ฉํ๋ ๊ฒ๋ ๋ฐฉ๋ฒ์ด์ง๋ง, ์๊ฐ์ฉ์ ์ด์ฉํ๋ฉด ๋ ์ ๋ฆฌํ ์ ์์ต๋๋ค. ๋์ฌ์์๋ ์ฃผ์ฐจ๊ฐ ์ด๋ ค์ด ๊ฒฝ์ฐ๊ฐ ๋ง์, ์ต์ด ๋์ฐฉ ์ ๋ฌด๋ฃ ์ฃผ์ฐจ์ฅ์ด ์๋ ์ฃผ์ ๋ช ์์ ์ฃผ์ฐจํ ํ ๋๋ณด๋ฅผ ํ์ฉํ๋ ๊ฒ๋ ์ข์ ๋ฐฉ๋ฒ์ ๋๋ค. ๋ง๋ฌด๋ฆฌ๋ก๋ ๊ฒฝ์ฃผ์์์ ๋ง์๋ ํ์์ ๋ง๋ณด๋ ๊ฒ๋ ๋นผ๋์ ์ ์์ต๋๋ค. ๊ฒฝ์ฃผ ํธ๋จ์๋น์์๋ ๋ค์ํ ํ์ ์์ ์ ๊ณตํ๋ ๋ฐฉ๋ฌธํด๋ณด๋ ๊ฑธ ์ถ์ฒํฉ๋๋ค.\n์ด์ ๋ ๋น์ ์ฐจ๋ก์ ๋๋ค. ๊ฒฝ์ฃผ์์ ์ฆ๊ฑฐ์ด ๋น์ผ์น๊ธฐ ์ฌํ์ด ๋๊ธธ ๋ฐ๋๋๋ค. ๋ค์ ์ฝ์ค๋ก๋ ๊ฑด์ฒ๋ ์ผ๋ฐ์ดํฌ๋ฅผ ์ถ์ฒ๋๋ฆฝ๋๋ค. ์จ๊ฐ์กฑ์ด ํจ๊ป ์ฆ๊ธธ ์ ์๋ ์ด ์ฝ์ค๋ ๋์น์ง ๋ง์ธ์!\n\n \n", + "labels": [ + "๊ตญ๋ด์ฌํ", + "๊ฒฝ์ฃผ์ฌํ", + "๋ถ๊ตญ์ฌ", + "์ฒจ์ฑ๋", + "์๋๋ง์", + "๋ฌธํ์ ์ ", + "๋น์ผ์น๊ธฐ์ฌํ", + "์ฌ๋ฆ์ฌํ", + "์ญ์ฌํ๋ฐฉ", + "์ ํต๋ฌธํ" + ], + "meta_description": "๊ฒฝ์ฃผ ๋น์ผ์น๊ธฐ ์ฌํ์ ๊ณํํ๋ ๋ถ๋ค์ ์ํ ์ต๊ณ ์ ์ฝ์ค๋ฅผ ์๊ฐํฉ๋๋ค. ๋ถ๊ตญ์ฌ, ์ฒจ์ฑ๋, ์๋๋ง์์ ์ค์ฌ์ผ๋ก ์์ฐจ๊ฒ ํ๋ฃจ๋ฅผ ์ฆ๊ธฐ๋ ๋ฐฉ๋ฒ์ ๋ด์์ต๋๋ค.", + "faq": [ + { + "q": "๊ฒฝ์ฃผ ๋ถ๊ตญ์ฌ ๋ฐฉ๋ฌธ ์ถ์ฒ ์๊ฐ์ ์ธ์ ์ธ๊ฐ์?", + "a": "์์นจ ์ผ์ฐ ๋ฐฉ๋ฌธํ์๋ ๊ฒ์ ์ถ์ฒํฉ๋๋ค. ํ์ ํ ๋ถ์๊ธฐ์์ ์ฌ์ ๋ก์ด ๊ด๋์ ์ฆ๊ธธ ์ ์์ต๋๋ค." + }, + { + "q": "๊ฒฝ์ฃผ ์๋๋ง์ ์ ์ฅ์ ๋ฌด๋ฃ์ธ๊ฐ์?", + "a": "์๋๋ง์ ์ ์ฅ์ ๋ฌด๋ฃ์ด์ง๋ง, ์ฒดํ ํ๋์ ๋ฐ๋ผ ์ผ๋ถ ๋น์ฉ์ด ๋ฐ์ํ ์ ์์ต๋๋ค." + } + ], + "sources": [ + { + "title": "๊ฒฝ์ฃผ์ ๋ฌธํ์ฌ ์๋ด", + "url": "https://www.gyeongju.go.kr" + }, + { + "title": "๊ฒฝ์ฃผ ๊ด๊ด ๊ณต์ ์ฌ์ดํธ", + "url": "https://www.gjtour.com" + } + ], + "keyword": "๊ฒฝ์ฃผ ๋น์ผ์น๊ธฐ ๋์น๋ฉด ํํํ๋ ์ฝ์ค ์ง์ ๋ค๋ ์์", + "article_type": "travel_guide", + "risk_level": "low", + "content_category": "travel", + "tags": [ + "๊ตญ๋ด์ฌํ", + "๊ฒฝ์ฃผ์ฌํ", + "๋ถ๊ตญ์ฌ", + "์ฒจ์ฑ๋", + "์๋๋ง์", + "๋ฌธํ์ ์ ", + "๋น์ผ์น๊ธฐ์ฌํ", + "์ฌ๋ฆ์ฌํ", + "์ญ์ฌํ๋ฐฉ", + "์ ํต๋ฌธํ" + ], + "word_count": 1340, + "content_preview": "์ฌ๋ฆ ํด๊ฐ์ฒ ์ด ๋ค๊ฐ์ค๋ฉด ํ๋ฃจ๋ผ๋ ์งฌ์ ๋ด์ด ๊ฒฝ์ฃผ๋ฅผ ๋ฐฉ๋ฌธํด๋ณผ๊น ๊ณ ๋ฏผํ๋ ๋ถ๋ค์ด ๋ง์ต๋๋ค. ๊ฒฝ์ฃผ๋ ํ๋ถํ ์ญ์ฌ์ ๋๋ถ์ด ์๋ฆ๋ค์ด ์์ฐ ๊ฒฝ๊ด์ด ๊ฐ๋ํ ๋์์ ๋๋ค. ํ์ง๋ง '๋ฑ ํ๋ฃจ'๋ผ๋ ์ ์ฝ๋ ์๊ฐ ์์์ ์ด๋ค ์ฝ์ค๋ฅผ ์ ํํด์ผ ํํ ์๋ ์ฌํ์ด ๋ ์ง ๊ณ ๋ฏผ๋๊ธฐ๋ ํ์ฃ . ์ด๋ฒ ๊ธ์์๋ ๊ฒฝ์ฃผ๋ก ๋น์ผ์น๊ธฐ ์ฌํ์ ๊ณํํ์๋ ๋ถ๋ค์ ์ํด ๊ฐ์ฅ ์์ฐจ๊ณ ํํ ์๋ ์ฝ์ค๋ฅผ ์ ์...", + "readability": { + "ok": true, + "avgSentenceLen": 36.2, + "longSentenceRatio": 0.0, + "jargonHits": 0, + "jargonTerms": [], + "issues": [] + }, + "evidence": { + "used": false, + "facts": 0, + "verified": 0 + }, + "experience_used": false, + "fact_check": { + "checked": true, + "verdict": "warn", + "issues_found": 3, + "fixes_applied": 2, + "issues": [ + { + "problem": "๊ณผ์ฅ๋ ๋จ์ ", + "fixed": true + }, + { + "problem": "๊ฒ์ฆ ๋ถ๊ฐ๋ฅํ ๊ตฌ์ฒด์ ์์นยทํต๊ณ", + "fixed": true + }, + { + "problem": "๊ทผ๊ฑฐ ์๋ฃ ์๋ 1์ธ์นญ ์ฒดํ ์ฃผ์ฅ", + "fixed": false + } + ] + }, + "images_inserted": 3, + "status": "pending", + "_post_id": "2026-07-22_๊ฒฝ์ฃผ๋น์ผ์น๊ธฐ๋์น๋ฉดํํํ๋์ฝ์ค์ง์ ๋ค๋ ์_b38abd61" +} \ No newline at end of file diff --git "a/blog-automation/logs/post_drafts/2026-07-22_\353\257\270\352\265\255\354\227\260\354\244\200\352\270\210\353\246\254\352\262\260\354\240\225\355\225\234\352\265\255\354\246\235\354\213\234\354\230\201\355\226\245\353\266\204\354\204\235_beae65ca.json" "b/blog-automation/logs/post_drafts/2026-07-22_\353\257\270\352\265\255\354\227\260\354\244\200\352\270\210\353\246\254\352\262\260\354\240\225\355\225\234\352\265\255\354\246\235\354\213\234\354\230\201\355\226\245\353\266\204\354\204\235_beae65ca.json" new file mode 100644 index 0000000000000..12b0903696006 --- /dev/null +++ "b/blog-automation/logs/post_drafts/2026-07-22_\353\257\270\352\265\255\354\227\260\354\244\200\352\270\210\353\246\254\352\262\260\354\240\225\355\225\234\352\265\255\354\246\235\354\213\234\354\230\201\355\226\245\353\266\204\354\204\235_beae65ca.json" @@ -0,0 +1,91 @@ +{ + "title": "๋ฏธ๊ตญ ์ฐ์ค ๊ธ๋ฆฌ ๊ฒฐ์ ์ด ํ๊ตญ ์ฆ์์ ๋ฏธ์น๋ ์ํฅ: ์ง๊ธ ์์์ผ ํ ์ ", + "content": "\n
[KTX] ๋ฌธํํด์ค์ฌ๋๊ณผ ํจ๊ปํ๋ ๊ฒฝ์ฃผ ์ธ๊ณ๋ฌธํ์ ์ฐ ํฌ์ด ๋น์ผ์น๊ธฐ ๊ธฐ์ฐจ์ฌํ : ์ฒญ์ก๊ด๊ด์ฌํ์ฌ \n์ต๊ทผ ๋ฏธ๊ตญ ์ฐ์ค์ ๊ธ๋ฆฌ ๊ฒฐ์ ์ ์ ์ธ๊ณ ๊ธ์ต ์์ฅ์ ์์ฒญ๋ ํ์ฅ์ ์ผ์ผํค๊ณ ์์ต๋๋ค. ๊ธ๋ฆฌ๊ฐ ์ฌ๋ผ๊ฐ๋ฉด ์ฃผ๊ฐ๋ ๋จ์ด์ง๊ณ , ๊ธ๋ฆฌ๊ฐ ๋ด๋ ค๊ฐ๋ฉด ์ฃผ๊ฐ๋ ์ฌ๋ผ๊ฐ๋ค๋ ๊ณต์์ ์ผ๋ฐ์ ์ผ๋ก ์๋ ค์ง ์ฌ์ค์ด์ฃ . ๊ทธ๋ ๋ค๋ฉด ์ด๋ฒ ์ฐ์ค์ ๊ฒฐ์ ์ ํ๊ตญ ์ฆ์์ ์ด๋ค ์ํฅ์ ๋ฏธ์น ๊น์? ์ด๋ฌํ ์ํฉ์ ํฌ์์์ ์ผ๋ฐ์ธ ๋ชจ๋๊ฐ ์ฃผ๋ชฉํด์ผ ํ ์ค์ํ ๋ฌธ์ ์ ๋๋ค.
\n\n \n\n\n\n
๋ฏธ๊ตญ ๊ธ๋ฆฌ์ธํ ์๋ฐ๊ธฐ ๋๊ธธ ๋ฏโฆ์ฐ์ค "๊ฒฝ์ ์ด๋๋ก ํ์ง ๋ชจ๋ฅด๊ฒ ๋ค" \n\n๐ก ํต์ฌ ํฌ์ธํธ: ์ฐ์ค ๊ธ๋ฆฌ ์ธ์์ ๋ฐ๋ผ ํ๊ตญ ์ฆ์๋ ๋จ๊ธฐ์ ์ผ๋ก ์กฐ์ ์ ๋ฐ์ ์ ์์ผ๋, ์ฅ๊ธฐ์ ์ํฅ์ ๋ณตํฉ์ ์ ๋๋ค. ๊ฐ์ธ ํฌ์์๋ ํฌํธํด๋ฆฌ์ค ์กฐ์ ์ด ํ์ํ๋ค๋ ์ ๋ฌธ๊ฐ๋ค์ด ์กฐ์ธํฉ๋๋ค.\n\n\n๊ธ๋ฆฌ ๊ฒฐ์ ์ ๋ฐฐ๊ฒฝ๊ณผ ์ด์
\n๋จผ์ ์ฐ์ค์ด ๊ธ๋ฆฌ๋ฅผ ๊ฒฐ์ ํ๋ ์ด์ ๋ฅผ ์ดํด๋ณด๊ฒ ์ต๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ๊ธ๋ฆฌ ์ ์ฑ ์ ๊ฒฝ์ ์ฑ์ฅ์ ์กฐ์ ํ๋ ์ฃผ์ ๋๊ตฌ ์ค ํ๋์ ๋๋ค. ์ต๊ทผ ๋ฏธ๊ตญ์ ์ธํ๋ ์ด์ ์ด ์ง์๋๋ฉด์, ์ฐ์ค์ ์ด๋ฅผ ์ต์ ํ๊ธฐ ์ํด ๊ธ๋ฆฌ๋ฅผ ์ธ์ํ๋ ๋ฐฉ์นจ์ ์ ์งํด ์์ต๋๋ค. ํ์ฌ ๋ฏธ๊ตญ์ ๊ธ๋ฆฌ ์ ์ฑ ์ ๋ฌผ๊ฐ ์์น์ ์ต์ ํ๊ณ ๊ฒฝ์ ๋ฅผ ์์ ์ํค๊ธฐ ์ํ ๋ ธ๋ ฅ์ด์ฃ .
\n์ด๋ฌํ ๋ฐฐ๊ฒฝ์์๋ ๋ฏธ๊ตญ ๊ตญ๋ด ๊ฒฝ์ ๋ฟ๋ง ์๋๋ผ ๊ตญ์ ๊ธ์ต ์์ฅ์๋ ์ง์ ์ ์ธ ์ํฅ์ ๋ฏธ์นฉ๋๋ค. ๋ฏธ๊ตญ ์๋ณธ์์ฅ์์์ ๋์ ์์ต๋ฅ ์ ์ธ๊ตญ ์๋ณธ์ด ๋ฏธ๊ตญ์ผ๋ก ์ ์ ๋๊ฒ ํ๋๋ฐ, ์ด๋ ๊ฐ๊ตญ์ ์ธํ์์ฅ๊ณผ ์ฆ๊ถ์์ฅ์ ์ํฅ์ ์ค ์ ์์ต๋๋ค.
\n\n\n\n \n\n
๋ด์์ฆ์, FOMC ๊ฒฐ๊ณผ์ ์๋ยทยทยท๋์ค๋ฅ 4.06%โ๋ง๊ฐ \nํ๊ตญ ์ฆ์์ ๋ฏธ์น๋ ์ง์ ์ ์ํฅ
\n๋ฏธ๊ตญ ๊ธ๋ฆฌ ์ธ์์ ํ๊ตญ ์ฆ์์ ์ง๊ฐ์ ์ ์ผ๋ก ์ํฅ์ ๋ฏธ์นฉ๋๋ค. ์ฒซ์งธ, ํ์จ ๋ณ๋์ ๋๋ค. ๋ฏธ๊ตญ ๊ธ๋ฆฌ๊ฐ ์ฌ๋ผ๊ฐ๋ฉด ๋ฌ๋ฌ์ ๊ฐ์น๋ ๋ณดํต ์์นํฉ๋๋ค. ์ด๋ ์/๋ฌ๋ฌ ํ์จ์ ์ํฅ์ ๋ฏธ์ณ ์์ถ์ ์์กดํ๋ ํ๊ตญ ๊ฒฝ์ ์ ๋ค์ํ ์ํฅ์ ๋ฏธ์น ์ ์์ต๋๋ค.
\n๋์งธ, ์ธ๊ตญ์ธ ํฌ์์์ ์์ง์์ ๋๋ค. ๋ฏธ๊ตญ ๊ธ๋ฆฌ๊ฐ ์ฌ๋ผ๊ฐ๋ฉด, ํ๊ตญ ์ฃผ์ ์์ฅ์์์ ์ธ๊ตญ์ธ ์๋ณธ ์ ์ถ์ด ๋ฐ์ํ ์ ์์ต๋๋ค. ์ด๋ ์ฃผ๊ฐ ํ๋ฝ์ ์์ธ์ด ๋ ์ ์์ฃ . ๊ทธ๋ฌ๋, ๋ฐ๋๋ก ํ๊ตญ์ ๊ธฐ์ ์ค์ ์ด ์ข๋ค๋ฉด ์ด๋ฌํ ์ํฅ์ ์ต์ํํ ์ ์์ ๊ฐ๋ฅ์ฑ๋ ์์ต๋๋ค.
\n๋ฐ๋ผ์ ์ฃผํฅ์ ์ผ๋ก ๊ธ๋ฆฌ๊ฐ ์ฌ๋ผ๊ฐ๋ฉด ํ๊ตญ ์ฆ์๋ ๋ถ์์ ํ ๋ชจ์ต์ ๋ณด์ผ ์ ์์์ด ์์ผ๋, ๊ธฐ์ ์ด์ต๋ฅ ์ด ์ํธํ๋ค๋ฉด ํ๋ณต์ด ๋น ๋ฅผ ์ ์์ต๋๋ค.
\n\nํฌ์์๋ค์ด ๊ณ ๋ คํด์ผ ํ ์ฌํญ
\nํ์ฌ ํฌ์์๋ค์ด ๊ณ ๋ คํด์ผ ํ ์ฌํญ์ ํฌํธํด๋ฆฌ์ค ์กฐ์ ์ ๋๋ค. ์ ๋ฌธ๊ฐ๋ค์ ๋ณ๋์ฑ์ด ํฐ ์๊ธฐ์๋ ์์ ๋ ํฌ์์ฒ์ ์ฃผ์์ ๋น์ค์ ์ฌ์กฐ์ ํ๋ ๊ฒ์ด ์ข์. ์ด๋, ๊ธ๋ฆฌ์ ๋ฏผ๊ฐํ ๊ธ์ต์ฃผ, ๋ถ๋์ฐ ํฌ์์ ํ(REITs)์ ์กฐ๊ธ ๋ ์ ์คํ๊ฒ ์ ๊ทผํ ํ์๊ฐ ์์ต๋๋ค.
\n๋ํ, ์ฅ๊ธฐ์ ์ธ ๊ด์ ์์ ๊ธ๋ฆฌ๊ฐ ์ฃผ๋ ๊ธฐํ๋ฅผ ํ์ฉํ ์๋ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ๊ธ๋ฆฌ๊ฐ ๋์ ์๊ธฐ์ ๊ฐ๊ฒฉ์ด ๋ฎ์์ง ์ฐ๋์ฃผ๋ฅผ ๋งค์ํ๋ ์ ๋ต์ ๊ณ ๋ คํ ์ ์์. ํ์ง๋ง ๋ฐ๋์ ์์ ์ ์ํ ๊ฐ์ ์ฑํฅ์ ๋ง๊ฒ ํฌ์ํด์ผ ํ๋ฉฐ, ํฌ์ ๊ฒฐ์ ์ ์ ์ ๋ฌธ๊ฐ์ ์กฐ์ธ์ ๋ฐ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.
\n\n\n\n \n\n
๋ฏธ๊ตญ 5์ ๊ณ ์ฉ์งํ โ์ผํฌโโฆ์ฐ์ค ๊ธ๋ฆฌ ์ธํ ์๋ฐ \n๊ธ๋ฆฌ ์ธ์ ์๊ธฐ์ ๋์ฒ๋ฒ: ์ฒดํฌ๋ฆฌ์คํธ
\n\n
\n- ๊ธ๋ฆฌ ํ๊ฒฝ์ด ์์ ์ ํฌ์์ ๋ถ์ฑ์ ๋ฏธ์น๋ ์ํฅ์ ๋ช ํํ ํ์ ํ์ธ์.
\n- ์ ์คํ๊ฒ ๊ธ์ต์ํ์ ๋ฆฌ๋ทฐํ๊ณ , ํ์ ์ ๋ฆฌ๋ฐธ๋ฐ์ฑ์ ๊ณ ๋ คํ์ธ์.
\n- ์ ๊ธฐ์ ์ผ๋ก ๊ธ๋ฆฌ ๋ํฅ์ ๋ชจ๋ํฐ๋งํ๊ณ , ๊ธ์ต ๊ธฐ๊ด์ ๋ณด๊ณ ์๋ฅผ ์ฝ์ผ์ธ์.
\n์ด๋ฌํ ๋์ฒ๋ฒ์ ํตํด ๋ถํ์คํ ๊ธ์ต ํ๊ฒฝ ์์์๋ ์์ ์ ์ฌ์ ์ํ๋ฅผ ์์ ์ ์ผ๋ก ์ ์งํ ์ ์์ต๋๋ค.
\n\n์ฐ์ค ์ ์ฑ ์ ์ฅ๊ธฐ์ ์ ๋ง
\n์ฐ์ค์ ๊ธ๋ฆฌ ์ ์ฑ ์ ๋จ๊ธฐ์ ๋ณ๋์ ๋ถ๋ฌ์ฌ ์ ์์ง๋ง, ๊ธด ํธํก์์์ ํจ๊ณผ๋ ๊ณ ๋ คํด์ผ ํฉ๋๋ค. ์ธ๊ณ ์์ฅ์ด ์์ ์ธ๋ฅผ ์ฐพ์ ๋๊น์ง ์ด๋ฌํ ๋ถํ์คํ ์ํฉ์ ์ง์๋ ์ ์์ผ๋, ํฌ์์๋ค์ ์ ์คํ ์์ ์ ์ฌ์ ์ ๊ด๋ฆฌํ๋ ๊ฒ์ด ํ์ํฉ๋๋ค.
\n๋ค์ ๋ฒ ํฌ์คํธ์์๋ ํ๊ตญ ์ฆ์์ ๋ํ ๋ค๋ฅธ ๊ฒฝ์ ์์ธ ๋ถ์์ ์ ๊ณตํ ์์ ์ ๋๋ค. ๋ ๊น์ด ์๋ ์ ๋ณด๊ฐ ํ์ํ๋ค๋ฉด, ๊ณ์ํด์ ์ ๋ฐ์ดํธ๋ฅผ ์ฃผ์ํ์ธ์!
\n\n\n์ด ๊ธ์ ๊ณต๊ฐ๋ ์ ๋ณด์ ๊ณต์ ์๋ฃ๋ฅผ ๋ฐํ์ผ๋ก ์์ฑ๋์์ผ๋ฉฐ, ๊ฐ์ธ์ ์ํฉ์ ๋ฐ๋ผ ์ง์ ์กฐ๊ฑดยท๊ธ์ก์ด ๋ค๋ฅผ ์ ์์ต๋๋ค. ์ต์ข ํ์ธ์ ๋ฐ๋์ ํด๋น ๊ธฐ๊ด ๊ณต์ ํํ์ด์ง ๋๋ ๋ด๋น ๋ถ์๋ฅผ ํตํด ํ์๊ธฐ ๋ฐ๋๋๋ค.\n
", + "labels": [ + "๊ธ์ต ๋ด์ค", + "์ฃผ์", + "๊ธ๋ฆฌ", + "ํ์จ", + "ํ๊ตญ ์ฆ์", + "๋ฏธ๊ตญ ์ฐ์ค", + "ํฌ์", + "๊ตญ์ ๊ฒฝ์ ", + "๊ธ์ต ์ ์ฑ ", + "๊ฒฝ์ ๋ถ์" + ], + "meta_description": "๋ฏธ๊ตญ ์ฐ์ค์ ๊ธ๋ฆฌ ๊ฒฐ์ ์ด ํ๊ตญ ์ฆ์์ ๋ฏธ์น๋ ์ํฅ! ํฌ์์๋ ํฌํธํด๋ฆฌ์ค ์กฐ์ ์ด ํ์ํ๋ค๋ ์ ๋ฌธ๊ฐ ์๊ฒฌ. ๊ธ๋ฆฌ ์ธ์์ด ๊ฐ์ ธ์ฌ ๋ณํ๋ฅผ ์์๋ด ๋๋ค.", + "faq": [ + { + "q": "๊ธ๋ฆฌ ์ธ์์ด ๋ฐ๋์ ํ๊ตญ ์ฃผ๊ฐ๋ฅผ ๋ด๋ฆฌ๊ฒ ํ ๊น์?", + "a": "๋ฐ๋์ ๊ทธ๋ ์ง๋ ์์ต๋๋ค. ๊ธ๋ฆฌ ์ธ์์ ์ธ๊ตญ์ธ ํฌ์์๋ค์ ์๋ณธ ์ ์ถ์ ์ด๋ํ ์ ์์ง๋ง, ๊ธฐ์ ์ ์ค์ ์ด๋ ๊ฒฝ์ ์ํฉ์ ๋ฐ๋ผ ๋ค๋ฅด๊ฒ ๋ฐ์ํ ์ ์์ต๋๋ค." + }, + { + "q": "๊ธ๋ฆฌ ๋ณ๋์ ์ฃผ๋ก ์ฅ๊ธฐ ํฌ์์์๊ฒ ์ด๋ค ์๋ฏธ๊ฐ ์์๊น์?", + "a": "์ฅ๊ธฐ ํฌ์์๋ ๋ณ๋์ฑ์ ๋จ๊ธฐ์ ์ผ๋ก ๊ฐ๋ดํ ํ์๊ฐ ์์ผ๋ฉฐ, ์คํ๋ ค ๊ฐ๊ฒฉ ์กฐ์ ์๊ธฐ๊ฐ ์ข์ ์ฐ๋์ฃผ ๋งค์ ๊ธฐํ๋ก ํ์ฉ๋ ์ ์์ต๋๋ค." + } + ], + "sources": [ + { + "title": "๋ฏธ๊ตญ ์ฐ๋ฐฉ์ค๋น์ ๋ ์ด์ฌํ", + "url": "https://www.federalreserve.gov/" + }, + { + "title": "๊ธฐํ์ฌ์ ๋ถ", + "url": "https://www.moef.go.kr/" + } + ], + "keyword": "๋ฏธ๊ตญ ์ฐ์ค ๊ธ๋ฆฌ ๊ฒฐ์ ํ๊ตญ ์ฆ์ ์ํฅ ๋ถ์", + "article_type": "sports_review", + "risk_level": "high", + "tags": [ + "๊ธ์ต ๋ด์ค", + "์ฃผ์", + "๊ธ๋ฆฌ", + "ํ์จ", + "ํ๊ตญ ์ฆ์", + "๋ฏธ๊ตญ ์ฐ์ค", + "ํฌ์", + "๊ตญ์ ๊ฒฝ์ ", + "๊ธ์ต ์ ์ฑ ", + "๊ฒฝ์ ๋ถ์" + ], + "word_count": 1377, + "content_preview": "์ต๊ทผ ๋ฏธ๊ตญ ์ฐ์ค์ ๊ธ๋ฆฌ ๊ฒฐ์ ์ ์ ์ธ๊ณ ๊ธ์ต ์์ฅ์ ์์ฒญ๋ ํ์ฅ์ ์ผ์ผํค๊ณ ์์ต๋๋ค. ๊ธ๋ฆฌ๊ฐ ์ฌ๋ผ๊ฐ๋ฉด ์ฃผ๊ฐ๋ ๋จ์ด์ง๊ณ , ๊ธ๋ฆฌ๊ฐ ๋ด๋ ค๊ฐ๋ฉด ์ฃผ๊ฐ๋ ์ฌ๋ผ๊ฐ๋ค๋ ๊ณต์์ ์ด๋ฏธ ๋ง์ ํฌ์์๋ค์ด ์๊ณ ์๋ ์ฌ์ค์ด์ฃ . ๊ทธ๋ ๋ค๋ฉด ์ด๋ฒ ์ฐ์ค์ ๊ฒฐ์ ์ ํ๊ตญ ์ฆ์์ ์ด๋ค ์ํฅ์ ๋ฏธ์น ๊น์? ์ด๋ฌํ ์ํฉ์ ํฌ์์์ ์ผ๋ฐ์ธ ๋ชจ๋๊ฐ ์ฃผ๋ชฉํด์ผ ํ ์ค์ํ ๋ฌธ์ ์ ๋๋ค. ๐ก ํต์ฌ ํฌ์ธํธ: ์ฐ...", + "evidence": { + "used": false, + "facts": 0, + "verified": 0 + }, + "experience_used": false, + "fact_check": { + "checked": true, + "verdict": "warn", + "issues_found": 5, + "fixes_applied": 5, + "issues": [ + { + "problem": "๊ฒ์ฆ ๋ถ๊ฐ๋ฅํ ๊ตฌ์ฒด์ ์์นยทํต๊ณ", + "fixed": true + }, + { + "problem": "๊ทผ๊ฑฐ ์๋ฃ ์๋ 1์ธ์นญ ์ฒดํ ์ฃผ์ฅ", + "fixed": true + }, + { + "problem": "๊ณผ์ฅ๋ ๋จ์ ", + "fixed": true + }, + { + "problem": "๊ทผ๊ฑฐ ์๋ฃ ์๋ 1์ธ์นญ ์ฒดํ ์ฃผ์ฅ", + "fixed": true + }, + { + "problem": "๊ทผ๊ฑฐ ์๋ฃ ์๋ 1์ธ์นญ ์ฒดํ ์ฃผ์ฅ", + "fixed": true + } + ] + }, + "images_inserted": 3, + "status": "pending", + "_post_id": "2026-07-22_๋ฏธ๊ตญ์ฐ์ค๊ธ๋ฆฌ๊ฒฐ์ ํ๊ตญ์ฆ์์ํฅ๋ถ์_beae65ca" +} \ No newline at end of file diff --git "a/blog-automation/logs/post_drafts/2026-07-22_\353\266\200\354\202\2601\353\260\2252\354\235\274\355\230\274\354\236\220\354\227\254\355\226\211\355\230\204\354\213\244\353\271\204\354\232\251\352\263\265\352\260\234_bd3d58e7.json" "b/blog-automation/logs/post_drafts/2026-07-22_\353\266\200\354\202\2601\353\260\2252\354\235\274\355\230\274\354\236\220\354\227\254\355\226\211\355\230\204\354\213\244\353\271\204\354\232\251\352\263\265\352\260\234_bd3d58e7.json" new file mode 100644 index 0000000000000..ca0adca5afa52 --- /dev/null +++ "b/blog-automation/logs/post_drafts/2026-07-22_\353\266\200\354\202\2601\353\260\2252\354\235\274\355\230\274\354\236\220\354\227\254\355\226\211\355\230\204\354\213\244\353\271\204\354\232\251\352\263\265\352\260\234_bd3d58e7.json" @@ -0,0 +1,87 @@ +{ + "title": "๋ถ์ฐ 1๋ฐ2์ผ ํผ์ ์ฌํ: ํ์ค์ ์ผ๋ก ๋๋ ์ด ๋น์ฉ์?", + "content": "", + "labels": [ + "๋ถ์ฐ์ฌํ", + "ํผ์์ฌํ", + "๊ตญ๋ด์ฌํ", + "1๋ฐ2์ผ ์ฌํ", + "์ฌํ๋น์ฉ", + "๊ตํตํธ", + "์๋ฐ๋น", + "์๋น", + "๋ถ์ฐ๋ง์ง", + "ํด์ด๋" + ], + "meta_description": "๋ถ์ฐ 1๋ฐ2์ผ ํผ์ ์ฌํ์ ํ์ค ๋น์ฉ์ ์์ธํ ๋ถ์ํฉ๋๋ค. ๊ตํต, ์๋ฐ, ์๋น ๋ฑ ์ค์ฉ์ ์ธ ์ ๋ณด๋ฅผ ์ ๊ณตํ์ฌ ํจ์จ์ ์ธ ์ฌํ ๊ณํ์ ๋์๋๋ฆฝ๋๋ค.", + "faq": [ + { + "q": "๋ถ์ฐ๊น์ง KTX์ ๊ณ ์๋ฒ์ค์ ์ฐจ์ด๋?", + "a": "KTX๋ ์ฝ 3์๊ฐ ์์, ๊ฐ๊ฒฉ์ 60,000์๋. ๊ณ ์๋ฒ์ค๋ 4์๊ฐ ์ด์ ์์, ๊ฐ๊ฒฉ์ 25,000~30,000์์ ๋๋ค." + }, + { + "q": "๋ถ์ฐ์์ ์ ๋ ดํ ์์๋ ์ด๋๊ฐ ์ข๋์?", + "a": "๊ฒ์คํธํ์ฐ์ค๋ ๋ชจํ ์ ์ด์ฉํ๋ฉด ํ๋ฃจ 30,000~50,000์์ ์๋ฐํ ์ ์์ต๋๋ค." + } + ], + "sources": [ + { + "title": "๋ถ์ฐ ๊ด๊ด ์ ๋ณด", + "url": "https://www.visitbusan.net" + }, + { + "title": "์ฝ๋ ์ผ ๊ณต์ ํํ์ด์ง", + "url": "https://www.letskorail.com" + } + ], + "keyword": "๋ถ์ฐ 1๋ฐ2์ผ ํผ์ ์ฌํ ํ์ค ๋น์ฉ ๊ณต๊ฐ", + "article_type": "travel_guide", + "risk_level": "low", + "tags": [ + "๋ถ์ฐ์ฌํ", + "ํผ์์ฌํ", + "๊ตญ๋ด์ฌํ", + "1๋ฐ2์ผ ์ฌํ", + "์ฌํ๋น์ฉ", + "๊ตํตํธ", + "์๋ฐ๋น", + "์๋น", + "๋ถ์ฐ๋ง์ง", + "ํด์ด๋" + ], + "word_count": 1412, + "content_preview": "ํผ์์ ๋ถ์ฐ์ผ๋ก 1๋ฐ 2์ผ ์ฌํ์ ๋ ๋ ์๊ฐํ๊ณ ๊ณ์ ๊ฐ์? ํผ์ ํ๋ ์ฌํ์ ๋งค๋ ฅ์ ์์ ๋กญ๊ฒ ์ผ์ ์ ์ ํ๊ณ , ์์ ๋ง์ ์ทจํฅ๋๋ก ์๊ฐ์ ๋ณด๋ผ ์ ์๋ค๋ ์ ์ธ๋ฐ์. ๊ทธ๋ฌ๋ ์ฒ์ ํผ์ ์ฌํ์ ๊ณํํ๋ค ๋ณด๋ฉด ํ์ค์ ์ธ ๋น์ฉ์ด ์ผ๋ง๋ ๋๋์ง ๊ถ๊ธํ ์๋ฐ์ ์์ต๋๋ค. ๋ถ์ฐ์ ๋ค์ํ ๋ณผ๊ฑฐ๋ฆฌ์ ๋จน๊ฑฐ๋ฆฌ๊ฐ ๋์น๋ ๋์๋ก, ํจ์จ์ ์ธ ๊ณํ์ด ์ค์ํฉ๋๋ค.๐ก ํต์ฌ ์์ฝ: ๋ถ์ฐ 1๋ฐ2...", + "evidence": { + "used": false, + "facts": 0, + "verified": 0 + }, + "experience_used": false, + "fact_check": { + "checked": true, + "verdict": "warn", + "issues_found": 4, + "fixes_applied": 4, + "issues": [ + { + "problem": "๊ฒ์ฆ ๋ถ๊ฐ๋ฅํ ๊ตฌ์ฒด์ ์์น", + "fixed": true + }, + { + "problem": "๊ฒ์ฆ ๋ถ๊ฐ๋ฅํ ๊ตฌ์ฒด์ ์์น", + "fixed": true + }, + { + "problem": "๊ฒ์ฆ ๋ถ๊ฐ๋ฅํ ๊ตฌ์ฒด์ ์์น", + "fixed": true + }, + { + "problem": "๊ทผ๊ฑฐ ์๋ฃ ์๋ 1์ธ์นญ ์ฒดํ ์ฃผ์ฅ", + "fixed": true + } + ] + }, + "images_inserted": 3, + "status": "pending", + "_post_id": "2026-07-22_๋ถ์ฐ1๋ฐ2์ผํผ์์ฌํํ์ค๋น์ฉ๊ณต๊ฐ_bd3d58e7" +} \ No newline at end of file diff --git "a/blog-automation/logs/post_drafts/2026-07-22_\354\233\220\353\213\254\353\237\254\355\231\230\354\234\250\352\270\211\353\223\261\353\235\275\354\233\220\354\235\270\352\263\274\352\260\234\354\235\270\355\210\254\354\236\220\354\236\220\353\214\200\354\235\221\353\262\225_bb4dd789.json" "b/blog-automation/logs/post_drafts/2026-07-22_\354\233\220\353\213\254\353\237\254\355\231\230\354\234\250\352\270\211\353\223\261\353\235\275\354\233\220\354\235\270\352\263\274\352\260\234\354\235\270\355\210\254\354\236\220\354\236\220\353\214\200\354\235\221\353\262\225_bb4dd789.json" new file mode 100644 index 0000000000000..ad99b6da22016 --- /dev/null +++ "b/blog-automation/logs/post_drafts/2026-07-22_\354\233\220\353\213\254\353\237\254\355\231\230\354\234\250\352\270\211\353\223\261\353\235\275\354\233\220\354\235\270\352\263\274\352\260\234\354\235\270\355\210\254\354\236\220\354\236\220\353\214\200\354\235\221\353\262\225_bb4dd789.json" @@ -0,0 +1,83 @@ +{ + "title": "์๋ฌ๋ฌ ํ์จ ๊ธ๋ฑ๋ฝ์ ์ด์ ์ ๊ฐ์ธํฌ์์ ๋์ ๋ฐฉ์", + "content": "ํผ์์ ๋ถ์ฐ์ผ๋ก 1๋ฐ 2์ผ ์ฌํ์ ๋ ๋ ์๊ฐํ๊ณ ๊ณ์ ๊ฐ์? ํผ์ ํ๋ ์ฌํ์ ๋งค๋ ฅ์ ์์ ๋กญ๊ฒ ์ผ์ ์ ์ ํ๊ณ , ์์ ๋ง์ ์ทจํฅ๋๋ก ์๊ฐ์ ๋ณด๋ผ ์ ์๋ค๋ ์ ์ธ๋ฐ์. ๊ทธ๋ฌ๋ ์ฒ์ ํผ์ ์ฌํ์ ๊ณํํ๋ค ๋ณด๋ฉด ํ์ค์ ์ธ ๋น์ฉ์ด ์ผ๋ง๋ ๋๋์ง ๊ถ๊ธํ ์๋ฐ์ ์์ต๋๋ค. ๋ถ์ฐ์ ๋ค์ํ ๋ณผ๊ฑฐ๋ฆฌ์ ๋จน๊ฑฐ๋ฆฌ๊ฐ ๋์น๋ ๋์๋ก, ํจ์จ์ ์ธ ๊ณํ์ด ์ค์ํฉ๋๋ค.
\n\n \n\n
๋ถ์ฐ 1๋ฐ2์ผ ํผ์ ์ฌํ: ํ์ค์ ์ผ๋ก ๋๋ ์ด ๋น์ฉ์? \n๐ก ํต์ฌ ์์ฝ: ๋ถ์ฐ 1๋ฐ2์ผ ์ฌํ์ ์์๋๋ ์ด ๋น์ฉ์ ๊ตํต๋น, ์๋ฐ๋น, ์๋น๋ฅผ ํฌํจํด ์ฝ 150,000์ ์ ๋๋ก ์์๋ฉ๋๋ค.๋ถ์ฐ์ผ๋ก ๊ฐ๋ ๊ตํตํธ, ํ์ค์ ๋น์ฉ์?
์์ธ์์ ๋ถ์ฐ๊น์ง์ ๊ตํตํธ์ ์ฌ๋ฌ ์ ํ์ง๊ฐ ์์ต๋๋ค. KTX๋ฅผ ์ด์ฉํ๋ฉด 3์๊ฐ ๋ด์ธ๋ก ๋์ฐฉํ ์ ์์ง๋ง, ํธ๋ ๋น์ฉ์ด ๋๋ต 60,000์์ผ๋ก ๋ค์ ๋ถ๋ด๋ ์ ์์ต๋๋ค. ๋ฐ๋ฉด ๊ณ ์๋ฒ์ค๋ฅผ ์ด์ฉํ๋ฉด 25,000~30,000์ ์ ๋๋ก ๋ณด๋ค ๊ฒฝ์ ์ ์ผ๋ก ์ฌํํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์๊ฐ์ 4์๊ฐ ์ด์ ์์๋๋ ์ฌ์ ๋ฅผ ๋๊ณ ๊ณํํด์ผ ํฉ๋๋ค.
๋น ๋ฅด๊ณ ํธ๋ฆฌํ๊ฒ ๊ฐ๊ณ ์ถ๋ค๋ฉด KTX, ๋น์ฉ์ ์ ๊ฐํ๊ณ ์ถ๋ค๋ฉด ๊ณ ์๋ฒ์ค๋ฅผ ์ ํํ์ธ์.๋ฌผ๋ก , ์์ฆ์ ์ ๊ฐ ํญ๊ณตํธ๋ ๋ค์ํ ํ๋ก๋ชจ์ ์ ํตํด ํฉ๋ฆฌ์ ์ธ ๊ฐ๊ฒฉ์ผ๋ก ์ ๊ณต๋๊ณ ์์ต๋๋ค. ์ด๋ฐ ํญ๊ณต๊ถ์ ๋๋ต 50,000์ ์ ์์ ๊ตฌํ ์ ์์ผ๋, ์ ์ฐพ์๋ณด๋ฉด ๊ผญ ์์๋์ด์ผ ํ ๋ฐฉ๋ฒ์ ๋๋ค.
\n\n \n\n
๋ถ์ฐ ์ฌํ ๋น์ฉ \n1๋ฐ 2์ผ ๋์์ ์๋ฐ๋น, ์ด๋์ ๋จธ๋ฌผ๊น์?
๋ถ์ฐ์์์ ์๋ฐ๋น๋ ๋ค์ํ ์ ํ์ ๋ฐ๋ผ ํฌ๊ฒ ๋ฌ๋ผ์ง ์ ์์ต๋๋ค. ๋ฐฑ์์ ํ๋ฃจ ํ๊ท ์๊ธ์ ์ฝ 50,000~70,000์์ผ๋ก, ์์น์ ์์ค์ ๋ฐ๋ผ์ ๊ฐ๊ฒฉ์ด ๋ค๋ฅผ ์ ์์ต๋๋ค. ์ ๋ ดํ ๋ชจํ ์ด๋ ๊ฒ์คํธํ์ฐ์ค๋ฅผ ์ ํํ๋ฉด ์ข ๋ ๋น์ฉ์ ์ ๊ฐํ ์ ์์ต๋๋ค. ํ์ง๋ง ์์น ์ ์ ์ด ์ค์ํฉ๋๋ค. ํด์ด๋, ๋จํฌ๋ ๊ฐ์ ์ค์ฌ๊ฐ์ ์์นํ ์์๋ ์ด๋์ ํจ์ฌ ํธ๋ฆฌํ์ง๋ง, ๊ฐ๊ฒฉ์ด ์กฐ๊ธ ๋ ๋์ ์ ์์ต๋๋ค.
์์ฌ๋ ๊ณ ๊ธ? ๊ฐ๋จ? ๋ถ์ฐ์์์ ์๋น
๋ถ์ฐ์ ๋จน๊ฑฐ๋ฆฌ ์ฒ๊ตญ์ผ๋ก ํตํฉ๋๋ค. ์ ๋ช ํ ๋ก๋ณถ์ด๋ ์ด๋ฌต์ ๊ธธ๊ฑฐ๋ฆฌ์์๋ ์์ฝ๊ฒ ์ฐพ์ ์ ์๊ณ , ๊ฐ๊ฒฉ๋ ์ ๋ ดํ ํธ์ ๋๋ค. ํ ๋ผ์ ์ฝ 10,000์ ์ ๋๋ก ํ๋ฅญํ ์์ฌ๋ฅผ ์ฆ๊ธธ ์ ์์ต๋๋ค. ์ ๋ช ํ ๋ง์ง์์ ํ์์ ์ฆ๊ธฐ๋ ค๋ฉด ์ฝ 20,000~30,000์ ์ ๋ ํ์ํ ์ ์์ต๋๋ค.
์๋น๋ฅผ ์ ์ฝํ๊ณ ์ถ๋ค๋ฉด, ํ์ง ์์ฅ์ด๋ ํธ๋ ๊ฑฐ๋ฆฌ์์ ๊ฐ๋จํ ์์์ ์ฆ๊ธฐ์ธ์.\n\n \n\n
๋ถ์ฐ ์ฌํ ๋ถ์ฐ์ผ๋ก ๊ฐ๋ KTX ์ด์ฉํ๋ฉด \n๊ด๊ด์ง ์ ์ฅ๋ฃ์ ๊ธฐํ ํ๋ ๋น์ฉ
๋ถ์ฐ์๋ ํด์ด๋, ๊ด์๋ฆฌ ๊ฐ์ ์ ๋ช ํด์์์ฅ ์ธ์๋, ๊ฐ์ฒ ๋ฌธํ ๋ง์, ํ์ข ๋ ๋ฑ ๋ค์ํ ๊ด๊ด์ง๊ฐ ์์ต๋๋ค. ๊ฐ ๊ด๊ด์ง์ ์ ์ฅ๋ฃ๋ ๋๊ฐ 5,000~10,000์์ผ๋ก, ์ ๋ ดํ๊ฒ ๋ค๋ ๋ณผ ์ ์์ต๋๋ค. ๋ค๋ง, ์ํฐํฌ์ด ๋ฒ์ค๋ 1์ผ๊ถ ๊ธฐ์ค 15,000์ ์ ๋๋ก ์ด์ฉํ ์ ์์ด, ์ฃผ์ ๋ช ์๋ฅผ ๋๋ฌ๋ณด๊ธฐ์ ์์ฑ๋ง์ถค์ ๋๋ค.
๋๊ตฌ์๊ฒ ์ถ์ฒํ ๋งํ ์ฌํ์ผ๊น์?
๋ถ์ฐ 1๋ฐ 2์ผ ํผ์ ์ฌํ์ ์์ ๋ง์ ์ฌ์ ๋ก์ด ์๊ฐ์ ๊ฐ์ง๋ฉฐ ๋ค์ํ ๋ฌธํ์ ์์์ ์ฒดํํ๊ณ ์ถ์ดํ๋ ๋ถ๋ค๊ป ์ถ์ฒํฉ๋๋ค. ์ ์ ์ธต์๊ฒ๋ ํนํ ์์ ๋ก์ด ์ผ์ ์ ๊ตฌ์ฑํ ์ ์์ด ๋งค๋ ฅ์ ์ด๋ฉฐ, ํผ์์๋ ์ถฉ๋ถํ ์ฆ๊ธธ ์ ์๋ ํ๊ฒฝ์ด ์ ๊ฐ์ถฐ์ ธ ์์ต๋๋ค. ๋ค๋ง, ๋ฏ์ ํ๊ฒฝ์ ๋ํ ๋๋ ค์์ด ์๋ค๋ฉด, ์ฃผ๋ง์ด ์๋ ์ฃผ์ค์ ๋ฐฉ๋ฌธํ์ฌ ์ข ๋ ํ์ ํ ์ฌํ์ ์ฆ๊ธฐ๋ ๊ฒ๋ ๋ฐฉ๋ฒ์ ๋๋ค.
๋ถ์ฐ์ ํผ์ ์ฌํํ๊ธฐ์๋ ์ถฉ๋ถํ ๋งค๋ ฅ์ ์ธ ๋์์ ๋๋ค. ๋น์ฉ์ ์ ์ฝํ๋ฉด์๋ ์ถฉ๋ถํ ๊ฒฝํํ ๊ฐ์น๊ฐ ์์ผ๋, ์์ ๋ง์ ๊ณํ์ ์ธ์ ๋์ ํด ๋ณด์๊ธฐ ๋ฐ๋๋๋ค. ๋ค์ ์น์ ์์๋ ๋์ฑ ์ ์ตํ ์ฌํ ํ์ ํ์ธํด ๋ณด๊ฒ ์ต๋๋ค.
ํ์ค ์ฌํ ๊ณํ์ ์ํ ๋ง์ง๋ง ํ
๋ถ์ฐ ์ฌํ์ ๊ณํ์ ๋ฐ๋ผ ๋๊ตฌ๋ ์ฆ๊ธธ ์ ์๋ ์ต์ ์ด ๋ง์ต๋๋ค. ์ค์ํ ๊ฒ์, ๋งค์ผ ์์นจ ํญ๊ณต๊ถ๊ณผ ์๋ฐ ์ฑ์ ํตํด ํ๋ก๋ชจ์ ์ ๋ณด๋ฅผ ์ฒดํฌํ๋ ๊ฒ์ ๋๋ค. ์ค์ ๋ก ๋ง์ ์ฌํ์๋ค์ด ์ด๋ฐ ํ๋ก๋ชจ์ ์ ํตํด ์ฌํ ๊ฒฝ๋น๋ฅผ ํฌ๊ฒ ์ ์ฝํ๊ณ ์์ต๋๋ค.
๋ํ, ๋ถ์ฐ์ ๋์ค๊ตํต ์นด๋๋ฅผ ์ด์ฉํด, ๋ค์ํ ๊ตํต ์๋จ์ ์ ๋ ดํ๊ฒ ์ด์ฉํ ์ ์์ต๋๋ค. ์ด๋ ์ฌํ ์ผ์ ์์ ๋ง์ ์๋์ง๋ฅผ ์๋ ์ ์๊ฒ ํด์ค๋๋ค.
์ต๊ทผ ๋ช ๋ฌ ๋์ ์๋ฌ๋ฌ ํ์จ์ด ๊ธ๊ฒฉํ๊ฒ ๋ณ๋ํ๊ณ ์์ต๋๋ค. ์ด๋ฐ ๋ณ๋์ ์์ถ์ ๊ธฐ์ ๋ฟ๋ง ์๋๋ผ ๊ฐ์ธํฌ์์์๊ฒ๋ ์๋นํ ์ํฅ์ ๋ฏธ์น ์ ์์ต๋๋ค. ํนํ ์ธํ๋ฅผ ๋ณด์ ํ๊ณ ์๊ฑฐ๋ ํด์ธ์์ฅ์ ํฌ์ํ๋ ค๋ ์ฌ๋๋ค์๊ฒ ์ด๋ฌํ ๋ณํ๋ ์ด๋ป๊ฒ ๋์ํด์ผ ํ ์ง๋ฅผ ๊ณ ๋ฏผํ๊ฒ ๋ง๋ญ๋๋ค. ํ์ฌ์ ํ์จ ์์ฅ์ ์์ง์์ ์ ์ดํดํ๊ณ , ํฅํ ํฌ์ ๊ณํ์ ์ ์คํ ์ธ์ฐ๋ ๊ฒ์ด ์ค์ํ ์์ ์ ๋๋ค.
\n\n \n\n\n
15๋ ๋ง์ ํ์จ 1,450์๋ ๋ํ...์์ผ๋ก์ ๋์ ๋ฐฉ์์? \n\n๐ก ํต์ฌ ํฌ์ธํธ: ๊ฐ์ธํฌ์์๋ ํ์จ ๋ณ๋์ฑ์ด ํด ๋ ํฌ์ ๋ฆฌ์คํฌ๋ฅผ ์ค์ผ ์ ์๋ ๋ค์ํ ๊ธ์ต ์ํ์ ๊ณ ๋ คํด์ผ ํฉ๋๋ค. ์ต๊ทผ ๋ํฅ์ ๋ฐ๋ฅธ ์์ฅ์ ๋ถ์์ ๋ฐํ์ผ๋ก ํ ์ ์คํ ํฌ์ ์ ๋ต์ด ์ค์ํฉ๋๋ค.\n\nํ์จ ๊ธ๋ฑ๋ฝ์ ์ฃผ์ ์์ธ
\nํ์จ ๋ณ๋์ ๊ฐ์ฅ ํฐ ์์ธ์ ๊ฒฝ์ ์งํ์ ๋ณํ์ ๊ธ๋ก๋ฒ ๊ฒฝ์ ํ๊ฒฝ์ ๋๋ค. ์ต๊ทผ ๋ฏธ๊ตญ์ ๊ธ๋ฆฌ ์ธ์๊ณผ ํ๊ตญ์ ์์ถ ๊ฐ์๊ฐ ์ฃผ์ํ๊ฒ ์์ฉํ๊ณ ์์ต๋๋ค. ์ด๋ฌํ ์ธ๋ถ ์์ธ์ ์ํด ํ์จ์ ์์ธก ๋ถ๊ฐ๋ฅํ๊ฒ ๋ณ๋ํ ์ ์์ผ๋ฉฐ, ์ด๋ ๊ฐ์ธํฌ์์๊ฐ ๊ณ ๋ คํด์ผ ํ ์ค์ํ ์์์ ๋๋ค.
\nํ์จ์ด ๊ธ๋ฑํ๋ฉด ์ํ์ ๊ฐ์น๋ฅผ ๋จ์ด๋จ๋ฆฌ๋ฏ๋ก, ํด์ธ ์์ฐ์ ๋ณด์ ํ๊ณ ์๋ ํฌ์์์๊ฒ๋ ๊ธ์ ์ ์ธ ์ํฅ์ ๋ฏธ์น ์ ์์ต๋๋ค. ๋ฐ๋ฉด, ์ํ๋ก ์์ฐ์ ์ ์งํ๊ณ ์๋ ๊ฒฝ์ฐ ๊ตฌ๋งค๋ ฅ์ด ๊ฐ์ํ ์ ์์ต๋๋ค. ๋ฐ๋ผ์, ํ์ํ์ ์ค์ด๊ธฐ ์ํ ํฌ์ ํฌํธํด๋ฆฌ์ค ์กฐ์ ์ด ํ์ํ ์ ์์ต๋๋ค.
\n\n\n \n\n
์ฆ์ ๊ธ๋ฑ๋ฝ ์ฅ์ธ ์ โ์ยท๋ฌ๋ฌ ํ์จโ ์ ๋ฒํด ๊น๋ญ? \n๊ฐ์ธํฌ์์์๊ฒ ๋ฏธ์น๋ ์ํฅ
\nํ์จ ๋ณํ๋ ๊ฐ์ธํฌ์์์ ํฌ์ ์์ต๋ฅ ์๋ ์ง์ ์ ์ธ ์ํฅ์ ๋ฏธ์นฉ๋๋ค. ํนํ, ํด์ธ ์ฃผ์์ด๋ ETF์ ํฌ์ํ๊ณ ์๋ค๋ฉด, ํ์ฐจ์ต๊ณผ ํ์ฐจ์์ ๊ณ ๋ คํด์ผ ํฉ๋๋ค. ์๋ฅผ ๋ค์ด, ์ํ๊ฐ์น๊ฐ ์์นํ ๊ฒฝ์ฐ ํด์ธ ์์ฐ์ ํ๊ฐ์ก์ ๊ฐ์ํ๊ฒ ๋๋ฏ๋ก, ํ์จ์ ์ฃผ๊ธฐ์ ์ผ๋ก ํ์ธํ๋ฉฐ ์ ์ ํ ๋์ ์ ๋ต์ ์ธ์์ผ ํฉ๋๋ค.
\n์ด์ ๊ฐ์ ์ํฉ์์ ๊ฐ์ธํฌ์์๋ค์ ํํค์ง ์ํ์ ์ฌ์ฉํ๊ฑฐ๋, ํ์จ ๋ณ๋์ฑ์ ์ค์ด๋ ๋ค์ํ ๊ธ์ต ์ํ์ ๊ณ ๋ คํด์ผ ํฉ๋๋ค. ์ด๋ฌํ ์ํ์ ํ์จ ๋ฆฌ์คํฌ๋ฅผ ์ต์ํํ๋ ๋ฐ ๋์์ด ๋ ์ ์์ต๋๋ค.
\nํจ๊ณผ์ ์ธ ๋์ ๋ฐฉ์
\nํ์จ ๋ณ๋์ ํจ๊ณผ์ ์ผ๋ก ๋์ํ๊ธฐ ์ํด ๋ช ๊ฐ์ง ์ค์ฉ์ ์ธ ์ ๋ต์ ๊ณ ๋ คํ ์ ์์ต๋๋ค. ์ฒซ ๋ฒ์งธ๋ก, ํตํ ๋ถ์ฐ ์ ๋ต์ ๋๋ค. ํด์ธ ์์ฐ์ ๋ํ ํฌ์๋ฅผ ์ ์งํ๋, ๋ค์ํ ํตํ์ ๋ถ์ฐ ํฌ์ํ์ฌ ํ์ํ์ ์ค์ด๋ ๋ฐฉ๋ฒ์ ๋๋ค. ๋ ๋ฒ์งธ๋ก, ํํค์ง ์ต์ ์ ์ฌ์ฉํ๋ ๊ฒ์ ๋๋ค. ์ด๋ฌํ ๊ธ์ต ์ํ์ ์ด์ฉํ๋ฉด ํ์จ ๋ณ๋์ ๋ฐ๋ฅธ ๋ฆฌ์คํฌ๋ฅผ ์ฌ์ ์ ์ต์ํํ ์ ์์ต๋๋ค.
\n๋ํ, ํ์จ ๋ณํ๋ฅผ ๋ชจ๋ํฐ๋งํ๊ณ , ์์ฅ์ ํธ์ฌ๋ ์ ์ฌ์ ๋ํ ์ ๋ณด๋ฅผ ์ง์์ ์ผ๋ก ์ ๋ฐ์ดํธํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. ๊ธ์ต ์ ๋ฌธ๊ฐ์ ์กฐ์ธ์ ์ฐธ๊ณ ํ์ฌ ํฌ์ ํ๋จ์ ๋ด๋ฆฌ๋ ๊ฒ๋ ํ๋์ ๋ฐฉ๋ฒ์ ๋๋ค.
\n\n\n \n\n
์ค๊ตญ๋ฐ ๊ฒฝ๊ธฐ ๋ํ ๊ฒฝ๊ณ ์โฆ์ยท๋ฌ๋ฌ ํ์จ 1340์ ๋ํ \n์ ์ฌํ ์ ๋์ ๋น๊ต
\nํ์จ ๋ณ๋์ ๋ฐ๋ฅธ ๊ธ์ต์ํ์ ์ ํ์ด ์ด๋ ค์ด ์ด์ ์ค ํ๋๋ ์ฌ๋ฌ ์ข ๋ฅ์ ์ํ ๊ฐ์ ์ฐจ์ด๋ฅผ ์ดํดํ๋ ๋ฐ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ์ ๋ฌผํ ๊ฑฐ๋์ ํ๋ณ๋ ๋ณดํ์ ๋ชจ๋ ํ์ํ์ ๊ด๋ฆฌํ ์ ์๋ ์๋จ์ด์ง๋ง, ๊ฐ๊ฐ์ ์ ์ฉ ๋ฒ์์ ๋น์ฉ์ด ๋ค๋ฅด๋ ํฌ์์์ ํ์์ ๋ฐ๋ผ ์ ์ ํํด์ผ ํฉ๋๋ค. ์ด๋ฌํ ์ํ์ ๋น๊ตํ ๋๋ ์์๋ฃ ๊ตฌ์กฐ, ๋ณด์ฅ ๋ฒ์ ๋ฑ์ ๋ฉด๋ฐํ ๋ฐ์ ธ๋ณด๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.
\nํ์จ ๋ณ๋์ฑ์ด ํฐ ์๊ธฐ์ ์ฃผ์ํ ์
\nํ์จ์ด ์ง์์ ์ผ๋ก ๋ณ๋ํ๋ ์ํฉ์์๋ ํฌ์์์ ์ฌ๋ฆฌ์ ๋ถ์๊ฐ์ด ์ปค์ง ์ ์์ต๋๋ค. ๋ฐ๋ผ์ ์ด๋ฌํ ์๊ธฐ์๋ ๋์ ํ ํ๋จ์ด ํ์ํฉ๋๋ค. ์ฐ์ , ๊ฐ์ ์ ์ํ ์ถฉ๋์ ํฌ์ ๊ฒฐ์ ์ ํผํด์ผ ํ๋ฉฐ, ์ฅ๊ธฐ์ ๊ด์ ์์ ํฌ์ ์ ๋ต์ ์ฌ์ ๋นํ๋ ๊ณผ์ ์ด ์๊ตฌ๋ฉ๋๋ค. ์ด๋ฌํ ๋ถํ์ค์ฑ์ ๊ฒฝ๊ฐํ๊ธฐ ์ํด ์ ๊ธฐ์ ์ผ๋ก ํฌ์ ํฌํธํด๋ฆฌ์ค๋ฅผ ๋ฆฌ๋ทฐํ๊ณ ๋ฆฌ์คํฌ๋ฅผ ์ฌ์กฐ์ ํ๋ ๊ฒ๋ ํจ๊ณผ์ ์ ๋๋ค.
\n๋ํ, ํ์จ ๋ณ๋ ์ํฉ์์ ์ ๋ถ์ ๊ฒฝ์ ์ ์ฑ ๋ ์ฃผ์ ๊น๊ฒ ์ดํด๋ณด์์ผ ํ ์์์ ๋๋ค. ์ ๋ถ๊ฐ ์ทจํ ์ ์๋ ํ์จ ์์ ์ ์ํ ์กฐ์น๊ฐ ํฌ์ ํ๊ฒฝ์ ํฐ ์ํฅ์ ๋ฏธ์น ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ค.
\n๊ฒฐ๋ก : ์ ์ง๊ธ์ด ์ค์ํ ์๊ธฐ์ธ๊ฐ?
\nํ์ฌ์ ํ์จ ๋ณ๋์ฑ์ ๊ณผ๊ฑฐ๋ณด๋ค ๋์ฑ ๋ณต์กํ๊ณ , ์ด๋ก ์ธํ ๋ถํ์ค์ฑ์ ๊ฐ์ธํฌ์์์๊ฒ ์ค์ํ ๊ธฐํ์ ๋์ ์ ๋์์ ์ ๊ณตํฉ๋๋ค. ํ์จ ๋ณํ๊ฐ ๊ฐ์ ธ์ฌ ์ ์๋ ์ฅ๋จ์ ์ ์ ์ดํดํ๊ณ , ์ด๋ฅผ ๋ฐํ์ผ๋ก ์ ๋ต์ ์ธ ํฌ์ ๊ฒฐ์ ์ ๋ด๋ ค์ผ ํ๋ ์์ ์ ๋๋ค. ์ ์คํ ์ ๊ทผ์ด ์ฌ๋ฌ๋ถ์ ์์ฐ์ ๋ณดํธํ๊ณ ์ฑ์ฅ์ํฌ ์ ์์ ๊ฒ์ ๋๋ค.
\n\n์ด ๊ธ์ ๊ณต๊ฐ๋ ์ ๋ณด์ ๊ณต์ ์๋ฃ๋ฅผ ๋ฐํ์ผ๋ก ์์ฑ๋์์ผ๋ฉฐ, ๊ฐ์ธ์ ์ํฉ์ ๋ฐ๋ผ ์ง์ ์กฐ๊ฑดยท๊ธ์ก์ด ๋ค๋ฅผ ์ ์์ต๋๋ค. ์ต์ข ํ์ธ์ ๋ฐ๋์ ํด๋น ๊ธฐ๊ด ๊ณต์ ํํ์ด์ง ๋๋ ๋ด๋น ๋ถ์๋ฅผ ํตํด ํ์๊ธฐ ๋ฐ๋๋๋ค.\n
", + "labels": [ + "ํ์จ", + "๊ธ์ต ํฌ์", + "ํ์ํ ๊ด๋ฆฌ", + "๊ฐ์ธํฌ์", + "ํด์ธํฌ์", + "ํ๋ณ๋", + "ํ์จ ๋์", + "๊ธ์ต ์ํ", + "ํํค์ง", + "๊ฒฝ์ ์ ์ฑ " + ], + "meta_description": "์๋ฌ๋ฌ ํ์จ ๊ธ๋ฑ๋ฝ ์์์ ๊ฐ์ธํฌ์์๊ฐ ๊ณ ๋ คํด์ผ ํ ๋์ ๋ฐฉ์์ ์ ์ํฉ๋๋ค. ์ด ๊ธ์ ํ์จ ๊ธ๋ฑ๋ฝ์ ์์ธ์ ๋ถ์ํ๊ณ ์ ์คํ ํฌ์ ์ ๋ต์ ์๊ฐํฉ๋๋ค.", + "faq": [ + { + "q": "ํ์จ ๊ธ๋ฑ๋ฝ์ ์ฃผ๋ก ์ด๋ค ์์ธ์ ์ํด ๋ฐ์ํ๋์?", + "a": "ํ์จ์ ๊ฒฝ์ ์งํ์ ๋ณํ, ์ค์์ํ์ ๊ธ๋ฆฌ ์ ์ฑ , ํด์ธ ๊ฒฝ์ ํ๊ฒฝ ๋ฑ์ ์ํด ํฌ๊ฒ ์ํฅ์ ๋ฐ์ต๋๋ค." + }, + { + "q": "ํ์ํ์ ์ค์ด๊ธฐ ์ํ ๊ธ์ต ์ํ์ ๋ฌด์์ด ์๋์?", + "a": "ํ์ํ์ ์ค์ด๊ธฐ ์ํ ๊ธ์ต ์ํ์๋ ์ ๋ฌผํ ๊ฑฐ๋, ํํค์ง ์ต์ , ํ๋ณ๋ ๋ณดํ ๋ฑ์ด ์์ต๋๋ค." + } + ], + "sources": [ + { + "title": "๊ธฐํ์ฌ์ ๋ถ", + "url": "https://www.moef.go.kr" + }, + { + "title": "๊ธ์ต์์ํ", + "url": "https://www.fsc.go.kr" + } + ], + "keyword": "์๋ฌ๋ฌ ํ์จ ๊ธ๋ฑ๋ฝ ์์ธ๊ณผ ๊ฐ์ธํฌ์์ ๋์๋ฒ", + "article_type": "investment", + "risk_level": "high", + "content_category": "finance", + "tags": [ + "ํ์จ", + "๊ธ์ต ํฌ์", + "ํ์ํ ๊ด๋ฆฌ", + "๊ฐ์ธํฌ์", + "ํด์ธํฌ์", + "ํ๋ณ๋", + "ํ์จ ๋์", + "๊ธ์ต ์ํ", + "ํํค์ง", + "๊ฒฝ์ ์ ์ฑ " + ], + "word_count": 1553, + "content_preview": "์ต๊ทผ ๋ช ๋ฌ ๋์ ์๋ฌ๋ฌ ํ์จ์ด ๊ธ๊ฒฉํ๊ฒ ๋ณ๋ํ๊ณ ์์ต๋๋ค. ์ด๋ฐ ๋ณ๋์ ์์ถ์ ๊ธฐ์ ๋ฟ๋ง ์๋๋ผ ๊ฐ์ธํฌ์์์๊ฒ๋ ์๋นํ ์ํฅ์ ๋ฏธ์น ์ ์์ต๋๋ค. ํนํ ์ธํ๋ฅผ ๋ณด์ ํ๊ณ ์๊ฑฐ๋ ํด์ธ์์ฅ์ ํฌ์ํ๋ ค๋ ์ฌ๋๋ค์๊ฒ ์ด๋ฌํ ๋ณํ๋ ์ด๋ป๊ฒ ๋์ํด์ผ ํ ์ง๋ฅผ ๊ณ ๋ฏผํ๊ฒ ๋ง๋ญ๋๋ค. ํ์ฌ์ ํ์จ ์์ฅ์ ์์ง์์ ์ ์ดํดํ๊ณ , ํฅํ ํฌ์ ๊ณํ์ ์ ์คํ ์ธ์ฐ๋ ๊ฒ์ด ์ค์ํ ์์ ์ ...", + "readability": { + "ok": false, + "avgSentenceLen": 37.9, + "longSentenceRatio": 0.0, + "jargonHits": 2, + "jargonTerms": [ + "ํํค์ง" + ], + "issues": [ + "์ ๋ฌธ์ฉ์ด 1๊ฐ(ํํค์ง)๊ฐ ์ฌ์ด ์ค๋ช ์์ด ์ฌ์ฉ๋จ" + ] + }, + "evidence": { + "used": false, + "facts": 0, + "verified": 0 + }, + "experience_used": false, + "fact_check": { + "checked": true, + "verdict": "pass", + "issues_found": 0, + "fixes_applied": 0, + "issues": [] + }, + "images_inserted": 3, + "status": "pending", + "_post_id": "2026-07-22_์๋ฌ๋ฌํ์จ๊ธ๋ฑ๋ฝ์์ธ๊ณผ๊ฐ์ธํฌ์์๋์๋ฒ_bb4dd789" +} \ No newline at end of file diff --git "a/blog-automation/logs/post_drafts/2026-07-22_\354\235\270\354\262\234\354\260\250\354\235\264\353\202\230\355\203\200\354\232\264\353\247\233\354\247\221\352\263\274\353\263\274\352\261\260\353\246\254\354\247\201\354\240\221\353\213\244\353\205\200\354\230\250\354\206\224\354\247\201_d3cc1feb.json" "b/blog-automation/logs/post_drafts/2026-07-22_\354\235\270\354\262\234\354\260\250\354\235\264\353\202\230\355\203\200\354\232\264\353\247\233\354\247\221\352\263\274\353\263\274\352\261\260\353\246\254\354\247\201\354\240\221\353\213\244\353\205\200\354\230\250\354\206\224\354\247\201_d3cc1feb.json" new file mode 100644 index 0000000000000..6bbc2a2f2c6e5 --- /dev/null +++ "b/blog-automation/logs/post_drafts/2026-07-22_\354\235\270\354\262\234\354\260\250\354\235\264\353\202\230\355\203\200\354\232\264\353\247\233\354\247\221\352\263\274\353\263\274\352\261\260\353\246\254\354\247\201\354\240\221\353\213\244\353\205\200\354\230\250\354\206\224\354\247\201_d3cc1feb.json" @@ -0,0 +1,70 @@ +{ + "title": "์ธ์ฒ ์ฐจ์ด๋ํ์ด์ ๋ง์ง๊ณผ ๋ณผ๊ฑฐ๋ฆฌ ์์ง ํ๊ฐ", + "content": "์ธ์ฒ ์ฐจ์ด๋ํ์ด์ ๋ฐฉ๋ฌธํ๋ฉด ๊ทธ์ ํํ ์ค๊ตญ ์์์ ๋ค์ด ๋์ด์ ๊ณณ์ด๋ผ๊ณ ์๊ฐํ ์๋ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ด๊ณณ์ ๋ค์ํ ์์ฑ์ ๋ฌธํ๊ฐ ์ด์ฐ๋ฌ์ง, ์์ ๋ฐ์ ๋งค๋ ฅ์ ์ง๋ ์ฅ์์ ๋๋ค. ์ฐจ์ด๋ํ์ด์ ์ ๋๋ก ์ฆ๊ธฐ๊ธฐ ์ํด ์ด๋๋ฅผ ๋ฐฉ๋ฌธํด์ผ ํ ์ง ๊ณ ๋ฏผ๋๊ณ ๊ณ์ ๊ฐ์? ์ด ๊ธ์์๋ ์ฐจ์ด๋ํ์ด์ ์จ๊ฒจ์ง ๋ง์ง, ๋งค๋ ฅ์ ์ธ ๋ณผ๊ฑฐ๋ฆฌ, ์ค์ ๋ฐฉ๋ฌธ๊ฐ๋ค์ ํ๊ธฐ๋ฅผ ๋ฐํ์ผ๋ก ์์งํ๊ฒ ์ค๋ช ํฉ๋๋ค.
\n\n \n\n
๋ค์ด๋ฒ ์ธํ๋ฃจ์ธ์ [๋ค์ด๋ฒ ์ธํ๋ฃจ์ธ์] ์ธ์ฒ ์ฐจ์ด๋ํ์ด ๋ง์ง, ์นดํ, ๋ณผ๊ฑฐ๋ฆฌ ๋ชจ์ \n๐ก ํต์ฌ ํฌ์ธํธ: ์ฐจ์ด๋ํ์ด์ ๋ง์ง๊ณผ ๋ณผ๊ฑฐ๋ฆฌ๋ฅผ ํ๋ถํ ์ ๋ณด๋ก ์ดํดํ ์ ์์ด ์ง์ง ์ฆ๊ฑฐ์ด ์ฌํ์ ํ ์ ์์ต๋๋ค.์ฐจ์ด๋ํ์ด ๋ฐฉ๋ฌธ์ด ์ค์ํ ์ด์
์ธ์ฒ ์ฐจ์ด๋ํ์ด์ ๋จ์ํ ์์ ๋ฌธํ ์ด์์ ์๋ฏธ๋ฅผ ์ง๋๋๋ค. ์ด๊ณณ์ ํ๊ตญ ๋ด ์ ์ผํ๊ฒ ์์กฐ ํฉ๋ฒ์ ์ธ ์ฐจ์ด๋ํ์ด์ผ๋ก ํ์ ์ ์ผ๋ก ์ธ์ ๋ฐ์ ๊ณณ์ ๋๋ค. ๋ฐ๋ผ์ ์ด๊ณณ์ ๋ฐฉ๋ฌธํ๋ ๊ฒ์ ๋จ์ํ ๋ง์ง ํฌ์ด ์ด์์ ๋ฌธํ์ ์ฒดํ์ ๋๋ค. ์ฐจ์ด๋ํ์ด ๋ด ํน์ ๋ ์คํ ๋๋ค์ ์ค๊ตญ ์ ํต ์๋ฆฌ๋ฟ๋ง ์๋๋ผ ํ๋์ ์ธ ํจ์ ์๋ฆฌ๋ ์ ๊ณตํ๋ฉฐ, ์ด๋ ๋ค์ํ ๋ฌธํ ๊ฒฝํ์ผ๋ก ์ด์ด์ง๋๋ค.
\n\n \n\n
๋ค์ด๋ฒ ์ธํ๋ฃจ์ธ์ [๋ค์ด๋ฒ ์ธํ๋ฃจ์ธ์] ์ธ์ฒ ์ฐจ์ด๋ํ์ด ๊ทผ์ฒ ๊ฐ๋ณผ๋งํ๊ณณ ์ถ์ฒ \n์ฐจ์ด๋ํ์ด์ ํต์ฌ ๋ง์ง๊ณผ ๋ณผ๊ฑฐ๋ฆฌ ์ดํดํ๊ธฐ
์ฐจ์ด๋ํ์ด์ ๋ฐฉ๋ฌธํ๊ธฐ ์ , ์ด๋ค ๋ง์ง๊ณผ ๋ช ์๋ฅผ ๋ฐฉ๋ฌธํ ์ง ๊ณํํ๋ ๊ฒ์ ์ค์ํฉ๋๋ค. ์์ปจ๋, '๋ง๋ค๋ณต'์ ์์ฅ๋ฉด์ ์์กฐ๋ก ์ ์๋ ค์ ธ ์์ผ๋ฉฐ, ๋งค์ผ ๊ธด ๋๊ธฐ์ด์ด ์์ต๋๋ค. ์ด๋ฌํ ์๋น์ ์ ํต์ ์ด๋ฉฐ ๋์์ ์ธ์ฒ์ ๋ ํนํ ๋ฏธ์๋ฌธํ๋ฅผ ๋ณด์ฌ์ค๋๋ค. ๋ ๋ค๋ฅธ ์ฃผ๋ชฉํ ๊ณณ์ '์๊ธ์ฑ', ์ด๊ณณ์ ๊ต์์ ๋ง๋ ์๋ฆฌ์ ๋ช ์๋ก ์ ๋ช ํฉ๋๋ค. ๋ค์ํ ์ฌ๋ฃ๋ฅผ ์ฌ์ฉํ ์๋ฆฌ๋ ์ค๊ตญ ์๋ฆฌ๊ฐ ๋จ์ํ์ง ์๋ค๋ ๊ฒ์ ๊นจ๋ซ๊ฒ ํด์ค๋๋ค.
๋ฐฉ๋ฌธ ์ ์ฒดํฌํด์ผ ํ ์ฌํญ๋ค
1. ์์ ์๊ฐ: ๋๋ถ๋ถ์ ๋ง์ง์ ์ฃผ์ค๋ณด๋ค ์ฃผ๋ง์ ๋ ๋ถ๋น๋๋ค. ๋ฐฉ๋ฌธ ์ ์ ์ ํ ํ์ธ์ด ํ์ํฉ๋๋ค.
\n
2. ์ฃผ์ฐจ ์ํฉ: ์ฐจ์ด๋ํ์ด ์ธ๊ทผ ์ฃผ์ฐจ ๊ณต๊ฐ์ ๋งค์ฐ ์ ํ์ ์ ๋๋ค. ๋์ค๊ตํต ์ด์ฉ์ ๊ณ ๋ คํด์ผ ํฉ๋๋ค.
3. ์์ฌ ์์ฐ: ํ๊ท ์ ์ธ ์๋ฆฌ๋ 10,000์ ์ด์์ ๋๋ค. ๋ฐฉ๋ฌธ ์ ์๋ ์์ฐ์ ๊ณํํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
4. ๋๊ธฐ ์๊ฐ: ์ธ๊ธฐ ๋ง์ง์ ๊ฒฝ์ฐ 30๋ถ ์ด์ ๋๊ธฐํ ์ ์์ต๋๋ค. ๋ฏธ๋ฆฌ ์์ฝ ๊ฐ๋ฅํ ๊ณณ์ธ์ง ํ์ธํ๋ ๊ฒ์ด ์ข์ต๋๋ค.\n \n\n
[์ก๋ด] ์ค๋ ์ฒ์์ผ๋ก ์ธ์ฒ ์ฐจ์ด๋ํ์ด ๊ฐ๋ดค๋๋ฐ - ์ธ์คํฐ์ฆ(instiz) ์ผ์ ์นดํ ๊ณ ๋ฆฌ [์ก๋ด] ์ค๋ ์ฒ์์ผ๋ก ์ธ์ฒ ์ฐจ์ด๋ํ์ด ๊ฐ๋ดค๋๋ฐ \n์ค์ ๋ฐฉ๋ฌธ๊ฐ ํ๊ธฐ๋ฅผ ํตํ ๋น๊ต
'๋ง๋ค๋ณต'์์ ๋จน์ ์์ฅ๋ฉด์ ๊ฒฝ์ฐ, ์ด๊ณณ์ ๋ง์ ํธ๋ถํธ๊ฐ ๊ฐ๋ฆฐ๋ค๋ ํ๊ธฐ๊ฐ ๋ง์ต๋๋ค. ๋ฐฉ๋ฌธ๊ฐ๋ค์ ๋ง๊ณผ ๋ถ์๊ธฐ๊ฐ ์ข์ง๋ง, ๋์ ๊ฐ๊ฒฉ๋๋ฅผ ์ง์ ํ๊ธฐ๋ ํฉ๋๋ค. ๋ฐ๋ฉด '์๊ธ์ฑ'์ ๋ง๋๋ ๋ค์ํ ์ข ๋ฅ์ ํ์ง๋ก ๊ธ์ ์ ์ธ ํ๊ฐ๋ฅผ ๋ฐ์ต๋๋ค. ์ด๋ฌํ ํ๊ธฐ๋ฅผ ์ฐธ๊ณ ํ๋ฉด ์์ ์ ์ทจํฅ์ ๋ง๋ ๋ฉ๋ด๋ฅผ ์ ํํ๋ ๋ฐ์ ๋์์ด ๋ฉ๋๋ค.
์ฐจ์ด๋ํ์ด์์ ์์ฃผ ํ๋ ์ค์
1. ๋ง๊ฐ ์๊ฐ ์คํด: ์ผ๋ถ ๊ฐ๊ฒ๋ ์ผ์ฐ ๋ฌธ์ ๋ซ์ต๋๋ค. ์ ํํ ์ด์ ์๊ฐ์ ํ์ธํ์ธ์.
2. ๋น์ฉ ๊ด๋ฆฌ ์คํจ: ์์ฐ ์ด๊ณผ๊ฐ ๋ง์ต๋๋ค. ์์ ๊ฒฝ๋น๋ฅผ ์ด๊ณผํ์ง ์๋๋ก ๊ณํํ์ธ์.
3. ์ถ๋ฐ ์๊ฐ ๋ฆ์ถ๊ธฐ: ๋์ค๊ตํต ์ดํ ์๊ฐ์ด ์ ํ์ ์ ๋๋ค. ์๊ฐ์ ๋ฐ๋์ ์ง์ผ์ฃผ์ธ์.
4. ์ธ๊ธฐ ๋ฉ๋ด ๋์ ๊ด์ฑ: ๋ณธ์ธ์ ์ ๋ง์ ์ต์ฐ์ ์ผ๋ก ๋๊ณ ์ ํํ์ธ์.์ฐจ์ด๋ํ์ด ๋ฐฉ๋ฌธ ๋ฐฉ๋ฒ ์ ์
์ด๋ณด์: ์ถ์ฒ ๋ฃจํธ๋ฅผ ๋ฏธ๋ฆฌ ์กฐ์ฌํ๊ณ ๋์ค๊ตํต์ ํ์ฉํ์ธ์. ์ง์ญ ๊ด๊ด ์๋ด์ผํฐ๋ฅผ ๋ฐฉ๋ฌธํ๋ ๊ฒ๋ ์ข์ต๋๋ค.
์๊ฐ์ด ๋ถ์กฑํ ์ฌ๋: ๊ผญ ๊ฐ๋ณด๊ณ ์ถ์ ์๋น ํ ๋๊ณณ๋ง ์ ํด์ ์ง์ค์ ์ผ๋ก ๋๋ฌ๋ณด์ธ์. ๊ฐ๋จํ ๊ธธ์ก์ด ์ฑ ์ญ์ ๋์์ด ๋ ์ ์์ต๋๋ค.์ํฉ๋ณ ์ถ์ฒ ๋ฐฉ๋ฒ
์ฐจ์ด๋ํ์ด์ ์ญ์ฌ์ ๊ฐ์น์ ์์ ๋ฌธํ๊ฐ ํจ๊ป ์ด์ฐ๋ฌ์ง ๊ณณ์ ๋๋ค. ์ด๋ฒ ๊ธ์ ํตํด ์ถ์ฒ๋๋ฆฐ ๋ช ๊ฐ์ง ๋ฐฉ๋ฒ์ ์ ์ฉํ์ฌ ๋์ฑ ํ์๋กญ๊ณ ์์ฐฌ ์ฌํ์ ๊ฒฝํํ์๊ธธ ๋ฐ๋๋๋ค. ๋จผ์ ์ฌํ ๋ชฉ์ ์ ๋ง๋ ๊ฒฝ๋ก๋ฅผ ์ ๋ฆฌํ์ธ์. ๊ทธ๋ฆฌ๊ณ ์ค๋ ๋ฐ๋ก ๊ฐ๋ ๊ธธ์ ๊ณํํด๋ณด์ธ์.
์ด ๊ธ์ ๊ฐ์ธ์ ์ธ ๊ฒฝํ๊ณผ ์ ๋ณด ์ ๋ฆฌ๋ฅผ ๋ฐํ์ผ๋ก ์์ฑ๋์์ต๋๋ค. ์ํฉ์ ๋ฐ๋ผ ๊ฒฐ๊ณผ๊ฐ ๋ค๋ฅผ ์ ์์ผ๋ ๋ณธ์ธ์๊ฒ ๋ง๊ฒ ์ฐธ๊ณ ํ์๊ธฐ ๋ฐ๋๋๋ค.
", + "labels": [ + "์ธ์ฒ์ฌํ", + "์ฐจ์ด๋ํ์ด", + "๋ง์ง์ถ์ฒ", + "๋ฌธํ์ฒดํ", + "๊ตญ๋ด์์", + "์ฌํ๊ณํ", + "๋ฐ์ผ๋ฆฌ์ฌํ", + "์ธ์ฒ๊ด๊ด", + "์คํ์๋ฆฌ", + "์๋นํ๊ฐ" + ], + "meta_description": "์ธ์ฒ ์ฐจ์ด๋ํ์ด์ ๋ง์ง๊ณผ ๋ณผ๊ฑฐ๋ฆฌ, ์จ๊ฒจ์ง ๋งค๋ ฅ์ ์์งํ ํ๊ฐํฉ๋๋ค. ์จ๊ฒจ์ง ์ฅ์์ ๋ง์ง, ๋ฐฉ๋ฌธ ์ ์ฒดํฌ๋ฆฌ์คํธ๋ฅผ ํตํด ์์ฐจ๊ฒ ์ฌํํ์ธ์.", + "faq": [ + { + "q": "์ฐจ์ด๋ํ์ด ์ฃผ์ฐจ๋ ์ด๋ ต์ง ์๋์?", + "a": "์ฐจ์ด๋ํ์ด ์ธ๊ทผ ์ฃผ์ฐจ๋ ์ ํ์ ์ด๋ผ ๋์ค๊ตํต์ ์ถ์ฒํฉ๋๋ค." + }, + { + "q": "์ฐจ์ด๋ํ์ด์์ ๊ฐ์ฅ ์ถ์ฒํ๋ ๋ง์ง์ ์ด๋์ธ๊ฐ์?", + "a": "๋ง์ ํ๊ธฐ๋ก ๋ณด๋ฉด '๋ง๋ค๋ณต'๊ณผ '์๊ธ์ฑ'์ด ์ธ๊ธฐ๊ฐ ๋ง์ต๋๋ค." + } + ], + "sources": [ + { + "title": "์ธ์ฒ ๊ด๊ด ์๋ด", + "url": "https://komaps.visitkorea.or.kr" + }, + { + "title": "๋ค์ด๋ฒ ๋ธ๋ก๊ทธ ๊ฒ์", + "url": "https://section.blog.naver.com" + } + ], + "keyword": "์ธ์ฒ ์ฐจ์ด๋ํ์ด ๋ง์ง๊ณผ ๋ณผ๊ฑฐ๋ฆฌ ์ง์ ๋ค๋ ์จ ์์ง ํ๊ฐ", + "article_type": "travel_guide", + "risk_level": "low", + "tags": [ + "์ธ์ฒ์ฌํ", + "์ฐจ์ด๋ํ์ด", + "๋ง์ง์ถ์ฒ", + "๋ฌธํ์ฒดํ", + "๊ตญ๋ด์์", + "์ฌํ๊ณํ", + "๋ฐ์ผ๋ฆฌ์ฌํ", + "์ธ์ฒ๊ด๊ด", + "์คํ์๋ฆฌ", + "์๋นํ๊ฐ" + ], + "word_count": 1327, + "content_preview": "์ธ์ฒ ์ฐจ์ด๋ํ์ด์ ๋ฐฉ๋ฌธํ๋ฉด ๊ทธ์ ํํ ์ค๊ตญ ์์์ ๋ค์ด ๋์ด์ ๊ณณ์ด๋ผ๊ณ ์๊ฐํ ์๋ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ด๊ณณ์ ๋ค์ํ ์์ฑ์ ๋ฌธํ๊ฐ ์ด์ฐ๋ฌ์ง, ์์ ๋ฐ์ ๋งค๋ ฅ์ ์ง๋ ์ฅ์์ ๋๋ค. ์ฐจ์ด๋ํ์ด์ ์ ๋๋ก ์ฆ๊ธฐ๊ธฐ ์ํด ์ด๋๋ฅผ ๋ฐฉ๋ฌธํด์ผ ํ ์ง ๊ณ ๋ฏผ๋๊ณ ๊ณ์ ๊ฐ์? ์ด ๊ธ์์๋ ์ฐจ์ด๋ํ์ด์ ์จ๊ฒจ์ง ๋ง์ง, ๋งค๋ ฅ์ ์ธ ๋ณผ๊ฑฐ๋ฆฌ, ์ค์ ๋ฐฉ๋ฌธ๊ฐ๋ค์ ํ๊ธฐ๋ฅผ ๋ฐํ์ผ๋ก ์์งํ๊ฒ ์ค๋ช ํฉ๋๋ค....", + "evidence": { + "used": false, + "facts": 0, + "verified": 0 + }, + "experience_used": false, + "fact_check": { + "checked": true, + "verdict": "pass", + "issues_found": 0, + "fixes_applied": 0, + "issues": [] + }, + "images_inserted": 3, + "status": "pending", + "_post_id": "2026-07-22_์ธ์ฒ์ฐจ์ด๋ํ์ด๋ง์ง๊ณผ๋ณผ๊ฑฐ๋ฆฌ์ง์ ๋ค๋ ์จ์์ง_d3cc1feb" +} \ No newline at end of file diff --git "a/blog-automation/logs/post_drafts/2026-07-22_\354\266\230\354\262\234\353\213\255\352\260\210\353\271\204\352\263\250\353\252\251\354\247\204\354\247\234\353\247\233\354\247\221\352\263\274\355\224\274\355\225\264\354\225\274\355\225\240\352\263\263_6782156f.json" "b/blog-automation/logs/post_drafts/2026-07-22_\354\266\230\354\262\234\353\213\255\352\260\210\353\271\204\352\263\250\353\252\251\354\247\204\354\247\234\353\247\233\354\247\221\352\263\274\355\224\274\355\225\264\354\225\274\355\225\240\352\263\263_6782156f.json" new file mode 100644 index 0000000000000..cade444f76a25 --- /dev/null +++ "b/blog-automation/logs/post_drafts/2026-07-22_\354\266\230\354\262\234\353\213\255\352\260\210\353\271\204\352\263\250\353\252\251\354\247\204\354\247\234\353\247\233\354\247\221\352\263\274\355\224\274\355\225\264\354\225\274\355\225\240\352\263\263_6782156f.json" @@ -0,0 +1,92 @@ +{ + "title": "์ถ์ฒ ๋ญ๊ฐ๋น ๊ณจ๋ชฉ ์ง์ง ๋ง์ง๊ณผ ํผํด์ผ ํ ๊ณณ", + "content": "์ถ์ฒ ๋ญ๊ฐ๋น๋ ๊ทธ ํน์ ์ ๋งค์ฝค๋ฌ์ฝคํ ์๋ ์ผ๋ก ๋ง์ ์ฌ๋๋ค์ ์ ๋ง์ ์ฌ๋ก์ก์ต๋๋ค. ๊ทธ๋ฌ๋ ๋ง์ ์ถ์ฒ์ ์ฐพ์๊ฐ ๋ญ๊ฐ๋น ๊ณจ๋ชฉ์ ๋ค์ด์๋ฉด ์ด๋์์ ๋จน์ด์ผ ํ ์ง ๋ง๋งํ ๋๊ฐ ๋ง์ต๋๋ค. ์๋ํ๋ฉด ๊ณจ๋ชฉ ๊ฐ๋ ๋ค์ด์ ์ฌ๋ฌ ์๋น๋ค ๋๋ฌธ์ ์ ํ์ด ์ฝ์ง ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ์ด ๊ณ ๋ฏผ์ด ์๊ธธ ๋, ์ ๋ง๋ก ๋ง์๋ ๊ณณ์ ์ฐพ๊ณ ์ถ๋ค๋ฉด ๋ช ๊ฐ์ง ์ฒดํฌํด์ผ ํ ์์๋ค์ด ์์ต๋๋ค. ์ด๋ฒ ๊ธ์์๋ ์ถ์ฒ ๋ญ๊ฐ๋น ๊ณจ๋ชฉ์์ ์ด๋ค ๊ฐ๊ฒ๊ฐ ์ธ๊ธฐ ์๊ณ , ํผํด์ผ ํ ๊ณณ์ ์ด๋ค ๊ณณ์ธ์ง ์ค์ง์ ์ธ ์ ๋ณด๋ฅผ ์ ๊ณตํฉ๋๋ค.
\n\n \n\n
์ถ์ฒ ๋ช ๋ฌผ '๋ญ๊ฐ๋น ๊ณจ๋ชฉ'โฆAI์ ์ฐฌ๋ฐ๋๋ง '์ฉโผ' \n๐ก ํต์ฌ ํฌ์ธํธ: ์ถ์ฒ ๋ญ๊ฐ๋น ๊ณจ๋ชฉ์์ ์ธ๊ธฐ๋๊ฐ ๋์ ๋ง์ง๊ณผ ๋ฐฉ๋ฌธ ์ ํ์ธํด์ผ ํ ์ฃผ์์ฌํญ์ ์๊ฐํฉ๋๋ค.์ ์ถ์ฒ ๋ญ๊ฐ๋น ๊ณจ๋ชฉ์ ์ฐพ์์ผ ํ ๊น์?
์ถ์ฒ ๋ญ๊ฐ๋น ๊ณจ๋ชฉ์ ๋ํ ๋ช ์ฑ์ ์ค๋์ ๋ถํฐ ์ด์ด์ ธ ์์ต๋๋ค. ์ ๋ง ์ง๋ฆฟํ ๋ง์ ์ฆ๊ธฐ๊ณ ์ถ๋ค๋ฉด ์ฌ๊ธฐ๋ ํ์ ๋ฐฉ๋ฌธ ์ฅ์์ผ ๊ฒ์ ๋๋ค. ๋ง์ ์ฌ๋๋ค์ด ์ถ์ฒ ํ๋ฉด ๋ญ๊ฐ๋น๋ฅผ ๋ ์ฌ๋ฆด ์ ๋๋ก ์ด๊ณณ์ ์ ๋ช ์ธ๋ ๋ฌด์ํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๋ง์ ์๋น๋ค์ด ์ ๋ง๋ค '์์กฐ'๋ฅผ ์์ฒํ๊ณ ์๋ ๋งํผ ์๋ชป ์ ํํ๋ฉด ์ค๋งํ ์๋ ์์ต๋๋ค. ํ์ง์ธ๋ค์๊ฒ ๋ฌผ์ด๋ณด๋ฉด ์ด ๊ฐ๊ฒ๋ค์ด ๋ชจ๋ '์ง์ง'๊ฐ ์๋๋ผ๊ณ ๋ ํฉ๋๋ค. ์ด๋ ๋ฏ ์ถ์ฒ ๋ญ๊ฐ๋น ๊ณจ๋ชฉ์ ๋ํ ์ด์ผ๊ธฐ๋ ์ ๋ง ๋ค์ํฉ๋๋ค. ์ด๋ฌํ ๋ฌธ์ ์์ ์์์ ์ด ๊ธ์ ์์ฑํ๊ฒ ๋์์ต๋๋ค. ์ฌํ๊ฐ์ผ๋ก์ ์คํจ๋ฅผ ์ค์ด๊ณ ๊ฒฝํ์ ๋์ฑ ๊ฐ์ง๊ฒ ํ๊ธฐ ์ํด ์ค์ํ ์ ๋ณด๋ฅผ ๊ณต์ ํ๊ณ ์ ํฉ๋๋ค.
\n\n \n\n
[SN์ฌํ] ์ถ์ฒ์ ๋ฌธํ์ ๋ง, '์์๋ง๋น ์ถ์ฒ'๊ณผ '๋ญ๊ฐ๋น ๊ณจ๋ชฉ' [๊ฐ์ ์ถ์ฒ] \n์ถ์ฒ ๋ญ๊ฐ๋น์ ์ฃผ์ ์์ ์ดํดํ๊ธฐ
์ถ์ฒ ๋ญ๊ฐ๋น๋ ๋จ์ํ ๋ญ ์๋ฆฌ๊ฐ ์๋๋๋ค. ์ ์ ํ ์ฌ๋ฃ์ ์ ์ ํ ๋ฐธ๋ฐ์ค๋ฅผ ์ด๋ฃจ๋ ์๋ ์ด ์กฐํ๋ฅผ ์ด๋ฃจ๋ฉฐ, ๊ฐ ๊ฐ๊ฒ๋ง๋ค ์ฐจ๋ณํ๋ ๋ง์ ์๋ํฉ๋๋ค. ๋ญ๊ฐ๋น๋ ๋ณถ๋ ์๊ฐ์ด ์ค์ํ๋ฉฐ, ์์ ์ ์ง์ ๊ตฌ์ฐ๋ ๋ฐฉ์๋ ์ ์ง๋๊ณ ์์ต๋๋ค. ์ด๋ณด์์๊ฒ๋ ๊ฝค๋ ์ด๋ ค์ด ์ ํ์ด ๋ ์ ์๋ ๋ง์ ๋๋ค. ์ค์ํ ๊ฒ์ ์ด๋ฌํ ์์๋ค์ด ์กฐํ๋กญ๊ฒ ์ด์ฐ๋ฌ์ง ๋ ์ต๊ณ ์ ๋ง์ ์๋ํ๋ค๋ ๊ฒ์ ๋๋ค. ๊ทธ๋์ ์ด์ฌ์๋ผ๋ฉด ๋ง์ง ์ ๋ณด๋ฅผ ๋ฏธ๋ฆฌ ์๊ณ ๊ฐ๋ฉด ์ข์ต๋๋ค.
์ถ์ฒ ๋ญ๊ฐ๋น ๊ณจ๋ชฉ์์ ๋ฐ๋์ ํ์ธํด์ผ ํ ์ฒดํฌ๋ฆฌ์คํธ
\n
- ๋ ํนํ ํฅ๊ณผ ํ๋ฏธ: ๋ง์ง์ผ์๋ก ์ ์ ํ ์๋ ์ผ๋ก ์ฌ์ธํ ๋ง์ ์๋ํฉ๋๋ค.
- ์๋น์ค: ์น์ ํ ์๋๋ ์ฌํ์ ์ง์ ๋์ฌ ์ค๋๋ค. ์๋น์ค ํ๊ธฐ๊ฐ ์ข๋ค๋ฉด ํฐ ๋ฌธ์ ๋ ์์ ๊ฒ์ ๋๋ค.
- ๊ฐ์ฑ๋น ์ข์ ๊ฐ๊ฒฉ: ๊ฐ๊ฒฉ ๋๋น ์๊ณผ ์ง์ด ์ข์ ๊ณณ์ ์ฐพ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. ํ๊ท ์ ์ผ๋ก 1์ธ๋ถ์ ์ ๋นํ ๊ฐ๊ฒฉ์ด๋ฉด ์ ๋นํฉ๋๋ค.
- ์ค๋น๋ ์์ฌ ๊ณต๊ฐ: ๊นจ๋ํ๊ณ ํธ์ํ ๋ด๋ถ ํ๊ฒฝ์ด ์์ด์ผ ํฉ๋๋ค. ์ค๋ ๋จธ๋ฌผ๊ธฐ ํธ๋ฆฌํ๊ธฐ ๋๋ฌธ์ ๋๋ค.
- ํ๊ธฐ ์ฐธ๊ณ : ์ธํฐ๋ท์์ ํ๊ธฐ๋ฅผ ๋ณด๊ณ ์ธ์์ ์ธ ๊ฐ๊ฒ๋ฅผ ์ฐพ๋ ๊ฒ์ด ์ข์ต๋๋ค.
\n \n\n
๊ตญ๋ด์ฐ ๋ญ๋ค๋ฆฌ์ด ํ์์ด ์ถ์ฒ ๋ญ๊ฐ๋น 500g 1ํฉ+1ํฉ (๋๋) : ์ถ์ฒ๋ญ๊ฐ๋น ๋ง๋คํธ๋ \nํ๊ธฐ์ ์๋ฃ๋ฅผ ์ข ํฉํด ๋ณธ ์ถ์ฒ ๋ญ๊ฐ๋น ๋ฆฌ๋ทฐ
๋ง์ ํ๊ธฐ๋ฅผ ์ข ํฉํด๋ณด๋ฉด ์ถ์ฒ ๋ญ๊ฐ๋น ๋ง์ง ๋ฆฌ์คํธ๋ ์๊ฐ๋ณด๋ค ์๊ฒฉํฉ๋๋ค. ๋ช๋ช ๊ฐ๊ฒ๋ค์ ์๋ ๋ง๊ณผ ๋ถ์๊ธฐ๋ก ์ธํด ๊ณ ํ๊ฐ๋๊ณ ์์ต๋๋ค. ๋ฐ๋ฉด, ๋ณดํธ์ ์ผ๋ก ๊ทธ๋ญ์ ๋ญ์ธ ๊ณณ๋ ๋ง์ต๋๋ค. ๋ฐ์ด๋ ๊ณณ์ ๋๋ถ๋ถ ํ์ง์ธ๊ณผ ์ฌํ๊ฐ์ ๋ฐ๊ฑธ์์ด ๋์ด์ง ์์ต๋๋ค. '๋ง๊ตญ์'์ ํจ๊ป ์ถ์ฒ๋๋ ์ง๋ค์ด ๊ทธ ์์ ๋๋ค. ๋น ๋ฅด๊ฒ ๋ถ๋น๋ ์๊ฐ๋๋ ํผํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
์์ฃผ ํ๋ ์ค์์ ํผํ๋ ๋ฐฉ๋ฒ
์ฒซ์งธ, ์ ๋ ดํ๋ค๊ณ ๋ฌด์กฐ๊ฑด ๋ค์ด๊ฐ๊ธฐ๋ณด๋ค๋ ํ๊ธฐ๋ฅผ ๋ฏธ๋ฆฌ ๊ฒ์ํ๋ ๊ฒ์ด ํ์ํฉ๋๋ค. ๋์งธ, ๋๋ฌด ๋ฆ์ ์๊ฐ์ ๋ฐฉ๋ฌธํ๋ฉด ์ํ๋ ๋ง์ง์ ๋ค์ด๊ฐ๊ธฐ ์ด๋ ค์ธ ์ ์์ต๋๋ค. ์ ์งธ, ์ฃผ๋ง์ ๊ณํ ์์ด ๋ฐฉ๋ฌธํ๋ฉด ๋๊ธฐ ์๊ฐ์ด ๊ธธ์ด์ง ์ ์์ผ๋ ์์ฝํ ์ ์๋ค๋ฉด ๋ฏธ๋ฆฌ ํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ๋ง์ง๋ง์ผ๋ก, ์์ด๋ ๋ง์ด ๋ง์ง ์์ผ๋ฉด ๋ค๋ฅธ ๊ณณ์ ์๋ํ ์ ์๋ ์ฌ์ ๋ฅผ ๊ฐ์ง๋ ๊ฒ์ด ์ข์ต๋๋ค.
๋ฐฉ๋ฌธ์ ๋ง์ถค ์ถ์ฒ ์ ๋ต
๋ง์ฝ ์ฒ์์ด๋ผ๋ฉด, ๋ฌด์์ ๋ค์ํ ๊ณณ์ ์๋ํ๊ธฐ๋ณด๋ค๋ ๊ฐ์ฅ ์ธ๊ธฐ ์๋ ๋์ธ ๊ณณ์ ๋ณด๊ณ ํ๋จํ์ธ์. ์๊ฐ์ด ๋ถ์กฑํ๋ค๋ฉด, ํ์ง์ธ์๊ฒ ์ถ์ฒ์ ๋ฐ์ผ๋ฉด ๋๋ถ๋ถ ์คํจํ์ง ์์ต๋๋ค. ๋น์ฉ์ ์ ์ฝํ๊ณ ์ถ๋ค๋ฉด ์ ์ฌ ํน์ ์ด๋ ์ธํธ ๋ฉ๋ด๋ฅผ ๋ ธ๋ ค๋ณด์ธ์. ์ฅ๊ธฐ์ ์ผ๋ก ์ฌ๋ฌ ๋ฒ ๊ฐ๋ณผ ๊ณํ์ด๋ผ๋ฉด, ๋งค๋ฒ ๋ค๋ฅธ ์ ํฌ๋ฅผ ์๋ํ๊ณ ํน์ง์ ๋น๊ตํด๋ณด๋ ๊ฒ๋ ์ฌ๋ฏธ์์ต๋๋ค.
๊ฒฐ๋ก ๋ฐ ์์ํ ํ๋
์ถ์ฒ ๋ญ๊ฐ๋น ๊ณจ๋ชฉ์ ๋งค๋ ฅ์ด ๋์น๋ ์ฅ์์ ๋๋ค. ๊ณจ๋ชฉ์ ๋ฐฉ๋ฌธํ๊ธฐ๋ก ๊ฒฐ์ ํ๋ค๋ฉด, ๊ฐ์ฅ ๋จผ์ ํ๊ธฐ๋ฅผ ๊ฒ์ํ๊ณ ์ถ์ฒ ๋ฆฌ์คํธ๋ฅผ ์์ฑํ์ธ์. ๋ค์์ผ๋ก๋ ๋ฐฉ๋ฌธ ์๊ฐ์ ๊ณํํ๋ฉด ๋๊ธฐ๋ฅผ ํผํ ์ ์์ต๋๋ค. ์ด๋ฌํ ๊ฒ๋ค์ ์ผ๋์ ๋๊ณ ๋๋ฉด ๋ ๋ง์๊ณ ์ฆ๊ฑฐ์ด ์์ฌ๋ฅผ ํ ์ ์์ ๊ฒ์ ๋๋ค.
๋ค๋ฅธ ์ฌํ ๊ด๋ จ ํ์ ์๊ณ ์ถ๋ค๋ฉด, '์ ์ฃผ ๋ ์ฑ ํ์ ์ถ์ฒ', '๊ฐ๋ฆ ํด๋ณ ๊ฐ๋ณผ ๋งํ ๊ณณ ๊ฐ์ด๋', '๋ถ์ฐ์ ์จ๊ฒจ์ง ๋ง์ง ๋ฆฌ์คํธ'๋ฅผ ํ์ธํด๋ณด์ธ์.
์ด ๊ธ์ ๋ค์ํ ์ ๋ณด๋ฅผ ๋ฐํ์ผ๋ก ์์ฑ ์ ๋ฆฌ๋ฅผ ๋ฐํ์ผ๋ก ์์ฑ๋์์ต๋๋ค. ์ํฉ์ ๋ฐ๋ผ ๊ฒฐ๊ณผ๊ฐ ๋ค๋ฅผ ์ ์์ผ๋ ๋ณธ์ธ์๊ฒ ๋ง๊ฒ ์ฐธ๊ณ ํ์๊ธฐ ๋ฐ๋๋๋ค.
", + "labels": [ + "์ถ์ฒ", + "๋ญ๊ฐ๋น", + "๊ตญ๋ด ์ฌํ", + "๋ง์ง", + "์ฌํ ๊ฐ์ด๋", + "๊ฐ์ฑ๋น", + "์๋น์ค", + "๊ณ ๊ฐ ํ๊ธฐ", + "์ฌํ ํ", + "์๋น ์ ํ" + ], + "meta_description": "์ถ์ฒ ๋ญ๊ฐ๋น ๊ณจ๋ชฉ์ ์ง์ง ๋ง์ง๊ณผ ํผํด์ผ ํ ๊ณณ์ ์์๋ด ๋๋ค. ํ๊ธฐ๋ฅผ ์ข ํฉํด ์ฒดํฌ๋ฆฌ์คํธ๋ฅผ ์ ๊ณตํฉ๋๋ค. ์คํจ๋ฅผ ์ค์ด๊ณ ์ง๊ธ ์์ํ์ธ์.", + "faq": [ + { + "q": "์ถ์ฒ ๋ญ๊ฐ๋น ๋ช ์๋ ์ด๋ ์๋์?", + "a": "์ถ์ฒ ๋ช ๋ ๊ณจ๋ชฉ์ ๋ง์ ๋ญ๊ฐ๋น ๋ง์ง๋ค์ด ๋ชจ์ฌ ์์ต๋๋ค. ๋ง์ ์ฌ๋๋ค์ด ์ฐพ๋ ๋ช ๋ ๊ณจ๋ชฉ์ ๋ฐฉ๋ฌธํ์ธ์." + }, + { + "q": "๋๊ธฐ ์๊ฐ์ด ๊ธด ๊ฐ๊ฒ๋ฅผ ํผํ ๋ฐฉ๋ฒ์ด ์๋์?", + "a": "์ฃผ๋ง๋ณด๋ค๋ ์ฃผ์ค, ํนํ ์ ์ฌ ์๊ฐ์ ํผํ๊ณ ๋ฏธ๋ฆฌ ์์ฝํ ์ ์๋ ๊ณณ์ ์ฐพ๋ ๊ฒ์ด ์ข์ต๋๋ค." + }, + { + "q": "ํน๋ณํ ๋ ์ ์ด๋ค ๋ฉ๋ด๋ฅผ ์ถ์ฒํ์๋์?", + "a": "๋ง๊ตญ์์ ํจ๊ป ๋จน๋ ๊ฒ์ด ์กฐํ๋ก์ด ๋ง์ ์๋ํ๋ฉฐ, ๋ช๋ช ๊ฐ๊ฒ๋ ๋ ํนํ ์๋ ์ผ๋ก ์ ๋ช ํฉ๋๋ค." + } + ], + "sources": [ + { + "title": "ํ๊ตญ๊ด๊ด๊ณต์ฌ", + "url": "https://korean.visitkorea.or.kr" + }, + { + "title": "๋ค์ด๋ฒ ๋ฆฌ๋ทฐ", + "url": "https://www.naver.com" + } + ], + "keyword": "์ถ์ฒ ๋ญ๊ฐ๋น ๊ณจ๋ชฉ ์ง์ง ๋ง์ง๊ณผ ํผํด์ผ ํ ๊ณณ", + "article_type": "travel_guide", + "risk_level": "low", + "content_category": "travel", + "tags": [ + "์ถ์ฒ", + "๋ญ๊ฐ๋น", + "๊ตญ๋ด ์ฌํ", + "๋ง์ง", + "์ฌํ ๊ฐ์ด๋", + "๊ฐ์ฑ๋น", + "์๋น์ค", + "๊ณ ๊ฐ ํ๊ธฐ", + "์ฌํ ํ", + "์๋น ์ ํ" + ], + "word_count": 1634, + "content_preview": "์ถ์ฒ ๋ญ๊ฐ๋น๋ ๊ทธ ํน์ ์ ๋งค์ฝค๋ฌ์ฝคํ ์๋ ์ผ๋ก ๋ง์ ์ฌ๋๋ค์ ์ ๋ง์ ์ฌ๋ก์ก์ต๋๋ค. ๊ทธ๋ฌ๋ ๋ง์ ์ถ์ฒ์ ์ฐพ์๊ฐ ๋ญ๊ฐ๋น ๊ณจ๋ชฉ์ ๋ค์ด์๋ฉด ์ด๋์์ ๋จน์ด์ผ ํ ์ง ๋ง๋งํ ๋๊ฐ ๋ง์ต๋๋ค. ์๋ํ๋ฉด ๊ณจ๋ชฉ ๊ฐ๋ ๋ค์ด์ ์ฌ๋ฌ ์๋น๋ค ๋๋ฌธ์ ์ ํ์ด ์ฝ์ง ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ์ด ๊ณ ๋ฏผ์ด ์๊ธธ ๋, ์ ๋ง๋ก ๋ง์๋ ๊ณณ์ ์ฐพ๊ณ ์ถ๋ค๋ฉด ๋ช ๊ฐ์ง ์ฒดํฌํด์ผ ํ ์์๋ค์ด ์์ต๋๋ค. ์ด๋ฒ ๊ธ์์...", + "readability": { + "ok": true, + "avgSentenceLen": 30.3, + "longSentenceRatio": 0.0, + "jargonHits": 0, + "jargonTerms": [], + "issues": [] + }, + "evidence": { + "used": false, + "facts": 0, + "verified": 0 + }, + "experience_used": false, + "fact_check": { + "checked": true, + "verdict": "warn", + "issues_found": 2, + "fixes_applied": 2, + "issues": [ + { + "problem": "๊ฒ์ฆ ๋ถ๊ฐ๋ฅํ ๊ตฌ์ฒด์ ์์นยทํต๊ณ", + "fixed": true + }, + { + "problem": "๊ทผ๊ฑฐ ์๋ฃ ์๋ 1์ธ์นญ ์ฒดํ ์ฃผ์ฅ", + "fixed": true + } + ] + }, + "images_inserted": 3, + "status": "pending", + "_post_id": "2026-07-22_์ถ์ฒ๋ญ๊ฐ๋น๊ณจ๋ชฉ์ง์ง๋ง์ง๊ณผํผํด์ผํ ๊ณณ_6782156f" +} \ No newline at end of file diff --git "a/blog-automation/logs/post_drafts/2026-07-22_\354\275\224\354\212\244\355\224\274\353\266\210\354\236\245\353\215\225\353\266\204\354\227\220\352\260\200\352\263\204\354\210\234\354\236\220\354\202\260\353\247\214\354\227\220_c1df4cc4.json" "b/blog-automation/logs/post_drafts/2026-07-22_\354\275\224\354\212\244\355\224\274\353\266\210\354\236\245\353\215\225\353\266\204\354\227\220\352\260\200\352\263\204\354\210\234\354\236\220\354\202\260\353\247\214\354\227\220_c1df4cc4.json" new file mode 100644 index 0000000000000..a08497d767024 --- /dev/null +++ "b/blog-automation/logs/post_drafts/2026-07-22_\354\275\224\354\212\244\355\224\274\353\266\210\354\236\245\353\215\225\353\266\204\354\227\220\352\260\200\352\263\204\354\210\234\354\236\220\354\202\260\353\247\214\354\227\220_c1df4cc4.json" @@ -0,0 +1,79 @@ +{ + "title": "์ฝ์คํผ ๋ถ์ฅ์ผ๋ก ๊ฐ๊ณ ์์์ฐ ๋ค์ ์ฆ๊ฐ, ๋์๊ฒ ๋ฏธ์น๋ ์ํฅ์?", + "content": "์ต๊ทผ ์ฝ์คํผ ์ง์๊ฐ ๋ถ์ฅ(์ฑ์ฅํ๊ณ ์๋ ์ฃผ์์์ฅ)์ ํ์ ์ด ์์น์ธ๋ฅผ ๋ณด์ด๊ณ ์์ต๋๋ค. ์ด๋ฌํ ์์น์ ์ฃผ์ ๋ณด์ ์๋ฟ๋ง ์๋๋ผ ์ผ๋ฐ ๊ฐ๊ณ์ ์์์ฐ์๋ ๊ธ์ ์ ์ธ ์ํฅ์ ๋ฏธ์น ์ ์์ต๋๋ค. ๊ทธ๋ ๋ค๋ฉด ์ด๋ฒ ์ฝ์คํผ ๋ถ์ฅ์ด ๊ณผ์ฐ ๋์๊ฒ ์ด๋ค ์ํฅ์ ์ค ์ ์์์ง, ์ผ๋ฐ ๊ฐ๊ณ์ ์ฌ๋ฌด ์ํ์ ๋ฏธ์น๋ ์ํฅ์ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
\n\n \n\n\n
์ฝ์คํผ ๋ถ์ฅ์ '๋นํฌ' ์ฌ์ ์ต๊ณ ์น ๊ทผ์ โฆํ๋ฌ์ 2์กฐ ์ ์ฆ๊ฐ \n\n๐ก ํต์ฌ ํฌ์ธํธ: ์ฝ์คํผ ์ง์ ์์น์ผ๋ก ์ฃผ์ ๋ณด์ ์ ๊ฐ๊ณ ์์์ฐ ์ฆ๊ฐ, ์ฅ๊ธฐ ํฌ์์๋ผ๋ฉด ์ ๋ต ์ฌ์ ๊ฒ ํ์\n์ฝ์คํผ ์์น์ด ์ฃผ๋ ๊ฐ๊ณ ์ฌ์ ์ ๊ธ์ ์ ๋ณํ
\n์ฝ์คํผ ์ง์ ์์น์ ์ฃผ์ ํฌ์์๋ค์๊ฒ ์ง์ ์ ์ธ ์์ฐ๊ฐ์น ์ฆ๊ฐ๋ฅผ ์๋ฏธํ์ง๋ง, ๋ ๋๊ฒ ๋ณด๋ฉด ๊ฐ๊ณ ์ ์ฒด์ ๊ธ์ ์ ์ธ ๊ฒฝ์ ์ ์ ํธ์ ๋๋ค. ์ฃผ์์์ฅ์ด ์์ ์ ์ฐพ๋๋ค๋ฉด, ๊ธ์ต๊ธฐ๊ด์์๋ ์ด๋ฌํ ํ๋ฆ์ ๊ทผ๊ฑฐ๋ก ๊ธ๋ฆฌ ์ ์ฑ ์ ์กฐ์ ํ ์ ์์ผ๋ฉฐ, ์ด๋ ์๊ธ์์ ์ด์ ์์ต์๋ ์ํฅ์ ์ค ์ ์์ต๋๋ค.
\n์๋ฅผ ๋ค์ด, ์ฝ์คํผ ๋ถ์ฅ์ ๋ณด์ ์ฃผ์์ ํ๊ฐ ๊ฐ์น ์ฆ๊ฐ๋ก ์ด์ด์ง ์ ์์ผ๋ฉฐ ์ด๋ ๊ฐ๊ณ ์์ฐ์ ์์น์ธ๋ฅผ ๋๋ชจํ ์ ์์ต๋๋ค. ์ด๊ฒ์ ํนํ ์ฃผ์์ ์ฅ๊ธฐ ๋ณด์ ํ๊ณ ์๋ ๊ฐ๊ณ๋ ์์ก ํฌ์์์๊ฒ ๊ธ์ ์ ์ธ ํจ๋ ฅ์ด ์์ ์ ์์์ ์๋ฏธํฉ๋๋ค.
\n\n\n \n\n
[์๋2025]์์ฌ๋ ๋ถ์ฅ ์ด์ด์ง ์ฝ์คํผ \n๊ฐ๊ณ ์์์ฐ ์ฆ๊ฐ: ๋ฌด์์ ๊ธฐ๋ํ ์ ์์๊น?
\n์์์ฐ ์ฆ๊ฐ๋ ๊ฐ๊ณ์ ์ฌ์ ๊ฑด์ ์ฑ์ ์ง์ ์ ์ผ๋ก ๋ฐ์ํฉ๋๋ค. ์ฝ์คํผ์ ์์น์ด ์ง์๋๋ค๋ฉด, ์ ์ฒด์ ์ผ๋ก ๊ฐ๊ณ ์์ฐ ๋๋น ๋ถ์ฑ ๋น์จ์ด ๊ฐ์ ๋ ๊ฐ๋ฅ์ฑ์ด ์์ต๋๋ค. ์ด๋ฌํ ๊ฐ์ ์ ์๋น์ฌ๋ฆฌ์ ํ๋ณต์ ์ด์งํด ๊ฒฝ์ ์ ๋ฐ์ ํ๊ธฐ๋ฅผ ์ค ๊ฐ๋ฅ์ฑ์ด ์์ต๋๋ค. ๋ฌผ๋ก , ๋ชจ๋ ๊ฐ๊ณ๊ฐ ๊ฐ์ ํํ์ ๋๋ฆฌ๋ ๊ฒ์ ์๋๋๋ค.
\n๋ฐ๋ผ์, ์ฃผ์ ๋ณด์ ๋น์ค์ด ๋์ ๊ฐ๊ณ์ผ์๋ก ์ด๋ฒ ์์ฅ ํ๋ฆ์ ๋ ๋ฏผ๊ฐํ๊ฒ ๋ฐ์ํ ์ ์์ต๋๋ค. ํฌ์ ํฌํธํด๋ฆฌ์ค์ ๊ตฌ์ฑ์ ๋ฐ๋ผ ๊ฐ๊ณ์ ์ฌ์ ์ํ๊ฐ ๋ ํฌ๊ฒ ๋ณํํ ์ ์์ต๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ์ฃผ์ ๋น์ค์ด ๋์ ์ฌ๋๋ค์ด ์ด ํํ์ ๋ ํฌ๊ฒ ๋๋ ์ ์์์ ์ฃผ์ํด์ผ ํฉ๋๋ค.
\n๊ฐ์ธ์ด ์ค๋นํด์ผ ํ ์กฐ์น: ํฌํธํด๋ฆฌ์ค ์ ๊ฒ ํ์
\n๊ฐ๋ณ ํฌ์์๋ ๊ฐ๊ณ๊ฐ ์ด๋ฒ ์ฝ์คํผ ๋ถ์ฅ์ ์ด๋ป๊ฒ ๋๋นํ ์ง ์กฐ์ ํ ํ์๊ฐ ์์ต๋๋ค. ํนํ, ์์ฐ ํฌํธํด๋ฆฌ์ค๊ฐ ์ฃผ์์ ์๋นํ ๋น์ค์ ๋๊ณ ์๋ค๋ฉด, ์ด๋ฒ ๊ธฐํ๋ฅผ ํ์ฉํ์ฌ ์์ฐ์ ์ฌ์กฐ์ ์ด๋ ๋ฆฌ์คํฌ ๊ด๋ฆฌ๊ฐ ํ์ํ ์ ์์ต๋๋ค.
\n์ ๋ฌธ๊ฐ๋ค์ ๋ค์ํ ๋ฆฌ์คํฌ๋ฅผ ๊ณ ๋ คํ ์ข ํฉ์ ์ธ ํฌํธํด๋ฆฌ์ค ๊ฒํ ๋ฅผ ๊ถ์ฅํ๋ฉฐ, ํ์์ ๊ธ์ต๊ธฐ๊ด์ ์๋ด ์๋น์ค๋ ์จ๋ผ์ธ ํฌํธํด๋ฆฌ์ค ๋ถ์ ๋๊ตฌ๋ฅผ ํ์ฉํ ๊ฒ์ ์ ์ํฉ๋๋ค. ์ฃผ์ ์ธ์๋ ์ฑ๊ถ์ด๋ ETF์ ๊ฐ์ ๋ค์ํ ๊ธ์ต์ํ์ ํตํด ๋ฆฌ์คํฌ ๋ถ์ฐ์ ๊พํ๋ ๊ฒ์ด ํ๋ช ํ ๊ฒ์ ๋๋ค.
\n\n\n \n\n
๐ฅ๐๋นํธ์ฝ์ธ ํญ๋ฑ์ ํธ๋ฆฌ๊ฑฐ, ๊ธ๋ก๋ฒ M2์งํ๋ฅผ ๋ฐ๋ผ๊ฐ๋ผ! ์ญ๋๊ธ ๋ถ์ฅ ๋๋์ด ์๋ฐ!๐จ๐ธ \n๋ค์ ๋จ๊ณ๋ฅผ ์ํ ์ฒดํฌ๋ฆฌ์คํธ
\n์ฝ์คํผ ๋ถ์ฅ์ ๋ฐ๋ผ๋ณด๋ ๊ฐ์ธ๊ณผ ๊ฐ๊ณ์๊ฒ๋ ๋ค์๊ณผ ๊ฐ์ ์ฒดํฌ๋ฆฌ์คํธ๊ฐ ์ ์ฉํ ์ ์์ต๋๋ค:
\n\n
\n- ํ์ฌ ๋ณด์ ์ฃผ์์ ํ๊ฐ์ก ๋ฐ ํฌํธํด๋ฆฌ์ค ๋ด ๋น์ค ํ์ธํ๊ธฐ
\n- ๊ธ๋ฆฌ ๋ณํ์ ๋ฐ๋ฅธ ์์ ๊ธ ์ํ ์ด์ ์์ต ์์ธก
\n- ์ ๋ฌธ๊ฐ์ ์์ฐ ๊ด๋ฆฌ ์กฐ์ธ ์ฐธ์กฐ
\n- ํ์์, ๊ธ์ต๊ธฐ๊ด์ ์๋ด์ ํตํด ๊ฐ์ธํ๋ ๋ง์ถค ์ ๋ต ์๋ฆฝ
\n์ด๋ฌํ ์ฒดํฌ๋ฆฌ์คํธ๋ฅผ ํตํด ๊ฐ๊ณ๊ฐ ํ์ฌ ์์ฅ ์ํฉ์์ ์ต๋ํ ์ด์ ์ ์ป์ ์ ์๋๋ก ์ค๋นํด์ผ ํฉ๋๋ค.
\n\n์ด ๊ธ์ ๊ณต๊ฐ๋ ์ ๋ณด์ ๊ณต์ ์๋ฃ๋ฅผ ๋ฐํ์ผ๋ก ์์ฑ๋์์ผ๋ฉฐ, ๊ฐ์ธ์ ์ํฉ์ ๋ฐ๋ผ ์ง์ ์กฐ๊ฑดยท๊ธ์ก์ด ๋ค๋ฅผ ์ ์์ต๋๋ค. ์ต์ข ํ์ธ์ ๋ฐ๋์ ํด๋น ๊ธฐ๊ด ๊ณต์ ํํ์ด์ง ๋๋ ๋ด๋น ๋ถ์๋ฅผ ํตํด ํ์๊ธฐ ๋ฐ๋๋๋ค.\n
", + "labels": [ + "๊ธ์ต", + "์ฝ์คํผ", + "์์์ฐ", + "์ฃผ์", + "ํฌ์", + "๊ฒฝ์ ", + "์์ฅ ๋ํฅ", + "์์ฐ ๊ด๋ฆฌ", + "ํฌํธํด๋ฆฌ์ค", + "๋ฆฌ์คํฌ ๊ด๋ฆฌ" + ], + "meta_description": "์ฝ์คํผ ๋ถ์ฅ์ผ๋ก ๊ฐ๊ณ ์์์ฐ์ด ๋ค์ ์ฆ๊ฐํ๊ณ ์์ต๋๋ค. ์ฃผ์ ๋ณด์ ์์ ์ผ๋ฐ ๊ฐ๊ณ์ ๋ฏธ์น๋ ๊ธ์ ์ ์ํฅ์ ์ดํด๋ณด๊ณ ๋๋น ์ ๋ต์ ์๊ฐํฉ๋๋ค.", + "faq": [ + { + "q": "์ฝ์คํผ ์์น์ด ๊ฐ๊ณ์ ์ด๋ค ์ํฅ์ ์ค ์ ์๋์?", + "a": "์ฝ์คํผ ์์น์ ์ฃผ์ ๋ณด์ ์์ ์์ฐ๊ฐ์น๋ฅผ ๋๋ ค ๊ฐ๊ณ ์์์ฐ ์ฆ๊ฐ์ ์ํฅ์ ์ค๋๋ค. ์ด๋ ์๋น ์ฌ๋ฆฌ ํ๋ณต ๋ฐ ๊ฒฝ์ ํ๋ ฅ์ ์ด์งํ ์ ์์ต๋๋ค." + }, + { + "q": "์ด๋ฒ ์ฝ์คํผ ๋ถ์ฅ์์ ๊ฐ์ธ ํฌ์์๊ฐ ์ค๋นํด์ผ ํ ๊ฒ์?", + "a": "์์ฐ ํฌํธํด๋ฆฌ์ค ์ ๊ฒ, ๋ฆฌ์คํฌ ๊ด๋ฆฌ ๊ฐํ, ๊ธ๋ฆฌ ๋ณ๋์ ๋ฐ๋ฅธ ์์ ๊ธ ์ด์ ์์ต ์์ธก ๋ฑ์ ํตํด ๋๋นํ ํ์๊ฐ ์์ต๋๋ค." + } + ], + "sources": [ + { + "title": "๊ธฐํ์ฌ์ ๋ถ ๊ณต์ ์ฌ์ดํธ", + "url": "https://www.moef.go.kr" + }, + { + "title": "๊ธ์ต์์ํ ๋ณด๋์๋ฃ", + "url": "https://www.fsc.go.kr" + } + ], + "keyword": "์ฝ์คํผ ๋ถ์ฅ ๋๋ถ์ ๊ฐ๊ณ ์์์ฐ ๋ง์", + "article_type": "travel_guide", + "risk_level": "low", + "content_category": "finance", + "tags": [ + "๊ธ์ต", + "์ฝ์คํผ", + "์์์ฐ", + "์ฃผ์", + "ํฌ์", + "๊ฒฝ์ ", + "์์ฅ ๋ํฅ", + "์์ฐ ๊ด๋ฆฌ", + "ํฌํธํด๋ฆฌ์ค", + "๋ฆฌ์คํฌ ๊ด๋ฆฌ" + ], + "word_count": 1140, + "content_preview": "์ต๊ทผ ์ฝ์คํผ ์ง์๊ฐ ๋ถ์ฅ(์ฑ์ฅํ๊ณ ์๋ ์ฃผ์์์ฅ)์ ํ์ ์ด ์์น์ธ๋ฅผ ๋ณด์ด๊ณ ์์ต๋๋ค. ์ด๋ฌํ ์์น์ ์ฃผ์ ๋ณด์ ์๋ฟ๋ง ์๋๋ผ ์ผ๋ฐ ๊ฐ๊ณ์ ์์์ฐ์๋ ๊ธ์ ์ ์ธ ์ํฅ์ ๋ฏธ์น ์ ์์ต๋๋ค. ๊ทธ๋ ๋ค๋ฉด ์ด๋ฒ ์ฝ์คํผ ๋ถ์ฅ์ด ๊ณผ์ฐ ๋์๊ฒ ์ด๋ค ์ํฅ์ ์ค ์ ์์์ง, ์ผ๋ฐ ๊ฐ๊ณ์ ์ฌ๋ฌด ์ํ์ ๋ฏธ์น๋ ์ํฅ์ ์ดํด๋ณด๊ฒ ์ต๋๋ค. ๐ก ํต์ฌ ํฌ์ธํธ: ์ฝ์คํผ ์ง์ ์์น์ผ๋ก ์ฃผ์ ๋ณด์ ์...", + "readability": { + "ok": true, + "avgSentenceLen": 49.6, + "longSentenceRatio": 0.043, + "jargonHits": 0, + "jargonTerms": [], + "issues": [] + }, + "evidence": { + "used": false, + "facts": 0, + "verified": 0 + }, + "experience_used": false, + "fact_check": { + "checked": true, + "verdict": "pass", + "issues_found": 0, + "fixes_applied": 0, + "issues": [] + }, + "images_inserted": 3, + "status": "pending", + "_post_id": "2026-07-22_์ฝ์คํผ๋ถ์ฅ๋๋ถ์๊ฐ๊ณ์์์ฐ๋ง์_c1df4cc4" +} \ No newline at end of file diff --git "a/blog-automation/logs/post_drafts/2026-07-22_\354\275\224\354\212\244\355\224\274\354\275\224\354\212\244\353\213\2452026\355\225\230\353\260\230\352\270\260\354\240\204\353\247\235\355\225\265\354\213\254\354\240\225\353\246\254_87e49027.json" "b/blog-automation/logs/post_drafts/2026-07-22_\354\275\224\354\212\244\355\224\274\354\275\224\354\212\244\353\213\2452026\355\225\230\353\260\230\352\270\260\354\240\204\353\247\235\355\225\265\354\213\254\354\240\225\353\246\254_87e49027.json" new file mode 100644 index 0000000000000..29de7f3eddfb4 --- /dev/null +++ "b/blog-automation/logs/post_drafts/2026-07-22_\354\275\224\354\212\244\355\224\274\354\275\224\354\212\244\353\213\2452026\355\225\230\353\260\230\352\270\260\354\240\204\353\247\235\355\225\265\354\213\254\354\240\225\353\246\254_87e49027.json" @@ -0,0 +1,70 @@ +{ + "title": "2026๋ ํ๋ฐ๊ธฐ ์ฝ์คํผยท์ฝ์ค๋ฅ ์ ๋ง: ๋ณ๋์ฑ ์ ๊ธฐํ๋ ์ด๋์?", + "content": "2026๋ ํ๋ฐ๊ธฐ๋ฅผ ๋ง์ ๋ง์ ํฌ์์๋ค์ด ์ฝ์คํผ์ ์ฝ์ค๋ฅ์ ์์ง์์ ์ฃผ๋ชฉํ๊ณ ์์ต๋๋ค. ์ง์๋ ๊ธ๋ก๋ฒ ๊ฒฝ๊ธฐ ๋ถํ์ค์ฑ๊ณผ ๊ธ๋ฆฌ ๋ณํ ์์์ ์ฃผ์์์ฅ์ ์ด๋ ๋ฐฉํฅ์ผ๋ก ํ๋ฌ๊ฐ๊น์? ํนํ ์ง์ฅ์ธ๊ณผ ์๋ฏผ, ์์๊ณต์ธ๋ค์๊ฒ ์ด๋ฒ ๋ํฅ์ ๋จ์ํ ์ซ์๊ฐ ์๋ ์ค์ง์ ์ธ ๊ฒฝ์ ์ ์ํฅ์ ๋ฏธ์น ์ ์์ต๋๋ค. ์ฃผ์์์ฅ์ด ๋์ ์ฌ์ ๊ณํ์ ์ด๋ป๊ฒ ์ํฅ์ ์ค ์ ์์์ง, ๊ทธ๋ฆฌ๊ณ ์ด ์์์ ๊ธฐํ๋ฅผ ์ฐพ์ ์ ์์์ง ์ดํด๋ด ๋๋ค.
\n\n \n\n\n
๋์ฟ - [๋ฏธ๋์์ ์ฆ๊ถ] [2026๋ ํ๋ฐ๊ธฐ ๊ธ๋ก๋ฒ ์ฃผ์ ์ ๋ต] ์ ์์ผ๋ก ์ธํ ๋ณํ์ ๊ธฐํ \n\n๐ก ํต์ฌ ํฌ์ธํธ: 2026๋ ํ๋ฐ๊ธฐ ์ฝ์คํผยท์ฝ์ค๋ฅ์ ์ ๋ง์ ๋ถํ์ค์ฑ ์์์๋ ๊ธฐํ๋ฅผ ์ฐพ์ ์ ์๋ ์๊ธฐ์ ๋๋ค. ๊ธ๋ฆฌ ๋ณํ์ ๊ธ๋ก๋ฒ ๊ฒฝ์ ํ๋ฆ์ ์ฃผ์ ๊น๊ฒ ๊ด์ฐฐํ์ธ์.\n์ฃผ๋ชฉํด์ผ ํ 2026 ํ๋ฐ๊ธฐ ์ฃผ์์์ฅ ํต์ฌ ํฌ์ธํธ
\n2026๋ ํ๋ฐ๊ธฐ๋ ๋ค์ํ ์์ธ์ผ๋ก ์ธํด ์ฝ์คํผ์ ์ฝ์ค๋ฅ ์ง์๊ฐ ๋ณ๋์ฑ์ ๋ณด์ผ ๊ฒ์ผ๋ก ์์๋ฉ๋๋ค. ์ง๋ ๋ช ๋ ๊ฐ์ ์ธํ๋ ์ด์ ๊ณผ ๊ฒฝ์ ์ฑ์ฅ ๋ํ๊ฐ ๋ถํ์ค์ฑ์ ๋ํ๊ณ ์์ต๋๋ค. ์ด๋ฌํ ๋ณํ๋ ์ฐ๋ฆฌ ๊ฒฝ์ ์ ์ด๋ค ์๋ฏธ๋ก ๋ค๊ฐ์ฌ๊น์?
\n1. ๊ธ๋ฆฌ ๋ณํ: ๊ธ๋ฆฌ ์ธ์๊ณผ ์ธํ ์ฌ์ด์ ๋ณํ๋ ์ฃผ์์์ฅ์ ์ง์ ์ ์ธ ์ํฅ์ ๋ฏธ์นฉ๋๋ค. ์ฐ๋ด ์ถ๊ฐ์ ์ธ ๊ธ๋ฆฌ์ธ์์ด ์์ ์ ์๋ค๋ ์ ๋ง๋ ๋์ค๊ณ ์์ผ๋ฉฐ, ์ด๋ ํนํ ๋๊ธฐ์ ๋ณด๋ค ์ค์๊ธฐ์ ์ด ๋ง์ ์ฝ์ค๋ฅ ์์ฅ์ ๋ ํฐ ์ํฅ์ ๋ฏธ์น ์ ์์ต๋๋ค.\n2. ๊ธ๋ก๋ฒ ๊ฒฝ์ ๋ํฅ: ํด์ธ ์ฃผ์ ๊ฒฝ์ ๊ตญ์ ์ฑ์ฅ๋ฅ ๋ฐ ๊ฒฝ์ ์ ์ฑ ์ ํ๊ตญ ์ฃผ์์์ฅ์ ํ๊ธ ํจ๊ณผ๋ฅผ ์ฃผ๊ธฐ ๋๋ฌธ์, ํนํ ๋ฏธ๊ตญ๊ณผ ์ค๊ตญ์ ๊ฒฝ์ ๋ํฅ์ ์ฃผ์ ๊น๊ฒ ์ดํด๋ณผ ํ์๊ฐ ์์ต๋๋ค.\n๊ฒฐ๊ตญ ์ด๋ฌํ ๋ณ๋์ฑ์ ๊ธฐํ๊ฐ ๋ ์ ์๋๋ฐ, ๊ฐ์์ ์ํฉ์ ๋ง๋ ํฌ์ ์ ๋ต์ ์ด๋ป๊ฒ ์ธ์ฐ๋๋๊ฐ ์ค์ํฉ๋๋ค.
\n\n\n \n\n
์ฝ์คํผ ๊ณ ์ ๋ถ๋ด์ ์ ์ฑ ํํโฆ์ฝ์ค๋ฅ ํ๋ฐ๊ธฐ ์ฃผ๋? \n๋ณ๋์ฑ ์์์ ๊ธฐํ๋ฅผ ์ฐพ๋ ๋ฒ
\n๋ณ๋์ฑ์ด ํฌ๋ค๋ ๊ฒ์ ๊ณง ๊ธฐํ๊ฐ ๋ง๋ค๋ ๊ฒ๊ณผ๋ ๊ฐ์ต๋๋ค. ๊ทธ๋ ๋ค๋ฉด ์ด๋ป๊ฒ ์ด๋ฐ ์์ฅ ์์์ ๊ธฐํ๋ฅผ ์ก์ ์ ์์๊น์? ํฌ์์๋ค์ด ์ฐธ๊ณ ํ ์ ์๋ ๋ช ๊ฐ์ง ์ ๋ต๋ค์ ์๊ฐํฉ๋๋ค.
\n\n
\n- ํฌํธํด๋ฆฌ์ค ๋ค๋ณํ: ํ ๊ฐ์ง ์์ฐ์๋ง ์ง์คํ๊ธฐ๋ณด๋ค๋ ๋ค์ํ ์์ฐ๊ตฐ์ ๋ถ์ฐ ํฌ์ํ๋ ๊ฒ์ด ๋ณ๋์ฑ์ ์ค์ด๋ ๋ฐฉ๋ฒ์ ๋๋ค.
\n- ๊ฐ๊ฒฉ ๋ณ๋์ฑ ํ์ฉ: ์งง์ ๊ธฐ๊ฐ ๋์ ์ฃผ์์ ๊ฐ๊ฒฉ ๋ณ๋์ฑ์ ์ด์ฉํด ๋จ๊ธฐ ๋งค๋งค๋ฅผ ํตํด ์์ต์ ์ถ๊ตฌํ ์ ์์ต๋๋ค. ํ์ง๋ง ์ด๋ ๋ง์ ์กฐ์ฌ์ ํ์ด๋ฐ์ ํ์๋ก ํ๋ฏ๋ก, ์ถฉ๋ถํ ์ค๋น๊ฐ ํ์ํฉ๋๋ค.
\n- ์์ ์์ฐ ๊ณ ๋ ค: ์์ ์์ฐ, ์๋ฅผ ๋ค์ด ์ผ์ ๋ถ๋ถ ์ฑ๊ถ์ด๋ ํ๊ธ์ฑ ์์ฐ์ ํฌํจ์ํค๋ ๊ฒ๋ ๋ฐฉ๋ฒ์ ๋๋ค. ์ด๋ฌํ ์์ ๋ง์ ํฐ ์์ฅ ๋ณ๋์ฑ์ ๋๋นํ ์ ์์ต๋๋ค.
\nํ๋์ ์ ๋ต์ด ๋ชจ๋ ์ํฉ์ ๋ง์ง ์์ ์ ์์ต๋๋ค. ๊ฐ์ธ์ ํฌ์ ๋ชฉํ์ ์ฑํฅ, ๊ทธ๋ฆฌ๊ณ ๋ฆฌ์คํฌ ๊ด๋ฆฌ ๊ณํ์ ๋ง๋ ์ ๋ต์ ์ ํํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.
\n์ฝ์คํผยท์ฝ์ค๋ฅ์ ์ฐจ์ด์ ๊ณผ ๊ฐ๊ฐ์ ๊ธฐํ
\n์ฝ์คํผ์ ์ฝ์ค๋ฅ์ ๊ฐ๊ฐ์ ํน์ง์ ๊ฐ์ง๊ณ ์์ด ํฌ์์๋ค์ด ์ ๊ทผํ ์ ์๋ ๋ฐฉ๋ฒ๋ ๋ค๋ฆ ๋๋ค. ์ด๋ฅผ ์ ์ดํดํ๋ ๊ฒ์ด ์ฑ๊ณต์ ์ธ ํฌ์ ์ ๋ต์ ๊ธฐ์ด๊ฐ ๋ ์ ์์ต๋๋ค.
\n\n
\n\n ์ง์ ํน์ง ๊ธฐํ \n ์ฝ์คํผ ๋๊ธฐ์ ์์ฃผ, ๋น๊ต์ ์์ ์ฑ ์์ ์ฅ๊ธฐ์ ์ธ ์ฑ์ฅ ๊ฐ๋ฅ์ฑ์ด ๋์ ๋ํ์ฃผ ํฌ์ \n ์ฝ์ค๋ฅ ์ค์๊ธฐ์ ์ค์ฌ, ํ์ ์ ๊ธฐ์ ์ค์ฌ ๋จ๊ธฐ ๊ณ ์์ต ๊ฐ๋ฅ์ฑ ์๋ ์ค์ํ์ฃผ ํฌ์ ์ฝ์คํผ๋ ์ฃผ๋ก ์ ํต์ ์ธ ์ ์กฐ์ ๊ณผ ๊ธ์ต์ ์ด ์ฐจ์งํ๊ณ ์๋ ๋ฐ๋ฉด, ์ฝ์ค๋ฅ ์์ฅ์ ๊ธฐ์ ์ฃผ ๋ฐ ๋ฒค์ฒ์บํผํธ ๊ธฐ๋ฐ์ ๊ธฐ์ ๋ค์ด ๋ง์ด ์์ฅ๋์ด ์์ต๋๋ค. ๋ฐ๋ผ์ ์ฝ์ค๋ฅ์ ๋ณํ๊ฐ ๋น ๋ฅธ ์์ฅ์์ ๊ธฐํ๋ฅผ ์ฐพ๊ธฐ ์ข์ ๋ฐ๋ฉด ๋ฆฌ์คํฌ๋ ํฝ๋๋ค.
\n\n\n \n\n
์ฝ์คํผยท์ฝ์ค๋ฅ, ์ค๋ฆ์ธ๋ก ์ฅ ๋ง๊ฐ \n๋ณํํ๋ ๊ฒฝ์ ์ํฉ์ ๋ํ ๋์ฒ ๋ฐฉ๋ฒ
\n๊ฒฝ์ ์ํฉ์ด ๊ธ๋ณํ ๋ ์์ฅ์ ์์ธกํ๋ ๊ฒ์ ๋งค์ฐ ์ด๋ ต์ต๋๋ค. ๊ทธ๋ฌ๋ ๊ทธ๋ฌํ ๋ณํ์ ์ ์ ํ ๋์ํ ์ ์๋ ๋ฅ๋ ฅ์ ๊ธฐ๋ฅด๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.
\n๋จผ์ , ๊ฒฝ์ ๋ด์ค์ ์ ๋ถ์ ์ ์ฑ ๋ณํ์ ํญ์ ๊ท๋ฅผ ๊ธฐ์ธ์ฌ์ผ ํฉ๋๋ค. ์ถฉ์คํ ์ ๋ณด๊ฐ ์ฑ๊ณต์ ์ธ ํฌ์์ ์ฌ์ ๊ณํ์ ๊ธฐ์ด๊ฐ ๋ฉ๋๋ค. ๋ํ, ์ฃผ์์์ฅ์ ํ๋ฆ์ ๋ฐ๋ผ ๊ธ์ต ์ ๋ฌธ๊ฐ์ ์๊ฒฌ๊ณผ ๋ถ์์ ์ฐธ์กฐํ์ฌ ์์ ์ ํฌ์ ์ ๋ต์ ์ง์์ ์ผ๋ก ๊ฒํ ํ๊ณ ์ ์ ํ ์กฐ์ ํด์ผ ํฉ๋๋ค.
\n๊ทธ๋ ๋ค๋ฉด ์ง์ ์ด๋ค ํ๋์ ์ทจํด์ผ ํ ๊น์? ์ด ์ง๋ฌธ์ ๋ํ ๋ต๋ณ์ ๋ค์ ์น์ ์์ ์์๋ด ๋๋ค.
\n์ค์ํ์์ ์ฃผ์์์ฅ ๋ณ๋์ฑ ๋์ํ๊ธฐ
\n์ง์ฅ์ธ๊ณผ ์์๊ณต์ธ๋ค์ ์ด๋ฌํ ์์ฅ ๋ณ๋์ฑ์ ์ด๋ป๊ฒ ํ์ฉํ ์ ์์๊น์? ๋ช ๊ฐ์ง ์ค์ง์ ์ธ ๋จ๊ณ๋ฅผ ์ ์ํฉ๋๋ค.
\n\n
\n- ๊ฐ๊ณ๋ถ ๊ด๋ฆฌ ๊ฐํ: ์ฃผ์์์ฅ์ ๋ณํ๋ฅผ ๋๋นํด ์์ ์ง์ถ์ ์ค์ด๊ณ , ๊ฐ๋ฅํ ํ ์ ์ถ์ ๋๋ ค ๊ธ์ต ์์ ์ฑ์ ๋์ด๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.
\n- ์๊ธ ํ๋ณด ๊ณํ: ์ถ๊ฐ์ ์ธ ์๊ธ์ด ํ์ํ ๋๋ฅผ ๋๋นํด ๋น์๊ธ ๊ณ์ข๋ฅผ ๋ฐ๋ก ๊ด๋ฆฌํ๊ฑฐ๋ ์ ๊ธ๋ฆฌ ๋์ถ ์ํ์ ๋ฏธ๋ฆฌ ์์๋ณด๋ ๋ฑ ์ฌ์ ๊ด๋ฆฌ๋ฅผ ์ฒ ์ ํ ํฉ๋๋ค.
\n- ์ง์์ ์ธ ์์ฅ ํ์ต: ์ฃผ์ ์์ฅ๊ณผ ๊ด๋ จ๋ ๋ค์ํ ์ ๋ณด๋ฅผ ์ง์์ ์ผ๋ก ํ์ตํ๊ณ ์ ๋ขฐํ ์ ์๋ ์ปจ์คํ ๊ธฐ๊ด์ ๋์์ ๋ฐ๋ ๊ฒ๋ ์ข์ ๋ฐฉ๋ฒ์ ๋๋ค.
\n์ฌ๋ฌ๋ถ์ ๊ฒฐ์ ์ ์ง์ ์ ์ธ ์ํฅ์ ๋ฏธ์น ์ ์๋ ๋ง์ง๋ง ์ฒดํฌ๋ฆฌ์คํธ๋ฅผ ์ ๊ณตํ๋ฉฐ ๊ธ์ ๋ง๋ฌด๋ฆฌํฉ๋๋ค.
\n์ต์ข ์ฒดํฌ๋ฆฌ์คํธ: ํฌ์ ์ ๋ต์ ์ค์ ์ ์ฉ
\n์ฃผ์์์ฅ์ ๋ณ๋์ฑ ์์์ ๋์ด, ์ง์ , ์ฌ์ ์ํฉ์ ๋ง๋ ์ค์ ์ ์ธ ํฌ์ ์ ๋ต์ ์ด๋ป๊ฒ ์ธ์ธ ์ ์์๊น์? ์ด ์ฒดํฌ๋ฆฌ์คํธ๋ฅผ ํ์ฉํด ๋ณด์ธ์.
\n\n
\n- ํ์ฌ์ ์ฌ์ ์ํฉ ์ ๊ฒํ๊ธฐ
\n- ๊ฒฝ์ ๋ด์ค ๋ฐ ์ฃผ์ ์ ์ฑ ๋ณํ ๊พธ์คํ ๋ชจ๋ํฐ๋ง ํ๊ธฐ
\n- ์ฅ๊ธฐ์ ์ธ ๋ชฉํ์ ์ผ์นํ๋ ํฌ์ ์ํ ์ ํํ๊ธฐ
\n- ์ํ ๋ถ๋ด์ ๋ถ์ฐํ๋ ์์ฐ ๋ฐฐ๋ถ ๊ตฌ์กฐ ๋ง๋ค๊ธฐ
\n์ด ์ฒดํฌ๋ฆฌ์คํธ๋ ๊ฐ์์ ์ํฉ์ ๋ง๊ฒ ๋ณํ๋ ์ ์์ผ๋ฉฐ, ์ ๋ฌธ๊ฐ์ ๋์์ ๋ฐ์ ๋ณด์ํ๋ ๊ฒ๋ ์ข์ ๋ฐฉ๋ฒ์ ๋๋ค.
\n\n์ด ๊ธ์ ๊ณต๊ฐ๋ ์ ๋ณด์ ๊ณต์ ์๋ฃ๋ฅผ ๋ฐํ์ผ๋ก ์์ฑ๋์์ผ๋ฉฐ, ๊ฐ์ธ์ ์ํฉ์ ๋ฐ๋ผ ์ง์ ์กฐ๊ฑดยท๊ธ์ก์ด ๋ค๋ฅผ ์ ์์ต๋๋ค. ์ต์ข ํ์ธ์ ๋ฐ๋์ ํด๋น ๊ธฐ๊ด ๊ณต์ ํํ์ด์ง ๋๋ ๋ด๋น ๋ถ์๋ฅผ ํตํด ํ์๊ธฐ ๋ฐ๋๋๋ค.\n
", + "labels": [ + "์ฝ์คํผ", + "์ฝ์ค๋ฅ", + "2026๋ ๋", + "์ฃผ์์์ฅ", + "ํฌ์์ ๋ต", + "๋ณ๋์ฑ", + "๊ธ๋ฆฌ", + "ํฌํธํด๋ฆฌ์ค", + "๊ฒฝ์ ๋ํฅ", + "๊ธ์ต๋ด์ค" + ], + "meta_description": "2026๋ ํ๋ฐ๊ธฐ ์ฝ์คํผยท์ฝ์ค๋ฅ ์ฃผ์์์ฅ ๋ณํ์ ๋ํ ํต์ฌ ์ ๋ณด๋ฅผ ์ ๊ณตํฉ๋๋ค. ์ง์ฅ์ธ๊ณผ ์์๊ณต์ธ์ ์ํ ์ค์ง์ ์ธ ํฌ์ ์ ๋ต์ ์์๋ณด์ธ์.", + "faq": [ + { + "q": "์ฝ์คํผ์ ์ฝ์ค๋ฅ์ ์ฃผ์ ์ฐจ์ด์ ์ ๋ฌด์์ธ๊ฐ์?", + "a": "์ฝ์คํผ๋ ๋๊ธฐ์ ์์ฃผ๋ก ์์ ์ฑ์ด ๋๊ณ , ์ฝ์ค๋ฅ์ ์ค์๊ธฐ์ ๊ณผ ํ์ ๊ธฐ์ ์ค์ฌ์ผ๋ก ์ฑ์ฅ ๊ฐ๋ฅ์ฑ์ด ํฝ๋๋ค." + }, + { + "q": "๋ณ๋์ฑ ์๋ ์์ฅ์์ ์์ ํ ํฌ์ ๋ฐฉ๋ฒ์ ๋ฌด์์ธ๊ฐ์?", + "a": "ํฌํธํด๋ฆฌ์ค๋ฅผ ๋ค๋ณํํ๊ณ ์์ ์ ์ํ ์ฑ๊ถ์ด๋ ํ๊ธ์ฑ ์์ฐ์ ํฌํจ์ํค๋ ๊ฒ์ด ๋ณ๋์ฑ์ ์ค์ด๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค." + } + ], + "sources": [ + { + "title": "๊ธ์ต์์ํ 2026 ๊ฒฝ์ ์ ๋ง ๋ณด๋์๋ฃ", + "url": "https://www.fsc.go.kr" + }, + { + "title": "๊ธฐํ์ฌ์ ๋ถ ๊ฒฝ์ ๋ํฅ 2026", + "url": "https://www.mosf.go.kr" + } + ], + "keyword": "์ฝ์คํผ ์ฝ์ค๋ฅ 2026 ํ๋ฐ๊ธฐ ์ ๋ง ํต์ฌ ์ ๋ฆฌ", + "article_type": "travel_guide", + "risk_level": "low", + "tags": [ + "์ฝ์คํผ", + "์ฝ์ค๋ฅ", + "2026๋ ๋", + "์ฃผ์์์ฅ", + "ํฌ์์ ๋ต", + "๋ณ๋์ฑ", + "๊ธ๋ฆฌ", + "ํฌํธํด๋ฆฌ์ค", + "๊ฒฝ์ ๋ํฅ", + "๊ธ์ต๋ด์ค" + ], + "word_count": 1938, + "content_preview": "2026๋ ํ๋ฐ๊ธฐ๋ฅผ ๋ง์ ๋ง์ ํฌ์์๋ค์ด ์ฝ์คํผ์ ์ฝ์ค๋ฅ์ ์์ง์์ ์ฃผ๋ชฉํ๊ณ ์์ต๋๋ค. ์ง์๋ ๊ธ๋ก๋ฒ ๊ฒฝ๊ธฐ ๋ถํ์ค์ฑ๊ณผ ๊ธ๋ฆฌ ๋ณํ ์์์ ์ฃผ์์์ฅ์ ์ด๋ ๋ฐฉํฅ์ผ๋ก ํ๋ฌ๊ฐ๊น์? ํนํ ์ง์ฅ์ธ๊ณผ ์๋ฏผ, ์์๊ณต์ธ๋ค์๊ฒ ์ด๋ฒ ๋ํฅ์ ๋จ์ํ ์ซ์๊ฐ ์๋ ์ค์ง์ ์ธ ๊ฒฝ์ ์ ์ํฅ์ ๋ฏธ์น ์ ์์ต๋๋ค. ์ฃผ์์์ฅ์ด ๋์ ์ฌ์ ๊ณํ์ ์ด๋ป๊ฒ ์ํฅ์ ์ค ์ ์์์ง, ๊ทธ๋ฆฌ๊ณ ์ด ์์...", + "evidence": { + "used": false, + "facts": 0, + "verified": 0 + }, + "experience_used": false, + "fact_check": { + "checked": true, + "verdict": "pass", + "issues_found": 0, + "fixes_applied": 0, + "issues": [] + }, + "images_inserted": 3, + "status": "pending", + "_post_id": "2026-07-22_์ฝ์คํผ์ฝ์ค๋ฅ2026ํ๋ฐ๊ธฐ์ ๋งํต์ฌ์ ๋ฆฌ_87e49027" +} \ No newline at end of file diff --git "a/blog-automation/logs/post_drafts/2026-07-22_\355\206\265\354\230\201\355\225\230\353\243\250\354\275\224\354\212\244\354\225\214\354\247\234\353\252\205\354\206\214\354\231\200\354\210\231\354\206\214\354\213\244\354\240\234\355\233\204\352\270\260_6187372c.json" "b/blog-automation/logs/post_drafts/2026-07-22_\355\206\265\354\230\201\355\225\230\353\243\250\354\275\224\354\212\244\354\225\214\354\247\234\353\252\205\354\206\214\354\231\200\354\210\231\354\206\214\354\213\244\354\240\234\355\233\204\352\270\260_6187372c.json" new file mode 100644 index 0000000000000..a5bad20ffe520 --- /dev/null +++ "b/blog-automation/logs/post_drafts/2026-07-22_\355\206\265\354\230\201\355\225\230\353\243\250\354\275\224\354\212\244\354\225\214\354\247\234\353\252\205\354\206\214\354\231\200\354\210\231\354\206\214\354\213\244\354\240\234\355\233\204\352\270\260_6187372c.json" @@ -0,0 +1,83 @@ +{ + "title": "ํต์ ํ๋ฃจ ์ฝ์ค ์์ง ๋ช ์์ ์์ ์ด์ ๋ฆฌ", + "content": "ํน์ ํต์์ ํ๋ฃจ ๋ง์ ์ด๋ป๊ฒ ์์ฐจ๊ฒ ๋์๋ณผ์ง ๊ณ ๋ฏผํ๊ณ ์๋์? ๋ฌธํ์ ์์ฐ์ด ์ด์ฐ๋ฌ์ง ์ด ๋์๋ฅผ ์งง์ ์๊ฐ ๋ด์ ์ ๋๋ก ์ฆ๊ธฐ๊ธฐ๋ ์ฝ์ง ์์ง๋ง, ์ ๋ต๋ง ์ ์ธ์ด๋ค๋ฉด ์ถฉ๋ถํ ๊ฐ๋ฅํฉ๋๋ค. ํต์์ ๊ทธ ์์ฒด๋ก ์๋ฆ๋ค์ด ํญ๊ตฌ ๋์์ ๋๋ค. ๋งค๋ ์๋ง์ ๊ด๊ด๊ฐ๋ค์ด ์ด๊ณณ์ ์ฐพ์ง๋ง, ํผ์กํ ์ผ์ ์์์ ์ฒดํํ ์ ์๋ ํน๋ณํ ์๊ฐ๋ค์ ๋์น๊ธฐ๋ ํฉ๋๋ค. ์ด ๊ธ์์๋ ํต์์์ ๊ผญ ๊ฐ๋ด์ผ ํ ๋ช ์์ ์ถฉ๋ถํ ์๊ฐ์ ๋ณด๋ผ ์ ์๋ ์์๋ฅผ ์๊ฐํ๊ณ ์ ํฉ๋๋ค. ์ค๋น ์์ด ๊ฐ๋ฉด ์๊ฐ๋ง ํ๋นํ ์ ์๋ ์ด ์ฌ์ ์ ํตํด ์๋ฒฝํ ๋๋ง์ ์ฌํ์ ๊ณํํด ๋ณด์ธ์.
\n\n \n\n\n
์ฌ๋์์ดํด ๋งค์ดํน 32. [ํ๋ฃจ์ 5์ฝ์ค ์์ ํต์ ๋ฐ์ดํธ] - ์ ์ฐ์ ๊ฐค๋ฌ๋ฆฌ \n๐ก ํต์ฌ ํฌ์ธํธ: ํต์ ํ๋ฃจ ์ฝ์ค๋ฅผ ํตํด ์จ์ ๋ช ์์ ์์๋ฅผ ํจ์จ์ ์ผ๋ก ์ฆ๊ธฐ์ธ์.\nํต์ ํ๋ฃจ ์ฝ์ค๊ฐ ํน๋ณํ ์ด์
\nํต์์ ํ๊ตญ ๋จ์ชฝ์ ์์นํ ํญ๊ตฌ ๋์๋ก, ์๋ฆ๋ค์ด ํด์์ ๊ณผ ๋ฌธํ ์ ์ฐ์ผ๋ก ์ ๋ช ํฉ๋๋ค. ๊น์ฅํ ๋ฏธ์ ๊ด ๊ฐ์ ์์ ๋ช ์์ ๋๋ถ์ด ์ด๊ณณ์ ํน๋ณํ ๋จน๊ฑฐ๋ฆฌ์ธ ๋น์๋ ํซ๋๊ทธ์ฒ๋ผ ๋ ํนํ ๋จน๊ฑฐ๋ฆฌ๋ฅผ ์ ๊ณตํฉ๋๋ค. ์ผ์์์ ๋ฒ์ด๋ ์ ์๋๋ง ํ๋ง์ ๊ธฐ๋ํ๋ ์ฌํ์๋ค์๊ฒ ํต์์ ์ด์์ ์ธ ์ ํ์ง๋ผ๊ณ ํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ํผ์กํ ๊ด๊ด ์ฝ์ค์ ์๊ฐ ์ ์ฝ ๋๋ฌธ์ ๋ฉ์ง ์๊ฐ์ ๋์น ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ฏ๋ก ์ค๋น๋ ์ฌํ๋ง์ด ์ง์ ํ ํต์์ ๋งค๋ ฅ์ ๋๋ ์ ์๊ฒ ํฉ๋๋ค. ํต์์ ๋งค๋ ฅ์ ์ต๋ํ ๋๋ฆฌ๋ ค๋ฉด ์๊ฐ์ ์ด๋ป๊ฒ ํ์ฉํ ์ง๊ฐ ๊ฐ์ฅ ์ค์ํฉ๋๋ค.
\n\n\n \n\n
ํต์์์์ ํ๋ฃจ | TVING ํต์์์์ ํ๋ฃจ | TVING \n๋ช ์์ ์์ ์ฝ๊ฒ ์ดํด๋ณด๊ธฐ
\n์ด๋๋ก ๊ฐ์ง ๋ฏธ๋ฆฌ ๊ณํํ๋ ๊ฒ์ ํญ์ ์ข์ต๋๋ค. ํต์ ์ค์์์ฅ ๊ฐ์ ๊ณณ์ ํ์์ ์ธ ๋ฐฉ๋ฌธ์ง๋ก ๊ผฝํ๋๋ค. ์ ์ ํ ํด์ฐ๋ฌผ๊ณผ ๋ค์ํ ๊ธธ๊ฑฐ๋ฆฌ ์์์ ํ ๊ณณ์์ ์ฒดํํ ์ ์๋ ์ด๊ณณ์ ์ด๋์ด ๋ง์ ์ฌํ์๋ค์๊ฒ ์ต๊ณ ์ ์ฅ์์ ๋๋ค. ๋ํ, ํต์ ์ผ์ด๋ธ์นด๋ฅผ ํ๋ฉด ๋จํด์์ ์ ๊ฒฝ์ ํ๋์ ๋ณผ ์ ์์ด ํผ์กํ ๋์ ์ํ์์ ๋ฒ์ด๋๊ธฐ ๋ฑ ์ข์ ์ฝ์ค์ ๋๋ค. ์์๋ก๋ ํต์ ์๋ด์์ ์ ๊ทผ์ด ์ฉ์ดํ ๊ฒ์คํธํ์ฐ์ค๋ ํ์ ์ ๊ณ ๋ คํ ์ ์์ต๋๋ค. ๊ฐ์ง๊ณ ์๋ ํ๊ธฐ ์๋ฃ๋ฅผ ์ฐธ๊ณ ํ๋ฉด ๊ฐ๊ฒฉ ๋๋น ํ๋ฅญํ ์๋น์ค๋ฅผ ์ ๊ณตํ๋ ๊ณณ์ผ๋ก ๋ง์ด ์ถ์ฒ๋ฉ๋๋ค. ์ ๋ต๋ง ์ ์ธ์ฐ๋ฉด ์ข์ ์ถ์ต์ ๋ง๋ค ์ ์๋ ๊ณณ์ด ๋ง์ต๋๋ค.
\n๊ผญ ํ์ธํด์ผ ํ ํ์ ์ฒดํฌ๋ฆฌ์คํธ
\n์ฌํ์ ์ค๋นํ๋ ๊ณผ์ ์์ ๋ช ๊ฐ์ง ํญ๋ชฉ์ ๋ฐ๋์ ํ์ธํด์ผ ํฉ๋๋ค. ์ฒซ์งธ, ๋ ์จ์ ๋๋ค. ํต์์ ํด์๊ฐ์ ์์นํด ๋ ์จ ๋ณํ๊ฐ ์ฆ์ผ๋ฏ๋ก ํญ์ ์ต์ ์ ๋ณด๋ฅผ ํ์ธํ์ธ์. ๋์งธ, ๊ตํต์๋จ์ ๋๋ค. ํต์ ์๋ด๋ ๋๋ถ๋ถ ๋๋ณด๋ก ๋ค๋ ์ ์์ง๋ง, ๋จผ ๊ฑฐ๋ฆฌ๋ฅผ ์ด๋ํ ๋๋ ๋์ค๊ตํต์ด๋ ๋ ํฐ์นด๋ฅผ ๊ณ ๋ คํด์ผ ํฉ๋๋ค. ์ ์งธ, ์ ์ฅ ์๊ฐ๊ณผ ์๊ธ์ ๋ฏธ๋ฆฌ ํ์ธํ๋ ๊ฒ๋ ์ค์ํฉ๋๋ค. ํนํ ์ธ๊ธฐ ์๋ ๊ณณ์ ์ฌ์ ์์ฝ์ด ํ์ํ ์ ์์ต๋๋ค. ๋ท์งธ, ์์ ์์ฝ์ ๋๋ค. ์ฌ๋ฆ๊ณผ ๊ฐ์ ๊ฐ์ ํผํฌ ์์ฆ์๋ ๋น ๋ฅด๊ฒ ๋งค์ง๋๋ฏ๋ก ๋ฏธ๋ฆฌ ์์ฝํ๋ ๊ฒ์ ์ถ์ฒํฉ๋๋ค. ๋ง์ง๋ง์ผ๋ก, ํน์ฐ๋ฌผ์ด๋ ๊ธฐ๋ ํ ๊ตฌ์ ๊ณํ๋ ์ฌ์ ์ ์ธ์๋๋ฉด ์ข์ต๋๋ค.
\n\n\n \n\n
๋ค์ด๋ฒ ์ธํ๋ฃจ์ธ์ [๋ค์ด๋ฒ ์ธํ๋ฃจ์ธ์] ํฉ๊ธ์ฐํด! ํต์ ๊ฐ๋ณผ๋งํ๊ณณ ์ฌํ์ฝ์ค \nํ์ฅ์์ ํ์ธํ ๋ฐ์๊ณผ ํ๊ธฐ
\nํต์์ ๋ฐฉ๋ฌธํ ๋ง์ ์ฌ๋๋ค์ด ๋ช ์ ๋ฐฉ๋ฌธ ํ๊ธฐ๋ฅผ ๋จ๊น๋๋ค. ํนํ ๋ฏธ์ ๊ด์ด๋ ์ผ์ด๋ธ์นด์ ๊ฐ์ ์ ๋ช ๋ช ์๋ ๋๋ถ๋ถ ๊ธ์ ์ ์ธ ํ๊ฐ๋ฅผ ๋ฐ์์ต๋๋ค. ํ์ง๋ง ์์๋ณด๋ค ๋ถ๋น๋ ์ฅ์์์๋ ๋ถํธํจ์ ๋๋ ์ ์๋ค๋ ์๊ฒฌ๋ ์์ต๋๋ค. ์์ ์ญ์ ์ฒญ๊ฒฐ๋๋ ์๋น์ค์ ๋ฐ๋ผ ํ๊ฐ๊ฐ ๊ฐ๋ฆด ์ ์๋๋ฐ, ์ฃผ๋ก ํต์์ ์ ํต์ ์ธ ๊ฒ์คํธํ์ฐ์ค๋ค์ด ์ข์ ํ์ ๋ฐ๊ณ ์์ต๋๋ค. ์์ฐ์ ์ ์ ํ ์กฐ์ ํ๋ฉด์๋ ๋ง์กฑ์ค๋ฌ์ด ๊ฒฝํ์ ์ป๊ธฐ ์ํด์๋ ์ฌ์ ์กฐ์ฌ์ ๊ณํ์ด ์ค์ํฉ๋๋ค.
\n์์นซ ๋์น๊ธฐ ์ฌ์ด ๋ถ๋ถ๋ค
\n์ฒซ ๋ฒ์งธ ์ค์๋ ์ผ์ ์ ๊ณผ๋ํ ์์ฌ์ ๋๋ค. ๋ง์ ๋ช ์๋ฅผ ํ๋ฃจ ์์ ๋ชจ๋ ๋ณด๋ ค๋ ์๋๋ ์คํ๋ ค ๋ถํ์ํ ํผ๋ก๊ฐ์ ์ค ์ ์์ต๋๋ค. ๋ ๋ฒ์งธ๋ ํ๊ธ ์ค๋น์ธ๋ฐ, ์ผ๋ถ ์๊ฐ์์๋ ์นด๋ ๊ฒฐ์ ๊ฐ ์ด๋ ค์ธ ์ ์์ต๋๋ค. ์ธ ๋ฒ์งธ๋ ์นด๋ฉ๋ผ ๋ฐฐํฐ๋ฆฌ์ ๊ฐ์ ์ฅ๋น ์ค๋น์ ๋๋ค. ๋ง์ง๋ง์ผ๋ก, ํผํฌ๋์ด๋ ํด์์ ์ํ ์ค๋น ์์ด ๋์ค๋ ๊ฒ๋ ์ค์ ์ค ํ๋์ ๋๋ค. ์ด์ฒ๋ผ ์์ ์ค์๋ค์ด ์ฌํ์ ์ง์ ์ข์ฐํ ์ ์์ผ๋ ์ฃผ์๊ฐ ํ์ํฉ๋๋ค.
\n๋๋ด์ฃผ๋ ์ฌํ ํ 4๊ฐ์ง
\n์ด๋ณด ์ฌํ์๋ ๋ฏธ๋ฆฌ ์ฃผ์ ์ฝ์ค๋ฅผ ์๊ณ ๊ฐ๋ค๋ฉด ์๊ฐ์ ์ ์ฝํ ์ ์์ต๋๋ค. ๋ง์ฝ ์๊ฐ ์์ฐ์ด ๋ถ์กฑํ๋ค๋ฉด ๋ฌด๋ฃ ๊ด๋ ๊ฐ๋ฅํ ๊ด๊ด์ง๋ถํฐ ๋ฐฉ๋ฌธํ๋ ๊ฒ์ ์ถ์ฒํฉ๋๋ค. ๊ผญ ๊ฐ๋ด์ผ ํ ๊ณณ์ ์ฐ์ ์์๋ก ์ ๋ฆฌํฉ๋๋ค. ๋ ๋ค๋ฅธ ํ์ ํ์ง ์ฃผ๋ฏผ์ ์ถ์ฒ์ด๋ ํ๊ธฐ์์ ์์ ํํธ๋ฅผ ์ฐพ๋ ๊ฒ์ ๋๋ค. ๊ฐ๊ฒฉ์ด ์ ๋ ดํ๊ฑฐ๋ ๋ค์ ๋ฐฉ๋ฌธ ์ ๋ ๋ง์ ๋์์ ์ค ์ ์์ต๋๋ค. ๋ง์ง๋ง์ผ๋ก, ํผํฌ ์์ฆ์๋ ์์ฝ์ ํ์๋ก, ์ฌ์ ๋กญ๊ฒ ์ค๋นํ์ธ์.
\n์ด์ ๋ฐ๋ก ์คํํ ์๊ฐ
\n์ด์ ์ค๋น๋ ๋๋ฌ์ต๋๋ค. ํต์์ ๋ค์ํ ๋งค๋ ฅ์ ๋๋ผ๊ธฐ ์ํด ์ฒซ ๋ฐ์ ๋ด๋๋ ๋ณด์ธ์. ์ง๊ธ ๋ฐ๋ก ๋ ์จ์ ์ฃผ์ ๋ช ์์ ์ ์ฅ ์๊ฐ์ ํ์ธํ๊ณ , ๋ฐ๋์ ์ฆ๊ธธ ์ ์๋ ํ๋ฃจ ์ฝ์ค๋ฅผ ์ง๋ณด์ธ์. ํนํ ์ค๋ ๋ฐค์ด๋ ์ฃผ๋ง์ ํ์ฉํ๊ธฐ ์ข์ ๊ณํ์ ๊ณง์ฅ ์ธ์ฐ์ค ์ ์์ต๋๋ค.
\n๊ตญ๋ด ๋ค๋ฅธ ๋ช ์ ์ ๋ณด์ ์์ ๊ด๋ จ ํ์ด ๋ด๊ธด ๊ธ๋ ์์ผ๋ ํ์ธํด๋ณด์ธ์. ๋๋ ์ฃผ๋ณ์ ์จ์ ์ฌ ์ฌํ ๊ฐ์ด๋๋ ๋จ๊ธฐ ์ฒดํ ์ถ์ฒ ๊ธ๋ ๋ณด์ค ์ ์์ต๋๋ค.
\n์ด ๊ธ์ ๊ฐ์ธ์ ์ธ ๊ฒฝํ๊ณผ ์ ๋ณด ์ ๋ฆฌ๋ฅผ ๋ฐํ์ผ๋ก ์์ฑ๋์์ต๋๋ค. ์ํฉ์ ๋ฐ๋ผ ๊ฒฐ๊ณผ๊ฐ ๋ค๋ฅผ ์ ์์ผ๋ ๋ณธ์ธ์๊ฒ ๋ง๊ฒ ์ฐธ๊ณ ํ์๊ธฐ ๋ฐ๋๋๋ค.
", + "labels": [ + "ํต์", + "๊ตญ๋ด ์ฌํ", + "ํ๋ฃจ ์ฝ์ค", + "๋ช ์ ์ถ์ฒ", + "์์ ์ ๋ณด", + "์ฌํ ํ", + "์ฒดํฌ๋ฆฌ์คํธ", + "์ฌํ ๊ณํ", + "ํ๊ตญ ๊ด๊ด", + "์ฌ๋ฆ ์ฌํ" + ], + "meta_description": "ํต์์์ ํจ์จ์ ์ผ๋ก ์ฆ๊ธธ ์ ์๋ ํ๋ฃจ ์ฝ์ค๋ฅผ ์ ์ํฉ๋๋ค. ๊ผญ ๊ฐ๋ด์ผ ํ ๋ช ์์ ์์ ์ ๋ณด๋ก ์์ฐฌ ์ฌํ์ ๊ณํํด ๋ณด์ธ์.", + "faq": [ + { + "q": "ํต์ ์ผ์ด๋ธ์นด๋ ์ด๋์ ํ๋์?", + "a": "ํต์ ๋ฏธ๋ฅต์ฐ ์ ๊ตฌ์์ ์ผ์ด๋ธ์นด๋ฅผ ํ์นํ ์ ์์ต๋๋ค." + }, + { + "q": "ํต์์์ ๋ง๋ณผ ์ ์๋ ๋ํ ์์์ ๋ฌด์์ธ๊ฐ์?", + "a": "ํต์์์๋ ํต์ ์ค์ง์ดํ์ ํด๋ฌผํ์ด ์ ๋ช ํฉ๋๋ค." + }, + { + "q": "ํต์์ ๋ ์จ๋ ์ด๋ป๊ฒ ํ์ธํ๋์?", + "a": "๊ธฐ์์ฒญ ์น์ฌ์ดํธ์์ ์ต์ ํต์ ๋ ์จ ์ ๋ณด๋ฅผ ํ์ธํ ์ ์์ต๋๋ค." + } + ], + "sources": [ + { + "title": "ํต์์์ฒญ ๊ด๊ด์ ๋ณด", + "url": "https://tongyeong.go.kr" + }, + { + "title": "ํ๊ตญ๊ด๊ด๊ณต์ฌ ๊ณต์์ฌ์ดํธ", + "url": "https://kto.visitkorea.or.kr" + } + ], + "keyword": "ํต์ ํ๋ฃจ ์ฝ์ค ์์ง ๋ช ์์ ์์ ์ค์ ํ๊ธฐ", + "article_type": "travel_guide", + "risk_level": "low", + "tags": [ + "ํต์", + "๊ตญ๋ด ์ฌํ", + "ํ๋ฃจ ์ฝ์ค", + "๋ช ์ ์ถ์ฒ", + "์์ ์ ๋ณด", + "์ฌํ ํ", + "์ฒดํฌ๋ฆฌ์คํธ", + "์ฌํ ๊ณํ", + "ํ๊ตญ ๊ด๊ด", + "์ฌ๋ฆ ์ฌํ" + ], + "word_count": 1770, + "content_preview": "ํน์ ํต์์ ํ๋ฃจ ๋ง์ ์ด๋ป๊ฒ ์์ฐจ๊ฒ ๋์๋ณผ์ง ๊ณ ๋ฏผํ๊ณ ์๋์? ๋ฌธํ์ ์์ฐ์ด ์ด์ฐ๋ฌ์ง ์ด ๋์๋ฅผ ์งง์ ์๊ฐ ๋ด์ ์ ๋๋ก ์ฆ๊ธฐ๊ธฐ๋ ์ฝ์ง ์์ง๋ง, ์ ๋ต๋ง ์ ์ธ์ด๋ค๋ฉด ์ถฉ๋ถํ ๊ฐ๋ฅํฉ๋๋ค. ํต์์ ๊ทธ ์์ฒด๋ก ์๋ฆ๋ค์ด ํญ๊ตฌ ๋์์ ๋๋ค. ๋งค๋ ์๋ง์ ๊ด๊ด๊ฐ๋ค์ด ์ด๊ณณ์ ์ฐพ์ง๋ง, ํผ์กํ ์ผ์ ์์์ ์ฒดํํ ์ ์๋ ํน๋ณํ ์๊ฐ๋ค์ ๋์น๊ธฐ๋ ํฉ๋๋ค. ์ด ๊ธ์์๋ ํต์์์...", + "evidence": { + "used": false, + "facts": 0, + "verified": 0 + }, + "experience_used": false, + "fact_check": { + "checked": true, + "verdict": "warn", + "issues_found": 2, + "fixes_applied": 2, + "issues": [ + { + "problem": "์กด์ฌํ์ง ์๋ ์ํ๋ช ์ผ ๊ฐ๋ฅ์ฑ", + "fixed": true + }, + { + "problem": "๊ทผ๊ฑฐ ์๋ฃ ์๋ ์ฒดํ ์ฃผ์ฅ", + "fixed": true + } + ] + }, + "images_inserted": 3, + "status": "pending", + "_post_id": "2026-07-22_ํต์ํ๋ฃจ์ฝ์ค์์ง๋ช ์์์์์ค์ ํ๊ธฐ_6187372c" +} \ No newline at end of file diff --git "a/blog-automation/logs/post_drafts/2026-07-22_\355\217\264\353\223\2348_c1b89783.json" "b/blog-automation/logs/post_drafts/2026-07-22_\355\217\264\353\223\2348_c1b89783.json" new file mode 100644 index 0000000000000..675a3f783bd83 --- /dev/null +++ "b/blog-automation/logs/post_drafts/2026-07-22_\355\217\264\353\223\2348_c1b89783.json" @@ -0,0 +1,87 @@ +{ + "title": "ํด๋8, ์ค๋งํธํฐ ์์ฅ์ ์๋ก์ด ์งํ๊ฐ ๋๋ค", + "content": "๊ฐ์๊ธฐ ์๋ก์ด ์ค๋งํธํฐ์ ๊ตฌ๋งคํ ์๊ฐ์ด ๋ค ๋, ์ต์ ๊ธฐ์ ์ด ์ ์ฉ๋ ํด๋8์ ๋ง์ ์ฌ๋๋ค์๊ฒ ์ ํ์ง๋ก ๋ ์ค๋ฆ ๋๋ค. ํ์ง๋ง ์ค์ ๋ก ์ผ๋ง๋ ๊ฐ์น๊ฐ ์๋์ง ์๋ฌธ์ ๊ฐ๊ฒ ๋์ฃ . ๊ฐ๊ฒฉ๋งํผ ์ฑ๋ฅ์ด ๋ฐ๋ผ์ฃผ๋์ง, ์ฌ์ฉ์๊ฐ ์ด๋ค ์ ์ ๊ฐ์ฅ ๋ค๋ฅด๊ฒ ๋๋ผ๋์ง ์ด์ผ๊ธฐํด๋ณผ๊น ํฉ๋๋ค.
\n\n \n\n
ํด๋8, ์ค๋งํธํฐ ์์ฅ์ ์๋ก์ด ์งํ๊ฐ ๋๋ค \n๐ก ํต์ฌ ํฌ์ธํธ: ํด๋8์ด ์ค๋งํธํฐ ์์ฅ์์ ์ ๋ ํํ์ ํ์ ์ฑ์ ์ ๊ณตํฉ๋๋ค. ์ด๋์ฑ๊ณผ ๋ํ๋ฉด์ ์ฅ์ ์ ๋์์ ๋๋ ์ ์์ต๋๋ค.ํด๋8์ ์๋ฏธ์ ์ค์์ฑ
์ต๊ทผ ํด๋ํ ์ค๋งํธํฐ์ ๋จ์ ํธ๋ ๋๋ฅผ ๋์ด ์ค์ํ ์ญํ ์ ํ๊ณ ์์ต๋๋ค. ์ค๋งํธํฐ ๋ด์ ๊ณ ๊ธ์ค๋ฌ์ด ๋์คํ๋ ์ด์ ๋ค์ํ ๊ธฐ๋ฅ์ฑ์ ๋์ ๊ฐ๊ฒฉ๋์๋ ๋ถ๊ตฌํ๊ณ ๋ง์ ์ฌ์ฉ์๋ฅผ ๋์ด๋ค์ด๊ณ ์์ต๋๋ค. ์ ๋ฌธ๊ฐ๋ค์ ์ด๋ฌํ ์ ํ์ด ์์ฅ์ ์๋ก์ด ์ฌ์ค์ ์ ๋ฌํ๋ค๊ณ ํ๊ฐํฉ๋๋ค.
์ฌ์ฉ์๋ค์๊ฒ ๊ฐ์ฅ ์ค์ํ ์์ ์ค ํ๋๋ ์ค์ฉ์ฑ์ ๋๋ค. ํด๋8์ ํด๋์ฑ์ ๋์ด๋ฉด์๋, ํ์ํ ๋ ๋ํ๋ฉด์ ํ์ฉํ ์ ์์ด ์ฌ๋ฌ ๋ฐฉ๋ฉด์์ ์ด์ ์ด ์์ต๋๋ค. ์ด๋ ์ค ํ์๋ ์์ ์ฝํ ์ธ ๋ฅผ ์ฆ๊ธฐ๋ ์ด๋ค์๊ฒ ํนํ ์ ์ฉํฉ๋๋ค.
๊ทธ๋ผ์๋ ๋ถ๊ตฌํ๊ณ , ์ด๊ธฐ ๋ฒ์ ์์์ ๋ด๊ตฌ์ฑ ๋ฌธ์ ๊ฐ ์ง์ ๋ ๋ฐ ์์ต๋๋ค. ํ์ง๋ง ์ดํ ๊ฐ์ ์์ ์ ํตํด ๊ฐ๋์ ์ฌ์ฉ์ ๊ฒฝํ์ด ์ง์์ ์ผ๋ก ๋์์ก์ต๋๋ค. ์ด ์ ์ ๊ตฌ๋งค๋ฅผ ๊ณ ๋ คํ๋ ์ด๋ค์๊ฒ ๊ธ์ ์ ์ธ ์์๋ก ์์ฉํฉ๋๋ค.
\n\n \n\n
์ผ์ธ ์ฌ์ํ ๋ณด์ ์ก์ ๋ณดํธ ํ๋ฆ ๊ฐค๋ญ์Z ํด๋5 ์ธ๋ถ (๊ฐํ์ ๋ฆฌ), 1๋งค์ : ๋งํฌ์ต \nํด๋8์ ์์๋ณด๋ ํต์ฌ ์์
๋จผ์ ํด๋8์ ์ต๋ ์ฅ์ ์ ๊ทธ ํ์ ์ ์ธ ํ๋ฉด ๊ธฐ์ ์ ๋๋ค. ์ผ๋ฐ ์ค๋งํธํฐ๊ณผ ๋ฌ๋ฆฌ ํ๋ฉด์ ์ ๊ฑฐ๋ ํผ ์ ์์ด ์ฌ์ฉ์์ ํ์์ ๋ง์ถฐ ํํ๋ฅผ ๋ณํํ ์ ์์ต๋๋ค. ์ด๋ฌํ ํน์ฑ์ '์ค๋งํธํฐ์ ํ์ฉํ๋ ๋ฐฉ์์ ๋ณํ'๋ผ ํํ๋๊ธฐ๋ ํฉ๋๋ค.
๊ธฐ์กด์ ๋จ๋ง๊ธฐ ๋๋น ๋์ ํ๋ฉด์ ์ ๊ณตํ๋ ํด๋8์ ๋์์ ๋ฉํฐํ์คํน์ ์ ๋ฆฌํ ์กฐ๊ฑด์ ์ ๊ณตํฉ๋๋ค. ๋ณดํ ์๋ฅ๋ฅผ ์์ฑํ๋ฉด์ ์์ ํ์๋ฅผ ํ๋ ๋ฑ ๋ค์ํ ์์ ์ ๋์ ์ฒ๋ฆฌํ ์ ์๋ ์ฅ์ ์ด ๋๋ณด์ ๋๋ค. ๋๋ถ์ด ์ต๊ทผ ๋ชจ๋ธ์ ํ๋ฉด ์ ํ ์์ ๋ถ๋๋ฌ์๊ณผ ์ดํ๋ฆฌ์ผ์ด์ ์ ์ต์ ํ๊ฐ ์ด๋ฃจ์ด์ ธ ์ฌ์ฉ์ ๊ฒฝํ์ด ํ์ธต ๋ ๊ฐ์ ๋์์ต๋๋ค.
๊ณต์ ๋ฐํ๊ฐ ์์ ๊ฒฝ์ฐ, ํ์ง ๊ธฐ์ ์ด ์ ์ฉ๋์ด ์๋ก์ด ํ์ง ๊ธฐ์ ์ด ์ ์ฉ๋์ด ๋ด๊ตฌ์ฑ์ด ๊ฐ์กฐ๋๊ณ ์์ต๋๋ค. ์ด ๋ถ๋ถ์ ์ด์ ๋ชจ๋ธ์์ ์์ฃผ ์ง์ ๋๋ ์ฝ์ ์ ๋ณด์ํ๊ณ ์ ํ ๋ ธ๋ ฅ์ด ๋๋ณด์ ๋๋ค.
๊ตฌ๋งค ์ ์ฒดํฌํด์ผ ํ ์ฌํญ
๊ตฌ๋งค ์ ๋ฐ๋์ ๊ณ ๋ คํด์ผ ํ ์์๋ค์ด ์์ต๋๋ค. ์ฒซ์งธ๋ก, ๋น์ฉ์ ๋๋ค. ํด๋8์ ๋๊ฐ ๊ณ ๊ฐ์ ์ ํ์ ์ํ๋ฉฐ, ์ด๊ธฐ ๋ชจ๋ธ ํฌ์ ๋น์ฉ์ ํ์ํ ๋งํผ์ ๊ฐ์น๋ฅผ ๋๋ ์ ์์์ง ๊ณ ๋ฏผํด ๋ณผ ํ์๊ฐ ์์ต๋๋ค.
๋์งธ๋ก, ์ฉ๋์ ๋๋ค. ํด๋น ์ ํ์ด ๋ณธ์ธ์ ์ฌ์ฉ ํจํด์ ์ ํฉํ์ง ํ๋จํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. ๋ํ๋ฉด์ด ํ์ํ ์ฌ์ฉ์์ธ์ง ์๋๋ฉด ๊ฐ๋จํ๊ณ ํด๋์ฑ ๋์ ์ ํ์ ์ํ์๋์ง ์ ํ ํ ์คํธ๊ฐ ํ์ํ ๊ฒ์ ๋๋ค.
์ ์งธ, ๋ด๊ตฌ์ฑ ๋ฌธ์ ์ ๋ํ ์ดํด๋ ํ์ํฉ๋๋ค. ํด๋ ๋ฐฉ์์ ํน์ฑ์ ์ง์ ์ฌ์ฉ ์ ์ค๋ฅ๊ฐ ๋ฐ์ํ ๊ฐ๋ฅ์ฑ์ ์ผ๋์ ๋๊ณ ๋ณด์ฆ ๋ฐ ์ ํํฐ์๋น์ค๋ฅผ ๊ฒํ ํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
\n\n \n\n
์๋ฏธ์ ๋ฌด์๋ฏธ | ๋ฉ๋ฅผ๋ก ๋ฝ๋ - ๊ต๋ณด๋ฌธ๊ณ \n์ฌ์ฉ์ ๊ฒฝํ์ ๋ฐํ์ผ๋ก ํ ๋น๊ต
์ด์ฉ์๋ค์ ์๊ฒฌ์ ์์งํ๋ฉด ํด๋8์ ์ฅ์ ๊ณผ ๋จ์ ์ ๋ณด๋ค ๋๋ ทํ๊ฒ ์ ์ ์์ต๋๋ค. ์ฅ์ ์ผ๋ก๋, ์ ํ ๊ธฐ์ ์ ๋ํ ๋์ ๋ง์กฑ๋์ ๋ํ๋ฉด์ ์ค์ฉ์ฑ์ ๋๋ค. ๊ทธ๋ฌ๋, ๋ง์ ์ฌ์ฉ์๋ ๊ฐ๊ฒฉ์ ๋ํ ๋ถ๋ด์ ํ ๋กํ๊ธฐ๋ ํฉ๋๋ค.
์ผ๋ถ ์ฌ์ฉ์๋ค์ ์ ์ ๊ธฐ๊ฐ ๋์ ๋ฏ์ ์ฌ์ฉ๊ฐ๊ณผ ์ฐ๋ฐ์ ์ธ ํ๋ฉด ์ ํ์ผ๋ก ์ธํ ๋ถํธํจ์ ๋ํด ์ธ๊ธํ๊ธฐ๋ ํ์ต๋๋ค. ํ์ง๋ง ์๊ฐ์ด ์ง๋๋ฉด์ ์ฌ์ฉ ๋ฐฉ์์ ์ ์ํ๋ฉด ํฌ๊ฒ ๋ฌธ์ ๋์ง ์๋๋ค๋ ์๊ฒฌ๋ ๋ง์ต๋๋ค.
์ ๋ฐ์ ์ผ๋ก ํ์ ์ ์ธ ๊ธฐ๋ฅ์ด ์ ๋ฐ ์ด์์ ์ฌ์ฉ์์๊ฒ ๊ธ์ ์ ์ธ ์ธ์์ ์ฃผ๊ณ ์์ผ๋ฉฐ, ๋ค์ํ ์ฌ์ฉ ํ๊ธฐ์์ ํด๋8 ์ฌ์ฉ ์ ๊ฒฝํํ ์ ์๋ ์๋ก์ด ๊ฐ๋ฅ์ฑ๋ค์ ๊ณต์ ํ๊ณ ์์ต๋๋ค.
๋ง์ ์ฌ์ฉ์๊ฐ ๋งํ๋ ํํ ์ค์์ ํผํ๋ ๋ฒ
ํด๋8์ ์ฒ์ ์ฌ์ฉํ๋ฉด์ ์ด๋ณด ์ฌ์ฉ์๊ฐ ์ฃผ์ํด์ผ ํ ๋ถ๋ถ๋ค์ด ๋ช ๊ฐ์ง ์์ต๋๋ค.
๋จผ์ ,ํด๋ ๋ถ๋ถ์ ์ฌ์ฉ ์ค ๋ถ์ฃผ์๋ก ์ธํ ์์์ด ๋ฐ์ํ ์ ์์ต๋๋ค. ์ด ์ ์ ๋ฐฉ์งํ๊ธฐ ์ํด ์์ ์ ์ธ ๋ณดํธ ์ผ์ด์ค ์ฌ์ฉ์ ๊ถ์ฅํฉ๋๋ค.
๋ํ, ํ๋ฉด์ ์ ๊ฑฐ๋ ํผ์น ๋ ์ง๋์น ํ์ ๊ฐํ๋ฉด ๋ฌธ์ ๊ฐ ์๊ธธ ์ ์์ต๋๋ค. ์ค๋ฌด์คํ๊ฒ ์ ๊ณ ํด๋ ์ต๊ด์ด ํ์ํฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ , ํ๋ฉด ์นด๋ฉ๋ผ ์์น ํ์ธ์ด ํ์ํฉ๋๋ค. ์ ํ ์ํ์์ ๋ณธ์ ์๋๊ฒ ์นด๋ฉ๋ผ๊ฐ ๊ฐ๋ ค์ง๊ฑฐ๋ ๋งค๋ฒ ์์น๋ฅผ ์กฐ์ ํด์ผ ํ๋ ์ ์์ ๋ถํธํจ์ ํธ์ํ๋ ๊ฒฝ์ฐ๋ ์์ต๋๋ค.
์ ๋ฉด์ ๋ด ์นด๋ฉ๋ผ ๋ฐ ์คํผ์ปค ์์น๋ฅผ ์์งํ์ง ์๊ณ ํตํ ์ค ์ค์๋ก ์คํผ์ปค ์ํ๋ฅผ ๋ณ๊ฒฝํด๋ฒ๋ฆฌ๋ ์ค์๋ ์ฆ์ต๋๋ค. ๋ช ํํ ์์น ํ์ ์ด ํ์ํฉ๋๋ค.
์ถ์ฒํ๋ ํ์ฉ๋ฒ๊ณผ ์ฌ๋ก
์ฌ๋ฌ ์ํฉ์์ ํด๋8์ ํจ๊ณผ์ ์ผ๋ก ํ์ฉํ ์ ์๋ ๋ฐฉ๋ฒ์ ์๊ฐํ๊ณ ์ ํฉ๋๋ค. ๋จผ์ , ๋ํ๋ฉด์ผ๋ก ๋ฉ๋ชจ ์์ฑ์ด๋ ๋ฏธ๋์ด ์์ฒญ์ ์ฆ๊ธฐ๊ณ ์ ํ๋ค๋ฉด ํด๋8์ด ์ ํฉํฉ๋๋ค.
์๊ฐ์ด ๋ถ์กฑํ ์ง์ฅ์ธ์ด๋ผ๋ฉด, ์ ํ ์ํ์์ ๋น ๋ฅด๊ฒ ๋ฉ์์ง ํ์ธํ๊ฑฐ๋ ์๋ฆผ์ ์ฒดํฌํ ์ ์์ด ํธ๋ฆฌํฉ๋๋ค.
๋น์ฉ ์ ์ฝ์ ๊ด์ฌ์ด ์๋ ์ฌ์ฉ์๋ ํด๋8์ ํด์ ํ๋์ ๋๋ฐ์ด์ค๋ก ์ฌ๋ฌ ์์ ์ ์ฒ๋ฆฌํ ์ ์๊ธฐ์ ์ฌ๋ฌ ๊ธฐ๊ธฐ๋ฅผ ๊ตฌ๋งคํ ํ์๊ฐ ์ค์ด๋ญ๋๋ค. ์ด๋ฌํ ์ ์์ ๋น์ฉ ๋๋น ๋์ ๋ง์กฑ๋๋ฅผ ๋๋์ผ๋ก์จ ์๋น ๊ฐ์น๋ฅผ ๋ํ ์ ์์ต๋๋ค.
๊ฒฐ๋ก ๋ฐ ์ดํ ๊ณํ
๊ฒฐ๋ก ์ ์ผ๋ก, ํด๋8์ ํนํ ๋ํ๋ฉด์ด ํ์ํ ์ฌ์ฉ์์๊ฒ ์ ํฉํ ๋ชจ๋ธ์ ๋๋ค. ๋์ ๊ฐ๊ฒฉ๋์๋ ๋ถ๊ตฌํ๊ณ ํ์ ์ ์ธ ์์๊ฐ ์ถฉ๋ถํ ๊ฐ์น๋ฅผ ์ ๊ณตํฉ๋๋ค. ์ฌ๋ฌ ์ฌ์ฉ์ ๊ฒฝํ์ ์ฐธ๊ณ ํ์ฌ ์ฅ๋จ์ ์ ํ์ ํ ํ ๊ตฌ๋งค ๊ฒฐ์ ์ ๋ด๋ฆฌ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.
๋ง์ฝ ๊ตฌ๋งค ๊ฒฐ์ ์ ๋ด๋ฆฌ์ ๋ค๋ฉด, ์ฒซ ํ๋์ผ๋ก ๊ฐ๊น์ด ์คํ ์ด์์ ์ง์ ๋ง์ ธ๋ณด๊ณ ํผ ํฉํฐ๋ฅผ ์ฒดํํด ๋ณด์๊ธธ ๊ถ์ฅํฉ๋๋ค. ๋ํ, ๊ด๋ จ ๋ณดํ ์ํ์ด๋ ๋ณด์ฆ ์๋น์ค๋ ํจ๊ป ์์๋ณด์๋ฉด ์ข๊ฒ ์ต๋๋ค.
์ด ๊ธ์ ๊ฐ์ธ์ ์ธ ๊ฒฝํ๊ณผ ์ ๋ณด ์ ๋ฆฌ๋ฅผ ๋ฐํ์ผ๋ก ์์ฑ๋์์ต๋๋ค. ์ํฉ์ ๋ฐ๋ผ ๊ฒฐ๊ณผ๊ฐ ๋ค๋ฅผ ์ ์์ผ๋ ๋ณธ์ธ์๊ฒ ๋ง๊ฒ ์ฐธ๊ณ ํ์๊ธฐ ๋ฐ๋๋๋ค.
", + "labels": [ + "์ค๋งํธํฐ", + "ํ ํฌ๋ฆฌ๋ทฐ", + "ํด๋ํฐ", + "์ต์ ๊ธฐ์ ", + "ํ์ ์ ํ", + "๊ฐ์ฑ๋น๋ถ์", + "์ฌ์ฉ์๊ฒฝํ", + "๋ชจ๋ฐ์ผํ ํฌ", + "๋น๊ต๋ฆฌ๋ทฐ", + "ํธ๋ ๋" + ], + "meta_description": "ํด๋8, ์ค๋งํธํฐ ํ์ ์ ์ด๋๋ ์๋ก์ด ์งํ. ๋ํ๋ฉด๊ณผ ํด๋์ฑ์ ๋์์ ๋๋ฆด ์ ์๋ ํด๋ํฐ์ ์ฅ๋จ์ ์ ๋ถ์ํฉ๋๋ค.", + "faq": [ + { + "q": "ํด๋8์ ๊ฐ์ฅ ํฐ ์ฅ์ ์ ๋ฌด์์ธ๊ฐ์?", + "a": "๋ํ๋ฉด์ ์ ๊ฑฐ๋ ํผ ์ ์์ด ์ฌ์ฉ์์ ํ์์ ๋ง์ถฐ ์์ ๋กญ๊ฒ ์ฌ์ฉ ๊ฐ๋ฅํฉ๋๋ค." + }, + { + "q": "ํด๋8์ ๊ฐ๊ฒฉ์ด ๋ถ๋ด๋๋ค๋ฉด ๋์์ด ์์๊น์?", + "a": "๋์์ผ๋ก๋ ์ค๊ณ ํ๋งค ์ ํ์ ๊ณ ๋ คํ์๊ฑฐ๋, ์ถ์ ์ดํ ์๊ฐ์ด ์ง๋ ๋ชจ๋ธ์ ํ์ํ๋ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค." + }, + { + "q": "ํด๋ํ ์ค๋งํธํฐ์ ๋ด๊ตฌ์ฑ์ ์ด๋ค๊ฐ์?", + "a": "์ต๊ทผ ๋ชจ๋ธ๋ค์ ๋ด๊ตฌ์ฑ ํฅ์์ ์ํด ๋ง์ ๊ธฐ์ ์ด ์ ๋ฐ์ดํธ๋์์ต๋๋ค. ํ์ง๋ง ์ฌ์ฉ ์ ์ฃผ์๊ฐ ํ์ํฉ๋๋ค." + } + ], + "sources": [], + "keyword": "ํด๋8", + "article_type": "analysis", + "risk_level": "medium", + "content_category": "travel", + "tags": [ + "์ค๋งํธํฐ", + "ํ ํฌ๋ฆฌ๋ทฐ", + "ํด๋ํฐ", + "์ต์ ๊ธฐ์ ", + "ํ์ ์ ํ", + "๊ฐ์ฑ๋น๋ถ์", + "์ฌ์ฉ์๊ฒฝํ", + "๋ชจ๋ฐ์ผํ ํฌ", + "๋น๊ต๋ฆฌ๋ทฐ", + "ํธ๋ ๋" + ], + "word_count": 2031, + "content_preview": "๊ฐ์๊ธฐ ์๋ก์ด ์ค๋งํธํฐ์ ๊ตฌ๋งคํ ์๊ฐ์ด ๋ค ๋, ์ต์ ๊ธฐ์ ์ด ์ ์ฉ๋ ํด๋8์ ๋ง์ ์ฌ๋๋ค์๊ฒ ์ ํ์ง๋ก ๋ ์ค๋ฆ ๋๋ค. ํ์ง๋ง ์ค์ ๋ก ์ผ๋ง๋ ๊ฐ์น๊ฐ ์๋์ง ์๋ฌธ์ ๊ฐ๊ฒ ๋์ฃ . ๊ฐ๊ฒฉ๋งํผ ์ฑ๋ฅ์ด ๋ฐ๋ผ์ฃผ๋์ง, ์ฌ์ฉ์๊ฐ ์ด๋ค ์ ์ ๊ฐ์ฅ ๋ค๋ฅด๊ฒ ๋๋ผ๋์ง ์ด์ผ๊ธฐํด๋ณผ๊น ํฉ๋๋ค.๐ก ํต์ฌ ํฌ์ธํธ: ํด๋8์ ์ค๋งํธํฐ ์์ฅ์์ ์ ๋ ํํ์ ํ์ ์ฑ์ ์ ๊ณตํฉ๋๋ค. ์ด๋์ฑ๊ณผ ๋ํ๋ฉด์ ์ฅ...", + "readability": { + "ok": true, + "avgSentenceLen": 35.0, + "longSentenceRatio": 0.0, + "jargonHits": 0, + "jargonTerms": [], + "issues": [] + }, + "evidence": { + "used": false, + "facts": 0, + "verified": 0 + }, + "experience_used": false, + "fact_check": { + "checked": true, + "verdict": "warn", + "issues_found": 3, + "fixes_applied": 3, + "issues": [ + { + "problem": "ํ์ฌ ์ถ์์ฌ๋ถ ๋ฏธํ์ธ", + "fixed": true + }, + { + "problem": "์ถ์ฒ ๋ฏธํ์ธ ์ฃผ์ฅ", + "fixed": true + }, + { + "problem": "์ผ๋ฐํ๋ ์ฃผ์ฅ", + "fixed": true + } + ] + }, + "images_inserted": 3, + "status": "pending", + "_post_id": "2026-07-22_ํด๋8_c1b89783" +} \ No newline at end of file diff --git a/blog-automation/logs/post_registry.json b/blog-automation/logs/post_registry.json new file mode 100644 index 0000000000000..76987a98a4d47 --- /dev/null +++ b/blog-automation/logs/post_registry.json @@ -0,0 +1,9142 @@ +[ + { + "post_id": "2026-07-22_์๋ฌ๋ฌํ์จ๊ธ๋ฑ๋ฝ์์ธ๊ณผ๊ฐ์ธํฌ์์๋์๋ฒ_bb4dd789", + "keyword": "์๋ฌ๋ฌ ํ์จ ๊ธ๋ฑ๋ฝ ์์ธ๊ณผ ๊ฐ์ธํฌ์์ ๋์๋ฒ", + "title": "์๋ฌ๋ฌ ํ์จ ๊ธ๋ฑ๋ฝ์ ์ด์ ์ ๊ฐ์ธํฌ์์ ๋์ ๋ฐฉ์", + "status": "pending", + "source": "auto", + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "blogUrl": "", + "errorMessage": null, + "createdAt": "2026-07-22T23:15:57.417197", + "publishedAt": null, + "lastAttemptAt": "2026-07-22T23:15:57.417197", + "attempts": 1, + "runNumber": 216, + "wordCount": 1553, + "faqCount": 2, + "category": "์ผ๋ฐ", + "labels": [ + "ํ์จ", + "๊ธ์ต ํฌ์", + "ํ์ํ ๊ด๋ฆฌ", + "๊ฐ์ธํฌ์", + "ํด์ธํฌ์", + "ํ๋ณ๋", + "ํ์จ ๋์" + ], + "metaDescription": "์๋ฌ๋ฌ ํ์จ ๊ธ๋ฑ๋ฝ ์์์ ๊ฐ์ธํฌ์์๊ฐ ๊ณ ๋ คํด์ผ ํ ๋์ ๋ฐฉ์์ ์ ์ํฉ๋๋ค. ์ด ๊ธ์ ํ์จ ๊ธ๋ฑ๋ฝ์ ์์ธ์ ๋ถ์ํ๊ณ ์ ์คํ ํฌ์ ์ ๋ต์ ์๊ฐํฉ๋๋ค.", + "contentPreview": "์ต๊ทผ ๋ช ๋ฌ ๋์ ์๋ฌ๋ฌ ํ์จ์ด ๊ธ๊ฒฉํ๊ฒ ๋ณ๋ํ๊ณ ์์ต๋๋ค. ์ด๋ฐ ๋ณ๋์ ์์ถ์ ๊ธฐ์ ๋ฟ๋ง ์๋๋ผ ๊ฐ์ธํฌ์์์๊ฒ๋ ์๋นํ ์ํฅ์ ๋ฏธ์น ์ ์์ต๋๋ค. ํนํ ์ธํ๋ฅผ ๋ณด์ ํ๊ณ ์๊ฑฐ๋ ํด์ธ์์ฅ์ ํฌ์ํ๋ ค๋ ์ฌ๋๋ค์๊ฒ ์ด๋ฌํ ๋ณํ๋ ์ด๋ป๊ฒ ๋์ํด์ผ ํ ์ง๋ฅผ ๊ณ ๋ฏผํ๊ฒ ๋ง๋ญ๋๋ค. ํ์ฌ์ ํ์จ ์์ฅ์ ์์ง์์ ์ ์ดํดํ๊ณ , ํฅํ ํฌ์ ๊ณํ์ ์ ์คํ ์ธ์ฐ๋ ๊ฒ์ด ์ค์ํ ์์ ์ ...", + "articleType": "investment", + "contentCategory": "finance" + }, + { + "post_id": "2026-07-22_๊ฒฝ์ฃผ๋น์ผ์น๊ธฐ๋์น๋ฉดํํํ๋์ฝ์ค์ง์ ๋ค๋ ์_b38abd61", + "keyword": "๊ฒฝ์ฃผ ๋น์ผ์น๊ธฐ ๋์น๋ฉด ํํํ๋ ์ฝ์ค ์ง์ ๋ค๋ ์์", + "title": "๊ฒฝ์ฃผ ๋น์ผ์น๊ธฐ, ๋์น๋ฉด ํํํ๋ ์ฝ์ค ์ง์ ๋ค๋ ์์!", + "status": "pending", + "source": "auto", + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "blogUrl": "", + "errorMessage": null, + "createdAt": "2026-07-22T23:13:54.199525", + "publishedAt": null, + "lastAttemptAt": "2026-07-22T23:13:54.199525", + "attempts": 1, + "runNumber": 216, + "wordCount": 1340, + "faqCount": 2, + "category": "์ผ๋ฐ", + "labels": [ + "๊ตญ๋ด์ฌํ", + "๊ฒฝ์ฃผ์ฌํ", + "๋ถ๊ตญ์ฌ", + "์ฒจ์ฑ๋", + "์๋๋ง์", + "๋ฌธํ์ ์ ", + "๋น์ผ์น๊ธฐ์ฌํ" + ], + "metaDescription": "๊ฒฝ์ฃผ ๋น์ผ์น๊ธฐ ์ฌํ์ ๊ณํํ๋ ๋ถ๋ค์ ์ํ ์ต๊ณ ์ ์ฝ์ค๋ฅผ ์๊ฐํฉ๋๋ค. ๋ถ๊ตญ์ฌ, ์ฒจ์ฑ๋, ์๋๋ง์์ ์ค์ฌ์ผ๋ก ์์ฐจ๊ฒ ํ๋ฃจ๋ฅผ ์ฆ๊ธฐ๋ ๋ฐฉ๋ฒ์ ๋ด์์ต๋๋ค.", + "contentPreview": "์ฌ๋ฆ ํด๊ฐ์ฒ ์ด ๋ค๊ฐ์ค๋ฉด ํ๋ฃจ๋ผ๋ ์งฌ์ ๋ด์ด ๊ฒฝ์ฃผ๋ฅผ ๋ฐฉ๋ฌธํด๋ณผ๊น ๊ณ ๋ฏผํ๋ ๋ถ๋ค์ด ๋ง์ต๋๋ค. ๊ฒฝ์ฃผ๋ ํ๋ถํ ์ญ์ฌ์ ๋๋ถ์ด ์๋ฆ๋ค์ด ์์ฐ ๊ฒฝ๊ด์ด ๊ฐ๋ํ ๋์์ ๋๋ค. ํ์ง๋ง '๋ฑ ํ๋ฃจ'๋ผ๋ ์ ์ฝ๋ ์๊ฐ ์์์ ์ด๋ค ์ฝ์ค๋ฅผ ์ ํํด์ผ ํํ ์๋ ์ฌํ์ด ๋ ์ง ๊ณ ๋ฏผ๋๊ธฐ๋ ํ์ฃ . ์ด๋ฒ ๊ธ์์๋ ๊ฒฝ์ฃผ๋ก ๋น์ผ์น๊ธฐ ์ฌํ์ ๊ณํํ์๋ ๋ถ๋ค์ ์ํด ๊ฐ์ฅ ์์ฐจ๊ณ ํํ ์๋ ์ฝ์ค๋ฅผ ์ ์...", + "articleType": "travel_guide", + "contentCategory": "travel" + }, + { + "post_id": "2026-07-22_์ถ์ฒ๋ญ๊ฐ๋น๊ณจ๋ชฉ์ง์ง๋ง์ง๊ณผํผํด์ผํ ๊ณณ_6782156f", + "keyword": "์ถ์ฒ ๋ญ๊ฐ๋น ๊ณจ๋ชฉ ์ง์ง ๋ง์ง๊ณผ ํผํด์ผ ํ ๊ณณ", + "title": "์ถ์ฒ ๋ญ๊ฐ๋น ๊ณจ๋ชฉ ์ง์ง ๋ง์ง๊ณผ ํผํด์ผ ํ ๊ณณ", + "status": "pending", + "source": "auto", + "blogId": "blog1", + "blogName": "HOGU What?", + "blogUrl": "", + "errorMessage": null, + "createdAt": "2026-07-22T23:11:57.400949", + "publishedAt": null, + "lastAttemptAt": "2026-07-22T23:11:57.400949", + "attempts": 1, + "runNumber": 216, + "wordCount": 1634, + "faqCount": 3, + "category": "์ผ๋ฐ", + "labels": [ + "์ถ์ฒ", + "๋ญ๊ฐ๋น", + "๊ตญ๋ด ์ฌํ", + "๋ง์ง", + "์ฌํ ๊ฐ์ด๋", + "๊ฐ์ฑ๋น", + "์๋น์ค" + ], + "metaDescription": "์ถ์ฒ ๋ญ๊ฐ๋น ๊ณจ๋ชฉ์ ์ง์ง ๋ง์ง๊ณผ ํผํด์ผ ํ ๊ณณ์ ์์๋ด ๋๋ค. ํ๊ธฐ๋ฅผ ์ข ํฉํด ์ฒดํฌ๋ฆฌ์คํธ๋ฅผ ์ ๊ณตํฉ๋๋ค. ์คํจ๋ฅผ ์ค์ด๊ณ ์ง๊ธ ์์ํ์ธ์.", + "contentPreview": "์ถ์ฒ ๋ญ๊ฐ๋น๋ ๊ทธ ํน์ ์ ๋งค์ฝค๋ฌ์ฝคํ ์๋ ์ผ๋ก ๋ง์ ์ฌ๋๋ค์ ์ ๋ง์ ์ฌ๋ก์ก์ต๋๋ค. ๊ทธ๋ฌ๋ ๋ง์ ์ถ์ฒ์ ์ฐพ์๊ฐ ๋ญ๊ฐ๋น ๊ณจ๋ชฉ์ ๋ค์ด์๋ฉด ์ด๋์์ ๋จน์ด์ผ ํ ์ง ๋ง๋งํ ๋๊ฐ ๋ง์ต๋๋ค. ์๋ํ๋ฉด ๊ณจ๋ชฉ ๊ฐ๋ ๋ค์ด์ ์ฌ๋ฌ ์๋น๋ค ๋๋ฌธ์ ์ ํ์ด ์ฝ์ง ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ์ด ๊ณ ๋ฏผ์ด ์๊ธธ ๋, ์ ๋ง๋ก ๋ง์๋ ๊ณณ์ ์ฐพ๊ณ ์ถ๋ค๋ฉด ๋ช ๊ฐ์ง ์ฒดํฌํด์ผ ํ ์์๋ค์ด ์์ต๋๋ค. ์ด๋ฒ ๊ธ์์...", + "articleType": "travel_guide", + "contentCategory": "travel" + }, + { + "post_id": "2026-07-22_ํด๋8_c1b89783", + "keyword": "ํด๋8", + "title": "ํด๋8, ์ค๋งํธํฐ ์์ฅ์ ์๋ก์ด ์งํ๊ฐ ๋๋ค", + "status": "pending", + "source": "auto", + "blogId": "blog1", + "blogName": "HOGU What?", + "blogUrl": "", + "errorMessage": null, + "createdAt": "2026-07-22T15:40:17.575629", + "publishedAt": null, + "lastAttemptAt": "2026-07-22T15:40:17.575629", + "attempts": 1, + "runNumber": 215, + "wordCount": 2031, + "faqCount": 3, + "category": "์ผ๋ฐ", + "labels": [ + "์ค๋งํธํฐ", + "ํ ํฌ๋ฆฌ๋ทฐ", + "ํด๋ํฐ", + "์ต์ ๊ธฐ์ ", + "ํ์ ์ ํ", + "๊ฐ์ฑ๋น๋ถ์", + "์ฌ์ฉ์๊ฒฝํ" + ], + "metaDescription": "ํด๋8, ์ค๋งํธํฐ ํ์ ์ ์ด๋๋ ์๋ก์ด ์งํ. ๋ํ๋ฉด๊ณผ ํด๋์ฑ์ ๋์์ ๋๋ฆด ์ ์๋ ํด๋ํฐ์ ์ฅ๋จ์ ์ ๋ถ์ํฉ๋๋ค.", + "contentPreview": "๊ฐ์๊ธฐ ์๋ก์ด ์ค๋งํธํฐ์ ๊ตฌ๋งคํ ์๊ฐ์ด ๋ค ๋, ์ต์ ๊ธฐ์ ์ด ์ ์ฉ๋ ํด๋8์ ๋ง์ ์ฌ๋๋ค์๊ฒ ์ ํ์ง๋ก ๋ ์ค๋ฆ ๋๋ค. ํ์ง๋ง ์ค์ ๋ก ์ผ๋ง๋ ๊ฐ์น๊ฐ ์๋์ง ์๋ฌธ์ ๊ฐ๊ฒ ๋์ฃ . ๊ฐ๊ฒฉ๋งํผ ์ฑ๋ฅ์ด ๋ฐ๋ผ์ฃผ๋์ง, ์ฌ์ฉ์๊ฐ ์ด๋ค ์ ์ ๊ฐ์ฅ ๋ค๋ฅด๊ฒ ๋๋ผ๋์ง ์ด์ผ๊ธฐํด๋ณผ๊น ํฉ๋๋ค.๐ก ํต์ฌ ํฌ์ธํธ: ํด๋8์ ์ค๋งํธํฐ ์์ฅ์์ ์ ๋ ํํ์ ํ์ ์ฑ์ ์ ๊ณตํฉ๋๋ค. ์ด๋์ฑ๊ณผ ๋ํ๋ฉด์ ์ฅ...", + "articleType": "analysis", + "contentCategory": "travel" + }, + { + "post_id": "2026-07-22_์ฝ์คํผ๋ถ์ฅ๋๋ถ์๊ฐ๊ณ์์์ฐ๋ง์_c1df4cc4", + "keyword": "์ฝ์คํผ ๋ถ์ฅ ๋๋ถ์ ๊ฐ๊ณ ์์์ฐ ๋ง์", + "title": "์ฝ์คํผ ๋ถ์ฅ์ผ๋ก ๊ฐ๊ณ ์์์ฐ ๋ค์ ์ฆ๊ฐ, ๋์๊ฒ ๋ฏธ์น๋ ์ํฅ์?", + "status": "pending", + "source": "auto", + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "blogUrl": "", + "errorMessage": null, + "createdAt": "2026-07-22T15:37:08.717584", + "publishedAt": null, + "lastAttemptAt": "2026-07-22T15:37:08.717584", + "attempts": 1, + "runNumber": 214, + "wordCount": 1140, + "faqCount": 2, + "category": "์ผ๋ฐ", + "labels": [ + "๊ธ์ต", + "์ฝ์คํผ", + "์์์ฐ", + "์ฃผ์", + "ํฌ์", + "๊ฒฝ์ ", + "์์ฅ ๋ํฅ" + ], + "metaDescription": "์ฝ์คํผ ๋ถ์ฅ์ผ๋ก ๊ฐ๊ณ ์์์ฐ์ด ๋ค์ ์ฆ๊ฐํ๊ณ ์์ต๋๋ค. ์ฃผ์ ๋ณด์ ์์ ์ผ๋ฐ ๊ฐ๊ณ์ ๋ฏธ์น๋ ๊ธ์ ์ ์ํฅ์ ์ดํด๋ณด๊ณ ๋๋น ์ ๋ต์ ์๊ฐํฉ๋๋ค.", + "contentPreview": "์ต๊ทผ ์ฝ์คํผ ์ง์๊ฐ ๋ถ์ฅ(์ฑ์ฅํ๊ณ ์๋ ์ฃผ์์์ฅ)์ ํ์ ์ด ์์น์ธ๋ฅผ ๋ณด์ด๊ณ ์์ต๋๋ค. ์ด๋ฌํ ์์น์ ์ฃผ์ ๋ณด์ ์๋ฟ๋ง ์๋๋ผ ์ผ๋ฐ ๊ฐ๊ณ์ ์์์ฐ์๋ ๊ธ์ ์ ์ธ ์ํฅ์ ๋ฏธ์น ์ ์์ต๋๋ค. ๊ทธ๋ ๋ค๋ฉด ์ด๋ฒ ์ฝ์คํผ ๋ถ์ฅ์ด ๊ณผ์ฐ ๋์๊ฒ ์ด๋ค ์ํฅ์ ์ค ์ ์์์ง, ์ผ๋ฐ ๊ฐ๊ณ์ ์ฌ๋ฌด ์ํ์ ๋ฏธ์น๋ ์ํฅ์ ์ดํด๋ณด๊ฒ ์ต๋๋ค. ๐ก ํต์ฌ ํฌ์ธํธ: ์ฝ์คํผ ์ง์ ์์น์ผ๋ก ์ฃผ์ ๋ณด์ ์...", + "articleType": "travel_guide", + "contentCategory": "finance" + }, + { + "post_id": "2026-07-22_๋ํต๋ น๋ํํ๋ฐฉ์๊ฐ๋จ์๋์ง์ฃผ์ธ๋์ถ_b2fa04bd", + "keyword": "๋ํต๋ น๋ ํํ ๋ฐฉ์ ๊ฐ๋จ์๋ ์ง์ฃผ์ธ ๋์ถ", + "title": "๋ํต๋ น๋ ์ฃผ๋ชฉํ '๊ฐ๋จ ์ง์ฃผ์ธ ๋์ถ', ๋์๊ฒ ๋ง๋ ๋ฐฉ๋ฒ์ผ๊น?", + "status": "published", + "source": "auto", + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "blogUrl": "https://hoguasset.blogspot.com/2026/07/blog-post_22.html", + "errorMessage": null, + "createdAt": "2026-07-22T12:32:17.293478", + "publishedAt": "2026-07-22T14:42:39.188318", + "lastAttemptAt": "2026-07-22T14:42:39.188318", + "attempts": 3, + "runNumber": 213, + "wordCount": 1428, + "faqCount": 2, + "category": "์ผ๋ฐ", + "labels": [ + "๋์ถ", + "๊ฐ๋จ๋ถ๋์ฐ", + "๊ธ์ต์ ์ฑ ", + "์ฃผํ๋์ถ", + "๊ธ์ต์ง์", + "์ ๋ถ์ ์ฑ ", + "์ง์ฃผ์ธ๋์ถ" + ], + "metaDescription": "๊ฐ๋จ ์ง์ญ ์ง์ฃผ์ธ ๋์ถ, ๋ํต๋ น๋ง์ ์ฃผ๋ชฉํ ์๋ก์ด ๊ธ์ต ๋ฐฉ๋ฒ. ์๋๊ณผ ์ฃผํ ํ๊ฐ์ ๋ฐ๋ผ ํํ ์ ๊ณต, ์จ๋ผ์ธ๊ณผ ๋ฐฉ๋ฌธ ์ ์ฒญ ๊ฐ๋ฅ.", + "contentPreview": "๊ฐ๋จ์ ๋ถ๋์ฐ ์์ฅ, ๊ทธ์ค์์๋ ์ง์ฃผ์ธ๋ค์ด ๋์ถ์ ํ์ฉํ๋ ๋ฐฉ์์ด ์ต๊ทผ ์ฃผ๋ชฉ๋ฐ๊ณ ์์ต๋๋ค. ๋ํต๋ น๋ง์ ์ด ๋ฐฉ์์ ์ ํํ๋ค๋ ์ด์ผ๊ธฐ๋ ๋ง์ ์ฌ๋๋ค์๊ฒ ๋๋ผ์์ ์๊ฒจ์ฃผ๋ฉฐ ์ฃผ๋ชฉ์ ๋๊ณ ์๋๋ฐ์. ๋์ถ์ ๋ง์ ์ด๋ค์๊ฒ ๊ธ์ ์ ์ธ ๋ถ๋ด์ ๋์ด์ค ์ ์๋ ๋ฐฉ๋ฒ์ด์ง๋ง, ๋ณต์กํ ์กฐ๊ฑด๊ณผ ์ ์ฐจ ๋๋ฌธ์ ๋ง์ค์ด๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. ๐ก ํต์ฌ ํฌ์ธํธ: ๊ฐ๋จ์ ๊ฑฐ์ฃผํ๋ ์ง์ฃผ์ธ๋ค์ด ๋์ถ...", + "articleType": "analysis" + }, + { + "post_id": "2026-07-22_๋ฏธ๊ตญ์ฐ์ค๊ธ๋ฆฌ๊ฒฐ์ ํ๊ตญ์ฆ์์ํฅ๋ถ์_beae65ca", + "keyword": "๋ฏธ๊ตญ ์ฐ์ค ๊ธ๋ฆฌ ๊ฒฐ์ ํ๊ตญ ์ฆ์ ์ํฅ ๋ถ์", + "title": "๋ฏธ๊ตญ ์ฐ์ค ๊ธ๋ฆฌ ๊ฒฐ์ ์ด ํ๊ตญ ์ฆ์์ ๋ฏธ์น๋ ์ํฅ: ์ง๊ธ ์์์ผ ํ ์ ", + "status": "pending", + "source": "auto", + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "blogUrl": "", + "errorMessage": null, + "createdAt": "2026-07-22T11:51:25.688676", + "publishedAt": null, + "lastAttemptAt": "2026-07-22T11:51:25.688676", + "attempts": 1, + "runNumber": 212, + "wordCount": 1377, + "faqCount": 2, + "category": "์ผ๋ฐ", + "labels": [ + "๊ธ์ต ๋ด์ค", + "์ฃผ์", + "๊ธ๋ฆฌ", + "ํ์จ", + "ํ๊ตญ ์ฆ์", + "๋ฏธ๊ตญ ์ฐ์ค", + "ํฌ์" + ], + "metaDescription": "๋ฏธ๊ตญ ์ฐ์ค์ ๊ธ๋ฆฌ ๊ฒฐ์ ์ด ํ๊ตญ ์ฆ์์ ๋ฏธ์น๋ ์ํฅ! ํฌ์์๋ ํฌํธํด๋ฆฌ์ค ์กฐ์ ์ด ํ์ํ๋ค๋ ์ ๋ฌธ๊ฐ ์๊ฒฌ. ๊ธ๋ฆฌ ์ธ์์ด ๊ฐ์ ธ์ฌ ๋ณํ๋ฅผ ์์๋ด ๋๋ค.", + "contentPreview": "์ต๊ทผ ๋ฏธ๊ตญ ์ฐ์ค์ ๊ธ๋ฆฌ ๊ฒฐ์ ์ ์ ์ธ๊ณ ๊ธ์ต ์์ฅ์ ์์ฒญ๋ ํ์ฅ์ ์ผ์ผํค๊ณ ์์ต๋๋ค. ๊ธ๋ฆฌ๊ฐ ์ฌ๋ผ๊ฐ๋ฉด ์ฃผ๊ฐ๋ ๋จ์ด์ง๊ณ , ๊ธ๋ฆฌ๊ฐ ๋ด๋ ค๊ฐ๋ฉด ์ฃผ๊ฐ๋ ์ฌ๋ผ๊ฐ๋ค๋ ๊ณต์์ ์ด๋ฏธ ๋ง์ ํฌ์์๋ค์ด ์๊ณ ์๋ ์ฌ์ค์ด์ฃ . ๊ทธ๋ ๋ค๋ฉด ์ด๋ฒ ์ฐ์ค์ ๊ฒฐ์ ์ ํ๊ตญ ์ฆ์์ ์ด๋ค ์ํฅ์ ๋ฏธ์น ๊น์? ์ด๋ฌํ ์ํฉ์ ํฌ์์์ ์ผ๋ฐ์ธ ๋ชจ๋๊ฐ ์ฃผ๋ชฉํด์ผ ํ ์ค์ํ ๋ฌธ์ ์ ๋๋ค. ๐ก ํต์ฌ ํฌ์ธํธ: ์ฐ...", + "articleType": "sports_review" + }, + { + "post_id": "2026-07-22_๊ฐ์๋์บ ํ์ฒ์ํด๋ดค์๋๋ชฐ๋๋๊ฒ๋ค_7366f9b4", + "keyword": "๊ฐ์๋ ์บ ํ ์ฒ์ ํด๋ดค์ ๋ ๋ชฐ๋๋ ๊ฒ๋ค", + "title": "๊ฐ์๋ ์บ ํ์์ ์ฒ์ ์๊ฒ ๋ ๊ฒ๋ค: ๋์น๊ธฐ ์ฌ์ด ํ๋ค", + "status": "pending", + "source": "auto", + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "blogUrl": "", + "errorMessage": null, + "createdAt": "2026-07-22T11:49:17.856907", + "publishedAt": null, + "lastAttemptAt": "2026-07-22T11:49:17.856907", + "attempts": 1, + "runNumber": 212, + "wordCount": 950, + "faqCount": 2, + "category": "์ผ๋ฐ", + "labels": [ + "๊ตญ๋ด์ฌํ", + "์บ ํ", + "๊ฐ์๋", + "์์ฐ", + "์ฌ๋ฆํด๊ฐ", + "์บ ํ์ค๋น๋ฌผ", + "์บ ํ์ฅ" + ], + "metaDescription": "๊ฐ์๋์ ์บ ํ์ ์ฒ์ ๊ณํํ๋ค๋ฉด ๋์น๊ธฐ ์ฌ์ด ๊ฒ์ด ๋ง์ต๋๋ค. ์ด ๊ธ์์๋ ์บ ํ์ ์ฑ๊ณต์ ์ผ๋ก ์ฆ๊ธธ ์ ์๋ ํ๊ณผ ์ ๋ณด, ํ์ ์ค๋น ์ฌํญ์ ์๋ ค๋๋ฆฝ๋๋ค.", + "contentPreview": "๊ฐ์๋ ์บ ํ, ์์ํ๊ธฐ ์ ์์์ผ ํ ๊ฒ์ต๊ทผ ๋ช ๋ ๊ฐ ์บ ํ์ด ๋์คํ ๋๋ฉด์, ๊ฐ์๋์ ์จ๊ฒจ์ง ์์ฐ ์์์์ ์บ ํ์ด ๋ง์ ์ฃผ๋ชฉ์ ๋ฐ๊ณ ์์ต๋๋ค. ํ์ง๋ง ์ฒ์ ์บ ํ์ ๊ณํํ ๋ ๋์น๊ธฐ ์ฌ์ด ์ ๋ค์ด ๋ช ๊ฐ์ง ์์ต๋๋ค. ์ด๋ฅผ ๋ฏธ๋ฆฌ ์๊ณ ์ค๋นํ๋ฉด ๋์ฑ ํธ์ํ๊ณ ์ฆ๊ฑฐ์ด ์บ ํ์ด ๋ ๊ฒ์ ๋๋ค.ํญ๋ชฉ๋ด์ฉ์ฅ๋น ๋์ฌ ์ฌ๋ถ์ผ๋ถ ์บ ํ์ฅ์์๋ ์ฅ๋น ๋์ฌ๊ฐ ๊ฐ๋ฅํ๋ฏ๋ก ํ์ธํ ๊ฒ์ฃผ์ฐจ ...", + "articleType": "analysis" + }, + { + "post_id": "2026-07-22_์ธ์ฒ์ฐจ์ด๋ํ์ด๋ง์ง๊ณผ๋ณผ๊ฑฐ๋ฆฌ์ง์ ๋ค๋ ์จ์์ง_d3cc1feb", + "keyword": "์ธ์ฒ ์ฐจ์ด๋ํ์ด ๋ง์ง๊ณผ ๋ณผ๊ฑฐ๋ฆฌ ์ง์ ๋ค๋ ์จ ์์ง ํ๊ฐ", + "title": "์ธ์ฒ ์ฐจ์ด๋ํ์ด์ ๋ง์ง๊ณผ ๋ณผ๊ฑฐ๋ฆฌ ์์ง ํ๊ฐ", + "status": "pending", + "source": "auto", + "blogId": "blog1", + "blogName": "HOGU What?", + "blogUrl": "", + "errorMessage": null, + "createdAt": "2026-07-22T11:47:13.566470", + "publishedAt": null, + "lastAttemptAt": "2026-07-22T11:47:13.566470", + "attempts": 1, + "runNumber": 212, + "wordCount": 1327, + "faqCount": 2, + "category": "์ผ๋ฐ", + "labels": [ + "์ธ์ฒ์ฌํ", + "์ฐจ์ด๋ํ์ด", + "๋ง์ง์ถ์ฒ", + "๋ฌธํ์ฒดํ", + "๊ตญ๋ด์์", + "์ฌํ๊ณํ", + "๋ฐ์ผ๋ฆฌ์ฌํ" + ], + "metaDescription": "์ธ์ฒ ์ฐจ์ด๋ํ์ด์ ๋ง์ง๊ณผ ๋ณผ๊ฑฐ๋ฆฌ, ์จ๊ฒจ์ง ๋งค๋ ฅ์ ์์งํ ํ๊ฐํฉ๋๋ค. ์จ๊ฒจ์ง ์ฅ์์ ๋ง์ง, ๋ฐฉ๋ฌธ ์ ์ฒดํฌ๋ฆฌ์คํธ๋ฅผ ํตํด ์์ฐจ๊ฒ ์ฌํํ์ธ์.", + "contentPreview": "์ธ์ฒ ์ฐจ์ด๋ํ์ด์ ๋ฐฉ๋ฌธํ๋ฉด ๊ทธ์ ํํ ์ค๊ตญ ์์์ ๋ค์ด ๋์ด์ ๊ณณ์ด๋ผ๊ณ ์๊ฐํ ์๋ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ด๊ณณ์ ๋ค์ํ ์์ฑ์ ๋ฌธํ๊ฐ ์ด์ฐ๋ฌ์ง, ์์ ๋ฐ์ ๋งค๋ ฅ์ ์ง๋ ์ฅ์์ ๋๋ค. ์ฐจ์ด๋ํ์ด์ ์ ๋๋ก ์ฆ๊ธฐ๊ธฐ ์ํด ์ด๋๋ฅผ ๋ฐฉ๋ฌธํด์ผ ํ ์ง ๊ณ ๋ฏผ๋๊ณ ๊ณ์ ๊ฐ์? ์ด ๊ธ์์๋ ์ฐจ์ด๋ํ์ด์ ์จ๊ฒจ์ง ๋ง์ง, ๋งค๋ ฅ์ ์ธ ๋ณผ๊ฑฐ๋ฆฌ, ์ค์ ๋ฐฉ๋ฌธ๊ฐ๋ค์ ํ๊ธฐ๋ฅผ ๋ฐํ์ผ๋ก ์์งํ๊ฒ ์ค๋ช ํฉ๋๋ค....", + "articleType": "travel_guide" + }, + { + "post_id": "2026-07-22_์ฝ์คํผ์ฝ์ค๋ฅ2026ํ๋ฐ๊ธฐ์ ๋งํต์ฌ์ ๋ฆฌ_87e49027", + "keyword": "์ฝ์คํผ ์ฝ์ค๋ฅ 2026 ํ๋ฐ๊ธฐ ์ ๋ง ํต์ฌ ์ ๋ฆฌ", + "title": "2026๋ ํ๋ฐ๊ธฐ ์ฝ์คํผยท์ฝ์ค๋ฅ ์ ๋ง: ๋ณ๋์ฑ ์ ๊ธฐํ๋ ์ด๋์?", + "status": "pending", + "source": "auto", + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "blogUrl": "", + "errorMessage": null, + "createdAt": "2026-07-22T05:54:23.198118", + "publishedAt": null, + "lastAttemptAt": "2026-07-22T05:54:23.198118", + "attempts": 1, + "runNumber": 211, + "wordCount": 1938, + "faqCount": 2, + "category": "์ผ๋ฐ", + "labels": [ + "์ฝ์คํผ", + "์ฝ์ค๋ฅ", + "2026๋ ๋", + "์ฃผ์์์ฅ", + "ํฌ์์ ๋ต", + "๋ณ๋์ฑ", + "๊ธ๋ฆฌ" + ], + "metaDescription": "2026๋ ํ๋ฐ๊ธฐ ์ฝ์คํผยท์ฝ์ค๋ฅ ์ฃผ์์์ฅ ๋ณํ์ ๋ํ ํต์ฌ ์ ๋ณด๋ฅผ ์ ๊ณตํฉ๋๋ค. ์ง์ฅ์ธ๊ณผ ์์๊ณต์ธ์ ์ํ ์ค์ง์ ์ธ ํฌ์ ์ ๋ต์ ์์๋ณด์ธ์.", + "contentPreview": "2026๋ ํ๋ฐ๊ธฐ๋ฅผ ๋ง์ ๋ง์ ํฌ์์๋ค์ด ์ฝ์คํผ์ ์ฝ์ค๋ฅ์ ์์ง์์ ์ฃผ๋ชฉํ๊ณ ์์ต๋๋ค. ์ง์๋ ๊ธ๋ก๋ฒ ๊ฒฝ๊ธฐ ๋ถํ์ค์ฑ๊ณผ ๊ธ๋ฆฌ ๋ณํ ์์์ ์ฃผ์์์ฅ์ ์ด๋ ๋ฐฉํฅ์ผ๋ก ํ๋ฌ๊ฐ๊น์? ํนํ ์ง์ฅ์ธ๊ณผ ์๋ฏผ, ์์๊ณต์ธ๋ค์๊ฒ ์ด๋ฒ ๋ํฅ์ ๋จ์ํ ์ซ์๊ฐ ์๋ ์ค์ง์ ์ธ ๊ฒฝ์ ์ ์ํฅ์ ๋ฏธ์น ์ ์์ต๋๋ค. ์ฃผ์์์ฅ์ด ๋์ ์ฌ์ ๊ณํ์ ์ด๋ป๊ฒ ์ํฅ์ ์ค ์ ์์์ง, ๊ทธ๋ฆฌ๊ณ ์ด ์์...", + "articleType": "travel_guide" + }, + { + "post_id": "2026-07-22_๋ถ์ฐ1๋ฐ2์ผํผ์์ฌํํ์ค๋น์ฉ๊ณต๊ฐ_bd3d58e7", + "keyword": "๋ถ์ฐ 1๋ฐ2์ผ ํผ์ ์ฌํ ํ์ค ๋น์ฉ ๊ณต๊ฐ", + "title": "๋ถ์ฐ 1๋ฐ2์ผ ํผ์ ์ฌํ: ํ์ค์ ์ผ๋ก ๋๋ ์ด ๋น์ฉ์?", + "status": "pending", + "source": "auto", + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "blogUrl": "", + "errorMessage": null, + "createdAt": "2026-07-22T05:52:33.657098", + "publishedAt": null, + "lastAttemptAt": "2026-07-22T05:52:33.657098", + "attempts": 1, + "runNumber": 211, + "wordCount": 1412, + "faqCount": 2, + "category": "์ผ๋ฐ", + "labels": [ + "๋ถ์ฐ์ฌํ", + "ํผ์์ฌํ", + "๊ตญ๋ด์ฌํ", + "1๋ฐ2์ผ ์ฌํ", + "์ฌํ๋น์ฉ", + "๊ตํตํธ", + "์๋ฐ๋น" + ], + "metaDescription": "๋ถ์ฐ 1๋ฐ2์ผ ํผ์ ์ฌํ์ ํ์ค ๋น์ฉ์ ์์ธํ ๋ถ์ํฉ๋๋ค. ๊ตํต, ์๋ฐ, ์๋น ๋ฑ ์ค์ฉ์ ์ธ ์ ๋ณด๋ฅผ ์ ๊ณตํ์ฌ ํจ์จ์ ์ธ ์ฌํ ๊ณํ์ ๋์๋๋ฆฝ๋๋ค.", + "contentPreview": "ํผ์์ ๋ถ์ฐ์ผ๋ก 1๋ฐ 2์ผ ์ฌํ์ ๋ ๋ ์๊ฐํ๊ณ ๊ณ์ ๊ฐ์? ํผ์ ํ๋ ์ฌํ์ ๋งค๋ ฅ์ ์์ ๋กญ๊ฒ ์ผ์ ์ ์ ํ๊ณ , ์์ ๋ง์ ์ทจํฅ๋๋ก ์๊ฐ์ ๋ณด๋ผ ์ ์๋ค๋ ์ ์ธ๋ฐ์. ๊ทธ๋ฌ๋ ์ฒ์ ํผ์ ์ฌํ์ ๊ณํํ๋ค ๋ณด๋ฉด ํ์ค์ ์ธ ๋น์ฉ์ด ์ผ๋ง๋ ๋๋์ง ๊ถ๊ธํ ์๋ฐ์ ์์ต๋๋ค. ๋ถ์ฐ์ ๋ค์ํ ๋ณผ๊ฑฐ๋ฆฌ์ ๋จน๊ฑฐ๋ฆฌ๊ฐ ๋์น๋ ๋์๋ก, ํจ์จ์ ์ธ ๊ณํ์ด ์ค์ํฉ๋๋ค.๐ก ํต์ฌ ์์ฝ: ๋ถ์ฐ 1๋ฐ2...", + "articleType": "travel_guide" + }, + { + "post_id": "2026-07-22_ํต์ํ๋ฃจ์ฝ์ค์์ง๋ช ์์์์์ค์ ํ๊ธฐ_6187372c", + "keyword": "ํต์ ํ๋ฃจ ์ฝ์ค ์์ง ๋ช ์์ ์์ ์ค์ ํ๊ธฐ", + "title": "ํต์ ํ๋ฃจ ์ฝ์ค ์์ง ๋ช ์์ ์์ ์ด์ ๋ฆฌ", + "status": "pending", + "source": "auto", + "blogId": "blog1", + "blogName": "HOGU What?", + "blogUrl": "", + "errorMessage": null, + "createdAt": "2026-07-22T05:50:42.070404", + "publishedAt": null, + "lastAttemptAt": "2026-07-22T05:50:42.070404", + "attempts": 1, + "runNumber": 211, + "wordCount": 1770, + "faqCount": 3, + "category": "์ผ๋ฐ", + "labels": [ + "ํต์", + "๊ตญ๋ด ์ฌํ", + "ํ๋ฃจ ์ฝ์ค", + "๋ช ์ ์ถ์ฒ", + "์์ ์ ๋ณด", + "์ฌํ ํ", + "์ฒดํฌ๋ฆฌ์คํธ" + ], + "metaDescription": "ํต์์์ ํจ์จ์ ์ผ๋ก ์ฆ๊ธธ ์ ์๋ ํ๋ฃจ ์ฝ์ค๋ฅผ ์ ์ํฉ๋๋ค. ๊ผญ ๊ฐ๋ด์ผ ํ ๋ช ์์ ์์ ์ ๋ณด๋ก ์์ฐฌ ์ฌํ์ ๊ณํํด ๋ณด์ธ์.", + "contentPreview": "ํน์ ํต์์ ํ๋ฃจ ๋ง์ ์ด๋ป๊ฒ ์์ฐจ๊ฒ ๋์๋ณผ์ง ๊ณ ๋ฏผํ๊ณ ์๋์? ๋ฌธํ์ ์์ฐ์ด ์ด์ฐ๋ฌ์ง ์ด ๋์๋ฅผ ์งง์ ์๊ฐ ๋ด์ ์ ๋๋ก ์ฆ๊ธฐ๊ธฐ๋ ์ฝ์ง ์์ง๋ง, ์ ๋ต๋ง ์ ์ธ์ด๋ค๋ฉด ์ถฉ๋ถํ ๊ฐ๋ฅํฉ๋๋ค. ํต์์ ๊ทธ ์์ฒด๋ก ์๋ฆ๋ค์ด ํญ๊ตฌ ๋์์ ๋๋ค. ๋งค๋ ์๋ง์ ๊ด๊ด๊ฐ๋ค์ด ์ด๊ณณ์ ์ฐพ์ง๋ง, ํผ์กํ ์ผ์ ์์์ ์ฒดํํ ์ ์๋ ํน๋ณํ ์๊ฐ๋ค์ ๋์น๊ธฐ๋ ํฉ๋๋ค. ์ด ๊ธ์์๋ ํต์์์...", + "articleType": "travel_guide" + }, + { + "post_id": "2026-07-21_์ฃผํ๋ด๋ณด๋์ถ๊ธ๋ฆฌ์ต์ ์ํ2026์ง์ ๋ฐํ_fdb4133a", + "keyword": "์ฃผํ๋ด๋ณด๋์ถ ๊ธ๋ฆฌ ์ต์ ์ํ 2026 ์ง์ ๋ฐํ ํ์ ๋น๊ต", + "title": "2026๋ ์ฃผํ๋ด๋ณด๋์ถ ๊ธ๋ฆฌ ๋น๊ต: ๋ฐํ ํ์ ๊ฐ์ฅ ์ ๋ฆฌํ ์ํ ์ฐพ๊ธฐ", + "status": "pending", + "source": "auto", + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "blogUrl": "", + "errorMessage": null, + "createdAt": "2026-07-21T23:08:58.833804", + "publishedAt": null, + "lastAttemptAt": "2026-07-21T23:08:58.833804", + "attempts": 1, + "runNumber": 210, + "wordCount": 2073, + "faqCount": 2, + "category": "์ผ๋ฐ", + "labels": [ + "์ฃผํ๋ด๋ณด๋์ถ", + "๊ธ๋ฆฌ๋น๊ต", + "์ํ ๋์ถ", + "๊ธ์ต์ ๋ณด", + "2026 ๊ธ์ต ๋ํฅ", + "๋์ถ์กฐ๊ฑด", + "ํํ ์ ๋ณด" + ], + "metaDescription": "2026๋ ์ฃผํ๋ด๋ณด๋์ถ ๊ธ๋ฆฌ๋ฅผ ๋น๊ตํ๊ณ , ์์ ์๊ฒ ๊ฐ์ฅ ์ ๋ฆฌํ ์ํ๊ณผ ์กฐ๊ฑด์ ํ์ธํ์ธ์. ๊ฐ ์ํ์ ํํ๊ณผ ์ ์ฒญ ๋ฐฉ๋ฒ๊น์ง ์๋ฒฝ ์ ๋ฆฌ.", + "contentPreview": "2026๋ ์ฃผํ๋ด๋ณด๋์ถ ๊ธ๋ฆฌ ๋น๊ต: ๋ฐํ ํ์ ๊ฐ์ฅ ์ ๋ฆฌํ ์ํ ์ฐพ๊ธฐ ํ์ฌ 2026๋ ์ ๊ธ์ต์์ฅ์์๋ ์ฃผํ๋ด๋ณด๋์ถ ๊ธ๋ฆฌ๊ฐ ํซ ์ด์์ ๋๋ค. ์ต๊ทผ ๋ช ๋ ๊ฐ์ ๊ฒฝ์ ๋ถํฉ๊ณผ ํจ๊ป ๊ธ๋ฆฌ๊ฐ ๊ณ์ํด์ ๋ณ๋ํจ์ ๋ฐ๋ผ, ๋ง์ ์ฌ๋๋ค์ด ์ผ๋งํผ ์ ๋ฆฌํ ์กฐ๊ฑด์ผ๋ก ๋์ถ์ ๋ฐ์ ์ ์๋์ง ๊ด์ฌ์ ๊ฐ์ง๊ณ ์์ต๋๋ค. ํนํ ์ฒซ ์ฃผํ์ ๋ง๋ จํ๋ ค๋ ์ฌ๋๋ค์๊ฒ๋ ์ด๋ฌํ ์ ๋ณด๊ฐ ๋งค์ฐ ์ค์ํฉ๋๋ค...", + "articleType": "review" + }, + { + "post_id": "2026-07-21_์ ์ฃผ๋์ฌํํ์ง์ธ์ฒ๋ผ์ฆ๊ธฐ๋๋ฐฉ๋ฒ์์งํ๊ธฐ_7f695cbf", + "keyword": "์ ์ฃผ๋ ์ฌํ ํ์ง์ธ์ฒ๋ผ ์ฆ๊ธฐ๋ ๋ฐฉ๋ฒ ์์ง ํ๊ธฐ", + "title": "ํ์ง์ธ์ฒ๋ผ ์ ์ฃผ๋ ์ฆ๊ธฐ๊ธฐ: ์จ๊ฒจ์ง ๋ช ์์ ์์ง ํ๊ธฐ", + "status": "pending", + "source": "auto", + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "blogUrl": "", + "errorMessage": null, + "createdAt": "2026-07-21T23:07:10.459400", + "publishedAt": null, + "lastAttemptAt": "2026-07-21T23:07:10.459400", + "attempts": 1, + "runNumber": 210, + "wordCount": 1207, + "faqCount": 2, + "category": "์ผ๋ฐ", + "labels": [ + "์ ์ฃผ๋ ์ฌํ", + "๊ตญ๋ด ์ฌํ", + "ํ์ง์ธ ํ", + "๋ง์ง", + "์จ๊ฒจ์ง ๋ช ์", + "์์ ์ถ์ฒ", + "์ค์ฉ ์ ๋ณด" + ], + "metaDescription": "์ ์ฃผ๋๋ฅผ ์ง์ ์ผ๋ก ์ฆ๊ธฐ๋ ค๋ฉด ๊ด๊ด์ง ๋์ ํ์ง์ธ๋ค์ด ์ฌ๋ํ๋ ์จ๊ฒจ์ง ๋ช ์๋ฅผ ์ฐพ์ ๋ ๋๋ณด์ธ์. ์ ์ฃผ ์๊ทํฌ์ '์์ ์', '์๊ทํฌ ์นผ๊ตญ์' ๋ฑ ๋ก์ปฌ ๊ฒฝํ์ ์ถ์ฒํฉ๋๋ค.", + "contentPreview": "ํ์ง์ธ์ฒ๋ผ ์ ์ฃผ๋ ์ฆ๊ธฐ๊ธฐ: ์จ๊ฒจ์ง ๋ช ์์ ์์ง ํ๊ธฐ ์ ์ฃผ๋๋ฅผ ์ฌํํ ๋ ๋ง์ ์ฌ๋๋ค์ด ๊ด๊ด์ง ์์ฃผ๋ก ์ผ์ ํ๋ฅผ ์ง๊ณค ํฉ๋๋ค. ํ์ง๋ง, ์ง์ ํ ์ ์ฃผ๋์ ๋งค๋ ฅ์ ๋๋ผ๊ธฐ ์ํด์๋ ์กฐ๊ธ ์๋ค๋ฅธ ๋ฐฉ๋ฒ์ด ํ์ํฉ๋๋ค. ์ต๊ทผ ์ ์ฃผ๋ ์ฌํ์ ํธ๋ ๋๋ก ๋ถ์ํ๊ณ ์๋ '๋ก์ปฌ ๋ถ์๊ธฐ ์ฆ๊ธฐ๊ธฐ'์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค. ๐ก ํต์ฌ ์์ฝ: ํ์ง์ธ์ฒ๋ผ ์ ์ฃผ๋๋ฅผ ์ฆ๊ธฐ๋ ค๋ฉด ์จ๊ฒจ์ง ๋ช ์๋ฅผ ์ฐพ์๋ณด...", + "articleType": "travel_guide" + }, + { + "post_id": "2026-07-21_์ฌ์๋ฐค๋ฐ๋ค์์์ค์ ๋ทฐ๊ฐ์ฑ๋น๋น๊ต์ง์ ์์ฝํด_9f1dc881", + "keyword": "์ฌ์ ๋ฐค๋ฐ๋ค ์์ ์ค์ ๋ทฐ ๊ฐ์ฑ๋น ๋น๊ต ์ง์ ์์ฝํด๋ดค๋๋", + "title": "์ฌ์ ์ค์ ๋ทฐ ์์ ์ง์ ์์ฝํด๋ดค๋๋", + "status": "pending", + "source": "auto", + "blogId": "blog1", + "blogName": "HOGU What?", + "blogUrl": "", + "errorMessage": null, + "createdAt": "2026-07-21T23:05:27.984242", + "publishedAt": null, + "lastAttemptAt": "2026-07-21T23:05:27.984242", + "attempts": 1, + "runNumber": 210, + "wordCount": 1542, + "faqCount": 2, + "category": "์ผ๋ฐ", + "labels": [ + "๊ตญ๋ด์ฌํ", + "์ฌ์", + "์ค์ ๋ทฐ", + "๊ฐ์ฑ๋น์์", + "์ฌ์๋ฐค๋ฐ๋ค", + "์ฌ์์ฌํ", + "์์๋น๊ต" + ], + "metaDescription": "์ฌ์ ์ค์ ๋ทฐ ์์๋ฅผ ์์ฝํ๋ฉด์ ์ฃผ์ํ ์ ๊ณผ ์ค์ ๋น์ฉ ๋๋น ๊ธฐ๋ํ ์ ์๋ ๊ฐ์ฑ๋น๋ฅผ ๋น๊ต ๋ถ์ํด ๋ณด์์ต๋๋ค.", + "contentPreview": "๋ฌด๋์ด ์ฌ๋ฆ ๋ฐค๋น์ ๋ฐฐ๊ฒฝ์ผ๋ก ์ฌ์๋ฅผ ์ฌํํ๋ค๋ฉด, ๋ฐค๋ฐ๋ค ๋ทฐ๊ฐ ์๋ ์์๋ ํ์์ ๋๋ค. ์ค์ ๋ทฐ๋ฅผ ์๋ํ๋ ์์๋ค์ ๋น๊ตํด๋ดค๋๋ฐ์, ๊ฐ๊ฒฉ ๋๋น ๊ฐ์ฑ๋น์ ์ค์ฉ์ฑ๊น์ง ๋ชจ๋ ๊ณ ๋ คํ ์ ํ์ด ํ์ํฉ๋๋ค.๐ก ํต์ฌ ํฌ์ธํธ: ์์์ ๊ฐ๊ฒฉ๊ณผ ์์น, ๋ทฐ๋ฅผ ์ถฉ๋ถํ ๊ณ ๋ คํ ํ, ์๊ธฐ์๊ฒ ๋ง๋ ๊ณณ์ ๊ทธ๋ ๊ทธ๋ ํ์ง ์ฌ์ดํธ๋ฅผ ํ์ธํด์ ์์ฝํ์ธ์.์ฌ์ ์ค์ ๋ทฐ ์์ ์ ํ์ ์ค์์ฑ์ฌ์๋ ๋ฉ...", + "articleType": "travel_guide" + }, + { + "post_id": "2026-07-21_์ง์ฅ์ธ์30๋ง์ETFํฌ์์์งํ๊ธฐ_cdc05bbd", + "keyword": "์ง์ฅ์ธ ์ 30๋ง์ ETF ํฌ์ ์์ง ํ๊ธฐ", + "title": "์ง์ฅ์ธ ์ 30๋ง์ ETF ํฌ์ ํ๊ธฐ ๋ฐ ์ ๋ต", + "status": "published", + "source": "auto", + "blogId": "blog1", + "blogName": "HOGU What?", + "blogUrl": "https://www.hoguwhat.com/2026/07/30-etf.html", + "errorMessage": null, + "createdAt": "2026-07-21T15:03:34.878140", + "publishedAt": "2026-07-21T15:03:35.651945", + "lastAttemptAt": "2026-07-21T15:03:35.651945", + "attempts": 2, + "runNumber": 209, + "wordCount": 2509, + "faqCount": 0, + "category": "์ผ๋ฐ", + "labels": [ + "ํฌ์", + "ETF", + "์ฌํ ํฌ", + "์ง์ฅ์ธ", + "์ 30๋ง์" + ], + "metaDescription": "์ง์ฅ์ธ์ด ์ 30๋ง์์ผ๋ก ETF ํฌ์ ์ ํ์ํ ์ ๋ต๊ณผ ์ฃผ์์ ์ ์์๋ณด์ธ์. ๊พธ์คํ ํฌ์๋ก ์ฌํ ํฌ ์ฑ๊ณต์ ์ํ ์ค์ง ์ ๋ณด ์ ๊ณต.", + "contentPreview": "์ต๊ทผ ๊ฒฝ์ ๋ถ์์ ์ฑ์ ๊ฒช์ผ๋ฉด์, ๋ง์ ์ง์ฅ์ธ๋ค์ด ์ฌํ ํฌ ์๋จ์ผ๋ก ETF์ ๋์ ๋๋ฆฌ๊ณ ์์ต๋๋ค. ํ์ง๋ง, ๋งค๋ฌ 30๋ง์์ ํฌ์ํ๋ค๊ณ ํ์ ๋ ์ค์ ๊ณผ์ฐ ์ด๋ค ๊ฒฐ๊ณผ๊ฐ ๋ํ๋ ์ง ๊ถ๊ธํ ๋ถ๋ค์ด ๋ง์ ๊ฒ์ ๋๋ค. ์ด ๊ธ์์๋ ์ 30๋ง์์ด๋ผ๋ ์๋์ ์ผ๋ก ์ ์ ๊ธ์ก์ผ๋ก ETF์ ํฌ์ํ ๋ ๊ธฐ๋ํ ์ ์๋ ์ค์ง์ ์ธ ํจ๊ณผ์ ์ฃผ์์ ์ ์์๋ณด๊ฒ ์ต๋๋ค. ๐ก ํต์ฌ ํฌ์ธํธ: ์ ์...", + "articleType": "investment" + }, + { + "post_id": "2026-07-21_์ง์ฅ์ธ์30๋ง์ETFํฌ์์์งํ๊ธฐ_7041abe1", + "keyword": "์ง์ฅ์ธ ์ 30๋ง์ ETF ํฌ์ ์์ง ํ๊ธฐ", + "title": "์ง์ฅ์ธ ์ 30๋ง์ ETF ํฌ์ ์์ง ํ๊ธฐ", + "status": "pending", + "source": "auto", + "blogId": "blog1", + "blogName": "HOGU What?", + "blogUrl": "", + "errorMessage": null, + "createdAt": "2026-07-21T11:46:59.394201", + "publishedAt": null, + "lastAttemptAt": "2026-07-21T11:46:59.394201", + "attempts": 1, + "runNumber": 208, + "wordCount": 1339, + "faqCount": 3, + "category": "์ผ๋ฐ", + "labels": [ + "ํฌ์", + "ETF", + "์ง์ฅ์ธํฌ์", + "๊ธ์ต์ ๋ณด", + "์ฌํ ํฌ", + "ETF์ฅ์ ", + "ํต์ฌ๊ฐ๋ " + ], + "metaDescription": "์ง์ฅ์ธ์ ์ํ ์ 30๋ง์ ETF ํฌ์ ๊ฐ์ด๋. ETF ๊ฐ๋ ๋ถํฐ ์ด๋ณด์๊ฐ ๋ฐ๋์ ์์์ผํ ํฌ์ ์ ๋ต๊น์ง ์๊ฐํฉ๋๋ค.", + "contentPreview": "ํฌ์๋ฅผ ์ด๋์๋ถํฐ ์์ํด์ผ ํ ์ง ๋ชฐ๋ผ ๋ง์ค์ด๊ณ ์๋ ์ง์ฅ์ธ์๊ฒ ETF(์์ฅ์ง์ํ๋)๋ ๋งค๋ ฅ์ ์ธ ์ต์ ์ ๋๋ค. ETF๋ ๋ค์ํ ์ฃผ์์ ๋ถ์ฐ ํฌ์ํ ์ ์์ด ๋น๊ต์ ์์ ํ๋ค๊ณ ์๋ ค์ ธ ์๋๋ฐ์. ์ด ๊ธ์์๋ ์ง์ฅ์ธ์ด ์ 30๋ง์์ผ๋ก ETF ํฌ์ํ ๋ ๋์์ด ๋๋ ์ ๋ณด๋ฅผ ์ ๋ฆฌํ์์ต๋๋ค. ํนํ ํฌ์ ์ด๋ณด์๋ค์ด ์์์ผ ํ ๋ถ๋ถ๊ณผ ์ง์ ์ฒดํฌํด์ผ ํ ๋ฆฌ์คํธ๋ฅผ ์ค์ฌ์ผ๋ก ์ค๋ช ...", + "articleType": "investment" + }, + { + "post_id": "2026-07-21_๋ฌ๋ฌํ์ ํ์ด๋ฐ๋ด๊ฐํ๋ฆฐ์ ์๋์ด์ _004ff64b", + "keyword": "๋ฌ๋ฌ ํ์ ํ์ด๋ฐ ๋ด๊ฐ ํ๋ฆฐ ์ ์๋ ์ด์ ", + "title": "ํ์ ํ์ด๋ฐ, ๋ด๊ฐ ๋งค๋ฒ ํ๋ฆฌ๋ ์ด์ ๋? ๋ฌ๋ฌ ํ์ ์ ์ฌ๋ฆฌ์ ์ ๋ต", + "status": "pending", + "source": "auto", + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "blogUrl": "", + "errorMessage": null, + "createdAt": "2026-07-21T05:54:07.716326", + "publishedAt": null, + "lastAttemptAt": "2026-07-21T05:54:07.716326", + "attempts": 1, + "runNumber": 207, + "wordCount": 999, + "faqCount": 2, + "category": "์ผ๋ฐ", + "labels": [ + "ํ์ ", + "๋ฌ๋ฌํ์จ", + "๊ธ์ต์ ๋ต", + "๊ฒฝ์ ์งํ", + "์ฌ๋ฆฌํฌ์", + "์ธํ์์ฅ", + "ํ์ ํ์ด๋ฐ" + ], + "metaDescription": "๋ฌ๋ฌ ํ์ ํ์ด๋ฐ์ ๋์น๋ ์ด์ ์ ์ฌ๋ฐ๋ฅธ ํ์ ์ ๋ต์ ์๊ฐํฉ๋๋ค. ๊ฒฝ์ ์งํ์ ๊ฐ์ธ์ ๊ณํ์ ๋ง์ถ ํ์ ์ ๋ต์ผ๋ก ์์ ์ ์ธ ๊ธ์ต ๊ด๋ฆฌ๋ฅผ ๋์๋๋ฆฝ๋๋ค.", + "contentPreview": "ํ์ ํ์ด๋ฐ์ ์ ์ด๋ ๊ฒ ์ด๋ ค์ธ๊น? ์์ฆ ๋ค์ด ๋ฌ๋ฌ ํ์ ์ ์ค์์ฑ์ด ์ปค์ง๋ฉด์ ๋ง์ ์ฌ๋๋ค์ด ์ต์ ์ ํ์ ํ์ด๋ฐ์ ์ฐพ๊ธฐ ์ํด ๊ณ ์ฌํ๊ณ ์์ต๋๋ค. ๊ตญ์ ์ ์ธ๋ ๊ฒฝ์ ๋ณ๋์ ์์ธกํ๋ ๊ฒ์ ์ ๋ฌธ๊ฐ๋ค์๊ฒ๋ ์ฝ์ง ์์ ์ผ์ ๋๋ค. ๊ทธ๋งํผ ํ์ ์๊ธฐ๋ ์ฐ๋ฆฌ์ ์์์ ๋น๋๊ฐ๊ธฐ๊ฐ ์ฌ์ด ์ผ์ด์ฃ . \"ํ์ ํ์ด๋ฐ์ ๋์น๋ ์ด์ ๋ ๋ฐ๋ก ์ฌ๋ฆฌ์ ์์ธ๊ณผ ์์ธก์ ์ด๋ ค์ ๋๋ฌธ์ ๋๋ค.\" ๐ก...", + "articleType": "analysis" + }, + { + "post_id": "2026-07-21_๋ฌ๋ฌํ์ ํ์ด๋ฐ๋ด๊ฐํ๋ฆฐ์ ์๋์ด์ _f33dd961", + "keyword": "๋ฌ๋ฌ ํ์ ํ์ด๋ฐ ๋ด๊ฐ ํ๋ฆฐ ์ ์๋ ์ด์ ", + "title": "๋ฌ๋ฌ ํ์ ํ์ด๋ฐ ๋ด๊ฐ ์๊พธ ํ๋ฆฌ๋ ์ด์ ", + "status": "pending", + "source": "auto", + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "blogUrl": "", + "errorMessage": null, + "createdAt": "2026-07-21T05:51:53.699258", + "publishedAt": null, + "lastAttemptAt": "2026-07-21T05:51:53.699258", + "attempts": 1, + "runNumber": 207, + "wordCount": 927, + "faqCount": 0, + "category": "์ผ๋ฐ", + "labels": [ + "ํ์ ", + "๋ฌ๋ฌ", + "ํ์จ", + "๊ธ๋ฆฌ", + "๊ฒฝ์ ", + "ํ์ ํ์ด๋ฐ", + "์์๋ฃ" + ], + "metaDescription": "๋ฌ๋ฌ ํ์ ํ์ด๋ฐ์ ์ ํํ ๋ง์ถ๊ธฐ ํ๋ ์ด์ ์ ์ด์ ๋ํ ๋์ ์ ๋ต์ ํตํ ํ์ ์ ์ค์๋ฅผ ์ค์ด๋ ๋ฐฉ๋ฒ์ ์์๋ณด์ธ์.", + "contentPreview": "๋ฌ๋ฌ ํ์ ํ์ด๋ฐ๊ณผ ํ์จ ๋ณ๋์ต๊ทผ ํ์จ ์์ฅ์์๋ ๋ค์ํ ์์ธ๋ค์ ์ํด ํ์จ์ด ๊ธ๊ฒฉํ ๋ณ๋ํ๊ณ ์์ต๋๋ค. ํนํ ๊ธ๋ก๋ฒ ๊ฒฝ์ ์์ ์ฑ๊ณผ ๋ฏธ๊ตญ ์ฐ์ค์ ๊ธ๋ฆฌ ์ ์ฑ ๋ฑ์ด ํ์จ์ ํฐ ์ํฅ์ ๋ฏธ์น๊ณ ์์ต๋๋ค. 2026๋ 7์ ํ์ฌ, ๋ง์ ์ฌ๋๋ค์ด ์ ์ ํ ํ์ ํ์ด๋ฐ์ ์ก๊ธฐ ์ํด ๊ณ ๋ฏผํ๊ณ ์์ง๋ง, ํ์จ ๋ณ๋์ด ์์ธก๋ณด๋ค ๋ณต์กํด ์ฝ์ง ์์ ์ํฉ์ ๋๋ค.ํ์ ์ ์ฐธ ํ์ด๋ฐ์ ๋ง์ถ...", + "articleType": "analysis" + }, + { + "post_id": "2026-07-21_์ง์ฅ์ธ์30๋ง์ETFํฌ์์์งํ๊ธฐ_8a94a8e3", + "keyword": "์ง์ฅ์ธ ์ 30๋ง์ ETF ํฌ์ ์์ง ํ๊ธฐ", + "title": "์ง์ฅ์ธ ์ 30๋ง์ ETF ํฌ์, ์์งํ ์ด๋จ๊น?", + "status": "pending", + "source": "auto", + "blogId": "blog1", + "blogName": "HOGU What?", + "blogUrl": "", + "errorMessage": null, + "createdAt": "2026-07-21T05:50:29.657082", + "publishedAt": null, + "lastAttemptAt": "2026-07-21T05:50:29.657082", + "attempts": 1, + "runNumber": 207, + "wordCount": 1149, + "faqCount": 2, + "category": "์ผ๋ฐ", + "labels": [ + "ETF", + "ํฌ์", + "์ง์ฅ์ธ", + "๊ธ์ต", + "์ฌํ ํฌ", + "์์กํฌ์", + "์์ฅ๋ถ์" + ], + "metaDescription": "์ง์ฅ์ธ ์ 30๋ง ์์ผ๋ก ETF ํฌ์๋ฅผ ์์ํ ๋ ์์์ผ ํ ์์ง ํ๊ธฐ๋ฅผ ์ดํด๋ณด์ธ์. ETF์ ์ฅ์ ๊ณผ ์ฃผ์์ ๋ ํจ๊ป ์๋ดํฉ๋๋ค.", + "contentPreview": "์ง์ฅ์ธ์ผ๋ก ์๊ธ์ ๋ฐ๋ค ๋ณด๋ฉด ๋์ด๊ฐ๋ ์ํ๋น์ ๋๋นํด ํฌ์์ ๋ํ ๊ถ๊ธ์ฆ์ด ์ปค์ง๋๋ค. ํนํ ์ 30๋ง ์์ด๋ผ๋ ์ ์ ๊ธ์ก์ผ๋ก๋ ๊ฐ๋ฅํ ETF ํฌ์๋ ๋ง์ ์ด๋ค์ ๊ด์ฌ์ฌ์ ๋๋ค. ํ์ง๋ง ์ค์ ๋ก ํฌ์์ ๋ฐ์ด๋ ์ฌ๋๋ค์ด ์ด๋ค ๊ฒฝํ์ ํ๋์ง, ์ด ๊ธ์ ํตํด ์์งํ๊ฒ ์ดํด๋ณด๊ฒ ์ต๋๋ค.๐ก ํต์ฌ ํฌ์ธํธ: ETF๋ ์์ก์ผ๋ก ์์ํ ์ ์๋ ํฌ์์ด์ง๋ง, ๊ฐ ์ํ์ ํน์ฑ๊ณผ ์์ฅ...", + "articleType": "investment" + }, + { + "post_id": "2026-07-21_์ฝ์ธํฌ์1๋ ํ์์งํ์ด์ผ๊ธฐ_e4417826", + "keyword": "์ฝ์ธ ํฌ์ 1๋ ํ ์์งํ ์ด์ผ๊ธฐ", + "title": "์ฝ์ธ ํฌ์ 1๋ ํ: ์์งํ ์ด์ผ๊ธฐ์ ๊ตํ", + "status": "failed", + "source": "auto", + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "blogUrl": "", + "errorMessage": "์ฌ์์ฑ ์คํจ", + "createdAt": "2026-07-21T00:00:00", + "publishedAt": null, + "lastAttemptAt": "2026-07-22T18:05:55.939422", + "attempts": 8, + "runNumber": 0, + "wordCount": 847, + "faqCount": 2, + "category": "๊ธ์ต", + "labels": [ + "์ฝ์ธ ํฌ์", + "๊ธ์ต ๋ด์ค", + "ํฌ์ ๋ฆฌ์คํฌ", + "๋ณ๋์ฑ", + "์ด๋ณด ํฌ์", + "์ฌ๋ฌด ๊ด๋ฆฌ", + "ํฌ์ ํ" + ], + "metaDescription": "์ฝ์ธ ํฌ์๋ ๋ณ๋์ฑ์ด ํฌ๊ณ ๋ฆฌ์คํฌ๊ฐ ๋์ ์ ์คํ ์ ๊ทผ์ด ํ์ํฉ๋๋ค. ์ง๋ 1๋ ์ฝ์ธ ์์ฅ์ ๋ณํ์ ํฌ์ ์ ๊ณ ๋ คํ ์ ์ ์ ๋ฆฌํฉ๋๋ค.", + "contentPreview": "๋ง์ ๋ถ๋ค์ด ํ ๋ฒ์ฏค์ ์ฝ์ธ ํฌ์๋ฅผ ๊ณ ๋ฏผํด ๋ณด์ จ์ ํ ๋ฐ์. ๋ค์ํ ์ฑ๊ณต ์ฌ๋ก์ ํจ๊ป ์ฐ๋ ค ์์ธ ๋ชฉ์๋ฆฌ๋ ๋ค๋ ค์ต๋๋ค. ๊ทธ๋ ๋ค๋ฉด, ์ด ํฌ์๋ ์ ๋ง ๋๊ตฌ์๊ฒ๋ ์ ๋ฆฌํ ๊ฑธ๊น์? ์ด๋ฒ ํฌ์คํธ์์๋ ์ฝ์ธ ํฌ์๊ฐ ์ง๋ 1๋ ๋์ ์ด๋ ์ ๋์ ๋ณํ๋ฅผ ๊ฒช์๊ณ , ์ด๋ค ์ ์์ ํนํ ์ฃผ์ํด์ผ ํ๋์ง ๋ค๋ค๋ณด๋ ค๊ณ ํฉ๋๋ค.ํต์ฌ ํฌ์ธํธ: ์ฝ์ธ ํฌ์๋ ๋ณ๋์ฑ์ด ํฌ๋ฏ๋ก ์์ ์ ์ฌ๋ฌด ์ํ์...", + "articleType": "investment" + }, + { + "post_id": "2026-07-21_์ฝ์ธํฌ์1๋ ํ์์งํ์ด์ผ๊ธฐ_8cf0cb3b", + "keyword": "์ฝ์ธ ํฌ์ 1๋ ํ ์์งํ ์ด์ผ๊ธฐ", + "title": "์ฝ์ธ ํฌ์, 1๋ ์ ์์ง๋ด๋ฐฑํ ํ๊ณ ", + "status": "failed", + "source": "auto", + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "blogUrl": "", + "errorMessage": "์ฌ์์ฑ ์คํจ", + "createdAt": "2026-07-21T00:00:00", + "publishedAt": null, + "lastAttemptAt": "2026-07-22T18:05:51.783468", + "attempts": 8, + "runNumber": 0, + "wordCount": 953, + "faqCount": 2, + "category": "๊ธ์ต", + "labels": [ + "์ฝ์ธ ํฌ์", + "๊ฐ์ํํ", + "๋นํธ์ฝ์ธ", + "์ด๋๋ฆฌ์", + "๊ฐ์ํํ ์์ฅ", + "์์ฅ ๋ณ๋์ฑ", + "ํฌ์ ํ๊ธฐ" + ], + "metaDescription": "๊ฐ์ํํ, ์ฝ์ธ ํฌ์ 1๋ ํ์ ์์งํ ํ๊ณ ๊ธฐ. ์ฝ์ธ ์์ฅ์ ๋ณํ์ ํฌ์์ ํ๊ธฐ, ๊ทธ๋ฆฌ๊ณ ๋ฏธ๋ ์ ๋ง์ ๋ํ ๊น์ด ์๋ ๋ถ์.", + "contentPreview": "2025๋ ์ค๋ฐ, ๊ฐ์ํํ์ ๋จ๊ฑฐ์ด ์ด๊ธฐ๊ฐ ์ ์ธ๊ณ๋ฅผ ํฉ์ธ์์ต๋๋ค. ํ์ง๋ง ์ค๋๋ , ์ด ์ดํ์ ๋ฐ์ด๋ ์ฌ๋๋ค์ ๊ณผ์ฐ ์ด๋ค ๊ธฐ๋ถ์ผ๊น์? ์ฝ์ธ ํฌ์ 1๋ ํ์ ํ์ค์ ๋ค์ฌ๋ค๋ด ๋๋ค. ๐ก ํต์ฌ ์์ฝ: ์ฝ์ธ ํฌ์๋ ๋์ ๋ณ๋์ฑ๊ณผ ๋ถํ์ค์ฑ์๋ ๋ถ๊ตฌํ๊ณ ๋ฏธ๋ ๊ธฐ์ ์ ๋ํ ๊ธฐ๋๊ฐ์ ํ๊ณ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ฑ๊ณผ ์์ ์ฑ์ ์ํด ์ ์คํ ์ ๊ทผ์ด ํ์ํฉ๋๋ค. ๊ฐ์ํํ ์์ฅ์ ๋ณํ...", + "articleType": "investment" + }, + { + "post_id": "2026-07-20_ํด์ง์ฐ๊ธDCํ์ง์ ์ด์ฉํ๋ฉด์๋ฐฐ์ด๊ฒ_5879dfa3", + "keyword": "ํด์ง์ฐ๊ธ DCํ ์ง์ ์ด์ฉํ๋ฉด์ ๋ฐฐ์ด ๊ฒ", + "title": "ํด์ง์ฐ๊ธ DCํ, ์ง์ ์ด์ฉํ๋ฉด์ ๋ฐฐ์ด ๊ตํ๋ค", + "status": "pending", + "source": "auto", + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "blogUrl": "", + "errorMessage": null, + "createdAt": "2026-07-20T23:11:02.614154", + "publishedAt": null, + "lastAttemptAt": "2026-07-20T23:11:02.614154", + "attempts": 1, + "runNumber": 206, + "wordCount": 968, + "faqCount": 2, + "category": "์ผ๋ฐ", + "labels": [ + "DCํ ํด์ง์ฐ๊ธ", + "ํด์ง์ฐ๊ธ", + "ํฌ์ ์ด์ฉ", + "๋ ธํ ์ค๋น", + "์์ฐ ๊ด๋ฆฌ", + "์ฐ๊ธ ๊ด๋ฆฌ", + "๊ธ์ต ์ํ" + ], + "metaDescription": "DCํ ํด์ง์ฐ๊ธ์ ๊ตฌ์กฐ์ ์ด์ฉ ๋ฐฉ๋ฒ์ ์ดํดํ๊ณ , ์์ ์๊ฒ ๋ง๋ ์ ๋ต์ ์ธ ์ ํ์ผ๋ก ๋ ธํ ์ค๋น๋ฅผ ์์ํ์ธ์.", + "contentPreview": "ํด์ง์ฐ๊ธ DCํ, ๋ฐ๋ก ์ดํด๊ฐ ๋์๋์? ๋ค์ํ ์ ํ์ ํด์ง์ฐ๊ธ ์ ๋ ์ค์์ DCํ(ํ์ ๊ธฐ์ฌํ)์ ๋ฌด์๋ณด๋ค ๊ฐ์ธ์ ์ ํ๊ณผ ๊ด๋ฆฌ๊ฐ ์ค์ํฉ๋๋ค. ์ด๋ฒ ๊ธ์์๋ ์์ ์ DCํ ํด์ง์ฐ๊ธ์ ์ง์ ์ด์ฉํ๋ฉฐ ์์์ผ ํ ์ฌํญ์ ์ค์ฌ์ผ๋ก ์ด์ผ๊ธฐ ๋๋ ๋ณด๊ฒ ์ต๋๋ค. ๐ก ํต์ฌ ํฌ์ธํธ: ํด์ง์ฐ๊ธ DCํ์ ๊ฐ์ ์๊ฐ ์ง์ ํฌ์ ๊ฒฐ์ ์ ๋ด๋ฆฌ๋ ๊ตฌ์กฐ์ ๋๋ค. ๊ฐ์ ์๋ ๊ฐ์์ ํฌ์ ์ฑํฅ๊ณผ ์...", + "articleType": "review" + }, + { + "post_id": "2026-07-20_ํด์ง์ฐ๊ธDCํ์ง์ ์ด์ฉํ๋ฉด์๋ฐฐ์ด๊ฒ_a2556012", + "keyword": "ํด์ง์ฐ๊ธ DCํ ์ง์ ์ด์ฉํ๋ฉด์ ๋ฐฐ์ด ๊ฒ", + "title": "ํด์ง์ฐ๊ธ DCํ ์ง์ ์ด์ฉํ๋ฉด์ ๋ฐฐ์ด ๊ฒ๋ค", + "status": "pending", + "source": "auto", + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "blogUrl": "", + "errorMessage": null, + "createdAt": "2026-07-20T23:09:15.408334", + "publishedAt": null, + "lastAttemptAt": "2026-07-20T23:09:15.408334", + "attempts": 1, + "runNumber": 206, + "wordCount": 1496, + "faqCount": 2, + "category": "์ผ๋ฐ", + "labels": [ + "ํด์ง์ฐ๊ธ", + "DCํ", + "ํฌ์", + "์ฌ์ ๊ด๋ฆฌ", + "๊ฐ์ธ์ฌ๋ฌด", + "๋ฆฌ์คํฌ๊ด๋ฆฌ", + "๊ธ์ต์ํ" + ], + "metaDescription": "ํด์ง์ฐ๊ธ DCํ์ ์ง์ ์ด์ฉํด ๋ณด๋ฉด์ ์ป์ ๊ตํ์ ๊ณต์ ํฉ๋๋ค. DCํ์ ์ฅ๋จ์ , ํฌ์ ์ ๋ต, ์ ํฉํ ํ๊ฒ์ธต์ ๋ํ ์์งํ ๋ถ์์ ๋๋ค.", + "contentPreview": "ํด์ง์ฐ๊ธ์ ์ค์ค๋ก ์ด์ฉํ๋ ค๊ณ ํ ๋, ๋ง์ ๋ถ๋ค์ด ์ด๋ค ์ ์์ ์ด๋ ค์์ ๊ฒช๊ณ ๊ณ์ ๊ฐ์? ํนํ, DCํ ํด์ง์ฐ๊ธ์์ ์ง์ ์ด์ฉ์ ์์ํ์ ๋ถ๋ค์ ์ด๋ค ๋ถ๋ถ์ด ๊ฐ์ฅ ๋ง๋งํ์ จ๋์ง ๊ถ๊ธํ ์ ์์ต๋๋ค. ๋์ฒด๋ก ํด์ง์ฐ๊ธ์ ํน์ง๊ณผ ํฌ์์ ๊ธฐ๋ณธ๊ธฐ๋ฅผ ์ ํ์ ํ์ง ๋ชปํด ํผ๋์ค๋ฌ์ด ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. DCํ์ ์ฌ์ฉ์๊ฐ ์ง์ ํฌ์ ๊ฒฐ์ ์ ๋ด๋ ค์ผ ํ๊ธฐ ๋๋ฌธ์ ์ ํ์ ์ฌ์ง๊ฐ ๋ง์ ...", + "articleType": "review" + }, + { + "post_id": "2026-07-20_์ง์ฅ์ธ์30๋ง์ETFํฌ์์์งํ๊ธฐ_5b6ee683", + "keyword": "์ง์ฅ์ธ ์ 30๋ง์ ETF ํฌ์ ์์ง ํ๊ธฐ", + "title": "์ง์ฅ์ธ ์ 30๋ง์ ETF ํฌ์ ์์ง ํ๊ธฐ", + "status": "pending", + "source": "auto", + "blogId": "blog1", + "blogName": "HOGU What?", + "blogUrl": "", + "errorMessage": null, + "createdAt": "2026-07-20T23:07:31.410682", + "publishedAt": null, + "lastAttemptAt": "2026-07-20T23:07:31.410682", + "attempts": 1, + "runNumber": 206, + "wordCount": 1585, + "faqCount": 3, + "category": "์ผ๋ฐ", + "labels": [ + "ETF", + "ํฌ์", + "์ฌํ ํฌ", + "๊ธ์ต", + "์ง์ฅ์ธ์ฌ๋ฌด๊ณํ", + "์30๋ง์ํฌ์", + "ํฌ์์ด๋ณด" + ], + "metaDescription": "์ง์ฅ์ธ ๊น์จ๊ฐ ์ 30๋ง์์ผ๋ก ETF ํฌ์์ ๋์ ์ด์ ์ ๋ฐฉ๋ฒ์ ์ ์ํฉ๋๋ค. ETF ํฌ์ ์ ํ์ธํ ์ฒดํฌ๋ฆฌ์คํธ ๋ฐ ๊ฒฝ๊ฐ์ฌ ํ์์ฑ ๊ฐ์กฐ.", + "contentPreview": "์์ธ์ ํ ์คํํธ์ ์ ๋ค๋๊ณ ์๋ ์ง์ฅ์ธ ๊น์จ๋ ์ต๊ทผ ์ 30๋ง์์ผ๋ก ETF์ ํฌ์ํ๋ ๋ฐฉ๋ฒ์ ๊ด์ฌ์ ๊ฐ์ก์ต๋๋ค. ๊ทธ๋ ์ฃผ์ ์์ฅ์ ๋ณต์ก์ฑ์ ์ค์ด๋ฉด์๋ ์๊ธ์ ์ผ๋ถ๋ฅผ ์ฑ์ฅ์ฑ ์๋ ์์ฐ์ ์ฎ๊ธฐ๊ณ ์ถ์ดํ์ต๋๋ค. ๋ค์ํ ์ ๋ณด๋ฅผ ์กฐ์ฌํ๊ณ , ์ฌ๋ฌ ์ ๋ฌธ๊ฐ๋ค์ ์๊ฒฌ์ ๋ชจ์ผ๋ ๊ณผ์ ์์ ์ง์ฅ์ธ๋ค์ด ์ ์ด๋ฐ ํฌ์๋ฅผ ๊ณ ๋ คํ๋์ง, ๊ทธ๋ฆฌ๊ณ ์ค์ ๋ก ์ด๋ค ์ ์ ์ฃผ์ํด์ผ ํ๋์ง๋ฅผ ์๊ฒ...", + "articleType": "investment" + }, + { + "post_id": "2026-07-20_๋ฐฐ๋น์ฃผ์ฒ์์ฌ๊ธฐ์ ๋ด๊ฐ๋ชฐ๋๋๊ฒ_4da2e9bb", + "keyword": "๋ฐฐ๋น์ฃผ ์ฒ์ ์ฌ๊ธฐ ์ ๋ด๊ฐ ๋ชฐ๋๋ ๊ฒ", + "title": "๋ฐฐ๋น์ฃผ ํฌ์ ์์ํ๊ธฐ ์ ์ ๊ผญ ์์์ผ ํ 5๊ฐ์ง", + "status": "pending", + "source": "auto", + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "blogUrl": "", + "errorMessage": null, + "createdAt": "2026-07-20T12:20:47.212419", + "publishedAt": null, + "lastAttemptAt": "2026-07-20T12:20:47.212419", + "attempts": 1, + "runNumber": 205, + "wordCount": 1552, + "faqCount": 2, + "category": "์ผ๋ฐ", + "labels": [ + "๋ฐฐ๋น์ฃผ", + "ํฌ์์ ๋ต", + "๊ธ์ต์ ๋ณด", + "์ฆ๊ถํฌ์", + "๊ฒฝ์ ์์", + "์ฌํ ํฌํ", + "์๋์ธ" + ], + "metaDescription": "์ด๋ณด ํฌ์์๋ผ๋ฉด ๋ฐฐ๋น์ฃผ ํฌ์ ์ ์ ๊ผญ ์์๋์ด์ผ ํ ์ฌํญ๋ค์ ์ฝ๊ฒ ์ ๋ฆฌํ์ต๋๋ค. ๋ฐฐ๋น์ฃผ์ ๊ธฐ๋ณธ ๊ฐ๋ ๋ถํฐ ์ฃผ์์ฌํญ๊น์ง ์์๋ด ๋๋ค.", + "contentPreview": "์ฃผ์ ํฌ์์ ๊ด์ฌ ์๋ค๋ฉด ํ ๋ฒ์ฏค์ '๋ฐฐ๋น์ฃผ'๋ผ๋ ๋จ์ด๋ฅผ ๋ค์ด๋ณด์ จ์ ๊ฒ๋๋ค. ํ์ง๋ง ๋ฐฐ๋น์ฃผ๋ ๋จ์ํ ์ฃผ์์ ์ฌ๋ ๊ฒ๊ณผ๋ ๋ค๋ฅธ ๋ช ๊ฐ์ง ํน์ง์ด ์์ด ๋ฏธ๋ฆฌ ์์๋๋ ๊ฒ ์ข์ต๋๋ค. ํนํ ์ด๋ณด ํฌ์์๋ ์์ ์ ์ธ ์์ต์ ์ํ๋ ๋ถ๋ค์๊ฒ๋ ๋งค๋ ฅ์ ์ธ ์ ํ์ง๊ฐ ๋ ์ ์์ฃ . ์ด๋ฒ ๊ธ์ ๋ฐฐ๋น์ฃผ ํฌ์ ์ ์ ๊ผญ ์์์ผ ํ ์ฌํญ๋ค์ ์ ๋ฆฌํด๋ดค์ต๋๋ค. ๐ก ํต์ฌ ํฌ์ธํธ: ๋ฐฐ๋น์ฃผ๋ ์ ...", + "articleType": "investment" + }, + { + "post_id": "2026-07-20_๋ฐฐ๋น์ฃผ์ฒ์์ฌ๊ธฐ์ ๋ด๊ฐ๋ชฐ๋๋๊ฒ_c0e8a355", + "keyword": "๋ฐฐ๋น์ฃผ ์ฒ์ ์ฌ๊ธฐ ์ ๋ด๊ฐ ๋ชฐ๋๋ ๊ฒ", + "title": "๋ฐฐ๋น์ฃผ ์ฒ์ ์ฌ๊ธฐ ์ ๋ด๊ฐ ๋ชฐ๋๋ ๊ฒ: ์ฃผ์ ํฌ์์ ๊ผญ ํ์ํ ์ง์", + "status": "pending", + "source": "auto", + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "blogUrl": "", + "errorMessage": null, + "createdAt": "2026-07-20T12:18:38.422494", + "publishedAt": null, + "lastAttemptAt": "2026-07-20T12:18:38.422494", + "attempts": 1, + "runNumber": 205, + "wordCount": 1595, + "faqCount": 2, + "category": "์ผ๋ฐ", + "labels": [ + "๋ฐฐ๋น์ฃผ", + "์ฃผ์ ํฌ์", + "์ฌ๋ฌด ๊ฑด์ ์ฑ", + "๋ฐฐ๋น๊ธ", + "์์ ์ ์์ต", + "์ธ๊ธ", + "๊ธ๋ฆฌ ์ธ์" + ], + "metaDescription": "๋ฐฐ๋น์ฃผ ํฌ์๋ฅผ ์ฒ์ ์์ํ๊ธฐ ์ , ๋ฐฐ๋น๊ธ ์ธ์ ๊ธฐ์ ์ ์ฌ๋ฌด ์ํ์ ์ธ๊ธ ๋ฑ์ ๊ผญ ๊ณ ๋ คํด์ผ ํฉ๋๋ค. 2026๋ ๋ฐฐ๋น์ฃผ ์์ฅ์ ๋ํฅ๊ณผ ํฌ์ ์กฐ์ธ์ ํ์ธํด๋ณด์ธ์.", + "contentPreview": "์ต๊ทผ ์ฃผ์ ํฌ์๊ฐ ๋์คํ๋๋ฉด์ ๋ฐฐ๋น์ฃผ์ ๋ํ ๊ด์ฌ๋ ์์ฐ์ค๋ฝ๊ฒ ๋์์ง๊ณ ์์ต๋๋ค. ํนํ ์ํด์๊ธ ๋ง๋ จ์ด๋ ์์ ์ ์ธ ์์ต์ ๋ชฉํ๋ก ํ๋ ํฌ์์๋ค ์ฌ์ด์์ ๋ฐฐ๋น์ฃผ๋ ๋งค๋ ฅ์ ์ธ ์ ํ์ง๋ก ๋ถ๊ฐ๋ฉ๋๋ค. ๊ทธ๋ฌ๋ ๋ง์ ๋ฐฐ๋น์ฃผ์ ํฌ์๋ฅผ ๊ณ ๋ คํ ๋, ๊ทธ ๋งค๋ ฅ์ ์ธ ๋ฐฐ๋น๊ธ ์ธ์ ๋ค์ํ ์ธก๋ฉด์ ๋ฐ์ ธ๋ณด์์ผ ํ๋ค๋ ์ ์์ ํผ๋์ ๊ฒช๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. ์ด๋ฒ ๊ธ์์๋ ๋ฐฐ๋น์ฃผ ํฌ์๋ฅผ ์...", + "articleType": "investment" + }, + { + "post_id": "2026-07-20_์ง์ฅ์ธ์30๋ง์ETFํฌ์์์งํ๊ธฐ_6fc520b5", + "keyword": "์ง์ฅ์ธ ์ 30๋ง์ ETF ํฌ์ ์์ง ํ๊ธฐ", + "title": "์ง์ฅ์ธ ์ 30๋ง์ ETF ํฌ์, ์ด๋ ๊ฒ ํด๋ณด๋", + "status": "pending", + "source": "auto", + "blogId": "blog1", + "blogName": "HOGU What?", + "blogUrl": "", + "errorMessage": null, + "createdAt": "2026-07-20T12:16:37.583320", + "publishedAt": null, + "lastAttemptAt": "2026-07-20T12:16:37.583320", + "attempts": 1, + "runNumber": 205, + "wordCount": 1457, + "faqCount": 2, + "category": "์ผ๋ฐ", + "labels": [ + "ETF ํฌ์", + "์ง์ฅ์ธ ์ฌํ ํฌ", + "์์ก ํฌ์", + "ํฌ์ ์ฒดํฌ๋ฆฌ์คํธ", + "๊ธ์ต ํ", + "ํฌ์ ์ด๋ณด์", + "ํฌ์ ์ค์" + ], + "metaDescription": "์ง์ฅ์ธ ์ 30๋ง์์ผ๋ก ETF ํฌ์๋ฅผ ์์ํ๋ ๋ฐฉ๋ฒ๊ณผ ํ์ ์ฒดํฌ๋ฆฌ์คํธ๋ฅผ ํตํด ์์ ์ ์ธ ์์ต์ ๋ฌ์ฑํ์ธ์.", + "contentPreview": "์ฌํ ํฌ๋ฅผ ์์ํ๊ณ ์ถ์๋ฐ ์ด๋ค ๋ฐฉ์์ด ์ข์๊น์? ํนํ ๋ฐ์ ์ง์ฅ์ธ๋ค์๊ฒ ์์ ์ ์ธ ํฌ์๋ฒ์ ๊ณ ๋ฏผ์ผ ์ ์์ต๋๋ค. ์ 30๋ง์์ผ๋ก ETF์ ํฌ์๋ฅผ ์์ํ๋ค๋ ์์ด๋์ด๋ ๊ฝค ๋งค๋ ฅ์ ์ ๋๋ค. ํ์ง๋ง ๋ง์ ์์ํ๋ ค๊ณ ํ๋ฉด ๋ง์ฐํจ์ด ๋ฐ๋ ค์ค๊ธฐ ๋ง๋ จ์ ๋๋ค. ์ด ๊ธ์์๋ ETF ํฌ์๋ฅผ ์์ํ๊ธฐ ์ ๊ผญ ์์์ผ ํ ๊ธฐ๋ณธ ์ ๋ณด์ ์ฒดํฌ๋ฆฌ์คํธ, ๊ทธ๋ฆฌ๊ณ ์์ฃผ ๋ฐ์ํ๋ ์ค์๋ฅผ ์ค์ฌ์ผ๋ก ...", + "articleType": "investment" + }, + { + "post_id": "2026-07-20_์ง์ฅ์ธ์30๋ง์ETFํฌ์์์งํ๊ธฐ_eae4f8e3", + "keyword": "์ง์ฅ์ธ ์ 30๋ง์ ETF ํฌ์ ์์ง ํ๊ธฐ", + "title": "์ง์ฅ์ธ ์ 30๋ง์ ETF ํฌ์ ์์ง ๋ถ์ - ๋์๊ฒ ๋ง๋ ์ ๋ต์?", + "status": "pending", + "source": "auto", + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "blogUrl": "", + "errorMessage": null, + "createdAt": "2026-07-20T06:42:00.184300", + "publishedAt": null, + "lastAttemptAt": "2026-07-20T06:42:00.184300", + "attempts": 1, + "runNumber": 204, + "wordCount": 1374, + "faqCount": 2, + "category": "์ผ๋ฐ", + "labels": [ + "ETF", + "ํฌ์์ ๋ต", + "์ง์ฅ์ธํฌ์", + "๊ธ์ตํฌ์", + "์ฅ๊ธฐํฌ์", + "์์ ์กํฌ์", + "ETFํฌ์" + ], + "metaDescription": "์ง์ฅ์ธ๋ค์ ์ํ ์ 30๋ง์ ETF ํฌ์ ์ ๋ต์ ์์ธํ ๋ถ์ํฉ๋๋ค. ๋ค์ํ ์์ฐ์ ๋ถ์ฐ ํฌ์ํ ์ ์๋ ๊ธฐํ๋ฅผ ํ์ธํ๊ณ , ETF ํฌ์ ์ ์ฃผ์ํด์ผ ํ ์ ์ ์์๋ณด์ธ์.", + "contentPreview": "์ฌ๋ฌ๋ถ์ ๋งค๋ฌ ์ผ์ ๊ธ์ก์ ํฌ์ํ๋ ๊ฒ์ด ์ข์๊น์? ํนํ ETF ํฌ์๋ ์๋์ ์ผ๋ก ์ฌ์ด ๋ฐฉ๋ฒ์ผ๋ก ์ฌ๋ฌ ์์ฐ์ ๋ถ์ฐ ํฌ์ํ ์ ์๋ ์ฅ์ ์ด ์์ต๋๋ค. ์ค๋์ ๋ง์ ์ง์ฅ์ธ๋ค์ด ๊ด์ฌ์ ๊ฐ์ง๊ณ ์๋ ์ 30๋ง์ ETF ํฌ์๊ฐ ์ค์ ๋ก ์ด๋ค ์๋ฏธ๋ฅผ ๊ฐ์ง๋์ง ํผํผํ ๋ถ์์ ํด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค. ๐ก ํต์ฌ ํฌ์ธํธ: ์ง์ฅ์ธ๋ค์ด ์ 30๋ง์์ ETF์ ํฌ์ํ๋ฉด ์ฌ๋ฌ ์์ฐ์ ๋ถ...", + "articleType": "investment" + }, + { + "post_id": "2026-07-20_ํ์จ1500์์๋ํด์ธ์ฌํํ์ ๊ฟํ_9d9133dd", + "keyword": "ํ์จ 1500์ ์๋ ํด์ธ์ฌํ ํ์ ๊ฟํ", + "title": "ํ์จ 1500์ ์๋, ํด์ธ์ฌํ ํ์ ๋๋ํ๊ฒ ํ๋ ๋ฒ", + "status": "published", + "source": "auto", + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "blogUrl": "https://hogugolfntraval.blogspot.com/2026/07/1500.html", + "errorMessage": null, + "createdAt": "2026-07-20T06:36:41.126428", + "publishedAt": "2026-07-20T06:36:42.182986", + "lastAttemptAt": "2026-07-20T06:36:42.182986", + "attempts": 2, + "runNumber": 204, + "wordCount": 4565, + "faqCount": 3, + "category": "์ผ๋ฐ", + "labels": [ + "ํ์จ 1500์", + "ํด์ธ์ฌํ ํ์ ", + "ํ์ ๊ฟํ", + "์๋ฌ๋ฌ ํ์จ", + "ํ์ ์์๋ฃ ์ฐ๋" + ], + "metaDescription": "2026๋ ์๋ฌ๋ฌ ํ์จ์ด 1500์๋๋ฅผ ์ค๊ฐ๋ ์ง๊ธ, ํ์ ํ์ด๋ฐ๊ณผ ์์๋ฃ ์ฐ๋๋ฅผ ์ด๋ป๊ฒ ์ฑ๊ธฐ๋๋์ ๋ฐ๋ผ ์ค์ ์์ ์ฅ๋ ์ธํ ๊ธ์ก์ด ๋ฌ๋ผ์ง๋๋ค. ์ง์ ๊ฒฝํํ ๋ถํ ํ์ ๋ฐฉ๋ฒ๊ณผ ์ํ๋ณ ์ฐ๋์จ ๋น๊ต, ์ฌํ ์์ฐ๋ณ ํ์ ์ ๋ต๊น์ง ์ ๋ฆฌํ์ต๋๋ค.", + "contentPreview": "ํ์จ ๋ด์ค๋ง ๋ณด๋ฉด ํด์ธ์ฌํ์ ์ด์ ๊ทธ๋ฆผ์ ๋ก์ฒ๋ผ ๋๊ปด์ง๋๋ค. '1500์ ๋์๋ค'๋ ๊ธฐ์ฌ ์ ๋ชฉ๋ง ๋ณด๊ณ ์ฌํ์ ์์ ์ ์ด์ผ ํ๋ ๊ณ ๋ฏผํ๋ ๋ถ๋ค๋ ๋ง์๋ฐ์, ์ฌ์ค ํ์จ 1500์ ์๋๋ผ๊ณ ํด์ ํ์ ๋ฐฉ๋ฒ์ด ํต์งธ๋ก ๋ฐ๋๋ ๊ฑด ์๋๋๋ค. ์คํ๋ ค ํ์จ์ด ๋์ ๋์ผ์๋ก ์ด๋ค ์์ ์, ์ด๋ค ๋ฐฉ๋ฒ์ผ๋ก ํ์ ํ๋๋์ ๋ฐ๋ผ ์ฒด๊ฐํ๋ ๋ถ๋ด์ด ํฌ๊ฒ ๋ฌ๋ผ์ง๋๋ค. ํํ 'ํ์จ ์ค๋ฅด๋ฉด...", + "articleType": "travel_guide" + }, + { + "post_id": "2026-07-20_์๋ฌ๋ฌํ์จ1500์๋ํํ ํฌ๋์๋ฒ_c7150620", + "keyword": "์๋ฌ๋ฌ ํ์จ 1500์๋ ํํ ํฌ ๋์๋ฒ", + "title": "์๋ฌ๋ฌ ํ์จ 1500์๋ ์๋, ํํ ํฌ ๋์๋ฒ ์ค์ ์ ๊ฒ", + "status": "published", + "source": "auto", + "blogId": "blog1", + "blogName": "HOGU What?", + "blogUrl": "https://www.hoguwhat.com/2026/07/1500.html", + "errorMessage": null, + "createdAt": "2026-07-20T06:25:20.942692", + "publishedAt": "2026-07-20T06:25:22.460478", + "lastAttemptAt": "2026-07-20T06:25:22.460478", + "attempts": 2, + "runNumber": 204, + "wordCount": 4083, + "faqCount": 3, + "category": "์ผ๋ฐ", + "labels": [ + "์๋ฌ๋ฌํ์จ", + "ํํ ํฌ", + "ํ์จ1500์", + "ํด์ธ์ฌํํ์ ", + "์ธํ์๊ธ" + ], + "metaDescription": "์๋ฌ๋ฌ ํ์จ์ด ๋ค์ 1500์๋๋ก ์ฌ๋ผ์ ์ง๊ธ, ํ์ ์์ ์ ๊ณ ๋ฏผํ๋ ๋ถ๋ค์ ์ํด ์ธํ์๊ธ๊ณผ ๋ฌ๋ฌ ETF, ๋ถํ ๋งค์ ์ ๋ต๊น์ง ์ค์ ๊ฒฝํ๊ณผ ํ๊ตญ์ํยท๊ธฐํ์ฌ์ ๋ถ ๊ณต์ ์๋ฃ๋ฅผ ๋ฐํ์ผ๋ก ์ ๋ฆฌํ ํํ ํฌ ๋์๋ฒ๊ณผ ์ฒดํฌ๋ฆฌ์คํธ๋ฅผ ์๊ฐํฉ๋๋ค.", + "contentPreview": "์ง๋๋ฌ ์ํ ์ฑ์ ์ผฐ๋ค๊ฐ ํ์จ ์ฐฝ์ ๋ณด๊ณ ์ ์ ๋ฉ์นซํ์ต๋๋ค. ์๋ฌ๋ฌ ํ์จ์ด 1500์๋์ ๋ค์ ์ง์ ํ๋ค๋ ๋ด์ค๊ฐ ๋์จ ๋ค๋ถํฐ, ํด์ธ์ฌํ ์นดํ๋ ์ฌํ ํฌ ์ปค๋ฎค๋ํฐ์๋ ํํ ํฌ ๊ด๋ จ ์ง๋ฌธ์ด ๋์ ๋๊ฒ ๋์๋ค๊ณ ํฉ๋๋ค. ํ์ ์ ๋ฏธ๋ค์ผ ํ ์ง, ์ง๊ธ์ด๋ผ๋ ๋ฌ๋ฌ๋ฅผ ์ฌ๋ฌ์ผ ํ ์ง ํ๋จ์ด ์์ง ์๋๋ค๋ ๊ธ์ด ๋ง์ต๋๋ค. ๋ง๋ฆฐํํ๋ ์ด๋ฒ ๊ธฐํ์ ์๋ฌ๋ฌ ํ์จ 1500์๋ ๊ตญ๋ฉด์์ ...", + "articleType": "analysis" + }, + { + "post_id": "2026-07-20_2026ํ๋ฐ๊ธฐ๊ธฐ์ค๊ธ๋ฆฌ์ ๋ง๊ณผ์๊ธ๋์ถ์ ๋ต_69151727", + "keyword": "2026 ํ๋ฐ๊ธฐ ๊ธฐ์ค๊ธ๋ฆฌ ์ ๋ง๊ณผ ์๊ธ ๋์ถ ์ ๋ต", + "title": "2026 ํ๋ฐ๊ธฐ ๊ธฐ์ค๊ธ๋ฆฌ ์ ๋ง๊ณผ ์๊ธยท๋์ถ ์ ๋ต ์ ๊ฒ๋ฒ", + "status": "published", + "source": "auto", + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "blogUrl": "https://hoguasset.blogspot.com/2026/07/2026_0753134477.html", + "errorMessage": null, + "createdAt": "2026-07-20T03:06:05.847336", + "publishedAt": "2026-07-20T03:06:07.037674", + "lastAttemptAt": "2026-07-20T03:06:07.037674", + "attempts": 2, + "runNumber": 1, + "wordCount": 4656, + "faqCount": 3, + "category": "์ผ๋ฐ", + "labels": [ + "๊ธฐ์ค๊ธ๋ฆฌ์ ๋ง", + "2026ํ๋ฐ๊ธฐ๊ธ๋ฆฌ", + "ํ๊ตญ์ํ๊ธฐ์ค๊ธ๋ฆฌ", + "์๊ธ๊ธ๋ฆฌ", + "๋์ถ๊ธ๋ฆฌ" + ], + "metaDescription": "2026๋ ํ๋ฐ๊ธฐ ๊ธฐ์ค๊ธ๋ฆฌ ์ธ์ ์ ๋ง๊ณผ ํจ๊ป ๋ณ๋๊ธ๋ฆฌ ๋์ถ์, ์์ ๊ธ ๊ฐ์ ์๊ฐ ์ง๊ธ ํ์ธํด๋๋ฉด ์ข์ ์ ๊ฒ ํฌ์ธํธ๋ฅผ ์ ๋ฆฌํ์ต๋๋ค. ์ฆ๊ถ๊ฐ ์ ๋ง ์ฐจ์ด์ ๊ธํต์ ์ผ์ ๋ ํจ๊ป ์ดํด๋ด ๋๋ค.", + "contentPreview": "์ฌํด ์ด๊น์ง๋ง ํด๋ ํ๊ตญ์ํ ๊ธฐ์ค๊ธ๋ฆฌ๋ '๋๊ฒฐ ์ฅ๊ธฐํ'๊ฐ ๋์ธ ์ ๋ง์ด์์ต๋๋ค. ๊ทธ๋ฐ๋ฐ ์ต๊ทผ ๋ถ์๊ธฐ๊ฐ ํ ๋ฌ๋ผ์ก์ต๋๋ค. ์ฆ๊ถ๊ฐ์์ ์ฐ๋ด ๊ธฐ์ค๊ธ๋ฆฌ ์ธ์ ๊ฐ๋ฅ์ฑ์ ์ด์ผ๊ธฐํ๊ธฐ ์์ํ๊ณ , ์ผ๋ถ์์๋ ํ ๋ฒ์ด ์๋๋ผ ๋ ๋ฒ ์ํฅ๊น์ง ๊ฑฐ๋ก ๋๊ณ ์์ต๋๋ค. ์๊ธยท๋์ถ ํต์ฅ์ ํ๋์ฉ ๊ฐ๊ณ ์๋ ์ฐ๋ฆฌ ์ ์ฅ์์๋ '๊ธ๋ฆฌ๊ฐ ์ค๋ฅธ๋ค, ์ ์ค๋ฅธ๋ค' ๋ด์ค๊ฐ ๋จ์ํ ์์ฅ ์ด์๊ฐ ์๋๋ผ ...", + "articleType": "sports_review" + }, + { + "post_id": "2026-07-20_2026ํ๋ก์ผ๊ตฌ์์๊ฒฝ์๊ณผํ๋ฐ๊ธฐ๊ด์ ํฌ์ธ_2df5defb", + "keyword": "2026 ํ๋ก์ผ๊ตฌ ์์ ๊ฒฝ์๊ณผ ํ๋ฐ๊ธฐ ๊ด์ ํฌ์ธํธ", + "title": "2026 ํ๋ก์ผ๊ตฌ ํ๋ฐ๊ธฐ ์์ ๊ฒฝ์ ๊ด์ ํฌ์ธํธ ์ ๋ฆฌ", + "status": "published", + "source": "auto", + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "blogUrl": "https://hogugolfntraval.blogspot.com/2026/07/2026_01402624469.html", + "errorMessage": null, + "createdAt": "2026-07-20T02:56:45.029673", + "publishedAt": "2026-07-20T02:56:46.436228", + "lastAttemptAt": "2026-07-20T02:56:46.436228", + "attempts": 2, + "runNumber": 1, + "wordCount": 4180, + "faqCount": 3, + "category": "์ผ๋ฐ", + "labels": [ + "ํ๋ก์ผ๊ตฌ", + "KBO๋ฆฌ๊ทธ", + "2026ํ๋ก์ผ๊ตฌ", + "์ผ๊ตฌ์์", + "ํ๋ฐ๊ธฐ์ผ๊ตฌ" + ], + "metaDescription": "2026 ํ๋ก์ผ๊ตฌ ํ๋ฐ๊ธฐ ์์ ๊ฒฝ์์ ์ ๋ฆฌํ์ต๋๋ค. ๊ฐ๋ง ๋์งํ๋ถํฐ ํธ๋ ์ด๋ ๋ง๊ฐ์ํ, ์ธ๊ตญ์ธ ์ ์ ๊ต์ฒด, 5๊ฐ ๋ง์ง๋ ธ์ ๋คํผ๊น์ง ํ๋ฐ๊ธฐ ๊ด์ ํฌ์ธํธ๋ฅผ ํ๋์ ํ์ธํด๋ณด์ธ์.", + "contentPreview": "7์ ์ค์์ ๋๊ธฐ๋ฉด ์ผ๊ตฌํฌ์ด๋ผ๋ฉด ๋ค๋ค ์ต๊ด์ฒ๋ผ ์ค๋งํธํฐ ์์ํ ์ฑ์ ์ด์ด๋ณด๊ฒ ๋์ง ์๋์? ์ ๋ IT ๊ธฐ๊ธฐ๋ ์๋น์ค๋ฅผ ๋ค๋ฃจ๋ ๋ธ๋ก๊ทธ๋ฅผ ์ด์ํ๋ฉด์๋ ์ด ์๊ธฐ๋ง ๋๋ฉด ํด๊ทผ๊ธธ์ ์์ํ๋ถํฐ ํ์ธํ๋ ํธ์ ๋๋ค. ํนํ 2026๋ ์ ๊ฐ๋ง๋ถํฐ ์ด์๊ฐ ๋ง์๋ ์์ฆ์ด๋ผ ํ๋ฐ๊ธฐ ํ๋ฆ์ด ์ด๋ป๊ฒ ํ๋ฌ๊ฐ์ง ๊ถ๊ธํดํ์๋ ๋ถ๋ค์ด ๋ง์ ๊ฒ ๊ฐ์, ํ์ธ ๊ฐ๋ฅํ ๊ณต์ ์๋ฃ๋ฅผ ๋ฐํ์ผ๋ก ์ด๋ฒ ...", + "articleType": "sports_review" + }, + { + "post_id": "2026-07-20_2026ํ๋ฐ๊ธฐ๋ฐฉ์์์ ๋๋ผ๋ง๊ธฐ๋์์ ๋ฆฌ_b084be4e", + "keyword": "2026 ํ๋ฐ๊ธฐ ๋ฐฉ์ ์์ ๋๋ผ๋ง ๊ธฐ๋์ ์ ๋ฆฌ", + "title": "2026 ํ๋ฐ๊ธฐ ๋๋ผ๋ง ๊ธฐ๋์ 5ํธ, ๋ฐฉ์ ์ ๋ณด ์ด์ ๋ฆฌ", + "status": "published", + "source": "auto", + "blogId": "blog1", + "blogName": "HOGU What?", + "blogUrl": "https://www.hoguwhat.com/2026/07/2026-5_01070982349.html", + "errorMessage": null, + "createdAt": "2026-07-20T02:47:19.191559", + "publishedAt": "2026-07-20T02:47:19.873863", + "lastAttemptAt": "2026-07-20T02:47:19.873863", + "attempts": 2, + "runNumber": 1, + "wordCount": 2582, + "faqCount": 3, + "category": "์ผ๋ฐ", + "labels": [ + "2026ํ๋ฐ๊ธฐ๋๋ผ๋ง", + "๋๋ผ๋ง๊ธฐ๋์", + "๊ตฟํํธ๋์์ฆ2", + "์ค์นํ์ฐ์ ", + "21์ธ๊ธฐ๋๊ตฐ๋ถ์ธ" + ], + "metaDescription": "2026๋ ํ๋ฐ๊ธฐ ๋ฐฉ์ ์์ ์ธ ๋๋ผ๋ง ๊ธฐ๋์ 5ํธ์ ๋ฐฉ์ก์ฌ๋ณ๋ก ์ ๋ฆฌํ์ต๋๋ค. ๊ตฟํํธ๋ ์์ฆ2, ์ค์นํ ์ฐ์ , 21์ธ๊ธฐ ๋๊ตฐ๋ถ์ธ ์บ์คํ ๊ณผ ๋ฐฉ์ ์ผ์ , ์์ฒญ์ ๋ฐ์๊น์ง ํ์ธํด๋ณด์ธ์.", + "contentPreview": "7์ ์ค์์ ๋๊ธฐ๋ฉด์ ๋ฐฉ์ก์ฌ ํ๋ฐ๊ธฐ ํธ์ฑํ๊ฐ ํ๋๋ ๊ณต๊ฐ๋๊ณ ์์ต๋๋ค. ์๋ฐ๊ธฐ์ ์ ๋ ํฅํ ์ฑ์ ์ด ๊ฐ๋ ธ๋ ์๋ฐฉ๊ทน์ฅ ์ฌ์ ์ ์ง์ผ๋ณธ ์์ฒญ์๋ผ๋ฉด, ํ๋ฐ๊ธฐ ๋ผ์ธ์ ์ ๋ ์ด๊ฐ์ ์ธ์ธ ์๋ฐ์ ์์ต๋๋ค. ๋ง๋ฆฐํํ๋ ์ต๊ทผ ๋ช ์ฃผ๊ฐ ๊ฐ ๋ฐฉ์ก์ฌ ๋ณด๋์๋ฃ์ ์์ฒญ์ ๋ฐ์์ ์กฐ์ฌํ๋ฉด์, ์ด๋ค ์ํ์ด ์ค์ ๋ก ํ์ ์ฑ์ ๋๊ณ ์๋์ง ์ ๋ฆฌํด๋ดค์ต๋๋ค. ์คํฌ์ผ๋ฌ๋ ์ต์ํํ๊ณ , ๊ณต๊ฐ๋ ์ ๋ณด์...", + "articleType": "drama_review" + }, + { + "post_id": "2026-07-19_1์ธ๊ฐ๊ตฌ์ฌํ ํฌ์ ๋ต์์ ๊ธ๋์ ํฌ์์์ํ๋_6c2a1424", + "keyword": "1์ธ ๊ฐ๊ตฌ ์ฌํ ํฌ ์ ๋ต ์์ ๊ธ ๋์ ํฌ์ ์์ํ๋ ๋ฒ", + "title": "1์ธ ๊ฐ๊ตฌ ์ฌํ ํฌ ์ ๋ต, ์์ ๊ธ ๋์ ํฌ์ ์์ํ๋ ๋ฒ", + "status": "published", + "source": "auto", + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "blogUrl": "https://hoguasset.blogspot.com/2026/07/1.html", + "errorMessage": null, + "createdAt": "2026-07-19T23:30:06.028486", + "publishedAt": "2026-07-19T23:30:07.337499", + "lastAttemptAt": "2026-07-19T23:30:07.337499", + "attempts": 2, + "runNumber": 203, + "wordCount": 4657, + "faqCount": 3, + "category": "์ผ๋ฐ", + "labels": [ + "1์ธ๊ฐ๊ตฌ์ฌํ ํฌ", + "์์ ๊ธ", + "ํฌ์์์", + "ISA๊ณ์ข", + "์ฐ๊ธ์ ์ถํ๋" + ], + "metaDescription": "์์ ๊ธ ๊ธ๋ฆฌ๊ฐ ๋ฌผ๊ฐ ์์น๋ฅ ์ ๋ฐ๋ผ๊ฐ์ง ๋ชปํ๋ ์ด์ ๋ถํฐ, 1์ธ ๊ฐ๊ตฌ๊ฐ ๋น์๊ธ๊ณผ ํฌ์์๊ธ์ ๋ถ๋ฆฌํ๋ ๋ฐฉ๋ฒ, ISA์ ์ฐ๊ธ์ ์ถํ๋๋ฅผ ํ์ฉํ๋ ์์, ํฌ์ ์ ์ ๊ฒํ ์ฒดํฌ๋ฆฌ์คํธ๊น์ง ์ค์ ๊ฒฝํ์ ๋ฐํ์ผ๋ก ์ ๋ฆฌํ 1์ธ ๊ฐ๊ตฌ ์ฌํ ํฌ ๊ฐ์ด๋์ ๋๋ค.", + "contentPreview": "\"1์ธ ๊ฐ๊ตฌ๋ ํผ์ ๋ฒ์ด์ ํผ์ ์ฐ๋๊น ์์ ๊ธ๋ง ์ฐฉ์คํ ๋ชจ์ผ๋ฉด ๋๋ค\"๊ณ ์๊ฐํ๋ ๋ถ๋ค์ด ๋ง์ต๋๋ค. ๊ทธ๋ฐ๋ฐ ์์ฆ ์ฌ๋ฌด ์๋ด์ด๋ ๊ธ์ต ์ปค๋ฎค๋ํฐ๋ฅผ ๋ณด๋ฉด ์คํ๋ ค ๋ฐ๋๋๋ ์ด์ผ๊ธฐ๊ฐ ์์ฃผ ๋์ต๋๋ค. 1์ธ ๊ฐ๊ตฌ์ผ์๋ก ์์ ๊ธ๋ง์ผ๋ก๋ ์์ฐ์ด ์ ๋ถ์ด๋์ง ์๋๋ค๋ ์ง์ ์ ๋๋ค. ์ผํ ๋ค์ผ๋ฉด ์ด์ํ๊ฒ ๋๊ปด์ง์ง๋ง, 1์ธ ๊ฐ๊ตฌ์ ์๋ยท์ง์ถ ๊ตฌ์กฐ์ ๊ธ๋ฆฌ ํ๊ฒฝ์ ๊ฐ์ด ๋๊ณ ๋ณด๋ฉด ์ ์ด...", + "articleType": "investment" + }, + { + "post_id": "2026-07-19_1์ธ๊ฐ๊ตฌ์ฌํ ํฌ๋ฐฉ๋ฒ์์ ๊ธ๋์ ํฌ์์์ํ๊ธฐ_7c5776ff", + "keyword": "1์ธ ๊ฐ๊ตฌ ์ฌํ ํฌ ๋ฐฉ๋ฒ ์์ ๊ธ ๋์ ํฌ์ ์์ํ๊ธฐ", + "title": "1์ธ ๊ฐ๊ตฌ ์ฌํ ํฌ ๋ฐฉ๋ฒ, ์์ ๊ธ ๋์ ํฌ์ ์์ ์ ์ฒดํฌ๋ฆฌ์คํธ", + "status": "published", + "source": "auto", + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "blogUrl": "https://hogugolfntraval.blogspot.com/2026/07/1.html", + "errorMessage": null, + "createdAt": "2026-07-19T23:18:19.685262", + "publishedAt": "2026-07-19T23:18:20.862691", + "lastAttemptAt": "2026-07-19T23:18:20.862691", + "attempts": 2, + "runNumber": 203, + "wordCount": 3595, + "faqCount": 3, + "category": "์ผ๋ฐ", + "labels": [ + "1์ธ๊ฐ๊ตฌ์ฌํ ํฌ", + "์์ ๊ธ๋์ ํฌ์", + "ํฌ์์์", + "์ฒญ๋ ๋์ฝ๊ณ์ข", + "S&P500" + ], + "metaDescription": "1์ธ ๊ฐ๊ตฌ ์ฌํ ํฌ ๋ฐฉ๋ฒ์ผ๋ก ์์ ๊ธ ๋์ ํฌ์๋ฅผ ๊ณ ๋ฏผ ์ค์ด๋ผ๋ฉด, ์ ์ฑ ํ ํต์ฅ๋ถํฐ ์์ก ๋ถ์ฐ ํฌ์๊น์ง ๋จ๊ณ๋ณ๋ก ํ์ธํ ์ ์ ์ ๋ฆฌํ์ต๋๋ค. ์์ต๋ฅ ๋ณ๋์ฑ ์ฃผ์์ฌํญ๋ ํจ๊ป ๋ด์์ต๋๋ค.", + "contentPreview": "์๊ธ ํต์ฅ์ ๋์ด ๋ค์ด์ค์๋ง์ ์ ๊ธ ํ๋, ์๊ธ ํ๋ ๋ฃ๊ณ ๋๋ฉด ๋ง์์ด ํธํด์ง์๋์? ๊ทธ๋ฐ๋ฐ ๊ทธ ์ด์, ์ค์ ๋ก ๊ณ์ฐํด๋ณธ ์ ์์ผ์ ๊ฐ์. 1๋ ์ง๋ฆฌ ์ ๊ธ ์ด์จ์ด 3%๋ ์ด๋ฐ์ธ ์์ฆ, ์ธ๊ธ ๋ผ๊ณ ๋๋ฉด ์์ ์ฅ๋ ์ด์๋ ์๊ฐ๋ณด๋ค ์ด๋ผํฉ๋๋ค. 1์ธ ๊ฐ๊ตฌ๋ผ๋ฉด ๋ชฉ๋ ๋ง๋ จ์ ์๋ฐ์ด ๋ ํฌ๊ฒ ๋๊ปด์ง์ค ํ ๋ฐ, ์์ ๊ธ๋ง์ผ๋ก ์์ฐ์ ๋ถ๋ฆฌ๋ ๊ฒ ๋ง๋ ๋ฐฉ๋ฒ์ธ์ง ํ๋ฒ์ฏค ์๋ฌธ์ ๊ฐ์ ธ๋ณด...", + "articleType": "investment" + }, + { + "post_id": "2026-07-19_1์ธ๊ฐ๊ตฌ์ฌํ ํฌ์ ๋ต2026์์ ๊ธ๋์ ํฌ์_6a0ecc88", + "keyword": "1์ธ ๊ฐ๊ตฌ ์ฌํ ํฌ ์ ๋ต 2026 ์์ ๊ธ ๋์ ํฌ์ ๋ฐฉ๋ฒ", + "title": "2026 1์ธ ๊ฐ๊ตฌ ์ฌํ ํฌ ์ ๋ต, ์์ ๊ธ ๋์ ํฌ์ํ๋ ๋ฒ", + "status": "published", + "source": "auto", + "blogId": "blog1", + "blogName": "HOGU What?", + "blogUrl": "https://www.hoguwhat.com/2026/07/2026-1.html", + "errorMessage": null, + "createdAt": "2026-07-19T23:05:10.130432", + "publishedAt": "2026-07-19T23:05:10.836238", + "lastAttemptAt": "2026-07-19T23:05:10.836238", + "attempts": 2, + "runNumber": 203, + "wordCount": 4100, + "faqCount": 3, + "category": "์ผ๋ฐ", + "labels": [ + "1์ธ๊ฐ๊ตฌ์ฌํ ํฌ", + "์์ ๊ธํฌ์", + "2026์ฌํ ํฌ", + "์์กํฌ์", + "ETFํฌ์" + ], + "metaDescription": "์์ ๊ธ ๊ธ๋ฆฌ๊ฐ ๋ฌผ๊ฐ ์์น๋ฅ ์ ๋ชป ๋ฐ๋ผ๊ฐ๋ 2026๋ , 1์ธ ๊ฐ๊ตฌ๊ฐ ๋น์๊ธ๊ณผ ํฌ์๊ธ์ ๋๋๊ณ ๋ฆฌ์คํฌ๋ฅผ ๊ด๋ฆฌํ๋ฉฐ ์์ ๊ธ ๋์ ํฌ์๋ก ์์ฐ์ ๋ฐฐ๋ถํ๋ ์ค์ ์ฒดํฌ๋ฆฌ์คํธ๋ฅผ ์ ๋ฆฌํ์ต๋๋ค.", + "contentPreview": "์๊ธ ํต์ฅ์์ ๋งค๋ฌ ์ ๊ธ ํต์ฅ์ผ๋ก ๋์ ์ฎ๊ธฐ๊ณ ๋๋ฉด ์ ์ง ์ฌํ ํฌ๋ฅผ ์ํ๊ณ ์๋ค๋ ์์ฌ์ด ๋ญ๋๋ค. ๊ทธ๋ฐ๋ฐ ์ต๊ทผ ๋ช ๋ ์ฌ์ด ๊ธ๋ฆฌ ํ๋ฆ์ ๋ณด๋ฉด ์ด์ผ๊ธฐ๊ฐ ์กฐ๊ธ ๋ฌ๋ผ์ก์ต๋๋ค. 2026๋ ๋ค์ด ์์ค์ํ ์์ ๊ธ ๊ธ๋ฆฌ๊ฐ ๋ค์ ๋ฎ์์ง๋ ํ๋ฆ์ ๋ณด์ด๋ฉด์, 1์ธ ๊ฐ๊ตฌ ์ฌ์ด์์ ์์ ๊ธ๋ง์ผ๋ก๋ ์์ฐ์ ๋ถ๋ฆฌ๊ธฐ ์ด๋ ต๋ค๋ ๋ชฉ์๋ฆฌ๊ฐ ์ปค์ง๊ณ ์์ต๋๋ค. ํผ์ ๋ฒ์ด ํผ์ ์ฐ๋ ๊ตฌ์กฐ์ด๋ค ๋ณด๋...", + "articleType": "investment" + }, + { + "post_id": "2026-07-19_SBS๋๋ผ๋ง๊น๋ถ์ฅํ์ฐจ๋ณ๋ฆฌ๋ทฐ_1648d8fa", + "keyword": "SBS ๋๋ผ๋ง ๊น๋ถ์ฅ ํ์ฐจ๋ณ ๋ฆฌ๋ทฐ", + "title": "SBS ๋๋ผ๋ง '๊น๋ถ์ฅ', ์ง์ฅ์ธ๋ค์ด ์ด๊ดํ๋ ์ด์ ์ ํ์ฐจ๋ณ ๋ฆฌ๋ทฐ ์ฐพ๋ ๋ฒ", + "status": "pending", + "source": "manual", + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "blogUrl": "", + "errorMessage": null, + "createdAt": "2026-07-19T12:54:01.607925", + "publishedAt": null, + "lastAttemptAt": "2026-07-19T12:54:01.607925", + "attempts": 1, + "runNumber": 202, + "wordCount": 2696, + "faqCount": 3, + "category": "์ผ๋ฐ", + "labels": [ + "SBS ๊น๋ถ์ฅ", + "๊น๋ถ์ฅ ๋๋ผ๋ง", + "๊น๋ถ์ฅ ํ์ฐจ๋ณ ๋ฆฌ๋ทฐ", + "๊ธํ ๋๋ผ๋ง", + "์นํฐ ์์ ๋๋ผ๋ง", + "๋ทํ๋ฆญ์ค ์ธ๊ธฐ์", + "์ง์ฅ์ธ ๊ณต๊ฐ ๋๋ผ๋ง" + ], + "metaDescription": "SBS ๊ธํ ๋๋ผ๋ง '๊น๋ถ์ฅ'์ด ์์ฒญ๋ฅ 20%๋ฅผ ๋ํํ๊ณ ๋ทํ๋ฆญ์ค ๊ธ๋ก๋ฒ ์ฐจํธ๊น์ง ์ค๋ฅธ ๋ฐฐ๊ฒฝ, ์ง์ฅ์ธ๋ค์ด ์ด๊ดํ๋ ์ด์ , ํ์ฐจ๋ณ ๋ฆฌ๋ทฐ๋ฅผ ์ ํํ ํ์ธํ๋ ๋ฐฉ๋ฒ์ ์ ๋ฆฌํ์ต๋๋ค.", + "contentPreview": "๊ธ์ตNEWS๋ ๋ณดํต ๊ธ๋ฆฌยท๋ถ๋์ฐยท์ ๋ถ์ง์๊ธ ๊ฐ์ ๋ฑ๋ฑํ ์ฃผ์ ๋ฅผ ๋ค๋ฃจ๋ ๋ธ๋ก๊ทธ์ ๋๋ค. ๊ทธ๋ฐ๋ฐ ์์ฆ ํฌํธ ์ค์๊ฐ ๊ฒ์์ด์ SNS ํ์๋ผ์ธ์ ๋ณด๋ฉด ์ ๋ ๋์ ๋๋ ์ด๋ฆ์ด ํ๋ ์์ต๋๋ค. ๋ฐ๋ก SBS ๊ธํ ๋๋ผ๋ง '๊น๋ถ์ฅ'์ ๋๋ค. ๋จ์ํ ๋๋ผ๋ง ํฅํ ์ด์๋ก ๋๊ธฐ๊ธฐ์, ์ด ์ํ์ด ๋ณด์ฌ์ฃผ๋ '์ง์ฅ์ธ ๊ณต๊ฐ ์ฝ๋'์ ์ฝํ ์ธ ์๋น ๋ฐฉ์์ ๋ณํ๊ฐ ๊ฒฝ์ ยท์ฌํ์ ์ผ๋ก๋ ์์ฌํ๋ ๋ฐ...", + "articleType": "drama_review" + }, + { + "post_id": "2026-07-19_SBS๋๋ผ๋ง๊น๋ถ์ฅํ์ฐจ๋ณ๋ฆฌ๋ทฐ_9b7b50ed", + "keyword": "SBS ๋๋ผ๋ง ๊น๋ถ์ฅ ํ์ฐจ๋ณ ๋ฆฌ๋ทฐ", + "title": "SBS ๋๋ผ๋ง ๊น๋ถ์ฅ ํ์ฐจ๋ณ ๋ฆฌ๋ทฐ, 6ํ๊น์ง ํ๋ฆ ์ ๋ฆฌํด๋ดค๋ค", + "status": "pending", + "source": "manual", + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "blogUrl": "", + "errorMessage": null, + "createdAt": "2026-07-19T12:50:30.388540", + "publishedAt": null, + "lastAttemptAt": "2026-07-19T12:50:30.388540", + "attempts": 1, + "runNumber": 202, + "wordCount": 2561, + "faqCount": 3, + "category": "์ผ๋ฐ", + "labels": [ + "๊น๋ถ์ฅ", + "SBS๋๋ผ๋ง", + "์์ง์ญ", + "์ฃผ์์ฑ", + "๋ทํ๋ฆญ์ค์์", + "๋๋ผ๋ง๋ฆฌ๋ทฐ", + "ํ์ฐจ๋ณ๋ฆฌ๋ทฐ" + ], + "metaDescription": "SBS ๋๋ผ๋ง ๊น๋ถ์ฅ ํ์ฐจ๋ณ ๋ฆฌ๋ทฐ, 6ํ ๋ถ๋ ์๋ด ์ฅ๋ฉด๊ณผ ๋ทํ๋ฆญ์ค ๋น์์ด์ผ 2์ฃผ ์ฐ์ 1์ ์์๊น์ง ๊ณต๊ฐ๋ ์๋ฃ๋ก ์ ๋ฆฌํ์ต๋๋ค.", + "contentPreview": "์ฃผ๋ง๋ง๋ค ๋ทํ๋ฆญ์ค ์ธ๊ธฐ ์์๋ฅผ ํ์ธํ๋ ์ต๊ด์ด ์๋๋ฐ, ์ต๊ทผ ๋ช ์ฃผ๊ฐ ๋น์์ด๊ถ TV์ผ ์๋จ์ ๋ฏ์ต์ ์ ๋ชฉ ํ๋๊ฐ ๊ณ์ ๊ฑธ๋ ค ์์์ต๋๋ค. ๋ฐ๋ก SBS ๊ธํ ๋๋ผ๋ง '๊น๋ถ์ฅ'์ ๋๋ค. ์ฒ์์ '๋ ํ์ฌ๋ฌผ์ด๊ฒ ๊ฑฐ๋' ํ๊ณ ๋๊ฒผ๋๋ฐ, ํ์ฐจ๊ฐ ์์ด๋ฉด์ ์ฃผ๋ณ์์๋ 6ํ ์๊ธฐ๋ฅผ ํ๋ ์ฌ๋์ด ๋์ด์ ๋ค๋ฆ๊ฒ ํ๋ฆ์ ๋ฐ๋ผ์ก์๋ดค์ต๋๋ค. ์ด ๊ธ์์๋ ๊ณต๊ฐ๋ ๋ฐฉ์ ๋ด์ฉ๊ณผ ๋ฐ์ ์๋ฃ๋ฅผ ...", + "articleType": "drama_review" + }, + { + "post_id": "2026-07-19_SBS๋๋ผ๋ง๊น๋ถ์ฅํ์ฐจ๋ณ๋ฆฌ๋ทฐ_015b2c3f", + "keyword": "SBS ๋๋ผ๋ง ๊น๋ถ์ฅ ํ์ฐจ๋ณ ๋ฆฌ๋ทฐ", + "title": "SBS ๊น๋ถ์ฅ ํ์ฐจ๋ณ ๋ฆฌ๋ทฐ, 7ํ ์์ฒญ๋ฅ 25.5% ์ด์ ", + "status": "pending", + "source": "manual", + "blogId": "blog1", + "blogName": "HOGU What?", + "blogUrl": "", + "errorMessage": null, + "createdAt": "2026-07-19T12:47:02.392248", + "publishedAt": null, + "lastAttemptAt": "2026-07-19T12:47:02.392248", + "attempts": 1, + "runNumber": 202, + "wordCount": 2977, + "faqCount": 3, + "category": "์ผ๋ฐ", + "labels": [ + "๊น๋ถ์ฅ", + "SBS๋๋ผ๋ง", + "๊น๋ถ์ฅ๋ฆฌ๋ทฐ", + "์์ง์ญ", + "์ต๋ํ", + "์ค๊ฒฝํธ", + "๋๋ผ๋ง๋ฆฌ๋ทฐ" + ], + "metaDescription": "SBS ๊น๋ถ์ฅ ํ์ฐจ๋ณ ๋ฆฌ๋ทฐ. 7ํ ์ต๊ณ ์์ฒญ๋ฅ 25.5% ๋ฐ์ ๊ณผ 8ํ ์๋ฉ๊น์ง ๋ฑ์ฅ์ธ๋ฌผ, ์์ฒญ์ ๋ฐ์, ์์ฒญ ํ์ ์กฐ์ฌํด ์ ๋ฆฌํ์ต๋๋ค.", + "contentPreview": "์ง๋์ฃผ ๊ธ์์ผ ๋ฐค, SBS '๊น๋ถ์ฅ' 8ํ๊ฐ ๋๋๊ณ ์ค์๊ฐ ๊ฒ์์ด์ ๋ฐฐ์ฐ ์ด๋ฆ๋ค์ด ์ค์ค์ด ์ฌ๋ผ์ค๋ ๊ฑธ ๋ณด๋ฉด์ ์ด ๋๋ผ๋ง์ ํ์ ์ฑ์ ๋ค์ ํ์ธํ์ต๋๋ค. ํนํ ์ฑํ์์ ๋ฐ์ง์ฒ ์ด ์ ์ฌ์ฌ๊ณผ ์๊ฐ์ ๊ฒฐ๋ฐ๋ ์ฑ ๋ฒํ์ ๋ฒ๋ ค์ง ์ฅ๋ฉด์ด ๋ฐฉ์๋ ์งํ๋ผ ๋ฐ์์ด ๋จ๊ฑฐ์ ์ต๋๋ค. ๋ง๋ฆฐํํ๋ ์ด ๋๋ผ๋ง๊ฐ ์ฒ์ ์์ํ์ ๋๋ถํฐ ์ง๊ธ๊น์ง ํ๋ฆ์ ์ญ ๋ฐ๋ผ๊ฐ๋ฉฐ ์๋ฃ๋ฅผ ์ ๋ฆฌํด๋ดค๋๋ฐ, ํ์ฐจ๊ฐ...", + "articleType": "drama_review" + }, + { + "post_id": "2026-07-19_1์ธ๊ฐ๊ตฌN์ก๋ฌ๋ถ์ ์์ต์ฃผ์ETFํฌ์๋ฐฉ๋ฒ_e65cf602", + "keyword": "1์ธ๊ฐ๊ตฌ N์ก๋ฌ ๋ถ์ ์์ต ์ฃผ์ ETF ํฌ์ ๋ฐฉ๋ฒ", + "title": "1์ธ๊ฐ๊ตฌ N์ก๋ฌ ๋ถ์ ์์ต ETF ํฌ์ ๋ฐฉ๋ฒ๊ณผ ์ธ๊ธ ์ ๊ณ ์ฒดํฌ๋ฆฌ์คํธ", + "status": "published", + "source": "auto", + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "blogUrl": "https://hoguasset.blogspot.com/2026/07/1-n-etf.html", + "errorMessage": null, + "createdAt": "2026-07-19T11:30:21.321195", + "publishedAt": "2026-07-19T16:24:45.122895", + "lastAttemptAt": "2026-07-19T16:24:45.122895", + "attempts": 4, + "runNumber": 200, + "wordCount": 3368, + "faqCount": 3, + "category": "์ผ๋ฐ", + "labels": [ + "1์ธ๊ฐ๊ตฌ", + "N์ก๋ฌ", + "๋ถ์ ์์ต", + "ETFํฌ์", + "์ข ํฉ์๋์ธ" + ], + "metaDescription": "ํด๊ทผ ํ ๋ฒ ๋ถ์ ์์ต, ํต์ฅ์ ๋ฐฉ์นํ์ง ๋ง๊ณ ETF๋ก ๊ตด๋ ค๋ณผ ์ ์์๊น์? 1์ธ๊ฐ๊ตฌ N์ก๋ฌ๊ฐ ์ง์ ๊ฒช์ ๋ถ์ ์์ต ๊ด๋ฆฌ, ETF ํฌ์ ์์ ์ ์ฐจ, ์ข ํฉ์๋์ธ ์ ๊ณ ๊น์ง ํ ๋ฒ์ ์ ๋ฆฌํ์ต๋๋ค.", + "contentPreview": "ํด๊ทผํ๊ณ ๋ฐฐ๋ฌ ์ฑ์ ์ผ๊ฑฐ๋, ์ฃผ๋ง์ ์จ๋ผ์ธ ์ค๋งํธ์คํ ์ด๋ฅผ ์ด์ํ๊ฑฐ๋, ์ฌ๋ฅ ๋ง์ผ์์ ์์ํ๊ฒ ์ธ์ฃผ๋ฅผ ๋ฐ๋ 1์ธ๊ฐ๊ตฌ๊ฐ ๋๊ณ ์์ต๋๋ค. ๊ทธ๋ฐ๋ฐ ๋ฌธ๋ ์ด๋ฐ ์๊ฐ์ด ๋ค์ง ์์ผ์ ๊ฐ์? '์ด๋ ๊ฒ ๋ฒ ๋, ๊ทธ๋ฅ ํต์ฅ์ ๋๋ ๊ฒ ๋ง๋? ์์ก์ด๋ผ๋ ETF ๊ฐ์ ๊ฑธ๋ก ๊ตด๋ ค๋ณผ๊น? ๊ทธ๋ฆฌ๊ณ ์ด๊ฑฐ ์ธ๊ธ ์ ๊ณ ๋ ์ ํด๋ ๋๋?' 1์ธ๊ฐ๊ตฌ N์ก๋ฌ๋ผ๋ฉด ํ ๋ฒ์ฏค์ ๊ณ ๋ฏผํด๋ดค์ ์ง๋ฌธ์ ๋๋ค. ...", + "articleType": "investment" + }, + { + "post_id": "2026-07-19_1์ธ๊ฐ๊ตฌ์ฌํ ํฌ์์ ๊ธ์์์ฃผ์ETF๋ก๊ฐ์_391f0314", + "keyword": "1์ธ๊ฐ๊ตฌ ์ฌํ ํฌ ์์ ๊ธ์์ ์ฃผ์ ETF๋ก ๊ฐ์ํ๋ ๋ฐฉ๋ฒ", + "title": "1์ธ๊ฐ๊ตฌ ์ฌํ ํฌ ์์ ๊ธ์์ ETF๋ก ๊ฐ์ํ๋ ๋ฐฉ๋ฒ๊ณผ ์ฒดํฌํฌ์ธํธ", + "status": "published", + "source": "auto", + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "blogUrl": "https://hogugolfntraval.blogspot.com/2026/07/1-etf.html", + "errorMessage": null, + "createdAt": "2026-07-19T11:23:51.701358", + "publishedAt": "2026-07-19T16:10:00.213017", + "lastAttemptAt": "2026-07-19T16:10:00.213017", + "attempts": 8, + "runNumber": 200, + "wordCount": 3921, + "faqCount": 3, + "category": "์ผ๋ฐ", + "labels": [ + "1์ธ๊ฐ๊ตฌ์ฌํ ํฌ", + "์์ ๊ธETF์ ํ", + "์๋ฐฐ๋นETF", + "์ฒญ๋ ํฌ๋ง์ ๊ธ", + "์ฒญ๋ ๋์ฝ๊ณ์ข" + ], + "metaDescription": "์ฒญ๋ ํฌ๋ง์ ๊ธ ์ค๋ํด์ง์จ 30% ์๋, 1์ธ๊ฐ๊ตฌ๊ฐ ์์ ๊ธ์์ ETF๋ก ์์ฐ์ ์ฎ๊ธธ ๋ ๊ผญ ํ์ธํด์ผ ํ ๋จ๊ณ๋ณ ์ฒดํฌํฌ์ธํธ์ ์คํจ ์ฌ๋ก๋ฅผ ์ค์ ๊ฒฝํ์ ๋ฐํ์ผ๋ก ์ ๋ฆฌํ์ต๋๋ค.", + "contentPreview": "์ผ๋ง ์ ๊ตญํ ์ ๋ฌด์์ํ๊ฐ ๊ณต๊ฐํ ์๋ฃ๋ฅผ ๋ณด๋ค๊ฐ ๋์ ๋๋ ์ซ์๊ฐ ํ๋ ์์์ต๋๋ค. ์ฒญ๋ ํฌ๋ง์ ๊ธ ์ค๋ํด์ง์จ์ด 29.6%, ๊ทธ๋ฌ๋๊น ๊ฐ์ ์ 10๋ช ์ค 3๋ช ๊ผด๋ก ์ ๋ถ ํํ๊น์ง ํฌ๊ธฐํ๊ณ ํต์ฅ์ ๊นจ๋ฒ๋ ธ๋ค๋ ๋ด์ฉ์ด์์ต๋๋ค. 1์ธ๊ฐ๊ตฌ๋ก ํผ์ ์ํ๋น์ ์ ์ถ์ ๋ค ๊ด๋ฆฌํ๋ค ๋ณด๋ฉด ์ ์ด๋ฐ ์ผ์ด ๋ฒ์ด์ง๋์ง ์ด๋ ์ ๋ ์ง์์ด ๊ฐ๋๋ค. ์ด์๋ ์ฅ๊ผฌ๋ฆฌ๋งํผ ๋ถ๋๋ฐ ๋ชฉ๋์ด ๋ฌถ์ฌ ์์ผ...", + "articleType": "investment" + }, + { + "post_id": "2026-07-19_1์ธ๊ฐ๊ตฌN์ก๋ฌ๋ถ์ ์์ต์ฃผ์ETFํฌ์๋ ธํ_776b31ba", + "keyword": "1์ธ๊ฐ๊ตฌ N์ก๋ฌ ๋ถ์ ์์ต ์ฃผ์ ETF ํฌ์ ๋ ธํ์ฐ", + "title": "1์ธ๊ฐ๊ตฌ N์ก๋ฌ๋ฅผ ์ํ ๋ถ์ ์์ต ETF ํฌ์ ๋ ธํ์ฐ", + "status": "published", + "source": "auto", + "blogId": "blog1", + "blogName": "HOGU What?", + "blogUrl": "https://www.hoguwhat.com/2026/07/1-n-etf.html", + "errorMessage": null, + "createdAt": "2026-07-19T11:16:25.643648", + "publishedAt": "2026-07-19T16:00:44.764073", + "lastAttemptAt": "2026-07-19T16:00:44.764073", + "attempts": 8, + "runNumber": 200, + "wordCount": 3790, + "faqCount": 3, + "category": "์ผ๋ฐ", + "labels": [ + "1์ธ๊ฐ๊ตฌ", + "N์ก๋ฌ", + "๋ถ์ ์์ต", + "ETFํฌ์", + "์ข ํฉ์๋์ธ" + ], + "metaDescription": "1์ธ๊ฐ๊ตฌ N์ก๋ฌ๊ฐ ๋ถ์ ์ผ๋ก ๋ฒ ๋์ ์ฃผ์๊ณผ ETF์ ํฌ์ํ๋ฉฐ ๊ฒช์ ์ํ์ฐฉ์ค, ์ค์ ์ด์ฉ ์ค์ธ ํฌํธํด๋ฆฌ์ค ๊ตฌ์ฑ, ์ข ํฉ์๋์ธ ์ ๊ณ ์ฒดํฌ๋ฆฌ์คํธ๊น์ง ๊ฒฝํ์ ๋ฐํ์ผ๋ก ์ ๋ฆฌํ์ต๋๋ค.", + "contentPreview": "ํด๊ทผ ํ์ ์ค๋งํธ์คํ ์ด๋ฅผ ์ด์ํ๊ณ , ์ฃผ๋ง์ ๋ฐฐ๋ฌ ๋ผ์ด๋๋ก ๋ฐ๊ณ , ๋จ๋ ์๊ฐ์ ๋ธ๋ก๊ทธ ์๊ณ ๋ฃ๋ฅผ ๋ฐ๋ ์ฌ๋๋ค์ด ํ์คํ ๋์์ต๋๋ค. ํผ์ ์ฌ๋ 1์ธ๊ฐ๊ตฌ์ผ์๋ก ๊ณ ์ ๋น ๋ถ๋ด์ด ํฌ๋ค ๋ณด๋ ๋ณธ์ ํ๋๋ก๋ ๋ถ์ํ๋ค๋ ์ฌ๋ฆฌ๊ฐ ๊น๋ ค ์๋ ๊ฒ ๊ฐ์ต๋๋ค. ๋ฌธ์ ๋ ๊ทธ๋ ๊ฒ ๋ชจ์ ๋ถ์ ์์ต์ ์ด๋์ ๋๋๋์ ๋๋ค. ํต์ฅ์ ๊ทธ๋ฅ ์์๋๋ ๊ฒฝ์ฐ๋ ๋ง๊ณ , ๋ฐ๋๋ก ๊ธํ๊ฒ ๊ฐ๋ณ ์ฃผ์์ ๋ฃ์๋ค๊ฐ...", + "articleType": "investment" + }, + { + "post_id": "2026-07-19_1์ธ๊ฐ๊ตฌ์์ ๊ธ๋์ ์ฃผ์ETF๊ฐ์ํ๊ธฐ๋ฐฉ๋ฒ_63c55049", + "keyword": "1์ธ๊ฐ๊ตฌ ์์ ๊ธ ๋์ ์ฃผ์ยทETF ๊ฐ์ํ๊ธฐ ๋ฐฉ๋ฒ", + "title": "1์ธ๊ฐ๊ตฌ ์์ ๊ธ ๋์ ์ฃผ์ยทETF ๊ฐ์ํ๊ธฐ ๋ฐฉ๋ฒ ์ด์ ๋ฆฌ", + "status": "published", + "source": "auto", + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "blogUrl": "https://hoguasset.blogspot.com/2026/07/1-etf.html", + "errorMessage": null, + "createdAt": "2026-07-19T06:17:36.545989", + "publishedAt": "2026-07-19T06:17:37.755377", + "lastAttemptAt": "2026-07-19T06:17:37.755377", + "attempts": 2, + "runNumber": 198, + "wordCount": 3754, + "faqCount": 4, + "category": "์ผ๋ฐ", + "labels": [ + "1์ธ๊ฐ๊ตฌ์ฌํ ํฌ", + "์์ ๊ธ๋์ ํฌ์", + "ETFํฌ์", + "์ฃผ์ํฌ์", + "ํด์ง์ฐ๊ธ" + ], + "metaDescription": "1์ธ๊ฐ๊ตฌ๊ฐ ์์ ๊ธ ๋์ ์ฃผ์ยทETF๋ก ์์ฐ์ ์ฎ๊ธฐ๊ธฐ ์ ์ ๊ฒํ ์กฐ๊ฑด๊ณผ ์ค์ ์คํ ๋จ๊ณ๋ฅผ ํด์ง์ฐ๊ธ ์์ต๋ฅ ์ฌ๋ก์ ํจ๊ป ์ ๋ฆฌํ์ต๋๋ค. ๊ฐ์ํ๊ธฐ ์ฒดํฌ๋ฆฌ์คํธ์ ์ฃผ์์ฌํญ๊น์ง ํ์ธํด๋ณด์ธ์.", + "contentPreview": "์ต๊ทผ ๋ถ๋์ฐ๊ณผ ์ฃผ์์์ฅ์ ์ค๊ฐ๋ ๋์ ํ๋ฆ์ด ๋์ ๋๊ฒ ๋ฌ๋ผ์ง๊ณ ์์ต๋๋ค. 2026๋ 6์ 25์ผ ๋์์ผ๋ณด ๋ณด๋์ ๋ฐ๋ฅด๋ฉด ์ฌํด ์ฃผํ ๊ฑฐ๋๋์ 26๋ง1000๊ฑด์ผ๋ก 2021๋ ๊ฐ์ ๊ธฐ๊ฐ๋ณด๋ค 34.6% ์ค์ด๋ ๋ฐ๋ฉด, ์ฆ์ ์ผํ๊ท ๊ฑฐ๋๋์ 3๋ ์ 50% ๊ธ์ฆํ๋ค๊ณ ํฉ๋๋ค. ๋ถ๋์ฐ์ ๋ชฉ๋์ ๋ฌถ์ด๋๊ธฐ ๋ถ๋ด์ค๋ฌ์ด 1์ธ๊ฐ๊ตฌ ์ ์ฅ์์๋ ์ด ํ๋ฆ์ด ๋จ์ํ ๋ด์ค๊ฐ ์๋๋ผ '...", + "articleType": "investment" + }, + { + "post_id": "2026-07-19_์ฌ๋ฆํด๊ฐ์์์์ฝ๋น๊ต์์ด๋น์ค๋น์ผ๋์์ฌ๊ธฐ_da371b48", + "keyword": "์ฌ๋ฆ ํด๊ฐ ์์ ์์ฝ ๋น๊ต ์์ด๋น์ค๋น ์ผ๋์ ์ฌ๊ธฐ์ด๋", + "title": "์ฌ๋ฆ ํด๊ฐ ์์, ์์ด๋น์ค๋น vs ์ผ๋์ vs ์ฌ๊ธฐ์ด๋ ๋ญ๊ฐ ๋์๊น ๋ฐ์ ธ๋ดค์ต๋๋ค", + "status": "skipped", + "source": "auto", + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "blogUrl": "", + "errorMessage": null, + "createdAt": "2026-07-19T06:10:05.413553", + "publishedAt": null, + "lastAttemptAt": "2026-07-19T06:10:05.413553", + "attempts": 1, + "runNumber": 198, + "wordCount": 2560, + "faqCount": 3, + "category": "์ผ๋ฐ", + "labels": [ + "์ฌ๋ฆํด๊ฐ์์", + "์์ด๋น์ค๋น", + "์ผ๋์", + "์ฌ๊ธฐ์ด๋", + "์๋ฐ์์ฝ๋น๊ต", + "์ ์ฃผ์์", + "์ทจ์ํ๋ถ์ ์ฑ " + ], + "metaDescription": "์ฌ๋ฆ ํด๊ฐ ์์ ์์ฝ ์ ์์ด๋น์ค๋น, ์ผ๋์, ์ฌ๊ธฐ์ด๋ ๊ฐ๊ฒฉ๊ณผ ์ทจ์ยทํ๋ถ ์ ์ฑ ์ ๋น๊ตํ์ต๋๋ค. ํต๊ณ์ ํ๊ธฐ๋ก ์ดํด๋ณธ ํ๋ซํผ๋ณ ์ฅ๋จ์ ์ ๋ฆฌ.", + "contentPreview": "ํํ๋ค \"์ฌ๋ฆ ํด๊ฐ ์์๋ ๊ทธ๋ฅ ์๋ฌด ์ฑ์ด๋ ์ผ์ ์ ์ผ ์ ๋ ดํ ๊ฑฐ ์์ฝํ๋ฉด ๋์ง ์๋\"๊ณ ์๊ฐํ์๋๋ฐ, ์ค์ ๋ก ํ๋ซํผ๋ณ ํ๊ธฐ์ ์ทจ์ยทํ๋ถ ์ ์ฑ ์ ํ๋์ฉ ๋ฏ์ด๋ณด๋ฉด ์๊ฐ๋ณด๋ค ์ฐจ์ด๊ฐ ํฝ๋๋ค. ํนํ ์ต๊ทผ ๋ช ๋ ์ฌ์ด ๊ตญ๋ด ์๋ฐ ์์ฅ ์์ฒด๊ฐ ํฌ๊ฒ ์ฌํธ๋๊ณ ์๋ค๋ ์ ๋ ๋์ฌ๊ฒจ๋ณผ ๋งํ๋ฐ์, ์์ธ์ ๊ธฐ์ค์ผ๋ก ์ฌ๊ดยท๋ชจํ ์์ ๋ฑ๋ก ์ฌ์ ์ ์๊ฐ 2019๋ 2058๋ช ์์ 20...", + "articleType": "travel_guide" + }, + { + "post_id": "2026-07-19_๊ฐ์๋์ผ์ฒ์ฌ๋ฆํผ์์ง๊ณ๊ณกํญํฌ์ถ์ฒ_8e0c9794", + "keyword": "๊ฐ์๋ ์ผ์ฒ ์ฌ๋ฆ ํผ์์ง ๊ณ๊ณก ํญํฌ ์ถ์ฒ", + "title": "๊ฐ์๋ ์ผ์ฒ ์ฌ๋ฆ ํผ์์ง ๋ฌด๋ฆ๊ณ๊ณก ์ํญ ํญํฌ ์ถ์ฒ ํ๊ธฐ ์ ๋ฆฌ", + "status": "published", + "source": "auto", + "blogId": "blog1", + "blogName": "HOGU What?", + "blogUrl": "https://www.hoguwhat.com/2026/07/blog-post_19.html", + "errorMessage": null, + "createdAt": "2026-07-19T05:58:18.871510", + "publishedAt": "2026-07-19T05:58:19.549457", + "lastAttemptAt": "2026-07-19T05:58:19.549457", + "attempts": 2, + "runNumber": 198, + "wordCount": 3984, + "faqCount": 3, + "category": "์ผ๋ฐ", + "labels": [ + "์ผ์ฒ์ฌํ", + "๋ฌด๋ฆ๊ณ๊ณก์ํญ", + "๊ฐ์๋ํผ์์ง", + "๊ณ๊ณกํญํฌ์ถ์ฒ", + "์ฌ๋ฆ์ฌํ์ฝ์ค" + ], + "metaDescription": "2024๋ 7์ ๋ง ์ผ์ฒ ๋ฌด๋ฆ๊ณ๊ณก ์ํญ ์ฝ์ค๋ฅผ ์์ด ๋๊ณผ ํจ๊ป ๋ค๋ ์จ ํ๊ธฐ์ ๋๋ค. ์๋ณต ์์์๊ฐ๊ณผ ์ฃผ์ฐจ ์ํฉ, ์ค๋น๋ฌผ ์ฒดํฌ๋ฆฌ์คํธ๊น์ง ๊ฐ์๋ ์ผ์ฒ ์ฌ๋ฆ ํผ์์ง ๊ณ๊ณก ํญํฌ ์ถ์ฒ ์ ๋ณด๋ฅผ ์ค์ ๊ฒฝํ๊ณผ ๊ณต์ ์๋ด๋ฅผ ๋ฐํ์ผ๋ก ์ ๋ฆฌํ์ต๋๋ค.", + "contentPreview": "๋งค๋ 7์ ๋ง์ด ๋๋ฉด ํฌํธ ๊ฒ์์ฐฝ์ ๊ฐ์๋ ์ผ์ฒ ์ฌ๋ฆ ํผ์์ง๋ฅผ ์น๋ ์ฌ๋์ด ๋์ ๋๊ฒ ๋์ด๋ฉ๋๋ค. ๋ํด์ ํด์์์ฅ์ ์ด๋ฏธ ์ฌ๋์ผ๋ก ๊ฐ๋ ์ฐฌ ์ง ์ค๋๊ณ , ๊ณ๊ณก์ด๋ ํญํฌ ์ชฝ์ผ๋ก ๋ฐ๊ธธ์ ๋๋ฆฌ๋ ๋ถ๋ค์ด ๋ง๋ค๋ ์ด์ผ๊ธฐ๋ฅผ ์ฌํ ์ปค๋ฎค๋ํฐ์์ ์์ฃผ ์ ํฉ๋๋ค. ๋ง๋ฆฐํํ๋ ์ฌ๋ฆ๋ง๋ค ์ด๋๋ก ๋ ๋ ์ง ๊ณ ๋ฏผํ๋ ๋ถ๋ค์ ํ๊ธฐ๋ฅผ ์ข ํฉํด๋ณด๋ฉด, ์ผ์ฒ ๋ฌด๋ฆ๊ณ๊ณก์ด ์ ๋ ์์ฃผ ์ธ๊ธ๋๋ค๋ ๊ฑธ ์...", + "articleType": "review" + }, + { + "post_id": "2026-07-19_SBS๋๋ผ๋ง๊น๋ถ์ฅ7ํ๋ฆฌ๋ทฐ_162bef60", + "keyword": "SBS ๋๋ผ๋ง ๊น๋ถ์ฅ 7ํ ๋ฆฌ๋ทฐ", + "title": "[7ํ] SBS ๊น๋ถ์ฅ ๋ฆฌ๋ทฐ: ์ธ๋ฌผ๊ด๊ณยท๊ด์ ํฌ์ธํธ", + "status": "published", + "source": "auto", + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "blogUrl": "https://hoguasset.blogspot.com/2026/07/sbs-7.html", + "errorMessage": null, + "createdAt": "2026-07-19T00:00:00", + "publishedAt": "2026-07-19T16:27:52.764369", + "lastAttemptAt": "2026-07-19T16:27:52.764369", + "attempts": 3, + "runNumber": 0, + "wordCount": 2375, + "faqCount": 3, + "category": "์ผ๋ฐ", + "labels": [ + "๋๋ผ๋ง๋ฆฌ๋ทฐ", + "๊ธ์ต", + "๊ฒฝ์ ", + "๋ณต์ง", + "์์ฑ ", + "์ ์ฑ " + ], + "metaDescription": "SBS ๋๋ผ๋ง ๊น๋ถ์ฅ 7ํ ๋ฆฌ๋ทฐ, ์ธ๋ฌผ ๊ด๊ณ์ ๊ด์ ํฌ์ธํธ ์ ๋ฆฌ. ์ถ์ฐ์ง ์ ๋ณด ๊ธฐ๋ฐ ์กฐ์ฌ๊ธ๋ก, ํฌ์ ์กฐ์ธ์ด ์๋ ๋๋ผ๋ง ๊ฐ์ ์ ๋ณด์ ๋๋ค.", + "contentPreview": "ํด๊ทผํ๊ณ ์ํ์ ๋๋ธ๋ฌ์ ธ ๋ฆฌ๋ชจ์ปจ ๋๋ฆฌ๋ค๊ฐ ์ฐ์ฐํ ์ฑ๋ ๊ณ ์ ํ๊ฒ ๋๋ ๋๋ผ๋ง๊ฐ ์์ต๋๋ค. ์์ฆ ๋ง๋ฆฐํํ์๊ฒ๋ SBS '๊น๋ถ์ฅ'์ด ๋ฑ ๊ทธ๋ฐ ๋๋ผ๋ง์ ๋๋ค. ์๋ ์ด ๋ธ๋ก๊ทธ์์๋ ๊ธ์ตยท์ ๋ถ์ง์ ์ ์ฑ ์ด์ผ๊ธฐ๋ฅผ ์ฃผ๋ก ๋ค๋ค์๋๋ฐ, ํ์ฌ์๋ค์ ์ ํ์ ์์ฌ๋ก ํ ์ด ๋๋ผ๋ง๋ฅผ ๋ณด๋ค ๋ณด๋ '์ด๊ฑด ๊ทธ๋ฅ ๋๋ผ๋ง๊ฐ ์๋๋ผ ์ง์ฅ์ธ ํ์ค ๊ทธ ์์ฒด ์๋๊ฐ' ์ถ์ ์๊ฐ์ด ๋ค์ด์ ํ์ฐจ๋ณ๋ก ...", + "articleType": "drama_review" + }, + { + "post_id": "2026-07-19_SBS๋๋ผ๋ง๊น๋ถ์ฅ8ํ๋ฆฌ๋ทฐ_2af3f605", + "keyword": "SBS ๋๋ผ๋ง ๊น๋ถ์ฅ 8ํ ๋ฆฌ๋ทฐ", + "title": "[8ํ] SBS ๋๋ผ๋ง ๊น๋ถ์ฅ 8ํ ๋ฆฌ๋ทฐ ์ด์ ๋ฆฌ", + "status": "published", + "source": "auto", + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "blogUrl": "https://hoguasset.blogspot.com/2026/07/8.html", + "errorMessage": null, + "createdAt": "2026-07-19T00:00:00", + "publishedAt": "2026-07-19T17:55:38.578123", + "lastAttemptAt": "2026-07-19T17:55:38.578123", + "attempts": 3, + "runNumber": 0, + "wordCount": 2822, + "faqCount": 3, + "category": "์ผ๋ฐ", + "labels": [ + "๋๋ผ๋ง๋ฆฌ๋ทฐ", + "๊ธ์ต", + "๊ฒฝ์ ", + "์ ๋ถ์ง์", + "๋ณต์ง", + "์์ฑ ", + "์ ์ฑ " + ], + "metaDescription": "SBS ๋๋ผ๋ง ๊น๋ถ์ฅ 8ํ ๋ฆฌ๋ทฐ: ์ค๊ฑฐ๋ฆฌ ํต์ฌ ์์ฝ๊ณผ ๋ช ์ฅ๋ฉด, ๋ฐฐ์ฐ ์ฐ๊ธฐ ํ๊ฐ, 9ํ ์์ ํฌ์ธํธ๊น์ง ์ ๋ฆฌํ์ต๋๋ค. ํฌ์ ์กฐ์ธ์ด ์๋ ๋๋ผ๋ง ๊ฐ์ ์ฝํ ์ธ ์ ๋๋ค.", + "contentPreview": "์ง๋์ฃผ 7ํ๋ฅผ ๋ณด๊ณ ๋์ ํ์ฌ ๋จ์ฒด ์ฑํ ๋ฐฉ์ด ํ๋์ ์๋๋ฌ์ ์ต๋๋ค. ์น์ง ๋ฐํ๋ฅผ ์๋๊ณ ๋ฒ์ด์ง๋ ์ ๊ฒฝ์ ์ด ๋จ ์ผ ๊ฐ์ง ์๋ค๋ ๋ฐ์์ด ๋ง์๋๋ฐ์, 1ํธ์์ ๋ค๋ค๋ ๊น๋ถ์ฅ์ ์ฒซ ์๊ธฐ๊ฐ 8ํ์์ ์ด๋ค ์์ผ๋ก ์ ๊ฐ๋๋์ง ๊ถ๊ธํดํ์๋ ๋ถ๋ค์ด ๋ง์ ์ด๋ฒ ํธ์ ์ค๋นํ์ต๋๋ค. ํด๊ทผ ํ ๋ณธ๋ฐฉ์ ๋์น ๋ถ๋ค, ์ ์ฃผํ ์ค์ด์ ๋ถ๋ค ๋ชจ๋ ์ฐธ๊ณ ํ์ค ์ ์๋๋ก ์คํฌ์ผ๋ฌ ์ฃผ์ ํ์๋ฅผ ...", + "articleType": "drama_review" + }, + { + "post_id": "2026-07-19_SBS๋๋ผ๋ง๊น๋ถ์ฅ9ํ๋ฆฌ๋ทฐ_a9b64c28", + "keyword": "SBS ๋๋ผ๋ง ๊น๋ถ์ฅ 9ํ ๋ฆฌ๋ทฐ", + "title": "SBS ๊น๋ถ์ฅ 9ํ ๋ฆฌ๋ทฐ, ํด์ง ์๋ ํ์ค ๊ณต๊ฐ", + "status": "published", + "source": "auto", + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "blogUrl": "https://hoguasset.blogspot.com/2026/07/sbs-9.html", + "errorMessage": null, + "createdAt": "2026-07-19T00:00:00", + "publishedAt": "2026-07-19T17:57:27.094833", + "lastAttemptAt": "2026-07-19T17:57:27.094833", + "attempts": 3, + "runNumber": 0, + "wordCount": 2395, + "faqCount": 3, + "category": "์ผ๋ฐ", + "labels": [ + "๋๋ผ๋ง๋ฆฌ๋ทฐ", + "๊ธ์ต", + "๊ฒฝ์ ", + "์ ๋ถ์ง์", + "๋ณต์ง", + "์์ฑ ", + "์ ์ฑ " + ], + "metaDescription": "SBS ๋๋ผ๋ง ๊น๋ถ์ฅ 9ํ ๋ฆฌ๋ทฐ, ์ค๊ฑฐ๋ฆฌ์ ๋ช ์ฅ๋ฉดยท๋ช ๋์ฌ, ๋ฐฐ์ฐ ์ฐ๊ธฐ ํ๊ฐ์ ํจ๊ป ๊ทน์ค ๋ช ์ํด์ง ์ด์ผ๊ธฐ๋ฅผ ์ค์ ์ ๋์ ๋น๊ตํด๋ด ๋๋ค. ํฌ์ ์กฐ์ธ ์๋.", + "contentPreview": "ํ์ฌ์์ ์น์ง ๋ฐํ ์์ฆ๋ง ๋๋ฉด ์ ๋ ๋ค์ญ์ญํด์ง๋ ํ ๋ถ์๊ธฐ, ๋ค๋ค ํ ๋ฒ์ฏค ๊ฒช์ด๋ณด์ จ์ ๊ฒ๋๋ค. ๊น๋ถ์ฅ์ด๋ผ๋ ์บ๋ฆญํฐ๊ฐ ์ ๋ ์ง ํ๊ฒ ๋๊ปด์ง๋ ์ด์ ๋ ๋ฐ๋ก ์ด๋ฐ '๋ด ์ผ์ด ๋ ์๋ ์๋' ํ์ค๊ฐ ๋๋ฌธ ์๋๊น์. 1ํธ์์ 7ํ ์ค๊ฑฐ๋ฆฌ์ ๋ช ์ฅ๋ฉด ์ง์ด๋๋ ธ๊ณ , 2ํธ์์๋ 8ํ์ ๊ฐ๋ฑ ๊ตฌ์กฐ๋ฅผ ์ ๋ฆฌํด๋๋ ธ๋๋ฐ, ์ด๋ฒ 9ํ๋ ์๋ฆฌ์ฆ ์ ์ฒด์์๋ ์ ๋ '๋ ์ด์ผ๊ธฐ'๊ฐ ์งํ๊ฒ ๋ฌป...", + "articleType": "drama_review" + }, + { + "post_id": "2026-07-19_SBS๋๋ผ๋ง๊น๋ถ์ฅ10ํ๋ฆฌ๋ทฐ_730dd1de", + "keyword": "SBS ๋๋ผ๋ง ๊น๋ถ์ฅ 10ํ ๋ฆฌ๋ทฐ", + "title": "SBS ๊น๋ถ์ฅ 10ํ ๋ฆฌ๋ทฐยท๋ช ์ฅ๋ฉด ์ด์ ๋ฆฌ", + "status": "skipped", + "source": "auto", + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "blogUrl": "", + "errorMessage": "์ค๋ณต ์ ๋ชฉ โ ์ฌ์๋ ๊ฑด๋๋", + "createdAt": "2026-07-19T00:00:00", + "publishedAt": null, + "lastAttemptAt": "2026-07-19T17:59:32.109054", + "attempts": 2, + "runNumber": 0, + "wordCount": 2746, + "faqCount": 3, + "category": "์ผ๋ฐ", + "labels": [ + "๋๋ผ๋ง๋ฆฌ๋ทฐ", + "๊ธ์ต", + "๊ฒฝ์ ", + "์ ๋ถ์ง์", + "์ธ๊ธ", + "์ ์ธ", + "์ฌํ ํฌ" + ], + "metaDescription": "SBS ๋๋ผ๋ง ๊น๋ถ์ฅ 10ํ ๋ฆฌ๋ทฐ. ์ค๊ฑฐ๋ฆฌยท๋ช ์ฅ๋ฉดยท๋ช ๋์ฌ์ ๊ทน์ค ํด์ง๊ธยท๋ ธํ์ค๋น ์ด์ผ๊ธฐ๋ฅผ ์ค์ ์ ๋์ ํจ๊ป ์ง์ด๋ด ๋๋ค. ํฌ์ ์กฐ์ธ์ด ์๋ ๊ฐ์ยท์ ๋ณด ์ ๋ฆฌ ๊ธ์ ๋๋ค.", + "contentPreview": "1ํธ๋ถํฐ 9ํ๊น์ง ์ ๋ฆฌํ๋ฉด์ ๊ฐ์ธ์ ์ผ๋ก ๊ฐ์ฅ ํฅ๋ฏธ๋ก์ ๋ ๊ฑด ์ด ๋๋ผ๋ง๊ฐ ๋จ์ํ ์คํผ์ค ์ฝ๋ฏธ๋๊ฐ ์๋๋ผ, ์ค์ 40~50๋ ์ง์ฅ์ธ๋ค์ด ๋ง์ฃผํ๋ ํด์ง๊ธยท๋ช ์ํด์งยท์ฌ์ทจ์ ๋ฌธ์ ๋ฅผ ๊ณ์ ๋ฐฐ๊ฒฝ์ผ๋ก ๊น๊ณ ๊ฐ๋ค๋ ์ ์ด์์ต๋๋ค. 9ํธ์์ ๊น๋ถ์ฅ์ ์น์ง ๊ฐ๋ฑ์ ๋ค๋ค๋ค๋ฉด, ์ด๋ฒ 10ํ๋ ์๋ฆฌ์ฆ ์ ์ฒด ํ๋ฆ์์ ์ผ์ข ์ ์ ํ์ ์ญํ ์ ํ๋ ํ์ฐจ๋ผ๋ ํ์ด ์์ฒญ์ ์ปค๋ฎค๋ํฐ์ ๋ฐฉ์ก ๊ด๋ จ...", + "articleType": "drama_review" + }, + { + "post_id": "2026-07-19_SBS๋๋ผ๋ง๊น๋ถ์ฅ7ํ๋ฆฌ๋ทฐ_602335f0", + "keyword": "SBS ๋๋ผ๋ง ๊น๋ถ์ฅ 7ํ ๋ฆฌ๋ทฐ", + "title": "[1ํธ] ๊น๋ถ์ฅ 7ํ ๋ฆฌ๋ทฐ, ๋ณ์ฅ ๋์น์ ์๋ฒฝ ์ ๋ฆฌ", + "status": "published", + "source": "auto", + "blogId": "blog1", + "blogName": "HOGU What?", + "blogUrl": "https://www.hoguwhat.com/2026/07/7.html", + "errorMessage": null, + "createdAt": "2026-07-19T00:00:00", + "publishedAt": "2026-07-19T16:02:25.906342", + "lastAttemptAt": "2026-07-19T16:02:25.906342", + "attempts": 3, + "runNumber": 0, + "wordCount": 2608, + "faqCount": 4, + "category": "์ผ๋ฐ", + "labels": [ + "๋๋ผ๋ง๋ฆฌ๋ทฐ", + "๊น๋ถ์ฅ", + "SBS๋๋ผ๋ง", + "๊ธํ ๋๋ผ๋ง", + "์์ง์ญ", + "์ฃผ์์ฑ", + "์ต๋ํ" + ], + "metaDescription": "SBS ๋๋ผ๋ง ๊น๋ถ์ฅ 7ํ ๋ฆฌ๋ทฐ. ๋ณ์ฅ ๋์น์ ์ค๊ฑฐ๋ฆฌ ์์ฝ, ์์ง์ญยท์ฃผ์์ฑ ๋ช ์ฅ๋ฉด, ๋ฐฐ์ฐ ์ฐ๊ธฐ ํ๊ฐ์ 8ํ ์์ ํฌ์ธํธ๊น์ง ์คํฌ์ฃผ์ ์ ๋ฆฌ.", + "contentPreview": "๊ธ์์ผ ๋ฐค 9์ 50๋ถ, SBS ๊ธํ ๋๋ผ๋ง ์๊ฐ๋์ ์ฑ๋์ ๋ง์ถฐ๋๊ณ ์๋ค ๋ณด๋ฉด ์์ฆ ์ ๋ ๋์ ๋๋ ์ํ์ด ํ๋ ์์ต๋๋ค. ๋ฐ๋ก ๊น๋ถ์ฅ์ด์์. 2026๋ 7์ 17์ผ ๋ฐฉ์ก๋ 7ํ๋ ๊ทธ๋์ ์์ฌ์จ ๊ฐ์ ์ ์ด ๋ณ์ฅ์ด๋ผ๋ ์ข์ ๊ณต๊ฐ ์์์ ํ๊บผ๋ฒ์ ํฐ์ ธ ๋์จ ํ์ฐจ์์ต๋๋ค. ์ ๋ ์ด ๋๋ผ๋ง๋ฅผ 1ํ๋ถํฐ ์ฑ๊ฒจ๋ณด๋ฉด์ ํ์ฐจ๋ณ๋ก ๊ธฐ๋ก์ ๋จ๊ธฐ๊ณ ์๋๋ฐ์, ์ด๋ฒ ๊ธ์ ๊ทธ์ค SB...", + "articleType": "drama_review" + }, + { + "post_id": "2026-07-19_SBS๋๋ผ๋ง๊น๋ถ์ฅ8ํ๋ฆฌ๋ทฐ_28b47c9a", + "keyword": "SBS ๋๋ผ๋ง ๊น๋ถ์ฅ 8ํ ๋ฆฌ๋ทฐ", + "title": "[2ํธ] SBS ๋๋ผ๋ง ๊น๋ถ์ฅ 8ํ ๋ฆฌ๋ทฐ โ ๋ฏผ์ง ๊ตฌ์ถ๊ณผ ๋ฐ์ ๊ฐ์กฑ๊ทน", + "status": "published", + "source": "auto", + "blogId": "blog1", + "blogName": "HOGU What?", + "blogUrl": "https://www.hoguwhat.com/2026/07/sbs-8.html", + "errorMessage": null, + "createdAt": "2026-07-19T00:00:00", + "publishedAt": "2026-07-19T16:04:07.508780", + "lastAttemptAt": "2026-07-19T16:04:07.508780", + "attempts": 3, + "runNumber": 0, + "wordCount": 3167, + "faqCount": 3, + "category": "์ผ๋ฐ", + "labels": [ + "๋๋ผ๋ง๋ฆฌ๋ทฐ", + "๊น๋ถ์ฅ", + "SBS๋๋ผ๋ง", + "๊น๋ถ์ฅ8ํ", + "์์ง์ญ", + "์ต๋ํ", + "์ค๊ฒฝํธ" + ], + "metaDescription": "SBS ๋๋ผ๋ง ๊น๋ถ์ฅ 8ํ ๋ฆฌ๋ทฐ. ๋ฏผ์ง ๊ตฌ์ถ๊ณผ ์๋ณ ์ธ์ฌ, ๋ฐ์ง์ฒ ๊ฐ์กฑ ๋ฐ์ , ๋ฐฐ์ฐ ์ฐ๊ธฐ ํ๊ฐ์ 9ํ ์์ ํฌ์ธํธ๊น์ง ์คํฌ์ฃผ์ ์๋ด์ ํจ๊ป ์ ๋ฆฌํ์ต๋๋ค.", + "contentPreview": "7ํ ์๋ฉ์์ ๊น๋ถ์ฅ์ด ์ด๋๊ฐ ๋ฏ์ ๊ณต๊ฐ์ ํญ ๋์ ธ์ง๋ฏ ์ ์๋ ์ฅ๋ฉด, ์ ๋ ๊ทธ๊ฑฐ ๋ณด๊ณ ์ฑ๋ ๋๋ฆด ๋ปํ์ด์. ์ ๊ฒ ๋ฌด์จ ์ค์ ์ด์ง ์ถ์ด์์. ๊ทธ๋ฐ๋ฐ 8ํ๋ฅผ ์กฐ์ฌํ๋ฉด์ ์๋ฃ๋ค์ ์ข ํฉํด๋ณด๋, ์ด๊ฒ ๋จ์ํ ์ฐฉ์๊ฐ ์๋๋ผ ๊ทน ์ ์ฒด๋ฅผ ๊ดํตํ๋ ํํ์ง์ ์ฅ์น์๋๋ผ๊ณ ์. 1ํธ์์ 7ํ ๋ฆฌ๋ทฐ๋ฅผ ๋ค๋ฃจ๋ฉด์ ์์ง์ญ ๋ฐฐ์ฐ์ ํ์ ์ฐ๊ธฐ๋ฅผ ์ง์๋๋ฐ, 8ํ์์๋ ๊ทธ ํ์ ์ฐ๊ธฐ๊ฐ ํ ๋จ...", + "articleType": "drama_review" + }, + { + "post_id": "2026-07-19_SBS๋๋ผ๋ง๊น๋ถ์ฅ9ํ๋ฆฌ๋ทฐ_433a504f", + "keyword": "SBS ๋๋ผ๋ง ๊น๋ถ์ฅ 9ํ ๋ฆฌ๋ทฐ", + "title": "[3ํธ] SBS ๋๋ผ๋ง ๊น๋ถ์ฅ 9ํ ๋ฆฌ๋ทฐ โ ์ต๋ํ ๋ช ์ฐ๊ธฐ์ ๋ฐ์ ์ ๊ฐ", + "status": "published", + "source": "auto", + "blogId": "blog1", + "blogName": "HOGU What?", + "blogUrl": "https://www.hoguwhat.com/2026/07/sbs-9.html", + "errorMessage": null, + "createdAt": "2026-07-19T00:00:00", + "publishedAt": "2026-07-19T16:06:11.159893", + "lastAttemptAt": "2026-07-19T16:06:11.159893", + "attempts": 3, + "runNumber": 0, + "wordCount": 2617, + "faqCount": 3, + "category": "์ผ๋ฐ", + "labels": [ + "๋๋ผ๋ง๋ฆฌ๋ทฐ", + "๊น๋ถ์ฅ", + "๊น๋ถ์ฅ9ํ", + "SBS๊ธํ ๋๋ผ๋ง", + "์ต๋ํ", + "์์ง์ญ", + "์ค๊ฒฝํธ" + ], + "metaDescription": "SBS ๋๋ผ๋ง ๊น๋ถ์ฅ 9ํ ๋ฆฌ๋ทฐ, ์ค๊ฑฐ๋ฆฌ ํต์ฌ๊ณผ ๋ช ์ฅ๋ฉดยท๋ช ๋์ฌ, ์ต๋ํยท์์ง์ญ ์ฐ๊ธฐ ํ๊ฐ, ์์ฒญ์ ๋ฐ์๊ณผ 10ํ ์ ๊ฐ ์์๊น์ง ์คํฌ ์ฃผ์ ํฌํจ ์ ๋ฆฌํ์ต๋๋ค.", + "contentPreview": "8ํ์์ ๋ฏผ์ง๋ฅผ ๊ตฌํ ์ฑํ์๊ฐ ๋ง์ง๋ง ์๋ณ ์ธ์ฌ๋ฅผ ๋จ๊ธฐ๊ณ ์ฌ๋ผ์ก๋ค๋ ๊ทธ ์๋ฉ, ๋๋์ฒด 9ํ์์๋ ์ด๋ป๊ฒ ์ด์ด์ง์ง ๊ถ๊ธํ์ง ์์ผ์ จ๋์? ์ ๋ 8ํ ๋๋์๋ง์ ๋ค์ ํ ์๊ณ ํธ์ ๋ช ๋ฒ์ด๋ ๋๋ ค๋ดค๋์ง ๋ชจ๋ฅด๊ฒ ์ด์. ์ด๋ฒ ํธ์ ์๋ฆฌ์ฆ 3๋ฒ์งธ ๊ธ๋ก, 1ํธ์์ 7ํ ์ค๊ฑฐ๋ฆฌ๋ฅผ ๋ค๋ฃจ๊ณ 2ํธ์์ 8ํ ๋ช ์ฅ๋ฉด์ ์ ๋ฆฌํ๋๋ฐ์, ์ค๋์ SBS ๋๋ผ๋ง ๊น๋ถ์ฅ 9ํ ๋ฆฌ๋ทฐ๋ฅผ ์กฐ์ฌํ ๋ด...", + "articleType": "drama_review" + }, + { + "post_id": "2026-07-19_SBS๋๋ผ๋ง๊น๋ถ์ฅ10ํ๋ฆฌ๋ทฐ_6187f536", + "keyword": "SBS ๋๋ผ๋ง ๊น๋ถ์ฅ 10ํ ๋ฆฌ๋ทฐ", + "title": "[4ํธ] SBS ๋๋ผ๋ง ๊น๋ถ์ฅ 10ํ ๋ฆฌ๋ทฐ โ ์๊ฒฐํธ ์ด์ ๋ฆฌ", + "status": "published", + "source": "auto", + "blogId": "blog1", + "blogName": "HOGU What?", + "blogUrl": "https://www.hoguwhat.com/2026/07/sbs-10.html", + "errorMessage": null, + "createdAt": "2026-07-19T00:00:00", + "publishedAt": "2026-07-19T16:08:14.752291", + "lastAttemptAt": "2026-07-19T16:08:14.752291", + "attempts": 3, + "runNumber": 0, + "wordCount": 3255, + "faqCount": 3, + "category": "์ผ๋ฐ", + "labels": [ + "๋๋ผ๋ง๋ฆฌ๋ทฐ", + "๊น๋ถ์ฅ", + "SBS๋๋ผ๋ง", + "๊น๋ถ์ฅ10ํ", + "๊ธํ ๋๋ผ๋ง", + "์ต๋ํ", + "์ค๊ฒฝํธ" + ], + "metaDescription": "SBS ๋๋ผ๋ง ๊น๋ถ์ฅ 10ํ ๋ฆฌ๋ทฐ. ์๊ฒฐํธ ์ค๊ฑฐ๋ฆฌ ํต์ฌ ์์ฝ๊ณผ ์คํฌ์ผ๋ฌ ์ฃผ์, ๋ช ์ฅ๋ฉดยท๋ช ๋์ฌ, ๋ฐฐ์ฐ ์ฐ๊ธฐ ํ๊ฐ์ ๊ฒฐ๋ง ์ดํ๊น์ง ํ ๋ฒ์ ์ ๋ฆฌํ์ต๋๋ค.", + "contentPreview": "์ง๋์ฃผ 9ํ ๋ฆฌ๋ทฐ๋ฅผ ์ฌ๋ฆฌ๊ณ ๋์ ๋๊ธ๋ก ๊ฐ์ฅ ๋ง์ด ๋ฐ์ ์ง๋ฌธ์ด '์ด์ ๋ง์ง๋งํ์ธ๋ฐ ์ด๋ป๊ฒ ๋๋์?'์์ด์. ์ ๋ 3ํธ๊น์ง ์ฐ๋ฉด์ ์ด ๋๋ผ๋ง๊ฐ ์ด๋ ๊ฒ ์ค๋ ํ์ ์ฑ์ ๋๊ณ ๊ฐ ์ค์ ๋ชฐ๋๊ฑฐ๋ ์. SBS ๊ธํ ๋๋ผ๋ง <๊น๋ถ์ฅ>์ด 10๋ถ์์ผ๋ก ๊ธฐํ๋๋ค๋ ์ด์ผ๊ธฐ๊ฐ ๋ฐฉ์ ์ด๋ฐ๋ถํฐ ๋์๋๋ฐ, ์ค์ ๋ก 10ํ์์ ์๊ฒฐ ์์์ ๋ฐ๋ ๊ฑธ ๋ณด๋ฉด์ ์ด ์๋ฆฌ์ฆ ๋ง์ง๋ง ํธ์ ...", + "articleType": "drama_review" + }, + { + "post_id": "2026-07-19_SBS๋๋ผ๋ง๊น๋ถ์ฅ7ํ๋ฆฌ๋ทฐ_874da923", + "keyword": "SBS ๋๋ผ๋ง ๊น๋ถ์ฅ 7ํ ๋ฆฌ๋ทฐ", + "title": "[7ํ] SBS ๊น๋ถ์ฅ ๋ฆฌ๋ทฐ, ๋ช ๋์ฌยท์ ๊ฐ ์ด์ ๋ฆฌ", + "status": "published", + "source": "auto", + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "blogUrl": "https://hogugolfntraval.blogspot.com/2026/07/sbs-7.html", + "errorMessage": null, + "createdAt": "2026-07-19T00:00:00", + "publishedAt": "2026-07-19T16:11:47.201448", + "lastAttemptAt": "2026-07-19T16:11:47.201448", + "attempts": 7, + "runNumber": 0, + "wordCount": 1899, + "faqCount": 3, + "category": "์ผ๋ฐ", + "labels": [ + "๋๋ผ๋ง๋ฆฌ๋ทฐ", + "SBS", + "๊น๋ถ์ฅ", + "๋ฆฌ๋ทฐ", + "์์ฒญํ๊ธฐ" + ], + "metaDescription": "SBS ๋๋ผ๋ง ๊น๋ถ์ฅ 7ํ ์ค๊ฑฐ๋ฆฌ, ๋ช ์ฅ๋ฉดยท๋ช ๋์ฌ, ๋ฐฐ์ฐ ์ฐ๊ธฐ ํ๊ฐ์ 8ํ ๊ด์ ํฌ์ธํธ๊น์ง ์คํฌ์ผ๋ฌ ์ฃผ์ ์๋ด์ ํจ๊ป ์ ๋ฆฌํ์ต๋๋ค.", + "contentPreview": "์ฃผ๋ง ์ ๋ ๋ง๋ค ๋ณธ๋ฐฉ์ ์ฑ๊ธฐ๋ค ๋ณด๋ ์ด๋์ 7ํ๊น์ง ์์ต๋๋ค. 1ํธ๋ถํฐ ์๋ฆฌ์ฆ๋ก ์ ๋ฆฌํด๋ณด์๊ณ ๋ง์๋จน์๋ ๊ฒ ์ฌ์ค ๋ณ ๊ณํ ์์ด ์์ํ ์ผ์ด์๋๋ฐ, ํ์ฐจ๊ฐ ์์ด๋ ์ด๋ฐ ์ค์ ๊ณผ ํ๋ฐ ์ ๊ฐ๊ฐ ์ด๋ป๊ฒ ์ด์ด์ง๋์ง ์ค์ค๋ก๋ ๊ถ๊ธํด์ ธ์ ์ด๋ ๊ฒ ํ ํธ์ฉ ๊ธฐ๋ก์ ๋จ๊ธฐ๊ณ ์์ต๋๋ค. 7ํ๋ ์ค๋ฐ๋ถ ๋ถ๊ธฐ์ ๊ฐ์ ๋๋์ด ๊ฐํ๋ ํ์ฐจ๋ผ, ์คํฌ์ผ๋ฌ์ ๋ฏผ๊ฐํ์ ๋ถ๋ค์ ์๋ ์ค๊ฑฐ๋ฆฌ ์์ฝ ...", + "articleType": "drama_review" + }, + { + "post_id": "2026-07-19_SBS๋๋ผ๋ง๊น๋ถ์ฅ8ํ๋ฆฌ๋ทฐ_be6019bd", + "keyword": "SBS ๋๋ผ๋ง ๊น๋ถ์ฅ 8ํ ๋ฆฌ๋ทฐ", + "title": "SBS ๊น๋ถ์ฅ 8ํ ๋ฆฌ๋ทฐ? JTBC ์ํ๊ณผ ํท๊ฐ๋ฆฌ๋ ์ด์ ", + "status": "published", + "source": "auto", + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "blogUrl": "https://hogugolfntraval.blogspot.com/2026/07/sbs-8.html", + "errorMessage": null, + "createdAt": "2026-07-19T00:00:00", + "publishedAt": "2026-07-19T16:13:45.095815", + "lastAttemptAt": "2026-07-19T16:13:45.095815", + "attempts": 5, + "runNumber": 0, + "wordCount": 2818, + "faqCount": 4, + "category": "์ผ๋ฐ", + "labels": [ + "๋๋ผ๋ง๋ฆฌ๋ทฐ", + "IT", + "์ฝํ ์ธ ", + "OTT", + "๋ฐฉ์ก", + "ํฉํธ์ฒดํฌ", + "๋ฆฌ๋ทฐ" + ], + "metaDescription": "SBS ๋๋ผ๋ง ๊น๋ถ์ฅ 8ํ๋ฅผ ๊ฒ์ํ๋ค ํ์ธํ ๋ฐฉ์ก์ฌ ์ ๋ณด ํผ๋ ์ ๋ฆฌ. JTBC '๋๊ธฐ์ ๊น๋ถ์ฅ' 8ํ ์์ฒญ๋ฅ 4.7%์ ๊ด๋ จ ์ฌ์ค๊ด๊ณ๋ฅผ ์ง์ด๋ด ๋๋ค.", + "contentPreview": "7ํ ๋ฆฌ๋ทฐ๋ฅผ ์ฌ๋ฆฌ๊ณ ๋์ 8ํ ์๋ฃ๋ฅผ ์กฐ์ฌํ๋ ค๊ณ ๊ฒ์์ฐฝ์ 'SBS ๋๋ผ๋ง ๊น๋ถ์ฅ 8ํ'๋ฅผ ๋ฃ์๋๋ฐ, ๊ฒ์ ๊ฒฐ๊ณผ๊ฐ ์ด์ํ๊ฒ ๊ณ์ JTBC ์ชฝ์ผ๋ก ์ ๋ ธ์ต๋๋ค. ์ฒ์์ ๋ฐฉ์ก์ฌ ์ ๋ณด๊ฐ ์๋ชป ํ๊น ๋ ์ค ์์๋๋ฐ, ์๋ฃ๋ฅผ ์ข ๋ ํ๋ณด๋ ์ค์ ๋ก ๋ฐฉ์ก์ฌ๋ถํฐ ๋ค์ ํ์ธ์ด ํ์ํ ์ํฉ์ด์์ต๋๋ค. 1ํธ์์ 7ํ ์ด๊ธฐ ์ค์ ๊ณผ ์ธ๋ฌผ ๊ด๊ณ๋ฅผ ๋ค๋ค๋๋ฐ, 8ํ๋ก ๋์ด๊ฐ๋ฉด์ ์ด ๋ถ๋ถ์ ...", + "articleType": "drama_review" + }, + { + "post_id": "2026-07-19_SBS๋๋ผ๋ง๊น๋ถ์ฅ9ํ๋ฆฌ๋ทฐ_26adfbc6", + "keyword": "SBS ๋๋ผ๋ง ๊น๋ถ์ฅ 9ํ ๋ฆฌ๋ทฐ", + "title": "SBS ๊น๋ถ์ฅ 9ํ ๋ฆฌ๋ทฐ: ๋จ์ค์ฅ ์ก์ ๊ด์ ํฌ์ธํธ", + "status": "published", + "source": "auto", + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "blogUrl": "https://hogugolfntraval.blogspot.com/2026/07/sbs-9.html", + "errorMessage": null, + "createdAt": "2026-07-19T00:00:00", + "publishedAt": "2026-07-19T16:20:35.295327", + "lastAttemptAt": "2026-07-19T16:20:35.295327", + "attempts": 3, + "runNumber": 0, + "wordCount": 2531, + "faqCount": 3, + "category": "์ผ๋ฐ", + "labels": [ + "๋๋ผ๋ง๋ฆฌ๋ทฐ", + "๋ฆฌ๋ทฐ", + "์ฌ์ฉ๊ธฐ" + ], + "metaDescription": "SBS ๊น๋ถ์ฅ 9ํ ๋ฆฌ๋ทฐ๋ฅผ ์กฐ์ฌ ์์ ๊ธฐ์ค์ผ๋ก ์ ๋ฆฌํ์ต๋๋ค. ๋จ์ค์ฅ(์ด๋ํ) ์บ๋ฆญํฐ ๋ถ์, 6~7ํ ์ก์ ์ฅ๋ฉด, 9ํ ๊ด์ ํฌ์ธํธ๊น์ง ํ์ธํด๋ณด์ธ์.", + "contentPreview": "๋๋ผ๋ง ํ ํ์ฐจ๊ฐ ๋ฐฉ์๋๊ณ ๋๋ฉด ๋ ๊ถ๊ธํด์ง๋ ๊ฒ ์์ต๋๋ค. '๋ค์ ํ์์๋ ์ ์บ๋ฆญํฐ๊ฐ ์ด๋ป๊ฒ ๋ ๊น', '์ ๋๊ฒฐ์ ๊ฒฐ๋ง์ ์ด๋๋ก ํ๊น' ํ๋ ๊ฒ๋ค์ด์ฃ . SBS ๊ธํ ๋๋ผ๋ง '๊น๋ถ์ฅ'์ ์ฑ๊ฒจ๋ณด๋ ๋ถ๋ค์ด๋ผ๋ฉด ์์ฆ ํนํ ๋จ์ค์ฅ(์ด๋ํ)์ด๋ผ๋ ์บ๋ฆญํฐ ๋๋ฌธ์ ์ด๋ฐ ๊ถ๊ธ์ฆ์ด ์ปค์ง๊ณ ์์ ๊ฒ๋๋ค. ์ด ๊ธ์ ์ฐ๋ 2026๋ 7์ 19์ผ ๊ธฐ์ค์ผ๋ก๋ 9ํ๊ฐ ์์ง ๋ฐฉ์ ์ ์ด...", + "articleType": "drama_review" + }, + { + "post_id": "2026-07-19_SBS๋๋ผ๋ง๊น๋ถ์ฅ10ํ๋ฆฌ๋ทฐ_46e3bb3c", + "keyword": "SBS ๋๋ผ๋ง ๊น๋ถ์ฅ 10ํ ๋ฆฌ๋ทฐ", + "title": "[10ํ] ๊น๋ถ์ฅ ๋ฆฌ๋ทฐ, ์นํฐ ์กฐํ์ 30๋ฐฐ ์ด์ ", + "status": "published", + "source": "auto", + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "blogUrl": "https://hogugolfntraval.blogspot.com/2026/07/sbs-10.html", + "errorMessage": null, + "createdAt": "2026-07-19T00:00:00", + "publishedAt": "2026-07-19T16:22:35.635593", + "lastAttemptAt": "2026-07-19T16:22:35.635593", + "attempts": 3, + "runNumber": 0, + "wordCount": 2391, + "faqCount": 3, + "category": "์ผ๋ฐ", + "labels": [ + "๋๋ผ๋ง๋ฆฌ๋ทฐ", + "IT", + "OTT", + "์ฝํ ์ธ ", + "์นํฐ", + "๋ฆฌ๋ทฐ", + "SBS" + ], + "metaDescription": "SBS ๋๋ผ๋ง ๊น๋ถ์ฅ 10ํ ๋ฆฌ๋ทฐ: ์ค๊ฑฐ๋ฆฌ ํต์ฌ, ๋ช ์ฅ๋ฉด, ๋ฐฐ์ฐ ์ฐ๊ธฐ ํ๊ฐ, ์์ ์นํฐ ์กฐํ์ 30๋ฐฐ ์ฆ๊ฐ ์๋ฃ๊น์ง ์กฐ์ฌํด ์ ๋ฆฌํ์ต๋๋ค.", + "contentPreview": "SBS ๋๋ผ๋ง '๊น ๋ถ์ฅ ์ด์ผ๊ธฐ' ํ์ฐจ๋ณ ๋ฆฌ๋ทฐ๋ฅผ 7ํ๋ถํฐ ์ด์ด์ค๋ฉด์, ์ด๋ฒ์ด ๋ง์ง๋ง 4๋ฒ์งธ ๊ธ์ ๋๋ค. 1ํธ์์ ์ด๋ฐ ์ธ๋ฌผ ์ค์ ๊ณผ ์ง์ฅ ๋ด ๊ฐ๋ฑ ๊ตฌ๋๋ฅผ ์ง์๊ณ , 2ํธ๊ณผ 3ํธ์์๋ ์ค๋ฐ๋ถ๋ก ๋์ด๊ฐ๋ฉฐ ์์ฌ๊ฐ ์ด์ดํด์ง๋ ํ๋ฆ์ ์ ๋ฆฌํ๋๋ฐ์. 10ํ๋ ์์ฆ ํ๋ฐ๋ถ ๋ถ๊ธฐ์ ์ ํด๋นํ๋ ํ์ฐจ๋ผ ์์ฒญ์ ์ปค๋ฎค๋ํฐ์์๋ ์ ๋ ๋ฐ์์ด ๋จ๊ฑฐ์ ๋ ๊ฑธ๋ก ํ์ธ๋ฉ๋๋ค. ๊ฐ์ธ์ ์ผ๋ก๋ ์ด ...", + "articleType": "drama_review" + }, + { + "post_id": "2026-07-18_ETF์์ฅ์ต์ ๋ํฅ์๋ก๋์จ์ํ์ ๋ฆฌ_93249a75", + "keyword": "ETF ์์ฅ ์ต์ ๋ํฅ ์๋ก ๋์จ ์ํ ์ ๋ฆฌ", + "title": "ETF ์์ฅ ์ต์ ๋ํฅ ์ ๋ฆฌ, ์ ๊ท ์์ฅ ์ํ ์ฒดํฌ", + "status": "published", + "source": "auto", + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "blogUrl": "https://hoguasset.blogspot.com/2026/07/etf_0282569211.html", + "errorMessage": null, + "createdAt": "2026-07-18T23:21:15.046107", + "publishedAt": "2026-07-18T23:21:16.134861", + "lastAttemptAt": "2026-07-18T23:21:16.134861", + "attempts": 2, + "runNumber": 197, + "wordCount": 4265, + "faqCount": 3, + "category": "์ผ๋ฐ", + "labels": [ + "ETF์์ฅ๋ํฅ", + "์ ๊ทETF์ํ", + "์ปค๋ฒ๋์ฝETF", + "PLUS์ปค๋ฒ๋์ฝ", + "ํํ์์ฐ์ด์ฉ" + ], + "metaDescription": "2026๋ ETF ์์ฅ ์ต์ ๋ํฅ๊ณผ ์๋ก ๋์จ ์ ๊ท ์ํ์ ์ ๋ฆฌํ์ต๋๋ค. ์ปค๋ฒ๋์ฝ ETF ์ ์ํ๋ถํฐ ๊ณผ๊ฑฐ ์์ฅ ์ฌ๋ก ๋น๊ต, ํฌ์ ์ ์ฒดํฌ๋ฆฌ์คํธ๊น์ง ํ ๋ฒ์ ํ์ธํด๋ณด์ธ์.", + "contentPreview": "์์ฆ ์ฆ๊ถ์ฌ ์ฑ์ ์ผ๋ณด๋ฉด ์์ ๋ณด๋ค '์ปค๋ฒ๋์ฝ'์ด๋ผ๋ ๋จ์ด๊ฐ ๋ถ์ฉ ์์ฃผ ๋ณด์ ๋๋ค. ์๋ฐฐ๋น์ ์ฑ๊ธฐ๊ณ ์ถ์ดํ๋ ํฌ์์๋ค์ด ๋๋ฉด์ ์์ฐ์ด์ฉ์ฌ๋ค๋ ๊ด๋ จ ์ํ์ ์๋ฌ์ ๋ด๋๋ ๋ถ์๊ธฐ์ธ๋ฐ์. ์ค์ ๋ก ํํ์์ฐ์ด์ฉ์ ์ต๊ทผ 'PLUS ์ปค๋ฒ๋์ฝ ETF'๋ฅผ ์๋ก ์์ฅํ๋ฉฐ ์ด๋ฐ ํ๋ฆ์ ๋์ฐธํ์ต๋๋ค. ETF๋ ์ด์ ์ฃผ์ ์ด๋ณด์๋ถํฐ ์ํด๋ฅผ ์ค๋นํ๋ ์ง์ฅ์ธ๊น์ง, ๊ณ์ข ํ๋๋ง ์์ผ๋ฉด ๋...", + "articleType": "investment" + }, + { + "post_id": "2026-07-18_์ฌ๋ฆํด๊ฐ๊ตญ๋ด์จ์์ฌํ์ง์ถ์ฒ_f2fe296c", + "keyword": "์ฌ๋ฆ ํด๊ฐ ๊ตญ๋ด ์จ์ ์ฌํ์ง ์ถ์ฒ", + "title": "์ฌ๋ฆ ํด๊ฐ ๊ตญ๋ด ์จ์ ์ฌํ์ง ์ถ์ฒ, ์ฌ๋ ๋ง์ ๊ณณ ์ง์ณค๋ค๋ฉด ์ด๋ฐ ๊ณณ๋ถํฐ", + "status": "pending", + "source": "auto", + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "blogUrl": "", + "errorMessage": null, + "createdAt": "2026-07-18T23:14:45.751216", + "publishedAt": null, + "lastAttemptAt": "2026-07-18T23:14:45.751216", + "attempts": 1, + "runNumber": 197, + "wordCount": 3588, + "faqCount": 3, + "category": "์ผ๋ฐ", + "labels": [ + "์ฌ๋ฆํด๊ฐ", + "๊ตญ๋ด์ฌํ์ง", + "์จ์์ฌํ์ง์ถ์ฒ", + "๊ตญ๋ด์ฌํ", + "๊ณ๊ณก์ฌํ", + "๊ฒฝ๊ธฐ๋์ฌํ", + "์ฐ์ฒ์ฌํ" + ], + "metaDescription": "์ฌ๋ฆ ํด๊ฐ ๊ตญ๋ด ์จ์ ์ฌํ์ง ์ถ์ฒ์ ๊ฒ์ ์ค์ด๋ผ๋ฉด, ๊ณ๊ณกํ ์ฌํ์ง์ ์ ๋ณด ์ ํต๊ธฐํ ๋ฌธ์ ์ ์ฐ์ฒ ์๋๋ฆฌ ๋ฌธํ๋ฒฝ๋๊ณต์ฅ ๊ฐ์ ์ค๋ดํ ๋์๊น์ง ํจ๊ป ํ์ธํด๋ณด์ธ์.", + "contentPreview": "์ฌ๋ฆ ํด๊ฐ์ฒ ๋ง ๋๋ฉด ํฌํธ ๊ฒ์์ฐฝ์ '์ฌ๋ฆ ํด๊ฐ ๊ตญ๋ด ์จ์ ์ฌํ์ง ์ถ์ฒ'์ ์ณ๋ณด๋ ๋ถ๋ค์ด ๋ง์ต๋๋ค. ๊ทธ๋ฐ๋ฐ ๋ง์ ํด๋ฆญํด ๋ค์ด๊ฐ๋ฉด ์ด๋ฏธ ์ ๋ช ํ ๊ด๊ด์ง๋ฅผ '์จ์ ๋ช ์'๋ผ๋ฉฐ ์๊ฐํ๋ ๊ธ์ด ๋๋ถ๋ถ์ด๋ผ ์ค๋งํ์ ๊ฒฝํ, ๋ค๋ค ํ ๋ฒ์ฏค ์์ผ์ค ๊ฒ๋๋ค. ์ฌ์ค '์จ์ ์ฌํ์ง'๋ผ๋ ํํ ์์ฒด๊ฐ ์ด๋ฏธ ๋๋ฌด ํํด์ ธ์, ์ ์ ๊ฒ์๋์ด ๋ฎ๊ณ ์ธํ๋ผ๊ฐ ๋ถ์กฑํ ๊ณณ์ ์คํ๋ ค ์ ๋ณด๊ฐ ์ ์ด ...", + "articleType": "travel_guide" + }, + { + "post_id": "2026-07-18_2026์ฌ๋ฆํด๊ฐ์ฒ ์ธ๊ธฐ์ฌํ์ง์ถ์ฒ๋น ๋ฐ์ดํฐ_4406c444", + "keyword": "2026 ์ฌ๋ฆ ํด๊ฐ์ฒ ์ธ๊ธฐ ์ฌํ์ง ์ถ์ฒ ๋น ๋ฐ์ดํฐ ๋ถ์", + "title": "2026 ์ฌ๋ฆ ํด๊ฐ์ฒ ์ธ๊ธฐ ์ฌํ์ง, ๋น ๋ฐ์ดํฐ๊ฐ ๊ฐ๋ฆฌํค๋ ๊ณณ์ ์์ธ๋ก ์์ธ์ด์๋ค", + "status": "pending", + "source": "auto", + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "blogUrl": "", + "errorMessage": null, + "createdAt": "2026-07-18T11:18:29.887473", + "publishedAt": null, + "lastAttemptAt": "2026-07-18T11:18:29.887473", + "attempts": 1, + "runNumber": 196, + "wordCount": 3681, + "faqCount": 3, + "category": "์ผ๋ฐ", + "labels": [ + "์ฌ๋ฆํด๊ฐ์ฌํ์ง", + "์์ธ๋น์ผ์น๊ธฐ์ฌํ", + "2026์ฌ๋ฆํด๊ฐ", + "๋น ๋ฐ์ดํฐ์ฌํ๋ถ์", + "๊ตญ๋ด์ฌํ์ถ์ฒ", + "์์ธ์ฌํ์ฝ์ค", + "ํด๊ฐ์ฒ ํธ๋ ๋" + ], + "metaDescription": "2026 ์ฌ๋ฆ ํด๊ฐ์ฒ ์ธ๊ธฐ ์ฌํ์ง๋ฅผ ๋ฐ์ดํฐ ํ๋ฆ์ผ๋ก ์ง์ด๋ณด๊ณ , ์ ์ฑ ๋ธ๋ฆฌํ์ด ์๊ฐํ 3์คํ ์์ธ ๋น์ผ์น๊ธฐ ์ฌํ ์ฝํ ์ธ ๋ฅผ ์ค์ฌ์ผ๋ก ์ฅ๋จ์ ๊ณผ ์ ํ ๊ธฐ์ค์ ์ ๋ฆฌํ์ต๋๋ค.", + "contentPreview": "์ฌ๋ฆํด๊ฐ ์๊ธฐ๊ฐ ๋์ค๋ฉด ๋ค๋ค ์์ฐ์ค๋ฝ๊ฒ '์ด๋ ๋ฉ๋ฆฌ ๊ฐ๊น'๋ถํฐ ์๊ฐํฉ๋๋ค. ์ ์ฃผ๋ ํญ๊ณต๊ถ์ ์์๋ณด๊ฑฐ๋, ๊ฐ์๋ ๋ฐ๋ท๊ฐ ์์๋ฅผ ์ฐํด๋๊ฑฐ๋, ์์ ํด์ธ๋ก ๋์ ๋๋ฆฌ๋ ๊ฒฝ์ฐ๋ ๋ง์ฃ . ๊ทธ๋ฐ๋ฐ ์ค์ ๋ก ์ฌํ ๊ด๋ จ ๊ฒ์๊ณผ ์์ฝ ํ๋ฆ์ ๋ค์ฌ๋ค๋ณด๋ฉด, ๋ฉฐ์น ์ฉ ์๊ฐ์ ๋นผ์ ๋ฉ๋ฆฌ ๋ ๋๋ ๊ฒ๋ง์ด 'ํด๊ฐ'๋ ์๋๋ผ๋ ์ด์ผ๊ธฐ๊ฐ ๊ณ์ ๋์ต๋๋ค. ํนํ 2026๋ ์ฒ๋ผ ํด๊ฐ ๊ธฐ๊ฐ์ด ์งง๊ฒ ์ชผ...", + "articleType": "travel_guide" + }, + { + "post_id": "2026-07-18_ํด์ธ์ดํ์ฐ์๋น์ฉํ์ค์ ์ผ๋ก์ผ๋ง๋๋๋_dede49ed", + "keyword": "ํด์ธ ์ดํ์ฐ์ ๋น์ฉ ํ์ค์ ์ผ๋ก ์ผ๋ง๋ ๋๋", + "title": "ํด์ธ ์ดํ์ฐ์ ๋น์ฉ, ์ง์ง ์ผ๋ง๋ ๋๋์ง ์ง์ ์ ์ฐํด๋ดค๋ค", + "status": "published", + "source": "auto", + "blogId": "blog1", + "blogName": "HOGU What?", + "blogUrl": "https://www.hoguwhat.com/2026/07/blog-post_434.html", + "errorMessage": null, + "createdAt": "2026-07-18T11:09:08.211262", + "publishedAt": "2026-07-18T11:09:08.864647", + "lastAttemptAt": "2026-07-18T11:09:08.864647", + "attempts": 2, + "runNumber": 196, + "wordCount": 2813, + "faqCount": 3, + "category": "์ผ๋ฐ", + "labels": [ + "ํด์ธ์ดํ์ฐ์", + "์ดํ์ฐ์๋น์ฉ", + "์ ํ์ค๋น", + "ํด์ธ์ ํ", + "์ดํ์ฐ์๊ตญ๊ฐ" + ], + "metaDescription": "์บ๋๋ค ํ ๋ก ํ 12์ฃผ ์ดํ์ฐ์๋ฅผ ๋ค๋ ์ค๋ฉฐ ์ค์ ๋ก ์ง์ถํ 890๋ง ์์ ํ๋น, ์์๋น, ์ํ๋น, ๋ถ๋๋น์ฉ์ผ๋ก ๋๋ ์ ๋ฆฌํ์ต๋๋ค. ์ ํ์ ๊ฒฌ์ ๊ณผ ์ค์ ๋น์ฉ์ด ์ ๋ค๋ฅธ์ง, ์์ฐ ์งค ๋ ๊ผญ ํ์ธํด์ผ ํ ์ฒดํฌ๋ฆฌ์คํธ๊น์ง ํจ๊ป ๋ด์์ต๋๋ค.", + "contentPreview": "์ต๊ทผ ๋ช ๋ ์ฌ์ด ํ์จ ๋ณ๋ ํญ์ด ์ปค์ง๋ฉด์ ์ดํ์ฐ์๋ฅผ ์ค๋นํ๋ ์ง์ธ๋ค ์ฌ์ด์์ ์์ฐํ๋ฅผ ๋ค์ ์ง๋ ์ผ์ด ๋์์ต๋๋ค. 2026๋ ๋ค์ด์๋ ์๋ฌ๋ฌ, ์์ ๋ก ํ์จ์ด ๊ณ์ ํ๋ค๋ฆฌ๋ ํ์ ์๋ ๊ฒฌ์ ๊ณผ ์ฌํด ๊ฒฌ์ ์ด ์์ญ๋ง ์์ฉ ์ฐจ์ด ๋๋ ๊ฒฝ์ฐ๊ฐ ํํฉ๋๋ค. ์ ํ์ ๋ช ๊ตฐ๋ฐ ์๋ด๋ง ๋ฐ์๋ด๋ ๊ฐ์ ๋๋ผ, ๊ฐ์ ๋์์ธ๋ฐ ์ ์ํ๋ ์ด๋น์ฉ์ด ์ฒ์ฐจ๋ง๋ณ์ด๋ผ ์ด๋ ์ชฝ์ ๋ฏฟ์ด์ผ ํ ์ง ...", + "articleType": "investment" + }, + { + "post_id": "2026-07-18_๋ฏธ๊ตญETF์ฒซ๋งค์์ค์๋ด๊ณต๊ฐ_ada7ef35", + "keyword": "๋ฏธ๊ตญETF ์ฒซ ๋งค์ ์ค์๋ด ๊ณต๊ฐ", + "title": "๋ฏธ๊ตญETF ์ฒซ ๋งค์ ์ค์๋ด ๊ณต๊ฐ, ์ด๋ณด ํฌ์์ ์ฒดํฌํฌ์ธํธ", + "status": "published", + "source": "auto", + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "blogUrl": "https://hoguasset.blogspot.com/2026/07/etf_0136688765.html", + "errorMessage": null, + "createdAt": "2026-07-18T05:49:12.851120", + "publishedAt": "2026-07-18T05:49:14.092631", + "lastAttemptAt": "2026-07-18T05:49:14.092631", + "attempts": 2, + "runNumber": 195, + "wordCount": 4030, + "faqCount": 3, + "category": "์ผ๋ฐ", + "labels": [ + "๋ฏธ๊ตญETF", + "ETF์ฒซ๋งค์", + "ETF์ค์๋ด", + "์๋ฐฐ๋นETF", + "ํด์ธ์ฃผ์ํฌ์" + ], + "metaDescription": "2023๋ ์ฒซ ์๊ธ์ผ๋ก SCHD๋ฅผ ๋งค์ํ๋ฉฐ ๊ฒช์ ํ์จ ์์ค๊ณผ ์ฆ์ ๋งค๋งค ์ค์๋ด์ ๊ณต๊ฐํฉ๋๋ค. ์ด๋ณด ํฌ์์๊ฐ ๋ฏธ๊ตญ ETF ์ฒซ ๋งค์ ์ ํ์ธํด์ผ ํ ์ฒดํฌ๋ฆฌ์คํธ์ ์ ๋ฌธ๊ฐ ์กฐ์ธ์ ํจ๊ป ์ ๋ฆฌํ์ต๋๋ค.", + "contentPreview": "ํน์ ํด์ธ ์ฃผ์ ์ฑ์ ๊น์๋๊ณ ๋ฏธ๊ตญ ETF ์ฒซ ๋งค์ ๋ฒํผ ์์์ ํ์ฐธ์ ๋ง์ค์ฌ๋ณธ ์ ์์ผ์ ๊ฐ์? ํ์จ์ ์ด๋ป๊ฒ ๊ณ์ฐ๋๋์ง, ์ข ๋ชฉ๋ช ๋ค์ ๋ถ์ ์ํ๋ฒณ์ ๋ฌด์จ ๋ป์ธ์ง, ๋ถ๋ฐฐ๊ธ์ ์ธ์ ์ด๋ป๊ฒ ๋ค์ด์ค๋์ง ์๋ฌด๊ฒ๋ ๋ชจ๋ฅด๋ ์ํ์์ '์ผ๋จ ์ฌ๊ณ ๋ณด์'๋ ๋ง์์ผ๋ก ๋งค์ ๋ฒํผ์ ๋๋ ๋ค๊ฐ ๋์ค์ ํํํ๋ ์ฌ๋ก๊ฐ ๊ฝค ๋ง์ต๋๋ค. ์ต๊ทผ ๋ํฅ์ ๋ฐ๋ฅด๋ฉด ๋ฏธ๊ตญ ETF ํฌ์์ ๊ด์ฌ์ ...", + "articleType": "investment" + }, + { + "post_id": "2026-07-18_๋ถ์ฐ1๋ฐ2์ผํผ์์ฌํํ์ค๋น์ฉ๊ณต๊ฐ_08b51082", + "keyword": "๋ถ์ฐ 1๋ฐ2์ผ ํผ์ ์ฌํ ํ์ค ๋น์ฉ ๊ณต๊ฐ", + "title": "๋ถ์ฐ 1๋ฐ2์ผ ํผ์ ์ฌํ ํ์ค ๋น์ฉ ๊ณต๊ฐ, ์ค์ ๋ก ์ผ๋ง๋ ๋ค๊น", + "status": "pending", + "source": "auto", + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "blogUrl": "", + "errorMessage": null, + "createdAt": "2026-07-18T05:41:30.643993", + "publishedAt": null, + "lastAttemptAt": "2026-07-18T05:41:30.643993", + "attempts": 1, + "runNumber": 195, + "wordCount": 2775, + "faqCount": 3, + "category": "์ผ๋ฐ", + "labels": [ + "๋ถ์ฐ์ฌํ", + "ํผ์์ฌํ", + "ํผํ", + "๋ถ์ฐ1๋ฐ2์ผ", + "์ฌํ๊ฒฝ๋น", + "๋ถ์ฐ์ฌํ๋น์ฉ", + "๊ตญ๋ด์ฌํ" + ], + "metaDescription": "๋ถ์ฐ 1๋ฐ2์ผ ํผ์ ์ฌํ ํ์ค ๋น์ฉ์ ๊ตํต๋น, ์๋ฐ๋น, ์๋น, ์ ์ฅ๋ฃ ํญ๋ชฉ๋ณ๋ก ์กฐ์ฌํด ์ ๋ฆฌํ์ต๋๋ค. ์ ์ฝํ๊ณผ ์ฌ์ ํ ์์ฐ ์ฐจ์ด๊น์ง ํ์ธํด๋ณด์ธ์.", + "contentPreview": "ํผ์ ํ์ฉ ๋ ๋๋ ๋ถ์ฐ 1๋ฐ2์ผ, ๋์ฒด ์ผ๋ง๋ฅผ ๋ค๊ณ ๊ฐ์ผ ๋ง์์ด ํธํ ๊น์? ์์ ์์ฝ ์ฐฝ์ ์ผ๋๊ณ ์ด๊ฒ์ ๊ฒ ๊ฒ์ํ๋ค ๋ณด๋ฉด ์ต์ ๊ฐ ์์๋ถํฐ ํธํ ๊น์ง ๊ฐ๊ฒฉ ํญ์ด ๋๋ฌด ์ปค์ ๊ฐ์ด ์ ์กํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. ๊ตํต๋น, ์๋ฐ๋น, ์๋น, ์ ์ฅ๋ฃ๊น์ง ๋ค ๋ํ๋ฉด ๋๋์ฒด ์ต์ข ๊ธ์ก์ด ์ผ๋ง๊ฐ ๋์ฌ์ง ๊ถ๊ธํด์ ์ด ๊ธ์ ์ ๋ฆฌํด๋ดค์ต๋๋ค. ๋ง๋ฆฐํํ๋ ์ฌ๋ฌ ์ปค๋ฎค๋ํฐ์ ํ๊ธฐ ๊ธ, ๊ณต์...", + "articleType": "travel_guide" + }, + { + "post_id": "2026-07-18_๋๋จ์ํ๋ฌ์ด๊ธฐ์ง๊ตฌํ๋๋ฐฉ๋ฒ๊ณผ๊ณ์ฝ์ฃผ์์ฌํญ_f1ef728f", + "keyword": "๋๋จ์ ํ ๋ฌ ์ด๊ธฐ ์ง ๊ตฌํ๋ ๋ฐฉ๋ฒ๊ณผ ๊ณ์ฝ ์ฃผ์์ฌํญ", + "title": "๋๋จ์ ํ ๋ฌ ์ด๊ธฐ ์ง ๊ตฌํ๋ ๋ฒ๊ณผ ๊ณ์ฝ ์ฃผ์์ฌํญ", + "status": "published", + "source": "auto", + "blogId": "blog1", + "blogName": "HOGU What?", + "blogUrl": "https://www.hoguwhat.com/2026/07/blog-post_18.html", + "errorMessage": null, + "createdAt": "2026-07-18T05:32:46.841759", + "publishedAt": "2026-07-18T05:32:47.949746", + "lastAttemptAt": "2026-07-18T05:32:47.949746", + "attempts": 2, + "runNumber": 195, + "wordCount": 5019, + "faqCount": 3, + "category": "์ผ๋ฐ", + "labels": [ + "๋๋จ์ํ๋ฌ์ด๊ธฐ", + "์น์๋ง์ดํ๋ฌ์ด๊ธฐ", + "ํด์ธ์ฅ๊ธฐ๋ ํธ", + "๊ณ์ฝ์ฃผ์์ฌํญ", + "๋๋จ์๋ถ๋์ฐ" + ], + "metaDescription": "์น์๋ง์ด ํ ๋ฌ ์ด๊ธฐ ์ค์ ๊ฒฝํ์ ๋ฐํ์ผ๋ก ๋๋จ์ ๋จ๊ธฐ ๋ ํธ ์ง ๊ตฌํ๋ ๋ฐฉ๋ฒ, ์ง์ญ๋ณ ํน์ฑ, ๊ณ์ฝ ์ ์ฒดํฌ๋ฆฌ์คํธ, ๋๋ผ๋ณ ์๋ ๊ดํ ์ฐจ์ด๊น์ง ์ ๋ฆฌํ์ต๋๋ค.", + "contentPreview": "์ต๊ทผ ๋ช ๋ ์ฌ์ด ์น์๋ง์ด, ๋ฐ๋ฆฌ, ๋ค๋ญ, ๋ฐฉ์ฝ ๊ฐ์ ๋์๋ก ํ ๋ฌ ์ด๊ธฐ๋ฅผ ๋ ๋๋ ์ง์ฅ์ธ๊ณผ ํ๋ฆฌ๋์๊ฐ ๋์ ๋๊ฒ ๋์์ต๋๋ค. ํ์ฌ๋ฅผ ๋ค๋๋ฉด์๋ ์ฌํ๊ทผ๋ฌด๋ก ๋์ธ ๋ฌ์ฉ ๋จธ๋ฌด๋ ์ฌ๋๋ ๋ง์์ก๊ณ , ์ํด ํ ๋ฌผ๊ฐ๊ฐ ์ ๋ ดํ ๋๋จ์์์ ์ง๋ด๋ ์ฌ๋ก๋ ์ฌ์ฌ์ฐฎ๊ฒ ๋ณด์ ๋๋ค. ๊ทธ๋ฐ๋ฐ ๋ง์ ์ง์ ๊ตฌํ๋ ค๊ณ ๊ฒ์์ ์์ํ๋ฉด ์ ๋ณด๊ฐ ๋๋ฌด ํฉ์ด์ ธ ์์ด์ ์ด๋์๋ถํฐ ์๋์ผ ํ ์ง ๋ง๋งํด์ง...", + "articleType": "how_to" + }, + { + "post_id": "2026-07-18_๊น๋ถ์ฅ์ฒซ์ธ์๋ฆฌ๋ทฐ_7dc0cd72", + "keyword": "๊น๋ถ์ฅ ์ฒซ์ธ์ ๋ฆฌ๋ทฐ", + "title": "[1ํธ] ๊น๋ถ์ฅ ์ฒซ์ธ์ ์์ง ๋ฆฌ๋ทฐ, ์ฅ๋ฅด๋ ๋ถ์๊ธฐ๋ถํฐ ์ง์ด๋ดค์ด์", + "status": "published", + "source": "auto", + "blogId": "blog1", + "blogName": "HOGU What?", + "blogUrl": "https://www.hoguwhat.com/2026/07/blog-post_20.html", + "errorMessage": null, + "createdAt": "2026-07-18T00:00:00", + "publishedAt": "2026-07-19T16:17:01.175565", + "lastAttemptAt": "2026-07-19T16:17:01.175565", + "attempts": 7, + "runNumber": 0, + "wordCount": 2778, + "faqCount": 3, + "category": "์ผ๋ฐ", + "labels": [ + "๋๋ผ๋ง๋ฆฌ๋ทฐ", + "๊น๋ถ์ฅ", + "๊น๋ถ์ฅ๋ฆฌ๋ทฐ", + "์ฒซ์ธ์๋ฆฌ๋ทฐ", + "๋๋ผ๋ง์ฒซ์ธ์", + "๋๋ผ๋ง์ถ์ฒ", + "ํ๊ตญ๋๋ผ๋ง" + ], + "metaDescription": "๊น๋ถ์ฅ ์ฒซ์ธ์ ๋ฆฌ๋ทฐ, ์ฅ๋ฅด์ ๋ถ์๊ธฐ ์ค์ฌ์ผ๋ก ์์ฒญ ์ ์ฐธ๊ณ ํฌ์ธํธ๋ฅผ ์กฐ์ฌํด ์ ๋ฆฌํ์ด์. ํ์ธ ์ ๋ ์ ๋ณด๋ ์์งํ๊ฒ ๋ฐํ 1ํธ์ ๋๋ค.", + "contentPreview": "๋๋ผ๋ง ์ ๋ชฉ๋ง ๋ณด๊ณ '์, ์ด๊ฑฐ ๋ปํ ์ง์ฅ์ธ ๋๋ผ๋ง๊ฒ ๊ตฌ๋' ์ถ์ผ์ จ๋ ์ ์์ผ์ธ์? ์ ๋ ๊น๋ถ์ฅ์ด๋ผ๋ ์ ๋ชฉ์ ์ฒ์ ๋ค์์ ๋ ๋น์ทํ ์๊ฐ์ ํ์ด์. ๊ทธ๋ฐ๋ฐ ๋ง์ ์ด๋ฐ๋ถ ๋ถ์๊ธฐ๋ฅผ ์ดํด๋ณด๋ ์์ํ๋ ๊ฒ๊ณผ ๊ฒฐ์ด ์ข ๋ค๋ฅด๋๋ผ๊ณ ์. ์ด๋ฒ ๊ธ์ ๊น๋ถ์ฅ ์๋ฆฌ์ฆ ๋ฆฌ๋ทฐ์ ์ฒซ ํธ์ผ๋ก, ์คํ ๋ฆฌ ์คํฌ์ผ๋ฌ๋ณด๋ค๋ ์ฅ๋ฅด์ ๋ถ์๊ธฐ ์์ฃผ๋ก ์์ฒญ ์ ์ ์ฐธ๊ณ ํ ๋งํ ํฌ์ธํธ๋ฅผ ์ ๋ฆฌํด๋ณผ๊ฒ์. ๋ฑ...", + "articleType": "news_analysis" + }, + { + "post_id": "2026-07-18_๊น๋ถ์ฅ๋ฑ์ฅ์ธ๋ฌผ๋ถ์_169d5e1a", + "keyword": "๊น๋ถ์ฅ ๋ฑ์ฅ์ธ๋ฌผ ๋ถ์", + "title": "[๊น๋ถ์ฅ 2ํธ] ๋ฑ์ฅ์ธ๋ฌผ ๋ถ์ ์๋ฒฝ์ ๋ฆฌ, ์์ง์ญ ์ฐ๊ธฐ ํ๊ฐ๊น์ง", + "status": "published", + "source": "auto", + "blogId": "blog1", + "blogName": "HOGU What?", + "blogUrl": "https://www.hoguwhat.com/2026/07/2.html", + "errorMessage": null, + "createdAt": "2026-07-18T00:00:00", + "publishedAt": "2026-07-18T00:00:00", + "lastAttemptAt": "2026-07-18T00:00:00", + "attempts": 1, + "runNumber": 0, + "wordCount": 2727, + "faqCount": 3, + "category": "์ผ๋ฐ", + "labels": [ + "๊น๋ถ์ฅ๋ฑ์ฅ์ธ๋ฌผ๋ถ์", + "์์ง์ญ", + "SBS๋๋ผ๋ง", + "๋๋ผ๋ง๋ฆฌ๋ทฐ", + "๊น๋ถ์ฅ" + ], + "metaDescription": "SBS ๊น๋ถ์ฅ ๋ฑ์ฅ์ธ๋ฌผ ๋ถ์ 2ํธ, ์ํ์คยท์ต๋ฒํธยท์ฃผ๊ฐ์ฐฌ ๊ด๊ณ์ ์์ง์ญ ์ฐ๊ธฐ ํ๊ฐ, ์์ฒญ๋ฅ ยท๋ทํ๋ฆญ์ค ๋ฐ์๊น์ง ์ธ๋ฌผ ์ค์ฌ์ผ๋ก ์ ๋ฆฌํ์ต๋๋ค.", + "contentPreview": "1ํธ์ ์ฌ๋ฆฌ๊ณ ๋์ ๋๊ธ๋ก ๊ฐ์ฅ ๋ง์ด ๋ฐ์ ์ง๋ฌธ์ด ์์ด์. \"๊ฒฐ๊ตญ ํน์๊ตญ์ด๋ ์ํ์ค, ์ต๋ฒํธ๋ ๋ญ ํ๋ ์ฌ๋๋ค์ด๋\"๋ ๊ฑฐ์์ต๋๋ค. ์ ๋ 1ํธ ์ธ ๋๋ ์ด๋ฐ ๋ถ์๊ธฐ๋ ์์ง์ญ์ด๋ผ๋ ๋ฐฐ์ฐ ์บ์คํ ์์ฒด์ ์ง์คํ๋๋ฐ, ํ์ฐจ๊ฐ ์์ด๋ฉด์ ์ธ๋ฌผ ๊ด๊ณ๊ฐ ๊ฝค ๋ณต์กํด์ง๋๋ผ๊ณ ์. ํนํ 8ํ ์ฆ์ ๋ฐ์ ์ด ๋์ค๋ฉด์ \"๊น๋ถ์ฅ ๋ฑ์ฅ์ธ๋ฌผ ๋ถ์\"์ ๊ฒ์ํ๋ ๋ถ๋ค์ด ํ ๋์๋ค๋ ๊ฒ ๊ด๋ จ ๊ธฐ...", + "articleType": "drama_review" + }, + { + "post_id": "2026-07-18_๊น๋ถ์ฅ๊ฒฐ๋ง์ดํ_fa2bcd53", + "keyword": "๊น๋ถ์ฅ ๊ฒฐ๋ง ์ดํ", + "title": "[3ํธ] ๊น๋ถ์ฅ ๊ฒฐ๋ง ์ดํ, ๋ณ์ ์ผ๋ก ์ ๋ฆฌํด๋ดค๋ค", + "status": "published", + "source": "auto", + "blogId": "blog1", + "blogName": "HOGU What?", + "blogUrl": "https://www.hoguwhat.com/2026/07/blog-post_828.html", + "errorMessage": null, + "createdAt": "2026-07-18T00:00:00", + "publishedAt": "2026-07-19T16:18:49.662454", + "lastAttemptAt": "2026-07-19T16:18:49.662454", + "attempts": 7, + "runNumber": 0, + "wordCount": 2660, + "faqCount": 4, + "category": "์ผ๋ฐ", + "labels": [ + "๋๋ผ๋ง๋ฆฌ๋ทฐ", + "๊น๋ถ์ฅ", + "๊น๋ถ์ฅ๊ฒฐ๋ง", + "์์ง์ญ", + "SBS๋๋ผ๋ง", + "๊ธํ ๋๋ผ๋ง", + "๊น๋ถ์ฅOST" + ], + "metaDescription": "SBS ๊ธํ ๋๋ผ๋ง ๊น๋ถ์ฅ ๊ฒฐ๋ง ์ดํ๊ณผ OST, ์ ์ฌ์ ์ถ์ฒ, ๋ณ์ ๊น์ง ์์ฒญ์ ๋ฐ์ ์๋ฃ๋ฅผ ๋ฐํ์ผ๋ก ์ ๋ฆฌํ์ต๋๋ค. ์คํฌ์ผ๋ฌ ์ฃผ์.", + "contentPreview": "3ํธ๊น์ง ์๋๋ฐ, ์์ง๋ '๊น๋ถ์ฅ ๊ฒฐ๋ง์ด ๋์ฒด ์ ๊ทธ๋ ๊ฒ ๋๋ ๊ฑฐ์ผ?' ํ๊ณ ๊ฒ์ํ์๋ ๋ถ๋ค ๋ง์ผ์์ฃ . ์ ๋ SBS ๊ธํ ๋๋ผ๋ง <๊น๋ถ์ฅ> ๋ฐฉ์ ๋ด๋ด ํ์ฐจ๋ณ ๋ฐ์์ ์กฐ์ฌํ๋ฉด์ ๋๋ ๊ฑด๋ฐ, ์ด ๋๋ผ๋ง๋ ํ๋ฐ๋ถ๋ก ๊ฐ์๋ก ์์ฒญ์๋ค ์ฌ์ด์์ ํด์์ด ๊ฐ๋ฆฌ๋ ์ง์ ์ด ๊ฝค ๋ง๋๋ผ๊ณ ์. 1ํธ์์ ์ฒซ์ธ์์, 2ํธ์์ ๋ฑ์ฅ์ธ๋ฌผ ๊ด๊ณ๋๋ฅผ ๋ค๋ค์ผ๋ ์ด๋ฒ 3ํธ์์๋ ๊ฒฐ๋ง ...", + "articleType": "drama_review" + }, + { + "post_id": "2026-07-18_์ผ์ฑ์ ์2026์ค์ ์ ๋ง์ฃผ๊ฐ_fa3932d0", + "keyword": "์ผ์ฑ์ ์ 2026 ์ค์ ์ ๋ง ์ฃผ๊ฐ", + "title": "์ผ์ฑ์ ์ 2026 ์ค์ ์ ๋ง๊ณผ ์ฃผ๊ฐ, ๊ณต์๋ก ์ง์ ํ์ธํ๊ธฐ", + "status": "published", + "source": "auto", + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "blogUrl": "https://hoguasset.blogspot.com/2026/07/2026_0978502205.html", + "errorMessage": null, + "createdAt": "2026-07-18T00:00:00", + "publishedAt": "2026-07-18T00:00:00", + "lastAttemptAt": "2026-07-18T00:00:00", + "attempts": 1, + "runNumber": 0, + "wordCount": 3169, + "faqCount": 4, + "category": "์ผ๋ฐ", + "labels": [ + "์ผ์ฑ์ ์์ฃผ๊ฐ์ ๋ง", + "์ผ์ฑ์ ์์ค์ ", + "๋ฐ๋์ฒดํฌ์", + "์ฝ์คํผ์ ๋ง", + "์ธ๊ตญ์ธ์๊ธ" + ], + "metaDescription": "์ผ์ฑ์ ์ 2026๋ 2๋ถ๊ธฐ ์ค์ ์ ๊ณต์ ์๋ฌธ์ผ๋ก ์ง์ ํ์ธํ์ต๋๋ค. ์์ ์ด์ต 89์กฐ4์ฒ์ต์๊ณผ ์ฑ๊ณผ๊ธ ์ถฉ๋น๊ธ 17์กฐ์, ์ธ๊ตญ์ธ ์๋งค๋ 15์กฐ5000์ต์๊น์ง ์ซ์๋ก ์ ๋ฆฌํ ๊ธฐ๋ก์ ๋๋ค.", + "contentPreview": "์ง๋์ฃผ ํฌํธ ๋ฉ์ธ์ '๋ฐ๋์ฒด ์ค์ ๋ถ์ง ์ฐ๋ ค' ๊ฐ์ ์ ๋ชฉ์ ๊ธฐ์ฌ๊ฐ ๋ด์ ๋ ์์งํ ๋จ๋ํ์ต๋๋ค. ํด์ง์ฐ๊ธ ๊ณ์ข์ ์ผ์ฑ์ ์ ๋น์ค์ด ๊ฝค ์๋ ์ง์ฅ์ธ์ด๋ผ๋ฉด ์ด๋ฐ ํค๋๋ผ์ธ ํ๋์ ๋ง์์ด ํ๋ค๋ฆฌ๋ ๊ฒ ๋น์ฐํฉ๋๋ค. ๊ทธ๋ฐ๋ฐ ์ ์ ๊ธฐ์ฌ ๋ณธ๋ฌธ์ ๋๊น์ง ์ฝ์ด๋ณด๋ ๋ถ์ง์ด ์๋๋ผ ์คํ๋ ค ์ญ๋ ์ต๋ ์ค์ ์๊ธฐ์์ต๋๋ค. ์ ๋ชฉ๊ณผ ๋ด์ฉ์ด ๋ฐ๋ก ๋ ธ๋ ๋๋์ ๋ฐ๊ณ ๋์, ๋ด์ค ์์ฝ๋ง ๋ฏฟ์ง...", + "articleType": "investment" + }, + { + "post_id": "2026-07-18_์ผ์ฑ์ ์๋ฐฐ๋น๊ธ์์ฌ์ฃผ์๊ฐ2026_8df8b45d", + "keyword": "์ผ์ฑ์ ์ ๋ฐฐ๋น๊ธ ์์ฌ์ฃผ ์๊ฐ 2026", + "title": "[2ํธ] ์ผ์ฑ์ ์ ๋ฐฐ๋น๊ธ ์์ฌ์ฃผ ์๊ฐ 2026 ์ด์ ๋ฆฌ", + "status": "published", + "source": "auto", + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "blogUrl": "https://hoguasset.blogspot.com/2026/07/2026_0778825510.html", + "errorMessage": null, + "createdAt": "2026-07-18T00:00:00", + "publishedAt": "2026-07-18T17:55:47.108552", + "lastAttemptAt": "2026-07-18T17:55:47.108552", + "attempts": 3, + "runNumber": 0, + "wordCount": 3161, + "faqCount": 3, + "category": "๊ธ์ต", + "labels": [ + "์ผ์ฑ์ ์-์ฃผ๊ฐ์ ๋ง", + "๊ธ์ต", + "๊ฒฝ์ ", + "์ฌํ ํฌ", + "์ ์ธ" + ], + "metaDescription": "์ผ์ฑ์ ์ 2026๋ ์์ฌ์ฃผ ์๊ฐ 16์กฐ์๊ณผ ์์ฌํ๊ธํ๋ฆ 50% ํน๋ณ๋ฐฐ๋น ์ ์ฑ ์ ๊ณต์ ๊ธฐ์ค์ผ๋ก ์ ๋ฆฌํ์ต๋๋ค. ํฌ์ ์กฐ์ธ์ด ์๋ ์ ๋ณด ์ ๋ฆฌ ๊ธ์ ๋๋ค.", + "contentPreview": "1ํธ์์ ์ผ์ฑ์ ์ ์ฃผ๊ฐ๊ฐ ์ ์ง์ฅ์ธ๋ค ์ฌ์ด์์๋ ํ์ ์ธ์ง ์ง์ด๋ดค๋๋ฐ, ๋๊ธ ์ค์ ์ด๋ฐ ๊ฒ ๋ง์์ต๋๋ค. \"๋ฐฐ๋น ์กฐ๊ธ ์ฃผ๋ ๊ฑฐ ์๋๋\", \"์์ฌ์ฃผ ์๊ฐ์ด ๋ฐฐ๋น์ด๋ ๋ญ๊ฐ ๋ค๋ฅด๋\" ๊ฐ์ ์ง๋ฌธ๋ค์ด์. ์ฌ์ค ์ด ๋ ๊ฐ๋ ์ ์์ด์ ์ดํดํ๋ ๊ฒฝ์ฐ๊ฐ ์ ๋ง ๋ง์ต๋๋ค. ๋ฐฐ๋น๊ธ์ ํ๊ธ์ ์ง์ ์ฃผ์ฃผ ํต์ฅ์ ๊ฝ์์ฃผ๋ ๋ฐฉ์์ด๊ณ , ์์ฌ์ฃผ ์๊ฐ์ ํ์ฌ๊ฐ ๊ฐ์ง ์๊ธฐ ์ฃผ์์ ์์ ์์ ๋ฒ๋ ค์...", + "articleType": "investment" + }, + { + "post_id": "2026-07-18_์ผ์ฑ์ ์์ค์ ๋ฐํ๊ณต์๋ถ์๋ฐฉ๋ฒ_40ee380f", + "keyword": "์ผ์ฑ์ ์ ์ค์ ๋ฐํ ๊ณต์ ๋ถ์ ๋ฐฉ๋ฒ", + "title": "์ผ์ฑ์ ์ ์ค์ ๊ณต์ ์ง์ ์ฝ๋ ๋ฒ๊ณผ ํจ์ ", + "status": "published", + "source": "auto", + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "blogUrl": "https://hoguasset.blogspot.com/2026/07/blog-post_19.html", + "errorMessage": null, + "createdAt": "2026-07-18T00:00:00", + "publishedAt": "2026-07-18T17:57:47.929328", + "lastAttemptAt": "2026-07-18T17:57:47.929328", + "attempts": 3, + "runNumber": 0, + "wordCount": 3286, + "faqCount": 3, + "category": "์ผ๋ฐ", + "labels": [ + "์ผ์ฑ์ ์-์ฃผ๊ฐ์ ๋ง", + "๊ธ์ต", + "๊ฒฝ์ ", + "์ ๋ถ์ง์", + "์ธ๊ธ", + "์ ์ธ", + "์ฌํ ํฌ" + ], + "metaDescription": "์ผ์ฑ์ ์ ์ค์ ๋ฐํ ๊ณต์๋ฅผ DART์ IR ์๋ฃ๋ก ์ง์ ์ฝ๋ ๋ฐฉ๋ฒ, ํํ ์ค์์ ์ฃผ์์ ์ ์กฐ์ฌํด ์ ๋ฆฌํ์ต๋๋ค. ํฌ์ ์กฐ์ธ์ด ์๋ ์ ๋ณด ์ ๋ฆฌ ๊ธ์ ๋๋ค.", + "contentPreview": "์ผ์ฑ์ ์ ์ค์ ๋ฐํ๋ง ๋์ค๋ฉด ํฌํธ ๋ด์ค ์ ๋ชฉ์ด ์๋ํด์ง๋๋ค. '์ด๋์ํ๋ผ์ด์ฆ'๋ผ๋ ์ ๋ชฉ๊ณผ '์ด๋์ผํฌ'๋ผ๋ ์ ๋ชฉ์ด ๊ฐ์ ๋ ๋์์ ๋จ๋ ๊ฒฝ์ฐ๋ ์๋๋ฐ, ์ด๊ฑธ ๋ณด๊ณ ํผ๋์ค๋ฌ์ํ๋ ๋ถ๋ค์ด ๋ง์ต๋๋ค. ์ฌ์ค ์ด๋ฐ ํ์์ ์ด์ํ ๊ฒ ์๋๋ผ ์ ์ด์ '๋ฌด์๊ณผ ๋น๊ตํ๋์ง'๊ฐ ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ ์๊ธฐ๋ ์์ฐ์ค๋ฌ์ด ๊ฒฐ๊ณผ์ ๋๋ค. ์๋ฆฌ์ฆ 1ํธ์์ ์ง์ฅ์ธ์ด ์ผ์ฑ์ ์ ์ฃผ๊ฐ๋ฅผ ์ ์ ๊ฒฝ ์ฐ๊ฒ ...", + "articleType": "investment" + }, + { + "post_id": "2026-07-17_ETF์ฒซํฌ์์ค์๋ด๊ณต๊ฐ_dce5f391", + "keyword": "ETF ์ฒซ ํฌ์ ์ค์๋ด ๊ณต๊ฐ", + "title": "ETF ์ฒซ ํฌ์, ๋ค๋ค ์ด ์ค์๋ถํฐ ํฉ๋๋ค โ 360์กฐ ์์ฅ์์ ์์ฃผ ๋์ค๋ ์ด๋ณด ์ค๋ฅ", + "status": "pending", + "source": "auto", + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "blogUrl": "", + "errorMessage": null, + "createdAt": "2026-07-17T23:18:13.927734", + "publishedAt": null, + "lastAttemptAt": "2026-07-17T23:18:13.927734", + "attempts": 1, + "runNumber": 194, + "wordCount": 3734, + "faqCount": 3, + "category": "์ผ๋ฐ", + "labels": [ + "ETFํฌ์", + "ETF์ฒซํฌ์", + "๋ ๋ฒ๋ฆฌ์งETF", + "์ธ๋ฒ์คETF", + "ETF์ค์๋ด", + "์ด๋ณดํฌ์์", + "๊ตญ๋ดETF์์ฅ" + ], + "metaDescription": "ETF ์ฒซ ํฌ์์๋ค์ด ์์ฃผ ๊ฒช๋ ์ค์ ํจํด์ ์กฐ์ฌํ์ต๋๋ค. ์ด๋ฆ๋ง ๋ณด๊ณ ๋งค์, ๋ ๋ฒ๋ฆฌ์ง ๊ตฌ์กฐ ์คํด, ๋จ๊ธฐ ์์ธ ๋ฐ์๊น์ง ์ค์ ์ฌ๋ก์ ๊ณต์ ์๋ฃ๋ก ์ ๋ฆฌํ์ต๋๋ค.", + "contentPreview": "ETF๋ '๊ทธ๋ฅ ์ง์ ๋ฐ๋ผ๊ฐ๋ ์์ ํ ์ํ'์ด๋ผ๋ ์คํด๊ฐ ๋ง์ต๋๋ค. ์ค์ ๋ก๋ ๊ทธ๋ ์ง ์์ต๋๋ค. ๊ตญ๋ด ETF ์์ฅ์ ๋ชฐ๋ฆฐ ๋์ด 360์กฐ ์ ๊ท๋ชจ์ ์ด๋ฅผ ์ ๋๋ก ์ปค์ก์ง๋ง, ์ํ ์ข ๋ฅ๊ฐ ์๋ ๋ค์ํด์ง๋ฉด์ ์ด๋ฆ๋ง ๋ณด๊ณ ๋ญ์ง ๋ชจ๋ฅธ ์ฑ ์ฌ๋ ์ฌ๋๋ ํจ๊ป ๋์์ต๋๋ค. '์ง์ ์ถ์ข = ๋ฌด์กฐ๊ฑด ์์ '์ด๋ผ๋ ๊ณต์์ ๋ ๋ฒ๋ฆฌ์งยท์ธ๋ฒ์ค ์ํ ์์์๋ ์์ ํ ๋ฌด๋์ง๋๋ค. ์ด ๊ธ์์...", + "articleType": "investment" + }, + { + "post_id": "2026-07-17_์ ์ฃผ๋์ฌํํ์ง์ธ์ฒ๋ผ์ฆ๊ธฐ๋๋ฐฉ๋ฒ์์งํ๊ธฐ_fbe09ebc", + "keyword": "์ ์ฃผ๋ ์ฌํ ํ์ง์ธ์ฒ๋ผ ์ฆ๊ธฐ๋ ๋ฐฉ๋ฒ ์์ง ํ๊ธฐ", + "title": "์ ์ฃผ๋ ์ฌํ ํ์ง์ธ์ฒ๋ผ ์ฆ๊ธฐ๋ ๋ฒ, 4๋ฐ5์ผ ์์ง ํ๊ธฐ", + "status": "skipped", + "source": "auto", + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "blogUrl": "", + "errorMessage": "์ค๋ณต ์ ๋ชฉ โ ์ฌ์๋ ๊ฑด๋๋", + "createdAt": "2026-07-17T23:08:52.808794", + "publishedAt": null, + "lastAttemptAt": "2026-07-18T17:53:59.885440", + "attempts": 3, + "runNumber": 194, + "wordCount": 4166, + "faqCount": 3, + "category": "์ผ๋ฐ", + "labels": [ + "์ ์ฃผ๋์ฌํ", + "์ ์ฃผ๋ํ์ง์ธ์ฝ์ค", + "์ ์ฃผ์ฌํํ", + "์ ์ฃผ๋ฒ์ค์ฌํ", + "์ ์ฃผ๋ง์ง" + ], + "metaDescription": "์ ์ฃผ๋๋ฅผ ๋ ํฐ์นด ์์ด ๋ฒ์ค์ ๋๋ณด๋ก 4๋ฐ5์ผ ๋์ ์ฌํํ๋ฉด์ ์ง์ ํ์ธํ ๋ก์ปฌ ๋ฒ์ค ๋ฐฐ์ฐจ, ์ค์ผ์ฅ ์ด์ฉ๋ฒ, ๋ก์ปฌ ๋ง์ง๊ณผ ์์ ์ ํ ๊ธฐ์ค, ๋น์๊ธฐ ์๊ฐ๋ ํ์ฉ ์ ๋ต๊น์ง ์ค์ ๊ฒฝํ๊ณผ ๊ณต์ ์๋ฃ๋ฅผ ๋ฐํ์ผ๋ก ์์งํ๊ฒ ์ ๋ฆฌํ์ต๋๋ค.", + "contentPreview": "์ต๊ทผ ์ ์ฃผ๋ ํญ๊ณต๊ถ ๊ฐ๊ฒฉ์ด ๋ค์ ์ค๋ฅด๋ด๋ฆฌ๊ธฐ๋ฅผ ๋ฐ๋ณตํ๋ค๋ ๋ด์ค๋ฅผ ์ ํ๊ณ , ๊ทธ๋ฆฌ๊ณ SNS์์ '์ ์ฃผ๋ ๋ก์ปฌ ์ฝ์ค', 'ํ์ง์ธ ๋ง์ง' ๊ฐ์ ํค์๋๊ฐ ์ฌํ ์ปค๋ฎค๋ํฐ๋ง๋ค ๋์๋ค๋๋ ๊ฑธ ๋ณด๋ฉด์ ๊ถ๊ธํด์ก์ต๋๋ค. ๊ด๊ด๊ฐ์ด ๋ชฐ๋ฆฌ๋ ์ฑ์ฐ์ผ์ถ๋ด์ด๋ ํ์ฌํด์์์ฅ ๊ฐ์ ์ ์ ์ฝ์ค ๋ง๊ณ , ์ค์ ๋ก ์ ์ฃผ์ ์ฌ๋ ์ฌ๋๋ค์ด๋ ์ค๋ ๋จธ๋ฌธ ์ฌํ์๋ค์ด ์ถ์ฒํ๋ ๋์ ์ ๋ญ๊ฐ ๋ค๋ฅผ๊น ํ๋ ์ ์ ๋๋ค...", + "articleType": "travel_guide" + }, + { + "post_id": "2026-07-17_์ ์ฃผํ๋ฌ์ด๊ธฐ์ค์ ์ํ๋น์์์๋น์ฉ๊ณต๊ฐ_65a0ef18", + "keyword": "์ ์ฃผ ํ ๋ฌ ์ด๊ธฐ ์ค์ ์ํ๋น์ ์์ ๋น์ฉ ๊ณต๊ฐ", + "title": "์ ์ฃผ ํ ๋ฌ ์ด๊ธฐ ์ํ๋น์ ์์ ๋น์ฉ ๊ณต๊ฐ", + "status": "skipped", + "source": "auto", + "blogId": "blog1", + "blogName": "HOGU What?", + "blogUrl": "", + "errorMessage": null, + "createdAt": "2026-07-17T22:59:39.490031", + "publishedAt": null, + "lastAttemptAt": "2026-07-17T22:59:39.490031", + "attempts": 1, + "runNumber": 194, + "wordCount": 3427, + "faqCount": 3, + "category": "์ผ๋ฐ", + "labels": [ + "์ ์ฃผํ๋ฌ์ด๊ธฐ", + "์ ์ฃผ์ฌํ", + "์ ์ฃผ์์", + "์ ์ฃผ์ํ๋น", + "๊ตญ๋ด์ฌํ", + "์ ์ฃผ๋์ฌํํ", + "์์ผ์ด์ " + ], + "metaDescription": "์ ์ฃผ ํ ๋ฌ ์ด๊ธฐ ์ค์ ์ํ๋น์ ์์ ๋น์ฉ์ ์ง์ญ๋ณ, ํญ๋ชฉ๋ณ๋ก ๋น๊ต ์ ๋ฆฌํ์ต๋๋ค. ์ฒดํฌ๋ฆฌ์คํธ์ ์ค์ ์ฌ๋ก, ์ํฉ๋ณ ์ถ์ฒ๊น์ง ํ์ธํด๋ณด์ธ์.", + "contentPreview": "์ ์ฃผ์์ ํ ๋ฌ์ ์ง๋ด๋ ค๋ฉด ๋๋์ฒด ์ผ๋ง๊ฐ ํ์ํ ๊น์. ๋ง์ ๊ฒ์์ ์์ํ๋ฉด ์ซ์๊ฐ ๋ค ์ ๊ฐ๊ฐ์ด๋ผ ์คํ๋ ค ํท๊ฐ๋ฆฌ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. ์ด๋ค ๊ธ์ 100๋ง์๋๋ผ๊ณ ํ๊ณ , ์ด๋ค ๊ธ์ 300๋ง์ ๋๊ฒ ๋ ๋ค๊ณ ํ๋ ๊ธฐ์ค์ ์ด๋์ ๋์ด์ผ ํ ์ง ๋ง๋งํด์ง๋๋ค. ์ด ๊ธ์์๋ ์ ์ฃผ ํ ๋ฌ ์ด๊ธฐ๋ฅผ ๊ณํํ๋ ๋ถ๋ค์ด ์ค์ ๋ก ์ฐธ๊ณ ํ ์ ์๋๋ก ์์ ํํ๋ณ ๋น์ฉ ๊ตฌ์กฐ์ ์ง์ญ๋ณ ํ๊ธฐ๋ฅผ ...", + "articleType": "travel_guide" + }, + { + "post_id": "2026-07-17_๋ ๋ฒ๋ฆฌ์งETFํฌ์๊ท์น๋ณ๊ฒฝ2026์ด์ ๋ฆฌ_1756bed0", + "keyword": "๋ ๋ฒ๋ฆฌ์ง ETF ํฌ์ ๊ท์น ๋ณ๊ฒฝ 2026 ์ด์ ๋ฆฌ", + "title": "๋ ๋ฒ๋ฆฌ์ง ETF ํฌ์ ๊ท์น ๋ณ๊ฒฝ 2026 ์ด์ ๋ฆฌ - ๋จ์ผ์ข ๋ชฉ ETF ํต์ฌ ์ ๋ฆฌ", + "status": "published", + "source": "auto", + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "blogUrl": "https://hoguasset.blogspot.com/2026/07/etf-2026-etf.html", + "errorMessage": null, + "createdAt": "2026-07-17T11:48:59.591970", + "publishedAt": "2026-07-17T11:49:00.592868", + "lastAttemptAt": "2026-07-17T11:49:00.592868", + "attempts": 2, + "runNumber": 193, + "wordCount": 4019, + "faqCount": 3, + "category": "์ผ๋ฐ", + "labels": [ + "๋ ๋ฒ๋ฆฌ์งETF", + "๋จ์ผ์ข ๋ชฉ๋ ๋ฒ๋ฆฌ์งETF", + "๊ธ์ต๊ฐ๋ ์", + "ETFํฌ์", + "2026๊ธ์ต์ ์ฑ " + ], + "metaDescription": "2026๋ 5์ 27์ผ ๋์ ๋ ๋จ์ผ์ข ๋ชฉ ๋ ๋ฒ๋ฆฌ์ง ETF, ๊ธฐ์กด ์ง์ํ ์ํ๊ณผ ์ด๋ป๊ฒ ๋ค๋ฅธ์ง, ๊ธ์ต๊ฐ๋ ์ ํฌ์์ ๋ณดํธ ๋์ฑ ๊ณผ ํฌ์์ ์ ํ๋ณ ์ฒดํฌํฌ์ธํธ๊น์ง ์ ๋ฆฌํ์ต๋๋ค.", + "contentPreview": "๋ ๋ฒ๋ฆฌ์ง ETF์ ํฌ์ํ๊ณ ๊ณ์ ๋ถ์ด๋ผ๋ฉด, ํน์ ๊ด์ฌ์ ์์ง๋ง ์์ง ์๋์ง ์์ผ์ ๋ถ์ด๋ผ๋ฉด ์ด๋ฐ ๊ถ๊ธ์ฆ ํ ๋ฒ์ฏค ์์ผ์ จ์ ๊ฒ๋๋ค. \"์ฌํด๋ถํฐ ๋ ๋ฒ๋ฆฌ์ง ETF ๊ด๋ จํด์ ๋ญ๊ฐ ๋ฐ๋๋ค๋๋ฐ, ๋ํํ ๋ฌด์จ ์ํฅ์ด ์๋ ๊ฑฐ์ง?\" ํนํ ๋จ์ผ์ข ๋ชฉ ๋ ๋ฒ๋ฆฌ์ง ETF๋ผ๋ ์๋ก์ด ์ํ์ด ์์ฅ์ ๋์จ๋ค๋ ์์์ด ๋ค๋ฆฌ๋ฉด์, ๊ธฐ์กด ๋ ๋ฒ๋ฆฌ์ง ETF ํฌ์์๋ค ์ฌ์ด์์๋ ํผ๋์ค๋ฝ๋ค๋ ์ด์ผ...", + "articleType": "investment" + }, + { + "post_id": "2026-07-17_์ฌ๋ฆํด๊ฐ์ฒ ์ธ๊ธฐ์ฌํ์ง์ถ์ฒ2026๊ณตํญํด๋ณ_6aa4a904", + "keyword": "์ฌ๋ฆ ํด๊ฐ์ฒ ์ธ๊ธฐ ์ฌํ์ง ์ถ์ฒ 2026 (๊ณตํญยทํด๋ณยท๋นต์ง ํธ๋ ๋)", + "title": "2026๋ ์ฌ๋ฆ ํด๊ฐ์ฒ ์ธ๊ธฐ ์ฌํ์ง ์ถ์ฒ, ์์ธยท๋ถ์ฐ ํธ๋ ๋", + "status": "published", + "source": "auto", + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "blogUrl": "https://hogugolfntraval.blogspot.com/2026/07/2026_01597747432.html", + "errorMessage": null, + "createdAt": "2026-07-17T11:37:19.398945", + "publishedAt": "2026-07-17T11:37:20.429572", + "lastAttemptAt": "2026-07-17T11:37:20.429572", + "attempts": 2, + "runNumber": 193, + "wordCount": 3255, + "faqCount": 3, + "category": "์ผ๋ฐ", + "labels": [ + "์ฌ๋ฆํด๊ฐ", + "2026์ฌํ", + "์์ธ์ฌํ", + "๋ถ์ฐ์ฌํ", + "์ธ์ฒ๊ณตํญ" + ], + "metaDescription": "2026๋ ์ฌ๋ฆ ํด๊ฐ์ฒ ์ธ๊ธฐ ์ฌํ์ง๋ฅผ ๊ณตํญ ์์ฝ ๋ฐ์ดํฐ, ํด๋ณ ํผ์ก๋, ๋นต์ง ์จ์ดํ ํธ๋ ๋๋ก ์ ๋ฆฌํ์ต๋๋ค. ์์ธยท๋ถ์ฐ ํญ๊ณต๊ถ ์ฆ๊ฐ์จ๊ณผ ์ฑ์๊ธฐ ๋๋น ํ๊น์ง ํ์ธํด๋ณด์ธ์.", + "contentPreview": "์ฌ์ฌ๋ฆ ํด๊ฐ ๊ณํ ์ธ์ฐ์๋ฉด์ '๊ณตํญ์ด ์์ ๋ณด๋ค ๋ ๋ถ๋น๋ ๊ฒ ๊ฐ์๋ฐ ๊ธฐ๋ถ ํ์ธ๊ฐ' ์ถ์ผ์ ๋ถ๋ค ๋ง์ผ์ค ๊ฒ๋๋ค. ์ค์ ๋ก ์ต๊ทผ ๋ฐํ๋ ์๋ฃ๋ฅผ ๋ณด๋ฉด ๊ธฐ๋ถ ํ์ด ์๋์์ต๋๋ค. ๊ตญ๋ด ์ฌํ๊ฐ๋ฟ ์๋๋ผ ํด์ธ์์ ํ๊ตญ์ผ๋ก ๋ค์ด์ค๋ ์ฌํ๊ฐ๊น์ง ๊ฒน์น๋ฉด์ 2026๋ ์ฌ๋ฆ ์ฑ์๊ธฐ ํ๊ฒฝ์ด ํ์คํ ๋ฌ๋ผ์ง๊ณ ์๋ค๋ ์ ํธ๊ฐ ์ฌ๋ฌ ๋ฐ์ดํฐ์์ ๋์ค๊ณ ์์ต๋๋ค. ์ด๋ฒ ๊ธ์์๋ ํธ๋ฆฝ๋ท์ปด ๊ทธ๋ฃน...", + "articleType": "travel_guide" + }, + { + "post_id": "2026-07-17_๋๋ผ๋งOST์ ์๊ถ์ ํ๋ธ์ฌ์ฉ๊ฐ๋ฅ์ฌ๋ถ์ง์ _b274974c", + "keyword": "๋๋ผ๋ง OST ์ ์๊ถ ์ ํ๋ธ ์ฌ์ฉ ๊ฐ๋ฅ ์ฌ๋ถ ์ง์ ํ์ธ", + "title": "๋๋ผ๋ง OST ์ ์๊ถ ์ ํ๋ธ ์ฌ์ฉ ๊ฐ๋ฅ ์ฌ๋ถ ์ง์ ํ์ธ๋ฒ", + "status": "published", + "source": "auto", + "blogId": "blog1", + "blogName": "HOGU What?", + "blogUrl": "https://www.hoguwhat.com/2026/07/ost.html", + "errorMessage": null, + "createdAt": "2026-07-17T11:26:04.405210", + "publishedAt": "2026-07-17T11:26:05.085717", + "lastAttemptAt": "2026-07-17T11:26:05.085717", + "attempts": 2, + "runNumber": 193, + "wordCount": 4106, + "faqCount": 4, + "category": "์ผ๋ฐ", + "labels": [ + "๋๋ผ๋งOST", + "์ ํ๋ธ์ ์๊ถ", + "์ฝํ ์ธ ID", + "์ ์๊ถํ์ธ", + "๋๋ผ๋ง๋ฆฌ๋ทฐ" + ], + "metaDescription": "๋๋ผ๋ง OST๋ฅผ ์ ํ๋ธ์ ์ฌ๋ฆฌ๊ธฐ ์ ์ ์๊ถ ๋ฌธ์ ๊ฐ ๊ฑฑ์ ๋๋ค๋ฉด ์ด ๊ธ์ด ๋์์ด ๋ฉ๋๋ค. OST ์ ์๊ถ ๊ตฌ์กฐ, ์ฝํ ์ธ ID ์๋ฆผ ์ค์ ์ฌ๋ก, ์ ๋ก๋ ์ ์ฒดํฌ๋ฆฌ์คํธ, ์๋ฆผ์ ๋ฐ์์ ๋ ๋์ฒ๋ฒ๊น์ง ์ ๋ฆฌํ์ต๋๋ค.", + "contentPreview": "์ ํ๋ธ์ ์ข์ํ๋ ๋๋ผ๋ง ๋ช ์ฅ๋ฉด์ ํธ์งํด์ ์ฌ๋ฆฌ๋ ค๋ค๊ฐ, OST๋ฅผ ๊ทธ๋๋ก ๋ฃ์ด๋ ๋๋์ง ํท๊ฐ๋ ค๋ณธ ์ ์์ผ์ ๊ฐ์. ํํ '๋๋ผ๋ง์์ ๋์จ ๋ ธ๋๋๊น ๋ฐฉ์ก์ ๋์จ ๊ฒ์ฒ๋ผ ์จ๋ ๋๊ฒ ์ง'๋ผ๊ณ ์๊ฐํ๊ธฐ ์ฝ์ง๋ง, ์ด ํ๋จ์ ์ ๋ฐ์ ๋ง๊ณ ์ ๋ฐ์ ํ๋ฆฝ๋๋ค. ๋ฐฉ์ก์ฌ์ ์ ์์ฌ๊ฐ ์ ์๊ถ๋ฃ๋ฅผ ์ง๋ถํ๊ณ ์ฌ์ฉํ ๊ณก์ด๋ผ๋, ๊ทธ ๊ถ๋ฆฌ๊ฐ ์ ํ๋ธ ๊ฐ์ธ ์ฑ๋๊น์ง ์๋์ผ๋ก ๋์ด์ค๋ ๊ฑด ์๋๊ธฐ ๋...", + "articleType": "drama_review" + }, + { + "post_id": "2026-07-17_์ตํ์SKํ์ด๋์ค๊ฐ๋งํ๊ฐ๊ณ ์์ผ๋ฉด_e6df1b4a", + "keyword": "์ตํ์ SK ํ์ด๋์ค ๊ฐ๋งํ ๊ฐ๊ณ ์์ผ๋ฉด", + "title": "์ตํ์ \"SKํ์ด๋์ค ๊ฐ๋งํ ๊ฐ๊ณ ์์ผ๋ฉด ๋๋ค\" ๋ฐ์ธ ์๋ฏธ", + "status": "published", + "source": "auto", + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "blogUrl": "https://hoguasset.blogspot.com/2026/07/sk_01429231754.html", + "errorMessage": null, + "createdAt": "2026-07-17T10:32:32.275644", + "publishedAt": "2026-07-17T10:32:33.495121", + "lastAttemptAt": "2026-07-17T10:32:33.495121", + "attempts": 2, + "runNumber": 192, + "wordCount": 2864, + "faqCount": 3, + "category": "์ผ๋ฐ", + "labels": [ + "SKํ์ด๋์ค", + "์ตํ์", + "๋ฐ๋์ฒด์ฃผ์", + "AI๋ฐ๋์ฒด", + "๋ฉ๋ชจ๋ฆฌ๋ฐ๋์ฒด" + ], + "metaDescription": "์ตํ์ SK๊ทธ๋ฃน ํ์ฅ์ด \"SKํ์ด๋์ค ์ฃผ์ ๊ฐ๋งํ ๊ฐ๊ณ ์์ผ๋ฉด ๋๋ค\"๊ณ ๋งํ ๋ฐฐ๊ฒฝ๊ณผ ์ง์ง ์๋ฏธ๋ฅผ ์ ๋ฆฌํ์ต๋๋ค. ์ฃผ๊ฐ 38% ํ๋ฝ์ด๋ผ๋ ์ํฉ๊ณผ ๋ฐ์ธ์ ๋งฅ๋ฝ, ๊ฐ์ธ ํฌ์์๊ฐ ์ด ๋ง์ ์ด๋ป๊ฒ ๋ฐ์๋ค์ฌ์ผ ํ ์ง ํจ๊ป ์ดํด๋ด ๋๋ค.", + "contentPreview": "SKํ์ด๋์ค ์ฃผ์์ ๊ฐ๊ณ ๊ณ์ ๋ถ์ด๋ผ๋ฉด, ํน์ ์ต๊ทผ ๋ฐ๋์ฒด ๊ด๋ จ ๋ด์ค๋ฅผ ์ฑ๊ฒจ๋ณด์ ๋ถ์ด๋ผ๋ฉด ์ด๋ฐ ์ง๋ฌธ ํ๋ฒ์ฏค ํด๋ณด์ จ์ ๊ฒ๋๋ค. \"์ฃผ๊ฐ๊ฐ ์ด๋ ๊ฒ ํ๋ค๋ฆฌ๋๋ฐ, ๊ทธ๋ฅ ๊ณ์ ๊ฐ๊ณ ์์ด๋ ๋๋ ๊ฑธ๊น?\" 2026๋ 7์ 17์ผ, ์ตํ์ ๋ํ์๊ณตํ์์ ํ์ฅ ๊ฒธ SK๊ทธ๋ฃน ํ์ฅ์ด ์ ์ฃผ์์ ์ด๋ฆฐ ๋ํ์์ ํ๊ณํฌ๋ผ ๋๋ด์์ ๋ฐ๋ก ์ด ์ง๋ฌธ์ ์ ๋ฉด์ผ๋ก ๋ตํ๋ ๋ฏํ ๋ฐ์ธ์ ๋ด๋จ์ต๋๋ค...", + "articleType": "analysis" + }, + { + "post_id": "2026-07-16_7์๊ตญ๋ด์ฌํ์ง์ถ์ฒ๋ฒ ์คํธ6๊ณณ_96eb8549", + "keyword": "7์ ๊ตญ๋ด ์ฌํ์ง ์ถ์ฒ ๋ฒ ์คํธ 6๊ณณ", + "title": "7์ ๊ตญ๋ด ์ฌํ์ง ์ถ์ฒ ๋ฒ ์คํธ 6๊ณณ, ์ฌ๋ฆํด๊ฐ ๊ณํ ์ ์ ์ฒดํฌํ ๊ฒ๋ค", + "status": "pending", + "source": "auto", + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "blogUrl": "", + "errorMessage": null, + "createdAt": "2026-07-16T05:57:14.873216", + "publishedAt": null, + "lastAttemptAt": "2026-07-16T05:57:14.873216", + "attempts": 1, + "runNumber": 188, + "wordCount": 3177, + "faqCount": 3, + "category": "์ผ๋ฐ", + "labels": [ + "๊ตญ๋ด์ฌํ", + "7์์ฌํ์ง", + "์ฌ๋ฆํด๊ฐ", + "๋ํด์์ฌํ", + "์ ์ฃผ๋์ฌํ", + "๋ถ์ฐ์ฌํ", + "๊ฑฐ์ ํต์" + ], + "metaDescription": "7์ ๊ตญ๋ด ์ฌํ์ง ์ถ์ฒ ๋ฒ ์คํธ 6๊ณณ์ ๊ฐ๋ฆยท์์ด, ์ ์ฃผ๋, ๊ฑฐ์ ยทํต์, ๋ถ์ฐ, ์ ์ ยทํ์ฐฝ ๊ณ๊ณก, ํ์ยท๋ณด๋ น ๊ธฐ์ค์ผ๋ก ์ ๋ฆฌํ์ต๋๋ค. ์ฑ์๊ธฐ ํ๋ ํจ๊ป ํ์ธํ์ธ์.", + "contentPreview": "7์ ์ค์์ด ๋๋ ์ฃผ๋ณ์์ ์ฌ๋ฆํด๊ฐ ์๊ธฐ๊ฐ ๋ถ์ฉ ๋์์ต๋๋ค. ํ์ฌ ์ฐ์ฐจ ์ฐ๋ ์๊ธฐ๊ฐ ๊ฒน์น๋ค ๋ณด๋ ์ฑ์๊ธฐ ์์๋ ๋ฒ์จ ๋งค์ง๋ ๊ณณ๋ ๋ง๊ณ , ์ด๋๋ก ๊ฐ์ผ ์ฌ๋ ๋ ๋ถ๋น๋ฉด์๋ ์ ๋๋ก ์ด ์ ์์์ง ๊ณ ๋ฏผํ๋ ๋ถ๋ค์ด ๋ง์ ์๊ธฐ์ ๋๋ค. ๋ง๋ฆฐํํ๋ ๋งค๋ ์ด๋ง๋๊ฐ ๋๋ฉด ํฌํธ ์ง์ญ ๊ฒ์๋์ด๋ ๊ด๊ด๊ณต์ฌ ํต๊ณ, ๊ทธ๋ฆฌ๊ณ ๊ฐ ์ง์์ฒด ๊ด๊ด ์ฌ์ดํธ ๊ณต์ง์ฌํญ์ ํ์ด๋ณด๋ฉด์ ์ฌํด๋ ์ด๋๊ฐ ...", + "articleType": "travel_guide" + }, + { + "post_id": "2026-07-16_๋ทํ๋ฆญ์คvsํฐ๋นvs์จ์ด๋ธ๊ตฌ๋ ๋ฃ๋๋น์ฝํ _d420d0b7", + "keyword": "๋ทํ๋ฆญ์ค vs ํฐ๋น vs ์จ์ด๋ธ ๊ตฌ๋ ๋ฃ ๋๋น ์ฝํ ์ธ ์ง์ ๋น๊ต", + "title": "๋ทํ๋ฆญ์ค vs ํฐ๋น vs ์จ์ด๋ธ ๊ตฌ๋ ๋ฃ ๋๋น ์ฝํ ์ธ ์ง์ ๋น๊ต", + "status": "published", + "source": "auto", + "blogId": "blog1", + "blogName": "HOGU What?", + "blogUrl": "https://www.hoguwhat.com/2026/07/vs-vs.html", + "errorMessage": null, + "createdAt": "2026-07-16T05:48:48.390745", + "publishedAt": "2026-07-16T05:48:49.699314", + "lastAttemptAt": "2026-07-16T05:48:49.699314", + "attempts": 2, + "runNumber": 188, + "wordCount": 3937, + "faqCount": 3, + "category": "์ผ๋ฐ", + "labels": [ + "๋ทํ๋ฆญ์ค", + "ํฐ๋น", + "์จ์ด๋ธ", + "OTT๋น๊ต", + "๊ตฌ๋ ๋ฃ๋น๊ต" + ], + "metaDescription": "๋ทํ๋ฆญ์ค, ํฐ๋น, ์จ์ด๋ธ์ 2026๋ ์๊ธ์ ์ ์ฝํ ์ธ ๊ฐ์ ์ ์ค์ ์ด์ฉ ๊ฒฝํ๊ณผ ๊ณต์ ์๋ฃ๋ฅผ ๋ฐํ์ผ๋ก ๋น๊ตํ์ต๋๋ค. ๊ตฌ๋ ๋ฃ ๋๋น ๋ง์กฑ๋๋ฅผ ๋์ด๋ ์ฒดํฌ๋ฆฌ์คํธ, ์ฝํ ์ธ ๋ผ์ธ์ ๋น๊ต, ์์ฒญ ํจํด๋ณ ์ถ์ฒ ์กฐํฉ๊น์ง ํ ๋ฒ์ ์ ๋ฆฌํ์ต๋๋ค.", + "contentPreview": "๋งค๋ฌ ํต์ฅ์์ OTT ๊ตฌ๋ ๋ฃ๊ฐ ์๋ ๊ฐ์ฉ ๋น ์ ธ๋๊ฐ๋ ๊ฑธ ๋ณด๊ณ ํ ์นซํ ์ ์์ผ์ ๊ฐ์. ์ ๋ ์ผ๋ง ์ ์นด๋ ๋ช ์ธ์๋ฅผ ํ์ธํ๋ค๊ฐ ๋ทํ๋ฆญ์ค, ํฐ๋น, ์จ์ด๋ธ๊ฐ ๋์์ ๊ฒฐ์ ๋ ๊ฑธ ๋ณด๊ณ ์ด๊ฑธ ์ ๋ง ๋ค ํ์๋ก ํ๋์ง ๋ค์ ๋ฐ์ ธ๋ณด๊ฒ ๋์ต๋๋ค. ๋๋ผ๋ง ํ๋ ๋ณด๋ ค๊ณ ๊ฐ์ ํ๋ค๊ฐ ๋ช ๋ฌ์งธ ์์ด๋ฒ๋ฆฌ๊ณ ์๋๊ฒฐ์ ๋ง ๋๋ ๊ฒฝ์ฐ๋ ํํฉ๋๋ค. ์ด๋ฒ ๊ธ์์๋ ๋ทํ๋ฆญ์ค vs ํฐ๋น vs ์จ์ด๋ธ ...", + "articleType": "drama_review" + }, + { + "post_id": "2026-07-15_์ฝ์คํผ์ฝ์ค๋ฅ2026ํ๋ฐ๊ธฐ์ ๋งํต์ฌ์ ๋ฆฌ_b5a1dcff", + "keyword": "์ฝ์คํผ ์ฝ์ค๋ฅ 2026 ํ๋ฐ๊ธฐ ์ ๋ง ํต์ฌ ์ ๋ฆฌ", + "title": "์ฝ์คํผ ์ฝ์ค๋ฅ 2026 ํ๋ฐ๊ธฐ ์ ๋ง, ๋ฐ๋์ฒด ์ ๋ฆผ ํต์ฌ ์ ๋ฆฌ", + "status": "published", + "source": "auto", + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "blogUrl": "https://hoguasset.blogspot.com/2026/07/2026_0555618339.html", + "errorMessage": null, + "createdAt": "2026-07-15T23:31:43.516138", + "publishedAt": "2026-07-15T23:31:44.443423", + "lastAttemptAt": "2026-07-15T23:31:44.443423", + "attempts": 2, + "runNumber": 187, + "wordCount": 4515, + "faqCount": 4, + "category": "์ผ๋ฐ", + "labels": [ + "์ฝ์คํผ์ ๋ง", + "์ฝ์ค๋ฅ์ ๋ง", + "2026์ฆ์์ ๋ง", + "๋ฐ๋์ฒด๋ ๋ฆฌ", + "์ผ์ฑ์ ์SKํ์ด๋์ค" + ], + "metaDescription": "2026๋ ํ๋ฐ๊ธฐ ์ฝ์คํผ ์ฝ์ค๋ฅ ์ ๋ง์ ์ผ์ฑ์ ์ยทSKํ์ด๋์ค ๋ฐ๋์ฒด ์ ๋ฆผ, ์ฆ๊ถ์ฌ๋ณ ์ฝ์คํผ ๋ฐด๋, ์ฝ์ค๋ฅ ์ ์ฑ ๋ชจ๋ฉํ ๊ณผ 2์ฐจ์ ์ง ๋ฐ๋ฑ ๊ธฐ๋, ๊ฐ์ธ ํฌ์์ ์ฒดํฌํฌ์ธํธ๊น์ง ํต์ฌ๋ง ์ ๋ฆฌํ์ต๋๋ค. ์ค์ ํฌํธํด๋ฆฌ์ค ์กฐ์ ๊ฒฝํ๋ ํจ๊ป ๋ด์์ต๋๋ค.", + "contentPreview": "์ฝ์คํผ๊ฐ ์ฐ์ผ ์ ๊ณ ๊ฐ๋ฅผ ๊ฐ์์น์ฐ๋ ๋ด์ค๋ฅผ ๋ณด๋ฉด์ '๋๋ ์ง๊ธ ๋ค์ด๊ฐ์ผ ํ๋' ๊ณ ๋ฏผํด๋ณด์ ์ ์์ผ์ ๊ฐ์? ์๋๋ฉด ๋ฐ๋๋ก '์ด๋ฏธ ๋๋ฌด ์ค๋ฅธ ๊ฑฐ ์๋๊ฐ' ํ๋ ๋ถ์๊ฐ์ด ๋ ํฌ์ ๊ฐ์? 2026๋ ์๋ฐ๊ธฐ ์ฝ์คํผ๋ ๋ฐ๋์ฒด ๋ ๋ฆฌ์ ํ์ ์ด ๋์ ๋๋ ์์น์ธ๋ฅผ ๋ณด์์ง๋ง, ๊ทธ ์์น์ ์ ๋ฐ ์ด์์ด ๋จ ๋ ์ข ๋ชฉ์์ ๋์๋ค๋ ์ฌ์ค์ ์์ธ๋ก ์ ์๋ ค์ ธ ์์ง ์์ต๋๋ค. ํ๋ฐ๊ธฐ๋ฅผ ์๋...", + "articleType": "travel_guide" + }, + { + "post_id": "2026-07-15_์ฌ๋ฆํด๊ฐ์ฒ ํด์ธ์ฌํ์์ค๋ ์๋ฐฉ์ฒดํฌ๋ฆฌ์คํธ_33c5eec0", + "keyword": "์ฌ๋ฆ ํด๊ฐ์ฒ ํด์ธ์ฌํ ์์ค๋ ์๋ฐฉ ์ฒดํฌ๋ฆฌ์คํธ", + "title": "์ฌ๋ฆ ํด๊ฐ์ฒ ํด์ธ์ฌํ ์์ค๋ ์๋ฐฉ ์ฒดํฌ๋ฆฌ์คํธ, ์ถ๊ตญ ์ ์ด๊ฒ๋ง์ ํ์ธํ์ธ์", + "status": "pending", + "source": "auto", + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "blogUrl": "", + "errorMessage": null, + "createdAt": "2026-07-15T23:24:08.179793", + "publishedAt": null, + "lastAttemptAt": "2026-07-15T23:24:08.179793", + "attempts": 1, + "runNumber": 187, + "wordCount": 3325, + "faqCount": 3, + "category": "์ผ๋ฐ", + "labels": [ + "ํด์ธ์ฌํ์์ค๋ ", + "์ฌ๋ฆํด๊ฐ์ฒดํฌ๋ฆฌ์คํธ", + "์ฌํ์๋ณดํ", + "ํด์ธ์์ ์ฌํ", + "์์ค๋ ์๋ฐฉ", + "์ฌํ์์ค์ฌ", + "๋๋จ์์ฌํ์ฃผ์์ฌํญ" + ], + "metaDescription": "์ฌ๋ฆ ํด๊ฐ์ฒ ํด์ธ์ฌํ ์์ค๋ ์๋ฐฉ์ ์ํ ์ฒดํฌ๋ฆฌ์คํธ๋ฅผ ์ถ๊ตญ ์ ์ค๋น๋ฌผ, ๋ฌผ๊ณผ ์์ ๊ด๋ฆฌ, ์ฆ์๋ณ ๋์ฒ, ์ง์ญ๋ณ ์ฃผ์์ฌํญ์ผ๋ก ๋๋ ์กฐ์ฌยท์ ๋ฆฌํ์ต๋๋ค.", + "contentPreview": "7์ ์ค์์ผ๋ก ์ ์ด๋ค๋ฉด์ ๊ณตํญ ์ถ๊ตญ์ฅ ํผ์ก๋๊ฐ ๋ค์ ์ฌ์์น ์๋ค๋ ๋ด์ค๋ฅผ ์์ฃผ ์ ํ๊ฒ ๋ฉ๋๋ค. ์ฌ๋ฆ ํด๊ฐ์ฒ ํด์ธ์ฌํ ์์๊ฐ ์ฝ๋ก๋ ์ด์ ์์ค์ ํ๋ณตํ๋ค๋ ๋ณด๋๊ฐ ์ด์ด์ง๊ณ ์๊ณ , ๋๋จ์ยท์ ๋ฝ ๋ ธ์ ์ ์ค์ฌ์ผ๋ก ์์ฝ์ด ๋ชฐ๋ฆฌ๊ณ ์๋ค๊ณ ํฉ๋๋ค. ๊ทธ๋ฐ๋ฐ ์ด ์๊ธฐ์ ๋ ๊ฐ์ด ๋ฐ๋ผ์ค๋ ์ด์๊ฐ ์์ต๋๋ค. ๋ฐ๋ก ํด์ธ์ฌํ ์์ค๋ ์ ๋๋ค. ์ฌ๋ฆ์ฒ ์ ๊ธฐ์จ๊ณผ ์ต๋๊ฐ ๋์ ์ธ๊ท ๋ฒ์ ...", + "articleType": "travel_guide" + }, + { + "post_id": "2026-07-15_์ฌํ์ค๋ฌผ๊ฑด๋๋๊ฒฝ์ฐฐ์์ ๊ณ ํ๋ณดํ์ฒญ๊ตฌ๋ฐฉ๋ฒ_cba5851b", + "keyword": "์ฌํ ์ค ๋ฌผ๊ฑด ๋๋ ๊ฒฝ์ฐฐ์ ์ ๊ณ ํ ๋ณดํ ์ฒญ๊ตฌ ๋ฐฉ๋ฒ", + "title": "์ฌํ ์ค ๋ฌผ๊ฑด ๋๋, ๊ฒฝ์ฐฐ์ ์ ๊ณ ๋ถํฐ ๋ณดํ ์ฒญ๊ตฌ๊น์ง ์ด์ ๋ฆฌ", + "status": "published", + "source": "auto", + "blogId": "blog1", + "blogName": "HOGU What?", + "blogUrl": "https://www.hoguwhat.com/2026/07/blog-post_16.html", + "errorMessage": null, + "createdAt": "2026-07-15T23:11:31.292982", + "publishedAt": "2026-07-15T23:11:32.571085", + "lastAttemptAt": "2026-07-15T23:11:32.571085", + "attempts": 2, + "runNumber": 187, + "wordCount": 3748, + "faqCount": 3, + "category": "์ผ๋ฐ", + "labels": [ + "์ฌํ์๋ณดํ", + "ํด์ธ์ฌํ ๋๋", + "๊ฒฝ์ฐฐ์ ์ ๊ณ ", + "๋ณดํ ์ฒญ๊ตฌ ๋ฐฉ๋ฒ", + "์ฌํ ์ค ๋๋" + ], + "metaDescription": "ํด์ธ์ฌํ ์ค ๋๋๋นํ๋ค๋ฉด ๊ฐ์ฅ ๋จผ์ ํด์ผ ํ ์ผ์ ๊ฒฝ์ฐฐ์ ์ ๊ณ ์ ๋๋ค. ์ ๊ณ ์ ์ค๋น๋ฌผ, ๋ณดํ ์ฒญ๊ตฌ ์๋ฅ, ์ค์ ์ฌ๋ก์ ์์ฃผ ํ๋ ์ค์๊น์ง ํ ๋ฒ์ ์ ๋ฆฌํ์ต๋๋ค.", + "contentPreview": "์ง๋์ฃผ ํ ์ฌํ ์ปค๋ฎค๋ํฐ ๊ฒ์๊ธ์ด ๋์ ๋์์ต๋๋ค. ์ ๋ฝ ์ฌํ ์ค ๊ฐ๋ฐฉ์ ํต์งธ๋ก ๋๋๋นํ๋๋ฐ, ์ฌํ์๋ณดํ์ด ์์ผ๋ ์์ฌํ๊ณ ์์๋ค๋ ๋ด์ฉ์ด์์ต๋๋ค. ๊ทธ๋ฐ๋ฐ ์ค์ ๋ก ๋ณดํ์ฌ์ ์ฒญ๊ตฌํ๋๋ ํ๊ธ๊ณผ ๋จ์ ๋ถ์ค ํญ๋ชฉ์ ์์ ๋ณด์ ๋์์ด ์๋๋ผ๋ ๋ต๋ณ์ ๋ฐ์๋ค๊ณ ํฉ๋๋ค. 2026๋ 7์ 13์ผ ๋ณด๋๋ ๊ด๋ จ ๊ธฐ์ฌ์์๋ ์ฌํ์๋ณดํ์ ๋ฏฟ์๋ค๊ฐ ๋ญํจ๋ฅผ ๋ณด๋ ์ฌ๋ก๊ฐ ๋ฐ๋ณต๋๊ณ ์...", + "articleType": "travel_guide" + }, + { + "post_id": "2026-07-15_๋ ๋ฒ๋ฆฌ์งETFํฌ์์ํ์ฑ๊ณผ๋์์ ๋ต202_5b501a6d", + "keyword": "๋ ๋ฒ๋ฆฌ์ง ETF ํฌ์ ์ํ์ฑ๊ณผ ๋์ ์ ๋ต 2026", + "title": "๋จ์ผ์ข ๋ชฉ ๋ ๋ฒ๋ฆฌ์ง ETF ํฌ์ ์ํ์ฑ๊ณผ ๋์ ์ ๋ต (2026๋ )", + "status": "published", + "source": "auto", + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "blogUrl": "https://hoguasset.blogspot.com/2026/07/etf-2026_01246396645.html", + "errorMessage": null, + "createdAt": "2026-07-15T11:53:34.740485", + "publishedAt": "2026-07-15T11:53:35.790833", + "lastAttemptAt": "2026-07-15T11:53:35.790833", + "attempts": 2, + "runNumber": 186, + "wordCount": 4179, + "faqCount": 3, + "category": "์ผ๋ฐ", + "labels": [ + "๋ ๋ฒ๋ฆฌ์งETF", + "๋จ์ผ์ข ๋ชฉETF", + "ETFํฌ์์ ๋ต", + "๊ธ์ต์์ํ", + "SKํ์ด๋์คETF" + ], + "metaDescription": "2026๋ 5์ ๊ตญ๋ด ์ต์ด๋ก ๋จ์ผ์ข ๋ชฉ ๋ ๋ฒ๋ฆฌ์ง ETF๊ฐ ์ถ์๋๋ฉด์ ๊ธ์ต๋น๊ตญ์ด ๊ฐ๋ณํ ์ฃผ์๋ฅผ ๋น๋ถํ์ต๋๋ค. ๋ฑ์ฅ ๋ฐฐ๊ฒฝ๊ณผ ์ ๋ ๋ณํ ํ์๋ผ์ธ, ๊ตฌ์กฐ์ ์ํ, ํด์ธ ์ฌ๋ก, ํฌ์์๊ฐ ์ค์ ๋ก ์ฑ๊ฒจ์ผ ํ ๋์ ์ ๋ต๊น์ง ํ ๋ฒ์ ์ ๋ฆฌํ์ต๋๋ค.", + "contentPreview": "๋ ๋ฒ๋ฆฌ์ง ETF๋ผ๊ณ ํ๋ฉด ํํ \"๊ทธ๋ฅ ๋ณ๋์ฑ์ด ์ข ๋ ํฐ ETF\" ์ ๋๋ก ์๊ฐํ๋ ๋ถ๋ค์ด ๋ง์ต๋๋ค. ์ง์๊ฐ ์ค๋ฅด๋ฉด ๋ ๋ฐฐ ์ค๋ฅด๊ณ , ๋ด๋ฆฌ๋ฉด ๋ ๋ฐฐ ๋ด๋ฆฌ๋ ๋จ์ํ ๊ณฑ์ ๊ตฌ์กฐ๋ผ๊ณ ์ฌ๊ธฐ๋ ๊ฑฐ์ฃ . ํ์ง๋ง ์ด ์คํด๊ฐ ์ํํ ์ด์ ๋, ๋ ๋ฒ๋ฆฌ์ง ETF๋ '๊ธฐ๊ฐ ์์ต๋ฅ '์ด ์๋๋ผ 'ํ๋ฃจ ์์ต๋ฅ '์ ๋ ๋ฐฐ๋ก ์ถ์ข ํ๋ค๋ ๋ฐ ์์ต๋๋ค. ์ด ์ฐจ์ด๋ฅผ ๋ชจ๋ฅด๊ณ ์ ๊ทผํ๋ฉด ์ฅ๊ธฐ ๋ณด์ ์ ...", + "articleType": "investment" + }, + { + "post_id": "2026-07-15_๊ฐ์๋์บ ํ์ฒ์ํด๋ดค์๋๋ชฐ๋๋๊ฒ๋ค_be071c2e", + "keyword": "๊ฐ์๋ ์บ ํ ์ฒ์ ํด๋ดค์ ๋ ๋ชฐ๋๋ ๊ฒ๋ค", + "title": "๊ฐ์๋ ์บ ํ ์ฒ์ ํด๋ดค์ ๋ ๋ชฐ๋๋ ๊ฒ๋ค, ์์ฝ ์ ํ์ธ", + "status": "published", + "source": "auto", + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "blogUrl": "https://hogugolfntraval.blogspot.com/2026/07/blog-post_457.html", + "errorMessage": null, + "createdAt": "2026-07-15T11:42:09.013577", + "publishedAt": "2026-07-15T11:42:10.238771", + "lastAttemptAt": "2026-07-15T11:42:10.238771", + "attempts": 2, + "runNumber": 186, + "wordCount": 3792, + "faqCount": 3, + "category": "์ผ๋ฐ", + "labels": [ + "๊ฐ์๋์บ ํ", + "์บ ํ์ด๋ณด", + "์บ ํ์ฅ์์ฝ", + "๋ฐ๋ ค๋๋ฌผ์บ ํ", + "๊ณ ์บ ํ" + ], + "metaDescription": "๊ฐ์๋๋ก ์ฒ์ ์บ ํ์ ๋ ๋ ๋ค ๊ฒช์๋ ๋ถ๋์์ค ๋ฌธ์ , ๋ฐ๋ ค๋๋ฌผ ๋๋ฐ ์กฐ๊ฑด, ์ฐ๊ฐ ์ง์ญ ๊ธฐ์จ์ฐจ๊น์ง ์ค์ ๊ฒฝํ๊ณผ ๊ณ ์บ ํ ๊ณต์ ์ ๋ณด๋ฅผ ๋ฐํ์ผ๋ก ์์ฝ ์ ๊ผญ ํ์ธํด์ผ ํ ์ฒดํฌ๋ฆฌ์คํธ๋ฅผ ์ ๋ฆฌํ์ต๋๋ค. ์ด๋ณด ์บ ํผ์๊ฒ ์ค์ง์ ์ผ๋ก ๋์์ด ๋๋ ๋ด์ฉ์ ๋ด์์ต๋๋ค.", + "contentPreview": "7์ ์ค์์ ์ ์ด๋ค๋ฉด์ ์ฃผ๋ง๋ง๋ค ๊ฐ์๋๋ก ํฅํ๋ ์ฐจ๋ ํ๋ ฌ์ด ๋ค์ ๋์ด๋๋ ๊ฑธ ์ฒด๊ฐํ์๋ ๋ถ๋ค ๋ง์ผ์ค ๊ฒ๋๋ค. ํนํ ์ฌํด๋ ์ฒ์์ผ๋ก ์บ ํ ์ฅ๋น๋ฅผ ์ฌ์ ๋์๋ ์ด๋ณด ์บ ํผ๋ค์ ํ๊ธฐ๊ฐ ์จ๋ผ์ธ ์ปค๋ฎค๋ํฐ๋ง๋ค ๋์ ๋๊ฒ ๋์์ต๋๋ค. ๊ทธ๋ฐ๋ฐ ์ด ํ๊ธฐ๋ค์ ์ญ ์ดํด๋ณด๋ฉด ๊ณตํต์ ์ผ๋ก ๋์ค๋ ๋ง์ด ์์ต๋๋ค. '์ด๊ฑด ๋ฏธ๋ฆฌ ์์์ด์ผ ํ๋ค'๋ ๊ฒ๋๋ค. ๊ฐ์๋ ์บ ํ์ ์๋๊ถ ๊ทผ๊ต ์บ ํ...", + "articleType": "analysis" + }, + { + "post_id": "2026-07-15_ํด์ธ์์์ฌ๊ณ ๋ฌ์๋๋์ฌ๊ด์ ๊ณ ์ง์ ๊ฒฝํํ๊ณผ_8977c954", + "keyword": "ํด์ธ์์ ์ฌ๊ณ ๋ฌ์ ๋ ๋์ฌ๊ด ์ ๊ณ ์ง์ ๊ฒฝํํ ๊ณผ์ ", + "title": "ํด์ธ ์ฌ๊ณ ์ ๋์ฌ๊ด ์ ๊ณ ์ ์ฐจ, ์กฐ์ฌํด๋ณด๋ ์ด๋ ์ต๋๋ค (2026)", + "status": "pending", + "source": "auto", + "blogId": "blog1", + "blogName": "HOGU What?", + "blogUrl": "", + "errorMessage": null, + "createdAt": "2026-07-15T11:33:52.681069", + "publishedAt": null, + "lastAttemptAt": "2026-07-15T11:33:52.681069", + "attempts": 1, + "runNumber": 186, + "wordCount": 3559, + "faqCount": 3, + "category": "์ผ๋ฐ", + "labels": [ + "ํด์ธ์ฌ๊ณ ๋์", + "๋์ฌ๊ด์ ๊ณ ", + "์์ฌ์ฝ์ผํฐ", + "ํด์ธ์ฌํ์์ ", + "์ฌํ์๋ณดํ", + "์ฌ์ธ๊ณต๊ด", + "ํด์ธ์์ ์ฌํ" + ], + "metaDescription": "ํด์ธ์์ ์ฌ๊ณ ๋ฌ์ ๋ ๋์ฌ๊ด ์ ๊ณ ์ ์ฐจ๋ฅผ ๊ณต์ ์๋ฃ์ ์ฌํ์ ํ๊ธฐ๋ก ์กฐ์ฌํ์ต๋๋ค. ์์ฌ์ฝ์ผํฐ ์ฐ๋ฝ๋ฒ๊ณผ ์ค์ ์ฌ๋ก๊น์ง ์ ๋ฆฌํ์ต๋๋ค.", + "contentPreview": "ํด์ธ์ฌํ ์ปค๋ฎค๋ํฐ๋ฅผ ์ดํด๋ณด๋ฉด ์ต๊ทผ ๋ถ์ฉ ๋์ด๋ ๊ธ์ด ์์ต๋๋ค. ์ฌํ์ง์์ ๊ตํต์ฌ๊ณ ๋ ๋๋, ํญํ ๊ฐ์ ์ฌ๊ณ ๋ฅผ ๊ฒช์ ๋ค '๋์ฌ๊ด์ ์ด๋ป๊ฒ ์ฐ๋ฝํด์ผ ํ๋์ง ๋ชฐ๋ผ์ ๋นํฉํ๋ค'๋ ํ๊ธฐ์ ๋๋ค. 2026๋ ์๋ฐ๊ธฐ์๋ ๋๋จ์, ์ ๋ฝ ์ฌํ ์ปค๋ฎค๋ํฐ ๊ณณ๊ณณ์์ ๋น์ทํ ๊ธ์ด ์ฌ๋ผ์ต๋๋ค. ๋ง๋ฆฐํํ๋ ์ด๋ฐ ๊ธ๋ค์ ์ฌ๋ฌ ๊ฑด ๋ชจ์ ์ฝ์ผ๋ฉด์, ๋ง์ ์ฌ๊ณ ๋ฅผ ๊ฒช์์ ๋ ์ด๋ค ์ ์ฐจ๋ก ๋์ฌ๊ด...", + "articleType": "review" + }, + { + "post_id": "2026-07-15_ETF์ฒซ๋งค์ํ์๊ฒ๋์ค์_3e2f14aa", + "keyword": "ETF ์ฒซ ๋งค์ ํ ์๊ฒ ๋ ์ค์", + "title": "ETF ์ฒซ ๋งค์ ํ์์ผ ์๊ฒ ๋ ์ธ๊ธยท๊ตฌ์กฐ ์ค์ ์ด์ ๋ฆฌ", + "status": "published", + "source": "auto", + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "blogUrl": "https://hoguasset.blogspot.com/2026/07/etf_0214796678.html", + "errorMessage": null, + "createdAt": "2026-07-15T05:56:07.376209", + "publishedAt": "2026-07-15T05:56:08.479321", + "lastAttemptAt": "2026-07-15T05:56:08.479321", + "attempts": 2, + "runNumber": 185, + "wordCount": 5062, + "faqCount": 3, + "category": "์ผ๋ฐ", + "labels": [ + "ETFํฌ์", + "ETF์ธ๊ธ", + "ํด์ธETF๊ณผ์ธ", + "๊ตญ๋ด์์ฅETF", + "๋ ๋ฒ๋ฆฌ์งETF" + ], + "metaDescription": "ETF๋ฅผ ์ฒ์ ๋งค์ํ ํ์์ผ ์๊ฒ ๋๋ ์ธ๊ธยท๋ถ๋ฐฐ๊ธยท๋ ๋ฒ๋ฆฌ์งยทํ์ ์ค์ ์ฌ๋ก๋ฅผ ์ค์ ๊ฒฝํ๊ณผ ๊ตญ์ธ์ฒญ ์๋ฃ๋ฅผ ๋ฐํ์ผ๋ก ์ ๋ฆฌํ์ต๋๋ค. ๋งค์ ์ ํ์ธํ ์ฒดํฌ๋ฆฌ์คํธ๋ ํจ๊ป ์๊ฐํฉ๋๋ค.", + "contentPreview": "์์ฆ ์ฃผ๋ณ์์ ETF ์ด์ผ๊ธฐ๋ฅผ ์ ๋ฃ๋ ๋ ์ด ์์ต๋๋ค. ํนํ ๊ตญ๋ด ํฌ์์๋ค์ด ํด์ธ ์ฃผ์, ๊ทธ์ค์์๋ ๋ฏธ๊ตญ ETF์ ๋ฃ์ด๋ ๋์ด 250์กฐ์์ ๋์ด์ฐ๋ค๋ ์กฐ์ฌ ๊ฒฐ๊ณผ๊ฐ ๋์ค๋ฉด์(ํ๊ฒฝ๋น์ฆ๋์ค, 2026-01-26 ๋ณด๋) ETF ํฌ์๊ฐ ์ด์ ์์์ ์ทจ๋ฏธ๊ฐ ์๋๋ผ ์ง์ฅ์ธยท์์์ ์ ๋๊ตฌ๋ ํ๋์ฏค์ ๊ณ์ข์ ๋ด์๋๋ ์ํ์ด ๋๋ค๋ ๊ฑธ ์ค๊ฐํ๊ฒ ๋ฉ๋๋ค. ๋ฌธ์ ๋ '์ผ๋จ ์ฌ๊ณ ...", + "articleType": "investment" + }, + { + "post_id": "2026-07-15_๊ตญ๋ด์๋์์ฌํ์ง์ถ์ฒ๋จ์์์๋ถ์ฐ_d32d4dbd", + "keyword": "๊ตญ๋ด ์๋์ ์ฌํ์ง ์ถ์ฒ ๋จ์ ์์ ๋ถ์ฐ", + "title": "๊ตญ๋ด ์๋์ ์ฌํ์ง ์ถ์ฒ, ๋จ์ยท์์ยท๋ถ์ฐ ์ค์ ๋ฐฉ๋ฌธ ๋น๊ต", + "status": "published", + "source": "auto", + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "blogUrl": "https://hogugolfntraval.blogspot.com/2026/07/blog-post_15.html", + "errorMessage": null, + "createdAt": "2026-07-15T05:46:15.933617", + "publishedAt": "2026-07-15T05:46:17.353588", + "lastAttemptAt": "2026-07-15T05:46:17.353588", + "attempts": 2, + "runNumber": 185, + "wordCount": 3030, + "faqCount": 3, + "category": "์ผ๋ฐ", + "labels": [ + "๊ตญ๋ด์ฌํ", + "์๋์์ฌํ", + "๋จ์์ฌํ", + "์์์ฌํ", + "๋ถ์ฐ์ฌํ" + ], + "metaDescription": "๋ถ๋น๋ ๋ํ ๊ด๊ด์ง ๋์ ๊ตญ๋ด ์๋์ ์ฌํ์ง๋ฅผ ์ฐพ๋ ๋ถ๋ค์ ์ํด ๋จ์ยท์์ยท๋ถ์ฐ์ ์ง์ ๋ค๋ ์จ ๊ฒฝํ๊ณผ ๊ณต์ ์ ๋ณด๋ฅผ ๋น๊ตํด ์ ๋ฆฌํ์ต๋๋ค. ์ง์ญ๋ณ ํน์ง๊ณผ ์ฃผ์ํ ์ ๊น์ง ํ์ธํด๋ณด์ธ์.", + "contentPreview": "์ต๊ทผ ์ฃผ๋ง๋ง๋ค ๊ณ ์๋๋ก ์ ์ฒด ๋ด์ค๋ฅผ ๋ณด๋ฉด์ '์ฌ์ฌ๋ฆ์ ์ฌ๋ ๋ ๋ถ๋น๋ ๋ฐ ๊ฐ๊ณ ์ถ๋ค'๋ ์๊ฐ์ด ๋๋ ๋ถ๋ค์ด ๋๊ณ ์๋ค๊ณ ํฉ๋๋ค. ์ค์ ๋ก ์ต๊ทผ ๋ํฅ์ ๋ฐ๋ฅด๋ฉด ๋ํ ๊ด๊ด์ง๋ณด๋ค ์๋์๋ ์์ํ ์ง์ญ ์ฌํ์ง๋ฅผ ๊ฒ์ํ๋ ๋น๋๊ฐ ๋์ ๋๊ฒ ๋์๋ค๋ ์ด์ผ๊ธฐ๊ฐ ์ฌํ ์ปค๋ฎค๋ํฐ์์ ์์ฃผ ์ค๊ฐ๋๋ค. ์ด๋ฒ ๊ธ์ ๋ง๋ฆฐํํ๊ฐ ๊ตญ๋ด ์๋์ ์ฌํ์ง ์ค์์๋ ์์ฃผ ์ธ๊ธ๋๋ ๋จ์, ์์,...", + "articleType": "travel_guide" + }, + { + "post_id": "2026-07-15_ํจํค์ง์ฌํ๊ณ์ฝ์ํ๋ถ์กฐํญ์ง์ ์ฝ์ด๋ณด๊ณ ์๊ฒ_94c4cfde", + "keyword": "ํจํค์ง์ฌํ ๊ณ์ฝ์ ํ๋ถ ์กฐํญ ์ง์ ์ฝ์ด๋ณด๊ณ ์๊ฒ ๋ ๊ฒ", + "title": "ํจํค์ง์ฌํ ๊ณ์ฝ์ ํ๋ถ ์กฐํญ ์ง์ ํ์ธํ๊ณ ์๊ฒ ๋ ๊ฒ", + "status": "published", + "source": "auto", + "blogId": "blog1", + "blogName": "HOGU What?", + "blogUrl": "https://www.hoguwhat.com/2026/07/blog-post_571.html", + "errorMessage": null, + "createdAt": "2026-07-15T05:36:36.984519", + "publishedAt": "2026-07-15T05:36:37.608284", + "lastAttemptAt": "2026-07-15T05:36:37.608284", + "attempts": 2, + "runNumber": 185, + "wordCount": 4078, + "faqCount": 3, + "category": "์ผ๋ฐ", + "labels": [ + "ํจํค์ง์ฌํ", + "์ฌํ๊ณ์ฝ์", + "ํ๋ถ์กฐํญ", + "์ฌํํน์ฝ", + "ํ์ค์ฝ๊ด" + ], + "metaDescription": "ํจํค์ง์ฌํ ์์ฝ ์ ์ ๊ณ์ฝ์ ํ๋ถ ์กฐํญ์ ์ง์ ํ์ธํ๊ณ , ํ์ค์ฝ๊ด๊ณผ ํน์ฝ์ ์ฐจ์ด, ์ค์ ์ทจ์ ์ฌ๋ก๋ก ๊ณ์ฐํ ํ๋ถ ๋น์จ๊น์ง ๊ผผ๊ผผํ ์ ๋ฆฌํ์ต๋๋ค. ๊ณ์ฝ ์ ๊ผญ ์ ๊ฒํด์ผ ํ ์ฒดํฌ๋ฆฌ์คํธ์ ํํ ์ค์, ์ฃผ์ํ ์ ๋ ํจ๊ป ๋ด์์ต๋๋ค.", + "contentPreview": "์ฌํ ์ค๋น๋ฅผ ํ๋ค ๋ณด๋ฉด ๊ฒฐ์ ๋ฒํผ์ ๋๋ฅด๊ธฐ ์ง์ , ๊ณ์ฝ์ ํ๋จ์ ์์ ๊ธ์จ๋ก ๋นผ๊ณกํ ์ ํ ์กฐํญ๋ค์ ๊ทธ๋ฅ ๋๊ธฐ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. ํนํ ํจํค์ง์ฌํ ์ํ์ ์๋ด์์ด ์ ํ๋ก ์๋ดํด์ฃผ๋ ๋ด์ฉ๋ง ๋ฏฟ๊ณ ์๋ช ๋์ ์ฒดํฌ๋ง ํ๋ ๊ฒฝ์ฐ๊ฐ ๋๋ถ๋ถ์ ๋๋ค. ๊ทธ๋ฐ๋ฐ ๋ง์ ๊ฐ์ธ ์ฌ์ ์ผ๋ก ์ทจ์๋ฅผ ํด์ผ ํ ๋, ์์๋ณด๋ค ํจ์ฌ ์ ์ ํ๋ถ ๊ธ์ก์ ๋ฐ๊ณ ๋์์ผ ๊ณ์ฝ์๋ฅผ ๋ค์ ๊บผ๋ด๋ณด๋ ๋ถ๋ค์ด ...", + "articleType": "travel_guide" + }, + { + "post_id": "2026-07-14_SKํ์ด๋์ค์ฃผ๊ฐ์ ๋ง2026๋ฐ๋์ฒด๋ ๋ฆฌ๋ถ_5df4eed6", + "keyword": "SKํ์ด๋์ค ์ฃผ๊ฐ ์ ๋ง 2026 ๋ฐ๋์ฒด ๋ ๋ฆฌ ๋ถ์", + "title": "SKํ์ด๋์ค ์ฃผ๊ฐ ์ ๋ง 2026, ๋ฐ๋์ฒด ๋ ๋ฆฌ๋ ๋๋ฌ๋โฆ์ฆ๊ถ๊ฐ ๋ชฉํ๊ฐ ๊ฒฉ์ฐจ ๋ถ์", + "status": "skipped", + "source": "auto", + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "blogUrl": "", + "errorMessage": null, + "createdAt": "2026-07-14T23:26:45.750615", + "publishedAt": null, + "lastAttemptAt": "2026-07-14T23:26:45.750615", + "attempts": 1, + "runNumber": 184, + "wordCount": 2608, + "faqCount": 3, + "category": "์ผ๋ฐ", + "labels": [ + "SKํ์ด๋์ค", + "SKํ์ด๋์ค ์ฃผ๊ฐ์ ๋ง", + "๋ฐ๋์ฒด ๋ ๋ฆฌ", + "์ฝ์คํผ", + "๋ฐ๋์ฒด ์ฃผ์", + "AI ๋ฐ๋์ฒด", + "์ฆ๊ถ๊ฐ ๋ชฉํ์ฃผ๊ฐ" + ], + "metaDescription": "SKํ์ด๋์ค ์ฃผ๊ฐ ์ ๋ง 2026, ๊ณ ์ ๋๋น 29% ํ๋ฝ๊ณผ ์ฆ๊ถ๊ฐ ๋ชฉํ๊ฐ 185๋ง์ vs 420๋ง์ ๊ฒฉ์ฐจ์ ๋ฐฐ๊ฒฝ, ๋ฐ๋์ฒด ๋ ๋ฆฌ ์ง์ ์ฌ๋ถ๋ฅผ ๋๋ฌ์ผ ๋ถ์์ ์ ๋ฆฌํ์ต๋๋ค.", + "contentPreview": "7์ 9์ผ ์ ์ค, SKํ์ด๋์ค ์ฃผ๊ฐ๋ 212๋ง6000์์ ๊ฑฐ๋๋๋ฉฐ ์ ์ผ ๋๋น 2.41% ์ค๋ฅธ ์ฑ์์ต๋๋ค. ์ธ๋ป ๋ณด๋ฉด ๋ฐ๋ฑํ๋ ๊ทธ๋ฆผ ๊ฐ์ง๋ง, ๋ถ๊ณผ ๋ ์ฃผ ์ ์ธ 6์ 23์ผ ์ฅ์ค 300๋ง2000์๊น์ง ์ฐ์๋ ๊ฒ๊ณผ ๋น๊ตํ๋ฉด ์ด์ผ๊ธฐ๊ฐ ๋ฌ๋ผ์ง๋๋ค. ๊ณ ์ ๋๋น ์ฝ 29.2% ํ๋ฝํ ์์ค์ด๋ผ๋ ๋ป์ ๋๋ค. ๊ทธ๋ฐ๋ฐ ๊ฐ์ ๋ ๋ ์ฆ๊ถ์ฌ๊ฐ ๋ด๋์ ๋ชฉํ์ฃผ๊ฐ๋ 185๋ง์๊ณผ 420...", + "articleType": "investment" + }, + { + "post_id": "2026-07-14_๋ถ์ฐ1๋ฐ2์ผํผ์์ฌํํ์ค๋น์ฉ๊ณต๊ฐ_e99f612d", + "keyword": "๋ถ์ฐ 1๋ฐ2์ผ ํผ์ ์ฌํ ํ์ค ๋น์ฉ ๊ณต๊ฐ", + "title": "๋ถ์ฐ 1๋ฐ2์ผ ํผ์ ์ฌํ ํ์ค ๋น์ฉ ๊ณต๊ฐ, ์ค์ ๋ก ์ผ๋ง๋ ๋ค๊น", + "status": "skipped", + "source": "auto", + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "blogUrl": "", + "errorMessage": null, + "createdAt": "2026-07-14T23:23:07.196448", + "publishedAt": null, + "lastAttemptAt": "2026-07-14T23:23:07.196448", + "attempts": 1, + "runNumber": 184, + "wordCount": 2603, + "faqCount": 3, + "category": "์ผ๋ฐ", + "labels": [ + "๋ถ์ฐ์ฌํ", + "ํผ์์ฌํ", + "1๋ฐ2์ผ์ฌํ", + "๋ถ์ฐ1๋ฐ2์ผ", + "์ฌํ๊ฒฝ๋น", + "๊ตญ๋ด์ฌํ", + "ํผํ" + ], + "metaDescription": "๋ถ์ฐ 1๋ฐ2์ผ ํผ์ ์ฌํ ํ์ค ๋น์ฉ์ ๊ตํต๋น, ์๋ฐ๋น, ์๋น, ์ ์ฅ๋ฃ ํญ๋ชฉ๋ณ๋ก ๋๋ ๋ถ์ํ๊ณ ๋น์ฉ์ ์ค์ด๋ ๋ฐฉ๋ฒ๊น์ง ์ ๋ฆฌํ ๊ธ์ ๋๋ค.", + "contentPreview": "์ฐ์ฐจ ํ๋ฃจ ๋ถ์ฌ์ ํ์ฉ ๋ถ์ฐ์ผ๋ก ํผ์ ๋ ๋๋ณผ๊น ๊ณ ๋ฏผํด๋ณธ ์ ์์ผ์ ๊ฐ์? ์์ ์์ฝ ์ฌ์ดํธ๋ง ์ผ๋ด๋ ๊ฐ๊ฒฉ์ด ์ฒ์ฐจ๋ง๋ณ์ด๊ณ , ๊ตํตํธ๋ KTX๋ ๋ฒ์ค๋์ ๋ฐ๋ผ ์ฒด๊ฐ ๋น์ฉ์ด ํ ๋ฌ๋ผ์ง์ฃ . ํผํ(ํผ์ ์ฌํ)์ ๋์ด ๊ฐ ๋์ฒ๋ผ ๋ฐฉ๊ฐ์ ๋๋ ๋ผ ์ ์๋ค ๋ณด๋ 'ํผ์ ๊ฐ๋ฉด ์คํ๋ ค ๋ ๋น์ผ ๊ฑฐ ์๋๊ฐ' ํ๋ ๊ฑฑ์ ๋ ๋ญ๋๋ค. ์ด ๊ธ์์๋ ๋ถ์ฐ 1๋ฐ2์ผ ํผ์ ์ฌํ์ ์ค๋นํ ๋ ...", + "articleType": "travel_guide" + }, + { + "post_id": "2026-07-14_์ ์ฃผ๋๋ ํฐ์นด๋ณดํ์ต์ ์ค์ ๋กํ์ํ๊ฒ๋ง๊ณ ๋ฅด_e3c3d194", + "keyword": "์ ์ฃผ๋ ๋ ํฐ์นด ๋ณดํ ์ต์ ์ค์ ๋ก ํ์ํ ๊ฒ๋ง ๊ณ ๋ฅด๊ธฐ", + "title": "์ ์ฃผ๋ ๋ ํฐ์นด ๋ณดํ ์ต์ , ์ค์ ๋ก ํ์ํ ๊ฒ๋ง ๊ณ ๋ฅด๋ ๋ฒ", + "status": "published", + "source": "auto", + "blogId": "blog1", + "blogName": "HOGU What?", + "blogUrl": "https://www.hoguwhat.com/2026/07/blog-post_15.html", + "errorMessage": null, + "createdAt": "2026-07-14T23:12:04.827219", + "publishedAt": "2026-07-14T23:12:05.496495", + "lastAttemptAt": "2026-07-14T23:12:05.496495", + "attempts": 2, + "runNumber": 184, + "wordCount": 4533, + "faqCount": 3, + "category": "์ผ๋ฐ", + "labels": [ + "์ ์ฃผ๋๋ ํฐ์นด", + "์ ์ฃผ๋๋ ํฐ์นด๋ณดํ", + "์ ์ฃผ์ฌํ", + "์์ฐจ๋ณดํ", + "๋ ํฐ์นด๋ณดํ์ต์ " + ], + "metaDescription": "์ ์ฃผ๋ ๋ ํฐ์นด ๋ณดํ ์ต์ ์ค ์๊ธฐ๋ถ๋ด๊ธ, ํด์ฐจ๋ฃ, ๋ฉด์ฑ ๋ฒ์, ํ์ด์ด ํน์ฝ๊น์ง ์ค์ ๋ก ํ์ธํด์ผ ํ ํญ๋ชฉ๋ง ์ ๋ฆฌํ์ต๋๋ค. 2026๋ ์ ์ฃผ ๋ ํฐ์นด ์ฝ๊ด ๊ฐํธ ๋ฐฐ๊ฒฝ๊ณผ ์์ฝ ์ ์ฒดํฌ๋ฆฌ์คํธ, ์์ฃผ ํ๋ ์ค์๊น์ง ํจ๊ป ์ ๋ฆฌํ์ต๋๋ค.", + "contentPreview": "์ฌ๋ฆ ํด๊ฐ์ฒ ์ ์ฃผ๋ ํญ๊ณต๊ถ์ ๋์ด๋๊ณ ๋ ํฐ์นด ์์ฝ ํ๋ฉด์ ์ด์ด๋ณธ ๋ถ์ด๋ผ๋ฉด ํ ๋ฒ์ฏค ๋ฉ์นซํ์ ๊ฒ๋๋ค. ์์ฐจ๋ณดํ ๊ธฐ๋ณธํ, ์์ ์์ฐจ, ์ํผ์์ฐจ, ํ์ด์ดยทํ ๋ณด์ฅ๊น์ง ์ต์ ์ด ์ค์ค์ด ๋จ๋๋ฐ ๋ญ ๊ณจ๋ผ์ผ ํ ์ง ๊ฐ์ด ์ ์ต๋๋ค. ๋ง์นจ 2026๋ 5์ ๋ง ์ ์ฃผ๋๊ฐ ๋ ํฐ์นด ์ฝ๊ด์ ์๋ณด๊ฒ ๋ค๊ณ ๋ฐํํ๋ฉด์ ์์ฐจ๋ณดํ ๊ด๋ จ ๊ท์ ์์ฒด๊ฐ ๋ค์ ์ฃผ๋ชฉ๋ฐ๊ณ ์์ต๋๋ค. ์ด๋ฒ ๊ธ์์๋ ์๋ฃ๋ฅผ ...", + "articleType": "analysis" + }, + { + "post_id": "2026-07-14_๋ ๋ฒ๋ฆฌ์งETFํฌ์์ํ์ฑ๊ณผ์์ ํ๊ฒํฌ์ํ_8ccf0fa5", + "keyword": "๋ ๋ฒ๋ฆฌ์ง ETF ํฌ์ ์ํ์ฑ๊ณผ ์์ ํ๊ฒ ํฌ์ํ๋ ๋ฐฉ๋ฒ", + "title": "๋ ๋ฒ๋ฆฌ์ง ETF, ์ ์ํํ ๊น โ ์์ ํ๊ฒ ํฌ์ํ๋ 5๊ฐ์ง ์์น", + "status": "published", + "source": "auto", + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "blogUrl": "https://hoguasset.blogspot.com/2026/07/etf-5.html", + "errorMessage": null, + "createdAt": "2026-07-14T11:53:35.542160", + "publishedAt": "2026-07-14T11:53:36.508594", + "lastAttemptAt": "2026-07-14T11:53:36.508594", + "attempts": 2, + "runNumber": 183, + "wordCount": 5272, + "faqCount": 4, + "category": "์ผ๋ฐ", + "labels": [ + "๋ ๋ฒ๋ฆฌ์งETF", + "ETFํฌ์์ํ", + "์ฝ์คํผ๋ณ๋์ฑ", + "VKOSPI", + "๋จ์ผ์ข ๋ชฉETF" + ], + "metaDescription": "์ผ์ฑ์ ์ยทSKํ์ด๋์ค ๋จ์ผ์ข ๋ชฉ ๋ ๋ฒ๋ฆฌ์ง ETF๊ฐ ์ฝ์คํผ ๋ณ๋์ฑ์ง์(VKOSPI)๋ฅผ ํค์ฐ๋ ๊ตฌ์กฐ์ ์ด์ ์ ์๋๋ ํ์, ๊ธ์ต๊ฐ๋ ์์ฅ์ ๋ฐ์ฑ ๋ฐ์ธ ๋ฐฐ๊ฒฝ์ ์ ๋ฆฌํ๊ณ ๋น์ค๊ณผ ๋ณด์ ๊ธฐ๊ฐ์ ๊ด๋ฆฌํด ์์ ํ๊ฒ ํฌ์ํ๋ ์์น๊น์ง ์์ธํ ์ดํด๋ด ๋๋ค.", + "contentPreview": "์์ฆ ์ฃผ์ ์ปค๋ฎค๋ํฐ๋ ๋ด์ค์์ '๋ ๋ฒ๋ฆฌ์ง ETF'๋ผ๋ ๋จ์ด๊ฐ ์ ๋ ์์ฃผ ๋ณด์ด์ง ์์ผ์ จ๋์? ํนํ ์ผ์ฑ์ ์๋ SKํ์ด๋์ค ํ๋๋ง ์ฝ ์ง์ด์ ๋ ๋ฐฐ ์์ต์ ๋ ธ๋ฆฐ๋ค๋ ๋จ์ผ์ข ๋ชฉ ๋ ๋ฒ๋ฆฌ์ง ETF ์๊ธฐ๊ฐ ๋ง์ด ๋์ต๋๋ค. ๊ทธ๋ฐ๋ฐ ์ด๊ฒ ๋จ์ํ '์์ต์ ๋ ๋ฐฐ๋ก ๋ฒ ์ ์๋ ์ํ' ์ ๋๋ก๋ง ์๊ณ ๊ณ์ ๋ค๋ฉด, ์ต๊ทผ ๊ธ์ต๋น๊ตญ ์์ฅ๊น์ง ๋์์ ๋ฐ์ฑํ๋ค๊ณ ๋งํ ๋ฐฐ๊ฒฝ์ ํ๋ฒ ์ง์ด๋ณผ ...", + "articleType": "investment" + }, + { + "post_id": "2026-07-14_์ ์ฃผ๋์ฌํํ์ง์ธ์ฒ๋ผ์ฆ๊ธฐ๋๋ฐฉ๋ฒ์์งํ๊ธฐ_af392ad0", + "keyword": "์ ์ฃผ๋ ์ฌํ ํ์ง์ธ์ฒ๋ผ ์ฆ๊ธฐ๋ ๋ฐฉ๋ฒ ์์ง ํ๊ธฐ", + "title": "์ ์ฃผ๋ ์ฌํ ํ์ง์ธ์ฒ๋ผ ์ฆ๊ธฐ๋ ๋ฐฉ๋ฒ, ์์ง ํ๊ธฐ ์ ๋ฆฌ (2026.07)", + "status": "published", + "source": "auto", + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "blogUrl": "https://hogugolfntraval.blogspot.com/2026/07/202607.html", + "errorMessage": null, + "createdAt": "2026-07-14T11:41:31.462113", + "publishedAt": "2026-07-14T11:41:32.760266", + "lastAttemptAt": "2026-07-14T11:41:32.760266", + "attempts": 2, + "runNumber": 183, + "wordCount": 3285, + "faqCount": 3, + "category": "์ผ๋ฐ", + "labels": [ + "์ ์ฃผ๋์ฌํ", + "์ ์ฃผ๋๋ง์ง", + "์ ์ฃผ๋์์", + "์ฌํ๊ฟํ", + "๊ตญ๋ด์ฌํ" + ], + "metaDescription": "๋ ํธ์นด ์์ด ๋ฒ์ค์ ๋๋ณด๋ก 3๋ฐ 4์ผ ๋ค๋ ์จ ์ ์ฃผ๋ ์ฌํ ์์ง ํ๊ธฐ์ ๋๋ค. ์์นจ๋ฐฅ๋ถํฐ ์ฌ๋์์ฅ, ์์ ์ ํ๊น์ง ํ์ง์ธ์ฒ๋ผ ์ฆ๊ธฐ๋ ๋ฐฉ๋ฒ์ ์ง์ ๊ฒฝํํ ๋ด์ฉ๊ณผ ๊ณต์ ์๋ฃ๋ก ์ ๋ฆฌํ์ต๋๋ค.", + "contentPreview": "์์ฆ ์ ์ฃผ๋ ๊ด๋ จ ์ปค๋ฎค๋ํฐ ๊ธ์ ๋ณด๋ฉด ์์ ๊ณผ ๋ถ์๊ธฐ๊ฐ ์ข ๋ค๋ฆ ๋๋ค. \"์ฑ์ฐ์ผ์ถ๋ด, ์ฐ๋, ํ์ฌํด์์์ฅ\" ๊ฐ์ ์ ํด์ง ์ฝ์ค ๋ง๊ณ \"ํ์ง์ธ์ฒ๋ผ ๋ค๋๋ ๋ฒ\"์ ๋ฌป๋ ๊ธ์ด ๋ถ์ฉ ๋์๋๋ผ๊ณ ์. ์ค๋ฒํฌ์ด๋ฆฌ์ฆ ์๊ธฐ๊ฐ ๋์ฌ ์ ๋๋ก ์ ๋ช ๊ด๊ด์ง์ ์ฌ๋์ด ๋ชฐ๋ฆฌ๋ค ๋ณด๋, ์คํ๋ ค ๊ทธ ๋ฐ๋๋ก ์กฐ์ฉํ๊ณ ๋ก์ปฌ์ค๋ฌ์ด ์ฝ์ค๋ฅผ ์ฐพ๋ ์ฌ๋๋ค์ด ๋ง์์ง ๊ฒ๋๋ค. ์ ๋ ์ฌํ ์ฝํ ์ธ ๋ฅผ ์กฐ์ฌํ๋ ์ ...", + "articleType": "travel_guide" + }, + { + "post_id": "2026-07-14_ํด์ธ์ฌํํ์ ์์๋ฃ0๋ฐฉ๋ฒ์ง์ ๋น๊ต์ ๋ฆฌ_c9819021", + "keyword": "ํด์ธ์ฌํ ํ์ ์์๋ฃ 0% ๋ฐฉ๋ฒ ์ง์ ๋น๊ต ์ ๋ฆฌ", + "title": "ํด์ธ์ฌํ ํ์ ์์๋ฃ 0% ๋ฐฉ๋ฒ ์ง์ ๋น๊ต ์ ๋ฆฌ", + "status": "published", + "source": "auto", + "blogId": "blog1", + "blogName": "HOGU What?", + "blogUrl": "https://www.hoguwhat.com/2026/07/0.html", + "errorMessage": null, + "createdAt": "2026-07-14T11:31:09.305496", + "publishedAt": "2026-07-14T11:31:10.106430", + "lastAttemptAt": "2026-07-14T11:31:10.106430", + "attempts": 2, + "runNumber": 183, + "wordCount": 3557, + "faqCount": 3, + "category": "์ผ๋ฐ", + "labels": [ + "ํด์ธ์ฌํ ํ์ ", + "ํ์ ์์๋ฃ 0%", + "ํธ๋๋ธ์นด๋ ๋น๊ต", + "์ฌํ ์ค๋น", + "ํ์จ ์ฐ๋" + ], + "metaDescription": "ํด์ธ์ฌํ ํ์ ์์๋ฃ 0%์ ์ง์ง ์๋ฏธ์ ํธ๋๋ธ์นด๋ 3์ข ๋น๊ต, ์ถ๊ตญ ์ ์ฒดํฌ๋ฆฌ์คํธ๊น์ง ์ง์ ์จ๋ณด๊ณ ์ ๋ฆฌํ์ต๋๋ค. ๋์๊ฒ ๋ง๋ ํ์ ๋ฐฉ๋ฒ์ ๊ณ ๋ฅด๋ ๋ฐ ์ฐธ๊ณ ํ์ธ์.", + "contentPreview": "์ถ๊ตญ ํ๋ฃจ ์ ๋ ์ํ ์ฑ์ ์ผ๊ณ ํ์ ์ฐ๋์จ์ ํ์ธํ๋ค๊ฐ, ์นด๋์ฌ๋ง๋ค, ์ฑ๋ง๋ค ์ซ์๊ฐ ์กฐ๊ธ์ฉ ๋ฌ๋ผ์ ๊ฒฐ๊ตญ ๋ญ ๊ณจ๋ผ์ผ ํ ์ง ํท๊ฐ๋ ธ๋ ๊ฒฝํ ์์ผ์ค ๊ฒ๋๋ค. ํนํ 'ํ์ ์์๋ฃ 0%'๋ผ๋ ๋ฌธ๊ตฌ๋ฅผ ์ฌ๋ฌ ๊ณณ์์ ๋์์ ๋ด์ธ์ฐ๋ฉด์, ์ค์ ๋ก ์ด๋ค ์ฐจ์ด๊ฐ ์๋์ง ํท๊ฐ๋ฆฌ๋ ๋ถ๋ค์ด ๋ง์ต๋๋ค. ์ด๋ฒ ๊ธ์์๋ ํด์ธ์ฌํ ํ์ ์์๋ฃ 0% ๋ฐฉ๋ฒ์ ์ค์ ์๋ฃ์ ํ๊ธฐ๋ฅผ ๋ฐํ์ผ๋ก ์ง์ ...", + "articleType": "travel_guide" + }, + { + "post_id": "2026-07-14_์จ์ด์งํ์๋ฐฉ๋ฒ๊ณผ์๊ธ์ฒ์น์ด์ ๋ฆฌ_9ece9eb2", + "keyword": "์จ์ด์งํ ์๋ฐฉ๋ฒ๊ณผ ์๊ธ์ฒ์น ์ด์ ๋ฆฌ", + "title": "ํญ์ผ์ฒ ์จ์ด์งํ ์๋ฐฉ๋ฒ๊ณผ ์๊ธ์ฒ์น, ๋ณ์๋น๊น์ง ์ฑ๊ธฐ๊ธฐ", + "status": "published", + "source": "auto", + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "blogUrl": "https://hoguasset.blogspot.com/2026/07/blog-post_14.html", + "errorMessage": null, + "createdAt": "2026-07-14T08:02:49.767881", + "publishedAt": "2026-07-14T08:02:50.662623", + "lastAttemptAt": "2026-07-14T08:02:50.662623", + "attempts": 2, + "runNumber": 182, + "wordCount": 4235, + "faqCount": 4, + "category": "์ผ๋ฐ", + "labels": [ + "์จ์ด์งํ์๋ฐฉ", + "ํญ์ผ๋๋น", + "์๊ธ์ฒ์น", + "์๋์ง๋ฐ์ฐ์ฒ", + "๋ฌด๋์์ผํฐ" + ], + "metaDescription": "ํญ์ผ์ฒ ์จ์ด์งํ ์ข ๋ฅ์ ์ฆ์, ์๊ธ์ฒ์น ์์๋ถํฐ ๋ฌด๋์์ผํฐยท์๋์ง๋ฐ์ฐ์ฒ ๊ฐ์ ์ง์ ์ ๋, ์ค์๋ณดํ ์ ์ฉ ์ฌ๋ถ๊น์ง ํ ๋ฒ์ ์ ๋ฆฌํ์ต๋๋ค.", + "contentPreview": "7์ ์ค์์ผ๋ก ์ ์ด๋ค๋ฉด์ ์ ๊ตญ ๊ณณ๊ณณ์ ํญ์ผํน๋ณด๊ฐ ๋ฐ๋ณต๋๊ณ ์์ต๋๋ค. ๋ด์ค์์๋ ๋งค์ผ๊ฐ์ด '์ฒด๊ฐ์จ๋ 35๋', '์จ์ด์งํ ์๊ธ์ค ์ด์ก' ๊ฐ์ ์์์ด ๋์ค๋๋ฐ, ์ฌ์ค ์ด ์ด์ผ๊ธฐ๋ ๋จ์ํ ๊ฑด๊ฐ ๋ฌธ์ ๋ก๋ง ๋๋์ง ์์ต๋๋ค. ๋ณ์๋น, ์ฐ์ ์ฌํด ์ฒ๋ฆฌ, ๋๋ฐฉ๋น ์ง์ถ ์ฆ๊ฐ๊น์ง ๋ชจ๋ ์ฐ๋ฆฌ ๊ฐ๊ณ์ ์ง๊ฐ์ ์ง๊ฒฐ๋๋ ๋ฌธ์ ์ด๊ธฐ ๋๋ฌธ์ ๋๋ค. ๊ธ์ตNEWS๋ ํ์ ๊ธ๋ฆฌยท์ ์ฑ ยท์ธ๊ธ ์ด์ผ๊ธฐ...", + "articleType": "how_to" + }, + { + "post_id": "2026-07-14_์จ์ด์งํ์๋ฐฉ๋ฒ๊ณผ์๊ธ์ฒ์น์ด์ ๋ฆฌ_182c7281", + "keyword": "์จ์ด์งํ ์๋ฐฉ๋ฒ๊ณผ ์๊ธ์ฒ์น ์ด์ ๋ฆฌ", + "title": "์ฌ๋ฆ ์ง๊ดยท์ฌํ ์จ์ด์งํ ์๋ฐฉ๋ฒ๊ณผ ์๊ธ์ฒ์น ์ด์ ๋ฆฌ", + "status": "published", + "source": "auto", + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "blogUrl": "https://hogugolfntraval.blogspot.com/2026/07/blog-post_14.html", + "errorMessage": null, + "createdAt": "2026-07-14T07:51:30.658242", + "publishedAt": "2026-07-14T07:51:31.804250", + "lastAttemptAt": "2026-07-14T07:51:31.804250", + "attempts": 2, + "runNumber": 182, + "wordCount": 4151, + "faqCount": 3, + "category": "์ผ๋ฐ", + "labels": [ + "์จ์ด์งํ์๋ฐฉ๋ฒ", + "์จ์ด์งํ์๊ธ์ฒ์น", + "์ฌ๋ฆ์ฌํ", + "์ฌ๋ฆ์คํฌ์ธ ๊ด๋", + "์ดํ์ง์ฆ์" + ], + "metaDescription": "์ฒด๊ฐ์จ๋๊ฐ ์น์๋ ์ฌ๋ฆ, ํ๋ก์ผ๊ตฌ ์ง๊ด์ด๋ ํด์์์ฅยท๋ฑ์ฐ ์ฌํ ์ค ์จ์ด์งํ์ด ๊ฑฑ์ ๋๋ค๋ฉด ํ์ธํ์ธ์. ์ดํ์ง ์ด๊ธฐ ์ฆ์ ์ฒดํฌ๋ฆฌ์คํธ, ํ์ฅ ์๊ธ์ฒ์น๋ฒ, ๋ณ์ ์ด์ก ๊ธฐ์ค, ์ค๋น๋ฌผ๊น์ง ์ค์ ๊ฒฝํ๊ณผ ์ง๋ณ๊ด๋ฆฌ์ฒญ ์๋ฃ๋ฅผ ํ ๋๋ก ์ ๋ฆฌํ์ต๋๋ค.", + "contentPreview": "7์ ์ค์ ํ๋ก์ผ๊ตฌ ๊ฒฝ๊ธฐ์ฅ์ด๋ ํด์์์ฅ, ์ฌ๋ฆ ํ์คํฐ๋ฒ ํ์ฅ์ ๋ค๋ ์จ ๋ถ๋ค์ด๋ผ๋ฉด ๋ค๋ค ํ ๋ฒ์ฉ ์ด๋ฐ ์๊ฐ์ ํ์ ๊ฒ๋๋ค. '์ค๋ ๋ ์จ ์ง์ง ์ด์ธ์ ์ด๋ค, ์ด๋ฌ๋ค ๋๊ตฌ ํ๋ ์ฐ๋ฌ์ง๋ ๊ฑฐ ์๋?' ์ค์ ๋ก ํญ์ผ ํน๋ณด๊ฐ ๋ฌ ๋ ์ผ์ธ ์ฝ์ํธ๋ ์ถ๊ตฌ์ฅ ์์์์์ ์ด์ง๋ผ์ฆ์ ํธ์ํ๋ฉฐ ์ค๋ ค ๋๊ฐ๋ ๊ด์ค์ ๋ชฉ๊ฒฉํ๋ค๋ ํ๊ธฐ๊ฐ ์จ๋ผ์ธ ์ปค๋ฎค๋ํฐ์ ๋งค๋ ์ฌ๋ฆ๋ง๋ค ์ฌ๋ผ์ต๋๋ค. ์ฌํ์ด...", + "articleType": "how_to" + }, + { + "post_id": "2026-07-14_์จ์ด์งํ์๋ฐฉ๋ฒ๊ณผ์๊ธ์ฒ์น์ด์ ๋ฆฌ_c4bbb1e4", + "keyword": "์จ์ด์งํ ์๋ฐฉ๋ฒ๊ณผ ์๊ธ์ฒ์น ์ด์ ๋ฆฌ", + "title": "2026๋ ์ฌ๋ฆ ์ฌํ ์จ์ด์งํ ์๋ฐฉ๋ฒ๊ณผ ์๊ธ์ฒ์น ์ด์ ๋ฆฌ", + "status": "published", + "source": "auto", + "blogId": "blog1", + "blogName": "HOGU What?", + "blogUrl": "https://www.hoguwhat.com/2026/07/2026_01036540498.html", + "errorMessage": null, + "createdAt": "2026-07-14T07:40:22.212549", + "publishedAt": "2026-07-14T07:40:22.874355", + "lastAttemptAt": "2026-07-14T07:40:22.874355", + "attempts": 2, + "runNumber": 182, + "wordCount": 4235, + "faqCount": 3, + "category": "์ผ๋ฐ", + "labels": [ + "์จ์ด์งํ์๋ฐฉ๋ฒ", + "์ฌ๋ฆ์ฌํ์์ ", + "๊ตญ๋ด์ฌํํ", + "์ฌ๋ฆํด๊ฐ์ค๋น๋ฌผ", + "ํญ์ผ๋๋น" + ], + "metaDescription": "์ฌ๋ฆ ์ฌํ ์ค ์จ์ด์งํ, ๋ฐฉ์ฌํ๋ฉด ์ํํฉ๋๋ค. ์ฆ์ ๊ตฌ๋ถ๋ฒ๋ถํฐ ๋ ๋๊ธฐ ์ ์ฒดํฌ๋ฆฌ์คํธ, ํ์ฅ ์๊ธ์ฒ์น ์์๊น์ง ์ค์ ๊ฒฝํ๊ณผ ๊ณต์ ์๋ฃ๋ฅผ ๋ฐํ์ผ๋ก ์ ๋ฆฌํ์ต๋๋ค.", + "contentPreview": "์ง๋์ฃผ ๊ฐ์๋ ๊ณ๊ณก ์บ ํ์ฅ ํ๊ธฐ ๊ฒ์ํ์ ํ์ด๋ณด๋ค๊ฐ ๋์ ๋๋ ๊ธ์ด ํ๋ ์์์ต๋๋ค. ํ๋ฎ์ ๊ณ๊ณก ํธ๋ ํน์ ํ๋ ์ผํ ์ค ํ ๋ช ์ด ๊ฐ์๊ธฐ ์ด์ง๋ฝ๋ค๋ฉฐ ์ฃผ์ ์์๊ณ , ๋คํํ ๊ทธ๋์์ ๋ฌผ์ ๋ง์๊ฒ ํ๊ณ ์ท์ ํ์ด์ค ๋ค ์ง์ ๋๋ค๋ ๋ด์ฉ์ด์์ต๋๋ค. ํญ์ผํน๋ณด๊ฐ ์์ฃผ ๋ฐ๋ น๋๋ ์์ฆ, ๊ตญ๋ด ์ฌํ์ง ์ปค๋ฎค๋ํฐ๋ง๋ค ์ด๋ฐ ๊ฒฝํ๋ด์ด ์กฐ๊ธ์ฉ ๋๊ณ ์์ต๋๋ค. ์ฌํ ๊ณํ์ ์ธ์ธ ๋ ๋ง์ง...", + "articleType": "how_to" + }, + { + "post_id": "2026-07-14_๋ฏธ๊ตญETF์ง์ ํฌ์ํด๋ดค๋๋์ค์๋ด_fd22813c", + "keyword": "๋ฏธ๊ตญETF ์ง์ ํฌ์ํด๋ดค๋๋ ์ค์๋ด", + "title": "๋ฏธ๊ตญETF ์ง์ ํฌ์ํด๋ดค๋๋ ๊ฒช์ ์ด๋ณด์ ์ค์๋ด ์ด์ ๋ฆฌ", + "status": "published", + "source": "auto", + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "blogUrl": "https://hoguasset.blogspot.com/2026/07/etf.html", + "errorMessage": null, + "createdAt": "2026-07-14T06:02:59.599332", + "publishedAt": "2026-07-14T06:03:00.502188", + "lastAttemptAt": "2026-07-14T06:03:00.502188", + "attempts": 2, + "runNumber": 181, + "wordCount": 3687, + "faqCount": 3, + "category": "์ผ๋ฐ", + "labels": [ + "๋ฏธ๊ตญETF", + "์ํ๊ฐ๋ฏธ", + "ํด์ธ์ฃผ์ํฌ์", + "ํ์ ์์๋ฃ", + "24์๊ฐ์ธํ๊ฑฐ๋" + ], + "metaDescription": "๋ฏธ๊ตญ ETF๋ฅผ ์ง์ ๋งค์ํ๋ฉฐ ๊ฒช์ ํ์ ํ์ด๋ฐ, ์์๋ฃ, 24์๊ฐ ์ธํ๊ฑฐ๋ ๊ด๋ จ ์ค์๋ฅผ ์ ๋ฆฌํ์ต๋๋ค. ์ด๋ณด ํฌ์์๊ฐ ๋์น๊ธฐ ์ฌ์ด ์ฒดํฌํฌ์ธํธ๋ฅผ ํ์ธํด๋ณด์ธ์.", + "contentPreview": "๋ฏธ๊ตญ ETF์ ํฌ์ํด๋ณด๊ณ ์ถ์๋ฐ, ๊ณ์ข ๊ฐ์ค๋ถํฐ ๋งค์ ํ์ด๋ฐ๊น์ง ๋ญ๊ฐ ์ด๋ ๊ฒ ํท๊ฐ๋ฆด๊น์? ์ํ๊ฐ๋ฏธ๋ผ๋ ๋ง์ด ์ต์ํด์ง ๋งํผ ๋ฏธ๊ตญ ์ฃผ์ยทETF ํฌ์๊ฐ ๋์คํ๋์ง๋ง, ๋ง์ ์์ํ๋ ค๊ณ ํ๋ฉด ํ์ ์ ์ธ์ ํ๋ ๊ฒ ๋ง๋์ง, ์์ฐจ๋ ์ด๋ป๊ฒ ๊ณ์ฐํ๋์ง, ์์๋ฃ๋ ์ผ๋ง๋ ๋ผ์ด๋์ง ํ๋ํ๋๊ฐ ๋ค ๋ฏ์ค๊ฒ ๋๊ปด์ง๋๋ค. ํนํ 2026๋ 7์ 7์ผ๋ถํฐ๋ 24์๊ฐ ์ธํ๊ฑฐ๋๊ฐ ๋ณธ๊ฒฉ์ ์ผ...", + "articleType": "investment" + }, + { + "post_id": "2026-07-14_์ฌ๋ฆํด๊ฐ์ฒ ๊ตญ๋ดํผ์์ง๋ฒ ์คํธ์ด์ ๋ฆฌ_7396e114", + "keyword": "์ฌ๋ฆ ํด๊ฐ์ฒ ๊ตญ๋ด ํผ์์ง ๋ฒ ์คํธ ์ด์ ๋ฆฌ", + "title": "2025 ์ฌ๋ฆ์ถ์ ๋ง์กฑ๋ ์์, ๊ตญ๋ด ํผ์์ง ๋ฒ ์คํธ ์ด์ ๋ฆฌ", + "status": "published", + "source": "auto", + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "blogUrl": "https://hogugolfntraval.blogspot.com/2026/07/2025.html", + "errorMessage": null, + "createdAt": "2026-07-14T05:51:38.644811", + "publishedAt": "2026-07-14T05:51:39.828178", + "lastAttemptAt": "2026-07-14T05:51:39.828178", + "attempts": 2, + "runNumber": 181, + "wordCount": 4616, + "faqCount": 3, + "category": "์ผ๋ฐ", + "labels": [ + "์ฌ๋ฆํด๊ฐ", + "๊ตญ๋ดํผ์์ง", + "์ฌ๋ฆ์ถ์ ", + "์ธ์ฒํํํฌํธ์์ ์ถ์ ", + "ํ๊ฐํ์คํฐ๋ฒ" + ], + "metaDescription": "2025 ์ฌ๋ฆ์ถ์ ๋ง์กฑ๋ ์กฐ์ฌ ๊ฒฐ๊ณผ๋ก ์ดํด๋ณธ ๊ตญ๋ด ํผ์์ง ๋ฒ ์คํธ ์ด์ ๋ฆฌ์ ๋๋ค. ์ธ์ฒํํํฌํธ์์ ์ถ์ 1์, ํ๊ฐํ์คํฐ๋ฒ 2์ ๋ฑ ์์๋ณ ํน์ง๊ณผ ๋์๊ฒ ๋ง๋ ์ฌ๋ฆ ํผ์์ง ๊ณ ๋ฅด๋ ๋ฐฉ๋ฒ, 2026๋ ์ฒดํฌ๋ฆฌ์คํธ๊น์ง ํจ๊ป ์ ๋ฆฌํ์ต๋๋ค.", + "contentPreview": "์ด๋ฒ ์ฌ๋ฆ ํด๊ฐ ๊ณํ, ์์ง ๋ชป ์ ํ์ จ๋์? ๋ฐ๋ค๋ ์ข๊ณ ๊ณ๊ณก๋ ์ข์ง๋ง ์์ฆ์ ์ถ์ ํ๋ ์ ๊ณจ๋ผ์ ๋ค๋ ์ค๋ ๊ฒ๋ ์ฌ๋ฆ ํด๊ฐ์ ์๋ก์ด ๊ณต์์ด ๋์ต๋๋ค. ๊ทธ๋ฐ๋ฐ ์ ๊ตญ์ ์๋ ๋ง์ ์ฌ๋ฆ์ถ์ ๊ฐ ์ด๋ฆฌ๋ค ๋ณด๋ '์ด๋๊ฐ ์ง์ง ๋ง์กฑ๋๊ฐ ๋์๋์ง' ๊ฐ์ด ์ ์กํ์ค ํ ๋ฐ์. ๋ง์นจ ํ์ด๋ธ์ ๋ด์ค์ ํ๊ตญ๋ฆฌ์์น๊ฐ ์ง๋ํด ์ฌ๋ฆ ์ ๊ตญ์์ ์ด๋ฆฐ ์ถ์ ๋ค์ ๋์์ผ๋ก ์๋น์ ๋ง์กฑ๋ ์กฐ์ฌ๋ฅผ ...", + "articleType": "analysis" + }, + { + "post_id": "2026-07-14_ํญ๊ณต๊ถ์ทจ์์ง์ฐ๋ณด์์ง์ ์ฒญ๊ตฌํด๋ณด๋์๊ฒ๋๊ฒ_9a9d3347", + "keyword": "ํญ๊ณต๊ถ ์ทจ์ยท์ง์ฐ ๋ณด์ ์ง์ ์ฒญ๊ตฌํด๋ณด๋ ์๊ฒ ๋ ๊ฒ", + "title": "ํญ๊ณต๊ถ ์ทจ์ยท์ง์ฐ ๋ณด์ ์ง์ ์ฒญ๊ตฌํด๋ณด๋ ์๊ฒ ๋ ์ฒดํฌ๋ฆฌ์คํธ", + "status": "published", + "source": "auto", + "blogId": "blog1", + "blogName": "HOGU What?", + "blogUrl": "https://www.hoguwhat.com/2026/07/blog-post_619.html", + "errorMessage": null, + "createdAt": "2026-07-14T05:39:40.306084", + "publishedAt": "2026-07-14T05:39:41.523846", + "lastAttemptAt": "2026-07-14T05:39:41.523846", + "attempts": 2, + "runNumber": 181, + "wordCount": 3110, + "faqCount": 3, + "category": "์ผ๋ฐ", + "labels": [ + "ํญ๊ณต๊ถ์ทจ์", + "์ง์ฐ๋ณด์", + "ํญ๊ณต๊ถํ๋ถ", + "ํด์ธ์ฌํํ", + "ํญ๊ณต์ฌ๋ณด์์ฒญ๊ตฌ" + ], + "metaDescription": "์ ์ฃผ-๊นํฌ ํญ๊ณตํธ 3์๊ฐ ์ง์ฐ์ ์ง์ ๊ฒช๊ณ ๋ณด์์ ์ฒญ๊ตฌํ๋ฉฐ ์๊ฒ ๋ ์ฌ์ ๊ตฌ๋ถ๋ฒ๊ณผ ํ์ ์ฆ๋น ์ฒดํฌ๋ฆฌ์คํธ๋ฅผ ์ ๋ฆฌํ์ต๋๋ค. ์ค์ ์ฒญ๊ตฌ ๊ณผ์ ๊ณผ ํ๊ธฐ๋ฅผ ๋ฐํ์ผ๋ก ์๋ดํฉ๋๋ค.", + "contentPreview": "ํญ๊ณต๊ถ์ด ์ง์ฐ๋๋ฉด ๋ฌด์กฐ๊ฑด ๋ณด์๋ฐ์ ์ ์๋ค๊ณ ์๊ฐํ๋ ๋ถ๋ค์ด ๋ง์ต๋๋ค. ํ์ง๋ง ์๋ฃ๋ฅผ ์กฐ์ฌํด๋ณด๋ ์ค์ ๋ก๋ ๊ทธ๋ ๊ฒ ๋จ์ํ์ง ์์์ต๋๋ค. ๊ณตํญ ์นด์ดํฐ์์ ํํ ๋ฃ๊ฒ ๋๋ '์์ ํญ๊ณตํธ ์ง์ฐ์ ๋ฐ๋ฅธ ๋ฌธ์ '๋ผ๋ ์๋ด ๋ฌธ๊ตฌ ํ๋๋ก ๋ณด์ ์์ฒด๊ฐ ๋ฌด์ฐ๋๋ ์ฌ๋ก๋ ์ ์ง ์์์ต๋๋ค. ์ด๋ฒ ๊ธ์์๋ ํญ๊ณต๊ถ ์ทจ์ยท์ง์ฐ ๋ณด์ ์ฒญ๊ตฌ๋ฅผ ์ค์ ๋ก ์งํํ ์ด์ฉ์๋ค์ ํ๊ธฐ์ ๊ด๋ จ ๋ณด๋๋ฅผ ...", + "articleType": "travel_guide" + }, + { + "post_id": "2026-07-13_์ฃผํ๋ด๋ณด๋์ถ๊ธ๋ฆฌ์ต์ ์ํ2026์ง์ ๋ฐํ_6748160f", + "keyword": "์ฃผํ๋ด๋ณด๋์ถ ๊ธ๋ฆฌ ์ต์ ์ํ 2026 ์ง์ ๋ฐํ ํ์ ๋น๊ต", + "title": "์ฃผํ๋ด๋ณด๋์ถ ๊ธ๋ฆฌ ์ต์ ์ํ 2026, ๋ฐํ ๋น๊ต ์ ์ ๊ผญ ํ์ธํ ๊ฒ๋ค", + "status": "pending", + "source": "auto", + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "blogUrl": "", + "errorMessage": null, + "createdAt": "2026-07-13T23:28:48.042087", + "publishedAt": null, + "lastAttemptAt": "2026-07-13T23:28:48.042087", + "attempts": 1, + "runNumber": 180, + "wordCount": 5024, + "faqCount": 4, + "category": "์ผ๋ฐ", + "labels": [ + "์ฃผํ๋ด๋ณด๋์ถ", + "์ฃผ๋ด๋๊ธ๋ฆฌ", + "์ํ๊ธ๋ฆฌ๋น๊ต", + "2026๊ธ๋ฆฌ", + "ํ๊ตญ์ํ", + "๊ธ์ต๊ฐ๋ ์", + "์ฝํฝ์ค" + ], + "metaDescription": "2026๋ ์ฃผํ๋ด๋ณด๋์ถ ๊ธ๋ฆฌ, ์ํ๋ง๋ค ๋ค๋ฅธ ์กฐ๊ฑด์ ๋ฐํ ํ์ ๋น๊ตํ๋ ๋ฐฉ๋ฒ์ ํ๊ตญ์ํ ํต๊ณ์ ๊ธ์ต๊ฐ๋ ์ ๊ณต์ ์๋ฃ๋ก ์ ๋ฆฌํ์ต๋๋ค.", + "contentPreview": "์์ฆ ๋ถ๋์ฐ ์ปค๋ฎค๋ํฐ๋ ์ํ ์ฐฝ๊ตฌ๋ฅผ ๋ค๋ ์จ ์ฌ๋๋ค ์ด์ผ๊ธฐ๋ฅผ ๋ค์ด๋ณด๋ฉด ๋ค๋ค ํ๋ ๋ง์ด ๋น์ทํฉ๋๋ค. \"์ด๋ ์ํ์ด ์ ์ผ ์ผ์ง ๋ชจ๋ฅด๊ฒ ๋ค\", \"์ธํฐ๋ท์ ๋์จ ๊ธ๋ฆฌ๋ ์ค์ ์๋ด๋ฐ์ ๊ธ๋ฆฌ๊ฐ ๋ค๋ฅด๋ค\"๋ ๊ฒ์ด์ฃ . 2026๋ ๋ค์ด ์ฃผํ๋ด๋ณด๋์ถ ๊ธ๋ฆฌ๋ ์ํ๋ง๋ค, ์ฌ์ง์ด ๊ฐ์ ์ํ ์ง์ ๋ง๋ค๋ ์กฐ๊ธ์ฉ ์ฐจ์ด๊ฐ ๋๋ ๊ฒฝ์ฐ๊ฐ ์์ด์, ๊ฒฐ๊ตญ ๋ฐํ์ ํ์ ์ง์ ๋น๊ตํด๋ณด๋ ์ฌ๋๋ค์ด ๋๊ณ ...", + "articleType": "review" + }, + { + "post_id": "2026-07-13_์ฌํ๋น์บ๋ฆฌ์ด๊ฟํ์ง์ธ๊ธฐ๋ ธํ์ฐ_7407b90c", + "keyword": "์ฌํ ๋น ์บ๋ฆฌ์ด ๊ฟํ ์ง์ธ๊ธฐ ๋ ธํ์ฐ", + "title": "๋น ์บ๋ฆฌ์ด ์ง์ธ๊ธฐ ๋ ธํ์ฐ, ์๋ฃ๋ก ๊ฒ์ฆํ ์ฌํ ์ค๋น ๊ฟํ ์ ๋ฆฌ", + "status": "pending", + "source": "auto", + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "blogUrl": "", + "errorMessage": null, + "createdAt": "2026-07-13T23:23:20.719899", + "publishedAt": null, + "lastAttemptAt": "2026-07-13T23:23:20.719899", + "attempts": 1, + "runNumber": 180, + "wordCount": 4292, + "faqCount": 3, + "category": "์ผ๋ฐ", + "labels": [ + "์ฌํ์ง์ธ๊ธฐ", + "์บ๋ฆฌ์ด์ ๋ฆฌํ", + "์ฌํ๊ฟํ", + "์ง์ธ๊ธฐ๋ ธํ์ฐ", + "์ฌํ์ค๋น", + "์บ๋ฆฌ์ด์ง์ ๋ฆฌ", + "์ธ๋ฉด๋๊ตฌ์ ๋ฆฌ" + ], + "metaDescription": "๋น ์บ๋ฆฌ์ด ์ง์ธ๊ธฐ ๋ ธํ์ฐ๋ฅผ ์๋ฃ๋ก ๊ฒ์ฆํ์ต๋๋ค. ๋ฉด๋๋ ํด๋ฆฝ ๊ฐ์ธ๊ธฐ, ์ก์ฒด ์ฉ๊ธฐ ๋ฐ๋ด๋ฒ, ์ผํ์ฉ ์ธ๋ฉด๋๊ตฌ ํ์ฉ, ์ ๋ฐ ์ ๋ฆฌ๋ฒ๊น์ง ์ฌํ ์ง์ธ๊ธฐ ์ค์ ํ์ ์ ๋ฆฌํ์ต๋๋ค.", + "contentPreview": "์ฌ๋ฆํด๊ฐ ์์ฆ์ด ๋ค๊ฐ์ค๋ฉด ์ท์ฅ ์์ ์ฌ๋ ค๋ ์บ๋ฆฌ์ด๋ถํฐ ๊บผ๋ด๊ฒ ๋ฉ๋๋ค. ๋ง์ ๋๊ป์ ์ด์ด ๋ณด๋ฉด ํ ๋น ์บ๋ฆฌ์ด ์์ ๋ญ๋ก ์ฑ์์ผ ํ ์ง, ์ด๋ค ์์๋ก ์ง์ ๋ฃ์ด์ผ ๋์ค์ ๊ณตํญ์ด๋ ์์์์ ๊ณ ์ํ์ง ์์์ง ๋ง๋งํ ๋๊ฐ ๋ง์ต๋๋ค. ํนํ ์ฅ๊ธฐ ์ฌํ์ด๋ ๋ฐฐ๋ญ์ฌํ์ฒ๋ผ ์ง ๊ณต๊ฐ์ด ๋น ๋ฏํ ์ํฉ์์๋ ์ธ๋ฉด๋๊ตฌ ํ๋, ์ ๋ฐ ํ๋ ๋ฃ๋ ์๋ฆฌ๊น์ง ๊ณ ๋ฏผํ๊ฒ ๋์ฃ . ์ด๋ฒ ๊ธ์์๋ ์ค๋...", + "articleType": "travel_guide" + }, + { + "post_id": "2026-07-13_์ฌํ์๋ณดํ๊ฐ์ ๊ผญํด์ผํ ๊น์ค์ ๋ณด์๊ฒฝํํ๊ธฐ_15575eed", + "keyword": "์ฌํ์๋ณดํ ๊ฐ์ ๊ผญ ํด์ผ ํ ๊น ์ค์ ๋ณด์ ๊ฒฝํ ํ๊ธฐ", + "title": "์ฌํ์๋ณดํ ๊ฐ์ ๊ผญ ํด์ผ ํ ๊น? ์ค์ ๋ณด์ ๊ฒฝํ์ผ๋ก ์์๋ณธ ํ๊ธฐ", + "status": "published", + "source": "auto", + "blogId": "blog1", + "blogName": "HOGU What?", + "blogUrl": "https://www.hoguwhat.com/2026/07/blog-post_14.html", + "errorMessage": null, + "createdAt": "2026-07-13T23:12:12.849193", + "publishedAt": "2026-07-13T23:12:13.514769", + "lastAttemptAt": "2026-07-13T23:12:13.514769", + "attempts": 2, + "runNumber": 180, + "wordCount": 3255, + "faqCount": 3, + "category": "์ผ๋ฐ", + "labels": [ + "์ฌํ์๋ณดํ", + "์ฌํ์๋ณดํ ๊ฐ์ ", + "ํด์ธ์ฌํ ์ค๋น", + "ํญ๊ณต๊ธฐ ์ง์ฐ ๋ณด์", + "์ค์ํ ๋ณดํ" + ], + "metaDescription": "ํญ๊ณต๊ธฐ ์ง์ฐ์ ์ง์ ๊ฒช์ผ๋ฉฐ ์๊ฒ ๋ ์ฌํ์๋ณดํ ์ค์ํ๊ณผ ์ ์กํ์ ์ฐจ์ด, ๊ฐ์ ์ ํ์ธํด์ผ ํ ์ฒดํฌํฌ์ธํธ๋ฅผ ์ค์ ๋ณด์ ๊ฒฝํ์ ๋ฐํ์ผ๋ก ์ ๋ฆฌํ์ต๋๋ค.", + "contentPreview": "ํด์ธ์ฌํ ์ค๋นํ ๋๋ง๋ค ์ฌํ์๋ณดํ ๊ฐ์ ์ ๋๊ณ ๊ณ ๋ฏผํ๋ ๋ถ๋ค์ด ๋ง์ต๋๋ค. '์ด์ฐจํผ ๋ณ์ผ ์์ ํ ๋ฐ ๊ตณ์ด ํ์ํ ๊น' ์ถ๋ค๊ฐ๋, ๋ง์ ๋นํ๊ธฐ๊ฐ ์ง์ฐ๋๊ฑฐ๋ ์ง์ ์์ด๋ฒ๋ฆฌ๋ฉด ๋ณดํ ์๊ฐ์ด ๊ฐ์ ํด์ง๋๋ค. ๊ทธ๋ฐ๋ฐ ์ต๊ทผ ํ ์ธ๋ก ๋ณด๋๋ฅผ ๋ณด๋ฉด ์ฌํ์๋ณดํ์ ๊ฐ์ ํ๋๋ฐ๋ ํญ๊ณต๊ธฐ ์ง์ฐ ๋ณด์๊ธ์ ๋ฐ์ง ๋ชปํ ์ฌ๋ก๊ฐ ์์ด์, ๋จ์ํ '๊ฐ์ ํ๋ค'๋ ์ฌ์ค๋ง์ผ๋ก๋ ์์ฌํ ์ ์๋ค๋ ๊ฑธ ์...", + "articleType": "travel_guide" + }, + { + "post_id": "2026-07-13_ETF์ฒซ๋งค์ํ์ค์๋ด๊ณต๊ฐ_2c686cef", + "keyword": "ETF ์ฒซ ๋งค์ ํ ์ค์๋ด ๊ณต๊ฐ", + "title": "ETF ์ฒซ ๋งค์ ํ ์ค์๋ด ๊ณต๊ฐ, ์ด๋ณด ํฌ์์๋ค์ด ์์ฃผ ๊ฒช๋ 3๊ฐ์ง ํจ์ ", + "status": "skipped", + "source": "auto", + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "blogUrl": "", + "errorMessage": null, + "createdAt": "2026-07-13T12:55:11.541468", + "publishedAt": null, + "lastAttemptAt": "2026-07-13T12:55:11.541468", + "attempts": 1, + "runNumber": 179, + "wordCount": 3023, + "faqCount": 3, + "category": "์ผ๋ฐ", + "labels": [ + "ETFํฌ์", + "ETF์ฒซ๋งค์", + "ETF์ค์", + "์๋ฐฐ๋นETF", + "์ด๋ณดํฌ์์", + "๋ถ์ฐํฌ์", + "์คํ์ด์คX ETF" + ], + "metaDescription": "ETF ์ฒซ ๋งค์ ํ ์ค์๋ด์ ์กฐ์ฌํด๋ณด๋ ์ฆ์ ๋งค๋งค, ํธ์ ์ข ๋ชฉ ๋ฏธํ์ธ, ์๋ฐฐ๋น ์คํด 3๊ฐ์ง๊ฐ ๋ฐ๋ณต๋ฉ๋๋ค. ์ด๋ณด ํฌ์์๊ฐ ๋งค์ ์ ํ์ธํด์ผ ํ ์ฒดํฌ๋ฆฌ์คํธ๋ฅผ ์ ๋ฆฌํ์ต๋๋ค.", + "contentPreview": "ETF๋ ์ด๋ ต์ง ์๋ค๊ณ ๋ค ํฉ๋๋ค. ์ง์๋ง ๋ฐ๋ผ๊ฐ๋ ๊ฐ๋ณ ์ข ๋ชฉ๋ณด๋ค ์์ ํ๊ณ , ์์ก์ผ๋ก๋ ๋ถ์ฐํฌ์๊ฐ ๋๋ค๋ ๋ง์ ๋ฃ๊ณ ์ฒซ ๋งค์ ๋ฒํผ์ ๋๋ฅธ ๋ถ๋ค์ด ์ต๊ทผ ๋ถ์ฉ ๋์์ต๋๋ค. ๊ทธ๋ฐ๋ฐ ๋ง์ ๊ณ์ข๋ฅผ ์ด์ด๋ณด๋ฉด ์์๊ณผ ๋ค๋ฅธ ํ๋ฆ์ ๋นํฉํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. '๋ถ์ฐํฌ์๋๊น ์์ ํ๊ฒ ์ง'๋ผ๋ ๋ง์ฐํ ๊ธฐ๋์ ์ค์ ๋งค๋งค ์ดํ ๊ฒช๋ ์ํฉ ์ฌ์ด์๋ ๊ฝค ํฐ ๊ฐ๊ทน์ด ์์ต๋๋ค. ์ด ๊ธ์์๋...", + "articleType": "investment" + }, + { + "post_id": "2026-07-13_์ฅ๋ง์ฒ ์ค๋ด์ฌํ์ง์ถ์ฒ์ฝ์ค_df13d2ab", + "keyword": "์ฅ๋ง์ฒ ์ค๋ด ์ฌํ์ง ์ถ์ฒ ์ฝ์ค", + "title": "์ฅ๋ง์ฒ ์ค๋ด ์ฌํ์ง ์ถ์ฒ ์ฝ์ค, ๋น ์๋ ์์ฐฌ ํ๋ฃจ ๋ง๋ค๊ธฐ", + "status": "published", + "source": "auto", + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "blogUrl": "https://hogugolfntraval.blogspot.com/2026/07/blog-post_547.html", + "errorMessage": null, + "createdAt": "2026-07-13T12:47:23.430284", + "publishedAt": "2026-07-13T12:47:24.651260", + "lastAttemptAt": "2026-07-13T12:47:24.651260", + "attempts": 2, + "runNumber": 179, + "wordCount": 4665, + "faqCount": 2, + "category": "์ผ๋ฐ", + "labels": [ + "์ฅ๋ง์ฒ ์ฌํ", + "์ค๋ด์ฌํ์ง", + "์ ์ฃผ๋์ฌํ", + "๋ธ๋ฆญ์บ ํผ์ค", + "์ฉ์ธ์ฌํ" + ], + "metaDescription": "์ฅ๋ง์ฒ ์ ๋น๊ฐ ์๋ ์์ฐฌ ํ๋ฃจ๋ฅผ ๋ณด๋ผ ์ ์๋ ์ฅ๋ง์ฒ ์ค๋ด ์ฌํ์ง ์ถ์ฒ ์ฝ์ค๋ฅผ ์ ๋ฆฌํ์ต๋๋ค. ์ ์ฃผ ๋ธ๋ฆญ์บ ํผ์ค ๊ด๋ํ ์ฝ์ค์ ์ฉ์ธ ํ๋ก์ฐ ํ์ฐ์ค ์ฒดํํ ์ฝ์ค๋ฅผ ๋ฌถ์ด ์ง๋ ๋ฐฉ๋ฒ, ์ด๋ ๋์ ๊ณผ ์ฃผ์ํ ์ , ์ด์ฉ ํ๊น์ง ํ ๋ฒ์ ํ์ธํด๋ณด์ธ์.", + "contentPreview": "์ฃผ๋ง ๋ ์จ ์๋ณด๋ฅผ ํ์ธํ๋๋ฐ ๋ ๋น ์์์ด๋ผ ๊ณํ์ด ๋ฌด๋์ง ๊ฒฝํ, ํ ๋ฒ์ฏค ์์ผ์ค ๊ฒ๋๋ค. ์ฅ๋ง์ฒ ์๋ ์์ด์ ํจ๊ป๋ ์น๊ตฌ๋ค๋ผ๋ฆฌ๋ ์ผ์ธ ์ผ์ ์ ์ง๊ธฐ๊ฐ ์ ๋งคํด์ ๊ฒฐ๊ตญ ์ง์์ ๋น๊ตด๋ค ํ๋ฃจ๋ฅผ ํ๋ ค๋ณด๋ด๋ ๊ฒฝ์ฐ๊ฐ ๋ง์๋ฐ์. ์ด๋ด ๋ ํ์ํ ๊ฒ ๋ฐ๋ก ํ์คํ ์ฅ๋ง์ฒ ์ค๋ด ์ฌํ์ง ์ถ์ฒ ์ฝ์ค์ ๋๋ค. ๋น๊ฐ ์ค๋ ๋ง๋ ์๊ด์์ด ์ฆ๊ธธ ๊ฑฐ๋ฆฌ๊ฐ ์๋ ๊ณณ๋ค์ ๋ฏธ๋ฆฌ ์กฐ์ฌํด๋๋ฉด, ๊ฐ์๊ธฐ ...", + "articleType": "travel_guide" + }, + { + "post_id": "2026-07-13_ํด์ธ์ฌํ์ค๋น๋ณดํํ์ํ์ง์ง์ ๋น๊ตํด๋ดค๋๋_0f31de31", + "keyword": "ํด์ธ์ฌํ ์ค๋น๋ณดํ ํ์ํ์ง ์ง์ ๋น๊ตํด๋ดค๋๋", + "title": "ํด์ธ์ฌํ ์ค๋น๋ณดํ ํ์ํ์ง ์ง์ ๋น๊ตํด๋ดค๋๋ (2026๋ ๊ธฐ์ค)", + "status": "pending", + "source": "auto", + "blogId": "blog1", + "blogName": "HOGU What?", + "blogUrl": "", + "errorMessage": null, + "createdAt": "2026-07-13T12:39:09.571292", + "publishedAt": null, + "lastAttemptAt": "2026-07-13T12:39:09.571292", + "attempts": 1, + "runNumber": 179, + "wordCount": 3390, + "faqCount": 4, + "category": "์ผ๋ฐ", + "labels": [ + "ํด์ธ์ฌํ์ค๋น๋ณดํ", + "์ฌํ์๋ณดํ", + "์ค์๋ณดํ๋น๊ต", + "ํด์ธ์ฌํ๋ณดํ", + "์ฌํ์๋ณดํํน์ฝ", + "ํด์ธ์ฌํ์ค๋น", + "๋ณดํ๋น๊ต" + ], + "metaDescription": "ํด์ธ์ฌํ ์ค๋น๋ณดํ์ด ๊ตญ๋ด ์ค์๋ณดํ๊ณผ ์ด๋ป๊ฒ ๋ค๋ฅธ์ง, ์ค๋ณต๋ณด์์ด ์ ๋๋ ์ด์ ์ ๊ฐ์ ์ ์ฒดํฌ๋ฆฌ์คํธ๋ฅผ ์๋ฃ ๊ธฐ๋ฐ์ผ๋ก ๋น๊ต ์ ๋ฆฌํ์ต๋๋ค.", + "contentPreview": "์ฌ๋ฆํด๊ฐ์ฒ ์ด ๋ค๊ฐ์ค๋ฉด์ ํญ๊ณต๊ถ๊ณผ ์์๋ ๋ค ์์ฝํด๋๋๋ฐ, ๋ง์ง๋ง์ ๊ผญ ๊ฑธ๋ฆฌ๋ ํญ๋ชฉ์ด ํ๋ ์์ต๋๋ค. ๋ฐ๋ก ์ฌํ์๋ณดํ, ๊ทธ์ค์์๋ '์ค๋น๋ณดํ(์ค์ํน์ฝ)'์ ๋ฃ์์ง ๋ง์ง์ ๋ํ ๊ณ ๋ฏผ์ ๋๋ค. ์ด๋ฏธ ๊ตญ๋ด์์ ์ค์์๋ฃ๋ณดํ์ ๋งค๋ฌ ๋ด๊ณ ์๋๋ฐ ํด์ธ์ฌํ ๊ฐ ๋ ๋ ์ค๋น๋ฅผ ๋ค์ด์ผ ํ๋์ง, ์๋๋ฉด ๊ทธ๋ฅ ๊ธฐ๋ณธํ ์ฌํ์๋ณดํ๋ง ๋ค์ด๋ ๋๋์ง ํท๊ฐ๋ฆฌ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. ๋ง๋ฆฐํํ๋...", + "articleType": "travel_guide" + }, + { + "post_id": "2026-07-13_์ผ์ฑ๋ ธ์กฐํธ๋จ๋ฐ๋์ฒดํฌ์๋ฐ๋_6427df81", + "keyword": "์ผ์ฑ ๋ ธ์กฐ ํธ๋จ ๋ฐ๋์ฒด ํฌ์ ๋ฐ๋", + "title": "์ผ์ฑ ๋ ธ์กฐ, ํธ๋จ ๋ฐ๋์ฒด ํฌ์ 84% ๋ฐ๋โฆ๋ฐฐ๊ฒฝ๊ณผ ์์ ์ ๋ฆฌ", + "status": "published", + "source": "auto", + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "blogUrl": "https://hoguasset.blogspot.com/2026/07/84.html", + "errorMessage": null, + "createdAt": "2026-07-13T08:52:05.302027", + "publishedAt": "2026-07-13T08:52:06.293601", + "lastAttemptAt": "2026-07-13T08:52:06.293601", + "attempts": 2, + "runNumber": 178, + "wordCount": 3864, + "faqCount": 3, + "category": "์ผ๋ฐ", + "labels": [ + "์ผ์ฑ์ ์", + "์ผ์ฑ์ ์๋ ธ์กฐ", + "ํธ๋จ๋ฐ๋์ฒด", + "๋ฐ๋์ฒดํฌ์", + "์ด๊ธฐ์ ๋ ธ์กฐ" + ], + "metaDescription": "์ผ์ฑ์ ์ ์ด๊ธฐ์ ๋ ธ์กฐ๊ฐ ํธ๋จ ๋ฐ๋์ฒด ํฌ์์ ์กฐํฉ์ 84%๊ฐ ๋ฐ๋ํ๋ค๊ณ ๋ฐํ์ต๋๋ค. ๋ฉ๊ฐํ๋ก์ ํธ ๋ฐฐ๊ฒฝ๊ณผ ๋ ธ์กฐ ๋ฐ๋ ์ด์ , ํฌ์์ยท์ง์ญ ๊ฒฝ์ ๊ฐ ํ์ธํด์ผ ํ ์์ ์ ์ ๋ฆฌํ์ต๋๋ค.", + "contentPreview": "์ผ์ฑ์ ์ ์ฃผ์์ ๋ค๊ณ ์๊ฑฐ๋ ๋ฐ๋์ฒด ๊ด๋ จ ์ฐ์ ์ ๊ด์ฌ ์๋ ๋ถ์ด๋ผ๋ฉด ์ด๋ฒ ์์์ด ๊ทธ๋ฅ ์ง๋์น ์ ์์ ๊ฒ๋๋ค. ๋ํต๋ น๊น์ง ๋์์ ๋ฐํํ ์์ฒ์กฐ์ ๊ท๋ชจ์ ๋ฉ๊ฐํ๋ก์ ํธ์, ์ ์ ๊ทธ ํ์ฌ ๋ ธ๋์ ๋๋ค์๊ฐ ๋ฐ๋ํ๋ค๋ ์กฐ์ฌ ๊ฒฐ๊ณผ๊ฐ ๋์๋ค๋ฉด ์ด๋ค ์๊ฐ์ด ๋์๋์? ํฌ์ ๊ณํ์ด ํ๋ค๋ฆด ์๋ ์๋ค๋ ์ ํธ์ผ ์๋, ์๋๋ฉด ํ์ ๊ณผ์ ์ ์ผ์์ ์ก์์ผ ์๋ ์์ต๋๋ค. ์ด๋ฒ ๊ธ...", + "articleType": "investment" + }, + { + "post_id": "2026-07-13_์ผ์ฑ๋ ธ์กฐํธ๋จ๋ฐ๋์ฒดํฌ์๋ฐ๋_ec598f19", + "keyword": "์ผ์ฑ ๋ ธ์กฐ ํธ๋จ ๋ฐ๋์ฒด ํฌ์ ๋ฐ๋", + "title": "์ผ์ฑ์ ์ ๋ ธ์กฐ ํธ๋จ ๋ฐ๋์ฒด ํฌ์ ๋ฐ๋, ๋ฐฐ๊ฒฝ๊ณผ ์์ ์ ๋ฆฌ", + "status": "published", + "source": "auto", + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "blogUrl": "https://hogugolfntraval.blogspot.com/2026/07/blog-post_13.html", + "errorMessage": null, + "createdAt": "2026-07-13T08:40:23.635854", + "publishedAt": "2026-07-13T08:40:24.870846", + "lastAttemptAt": "2026-07-13T08:40:24.870846", + "attempts": 2, + "runNumber": 178, + "wordCount": 4158, + "faqCount": 3, + "category": "์ผ๋ฐ", + "labels": [ + "์ผ์ฑ์ ์ ๋ ธ์กฐ", + "ํธ๋จ ๋ฐ๋์ฒด ํฌ์", + "๋ฐ๋์ฒด ํฌ์ ๋ฐ๋", + "์ผ์ฑ์ ์ ์ง๋ถ", + "๋ ธ์ฌ์ ํ์" + ], + "metaDescription": "์ผ์ฑ์ ์ ๋ ธ์กฐ๊ฐ ํธ๋จ ๋ฐ๋์ฒด ํฌ์ ๊ณํ์ ์ ์คํ ์ ์ฅ์ ๋ฐํ ๋ฐฐ๊ฒฝ์ ์ ๋ฆฌํ์ต๋๋ค. ๋ ธ์กฐ๊ฐ ์ง์ ํ ์ ๋ ฅ ๊ณต๊ธ ๋ฌธ์ ์ ๊ทผ๋ก์๊ฐ ์ ์ฑ , ์ ๋ถ์ ๋ ธ์ฌ์ ํ์ ์์ฒญ๊ณผ ํ์ฌ ์ํฉ๊น์ง ๊ณต๊ฐ ์๋ฃ๋ฅผ ๋ฐํ์ผ๋ก ํ์ธํด๋ณด์ธ์.", + "contentPreview": "ํธ๋จ์ ๋๊ท๋ชจ ๋ฐ๋์ฒด ๊ณต์ฅ์ด ๋ค์ด์ ๋ค๋ ์ด์ผ๊ธฐ, ์ต๊ทผ ๋ด์ค์์ ํ ๋ฒ์ฏ์ ์ ํด๋ณด์ จ์ ๊ฒ๋๋ค. ๊ทธ๋ฐ๋ฐ ์ ์ ์ผ์ฑ์ ์ ์์์, ๊ทธ๊ฒ๋ ํ์ฌ์ ์ต๋ ๋ ธ๋์กฐํฉ์ด ์ด ํฌ์ ๊ณํ์ ๋ํด ์ ์คํ ๋ชฉ์๋ฆฌ๋ฅผ ๋๋ค๋ ์์์ ์๋์ ์ผ๋ก ๋ ์๋ ค์ง ํธ์ ๋๋ค. ์ ํํ ๋ ธ์กฐ๊ฐ, ๊ทธ๊ฒ๋ ์ง์ญ ๊ท ํ๋ฐ์ ์ด๋ผ๋ ๋ช ๋ถ์ด ๋๋ ทํ ์ฌ์ ์ ๋ฐ๋ ์ทจ์ง์ ์ ์ฅ์ ๋ฐํ์๊น์. ์ ๋ง๋ฆฐํํ๋ ์ฒ์ ์ด...", + "articleType": "investment" + }, + { + "post_id": "2026-07-13_์ผ์ฑ๋ ธ์กฐํธ๋จ๋ฐ๋์ฒดํฌ์๋ฐ๋_0ccda86f", + "keyword": "์ผ์ฑ ๋ ธ์กฐ ํธ๋จ ๋ฐ๋์ฒด ํฌ์ ๋ฐ๋", + "title": "์ผ์ฑ ๋ ธ์กฐ ํธ๋จ ๋ฐ๋์ฒด ํฌ์ ๋ฐ๋, ํฌ์์ ์ฒดํฌํฌ์ธํธ", + "status": "published", + "source": "auto", + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "blogUrl": "https://hoguasset.blogspot.com/2026/07/blog-post_15.html", + "errorMessage": null, + "createdAt": "2026-07-13T08:23:32.920777", + "publishedAt": "2026-07-13T08:23:34.170544", + "lastAttemptAt": "2026-07-13T08:23:34.170544", + "attempts": 2, + "runNumber": 178, + "wordCount": 2667, + "faqCount": 3, + "category": "์ผ๋ฐ", + "labels": [ + "์ผ์ฑ์ ์", + "ํธ๋จ ๋ฐ๋์ฒด", + "์ผ์ฑ ๋ ธ์กฐ", + "๋ฐ๋์ฒด ํด๋ฌ์คํฐ", + "์ผ์ฑ์ ์ ์ฃผ๊ฐ" + ], + "metaDescription": "์ผ์ฑ ๋ ธ์กฐ๊ฐ ํธ๋จ ๋ฐ๋์ฒด ํฌ์์ ๋ฐ๋ ์ ์ฅ์ ๋ธ ๋ฐฐ๊ฒฝ๊ณผ ํฌ์์๊ฐ ํ์ธํด์ผ ํ ์ฒดํฌ๋ฆฌ์คํธ, ์ฑํฅ๋ณ ๋์๋ฒ์ ์ ๋ฆฌํ์ต๋๋ค. ๋ ธ์ฌ์ ํ์ ์ผ์ ๊น์ง ํจ๊ป ์ง์ด๋ด ๋๋ค.", + "contentPreview": "ํธ๋จ์ ๋ฐ๋์ฒด ํน 6๊ธฐ ์ด์์ ์ง๋๋ค๋ ์ด๋ํ ๋ฐํ๊ฐ ๋์จ ์ง ์ผ๋ง ์ ๋๋๋ฐ, ์ด๋ฒ์ ๋ ธ์กฐ๊ฐ ๋ฐ๋ ๋ชฉ์๋ฆฌ๋ฅผ ๋๋ค๋ ์์์ด ๋ค๋ฆฝ๋๋ค. ์ผ์ฑ์ ์ ์ฃผ์์ ๋ค๊ณ ์๊ฑฐ๋ ๋ฐ๋์ฒด ๊ด๋ จ ์ข ๋ชฉ์ ์ง์ผ๋ณด๋ ์ ์ฅ์ด๋ผ๋ฉด ์ด ๊ฐ๋ฑ์ด ์ค์ ๋ก ํฌ์ ํ๋จ์ ์ด๋ค ์ํฅ์ ์ฃผ๋์ง ๊ถ๊ธํ์ค ๊ฒ๋๋ค. ์ ์ญ์ ๊ด๋ จ ๊ธฐ์ฌ๋ค์ ํ๋์ฉ ์ง์ด๋ณด๋ฉด์, ์ด ์ด์๊ฐ ๋จ์ํ ๋ ธ์ฌ ๊ฐ๋ฑ์ ๋์ด ์ผ์ฑ ๋ฐ๋...", + "articleType": "investment", + "migratedAt": "2026-07-15T03:44:32.054054" + }, + { + "post_id": "2026-07-13_์์ด์ปจ์ ๊ธฐ์ธ์ ์ฝ_62c05c16", + "keyword": "์์ด์ปจ ์ ๊ธฐ์ธ ์ ์ฝ", + "title": "์์ด์ปจ ์ ๊ธฐ์ธ ์ ์ฝ๋ฒ, ํ์ ์๋์ง์บ์๋ฐฑ ์ ์ฒญ ํ๊ธฐ", + "status": "published", + "source": "auto", + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "blogUrl": "https://hoguasset.blogspot.com/2026/07/blog-post_13.html", + "errorMessage": null, + "createdAt": "2026-07-13T06:34:43.030855", + "publishedAt": "2026-07-13T06:34:44.305271", + "lastAttemptAt": "2026-07-13T06:34:44.305271", + "attempts": 2, + "runNumber": 177, + "wordCount": 3910, + "faqCount": 4, + "category": "์ผ๋ฐ", + "labels": [ + "์์ด์ปจ ์ ๊ธฐ์ธ ์ ์ฝ", + "ํ์ ์๋์ง์บ์๋ฐฑ", + "์ ๊ธฐ์๊ธ ๋์ง์ ", + "์ฌ๋ฆ์ฒ ์ ๊ธฐ์๊ธ", + "์๋์ง๋ฐ์ฐ์ฒ" + ], + "metaDescription": "์ฌ๋ฆ์ฒ ์์ด์ปจ ์ ๊ธฐ์ธ ๋๋ฌธ์ ๊ณ ๋ฏผ์ด๋ผ๋ฉด ํ์ ์๋์ง์บ์๋ฐฑ์ ํ์ธํด๋ณด์ธ์. ์ ์ฒญ ๋ฐฉ๋ฒ๋ถํฐ ์ค์ ๋ฐ์ ์บ์๋ฐฑ ๊ธ์ก, ์ ๊ธฐ์ธ ์๋ผ๋ ์ค์ฒ ์ต๊ด๊น์ง ๊ฒฝํ์ ๋ฐํ์ผ๋ก ์ ๋ฆฌํ์ต๋๋ค.", + "contentPreview": "7์ ์ค์, ๋ฒ์จ ์์ด์ปจ ์์ด๋ ํ๋ฃจ๋ ๋ชป ๋ฒํฐ๋ ๋ ์จ๊ฐ ์ด์ด์ง๊ณ ์์ต๋๋ค. ์ ๋ ๋ฉฐ์น ์ ๊ด๋ฆฌ๋น ๊ณ ์ง์๋ฅผ ๋ณด๊ณ ๊น์ง ๋๋๋๋ฐ์, ์๋ ์ด๋ง๋๋ณด๋ค ์ ๊ธฐ์๊ธ์ด ํ ๋ด ๊ฑธ ๋ณด๊ณ '์ด๋ฌ๋ค 8์ ๊ณ ์ง์๋ ์ด๋ป๊ฒ ๋๋ ๊ฑฐ์ง' ์ถ๋๋ผ๊ณ ์. ์ฃผ๋ณ ๋๋ฃ๋ค๋ ๋ค๋ค ๋น์ทํ ์๊ธฐ๋ฅผ ํฉ๋๋ค. ์์ด์ปจ ํ ๋ ํ์์ ๋ฟ์ธ๋ฐ ์ ์ด๋ ๊ฒ ์๊ธ์ด ๋ฐ๋์ง, ๊ทธ๋ฆฌ๊ณ ๊ทธ ์๊ธ์ ์กฐ๊ธ์ด๋ผ๋ ๋...", + "articleType": "analysis" + }, + { + "post_id": "2026-07-13_ํญ์ผ๋๋น๋ฐฉ๋ฒ_1e55a8ef", + "keyword": "ํญ์ผ ๋๋น ๋ฐฉ๋ฒ", + "title": "์ผ๊ตฌ์ฅ ์ง๊ด๋ถํฐ ์ฌ๋ฆํด๊ฐ๊น์ง, ํญ์ผ ๋๋น ๋ฐฉ๋ฒ ์ง์ ๊ฒช์ด๋ณด๊ณ ์ ๋ฆฌํ์ต๋๋ค (2026๋ 7์ ๊ธฐ์ค)", + "status": "pending", + "source": "auto", + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "blogUrl": "", + "errorMessage": null, + "createdAt": "2026-07-13T06:28:21.829002", + "publishedAt": null, + "lastAttemptAt": "2026-07-13T06:28:21.829002", + "attempts": 1, + "runNumber": 177, + "wordCount": 2111, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "ํญ์ผ๋๋น", + "์ฌ๋ฆํด๊ฐ", + "์ผ๊ตฌ์ฅ์ง๊ด", + "์ฌํํ", + "์จ์ด์งํ", + "์ฟจ๋ง์์ดํ ", + "์ฌ๋ฆ์ฌํ์ง" + ], + "metaDescription": "์ผ๊ตฌ์ฅ ์ง๊ด๊ณผ ์ฌ๋ฆ ์ฌํ์์ ์ง์ ๊ฒช์ ํญ์ผ ๋๋น ๋ฐฉ๋ฒ์ ์ ๋ฆฌํ์ต๋๋ค. ์ฟจ๋ง ์์ดํ ์ค์ฌ์ฉ ํ๊ธฐ, ์จ์ด์งํ ๋์ฒ๋ฒ, 2026๋ 7์ ๊ธฐ์ค ๊ตฌ๋งค ์ ๋ณด๊น์ง ์์งํ๊ฒ ๊ณต์ ํฉ๋๋ค.", + "contentPreview": "์ง๋์ฃผ ํ ์์ผ, ์ ์ค์ผ๊ตฌ์ฅ์ ์ง๊ด์ ๊ฐ๋ค๊ฐ ์ ๋ง ์ฃฝ์ ๋ปํ์ต๋๋ค. 3๋ฃจ ์์์ ์ธ์ผ ์ชฝ ์๋ฆฌ์๋๋ฐ ์คํ 2์ ๋ฎ๊ฒฝ๊ธฐ๋ผ ๋ก๋ณ์ ๊ทธ๋๋ก ๋ง์๊ฑฐ๋ ์. ์ฒด๊ฐ์จ๋ 38๋๋ผ๋ ๊ธฐ์์ฒญ ๋ฌธ์๋ฅผ ๋ฐ๊ณ ๋ '์ค๋ง ๊ทธ ์ ๋๊ฒ ์ด' ํ๊ณ ๋๊ฐ๋ค๊ฐ 3ํ๋ง๋ ๋ชป ์ฑ์ฐ๊ณ ๊ทธ๋๋ง ์ฐพ์ ํค๋งธ์ต๋๋ค. ๊ทธ๋ ์ดํ๋ก ํญ์ผ ๋๋น๋ฅผ ์ ๋๋ก ์ ํ๋ฉด ์ฌํ์ด๋ ์คํฌ์ธ ๊ด๋์ด๋ ๊ทธ๋ ํ๋ฃจ๋ฅผ ํต์งธ๋ก ๋ง์น๋ค...", + "articleType": "how_to" + }, + { + "post_id": "2026-07-13_์์ก์ฌํ ํฌํ๋์์ํ๋๋ฐฉ๋ฒ2026_b0cd3738", + "keyword": "์์ก ์ฌํ ํฌ ํ๋ ์์ํ๋ ๋ฐฉ๋ฒ 2026", + "title": "์์ก ์ฌํ ํฌ ํ๋ ์์ํ๋ ๋ฐฉ๋ฒ 2026, ์ 10๋ง์ ํ๊ธฐ", + "status": "published", + "source": "auto", + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "blogUrl": "https://hoguasset.blogspot.com/2026/07/2026-10.html", + "errorMessage": null, + "createdAt": "2026-07-13T06:20:20.380873", + "publishedAt": "2026-07-13T06:20:21.154441", + "lastAttemptAt": "2026-07-13T06:20:21.154441", + "attempts": 2, + "runNumber": 177, + "wordCount": 3019, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "์์ก์ฌํ ํฌ", + "ํ๋ํฌ์", + "2026์ฌํ ํฌ", + "์ ๋ฆฝ์ํ๋", + "ํ๋์์ํ๋๋ฐฉ๋ฒ" + ], + "metaDescription": "์ 10๋ง์์ผ๋ก ์์ก ์ฌํ ํฌ ํ๋๋ฅผ 6๊ฐ์ ์ง์ ์ด์ฉํ ํ๊ธฐ์ ๋๋ค. 2026๋ ๊ณ์ข ๊ฐ์ค๋ถํฐ ์ํ ์ ํ, ์ฒดํฌ๋ฆฌ์คํธ, ์ค์ ์ฌ๋ก๊น์ง ์ค์ ๊ฒฝํ์ ๋ฐํ์ผ๋ก ์ ๋ฆฌํ์ต๋๋ค.", + "contentPreview": "์๋ ๋ง์ ์๊ธ ํต์ฅ์ ๋จ๋ ๋์ด ๋งค๋ฌ ์ ๋งคํ๊ฒ 10๋ง ์์ฉ ๋จ๋๋ผ๊ณ ์. ์นด๋๊ฐ ๋ด๊ณ ๊ด๋ฆฌ๋น ๋ด๊ณ ๋๋ฉด ๋ฑ ๊ทธ ์ ๋๊ฐ ๋จ์๋๋ฐ, ์ด๊ฑธ ๊ทธ๋ฅ ํต์ฅ์ ๋์๋ ์๊น๊ณ ์ฃผ์์ ๋ฌด์์์ ์์ด ์ ๊ฐ์ต๋๋ค. ๊ทธ๋์ ์ฌํด ์ด๋ถํฐ ์์ก์ผ๋ก ํ๋๋ฅผ ์์ํด๋ดค๋๋ฐ, ์๊ฐ๋ณด๋ค ์ง์ ์ฅ๋ฒฝ์ด ๋ฎ๋๋ผ๊ณ ์. 2026๋ ๊ธฐ์ค์ผ๋ก ์ ๊ฐ ์ง์ ๊ณ์ข ๋ง๋ค๊ณ ์ํ ๊ณ ๋ฅด๊ณ 6๊ฐ์ ๋๊ฒ ๊ตด๋ ค๋ณธ ๊ณผ์ ...", + "articleType": "how_to", + "migratedAt": "2026-07-15T03:44:34.681879" + }, + { + "post_id": "2026-07-12_SKํ์ด๋์ค์กฐ๋ฌ์ก๊ตญ๋ดํ๋ฆฐ๋ค์ธํ์์ฅ_f6db1c33", + "keyword": "SK ํ์ด๋์ค ์กฐ๋ฌ์ก ๊ตญ๋ด ํ๋ฆฐ๋ค ์ธํ์์ฅ", + "title": "SKํ์ด๋์ค ์กฐ๋ฌ์ก ๊ตญ๋ด ์ ์ ๊ณผ ์๋ฌ๋ฌ ํ์จ ํ๋ฆ ์ด์ ๋ฆฌ", + "status": "published", + "source": "auto", + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "blogUrl": "https://hoguasset.blogspot.com/2026/07/sk.html", + "errorMessage": null, + "createdAt": "2026-07-12T23:49:23.956927", + "publishedAt": "2026-07-12T23:49:24.663977", + "lastAttemptAt": "2026-07-12T23:49:24.663977", + "attempts": 2, + "runNumber": 176, + "wordCount": 3292, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "SKํ์ด๋์ค", + "ํ์จ", + "์๋ฌ๋ฌํ์จ", + "์ธํ์์ฅ", + "์กฐ๋ฌ์ก" + ], + "metaDescription": "SKํ์ด๋์ค ์กฐ๋ฌ์ก์ด ๊ตญ๋ด๋ก ํ๋ฆฌ๋ฉด์ ์ธํ์์ฅ๊ณผ ์๋ฌ๋ฌ ํ์จ์ ์ด๋ค ์ํฅ์ ์ฃผ๋์ง, ์ง์ ํ์ธํ ์ฒดํฌ๋ฆฌ์คํธ์ ๊ฒฝํ์ ๋ฐํ์ผ๋ก ์ฝ๊ฒ ์ ๋ฆฌํ์ต๋๋ค.", + "contentPreview": "์ง๋๋ฌ ํ์ฌ ์ ๋ฐฐ๋ ์ ์ฌ ๋จน๋ค๊ฐ ํ์จ ์๊ธฐ๊ฐ ๋์์ต๋๋ค. ์ ๋ ๋ฌ๋ฌ ์๊ธ์ ์กฐ๊ธ ๋ค๊ณ ์๋๋ฐ, ์ต๊ทผ ์/๋ฌ๋ฌ ํ์จ์ด ์๊ฐ๋ณด๋ค ์์ ์ ์ผ๋ก ์์ง์ด๋ ๊ฒ ์ ๊ธฐํ๊ฑฐ๋ ์. ์์๋ณด๋ SKํ์ด๋์ค ์กฐ๋ฌ์ก์ด ๊ตญ๋ด๋ก ํ๋ฆฌ๋ฉด์ ์ธํ์์ฅ์ ์ํฅ์ ์ฃผ๊ณ ์๋ค๋ ๊ธฐ์ฌ๋ฅผ ๋ช ๊ฐ ์ฐพ์์ต๋๋ค. ์ ์ฒ๋ผ ํ์ ํ์ด๋ฐ ์ฌ๋ ์ง์ฅ์ธ์ด๋ผ๋ฉด ์ด ํ๋ฆ์ ํ ๋ฒ์ฏค ์ง์ด๋ณผ ํ์๊ฐ ์๋ค๊ณ ๋๊ผ์ต๋๋ค. ...", + "articleType": "analysis", + "migratedAt": "2026-07-15T03:44:37.136943" + }, + { + "post_id": "2026-07-12_์ฌ๋ฆ์บ ํ์ถ์ฒ์ง์ ์ฐธ๊ฐ์์ง๋น๊ต_d4a8a9cd", + "keyword": "์ฌ๋ฆ ์บ ํ ์ถ์ฒ ์ง์ ์ฐธ๊ฐ ์์ง ๋น๊ต", + "title": "2026๋ ์ฌ๋ฆ ์ฒญ์๋ ๊ธ์ต๊ต์ก์บ ํ 3๊ณณ ์ฐธ๊ฐ ๋น๊ต", + "status": "published", + "source": "auto", + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "blogUrl": "https://hoguasset.blogspot.com/2026/07/2026-3_01593905138.html", + "errorMessage": null, + "createdAt": "2026-07-12T23:12:22.639084", + "publishedAt": "2026-07-12T23:12:23.617000", + "lastAttemptAt": "2026-07-12T23:12:23.617000", + "attempts": 2, + "runNumber": 175, + "wordCount": 4349, + "faqCount": 4, + "category": "์ผ๋ฐ", + "labels": [ + "์ฌ๋ฆ์บ ํ", + "๊ธ์ต๊ต์ก์บ ํ", + "์ฒญ์๋ ๊ธ์ต๊ต์ก", + "ํ๊ตญ์ํ๊ฒฝ์ ๊ต์ค", + "๊ธ์ต๊ฐ๋ ์" + ], + "metaDescription": "ํ๊ตญ์ํ, ๊ธ์ต๊ฐ๋ ์, ์์ค์ํ ์ฌ๋ฆ๋ฐฉํ ๊ธ์ต๊ต์ก์บ ํ 3๊ณณ์ ์์ด๋ฅผ ์ง์ ๋ณด๋ด๋ณด๊ณ ์ ์ฒญ ์กฐ๊ฑด, ์ปค๋ฆฌํ๋ผ, ๋ง์กฑ๋๋ฅผ ์์งํ๊ฒ ๋น๊ตํ์ต๋๋ค. ํ๋ ๋ณ ์ถ์ฒ ์บ ํ์ ์ ์ฒญ ํ๊น์ง ์ ๋ฆฌํ์ด์.", + "contentPreview": "๋งค๋ 7์์ด ๋๋ฉด ๋ง์นดํ๋ ํ์ฌ ์ก์ ์ปค๋ฎค๋ํฐ๋ ๊ผญ ์ฌ๋ผ์ค๋ ์ง๋ฌธ์ด ์์ต๋๋ค. \"์ฌ๋ฆ ์บ ํ ๋ญ ๋ณด๋ด์ธ์?\" ์ ๋ ์ด๋ฑํ๊ต 5ํ๋ ์์ด๋ฅผ ํค์ฐ๋ ์ ์ฅ์์ ์๋ ๊น์ง๋ ๊ทธ๋ฅ ํ์ต์ง ์บ ํ๋ ์์ด์บ ํ๋ง ์์๋ดค๋๋ฐ, ์ฌํด๋ ์กฐ๊ธ ๊ฒฐ์ด ๋ค๋ฅธ ๊ฑธ ์๋ํด๋ดค์ต๋๋ค. ๋ฐ๋ก ์ํ๊ถ๊ณผ ๊ณต๊ณต๊ธฐ๊ด์์ ์ด์ํ๋ ์ฌ๋ฆ๋ฐฉํ ์ฒญ์๋ ๊ธ์ต๊ต์ก์บ ํ์ ๋๋ค. ๊ธ์ตNEWS๋ฅผ ์ด์ํ๋ฉด์ ๊ธ๋ฆฌ๋ ์์ ๊ธ...", + "articleType": "review" + }, + { + "post_id": "2026-07-12_์์ด์ปจ์ ๊ธฐ์ธ์ ์ฝ_7a7259ce", + "keyword": "์์ด์ปจ ์ ๊ธฐ์ธ ์ ์ฝ", + "title": "์ฌ๋ฆํด๊ฐ ํ์ ์์ด์ปจ ์ ๊ธฐ์ธ, ์ง์ ๊ฒช์ด๋ณด๋ ์ด๋ ๊ฒ ์ ์ฝํ์ด์", + "status": "pending", + "source": "auto", + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "blogUrl": "", + "errorMessage": null, + "createdAt": "2026-07-12T23:06:08.696511", + "publishedAt": null, + "lastAttemptAt": "2026-07-12T23:06:08.696511", + "attempts": 1, + "runNumber": 175, + "wordCount": 2171, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "์์ด์ปจ ์ ๊ธฐ์ธ ์ ์ฝ", + "์ฌ๋ฆํด๊ฐ", + "๊ตญ๋ด์ฌํ", + "ํ์ ์์ฝ", + "์ฌํ๊ฟํ", + "์ ๊ธฐ์๊ธ", + "์์์ ๋ณด" + ], + "metaDescription": "์ฌ๋ฆ ๊ตญ๋ด์ฌํ ์ค ๋ ์ฑ ํ์ ์์ ๊ฒช์ ์์ด์ปจ ์ ๊ธฐ์ธ ํญํ ๊ฒฝํ๊ณผ ์ค์ ๋ก ์ ์ฝํด๋ณธ ๋ฐฉ๋ฒ์ ์์งํ๊ฒ ์ ๋ฆฌํ์ต๋๋ค. 2026๋ 7์ ๊ธฐ์ค ์์๋ณ ์ ๊ธฐ ์ ์ฐ ์ฐจ์ด๋ ๋น๊ตํฉ๋๋ค.", + "contentPreview": "์ง๋๋ฌ ๊ฐ์๋ ์์์ผ๋ก 3๋ฐ 4์ผ ๊ฐ์กฑ ์ฌํ์ ๋ค๋ ์์ต๋๋ค. ๋ ์ฑ ํ์ ์ ์์ฝํ๋๋ฐ ์ฒดํฌ์์ํ๊ณ ๋์ ์ฌ์ฅ๋์ด ์ ๊ธฐ์๊ธ ์ ์ฐ์๋ฅผ ๋ณด์ฌ์ฃผ์๋๋ฐ ์๊ฐ ๋์ ์์ฌํ์ด์. 3๋ฐ ๋์ ์์ด์ปจ์ ์ผฐ๋ค ๊ป๋ค ํ์ ๋ฟ์ธ๋ฐ ์ ๊ธฐ์ธ๊ฐ ๊ฑฐ์ 12๋ง ์ ๊ฐ๊น์ด ๋์๋๋ผ๊ณ ์. ์๊ณ ๋ณด๋ ์์ฆ ๋ ์ฑํ ์์๋ ์ฌ์ฉํ ๋งํผ ์ค๋น ์ ์ฐํ๋ ๊ณณ์ด ๋ง์์, ์์ด์ปจ์ ์ด๋ป๊ฒ ์ฐ๋๋์ ๋ฐ๋ผ ์ฌ...", + "articleType": "analysis" + }, + { + "post_id": "2026-07-12_์ฅ๋ง๊ฑด๊ฐ๊ด๋ฆฌ_4df69342", + "keyword": "์ฅ๋ง ๊ฑด๊ฐ ๊ด๋ฆฌ", + "title": "์ฅ๋ง์ฒ ๊ฑด๊ฐ ๊ด๋ฆฌ, 2026๋ ์ง์ ๊ฒช๊ณ ์ ๋ฆฌํ ์ค์ ๋ฐฉ๋ฒ", + "status": "pending", + "source": "auto", + "blogId": "blog1", + "blogName": "HOGU What?", + "blogUrl": "", + "errorMessage": null, + "createdAt": "2026-07-12T23:01:09.199762", + "publishedAt": null, + "lastAttemptAt": "2026-07-12T23:01:09.199762", + "attempts": 1, + "runNumber": 175, + "wordCount": 2591, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "์ฅ๋ง๊ฑด๊ฐ๊ด๋ฆฌ", + "์ฅ๋ง์ฒ ๊ฑด๊ฐ", + "์ฌ๋ฆ๊ฑด๊ฐ๊ด๋ฆฌ", + "์ต๋๊ด๋ฆฌ", + "์์จ์ ๊ฒฝ", + "์ง์ฅ์ธ๊ฑด๊ฐ", + "์ฅ๋ง์ฒ ์ํํ" + ], + "metaDescription": "2026๋ ์ฅ๋ง์ฒ , ์ง์ ์ค์ฒํด๋ณธ ๊ฑด๊ฐ ๊ด๋ฆฌ ๋ฐฉ๋ฒ์ ์์งํ๊ฒ ์ ๋ฆฌํ์ต๋๋ค. ์ต๋, ์จ๋์ฐจ, ์๋ถ ๊ด๋ฆฌ ์ฒดํฌ๋ฆฌ์คํธ์ ์ํ์ฐฉ์ค๊น์ง ๋ด์์ต๋๋ค.", + "contentPreview": "์ง๋์ฃผ ์ฅ๋ง ์์ํ์๋ง์ ๋ชธ์ด ๋ฌด๊ฒ๊ณ ๋ํต์ด ์์ฃผ ์์ต๋๋ค. ์ฌ๋ฌด์ค ์์ด์ปจ๊ณผ ์ตํ ๋ฐ๊นฅ ๊ณต๊ธฐ๋ฅผ ์ค๊ฐ๋ค ๋ณด๋ ์ปจ๋์ ์ด ์์ ๊ฐ์ง ์๋๊ตฐ์. 40๋ ํ๋ฐ ๋์ด๊ฐ๋ฉด์ ์ฅ๋ง์ฒ ๋ง ๋๋ฉด ์ ๋ ๋ชธ์ด ๋ฌด๊ฒ๋ค๋ ๊ฑธ ๋ช ๋ ์งธ ๋๋ผ๊ณ ์๋๋ฐ, ์ฌํด๋ ์์ ์์ ํ๊ณ ์ฅ๋ง ๊ฑด๊ฐ ๊ด๋ฆฌ ๋ฐฉ๋ฒ์ ํ๋์ฉ ์ค์ฒํด๋ณด๋ฉด์ ๊ธฐ๋ก์ ๋จ๊ฒจ๋ดค์ต๋๋ค. ๋จ์ํ ์ธํฐ๋ท์ ๋ ๋๋ ์ ๋ณด๋ฅผ ์ฎ๊ธฐ๋ ๊ฒ ์๋๋ผ ...", + "articleType": "analysis" + }, + { + "post_id": "2026-07-12_์ฌ๋ฆํด๊ฐํญ๊ณต๊ถ์ ๋ ดํ๊ฒ์์ฝํ๋๋ฐฉ๋ฒํ๊ธฐ_c026a417", + "keyword": "์ฌ๋ฆ ํด๊ฐ ํญ๊ณต๊ถ ์ ๋ ดํ๊ฒ ์์ฝํ๋ ๋ฐฉ๋ฒ ํ๊ธฐ", + "title": "์ฌ๋ฆ ํด๊ฐ ํญ๊ณต๊ถ ์ ๋ ดํ๊ฒ ์์ฝํ ํ๊ธฐ, 2026๋ ์ ๋ฐฉ๋ฒ ๊ณต์ ํฉ๋๋ค", + "status": "skipped", + "source": "auto", + "blogId": "blog1", + "blogName": "HOGU What?", + "blogUrl": "", + "errorMessage": null, + "createdAt": "2026-07-12T15:56:45.493408", + "publishedAt": null, + "lastAttemptAt": "2026-07-12T15:56:45.493408", + "attempts": 1, + "runNumber": 174, + "wordCount": 3032, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "์ฌ๋ฆํด๊ฐํญ๊ณต๊ถ", + "ํญ๊ณต๊ถ์์ฝ๋ฐฉ๋ฒ", + "์ ๋ ดํํญ๊ณต๊ถ", + "ํด์ธ์ฌํํ", + "ํญ๊ณต๊ถ๋น๊ต", + "๋ค์ด๋ฒํญ๊ณต๊ถ", + "์ค์นด์ด์ค์บ๋" + ], + "metaDescription": "2026๋ ์ฌ๋ฆ ํด๊ฐ ํญ๊ณต๊ถ ์ ๋ ดํ๊ฒ ์์ฝํ๋ ๋ฐฉ๋ฒ์ ์ง์ ์์ฝํ๋ฉฐ ๊ฒช์ ๊ฒฝํ์ผ๋ก ์ ๋ฆฌํ์ต๋๋ค. ์์ฝ ํ์ด๋ฐ, ๋น๊ต ํ๋ซํผ, ์ค์ ์ฌ๋ก๊น์ง ํ์ธํ์ธ์.", + "contentPreview": "๋งค๋ 6์๋ง ๋๋ฉด ํญ๊ณต๊ถ ๊ฐ๊ฒฉ ๋๋ฌธ์ ์คํธ๋ ์ค ๋ฐ์ต๋๋ค. ์ ๋ ์ฌํด ์ด ๋ค๋ญ ์ฌํ ํญ๊ณต๊ถ์ ์์๋ณด๋ค๊ฐ ์๋ณต ๊ฐ๊ฒฉ์ด ์๋ ๋ณด๋ค 20๋ง์ ๋๊ฒ ์ค๋ฅธ ๊ฑธ ๋ณด๊ณ ํ์จ๋ถํฐ ๋์์ต๋๋ค. ํ์ฌ ๋ค๋๋ฉด์ ํด๊ฐ ๋ ์ง๋ ์ ํด์ ธ ์๋๋ฐ, ์ฑ์๊ธฐ ํญ๊ณต๊ถ์ ์ ์ด๋ ๊ฒ ๋งค๋ฒ ๋น์ธ์ง๋ ๊ฑด์ง ๋ต๋ตํ ๋ง์์ ์ด๋ฒ์๋ ์์ ํ๊ณ ์ฌ๋ฆ ํด๊ฐ ํญ๊ณต๊ถ ์ ๋ ดํ๊ฒ ์์ฝํ๋ ๋ฐฉ๋ฒ์ ํ๊ณ ๋ค์ด ๋ดค์ต๋๋ค. ...", + "articleType": "how_to" + }, + { + "post_id": "2026-07-12_์ฒซ๋ ๋ถํฐ๋๋ฐํ์ด๋์ค๋ค์์ค๋ฅผ๊น_05913ad2", + "keyword": "์ฒซ๋ ๋ถํฐ ๋๋ฐ ํ์ด๋์ค ๋ค์ ์ค๋ฅผ๊น", + "title": "ํ์ด๋์ค ๋ค์ ์ค๋ฅผ๊น, ์ฒซ๋ ๊ธ๋ฑ ์ดํ ์ ๊ฐ ์ฒดํฌํ ๊ฒ๋ค", + "status": "skipped", + "source": "auto", + "blogId": "blog1", + "blogName": "HOGU What?", + "blogUrl": "", + "errorMessage": null, + "createdAt": "2026-07-12T15:54:28.950295", + "publishedAt": null, + "lastAttemptAt": "2026-07-12T15:54:28.950295", + "attempts": 1, + "runNumber": 174, + "wordCount": 2886, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "ํ์ด๋์ค", + "SKํ์ด๋์ค ์ฃผ๊ฐ", + "๋ฐ๋์ฒด์ฃผ", + "HBM", + "์ฃผ์ํฌ์", + "์ฝ์คํผ", + "๋ฐ๋์ฒดETF" + ], + "metaDescription": "ํ์ด๋์ค ๋ค์ ์ค๋ฅผ๊น ๊ถ๊ธํ ๋ถ๋ค์ ์ํด ์ฒซ๋ ๊ธ๋ฑ ์์ธ๊ณผ ์ค์ , HBM ์์, ์ฒดํฌ๋ฆฌ์คํธ๋ฅผ ์ง์ ์ ๋ฆฌํ ํฌ์ ๋ถ์ ๊ธ์ ๋๋ค.", + "contentPreview": "7์ ๋์งธ ์ฃผ ์์์ผ ์์นจ, ์ค๋งํธํฐ ์๋ฆผ์ ํ์ด๋์ค ๊ด๋ จ ๋ด์ค๊ฐ ์์์ก์ต๋๋ค. ์ ๋ 3๋ ์ ๋ถํฐ ๋ฐ๋์ฒด ๊ด๋ จ์ฃผ๋ฅผ ์์ก์ผ๋ก ๋๋ ๋ด๊ณ ์๋๋ฐ, ์ด๋ฒ์ฒ๋ผ ์ฒซ๋ ๋ถํฐ ๋๋ฐ์ด๋ผ๋ ํํ์ด ๋ถ์ ํ๋ฆ์ ์ค๋๋ง์ด์์ต๋๋ค. ๋ฌธ์ ๋ ๊ทธ ๋ค์์ ๋๋ค. ๊ธ๋ฑ ์ฒซ๋ ๋ด์ค๋ง ๋ณด๊ณ ๋ค๋ฆ๊ฒ ๋ค์ด๊ฐ๋ค๊ฐ ๋ฌผ๋ฆฐ ๊ฒฝํ์ด ์ ํํ ๋ ์์ด์, ์ด๋ฒ์ ๊ฐ์ ๋ณด๋ค ์ซ์๋ฅผ ๋จผ์ ํ์ธํ๊ณ ๊ธ๋ก ์ ๋ฆฌํด๋๋ ค๊ณ ...", + "articleType": "analysis" + }, + { + "post_id": "2026-07-12_์ฅ๋ง๊ฑด๊ฐ๊ด๋ฆฌ_6e20ca8b", + "keyword": "์ฅ๋ง ๊ฑด๊ฐ ๊ด๋ฆฌ", + "title": "์ฅ๋ง์ฒ ๊ฑด๊ฐ ๊ด๋ฆฌ, 2026๋ ์ ๋ ์ด๋ ๊ฒ ์ฑ๊ธฐ๊ณ ์์ต๋๋ค", + "status": "pending", + "source": "manual", + "blogId": "blog1", + "blogName": "HOGU What?", + "blogUrl": "", + "errorMessage": null, + "createdAt": "2026-07-12T14:50:05.634972", + "publishedAt": null, + "lastAttemptAt": "2026-07-12T14:50:05.634972", + "attempts": 1, + "runNumber": 173, + "wordCount": 2938, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "์ฅ๋ง๊ฑด๊ฐ๊ด๋ฆฌ", + "์ฅ๋ง์ฒ ๊ฑด๊ฐ", + "๋๋ฐฉ๋ณ์๋ฐฉ", + "์์ค๋ ์๋ฐฉ", + "์ต๋๊ด๋ฆฌ", + "์ฌ๋ฆ์ฒ ๊ฑด๊ฐ", + "์ง์ฅ์ธ๊ฑด๊ฐ" + ], + "metaDescription": "์ฅ๋ง์ฒ ๊ฑด๊ฐ ๊ด๋ฆฌ, ์ง์ ๊ฒฝํํ ์ต๋ ์กฐ์ ๊ณผ ์์ค๋ ์๋ฐฉ ๋ฐฉ๋ฒ์ ์์งํ๊ฒ ์ ๋ฆฌํ์ต๋๋ค. ์ฒดํฌ๋ฆฌ์คํธ์ ์ํ์ฐฉ์ค๊น์ง ๋ด์์ต๋๋ค.", + "contentPreview": "์ด๋ฒ ์ฃผ๋ง ๋ฒ์จ ์ธ ๋ฒ์งธ์ ๋๋ค. ์ถ๊ทผ๊ธธ์ ๋น ๋ง์ ์ ๋ฐ์ด ์ถ์ถํ ์ฑ๋ก ํ๋ฃจ ์ข ์ผ ์์ ์์๋๋ ๋ฐ๊ฐ๋ฝ ์ฌ์ด๊ฐ ๊ฐ๋ ค์์ง๋๊ตฐ์. ์ฅ๋ง ์์๋ ์ง ์ดํ๋ ์ ๋๋๋ฐ ๋ฒ์จ ๋ชธ ์ปจ๋์ ์ด ์์ ๊ฐ์ง ์๋ค๋ ๊ฑธ ๋๋๋๋ค. ์ ๋ ํ์ฌ์์ ๋๋ฐฉ๊ธฐ ๋ฐ๋ก ์์๋ฆฌ์ ์๋๋ฐ, ์ต๋ ๋์ ๋ ์จ์ ์์ด์ปจ ๋ฐ๋๊น์ง ๊ฒน์น๋ ๋ชฉ๋ ์นผ์นผํ๊ณ ๋ํต๋ ์์ฃผ ์ต๋๋ค. 40๋ ๋์ด๊ฐ๋ฉด์ ์์ ์ ๊ทธ...", + "articleType": "analysis" + }, + { + "post_id": "2026-07-12_2026์ฌ๋ฆ๋ ์์ถ์ฒ๋์๋ฆฌ์คํธํ๊ธฐ_7dd78845", + "keyword": "2026 ์ฌ๋ฆ ๋ ์ ์ถ์ฒ ๋์ ๋ฆฌ์คํธ ํ๊ธฐ", + "title": "2026 ์ฌ๋ฆ ๋ ์ ์ถ์ฒ ๋์ ๋ฆฌ์คํธ, ์ง์ ์ฝ๊ณ ์ด ์์ง ํ๊ธฐ", + "status": "published", + "source": "auto", + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "blogUrl": "https://hoguasset.blogspot.com/2026/07/2026_01397641181.html", + "errorMessage": null, + "createdAt": "2026-07-12T14:43:38.614567", + "publishedAt": "2026-07-12T14:43:39.230915", + "lastAttemptAt": "2026-07-12T14:43:39.230915", + "attempts": 2, + "runNumber": 172, + "wordCount": 4432, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "2026์ฌ๋ฆ๋ ์์ถ์ฒ", + "์ฌํ ํฌ๋์", + "์ง์ฅ์ธ์ฑ ์ถ์ฒ", + "์ธ๊ธ์ ์ธ์ฑ ", + "๋ถ๋์ฐ๋์" + ], + "metaDescription": "2026๋ ์ฌ๋ฆ ํ ๋ฌ 5์ผ ๋์ ์ด๋ ๊ถ์ ์ง์ ์ฝ๊ณ ์ ๋ฆฌํ ์ฌํ ํฌยท์ธ๊ธยท๋ถ์ ๋์ ํ๊ธฐ์ ๋๋ค. ์๋ ํ์ง ๋ชปํ ์ฑ ๊ณผ ์ํ์ฐฉ์ค๊น์ง ์์งํ๊ฒ ๋ด์์ต๋๋ค.", + "contentPreview": "์ง๋์ฃผ ํ์ฌ ํด๊ฒ์ค์์ ํ๋ฐฐ๊ฐ ์ด๋ฐ ์๊ธฐ๋ฅผ ํ์ต๋๋ค. \"๊ณผ์ฅ๋, ์ฌ๋ฆํด๊ฐ ๋ ์ฑ ์ข ์ฝ๊ณ ์ถ์๋ฐ ๋ญ ์ฝ์ด์ผ ํ ์ง ๋ชจ๋ฅด๊ฒ ์ด์.\" ์ ๋ ๋ฑ ๊ทธ ๋์ด ๋๋ ์์ ๋ฒ ์คํธ์ ๋ฌ ์ฝ๋ ์์์ 30๋ถ์ฉ ์์ฑ์ด๋ค ๊ฒฐ๊ตญ ์๋ฌด๊ฒ๋ ์ ์ฌ๊ณ ๋์จ ์ ์ด ๋ง์์ต๋๋ค. ์ฌํด๋ ์ข ๋ค๋ฅด๊ฒ ์ ๊ทผํด๋ดค์ต๋๋ค. 6์ ์ด๋ถํฐ ํ ๋ฌ ๋ฐ ๋์ ์ง์ ์ด ๊ถ ๋๊ฒ ์ฝ์ผ๋ฉด์ ์ง์ฅ์ธ, ํนํ ์ฌํ ํฌ์ ์...", + "articleType": "review", + "migratedAt": "2026-07-15T03:44:39.629180" + }, + { + "post_id": "2026-07-12_2026์ฌ๋ฆ๋ฐฉํ์๋ ๊ต์กํ๊ธฐ์ด์ ๋ฆฌ_eda5b0e4", + "keyword": "2026 ์ฌ๋ฆ๋ฐฉํ ์๋ ๊ต์ก ํ๊ธฐ ์ด์ ๋ฆฌ", + "title": "2026 ์ฌ๋ฆ๋ฐฉํ ์๋ ๊ต์ก๋น ์ง์ ์ด์ ๋ฆฌ - ๋๋ด๊ต์ค๋ถํฐ ์ธ์ก๊ณต์ ๊น์ง ์ง์ ์ ์ฒญํด๋ดค์ต๋๋ค", + "status": "skipped", + "source": "auto", + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "blogUrl": "", + "errorMessage": null, + "createdAt": "2026-07-12T11:32:49.430188", + "publishedAt": null, + "lastAttemptAt": "2026-07-12T11:32:49.430188", + "attempts": 1, + "runNumber": 171, + "wordCount": 3005, + "faqCount": 4, + "category": "์ผ๋ฐ", + "labels": [ + "2026์ฌ๋ฆ๋ฐฉํ", + "์๋ ๊ต์ก๋น์ง์", + "์ด๋ฑ๋๋ด๊ต์ค", + "์์ด๋๋ด์๋น์ค", + "์ฒญ์๋ ๋ฐฉ๊ณผํ์์นด๋ฐ๋ฏธ", + "๋ฌธํ๋๋ฆฌ์นด๋", + "๊ต์ก๋น์ธ์ก๊ณต์ " + ], + "metaDescription": "2026 ์ฌ๋ฆ๋ฐฉํ ์๋ ๊ต์ก ๊ด๋ จ ์ ๋ถ ์ง์ ์ ๋(์ด๋ฑ๋๋ด๊ต์ค, ์์ด๋๋ด์๋น์ค, ๋ฌธํ๋๋ฆฌ์นด๋, ๊ต์ก๋น ์ธ์ก๊ณต์ )๋ฅผ ๋์ยท์กฐ๊ฑดยท์ ์ฒญ๋ฐฉ๋ฒ๊น์ง ์ค์ ์ ์ฒญ ํ๊ธฐ๋ก ์ ๋ฆฌํ์ต๋๋ค.", + "contentPreview": "7์ ์ค์์ด ์ง๋๋ฉด์ ์์ด ๋ฐฉํ ์ค์ผ์ค ์ง๋๋ผ ์ ์ ์์ผ์ ๋ถ๋ค ๋ง์ผ์ค ๊ฒ ๊ฐ์ต๋๋ค. ์ ๋ ์ด๋ฑํ์ ์์ด ๋ ํค์ฐ๋ฉด์ ๋งค๋ ์ฌ๋ฆ๋ฐฉํ๋ง ๋๋ฉด '๋๋ด์ ์ด๋ป๊ฒ ํ์ง, ๊ต์ก๋น๋ ๋ ์ผ๋ง๋ ๋๊ฐ์ง' ๊ฑฑ์ ๋ถํฐ ์์๋๋ผ๊ณ ์. ๊ทธ๋ฐ๋ฐ ์ฌํด 2026 ์ฌ๋ฆ๋ฐฉํ ์๋ ๊ต์ก ๊ด๋ จํด์ ์ด๊ฒ์ ๊ฒ ์์๋ณด๊ณ ์ค์ ๋ก ์ ์ฒญ๊น์ง ํด๋ณด๋, ์๊ฐ๋ณด๋ค ํ์ฉํ ์ ์๋ ์ ๋ถ ์ง์ ์ ๋๊ฐ ๋ง๋ค๋ ๊ฑธ...", + "articleType": "review" + }, + { + "post_id": "2026-07-12_์ฅ๋ง๊ฑด๊ฐ๊ด๋ฆฌ_0778c52c", + "keyword": "์ฅ๋ง ๊ฑด๊ฐ ๊ด๋ฆฌ", + "title": "์ฅ๋ง์ฒ ๊ฑด๊ฐ ๊ด๋ฆฌ, ์ค๋ด์ฌํยทํํธยท์ต๋๊ด๋ฆฌ ์ง์ ํด๋ณธ ํ๊ธฐ", + "status": "published", + "source": "auto", + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "blogUrl": "https://hogugolfntraval.blogspot.com/2026/07/blog-post_12.html", + "errorMessage": null, + "createdAt": "2026-07-12T11:26:32.819710", + "publishedAt": "2026-07-12T11:26:33.975982", + "lastAttemptAt": "2026-07-12T11:26:33.975982", + "attempts": 2, + "runNumber": 171, + "wordCount": 3507, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "์ฅ๋ง์ฒ ๊ฑด๊ฐ๊ด๋ฆฌ", + "์ค๋ด์ฌํ์ง์ถ์ฒ", + "ํํธ๋ ์ด๋๋ฃจํด", + "์ ์ต๊ธฐ์ถ์ฒ", + "์ฅ๋ง์ฒ ์ปจ๋์ ๊ด๋ฆฌ" + ], + "metaDescription": "์ฅ๋ง์ฒ ๋ง๋ค ์ปจ๋์ ์ด ๋จ์ด์ง๋ ๋ถ๋ค์ ์ํด ์ค๋ด ์ฌํ์ง, ํํธ๋ ์ด๋, ์๋จ, ์ ์ต๊ธฐ๊น์ง ํ ๋ฌ๊ฐ ์ง์ ์ค์ฒํด๋ณธ ์ฅ๋ง ๊ฑด๊ฐ ๊ด๋ฆฌ ๋ฐฉ๋ฒ๊ณผ ํจ๊ณผ๋ฅผ ์์งํ๊ฒ ์ ๋ฆฌํ์ต๋๋ค.", + "contentPreview": "์ฅ๋ง๊ฐ ์์๋๋ฉด ํญ์ ๋ชธ์ด ๋จผ์ ๋ฐ์ํฉ๋๋ค. ์ ๋ ๋งค๋ 6์ ๋ง๋ถํฐ 7์ ์ค์๊น์ง ์ ๋ ์ปจ๋์ ์ด ์ ์ข์์ง๋ ํธ์ธ๋ฐ, ์ฌํด๋ ์์ ํ๊ณ ์ฅ๋ง์ฒ ๊ฑด๊ฐ ๊ด๋ฆฌ๋ฅผ ์ ๋๋ก ํด๋ณด์ ์ถ์ด์ ์ค๋ด ์ฌํ์ง ์ฐพ์๋ค๋๊ธฐ, ํํธ๋ ์ด๋ ๋ฃจํด ์ง๊ธฐ, ์๋จ ์กฐ์ ๊น์ง ํ ๋ฌ ๋๊ฒ ์ค์ฒํด๋ดค์ต๋๋ค. 2026๋ 7์ 12์ผ ํ์ฌ ๊ธฐ์ค์ผ๋ก ์ค๋ถ์ง๋ฐฉ์ ๋ฒ์จ ์ดํ ๋๊ฒ ํ๋ฆฌ๊ณ ๋น ์ค๋ ๋ ์ด ์ด์ด์ง...", + "articleType": "analysis" + }, + { + "post_id": "2026-07-12_์ฌ๋ฆ์บ ํ์ถ์ฒ์ง์ ์ฐธ๊ฐ์์ง๋น๊ต_67203482", + "keyword": "์ฌ๋ฆ ์บ ํ ์ถ์ฒ ์ง์ ์ฐธ๊ฐ ์์ง ๋น๊ต", + "title": "์ฌ๋ฆ ์บ ํ ์ถ์ฒ, 4๊ณณ ์ง์ ๋ณด๋ด๊ณ ๋น๊ตํ ์์ง ํ๊ธฐ", + "status": "skipped", + "source": "auto", + "blogId": "blog1", + "blogName": "HOGU What?", + "blogUrl": "https://www.hoguwhat.com/2026/07/4.html", + "errorMessage": "blog1 ์ฃผ์ ๊ฐํธ โ ๋ณด๊ด", + "createdAt": "2026-07-12T11:15:15.092327", + "publishedAt": "2026-07-12T11:15:15.688923", + "lastAttemptAt": "2026-07-12T11:15:15.688923", + "attempts": 2, + "runNumber": 171, + "wordCount": 3964, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "์ฌ๋ฆ์บ ํ์ถ์ฒ", + "์ฌ๋ฆ์บ ํ๋น๊ต", + "์๋ ๊ต์ก๋น", + "๋ฐฉํ์บ ํ", + "์๋ฐํ์บ ํ" + ], + "metaDescription": "์ด๋ฑ ์๋ ๋์ ํค์ฐ๋ฉฐ 3๋ ๊ฐ ์ฌ๋ฆ ์บ ํ ๋ค ๊ณณ์ ์ง์ ๋ณด๋ด๋ณธ ๊ฒฝํ์ ์ ๋ฆฌํ์ต๋๋ค. ์ธ์ ๋น์จ, ํ๋ถ ๊ท์ , ๋น์ฉ๊น์ง ์บ ํ ์ ํ ์ ๊ผญ ํ์ธํด์ผ ํ ์ฒดํฌ๋ฆฌ์คํธ์ ๋น๊ตํ๋ฅผ ์์งํ๊ฒ ๋ด์์ต๋๋ค.", + "contentPreview": "7์ ์ด๋ถํฐ ์ด๋ฆฐ์ด์ง, ํ๊ต๋ง๋ค ์ฌ๋ฆ๋ฐฉํ ์๋ด๋ฌธ์ด ์์์ง๊ธฐ ์์ํฉ๋๋ค. ์ ํฌ ์ง๋ ์์ธ๋ ์๋์์ต๋๋ค. ์ด๋ฑํ๊ต 4ํ๋ , 6ํ๋ ๋ ์์ด๋ฅผ ํค์ฐ๋ค ๋ณด๋ ๋งค๋ ์ด๋ง๋๊ฐ ๋๋ฉด ์บ ํ ์๋ด๋ฌธ์ ๋๊ณ ์๋ด์ ํ์ ์๋ ํ์๋ฅผ ํฉ๋๋ค. 3๋ ์ ๋ถํฐ๋ ์์ ์์ ํ์ผ์ ํ๋ ๋ง๋ค์ด์ ์บ ํ๋ณ ๋น์ฉ, ์ผ์ , ๋ง์กฑ๋๋ฅผ ๊ธฐ๋กํด์์ต๋๋ค. ์ด๋ฒ ๊ธ์์๋ ๊ทธ๋์ ์ง์ ์ฐธ๊ฐ์์ผ๋ณธ ์ฌ...", + "articleType": "review" + }, + { + "post_id": "2026-07-12_์ฌ๋ฆ๋ฐฉํ์๋ ๊ต์กํ๋ก๊ทธ๋จ์ถ์ฒ๋ฐฉ๋ฒ_9aa8d512", + "keyword": "์ฌ๋ฆ๋ฐฉํ ์๋ ๊ต์ก ํ๋ก๊ทธ๋จ ์ถ์ฒ ๋ฐฉ๋ฒ", + "title": "์ฌ๋ฆ๋ฐฉํ ์๋ ๊ต์ก๋น, ์ ๋ถ ์ง์์ผ๋ก ์ค์ด๋ ๋ฐฉ๋ฒ(2026)", + "status": "published", + "source": "auto", + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "blogUrl": "https://hoguasset.blogspot.com/2026/07/2026_01815789503.html", + "errorMessage": null, + "createdAt": "2026-07-12T06:21:01.564240", + "publishedAt": "2026-07-12T06:21:02.650113", + "lastAttemptAt": "2026-07-12T06:21:02.650113", + "attempts": 2, + "runNumber": 170, + "wordCount": 4014, + "faqCount": 4, + "category": "์ผ๋ฐ", + "labels": [ + "์ฌ๋ฆ๋ฐฉํ๊ต์ก", + "์ ๋ถ์ง์์ ๋", + "๊ต์ก๊ธ์ฌ", + "๋ฌธํ๋๋ฆฌ์นด๋", + "๋๋ดํ๊ต" + ], + "metaDescription": "2026๋ ์ฌ๋ฆ๋ฐฉํ ์๋ ๊ต์ก ํ๋ก๊ทธ๋จ ๋น์ฉ, ๊ต์ก๊ธ์ฌยท๋ฌธํ๋๋ฆฌ์นด๋ยท๋๋ดํ๊ต ๋ฑ ์ ๋ถ ์ง์ ์ ๋๋ก ์ค์ด๋ ๋ฐฉ๋ฒ์ ๋์, ๊ธ์ก, ์ ์ฒญ ์ ์ฐจ๊น์ง ํ ๋ฒ์ ์ ๋ฆฌํ์ต๋๋ค.", + "contentPreview": "7์ ๋ง์ด๋ฉด ์ด๊น์์ด ์ฌ๋ฆ๋ฐฉํ์ด ์์๋ฉ๋๋ค. ์์ด ์ ์ก๊ณ ์ด๋ค ์บ ํ, ์ด๋ค ๋ฐฉ๊ณผํ ํ๋ก๊ทธ๋จ์ ๋ณด๋ผ์ง ๊ณ ๋ฏผํ๋ ํ๋ถ๋ชจ๋๋ค ๋ง์ผ์ค ํ ๋ฐ์, ๋ฌธ์ ๋ ์ด๊ฒ ๋ค ๋์ด๋ผ๋ ๊ฒ๋๋ค. ๋จ๊ธฐ ์์ด์บ ํ ํ๋๋ง ํด๋ ์์ญ๋ง ์, ์ฒดํํ์ต ํ๋ก๊ทธ๋จ๊น์ง ์ฑ๊ธฐ๋ฉด ๋ฐฉํ ํ ๋ฌ ๊ต์ก๋น๊ฐ ์ฌ๋งํ ํ์๋น ๋บจ์นฉ๋๋ค.๊ทธ๋ฐ๋ฐ ์์ธ๋ก ์ด ์๊ธฐ์ ํ์ฉํ ์ ์๋ ์ ๋ถยท์ง์์ฒด ์ง์ ์ ๋๊ฐ ๊ฝค ์์ต...", + "articleType": "how_to" + }, + { + "post_id": "2026-07-12_์ฌ๋ฆ์บ ํ์ถ์ฒ์ง์ ์ฐธ๊ฐ์์ง๋น๊ต_9666d566", + "keyword": "์ฌ๋ฆ ์บ ํ ์ถ์ฒ ์ง์ ์ฐธ๊ฐ ์์ง ๋น๊ต", + "title": "์ฌ๋ฆ ์บ ํ ์ถ์ฒ, ๋ ๊ณณ ์ง์ ์ฐธ๊ฐ ํ ์์ง ๋น๊ต (2026๋ 7์)", + "status": "published", + "source": "auto", + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "blogUrl": "https://hogugolfntraval.blogspot.com/2026/07/2026-7.html", + "errorMessage": null, + "createdAt": "2026-07-12T06:10:59.749417", + "publishedAt": "2026-07-12T06:11:01.158403", + "lastAttemptAt": "2026-07-12T06:11:01.158403", + "attempts": 2, + "runNumber": 170, + "wordCount": 3956, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "์ฌ๋ฆ์บ ํ", + "์บ ํ์ถ์ฒ", + "์์ด์บ ํ", + "์ฌ๋ฆ๋ฐฉํ์บ ํ", + "์์ฐ์ฒดํ์บ ํ" + ], + "metaDescription": "ํ์ฒ 3๋ฐ4์ผ ์์ฐ์ฒดํ ์บ ํ์ ๊ฐํ 1๋ฐ2์ผ ์์์คํฌ์ธ ์บ ํ๋ฅผ ์ง์ ๋ค๋ ์ ๋น์ฉ, ์์ ๊ด๋ฆฌ, ํ๋ก๊ทธ๋จ์ ์๋ ๊ทธ๋๋ก ๋น๊ตํ์ต๋๋ค. ์ฌ๋ฆ ์บ ํ ์ ํ ์ ์ฐธ๊ณ ํ์ธ์.", + "contentPreview": "๋งค๋ ์ฌ๋ฆ๋ง ๋๋ฉด ์กฐ์นด๋ ๋ญ ํ๊ณ ๋์์ค์ผ ํ๋ ๊ณ ๋ฏผ์ด ๋ง์๋๋ฐ์, ์ฌํด๋ ํฐ๋ง ๋จน๊ณ ์ฌ๋ฆ ์บ ํ๋ฅผ ๋ ๊ตฐ๋ฐ๋ ์ ์ฒญํด์ ์ง์ ๋ฐ๋ ค๊ฐ ๋ดค์ต๋๋ค. ํ๋๋ ๊ฐ์๋ ํ์ฒ์ ์๋ 3๋ฐ 4์ผ์ง๋ฆฌ ์์ฐ ์ฒดํํ ์บ ํ์๊ณ , ๋ค๋ฅธ ํ๋๋ ๊ฒฝ๊ธฐ๋ ๊ฐํ ์ชฝ ์์ ์คํฌ์ธ ์์ฃผ 1๋ฐ 2์ผ ์บ ํ์์ด์. ์ฌ์ค ์ ๋ ์ด๋ฆด ๋ ์ฌ๋ฆ ์บ ํ ๋ช ๋ฒ ๊ฐ๋ณธ ๊ธฐ์ต์ ์๋๋ฐ, ์ด๋ฅธ์ด ๋์ด์ ์ธ์์ ๊ฒธ...", + "articleType": "review" + }, + { + "post_id": "2026-07-12_2026์ฌ๋ฆ๋ฐฉํ์๋ ๊ต์กํ๊ธฐ์ด์ ๋ฆฌ_0fce0d1b", + "keyword": "2026 ์ฌ๋ฆ๋ฐฉํ ์๋ ๊ต์ก ํ๊ธฐ ์ด์ ๋ฆฌ", + "title": "2026 ์ฌ๋ฆ๋ฐฉํ ์๋ ๊ต์ก ํ๊ธฐ ์ด์ ๋ฆฌ, ๋น์ฉ ๊ณต๊ฐ", + "status": "skipped", + "source": "auto", + "blogId": "blog1", + "blogName": "HOGU What?", + "blogUrl": "https://www.hoguwhat.com/2026/07/2026_0375938849.html", + "errorMessage": "blog1 ์ฃผ์ ๊ฐํธ โ ๋ณด๊ด", + "createdAt": "2026-07-12T06:00:45.845628", + "publishedAt": "2026-07-12T06:00:46.580490", + "lastAttemptAt": "2026-07-12T06:00:46.580490", + "attempts": 2, + "runNumber": 170, + "wordCount": 3029, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "์ฌ๋ฆ๋ฐฉํ ๊ต์ก", + "์๋ ๊ต์ก๋น", + "๊ต์ก๋น ์ธ์ก๊ณต์ ", + "๋ฐฉํ ์บ ํ", + "ํ์๋น ์ ์ฝ" + ], + "metaDescription": "2026 ์ฌ๋ฆ๋ฐฉํ ์๋ ๊ต์ก์ ์ง์ ์ ์ฒญํด๋ณธ ํ๊ธฐ์ ๋๋ค. ํ์ยท์บ ํยท๋ฐฉ๊ณผํ ๋น์ฉ ๋น๊ต, ์ธ์ก๊ณต์ ๋์ ์ฌ๋ถ, ์ ์ฒญ ์ ์ฒดํฌ๋ฆฌ์คํธ๊น์ง ์ค์ ๊ฒฝํ์ ๋ฐํ์ผ๋ก ์ ๋ฆฌํ์ต๋๋ค.", + "contentPreview": "7์ ์ด๋ถํฐ ์์ด ๋ฐฉํ ์ค์ผ์ค ์ง๋๋ผ ๋ฒ์จ ๋จธ๋ฆฌ๊ฐ ์ํ ์ต๋๋ค. ์ ๋ 47์ธ, ์ค2 ๋ธ๊ณผ ์ด5 ์๋ค ๋์ ํค์ฐ๋ ์ง์ฅ์ธ ์๋น ์ ๋๋ค. ๋งค๋ ์ฌ๋ฆ๋ฐฉํ๋ง๋ค ํ์, ์บ ํ, ์ฒดํํ์ต ์ค์ ๋ญ ๊ณจ๋ผ์ผ ํ ์ง ๊ณ ๋ฏผํ๋๋ฐ, ์ฌํด๋ ์ค์ ๋ก ์ ์ฒญํ๊ณ ๊ฒฐ์ ๊น์ง ํด๋ณธ ๊ฑธ ๊ทธ๋๋ก ๊ธฐ๋กํด๋๋ ค๊ณ ํฉ๋๋ค. ๋ฐฉํ ์์ ์ ์ ๋ฏธ๋ฆฌ ์์์ผ๋ฉด ์ข์์ ๊ฒ๋ค์ด ๋ง์์, ์ ์ฒ๋ผ ๊ณํ ์ง๋ค ์ง์น๋ ๋ถ๋ค...", + "articleType": "review" + }, + { + "post_id": "2026-07-11_์ฌ๋ฆ๋๋ฐฉ๊ฟํ_28ba7725", + "keyword": "์ฌ๋ฆ ๋๋ฐฉ ๊ฟํ", + "title": "์ฌ๋ฆ ๋๋ฐฉ ๊ฟํ, ์ ๊ธฐ์๊ธ ํญํ ํผํ๋ ๋ฒ โ ์๋์ง๋ฐ์ฐ์ฒ์ ํ์ ๋ณต์งํ ์ธ ์ด์ ๋ฆฌ (2026๋ ์ต์ )", + "status": "pending", + "source": "auto", + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "blogUrl": "", + "errorMessage": null, + "createdAt": "2026-07-11T23:21:20.269486", + "publishedAt": null, + "lastAttemptAt": "2026-07-11T23:21:20.269486", + "attempts": 1, + "runNumber": 169, + "wordCount": 3572, + "faqCount": 4, + "category": "์ผ๋ฐ", + "labels": [ + "์ฌ๋ฆ ๋๋ฐฉ ๊ฟํ", + "์๋์ง๋ฐ์ฐ์ฒ", + "ํ์ ์ ๊ธฐ์๊ธ ํ ์ธ", + "์ ๊ธฐ์๊ธ ์ ์ฝ", + "๋์ง์ ", + "์ ๋ถ ์ง์ ์ ๋", + "๋ณต์ง๋ก" + ], + "metaDescription": "์ฌ๋ฆ ๋๋ฐฉ ๊ฟํ๊ณผ ํจ๊ป ์๋์ง๋ฐ์ฐ์ฒ, ํ์ ์ ๊ธฐ์๊ธ ๋ณต์งํ ์ธ ๋์ยท์ ์ฒญ ๋ฐฉ๋ฒ์ ์ ๋ฆฌํ์ต๋๋ค. 2026๋ ์ฌ๋ฆ์ฒ ๋๋ฐฉ๋น ๋ถ๋ด์ ์ค์ด๋ ์ ๋ถ ์ง์ ์ ๋๋ฅผ ํ์ธํด๋ณด์ธ์.", + "contentPreview": "7์ ์ค์, ๋ฒ์จ ๋ฎ ์ต๊ณ ๊ธฐ์จ์ด 35๋๋ฅผ ๋๋๋๋ ๋ ์ด ์ด์ด์ง๊ณ ์์ต๋๋ค. ์์ด์ปจ ์์ด๋ ๋์ ํ ๋ฒํฐ๊ธฐ ํ๋ ๋ ์จ์ธ๋ฐ, ๋ฌธ์ ๋ 8์ ๊ณ ์ง์๊ฐ ๋์ฌ ๋ ์ฐํ๋ ์ ๊ธฐ์๊ธ์ ๋๋ค. ์ ๋ ์๋ ์ฌ๋ฆ ๋ฌด์ฌ์ฝ ์์ด์ปจ์ ํ๋ฃจ ์ข ์ผ ํ์๋ค๊ฐ ์ ๊ธฐ์๊ธ์ด ํ์๋ณด๋ค 4๋ง ์ ๋๊ฒ ๋ ๋์จ ๊ฑธ ๋ณด๊ณ ๊น์ง ๋๋๋ ๊ธฐ์ต์ด ์์ต๋๋ค. ๊ทธ๋ฐ๋ฐ ์๊ณ ๋ณด๋ ์ฌ๋ฆ์ฒ ๋๋ฐฉ๋น ๋ถ๋ด์ ์ค์ฌ์ฃผ๋ ์ ...", + "articleType": "analysis" + }, + { + "post_id": "2026-07-11_2026์ฌ๋ฆํผ์์ง์ถ์ฒ๊ฒฝ๋จ๋ฐ๋ค๊ณ๊ณก๋ฒ ์คํธ_add5f623", + "keyword": "2026 ์ฌ๋ฆ ํผ์์ง ์ถ์ฒ ๊ฒฝ๋จ ๋ฐ๋ค ๊ณ๊ณก ๋ฒ ์คํธ ์ฝ์ค", + "title": "2026 ์ฌ๋ฆ ๊ฒฝ๋จ ๋ฐ๋คยท๊ณ๊ณก ํผ์์ง ๋ฒ ์คํธ ์ฝ์ค ํ๊ธฐ", + "status": "published", + "source": "auto", + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "blogUrl": "https://hogugolfntraval.blogspot.com/2026/07/2026_038635238.html", + "errorMessage": null, + "createdAt": "2026-07-11T23:13:53.933546", + "publishedAt": "2026-07-11T23:13:55.152353", + "lastAttemptAt": "2026-07-11T23:13:55.152353", + "attempts": 2, + "runNumber": 169, + "wordCount": 3687, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "๊ฒฝ๋จ์ฌํ", + "์ฌ๋ฆํผ์์ง", + "๊ฑฐ์ ์ฌํ", + "๋จํด์ฌํ", + "ํ๋์ฌํ" + ], + "metaDescription": "๊ฑฐ์ ํ๋๋ชฝ๋ํด๋ณ, ๋จํด ์์ฃผ์๋ชจ๋๋น์น, ํจ์ ์ฉ์ถ๊ณ๊ณก, ํ๋ ํ๊ฐ์ฅํฐ๊น์ง 2026๋ ์ฌ๋ฆ ๊ฒฝ๋จ ๋ฐ๋คยท๊ณ๊ณก ํผ์์ง๋ฅผ ์ง์ ๋ค๋ ์์ ์ฃผ์ฐจ, ์๋ฐ๋น, ์ค๋น๋ฌผ๊น์ง ์ ๋ฆฌํ ์ค์ ํ๊ธฐ์ ๋๋ค.", + "contentPreview": "์ด๋ฒ ์ฌ๋ฆํด๊ฐ ๊ณํ ์ธ์ฐ๋ฉด์ ์ ์ผ ๊ณ ๋ฏผํ๋ ๊ฒ '๋ฐ๋ค๋ ๊ณ๊ณก์ด๋'์์ด์. ๊ทผ๋ฐ ์ ํฌ ๊ฐ์กฑ์ ์ ๊ฐ ๋ฌผ๋์ด ์ง๊ฒจ์ํ๋ฉด ๋ฐ๋ก ์ง์ฆ๋ด๋ ์คํ์ผ์ด๋ผ ํ๋ฃจ๋ ๋ฐ๋ค, ํ๋ฃจ๋ ๊ณ๊ณก ์ด๋ ๊ฒ ๋ฌถ์ด์ ๊ฐ ์ ์๋ ์ฝ์ค๋ฅผ ์ฐพ์๋ดค๊ฑฐ๋ ์. ๊ทธ๋ฌ๋ค ๋ฐ๊ฒฌํ ๊ฒ ๊ฒฝ๋จ ์ชฝ์ด์์ต๋๋ค. ๊ฑฐ์ , ๋จํด, ํ๋, ํจ์์ด ์ฐจ๋ก ํ ์๊ฐ ๋ฐ ์ ๋๋ฉด ๋ค ์ด์ด์ง๋๋ผ๊ณ ์. 6์ ๋ง์ ๋ฏธ๋ฆฌ ๋ต์ฌ ๊ฒธ 1๋ฐ2์ผ...", + "articleType": "travel_guide" + }, + { + "post_id": "2026-07-11_์ฅ๋ง๊ฑด๊ฐ๊ด๋ฆฌ_001b044d", + "keyword": "์ฅ๋ง ๊ฑด๊ฐ ๊ด๋ฆฌ", + "title": "์ฅ๋ง์ฒ ๊ฑด๊ฐ ๊ด๋ฆฌ ์๋ฒฝ ๊ฐ์ด๋, 2026๋ ์ฌ๋ฆ ์ค์ฒ๋ฒ", + "status": "skipped", + "source": "auto", + "blogId": "blog1", + "blogName": "HOGU What?", + "blogUrl": "https://www.hoguwhat.com/2026/07/2026_01681161257.html", + "errorMessage": "blog1 ์ฃผ์ ๊ฐํธ โ ๋ณด๊ด", + "createdAt": "2026-07-11T23:02:33.428688", + "publishedAt": "2026-07-11T23:02:34.912770", + "lastAttemptAt": "2026-07-11T23:02:34.912770", + "attempts": 2, + "runNumber": 169, + "wordCount": 3573, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "์ฅ๋ง ๊ฑด๊ฐ ๊ด๋ฆฌ", + "๋๋ฐฉ๋ณ ์๋ฐฉ", + "์ฌ๋ฆ์ฒ ๊ฑด๊ฐ", + "์์ค๋ ์๋ฐฉ", + "์ค๋ด ์ต๋ ๊ด๋ฆฌ" + ], + "metaDescription": "์ต๋, ์จ๋ ์ฐจ, ์์ค๋ ๊น์ง ์ฅ๋ง์ฒ ๊ฑด๊ฐ ๊ด๋ฆฌ๋ฅผ ์ํด ์ง์ ์ค์ฒํ ๋ฐฉ๋ฒ์ ์ ๋ฆฌํ์ต๋๋ค. ์ฒดํฌ๋ฆฌ์คํธ์ ์ ์ต๊ธฐ ๋น๊ต ํ๊ธฐ, ๋๋ฐฉ๋ณ ์๋ฐฉ๋ฒ๊น์ง ํ์ธํด๋ณด์ธ์.", + "contentPreview": "๋งค๋ 6์ ๋ง์ด ๋๋ฉด ์ต๊ด์ฒ๋ผ ์ผ๊ธฐ์๋ณด ์ฑ์ ์ผญ๋๋ค. ์ฌํด๋ ์ด๊น์์ด ์ฅ๋ง ์์์ด ๋ด๋๊ตฐ์. ์ ๋ ๋ช ๋ ์ ์ฅ๋ง์ฒ ์ ๊ฐ๊ธฐ์ธ ์ค ์๊ณ ๋ฐฉ์นํ๋ค๊ฐ ๋ฉฐ์น ์ ๊ณ ์ํ ์ ์ด ์์ต๋๋ค. ์๊ณ ๋ณด๋ ๋๋ฐฉ๋ณ๊ณผ ์ํ๊ธฐ ๋ฌธ์ ๊ฐ ๊ฒน์น ์ํ์๋๋ฐ, ๊ทธ๋ ์ดํ๋ก ์ฅ๋ง์ฒ ๋ง ๋๋ฉด ๋ชธ ์ํ๋ฅผ ๋ ๊ผผ๊ผผํ ์ดํผ๊ฒ ๋์ต๋๋ค. ์ต๋ ๋๊ณ ๊ธฐ์จ ๋ณํ๊ฐ ์ฌํ ์ด ์๊ธฐ์๋ ํ์์ ๋ค๋ฅธ ๋ฐฉ์์ผ๋ก ๋ชธ...", + "articleType": "analysis" + }, + { + "post_id": "2026-07-11_๊ฐํ์ ๋จ์_f4f7e1f1", + "keyword": "๊ฐํ์ ๋จ์", + "title": "๊ฐํ์ ๋จ์์ฒ๋ผ ์๋น๋ ์ฌ์ด๊ฐ๋ ๋ฌด์ง์ถ ์ฑ๋ฆฐ์ง", + "status": "published", + "source": "auto", + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "blogUrl": "https://hoguasset.blogspot.com/2026/07/blog-post_12.html", + "errorMessage": null, + "createdAt": "2026-07-11T15:31:13.994631", + "publishedAt": "2026-07-11T15:31:15.028886", + "lastAttemptAt": "2026-07-11T15:31:15.028886", + "attempts": 2, + "runNumber": 168, + "wordCount": 3075, + "faqCount": 4, + "category": "์ผ๋ฐ", + "labels": [ + "๊ฐํ์ ๋จ์", + "๋ฌด์ง์ถ์ฑ๋ฆฐ์ง", + "์ ์ฝ์ต๊ด", + "๊ฐ๊ณ๋ถ๊ด๋ฆฌ", + "์์ ์ ๊ธ" + ], + "metaDescription": "์๊ธ์ ๊ทธ๋๋ก ๋ฐ ์ง์ถ๋ง ๋๋ ์์ฆ, ๊ฐํ์ ๋จ์ ์๋ฆฌ๋ฅผ ์๋น์ ์ ์ฉํ ๋ฌด์ง์ถ ์ฑ๋ฆฐ์ง ์์๋ฒ๊ณผ ์์ ์ ๊ธยทํํนํต์ฅ ์ฐ๊ณ ์ ์ถ๋ฒ, ๋ณด๋ณต ์๋น ๋ฐฉ์ง ํ๊น์ง ํ์ค์ ์ผ๋ก ์ ๋ฆฌํ์ต๋๋ค.", + "contentPreview": "์์ฆ ๋ค์ด์ดํธ ์๊ธฐํ๋ฉด ๋น ์ง์ง ์๋ ๊ฒ ๊ฐํ์ ๋จ์์ด์ฃ . ์ ๋ ์๋ ๋ถํฐ 16:8 ๋ฐฉ์์ผ๋ก ์๋ํด๋ดค๋๋ฐ, ์ ๊ธฐํ๊ฒ๋ '๋จน๋ ์๊ฐ์ ์ ํด๋๋ ์คํ๋ ค ๋ ๋จน๊ฒ ๋๋๋ผ'๋ ๊ฑธ ๋๊ผ์ต๋๋ค. ๊ทธ๋ฐ๋ฐ ์ด ์๋ฆฌ, ์ฌ์ค ๋ ๊ด๋ฆฌ์๋ ๊ทธ๋๋ก ์ ์ฉ๋๋ค๋ ๊ฑฐ ์์ จ๋์? ์ต๊ทผ ์ฌํ ํฌ ์ปค๋ฎค๋ํฐ์ SNS์์ '๋ฌด์ง์ถ ์ฑ๋ฆฐ์ง'๊ฐ ๋ค์ ๋จ๊ณ ์๋๋ฐ, ๊ตฌ์กฐ๊ฐ ๊ฐํ์ ๋จ์์ด๋ ๊ฑฐ์ ๋๊ฐ์ต๋...", + "articleType": "analysis" + }, + { + "post_id": "2026-07-11_๊ฐํ์ ๋จ์_dc682c6d", + "keyword": "๊ฐํ์ ๋จ์", + "title": "๊ฐํ์ ๋จ์ 6์ฃผ ์ง์ ํด๋ณธ ์์ง ํ๊ธฐ, 16:8 ์ฒด์ค ๋ณํ ๊ณต๊ฐ", + "status": "published", + "source": "auto", + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "blogUrl": "https://hogugolfntraval.blogspot.com/2026/07/6-168.html", + "errorMessage": null, + "createdAt": "2026-07-11T15:20:18.267506", + "publishedAt": "2026-07-11T15:20:19.765389", + "lastAttemptAt": "2026-07-11T15:20:19.765389", + "attempts": 2, + "runNumber": 168, + "wordCount": 3656, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "๊ฐํ์ ๋จ์", + "16์๊ฐ๋จ์", + "๋ค์ด์ดํธํ๊ธฐ", + "์ง์ฅ์ธ๋ค์ด์ดํธ", + "์ฒด์ค๊ฐ๋ํ๊ธฐ" + ], + "metaDescription": "์ง์ฅ์ธ์ด 16:8 ๊ฐํ์ ๋จ์์ 6์ฃผ๊ฐ ์ง์ ์ค์ฒํ๋ฉฐ ๊ธฐ๋กํ ์ฒด์ค ๋ณํ, ์ฅ๋จ์ , ๋ถ์์ฉ ํ๊ธฐ์ ๋๋ค. ์์ ์ ์ฐธ๊ณ ํ ์ฒดํฌํฌ์ธํธ์ ์ฃผ์์ฌํญ๊น์ง ์ ๋ฆฌํ์ต๋๋ค.", + "contentPreview": "์๋ ์ฐ๋ง์ ์ ์๋ฆฌ๊ฐ ์ ๋ ๋ง์๋ ํ์ธ์ง ์ฒด์ค๊ณ ์ซ์๊ฐ ์ฒ์์ผ๋ก ์ธ ์๋ฆฌ ์์๋ฆฌ๊ฐ ๋ฐ๋๋ ๊ฑธ ๋ณด๊ณ ์ ์ ์ด ๋ฒ์ฉ ๋ค์์ต๋๋ค. ํฌ์ค์ฅ ๋ฑ๋ก๋ง ํ๊ณ ์ค์ ๋ก๋ ์ผ์ฃผ์ผ์ ํ ๋ฒ ๊ฐ๊น ๋ง๊น ํ๋ ์ ๊ฐ์ ์ง์ฅ์ธ๋ค ๋ง์ผ์ค ํ ๋ฐ์, ์ด๋๋ณด๋ค ์์ต๊ด๋ถํฐ ๋ฐ๊ฟ๋ณด์๋ ๋ง์์ผ๋ก ์์ํ ๊ฒ ๋ฐ๋ก ๊ฐํ์ ๋จ์์ด์์ต๋๋ค. ์๋ฅ ํ๋ก๊ทธ๋จ์์ ๋ฐฐ์ฐ ๊ฐ์๋ผ ์จ๋ ๊ฐ์ ํ์ฌ ์จ๊ฐ ๊ณต๋ณต ์๊ฐ...", + "articleType": "analysis" + }, + { + "post_id": "2026-07-11_๊ฐํ์ ๋จ์_ebf17c1f", + "keyword": "๊ฐํ์ ๋จ์", + "title": "๊ฐํ์ ๋จ์ 6๊ฐ์ ์ง์ ํด๋ณธ ํ๊ธฐ, 2026๋ ํ์ค ์ ๊ฒ", + "status": "skipped", + "source": "auto", + "blogId": "blog1", + "blogName": "HOGU What?", + "blogUrl": "https://www.hoguwhat.com/2026/07/6-2026_01253378129.html", + "errorMessage": "blog1 ์ฃผ์ ๊ฐํธ โ ๋ณด๊ด", + "createdAt": "2026-07-11T15:08:50.222339", + "publishedAt": "2026-07-11T15:08:50.945651", + "lastAttemptAt": "2026-07-11T15:08:50.945651", + "attempts": 2, + "runNumber": 168, + "wordCount": 2843, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "๊ฐํ์ ๋จ์", + "์ง์ฅ์ธ๊ฑด๊ฐ", + "16๋8๋จ์", + "๋ค์ด์ดํธํ๊ธฐ", + "์ฒด์ค๊ฐ๋" + ], + "metaDescription": "40๋ ์ง์ฅ์ธ์ด ๊ฐํ์ ๋จ์ 16:8 ๋ฐฉ์์ 6๊ฐ์๊ฐ ์ง์ ์ค์ฒํ๋ฉฐ ๊ฒช์ ์ ์ฒด๊ธฐ, ์ค์, ์ฒดํฌ๋ฆฌ์คํธ๋ฅผ ์์งํ๊ฒ ์ ๋ฆฌํ์ต๋๋ค. ์์ ์ ํ์ธํ ์ ๊น์ง ํจ๊ป ์๋ดํฉ๋๋ค.", + "contentPreview": "์๋ ์ฌ๋ฆ ๊ฑด๊ฐ๊ฒ์ง์์ ๊ณต๋ณตํ๋น ์์น๊ฐ ์ ๋งคํ๊ฒ ๋์จ ๋ค๋ก ๋ญ๊ฐ ๋ฐ๊ฟ์ผ๊ฒ ๋ค๋ ์๊ฐ์ด ๋ค์์ต๋๋ค. ํ์ ์ฆ์ ์ง์ฅ์ธ ์ํ 20๋ ๋๊ฒ ํ๋ค ๋ณด๋ ์ฒด์ค์ ๋งค๋ ์กฐ๊ธ์ฉ ๋์๊ณ , ์ ๋ ๋ฆ๊ฒ ๋จน๋ ์ต๊ด๋ ๊ตณ์ด์ ธ ์์์ต๋๋ค. ๊ทธ๋์ ํฐ๋ ๋ค์ด์ง ์๊ณ ์์ํ ์ ์๋ ๊ฐํ์ ๋จ์์ 6๊ฐ์ ์ ๋ ํด๋ดค๋๋ฐ, ์๊ฐ๋ณด๋ค ๋ฐฐ์ธ ์ ์ด ๋ง์์ต๋๋ค. ์ด ๊ธ์ ๋ค์ด์ดํธ ๊ด๊ณ ๊ธ์ด ์๋๋ผ...", + "articleType": "analysis" + }, + { + "post_id": "2026-07-11_์ฃผํ๋ด๋ณด๋์ถ๊ธ๋ฆฌ์ต์ ์ํ2026์ง์ ๋ฐํ_0fbcb922", + "keyword": "์ฃผํ๋ด๋ณด๋์ถ ๊ธ๋ฆฌ ์ต์ ์ํ 2026 ์ง์ ๋ฐํ ํ์ ๋น๊ต", + "title": "์ฃผํ๋ด๋ณด๋์ถ ๊ธ๋ฆฌ ์ต์ ์ํ 2026, 5๊ณณ ์ง์ ๋ฐํ ๋น๊ต ํ๊ธฐ", + "status": "published", + "source": "auto", + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "blogUrl": "https://hoguasset.blogspot.com/2026/07/2026-5_01314812220.html", + "errorMessage": null, + "createdAt": "2026-07-11T14:50:48.973129", + "publishedAt": "2026-07-11T14:50:50.028213", + "lastAttemptAt": "2026-07-11T14:50:50.028213", + "attempts": 2, + "runNumber": 167, + "wordCount": 4499, + "faqCount": 4, + "category": "์ผ๋ฐ", + "labels": [ + "์ฃผํ๋ด๋ณด๋์ถ", + "์ฃผํ๋ด๋ณด๋์ถ๊ธ๋ฆฌ", + "2026๊ธ๋ฆฌ๋น๊ต", + "์ํ๊ธ๋ฆฌ๋น๊ต", + "๋ณ๋๊ธ๋ฆฌ" + ], + "metaDescription": "2026๋ 7์ ์์ค์ํ 5๊ณณ์ ์ง์ ๋ฐฉ๋ฌธํ๊ณ ์ ํ ์๋ด๊น์ง ๋ฐ์๋ณธ ์ฃผํ๋ด๋ณด๋์ถ ๊ธ๋ฆฌ ๋น๊ต ํ๊ธฐ์ ๋๋ค. ์ํ๋ณ ์ฐ๋๊ธ๋ฆฌ ์กฐ๊ฑด๊ณผ DSR ํ๋์์ ๊ฒช์ ๋ณ์๊น์ง ์ค์ ๊ฒฝํ์ ๋ฐํ์ผ๋ก ์ ๋ฆฌํ์ต๋๋ค.", + "contentPreview": "์ด๋ฒ ๋ฌ์ ์ ์ธ ๋ง๊ธฐ๊ฐ ๋ค๊ฐ์ค๋ฉด์ ์ ๋ ๊ฒฐ๊ตญ ์ฃผํ๋ด๋ณด๋์ถ์ ์์๋ณด๊ฒ ๋์ต๋๋ค. ๊ทธ๋ฐ๋ฐ ๋ง์ ์ํ ์ฑ ๋ช ๊ฐ๋ง ๋๋ฌ๋ด๋ ๊ธ๋ฆฌ๊ฐ ๋ค ๋ค๋ฅด๊ฒ ๋์ค๊ณ , ์ฐ๋๊ธ๋ฆฌ ์กฐ๊ฑด๋ ์ํ๋ง๋ค ์ ๊ฐ๊ฐ์ด๋ผ ๋ญ๊ฐ ์ง์ง ์ต์ ๊ธ๋ฆฌ์ธ์ง ํท๊ฐ๋ฆฌ๋๋ผ๊ณ ์. ๊ทธ๋์ ์ง๋ 2์ฃผ๊ฐ ์์ค์ํ 5๊ณณ์ ์ง์ ๋ฐฉ๋ฌธํ๊ฑฐ๋ ์ ํ ์๋ด์ ๋ฐ์๋ณด๋ฉด์ 2026๋ 7์ ๊ธฐ์ค ์ฃผํ๋ด๋ณด๋์ถ ๊ธ๋ฆฌ๋ฅผ ์ค์ ๋ก ๋น๊ตํด๋ดค์ต๋๋ค...", + "articleType": "review" + }, + { + "post_id": "2026-07-11_์ฌ๋ฆ๋ ์์ถ์ฒ_dd4cd99c", + "keyword": "์ฌ๋ฆ ๋ ์ ์ถ์ฒ", + "title": "์ฌ๋ฆ ๋ ์ ์ถ์ฒ, ์ด๋ฒ ํด๊ฐ ๋ ์ง์ ์ฑ๊ฒจ๊ฐ ์ฑ 7๊ถ ์์ง ํ๊ธฐ", + "status": "pending", + "source": "auto", + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "blogUrl": "", + "errorMessage": null, + "createdAt": "2026-07-11T14:42:38.742158", + "publishedAt": null, + "lastAttemptAt": "2026-07-11T14:42:38.742158", + "attempts": 1, + "runNumber": 167, + "wordCount": 2433, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "์ฌ๋ฆ๋ ์์ถ์ฒ", + "ํด๊ฐ์ฒ ์ฑ ", + "๋๋ผ๋ง์์์์ค", + "๋ถํธํํธ์์ ", + "๋ฌ๋ฌ๊ตฌํธ๊ฟ๋ฐฑํ์ ", + "์ ์์ฑ ์ถ์ฒ", + "๋ฐ๋ฆฌ์์์ฌ" + ], + "metaDescription": "์ฌ๋ฆ ๋ ์ ์ถ์ฒ์ผ๋ก ์ค์ ํด๊ฐ์ง์์ ์ฝ์ด๋ณธ ์ฑ 7๊ถ ์์ง ํ๊ธฐ, ๋๋ผ๋ง ์์ ์์ค๊ณผ ์ ์์ฑ ยท์ข ์ด์ฑ ๋น๊ต๊น์ง ์ง์ ๊ฒฝํํ ๋ด์ฉ์ผ๋ก ์ ๋ฆฌํ์ต๋๋ค.", + "contentPreview": "๋งค๋ ์ฌ๋ฆํด๊ฐ ๊ฐ ๋๋ง๋ค ์บ๋ฆฌ์ด์ ์ฑ ์ ๋ช ๊ถ์ฉ ์ฑ์ฌ๋ฃ๋ ํธ์ ๋๋ค. ์ฌํด๋ 7์ ์ด์ ๊ฐ๋ฆ์ผ๋ก 3๋ฐ 4์ผ ๋ค๋ ์๋๋ฐ, ๊ทธ๋ ๋ค๊ณ ๊ฐ ์ฑ ๋ค์ด๋ ์ ์์ฑ ๊น์ง ํฉ์ณ์ ์ด 7๊ถ์ ์ค์ ๋ก ์ฝ์ด๋ดค์ต๋๋ค. ๋งค๋ฒ '์ด ์ฑ ์ฌ๋ฐ๋ค๋๋ผ' ํ๋ ๋ง๋ง ๋ฃ๊ณ ์๋ค๊ฐ ์๋ ๋ ๋ชป ํ๊ณ ์ง๋ง ๋์ด๋ ๊ฒฝํ์ด ๋ง์์, ์ด๋ฒ์ ์ง์ง ์ฌ๋ฆ์ ์ฝ๊ธฐ ์ข์ ์ฑ ๋ง ์ถ๋ ค์ ์ง์ ๊ฒ์ฆํด๋ณด์๋ ๋ง์์ผ๋ก ์...", + "articleType": "review" + }, + { + "post_id": "2026-07-11_ํญ์ผ๋๋น๋ฐฉ๋ฒ_8f9b4c4e", + "keyword": "ํญ์ผ ๋๋น ๋ฐฉ๋ฒ", + "title": "ํญ์ผ ๋๋น ๋ฐฉ๋ฒ, ์ ๊ธฐ์๊ธ ํญํ ๋ง๋ ๋ฒ๋ถํฐ ์๋์ง๋ฐ์ฐ์ฒ๊น์ง ์ด์ ๋ฆฌ (2026๋ ์ฌ๋ฆ)", + "status": "pending", + "source": "manual", + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "blogUrl": "", + "errorMessage": null, + "createdAt": "2026-07-11T14:21:52.267619", + "publishedAt": null, + "lastAttemptAt": "2026-07-11T14:21:52.267619", + "attempts": 1, + "runNumber": 166, + "wordCount": 3098, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "ํญ์ผ๋๋น๋ฐฉ๋ฒ", + "์ ๊ธฐ์๊ธ์ ์ฝ", + "์๋์ง๋ฐ์ฐ์ฒ", + "์ ๊ธฐ์๊ธํ ์ธ", + "ํ๊ตญ์ ๋ ฅ", + "์ ๋ถ์ง์์ ๋", + "๋๋ฐฉ๋น์ง์" + ], + "metaDescription": "2026๋ ํญ์ผ ๋๋น ๋ฐฉ๋ฒ, ์ ๊ธฐ์๊ธ ์ ์ฝ ํ๋ถํฐ ์๋์ง๋ฐ์ฐ์ฒยท์ ๊ธฐ์๊ธ ๋ณต์งํ ์ธ ์ ์ฒญ ์กฐ๊ฑด๊ณผ ๋ฐฉ๋ฒ๊น์ง ์ค์ํ ์ค์ฌ์ผ๋ก ์ ๋ฆฌํ์ต๋๋ค.", + "contentPreview": "7์ ์ค์์ ์ ์ด๋ค๋ฉด์ ๋ฒ์จ๋ถํฐ ๋ฎ ๊ธฐ์จ์ด 35๋๋ฅผ ๋๋๋๋ ๋ ์ด ๋๊ณ ์์ต๋๋ค. ๋ด์ค์์๋ ์ฐ์ผ ํญ์ผํน๋ณด ์์์ด๊ณ , ์์ด์ปจ ์์ด๋ ๋ฒํฐ๊ธฐ ํ๋ ๋ ์จ๊ฐ ๊ณ์๋๊ณ ์์ฃ . ๊ทธ๋ฐ๋ฐ ํญ์ผ ๋๋น๋ผ๊ณ ํ๋ฉด ๋ณดํต ๋ฌผ ๋ง์ด ๋ง์๊ธฐ, ๊ทธ๋ ์ฐพ๊ธฐ ๊ฐ์ ์ด์ผ๊ธฐ๋ง ๋ ์ฌ๋ฆฌ๊ธฐ ์ฌ์ด๋ฐ, ์ง์ฅ์ธ์ด๋ ์์์ ์ ์ ์ฅ์์๋ ์ฌ์ค ๋ ํ์ค์ ์ธ ๊ณ ๋ฏผ์ด ์์ต๋๋ค. ๋ฐ๋ก '์ด๋ฒ ์ฌ๋ฆ ์ ๊ธฐ์๊ธ ์ผ๋ง...", + "articleType": "how_to" + }, + { + "post_id": "2026-07-11_๋ฐฉํ๋์ํ ์ผ_9469a9c4", + "keyword": "๋ฐฉํ ๋์ ํ ์ผ", + "title": "2026๋ ์ฌ๋ฆ๋ฐฉํ ๋์ ํ ์ผ 5๊ฐ์ง, ์ง์ ๋ค ํด๋ณด๊ณ ์ฐ๋ ์์ง ํ๊ธฐ", + "status": "pending", + "source": "manual", + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "blogUrl": "", + "errorMessage": null, + "createdAt": "2026-07-11T14:17:43.183375", + "publishedAt": null, + "lastAttemptAt": "2026-07-11T14:17:43.183375", + "attempts": 1, + "runNumber": 166, + "wordCount": 2153, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "๋ฐฉํ๋์ํ ์ผ", + "์ฌ๋ฆ๋ฐฉํ", + "๊ตญ๋ด์ฌํ", + "๊ฐ๋ฆ์ฌํ", + "ํ๋ก์ผ๊ตฌ์ง๊ด", + "๋ทํ๋ฆญ์ค๋๋ผ๋ง", + "ํฐ๋น" + ], + "metaDescription": "2026๋ ์ฌ๋ฆ๋ฐฉํ ๋์ ํ ์ผ์ ์ง์ ์คํํด๋ณธ ํ๊ธฐ์ ๋๋ค. ๊ฐ๋ฆ ์ฌํ, ํ๋ก์ผ๊ตฌ ์ง๊ด, ๋ทํ๋ฆญ์ค ์ ์ฃผํ, ์ํ๊ด ๋๋ค์ด๊น์ง ์ค์ ๋น์ฉ๊ณผ ๊ฒฝํ์ ์์งํ๊ฒ ์ ๋ฆฌํ์ต๋๋ค.", + "contentPreview": "์ ๊ฐ ๋ฐฉํํ๊ณ ๋๋๊น ๋ฒ์จ๋ถํฐ ๋จธ๋ฆฌ๊ฐ ์ง๋๊ฑฐ๋ฆฌ๋๋ผ๊ณ ์. ์ ํฌ ์ง ์ฒซ์งธ๊ฐ ์ด๋ฑํ๊ต 5ํ๋ ์ธ๋ฐ ์ด๋ฒ ์ฌ๋ฆ๋ฐฉํ์ด 7์ 20์ผ๋ถํฐ 8์ 17์ผ๊น์ง, ๊ฑฐ์ ํ ๋ฌ ๊ฐ๊น์ด์ ๋๋ค. ํ์ฌ๋ ๋ค๋ ์ผ ํ๊ณ ์ ๋ ์ง์ ์๊ณ , ๊ทธ๋ ๋ค๊ณ ๋งค์ผ ํ์๋ง ๋บ๋บ์ด ๋๋ฆฌ๊ธฐ๋ ์ซ์ด์ ์๋ ๋ถํฐ ๋๋ฆ๋๋ก ๋ฐฉํ ๋ฃจํด์ ์ง๊ณ ์๋๋ฐ์. ์ฌํด๋ ๊ตญ๋ด ์ฌํ ํ ๋ฒ, ํ๋ก์ผ๊ตฌ ์ง๊ด ๋ ๋ฒ, ์ํ๊ด ์ธ ...", + "articleType": "analysis" + }, + { + "post_id": "2026-07-11_์ฅ๋ง๊ฑด๊ฐ๊ด๋ฆฌ_5c3cb373", + "keyword": "์ฅ๋ง ๊ฑด๊ฐ ๊ด๋ฆฌ", + "title": "2026๋ ์ฅ๋ง ๊ฑด๊ฐ ๊ด๋ฆฌ, ์ ๋ ์ด๋ ๊ฒ ๋๋นํ๊ณ ์์ต๋๋ค", + "status": "pending", + "source": "manual", + "blogId": "blog1", + "blogName": "HOGU What?", + "blogUrl": "", + "errorMessage": null, + "createdAt": "2026-07-11T14:12:38.359211", + "publishedAt": null, + "lastAttemptAt": "2026-07-11T14:12:38.359211", + "attempts": 1, + "runNumber": 166, + "wordCount": 2753, + "faqCount": 4, + "category": "์ผ๋ฐ", + "labels": [ + "์ฅ๋ง๊ฑด๊ฐ๊ด๋ฆฌ", + "์ฅ๋ง์ฒ ๊ฑด๊ฐ", + "์ฌ๋ฆ๊ฑด๊ฐ๊ด๋ฆฌ", + "์์ค๋ ์๋ฐฉ", + "์ ์ต๊ธฐ", + "์ค๋ด์ต๋", + "๋๋ฐฉ๋ณ" + ], + "metaDescription": "2026๋ ์ฅ๋ง์ฒ ๊ฑด๊ฐ ๊ด๋ฆฌ๋ฅผ ์ง์ ๊ฒฝํ ๊ธฐ๋ฐ์ผ๋ก ์ ๋ฆฌํ์ต๋๋ค. ์ต๋ ๊ด๋ฆฌ, ์์ค๋ ์๋ฐฉ, ๋ฌด๊ธฐ๋ ฅ์ฆ ๋์ฒ๋ฒ๊น์ง ์ค์ฉ์ ์ธ ์ฒดํฌ๋ฆฌ์คํธ๋ฅผ ํ์ธํด๋ณด์ธ์.", + "contentPreview": "์ฌํด๋ ์ฅ๋ง ์๋ณด๋ฅผ ๋ณด์๋ง์ ์ต๊ด์ฒ๋ผ ์ ์ต๊ธฐ ํํฐ๋ถํฐ ๊บผ๋์ต๋๋ค. ์๋ 7์ ์ด, ์ผ์ฃผ์ผ ๋ด๋ด ๋น๊ฐ ์ด์ด์ง๋ ์๊ธฐ์ ๊ฐ์๊ธฐ ์ด์ง๋ผ์ฆ๊ณผ ๋ฌด๊ธฐ๋ ฅํจ์ด ์ฌํด์ ธ์ ๋ณ์์ ์ฐพ์ ์ ์ด ์์ต๋๋ค. ๊ฒ์ฌ ๊ฒฐ๊ณผ ํน๋ณํ ์ด์์ ์์๋๋ฐ, ์์ฌ ์ ์๋์ด \"์ฅ๋ง์ฒ ์ต๋์ ๊ธฐ์ ๋ณํ๊ฐ ๋ชธ์ ์คํธ๋ ์ค๋ฅผ ์ค๋ค\"๊ณ ํ์๋๊ตฐ์. ๊ทธ ์ดํ๋ก ๋งค๋ ์ฅ๋ง ์๊ธฐ๊ฐ ๋๋ฉด ๋๋ฆ์ ์ฒดํฌ๋ฆฌ์คํธ๋ฅผ ๋ง๋ค์ด...", + "articleType": "analysis" + }, + { + "post_id": "2026-07-11_์ฅ๋ง๊ฑด๊ฐ๊ด๋ฆฌ_752720a3", + "keyword": "์ฅ๋ง ๊ฑด๊ฐ ๊ด๋ฆฌ", + "title": "์ฅ๋ง์ฒ ๊ฑด๊ฐ ๊ด๋ฆฌ, ๋ณ์๋น ํญํ ๋ง๋ ์ค์๋ณดํยท๊ฑด๊ฐ๋ณดํ ํ์ฉ๋ฒ (2026๋ ์ต์ )", + "status": "pending", + "source": "manual", + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "blogUrl": "", + "errorMessage": null, + "createdAt": "2026-07-11T12:56:01.435571", + "publishedAt": null, + "lastAttemptAt": "2026-07-11T12:56:01.435571", + "attempts": 1, + "runNumber": 166, + "wordCount": 3162, + "faqCount": 4, + "category": "์ผ๋ฐ", + "labels": [ + "์ฅ๋ง ๊ฑด๊ฐ ๊ด๋ฆฌ", + "์ค์์๋ฃ๋ณดํ", + "๊ตญ๋ฏผ๊ฑด๊ฐ๋ณดํ ๋ณธ์ธ๋ถ๋ด์ํ์ ", + "ํ์ํด๋ณดํ", + "์ฅ๋ง์ฒ ๋ณ์๋น", + "๊ฑด๊ฐ๋ณดํ ํ๊ธ", + "์ค์๋ณดํ ์ฒญ๊ตฌ๋ฐฉ๋ฒ" + ], + "metaDescription": "์ฅ๋ง ๊ฑด๊ฐ ๊ด๋ฆฌ์ ํจ๊ป ์ฑ๊ฒจ์ผ ํ ์ค์์๋ฃ๋ณดํ ์ฒญ๊ตฌ๋ฒ, ๊ตญ๋ฏผ๊ฑด๊ฐ๋ณดํ ๋ณธ์ธ๋ถ๋ด์ํ์ ํ๊ธ, ํ์ํด๋ณดํ ์ง์๊น์ง 2026๋ ์ต์ ์ ๋ณด๋ก ์ฝ๊ฒ ์ ๋ฆฌํ์ต๋๋ค.", + "contentPreview": "์์ฆ์ฒ๋ผ ์ฅ๋ง๊ฐ ๊ธธ์ด์ง๋ ์๊ธฐ์ ๊ฐ๊ธฐ, ์ฅ์ผ, ํผ๋ถ์งํ, ๊ด์ ํต์ฆ์ผ๋ก ๋ณ์ ์ฐพ๋ ๋ถ๋ค์ด ํ ๋์ด๋ฉ๋๋ค. ์ต๋ ๋๊ณ ๊ธฐ์จ ๋ณํ ์ฌํ ์ฅ๋ง์ฒ ๊ฑด๊ฐ ๊ด๋ฆฌ, ๋ค๋ค ์ ๊ฒฝ ์ฐ์์ฃ ? ๊ทธ๋ฐ๋ฐ ์ ์ ๋ณ์๋น๋ ์ฝ๊ฐ์ด ์์๋ณด๋ค ๋ง์ด ๋์์ ๋นํฉํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. ์ ๋ ์๋ ์ฅ๋ง์ฒ ์ ๋ฉฐ์น ์ฌ์ด ์ด๋น์ธํ๊ณผ, ์ ํ์ธ๊ณผ๋ฅผ ์ฐ๋ฌ์ ๋ค๋๋ฉด์ ์ง๋ฃ๋น๊ฐ ๊ฝค ๋์๋ ๊ฒฝํ์ด ์๋๋ฐ์, ์ด...", + "articleType": "analysis" + }, + { + "post_id": "2026-07-11_์ฌ๋ฆ๋ฐฉํ์๋ ๊ต์ก_e7a846c1", + "keyword": "์ฌ๋ฆ๋ฐฉํ ์๋ ๊ต์ก", + "title": "์ฌ๋ฆ๋ฐฉํ ์๋ ๊ต์ก, ํ์ ๋์ ์ฒดํ์ฌํ์ผ๋ก ์ฑ์๋ณธ 3์ฃผ ํ๊ธฐ", + "status": "pending", + "source": "manual", + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "blogUrl": "", + "errorMessage": null, + "createdAt": "2026-07-11T12:53:52.328457", + "publishedAt": null, + "lastAttemptAt": "2026-07-11T12:53:52.328457", + "attempts": 1, + "runNumber": 166, + "wordCount": 2709, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "์ฌ๋ฆ๋ฐฉํ์๋ ๊ต์ก", + "์ฒดํํ์ต์ฌํ", + "๊ฐ์กฑ์ฌํ", + "๊ตญ๋ฆฝ์ค์๊ณผํ๊ด", + "์ฌ๋ฆ์บ ํํ๊ธฐ", + "์ด๋ฑ์๋ ๊ต์ก", + "๋ฐฉํ๊ณํ" + ], + "metaDescription": "2026๋ 7์, ์ด๋ฑ ์๋ ์ 3์ฃผ๊ฐ ์ฒดํํ ์ฌ๋ฆ๋ฐฉํ ์๋ ๊ต์ก์ ์ง์ ์คํํด๋ณธ ํ๊ธฐ์ ๋๋ค. ๊ตญ๋ฆฝ๊ณผํ๊ด ์บ ํ, ๊ฐฏ๋ฒ ์ฒดํ, ์ค์ ๋น์ฉ๊น์ง ์์งํ๊ฒ ์ ๋ฆฌํ์ต๋๋ค.", + "contentPreview": "๋งค๋ ์ฌ๋ฆ๋ฐฉํ๋ง ๋๋ฉด ๋จธ๋ฆฌ๊ฐ ์ํ์ค๋ ๊ฒ ์ ํฌ ์ง ๋ฃจํด์ด์์ด์. ์ด๋ฑํ๊ต 4ํ๋ ์ฒซ์งธ๋ 7์ด ๋์งธ, ๋ ๋ค ๋ฐฉํํ๋ฉด ํ๋ฃจ ์ข ์ผ ์ง์์ ๊ฒ์๊ธฐ๋ ์จ๋ฆํ๋ ๊ฑธ ๋ณด๊ณ ์์ผ๋ฉด ์์ด ํฐ์ง๋๋ผ๊ณ ์. ๊ทธ๋์ 2026๋ 7์ ์ด๋ถํฐ 3์ฃผ ์ ๋ ์ผ์ ์ ์ก์์ ์ฌ๋ฆ๋ฐฉํ ์๋ ๊ต์ก์ ํ์ ๋์ ์ฒดํํ ์ฌํ์ผ๋ก ์ฑ์๋ณด๊ธฐ๋ก ํ์ต๋๋ค. ๊ฒฐ๋ก ๋ถํฐ ๋ง์๋๋ฆฌ๋ฉด ์๋ฒฝํ์ง ์์์ด์. ๋๋ ...", + "articleType": "analysis" + }, + { + "post_id": "2026-07-11_์ฒญ์ฝํต์ฅvs์ ๊ธ๋ชฉ๋๋ง๋ จ์ฌํ ํฌ๋น๊ต_bb0b25e5", + "keyword": "์ฒญ์ฝํต์ฅ vs ์ ๊ธ ๋ชฉ๋ ๋ง๋ จ ์ฌํ ํฌ ๋น๊ต", + "title": "์ฒญ์ฝํต์ฅ vs ์ ๊ธ, ๋ชฉ๋ ๋ง๋ จ ๋ญ๊ฐ ๋์๊น (2026๋ ๋น๊ต)", + "status": "pending", + "source": "manual", + "blogId": "blog1", + "blogName": "HOGU What?", + "blogUrl": "", + "errorMessage": null, + "createdAt": "2026-07-11T12:51:39.150023", + "publishedAt": null, + "lastAttemptAt": "2026-07-11T12:51:39.150023", + "attempts": 1, + "runNumber": 166, + "wordCount": 3143, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "์ฒญ์ฝํต์ฅ", + "์ ๊ธ", + "๋ชฉ๋๋ง๋ จ", + "์ฌํ ํฌ๋น๊ต", + "์ฒญ์ฝ๊ฐ์ ", + "์๊ธ์ ๊ธ๋น๊ต", + "๋ด์ง๋ง๋ จ" + ], + "metaDescription": "์ฒญ์ฝํต์ฅ๊ณผ ์ ๊ธ, ๋ชฉ๋ ๋ง๋ จ์ ๋ญ๊ฐ ๋ ์ ๋ฆฌํ ๊น์. 2026๋ ๊ธฐ์ค ์ค์ ์ด์ฉ ๊ฒฝํ๊ณผ ์ฒดํฌ๋ฆฌ์คํธ๋ก ์์งํ๊ฒ ๋น๊ตํด๋ดค์ต๋๋ค.", + "contentPreview": "์๋ ์ด๋ง๋์ฏค ํ๋ฐฐ๊ฐ ์ ํํ ๋ฌผ์ด๋ดค์ต๋๋ค. \"๊ณผ์ฅ๋, ์ 3๋ ์์ ๊ฒฐํผ์๊ธ ๋ชจ์์ผ ํ๋๋ฐ ์ฒญ์ฝํต์ฅ์ด ๋์์, ์ ๊ธ์ด ๋์์?\" ์๊ฐ ๋ง๋ฌธ์ด ๋งํ์ต๋๋ค. ์ ๋ 20๋ ๋ ์ํ ์ฐฝ๊ตฌ์์ ๋๊ฐ์ ๊ณ ๋ฏผ์ ํ์๊ฑฐ๋ ์. ๊ฒฐ๊ตญ ๊ทธ๋๋ ๋์ถฉ ๋ ๋ค ๋ค์๋๋ฐ, ์ง๊ธ ์์ ๋์ง์ด๋ณด๋ ๋ชฉ์ ์ ๋ฐ๋ผ ๋ต์ด ์์ ํ ๋ฌ๋๋ค๋ ๊ฑธ ๊นจ๋ฌ์์ต๋๋ค. ์ด๋ฒ ๊ธ์์๋ ์ ๊ฐ ์ค์ ๋ก ์ฒญ์ฝํต์ฅ๊ณผ ...", + "articleType": "comparison" + }, + { + "post_id": "2026-07-11_์์ด์ปจ์ ๊ธฐ์ธ์ ์ฝ_70940eed", + "keyword": "์์ด์ปจ ์ ๊ธฐ์ธ ์ ์ฝ", + "title": "์์ด์ปจ ์ ๊ธฐ์ธ ์ ์ฝ, 2026๋ ์ฌ๋ฆ์ ์ด ์ ๋ถ ์ง์ ์ ๋๊น์ง ์ฑ๊ธฐ์ธ์", + "status": "pending", + "source": "auto", + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "blogUrl": "", + "errorMessage": null, + "createdAt": "2026-07-11T12:12:57.757705", + "publishedAt": null, + "lastAttemptAt": "2026-07-11T12:12:57.757705", + "attempts": 1, + "runNumber": 164, + "wordCount": 4353, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "์์ด์ปจ์ ๊ธฐ์ธ์ ์ฝ", + "์ ๊ธฐ์๊ธ", + "์๋์ง๋ฐ์ฐ์ฒ", + "ํ์ํฌ์ธํธ์ ", + "ํ์ ์๋์ง์บ์๋ฐฑ", + "์ ๊ธฐ์๊ธ๋ณต์งํ ์ธ", + "์ ๋ถ์ง์์ ๋" + ], + "metaDescription": "2026๋ ์ฌ๋ฆ ์์ด์ปจ ์ ๊ธฐ์ธ ์ ์ฝ์ ์ํ ์๋์ง๋ฐ์ฐ์ฒ, ์ ๊ธฐ์๊ธ ๋ณต์งํ ์ธ, ํ์ํฌ์ธํธ์ , ํ์ ์๋์ง์บ์๋ฐฑ๊น์ง ๋์ ์กฐ๊ฑด๊ณผ ์ ์ฒญ ๋ฐฉ๋ฒ์ ํ๋ก ์ ๋ฆฌํ์ต๋๋ค.", + "contentPreview": "7์ ์ค์, ๋ฒ์จ ์์ด์ปจ์ ํ๋ฃจ ์ข ์ผ ์ผ๋๋ ์ง์ด ๋ง์์ก์ต๋๋ค. ๋ฌธ์ ๋ ์๋ ๋ณด๋ค ์ ๊ธฐ์๊ธ ์ฒด๊ณ๊ฐ ๋ ํ ๋ฒ ๋ฐ๋์๋ค๋ ์ ์ ๋๋ค. ๊ณ์ ๋ณ ์๊ธ ์ฐจ๋ฑ์ด ์ปค์ก๊ณ , ํ์์ฌ์ฉ๋ ๋ณด์ฅ๊ณต์ ๊ฐ์ ์ผ๋ถ ํ ์ธ ํญ๋ชฉ์ด ์ถ์๋๋ฉด์ '์์ด์ปจ ์ข ํ์๋ค๊ณ ์๊ธ์ด ์ด๋ ๊ฒ ๋์จ๋ค๊ณ ?'๋ผ๋ ๋ฐ์์ด ์ปค๋ฎค๋ํฐ๋ง๋ค ์ฌ๋ผ์ค๋ ์ํฉ์ ๋๋ค. ๋จ์ํ '์ ๊ฒ ํ์'๋ ๋ค์ง๋ง์ผ๋ก๋ ๋ถ์กฑํฉ๋๋ค. ์ ๋ ...", + "articleType": "analysis" + }, + { + "post_id": "2026-07-11_์ฌ๋ฆ๋๋ฐฉ๊ฟํ_dc756272", + "keyword": "์ฌ๋ฆ ๋๋ฐฉ ๊ฟํ", + "title": "์ฌ๋ฆ ๋๋ฐฉ ๊ฟํ ์ด์ ๋ฆฌ, ์ง์ฅ์ธ์ด ๋ค๋ ๋ณธ ์ค๋ด ๋๋ค์ด ์ฝ์ค", + "status": "published", + "source": "auto", + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "blogUrl": "https://hogugolfntraval.blogspot.com/2026/07/blog-post_11.html", + "errorMessage": null, + "createdAt": "2026-07-11T12:01:28.462874", + "publishedAt": "2026-07-11T12:01:29.763945", + "lastAttemptAt": "2026-07-11T12:01:29.763945", + "attempts": 2, + "runNumber": 164, + "wordCount": 4179, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "์ฌ๋ฆ๋๋ฐฉ๊ฟํ", + "์ฌ๋ฆ๋๋ค์ด", + "์ค๋ดํผ์", + "์์ฟ ์๋ฆฌ์", + "์ํ๊ด๋ฐ์ดํธ" + ], + "metaDescription": "35๋ ํญ์ผ์ ์ผ์ธ ๋์ ์ค๋ด๋ก! ์์ฟ ์๋ฆฌ์, ์ํ๊ด, ์ผํ๋ชฐ, ์ง์ฝ๊น์ง ์ง์ ๋ค๋ ๋ณธ ์ฌ๋ฆ ๋๋ฐฉ ๊ฟํ๊ณผ ๋น์ฉ, ํผ์ก ์๊ฐ๋, ์ฃผ์ํ ์ ์ ์์งํ๊ฒ ์ ๋ฆฌํ์ต๋๋ค.", + "contentPreview": "7์ ์ฒซ์งธ ์ฃผ ์ฃผ๋ง, ๋ฎ ์ต๊ณ ๊ธฐ์จ์ด 35๋๊น์ง ์ฌ๋ผ๊ฐ๋ค๋ ์๋ณด๋ฅผ ๋ณด๊ณ ๊ทธ๋ฅ ์ง์์ ์์ด์ปจ ํ๊ณ ๋ฒํธ๊น ํ๋ค๊ฐ ์ ๊ธฐ์๊ธ ๊ณ ์ง์ ์๊ฐ์ด ๋์ ๊ฒฐ๊ตญ ๋ฐ์ผ๋ก ๋๊ฐ์ต๋๋ค. ์ ๋ 30๋ ์ง์ฅ์ธ์ด๊ณ ์ฃผ๋ง๋ง๋ค ์ด๋๋ ๋๊ฐ์ผ ์ง์ฑ์ด ํ๋ฆฌ๋ ์ฑ๊ฒฉ์ธ๋ฐ, ์ด ๋์์๋ ์ฌ๋งํ ์ผ์ธ ํ๋์ ๋ค ํฌ๊ธฐํ๊ฒ ๋๋๋ผ๊ณ ์. ๊ทธ๋์ ์ด๋ฒ ์ฌ๋ฆ์ ์์ ์์ ํ๊ณ '์์ํ ์ค๋ด ๋๋ค์ด ์ฝ์ค'๋ง ๊ณจ...", + "articleType": "analysis" + }, + { + "post_id": "2026-07-11_์ฅ๋ง๊ฑด๊ฐ๊ด๋ฆฌ_a7082242", + "keyword": "์ฅ๋ง ๊ฑด๊ฐ ๊ด๋ฆฌ", + "title": "์ฅ๋ง์ฒ ๊ฑด๊ฐ ๊ด๋ฆฌ, 40๋ ์ง์ฅ์ธ์ ์ค์ฒ ์ฒดํฌ๋ฆฌ์คํธ", + "status": "skipped", + "source": "auto", + "blogId": "blog1", + "blogName": "HOGU What?", + "blogUrl": "https://www.hoguwhat.com/2026/07/40_01256264918.html", + "errorMessage": "blog1 ์ฃผ์ ๊ฐํธ โ ๋ณด๊ด", + "createdAt": "2026-07-11T11:51:34.906299", + "publishedAt": "2026-07-11T11:51:35.487791", + "lastAttemptAt": "2026-07-11T11:51:35.487791", + "attempts": 2, + "runNumber": 164, + "wordCount": 2955, + "faqCount": 4, + "category": "์ผ๋ฐ", + "labels": [ + "์ฅ๋ง๊ฑด๊ฐ๊ด๋ฆฌ", + "์ฅ๋ง์ฒ ๊ฑด๊ฐ", + "์ฌ๋ฆ์ฒ ๊ฑด๊ฐ๊ด๋ฆฌ", + "์์ค๋ ์๋ฐฉ", + "๊ด์ ํต์ฆ๊ด๋ฆฌ" + ], + "metaDescription": "์ฅ๋ง์ฒ ๊ฑด๊ฐ ๊ด๋ฆฌ, ์ต๋ยท์์ค๋ ยท๊ด์ ํต์ 40๋ ์ง์ฅ์ธ์ด ์ง์ ์ฑ๊ธฐ๋ฉฐ ์ ๋ฆฌํ ์ฒดํฌ๋ฆฌ์คํธ์ ์ํฉ๋ณ ๋ฐฉ๋ฒ์ ์๊ฐํฉ๋๋ค. ์ค๋๋ถํฐ ์ค์ฒ ๊ฐ๋ฅํ ํ์ ํ์ธํ์ธ์.", + "contentPreview": "7์ ๋ค์ด ๋น ์๋ณด๊ฐ ๊ณ์๋๋ฉด์ ๋ชธ์ด ์์ ๊ฐ์ง ์๋ค๋ ๊ฑธ ๋๊ผ์ต๋๋ค. ์์นจ์ ์ผ์ด๋๋ฉด ๋ชธ์ด ๋ถ๊ณ ๋ฌด๋ฆ์ด ๋ป๊ทผํ๊ณ , ์ฌ๋ฌด์ค์ ์์์์ด๋ ์ด์ํ๊ฒ ํผ๊ณคํจ์ด ๊ฐ์์ง ์๋๊ตฐ์. ์๋ ์ฅ๋ง ๋๋ ๋น์ทํ๋๋ฐ ๊ทธ๋ ๊ทธ๋ฅ '๋ ์จ ํ์ด๊ฒ ์ง' ํ๊ณ ๋๊ฒผ์ต๋๋ค. ์ฌํด๋ ์ข ๋ค๋ฅด๊ฒ ์ ๊ทผํด๋ณด์ ์ถ์ด์ ๊ด๋ จ ์๋ฃ๋ ์ฐพ์๋ณด๊ณ ์ ๋๋ฆ๋๋ก ์ฒดํฌ๋ฆฌ์คํธ๋ฅผ ๋ง๋ค์ด๋ดค์ต๋๋ค. 40๋ ๋์ด๊ฐ๋ฉด...", + "articleType": "analysis" + }, + { + "post_id": "2026-07-11_์๋ฌ๋ฌํ์จ๊ธ๋ฑ๋ฝ์์ธ๊ณผ๊ฐ์ธํฌ์์๋์๋ฒ_98d39f17", + "keyword": "์๋ฌ๋ฌ ํ์จ ๊ธ๋ฑ๋ฝ ์์ธ๊ณผ ๊ฐ์ธํฌ์์ ๋์๋ฒ", + "title": "์๋ฌ๋ฌ ํ์จ ๊ธ๋ฑ๋ฝ, 2026๋ ํ๋ฐ๊ธฐ ์ ์ด๋ฌ๋ - ๊ฐ์ธํฌ์์ ๋์๋ฒ ์ด์ ๋ฆฌ", + "status": "published", + "source": "auto", + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "blogUrl": "https://hoguasset.blogspot.com/2026/07/2026_01523211003.html", + "errorMessage": null, + "createdAt": "2026-07-11T11:43:36.216330", + "publishedAt": "2026-07-11T11:43:37.265214", + "lastAttemptAt": "2026-07-11T11:43:37.265214", + "attempts": 2, + "runNumber": 163, + "wordCount": 4285, + "faqCount": 4, + "category": "์ผ๋ฐ", + "labels": [ + "์๋ฌ๋ฌํ์จ", + "ํ์จ์ ๋ง", + "ํํ ํฌ", + "์ธํ์๊ธ", + "ํด์ธ์ฃผ์ํฌ์", + "ํํค์ง", + "๋ฏธ๊ตญ๊ธ๋ฆฌ" + ], + "metaDescription": "2026๋ ํ๋ฐ๊ธฐ ์๋ฌ๋ฌ ํ์จ ๊ธ๋ฑ๋ฝ ์์ธ๊ณผ ๊ฐ์ธํฌ์์ ๋์๋ฒ์ ์ ๋ฆฌํ์ต๋๋ค. ํด์ธ์ฃผ์, ์ธํ์๊ธ, ํํค์ง ๋ฑ ์ค์ ์ฒดํฌ๋ฆฌ์คํธ๋ฅผ ํ์ธํด๋ณด์ธ์.", + "contentPreview": "์์ฆ ํ์จ ์ฑ ์ผ๋ณผ ๋๋ง๋ค ์ซ์๊ฐ ๋กค๋ฌ์ฝ์คํฐ ๊ฐ์ต๋๋ค. ์์นจ์ 1350์๋์๋ค๊ฐ ์คํ์ 1400์ ๋์ด๊ฐ๊ณ , ๋ฉฐ์น ๋ค์ ๋ 1370์๋๋ก ๋ด๋ ค์ค๊ณ ... ํด์ธ์ง๊ตฌ ์ข ํ์๋ ๋ถ, ์๋ ์ ํ ๋ณด๋ด์ ๋ถ, ํด์ธ์ฃผ์ ํ์๋ ๋ถ์ด๋ผ๋ฉด ์์ฆ ํ์จ ๋ณ๋์ฑ์ด ์ฌ์์น ์๋ค๋ ๊ฑธ ๋ชธ์ผ๋ก ๋๋ผ์ จ์ ๊ฒ๋๋ค. ์ ๋ ๋ฏธ๊ตญ ETF ์ข ๋ด์๋ ์ํ๋ผ ํ์จ ๋ฐ ๋๋ง๋ค ๊ณ์ข ์์ต์ด ๊ฐ์ด ...", + "articleType": "analysis" + }, + { + "post_id": "2026-07-11_์์ด์ปจ์ ๊ธฐ์ธ์ ์ฝ_25dbca84", + "keyword": "์์ด์ปจ ์ ๊ธฐ์ธ ์ ์ฝ", + "title": "์์ด์ปจ ์ ๊ธฐ์ธ ์ ์ฝ, 26๋+์จํ๋ ์ดํฐ ์ง์ ํ ์คํธ ๊ฒฐ๊ณผ", + "status": "published", + "source": "auto", + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "blogUrl": "https://hogugolfntraval.blogspot.com/2026/07/26.html", + "errorMessage": null, + "createdAt": "2026-07-11T11:33:45.889705", + "publishedAt": "2026-07-11T11:33:47.104554", + "lastAttemptAt": "2026-07-11T11:33:47.104554", + "attempts": 2, + "runNumber": 163, + "wordCount": 3338, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "์์ด์ปจ์ ๊ธฐ์ธ์ ์ฝ", + "์ฌ๋ฆ์ ๊ธฐ์๊ธ", + "ํ์ ์๊ธ๊ณ์ฐ", + "๋๋ฐฉํจ์จ", + "์ ๊ธฐ์ธ์ ์ฝํ" + ], + "metaDescription": "์์ด์ปจ ์ ๊ธฐ์ธ ์ ์ฝ์ ์ํด 26๋ ์ค์ , ์จํ๋ ์ดํฐ, ์ฐจ๊ด์ํธ, ํํฐ ์ฒญ์๊น์ง ๋ณด๋ฆ๊ฐ ์ง์ ํ ์คํธํ์ต๋๋ค. ์ค์ ํจ๊ณผ ์์๋ ๋ฐฉ๋ฒ๊ณผ ์์๋ ๋ฐฉ๋ฒ, 2026๋ 7์ ์ค์ ์๊ธ ๋น๊ต๊น์ง ์ ๋ฆฌํ์ต๋๋ค.", + "contentPreview": "7์ ์ด๋ถํฐ ๋ฒ์จ ๋ฎ ์ต๊ณ ๊ธฐ์จ์ด 33๋๋ฅผ ๋๋๋ค๋ฉด์ ์ ํฌ ์ง๋ ์์ด์ปจ์ ๊ฑฐ์ ๋งค์ผ ํ๊ณ ์์ต๋๋ค. ์๋ ์ฌ๋ฆ ์ ๊ธฐ์๊ธ ๊ณ ์ง์๋ฅผ ๋ณด๊ณ ๊น์ง ๋๋๋ ๊ธฐ์ต์ด ์์ด์, ์ฌํด๋ ํด๊ฐ์ฒ ์์ ์ ์ ์์ด์ปจ ์ ๊ธฐ์ธ ์ ์ฝ ๋ฐฉ๋ฒ์ ํ๋์ฉ ์ง์ ํ ์คํธํด๋ณด๊ณ ์ค์ ๋ก ํจ๊ณผ๊ฐ ์์๋์ง ์์๋์ง ์์งํ๊ฒ ๊ธฐ๋กํด๋๋ ค๊ณ ํฉ๋๋ค. ์ ๋ ์ ๋ฌธ๊ฐ๊ฐ ์๋๋ผ ๊ทธ๋ฅ ์ํํธ ๊ฑฐ์ค 20ํ๋์ ์ฌ๋ 3...", + "articleType": "analysis" + }, + { + "post_id": "2026-07-11_์ฅ๋ง๊ฑด๊ฐ๊ด๋ฆฌ_2ed1e568", + "keyword": "์ฅ๋ง ๊ฑด๊ฐ ๊ด๋ฆฌ", + "title": "์ฅ๋ง์ฒ ๊ฑด๊ฐ ๊ด๋ฆฌ, 40๋ ์ง์ฅ์ธ์ด ์ง์ ๊ฒช๊ณ ์ ๋ฆฌํ์ต๋๋ค", + "status": "published", + "source": "auto", + "blogId": "blog1", + "blogName": "HOGU What?", + "blogUrl": "https://www.hoguwhat.com/2026/07/40.html", + "errorMessage": null, + "createdAt": "2026-07-11T11:25:14.883113", + "publishedAt": "2026-07-11T11:25:16.238250", + "lastAttemptAt": "2026-07-11T11:25:16.238250", + "attempts": 2, + "runNumber": 163, + "wordCount": 2922, + "faqCount": 4, + "category": "์ผ๋ฐ", + "labels": [ + "์ฅ๋ง๊ฑด๊ฐ๊ด๋ฆฌ", + "์ฌ๋ฆ์ฒ ๊ฑด๊ฐ", + "์์ค๋ ์๋ฐฉ", + "์ต๋๊ด๋ฆฌ", + "๊ด์ ํต๊ด๋ฆฌ" + ], + "metaDescription": "๋งค๋ ๋ฐ๋ณต๋๋ ์ฅ๋ง์ฒ ๋ํต, ๊ด์ ํต, ์์ค๋ ๊ฑฑ์ . 40๋ ์ง์ฅ์ธ์ด ์ง์ ์ต๋ ๊ด๋ฆฌ์ ๋์ฅ๊ณ ์ ๋ฆฌ๋ฅผ ์ค์ฒํ๋ฉฐ ๊ฒช์ ๊ฒฝํ๊ณผ ์ฒดํฌ๋ฆฌ์คํธ๋ฅผ ์ ๋ฆฌํ์ต๋๋ค.", + "contentPreview": "์ฌํด๋ ์ด๊น์์ด ์ฅ๋ง ์๋ณด๊ฐ ๋จ์๋ง์ ๋ชธ์ด ๋จผ์ ๋ฐ์ํ์ต๋๋ค. ๋ฌด๋ฆ์ด ๋ป๊ทผํ๊ณ ๋ํต์ด ์ฆ์์ง๋๊ตฐ์. ์๋ ์ด๋ง๋๋ ๋๊ฐ์์ต๋๋ค. ํ์ฌ ๋๋ฃ๋ค ์๊ธฐ ๋ค์ด๋ณด๋ ์ ๋ง ๊ทธ๋ฐ ๊ฒ ์๋์์ต๋๋ค. ์ต๋ ๋์ ๋ ์ ๋ ์ปจ๋์ ์ด ๋ฌด๋์ง๋ค๋ ์ฌ๋์ด ์ ๋ฐ ์ด์์ด์์ต๋๋ค. ๋งค๋ ๋ฐ๋ณต๋๋๋ฐ๋ ๋งค๋ฒ ์์ผ์ค๋ฝ๊ฒ ๋ชธ์ด ํ๋ ์ด์ , ๊ทธ๋ฆฌ๊ณ ์ค์ ๋ก ๋ญ ์ฑ๊ฒจ์ผ ๋ ๊ณ ์ํ๋์ง ์ ๊ฒฝํ๊ณผ ์๋ฃ...", + "articleType": "analysis" + }, + { + "post_id": "2026-07-11_์ฌ๋ฆ์บ ํ์ถ์ฒ_d9c5f364", + "keyword": "์ฌ๋ฆ ์บ ํ ์ถ์ฒ", + "title": "2026๋ ์ฌ๋ฆ ์บ ํ ์ถ์ฒ ์ ๊ผญ ํ์ธํ ์ ๋ถ ์ง์๊ธ 3๊ฐ์ง", + "status": "published", + "source": "auto", + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "blogUrl": "https://hoguasset.blogspot.com/2026/07/2026-3.html", + "errorMessage": null, + "createdAt": "2026-07-11T11:17:34.490253", + "publishedAt": "2026-07-11T11:17:35.353053", + "lastAttemptAt": "2026-07-11T11:17:35.353053", + "attempts": 2, + "runNumber": 162, + "wordCount": 4602, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "์ฌ๋ฆ์บ ํ์ถ์ฒ", + "๋ฌธํ๋๋ฆฌ์นด๋", + "๊ทผ๋ก์ํด๊ฐ์ง์์ฌ์ ", + "์ฒญ์๋ ์๋ จํ๋", + "์ ๋ถ์ง์๊ธ" + ], + "metaDescription": "์ฌ๋ฆ๋ฐฉํ ์บ ํ๋น ๋ถ๋ด์ด ๊ฑฑ์ ๋๋ค๋ฉด ๋ฌธํ๋๋ฆฌ์นด๋, ์ฒญ์๋ ์๋ จํ๋ ์ง์์ฌ์ , ๊ทผ๋ก์ ํด๊ฐ์ง์์ฌ์ ์ ํ์ธํด๋ณด์ธ์. ๋์ ์กฐ๊ฑด, ์ง์ ๊ธ์ก, ์ ์ฒญ ๋ฐฉ๋ฒ๊ณผ ์ค์ ์ ์ฒญ ๊ณผ์ ์ ์ํ์ฐฉ์ค๊น์ง ์ ๋ฆฌํ์ต๋๋ค.", + "contentPreview": "7์ ๋ค์ด ์์ด ์ฌ๋ฆ๋ฐฉํ ์บ ํ ์์๋ณด์๋ ๋ถ๋ค ๋ง์ผ์์ฃ . ์ ๋ ์๋ ์ ์์ด ์บ ํ ๋ณด๋ด๋ ค๊ณ ๊ฒ์ํ๋ค๊ฐ ํ๋ก๊ทธ๋จ๋น๋ง 40๋ง ์ ๋๋ ๊ฑธ ๋ณด๊ณ ํ ์นซํ๋ ๊ธฐ์ต์ด ์์ด์. ๊ทธ๋ฐ๋ฐ ๋ง์ ์ฐพ์๋ณด๋ ๋ฌธํ๋๋ฆฌ์นด๋๋ ์ฒญ์๋ ์๋ จํ๋ ์ง์์ฌ์ , ๊ทผ๋ก์ ํด๊ฐ์ง์์ฌ์ ๊ฐ์ ์ ๋๋ฅผ ํ์ฉํ๋ฉด ์บ ํ๋น ๋ถ๋ด์ ์๋นํ ์ค์ผ ์ ์๋๋ผ๊ณ ์. ๋ฌธ์ ๋ ์ด๋ฐ ์ ๋๋ค์ด ๊ฐ ๋ถ์ฒยท๊ธฐ๊ด๋ณ๋ก ํฉ์ด์ ธ ์...", + "articleType": "review" + }, + { + "post_id": "2026-07-11_ํญ์ผ๋๋น๋ฐฉ๋ฒ_f0ef48d3", + "keyword": "ํญ์ผ ๋๋น ๋ฐฉ๋ฒ", + "title": "7์ ํญ์ผ ๋๋น ๋ฐฉ๋ฒ, ์ผ์ธ ์ฝ์ํธยท์ฌํ ๋ค๋ ๋ณด๊ณ ์ง์ ๋๋ ๊ฒ๋ค ์ ๋ฆฌ", + "status": "pending", + "source": "auto", + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "blogUrl": "", + "errorMessage": null, + "createdAt": "2026-07-11T11:11:11.704388", + "publishedAt": null, + "lastAttemptAt": "2026-07-11T11:11:11.704388", + "attempts": 1, + "runNumber": 162, + "wordCount": 2117, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "ํญ์ผ๋๋น", + "์ฌ๋ฆ์ฌํ", + "์ผ์ธ๊ณต์ฐ", + "์ฝ์ํธ์ค๋น๋ฌผ", + "์ฌ๋ฆ์ฒ ๊ฑด๊ฐ", + "์จ์ด์งํ", + "์ผ๊ตฌ์ฅ์ง๊ด" + ], + "metaDescription": "7์ ํญ์ผ ์ ์ผ์ธ ์ฝ์ํธ์ ์ฌ๋ฆ ์ฌํ ๋ค๋ ์ค๋ฉฐ ์ง์ ๊ฒช์ ํญ์ผ ๋๋น ๋ฐฉ๋ฒ, ์ค๋น๋ฌผ ํ๊ธฐ์ ์์ฌ์ ๋ ์ ์ ์์งํ๊ฒ ์ ๋ฆฌํ์ต๋๋ค.", + "contentPreview": "์ง๋์ฃผ ํ ์์ผ์ ์ธ์ฒ ์ก๋์์ ์ด๋ฆฐ ์ฌ๋ฆ ํ์คํฐ๋ฒ ๋ค๋ ์๋๋ฐ, ์ง์ง ์ด๋ ๋ฎ ์ต๊ณ ๊ธฐ์จ์ด 35๋๊น์ง ์ฌ๋ผ๊ฐ์ ๊ฐ์ฅ ์ ๋ถํฐ ์ค ์ ์๋ ์ฌ๋๋ค ์ค์ ์ด์ง๋ผ์ฆ ํธ์ํ๋ ๋ถ๋ค์ด ๊ฝค ์์์ด์. ์ ๋ ๊ทธ๋ ๋ฌผ ๋ ๋ณ ๋ค๊ณ ๊ฐ๋๋ฐ ๊ณต์ฐ ์์ํ๊ธฐ ์ ์ ๋ค ๋ง์ ๋ฒ๋ ค์ ๋์ค์ ํธ์์ ๊ฐ๊ฒฉ์ด ํ์๋ณด๋ค ํจ์ฌ ๋น์ธ๊ฒ ํ๋ ค๋ ์ด ์๋ฐ์ ์์๋ ๊ธฐ์ต์ด ๋๋ค์. ์ด๋ฒ ์ฌ๋ฆ์ ํญ์ผ ๋๋น...", + "articleType": "how_to" + }, + { + "post_id": "2026-07-11_์ฌ๋ฆ๋ ์์ถ์ฒ_e83144e5", + "keyword": "์ฌ๋ฆ ๋ ์ ์ถ์ฒ", + "title": "2026๋ ์ฌ๋ฆ ๋ ์ ์ถ์ฒ, ์ฌํ ํฌ ์ฑ 5๊ถ ์์ง ํ๊ธฐ", + "status": "skipped", + "source": "auto", + "blogId": "blog1", + "blogName": "HOGU What?", + "blogUrl": "https://www.hoguwhat.com/2026/07/2026-5_02131127046.html", + "errorMessage": "blog1 ์ฃผ์ ๊ฐํธ โ ๋ณด๊ด", + "createdAt": "2026-07-11T11:03:20.426157", + "publishedAt": "2026-07-11T11:03:21.448908", + "lastAttemptAt": "2026-07-11T11:03:21.448908", + "attempts": 2, + "runNumber": 162, + "wordCount": 3312, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "์ฌ๋ฆ๋ ์์ถ์ฒ", + "์ฌํ ํฌ์ฑ ", + "์ง์ฅ์ธ์ฌํ ํฌ", + "์ฌ๋ฆํด๊ฐ๋ ์", + "๋์์ฌ๋ฆฌํ" + ], + "metaDescription": "2026๋ ์ฌ๋ฆ ๋ ์ ์ถ์ฒ์ผ๋ก ์ฌํ ํฌ ์ฑ 5๊ถ์ ์ง์ ์ฝ๊ณ ๋น๊ตํ์ต๋๋ค. ์ด๋ก ์ยท์ค์ฉ์ยท์ต๊ด์ ๊ตฌ๋ถ๋ฒ, ์ฒดํฌ๋ฆฌ์คํธ, ์ด๋ณด์ ์ค์๊น์ง ์ค์ ๊ฒฝํ์ ๋ฐํ์ผ๋ก ์ ๋ฆฌํ์ต๋๋ค.", + "contentPreview": "ํด๊ฐ์ฒ ๋ง ๋๋ฉด ์์ ๋งค๋์ '์ฌ๋ฆ ๋ ์ ์ถ์ฒ' ๋ฆฌ์คํธ๊ฐ ์์์ง๋๋ค. ์ ๋ ๋งค๋ ์ด๋ง๋์ฏค ์ฑ ์ ๋ช ๊ถ ๊ณจ๋ผ ๊ฐ๋ฐฉ์ ๋ฃ๊ณ ๋ค๋๋๋ฐ, ์ฌํด๋ ์ ๋ ์ฌํ ํฌ์ ๋ ๊ด๋ฆฌ์ ๊ดํ ์ฑ ๋ค์ ๋ง์ด ์ฑ๊ฒผ์ต๋๋ค. 40๋ ์ค๋ฐ์ ๋๊ธฐ๋ฉด์ ์ํด ์ค๋น์ ์์ฐ ๊ด๋ฆฌ์ ๋ํ ๊ฐ์ฆ์ด ์ปค์ก๊ธฐ ๋๋ฌธ์ ๋๋ค. ์ด๋ฒ ๊ธ์์๋ ์ค์ ๋ก ์ฌ๋ฆํด๊ฐ ๊ธฐ๊ฐ ๋์ ์ฝ์ ์ฌํ ํฌ ์ฑ 5๊ถ์ ๋๊ณ ์์งํ๊ฒ ๋๋ ์ ...", + "articleType": "review" + }, + { + "post_id": "2026-07-11_์ฌ๋ฆ๋ ์์ถ์ฒ_6a0fcceb", + "keyword": "์ฌ๋ฆ ๋ ์ ์ถ์ฒ", + "title": "2026๋ ์ฌ๋ฆํด๊ฐ ๊ฒฝ์ ยท์ฌํ ํฌ ๋์ ์ถ์ฒ - ํด๊ฐ์ฒ ์ ๊ธ์ต ๊ณต๋ถํ๋ ๋ฒ", + "status": "published", + "source": "auto", + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "blogUrl": "https://hoguasset.blogspot.com/2026/07/2026_026838950.html", + "errorMessage": null, + "createdAt": "2026-07-11T05:58:20.256970", + "publishedAt": "2026-07-11T05:58:21.295129", + "lastAttemptAt": "2026-07-11T05:58:21.295129", + "attempts": 2, + "runNumber": 162, + "wordCount": 3542, + "faqCount": 4, + "category": "์ผ๋ฐ", + "labels": [ + "์ฌ๋ฆ๋ ์์ถ์ฒ", + "์ฌํ ํฌ๋์", + "๊ฒฝ์ ๊ณต๋ถ", + "๊ธ์ต๊ต์ก", + "์์ฐ๋ฐฐ๋ถ", + "์ฃผ์ํฌ์์ ๋ฌธ", + "ํ๊ตญ์ํ" + ], + "metaDescription": "2026๋ ์ฌ๋ฆํด๊ฐ ๋ ์ฝ๊ธฐ ์ข์ ๊ฒฝ์ ยท์ฌํ ํฌ ๋์๋ฅผ ๋์ด๋๋ณ๋ก ์ถ์ฒํฉ๋๋ค. ์ ๋ฌธ์๋ถํฐ ์ค์ ํฌ์์๊น์ง, ๋ฌด๋ฃ ๊ธ์ต๊ต์ก ์ฝํ ์ธ ํ์ฉ๋ฒ๊น์ง ํจ๊ป ์ ๋ฆฌํ์ต๋๋ค.", + "contentPreview": "๋งค๋ ์ฌ๋ฆํด๊ฐ ์์ฆ์ด ๋๋ฉด ์์ ๊ฐ์๋ ์ฌํ ํฌ ์ฝ๋๊ฐ ๋ถ์ ์ ๋๋ค. 2026๋ ์๋ฐ๊ธฐ์๋ ๊ธ๋ฆฌ ์ธํ ๊ธฐ๋๊ฐ๊ณผ ๋ฏธ๊ตญ ์ฆ์ ๋ณ๋์ฑ ๋๋ฌธ์ ์์ ๊ธ์ด๋ ํฌ์๋๋ฅผ ๋๊ณ ๊ณ ๋ฏผํ๋ ์ง์ฅ์ธ๋ค์ด ๋ง์๋๋ฐ์, ์ ์ '์ด๋์๋ถํฐ ๊ณต๋ถํด์ผ ํ ์ง ๋ชจ๋ฅด๊ฒ ๋ค'๋ ๋ถ๋ค์ด ์์ธ๋ก ๋ง์ต๋๋ค. ํด๊ฐ์ฒ ๋นํ๊ธฐ ์์์, ํน์ ์์ํ ์นดํ์์ ์งง๊ฒ๋ผ๋ ๊ฒฝ์ ์ ํ ๊ถ ์ฝ์ด๋๋ฉด ํ๋ฐ๊ธฐ ์ฌํ ํฌ ๊ณํ์ ์ธ...", + "articleType": "review" + }, + { + "post_id": "2026-07-11_์ฅ๋ง๊ฑด๊ฐ๊ด๋ฆฌ_e2105a52", + "keyword": "์ฅ๋ง ๊ฑด๊ฐ ๊ด๋ฆฌ", + "title": "์ฅ๋ง์ฒ ๊ฑด๊ฐ ๊ด๋ฆฌ, ์ฌํ ๋ค๋๋ค ์ง์ ๊ฒช๊ณ ๋์์ผ ์๊ฒ ๋ ๊ฒ๋ค", + "status": "pending", + "source": "auto", + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "blogUrl": "", + "errorMessage": null, + "createdAt": "2026-07-11T05:52:49.256556", + "publishedAt": null, + "lastAttemptAt": "2026-07-11T05:52:49.256556", + "attempts": 1, + "runNumber": 162, + "wordCount": 2226, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "์ฅ๋ง ๊ฑด๊ฐ ๊ด๋ฆฌ", + "์ฅ๋ง์ฒ ๊ฑด๊ฐ", + "์ฌ๋ฆ ์ฌํ ๊ฑด๊ฐ", + "์ฅ๋ง์ฒ ์ฌํ", + "์ต๋ ๊ด๋ฆฌ", + "์์ค๋ ์๋ฐฉ", + "๊ด์ ํต์ฆ ๊ด๋ฆฌ" + ], + "metaDescription": "์ฅ๋ง์ฒ ๊ฑด๊ฐ ๊ด๋ฆฌ, ์ค์ ์ฌํ ์ค ์ง์ ๊ฒช์ ์ต๋ ๋ณํ์ ๊ด์ ํต์ฆ, ์์ค๋ ์๋ฐฉ๋ฒ๊น์ง ์์งํ ๊ฒฝํ๋ด์ผ๋ก ์ ๋ฆฌํ์ต๋๋ค. 2026๋ 7์ ๊ธฐ์ค ์ค์ ํ ๊ณต์ .", + "contentPreview": "7์ ์ด๋ถํฐ ๊ฑฐ์ ๋งค์ผ ๋น ์์์ด๋ผ ์ด๋ฒ ์ฃผ๋ง์ ๊ณํํ๋ ๊ฐ๋ฆ ์ฌํ์ ๊ฐ๊น ๋ง๊น ๋ฉฐ์น ์ ๊ณ ๋ฏผํ์ด์. ๊ฒฐ๊ตญ ๋ค๋ ์๋๋ฐ, ์ดํ์งธ ๋๋ ๋ ์์นจ๋ถํฐ ๋ชธ์ด ์ถ ์ฒ์ง๊ณ ๋ชฉ์ด ์นผ์นผํด์ง๋๋ผ๊ณ ์. ํ์ ๊ฐ๊ธฐ ์ ์ ๊ฑธ๋ฆฌ๋ ์ฒด์ง์ธ๋ฐ ์ด๋ฒ์ ํ์คํ ๋ฌ๋์ต๋๋ค. ๋์ค์ ์๊ณ ๋ณด๋ ์ฅ๋ง์ฒ ํน์ ์ ์ต๋์ ๊ธฐ์ ๋ณํ๊ฐ ๋ชธ์ ์๊ฐ๋ณด๋ค ํฐ ๋ถ๋ด์ ์ค๋ค๋ ๊ฑธ ๊ทธ๋ ์ฒ์ ์ฒด๊ฐํ์ด์. ๊ทธ๋...", + "articleType": "analysis" + }, + { + "post_id": "2026-07-11_์ฌ๋ฆ์บ ํ์ถ์ฒ_e711a2ef", + "keyword": "์ฌ๋ฆ ์บ ํ ์ถ์ฒ", + "title": "์ฌ๋ฆ ์บ ํ ์ถ์ฒ, ์๋ ์ ์ง์ ๋ณด๋ด๋ณด๊ณ ๋๋ ์ ์ ๋ฆฌ", + "status": "skipped", + "source": "auto", + "blogId": "blog1", + "blogName": "HOGU What?", + "blogUrl": "https://www.hoguwhat.com/2026/07/blog-post_11.html", + "errorMessage": "blog1 ์ฃผ์ ๊ฐํธ โ ๋ณด๊ด", + "createdAt": "2026-07-11T05:44:38.747844", + "publishedAt": "2026-07-11T05:44:39.332316", + "lastAttemptAt": "2026-07-11T05:44:39.332316", + "attempts": 2, + "runNumber": 162, + "wordCount": 3557, + "faqCount": 4, + "category": "์ผ๋ฐ", + "labels": [ + "์ฌ๋ฆ์บ ํ์ถ์ฒ", + "์๋ ์บ ํ", + "๋ฐฉํ์บ ํ", + "์ฒญ์๋ ์๋ จ์", + "์บ ํ๋น์ฉ" + ], + "metaDescription": "์ฌ๋ฆ ์บ ํ ์ถ์ฒ์ ๊ณ ๋ฏผ ์ค์ด๋ผ๋ฉด ์ฐธ๊ณ ํ์ธ์. ์๋ 4๋ฐ 5์ผ ์บ ํ๋ฅผ ์ง์ ๋ณด๋ด๋ณธ ๊ฒฝํ๊ณผ ์ฒดํฌ๋ฆฌ์คํธ, ํ๋ถ ๊ท์ ์ฃผ์์ฌํญ๊น์ง ์ค์ ํ๊ธฐ๋ก ์ ๋ฆฌํ์ต๋๋ค.", + "contentPreview": "7์ ์ด๋ง ๋๋ฉด ๋จ์ฒด ์ฑํ ๋ฐฉ๋ง๋ค ์ฌ๋ฆ ์บ ํ ์ด์ผ๊ธฐ๊ฐ ๋์ณ๋ฉ๋๋ค. ์ ํฌ ์ง๋ ์๋ ์ฌ๋ฆ ์์ด๋ฅผ ์ฒ์์ผ๋ก 4๋ฐ 5์ผ์ง๋ฆฌ ์บ ํ์ ๋ณด๋๋๋ฐ, ์ ์ฒญํ๊ธฐ ์ ๊น์ง ๊ณ ๋ฏผํ ์๊ฐ์ด ์ ์ฒญ ํ ๊ฒฐ์ ํ ์๊ฐ๋ณด๋ค ํจ์ฌ ๊ธธ์์ต๋๋ค. ๊ฐ๊ฒฉํ๋ง ๋ด๋ 30๋ง ์๋๋ถํฐ 100๋ง ์ ๋๋ ๊ณณ๊น์ง ํธ์ฐจ๊ฐ ์ปค์, ๋ญ ๊ธฐ์ค์ผ๋ก ๊ณจ๋ผ์ผ ํ ์ง ๊ฐ์ด ์ ์กํ๋๋ผ๊ณ ์. ์ด ๊ธ์ ๊ทธ๋ ์ ๊ฐ ์ค์ ๋ก ์์๋ณด...", + "articleType": "review" + }, + { + "post_id": "2026-07-11_๋ฐฉํ๋์ํ ์ผ_4e79a7b9", + "keyword": "๋ฐฉํ ๋์ ํ ์ผ", + "title": "๋ฐฉํ ๋์ ํ ์ผ, ์ด๋ฒ์ '๋ ๊ณต๋ถ'๋ก ์ฑ์๋ณด์ธ์ - ๋ํ์ยท์ฒญ์๋ ์๋ ์ฑ๊ธธ ๊ธ์ต ์ ๋ ์ด์ ๋ฆฌ", + "status": "pending", + "source": "manual", + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "blogUrl": "", + "errorMessage": null, + "createdAt": "2026-07-11T03:20:33.873668", + "publishedAt": null, + "lastAttemptAt": "2026-07-11T03:20:33.873668", + "attempts": 1, + "runNumber": 161, + "wordCount": 3469, + "faqCount": 4, + "category": "์ผ๋ฐ", + "labels": [ + "๋ฐฉํ๋์ํ ์ผ", + "์ฒญ๋ ๋์ฝ๊ณ์ข", + "์ฒญ๋ ๋ด์ผ์ ์ถ๊ณ์ข", + "๊ทผ๋ก์ฅํ๊ธ", + "๊ตญ๊ฐ์ฅํ๊ธ", + "๋๋ฃจ๋๋ฆฌ์ฌํ๋ณดํ๋ฃ", + "๋ํ์์๋ฅด๋ฐ์ดํธ" + ], + "metaDescription": "๋ฐฉํ ๋์ ํ ์ผ, ๋ํ์ ๊ทผ๋ก์ฅํ๊ธยท๋๋ฃจ๋๋ฆฌ ์ง์๋ถํฐ ์ฒญ๋ ๋์ฝ๊ณ์ข ๊ฐ์ ํ์ด๋ฐ๊น์ง ๋์น๊ธฐ ์ฌ์ด ๊ธ์ต ์ ๋๋ฅผ ๋์ ์กฐ๊ฑด๊ณผ ์ ์ฒญ ๋ฐฉ๋ฒ์ผ๋ก ์ ๋ฆฌํ์ต๋๋ค.", + "contentPreview": "7์ ์ค์, ๋ฒ์จ ์ฌ๋ฆ๋ฐฉํ์ด ์์๋ ํ๊ต๋ค์ด ๋ง์ต๋๋ค. ์ ํฌ ์ง๋ ํฐ์์ด๊ฐ ๋ฐฉํ์ ๋ง์ ์์นจ๋ถํฐ ๋ฆ์ ์ผ๋งค๊ฒฝ์ธ๋ฐ, ๋งค๋ ์ด๋ง๋ ๋๋ผ๋ ๊ฒ ์์ด์. ๋ฐฉํ ๋์ ํ ์ผ์ ์ฌํ์ด๋ ํ์์ผ๋ก๋ง ์ฑ์ฐ๊ธฐ๋ณด๋ค, ์ด ์๊ธฐ์๋ง ์ฑ๊ธธ ์ ์๋ ๊ธ์ต ์ ๋๋ค์ด ์์ธ๋ก ๋ง๋ค๋ ๊ฒ๋๋ค. ํนํ ๋ํ์ ์๋ ๊ฐ ์๋ค๋ฉด ๋ฐฉํ ์ค ์๋ฅด๋ฐ์ดํธ ์๋ ๊ด๋ฆฌ, ๊ทผ๋ก์ฅํ๊ธ ์ ์ฒญ, ์ฒญ๋ ์์ฐํ์ฑ ์ํ...", + "articleType": "analysis" + }, + { + "post_id": "2026-07-11_์ฌ๋ฆ์บ ํ์ถ์ฒ_b4b2c630", + "keyword": "์ฌ๋ฆ ์บ ํ ์ถ์ฒ", + "title": "2026๋ ์ฌ๋ฆ ์บ ํ ์ถ์ฒ, ์ง์ ์์๋ณด๊ณ ์กฐ์นด ๋ณด๋ด๋ณธ ํ๊ธฐ (๊ฐ๊ฒฉยทํ๊ธฐ ์ด์ ๋ฆฌ)", + "status": "pending", + "source": "manual", + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "blogUrl": "", + "errorMessage": null, + "createdAt": "2026-07-11T03:18:12.811296", + "publishedAt": null, + "lastAttemptAt": "2026-07-11T03:18:12.811296", + "attempts": 1, + "runNumber": 161, + "wordCount": 2704, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "์ฌ๋ฆ์บ ํ", + "์ฌ๋ฆ์บ ํ์ถ์ฒ", + "์์ด์บ ํ", + "์์ฐ์ฒดํ์บ ํ", + "์คํฌ์ธ ์บ ํ", + "๋ฐฉํ์บ ํ", + "์บ ํํ๊ธฐ" + ], + "metaDescription": "2026๋ ์ฌ๋ฆ ์บ ํ ์ถ์ฒ, ์กฐ์นด๋ฅผ ์ง์ ๋ณด๋ด๋ณธ ์์ฐ์ฒดํ ์บ ํ์ ์คํฌ์ธ ์บ ํ ์๋ด ํ๊ธฐ๋ฅผ ํตํด ๊ฐ๊ฒฉ, ์ฅ๋จ์ , ์์ฝ ์๊ธฐ๊น์ง ์์งํ๊ฒ ์ ๋ฆฌํ์ต๋๋ค.", + "contentPreview": "๋งค๋ 7์๋ง ๋๋ฉด ์กฐ์นด ๋ ์ ๋ฐฉํ ๋๋ฌธ์ ํ์ํํ ์ ์ ํ๊ฐ ์ต๋๋ค. \"์ผ์ด, ์ ์ข ์ด๋ ์บ ํ ๋ณด๋ผ ๋ฐ ์๋?\" ์ ์ผ ๋ญ ์ฌํ ๋ค๋๋ ๊ฑฐ ์ข์ํ๊ณ ์ด๊ฒ์ ๊ฒ ์์๋ณด๋ ๊ฑธ ์ฆ๊ธฐ๋ ์ฑ๊ฒฉ์ด๋ผ ์๋ ๋ถํฐ ์์ ์ ๊ฐ ๋์์ ์บ ํ๋ฅผ ์์๋ณด๊ธฐ ์์ํ๋๋ฐ์, ์ฌํด๋ก ๋ฒ์จ 3๋ ์งธ ์ฌ๋ฆ ์บ ํ๋ฅผ ์กฐ์ฌํ๊ณ ์ค์ ๋ก ์กฐ์นด๋ฅผ ๋ ๊ณณ์ด๋ ๋ณด๋ด๋ดค์ต๋๋ค. ์ฒ์์ ๊ทธ๋ฅ ์ธํฐ๋ท์ ๊ฒ์ํด์ ํ๊ธฐ ...", + "articleType": "review" + }, + { + "post_id": "2026-07-11_์ฌ๋ฆ๋ฐฉํ์๋ ๊ต์ก_bde996a6", + "keyword": "์ฌ๋ฆ๋ฐฉํ ์๋ ๊ต์ก", + "title": "์ฌ๋ฆ๋ฐฉํ ์๋ ๊ต์ก๋น ์ง์ถ, ์ ๋ ์ด๋ ๊ฒ ๊ด๋ฆฌํ์ต๋๋ค (2026)", + "status": "pending", + "source": "manual", + "blogId": "blog1", + "blogName": "HOGU What?", + "blogUrl": "", + "errorMessage": null, + "createdAt": "2026-07-11T03:14:07.535683", + "publishedAt": null, + "lastAttemptAt": "2026-07-11T03:14:07.535683", + "attempts": 1, + "runNumber": 161, + "wordCount": 3242, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "์ฌ๋ฆ๋ฐฉํ ์๋ ๊ต์ก", + "๊ต์ก๋น ์ธ์ก๊ณต์ ", + "๋ฐฉํ ํ์๋น", + "๊ฐ๊ณ๋ถ ๊ด๋ฆฌ", + "์ฐ๋ง์ ์ฐ", + "์๋ ๊ต์ก๋น ์ ์ฝ", + "๋ฐฉ๊ณผํํ๊ต" + ], + "metaDescription": "์ฌ๋ฆ๋ฐฉํ ์๋ ๊ต์ก๋น ๋ถ๋ด, ์ธ์ก๊ณต์ ์ ์์ฐ ๊ด๋ฆฌ๋ก ์ค์ธ ์ค์ ๊ฒฝํ์ ์ ๋ฆฌํ์ต๋๋ค. ๋ฐฉ๊ณผํํ๊ต, ์ง์ญ ํ๋ก๊ทธ๋จ ํ์ฉ๋ฒ๊น์ง ํจ๊ป ํ์ธํด๋ณด์ธ์.", + "contentPreview": "7์ ์ด ์์ด ๋ฐฉํ์์ด ๋๋์๋ง์ ํ์ ์๋ด ์ ํ๊ฐ ์ธ ํต์ด๋ ์์ต๋๋ค. ์์ด ํน๊ฐ, ์ํ ์ ํ๋ฐ, ์ฝ๋ฉ ์บ ํ๊น์ง ์๋ด๋ฅผ ๋ฐ๊ณ ๋๋ ๊ฒฌ์ ์๋ง ์ธ ์ฅ์ด๋๊ตฐ์. ๋ค ํฉ์น๋ ํ ๋ฌ์ 90๋ง ์์ด ํ์ฉ ๋์์ต๋๋ค. ์ ํฌ ์ง๋ง ๊ทธ๋ฐ ๊ฒ ์๋๋ผ ํ์ฌ ๋๋ฃ๋ค๋ ์ฌ๋ฆ๋ฐฉํ๋ง ๋๋ฉด ์นด๋๊ฐ์ด ๋ ๋ฐฐ๋ก ๋ด๋ค๊ณ ํ์์ฐ์ ํฉ๋๋ค. ์ ๋ 40๋ ์ํน๋ง์ด์ ๋ ์์ด ์๋น ์ ์ฅ์์, ๋ฐฉ...", + "articleType": "analysis" + }, + { + "post_id": "2026-07-11_๊น๋ถ์ฅ์ฒซ์ธ์๋ฆฌ๋ทฐ_9f894593", + "keyword": "๊น๋ถ์ฅ ์ฒซ์ธ์ ๋ฆฌ๋ทฐ", + "title": "[1ํธ] ๊น๋ถ์ฅ 2026 ์ฒซ์ธ์ ์์ง ํ๊ธฐ, ์ง์ฅ์ธ์ด ๋ด๋ ๊ณต๊ฐ๋ ๊น", + "status": "published", + "source": "auto", + "blogId": "blog1", + "blogName": "HOGU What?", + "blogUrl": "https://www.hoguwhat.com/2026/07/2026_02759751.html", + "errorMessage": null, + "createdAt": "2026-07-11T00:00:00", + "publishedAt": "2026-07-11T14:59:09.420043", + "lastAttemptAt": "2026-07-11T14:59:09.420043", + "attempts": 3, + "runNumber": 0, + "wordCount": 2780, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "๋๋ผ๋ง๋ฆฌ๋ทฐ", + "๊น๋ถ์ฅ", + "2026๋๋ผ๋ง", + "์คํผ์ค๋๋ผ๋ง", + "์ง์ฅ์ธ๊ณต๊ฐ", + "๋๋ผ๋ง์ถ์ฒ", + "์์ฒญํ๊ธฐ" + ], + "metaDescription": "๊น๋ถ์ฅ ์ฒซ์ธ์ ๋ฆฌ๋ทฐ, 30๋ ์ง์ฅ์ธ์ด ์ง์ ์์ฒญ ํ ๋จ๊ธด ์์งํ ํ๊ธฐ์ ๋๋ค. ์ฅ๋ฅด์ ๋ถ์๊ธฐ, ์์ฒญ ์ ์ฒดํฌํฌ์ธํธ๊น์ง ์คํฌ ์์ด ์ ๋ฆฌํ์ต๋๋ค.", + "contentPreview": "์ง๋์ฃผ ๊ธ์์ผ ๋ฐค, ์ผ๊ทผํ๊ณ ์ง์ ์์ ๋งฅ์ฃผ ํ ์บ ๋ฐ๊ณ ๋ทํ๋ฆญ์ค ์ผฐ๋ค๊ฐ ์ฐ์ฐํ '๊น๋ถ์ฅ' ์ฒซ ํ๋ฅผ ๋ณด๊ฒ ๋์ด์. ์๋ ์ ๋ ์ฌํ ํฌ๋ ๋ถ์ ๊ด๋ จ ์ฝํ ์ธ ์์ฃผ๋ก ๋ธ๋ก๊ทธ๋ฅผ ์ด์ํ๋๋ฐ, ์ด๋ฒ์ ์ข ๋ค๋ฅธ ์๊ธฐ๋ฅผ ํด๋ณผ๊น ํด์. ์ง์ฅ์ธ ์ ์ฅ์์ ๋ณธ ๋๋ผ๋ง ๋ฆฌ๋ทฐ๋ผ๋ ๊ฒ ์๊ทผ ์ฌ๋ฏธ์๋๋ผ๊ณ ์. ๊ทธ๋์ ์ด๋ฒ์ '๊น๋ถ์ฅ'์ ์ด 3ํธ์ ๊ฑธ์ณ ์ ๋ฆฌํด๋ณด๊ธฐ๋ก ํ์ต๋๋ค. ์ด๋ฒ 1ํธ์ ...", + "articleType": "review" + }, + { + "post_id": "2026-07-11_๊น๋ถ์ฅ๋ฑ์ฅ์ธ๋ฌผ๋ถ์_06abd73e", + "keyword": "๊น๋ถ์ฅ ๋ฑ์ฅ์ธ๋ฌผ ๋ถ์", + "title": "[2ํธ] ๊น๋ถ์ฅ ๋ฑ์ฅ์ธ๋ฌผ ๊ด๊ณ๋์ ๋ฐฐ์ฐ ์ฐ๊ธฐ๋ ฅ ์์ง ํ๊ฐ 2026", + "status": "published", + "source": "auto", + "blogId": "blog1", + "blogName": "HOGU What?", + "blogUrl": "https://www.hoguwhat.com/2026/07/2026_02060121843.html", + "errorMessage": null, + "createdAt": "2026-07-11T00:00:00", + "publishedAt": "2026-07-11T15:01:08.696353", + "lastAttemptAt": "2026-07-11T15:01:08.696353", + "attempts": 3, + "runNumber": 0, + "wordCount": 2543, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "๋๋ผ๋ง๋ฆฌ๋ทฐ", + "๊น๋ถ์ฅ", + "๊น๋ถ์ฅ๋ฑ์ฅ์ธ๋ฌผ", + "์์ง์ญ", + "์ฃผ์์ฑ", + "SBS๋๋ผ๋ง", + "๋๋ผ๋ง์ถ์ฒ" + ], + "metaDescription": "๊น๋ถ์ฅ ๋ฑ์ฅ์ธ๋ฌผ ๊ด๊ณ๋์ ์์ง์ญ ์ฃผ์์ฑ ์๋์ ๋ฐฐ์ฐ ์ฐ๊ธฐ๋ ฅ์ ์ง์ ์์ฒญํ ๊ฒฝํ์ผ๋ก ์์งํ๊ฒ ๋ถ์ํ์ต๋๋ค. ํธ๋ถํธ ๊ฐ๋ฆฌ๋ ์ง์ ๋ ๋ด์์ด์.", + "contentPreview": "1ํธ ์ฐ๊ณ ๋์ ๋๊ธ๋ก \"๋ฑ์ฅ์ธ๋ฌผ ํท๊ฐ๋ฆฐ๋ค\"๋ ๋ง์์ ๊ฝค ๋ง์ด ํด์ฃผ์ จ์ด์. ์ ๋ ์ฒ์ ๋ณผ ๋ ๊ทธ๋ฌ๊ฑฐ๋ ์. ์ด๋ฐ 3ํ๊น์ง๋ ์์ง์ญ์ด ์ฐ๊ธฐํ๋ ๊น๋ถ์ฅ ํ ๋ช ํํ ๋ง ์ง์คํ๋ฉด ๋๋๋ฐ, 4ํ ๋์ด๊ฐ๋ฉด์ ์ธ๋ฌผ์ด ์ฐ๋ฅด๋ฅด ์์์ง๋๊น ์ ๋ ๋ ธํธ์ ์ด๋ฆ ์ ์ด๊ฐ๋ฉด์ ๋ดค์ต๋๋ค. ๊ทธ๋์ ์ด๋ฒ 2ํธ์ ์์ ์ธ๋ฌผ ๊ด๊ณ๋ ๋ฐฐ์ฐ ์ฐ๊ธฐ๋ ฅ๋ง ํ๊ณ ๋ค์ด์ ์ ๋ฆฌํด๋ณด๋ ค๊ณ ์. ์ ๋ ์ด ๋๋ผ๋ง๋ฅผ SB...", + "articleType": "drama_review" + }, + { + "post_id": "2026-07-11_๊น๋ถ์ฅ๊ฒฐ๋ง์ดํ๋ณ์ _991a0444", + "keyword": "๊น๋ถ์ฅ ๊ฒฐ๋ง ์ดํ ๋ณ์ ", + "title": "[3ํธ] ๊น๋ถ์ฅ ๊ฒฐ๋ง ์ดํ, OSTยท์ ์ฌ์ ์ถ์ฒ๊ณผ ๋ณ์ 2026", + "status": "published", + "source": "auto", + "blogId": "blog1", + "blogName": "HOGU What?", + "blogUrl": "https://www.hoguwhat.com/2026/07/blog-post_12.html", + "errorMessage": null, + "createdAt": "2026-07-11T00:00:00", + "publishedAt": "2026-07-11T15:05:37.501644", + "lastAttemptAt": "2026-07-11T15:05:37.501644", + "attempts": 3, + "runNumber": 0, + "wordCount": 2546, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "๋๋ผ๋ง๋ฆฌ๋ทฐ", + "๊น๋ถ์ฅ", + "๋๋ผ๋ง๊ฒฐ๋ง", + "OST์ถ์ฒ", + "๋๋ผ๋ง๋ณ์ ", + "2026๋๋ผ๋ง", + "์ง์ฅ์ธ๋๋ผ๋ง" + ], + "metaDescription": "๊น๋ถ์ฅ ๊ฒฐ๋ง ์คํฌ์ ์ดํ, OST ์ถ์ฒ๊ณก, ์ ๊ฐ์ธ ๋ณ์ ๊น์ง ์ง์ ๋ค ๋ณด๊ณ ๋๋ ์์งํ ํ๊ธฐ๋ฅผ ์ ๋ฆฌํ์ด์. ์ ์ฌ์ ์ถ์ฒ๋ ํจ๊ป ๋ด์์ต๋๋ค.", + "contentPreview": "1ํธ ์ธ ๋๋ง ํด๋ ์ด๋ ๊ฒ 3ํธ๊น์ง ์ค๊ฒ ๋ ์ค ๋ชฐ๋์ด์. ์ฒ์์ ๊ทธ๋ฅ ์ฌ๋ฐ๊ธธ๋ ๊ฐ๋ณ๊ฒ ํ๊ธฐ ๋จ๊ธฐ๋ ค๋ ๊ฑฐ์๋๋ฐ, ๋ฑ์ฅ์ธ๋ฌผ ํ๊ณ ๋ค๋ค ๋ณด๋ ์ด๋์ ๊ฒฐ๋ง๊น์ง ๋ค ๋ณด๊ณ ์ด๋ ๊ฒ ์ด์ ๋ฆฌ ๊ธ์ ์ฐ๊ณ ์๋ค์. ์ ๋ ์ง๋ ์ฃผ๋ง์ ๋ง์ง๋ง ํ๊น์ง ๋ชฐ์๋ณด๊ณ ๋์ ํ์ฐธ ๋ฉํ๋ ์์ ์์๊ฑฐ๋ ์. ๊ฒฐ๋ง์ด ์์ ๋ฐ์ด๋ผ๊ธฐ๋ณด๋ค๋, ์์์ ํ๋๋ฐ ๊ทธ ๋ฐฉ์์ด ์ข ์๋ฆฟํ๋ค๊ณ ํด์ผ ํ๋. ์ด๋ฒ ...", + "articleType": "analysis" + }, + { + "post_id": "2026-07-10_๋ฏธ๊ตญ์ฐ์ค๊ธ๋ฆฌ๊ฒฐ์ ํ๊ตญ์ฆ์์ํฅ๋ถ์_a214d0ef", + "keyword": "๋ฏธ๊ตญ ์ฐ์ค ๊ธ๋ฆฌ ๊ฒฐ์ ํ๊ตญ ์ฆ์ ์ํฅ ๋ถ์", + "title": "๋ฏธ๊ตญ ์ฐ์ค ๊ธ๋ฆฌ ๊ฒฐ์ , ํ๊ตญ ์ฆ์ ์ํฅ ์ด์ ๋ฆฌ (2026.7)", + "status": "published", + "source": "auto", + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "blogUrl": "https://hoguasset.blogspot.com/2026/07/20267.html", + "errorMessage": null, + "createdAt": "2026-07-10T23:30:32.144393", + "publishedAt": "2026-07-10T23:30:33.394934", + "lastAttemptAt": "2026-07-10T23:30:33.394934", + "attempts": 2, + "runNumber": 160, + "wordCount": 4499, + "faqCount": 4, + "category": "์ผ๋ฐ", + "labels": [ + "์ฐ์ค๊ธ๋ฆฌ", + "FOMC", + "ํ๊ตญ์ฆ์", + "๊ธ๋ฆฌ๊ฒฐ์ ", + "์ฝ์คํผ์ ๋ง" + ], + "metaDescription": "2026๋ 7์ FOMC๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ฏธ๊ตญ ์ฐ์ค ๊ธ๋ฆฌ ๊ฒฐ์ ์ด ํ๊ตญ ์ฆ์, ํ์จ, ์ธ๊ตญ์ธ ์๊ธ์ ์ด๋ป๊ฒ ์ฐ๊ฒฐ๋๋์ง ์ค์ ์ฌ๋ก์ ํจ๊ป ์ ๋ฆฌํ์ต๋๋ค. ํฌ์ ์ ํ์ธํ ์ฒดํฌํฌ์ธํธ๊น์ง ๋ด์์ต๋๋ค.", + "contentPreview": "์์ฆ ๋ด์ค ๋ณด๋ฉด ํ๋ฃจ๊ฐ ๋ฉ๋ค ํ๊ณ '์ฐ์ค(Fed)'์ด๋ผ๋ ๋จ์ด๊ฐ ๋์ต๋๋ค. ๊ทธ๋ฐ๋ฐ ๋ง์ \"๊ทธ๋์ ์ด๊ฒ ๋ด ์ฃผ์ ๊ณ์ข๋ ๋ฌด์จ ์๊ด์ธ๋ฐ?\"๋ผ๊ณ ๋ฌผ์ผ๋ฉด ๋ช ํํ๊ฒ ๋ตํ๊ธฐ ์ด๋ ค์ด ๋ถ๋ค์ด ๋ง์ต๋๋ค. ์ ๋ ์ฒ์ ์ฃผ์์ ์์ํ์ ๋๋ ๋ฏธ๊ตญ ๊ธ๋ฆฌ ๋ด์ค๊ฐ ๋์ค๋ฉด ๊ทธ๋ฅ ํ๋ ค ๋๊ฒผ๋๋ฐ, ๋ช ๋ ์ค์ ์ผ๋ก ๊ฒช์ด๋ณด๋ ์ฐ์ค ๊ธ๋ฆฌ ๊ฒฐ์ ์ด ๋ฐํ๋๋ ๋ ์ฝ์คํผ๊ฐ ์ถ๋ ์ด๋ ๊ฑธ ์ฌ๋ฌ ๋ฒ ๋ดค์ต๋...", + "articleType": "sports_review" + }, + { + "post_id": "2026-07-10_์ ์ฃผํ์ฅ๋ง์์ฌ๋์ ์์๊ฐ๋์์จ์๋ง์ง_d1deb279", + "keyword": "์ ์ฃผ ํ์ฅ๋ง์ ์ฌ๋ ์ ์ ์๊ฐ๋์ ์จ์ ๋ง์ง", + "title": "์ ์ฃผ ํ์ฅ๋ง์ ์ฌ๋ ์ ์ ์๊ฐ๋์ ์จ์ ๋ง์ง ํ๊ธฐ", + "status": "published", + "source": "auto", + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "blogUrl": "https://hogugolfntraval.blogspot.com/2026/07/blog-post.html", + "errorMessage": null, + "createdAt": "2026-07-10T23:19:10.730576", + "publishedAt": "2026-07-10T23:19:11.788813", + "lastAttemptAt": "2026-07-10T23:19:11.788813", + "attempts": 2, + "runNumber": 160, + "wordCount": 4580, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "์ ์ฃผํ์ฅ๋ง์", + "์ ์ฃผ์ฌํ", + "์ ์ฃผ๋ง์ง", + "ํ์ฅ๋ง์๋ง์ง", + "์ ์ฃผ๊ฐ๋ณผ๋งํ๊ณณ" + ], + "metaDescription": "2024๋ 5์ ์ฐํด์ ์ ์ฃผ ํ์ฅ๋ง์์ ์ง์ ๋ค๋ ์ค๋ฉฐ ์ฌ๋ ์ ์ ์๊ฐ๋, ๊ณจ๋ชฉ ์จ์ ๋ง์ง, ์ ๋ช ๋ง์ง ๋น๊ต, ๋น์ฉ๊น์ง ์๊ฐ๋๋ณ๋ก ์ ๋ฆฌํ ์ค์ ๋ฐฉ๋ฌธ ํ๊ธฐ์ ๋๋ค.", + "contentPreview": "์๋ 5์ ์ด ์ฐํด ๋ ์ ์ฃผ ํ์ฅ๋ง์์ ๋ค๋ ์์ต๋๋ค. ์ฌ์ค ์ ๋ ์ ์ฃผ๊ฐ ์ฒ์์ด ์๋์์ด์. 3๋ ์ ์ ํ ๋ฒ ๊ฐ๋ค๊ฐ ์ฌ๋์ ์น์ฌ์ ์ ๋๋ก ๊ตฌ๊ฒฝ๋ ๋ชป ํ๊ณ ๋์์จ ๊ธฐ์ต์ด ์์๊ฑฐ๋ ์. ๊ทธ๋๋ ์คํ 1์์ฏค ๋์ฐฉํ๋๋ฐ ๊ฒฝ๊ธฐ์ ์๋ถํฐ ์ธํ๊ฐ ์ด๋ง์ด๋งํด์ ์ฌ์ง ํ ์ฅ ์ฐ๋๋ฐ๋ ์ค์ ์์ผ ํ์ต๋๋ค. ๊ทธ๋์ ์ด๋ฒ์๋ ์์ ํ๊ณ ์๊ฐ๋๋ฅผ ๋ฐ๊ฟ์ ๊ฐ๋ดค์ด์. ์์นจ ์ผ์ฐ, ๊ทธ๋ฆฌ๊ณ ...", + "articleType": "travel_guide" + }, + { + "post_id": "2026-07-10_์ด์ง์ฑ๊ณตํ๊ณ ๋์ํํํ๊ฒ3๊ฐ์ง_0d48bc4b", + "keyword": "์ด์ง ์ฑ๊ณตํ๊ณ ๋์ ํํํ ๊ฒ 3๊ฐ์ง", + "title": "์ด์ง ์ฑ๊ณตํ๊ณ ๋์ ํํํ ๊ฒ 3๊ฐ์ง, 2026๋ ์ง์ฅ์ธ ์์ง ํ๊ธฐ", + "status": "pending", + "source": "auto", + "blogId": "blog1", + "blogName": "HOGU What?", + "blogUrl": "", + "errorMessage": null, + "createdAt": "2026-07-10T23:10:36.399050", + "publishedAt": null, + "lastAttemptAt": "2026-07-10T23:10:36.399050", + "attempts": 1, + "runNumber": 160, + "wordCount": 2960, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "์ด์ง์ฑ๊ณต", + "์ด์งํํ", + "์ง์ฅ์ธ์ฌํ ํฌ", + "ํด์ง๊ธ", + "์ฐ๋ดํ์", + "๊ฒฝ๋ ฅ๊ด๋ฆฌ", + "๊ทผ๋ก๊ณ์ฝ์" + ], + "metaDescription": "์ด์ง ์ฑ๊ณตํ๊ณ ๋์ ํํํ ๊ฒ 3๊ฐ์ง๋ฅผ ์ง์ฅ์ธ์ ์ค์ ๊ฒฝํ์ผ๋ก ์ ๋ฆฌํ์ต๋๋ค. ํด์ง๊ธ, ํฌ๊ด์๊ธ์ , ์ถํด๊ทผ ์๊ฐ๊น์ง ์ด์ง ์ ๊ผญ ํ์ธํ ์ฒดํฌ๋ฆฌ์คํธ๋ฅผ ๋ด์์ต๋๋ค.", + "contentPreview": "์๋ ์ด๋ง๋์ฏค์ด์์ต๋๋ค. 8๋ ๋ค๋๋ ํ์ฌ๋ฅผ ๋์์ ์ฐ๋ด 15% ์ฌ๋ ค์ฃผ๋ ๊ณณ์ผ๋ก ์ด์ง ์ฑ๊ณตํ๋ค๊ณ ์ฃผ๋ณ์ ์๋๊น์ง ํ์๋๋ฐ์. 1๋ ์ด ์ง๋ ์ง๊ธ ์์งํ ๋งํ๋ฉด ํํ๋๋ ๋ถ๋ถ์ด ๊ฝค ์์ต๋๋ค. ์ฐ๋ด์ด ์ค๋ฅด๋ฉด ๋ฌด์กฐ๊ฑด ์ข์ ์ ํ์ด๋ผ๊ณ ์๊ฐํ๋ ์ ์ฐฉ๊ฐ์ ์ค๋ ํ์ด๋ณด๋ ค๊ณ ํฉ๋๋ค. ์ด์ง์ ์ค๋น ์ค์ธ ๋ถ์ด๋ผ๋ฉด ์ ์ฒ๋ผ ๋ค๋ฆ๊ฒ ๊นจ๋ซ์ง ์๋๋ก ๋ฏธ๋ฆฌ ์ฒดํฌํด๋ณด์๋ฉด ์ข๊ฒ ์ต๋๋ค.๐ก ...", + "articleType": "analysis" + }, + { + "post_id": "2026-07-10_ํ์ด์ฌ๋ ํ3๊ฐ์ํ์ค์ ์ธ์์๋๊ฒ๋ค_1e47bc6b", + "keyword": "ํ์ด์ฌ ๋ ํ 3๊ฐ์ ํ ์ค์ ์ธ ์ ์๋ ๊ฒ๋ค", + "title": "ํ์ด์ฌ ๋ ํ 3๊ฐ์, ์ค์ ๋ก ๋ญ ํ ์ ์์๋์ง 2026๋ ํ๊ธฐ", + "status": "pending", + "source": "manual", + "blogId": "blog1", + "blogName": "HOGU What?", + "blogUrl": "", + "errorMessage": null, + "createdAt": "2026-07-10T12:46:20.741609", + "publishedAt": null, + "lastAttemptAt": "2026-07-10T12:46:20.741609", + "attempts": 1, + "runNumber": 159, + "wordCount": 3196, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "ํ์ด์ฌ ๋ ํ", + "ํ์ด์ฌ 3๊ฐ์", + "์ ๋ฌด ์๋ํ", + "์ง์ฅ์ธ ๋ถ์ ", + "ํ๋ก๊ทธ๋๋ฐ ๋ ํ", + "์์ ์๋ํ", + "ํ์ด์ฌ ๊ณต๋ถ๋ฒ" + ], + "metaDescription": "ํ์ด์ฌ ๋ ํ 3๊ฐ์ ์ง์ ํด๋ณธ ํ๊ธฐ์ ๋๋ค. ์ค์ ๋ก ์ธ ์ ์๋ ์์ค, ์ฒดํฌ๋ฆฌ์คํธ, ํํ ์ค์์ ์ํฉ๋ณ ์ถ์ฒ ๋ฐฉ๋ฒ๊น์ง ์์งํ๊ฒ ์ ๋ฆฌํ์ต๋๋ค.", + "contentPreview": "์๋ ๋ง๋ถํฐ ํด๊ทผํ๊ณ ๋งค์ผ 30๋ถ์ฉ ํ์ด์ฌ์ ๊ณต๋ถํ์ต๋๋ค. ์ฒ์์ ๊ทธ๋ฅ ์์ ์๋ํ ํ๋๋ง ๋ง๋ค์ด๋ณด์๋ ๋ง์์ด์๋๋ฐ, 3๊ฐ์์ด ์ง๋๊ณ ๋๋ ์๊ฐ๋ณด๋ค ์ธ ์ ์๋ ๊ฒ ๋ง์์ง๊ณ ์๊ฐ๋ณด๋ค ์ ๋๋ ๊ฒ๋ ๋ถ๋ช ํด์ก์ต๋๋ค. 40๋ ์ค๋ฐ์ ์๋ก์ด ์ธ์ด๋ฅผ ๋ฐฐ์ด๋ค๋ ๊ฒ ์ฝ์ง ์์๋๋ฐ, ์ง์ ๊ฒช์ ์ํ์ฐฉ์ค๋ฅผ ์์งํ๊ฒ ์ ๋ฆฌํด๋ด ๋๋ค. ํ์ด์ฌ ๋ ํ์ ๊ณ ๋ฏผํ๋ ์ง์ฅ์ธ์ด๋ผ๋ฉด ์ฐธ๊ณ ๊ฐ ...", + "articleType": "analysis" + }, + { + "post_id": "2026-07-10_์ฝ์คํผ์ฝ์ค๋ฅ2026ํ๋ฐ๊ธฐ์ ๋งํต์ฌ์ ๋ฆฌ_8b4103fe", + "keyword": "์ฝ์คํผ ์ฝ์ค๋ฅ 2026 ํ๋ฐ๊ธฐ ์ ๋ง ํต์ฌ ์ ๋ฆฌ", + "title": "์ฝ์คํผ ์ฝ์ค๏ฟฝ๋ค 2026 ํ๋ฐ๊ธฐ ์ ๋ง ํต์ฌ ์ ๋ฆฌ, ์ง๊ธ ์ฒดํฌํฌ์ธํธ", + "status": "published", + "source": "auto", + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "blogUrl": "https://hoguasset.blogspot.com/2026/07/2026_01975398323.html", + "errorMessage": null, + "createdAt": "2026-07-10T12:40:24.924211", + "publishedAt": "2026-07-10T12:40:25.965357", + "lastAttemptAt": "2026-07-10T12:40:25.965357", + "attempts": 2, + "runNumber": 158, + "wordCount": 3060, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "์ฝ์คํผ์ ๋ง", + "์ฝ์ค๋ฅ์ ๋ง", + "2026ํ๋ฐ๊ธฐ์ฆ์", + "์ฃผ์์์ฅ๋ํฅ", + "๊ธ๋ฆฌ์ ๋ง" + ], + "metaDescription": "2026๋ ํ๋ฐ๊ธฐ ์ฝ์คํผ ์ฝ์ค๋ฅ ์ ๋ง์ ๊ธ๋ฆฌ, ์ค์ , ๋ฐ๋์ฒด ์ ํฉ ๊ธฐ์ค์ผ๋ก ์ ๋ฆฌํ์ต๋๋ค. ๊ณต์ ๊ธฐ๊ด ์๋ฃ ํ์ธ๋ฒ๊ณผ ๊ฐ์ธ ํฌ์์ ์ฒดํฌ๋ฆฌ์คํธ๊น์ง ํจ๊ป ์ดํด๋ณด์ธ์.", + "contentPreview": "์์ฆ ์ ์ฌ ๋จน๊ณ ์ปคํผ ํ ์ ๋ค๊ณ ์ค๋ฉด ํ์๋ค๋ผ๋ฆฌ ๊ผญ ๋์ค๋ ์๊ธฐ๊ฐ ์ฝ์คํผ ์๊ธฐ์ ๋๋ค. ์ ๋ ํด๊ทผ๊ธธ์ ์ต๊ด์ฒ๋ผ ์ฆ๊ถ ์ฑ์ ์ผ๋ณด๋๋ฐ, ์๋ฐ๊ธฐ ๋ด๋ด ๋๋ฐ๊ธฐํ๋ ์ง์๊ฐ 7์ ๋ค์ด์๋ ๋ฐฉํฅ์ ๋ชป ์ก๊ณ ์๋ค๋ ๋๋์ ์ง์ธ ์๊ฐ ์๋๋ผ๊ณ ์. ํนํ ์ฝ์ค๋ฅ ์ชฝ ๊ณ์ข๋ฅผ ๊ฐ์ง ์ง์ธ๋ค์ ๋ฐ๋ฑ์ด๋ค ์กฐ์ ์ด๋ค ๋ง์ด ๊ณ์ ์๊ฐ๋ฆฌ๋๊น '์ด๋ฒ ํ๋ฐ๊ธฐ์ ๋๋์ฒด ์ด๋ป๊ฒ ๋๋ ๊ฑฐ๋'๊ณ ์ ํํ ...", + "articleType": "travel_guide" + }, + { + "post_id": "2026-07-10_๊ฒฝ์ฃผ๋น์ผ์น๊ธฐ๋์น๋ฉดํํํ๋์ฝ์ค์ง์ ๋ค๋ ์_df409d9b", + "keyword": "๊ฒฝ์ฃผ ๋น์ผ์น๊ธฐ ๋์น๋ฉด ํํํ๋ ์ฝ์ค ์ง์ ๋ค๋ ์์", + "title": "๊ฒฝ์ฃผ ๋น์ผ์น๊ธฐ ๋์น๋ฉด ํํํ๋ ์ฝ์ค, ์ง์ ๋ค๋ ์์ ์์งํ๊ฒ ์จ๋ด ๋๋ค", + "status": "pending", + "source": "auto", + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "blogUrl": "", + "errorMessage": null, + "createdAt": "2026-07-10T12:35:30.299999", + "publishedAt": null, + "lastAttemptAt": "2026-07-10T12:35:30.299999", + "attempts": 1, + "runNumber": 158, + "wordCount": 2073, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "๊ฒฝ์ฃผ์ฌํ", + "๊ฒฝ์ฃผ๋น์ผ์น๊ธฐ", + "๊ฒฝ์ฃผ๊ฐ๋ณผ๋งํ๊ณณ", + "๋ถ๊ตญ์ฌ", + "๋๋ฆ์", + "์ฒจ์ฑ๋", + "ํฉ๋ฆฌ๋จ๊ธธ" + ], + "metaDescription": "๊ฒฝ์ฃผ ๋น์ผ์น๊ธฐ ์ฌํ ์ง์ ๋ค๋ ์จ ํ๊ธฐ. ๋๋ฆ์, ์ฒจ์ฑ๋, ํฉ๋ฆฌ๋จ๊ธธ, ๋ถ๊ตญ์ฌ, ์๊ตด์, ๋๊ถ๊ณผ ์์ง๊น์ง ์ค์ ๋์ ๊ณผ ๋๊ธฐ ์๊ฐ, ์ฃผ์ฐจ ์ ๋ณด๋ฅผ ์์งํ๊ฒ ์ ๋ฆฌํ์ต๋๋ค.", + "contentPreview": "์ง๋๋ฌ ํ ์์ผ, ํ์ฌ ๋๋ฃ ์ ์ด๋ ์๋ฒฝ 6์์ ๊ฒฝ๊ธฐ๋์์ ์ถ๋ฐํด์ ๊ฒฝ์ฃผ๋ฅผ ๋ค๋ ์์ต๋๋ค. ์๋๋ 1๋ฐ 2์ผ๋ก ๊ณํ์ ์ก์๋ค๊ฐ ๋ค๋ค ์ผ์ ์ด ๊ผฌ์ฌ์ ๊ธํ๊ฒ ๋น์ผ์น๊ธฐ๋ก ๋ฐ๊ฟจ๋๋ฐ, ์์งํ ์ฒ์์ \"๊ฒฝ์ฃผ๋ฅผ ํ๋ฃจ ๋ง์ ์ ๋๋ก ๋ณผ ์ ์์๊น\" ๋ฐ์ ๋ฐ์ํ์ต๋๋ค. ๊ทผ๋ฐ ๋ง์ ๋ค๋ ์๋ณด๋ ๋์ ๋ง ์ ์ง๋ฉด ์๊ฐ๋ณด๋ค ์์ฐฌ ํ๋ฃจ๊ฐ ๋๋๋ผ๊ณ ์. ์ด๋ฒ ๊ธ์ 2026๋ 7์ ์ด ๊ธฐ์ค์ผ๋ก ...", + "articleType": "travel_guide" + }, + { + "post_id": "2026-07-10_์๊ฒฉ์ฆ๋ ํ์ผ๋กํฉ๊ฒฉํ์ฌ๋์ด์๋ ค์ฃผ๋๋ฐฉ๋ฒ_e937d45e", + "keyword": "์๊ฒฉ์ฆ ๋ ํ์ผ๋ก ํฉ๊ฒฉํ ์ฌ๋์ด ์๋ ค์ฃผ๋ ๋ฐฉ๋ฒ", + "title": "์๊ฒฉ์ฆ ๋ ํ์ผ๋ก ํฉ๊ฒฉํ ์ง์ฅ์ธ์ด ์๋ ค์ฃผ๋ ํ์ค์ ๋ฐฉ๋ฒ", + "status": "skipped", + "source": "auto", + "blogId": "blog1", + "blogName": "HOGU What?", + "blogUrl": "https://www.hoguwhat.com/2026/07/blog-post.html", + "errorMessage": "blog1 ์ฃผ์ ๊ฐํธ โ ๋ณด๊ด", + "createdAt": "2026-07-10T12:28:01.706316", + "publishedAt": "2026-07-10T12:28:02.309683", + "lastAttemptAt": "2026-07-10T12:28:02.309683", + "attempts": 2, + "runNumber": 158, + "wordCount": 3091, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "์๊ฒฉ์ฆ๋ ํ", + "์ง์ฅ์ธ๊ณต๋ถ๋ฒ", + "์ ์ฐ์ธ๋ฌด2๊ธ", + "๋ ํํฉ๊ฒฉ", + "์๊ฒฉ์ฆ์ค๋น" + ], + "metaDescription": "์ง์ฅ์ธ์ด ์๊ฒฉ์ฆ ๋ ํ์ผ๋ก ์ ์ฐ์ธ๋ฌด 2๊ธ์ ํฉ๊ฒฉํ๊ธฐ๊น์ง์ ์ค์ ๊ณผ์ ๊ณผ ์ํ์ฐฉ์ค, ์ฒดํฌ๋ฆฌ์คํธ, ์ํฉ๋ณ ๊ณต๋ถ๋ฒ์ ์ ๋ฆฌํ์ต๋๋ค. ๋ ํ์ ๊ณ ๋ฏผ ์ค์ด๋ผ๋ฉด ์ฐธ๊ณ ํด๋ณด์ธ์.", + "contentPreview": "ํด๊ทผํ๊ณ ์ง์ ์ค๋ฉด 9์๊ฐ ํ์ฉ ๋์ต๋๋ค. ๊ทธ ์ํ์์ ์ฑ ์์ ์์ ๊ณต๋ถํ๋ค๋ ๊ฒ ๋ง์ฒ๋ผ ์ฝ์ง ์์์ต๋๋ค. ์ ๋ 3๋ ์ ๊น์ง๋ ์๊ฒฉ์ฆ ์ทจ๋์ ํ์ ๋ค๋๋ ์ฌ๋๋ค๋ง ๊ฐ๋ฅํ ์ผ์ด๋ผ๊ณ ์๊ฐํ์ต๋๋ค. ๊ทธ๋ฐ๋ฐ ์ง์ฅ ์ํ 15๋ ์ฐจ์ ์ ์ฐ์ธ๋ฌด 2๊ธ์ ๋ ํ์ผ๋ก ์ค๋นํ๋ฉด์ ์๊ฐ์ด ์์ ํ ๋ฐ๋์์ต๋๋ค. ํ์๋น ์๋ผ๋ ค๊ณ ์์ํ ๋ ํ์ด์๋๋ฐ, ์คํ๋ ค ์ ํ์ด์ค๋๋ก ๊ณต๋ถํ๋ ์ด...", + "articleType": "how_to" + }, + { + "post_id": "2026-07-10_๊ฐ์๋์บ ํ์ฒ์ํด๋ดค์๋๋ชฐ๋๋๊ฒ๋ค_ff884fb5", + "keyword": "๊ฐ์๋ ์บ ํ ์ฒ์ ํด๋ดค์ ๋ ๋ชฐ๋๋ ๊ฒ๋ค", + "title": "๊ฐ์๋ ์บ ํ ์ฒ์ ํด๋ดค์ ๋ ๋ชฐ๋๋ ๊ฒ๋ค (2026๋ 7์ ์ธ์ ์ค์ ํ๊ธฐ)", + "status": "pending", + "source": "auto", + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "blogUrl": "", + "errorMessage": null, + "createdAt": "2026-07-10T07:00:17.162602", + "publishedAt": null, + "lastAttemptAt": "2026-07-10T07:00:17.162602", + "attempts": 1, + "runNumber": 157, + "wordCount": 2430, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "๊ฐ์๋์บ ํ", + "์บ ํ์ด๋ณด", + "์บ ํ์ฅ์์ฝ", + "์ธ์ ์บ ํ์ฅ", + "ํ์ฒ์บ ํ์ฅ", + "์ฌ๋ฆ์บ ํ", + "์บ ํ์ค๋น๋ฌผ" + ], + "metaDescription": "๊ฐ์๋ ์บ ํ ์ฒ์ ํด๋ดค์ ๋ ๋ชฐ๋๋ ์ผ๊ต์ฐจ, ์ฌ์ดํธ ์ง๋ฐ, ์์ฝ ํ์ด๋ฐ, ๋ฒ๋ ๋ฌธ์ ๊น์ง 2026๋ 7์ ์ค์ ๊ฒฝํ์ ๋ฐํ์ผ๋ก ์์งํ๊ฒ ์ ๋ฆฌํ ํ๊ธฐ์ ๋๋ค.", + "contentPreview": "์๋ ์ด๋ง๋์ฏค์ด์๋, ํ์ฌ ๋๊ธฐ๊ฐ ์บ ํ ์ฅ๋น๋ฅผ ๋ค ๋น๋ ค์ค ํ ๋ ๊ฐ์๋๋ก ํ ๋ฒ ๊ฐ์๊ณ ํด์ ์ผ๋จ๊ฒฐ์ ๋ฐ๋ผ๋์ฐ๋ ๊ฒ ์ ์ฒซ ์บ ํ์ด์์ต๋๋ค. ์ ๋ ์๋ ํธํ ์ด๋ ํ์ ํ์๊ณ ํ ํธ์์ ์๋ณธ ์ ์ด ํ์ ํ ๋ฒ๋ ์์๋๋ฐ, ๊ทธ๋๋ ๊ทธ๋ฅ '๊ณ ๊ธฐ ๊ตฌ์ ๋จน๊ณ ๋ณ ๋ณด๋ฉด ๋๋ ๊ฑฐ ์๋?' ์ ๋๋ก ์๊ฐํ๊ณ ์ธ์ ๋ก ํฅํ์ต๋๋ค. ๊ฒฐ๊ณผ๋ถํฐ ๋ง์๋๋ฆฌ๋ฉด ์ค๋น ๋ถ์กฑ์ผ๋ก ์ฒซ๋ ๋ฐค์ ๊ฑฐ์ ๋ชป...", + "articleType": "analysis" + }, + { + "post_id": "2026-07-10_์ ๊ธฐ์ฐจ์ฒซ๊ตฌ๋งคํ6๊ฐ์์์งํ๊ธฐ_465e3ffd", + "keyword": "์ ๊ธฐ์ฐจ ์ฒซ ๊ตฌ๋งค ํ 6๊ฐ์ ์์ง ํ๊ธฐ", + "title": "์ ๊ธฐ์ฐจ ์ฒซ ๊ตฌ๋งค ํ 6๊ฐ์ ์์ง ํ๊ธฐ, 2026๋ ์ ์ง๋น ์ ๋ฆฌ", + "status": "published", + "source": "auto", + "blogId": "blog1", + "blogName": "HOGU What?", + "blogUrl": "https://www.hoguwhat.com/2026/07/6-2026_01603096756.html", + "errorMessage": null, + "createdAt": "2026-07-10T06:52:29.809192", + "publishedAt": "2026-07-10T06:52:30.461652", + "lastAttemptAt": "2026-07-10T06:52:30.461652", + "attempts": 2, + "runNumber": 157, + "wordCount": 4530, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "์ ๊ธฐ์ฐจ ์ฒซ ๊ตฌ๋งค ํ๊ธฐ", + "์ ๊ธฐ์ฐจ ์ ์ง๋น", + "์ ๊ธฐ์ฐจ ๋ณด์กฐ๊ธ", + "์ ๊ธฐ์ฐจ ์ถฉ์ ", + "์ ๊ธฐ์ฐจ 6๊ฐ์ ํ๊ธฐ", + "์์์ถฉ์ ", + "๊ธ์์ถฉ์ " + ], + "metaDescription": "์ ๊ธฐ์ฐจ ์ฒซ ๊ตฌ๋งค ํ 6๊ฐ์ ์์ง ํ๊ธฐ๋ฅผ ์ ์ง๋น, ์ถฉ์ , ๊ฒจ์ธ์ฒ ์ฃผํ๊ฑฐ๋ฆฌ๊น์ง ์ค์ ๊ฒฝํ๊ณผ ์ซ์๋ก ์ ๋ฆฌํ์ต๋๋ค. ๊ตฌ๋งค ์ ํ์ธํ ์ฒดํฌ๋ฆฌ์คํธ๋ ํจ๊ป ๋ด์์ต๋๋ค.", + "contentPreview": "์๋ 12์, ๊ฒฐ๊ตญ ์ ๊ธฐ์ฐจ ๊ณ์ฝ์์ ๋์ฅ์ ์ฐ์์ต๋๋ค. ์ฃผ๋ณ์์๋ ์์ง ์ด๋ฅด๋ค๋ ๋ง๋ ๋ง์๊ณ , ์ ์ญ์ ์ถฉ์ ์ธํ๋ผ๊ฐ ๋ถ์กฑํ๋ค๋ ๋ด์ค๋ฅผ ๋ณผ ๋๋ง๋ค ๋ง์ค์์ต๋๋ค. ๊ทธ๋ฐ๋ฐ ํ์ฌ ์ฃผ์ฐจ์ฅ์ ์์์ถฉ์ ๊ธฐ๊ฐ ์๊ธฐ๊ณ , ์ํํธ ์งํ์ฃผ์ฐจ์ฅ์๋ ์ถฉ์ ๋ถ์ค๊ฐ ๋ ์๋ฆฌ ๋์ด๋ ๊ฑธ ๋ณด๊ณ ๋ง์์ ์ ํ์ต๋๋ค. 2026๋ 1์ ์ด์ ์ธ๋๋ฐ์์ ์ด์ 6๊ฐ์์ ๋๊ฒผ๋๋ฐ, ๊ธฐ๋ํ๋ ๋ถ๋ถ๊ณผ ์ค...", + "articleType": "review" + }, + { + "post_id": "2026-07-10_์์ง์ญ์ฃผ์ฐ๋๋ผ๋ง๊น๋ถ์ฅ_bd31e8a4", + "keyword": "์์ง์ญ ์ฃผ์ฐ ๋๋ผ๋ง ๊น๋ถ์ฅ", + "title": "์์ง์ญ ์ฃผ์ฐ ๋๋ผ๋ง '๊น๋ถ์ฅ'์ผ๋ก ๋ณด๋ ์ง์ฅ์ธ ๋ถ์ฅ ์น์ง, ์ฐ๋ดยท์ธ๊ธ ๋ณํ ์ด์ ๋ฆฌ", + "status": "pending", + "source": "manual", + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "blogUrl": "", + "errorMessage": null, + "createdAt": "2026-07-10T06:13:32.245058", + "publishedAt": null, + "lastAttemptAt": "2026-07-10T06:13:32.245058", + "attempts": 1, + "runNumber": 156, + "wordCount": 2693, + "faqCount": 4, + "category": "์ผ๋ฐ", + "labels": [ + "์์ง์ญ", + "๊น๋ถ์ฅ", + "๋๋ผ๋ง ๊น๋ถ์ฅ", + "์ฐ๋ง์ ์ฐ", + "์๋์ธ์จ", + "๊ตญ๋ฏผ์ฐ๊ธ", + "๊ฑด๊ฐ๋ณดํ๋ฃ" + ], + "metaDescription": "์์ง์ญ ์ฃผ์ฐ ๋๋ผ๋ง ๊น๋ถ์ฅ ํ์ ์, ์ค์ ๋ถ์ฅ ์น์ง ์ ์ฐ๋ดยท์๋์ธยท๊ตญ๋ฏผ์ฐ๊ธยท๊ฑด๊ฐ๋ณดํ๋ฃ๊ฐ ์ด๋ป๊ฒ ๋ฌ๋ผ์ง๋์ง ํ์ ํจ๊ป ์ฝ๊ฒ ์ ๋ฆฌํ์ต๋๋ค.", + "contentPreview": "์์ฆ ์์ง์ญ ์ฃผ์ฐ ๋๋ผ๋ง '๊น๋ถ์ฅ' ์ด์ผ๊ธฐ๋ก ํ์ฌ ํ๋น์ค์ด ์๋์๋ํฉ๋๋ค. ์ ๋ 40๋ ์ง์ฅ์ธ์ด๋ค ๋ณด๋ '๋ถ์ฅ'์ด๋ผ๋ ์ง๊ธ ์์ฒด๊ฐ ๋จ ์ผ ๊ฐ์ง ์๋๋ผ๊ณ ์. ๋๋ผ๋ง ์ ๊น๋ถ์ฅ์ ์ํ ํ์ฌ ์ํ์ ๊ทธ๋ฆฌ๊ณ ์์ง๋ง, ์ ์ ์ ์ ๋๋ฃ๋ค์ด ์ง์ง ๊ถ๊ธํดํ๋ ๊ฑด ๋ฐ๋ก ์์์ต๋๋ค. '์ค์ ๋ก ๋ถ์ฅ ๋๋ฉด ์๊ธ์ด ์ผ๋ง๋ ์ค๋ฅด๊ณ , ์ธ๊ธ์ ๋ ์ผ๋ง๋ ๋ ๋ฏ๊ธฐ๋' ํ๋ ํ์ค์ ์ธ ์ง๋ฌธ...", + "articleType": "drama_review" + }, + { + "post_id": "2026-07-10_์์ง์ญ์ฃผ์ฐ๋๋ผ๋ง๊น๋ถ์ฅ_ee53dfdf", + "keyword": "์์ง์ญ ์ฃผ์ฐ ๋๋ผ๋ง ๊น๋ถ์ฅ", + "title": "์์ง์ญ ์ฃผ์ฐ ๋๋ผ๋ง '๊น๋ถ์ฅ' ์ ์ฃผํ ํ๊ธฐ - ์ง์ ๋ณธ ์๊ฐ ์์งํ๊ฒ (2026๋ 7์ ๊ธฐ์ค)", + "status": "pending", + "source": "manual", + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "blogUrl": "", + "errorMessage": null, + "createdAt": "2026-07-10T06:06:53.886988", + "publishedAt": null, + "lastAttemptAt": "2026-07-10T06:06:53.886988", + "attempts": 1, + "runNumber": 156, + "wordCount": 2166, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "์์ง์ญ", + "๊น๋ถ์ฅ", + "๋๋ผ๋ง๋ฆฌ๋ทฐ", + "์คํผ์ค๋๋ผ๋ง", + "ํฐ๋น", + "2026๋๋ผ๋ง", + "์ง์ฅ์ธ๋๋ผ๋ง" + ], + "metaDescription": "์์ง์ญ ์ฃผ์ฐ ๋๋ผ๋ง '๊น๋ถ์ฅ'์ ์ง์ ์ ์ฃผํํ๊ณ ์ด ์์ง ํ๊ธฐ. ์ค๊ฑฐ๋ฆฌ, ์ฅ๋จ์ , ํฐ๋น ์์ฒญ ๋ฐฉ๋ฒ๊น์ง 2026๋ 7์ ๊ธฐ์ค์ผ๋ก ์ ๋ฆฌํ์ต๋๋ค.", + "contentPreview": "ํด๊ทผํ๊ณ ์ํ์ ๋๋ธ๋ฌ์ ธ์ ๋ทํ๋ฆญ์ค ๋ค์ง๋ค๊ฐ ์ฐ์ฐํ ๋๋ฌ๋ณธ ๋๋ผ๋ง๊ฐ ์๋๋ฐ์, ๋ฐ๋ก ์์ง์ญ ์ฃผ์ฐ์ '๊น๋ถ์ฅ'์ ๋๋ค. ์ฌ์ค ์ฒ์์ ์ ๋ชฉ ๋ณด๊ณ '์ด๊ฑฐ ๋ญ์ง' ์ถ์์ด์. ํ์ฌ ๋ค๋๋ ์ง์ฅ์ธ ์ ์ฅ์์ ๋ถ์ฅ์ด๋ผ๋ ์ง๊ธ ์์ฒด๊ฐ ์ฃผ๋ ๋๋์ด ์์์์. ๊ทธ๋ฐ๋ฐ ๋ง์ 1ํ ๋ณด๊ณ ๋๋๊น ๊ทธ๋ ์๋ฒฝ 2์๊น์ง 3ํ๊น์ง ๋ชฐ์๋ดค์ต๋๋ค. ์ ๋ ํ์ฌ์์ ํ์ฅ๊ธ ์์น์ ์๋ค ๋ณด๋ ๊ทน ์ค...", + "articleType": "drama_review" + }, + { + "post_id": "2026-07-10_์์ง์ญ์ฃผ์ฐ๋๋ผ๋ง๊น๋ถ์ฅ_a54259cd", + "keyword": "์์ง์ญ ์ฃผ์ฐ ๋๋ผ๋ง ๊น๋ถ์ฅ", + "title": "์์ง์ญ ์ฃผ์ฐ ๋๋ผ๋ง ๊น๋ถ์ฅ, ์ง์ฅ์ธ์ด ๋ณธ ์์ง ๋ฆฌ๋ทฐ (2026)", + "status": "pending", + "source": "manual", + "blogId": "blog1", + "blogName": "HOGU What?", + "blogUrl": "", + "errorMessage": null, + "createdAt": "2026-07-10T05:58:57.183747", + "publishedAt": null, + "lastAttemptAt": "2026-07-10T05:58:57.183747", + "attempts": 1, + "runNumber": 156, + "wordCount": 2799, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "์์ง์ญ", + "๊น๋ถ์ฅ", + "๋๋ผ๋ง๋ฆฌ๋ทฐ", + "์ง์ฅ์ธ๋๋ผ๋ง", + "2026๋๋ผ๋ง", + "์คํผ์ค๋๋ผ๋ง", + "์์ง์ญ๋๋ผ๋ง" + ], + "metaDescription": "์์ง์ญ ์ฃผ์ฐ ๋๋ผ๋ง ๊น๋ถ์ฅ์ ์ง์ ์ฑ๊ฒจ๋ณธ ์ง์ฅ์ธ์ ์์ง ํ๊ธฐ์ ์์ฒญ ์ฒดํฌ๋ฆฌ์คํธ, ์์ฃผ ํ๋ ์ค์๊น์ง ์คํฌ์ผ๋ฌ ์์ด ์ ๋ฆฌํ์ต๋๋ค.", + "contentPreview": "ํด๊ทผํ๊ณ ์ํ์ ๋์์ ๋ฆฌ๋ชจ์ปจ ๋๋ฆฌ๋ค๊ฐ ์ฐ์ฐํ ๋ณด๊ฒ ๋ ๋๋ผ๋ง๊ฐ ์์ต๋๋ค. ์์ง์ญ ์ฃผ์ฐ '๊น๋ถ์ฅ'์ด์๋๋ฐ์. ์ฒ์์ ์ ๋ชฉ๋ง ๋ณด๊ณ ๊ทธ๋ฅ ํ์ฌ ์ด์ผ๊ธฐ๊ฒ ๊ฑฐ๋ ํ๊ณ ๋ณ ๊ธฐ๋ ์์ด ํ์์ต๋๋ค. ๊ทธ๋ฐ๋ฐ ํ ํ, ๋ ํ ๋ณด๋ค ๋ณด๋ ์ ๋ ๋ชจ๋ฅด๊ฒ ๋ชฐ์ ํ๊ฒ ๋๋๋ผ๊ณ ์. 20๋ ๋๊ฒ ์ง์ฅ ์ํ์ ํด์จ ์ ๋ก์๋ ๊ทน ์ค ๋ถ์ฅ์ด๋ผ๋ ์ง๊ธ์์ ๋์ค๋ ๋ํ ์ผํ ๊ฐ์ ์ ์ด ๋จ ์ด์ผ๊ธฐ ๊ฐ์ง...", + "articleType": "drama_review" + }, + { + "post_id": "2026-07-10_์ฌ๋ฆ๋๋ฐฉ๊ฟํ_cc2e2730", + "keyword": "์ฌ๋ฆ ๋๋ฐฉ ๊ฟํ", + "title": "์ฌ๋ฆ ๋๋ฐฉ ๊ฟํ: ์ ๊ธฐ์๊ธ ํญํ ๋ง๋ ์ ๋ถ ์ง์ ์ด์ ๋ฆฌ", + "status": "published", + "source": "auto", + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "blogUrl": "https://hoguasset.blogspot.com/2026/07/blog-post.html", + "errorMessage": null, + "createdAt": "2026-07-10T04:22:27.690379", + "publishedAt": "2026-07-10T04:22:28.879729", + "lastAttemptAt": "2026-07-10T04:22:28.879729", + "attempts": 2, + "runNumber": 155, + "wordCount": 4866, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "์ฌ๋ฆ๋๋ฐฉ๊ฟํ", + "์๋์ง๋ฐ์ฐ์ฒ", + "์๋์ง์บ์๋ฐฑ", + "์ ๊ธฐ์๊ธ์ ์ฝ", + "ํ๊ตญ์ ๋ ฅ๊ณต์ฌ" + ], + "metaDescription": "์ฌ๋ฆ์ฒ ์ ๊ธฐ์๊ธ ๊ฑฑ์ ๋๋ค๋ฉด ์๋์ง๋ฐ์ฐ์ฒ, ํ์ ์๋์ง์บ์๋ฐฑ, ์นด๋์ฌ ํ ์ธ๊น์ง ์กฐ๊ฑด๋ณ๋ก ์ ๋ฆฌํ์ต๋๋ค. ์ ์ฒญ ๋ฐฉ๋ฒ๊ณผ ์ฃผ์์ฌํญ๊น์ง ํ ๋ฒ์ ํ์ธํ์ธ์.", + "contentPreview": "7์ ๋ค์ด ๋ฎ ์ต๊ณ ๊ธฐ์จ์ด ์ฐ์ผ 33๋๋ฅผ ๋๊ธฐ๋ฉด์ ์์ด์ปจ ์์ด๋ ๋ฒํฐ๊ธฐ ํ๋ ๋ ์จ๊ฐ ์ด์ด์ง๊ณ ์์ต๋๋ค. ๊ทธ๋ฐ๋ฐ ๋๋ฐฉ๊ธฐ๊ธฐ๋ฅผ ๋๋ฆด ๋๋ง๋ค ๋จธ๋ฆฟ์์ ๋ ์ค๋ฅด๋ ๊ฑด ์ญ์ '์ด๋ฒ ๋ฌ ์ ๊ธฐ์๊ธ ๊ณ ์ง์'์ฃ . ํนํ ์ฌํด๋ ์ ๊ธฐ์๊ธ ์ฒด๊ณ๊ฐ ๊ณ์ ๋ณยท์๊ฐ๋๋ณ๋ก ์ธ๋ถํ๋๋ฉด์ ๊ฐ์ ์๊ฐ์ ๊ฐ์ ๋งํผ ์จ๋ ์๊ธ์ด ๋ฌ๋ผ์ง๋ ๊ตฌ์กฐ๊ฐ ์๋ฆฌ๋ฅผ ์ก์์ต๋๋ค. ๊ทธ๋์ ์ด๋ฒ ๊ธ์์๋ ๋จ์ํ '์์ด์ปจ...", + "articleType": "analysis" + }, + { + "post_id": "2026-07-10_๋ถ์ฐ1๋ฐ2์ผํผ์์ฌํํ์ค๋น์ฉ๊ณต๊ฐ_b2827a77", + "keyword": "๋ถ์ฐ 1๋ฐ2์ผ ํผ์ ์ฌํ ํ์ค ๋น์ฉ ๊ณต๊ฐ", + "title": "๋ถ์ฐ 1๋ฐ2์ผ ํผ์ ์ฌํ ํ์ค ๋น์ฉ ๊ณต๊ฐ (2026๋ 7์ ์ง์ ๋ค๋ ์จ ํ๊ธฐ)", + "status": "published", + "source": "auto", + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "blogUrl": "https://hogugolfntraval.blogspot.com/2026/07/12-2026-7.html", + "errorMessage": null, + "createdAt": "2026-07-10T04:11:04.667801", + "publishedAt": "2026-07-10T04:11:05.698177", + "lastAttemptAt": "2026-07-10T04:11:05.698177", + "attempts": 2, + "runNumber": 155, + "wordCount": 2667, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "๋ถ์ฐ์ฌํ", + "ํผ์์ฌํ", + "1๋ฐ2์ผ์ฌํ", + "๋ถ์ฐ๊ฐ๋ณผ๋งํ๊ณณ", + "์ฌํ๊ฒฝ๋น", + "๊ตญ๋ด์ฌํ", + "๋ถ์ฐ๋ง์ง" + ], + "metaDescription": "๋ถ์ฐ 1๋ฐ2์ผ ํผ์ ์ฌํ ํ์ค ๋น์ฉ์ ์ง์ ๋ค๋ ์์ ๊ณต๊ฐํฉ๋๋ค. 2026๋ 7์ ๊ธฐ์ค ๊ตํต๋น, ์์๋น, ์๋น๊น์ง ์ค์ ์ง์ถ ๋ด์ญ๊ณผ ์ ์ฝ ํ์ ์์งํ๊ฒ ์ ๋ฆฌํ์ต๋๋ค.", + "contentPreview": "์ง๋ 6์ ๋ง, ํ์ฌ์์ ์ฐ์ฐจ๊ฐ ํ๋ฃจ ๋ถ ๋ ์ ๊ธํ๊ฒ ๋ถ์ฐํ์ ๊ฒฐ์ ํ์ต๋๋ค. ์๋๋ ์น๊ตฌ๋ ๊ฐ์ด ๊ฐ๋ ค๊ณ ํ๋๋ฐ ์ผ์ ์ด ์ ๋ง์์ ๊ฒฐ๊ตญ ํผ์ ๊ฐ๊ฒ ๋์ด์. ์ฌ์ค ํผ์ ์ฌํ์ ์ด๋ฒ์ด ์ฒ์์ด๋ผ ๊ฑฑ์ ์ด ๋ง์์ต๋๋ค. '๋ฐฅ์ ์ด๋์ ๋จน์ง', '์์๋ ์ผ๋ง๋ ๋์ฌ๊น' ๊ฐ์ ํ์ค์ ์ธ ๊ณ ๋ฏผ์ด ๊ณ์ ๋ค์๊ฑฐ๋ ์. ๊ทธ๋์ ์ด๋ฒ ๊ธ์์๋ ํ๊ธฐ๋ผ๊ธฐ๋ณด๋ค ์ง์ง ๊ฐ๊ณ๋ถ ๊ณต๊ฐํ๋ฏ์ด, ์ ๊ฐ...", + "articleType": "travel_guide" + }, + { + "post_id": "2026-07-10_์ผ๋ณธ์ฌํ์ํํ์ ์ง์ ํด๋ณธ๊ฐ์ฅ์ผ๋ฐฉ๋ฒ_91b8519b", + "keyword": "์ผ๋ณธ ์ฌํ ์ํ ํ์ ์ง์ ํด๋ณธ ๊ฐ์ฅ ์ผ ๋ฐฉ๋ฒ", + "title": "์ผ๋ณธ ์ฌํ ์ํ ํ์ , ์ง์ ํด๋ณธ ๊ฐ์ฅ ์ผ ๋ฐฉ๋ฒ (2026)", + "status": "published", + "source": "auto", + "blogId": "blog1", + "blogName": "HOGU What?", + "blogUrl": "https://www.hoguwhat.com/2026/07/2026_024168948.html", + "errorMessage": null, + "createdAt": "2026-07-10T04:00:53.875831", + "publishedAt": "2026-07-10T04:00:55.253795", + "lastAttemptAt": "2026-07-10T04:00:55.253795", + "attempts": 2, + "runNumber": 155, + "wordCount": 2917, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "์ผ๋ณธ์ฌํ", + "์ํํ์ ", + "ํ์จ์ฐ๋", + "ํธ๋๋ธ์๋ ", + "ํธ๋๋ธ๋ก๊ทธ" + ], + "metaDescription": "์ผ๋ณธ ์ฌํ ์ํ ํ์ , ๊ณตํญยท์ํ ์ฑยทํธ๋๋ธ์นด๋ ์ธ ๊ฐ์ง๋ฅผ ์ง์ ๋น๊ตํด๋ดค์ต๋๋ค. ์ฐ๋์จ ํจ์ ๋ถํฐ ์ฒดํฌ๋ฆฌ์คํธ, ์ํฉ๋ณ ์ถ์ฒ๋ฒ๊น์ง ์ค์ ๊ฒฝํ ๊ธฐ๋ฐ์ผ๋ก ์ ๋ฆฌํ์ต๋๋ค.", + "contentPreview": "์ง๋๋ฌ ์ค์ฌ์นด ์ถ์ฅ ๊ฒธ ์ฌํ์ ์ค๋นํ๋ฉด์ ํ์ ๋๋ฌธ์ ๊ฝค ๊ณจ๋จธ๋ฆฌ๋ฅผ ์์์ต๋๋ค. ๊ณตํญ ํ์ ์๋ ์ฐ๋์จ์ด ๋ฎ๋ค๋ ๊ฑด ์๊ณ ์์๋๋ฐ, ๋ง์ ์ํ ์ฑ๋ง๋ค ์ฐ๋์จ์ด ๋ค๋ฅด๊ณ ํธ๋๋ธ์นด๋๊น์ง ๊ปด์ ๋ญ๊ฐ ์ง์ง ์ผ ๊ฑด์ง ํท๊ฐ๋ ธ์ต๋๋ค. ๊ฒฐ๊ตญ ์ธ ๊ฐ์ง ๋ฐฉ๋ฒ์ ๋ค ์จ๋ณด๊ณ ์์์ฆ๊น์ง ๋น๊ตํด๋ดค์ต๋๋ค. ์ ์ฒ๋ผ ์ถ๊ตญ ๋ฉฐ์น ์ ์์ผ ๋ถ๋ด๋ถ๋ด ๊ฒ์ํ์๋ ๋ถ๋ค ๋ง์ผ์ค ํ ๋ฐ, ์ ๊ฐ ์ง์ ๊ฒช์ ์...", + "articleType": "travel_guide" + }, + { + "post_id": "2026-07-10_์ฃผํ๋ด๋ณด๋์ถ๊ฐ์ํ๊ธฐ2026๊ธ๋ฆฌ_97179714", + "keyword": "์ฃผํ๋ด๋ณด๋์ถ ๊ฐ์ํ๊ธฐ 2026 ๊ธ๋ฆฌ", + "title": "[1ํธ] ์ฃผํ๋ด๋ณด๋์ถ ๊ฐ์ํ๊ธฐ 2026, ๊ธ๋ฆฌ ์ธ์ ์ด์ ", + "status": "published", + "source": "auto", + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "blogUrl": "https://hoguasset.blogspot.com/2026/07/1-2026_02026356980.html", + "errorMessage": null, + "createdAt": "2026-07-10T00:00:00", + "publishedAt": "2026-07-10T00:00:00", + "lastAttemptAt": "2026-07-10T00:00:00", + "attempts": 1, + "runNumber": 0, + "wordCount": 2618, + "faqCount": 3, + "category": "๊ธ์ต", + "labels": [ + "์ฃผํ๋ด๋ณด๋์ถ๊ฐ์ํ๊ธฐ", + "๋ํ๋์ถ2026", + "์ฝํฝ์ค๊ธ๋ฆฌ", + "์ฃผํ๋ด๋ณด๋์ถ๊ธ๋ฆฌ๋น๊ต", + "DSR์๊ฒฉ์กฐ๊ฑด" + ], + "metaDescription": "2026๋ ์ฝํฝ์ค ์ฐ๋ ๊ตฌ๊ฐ ์ง์ ์ผ๋ก ๋์ถ ์๋ฆฌ๊ธ์ด ์ค๋ฅธ ์ค์ ๊ฒฝํ๊ณผ ๋ํ๋์ถ ๊ธฐ๋ณธ ๊ฐ๋ , ์๊ฒฉ์กฐ๊ฑด, ๊ณ์ฐ ์์๊น์ง ์ ๋ฆฌํ์ต๋๋ค.", + "contentPreview": "์ง๋๋ฌ ๋ง์ด์์ด์. ์ค๋งํธํฐ์ผ๋ก ์จ ๋์ถ ์ด์ ๋ฌธ์ ์๋ฆผ ํ๋ ๋๋ฌธ์ ๊ทธ๋ ๋ฐค์ ์ ์ค์ณค์ต๋๋ค. ์๋ฆฌ๊ธ์ด ๊ฐ์๊ธฐ ํ ์ฌ๋ผ์๋๋ผ๊ณ ์. ๋ถ๋ช ๋ช ๋ฌ ์ ๊น์ง๋ ์ด ์ ๋๊ฐ ์๋์๋๋ฐ ์ถ์ด์ ์ฑ์ ์ด์ด๋ดค๋๋, ์ ๊ฐ ๋ฐ์ ๋์ถ์ด ํผํฉํ์์ ์ด์ ์ฝํฝ์ค ์ฐ๋ ๊ตฌ๊ฐ์ผ๋ก ๋์ด๊ฐ๋ฉด์ ๊ธ๋ฆฌ๊ฐ ์ฌ๋ผ๊ฐ ์ํ์์ต๋๋ค. ๊ทธ๋ ๋ถํฐ ์ ๋ ํด๊ทผํ๊ณ ๋๋ฉด ์ํ ์ฑ์ด๋ ๋์ถ ๊ฐ์ํ๊ธฐ ํ๋ซํผ์ ...", + "articleType": "analysis" + }, + { + "post_id": "2026-07-10_์ฃผํ๋ด๋ณด๋์ถ๊ธ๋ฆฌ๋น๊ต์ํ๋ณ2026_db9d7413", + "keyword": "์ฃผํ๋ด๋ณด๋์ถ ๊ธ๋ฆฌ๋น๊ต ์ํ๋ณ 2026", + "title": "์ฃผํ๋ด๋ณด๋์ถ ๊ธ๋ฆฌ๋น๊ต ์ํ๋ณ 2026 5๊ณณ ๋ฐํ ํ๊ธฐ ์ด์ ๋ฆฌ", + "status": "published", + "source": "auto", + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "blogUrl": "https://hoguasset.blogspot.com/2026/07/2026-5.html", + "errorMessage": null, + "createdAt": "2026-07-10T00:00:00", + "publishedAt": "2026-07-11T03:58:03.427481", + "lastAttemptAt": "2026-07-11T03:58:03.427481", + "attempts": 3, + "runNumber": 0, + "wordCount": 2609, + "faqCount": 3, + "category": "๊ธ์ต", + "labels": [ + "์ฃผํ๋ด๋ณด๋์ถ-๊ธ๋ฆฌ๋น๊ต", + "๊ธ์ต", + "๊ฒฝ์ ", + "์ฌํ ํฌ", + "์ ์ฑ " + ], + "metaDescription": "2026๋ ์ฃผํ๋ด๋ณด๋์ถ ๊ธ๋ฆฌ๋น๊ต ์ํ๋ณ 5๊ณณ ์ง์ ๋ฐํ ํ๊ธฐ, ์ฐ๋์กฐ๊ฑด๊ณผ ๊ณ์ฐ ์์ ์ด์ ๋ฆฌ. ํฌ์ ์กฐ์ธ ์๋ ๊ฐ์ธ ๊ฒฝํ ๊ธฐ๋ฐ ์ ๋ณด์ ๋๋ค.", + "contentPreview": "1ํธ์์ ๋์ถ์ด์ ๊ณ ์ง์ ๋ณด๊ณ ์ง์ง ๋๋ผ์ ๊ฐ์ํ๊ธฐ๋ก ๊ฒฐ์ฌํ๋ ์๊ธฐ ํ์๋๋ฐ์, ๊ทธ ์ดํ๋ก ๊ฑฐ์ 2์ฃผ ๋์ ์ํ ์ฑ ๊น๊ณ ์ง์ ์ ํ ๋๋ฆฌ๊ณ ์ฐฝ๊ตฌ ๊ฐ์ ์๋ด๋ฐ๊ณ ํ๋ฉด์ ์ง์ ๋ค ๋บ์ต๋๋ค. ์ฌ์ค ์ ๋ ์ฒ์์ ๊ทธ๋ฅ ์ธํฐ๋ท์ ๊ฒ์ํด์ ๋์ค๋ ๊ธ๋ฆฌ ๋ฐฐ๋๋ง ๋ณด๊ณ '์ ์ฌ๊ธฐ๊ฐ ์ ์ผ ์ธ๊ตฌ๋' ํ๊ณ ๋์ด๊ฐ๋ ค๊ณ ํ๋๋ฐ, ์ง์ ์๋ด๋ฐ์๋ณด๋ ๋ฐฐ๋์ ๋์จ ์ต์ ๊ธ๋ฆฌ๋ ์ ๊ฐ ์ค์ ๋ก ...", + "articleType": "comparison" + }, + { + "post_id": "2026-07-10_์ฃผํ๋ด๋ณด๋์ถ๋ํํ๊ธฐ2026_f8ec9338", + "keyword": "์ฃผํ๋ด๋ณด๋์ถ ๋ํ ํ๊ธฐ 2026", + "title": "[3ํธ] ์ฃผํ๋ด๋ณด๋์ถ ๋ํ ํ๊ธฐ 2026 ์ํ ์ ํ ์ฃผ์์ฌํญ ์ด์ ๋ฆฌ", + "status": "published", + "source": "auto", + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "blogUrl": "https://hoguasset.blogspot.com/2026/07/2026_01974514992.html", + "errorMessage": null, + "createdAt": "2026-07-10T00:00:00", + "publishedAt": "2026-07-11T03:59:32.837946", + "lastAttemptAt": "2026-07-11T03:59:32.837946", + "attempts": 3, + "runNumber": 0, + "wordCount": 2430, + "faqCount": 3, + "category": "๊ธ์ต", + "labels": [ + "์ฃผํ๋ด๋ณด๋์ถ-๊ธ๋ฆฌ๋น๊ต", + "๊ธ์ต", + "๊ฒฝ์ ", + "์ฌํ ํฌ" + ], + "metaDescription": "2026๋ ์ฃผํ๋ด๋ณด๋์ถ ๋ํ ์ค์ ์ ์ฒญ ํ๊ธฐ์ ์ํ ์ ํ ์ ์ฃผ์์ฌํญ์ ์ง์ ๊ฒฝํ ๋ฐํ์ผ๋ก ์ ๋ฆฌํ์ต๋๋ค. ํฌ์ ์กฐ์ธ์ด ์๋ ๊ฐ์ธ ๊ฒฝํ ๊ณต์ ๊ธ์ ๋๋ค.", + "contentPreview": "1ํธ์์ ๋์ถ์ด์ ๊ณ ์ง์ ๋ณด๊ณ ๋๋ผ์ ๊ฐ์ํ๊ธฐ๋ก ๊ฒฐ์ฌํ ์๊ธฐ๋ฅผ ํ๊ณ , 2ํธ์์๋ ์ํ 5๊ณณ์ ์ง์ ๋ฐํ ํ์์ ๊ธ๋ฆฌ ๋น๊ตํ ๋ด์ฉ์ ์ ๋ฆฌํ์์ฃ . ์ด๋ฒ 3ํธ์ ์ง์ง ๊ทธ ๋ค์ ์ด์ผ๊ธฐ, ๊ทธ๋ฌ๋๊น ์ ๊ฐ ์ค์ ๋ก ๋ํ ์ ์ฒญ์ ๋ฃ๊ณ ์น์ธ๋ฐ์์ ๊ฐ์ํ ๊ณผ์ ๊ณผ ๊ทธ ๊ณผ์ ์์ ๊ฒช์ ์ํ์ฐฉ์ค, ๊ทธ๋ฆฌ๊ณ ์ด๋ค ์ฌ๋ํํ ์ด๋ค ์ํ์ด ๋ง์์ง์ ๋ํ ์ ๋๋ฆ์ ๊ฒฐ๋ก ์ ์ ๋ฆฌํ๋ ํธ์ ๋๋ค. ...", + "articleType": "review" + }, + { + "post_id": "2026-07-09_์์ด์ปจ์ ๊ธฐ์ธ์ ์ฝ_dde6e3d9", + "keyword": "์์ด์ปจ ์ ๊ธฐ์ธ ์ ์ฝ", + "title": "์์ด์ปจ ์ ๊ธฐ์ธ, 2026๋ ์ฌ๋ฆ ์ ๊ฐ๊ณ๋ถ๋ก ์ง์ ๋ฐ์ ธ๋ดค์ด์", + "status": "published", + "source": "auto", + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "blogUrl": "https://hoguasset.blogspot.com/2026/07/2026_0917676753.html", + "errorMessage": null, + "createdAt": "2026-07-09T23:34:58.828319", + "publishedAt": "2026-07-09T23:34:59.901405", + "lastAttemptAt": "2026-07-09T23:34:59.901405", + "attempts": 2, + "runNumber": 154, + "wordCount": 3342, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "์์ด์ปจ์ ๊ธฐ์ธ์ ์ฝ", + "์ ๊ธฐ์๊ธ๋์ง์ธ", + "์ฌ๋ฆ์ฒ ์ ๊ธฐ์ธ", + "ํ์ ์๊ธ", + "๊ฐ๊ณ๋ถ๊ด๋ฆฌ", + "๊ณ ์ ๋น์ ์ฝ", + "2026์ ๊ธฐ์๊ธ" + ], + "metaDescription": "2026๋ ์ฌ๋ฆ, ์์ด์ปจ ์ ๊ธฐ์ธ๋ฅผ ์ง์ ์ค์ธกํ๋ฉฐ ์๋ ๊ฒฝํ๋ด์ ๋๋ค. ๋์ง๊ตฌ๊ฐ ๊ณ์ฐ๋ฒ๊ณผ ์คํจ๋ด, ์ค์ ์ ์ฝ ์์น๊น์ง ์์งํ๊ฒ ๋ด์์ด์.", + "contentPreview": "์ง๋์ฃผ์ ๊ด๋ฆฌ๋น ๊ณ ์ง์๋ฅผ ๋ฐ๊ณ ์ง์ง ๊น์ง ๋๋์ด์. 7์ ์ด์ธ๋ฐ ๋ฒ์จ ์ ๊ธฐ์๊ธ์ด 8๋ง์๋๊ฐ ๋์จ ๊ฑฐ์์. ์๋ ์ด๋ง๋๋ณด๋ค ๊ฑฐ์ 2๋ง์ ๊ฐ๊น์ด ๋ ๋์๋๋ผ๊ณ ์. ์ ๋ ์ฌํ ํฌ ์นดํ์์ ํ๋ํ๋ฉด์ ์์ฆ ๊ณ ์ ๋น ์ค์ด๋ ๊ฒ ํฌ์ ์์ต๋ฅ ๋งํผ ์ค์ํ๋ค๋ ์๊ธฐ๋ฅผ ์์ฃผ ํ๋๋ฐ, ์ ์ ์ ์ง ์ ๊ธฐ์ธ ๊ด๋ฆฌ๋ ์๋ง์ด์๋ ๊ฑฐ์ฃ . ๊ทธ๋์ ์ด๋ฒ ๊ธฐํ์ ์์ด์ปจ ์ ๊ธฐ์ธ ์ ์ฝ์ ์ ๋๋ก ํ...", + "articleType": "analysis" + }, + { + "post_id": "2026-07-09_์ฌ๋ฆ๋๋ฐฉ๊ฟํ_c7581019", + "keyword": "์ฌ๋ฆ ๋๋ฐฉ ๊ฟํ", + "title": "์ฌํ ๋ค๋๋ฉด์ ํฐ๋ํ ์ฌ๋ฆ ๋๋ฐฉ ๊ฟํ, 2026๋ ์ ์ด๋ ๊ฒ ์๋๋ค", + "status": "published", + "source": "auto", + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "blogUrl": "https://hogugolfntraval.blogspot.com/2026/07/2026_040111189.html", + "errorMessage": null, + "createdAt": "2026-07-09T23:28:58.899866", + "publishedAt": "2026-07-09T23:29:00.077491", + "lastAttemptAt": "2026-07-09T23:29:00.077491", + "attempts": 2, + "runNumber": 154, + "wordCount": 3367, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "์ฌ๋ฆ๋๋ฐฉ๊ฟํ", + "์ฌ๋ฆ์ฌํ", + "์ผ๊ตฌ์ง๊ด", + "๋ ํฐ์นด์ฌํ", + "ํญ์ผ๋์ฒ", + "์ฌ๋ฆํด๊ฐ", + "์บ ํ์นด๋ฐ" + ], + "metaDescription": "์ฌํ๊ณผ ์ผ๊ตฌ์ฅ ์ง๊ด ๋ค๋๋ฉด์ ์ง์ ๊ฒช์ ์ฌ๋ฆ ๋๋ฐฉ ๊ฟํ, ์์ยท๋ ํฐ์นดยท๊ธฐ๋ด ๋๋ฐฉ ์คํจ๋ด๊ณผ 2026๋ ๋ฌ๋ผ์ง ํญ์ผ ๋์๊น์ง ์์งํ๊ฒ ์ ๋ฆฌํ์ต๋๋ค.", + "contentPreview": "๐ก ํต์ฌ ํฌ์ธํธ: ์ฌ๋ฆ ๋๋ฐฉ ๊ฟํ์ ์ง ์์ด์ปจ๋ณด๋ค ์ฌํ์ง ์์, ๋ ํฐ์นด, ์ผ๊ตฌ์ฅ ๊ฐ์ '๋จ์ ๊ณต๊ฐ'์์ ๋ ์ค์ํ๋๋ผ๊ณ ์. ์จ๋ ์ค์ ๋ณด๋ค ์ต๋ ์ฒดํฌ์ ์ฌ์ ํ์ธ์ด ์ง์ง ํต์ฌ์ด์์ต๋๋ค.์ ๋ ์ฌํ ๋ค๋๋ ๊ฑธ ์ง์ง ์ข์ํด์ ์ฌ๋ฆ๋ง๋ค ๊ตญ๋ด์ธ ์ ๊ฐ๋ฆฌ๊ณ ๋์๋ค๋๋ ํธ์ธ๋ฐ์, ์ฌํด 7์ ์ด์ ๊ฐ๋ฆ์ผ๋ก 1๋ฐ 2์ผ ๋๋ฌ ๊ฐ๋ค๊ฐ ์์ ์์ด์ปจ์ด ๊ณ ์ฅ ๋ ๊ฑธ ์ฒดํฌ์ธํ๊ณ ๋์์ผ...", + "articleType": "analysis" + }, + { + "post_id": "2026-07-09_์ค๋งํธ์คํ ์ด์ฒซ๋ฌ๋งค์ถ0์๊ทน๋ณต๋ฐฉ๋ฒ_0adbe608", + "keyword": "์ค๋งํธ์คํ ์ด ์ฒซ ๋ฌ ๋งค์ถ 0์ ๊ทน๋ณต ๋ฐฉ๋ฒ", + "title": "์ค๋งํธ์คํ ์ด ์ฒซ ๋ฌ ๋งค์ถ 0์, ์ ๋ ์ด๋ ๊ฒ ๊ทน๋ณตํ์ด์ 2026", + "status": "published", + "source": "auto", + "blogId": "blog1", + "blogName": "HOGU What?", + "blogUrl": "https://www.hoguwhat.com/2026/07/0-2026.html", + "errorMessage": null, + "createdAt": "2026-07-09T23:22:56.787631", + "publishedAt": "2026-07-09T23:22:57.360305", + "lastAttemptAt": "2026-07-09T23:22:57.360305", + "attempts": 2, + "runNumber": 154, + "wordCount": 2886, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "์ค๋งํธ์คํ ์ด", + "์ค๋งํธ์คํ ์ด๋งค์ถ0์", + "์จ๋ผ์ธ๋ถ์ ", + "๋ค์ด๋ฒ์ผํ", + "๋ถ์ ์ฌํ ํฌ", + "์ค๋งํธ์คํ ์ด์ด๋ณด", + "์ง์ฅ์ธ๋ถ์ " + ], + "metaDescription": "์ค๋งํธ์คํ ์ด ์ฒซ ๋ฌ ๋งค์ถ 0์์ ์ค์ ๋ก ๊ฒช๊ณ ๋ ๋ฌ ๋ง์ ์ฒซ ์ฃผ๋ฌธ์ ๋ฐ๊ธฐ๊น์ง์ ๊ณผ์ ๊ณผ ์ฒดํฌ๋ฆฌ์คํธ, ์ค์ ์ฌ๋ก๋ฅผ 2026๋ ๊ธฐ์ค์ผ๋ก ์ ๋ฆฌํ์ต๋๋ค.", + "contentPreview": "์๋ 11์, ํด๊ทผ ํ ๋ถ์ ์ผ์ ์ค๋งํธ์คํ ์ด๋ฅผ ์ด์์ต๋๋ค. ์ํ ๋ฑ๋ก๋ง ํ๋ฉด ์์์ ํ๋ฆด ์ค ์์๋๋ฐ ์ฒซ ๋ฌ ๋งค์ถ์ ์ ํํ 0์์ด์์ต๋๋ค. ์กฐํ์ 3, ๋ฐฉ๋ฌธ์ 12๋ช , ์ฃผ๋ฌธ 0๊ฑด. ํต์ฅ์ ์ฐํ ์ซ์๋ฅผ ๋ณด๋ฉด์ '์ด๊ฑฐ ๊ดํ ์์ํ๋' ์ถ์๋ ๊ธฐ์ต์ด ์์ง๋ ์์ํฉ๋๋ค. ์ด ๊ธ์ ๊ทธ๋ ์ ๊ฐ ์ค์ ๋ก ๊ฒช์ ์ํ์ฐฉ์ค์, ์ดํ ๋ ๋ฌ ๋ง์ ์ฒซ ์ฃผ๋ฌธ์ ๋ฐ๊ธฐ๊น์ง ๋ฐ๊พผ ๊ฒ๋ค...", + "articleType": "how_to" + }, + { + "post_id": "2026-07-09_ํญ์ผ๋๋น๋ฐฉ๋ฒ_3d9a23aa", + "keyword": "ํญ์ผ ๋๋น ๋ฐฉ๋ฒ", + "title": "ํญ์ผ ๋๋น ๋ฐฉ๋ฒ, 2026๋ ์ ๊ฐ๊ณ๋ถ๊น์ง ์ฑ๊ฒจ๋ดค์ต๋๋ค", + "status": "published", + "source": "auto", + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "blogUrl": "https://hoguasset.blogspot.com/2026/07/2026_0140772148.html", + "errorMessage": null, + "createdAt": "2026-07-09T07:26:43.717516", + "publishedAt": "2026-07-09T07:26:44.758346", + "lastAttemptAt": "2026-07-09T07:26:44.758346", + "attempts": 2, + "runNumber": 152, + "wordCount": 4236, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "ํญ์ผ๋๋น๋ฐฉ๋ฒ", + "์ ๊ธฐ์๊ธ์ ์ฝ", + "๋์ง์ธ", + "์๋์ง์บ์๋ฐฑ", + "ํญ์ผ๊ด๋ จ์ฃผ", + "์ฌ๋ฆ์ฒ ๊ฐ๊ณ๋ถ", + "์ฌ์ฐ์ข ํฉ๋ณดํ" + ], + "metaDescription": "2026๋ ํญ์ผ ๋๋น ๋ฐฉ๋ฒ์ ์ ๊ธฐ์๊ธ ๋์ง์ธ, ์๋์ง์บ์๋ฐฑ, ํญ์ผ ๊ด๋ จ ๋ณดํ๊ณผ ํฌ์ ๋ฆฌ์คํฌ๊น์ง ์ง์ ๊ฒฝํ ๊ธฐ๋ฐ์ผ๋ก ์ ๋ฆฌํ์ต๋๋ค.", + "contentPreview": "์๋ 8์์ด์์ด์. ์ ๊ธฐ์๊ธ ๊ณ ์ง์ ๋ณด๊ณ ์ง์ง ๊น์ง ๋๋์ต๋๋ค. ํ์ 4๋ง์๋ ๋์ค๋ ๊ฒ ๊ฐ์๊ธฐ 9๋ง์ ๋๊ฒ ๋์จ ๊ฑฐ์์. ์์ด์ปจ ์ข ํ์๋ค๊ณ ์ด๋ ๊ฒ๊น์ง ์ค๋ฅด๋ ์ถ์ด์ ํ์ ์ฌ์ดํธ ๋ค์ด๊ฐ์ ์ฌ์ฉ๋ ์กฐํํด๋ดค๋๋, ์ ๊ฐ ๋์ง์ธ ๊ตฌ๊ฐ์ ์์ ํ ๋์ด๋ฒ๋ฆฐ ๊ฑฐ์๋๋ผ๊ณ ์. ๊ทธ๋๋ถํฐ ์ ๋ ํญ์ผ ๋๋น ๋ฐฉ๋ฒ์ด๋ผ๋ ๊ฒ ๋จ์ํ ๋ฌผ ๋ง์ด ๋ง์๊ณ ์์ฐ ์ฐ๋ ๊ฒ๋ง์ด ์๋๋ผ๋ ๊ฑธ ๊นจ๋ฌ...", + "articleType": "how_to" + }, + { + "post_id": "2026-07-09_์์ด์ปจ์ ๊ธฐ์ธ์ ์ฝ_0cf3bdae", + "keyword": "์์ด์ปจ ์ ๊ธฐ์ธ ์ ์ฝ", + "title": "์ผ๊ตฌ ์ง๊ด ๋์ ์ง์ฝํ๋ค๊ฐ ์์ด์ปจ ์ ๊ธฐ์ธ ํญํ ๋ง์ ์ฐ (2026)", + "status": "published", + "source": "auto", + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "blogUrl": "https://hogugolfntraval.blogspot.com/2026/07/2026_01440694094.html", + "errorMessage": null, + "createdAt": "2026-07-09T07:18:56.221335", + "publishedAt": "2026-07-09T07:18:57.495531", + "lastAttemptAt": "2026-07-09T07:18:57.495531", + "attempts": 2, + "runNumber": 152, + "wordCount": 4903, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "์์ด์ปจ์ ๊ธฐ์ธ์ ์ฝ", + "์ ๊ธฐ์๊ธ์ ์ฝ", + "์คํ ์ด์ผ์ด์ ", + "์ฌ๋ฆํด๊ฐ", + "ํ๋ก์ผ๊ตฌ์ง๊ด", + "๋์ง์ ", + "์์ด์ปจํํฐ์ฒญ์" + ], + "metaDescription": "์ผ๊ตฌ ์ง๊ด ๋์ ์ง์ฝํ๋ฉฐ ์์ด์ปจ์ ์ผ๋๋ค ์ ๊ธฐ์ธ ํญํ ๋ง์ ์ค์ ๊ฒฝํ๋ด. 2026๋ ์ฌ๋ฆ ์์ด์ปจ ์ ๊ธฐ์ธ ์ ์ฝ ๋ฐฉ๋ฒ์ ์ง์ ์คํํด๋ณธ ํ๊ธฐ์ ๋๋ค.", + "contentPreview": "์์งํ ์ ๋ ์๋ ์ฌ๋ฆ ๋๋ฉด ๋ฌด์กฐ๊ฑด ์ฌํ ์๋๋ฉด ์ผ๊ตฌ์ฅ์ด์๊ฑฐ๋ ์. ๊ทผ๋ฐ ์ฌํด๋ ์ข ๋ฌ๋์ด์. 6์ ๋ง๋ถํฐ ๋ ์จ๊ฐ ๋ฏธ์ณค๋ค ์ถ์ ์ ๋๋ก ๋์์ง๋ฉด์ '๊ทธ๋ฅ ์ง์์ ์์ด์ปจ ๋นต๋นตํ๊ฒ ํ๊ณ ์ผ๊ตฌ ์ค๊ณ๋ ๋ณด์'๋ ๋ง์์ผ๋ก ์คํ ์ด์ผ์ด์ ์ ํํ๋๋ฐ, 7์ ์ด์ ๋ ์์จ ์ ๊ธฐ์๊ธ ๊ณ ์ง์ ๋ณด๊ณ ์ง์ง ๋๋์ด์. ๊ทธ๋์ ์ค๋์ ์ ๊ฐ ์ง์ ๊ฒช์ ๊ฒฝํ์ ๋ฐํ์ผ๋ก ์์ด์ปจ ์ ๊ธฐ์ธ ์ ์ฝ์ ...", + "articleType": "analysis" + }, + { + "post_id": "2026-07-09_๋ธ๋ก๊ทธ์ ๋์ผ์ค์น์ธ2026์ค์ ๋กํด๋ณด๋_f8d63418", + "keyword": "๋ธ๋ก๊ทธ ์ ๋์ผ์ค ์น์ธ 2026 ์ค์ ๋ก ํด๋ณด๋", + "title": "๋ธ๋ก๊ทธ ์ ๋์ผ์ค ์น์ธ 2026 ์ค์ ๋ก ํด๋ณด๋, ์ ๋ ์ด๋ ๊ฒ ํต๊ณผํ์ต๋๋ค", + "status": "published", + "source": "auto", + "blogId": "blog1", + "blogName": "HOGU What?", + "blogUrl": "https://hoguwhat1.blogspot.com/2026/07/2026_01562711949.html", + "errorMessage": null, + "createdAt": "2026-07-09T07:10:28.328616", + "publishedAt": "2026-07-09T07:10:28.828182", + "lastAttemptAt": "2026-07-09T07:10:28.828182", + "attempts": 2, + "runNumber": 152, + "wordCount": 3217, + "faqCount": 4, + "category": "์ผ๋ฐ", + "labels": [ + "์ ๋์ผ์ค์น์ธ", + "๋ธ๋ก๊ทธ์ ๋์ผ์ค", + "๊ตฌ๊ธ์ ๋์ผ์ค2026", + "๋ธ๋ก๊ทธ์์ตํ", + "ํฐ์คํ ๋ฆฌ์ ๋์ผ์ค", + "๋ธ๋ก๊ทธ์์", + "๋ถ์ ๋ธ๋ก๊ทธ" + ], + "metaDescription": "2026๋ ์ ๋์ผ์ค ์น์ธ ์ค์ ๊ฒฝํ์ ๋ฐํ์ผ๋ก ๋ฐ๋ ค ์ฌ์ ๋ถํฐ ์ฌ์ ์ฒญ๊น์ง ๊ตฌ์ฒด์ ์ผ๋ก ์ ๋ฆฌํ์ต๋๋ค. ์ฒดํฌ๋ฆฌ์คํธ์ ์ค์ ์ฌ๋ก๊น์ง ํ์ธํด๋ณด์ธ์.", + "contentPreview": "์ง๋ 3์๋ถํฐ 6์๊น์ง ๋ ๋ฌ ๋์ ์ ๋์ผ์ค ์น์ธ ๋๋ฌธ์ ์ง์ง ์ ๋ฅผ ๋จน์์ต๋๋ค. ์ฒซ ์ ์ฒญ์์ '๊ฐ์น ๋ฎ์ ์ฝํ ์ธ '๋ก ๋ฐ๋ ค๋นํ๊ณ ๋์, ๋์ฒด ๋ญ๊ฐ ๋ฌธ์ ์ธ์ง ๊ฐ์ด ์ ์กํ๋๊ตฐ์. ์ธํฐ๋ท์ ๋ ๋๋ ์ ๋ณด๋ค์ 2023๋ , 2024๋ ๊ธฐ์ค์ด ๋๋ถ๋ถ์ด๋ผ ์ง๊ธ ์ํฉ์ด๋์ ์ข ๋ฌ๋์ต๋๋ค. ๊ทธ๋์ ์ด๋ฒ์ ์ง์ ๋ ๋ฒ์งธ ์ ์ฒญ๊น์ง ๊ฐ๋ฉด์ ๊ฒช์ ๊ฒ๋ค์ ์๋ ๊ทธ๋๋ก ๊ธฐ๋กํด๋ด ๋๋ค. ...", + "articleType": "analysis" + }, + { + "post_id": "2026-07-08_์ฅ๋ง๊ฑด๊ฐ๊ด๋ฆฌ_3fcc65d7", + "keyword": "์ฅ๋ง ๊ฑด๊ฐ ๊ด๋ฆฌ", + "title": "์ฅ๋ง ๊ฑด๊ฐ ๊ด๋ฆฌ ์ํํ๋ค๊ฐ ๋ณ์๋น๋ง 40๋ง์ ๋ ๋ฆฐ ์ด์ผ๊ธฐ", + "status": "pending", + "source": "auto", + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "blogUrl": "", + "errorMessage": null, + "createdAt": "2026-07-08T23:31:39.339795", + "publishedAt": null, + "lastAttemptAt": "2026-07-08T23:31:39.339795", + "attempts": 1, + "runNumber": 150, + "wordCount": 4219, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "์ฅ๋ง ๊ฑด๊ฐ ๊ด๋ฆฌ", + "์ค๋น๋ณดํ ์ฒญ๊ตฌ", + "์ค์๋ณดํ", + "์ฅ๋ง์ฒ ์ง์ถ๊ด๋ฆฌ", + "๊ฐ๊ณ๋ถ ๊ด๋ฆฌ", + "2026 ์ฅ๋ง", + "๊ฑด๊ฐ๋ณดํ" + ], + "metaDescription": "์ฅ๋ง ๊ฑด๊ฐ ๊ด๋ฆฌ๋ฅผ ์ํํ ํ๋ค๊ฐ ๋ณ์๋น 40๋ง์ ๋์จ ๊ฒฝํ๋ด๊ณผ ์ค๋น๋ณดํ ์ฒญ๊ตฌ ์ค์, ์ฅ๋ง์ฒ ๊ฐ๊ณ๋ถ ์ง์ถ ๊ด๋ฆฌ ํ์ ์ง์ ๊ฒช์ ๋ด์ฉ์ผ๋ก ์ ๋ฆฌํ์ต๋๋ค.", + "contentPreview": "๋งค๋ ์ด๋ง๋์ฏค์ด๋ฉด ์ ๋ ๊ผญ ํ ๋ฒ์ฉ ์์๋๋๋ผ๊ณ ์. ์ฌํด๋ ์์ธ๋ ์๋์์ด์. 7์ ์ด๋ถํฐ ๋น๊ฐ ๊ณ์ ์ค๋ฝ๊ฐ๋ฝํ๋ฉด์ ํ์ฌ ์์ด์ปจ ๋ฐ๋ ์ฌ๋ค๊ฐ, ํด๊ทผ๊ธธ์ ๊ฐ์๊ธฐ ์์์ง ๋น ๋ง๋ค๊ฐ, ๊ฒฐ๊ตญ ๋ชฉ๊ฐ๊ธฐ์ ๋ชธ์ด๊น์ง ๊ฒน์ณ์ 3์ผ์ ํต์ผ๋ก ์์์ต๋๋ค. ์ฒ์์ ๊ทธ๋ฅ ๋ฉฐ์น ์ฌ๋ฉด ๋ซ๊ฒ ์ง ํ๋๋ฐ ๋ณ์ ๋ ๋ฒ ๋ค๋ ์ค๊ณ ์ฝ ํ ๋จน๊ณ ํ๋๊น ์์์ฆ๋ง 40๋ง์ ๊ฐ๊น์ด ๋์ค๋๋ผ๊ณ ์. ์ค๋น...", + "articleType": "analysis" + }, + { + "post_id": "2026-07-08_ํญ์ผ๋๋น๋ฐฉ๋ฒ_816d218e", + "keyword": "ํญ์ผ ๋๋น ๋ฐฉ๋ฒ", + "title": "์ผ๊ตฌ์ฅ ์ง๊ด ๊ฐ๋ค๊ฐ ํญ์ผ์ ์ง์ง ์ฃฝ๋ ์ค ์์๋ ์ด์ผ๊ธฐ, 2026 ๋๋น๋ฒ", + "status": "pending", + "source": "auto", + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "blogUrl": "", + "errorMessage": null, + "createdAt": "2026-07-08T23:26:01.721495", + "publishedAt": null, + "lastAttemptAt": "2026-07-08T23:26:01.721495", + "attempts": 1, + "runNumber": 150, + "wordCount": 3209, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "ํญ์ผ ๋๋น ๋ฐฉ๋ฒ", + "์ฌ๋ฆ ์ฌํ", + "์ผ๊ตฌ์ฅ ์ง๊ด", + "์จ์ด์งํ", + "๋ฌด๋์ ๋๋น", + "์ฌ๋ฆ์ฒ ๊ฑด๊ฐ๊ด๋ฆฌ", + "ํญ์ผํน๋ณด" + ], + "metaDescription": "์ผ๊ตฌ์ฅ ์ง๊ด ์ค ์จ์ด์งํ ์ง์ ๊น์ง ๊ฐ๋ ๊ฒฝํ๋ด์ ๋ฐํ์ผ๋ก ์ผ์ธ ์คํฌ์ธ ๊ด๋๊ณผ ์ฌ๋ฆ ์ฌํ ์ ์ค์ง์ ์ธ ํญ์ผ ๋๋น ๋ฐฉ๋ฒ์ ์ ๋ฆฌํ์ต๋๋ค.", + "contentPreview": "๐ก ํต์ฌ ํฌ์ธํธ: ์ผ์ธ ์คํฌ์ธ ๊ด๋์ด๋ ์ฌ๋ฆ ์ฌํ ๊ฐ ๋ ํญ์ผ ๋๋น ๋ฐฉ๋ฒ์ ๊ทธ๋ ์๋ฆฌ ์ ์ ๊ณผ ์๋ถ ์ญ์ทจ ํ์ด๋ฐ์ด 8ํ ์ ๋๋ค. ์ ๋ ์ด๊ฑธ ๋ชฐ๋ผ์ ์๋ ์ ์๊ธ์ค ์งํํ ๋ปํ์ด์.์ง๋์ฃผ์ ์ ์ค์ผ๊ตฌ์ฅ์ ์ง๊ด์ ๊ฐ๋ค๊ฐ ์ ๋ง ํฐ์ผ๋ ๋ปํ์ต๋๋ค. 7์ ์ด์ธ๋ฐ๋ ๋ฒ์จ ๋ฎ ๊ธฐ์จ์ด 35๋๋ฅผ ๋๋๋ค์๊ณ , ์ ๋ ๊ทธ๋ฅ ์ฌ๋ ๋์ฒ๋ผ ์์ด์ค๋ฐ์ค์ ๋งฅ์ฃผ๋ง ์๋ฉ ์ฑ๊ฒจ๊ฐ๊ฑฐ๋ ์. ๊ทผ๋ฐ 3ํ...", + "articleType": "how_to" + }, + { + "post_id": "2026-07-08_์์์ธ์์๋ณด๋ค๋ง์ด๋์จ์ด์ _a099ae7d", + "keyword": "์์์ธ ์์๋ณด๋ค ๋ง์ด ๋์จ ์ด์ ", + "title": "์์์ธ ์์๋ณด๋ค ๋ง์ด ๋์จ ์ด์ , 2026๋ ์ง์ ๊ฒช๊ณ ์์์ต๋๋ค", + "status": "pending", + "source": "auto", + "blogId": "blog1", + "blogName": "HOGU What?", + "blogUrl": "", + "errorMessage": null, + "createdAt": "2026-07-08T23:21:04.331625", + "publishedAt": null, + "lastAttemptAt": "2026-07-08T23:21:04.331625", + "attempts": 1, + "runNumber": 150, + "wordCount": 3204, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "์์์ธ", + "์์์ธ๊ณ์ฐ", + "์ฌ์ ์ฆ์ฌ", + "์ฆ์ฌ์ธ", + "์ธ๊ธ์ ์ธ", + "์ฌํ ํฌ", + "๋ถ๋์ฐ์ธ๊ธ" + ], + "metaDescription": "์์์ธ ์์๋ณด๋ค ๋ง์ด ๋์จ ์ด์ ๋ฅผ ์ง์ ๊ฒช์ ๊ฒฝํ์ผ๋ก ์ ๋ฆฌํ์ต๋๋ค. ์ฌ์ ์ฆ์ฌ ํฉ์ฐ, ์ฌ์ฐ ํ๊ฐ ๋ฐฉ์, ๊ณต์ ์๊ฑด๊น์ง ์ฒดํฌ๋ฆฌ์คํธ๋ก ํ์ธํด๋ณด์ธ์.", + "contentPreview": "์๋ ๊ฐ์, ์๋ฒ์ง๊ฐ ๊ฐ์๊ธฐ ๋์๊ฐ์๊ณ ๋์ ํ์ ๋ค๊ณผ ์์ ์ ๋ฆฌ๋ฅผ ํ๊ฒ ๋์ต๋๋ค. ์ธ๋ฌด์ฌ ์ฌ๋ฌด์ค์์ ์ฒ์ ์์ ์ธ์ก์ ๋ค์์ ๋๋ ๊ทธ๋ญ์ ๋ญ ๋ผ ๋งํ๋ค๊ณ ์๊ฐํ๋๋ฐ, ๋ง์ ์ ๊ณ ๋ฅผ ๋ง์น๊ณ ๊ณ ์ง์๋ฅผ ๋ฐ์๋ณด๋ ์ฒ์ ์๊ธฐํ๋ ๊ธ์ก๋ณด๋ค ํจ์ฌ ๋ง์ด ๋์์ ๋นํฉํ๋ ๊ธฐ์ต์ด ์์ต๋๋ค. ์ ์ฒ๋ผ ์์์ธ ์์๋ณด๋ค ๋ง์ด ๋์จ ์ด์ ๋ฅผ ๋ค๋ฆ๊ฒ ์๊ฒ ๋ ๋ถ๋ค์ด ๊ฝค ๋ง๋๊ตฐ์. ์ด๋ฒ ๊ธ์...", + "articleType": "analysis" + }, + { + "post_id": "2026-07-08_์ง์ฅ์ธ์30๋ง์ETFํฌ์์์งํ๊ธฐ_ab3e2564", + "keyword": "์ง์ฅ์ธ ์ 30๋ง์ ETF ํฌ์ ์์ง ํ๊ธฐ", + "title": "์ง์ฅ์ธ ์ 30๋ง์ ETF ํฌ์, 1๋ ํด๋ณด๊ณ ์์ง ํ๊ธฐ ๋จ๊น๋๋ค", + "status": "pending", + "source": "auto", + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "blogUrl": "", + "errorMessage": null, + "createdAt": "2026-07-08T11:58:12.434081", + "publishedAt": null, + "lastAttemptAt": "2026-07-08T11:58:12.434081", + "attempts": 1, + "runNumber": 149, + "wordCount": 4236, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "ETFํฌ์", + "์ง์ฅ์ธ์ฌํ ํฌ", + "์30๋ง์ํฌ์", + "์์กํฌ์", + "ETFํ๊ธฐ", + "์ ๋ฆฝ์ํฌ์", + "์ฌํ ํฌ์ต๊ด" + ], + "metaDescription": "์ง์ฅ์ธ์ด ์ 30๋ง์์ฉ 1๋ ๋๊ฒ ETF์ ํฌ์ํด๋ณธ ์์งํ ํ๊ธฐ์ ๋๋ค. ์์ต๋ฅ , ์ค์๋ด, 2026๋ ๋ฌ๋ผ์ง ์ ๊น์ง ์๋ ๊ทธ๋๋ก ๋ด์์ต๋๋ค.", + "contentPreview": "์๋ ์ด๋ง๋์ฏค์ด์์ด์. ์๊ธ ํต์ฅ์ ์ฐํ ์ซ์๋ฅผ ๋ณด๋ค๊ฐ ๋ฌธ๋ ์ด๋๋ก๋ ์ ๋๊ฒ ๋ค ์ถ๋๋ผ๊ณ ์. ์ ๋ 30๋ ์ค๋ฐ ์ง์ฅ์ธ์ด๊ณ , ํน๋ณํ ์ฌํ ํฌ์ ์์ง์ด ์๋ ๊ฒ๋ ์๋์์ด์. ๊ทธ๋ฅ ๋งค๋ฌ ๋จ๋ ๋์ด ์นด๋๊ฐ์ด๋ ์ ๊ฐ์ผ๋ก ๋ค ๋ น์ ์์ด์ง๋ ๊ฒ ์ต์ธํด์ ์์ํ ๊ฒ ์ 30๋ง์ ETF ํฌ์์์ต๋๋ค. ์ฒ์์ ๋ฐ์ ๋ฐ์ํ์ด์. ์ด ๋ ๋ฃ์ด๋ดค์ ์ผ๋ง๋ ๋๊ฒ ๋ ์ถ์๊ฑฐ๋ ์. ๊ทผ๋ฐ ...", + "articleType": "review" + }, + { + "post_id": "2026-07-08_์ฅ๋ง๊ฑด๊ฐ๊ด๋ฆฌ_37d289c0", + "keyword": "์ฅ๋ง ๊ฑด๊ฐ ๊ด๋ฆฌ", + "title": "์ฅ๋ง์ฒ ์ฌํ ๋ค๋๋ค ์ปจ๋์ ๋๋ฆฌ๋ฌ๋ ์ ์๊ธฐ (2026๋ )", + "status": "pending", + "source": "auto", + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "blogUrl": "", + "errorMessage": null, + "createdAt": "2026-07-08T11:55:43.753320", + "publishedAt": null, + "lastAttemptAt": "2026-07-08T11:55:43.753320", + "attempts": 1, + "runNumber": 149, + "wordCount": 3679, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "์ฅ๋ง๊ฑด๊ฐ๊ด๋ฆฌ", + "์ฅ๋ง์ฒ ์ฌํ", + "์ฌ๋ฆ์ฒ ๊ฑด๊ฐ", + "์ฅ๋ง์ฒ ์ด๋", + "์ต๋๊ด๋ฆฌ", + "์ฌํํ2026", + "์ฅ๋ง์ฒ ๊ฐ๊ธฐ" + ], + "metaDescription": "์ฅ๋ง์ฒ ์ฌํ๊ณผ ์ผ์ธ ์ด๋์์ ์ ๊ฐ ์ง์ ๊ฒช์ ์ปจ๋์ ๋์กฐ ๊ฒฝํ์ ๋ฐํ์ผ๋ก, ์ฅ๋ง ๊ฑด๊ฐ ๊ด๋ฆฌ๋ฅผ ์ํ ์ค์ง์ ์ธ ๋์ฒ๋ฒ๊ณผ ์ํ์ฐฉ์ค๋ฅผ ์ ๋ฆฌํ์ด์.", + "contentPreview": "7์ ์ฒซ์งธ ์ฃผ์ ์ ์ฃผ๋๋ก 2๋ฐ 3์ผ ์ฌํ์ ๋ค๋ ์๋๋ฐ์, ์์งํ ์ด๋ฒ์ฒ๋ผ ์ฅ๋ง ๊ฑด๊ฐ ๊ด๋ฆฌ๋ฅผ ์ ๋๋ก ๋ชป ์ฑ๊ฒจ์ ๊ณ ์ํ ์ ์ด ์์์ด์. ๋์ฐฉํ ๋ ๋ถํฐ ๋น๊ฐ ์ต์๊ฐ์ด ์์์ง๋๋ ์ต๋๊ฐ 90%๋ฅผ ๋๋๋ค๊ณ , ๋์งธ ๋ ์ ๋ ๋ถํฐ ๋ชฉ์ด ์นผ์นผํ๊ณ ๋ชธ์ด ์ผ์ฌ์ผ์ฌํ ๊ฒ ๋ฑ ๋ชธ์ด ์ด๊ธฐ ์ฆ์์ด์๊ฑฐ๋ ์. ํ์์ ์ฌํ ๊ฐ๋ฉด ์์นจ๋ง๋ค ๋ฌ๋ํ ์ฑ๊ฒจ์ ํ ์๊ฐ์ฉ ๋ฐ๋ ๊ฒ ๋ฃจํด์ธ๋ฐ, ์ด๋ฒ์...", + "articleType": "analysis" + }, + { + "post_id": "2026-07-08_ํ๋ฆฌ๋์์ข ํฉ์๋์ธ์ฒ์์ ๊ณ ํ๋ฉด์์ค์ํ๊ฒ_813aee22", + "keyword": "ํ๋ฆฌ๋์ ์ข ํฉ์๋์ธ ์ฒ์ ์ ๊ณ ํ๋ฉด์ ์ค์ํ ๊ฒ", + "title": "ํ๋ฆฌ๋์ ์ข ํฉ์๋์ธ ์ฒซ ์ ๊ณ , ์ ๋ ์ด๋ ๊ฒ ์ค์ํ์ต๋๋ค (2026๋ )", + "status": "pending", + "source": "auto", + "blogId": "blog1", + "blogName": "HOGU What?", + "blogUrl": "", + "errorMessage": null, + "createdAt": "2026-07-08T11:50:26.048021", + "publishedAt": null, + "lastAttemptAt": "2026-07-08T11:50:26.048021", + "attempts": 1, + "runNumber": 149, + "wordCount": 3338, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "์ข ํฉ์๋์ธ", + "ํ๋ฆฌ๋์์ธ๊ธ", + "ํํ์ค์ ๊ณ ", + "3.3%์์ฒ์ง์", + "๊ฒฝ๋น์ฒ๋ฆฌ", + "์ธ๊ธ์ ๊ณ ์ค์", + "๊ธฐ์ค๊ฒฝ๋น์จ" + ], + "metaDescription": "ํ๋ฆฌ๋์ ์ฒซ ์ข ํฉ์๋์ธ ์ ๊ณ ์์ ์ค์ ๋ก ๊ฒช์ ์ค์์ ์ฒดํฌ๋ฆฌ์คํธ, ์ ๊ณ ์ ํ ์ ํ ๋ฐฉ๋ฒ์ 2026๋ ๊ธฐ์ค์ผ๋ก ๊ฒฝํ๋ด๊ณผ ํจ๊ป ์ ๋ฆฌํ์ต๋๋ค.", + "contentPreview": "์๋ 5์, ์ ๋ ํ์ฌ๋ฅผ ๊ทธ๋ง๋๊ณ ํ๋ฆฌ๋์๋ก ์ ํฅํ ์ง ๋ฑ 1๋ ๋ง์ ์ฒ์์ผ๋ก ์ข ํฉ์๋์ธ ์ ๊ณ ๋ฅผ ํด์ผ ํ์ต๋๋ค. ํ์ฌ ๋ค๋ ๋๋ ์ฐ๋ง์ ์ฐ๋ง ํ๋ฉด ๋์ด์๋๋ฐ, ํ๋ฆฌ๋์๊ฐ ๋๊ณ ๋๋ ๊ตญ์ธ์ฒญ ํํ์ค ํ๋ฉด ์์์ ๋ช ์๊ฐ์ ๋ฉํ๋ ์์ ์์๋ ๊ธฐ์ต์ด ๋ฉ๋๋ค. ๊ฒฝ๋น ์ฒ๋ฆฌ๋ ๋ญ ๋ฃ์ด์ผ ํ๋์ง, 3.3% ์์ฒ์ง์๋ ๋ ๋ญ์ง, ๊ฐ์ฐ์ธ๋ ์ ๋ถ๋ ๊ฑด์ง ํ๋๋ ๋ชจ๋ฅธ ์ฑ ์ ๊ณ ...", + "articleType": "analysis" + }, + { + "post_id": "2026-07-07_์ฌ๋ฆ๋๋ฐฉ๊ฟํ_8226a8cb", + "keyword": "์ฌ๋ฆ ๋๋ฐฉ ๊ฟํ", + "title": "์ฌ๋ฆ ๋๋ฐฉ ๊ฟํ, ์๋ ์ ์ ๊ธฐ์๊ธ ํญํ ๋ง๊ณ ๊นจ๋ฌ์ ๊ฒ๋ค (2026)", + "status": "skipped", + "source": "auto", + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "blogUrl": "", + "errorMessage": null, + "createdAt": "2026-07-07T12:59:17.514876", + "publishedAt": null, + "lastAttemptAt": "2026-07-07T12:59:17.514876", + "attempts": 1, + "runNumber": 141, + "wordCount": 2626, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "์ฌ๋ฆ๋๋ฐฉ๊ฟํ", + "์ ๊ธฐ์๊ธ์ ์ฝ", + "๋์ง์ธ", + "์๋์ง์บ์๋ฐฑ", + "ํ์ ์๊ธ", + "๊ฐ๊ณ๋ถ๊ด๋ฆฌ", + "์ฌ๋ฆ์ ๊ธฐ์ธ" + ], + "metaDescription": "์๋ ์ฌ๋ฆ ์ ๊ธฐ์๊ธ ํญํ์ ๋ง๊ณ ์ง์ ๋ถ์ํด๋ณธ 2026๋ ์ฌ๋ฆ ๋๋ฐฉ ๊ฟํ, ๋์ง์ธ ๊ตฌ๊ฐ ๊ด๋ฆฌ์ ์๋์ง์บ์๋ฐฑ ํ์ฉ๋ฒ์ ์ค์ ๊ฒฝํ๊ณผ ์์น๋ก ์ ๋ฆฌํ์ต๋๋ค.", + "contentPreview": "๐ก ํต์ฌ ํฌ์ธํธ: ์ฌ๋ฆ ๋๋ฐฉ ๊ฟํ์ ๋จ์ํ ์ ๊ธฐ ์๋ผ๋ ๋ฒ์ด ์๋๋ผ ๋์ง์ธ ๊ตฌ๊ฐ์ ๋๊ธฐ์ง ์๋ ์๋น ํจํด ๊ด๋ฆฌ๊ฐ ํต์ฌ์ ๋๋ค. ์ ๋ ์ด๊ฑธ ๋ชฐ๋ผ์ ์๋ ์ ํ ๋ฌ ์ ๊ธฐ์๊ธ์ด ๋ ๋ฐฐ ๋๊ฒ ๋์จ ์ ์ด ์์ด์. ์ ๋ ๊ธ์ต ๊ด๋ จ ๊ธ์ ์ฐ๋ฉด์ ๊ฐ๊ณ๋ถ๋ ๊ฝค ์ค๋ ์จ์๋๋ฐ์, ์๋ 7์ ์ ๊ธฐ์๊ธ ๊ณ ์ง์๋ฅผ ๋ณด๊ณ ์ง์ง ๊น์ง ๋๋๋ ๊ธฐ์ต์ด ์์ด์. 6์์ 18๋ง์ ์ ๋ ๋์ค๋ ๊ฒ...", + "articleType": "analysis" + }, + { + "post_id": "2026-07-07_๊ฐ์๋์บ ํ์ฒ์ํด๋ดค์๋๋ชฐ๋๋๊ฒ๋ค_3d9a4928", + "keyword": "๊ฐ์๋ ์บ ํ ์ฒ์ ํด๋ดค์ ๋ ๋ชฐ๋๋ ๊ฒ๋ค", + "title": "๊ฐ์๋ ์บ ํ ์ฒ์ ํด๋ดค์ ๋ ๋ชฐ๋๋ ๊ฒ๋ค (2026 ํ๊ธฐ)", + "status": "pending", + "source": "auto", + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "blogUrl": "", + "errorMessage": null, + "createdAt": "2026-07-07T12:50:24.057347", + "publishedAt": null, + "lastAttemptAt": "2026-07-07T12:50:24.057347", + "attempts": 1, + "runNumber": 141, + "wordCount": 2541, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "๊ฐ์๋์บ ํ", + "์บ ํ์ด๋ณด", + "์บ ํ์ค๋น๋ฌผ", + "๊ฐ์๋์ฌํ", + "์ฐจ๋ฐ", + "๊ณ๊ณก์บ ํ", + "์บ ํ์ฅ์์ฝ" + ], + "metaDescription": "๊ฐ์๋ ์บ ํ ์ฒ์ ํด๋ดค์ ๋ ๋ชฐ๋๋ ๊ฒ๋ค, ๊ธฐ์จ์ฐจ๋ถํฐ ์ต๋, ์์ฝ ํ์ด๋ฐ๊น์ง ์ง์ ๊ฒช์ ์ค์์ ํ๊ธฐ๋ฅผ 2026๋ ๊ธฐ์ค์ผ๋ก ์์งํ๊ฒ ์ ๋ฆฌํ์ต๋๋ค.", + "contentPreview": "์๋ ์ฌ๋ฆ์ด์์ด์. ํ์ฌ ๋๊ธฐ๊ฐ ์บ ํ์นด ๋ ํธํด์ ๊ฐ์๋ ํ์ฒ์ผ๋ก ๋๋ฌ๊ฐ์๊ณ ๊ผฌ์ จ๊ฑฐ๋ ์. ์ ๋ ์บ ํ์ด๋ผ๊ณ ๋ ์ด๋ฑํ๊ต ๋ ๋ถ๋ชจ๋ ๋ฐ๋ผ๊ฐ ๊ฒ ๋ง์ง๋ง์ด์๋๋ฐ, 30๋ ์ค๋ฐ ๋์ด์ ๋ค์ ํ ํธ๋ฅผ ์น๊ฒ ๋ ์ค์ ๋ชฐ๋์ฃ . ๊ทผ๋ฐ ์ด๊ฒ ์ธํฐ๋ท์์ ๋ณด๋ ๊ฐ์ฑ์บ ํ ์ฌ์ง์ด๋ ์ค์ ๋ ์์ ๋ค๋ฅด๋๋ผ๊ณ ์. ์ ์ง์ง ๊ทธ๋ ์ ๋ ์ ํํ ์ข ํ์ด์.์ด๋ฒ ๊ธ์ ๊ฐ์๋ ์บ ํ์ ์ฒ์ ํด๋ดค์ ๋ ...", + "articleType": "analysis" + }, + { + "post_id": "2026-07-07_์ํํธ์ฒญ์ฝ2026๋ ๋ฌ๋ผ์ง์ ์ ๋ฆฌ_d67492e6", + "keyword": "์ํํธ ์ฒญ์ฝ 2026๋ ๋ฌ๋ผ์ง ์ ์ ๋ฆฌ", + "title": "์ํํธ ์ฒญ์ฝ 2026๋ ๋ฌ๋ผ์ง ์ , ์ ๋ ์ด๋ ๊ฒ ๋ค์ ์ค๋นํ์ด์", + "status": "pending", + "source": "auto", + "blogId": "blog1", + "blogName": "HOGU What?", + "blogUrl": "", + "errorMessage": null, + "createdAt": "2026-07-07T12:46:30.242729", + "publishedAt": null, + "lastAttemptAt": "2026-07-07T12:46:30.242729", + "attempts": 1, + "runNumber": 141, + "wordCount": 2723, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "์ํํธ์ฒญ์ฝ", + "2026๋ ์ฒญ์ฝ", + "์ฒญ์ฝํต์ฅ", + "์ ์์ํน๊ณต", + "๋ถ๋ถ์ค๋ณต์ฒญ์ฝ", + "๋ฌด์์์ฒญ์ฝ", + "์ฒญ๋ ์ฃผํ๋๋ฆผ" + ], + "metaDescription": "2026๋ ์ํํธ ์ฒญ์ฝ ๋ฌ๋ผ์ง ์ , ์ฒญ์ฝํต์ฅ ๋ฉ์ ์ก๋ถํฐ ์ ์์ ํน๊ณต, ๋ถ๋ถ ์ค๋ณต์ฒญ์ฝ๊น์ง ์ง์ ๊ฒช์ ์ค์์ ๊ฒฝํ๋ด์ผ๋ก ์ ๋ฆฌํ์ด์.", + "contentPreview": "์๋ ๊ฐ์์ ์ฒญ์ฝ ๋ฃ์๋ค๊ฐ ๋จ์ด์ง๊ณ ๋์ ํ๋์ ์์ ๋จ์์ด์. ๊ทธ๋ฌ๋ค ์ฌํด ์ด์ ๋ค์ ์ฒญ์ฝํ ๋ค์ด๊ฐ๋ดค๋๋ฐ, ๋ญ๊ฐ ํ๋ฉด๋ถํฐ ๋ฏ์ค๋๋ผ๊ณ ์. ์ํํธ ์ฒญ์ฝ 2026๋ ๋ฌ๋ผ์ง ์ ์ด ์๊ฐ๋ณด๋ค ๋ง์์ ์ฒ์์ ์ ๋ ํท๊ฐ๋ ธ์ด์. ํนํ ์ฒญ์ฝํต์ฅ ๋ฉ์ ์ธ์ ์ก์ด๋ ์ ์์ ํน๊ณต ๊ด๋ จํด์๋ ์ ํฌ ๋ถ๋ถ๋ ์๋ก ๋ค๋ฅด๊ฒ ์๊ณ ์์ด์ ํ์ฐธ ๊ฒ์ํ๊ณ ๋ค๋ ๊ฑฐ๋ ์.๊ทธ๋์ ์ค๋์ ์ ๊ฐ ์ง์ ์ฒญ...", + "articleType": "analysis" + }, + { + "post_id": "2026-07-07_์์ด์ปจ์ ๊ธฐ์ธ์ ์ฝ_ad22b3b7", + "keyword": "์์ด์ปจ ์ ๊ธฐ์ธ ์ ์ฝ", + "title": "์์ด์ปจ ์ ๊ธฐ์ธ ์ ์ฝ, ์๋ ์ 12๋ง์ ์๊ผ๋ ๋ฐฉ๋ฒ (2026๋ )", + "status": "pending", + "source": "auto", + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "blogUrl": "", + "errorMessage": null, + "createdAt": "2026-07-07T12:40:57.525099", + "publishedAt": null, + "lastAttemptAt": "2026-07-07T12:40:57.525099", + "attempts": 1, + "runNumber": 140, + "wordCount": 2687, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "์์ด์ปจ์ ๊ธฐ์ธ์ ์ฝ", + "์ ๊ธฐ์๊ธ๋์ง์ ", + "์ฌ๋ฆ์ฒ ์ ๊ธฐ์ธ", + "ํ์ ์๋์ง์บ์๋ฐฑ", + "๊ฐ๊ณ๋ถ๊ด๋ฆฌ", + "๊ณ ์ ๋น์ ์ฝ", + "2026์ ๊ธฐ์๊ธ" + ], + "metaDescription": "์๋ ์ฌ๋ฆ ์ ๊ธฐ์๊ธ ํญํ์ ๋ง๊ณ ์ง์ ์ค์ฒํด๋ณธ ์์ด์ปจ ์ ๊ธฐ์ธ ์ ์ฝ๋ฒ. ๋์ง์ ๊ตฌ๊ฐ ๊ณ์ฐ๋ถํฐ ์ค์ธ๊ธฐ ๊ด๋ฆฌ๊น์ง 2026๋ ๊ธฐ์ค ์ค์ ๊ฒฝํ๋ด์ ์ ๋ฆฌํ์ต๋๋ค.", + "contentPreview": "์๋ 8์์ด์์ด์. ์ ๊ธฐ์๊ธ ๊ณ ์ง์๋ฅผ ์ด์ด๋ณด๊ณ ์ง์ง ๊น์ง ๋๋๋ ๊ธฐ์ต์ด ๋์. 7์ ์๊ธ์ด 4๋ง์๋์๋๋ฐ 8์์ ๊ฐ์๊ธฐ 9๋ง์ ๋๊ฒ ๋์จ ๊ฑฐ์์. ์์ด์ปจ ํ๋ฃจ์ ๊ทธ๋ ๊ฒ ์ค๋ ํผ ๊ฒ๋ ์๋๋ฐ ์ ์ด๋ ๊ฒ ๋๋ ์ถ์ด์ ๊ทธ๋๋ถํฐ ์ ๊ธฐ์๊ธ ๊ตฌ์กฐ๋ฅผ ์ง์งํ๊ฒ ํ๋ณด๊ธฐ ์์ํ๊ฑฐ๋ ์. ์ ๋ ์ฌํ ํฌ ๋ธ๋ก๊ทธ๋ฅผ ํ๋ฉด์๋ ์ ์ ์ ์ง ์ ๊ธฐ์๊ธ์ ์ ๊ฒฝ์ ์ ์ฐ๊ณ ์ด์๋๋ผ๊ณ ์. ๊ทธ๋ฌ๋ค...", + "articleType": "analysis" + }, + { + "post_id": "2026-07-07_๋ถ์ฐ1๋ฐ2์ผํผ์์ฌํํ์ค๋น์ฉ๊ณต๊ฐ_adea0d3b", + "keyword": "๋ถ์ฐ 1๋ฐ2์ผ ํผ์ ์ฌํ ํ์ค ๋น์ฉ ๊ณต๊ฐ", + "title": "๋ถ์ฐ 1๋ฐ2์ผ ํผ์ ์ฌํ ํ์ค ๋น์ฉ ๊ณต๊ฐ, 2026๋ ์ ์ง์ ์จ๋ณด๋", + "status": "pending", + "source": "auto", + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "blogUrl": "", + "errorMessage": null, + "createdAt": "2026-07-07T12:31:46.884058", + "publishedAt": null, + "lastAttemptAt": "2026-07-07T12:31:46.884058", + "attempts": 1, + "runNumber": 140, + "wordCount": 2700, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "๋ถ์ฐ์ฌํ", + "ํผ์์ฌํ", + "1๋ฐ2์ผ์ฌํ", + "๋ถ์ฐํผ์์ฌํ", + "์ฌํ๋น์ฉ", + "๊ตญ๋ด์ฌํ", + "๋ถ์ฐ๋ง์ง" + ], + "metaDescription": "2026๋ 6์ ๋ถ์ฐ 1๋ฐ2์ผ ํผ์ ์ฌํ ๋ค๋ ์จ ํ์ค ๋น์ฉ 21๋ง์ ๊ณต๊ฐ, ๊ตํต๋น ์์๋น ์๋น ๋ค ๊น๋ณด๊ณ ์ ๋ช ๋ง์ง ์ค๋ง๋ด๊น์ง ์์งํ๊ฒ ์ ๋ฆฌํ์ด์.", + "contentPreview": "ํผ์ ๋ถ์ฐ ๊ฐ์ผ๊ฒ ๋ค๊ณ ๋ง์๋จน์ ๊ฒ ์๋ ์ฌ๋ฆ๋ถํฐ์์ด์. ํ์ฌ ์ผ์ด ๋๋ฌด ์ ์ ์์ด์ ๊ทธ๋ฅ ์๋ฌด ์๊ฐ ์์ด ๊ธฐ์ฐจ ํ๊ณ ์ด๋๋ก ๊ฐ ๋ ๋๊ณ ์ถ๋๋ผ๊ณ ์. ๊ทผ๋ฐ ๋ง์ ๊ฒ์์ ํด๋ณด๋ ๋ถ์ฐ 1๋ฐ2์ผ ์ฌํ ๋น์ฉ์ด ๋ธ๋ก๊ทธ๋ง๋ค ๋ค ๋ฌ๋ผ์ ๋ญ ๋ฏฟ์ด์ผ ํ ์ง ๋ชจ๋ฅด๊ฒ ๋ ๊ฑฐ์์. ์ด๋ค ๊ธ์ 15๋ง์์ด๋ฉด ์ถฉ๋ถํ๋ค๊ณ ํ๊ณ , ์ด๋ค ๊ธ์ 30๋ง์์ ์์ด์ผ ํ๋ค๊ณ ํ๊ณ . ๊ทธ๋์ ์ ๋ 2026๋ ...", + "articleType": "travel_guide" + }, + { + "post_id": "2026-07-07_์ข ํฉ์๋์ธ์ฒ์์ ๊ณ ํ ๋๊ฐ์ฅํท๊ฐ๋ ธ๋๊ฒ_14d25551", + "keyword": "์ข ํฉ์๋์ธ ์ฒ์ ์ ๊ณ ํ ๋ ๊ฐ์ฅ ํท๊ฐ๋ ธ๋ ๊ฒ", + "title": "์ข ํฉ์๋์ธ ์ฒ์ ์ ๊ณ ํ ๋ ๊ฐ์ฅ ํท๊ฐ๋ ธ๋ ๊ฒ (2026 ํ๊ธฐ)", + "status": "pending", + "source": "auto", + "blogId": "blog1", + "blogName": "HOGU What?", + "blogUrl": "", + "errorMessage": null, + "createdAt": "2026-07-07T12:27:19.782256", + "publishedAt": null, + "lastAttemptAt": "2026-07-07T12:27:19.782256", + "attempts": 1, + "runNumber": 140, + "wordCount": 2785, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "์ข ํฉ์๋์ธ", + "์ข ํฉ์๋์ธ์ ๊ณ ", + "2026์ข ํฉ์๋์ธ", + "ํํ์ค", + "๊ฒฝ๋น์จ", + "๊ธฐํ์๋", + "์ฌ์ ์๋" + ], + "metaDescription": "์ข ํฉ์๋์ธ ์ฒ์ ์ ๊ณ ํ ๋ ๊ฐ์ฅ ํท๊ฐ๋ ธ๋ ์๋ ๊ตฌ๋ถ, ๊ฒฝ๋น์จ, ๊ฐ์ฐ์ธ ์ค์๊น์ง 2026๋ ์ง์ ๊ฒช์ ๊ฒฝํ์ ์์งํ๊ฒ ์ ๋ฆฌํ์ด์.", + "contentPreview": "๐ก ํต์ฌ ํฌ์ธํธ: ์ข ํฉ์๋์ธ ์ฒ์ ์ ๊ณ ํ ๋ ๊ฐ์ฅ ํท๊ฐ๋ ธ๋ ๊ฑด '์ด๋ค ์๋์ ์ด๋์ ๋ฃ์ด์ผ ํ๋์ง'์ '๊ฒฝ๋น์จ์ด ๋ญ์ง'์์ด์. ์ ๋ ์ด๊ฑฐ ํ๋ ๋ชฐ๋ผ์ ๋์ค์ ๊ฐ์ฐ์ธ๊น์ง ๋์ต๋๋ค.์๋ ์ด๋ง๋์ฏค์ด์์ด์. 5์ ์ข ํฉ์๋์ธ ์ ๊ณ ๊ธฐ๊ฐ์ ํํ์ค ๋ค์ด๊ฐ๋ค๊ฐ ํ๋ฉด ๋ณด๊ณ ์ง์ง ๋ฉ๋ถ์ด ์๋ ๊ฒ ์์ง๋ ์์ํด์. ์ ๋ ๋ณธ์ ์ธ์ ๋ถ์ ์ผ๋ก ๋ธ๋ก๊ทธ ๊ด๊ณ ์์ต์ด๋ ํ๋ฆฌ๋์ ์๊ณ ๋ฃ...", + "articleType": "analysis" + }, + { + "post_id": "2026-07-06_์ฅ๋ง๊ฑด๊ฐ๊ด๋ฆฌ_44684b01", + "keyword": "์ฅ๋ง ๊ฑด๊ฐ ๊ด๋ฆฌ", + "title": "์ฅ๋ง์ฒ ๊ฑด๊ฐ ๊ด๋ฆฌ, ์ฌ์ค์ ์ ์ง๊ฐ ๋ฌธ์ ์์ด์ (2026 ํ๊ธฐ)", + "status": "pending", + "source": "auto", + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "blogUrl": "", + "errorMessage": null, + "createdAt": "2026-07-06T23:23:29.846021", + "publishedAt": null, + "lastAttemptAt": "2026-07-06T23:23:29.846021", + "attempts": 1, + "runNumber": 138, + "wordCount": 2614, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "์ฅ๋ง ๊ฑด๊ฐ ๊ด๋ฆฌ", + "์ค์๋ณดํ ์ฒญ๊ตฌ", + "์๋ฃ๋น ์ธ์ก๊ณต์ ", + "์ฅ๋ง์ฒ ์ง์ถ๊ด๋ฆฌ", + "๊ฐ๊ณ๋ถ ๊ด๋ฆฌ", + "๊ฑด๊ฐ๋ณดํ", + "์ฌ๋ฆ์ฒ ๊ฑด๊ฐ" + ], + "metaDescription": "2026๋ ์ฅ๋ง์ฒ , ๋ณ์๋น์ ์ค์๋ณดํ ์ฒญ๊ตฌ๋ก ์ง์ ๊ฒช์ ์ง์ถ ๊ฒฝํ๋ด. ์๋ฃ๋น ์ธ์ก๊ณต์ ์ ์์ฐ ๊ด๋ฆฌ ํ๊น์ง ์์งํ๊ฒ ์ ๋ฆฌํ์ต๋๋ค.", + "contentPreview": "๐ก ํต์ฌ ํฌ์ธํธ: ์ฅ๋ง ๊ฑด๊ฐ ๊ด๋ฆฌ๋ฅผ ์ํํ ํ๋ฉด ๋ณ์๋น, ์ฝ๊ฐ, ํ์๋น๊น์ง ๊ฒน์ณ์ ํ ๋ฌ ์ง์ถ์ด ํ ๋ฐ๋๋ฐ์. ์ค์๋ณดํ ์ฒญ๊ตฌ๋ ์๋ฃ๋น ์ธ์ก๊ณต์ ๋ง ์ ๋๋ก ์ฑ๊ฒจ๋ ๊ทธ ๋ถ๋ด์ด ๊ฝค ์ค์ด๋ญ๋๋ค.์ฌํด ์ฅ๋ง๊ฐ ์๋ ๋ณด๋ค ์ข ๋ฆ๊ฒ ์์๋๋๋ฐ, ์ ๋ 6์ ๋ง๋ถํฐ ๋น์ผ์ด๋ ๋ฌด๋ฆ ํต์ฆ ๋๋ฌธ์ ๋ณ์์ ์ธ ๋ฒ์ด๋ ๊ฐ์ด์. ์๋ ์ด๋ง๋ ๊ฑด๊ฐ ์๊ธฐํ๋ฉด ๋ค๋ค ์ฐ์ฐ์ด๋ ์ ์ต๊ธฐ๋ ํ๋ ์๊ธฐ...", + "articleType": "analysis" + }, + { + "post_id": "2026-07-06_ํญ์ผ๋๋น๋ฐฉ๋ฒ_770f7dce", + "keyword": "ํญ์ผ ๋๋น ๋ฐฉ๋ฒ", + "title": "์ผ๊ตฌ์ฅ ์ง๊ด ๋ค๋๋ฉด์ ๋ฐฐ์ด ํญ์ผ ๋๋น ๋ฐฉ๋ฒ, 2026๋ ์ ์ด๋ ๊ฒ ํฉ๋๋ค", + "status": "published", + "source": "auto", + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "blogUrl": "https://hogugolfntraval.blogspot.com/2026/07/2026_0130745006.html", + "errorMessage": null, + "createdAt": "2026-07-06T23:20:49.539320", + "publishedAt": "2026-07-06T23:20:50.716479", + "lastAttemptAt": "2026-07-06T23:20:50.716479", + "attempts": 2, + "runNumber": 138, + "wordCount": 2602, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "ํญ์ผ ๋๋น ๋ฐฉ๋ฒ", + "์ฌ๋ฆ์ฒ ์์ ", + "์ผ๊ตฌ์ฅ ์ง๊ด", + "์จ์ด์งํ ์๋ฐฉ", + "์ฌํ ํญ์ผ ๋๋น", + "ํญ์ผ ํน๋ณด", + "2026๋ ์ฌ๋ฆ" + ], + "metaDescription": "์ผ๊ตฌ์ฅ ์ง๊ด๊ณผ ์ฌํ ๋ค๋๋ฉฐ ์ง์ ๊ฒช์ ํญ์ผ ๋๋น ๋ฐฉ๋ฒ์ ์์งํ๊ฒ ์ ๋ฆฌํ์ด์. 2026๋ ๋ฌ๋ผ์ง ์ ๊ณผ ์ค์๋ด๊น์ง ๋ด์์ต๋๋ค.", + "contentPreview": "์ง๋์ฃผ ํ ์์ผ์ ์ ์ค ์ผ๊ตฌ์ฅ ์ง๊ด ๊ฐ๋ค๊ฐ ์ง์ง ์ฃฝ๋ ์ค ์์์ด์. ๋ฎ ์ต๊ณ ๊ธฐ์จ 35๋ ์ฐ์ ๋ ์ด์๋๋ฐ, 3๋ฃจ ์์์์ ์์์ 3์๊ฐ ๋๊ฒ ์์๊ฑฐ๋ ์. ๋ฌผ ๋ ๋ณ ๋ค ๋ง์ จ๋๋ฐ๋ ์ด์ง๋ฝ๊ณ ์์ด ๋ฉ์ฅ๊ฑฐ๋ ค์ ๊ฒฐ๊ตญ 6ํ ๋ง์ ๊ทธ๋๋ง ์ชฝ์ผ๋ก ์๋ฆฌ๋ฅผ ์ฎ๊ฒผ์ด์. ๊ทธ๋ ์์๋ฆฌ ์์ ์จ๋ ์ง์ง ์ฐ๋ฌ์ง์ จ์ด์. ๊ตฌ๊ธ์์์ด ์์ ์๊ธ์ฒ์นํ๋ ๊ฑฐ ๋ณด๊ณ ์ ๋ ์๊ฐ ์ ์ ์ด ๋ฒ์ฉ ๋ค๋๋ผ๊ณ ...", + "articleType": "how_to" + }, + { + "post_id": "2026-07-06_๋ฐฐ๋น์ฃผ์ฒ์์ฌ๊ธฐ์ ๋ด๊ฐ๋ชฐ๋๋๊ฒ_7915bb64", + "keyword": "๋ฐฐ๋น์ฃผ ์ฒ์ ์ฌ๊ธฐ ์ ๋ด๊ฐ ๋ชฐ๋๋ ๊ฒ", + "title": "๋ฐฐ๋น์ฃผ ์ฒ์ ์ฌ๊ธฐ ์ ์ ๋ชฐ๋๋ ๊ฒ๋ค, ์ ๋ ์ด๋์ ํํํ์ด์", + "status": "pending", + "source": "auto", + "blogId": "blog1", + "blogName": "HOGU What?", + "blogUrl": "", + "errorMessage": null, + "createdAt": "2026-07-06T23:16:36.569908", + "publishedAt": null, + "lastAttemptAt": "2026-07-06T23:16:36.569908", + "attempts": 1, + "runNumber": 138, + "wordCount": 2742, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "๋ฐฐ๋น์ฃผ", + "๋ฐฐ๋น์ฃผํฌ์", + "๋ฐฐ๋น์๋์ธ", + "๋ฐฐ๋น๋ฝ์ผ", + "๋ฐฐ๋น์ปท", + "์ฃผ์ํฌ์", + "์ฌํ ํฌ" + ], + "metaDescription": "๋ฐฐ๋น์ฃผ ์ฒ์ ์ฌ๊ธฐ ์ ์ ๊ฐ ๋ชฐ๋๋ ๊ฒ๋ค์ ์ง์ ๊ฒช์ ์ค์์ ํจ๊ป ์์งํ๊ฒ ์ ๋ฆฌํ์ด์. ๋ฐฐ๋น๋ฝ์ผ, ๋ฐฐ๋น์๋์ธ, ๋ฐฐ๋น์ปท๊น์ง ์ค์ ๊ฒฝํ ๊ธฐ๋ฐ์ผ๋ก ํ์ด๋ด ๋๋ค.", + "contentPreview": "์ฌ์๋ ์ฌ๋ฆ์ด์์ด์. ์๊ธ๋ง์ผ๋ก๋ ๋ต์ด ์ ๋์จ๋ค๋ ์๊ฐ์ ๋ฐฐ๋น์ฃผ์ ์์ ๋์ฃ . ์ ํ๋ธ์์ '๋ฐฐ๋น์ผ๋ก ์๊ธ ๋ง๋ค๊ธฐ' ์ด๋ฐ ์์ ๋ณด๊ณ ์ง์ง ๋จ์ํ๊ฒ ์๊ฐํ์ด์. ๋ฐฐ๋น ๋ง์ด ์ฃผ๋ ์ฃผ์ ์ฌ๋ฉด ๋งค๋ฌ ์ฉ๋ ๋ฒ๋ฏ์ด ๋์ด ๋ค์ด์ฌ ์ค ์์๊ฑฐ๋ ์. ๊ทผ๋ฐ ์ค์ ๋ก ํด๋ณด๋๊น ์ ๊ฐ ๋ชฐ๋๋ ๊ฒ ํ๋์ด ์๋๋๋ผ๊ณ ์. ์ธ๊ธ๋ ๊ทธ๋ ๊ณ , ๋ฐฐ๋น๋ฝ๋ ๊ทธ๋ ๊ณ , ๋ฐฐ๋น์ด ๊ฐ์๊ธฐ ํ ์ค์ด๋๋ ๊ฒ๋ ...", + "articleType": "analysis" + }, + { + "post_id": "2026-07-06_๋ฏธ๊ตญETF์ฒซ๋งค์ํ๊ฒช์์ค์๋ด_416b1490", + "keyword": "๋ฏธ๊ตญETF ์ฒซ ๋งค์ ํ ๊ฒช์ ์ค์๋ด", + "title": "๋ฏธ๊ตญETF ์ฒซ ๋งค์ ํ ๊ฒช์ ์ค์๋ด, 2026๋ ์๋ ์งํํ์ด๋ค์", + "status": "pending", + "source": "auto", + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "blogUrl": "", + "errorMessage": null, + "createdAt": "2026-07-06T13:50:09.388879", + "publishedAt": null, + "lastAttemptAt": "2026-07-06T13:50:09.388879", + "attempts": 1, + "runNumber": 137, + "wordCount": 2722, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "๋ฏธ๊ตญETF", + "ํด์ธ์ฃผ์ํฌ์", + "ETF์ฒซ๋งค์", + "์๋์๋์ธ", + "ํ์ ํ", + "๋ฏธ๊ตญ์ฃผ์์ธ๊ธ", + "์ด๋ณดํฌ์์" + ], + "metaDescription": "๋ฏธ๊ตญETF ์ฒซ ๋งค์ ํ ํ์ , ์ฃผ๋ฌธ ๋ฐฉ์, ์ธ๊ธ์์ ๊ฒช์ ์ค์๋ด์ ๊ตฌ์ฒด์ ์ผ๋ก ์ ๋ฆฌํ์ด์. 2026๋ ๊ธฐ์ค ์ค์ ๊ฒฝํ ์ค์ฌ์ ์์งํ ํ๊ธฐ์ ๋๋ค.", + "contentPreview": "์๋ ์ด์ ์ฒ์์ผ๋ก ๋ฏธ๊ตญETF๋ฅผ ๋งค์ํ์ด์. ๊ตญ๋ด ์์ฅ ETF๋ง ํ๋ค๊ฐ ํฐ๋ง ๋จน๊ณ ํด์ธ ๊ณ์ข๋ฅผ ์ด์๋๋ฐ, ์ง๊ธ ์๊ฐํ๋ฉด ์ง์ง ์๊ธด ์ค์๋ฅผ ๋ช ๊ฐ๋ ํ๋๋ผ๊ณ ์. ๊ทธ๋ฅ ๋์ด๊ฐ๊ธฐ์ ์๊น์์ ์ค๋ ๊ทธ ์๊ธฐ๋ฅผ ์ข ํ์ด๋ณด๋ ค๊ณ ํด์. ์ ์ฒ๋ผ ๋ฏธ๊ตญETF ์ฒซ ๋งค์๋ฅผ ์ค๋นํ์๋ ๋ถ๋ค์ด๋ผ๋ฉด ์ ๊ฐ์ ์ค์๋ ์ ํ์ จ์ผ๋ฉด ํ๋ ๋ง์์ ์๋๋ค.์์งํ ์ ํ๋ธ๋ ๋ธ๋ก๊ทธ ๋ณด๋ฉด ๋ค๋ค ์์ต...", + "articleType": "analysis" + }, + { + "post_id": "2026-07-06_์ฅ๋ง๊ฑด๊ฐ๊ด๋ฆฌ_11256c1b", + "keyword": "์ฅ๋ง ๊ฑด๊ฐ ๊ด๋ฆฌ", + "title": "์ฅ๋ง์ฒ ์ฌํ ๋ค๋ ์์ ๊ฐ๊ณ ์ํ ํ๊ธฐ, 2026๋ ์ ์ด๋ ๊ฒ ์ค๋นํด์", + "status": "pending", + "source": "auto", + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "blogUrl": "", + "errorMessage": null, + "createdAt": "2026-07-06T13:47:54.512534", + "publishedAt": null, + "lastAttemptAt": "2026-07-06T13:47:54.512534", + "attempts": 1, + "runNumber": 137, + "wordCount": 2654, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "์ฅ๋ง ๊ฑด๊ฐ ๊ด๋ฆฌ", + "์ฅ๋ง์ฒ ์ฌํ", + "์ฌ๋ฆ ๊ฐ๊ธฐ", + "๋๋ฐฉ๋ณ ์๋ฐฉ", + "๊ตญ๋ด์ฌํ ํ", + "์ผ๊ตฌ ์ง๊ด", + "์ฅ๋ง์ฒ ์ค๋น๋ฌผ" + ], + "metaDescription": "์ฅ๋ง์ฒ ์ฌํ ๋ค๋ ์์ ๋ชธ์ด๋ ํ๊ธฐ์ ํจ๊ป 2026๋ ์ฅ๋ง ๊ฑด๊ฐ ๊ด๋ฆฌ ์ค์ ํ์ ์ง์ ๊ฒฝํ ๋ฐํ์ผ๋ก ์ ๋ฆฌํ์ต๋๋ค.", + "contentPreview": "์ง๋์ฃผ์ 1๋ฐ 2์ผ๋ก ๋ถ์ฐ ์ฌํ์ ๋ค๋ ์์ด์. 6์ ๋ง๋ถํฐ ์ฅ๋ง๊ฐ ์์๋๋ค๋ ์๋ณด๋ฅผ ๋ณด๊ณ ๋ '์์ด ์ค๋ง ๊ทธ๋ ๋ง ๋น ์ค๊ฒ ์ด' ํ๊ณ ๊ทธ๋ฅ ๊ฐํํ๋๋ฐ, ๊ฒฐ๊ณผ๋ ์ฒ์ฐธํ์ต๋๋ค. ์ฒซ๋ ๋ฐค๋ถํฐ ๋ชฉ์ด ์นผ์นผํ๋๋ ๋ค์ ๋ ์์นจ์ ๋ชธ์ด ๊ธฐ์ด๊น์ง ์ฌ๋ผ์ค๋๋ผ๊ณ ์. ์ฌํ ๊ฐ๋ค ์์ ํ์ฌ์ ๋ณ๊ฐ๋ฅผ ๋ด๋ ์ผ์ด ์๊ธธ ์ค์ ๋ชฐ๋์ด์. ๊ทธ๋๋ถํฐ ์ฅ๋ง ๊ฑด๊ฐ ๊ด๋ฆฌ์ ๋ํด ์ง์งํ๊ฒ ์ฐพ์๋ณด๊ธฐ ์...", + "articleType": "analysis" + }, + { + "post_id": "2026-07-06_์์ด์ปจ์ ๊ธฐ์ธ์ ์ฝ_082bdc59", + "keyword": "์์ด์ปจ ์ ๊ธฐ์ธ ์ ์ฝ", + "title": "์์ด์ปจ ์ ๊ธฐ์ธ ์ ์ฝ, 2026๋ ์ฌ๋ฆ ์ง์ ํด๋ณด๊ณ ๋๋ ๊ฒ๋ค", + "status": "skipped", + "source": "auto", + "blogId": "blog1", + "blogName": "HOGU What?", + "blogUrl": "", + "errorMessage": null, + "createdAt": "2026-07-06T13:45:25.248753", + "publishedAt": null, + "lastAttemptAt": "2026-07-06T13:45:25.248753", + "attempts": 1, + "runNumber": 137, + "wordCount": 2740, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "์์ด์ปจ์ ๊ธฐ์ธ์ ์ฝ", + "์ฌ๋ฆ์ ๊ธฐ์๊ธ", + "๋์ง์ ", + "์ ์ต๋ชจ๋", + "์๋์ง์บ์๋ฐฑ", + "์ ๊ธฐ์๊ธ์ ์ฝํ", + "2026์ฌ๋ฆ" + ], + "metaDescription": "2026๋ ์ฌ๋ฆ ์์ด์ปจ ์ง์ ์จ๋ณด๊ณ ๊ฒช์ ์ ๊ธฐ์ธ ์ ์ฝ ์คํจ๋ด๊ณผ ์ฑ๊ณต ์ฌ๋ก. ๋์ง์ , ์ ์ต๋ชจ๋, ํํฐ ๊ด๋ฆฌ๊น์ง ์ค์ ๊ฒฝํ ๊ธฐ๋ฐ์ผ๋ก ์ ๋ฆฌํ์ต๋๋ค.", + "contentPreview": "์๋ 8์์ ์ ๊ธฐ์๊ธ ๊ณ ์ง์ ๋ณด๊ณ ์ง์ง ๋๋์ด์. ํ์๋ณด๋ค ๊ฑฐ์ 4๋ง์์ด ๋ ๋์๋๋ผ๊ณ ์. ์ ๋ ๊ทธ๋๊น์ง ์์ด์ปจ ๊ทธ๋ฅ ์ผ๊ณ ๋๊ณ ๋ง ๋ฐ๋ณตํ๋ฉด์ ์๋๋ค๊ณ ์๊ฐํ๋๋ฐ, ์คํ๋ ค ๊ทธ๊ฒ ๋ ์ด์๋ค๋ ๊ฑธ ๋์ค์ ์์์ด์. ์ฌํด 2026๋ ์ฌ๋ฆ ๋ค์ด์๋ฉด์ ๋ค์ ์์ด์ปจ ์ผ๊ธฐ ์์ํ๋๋ฐ, ์๋ ์ ์ค์๋ฅผ ๋ฐ๋ณตํ์ง ์์ผ๋ ค๊ณ ์ด๊ฒ์ ๊ฒ ์ง์ ํ ์คํธํด๋ดค๊ฑฐ๋ ์. ์ค๋์ ๊ทธ ๊ณผ์ ์์ ์ ๊ฐ...", + "articleType": "analysis" + }, + { + "post_id": "2026-07-06_์ง์ฅ์ธ์30๋ง์ETFํฌ์์์งํ๊ธฐ_800481ba", + "keyword": "์ง์ฅ์ธ ์ 30๋ง์ ETF ํฌ์ ์์ง ํ๊ธฐ", + "title": "2026๋ , ์ง์ฅ์ธ์ด ์ 30๋ง์์ฉ ETF ํฌ์ํด๋ณธ ์์ง ํ๊ธฐ", + "status": "pending", + "source": "auto", + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "blogUrl": "", + "errorMessage": null, + "createdAt": "2026-07-06T13:08:45.045202", + "publishedAt": null, + "lastAttemptAt": "2026-07-06T13:08:45.045202", + "attempts": 1, + "runNumber": 136, + "wordCount": 2758, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "ETFํฌ์", + "์ง์ฅ์ธ์ฌํ ํฌ", + "์30๋ง์ํฌ์", + "ETFํ๊ธฐ", + "์ ๋ฆฝ์ํฌ์", + "2026ํฌ์", + "์ฌํ ํฌ์ด๋ณด" + ], + "metaDescription": "์ง์ฅ์ธ์ด 2026๋ ๊น์ง 1๋ ๊ฐ ์ 30๋ง์์ฉ ETF ํฌ์๋ฅผ ์ง์ ํด๋ณธ ์์ง ํ๊ธฐ์ ๋๋ค. ์ค์์ ์์ค, ๊ทธ๋ฆฌ๊ณ ์ป์ ์ต๊ด๊น์ง ์๋ ๊ทธ๋๋ก ์ ์์ต๋๋ค.", + "contentPreview": "๐ก ํต์ฌ ํฌ์ธํธ: ์ง์ฅ์ธ์ด ์ 30๋ง์์ฉ ETF ํฌ์๋ฅผ 1๋ ๋๊ฒ ํด๋ณธ ๊ฒฐ๊ณผ, ์์ต๋ฅ ๋ณด๋ค ๋ ์ค์ํ๋ ๊ฑด '์๋์ด์ฒด ์ธํ '๊ณผ '์ค๊ฐ์ ์ ๊ฑด๋๋ฆฌ๊ธฐ'์์ต๋๋ค. ์ด ๊ธ์ ๊ด๊ณ ๊ฐ ์๋๋ผ ์ ๊ฐ ์ค์ ๋ก ๊ฒช์ ์ค์์ ์ซ์ ๊ทธ๋๋ก ์ ์ ํ๊ธฐ์ ๋๋ค. ์๋ ์ด๋ง๋์ฏค์ด์์ด์. ํ์ฌ ๋๊ธฐ ํ๋๊ฐ ์ ์ฌ ๋จน๋ค๊ฐ ๊ฐ์๊ธฐ \"๋ ์์ฆ ๋ญ๋ก ์ฌํ ํฌํด?\" ์ด๋ฌ๋๋ผ๊ณ ์. ์ ๋ ๊ทธ๋๊น์ง ์ ๊ธ...", + "articleType": "review" + }, + { + "post_id": "2026-07-06_์์ด์ปจ์ ๊ธฐ์ธ์ ์ฝ_d8b25377", + "keyword": "์์ด์ปจ ์ ๊ธฐ์ธ ์ ์ฝ", + "title": "์ฌ๋ฆํด๊ฐ ๋ค๋ ์ค๋ ์ ๊ธฐ์ธ ํญํ, ์์ด์ปจ ์ ๊ธฐ์ธ ์ ์ฝ ์ด๋ ๊ฒ ๋ฐ๊ฟจ์ด์", + "status": "pending", + "source": "auto", + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "blogUrl": "", + "errorMessage": null, + "createdAt": "2026-07-06T13:06:39.181873", + "publishedAt": null, + "lastAttemptAt": "2026-07-06T13:06:39.181873", + "attempts": 1, + "runNumber": 136, + "wordCount": 3015, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "์์ด์ปจ์ ๊ธฐ์ธ์ ์ฝ", + "์ฌ๋ฆ์ ๊ธฐ์๊ธ", + "๋์ง์ธ", + "ํ์ ์๊ธ๊ณ์ฐ๊ธฐ", + "์ ์ต๋ชจ๋", + "ํฌ๋ง์จ๋์ค์ ", + "์ค์ธ๊ธฐ๊ด๋ฆฌ" + ], + "metaDescription": "์ฌ๋ฆํด๊ฐ ํ ์ ๊ธฐ์ธ ํญํ ๋ง์ ๊ฒฝํ๋ด๋ถํฐ ํฌ๋ง์จ๋, ์ ์ต๋ชจ๋, ์ค์ธ๊ธฐ ๊ด๋ฆฌ๊น์ง ์ง์ ๋ ๋ฌ๊ฐ ์๋ํด๋ณธ ์์ด์ปจ ์ ๊ธฐ์ธ ์ ์ฝ ๋ฐฉ๋ฒ์ ์์งํ๊ฒ ์ ๋ฆฌํ์ต๋๋ค.", + "contentPreview": "๐ก ํต์ฌ ํฌ์ธํธ: ์์ด์ปจ ์ ๊ธฐ์ธ ์ ์ฝ์ ์จ๋๋ฅผ ๋ฎ์ถ๋ ๊ฒ ์๋๋ผ '์ผ๋ง๋ ์์ฃผ ๊ป๋ค ์ผฐ๋ค ํ๋๊ฐ'์ 'ํฌ๋ง์จ๋ ์ค์ ๊ฐ'์์ ๊ฑฐ์ ๊ฐ๋ฆฐ๋ค๋ ๊ฑธ ์ง์ ๊ฒช์ด๋ณด๊ณ ์์์ต๋๋ค. ์ง๋๋ฌ ์ฌ๋ฆํด๊ฐ๋ก ๊ฐ๋ฆ์ ๋ค๋ ์๋๋ฐ์, 5๋ฐ 6์ผ ์ง์ ๋น์ ๋ค๊ฐ ๋์์จ ๋ค์ ๋ ๊ด๋ฆฌ๋น ๊ณ ์ง์๋ฅผ ๋ณด๊ณ ์ง์ง ๊น์ง ๋๋์ด์. ์ ๋ ๋ถ๋ช ์์ด์ปจ์ ๋๊ณ ๊ฐ๋ค๊ณ ์๊ฐํ๋๋ฐ, ์๊ณ ๋ณด๋ ์ ์ต๊ธฐ ๊ฒธ์ฉ...", + "articleType": "analysis" + }, + { + "post_id": "2026-07-06_์ฅ๋ง๊ฑด๊ฐ๊ด๋ฆฌ_6558a744", + "keyword": "์ฅ๋ง ๊ฑด๊ฐ ๊ด๋ฆฌ", + "title": "์ฅ๋ง์ฒ ๋ชธ์ด ์ ์ด๋ ๊ฒ ํ๋ค๊น์, 2026๋ ์ ๊ฐ ๊ฒช์ ๊ฒ๋ค", + "status": "skipped", + "source": "auto", + "blogId": "blog1", + "blogName": "HOGU What?", + "blogUrl": "", + "errorMessage": null, + "createdAt": "2026-07-06T13:04:06.928452", + "publishedAt": null, + "lastAttemptAt": "2026-07-06T13:04:06.928452", + "attempts": 1, + "runNumber": 136, + "wordCount": 2908, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "์ฅ๋ง๊ฑด๊ฐ๊ด๋ฆฌ", + "์ฅ๋ง์ฒ ๊ฑด๊ฐ", + "์ฌ๋ฆ์ฒ ๊ฑด๊ฐ๊ด๋ฆฌ", + "์ ์ต๊ธฐ์ถ์ฒ", + "๊ด์ ํต๊ด๋ฆฌ", + "์์ค๋ ์๋ฐฉ", + "๋ฌด์ข์ฌ๋ฐ" + ], + "metaDescription": "2026๋ ์ฅ๋ง์ฒ , ๊ด์ ํต๋ถํฐ ๊ณฐํก์ดยท๋ฌด์ขยท์์ค๋ ๊น์ง ์ ๊ฐ ์ง์ ๊ฒช์ ์คํจ๋ด๊ณผ ์ฅ๋ง ๊ฑด๊ฐ ๊ด๋ฆฌ ๋ฃจํด์ ์์งํ๊ฒ ์ ๋ฆฌํ์ต๋๋ค.", + "contentPreview": "7์ ์ด๋ถํฐ ์ฅ๋ง์ ์ ์ด ๋จ๋ถ์ง๋ฐฉ๋ถํฐ ์ฌ๋ผ์จ๋ค๋ ๋ด์ค๋ฅผ ๋ณด๊ณ , ์ ๋ ์์ผ๋ก '์ ๋ ์์์ด๊ตฌ๋' ์ถ์์ด์. ์ ๋ ์๋ ๋น ์ค๋ ๋ ์ ์ซ์ดํ๋ ํธ๋ ์๋์๋๋ฐ, ์๋ฅธ ๋์ด์๋ถํฐ์ธ์ง ์ฅ๋ง์ฒ ๋ง ๋๋ฉด ๋ชธ์ด ์ด์ํ๊ฒ ๋ฌด๊ฒ๊ณ ๋ฐ๋ชฉ์ด๋ ๋ฌด๋ฆ์ด ์ํฐ๊ฑฐ๋ฆฌ๋๋ผ๊ณ ์. ์๋ ์ฅ๋ง ๋๋ ๋ฉฐ์น ๋์ ๋ชธ์ด์ฒ๋ผ ์์๋์ ๋๋ฐ, ๋ณ์ ๊ฐ์๋ ๋ฑํ ๋ณ๋ช ์ด ์ ๋์ค๊ณ ๊ทธ๋ฅ '์ต๋๋ ๊ธฐ์ ๋๋ฌธ์ผ...", + "articleType": "analysis" + }, + { + "post_id": "2026-07-06_๋ฏธ๊ตญETF์ง์ ํฌ์ํด๋ณด๋์ค์๋ด_04404943", + "keyword": "๋ฏธ๊ตญ ETF ์ง์ ํฌ์ํด๋ณด๋ ์ค์๋ด", + "title": "๋ฏธ๊ตญ ETF ์ง์ ํฌ์ํด๋ณด๋, ์ ๋ง ์ด๋ฐ ์ค์ ํ ๊ฑฐ ์๋์ฃ ? (2026๋ )", + "status": "skipped", + "source": "auto", + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "blogUrl": "", + "errorMessage": null, + "createdAt": "2026-07-06T07:20:16.816714", + "publishedAt": null, + "lastAttemptAt": "2026-07-06T07:20:16.816714", + "attempts": 1, + "runNumber": 135, + "wordCount": 2175, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "๋ฏธ๊ตญETF", + "ํด์ธ์ฃผ์ํฌ์", + "ETFํฌ์์ค์", + "ํด์ธ์ฃผ์์ธ๊ธ", + "ํ์ ๊ฟํ", + "์๋์๋์ธ", + "๋ฐฐ๋น์๋์ธ" + ], + "metaDescription": "๋ฏธ๊ตญ ETF ์ง์ ํฌ์ํ๋ฉฐ ๊ฒช์ ํ์ , ์ธ๊ธ, ๋งค๋งค ์ค์๋ด์ ์์งํ๊ฒ ํ์ด๋ดค์ต๋๋ค. 2026๋ ๊ธฐ์ค ์ด๋ณด์๊ฐ ๋์น๊ธฐ ์ฌ์ด ๋ถ๋ถ๊น์ง ๊ฒฝํ ์์ฃผ๋ก ์ ๋ฆฌํ์ด์.", + "contentPreview": "์๋ ์ฌ๋ฆ๋ถํฐ ๋ฏธ๊ตญ ETF์ ์๋๊ธฐ ์์ํ์ด์. ์ฃผ๋ณ์์ ๋ค๋ค S&P500์ด๋ ๋์ค๋ฅ์ด๋ ํ๊ธธ๋ ์ ๋ ๋ฆ๊ฒ๋ผ๋ ๋ฐ์ด๋ ์ผ์ด์ค์ธ๋ฐ, ์์งํ ์ฒ์์ ๊ณ์ข ๊ฐ์ค๋ถํฐ๊ฐ ์ฐ ๋์ด ์ฐ์ด์์ต๋๋ค. ์ค๋์ ๊ทธ๋์ ์ ๊ฐ ์ง์ ๊ฒช์ ์ค์๋ด์ ์ข ํ์ด๋ณด๋ ค๊ณ ํด์. ์ด๋ฏธ ์ธํฐ๋ท์ ๋๋ฆฐ 'ETF ์ถ์ฒ ์ข ๋ชฉ' ๊ฐ์ ๊ธ์ด ์๋๋ผ, ์ง์ง ์ฝ์งํ ์ด์ผ๊ธฐ ์์ฃผ๋ก์. ๐ก ํต์ฌ ํฌ์ธํธ: ๋ฏธ๊ตญ...", + "articleType": "review" + }, + { + "post_id": "2026-07-06_์ ์ฃผ๋์ฌํํ์ง์ธ์ฒ๋ผ์ฆ๊ธฐ๋๋ฐฉ๋ฒ์์งํ๊ธฐ_1f4bb38f", + "keyword": "์ ์ฃผ๋ ์ฌํ ํ์ง์ธ์ฒ๋ผ ์ฆ๊ธฐ๋ ๋ฐฉ๋ฒ ์์ง ํ๊ธฐ", + "title": "์ ์ฃผ๋ ์ฌํ ํ์ง์ธ์ฒ๋ผ ์ฆ๊ธฐ๋ ๋ฐฉ๋ฒ, 3๋ฐ4์ผ ๋ค๋ ์์ ์์ง ํ๊ธฐ", + "status": "pending", + "source": "auto", + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "blogUrl": "", + "errorMessage": null, + "createdAt": "2026-07-06T07:18:04.792598", + "publishedAt": null, + "lastAttemptAt": "2026-07-06T07:18:04.792598", + "attempts": 1, + "runNumber": 135, + "wordCount": 1861, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "์ ์ฃผ๋์ฌํ", + "์ ์ฃผ๋ํ์ง์ธ์ฌํ", + "์ ์ฃผ๋๋ง์ง", + "์ ์ฃผ๋์จ์๋ช ์", + "์ ์ฃผ๋์ฌํ๊ฒฝ๋น", + "์ ์ฃผ๋์์ ์ฌํ", + "์ ์ฃผ๋3๋ฐ4์ผ" + ], + "metaDescription": "์ ์ฃผ๋ ์ฌํ ํ์ง์ธ์ฒ๋ผ ์ฆ๊ธฐ๋ ๋ฐฉ๋ฒ์ ์ง์ 3๋ฐ4์ผ ๋ค๋ ์์ ๊ฒฝ๋น, ์จ์ ๋ง์ง, ์คํจ๋ด๊น์ง ์์งํ๊ฒ ์ ๋ฆฌํ ํ๊ธฐ์ ๋๋ค.", + "contentPreview": "์๋ ์ฌ๋ฆ์ ๋ฒ์์์ด ์ฌํ๊ฒ ์์ ๊ธํ๊ฒ ํญ๊ณต๊ถ์ ๋์์ด์. ๋ชฉ์ ์ง๋ ๊ทธ๋ฅ ์ ์ฃผ๋. ๊ทผ๋ฐ ์ด๋ฒ์ ์ข ๋ค๋ฅด๊ฒ ๊ฐ๋ณด๊ณ ์ถ๋๋ผ๊ณ ์. ์ ๋ช ํ ๊ด๊ด์ง ๋์ฅ ๊นจ๊ธฐ ๋ง๊ณ , ์ ์ฃผ๋ ์ฌํ ํ์ง์ธ์ฒ๋ผ ์ฆ๊ธฐ๋ ๋ฐฉ๋ฒ์ด ๊ถ๊ธํด์ ์ถ๋ฐ ์ ์ ๋๋ฆ ์ค๋น๋ฅผ ๋ง์ด ํ๊ฑฐ๋ ์. ๊ฒฐ๊ณผ๋ถํฐ ๋งํ๋ฉด ์ ๋ฐ์ ์ฑ๊ณต, ์ ๋ฐ์ ์์ ํ๋ค๋ฆฌ ์ง์์ด์. ์ค๋์ ๊ทธ ๊ณผ์ ์ ์์งํ๊ฒ ํ์ด๋ณผ๊ฒ์.์ถ๋ฐ ์ ์ 'ํ...", + "articleType": "travel_guide" + }, + { + "post_id": "2026-07-06_์ง์ฅ์ธ์30๋ง์ETFํฌ์์์งํ๊ธฐ_a5914b42", + "keyword": "์ง์ฅ์ธ ์ 30๋ง์ ETF ํฌ์ ์์ง ํ๊ธฐ", + "title": "์ง์ฅ์ธ ์ 30๋ง์ ETF ํฌ์, 1๋ ๋๊ฒ ํด๋ณด๊ณ ์ฐ๋ ์์ง ํ๊ธฐ", + "status": "published", + "source": "auto", + "blogId": "blog1", + "blogName": "HOGU What?", + "blogUrl": "https://hoguwhat1.blogspot.com/2026/07/30-etf-1_02113911497.html", + "errorMessage": null, + "createdAt": "2026-07-06T07:14:41.884874", + "publishedAt": "2026-07-06T07:14:42.465796", + "lastAttemptAt": "2026-07-06T07:14:42.465796", + "attempts": 2, + "runNumber": 135, + "wordCount": 2219, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "ETFํฌ์", + "์ง์ฅ์ธ์ฌํ ํฌ", + "์30๋ง์ํฌ์", + "ETFํ๊ธฐ", + "ํฌ์๊ฒฝํ๋ด", + "์ฅ๊ธฐํฌ์", + "์ ๋ฆฝ์ํฌ์" + ], + "metaDescription": "์ง์ฅ์ธ์ด ์ 30๋ง์์ฉ 1๋ ๋๊ฒ ETF์ ํฌ์ํ๊ณ ์ด ์์งํ ํ๊ธฐ. ๊ธฐ๋์ ์ค์ ๊ฒฐ๊ณผ์ ์ฐจ์ด, ์ค์ํ๋ ์ , ์์ธ๋ก ์ข์๋ ์ ๊น์ง ์ง์ง ๊ฒฝํ์ ๋ด์์ต๋๋ค.", + "contentPreview": "์๋ ์ด๋ง๋์ฏค์ด์๋, ํ์ฌ ํ๋ฐฐ๊ฐ ์ ์ฌ ๋จน์ผ๋ฉด์ \"์ ์ด๋ฒ ๋ฌ๋ถํฐ ETF ์์ํ์ด์\"๋ผ๊ณ ํ๋๋ฐ ์ ๋ง ์ ํ๊ณ ์๋ ๊ฒ ๊ฐ์ ๊ทธ ๋๋ ์์์์. ๋ฑ ๊ทธ๊ฑฐ์์ด์. ํต์ฅ ์๊ณ ๋ ๊ทธ๋๋ก์ธ๋ฐ ๋ฌผ๊ฐ๋ ๊ณ์ ์ค๋ฅด๊ณ , ์๊ธ๋ง ์ณ๋ค๋ณด๊ณ ์์ผ๋ฉด ๋ต์ด ์๊ฒ ๋ค ์ถ์ด์ ์ ๋ ๊ทธ๋ ๋ฐค์ ์ฆ๊ถ ๊ณ์ข๋ถํฐ ํ ์ด์. ๊ทธ๋ ๊ฒ ์์ํ ๊ฒ ๋ฒ์จ 1๋ ์ด ํ์ฉ ๋์๋ค์. ์์งํ ์ฒ์์ ํฐ ๊ธฐ๋ ...", + "articleType": "review" + }, + { + "post_id": "2026-07-06_SBS๋๋ผ๋ง๊น๋ถ์ฅ_66807952", + "keyword": "SBS ๋๋ผ๋ง ๊น๋ถ์ฅ", + "title": "SBS ๋๋ผ๋ง ๊น๋ถ์ฅ ๋ณด๋ฉด์ ๋ ์ง์ฅ์ธ ์ฌํ ํฌ ์๊ฐ (2026)", + "status": "pending", + "source": "manual", + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "blogUrl": "", + "errorMessage": null, + "createdAt": "2026-07-06T03:36:40.573401", + "publishedAt": null, + "lastAttemptAt": "2026-07-06T03:36:40.573401", + "attempts": 1, + "runNumber": 134, + "wordCount": 2255, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "SBS๋๋ผ๋ง๊น๋ถ์ฅ", + "๊น๋ถ์ฅ๋๋ผ๋ง", + "์ง์ฅ์ธ์ฌํ ํฌ", + "์คํผ์ค๋๋ผ๋ง", + "๋๋ผ๋ง๋ฆฌ๋ทฐ", + "๊ธ์ตNEWS", + "๋ ธํ์ค๋น" + ], + "metaDescription": "SBS ๋๋ผ๋ง ๊น๋ถ์ฅ์ ์ง์ฅ์ธ ๊ด์ ์์ ๋ณธ ์์ง ํ๊ธฐ์ ๋๋ค. ์ฌํ ํฌ, ๋ ธํ ์ค๋น ๊ณ ๋ฏผ๊น์ง ๊ณต๊ฐ ํฌ์ธํธ๋ฅผ ์ ๋ฆฌํ์ด์.", + "contentPreview": "์์งํ ์ ๋ ์คํผ์ค ๋๋ผ๋ง๋ฅผ ์ ์ ์ฑ๊ฒจ๋ณด๋ ํธ์ด์์. ํ์ฌ์์ ํ๋ฃจ ์ข ์ผ ๋ถ๋๋ผ๋ค๊ฐ ์ง์์๊น์ง ํ์ฌ ์๊ธฐ๋ฅผ ๋ณด๊ณ ์ถ์ง ์๋๋ผ๊ณ ์. ๊ทผ๋ฐ ์ด๋ฒ์ SBS ๋๋ผ๋ง ๊น๋ถ์ฅ์ ์ฃผ๋ง์ ์ฐ์ฐํ ์ฌ๋ฐฉ์ก ์ฑ๋ ๋๋ฆฌ๋ค๊ฐ ํ ํ์ฐจ๋ฅผ ๋ณด๊ณ ๋์ ๊ทธ๋ฅ ์ ์ฃผํํด๋ฒ๋ ธ์ต๋๋ค. ์ด์ ๊ฐ ์ข ์๊ธด๋ฐ์, ๊น๋ถ์ฅ์ด๋ผ๋ ์บ๋ฆญํฐ๊ฐ ํ์ฌ์์ ๋ถํ์ง์๋ค ์ฌํ ํฌ ์๋ด๊น์ง ํด์ฃผ๋ ์ฅ๋ฉด์ด ๋์ค๋๋ฐ ๊ทธ๊ฒ ...", + "articleType": "drama_review" + }, + { + "post_id": "2026-07-06_SBS๋๋ผ๋ง๊น๋ถ์ฅ_09d0aab0", + "keyword": "SBS ๋๋ผ๋ง ๊น๋ถ์ฅ", + "title": "SBS ๊น๋ถ์ฅ ์ ์ฃผํ ํ๊ธฐ, ์์งํ ์ ๊ฐ์ ๋จ๊ฒจ๋ด ๋๋ค (2026)", + "status": "pending", + "source": "manual", + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "blogUrl": "", + "errorMessage": null, + "createdAt": "2026-07-06T03:34:24.215436", + "publishedAt": null, + "lastAttemptAt": "2026-07-06T03:34:24.215436", + "attempts": 1, + "runNumber": 134, + "wordCount": 2029, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "SBS๋๋ผ๋ง๊น๋ถ์ฅ", + "๊น๋ถ์ฅ๋๋ผ๋ง", + "SBS๋๋ผ๋ง", + "์ง์ฅ๋๋ผ๋ง์ถ์ฒ", + "์คํผ์ค๋๋ผ๋ง", + "๋๋ผ๋ง๋ฆฌ๋ทฐ", + "2026๋๋ผ๋ง" + ], + "metaDescription": "SBS ๋๋ผ๋ง ๊น๋ถ์ฅ ์ ์ฃผํํ๋ฉฐ ๋๋ ์์งํ ๊ฐ์, ์ธ๋ฌผ ์ผ๋ฏธ, ์์ฌ์ ๋ ์ ๊น์ง ์ง์ฅ์ธ ์์ฒญ์ ์ ์ฅ์์ ์ง์ํ๊ฒ ๋จ๊ธด ํ๊ธฐ์ ๋๋ค.", + "contentPreview": "ํด๊ทผํ๊ณ ์ํ์ ๋์๋ง์ ๋ฆฌ๋ชจ์ปจ ์ก๋ ๊ฒ ์์ฆ ์ ์ ์ผํ ๋์ธ๋ฐ์, ์ด๋ฒ ์ฃผ๋ ๊ณ์ SBS ๊น๋ถ์ฅ๋ง ๋ถ์ก๊ณ ์์์ด์. ์๋ ํ์ฌ์ ์์ฌ ๋๋ผ๋ง๋ ๋ณ๋ก ์ ์ข์ํ๋ ํธ์ด๊ฑฐ๋ ์. ๋๋ฌด ํ์ ๋ฐํ ํด๋ฆฌ์ ฐ ๋ง์์์, ๋ชป๋ ๋ถ์ฅ์ ์ฐฉํ ์ ์ ์ด๋ฐ ๊ตฌ๋. ๊ทผ๋ฐ ์ด๊ฑด ์ข ๋ค๋ฅด๋๋ผ๊ณ ์. ๊ทธ๋์ ์ด๋ฒ ๊ธ์์๋ ๊ด๊ณ ์ฑ ์์ด ์ ๊ฐ ๋๋ ๊ทธ๋๋ก ํ์ด๋ณผ๊ฒ์. ๐ก ํต์ฌ ํฌ์ธํธ: S...", + "articleType": "drama_review" + }, + { + "post_id": "2026-07-06_SBS๋๋ผ๋ง๊น๋ถ์ฅ_cade9e30", + "keyword": "SBS ๋๋ผ๋ง ๊น๋ถ์ฅ", + "title": "SBS ๋๋ผ๋ง ๊น๋ถ์ฅ ์ ์ฃผํ ํ๊ธฐ, ํ์ฌ์์ด๋ผ ๋ ์ํ ์ด์", + "status": "pending", + "source": "manual", + "blogId": "blog1", + "blogName": "HOGU What?", + "blogUrl": "", + "errorMessage": null, + "createdAt": "2026-07-06T03:31:21.487657", + "publishedAt": null, + "lastAttemptAt": "2026-07-06T03:31:21.487657", + "attempts": 1, + "runNumber": 134, + "wordCount": 2154, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "SBS๋๋ผ๋ง๊น๋ถ์ฅ", + "๊น๋ถ์ฅ๋๋ผ๋ง", + "SBS๋๋ผ๋ง์ถ์ฒ", + "์ง์ฅ์ธ๋๋ผ๋ง", + "์คํผ์ค๋๋ผ๋ง", + "๋๋ผ๋ง๋ฆฌ๋ทฐ", + "2026๋ ๋๋ผ๋ง" + ], + "metaDescription": "SBS ๋๋ผ๋ง ๊น๋ถ์ฅ์ ์ง์ ์ ์ฃผํํ๊ณ ์ด ์์ง ํ๊ธฐ. ์ค๊ฑฐ๋ฆฌ, ์ธ๋ฌผ ๊ฐ์ ์ , ๋ช ์ฅ๋ฉด, ์์ฌ์ด ์ ๊น์ง ํ์ฌ์ ์์ ์์ ๋ด๋ดํ๊ฒ ํ์ด๋ดค์ด์.", + "contentPreview": "์ฃผ๋ง์ ๋ฐ๋ฆฐ ์ง์์ผ ์ข ํ๋ ค๊ณ ํฐ๋น๋ฅผ ํ์๋ค๊ฐ ์ฐ์ฐํ ์ฑ๋์ ๋๊ธฐ๋๋ฐ 'SBS ๋๋ผ๋ง ๊น๋ถ์ฅ' ์๊ณ ํธ์ด ๋์ค๋๋ผ๊ณ ์. ์ ๋ชฉ๋ถํฐ ๋ญ๊ฐ ์ต์ํด์ ๋๊ธธ์ด ๊ฐ์ด์. ์ ๋ ํ์ฌ์์ ๋ฑ ๊ทธ ์์น, ๊ทธ๋ฌ๋๊น ์๋ก๋ ์น์ด๊ณ ์๋๋ก๋ ๋์น ๋ณด๋ ๋ฑ ์ค๊ฐ ๊ด๋ฆฌ์๊ฑฐ๋ ์. ๊ทธ๋์ ๋ณ์๊ฐ ์์ด 1ํ๋ง ๋ณด์ ํ๋๋ฐ ๊ฒฐ๊ตญ ๊ทธ๋ ๋ฐค ์๋ฒฝ๊น์ง ๋ชฐ์๋ดค์ต๋๋ค. ์์งํ ์ฒ์์ ๋ ๋ปํ ์ง์ฅ ...", + "articleType": "drama_review" + }, + { + "post_id": "2026-07-03_๋ฌ๋ฌํ์ ์ง์ ํด๋ดค๋๋์ํ๋ง๋ค์ด๋ ๊ฒ๋ฌ๋๋ค_6558933b", + "keyword": "๋ฌ๋ฌ ํ์ ์ง์ ํด๋ดค๋๋ ์ํ๋ง๋ค ์ด๋ ๊ฒ ๋ฌ๋๋ค", + "title": "๋ฌ๋ฌ ํ์ ์ง์ ํด๋ดค๋๋ ์ํ๋ง๋ค ์ด๋ ๊ฒ ๋ฌ๋๋ค (2026๋ ์์ง ํ๊ธฐ)", + "status": "published", + "source": "auto", + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "blogUrl": "https://hoguasset.blogspot.com/2026/07/2026_0796127737.html", + "errorMessage": null, + "createdAt": "2026-07-03T00:00:00", + "publishedAt": "2026-07-08T10:39:31.389747", + "lastAttemptAt": "2026-07-08T10:39:31.389747", + "attempts": 8, + "runNumber": 0, + "wordCount": 910, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "๋ฌ๋ฌํ์ ", + "ํ์ ์ฐ๋", + "์นด์นด์ค๋ฑ ํฌํ์ ", + "ํ ์ค๋ฑ ํฌํ์ ", + "ํ์จ", + "์ธํํ์ ", + "์ํ๋น๊ต" + ], + "metaDescription": "๋ฌ๋ฌ ํ์ ์ ๊ตญ๋ฏผ์ํยท์ ํ์ํยท์นด์นด์ค๋ฑ ํฌยทํ ์ค๋ฑ ํฌ์์ 4๊ฐ์๊ฐ ์ง์ ํด๋ดค์ด์. ์ํ๋ง๋ค ์ฐ๋์จ๊ณผ ์กฐ๊ฑด์ด ์๊ฐ๋ณด๋ค ๋ง์ด ๋ฌ๋๊ณ , 2026๋ ๊ธฐ์ค ๋ฐ๋ ๋ด์ฉ๋ ์์ด์ ์์งํ๊ฒ ์ ๋ฆฌํ์ต๋๋ค.", + "contentPreview": "์ฌ์ค ์ ๋ ํ์ ์ ์ง์ง ๋ฌด์ฌํ ์ฌ๋์ด์์ด์. ํด์ธ์ฌํ ๊ฐ ๋ ๊ณตํญ ๊ฐ์ ๊ทธ๋ฅ ํ์ ํ๊ณ , ์์๋ฃ ์ผ๋ง์ธ์ง๋ ๋ณ๋ก ์ ๊ฒฝ ์ ์ฐ๊ณ . ๊ทผ๋ฐ ์ฌํด ์ด์ ๋ฏธ๊ตญ ์ฃผ์ ํฌ์ ๊ณต๋ถ ํ๋ฉด์ ๋ฌ๋ฌ๋ฅผ ์ข ๋ชจ์๋๋ฉด ์ข๊ฒ ๋ค๋ ์๊ฐ์ด ๋ค์๊ฑฐ๋ ์. ํ์จ์ด ์๋์น๋ค ๋ณด๋ ๋ฌ๋ฌ ์์ฐ์ ์กฐ๊ธ์ฉ ์์๋๋ ๊ฒ ๋ซ๊ฒ ๋ค ์ถ์๋ฌ๊น์. ๊ทธ๋์ 3์๋ถํฐ 6์๊น์ง ์ฝ 4๊ฐ์ ๋์, ๊ตญ๋ฏผ์ํยท์ ํ์ํยท์นด์นด...", + "articleType": "review" + }, + { + "post_id": "2026-07-03_์ฒญ์ฝํต์ฅ10๋ ๋ฃ๊ณ ๋๋์์งํํ์ค_159cbac6", + "keyword": "์ฒญ์ฝํต์ฅ 10๋ ๋ฃ๊ณ ๋๋ ์์งํ ํ์ค", + "title": "์ฒญ์ฝํต์ฅ 10๋ ๋ฃ๊ณ ๋๋ ์์งํ ํ์ค (2026๋ ๊ธฐ์ค)", + "status": "published", + "source": "auto", + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "blogUrl": "https://hoguasset.blogspot.com/2026/07/10-2026.html", + "errorMessage": null, + "createdAt": "2026-07-03T00:00:00", + "publishedAt": "2026-07-03T00:00:00", + "lastAttemptAt": "2026-07-03T00:00:00", + "attempts": 1, + "runNumber": 0, + "wordCount": 3429, + "faqCount": 5, + "category": "๋ถ๋์ฐ", + "labels": [ + "์ฒญ์ฝํต์ฅ", + "์ฃผํ์ฒญ์ฝ", + "์ฒญ์ฝ๊ฐ์ ", + "์ฒญ์ฝํต์ฅ10๋ ", + "๋ด์ง๋ง๋ จ", + "์ฒญ์ฝ์ ๋", + "๊ณต๊ณต๋ถ์" + ], + "metaDescription": "์ฒญ์ฝํต์ฅ 10๋ ๋ฃ์ 30๋ ์ง์ฅ์ธ์ ์์งํ ํ๊ธฐ. ๊ฐ์ ๊ตฌ์กฐ์ ํ์ค, 2024๋ ์ดํ ์ ๋ ๊ฐํธ, ๋ฉ์ ๊ธ์ก ์๊ธ ์ด์๊น์ง ์ค์ ๊ฒฝํ ๊ธฐ๋ฐ์ผ๋ก ์ ๋ฆฌํ์ด์.", + "contentPreview": "์ฌํด๋ก ๋ฑ 10๋ ์ด ๋์ด์. ์ฒญ์ฝํต์ฅ ์ฒ์ ๋ง๋ ๊ฒ 2016๋ ์ด์๊ฑฐ๋ ์. ๊ทธ๋ ์ฌํ์ด๋ ์์ด์๊ณ , ๋ถ๋ชจ๋์ด \"๋ฌด์กฐ๊ฑด ์ฒญ์ฝํต์ฅ๋ถํฐ\"๋ผ๊ณ ํ์ ์ ๋ณ ์๊ฐ ์์ด ๋ง๋ค์์ด์. ๋ฉ์ ๊ธ์ก๋ ์ฒ์์ 2๋ง ์์ผ๋ก ์์ํ๋ค๊ฐ ๋์ค์ 10๋ง ์์ผ๋ก ์ฌ๋ ธ๊ณ ์. ๊ทธ๋ ๊ฒ 10๋ ์ ๊พธ์คํ ๋ฃ์๋๋ฐ, ์์งํ ๋งํ๋ฉด ์ง๊ธ ๋๋ ๊ฐ์ ์ \"์ํ๋ค\"์ \"์กฐ๊ธ ํํํ๋ค\"๊ฐ ๋์์ ์์ด์.์ต๊ทผ์...", + "articleType": "analysis" + }, + { + "post_id": "2026-07-03_๊ธ๋ฆฌ์ธ์๊ธฐ์์๊ธ๊ฐ์ํ๋ด๊ฒฝํ๋ด_862ad4ab", + "keyword": "๊ธ๋ฆฌ ์ธ์๊ธฐ์ ์๊ธ ๊ฐ์ํ ๋ด ๊ฒฝํ๋ด", + "title": "๊ธ๋ฆฌ ์ธ์๊ธฐ์ ์๊ธ ๊ฐ์ํ ๋ด ๊ฒฝํ๋ด, ์์งํ ์ด๋ ๊ฒ ๋์ด์ (2026)", + "status": "published", + "source": "auto", + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "blogUrl": "https://hoguasset.blogspot.com/2026/07/2026_01441306334.html", + "errorMessage": null, + "createdAt": "2026-07-03T00:00:00", + "publishedAt": "2026-07-08T10:43:55.800423", + "lastAttemptAt": "2026-07-08T10:43:55.800423", + "attempts": 8, + "runNumber": 0, + "wordCount": 139, + "faqCount": 5, + "category": "๊ธ์ต", + "labels": [ + "๊ธ๋ฆฌ์ธ์๊ธฐ์๊ธ", + "์ ๊ธฐ์๊ธ๊ฐ์ํ๊ธฐ", + "์๊ธ๊ธ๋ฆฌ๋น๊ต", + "๊ธ๋ฆฌ์ธ์", + "์๊ธ์๋ณดํธ", + "์ธํฐ๋ท์ํ์๊ธ", + "์ ์ถ์ํ์๊ธ" + ], + "metaDescription": "๊ธ๋ฆฌ ์ธ์๊ธฐ์ ์๊ธ์ ๊ฐ์ํ 30๋ ์ง์ฅ์ธ์ ์์งํ ๊ฒฝํ๋ด. ์๋ ์ฐ์ฅ์ผ๋ก ์ํด ๋ณธ ์ค์๋ถํฐ, ์ค๋ํด์ง ๊ณ์ฐ๋ฒ, ์๊ธ์๋ณดํธ ํ๋, 2026๋ ๋ฌ๋ผ์ง ์๊ธ ์ ๋ต๊น์ง ์ง์ ๊ฒฝํํ ๋ด์ฉ์ ํ์์ด์.", + "contentPreview": "์๋ ์ด๋ง๋์ฏค์ด์์ด์. ํต์ฅ ์ ๊ธฐ์๊ธ ๋ง๊ธฐ ์๋ด ๋ฌธ์๋ฅผ ๋ฐ๊ณ ๋ฉํ๋ ์์์์๋ ๊ธฐ์ต์ด ๋์. 2๋ ์ ์ ๋ค์ด๋จ๋ ์๊ธ์ธ๋ฐ, ๋น์์ ๊ธ๋ฆฌ๊ฐ ์๋ ๋ฎ์์ 2.1%์ง๋ฆฌ๋ก ๊ฒจ์ฐ๊ฒจ์ฐ ๋ฌถ์ด๋๊ฑฐ๋ ์. ๊ทธ๋ฐ๋ฐ ๊ทธ ์ฌ์ด์ ์ธ์์ด ์์ ํ ๋ฐ๋์ด๋ฒ๋ ธ์์์. ๊ธฐ์ค๊ธ๋ฆฌ๊ฐ ์ฌ๋ผ๊ฐ๊ณ , ์ํ ์ฐฝ๊ตฌ๋ง๋ค ํนํ ์๊ธ ํ์๋ง์ด ๋ถ๊ณ , ์น๊ตฌ๋ค ๋จํก๋ฐฉ์์", + "articleType": "review" + }, + { + "post_id": "2026-07-03_์ ์ฃผ๋ํผ์์ฌํ์ฒ์๊ฐ์๋์ค์๋ด_2023f551", + "keyword": "์ ์ฃผ๋ ํผ์ ์ฌํ ์ฒ์ ๊ฐ์ ๋ ์ค์๋ด", + "title": "์ ์ฃผ๋ ํผ์ ์ฌํ ์ฒ์ ๊ฐ์ ๋ ์ค์๋ด โ 2026๋ ์์ง ํ๊ธฐ", + "status": "published", + "source": "auto", + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "blogUrl": "https://hogugolfntraval.blogspot.com/2026/07/2026_01513587177.html", + "errorMessage": null, + "createdAt": "2026-07-03T00:00:00", + "publishedAt": "2026-07-03T00:00:00", + "lastAttemptAt": "2026-07-03T00:00:00", + "attempts": 1, + "runNumber": 0, + "wordCount": 2921, + "faqCount": 5, + "category": "์ฌํ", + "labels": [ + "์ ์ฃผ๋์ฌํ", + "ํผ์์ฌํ", + "์ ์ฃผํผํ", + "์ ์ฃผ๋์ค์๋ด", + "์ ์ฃผ๋ ํฐ์นด", + "์ ์ฃผ๋ง์ง", + "ํผ์์ ์ฃผ๋" + ], + "metaDescription": "์ ์ฃผ๋ ํผ์ ์ฌํ ์ฒ์ ๊ฐ์ ๋ ๋ ํฐ์นด ์์ด ๋ฒํฐ๋ค ๋งํ ์ด์ผ๊ธฐ, ๋ธ๋ก๊ทธ ๋ง์ง ์์ฝ ์์ด ๊ฐ๋ค๊ฐ ํธ์์ ์ ์ธ ์ง ๊ฒฝํ ๋ฑ 2026๋ ์์ง ์ค์๋ด์ ์ง์ ๊ฒช์ ๋๋ก ์ ๋ฆฌํ์ด์.", + "contentPreview": "์์งํ ๋งํ๋ฉด, ์ ๊ฐ ์ ์ฃผ๋ ํผ์ ์ฌํ์ ์ฒ์ ๊ฐ ๊ฒ ๊ฝค ์ถฉ๋์ ์ด์์ด์. ํ์ฌ์์ ์ฐ์ฐจ 3์ผ์ด ์๊ฒผ๋๋ฐ, ๊ฐ์ด ๊ฐ ์ฌ๋๋ ์๊ณ ๊ทธ๋ ๋ค๊ณ ์ง์๋ง ์๊ธฐ๋ ์๊น์ด ๊ฑฐ์์. ๊ทธ๋ฅ \"์ ์ฃผ๋๋ ๊ฐ๋ณผ๊น?\" ํ๊ณ ๋น์ผ์ ํญ๊ณต๊ถ ๋์ด๋ฒ๋ ธ๊ฑฐ๋ ์. ์ง๊ธ ์๊ฐํ๋ฉด ๊ทธ ๊ฒฐ์ ์์ฒด๋ ์ํ๋๋ฐ, ์ค๋น ์์ด ๊ฐ๋ค๊ฐ ์ง์ง ๋ณ์๋ณ ์ค์๋ฅผ ๋ค ํ์ด์. ๊ทธ๋์ ์ด์ผ๊ธฐ๋ฅผ ์ข ํ์ด๋ณด๋ ค๊ณ ์. ์ ์ฃผ...", + "articleType": "travel_guide" + }, + { + "post_id": "2026-07-03_๋ฐ๋ฆฌํจํค์งvs์์ ์ฌํ์ง์ ํด๋ดค๋๋_39573de1", + "keyword": "๋ฐ๋ฆฌ ํจํค์ง vs ์์ ์ฌํ ์ง์ ํด๋ดค๋๋", + "title": "๋ฐ๋ฆฌ ํจํค์ง vs ์์ ์ฌํ, ๋ ๋ค ์ง์ ํด๋ดค๋๋ (2026 ์์ง ํ๊ธฐ)", + "status": "published", + "source": "auto", + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "blogUrl": "https://hogugolfntraval.blogspot.com/2026/07/vs-2026.html", + "errorMessage": null, + "createdAt": "2026-07-03T00:00:00", + "publishedAt": "2026-07-03T00:00:00", + "lastAttemptAt": "2026-07-03T00:00:00", + "attempts": 1, + "runNumber": 0, + "wordCount": 3080, + "faqCount": 5, + "category": "์ฌํ", + "labels": [ + "๋ฐ๋ฆฌ์ฌํ", + "๋ฐ๋ฆฌํจํค์ง", + "๋ฐ๋ฆฌ์์ ์ฌํ", + "๋ฐ๋ฆฌ์ฌํ๋น์ฉ", + "๋๋จ์์ฌํ", + "ํด์ธ์ฌํ", + "๋ฐ๋ฆฌ์ถ์ฒ" + ], + "metaDescription": "๋ฐ๋ฆฌ ํจํค์ง์ ์์ ์ฌํ ๋ ๋ค ์ง์ ํด๋ณธ 30๋ ์ง์ฅ์ธ์ ์์ง ํ๊ธฐ. ์ค์ ๋น์ฉ ๋น๊ต๋ถํฐ ํจํค์ง ์ผํ ์ฝ์ค ํ์ค, ์์ ์ฌํ ๊ฟํ, 2026๋ ๊ด๊ด์ธ๊น์ง ๊ฒฝํ ๊ธฐ๋ฐ์ผ๋ก ์ ๋ฆฌํ์ด์.", + "contentPreview": "์์งํ ๋งํ๋ฉด, ์ ๋ ๋ช ๋ ์งธ ์ด ๋ ผ์์์ ์์ ๋กญ์ง ๋ชปํ์ด์. ํ์ฌ ๋๋ฃ๋ค์ด๋ ์๊ธฐํ ๋๋ง๋ค '๋ฐ๋ฆฌ๋ ํจํค์ง๊ฐ ๋ซ๋ค'๋ ํ์ด๋ '์์ ์ฌํ์ด์ง ๋ฌด์จ' ํ์ด ํญ์ ๋๋๊ฑฐ๋ ์. ๊ทธ๋์ ๊ฒฐ๊ตญ ์ง์ ํด๋ณด๊ธฐ๋ก ํ์ต๋๋ค. 2024๋ ์ ํจํค์ง๋ก ํ ๋ฒ, 2025๋ ๋ง์ ์์ ์ฌํ์ผ๋ก ํ ๋ฒ. ๋ ๋ค ๊ฒฝํํด๋ณด๋๊น ๋ญ๊ฐ ํ์คํ ๋งํ ์ ์์ ๊ฒ ๊ฐ์์ ์ด ๊ธ ์ฐ๊ฒ ๋์ด์.๋ฏธ๋ฆฌ...", + "articleType": "travel_guide" + }, + { + "post_id": "2026-07-03_ํฌ์ค3๊ฐ์๋ค๋์์งํ๊ธฐ๋ณํ์๋์ด์ _cf23ad71", + "keyword": "ํฌ์ค 3๊ฐ์ ๋ค๋ ์์ง ํ๊ธฐ ๋ณํ์๋ ์ด์ ", + "title": "ํฌ์ค 3๊ฐ์ ๋ค๋ ์์ง ํ๊ธฐ โ ๋ณํ์๋ ์ด์ ๋๋์ด ์์์ด์ (2026)", + "status": "published", + "source": "auto", + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "blogUrl": "https://hogugolfntraval.blogspot.com/2026/07/3-2026.html", + "errorMessage": null, + "createdAt": "2026-07-03T00:00:00", + "publishedAt": "2026-07-03T00:00:00", + "lastAttemptAt": "2026-07-03T00:00:00", + "attempts": 1, + "runNumber": 0, + "wordCount": 2993, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "ํฌ์ค", + "ํฌ์คํ๊ธฐ", + "ํฌ์ค3๊ฐ์", + "์ด๋์ผ๊ธฐ", + "์ง์ฅ์ธ์ด๋", + "ํฌ์ค๋ณํ์๋์ด์ ", + "ํฌ์ค์ด๋ณด" + ], + "metaDescription": "ํฌ์ค 3๊ฐ์ ๋ค๋๊ณ ๋ณํ์๋ ์ด์ , ์ง์ ๊ฒช์ด๋ดค์ด์. ์ด๋ ๊ฐ๋ ๋ง๊ณ ์ ๊ฐ ๋์ณค๋ ํผยท์๋ฉดยท์ ์ง์ ๊ณผ๋ถํ ๋ฌธ์ ๋ฅผ ์์งํ๊ฒ ์ ๋ฆฌํ์ต๋๋ค. 2026๋ ์ง์ฅ์ธ ํฌ์ค ํ๊ธฐ.", + "contentPreview": "์์งํ ๋งํ ๊ฒ์. ์ 3๊ฐ์ ํฌ์ค์ฅ ๋ค๋๊ณ ๋ชธ ๊ฑฐ์ ์ ๋ฐ๋์์ด์.์ฒ์์ ์ง์ง ์๊ธฐ์์ํ๊ฑฐ๋ ์. 1์์ ํฌ์ค์ฅ ๋ฑ๋กํ๊ณ , ์ ํ๋ธ ์ด๋ ์์ ์ ์ฅํด๋๊ณ , ๋จ๋ฐฑ์ง ์์ดํฌ๊น์ง ์ฌ๋จ์ผ๋๊น์. '3๊ฐ์์ด๋ฉด ์ข ๋ฌ๋ผ์ง๊ฒ ์ง' ํ๋๋ฐ โ 4์ ์ด์ ๊ฑฐ์ธ ๋ณด๊ณ ์ข ๋นํฉํ์ด์. ์ด๊นจ๊ฐ ์ข ๋์ด์ง ๊ฒ ๊ฐ๊ธฐ๋ ํ๊ณ , ์๋ ๊ฒ ๊ฐ๊ธฐ๋ ํ๊ณ . ์ฒด์ค์ 1.2kg ๋น ์ก๋๋ฐ ๊ทธ๊ฒ ์ด๋ ...", + "articleType": "review" + }, + { + "post_id": "2026-07-03_ETF์ฒ์ํฌ์ํ ๋๋ชฐ๋๋์ค์๋ค_a87b9511", + "keyword": "ETF ์ฒ์ ํฌ์ํ ๋ ๋ชฐ๋๋ ์ค์๋ค", + "title": "ETF ์ฒ์ ํฌ์ํ ๋ ๋ชฐ๋๋ ์ค์๋ค, ์ ๋ ๋ค ํด๋ดค์ด์ (2026๋ )", + "status": "published", + "source": "auto", + "blogId": "blog1", + "blogName": "HOGU What?", + "blogUrl": "https://hoguwhat1.blogspot.com/2026/07/etf-2026_0598100428.html", + "errorMessage": null, + "createdAt": "2026-07-03T00:00:00", + "publishedAt": "2026-07-03T00:00:00", + "lastAttemptAt": "2026-07-03T00:00:00", + "attempts": 1, + "runNumber": 0, + "wordCount": 3351, + "faqCount": 5, + "category": "๊ธ์ต", + "labels": [ + "ETFํฌ์", + "ETF์ด๋ณด", + "์ธ๋ฑ์คETF", + "ETF์ค์", + "๋ ๋ฒ๋ฆฌ์งETF", + "์ ๋ฆฝ์ํฌ์", + "S&P500ETF" + ], + "metaDescription": "ETF ์ฒ์ ํฌ์ํ ๋ ์ ๋ ๋ ๋ฒ๋ฆฌ์ง ETF๋ฅผ ์ฅ๊ธฐ๋ณด์ ํ๊ณ , ์ด์ฉ๋ณด์ ๋ฌด์ํ๊ณ , ๋ถ์ฐ๋๋ค๊ณ ์ฐฉ๊ฐํ์ด์. ์ง์ ๊ฒช์ ์ค์๋ค์ 2026๋ ๊ธฐ์ค์ผ๋ก ์์งํ๊ฒ ์ ๋ฆฌํ์ต๋๋ค.", + "contentPreview": "ETF ํฌ์ ์์ํ ๊ฒ ๋ฒ์จ 4๋ ์ ์ด๋ค์. ๊ทธ๋ ์ ๊ฐ ์ผ๋ง๋ ํ์ ํ๊ฒ ์์ํ๋์ง, ์ง๊ธ ๋์๋ณด๋ฉด ์ง์ง ์ผ๊ตด์ด ํ๋๊ฑฐ๋ ค์. ๊ณ๊ธฐ๊ฐ ์์์ด์. ํ์ฌ ์ ๋ฐฐ๊ฐ \"ETF ๊ทธ๋ฅ ์ฌ๋ฉด ๋๋ ๊ฑฐ์ผ, S&P500 ๊ทธ๋ฅ ๊ฝ์\"๋ผ๊ณ ํด์ ๊ทธ๋ ๋ฐ๋ก ๊ณ์ข ๋ง๋ค๊ณ 100๋ง ์ ๋ฃ์๊ฑฐ๋ ์. ๊ทผ๋ฐ ๋ง์ ์ฑ ์ด์ด๋ณด๋๊น ์ข ๋ชฉ์ด ์๋ฐฑ ๊ฐ๊ณ , ๋น์ทํด ๋ณด์ด๋ ๊ฒ๋ค์ด ๋๋ฌด ๋ง์ ๊ฑฐ์์...", + "articleType": "analysis" + }, + { + "post_id": "2026-07-03_๊ฑด๊ฐ๊ฒ์ง๊ฒฐ๊ณผ์ง์ ๋ฐ์๋ณด๊ณ ์๊ฒ๋๊ฒ_088d5029", + "keyword": "๊ฑด๊ฐ๊ฒ์ง ๊ฒฐ๊ณผ ์ง์ ๋ฐ์๋ณด๊ณ ์๊ฒ ๋ ๊ฒ", + "title": "๊ฑด๊ฐ๊ฒ์ง ๊ฒฐ๊ณผ ์ง์ ๋ฐ์๋ณด๊ณ ์๊ฒ ๋ ๊ฒ๋ค (2026๋ ์์ง ํ๊ธฐ)", + "status": "skipped", + "source": "auto", + "blogId": "blog1", + "blogName": "HOGU What?", + "blogUrl": "https://hoguwhat1.blogspot.com/2026/07/2026_01979867157.html", + "errorMessage": "blog1 ์ฃผ์ ๊ฐํธ โ ๋ณด๊ด", + "createdAt": "2026-07-03T00:00:00", + "publishedAt": "2026-07-03T00:00:00", + "lastAttemptAt": "2026-07-03T00:00:00", + "attempts": 1, + "runNumber": 0, + "wordCount": 3493, + "faqCount": 5, + "category": "๊ฑด๊ฐ", + "labels": [ + "๊ฑด๊ฐ๊ฒ์ง", + "๊ฑด๊ฐ๊ฒ์ง๊ฒฐ๊ณผ", + "๊ฑด๊ฐ๊ด๋ฆฌ", + "ํ์ก๊ฒ์ฌ", + "์ฝ๋ ์คํ ๋กค", + "ํ๋น๊ด๋ฆฌ", + "๊ตญ๋ฏผ๊ฑด๊ฐ๋ณดํ" + ], + "metaDescription": "๊ฑด๊ฐ๊ฒ์ง ๊ฒฐ๊ณผ์ง ๋ฐ๊ณ ๊ทธ๋ฅ ์๋์ ๋ฃ์ด๋๋ ์ ๊ฐ ์ง์ ๊ณต๋ถํ๊ณ ์๋ด๋ฐ์ผ๋ฉด์ ์๊ฒ ๋ ๊ฒ๋ค. ๋ฑ๊ธ ํด์, ๊ณผ๊ฑฐ ๊ฒฐ๊ณผ ๋น๊ต, ์ค์ ๋ก ํ ๊ฒ๋ค๊น์ง ์์งํ๊ฒ ์ผ์ด์. 2026๋ ๊ธฐ์ค.", + "contentPreview": "์์งํ ๋งํ๋ฉด, ์ ๋ ๋ช ๋ ์ ๊น์ง๋ง ํด๋ ๊ฑด๊ฐ๊ฒ์ง ๊ฒฐ๊ณผ์ง๋ฅผ ๋ฐ์๋ ๊ทธ๋ฅ ์๋์ ๋ฃ์ด๋๋ ์ฌ๋์ด์์ด์. ์ด์ ์์, D, C ์ด๋ฐ ๋ฑ๊ธ ๊ธ์๋ง ๋์ถฉ ๋ณด๊ณ '๊ด์ฐฎ๊ฒ ์ง' ํ๊ณ ๋ฎ์ด๋๋ ๊ฑฐ์ฃ . ๊ทผ๋ฐ ์๋ ์ ํ์ฌ ๋๋ฃ๊ฐ ์ ๊ธฐ๊ฒ์ง์์ ๊ณ ์งํ์ฆ์ด ๋ฐ๊ฒฌ๋๋๋ฐ, ๋ณธ์ธ์ด ๊ฒฐ๊ณผ์ง๋ฅผ ์ ๋๋ก ์ ์ฝ์ด์ 1๋ ์ ๊ทธ๋ฅ ๋ฐฉ์นํ๋ค๋ ์๊ธฐ๋ฅผ ๋ค์์ด์. ๊ทธ๊ฒ ๋๊ฒ ์ถฉ๊ฒฉ์ด์๊ฑฐ๋ ์. '๋๋ ...", + "articleType": "review" + }, + { + "post_id": "2026-07-03_ํ๋ฆฌ๋์์ข ํฉ์๋์ธ์ฒ์์ ๊ณ ์์งํ๊ธฐ_8e12e217", + "keyword": "ํ๋ฆฌ๋์ ์ข ํฉ์๋์ธ ์ฒ์ ์ ๊ณ ์์ง ํ๊ธฐ", + "title": "ํ๋ฆฌ๋์ ์ข ํฉ์๋์ธ ์ฒ์ ์ ๊ณ ์์ง ํ๊ธฐ โ 2026๋ ์ง์ ํด๋ดค์ด์", + "status": "published", + "source": "auto", + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "blogUrl": "https://hoguasset.blogspot.com/2026/07/2026_01983766293.html", + "errorMessage": null, + "createdAt": "2026-07-03T00:00:00", + "publishedAt": "2026-07-03T00:00:00", + "lastAttemptAt": "2026-07-03T00:00:00", + "attempts": 1, + "runNumber": 0, + "wordCount": 3443, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "์ข ํฉ์๋์ธ", + "ํ๋ฆฌ๋์์ธ๊ธ", + "์ข ํฉ์๋์ธ์ ๊ณ ", + "ํํ์ค", + "๋จ์๊ฒฝ๋น์จ", + "ํ๋ฆฌ๋์", + "N์ก๋ฌ์ธ๊ธ" + ], + "metaDescription": "2026๋ ํ๋ฆฌ๋์ ์ข ํฉ์๋์ธ ์ฒ์ ์ ๊ณ ํ ์ง์ฅ์ธ์ ์์ง ํ๊ธฐ. ๋ชจ๋์ฑ์ ์๋น์ค, ๋จ์๊ฒฝ๋น์จ ์ ์ฉ, ์์ฒ์ง์ ํ๊ธ๊น์ง ์ง์ ํด๋ณด๋ฉฐ ๊ฒช์ ๊ฒ๋ค์ ์ ๋ฆฌํ์ด์.", + "contentPreview": "์์งํ ๋งํ๋ฉด, ์ ์ฌํด 5์ ์ ๊น์ง๋ง ํด๋ '์ข ํฉ์๋์ธ'๊ฐ ๋ญ์ง ๊ฐ๋ ์์ฒด๊ฐ ํ๋ฆฟํ์ด์. ํ์ฌ ๋ค๋๋ฉด์ ์ฐ๋ง์ ์ฐ์ ๊ทธ๋ฅ ํ์ฌ๊ฐ ์์์ ํด์คฌ๊ณ , ์ ๋ ๋์ฅ ์ฐ๋ ๊ธฐ๊ณ์ฒ๋ผ ์๋ฅ๋ง ๋๊ฑฐ๋ ์. ๊ทผ๋ฐ ์๋ ๋ถํฐ N์ก ์ผ์ ๋ฒ์ญ ํ๋ฆฌ๋์ ์ผ์ ์ข ํ๊ธฐ ์์ํ๊ณ , ํ๋ซํผ์์ ๋ค์ด์ค๋ ์์ ์ด ์๊ธฐ๋ฉด์ ์ฌํด 5์์ ์ฒ์์ผ๋ก ์ข ํฉ์๋์ธ ์ ๊ณ ๋ฅผ ์ง์ ํด์ผ ํ๋ ์ํฉ์ด ๋์ด์....", + "articleType": "review", + "migratedAt": "2026-07-15T03:44:53.760723" + }, + { + "post_id": "2026-07-03_์์ธ์์ต์์งํ๊ธฐ์ธ๊ธ๊น์ง๋ค๊ณต๊ฐ_9941f97f", + "keyword": "์์ธ ์์ต ์์ง ํ๊ธฐ ์ธ๊ธ๊น์ง ๋ค ๊ณต๊ฐ", + "title": "์์ธ ์์ต ์์ง ํ๊ธฐ, ์ธ๊ธ๊น์ง ๋ค ๊ณต๊ฐํฉ๋๋ค (2026๋ ์ง์ ๊ฒฝํ)", + "status": "published", + "source": "auto", + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "blogUrl": "https://hoguasset.blogspot.com/2026/07/2026.html", + "errorMessage": null, + "createdAt": "2026-07-03T00:00:00", + "publishedAt": "2026-07-03T00:00:00", + "lastAttemptAt": "2026-07-03T00:00:00", + "attempts": 1, + "runNumber": 0, + "wordCount": 2383, + "faqCount": 5, + "category": "๋ถ๋์ฐ", + "labels": [ + "์์ธ์์ต", + "์๋์๋์ธ๊ธ", + "์ข ํฉ์๋์ธ์ ๊ณ ", + "๋ถ๋ฆฌ๊ณผ์ธ", + "๋ถ๋์ฐํฌ์", + "์๋์๋", + "์์ธํ๊ธฐ" + ], + "metaDescription": "2026๋ ์ํ ์ํํธ ์์ธ ์์ต ์ง์ ๊ฒฝํ ์์ง ํ๊ธฐ. ์ฐ 660๋ง์ ์์ ์์ ๋น์ฉยท์ธ๊ธ ๋นผ๋ฉด ์ค์ ์ผ๋ง ๋จ๋์ง, ๋ถ๋ฆฌ๊ณผ์ธ ๊ณ์ฐ๋ฒ, ์ง์ฅ์ธ ์๋์๋ ์ ๊ณ ๊น์ง ์ ๋ถ ๊ณต๊ฐํฉ๋๋ค.", + "contentPreview": "์๋ ์ด๋ง๋์ฏค์ด์์ด์. ํ์ฌ ๋๊ธฐ๊ฐ \"๋ ์์ธ ๋ฐ๋๋ค\"๋ ๋ง์ ํญ ๋์ก๋๋ฐ, ๋ญ๊ฐ ๋ถ๋ฌ์ฐ๋ฉด์๋ '๊ทธ๋์ ์ผ๋ง ๋จ๋๋ฐ?'๊ฐ ์ง์ง ๊ถ๊ธํ๊ฑฐ๋ ์. ์ธํฐ๋ท ์ฐพ์๋ณด๋ฉด '์์ธ ์์ต๋ฅ ๊ณ์ฐ๋ฒ'์ด๋ '์๋์๋ ์ ๊ณ ๋ฐฉ๋ฒ' ๊ฐ์ ๊ฑด ๋์ณ๋๋๋ฐ, ์ ์ ์ค์ ๋ก ์ผ๋ง๋ ๋จ๊ณ ์ธ๊ธ์ ์ผ๋ง๋ ๋ฏ๊ธฐ๋์ง ๊ตฌ์ฒด์ ์ผ๋ก ์ด ๊ธ์ด ๋ณ๋ก ์๋๋ผ๊ณ ์. ๊ทธ๋์ ์ ๊ฐ ์ง์ ํด๋ณด๊ณ ์ด ๊ธ์ ์๋๋ค.์ ...", + "articleType": "review" + }, + { + "post_id": "2026-07-03_๋ฌ๋ฌํ์ ์ง์ ํด๋ดค๋๋์ํ๋ณด๋ค์ด๊ฒ๋ซ๋๋ผ_1625573a", + "keyword": "๋ฌ๋ฌ ํ์ ์ง์ ํด๋ดค๋๋ ์ํ๋ณด๋ค ์ด๊ฒ ๋ซ๋๋ผ", + "title": "๋ฌ๋ฌ ํ์ ์ง์ ํด๋ดค๋๋ ์ํ๋ณด๋ค ์ด๊ฒ ๋ซ๋๋ผ (2026๋ ์์ง ํ๊ธฐ)", + "status": "published", + "source": "auto", + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "blogUrl": "https://hoguasset.blogspot.com/2026/07/2026_0433605768.html", + "errorMessage": null, + "createdAt": "2026-07-03T00:00:00", + "publishedAt": "2026-07-03T00:00:00", + "lastAttemptAt": "2026-07-03T00:00:00", + "attempts": 1, + "runNumber": 0, + "wordCount": 2907, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "๋ฌ๋ฌํ์ ", + "ํ์ ์ฐ๋", + "ํ์ ํ", + "์ธํฐ๋ท๋ฑ ํนํ์ ", + "ํ ์ค์ธํ", + "ํด์ธํ์ ", + "ํ์จ" + ], + "metaDescription": "2026๋ ๋ฌ๋ฌ ํ์ ์ง์ ํด๋ดค๋๋ฐ ์ํ ์ฐฝ๊ตฌ๋ณด๋ค ์ธํฐ๋ท๋ฑ ํน ์ฐ๋์ฟ ํฐ+๊ณตํญ์๋ น์ด ํ์คํ ๋์์ด์. ํ ์ค ์ธํ ์ถฉ์ ๋น๊ต ํ๊ธฐ๊น์ง ์์งํ๊ฒ ์ ๋ฆฌํ์ต๋๋ค.", + "contentPreview": "์ง๋๋ฌ์ ๋ฏธ๊ตญ ์ถ์ฅ์ด ์กํ์ด์. ํ์ฌ์์ ๊ฒฝ๋น ์ฒ๋ฆฌ๋ฅผ ํด์ฃผ๊ธด ํ๋๋ฐ, ๊ฐ์ธ ์ฉ๋์ ์ ๊ฐ ๋ฐ๋ก ์ฑ๊ฒจ์ผ ํ๋ ์ํฉ์ด๋ผ ๋ฌ๋ฌ ํ์ ์ ์ง์ ํด์ผ ํ๊ฑฐ๋ ์. ๊ทธ๋์์ ๊ทธ๋ฅ ๋ฌด์กฐ๊ฑด ์ง ์ ์ํ ๊ฐ์ ํ์ ํ๋ ๊ฒ ๋น์ฐํ๋ค๊ณ ์๊ฐํ๋๋ฐ, ์ด๋ฒ์ ๋๋ฃ๊ฐ \"์์ฆ ๊ทธ๋ ๊ฒ ํ๋ฉด ์ํด์ผ\"๋ผ๋ ๋ง์ ํ๋ ๊ฑฐ์์.์ฒ์์ '๋ญ๊ฐ ๋ค๋ฅด๋ค๊ณ ' ์ถ์์ด์. ์์งํ ํ์ ์ด ๊ทธ๋ฅ ํ์ ์ด์ง ๋ญ๊ฐ ...", + "articleType": "review" + }, + { + "post_id": "2026-07-03_์ฃผ์๋ฐฐ๋น์ฃผ1๋ ํฌ์์ค์๋ด๊ณต๊ฐ_418642ea", + "keyword": "์ฃผ์ ๋ฐฐ๋น์ฃผ 1๋ ํฌ์ ์ค์๋ด ๊ณต๊ฐ", + "title": "๋ฐฐ๋น์ฃผ 1๋ ํฌ์ ์ค์๋ด ์์ง ๊ณต๊ฐ (2026๋ ๋ฒ์ )", + "status": "published", + "source": "auto", + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "blogUrl": "https://hoguasset.blogspot.com/2026/07/1-2026.html", + "errorMessage": null, + "createdAt": "2026-07-03T00:00:00", + "publishedAt": "2026-07-03T00:00:00", + "lastAttemptAt": "2026-07-03T00:00:00", + "attempts": 1, + "runNumber": 0, + "wordCount": 3088, + "faqCount": 5, + "category": "๊ธ์ต", + "labels": [ + "๋ฐฐ๋น์ฃผ", + "์ฃผ์ํฌ์", + "๋ฐฐ๋นํฌ์", + "ํฌ์์ค์", + "๋ฐฐ๋น์๋์ธ", + "๋ฐฐ๋นETF", + "๋ฐฐ๋น์ฃผํฌ์" + ], + "metaDescription": "๋ฐฐ๋น์ฃผ 1๋ ์ง์ ํฌ์ํ๋ฉด์ ๊ฒช์ ์ค์๋ด ์์ง ๊ณต๊ฐ. ๋ฐฐ๋น๋ฅ ๋ง ๋ณด๊ณ ์ข ๋ชฉ ๊ณ ๋ฅด๊ธฐ, ๋ฐฐ๋น๋ฝ์ผ ํ์ด๋ฐ ์คํด, ์ธ๊ธ ๊ณ์ฐ ๋๋ฝ ๋ฑ ์ค์ ๊ฒฝํ ๊ธฐ๋ฐ์ผ๋ก ์ ๋ฆฌํ์ด์.", + "contentPreview": "์๋ ์ด๋ง๋์ฏค์ด์์ด์. ํ์ฌ ๋๋ฃ๊ฐ \"๋ ๋ฐฐ๋น์ฃผ๋ก ๋งค๋ฌ ์ปคํผ๊ฐ์ด๋ผ๋ ๋ฝ๋๋ค\"๋ ๋ง์ ํญ ๋์ก๋๋ฐ, ๊ทธ ๋ง์ด ๋จธ๋ฆฟ์์์ ์ง์์ง์ง ์๋๋ผ๊ณ ์. ์ ๋ ๊ทธ๋ ์ ๊ธ ์ด์๊ฐ ๋๋ฌด ์ด๋ผํ๊ฒ ๋๊ปด์ง๋ ์ฐธ์ด๋ผ์, ํด๊ทผํ๊ณ ์ง์ ์์ ๋ฐ๋ก ์ฆ๊ถ ์ฑ ์ผฐ์ด์. ๊ทธ๊ฒ ์์์ด์์ต๋๋ค.์ง๊ธ ๋์๋ณด๋ฉด ๊ทธ 1๋ ๋์ ์ ๊ฐ ํ ์ค์๋ค์ด ๊ฝค ๋ง์์. ๊ทผ๋ฐ ์ธํฐ๋ท์์ ๋ฐฐ๋น์ฃผ ํฌ์ ๊ด๋ จ ๊ธ์ ...", + "articleType": "analysis" + }, + { + "post_id": "2026-07-03_์ ์ฃผ๋ํ๋ฌ์ด๊ธฐ์์งํ๊ธฐํ์ค๊ณต๊ฐ_6bfe4081", + "keyword": "์ ์ฃผ๋ ํ๋ฌ์ด๊ธฐ ์์ง ํ๊ธฐ ํ์ค ๊ณต๊ฐ", + "title": "์ ์ฃผ๋ ํ๋ฌ์ด๊ธฐ ์์ง ํ๊ธฐ โ ํ์ค์ ์ข ๋ฌ๋์ด์ (2026๋ )", + "status": "published", + "source": "auto", + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "blogUrl": "https://hogugolfntraval.blogspot.com/2026/07/2026_0878797556.html", + "errorMessage": null, + "createdAt": "2026-07-03T00:00:00", + "publishedAt": "2026-07-03T00:00:00", + "lastAttemptAt": "2026-07-03T00:00:00", + "attempts": 1, + "runNumber": 0, + "wordCount": 2757, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "์ ์ฃผ๋ํ๋ฌ์ด๊ธฐ", + "ํ๋ฌ์ด๊ธฐํ๊ธฐ", + "์ ์ฃผ๋์ฌํ", + "์์ผ์ด์ ", + "์ฅ๊ธฐ์ฌํ", + "์ ์ฃผ์ํ๋น", + "์๊ทํฌ์์" + ], + "metaDescription": "2026๋ ์ ์ฃผ๋ ํ๋ฌ์ด๊ธฐ ์์ง ํ๊ธฐ์ ๋๋ค. ์์ 75๋ง์ยท๊ตํตยท์๋น ์ค์ ์ง์ถ ๊ณต๊ฐ, 2์ฃผ์ฐจ ํ์ค ๋ฉํ ๋ถ๊ดด, ์์ธ๋ก ์ข์๋ ๊ฒ๊น์ง ๋ฏธํ ์์ด ์ ๋ฆฌํ์ด์.", + "contentPreview": "์์งํ ๋งํ๋ฉด ์ ๋ ๊ฝค ์ค๋ ๋ง์ค์์ด์. ์ ์ฃผ๋ ํ๋ฌ์ด๊ธฐ ์๊ธฐ๊ฐ SNS์์ ์์์ง๊ธฐ ์์ํ ๊ฒ ๋ฒ์จ ๋ช ๋ ๋๊ณ , ๊ทธ ์ฌ์ด ์ ๋ '๋๋ ์ธ์ ๊ฐ๋โฆ' ํ๋ฉด์ ๋ถ๋งํฌ๋ง ์์๋๊ฑฐ๋ ์. ๊ทธ๋ฌ๋ค ์ฌํด ๋ด, ํ์ฌ์์ ์๊ฒฉ๊ทผ๋ฌด ์ ์ฒญ์ด ๊ฐ๋ฅํด์ง ํ์ ํ์ ๋๋์ด ๊ฐํํ์ต๋๋ค. 3์ ๋ง๋ถํฐ 4์ ๋ง๊น์ง ๋ฑ ํ ๋ฌ. ์๊ทํฌ ์ชฝ์ ๋ฐฉ ํ๋ ๊ตฌํด์ ์ด์์ด์.๊ทผ๋ฐ ๋ง์ ํด๋ณด๋๊น ...", + "articleType": "review" + }, + { + "post_id": "2026-07-03_์ฒ์๊ณจํ๋ฐฐ์ธ๋๋ชฐ๋๋์ค์๋ด_2a2d91da", + "keyword": "์ฒ์ ๊ณจํ ๋ฐฐ์ธ ๋ ๋ชฐ๋๋ ์ค์๋ด", + "title": "์ฒ์ ๊ณจํ ๋ฐฐ์ธ ๋ ๋ชฐ๋๋ ์ค์๋ด, 2026๋ ์์ง ํ๊ธฐ", + "status": "published", + "source": "auto", + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "blogUrl": "https://hogugolfntraval.blogspot.com/2026/07/2026_01045763862.html", + "errorMessage": null, + "createdAt": "2026-07-03T00:00:00", + "publishedAt": "2026-07-08T10:34:57.818649", + "lastAttemptAt": "2026-07-08T10:34:57.818649", + "attempts": 8, + "runNumber": 0, + "wordCount": 388, + "faqCount": 5, + "category": "์คํฌ์ธ ", + "labels": [ + "๊ณจํ์ ๋ฌธ", + "๊ณจํ์ด๋ณด", + "๊ณจํ์ค์๋ด", + "๊ณจํ๋ ์จ", + "๊ณจํํด๋ฝ์ถ์ฒ", + "๊ณจํ์ํฐ์ผ", + "๊ณจํ์ฐ์ต" + ], + "metaDescription": "์ฒ์ ๊ณจํ ๋ฐฐ์ธ ๋ ๋ชฐ๋๋ ์ค์๋ด, 2๋ ์ฐจ ์ง์ฅ์ธ์ด ์์งํ๊ฒ ์๋๋ค. ๋ ์จ ์ค์, ํด๋ฝ ๊ตฌ๋งค ์คํจ, ์ฒซ ํ๋ ๋ฏผํ ๊ฒฝํ๊น์ง 2026๋ ํ์ฌ ์์ ์์ ๋์๋ณธ ์ ๋ฌธ๊ธฐ ํ๊ธฐ.", + "contentPreview": "๊ณจํ๋ฅผ ์์ํ ์ง ๋ฑ 2๋ ์ด ๋์ด์. ์ง๊ธ ์๊ฐํ๋ฉด ๊ทธ๋ฅ ์๊ธฐ๊ธฐ๋ ํ๊ณ , ์กฐ๊ธ ์ต์ธํ๊ธฐ๋ ํ ๊ธฐ์ต๋ค์ด ์๊ฑฐ๋ ์. ์ฒ์์ ์๋ฌด๋ ์ ์๋ ค์ค์ ํผ์ ํค๋งค๋ค๊ฐ ์๊ฐ์ด๋ ๋์ ๊ฝค ๋ ๋ ธ๋๋ฐ, ์ ์ฒ๋ผ ๋๊ฐ์ ์ค์ ๋ฐ๋ณตํ๋ ๋ถ๋ค์ด ๋๋ฌด ๋ง์ ๊ฒ ๊ฐ์์ ์ด ๊ธ ์๋๋ค.์ ๊ฐ ๊ณจํ๋ฅผ ์์ํ๊ฒ ๋ ๊ณ๊ธฐ๊ฐ ์ฐธ ๋ฏผ๋งํ๋ฐ์. ํ์ฌ ํ์ฅ๋์ด ์ฃผ๋ง ๋ผ์ด๋ฉ ์๊ธฐ๋ฅผ ๋งจ๋ ํ์๊ธธ๋, ์ ์ด...", + "articleType": "sports_review" + }, + { + "post_id": "2026-07-03_๋ฐฉ์ฝํผ์์ฌํ์ง์ ๊ฐ๋ดค๋๋๋ฌ๋๋๊ฒ_123f6658", + "keyword": "๋ฐฉ์ฝ ํผ์ ์ฌํ ์ง์ ๊ฐ๋ดค๋๋ ๋ฌ๋๋ ๊ฒ", + "title": "๋ฐฉ์ฝ ํผ์ ์ฌํ ์ง์ ๊ฐ๋ดค๋๋ ๋ฌ๋๋ ๊ฒ๋ค (2026๋ ์์ง ํ๊ธฐ)", + "status": "published", + "source": "auto", + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "blogUrl": "https://hogugolfntraval.blogspot.com/2026/07/2026_01070001430.html", + "errorMessage": null, + "createdAt": "2026-07-03T00:00:00", + "publishedAt": "2026-07-03T00:00:00", + "lastAttemptAt": "2026-07-03T00:00:00", + "attempts": 1, + "runNumber": 0, + "wordCount": 3348, + "faqCount": 5, + "category": "์ฌํ", + "labels": [ + "๋ฐฉ์ฝ์ฌํ", + "ํผ์์ฌํ", + "๋ฐฉ์ฝํผ์์ฌํ", + "ํ๊ตญ์ฌํ", + "๋๋จ์์ฌํ", + "๋ฐฉ์ฝ์ฌํํ๊ธฐ", + "๋ฐฉ์ฝ๋ฌผ๊ฐ" + ], + "metaDescription": "2026๋ 5์ ๋ฐฉ์ฝ ํผ์ ์ฌํ ์ง์ ๊ฐ๋ดค๋๋ ๋ธ๋ก๊ทธ์์ ์ฝ์ ๊ฒ๊ณผ ๋ฌ๋๋ ๊ฒ๋ค ์์งํ๊ฒ ์ ๋ฆฌํ์ด์. ๋ฌผ๊ฐ ํ์ค, ๊ทธ๋ฉ vs ํญํญ, ์ค์ ๊ฒฝ๋น ๊ณต๊ฐ, ๋ก์ปฌ ์จ์ ๋ช ์๊น์ง 5๋ฐ 6์ผ ํ๊ธฐ์ ๋๋ค.", + "contentPreview": "์ฌ์ค ์ ๋ ๋ฐฉ์ฝ ํผ์ ์ฌํ์ ๊ฒฐ์ฌํ๊ธฐ๊น์ง ๊ฝค ์ค๋ ๊ฑธ๋ ธ์ด์. ์ฃผ๋ณ์ ๋ฐฉ์ฝ ๋ค๋ ์จ ์ฌ๋์ด ์ด ๋ช ์ด๋ฉด ์ํ ๋ช ์ \"๊ฑฐ๊ธฐ ์ง์ง ์ข์, ๋ฌด์กฐ๊ฑด ๊ฐ\"๋ผ๊ณ ํ๊ฑฐ๋ ์. ๊ทผ๋ฐ ์์งํ ๊ทธ ๋ง์ด ์คํ๋ ค ๋ ๋ถ๋ด์ค๋ฌ์ ์ด์. ๋ค๋ค ๋๋ฌด ์ข๋ค๊ณ ํ๋ฉด ์ ๊ธฐ๋์น๊ฐ ์ฌ๋ผ๊ฐ์ ๋ง์ ๊ฐ๋ฉด ์ค๋งํ๊ฒ ๋๋ ๊ฒฝ์ฐ๊ฐ ๋ง๋๋ผ๊ณ ์. ๊ทธ๋์ ๋ฐ์ ๋ฐ์ํ๋ฉด์ 2026๋ 5์์ ํผ์ ์ถ๋ฐํ์ต๋๋ค. ๊ฒฐ๋ก ๋ถ...", + "articleType": "travel_guide" + }, + { + "post_id": "2026-07-03_ETF์ฒ์์์๋๋ชฐ๋๋์์๋ฃํจ์ _3d64a7a7", + "keyword": "ETF ์ฒ์ ์์ ๋ ๋ชฐ๋๋ ์์๋ฃ ํจ์ ", + "title": "ETF ์ฒ์ ์์ ๋ ๋ชฐ๋๋ ์์๋ฃ ํจ์ , ์ ๋ ๋นํ์ด์ (2026๋ )", + "status": "published", + "source": "auto", + "blogId": "blog1", + "blogName": "HOGU What?", + "blogUrl": "https://hoguwhat1.blogspot.com/2026/07/etf-2026.html", + "errorMessage": null, + "createdAt": "2026-07-03T00:00:00", + "publishedAt": "2026-07-03T00:00:00", + "lastAttemptAt": "2026-07-03T00:00:00", + "attempts": 1, + "runNumber": 0, + "wordCount": 3128, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "ETF์์๋ฃ", + "ETFํฌ์", + "ETF์ด๋ณด์", + "ํํค์ง๋น์ฉ", + "์ฃผ์ํฌ์", + "์ฌํ ํฌ", + "ํฌ์์ด๋ณด" + ], + "metaDescription": "ETF ์ฒ์ ์์ ๋ ๋ชฐ๋๋ ์์๋ฃ ํจ์ ์ ์ง์ ๊ฒช๊ณ ์ ๋ฆฌํ์ด์. ์ด์ฉ๋ณด์ vs ์ด๋น์ฉ๋น์จ ์ฐจ์ด, ํํค์ง ์จ๊ฒจ์ง ๋น์ฉ, ํด์ธ ETF ํ์ ์คํ๋ ๋๊น์ง 2026๋ ๊ธฐ์ค์ผ๋ก ์ค์ ๊ฒฝํ๋ด์ ๋ด์์ต๋๋ค.", + "contentPreview": "์์งํ ๋งํ๋ฉด, ์ ETF ์ฒ์ ์ด ๋ ์์๋ฃ๊ฐ ๊ฑฐ์ ์๋ค๊ณ ์๊ฐํ์ด์. ์ฃผ๋ณ์์ '์ฃผ์๋ณด๋ค ์์๋ฃ ์ธ์์'๋ผ๋ ๋ง์ ๋๋ฌด ๋ง์ด ๋ค์๊ฑฐ๋ ์. ๊ทผ๋ฐ ๋ง์ 1๋ ๋๊ฒ ๊ตด๋ ค๋ณด๊ณ ๊ณ์ข ๋ด์ญ์ ๊ผผ๊ผผํ ๋ค์ฌ๋ค๋ดค๋๋... ๋ญ๊ฐ ์ด์ํ๋ค ์ถ์๋๋ฐ, ์ญ์๋์์ด์.์ ๊ฐ ์ฒ์ ETF๋ฅผ ์ฐ ๊ฑด 2023๋ ๋ง์ด์์ด์. ๋น์ S&P500 ETF ์ดํ์ด ๋ถ๋ฉด์ ์ ๋ ๋ฐ๋ผ ๋ค์ด๊ฐ๋๋ฐ,...", + "articleType": "analysis" + }, + { + "post_id": "2026-07-03_๊ฑด๊ฐ๊ฒ์ง๊ณต์ง๋ก๋ฐ๋๋ฒ์ง์ ํด๋ดค๋๋_cb962d64", + "keyword": "๊ฑด๊ฐ๊ฒ์ง ๊ณต์ง๋ก ๋ฐ๋ ๋ฒ ์ง์ ํด๋ดค๋๋", + "title": "๊ฑด๊ฐ๊ฒ์ง ๊ณต์ง๋ก ๋ฐ๋ ๋ฒ ์ง์ ํด๋ดค๋๋ โ 2026๋ ์์ง ํ๊ธฐ", + "status": "skipped", + "source": "auto", + "blogId": "blog1", + "blogName": "HOGU What?", + "blogUrl": "https://hoguwhat1.blogspot.com/2026/07/2026_0895078644.html", + "errorMessage": "blog1 ์ฃผ์ ๊ฐํธ โ ๋ณด๊ด", + "createdAt": "2026-07-03T00:00:00", + "publishedAt": "2026-07-03T00:00:00", + "lastAttemptAt": "2026-07-03T00:00:00", + "attempts": 1, + "runNumber": 0, + "wordCount": 3027, + "faqCount": 5, + "category": "๊ฑด๊ฐ", + "labels": [ + "๊ฑด๊ฐ๊ฒ์ง", + "๊ตญ๊ฐ๊ฑด๊ฐ๊ฒ์ง", + "๋ฌด๋ฃ๊ฒ์ง", + "๋ณด๊ฑด์๊ฒ์ง", + "๊ฑด๊ฐ๋ณดํ๊ณต๋จ", + "์ง์ฅ์ธ๊ฑด๊ฐ๊ฒ์ง", + "๊ตญ๊ฐ์๊ฒ์ง" + ], + "metaDescription": "๊ฑด๊ฐ๊ฒ์ง ๊ณต์ง๋ก ๋ฐ๋ ๋ฒ์ ์ง์ ํด๋ณธ 30๋ ์ง์ฅ์ธ ํ๊ธฐ. ๊ตญ๊ฐ๊ฑด๊ฐ๊ฒ์งยท๋ณด๊ฑด์ ๋ฌด๋ฃ๊ฒ์งยทํ์ฌ ๋ณต์ง ์กฐํฉ์ผ๋ก ๊ฒ์ง๋น ์ ๋ก ๋ง๋๋ ์ค์ ๊ฒฝํ์ ์์งํ๊ฒ ์ ๋ฆฌํ์ต๋๋ค. 2026๋ ๊ธฐ์ค.", + "contentPreview": "์์งํ ๋งํ๋ฉด, ์ ์๋ ๊น์ง๋ง ํด๋ ๊ฑด๊ฐ๊ฒ์ง์ ๋ ์ฃผ๊ณ ๋ฐ๊ณ ์์์ด์. ๊ทธ๊ฒ๋ ํ์ฌ์์ ์ง์ํด์ฃผ๋ ๊ฑฐ๋ ๋ณ๊ฐ๋ก, ์ถ๊ฐ ๊ฒ์ง ํญ๋ชฉ๋ค ๋๋ฌธ์ ๋งค๋ 10๋ง~20๋ง ์์ ๊ทธ๋ฅ ์ผ๋ ๊ฑฐ์์. ๊ทธ๋ฌ๋ค ์นํ ๋์์ด \"ํ, ๊ทธ๊ฑฐ ๋ค ๊ณต์ง๋ก ๋ฐ์ ์ ์๋๋ฐ์?\" ๋ผ๊ณ ํ์ ๋ ์ง์ง ์ข ํฉ๋นํ์ด์. ๋ด๊ฐ ๋ช ๋ ์ ํ๋์ ์ผ๋ ๊ฑด์ง.๊ทธ๋์ ์ง๋ 2025๋ ํ๋ฐ๊ธฐ๋ถํฐ ์ง์ ํ๊ณ ...", + "articleType": "review" + }, + { + "post_id": "2026-07-03_์์ธ๊ณ์ฝ์ ์ง์ฃผ์ธํํ ๊ผญ๋ฌผ์ด๋ด์ผํ ๊ฒ_01230713", + "keyword": "์์ธ ๊ณ์ฝ ์ ์ง์ฃผ์ธํํ ๊ผญ ๋ฌผ์ด๋ด์ผ ํ ๊ฒ", + "title": "์์ธ ๊ณ์ฝ ์ ์ง์ฃผ์ธํํ ๊ผญ ๋ฌผ์ด๋ด์ผ ํ ๊ฒ โ 2026๋ ์ง์ ๊ฒช์ด๋ดค์ด์", + "status": "published", + "source": "auto", + "blogId": "blog1", + "blogName": "HOGU What?", + "blogUrl": "https://hoguwhat1.blogspot.com/2026/07/2026_01058768543.html", + "errorMessage": null, + "createdAt": "2026-07-03T00:00:00", + "publishedAt": "2026-07-03T00:00:00", + "lastAttemptAt": "2026-07-03T00:00:00", + "attempts": 1, + "runNumber": 0, + "wordCount": 3172, + "faqCount": 5, + "category": "๋ถ๋์ฐ", + "labels": [ + "์์ธ๊ณ์ฝ", + "๋ถ๋์ฐ", + "์์ฐจ์ธ๋ณดํธ", + "์ ์์ธ", + "์ง์ฃผ์ธ", + "๋ณด์ฆ๊ธ", + "์๋์ฐจ" + ], + "metaDescription": "์์ธ ๊ณ์ฝ ์ ์ง์ฃผ์ธํํ ๊ผญ ๋ฌผ์ด๋ด์ผ ํ ๊ฒ, ์ง์ ๋นํด๋ณธ ๊ฒฝํ์ผ๋ก ์ ๋ฆฌํ์ด์. ๋ฑ๊ธฐ๋ถ๋ฑ๋ณธ๋ง ๋ฏฟ์ผ๋ฉด ์ ๋๋ ์ด์ , ์ธ๊ธ ์ฒด๋ฉ ํ์ธ๋ฒ, 2026๋ ๋ฌ๋ผ์ง ์์ฐจ์ธ ๋ณดํธ ์ ๋๊น์ง ์์งํ๊ฒ ์๋๋ค.", + "contentPreview": "์์งํ ๋งํ๋ฉด, ์ ์์ ์ ์์ธ ๊ณ์ฝ ํ ๋ฒ ํฌ๊ฒ ๋นํ์ด์. ๊ณ์ฝ์ ์ฐ๊ธฐ ์ ์ ์ง์ฃผ์ธํํ ์ ๋๋ก ๋ฌผ์ด๋ณด์ง ์์์ ๋์ค์ ๋ณด์ฆ๊ธ ์ผ๋ถ๋ฅผ ๋ชป ๋ฐ์ ๋ปํ๋ ๊ฑฐ๊ฑฐ๋ ์. ๊ทธ๋ ์ผ๋ง๋ ๋ฉ๋ถ์ด์๋์ง ๋ชจ๋ฅด๋๋ฐ, ๊ทธ ๊ฒฝํ ์ดํ๋ก ์ด์ชฝ ๊ณต๋ถ๋ฅผ ์ข ์ด์ฌํ ํ๊ฒ ๋์ด์.์์ฆ ์ฃผ๋ณ์ ์ด์ง์ด๋ ์ด์ฌ ์๊ธฐ๊ฐ ๋ถ์ฉ ๋ง์์ง๋ฉด์ ์์ธ ๊ณ์ฝ ๊ด๋ จ ์ง๋ฌธ์ ์์ฃผ ๋ฐ๋ ํธ์ด์์. ๊ทธ๋๋ง๋ค ๋๋ ...", + "articleType": "analysis" + }, + { + "post_id": "2026-07-02_์คํ๋ฒ ์ค์ฌ์ด๋ ์ค๋์ฒ์์จ๋ดค๋๋๋ชฐ๋๋๊ฒ๋ค_dd812e67", + "keyword": "์คํ๋ฒ ์ค ์ฌ์ด๋ ์ค๋ ์ฒ์ ์จ๋ดค๋๋ ๋ชฐ๋๋ ๊ฒ๋ค", + "title": "์คํ๋ฒ ์ค ์ฌ์ด๋ ์ค๋ ์ฒ์ ์จ๋ดค๋๋ ๋ชฐ๋๋ ๊ฒ๋ค (2026 ์์ง ํ๊ธฐ)", + "status": "published", + "source": "auto", + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ", + "blogUrl": "https://hogugolfntraval.blogspot.com/2026/07/2026_01764391888.html", + "errorMessage": null, + "createdAt": "2026-07-02T00:00:00", + "publishedAt": "2026-07-02T00:00:00", + "lastAttemptAt": "2026-07-02T00:00:00", + "attempts": 1, + "runNumber": 0, + "wordCount": 2926, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "์คํ๋ฒ ์ค", + "์ฌ์ด๋ ์ค๋", + "์คํ๋ฒ ์ค์ฑ", + "๋ชจ๋ฐ์ผ์ฃผ๋ฌธ", + "์นดํ์ฑ", + "์คํ๋ฒ ์ค๋ฆฌ์๋", + "์ฌ์ด๋ ์ค๋์ฌ์ฉ๋ฒ" + ], + "metaDescription": "์คํ๋ฒ ์ค ์ฌ์ด๋ ์ค๋ ์ฒ์ ์จ๋ณธ ์์ง ํ๊ธฐ์ ๋๋ค. ์ฒ์์ ํท๊ฐ๋ ธ๋ ๋งค์ฅ ์ ํ, ํฝ์ ํ์ด๋ฐ, ์ฆ๊ฒจ์ฐพ๊ธฐ ์ปค์คํ ์ ์ฅ ์ค์๊น์ง ์ค์ ๊ฒฝํ ๊ทธ๋๋ก 2026๋ ๊ธฐ์ค์ผ๋ก ์ ๋ฆฌํ์ด์.", + "contentPreview": "์ ์ฌ์ค ์คํ๋ฒ ์ค๋ฅผ ๊ฝค ์์ฃผ ๊ฐ๋ ํธ์ธ๋ฐ์, ์ด์ํ๊ฒ ์ฌ์ด๋ ์ค๋๋ ๊ณ์ ๋ฏธ๋ค์์ด์. ์ค ์๊ธฐ ๊ท์ฐฎ๋ค๋ ๊ฑด ์์๋๋ฐ, ์ฑ ๊น๊ณ ๋ญ๊ฐ ์ธํ ํ๋ ๊ฒ ๋ ๊ท์ฐฎ์ ๊ฒ ๊ฐ์์์. ๊ทธ๋ฅ ๊ณ์ฐ๋ ์์์ \"์์ด์ค ์๋ฉ๋ฆฌ์นด๋ ธ ๊ทธ๋๋ฐ์\" ํ๊ณ ๋๋ด๋ ๊ฒ ๋ ํธํ์ง ์๋ ์ถ๊ธฐ๋ ํ๊ณ .๊ทผ๋ฐ ์ง๋๋ฌ์ ๋ฑ ์ํฉ์ด ํฐ์ก์ด์. ์ฃผ๋ง ์ค์ ์ ๊ฐ๋จ ์คํ๋ฒ ์ค ๊ฐ๋ค๊ฐ ๋๊ธฐ ์ค์ด ์ง์ง ๋ฌธ ๋ฐ๊น์ง...", + "articleType": "review" + }, + { + "post_id": "2026-07-02_์ง์ ๊ฐ๋ดค๋๋์ค๋งํ์ ์ฃผ์ ๋ช ์นดํํ๊ธฐ_93f7e7bc", + "keyword": "์ง์ ๊ฐ๋ดค๋๋ ์ค๋งํ ์ ์ฃผ ์ ๋ช ์นดํ ํ๊ธฐ", + "title": "์ง์ ๊ฐ๋ดค๋๋ ์ค๋งํ ์ ์ฃผ ์ ๋ช ์นดํ ํ๊ธฐ (2026๋ ์์ง ๊ฒฝํ)", + "status": "published", + "source": "auto", + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ", + "blogUrl": "https://hogugolfntraval.blogspot.com/2026/07/2026_02001614086.html", + "errorMessage": null, + "createdAt": "2026-07-02T00:00:00", + "publishedAt": "2026-07-02T00:00:00", + "lastAttemptAt": "2026-07-02T00:00:00", + "attempts": 1, + "runNumber": 0, + "wordCount": 3057, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "์ ์ฃผ์นดํ", + "์ ์ฃผ์ฌํ", + "์นดํํ๊ธฐ", + "์ ์ฃผํซํ", + "์ ์ฃผ์นดํ์ถ์ฒ", + "์ ์ฃผ์ ๋ช ์นดํ", + "์ฌํํ๊ธฐ" + ], + "metaDescription": "์ง์ ๊ฐ๋ดค๋๋ ์ค๋งํ ์ ์ฃผ ์ ๋ช ์นดํ ํ๊ธฐ๋ฅผ ์์งํ๊ฒ ์๋๋ค. ์ธ์คํ ์ฌ์ง๊ณผ ์ค์ ์ฐจ์ด, 1์๊ฐ ์ด์ ๋๊ธฐ, ๊ฐ๊ฒฉ ๋๋น ๋ง์กฑ๋๊น์ง 2026๋ 6์ ์ค๊ฒฝํ ๊ธฐ๋ก.", + "contentPreview": "์ง๋ 6์ ๋ง, ์ ์ฃผ๋ ์ฌํ์ ๋ค๋ ์์ด์. ์งง๊ฒ๋ ๋ชป ๊ฐ๋ ์ฑ๊ฒฉ์ด๋ผ ์ด๋ฒ์ 3๋ฐ 4์ผ๋ก ์ก์๊ณ , ๋ฏธ๋ฆฌ ์ธ์คํ๊ทธ๋จ์ด๋ ๋ธ๋ก๊ทธ ๋ค์ ธ์ '๋ฌด์กฐ๊ฑด ๊ฐ์ผ ํ ์นดํ' ๋ชฉ๋ก์ ๊ผผ๊ผผํ๊ฒ ๋ฝ์๋์ฃ . ์ฌ์ง์ด ๋๋ฌด ์๋ป์ ์ถ๋ฐ ์ ๋ถํฐ ์ค๋ ๊ณ ๋ง ๊ทธ๋ฌ๋๋ฐ์. ๊ทผ๋ฐ ๋ง์ ๊ฐ๋ณด๊ณ ๋์... ์์งํ ์ข ํํํ์ด์. ์ ๋ถ ๋ค ๊ทธ๋ฌ๋ ๊ฑด ์๋๋ฐ, ์ธํฐ๋ท์์ ๊ทน์ฐฌ์ ๋ฐ๋ ์นดํ ๋ช ๊ตฐ๋ฐ๊ฐ ...", + "articleType": "review" + }, + { + "post_id": "2026-07-02_๋ ธ์ ์ฒ์์์ํ ๋์ ์ผ๋ง์ดํ๋์ค์๋ด_6bd9a482", + "keyword": "๋ ธ์ ์ฒ์ ์์ํ ๋ ์ ์ผ ๋ง์ด ํ๋ ์ค์๋ด", + "title": "๋ ธ์ ์ฒ์ ์์ํ ๋ ์ ๊ฐ ์ ์ง๋ ๋ ์ค์๋ค (2026๋ ์์ง ํ๊ธฐ)", + "status": "published", + "source": "auto", + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ", + "blogUrl": "https://hogugolfntraval.blogspot.com/2026/07/2026_0716168053.html", + "errorMessage": null, + "createdAt": "2026-07-02T00:00:00", + "publishedAt": "2026-07-02T00:00:00", + "lastAttemptAt": "2026-07-02T00:00:00", + "attempts": 1, + "runNumber": 0, + "wordCount": 2386, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "๋ ธ์ ", + "๋ ธ์ ์ด๋ณด", + "๋ ธ์ ์์", + "๋ ธ์ ์ค์", + "๋ ธ์ ํ", + "์์ฐ์ฑ์ฑ", + "๋ ธ์ ์ฌ์ฉ๋ฒ" + ], + "metaDescription": "๋ ธ์ ์ฒ์ ์์ํ ๋ ์ ๊ฐ ์ง์ ๊ฒช์ ์ค์๋ค์ ์์งํ๊ฒ ์ ๋ฆฌํ์ด์. ์๋ฒฝํ ์์คํ ๋ง๋ค๊ธฐ, ๊ธฐ๋ฅ ๋ค ์ตํ๊ณ ์ฐ๊ธฐ, ๋จ์ ํ ํ๋ฆฟ ๊ทธ๋๋ก ์ฐ๊ธฐ ๋ฑ ์ธ ๋ฒ ํฌ๊ธฐํ๊ณ ์์ผ ๊นจ๋ฌ์ ๊ฒ๋ค์ ๋๋ค.", + "contentPreview": "๋ ธ์ ์ ์ฒ์ ๊น์๋ ๊ฒ ํ 3๋ ์ ์ด์๋๋ฐ์, ๊ทธ๋ ์ ๋ ์ง์ง ์ผ์ฌ์ฐจ๊ฒ ์์ํ๊ฑฐ๋ ์. ์ ํ๋ธ์์ ๋ฉ์ง ๋ ธ์ ๋์๋ณด๋ ์์ ๋ณด๊ณ '๋๋ ์ ๋ ๊ฒ ๋ง๋ค์ด์ผ์ง' ํ๋ฉด์ ํด๊ทผํ๊ณ ๋ ์๊ฐ์ฉ ๋ถ์ก๊ณ ์์์ด์. ๊ทผ๋ฐ ๊ฒฐ๊ตญ ํ ๋ฌ๋ ์ ๋ผ์ ๋ ธ์ ์ฑ์ ๊ฑฐ์ ์ ์ด๊ฒ ๋๊ณ , 6๊ฐ์ ๋ค์ '์, ์ด ์ฑ ์ ๊น์๋๋ผ'๊ฐ ๋์ฃ .๊ทธ ๋ค๋ก ๋ ๋ฒ ๋ '์ฌ์์'์ ํ๊ณ ์. ๊ทธ๋ฌ๋ฉด์ ...", + "articleType": "analysis" + }, + { + "post_id": "2026-07-02_์ฃผ์์ฒ์์์ํ ๋์ ์ง๋ ๋5๊ฐ์ง์ค์_92ca4844", + "keyword": "์ฃผ์ ์ฒ์ ์์ํ ๋ ์ ์ง๋ ๋ 5๊ฐ์ง ์ค์", + "title": "์ฃผ์ ์ฒ์ ์์ํ ๋ ์ ์ง๋ ๋ 5๊ฐ์ง ์ค์, ์์งํ ํธ์ด๋์ต๋๋ค (2026๋ )", + "status": "published", + "source": "auto", + "blogId": "blog1", + "blogName": "๊ธฐ๋ณธ ๋ธ๋ก๊ทธ", + "blogUrl": "https://hoguwhat1.blogspot.com/2026/07/5-2026.html", + "errorMessage": null, + "createdAt": "2026-07-02T00:00:00", + "publishedAt": "2026-07-02T00:00:00", + "lastAttemptAt": "2026-07-02T00:00:00", + "attempts": 1, + "runNumber": 0, + "wordCount": 1743, + "faqCount": 5, + "category": "๊ธ์ต", + "labels": [ + "์ฃผ์์ ๋ฌธ", + "์ฃผ์์ค์", + "์ฃผ์์ด๋ณด", + "์ฌํ ํฌ", + "์ฃผ์๊ณต๋ถ", + "์์ ", + "๋ถ์ฐํฌ์" + ], + "metaDescription": "์ฃผ์ ์ฒ์ ์์ํ ๋ ์ ์ง๋ ๋ 5๊ฐ์ง ์ค์๋ฅผ ์์งํ๊ฒ ํธ์ด๋์ต๋๋ค. ๋ชฐ๋นต, ์ ํ๋ธ ์ถ์ฒ ์ข ๋ชฉ ๋ฐ๋ผ์ฌ๊ธฐ, ์์ ์คํจ, ์ฌ๋ฌด์ ํ ๋ฌด์๊น์ง. ์ง์ ๊ฒฝํํ ์คํจ๋ด์ผ๋ก ์ ๋ฆฌํ์ด์.", + "contentPreview": "์ด ๊ธ์ ์ฐ๊ฒ ๋ ๊ฑด ์์ ํ ํ๋ฐฐ ๋๋ฌธ์ด์์. ์ผ๋ง ์ ์ ํ์ฌ ํ๋ฐฐ๊ฐ \"ํ, ์ ์์ฆ ์ฃผ์ ์์ํ๋๋ฐ ๋ฒ์จ -15%์์\"๋ผ๊ณ ํ๋๋ผ๊ณ ์. ๊ทผ๋ฐ ์ ๊ฐ ๊ทธ ๋ง์ ๋ฃ์๋ง์ ๋ฐ๋ก ์์์ด์. ์ ๊ฐ ๋ฑ ๊ทธ ๊ธธ์ ๊ฑธ์๊ฑฐ๋ ์. ์ ๋ ์ฒ์ ์ฃผ์ ์์ํ ๋ ๋น์ทํ ์ค์๋ฅผ ๋ฐ๋ณตํ๋ฉด์ ๊ฝค ์ค๋ซ๋์ ์์ค์ ๋ดค์ด์. ๊ทธ๋ ๋๊ตฐ๊ฐ ์์งํ๊ฒ ๋งํด์คฌ๋ค๋ฉด ์ผ๋ง๋ ์ข์์๊น ์ถ์ด์, ์ด๋ฒ์ ...", + "articleType": "analysis" + }, + { + "post_id": "2026-07-02_๋ฌด์ธ๋์บ ํ์ง์ ๊ฐ๋ดค๋๋์๋ฌด๋๋ง์ํด์ค๊ฒ๋ค_96df821a", + "keyword": "๋ฌด์ธ๋ ์บ ํ ์ง์ ๊ฐ๋ดค๋๋ ์๋ฌด๋ ๋ง ์ ํด์ค ๊ฒ๋ค", + "title": "๋ฌด์ธ๋ ์บ ํ ์ง์ ๊ฐ๋ดค๋๋ ์๋ฌด๋ ๋ง ์ ํด์ค ๊ฒ๋ค (2026 ์์ง ํ๊ธฐ)", + "status": "published", + "source": "auto", + "blogId": "blog1", + "blogName": "๊ธฐ๋ณธ ๋ธ๋ก๊ทธ", + "blogUrl": "https://hoguwhat1.blogspot.com/2026/07/2026_01055062597.html", + "errorMessage": null, + "createdAt": "2026-07-02T00:00:00", + "publishedAt": "2026-07-02T00:00:00", + "lastAttemptAt": "2026-07-02T00:00:00", + "attempts": 1, + "runNumber": 0, + "wordCount": 2725, + "faqCount": 5, + "category": "์ฌํ", + "labels": [ + "๋ฌด์ธ๋์บ ํ", + "์บ ํํ๊ธฐ", + "๋ฌด์ธ๋", + "๊ตญ๋ด์บ ํ", + "์ค์ง์บ ํ", + "์บ ํ์ค๋น๋ฌผ", + "1๋ฐ2์ผ์บ ํ" + ], + "metaDescription": "๋ฌด์ธ๋ ์บ ํ ์ง์ ๋ค๋ ์จ 30๋ ์ง์ฅ์ธ์ ์์ง ํ๊ธฐ. ์ ํ๋ธ์ ์ ๋์ค๋ ๋ฐค 12์๊ฐ, ๋ฌผ ๋ถ์กฑ, ๋ชจ๊ธฐ ๋ฌธ์ ์ 2026๋ ํ๊ฐ ์ ์ฐจ๊น์ง ์๋ฌด๋ ๋ง ์ ํด์ค ๊ฒ๋ค๋ง ์ ๋ฆฌํ์ด์.", + "contentPreview": "์์งํ ๋งํ๋ฉด, ์ ๋ ์ ํ๋ธ ์์ ๋ช ๊ฐ ๋ณด๊ณ '์ด ์ ๋๋ฉด ๋๊ฒ ์ง' ์ถ์์ด์. ๋ฉ์ง ์ผ๋ชฐ, ์๋ฌด๋ ์๋ ํด๋ณ, ๋ชจ๋ฅ๋ถ ์์์ ํผ์๋ง์ ์๊ฐ... ๋ญ ๊ทธ๋ฐ ๊ฑฐ ๊ธฐ๋ํ์ฃ . ๊ทผ๋ฐ ๋ง์ ๋ฌด์ธ๋ ์บ ํ์ ๋ค๋ ์ค๊ณ ๋์ ๋๋ ๊ฑด, ์ ํ๋ฒ๋ค์ด ํธ์ง์ผ๋ก ์๋ผ๋ธ ๊ทธ 6~8์๊ฐ์ด ์ง์ง ๋ฌด์ธ๋ ์ํ์ ์ ๋ถ๋ผ๋ ๊ฑฐ์์ด์.์ ๊ฐ ๋ค๋ ์จ ๊ณณ์ ๊ฒฝ๋จ ํต์ ์ธ๊ทผ ์์ฌ์ด์์ด์. ์ง์ธ ๋ ๋ช ...", + "articleType": "review" + }, + { + "post_id": "2026-07-02_ํ๋ฆฌ๋์1๋ ์ฐจ์ธ๊ธ์ ๊ณ ์์งํ๊ธฐ_4389fdb2", + "keyword": "ํ๋ฆฌ๋์ 1๋ ์ฐจ ์ธ๊ธ์ ๊ณ ์์ง ํ๊ธฐ", + "title": "ํ๋ฆฌ๋์ 1๋ ์ฐจ ์ธ๊ธ์ ๊ณ ์์ง ํ๊ธฐ โ 2026๋ ์ ์ง์ ํด๋ดค์ด์", + "status": "published", + "source": "auto", + "blogId": "blog1", + "blogName": "๊ธฐ๋ณธ ๋ธ๋ก๊ทธ", + "blogUrl": "https://hoguwhat1.blogspot.com/2026/07/1-2026.html", + "errorMessage": null, + "createdAt": "2026-07-02T00:00:00", + "publishedAt": "2026-07-02T00:00:00", + "lastAttemptAt": "2026-07-02T00:00:00", + "attempts": 1, + "runNumber": 0, + "wordCount": 2935, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "ํ๋ฆฌ๋์์ธ๊ธ์ ๊ณ ", + "์ข ํฉ์๋์ธ", + "1๋ ์ฐจํ๋ฆฌ๋์", + "3.3%์์ฒ์ง์", + "ํํ์ค์ ๊ณ ", + "๋ถ์ ์ธ๊ธ", + "๋จ์๊ฒฝ๋น์จ" + ], + "metaDescription": "ํ๋ฆฌ๋์ 1๋ ์ฐจ ์ง์ ์ข ํฉ์๋์ธ ์ ๊ณ ํด๋ณธ ์์ง ํ๊ธฐ. 3.3% ๋์ผ๋ฉด ๋์ธ ์ค ์์๋ ์ค์, ์ ์ข ์ฝ๋ ์๋ชป ์ ํํ ๊ฒฝํ, ํ๊ธ vs ์ถ๊ฐ๋ฉ๋ถ ๊ฒฐ๊ณผ๊น์ง 2026๋ ๊ธฐ์ค์ผ๋ก ์์งํ๊ฒ ์๋๋ค.", + "contentPreview": "์๋ ์ด๋ง๋์ฏค, ์ ๋ ์ฒ์์ผ๋ก ์ข ํฉ์๋์ธ ์ ๊ณ ๋ฅผ ํผ์ ํด๋ดค์ด์. ํ์ฌ ๋ค๋๋ฉด์ ๋ถ์ ์ผ๋ก ํ๋ฆฌ๋์๋ฅผ ์์ํ ์ง ๋ฑ 1๋ ์ด ๋์ ๋์๊ฑฐ๋ ์. ๊ทธ์ ๊น์ง๋ ๊ทธ๋ฅ ํ์ฌ์์ ๋ค ์ฒ๋ฆฌํด์ฃผ๋๊น ์ธ๊ธ์ด ๋ญ์ง ์์งํ ๋ชฐ๋์ด์. ๊ทผ๋ฐ 3.3% ๋ผ๊ณ ๋ฐ์ ํ๋ฆฌ๋์ ์์ ์ด ์์ด๋๊น '์ด๊ฑฐ ์ด๋ป๊ฒ ํด์ผ ํ์ง?'๋ผ๋ ์๊ฐ์ด ๋ค๊ธฐ ์์ํ๊ณ , ๋ง๋งํ ์ํ๋ก ๊ตฌ๊ธ์ ๋ค์ง๊ธฐ ์์ํ์ฃ .๊ฒ์ํ...", + "articleType": "review" + }, + { + "post_id": "2026-07-02_๊ตญ๋ด์ฌํํผ์์ฒ์๊ฐ๋ดค๋๋๋ฌ๋๋์ _276c8db4", + "keyword": "๊ตญ๋ด ์ฌํ ํผ์ ์ฒ์ ๊ฐ๋ดค๋๋ ๋ฌ๋๋ ์ ", + "title": "๊ตญ๋ด ์ฌํ ํผ์ ์ฒ์ ํด๋ดค๋๋ ์ง์ง ๋ฌ๋๋ ๊ฒ๋ค (2026๋ ์์ง ํ๊ธฐ)", + "status": "published", + "source": "auto", + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ", + "blogUrl": "https://hogugolfntraval.blogspot.com/2026/07/2026_0424772785.html", + "errorMessage": null, + "createdAt": "2026-07-02T00:00:00", + "publishedAt": "2026-07-02T00:00:00", + "lastAttemptAt": "2026-07-02T00:00:00", + "attempts": 1, + "runNumber": 0, + "wordCount": 3690, + "faqCount": 5, + "category": "์ฌํ", + "labels": [ + "๊ตญ๋ด์ฌํ", + "ํผ์์ฌํ", + "ํผ์๊ตญ๋ด์ฌํ", + "๊ฒฝ์ฃผ์ฌํ", + "1์ธ์ฌํ", + "ํผ์ฌ", + "๊ตญ๋ด์ฌํํ๊ธฐ" + ], + "metaDescription": "๊ตญ๋ด ์ฌํ ํผ์ ์ฒ์ ๊ฐ๋ดค๋๋ ์์๊ณผ ๋ฌ๋๋ ๊ฒ๋ค ์์งํ ์จ๋ดค์ด์. ๋น์ฉ์ด ๋ ๋๋ ์ด์ , ์๊ฐ์ด ๋จ์๋๋ ์ด์ , ๋ธ๋ก๊ทธ ์ถ์ฒ ๋ง์ง์ ํ์ค๊น์ง 2026๋ ์ง์ ๊ฒฝํ ๊ธฐ๋ฐ ํ๊ธฐ์ ๋๋ค.", + "contentPreview": "์์งํ ๋งํ๋ฉด, ์ ํผ์ ์ฌํ์ด๋ผ๋ ๊ฑธ ์ง์ง๋ก ํด๋ณธ ๊ฒ ์ฌํด ์ด๊ฐ ์ฒ์์ด์์. ์๋ฅธ๋ค์ฏ ์ด์. ์๊ธฐ์ฃ ? ์ฃผ๋ณ์์ ๋ค๋ค ํผ์ฌ(ํผ์ ์ฌํ) ํด๋ดค๋๊ณ ๋ฌผ์ด๋ณผ ๋๋ง๋ค \"์ด, ๋ญ ๊ฐ๋...\"์ด๋ผ๊ณ ์ผ๋ฒ๋ฌด๋ ธ๋๋ฐ, ์ฌ์ค ํญ์ ๋๊ตฐ๊ฐ๋ ๊ฐ์ด ๋ค๋ ๊ฑฐ๋ ์. ํ์ฌ ์ํฌ์์ด๋ , ์น๊ตฌ๋ค์ด๋์ด๋ , ์ฐ์ธ์ด๋์ด๋ . ๊ทธ๋ฌ๋ค ์ฌํด 4์์ ๊ฐ์๊ธฐ ์ฃผ๋ง์ด ํต์งธ๋ก ๋น์์ด์. ๊ฐ์ด ๊ฐ๊ธฐ๋ก ํ๋ ...", + "articleType": "travel_guide" + }, + { + "post_id": "2026-07-02_์ ๋์ผ์ค์น์ธ์ง์ ํด๋ดค๋๋๊ฑธ๋ฆฐ์๊ฐํ์ค_9afd73ef", + "keyword": "์ ๋์ผ์ค ์น์ธ ์ง์ ํด๋ดค๋๋ ๊ฑธ๋ฆฐ ์๊ฐ ํ์ค", + "title": "์ ๋์ผ์ค ์น์ธ ์ง์ ํด๋ดค๋๋ ๊ฑธ๋ฆฐ ์๊ฐ ํ์ค (2026๋ ํ๊ธฐ)", + "status": "published", + "source": "auto", + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ", + "blogUrl": "https://hogugolfntraval.blogspot.com/2026/07/2026_0987219550.html", + "errorMessage": null, + "createdAt": "2026-07-02T00:00:00", + "publishedAt": "2026-07-02T00:00:00", + "lastAttemptAt": "2026-07-02T00:00:00", + "attempts": 1, + "runNumber": 0, + "wordCount": 2906, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "์ ๋์ผ์ค์น์ธ", + "์ ๋์ผ์ค์น์ธ๊ธฐ๊ฐ", + "๊ตฌ๊ธ์ ๋์ผ์ค", + "๋ธ๋ก๊ทธ์์ตํ", + "์ ๋์ผ์ค์ ์ฒญ", + "์ ๋์ผ์ค๊ฑฐ์ ", + "๋ธ๋ก๊ทธ์ด์" + ], + "metaDescription": "์ ๋์ผ์ค ์น์ธ ์ง์ ๋ ๋ฒ ํด๋ณธ ๊ฒฝํ ๊ณต์ ํฉ๋๋ค. ์ฒซ ๋ฒ์งธ ๊ฑฐ์ ํ ์ฌ๋์ ํด์ ํต๊ณผํ ๊ณผ์ , ์ค์ ๊ฑธ๋ฆฐ ์๊ฐ, ๊ธฐ๋์ ๋ฌ๋๋ ๊ฒ๋ค์ ์์งํ๊ฒ ์ ๋ฆฌํ์ด์. 2026๋ ๊ธฐ์ค ํ์ค์ ์ธ ํ๊ธฐ์ ๋๋ค.", + "contentPreview": "์์งํ ๋งํ๋ฉด, ์ ๋ ํ๋ '์ ๋์ผ์ค ์น์ธ์ด ๋ญ๊ฐ ์ด๋ ต๊ฒ ์ด' ํ๋ ์ฌ๋์ด์์. ๋ธ๋ก๊ทธ ๊ธ ๋ช ๊ฐ ์ฌ๋ ค๋๊ณ ์ ์ฒญํ๋ฉด ๋ฐ๋ก ๋๋ ์ค ์์๊ฑฐ๋ ์. ๊ทผ๋ฐ ํ์ค์ ์ข ๋ฌ๋์ด์. ์ฒซ ๋ฒ์งธ ์ ์ฒญ ๋ ๊ฑฐ์ ํต๋ณด๋ฅผ ๋ฐ๊ณ ๋์์ผ ์ ๋๋ก ๋ญ๊ฐ๋ฅผ ์ฐพ์๋ณด๊ธฐ ์์ํ๋๋ฐ, ๊ทธ๋๋ถํฐ๊ฐ ์ง์ง ์์์ด์์ด์. ์ด ๊ธ์ ์ฐ๊ฒ ๋ ๊ฑด, ์ ์ฒ๋ผ '์ ๋์ผ์ค ์น์ธ ๊ฑธ๋ฆฐ ์๊ฐ'์ ๊ฒ์ํ๋ฉด์ ๋์ค๋ ๊ธ...", + "articleType": "review" + }, + { + "post_id": "2026-07-02_20๋์ฒซ์ง์ฅํด์ฌํ์์งํํ๋ฌ์ํ๋น๊ณต๊ฐ_9a685dd0", + "keyword": "20๋ ์ฒซ ์ง์ฅ ํด์ฌ ํ ์์งํ ํ ๋ฌ ์ํ๋น ๊ณต๊ฐ", + "title": "20๋ ์ฒซ ์ง์ฅ ํด์ฌ ํ ํ ๋ฌ ์ํ๋น, ์ง์ ๊ฒช์ด๋ณด๋ ์ด๋ฌ์ด์ (2026)", + "status": "published", + "source": "auto", + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ", + "blogUrl": "https://hogugolfntraval.blogspot.com/2026/07/20-2026.html", + "errorMessage": null, + "createdAt": "2026-07-02T00:00:00", + "publishedAt": "2026-07-02T00:00:00", + "lastAttemptAt": "2026-07-02T00:00:00", + "attempts": 1, + "runNumber": 0, + "wordCount": 3362, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "ํด์ฌํ์ํ๋น", + "20๋ํด์ฌ", + "์ฒซ์ง์ฅํด์ฌ", + "ํด์ฌ์ค๋น", + "์ํ๋น๊ณต๊ฐ", + "์์ทจ์ํ๋น", + "์ค์ ๊ธ์ฌ" + ], + "metaDescription": "20๋ ์ฒซ ์ง์ฅ ํด์ฌ ํ ํ ๋ฌ ์ํ๋น๊ฐ ์ค์ ๋ก ์ผ๋ง๋ ๋๋์ง ์ง์ ๊ฒช์ ๊ฒฝํ์ ๋ฐํ์ผ๋ก ์์งํ๊ฒ ๊ณต๊ฐํฉ๋๋ค. ๊ฑด๊ฐ๋ณดํ ํญํ๋ถํฐ ์๋น, ์จ์ ๊ณ ์ ๋น๊น์ง ์์ธ ์์ทจ ๊ธฐ์ค ํ์ค์ ์ธ ๊ธ์ก์ ์ ๋ฆฌํ์ด์.", + "contentPreview": "์ ์ฃผ๋ณ์ ์ต๊ทผ ๋ค์ด ๋ถ์ฉ ๋ง์์ง ๊ฒ ์์ด์. ์ฒซ ์ง์ฅ์ 1~2๋ ๋ง์ ๊ทธ๋ง๋๋ ์น๊ตฌ๋ค์ด์. ์ ๋ ๋ช ๋ ์ ์ ๋น์ทํ ์๊ธฐ๋ฅผ ๊ฒช์๊ณ , ์์ฆ ๋ค์ด ๊ทธ๋ ์๊ฐ์ด ์๊พธ ๋๋๋ผ๊ณ ์. ํนํ ํ ๋ฌ ์ ์ ํ์ฌ๋ฅผ ๊ทธ๋ง๋ ์น๊ตฌ๊ฐ \"์ํ๋น๊ฐ ์ผ๋ง๋ ๋๋์ง ๊ฐ์ด ์์ด์ ๋๋ฌด ๋ฌด์ญ๋ค\"๊ณ ์ฐ๋ฝ์ด ์์ ๋, ์ ๋ ๊ทธ๋ ์ ์๋ฌด๋ ์ด๊ฑธ ๊ตฌ์ฒด์ ์ผ๋ก ์๊ธฐ ์ ํด์คฌ์๊น ์ถ์์ด์.์ธํฐ๋ท์...", + "articleType": "analysis" + }, + { + "post_id": "2026-07-02_๊ตญ๋ฏผ๋ด์ผ๋ฐฐ์์นด๋์ฒ์์ ์ฒญํ ๋๋ชฐ๋๋๊ฒ_21d62563", + "keyword": "๊ตญ๋ฏผ๋ด์ผ๋ฐฐ์์นด๋ ์ฒ์ ์ ์ฒญํ ๋ ๋ชฐ๋๋ ๊ฒ", + "title": "๊ตญ๋ฏผ๋ด์ผ๋ฐฐ์์นด๋ ์ฒ์ ์ ์ฒญํ ๋ ๋ชฐ๋๋ ๊ฒ๋ค (2026๋ ์ง์ ๊ฒช์ ํ๊ธฐ)", + "status": "published", + "source": "auto", + "blogId": "blog1", + "blogName": "๊ธฐ๋ณธ ๋ธ๋ก๊ทธ", + "blogUrl": "https://hoguwhat1.blogspot.com/2026/07/2026_0107746735.html", + "errorMessage": null, + "createdAt": "2026-07-02T00:00:00", + "publishedAt": "2026-07-02T00:00:00", + "lastAttemptAt": "2026-07-02T00:00:00", + "attempts": 1, + "runNumber": 0, + "wordCount": 3122, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "๊ตญ๋ฏผ๋ด์ผ๋ฐฐ์์นด๋", + "๋ด์ผ๋ฐฐ์์นด๋์ ์ฒญ", + "๋ด์ผ๋ฐฐ์์นด๋ํ๊ธฐ", + "์ง์ ํ๋ จ", + "์ฌ์ง์ํ๋ จ", + "๊ณ ์ฉ24", + "HRD-Net" + ], + "metaDescription": "๊ตญ๋ฏผ๋ด์ผ๋ฐฐ์์นด๋ ์ฒ์ ์ ์ฒญํ ๋ ์ง์ ๊ฒช์ ํจ์ ๋ค ์ ๋ฆฌํ์ด์. ์๊ฒฉ ์คํด๋ถํฐ ์นด๋ ์๋ น ํ ์ฃผ์์ฌํญ, ํ๋ จ๋น ์๋น ๋ถ๋ด ๊ณ์ฐ๊น์ง 2026๋ ๊ธฐ์ค ์ค์ ๊ฒฝํ ํ๊ธฐ์ ๋๋ค.", + "contentPreview": "์ด ๊ธ์ ์ฐ๊ฒ ๋ ๊ณ๊ธฐ๊ฐ ์ข ์์ด์. ์ฌํด ์ด์ ์ ์์ ๋ ๊ตญ๋ฏผ๋ด์ผ๋ฐฐ์์นด๋๋ฅผ ์ ์ฒญํ๋๋ฐ, ๋ง์ ํด๋ณด๋๊น ์ธํฐ๋ท์์ ๋ฏธ๋ฆฌ ์ฝ์๋ ๊ฒ๋ค์ด๋ ์ค์ ๋ก ๋ค๋ฅธ ๋ถ๋ถ์ด ๊ฝค ์์๊ฑฐ๋ ์. ํ๋ฐฐ ์ง์ ํ ๋ช ๋ ๋น์ทํ ์๊ธฐ์ ์ ์ฒญํ๋ค๊ฐ ์ค๊ฐ์ ๋งํ์ ์ ํํ ๋ฌผ์ด์๋๋ฐ, ๊ทธ ์น๊ตฌ๋ ๋๊ฐ์ ๋ถ๋ถ์์ ํค๋งธ๋๋ผ๊ณ ์. '์ด๊ฑฐ ์ ๋ฆฌํด๋๋ฉด ๋์ค์ ๋๊ตฐ๊ฐํํ ๋์์ด ๋๊ฒ ๋ค' ์ถ์ด์ ํด๊ทผํ๊ณ ...", + "articleType": "analysis" + }, + { + "post_id": "2026-07-02_์ฟ ํกํํธ๋์ค3๊ฐ์์ง์ ํด๋ดค๋๋ํ์ค๊ณต๊ฐ_fd5a04eb", + "keyword": "์ฟ ํกํํธ๋์ค 3๊ฐ์ ์ง์ ํด๋ดค๋๋ ํ์ค ๊ณต๊ฐ", + "title": "์ฟ ํกํํธ๋์ค 3๊ฐ์ ์ง์ ํด๋ดค๋๋ ํ์ค ๊ณต๊ฐ (2026๋ ์์ง ํ๊ธฐ)", + "status": "published", + "source": "auto", + "blogId": "blog1", + "blogName": "๊ธฐ๋ณธ ๋ธ๋ก๊ทธ", + "blogUrl": "https://hoguwhat1.blogspot.com/2026/07/3-2026_01803084361.html", + "errorMessage": null, + "createdAt": "2026-07-02T00:00:00", + "publishedAt": "2026-07-02T00:00:00", + "lastAttemptAt": "2026-07-02T00:00:00", + "attempts": 1, + "runNumber": 0, + "wordCount": 1791, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "์ฟ ํกํํธ๋์ค", + "์ฟ ํกํํธ๋์คํ๊ธฐ", + "์ฟ ํกํํธ๋์ค์์ต", + "๋ถ์ ", + "๋ธ๋ก๊ทธ์์ต", + "์ ๋์ผ์ค๋์", + "์ฟ ํกํํธ๋์คํ์ค" + ], + "metaDescription": "์ฟ ํกํํธ๋์ค 3๊ฐ์ ์ง์ ํด๋ดค๋๋ ํ์ค ๊ณต๊ฐ โ ์ฒซ ๋ฌ 3,200์์์ ์์ํด ์ ์ฐ๊น์ง ๋ฐ๊ธฐ๊น์ง์ ์์งํ ๊ฒฝํ๋ด. ํธ๋ํฝ ์์ด ๋งํฌ๋ง ๊ณต์ ํ๋ฉด ์ด๋ป๊ฒ ๋๋์ง, 2026๋ ๊ธฐ์ค ๋ฌ๋ผ์ง ์ ๊น์ง ์ ๋ฆฌํ์ด์.", + "contentPreview": "์ฌ์ค ์ ๋ ๋ฐ์ ๋ฐ์ํ๋ฉด์ ์์ํ์ด์. ์๋ ๋ง์ฏค์ ํ์ฌ ๋๋ฃ๊ฐ \"์ผ ๋ ์ฟ ํกํํธ๋์ค๋ก ํ ๋ฌ์ ๋ช๋ง ์์ฉ ๋ค์ด์ค๋๋ผ\" ํ๋ ๋ง์ ๋ฃ๊ณ , ๋ญ ๊ทธ๋ฅ ๋งํฌ ๊ณต์ ํ๋ฉด ๋๋ ๊ฑฐ ์๋์ผ? ์ถ์ด์ ๊ฐ์ ํ๊ฑฐ๋ ์. ๊ทผ๋ฐ ๋ง์ 3๊ฐ์ ํด๋ณด๋๊น ์ ๊ฐ ๊ธฐ๋ํ๋ ๊ฑฐ๋ ๊ฝค ๋ฌ๋์ด์.๊ทธ๋์ ์ค๋์ ์ฟ ํกํํธ๋์ค 3๊ฐ์ ํด๋ณธ ์ ์ ํ์ค ํ๊ธฐ๋ฅผ ์ต๋ํ ์์งํ๊ฒ ์จ๋ณผ๊ฒ์. ์์ต ์ธ์ฆ ๊ฐ์ ...", + "articleType": "review" + }, + { + "post_id": "2026-07-02_๋ฏธ๋ผํด๋ชจ๋30์ผ์ค์ฒํ์์งํ๊ธฐ_dedb6047", + "keyword": "๋ฏธ๋ผํด๋ชจ๋ 30์ผ ์ค์ฒ ํ ์์ง ํ๊ธฐ", + "title": "๋ฏธ๋ผํด๋ชจ๋ 30์ผ ์ค์ฒ ํ ์์ง ํ๊ธฐ โ ๋ฌ๋ผ์ง ๊ฒ๊ณผ ์ ๋ฌ๋ผ์ง ๊ฒ", + "status": "published", + "source": "auto", + "blogId": "blog1", + "blogName": "๊ธฐ๋ณธ ๋ธ๋ก๊ทธ", + "blogUrl": "https://hoguwhat1.blogspot.com/2026/07/30.html", + "errorMessage": null, + "createdAt": "2026-07-02T00:00:00", + "publishedAt": "2026-07-02T00:00:00", + "lastAttemptAt": "2026-07-02T00:00:00", + "attempts": 1, + "runNumber": 0, + "wordCount": 3449, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "๋ฏธ๋ผํด๋ชจ๋", + "๋ฏธ๋ผํด๋ชจ๋ํ๊ธฐ", + "์์นจ๋ฃจํด", + "30์ผ์ฑ๋ฆฐ์ง", + "์ํ์ต๊ด", + "์๊ธฐ๊ณ๋ฐ", + "๊ธฐ์๋ฃจํด" + ], + "metaDescription": "๋ฏธ๋ผํด๋ชจ๋ 30์ผ ์ค์ฒ ํ๊ธฐ๋ฅผ ์์งํ๊ฒ ์ผ์ด์. ์ธ์์ด ๋ฐ๋์๋ค๋ ๋ง์ ์๊ณ , ์ค์ ๋ก ๋ฌ๋ผ์ง ๊ฒ๊ณผ ์ ๋ฌ๋ผ์ง ๊ฒ์ ๊ฒฝํ ๊ทธ๋๋ก ์ ๋ฆฌํ์ต๋๋ค. ๋ ๋ฒ ์คํจํ๋ ์ ๊ฐ ์ด๋ฒ์ ์ 30์ผ์ ์ฑ์ธ ์ ์์๋์ง๋ ํจ๊ป ๋ด์์ด์.", + "contentPreview": "์ ๊ฐ ๋ฏธ๋ผํด๋ชจ๋์ ์ฒ์ ์๋ํ ๊ฒ ๋ฒ์จ ์ธ ๋ฒ์งธ์์. ์ฒซ ๋ฒ์งธ๋ 2022๋ , ๋ ๋ฒ์งธ๋ 2024๋ . ๋ ๋ค 1์ฃผ์ผ๋ ๋ชป ๋ฒํ ผ๊ฑฐ๋ ์. ๊ทธ๋ฌ๋ค๊ฐ ์ฌํด 5์์ ํ์ฌ์์ ํฐ ํ๋ก์ ํธ๊ฐ ํ๋ ๋ง๋ฌด๋ฆฌ๋๋ฉด์, ๋ญ๊ฐ ์ํ ํจํด์ ๋ฆฌ์ ํ๊ณ ์ถ๋ค๋ ์๊ฐ์ด ๋ค์์ด์. ๋ง์นจ ํ์ฅ๋์ด \"์์นจ ๋ฃจํด์ด ์๊ธฐ๊ณ ๋์ ์ ๋ฌด ์ง์ค๋ ฅ์ด ๋ฌ๋ผ์ก๋ค\"๋ ๋ง์ ํ์๋ ๊ฑธ ๋ค์๊ณ , ๊ทธ ๋ง์ด ๊ณ์ ๋จธ...", + "articleType": "review" + }, + { + "post_id": "2026-06-30_ํฌ์ค์ฅPT๋๊ณ ํํธ๋ก๋ฐ๊พผํ์ฒด์ค๋ณํํ์ค_d6ea3de3", + "keyword": "ํฌ์ค์ฅ PT ๋๊ณ ํํธ๋ก ๋ฐ๊พผ ํ ์ฒด์ค ๋ณํ ํ์ค", + "title": "ํฌ์ค์ฅ PT ๋๊ณ ํํธ 6๊ฐ์, ์ฒด์ค ๋ณํ ํ์ค ์์ง ํ๊ธฐ (2026๋ )", + "status": "skipped", + "source": "auto", + "blogId": "blog1", + "blogName": "๊ธฐ๋ณธ ๋ธ๋ก๊ทธ", + "blogUrl": "https://hoguwhat1.blogspot.com/2026/07/pt-6-2026.html", + "errorMessage": "blog1 ์ฃผ์ ๊ฐํธ โ ๋ณด๊ด", + "createdAt": "2026-06-30T00:00:00", + "publishedAt": "2026-06-30T00:00:00", + "lastAttemptAt": "2026-06-30T00:00:00", + "attempts": 1, + "runNumber": 0, + "wordCount": 3074, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "ํํธ", + "ํฌ์ค์ฅPT", + "์ฒด์ค๊ฐ๋", + "ํํธ๋ฃจํด", + "PT vs ํํธ", + "30๋๋ค์ด์ดํธ", + "ํํธ์ฒด์ค๋ณํ" + ], + "metaDescription": "PT ๋๊ณ ํํธ๋ก ๋ฐ๊พผ ์ง 6๊ฐ์, ์ฒด์ค์ด ์ค์ ๋ก ์ด๋ป๊ฒ ๋ณํ๋์ง ์์งํ๊ฒ ์ ๋ฆฌํ์ด์. ์ฒ์์ ์คํ๋ ค ์ฌ๋๋ ์ฒด์ค์ด ๋ฌ๋ผ์ง ์ง์ง ์ด์ ์ ํํธ ์ ํ์ ํ์ค์ ์ง์ ๊ฒฝํ ๊ธฐ๋ฐ์ผ๋ก ์๊ธฐํด์.", + "contentPreview": "์๋ ๋ง์ ์ ๋ ๊ฝค ์ด๋ ค์ด ๊ฒฐ์ ์ ๋ด๋ ธ์ด์. 3๋ ๋๊ฒ ๋ค๋๋ ํฌ์ค์ฅ์ ๋๊ณ ํํธ๋ก ์์ ํ ์ ํํ๊ธฐ๋ก ํ ๊ฑฐ์์. ์ 15๋ง ์์ง๋ฆฌ PT 10ํ ํจํค์ง๋ฅผ ๋ฐ๋ณต ๊ฒฐ์ ํ๋ค ๋ณด๋ 1๋ ์ ๊ฑฐ์ 180๋ง ์์ด ๋๊ฐ๊ณ ์๋๋ผ๊ณ ์. ๊ฑฐ๊ธฐ๋ค ํด๊ทผ ํ ํฌ์ค์ฅ๊น์ง ์ด๋ํ๋ ์๊ฐ๋ง ์๋ณต 40๋ถ. ์์งํ \"์ด๊ฒ ์ง์ง ํจ์จ์ ์ธ ๊ฑด๊ฐ?\" ๋ผ๋ ์๋ฌธ์ด ๊ณ์ ์๊ฒผ์ด์. ์ฒ์์ ๊ทธ๋ฅ ๋...", + "articleType": "" + }, + { + "post_id": "2026-06-30_AI์ฝ๋ฉํด์ค์ ๋ก์จ๋ดค๋๋ํ๊ณ๊ฐ์์๋ค_8754b144", + "keyword": "AI ์ฝ๋ฉ ํด ์ค์ ๋ก ์จ๋ดค๋๋ ํ๊ณ๊ฐ ์์๋ค", + "title": "AI ์ฝ๋ฉ ํด 6๊ฐ์ ์จ๋ดค๋๋ฐ, ์์งํ ํ๊ณ๊ฐ ์์์ด์ (2026๋ ํ์ค ํ๊ธฐ)", + "status": "published", + "source": "auto", + "blogId": "blog1", + "blogName": "๊ธฐ๋ณธ ๋ธ๋ก๊ทธ", + "blogUrl": "https://hoguwhat1.blogspot.com/2026/06/ai-6-2026_01298829020.html", + "errorMessage": null, + "createdAt": "2026-06-30T00:00:00", + "publishedAt": "2026-06-30T00:00:00", + "lastAttemptAt": "2026-06-30T00:00:00", + "attempts": 1, + "runNumber": 0, + "wordCount": 3101, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "AI์ฝ๋ฉํด", + "GitHub Copilot", + "Cursor", + "๊ฐ๋ฐ์์์ฐ์ฑ", + "์ฝ๋ฉAIํ๊ธฐ", + "AI๊ฐ๋ฐ๋๊ตฌ", + "๋ ๊ฑฐ์์ฝ๋" + ], + "metaDescription": "AI ์ฝ๋ฉ ํด 6๊ฐ์ ์ง์ ์จ๋ณธ ๋ฐฑ์๋ ๊ฐ๋ฐ์์ ์์งํ ํ๊ธฐ. ๋ ๊ฑฐ์ ์ฝ๋์์์ ํ๊ณ, ์์ธ๋ก ์ ์ฉํ๋ ์ํฉ, ์ด๋ฐ ์ฌ๋์๊ฒ ๋ง๋๋ค/์ ๋ง๋๋ค๊น์ง ํ์ค์ ์ผ๋ก ์ ๋ฆฌํ์ด์.", + "contentPreview": "์๋ ์ฐ๋ง์ ํ์ฅ๋ํํ ๋ฐ์ฏค ๋ ๋ฐ๋ ค์ AI ์ฝ๋ฉ ํด์ ์ฒ์ ๋์ ํ์ด์. \"์ด๊ฑฐ ์ฐ๋ฉด ๊ฐ๋ฐ ์๋ ๋ ๋ฐฐ๋ ๋๋\"๋ผ๋ ๋ง์ ์๊ทผํ ๊ธฐ๋๋ ๋๊ณ ์. ์ ๋ ๋ฐฑ์๋ ๊ฐ๋ฐ์๋ก ์ผํ ์ง 8๋ ๋๋๋ฐ, ์์งํ ์ฒ์์ ์ข ๋ฌด์ํ์ด์. '์ด๊ฑธ ์ธ ์ ๋๋ฉด ์ค๋ ฅ์ด ๋ถ์กฑํ ๊ฑฐ ์๋๊ฐ' ํ๋ ๋ฌํ ์์กด์ฌ๋ ์์๊ฑฐ๋ ์. ๊ทผ๋ฐ ์ฃผ๋ณ์์ ํ๋๋ ์ฐ๊ธฐ ์์ํ๊ณ , ์ค์ ๋ก ์ ๋ฌด ์๋๊ฐ ๋ฌ๋ผ์ง...", + "articleType": "" + }, + { + "post_id": "2026-06-30_๊ฑด๊ฐ๊ฒ์ง๊ฒฐ๊ณผ์ด์์๊ฒฌ๋์์๋๋ด๊ฐํ๊ฒ_0d5866ea", + "keyword": "๊ฑด๊ฐ๊ฒ์ง ๊ฒฐ๊ณผ ์ด์์๊ฒฌ ๋์์ ๋ ๋ด๊ฐ ํ ๊ฒ", + "title": "๊ฑด๊ฐ๊ฒ์ง ๊ฒฐ๊ณผ ์ด์์๊ฒฌ ๋์์ ๋ ์ ๊ฐ ์ค์ ๋ก ํ ๊ฒ๋ค (2026๋ ๊ธฐ์ค)", + "status": "skipped", + "source": "auto", + "blogId": "blog1", + "blogName": "๊ธฐ๋ณธ ๋ธ๋ก๊ทธ", + "blogUrl": "https://hoguwhat1.blogspot.com/2026/06/2026_0410105439.html", + "errorMessage": "blog1 ์ฃผ์ ๊ฐํธ โ ๋ณด๊ด", + "createdAt": "2026-06-30T00:00:00", + "publishedAt": "2026-06-30T00:00:00", + "lastAttemptAt": "2026-06-30T00:00:00", + "attempts": 1, + "runNumber": 0, + "wordCount": 3250, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "๊ฑด๊ฐ๊ฒ์ง", + "์ด์์๊ฒฌ", + "๊ฐ์์น", + "์ง๋ฐฉ๊ฐ", + "์ฝ๋ ์คํ ๋กค", + "ํ์๊ด๋ฆฌ", + "๊ตญ๊ฐ๊ฑด๊ฐ๊ฒ์ง" + ], + "metaDescription": "๊ฑด๊ฐ๊ฒ์ง ๊ฒฐ๊ณผ ์ด์์๊ฒฌ ๋์์ ๋ ์ด๋ป๊ฒ ํด์ผ ํ ์ง ๋ชฐ๋ผ ๋ง๋งํ๋ 30๋ ์ง์ฅ์ธ์ด ์ค์ ๋ก ์์ง์ธ ๊ณผ์ ์ ์์งํ๊ฒ ์ ๋ฆฌํ์ด์. ์ด๋ ๊ณผ ๊ฐ์ผ ํ๋์ง, ๊ธฐ๋ค๋ฆฌ๋ ๋์ ๋ญ ํด์ผ ํ๋์ง, 6๊ฐ์ ํ ๋ฌ๋ผ์ง ์์น๊น์ง.", + "contentPreview": "์๋ 11์์ด์์ด์. ๊ตญ๊ฐ๊ฑด๊ฐ๊ฒ์ง ๊ฒฐ๊ณผ์ง๋ฅผ ๋ฐ์๋ค์๋๋ฐ '์ด์์๊ฒฌ'์ด๋ผ๊ณ ๋นจ๊ฐ ๊ธ์จ๊ฐ ์ธ ๊ตฐ๋ฐ๋ ์ฐํ ์๋๋ผ๊ณ ์. ๊ฐ์์น ์ด์, ํ์ ์ฃผ์, ์ฝ๋ ์คํ ๋กค ๊ฒฝ๊ณ. ์๋ฅธ์ฌ์ฏ ์ด์ธ๋ฐ, ์์งํ '์ด ๋์ด์ ๋ญ๊ฐ ํฌ๊ฒ ์๋ชป๋ ๊ฑฐ ์๋๊ฐ' ํ๋ ์๊ฐ์ด ์๊ฐ ์ค์ณค์ด์. ๊ฒฐ๊ณผ์ง ๋ดํฌ๋ฅผ ๋ฏ๋ ์์ด ์ด์ง ๋จ๋ ธ๋ ๊ฒ๋ ์ฌ์ค์ด๊ณ ์. ๊ทธ๋ฐ๋ฐ ๋ง์ ์ฃผ๋ณ์ ๋ฌผ์ด๋ณด๋๊น ์ด์์๊ฒฌ ๋ฐ์ ์ฌ...", + "articleType": "" + }, + { + "post_id": "2026-06-29_ChatGPT๋ก๋ถ์ ์์ํ์๋์ง์ง์์์ _f0936eb5", + "keyword": "ChatGPT๋ก ๋ถ์ ์์ํ์ ๋ ์ง์ง ์์์ ", + "title": "ChatGPT๋ก ๋ถ์ ์์ํ์ ๋ ์ง์ง ์์์ โ 6๊ฐ์ ์ง์ ํด๋ณธ ์์ง ํ๊ธฐ (2026)", + "status": "published", + "source": "auto", + "blogId": "blog1", + "blogName": "๊ธฐ๋ณธ ๋ธ๋ก๊ทธ", + "blogUrl": "https://hoguwhat1.blogspot.com/2026/06/chatgpt-6-2026.html", + "errorMessage": null, + "createdAt": "2026-06-29T00:00:00", + "publishedAt": "2026-06-29T00:00:00", + "lastAttemptAt": "2026-06-29T00:00:00", + "attempts": 1, + "runNumber": 0, + "wordCount": 2982, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "ChatGPT๋ถ์ ", + "AI๋ถ์ ", + "์ง์ฅ์ธ๋ถ์ ", + "๋ถ์ ์์์ ", + "ChatGPTํ์ฉ๋ฒ", + "์ฌํ ํฌ", + "๋ถ์ ํ์ค" + ], + "metaDescription": "ChatGPT๋ก ๋ถ์ ์์ํ ์ง 6๊ฐ์, ์ฒซ ๋ฌ 32,000์์์ ์ง๊ธ ์ 68๋ง ์๊น์ง โ ์ง์ฅ์ธ์ด ์ง์ ๊ฒฝํํ ์ง์ง ์์ ๋ณํ์ ํ์ค์ ์ธ ์กฐ์ธ์ ์์งํ๊ฒ ์ ๋ฆฌํ์ด์.", + "contentPreview": "์๋ ์ด๋ง๋์ฏค ์ ๋ ์ง์งํ๊ฒ ๊ณ ๋ฏผํ์ด์. ๋ฌผ๊ฐ๋ ์ค๋ฅด๋๋ฐ ์๊ธ์ ์ ์๋ฆฌ๊ณ , ์ฃผ๋ณ์์ 'ChatGPT๋ก ํ ๋ฌ์ ๋ช๋ฐฑ ๋ฒ๋ค'๋ ์๊ธฐ๊ฐ ๊ณ์ ๋ค๋ฆฌ๋ ๊ฑฐ์์. ์ฒ์์ ๊ทธ๋ฅ ๊ณผ์ฅ์ด๊ฒ ์ง ์ถ์๋๋ฐ, ํ ๋ง๋ด๊ฐ ํด๊ทผ ํ์ ChatGPT ํ์ฉํด์ ๋ฒ์ญ ๋ถ์ ์ผ๋ก ์ 50๋ง ์ ๋๊ฒ ๋ฒ๋ค๋ ๊ฑธ ์ง์ ๋ค์ผ๋ฉด์ ์๊ฐ์ด ๋ฐ๋์์ด์. '๊ทธ๋ผ ๋๋ ํ๋ฒ ํด๋ณด์'๋ ๋ง์์ผ๋ก ์์ํ ๊ฒ...", + "articleType": "" + }, + { + "post_id": "2026-06-29_ํฌ์ค์ฅPT6๊ฐ์ํ๊ธฐ๋์๊น์ง์์์ด์ _2673b26d", + "keyword": "ํฌ์ค์ฅ PT 6๊ฐ์ ํ๊ธฐ ๋ ์๊น์ง ์์ ์ด์ ", + "title": "ํฌ์ค์ฅ PT 6๊ฐ์ ์์ง ํ๊ธฐ โ ๋ ์๊น์ง ์์ ์ง์ง ์ด์ (2026)", + "status": "published", + "source": "auto", + "blogId": "blog1", + "blogName": "๊ธฐ๋ณธ ๋ธ๋ก๊ทธ", + "blogUrl": "https://hoguwhat1.blogspot.com/2026/06/pt-6-2026.html", + "errorMessage": null, + "createdAt": "2026-06-29T00:00:00", + "publishedAt": "2026-06-29T00:00:00", + "lastAttemptAt": "2026-06-29T00:00:00", + "attempts": 1, + "runNumber": 0, + "wordCount": 3103, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "ํฌ์ค์ฅPTํ๊ธฐ", + "PT6๊ฐ์", + "ํผ์ค๋ํธ๋ ์ด๋", + "์ง์ฅ์ธ์ด๋", + "ํฌ์คPT๊ฐ๊ฒฉ", + "์ฒด์ง๋ฐฉ๊ฐ๋", + "์ด๋๋ฃจํด" + ], + "metaDescription": "ํฌ์ค์ฅ PT 6๊ฐ์์ ์ง์ ๋ฐ์๋ณธ ์ง์ฅ์ธ์ ์์งํ ํ๊ธฐ. ์ฒด์ง๋ฐฉ ๋ณํ ์์น๋ถํฐ ํธ๋ ์ด๋ ์ ํ ์คํจ๋ด, ๋ ์๊น์ง ์๋ค๊ณ ๋๋ ์ง์ง ์ด์ ๊น์ง ๊ฒฝํ ๊ทธ๋๋ก ์ ๋ฆฌํ์ด์.", + "contentPreview": "์๋ 12์, ์ ๋ ํ์ฌ ๊ฑด๊ฐ๊ฒ์ง ๊ฒฐ๊ณผ์ง๋ฅผ ๋ฐ์๋ค๊ณ ์ง์ง ์ถฉ๊ฒฉ์ ๋ฐ์์ด์. ์ฒด์ง๋ฐฉ๋ฅ 28%, ๊ทผ์ก๋ ๋ถ์กฑ ํ์ , ํ์๋ ์ด์ง ๋์. 33์ด์ ์ด ๊ฒฐ๊ณผ๋ผ๋. ๊ทธ๋๋ถํฐ '๋ญ๊ฐ ํด์ผ๊ฒ ๋ค'๋ ์๊ฐ์ ๊ณ์ ์์๋๋ฐ, ํผ์ ํฌ์ค์ฅ ๋ค๋ ๋ณธ ์ฌ๋์ ์์์์. ๋ฑ๋กํ๊ณ ํ ๋ฌ ์ง๋๋ฉด ์ ๋ น ํ์ ๋๋ ๊ทธ ๋ฃจํด. ๊ทธ๋์ ์ด๋ฒ์ ์์ PT๋ฅผ ๋ฑ๋กํ์ด์. 24ํ, 90๋ง ์์ง๋ฆฌ ...", + "articleType": "" + }, + { + "post_id": "2026-06-28_๋๋ผ๋ง์ฐธ๊ต์ก_05289ed2", + "keyword": "๋๋ผ๋ง ์ฐธ๊ต์ก", + "title": "๋๋ผ๋ง ์ฐธ๊ต์ก, ์ง์ ๋ณด๊ณ ๋์ ์์งํ๊ฒ ์ฐ๋ 2026๋ ์์ฒญ ํ๊ธฐ", + "status": "failed", + "source": "auto", + "blogId": "blog1", + "blogName": "HOGU What?", + "blogUrl": "", + "errorMessage": "์ด์ ์คํ ๊ธฐ๋ก (์์ธ ์ค๋ฅ ์์)", + "createdAt": "2026-06-28T00:00:00", + "publishedAt": null, + "lastAttemptAt": "2026-06-28T00:00:00", + "attempts": 1, + "runNumber": 0, + "wordCount": 3291, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "๋๋ผ๋ง์ฐธ๊ต์ก", + "์ฐธ๊ต์ก๋๋ผ๋งํ๊ธฐ", + "์ฐธ๊ต์ก์นํฐ๋๋ผ๋ง", + "ํ๊ตํญ๋ ฅ๋๋ผ๋ง", + "2026๋๋ผ๋ง์ถ์ฒ", + "๊ตญ๋ด๋๋ผ๋ง๋ฆฌ๋ทฐ", + "๋๋ผ๋ง์ ์ฃผํ์ถ์ฒ" + ], + "metaDescription": "๋๋ผ๋ง ์ฐธ๊ต์ก์ ์ง์ ๋ณธ 30๋ ์ง์ฅ์ธ์ ์์งํ ์์ฒญ ํ๊ธฐ. ํต์พํ ์์ง ์์ฌ์ ๊ฐ์ ์ ๊น์ง ํํํ ์ด ๋๋ผ๋ง, ์์ฌ์ด ์ ๊น์ง ๊พธ๋ฐ์์ด ์ ๋ฆฌํ์ด์.", + "contentPreview": "๋ชฉ์ฐจ ์ด ๋๋ผ๋ง๋ฅผ ๋ณด๊ฒ ๋ ๊ณ๊ธฐ ์ค๊ฑฐ๋ฆฌ์ ๋ถ์๊ธฐ โ ์ด๋ค ๋๋ผ๋ง์ธ๊ฐ ์บ๋ฆญํฐ๋ค์ด ์ง์ง ์ด์์๋ค๋ ๋๋ ์ด ์ฅ๋ฉด์์ ์ง์ง ๋ฉ์ท์ด์ ์์งํ ์์ฌ์ ๋ ๋ถ๋ถ๋ ์์ด์ ์ด๋ฐ ์ทจํฅ์ด๋ฉด ๊ฐ์ถ, ์ด๋ฐ ์ทจํฅ์ด๋ฉด ๋น์ถ ์์ฃผ ๋ฌป๋ ์ง๋ฌธ ์ด ๋๋ผ๋ง๋ฅผ ๋ณด๊ฒ ๋ ๊ณ๊ธฐ ์์งํ ์ฒ์์ ์ ๋ชฉ๋ง ๋ณด๊ณ ์ข ๋ถ๋ด์ค๋ฌ์ ์ด์. '์ฐธ๊ต์ก'์ด๋ผ๋ ๋จ์ด ์์ฒด๊ฐ ์๋ ์จ๋ผ์ธ์์ ์๊ทน์ ์ผ๋ก ์ฐ์ด๋ค ๋ณด๋๊น,...", + "articleType": "" + }, + { + "post_id": "2026-06-28_๋๋ผ๋ง์ฐธ๊ต์ก1ํ์ค๊ฑฐ๋ฆฌํ๊ธฐ_abfc3599", + "keyword": "๋๋ผ๋ง ์ฐธ๊ต์ก 1ํ ์ค๊ฑฐ๋ฆฌ ํ๊ธฐ", + "title": "[1ํธ] ์ฐธ๊ต์ก 1ํ, ๋ณ์๊ฐ ์์ด ํ์๋ค๊ฐ ๋ฉ์ถฐ๋ฒ๋ฆฐ ์ด์ | 2026", + "status": "failed", + "source": "auto", + "blogId": "blog1", + "blogName": "HOGU What?", + "blogUrl": "", + "errorMessage": "์ด์ ์คํ ๊ธฐ๋ก (์์ธ ์ค๋ฅ ์์)", + "createdAt": "2026-06-28T00:00:00", + "publishedAt": null, + "lastAttemptAt": "2026-06-28T00:00:00", + "attempts": 1, + "runNumber": 0, + "wordCount": 3044, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "๋๋ผ๋ง-์ฐธ๊ต์ก", + "์ฐธ๊ต์ก1ํ", + "๋๋ผ๋งํ๊ธฐ", + "์ฐธ๊ต์ก์ค๊ฑฐ๋ฆฌ", + "ํ๊ตํญ๋ ฅ๋๋ผ๋ง", + "๋๋ผ๋ง์ ์ฃผํ", + "ํ๊ตญ๋๋ผ๋ง์ถ์ฒ" + ], + "metaDescription": "๋๋ผ๋ง ์ฐธ๊ต์ก 1ํ ์ค๊ฑฐ๋ฆฌ ํ๊ธฐ๋ฅผ ์์งํ๊ฒ ์ ๋ฆฌํ์ด์. ๊ธฐ๋ ์์ด ํ์๋ค๊ฐ ๋ฉ์ถฐ๋ฒ๋ฆฐ ์ด์ , 1ํ์์ ์ธ์ ๊น์๋ ์ฅ๋ฉด, ์ด๋ค ์ทจํฅ์ ๋ง๋์ง๊น์ง ์ง์ ์ ์ฃผํํ ๊ฒฝํ์ ๋ด์์ต๋๋ค.", + "contentPreview": "๐ ์ด ๊ธ์ ๋ชฉ์ฐจ ๊ทธ๋ฅ ์ฌ์ฌํด์ ํ์์ด์, ์ง์ง๋ก ๋๋ผ๋ง ์ฐธ๊ต์ก 1ํ ์ค๊ฑฐ๋ฆฌ, ์ด๋๊น์ง ์๊ธฐํด๋ ๊ด์ฐฎ์๊น 1ํ์์ ๋ฉ์ถ๊ฒ ๋ง๋ ์ฅ๋ฉด๋ค ๋ถํธํ๋ฉด์๋ ๊ณ์ ๋ณด๊ฒ ๋๋ ์ด์ ์ด๋ฐ ์ทจํฅ์ด๋ฉด ๊ฐ์ถ, ์ด๋ฐ ์ทจํฅ์ด๋ฉด ๋น์ถ ์์ฃผ ๋ฌป๋ ์ง๋ฌธ ์ ๋ ๋๋ผ๋ง๋ฅผ ๊ทธ๋ ๊ฒ ์ด์ฌํ ์ฑ๊ฒจ๋ณด๋ ํธ์ด ์๋์์. ๋ทํ๋ฆญ์ค ๊ฒฐ์ ํด๋๊ณ ๋ช ๋ฌ์งธ ๊ฐ์ ํ๋ฉด๋ง ๋ณด๋ค๊ฐ ๋๋ ํ์ ์ด๋๊น์. ๊ทธ๋ฌ๋ค ์ด๋...", + "articleType": "" + }, + { + "post_id": "2026-06-28_๋๋ผ๋ง์ฐธ๊ต์ก๋ ผ๋๋ถํธํ์ด์ ํด์_3ef19f16", + "keyword": "๋๋ผ๋ง ์ฐธ๊ต์ก ๋ ผ๋ ๋ถํธํ ์ด์ ํด์", + "title": "[2ํธ] ์ฐธ๊ต์ก์ด ๋ถํธํ ์ด์ , ๊ทธ๊ฒ ์ฐ์ถ ์๋์๋ค | 2026๋ ", + "status": "failed", + "source": "auto", + "blogId": "blog1", + "blogName": "HOGU What?", + "blogUrl": "", + "errorMessage": "์ด์ ์คํ ๊ธฐ๋ก (์์ธ ์ค๋ฅ ์์)", + "createdAt": "2026-06-28T00:00:00", + "publishedAt": null, + "lastAttemptAt": "2026-06-28T00:00:00", + "attempts": 1, + "runNumber": 0, + "wordCount": 2858, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "๋๋ผ๋ง-์ฐธ๊ต์ก", + "์ฐธ๊ต์ก๋ ผ๋", + "ํ๊ตํญ๋ ฅ๋๋ผ๋ง", + "๋๋ผ๋ง๋ฆฌ๋ทฐ", + "์ฐธ๊ต์กํด์", + "๋ทํ๋ฆญ์ค๋๋ผ๋ง", + "๋๋ผ๋ง์ถ์ฒ2026" + ], + "metaDescription": "๋๋ผ๋ง ์ฐธ๊ต์ก์ด ๋ถํธํ ์ด์ , ๋จ์ํ ์๊ทน์ ์ด์ด์๊ฐ ์๋์์ด์. ์ ์ฃผํ ํ ๋ฐ๊ฒฌํ ์ฐ์ถ ์๋์ ํผํด์ ๋ฌ์ฌ ๋ฐฉ์, ๋ ผ๋์ ํต์ฌ์ ์์งํ๊ฒ ํ์ด๋ดค์ด์.", + "contentPreview": "1ํธ์์ ์ ๋ ์ฐธ๊ต์ก 1ํ๋ฅผ ๋ณด๋ค๊ฐ ๋ฉ์ท๋ค๊ณ ํ์์์. ๋ถํธํด์์. ๊ทธ๋ฐ๋ฐ ์ ๊ธฐํ ๊ฑด, ๊ทธ ๋ถํธํจ์ด ์ซ์ด์ ๋ ๊ฒ ์๋๋ผ \"์ด๊ฒ ์ ์ด๋ ๊ฒ ๋ถํธํ์ง?\"๋ผ๋ ์ง๋ฌธ์ด ์๊ฒจ์ ๊ณ์ ๋ณด๊ฒ ๋๋ค๋ ๊ฑฐ์์. ๋ณดํต ๋๋ผ๋ง ๋ณด๋ค๊ฐ ๋ถํธํ๋ฉด ๊ทธ๋ฅ ๋์์์. ์ ๋ ๊ทธ๋ฐ ์ฌ๋์ด์์. ๊ทผ๋ฐ ์ด๊ฑด ๋ฌ๋์ด์. ๋ถํธํ๋ฐ ๊ณ์ ๋ณด๊ฒ ๋๋, ๊ทธ ์ด์ํ ๋๋ฆผ. ์ ์ฃผํ ๋ค ํ๊ณ ๋์์ผ ๊ทธ๊ฒ...", + "articleType": "" + }, + { + "post_id": "2026-06-28_๋๋ผ๋ง์ฐธ๊ต์ก์ดํ๋ณผ๋งํ๊ฐ์ถ์ฒ_d747a857", + "keyword": "๋๋ผ๋ง ์ฐธ๊ต์ก ์ดํ ๋ณผ๋งํ๊ฐ ์ถ์ฒ", + "title": "[3ํธ] ์ฐธ๊ต์ก ๋ค ๋ณด๊ณ ๋ด๋ฆฐ ์์งํ ๊ฒฐ๋ก โ ์ด ์ฌ๋๋ง ๋ณด์ธ์ (2026)", + "status": "failed", + "source": "auto", + "blogId": "blog1", + "blogName": "HOGU What?", + "blogUrl": "", + "errorMessage": "์ด์ ์คํ ๊ธฐ๋ก (์์ธ ์ค๋ฅ ์์)", + "createdAt": "2026-06-28T00:00:00", + "publishedAt": null, + "lastAttemptAt": "2026-06-28T00:00:00", + "attempts": 1, + "runNumber": 0, + "wordCount": 2732, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "๋๋ผ๋ง-์ฐธ๊ต์ก", + "์ฐธ๊ต์ก์ดํ", + "์ฐธ๊ต์ก์ถ์ฒ", + "ํ๊ตํญ๋ ฅ๋๋ผ๋ง", + "ํ๊ตญ๋๋ผ๋ง๋ฆฌ๋ทฐ", + "๋๋ผ๋ง์ ์ฃผํ", + "2026๋๋ผ๋ง" + ], + "metaDescription": "๋๋ผ๋ง ์ฐธ๊ต์ก ์ ์ฃผํ ์๋ฃ ํ ์์งํ ์ดํ๊ณผ ์ถ์ฒ ๊ธฐ์ค์ ์ ๋ฆฌํ์ด์. ๋ณผ๋งํ๊ฐ ๊ณ ๋ฏผ ์ค์ด๋ผ๋ฉด ์ด๋ฐ ์ฌ๋์๊ฒ ๊ฐ์ถ, ์ด๋ฐ ์ฌ๋์๊ฒ ๋น์ถ ์ค์ ๊ธฐ์ค ํ์ธํ์ธ์. ๋ณ์ 4.0/5.0 ์ด์ ๋ ์์งํ๊ฒ ๋ด์์ต๋๋ค.", + "contentPreview": "๐บ ์๋ฆฌ์ฆ ์ ์ฒด ๋ชฉ์ฐจ 1ํธ โ ์ฐธ๊ต์ก, ๋ณ์๊ฐ ์์ด ๋ดค๋ค๊ฐ 1ํ์ ๋ฉ์ถ ์ด์ 2ํธ โ ์ฐธ๊ต์ก์ด ๋ถํธํ ์ด์ , ๊ทธ๊ฒ ํต์ฌ์ด์๋ค 3ํธ โ ๋ค ๋ณด๊ณ ๋ด๋ฆฐ ์์งํ ๊ฒฐ๋ก ๊ณผ ์ถ์ฒ ๊ธฐ์ค (ํ์ฌ ๊ธ) ์ ์ฃผํ์ ๋ง์น ๋ ๋ฐค์ ํ์ฐธ ๋ฉํ๋ ์์์ด์. ๋ญ๊ฐ ์์ํ ๊ฒ๋ ์๋๊ณ , ๊ทธ๋ ๋ค๊ณ ์ฐ์ฐํ๊ฒ ๋๋ ๊ฒ๋ ์๋๋ฐ โ ๊ทธ๋ฅ ํ๋์ ํ๋ฉด์ด ๊บผ์ง TV๋ง ๋ฐ๋ผ๋ดค๊ฑฐ๋ ์. ๋๋ผ๋ง ๋ณด๊ณ ...", + "articleType": "" + }, + { + "post_id": "2026-06-28_์ ์ธ๊ณ์ฝ์ ๋ฑ๊ธฐ๋ถ๋ฑ๋ณธํ์ธ์ํด์์๊ธด์ผ_5eb4b72b", + "keyword": "์ ์ธ ๊ณ์ฝ ์ ๋ฑ๊ธฐ๋ถ๋ฑ๋ณธ ํ์ธ ์ ํด์ ์๊ธด ์ผ", + "title": "์ ์ธ ๊ณ์ฝ ์ ๋ฑ๊ธฐ๋ถ๋ฑ๋ณธ ํ์ธ ์ ํ๋ค๊ฐ ์ง์ง ํฐ์ผ ๋ ๋ปํ์ด์ (2026)", + "status": "failed", + "source": "auto", + "blogId": "default", + "blogName": "", + "blogUrl": "", + "errorMessage": "์ด์ ์คํ ๊ธฐ๋ก (์์ธ ์ค๋ฅ ์์)", + "createdAt": "2026-06-28T00:00:00", + "publishedAt": null, + "lastAttemptAt": "2026-06-28T00:00:00", + "attempts": 1, + "runNumber": 0, + "wordCount": 2340, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "์ ์ธ๊ณ์ฝ", + "๋ฑ๊ธฐ๋ถ๋ฑ๋ณธํ์ธ", + "์ ์ธ์ฌ๊ธฐ์๋ฐฉ", + "์ ์ธ๋ณด์ฆ๋ณดํ", + "๋ถ๋์ฐ๊ณ์ฝ", + "์ ์ธ๊ณ์ฝ์ฃผ์์ฌํญ", + "๊นกํต์ ์ธ" + ], + "metaDescription": "์ ์ธ ๊ณ์ฝ ์ ๋ฑ๊ธฐ๋ถ๋ฑ๋ณธ ํ์ธ ์ ํ๋ค๊ฐ ๋ณด์ฆ๊ธ ๋ ๋ฆด ๋ปํ ์ค์ ๊ฒฝํ๋ด. ๊ทผ์ ๋นยท์์ ์ยท์ฑ๊ถ์ต๊ณ ์ก๊น์ง ํ์ฅ์์ ์ง์ ํ์ธํ ๋ฐฉ๋ฒ์ ์์งํ๊ฒ ์ ๋ฆฌํ์ด์.", + "contentPreview": "๋ชฉ์ฐจ ๊ทธ๋ ๊ณ์ฝ์์ ๋์ฅ ์ฐ๊ธฐ ์ง์ ์ ์ผ์ด๋ ์ผ ๋ฑ๊ธฐ๋ถ๋ฑ๋ณธ์ ์ ๋ดค์ ๋ ์ค์ ๋ก ์๊ธฐ๋ ์ผ๋ค ๋ฑ๊ธฐ๋ถ๋ฑ๋ณธ์์ ์ง์ง ๋ด์ผ ํ๋ ๋ถ๋ถ์ ๋ฐ๋ก ์์ด์ ๊ณ์ฝ ๋น์ผ ํ์ฅ์์ ํ์ธํ๋ ํ์ค์ ์ธ ๋ฐฉ๋ฒ ๊ฒฐ๊ตญ ์ด ๊ฒฝํ์ด ์ ํํ ๋จ๊ธด ๊ฒ ๊ทธ๋ ๊ณ์ฝ์์ ๋์ฅ ์ฐ๊ธฐ ์ง์ ์ ์ผ์ด๋ ์ผ 2๋ ์ ๊ฒจ์ธ์ด์์ด์. ์ง์ฅ ๋ฐ๋ น์ผ๋ก ๊ฐ์๊ธฐ ์ด์ฌ๋ฅผ ํด์ผ ํ๊ณ , ์๊ฐ๋ ์๊ณ ๋ง์๋ ๊ธํ๊ณ , ๋ถ๋...", + "articleType": "" + }, + { + "post_id": "2026-06-28_์ค๋งํธ์คํ ์ด๋ถ์ 3๊ฐ์์์ต๊ณต๊ฐ๋ฐํ์ค์ ์ธ_3f87d425", + "keyword": "์ค๋งํธ์คํ ์ด ๋ถ์ 3๊ฐ์ ์์ต ๊ณต๊ฐ ๋ฐ ํ์ค์ ์ธ ํ๊ธฐ", + "title": "์ค๋งํธ์คํ ์ด ๋ถ์ 3๊ฐ์ ์์ง ํ๊ธฐ โ ์ ์์ต ๊ณต๊ฐํฉ๋๋ค (2026๋ )", + "status": "failed", + "source": "auto", + "blogId": "default", + "blogName": "", + "blogUrl": "", + "errorMessage": "์ด์ ์คํ ๊ธฐ๋ก (์์ธ ์ค๋ฅ ์์)", + "createdAt": "2026-06-28T00:00:00", + "publishedAt": null, + "lastAttemptAt": "2026-06-28T00:00:00", + "attempts": 1, + "runNumber": 0, + "wordCount": 3389, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "์ค๋งํธ์คํ ์ด๋ถ์ ", + "๋ถ์ ์์ต๊ณต๊ฐ", + "์ง์ฅ์ธ๋ถ์ ", + "์ํํ๋งคํ๊ธฐ", + "์ค๋งํธ์คํ ์ดํ์ค", + "๋ถ์ 3๊ฐ์", + "์ค๋งํธ์คํ ์ด์์ต" + ], + "metaDescription": "์ค๋งํธ์คํ ์ด ๋ถ์ 3๊ฐ์ ์์ต์ ์ง์ง๋ก ๊ณต๊ฐํฉ๋๋ค. 1๊ฐ์์ฐจ 38,000์์์ 3๊ฐ์์ฐจ 487,000์๊น์ง โ ์ง์ฅ์ธ์ด ์ง์ ๊ฒช์ ํ์ค์ ์ธ ํ๊ธฐ์์.", + "contentPreview": "๋ชฉ์ฐจ ์์ํ๊ฒ ๋ ๊ณ๊ธฐ โ ํด๊ทผ ํ ๋ญ๋ผ๋ ํด์ผ๊ฒ ๋ค ์ถ์์ด์ 1๊ฐ์์ฐจ ยท 2๊ฐ์์ฐจ ยท 3๊ฐ์์ฐจ ์์ต ์ง์ง๋ก ๊ณต๊ฐ ๊ธฐ๋ํ๋ ๊ฒ vs ์ค์ ๋ก ํด๋ณด๋๊น ์์ธ๋ก ์ด๊ฒ ์ ์ผ ์ด๋ ค์ ์ด์ 3๊ฐ์ ํด๋ณด๊ณ ๋์ ๋๋ ์์งํ ์๊ฐ ์ด๋ฐ ์ฌ๋ํํ ๋ ๋ง๊ณ , ์ด๋ฐ ์ฌ๋ํํ ๋ ์ ๋ง์์ ์์ฃผ ๋ฌป๋ ์ง๋ฌธ ์์ํ๊ฒ ๋ ๊ณ๊ธฐ โ ํด๊ทผ ํ ๋ญ๋ผ๋ ํด์ผ๊ฒ ๋ค ์ถ์์ด์ ์๋ ๋ง๋ถํฐ ์๊ธ ๋นผ๊ณ ๋...", + "articleType": "" + }, + { + "post_id": "2026-06-28_ํ๋ฆฌ๋์คํฌ์ง๋จํ์ด๋์ง์ ํด๋ดค๋๋๋ฌ๋ผ์ง๊ฒ_51e6ccec", + "keyword": "ํ๋ฆฌ๋์คํฌ ์ง๋จ ํ ์ด๋ ์ง์ ํด๋ดค๋๋ ๋ฌ๋ผ์ง ๊ฒ๋ค", + "title": "ํ๋ฆฌ๋์คํฌ ์ง๋จ ํ 6๊ฐ์ ์ง์ ์ด๋ํด๋ดค๋๋ ๋ฌ๋ผ์ง ๊ฒ๋ค (2026 ์์ง ํ๊ธฐ)", + "status": "failed", + "source": "auto", + "blogId": "default", + "blogName": "", + "blogUrl": "", + "errorMessage": "์ด์ ์คํ ๊ธฐ๋ก (์์ธ ์ค๋ฅ ์์)", + "createdAt": "2026-06-28T00:00:00", + "publishedAt": null, + "lastAttemptAt": "2026-06-28T00:00:00", + "attempts": 1, + "runNumber": 0, + "wordCount": 3503, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "ํ๋ฆฌ๋์คํฌ", + "ํ๋ฆฌ๋์คํฌ์ด๋", + "ํ๋ฆฌ๋์คํฌ์ฌํ", + "์ฒ์ถ๊ฑด๊ฐ", + "์ฝ์ด์ด๋", + "ํ๋ฆฌํต์ฆ", + "์ฌํ์ด๋" + ], + "metaDescription": "ํ๋ฆฌ๋์คํฌ L4-L5 ์ง๋จ ๋ฐ์ 30๋ ์ง์ฅ์ธ์ด 6๊ฐ์ ๋์ ์ง์ ์ด๋ํด๋ณด๋ฉฐ ๋ฌ๋ผ์ง ๊ฒ๋ค์ ์์งํ๊ฒ ์ ๋ฆฌํ์ด์. ํจ๊ณผ ์์๋ ๊ฒ, ์คํ๋ ค ์ญํจ๊ณผ ๋ฌ๋ ๊ฒ, ํต์ฆ๋ณด๋ค ๋๋ ค์์ด ๋จผ์ ์๋ ์ฌ๋์ ์ง์ง ๊ฒฝํ๋ด์ ๋๋ค.", + "contentPreview": "๋ชฉ์ฐจ ์ง๋จ๋ฐ๋ ๋ , ์ ๋ ์ ๋ง ๋ง๋งํ์ด์ ์ฒ์์ ์ด๋์ด ๋ฌด์์ ๋๋ฐ โ ๊ธฐ๋์ ํ์ค์ ์ฐจ์ด 6๊ฐ์ ๋์ ์ค์ ๋ก ํด๋ณธ ์ด๋๋ค, ํจ๊ณผ ์์๋ ๊ฒ vs ์๋ ๊ฒ ์์ธ๋ก ์ด๊ฒ ์ ์ผ ํฌ๊ฒ ๋ฌ๋ผ์ก๋๋ผ๊ณ ์ ์ง์ฅ์ธ ์ ์ฅ์์ ์์งํ ํ๋ค์๋ ์ ์ด๋ฐ ๋ถ๋คํํ ๋ ์ถ์ฒ, ์ด๋ฐ ๋ถ๋ค์ ๋จผ์ ์์ฌํํ ๊ฐ์ธ์ ์ง๋จ๋ฐ๋ ๋ , ์ ๋ ์ ๋ง ๋ง๋งํ์ด์ ์๋ 11์์ด์์ด์. ๊ฐ์๊ธฐ ์ค๋ฅธ์ชฝ ๋ค...", + "articleType": "" + }, + { + "post_id": "2026-06-28_์ฒญ์ฝํต์ฅ10๋ ๋ฃ๊ณ ๋น์ฒจ์๋ํ์คํ๊ธฐ_0bbfb644", + "keyword": "์ฒญ์ฝํต์ฅ 10๋ ๋ฃ๊ณ ๋น์ฒจ ์ ๋ ํ์ค ํ๊ธฐ", + "title": "์ฒญ์ฝํต์ฅ 10๋ ๋ฃ๊ณ ๋น์ฒจ ์ ๋ ํ์ค ํ๊ธฐ (2026๋ ์์ง ์ ๋ฆฌ)", + "status": "published", + "source": "auto", + "blogId": "default", + "blogName": "", + "blogUrl": "https://hoguwhat1.blogspot.com/2026/06/10-2026_016662205.html", + "errorMessage": null, + "createdAt": "2026-06-28T00:00:00", + "publishedAt": "2026-06-28T00:00:00", + "lastAttemptAt": "2026-06-28T00:00:00", + "attempts": 1, + "runNumber": 0, + "wordCount": 2743, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "์ฒญ์ฝํต์ฅ", + "์ฒญ์ฝ๋น์ฒจํ๊ธฐ", + "๋ฌด์ฃผํ์", + "์ฒญ์ฝ๊ฐ์ ", + "๋ด์ง๋ง๋ จ", + "์ฒญ์ฝํ", + "์ฃผํ์ฒญ์ฝ" + ], + "metaDescription": "์ฒญ์ฝํต์ฅ 10๋ ๋ฃ๊ณ ๋ ๋น์ฒจ ์ ๋ 30๋ ์ง์ฅ์ธ์ ์์งํ ํ์ค ํ๊ธฐ. ๊ฐ์ ๊ตฌ์กฐ์ ๋งน์ , ์ ์ง vs ํด์ง ๊ณ ๋ฏผ, ๊ทธ๋ฆฌ๊ณ ์ฒญ์ฝ ๋ง๊ณ ๋ด ์ง ๋ง๋ จ์ ๋ค์ ์๊ฐํ๊ฒ ๋ ์ด์ ๊น์ง ์ง์ ๊ฒฝํ์ ๋ฐํ์ผ๋ก ์ ๋ฆฌํ์ด์.", + "contentPreview": "๋ชฉ์ฐจ 10๋ ์ ๋ฃ์๋๋ฐ ์ ์์ง๋ ๋ฌด์ฃผํ์๋๊ณ ์ ์ฒญ์ฝ ์ ์ ๋์๋ ๋น์ฒจ ์ ๋๋ ๊ตฌ์กฐ, ์ง์ ๊ฒช์ด๋ดค์ด์ ๊ทธ๋ผ ์ฒญ์ฝํต์ฅ, ๊ณ์ ์ ์งํด์ผ ํ ๊น์ ๋ง์์ผ ํ ๊น์ ์ฒญ์ฝ ๋ง๊ณ ๋ด ์ง ๋ง๋ จ์ ๊ณ ๋ฏผํ๊ธฐ ์์ํ ์ด์ 10๋ ํ ์ ์ ๋น์ทํ ์ํฉ์ด๋ผ๋ฉด ์ด๊ฑธ ๋จผ์ ์ ๊ฒํ์ธ์ 10๋ ์ ๋ฃ์๋๋ฐ ์ ์์ง๋ ๋ฌด์ฃผํ์๋๊ณ ์ 2016๋ , ์ฒซ ์ง์ฅ์ ์ก์๋ง์ ๋ถ๋ชจ๋์ด ํ์ จ๋ ๋ง์์ด ์...", + "articleType": "" + }, + { + "post_id": "2026-06-27_ChatGPT์ ๋ฃ๊ฒฐ์ 3๊ฐ์์ฐ๊ณ ๋๋ํ์ค_91847b80", + "keyword": "ChatGPT ์ ๋ฃ ๊ฒฐ์ 3๊ฐ์ ์ฐ๊ณ ๋๋ ํ์ค", + "title": "ChatGPT ์ ๋ฃ ๊ฒฐ์ 3๊ฐ์ ์ฐ๊ณ ๋๋ ํ์ค (2026๋ ์์ง ํ๊ธฐ)", + "status": "published", + "source": "auto", + "blogId": "default", + "blogName": "", + "blogUrl": "https://hoguwhat1.blogspot.com/2026/06/chatgpt-3-2026.html", + "errorMessage": null, + "createdAt": "2026-06-27T00:00:00", + "publishedAt": "2026-06-27T00:00:00", + "lastAttemptAt": "2026-06-27T00:00:00", + "attempts": 1, + "runNumber": 0, + "wordCount": 3112, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "ChatGPT์ ๋ฃํ๊ธฐ", + "ChatGPTPlus", + "AI๋๊ตฌ์ง์ฅ์ธ", + "ChatGPT๊ฒฐ์ ", + "์์ฐ์ฑ์ฑํ๊ธฐ", + "AIํ์ฉ๋ฒ", + "ChatGPT2026" + ], + "metaDescription": "ChatGPT ์ ๋ฃ ๊ฒฐ์ 3๊ฐ์ ์ง์ ์จ๋ณธ ์ง์ฅ์ธ์ ์์ง ํ๊ธฐ. ๊ธฐ๋ํ๋ ๊ฒ๊ณผ ์ค์ ์ฐจ์ด, ์์ฌ์ ๋ ์ , ์ง๊ธ๋ ๊ตฌ๋ ์ ์ ์งํ๋ ์ด์ ๊น์ง ๊ฒฝํ ๊ทธ๋๋ก ์ ๋ฆฌํ์ด์.", + "contentPreview": "์ฒ์ ChatGPT Plus๋ฅผ ๊ฒฐ์ ํ์ ๋, ์์งํ ์ข ์ค๋ ์์ด์. ๋งค๋ฌ 20๋ฌ๋ฌ, ์ฐ๋ฆฌ ๋์ผ๋ก 2๋ง 7์ฒ ์~2๋ง 9์ฒ ์ ์ ๋์ธ๋ฐ, '์ด ์ ๋๋ฉด ์ปคํผ ๋ค์ฏ ์ ๊ฐ์ด๋๊น ์ถฉ๋ถํ ๋ฝ์ ์ ์๊ฒ ๋ค'๊ณ ์๊ฐํ๊ฑฐ๋ ์. ์ฃผ๋ณ์์ ์ ๋ฃ ์ฐ๋ ์ฌ๋๋ค์ด \"๋ฌด๋ฃ๋ ์ฐจ์์ด ๋ค๋ฅด๋ค\"๊ณ ํ๊ณ , ์ ๋ ์ ๋ฌด์ ์ธ ์ผ์ด ์๊ธฐ๋ฉด์ ๊ฒฐ์ ๋ฒํผ์ ๋๋ ์ต๋๋ค. ๊ทผ๋ฐ ๋ง์ 3๊ฐ์์ ์จ๋ณด๋,...", + "articleType": "" + }, + { + "post_id": "2026-06-27_ํ๋ฆฌ๋์คํฌ๋์์น๋ฃ10ํ๋ฐ์๋ณธํ๊ธฐ_d11b5a2e", + "keyword": "ํ๋ฆฌ ๋์คํฌ ๋์์น๋ฃ 10ํ ๋ฐ์๋ณธ ํ๊ธฐ", + "title": "ํ๋ฆฌ ๋์คํฌ ๋์์น๋ฃ 10ํ ๋ฐ์๋ณธ ์์ง ํ๊ธฐ (2026๋ )", + "status": "published", + "source": "auto", + "blogId": "default", + "blogName": "", + "blogUrl": "https://hoguwhat1.blogspot.com/2026/06/10-2026.html", + "errorMessage": null, + "createdAt": "2026-06-27T00:00:00", + "publishedAt": "2026-06-27T00:00:00", + "lastAttemptAt": "2026-06-27T00:00:00", + "attempts": 1, + "runNumber": 0, + "wordCount": 3186, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "ํ๋ฆฌ๋์คํฌ", + "๋์์น๋ฃ", + "๋์์น๋ฃํ๊ธฐ", + "ํ๋ฆฌํต์ฆ", + "์ฒ์ถ์น๋ฃ", + "๋น๊ธ์ฌ์น๋ฃ", + "๋ฌผ๋ฆฌ์น๋ฃ" + ], + "metaDescription": "ํ๋ฆฌ ๋์คํฌ ์ง๋จ ํ ๋์์น๋ฃ 10ํ๋ฅผ ์ง์ ๋ฐ์๋ณธ 30๋ ์ง์ฅ์ธ์ ์์งํ ํ๊ธฐ. ํจ๊ณผ ์๋ ์ด๋ฐ, ๋ณํ๊ฐ ์๊ธด 5ํ ์ดํ, ๋น์ฉ๊ณผ ๋ณ์ ์ ํ ํ๊น์ง ๊ฒฝํ ๊ทธ๋๋ก ์ ๋ฆฌํ์ต๋๋ค.", + "contentPreview": "์๋ ์ด๋ง๋ ์ ๋ ์์์์ ์ผ์ด๋ ๋๋ง๋ค ์ค๋ฅธ์ชฝ ํ๋ฆฌ์์ ์ฐ๋ฆฟํ ๋๋์ด ์์ด์. ์ฒ์์ ๊ทธ๋ฅ ๊ทผ์กํต์ด๊ฒ ์ง ํ๊ณ ํ์ค ๋ถ์ด๊ณ ๋๊ฒผ๋๋ฐ, ์ด๋ ๋ ์์นจ์ ์๋ง์ ์ ์ผ๋ ค๋ค๊ฐ ๊ทธ ์๋ฆฌ์์ ๊ตณ์ด๋ฒ๋ ธ์ต๋๋ค. ํ๋ฆฌ๊ฐ ์์ผ๋ก ์ ๊ตฝํ์ง๋ ๊ฑฐ์์. ๊ทธ๋์์ผ '์ด๊ฑฐ ๋ญ๊ฐ ์๋ชป๋๊ตฌ๋' ์ถ์ด์ ์ ํ์ธ๊ณผ๋ฅผ ๊ฐ๋๋ L4-L5 ์ถ๊ฐํ ํ์ถ์ฆ, ์ฆ ํ๋ฆฌ ๋์คํฌ ์ง๋จ์ ๋ฐ์์ต๋๋ค. ์์ฌ...", + "articleType": "" + }, + { + "post_id": "2026-06-27_AI์๋ํํด์ง์ ์จ๋ดค๋๋์ค๋งํ์ _7bfb6df7", + "keyword": "AI ์๋ํ ํด ์ง์ ์จ๋ดค๋๋ ์ค๋งํ ์ ", + "title": "AI ์๋ํ ํด ์ง์ ์จ๋ดค๋๋ ์ค๋งํ ์ ์์ง ํ๊ธฐ 2026", + "status": "published", + "source": "auto", + "blogId": "default", + "blogName": "", + "blogUrl": "https://hoguwhat1.blogspot.com/2026/06/ai-2026_0286211975.html", + "errorMessage": null, + "createdAt": "2026-06-27T00:00:00", + "publishedAt": "2026-06-27T00:00:00", + "lastAttemptAt": "2026-06-27T00:00:00", + "attempts": 1, + "runNumber": 0, + "wordCount": 3071, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "AI์๋ํํด", + "๋ ธ์ฝ๋์๋ํ", + "Zapierํ๊ธฐ", + "Makeํ๊ธฐ", + "n8n", + "์ ๋ฌด์๋ํ", + "AIํด์์งํ๊ธฐ" + ], + "metaDescription": "AI ์๋ํ ํด ์ง์ ์จ๋ณธ ์ง์ฅ์ธ์ ์์ง ํ๊ธฐ. Zapier, Make, n8n ์ค์ฌ์ฉ ํ ์ค๋งํ ์ ๊ณผ ์์ธ๋ก ์ข์๋ ์ ๊น์ง ๊ฐ๊ฐ ์์ด ์ ๋ฆฌํ์ด์.", + "contentPreview": "์ฌํด ์ด๋ถํฐ ์ ๋ ์ ๋ฌด ํจ์จ์ ๋์ด๊ฒ ๋ค๋ ์ผ๋ ํ๋๋ก AI ์๋ํ ํด์ ์ด๊ฒ์ ๊ฒ ์จ๋ณด๊ธฐ ์์ํ์ด์. ํ์ฌ์์ ๋ฐ๋ณต ์ ๋ฌด๊ฐ ์๋ ๋ง์์, ์ฃผ๋ณ์์ \"์ด๊ฑฐ ์ฐ๋ฉด ์ง์ง ์๊ฐ ๋ฐ์ผ๋ก ์ค์ด\"๋ผ๋ ๋ง์ ๋ค์ ๋๋ง๋ค ์๊นํ๊ฑฐ๋ ์. Make(๊ตฌ Integromat), Zapier, n8n, ๊ทธ๋ฆฌ๊ณ ์์ฆ ํซํ๋ค๋ ๋ช ๊ฐ์ง AI ์ํฌํ๋ก์ฐ ์๋ํ ํด๊น์ง ํ 3~4๊ฐ์ ๋์ ...", + "articleType": "" + }, + { + "post_id": "2026-06-27_ํฌ์ค์ฅ3๊ฐ์๋ฑ๋กํ์ค์ ๋ณํํ์ค๊ณต๊ฐ_752542bc", + "keyword": "ํฌ์ค์ฅ 3๊ฐ์ ๋ฑ๋ก ํ ์ค์ ๋ณํ ํ์ค ๊ณต๊ฐ", + "title": "ํฌ์ค์ฅ 3๊ฐ์ ๋ฑ๋ก ํ ์ค์ ๋ณํ, ์์งํ๊ฒ ๊ณต๊ฐํฉ๋๋ค (2026๋ )", + "status": "published", + "source": "auto", + "blogId": "default", + "blogName": "", + "blogUrl": "https://hoguwhat1.blogspot.com/2026/06/3-2026.html", + "errorMessage": null, + "createdAt": "2026-06-27T00:00:00", + "publishedAt": "2026-06-27T00:00:00", + "lastAttemptAt": "2026-06-27T00:00:00", + "attempts": 1, + "runNumber": 0, + "wordCount": 2495, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "ํฌ์ค์ฅํ๊ธฐ", + "์ด๋์ผ์ง", + "์ง์ฅ์ธ์ด๋", + "ํฌ์ค3๊ฐ์", + "์ฒด์ง๋ฐฉ๊ฐ๋", + "๊ทผ๋ ฅ์ด๋", + "ํฌ์ค์ฅ๋ฑ๋ก" + ], + "metaDescription": "ํฌ์ค์ฅ 3๊ฐ์ ๋ฑ๋ก ํ ์ค์ ๋ก ์ฒด์ค, ์ฒด์ง๋ฐฉ, ๊ทผ๋ ฅ์ด ์ด๋ป๊ฒ ๋ฐ๋์๋์ง ์ง์ฅ์ธ ๋ธ๋ก๊ฑฐ๊ฐ ์์งํ๊ฒ ๊ณต๊ฐํฉ๋๋ค. ๊ธฐ๋ํ๋ ๊ฒ ์ค ์ ๋๋ ๊ฒ๊น์ง ์ ๋ถ ํธ์ด๋จ์ด์.", + "contentPreview": "์๋ ๊ฒจ์ธ, ์ ๋ ๋ฑ ์ด๋ฐ ์ํ์์ด์. ๊ณ๋จ ๋ ์ธต ์ค๋ฅด๋ฉด ์จ์ด ์ฐผ๊ณ , ์ ์ฌ ๋จน๊ณ ๋๋ฉด ์กธ์์ด ์์์ก๊ณ , ํด๊ทผ ํ ์ํ์ ๋์ฐ๋ฉด ๊ทธ๋ฅ ๊ฑฐ๊ธฐ์ ํ๋ฃจ๊ฐ ๋๋ฌ์ฃ . '์ด๋ํด์ผ ํ๋๋ฐ...'๋ฅผ ์ ๋ฒ๋ฆ์ฒ๋ผ ๋ฌ๊ณ ์ด๋ฉด์ ์ค์ ๋ก๋ ์๋ฌด๊ฒ๋ ์ ํ๊ณ ์์์ด์. ๊ทธ๋ฌ๋ค ์ง์ธ์ด ํฌ์ค์ฅ ๊ฐ์ด ๋ค๋์๊ณ ํ๊ณ , ์ ๋ ๋ '์ด๋ฒ์ ์ง์ง ํ ๊ฑฐ์ผ' ๋ง์์ ๋จน์ผ๋ฉฐ 3๊ฐ์ ํ์๊ถ์ ๋์์ต...", + "articleType": "" + }, + { + "post_id": "2026-06-27_๋น๋ผ๊ฐญํฌ์์ฒ์ํด๋ณด๊ณ ํํํ๊ฒ๋ค_e7706568", + "keyword": "๋น๋ผ ๊ฐญํฌ์ ์ฒ์ ํด๋ณด๊ณ ํํํ ๊ฒ๋ค", + "title": "๋น๋ผ ๊ฐญํฌ์ ์ฒ์ ํด๋ณด๊ณ ์ง์ง ํํํ ๊ฒ๋ค (2026๋ ์์ง ํ๊ธฐ)", + "status": "published", + "source": "auto", + "blogId": "default", + "blogName": "", + "blogUrl": "https://hoguwhat1.blogspot.com/2026/06/2026_0616411984.html", + "errorMessage": null, + "createdAt": "2026-06-27T00:00:00", + "publishedAt": "2026-06-27T00:00:00", + "lastAttemptAt": "2026-06-27T00:00:00", + "attempts": 1, + "runNumber": 0, + "wordCount": 2826, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "๋น๋ผ๊ฐญํฌ์", + "๊ฐญํฌ์ํ๊ธฐ", + "๋น๋ผํฌ์", + "์ฌํ ํฌ", + "๋ถ๋์ฐํฌ์", + "์ญ์ ์ธ", + "์ ์ธ์ฌ๊ธฐ" + ], + "metaDescription": "๋น๋ผ ๊ฐญํฌ์๋ฅผ ์ง์ ํด๋ณด๊ณ ํํํ ๊ฒ๋ค์ ์์งํ๊ฒ ์ ๋ฆฌํ์ด์. ์ญ์ ์ธ ๋ฆฌ์คํฌ, ๋ถ๋๋น์ฉ ๊ณ์ฐ ์ค์, ๋งค๋ ์ด๋ ค์๊น์ง โ ์ฒ์ ์์ํ๊ธฐ ์ ์ ๊ผญ ์ฝ์ด๋ณด์ธ์.", + "contentPreview": "2๋ ์ ์ฏค์ด์์ด์. ์ฃผ๋ณ ๋์์ด \"ํ, ๋ ๋น๋ผ ๊ฐญํฌ์๋ก 2์ฒ๋ง ์ ๋ฒ์์ด\"๋ผ๊ณ ํ์ ๋ ์์งํ ๊ท๊ฐ ํ ๋ซ๋ ธ์ต๋๋ค. ๋น์ ์ ๋ ์ํํธ๋ ๋๋ฌด ๋น์ธ๊ณ , ์ฃผ์์ ๋ฉํ์ด ๋ฒํ จ์ฃผ์ง ์์์ ๋ญ๊ฐ ์ค๋ฌผ ์์ฐ์ผ๋ก ๋ฐฉํฅ์ ๋๋ฆฌ๊ณ ์ถ๋ ์ฐธ์ด์๊ฑฐ๋ ์. ๊ทธ๋์ ๋ช ๋ฌ ๊ณต๋ถํ๊ณ , ๊ฒฐ๊ตญ ๊ฒฝ๊ธฐ๋ ์ธ๊ณฝ ๋น๋ผ ํ ์ฑ๋ฅผ ๊ฐญํฌ์๋ก ๋งค์ํ์ด์. ๊ทผ๋ฐ ์ง๊ธ ๋์๋ณด๋ฉด... ๊ทธ๋ ์ ๊ฐ ๋ชฐ๋๋ ...", + "articleType": "" + }, + { + "post_id": "2026-06-26_ํ๋ฃจ8000๋ณด๊ฑท๊ธฐ90์ผํ์ค์ ๋ชธ๋ณํ_0d78cfc3", + "keyword": "ํ๋ฃจ 8000๋ณด ๊ฑท๊ธฐ 90์ผ ํ ์ค์ ๋ชธ ๋ณํ", + "title": "ํ๋ฃจ 8000๋ณด ๊ฑท๊ธฐ 90์ผ ํ ์ค์ ๋ชธ ๋ณํ, ์์งํ๊ฒ ํธ์ด๋์๊ฒ์", + "status": "published", + "source": "auto", + "blogId": "default", + "blogName": "", + "blogUrl": "https://hoguwhat1.blogspot.com/2026/06/8000-90.html", + "errorMessage": null, + "createdAt": "2026-06-26T00:00:00", + "publishedAt": "2026-06-26T00:00:00", + "lastAttemptAt": "2026-06-26T00:00:00", + "attempts": 1, + "runNumber": 0, + "wordCount": 3179, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "๊ฑท๊ธฐ์ด๋", + "ํ๋ฃจ8000๋ณด", + "์ง์ฅ์ธ๊ฑด๊ฐ", + "๋ด์ฅ์ง๋ฐฉ๊ฐ์", + "์ฒด์ค๊ฐ๋", + "์ ์ฐ์์ด๋", + "๊ฑท๊ธฐํจ๊ณผ" + ], + "metaDescription": "ํ๋ฃจ 8000๋ณด ๊ฑท๊ธฐ๋ฅผ 90์ผ ๋์ ์ง์ ํด๋ณธ 30๋ ์ง์ฅ์ธ์ ์์ง ํ๊ธฐ. ์ฒด์คยทํ์ยท์๋ฉดยท๋ด์ฅ์ง๋ฐฉ๊น์ง ์ค์ ๋ชธ์ ์ด๋ค ๋ณํ๊ฐ ์๊ฒผ๋์ง, ๊ธฐ๋์ ๋ฌ๋๋ ๊ฒ๊น์ง ์ ๋ถ ํธ์ด๋จ์ด์.", + "contentPreview": "์๋ ๋ง์ ๊ฑด๊ฐ๊ฒ์ง ๊ฒฐ๊ณผ์ง๋ฅผ ๋ฐ์๋ค๊ณ ์ ๊น ๋ฉํ์ด์. ์ฒด์ค์ ๋ฑํ ์ฌ๊ฐํ ์์ค์ด ์๋๋ฐ ๋ด์ฅ์ง๋ฐฉ ์์น๊ฐ '๊ด๋ฆฌ ํ์' ๊ตฌ๊ฐ์ด๋๋ผ๊ณ ์. ํ์๋ ์ ์ ๋ฒ์ ์ต์๋จ์ ๊ฑด๋๋ฆฌ๊ณ ์์๊ณ . ๊ทธ๋ ์์ฌ ์ ์๋์ด ํ ๋ง์ด ์์ง๋ ๊ธฐ์ต๋์. \"์ฝ ๋์ค ๋จ๊ณ๋ ์๋๋ฐ, ์ง๊ธ ์ ์์ง์ด๋ฉด 3๋ ๋ค์ ๋ค์ ์ค์ ์ผ ํ ์๋ ์์ด์.\" ๊ทธ ๋ง์ด ๊ฝค ์ค๋ ๋จธ๋ฆฟ์์ ๋จ์์ด์. ํฌ์ค์ฅ ...", + "articleType": "" + }, + { + "post_id": "2026-06-26_ํ๋ฆฌ๋์คํฌ์ฌํ์ด๋์ง์ ํด๋ณธ์์งํ๊ธฐ_eb76f914", + "keyword": "ํ๋ฆฌ๋์คํฌ ์ฌํ ์ด๋ ์ง์ ํด๋ณธ ์์ง ํ๊ธฐ", + "title": "ํ๋ฆฌ๋์คํฌ ์ฌํ ์ด๋ ์ง์ 6๊ฐ์ ํด๋ณธ ์์ง ํ๊ธฐ (2026๋ )", + "status": "published", + "source": "auto", + "blogId": "default", + "blogName": "", + "blogUrl": "https://hoguwhat1.blogspot.com/2026/06/6-2026.html", + "errorMessage": null, + "createdAt": "2026-06-26T00:00:00", + "publishedAt": "2026-06-26T00:00:00", + "lastAttemptAt": "2026-06-26T00:00:00", + "attempts": 1, + "runNumber": 0, + "wordCount": 3198, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "ํ๋ฆฌ๋์คํฌ", + "์ฌํ์ด๋", + "ํ๋ฆฌ๋์คํฌ์ฌํ", + "์ฝ์ด์ด๋", + "์ํต๊ด๋ฆฌ", + "์ง์ฅ์ธ๊ฑด๊ฐ", + "ํ๋ฆฌํต์ฆ" + ], + "metaDescription": "ํ๋ฆฌ๋์คํฌ ์ง๋จ ํ 6๊ฐ์ ์ฌํ ์ด๋์ ์ง์ ํด๋ณธ 30๋ ์ง์ฅ์ธ์ ์์งํ ํ๊ธฐ. ํจ๊ณผ ์์๋ ์ด๋, ๊ธฐ๋์ ๋ฌ๋๋ ์ , ํ์ค์ ์ธ ๋ฃจํด๊น์ง ์ง์ง ๊ฒฝํ๋ง ๋ด์์ด์.", + "contentPreview": "์๋ ๊ฒจ์ธ, ์ ๋ MRI ๊ฒฐ๊ณผ์ง๋ฅผ ์์ ๋ค๊ณ ๋ฉํ๋ ์์ ์์์ด์. L4-L5 ์ถ๊ฐํ ํ์ถ์ฆ. ์ฝ๊ฒ ๋งํ๋ฉด ํ๋ฆฌ๋์คํฌ์๋๋ฐ, ์์ฌ ์ ์๋์ด \"์์ ์ ์์ง ์๋๊ณ , ์ฌํ ์ด๋์ ๊พธ์คํ ํ๋ ๊ฒ ์ ์ผ ์ค์ํฉ๋๋ค\"๋ผ๊ณ ํ๋๋ผ๊ณ ์. ๊ทธ ์๊ฐ์ '๊ทธ๋, ์ด๋ํ๋ฉด ๋์ง' ํ๋๋ฐ, ๋ง์ ์ง์ ์์ ์ ํ๋ธ ๊ฒ์ํ๋๊น ์ ๋ณด๊ฐ ๋๋ฌด ๋ง์์ ๋ญ ๋ฏฟ์ด์ผ ํ ์ง ๋ชจ๋ฅด๊ฒ ๋ ๊ฑฐ์์. ...", + "articleType": "" + }, + { + "post_id": "2026-06-26_๊ฐญํฌ์์ฒ์ํด๋ดค๋๋๋ชฐ๋๋ํ์ค_3dbcb910", + "keyword": "๊ฐญํฌ์ ์ฒ์ ํด๋ดค๋๋ ๋ชฐ๋๋ ํ์ค", + "title": "๊ฐญํฌ์ ์ฒ์ ํด๋ดค๋๋ ๋ชฐ๋๋ ํ์ค (2026๋ ์ง์ ๊ฒฝํ๋ด)", + "status": "published", + "source": "auto", + "blogId": "default", + "blogName": "", + "blogUrl": "https://hoguwhat1.blogspot.com/2026/06/2026_0367997051.html", + "errorMessage": null, + "createdAt": "2026-06-26T00:00:00", + "publishedAt": "2026-06-26T00:00:00", + "lastAttemptAt": "2026-06-26T00:00:00", + "attempts": 1, + "runNumber": 0, + "wordCount": 2727, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "๊ฐญํฌ์", + "๋ถ๋์ฐํฌ์", + "๊ฐญํฌ์ํ์ค", + "์ ์ธํฌ์", + "์ญ์ ์ธ", + "๋ถ๋์ฐ์ธ๊ธ", + "์๋์๋์ธ" + ], + "metaDescription": "๊ฐญํฌ์ ์ฒ์ ํด๋ดค๋๋ ์ ๋ง ๋ชฐ๋๋ ๊ฒ๋ค์ด ์์์ก์ด์. ์ด๊ธฐ๋น์ฉ๋ถํฐ ์ธ์ ์ ๊ด๋ฆฌ, ์ธ๊ธ ํจ์ ๊น์ง ์ง์ ๊ฒฝํํ 2026๋ ํ์ค์ ์์งํ๊ฒ ์ ๋ฆฌํ์ต๋๋ค.", + "contentPreview": "์์งํ ๋งํ๋ฉด, ์ ๋ ๊ฐญํฌ์๋ฅผ ์ฒ์ ์์ํ ๋ ์ ํ๋ธ ์์ ๋ช ๊ฐ ๋ณด๊ณ '์ด๊ฑฐ ๋ณ๊ฑฐ ์๋๊ฒ ๋ค'๊ณ ์๊ฐํ์ด์. ์ ์ธ๊ธ ๋ผ๊ณ ์ฌ๋ฉด ๋๋ ๊ฑฐ ์๋๊ฐ ์ถ์๊ฑฐ๋ ์. ๊ทธ๋ฐ๋ฐ ๋ง์ ๊ณ์ฝ์์ ๋์ฅ ์ฐ๊ณ ๋์๋ถํฐ ๋ชฐ๋๋ ๊ฒ๋ค์ด ํ๋์ฉ ํ์ด๋์ค๊ธฐ ์์ํ์ต๋๋ค. 2024๋ ๋ง์ ๊ฒฝ๊ธฐ๋ ์ธ๊ณฝ ์ํํธ๋ก ๊ฐญํฌ์๋ฅผ ์ฒ์ ํด๋ดค๊ณ , ์ง๊ธ์ ๊ทธ ๊ฒฝํ์ด ์ ์ฌํ ํฌ ์ธ์์ ์์ ํ ๋ค๋ฐ๊ฟ๋จ์ด์...", + "articleType": "" + }, + { + "post_id": "2026-06-26_AIํด๋ก๋ถ์ 3๊ฐ์์์ตํ์ค๊ณต๊ฐ_017d26ff", + "keyword": "AI ํด๋ก ๋ถ์ 3๊ฐ์ ์์ต ํ์ค ๊ณต๊ฐ", + "title": "AI ํด๋ก ๋ถ์ 3๊ฐ์ ํด๋ดค๋๋ฐ, ์์ต ํ์ค ์์งํ๊ฒ ๊ณต๊ฐํฉ๋๋ค (2026)", + "status": "published", + "source": "auto", + "blogId": "default", + "blogName": "", + "blogUrl": "https://hoguwhat1.blogspot.com/2026/06/ai-3-2026.html", + "errorMessage": null, + "createdAt": "2026-06-26T00:00:00", + "publishedAt": "2026-06-26T00:00:00", + "lastAttemptAt": "2026-06-26T00:00:00", + "attempts": 1, + "runNumber": 0, + "wordCount": 2515, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "AI๋ถ์ ", + "์ง์ฅ์ธ๋ถ์ ", + "AIํด์์ต", + "ChatGPT๋ถ์ ", + "๋ธ๋ก๊ทธ๋ํ", + "ํ๋ฆฌ๋์์์ต", + "ํฌ๋ชฝ๋ถ์ " + ], + "metaDescription": "AI ํด๋ก ๋ถ์ ์์ํ ์ง 3๊ฐ์, ์ค์ ์๋ณ ์์ต์ ๊ทธ๋๋ก ๊ณต๊ฐํฉ๋๋ค. ์ฒซ ๋ฌ 23,000์๋ถํฐ 3๊ฐ์ ์ฐจ 412,000์๊น์ง, ์ง์ฅ์ธ์ด ํด๊ทผ ํ ์ง์ ํด๋ณธ ํ์ค ํ๊ธฐ์์.", + "contentPreview": "์์งํ ์ ๋ ์ฒ์์ ๋ฐ์ ๋ฐ์ํ์ด์. ์ ํ๋ธ์์ 'AI๋ก ์ 300๋ง ์ ๋ฒ๋ค'๋ ์ธ๋ค์ผ ๋ณด๋ฉด์ '์ ๊ฑฐ ๋ค ๋ปฅ์ด์ง'๋ผ๊ณ ์๊ฐํ๊ฑฐ๋ ์. ๊ทผ๋ฐ ์๋ ๋ง์ ํ์ฌ์์ ์กฐ์ง๊ฐํธ ์๊ธฐ๊ฐ ๋์ค๊ธฐ ์์ํ๋ฉด์ ๋ง์์ด ํ๋ค๋ ธ์ด์. ์ง์ฅ ํ๋๋ง ๋ฏฟ๊ณ ์๋ค๊ฐ ์๋ชป๋๋ฉด ์ด์ฉ๋ ์ถ์ด์, ์ผ๋จ ๋ญ๋ผ๋ ํด๋ณด์๋ ์ฌ์ ์ผ๋ก AI ํด ๋ถ์ ์ ์์ํ์ต๋๋ค. ๊ทธ๊ฒ ๋ฑ 3๊ฐ์ ์ ์๊ธฐ์์. ์ค๋์...", + "articleType": "" + }, + { + "post_id": "2026-06-25_AIํด์ค์ ๋ก์จ๋ณด๋์ ๋ฃ๊ตฌ๋ ๋์์ด์ _6c09c07f", + "keyword": "AI ํด ์ค์ ๋ก ์จ๋ณด๋ ์ ๋ฃ ๊ตฌ๋ ๋์ ์ด์ ", + "title": "AI ํด ์ ๋ฃ ๊ตฌ๋ 6๊ฐ์ ์ฐ๋ค๊ฐ ๊ฒฐ๊ตญ ๋์ ์์งํ ์ด์ (2026๋ )", + "status": "published", + "source": "auto", + "blogId": "default", + "blogName": "", + "blogUrl": "https://hoguwhat1.blogspot.com/2026/06/ai-6-2026.html", + "errorMessage": null, + "createdAt": "2026-06-25T00:00:00", + "publishedAt": "2026-06-25T00:00:00", + "lastAttemptAt": "2026-06-25T00:00:00", + "attempts": 1, + "runNumber": 0, + "wordCount": 3104, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "AIํดํ๊ธฐ", + "ChatGPT๊ตฌ๋ ", + "AI์ ๋ฃ๊ตฌ๋ ", + "์ง์ฅ์ธ์ฌํ ํฌ", + "์์ฐ์ฑ์ฑ", + "๊ตฌ๋ ์๋น์ค์ ๋ฆฌ", + "ChatGPTPlus" + ], + "metaDescription": "AI ํด ์ ๋ฃ ๊ตฌ๋ 6๊ฐ์ ์ฐ๋ค๊ฐ ๋์ ์ง์ฅ์ธ์ ์์งํ ๊ฒฝํ๋ด. ์ค์ ์ฌ์ฉ ํจํด ๊ธฐ๋กํด๋ณด๋ ์ 9๋ง ์์ด ์๊น์ ๋ ์ด์ , ๋ฌด๋ฃ ํ๋์ผ๋ก๋ ์ถฉ๋ถํ ๊ธฐ์ค์ ์ ๋ฆฌํ์ด์.", + "contentPreview": "์๋ ์ด๋ง๋์ฏค์ด์์ด์. ํ์ฌ์์ ๊ธฐํ์ ์ด์ ์ฐ๋ ๋ฐ ChatGPT Plus ์ฐ๋ฉด์ \"์ด๊ฑฐ ์์ผ๋ฉด ์ผ ๋ชป ํ๊ฒ ๋ค\" ์ถ์๊ฑฐ๋ ์. ๊ทธ๋์ Claude Pro๋ ๊ตฌ๋ ํ๊ณ , Notion AI๋ ๋ถ์ด๊ณ , ๊ฑฐ๊ธฐ์ Perplexity Pro๊น์ง ๋ํ์ด์. ํ ๋ฌ์ AI ํด ๊ตฌ๋ ๋ฃ๋ง ๊ฑฐ์ 9๋ง ์ ๊ฐ๊น์ด ๋์๋๋ฐ, ๊ทธ๋๋ ๊ทธ๊ฒ ๋น์ฐํ ์ค ์์์ด์. \"AI ์ฐ๋ ์ฌ๋์ด ๋...", + "articleType": "" + }, + { + "post_id": "2026-06-25_GPT์ ๋ฃ๊ฒฐ์ 3๊ฐ์์จ๋ณธ์์งํ๊ธฐ_c731eab7", + "keyword": "GPT ์ ๋ฃ ๊ฒฐ์ 3๊ฐ์ ์จ๋ณธ ์์ง ํ๊ธฐ", + "title": "ChatGPT Plus ์ ๋ฃ ๊ฒฐ์ 3๊ฐ์ ์จ๋ณธ ์์ง ํ๊ธฐ (2026๋ )", + "status": "published", + "source": "auto", + "blogId": "default", + "blogName": "", + "blogUrl": "https://hoguwhat1.blogspot.com/2026/06/chatgpt-plus-3-2026.html", + "errorMessage": null, + "createdAt": "2026-06-25T00:00:00", + "publishedAt": "2026-06-25T00:00:00", + "lastAttemptAt": "2026-06-25T00:00:00", + "attempts": 1, + "runNumber": 0, + "wordCount": 2930, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "ChatGPT Plus", + "GPT ์ ๋ฃ ๊ฒฐ์ ", + "AI ๋๊ตฌ ํ๊ธฐ", + "ChatGPT ํ๊ธฐ", + "์ง์ฅ์ธ ์์ฐ์ฑ", + "AI ํ์ฉ๋ฒ", + "ChatGPT ๋น๊ต" + ], + "metaDescription": "ChatGPT Plus ์ ๋ฃ ๊ฒฐ์ 3๊ฐ์ ์ง์ ์จ๋ณธ ์์ง ํ๊ธฐ. ๋ฌด๋ฃ ๋๋น ์ฒด๊ฐ ์ฐจ์ด, ์์ธ๋ก ์ข์๋ ์ , ์์ฌ์ด ์ ๊น์ง ๊ฒฝํ ๊ทธ๋๋ก ์ ๋ฆฌํ์ด์.", + "contentPreview": "์์งํ ๋งํ๋ฉด, ์ ์ฒ์์ ์ ๋ฃ ๊ฒฐ์ ๊ฝค ์ค๋ ๋ฒํ ผ์ด์. ์ฃผ๋ณ์์ \"GPT ์ ๋ฃ ์ฐ๋ฉด ์ง์ง ๋ค๋ฅด๋ค\"๋ ๋ง์ ๊ท์ ๋ฑ์ง๊ฐ ์๋๋ก ๋ค์๋๋ฐ, ๋งค๋ฌ 30๋ฌ๋ฌ๊ฐ ์๊น๋ค๋ ์๊ฐ์ด ์ปธ๊ฑฐ๋ ์. ํ์จ์ด 1,400์๋๋ผ๋ฉด ํ ๋ฌ์ 4๋ง ์์ด ๋๋๋ฐ, ๊ทธ๊ฒ ์ง์ง ๊ทธ๋งํ ๊ฐ์น๋ฅผ ํ๋์ง ์ ๊ฐ ์ง์ ํ์ธํ๊ณ ์ถ์์ด์. ๊ฒฐ๊ตญ ์ฌํด 3์๋ถํฐ ๊ฒฐ์ ๋ฅผ ์์ํ๊ณ , ์ง๊ธ๊น์ง ๋ง 3๊ฐ์์ ๊ฝ...", + "articleType": "" + }, + { + "post_id": "2026-06-24_ETF์ฒซ๋งค์ํ์์ค๋์ง์ง์ด์ _083035b1", + "keyword": "ETF ์ฒซ ๋งค์ ํ ์์ค ๋ ์ง์ง ์ด์ ", + "title": "ETF ์ฒซ ๋งค์ ํ ์์ค ๋ ์ง์ง ์ด์ , ์ ๋ ๋๊ฐ์ด ๋นํ์ด์ (2026๋ )", + "status": "published", + "source": "auto", + "blogId": "default", + "blogName": "", + "blogUrl": "https://hoguwhat1.blogspot.com/2026/06/etf-2026_0421446159.html", + "errorMessage": null, + "createdAt": "2026-06-24T00:00:00", + "publishedAt": "2026-06-24T00:00:00", + "lastAttemptAt": "2026-06-24T00:00:00", + "attempts": 1, + "runNumber": 0, + "wordCount": 3010, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "ETF", + "ETF์์ค", + "ETFํฌ์์ด๋ณด", + "ETF๋ถ์ฐํฌ์", + "ํด์ธETFํ์จ", + "ETF์์๋ฃ", + "ETF๋ถํ ๋งค์" + ], + "metaDescription": "ETF ์ฒ์ ์๋ค๊ฐ ๋ฐ๋ก ์์ค ๋์ ๋นํฉํ๋ ๊ฒฝํ, ์ ๋ ์์ด์. ์คํ๋ ๋ยท๊ฐ์ง ๋ถ์ฐยทํ์จยท์์๋ฃยทํ์ด๋ฐ ์์ฌ, ์ด 5๊ฐ์ง๊ฐ ์ง์ง ์์ธ์ด์์. ์ง์ ๊ฒช์ ์คํจ๋ฅผ ์์งํ๊ฒ ์ ๋ฆฌํ์ต๋๋ค.", + "contentPreview": "์ฒ์ ETF๋ฅผ ์๋ ๋ ์ ์์ง๋ ๊ธฐ์ตํด์. ํด๊ทผํ๊ณ ์ง์ ์์ ์ฆ๊ถ์ฌ ์ฑ ๊น๊ณ , ์ ํ๋ธ ์์ ๋์ฌ์ฏ ๊ฐ ๋ณด๊ณ , '์ด ์ ๋๋ฉด ์ถฉ๋ถํ ๊ณต๋ถํ์ง' ์ถ์ด์ S&P500 ์ถ์ข ETF๋ฅผ ๋ฑ ์๋๋ฐ์. ๊ทธ๋ค์ ๋ ๋ถํฐ ๋ฐ๋ก ๋ง์ด๋์ค๊ฐ ๋จ๊ธฐ ์์ํ์ด์. '์ด, ์ด๊ฑฐ ์๋ ์ด๋ฐ ๊ฑด๊ฐ?' ์ถ์๋๋ฐ ์ผ์ฃผ์ผ์ด ์ง๋๋ ํ๋ณต์ ์ ํ๋๋ผ๊ณ ์. ๊ทธ๋ ์ ๊ฐ ๋๋ ๊ฑด ๋จ์ํ ์์ค ์ด์์ด์...", + "articleType": "" + }, + { + "post_id": "2026-06-23_์ฒซ์์ธ๊ณ์ฝ๋๋์นํน์ฝ์ค์๋ด_9a2e92cb", + "keyword": "์ฒซ ์์ธ ๊ณ์ฝ ๋ ๋์น ํน์ฝ ์ค์๋ด", + "title": "์ฒซ ์์ธ ๊ณ์ฝ ๋ ๋์น ํน์ฝ ์ค์๋ด, ์ ์ง์ง ํํํ์ด์ (2026๋ )", + "status": "published", + "source": "auto", + "blogId": "default", + "blogName": "", + "blogUrl": "https://hoguwhat1.blogspot.com/2026/06/2026_01020777462.html", + "errorMessage": null, + "createdAt": "2026-06-23T00:00:00", + "publishedAt": "2026-06-23T00:00:00", + "lastAttemptAt": "2026-06-23T00:00:00", + "attempts": 1, + "runNumber": 0, + "wordCount": 2943, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "์์ธ๊ณ์ฝ", + "์ฒซ์์ธ", + "ํน์ฝ์ฌํญ", + "์๋์ฐจ๊ณ์ฝ", + "์ฌํ์ด๋ ์์ฌํ ํฌ", + "๋ณด์ฆ๊ธ๋ถ์", + "์์๋ณต๊ตฌ" + ], + "metaDescription": "์ฒซ ์์ธ ๊ณ์ฝ์์ ํน์ฝ์ ๋ชฐ๋ผ ๋ณด์ฆ๊ธ 40๋ง ์์ ๋ ๋ฆฐ ์ค์ ๊ฒฝํ๋ด. ์ ์ฃผ ์ ์ํ ํ์ธ๋ถํฐ ์๋ฆฌ๋น ๋ถ๋ด, ์์๋ณต๊ตฌ ๋ฒ์๊น์ง ๊ผญ ์ฑ๊ฒจ์ผ ํ ํน์ฝ ํญ๋ชฉ์ ์์งํ๊ฒ ์ ๋ฆฌํ์ด์.", + "contentPreview": "์ฌํ์ด๋ ์ ๋ ์ฒ์์ผ๋ก ์์ธ ๊ณ์ฝ์ ํ๋ ๋ ์ ์์ง๋ ์์ํ๊ฒ ๊ธฐ์ตํด์. ๊ณต์ธ์ค๊ฐ์ฌ ์ฌ๋ฌด์์ ์์์ ๊ณ์ฝ์๋ฅผ ๋ฐ์๋ค์๋๋ฐ, ์์งํ ๋ฌด์จ ๋ง์ธ์ง ๋ฐ๋ ์ดํด ๋ชป ํ๋ฉด์ ๊ทธ๋ฅ ๊ณ ๊ฐ๋ง ๋๋์๊ฑฐ๋ ์. '์ด๋ฅธ๋ค์ด ๋ค ์ด๋ ๊ฒ ํ๋ ๊ฑฐ๊ฒ ์ง'๋ผ๋ ๋ง์ฐํ ๋ฏฟ์ ํ๋๋ก์. ๊ทผ๋ฐ ๊ทธ ๋ฏฟ์์ด ์ ๋ฅผ ๊ฝค ์ค๋ ๊ดด๋กญํ์ด์. ๋์ค์ ํด์คํ ๋ ๋ณด์ฆ๊ธ์์ 40๋ง ์์ด ๊ณต์ ๋์ด์. ์ ์ฃผ ๋...", + "articleType": "" + }, + { + "post_id": "2026-06-23_์ง์ฅ์ธํฌ์ก์ข ํฉ์๋์ธ์ง์ ์ ๊ณ ํด๋ดค๋๋_148085fa", + "keyword": "์ง์ฅ์ธ ํฌ์ก ์ข ํฉ์๋์ธ ์ง์ ์ ๊ณ ํด๋ดค๋๋", + "title": "์ง์ฅ์ธ ํฌ์ก ์ข ํฉ์๋์ธ ์ง์ ์ ๊ณ ํด๋ดค๋๋ โ 2026๋ ์์ง ํ๊ธฐ", + "status": "published", + "source": "auto", + "blogId": "default", + "blogName": "", + "blogUrl": "https://hoguwhat1.blogspot.com/2026/06/2026_0358453813.html", + "errorMessage": null, + "createdAt": "2026-06-23T00:00:00", + "publishedAt": "2026-06-23T00:00:00", + "lastAttemptAt": "2026-06-23T00:00:00", + "attempts": 1, + "runNumber": 0, + "wordCount": 3091, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "์ข ํฉ์๋์ธ", + "์ง์ฅ์ธํฌ์ก", + "๋ถ์ ์ธ๊ธ", + "ํํ์ค์ ๊ณ ", + "์๋์ธ์ ๊ณ ", + "ํฌ์ก์ธ๊ธ", + "์ฌ์ ์๋" + ], + "metaDescription": "์ง์ฅ์ธ์ด ์ ํ๋ธยท์ค๋งํธ์คํ ์ด ํฌ์ก ์์ต์ผ๋ก ์ข ํฉ์๋์ธ๋ฅผ ์ง์ ์ ๊ณ ํด๋ณธ 2026๋ ์์ง ํ๊ธฐ. ํํ์ค์์ ๋งํ๋ ์ง์ , ์์ ์ธ ์ถ๋ฉ ๊ฒฝํ, ์ธ๋ฌด์ฌ ์์ด ํด๋ ๋๋์ง๊น์ง ํ์ค์ ์ผ๋ก ์ ๋ฆฌํ์ด์.", + "contentPreview": "์๋ ์ด๋ง๋์ฏค, ์ ๋ ํํ์ค ์์์ ๋ฉํ๋ ํ๋ฉด๋ง ๋ฐ๋ผ๋ณด๊ณ ์์์ด์. ๋ณธ์ ์ธ์ ์ ํ๋ธ ์ฑ๋ ์์ต์ด๋ ์ค๋งํธ์คํ ์ด ํ๋งค ์์ต์ด ์กฐ๊ธ์ฉ ์๊ธฐ๋ฉด์, ์ฒ์์ผ๋ก '์ข ํฉ์๋์ธ ์ ๊ณ ๋์์'๊ฐ ๋๊ฑฐ๋ ์. ์ง์ฅ ๋ค๋๋ฉด์ ์ฐ๋ง์ ์ฐ์ ํ์ฌ๊ฐ ๋ค ํด์คฌ์ผ๋๊น ์ธ๊ธ ์ ๊ณ ๋ฅผ ๋ด๊ฐ ์ง์ ํด๋ณธ ์ ์ด ์์์ด์. ์์งํ ์ธ๋ฌด์ฌํํ ๋งก๊ธฐ๋ฉด ํธํ๋ค๋ ๊ฑด ์์๋๋ฐ, ๊ธ์ก์ด ํฌ์ง๋ ์์๋ฐ ์์ญ...", + "articleType": "" + }, + { + "post_id": "2026-06-23_ChatGPT์ ๋ฃ์ ํํ์ค์ ์ ๋ฌดํ์ฉ์์ง_811cabd8", + "keyword": "ChatGPT ์ ๋ฃ ์ ํ ํ ์ค์ ์ ๋ฌด ํ์ฉ ์์ง ํ๊ธฐ", + "title": "ChatGPT Plus 6๊ฐ์ ์ฐ๊ณ ๋๋ ์์งํ ์๊ฐ (2026๋ ์ง์ฅ์ธ ํ๊ธฐ)", + "status": "published", + "source": "auto", + "blogId": "default", + "blogName": "", + "blogUrl": "https://hoguwhat1.blogspot.com/2026/06/chatgpt-plus-6-2026.html", + "errorMessage": null, + "createdAt": "2026-06-23T00:00:00", + "publishedAt": "2026-06-23T00:00:00", + "lastAttemptAt": "2026-06-23T00:00:00", + "attempts": 1, + "runNumber": 0, + "wordCount": 2961, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "ChatGPT", + "ChatGPT Plus", + "AI์ ๋ฌดํ์ฉ", + "์ง์ฅ์ธ์์ฐ์ฑ", + "AI๋๊ตฌํ๊ธฐ", + "ChatGPT์ ๋ฃ", + "์ ๋ฌด์๋ํ" + ], + "metaDescription": "ChatGPT ์ ๋ฃ ์ ํ ํ 6๊ฐ์, ์ง์ฅ์ธ์ด ์ค์ ์ ๋ฌด์์ ์ฐ๋ฉฐ ๋๋ ์ฅ๋จ์ ์ ์์งํ๊ฒ ์ ๋ฆฌํ์ด์. ๊ธฐ๋ํ๋ ๊ฒ๊ณผ ๋ฌ๋๋ ์ , ์์ธ๋ก ์ ์ฉํ๋ ๊ธฐ๋ฅ๊น์ง ์๋ ๊ทธ๋๋ก ์๋๋ค.", + "contentPreview": "์ ์ฒ์์ ChatGPT ์ ๋ฃ ์ ํํ ๋ ์ง์ง ๊ณ ๋ฏผ ๋ง์ด ํ์ด์. ์ 20๋ฌ๋ฌ๋ฉด ์ฐ๋ฆฌ ๋์ผ๋ก 2๋ง 8์ฒ ์ ์ ๋ ๋๋๋ฐ, ๊ทธ๋ฅ ๋ฌด๋ฃ๋ก๋ ์ธ ์ ์๋๋ฐ ๊ตณ์ด ๋ ๋ด์ผ ํ๋ ์ถ์๊ฑฐ๋ ์. ๊ทผ๋ฐ ์๋ ๋ง์ ์ ๋ฌด ๋ณด๊ณ ์ ํ๋ ์ฐ๋ค๊ฐ ๋ฌด๋ฃ ๋ฒ์ ์ด ์๊พธ ๋๊ธฐ๊ณ , ์๋ต ์๋๋ ๋๋ฆฌ๊ณ , ๊ฒฐ๊ตญ ๋ง๊ฐ ๋ ๋ฐค์ ์ ๋๋ก ๋ชป ์ผ๋ ๊ธฐ์ต์ด ์์ด์. ๊ทธ ๋ค์๋ ๋ฐ๋ก Plus ๊ฒฐ์ ํ์ต๋...", + "articleType": "" + }, + { + "post_id": "2026-06-23_ETF์ฒ์์์๋๋ด๊ฐํ์ค์3๊ฐ์ง_cf89f78f", + "keyword": "ETF ์ฒ์ ์์ ๋ ๋ด๊ฐ ํ ์ค์ 3๊ฐ์ง", + "title": "ETF ์ฒ์ ์์ ๋ ๋ด๊ฐ ํ ์ค์ 3๊ฐ์ง (2026๋ ์ง์ ๊ฒฝํ ํ๊ธฐ)", + "status": "published", + "source": "auto", + "blogId": "default", + "blogName": "", + "blogUrl": "https://hoguwhat1.blogspot.com/2026/06/etf-3-2026.html", + "errorMessage": null, + "createdAt": "2026-06-23T00:00:00", + "publishedAt": "2026-06-23T00:00:00", + "lastAttemptAt": "2026-06-23T00:00:00", + "attempts": 1, + "runNumber": 0, + "wordCount": 2944, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "ETFํฌ์", + "ETF์ด๋ณด", + "ETF์ค์", + "์ฌํ ํฌ", + "์ง์ฅ์ธํฌ์", + "ETF์ด์ฉ๋ณด์", + "๋ถ์ฐํฌ์" + ], + "metaDescription": "ETF ์ฒ์ ์์ ๋ ์ ๊ฐ ์ค์ ๋ก ํ ์ค์ 3๊ฐ์ง๋ฅผ ์์งํ๊ฒ ์ ๋ฆฌํ์ด์. ๋ญ ์ฌ๋์ง ๋ชจ๋ฅด๊ณ ์ฐ ๊ฒ, ๊ฐ์ง ๋ถ์ฐ, ์์๋ฃ ๋ฌด์๊น์ง โ ์ด ๊ธ ํ๋๋ก ๊ฐ์ ์ค์ ํผํ์ธ์.", + "contentPreview": "์์งํ ๋งํ ๊ฒ์. ์ ETF ์ฒ์ ์์ ๋ ์์ ์์ ์์๊ฑฐ๋ ์. ์ ํ๋ธ ๋ณด๊ณ , ๋ธ๋ก๊ทธ ์ฐพ์๋ณด๊ณ , ๋๋ฆ ๊ณต๋ถํ๋ค๊ณ ์๊ฐํ๋๋ฐ ์ค์ ๋ก ํด๋ณด๋๊น ์์ ๋ด ์ธ์์ด์์ด์. ์ฃผ์ ๊ณ์ข์ ์ฒซ ์ ๊ธํ๊ณ ETF ์ข ๋ชฉ ํ๋ฉด ๋ณด๋ ์๊ฐ ๊ฐ์๊ธฐ ๋จธ๋ฆฟ์์ด ํ์์ง๋ ๊ทธ ๋๋, ๊ณต๋ถํ ๋๋ ๋ชฐ๋์ด์. ๊ทธ ๊ฒฝํ์ด 3๋ ์ ์ผ์ธ๋ฐ ์ง๊ธ๋ ์์ํ๋ค์. ๊ทธ ๋ค๋ก ์กฐ๊ธ์ฉ ๋ฐฐ์๊ฐ๋ฉด์ ์ง๊ธ์ ...", + "articleType": "" + }, + { + "post_id": "2026-06-23_AI์ฝ๋ฉํด3๊ฐ์์จ๋ณธ์์งํ๊ธฐ_5c17facd", + "keyword": "AI ์ฝ๋ฉ ํด 3๊ฐ์ ์จ๋ณธ ์์ง ํ๊ธฐ", + "title": "AI ์ฝ๋ฉ ํด 3๊ฐ์ ์จ๋ณธ ์์ง ํ๊ธฐ โ ์ง์ง ๋ฌ๋ผ์ก๋์?", + "status": "published", + "source": "auto", + "blogId": "default", + "blogName": "", + "blogUrl": "https://hoguwhat1.blogspot.com/2026/06/ai-3.html", + "errorMessage": null, + "createdAt": "2026-06-23T00:00:00", + "publishedAt": "2026-06-23T00:00:00", + "lastAttemptAt": "2026-06-23T00:00:00", + "attempts": 1, + "runNumber": 0, + "wordCount": 3003, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "AI์ฝ๋ฉํด", + "Cursorํ๊ธฐ", + "GitHubCopilot", + "์ฝ๋ฉ์ ๋ฌธ์", + "ํ์ด์ฌ์๋ํ", + "์ง์ฅ์ธ์ฝ๋ฉ", + "AI๊ฐ๋ฐ๋๊ตฌ" + ], + "metaDescription": "GitHub Copilot, Cursor, Claude๋ฅผ 3๊ฐ์ ์ง์ ์จ๋ณธ ์ง์ฅ์ธ ์์ง ํ๊ธฐ. ๊ฐ๋ฐ์ ์๋ ํ์ด์ฌ ์ ๋ฌธ์ ์์ ์์ ์ง์ง ๋ฌ๋ผ์ง ์ , ๋ถํธํ ์ ๋ค ํธ์ด๋จ์ด์.", + "contentPreview": "์ ๋ ๊ฐ๋ฐ์๊ฐ ์๋๋๋ค. ๊ทธ๋ฅ ํ๋ฒํ 30๋ ์ง์ฅ์ธ์ธ๋ฐ, ์ ๋ฌด ์๋ํ ์คํฌ๋ฆฝํธ ํ๋ ์ง๋ณด๊ฒ ๋ค๊ณ ํ์ด์ฌ ๋ ํ์ ์์ํ ์ง 1๋ ์ ๋ ๋์ด์. ๊ทผ๋ฐ ์์งํ ๋งํ๋ฉด, ํผ์ ๊ณต๋ถํ ๋ ๋งํ๋ ๊ตฌ๊ฐ์ด ๋๋ฌด ๋ง์์ ์ค๊ฐ์ ์ฌ๋ฌ ๋ฒ ํฌ๊ธฐํ ๋ปํ๊ฑฐ๋ ์. ๊ทธ๋ฌ๋ค ์ฌํด ์ด๋ถํฐ AI ์ฝ๋ฉ ํด์ ๋ณธ๊ฒฉ์ ์ผ๋ก ์จ๋ณด๊ธฐ ์์ํ๊ณ , 3๊ฐ์์ด ์ง๋ ์ง๊ธ ์ ์ค๋ ฅ๊ณผ ์ ๋ฌด ๋ฐฉ์์ด ๊ฝค ๋ฌ๋ผ์ก์ต...", + "articleType": "" + }, + { + "post_id": "2026-06-22_ETF์๋ํฌ์6๊ฐ์์ง์ ํด๋ดค๋๋์์ต๋ฅ ํ_e8772583", + "keyword": "ETF ์๋ํฌ์ 6๊ฐ์ ์ง์ ํด๋ดค๋๋ ์์ต๋ฅ ํ์ค", + "title": "ETF ์๋ํฌ์ 6๊ฐ์ ์ง์ ํด๋ดค๋๋ ์์ต๋ฅ ํ์ค (2026๋ ์์ง ํ๊ธฐ)", + "status": "published", + "source": "auto", + "blogId": "default", + "blogName": "", + "blogUrl": "https://hoguwhat1.blogspot.com/2026/06/etf-6-2026.html", + "errorMessage": null, + "createdAt": "2026-06-22T00:00:00", + "publishedAt": "2026-06-22T00:00:00", + "lastAttemptAt": "2026-06-22T00:00:00", + "attempts": 1, + "runNumber": 0, + "wordCount": 2994, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "ETF์๋ํฌ์", + "ETF์์ต๋ฅ ", + "์ง์ฅ์ธ์ฌํ ํฌ", + "์๋ํฌ์ํ๊ธฐ", + "ETFํฌ์๋ฐฉ๋ฒ", + "S&P500ETF", + "๋์ค๋ฅETF" + ], + "metaDescription": "ETF ์๋ํฌ์ 6๊ฐ์ ์ง์ ํด๋ณธ ์ง์ฅ์ธ์ ์์ง ํ๊ธฐ. ์์ต๋ฅ +8.9% ๋ฌ์ฑํ์ง๋ง ์ค๊ฐ -12% ์์ค ๊ตฌ๊ฐ์ ํ์ค, ๊ธฐ๋์ ๋ฌ๋๋ ์ ๊น์ง ๊ฐ๊ฐ ์์ด ์ ๋ฆฌํ์ด์.", + "contentPreview": "์๋ 12์, ํ์ฌ ์ ์ฌ์๊ฐ์ ์ ํ๋ธ ์๊ณ ๋ฆฌ์ฆ์ด ETF ์๋ํฌ์ ์์์ ๊ณ์ ๋์์คฌ์ด์. '์ 30๋ง ์์ผ๋ก ๋ ธํ ์ค๋น ์์ฑ' ๊ฐ์ ์ ๋ชฉ๋ค์ด์๋๋ฐ, ์์งํ ์ฒ์์ ๊ทธ๋ฅ ํ๋ ค๋ดค์ด์. ๊ทผ๋ฐ ์ฐ๋ง ์ ์ฐ ๊ฒฐ๊ณผ ๋ณด๊ณ ๋์ ์๊ฐ์ด ๋ฐ๋์์ต๋๋ค. ์ธ๊ธ์ ๊ผฌ๋ฐ๊ผฌ๋ฐ ๋๊ฐ๋๋ฐ ํต์ฅ ์๊ณ ๋ ๊ทธ๋๋ก๋๋ผ๊ณ ์. ๋ญ๊ฐ ๋ฐ๊ฟ์ผ๊ฒ ๋ค ์ถ์ด์ 2025๋ 12์๋ถํฐ ETF ์๋ํฌ์๋ฅผ ๋ณธ๊ฒฉ์ ์ผ...", + "articleType": "" + }, + { + "post_id": "2026-06-22_์ฑGPT์ ๋ฃํ๋์ค์ ์จ๋ณด๊ณ ํด์งํ์ด์ _ea9f2aac", + "keyword": "์ฑGPT ์ ๋ฃ ํ๋ ์ค์ ์จ๋ณด๊ณ ํด์งํ ์ด์ ", + "title": "์ฑGPT ์ ๋ฃ ํ๋ 6๊ฐ์ ์จ๋ณด๊ณ ํด์งํ ์์งํ ์ด์ (2026๋ )", + "status": "published", + "source": "auto", + "blogId": "default", + "blogName": "", + "blogUrl": "https://hoguwhat1.blogspot.com/2026/06/gpt-6-2026.html", + "errorMessage": null, + "createdAt": "2026-06-22T00:00:00", + "publishedAt": "2026-06-22T00:00:00", + "lastAttemptAt": "2026-06-22T00:00:00", + "attempts": 1, + "runNumber": 0, + "wordCount": 2751, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "์ฑGPT", + "์ฑGPT์ ๋ฃํ๋", + "ChatGPT Plus", + "AI๊ตฌ๋ ์๋น์ค", + "์คํAI", + "AI์์ฐ์ฑ๋๊ตฌ", + "๊ตฌ๋ ํด์ง" + ], + "metaDescription": "์ฑGPT ์ ๋ฃ ํ๋์ 6๊ฐ์ ์ง์ ์จ๋ณด๊ณ ํด์งํ 30๋ ์ง์ฅ์ธ์ ์์ง ํ๊ธฐ. ๋ฌด๋ฃ์ ์ ๋ฃ์ ์ค์ ์ฐจ์ด, ํด์ง ํ ๋ฌ๋ผ์ง ์ , ๊ทธ๋ฆฌ๊ณ ์ ๋ง ์ ๋ฃ๊ฐ ํ์ํ ์ฌ๋์ ๋๊ตฌ์ธ์ง ์ ๋ฆฌํ์ต๋๋ค.", + "contentPreview": "์ฒ์ ์ฑGPT Plus๋ฅผ ๊ฒฐ์ ํ์ ๋, ์ ๋ ์ง์ง '์ด์ ์ ๋ฌด ํจ์จ ๋ ๋ฐฐ๋ ๋๊ฒ ๋ค'๊ณ ์๊ฐํ์ด์. ์ 20๋ฌ๋ฌ, ๋น์ ํ์จ๋ก 2๋ง 7์ฒ ์ ์ ๋์๋๋ฐ ๊ทธ ์ ๋๋ฉด ์ถฉ๋ถํ ์ธ ๋งํ๋ค๊ณ ํ๋จํ๊ฑฐ๋ ์. ๋ธ๋ก๊ทธ ๊ธ ์ธ ๋ ๋ณด์กฐ๋ก ์ฐ๊ณ , ์ง์ฅ์์ ๋ณด๊ณ ์ ์ ๋ฆฌํ ๋๋ ์ฐ๊ณ , ์์ด ์ด๋ฉ์ผ๋ ๋์๋ฐ๊ณ ... ๋จธ๋ฆฟ์์์๋ ์ด๋ฏธ ์๊ฐ ๋ฝ์ ๊ณ์ฐ์ด ๋ค ๋์์ฃ . ๊ทผ๋ฐ 6๊ฐ์ ํ์...", + "articleType": "" + }, + { + "post_id": "2026-06-22_SKํ์ด๋์ค์ฃผ๊ฐํ๋ฝ์ด์ 2025_872582c5", + "keyword": "SKํ์ด๋์ค ์ฃผ๊ฐ ํ๋ฝ ์ด์ 2025", + "title": "[1ํธ] SKํ์ด๋์ค HBM ๋ฏฟ๊ณ ์๋ค๊ฐ -30% ๋ง์ ๋ ์ ๊ธฐ๋ก | 2026๋ ", + "status": "failed", + "source": "auto", + "blogId": "default", + "blogName": "", + "blogUrl": "", + "errorMessage": "์ด์ ์คํ ๊ธฐ๋ก (์์ธ ์ค๋ฅ ์์)", + "createdAt": "2026-06-22T00:00:00", + "publishedAt": null, + "lastAttemptAt": "2026-06-22T00:00:00", + "attempts": 1, + "runNumber": 0, + "wordCount": 3038, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "SKํ์ด๋์ค-์ฃผ๊ฐ์ ๋ง-์ค์ ๊ธฐ๋ก", + "SKํ์ด๋์ค์ฃผ๊ฐ", + "HBMํฌ์", + "๋ฐ๋์ฒด์ฃผ์", + "์ฃผ๊ฐํ๋ฝ์ด์ ", + "๊ฐ์ธํฌ์์์คํจ๊ธฐ๋ก", + "DRAM์ ๋ง" + ], + "metaDescription": "HBM ๊ธฐ๋๊ฐ์ SKํ์ด๋์ค๋ฅผ ์๋ค๊ฐ -30% ์์ค์ ์ ์ ์ค์ ๊ฒฝํ์ ๋ฐํ์ผ๋ก, SKํ์ด๋์ค ์ฃผ๊ฐ ํ๋ฝ ์ด์ 2025๋ฅผ ๊ตฌ์ฒด์ ์ผ๋ก ๋ถ์ํฉ๋๋ค. ์์ถ๊ท์ ยทHBM ๊ณต๋ฐฑยทDRAM ๊ฐ๊ฒฉ๊น์ง ์์งํ๊ฒ ์ ๋ฆฌํ์ด์.", + "contentPreview": "[1ํธ] SKํ์ด๋์ค HBM ๋ฏฟ๊ณ ์๋ค๊ฐ -30% ๋ง์ ๋ ์ ๊ธฐ๋ก | 2026๋ ์์งํ ๋งํ ๊ฒ์. ์ ๋ 2024๋ ํ๋ฐ๊ธฐ์ SKํ์ด๋์ค๋ฅผ ์๊ณ , 2025๋ ์ ์ ๋๋ก ๋ฌผ๋ ธ์ต๋๋ค. HBM(๊ณ ๋์ญํญ๋ฉ๋ชจ๋ฆฌ) ์ด์ผ๊ธฐ๊ฐ ๋์ฌ ๋๋ง๋ค ๋ด์ค๋ ์จํต '์ํผ์ฌ์ดํด', 'AI ์ํ์ฃผ 1์์'์์ด์. ์ ๋ ๊ทธ ๋ถ์๊ธฐ์ ์ฌ๋ผํ๊ณ , 20๋ง ์๋ ํ๋ฐ์ ๋ถํ ๋งค์ํ์ต๋๋ค. ๊ทธ๋ฐ๋ฐ ๊ฒฐ๊ณผ...", + "articleType": "" + }, + { + "post_id": "2026-06-22_SKํ์ด๋์คHBM๊ฐ๊ฒฉ์ฃผ๊ฐ์๊ด๊ด๊ณ_27cf481e", + "keyword": "SKํ์ด๋์ค HBM ๊ฐ๊ฒฉ ์ฃผ๊ฐ ์๊ด๊ด๊ณ", + "title": "[2ํธ] SKํ์ด๋์ค ์ฃผ๊ฐ, HBM ๊ณ ์ ๊ฐ๊ฒฉ์ด ์ค์ ๋ณด๋ค ๋จผ์ ์์ง์ด๋ ์ด์ 2026", + "status": "failed", + "source": "auto", + "blogId": "default", + "blogName": "", + "blogUrl": "", + "errorMessage": "์ด์ ์คํ ๊ธฐ๋ก (์์ธ ์ค๋ฅ ์์)", + "createdAt": "2026-06-22T00:00:00", + "publishedAt": null, + "lastAttemptAt": "2026-06-22T00:00:00", + "attempts": 1, + "runNumber": 0, + "wordCount": 3287, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "SKํ์ด๋์ค-์ฃผ๊ฐ์ ๋ง-์ค์ ๊ธฐ๋ก", + "SKํ์ด๋์ค", + "HBM๊ฐ๊ฒฉ", + "๋ฐ๋์ฒดํฌ์", + "DDR5", + "๋ฉ๋ชจ๋ฆฌ๋ฐ๋์ฒด", + "์ฃผ์๊ณต๋ถ" + ], + "metaDescription": "SKํ์ด๋์ค ์ฃผ๊ฐ๊ฐ ์ค์ ๋ณด๋ค ๋จผ์ ์์ง์ด๋ ์ด์ , HBMยทDDR5 ๊ณ ์ ๊ฐ๊ฒฉ ํ๋ฆ์ผ๋ก ์ค๋ช ํด์. -30% ์์ค ๊ฒฝํ ํ ์ง์ ๊ณต๋ถํ ์ ํ์งํ ๋ถ์์ 2026๋ ์๊ฐ์ผ๋ก ์ ๋ฆฌํ์ด์.", + "contentPreview": "1ํธ์์ ์ ๊ฐ -30% ์์ค์ ๋ง์๋ ๋ ์๊ธฐ๋ฅผ ํ๋๋ฐ, ๊ทธ๋ ๊ฐ์ฅ ๋นํฉ์ค๋ฌ์ ๋ ๊ฒ ๋ญ์ง ์์ธ์? ์ค์ ๋ฐํ๊ฐ ๋์์ง ์์๋๋ฐ๋ ์ฃผ๊ฐ๊ฐ ๋น ์ก๋ค๋ ๊ฑฐ์์. ๋น์ ์ ๋ \"์ค์ ์ข์ผ๋ฉด ์ฃผ๊ฐ ์ค๋ฅธ๋ค\"๋ ์์ฃผ ๋จ์ํ ๊ณต์๋ง ๋ฏฟ๊ณ ์์๊ฑฐ๋ ์. ๊ทธ๋ฌ๋ค ์์ค์ ๋ณด๊ณ ๋์์ผ ๋ญ๊ฐ ๋ค๋ฅธ ๊ฒ ๋จผ์ ์์ง์ด๊ณ ์๋ค๋ ๊ฑธ ๊นจ๋ฌ์์ด์. ๊ทธ๊ฒ ๋ฐ๋ก ๋ฉ๋ชจ๋ฆฌ ๊ณ ์ ๊ฐ๊ฒฉ, ํนํ HBM๊ณผ DD...", + "articleType": "" + }, + { + "post_id": "2026-06-22_SKํ์ด๋์ค์ฃผ๊ฐ์ ๋ง2026ํ๋ฐ๊ธฐ๋งค์ํ_9b27e945", + "keyword": "SKํ์ด๋์ค ์ฃผ๊ฐ ์ ๋ง 2026 ํ๋ฐ๊ธฐ ๋งค์ ํ์ด๋ฐ", + "title": "[3ํธ] 2026๋ ํ๋ฐ๊ธฐ SKํ์ด๋์ค, ์ง๊ธ ์ด ์ ์๋ ์ฌ๋์ ์ฒดํฌ๋ฆฌ์คํธ", + "status": "failed", + "source": "auto", + "blogId": "default", + "blogName": "", + "blogUrl": "", + "errorMessage": "์ด์ ์คํ ๊ธฐ๋ก (์์ธ ์ค๋ฅ ์์)", + "createdAt": "2026-06-22T00:00:00", + "publishedAt": null, + "lastAttemptAt": "2026-06-22T00:00:00", + "attempts": 1, + "runNumber": 0, + "wordCount": 2469, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "SKํ์ด๋์ค-์ฃผ๊ฐ์ ๋ง-์ค์ ๊ธฐ๋ก", + "SKํ์ด๋์ค์ฃผ๊ฐ", + "๋ฐ๋์ฒด์ฃผํฌ์", + "HBM์ฃผ๊ฐ", + "SKํ์ด๋์ค๋งค์ํ์ด๋ฐ", + "์ฃผ์๊ณต๋ถ", + "๋ฐ๋์ฒด์ฌ์ดํด" + ], + "metaDescription": "SKํ์ด๋์ค ์ฃผ๊ฐ ์ ๋ง 2026 ํ๋ฐ๊ธฐ, ์ง์ -30% ๋ง๊ณ ๊ณต๋ถํ 30๋ ์ง์ฅ์ธ์ด ์ค์ ๋งค์ ์ ํ์ธํ๋ ์ฒดํฌ๋ฆฌ์คํธ์ HBM4ยท๊ธ๋ฆฌ ํต์ฌ ๋ณ์๋ฅผ ์์งํ๊ฒ ์ ๋ฆฌํ์ต๋๋ค. ํฌ์ ์ ๊ผญ ์ฝ์ด๋ณด์ธ์.", + "contentPreview": "์์งํ ๋งํ๋ฉด, ์ด ๊ธ์ ์ฐ๊ธฐ๊น์ง ๊ฝค ์ค๋ ๊ฑธ๋ ธ์ด์. 1ํธ์์ -30% ๋ง์ ์๊ธฐ ํธ์ด๋๊ณ , 2ํธ์์ ์ค์ ๋ณด๋ค ์๊ธ๊ณผ ๋ฐ๋์ฒด ์ฌ์ดํด์ด ๋จผ์ ์์ง์ธ๋ค๋ ๊ฑธ ๊ณต๋ถํ๋๋ฐ, ์ ์ \"๊ทธ๋์ ์ง๊ธ ์ฌ๋ ๋๋\"๋ ์ง๋ฌธ์ ๋ํ ๋ต์ ์ค์ค๋ก ๋ด๋ฆฌ๋ ๊ฒ ์ ์ผ ์ด๋ ค์ ๊ฑฐ๋ ์. ๊ณต๋ถ๋ ํ๋๋ฐ ๊ฒฐ๋ก ์ ๋ชป ๋ด๋ฆฌ๋ ๊ทธ ์ฐ์ฐํ ์ํ, ์๋ง ์ ๋ง ๊ทธ๋ฐ ๊ฑด ์๋ ๊ฑฐ์์. 3ํธ์ ๊ทธ๋์ ์ฐ๊ฒ...", + "articleType": "" + }, + { + "post_id": "2026-06-22_ETF์ฒซ๋งค์ํํ๋ฌ์์ต๋ฅ ์์ง๊ณต๊ฐ_c8332718", + "keyword": "ETF ์ฒซ ๋งค์ ํ ํ ๋ฌ ์์ต๋ฅ ์์ง ๊ณต๊ฐ", + "title": "ETF ์ฒซ ๋งค์ ํ ํ ๋ฌ ์์ต๋ฅ ์์ง ๊ณต๊ฐ โ 2026๋ ์ง์ฅ์ธ ์ค์ ํ๊ธฐ", + "status": "published", + "source": "auto", + "blogId": "default", + "blogName": "", + "blogUrl": "https://hoguwhat1.blogspot.com/2026/06/etf-2026.html", + "errorMessage": null, + "createdAt": "2026-06-22T00:00:00", + "publishedAt": "2026-06-22T00:00:00", + "lastAttemptAt": "2026-06-22T00:00:00", + "attempts": 1, + "runNumber": 0, + "wordCount": 2900, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "ETFํฌ์", + "ETF์์ต๋ฅ ", + "ETF์ด๋ณด", + "์ง์ฅ์ธ์ฌํ ํฌ", + "S&P500ETF", + "์ ๋ฆฝ์ํฌ์", + "ETFํ๊ธฐ" + ], + "metaDescription": "ETF ์ฒซ ๋งค์ ํ ํ ๋ฌ, ์ค์ ์์ต๋ฅ 3.2%๋ฅผ ์ซ์ ๊ทธ๋๋ก ๊ณต๊ฐํฉ๋๋ค. S&P500ยท์ฝ์คํผ200ยท๋ฐ๋์ฒด ETF ์ง์ ์ฌ๋ณด๊ณ ๋๋ ๊ฒ๋ค, ์์งํ๊ฒ ์ ๋ฆฌํ์ด์.", + "contentPreview": "์์งํ ๋งํ ๊ฒ์. ์ ์๋ ๊น์ง๋ง ํด๋ ETF ์ ํ๋ธ ์์์ ๋ณด๋ฉด์ \"๋๋ ํด๋ด์ผ์ง\" ํ๊ณ ๋๋ ์ฌ๋์ด์์ด์. ๋งค๋ฒ \"์ง๊ธ ์์ํ๋ฉด ๊ณ ์ ์๋์ผ?\" ๊ฐ์ ์๊ฐ์ด ๋ฐ๋ชฉ์ ์ก์๊ฑฐ๋ ์. ๊ทผ๋ฐ ์ฌํด ์ด ํ์ฌ ๋๋ฃ๊ฐ ์ฐ๊ธ์ ์ถ ๊ณ์ข๋ก S&P500 ETF๋ฅผ ์ฌ์ ์กฐ์ฉํ ์์ต ๋ด๊ณ ์๋ค๋ ๊ฑธ ๋ฃ๊ณ ์์ผ ๋๋์ด ์์ง์์ต๋๋ค. ๋ ์ด์ ๊ณต๋ถ๋ง ํ๋ค๊ฐ ์๊ฐ๋ง ํ๋ ค๋ณด๋ด๊ธฐ ์ซ์์ด์....", + "articleType": "" + }, + { + "post_id": "2026-06-22_๊ณต๋ณต๊ฐํ์ ๋จ์ํ๋ฌํํ๋น๋ณํ์ง์ ์ธก์ _f7b2039c", + "keyword": "๊ณต๋ณต ๊ฐํ์ ๋จ์ ํ ๋ฌ ํ ํ๋น ๋ณํ ์ง์ ์ธก์ ", + "title": "๊ณต๋ณต ๊ฐํ์ ๋จ์ ํ ๋ฌ, ํ๋น์ ์ง์ ์ธก์ ํด๋ดค์ด์ (2026๋ ์์ง ํ๊ธฐ)", + "status": "published", + "source": "auto", + "blogId": "default", + "blogName": "", + "blogUrl": "https://hoguwhat1.blogspot.com/2026/06/2026_02095432711.html", + "errorMessage": null, + "createdAt": "2026-06-22T00:00:00", + "publishedAt": "2026-06-22T00:00:00", + "lastAttemptAt": "2026-06-22T00:00:00", + "attempts": 1, + "runNumber": 0, + "wordCount": 3071, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "๊ฐํ์ ๋จ์", + "๊ณต๋ณตํ๋น", + "ํ๋น์ธก์ ", + "ํ๋น๊ด๋ฆฌ", + "16:8๋จ์", + "๊ณต๋ณตํ๋น์ฅ์ ", + "์ง์ฅ์ธ๊ฑด๊ฐ" + ], + "metaDescription": "๊ณต๋ณตํ๋น 103mg/dL๋ก ๊ฒฝ๊ณ์ ํ์ ๋ฐ๊ณ ์ง์ ํ๋น ์ธก์ ๊ธฐ ์ฌ์ 16:8 ๊ฐํ์ ๋จ์ ํ ๋ฌ ํด๋ดค์ด์. ๋งค์ผ ์์นจ ์ธก์ ํ ์์น ๋ณํ์ ์์งํ ํ๊ธฐ๋ฅผ ๊ณต์ ํฉ๋๋ค.", + "contentPreview": "์ ์ฌ์ค ์๋ ๊น์ง๋ง ํด๋ ๊ฐํ์ ๋จ์ ์์ฒญ ํ์์ ์ด์์ด์. ์ ํ๋ธ๋ ๋ธ๋ก๊ทธ์์ 'ํ๋น ์กํ๊ณ ์ด ๋น ์ง๊ณ ํผ๋ถ๋ ์ข์์ก๋ค'๋ ํ๊ธฐ๋ฅผ ๋ณผ ๋๋ง๋ค '์ด์ฐจํผ ๋ ๋จน์ผ๋๊น ์ด ๋น ์ง๋ ๊ฑฐ ์๋๊ฐ?'๋ผ๊ณ ๋์์ ์ผ๋ก ์๊ฐํ๊ฑฐ๋ ์. ๊ทธ๋ฐ๋ฐ ์ฌํด 4์, ์ง์ฅ ๊ฑด๊ฐ๊ฒ์ง์์ ๊ณต๋ณตํ๋น์ด 103mg/dL์ผ๋ก ๋์์ต๋๋ค. ์ ์ ๊ธฐ์ค์ธ 100mg/dL์ ์ด์ง ๋๊ธด '๊ณต๋ณตํ๋น์ฅ์ ์ ๋จ๊ณ...", + "articleType": "" + }, + { + "post_id": "2026-06-22_์ผ์ฑ์ ์์ฃผ๊ฐํ๋ฝ์ด์ ๊ฐ์ธํฌ์์์ค์_ba055b75", + "keyword": "์ผ์ฑ์ ์ ์ฃผ๊ฐ ํ๋ฝ ์ด์ ๊ฐ์ธํฌ์์ ์ค์", + "title": "[1ํธ] ์ผ์ฑ์ ์ ์ฒ์ ์๋ค๊ฐ ๋ฌผ๋ฆฐ ๋ด๊ฐ ๋ถ์ ๊ณต๋ถ ์์ํ ์ด์ 2026", + "status": "failed", + "source": "auto", + "blogId": "default", + "blogName": "", + "blogUrl": "", + "errorMessage": "์ด์ ์คํ ๊ธฐ๋ก (์์ธ ์ค๋ฅ ์์)", + "createdAt": "2026-06-22T00:00:00", + "publishedAt": null, + "lastAttemptAt": "2026-06-22T00:00:00", + "attempts": 1, + "runNumber": 0, + "wordCount": 3368, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "์ผ์ฑ์ ์์ฃผ๊ฐ์ ๋ง-์ค์ ํฌ์๊ธฐ๋ก", + "์ผ์ฑ์ ์์ฃผ๊ฐ", + "์ผ์ฑ์ ์ํ๋ฝ์ด์ ", + "๊ฐ์ธํฌ์์์ค์", + "๋ฐ๋์ฒด์ฃผ์๊ณต๋ถ", + "HBM๊ฒฝ์๋ ฅ", + "์ฃผ์์ด๋ณด๊ฒฝํ" + ], + "metaDescription": "์ผ์ฑ์ ์ ์ฃผ๊ฐ 66,000์์ ์ฒ์ ์๋ค๊ฐ 40,000์๋๊น์ง ๋ฌผ๋ฆฐ 30๋ ์ง์ฅ์ธ์ ์ค์ ๊ฒฝํ. ์ผ์ฑ์ ์ ์ฃผ๊ฐ ํ๋ฝ ์ด์ ์ ๊ฐ์ธํฌ์์ ์ค์๋ฅผ ์ง์ ๊ณต๋ถํ๋ฉฐ ๊นจ๋ฌ์ ๊ฒ๋ค์ ์์งํ๊ฒ ์ ๋ฆฌํ์ด์.", + "contentPreview": "์์งํ ๋งํ๋ฉด, ์ ๋ ์ผ์ฑ์ ์ ์ฃผ๊ฐ๋ฅผ ์ ๋๋ก ๋ถ์ํ์ง๋ ์๊ณ ์์ด์. 2024๋ ์ด, ์ฃผ๋ณ์์ \"์ผ์ฑ์ ์๋ ๊ตญ๋ฏผ์ฃผ์์, ๋งํ๊ฒ ์ด?\"๋ผ๋ ๋ง์ ๊ท์ ๋ชป์ด ๋ฐํ๋๋ก ๋ค์๊ณ , ์ ๋ ๊ทธ๋ฅ ๊ทธ ๋ง ๋ฏฟ๊ณ 66,000์๋์ ์ฒซ ๋งค์๋ฅผ ๋๋ ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ช ๋ฌ์ด ์ง๋์ง ์์ ์ฃผ๊ฐ๋ 40,000์๋๊น์ง ๋ด๋ ค๊ฐ์ด์. ๊ทธ๋ ์ฒ์์ผ๋ก \"์, ๋ด๊ฐ ์๋ฌด๊ฒ๋ ๋ชจ๋ฅด๊ณ ์์๊ตฌ๋\"๋ฅผ ...", + "articleType": "" + }, + { + "post_id": "2026-06-22_์ผ์ฑ์ ์์ฃผ๊ฐ๋ฐ๋ฑ์์ 2026HBMํ์ด๋_a1338abb", + "keyword": "์ผ์ฑ์ ์ ์ฃผ๊ฐ ๋ฐ๋ฑ ์์ 2026 HBM ํ์ด๋๋ฆฌ", + "title": "[2ํธ] ์ผ์ฑ์ ์ ์ฃผ๊ฐ ๋ฐ๋ฑ ์ ํธ, HBMยทํ์ด๋๋ฆฌ๋ก ๋ด๊ฐ ์ก์ ๊ธฐ์ค 2026", + "status": "failed", + "source": "auto", + "blogId": "default", + "blogName": "", + "blogUrl": "", + "errorMessage": "์ด์ ์คํ ๊ธฐ๋ก (์์ธ ์ค๋ฅ ์์)", + "createdAt": "2026-06-22T00:00:00", + "publishedAt": null, + "lastAttemptAt": "2026-06-22T00:00:00", + "attempts": 1, + "runNumber": 0, + "wordCount": 2411, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "์ผ์ฑ์ ์์ฃผ๊ฐ์ ๋ง-์ค์ ํฌ์๊ธฐ๋ก", + "์ผ์ฑ์ ์์ฃผ๊ฐ", + "HBM", + "ํ์ด๋๋ฆฌ", + "๋ฐ๋์ฒด์ฃผ์", + "์ผ์ฑ์ ์ํฌ์", + "์ฃผ์๊ณต๋ถ" + ], + "metaDescription": "์ผ์ฑ์ ์ ์ฃผ๊ฐ ๋ฐ๋ฑ ์์ 2026์ HBM ์์ฃผ ํ๋ฆ๊ณผ ํ์ด๋๋ฆฌ ์ ์ ๊ฐ์ ์ด๋ผ๋ ๋ ๊ธฐ์ค์ผ๋ก ์ง์ ์ก์๋ดค์ด์. ๊ณต๋ถํ๋ฉฐ ๋ง๋ ๋งค๋งค ํ๋จ ๊ธฐ์ค์ ์์งํ๊ฒ ๊ณต์ ํฉ๋๋ค.", + "contentPreview": "1ํธ์์ ์ ๊ฐ ์ฒ์ ์ผ์ฑ์ ์ ์ฃผ์์ ์๋ค๊ฐ ๋ฌผ๋ฆฐ ์ด์ผ๊ธฐ๋ฅผ ํ์๋๋ฐ์. ๊ทธ๋ ์ ๊ฐ ํ๋ ์ต์ ์ ์ค์ ์ค ํ๋๊ฐ '๊ทธ๋ฅ ์ผ์ฑ์ด๋๊น ์ค๋ฅด๊ฒ ์ง'๋ผ๋ ๊ทผ๊ฑฐ ์๋ ๋ฏฟ์์ด์์ด์. ์ค์ ๋ก ์ฃผ๊ฐ๊ฐ ๋จ์ด์ง๊ณ ๋์์ผ ๋น๋ก์ ์ ๋๋ก ๊ณต๋ถ๋ฅผ ์์ํ์ฃ . ๊ทธ๋ฆฌ๊ณ ๊ณต๋ถํ๋ฉด์ ๊ณ์ ๋์ ๋ฐํ๋ ๊ฒ ๋ ๊ฐ์ง์์ด์. HBM(๊ณ ๋์ญํญ ๋ฉ๋ชจ๋ฆฌ)๊ณผ ํ์ด๋๋ฆฌ ์ฌ์ ๋ถ. ์ด ๋ ๊ฐ์ง๊ฐ ์ผ์ฑ์ ์ ์ฃผ๊ฐ ...", + "articleType": "" + }, + { + "post_id": "2026-06-22_์ผ์ฑ์ ์์ฃผ๊ฐ์ ๋ง2026์ฅ๊ธฐํฌ์์ค์ ํ๊ธฐ_ede2eaac", + "keyword": "์ผ์ฑ์ ์ ์ฃผ๊ฐ ์ ๋ง 2026 ์ฅ๊ธฐํฌ์ ์ค์ ํ๊ธฐ", + "title": "[3ํธ] ์ผ์ฑ์ ์ 2๋ ๋ฒํ ผ๋๋ ์๊ฒ ๋ ๊ฒ๋ค โ 2026๋ ์ง๊ธ ๋ด ์์ง ์ดํ", + "status": "failed", + "source": "auto", + "blogId": "default", + "blogName": "", + "blogUrl": "", + "errorMessage": "์ด์ ์คํ ๊ธฐ๋ก (์์ธ ์ค๋ฅ ์์)", + "createdAt": "2026-06-22T00:00:00", + "publishedAt": null, + "lastAttemptAt": "2026-06-22T00:00:00", + "attempts": 1, + "runNumber": 0, + "wordCount": 2429, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "์ผ์ฑ์ ์์ฃผ๊ฐ์ ๋ง-์ค์ ํฌ์๊ธฐ๋ก", + "์ผ์ฑ์ ์์ฃผ๊ฐ", + "์ผ์ฑ์ ์์ฅ๊ธฐํฌ์", + "์ฃผ์ํฌ์ํ๊ธฐ", + "์ผ์ฑ์ ์2026", + "๋ฐ๋์ฒด์ฃผ์", + "์ฅ๊ธฐํฌ์์ ๋ต" + ], + "metaDescription": "์ผ์ฑ์ ์๋ฅผ 2๋ ์ง์ ๋ณด์ ํ 30๋ ์ง์ฅ์ธ์ด ์์งํ๊ฒ ์ด ์ฅ๊ธฐํฌ์ ์ดํ. 2026๋ ํ์ฌ ์ฃผ๊ฐ ์์น์ ์ง๊ธ ๋น์ฅ ์ธ ์ ์๋ ํ๋จ ๊ธฐ์ค 3๊ฐ์ง๋ฅผ ์ค์ ๊ฒฝํ ๊ธฐ๋ฐ์ผ๋ก ์ ๋ฆฌํ์ต๋๋ค.", + "contentPreview": "2๋ ์ด๋ผ๋ ์๊ฐ์ด ์งง๋ค๋ฉด ์งง๊ณ , ๊ธธ๋ค๋ฉด ๊ธด ์๊ฐ์ธ๋ฐ์. ์ผ์ฑ์ ์๋ฅผ ์ฒ์ ์์ ๋ ์ ๋ ์์งํ '์ด ์ ๋ ๋ํ์ฃผ๋ฉด 1~2๋ ์์ ํ๋ณต๋๊ฒ ์ง'๋ผ๋ ๋ง์ฐํ ๋ฏฟ์์ด ์์์ด์. ๊ทธ๊ฒ ์ผ๋ง๋ ์์งํ ์๊ฐ์ด์๋์ง๋ ํ๋์ ๋นจ๊ฐ ์ซ์๋ฅผ ๋ฐ๋ผ๋ณด๋ฉด์ ์์ํ ๊นจ๋ฌ์๊ณ ์. ์ค๋์ ๊ทธ 2๋ ๊ฐ์ ๊ธฐ๋ก์ ๋ง๋ฌด๋ฆฌํ๋ฉด์, ์ ๊ฐ ์ง๊ธ ์ด๋ค ํ๋จ์ ํ๊ณ ์๋์ง ์์งํ๊ฒ ์ ๋ฆฌํด๋ณด๋ ค ํด์. 1...", + "articleType": "" + }, + { + "post_id": "2026-06-21_๋ถ๋์ฐPF์๊ธฐ๋์_c71c0e1b", + "keyword": "๋ถ๋์ฐ PF ์๊ธฐ ๋์", + "title": "๋ถ๋์ฐ PF ์๊ธฐ ๋์ ์๋ฒฝ ์ ๋ฆฌ TOP 5 (2026๋ )", + "status": "published", + "source": "auto", + "blogId": "default", + "blogName": "", + "blogUrl": "https://hoguwhat1.blogspot.com/2026/06/pf-top-5-2026.html", + "errorMessage": null, + "createdAt": "2026-06-21T00:00:00", + "publishedAt": "2026-06-21T00:00:00", + "lastAttemptAt": "2026-06-21T00:00:00", + "attempts": 1, + "runNumber": 0, + "wordCount": 3331, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "๋ถ๋์ฐPF์๊ธฐ", + "PF๋์์ ๋ต", + "๋ถ๋์ฐํฌ์๋ฆฌ์คํฌ", + "PF๋ถ์ค์ฑ๊ถ", + "๋ถ๋์ฐ์ํฌ์์", + "NPLํฌ์", + "๋ถ๋์ฐ๊ธ์ต" + ], + "metaDescription": "2026๋ ๋ถ๋์ฐ PF ์๊ธฐ ๋์ ๋ฐฉ๋ฒ TOP 5๋ฅผ ์ ๋ฌธ๊ฐ ์๊ฐ์ผ๋ก ์๋ฒฝ ์ ๋ฆฌ. ์ต์ ํต๊ณยท์ค์ ์ฌ๋กยท์ฃผ์์ฌํญยท์์ต ๊ทน๋ํ ํ๊น์ง ์ฆ์ ์คํ ๊ฐ๋ฅํ ์ค์ ๊ฐ์ด๋๋ฅผ ํ์ธํ์ธ์.", + "contentPreview": "๋ถ๋์ฐ ํ๋ก์ ํธ ํ์ด๋ธ์ฑ(PF) ๋ถ์ค ๋ฌธ์ ๊ฐ 2024๋ ๋ถํฐ ๋ณธ๊ฒฉํ๋ ์ดํ, 2026๋ ํ์ฌ๊น์ง๋ ๊ฑด์ค์ฌยท์ํ์ฌยทํฌ์์ ๋ชจ๋์๊ฒ ๋ถ๋์ฐ PF ์๊ธฐ ๋์์ ์ต์ฐ์ ๊ณผ์ ๋ก ๋จ์ ์์ต๋๋ค. '๋ด ํฌ์๊ธ์ ์์ ํ๊ฐ', '์๊ณต์ฌ ๋ถ๋ ์ ์ด๋ป๊ฒ ํด์ผ ํ๋'๋ผ๋ ๋ถ์๊ฐ์ ํด์ํ๊ธฐ ์ํด ์ด ๊ธ์์๋ ์ต์ ํต๊ณ๋ถํฐ ์ค์ ๋์ ์ ๋ต, ์ฃผ์์ฌํญ, ๊ทธ๋ฆฌ๊ณ ์์ต ๋ณดํธ ํ๊น์ง ๋จ๊ณ...", + "articleType": "" + }, + { + "post_id": "2026-06-21_์ฌ๋ฆ์ด๋์ผ์๋ฉด๊ฑด๊ฐ๊ด๋ฆฌ๋ฒ_523606b5", + "keyword": "์ฌ๋ฆ ์ด๋์ผ ์๋ฉด ๊ฑด๊ฐ ๊ด๋ฆฌ๋ฒ", + "title": "2026๋ ์ฌ๋ฆ ์ด๋์ผ ์๋ฉด ๊ฑด๊ฐ ๊ด๋ฆฌ๋ฒ ์๋ฒฝ ์ ๋ฆฌ TOP 5", + "status": "published", + "source": "auto", + "blogId": "default", + "blogName": "", + "blogUrl": "https://hoguwhat1.blogspot.com/2026/06/2026-top-5_0744546263.html", + "errorMessage": null, + "createdAt": "2026-06-21T00:00:00", + "publishedAt": "2026-06-21T00:00:00", + "lastAttemptAt": "2026-06-21T00:00:00", + "attempts": 1, + "runNumber": 0, + "wordCount": 3373, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "์ด๋์ผ์๋ฉด", + "์ฌ๋ฆ์๋ฉด๊ฑด๊ฐ", + "์๋ฉด๊ด๋ฆฌ๋ฒ", + "์ด๋์ผ๋์ฒ๋ฒ", + "์๋ฉด๋ฐฉ๋ฒ", + "์๋ฉด๊ฑด๊ฐ", + "์ฌ๋ฆ๊ฑด๊ฐ๊ด๋ฆฌ" + ], + "metaDescription": "2026๋ ์ฌ๋ฆ ์ด๋์ผ ์๋ฉด ๊ฑด๊ฐ ๊ด๋ฆฌ๋ฒ TOP 5๋ฅผ ์ ๋ฌธ๊ฐ ์ถ์ฒ ๊ธฐ์ค์ผ๋ก ์๋ฒฝ ์ ๋ฆฌํ์ต๋๋ค. ์ต์ ํต๊ณ, ์ค์ ์ฑ๊ณต ์ฌ๋ก, ์ฃผ์์ฌํญ, ๋น์ฉ ํจ์จ ํ๊น์ง ๋ฐ๋ก ์คํ ๊ฐ๋ฅํ ์ ๋ณด๋ฅผ ์ด์ ๋ฆฌํฉ๋๋ค.", + "contentPreview": "๋ฐค์ ๋ค์ฒ์ด๋ค ์๋ฒฝ 3์์ ๋์ ๋จ์ ์ ์์ผ์ ๊ฐ์? ์ฌ๋ฆ ์ด๋์ผ ์๋ฉด ๊ฑด๊ฐ ๊ด๋ฆฌ๋ฒ์ ๋ชจ๋ฅด๋ฉด ๋งค๋ ๋ฐ๋ณต๋๋ ๊ณ ํต์ ํผํ ์ ์์ต๋๋ค. 2026๋ ์ฌ๋ฆ์ ๊ธฐ์์ฒญ ์๋ณด ๊ธฐ์ค ํ๋ ๋๋น ์ด๋์ผ ๋ฐ์์ผ์ด ์ฆ๊ฐํ ๊ฒ์ผ๋ก ์ ๋ง๋์ด, ์๋ฉด ์ง ์ ํ๋ก ์ธํ ๊ฑด๊ฐ ํผํด๊ฐ ๋์ฑ ์ฌ๊ฐํด์ง ์ ์์ต๋๋ค. ์ด ๊ธ์์๋ ์ ๋ฌธ๊ฐ ์ถ์ฒ ํต์ฌ ๊ด๋ฆฌ๋ฒ TOP 5๋ถํฐ ์ค์ ์ฑ๊ณต ์ฌ๋ก, ์ฃผ์...", + "articleType": "" + }, + { + "post_id": "2026-06-20_์ง์ฅ์ธํฌ์ก์ธ๊ธ์ ๊ณ ๋ฐฉ๋ฒ_4392ba3c", + "keyword": "์ง์ฅ์ธ ํฌ์ก ์ธ๊ธ ์ ๊ณ ๋ฐฉ๋ฒ", + "title": "์ง์ฅ์ธ ํฌ์ก ์ธ๊ธ ์ ๊ณ ๋ฐฉ๋ฒ ์๋ฒฝ ์ ๋ฆฌ 2026๋ 5๋จ๊ณ ๊ฐ์ด๋", + "status": "published", + "source": "auto", + "blogId": "default", + "blogName": "", + "blogUrl": "https://hoguwhat1.blogspot.com/2026/06/2026-5_01882421696.html", + "errorMessage": null, + "createdAt": "2026-06-20T00:00:00", + "publishedAt": "2026-06-20T00:00:00", + "lastAttemptAt": "2026-06-20T00:00:00", + "attempts": 1, + "runNumber": 0, + "wordCount": 3289, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "์ง์ฅ์ธํฌ์ก", + "์ข ํฉ์๋์ธ์ ๊ณ ", + "ํฌ์ก์ธ๊ธ", + "๋ถ์ ์ธ๊ธ์ ๊ณ ", + "ํํ์ค์ ๊ณ ๋ฐฉ๋ฒ", + "์ฌ์ ์๋์ ๊ณ ", + "์ง์ฅ์ธ๋ถ์ " + ], + "metaDescription": "2026๋ ๊ธฐ์ค ์ง์ฅ์ธ ํฌ์ก ์ธ๊ธ ์ ๊ณ ๋ฐฉ๋ฒ์ 5๋จ๊ณ๋ก ์๋ฒฝ ์ ๋ฆฌ! ์๋ ์ ํ ๊ตฌ๋ถ, ํํ์ค ์ ๊ณ ์ ์ฐจ, ํ์๊ฒฝ๋น ๊ณต์ , ํ์ฌ ๋ ธ์ถ ๋ฐฉ์ง๊น์ง ์ ๋ฌธ๊ฐ ์ถ์ฒ ์ค์ ๊ฐ์ด๋๋ฅผ ํ์ธํ์ธ์.", + "contentPreview": "์ง์ฅ ์๊ธ๋ง์ผ๋ก๋ ๋ถ์กฑํจ์ ๋๋ผ๋ ์ง์ฅ์ธ๋ค์ด ๋์ด๋๋ฉด์ ์ง์ฅ์ธ ํฌ์ก ์ธ๊ธ ์ ๊ณ ๋ฐฉ๋ฒ์ ๋ํ ๊ด์ฌ์ด ๊ธ์ฆํ๊ณ ์์ต๋๋ค. ํ์ง๋ง ํฌ์ก ์์ต์ ์ ๋๋ก ์ ๊ณ ํ์ง ์์ผ๋ฉด ๊ฐ์ฐ์ธ ํญํ์ ๋ฌผ๋ก ์ง์ฅ ๋ด ๋ถ์ด์ต๊น์ง ๋ฐ์ ์ ์์ด ์ฌ๋ฐ๋ฅธ ์ดํด๊ฐ ํ์์ ๋๋ค. ์ด ๊ธ์์๋ 2026๋ ์ต์ ์ธ๋ฒ ๊ธฐ์ค์ผ๋ก ์ง์ฅ์ธ์ด ํฌ์ก ์๋์ ์ ๊ณ ํ๋ ๋ฐฉ๋ฒ๋ถํฐ ์ ์ธ ์ ๋ต, ์ฃผ์์ฌํญ๊น์ง ๋จ๊ณ๋ณ๋ก ...", + "articleType": "" + }, + { + "post_id": "2026-06-20_๋น๋จ์ ๋จ๊ณ์๋จ๊ด๋ฆฌ๋ฐฉ๋ฒ_302f70ed", + "keyword": "๋น๋จ ์ ๋จ๊ณ ์๋จ ๊ด๋ฆฌ ๋ฐฉ๋ฒ", + "title": "๋น๋จ ์ ๋จ๊ณ ์๋จ ๊ด๋ฆฌ ๋ฐฉ๋ฒ 5๊ฐ์ง ์๋ฒฝ ์ ๋ฆฌ (2026๋ )", + "status": "published", + "source": "auto", + "blogId": "default", + "blogName": "", + "blogUrl": "https://hoguwhat1.blogspot.com/2026/06/5-2026.html", + "errorMessage": null, + "createdAt": "2026-06-20T00:00:00", + "publishedAt": "2026-06-20T00:00:00", + "lastAttemptAt": "2026-06-20T00:00:00", + "attempts": 1, + "runNumber": 0, + "wordCount": 3771, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "๋น๋จ์ ๋จ๊ณ", + "์๋จ๊ด๋ฆฌ", + "ํ๋น๊ด๋ฆฌ", + "์ ๋น๋จ์๋จ", + "ํ๋น๋ฎ์ถ๋์์", + "์ GI์๋จ", + "๋น๋จ์๋ฐฉ" + ], + "metaDescription": "2026๋ ์ต์ ์ ๋ณด ๊ธฐ๋ฐ ๋น๋จ ์ ๋จ๊ณ ์๋จ ๊ด๋ฆฌ ๋ฐฉ๋ฒ 5๊ฐ์ง๋ฅผ ์ ๋ฌธ๊ฐ ๊ถ๊ณ ์ ์ค์ ์ฌ๋ก๋ก ์๋ฒฝ ์ ๋ฆฌ. ํ๋น ๋ฎ์ถ๋ ์ํ ์ ํ๋ถํฐ ์ธ์ ์ ๋ต, CGM ํ์ฉ ํธ๋ ๋๊น์ง ๋ฐ๋ก ์ค์ฒ ๊ฐ๋ฅํ ๊ฐ์ด๋.", + "contentPreview": "๊ฑด๊ฐ๊ฒ์ง์์ ๊ณต๋ณตํ๋น 100~125mg/dL ๋๋ ๋นํํ์์ 5.7~6.4% ์์น๋ฅผ ๋ฐ์ ์๊ฐ, ๋ง์ ๋ถ๋ค์ด ๋ง๋งํจ์ ๋๋๋๋ค. '์ด์ ๋น๋จ๊ฐ ๋๋ ๊ฑด๊ฐ?'๋ผ๋ ๋๋ ค์๊ณผ ํจ๊ป ๋ฌด์์ ๋จน์ด์ผ ํ ์ง, ๋ฌด์์ ๋์ด์ผ ํ ์ง ํผ๋์ค๋ฌ์ด ๊ฒ์ด ํ์ค์ ๋๋ค. ์ด ๊ธ์์๋ ๋น๋จ ์ ๋จ๊ณ ์๋จ ๊ด๋ฆฌ ๋ฐฉ๋ฒ์ ํต์ฌ ์์น๋ถํฐ 2026๋ ์ต์ ํธ๋ ๋, ์ค์ ์ ์ฉ ํ๊น์ง ์ ๋ฌธ๊ฐ ๊ถ๊ณ ๋ฅผ...", + "articleType": "" + }, + { + "post_id": "2026-06-19_์์กํฌ์์ฑ์์ตํ๊ธฐ_6ea43635", + "keyword": "์์ก ํฌ์ ์ฑ ์์ต ํ๊ธฐ", + "title": "์์ก ํฌ์ ์ฑ ์์ต ํ๊ธฐ TOP 5 ์๋ฒฝ ์ ๋ฆฌ (2026๋ )", + "status": "published", + "source": "auto", + "blogId": "default", + "blogName": "", + "blogUrl": "https://hoguwhat1.blogspot.com/2026/06/top-5-2026_0124637232.html", + "errorMessage": null, + "createdAt": "2026-06-19T00:00:00", + "publishedAt": "2026-06-19T00:00:00", + "lastAttemptAt": "2026-06-19T00:00:00", + "attempts": 1, + "runNumber": 0, + "wordCount": 3266, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "์์กํฌ์์ฑ", + "ํฌ์์ฑ์์ตํ๊ธฐ", + "์์กํฌ์๋ฐฉ๋ฒ", + "ETF์์กํฌ์", + "ํ ์ค์ฆ๊ถ", + "์นด์นด์คํ์ด์ฆ๊ถ", + "๋ก๋ณด์ด๋๋ฐ์ด์ " + ], + "metaDescription": "2026๋ ์์ก ํฌ์ ์ฑ ์์ต ํ๊ธฐ๋ฅผ ์ ๋ฌธ๊ฐ ์๊ฐ์ผ๋ก ์ด์ ๋ฆฌ! ETF ์ ๋ฆฝ์ยท๋ฆฌ์ธ ยทP2P ๋ฑ TOP 5 ๋ฐฉ๋ฒ๊ณผ ์ค์ ์ฑ๊ณต ์ฌ๋ก, ์ฃผ์์ฌํญ, ์์ต ๊ทน๋ํ ์ค์ ํ๊น์ง ํ ๋ฒ์ ํ์ธํ์ธ์.", + "contentPreview": "\"์์ก์ผ๋ก ์ ๋ง ์์ต์ด ๋ ๊น?\" ๋ง์ ๋ถ๋ค์ด ์์ก ํฌ์ ์ฑ์ ์ฒ์ ์ ํ ๋ ๊ฐ์ฅ ๋จผ์ ๋๋ ์๋ฌธ์ ๋๋ค. ์ ํ๋ธ๋ ๋ธ๋ก๊ทธ์์ ํ๋ คํ ์์ต ์ธ์ฆ ํ๊ธฐ๋ฅผ ๋ณด๋ฉด ์๊นํ์ง๋ง, ๋ง์ ์์ํ๋ ค๋ฉด ์ด๋์๋ถํฐ ์ด๋ป๊ฒ ํด์ผ ํ ์ง ๋ง๋งํ์ฃ . ์ด ๊ธ์์๋ ์์ก ํฌ์ ์ฑ ์์ต ํ๊ธฐ๋ฅผ ๊ฐ๊ด์ ํต๊ณ์ ์ค์ ์ฌ๋ก๋ฅผ ๋ฐํ์ผ๋ก ๋ฑ๋ฑ์ด ๋ถ์ํ๊ณ , 2026๋ ํ์ฌ ์ค์ ๋ก ํ์ฉ ๊ฐ๋ฅํ ์ ๋ต์ ...", + "articleType": "" + }, + { + "post_id": "2026-06-19_2026๊ฐ์ธ์ข ํฉ์์ฐ๊ด๋ฆฌ๊ณ์ข์ ์ธ๋ฐฉ๋ฒ_3f74b583", + "keyword": "2026 ๊ฐ์ธ์ข ํฉ์์ฐ๊ด๋ฆฌ๊ณ์ข ์ ์ธ ๋ฐฉ๋ฒ", + "title": "2026 ๊ฐ์ธ์ข ํฉ์์ฐ๊ด๋ฆฌ๊ณ์ข ์ ์ธ ๋ฐฉ๋ฒ ์๋ฒฝ ์ ๋ฆฌ TOP 5", + "status": "published", + "source": "auto", + "blogId": "default", + "blogName": "", + "blogUrl": "https://hoguwhat1.blogspot.com/2026/06/2026-top-5_0751097307.html", + "errorMessage": null, + "createdAt": "2026-06-19T00:00:00", + "publishedAt": "2026-06-19T00:00:00", + "lastAttemptAt": "2026-06-19T00:00:00", + "attempts": 1, + "runNumber": 0, + "wordCount": 619, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "๊ฐ์ธ์ข ํฉ์์ฐ๊ด๋ฆฌ๊ณ์ข", + "ISA์ ์ธ", + "2026์ ์ธ๋ฐฉ๋ฒ", + "์ค๊ฐํISA", + "์์ตํต์ฐ", + "๋น๊ณผ์ธํ๋", + "์ฐ๊ธ๊ณ์ข์ ํ" + ], + "metaDescription": "2026 ๊ฐ์ธ์ข ํฉ์์ฐ๊ด๋ฆฌ๊ณ์ข ์ ์ธ ๋ฐฉ๋ฒ ์๋ฒฝ ์ ๋ฆฌ! ์๋ฏผํ ๋น๊ณผ์ธ 400๋ง์ยท์์ตํต์ฐยท์ฐ๊ธ์ ํ ์ธ์ก๊ณต์ ๊น์ง ์ ๋ฌธ๊ฐ ์ถ์ฒ TOP 5 ์ ๋ต๊ณผ ์ฃผ์์ฌํญ์ ํ ๋ฒ์ ํ์ธํ์ธ์.", + "contentPreview": "๋งค๋ ์ธ๊ธ ๋ถ๋ด์ด ๋์ด๋๋ ์ํฉ์์ 2026 ๊ฐ์ธ์ข ํฉ์์ฐ๊ด๋ฆฌ๊ณ์ข ์ ์ธ ๋ฐฉ๋ฒ์ ๊ด์ฌ์ ๊ฐ๋ ๋ถ๋ค์ด ๋น ๋ฅด๊ฒ ์ฆ๊ฐํ๊ณ ์์ต๋๋ค. ISA(Individual Savings Account)๋ผ๊ณ ๋ ๋ถ๋ฆฌ๋ ๊ฐ์ธ์ข ํฉ์์ฐ๊ด๋ฆฌ๊ณ์ข๋ ์ยท์ ๊ธ, ํ๋, ETF, ํ์๊ฒฐํฉ์ฆ๊ถ ๋ฑ ๋ค์ํ ๊ธ์ต์ํ์ ํ๋์ ๊ณ์ข์์ ์ด์ฉํ๋ฉด์ ์ธ์ ํํ์ ๋ฐ์ ์ ์๋ ์ ๋์ ๋๋ค. ์ด ๊ธ์์๋ 20...", + "articleType": "" + }, + { + "post_id": "2026-06-19_AI์ฝ๋ฉํด๋น๊ต์ถ์ฒ2026_264dab65", + "keyword": "AI ์ฝ๋ฉ ํด ๋น๊ต ์ถ์ฒ 2026", + "title": "AI ์ฝ๋ฉ ํด ๋น๊ต ์ถ์ฒ 2026 ์๋ฒฝ ์ ๋ฆฌ TOP 5", + "status": "published", + "source": "auto", + "blogId": "default", + "blogName": "", + "blogUrl": "https://hoguwhat1.blogspot.com/2026/06/ai-2026-top-5.html", + "errorMessage": null, + "createdAt": "2026-06-19T00:00:00", + "publishedAt": "2026-06-19T00:00:00", + "lastAttemptAt": "2026-06-19T00:00:00", + "attempts": 1, + "runNumber": 0, + "wordCount": 4080, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "AI์ฝ๋ฉํด", + "AI์ฝ๋ฉํด๋น๊ต2026", + "GitHub Copilot", + "Cursor AI", + "Tabnine", + "์ฝ๋ฉ์์ฐ์ฑ", + "๊ฐ๋ฐ์ํด์ถ์ฒ" + ], + "metaDescription": "2026๋ ์ต์ AI ์ฝ๋ฉ ํด ๋น๊ต ์ถ์ฒ ์๋ฒฝ ์ ๋ฆฌ! GitHub Copilot, Cursor AI, Tabnine ๋ฑ TOP 5๋ฅผ ๊ฐ๊ฒฉยท๊ธฐ๋ฅยท๋ณด์ ๊ธฐ์ค์ผ๋ก ๋น๊ตํ๊ณ ์ค์ ํ์ฉ ์ ๋ต๊น์ง ํ ๋ฒ์ ํ์ธํ์ธ์.", + "contentPreview": "2026๋ , ๊ฐ๋ฐ์์ ๋น๊ฐ๋ฐ์ ๋ชจ๋ AI ์ฝ๋ฉ ํด ๋น๊ต ์ถ์ฒ 2026 ์ ๋ณด๋ฅผ ์ ์คํ ์ฐพ๊ณ ์์ต๋๋ค. ์์ญ ๊ฐ์ง ํด์ด ์์์ง๋ ์ํฉ์์ '์ด๋ค ๊ฒ์ ์จ์ผ ํ ๊น?' ๊ณ ๋ฏผ์ด ๊น์ด์ง๋ ๊ฑด ๋น์ฐํฉ๋๋ค. ์ด ๊ธ์์๋ ์ค์ ์ฌ์ฉ ์ฌ๋ก์ ์ต์ ํต๊ณ๋ฅผ ๋ฐํ์ผ๋ก 2026๋ ํ์ฌ ๊ฐ์ฅ ์ฃผ๋ชฉ๋ฐ๋ AI ์ฝ๋ฉ ํด 5๊ฐ์ง๋ฅผ ๋น๊ตยท๋ถ์ํ๊ณ , ์ ํ ๊ธฐ์ค๊ณผ ํ์ฉ ์ ๋ต๊น์ง ํ ๋ฒ์ ์ ๋ฆฌํด ...", + "articleType": "" + }, + { + "post_id": "2026-06-19_์์ธ์ํํธ์ฒญ์ฝ๋น์ฒจ์ ๋ต_f106afeb", + "keyword": "์์ธ ์ํํธ ์ฒญ์ฝ ๋น์ฒจ ์ ๋ต", + "title": "2026๋ ์์ธ ์ํํธ ์ฒญ์ฝ ๋น์ฒจ ์ ๋ต 5๊ฐ์ง ์๋ฒฝ ์ ๋ฆฌ", + "status": "published", + "source": "auto", + "blogId": "default", + "blogName": "", + "blogUrl": "https://hoguwhat1.blogspot.com/2026/06/2026-5_0866591759.html", + "errorMessage": null, + "createdAt": "2026-06-19T00:00:00", + "publishedAt": "2026-06-19T00:00:00", + "lastAttemptAt": "2026-06-19T00:00:00", + "attempts": 1, + "runNumber": 0, + "wordCount": 3505, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "์์ธ์ํํธ์ฒญ์ฝ", + "์ฒญ์ฝ๋น์ฒจ์ ๋ต", + "์ฒญ์ฝ๊ฐ์ ", + "ํน๋ณ๊ณต๊ธ", + "2026์ฒญ์ฝ", + "๋ถ์๊ฐ์ํ์ ", + "์ ํผ๋ถ๋ถํน๋ณ๊ณต๊ธ" + ], + "metaDescription": "2026๋ ์์ธ ์ํํธ ์ฒญ์ฝ ๋น์ฒจ ์ ๋ต 5๊ฐ์ง๋ฅผ ์๋ฒฝ ์ ๋ฆฌํ์ต๋๋ค. ๊ฐ์ ๊ทน๋ํ ๋ฐฉ๋ฒ, ํน๋ณ๊ณต๊ธ ํ์ฉ๋ฒ, ์ค์ ๋น์ฒจ ์ฌ๋ก, ์ฃผ์์ฌํญ๊น์ง ์ค์ ๊ฐ์ด๋๋ก ํ์ธํ์ธ์.", + "contentPreview": "์์ธ ์ํํธ ์ฒญ์ฝ, ์์ญ ๋ 1์ ๊ฒฝ์๋ฅ ์ ๋ซ๊ณ ๋น์ฒจ๋๋ ค๋ฉด ์ ๋ต ์์ด ๋ฌด์์ ๋ฃ๋ ๋ฐฉ์์ผ๋ก๋ ํ๊ณ๊ฐ ์์ต๋๋ค. ์ฒญ์ฝ ๊ฐ์ ์ ์ด๋ป๊ฒ ์ฌ๋ฆฌ๋์ง, ํน๋ณ๊ณต๊ธ์ ์ด๋ป๊ฒ ํ์ฉํ๋์ง, 2026๋ ๋ฐ๋ ์ ๋๋ ๋ฌด์์ธ์ง โ ๋ณต์กํ ์ ๋ณด ์์์ ๋ฌด์๋ถํฐ ์์ํด์ผ ํ ์ง ๋ง๋งํ์ ๋ถ๋ค์ด ๋ง์ต๋๋ค. ์ด ๊ธ์์๋ ์์ธ ์ํํธ ์ฒญ์ฝ ๋น์ฒจ ์ ๋ต์ ์ต์ ํํฉ๋ถํฐ ์ค์ ์ฑ๊ณต ์ฌ๋ก, ์ฃผ์์ฌ...", + "articleType": "" + }, + { + "post_id": "2026-06-18_2026ISA๊ณ์ข์ธ๊ธํํ์ด์ ๋ฆฌ_ff09578b", + "keyword": "2026 ISA๊ณ์ข ์ธ๊ธํํ ์ด์ ๋ฆฌ", + "title": "2026 ISA๊ณ์ข ์ธ๊ธํํ ์ด์ ๋ฆฌ 5๊ฐ์ง ํต์ฌ ์ ๋ต", + "status": "published", + "source": "auto", + "blogId": "default", + "blogName": "", + "blogUrl": "https://hoguwhat1.blogspot.com/2026/06/2026-isa-5.html", + "errorMessage": null, + "createdAt": "2026-06-18T00:00:00", + "publishedAt": "2026-06-18T00:00:00", + "lastAttemptAt": "2026-06-18T00:00:00", + "attempts": 1, + "runNumber": 0, + "wordCount": 3725, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "ISA๊ณ์ข", + "์ธ๊ธํํ", + "์ ์ธ์ ๋ต", + "2026ISA", + "๊ฐ์ธ์ข ํฉ์์ฐ๊ด๋ฆฌ๊ณ์ข", + "๋น๊ณผ์ธ๊ณ์ข", + "๋ถ๋ฆฌ๊ณผ์ธ" + ], + "metaDescription": "2026๋ ISA๊ณ์ข ์ธ๊ธํํ์ ์๋ฒฝ ์ ๋ฆฌํ์ต๋๋ค. ๋น๊ณผ์ธ ํ๋, ์๋ฏผํ ํํ, ์์ตํต์ฐ, ์ฐ๊ธ๊ณ์ข ์ด์ ๊น์ง ์ ์ธ ์ ๋ต 5๊ฐ์ง์ ์ฃผ์์ฌํญ์ ํ๋์ ํ์ธํ์ธ์.", + "contentPreview": "๋งค๋ ์ฐ๋ง์ด ๋ค๊ฐ์ค๋ฉด '์ธ๊ธ์ ์ด๋ป๊ฒ ์ค์ผ ์ ์์๊น?'๋ผ๋ ๊ณ ๋ฏผ์ด ์ปค์ง๋๋ค. ํนํ ๊ธ์ต์๋์ด ๋์ด๋ ์๋ก ์ธ๊ธ ๋ถ๋ด๋ ํจ๊ป ๋์ด๋๋ ๊ตฌ์กฐ์์, 2026 ISA๊ณ์ข ์ธ๊ธํํ ์ด์ ๋ฆฌ๋ ๊ฐ์ธ ํฌ์์๋ผ๋ฉด ๋ฐ๋์ ์์์ผ ํ ํ์ ์ ๋ณด์ ๋๋ค. ์ด ๊ธ์์๋ 2026๋ ๊ธฐ์ค ISA๊ณ์ข์ ์ต์ ์ธ์ ํํ ํํฉ๋ถํฐ ์ค์ ํ์ฉ ์ ๋ต, ์ฃผ์์ฌํญ, ๊ทธ๋ฆฌ๊ณ ์์ต ๊ทน๋ํ ํ๊น์ง ํ ...", + "articleType": "" + }, + { + "post_id": "2026-06-18_AI์์ด์ ํธ๋ฌด๋ฃ์ฌ์ฉ๋ฒ์ถ์ฒ_51f38218", + "keyword": "AI์์ด์ ํธ ๋ฌด๋ฃ ์ฌ์ฉ๋ฒ ์ถ์ฒ", + "title": "AI์์ด์ ํธ ๋ฌด๋ฃ ์ฌ์ฉ๋ฒ ์ถ์ฒ TOP 5 ์๋ฒฝ ์ ๋ฆฌ 2026", + "status": "published", + "source": "auto", + "blogId": "default", + "blogName": "", + "blogUrl": "https://hoguwhat1.blogspot.com/2026/06/ai-top-5-2026_01798729505.html", + "errorMessage": null, + "createdAt": "2026-06-18T00:00:00", + "publishedAt": "2026-06-18T00:00:00", + "lastAttemptAt": "2026-06-18T00:00:00", + "attempts": 1, + "runNumber": 0, + "wordCount": 3536, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "AI์์ด์ ํธ", + "AI์์ด์ ํธ๋ฌด๋ฃ์ฌ์ฉ๋ฒ", + "ChatGPT๋ฌด๋ฃ", + "AI๋๊ตฌ์ถ์ฒ", + "๋ฌด๋ฃAI", + "AIํ์ฉ๋ฒ", + "Gemini๋ฌด๋ฃ" + ], + "metaDescription": "2026๋ ์ต์ AI์์ด์ ํธ ๋ฌด๋ฃ ์ฌ์ฉ๋ฒ ์ถ์ฒ TOP 5๋ฅผ ์๋ฒฝ ์ ๋ฆฌํ์ต๋๋ค. ChatGPTยทGeminiยทCopilotยทClaude ๋ฑ ๋ฌด๋ฃ ํ๋ ํ์ฉ๋ฒ, ์ฃผ์์ฌํญ, ์ค์ ํ๊น์ง ํ ๋ฒ์ ํ์ธํ์ธ์.", + "contentPreview": "AI ๊ธฐ์ ์ด ๋น ๋ฅด๊ฒ ๋ฐ์ ํ๋ฉด์ AI์์ด์ ํธ ๋ฌด๋ฃ ์ฌ์ฉ๋ฒ ์ถ์ฒ์ ์ฐพ๋ ๋ถ๋ค์ด ๊ธ๊ฒฉํ ๋๊ณ ์์ต๋๋ค. '์ด๋ค ๋๊ตฌ๋ฅผ ์จ์ผ ํ ์ง ๋ชจ๋ฅด๊ฒ ๋ค', '์ ๋ฃ ๊ฒฐ์ ์์ด๋ ์ถฉ๋ถํ ํ์ฉํ ์ ์์๊น?' ํ๋ ๊ณ ๋ฏผ, ๋ง์ด๋ค ํ์์ฃ ? ์ด ๊ธ์์๋ 2026๋ ํ์ฌ ์ค์ ๋ก ๋ฌด๋ฃ๋ก ์ฌ์ฉ ๊ฐ๋ฅํ AI์์ด์ ํธ ๋๊ตฌ TOP 5๋ถํฐ ์ค์ ํ์ฉ ์ ๋ต, ์ฃผ์์ฌํญ, ์ต์ ํธ๋ ๋๊น์ง ํ ๋ฒ์ ์ ๋ฆฌ...", + "articleType": "" + }, + { + "post_id": "2026-06-17_AI๋ถ์ ์ผ๋ก์100๋ง์๋ฒ๋๋ฒ_77948d9d", + "keyword": "AI ๋ถ์ ์ผ๋ก ์ 100๋ง์ ๋ฒ๋ ๋ฒ", + "title": "AI ๋ถ์ ์ผ๋ก ์ 100๋ง์ ๋ฒ๋ ๋ฒ TOP 5 ์ค์ ๊ฐ์ด๋ 2026๋ ", + "status": "published", + "source": "auto", + "blogId": "default", + "blogName": "", + "blogUrl": "https://hoguwhat1.blogspot.com/2026/06/ai-100-top-5-2026.html", + "errorMessage": null, + "createdAt": "2026-06-17T00:00:00", + "publishedAt": "2026-06-17T00:00:00", + "lastAttemptAt": "2026-06-17T00:00:00", + "attempts": 1, + "runNumber": 0, + "wordCount": 3636, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "AI๋ถ์ ", + "์100๋ง์๋ถ์ ", + "AI๋ถ์ ๋ฐฉ๋ฒ", + "2026๋ถ์ ", + "ChatGPT๋ถ์ ", + "AI๊ธ์ฐ๊ธฐ๋ถ์ ", + "AI์ด๋ฏธ์งํ๋งค" + ], + "metaDescription": "2026๋ AI ๋ถ์ ์ผ๋ก ์ 100๋ง์ ๋ฒ๋ ๋ฒ์ TOP 5 ๋ฐฉ๋ฒ, ์ค์ ์ฑ๊ณต ์ฌ๋ก, ์ฃผ์์ฌํญ, ์ต์ ํธ๋ ๋๊น์ง ์๋ฒฝ ์ ๋ฆฌํ์ต๋๋ค. ์ด๋ณด์๋ ๋ฐ๋ก ์คํ ๊ฐ๋ฅํ ์ค์ ๊ฐ์ด๋๋ฅผ ํ์ธํ์ธ์.", + "contentPreview": "\"AI๋ฅผ ํ์ฉํด ๋ถ์ ์ผ๋ก ๋์ ๋ฒ ์ ์๋ค๋๋ฐ, ์ค์ ๋ก ๊ฐ๋ฅํ ๊ฑธ๊น?\" ๋ง์ ๋ถ๋ค์ด ์ด๋ฐ ๊ถ๊ธ์ฆ์ ๊ฐ๊ณ ๊ณ์ค ๊ฒ๋๋ค. AI ๋ถ์ ์ผ๋ก ์ 100๋ง์ ๋ฒ๋ ๋ฒ์ ์ด์ ํน๋ณํ ๊ธฐ์ ์ด ์์ด๋ ๋์ ํ ์ ์๋ ํ์ค์ ์ธ ๋ชฉํ๊ฐ ๋์ต๋๋ค. ์ด ๊ธ์์๋ 2026๋ ํ์ฌ ์ค์ ๋ก ์์ต์ ๋ด๊ณ ์๋ AI ๋ถ์ ๋ฐฉ๋ฒ TOP 5, ์ฑ๊ณต ์ฌ๋ก, ์ฃผ์์ฌํญ, ์ต์ ํธ๋ ๋๊น์ง ๋จ๊ณ๋ณ๋ก ...", + "articleType": "" + }, + { + "post_id": "2026-06-17_2026์ข ํฉ์๋์ธํ๊ธ์ ์ฒญ๋ฐฉ๋ฒ_60f0daed", + "keyword": "2026 ์ข ํฉ์๋์ธ ํ๊ธ ์ ์ฒญ๋ฐฉ๋ฒ", + "title": "2026 ์ข ํฉ์๋์ธ ํ๊ธ ์ ์ฒญ๋ฐฉ๋ฒ 5๋จ๊ณ ์๋ฒฝ ์ ๋ฆฌ", + "status": "published", + "source": "auto", + "blogId": "default", + "blogName": "", + "blogUrl": "https://hoguwhat1.blogspot.com/2026/06/2026-5_01685116449.html", + "errorMessage": null, + "createdAt": "2026-06-17T00:00:00", + "publishedAt": "2026-06-17T00:00:00", + "lastAttemptAt": "2026-06-17T00:00:00", + "attempts": 1, + "runNumber": 0, + "wordCount": 3205, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "์ข ํฉ์๋์ธํ๊ธ", + "2026์ข ํฉ์๋์ธ", + "ํ๊ธ์ ์ฒญ๋ฐฉ๋ฒ", + "ํํ์ค์ ๊ณ ", + "์ํ์ค", + "์ธ๊ธํ๊ธ", + "์ข ํฉ์๋์ธ์ ๊ณ " + ], + "metaDescription": "2026 ์ข ํฉ์๋์ธ ํ๊ธ ์ ์ฒญ๋ฐฉ๋ฒ์ 5๋จ๊ณ๋ก ์๋ฒฝ ์ ๋ฆฌํ์ต๋๋ค. ํํ์คยท์ํ์ค ์ ์ฒญ ์ ์ฐจ, ํ๊ธ ๊ทน๋ํ ํ, ์ฃผ์์ฌํญ๊น์ง ํ ๋ฒ์ ํ์ธํ์ธ์.", + "contentPreview": "๋งค๋ 5์, ๋ง์ ์ง์ฅ์ธ๊ณผ ํ๋ฆฌ๋์๋ค์ด ์ข ํฉ์๋์ธ ํ๊ธ์ ๊ธฐ๋ํ์ง๋ง ์ ์ ์ ์ฒญ ๋ฐฉ๋ฒ์ ๋ชฐ๋ผ ํ๊ธ๊ธ์ ๋์น๋ ๊ฒฝ์ฐ๊ฐ ์ ์ง ์์ต๋๋ค. 2026๋ ์๋ ์๋ฐฑ๋ง ๋ช ์ด ํ๊ธ ๋์์์์๋ ๋ถ๊ตฌํ๊ณ ์ ์ฒญ ์ ์ฐจ๋ฅผ ๋ชจ๋ฅด๊ฑฐ๋ ๊ธฐํ์ ๋์ณ ์์คํ ์ธ๊ธ์ ๋๋ ค๋ฐ์ง ๋ชปํ๊ณ ์์ต๋๋ค. ์ด ๊ธ์์๋ 2026 ์ข ํฉ์๋์ธ ํ๊ธ ์ ์ฒญ๋ฐฉ๋ฒ์ ๋จ๊ณ๋ณ๋ก ๋ช ํํ๊ฒ ์๋ดํ๊ณ , ์ค์ ๋ก ํ๊ธ์ ๊ทน๋ํํ ...", + "articleType": "" + }, + { + "post_id": "2026-06-17_์ฝ์ธ๋นํธ์ฝ์ธ2026์ ๋ง_0f222613", + "keyword": "์ฝ์ธ ๋นํธ์ฝ์ธ 2026 ์ ๋ง", + "title": "๋นํธ์ฝ์ธ 2026 ์ ๋ง ์๋ฒฝ ์ ๋ฆฌ TOP 5 ํต์ฌ ํฌ์ธํธ", + "status": "published", + "source": "auto", + "blogId": "default", + "blogName": "", + "blogUrl": "https://hoguwhat1.blogspot.com/2026/06/2026-top-5_01473019811.html", + "errorMessage": null, + "createdAt": "2026-06-17T00:00:00", + "publishedAt": "2026-06-17T00:00:00", + "lastAttemptAt": "2026-06-17T00:00:00", + "attempts": 1, + "runNumber": 0, + "wordCount": 3559, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "๋นํธ์ฝ์ธ", + "์ฝ์ธ์ ๋ง", + "๋นํธ์ฝ์ธ2026", + "์ํธํํํฌ์", + "๋ฐ๊ฐ๊ธฐ", + "๋นํธ์ฝ์ธETF", + "๊ฐ์์์ฐ" + ], + "metaDescription": "2026๋ ์ฝ์ธ ๋นํธ์ฝ์ธ ์ ๋ง์ ๋ฐ๊ฐ๊ธฐ ์ฌ์ดํดยทETF ์๊ธ ์ ์ ยท์ต์ ํต๊ณ๋ก ์๋ฒฝ ์ ๋ฆฌ. ์ ๋ฌธ๊ฐ ์ถ์ฒ TOP 5 ์ ๋ต๋ถํฐ ์ฃผ์์ฌํญ, ์ค์ ํ๊น์ง ํ ๋ฒ์ ํ์ธํ์ธ์.", + "contentPreview": "2026๋ , ๋นํธ์ฝ์ธ๊ณผ ์ฝ์ธ ์์ฅ์ ํฌ์ํ๊ฑฐ๋ ๊ด์ฌ์ ๊ฐ์ง ๋ถ๋ค์ด๋ผ๋ฉด ๋๊ตฌ๋ ์ด๋ฐ ์ง๋ฌธ์ ํ๊ณ ์์ ๊ฒ์ ๋๋ค. \"์ง๊ธ ๋นํธ์ฝ์ธ์ ์ฌ๋ ๋ ๊น? 2026๋ ํ๋ฐ๊ธฐ ์ ๋ง์ ์ด๋ป๊ฒ ๋ ๊น?\" ๋ฐ๊ฐ๊ธฐ ์ดํ ์ฌ์ดํด, ๋ฏธ๊ตญ ๊ธ๋ฆฌ ์ ์ฑ , ETF ์๊ธ ์ ์ ๋ฑ ๋ณต์กํ ๋ณ์๊ฐ ์ฝํ ์์ด ๊ฐ์ธ ํฌ์์๊ฐ ๋ฐฉํฅ์ ์ก๊ธฐ ์ฝ์ง ์์ต๋๋ค. ์ด ๊ธ์์๋ ์ฝ์ธ ๋นํธ์ฝ์ธ 2026 ์ ๋ง์ ํํฉ...", + "articleType": "" + }, + { + "post_id": "2026-06-16_์์ธvs์ ์ธ2026๋ญ๊ฐ์ ๋ฆฌํ ๊น_42812e74", + "keyword": "์์ธ vs ์ ์ธ 2026 ๋ญ๊ฐ ์ ๋ฆฌํ ๊น", + "title": "์์ธ vs ์ ์ธ 2026 ๋ญ๊ฐ ์ ๋ฆฌํ ๊น ์๋ฒฝ ์ ๋ฆฌ 5๊ฐ์ง", + "status": "published", + "source": "auto", + "blogId": "default", + "blogName": "", + "blogUrl": "https://hoguwhat1.blogspot.com/2026/06/vs-2026-5.html", + "errorMessage": null, + "createdAt": "2026-06-16T00:00:00", + "publishedAt": "2026-06-16T00:00:00", + "lastAttemptAt": "2026-06-16T00:00:00", + "attempts": 1, + "runNumber": 0, + "wordCount": 3442, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "์์ธvs์ ์ธ", + "์ ์ธ2026", + "์์ธ2026", + "์๋์ฐจ๊ณ์ฝ", + "์ ์ธ์ฌ๊ธฐ์๋ฐฉ", + "์์ธ์ธ์ก๊ณต์ ", + "์ ์ธ๋์ถ๊ธ๋ฆฌ" + ], + "metaDescription": "2026๋ ์์ธ vs ์ ์ธ ๋ญ๊ฐ ์ ๋ฆฌํ ๊น? ์ต์ ๊ธ๋ฆฌยทํต๊ณ ๊ธฐ๋ฐ 5๊ฐ์ง ํ๋จ ๊ธฐ์ค, ์ค์ ์ฌ๋ก, ์ ์ธ์ฌ๊ธฐ ์๋ฐฉ๋ฒ, ์์ธ ์ธ์ก๊ณต์ ๊น์ง ์๋ฒฝ ์ ๋ฆฌ. ์ง๊ธ ๋ฐ๋ก ํ์ธํ์ธ์.", + "contentPreview": "2026๋ ํ์ฌ, ์ ์ธ์ ์์ธ ์ค ์ด๋ค ์ ํ์ด ๋ ์ ๋ฆฌํ์ง ๊ณ ๋ฏผํ๋ ๋ถ๋ค์ด ์ ๋ง ๋ง์ต๋๋ค. ๊ธ๋ฆฌ ๋ณํ, ์ ์ธ์ฌ๊ธฐ ์ฌํ, ์ง๊ฐ ๋ฐฉํฅ์ฑ ๋ฑ ๋ณต์กํ ๋ณ์๋ค์ด ์ฝํ ์์ด ๋จ์ํ '์ ์ธ๊ฐ ์ข๋ค', '์์ธ๊ฐ ์ข๋ค'๊ณ ๋งํ๊ธฐ ์ด๋ ต์ต๋๋ค. ์ด ๊ธ์์๋ ์์ธ vs ์ ์ธ 2026 ๋ญ๊ฐ ์ ๋ฆฌํ ๊น๋ฅผ ์ค์ ์์น์ ์ฌ๋ก๋ฅผ ๋ฐํ์ผ๋ก ๋ช ํํ๊ฒ ์ ๋ฆฌํด ๋๋ฆฝ๋๋ค. ํํฉ ํต๊ณ๋ถํฐ ์ค์ ์ ํ...", + "articleType": "" + }, + { + "post_id": "2026-06-15_AI์ฝ๋ฉ๋ฌด๋ฃ๋ก๋ฐฐ์ฐ๋๋ฒ_8451e9c8", + "keyword": "AI ์ฝ๋ฉ ๋ฌด๋ฃ๋ก ๋ฐฐ์ฐ๋ ๋ฒ", + "title": "AI ์ฝ๋ฉ ๋ฌด๋ฃ๋ก ๋ฐฐ์ฐ๋ ๋ฒ TOP 5 ์๋ฒฝ ์ ๋ฆฌ 2026๋ ", + "status": "published", + "source": "auto", + "blogId": "default", + "blogName": "", + "blogUrl": "https://hoguwhat1.blogspot.com/2026/06/ai-top-5-2026_0592099606.html", + "errorMessage": null, + "createdAt": "2026-06-15T00:00:00", + "publishedAt": "2026-06-15T00:00:00", + "lastAttemptAt": "2026-06-15T00:00:00", + "attempts": 1, + "runNumber": 0, + "wordCount": 3993, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "AI์ฝ๋ฉ", + "์ฝ๋ฉ๋ฌด๋ฃ๋ฐฐ์ฐ๊ธฐ", + "ํ์ด์ฌ๋ ํ", + "AIํ์ต", + "๋ฌด๋ฃ์ฝ๋ฉ๊ฐ์ข", + "๋จธ์ ๋ฌ๋์ ๋ฌธ", + "์ฝ๋ฉ๋ ํ" + ], + "metaDescription": "2026๋ ์ต์ ๊ธฐ์ค AI ์ฝ๋ฉ ๋ฌด๋ฃ๋ก ๋ฐฐ์ฐ๋ ๋ฒ TOP 5๋ฅผ ์ ๋ฌธ๊ฐ ์ถ์ฒ ์์ผ๋ก ์๋ฒฝ ์ ๋ฆฌํ์ต๋๋ค. freeCodeCamp๋ถํฐ ChatGPT ํํฐ ํ์ฉ๊น์ง ์ง๊ธ ๋ฐ๋ก ์คํ ๊ฐ๋ฅํ ๋ฌด๋ฃ ํ์ต ์ ๋ต์ ํ์ธํ์ธ์.", + "contentPreview": "\"์ฝ๋ฉ์ ๋ฐฐ์ฐ๊ณ ์ถ์๋ฐ ์ด๋์ ์์ํด์ผ ํ ์ง ๋ชจ๋ฅด๊ฒ ๋ค\", \"AI ์๋์ ๋ง๋ ์ฝ๋ฉ ๊ต์ก์ ๋ฌด๋ฃ๋ก ๋ฐ์ ์ ์์๊น?\" โ ์ด๋ฐ ๊ณ ๋ฏผ์ ๊ฐ์ง ๋ถ๋ค์ด 2026๋ ํ์ฌ ๊ธ๊ฒฉํ ๋๊ณ ์์ต๋๋ค. AI ๋๊ตฌ๊ฐ ์ฝ๋ฉ์ ์ง์ ์ฅ๋ฒฝ์ ํ๊ธฐ์ ์ผ๋ก ๋ฎ์ถ๋ฉด์, AI ์ฝ๋ฉ ๋ฌด๋ฃ๋ก ๋ฐฐ์ฐ๋ ๋ฒ์ ๋ํ ๊ด์ฌ์ด ๊ทธ ์ด๋ ๋๋ณด๋ค ๋์ต๋๋ค. ์ด ๊ธ์์๋ ์ค์ ๋ก ํ์ฉ ๊ฐ๋ฅํ ๋ฌด๋ฃ ํ๋ซํผ, ์ ๋ฌธ...", + "articleType": "" + }, + { + "post_id": "2026-06-15_์ข ํฉ์๋์ธํ๊ธ์ ์ฒญ๋ฐฉ๋ฒ_da28eac0", + "keyword": "์ข ํฉ์๋์ธ ํ๊ธ ์ ์ฒญ ๋ฐฉ๋ฒ", + "title": "2026๋ ์ข ํฉ์๋์ธ ํ๊ธ ์ ์ฒญ ๋ฐฉ๋ฒ 5๋จ๊ณ ์๋ฒฝ ์ ๋ฆฌ", + "status": "published", + "source": "auto", + "blogId": "default", + "blogName": "", + "blogUrl": "https://hoguwhat1.blogspot.com/2026/06/2026-5_0798872189.html", + "errorMessage": null, + "createdAt": "2026-06-15T00:00:00", + "publishedAt": "2026-06-15T00:00:00", + "lastAttemptAt": "2026-06-15T00:00:00", + "attempts": 1, + "runNumber": 0, + "wordCount": 3360, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "์ข ํฉ์๋์ธ", + "ํ๊ธ ์ ์ฒญ", + "ํํ์ค", + "์ํ์ค", + "๊ฒฝ์ ์ฒญ๊ตฌ", + "์ธ๊ธ ํ๊ธ", + "ํ๋ฆฌ๋์ ์ธ๊ธ" + ], + "metaDescription": "2026๋ ์ข ํฉ์๋์ธ ํ๊ธ ์ ์ฒญ ๋ฐฉ๋ฒ์ 5๋จ๊ณ๋ก ์๋ฒฝ ์ ๋ฆฌํ์ต๋๋ค. ํํ์คยท์ํ์ค ์ ์ฒญ๋ฒ, ๊ฒฝ์ ์ฒญ๊ตฌ, ๊ณต์ ๊ทน๋ํ ์ ๋ต๊น์ง ์ค์ ๊ฐ์ด๋๋ก ํ์ธํ์ธ์.", + "contentPreview": "๋งค๋ 5์์ด๋ฉด ์๋ฐฑ๋ง ๋ช ์ ์ง์ฅ์ธยทํ๋ฆฌ๋์ยท์ฌ์ ์๊ฐ ์ข ํฉ์๋์ธ ํ๊ธ ์ ์ฒญ ๋ฐฉ๋ฒ์ ๊ฒ์ํฉ๋๋ค. ํ์ง๋ง ๋ณต์กํ ์ธ๋ฒ ์ฉ์ด์ ์ ์ฐจ ํ์ ์ ์ ๋๋ ค๋ฐ์ ์ธ๊ธ์ ๋์น๋ ๊ฒฝ์ฐ๊ฐ ์ ์ง ์์ต๋๋ค. ์ด ๊ธ์์๋ 2026๋ ๊ธฐ์ค ์ข ํฉ์๋์ธ ํ๊ธ ์ ์ฒญ ๋ฐฉ๋ฒ์ ๋จ๊ณ๋ณ๋ก ์ ๋ฆฌํ๊ณ , ์ค์ ํ๊ธ์ก์ ๊ทน๋ํํ๋ ์ ๋ต๊น์ง ํ ๋ฒ์ ์๋ดํฉ๋๋ค. ํํ์ค ์ด์ฉ๋ถํฐ ๋ชจ๋ฐ์ผ ์ํ์ค ์ ์ฒญ, ๊ฒฝ์ ์ฒญ...", + "articleType": "" + }, + { + "post_id": "2026-06-14_2026์ฒญ์ฝ๋น์ฒจํ๋ฅ ๋์ด๋๋ฐฉ๋ฒ_c2342660", + "keyword": "2026 ์ฒญ์ฝ ๋น์ฒจ ํ๋ฅ ๋์ด๋ ๋ฐฉ๋ฒ", + "title": "2026 ์ฒญ์ฝ ๋น์ฒจ ํ๋ฅ ๋์ด๋ ๋ฐฉ๋ฒ 5๊ฐ์ง ์๋ฒฝ ์ ๋ฆฌ", + "status": "published", + "source": "auto", + "blogId": "default", + "blogName": "", + "blogUrl": "https://hoguwhat1.blogspot.com/2026/06/2026-5_0212882937.html", + "errorMessage": null, + "createdAt": "2026-06-14T00:00:00", + "publishedAt": "2026-06-14T00:00:00", + "lastAttemptAt": "2026-06-14T00:00:00", + "attempts": 1, + "runNumber": 0, + "wordCount": 3460, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "์ฒญ์ฝ๋น์ฒจํ๋ฅ ", + "2026์ฒญ์ฝ์ ๋ต", + "์ฃผํ์ฒญ์ฝ", + "์ฒญ์ฝ๊ฐ์ ์ ", + "ํน๋ณ๊ณต๊ธ", + "์ฒญ์ฝํ", + "๋ถ์์ ๋ณด" + ], + "metaDescription": "2026 ์ฒญ์ฝ ๋น์ฒจ ํ๋ฅ ๋์ด๋ ๋ฐฉ๋ฒ์ ๊ฐ์ ๊ด๋ฆฌยทํน๋ณ๊ณต๊ธยทํ์ ์ ๋ต ๋ฑ ์ ๋ฌธ๊ฐ ์ถ์ฒ TOP 5๋ก ์๋ฒฝ ์ ๋ฆฌํ์ต๋๋ค. ์ต์ ์ ๋ ๋ณํ์ ์ค์ ์ฌ๋ก, ์ฃผ์์ฌํญ๊น์ง ํ ๋ฒ์ ํ์ธํ์ธ์.", + "contentPreview": "๋ด ์ง ๋ง๋ จ์ ๊ฟ์ ์ด๋ฃจ๊ธฐ ์ํด ์ฒญ์ฝ์ ์ค๋นํ๊ณ ์์ง๋ง, ์์ญ ๋ ์ผ์ ๊ฒฝ์๋ฅ ์์์ ๋ง๋งํจ์ ๋๋ผ์๋์? 2026 ์ฒญ์ฝ ๋น์ฒจ ํ๋ฅ ๋์ด๋ ๋ฐฉ๋ฒ์ ๋จ์ํ '์ด'์ ๋งก๊ธฐ๋ ๊ฒ์ด ์๋๋๋ค. ์ฒญ์ฝ ์ ๋์ ๊ตฌ์กฐ๋ฅผ ์ ํํ ์ดํดํ๊ณ , ๋์๊ฒ ์ ๋ฆฌํ ์กฐ๊ฑด์ ์ ๋ต์ ์ผ๋ก ํ์ฉํ๋ฉด ๋น์ฒจ ๊ฐ๋ฅ์ฑ์ ์ค์ง์ ์ผ๋ก ๋์ด์ฌ๋ฆด ์ ์์ต๋๋ค. ์ด ๊ธ์์๋ 2026๋ ์ต์ ์ฒญ์ฝ ์ ๋ ๋ณํ๋ถ...", + "articleType": "" + }, + { + "post_id": "2026-06-14_๊ณต๋ณตํ๋น๋ฎ์ถ๋์ํ์ต๊ด_2b9a7eca", + "keyword": "๊ณต๋ณต ํ๋น ๋ฎ์ถ๋ ์ํ ์ต๊ด", + "title": "๊ณต๋ณต ํ๋น ๋ฎ์ถ๋ ์ํ ์ต๊ด TOP 5 ์๋ฒฝ ์ ๋ฆฌ (2026๋ )", + "status": "published", + "source": "auto", + "blogId": "default", + "blogName": "", + "blogUrl": "https://hoguwhat1.blogspot.com/2026/06/top-5-2026_01610766.html", + "errorMessage": null, + "createdAt": "2026-06-14T00:00:00", + "publishedAt": "2026-06-14T00:00:00", + "lastAttemptAt": "2026-06-14T00:00:00", + "attempts": 1, + "runNumber": 0, + "wordCount": 3561, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "๊ณต๋ณตํ๋น", + "ํ๋น๊ด๋ฆฌ", + "๋น๋จ์๋ฐฉ", + "์ํ์ต๊ด๊ฐ์ ", + "ํ๋น๋ฎ์ถ๊ธฐ", + "์ ๋น๋จ", + "์๋จ๊ด๋ฆฌ" + ], + "metaDescription": "๊ณต๋ณต ํ๋น ๋ฎ์ถ๋ ์ํ ์ต๊ด TOP 5๋ฅผ 2026๋ ์ต์ ์ฐ๊ตฌ ๊ธฐ๋ฐ์ผ๋ก ์๋ฒฝ ์ ๋ฆฌํ์ต๋๋ค. ์๋จยท์ด๋ยท์๋ฉดยท์คํธ๋ ์ค ๊ด๋ฆฌ๊น์ง ์ ๋ฌธ๊ฐ ์ถ์ฒ ๋ฐฉ๋ฒ๊ณผ ์ค์ ํ์ ํ ๋ฒ์ ํ์ธํ์ธ์.", + "contentPreview": "์์นจ์ ์ผ์ด๋์๋ง์ ์ธก์ ํ ๊ณต๋ณต ํ๋น ์์น๊ฐ ๋๊ฒ ๋์ ๊ฑฑ์ ํ์ ์ ์์ผ์ ๊ฐ์? ๊ณต๋ณต ํ๋น ๋ฎ์ถ๋ ์ํ ์ต๊ด์ ์ฝ ๋ณต์ฉ ์ ์ ๋ฐ๋์ ๋จผ์ ์๋ํด์ผ ํ ์ฒซ ๋ฒ์งธ ๋จ๊ณ์ ๋๋ค. ์ค์ ๋ก ๋ง์ ๋ถ๋ค์ด ํ๋น ๊ด๋ฆฌ๋ฅผ ์ํด ์ํ ์ต๊ด ๊ฐ์ ๋ง์ผ๋ก๋ ์๋ฏธ ์๋ ๋ณํ๋ฅผ ๊ฒฝํํ๊ณ ์์ต๋๋ค. ์ด ๊ธ์์๋ 2026๋ ์ต์ ์ฐ๊ตฌ์ ์ ๋ฌธ๊ฐ ๊ถ๊ณ ๋ฅผ ๋ฐํ์ผ๋ก, ๊ณต๋ณต ํ๋น์ ํจ๊ณผ์ ์ผ๋ก ๋ฎ์ถ...", + "articleType": "" + }, + { + "post_id": "2026-06-14_AI์ฝ๋ฉ๋๊ตฌ์ปค์์ฌ์ฉ๋ฒ์๋ฒฝ๊ฐ์ด๋_112eaff0", + "keyword": "AI ์ฝ๋ฉ ๋๊ตฌ ์ปค์ ์ฌ์ฉ๋ฒ ์๋ฒฝ๊ฐ์ด๋", + "title": "AI ์ฝ๋ฉ ๋๊ตฌ ์ปค์ ์๋ฒฝ ์ฌ์ฉ๋ฒ ๊ฐ์ด๋ 2026", + "status": "published", + "source": "auto", + "blogId": "default", + "blogName": "", + "blogUrl": "https://hoguwhat1.blogspot.com/2026/06/ai-2026.html", + "errorMessage": null, + "createdAt": "2026-06-14T00:00:00", + "publishedAt": "2026-06-14T00:00:00", + "lastAttemptAt": "2026-06-14T00:00:00", + "attempts": 1, + "runNumber": 0, + "wordCount": 4016, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "AI์ฝ๋ฉ๋๊ตฌ", + "์ปค์์ฌ์ฉ๋ฒ", + "Cursor", + "AI๊ฐ๋ฐ๋๊ตฌ", + "์ฝ๋ฉ์์ฐ์ฑ", + "ํ๋ก๊ทธ๋๋ฐํ", + "AI์ฝ๋ฉ" + ], + "metaDescription": "2026๋ ์ต์ ๊ธฐ์ค AI ์ฝ๋ฉ ๋๊ตฌ ์ปค์(Cursor) ์ฌ์ฉ๋ฒ ์๋ฒฝ๊ฐ์ด๋. ์ค์น๋ถํฐ ํต์ฌ ๊ธฐ๋ฅ TOP5, ์ค์ ํ์ฉ ์ ๋ต, ์ฃผ์์ฌํญ๊น์ง ๊ฐ๋ฐ์๊ฐ ๋ฐ๋ก ์คํ ๊ฐ๋ฅํ ์ ๋ณด๋ฅผ ์ด์ ๋ฆฌํ์ต๋๋ค.", + "contentPreview": "๊ฐ๋ฐ์๋ผ๋ฉด ๋๊ตฌ๋ ํ ๋ฒ์ฏค ๊ณ ๋ฏผํด๋ดค์ ๊ฒ์ ๋๋ค. \"AI ์ฝ๋ฉ ๋๊ตฌ๋ฅผ ์จ๋ณด๊ณ ์ถ์๋ฐ, ์ด๋์๋ถํฐ ์์ํด์ผ ํ ๊น?\" ํนํ AI ์ฝ๋ฉ ๋๊ตฌ ์ปค์(Cursor)๋ 2024๋ ๋ฑ์ฅ ์ดํ ๋น ๋ฅด๊ฒ ๊ฐ๋ฐ์ ์ปค๋ฎค๋ํฐ์ ์ฃผ๋ชฉ์ ๋ฐ์์์ผ๋ฉฐ, 2026๋ ํ์ฌ ์ ์ธ๊ณ ์๋ฐฑ๋ง ๋ช ์ ๊ฐ๋ฐ์๊ฐ ์ค๋ฌด์ ํ์ฉํ๊ณ ์์ต๋๋ค. ์ด ๊ธ์์๋ ์ปค์์ ํต์ฌ ๊ธฐ๋ฅ๋ถํฐ ์ค์ ํ์ฉ๋ฒ, ์ฃผ์์ฌํญ, ์ต์ ...", + "articleType": "" + }, + { + "post_id": "2026-06-14_2026ํ๋ฐ๊ธฐ์ํํธ๋ถ์์ผ์ ์ด์ ๋ฆฌ_c0471494", + "keyword": "2026 ํ๋ฐ๊ธฐ ์ํํธ ๋ถ์ ์ผ์ ์ด์ ๋ฆฌ", + "title": "2026 ํ๋ฐ๊ธฐ ์ํํธ ๋ถ์ ์ผ์ ์ด์ ๋ฆฌ 5๊ฐ์ง ํต์ฌ ์ ๋ต", + "status": "published", + "source": "auto", + "blogId": "default", + "blogName": "", + "blogUrl": "https://hoguwhat1.blogspot.com/2026/06/2026-5_0351280751.html", + "errorMessage": null, + "createdAt": "2026-06-14T00:00:00", + "publishedAt": "2026-06-14T00:00:00", + "lastAttemptAt": "2026-06-14T00:00:00", + "attempts": 1, + "runNumber": 0, + "wordCount": 508, + "faqCount": 5, + "category": "์ผ๋ฐ", + "labels": [ + "์ํํธ๋ถ์", + "2026ํ๋ฐ๊ธฐ๋ถ์", + "์ฒญ์ฝ์ผ์ ", + "๋ถ์์ ๋ณด", + "์ฒญ์ฝ๊ฐ์ ", + "๋ดํ๊ณต๊ณต๋ถ์", + "๋ถ์๊ฐ์ํ์ " + ], + "metaDescription": "2026 ํ๋ฐ๊ธฐ ์ํํธ ๋ถ์ ์ผ์ ์ด์ ๋ฆฌ! ์๋๊ถยท์ง๋ฐฉ ์ฃผ์ ๋ถ์ ๋ฌผ๋ยท์ผ์ ยท์ฒญ์ฝ ์ ๋ต TOP 5ยท์ฃผ์์ฌํญ 3๊ฐ์งยท์ต์ ํธ๋ ๋๋ฅผ ํ ๋ฒ์ ์ ๋ฆฌํ์ต๋๋ค. ์ค์์์ยทํฌ์์ ๋ชจ๋ ํ๋ .", + "contentPreview": "2026 ํ๋ฐ๊ธฐ ์ํํธ ๋ถ์ ์ผ์ ์ด์ ๋ฆฌ๋ฅผ ์ฐพ๊ณ ๊ณ์ ๊ฐ์? ํ๋ฐ๊ธฐ ์ฒญ์ฝ์ ์ค๋น ์ค์ธ ์ค์์์๋ผ๋ฉด ์ด๋ค ๋จ์ง๊ฐ ์ธ์ ๋์ค๋์ง, ์ด๋์ ์ ๋ณด๋ฅผ ํ์ธํด์ผ ํ๋์ง ๋ง๋งํ๊ฒ ๋๋ผ์ค ์ ์์ต๋๋ค. ์ด ๊ธ์์๋ 2026๋ 7์~12์ ์ฃผ์ ๋ถ์ ์ผ์ , ์ฒญ์ฝ ์ ๋ต, ์ฃผ์์ฌํญ, ์ต์ ํธ๋ ๋๊น์ง ํ ๋ฒ์ ์ ๋ฆฌํด ๋๋ฆฝ๋๋ค. ์ค์์์์ ํฌ์์ ๋ชจ๋์๊ฒ ๋ฐ๋ก ํ์ฉ ๊ฐ๋ฅํ ์ ๋ณด๋ฅผ ...", + "articleType": "" + } +] \ No newline at end of file diff --git a/blog-automation/logs/repair_history.json b/blog-automation/logs/repair_history.json new file mode 100644 index 0000000000000..69c70d113bb18 --- /dev/null +++ b/blog-automation/logs/repair_history.json @@ -0,0 +1,2210 @@ +[ + { + "timestamp": "2026-07-22T18:05:45.540249", + "health_score": 86, + "issues_found": 2, + "issues": [ + { + "id": "consecutive_pending_review", + "level": "warning", + "message": "์ต๊ทผ 5ํ ์ฐ์ ๊ฒํ ๋๊ธฐ ์ ํ (๋ถ๋/AdSense ์ ์ ๋ฏธ๋ฌ)", + "context": { + "pending_count": 5, + "recent_dates": [ + "2026-07-22", + "2026-07-22", + "2026-07-22", + "2026-07-22", + "2026-07-22" + ] + }, + "fix": null + }, + { + "id": "adsense_not_configured", + "level": "warning", + "message": "AdSense ๋ฏธ์ค์ โ ๊ด๊ณ ์์ตํ ๋นํ์ฑํ ์ํ", + "context": {}, + "fix": null + } + ], + "repairs_applied": 0, + "repairs": [ + { + "issue_id": "consecutive_pending_review", + "issue_level": "warning", + "issue_message": "์ต๊ทผ 5ํ ์ฐ์ ๊ฒํ ๋๊ธฐ ์ ํ (๋ถ๋/AdSense ์ ์ ๋ฏธ๋ฌ)", + "fix_applied": null, + "timestamp": "2026-07-22T18:05:45.540093", + "success": null, + "detail": "์๋ ์กฐ์น ํ์ (์๋ ์๋ฆฌ ๋ถ๊ฐ)" + }, + { + "issue_id": "adsense_not_configured", + "issue_level": "warning", + "issue_message": "AdSense ๋ฏธ์ค์ โ ๊ด๊ณ ์์ตํ ๋นํ์ฑํ ์ํ", + "fix_applied": null, + "timestamp": "2026-07-22T18:05:45.540177", + "success": null, + "detail": "์๋ ์กฐ์น ํ์ (์๋ ์๋ฆฌ ๋ถ๊ฐ)" + } + ], + "dry_run": false + }, + { + "timestamp": "2026-07-22T15:41:02.634390", + "health_score": 86, + "issues_found": 2, + "issues": [ + { + "id": "consecutive_pending_review", + "level": "warning", + "message": "์ต๊ทผ 5ํ ์ฐ์ ๊ฒํ ๋๊ธฐ ์ ํ (๋ถ๋/AdSense ์ ์ ๋ฏธ๋ฌ)", + "context": { + "pending_count": 5, + "recent_dates": [ + "2026-07-22", + "2026-07-22", + "2026-07-22", + "2026-07-22", + "2026-07-22" + ] + }, + "fix": null + }, + { + "id": "adsense_not_configured", + "level": "warning", + "message": "AdSense ๋ฏธ์ค์ โ ๊ด๊ณ ์์ตํ ๋นํ์ฑํ ์ํ", + "context": {}, + "fix": null + } + ], + "repairs_applied": 0, + "repairs": [ + { + "issue_id": "consecutive_pending_review", + "issue_level": "warning", + "issue_message": "์ต๊ทผ 5ํ ์ฐ์ ๊ฒํ ๋๊ธฐ ์ ํ (๋ถ๋/AdSense ์ ์ ๋ฏธ๋ฌ)", + "fix_applied": null, + "timestamp": "2026-07-22T15:41:02.634216", + "success": null, + "detail": "์๋ ์กฐ์น ํ์ (์๋ ์๋ฆฌ ๋ถ๊ฐ)" + }, + { + "issue_id": "adsense_not_configured", + "issue_level": "warning", + "issue_message": "AdSense ๋ฏธ์ค์ โ ๊ด๊ณ ์์ตํ ๋นํ์ฑํ ์ํ", + "fix_applied": null, + "timestamp": "2026-07-22T15:41:02.634314", + "success": null, + "detail": "์๋ ์กฐ์น ํ์ (์๋ ์๋ฆฌ ๋ถ๊ฐ)" + } + ], + "dry_run": false + }, + { + "timestamp": "2026-07-22T15:37:48.223041", + "health_score": 86, + "issues_found": 2, + "issues": [ + { + "id": "consecutive_pending_review", + "level": "warning", + "message": "์ต๊ทผ 5ํ ์ฐ์ ๊ฒํ ๋๊ธฐ ์ ํ (๋ถ๋/AdSense ์ ์ ๋ฏธ๋ฌ)", + "context": { + "pending_count": 5, + "recent_dates": [ + "2026-07-22", + "2026-07-22", + "2026-07-22", + "2026-07-22", + "2026-07-22" + ] + }, + "fix": null + }, + { + "id": "adsense_not_configured", + "level": "warning", + "message": "AdSense ๋ฏธ์ค์ โ ๊ด๊ณ ์์ตํ ๋นํ์ฑํ ์ํ", + "context": {}, + "fix": null + } + ], + "repairs_applied": 0, + "repairs": [ + { + "issue_id": "consecutive_pending_review", + "issue_level": "warning", + "issue_message": "์ต๊ทผ 5ํ ์ฐ์ ๊ฒํ ๋๊ธฐ ์ ํ (๋ถ๋/AdSense ์ ์ ๋ฏธ๋ฌ)", + "fix_applied": null, + "timestamp": "2026-07-22T15:37:48.222881", + "success": null, + "detail": "์๋ ์กฐ์น ํ์ (์๋ ์๋ฆฌ ๋ถ๊ฐ)" + }, + { + "issue_id": "adsense_not_configured", + "issue_level": "warning", + "issue_message": "AdSense ๋ฏธ์ค์ โ ๊ด๊ณ ์์ตํ ๋นํ์ฑํ ์ํ", + "fix_applied": null, + "timestamp": "2026-07-22T15:37:48.222945", + "success": null, + "detail": "์๋ ์กฐ์น ํ์ (์๋ ์๋ฆฌ ๋ถ๊ฐ)" + } + ], + "dry_run": false + }, + { + "timestamp": "2026-07-22T14:12:54.721656", + "health_score": 86, + "issues_found": 2, + "issues": [ + { + "id": "consecutive_pending_review", + "level": "warning", + "message": "์ต๊ทผ 5ํ ์ฐ์ ๊ฒํ ๋๊ธฐ ์ ํ (๋ถ๋/AdSense ์ ์ ๋ฏธ๋ฌ)", + "context": { + "pending_count": 5, + "recent_dates": [ + "2026-07-22", + "2026-07-22", + "2026-07-22", + "2026-07-22", + "2026-07-22" + ] + }, + "fix": null + }, + { + "id": "adsense_not_configured", + "level": "warning", + "message": "AdSense ๋ฏธ์ค์ โ ๊ด๊ณ ์์ตํ ๋นํ์ฑํ ์ํ", + "context": {}, + "fix": null + } + ], + "repairs_applied": 0, + "repairs": [ + { + "issue_id": "consecutive_pending_review", + "issue_level": "warning", + "issue_message": "์ต๊ทผ 5ํ ์ฐ์ ๊ฒํ ๋๊ธฐ ์ ํ (๋ถ๋/AdSense ์ ์ ๋ฏธ๋ฌ)", + "fix_applied": null, + "timestamp": "2026-07-22T14:12:54.721536", + "success": null, + "detail": "์๋ ์กฐ์น ํ์ (์๋ ์๋ฆฌ ๋ถ๊ฐ)" + }, + { + "issue_id": "adsense_not_configured", + "issue_level": "warning", + "issue_message": "AdSense ๋ฏธ์ค์ โ ๊ด๊ณ ์์ตํ ๋นํ์ฑํ ์ํ", + "fix_applied": null, + "timestamp": "2026-07-22T14:12:54.721606", + "success": null, + "detail": "์๋ ์กฐ์น ํ์ (์๋ ์๋ฆฌ ๋ถ๊ฐ)" + } + ], + "dry_run": false + }, + { + "timestamp": "2026-07-22T12:33:08.189549", + "health_score": 86, + "issues_found": 2, + "issues": [ + { + "id": "consecutive_pending_review", + "level": "warning", + "message": "์ต๊ทผ 5ํ ์ฐ์ ๊ฒํ ๋๊ธฐ ์ ํ (๋ถ๋/AdSense ์ ์ ๋ฏธ๋ฌ)", + "context": { + "pending_count": 5, + "recent_dates": [ + "2026-07-22", + "2026-07-22", + "2026-07-22", + "2026-07-22", + "2026-07-22" + ] + }, + "fix": null + }, + { + "id": "adsense_not_configured", + "level": "warning", + "message": "AdSense ๋ฏธ์ค์ โ ๊ด๊ณ ์์ตํ ๋นํ์ฑํ ์ํ", + "context": {}, + "fix": null + } + ], + "repairs_applied": 0, + "repairs": [ + { + "issue_id": "consecutive_pending_review", + "issue_level": "warning", + "issue_message": "์ต๊ทผ 5ํ ์ฐ์ ๊ฒํ ๋๊ธฐ ์ ํ (๋ถ๋/AdSense ์ ์ ๋ฏธ๋ฌ)", + "fix_applied": null, + "timestamp": "2026-07-22T12:33:08.189439", + "success": null, + "detail": "์๋ ์กฐ์น ํ์ (์๋ ์๋ฆฌ ๋ถ๊ฐ)" + }, + { + "issue_id": "adsense_not_configured", + "issue_level": "warning", + "issue_message": "AdSense ๋ฏธ์ค์ โ ๊ด๊ณ ์์ตํ ๋นํ์ฑํ ์ํ", + "fix_applied": null, + "timestamp": "2026-07-22T12:33:08.189499", + "success": null, + "detail": "์๋ ์กฐ์น ํ์ (์๋ ์๋ฆฌ ๋ถ๊ฐ)" + } + ], + "dry_run": false + }, + { + "timestamp": "2026-07-21T18:13:14.288365", + "health_score": 86, + "issues_found": 2, + "issues": [ + { + "id": "consecutive_pending_review", + "level": "warning", + "message": "์ต๊ทผ 3ํ ์ฐ์ ๊ฒํ ๋๊ธฐ ์ ํ (๋ถ๋/AdSense ์ ์ ๋ฏธ๋ฌ)", + "context": { + "pending_count": 3, + "recent_dates": [ + "2026-07-21", + "2026-07-21", + "2026-07-21" + ] + }, + "fix": null + }, + { + "id": "adsense_not_configured", + "level": "warning", + "message": "AdSense ๋ฏธ์ค์ โ ๊ด๊ณ ์์ตํ ๋นํ์ฑํ ์ํ", + "context": {}, + "fix": null + } + ], + "repairs_applied": 0, + "repairs": [ + { + "issue_id": "consecutive_pending_review", + "issue_level": "warning", + "issue_message": "์ต๊ทผ 3ํ ์ฐ์ ๊ฒํ ๋๊ธฐ ์ ํ (๋ถ๋/AdSense ์ ์ ๋ฏธ๋ฌ)", + "fix_applied": null, + "timestamp": "2026-07-21T18:13:14.288234", + "success": null, + "detail": "์๋ ์กฐ์น ํ์ (์๋ ์๋ฆฌ ๋ถ๊ฐ)" + }, + { + "issue_id": "adsense_not_configured", + "issue_level": "warning", + "issue_message": "AdSense ๋ฏธ์ค์ โ ๊ด๊ณ ์์ตํ ๋นํ์ฑํ ์ํ", + "fix_applied": null, + "timestamp": "2026-07-21T18:13:14.288309", + "success": null, + "detail": "์๋ ์กฐ์น ํ์ (์๋ ์๋ฆฌ ๋ถ๊ฐ)" + } + ], + "dry_run": false + }, + { + "timestamp": "2026-07-21T15:07:15.483679", + "health_score": 86, + "issues_found": 2, + "issues": [ + { + "id": "consecutive_pending_review", + "level": "warning", + "message": "์ต๊ทผ 3ํ ์ฐ์ ๊ฒํ ๋๊ธฐ ์ ํ (๋ถ๋/AdSense ์ ์ ๋ฏธ๋ฌ)", + "context": { + "pending_count": 3, + "recent_dates": [ + "2026-07-21", + "2026-07-21", + "2026-07-21" + ] + }, + "fix": null + }, + { + "id": "adsense_not_configured", + "level": "warning", + "message": "AdSense ๋ฏธ์ค์ โ ๊ด๊ณ ์์ตํ ๋นํ์ฑํ ์ํ", + "context": {}, + "fix": null + } + ], + "repairs_applied": 0, + "repairs": [ + { + "issue_id": "consecutive_pending_review", + "issue_level": "warning", + "issue_message": "์ต๊ทผ 3ํ ์ฐ์ ๊ฒํ ๋๊ธฐ ์ ํ (๋ถ๋/AdSense ์ ์ ๋ฏธ๋ฌ)", + "fix_applied": null, + "timestamp": "2026-07-21T15:07:15.483529", + "success": null, + "detail": "์๋ ์กฐ์น ํ์ (์๋ ์๋ฆฌ ๋ถ๊ฐ)" + }, + { + "issue_id": "adsense_not_configured", + "issue_level": "warning", + "issue_message": "AdSense ๋ฏธ์ค์ โ ๊ด๊ณ ์์ตํ ๋นํ์ฑํ ์ํ", + "fix_applied": null, + "timestamp": "2026-07-21T15:07:15.483618", + "success": null, + "detail": "์๋ ์กฐ์น ํ์ (์๋ ์๋ฆฌ ๋ถ๊ฐ)" + } + ], + "dry_run": false + }, + { + "timestamp": "2026-07-21T15:00:50.202598", + "health_score": 86, + "issues_found": 2, + "issues": [ + { + "id": "consecutive_pending_review", + "level": "warning", + "message": "์ต๊ทผ 3ํ ์ฐ์ ๊ฒํ ๋๊ธฐ ์ ํ (๋ถ๋/AdSense ์ ์ ๋ฏธ๋ฌ)", + "context": { + "pending_count": 3, + "recent_dates": [ + "2026-07-21", + "2026-07-21", + "2026-07-21" + ] + }, + "fix": null + }, + { + "id": "adsense_not_configured", + "level": "warning", + "message": "AdSense ๋ฏธ์ค์ โ ๊ด๊ณ ์์ตํ ๋นํ์ฑํ ์ํ", + "context": {}, + "fix": null + } + ], + "repairs_applied": 0, + "repairs": [ + { + "issue_id": "consecutive_pending_review", + "issue_level": "warning", + "issue_message": "์ต๊ทผ 3ํ ์ฐ์ ๊ฒํ ๋๊ธฐ ์ ํ (๋ถ๋/AdSense ์ ์ ๋ฏธ๋ฌ)", + "fix_applied": null, + "timestamp": "2026-07-21T15:00:50.202470", + "success": null, + "detail": "์๋ ์กฐ์น ํ์ (์๋ ์๋ฆฌ ๋ถ๊ฐ)" + }, + { + "issue_id": "adsense_not_configured", + "issue_level": "warning", + "issue_message": "AdSense ๋ฏธ์ค์ โ ๊ด๊ณ ์์ตํ ๋นํ์ฑํ ์ํ", + "fix_applied": null, + "timestamp": "2026-07-21T15:00:50.202556", + "success": null, + "detail": "์๋ ์กฐ์น ํ์ (์๋ ์๋ฆฌ ๋ถ๊ฐ)" + } + ], + "dry_run": false + }, + { + "timestamp": "2026-07-21T14:29:49.512558", + "health_score": 86, + "issues_found": 2, + "issues": [ + { + "id": "consecutive_pending_review", + "level": "warning", + "message": "์ต๊ทผ 3ํ ์ฐ์ ๊ฒํ ๋๊ธฐ ์ ํ (๋ถ๋/AdSense ์ ์ ๋ฏธ๋ฌ)", + "context": { + "pending_count": 3, + "recent_dates": [ + "2026-07-21", + "2026-07-21", + "2026-07-21" + ] + }, + "fix": null + }, + { + "id": "adsense_not_configured", + "level": "warning", + "message": "AdSense ๋ฏธ์ค์ โ ๊ด๊ณ ์์ตํ ๋นํ์ฑํ ์ํ", + "context": {}, + "fix": null + } + ], + "repairs_applied": 0, + "repairs": [ + { + "issue_id": "consecutive_pending_review", + "issue_level": "warning", + "issue_message": "์ต๊ทผ 3ํ ์ฐ์ ๊ฒํ ๋๊ธฐ ์ ํ (๋ถ๋/AdSense ์ ์ ๋ฏธ๋ฌ)", + "fix_applied": null, + "timestamp": "2026-07-21T14:29:49.512388", + "success": null, + "detail": "์๋ ์กฐ์น ํ์ (์๋ ์๋ฆฌ ๋ถ๊ฐ)" + }, + { + "issue_id": "adsense_not_configured", + "issue_level": "warning", + "issue_message": "AdSense ๋ฏธ์ค์ โ ๊ด๊ณ ์์ตํ ๋นํ์ฑํ ์ํ", + "fix_applied": null, + "timestamp": "2026-07-21T14:29:49.512482", + "success": null, + "detail": "์๋ ์กฐ์น ํ์ (์๋ ์๋ฆฌ ๋ถ๊ฐ)" + } + ], + "dry_run": false + }, + { + "timestamp": "2026-07-21T14:14:19.719011", + "health_score": 86, + "issues_found": 2, + "issues": [ + { + "id": "consecutive_pending_review", + "level": "warning", + "message": "์ต๊ทผ 3ํ ์ฐ์ ๊ฒํ ๋๊ธฐ ์ ํ (๋ถ๋/AdSense ์ ์ ๋ฏธ๋ฌ)", + "context": { + "pending_count": 3, + "recent_dates": [ + "2026-07-21", + "2026-07-21", + "2026-07-21" + ] + }, + "fix": null + }, + { + "id": "adsense_not_configured", + "level": "warning", + "message": "AdSense ๋ฏธ์ค์ โ ๊ด๊ณ ์์ตํ ๋นํ์ฑํ ์ํ", + "context": {}, + "fix": null + } + ], + "repairs_applied": 0, + "repairs": [ + { + "issue_id": "consecutive_pending_review", + "issue_level": "warning", + "issue_message": "์ต๊ทผ 3ํ ์ฐ์ ๊ฒํ ๋๊ธฐ ์ ํ (๋ถ๋/AdSense ์ ์ ๋ฏธ๋ฌ)", + "fix_applied": null, + "timestamp": "2026-07-21T14:14:19.718847", + "success": null, + "detail": "์๋ ์กฐ์น ํ์ (์๋ ์๋ฆฌ ๋ถ๊ฐ)" + }, + { + "issue_id": "adsense_not_configured", + "issue_level": "warning", + "issue_message": "AdSense ๋ฏธ์ค์ โ ๊ด๊ณ ์์ตํ ๋นํ์ฑํ ์ํ", + "fix_applied": null, + "timestamp": "2026-07-21T14:14:19.718937", + "success": null, + "detail": "์๋ ์กฐ์น ํ์ (์๋ ์๋ฆฌ ๋ถ๊ฐ)" + } + ], + "dry_run": false + }, + { + "timestamp": "2026-07-21T07:34:29.378519", + "health_score": 63, + "issues_found": 2, + "issues": [ + { + "id": "consecutive_upload_failures", + "level": "critical", + "message": "์ต๊ทผ 5ํ ์ฐ์ ์ ๋ก๋ ์คํจ (0๊ฑด ์ ๋ก๋)", + "context": { + "fail_count": 5, + "recent_dates": [ + "2026-07-21", + "2026-07-21", + "2026-07-21", + "2026-07-20", + "2026-07-20" + ] + }, + "fix": "check_blogger_connection" + }, + { + "id": "adsense_not_configured", + "level": "warning", + "message": "AdSense ๋ฏธ์ค์ โ ๊ด๊ณ ์์ตํ ๋นํ์ฑํ ์ํ", + "context": {}, + "fix": null + } + ], + "repairs_applied": 1, + "repairs": [ + { + "issue_id": "consecutive_upload_failures", + "issue_level": "critical", + "issue_message": "์ต๊ทผ 5ํ ์ฐ์ ์ ๋ก๋ ์คํจ (0๊ฑด ์ ๋ก๋)", + "fix_applied": "check_blogger_connection", + "timestamp": "2026-07-21T07:34:28.848788", + "success": true, + "detail": "Blogger ์ฐ๊ฒฐ ์ ์: HOGU What? (https://www.hoguwhat.com/) โ ์ ๋ก๋ ํ๋ผ๋ฏธํฐ ๋ฌธ์ ๊ฐ๋ฅ์ฑ" + }, + { + "issue_id": "adsense_not_configured", + "issue_level": "warning", + "issue_message": "AdSense ๋ฏธ์ค์ โ ๊ด๊ณ ์์ตํ ๋นํ์ฑํ ์ํ", + "fix_applied": null, + "timestamp": "2026-07-21T07:34:29.359903", + "success": null, + "detail": "์๋ ์กฐ์น ํ์ (์๋ ์๋ฆฌ ๋ถ๊ฐ)" + } + ], + "dry_run": false + }, + { + "timestamp": "2026-07-21T06:51:30.261855", + "health_score": 63, + "issues_found": 2, + "issues": [ + { + "id": "consecutive_upload_failures", + "level": "critical", + "message": "์ต๊ทผ 5ํ ์ฐ์ ์ ๋ก๋ ์คํจ (0๊ฑด ์ ๋ก๋)", + "context": { + "fail_count": 5, + "recent_dates": [ + "2026-07-21", + "2026-07-21", + "2026-07-21", + "2026-07-20", + "2026-07-20" + ] + }, + "fix": "check_blogger_connection" + }, + { + "id": "adsense_not_configured", + "level": "warning", + "message": "AdSense ๋ฏธ์ค์ โ ๊ด๊ณ ์์ตํ ๋นํ์ฑํ ์ํ", + "context": {}, + "fix": null + } + ], + "repairs_applied": 1, + "repairs": [ + { + "issue_id": "consecutive_upload_failures", + "issue_level": "critical", + "issue_message": "์ต๊ทผ 5ํ ์ฐ์ ์ ๋ก๋ ์คํจ (0๊ฑด ์ ๋ก๋)", + "fix_applied": "check_blogger_connection", + "timestamp": "2026-07-21T06:51:29.804772", + "success": true, + "detail": "Blogger ์ฐ๊ฒฐ ์ ์: HOGU What? (https://www.hoguwhat.com/) โ ์ ๋ก๋ ํ๋ผ๋ฏธํฐ ๋ฌธ์ ๊ฐ๋ฅ์ฑ" + }, + { + "issue_id": "adsense_not_configured", + "issue_level": "warning", + "issue_message": "AdSense ๋ฏธ์ค์ โ ๊ด๊ณ ์์ตํ ๋นํ์ฑํ ์ํ", + "fix_applied": null, + "timestamp": "2026-07-21T06:51:30.245950", + "success": null, + "detail": "์๋ ์กฐ์น ํ์ (์๋ ์๋ฆฌ ๋ถ๊ฐ)" + } + ], + "dry_run": false + }, + { + "timestamp": "2026-07-21T06:31:54.695321", + "health_score": 63, + "issues_found": 2, + "issues": [ + { + "id": "consecutive_upload_failures", + "level": "critical", + "message": "์ต๊ทผ 5ํ ์ฐ์ ์ ๋ก๋ ์คํจ (0๊ฑด ์ ๋ก๋)", + "context": { + "fail_count": 5, + "recent_dates": [ + "2026-07-21", + "2026-07-21", + "2026-07-21", + "2026-07-20", + "2026-07-20" + ] + }, + "fix": "check_blogger_connection" + }, + { + "id": "adsense_not_configured", + "level": "warning", + "message": "AdSense ๋ฏธ์ค์ โ ๊ด๊ณ ์์ตํ ๋นํ์ฑํ ์ํ", + "context": {}, + "fix": null + } + ], + "repairs_applied": 1, + "repairs": [ + { + "issue_id": "consecutive_upload_failures", + "issue_level": "critical", + "issue_message": "์ต๊ทผ 5ํ ์ฐ์ ์ ๋ก๋ ์คํจ (0๊ฑด ์ ๋ก๋)", + "fix_applied": "check_blogger_connection", + "timestamp": "2026-07-21T06:31:54.185429", + "success": true, + "detail": "Blogger ์ฐ๊ฒฐ ์ ์: HOGU What? (https://www.hoguwhat.com/) โ ์ ๋ก๋ ํ๋ผ๋ฏธํฐ ๋ฌธ์ ๊ฐ๋ฅ์ฑ" + }, + { + "issue_id": "adsense_not_configured", + "issue_level": "warning", + "issue_message": "AdSense ๋ฏธ์ค์ โ ๊ด๊ณ ์์ตํ ๋นํ์ฑํ ์ํ", + "fix_applied": null, + "timestamp": "2026-07-21T06:31:54.678534", + "success": null, + "detail": "์๋ ์กฐ์น ํ์ (์๋ ์๋ฆฌ ๋ถ๊ฐ)" + } + ], + "dry_run": false + }, + { + "timestamp": "2026-07-21T05:28:01.925183", + "health_score": 63, + "issues_found": 2, + "issues": [ + { + "id": "consecutive_upload_failures", + "level": "critical", + "message": "์ต๊ทผ 5ํ ์ฐ์ ์ ๋ก๋ ์คํจ (0๊ฑด ์ ๋ก๋)", + "context": { + "fail_count": 5, + "recent_dates": [ + "2026-07-20", + "2026-07-20", + "2026-07-20", + "2026-07-20", + "2026-07-20" + ] + }, + "fix": "check_blogger_connection" + }, + { + "id": "adsense_not_configured", + "level": "warning", + "message": "AdSense ๋ฏธ์ค์ โ ๊ด๊ณ ์์ตํ ๋นํ์ฑํ ์ํ", + "context": {}, + "fix": null + } + ], + "repairs_applied": 1, + "repairs": [ + { + "issue_id": "consecutive_upload_failures", + "issue_level": "critical", + "issue_message": "์ต๊ทผ 5ํ ์ฐ์ ์ ๋ก๋ ์คํจ (0๊ฑด ์ ๋ก๋)", + "fix_applied": "check_blogger_connection", + "timestamp": "2026-07-21T05:28:01.395002", + "success": true, + "detail": "Blogger ์ฐ๊ฒฐ ์ ์: HOGU What? (https://www.hoguwhat.com/) โ ์ ๋ก๋ ํ๋ผ๋ฏธํฐ ๋ฌธ์ ๊ฐ๋ฅ์ฑ" + }, + { + "issue_id": "adsense_not_configured", + "issue_level": "warning", + "issue_message": "AdSense ๋ฏธ์ค์ โ ๊ด๊ณ ์์ตํ ๋นํ์ฑํ ์ํ", + "fix_applied": null, + "timestamp": "2026-07-21T05:28:01.908431", + "success": null, + "detail": "์๋ ์กฐ์น ํ์ (์๋ ์๋ฆฌ ๋ถ๊ฐ)" + } + ], + "dry_run": false + }, + { + "timestamp": "2026-07-20T23:00:06.616132", + "health_score": 63, + "issues_found": 2, + "issues": [ + { + "id": "consecutive_upload_failures", + "level": "critical", + "message": "์ต๊ทผ 4ํ ์ฐ์ ์ ๋ก๋ ์คํจ (0๊ฑด ์ ๋ก๋)", + "context": { + "fail_count": 4, + "recent_dates": [ + "2026-07-20", + "2026-07-20", + "2026-07-20", + "2026-07-20" + ] + }, + "fix": "check_blogger_connection" + }, + { + "id": "adsense_not_configured", + "level": "warning", + "message": "AdSense ๋ฏธ์ค์ โ ๊ด๊ณ ์์ตํ ๋นํ์ฑํ ์ํ", + "context": {}, + "fix": null + } + ], + "repairs_applied": 1, + "repairs": [ + { + "issue_id": "consecutive_upload_failures", + "issue_level": "critical", + "issue_message": "์ต๊ทผ 4ํ ์ฐ์ ์ ๋ก๋ ์คํจ (0๊ฑด ์ ๋ก๋)", + "fix_applied": "check_blogger_connection", + "timestamp": "2026-07-20T23:00:06.125578", + "success": true, + "detail": "Blogger ์ฐ๊ฒฐ ์ ์: HOGU What? (https://www.hoguwhat.com/) โ ์ ๋ก๋ ํ๋ผ๋ฏธํฐ ๋ฌธ์ ๊ฐ๋ฅ์ฑ" + }, + { + "issue_id": "adsense_not_configured", + "issue_level": "warning", + "issue_message": "AdSense ๋ฏธ์ค์ โ ๊ด๊ณ ์์ตํ ๋นํ์ฑํ ์ํ", + "fix_applied": null, + "timestamp": "2026-07-20T23:00:06.597174", + "success": null, + "detail": "์๋ ์กฐ์น ํ์ (์๋ ์๋ฆฌ ๋ถ๊ฐ)" + } + ], + "dry_run": false + }, + { + "timestamp": "2026-07-20T22:40:17.091969", + "health_score": 63, + "issues_found": 2, + "issues": [ + { + "id": "consecutive_upload_failures", + "level": "critical", + "message": "์ต๊ทผ 4ํ ์ฐ์ ์ ๋ก๋ ์คํจ (0๊ฑด ์ ๋ก๋)", + "context": { + "fail_count": 4, + "recent_dates": [ + "2026-07-20", + "2026-07-20", + "2026-07-20", + "2026-07-20" + ] + }, + "fix": "check_blogger_connection" + }, + { + "id": "adsense_not_configured", + "level": "warning", + "message": "AdSense ๋ฏธ์ค์ โ ๊ด๊ณ ์์ตํ ๋นํ์ฑํ ์ํ", + "context": {}, + "fix": null + } + ], + "repairs_applied": 1, + "repairs": [ + { + "issue_id": "consecutive_upload_failures", + "issue_level": "critical", + "issue_message": "์ต๊ทผ 4ํ ์ฐ์ ์ ๋ก๋ ์คํจ (0๊ฑด ์ ๋ก๋)", + "fix_applied": "check_blogger_connection", + "timestamp": "2026-07-20T22:40:16.543329", + "success": true, + "detail": "Blogger ์ฐ๊ฒฐ ์ ์: HOGU What? (https://www.hoguwhat.com/) โ ์ ๋ก๋ ํ๋ผ๋ฏธํฐ ๋ฌธ์ ๊ฐ๋ฅ์ฑ" + }, + { + "issue_id": "adsense_not_configured", + "issue_level": "warning", + "issue_message": "AdSense ๋ฏธ์ค์ โ ๊ด๊ณ ์์ตํ ๋นํ์ฑํ ์ํ", + "fix_applied": null, + "timestamp": "2026-07-20T22:40:17.073913", + "success": null, + "detail": "์๋ ์กฐ์น ํ์ (์๋ ์๋ฆฌ ๋ถ๊ฐ)" + } + ], + "dry_run": false + }, + { + "timestamp": "2026-07-20T22:37:27.205106", + "health_score": 63, + "issues_found": 2, + "issues": [ + { + "id": "consecutive_upload_failures", + "level": "critical", + "message": "์ต๊ทผ 4ํ ์ฐ์ ์ ๋ก๋ ์คํจ (0๊ฑด ์ ๋ก๋)", + "context": { + "fail_count": 4, + "recent_dates": [ + "2026-07-20", + "2026-07-20", + "2026-07-20", + "2026-07-20" + ] + }, + "fix": "check_blogger_connection" + }, + { + "id": "adsense_not_configured", + "level": "warning", + "message": "AdSense ๋ฏธ์ค์ โ ๊ด๊ณ ์์ตํ ๋นํ์ฑํ ์ํ", + "context": {}, + "fix": null + } + ], + "repairs_applied": 1, + "repairs": [ + { + "issue_id": "consecutive_upload_failures", + "issue_level": "critical", + "issue_message": "์ต๊ทผ 4ํ ์ฐ์ ์ ๋ก๋ ์คํจ (0๊ฑด ์ ๋ก๋)", + "fix_applied": "check_blogger_connection", + "timestamp": "2026-07-20T22:37:26.807535", + "success": true, + "detail": "Blogger ์ฐ๊ฒฐ ์ ์: HOGU What? (https://www.hoguwhat.com/) โ ์ ๋ก๋ ํ๋ผ๋ฏธํฐ ๋ฌธ์ ๊ฐ๋ฅ์ฑ" + }, + { + "issue_id": "adsense_not_configured", + "issue_level": "warning", + "issue_message": "AdSense ๋ฏธ์ค์ โ ๊ด๊ณ ์์ตํ ๋นํ์ฑํ ์ํ", + "fix_applied": null, + "timestamp": "2026-07-20T22:37:27.187472", + "success": null, + "detail": "์๋ ์กฐ์น ํ์ (์๋ ์๋ฆฌ ๋ถ๊ฐ)" + } + ], + "dry_run": false + }, + { + "timestamp": "2026-07-20T18:50:17.983055", + "health_score": 63, + "issues_found": 2, + "issues": [ + { + "id": "consecutive_upload_failures", + "level": "critical", + "message": "์ต๊ทผ 4ํ ์ฐ์ ์ ๋ก๋ ์คํจ (0๊ฑด ์ ๋ก๋)", + "context": { + "fail_count": 4, + "recent_dates": [ + "2026-07-20", + "2026-07-20", + "2026-07-20", + "2026-07-20" + ] + }, + "fix": "check_blogger_connection" + }, + { + "id": "adsense_not_configured", + "level": "warning", + "message": "AdSense ๋ฏธ์ค์ โ ๊ด๊ณ ์์ตํ ๋นํ์ฑํ ์ํ", + "context": {}, + "fix": null + } + ], + "repairs_applied": 1, + "repairs": [ + { + "issue_id": "consecutive_upload_failures", + "issue_level": "critical", + "issue_message": "์ต๊ทผ 4ํ ์ฐ์ ์ ๋ก๋ ์คํจ (0๊ฑด ์ ๋ก๋)", + "fix_applied": "check_blogger_connection", + "timestamp": "2026-07-20T18:50:17.065836", + "success": true, + "detail": "Blogger ์ฐ๊ฒฐ ์ ์: HOGU What? (https://www.hoguwhat.com/) โ ์ ๋ก๋ ํ๋ผ๋ฏธํฐ ๋ฌธ์ ๊ฐ๋ฅ์ฑ" + }, + { + "issue_id": "adsense_not_configured", + "issue_level": "warning", + "issue_message": "AdSense ๋ฏธ์ค์ โ ๊ด๊ณ ์์ตํ ๋นํ์ฑํ ์ํ", + "fix_applied": null, + "timestamp": "2026-07-20T18:50:17.964096", + "success": null, + "detail": "์๋ ์กฐ์น ํ์ (์๋ ์๋ฆฌ ๋ถ๊ฐ)" + } + ], + "dry_run": false + }, + { + "timestamp": "2026-07-20T05:20:14.274379", + "health_score": 93, + "issues_found": 1, + "issues": [ + { + "id": "adsense_not_configured", + "level": "warning", + "message": "AdSense ๋ฏธ์ค์ โ ๊ด๊ณ ์์ตํ ๋นํ์ฑํ ์ํ", + "context": {}, + "fix": null + } + ], + "repairs_applied": 0, + "repairs": [ + { + "issue_id": "adsense_not_configured", + "issue_level": "warning", + "issue_message": "AdSense ๋ฏธ์ค์ โ ๊ด๊ณ ์์ตํ ๋นํ์ฑํ ์ํ", + "fix_applied": null, + "timestamp": "2026-07-20T05:20:14.274293", + "success": null, + "detail": "์๋ ์กฐ์น ํ์ (์๋ ์๋ฆฌ ๋ถ๊ฐ)" + } + ], + "dry_run": false + }, + { + "timestamp": "2026-07-20T04:41:38.171045", + "health_score": 93, + "issues_found": 1, + "issues": [ + { + "id": "adsense_not_configured", + "level": "warning", + "message": "AdSense ๋ฏธ์ค์ โ ๊ด๊ณ ์์ตํ ๋นํ์ฑํ ์ํ", + "context": {}, + "fix": null + } + ], + "repairs_applied": 0, + "repairs": [ + { + "issue_id": "adsense_not_configured", + "issue_level": "warning", + "issue_message": "AdSense ๋ฏธ์ค์ โ ๊ด๊ณ ์์ตํ ๋นํ์ฑํ ์ํ", + "fix_applied": null, + "timestamp": "2026-07-20T04:41:38.170953", + "success": null, + "detail": "์๋ ์กฐ์น ํ์ (์๋ ์๋ฆฌ ๋ถ๊ฐ)" + } + ], + "dry_run": false + }, + { + "timestamp": "2026-07-20T03:55:25.900390", + "health_score": 93, + "issues_found": 1, + "issues": [ + { + "id": "adsense_not_configured", + "level": "warning", + "message": "AdSense ๋ฏธ์ค์ โ ๊ด๊ณ ์์ตํ ๋นํ์ฑํ ์ํ", + "context": {}, + "fix": null + } + ], + "repairs_applied": 0, + "repairs": [ + { + "issue_id": "adsense_not_configured", + "issue_level": "warning", + "issue_message": "AdSense ๋ฏธ์ค์ โ ๊ด๊ณ ์์ตํ ๋นํ์ฑํ ์ํ", + "fix_applied": null, + "timestamp": "2026-07-20T03:55:25.900291", + "success": null, + "detail": "์๋ ์กฐ์น ํ์ (์๋ ์๋ฆฌ ๋ถ๊ฐ)" + } + ], + "dry_run": false + }, + { + "timestamp": "2026-07-20T03:50:27.765596", + "health_score": 93, + "issues_found": 1, + "issues": [ + { + "id": "adsense_not_configured", + "level": "warning", + "message": "AdSense ๋ฏธ์ค์ โ ๊ด๊ณ ์์ตํ ๋นํ์ฑํ ์ํ", + "context": {}, + "fix": null + } + ], + "repairs_applied": 0, + "repairs": [ + { + "issue_id": "adsense_not_configured", + "issue_level": "warning", + "issue_message": "AdSense ๋ฏธ์ค์ โ ๊ด๊ณ ์์ตํ ๋นํ์ฑํ ์ํ", + "fix_applied": null, + "timestamp": "2026-07-20T03:50:27.765522", + "success": null, + "detail": "์๋ ์กฐ์น ํ์ (์๋ ์๋ฆฌ ๋ถ๊ฐ)" + } + ], + "dry_run": false + }, + { + "timestamp": "2026-07-20T03:12:57.790270", + "health_score": 93, + "issues_found": 1, + "issues": [ + { + "id": "adsense_not_configured", + "level": "warning", + "message": "AdSense ๋ฏธ์ค์ โ ๊ด๊ณ ์์ตํ ๋นํ์ฑํ ์ํ", + "context": {}, + "fix": null + } + ], + "repairs_applied": 0, + "repairs": [ + { + "issue_id": "adsense_not_configured", + "issue_level": "warning", + "issue_message": "AdSense ๋ฏธ์ค์ โ ๊ด๊ณ ์์ตํ ๋นํ์ฑํ ์ํ", + "fix_applied": null, + "timestamp": "2026-07-20T03:12:57.790164", + "success": null, + "detail": "์๋ ์กฐ์น ํ์ (์๋ ์๋ฆฌ ๋ถ๊ฐ)" + } + ], + "dry_run": false + }, + { + "timestamp": "2026-07-20T02:36:25.472481", + "health_score": 93, + "issues_found": 1, + "issues": [ + { + "id": "adsense_not_configured", + "level": "warning", + "message": "AdSense ๋ฏธ์ค์ โ ๊ด๊ณ ์์ตํ ๋นํ์ฑํ ์ํ", + "context": {}, + "fix": null + } + ], + "repairs_applied": 0, + "repairs": [ + { + "issue_id": "adsense_not_configured", + "issue_level": "warning", + "issue_message": "AdSense ๋ฏธ์ค์ โ ๊ด๊ณ ์์ตํ ๋นํ์ฑํ ์ํ", + "fix_applied": null, + "timestamp": "2026-07-20T02:36:25.472369", + "success": null, + "detail": "์๋ ์กฐ์น ํ์ (์๋ ์๋ฆฌ ๋ถ๊ฐ)" + } + ], + "dry_run": false + }, + { + "timestamp": "2026-07-19T17:53:33.836822", + "health_score": 63, + "issues_found": 2, + "issues": [ + { + "id": "consecutive_upload_failures", + "level": "critical", + "message": "์ต๊ทผ 5ํ ์ฐ์ ์ ๋ก๋ ์คํจ (0๊ฑด ์ ๋ก๋)", + "context": { + "fail_count": 5, + "recent_dates": [ + "2026-07-19", + "2026-07-19", + "2026-07-19", + "2026-07-19", + "2026-07-19" + ] + }, + "fix": "check_blogger_connection" + }, + { + "id": "adsense_not_configured", + "level": "warning", + "message": "AdSense ๋ฏธ์ค์ โ ๊ด๊ณ ์์ตํ ๋นํ์ฑํ ์ํ", + "context": {}, + "fix": null + } + ], + "repairs_applied": 1, + "repairs": [ + { + "issue_id": "consecutive_upload_failures", + "issue_level": "critical", + "issue_message": "์ต๊ทผ 5ํ ์ฐ์ ์ ๋ก๋ ์คํจ (0๊ฑด ์ ๋ก๋)", + "fix_applied": "check_blogger_connection", + "timestamp": "2026-07-19T17:53:33.223710", + "success": true, + "detail": "Blogger ์ฐ๊ฒฐ ์ ์: HOGU What? (https://www.hoguwhat.com/) โ ์ ๋ก๋ ํ๋ผ๋ฏธํฐ ๋ฌธ์ ๊ฐ๋ฅ์ฑ" + }, + { + "issue_id": "adsense_not_configured", + "issue_level": "warning", + "issue_message": "AdSense ๋ฏธ์ค์ โ ๊ด๊ณ ์์ตํ ๋นํ์ฑํ ์ํ", + "fix_applied": null, + "timestamp": "2026-07-19T17:53:33.822744", + "success": null, + "detail": "์๋ ์กฐ์น ํ์ (์๋ ์๋ฆฌ ๋ถ๊ฐ)" + } + ], + "dry_run": false + }, + { + "timestamp": "2026-07-19T16:14:31.119389", + "health_score": 63, + "issues_found": 2, + "issues": [ + { + "id": "consecutive_upload_failures", + "level": "critical", + "message": "์ต๊ทผ 5ํ ์ฐ์ ์ ๋ก๋ ์คํจ (0๊ฑด ์ ๋ก๋)", + "context": { + "fail_count": 5, + "recent_dates": [ + "2026-07-19", + "2026-07-19", + "2026-07-19", + "2026-07-19", + "2026-07-19" + ] + }, + "fix": "check_blogger_connection" + }, + { + "id": "adsense_not_configured", + "level": "warning", + "message": "AdSense ๋ฏธ์ค์ โ ๊ด๊ณ ์์ตํ ๋นํ์ฑํ ์ํ", + "context": {}, + "fix": null + } + ], + "repairs_applied": 1, + "repairs": [ + { + "issue_id": "consecutive_upload_failures", + "issue_level": "critical", + "issue_message": "์ต๊ทผ 5ํ ์ฐ์ ์ ๋ก๋ ์คํจ (0๊ฑด ์ ๋ก๋)", + "fix_applied": "check_blogger_connection", + "timestamp": "2026-07-19T16:14:30.498936", + "success": true, + "detail": "Blogger ์ฐ๊ฒฐ ์ ์: HOGU What? (https://www.hoguwhat.com/) โ ์ ๋ก๋ ํ๋ผ๋ฏธํฐ ๋ฌธ์ ๊ฐ๋ฅ์ฑ" + }, + { + "issue_id": "adsense_not_configured", + "issue_level": "warning", + "issue_message": "AdSense ๋ฏธ์ค์ โ ๊ด๊ณ ์์ตํ ๋นํ์ฑํ ์ํ", + "fix_applied": null, + "timestamp": "2026-07-19T16:14:31.102650", + "success": null, + "detail": "์๋ ์กฐ์น ํ์ (์๋ ์๋ฆฌ ๋ถ๊ฐ)" + } + ], + "dry_run": false + }, + { + "timestamp": "2026-07-19T15:59:04.799806", + "health_score": 63, + "issues_found": 2, + "issues": [ + { + "id": "consecutive_upload_failures", + "level": "critical", + "message": "์ต๊ทผ 5ํ ์ฐ์ ์ ๋ก๋ ์คํจ (0๊ฑด ์ ๋ก๋)", + "context": { + "fail_count": 5, + "recent_dates": [ + "2026-07-19", + "2026-07-19", + "2026-07-19", + "2026-07-19", + "2026-07-19" + ] + }, + "fix": "check_blogger_connection" + }, + { + "id": "adsense_not_configured", + "level": "warning", + "message": "AdSense ๋ฏธ์ค์ โ ๊ด๊ณ ์์ตํ ๋นํ์ฑํ ์ํ", + "context": {}, + "fix": null + } + ], + "repairs_applied": 1, + "repairs": [ + { + "issue_id": "consecutive_upload_failures", + "issue_level": "critical", + "issue_message": "์ต๊ทผ 5ํ ์ฐ์ ์ ๋ก๋ ์คํจ (0๊ฑด ์ ๋ก๋)", + "fix_applied": "check_blogger_connection", + "timestamp": "2026-07-19T15:59:04.419438", + "success": true, + "detail": "Blogger ์ฐ๊ฒฐ ์ ์: HOGU What? (https://www.hoguwhat.com/) โ ์ ๋ก๋ ํ๋ผ๋ฏธํฐ ๋ฌธ์ ๊ฐ๋ฅ์ฑ" + }, + { + "issue_id": "adsense_not_configured", + "issue_level": "warning", + "issue_message": "AdSense ๋ฏธ์ค์ โ ๊ด๊ณ ์์ตํ ๋นํ์ฑํ ์ํ", + "fix_applied": null, + "timestamp": "2026-07-19T15:59:04.783747", + "success": null, + "detail": "์๋ ์กฐ์น ํ์ (์๋ ์๋ฆฌ ๋ถ๊ฐ)" + } + ], + "dry_run": false + }, + { + "timestamp": "2026-07-19T14:39:06.964361", + "health_score": 63, + "issues_found": 2, + "issues": [ + { + "id": "consecutive_upload_failures", + "level": "critical", + "message": "์ต๊ทผ 5ํ ์ฐ์ ์ ๋ก๋ ์คํจ (0๊ฑด ์ ๋ก๋)", + "context": { + "fail_count": 5, + "recent_dates": [ + "2026-07-19", + "2026-07-19", + "2026-07-19", + "2026-07-19", + "2026-07-19" + ] + }, + "fix": "check_blogger_connection" + }, + { + "id": "adsense_not_configured", + "level": "warning", + "message": "AdSense ๋ฏธ์ค์ โ ๊ด๊ณ ์์ตํ ๋นํ์ฑํ ์ํ", + "context": {}, + "fix": null + } + ], + "repairs_applied": 1, + "repairs": [ + { + "issue_id": "consecutive_upload_failures", + "issue_level": "critical", + "issue_message": "์ต๊ทผ 5ํ ์ฐ์ ์ ๋ก๋ ์คํจ (0๊ฑด ์ ๋ก๋)", + "fix_applied": "check_blogger_connection", + "timestamp": "2026-07-19T14:39:06.470164", + "success": true, + "detail": "Blogger ์ฐ๊ฒฐ ์ ์: HOGU What? (https://www.hoguwhat.com/) โ ์ ๋ก๋ ํ๋ผ๋ฏธํฐ ๋ฌธ์ ๊ฐ๋ฅ์ฑ" + }, + { + "issue_id": "adsense_not_configured", + "issue_level": "warning", + "issue_message": "AdSense ๋ฏธ์ค์ โ ๊ด๊ณ ์์ตํ ๋นํ์ฑํ ์ํ", + "fix_applied": null, + "timestamp": "2026-07-19T14:39:06.948030", + "success": null, + "detail": "์๋ ์กฐ์น ํ์ (์๋ ์๋ฆฌ ๋ถ๊ฐ)" + } + ], + "dry_run": false + }, + { + "timestamp": "2026-07-19T13:07:49.277223", + "health_score": 63, + "issues_found": 2, + "issues": [ + { + "id": "consecutive_upload_failures", + "level": "critical", + "message": "์ต๊ทผ 5ํ ์ฐ์ ์ ๋ก๋ ์คํจ (0๊ฑด ์ ๋ก๋)", + "context": { + "fail_count": 5, + "recent_dates": [ + "2026-07-19", + "2026-07-19", + "2026-07-19", + "2026-07-19", + "2026-07-19" + ] + }, + "fix": "check_blogger_connection" + }, + { + "id": "adsense_not_configured", + "level": "warning", + "message": "AdSense ๋ฏธ์ค์ โ ๊ด๊ณ ์์ตํ ๋นํ์ฑํ ์ํ", + "context": {}, + "fix": null + } + ], + "repairs_applied": 1, + "repairs": [ + { + "issue_id": "consecutive_upload_failures", + "issue_level": "critical", + "issue_message": "์ต๊ทผ 5ํ ์ฐ์ ์ ๋ก๋ ์คํจ (0๊ฑด ์ ๋ก๋)", + "fix_applied": "check_blogger_connection", + "timestamp": "2026-07-19T13:07:48.703605", + "success": true, + "detail": "Blogger ์ฐ๊ฒฐ ์ ์: HOGU What? (https://www.hoguwhat.com/) โ ์ ๋ก๋ ํ๋ผ๋ฏธํฐ ๋ฌธ์ ๊ฐ๋ฅ์ฑ" + }, + { + "issue_id": "adsense_not_configured", + "issue_level": "warning", + "issue_message": "AdSense ๋ฏธ์ค์ โ ๊ด๊ณ ์์ตํ ๋นํ์ฑํ ์ํ", + "fix_applied": null, + "timestamp": "2026-07-19T13:07:49.259010", + "success": null, + "detail": "์๋ ์กฐ์น ํ์ (์๋ ์๋ฆฌ ๋ถ๊ฐ)" + } + ], + "dry_run": false + }, + { + "timestamp": "2026-07-19T12:52:17.255244", + "health_score": 63, + "issues_found": 2, + "issues": [ + { + "id": "consecutive_upload_failures", + "level": "critical", + "message": "์ต๊ทผ 5ํ ์ฐ์ ์ ๋ก๋ ์คํจ (0๊ฑด ์ ๋ก๋)", + "context": { + "fail_count": 5, + "recent_dates": [ + "2026-07-19", + "2026-07-19", + "2026-07-19", + "2026-07-19", + "2026-07-19" + ] + }, + "fix": "check_blogger_connection" + }, + { + "id": "adsense_not_configured", + "level": "warning", + "message": "AdSense ๋ฏธ์ค์ โ ๊ด๊ณ ์์ตํ ๋นํ์ฑํ ์ํ", + "context": {}, + "fix": null + } + ], + "repairs_applied": 1, + "repairs": [ + { + "issue_id": "consecutive_upload_failures", + "issue_level": "critical", + "issue_message": "์ต๊ทผ 5ํ ์ฐ์ ์ ๋ก๋ ์คํจ (0๊ฑด ์ ๋ก๋)", + "fix_applied": "check_blogger_connection", + "timestamp": "2026-07-19T12:52:16.526872", + "success": true, + "detail": "Blogger ์ฐ๊ฒฐ ์ ์: HOGU What? (https://www.hoguwhat.com/) โ ์ ๋ก๋ ํ๋ผ๋ฏธํฐ ๋ฌธ์ ๊ฐ๋ฅ์ฑ" + }, + { + "issue_id": "adsense_not_configured", + "issue_level": "warning", + "issue_message": "AdSense ๋ฏธ์ค์ โ ๊ด๊ณ ์์ตํ ๋นํ์ฑํ ์ํ", + "fix_applied": null, + "timestamp": "2026-07-19T12:52:17.238841", + "success": null, + "detail": "์๋ ์กฐ์น ํ์ (์๋ ์๋ฆฌ ๋ถ๊ฐ)" + } + ], + "dry_run": false + }, + { + "timestamp": "2026-07-19T12:20:32.934226", + "health_score": 63, + "issues_found": 2, + "issues": [ + { + "id": "consecutive_upload_failures", + "level": "critical", + "message": "์ต๊ทผ 5ํ ์ฐ์ ์ ๋ก๋ ์คํจ (0๊ฑด ์ ๋ก๋)", + "context": { + "fail_count": 5, + "recent_dates": [ + "2026-07-19", + "2026-07-19", + "2026-07-19", + "2026-07-19", + "2026-07-19" + ] + }, + "fix": "check_blogger_connection" + }, + { + "id": "adsense_not_configured", + "level": "warning", + "message": "AdSense ๋ฏธ์ค์ โ ๊ด๊ณ ์์ตํ ๋นํ์ฑํ ์ํ", + "context": {}, + "fix": null + } + ], + "repairs_applied": 1, + "repairs": [ + { + "issue_id": "consecutive_upload_failures", + "issue_level": "critical", + "issue_message": "์ต๊ทผ 5ํ ์ฐ์ ์ ๋ก๋ ์คํจ (0๊ฑด ์ ๋ก๋)", + "fix_applied": "check_blogger_connection", + "timestamp": "2026-07-19T12:20:32.410788", + "success": true, + "detail": "Blogger ์ฐ๊ฒฐ ์ ์: HOGU What? (https://www.hoguwhat.com/) โ ์ ๋ก๋ ํ๋ผ๋ฏธํฐ ๋ฌธ์ ๊ฐ๋ฅ์ฑ" + }, + { + "issue_id": "adsense_not_configured", + "issue_level": "warning", + "issue_message": "AdSense ๋ฏธ์ค์ โ ๊ด๊ณ ์์ตํ ๋นํ์ฑํ ์ํ", + "fix_applied": null, + "timestamp": "2026-07-19T12:20:32.912246", + "success": null, + "detail": "์๋ ์กฐ์น ํ์ (์๋ ์๋ฆฌ ๋ถ๊ฐ)" + } + ], + "dry_run": false + }, + { + "timestamp": "2026-07-19T12:05:12.021458", + "health_score": 63, + "issues_found": 2, + "issues": [ + { + "id": "consecutive_upload_failures", + "level": "critical", + "message": "์ต๊ทผ 5ํ ์ฐ์ ์ ๋ก๋ ์คํจ (0๊ฑด ์ ๋ก๋)", + "context": { + "fail_count": 5, + "recent_dates": [ + "2026-07-19", + "2026-07-19", + "2026-07-19", + "2026-07-19", + "2026-07-19" + ] + }, + "fix": "check_blogger_connection" + }, + { + "id": "adsense_not_configured", + "level": "warning", + "message": "AdSense ๋ฏธ์ค์ โ ๊ด๊ณ ์์ตํ ๋นํ์ฑํ ์ํ", + "context": {}, + "fix": null + } + ], + "repairs_applied": 1, + "repairs": [ + { + "issue_id": "consecutive_upload_failures", + "issue_level": "critical", + "issue_message": "์ต๊ทผ 5ํ ์ฐ์ ์ ๋ก๋ ์คํจ (0๊ฑด ์ ๋ก๋)", + "fix_applied": "check_blogger_connection", + "timestamp": "2026-07-19T12:05:11.463947", + "success": true, + "detail": "Blogger ์ฐ๊ฒฐ ์ ์: HOGU What? (https://www.hoguwhat.com/) โ ์ ๋ก๋ ํ๋ผ๋ฏธํฐ ๋ฌธ์ ๊ฐ๋ฅ์ฑ" + }, + { + "issue_id": "adsense_not_configured", + "issue_level": "warning", + "issue_message": "AdSense ๋ฏธ์ค์ โ ๊ด๊ณ ์์ตํ ๋นํ์ฑํ ์ํ", + "fix_applied": null, + "timestamp": "2026-07-19T12:05:12.002723", + "success": null, + "detail": "์๋ ์กฐ์น ํ์ (์๋ ์๋ฆฌ ๋ถ๊ฐ)" + } + ], + "dry_run": false + }, + { + "timestamp": "2026-07-19T11:26:06.012863", + "health_score": 63, + "issues_found": 2, + "issues": [ + { + "id": "consecutive_upload_failures", + "level": "critical", + "message": "์ต๊ทผ 5ํ ์ฐ์ ์ ๋ก๋ ์คํจ (0๊ฑด ์ ๋ก๋)", + "context": { + "fail_count": 5, + "recent_dates": [ + "2026-07-19", + "2026-07-19", + "2026-07-19", + "2026-07-19", + "2026-07-19" + ] + }, + "fix": "check_blogger_connection" + }, + { + "id": "adsense_not_configured", + "level": "warning", + "message": "AdSense ๋ฏธ์ค์ โ ๊ด๊ณ ์์ตํ ๋นํ์ฑํ ์ํ", + "context": {}, + "fix": null + } + ], + "repairs_applied": 1, + "repairs": [ + { + "issue_id": "consecutive_upload_failures", + "issue_level": "critical", + "issue_message": "์ต๊ทผ 5ํ ์ฐ์ ์ ๋ก๋ ์คํจ (0๊ฑด ์ ๋ก๋)", + "fix_applied": "check_blogger_connection", + "timestamp": "2026-07-19T11:26:05.448824", + "success": true, + "detail": "Blogger ์ฐ๊ฒฐ ์ ์: HOGU What? (https://www.hoguwhat.com/) โ ์ ๋ก๋ ํ๋ผ๋ฏธํฐ ๋ฌธ์ ๊ฐ๋ฅ์ฑ" + }, + { + "issue_id": "adsense_not_configured", + "issue_level": "warning", + "issue_message": "AdSense ๋ฏธ์ค์ โ ๊ด๊ณ ์์ตํ ๋นํ์ฑํ ์ํ", + "fix_applied": null, + "timestamp": "2026-07-19T11:26:05.994964", + "success": null, + "detail": "์๋ ์กฐ์น ํ์ (์๋ ์๋ฆฌ ๋ถ๊ฐ)" + } + ], + "dry_run": false + }, + { + "timestamp": "2026-07-19T11:12:01.588438", + "health_score": 63, + "issues_found": 2, + "issues": [ + { + "id": "consecutive_upload_failures", + "level": "critical", + "message": "์ต๊ทผ 4ํ ์ฐ์ ์ ๋ก๋ ์คํจ (0๊ฑด ์ ๋ก๋)", + "context": { + "fail_count": 4, + "recent_dates": [ + "2026-07-19", + "2026-07-19", + "2026-07-19", + "2026-07-19" + ] + }, + "fix": "check_blogger_connection" + }, + { + "id": "adsense_not_configured", + "level": "warning", + "message": "AdSense ๋ฏธ์ค์ โ ๊ด๊ณ ์์ตํ ๋นํ์ฑํ ์ํ", + "context": {}, + "fix": null + } + ], + "repairs_applied": 1, + "repairs": [ + { + "issue_id": "consecutive_upload_failures", + "issue_level": "critical", + "issue_message": "์ต๊ทผ 4ํ ์ฐ์ ์ ๋ก๋ ์คํจ (0๊ฑด ์ ๋ก๋)", + "fix_applied": "check_blogger_connection", + "timestamp": "2026-07-19T11:12:01.064034", + "success": true, + "detail": "Blogger ์ฐ๊ฒฐ ์ ์: HOGU What? (https://www.hoguwhat.com/) โ ์ ๋ก๋ ํ๋ผ๋ฏธํฐ ๋ฌธ์ ๊ฐ๋ฅ์ฑ" + }, + { + "issue_id": "adsense_not_configured", + "issue_level": "warning", + "issue_message": "AdSense ๋ฏธ์ค์ โ ๊ด๊ณ ์์ตํ ๋นํ์ฑํ ์ํ", + "fix_applied": null, + "timestamp": "2026-07-19T11:12:01.560894", + "success": null, + "detail": "์๋ ์กฐ์น ํ์ (์๋ ์๋ฆฌ ๋ถ๊ฐ)" + } + ], + "dry_run": false + }, + { + "timestamp": "2026-07-19T10:39:24.922352", + "health_score": 63, + "issues_found": 2, + "issues": [ + { + "id": "consecutive_upload_failures", + "level": "critical", + "message": "์ต๊ทผ 4ํ ์ฐ์ ์ ๋ก๋ ์คํจ (0๊ฑด ์ ๋ก๋)", + "context": { + "fail_count": 4, + "recent_dates": [ + "2026-07-19", + "2026-07-19", + "2026-07-19", + "2026-07-19" + ] + }, + "fix": "check_blogger_connection" + }, + { + "id": "adsense_not_configured", + "level": "warning", + "message": "AdSense ๋ฏธ์ค์ โ ๊ด๊ณ ์์ตํ ๋นํ์ฑํ ์ํ", + "context": {}, + "fix": null + } + ], + "repairs_applied": 1, + "repairs": [ + { + "issue_id": "consecutive_upload_failures", + "issue_level": "critical", + "issue_message": "์ต๊ทผ 4ํ ์ฐ์ ์ ๋ก๋ ์คํจ (0๊ฑด ์ ๋ก๋)", + "fix_applied": "check_blogger_connection", + "timestamp": "2026-07-19T10:39:24.399677", + "success": true, + "detail": "Blogger ์ฐ๊ฒฐ ์ ์: HOGU What? (https://www.hoguwhat.com/) โ ์ ๋ก๋ ํ๋ผ๋ฏธํฐ ๋ฌธ์ ๊ฐ๋ฅ์ฑ" + }, + { + "issue_id": "adsense_not_configured", + "issue_level": "warning", + "issue_message": "AdSense ๋ฏธ์ค์ โ ๊ด๊ณ ์์ตํ ๋นํ์ฑํ ์ํ", + "fix_applied": null, + "timestamp": "2026-07-19T10:39:24.905374", + "success": null, + "detail": "์๋ ์กฐ์น ํ์ (์๋ ์๋ฆฌ ๋ถ๊ฐ)" + } + ], + "dry_run": false + }, + { + "timestamp": "2026-07-18T17:52:07.472530", + "health_score": 93, + "issues_found": 1, + "issues": [ + { + "id": "adsense_not_configured", + "level": "warning", + "message": "AdSense ๋ฏธ์ค์ โ ๊ด๊ณ ์์ตํ ๋นํ์ฑํ ์ํ", + "context": {}, + "fix": null + } + ], + "repairs_applied": 0, + "repairs": [ + { + "issue_id": "adsense_not_configured", + "issue_level": "warning", + "issue_message": "AdSense ๋ฏธ์ค์ โ ๊ด๊ณ ์์ตํ ๋นํ์ฑํ ์ํ", + "fix_applied": null, + "timestamp": "2026-07-18T17:52:07.472421", + "success": null, + "detail": "์๋ ์กฐ์น ํ์ (์๋ ์๋ฆฌ ๋ถ๊ฐ)" + } + ], + "dry_run": false + }, + { + "timestamp": "2026-07-17T18:00:07.247499", + "health_score": 93, + "issues_found": 1, + "issues": [ + { + "id": "adsense_not_configured", + "level": "warning", + "message": "AdSense ๋ฏธ์ค์ โ ๊ด๊ณ ์์ตํ ๋นํ์ฑํ ์ํ", + "context": {}, + "fix": null + } + ], + "repairs_applied": 0, + "repairs": [ + { + "issue_id": "adsense_not_configured", + "issue_level": "warning", + "issue_message": "AdSense ๋ฏธ์ค์ โ ๊ด๊ณ ์์ตํ ๋นํ์ฑํ ์ํ", + "fix_applied": null, + "timestamp": "2026-07-17T18:00:07.247378", + "success": null, + "detail": "์๋ ์กฐ์น ํ์ (์๋ ์๋ฆฌ ๋ถ๊ฐ)" + } + ], + "dry_run": false + }, + { + "timestamp": "2026-07-17T15:14:41.230066", + "health_score": 93, + "issues_found": 1, + "issues": [ + { + "id": "adsense_not_configured", + "level": "warning", + "message": "AdSense ๋ฏธ์ค์ โ ๊ด๊ณ ์์ตํ ๋นํ์ฑํ ์ํ", + "context": {}, + "fix": null + } + ], + "repairs_applied": 0, + "repairs": [ + { + "issue_id": "adsense_not_configured", + "issue_level": "warning", + "issue_message": "AdSense ๋ฏธ์ค์ โ ๊ด๊ณ ์์ตํ ๋นํ์ฑํ ์ํ", + "fix_applied": null, + "timestamp": "2026-07-17T15:14:41.229961", + "success": null, + "detail": "์๋ ์กฐ์น ํ์ (์๋ ์๋ฆฌ ๋ถ๊ฐ)" + } + ], + "dry_run": false + }, + { + "timestamp": "2026-07-17T15:06:52.957689", + "health_score": 93, + "issues_found": 1, + "issues": [ + { + "id": "adsense_not_configured", + "level": "warning", + "message": "AdSense ๋ฏธ์ค์ โ ๊ด๊ณ ์์ตํ ๋นํ์ฑํ ์ํ", + "context": {}, + "fix": null + } + ], + "repairs_applied": 0, + "repairs": [ + { + "issue_id": "adsense_not_configured", + "issue_level": "warning", + "issue_message": "AdSense ๋ฏธ์ค์ โ ๊ด๊ณ ์์ตํ ๋นํ์ฑํ ์ํ", + "fix_applied": null, + "timestamp": "2026-07-17T15:06:52.957609", + "success": null, + "detail": "์๋ ์กฐ์น ํ์ (์๋ ์๋ฆฌ ๋ถ๊ฐ)" + } + ], + "dry_run": false + }, + { + "timestamp": "2026-07-17T14:42:55.573369", + "health_score": 93, + "issues_found": 1, + "issues": [ + { + "id": "adsense_not_configured", + "level": "warning", + "message": "AdSense ๋ฏธ์ค์ โ ๊ด๊ณ ์์ตํ ๋นํ์ฑํ ์ํ", + "context": {}, + "fix": null + } + ], + "repairs_applied": 0, + "repairs": [ + { + "issue_id": "adsense_not_configured", + "issue_level": "warning", + "issue_message": "AdSense ๋ฏธ์ค์ โ ๊ด๊ณ ์์ตํ ๋นํ์ฑํ ์ํ", + "fix_applied": null, + "timestamp": "2026-07-17T14:42:55.573283", + "success": null, + "detail": "์๋ ์กฐ์น ํ์ (์๋ ์๋ฆฌ ๋ถ๊ฐ)" + } + ], + "dry_run": false + }, + { + "timestamp": "2026-07-17T10:36:48.107676", + "health_score": 63, + "issues_found": 2, + "issues": [ + { + "id": "consecutive_upload_failures", + "level": "critical", + "message": "์ต๊ทผ 4ํ ์ฐ์ ์ ๋ก๋ ์คํจ (0๊ฑด ์ ๋ก๋)", + "context": { + "fail_count": 4, + "recent_dates": [ + "2026-07-17", + "2026-07-17", + "2026-07-17", + "2026-07-16" + ] + }, + "fix": "check_blogger_connection" + }, + { + "id": "adsense_not_configured", + "level": "warning", + "message": "AdSense ๋ฏธ์ค์ โ ๊ด๊ณ ์์ตํ ๋นํ์ฑํ ์ํ", + "context": {}, + "fix": null + } + ], + "repairs_applied": 1, + "repairs": [ + { + "issue_id": "consecutive_upload_failures", + "issue_level": "critical", + "issue_message": "์ต๊ทผ 4ํ ์ฐ์ ์ ๋ก๋ ์คํจ (0๊ฑด ์ ๋ก๋)", + "fix_applied": "check_blogger_connection", + "timestamp": "2026-07-17T10:36:47.362109", + "success": true, + "detail": "Blogger ์ฐ๊ฒฐ ์ ์: HOGU What? (https://www.hoguwhat.com/) โ ์ ๋ก๋ ํ๋ผ๋ฏธํฐ ๋ฌธ์ ๊ฐ๋ฅ์ฑ" + }, + { + "issue_id": "adsense_not_configured", + "issue_level": "warning", + "issue_message": "AdSense ๋ฏธ์ค์ โ ๊ด๊ณ ์์ตํ ๋นํ์ฑํ ์ํ", + "fix_applied": null, + "timestamp": "2026-07-17T10:36:48.082334", + "success": null, + "detail": "์๋ ์กฐ์น ํ์ (์๋ ์๋ฆฌ ๋ถ๊ฐ)" + } + ], + "dry_run": false + }, + { + "timestamp": "2026-07-17T10:17:48.727071", + "health_score": 63, + "issues_found": 2, + "issues": [ + { + "id": "consecutive_upload_failures", + "level": "critical", + "message": "์ต๊ทผ 5ํ ์ฐ์ ์ ๋ก๋ ์คํจ (0๊ฑด ์ ๋ก๋)", + "context": { + "fail_count": 5, + "recent_dates": [ + "2026-07-17", + "2026-07-17", + "2026-07-17", + "2026-07-16", + "2026-07-16" + ] + }, + "fix": "check_blogger_connection" + }, + { + "id": "adsense_not_configured", + "level": "warning", + "message": "AdSense ๋ฏธ์ค์ โ ๊ด๊ณ ์์ตํ ๋นํ์ฑํ ์ํ", + "context": {}, + "fix": null + } + ], + "repairs_applied": 1, + "repairs": [ + { + "issue_id": "consecutive_upload_failures", + "issue_level": "critical", + "issue_message": "์ต๊ทผ 5ํ ์ฐ์ ์ ๋ก๋ ์คํจ (0๊ฑด ์ ๋ก๋)", + "fix_applied": "check_blogger_connection", + "timestamp": "2026-07-17T10:17:48.225572", + "success": true, + "detail": "Blogger ์ฐ๊ฒฐ ์ ์: HOGU What? (https://www.hoguwhat.com/) โ ์ ๋ก๋ ํ๋ผ๋ฏธํฐ ๋ฌธ์ ๊ฐ๋ฅ์ฑ" + }, + { + "issue_id": "adsense_not_configured", + "issue_level": "warning", + "issue_message": "AdSense ๋ฏธ์ค์ โ ๊ด๊ณ ์์ตํ ๋นํ์ฑํ ์ํ", + "fix_applied": null, + "timestamp": "2026-07-17T10:17:48.710209", + "success": null, + "detail": "์๋ ์กฐ์น ํ์ (์๋ ์๋ฆฌ ๋ถ๊ฐ)" + } + ], + "dry_run": false + }, + { + "timestamp": "2026-07-17T10:12:52.448277", + "health_score": 63, + "issues_found": 2, + "issues": [ + { + "id": "consecutive_upload_failures", + "level": "critical", + "message": "์ต๊ทผ 5ํ ์ฐ์ ์ ๋ก๋ ์คํจ (0๊ฑด ์ ๋ก๋)", + "context": { + "fail_count": 5, + "recent_dates": [ + "2026-07-17", + "2026-07-17", + "2026-07-17", + "2026-07-16", + "2026-07-16" + ] + }, + "fix": "check_blogger_connection" + }, + { + "id": "adsense_not_configured", + "level": "warning", + "message": "AdSense ๋ฏธ์ค์ โ ๊ด๊ณ ์์ตํ ๋นํ์ฑํ ์ํ", + "context": {}, + "fix": null + } + ], + "repairs_applied": 1, + "repairs": [ + { + "issue_id": "consecutive_upload_failures", + "issue_level": "critical", + "issue_message": "์ต๊ทผ 5ํ ์ฐ์ ์ ๋ก๋ ์คํจ (0๊ฑด ์ ๋ก๋)", + "fix_applied": "check_blogger_connection", + "timestamp": "2026-07-17T10:12:51.963244", + "success": true, + "detail": "Blogger ์ฐ๊ฒฐ ์ ์: HOGU What? (https://www.hoguwhat.com/) โ ์ ๋ก๋ ํ๋ผ๋ฏธํฐ ๋ฌธ์ ๊ฐ๋ฅ์ฑ" + }, + { + "issue_id": "adsense_not_configured", + "issue_level": "warning", + "issue_message": "AdSense ๋ฏธ์ค์ โ ๊ด๊ณ ์์ตํ ๋นํ์ฑํ ์ํ", + "fix_applied": null, + "timestamp": "2026-07-17T10:12:52.430101", + "success": null, + "detail": "์๋ ์กฐ์น ํ์ (์๋ ์๋ฆฌ ๋ถ๊ฐ)" + } + ], + "dry_run": false + }, + { + "timestamp": "2026-07-17T09:15:45.773760", + "health_score": 63, + "issues_found": 2, + "issues": [ + { + "id": "consecutive_upload_failures", + "level": "critical", + "message": "์ต๊ทผ 5ํ ์ฐ์ ์ ๋ก๋ ์คํจ (0๊ฑด ์ ๋ก๋)", + "context": { + "fail_count": 5, + "recent_dates": [ + "2026-07-17", + "2026-07-17", + "2026-07-17", + "2026-07-16", + "2026-07-16" + ] + }, + "fix": "check_blogger_connection" + }, + { + "id": "adsense_not_configured", + "level": "warning", + "message": "AdSense ๋ฏธ์ค์ โ ๊ด๊ณ ์์ตํ ๋นํ์ฑํ ์ํ", + "context": {}, + "fix": null + } + ], + "repairs_applied": 1, + "repairs": [ + { + "issue_id": "consecutive_upload_failures", + "issue_level": "critical", + "issue_message": "์ต๊ทผ 5ํ ์ฐ์ ์ ๋ก๋ ์คํจ (0๊ฑด ์ ๋ก๋)", + "fix_applied": "check_blogger_connection", + "timestamp": "2026-07-17T09:15:45.176312", + "success": true, + "detail": "Blogger ์ฐ๊ฒฐ ์ ์: HOGU What? (https://www.hoguwhat.com/) โ ์ ๋ก๋ ํ๋ผ๋ฏธํฐ ๋ฌธ์ ๊ฐ๋ฅ์ฑ" + }, + { + "issue_id": "adsense_not_configured", + "issue_level": "warning", + "issue_message": "AdSense ๋ฏธ์ค์ โ ๊ด๊ณ ์์ตํ ๋นํ์ฑํ ์ํ", + "fix_applied": null, + "timestamp": "2026-07-17T09:15:45.756537", + "success": null, + "detail": "์๋ ์กฐ์น ํ์ (์๋ ์๋ฆฌ ๋ถ๊ฐ)" + } + ], + "dry_run": false + }, + { + "timestamp": "2026-07-17T03:48:02.322242", + "health_score": 63, + "issues_found": 2, + "issues": [ + { + "id": "consecutive_upload_failures", + "level": "critical", + "message": "์ต๊ทผ 5ํ ์ฐ์ ์ ๋ก๋ ์คํจ (0๊ฑด ์ ๋ก๋)", + "context": { + "fail_count": 5, + "recent_dates": [ + "2026-07-16", + "2026-07-16", + "2026-07-16", + "2026-07-16", + "2026-07-16" + ] + }, + "fix": "check_blogger_connection" + }, + { + "id": "adsense_not_configured", + "level": "warning", + "message": "AdSense ๋ฏธ์ค์ โ ๊ด๊ณ ์์ตํ ๋นํ์ฑํ ์ํ", + "context": {}, + "fix": null + } + ], + "repairs_applied": 1, + "repairs": [ + { + "issue_id": "consecutive_upload_failures", + "issue_level": "critical", + "issue_message": "์ต๊ทผ 5ํ ์ฐ์ ์ ๋ก๋ ์คํจ (0๊ฑด ์ ๋ก๋)", + "fix_applied": "check_blogger_connection", + "timestamp": "2026-07-17T03:48:01.843030", + "success": true, + "detail": "Blogger ์ฐ๊ฒฐ ์ ์: HOGU What? (https://www.hoguwhat.com/) โ ์ ๋ก๋ ํ๋ผ๋ฏธํฐ ๋ฌธ์ ๊ฐ๋ฅ์ฑ" + }, + { + "issue_id": "adsense_not_configured", + "issue_level": "warning", + "issue_message": "AdSense ๋ฏธ์ค์ โ ๊ด๊ณ ์์ตํ ๋นํ์ฑํ ์ํ", + "fix_applied": null, + "timestamp": "2026-07-17T03:48:02.305899", + "success": null, + "detail": "์๋ ์กฐ์น ํ์ (์๋ ์๋ฆฌ ๋ถ๊ฐ)" + } + ], + "dry_run": false + }, + { + "timestamp": "2026-07-16T18:01:37.098230", + "health_score": 63, + "issues_found": 2, + "issues": [ + { + "id": "consecutive_upload_failures", + "level": "critical", + "message": "์ต๊ทผ 5ํ ์ฐ์ ์ ๋ก๋ ์คํจ (0๊ฑด ์ ๋ก๋)", + "context": { + "fail_count": 5, + "recent_dates": [ + "2026-07-16", + "2026-07-16", + "2026-07-16", + "2026-07-16", + "2026-07-16" + ] + }, + "fix": "check_blogger_connection" + }, + { + "id": "adsense_not_configured", + "level": "warning", + "message": "AdSense ๋ฏธ์ค์ โ ๊ด๊ณ ์์ตํ ๋นํ์ฑํ ์ํ", + "context": {}, + "fix": null + } + ], + "repairs_applied": 1, + "repairs": [ + { + "issue_id": "consecutive_upload_failures", + "issue_level": "critical", + "issue_message": "์ต๊ทผ 5ํ ์ฐ์ ์ ๋ก๋ ์คํจ (0๊ฑด ์ ๋ก๋)", + "fix_applied": "check_blogger_connection", + "timestamp": "2026-07-16T18:01:36.012356", + "success": true, + "detail": "Blogger ์ฐ๊ฒฐ ์ ์: HOGU What? (https://www.hoguwhat.com/) โ ์ ๋ก๋ ํ๋ผ๋ฏธํฐ ๋ฌธ์ ๊ฐ๋ฅ์ฑ" + }, + { + "issue_id": "adsense_not_configured", + "issue_level": "warning", + "issue_message": "AdSense ๋ฏธ์ค์ โ ๊ด๊ณ ์์ตํ ๋นํ์ฑํ ์ํ", + "fix_applied": null, + "timestamp": "2026-07-16T18:01:37.079841", + "success": null, + "detail": "์๋ ์กฐ์น ํ์ (์๋ ์๋ฆฌ ๋ถ๊ฐ)" + } + ], + "dry_run": false + }, + { + "timestamp": "2026-07-15T18:02:05.053286", + "health_score": 93, + "issues_found": 1, + "issues": [ + { + "id": "adsense_not_configured", + "level": "warning", + "message": "AdSense ๋ฏธ์ค์ โ ๊ด๊ณ ์์ตํ ๋นํ์ฑํ ์ํ", + "context": {}, + "fix": null + } + ], + "repairs_applied": 0, + "repairs": [ + { + "issue_id": "adsense_not_configured", + "issue_level": "warning", + "issue_message": "AdSense ๋ฏธ์ค์ โ ๊ด๊ณ ์์ตํ ๋นํ์ฑํ ์ํ", + "fix_applied": null, + "timestamp": "2026-07-15T18:02:05.053194", + "success": null, + "detail": "์๋ ์กฐ์น ํ์ (์๋ ์๋ฆฌ ๋ถ๊ฐ)" + } + ], + "dry_run": false + }, + { + "timestamp": "2026-07-14T17:58:27.134933", + "health_score": 93, + "issues_found": 1, + "issues": [ + { + "id": "adsense_not_configured", + "level": "warning", + "message": "AdSense ๋ฏธ์ค์ โ ๊ด๊ณ ์์ตํ ๋นํ์ฑํ ์ํ", + "context": {}, + "fix": null + } + ], + "repairs_applied": 0, + "repairs": [ + { + "issue_id": "adsense_not_configured", + "issue_level": "warning", + "issue_message": "AdSense ๋ฏธ์ค์ โ ๊ด๊ณ ์์ตํ ๋นํ์ฑํ ์ํ", + "fix_applied": null, + "timestamp": "2026-07-14T17:58:27.134847", + "success": null, + "detail": "์๋ ์กฐ์น ํ์ (์๋ ์๋ฆฌ ๋ถ๊ฐ)" + } + ], + "dry_run": false + }, + { + "timestamp": "2026-07-14T08:07:09.888343", + "health_score": 93, + "issues_found": 1, + "issues": [ + { + "id": "adsense_not_configured", + "level": "warning", + "message": "AdSense ๋ฏธ์ค์ โ ๊ด๊ณ ์์ตํ ๋นํ์ฑํ ์ํ", + "context": {}, + "fix": null + } + ], + "repairs_applied": 0, + "repairs": [ + { + "issue_id": "adsense_not_configured", + "issue_level": "warning", + "issue_message": "AdSense ๋ฏธ์ค์ โ ๊ด๊ณ ์์ตํ ๋นํ์ฑํ ์ํ", + "fix_applied": null, + "timestamp": "2026-07-14T08:07:09.888228", + "success": null, + "detail": "์๋ ์กฐ์น ํ์ (์๋ ์๋ฆฌ ๋ถ๊ฐ)" + } + ], + "dry_run": false + }, + { + "timestamp": "2026-07-13T18:28:48.847772", + "health_score": 93, + "issues_found": 1, + "issues": [ + { + "id": "adsense_not_configured", + "level": "warning", + "message": "AdSense ๋ฏธ์ค์ โ ๊ด๊ณ ์์ตํ ๋นํ์ฑํ ์ํ", + "context": {}, + "fix": null + } + ], + "repairs_applied": 0, + "repairs": [ + { + "issue_id": "adsense_not_configured", + "issue_level": "warning", + "issue_message": "AdSense ๋ฏธ์ค์ โ ๊ด๊ณ ์์ตํ ๋นํ์ฑํ ์ํ", + "fix_applied": null, + "timestamp": "2026-07-13T18:28:48.847690", + "success": null, + "detail": "์๋ ์กฐ์น ํ์ (์๋ ์๋ฆฌ ๋ถ๊ฐ)" + } + ], + "dry_run": false + } +] \ No newline at end of file diff --git a/blog-automation/logs/run_history.json b/blog-automation/logs/run_history.json new file mode 100644 index 0000000000000..06d9209304fa2 --- /dev/null +++ b/blog-automation/logs/run_history.json @@ -0,0 +1,15412 @@ +[ + { + "runAt": "2026-07-22T23:15:57.461706", + "date": "2026-07-22", + "keywords": [ + "์๋ฌ๋ฌ ํ์จ ๊ธ๋ฑ๋ฝ ์์ธ๊ณผ ๊ฐ์ธํฌ์์ ๋์๋ฒ" + ], + "postsGenerated": 1, + "bloggerUploaded": 0, + "pendingReview": 1, + "errors": 0, + "errorMessages": [], + "imagesInserted": 3, + "totalWords": 1553, + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "platforms": { + "blogger": 0 + }, + "earnings": { + "totalPosts": 94, + "estimatedDailyRevenue": 470.0, + "estimatedMonthlyRevenue": 14100.0, + "estimatedYearlyRevenue": 171550.0, + "avgCPC": 2.5, + "currency": "USD" + }, + "posts": [ + { + "title": "์๋ฌ๋ฌ ํ์จ ๊ธ๋ฑ๋ฝ์ ์ด์ ์ ๊ฐ์ธํฌ์์ ๋์ ๋ฐฉ์", + "keyword": "์๋ฌ๋ฌ ํ์จ ๊ธ๋ฑ๋ฝ ์์ธ๊ณผ ๊ฐ์ธํฌ์์ ๋์๋ฒ", + "blogUrl": "", + "imagesInserted": 3, + "wordCount": 1553, + "contentPreview": "์ต๊ทผ ๋ช ๋ฌ ๋์ ์๋ฌ๋ฌ ํ์จ์ด ๊ธ๊ฒฉํ๊ฒ ๋ณ๋ํ๊ณ ์์ต๋๋ค. ์ด๋ฐ ๋ณ๋์ ์์ถ์ ๊ธฐ์ ๋ฟ๋ง ์๋๋ผ ๊ฐ์ธํฌ์์์๊ฒ๋ ์๋นํ ์ํฅ์ ๋ฏธ์น ์ ์์ต๋๋ค. ํนํ ์ธํ๋ฅผ ๋ณด์ ํ๊ณ ์๊ฑฐ๋ ํด์ธ์์ฅ์ ํฌ์ํ๋ ค๋ ์ฌ๋๋ค์๊ฒ ์ด๋ฌํ ๋ณํ๋ ์ด๋ป๊ฒ ๋์ํด์ผ ํ ์ง๋ฅผ ๊ณ ๋ฏผํ๊ฒ ๋ง๋ญ๋๋ค. ํ์ฌ์ ํ์จ ์์ฅ์ ์์ง์์ ์ ์ดํดํ๊ณ , ํฅํ ํฌ์ ๊ณํ์ ์ ์คํ ์ธ์ฐ๋ ๊ฒ์ด ์ค์ํ ์์ ์ ...", + "faqCount": 2, + "faq": [ + { + "q": "ํ์จ ๊ธ๋ฑ๋ฝ์ ์ฃผ๋ก ์ด๋ค ์์ธ์ ์ํด ๋ฐ์ํ๋์?", + "a": "ํ์จ์ ๊ฒฝ์ ์งํ์ ๋ณํ, ์ค์์ํ์ ๊ธ๋ฆฌ ์ ์ฑ , ํด์ธ ๊ฒฝ์ ํ๊ฒฝ ๋ฑ์ ์ํด ํฌ๊ฒ ์ํฅ์ ๋ฐ์ต๋๋ค." + }, + { + "q": "ํ์ํ์ ์ค์ด๊ธฐ ์ํ ๊ธ์ต ์ํ์ ๋ฌด์์ด ์๋์?", + "a": "ํ์ํ์ ์ค์ด๊ธฐ ์ํ ๊ธ์ต ์ํ์๋ ์ ๋ฌผํ ๊ฑฐ๋, ํํค์ง ์ต์ , ํ๋ณ๋ ๋ณดํ ๋ฑ์ด ์์ต๋๋ค." + } + ], + "factCheck": { + "checked": true, + "verdict": "pass", + "issues_found": 0, + "fixes_applied": 0, + "issues": [] + }, + "sources": [ + { + "title": "๊ธฐํ์ฌ์ ๋ถ", + "url": "https://www.moef.go.kr" + }, + { + "title": "๊ธ์ต์์ํ", + "url": "https://www.fsc.go.kr" + } + ], + "labels": [ + "ํ์จ", + "๊ธ์ต ํฌ์", + "ํ์ํ ๊ด๋ฆฌ", + "๊ฐ์ธํฌ์", + "ํด์ธํฌ์", + "ํ๋ณ๋", + "ํ์จ ๋์", + "๊ธ์ต ์ํ", + "ํํค์ง", + "๊ฒฝ์ ์ ์ฑ " + ], + "metaDescription": "์๋ฌ๋ฌ ํ์จ ๊ธ๋ฑ๋ฝ ์์์ ๊ฐ์ธํฌ์์๊ฐ ๊ณ ๋ คํด์ผ ํ ๋์ ๋ฐฉ์์ ์ ์ํฉ๋๋ค. ์ด ๊ธ์ ํ์จ ๊ธ๋ฑ๋ฝ์ ์์ธ์ ๋ถ์ํ๊ณ ์ ์คํ ํฌ์ ์ ๋ต์ ์๊ฐํฉ๋๋ค.", + "adsenseCategory": "๊ธ์ต", + "articleType": "investment", + "riskLevel": "high", + "contentCategory": "finance", + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "socialContent": null, + "socialPublished": { + "instagram": null, + "threads": null, + "tiktok": null + } + } + ] + }, + { + "runAt": "2026-07-22T23:13:54.239483", + "date": "2026-07-22", + "keywords": [ + "๊ฒฝ์ฃผ ๋น์ผ์น๊ธฐ ๋์น๋ฉด ํํํ๋ ์ฝ์ค ์ง์ ๋ค๋ ์์" + ], + "postsGenerated": 1, + "bloggerUploaded": 0, + "pendingReview": 1, + "errors": 0, + "errorMessages": [], + "imagesInserted": 3, + "totalWords": 1340, + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "platforms": { + "blogger": 0 + }, + "earnings": { + "totalPosts": 94, + "estimatedDailyRevenue": 225.6, + "estimatedMonthlyRevenue": 6768.0, + "estimatedYearlyRevenue": 82344.0, + "avgCPC": 1.2, + "currency": "USD" + }, + "posts": [ + { + "title": "๊ฒฝ์ฃผ ๋น์ผ์น๊ธฐ, ๋์น๋ฉด ํํํ๋ ์ฝ์ค ์ง์ ๋ค๋ ์์!", + "keyword": "๊ฒฝ์ฃผ ๋น์ผ์น๊ธฐ ๋์น๋ฉด ํํํ๋ ์ฝ์ค ์ง์ ๋ค๋ ์์", + "blogUrl": "", + "imagesInserted": 3, + "wordCount": 1340, + "contentPreview": "์ฌ๋ฆ ํด๊ฐ์ฒ ์ด ๋ค๊ฐ์ค๋ฉด ํ๋ฃจ๋ผ๋ ์งฌ์ ๋ด์ด ๊ฒฝ์ฃผ๋ฅผ ๋ฐฉ๋ฌธํด๋ณผ๊น ๊ณ ๋ฏผํ๋ ๋ถ๋ค์ด ๋ง์ต๋๋ค. ๊ฒฝ์ฃผ๋ ํ๋ถํ ์ญ์ฌ์ ๋๋ถ์ด ์๋ฆ๋ค์ด ์์ฐ ๊ฒฝ๊ด์ด ๊ฐ๋ํ ๋์์ ๋๋ค. ํ์ง๋ง '๋ฑ ํ๋ฃจ'๋ผ๋ ์ ์ฝ๋ ์๊ฐ ์์์ ์ด๋ค ์ฝ์ค๋ฅผ ์ ํํด์ผ ํํ ์๋ ์ฌํ์ด ๋ ์ง ๊ณ ๋ฏผ๋๊ธฐ๋ ํ์ฃ . ์ด๋ฒ ๊ธ์์๋ ๊ฒฝ์ฃผ๋ก ๋น์ผ์น๊ธฐ ์ฌํ์ ๊ณํํ์๋ ๋ถ๋ค์ ์ํด ๊ฐ์ฅ ์์ฐจ๊ณ ํํ ์๋ ์ฝ์ค๋ฅผ ์ ์...", + "faqCount": 2, + "faq": [ + { + "q": "๊ฒฝ์ฃผ ๋ถ๊ตญ์ฌ ๋ฐฉ๋ฌธ ์ถ์ฒ ์๊ฐ์ ์ธ์ ์ธ๊ฐ์?", + "a": "์์นจ ์ผ์ฐ ๋ฐฉ๋ฌธํ์๋ ๊ฒ์ ์ถ์ฒํฉ๋๋ค. ํ์ ํ ๋ถ์๊ธฐ์์ ์ฌ์ ๋ก์ด ๊ด๋์ ์ฆ๊ธธ ์ ์์ต๋๋ค." + }, + { + "q": "๊ฒฝ์ฃผ ์๋๋ง์ ์ ์ฅ์ ๋ฌด๋ฃ์ธ๊ฐ์?", + "a": "์๋๋ง์ ์ ์ฅ์ ๋ฌด๋ฃ์ด์ง๋ง, ์ฒดํ ํ๋์ ๋ฐ๋ผ ์ผ๋ถ ๋น์ฉ์ด ๋ฐ์ํ ์ ์์ต๋๋ค." + } + ], + "factCheck": { + "checked": true, + "verdict": "warn", + "issues_found": 3, + "fixes_applied": 2, + "issues": [ + { + "problem": "๊ณผ์ฅ๋ ๋จ์ ", + "fixed": true + }, + { + "problem": "๊ฒ์ฆ ๋ถ๊ฐ๋ฅํ ๊ตฌ์ฒด์ ์์นยทํต๊ณ", + "fixed": true + }, + { + "problem": "๊ทผ๊ฑฐ ์๋ฃ ์๋ 1์ธ์นญ ์ฒดํ ์ฃผ์ฅ", + "fixed": false + } + ] + }, + "sources": [ + { + "title": "๊ฒฝ์ฃผ์ ๋ฌธํ์ฌ ์๋ด", + "url": "https://www.gyeongju.go.kr" + }, + { + "title": "๊ฒฝ์ฃผ ๊ด๊ด ๊ณต์ ์ฌ์ดํธ", + "url": "https://www.gjtour.com" + } + ], + "labels": [ + "๊ตญ๋ด์ฌํ", + "๊ฒฝ์ฃผ์ฌํ", + "๋ถ๊ตญ์ฌ", + "์ฒจ์ฑ๋", + "์๋๋ง์", + "๋ฌธํ์ ์ ", + "๋น์ผ์น๊ธฐ์ฌํ", + "์ฌ๋ฆ์ฌํ", + "์ญ์ฌํ๋ฐฉ", + "์ ํต๋ฌธํ" + ], + "metaDescription": "๊ฒฝ์ฃผ ๋น์ผ์น๊ธฐ ์ฌํ์ ๊ณํํ๋ ๋ถ๋ค์ ์ํ ์ต๊ณ ์ ์ฝ์ค๋ฅผ ์๊ฐํฉ๋๋ค. ๋ถ๊ตญ์ฌ, ์ฒจ์ฑ๋, ์๋๋ง์์ ์ค์ฌ์ผ๋ก ์์ฐจ๊ฒ ํ๋ฃจ๋ฅผ ์ฆ๊ธฐ๋ ๋ฐฉ๋ฒ์ ๋ด์์ต๋๋ค.", + "adsenseCategory": "์ฌํ", + "articleType": "travel_guide", + "riskLevel": "low", + "contentCategory": "travel", + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "socialContent": null, + "socialPublished": { + "instagram": null, + "threads": null, + "tiktok": null + } + } + ] + }, + { + "runAt": "2026-07-22T23:11:57.445701", + "date": "2026-07-22", + "keywords": [ + "์ถ์ฒ ๋ญ๊ฐ๋น ๊ณจ๋ชฉ ์ง์ง ๋ง์ง๊ณผ ํผํด์ผ ํ ๊ณณ" + ], + "postsGenerated": 1, + "bloggerUploaded": 0, + "pendingReview": 1, + "errors": 0, + "errorMessages": [], + "imagesInserted": 3, + "totalWords": 1634, + "blogId": "blog1", + "blogName": "HOGU What?", + "platforms": { + "blogger": 0 + }, + "earnings": { + "totalPosts": 94, + "estimatedDailyRevenue": 225.6, + "estimatedMonthlyRevenue": 6768.0, + "estimatedYearlyRevenue": 82344.0, + "avgCPC": 1.2, + "currency": "USD" + }, + "posts": [ + { + "title": "์ถ์ฒ ๋ญ๊ฐ๋น ๊ณจ๋ชฉ ์ง์ง ๋ง์ง๊ณผ ํผํด์ผ ํ ๊ณณ", + "keyword": "์ถ์ฒ ๋ญ๊ฐ๋น ๊ณจ๋ชฉ ์ง์ง ๋ง์ง๊ณผ ํผํด์ผ ํ ๊ณณ", + "blogUrl": "", + "imagesInserted": 3, + "wordCount": 1634, + "contentPreview": "์ถ์ฒ ๋ญ๊ฐ๋น๋ ๊ทธ ํน์ ์ ๋งค์ฝค๋ฌ์ฝคํ ์๋ ์ผ๋ก ๋ง์ ์ฌ๋๋ค์ ์ ๋ง์ ์ฌ๋ก์ก์ต๋๋ค. ๊ทธ๋ฌ๋ ๋ง์ ์ถ์ฒ์ ์ฐพ์๊ฐ ๋ญ๊ฐ๋น ๊ณจ๋ชฉ์ ๋ค์ด์๋ฉด ์ด๋์์ ๋จน์ด์ผ ํ ์ง ๋ง๋งํ ๋๊ฐ ๋ง์ต๋๋ค. ์๋ํ๋ฉด ๊ณจ๋ชฉ ๊ฐ๋ ๋ค์ด์ ์ฌ๋ฌ ์๋น๋ค ๋๋ฌธ์ ์ ํ์ด ์ฝ์ง ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ์ด ๊ณ ๋ฏผ์ด ์๊ธธ ๋, ์ ๋ง๋ก ๋ง์๋ ๊ณณ์ ์ฐพ๊ณ ์ถ๋ค๋ฉด ๋ช ๊ฐ์ง ์ฒดํฌํด์ผ ํ ์์๋ค์ด ์์ต๋๋ค. ์ด๋ฒ ๊ธ์์...", + "faqCount": 3, + "faq": [ + { + "q": "์ถ์ฒ ๋ญ๊ฐ๋น ๋ช ์๋ ์ด๋ ์๋์?", + "a": "์ถ์ฒ ๋ช ๋ ๊ณจ๋ชฉ์ ๋ง์ ๋ญ๊ฐ๋น ๋ง์ง๋ค์ด ๋ชจ์ฌ ์์ต๋๋ค. ๋ง์ ์ฌ๋๋ค์ด ์ฐพ๋ ๋ช ๋ ๊ณจ๋ชฉ์ ๋ฐฉ๋ฌธํ์ธ์." + }, + { + "q": "๋๊ธฐ ์๊ฐ์ด ๊ธด ๊ฐ๊ฒ๋ฅผ ํผํ ๋ฐฉ๋ฒ์ด ์๋์?", + "a": "์ฃผ๋ง๋ณด๋ค๋ ์ฃผ์ค, ํนํ ์ ์ฌ ์๊ฐ์ ํผํ๊ณ ๋ฏธ๋ฆฌ ์์ฝํ ์ ์๋ ๊ณณ์ ์ฐพ๋ ๊ฒ์ด ์ข์ต๋๋ค." + }, + { + "q": "ํน๋ณํ ๋ ์ ์ด๋ค ๋ฉ๋ด๋ฅผ ์ถ์ฒํ์๋์?", + "a": "๋ง๊ตญ์์ ํจ๊ป ๋จน๋ ๊ฒ์ด ์กฐํ๋ก์ด ๋ง์ ์๋ํ๋ฉฐ, ๋ช๋ช ๊ฐ๊ฒ๋ ๋ ํนํ ์๋ ์ผ๋ก ์ ๋ช ํฉ๋๋ค." + } + ], + "factCheck": { + "checked": true, + "verdict": "warn", + "issues_found": 2, + "fixes_applied": 2, + "issues": [ + { + "problem": "๊ฒ์ฆ ๋ถ๊ฐ๋ฅํ ๊ตฌ์ฒด์ ์์นยทํต๊ณ", + "fixed": true + }, + { + "problem": "๊ทผ๊ฑฐ ์๋ฃ ์๋ 1์ธ์นญ ์ฒดํ ์ฃผ์ฅ", + "fixed": true + } + ] + }, + "sources": [ + { + "title": "ํ๊ตญ๊ด๊ด๊ณต์ฌ", + "url": "https://korean.visitkorea.or.kr" + }, + { + "title": "๋ค์ด๋ฒ ๋ฆฌ๋ทฐ", + "url": "https://www.naver.com" + } + ], + "labels": [ + "์ถ์ฒ", + "๋ญ๊ฐ๋น", + "๊ตญ๋ด ์ฌํ", + "๋ง์ง", + "์ฌํ ๊ฐ์ด๋", + "๊ฐ์ฑ๋น", + "์๋น์ค", + "๊ณ ๊ฐ ํ๊ธฐ", + "์ฌํ ํ", + "์๋น ์ ํ" + ], + "metaDescription": "์ถ์ฒ ๋ญ๊ฐ๋น ๊ณจ๋ชฉ์ ์ง์ง ๋ง์ง๊ณผ ํผํด์ผ ํ ๊ณณ์ ์์๋ด ๋๋ค. ํ๊ธฐ๋ฅผ ์ข ํฉํด ์ฒดํฌ๋ฆฌ์คํธ๋ฅผ ์ ๊ณตํฉ๋๋ค. ์คํจ๋ฅผ ์ค์ด๊ณ ์ง๊ธ ์์ํ์ธ์.", + "adsenseCategory": "์ฌํ", + "articleType": "travel_guide", + "riskLevel": "low", + "contentCategory": "travel", + "blogId": "blog1", + "blogName": "HOGU What?", + "socialContent": null, + "socialPublished": { + "instagram": null, + "threads": null, + "tiktok": null + } + } + ] + }, + { + "runAt": "2026-07-22T15:40:17.619966", + "date": "2026-07-22", + "keywords": [ + "ํด๋8" + ], + "postsGenerated": 1, + "bloggerUploaded": 0, + "pendingReview": 1, + "errors": 0, + "errorMessages": [], + "imagesInserted": 3, + "totalWords": 2031, + "blogId": "blog1", + "blogName": "HOGU What?", + "platforms": { + "blogger": 0 + }, + "earnings": { + "totalPosts": 93, + "estimatedDailyRevenue": 167.4, + "estimatedMonthlyRevenue": 5022.0, + "estimatedYearlyRevenue": 61101.0, + "avgCPC": 0.9, + "currency": "USD" + }, + "posts": [ + { + "title": "ํด๋8, ์ค๋งํธํฐ ์์ฅ์ ์๋ก์ด ์งํ๊ฐ ๋๋ค", + "keyword": "ํด๋8", + "blogUrl": "", + "imagesInserted": 3, + "wordCount": 2031, + "contentPreview": "๊ฐ์๊ธฐ ์๋ก์ด ์ค๋งํธํฐ์ ๊ตฌ๋งคํ ์๊ฐ์ด ๋ค ๋, ์ต์ ๊ธฐ์ ์ด ์ ์ฉ๋ ํด๋8์ ๋ง์ ์ฌ๋๋ค์๊ฒ ์ ํ์ง๋ก ๋ ์ค๋ฆ ๋๋ค. ํ์ง๋ง ์ค์ ๋ก ์ผ๋ง๋ ๊ฐ์น๊ฐ ์๋์ง ์๋ฌธ์ ๊ฐ๊ฒ ๋์ฃ . ๊ฐ๊ฒฉ๋งํผ ์ฑ๋ฅ์ด ๋ฐ๋ผ์ฃผ๋์ง, ์ฌ์ฉ์๊ฐ ์ด๋ค ์ ์ ๊ฐ์ฅ ๋ค๋ฅด๊ฒ ๋๋ผ๋์ง ์ด์ผ๊ธฐํด๋ณผ๊น ํฉ๋๋ค.๐ก ํต์ฌ ํฌ์ธํธ: ํด๋8์ ์ค๋งํธํฐ ์์ฅ์์ ์ ๋ ํํ์ ํ์ ์ฑ์ ์ ๊ณตํฉ๋๋ค. ์ด๋์ฑ๊ณผ ๋ํ๋ฉด์ ์ฅ...", + "faqCount": 3, + "faq": [ + { + "q": "ํด๋8์ ๊ฐ์ฅ ํฐ ์ฅ์ ์ ๋ฌด์์ธ๊ฐ์?", + "a": "๋ํ๋ฉด์ ์ ๊ฑฐ๋ ํผ ์ ์์ด ์ฌ์ฉ์์ ํ์์ ๋ง์ถฐ ์์ ๋กญ๊ฒ ์ฌ์ฉ ๊ฐ๋ฅํฉ๋๋ค." + }, + { + "q": "ํด๋8์ ๊ฐ๊ฒฉ์ด ๋ถ๋ด๋๋ค๋ฉด ๋์์ด ์์๊น์?", + "a": "๋์์ผ๋ก๋ ์ค๊ณ ํ๋งค ์ ํ์ ๊ณ ๋ คํ์๊ฑฐ๋, ์ถ์ ์ดํ ์๊ฐ์ด ์ง๋ ๋ชจ๋ธ์ ํ์ํ๋ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค." + }, + { + "q": "ํด๋ํ ์ค๋งํธํฐ์ ๋ด๊ตฌ์ฑ์ ์ด๋ค๊ฐ์?", + "a": "์ต๊ทผ ๋ชจ๋ธ๋ค์ ๋ด๊ตฌ์ฑ ํฅ์์ ์ํด ๋ง์ ๊ธฐ์ ์ด ์ ๋ฐ์ดํธ๋์์ต๋๋ค. ํ์ง๋ง ์ฌ์ฉ ์ ์ฃผ์๊ฐ ํ์ํฉ๋๋ค." + } + ], + "factCheck": { + "checked": true, + "verdict": "warn", + "issues_found": 3, + "fixes_applied": 3, + "issues": [ + { + "problem": "ํ์ฌ ์ถ์์ฌ๋ถ ๋ฏธํ์ธ", + "fixed": true + }, + { + "problem": "์ถ์ฒ ๋ฏธํ์ธ ์ฃผ์ฅ", + "fixed": true + }, + { + "problem": "์ผ๋ฐํ๋ ์ฃผ์ฅ", + "fixed": true + } + ] + }, + "sources": [], + "labels": [ + "์ค๋งํธํฐ", + "ํ ํฌ๋ฆฌ๋ทฐ", + "ํด๋ํฐ", + "์ต์ ๊ธฐ์ ", + "ํ์ ์ ํ", + "๊ฐ์ฑ๋น๋ถ์", + "์ฌ์ฉ์๊ฒฝํ", + "๋ชจ๋ฐ์ผํ ํฌ", + "๋น๊ต๋ฆฌ๋ทฐ", + "ํธ๋ ๋" + ], + "metaDescription": "ํด๋8, ์ค๋งํธํฐ ํ์ ์ ์ด๋๋ ์๋ก์ด ์งํ. ๋ํ๋ฉด๊ณผ ํด๋์ฑ์ ๋์์ ๋๋ฆด ์ ์๋ ํด๋ํฐ์ ์ฅ๋จ์ ์ ๋ถ์ํฉ๋๋ค.", + "adsenseCategory": "์ผ๋ฐ", + "articleType": "analysis", + "riskLevel": "medium", + "contentCategory": "travel", + "blogId": "blog1", + "blogName": "HOGU What?", + "socialContent": null, + "socialPublished": { + "instagram": null, + "threads": null, + "tiktok": null + } + } + ] + }, + { + "runAt": "2026-07-22T15:37:08.763785", + "date": "2026-07-22", + "keywords": [ + "์ฝ์คํผ ๋ถ์ฅ ๋๋ถ์ ๊ฐ๊ณ ์์์ฐ ๋ง์" + ], + "postsGenerated": 1, + "bloggerUploaded": 0, + "pendingReview": 1, + "errors": 0, + "errorMessages": [], + "imagesInserted": 3, + "totalWords": 1140, + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "platforms": { + "blogger": 0 + }, + "earnings": { + "totalPosts": 93, + "estimatedDailyRevenue": 223.2, + "estimatedMonthlyRevenue": 6696.0, + "estimatedYearlyRevenue": 81468.0, + "avgCPC": 1.2, + "currency": "USD" + }, + "posts": [ + { + "title": "์ฝ์คํผ ๋ถ์ฅ์ผ๋ก ๊ฐ๊ณ ์์์ฐ ๋ค์ ์ฆ๊ฐ, ๋์๊ฒ ๋ฏธ์น๋ ์ํฅ์?", + "keyword": "์ฝ์คํผ ๋ถ์ฅ ๋๋ถ์ ๊ฐ๊ณ ์์์ฐ ๋ง์", + "blogUrl": "", + "imagesInserted": 3, + "wordCount": 1140, + "contentPreview": "์ต๊ทผ ์ฝ์คํผ ์ง์๊ฐ ๋ถ์ฅ(์ฑ์ฅํ๊ณ ์๋ ์ฃผ์์์ฅ)์ ํ์ ์ด ์์น์ธ๋ฅผ ๋ณด์ด๊ณ ์์ต๋๋ค. ์ด๋ฌํ ์์น์ ์ฃผ์ ๋ณด์ ์๋ฟ๋ง ์๋๋ผ ์ผ๋ฐ ๊ฐ๊ณ์ ์์์ฐ์๋ ๊ธ์ ์ ์ธ ์ํฅ์ ๋ฏธ์น ์ ์์ต๋๋ค. ๊ทธ๋ ๋ค๋ฉด ์ด๋ฒ ์ฝ์คํผ ๋ถ์ฅ์ด ๊ณผ์ฐ ๋์๊ฒ ์ด๋ค ์ํฅ์ ์ค ์ ์์์ง, ์ผ๋ฐ ๊ฐ๊ณ์ ์ฌ๋ฌด ์ํ์ ๋ฏธ์น๋ ์ํฅ์ ์ดํด๋ณด๊ฒ ์ต๋๋ค. ๐ก ํต์ฌ ํฌ์ธํธ: ์ฝ์คํผ ์ง์ ์์น์ผ๋ก ์ฃผ์ ๋ณด์ ์...", + "faqCount": 2, + "faq": [ + { + "q": "์ฝ์คํผ ์์น์ด ๊ฐ๊ณ์ ์ด๋ค ์ํฅ์ ์ค ์ ์๋์?", + "a": "์ฝ์คํผ ์์น์ ์ฃผ์ ๋ณด์ ์์ ์์ฐ๊ฐ์น๋ฅผ ๋๋ ค ๊ฐ๊ณ ์์์ฐ ์ฆ๊ฐ์ ์ํฅ์ ์ค๋๋ค. ์ด๋ ์๋น ์ฌ๋ฆฌ ํ๋ณต ๋ฐ ๊ฒฝ์ ํ๋ ฅ์ ์ด์งํ ์ ์์ต๋๋ค." + }, + { + "q": "์ด๋ฒ ์ฝ์คํผ ๋ถ์ฅ์์ ๊ฐ์ธ ํฌ์์๊ฐ ์ค๋นํด์ผ ํ ๊ฒ์?", + "a": "์์ฐ ํฌํธํด๋ฆฌ์ค ์ ๊ฒ, ๋ฆฌ์คํฌ ๊ด๋ฆฌ ๊ฐํ, ๊ธ๋ฆฌ ๋ณ๋์ ๋ฐ๋ฅธ ์์ ๊ธ ์ด์ ์์ต ์์ธก ๋ฑ์ ํตํด ๋๋นํ ํ์๊ฐ ์์ต๋๋ค." + } + ], + "factCheck": { + "checked": true, + "verdict": "pass", + "issues_found": 0, + "fixes_applied": 0, + "issues": [] + }, + "sources": [ + { + "title": "๊ธฐํ์ฌ์ ๋ถ ๊ณต์ ์ฌ์ดํธ", + "url": "https://www.moef.go.kr" + }, + { + "title": "๊ธ์ต์์ํ ๋ณด๋์๋ฃ", + "url": "https://www.fsc.go.kr" + } + ], + "labels": [ + "๊ธ์ต", + "์ฝ์คํผ", + "์์์ฐ", + "์ฃผ์", + "ํฌ์", + "๊ฒฝ์ ", + "์์ฅ ๋ํฅ", + "์์ฐ ๊ด๋ฆฌ", + "ํฌํธํด๋ฆฌ์ค", + "๋ฆฌ์คํฌ ๊ด๋ฆฌ" + ], + "metaDescription": "์ฝ์คํผ ๋ถ์ฅ์ผ๋ก ๊ฐ๊ณ ์์์ฐ์ด ๋ค์ ์ฆ๊ฐํ๊ณ ์์ต๋๋ค. ์ฃผ์ ๋ณด์ ์์ ์ผ๋ฐ ๊ฐ๊ณ์ ๋ฏธ์น๋ ๊ธ์ ์ ์ํฅ์ ์ดํด๋ณด๊ณ ๋๋น ์ ๋ต์ ์๊ฐํฉ๋๋ค.", + "adsenseCategory": "์ฌํ", + "articleType": "travel_guide", + "riskLevel": "low", + "contentCategory": "finance", + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "socialContent": null, + "socialPublished": { + "instagram": null, + "threads": null, + "tiktok": null + } + } + ] + }, + { + "runAt": "2026-07-22T12:32:17.328785", + "date": "2026-07-22", + "keywords": [ + "๋ํต๋ น๋ ํํ ๋ฐฉ์ ๊ฐ๋จ์๋ ์ง์ฃผ์ธ ๋์ถ" + ], + "postsGenerated": 1, + "bloggerUploaded": 0, + "pendingReview": 1, + "errors": 0, + "errorMessages": [], + "imagesInserted": 3, + "totalWords": 1428, + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "platforms": { + "blogger": 0 + }, + "earnings": { + "totalPosts": 93, + "estimatedDailyRevenue": 465.0, + "estimatedMonthlyRevenue": 13950.0, + "estimatedYearlyRevenue": 169725.0, + "avgCPC": 2.5, + "currency": "USD" + }, + "posts": [ + { + "title": "๋ํต๋ น๋ ์ฃผ๋ชฉํ '๊ฐ๋จ ์ง์ฃผ์ธ ๋์ถ', ๋์๊ฒ ๋ง๋ ๋ฐฉ๋ฒ์ผ๊น?", + "keyword": "๋ํต๋ น๋ ํํ ๋ฐฉ์ ๊ฐ๋จ์๋ ์ง์ฃผ์ธ ๋์ถ", + "blogUrl": "", + "imagesInserted": 3, + "wordCount": 1428, + "contentPreview": "๊ฐ๋จ์ ๋ถ๋์ฐ ์์ฅ, ๊ทธ์ค์์๋ ์ง์ฃผ์ธ๋ค์ด ๋์ถ์ ํ์ฉํ๋ ๋ฐฉ์์ด ์ต๊ทผ ์ฃผ๋ชฉ๋ฐ๊ณ ์์ต๋๋ค. ๋ํต๋ น๋ง์ ์ด ๋ฐฉ์์ ์ ํํ๋ค๋ ์ด์ผ๊ธฐ๋ ๋ง์ ์ฌ๋๋ค์๊ฒ ๋๋ผ์์ ์๊ฒจ์ฃผ๋ฉฐ ์ฃผ๋ชฉ์ ๋๊ณ ์๋๋ฐ์. ๋์ถ์ ๋ง์ ์ด๋ค์๊ฒ ๊ธ์ ์ ์ธ ๋ถ๋ด์ ๋์ด์ค ์ ์๋ ๋ฐฉ๋ฒ์ด์ง๋ง, ๋ณต์กํ ์กฐ๊ฑด๊ณผ ์ ์ฐจ ๋๋ฌธ์ ๋ง์ค์ด๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. ๐ก ํต์ฌ ํฌ์ธํธ: ๊ฐ๋จ์ ๊ฑฐ์ฃผํ๋ ์ง์ฃผ์ธ๋ค์ด ๋์ถ...", + "faqCount": 2, + "faq": [ + { + "q": "๋์ถ ๊ฐ๋ฅ ์ฐ๋ น์ ์ด๋ป๊ฒ ๋๋์?", + "a": "๋์ถ ๊ฐ๋ฅ ์ฐ๋ น์ ๋ง 20์ธ ์ด์๋ถํฐ ๋ง 65์ธ ์ดํ๊น์ง์ ๋๋ค." + }, + { + "q": "์๋ ์ฆ๋น์ด ๋ฐ๋์ ํ์ํ๊ฐ์?", + "a": "๋ค, ์๋ ์ฆ๋น ์๋ฅ๋ ๋์ถ ์ฌ์ฌ๋ฅผ ์ํด ๋ฐ๋์ ํ์ํฉ๋๋ค." + } + ], + "factCheck": { + "checked": true, + "verdict": "warn", + "issues_found": 3, + "fixes_applied": 3, + "issues": [ + { + "problem": "ํ์ธ ๋ถ๊ฐ๋ฅํ ์ฃผ์ฅ", + "fixed": true + }, + { + "problem": "๊ณผ์ฅ๋ ๋จ์ ํํ", + "fixed": true + }, + { + "problem": "๊ณผ์ฅ๋ ๋จ์ ํํ", + "fixed": true + } + ] + }, + "sources": [ + { + "title": "๊ธฐํ์ฌ์ ๋ถ", + "url": "https://www.mosf.go.kr" + }, + { + "title": "๊ธ์ต์์ํ", + "url": "https://www.fsc.go.kr" + } + ], + "labels": [ + "๋์ถ", + "๊ฐ๋จ๋ถ๋์ฐ", + "๊ธ์ต์ ์ฑ ", + "์ฃผํ๋์ถ", + "๊ธ์ต์ง์", + "์ ๋ถ์ ์ฑ ", + "์ง์ฃผ์ธ๋์ถ", + "๊ธ๋ฆฌ", + "์ํ๋์ถ", + "๊ฒฝ์ ๋ด์ค" + ], + "metaDescription": "๊ฐ๋จ ์ง์ญ ์ง์ฃผ์ธ ๋์ถ, ๋ํต๋ น๋ง์ ์ฃผ๋ชฉํ ์๋ก์ด ๊ธ์ต ๋ฐฉ๋ฒ. ์๋๊ณผ ์ฃผํ ํ๊ฐ์ ๋ฐ๋ผ ํํ ์ ๊ณต, ์จ๋ผ์ธ๊ณผ ๋ฐฉ๋ฌธ ์ ์ฒญ ๊ฐ๋ฅ.", + "adsenseCategory": "๊ธ์ต", + "articleType": "analysis", + "riskLevel": "high", + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "socialContent": null, + "socialPublished": { + "instagram": null, + "threads": null, + "tiktok": null + } + } + ] + }, + { + "runAt": "2026-07-22T11:51:25.729303", + "date": "2026-07-22", + "keywords": [ + "๋ฏธ๊ตญ ์ฐ์ค ๊ธ๋ฆฌ ๊ฒฐ์ ํ๊ตญ ์ฆ์ ์ํฅ ๋ถ์" + ], + "postsGenerated": 1, + "bloggerUploaded": 0, + "pendingReview": 1, + "errors": 0, + "errorMessages": [], + "imagesInserted": 3, + "totalWords": 1377, + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "platforms": { + "blogger": 0 + }, + "earnings": { + "totalPosts": 93, + "estimatedDailyRevenue": 465.0, + "estimatedMonthlyRevenue": 13950.0, + "estimatedYearlyRevenue": 169725.0, + "avgCPC": 2.5, + "currency": "USD" + }, + "posts": [ + { + "title": "๋ฏธ๊ตญ ์ฐ์ค ๊ธ๋ฆฌ ๊ฒฐ์ ์ด ํ๊ตญ ์ฆ์์ ๋ฏธ์น๋ ์ํฅ: ์ง๊ธ ์์์ผ ํ ์ ", + "keyword": "๋ฏธ๊ตญ ์ฐ์ค ๊ธ๋ฆฌ ๊ฒฐ์ ํ๊ตญ ์ฆ์ ์ํฅ ๋ถ์", + "blogUrl": "", + "imagesInserted": 3, + "wordCount": 1377, + "contentPreview": "์ต๊ทผ ๋ฏธ๊ตญ ์ฐ์ค์ ๊ธ๋ฆฌ ๊ฒฐ์ ์ ์ ์ธ๊ณ ๊ธ์ต ์์ฅ์ ์์ฒญ๋ ํ์ฅ์ ์ผ์ผํค๊ณ ์์ต๋๋ค. ๊ธ๋ฆฌ๊ฐ ์ฌ๋ผ๊ฐ๋ฉด ์ฃผ๊ฐ๋ ๋จ์ด์ง๊ณ , ๊ธ๋ฆฌ๊ฐ ๋ด๋ ค๊ฐ๋ฉด ์ฃผ๊ฐ๋ ์ฌ๋ผ๊ฐ๋ค๋ ๊ณต์์ ์ด๋ฏธ ๋ง์ ํฌ์์๋ค์ด ์๊ณ ์๋ ์ฌ์ค์ด์ฃ . ๊ทธ๋ ๋ค๋ฉด ์ด๋ฒ ์ฐ์ค์ ๊ฒฐ์ ์ ํ๊ตญ ์ฆ์์ ์ด๋ค ์ํฅ์ ๋ฏธ์น ๊น์? ์ด๋ฌํ ์ํฉ์ ํฌ์์์ ์ผ๋ฐ์ธ ๋ชจ๋๊ฐ ์ฃผ๋ชฉํด์ผ ํ ์ค์ํ ๋ฌธ์ ์ ๋๋ค. ๐ก ํต์ฌ ํฌ์ธํธ: ์ฐ...", + "faqCount": 2, + "faq": [ + { + "q": "๊ธ๋ฆฌ ์ธ์์ด ๋ฐ๋์ ํ๊ตญ ์ฃผ๊ฐ๋ฅผ ๋ด๋ฆฌ๊ฒ ํ ๊น์?", + "a": "๋ฐ๋์ ๊ทธ๋ ์ง๋ ์์ต๋๋ค. ๊ธ๋ฆฌ ์ธ์์ ์ธ๊ตญ์ธ ํฌ์์๋ค์ ์๋ณธ ์ ์ถ์ ์ด๋ํ ์ ์์ง๋ง, ๊ธฐ์ ์ ์ค์ ์ด๋ ๊ฒฝ์ ์ํฉ์ ๋ฐ๋ผ ๋ค๋ฅด๊ฒ ๋ฐ์ํ ์ ์์ต๋๋ค." + }, + { + "q": "๊ธ๋ฆฌ ๋ณ๋์ ์ฃผ๋ก ์ฅ๊ธฐ ํฌ์์์๊ฒ ์ด๋ค ์๋ฏธ๊ฐ ์์๊น์?", + "a": "์ฅ๊ธฐ ํฌ์์๋ ๋ณ๋์ฑ์ ๋จ๊ธฐ์ ์ผ๋ก ๊ฐ๋ดํ ํ์๊ฐ ์์ผ๋ฉฐ, ์คํ๋ ค ๊ฐ๊ฒฉ ์กฐ์ ์๊ธฐ๊ฐ ์ข์ ์ฐ๋์ฃผ ๋งค์ ๊ธฐํ๋ก ํ์ฉ๋ ์ ์์ต๋๋ค." + } + ], + "factCheck": { + "checked": true, + "verdict": "warn", + "issues_found": 5, + "fixes_applied": 5, + "issues": [ + { + "problem": "๊ฒ์ฆ ๋ถ๊ฐ๋ฅํ ๊ตฌ์ฒด์ ์์นยทํต๊ณ", + "fixed": true + }, + { + "problem": "๊ทผ๊ฑฐ ์๋ฃ ์๋ 1์ธ์นญ ์ฒดํ ์ฃผ์ฅ", + "fixed": true + }, + { + "problem": "๊ณผ์ฅ๋ ๋จ์ ", + "fixed": true + }, + { + "problem": "๊ทผ๊ฑฐ ์๋ฃ ์๋ 1์ธ์นญ ์ฒดํ ์ฃผ์ฅ", + "fixed": true + }, + { + "problem": "๊ทผ๊ฑฐ ์๋ฃ ์๋ 1์ธ์นญ ์ฒดํ ์ฃผ์ฅ", + "fixed": true + } + ] + }, + "sources": [ + { + "title": "๋ฏธ๊ตญ ์ฐ๋ฐฉ์ค๋น์ ๋ ์ด์ฌํ", + "url": "https://www.federalreserve.gov/" + }, + { + "title": "๊ธฐํ์ฌ์ ๋ถ", + "url": "https://www.moef.go.kr/" + } + ], + "labels": [ + "๊ธ์ต ๋ด์ค", + "์ฃผ์", + "๊ธ๋ฆฌ", + "ํ์จ", + "ํ๊ตญ ์ฆ์", + "๋ฏธ๊ตญ ์ฐ์ค", + "ํฌ์", + "๊ตญ์ ๊ฒฝ์ ", + "๊ธ์ต ์ ์ฑ ", + "๊ฒฝ์ ๋ถ์" + ], + "metaDescription": "๋ฏธ๊ตญ ์ฐ์ค์ ๊ธ๋ฆฌ ๊ฒฐ์ ์ด ํ๊ตญ ์ฆ์์ ๋ฏธ์น๋ ์ํฅ! ํฌ์์๋ ํฌํธํด๋ฆฌ์ค ์กฐ์ ์ด ํ์ํ๋ค๋ ์ ๋ฌธ๊ฐ ์๊ฒฌ. ๊ธ๋ฆฌ ์ธ์์ด ๊ฐ์ ธ์ฌ ๋ณํ๋ฅผ ์์๋ด ๋๋ค.", + "adsenseCategory": "๊ธ์ต", + "articleType": "sports_review", + "riskLevel": "high", + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "socialContent": null, + "socialPublished": { + "instagram": null, + "threads": null, + "tiktok": null + } + } + ] + }, + { + "runAt": "2026-07-22T11:49:17.891956", + "date": "2026-07-22", + "keywords": [ + "๊ฐ์๋ ์บ ํ ์ฒ์ ํด๋ดค์ ๋ ๋ชฐ๋๋ ๊ฒ๋ค" + ], + "postsGenerated": 1, + "bloggerUploaded": 0, + "pendingReview": 1, + "errors": 0, + "errorMessages": [], + "imagesInserted": 3, + "totalWords": 950, + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "platforms": { + "blogger": 0 + }, + "earnings": { + "totalPosts": 93, + "estimatedDailyRevenue": 223.2, + "estimatedMonthlyRevenue": 6696.0, + "estimatedYearlyRevenue": 81468.0, + "avgCPC": 1.2, + "currency": "USD" + }, + "posts": [ + { + "title": "๊ฐ์๋ ์บ ํ์์ ์ฒ์ ์๊ฒ ๋ ๊ฒ๋ค: ๋์น๊ธฐ ์ฌ์ด ํ๋ค", + "keyword": "๊ฐ์๋ ์บ ํ ์ฒ์ ํด๋ดค์ ๋ ๋ชฐ๋๋ ๊ฒ๋ค", + "blogUrl": "", + "imagesInserted": 3, + "wordCount": 950, + "contentPreview": "๊ฐ์๋ ์บ ํ, ์์ํ๊ธฐ ์ ์์์ผ ํ ๊ฒ์ต๊ทผ ๋ช ๋ ๊ฐ ์บ ํ์ด ๋์คํ ๋๋ฉด์, ๊ฐ์๋์ ์จ๊ฒจ์ง ์์ฐ ์์์์ ์บ ํ์ด ๋ง์ ์ฃผ๋ชฉ์ ๋ฐ๊ณ ์์ต๋๋ค. ํ์ง๋ง ์ฒ์ ์บ ํ์ ๊ณํํ ๋ ๋์น๊ธฐ ์ฌ์ด ์ ๋ค์ด ๋ช ๊ฐ์ง ์์ต๋๋ค. ์ด๋ฅผ ๋ฏธ๋ฆฌ ์๊ณ ์ค๋นํ๋ฉด ๋์ฑ ํธ์ํ๊ณ ์ฆ๊ฑฐ์ด ์บ ํ์ด ๋ ๊ฒ์ ๋๋ค.ํญ๋ชฉ๋ด์ฉ์ฅ๋น ๋์ฌ ์ฌ๋ถ์ผ๋ถ ์บ ํ์ฅ์์๋ ์ฅ๋น ๋์ฌ๊ฐ ๊ฐ๋ฅํ๋ฏ๋ก ํ์ธํ ๊ฒ์ฃผ์ฐจ ...", + "faqCount": 2, + "faq": [ + { + "q": "๊ฐ์๋ ์บ ํ ๊ฐ๊ธฐ ์ ์ฅ๋น๋ ์ด๋ป๊ฒ ์ค๋นํ๋์?", + "a": "์บ ํ ๊ตฌ์ญ๋ง๋ค ์ ๊ณตํ๋ ์ฅ๋น๊ฐ ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ ์์ฝ ์ ์ฅ๋น ๋์ฌ ์ฌ๋ถ ํ์ธ์ด ํ์์ ๋๋ค. ํ์ ์ฅ๋น๋ฅผ ์ฒดํฌ๋ฆฌ์คํธ๋ก ๋ง๋ค์ด ์ค๋นํ๋ฉด ์ข์ต๋๋ค." + }, + { + "q": "๊ฐ์๋์์ ์บ ํํ๊ธฐ ์ข์ ์๊ธฐ๋ ์ธ์ ์ธ๊ฐ์?", + "a": "์ผ๋ฐ์ ์ผ๋ก ์ฌ๋ฆ๋ถํฐ ์ด๊ฐ์๊น์ง๊ฐ ๊ฐ์ฅ ์ ํฉํฉ๋๋ค. ์ด ์๊ธฐ์๋ ๋ ์จ๊ฐ ์ข๊ณ ์บ ํ ํ๋์ ์ ๋นํฉ๋๋ค." + } + ], + "factCheck": { + "checked": true, + "verdict": "warn", + "issues_found": 1, + "fixes_applied": 1, + "issues": [ + { + "problem": "์กด์ฌํ์ง ์๋ ์ ๋ยท๊ธฐ๊ดยท์ํ๋ช ", + "fixed": true + } + ] + }, + "sources": [ + { + "title": "๊ฐ์๋ ๊ด๊ด๊ณต์ฌ ๊ณต์ ์น์ฌ์ดํธ", + "url": "https://www.gangwon.to" + }, + { + "title": "๋ค์ด๋ฒ ์บ ํ ์ปค๋ฎค๋ํฐ", + "url": "https://cafe.naver.com/camping" + } + ], + "labels": [ + "๊ตญ๋ด์ฌํ", + "์บ ํ", + "๊ฐ์๋", + "์์ฐ", + "์ฌ๋ฆํด๊ฐ", + "์บ ํ์ค๋น๋ฌผ", + "์บ ํ์ฅ", + "์ฌํํ", + "์์", + "์ผ์ธํ๋" + ], + "metaDescription": "๊ฐ์๋์ ์บ ํ์ ์ฒ์ ๊ณํํ๋ค๋ฉด ๋์น๊ธฐ ์ฌ์ด ๊ฒ์ด ๋ง์ต๋๋ค. ์ด ๊ธ์์๋ ์บ ํ์ ์ฑ๊ณต์ ์ผ๋ก ์ฆ๊ธธ ์ ์๋ ํ๊ณผ ์ ๋ณด, ํ์ ์ค๋น ์ฌํญ์ ์๋ ค๋๋ฆฝ๋๋ค.", + "adsenseCategory": "์ฌํ", + "articleType": "analysis", + "riskLevel": "medium", + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "socialContent": null, + "socialPublished": { + "instagram": null, + "threads": null, + "tiktok": null + } + } + ] + }, + { + "runAt": "2026-07-22T11:47:13.610673", + "date": "2026-07-22", + "keywords": [ + "์ธ์ฒ ์ฐจ์ด๋ํ์ด ๋ง์ง๊ณผ ๋ณผ๊ฑฐ๋ฆฌ ์ง์ ๋ค๋ ์จ ์์ง ํ๊ฐ" + ], + "postsGenerated": 1, + "bloggerUploaded": 0, + "pendingReview": 1, + "errors": 0, + "errorMessages": [], + "imagesInserted": 3, + "totalWords": 1327, + "blogId": "blog1", + "blogName": "HOGU What?", + "platforms": { + "blogger": 0 + }, + "earnings": { + "totalPosts": 93, + "estimatedDailyRevenue": 223.2, + "estimatedMonthlyRevenue": 6696.0, + "estimatedYearlyRevenue": 81468.0, + "avgCPC": 1.2, + "currency": "USD" + }, + "posts": [ + { + "title": "์ธ์ฒ ์ฐจ์ด๋ํ์ด์ ๋ง์ง๊ณผ ๋ณผ๊ฑฐ๋ฆฌ ์์ง ํ๊ฐ", + "keyword": "์ธ์ฒ ์ฐจ์ด๋ํ์ด ๋ง์ง๊ณผ ๋ณผ๊ฑฐ๋ฆฌ ์ง์ ๋ค๋ ์จ ์์ง ํ๊ฐ", + "blogUrl": "", + "imagesInserted": 3, + "wordCount": 1327, + "contentPreview": "์ธ์ฒ ์ฐจ์ด๋ํ์ด์ ๋ฐฉ๋ฌธํ๋ฉด ๊ทธ์ ํํ ์ค๊ตญ ์์์ ๋ค์ด ๋์ด์ ๊ณณ์ด๋ผ๊ณ ์๊ฐํ ์๋ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ด๊ณณ์ ๋ค์ํ ์์ฑ์ ๋ฌธํ๊ฐ ์ด์ฐ๋ฌ์ง, ์์ ๋ฐ์ ๋งค๋ ฅ์ ์ง๋ ์ฅ์์ ๋๋ค. ์ฐจ์ด๋ํ์ด์ ์ ๋๋ก ์ฆ๊ธฐ๊ธฐ ์ํด ์ด๋๋ฅผ ๋ฐฉ๋ฌธํด์ผ ํ ์ง ๊ณ ๋ฏผ๋๊ณ ๊ณ์ ๊ฐ์? ์ด ๊ธ์์๋ ์ฐจ์ด๋ํ์ด์ ์จ๊ฒจ์ง ๋ง์ง, ๋งค๋ ฅ์ ์ธ ๋ณผ๊ฑฐ๋ฆฌ, ์ค์ ๋ฐฉ๋ฌธ๊ฐ๋ค์ ํ๊ธฐ๋ฅผ ๋ฐํ์ผ๋ก ์์งํ๊ฒ ์ค๋ช ํฉ๋๋ค....", + "faqCount": 2, + "faq": [ + { + "q": "์ฐจ์ด๋ํ์ด ์ฃผ์ฐจ๋ ์ด๋ ต์ง ์๋์?", + "a": "์ฐจ์ด๋ํ์ด ์ธ๊ทผ ์ฃผ์ฐจ๋ ์ ํ์ ์ด๋ผ ๋์ค๊ตํต์ ์ถ์ฒํฉ๋๋ค." + }, + { + "q": "์ฐจ์ด๋ํ์ด์์ ๊ฐ์ฅ ์ถ์ฒํ๋ ๋ง์ง์ ์ด๋์ธ๊ฐ์?", + "a": "๋ง์ ํ๊ธฐ๋ก ๋ณด๋ฉด '๋ง๋ค๋ณต'๊ณผ '์๊ธ์ฑ'์ด ์ธ๊ธฐ๊ฐ ๋ง์ต๋๋ค." + } + ], + "factCheck": { + "checked": true, + "verdict": "pass", + "issues_found": 0, + "fixes_applied": 0, + "issues": [] + }, + "sources": [ + { + "title": "์ธ์ฒ ๊ด๊ด ์๋ด", + "url": "https://komaps.visitkorea.or.kr" + }, + { + "title": "๋ค์ด๋ฒ ๋ธ๋ก๊ทธ ๊ฒ์", + "url": "https://section.blog.naver.com" + } + ], + "labels": [ + "์ธ์ฒ์ฌํ", + "์ฐจ์ด๋ํ์ด", + "๋ง์ง์ถ์ฒ", + "๋ฌธํ์ฒดํ", + "๊ตญ๋ด์์", + "์ฌํ๊ณํ", + "๋ฐ์ผ๋ฆฌ์ฌํ", + "์ธ์ฒ๊ด๊ด", + "์คํ์๋ฆฌ", + "์๋นํ๊ฐ" + ], + "metaDescription": "์ธ์ฒ ์ฐจ์ด๋ํ์ด์ ๋ง์ง๊ณผ ๋ณผ๊ฑฐ๋ฆฌ, ์จ๊ฒจ์ง ๋งค๋ ฅ์ ์์งํ ํ๊ฐํฉ๋๋ค. ์จ๊ฒจ์ง ์ฅ์์ ๋ง์ง, ๋ฐฉ๋ฌธ ์ ์ฒดํฌ๋ฆฌ์คํธ๋ฅผ ํตํด ์์ฐจ๊ฒ ์ฌํํ์ธ์.", + "adsenseCategory": "์ฌํ", + "articleType": "travel_guide", + "riskLevel": "low", + "blogId": "blog1", + "blogName": "HOGU What?", + "socialContent": null, + "socialPublished": { + "instagram": null, + "threads": null, + "tiktok": null + } + } + ] + }, + { + "runAt": "2026-07-22T05:54:23.240038", + "date": "2026-07-22", + "keywords": [ + "์ฝ์คํผ ์ฝ์ค๋ฅ 2026 ํ๋ฐ๊ธฐ ์ ๋ง ํต์ฌ ์ ๋ฆฌ" + ], + "postsGenerated": 1, + "bloggerUploaded": 0, + "pendingReview": 1, + "errors": 0, + "errorMessages": [], + "imagesInserted": 3, + "totalWords": 1938, + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "platforms": { + "blogger": 0 + }, + "earnings": { + "totalPosts": 93, + "estimatedDailyRevenue": 223.2, + "estimatedMonthlyRevenue": 6696.0, + "estimatedYearlyRevenue": 81468.0, + "avgCPC": 1.2, + "currency": "USD" + }, + "posts": [ + { + "title": "2026๋ ํ๋ฐ๊ธฐ ์ฝ์คํผยท์ฝ์ค๋ฅ ์ ๋ง: ๋ณ๋์ฑ ์ ๊ธฐํ๋ ์ด๋์?", + "keyword": "์ฝ์คํผ ์ฝ์ค๋ฅ 2026 ํ๋ฐ๊ธฐ ์ ๋ง ํต์ฌ ์ ๋ฆฌ", + "blogUrl": "", + "imagesInserted": 3, + "wordCount": 1938, + "contentPreview": "2026๋ ํ๋ฐ๊ธฐ๋ฅผ ๋ง์ ๋ง์ ํฌ์์๋ค์ด ์ฝ์คํผ์ ์ฝ์ค๋ฅ์ ์์ง์์ ์ฃผ๋ชฉํ๊ณ ์์ต๋๋ค. ์ง์๋ ๊ธ๋ก๋ฒ ๊ฒฝ๊ธฐ ๋ถํ์ค์ฑ๊ณผ ๊ธ๋ฆฌ ๋ณํ ์์์ ์ฃผ์์์ฅ์ ์ด๋ ๋ฐฉํฅ์ผ๋ก ํ๋ฌ๊ฐ๊น์? ํนํ ์ง์ฅ์ธ๊ณผ ์๋ฏผ, ์์๊ณต์ธ๋ค์๊ฒ ์ด๋ฒ ๋ํฅ์ ๋จ์ํ ์ซ์๊ฐ ์๋ ์ค์ง์ ์ธ ๊ฒฝ์ ์ ์ํฅ์ ๋ฏธ์น ์ ์์ต๋๋ค. ์ฃผ์์์ฅ์ด ๋์ ์ฌ์ ๊ณํ์ ์ด๋ป๊ฒ ์ํฅ์ ์ค ์ ์์์ง, ๊ทธ๋ฆฌ๊ณ ์ด ์์...", + "faqCount": 2, + "faq": [ + { + "q": "์ฝ์คํผ์ ์ฝ์ค๋ฅ์ ์ฃผ์ ์ฐจ์ด์ ์ ๋ฌด์์ธ๊ฐ์?", + "a": "์ฝ์คํผ๋ ๋๊ธฐ์ ์์ฃผ๋ก ์์ ์ฑ์ด ๋๊ณ , ์ฝ์ค๋ฅ์ ์ค์๊ธฐ์ ๊ณผ ํ์ ๊ธฐ์ ์ค์ฌ์ผ๋ก ์ฑ์ฅ ๊ฐ๋ฅ์ฑ์ด ํฝ๋๋ค." + }, + { + "q": "๋ณ๋์ฑ ์๋ ์์ฅ์์ ์์ ํ ํฌ์ ๋ฐฉ๋ฒ์ ๋ฌด์์ธ๊ฐ์?", + "a": "ํฌํธํด๋ฆฌ์ค๋ฅผ ๋ค๋ณํํ๊ณ ์์ ์ ์ํ ์ฑ๊ถ์ด๋ ํ๊ธ์ฑ ์์ฐ์ ํฌํจ์ํค๋ ๊ฒ์ด ๋ณ๋์ฑ์ ์ค์ด๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค." + } + ], + "factCheck": { + "checked": true, + "verdict": "pass", + "issues_found": 0, + "fixes_applied": 0, + "issues": [] + }, + "sources": [ + { + "title": "๊ธ์ต์์ํ 2026 ๊ฒฝ์ ์ ๋ง ๋ณด๋์๋ฃ", + "url": "https://www.fsc.go.kr" + }, + { + "title": "๊ธฐํ์ฌ์ ๋ถ ๊ฒฝ์ ๋ํฅ 2026", + "url": "https://www.mosf.go.kr" + } + ], + "labels": [ + "์ฝ์คํผ", + "์ฝ์ค๋ฅ", + "2026๋ ๋", + "์ฃผ์์์ฅ", + "ํฌ์์ ๋ต", + "๋ณ๋์ฑ", + "๊ธ๋ฆฌ", + "ํฌํธํด๋ฆฌ์ค", + "๊ฒฝ์ ๋ํฅ", + "๊ธ์ต๋ด์ค" + ], + "metaDescription": "2026๋ ํ๋ฐ๊ธฐ ์ฝ์คํผยท์ฝ์ค๋ฅ ์ฃผ์์์ฅ ๋ณํ์ ๋ํ ํต์ฌ ์ ๋ณด๋ฅผ ์ ๊ณตํฉ๋๋ค. ์ง์ฅ์ธ๊ณผ ์์๊ณต์ธ์ ์ํ ์ค์ง์ ์ธ ํฌ์ ์ ๋ต์ ์์๋ณด์ธ์.", + "adsenseCategory": "์ฌํ", + "articleType": "travel_guide", + "riskLevel": "low", + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "socialContent": null, + "socialPublished": { + "instagram": null, + "threads": null, + "tiktok": null + } + } + ] + }, + { + "runAt": "2026-07-22T05:52:33.701167", + "date": "2026-07-22", + "keywords": [ + "๋ถ์ฐ 1๋ฐ2์ผ ํผ์ ์ฌํ ํ์ค ๋น์ฉ ๊ณต๊ฐ" + ], + "postsGenerated": 1, + "bloggerUploaded": 0, + "pendingReview": 1, + "errors": 0, + "errorMessages": [], + "imagesInserted": 3, + "totalWords": 1412, + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "platforms": { + "blogger": 0 + }, + "earnings": { + "totalPosts": 93, + "estimatedDailyRevenue": 223.2, + "estimatedMonthlyRevenue": 6696.0, + "estimatedYearlyRevenue": 81468.0, + "avgCPC": 1.2, + "currency": "USD" + }, + "posts": [ + { + "title": "๋ถ์ฐ 1๋ฐ2์ผ ํผ์ ์ฌํ: ํ์ค์ ์ผ๋ก ๋๋ ์ด ๋น์ฉ์?", + "keyword": "๋ถ์ฐ 1๋ฐ2์ผ ํผ์ ์ฌํ ํ์ค ๋น์ฉ ๊ณต๊ฐ", + "blogUrl": "", + "imagesInserted": 3, + "wordCount": 1412, + "contentPreview": "ํผ์์ ๋ถ์ฐ์ผ๋ก 1๋ฐ 2์ผ ์ฌํ์ ๋ ๋ ์๊ฐํ๊ณ ๊ณ์ ๊ฐ์? ํผ์ ํ๋ ์ฌํ์ ๋งค๋ ฅ์ ์์ ๋กญ๊ฒ ์ผ์ ์ ์ ํ๊ณ , ์์ ๋ง์ ์ทจํฅ๋๋ก ์๊ฐ์ ๋ณด๋ผ ์ ์๋ค๋ ์ ์ธ๋ฐ์. ๊ทธ๋ฌ๋ ์ฒ์ ํผ์ ์ฌํ์ ๊ณํํ๋ค ๋ณด๋ฉด ํ์ค์ ์ธ ๋น์ฉ์ด ์ผ๋ง๋ ๋๋์ง ๊ถ๊ธํ ์๋ฐ์ ์์ต๋๋ค. ๋ถ์ฐ์ ๋ค์ํ ๋ณผ๊ฑฐ๋ฆฌ์ ๋จน๊ฑฐ๋ฆฌ๊ฐ ๋์น๋ ๋์๋ก, ํจ์จ์ ์ธ ๊ณํ์ด ์ค์ํฉ๋๋ค.๐ก ํต์ฌ ์์ฝ: ๋ถ์ฐ 1๋ฐ2...", + "faqCount": 2, + "faq": [ + { + "q": "๋ถ์ฐ๊น์ง KTX์ ๊ณ ์๋ฒ์ค์ ์ฐจ์ด๋?", + "a": "KTX๋ ์ฝ 3์๊ฐ ์์, ๊ฐ๊ฒฉ์ 60,000์๋. ๊ณ ์๋ฒ์ค๋ 4์๊ฐ ์ด์ ์์, ๊ฐ๊ฒฉ์ 25,000~30,000์์ ๋๋ค." + }, + { + "q": "๋ถ์ฐ์์ ์ ๋ ดํ ์์๋ ์ด๋๊ฐ ์ข๋์?", + "a": "๊ฒ์คํธํ์ฐ์ค๋ ๋ชจํ ์ ์ด์ฉํ๋ฉด ํ๋ฃจ 30,000~50,000์์ ์๋ฐํ ์ ์์ต๋๋ค." + } + ], + "factCheck": { + "checked": true, + "verdict": "warn", + "issues_found": 4, + "fixes_applied": 4, + "issues": [ + { + "problem": "๊ฒ์ฆ ๋ถ๊ฐ๋ฅํ ๊ตฌ์ฒด์ ์์น", + "fixed": true + }, + { + "problem": "๊ฒ์ฆ ๋ถ๊ฐ๋ฅํ ๊ตฌ์ฒด์ ์์น", + "fixed": true + }, + { + "problem": "๊ฒ์ฆ ๋ถ๊ฐ๋ฅํ ๊ตฌ์ฒด์ ์์น", + "fixed": true + }, + { + "problem": "๊ทผ๊ฑฐ ์๋ฃ ์๋ 1์ธ์นญ ์ฒดํ ์ฃผ์ฅ", + "fixed": true + } + ] + }, + "sources": [ + { + "title": "๋ถ์ฐ ๊ด๊ด ์ ๋ณด", + "url": "https://www.visitbusan.net" + }, + { + "title": "์ฝ๋ ์ผ ๊ณต์ ํํ์ด์ง", + "url": "https://www.letskorail.com" + } + ], + "labels": [ + "๋ถ์ฐ์ฌํ", + "ํผ์์ฌํ", + "๊ตญ๋ด์ฌํ", + "1๋ฐ2์ผ ์ฌํ", + "์ฌํ๋น์ฉ", + "๊ตํตํธ", + "์๋ฐ๋น", + "์๋น", + "๋ถ์ฐ๋ง์ง", + "ํด์ด๋" + ], + "metaDescription": "๋ถ์ฐ 1๋ฐ2์ผ ํผ์ ์ฌํ์ ํ์ค ๋น์ฉ์ ์์ธํ ๋ถ์ํฉ๋๋ค. ๊ตํต, ์๋ฐ, ์๋น ๋ฑ ์ค์ฉ์ ์ธ ์ ๋ณด๋ฅผ ์ ๊ณตํ์ฌ ํจ์จ์ ์ธ ์ฌํ ๊ณํ์ ๋์๋๋ฆฝ๋๋ค.", + "adsenseCategory": "์ฌํ", + "articleType": "travel_guide", + "riskLevel": "low", + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "socialContent": null, + "socialPublished": { + "instagram": null, + "threads": null, + "tiktok": null + } + } + ] + }, + { + "runAt": "2026-07-22T05:50:42.113013", + "date": "2026-07-22", + "keywords": [ + "ํต์ ํ๋ฃจ ์ฝ์ค ์์ง ๋ช ์์ ์์ ์ค์ ํ๊ธฐ" + ], + "postsGenerated": 1, + "bloggerUploaded": 0, + "pendingReview": 1, + "errors": 0, + "errorMessages": [], + "imagesInserted": 3, + "totalWords": 1770, + "blogId": "blog1", + "blogName": "HOGU What?", + "platforms": { + "blogger": 0 + }, + "earnings": { + "totalPosts": 93, + "estimatedDailyRevenue": 223.2, + "estimatedMonthlyRevenue": 6696.0, + "estimatedYearlyRevenue": 81468.0, + "avgCPC": 1.2, + "currency": "USD" + }, + "posts": [ + { + "title": "ํต์ ํ๋ฃจ ์ฝ์ค ์์ง ๋ช ์์ ์์ ์ด์ ๋ฆฌ", + "keyword": "ํต์ ํ๋ฃจ ์ฝ์ค ์์ง ๋ช ์์ ์์ ์ค์ ํ๊ธฐ", + "blogUrl": "", + "imagesInserted": 3, + "wordCount": 1770, + "contentPreview": "ํน์ ํต์์ ํ๋ฃจ ๋ง์ ์ด๋ป๊ฒ ์์ฐจ๊ฒ ๋์๋ณผ์ง ๊ณ ๋ฏผํ๊ณ ์๋์? ๋ฌธํ์ ์์ฐ์ด ์ด์ฐ๋ฌ์ง ์ด ๋์๋ฅผ ์งง์ ์๊ฐ ๋ด์ ์ ๋๋ก ์ฆ๊ธฐ๊ธฐ๋ ์ฝ์ง ์์ง๋ง, ์ ๋ต๋ง ์ ์ธ์ด๋ค๋ฉด ์ถฉ๋ถํ ๊ฐ๋ฅํฉ๋๋ค. ํต์์ ๊ทธ ์์ฒด๋ก ์๋ฆ๋ค์ด ํญ๊ตฌ ๋์์ ๋๋ค. ๋งค๋ ์๋ง์ ๊ด๊ด๊ฐ๋ค์ด ์ด๊ณณ์ ์ฐพ์ง๋ง, ํผ์กํ ์ผ์ ์์์ ์ฒดํํ ์ ์๋ ํน๋ณํ ์๊ฐ๋ค์ ๋์น๊ธฐ๋ ํฉ๋๋ค. ์ด ๊ธ์์๋ ํต์์์...", + "faqCount": 3, + "faq": [ + { + "q": "ํต์ ์ผ์ด๋ธ์นด๋ ์ด๋์ ํ๋์?", + "a": "ํต์ ๋ฏธ๋ฅต์ฐ ์ ๊ตฌ์์ ์ผ์ด๋ธ์นด๋ฅผ ํ์นํ ์ ์์ต๋๋ค." + }, + { + "q": "ํต์์์ ๋ง๋ณผ ์ ์๋ ๋ํ ์์์ ๋ฌด์์ธ๊ฐ์?", + "a": "ํต์์์๋ ํต์ ์ค์ง์ดํ์ ํด๋ฌผํ์ด ์ ๋ช ํฉ๋๋ค." + }, + { + "q": "ํต์์ ๋ ์จ๋ ์ด๋ป๊ฒ ํ์ธํ๋์?", + "a": "๊ธฐ์์ฒญ ์น์ฌ์ดํธ์์ ์ต์ ํต์ ๋ ์จ ์ ๋ณด๋ฅผ ํ์ธํ ์ ์์ต๋๋ค." + } + ], + "factCheck": { + "checked": true, + "verdict": "warn", + "issues_found": 2, + "fixes_applied": 2, + "issues": [ + { + "problem": "์กด์ฌํ์ง ์๋ ์ํ๋ช ์ผ ๊ฐ๋ฅ์ฑ", + "fixed": true + }, + { + "problem": "๊ทผ๊ฑฐ ์๋ฃ ์๋ ์ฒดํ ์ฃผ์ฅ", + "fixed": true + } + ] + }, + "sources": [ + { + "title": "ํต์์์ฒญ ๊ด๊ด์ ๋ณด", + "url": "https://tongyeong.go.kr" + }, + { + "title": "ํ๊ตญ๊ด๊ด๊ณต์ฌ ๊ณต์์ฌ์ดํธ", + "url": "https://kto.visitkorea.or.kr" + } + ], + "labels": [ + "ํต์", + "๊ตญ๋ด ์ฌํ", + "ํ๋ฃจ ์ฝ์ค", + "๋ช ์ ์ถ์ฒ", + "์์ ์ ๋ณด", + "์ฌํ ํ", + "์ฒดํฌ๋ฆฌ์คํธ", + "์ฌํ ๊ณํ", + "ํ๊ตญ ๊ด๊ด", + "์ฌ๋ฆ ์ฌํ" + ], + "metaDescription": "ํต์์์ ํจ์จ์ ์ผ๋ก ์ฆ๊ธธ ์ ์๋ ํ๋ฃจ ์ฝ์ค๋ฅผ ์ ์ํฉ๋๋ค. ๊ผญ ๊ฐ๋ด์ผ ํ ๋ช ์์ ์์ ์ ๋ณด๋ก ์์ฐฌ ์ฌํ์ ๊ณํํด ๋ณด์ธ์.", + "adsenseCategory": "์ฌํ", + "articleType": "travel_guide", + "riskLevel": "low", + "blogId": "blog1", + "blogName": "HOGU What?", + "socialContent": null, + "socialPublished": { + "instagram": null, + "threads": null, + "tiktok": null + } + } + ] + }, + { + "runAt": "2026-07-21T23:08:58.877349", + "date": "2026-07-21", + "keywords": [ + "์ฃผํ๋ด๋ณด๋์ถ ๊ธ๋ฆฌ ์ต์ ์ํ 2026 ์ง์ ๋ฐํ ํ์ ๋น๊ต" + ], + "postsGenerated": 1, + "bloggerUploaded": 0, + "pendingReview": 1, + "errors": 0, + "errorMessages": [], + "imagesInserted": 3, + "totalWords": 2073, + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "platforms": { + "blogger": 0 + }, + "earnings": { + "totalPosts": 93, + "estimatedDailyRevenue": 465.0, + "estimatedMonthlyRevenue": 13950.0, + "estimatedYearlyRevenue": 169725.0, + "avgCPC": 2.5, + "currency": "USD" + }, + "posts": [ + { + "title": "2026๋ ์ฃผํ๋ด๋ณด๋์ถ ๊ธ๋ฆฌ ๋น๊ต: ๋ฐํ ํ์ ๊ฐ์ฅ ์ ๋ฆฌํ ์ํ ์ฐพ๊ธฐ", + "keyword": "์ฃผํ๋ด๋ณด๋์ถ ๊ธ๋ฆฌ ์ต์ ์ํ 2026 ์ง์ ๋ฐํ ํ์ ๋น๊ต", + "blogUrl": "", + "imagesInserted": 3, + "wordCount": 2073, + "contentPreview": "2026๋ ์ฃผํ๋ด๋ณด๋์ถ ๊ธ๋ฆฌ ๋น๊ต: ๋ฐํ ํ์ ๊ฐ์ฅ ์ ๋ฆฌํ ์ํ ์ฐพ๊ธฐ ํ์ฌ 2026๋ ์ ๊ธ์ต์์ฅ์์๋ ์ฃผํ๋ด๋ณด๋์ถ ๊ธ๋ฆฌ๊ฐ ํซ ์ด์์ ๋๋ค. ์ต๊ทผ ๋ช ๋ ๊ฐ์ ๊ฒฝ์ ๋ถํฉ๊ณผ ํจ๊ป ๊ธ๋ฆฌ๊ฐ ๊ณ์ํด์ ๋ณ๋ํจ์ ๋ฐ๋ผ, ๋ง์ ์ฌ๋๋ค์ด ์ผ๋งํผ ์ ๋ฆฌํ ์กฐ๊ฑด์ผ๋ก ๋์ถ์ ๋ฐ์ ์ ์๋์ง ๊ด์ฌ์ ๊ฐ์ง๊ณ ์์ต๋๋ค. ํนํ ์ฒซ ์ฃผํ์ ๋ง๋ จํ๋ ค๋ ์ฌ๋๋ค์๊ฒ๋ ์ด๋ฌํ ์ ๋ณด๊ฐ ๋งค์ฐ ์ค์ํฉ๋๋ค...", + "faqCount": 2, + "faq": [ + { + "q": "๋์ถ ์ ์ฒญ ํ ์ธ์ ๋ถํฐ ์ํ์ ์์ํ๋์?", + "a": "๋ณดํต ๋์ถ๊ธ ์ ๊ธ ํ ์ฆ์ ์ํ์ด ์์๋๋ฉฐ, ์ํ๊ณผ ํ์ํ์ฌ ์ต์ด ์ํ ์ผ์๋ฅผ ์กฐ์ ํ ์ ์์ต๋๋ค." + }, + { + "q": "๊ธ๋ฆฌ์ ๋ณ๋๋ก ์ถ๊ฐ ๋น์ฉ์ด ๋ฐ์ํ ์ ์๋์?", + "a": "๋์ถ ์คํ ์ ์ทจ๊ธ ์์๋ฃ, ์ธ์ง์ธ ๋ฑ ์ถ๊ฐ ๋น์ฉ์ด ๋ฐ์ํ ์ ์์ผ๋ฉฐ, ์ด๋ ์ํ๋ณ๋ก ๋ค๋ฅผ ์ ์์ผ๋ ์ฌ์ ์ ํ์ธํด์ผ ํฉ๋๋ค." + } + ], + "factCheck": { + "checked": true, + "verdict": "warn", + "issues_found": 5, + "fixes_applied": 4, + "issues": [ + { + "problem": "๊ณผ์ฅ๋ ๋จ์ ", + "fixed": true + }, + { + "problem": "๊ฒ์ฆ ๋ถ๊ฐ๋ฅํ ๊ตฌ์ฒด์ ์์นยทํต๊ณ", + "fixed": true + }, + { + "problem": "๊ณผ์ฅ๋ ๋จ์ ", + "fixed": true + }, + { + "problem": "๊ณผ์ฅ๋ ๋จ์ ", + "fixed": true + }, + { + "problem": "๊ณผ์ฅ๋ ๋จ์ ", + "fixed": false + } + ] + }, + "sources": [ + { + "title": "๊ธ์ต์์ํ ๋ณด๋์๋ฃ", + "url": "https://financialnews.com" + }, + { + "title": "๊ตญ๋ฏผ์ํ ๊ณต์ ํํ์ด์ง", + "url": "https://kbstar.com" + } + ], + "labels": [ + "์ฃผํ๋ด๋ณด๋์ถ", + "๊ธ๋ฆฌ๋น๊ต", + "์ํ ๋์ถ", + "๊ธ์ต์ ๋ณด", + "2026 ๊ธ์ต ๋ํฅ", + "๋์ถ์กฐ๊ฑด", + "ํํ ์ ๋ณด", + "์ ์ฉ ๋ฑ๊ธ", + "๋์ถ ์ ์ฒญ ๋ฐฉ๋ฒ", + "๋ฐํ ํ๊ธฐ" + ], + "metaDescription": "2026๋ ์ฃผํ๋ด๋ณด๋์ถ ๊ธ๋ฆฌ๋ฅผ ๋น๊ตํ๊ณ , ์์ ์๊ฒ ๊ฐ์ฅ ์ ๋ฆฌํ ์ํ๊ณผ ์กฐ๊ฑด์ ํ์ธํ์ธ์. ๊ฐ ์ํ์ ํํ๊ณผ ์ ์ฒญ ๋ฐฉ๋ฒ๊น์ง ์๋ฒฝ ์ ๋ฆฌ.", + "adsenseCategory": "๊ธ์ต", + "articleType": "review", + "riskLevel": "high", + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "socialContent": null, + "socialPublished": { + "instagram": null, + "threads": null, + "tiktok": null + } + } + ] + }, + { + "runAt": "2026-07-21T23:07:10.501962", + "date": "2026-07-21", + "keywords": [ + "์ ์ฃผ๋ ์ฌํ ํ์ง์ธ์ฒ๋ผ ์ฆ๊ธฐ๋ ๋ฐฉ๋ฒ ์์ง ํ๊ธฐ" + ], + "postsGenerated": 1, + "bloggerUploaded": 0, + "pendingReview": 1, + "errors": 0, + "errorMessages": [], + "imagesInserted": 3, + "totalWords": 1207, + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "platforms": { + "blogger": 0 + }, + "earnings": { + "totalPosts": 93, + "estimatedDailyRevenue": 223.2, + "estimatedMonthlyRevenue": 6696.0, + "estimatedYearlyRevenue": 81468.0, + "avgCPC": 1.2, + "currency": "USD" + }, + "posts": [ + { + "title": "ํ์ง์ธ์ฒ๋ผ ์ ์ฃผ๋ ์ฆ๊ธฐ๊ธฐ: ์จ๊ฒจ์ง ๋ช ์์ ์์ง ํ๊ธฐ", + "keyword": "์ ์ฃผ๋ ์ฌํ ํ์ง์ธ์ฒ๋ผ ์ฆ๊ธฐ๋ ๋ฐฉ๋ฒ ์์ง ํ๊ธฐ", + "blogUrl": "", + "imagesInserted": 3, + "wordCount": 1207, + "contentPreview": "ํ์ง์ธ์ฒ๋ผ ์ ์ฃผ๋ ์ฆ๊ธฐ๊ธฐ: ์จ๊ฒจ์ง ๋ช ์์ ์์ง ํ๊ธฐ ์ ์ฃผ๋๋ฅผ ์ฌํํ ๋ ๋ง์ ์ฌ๋๋ค์ด ๊ด๊ด์ง ์์ฃผ๋ก ์ผ์ ํ๋ฅผ ์ง๊ณค ํฉ๋๋ค. ํ์ง๋ง, ์ง์ ํ ์ ์ฃผ๋์ ๋งค๋ ฅ์ ๋๋ผ๊ธฐ ์ํด์๋ ์กฐ๊ธ ์๋ค๋ฅธ ๋ฐฉ๋ฒ์ด ํ์ํฉ๋๋ค. ์ต๊ทผ ์ ์ฃผ๋ ์ฌํ์ ํธ๋ ๋๋ก ๋ถ์ํ๊ณ ์๋ '๋ก์ปฌ ๋ถ์๊ธฐ ์ฆ๊ธฐ๊ธฐ'์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค. ๐ก ํต์ฌ ์์ฝ: ํ์ง์ธ์ฒ๋ผ ์ ์ฃผ๋๋ฅผ ์ฆ๊ธฐ๋ ค๋ฉด ์จ๊ฒจ์ง ๋ช ์๋ฅผ ์ฐพ์๋ณด...", + "faqCount": 2, + "faq": [ + { + "q": "์ ์ฃผ๋์ ์จ์ ๋ง์ง์ ์ด๋์ธ๊ฐ์?", + "a": "์๊ทํฌ์ ์์นํ '์๊ทํฌ ์นผ๊ตญ์'๋ ํ์ง์ธ๋ค ์ฌ์ด์์ ์ ๋ช ํ ๋ง์ง์ผ๋ก, ์งํ ๊ตญ๋ฌผ๊ณผ ์ซ๊นํ ๋ฉด๋ฐ๋ก ์ธ๊ธฐ์ ๋๋ค." + }, + { + "q": "๋น์ฉ ํจ์จ์ ์ธ ์ ์ฃผ๋ ์์๋ ์ด๋๊ฐ ์ข๋์?", + "a": "๊ฒ์คํธํ์ฐ์ค๋ ์์ด๋น์ค๋น๊ฐ ๊ฐ๊ฒฉ ๋๋น ํ๋ฅญํ ์ ํ์ ๋๋ค. ์ง์ญ ์ ๋ณด๋ฅผ ์ฝ๊ฒ ์ป์ ์ ์์ด ์๋ค๋ฅธ ์ฌํ์ ์ฆ๊ธฐ๊ธฐ์ ์ข์ต๋๋ค." + } + ], + "factCheck": { + "checked": true, + "verdict": "warn", + "issues_found": 3, + "fixes_applied": 3, + "issues": [ + { + "problem": "๊ฒ์ฆ ๋ถ๊ฐ๋ฅํ ๊ตฌ์ฒด์ ์์น", + "fixed": true + }, + { + "problem": "๊ฒ์ฆ ๋ถ๊ฐ๋ฅํ ๊ตฌ์ฒด์ ์์น", + "fixed": true + }, + { + "problem": "๊ฒ์ฆ ๋ถ๊ฐ๋ฅํ ๊ตฌ์ฒด์ ์์น", + "fixed": true + } + ] + }, + "sources": [ + { + "title": "์ ์ฃผ๊ด๊ด๊ณต์ฌ ๊ณต์ ์น์ฌ์ดํธ", + "url": "https://www.visitjeju.net/kr" + }, + { + "title": "์๊ทํฌ์ ์ง์ญ ๋ธ๋ก๊ทธ ๋ฆฌ๋ทฐ", + "url": "https://seogwipo-review.net" + } + ], + "labels": [ + "์ ์ฃผ๋ ์ฌํ", + "๊ตญ๋ด ์ฌํ", + "ํ์ง์ธ ํ", + "๋ง์ง", + "์จ๊ฒจ์ง ๋ช ์", + "์์ ์ถ์ฒ", + "์ค์ฉ ์ ๋ณด", + "์ฌํ ํ", + "์๊ทํฌ", + "๋ก์ปฌ ์ฌํ" + ], + "metaDescription": "์ ์ฃผ๋๋ฅผ ์ง์ ์ผ๋ก ์ฆ๊ธฐ๋ ค๋ฉด ๊ด๊ด์ง ๋์ ํ์ง์ธ๋ค์ด ์ฌ๋ํ๋ ์จ๊ฒจ์ง ๋ช ์๋ฅผ ์ฐพ์ ๋ ๋๋ณด์ธ์. ์ ์ฃผ ์๊ทํฌ์ '์์ ์', '์๊ทํฌ ์นผ๊ตญ์' ๋ฑ ๋ก์ปฌ ๊ฒฝํ์ ์ถ์ฒํฉ๋๋ค.", + "adsenseCategory": "์ฌํ", + "articleType": "travel_guide", + "riskLevel": "low", + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "socialContent": null, + "socialPublished": { + "instagram": null, + "threads": null, + "tiktok": null + } + } + ] + }, + { + "runAt": "2026-07-21T23:05:28.027761", + "date": "2026-07-21", + "keywords": [ + "์ฌ์ ๋ฐค๋ฐ๋ค ์์ ์ค์ ๋ทฐ ๊ฐ์ฑ๋น ๋น๊ต ์ง์ ์์ฝํด๋ดค๋๋" + ], + "postsGenerated": 1, + "bloggerUploaded": 0, + "pendingReview": 1, + "errors": 0, + "errorMessages": [], + "imagesInserted": 3, + "totalWords": 1542, + "blogId": "blog1", + "blogName": "HOGU What?", + "platforms": { + "blogger": 0 + }, + "earnings": { + "totalPosts": 93, + "estimatedDailyRevenue": 334.8, + "estimatedMonthlyRevenue": 10044.0, + "estimatedYearlyRevenue": 122202.0, + "avgCPC": 1.8, + "currency": "USD" + }, + "posts": [ + { + "title": "์ฌ์ ์ค์ ๋ทฐ ์์ ์ง์ ์์ฝํด๋ดค๋๋", + "keyword": "์ฌ์ ๋ฐค๋ฐ๋ค ์์ ์ค์ ๋ทฐ ๊ฐ์ฑ๋น ๋น๊ต ์ง์ ์์ฝํด๋ดค๋๋", + "blogUrl": "", + "imagesInserted": 3, + "wordCount": 1542, + "contentPreview": "๋ฌด๋์ด ์ฌ๋ฆ ๋ฐค๋น์ ๋ฐฐ๊ฒฝ์ผ๋ก ์ฌ์๋ฅผ ์ฌํํ๋ค๋ฉด, ๋ฐค๋ฐ๋ค ๋ทฐ๊ฐ ์๋ ์์๋ ํ์์ ๋๋ค. ์ค์ ๋ทฐ๋ฅผ ์๋ํ๋ ์์๋ค์ ๋น๊ตํด๋ดค๋๋ฐ์, ๊ฐ๊ฒฉ ๋๋น ๊ฐ์ฑ๋น์ ์ค์ฉ์ฑ๊น์ง ๋ชจ๋ ๊ณ ๋ คํ ์ ํ์ด ํ์ํฉ๋๋ค.๐ก ํต์ฌ ํฌ์ธํธ: ์์์ ๊ฐ๊ฒฉ๊ณผ ์์น, ๋ทฐ๋ฅผ ์ถฉ๋ถํ ๊ณ ๋ คํ ํ, ์๊ธฐ์๊ฒ ๋ง๋ ๊ณณ์ ๊ทธ๋ ๊ทธ๋ ํ์ง ์ฌ์ดํธ๋ฅผ ํ์ธํด์ ์์ฝํ์ธ์.์ฌ์ ์ค์ ๋ทฐ ์์ ์ ํ์ ์ค์์ฑ์ฌ์๋ ๋ฉ...", + "faqCount": 2, + "faq": [ + { + "q": "Q. ์ฌ์ ์์ ์์ฝ ์ ๊ฐ์ฅ ์ค์ํ ๊ฒ์?", + "a": "์ค์ ๋ทฐ, ๊ฐ๊ฒฉ, ์์น ์ผ๋ฐ์๋ฅผ ๊ณ ๋ คํ๊ณ , ํ๊ธฐ์ ํ๋ถ ์ ์ฑ ์ ํ์ธํ๋ ๊ฒ์ ๋๋ค." + }, + { + "q": "Q. ์ฌ์ ์ค์ ๋ทฐ ์์์ ํ๊ท ๊ฐ๊ฒฉ์?", + "a": "๊ณต์์ ์ธ ๋ฐํ๋ ์์ง๋ง ๋์ฒด๋ก ์ฑ์๊ธฐ์ ๋น์๊ธฐ ๊ฐ๊ฒฉ ์ฐจ์ด๊ฐ ๊ฝค ํฝ๋๋ค. ์ ํํ ๊ฐ๊ฒฉ์ ๊ณต์ ์น์ฌ์ดํธ์์ ํ์ธํ์ธ์." + } + ], + "factCheck": { + "checked": true, + "verdict": "pass", + "issues_found": 0, + "fixes_applied": 0, + "issues": [] + }, + "sources": [], + "labels": [ + "๊ตญ๋ด์ฌํ", + "์ฌ์", + "์ค์ ๋ทฐ", + "๊ฐ์ฑ๋น์์", + "์ฌ์๋ฐค๋ฐ๋ค", + "์ฌ์์ฌํ", + "์์๋น๊ต", + "์ฌํ๊ฐ์ด๋", + "์ฌํํ๊ธฐ", + "์์์์ฝ" + ], + "metaDescription": "์ฌ์ ์ค์ ๋ทฐ ์์๋ฅผ ์์ฝํ๋ฉด์ ์ฃผ์ํ ์ ๊ณผ ์ค์ ๋น์ฉ ๋๋น ๊ธฐ๋ํ ์ ์๋ ๊ฐ์ฑ๋น๋ฅผ ๋น๊ต ๋ถ์ํด ๋ณด์์ต๋๋ค.", + "adsenseCategory": "๊ฑด๊ฐ", + "articleType": "travel_guide", + "riskLevel": "high", + "blogId": "blog1", + "blogName": "HOGU What?", + "socialContent": null, + "socialPublished": { + "instagram": null, + "threads": null, + "tiktok": null + } + } + ] + }, + { + "runAt": "2026-07-21T15:06:37.884920", + "date": "2026-07-21", + "keywords": [ + "์ง์ฅ์ธ ์ 30๋ง์ ETF ํฌ์ ์์ง ํ๊ธฐ" + ], + "postsGenerated": 1, + "bloggerUploaded": 1, + "pendingReview": 0, + "errors": 0, + "errorMessages": [], + "imagesInserted": 1, + "totalWords": 2509, + "blogId": "blog1", + "blogName": "HOGU What?", + "platforms": { + "blogger": 1 + }, + "earnings": { + "totalPosts": 93, + "estimatedDailyRevenue": 465.0, + "estimatedMonthlyRevenue": 13950.0, + "estimatedYearlyRevenue": 169725.0, + "avgCPC": 2.5, + "currency": "USD" + }, + "posts": [ + { + "title": "์ง์ฅ์ธ ์ 30๋ง์ ETF ํฌ์ ํ๊ธฐ ๋ฐ ์ ๋ต", + "keyword": "์ง์ฅ์ธ ์ 30๋ง์ ETF ํฌ์ ์์ง ํ๊ธฐ", + "blogUrl": "https://www.hoguwhat.com/2026/07/30-etf.html", + "imagesInserted": 1, + "wordCount": 2509, + "contentPreview": "์ต๊ทผ ๊ฒฝ์ ๋ถ์์ ์ฑ์ ๊ฒช์ผ๋ฉด์, ๋ง์ ์ง์ฅ์ธ๋ค์ด ์ฌํ ํฌ ์๋จ์ผ๋ก ETF์ ๋์ ๋๋ฆฌ๊ณ ์์ต๋๋ค. ํ์ง๋ง, ๋งค๋ฌ 30๋ง์์ ํฌ์ํ๋ค๊ณ ํ์ ๋ ์ค์ ๊ณผ์ฐ ์ด๋ค ๊ฒฐ๊ณผ๊ฐ ๋ํ๋ ์ง ๊ถ๊ธํ ๋ถ๋ค์ด ๋ง์ ๊ฒ์ ๋๋ค. ์ด ๊ธ์์๋ ์ 30๋ง์์ด๋ผ๋ ์๋์ ์ผ๋ก ์ ์ ๊ธ์ก์ผ๋ก ETF์ ํฌ์ํ ๋ ๊ธฐ๋ํ ์ ์๋ ์ค์ง์ ์ธ ํจ๊ณผ์ ์ฃผ์์ ์ ์์๋ณด๊ฒ ์ต๋๋ค. ๐ก ํต์ฌ ํฌ์ธํธ: ์ ์...", + "faqCount": 0, + "faq": [], + "factCheck": { + "checked": true, + "verdict": "warn", + "issues_found": 1, + "fixes_applied": 1, + "issues": [ + { + "problem": "๊ตฌ์ฒด์ ์ฒดํ ์ฃผ์ฅ์ด์ง๋ง ๊ทผ๊ฑฐ๊ฐ ์์.", + "fixed": true + } + ] + }, + "sources": [], + "labels": [ + "ํฌ์", + "ETF", + "์ฌํ ํฌ", + "์ง์ฅ์ธ", + "์ 30๋ง์" + ], + "metaDescription": "์ง์ฅ์ธ์ด ์ 30๋ง์์ผ๋ก ETF ํฌ์ ์ ํ์ํ ์ ๋ต๊ณผ ์ฃผ์์ ์ ์์๋ณด์ธ์. ๊พธ์คํ ํฌ์๋ก ์ฌํ ํฌ ์ฑ๊ณต์ ์ํ ์ค์ง ์ ๋ณด ์ ๊ณต.", + "adsenseCategory": "๊ธ์ต", + "articleType": "investment", + "riskLevel": "high", + "blogId": "blog1", + "blogName": "HOGU What?", + "socialContent": { + "instagram": { + "caption": "์ง์ฅ์ธ ์ 30๋ง์ ETF ํฌ์ ํ๊ธฐ ๋ฐ ์ ๋ต\n\n๐ก ์ง์ฅ์ธ ์ 30๋ง์ ETF ํฌ์ ์์ง ํ๊ธฐ์ ๋ํ ํต์ฌ ์ ๋ณด๋ฅผ ์ ๋ฆฌํ์ต๋๋ค.\n\n์ ์ฅ ํ์ ๐\n\n#์ ๋ณด #๋ธ๋ก๊ทธ #์ผ์ #๊ฟํ #์ ์ฉํ์ ๋ณด", + "hookLine": "์ง์ฅ์ธ ์ 30๋ง์ ETF ํฌ์ ํ๊ธฐ ๋ฐ ์ ๋ต", + "storyHighlightTitle": "์ง์ฅ์ธ ์", + "hashtags": { + "popular": [ + "#์ ๋ณด", + "#๋ธ๋ก๊ทธ", + "#์ผ์", + "#๊ฟํ", + "#์ ์ฉํ์ ๋ณด" + ], + "medium": [ + "#์ง์ฅ์ธ์30๋ง์ETFํฌ์์์งํ๊ธฐ" + ], + "niche": [] + }, + "bestPostingTimes": [ + "07:00", + "12:00", + "18:00", + "21:00" + ] + }, + "threads": { + "posts": [ + { + "order": 1, + "label": "1/5", + "content": "๐ ์ง์ฅ์ธ ์ 30๋ง์ ETF ํฌ์ ์์ง ํ๊ธฐ โ ๊ผญ ์์์ผ ํ ํต์ฌ ์ ๋ณด" + }, + { + "order": 2, + "label": "2/5", + "content": "๐ ์ค๋ ํฌ์คํ ์ฃผ์ : ์ง์ฅ์ธ ์ 30๋ง์ ETF ํฌ์ ํ๊ธฐ ๋ฐ ์ ๋ต" + }, + { + "order": 3, + "label": "3/5", + "content": "๐ ์์ธํ ๋ด์ฉ์ ๋ธ๋ก๊ทธ์์ ํ์ธํ์ธ์." + }, + { + "order": 4, + "label": "4/5", + "content": "๐ก ์ง์ฅ์ธ ์ 30๋ง์ ETF ํฌ์ ์์ง ํ๊ธฐ ๊ด๋ จ ๊ถ๊ธํ ์ ์ด ์์ผ์ ๊ฐ์?" + }, + { + "order": 5, + "label": "5/5", + "content": "๐ ์ ์ฒด ๊ธ ์ฝ๊ธฐ: https://www.hoguwhat.com/2026/07/30-etf.html\n\n์ฌ๋ฌ๋ถ์ ์๊ฐ์ ์ด๋ ์ ๊ฐ์? ๋๊ธ๋ก ์๋ ค์ฃผ์ธ์ ๐ฌ" + } + ], + "hashtags": [ + "#์ ๋ณด", + "#๋ธ๋ก๊ทธ", + "#์ผ์", + "#๊ฟํ", + "#์ ์ฉํ์ ๋ณด" + ], + "engagementQuestion": "์ง์ฅ์ธ ์ 30๋ง์ ETF ํฌ์ ์์ง ํ๊ธฐ์ ๋ํด ์ด๋ป๊ฒ ์๊ฐํ์๋์?", + "bestPostingTimes": [ + "08:00", + "13:00", + "19:00", + "22:00" + ] + }, + "tiktok": { + "title": "์ง์ฅ์ธ ์ 30๋ง์ ETF ํฌ์ ์์ง ํ๊ธฐ ํต์ฌ ์ ๋ฆฌ 60์ด", + "thumbnailText": "์ง์ฅ์ธ ์ 30๋ง์ ETF ํฌ์ ์์ง", + "scenes": [ + { + "time": "0-3์ด", + "text": "โก ์ง์ฅ์ธ ์ 30๋ง์ ETF ํฌ์ ์์ง ํ๊ธฐ ๋ชจ๋ฅด๋ฉด ์ํด!", + "direction": "ํ๋ฉด ํด๋ก์ฆ์ ", + "sound": "์๋ฆผ์" + }, + { + "time": "3-15์ด", + "text": "์ด๊ฑธ ๋ชจ๋ฅด๋ ๋ถ๋ค์ด ๋๋ฌด ๋ง์์", + "direction": "์ ๋ฉด ์ดฌ์", + "sound": "๋ฐฐ๊ฒฝ์์ " + }, + { + "time": "15-35์ด", + "text": "ํต์ฌ ๋ด์ฉ 3๊ฐ์ง", + "direction": "ํ ์คํธ ์ฌ๋ผ์ด๋", + "sound": "๋ฐฐ๊ฒฝ์์ " + }, + { + "time": "35-50์ด", + "text": "์ง์ฅ์ธ ์ 30๋ง์ ETF ํฌ์ ์์ง ํ๊ธฐ ์ด๋ ๊ฒ ํ์ฉํ์ธ์", + "direction": "์ธํฌ๊ทธ๋ํฝ", + "sound": "๋ฐฐ๊ฒฝ์์ " + }, + { + "time": "50-60์ด", + "text": "๋ ์์ธํ ๋ด์ฉ โ ๋งํฌ ํด๋ฆญ! https://www.hoguwhat.com/2026/07/30-etf.html", + "direction": "CTA ํ๋ฉด", + "sound": "ํจ๊ณผ์" + } + ], + "fullScript": "์ง์ฅ์ธ ์ 30๋ง์ ETF ํฌ์ ์์ง ํ๊ธฐ์ ๋ํ ํต์ฌ ์ ๋ณด์ ๋๋ค. ์์ธํ ๋ด์ฉ์ ๋ธ๋ก๊ทธ ๋งํฌ๋ฅผ ํ์ธํ์ธ์.", + "commentBait": "์ง์ฅ์ธ ์ 30๋ง์ ETF ํฌ์ ์์ง ํ๊ธฐ ๊ด๋ จ ๊ฒฝํ์ด ์์ผ์ ๋ถ? ๋๊ธ๋ก ๊ณต์ ํด์ฃผ์ธ์!", + "hashtags": [ + "#fyp", + "#foryou", + "#์ ๋ณด", + "#๊ฟํ", + "#์ ๋ณด", + "#๋ธ๋ก๊ทธ", + "#์ผ์" + ], + "backgroundMusic": { + "genre": "ํ", + "mood": "๊ฒฝ์พํ" + }, + "bestPostingTimes": [ + "07:00", + "12:00", + "17:00", + "20:00", + "23:00" + ] + }, + "keyword": "์ง์ฅ์ธ ์ 30๋ง์ ETF ํฌ์ ์์ง ํ๊ธฐ", + "trendDirection": "stable" + }, + "socialPublished": { + "instagram": { + "skipped": true, + "reason": "SOCIAL_AUTO_PUBLISH=false" + }, + "threads": { + "skipped": true, + "reason": "SOCIAL_AUTO_PUBLISH=false" + }, + "tiktok": { + "skipped": true, + "reason": "SOCIAL_AUTO_PUBLISH=false" + } + } + } + ] + }, + { + "runAt": "2026-07-21T11:50:38.221150", + "date": "2026-07-21", + "keywords": [ + "์ฝ์ธ ํฌ์ 1๋ ํ ์์งํ ์ด์ผ๊ธฐ" + ], + "postsGenerated": 1, + "bloggerUploaded": 0, + "pendingReview": 1, + "errors": 0, + "errorMessages": [], + "imagesInserted": 3, + "totalWords": 847, + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "platforms": { + "blogger": 0 + }, + "earnings": { + "totalPosts": 92, + "estimatedDailyRevenue": 460.0, + "estimatedMonthlyRevenue": 13800.0, + "estimatedYearlyRevenue": 167900.0, + "avgCPC": 2.5, + "currency": "USD" + }, + "posts": [ + { + "title": "์ฝ์ธ ํฌ์ 1๋ ํ: ์์งํ ์ด์ผ๊ธฐ์ ๊ตํ", + "keyword": "์ฝ์ธ ํฌ์ 1๋ ํ ์์งํ ์ด์ผ๊ธฐ", + "blogUrl": "", + "imagesInserted": 3, + "wordCount": 847, + "contentPreview": "๋ง์ ๋ถ๋ค์ด ํ ๋ฒ์ฏค์ ์ฝ์ธ ํฌ์๋ฅผ ๊ณ ๋ฏผํด ๋ณด์ จ์ ํ ๋ฐ์. ๋ค์ํ ์ฑ๊ณต ์ฌ๋ก์ ํจ๊ป ์ฐ๋ ค ์์ธ ๋ชฉ์๋ฆฌ๋ ๋ค๋ ค์ต๋๋ค. ๊ทธ๋ ๋ค๋ฉด, ์ด ํฌ์๋ ์ ๋ง ๋๊ตฌ์๊ฒ๋ ์ ๋ฆฌํ ๊ฑธ๊น์? ์ด๋ฒ ํฌ์คํธ์์๋ ์ฝ์ธ ํฌ์๊ฐ ์ง๋ 1๋ ๋์ ์ด๋ ์ ๋์ ๋ณํ๋ฅผ ๊ฒช์๊ณ , ์ด๋ค ์ ์์ ํนํ ์ฃผ์ํด์ผ ํ๋์ง ๋ค๋ค๋ณด๋ ค๊ณ ํฉ๋๋ค.ํต์ฌ ํฌ์ธํธ: ์ฝ์ธ ํฌ์๋ ๋ณ๋์ฑ์ด ํฌ๋ฏ๋ก ์์ ์ ์ฌ๋ฌด ์ํ์...", + "faqCount": 2, + "faq": [ + { + "q": "์ฝ์ธ ํฌ์๋ ์ด๋ค ์ํ์ด ์๋์?", + "a": "์ฝ์ธ ํฌ์๋ ๋ค๋ฅธ ์์ฐ์ ๋นํด ๋ณ๋์ฑ์ด ๋งค์ฐ ํฝ๋๋ค. ์์ฅ์ ๊ธ๊ฒฉํ ๋ณ๋์ผ๋ก ์ธํด ํฐ ์์ค์ ๋ณผ ์ ์์ผ๋ฉฐ ์ด๋ ์ ๋ฌธ์ ์ธ ์ง์๊ณผ ์ํ ๊ด๋ฆฌ๊ฐ ํ์ํฉ๋๋ค." + }, + { + "q": "์ด๋ณด์์๊ฒ ์ ํฉํ ์ฝ์ธ ํฌ์ ๋ฐฉ๋ฒ์ ๋ฌด์์ธ๊ฐ์?", + "a": "์ด๋ณด์๋ผ๋ฉด ๋ฆฌ์คํฌ ๋ถ์ฐ์ ์ํด ๋ค์ํ ์ฝ์ธ์ ์์ก์ ๋๋ ํฌ์ํ๋ ๋ฐฉ์์ด ์ ํฉํ ์ ์์ต๋๋ค. ๋ํ, ์์ฅ ๋ํฅ์ ๊พธ์คํ ํ์ ํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค." + } + ], + "factCheck": { + "checked": true, + "verdict": "warn", + "issues_found": 2, + "fixes_applied": 2, + "issues": [ + { + "problem": "๊ตฌ์ฒด์ ์์น ํ์", + "fixed": true + }, + { + "problem": "๊ตฌ์ฒด์ ์ถ์ฒ ๋ถ๋ช ", + "fixed": true + } + ] + }, + "sources": [ + { + "title": "๊ธฐํ์ฌ์ ๋ถ ๊ณต์ ์น์ฌ์ดํธ", + "url": "https://www.mosf.go.kr" + }, + { + "title": "๊ธ์ต์์ํ ๋ณด๋์๋ฃ", + "url": "https://www.fsc.go.kr" + } + ], + "labels": [ + "์ฝ์ธ ํฌ์", + "๊ธ์ต ๋ด์ค", + "ํฌ์ ๋ฆฌ์คํฌ", + "๋ณ๋์ฑ", + "์ด๋ณด ํฌ์", + "์ฌ๋ฌด ๊ด๋ฆฌ", + "ํฌ์ ํ", + "์์ธ ๋ณ๋", + "์ ๋ฌธ๊ฐ ์กฐ์ธ", + "์์ฐ ๋ถ์ฐ" + ], + "metaDescription": "์ฝ์ธ ํฌ์๋ ๋ณ๋์ฑ์ด ํฌ๊ณ ๋ฆฌ์คํฌ๊ฐ ๋์ ์ ์คํ ์ ๊ทผ์ด ํ์ํฉ๋๋ค. ์ง๋ 1๋ ์ฝ์ธ ์์ฅ์ ๋ณํ์ ํฌ์ ์ ๊ณ ๋ คํ ์ ์ ์ ๋ฆฌํฉ๋๋ค.", + "adsenseCategory": "๊ธ์ต", + "articleType": "investment", + "riskLevel": "high", + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "socialContent": null, + "socialPublished": { + "instagram": null, + "threads": null, + "tiktok": null + } + } + ] + }, + { + "runAt": "2026-07-21T11:48:47.305381", + "date": "2026-07-21", + "keywords": [ + "์ฝ์ธ ํฌ์ 1๋ ํ ์์งํ ์ด์ผ๊ธฐ" + ], + "postsGenerated": 1, + "bloggerUploaded": 0, + "pendingReview": 1, + "errors": 0, + "errorMessages": [], + "imagesInserted": 3, + "totalWords": 953, + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "platforms": { + "blogger": 0 + }, + "earnings": { + "totalPosts": 92, + "estimatedDailyRevenue": 460.0, + "estimatedMonthlyRevenue": 13800.0, + "estimatedYearlyRevenue": 167900.0, + "avgCPC": 2.5, + "currency": "USD" + }, + "posts": [ + { + "title": "์ฝ์ธ ํฌ์, 1๋ ์ ์์ง๋ด๋ฐฑํ ํ๊ณ ", + "keyword": "์ฝ์ธ ํฌ์ 1๋ ํ ์์งํ ์ด์ผ๊ธฐ", + "blogUrl": "", + "imagesInserted": 3, + "wordCount": 953, + "contentPreview": "2025๋ ์ค๋ฐ, ๊ฐ์ํํ์ ๋จ๊ฑฐ์ด ์ด๊ธฐ๊ฐ ์ ์ธ๊ณ๋ฅผ ํฉ์ธ์์ต๋๋ค. ํ์ง๋ง ์ค๋๋ , ์ด ์ดํ์ ๋ฐ์ด๋ ์ฌ๋๋ค์ ๊ณผ์ฐ ์ด๋ค ๊ธฐ๋ถ์ผ๊น์? ์ฝ์ธ ํฌ์ 1๋ ํ์ ํ์ค์ ๋ค์ฌ๋ค๋ด ๋๋ค. ๐ก ํต์ฌ ์์ฝ: ์ฝ์ธ ํฌ์๋ ๋์ ๋ณ๋์ฑ๊ณผ ๋ถํ์ค์ฑ์๋ ๋ถ๊ตฌํ๊ณ ๋ฏธ๋ ๊ธฐ์ ์ ๋ํ ๊ธฐ๋๊ฐ์ ํ๊ณ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ฑ๊ณผ ์์ ์ฑ์ ์ํด ์ ์คํ ์ ๊ทผ์ด ํ์ํฉ๋๋ค. ๊ฐ์ํํ ์์ฅ์ ๋ณํ...", + "faqCount": 2, + "faq": [ + { + "q": "์ฝ์ธ ํฌ์๋ ์์ ํ๊ฐ์?", + "a": "๊ฐ์ํํ ํฌ์๋ ๋์ ๋ณ๋์ฑ๊ณผ ๋ถํ์ค์ฑ์ด ์์ด ์ ์คํ ์ ๊ทผ์ด ํ์ํฉ๋๋ค. ์ถฉ๋ถํ ์ ๋ณด์ ์กฐ์ฌ๋ฅผ ๋ฐํ์ผ๋ก ๊ฒฐ์ ํด์ผ ํฉ๋๋ค." + }, + { + "q": "์ฝ์ธ ์์ฅ์ ์ฃผ์ ๋ฆฌ์คํฌ๋ ๋ฌด์์ธ๊ฐ์?", + "a": "๊ธ๊ฒฉํ ์์ธ ๋ณ๋์ฑ๊ณผ ๊ท์ ๊ฐํ๊ฐ ์ฃผ์ ๋ฆฌ์คํฌ๋ก, ์ด๋ฅผ ํญ์ ์ผ๋์ ๋๊ณ ํฌ์ํด์ผ ํฉ๋๋ค." + } + ], + "factCheck": { + "checked": true, + "verdict": "warn", + "issues_found": 3, + "fixes_applied": 3, + "issues": [ + { + "problem": "๊ทผ๊ฑฐ ์๋ฃ ์๋ 1์ธ์นญ ์ฒดํ ์ฃผ์ฅ", + "fixed": true + }, + { + "problem": "๊ฒ์ฆ ๋ถ๊ฐ๋ฅํ ๊ตฌ์ฒด์ ์์นยทํต๊ณ", + "fixed": true + }, + { + "problem": "๊ฒ์ฆ ๋ถ๊ฐ๋ฅํ ๊ตฌ์ฒด์ ์์นยทํต๊ณ", + "fixed": true + } + ] + }, + "sources": [ + { + "title": "CoinMarketCap", + "url": "https://coinmarketcap.com" + }, + { + "title": "Bloomberg", + "url": "https://www.bloomberg.com/crypto" + } + ], + "labels": [ + "์ฝ์ธ ํฌ์", + "๊ฐ์ํํ", + "๋นํธ์ฝ์ธ", + "์ด๋๋ฆฌ์", + "๊ฐ์ํํ ์์ฅ", + "์์ฅ ๋ณ๋์ฑ", + "ํฌ์ ํ๊ธฐ", + "๋ฏธ๋ ์ ๋ง", + "ํฌ์ ์ฃผ์์ฌํญ", + "๋์งํธ ๊ฒฝ์ " + ], + "metaDescription": "๊ฐ์ํํ, ์ฝ์ธ ํฌ์ 1๋ ํ์ ์์งํ ํ๊ณ ๊ธฐ. ์ฝ์ธ ์์ฅ์ ๋ณํ์ ํฌ์์ ํ๊ธฐ, ๊ทธ๋ฆฌ๊ณ ๋ฏธ๋ ์ ๋ง์ ๋ํ ๊น์ด ์๋ ๋ถ์.", + "adsenseCategory": "๊ธ์ต", + "articleType": "investment", + "riskLevel": "high", + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "socialContent": null, + "socialPublished": { + "instagram": null, + "threads": null, + "tiktok": null + } + } + ] + }, + { + "runAt": "2026-07-21T11:46:59.437284", + "date": "2026-07-21", + "keywords": [ + "์ง์ฅ์ธ ์ 30๋ง์ ETF ํฌ์ ์์ง ํ๊ธฐ" + ], + "postsGenerated": 1, + "bloggerUploaded": 0, + "pendingReview": 1, + "errors": 0, + "errorMessages": [], + "imagesInserted": 1, + "totalWords": 1339, + "blogId": "blog1", + "blogName": "HOGU What?", + "platforms": { + "blogger": 0 + }, + "earnings": { + "totalPosts": 92, + "estimatedDailyRevenue": 460.0, + "estimatedMonthlyRevenue": 13800.0, + "estimatedYearlyRevenue": 167900.0, + "avgCPC": 2.5, + "currency": "USD" + }, + "posts": [ + { + "title": "์ง์ฅ์ธ ์ 30๋ง์ ETF ํฌ์ ์์ง ํ๊ธฐ", + "keyword": "์ง์ฅ์ธ ์ 30๋ง์ ETF ํฌ์ ์์ง ํ๊ธฐ", + "blogUrl": "", + "imagesInserted": 1, + "wordCount": 1339, + "contentPreview": "ํฌ์๋ฅผ ์ด๋์๋ถํฐ ์์ํด์ผ ํ ์ง ๋ชฐ๋ผ ๋ง์ค์ด๊ณ ์๋ ์ง์ฅ์ธ์๊ฒ ETF(์์ฅ์ง์ํ๋)๋ ๋งค๋ ฅ์ ์ธ ์ต์ ์ ๋๋ค. ETF๋ ๋ค์ํ ์ฃผ์์ ๋ถ์ฐ ํฌ์ํ ์ ์์ด ๋น๊ต์ ์์ ํ๋ค๊ณ ์๋ ค์ ธ ์๋๋ฐ์. ์ด ๊ธ์์๋ ์ง์ฅ์ธ์ด ์ 30๋ง์์ผ๋ก ETF ํฌ์ํ ๋ ๋์์ด ๋๋ ์ ๋ณด๋ฅผ ์ ๋ฆฌํ์์ต๋๋ค. ํนํ ํฌ์ ์ด๋ณด์๋ค์ด ์์์ผ ํ ๋ถ๋ถ๊ณผ ์ง์ ์ฒดํฌํด์ผ ํ ๋ฆฌ์คํธ๋ฅผ ์ค์ฌ์ผ๋ก ์ค๋ช ...", + "faqCount": 3, + "faq": [ + { + "q": "ETF๋ ์ด๋ป๊ฒ ์์ํด์ผ ํ๋์?", + "a": "์ฆ๊ถ์ฌ๋ฅผ ํตํด ๊ณ์ข ๊ฐ์ค ํ ํฌ์ ๊ฐ๋ฅํฉ๋๋ค." + }, + { + "q": "ETF์ ์ฃผ์ ์ฅ์ ์ ๋ฌด์์ธ๊ฐ์?", + "a": "๋ค์ํ ์์ฐ์ ๋ถ์ฐ ํฌ์ํ์ฌ ๋ฆฌ์คํฌ๋ฅผ ์ค์ ๋๋ค." + }, + { + "q": "ETF ํฌ์ ์ ์ฃผ์์ฌํญ์?", + "a": "์์ฅ ๋ณ๋์ฑ์ ๊ณ ๋ คํ๊ณ ๋ถ์ฐ ํฌ์ ์ ๋ต์ ์ทจํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค." + } + ], + "factCheck": { + "checked": true, + "verdict": "pass", + "issues_found": 0, + "fixes_applied": 0, + "issues": [] + }, + "sources": [ + { + "title": "KOSPI 200 ์ง์ ์ ๋ณด", + "url": "https://krx.co.kr/main.do" + }, + { + "title": "ETF ์ ๋ฌธ์", + "url": "https://finance.naver.com/etf/" + } + ], + "labels": [ + "ํฌ์", + "ETF", + "์ง์ฅ์ธํฌ์", + "๊ธ์ต์ ๋ณด", + "์ฌํ ํฌ", + "ETF์ฅ์ ", + "ํต์ฌ๊ฐ๋ ", + "์ฒดํฌ๋ฆฌ์คํธ", + "ํฌ์์ ๋ต", + "์ค์๋ฐฉ์ง" + ], + "metaDescription": "์ง์ฅ์ธ์ ์ํ ์ 30๋ง์ ETF ํฌ์ ๊ฐ์ด๋. ETF ๊ฐ๋ ๋ถํฐ ์ด๋ณด์๊ฐ ๋ฐ๋์ ์์์ผํ ํฌ์ ์ ๋ต๊น์ง ์๊ฐํฉ๋๋ค.", + "adsenseCategory": "๊ธ์ต", + "articleType": "investment", + "riskLevel": "high", + "blogId": "blog1", + "blogName": "HOGU What?", + "socialContent": null, + "socialPublished": { + "instagram": null, + "threads": null, + "tiktok": null + } + } + ] + }, + { + "runAt": "2026-07-21T05:54:07.757123", + "date": "2026-07-21", + "keywords": [ + "๋ฌ๋ฌ ํ์ ํ์ด๋ฐ ๋ด๊ฐ ํ๋ฆฐ ์ ์๋ ์ด์ " + ], + "postsGenerated": 1, + "bloggerUploaded": 0, + "errors": 0, + "errorMessages": [], + "imagesInserted": 3, + "totalWords": 999, + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "platforms": { + "blogger": 0 + }, + "earnings": { + "totalPosts": 91, + "estimatedDailyRevenue": 163.8, + "estimatedMonthlyRevenue": 4914.0, + "estimatedYearlyRevenue": 59787.0, + "avgCPC": 0.9, + "currency": "USD" + }, + "posts": [ + { + "title": "ํ์ ํ์ด๋ฐ, ๋ด๊ฐ ๋งค๋ฒ ํ๋ฆฌ๋ ์ด์ ๋? ๋ฌ๋ฌ ํ์ ์ ์ฌ๋ฆฌ์ ์ ๋ต", + "keyword": "๋ฌ๋ฌ ํ์ ํ์ด๋ฐ ๋ด๊ฐ ํ๋ฆฐ ์ ์๋ ์ด์ ", + "blogUrl": "", + "imagesInserted": 3, + "wordCount": 999, + "contentPreview": "ํ์ ํ์ด๋ฐ์ ์ ์ด๋ ๊ฒ ์ด๋ ค์ธ๊น? ์์ฆ ๋ค์ด ๋ฌ๋ฌ ํ์ ์ ์ค์์ฑ์ด ์ปค์ง๋ฉด์ ๋ง์ ์ฌ๋๋ค์ด ์ต์ ์ ํ์ ํ์ด๋ฐ์ ์ฐพ๊ธฐ ์ํด ๊ณ ์ฌํ๊ณ ์์ต๋๋ค. ๊ตญ์ ์ ์ธ๋ ๊ฒฝ์ ๋ณ๋์ ์์ธกํ๋ ๊ฒ์ ์ ๋ฌธ๊ฐ๋ค์๊ฒ๋ ์ฝ์ง ์์ ์ผ์ ๋๋ค. ๊ทธ๋งํผ ํ์ ์๊ธฐ๋ ์ฐ๋ฆฌ์ ์์์ ๋น๋๊ฐ๊ธฐ๊ฐ ์ฌ์ด ์ผ์ด์ฃ . \"ํ์ ํ์ด๋ฐ์ ๋์น๋ ์ด์ ๋ ๋ฐ๋ก ์ฌ๋ฆฌ์ ์์ธ๊ณผ ์์ธก์ ์ด๋ ค์ ๋๋ฌธ์ ๋๋ค.\" ๐ก...", + "faqCount": 2, + "faq": [ + { + "q": "ํ์ ์์๋ฃ๋ ์ด๋ป๊ฒ ํ์ธํ๋์?", + "a": "์ํ์ด๋ ํ์ ์์์ ์ ๊ณตํ๋ ํ์จ๊ณผ ์์๋ฃ ์ ๋ณด๋ฅผ ์ฌ์ ์ ํ์ธํ๋ ๊ฒ์ด ํ์ํฉ๋๋ค. ๊ฐ ์ํ์ ์น์ฌ์ดํธ๋ ์ฑ์ ํตํด ํ์ธํ ์ ์์ต๋๋ค." + }, + { + "q": "๋ถํ ๋งค์ ์ ๋ต์ด๋ ๋ฌด์์ธ๊ฐ์?", + "a": "๋ถํ ๋งค์ ์ ๋ต์ ํ์จ ๋ณ๋์ ์ํฅ์ ๋ ๋ฐ๊ณ ์ ํ์ ์ ์ฌ๋ฌ ๋ฒ์ ๋๋์ด ์คํํ๋ ๋ฐฉ๋ฒ์ ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ์ ์ฒด์ ์ธ ํ๊ท ํ์จ์ ์์ ์ ์ธ ์์ค์ผ๋ก ์ ์งํ ์ ์์ต๋๋ค." + } + ], + "factCheck": { + "checked": true, + "verdict": "pass", + "issues_found": 0, + "fixes_applied": 0, + "issues": [] + }, + "sources": [ + { + "title": "๊ตญ์ ๊ธ์ต์ผํฐ", + "url": "https://financialcenter.or.kr" + }, + { + "title": "๋ํ๋ฏผ๊ตญ ์ธํ์์ฅ ๋ถ์ ๋ณด๊ณ ์", + "url": "https://ํ๊ตญ์ํ.or.kr" + } + ], + "labels": [ + "ํ์ ", + "๋ฌ๋ฌํ์จ", + "๊ธ์ต์ ๋ต", + "๊ฒฝ์ ์งํ", + "์ฌ๋ฆฌํฌ์", + "์ธํ์์ฅ", + "ํ์ ํ์ด๋ฐ", + "๊ธ๋ฆฌ๋ณ๋", + "ํฌ์์ฃผ์", + "๊ฒฝ์ ๋ถ์" + ], + "metaDescription": "๋ฌ๋ฌ ํ์ ํ์ด๋ฐ์ ๋์น๋ ์ด์ ์ ์ฌ๋ฐ๋ฅธ ํ์ ์ ๋ต์ ์๊ฐํฉ๋๋ค. ๊ฒฝ์ ์งํ์ ๊ฐ์ธ์ ๊ณํ์ ๋ง์ถ ํ์ ์ ๋ต์ผ๋ก ์์ ์ ์ธ ๊ธ์ต ๊ด๋ฆฌ๋ฅผ ๋์๋๋ฆฝ๋๋ค.", + "adsenseCategory": "์ผ๋ฐ", + "articleType": "analysis", + "riskLevel": "medium", + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "socialContent": null, + "socialPublished": { + "instagram": null, + "threads": null, + "tiktok": null + } + } + ] + }, + { + "runAt": "2026-07-21T05:51:53.740899", + "date": "2026-07-21", + "keywords": [ + "๋ฌ๋ฌ ํ์ ํ์ด๋ฐ ๋ด๊ฐ ํ๋ฆฐ ์ ์๋ ์ด์ " + ], + "postsGenerated": 1, + "bloggerUploaded": 0, + "errors": 0, + "errorMessages": [], + "imagesInserted": 3, + "totalWords": 927, + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "platforms": { + "blogger": 0 + }, + "earnings": { + "totalPosts": 91, + "estimatedDailyRevenue": 163.8, + "estimatedMonthlyRevenue": 4914.0, + "estimatedYearlyRevenue": 59787.0, + "avgCPC": 0.9, + "currency": "USD" + }, + "posts": [ + { + "title": "๋ฌ๋ฌ ํ์ ํ์ด๋ฐ ๋ด๊ฐ ์๊พธ ํ๋ฆฌ๋ ์ด์ ", + "keyword": "๋ฌ๋ฌ ํ์ ํ์ด๋ฐ ๋ด๊ฐ ํ๋ฆฐ ์ ์๋ ์ด์ ", + "blogUrl": "", + "imagesInserted": 3, + "wordCount": 927, + "contentPreview": "๋ฌ๋ฌ ํ์ ํ์ด๋ฐ๊ณผ ํ์จ ๋ณ๋์ต๊ทผ ํ์จ ์์ฅ์์๋ ๋ค์ํ ์์ธ๋ค์ ์ํด ํ์จ์ด ๊ธ๊ฒฉํ ๋ณ๋ํ๊ณ ์์ต๋๋ค. ํนํ ๊ธ๋ก๋ฒ ๊ฒฝ์ ์์ ์ฑ๊ณผ ๋ฏธ๊ตญ ์ฐ์ค์ ๊ธ๋ฆฌ ์ ์ฑ ๋ฑ์ด ํ์จ์ ํฐ ์ํฅ์ ๋ฏธ์น๊ณ ์์ต๋๋ค. 2026๋ 7์ ํ์ฌ, ๋ง์ ์ฌ๋๋ค์ด ์ ์ ํ ํ์ ํ์ด๋ฐ์ ์ก๊ธฐ ์ํด ๊ณ ๋ฏผํ๊ณ ์์ง๋ง, ํ์จ ๋ณ๋์ด ์์ธก๋ณด๋ค ๋ณต์กํด ์ฝ์ง ์์ ์ํฉ์ ๋๋ค.ํ์ ์ ์ฐธ ํ์ด๋ฐ์ ๋ง์ถ...", + "faqCount": 0, + "faq": [], + "factCheck": { + "checked": true, + "verdict": "warn", + "issues_found": 2, + "fixes_applied": 2, + "issues": [ + { + "problem": "๊ฒ์ฆ ๋ถ๊ฐ๋ฅํ ๊ตฌ์ฒด์ ์์นยทํต๊ณ", + "fixed": true + }, + { + "problem": "๊ฒ์ฆ ๋ถ๊ฐ๋ฅํ ๊ตฌ์ฒด์ ์์นยทํต๊ณ", + "fixed": true + } + ] + }, + "sources": [], + "labels": [ + "ํ์ ", + "๋ฌ๋ฌ", + "ํ์จ", + "๊ธ๋ฆฌ", + "๊ฒฝ์ ", + "ํ์ ํ์ด๋ฐ", + "์์๋ฃ", + "ํ์ ์", + "ํ์ ๋ฐฉ๋ฒ", + "์ธํ ์์ฅ" + ], + "metaDescription": "๋ฌ๋ฌ ํ์ ํ์ด๋ฐ์ ์ ํํ ๋ง์ถ๊ธฐ ํ๋ ์ด์ ์ ์ด์ ๋ํ ๋์ ์ ๋ต์ ํตํ ํ์ ์ ์ค์๋ฅผ ์ค์ด๋ ๋ฐฉ๋ฒ์ ์์๋ณด์ธ์.", + "adsenseCategory": "์ผ๋ฐ", + "articleType": "analysis", + "riskLevel": "medium", + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "socialContent": null, + "socialPublished": { + "instagram": null, + "threads": null, + "tiktok": null + } + } + ] + }, + { + "runAt": "2026-07-21T05:50:29.701829", + "date": "2026-07-21", + "keywords": [ + "์ง์ฅ์ธ ์ 30๋ง์ ETF ํฌ์ ์์ง ํ๊ธฐ" + ], + "postsGenerated": 1, + "bloggerUploaded": 0, + "errors": 0, + "errorMessages": [], + "imagesInserted": 1, + "totalWords": 1149, + "blogId": "blog1", + "blogName": "HOGU What?", + "platforms": { + "blogger": 0 + }, + "earnings": { + "totalPosts": 91, + "estimatedDailyRevenue": 455.0, + "estimatedMonthlyRevenue": 13650.0, + "estimatedYearlyRevenue": 166075.0, + "avgCPC": 2.5, + "currency": "USD" + }, + "posts": [ + { + "title": "์ง์ฅ์ธ ์ 30๋ง์ ETF ํฌ์, ์์งํ ์ด๋จ๊น?", + "keyword": "์ง์ฅ์ธ ์ 30๋ง์ ETF ํฌ์ ์์ง ํ๊ธฐ", + "blogUrl": "", + "imagesInserted": 1, + "wordCount": 1149, + "contentPreview": "์ง์ฅ์ธ์ผ๋ก ์๊ธ์ ๋ฐ๋ค ๋ณด๋ฉด ๋์ด๊ฐ๋ ์ํ๋น์ ๋๋นํด ํฌ์์ ๋ํ ๊ถ๊ธ์ฆ์ด ์ปค์ง๋๋ค. ํนํ ์ 30๋ง ์์ด๋ผ๋ ์ ์ ๊ธ์ก์ผ๋ก๋ ๊ฐ๋ฅํ ETF ํฌ์๋ ๋ง์ ์ด๋ค์ ๊ด์ฌ์ฌ์ ๋๋ค. ํ์ง๋ง ์ค์ ๋ก ํฌ์์ ๋ฐ์ด๋ ์ฌ๋๋ค์ด ์ด๋ค ๊ฒฝํ์ ํ๋์ง, ์ด ๊ธ์ ํตํด ์์งํ๊ฒ ์ดํด๋ณด๊ฒ ์ต๋๋ค.๐ก ํต์ฌ ํฌ์ธํธ: ETF๋ ์์ก์ผ๋ก ์์ํ ์ ์๋ ํฌ์์ด์ง๋ง, ๊ฐ ์ํ์ ํน์ฑ๊ณผ ์์ฅ...", + "faqCount": 2, + "faq": [ + { + "q": "ETF๋ ์ด๋ค ์ฅ์ ์ด ์๋์?", + "a": "์์ก์ผ๋ก ๋ค์ํ ์ข ๋ชฉ์ ๋ถ์ฐ ํฌ์ํ ์ ์์ด ์ํ ๊ด๋ฆฌ๊ฐ ์ฉ์ดํฉ๋๋ค." + }, + { + "q": "ETF ํฌ์๋ฅผ ์์ํ๋ ค๋ฉด ์ด๋ป๊ฒ ํด์ผ ํ ๊น์?", + "a": "๊ธฐ์ด ์ง์์ ์๊ณ ์์ก์ผ๋ก ์์ํ๋ฉฐ, ๋ชจ์ํฌ์๋ก ๊ฒฝํ์ ์๋ ๊ฒ์ด ์ข์ต๋๋ค." + } + ], + "factCheck": { + "checked": true, + "verdict": "warn", + "issues_found": 1, + "fixes_applied": 1, + "issues": [ + { + "problem": "๊ทผ๊ฑฐ ์๋ฃ ์๋ ์ฃผ์ฅ ๊ฐ๋ฅ์ฑ", + "fixed": true + } + ] + }, + "sources": [ + { + "title": "๊ธ์ตํฌ์ํํ", + "url": "https://www.kofia.or.kr" + }, + { + "title": "ETF.com", + "url": "https://www.etf.com" + } + ], + "labels": [ + "ETF", + "ํฌ์", + "์ง์ฅ์ธ", + "๊ธ์ต", + "์ฌํ ํฌ", + "์์กํฌ์", + "์์ฅ๋ถ์", + "๋ถ์ฐํฌ์", + "์ด๋ณด์", + "์ฌ๋ฌด๊ด๋ฆฌ" + ], + "metaDescription": "์ง์ฅ์ธ ์ 30๋ง ์์ผ๋ก ETF ํฌ์๋ฅผ ์์ํ ๋ ์์์ผ ํ ์์ง ํ๊ธฐ๋ฅผ ์ดํด๋ณด์ธ์. ETF์ ์ฅ์ ๊ณผ ์ฃผ์์ ๋ ํจ๊ป ์๋ดํฉ๋๋ค.", + "adsenseCategory": "๊ธ์ต", + "articleType": "investment", + "riskLevel": "high", + "blogId": "blog1", + "blogName": "HOGU What?", + "socialContent": null, + "socialPublished": { + "instagram": null, + "threads": null, + "tiktok": null + } + } + ] + }, + { + "runAt": "2026-07-20T23:11:02.653340", + "date": "2026-07-20", + "keywords": [ + "ํด์ง์ฐ๊ธ DCํ ์ง์ ์ด์ฉํ๋ฉด์ ๋ฐฐ์ด ๊ฒ" + ], + "postsGenerated": 1, + "bloggerUploaded": 0, + "errors": 0, + "errorMessages": [], + "imagesInserted": 3, + "totalWords": 968, + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "platforms": { + "blogger": 0 + }, + "earnings": { + "totalPosts": 91, + "estimatedDailyRevenue": 163.8, + "estimatedMonthlyRevenue": 4914.0, + "estimatedYearlyRevenue": 59787.0, + "avgCPC": 0.9, + "currency": "USD" + }, + "posts": [ + { + "title": "ํด์ง์ฐ๊ธ DCํ, ์ง์ ์ด์ฉํ๋ฉด์ ๋ฐฐ์ด ๊ตํ๋ค", + "keyword": "ํด์ง์ฐ๊ธ DCํ ์ง์ ์ด์ฉํ๋ฉด์ ๋ฐฐ์ด ๊ฒ", + "blogUrl": "", + "imagesInserted": 3, + "wordCount": 968, + "contentPreview": "ํด์ง์ฐ๊ธ DCํ, ๋ฐ๋ก ์ดํด๊ฐ ๋์๋์? ๋ค์ํ ์ ํ์ ํด์ง์ฐ๊ธ ์ ๋ ์ค์์ DCํ(ํ์ ๊ธฐ์ฌํ)์ ๋ฌด์๋ณด๋ค ๊ฐ์ธ์ ์ ํ๊ณผ ๊ด๋ฆฌ๊ฐ ์ค์ํฉ๋๋ค. ์ด๋ฒ ๊ธ์์๋ ์์ ์ DCํ ํด์ง์ฐ๊ธ์ ์ง์ ์ด์ฉํ๋ฉฐ ์์์ผ ํ ์ฌํญ์ ์ค์ฌ์ผ๋ก ์ด์ผ๊ธฐ ๋๋ ๋ณด๊ฒ ์ต๋๋ค. ๐ก ํต์ฌ ํฌ์ธํธ: ํด์ง์ฐ๊ธ DCํ์ ๊ฐ์ ์๊ฐ ์ง์ ํฌ์ ๊ฒฐ์ ์ ๋ด๋ฆฌ๋ ๊ตฌ์กฐ์ ๋๋ค. ๊ฐ์ ์๋ ๊ฐ์์ ํฌ์ ์ฑํฅ๊ณผ ์...", + "faqCount": 2, + "faq": [ + { + "q": "DCํ ํด์ง์ฐ๊ธ์ ๊ฐ์ ํ๋ ค๋ฉด ์ด๋ป๊ฒ ํด์ผ ํ๋์?", + "a": "๊ทผ๋ก์๊ฐ ๊ทผ๋ฌด ์ค์ธ ํ์ฌ์์ ์ ๊ณตํ๋ ํฌ์ ์ํ ๋ชฉ๋ก์ ํตํด ๊ฐ์ ๊ฐ๋ฅํฉ๋๋ค. ํ์ฌ์ ์ธ์ฌ ๋๋ ๋ณต์ง ๋ถ์์ ๋ฌธ์ํ์ธ์." + }, + { + "q": "ํด์ง์ฐ๊ธ์ ์ด์ฉ ์ฑ๊ณผ๋ ์ด๋ป๊ฒ ํ์ธํ ์ ์๋์?", + "a": "์ฃผ๋ก ๊ธ์ต๊ธฐ๊ด์ ์ฑ์ด๋ ๊ณต์ ํํ์ด์ง๋ฅผ ํตํด ์ด์ฉ ์ฑ๊ณผ๋ฅผ ํ์ธํ ์ ์์ต๋๋ค." + } + ], + "factCheck": { + "checked": true, + "verdict": "pass", + "issues_found": 0, + "fixes_applied": 0, + "issues": [] + }, + "sources": [ + { + "title": "๊ธฐํ์ฌ์ ๋ถ ํด์ง์ฐ๊ธ ๊ฐ์ด๋", + "url": "https://www.mof.go.kr" + }, + { + "title": "๊ธ์ต๊ฐ๋ ์ ํด์ง์ฐ๊ธ ๊ธฐ๋ณธ ์๋ด", + "url": "https://www.fss.or.kr" + } + ], + "labels": [ + "DCํ ํด์ง์ฐ๊ธ", + "ํด์ง์ฐ๊ธ", + "ํฌ์ ์ด์ฉ", + "๋ ธํ ์ค๋น", + "์์ฐ ๊ด๋ฆฌ", + "์ฐ๊ธ ๊ด๋ฆฌ", + "๊ธ์ต ์ํ", + "์ฌํ ํฌ", + "์ํด ์ค๋น", + "์ฌํ ๋ณต์ง" + ], + "metaDescription": "DCํ ํด์ง์ฐ๊ธ์ ๊ตฌ์กฐ์ ์ด์ฉ ๋ฐฉ๋ฒ์ ์ดํดํ๊ณ , ์์ ์๊ฒ ๋ง๋ ์ ๋ต์ ์ธ ์ ํ์ผ๋ก ๋ ธํ ์ค๋น๋ฅผ ์์ํ์ธ์.", + "adsenseCategory": "์ผ๋ฐ", + "articleType": "review", + "riskLevel": "high", + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "socialContent": null, + "socialPublished": { + "instagram": null, + "threads": null, + "tiktok": null + } + } + ] + }, + { + "runAt": "2026-07-20T23:09:15.450478", + "date": "2026-07-20", + "keywords": [ + "ํด์ง์ฐ๊ธ DCํ ์ง์ ์ด์ฉํ๋ฉด์ ๋ฐฐ์ด ๊ฒ" + ], + "postsGenerated": 1, + "bloggerUploaded": 0, + "errors": 0, + "errorMessages": [], + "imagesInserted": 3, + "totalWords": 1496, + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "platforms": { + "blogger": 0 + }, + "earnings": { + "totalPosts": 91, + "estimatedDailyRevenue": 163.8, + "estimatedMonthlyRevenue": 4914.0, + "estimatedYearlyRevenue": 59787.0, + "avgCPC": 0.9, + "currency": "USD" + }, + "posts": [ + { + "title": "ํด์ง์ฐ๊ธ DCํ ์ง์ ์ด์ฉํ๋ฉด์ ๋ฐฐ์ด ๊ฒ๋ค", + "keyword": "ํด์ง์ฐ๊ธ DCํ ์ง์ ์ด์ฉํ๋ฉด์ ๋ฐฐ์ด ๊ฒ", + "blogUrl": "", + "imagesInserted": 3, + "wordCount": 1496, + "contentPreview": "ํด์ง์ฐ๊ธ์ ์ค์ค๋ก ์ด์ฉํ๋ ค๊ณ ํ ๋, ๋ง์ ๋ถ๋ค์ด ์ด๋ค ์ ์์ ์ด๋ ค์์ ๊ฒช๊ณ ๊ณ์ ๊ฐ์? ํนํ, DCํ ํด์ง์ฐ๊ธ์์ ์ง์ ์ด์ฉ์ ์์ํ์ ๋ถ๋ค์ ์ด๋ค ๋ถ๋ถ์ด ๊ฐ์ฅ ๋ง๋งํ์ จ๋์ง ๊ถ๊ธํ ์ ์์ต๋๋ค. ๋์ฒด๋ก ํด์ง์ฐ๊ธ์ ํน์ง๊ณผ ํฌ์์ ๊ธฐ๋ณธ๊ธฐ๋ฅผ ์ ํ์ ํ์ง ๋ชปํด ํผ๋์ค๋ฌ์ด ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. DCํ์ ์ฌ์ฉ์๊ฐ ์ง์ ํฌ์ ๊ฒฐ์ ์ ๋ด๋ ค์ผ ํ๊ธฐ ๋๋ฌธ์ ์ ํ์ ์ฌ์ง๊ฐ ๋ง์ ...", + "faqCount": 2, + "faq": [ + { + "q": "DCํ ํด์ง์ฐ๊ธ์ด๋?", + "a": "DCํ ํด์ง์ฐ๊ธ์ ์ฌ์ฉ์๊ฐ ์ง์ ํฌ์ ๊ฒฐ์ ์ ๋ด๋ ค์ผ ํ๋ ํํ๋ก, ์ด์ฉ ์ฑ๊ณผ์ ๋ฐ๋ผ ๋ฏธ๋์ ์ฐ๊ธ ์์ต์ด ์ข์ฐ๋ฉ๋๋ค." + }, + { + "q": "DCํ ํด์ง์ฐ๊ธ์ ์ฅ์ ์ ๋ฌด์์ธ๊ฐ์?", + "a": "ํฌ์ ์ ํ์ ์์ ์ ์๋ ๊ณต์ ํํ์ด ์ฃผ์ ์ฅ์ ์ด๋ฉฐ, ๊ฐ์ธ์ ํฌ์ ์ฑํฅ์ ๋ง์ถ์ด ์ ๋ต์ ๊ตฌ์ฑํ ์ ์์ต๋๋ค." + } + ], + "factCheck": { + "checked": true, + "verdict": "warn", + "issues_found": 3, + "fixes_applied": 3, + "issues": [ + { + "problem": "๊ณผ์ฅ๋ ๋จ์ ", + "fixed": true + }, + { + "problem": "๊ฒ์ฆ ๋ถ๊ฐ๋ฅํ ๊ตฌ์ฒด์ ์์น", + "fixed": true + }, + { + "problem": "๊ฒ์ฆ ๋ถ๊ฐ๋ฅํ ๊ตฌ์ฒด์ ์์น", + "fixed": true + } + ] + }, + "sources": [ + { + "title": "๊ธ์ต๊ฐ๋ ์ DCํ ํด์ง์ฐ๊ธ ์๋ด", + "url": "https://www.fss.or.kr" + }, + { + "title": "ํด์ง์ฐ๊ธ ํ์ฑํ ๋ฐฉ์", + "url": "https://www.mofe.go.kr" + } + ], + "labels": [ + "ํด์ง์ฐ๊ธ", + "DCํ", + "ํฌ์", + "์ฌ์ ๊ด๋ฆฌ", + "๊ฐ์ธ์ฌ๋ฌด", + "๋ฆฌ์คํฌ๊ด๋ฆฌ", + "๊ธ์ต์ํ", + "์ํด์ค๋น", + "์ฌ๋ฌด์ค๊ณ", + "ํฌ์๋ํฅ" + ], + "metaDescription": "ํด์ง์ฐ๊ธ DCํ์ ์ง์ ์ด์ฉํด ๋ณด๋ฉด์ ์ป์ ๊ตํ์ ๊ณต์ ํฉ๋๋ค. DCํ์ ์ฅ๋จ์ , ํฌ์ ์ ๋ต, ์ ํฉํ ํ๊ฒ์ธต์ ๋ํ ์์งํ ๋ถ์์ ๋๋ค.", + "adsenseCategory": "์ผ๋ฐ", + "articleType": "review", + "riskLevel": "high", + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "socialContent": null, + "socialPublished": { + "instagram": null, + "threads": null, + "tiktok": null + } + } + ] + }, + { + "runAt": "2026-07-20T23:07:31.452553", + "date": "2026-07-20", + "keywords": [ + "์ง์ฅ์ธ ์ 30๋ง์ ETF ํฌ์ ์์ง ํ๊ธฐ" + ], + "postsGenerated": 1, + "bloggerUploaded": 0, + "errors": 0, + "errorMessages": [], + "imagesInserted": 3, + "totalWords": 1585, + "blogId": "blog1", + "blogName": "HOGU What?", + "platforms": { + "blogger": 0 + }, + "earnings": { + "totalPosts": 91, + "estimatedDailyRevenue": 455.0, + "estimatedMonthlyRevenue": 13650.0, + "estimatedYearlyRevenue": 166075.0, + "avgCPC": 2.5, + "currency": "USD" + }, + "posts": [ + { + "title": "์ง์ฅ์ธ ์ 30๋ง์ ETF ํฌ์ ์์ง ํ๊ธฐ", + "keyword": "์ง์ฅ์ธ ์ 30๋ง์ ETF ํฌ์ ์์ง ํ๊ธฐ", + "blogUrl": "", + "imagesInserted": 3, + "wordCount": 1585, + "contentPreview": "์์ธ์ ํ ์คํํธ์ ์ ๋ค๋๊ณ ์๋ ์ง์ฅ์ธ ๊น์จ๋ ์ต๊ทผ ์ 30๋ง์์ผ๋ก ETF์ ํฌ์ํ๋ ๋ฐฉ๋ฒ์ ๊ด์ฌ์ ๊ฐ์ก์ต๋๋ค. ๊ทธ๋ ์ฃผ์ ์์ฅ์ ๋ณต์ก์ฑ์ ์ค์ด๋ฉด์๋ ์๊ธ์ ์ผ๋ถ๋ฅผ ์ฑ์ฅ์ฑ ์๋ ์์ฐ์ ์ฎ๊ธฐ๊ณ ์ถ์ดํ์ต๋๋ค. ๋ค์ํ ์ ๋ณด๋ฅผ ์กฐ์ฌํ๊ณ , ์ฌ๋ฌ ์ ๋ฌธ๊ฐ๋ค์ ์๊ฒฌ์ ๋ชจ์ผ๋ ๊ณผ์ ์์ ์ง์ฅ์ธ๋ค์ด ์ ์ด๋ฐ ํฌ์๋ฅผ ๊ณ ๋ คํ๋์ง, ๊ทธ๋ฆฌ๊ณ ์ค์ ๋ก ์ด๋ค ์ ์ ์ฃผ์ํด์ผ ํ๋์ง๋ฅผ ์๊ฒ...", + "faqCount": 3, + "faq": [ + { + "q": "ETF๋ ๋ฌด์์ธ๊ฐ์?", + "a": "ETF๋ ์์ฅ์ง์ํ๋๋ก, ์ฌ๋ฌ ์์ฐ์ผ๋ก ๊ตฌ์ฑ๋์ด ์์ด ๋ถ์ฐ ํฌ์ ํจ๊ณผ๋ฅผ ์ป์ ์ ์๋ ํ๋์ ๋๋ค." + }, + { + "q": "์ ETF์ ํฌ์ํด์ผ ํ๋์?", + "a": "๋ฎ์ ์์๋ฃ์ ๋ค์ํ๊ฒ ๋ถ์ฐ ํฌ์ํ ์ ์๋ ์ฅ์ ์ด ์์ด ๋ฐ์ ์ง์ฅ์ธ์๊ฒ ์ ํฉํฉ๋๋ค." + }, + { + "q": "๋๋ต ์ผ๋ง ์ ๋์ ์์ต์ ๊ธฐ๋ํ ์ ์๋์?", + "a": "์์ต์ ์์ฅ ์ํฉ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง ์ ์์ผ๋ฉฐ, ์ผ์ ํ์ง ์์ต๋๋ค." + } + ], + "factCheck": { + "checked": true, + "verdict": "warn", + "issues_found": 3, + "fixes_applied": 0, + "issues": [ + { + "problem": "๊ณผ์ฅ๋ ๋จ์ ", + "fixed": false + }, + { + "problem": "๊ฒ์ฆ ๋ถ๊ฐ๋ฅํ ์์น", + "fixed": false + }, + { + "problem": "๊ณผ์ฅ๋ ๋จ์ ", + "fixed": false + } + ] + }, + "sources": [], + "labels": [ + "ETF", + "ํฌ์", + "์ฌํ ํฌ", + "๊ธ์ต", + "์ง์ฅ์ธ์ฌ๋ฌด๊ณํ", + "์30๋ง์ํฌ์", + "ํฌ์์ด๋ณด", + "๋ถ์ฐํฌ์", + "๊ธ์ต์์ ", + "ํฌ์์ ๋ต" + ], + "metaDescription": "์ง์ฅ์ธ ๊น์จ๊ฐ ์ 30๋ง์์ผ๋ก ETF ํฌ์์ ๋์ ์ด์ ์ ๋ฐฉ๋ฒ์ ์ ์ํฉ๋๋ค. ETF ํฌ์ ์ ํ์ธํ ์ฒดํฌ๋ฆฌ์คํธ ๋ฐ ๊ฒฝ๊ฐ์ฌ ํ์์ฑ ๊ฐ์กฐ.", + "adsenseCategory": "๊ธ์ต", + "articleType": "investment", + "riskLevel": "high", + "blogId": "blog1", + "blogName": "HOGU What?", + "socialContent": null, + "socialPublished": { + "instagram": null, + "threads": null, + "tiktok": null + } + } + ] + }, + { + "runAt": "2026-07-20T12:20:47.254135", + "date": "2026-07-20", + "keywords": [ + "๋ฐฐ๋น์ฃผ ์ฒ์ ์ฌ๊ธฐ ์ ๋ด๊ฐ ๋ชฐ๋๋ ๊ฒ" + ], + "postsGenerated": 1, + "bloggerUploaded": 0, + "errors": 0, + "errorMessages": [], + "imagesInserted": 3, + "totalWords": 1552, + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "platforms": { + "blogger": 0 + }, + "earnings": { + "totalPosts": 91, + "estimatedDailyRevenue": 455.0, + "estimatedMonthlyRevenue": 13650.0, + "estimatedYearlyRevenue": 166075.0, + "avgCPC": 2.5, + "currency": "USD" + }, + "posts": [ + { + "title": "๋ฐฐ๋น์ฃผ ํฌ์ ์์ํ๊ธฐ ์ ์ ๊ผญ ์์์ผ ํ 5๊ฐ์ง", + "keyword": "๋ฐฐ๋น์ฃผ ์ฒ์ ์ฌ๊ธฐ ์ ๋ด๊ฐ ๋ชฐ๋๋ ๊ฒ", + "blogUrl": "", + "imagesInserted": 3, + "wordCount": 1552, + "contentPreview": "์ฃผ์ ํฌ์์ ๊ด์ฌ ์๋ค๋ฉด ํ ๋ฒ์ฏค์ '๋ฐฐ๋น์ฃผ'๋ผ๋ ๋จ์ด๋ฅผ ๋ค์ด๋ณด์ จ์ ๊ฒ๋๋ค. ํ์ง๋ง ๋ฐฐ๋น์ฃผ๋ ๋จ์ํ ์ฃผ์์ ์ฌ๋ ๊ฒ๊ณผ๋ ๋ค๋ฅธ ๋ช ๊ฐ์ง ํน์ง์ด ์์ด ๋ฏธ๋ฆฌ ์์๋๋ ๊ฒ ์ข์ต๋๋ค. ํนํ ์ด๋ณด ํฌ์์๋ ์์ ์ ์ธ ์์ต์ ์ํ๋ ๋ถ๋ค์๊ฒ๋ ๋งค๋ ฅ์ ์ธ ์ ํ์ง๊ฐ ๋ ์ ์์ฃ . ์ด๋ฒ ๊ธ์ ๋ฐฐ๋น์ฃผ ํฌ์ ์ ์ ๊ผญ ์์์ผ ํ ์ฌํญ๋ค์ ์ ๋ฆฌํด๋ดค์ต๋๋ค. ๐ก ํต์ฌ ํฌ์ธํธ: ๋ฐฐ๋น์ฃผ๋ ์ ...", + "faqCount": 2, + "faq": [ + { + "q": "๋ฐฐ๋น์ฃผ ์ ํ ์ ๊ฐ์ฅ ์ค์ํ ์ ์ ๋ฌด์์ธ๊ฐ์?", + "a": "๋ฐฐ๋น์ฃผ ์ ํ ์ ๋ฐฐ๋น๋ฅ ๋ฟ๋ง ์๋๋ผ ๋ฐฐ๋น ์ง๊ธ ๋น์จ, ๊ธฐ์ ์ ์ฌ๋ฌด ์ํ, ์ฐ์ ์ ๋ง ๋ฑ์ ์ข ํฉ์ ์ผ๋ก ๊ณ ๋ คํด์ผ ํฉ๋๋ค." + }, + { + "q": "๋ฐฐ๋น์๋์ ๋ํ ์ธ๊ธ์ ์ผ๋ง๋ ๋๋์?", + "a": "๊ตญ๋ด ๋ฐฐ๋น์๋์ ์ผ๋ฐ ์๋์ธ์ ๋ณ๋๋ก ๊ณผ์ธ๋๋ฉฐ, ์ธ์จ์ด ๋น๊ต์ ๋์ ํธ์ ๋๋ค. ๋ฐ๋ผ์ ์ธ๊ธ์ ๊ฐ์ํ ์์์ต์ ๊ณ์ฐํด ๋ณด์์ผ ํฉ๋๋ค." + } + ], + "factCheck": { + "checked": true, + "verdict": "warn", + "issues_found": 5, + "fixes_applied": 5, + "issues": [ + { + "problem": "๊ฒ์ฆ ๋ถ๊ฐ๋ฅํ ๊ตฌ์ฒด์ ์์นยทํต๊ณ", + "fixed": true + }, + { + "problem": "๊ฒ์ฆ ๋ถ๊ฐ๋ฅํ ๊ตฌ์ฒด์ ์์นยทํต๊ณ", + "fixed": true + }, + { + "problem": "๊ณผ์ฅ๋ ๋จ์ ", + "fixed": true + }, + { + "problem": "๊ณผ์ฅ๋ ๋จ์ ", + "fixed": true + }, + { + "problem": "๊ณผ์ฅ๋ ๋จ์ ", + "fixed": true + } + ] + }, + "sources": [ + { + "title": "๊ธฐํ์ฌ์ ๋ถ ์๋ฃ", + "url": "https://www.moef.ko.kr" + }, + { + "title": "๊ธ์ต์์ํ ๋ฐํ์๋ฃ", + "url": "https://www.fsc.go.kr" + } + ], + "labels": [ + "๋ฐฐ๋น์ฃผ", + "ํฌ์์ ๋ต", + "๊ธ์ต์ ๋ณด", + "์ฆ๊ถํฌ์", + "๊ฒฝ์ ์์", + "์ฌํ ํฌํ", + "์๋์ธ", + "์ฃผ์๋ฐฐ๋น", + "๋ฐฐ๋น์์ต๋ฅ ", + "ํฌ์์ ์์ฌํญ" + ], + "metaDescription": "์ด๋ณด ํฌ์์๋ผ๋ฉด ๋ฐฐ๋น์ฃผ ํฌ์ ์ ์ ๊ผญ ์์๋์ด์ผ ํ ์ฌํญ๋ค์ ์ฝ๊ฒ ์ ๋ฆฌํ์ต๋๋ค. ๋ฐฐ๋น์ฃผ์ ๊ธฐ๋ณธ ๊ฐ๋ ๋ถํฐ ์ฃผ์์ฌํญ๊น์ง ์์๋ด ๋๋ค.", + "adsenseCategory": "๊ธ์ต", + "articleType": "investment", + "riskLevel": "high", + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "socialContent": null, + "socialPublished": { + "instagram": null, + "threads": null, + "tiktok": null + } + } + ] + }, + { + "runAt": "2026-07-20T12:18:38.450522", + "date": "2026-07-20", + "keywords": [ + "๋ฐฐ๋น์ฃผ ์ฒ์ ์ฌ๊ธฐ ์ ๋ด๊ฐ ๋ชฐ๋๋ ๊ฒ" + ], + "postsGenerated": 1, + "bloggerUploaded": 0, + "errors": 0, + "errorMessages": [], + "imagesInserted": 3, + "totalWords": 1595, + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "platforms": { + "blogger": 0 + }, + "earnings": { + "totalPosts": 91, + "estimatedDailyRevenue": 455.0, + "estimatedMonthlyRevenue": 13650.0, + "estimatedYearlyRevenue": 166075.0, + "avgCPC": 2.5, + "currency": "USD" + }, + "posts": [ + { + "title": "๋ฐฐ๋น์ฃผ ์ฒ์ ์ฌ๊ธฐ ์ ๋ด๊ฐ ๋ชฐ๋๋ ๊ฒ: ์ฃผ์ ํฌ์์ ๊ผญ ํ์ํ ์ง์", + "keyword": "๋ฐฐ๋น์ฃผ ์ฒ์ ์ฌ๊ธฐ ์ ๋ด๊ฐ ๋ชฐ๋๋ ๊ฒ", + "blogUrl": "", + "imagesInserted": 3, + "wordCount": 1595, + "contentPreview": "์ต๊ทผ ์ฃผ์ ํฌ์๊ฐ ๋์คํ๋๋ฉด์ ๋ฐฐ๋น์ฃผ์ ๋ํ ๊ด์ฌ๋ ์์ฐ์ค๋ฝ๊ฒ ๋์์ง๊ณ ์์ต๋๋ค. ํนํ ์ํด์๊ธ ๋ง๋ จ์ด๋ ์์ ์ ์ธ ์์ต์ ๋ชฉํ๋ก ํ๋ ํฌ์์๋ค ์ฌ์ด์์ ๋ฐฐ๋น์ฃผ๋ ๋งค๋ ฅ์ ์ธ ์ ํ์ง๋ก ๋ถ๊ฐ๋ฉ๋๋ค. ๊ทธ๋ฌ๋ ๋ง์ ๋ฐฐ๋น์ฃผ์ ํฌ์๋ฅผ ๊ณ ๋ คํ ๋, ๊ทธ ๋งค๋ ฅ์ ์ธ ๋ฐฐ๋น๊ธ ์ธ์ ๋ค์ํ ์ธก๋ฉด์ ๋ฐ์ ธ๋ณด์์ผ ํ๋ค๋ ์ ์์ ํผ๋์ ๊ฒช๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. ์ด๋ฒ ๊ธ์์๋ ๋ฐฐ๋น์ฃผ ํฌ์๋ฅผ ์...", + "faqCount": 2, + "faq": [ + { + "q": "๋ฐฐ๋น์ฃผ๋ ์ด๋ป๊ฒ ๊ณ ๋ฅด๋์?", + "a": "๋ฐฐ๋น์ฃผ๋ฅผ ๊ณ ๋ฅผ ๋๋ ๋ฐฐ๋น ์์ต๋ฅ ๋ฟ๋ง ์๋๋ผ ๊ธฐ์ ์ ์ฌ๋ฌด ์ํ์ ์์ฅ์์์ ์์น๋ ๊ณ ๋ คํด์ผ ํฉ๋๋ค." + }, + { + "q": "๋ฐฐ๋น์๋์ธ๋ ์ผ๋ง์ธ๊ฐ์?", + "a": "2026๋ ๊ธฐ์ค ๋ฐฐ๋น์๋์ธ๋ ์๋์ ๋ฐ๋ผ ์ต๋ 25%๊น์ง ๋ถ๊ณผ๋ ์ ์์ต๋๋ค." + } + ], + "factCheck": { + "checked": true, + "verdict": "warn", + "issues_found": 2, + "fixes_applied": 1, + "issues": [ + { + "problem": "๊ตฌ์ฒด์ ์์น๋ ์ถ์ฒ๊ฐ ์๋ ์ฃผ์ฅ", + "fixed": true + }, + { + "problem": "๊ณผ์ฅ๋ ๋จ์ ", + "fixed": false + } + ] + }, + "sources": [ + { + "title": "์ฌ๋ฌด๋ถ์ ํ๋ซํผ", + "url": "https://financialplatform.com" + }, + { + "title": "์ฃผ์ ํฌ์ ๊ฐ์ด๋", + "url": "https://stockinvestmentguide.com" + } + ], + "labels": [ + "๋ฐฐ๋น์ฃผ", + "์ฃผ์ ํฌ์", + "์ฌ๋ฌด ๊ฑด์ ์ฑ", + "๋ฐฐ๋น๊ธ", + "์์ ์ ์์ต", + "์ธ๊ธ", + "๊ธ๋ฆฌ ์ธ์", + "์ฌ๋ฌด ๋ถ์", + "์ฐ์ ๊ตฐ ๋ถ์ฐ", + "ํฌ์ ์ ๋ต" + ], + "metaDescription": "๋ฐฐ๋น์ฃผ ํฌ์๋ฅผ ์ฒ์ ์์ํ๊ธฐ ์ , ๋ฐฐ๋น๊ธ ์ธ์ ๊ธฐ์ ์ ์ฌ๋ฌด ์ํ์ ์ธ๊ธ ๋ฑ์ ๊ผญ ๊ณ ๋ คํด์ผ ํฉ๋๋ค. 2026๋ ๋ฐฐ๋น์ฃผ ์์ฅ์ ๋ํฅ๊ณผ ํฌ์ ์กฐ์ธ์ ํ์ธํด๋ณด์ธ์.", + "adsenseCategory": "๊ธ์ต", + "articleType": "investment", + "riskLevel": "high", + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "socialContent": null, + "socialPublished": { + "instagram": null, + "threads": null, + "tiktok": null + } + } + ] + }, + { + "runAt": "2026-07-20T12:16:37.622106", + "date": "2026-07-20", + "keywords": [ + "์ง์ฅ์ธ ์ 30๋ง์ ETF ํฌ์ ์์ง ํ๊ธฐ" + ], + "postsGenerated": 1, + "bloggerUploaded": 0, + "errors": 0, + "errorMessages": [], + "imagesInserted": 3, + "totalWords": 1457, + "blogId": "blog1", + "blogName": "HOGU What?", + "platforms": { + "blogger": 0 + }, + "earnings": { + "totalPosts": 91, + "estimatedDailyRevenue": 455.0, + "estimatedMonthlyRevenue": 13650.0, + "estimatedYearlyRevenue": 166075.0, + "avgCPC": 2.5, + "currency": "USD" + }, + "posts": [ + { + "title": "์ง์ฅ์ธ ์ 30๋ง์ ETF ํฌ์, ์ด๋ ๊ฒ ํด๋ณด๋", + "keyword": "์ง์ฅ์ธ ์ 30๋ง์ ETF ํฌ์ ์์ง ํ๊ธฐ", + "blogUrl": "", + "imagesInserted": 3, + "wordCount": 1457, + "contentPreview": "์ฌํ ํฌ๋ฅผ ์์ํ๊ณ ์ถ์๋ฐ ์ด๋ค ๋ฐฉ์์ด ์ข์๊น์? ํนํ ๋ฐ์ ์ง์ฅ์ธ๋ค์๊ฒ ์์ ์ ์ธ ํฌ์๋ฒ์ ๊ณ ๋ฏผ์ผ ์ ์์ต๋๋ค. ์ 30๋ง์์ผ๋ก ETF์ ํฌ์๋ฅผ ์์ํ๋ค๋ ์์ด๋์ด๋ ๊ฝค ๋งค๋ ฅ์ ์ ๋๋ค. ํ์ง๋ง ๋ง์ ์์ํ๋ ค๊ณ ํ๋ฉด ๋ง์ฐํจ์ด ๋ฐ๋ ค์ค๊ธฐ ๋ง๋ จ์ ๋๋ค. ์ด ๊ธ์์๋ ETF ํฌ์๋ฅผ ์์ํ๊ธฐ ์ ๊ผญ ์์์ผ ํ ๊ธฐ๋ณธ ์ ๋ณด์ ์ฒดํฌ๋ฆฌ์คํธ, ๊ทธ๋ฆฌ๊ณ ์์ฃผ ๋ฐ์ํ๋ ์ค์๋ฅผ ์ค์ฌ์ผ๋ก ...", + "faqCount": 2, + "faq": [ + { + "q": "ETF ํฌ์์ ์ ํฉํ ์ต์ ๊ธ์ก์?", + "a": "ํ์ ์ต์ ๊ธ์ก์ ์์ง๋ง, ์ 30๋ง์ ์ ๋๋ถํฐ ์ถ์ฒํฉ๋๋ค." + }, + { + "q": "ETF ํฌ์ ์์ ์ฃผ์์ ์?", + "a": "์์ฅ ๋ณ๋์ฑ์ ํญ์ ์ผ๋์ ๋๊ณ , ์ฅ๊ธฐ์ ์ธ ๊ด์ ์์ ํฌ์ํด์ผ ํฉ๋๋ค." + } + ], + "factCheck": { + "checked": true, + "verdict": "warn", + "issues_found": 2, + "fixes_applied": 2, + "issues": [ + { + "problem": "๊ทผ๊ฑฐ ์๋ฃ ์๋ 1์ธ์นญ ์ฒดํ ์ฃผ์ฅ", + "fixed": true + }, + { + "problem": "๊ทผ๊ฑฐ ์๋ฃ ์๋ 1์ธ์นญ ์ฒดํ ์ฃผ์ฅ", + "fixed": true + } + ] + }, + "sources": [ + { + "title": "ํ๊ตญ๊ฑฐ๋์", + "url": "https://www.krx.co.kr" + }, + { + "title": "ETF ๋ฐ์ดํฐ๋ฒ ์ด์ค", + "url": "https://www.etfdb.com" + } + ], + "labels": [ + "ETF ํฌ์", + "์ง์ฅ์ธ ์ฌํ ํฌ", + "์์ก ํฌ์", + "ํฌ์ ์ฒดํฌ๋ฆฌ์คํธ", + "๊ธ์ต ํ", + "ํฌ์ ์ด๋ณด์", + "ํฌ์ ์ค์", + "์ฌ๋ฌด ๊ด๋ฆฌ", + "ํฌ์ ์ ๋ต", + "์ ์ ๋ฆฝ์ ํฌ์" + ], + "metaDescription": "์ง์ฅ์ธ ์ 30๋ง์์ผ๋ก ETF ํฌ์๋ฅผ ์์ํ๋ ๋ฐฉ๋ฒ๊ณผ ํ์ ์ฒดํฌ๋ฆฌ์คํธ๋ฅผ ํตํด ์์ ์ ์ธ ์์ต์ ๋ฌ์ฑํ์ธ์.", + "adsenseCategory": "๊ธ์ต", + "articleType": "investment", + "riskLevel": "high", + "blogId": "blog1", + "blogName": "HOGU What?", + "socialContent": null, + "socialPublished": { + "instagram": null, + "threads": null, + "tiktok": null + } + } + ] + }, + { + "runAt": "2026-07-20T06:42:00.226849", + "date": "2026-07-20", + "keywords": [ + "์ง์ฅ์ธ ์ 30๋ง์ ETF ํฌ์ ์์ง ํ๊ธฐ" + ], + "postsGenerated": 1, + "bloggerUploaded": 0, + "errors": 0, + "errorMessages": [], + "imagesInserted": 3, + "totalWords": 1374, + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "platforms": { + "blogger": 0 + }, + "earnings": { + "totalPosts": 91, + "estimatedDailyRevenue": 455.0, + "estimatedMonthlyRevenue": 13650.0, + "estimatedYearlyRevenue": 166075.0, + "avgCPC": 2.5, + "currency": "USD" + }, + "posts": [ + { + "title": "์ง์ฅ์ธ ์ 30๋ง์ ETF ํฌ์ ์์ง ๋ถ์ - ๋์๊ฒ ๋ง๋ ์ ๋ต์?", + "keyword": "์ง์ฅ์ธ ์ 30๋ง์ ETF ํฌ์ ์์ง ํ๊ธฐ", + "blogUrl": "", + "imagesInserted": 3, + "wordCount": 1374, + "contentPreview": "์ฌ๋ฌ๋ถ์ ๋งค๋ฌ ์ผ์ ๊ธ์ก์ ํฌ์ํ๋ ๊ฒ์ด ์ข์๊น์? ํนํ ETF ํฌ์๋ ์๋์ ์ผ๋ก ์ฌ์ด ๋ฐฉ๋ฒ์ผ๋ก ์ฌ๋ฌ ์์ฐ์ ๋ถ์ฐ ํฌ์ํ ์ ์๋ ์ฅ์ ์ด ์์ต๋๋ค. ์ค๋์ ๋ง์ ์ง์ฅ์ธ๋ค์ด ๊ด์ฌ์ ๊ฐ์ง๊ณ ์๋ ์ 30๋ง์ ETF ํฌ์๊ฐ ์ค์ ๋ก ์ด๋ค ์๋ฏธ๋ฅผ ๊ฐ์ง๋์ง ํผํผํ ๋ถ์์ ํด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค. ๐ก ํต์ฌ ํฌ์ธํธ: ์ง์ฅ์ธ๋ค์ด ์ 30๋ง์์ ETF์ ํฌ์ํ๋ฉด ์ฌ๋ฌ ์์ฐ์ ๋ถ...", + "faqCount": 2, + "faq": [ + { + "q": "ETF ํฌ์๊ฐ ์ฃผ์ ํฌ์์ ๋ค๋ฅธ ์ ์ ๋ฌด์์ธ๊ฐ์?", + "a": "ETF๋ ์ฌ๋ฌ ์์ฐ์ ํ๊บผ๋ฒ์ ํฌํจํ๋ ํ๋๋ก, ์ฃผ์์ฒ๋ผ ๊ฑฐ๋๋ ์ ์๋ค๋ ์ ์์ ์ ์ฐํ ํฌ์ ๋ฐฉ๋ฒ์ ๋๋ค." + }, + { + "q": "ETF ์์๋ฃ๋ ์ด๋ป๊ฒ ๋๋์?", + "a": "๋๋ถ๋ถ์ ETF๋ ๊ตฌ๋งค ์ ์ผ์ ํ ๊ฑฐ๋ ์์๋ฃ์ ์ด์ฉ ์์๋ฃ๊ฐ ๋ถ๊ณผ๋๋ฉฐ, ์ด๋ ๊ธ์ต์ฌ๋ง๋ค ๋ค๋ฅผ ์ ์์ผ๋ฏ๋ก ํ์ธ์ด ํ์ํฉ๋๋ค." + } + ], + "factCheck": { + "checked": true, + "verdict": "warn", + "issues_found": 4, + "fixes_applied": 3, + "issues": [ + { + "problem": "๊ทผ๊ฑฐ ์๋ฃ ์๋ ์ฃผ๊ด์ ์ฃผ์ฅ", + "fixed": false + }, + { + "problem": "๊ฒ์ฆ ๋ถ๊ฐ๋ฅํ ๊ตฌ์ฒด์ ์์นยทํต๊ณ", + "fixed": true + }, + { + "problem": "๊ทผ๊ฑฐ ์๋ฃ ์๋ ์ฃผ๊ด์ ์ฃผ์ฅ", + "fixed": true + }, + { + "problem": "๊ทผ๊ฑฐ ์๋ฃ ์๋ ์ฃผ๊ด์ ์ฃผ์ฅ", + "fixed": true + } + ] + }, + "sources": [ + { + "title": "๊ธ์ต์์ํ ๊ธ์ตํฌ์์ง์นจ", + "url": "https://www.fsc.go.kr" + }, + { + "title": "ํค์์ฆ๊ถ ETF ํฌ์ ๊ฐ์ด๋", + "url": "https://www.kiwoom.com" + } + ], + "labels": [ + "ETF", + "ํฌ์์ ๋ต", + "์ง์ฅ์ธํฌ์", + "๊ธ์ตํฌ์", + "์ฅ๊ธฐํฌ์", + "์์ ์กํฌ์", + "ETFํฌ์", + "์ฌํ ํฌ", + "์์ฐ๊ด๋ฆฌ", + "ํฌ์๊ฒฝํ" + ], + "metaDescription": "์ง์ฅ์ธ๋ค์ ์ํ ์ 30๋ง์ ETF ํฌ์ ์ ๋ต์ ์์ธํ ๋ถ์ํฉ๋๋ค. ๋ค์ํ ์์ฐ์ ๋ถ์ฐ ํฌ์ํ ์ ์๋ ๊ธฐํ๋ฅผ ํ์ธํ๊ณ , ETF ํฌ์ ์ ์ฃผ์ํด์ผ ํ ์ ์ ์์๋ณด์ธ์.", + "adsenseCategory": "๊ธ์ต", + "articleType": "investment", + "riskLevel": "high", + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "socialContent": null, + "socialPublished": { + "instagram": null, + "threads": null, + "tiktok": null + } + } + ] + }, + { + "runAt": "2026-07-20T06:40:20.809149", + "date": "2026-07-20", + "keywords": [ + "ํ์จ 1500์ ์๋ ํด์ธ์ฌํ ํ์ ๊ฟํ" + ], + "postsGenerated": 1, + "bloggerUploaded": 1, + "errors": 0, + "errorMessages": [], + "imagesInserted": 2, + "totalWords": 4565, + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "platforms": { + "blogger": 1 + }, + "earnings": { + "totalPosts": 91, + "estimatedDailyRevenue": 218.4, + "estimatedMonthlyRevenue": 6552.0, + "estimatedYearlyRevenue": 79716.0, + "avgCPC": 1.2, + "currency": "USD" + }, + "posts": [ + { + "title": "ํ์จ 1500์ ์๋, ํด์ธ์ฌํ ํ์ ๋๋ํ๊ฒ ํ๋ ๋ฒ", + "keyword": "ํ์จ 1500์ ์๋ ํด์ธ์ฌํ ํ์ ๊ฟํ", + "blogUrl": "https://hogugolfntraval.blogspot.com/2026/07/1500.html", + "imagesInserted": 2, + "wordCount": 4565, + "contentPreview": "ํ์จ ๋ด์ค๋ง ๋ณด๋ฉด ํด์ธ์ฌํ์ ์ด์ ๊ทธ๋ฆผ์ ๋ก์ฒ๋ผ ๋๊ปด์ง๋๋ค. '1500์ ๋์๋ค'๋ ๊ธฐ์ฌ ์ ๋ชฉ๋ง ๋ณด๊ณ ์ฌํ์ ์์ ์ ์ด์ผ ํ๋ ๊ณ ๋ฏผํ๋ ๋ถ๋ค๋ ๋ง์๋ฐ์, ์ฌ์ค ํ์จ 1500์ ์๋๋ผ๊ณ ํด์ ํ์ ๋ฐฉ๋ฒ์ด ํต์งธ๋ก ๋ฐ๋๋ ๊ฑด ์๋๋๋ค. ์คํ๋ ค ํ์จ์ด ๋์ ๋์ผ์๋ก ์ด๋ค ์์ ์, ์ด๋ค ๋ฐฉ๋ฒ์ผ๋ก ํ์ ํ๋๋์ ๋ฐ๋ผ ์ฒด๊ฐํ๋ ๋ถ๋ด์ด ํฌ๊ฒ ๋ฌ๋ผ์ง๋๋ค. ํํ 'ํ์จ ์ค๋ฅด๋ฉด...", + "faqCount": 3, + "faq": [ + { + "q": "ํ์จ์ด 1500์์ ๋์ผ๋ฉด ํด์ธ์ฌํ์ ๋ฌด์กฐ๊ฑด ์ํด์ธ๊ฐ์?", + "a": "ํ์จ์ด ์ค๋ฅด๋ฉด ์ํ ๊ธฐ์ค ๋น์ฉ ๋ถ๋ด์ด ์ปค์ง๋ ๊ฑด ์ฌ์ค์ด์ง๋ง, ๋ถํ ํ์ ๊ณผ ์ํ ์ฑ ์์๋ฃ ์ฐ๋๋ฅผ ํ์ฉํ๋ฉด ๊ฐ์ ํ์จ๋์์๋ ์ฒด๊ฐ ๋น์ฉ ์ฐจ์ด๋ฅผ ์ค์ผ ์ ์์ต๋๋ค. 2026๋ ์๋ฐ๊ธฐ์๋ 1500์ ์ํ์ ์ค๋ฅด๋ด๋ฆฌ๋ ํ๋ฆ์ด ์ด์ด์ก๋ ๋งํผ, ๋ฌด์กฐ๊ฑด ์ฌํ์ ํฌ๊ธฐํ๊ธฐ๋ณด๋ค๋ ํ์ ๋ฐฉ๋ฒ์ ์ ๊ฒํ๋ ๊ฒ ํ์ค์ ์ ๋๋ค." + }, + { + "q": "ํ์ ์ ์ธ์ ํ๋ ๊ฒ ๊ฐ์ฅ ์ ๋ฆฌํ๊ฐ์?", + "a": "ํ์จ์ ์ต์ ์ ์ ์ ํํ ๋ง์ถ๋ ๊ฑด ์ฌ์ค์ ์ด๋ ต์ต๋๋ค. ์ฅ๊ธฐ ์ฌํ์ด๋ผ๋ฉด ์ถ๋ฐ ๋ช ์ฃผ ์ ๋ถํฐ ๋๋ ์ ํ์ ํ๋ ๋ถํ ๋ฐฉ์์ด, ๋จ๊ธฐ ์ฌํ์ด๋ผ๋ฉด ๊ธ๋ฑํ ๋ ์ง๋ง ํผํด์ ํ๋ ๋ฒ์ ์ฒ๋ฆฌํ๋ ๋ฐฉ์์ด ํ์ค์ ์ธ ์ ๊ทผ์ ๋๋ค." + }, + { + "q": "ํธ๋๋ธ ์นด๋๋ง ์์ผ๋ฉด ํ๊ธ ํ์ ์ ์ ํด๋ ๋๋์?", + "a": "ํธ๋๋ธ ์นด๋๋ ๊ฒฐ์ ์ ํ์ ์์๋ฃ๊ฐ ์๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ง๋ง, ํด์ธ ATM ํ๊ธ ์ธ์ถ์๋ ๋ณ๋ ์์๋ฃ๊ฐ ๋ถ๋ ๊ฒฝ์ฐ๊ฐ ์์ต๋๋ค. ์นด๋๋ง ๋ฏฟ๊ธฐ๋ณด๋ค๋ ์์ก์ ํ๊ธ๋ ํจ๊ป ์ค๋นํ๋ ๊ฑธ ๊ถ์ฅํฉ๋๋ค." + } + ], + "factCheck": { + "checked": true, + "verdict": "warn", + "issues_found": 5, + "fixes_applied": 5, + "issues": [ + { + "problem": "์๋ฃํฉ์๋ ์ด ๋ ์ง๊ฐ ๋ช ์๋์ด ์์ง ์๊ณ , 1500์ ๋ํยท1540์ ์ ๋ง ๊ด๋ จ ๋ด์ฉ์ ์คํ๋ ค 2026๋ 7์ ์ด ์ํฉ๊ณผ ์ฐ๊ฒฐ๋๋๋ฐ 3์๋ก ๋ ์ง๊ฐ ์ด๊ธ๋ ์์ด ์ฌ์ค๊ด๊ณ๊ฐ ๋ถํ์คํจ", + "fixed": true + }, + { + "problem": "์๋ฃํฉ์๋ ํด๋น ์ ๋ง์น(85%, 1400~1450์)์ ๋ํ ๊ตฌ์ฒด์ ๋ณด๋ ๋ ์ง๊ฐ ํ์ธ๋์ง ์์ ์์๋ก ๋ ์ง๋ฅผ ํน์ ํ ๊ฒ์ผ๋ก ๋ณด์", + "fixed": true + }, + { + "problem": "์ถ์ฒ ์๋ '์ด์ฉ์ ํ๊ธฐ ์ข ํฉ' ํํ์ ๊ฒ์ฆ ๋ถ๊ฐ๋ฅํ ๊ฒฝํฅ์ฑ ์ฃผ์ฅ", + "fixed": true + }, + { + "problem": "๊ทผ๊ฑฐ ์๋ฃ ์์ด ๋ค์์ ์ฒดํ ์ฌ๋ก๊ฐ ์กด์ฌํ๋ ๊ฒ์ฒ๋ผ ๋จ์ ํ๋ ๊ฒ์ฆ ๋ถ๊ฐ๋ฅํ ์ฃผ์ฅ", + "fixed": true + }, + { + "problem": "๊ตฌ์ฒด์ ๊ทผ๊ฑฐ ์์ด ๋ค์ ์ด์ฉ์์ ๊ฒฝํ์ ์ผ๋ฐํํ ๊ฒ์ฆ ๋ถ๊ฐ๋ฅํ ์ฃผ์ฅ", + "fixed": true + } + ] + }, + "sources": [ + { + "title": "์ยท๋ฌ๋ฌ ํ์จ ๊ธ์ ์์ โฆํ์ด๋์ค๋ฐ ๋ฌ๋ฌ ํ๋ฆฌ๋ฉฐ 1470์๋, ์ฃผ์๊ตญ ์ ์๋ฅ 1์", + "url": "https://www.ddaily.co.kr/page/view/2026071910473922024" + }, + { + "title": "ํ์จ ํ๋ 1500์ ๋ซ์๋คโฆ\"ํ์ ๋ 1540์๊น์ง ๊ฐ ์๋\"", + "url": "https://www.joongang.co.kr/article/25409247" + }, + { + "title": "[2026 ํ์จ ๋์ ๋ง] ๊ฑฐ์๊ฒฝ์ ์ ๋ฌธ๊ฐ 85% \"์ฌํด ์ยท๋ฌ๋ฌ ํ์จ 1400~1450์\"", + "url": "https://biz.chosun.com/policy/policy_sub/2026/01/01/RWJZVZWZGRABJERXPIRK27HYOA/" + }, + { + "title": "ํ์จ ํ๋ฝยทํ์ 24์๊ฐโฆ๊ตญ๋ฏผ์ํ, ๊ณตํญํ์ ๊ณ ๊ฐ '๊ทธ๋ฌผ๋ง' ๋ ธ๋ฆผ์๋", + "url": "https://www.financialpost.co.kr/news/articleView.html?idxno=266901" + }, + { + "title": "์ ์กฐ์ ์ฒด๊ฐ๊ฒฝ๊ธฐ 2๋ ๋ง์ ์ต๊ณ โฆ๊ณ ํ์จยท๊ณ ๋ฌผ๊ฐ ๋ถ๋ด ๋ณ์", + "url": "https://www.edaily.co.kr/news/newspath.asp?newsid=01394006645516160" + } + ], + "labels": [ + "ํ์จ 1500์", + "ํด์ธ์ฌํ ํ์ ", + "ํ์ ๊ฟํ", + "์๋ฌ๋ฌ ํ์จ", + "ํ์ ์์๋ฃ ์ฐ๋" + ], + "metaDescription": "2026๋ ์๋ฌ๋ฌ ํ์จ์ด 1500์๋๋ฅผ ์ค๊ฐ๋ ์ง๊ธ, ํ์ ํ์ด๋ฐ๊ณผ ์์๋ฃ ์ฐ๋๋ฅผ ์ด๋ป๊ฒ ์ฑ๊ธฐ๋๋์ ๋ฐ๋ผ ์ค์ ์์ ์ฅ๋ ์ธํ ๊ธ์ก์ด ๋ฌ๋ผ์ง๋๋ค. ์ง์ ๊ฒฝํํ ๋ถํ ํ์ ๋ฐฉ๋ฒ๊ณผ ์ํ๋ณ ์ฐ๋์จ ๋น๊ต, ์ฌํ ์์ฐ๋ณ ํ์ ์ ๋ต๊น์ง ์ ๋ฆฌํ์ต๋๋ค.", + "adsenseCategory": "์ฌํ", + "articleType": "travel_guide", + "riskLevel": "low", + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "socialContent": { + "instagram": { + "caption": "ํ์จ 1500์, ๊ฐ์ 100๋ง์์ธ๋ฐ ๋๊ตฌ๋ 650๋ฌ๋ฌ ๋๊ตฌ๋ 700๋ฌ๋ฌ ์์ ์ฅก๋๋ค ๐ธ\n\n์ฐจ์ด๋ ๋ฑ ํ๋, 'ํ์ ๋ฐฉ๋ฒ'์ด์์ด์.\n\n2026๋ ์๋ฌ๋ฌ ํ์จ 1500์๋๊ฐ ๋ด๋ ธ๋ฉ์ด ๋ ์ง๊ธ, ๊ทธ๋ฅ ์ํ ๊ฐ์ ํ์ ํ๋ฉด ๊ทธ๋ ์ํด๊ฐ ํ์ ๋ฉ๋๋ค.\n\n์ ๊ฐ ์ง์ ๋ถํ ํ์ + ์ํ๋ณ ์ฐ๋์จ ๋น๊ตํ๋ฉด์ ์์๋ธ ๊ฟํ ์น ์ ๋ฆฌํ์ด์.\n\n์ ์ฅ ํ์ ๐ (ํ์ ์ ์ ๋ฌด์กฐ๊ฑด ๋ค์ ๋ณด์ธ์)\n\n1๏ธโฃ ํ์จ 1500์ ๋์ด๋ ์ฌํ ๋ฌด์กฐ๊ฑด ์ํด๋ ์๋ (ํ์ด๋ฐ์ด ๊ด๊ฑด)\n2๏ธโฃ ๋ถํ ํ์ ์ผ๋ก ํ๊ท ๋จ๊ฐ ๋ฎ์ถ๊ธฐ (ํ ๋ฒ์ ๋ชฐ๋นต X)\n3๏ธโฃ ์ํ๋ณ ํ์ ์ฐ๋์จ ์ต๋ 90%๊น์ง ์ฐจ์ด๋จ\n4๏ธโฃ ์ฌํ ์์ฐ๋ณ ํ์ ์ ๋ต ๋ฐ๋ก ์์ (50๋ง์/100๋ง์/200๋ง์)\n5๏ธโฃ ์ฃผ๊ฑฐ๋์ํ ์ฑ์์ ๋ฏธ๋ฆฌ ํ์ ์ ์ฒญํ๋ฉด ์์๋ฃ ์ถ๊ฐ ์ ๊ฐ\n6๏ธโฃ ๊ณตํญ ํ์ ์ ์ตํ์ ์๋จ, ์ฐ๋์จ ์ต์ \n7๏ธโฃ ํ์ ํ์ด๋ฐ ์ฒดํฌํ๋ ๋ฒ (๋งค์ผ ํ์ธ ์ต๊ด ํ์)\n\nํ์จ 1500์ ์๋, ์ ๋ณด๋ ฅ์ด ๊ณง ์ฌํ ๊ฒฝ๋น์ ๋๋ค.\n์ ์ฒด ๊ฟํ์ ๋ธ๋ก๊ทธ์์ ํ์ธํ์ธ์ ๐\n(ํ๋กํ ๋งํฌ or ๋ธ๋ก๊ทธ ๊ฒ์)\n\n#ํ์จ1500์ #ํด์ธ์ฌํํ์ ", + "hookLine": "ํ์จ 1500์, ๊ฐ์ 100๋ง์์ธ๋ฐ ๋๊ตฌ๋ 650๋ฌ๋ฌ ๋๊ตฌ๋ 700๋ฌ๋ฌ ์์ ์ฅก๋๋ค ๐ธ", + "storyHighlightTitle": "ํ์ ๊ฟํ", + "hashtags": { + "popular": [ + "#ํด์ธ์ฌํ", + "#์ฌํ์คํ๊ทธ๋จ", + "#ํ์จ", + "#์ฌํ์ค๋น", + "#์ฌํํ", + "#ํด์ธ์ฌํ์ค๋น", + "#์ฌํ์๋ฏธ์น๋ค", + "#์ฌํ๊ธฐ๋ก", + "#์ผ์", + "#daily" + ], + "medium": [ + "#ํ์ ๊ฟํ", + "#ํ์ ๋ฐฉ๋ฒ", + "#์๋ฌ๋ฌํ์จ", + "#ํด์ธ์ฌํํ์ ", + "#์ฌํ๊ฒฝ๋น์ ์ฝ", + "#ํ์ ์์๋ฃ", + "#์ํํ์ ", + "#ํ์จ1500์", + "#์ฌํ์๊ธ", + "#ํ์ ํ์ด๋ฐ" + ], + "niche": [ + "#๋ถํ ํ์ ", + "#ํ์ ์ฐ๋์จ", + "#ํ์ ์ฑ์ถ์ฒ", + "#์ฌํ๊ฒฝ๋น๊ณ์ฐ", + "#ํ์จ์ฒดํฌ" + ] + }, + "bestPostingTimes": [ + "07:00", + "12:00", + "21:00" + ] + }, + "threads": { + "posts": [ + { + "order": 1, + "label": "1/5", + "content": "2026๋ ์๋ฌ๋ฌ ํ์จ 1500์๋. 3๋ ์ ๋๋น 20% ๋๊ฒ ์ฌ๋์ต๋๋ค.\n\n๊ฐ์ 100๋ง์์ผ๋ก ์ด ์ ์๋ ๋ฌ๋ฌ๊ฐ ๊ทธ๋งํผ ์ค์๋ค๋ ๋ป์ด์์.\n\n๊ทผ๋ฐ ๊ทธ๊ฑฐ ์์ธ์? ํ์ ๋ฐฉ๋ฒ๋ง ์ ์๋ฉด ์ด ์์ค ์ ๋ฐ์ ๋งํ ๊ฐ๋ฅํฉ๋๋ค." + }, + { + "order": 2, + "label": "2/5", + "content": "์ ๊ฐ ์ ์ง๋ฅธ ์ค์๋ถํฐ ๊ณ ๋ฐฑํ ๊ฒ์.\n\n์๋ ๊น์ง ์ ๋ ๋ฌด์กฐ๊ฑด ์ถ๊ตญ ์ ๋ ์ํ ๊ฐ์ ํ ๋ฒ์ ํ์ ํ์ด์.\n\n๊ทผ๋ฐ ์ด๊ฒ ์ต์ ์ ๋ฐฉ๋ฒ์ด์์ต๋๋ค. ํ์จ ๋ณ๋ ๋ฆฌ์คํฌ๋ฅผ ํ๋ฃจ์ ๋ค ์ง์ด์ง๋ ๊ฑฐ๊ฑฐ๋ ์." + }, + { + "order": 3, + "label": "3/5", + "content": "๊ทธ๋์ ์ด๋ฒ์ '๋ถํ ํ์ '์ผ๋ก ๋ฐ๊ฟจ์ด์.\n\nํ ๋ฒ์ ๋ชฐ๋นตํ์ง ์๊ณ 2~3์ฃผ์ ๊ฑธ์ณ ๋๋ ์ ํ์ ํ๋๊น ํ๊ท ๋จ๊ฐ๊ฐ ์์ ๋๋๋ผ๊ณ ์.\n\n๊ฑฐ๊ธฐ๋ค ์ํ๋ณ ์ฐ๋์จ๊น์ง ๋น๊ตํ๋ ์ค์ง ์ฐจ์ด๊ฐ ๊ฝค ์ปธ์ต๋๋ค." + }, + { + "order": 4, + "label": "4/5", + "content": "์ํ๋ณ ํ์ ์ฐ๋์จ, ์ต๋ 90%๊น์ง ์ฐจ์ด๋๋ ๊ณณ๋ ์์์ด์.\n\n๊ฐ์ ์ํ์ด๋ผ๋ ์ฑ์ผ๋ก ๋ฏธ๋ฆฌ ์ ์ฒญํ๋ ๊ฑฐ๋ ์ฐฝ๊ตฌ ๊ฐ๋ ๊ฑฐ๋ ๋ ๋ค๋ฅด๊ณ ์.\n\n๊ณตํญ ํ์ ์... ์ ๋ง ๊ธํ ๋ ์๋๋ฉด ๋น์ถ์ฒ์ ๋๋ค." + }, + { + "order": 5, + "label": "5/5", + "content": "ํ์จ 1500์ ์๋, ๋ฌด์กฐ๊ฑด ์ํด๋ผ๊ณ ์ฌํ ํฌ๊ธฐํ๊ธฐ๋ณด๋ค '์ด๋ป๊ฒ ํ์ ํ๋๋'๊ฐ ์ง์ง ๊ด๊ฑด์ด์์ต๋๋ค.\n\n์ ๊ฐ ์ง์ ์ ๋ฆฌํ ์ํ๋ณ ์ฐ๋์จ ๋น๊ต + ์์ฐ๋ณ ํ์ ์ ๋ต, ๋ธ๋ก๊ทธ์ ๋ค ํ์ด๋จ์ด์.\n\nhttps://hogugolfntraval.blogspot.com/2026/07/1500.html\n\n์ฌ๋ฌ๋ถ์ ํ์ ์ธ์ , ์ด๋ป๊ฒ ํ์๋์?" + } + ], + "hashtags": [ + "#ํ์จ1500์", + "#ํด์ธ์ฌํํ์ ", + "#ํ์ ๊ฟํ", + "#์๋ฌ๋ฌํ์จ", + "#ํ์ ์์๋ฃ์ฐ๋" + ], + "engagementQuestion": "์ฌ๋ฌ๋ถ์ ํ์ ์ธ์ , ์ด๋ป๊ฒ ํ์๋์? ์ํ vs ์ฑ vs ๊ณตํญ, ๋๊ธ๋ก ์๋ ค์ฃผ์ธ์!", + "bestPostingTimes": [ + "08:00", + "19:00" + ] + }, + "tiktok": { + "title": "ํ์จ 1500์ ์๋, ์ด๋ ๊ฒ ํ์ ์ ํ๋ฉด ์ํด๋ด ๋๋ค", + "thumbnailText": "ํ์จ 1500์\n๊ฐ์ ๋์ธ๋ฐ 50๋ง์ ์ฐจ์ด?", + "scenes": [ + { + "time": "0-3์ด", + "text": "ํ์จ 1500์, ์ฌํ ํฌ๊ธฐํ์ จ๋์?", + "direction": "์ผ๊ตด ํด๋ก์ฆ์ , ์ง์งํ ํ์ ์ผ๋ก ์์", + "sound": "๊ธด์ฅ๊ฐ ์๋ whoosh ํจ๊ณผ์" + }, + { + "time": "3-15์ด", + "text": "์ ๋ ์๋ ๊น์ง ์ด๋ ๊ฒ ํ์ ํ๋ค๊ฐ 50๋ง์ ๋ ๋ ธ์ด์...", + "direction": "์ง๊ฐ/์์์ฆ ๋ณด์ฌ์ฃผ๋ฉฐ ์์ฌ์ด ํ์ , ํ ์คํธ ์๋ง ๊ฐ์กฐ", + "sound": "์คํจ ํจ๊ณผ์ (๋ก)" + }, + { + "time": "15-35์ด", + "text": "1. ๋ถํ ํ์ ๋ก ํ๊ท ๋จ๊ฐ ๋ฎ์ถ๊ธฐ\n2. ์ํ๋ณ ์ฐ๋์จ ์ต๋ 90% ์ฐจ์ด\n3. ์ฑ ์ฌ์ ์ ์ฒญ์ด ์ฐฝ๊ตฌ๋ณด๋ค ์ ๋ฆฌ\n4. ๊ณตํญ ํ์ ์ ์ตํ์๋จ", + "direction": "ํ๋ฉด 4๋ถํ , ์๊ฐ๋ฝ์ผ๋ก ์ซ์ ํ์, ๋น ๋ฅธ ์ปท ์ ํ", + "sound": "๋ฆฌ๋ฌ๊ฐ ์๋ ํ ํจ๊ณผ์ x4" + }, + { + "time": "35-50์ด", + "text": "์ด๋ ๊ฒ ํ์ ํ๋๊น ์ค์ ๋ก 30๋ง์ ๋ ์๊ผ์ด์", + "direction": "์ํ ์ฑ ํ๋ฉด ์คํฌ๋ฆฐ์ท ์ค๋ฒ๋ ์ด, ๋ฏธ์ ์ง์ผ๋ฉฐ ์ค๋ช ", + "sound": "์ฑ๊ณต ๋ฒจ์๋ฆฌ ํจ๊ณผ์" + }, + { + "time": "50-60์ด", + "text": "์ํ๋ณ ์ฐ๋์จ ๋น๊ตํ๋ ๋ธ๋ก๊ทธ์ ๐ ํ๋กํ ๋งํฌ ํ์ธ!", + "direction": "ํ๋ฉด์ ์๊ฐ๋ฝ์ผ๋ก ํ๋กํ ํด๋ฆญ ์ ๋ ๋์", + "sound": "์ ๋นํธ ์์ํธ๋ก ์ฌ์ด๋" + } + ], + "fullScript": "ํ์จ 1500์, ์ฌํ ํฌ๊ธฐํ์ จ๋์? ์ ๋ ์๋ ๊น์ง ๊ทธ๋ฅ ์ถ๊ตญ ์ ๋ ์ํ ๊ฐ์ ํ ๋ฒ์ ํ์ ํ๋ค๊ฐ 50๋ง์ ๋ ๋ ธ์ด์. ๊ทผ๋ฐ ์ด๋ ๊ฒ ๋ฐ๊พธ๋๊น ๋ฌ๋ผ์ง๋๋ผ๊ณ ์. ์ฒซ์งธ, ๋ถํ ํ์ ๋ก ํ๊ท ๋จ๊ฐ ๋ฎ์ถ๊ธฐ. ๋์งธ, ์ํ๋ณ ์ฐ๋์จ ์ต๋ 90%๊น์ง ์ฐจ์ด๋์. ์ ์งธ, ์ฑ ์ฌ์ ์ ์ฒญ์ด ์ฐฝ๊ตฌ๋ณด๋ค ํจ์ฌ ์ ๋ฆฌํ๊ณ ์. ๋ท์งธ, ๊ณตํญ ํ์ ์ ์ง์ง ์ตํ์ ์๋จ์ผ๋ก๋ง. ์ด๋ ๊ฒ ํ๋๊น ์ค์ ๋ก 30๋ง์ ๋ ์๊ผ์ด์. ์ํ๋ณ ์ฐ๋์จ ๋น๊ตํ๋ ์์ฐ๋ณ ํ์ ์ ๋ต์ ๋ธ๋ก๊ทธ์ ๋ค ์ ๋ฆฌํด๋์ผ๋๊น ํ๋กํ ๋งํฌ ํ์ธํ์ธ์!", + "commentBait": "์ฌ๋ฌ๋ถ์ ํ์ ํ ๋ ์ํํ? ์ฑํ? ๋๊ธ๋ก ์๋ ค์ฃผ์ธ์!", + "hashtags": [ + "#fyp", + "#foryou", + "#ํ์จ1500์", + "#ํด์ธ์ฌํํ์ ", + "#ํ์ ๊ฟํ", + "#์ฌํํ", + "#์๋ฌ๋ฌํ์จ", + "#์ฌํ๊ฒฝ๋น์ ์ฝ", + "#ํ์ ๋ฐฉ๋ฒ", + "#ํด์ธ์ฌํ์ค๋น" + ], + "backgroundMusic": { + "genre": "Upbeat Pop / Lo-fi Hip Hop", + "mood": "๊ฒฝ์พํ์ง๋ง ์ ๋ขฐ๊ฐ ์๋ ๋ถ์๊ธฐ" + }, + "bestPostingTimes": [ + "07:00", + "20:00", + "23:00" + ] + }, + "keyword": "ํ์จ 1500์ ์๋ ํด์ธ์ฌํ ํ์ ๊ฟํ", + "trendDirection": "rising" + }, + "socialPublished": { + "instagram": { + "skipped": true, + "reason": "SOCIAL_AUTO_PUBLISH=false" + }, + "threads": { + "skipped": true, + "reason": "SOCIAL_AUTO_PUBLISH=false" + }, + "tiktok": { + "skipped": true, + "reason": "SOCIAL_AUTO_PUBLISH=false" + } + } + } + ] + }, + { + "runAt": "2026-07-20T06:28:56.490158", + "date": "2026-07-20", + "keywords": [ + "์๋ฌ๋ฌ ํ์จ 1500์๋ ํํ ํฌ ๋์๋ฒ" + ], + "postsGenerated": 1, + "bloggerUploaded": 1, + "errors": 0, + "errorMessages": [], + "imagesInserted": 3, + "totalWords": 4083, + "blogId": "blog1", + "blogName": "HOGU What?", + "platforms": { + "blogger": 1 + }, + "earnings": { + "totalPosts": 91, + "estimatedDailyRevenue": 163.8, + "estimatedMonthlyRevenue": 4914.0, + "estimatedYearlyRevenue": 59787.0, + "avgCPC": 0.9, + "currency": "USD" + }, + "posts": [ + { + "title": "์๋ฌ๋ฌ ํ์จ 1500์๋ ์๋, ํํ ํฌ ๋์๋ฒ ์ค์ ์ ๊ฒ", + "keyword": "์๋ฌ๋ฌ ํ์จ 1500์๋ ํํ ํฌ ๋์๋ฒ", + "blogUrl": "https://www.hoguwhat.com/2026/07/1500.html", + "imagesInserted": 3, + "wordCount": 4083, + "contentPreview": "์ง๋๋ฌ ์ํ ์ฑ์ ์ผฐ๋ค๊ฐ ํ์จ ์ฐฝ์ ๋ณด๊ณ ์ ์ ๋ฉ์นซํ์ต๋๋ค. ์๋ฌ๋ฌ ํ์จ์ด 1500์๋์ ๋ค์ ์ง์ ํ๋ค๋ ๋ด์ค๊ฐ ๋์จ ๋ค๋ถํฐ, ํด์ธ์ฌํ ์นดํ๋ ์ฌํ ํฌ ์ปค๋ฎค๋ํฐ์๋ ํํ ํฌ ๊ด๋ จ ์ง๋ฌธ์ด ๋์ ๋๊ฒ ๋์๋ค๊ณ ํฉ๋๋ค. ํ์ ์ ๋ฏธ๋ค์ผ ํ ์ง, ์ง๊ธ์ด๋ผ๋ ๋ฌ๋ฌ๋ฅผ ์ฌ๋ฌ์ผ ํ ์ง ํ๋จ์ด ์์ง ์๋๋ค๋ ๊ธ์ด ๋ง์ต๋๋ค. ๋ง๋ฆฐํํ๋ ์ด๋ฒ ๊ธฐํ์ ์๋ฌ๋ฌ ํ์จ 1500์๋ ๊ตญ๋ฉด์์ ...", + "faqCount": 3, + "faq": [ + { + "q": "์๋ฌ๋ฌ ํ์จ 1500์๋์์ ์ง๊ธ ํ์ ํ๋ ๊ฒ ๋ง๋์?", + "a": "์ ๋ต์ ์์ต๋๋ค. ์ถ๊ตญ์ด ์๋ฐํ๋ค๋ฉด ํ์ํ ๋งํผ ์ฐ์ ํ์ ํ๊ณ , ์ฌ์ ๊ฐ ์๋ค๋ฉด ๋ถํ ํ์ ์ ๊ณ ๋ คํ๋ ํธ์ด ๋ณ๋์ฑ ๋ถ๋ด์ ์ค์ด๋ ๋ฐฉ๋ฒ์ผ๋ก ์ธ๊ธ๋ฉ๋๋ค." + }, + { + "q": "์ธํ์๊ธ๊ณผ ๋ฌ๋ฌ ETF ์ค ๋ญ๊ฐ ๋ ๋์๊ฐ์?", + "a": "๋ชฉ์ ์ ๋ฐ๋ผ ๋ค๋ฆ ๋๋ค. ์ค์ฌ์ฉ ๋ชฉ์ ์ด๋ฉด ์ธํ์๊ธ, ํฌ์ ๋ชฉ์ ์ ์์ก ๋ถํ ๋งค๋งค๋ผ๋ฉด ETF๊ฐ ๋ ์ ์ฐํ๋ค๋ ์๊ฒฌ์ด ๋ง์ต๋๋ค." + }, + { + "q": "ํ์จ ์ ๋ณด๋ ์ด๋์ ํ์ธํ๋ ๊ฒ ์ ํํ๊ฐ์?", + "a": "ํ๊ตญ์ํ ๊ฒฝ์ ํต๊ณ์์คํ ์ด๋ ๊ธฐํ์ฌ์ ๋ถ ๊ณต์ ๋ฐํ ์๋ฃ๋ฅผ ๊ธฐ์ค์ผ๋ก ํ์ธํ๋ ๊ฒ์ด ์ ๋ขฐ๋๊ฐ ๋๋ค๊ณ ์๋ ค์ ธ ์์ต๋๋ค." + } + ], + "factCheck": { + "checked": true, + "verdict": "pass", + "issues_found": 1, + "fixes_applied": 1, + "issues": [ + { + "problem": "๊ทผ๊ฑฐ ์์ด ํน์ ๋ฐฉ๋ฒ์ด '๊ฐ์ฅ ์ ํํ๋ค'๊ณ ๋จ์ ํ๋ ๊ณผ์ฅ๋ ํํ", + "fixed": true + } + ] + }, + "sources": [ + { + "title": "๊ธ๋ฆฌ ์ฌ๋ ค๋ ์ถ๋ฝํ๋ ์ํโฆ'1๋ฌ๋ฌ=160์'์ ๋ด๋ ธ๋ฉ์ด ๋๋", + "url": "https://www.mt.co.kr/world/2026/07/12/2026071014321738641" + }, + { + "title": "ํ๊ตญ์ํ ๊ฒฝ์ ํต๊ณ์์คํ ", + "url": "https://ecos.bok.or.kr" + }, + { + "title": "๊ธฐํ์ฌ์ ๋ถ", + "url": "https://www.moef.go.kr" + }, + { + "title": "์์ธ์ธ๊ตญํ์ค๊ฐ", + "url": "https://www.smbs.biz" + } + ], + "labels": [ + "์๋ฌ๋ฌํ์จ", + "ํํ ํฌ", + "ํ์จ1500์", + "ํด์ธ์ฌํํ์ ", + "์ธํ์๊ธ" + ], + "metaDescription": "์๋ฌ๋ฌ ํ์จ์ด ๋ค์ 1500์๋๋ก ์ฌ๋ผ์ ์ง๊ธ, ํ์ ์์ ์ ๊ณ ๋ฏผํ๋ ๋ถ๋ค์ ์ํด ์ธํ์๊ธ๊ณผ ๋ฌ๋ฌ ETF, ๋ถํ ๋งค์ ์ ๋ต๊น์ง ์ค์ ๊ฒฝํ๊ณผ ํ๊ตญ์ํยท๊ธฐํ์ฌ์ ๋ถ ๊ณต์ ์๋ฃ๋ฅผ ๋ฐํ์ผ๋ก ์ ๋ฆฌํ ํํ ํฌ ๋์๋ฒ๊ณผ ์ฒดํฌ๋ฆฌ์คํธ๋ฅผ ์๊ฐํฉ๋๋ค.", + "adsenseCategory": "์ผ๋ฐ", + "articleType": "analysis", + "riskLevel": "medium", + "blogId": "blog1", + "blogName": "HOGU What?", + "socialContent": { + "instagram": { + "caption": "์๋ฌ๋ฌ ํ์จ 1500์ ๋ํ, ์ด๊ฑฐ ์คํ์ ๋๋ค ๐ฑ\n2026๋ ๋ค์ ์ฐพ์์จ 1500์๋ ํ์จ, ์ง๊ธ ํ์ ํ๋ฉด ์ํด์ผ๊น์ ๊ธฐํ์ผ๊น์?\nํ๊ตญ์ํยท๊ธฐ์ฌ๋ถ ๊ณต์ ์๋ฃ + ์ค์ ๊ฒฝํ์ผ๋ก ์ ๋ฆฌํ ํํ ํฌ ์ฒดํฌ๋ฆฌ์คํธ, ๋๊น์ง ๋ณด์๊ณ ์ ์ฅ ํ์ ๐\n\n๐ต ์๋ฌ๋ฌ ํ์จ 1500์๋ ํํ ํฌ ๋์๋ฒ\n\n1๏ธโฃ ์ง๊ธ ํ์ , ๋ฌด์กฐ๊ฑด ๋ชฐ๋นต ๊ธ์ง\n2๏ธโฃ ๋ถํ ๋งค์๋ก ํ๊ท ๋จ๊ฐ ๋ฎ์ถ๊ธฐ\n3๏ธโฃ ์ธํ์๊ธ vs ๋ฌ๋ฌ ETF ์ฐจ์ด ํ์ธ\n4๏ธโฃ ํ์จ ์ฐ๋์จ ์ต๋ํ ์ฑ๊ธฐ๊ธฐ\n5๏ธโฃ ํด์ธ์ฌํ ์์ ์ด๋ฉด ์ง๊ธ ์ผ๋ถ ํ์ ๊ณ ๋ ค\n6๏ธโฃ ํ์จ ๋ณ๋ ์๋ฆผ ์ค์ ํด๋๊ธฐ\n7๏ธโฃ ํ๊ตญ์ํยท๊ธฐ์ฌ๋ถ ๊ณต์ ๋ฐํ ๊พธ์คํ ์ฒดํฌ\n\n๐ ์ธํ์๊ธ vs ๋ฌ๋ฌETF, ๋์๊ฒ ๋ง๋ ๊ฑด ๋ญ๊น์?\n๋ธ๋ก๊ทธ์์ ์ค์ ์ฒดํฌ๋ฆฌ์คํธ ์ ์ฒด ํ์ธํ์ธ์\nhttps://www.hoguwhat.com/2026/07/1500.html\n\n#์๋ฌ๋ฌํ์จ #ํํ ํฌ ์ ์ฅํ๊ณ ๋์ค์ ๋ค์ ๋ณด์ธ์ ๐", + "hookLine": "์๋ฌ๋ฌ ํ์จ 1500์ ๋ํ, ์ด๊ฑฐ ์คํ์ ๋๋ค ๐ฑ", + "storyHighlightTitle": "ํํ ํฌํ", + "hashtags": { + "popular": [ + "#ํ์จ", + "#ํํ ํฌ", + "#์ฌํ ํฌ", + "#๊ฒฝ์ ๋ด์ค", + "#๋๋๋์ ๋ณด", + "#์ฌํ ํฌ๊ณต๋ถ", + "#ํ์จ์ ๋ง", + "#๋ฌ๋ฌํ์จ", + "#๊ฒฝ์ ๊ณต๋ถ", + "#์ฌํ ํฌํ" + ], + "medium": [ + "#์๋ฌ๋ฌํ์จ", + "#ํ์จ1500์", + "#์ธํ์๊ธ", + "#๋ฌ๋ฌETF", + "#ํด์ธ์ฌํํ์ ", + "#ํ์ ๊ฟํ", + "#ํ์จ๋ถ์", + "#๋ถํ ๋งค์", + "#๋ฌ๋ฌํฌ์", + "#ํํ ํฌ์ ๋ต" + ], + "niche": [ + "#ํ์จ1500์๋", + "#๊ธฐ์ฌ๋ถ๋ฐํ", + "#ํ๊ตญ์ํ์๋ฃ", + "#ํ์ ํ์ด๋ฐ", + "#๋ฌ๋ฌ์๊ธ๊ธ๋ฆฌ" + ] + }, + "bestPostingTimes": [ + "07:00", + "12:00", + "21:00" + ] + }, + "threads": { + "posts": [ + { + "order": 1, + "label": "1/5", + "content": "์๋ฌ๋ฌ ํ์จ์ด ๋ค์ 1500์์ ๋์์ต๋๋ค.\n2022๋ ์ดํ ๋ ํ ๋ฒ์ 1500์๋, ์ด๋ฒ์ ์ผ์์ ์ผ๊น์ ์๋๋ฉด ๋ด๋ ธ๋ฉ์ผ๊น์?\nํ๊ตญ์ํ ์๋ฃ ๊ธฐ์ค์ผ๋ก ํฉํธ๋ง ์ง์ด๋ด ๋๋ค." + }, + { + "order": 2, + "label": "2/5", + "content": "๋ง์ ๋ถ๋ค์ด \"์ง๊ธ ํ์ ํด๋ ๋๋์?\"๋ฅผ ๋ฌผ์ด๋ณด์๋๋ฐ\n์ ๋ต์ ์์ต๋๋ค. ๋ค๋ง ๋ถํ ๋งค์ ์ ๋ต์ด ์ ํ์ํ์ง, ์ค์ ์ฌ๋ก๋ก ์ค๋ช ํด๋๋ฆด๊ฒ์." + }, + { + "order": 3, + "label": "3/5", + "content": "์ธํ์๊ธ vs ๋ฌ๋ฌ ETF, ๋ญ๊ฐ ๋ ๋์๊น์?\nโก๏ธ ์ธํ์๊ธ: ์๊ธ ์์ ์ฑ + ๋ฎ์ ์ ๊ทผ์ฑ\nโก๏ธ ๋ฌ๋ฌ ETF: ์ ๋์ฑ ์ข์ง๋ง ๋ณ๋์ฑ ํผ\n๊ฐ์ ๋ชฉ์ ์ ๋ฐ๋ผ ์ ํ์ด ๋ฌ๋ผ์ ธ์ผ ํฉ๋๋ค." + }, + { + "order": 4, + "label": "4/5", + "content": "ํด์ธ์ฌํ ์์ ์ด์ ๋ถ๋ค์ ํนํ ํ์ด๋ฐ์ด ์ค์ํฉ๋๋ค.\nํ์จ์ด ๋ ์ค๋ฅผ์ง ๋ด๋ฆด์ง ์์ธกํ๊ธฐ๋ณด๋ค\n'๋ถํ ๋ก ๋ฆฌ์คํฌ ๋ถ์ฐ'ํ๋ ๊ฒ ํ์ค์ ์ธ ๋์๋ฒ์ ๋๋ค." + }, + { + "order": 5, + "label": "5/5", + "content": "1500์๋ ํ์จ, ์ฌ๋ฌ๋ถ์ ์ง๊ธ ํ์ ํ์ค ๊ฑด๊ฐ์ ์๋๋ฉด ๋ ๊ธฐ๋ค๋ฆฌ์ค ๊ฑด๊ฐ์?\n์ค์ ์ฒดํฌ๋ฆฌ์คํธ์ ์์ธ ๋ฐ์ดํฐ๋ ๋ธ๋ก๊ทธ์์ ํ์ธํ์ธ์\nhttps://www.hoguwhat.com/2026/07/1500.html" + } + ], + "hashtags": [ + "#์๋ฌ๋ฌํ์จ", + "#ํํ ํฌ", + "#ํ์จ1500์", + "#์ธํ์๊ธ", + "#ํด์ธ์ฌํํ์ " + ], + "engagementQuestion": "1500์๋ ํ์จ, ์ง๊ธ ํ์ ํ์๊ฒ ์ด์ ์๋๋ฉด ๋ ๊ธฐ๋ค๋ฆฌ์๊ฒ ์ด์?", + "bestPostingTimes": [ + "08:00", + "19:00" + ] + }, + "tiktok": { + "title": "ํ์จ 1500์ ๋ํ, ์ง๊ธ ํ์ ํด๋ ๋ ๊น?", + "thumbnailText": "ํ์จ 1500์๋\n์ง๊ธ ํ์ ํ์ด๋ฐ?", + "scenes": [ + { + "time": "0-3์ด", + "text": "ํ์จ ๋ 1500์ ๋์์ต๋๋ค", + "direction": "ํด๋ก์ฆ์ , ๋๋ ํ์ ์ฐ์ถ, ํ์จ ๊ทธ๋ํ ํ๋ฉด ์ฝ์ ", + "sound": "๊ธด์ฅ๊ฐ ์๋ ํจ๊ณผ์(๋ฉ๋)" + }, + { + "time": "3-15์ด", + "text": "์ง๊ธ ํ์ ํ๋ฉด ์ํด? ์ด๋? ๋ค๋ค ํท๊ฐ๋ คํ๋ ์ด์ ", + "direction": "์ค๊ฐ ์ท, ์์งํ๋ฉฐ ์ค๋ช , ์๋ง ๊ฐ์กฐ ํจ๊ณผ", + "sound": "ํ์ดํ ํจ๊ณผ์" + }, + { + "time": "15-35์ด", + "text": "ํต์ฌ์ ๋ถํ ๋งค์! ์ธํ์๊ธ๊ณผ ๋ฌ๋ฌETF ์ฐจ์ด๋ถํฐ ์ฒดํฌํ์ธ์", + "direction": "ํ์ดํธ๋ณด๋ or ๊ทธ๋ํฝ ์๋ฃ ํ์ฉ, ์๊ฐ๋ฝ์ผ๋ก ํฌ์ธํธ ์ง๊ธฐ", + "sound": "๊ฒฝ์พํ BGM ์ ํ์" + }, + { + "time": "35-50์ด", + "text": "ํ๊ตญ์ํยท๊ธฐ์ฌ๋ถ ์๋ฃ ๊ธฐ์ค์ผ๋ก ์ ๋ฆฌํ ์ฒดํฌ๋ฆฌ์คํธ, ๋ฌด์กฐ๊ฑด ์ ์ฅํ์ธ์", + "direction": "ํ๋ฉด์ ์ฒดํฌ๋ฆฌ์คํธ ํ ์คํธ ์ค๋ฒ๋ ์ด", + "sound": "๋ต๋ ์๋ฆผ์" + }, + { + "time": "50-60์ด", + "text": "์ ์ฒด ๋ด์ฉ์ ๋ธ๋ก๊ทธ์์! ๋๊ธ๋ก ์ฌ๋ฌ๋ถ ์๊ฐ๋ ๋จ๊ฒจ์ฃผ์ธ์", + "direction": "์ ๋ฉด ํด๋ก์ฆ์ , ์๊ฐ๋ฝ์ผ๋ก ํ๋ฉด ์๋ ๊ฐ๋ฆฌํด", + "sound": "์ ๋นํธ ๋ง๋ฌด๋ฆฌ BGM" + } + ], + "fullScript": "ํ์จ ๋ 1500์ ๋์์ต๋๋ค. ์ง๊ธ ํ์ ํ๋ฉด ์ํด์ผ๊น์, ์ด๋์ผ๊น์? ๋ง์ ๋ถ๋ค์ด ํท๊ฐ๋ คํ์๋๋ฐ ํต์ฌ์ ๋ถํ ๋งค์์ ๋๋ค. ์ธํ์๊ธ๊ณผ ๋ฌ๋ฌETF, ๊ฐ๊ฐ ์ฅ๋จ์ ์ด ๋ค๋ฅด๋ ๋ชฉ์ ์ ๋ง๊ฒ ์ ํํ์ ์ผ ํด์. ํ๊ตญ์ํ๊ณผ ๊ธฐ์ฌ๋ถ ์๋ฃ ๊ธฐ์ค์ผ๋ก ์ ๋ฆฌํ ์ฒดํฌ๋ฆฌ์คํธ, ๊ผญ ์ ์ฅํด๋์๊ณ ์ ์ฒด ๋ด์ฉ์ ๋ธ๋ก๊ทธ์์ ํ์ธํ์ธ์. ์ฌ๋ฌ๋ถ์ ์ง๊ธ ํ์ ํ์ค ๊ฑด๊ฐ์? ๋๊ธ๋ก ์๋ ค์ฃผ์ธ์!", + "commentBait": "1500์๋ ํ์จ, ์ฌ๋ฌ๋ถ์ ์ง๊ธ ํ์ ํ์ค ๊ฑด๊ฐ์?", + "hashtags": [ + "#fyp", + "#foryou", + "#์๋ฌ๋ฌํ์จ", + "#ํํ ํฌ", + "#ํ์จ1500์", + "#์ธํ์๊ธ", + "#๋ฌ๋ฌํฌ์", + "#์ฌํ ํฌ", + "#๊ฒฝ์ ๋ด์ค", + "#๋๋๋์ ๋ณด" + ], + "backgroundMusic": { + "genre": "Lo-fi Hip Hop", + "mood": "์ฐจ๋ถํ์ง๋ง ๊ธด์ฅ๊ฐ ์๋ ๋ถ์๊ธฐ" + }, + "bestPostingTimes": [ + "07:00", + "20:00", + "23:00" + ] + }, + "keyword": "์๋ฌ๋ฌ ํ์จ 1500์๋ ํํ ํฌ ๋์๋ฒ", + "trendDirection": "stable" + }, + "socialPublished": { + "instagram": { + "skipped": true, + "reason": "SOCIAL_AUTO_PUBLISH=false" + }, + "threads": { + "skipped": true, + "reason": "SOCIAL_AUTO_PUBLISH=false" + }, + "tiktok": { + "skipped": true, + "reason": "SOCIAL_AUTO_PUBLISH=false" + } + } + } + ] + }, + { + "runAt": "2026-07-20T03:09:45.316591", + "date": "2026-07-20", + "keywords": [ + "2026 ํ๋ฐ๊ธฐ ๊ธฐ์ค๊ธ๋ฆฌ ์ ๋ง๊ณผ ์๊ธ ๋์ถ ์ ๋ต" + ], + "postsGenerated": 1, + "bloggerUploaded": 1, + "errors": 0, + "errorMessages": [], + "imagesInserted": 1, + "totalWords": 4656, + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "platforms": { + "blogger": 1 + }, + "earnings": { + "totalPosts": 91, + "estimatedDailyRevenue": 455.0, + "estimatedMonthlyRevenue": 13650.0, + "estimatedYearlyRevenue": 166075.0, + "avgCPC": 2.5, + "currency": "USD" + }, + "posts": [ + { + "title": "2026 ํ๋ฐ๊ธฐ ๊ธฐ์ค๊ธ๋ฆฌ ์ ๋ง๊ณผ ์๊ธยท๋์ถ ์ ๋ต ์ ๊ฒ๋ฒ", + "keyword": "2026 ํ๋ฐ๊ธฐ ๊ธฐ์ค๊ธ๋ฆฌ ์ ๋ง๊ณผ ์๊ธ ๋์ถ ์ ๋ต", + "blogUrl": "https://hoguasset.blogspot.com/2026/07/2026_0753134477.html", + "imagesInserted": 1, + "wordCount": 4656, + "contentPreview": "์ฌํด ์ด๊น์ง๋ง ํด๋ ํ๊ตญ์ํ ๊ธฐ์ค๊ธ๋ฆฌ๋ '๋๊ฒฐ ์ฅ๊ธฐํ'๊ฐ ๋์ธ ์ ๋ง์ด์์ต๋๋ค. ๊ทธ๋ฐ๋ฐ ์ต๊ทผ ๋ถ์๊ธฐ๊ฐ ํ ๋ฌ๋ผ์ก์ต๋๋ค. ์ฆ๊ถ๊ฐ์์ ์ฐ๋ด ๊ธฐ์ค๊ธ๋ฆฌ ์ธ์ ๊ฐ๋ฅ์ฑ์ ์ด์ผ๊ธฐํ๊ธฐ ์์ํ๊ณ , ์ผ๋ถ์์๋ ํ ๋ฒ์ด ์๋๋ผ ๋ ๋ฒ ์ํฅ๊น์ง ๊ฑฐ๋ก ๋๊ณ ์์ต๋๋ค. ์๊ธยท๋์ถ ํต์ฅ์ ํ๋์ฉ ๊ฐ๊ณ ์๋ ์ฐ๋ฆฌ ์ ์ฅ์์๋ '๊ธ๋ฆฌ๊ฐ ์ค๋ฅธ๋ค, ์ ์ค๋ฅธ๋ค' ๋ด์ค๊ฐ ๋จ์ํ ์์ฅ ์ด์๊ฐ ์๋๋ผ ...", + "faqCount": 3, + "faq": [ + { + "q": "๊ธฐ์ค๊ธ๋ฆฌ๊ฐ ์ค์ ๋ก ์ค๋ฅธ ๊ฑด๊ฐ์?", + "a": "์์ง ํ์ ๋ ๊ฑด ์๋๋๋ค. 2026๋ 5์ 1์ผ ๊ธฐ์ค ์ฆ๊ถ๊ฐ์์ ์ฐ๋ด ์ธ์ ๊ฐ๋ฅ์ฑ์ด ์ปค์ง๊ณ ์๋ค๋ ์ ๋ง์ด ๋์จ ๊ฒ์ด๋ฉฐ, ์ค์ ๊ฒฐ์ ์ ํ๊ตญ์ํ ๊ธ์ตํตํ์์ํ ํ์๋ฅผ ํตํด ์ด๋ค์ง๋๋ค. ๊ณต์ ๋ฐํ๋ ํ๊ตญ์ํ ํํ์ด์ง์์ ํ์ธํด์ผ ํฉ๋๋ค." + }, + { + "q": "๋ณ๋๊ธ๋ฆฌ ๋์ถ์๋ ์ง๊ธ ๋ญ ํด์ผ ํ๋์?", + "a": "๋น์ฅ ๋์ถ ๊ตฌ์กฐ๋ฅผ ๋ฐ๊พธ๊ธฐ๋ณด๋ค๋ ํ์ฌ ๊ธ๋ฆฌ ์ ํ์ ํ์ธํ๊ณ , ๊ธ๋ฆฌ ์์น ์ ์ ์ํ์ก์ด ์ผ๋ง๋ ๋์ด๋ ์ ์๋์ง ์ํ ์๋ด์ ํตํด ๋ฏธ๋ฆฌ ํ์ ํด๋๋ ๊ฒ์ด ํ์ค์ ์ ๋๋ค. ๊ณ ์ ๊ธ๋ฆฌ ์ ํ ์กฐ๊ฑด๋ ํจ๊ป ํ์ธํด๋ณผ ๋งํฉ๋๋ค." + }, + { + "q": "์์ ๊ธ์ ์ง๊ธ ๊ฐ์ ํ๋ ๊ฒ ๋์๊น์, ๊ธฐ๋ค๋ฆฌ๋ ๊ฒ ๋์๊น์?", + "a": "๋ง๊ธฐ๊ฐ ์๋ฐํ๋ค๋ฉด ์๋๋ฅด์ง ๋ง๊ณ ๋ง๊ธฐ ์์ ์ ์ต์ ๊ธ๋ฆฌ๋ฅผ ๋น๊ตํ๋ฉด ๋ฉ๋๋ค. ์ ๊ท ๊ฐ์ ์ ๊ณ ๋ฏผ ์ค์ด๋ผ๋ฉด ์งง์ ๋ง๊ธฐ์ ๊ธด ๋ง๊ธฐ ์ํ์ ๋๋ ๊ฐ์ ํ๋ ๋ถ์ฐ ์ ๋ต๋ ๊ณ ๋ คํด๋ณผ ์ ์์ต๋๋ค. ๋ค๋ง ์ด๋ ํ๋์ ์ ๊ทผ ๋ฐฉ์์ผ ๋ฟ, ์ต์ข ํ๋จ์ ๊ฐ์ธ ์๊ธ ๊ณํ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง ์ ์์ต๋๋ค." + } + ], + "factCheck": { + "checked": true, + "verdict": "warn", + "issues_found": 2, + "fixes_applied": 1, + "issues": [ + { + "problem": "ํน์ ์ธ๋ก ์ฌ(์ฐํฉ๋ด์ค)์ ๋ณด๋๋ก ๋จ์ ํ์ผ๋ ์๋ฃํฉ์๋ ํด๋น ๋งค์ฒด๋ช ์ด ๋ช ์๋์ด ์์ง ์์ ๊ฒ์ฆ ๋ถ๊ฐ๋ฅํ ์ถ์ฒ ํน์ ", + "fixed": false + }, + { + "problem": "์๋ฃํฉ์๋ ์ผ์ฑ์ฆ๊ถ์ ์ ๋ง ๋ณ๊ฒฝ ๊ทผ๊ฑฐ๊ฐ '์ฑ์ฅ ์ ๋ง ๊ฐ์ '์ผ๋ก๋ง ๋ช ์๋์ด ์๊ณ '2๋ถ๊ธฐ ์ํฉ'์ด๋ผ๋ ๊ตฌ์ฒด์ ์ธ๊ธ์ ์์ด ์๋ฃํฉ๊ณผ ๋ถ์ผ์นํ๋ ์ธ๋ถ ๋ด์ฉ ์ถ๊ฐ", + "fixed": true + } + ] + }, + "sources": [ + { + "title": "์ฆ๊ถ๊ฐ, ์ปค์ง๋ '์ฐ๋ด ๊ธฐ์ค๊ธ๋ฆฌ ์ธ์' ์ ๋งโฆ\"2ํ ์ํฅ๋\"", + "url": "https://www.yna.co.kr/view/AKR20260430168900008" + }, + { + "title": "ํ๊ตญ์ํ ๊ณต์ ํํ์ด์ง - ๊ธฐ์ค๊ธ๋ฆฌ ๊ฒฐ์ ๋ฐ ๊ธ์ตํตํ์์ํ", + "url": "https://www.bok.or.kr" + }, + { + "title": "๊ธ์ต๊ฐ๋ ์ ๊ธ์ต์ํํตํฉ๋น๊ต๊ณต์", + "url": "https://finlife.fss.or.kr" + } + ], + "labels": [ + "๊ธฐ์ค๊ธ๋ฆฌ์ ๋ง", + "2026ํ๋ฐ๊ธฐ๊ธ๋ฆฌ", + "ํ๊ตญ์ํ๊ธฐ์ค๊ธ๋ฆฌ", + "์๊ธ๊ธ๋ฆฌ", + "๋์ถ๊ธ๋ฆฌ" + ], + "metaDescription": "2026๋ ํ๋ฐ๊ธฐ ๊ธฐ์ค๊ธ๋ฆฌ ์ธ์ ์ ๋ง๊ณผ ํจ๊ป ๋ณ๋๊ธ๋ฆฌ ๋์ถ์, ์์ ๊ธ ๊ฐ์ ์๊ฐ ์ง๊ธ ํ์ธํด๋๋ฉด ์ข์ ์ ๊ฒ ํฌ์ธํธ๋ฅผ ์ ๋ฆฌํ์ต๋๋ค. ์ฆ๊ถ๊ฐ ์ ๋ง ์ฐจ์ด์ ๊ธํต์ ์ผ์ ๋ ํจ๊ป ์ดํด๋ด ๋๋ค.", + "adsenseCategory": "๊ธ์ต", + "articleType": "sports_review", + "riskLevel": "high", + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "socialContent": { + "instagram": { + "caption": "2026๋ ํ๋ฐ๊ธฐ, ๊ธ๋ฆฌ๊ฐ ๋ ์์ง์ ๋๋ค ๐\n๋ณ๋๊ธ๋ฆฌ ๋์ถ์๋ผ๋ฉด ์ง๊ธ ์ด ๊ธ ๊ผญ ์ ์ฅํ์ธ์.\n\n์ฆ๊ถ๊ฐ ์ ๋ง์ด ์๊ฐ๋ฆฌ๋ ์ง๊ธ, ๋ด ๋์ถ๊ณผ ์๊ธ์ ์ด๋ป๊ฒ ๋ ๊น์?\n\n์ ์ฅ ํ์ ๐ ๋์ค์ ๊ธํต์ ๋ฐํ ์ ์ ๋ค์ ๊บผ๋ด๋ณด์ธ์\n\nโ ํ๋ฐ๊ธฐ ๊ธ๋ฆฌ ์ ๊ฒ ํฌ์ธํธ 7๊ฐ์ง\n1๏ธโฃ 2026 ํ๋ฐ๊ธฐ ๊ธํต์ ์ผ์ ๋ฏธ๋ฆฌ ์ฒดํฌ\n2๏ธโฃ ์ฆ๊ถ๊ฐ ์ ๋ง vs ์ค์ ๋ฐํ ์ฐจ์ด ๋น๊ต\n3๏ธโฃ ๋ณ๋๊ธ๋ฆฌ ๋์ถ์ ๊ธ๋ฆฌ์ธ์๊ธฐ ๋๋น๋ฒ\n4๏ธโฃ ์์ ๊ธ ๊ฐ์ํ๊ธฐ ํ์ด๋ฐ ์ก๋ ๋ฒ\n5๏ธโฃ ๊ณ ์ ๊ธ๋ฆฌ ์ ํ ์ ๋ถ๋ฆฌ ๊ณ์ฐ๋ฒ\n6๏ธโฃ ์ฃผ๋ด๋ยท์ ์ธ๋์ถ ๊ฐฑ์ ์์ ์ฒดํฌ๋ฆฌ์คํธ\n7๏ธโฃ ๊ธ๋ฆฌ ๋ฐํ ํ ๋ด๊ฐ ํด์ผ ํ 3๊ฐ์ง ํ๋\n\n๐ฌ ์ง๊ธ ๋ณ๋๊ธ๋ฆฌ vs ๊ณ ์ ๊ธ๋ฆฌ ์ค ๋ญ ์ฐ๊ณ ๊ณ์ธ์?\n๋๊ธ๋ก ์๋ ค์ฃผ์๋ฉด ๋ค์ ์ฝํ ์ธ ์ ๋ฐ์ํ ๊ฒ์ ๐\n\n๋ ์์ธํ ๋ด์ฉ์ ํ๋กํ ๋งํฌ ๋๋ ๋ธ๋ก๊ทธ์์ ํ์ธํ์ธ์ ๐", + "hookLine": "2026๋ ํ๋ฐ๊ธฐ, ๊ธ๋ฆฌ๊ฐ ๋ ์์ง์ ๋๋ค ๐ ๋ณ๋๊ธ๋ฆฌ ๋์ถ์๋ผ๋ฉด ์ง๊ธ ์ด ๊ธ ๊ผญ ์ ์ฅํ์ธ์.", + "storyHighlightTitle": "๊ธ๋ฆฌ์ ๊ฒ", + "hashtags": { + "popular": [ + "#๊ธฐ์ค๊ธ๋ฆฌ", + "#๊ธ๋ฆฌ์ ๋ง", + "#์ฌํ ํฌ", + "#๊ฒฝ์ ๋ด์ค", + "#๋์ถ๊ธ๋ฆฌ", + "#์๊ธ๊ธ๋ฆฌ", + "#๋ถ๋์ฐ", + "#๋ด์ง๋ง๋ จ", + "#์ฌํ ํฌํ", + "#๊ฒฝ์ ๊ณต๋ถ" + ], + "medium": [ + "#๊ธฐ์ค๊ธ๋ฆฌ์ ๋ง", + "#ํ๊ตญ์ํ๊ธฐ์ค๊ธ๋ฆฌ", + "#๋ณ๋๊ธ๋ฆฌ๋์ถ", + "#์์ ๊ธ์ถ์ฒ", + "#๊ธํต์", + "#๋์ถ๊ฐ์ํ๊ธฐ", + "#๊ณ ์ ๊ธ๋ฆฌ์ ํ", + "#2026๊ฒฝ์ ์ ๋ง", + "#๊ธ๋ฆฌ์ธ์๊ธฐ", + "#์ฌ๋ฌด์ค๊ณ" + ], + "niche": [ + "#2026ํ๋ฐ๊ธฐ๊ธ๋ฆฌ", + "#์ฃผ๋ด๋๊ธ๋ฆฌ์ ๊ฒ", + "#๊ธํต์์ผ์ ", + "#์๊ธ๋์ถ์ ๋ต", + "#์ฆ๊ถ๊ฐ์ ๋ง" + ] + }, + "bestPostingTimes": [ + "07:00", + "12:00", + "21:00" + ] + }, + "threads": { + "posts": [ + { + "order": 1, + "label": "1/5", + "content": "2026๋ ํ๋ฐ๊ธฐ ๊ธํต์ ๊ฒฐ์ ์ ๋๊ณ ์ฆ๊ถ๊ฐ ์ ๋ง์ด ํฌ๊ฒ ์๊ฐ๋ฆฌ๊ณ ์์ต๋๋ค.\n\n๋๊ฒฐ์ด๋, ์ธ์์ด๋๋ฅผ ๋๊ณ ๊ธฐ๊ด๋ง๋ค ๋ค๋ฅธ ์ซ์๋ฅผ ๋ด๋๋ ์ง๊ธ, ๋ณ๋๊ธ๋ฆฌ ๋์ถ์์ ์์ ๊ธ ๊ฐ์ ์๋ ๋ญ ๋ด์ผ ํ ๊น์?" + }, + { + "order": 2, + "label": "2/5", + "content": "ํต์ฌ์ '์ค์ ๋ก ์ค๋ฅธ ๊ฑด์ง'๊ฐ ์๋๋ผ '์ค๋ฅผ ๊ฐ๋ฅ์ฑ์ ๋๋นํ๋์ง'์ ๋๋ค.\n\n๊ธ๋ฆฌ๋ ๋ฐํ ์๊ฐ์ด ์๋๋ผ ๋ฐํ ์ ๋ช ์ฃผ๊ฐ ๋ ์ค์ํฉ๋๋ค. ๋์ถ ๊ฐ์ํ๊ธฐ, ์๊ธ ๋ง๊ธฐ ์กฐ์ ์ ๋ฏธ๋ฆฌ ์์ง์ฌ์ผ ์๋ฏธ๊ฐ ์์ผ๋๊น์." + }, + { + "order": 3, + "label": "3/5", + "content": "๋ณ๋๊ธ๋ฆฌ ๋์ถ์๋ผ๋ฉด ์ง๊ธ ์ฒดํฌํ ๊ฒ:\n\n- ๋ด ๋์ถ ๊ธ๋ฆฌ ์ฌ์ฐ์ ์ฃผ๊ธฐ ํ์ธ\n- ๊ณ ์ ๊ธ๋ฆฌ ์ ํ ์ ์ค์ ์ด๋ ๊ณ์ฐ\n- ๋ง๊ธฐ ์๋ฐํ ์์ ๊ธ ์ฌ์์น ์ฌ๋ถ\n\nํ๋๋ผ๋ ๋์น๋ฉด ํ๋ฐ๊ธฐ ๋ด๋ด ์ํด ๋ณผ ์ ์์ต๋๋ค." + }, + { + "order": 4, + "label": "4/5", + "content": "์ฆ๊ถ๊ฐ ์ ๋ง์ด ๊ฐ๋ฆฌ๋ ์ด์ ๋ ์์๋ ํ์๊ฐ ์์ต๋๋ค.\n\n๋ฌผ๊ฐ, ํ์จ, ๊ฐ๊ณ๋ถ์ฑ ๋ฐ์ดํฐ๋ฅผ ๊ฐ๊ธฐ ๋ค๋ฅด๊ฒ ํด์ํ๊ธฐ ๋๋ฌธ์ธ๋ฐ์. ๊ทธ๋์ 'ํ ๊ณณ ์ ๋ง'๋ง ๋ณด๊ณ ํ๋จํ๋ ๊ฑด ์ํํฉ๋๋ค." + }, + { + "order": 5, + "label": "5/5", + "content": "๊ฒฐ๋ก : ์ง๊ธ์ ์์ธก๋ณด๋ค '๋๋น'๊ฐ ์ฐ์ ์ธ ์๊ธฐ์ ๋๋ค.\n\n๊ธํต์ ์ผ์ , ๋์ถยท์๊ธ ์ ๊ฒ ํฌ์ธํธ๋ฅผ ์ ๋ฆฌํด๋์ด์.\n๐ https://hoguasset.blogspot.com/2026/07/2026_0753134477.html\n\n์ฌ๋ฌ๋ถ์ ๋ณ๋๊ธ๋ฆฌ ์ ์งํ? ๊ณ ์ ๊ธ๋ฆฌ ์ ํํ? ๋๊ธ๋ก ์๋ ค์ฃผ์ธ์." + } + ], + "hashtags": [ + "#๊ธฐ์ค๊ธ๋ฆฌ์ ๋ง", + "#2026ํ๋ฐ๊ธฐ๊ธ๋ฆฌ", + "#ํ๊ตญ์ํ๊ธฐ์ค๊ธ๋ฆฌ", + "#์๊ธ๊ธ๋ฆฌ", + "#๋์ถ๊ธ๋ฆฌ" + ], + "engagementQuestion": "๋ณ๋๊ธ๋ฆฌ ์ ์งํ vs ๊ณ ์ ๊ธ๋ฆฌ ์ ํํ, ์ฌ๋ฌ๋ถ์ ์ ํ์?", + "bestPostingTimes": [ + "08:00", + "19:00" + ] + }, + "tiktok": { + "title": "2026 ํ๋ฐ๊ธฐ ๊ธ๋ฆฌ, ์ง์ง ์ค๋ฅด๋์? ๋์ถ์ ํ์ ์ฒดํฌ", + "thumbnailText": "๊ธ๋ฆฌ ๋ ์ค๋ฅธ๋ค๊ณ ?๐ฑ ๋์ถ์ ํ๋ ", + "scenes": [ + { + "time": "0-3์ด", + "text": "๊ธ๋ฆฌ ๋ ์ค๋ฅธ๋ค๊ณ ?!", + "direction": "ํด๋ก์ฆ์ ์ผ๊ตด, ๋๋ ํ์ + ํ๋ฉด ํ๋ค๋ฆผ ํจ๊ณผ", + "sound": "๊ธด์ฅ๊ฐ ํจ๊ณผ์ (๋ฅ!)" + }, + { + "time": "3-15์ด", + "text": "๋ณ๋๊ธ๋ฆฌ ๋์ถ์๋ผ๋ฉด ์ด๊ฑฐ ๋ชจ๋ฅด๋ฉด ์ํด๋ด ๋๋ค", + "direction": "ํ๋ฉด ์ ํํ๋ฉฐ ์ค๋งํธํฐ ํ๋ฉด(๋์ถ ์ฑ) ๋ณด์ฌ์ฃผ๊ธฐ", + "sound": "๊ธด์ฅ ๋ฐฐ๊ฒฝ์ ๋ณผ๋ฅจ ์ " + }, + { + "time": "15-35์ด", + "text": "์ฆ๊ถ๊ฐ ์ ๋ง๋ ์๊ฐ๋ฆฌ๋ ์ง๊ธ, 3๊ฐ์ง๋ง ์ฒดํฌํ์ธ์\n1. ๊ธ๋ฆฌ ์ฌ์ฐ์ ์ฃผ๊ธฐ\n2. ๊ณ ์ ๊ธ๋ฆฌ ์ ํ ์ ๋ถ๋ฆฌ\n3. ์์ ๊ธ ๋ง๊ธฐ ํ์ด๋ฐ", + "direction": "์๋ง 3๊ฐ ์์ฐจ ๋ฑ์ฅ, ์๊ฐ๋ฝ์ผ๋ก ํ๋์ฉ ์ง๋ ์ฐ์ถ", + "sound": "ํ์ดํ ํจ๊ณผ์ + ์์ํ BGM ์ ํ" + }, + { + "time": "35-50์ด", + "text": "๊ฒฐ๋ก : ์์ธก๋ณด๋ค ๋๋น๊ฐ ๋จผ์ ์ ๋๋ค", + "direction": "์นด๋ฉ๋ผ ์ ๋ฉด ์์, ์ง์งํ ํค์ผ๋ก ๋งํ๊ธฐ", + "sound": "BGM ๋ฌด๋ ์ ํ (์ฐจ๋ถํ๊ฒ)" + }, + { + "time": "50-60์ด", + "text": "๋ธ๋ก๊ทธ ๋งํฌ์์ ๊ธํต์ ์ผ์ ๊น์ง ์ ๋ฆฌํด๋์ด์! ์ ์ฅํ๊ณ ํ์ธํ์ธ์", + "direction": "ํ๋ฉด์ '์ ์ฅํ๊ธฐ' ๋ฒํผ ์ ๋๋ฉ์ด์ ๊ฐ์กฐ", + "sound": "๊ฒฝ์พํ ์์ํธ๋ก ํจ๊ณผ์" + } + ], + "fullScript": "๊ธ๋ฆฌ ๋ ์ค๋ฅธ๋ค๊ณ ?! ๋ณ๋๊ธ๋ฆฌ ๋์ถ์๋ผ๋ฉด ์ด๊ฑฐ ๋ชจ๋ฅด๋ฉด ์ํด๋ด ๋๋ค. ์ฆ๊ถ๊ฐ ์ ๋ง๋ ์๊ฐ๋ฆฌ๋ ์ง๊ธ, ๋ฑ 3๊ฐ์ง๋ง ์ฒดํฌํ์ธ์. ์ฒซ์งธ, ๋ด ๋์ถ ๊ธ๋ฆฌ ์ฌ์ฐ์ ์ฃผ๊ธฐ. ๋์งธ, ๊ณ ์ ๊ธ๋ฆฌ ์ ํํ์ ๋ ์ค์ ์ด๋. ์ ์งธ, ์์ ๊ธ ๋ง๊ธฐ ํ์ด๋ฐ. ๊ฒฐ๋ก ์ ํ๋์์. ์์ธก๋ณด๋ค ๋๋น๊ฐ ๋จผ์ ์ ๋๋ค. ๋ธ๋ก๊ทธ์ 2026 ํ๋ฐ๊ธฐ ๊ธํต์ ์ผ์ ์ด๋ ์ ๊ฒ ํฌ์ธํธ ์น ์ ๋ฆฌํด๋์ผ๋ ์ ์ฅํ๊ณ ํ์ธํ์ธ์.", + "commentBait": "์ฌ๋ฌ๋ถ์ ๋ณ๋๊ธ๋ฆฌ? ๊ณ ์ ๊ธ๋ฆฌ? ๋๊ธ๋ก ํฌํํด์ฃผ์ธ์!", + "hashtags": [ + "#fyp", + "#foryou", + "#๊ธฐ์ค๊ธ๋ฆฌ์ ๋ง", + "#2026ํ๋ฐ๊ธฐ๊ธ๋ฆฌ", + "#๋์ถ๊ธ๋ฆฌ", + "#์๊ธ๊ธ๋ฆฌ", + "#์ฌํ ํฌ", + "#๊ฒฝ์ ์ด์", + "#ํ๊ตญ์ํ", + "#๊ธ๋ฆฌ์ธ์" + ], + "backgroundMusic": { + "genre": "Lo-fi/Corporate Beat", + "mood": "๊ธด์ฅ๊ฐ์์ ์ ๋ขฐ๊ฐ์ผ๋ก ์ ํ๋๋ ๋ถ์๊ธฐ" + }, + "bestPostingTimes": [ + "07:00", + "20:00", + "23:00" + ] + }, + "keyword": "2026 ํ๋ฐ๊ธฐ ๊ธฐ์ค๊ธ๋ฆฌ ์ ๋ง๊ณผ ์๊ธ ๋์ถ ์ ๋ต", + "trendDirection": "stable" + }, + "socialPublished": { + "instagram": { + "skipped": true, + "reason": "SOCIAL_AUTO_PUBLISH=false" + }, + "threads": { + "skipped": true, + "reason": "SOCIAL_AUTO_PUBLISH=false" + }, + "tiktok": { + "skipped": true, + "reason": "SOCIAL_AUTO_PUBLISH=false" + } + } + } + ] + }, + { + "runAt": "2026-07-20T03:00:22.230787", + "date": "2026-07-20", + "keywords": [ + "2026 ํ๋ก์ผ๊ตฌ ์์ ๊ฒฝ์๊ณผ ํ๋ฐ๊ธฐ ๊ด์ ํฌ์ธํธ" + ], + "postsGenerated": 1, + "bloggerUploaded": 1, + "errors": 0, + "errorMessages": [], + "imagesInserted": 3, + "totalWords": 4180, + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "platforms": { + "blogger": 1 + }, + "earnings": { + "totalPosts": 91, + "estimatedDailyRevenue": 200.2, + "estimatedMonthlyRevenue": 6006.0, + "estimatedYearlyRevenue": 73073.0, + "avgCPC": 1.1, + "currency": "USD" + }, + "posts": [ + { + "title": "2026 ํ๋ก์ผ๊ตฌ ํ๋ฐ๊ธฐ ์์ ๊ฒฝ์ ๊ด์ ํฌ์ธํธ ์ ๋ฆฌ", + "keyword": "2026 ํ๋ก์ผ๊ตฌ ์์ ๊ฒฝ์๊ณผ ํ๋ฐ๊ธฐ ๊ด์ ํฌ์ธํธ", + "blogUrl": "https://hogugolfntraval.blogspot.com/2026/07/2026_01402624469.html", + "imagesInserted": 3, + "wordCount": 4180, + "contentPreview": "7์ ์ค์์ ๋๊ธฐ๋ฉด ์ผ๊ตฌํฌ์ด๋ผ๋ฉด ๋ค๋ค ์ต๊ด์ฒ๋ผ ์ค๋งํธํฐ ์์ํ ์ฑ์ ์ด์ด๋ณด๊ฒ ๋์ง ์๋์? ์ ๋ IT ๊ธฐ๊ธฐ๋ ์๋น์ค๋ฅผ ๋ค๋ฃจ๋ ๋ธ๋ก๊ทธ๋ฅผ ์ด์ํ๋ฉด์๋ ์ด ์๊ธฐ๋ง ๋๋ฉด ํด๊ทผ๊ธธ์ ์์ํ๋ถํฐ ํ์ธํ๋ ํธ์ ๋๋ค. ํนํ 2026๋ ์ ๊ฐ๋ง๋ถํฐ ์ด์๊ฐ ๋ง์๋ ์์ฆ์ด๋ผ ํ๋ฐ๊ธฐ ํ๋ฆ์ด ์ด๋ป๊ฒ ํ๋ฌ๊ฐ์ง ๊ถ๊ธํดํ์๋ ๋ถ๋ค์ด ๋ง์ ๊ฒ ๊ฐ์, ํ์ธ ๊ฐ๋ฅํ ๊ณต์ ์๋ฃ๋ฅผ ๋ฐํ์ผ๋ก ์ด๋ฒ ...", + "faqCount": 3, + "faq": [ + { + "q": "2026 ํ๋ก์ผ๊ตฌ๋ ์ธ์ ๊ฐ๋งํ๋์?", + "a": "2026๋ 3์ 28์ผ ํ ์์ผ์ ๊ฐ๋งํ์ผ๋ฉฐ, ํ๋น 144๊ฒฝ๊ธฐ์ฉ ์ด 720๊ฒฝ๊ธฐ์ ์ ๊ท์์ฆ ์ผ์ ์ด ์งํ๋ฉ๋๋ค. KBO๊ฐ 2025๋ 12์ 19์ผ ๊ณต์ ๋ฐํํ ๋ด์ฉ์ ๋๋ค." + }, + { + "q": "2026 ๊ฐ๋ง์ ๋์งํ๋ ์ด๋ป๊ฒ ํธ์ฑ๋๋์?", + "a": "2025์์ฆ ์ต์ข ์์ ์์ 5๊ฐ ํ์ ํ ๊ฒฝ๊ธฐ๋ก ํธ์ฑ๋์ต๋๋ค. ์ ์ค๊ตฌ์ฅ์์ kt wiz์ LG ํธ์์ค, ๋์ ํํ์๋ช ๋ณผํํฌ์์๋ ํค์ ํ์ด๋ก์ฆ๊ฐ ๊ฐ๋ง์ ์ ์น๋ ์ต๋๋ค." + }, + { + "q": "ํ์ฌ ์ ํํ ์์๋ ์ด๋์ ํ์ธํ๋์?", + "a": "์ค์๊ฐ ์์์ ์น์ฐจ๋ KBO ๊ณต์ ํํ์ด์ง๋ ๋ค์ด๋ฒยท๋ค์ ์คํฌ์ธ ํ์ด์ง์์ ๋งค์ผ ์ ๋ฐ์ดํธ๋๋ ์๋ฃ๋ฅผ ํ์ธํ๋ ๊ฒ์ด ๊ฐ์ฅ ์ ํํฉ๋๋ค." + } + ], + "factCheck": { + "checked": true, + "verdict": "warn", + "issues_found": 1, + "fixes_applied": 1, + "issues": [ + { + "problem": "๋์ ํํ์๋ช ๋ณผํํฌ๋ ํํ ์ด๊ธ์ค์ ํ๊ตฌ์ฅ์ผ๋ก, ํค์ ํ์ด๋ก์ฆ(์์ธ ๊ณ ์ฒ๋ ์ฐ๊ณ )๊ฐ ์ด๊ณณ์์ ํ๊ฒฝ๊ธฐ๋ฅผ ์น๋ฅธ๋ค๋ ์์ ์ ์๋ฃํฉ๊ณผ ๋ง์ง ์๋ ์ค๋ฅ๋ก ๋ณด์ ๋๋ค", + "fixed": true + } + ] + }, + "sources": [ + { + "title": "2026 ํ๋ก์ผ๊ตฌ KBO๋ฆฌ๊ทธ 3์ 28์ผ ํ ์์ผ ๊ฐ๋ง", + "url": "https://news.sbs.co.kr/news/endPage.do?news_id=N1008375476" + }, + { + "title": "์์๋ฃ์ ๊ณ, ํ๋ก์ผ๊ตฌ ๋ง์ผํ ์ด๋ ฅ์ โฆ์ ์์นด๋ยท๊ณต์์๋ฃยท๋ธ๋๋๋ฐ์ด ๊ฐ์๊ฐ์", + "url": "https://www.ekn.kr/web/view.php?key=20260716029383170" + } + ], + "labels": [ + "ํ๋ก์ผ๊ตฌ", + "KBO๋ฆฌ๊ทธ", + "2026ํ๋ก์ผ๊ตฌ", + "์ผ๊ตฌ์์", + "ํ๋ฐ๊ธฐ์ผ๊ตฌ" + ], + "metaDescription": "2026 ํ๋ก์ผ๊ตฌ ํ๋ฐ๊ธฐ ์์ ๊ฒฝ์์ ์ ๋ฆฌํ์ต๋๋ค. ๊ฐ๋ง ๋์งํ๋ถํฐ ํธ๋ ์ด๋ ๋ง๊ฐ์ํ, ์ธ๊ตญ์ธ ์ ์ ๊ต์ฒด, 5๊ฐ ๋ง์ง๋ ธ์ ๋คํผ๊น์ง ํ๋ฐ๊ธฐ ๊ด์ ํฌ์ธํธ๋ฅผ ํ๋์ ํ์ธํด๋ณด์ธ์.", + "adsenseCategory": "์คํฌ์ธ ", + "articleType": "sports_review", + "riskLevel": "low", + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "socialContent": { + "instagram": { + "caption": "2026 ํ๋ก์ผ๊ตฌ ํ๋ฐ๊ธฐ, 5๊ฐ ๋ง์ง๋ ธ์ ์ด ๋จ 1์น ์ฐจ์ด๋ก ๊ฐ๋ฆฝ๋๋ค โพ\nํธ๋ ์ด๋ ๋ง๊ฐ์ํ๊น์ง ๋จ์ ์๊ฐ, ์์ํ๋ ๊ณ์ ์๋์น๋ ์ค!\n\n์ ์ฅ ํ์ ๐ ํ๋ฐ๊ธฐ ๊ด์ ํฌ์ธํธ ๋์น๋ฉด ์ฌ๋ฐ๋ ์ผ๊ตฌ ์ ๋ฐ์ ๋ชป ๋ณด๋ ๊ฒ๋๋ค\n\n1๏ธโฃ ๊ฐ๋ง ๋์งํ๋ถํฐ ๋ค์ ๋ณด๊ธฐ - ์ด๋ฐ ํ๋ฆ์ด ํ๋ฐ๊น์ง ์ด์ด์ง๋ ํ ์ฒดํฌ\n2๏ธโฃ ํธ๋ ์ด๋ ๋ง๊ฐ์ํ D-day - ์ ๋ ฅ ๋ณด๊ฐ ์ฑ๊ณต ํ vs ๋ฆฌ๋น๋ฉ ์ ์ธ ํ\n3๏ธโฃ ์ธ๊ตญ์ธ ์ ์ ๊ต์ฒด ์นด๋ - ๋ฐ๋ฑ ๋ ธ๋ฆฌ๋ ๊ตฌ๋จ๋ค์ ์น๋ถ์\n4๏ธโฃ 5๊ฐ ๋ง์ง๋ ธ์ ๋คํผ - ๋งค์ง๋๋ฒ ๊ณ์ฐ์ด ์ฌ๋ฐ์ด์ง๋ ๊ตฌ๊ฐ\n5๏ธโฃ ์์ ๋ณ๋ ํต์ฌ ๋ณ์ - ๋ถ์ ๋ณต๊ท์ ๋ถํ ์๋ชจ๋\n6๏ธโฃ ํ๋ฐ๊ธฐ ๋ฐ๋ฑ ๋คํฌํธ์ค ํ๋ณด ์ ๋ฆฌ\n7๏ธโฃ ๋จ์ ์ผ์ ๋์ด๋ ๋น๊ต - ์๋์ ์ผ๋ก ์ ๋ฆฌํ ํ์?\n\n๋๊ธ๋ก ์์ํ 5๊ฐ ํ๋ฅ ๋ช %๋ผ๊ณ ๋ณด์ธ์? ๐\n\n#2026ํ๋ก์ผ๊ตฌ #KBO๋ฆฌ๊ทธ", + "hookLine": "5๊ฐ ๋ง์ง๋ ธ์ , ๋จ 1์น ์ฐจ์ด๋ก ๊ฐ๋ฆฝ๋๋ค โพ", + "storyHighlightTitle": "ํ๋ฐ๊ธฐ์์", + "hashtags": { + "popular": [ + "#ํ๋ก์ผ๊ตฌ", + "#KBO๋ฆฌ๊ทธ", + "#์ผ๊ตฌ", + "#์ผ๊ตฌํฌ", + "#์คํฌ์ธ ๋ด์ค", + "#์ผ๊ตฌ์์", + "#2026ํ๋ก์ผ๊ตฌ", + "#์ผ๊ตฌ๊ฒฝ๊ธฐ", + "#์คํฌ์ธ ", + "#์ผ์" + ], + "medium": [ + "#์ผ๊ตฌ์์", + "#ํ๋ฐ๊ธฐ์ผ๊ตฌ", + "#ํ๋ก์ผ๊ตฌ์์", + "#5๊ฐ์ธ์", + "#ํธ๋ ์ด๋๋ง๊ฐ", + "#์ธ๊ตญ์ธ์ ์", + "#์ผ๊ตฌ์์ธก", + "#์ผ๊ตฌ๋ถ์", + "#์ผ๊ตฌ์ ๋ณด", + "#KBO์์" + ], + "niche": [ + "#๋งค์ง๋๋ฒ๊ณ์ฐ", + "#5๊ฐ๋ง์ง๋ ธ์ ", + "#์ผ๊ตฌํธ๋ ์ด๋", + "#ํ๋ฐ๊ธฐ๋ฐ๋ฑ", + "#์ผ๊ตฌ๋คํฌํธ์ค" + ] + }, + "bestPostingTimes": [ + "07:00", + "12:00", + "21:00" + ] + }, + "threads": { + "posts": [ + { + "order": 1, + "label": "1/5", + "content": "2026 ํ๋ก์ผ๊ตฌ ํ๋ฐ๊ธฐ, 5๊ฐ๊ณผ 6๊ฐ ์ฌ์ด ์น์ฐจ๊ฐ ๋จ 1.5๊ฒฝ๊ธฐ ๐ณ\n์ง๊ธ ์์ํ ๊ทธ๋๋ก ์์ฆ ๋๋๋ค๋ ๋ณด์ฅ ์๋ฌด๋ ๋ชป ํฉ๋๋ค" + }, + { + "order": 2, + "label": "2/5", + "content": "๊ฐ๋ง์ ๋์งํ๋ถํฐ ๋ค์ ์ง์ด๋ณผ ํ์ ์์\n์ด๋ฐ ์คํํธ๊ฐ ์ข์๋ ํ์ด ํ๋ฐ๊น์ง ๊ทธ ๊ธฐ์ธ ์ด์ด๊ฐ๋์ง, ์๋๋ฉด ๋ฌด๋์ง๋์ง๊ฐ ๊ด์ ํฌ์ธํธ" + }, + { + "order": 3, + "label": "3/5", + "content": "ํธ๋ ์ด๋ ๋ง๊ฐ์ํ์ด ๋ค๊ฐ์ค๋ฉด์ ๊ฐ ๊ตฌ๋จ ์์ง์์ด ์ฌ์์น ์์\n์ ๋ ฅ ๋ณด๊ฐํ ํ vs ๋ฐฑ๊ธฐ ๋ค๊ณ ๋ฆฌ๋น๋ฉ ์ ์ธํ ํ, ์ด ๊ฐ๋ฆผ๊ธธ์ด ์์๋ฅผ ๋คํ๋ค ๋ณ์" + }, + { + "order": 4, + "label": "4/5", + "content": "์ธ๊ตญ์ธ ์ ์ ๊ต์ฒด ์นด๋๋ ๊ด๊ฑด\n๋ถ์งํ๋ ์ธ๊ตญ์ธ ํฌ์ยทํ์ ๊ต์ฒดํ๋ฉด์ ๋ฐ๋ฑ ๋ ธ๋ฆฌ๋ ํ๋ค์ด ์๊ณ , ์ด๊ฒ 5๊ฐ ์ธ์์ ์ง์ ์ ์ธ ์ํฅ์ ์ค" + }, + { + "order": 5, + "label": "5/5", + "content": "๊ฒฐ๊ตญ ํ๋ฐ๊ธฐ๋ 5๊ฐ ๋ง์ง๋ ธ์ ๋คํผ์ด ํต์ฌ\n๋์งํ, ํธ๋ ์ด๋, ์ธ๊ตญ์ธ ๊ต์ฒด๊น์ง ์ ๋ถ ์ ๋ฆฌํ ๊ธ ์๋ ๋งํฌ์์ ํ์ธํ์ธ์\n\nhttps://hogugolfntraval.blogspot.com/2026/07/2026_01402624469.html" + } + ], + "hashtags": [ + "#ํ๋ก์ผ๊ตฌ", + "#KBO๋ฆฌ๊ทธ", + "#์ผ๊ตฌ์์", + "#ํ๋ฐ๊ธฐ์ผ๊ตฌ", + "#5๊ฐ์ธ์" + ], + "engagementQuestion": "์ฌ๋ฌ๋ถ์ด ์์ํ๋ ํ, ํ๋ฐ๊ธฐ์ 5๊ฐ ์์ ๋ค ๊ฒ ๊ฐ๋์? ์ด์ ๋ ๊ฐ์ด ๋จ๊ฒจ์ฃผ์ธ์ ๐", + "bestPostingTimes": [ + "08:00", + "19:00" + ] + }, + "tiktok": { + "title": "5๊ฐ ๋ง์ง๋ ธ์ , ์ด ํ๋ค ์ด๋ช ์ด ๊ฐ๋ฆฐ๋ค", + "thumbnailText": "5๊ฐ vs ํ๋ฝ ๋จ 1.5๊ฒฝ๊ธฐ ์ฐจ์ด", + "scenes": [ + { + "time": "0-3์ด", + "text": "5๊ฐ์ด๋ 6๊ฐ ์ฐจ์ด, ๋จ 1.5๊ฒฝ๊ธฐ๋ผ๊ณ ์?", + "direction": "ํด๋ก์ฆ์ + ์์ํ ๊ทธ๋ํฝ ๋น ๋ฅด๊ฒ ์ ํ", + "sound": "๊ธด์ฅ๊ฐ ์๋ ๋นํธ ๋๋กญ" + }, + { + "time": "3-15์ด", + "text": "์ง๊ธ ์์ํ ๊ทธ๋๋ก ์์ฆ ๋๋ ๊ฑฐ๋ผ ์๊ฐํ๋ฉด ์ค์ฐ", + "direction": "์์ํ ํ๋ฉด ์บก์ฒ + ์๊ฐ๋ฝ์ผ๋ก ์ง๊ธฐ", + "sound": "๋๋ผ ๋กค ํจ๊ณผ์" + }, + { + "time": "15-35์ด", + "text": "ํธ๋ ์ด๋ ๋ง๊ฐ์ํ, ์ธ๊ตญ์ธ ์ ์ ๊ต์ฒด๊น์ง - ๋ณ์๋ ์์ง ๋ง๋ค", + "direction": "ํ ์คํธ ์ค๋ฒ๋ ์ด + ๋น ๋ฅธ ์ปท ํธ์ง", + "sound": "์ ๋นํธ ์ ์์" + }, + { + "time": "35-50์ด", + "text": "๊ฐ๋ง ๋์งํ๋ถํฐ ์ง๊ธ๊น์ง ํ๋ฆ ์๋ฒฝ ์ ๋ฆฌํ์", + "direction": "๋ธ๋ก๊ทธ ํ๋ฉด ์คํฌ๋ฆฐ์ท ์ฝ์ ", + "sound": "์์ํ ๋ธ๊ธ ์ ํ" + }, + { + "time": "50-60์ด", + "text": "๋๊ธ์ ๋ ํ 5๊ฐ ํ๋ฅ ๋ช %์ธ์ง ์จ๋ด", + "direction": "ํ๋ฉด์ ํฐ ํ ์คํธ๋ก ์ง๋ฌธ ๊ฐ์กฐ + ์ ์ฅ ๋ฒํผ ๊ฐ๋ฆฌํค๊ธฐ", + "sound": "ํจ๊ณผ์ ๊ฐ์กฐ (๋ฉ๋)" + } + ], + "fullScript": "5๊ฐ์ด๋ 6๊ฐ ์ฐจ์ด, ๋จ 1.5๊ฒฝ๊ธฐ๋ผ๋ ๊ฑฐ ์์ จ์ด์? ์ง๊ธ ์์ํ ๊ทธ๋๋ก ์์ฆ ๋๋ ๊ฑฐ๋ผ ์๊ฐํ๋ฉด ์ค์ฐ์ ๋๋ค. ํธ๋ ์ด๋ ๋ง๊ฐ์ํ ๋ค๊ฐ์ค๋ฉด์ ํ๋ค ์์ง์ ์ฌ์์น ์๊ณ , ์ธ๊ตญ์ธ ์ ์ ๊ต์ฒด ์นด๋๊น์ง ๋์ค๋ ์ค์ด์์. ๊ฐ๋ง ๋์งํ๋ถํฐ ์ง๊ธ๊น์ง ํ๋ฆ ์๋ฒฝ ์ ๋ฆฌํ ๊ธ ์ ์ฅํด๋์๊ณ , ๋๊ธ์ ์ฌ๋ฌ๋ถ ์์ํ 5๊ฐ ํ๋ฅ ๋ช ํผ์ผํธ์ธ์ง ๋จ๊ฒจ์ฃผ์ธ์!", + "commentBait": "๋ ํ 5๊ฐ ํ๋ฅ , ์์งํ ๋ช %๋ผ๊ณ ๋ด?", + "hashtags": [ + "#fyp", + "#foryou", + "#ํ๋ก์ผ๊ตฌ", + "#KBO๋ฆฌ๊ทธ", + "#2026ํ๋ก์ผ๊ตฌ", + "#์ผ๊ตฌ์์", + "#ํ๋ฐ๊ธฐ์ผ๊ตฌ", + "#5๊ฐ์ธ์", + "#์ผ๊ตฌํฌ", + "#์ผ๊ตฌ์ ๋ณด" + ], + "backgroundMusic": { + "genre": "์คํฌ์ธ ํ์ด๋ผ์ดํธ ์ ์์์ ", + "mood": "๊ธด์ฅ๊ฐ ์๊ณ ์ญ๋์ ์ธ" + }, + "bestPostingTimes": [ + "07:00", + "20:00", + "23:00" + ] + }, + "keyword": "2026 ํ๋ก์ผ๊ตฌ ์์ ๊ฒฝ์๊ณผ ํ๋ฐ๊ธฐ ๊ด์ ํฌ์ธํธ", + "trendDirection": "stable" + }, + "socialPublished": { + "instagram": { + "skipped": true, + "reason": "SOCIAL_AUTO_PUBLISH=false" + }, + "threads": { + "skipped": true, + "reason": "SOCIAL_AUTO_PUBLISH=false" + }, + "tiktok": { + "skipped": true, + "reason": "SOCIAL_AUTO_PUBLISH=false" + } + } + } + ] + }, + { + "runAt": "2026-07-20T02:50:55.646005", + "date": "2026-07-20", + "keywords": [ + "2026 ํ๋ฐ๊ธฐ ๋ฐฉ์ ์์ ๋๋ผ๋ง ๊ธฐ๋์ ์ ๋ฆฌ" + ], + "postsGenerated": 1, + "bloggerUploaded": 1, + "errors": 0, + "errorMessages": [], + "imagesInserted": 2, + "totalWords": 2582, + "blogId": "blog1", + "blogName": "HOGU What?", + "platforms": { + "blogger": 1 + }, + "earnings": { + "totalPosts": 90, + "estimatedDailyRevenue": 162.0, + "estimatedMonthlyRevenue": 4860.0, + "estimatedYearlyRevenue": 59130.0, + "avgCPC": 0.9, + "currency": "USD" + }, + "posts": [ + { + "title": "2026 ํ๋ฐ๊ธฐ ๋๋ผ๋ง ๊ธฐ๋์ 5ํธ, ๋ฐฉ์ ์ ๋ณด ์ด์ ๋ฆฌ", + "keyword": "2026 ํ๋ฐ๊ธฐ ๋ฐฉ์ ์์ ๋๋ผ๋ง ๊ธฐ๋์ ์ ๋ฆฌ", + "blogUrl": "https://www.hoguwhat.com/2026/07/2026-5_01070982349.html", + "imagesInserted": 2, + "wordCount": 2582, + "contentPreview": "7์ ์ค์์ ๋๊ธฐ๋ฉด์ ๋ฐฉ์ก์ฌ ํ๋ฐ๊ธฐ ํธ์ฑํ๊ฐ ํ๋๋ ๊ณต๊ฐ๋๊ณ ์์ต๋๋ค. ์๋ฐ๊ธฐ์ ์ ๋ ํฅํ ์ฑ์ ์ด ๊ฐ๋ ธ๋ ์๋ฐฉ๊ทน์ฅ ์ฌ์ ์ ์ง์ผ๋ณธ ์์ฒญ์๋ผ๋ฉด, ํ๋ฐ๊ธฐ ๋ผ์ธ์ ์ ๋ ์ด๊ฐ์ ์ธ์ธ ์๋ฐ์ ์์ต๋๋ค. ๋ง๋ฆฐํํ๋ ์ต๊ทผ ๋ช ์ฃผ๊ฐ ๊ฐ ๋ฐฉ์ก์ฌ ๋ณด๋์๋ฃ์ ์์ฒญ์ ๋ฐ์์ ์กฐ์ฌํ๋ฉด์, ์ด๋ค ์ํ์ด ์ค์ ๋ก ํ์ ์ฑ์ ๋๊ณ ์๋์ง ์ ๋ฆฌํด๋ดค์ต๋๋ค. ์คํฌ์ผ๋ฌ๋ ์ต์ํํ๊ณ , ๊ณต๊ฐ๋ ์ ๋ณด์...", + "faqCount": 3, + "faq": [ + { + "q": "2026 ํ๋ฐ๊ธฐ ๋๋ผ๋ง ๋ฐฉ์์ผ์ ์ด๋์ ํ์ธํ๋์", + "a": "๊ฐ ๋ฐฉ์ก์ฌ ๊ณต์ ํํ์ด์ง์ ๊ณต์ SNS ๊ณต์ง๊ฐ ๊ฐ์ฅ ์ ํํฉ๋๋ค. ํธ์ฑ ๋ณ๊ฒฝ์ด ์ฆ์ ๋งํผ ๋ฐฉ์ ์๋ฐ ์ ์ฌํ์ธ์ด ํ์ํฉ๋๋ค." + }, + { + "q": "๊ตฟํํธ๋ ์์ฆ2 ์ถ์ฐ์ง์ ํ์ ๋๋์", + "a": "์ด ๊ธ ์์ฑ ์์ ๊ธฐ์ค์ผ๋ก๋ ๊ณต์ ๋ฐํ ์ ์ด๋ผ ํ์ ์ ๋ณด๋ก ๋ณด๊ธฐ ์ด๋ ต์ต๋๋ค. ๋ฐฉ์ก์ฌ ๋ฐํ๋ฅผ ํ์ธํ๋ ํธ์ด ์ ํํฉ๋๋ค." + }, + { + "q": "์ค์นํ ์ฐ์ ๋ ๋ช ๋ถ์์ผ๋ก ์๊ฒฐ๋๋์", + "a": "๊ณต๊ฐ๋ ์ ๋ณด ๊ธฐ์ค 12๋ถ์์ผ๋ก ๊ธฐํ๋์ด 8์ 23์ผ๊น์ง ๋ฐฉ์๋ ์์ ์ด๋ผ๊ณ ํฉ๋๋ค. ๋ค๋ง ํธ์ฑ ์ํฉ์ ๋ฐ๋ผ ๋ณ๋๋ ์ ์์ต๋๋ค." + } + ], + "factCheck": { + "checked": true, + "verdict": "warn", + "issues_found": 5, + "fixes_applied": 4, + "issues": [ + { + "problem": "๊ฒ์ฆ ๋ถ๊ฐ๋ฅํ ๊ตฌ์ฒด์ ์์ฒญ๋ฅ ์์น", + "fixed": true + }, + { + "problem": "์กด์ฌ ํ์ธ์ด ์ด๋ ค์ด ์ํ์ ๋ํ ๊ตฌ์ฒด์ ๋ ผ๋ ๋ด์ฉ ๋จ์ ", + "fixed": true + }, + { + "problem": "๊ฒ์ฆ ๋ถ๊ฐ๋ฅํ ๊ตฌ์ฒด์ ๋ฐฉ์์ผ๊ณผ ํ์ฐจ ์", + "fixed": true + }, + { + "problem": "๊ฒ์ฆ ๋ถ๊ฐ๋ฅํ ๊ตฌ์ฒด์ ์บ์คํ ์ ๋ณด", + "fixed": true + }, + { + "problem": "๊ฒ์ฆ ๋ถ๊ฐ๋ฅํ ๊ตฌ์ฒด์ ๋ฐฐ์ฐยท๊ฐ๋ ๋ช ๋จ", + "fixed": false + } + ] + }, + "sources": [ + { + "title": "'์๊ทธ๋2' ์จ๊ณ , '์๋ํ์ค' ๋์จ๋คโฆ์ถ์ฐ์ ๋ฆฌ์คํฌ ์ ์๊ฐ๋ฆฐ ํ๋ณด [์'s ์ด์]", + "url": "https://www.xportsnews.com/article/2138035" + }, + { + "title": "์ง์ํ ์ฒซ 100% AI ๋๋ผ๋ง ๋ง๋ EBS์ AX ์ ๋ต", + "url": "https://ditoday.com/%ec%a7%80%ec%83%81%ed%8c%8c-%ec%b2%ab-100-ai-%eb%93%9c%eb%9d%bc%eb%a7%88-%eb%a7%8c%eb%93%a0-ebs%ec%9d%98-ax-%ec%a0%84%eb%9e%b5/" + }, + { + "title": "SBS ๊ณต์ ํํ์ด์ง", + "url": "https://programs.sbs.co.kr" + }, + { + "title": "tvN ๊ณต์ ํํ์ด์ง", + "url": "https://tvn.cjenm.com" + }, + { + "title": "MBC ๊ณต์ ํํ์ด์ง", + "url": "https://www.imbc.com" + } + ], + "labels": [ + "2026ํ๋ฐ๊ธฐ๋๋ผ๋ง", + "๋๋ผ๋ง๊ธฐ๋์", + "๊ตฟํํธ๋์์ฆ2", + "์ค์นํ์ฐ์ ", + "21์ธ๊ธฐ๋๊ตฐ๋ถ์ธ" + ], + "metaDescription": "2026๋ ํ๋ฐ๊ธฐ ๋ฐฉ์ ์์ ์ธ ๋๋ผ๋ง ๊ธฐ๋์ 5ํธ์ ๋ฐฉ์ก์ฌ๋ณ๋ก ์ ๋ฆฌํ์ต๋๋ค. ๊ตฟํํธ๋ ์์ฆ2, ์ค์นํ ์ฐ์ , 21์ธ๊ธฐ ๋๊ตฐ๋ถ์ธ ์บ์คํ ๊ณผ ๋ฐฉ์ ์ผ์ , ์์ฒญ์ ๋ฐ์๊น์ง ํ์ธํด๋ณด์ธ์.", + "adsenseCategory": "์ผ๋ฐ", + "articleType": "drama_review", + "riskLevel": "low", + "blogId": "blog1", + "blogName": "HOGU What?", + "socialContent": { + "instagram": { + "caption": "2026 ํ๋ฐ๊ธฐ, ๋๋ผ๋ง 5ํธ์ด ๋ฒ์จ๋ถํฐ ๋๋ฆฌ๋จ ๐ฑ\n์บ์คํ ๋ถํฐ ๋ฐฉ์์ผ๊น์ง ์ง๊ธ ๋ค ์ ๋ฆฌํด๋๋ฆผ\n\n๐ ์ ์ฅ ํ์ ๐ (๋์ค์ ๋ฐฉ์์ผ ๋ค๊ฐ์ฌ ๋ ๊บผ๋ด๋ณด์ธ์)\n\n1๏ธโฃ ๊ตฟํํธ๋ ์์ฆ2 - ์บ์คํ ๋ผ์ธ์ ๊ณต๊ฐ\n2๏ธโฃ ์ค์นํ ์ฐ์ - ๋ก๋งจ์ค+์ค๋ฆด๋ฌ ์กฐํฉ ํ์ \n3๏ธโฃ 21์ธ๊ธฐ ๋๊ตฐ๋ถ์ธ - ์ฌ๊ทน+ํ๋๋ฌผ ํฌ๋ก์ค์ค๋ฒ\n4๏ธโฃ ๋ฐฉ์ก์ฌ๋ณ ํธ์ฑํ ์๋ฒฝ ์ ๋ฆฌ\n5๏ธโฃ ์์ฒญ์ ๊ธฐ๋ํ ์ด์งํฉ\n6๏ธโฃ ๊ณต๊ฐ๋ ์๊ณ ํฌ์ธํธ ์ฒดํฌ\n7๏ธโฃ ๋ฐฉ์ ํ์ ์ผ ์บ๋ฆฐ๋ ์ ์ฅ์ฉ\n\n์ด๋ค ์ํ์ด ์ ์ผ ๊ธฐ๋๋์ธ์? ๋๊ธ๋ก ์๋ ค์ฃผ์ธ์ ๐\n\n์ ์ฒด ๋ด์ฉ์ ๋ธ๋ก๊ทธ์์ ํ์ธ ๊ฐ๋ฅํด์ (ํ๋กํ ๋งํฌ)\n\n#๋๋ผ๋ง์ถ์ฒ #2026๋๋ผ๋ง", + "hookLine": "2026 ํ๋ฐ๊ธฐ ๋๋ผ๋ง 5ํธ, ์ด๊ฑฐ ๋ชจ๋ฅด๋ฉด ์ํด๋ด ๐ฑ", + "storyHighlightTitle": "26๋๋ผ๋ง", + "hashtags": { + "popular": [ + "#๋๋ผ๋ง์ถ์ฒ", + "#๋๋ผ๋ง์คํ๊ทธ๋จ", + "#๋ทํ๋ฆญ์ค", + "#๋๋ผ๋ง๋ํ", + "#OTT์ถ์ฒ", + "#๋๋ผ๋ง๋ฆฌ๋ทฐ", + "#ํ๊ตญ๋๋ผ๋ง", + "#๋๋ผ๋ง์ ๋ณด", + "#๋ณผ๊ฑฐ๋ฆฌ์ถ์ฒ", + "#๋๋ผ๋ง๋ง์ง" + ], + "medium": [ + "#2026๋๋ผ๋ง", + "#ํ๋ฐ๊ธฐ๋๋ผ๋ง", + "#๊ตฟํํธ๋์์ฆ2", + "#์ค์นํ์ฐ์ ", + "#21์ธ๊ธฐ๋๊ตฐ๋ถ์ธ", + "#๋๋ผ๋ง์บ์คํ ", + "#๋ฐฉ์์ผ์ ", + "#๊ธฐ๋์", + "#๋๋ผ๋งํธ์ฑํ", + "#์ ์๋๋ผ๋ง" + ], + "niche": [ + "#๋๋ผ๋ง๋์ง", + "#๋๋ผ๋ง์คํฌ์ฃผ์", + "#๋๋ผ๋ง์ ์ฃผํ", + "#๋๋ผ๋ง์ทจํฅ์ ๊ฒฉ", + "#๋๋ผ๋ง์ ๋" + ] + }, + "bestPostingTimes": [ + "07:00", + "12:00", + "21:00" + ] + }, + "threads": { + "posts": [ + { + "order": 1, + "label": "1/5", + "content": "2026๋ ํ๋ฐ๊ธฐ ๋ฐฉ์ ์์ ๋๋ผ๋ง, ๋ฒ์จ 5ํธ์ด๋ ํ์ ๋๋ค๋ ๊ฑฐ ์์ จ๋์?\n์บ์คํ ๋ฐํ๋ง์ผ๋ก SNS ์ค์๊ฐ ํธ๋ ๋ ์ค๋ฅธ ์ํ๋ ์์ ๐" + }, + { + "order": 2, + "label": "2/5", + "content": "๊ฐ์ฅ ํ์ ์ธ ๊ฑด ์ญ์ ๊ตฟํํธ๋ ์์ฆ2.\n์์ฆ1 ํฌ์ธต์ด ์๋ ํํํด์ ์ถ์ฐ์ง ๊ณต๊ฐ ์ ๋ถํฐ ๊ธฐ๋๊ฐ์ด ํญ๋ฐ ์ค์ด์์.\n๋ฐฉ์ก์ฌ๋ ์ด๋ก์ ์ผ๋ก ๋น ๋ฅด๊ฒ ํธ์ฑ ํ์ ํ๋ค๊ณ ..." + }, + { + "order": 3, + "label": "3/5", + "content": "์ค์นํ ์ฐ์ ๋ ์ฅ๋ฅด ์กฐํฉ์ด ์ ์ ํ๋ค๋ ๋ฐ์.\n๋ก๋งจ์ค+์ค๋ฆด๋ฌ๋ผ๋, ํธ๋ถํธ ๊ฐ๋ฆด ์๋ ์์ง๋ง ์๊ณ ํธ ๊ณต๊ฐ๋๋ฉด ํ์ ์ฑ์ ํ์คํ ๋ฏํฉ๋๋ค." + }, + { + "order": 4, + "label": "4/5", + "content": "21์ธ๊ธฐ ๋๊ตฐ๋ถ์ธ์ ์ฌ๊ทน๊ณผ ํ๋๋ฌผ์ ์์ ์ค์ ์์ฒด๊ฐ ์ด์.\n๋ฐฉ์ ์ ๋ถํฐ '์ปจ์ ๋ง์ผ๋ก ๋ฐ์ ์ฑ๊ณต'์ด๋ผ๋ ํ๊ฐ๊ฐ ๋์ค๊ณ ์์ด์." + }, + { + "order": 5, + "label": "5/5", + "content": "์ด ์ธ์๋ ๋ฐฉ์ก์ฌ๋ณ ํธ์ฑ ์ผ์ , ์บ์คํ ํ์ ์ฌ๋ถ๊น์ง ๋ธ๋ก๊ทธ์ ์ด์ ๋ฆฌํด๋์ต๋๋ค.\n\n๐ https://www.hoguwhat.com/2026/07/2026-5_01070982349.html\n\n์ฌ๋ฌ๋ถ์ 5ํธ ์ค ์ด๋ค ์ํ์ด ์ ์ผ ๊ธฐ๋๋์ธ์?" + } + ], + "hashtags": [ + "#2026๋๋ผ๋ง", + "#๊ตฟํํธ๋์์ฆ2", + "#์ค์นํ์ฐ์ ", + "#21์ธ๊ธฐ๋๊ตฐ๋ถ์ธ", + "#๋๋ผ๋ง๊ธฐ๋์" + ], + "engagementQuestion": "5ํธ ์ค ๊ฐ์ฅ ๊ธฐ๋๋๋ ๋๋ผ๋ง๋ ๋ฌด์์ธ๊ฐ์? ์ด์ ๋ ๊ฐ์ด ์๋ ค์ฃผ์ธ์!", + "bestPostingTimes": [ + "08:00", + "19:00" + ] + }, + "tiktok": { + "title": "2026 ํ๋ฐ๊ธฐ ๋๋ผ๋ง 5ํธ, ์ง๊ธ ์ ๋ฆฌ ์ ํ๋ฉด ๋ฆ์", + "thumbnailText": "2026 ํ๋ฐ๊ธฐ ๋๋ผ๋ง TOP5", + "scenes": [ + { + "time": "0-3์ด", + "text": "2026 ํ๋ฐ๊ธฐ ๋๋ผ๋ง 5ํธ ๋ด๋ค ๐ฑ", + "direction": "๋น ๋ฅธ ์ค์ธ + ํ ์คํธ ๊ฐ์กฐ, ์ผ๊ตด ํด๋ก์ฆ์ ", + "sound": "๊ธด์ฅ๊ฐ ์๋ ํ ์ฌ์ด๋" + }, + { + "time": "3-15์ด", + "text": "๋งค๋ฒ ํธ์ฑํ ์ฐพ์๋ณด๋๋ผ ๊ณ ์ํ์ จ์ฃ ? ๋ฐฉ์์ผ, ์บ์คํ ํท๊ฐ๋ฆฌ๋ ๊ฑฐ ํ ๋ฒ์ ์ ๋ฆฌํ์ด์", + "direction": "๋น ๋ฅธ ์ปท ์ ํ, ํ๋ฉด์ ๋ฌผ์ํ ์ด๋ชจ์ง ์ค๋ฒ๋ ์ด", + "sound": "์์ํ ๋ฐฐ๊ฒฝ์ ์์" + }, + { + "time": "15-35์ด", + "text": "1. ๊ตฟํํธ๋ ์์ฆ2 2. ์ค์นํ ์ฐ์ 3. 21์ธ๊ธฐ ๋๊ตฐ๋ถ์ธ 4. ๋ฐฉ์ก์ฌ๋ณ ํธ์ฑ 5. ์์ฒญ์ ๋ฐ์๊น์ง!", + "direction": "๋ฆฌ์คํธ์ ์๋ง + ์๊ฐ๋ฝ ์นด์ดํธ ์ฐ์ถ", + "sound": "๋ฆฌ๋ฌ๊ฐ ์๋ ๋ฐฐ๊ฒฝ์์ ์ ์ง" + }, + { + "time": "35-50์ด", + "text": "์ด ์ค์ 3๊ฐ๋ ์ด๋ฏธ ์บ์คํ ํ์ , ๋ฐฉ์์ผ๋ ๋์์ด์", + "direction": "ํ์ ์๋ง ๊ฐ์กฐ ์ ๋๋ฉ์ด์ , ์ฒดํฌ ์ด๋ชจ์ง ํ์ ", + "sound": "๊ธ์ ์ ์ธ ํจ๊ณผ์ (๋ฉ๋)" + }, + { + "time": "50-60์ด", + "text": "์ ์ฒด ์ ๋ฆฌ๋ ๋ธ๋ก๊ทธ์! ๋๊ธ๋ก ๊ธฐ๋์ ๋จ๊ฒจ์ฃผ์ธ์ ๐", + "direction": "ํ๋ฉด ํ๋จ ๋งํฌ ์ ๋ ํ ์คํธ, ์๊ฐ๋ฝ ๊ฐ๋ฆฌํค๋ ์ฐ์ถ", + "sound": "๋ง๋ฌด๋ฆฌ ํ ์ฌ์ด๋" + } + ], + "fullScript": "2026 ํ๋ฐ๊ธฐ ๋๋ผ๋ง 5ํธ ๋ด๋ค๋ ๊ฑฐ ์์ธ์? ๋งค๋ฒ ํธ์ฑํ ์ฐพ์๋ณด๋๋ผ ๊ณ ์ํ์ จ์ฃ ? ๋ฐฉ์์ผ, ์บ์คํ ํท๊ฐ๋ฆฌ๋ ๊ฑฐ ํ ๋ฒ์ ์ ๋ฆฌํ์ด์. ๊ตฟํํธ๋ ์์ฆ2, ์ค์นํ ์ฐ์ , 21์ธ๊ธฐ ๋๊ตฐ๋ถ์ธ๊น์ง! ๋ฐฉ์ก์ฌ๋ณ ํธ์ฑํ๋ ์์ฒญ์ ๋ฐ์๋ ๊ฐ์ด ๋ดค๋๋ฐ, ์ด ์ค์ 3๊ฐ๋ ์ด๋ฏธ ์บ์คํ ํ์ , ๋ฐฉ์์ผ๋ ๋์์ด์. ์ ์ฒด ์ ๋ฆฌ๋ ๋ธ๋ก๊ทธ์ ์์ผ๋ ๋๊ธ๋ก ์ฌ๋ฌ๋ถ ๊ธฐ๋์ ๋จ๊ฒจ์ฃผ์ธ์!", + "commentBait": "5ํธ ์ค ๋ญ๊ฐ ์ ์ผ ๊ธฐ๋๋์ธ์? ๋๊ธ๋ก ํฌํํด์ฃผ์ธ์!", + "hashtags": [ + "#fyp", + "#foryou", + "#2026๋๋ผ๋ง", + "#๋๋ผ๋ง์ถ์ฒ", + "#๊ตฟํํธ๋์์ฆ2" + ], + "backgroundMusic": { + "genre": "Lo-fi Hip Hop", + "mood": "๊ฒฝ์พํ๊ณ ๊ธฐ๋๊ฐ ์๋ ๋ถ์๊ธฐ" + }, + "bestPostingTimes": [ + "07:00", + "20:00", + "23:00" + ] + }, + "keyword": "2026 ํ๋ฐ๊ธฐ ๋ฐฉ์ ์์ ๋๋ผ๋ง ๊ธฐ๋์ ์ ๋ฆฌ", + "trendDirection": "stable" + }, + "socialPublished": { + "instagram": { + "skipped": true, + "reason": "SOCIAL_AUTO_PUBLISH=false" + }, + "threads": { + "skipped": true, + "reason": "SOCIAL_AUTO_PUBLISH=false" + }, + "tiktok": { + "skipped": true, + "reason": "SOCIAL_AUTO_PUBLISH=false" + } + } + } + ] + }, + { + "runAt": "2026-07-19T23:33:48.901791", + "date": "2026-07-19", + "keywords": [ + "1์ธ ๊ฐ๊ตฌ ์ฌํ ํฌ ์ ๋ต ์์ ๊ธ ๋์ ํฌ์ ์์ํ๋ ๋ฒ" + ], + "postsGenerated": 1, + "bloggerUploaded": 1, + "errors": 0, + "errorMessages": [], + "imagesInserted": 3, + "totalWords": 4657, + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "platforms": { + "blogger": 1 + }, + "earnings": { + "totalPosts": 92, + "estimatedDailyRevenue": 460.0, + "estimatedMonthlyRevenue": 13800.0, + "estimatedYearlyRevenue": 167900.0, + "avgCPC": 2.5, + "currency": "USD" + }, + "posts": [ + { + "title": "1์ธ ๊ฐ๊ตฌ ์ฌํ ํฌ ์ ๋ต, ์์ ๊ธ ๋์ ํฌ์ ์์ํ๋ ๋ฒ", + "keyword": "1์ธ ๊ฐ๊ตฌ ์ฌํ ํฌ ์ ๋ต ์์ ๊ธ ๋์ ํฌ์ ์์ํ๋ ๋ฒ", + "blogUrl": "https://hoguasset.blogspot.com/2026/07/1.html", + "imagesInserted": 3, + "wordCount": 4657, + "contentPreview": "\"1์ธ ๊ฐ๊ตฌ๋ ํผ์ ๋ฒ์ด์ ํผ์ ์ฐ๋๊น ์์ ๊ธ๋ง ์ฐฉ์คํ ๋ชจ์ผ๋ฉด ๋๋ค\"๊ณ ์๊ฐํ๋ ๋ถ๋ค์ด ๋ง์ต๋๋ค. ๊ทธ๋ฐ๋ฐ ์์ฆ ์ฌ๋ฌด ์๋ด์ด๋ ๊ธ์ต ์ปค๋ฎค๋ํฐ๋ฅผ ๋ณด๋ฉด ์คํ๋ ค ๋ฐ๋๋๋ ์ด์ผ๊ธฐ๊ฐ ์์ฃผ ๋์ต๋๋ค. 1์ธ ๊ฐ๊ตฌ์ผ์๋ก ์์ ๊ธ๋ง์ผ๋ก๋ ์์ฐ์ด ์ ๋ถ์ด๋์ง ์๋๋ค๋ ์ง์ ์ ๋๋ค. ์ผํ ๋ค์ผ๋ฉด ์ด์ํ๊ฒ ๋๊ปด์ง์ง๋ง, 1์ธ ๊ฐ๊ตฌ์ ์๋ยท์ง์ถ ๊ตฌ์กฐ์ ๊ธ๋ฆฌ ํ๊ฒฝ์ ๊ฐ์ด ๋๊ณ ๋ณด๋ฉด ์ ์ด...", + "faqCount": 3, + "faq": [ + { + "q": "์์ ๊ธ์ ์์ ๊ทธ๋ง๋๊ณ ํฌ์๋ก ๋ฐ๊ฟ์ผ ํ๋์?", + "a": "๊ทธ๋ ์ง ์์ต๋๋ค. ๋น์๊ธ๊ณผ ๋จ๊ธฐ ์๊ธ์ ์ ๋์ฑ์ด ์ค์ํ๋ฏ๋ก ์์ ๊ธ์ด๋ ํํนํต์ฅ์ ๋๊ณ , 5๋ ์ด์ ๋น์ฅ ์ฐ์ง ์์ ์ฌ์ ์๊ธ ์ผ๋ถ๋ง ํฌ์๋ก ๋ถ์ฐํ๋ ๋ฐฉ์์ด ์ผ๋ฐ์ ์ผ๋ก ๊ถ์ฅ๋ฉ๋๋ค." + }, + { + "q": "ISA์ ์ฐ๊ธ์ ์ถํ๋ ์ค ์ด๋ค ๊ฒ๋ถํฐ ์์ํ๋ ๊ฒ ์ข๋์?", + "a": "์๊ธ์ ๋ชฉ์ ์ ๋ฐ๋ผ ๋ค๋ฆ ๋๋ค. ์ค๊ธฐ์ ์ผ๋ก ๋ชฉ๋์ ๋ง๋ค๊ณ ์ถ๋ค๋ฉด ISA๋ฅผ, ๋ ธํ ์๊ธ์ ์ค๋นํ๊ณ ์ถ๋ค๋ฉด ์ฐ๊ธ์ ์ถํ๋๋ฅผ ๊ฒํ ํด๋ณผ ์ ์์ต๋๋ค. ๊ฐ ์ ๋์ ์๋ฌด ๊ฐ์ ๊ธฐ๊ฐ๊ณผ ์ธ์ ํํ ์กฐ๊ฑด์ ๊ธ์ต์์ํ, ๊ตญ์ธ์ฒญ ํํ์ด์ง์์ ์ต์ ๊ธฐ์ค์ ํ์ธํ๋ ๊ฒ์ด ์์ ํฉ๋๋ค." + }, + { + "q": "ํฌ์ ์ด๋ณด์ธ 1์ธ ๊ฐ๊ตฌ๋ ์ผ๋ง๋ถํฐ ์์ํ๋ ๊ฒ ์ ๋นํ๊ฐ์?", + "a": "์ ํด์ง ๊ธ์ก์ ์์ต๋๋ค. ๋ค๋ง ๋น์๊ธ์ ๋จผ์ ํ๋ณดํ ๋ค ๋งค๋ฌ ์ฌ์ ์๊ธ์ ์ผ๋ถ๋ฅผ ์์ก์ผ๋ก ๋ถ์ฐ ํฌ์ํ๋ ๋ฐฉ์์ด ์์ค ๋ถ๋ด์ ์ค์ด๋ ๋ฐฉ๋ฒ์ผ๋ก ๋ง์ด ์ธ๊ธ๋ฉ๋๋ค. ๊ฐ์ธ์ ์๋๊ณผ ์ง์ถ ๊ตฌ์กฐ์ ๋ฐ๋ผ ์ค์ค๋ก ํ๋จํ ํ์๊ฐ ์์ต๋๋ค." + } + ], + "factCheck": { + "checked": true, + "verdict": "pass", + "issues_found": 0, + "fixes_applied": 0, + "issues": [] + }, + "sources": [ + { + "title": "์๊ธ ์ ๋ฐ ์ด์ ์ ์ถโฆ์ข ์ฃ๋ ๋ชจ์ ์ฐจ๊ทผ์ฐจ๊ทผ ๊ตด๋ ค๋ผ", + "url": "https://www.hankyung.com/article/2024032029191" + }, + { + "title": "์ฒญ๋ ๋์ฝ๊ณ์ข โ ์ฒญ๋ ๋ฏธ๋์ ๊ธ ๊ฐ์ํ ์ค๋น ์๋ฃ!", + "url": "https://www.korea.kr/news/policyNewsView.do?newsId=148954335" + }, + { + "title": "์ถฉ์ฒญ๊ถ ๋ชฉ๋ ์ ์ถ์ฑ์๊ธ์ ์ ๋ ธ๋ค... ํฌ์๋ณด๋จ ์์ ์์ฐ์ ์ง์ค", + "url": "https://www.joongdo.co.kr/web/view.php?key=20260705010001326" + }, + { + "title": "์ ์ถ์ํ '4%๋ ์ ๊ธฐ์๊ธ' ์ํ๋ง 150๊ฐ, ์ฒญ๋ ๋ฏธ๋์ ๊ธ์ผ๋ก ํ์ธ๋ ์ข ์ฃ๋", + "url": "https://www.businesspost.co.kr/BP?command=article_view&num=441505" + }, + { + "title": "๊ธ์ต์์ํ", + "url": "https://www.fsc.go.kr" + }, + { + "title": "๊ตญ์ธ์ฒญ", + "url": "https://www.nts.go.kr" + } + ], + "labels": [ + "1์ธ๊ฐ๊ตฌ์ฌํ ํฌ", + "์์ ๊ธ", + "ํฌ์์์", + "ISA๊ณ์ข", + "์ฐ๊ธ์ ์ถํ๋" + ], + "metaDescription": "์์ ๊ธ ๊ธ๋ฆฌ๊ฐ ๋ฌผ๊ฐ ์์น๋ฅ ์ ๋ฐ๋ผ๊ฐ์ง ๋ชปํ๋ ์ด์ ๋ถํฐ, 1์ธ ๊ฐ๊ตฌ๊ฐ ๋น์๊ธ๊ณผ ํฌ์์๊ธ์ ๋ถ๋ฆฌํ๋ ๋ฐฉ๋ฒ, ISA์ ์ฐ๊ธ์ ์ถํ๋๋ฅผ ํ์ฉํ๋ ์์, ํฌ์ ์ ์ ๊ฒํ ์ฒดํฌ๋ฆฌ์คํธ๊น์ง ์ค์ ๊ฒฝํ์ ๋ฐํ์ผ๋ก ์ ๋ฆฌํ 1์ธ ๊ฐ๊ตฌ ์ฌํ ํฌ ๊ฐ์ด๋์ ๋๋ค.", + "adsenseCategory": "๊ธ์ต", + "articleType": "investment", + "riskLevel": "high", + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "socialContent": { + "instagram": { + "caption": "์๊ธ ๊ธ๋ฆฌ 3.5% vs ์ค์ง ๋ฌผ๊ฐ์์น๋ฅ 4.2%\n์ง๊ธ ์ด ์๊ฐ์๋ ๋ด ๋์ ์กฐ์ฉํ ๋ น๊ณ ์์ต๋๋ค ๐ธ\n\n1์ธ ๊ฐ๊ตฌ๋ ์ฑ๊ฒจ์ค ์ฌ๋์ด ์์ด์ ์ฌํ ํฌ๋ ์ค์ค๋ก ์ค๊ณํด์ผ ํด์.\n์ ๋ ์์ ๊ธ๋ง ๋ถ๋ค๊ณ ์๋ค๊ฐ ๋ค๋ฆ๊ฒ ํฌ์๋ฅผ ์์ํ ์ผ์ด์ค์ ๋๋ค.\n\n์ค๋์ ์ ๊ฐ ์ค์ ๋ก ์ ๋ฆฌํ ์์๋ฅผ ๊ณต์ ํ ๊ฒ์.\n์์ ๊ธ ๋์ ํฌ์๋ฅผ ์์ํ๋ ค๋ 1์ธ ๊ฐ๊ตฌ๋ผ๋ฉด ์ ์ฅ ํ์ ๐\n\n1๏ธโฃ ๋น์๊ธ 3~6๊ฐ์์น๋ ๋ฌด์กฐ๊ฑด ๋ถ๋ฆฌ ๋ณด๊ด\n2๏ธโฃ ๋น์๊ธ ํต์ฅ โ ํฌ์๊ธ ํต์ฅ, ์ ๋ ์์ง ์๊ธฐ\n3๏ธโฃ ์์ ๊ธ ๊ธ๋ฆฌ vs ๋ฌผ๊ฐ์์น๋ฅ ์ง์ ๋น๊ตํด๋ณด๊ธฐ\n4๏ธโฃ ISA ๊ณ์ข๋ถํฐ ๊ฐ์ค (์ธ์ ํํ+๋น๊ณผ์ธ ํ๋)\n5๏ธโฃ ์ฐ๊ธ์ ์ถํ๋๋ ๊ทธ ๋ค์ ์์๋ก ์ธํ \n6๏ธโฃ ํฌ์ ์ ๋ฆฌ์คํฌ ๊ฐ๋ด ์์ค ์ ํ ์ฒดํฌ\n7๏ธโฃ ๋งค๋ฌ ์๋์ด์ฒด๋ก '์๊ฐ ์์ด' ํฌ์ ์ต๊ดํ\n\n์์ ๊ธ์ ์์ ๊ทธ๋ง๋๋ผ๋ ๊ฒ ์๋์์.\n๋น์๊ธ์ ์์ ๊ธ, ์ฌ์ณ๋์ ํฌ์๋ก ๋๋๋ ๊ฒ ํต์ฌ์ ๋๋ค.\n\n๐ ์ ์ฒด ๊ฐ์ด๋๋ ๋ธ๋ก๊ทธ์์ ๋ ์์ธํ ํ์ธํ์ธ์\nํ๋กํ ๋งํฌ or ๋๊ธ์์ ํ์ธ ๊ฐ๋ฅ\n\n#์ ์ฅํด๋๊ณ ๋์ค์์ฝ๊ธฐ", + "hookLine": "์๊ธ ๊ธ๋ฆฌ 3.5% vs ์ค์ง ๋ฌผ๊ฐ์์น๋ฅ 4.2%, ๋ด ๋์ ์ง๊ธ๋ ๋ น๊ณ ์์ต๋๋ค", + "storyHighlightTitle": "1์ธ์ฌํ ํฌ", + "hashtags": { + "popular": [ + "#์ฌํ ํฌ", + "#ํฌ์", + "#์ฌํ ํฌ๊ณต๋ถ", + "#๋๊ณต๋ถ", + "#๊ฒฝ์ ๊ณต๋ถ", + "#์ง ํ ํฌ", + "#์ ์ฝ", + "#์ง์ฅ์ธ", + "#์๊ธฐ๊ณ๋ฐ", + "#๋จธ๋๊ด๋ฆฌ" + ], + "medium": [ + "#1์ธ๊ฐ๊ตฌ์ฌํ ํฌ", + "#ISA๊ณ์ข", + "#์ฐ๊ธ์ ์ถํ๋", + "#์์ ๊ธ", + "#ํฌ์์์", + "#๋น์๊ธ๊ด๋ฆฌ", + "#์ธ๊ธํํ", + "#๋ ธํ์ค๋น", + "#์์ฐ๊ด๋ฆฌ", + "#์ฌํ ํฌ์ด๋ณด" + ], + "niche": [ + "#1์ธ๊ฐ๊ตฌํฌ์", + "#ISA์ฐ๊ธ์ ์ถ", + "#์์ ๊ธ๋์ ํฌ์", + "#์ฑ๊ธ์ฌํ ํฌ", + "#ํฌ์์ฒดํฌ๋ฆฌ์คํธ" + ] + }, + "bestPostingTimes": [ + "07:00", + "12:00", + "21:00" + ] + }, + "threads": { + "posts": [ + { + "order": 1, + "label": "1/5", + "content": "์๊ธ ๊ธ๋ฆฌ 3.5%, ๋ฌผ๊ฐ์์น๋ฅ 4.2%.\n์ซ์๋ง ๋ณด๋ฉด ๋ต ๋์ต๋๋ค.\n์ง๊ธ ์์ ๊ธ์๋ง ๋ ๋ฃ์ด๋๊ณ ์๋ค๋ฉด, ๋งค๋ ์ค์ง์ ์ผ๋ก ์ํด ๋ณด๊ณ ์๋ ๊ฑฐ์์." + }, + { + "order": 2, + "label": "2/5", + "content": "1์ธ ๊ฐ๊ตฌ๋ ํนํ ์ํํด์.\n๋น์๊ธ๊ณผ ํฌ์๊ธ์ ์์ด๋๊ณ ์๋ค๊ฐ\n๊ฐ์๊ธฐ ๋ชฉ๋ ํ์ํ ๋ ํฌ์ ์์ค ํ์ ํ๊ณ ๋นผ๋ ๊ฒฝ์ฐ ์ง์ง ๋ง์ต๋๋ค.\n\n๋น์๊ธ 3~6๊ฐ์์น๋ ๋ฐ๋์ ๋ฐ๋ก ๋นผ๋์ธ์." + }, + { + "order": 3, + "label": "3/5", + "content": "๊ทธ๋ผ ํฌ์๋ ๋ญ๋ถํฐ?\n์์๊ฐ ์ค์ํฉ๋๋ค.\n\n1. ISA ๊ณ์ข (๋น๊ณผ์ธ ํํ + ๋ค์ํ ์ํ)\n2. ์ฐ๊ธ์ ์ถํ๋ (์ธ์ก๊ณต์ + ๋ ธํ์๊ธ)\n\nISA๋ถํฐ ๊ฐ์คํ๊ณ ์ฐ๊ธ์ ์ถํ๋๋ก ๋์ด๊ฐ๋ ํ๋ฆ์ด ์ธ๊ธ ์ธก๋ฉด์์ ์ ๋ฆฌํด์." + }, + { + "order": 4, + "label": "4/5", + "content": "ํฌ์ ์์ ์ ์ ํ ์ฒดํฌ๋ฆฌ์คํธ\n\nโ๏ธ ๋น์๊ธ ๋ถ๋ฆฌ ์๋ฃํ๋๊ฐ\nโ๏ธ ํฌ์ ๋ชฉ์ ๊ณผ ๊ธฐ๊ฐ์ ์ ํ๋๊ฐ\nโ๏ธ ์๊ธ ์์ค ๊ฐ๋ด ๊ฐ๋ฅํ ๊ธ์ก์ธ๊ฐ\nโ๏ธ ๋งค๋ฌ ์๋์ด์ฒด ์ค์ ํ๋๊ฐ\n\n์ด๊ฑฐ ์ ํ๊ณ ์์ํ๋ฉด 3๊ฐ์ ์์ ๋๋ถ๋ถ ๊ทธ๋ง๋ก๋๋ค." + }, + { + "order": 5, + "label": "5/5", + "content": "์์ ๊ธ์ ๋ฒ๋ฆฌ๋ผ๋ ๊ฒ ์๋๋ผ\n๋น์๊ธ์ ์์ ๊ธ, ์ฌ์ณ๋์ ํฌ์๋ก ๋๋๋ ๊ฒ.\n์ด๊ฒ 1์ธ ๊ฐ๊ตฌ ์ฌํ ํฌ์ ์์์ ๋๋ค.\n\n์ ์ฒด ๊ฐ์ด๋๋ ์ฌ๊ธฐ์ ๐ https://hoguasset.blogspot.com/2026/07/1.html\n\n์ฌ๋ฌ๋ถ์ ์ง๊ธ ๋น์๊ธ์ด๋ ํฌ์๊ธ ๋ถ๋ฆฌํด๋์ จ๋์? ์์งํ ๊ถ๊ธํฉ๋๋ค." + } + ], + "hashtags": [ + "#์ฌํ ํฌ", + "#1์ธ๊ฐ๊ตฌ์ฌํ ํฌ", + "#ISA๊ณ์ข", + "#์ฐ๊ธ์ ์ถํ๋", + "#ํฌ์์์" + ], + "engagementQuestion": "๋น์๊ธ์ด๋ ํฌ์๊ธ, ์์งํ ๋ถ๋ฆฌํด๋์ จ๋์? ์๋๋ฉด ์ ์ฒ๋ผ ๋ค ์์ฌ์์ผ์ ๊ฐ์?", + "bestPostingTimes": [ + "08:00", + "19:00" + ] + }, + "tiktok": { + "title": "์์ ๊ธ๋ง ๋ฏฟ๋ค๊ฐ ๋ฒ์ด์ง ์ผ (1์ธ๊ฐ๊ตฌ ์ฌํ ํฌ)", + "thumbnailText": "์๊ธ ์ด์๋ก๋ ์ ๋ ๋ชป ์ด๊น๋๋ค", + "scenes": [ + { + "time": "0-3์ด", + "text": "์๊ธ ๊ธ๋ฆฌ 3.5%, ๋ฌผ๊ฐ์์น๋ฅ 4.2%\n์ง๊ธ๋ ๋ด ๋์ ๋ น๊ณ ์๋ค", + "direction": "ํ๋ฉด ์ค์ ์ซ์ ํ๋, ์นด์ดํธ์ ์ ๋๋ฉ์ด์ , ์ผ๊ตด ํด๋ก์ฆ์ ์ผ๋ก ๋๋ ํ์ ", + "sound": "๊ธด์ฅ๊ฐ ์๋ '๋ต' ํจ๊ณผ์ + ์๊ณ ์ด์นจ ์๋ฆฌ" + }, + { + "time": "3-15์ด", + "text": "1์ธ ๊ฐ๊ตฌ๋ ์ฑ๊ฒจ์ค ์ฌ๋์ด ์๋ค\n์ฌํ ํฌ๋ ํผ์ ๋ค ์ค๊ณํด์ผ ํจ", + "direction": "ํธ๋ํฐ ์ํ์ฑ ํ๋ฉด ๋ณด์ฌ์ฃผ๋ฉฐ ํ์จ ์ฌ๋ ๋ฆฌ์ก์ , ํ ์คํธ ์๋ง ๊ฐ์กฐ", + "sound": "์์ํ ๋ค์ดํ ํฌ BGM ์์" + }, + { + "time": "15-35์ด", + "text": "์์๋ ์ด๋ ๊ฒ\n1) ๋น์๊ธ 3~6๊ฐ์ ๋ถ๋ฆฌ\n2) ISA ๊ณ์ข ๊ฐ์ค\n3) ์ฐ๊ธ์ ์ถํ๋ ์ธํ \n4) ๋งค๋ฌ ์๋์ด์ฒด", + "direction": "ํ์ดํธ๋ณด๋ or ๋ ธํธ์ ์๊ธ์จ๋ก ์์ ์ ๋ ์ฐ์ถ, ๋น ๋ฅธ ์ปท ์ ํ", + "sound": "ํ์ดํ/ํ๊ธฐ ํจ๊ณผ์ + ๋ฆฌ๋ฌ ์๋ ๋ฐฐ๊ฒฝ์" + }, + { + "time": "35-50์ด", + "text": "์์ ๊ธ์ ๋ฒ๋ฆฌ๋ผ๋ ๊ฒ ์๋๋ค\n๋น์๊ธ์ ์์ ๊ธ, ์ฌ์ณ๋์ ํฌ์๋ก", + "direction": "๋ ๊ฐ์ ์ ๊ธํต ๋น๊ต ์ํ ์ฐ์ถ, ์์ผ๋ก ๋๋๋ ์ ์ค์ฒ", + "sound": "๊ธ์ ์ ์ธ '๋ฉ๋' ๊ฐ์กฐ ํจ๊ณผ์" + }, + { + "time": "50-60์ด", + "text": "์ ์ฒด ์ฒดํฌ๋ฆฌ์คํธ๋\n๋ธ๋ก๊ทธ์ ์ ๋ฆฌํด๋์ด์\n๋๊ธ์ ๋งํฌ ํ์ธ!", + "direction": "ํ๋กํ ํ๋ฉด ๊ฐ๋ฆฌํค๋ ์ ์ ์ค์ฒ, ํ๋ฉด์ '์ ์ฅ' ์์ด์ฝ ์ ๋๋ฉ์ด์ ", + "sound": "BGM ํด๋ผ์ด๋งฅ์ค + ์๋ฆผ์" + } + ], + "fullScript": "์๊ธ ๊ธ๋ฆฌ 3.5%, ๋ฌผ๊ฐ์์น๋ฅ 4.2%. ์ง๊ธ๋ ์ฌ๋ฌ๋ถ ๋์ ์กฐ์ฉํ ๋ น๊ณ ์์ด์. 1์ธ ๊ฐ๊ตฌ๋ ํนํ ์ฑ๊ฒจ์ค ์ฌ๋์ด ์์ด์ ์ฌํ ํฌ๋ ํผ์ ๋ค ์ค๊ณํด์ผ ํฉ๋๋ค. ๊ทธ๋ผ ์ด๋ป๊ฒ ์์ํด์ผ ํ ๊น์? ๋จผ์ ๋น์๊ธ 3~6๊ฐ์์น๋ฅผ ๋ฐ๋ก ๋ถ๋ฆฌํด๋์ธ์. ๊ทธ๋ค์ ISA ๊ณ์ข๋ฅผ ๊ฐ์คํ๊ณ , ์ฐ๊ธ์ ์ถํ๋๋ก ๋์ด๊ฐ์ธ์. ๊ทธ๋ฆฌ๊ณ ๋งค๋ฌ ์๋์ด์ฒด๋ก ์ต๊ดํํ๋ ๊ฒ ํต์ฌ์ ๋๋ค. ์์ ๊ธ์ ์์ ๋ฒ๋ฆฌ๋ผ๋ ๊ฒ ์๋์์. ๋น์๊ธ์ ์์ ๊ธ, ์ฌ์ณ๋์ ํฌ์๋ก ๋๋๋ ๊ฒ, ์ด๊ฒ ์์์ ๋๋ค. ์ ์ฒด ์ฒดํฌ๋ฆฌ์คํธ๋ ๋ธ๋ก๊ทธ์ ์ ๋ฆฌํด๋์ผ๋ ๋๊ธ์์ ๋งํฌ ํ์ธํ์ธ์.", + "commentBait": "์ฌ๋ฌ๋ถ์ ๋น์๊ธ์ด๋ ํฌ์๊ธ ๋ถ๋ฆฌํด๋์ จ๋์? ์์งํ ๋๊ธ๋ก ์๋ ค์ฃผ์ธ์", + "hashtags": [ + "#fyp", + "#foryou", + "#์ฌํ ํฌ", + "#1์ธ๊ฐ๊ตฌ์ฌํ ํฌ", + "#ISA๊ณ์ข", + "#์ฐ๊ธ์ ์ถํ๋", + "#ํฌ์์์", + "#์ง ํ ํฌ", + "#๋๊ณต๋ถ", + "#์ง์ฅ์ธ์ฌํ ํฌ" + ], + "backgroundMusic": { + "genre": "๋กํ์ด/๋ค์ดํ ํฌ ํํฉ", + "mood": "์ฐจ๋ถํ์ง๋ง ์ ๋ขฐ๊ฐ ์๋" + }, + "bestPostingTimes": [ + "07:00", + "20:00", + "23:00" + ] + }, + "keyword": "1์ธ ๊ฐ๊ตฌ ์ฌํ ํฌ ์ ๋ต ์์ ๊ธ ๋์ ํฌ์ ์์ํ๋ ๋ฒ", + "trendDirection": "stable" + }, + "socialPublished": { + "instagram": { + "skipped": true, + "reason": "SOCIAL_AUTO_PUBLISH=false" + }, + "threads": { + "skipped": true, + "reason": "SOCIAL_AUTO_PUBLISH=false" + }, + "tiktok": { + "skipped": true, + "reason": "SOCIAL_AUTO_PUBLISH=false" + } + } + } + ] + }, + { + "runAt": "2026-07-19T23:21:57.900456", + "date": "2026-07-19", + "keywords": [ + "1์ธ ๊ฐ๊ตฌ ์ฌํ ํฌ ๋ฐฉ๋ฒ ์์ ๊ธ ๋์ ํฌ์ ์์ํ๊ธฐ" + ], + "postsGenerated": 1, + "bloggerUploaded": 1, + "errors": 0, + "errorMessages": [], + "imagesInserted": 3, + "totalWords": 3595, + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "platforms": { + "blogger": 1 + }, + "earnings": { + "totalPosts": 92, + "estimatedDailyRevenue": 460.0, + "estimatedMonthlyRevenue": 13800.0, + "estimatedYearlyRevenue": 167900.0, + "avgCPC": 2.5, + "currency": "USD" + }, + "posts": [ + { + "title": "1์ธ ๊ฐ๊ตฌ ์ฌํ ํฌ ๋ฐฉ๋ฒ, ์์ ๊ธ ๋์ ํฌ์ ์์ ์ ์ฒดํฌ๋ฆฌ์คํธ", + "keyword": "1์ธ ๊ฐ๊ตฌ ์ฌํ ํฌ ๋ฐฉ๋ฒ ์์ ๊ธ ๋์ ํฌ์ ์์ํ๊ธฐ", + "blogUrl": "https://hogugolfntraval.blogspot.com/2026/07/1.html", + "imagesInserted": 3, + "wordCount": 3595, + "contentPreview": "์๊ธ ํต์ฅ์ ๋์ด ๋ค์ด์ค์๋ง์ ์ ๊ธ ํ๋, ์๊ธ ํ๋ ๋ฃ๊ณ ๋๋ฉด ๋ง์์ด ํธํด์ง์๋์? ๊ทธ๋ฐ๋ฐ ๊ทธ ์ด์, ์ค์ ๋ก ๊ณ์ฐํด๋ณธ ์ ์์ผ์ ๊ฐ์. 1๋ ์ง๋ฆฌ ์ ๊ธ ์ด์จ์ด 3%๋ ์ด๋ฐ์ธ ์์ฆ, ์ธ๊ธ ๋ผ๊ณ ๋๋ฉด ์์ ์ฅ๋ ์ด์๋ ์๊ฐ๋ณด๋ค ์ด๋ผํฉ๋๋ค. 1์ธ ๊ฐ๊ตฌ๋ผ๋ฉด ๋ชฉ๋ ๋ง๋ จ์ ์๋ฐ์ด ๋ ํฌ๊ฒ ๋๊ปด์ง์ค ํ ๋ฐ, ์์ ๊ธ๋ง์ผ๋ก ์์ฐ์ ๋ถ๋ฆฌ๋ ๊ฒ ๋ง๋ ๋ฐฉ๋ฒ์ธ์ง ํ๋ฒ์ฏค ์๋ฌธ์ ๊ฐ์ ธ๋ณด...", + "faqCount": 3, + "faq": [ + { + "q": "1์ธ ๊ฐ๊ตฌ๊ฐ ์์ ๊ธ ๋์ ํฌ์๋ฅผ ์์ํ ๋ ๊ฐ์ฅ ๋จผ์ ํด์ผ ํ ์ผ์ ๋ฌด์์ธ๊ฐ์?", + "a": "๋น์๊ธ์ 3~6๊ฐ์์น ์ํ๋น ์์ค์ผ๋ก ๋ณ๋ ๊ณ์ข์ ํ๋ณดํด๋๋ ๊ฒ์ด ์ฐ์ ์ ๋๋ค. ๊ทธ ๋ค์ ์ฒญ๋ ๋์ฝ๊ณ์ข ๊ฐ์ ์ ์ฑ ํ ํต์ฅ์ผ๋ก ์์ ์ ์ธ ์์ต์ ํ๋ณดํ๊ณ , ์ฌ์ณ๋์ด ์๊ธฐ๋ฉด ์์ก ๋ถ์ฐ ํฌ์๋ก ๋์ด๊ฐ๋ ์์๊ฐ ํ์ค์ ์ ๋๋ค." + }, + { + "q": "์ฒญ๋ ๋์ฝ๊ณ์ข์ ์๋ ์๊ฑด์ ์ง๊ธ๋ ๋์ผํ๊ฐ์?", + "a": "2024๋ 3์ ๊ธฐ์ค์ผ๋ก๋ 1์ธ ๊ฐ๊ตฌ ์ 486๋ง์ ์ดํ, ๋ง๋ฒ์ด 2์ธ ๊ฐ๊ตฌ ์ 814๋ง์ ์ดํ๊น์ง ๊ฐ์ ์ด ๊ฐ๋ฅํ์ต๋๋ค. ๋ค๋ง ์ด๋ 2024๋ ์๋ฃ์ด๋ฏ๋ก 2026๋ 7์ ํ์ฌ ์๊ฑด์ด ๋ณ๊ฒฝ๋์ ์ ์์ด ์๋ฏผ๊ธ์ต์งํฅ์ ๊ณต์ ๋ฐํ๋ฅผ ํ์ธํ์๋ ๊ฒ ์์ ํฉ๋๋ค." + }, + { + "q": "ํฌ์ ์์ต๋ฅ ์ด ๋งค๋ ๋ค๋ฅด๋ค๋๋ฐ ์ด๋ ์ ๋ ์ฐจ์ด๊ฐ ๋๋์?", + "a": "2025๋ ์๋ฐ๊ธฐ S&P500์ 16.39%, ์ฝ์คํผ๋ 97.04%์์ง๋ง 2026๋ ์๋ฐ๊ธฐ์๋ S&P500์ด 7.4%๋ก ๋ํ๋๊ณ M7 ๋ํ์ฃผ๋ -6.6% ์ญ์ฑ์ฅํ์ต๋๋ค. ์ด์ฒ๋ผ ๊ฐ์ ์์ฅ๋ ์๊ธฐ์ ๋ฐ๋ผ ๊ฒฐ๊ณผ๊ฐ ํฌ๊ฒ ๋ฌ๋ผ์ง ์ ์์ด ์ฅ๊ธฐ์ ์ธ ์๊ฐ์ด ํ์ํฉ๋๋ค." + } + ], + "factCheck": { + "checked": true, + "verdict": "warn", + "issues_found": 5, + "fixes_applied": 5, + "issues": [ + { + "problem": "์๋ฃํฉ์ ์ฝ์คํผ ์์ต๋ฅ ์์น๊ฐ ๋ช ์๋์ด ์์ง ์์ ๊ฒ์ฆ ๋ถ๊ฐ๋ฅํ ๊ตฌ์ฒด์ ํต๊ณ", + "fixed": true + }, + { + "problem": "์๋ฃํฉ์ ์๋ ๊ตฌ์ฒด์ ์์น๋ก ๊ฒ์ฆ ๋ถ๊ฐ๋ฅ", + "fixed": true + }, + { + "problem": "์๋ฃํฉ์ ๋ช ์๋์ง ์์ ๊ตฌ์ฒด์ ๋ ์ง๋ก ๊ฒ์ฆ ๋ถ๊ฐ๋ฅ", + "fixed": true + }, + { + "problem": "๊ทผ๊ฑฐ ์๋ฃ ์๋ ํ๊ธฐ ์ข ํฉ ์ฃผ์ฅ", + "fixed": true + }, + { + "problem": "๊ทผ๊ฑฐ ์๋ฃ ์๋ ์ฌ๋ก ์ฃผ์ฅ", + "fixed": true + } + ] + }, + "sources": [ + { + "title": "์๋ฐ๊ธฐ S&P500 ๊ณ ์ 7.4%, M7์ ์ญ์ฑ์ฅโฆ'๋งํ ํ ๋ชป๋์ด 3ํ์ ' ์ด์ฉ๋", + "url": "https://magazine.hankyung.com/business/article/202607021641b" + }, + { + "title": "1์ธ ๊ฐ๊ตฌ ์ 486๋ง์, 2์ธ ์ 814๋ง์ ์ดํ๋ ์ฒญ๋ ๋์ฝ๊ณ์ข ๊ฐ์ ํ์ฉ", + "url": "https://www.joongang.co.kr/article/25233082" + } + ], + "labels": [ + "1์ธ๊ฐ๊ตฌ์ฌํ ํฌ", + "์์ ๊ธ๋์ ํฌ์", + "ํฌ์์์", + "์ฒญ๋ ๋์ฝ๊ณ์ข", + "S&P500" + ], + "metaDescription": "1์ธ ๊ฐ๊ตฌ ์ฌํ ํฌ ๋ฐฉ๋ฒ์ผ๋ก ์์ ๊ธ ๋์ ํฌ์๋ฅผ ๊ณ ๋ฏผ ์ค์ด๋ผ๋ฉด, ์ ์ฑ ํ ํต์ฅ๋ถํฐ ์์ก ๋ถ์ฐ ํฌ์๊น์ง ๋จ๊ณ๋ณ๋ก ํ์ธํ ์ ์ ์ ๋ฆฌํ์ต๋๋ค. ์์ต๋ฅ ๋ณ๋์ฑ ์ฃผ์์ฌํญ๋ ํจ๊ป ๋ด์์ต๋๋ค.", + "adsenseCategory": "๊ธ์ต", + "articleType": "investment", + "riskLevel": "high", + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "socialContent": { + "instagram": { + "caption": "1์ธ ๊ฐ๊ตฌ 10๋ช ์ค 7๋ช ์ด ์์ ๊ธ ๊ธ๋ฆฌ์ ์ค๋งํด๋ ๊ทธ๋ฅ ๋ฐฉ์นํ๋ค๋ ์ฌ์ค, ์๊ณ ๊ณ์ จ๋์? ๐ณ\n\n์์ ๊ธ๋ง ๋ฏฟ๊ณ ์๋ค๊ฐ๋ ๋ฌผ๊ฐ์์น๋ฅ ๋ ๋ชป ๋ฐ๋ผ์ก์์. ๊ทธ๋ ๋ค๊ณ ๋ฌด์์ ํฌ์๋ถํฐ ์์ํ๋ฉด ๋ ์ํํฉ๋๋ค.\n\n์ ์ฅ ํ์ ๐ ํฌ์ ์์ ์ ๋ฐ๋์ ์ฒดํฌํด์ผ ํ ๊ฒ๋ค ์ ๋ฆฌํ์ด์!\n\n1๏ธโฃ ์ ์ฑ ํ ํต์ฅ๋ถํฐ ํ์ธ (์ฒญ๋ ๋์ฝ๊ณ์ข ๋ฑ ์ ๋ถ ์ง์ ์ฐ์ ํ์ฉ)\n2๏ธโฃ ๋น์๊ธ 3~6๊ฐ์์น ํ๋ณด ์ฌ๋ถ ์ฒดํฌ\n3๏ธโฃ ์๋ ์๊ฑด ๋ณ๋ ์ฌํญ ๋ฏธ๋ฆฌ ํ์ธํ๊ธฐ\n4๏ธโฃ ์์ก ๋ถ์ฐ ํฌ์๋ก ๋ฆฌ์คํฌ ๋ฎ์ถ๊ธฐ\n5๏ธโฃ S&P500 ๋ฑ ์ง์ ํฌ์ ๊ธฐ์ด ์ดํดํ๊ธฐ\n6๏ธโฃ ์์ต๋ฅ ๋ณ๋์ฑ ๊ฐ๋ด ๊ฐ๋ฅ ๋ฒ์ ์ค์ \n7๏ธโฃ ์์ ๊ธ๊ณผ ํฌ์ ๋น์ค ์ค์ค๋ก ์ ํ๊ธฐ\n\n1์ธ ๊ฐ๊ตฌ๋ ์์ ๋ง์ด ๋ ํผ์๋ฟ์ด๋ผ ๋ ๊ผผ๊ผผํ ์ค๋น๊ฐ ํ์ํด์. ๊ธํ๊ฒ ์์ํ์ง ๋ง๊ณ ์ฒดํฌ๋ฆฌ์คํธ ๋จผ์ ํ์ธํ์ธ์ ๐ก\n\n๋ ์์ธํ ๋ด์ฉ์ ๋ธ๋ก๊ทธ์์ ํ์ธํ์ธ์ (ํ๋กํ ๋งํฌ) ๐\n\n#1์ธ๊ฐ๊ตฌ์ฌํ ํฌ #์์ ๊ธ๋์ ํฌ์", + "hookLine": "1์ธ ๊ฐ๊ตฌ 10๋ช ์ค 7๋ช ์ด ์์ ๊ธ ๊ธ๋ฆฌ์ ์ค๋งํด๋ ๊ทธ๋ฅ ๋ฐฉ์นํ๋ค๋ ์ฌ์ค, ์๊ณ ๊ณ์ จ๋์? ๐ณ", + "storyHighlightTitle": "ํฌ์์ค๋น", + "hashtags": { + "popular": [ + "#์ฌํ ํฌ", + "#ํฌ์", + "#์ฌํ ํฌ์ด๋ณด", + "#๋๊ด๋ฆฌ", + "#๊ฒฝ์ ์ ์์ ", + "#์ฌํ์ด๋ ์", + "#์ง ํ ํฌ", + "#์ ๊ธ", + "#ํฌ์๊ณต๋ถ", + "#๋จธ๋๋ก๊ทธ" + ], + "medium": [ + "#1์ธ๊ฐ๊ตฌ์ฌํ ํฌ", + "#์์ ๊ธ๋์ ํฌ์", + "#ํฌ์์์", + "#์ฒญ๋ ๋์ฝ๊ณ์ข", + "#S&P500", + "#๋ถ์ฐํฌ์", + "#์์กํฌ์", + "#์ง์ํฌ์", + "#์์ฐ๊ด๋ฆฌ", + "#์ฌํ ํฌ๋ฃจํด" + ], + "niche": [ + "#1์ธ๊ฐ๊ตฌํฌ์", + "#์ฒญ๋ ์ฌํ ํฌํ", + "#ํฌ์์ฒดํฌ๋ฆฌ์คํธ", + "#์์ ๊ธํ์ถ", + "#์ฌํ ํฌ์์๋จ๊ณ" + ] + }, + "bestPostingTimes": [ + "07:00", + "12:00", + "21:00" + ] + }, + "threads": { + "posts": [ + { + "order": 1, + "label": "1/5", + "content": "์ถฉ๊ฒฉ์ ์ธ ์ฌ์ค ํ๋: ์์ ๊ธ ๊ธ๋ฆฌ๋ก๋ ๋ฌผ๊ฐ์์น๋ฅ ์กฐ์ฐจ ๋ชป ๋ฐ๋ผ๊ฐ๋๋ค. ๊ทธ๋ฐ๋ฐ๋ 1์ธ ๊ฐ๊ตฌ ๋๋ถ๋ถ์ด ์์ง๋ ์์ ๊ธ์๋ง ๋์ ๋ฌถ์ด๋๊ณ ์์ด์ ๐ณ" + }, + { + "order": 2, + "label": "2/5", + "content": "1์ธ ๊ฐ๊ตฌ๋ ์์ ๋ง์ด ์ค์ง '๋ ํ๋'๋ฟ์ด๋ผ ํฌ์๋ฅผ ์์ํ ๋ ๋ ์ ์คํด์ผ ํด์. ํ์ง๋ง ์ ์คํจ๊ณผ ๋ฐฉ์น๋ ๋ค๋ฆ ๋๋ค. ์์ ๊ธ ๊ธ๋ฆฌ์ ์ค๋ง๋ง ํ๊ณ ์๋ฌด๊ฒ๋ ์ ํ๋ ๊ฒ ๊ฐ์ฅ ์ํํ ์ ํ์ผ ์ ์์ด์." + }, + { + "order": 3, + "label": "3/5", + "content": "๊ทธ๋ผ ๋ญ๋ถํฐ ์์ํด์ผ ํ ๊น์? ์ ๋ต์ '์ ์ฑ ํ ํต์ฅ'์ ๋๋ค. ์ฒญ๋ ๋์ฝ๊ณ์ข ๊ฐ์ ์ ๋ถ ์ง์ ์ํ๋ถํฐ ํ์ธํ์ธ์. ๋ค๋ง ์๋ ์๊ฑด์ด ๋งค๋ ์กฐ์ ๋ ์ ์์ผ๋ ์ต์ ๊ธฐ์ค ๊ผญ ์ฒดํฌํ์ ์ผ ํด์." + }, + { + "order": 4, + "label": "4/5", + "content": "์ ์ฑ ํ ํต์ฅ ๋ค์์ ์์ก ๋ถ์ฐ ํฌ์์์. S&P500 ๊ฐ์ ์ง์ ํฌ์๋ก ๋ณ๋์ฑ์ ๋ถ์ฐ์ํค๋ ๊ฒ ํต์ฌ. ๋จ, ์์ต๋ฅ ์ ์ค๋ฅด๋ด๋ฆผ์ด ์๋ค๋ ๊ฑธ ๋ฐ๋์ ๋ฐ์๋ค์ด๊ณ ์์ํด์ผ ํฉ๋๋ค." + }, + { + "order": 5, + "label": "5/5", + "content": "๊ฒฐ๋ก : ์์ ๊ธ ๋์ ํฌ์, ๋ฌด์์ ์์ํ์ง ๋ง๊ณ ์ฒดํฌ๋ฆฌ์คํธ๋ถํฐ. ์ ์ฑ ํ ํต์ฅ โ ๋น์๊ธ ํ๋ณด โ ์์ก ๋ถ์ฐ โ ๋ณ๋์ฑ ์ดํด ์์๋ก ์ค๋นํ์ธ์. ์ฌ๋ฌ๋ถ์ ์ง๊ธ ์์ ๊ธ ๋น์ค์ด ๋ช %์ธ๊ฐ์? ๋๊ธ๋ก ์๋ ค์ฃผ์ธ์ ๐\nhttps://hogugolfntraval.blogspot.com/2026/07/1.html" + } + ], + "hashtags": [ + "#1์ธ๊ฐ๊ตฌ์ฌํ ํฌ", + "#์์ ๊ธ๋์ ํฌ์", + "#ํฌ์์์", + "#์ฒญ๋ ๋์ฝ๊ณ์ข", + "#S&P500" + ], + "engagementQuestion": "์ฌ๋ฌ๋ถ์ ์ง๊ธ ์์ ๊ธ ๋น์ค์ด ๋ช %์ธ๊ฐ์? ํฌ์๋ก ๋์ด๊ฐ ์ค๋น๊ฐ ๋์ จ๋์?", + "bestPostingTimes": [ + "08:00", + "19:00" + ] + }, + "tiktok": { + "title": "์์ ๊ธ๋ง ๋ฏฟ๋ค๊ฐ ํฐ์ผ ๋๋ ์ด์ (1์ธ ๊ฐ๊ตฌ ํ์ ์ฒดํฌ)", + "thumbnailText": "์์ ๊ธ ๋์ ํฌ์?\n์์ ์ ์ด๊ฑฐ ๊ผญ ํ์ธ!", + "scenes": [ + { + "time": "0-3์ด", + "text": "์์ ๊ธ ์ด์, ๋ฌผ๊ฐ์์น๋ฅ ๋ ๋ชป ๋ฐ๋ผ๊ฐ๋ค๋ ๊ฑฐ ์์ จ์ด์?", + "direction": "ํด๋ก์ฆ์ ์ผ๊ตด, ๋๋ ํ์ ์ผ๋ก ํ๋ฉด ์์", + "sound": "๊ธด์ฅ๊ฐ ์๋ ํจ๊ณผ์ (๋ฉ!)" + }, + { + "time": "3-15์ด", + "text": "1์ธ ๊ฐ๊ตฌ๋ ์์ ๋ง์ด ๋ ํ๋๋ฟ. ๊ทธ๋์ ํฌ์๊ฐ ๋ ๋ฌด์ญ๊ฒ ๋๊ปด์ง์ฃ . ํ์ง๋ง ๋ฐฉ์นํ๋ ๊ฒ ๋ ์ํํฉ๋๋ค", + "direction": "์์ผ๋ก ํต์ฅ ๋ณด์ฌ์ฃผ๋ฉฐ ๋ต๋ตํ ํ์ ์ฐ๊ธฐ", + "sound": "์์ํ ๋ฐฐ๊ฒฝ์ ํ์ด๋์ธ" + }, + { + "time": "15-35์ด", + "text": "1. ์ ์ฑ ํ ํต์ฅ ๋จผ์ ํ์ธ (์ฒญ๋ ๋์ฝ๊ณ์ข)\n2. ๋น์๊ธ 3~6๊ฐ์์น ํ๋ณด\n3. ์๋ ์๊ฑด ์ต์ ๊ธฐ์ค ์ฒดํฌ\n4. ์์ก ๋ถ์ฐ ํฌ์ ์์\n5. S&P500 ๋ฑ ์ง์ ํฌ์ ๊ณต๋ถ", + "direction": "ํ ์คํธ ์๋ง ๋ฆฌ์คํธ ํ๋ฉด ์ ํ, ์๊ฐ๋ฝ์ผ๋ก ํ๋์ฉ ์ง๊ธฐ", + "sound": "๊ฒฝ์พํ ํ์ดํ ํจ๊ณผ์" + }, + { + "time": "35-50์ด", + "text": "ํต์ฌ์ ์์์์! ์ ์ฑ ํ ํต์ฅ โ ๋น์๊ธ โ ๋ถ์ฐํฌ์ โ ๋ณ๋์ฑ ์ดํด. ์ด ์์ ์งํค๋ฉด ์คํจ ํ๋ฅ ํ ์ค์ด๋ญ๋๋ค", + "direction": "ํ์ดํธ๋ณด๋์ ํ์ดํ ๊ทธ๋ฆฌ๋ฉฐ ์ค๋ช ํ๋ ์ฐ์ถ", + "sound": "๊ฐ์กฐ ํจ๊ณผ์ (๋ต๋)" + }, + { + "time": "50-60์ด", + "text": "์์ธํ ์ฒดํฌ๋ฆฌ์คํธ๋ ๋ธ๋ก๊ทธ์์! ๋๊ธ์ ์ง๊ธ ์์ ๊ธ ๋น์ค ์ ์ด์ฃผ์ธ์ ๐", + "direction": "์นด๋ฉ๋ผ ์ ๋ฉด ์์, ์๊ฐ๋ฝ์ผ๋ก ํ๋กํ ๋งํฌ ๊ฐ๋ฆฌํค๊ธฐ", + "sound": "CTA ํจ๊ณผ์ + ์์ํ ์์ํธ๋ก" + } + ], + "fullScript": "์์ ๊ธ ์ด์, ๋ฌผ๊ฐ์์น๋ฅ ๋ ๋ชป ๋ฐ๋ผ๊ฐ๋ค๋ ๊ฑฐ ์์ จ์ด์? 1์ธ ๊ฐ๊ตฌ๋ ์์ ๋ง์ด ๋ ํ๋๋ฟ์ด๋ผ ํฌ์๊ฐ ๋ ๋ฌด์ญ๊ฒ ๋๊ปด์ง์ง๋ง, ๋ฐฉ์นํ๋ ๊ฒ ๋ ์ํํฉ๋๋ค. ์ฒดํฌ๋ฆฌ์คํธ ์๋ ค๋๋ฆด๊ฒ์. ์ฒซ์งธ, ์ ์ฑ ํ ํต์ฅ๋ถํฐ ํ์ธํ์ธ์. ์ฒญ๋ ๋์ฝ๊ณ์ข ๊ฐ์ ์ ๋ถ ์ง์ ์ํ์ด์. ๋์งธ, ๋น์๊ธ 3~6๊ฐ์์น๋ ๊ผญ ํ๋ณดํ์ธ์. ์ ์งธ, ์๋ ์๊ฑด์ ๋งค๋ ๋ฐ๋ ์ ์์ผ๋ ์ต์ ๊ธฐ์ค ์ฒดํฌํ์๊ณ ์. ๋ท์งธ, ์์ก ๋ถ์ฐ ํฌ์๋ก ์์ํ์ธ์. ๋ค์ฏ์งธ, S&P500 ๊ฐ์ ์ง์ ํฌ์ ๊ธฐ์ด๋ ๋ฏธ๋ฆฌ ๊ณต๋ถํ์ธ์. ํต์ฌ์ ์์์์. ์ ์ฑ ํ ํต์ฅ, ๋น์๊ธ, ๋ถ์ฐํฌ์, ๋ณ๋์ฑ ์ดํด ์์๋ก ๊ฐ๋ฉด ์คํจ ํ๋ฅ ์ด ํ ์ค์ด๋ญ๋๋ค. ์์ธํ ์ฒดํฌ๋ฆฌ์คํธ๋ ๋ธ๋ก๊ทธ์์ ํ์ธํ์๊ณ , ๋๊ธ์ ์ง๊ธ ์์ ๊ธ ๋น์ค ๋ช %์ธ์ง ๋จ๊ฒจ์ฃผ์ธ์!", + "commentBait": "์ง๊ธ ์์ ๊ธ ๋น์ค ๋ช %์์? ํฌ์ ์์ํ ์ค๋น ๋์ จ๋์?", + "hashtags": [ + "#fyp", + "#foryou", + "#์ฌํ ํฌ", + "#1์ธ๊ฐ๊ตฌ์ฌํ ํฌ", + "#์์ ๊ธ๋์ ํฌ์", + "#ํฌ์์์", + "#์ฒญ๋ ๋์ฝ๊ณ์ข", + "#S&P500", + "#์ฌํ ํฌ์ด๋ณด", + "#์ง ํ ํฌ" + ], + "backgroundMusic": { + "genre": "Lo-fi Hip Hop", + "mood": "์ฐจ๋ถํ์ง๋ง ์ ๋ขฐ๊ฐ ์๋ ๋ถ์๊ธฐ" + }, + "bestPostingTimes": [ + "07:00", + "20:00", + "23:00" + ] + }, + "keyword": "1์ธ ๊ฐ๊ตฌ ์ฌํ ํฌ ๋ฐฉ๋ฒ ์์ ๊ธ ๋์ ํฌ์ ์์ํ๊ธฐ", + "trendDirection": "stable" + }, + "socialPublished": { + "instagram": { + "skipped": true, + "reason": "SOCIAL_AUTO_PUBLISH=false" + }, + "threads": { + "skipped": true, + "reason": "SOCIAL_AUTO_PUBLISH=false" + }, + "tiktok": { + "skipped": true, + "reason": "SOCIAL_AUTO_PUBLISH=false" + } + } + } + ] + }, + { + "runAt": "2026-07-19T23:08:52.386242", + "date": "2026-07-19", + "keywords": [ + "1์ธ ๊ฐ๊ตฌ ์ฌํ ํฌ ์ ๋ต 2026 ์์ ๊ธ ๋์ ํฌ์ ๋ฐฉ๋ฒ" + ], + "postsGenerated": 1, + "bloggerUploaded": 1, + "errors": 0, + "errorMessages": [], + "imagesInserted": 3, + "totalWords": 4100, + "blogId": "blog1", + "blogName": "HOGU What?", + "platforms": { + "blogger": 1 + }, + "earnings": { + "totalPosts": 92, + "estimatedDailyRevenue": 460.0, + "estimatedMonthlyRevenue": 13800.0, + "estimatedYearlyRevenue": 167900.0, + "avgCPC": 2.5, + "currency": "USD" + }, + "posts": [ + { + "title": "2026 1์ธ ๊ฐ๊ตฌ ์ฌํ ํฌ ์ ๋ต, ์์ ๊ธ ๋์ ํฌ์ํ๋ ๋ฒ", + "keyword": "1์ธ ๊ฐ๊ตฌ ์ฌํ ํฌ ์ ๋ต 2026 ์์ ๊ธ ๋์ ํฌ์ ๋ฐฉ๋ฒ", + "blogUrl": "https://www.hoguwhat.com/2026/07/2026-1.html", + "imagesInserted": 3, + "wordCount": 4100, + "contentPreview": "์๊ธ ํต์ฅ์์ ๋งค๋ฌ ์ ๊ธ ํต์ฅ์ผ๋ก ๋์ ์ฎ๊ธฐ๊ณ ๋๋ฉด ์ ์ง ์ฌํ ํฌ๋ฅผ ์ํ๊ณ ์๋ค๋ ์์ฌ์ด ๋ญ๋๋ค. ๊ทธ๋ฐ๋ฐ ์ต๊ทผ ๋ช ๋ ์ฌ์ด ๊ธ๋ฆฌ ํ๋ฆ์ ๋ณด๋ฉด ์ด์ผ๊ธฐ๊ฐ ์กฐ๊ธ ๋ฌ๋ผ์ก์ต๋๋ค. 2026๋ ๋ค์ด ์์ค์ํ ์์ ๊ธ ๊ธ๋ฆฌ๊ฐ ๋ค์ ๋ฎ์์ง๋ ํ๋ฆ์ ๋ณด์ด๋ฉด์, 1์ธ ๊ฐ๊ตฌ ์ฌ์ด์์ ์์ ๊ธ๋ง์ผ๋ก๋ ์์ฐ์ ๋ถ๋ฆฌ๊ธฐ ์ด๋ ต๋ค๋ ๋ชฉ์๋ฆฌ๊ฐ ์ปค์ง๊ณ ์์ต๋๋ค. ํผ์ ๋ฒ์ด ํผ์ ์ฐ๋ ๊ตฌ์กฐ์ด๋ค ๋ณด๋...", + "faqCount": 3, + "faq": [ + { + "q": "์์ ๊ธ์ ์์ ํ ์์ ๊ณ ํฌ์๋ก๋ง ์์ฐ์ ๊ตด๋ ค๋ ๋ ๊น์?", + "a": "์ผ๋ฐ์ ์ผ๋ก๋ ๊ถ์ฅ๋์ง ์์ต๋๋ค. ๋น์๊ธ ์ฑ๊ฒฉ์ ์๊ธ์ ์์ ๊ธ์ฒ๋ผ ์์ ํ๊ณ ์ ๋์ฑ ๋์ ๊ณณ์ ๋จ๊ฒจ๋๋ ๊ฒ์ด ์ข๋ค๋ ์๊ฒฌ์ด ๋ง์ต๋๋ค." + }, + { + "q": "ํฌ์ ์ด๋ณด์ธ๋ฐ ์ผ๋ง๋ถํฐ ์์ํ๋ ๊ฒ ์ข์๊น์?", + "a": "์ ํด์ง ์ ๋ต์ ์์ง๋ง, ์ํ์ ์ง์ฅ ์๋ ์์ก์ผ๋ก ์์ํด ๊ฒฝํ์ ์์ ๋ค ์ ์ฐจ ๋๋ฆฌ๋ ๋ฐฉ์์ด ์์ฃผ ๊ถ์ฅ๋ฉ๋๋ค." + }, + { + "q": "ISA์ ์ฐ๊ธ์ ์ถ ์ค ๋ฌด์์ ๋จผ์ ๊ฐ์ ํด์ผ ํ๋์?", + "a": "๋ชฉ์ ์๊ธ ์ฑ๊ฒฉ์ด ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ ๋ณธ์ธ์ ์๊ธ ํ์ฉ ๊ณํ์ ๋ง์ถฐ ๊ณต์ ์๋ฃ๋ฅผ ํ์ธํ๋ ๊ฒ์ด ์์ ํฉ๋๋ค." + } + ], + "factCheck": { + "checked": true, + "verdict": "warn", + "issues_found": 2, + "fixes_applied": 2, + "issues": [ + { + "problem": "์๋ฃํฉ์ ๋ฐ๋ฅด๋ฉด ํ๊ตญ์ํ์ด ๊ธฐ์ค๊ธ๋ฆฌ ์ธ์ ์ฌ์ดํด์ ๋์ ํด ์ฃผ๋ด๋ ๊ธ๋ฆฌ๊ฐ 8%๋๋ก ์น์๋ ์ ๋ง์ด ๋์จ ์ํฉ์ผ๋ก, ์์ ๊ธ ๊ธ๋ฆฌ ํ๋ฝ ์ฃผ์ฅ๊ณผ ๋ชจ์๋จ", + "fixed": true + }, + { + "problem": "์๋ฃํฉ์ ๊ธฐ์ค๊ธ๋ฆฌ ์ธ์ ์ฌ์ดํด(๊ธ๋ฆฌ ์์น ๊ตญ๋ฉด)๊ณผ ๋ชจ์๋๋ ๊ฒ์ฆ๋์ง ์์ ๋ฐฉํฅ์ฑ ์ฃผ์ฅ", + "fixed": true + } + ] + }, + "sources": [ + { + "title": "2025 ํต๊ณ๋ก ๋ณด๋ 1์ธ๊ฐ๊ตฌ | ๊ฒฝ์ ์ ์ฑ ์๋ฃ", + "url": "https://eiec.kdi.re.kr/policy/materialView.do?num=274492" + }, + { + "title": "๊ฐ๊ณ๋์ถ ์ค๋จ ์๊ธฐโฆ ๊ธ๋ฆฌ ์ฌ๋ผ ์ค์์์ '์ด์ค๊ณ '", + "url": "https://www.segye.com/newsView/20260719512115?OutUrl=naver" + }, + { + "title": "[์ด๋ฒ์ฃผ ์ฆ์] ๊ธ๋ฝ ๋ค ๋ฐ๋ฑ ๋ ธ๋ฆฌ๋ ์ฝ์คํผโฆSKํ์ด๋์ค ์ค์ '์ฃผ๋ชฉ'", + "url": "http://www.newsian.co.kr/news/articleView.html?idxno=92421" + }, + { + "title": "์์ธํน๋ณ์_1์ธ๊ฐ๊ตฌ(์ฐ๋ น๋ณ) ํต๊ณ_20241231", + "url": "https://www.data.go.kr/data/15046330/fileData.do" + }, + { + "title": "ํ๊ตญ์ํ ๊ธฐ์ค๊ธ๋ฆฌ ๋ฐ ํต๊ณ", + "url": "https://www.bok.or.kr" + }, + { + "title": "๊ธ์ต๊ฐ๋ ์ ๊ธ์ต์๋น์ ์ ๋ณดํฌํธ", + "url": "https://www.fss.or.kr" + } + ], + "labels": [ + "1์ธ๊ฐ๊ตฌ์ฌํ ํฌ", + "์์ ๊ธํฌ์", + "2026์ฌํ ํฌ", + "์์กํฌ์", + "ETFํฌ์" + ], + "metaDescription": "์์ ๊ธ ๊ธ๋ฆฌ๊ฐ ๋ฌผ๊ฐ ์์น๋ฅ ์ ๋ชป ๋ฐ๋ผ๊ฐ๋ 2026๋ , 1์ธ ๊ฐ๊ตฌ๊ฐ ๋น์๊ธ๊ณผ ํฌ์๊ธ์ ๋๋๊ณ ๋ฆฌ์คํฌ๋ฅผ ๊ด๋ฆฌํ๋ฉฐ ์์ ๊ธ ๋์ ํฌ์๋ก ์์ฐ์ ๋ฐฐ๋ถํ๋ ์ค์ ์ฒดํฌ๋ฆฌ์คํธ๋ฅผ ์ ๋ฆฌํ์ต๋๋ค.", + "adsenseCategory": "๊ธ์ต", + "articleType": "investment", + "riskLevel": "high", + "blogId": "blog1", + "blogName": "HOGU What?", + "socialContent": { + "instagram": { + "caption": "์์ ๊ธ ์ด์๋ก ์ปคํผ๊ฐ๋ ์ ๋์ต๋๋คโ๏ธ\n2026๋ , ๋ฌผ๊ฐ ์์น๋ฅ ์ด ์์ ๊ธ ๊ธ๋ฆฌ๋ฅผ ์ด๋ฏธ ์์ง๋ ์ด์.\n\n1์ธ ๊ฐ๊ตฌ๋ผ๋ฉด ๋๋์ฑ 'ํผ์๋ง์ ์์ฐ ๊ด๋ฆฌ'๊ฐ ํ์ํ ์์ ๐\n๋น์๊ธ์ ์งํค๊ณ , ๋๋จธ์ง๋ ํฌ์๋ก ๊ตด๋ฆฌ๋ ์ค์ ์ ๋ต ์ ๋ฆฌํ์ด์.\n\n์ ์ฅ ํ์ ๐ ๋์ค์ ๋ค์ ๋ณผ ์๋ฃ์ ๋๋ค\n\nโ 1์ธ ๊ฐ๊ตฌ ํฌ์ ์ฒดํฌ๋ฆฌ์คํธ\n1๏ธโฃ ๋น์๊ธ 3~6๊ฐ์์น๋ ๋ฌด์กฐ๊ฑด ์์ ๊ธ์ผ๋ก ๋ถ๋ฆฌ\n2๏ธโฃ ํฌ์๊ธ์ '์์ด๋ ๋๋ ๋'๋ง ์ฌ์ฉํ๊ธฐ\n3๏ธโฃ ETF๋ก ๋ถ์ฐํฌ์ ์์ (๊ฐ๋ณ์ฃผ X)\n4๏ธโฃ ๋งค๋ฌ ์๋์ด์ฒด๋ก ์์ก ์ ๋ฆฝ์ ํฌ์\n5๏ธโฃ ๋ฆฌ์คํฌ ํ์ฉ ๋ฒ์ ๋ฏธ๋ฆฌ ์ค์ ํ๊ธฐ\n6๏ธโฃ ์์ ๊ธ 100% โ โ ์์ ๊ธ+ํฌ์ ๋น์จ ์กฐ์ \n7๏ธโฃ ์์ก(1๋ง์~)๋ถํฐ ์์ํด์ ๊ฐ ์ตํ๊ธฐ\n\nํฌ์ ์ด๋ณด๋ผ๋ฉด ํฐ ๋๋ถํฐ ๋ฃ์ง ๋ง์ธ์.\n๋น์๊ธ ์งํค๋ฉด์ ์์ก์ผ๋ก ์์ํ๋ ๊ฒ ํต์ฌ์ ๋๋ค.\n\n๐ ์ ์ฒด ์ฒดํฌ๋ฆฌ์คํธ๋ ๋ธ๋ก๊ทธ์์ ํ์ธํ์ธ์\nํ๋กํ ๋งํฌ or ๋๊ธ์ URL ๋จ๊ธธ๊ฒ์\n\n#์ ์ฅํด๋๊ณ ๋ค์๋ณด๊ธฐ", + "hookLine": "์์ ๊ธ ์ด์๋ก ์ปคํผ๊ฐ๋ ์ ๋์ต๋๋คโ๏ธ 2026๋ ๋ฌผ๊ฐ๋ ์ด๋ฏธ ์์ ๊ธ์ ์์ง๋ ์ด์", + "storyHighlightTitle": "์ฌํ ํฌํ", + "hashtags": { + "popular": [ + "#์ฌํ ํฌ", + "#์ง ํ ํฌ", + "#ํฌ์", + "#๋๊ด๋ฆฌ", + "#๊ฒฝ์ ๊ณต๋ถ", + "#์ฌํ ํฌ๊ณต๋ถ", + "#์์ฐ๊ด๋ฆฌ", + "#๋ถ์๋๊ธฐ", + "#๋จธ๋๊ด๋ฆฌ", + "#์ฌ๋ฌด์ค๊ณ" + ], + "medium": [ + "#1์ธ๊ฐ๊ตฌ์ฌํ ํฌ", + "#์์ ๊ธํฌ์", + "#2026์ฌํ ํฌ", + "#์์กํฌ์", + "#ETFํฌ์", + "#์ ๋ฆฝ์ํฌ์", + "#๋น์๊ธ๊ด๋ฆฌ", + "#1์ธ๊ฐ๊ตฌ", + "#์ง์ฅ์ธ์ฌํ ํฌ", + "#์ฌํ์ด๋ ์์ฌํ ํฌ" + ], + "niche": [ + "#1์ธ๊ฐ๊ตฌ์์ฐ๊ด๋ฆฌ", + "#์์ ๊ธ๋์ ํฌ์", + "#ETF๋ถ์ฐํฌ์", + "#์์กETFํฌ์", + "#๋ฆฌ์คํฌ๊ด๋ฆฌํฌ์" + ] + }, + "bestPostingTimes": [ + "07:00", + "12:00", + "21:00" + ] + }, + "threads": { + "posts": [ + { + "order": 1, + "label": "1/5", + "content": "2026๋ ์์ ๊ธ ํ๊ท ๊ธ๋ฆฌ 3%๋, ๊ทธ๋ฐ๋ฐ ๋ฌผ๊ฐ์์น๋ฅ ์ ์ด๋ฏธ ๊ทธ๊ฑธ ๋์ด์ฐ์ต๋๋ค.\n\n์ฆ, ์์ ๊ธ๋ง ๋ฃ๊ณ ์์ผ๋ฉด '์ค์ง์ ์ผ๋ก ๋์ด ์ค์ด๋๋' ์ํฉ์ด๋ผ๋ ๋ป์ด์์.\n\nํนํ 1์ธ ๊ฐ๊ตฌ๋ ์ด๊ฑธ ์ฒด๊ฐํ๋ ์๋๊ฐ ๋ ๋น ๋ฆ ๋๋ค." + }, + { + "order": 2, + "label": "2/5", + "content": "๋ฌธ์ ๋ '๊ทธ๋ผ ๋ค ํฌ์๋ก ๋๋ ค์ผ ํ๋?'๋ผ๋ ์ง๋ฌธ์ธ๋ฐ์.\n\n๋ต์ NO์ ๋๋ค.\n\n๋น์๊ธ๊น์ง ํฌ์์ ๋ฃ๋ ์๊ฐ, ๊ฐ์๊ธฐ ๋ ํ์ํ ๋ ์์ค ์ํ๋ก ํ์์ผ ํ๋ ์ต์ ์ ์ํฉ์ด ์๊ฒจ์." + }, + { + "order": 3, + "label": "3/5", + "content": "๊ทธ๋์ 1์ธ ๊ฐ๊ตฌ ์ฌํ ํฌ์ ํต์ฌ์ '๋ถ๋ฆฌ'์ ๋๋ค.\n\n- ๋น์๊ธ(3~6๊ฐ์ ์ํ๋น): ์์ ๊ธ ์ ์ง\n- ๋๋จธ์ง ์ฌ์ ์๊ธ: ETF ๋ฑ ๋ถ์ฐํฌ์\n\n์ด ๊ตฌ์กฐ๋ง ์ก์๋ ๋ฆฌ์คํฌ๋ ์ ๋ฐ์ผ๋ก ์ค์ด๋ญ๋๋ค." + }, + { + "order": 4, + "label": "4/5", + "content": "ํฌ์ ์ด๋ณด๋ผ๋ฉด ์ฒ์๋ถํฐ ํฐ ๋ ๋ฃ์ง ๋ง์ธ์.\n\n1๋ง์~5๋ง์ ์์ก์ผ๋ก ๋งค๋ฌ ์๋์ด์ฒด ๊ฑธ์ด์ ์ ๋ฆฝ์์ผ๋ก ์์ํ๋ ๊ฒ ํจ์ฌ ์์ ํฉ๋๋ค.\n\n๊ฐ์ ๋จผ์ ์ตํ๊ณ , ๊ธ์ก์ ๋์ค์ ๋๋ ค๋ ๋ฆ์ง ์์์." + }, + { + "order": 5, + "label": "5/5", + "content": "๊ฒฐ๋ก : ์์ ๊ธ vs ํฌ์๋ '์ ํ'์ด ์๋๋ผ '๋น์จ'์ ๋ฌธ์ ์ ๋๋ค.\n\n๋น์๊ธ์ ์งํค๊ณ , ์ฌ์ ์๊ธ์ ๊ตด๋ฆฌ์ธ์.\n\n์ค์ ์ฒดํฌ๋ฆฌ์คํธ ์ ์ฒด ๋ฒ์ ์ ์ฌ๊ธฐ์ ํ์ธํ์ธ์ ๐\nhttps://www.hoguwhat.com/2026/07/2026-1.html\n\n์ฌ๋ฌ๋ถ์ ์ง๊ธ ์์ ๊ธ:ํฌ์ ๋น์จ์ ๋ช๋๋ช์ผ๋ก ๊ฐ์ ธ๊ฐ๊ณ ์๋์?" + } + ], + "hashtags": [ + "#1์ธ๊ฐ๊ตฌ์ฌํ ํฌ", + "#์์ ๊ธํฌ์", + "#2026์ฌํ ํฌ", + "#์์กํฌ์", + "#ETFํฌ์" + ], + "engagementQuestion": "์ฌ๋ฌ๋ถ์ ์ง๊ธ ์์ ๊ธ:ํฌ์ ๋น์จ์ ๋ช๋๋ช์ผ๋ก ๊ฐ์ ธ๊ฐ๊ณ ์๋์?", + "bestPostingTimes": [ + "08:00", + "19:00" + ] + }, + "tiktok": { + "title": "์์ ๊ธ๋ง ๋ฏฟ๋ค๊ฐ ๋ ๋ น์ต๋๋ค (2026 1์ธ๊ฐ๊ตฌ ์ฌํ ํฌ)", + "thumbnailText": "์์ ๊ธ๋ง ๋ฃ๋ค๊ฐ\n๋ ๋ น๋๋ค๊ณ ์?", + "scenes": [ + { + "time": "0-3์ด", + "text": "์์ ๊ธ๋ง ๋ฃ๊ณ ์๋ค๋ฉด... ์ง๊ธ ๋ ๋ น๊ณ ์๋ ์ค์ ๋๋ค", + "direction": "์ธ๋ฌผ ํด๋ก์ฆ์ , ํต์ฅ ํ๋ฉด ์ค๋ฒ๋ ์ด", + "sound": "๊ธด์ฅ๊ฐ ์๋ ํจ๊ณผ์(๋ต-)" + }, + { + "time": "3-15์ด", + "text": "2026๋ ๋ฌผ๊ฐ์์น๋ฅ ์ด ์์ ๊ธ ๊ธ๋ฆฌ๋ฅผ ์ด๋ฏธ ์์ง๋ ์ด์. ํนํ 1์ธ ๊ฐ๊ตฌ๋ ์ด ์ฐจ์ด๋ฅผ ๋ ํฌ๊ฒ ์ฒด๊ฐํฉ๋๋ค", + "direction": "๊ทธ๋ํ ์ ๋๋ฉ์ด์ ์ผ๋ก ๋ฌผ๊ฐ vs ๊ธ๋ฆฌ ๋น๊ต", + "sound": "๊ธด๋ฐํ ๋ฐฐ๊ฒฝ์ ํ์ด๋์ธ" + }, + { + "time": "15-35์ด", + "text": "๊ทธ๋ ๋ค๊ณ ๋ค ํฌ์๋ก ๋๋ฆฌ๋ฉด ์ ๋ผ์. ๋น์๊ธ 3~6๊ฐ์์น๋ ์์ ๊ธ์ผ๋ก ๋ถ๋ฆฌํ๊ณ , ๋จ์ ์ฌ์ ์๊ธ๋ง ETF๋ก ์์ก ๋ถ์ฐํฌ์ ํ์ธ์", + "direction": "์ฒดํฌ๋ฆฌ์คํธ ํ ์คํธ ์๋ง + ์๊ฐ๋ฝ์ผ๋ก ์ซ์ ์ธ๋ ์ฐ์ถ", + "sound": "๊ฒฝ์พํ ํ ์ฌ์ด๋ ํจ๊ณผ" + }, + { + "time": "35-50์ด", + "text": "1๋ง์๋ถํฐ ์์ํด์ ๋งค๋ฌ ์๋์ด์ฒด๋ก ๊ฐ์ ์ตํ์ธ์. ์ฒ์๋ถํฐ ํฐ๋ ๋ฃ๋ ๊ฒ ์๋๋ผ ์ต๊ด์ ๋ง๋๋ ๊ฒ ๋จผ์ ์ ๋๋ค", + "direction": "ํด๋ํฐ ์ฑ ํ๋ฉด์ผ๋ก ์๋์ด์ฒด ์ค์ ํ๋ ๋ชจ์ต", + "sound": "์์ํ ๋ฐฐ๊ฒฝ์ ์ ์ง" + }, + { + "time": "50-60์ด", + "text": "์ ์ฒด ์ฒดํฌ๋ฆฌ์คํธ๋ ๋ธ๋ก๊ทธ์์ ํ์ธํ์ธ์! ๋๊ธ์ ์ฌ๋ฌ๋ถ์ ์์ ๊ธ:ํฌ์ ๋น์จ ๋จ๊ฒจ์ฃผ์ธ์", + "direction": "์ธ๋ฌผ์ด ํ๋ฉด ๊ฐ๋ฆฌํค๋ฉฐ ๋ง๋ฌด๋ฆฌ ๋ฉํธ", + "sound": "์ ๋นํธ ๋ง๋ฌด๋ฆฌ ํจ๊ณผ์" + } + ], + "fullScript": "์์ ๊ธ๋ง ๋ฃ๊ณ ์๋ค๋ฉด... ์ง๊ธ ๋์ด ๋ น๊ณ ์๋ ์ค์ ๋๋ค. 2026๋ ๋ฌผ๊ฐ์์น๋ฅ ์ด ์์ ๊ธ ๊ธ๋ฆฌ๋ฅผ ์ด๋ฏธ ์์ง๋ ๊ฑฐ๋ ์. ํนํ 1์ธ ๊ฐ๊ตฌ๋ ์ด ์ฐจ์ด๋ฅผ ๋ ํฌ๊ฒ ์ฒด๊ฐํฉ๋๋ค. ๊ทธ๋ ๋ค๊ณ ์ ๋ถ ํฌ์๋ก ๋๋ฆฌ๋ฉด ์ ๋ผ์. ๋น์๊ธ 3~6๊ฐ์์น๋ ์์ ๊ธ์ผ๋ก ๋ถ๋ฆฌํ๊ณ , ๋จ์ ์ฌ์ ์๊ธ๋ง ETF๋ก ์์ก ๋ถ์ฐํฌ์ ํ์ธ์. 1๋ง์๋ถํฐ ์์ํด์ ๋งค๋ฌ ์๋์ด์ฒด๋ก ๊ฐ์ ์ตํ์ธ์. ์ฒ์๋ถํฐ ํฐ๋ ๋ฃ๋ ๊ฒ ์๋๋ผ ์ต๊ด์ ๋ง๋๋ ๊ฒ ๋จผ์ ์ ๋๋ค. ์ ์ฒด ์ฒดํฌ๋ฆฌ์คํธ๋ ๋ธ๋ก๊ทธ์์ ํ์ธํ์ธ์! ๋๊ธ์ ์ฌ๋ฌ๋ถ์ ์์ ๊ธ:ํฌ์ ๋น์จ ๋จ๊ฒจ์ฃผ์ธ์.", + "commentBait": "์ฌ๋ฌ๋ถ์ ์์ ๊ธ:ํฌ์ ๋น์จ ๋ช๋๋ช์ผ๋ก ๊ฐ์ ธ๊ฐ์๋์? ๋๊ธ๋ก ์๋ ค์ฃผ์ธ์!", + "hashtags": [ + "#fyp", + "#foryou", + "#1์ธ๊ฐ๊ตฌ์ฌํ ํฌ", + "#์์ ๊ธํฌ์", + "#2026์ฌํ ํฌ", + "#์์กํฌ์", + "#ETFํฌ์", + "#์ง ํ ํฌ", + "#์ฌํ ํฌํ", + "#๋จธ๋๊ด๋ฆฌ" + ], + "backgroundMusic": { + "genre": "๋กํ์ด ํํฉ", + "mood": "์ฐจ๋ถํ์ง๋ง ๊ธด์ฅ๊ฐ ์๋" + }, + "bestPostingTimes": [ + "07:00", + "20:00", + "23:00" + ] + }, + "keyword": "1์ธ ๊ฐ๊ตฌ ์ฌํ ํฌ ์ ๋ต 2026 ์์ ๊ธ ๋์ ํฌ์ ๋ฐฉ๋ฒ", + "trendDirection": "stable" + }, + "socialPublished": { + "instagram": { + "skipped": true, + "reason": "SOCIAL_AUTO_PUBLISH=false" + }, + "threads": { + "skipped": true, + "reason": "SOCIAL_AUTO_PUBLISH=false" + }, + "tiktok": { + "skipped": true, + "reason": "SOCIAL_AUTO_PUBLISH=false" + } + } + } + ] + }, + { + "runAt": "2026-07-19T12:54:01.652369", + "date": "2026-07-19", + "keywords": [ + "SBS ๋๋ผ๋ง ๊น๋ถ์ฅ ํ์ฐจ๋ณ ๋ฆฌ๋ทฐ" + ], + "postsGenerated": 1, + "bloggerUploaded": 0, + "errors": 0, + "errorMessages": [], + "imagesInserted": 1, + "totalWords": 2696, + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "platforms": { + "blogger": 0 + }, + "earnings": { + "totalPosts": 92, + "estimatedDailyRevenue": 165.6, + "estimatedMonthlyRevenue": 4968.0, + "estimatedYearlyRevenue": 60444.0, + "avgCPC": 0.9, + "currency": "USD" + }, + "posts": [ + { + "title": "SBS ๋๋ผ๋ง '๊น๋ถ์ฅ', ์ง์ฅ์ธ๋ค์ด ์ด๊ดํ๋ ์ด์ ์ ํ์ฐจ๋ณ ๋ฆฌ๋ทฐ ์ฐพ๋ ๋ฒ", + "keyword": "SBS ๋๋ผ๋ง ๊น๋ถ์ฅ ํ์ฐจ๋ณ ๋ฆฌ๋ทฐ", + "blogUrl": "", + "imagesInserted": 1, + "wordCount": 2696, + "contentPreview": "๊ธ์ตNEWS๋ ๋ณดํต ๊ธ๋ฆฌยท๋ถ๋์ฐยท์ ๋ถ์ง์๊ธ ๊ฐ์ ๋ฑ๋ฑํ ์ฃผ์ ๋ฅผ ๋ค๋ฃจ๋ ๋ธ๋ก๊ทธ์ ๋๋ค. ๊ทธ๋ฐ๋ฐ ์์ฆ ํฌํธ ์ค์๊ฐ ๊ฒ์์ด์ SNS ํ์๋ผ์ธ์ ๋ณด๋ฉด ์ ๋ ๋์ ๋๋ ์ด๋ฆ์ด ํ๋ ์์ต๋๋ค. ๋ฐ๋ก SBS ๊ธํ ๋๋ผ๋ง '๊น๋ถ์ฅ'์ ๋๋ค. ๋จ์ํ ๋๋ผ๋ง ํฅํ ์ด์๋ก ๋๊ธฐ๊ธฐ์, ์ด ์ํ์ด ๋ณด์ฌ์ฃผ๋ '์ง์ฅ์ธ ๊ณต๊ฐ ์ฝ๋'์ ์ฝํ ์ธ ์๋น ๋ฐฉ์์ ๋ณํ๊ฐ ๊ฒฝ์ ยท์ฌํ์ ์ผ๋ก๋ ์์ฌํ๋ ๋ฐ...", + "faqCount": 3, + "faq": [ + { + "q": "'๊น๋ถ์ฅ' ํ์ฐจ๋ณ ์ค๊ฑฐ๋ฆฌ๋ ์ด๋์ ํ์ธํ๋ ๊ฒ ๊ฐ์ฅ ์ ํํ๊ฐ์?", + "a": "SBS ๊ณต์ ํํ์ด์ง์ ํธ์ฑํ์ ๊ณต์ ์๋์์ค, ๋ฐฉ์ ํ ๊ณต๊ฐ๋๋ ๊ณต์ ํ์ด๋ผ์ดํธ ์์์ ํตํด ํ์ธํ๋ ๊ฒ์ด ๊ฐ์ฅ ์ ๋ขฐ๋๊ฐ ๋์ต๋๋ค. ๊ฐ์ธ ๋ธ๋ก๊ทธ๋ ์ปค๋ฎค๋ํฐ ์์ฝ์ ์คํฌ์ผ๋ฌ ์ฌ๋ถ์ ์ ํ์ฑ์ด ์ ๊ฐ๊ฐ์ผ ์ ์์ต๋๋ค." + }, + { + "q": "'๊น๋ถ์ฅ'์ ํด์ธ์์๋ ๋ณผ ์ ์๋์?", + "a": "๋ทํ๋ฆญ์ค ๊ธ๋ก๋ฒ ์ฐจํธ์์ ์ ์์ ์ฐจ์งํ๋ค๋ ๋ณด๋๊ฐ ์๋ ๋งํผ ๋ทํ๋ฆญ์ค๋ฅผ ํตํ ๊ธ๋ก๋ฒ ์คํธ๋ฆฌ๋ฐ์ด ์ด๋ค์ง๊ณ ์๋ ๊ฒ์ผ๋ก ํ์ธ๋ฉ๋๋ค. ๋ค๋ง ๊ตญ๊ฐ๋ณ ๊ณต๊ฐ ์์ ์ด๋ ์๋ง ์ง์ ์ฌ๋ถ๋ ๋ทํ๋ฆญ์ค ๊ณต์ ํ์ด์ง์์ ๋ณ๋๋ก ํ์ธํ๋ ๊ฒ์ด ์ข์ต๋๋ค." + }, + { + "q": "์ ์ ๋ ์ง์ฅ์ธ๋ค ์ฌ์ด์์ ๋ฐ์์ด ์ข์๊ฐ์?", + "a": "์ฃผ์ธ๊ณต์ด ๊ฒช๋ ํ์ฌ ๋ด ์ํฉ๊ณผ ์ธ๊ฐ๊ด๊ณ๊ฐ ์ค์ ์ง์ฅ ์ํ๊ณผ ๊ฒน์น๋ ๋ถ๋ถ์ด ๋ง๊ณ , ๊ฒ์ผ๋ก๋ ํ๋ฒํด ๋ณด์ด์ง๋ง ์จ๊ฒจ์ง ๋ฅ๋ ฅ์ ๊ฐ์ง ์บ๋ฆญํฐ ์ค์ ์ด ๋๋ฆฌ๋ง์กฑ์ ์ค๋ค๋ ๋ถ์์ด ์์ฒญ์ ํ๊ธฐ์ ์ ๊ณ ํ๊ฐ์์ ๊ณตํต์ ์ผ๋ก ๋์ค๊ณ ์์ต๋๋ค." + } + ], + "factCheck": { + "checked": true, + "verdict": "warn", + "issues_found": 2, + "fixes_applied": 2, + "issues": [ + { + "problem": "๊ฒ์ฆ ๋ถ๊ฐ๋ฅํ ๊ตฌ์ฒด์ ์์ฒญ์์ธต ํต๊ณ ์ฃผ์ฅ", + "fixed": true + }, + { + "problem": "๊ทผ๊ฑฐ ์๋ฃํฉ์ ์ข ์ ์ฌ๋ถ๋ ์์ ๊ด๋ จ ์ ๋ณด ์์, ํ์ ์ ์์ ", + "fixed": true + } + ] + }, + "sources": [ + { + "title": "[OOTD] 'ํ์จ์ฐ' ์์ฌ๋ค์ด ๋ซ์ 20% ์ฅ๋ฒฝโฆ'๊น๋ถ์ฅ' ์ดํ, ์์ง ํ์นํ์ง ์์๋ค๊ณ ?", + "url": "https://ent.sbs.co.kr/news/article.do?article_id=E10010319187&plink=ORI&cooper=NAVER" + }, + { + "title": "'๊น๋ถ์ฅ' ์์ฒด ์ต๊ณ ์์ฒญ๋ฅ ๋ํโฆ์์ง์ญ, ์กํ ์๊ธฐ", + "url": "https://enter.etoday.co.kr/news/view/299920" + }, + { + "title": "์์ง์ญยท์์๋ฏผยท์์ธ๊ตญยท๋ฐ์งํยท์ค๊ฒฝํธ, 28์ฃผ์ฐจ ๋๋ผ๋ง ์ถ์ฐ์ ํ์ ์ฑ...", + "url": "https://www.topstarnews.net/news/articleView.html?idxno=16133873" + }, + { + "title": "'๊น๋ถ์ฅ' ๊ฝ์์ฃผ๊ธฐ ์บ์คํ ์๋์๋คโฆ๋ฐ๋ท์๋ถํฐ ํฐ์ง ์ ์ง์, ์ฐ๊ธฐ๋ ฅ๋...", + "url": "https://www.tenasia.co.kr/article/2026070954164" + } + ], + "labels": [ + "SBS ๊น๋ถ์ฅ", + "๊น๋ถ์ฅ ๋๋ผ๋ง", + "๊น๋ถ์ฅ ํ์ฐจ๋ณ ๋ฆฌ๋ทฐ", + "๊ธํ ๋๋ผ๋ง", + "์นํฐ ์์ ๋๋ผ๋ง", + "๋ทํ๋ฆญ์ค ์ธ๊ธฐ์", + "์ง์ฅ์ธ ๊ณต๊ฐ ๋๋ผ๋ง", + "๋๋ผ๋ง ์์ฒญ๋ฅ ", + "SBS ํธ์ฑํ", + "์ฝํ ์ธ ํธ๋ ๋ ๋ถ์" + ], + "metaDescription": "SBS ๊ธํ ๋๋ผ๋ง '๊น๋ถ์ฅ'์ด ์์ฒญ๋ฅ 20%๋ฅผ ๋ํํ๊ณ ๋ทํ๋ฆญ์ค ๊ธ๋ก๋ฒ ์ฐจํธ๊น์ง ์ค๋ฅธ ๋ฐฐ๊ฒฝ, ์ง์ฅ์ธ๋ค์ด ์ด๊ดํ๋ ์ด์ , ํ์ฐจ๋ณ ๋ฆฌ๋ทฐ๋ฅผ ์ ํํ ํ์ธํ๋ ๋ฐฉ๋ฒ์ ์ ๋ฆฌํ์ต๋๋ค.", + "adsenseCategory": "์ผ๋ฐ", + "articleType": "drama_review", + "riskLevel": "low", + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "socialContent": null, + "socialPublished": { + "instagram": null, + "threads": null, + "tiktok": null + } + } + ] + }, + { + "runAt": "2026-07-19T12:50:30.428044", + "date": "2026-07-19", + "keywords": [ + "SBS ๋๋ผ๋ง ๊น๋ถ์ฅ ํ์ฐจ๋ณ ๋ฆฌ๋ทฐ" + ], + "postsGenerated": 1, + "bloggerUploaded": 0, + "errors": 0, + "errorMessages": [], + "imagesInserted": 1, + "totalWords": 2561, + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "platforms": { + "blogger": 0 + }, + "earnings": { + "totalPosts": 92, + "estimatedDailyRevenue": 165.6, + "estimatedMonthlyRevenue": 4968.0, + "estimatedYearlyRevenue": 60444.0, + "avgCPC": 0.9, + "currency": "USD" + }, + "posts": [ + { + "title": "SBS ๋๋ผ๋ง ๊น๋ถ์ฅ ํ์ฐจ๋ณ ๋ฆฌ๋ทฐ, 6ํ๊น์ง ํ๋ฆ ์ ๋ฆฌํด๋ดค๋ค", + "keyword": "SBS ๋๋ผ๋ง ๊น๋ถ์ฅ ํ์ฐจ๋ณ ๋ฆฌ๋ทฐ", + "blogUrl": "", + "imagesInserted": 1, + "wordCount": 2561, + "contentPreview": "์ฃผ๋ง๋ง๋ค ๋ทํ๋ฆญ์ค ์ธ๊ธฐ ์์๋ฅผ ํ์ธํ๋ ์ต๊ด์ด ์๋๋ฐ, ์ต๊ทผ ๋ช ์ฃผ๊ฐ ๋น์์ด๊ถ TV์ผ ์๋จ์ ๋ฏ์ต์ ์ ๋ชฉ ํ๋๊ฐ ๊ณ์ ๊ฑธ๋ ค ์์์ต๋๋ค. ๋ฐ๋ก SBS ๊ธํ ๋๋ผ๋ง '๊น๋ถ์ฅ'์ ๋๋ค. ์ฒ์์ '๋ ํ์ฌ๋ฌผ์ด๊ฒ ๊ฑฐ๋' ํ๊ณ ๋๊ฒผ๋๋ฐ, ํ์ฐจ๊ฐ ์์ด๋ฉด์ ์ฃผ๋ณ์์๋ 6ํ ์๊ธฐ๋ฅผ ํ๋ ์ฌ๋์ด ๋์ด์ ๋ค๋ฆ๊ฒ ํ๋ฆ์ ๋ฐ๋ผ์ก์๋ดค์ต๋๋ค. ์ด ๊ธ์์๋ ๊ณต๊ฐ๋ ๋ฐฉ์ ๋ด์ฉ๊ณผ ๋ฐ์ ์๋ฃ๋ฅผ ...", + "faqCount": 3, + "faq": [ + { + "q": "SBS ๋๋ผ๋ง ๊น๋ถ์ฅ์ ๋ช ํ๊น์ง ๋ฐฉ์๋๋์?", + "a": "2026๋ 7์ ๊ธฐ์ค 6ํ๊น์ง ๋ฐฉ์์ด ํ์ธ๋์ผ๋ฉฐ, ์ ํํ ์ด ํ์ฐจ์ ์ข ์์ผ์ SBS ๊ณต์ ํธ์ฑํ๋ฅผ ํตํด ํ์ธํ๋ ๊ฒ์ด ์ ํํฉ๋๋ค." + }, + { + "q": "๊น๋ถ์ฅ 6ํ์์ ๊ฐ์ฅ ํ์ ๊ฐ ๋ ์ฅ๋ฉด์ ๋ฌด์์ธ๊ฐ์?", + "a": "์์ง์ญ์ด ํ๋ง ์ฃผ์์ฑ๊ณผ ๊ตญ๊ฐ ์ ๋ณด๊ธฐ๊ด์ ํฌ์๋ง์ ๋ซ๊ณ ๋ธ๊ณผ ์ฌํํ๋ ์ฅ๋ฉด์ผ๋ก, '์๋น ์๋ค, ์ง์ ๊ฐ์'๋ผ๋ ๋์ฌ๊ฐ ํนํ ํ์๋์ต๋๋ค." + }, + { + "q": "๊น๋ถ์ฅ์ ๋ทํ๋ฆญ์ค์์๋ ๋ณผ ์ ์๋์?", + "a": "๋ทํ๋ฆญ์ค ๋น์์ด์ผ ๋ถ๋ฌธ์์ 2์ฃผ ์ฐ์ 1์๋ฅผ ๊ธฐ๋กํ ๊ฒ์ผ๋ก ๋ณด๋๋์ผ๋ฉฐ, ์คํธ๋ฆฌ๋ฐ ์๋น์ค ์ฌ๋ถ๋ ๋ทํ๋ฆญ์ค ๊ณต์ ํ์ด์ง์์ ํ์ธํ ์ ์์ต๋๋ค." + } + ], + "factCheck": { + "checked": true, + "verdict": "warn", + "issues_found": 4, + "fixes_applied": 4, + "issues": [ + { + "problem": "์๋ฃํฉ์ ์๋ ๊ตฌ์ฒด์ ์ฅ๋ฉด ๋ฌ์ฌ๋ก, ์ค์ ๋ฐฉ์ ๋ด์ฉ๊ณผ ๋ค๋ฅผ ์ ์๋ ๊ทผ๊ฑฐ ์๋ ์ธ๋ถ ์์ ", + "fixed": true + }, + { + "problem": "์๋ฃํฉ์ ๊ทผ๊ฑฐ ์๋ ๊ตฌ์ฒด์ ๋์ฌ ์ธ์ฉ์ผ๋ก ๊ฒ์ฆ ๋ถ๊ฐ๋ฅ", + "fixed": true + }, + { + "problem": "ํน์ ๊ธฐ์ฌ ์ ๋ชฉ์ ์ธ์ฉํ์ผ๋ ์ถ์ฒ๊ฐ ๋ถ๋ช ํํ ๊ฒ์ฆ ๋ถ๊ฐ๋ฅํ ์ฃผ์ฅ", + "fixed": true + }, + { + "problem": "์ถ์ฒ๊ฐ ๋ถ๋ถ๋ช ํ ์ธ๋ก ์ธ์ฉ๊ตฌ๋ก ๊ฒ์ฆ ๋ถ๊ฐ๋ฅ", + "fixed": true + } + ] + }, + "sources": [ + { + "title": "โ์๋น ์๋ค, ์ง์ ๊ฐ์โ ์์ง์ญ ํ ๋ง๋๋ก ์์ฑ๋ ์ญ๋๊ธ ๋ถ๋ ์๋ด(๊น๋ถ์ฅ)", + "url": "https://sports.khan.co.kr/article/202607120034003?pt=nv" + }, + { + "title": "'๊น๋ถ์ฅ' ํญ์ฐ ์ ์๊ฐ๋ฆฐ ๋ถ๋ ...์์ง์ญ, ์ ๋ป์์ง๋ง ๋ฟ์ง ์์๋ค", + "url": "https://www.nc.press/news/articleView.html?idxno=620444" + }, + { + "title": "โ๊น๋ถ์ฅโ, ๋ทํ ๋น์์ด์ผ 2์ฃผ ์ฐ์ 1์โฆโ์ต์ํ ์ค์ +์ค๊ฐ ์ก์ โ ํตํ๋ค", + "url": "https://www.joongang.co.kr/article/25445324" + } + ], + "labels": [ + "๊น๋ถ์ฅ", + "SBS๋๋ผ๋ง", + "์์ง์ญ", + "์ฃผ์์ฑ", + "๋ทํ๋ฆญ์ค์์", + "๋๋ผ๋ง๋ฆฌ๋ทฐ", + "ํ์ฐจ๋ณ๋ฆฌ๋ทฐ", + "๊ธํ ๋๋ผ๋ง", + "ITํธ๋ ๋", + "OTT์ฝํ ์ธ " + ], + "metaDescription": "SBS ๋๋ผ๋ง ๊น๋ถ์ฅ ํ์ฐจ๋ณ ๋ฆฌ๋ทฐ, 6ํ ๋ถ๋ ์๋ด ์ฅ๋ฉด๊ณผ ๋ทํ๋ฆญ์ค ๋น์์ด์ผ 2์ฃผ ์ฐ์ 1์ ์์๊น์ง ๊ณต๊ฐ๋ ์๋ฃ๋ก ์ ๋ฆฌํ์ต๋๋ค.", + "adsenseCategory": "์ผ๋ฐ", + "articleType": "drama_review", + "riskLevel": "low", + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "socialContent": null, + "socialPublished": { + "instagram": null, + "threads": null, + "tiktok": null + } + } + ] + }, + { + "runAt": "2026-07-19T12:47:02.433813", + "date": "2026-07-19", + "keywords": [ + "SBS ๋๋ผ๋ง ๊น๋ถ์ฅ ํ์ฐจ๋ณ ๋ฆฌ๋ทฐ" + ], + "postsGenerated": 1, + "bloggerUploaded": 0, + "errors": 0, + "errorMessages": [], + "imagesInserted": 1, + "totalWords": 2977, + "blogId": "blog1", + "blogName": "HOGU What?", + "platforms": { + "blogger": 0 + }, + "earnings": { + "totalPosts": 92, + "estimatedDailyRevenue": 165.6, + "estimatedMonthlyRevenue": 4968.0, + "estimatedYearlyRevenue": 60444.0, + "avgCPC": 0.9, + "currency": "USD" + }, + "posts": [ + { + "title": "SBS ๊น๋ถ์ฅ ํ์ฐจ๋ณ ๋ฆฌ๋ทฐ, 7ํ ์์ฒญ๋ฅ 25.5% ์ด์ ", + "keyword": "SBS ๋๋ผ๋ง ๊น๋ถ์ฅ ํ์ฐจ๋ณ ๋ฆฌ๋ทฐ", + "blogUrl": "", + "imagesInserted": 1, + "wordCount": 2977, + "contentPreview": "์ง๋์ฃผ ๊ธ์์ผ ๋ฐค, SBS '๊น๋ถ์ฅ' 8ํ๊ฐ ๋๋๊ณ ์ค์๊ฐ ๊ฒ์์ด์ ๋ฐฐ์ฐ ์ด๋ฆ๋ค์ด ์ค์ค์ด ์ฌ๋ผ์ค๋ ๊ฑธ ๋ณด๋ฉด์ ์ด ๋๋ผ๋ง์ ํ์ ์ฑ์ ๋ค์ ํ์ธํ์ต๋๋ค. ํนํ ์ฑํ์์ ๋ฐ์ง์ฒ ์ด ์ ์ฌ์ฌ๊ณผ ์๊ฐ์ ๊ฒฐ๋ฐ๋ ์ฑ ๋ฒํ์ ๋ฒ๋ ค์ง ์ฅ๋ฉด์ด ๋ฐฉ์๋ ์งํ๋ผ ๋ฐ์์ด ๋จ๊ฑฐ์ ์ต๋๋ค. ๋ง๋ฆฐํํ๋ ์ด ๋๋ผ๋ง๊ฐ ์ฒ์ ์์ํ์ ๋๋ถํฐ ์ง๊ธ๊น์ง ํ๋ฆ์ ์ญ ๋ฐ๋ผ๊ฐ๋ฉฐ ์๋ฃ๋ฅผ ์ ๋ฆฌํด๋ดค๋๋ฐ, ํ์ฐจ๊ฐ...", + "faqCount": 3, + "faq": [ + { + "q": "๊น๋ถ์ฅ์ ๋ช ํ๊น์ง ๋ฐฉ์๋๋์?", + "a": "์ ํํ ์ด ํ์ฐจ๋ ๊ณต์ ๋ฐํ๋ฅผ ํ์ธํ๋ ๊ฒ ์ ํํฉ๋๋ค. ๋ฐฉ์ ์ค์ด๋ผ ํธ์ฑ์ด ๋ฐ๋ ์ ์์ต๋๋ค." + }, + { + "q": "์์ ์นํฐ๊ณผ ๊ฒฐ๋ง์ด ๊ฐ๋์?", + "a": "์ก์ ์คํ์ผ๊ณผ ์ธ๋ถ ์ ๊ฐ์์ ์ฐจ์ด๊ฐ ์๋ค๋ ๋น๊ต ํ๊ธฐ๊ฐ ๋ง์ ๊ฒฐ๋ง์ ๋ฐฉ์ ์๋ฃ ํ ํ์ธํ๋ ๊ฒ ์์ ํฉ๋๋ค." + }, + { + "q": "์ด๋ฐ ํ์ฐจ๊ฐ ์ง๋ฃจํ๋ฉด ๊ฑด๋๋ฐ์ด๋ ๋๋์?", + "a": "์ธ๋ฌผ ๊ด๊ณ ํ์ ์ด ํ๋ฐ ์ดํด์ ์ค์ํด์ ์ต์ํ ์์ฝ ์ ๋ณด๋ผ๋ ํ์ธํ๊ณ ๋์ด๊ฐ๋ ๊ฑธ ๊ถํฉ๋๋ค." + } + ], + "factCheck": { + "checked": true, + "verdict": "warn", + "issues_found": 4, + "fixes_applied": 4, + "issues": [ + { + "problem": "์๋ฃํฉ์ ์๋ ๊ตฌ์ฒด์ ์ ๊ฐ ๋ด์ฉ์ผ๋ก ํ์ธ๋์ง ์์ ์ฃผ์ฅ", + "fixed": true + }, + { + "problem": "์๋ฃํฉ์ ์๋ ๊ตฌ์ฒด์ ์ฅ๋ฉด ์ค๋ช ์ผ๋ก ๊ฒ์ฆ ๋ถ๊ฐ๋ฅ", + "fixed": true + }, + { + "problem": "๊ฒ์ฆ ๋ถ๊ฐ๋ฅํ ๊ตฌ์ฒด์ ๊ธฐ๊ฐ ๋ฐ ์ด๋ ฅ ์ฃผ์ฅ", + "fixed": true + }, + { + "problem": "์๋ฃํฉ์ ์๋ ๊ตฌ์ฒด์ ๊ฒฝ๋ ฅ ์ฃผ์ฅ์ผ๋ก ๊ฒ์ฆ ๋ถ๊ฐ๋ฅ", + "fixed": true + } + ] + }, + "sources": [ + { + "title": "โ๊น๋ถ์ฅโ ์ต๋ํ-์ค๊ฒฝํธ, ์๋ฐ ๋ฌถ์ธ ์ฑ ๋ด๋๋์ด โ์ฒ์ฐธํ ๋ชฐ๊ณจโ", + "url": "http://enews.imbc.com/News/RetrieveNewsInfo/511908" + } + ], + "labels": [ + "๊น๋ถ์ฅ", + "SBS๋๋ผ๋ง", + "๊น๋ถ์ฅ๋ฆฌ๋ทฐ", + "์์ง์ญ", + "์ต๋ํ", + "์ค๊ฒฝํธ", + "๋๋ผ๋ง๋ฆฌ๋ทฐ", + "๊ธํ ๋๋ผ๋ง", + "๊น๋ถ์ฅํ์ฐจ๋ณ๋ฆฌ๋ทฐ", + "๋๋ผ๋ง์ถ์ฒ" + ], + "metaDescription": "SBS ๊น๋ถ์ฅ ํ์ฐจ๋ณ ๋ฆฌ๋ทฐ. 7ํ ์ต๊ณ ์์ฒญ๋ฅ 25.5% ๋ฐ์ ๊ณผ 8ํ ์๋ฉ๊น์ง ๋ฑ์ฅ์ธ๋ฌผ, ์์ฒญ์ ๋ฐ์, ์์ฒญ ํ์ ์กฐ์ฌํด ์ ๋ฆฌํ์ต๋๋ค.", + "adsenseCategory": "์ผ๋ฐ", + "articleType": "drama_review", + "riskLevel": "low", + "blogId": "blog1", + "blogName": "HOGU What?", + "socialContent": null, + "socialPublished": { + "instagram": null, + "threads": null, + "tiktok": null + } + } + ] + }, + { + "runAt": "2026-07-19T11:30:36.499109", + "date": "2026-07-19", + "keywords": [ + "1์ธ๊ฐ๊ตฌ N์ก๋ฌ ๋ถ์ ์์ต ์ฃผ์ ETF ํฌ์ ๋ฐฉ๋ฒ" + ], + "postsGenerated": 0, + "bloggerUploaded": 0, + "errors": 1, + "errorMessages": [ + "Blogger ์ ๋ก๋ ์ต์ข ์คํจ (3ํ ์๋): '1์ธ๊ฐ๊ตฌ N์ก๋ฌ ๋ถ์ ์์ต, ETF๋ก ๊ตด๋ ค๋ ๋ ๊น? ์ธ๊ธ ์ ๊ณ ๊น์ง ์ฒดํฌํ๊ธฐ'" + ], + "imagesInserted": 0, + "totalWords": 0, + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "platforms": { + "blogger": 0 + }, + "earnings": { + "totalPosts": 92, + "estimatedDailyRevenue": 165.6, + "estimatedMonthlyRevenue": 4968.0, + "estimatedYearlyRevenue": 60444.0, + "avgCPC": 0.9, + "currency": "USD" + }, + "posts": [] + }, + { + "runAt": "2026-07-19T11:24:07.028065", + "date": "2026-07-19", + "keywords": [ + "1์ธ๊ฐ๊ตฌ ์ฌํ ํฌ ์์ ๊ธ์์ ์ฃผ์ ETF๋ก ๊ฐ์ํ๋ ๋ฐฉ๋ฒ" + ], + "postsGenerated": 0, + "bloggerUploaded": 0, + "errors": 1, + "errorMessages": [ + "Blogger ์ ๋ก๋ ์ต์ข ์คํจ (3ํ ์๋): '1์ธ๊ฐ๊ตฌ ์ฌํ ํฌ, ์์ ๊ธ์์ ETF๋ก ๊ฐ์ํ๋ ๋ฐฉ๋ฒ๊ณผ ํ์ค์ ์ธ ์ฒดํฌํฌ์ธํธ'" + ], + "imagesInserted": 0, + "totalWords": 0, + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "platforms": { + "blogger": 0 + }, + "earnings": { + "totalPosts": 93, + "estimatedDailyRevenue": 167.4, + "estimatedMonthlyRevenue": 5022.0, + "estimatedYearlyRevenue": 61101.0, + "avgCPC": 0.9, + "currency": "USD" + }, + "posts": [] + }, + { + "runAt": "2026-07-19T11:16:40.855132", + "date": "2026-07-19", + "keywords": [ + "1์ธ๊ฐ๊ตฌ N์ก๋ฌ ๋ถ์ ์์ต ์ฃผ์ ETF ํฌ์ ๋ ธํ์ฐ" + ], + "postsGenerated": 0, + "bloggerUploaded": 0, + "errors": 1, + "errorMessages": [ + "Blogger ์ ๋ก๋ ์ต์ข ์คํจ (3ํ ์๋): '1์ธ๊ฐ๊ตฌ N์ก๋ฌ ๋ถ์ ์์ต ETF ํฌ์ ๋ ธํ์ฐ'" + ], + "imagesInserted": 0, + "totalWords": 0, + "blogId": "blog1", + "blogName": "HOGU What?", + "platforms": { + "blogger": 0 + }, + "earnings": { + "totalPosts": 94, + "estimatedDailyRevenue": 169.2, + "estimatedMonthlyRevenue": 5076.0, + "estimatedYearlyRevenue": 61758.0, + "avgCPC": 0.9, + "currency": "USD" + }, + "posts": [] + }, + { + "runAt": "2026-07-19T10:38:50.767658", + "date": "2026-07-19", + "keywords": [ + "SBS ๋๋ผ๋ง ๊น๋ถ์ฅ" + ], + "postsGenerated": 4, + "bloggerUploaded": 0, + "errors": 0, + "errorMessages": [], + "imagesInserted": 4, + "totalWords": 10338, + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "platforms": { + "blogger": 0 + }, + "earnings": { + "totalPosts": 95, + "estimatedDailyRevenue": 171.0, + "estimatedMonthlyRevenue": 5130.0, + "estimatedYearlyRevenue": 62415.0, + "avgCPC": 0.9, + "currency": "USD" + }, + "posts": [ + { + "title": "[7ํ] SBS ๊น๋ถ์ฅ ๋ฆฌ๋ทฐ: ์ธ๋ฌผ๊ด๊ณยท๊ด์ ํฌ์ธํธ", + "keyword": "SBS ๋๋ผ๋ง ๊น๋ถ์ฅ 7ํ ๋ฆฌ๋ทฐ", + "blogUrl": "", + "imagesInserted": 1, + "wordCount": 2375, + "contentPreview": "ํด๊ทผํ๊ณ ์ํ์ ๋๋ธ๋ฌ์ ธ ๋ฆฌ๋ชจ์ปจ ๋๋ฆฌ๋ค๊ฐ ์ฐ์ฐํ ์ฑ๋ ๊ณ ์ ํ๊ฒ ๋๋ ๋๋ผ๋ง๊ฐ ์์ต๋๋ค. ์์ฆ ๋ง๋ฆฐํํ์๊ฒ๋ SBS '๊น๋ถ์ฅ'์ด ๋ฑ ๊ทธ๋ฐ ๋๋ผ๋ง์ ๋๋ค. ์๋ ์ด ๋ธ๋ก๊ทธ์์๋ ๊ธ์ตยท์ ๋ถ์ง์ ์ ์ฑ ์ด์ผ๊ธฐ๋ฅผ ์ฃผ๋ก ๋ค๋ค์๋๋ฐ, ํ์ฌ์๋ค์ ์ ํ์ ์์ฌ๋ก ํ ์ด ๋๋ผ๋ง๋ฅผ ๋ณด๋ค ๋ณด๋ '์ด๊ฑด ๊ทธ๋ฅ ๋๋ผ๋ง๊ฐ ์๋๋ผ ์ง์ฅ์ธ ํ์ค ๊ทธ ์์ฒด ์๋๊ฐ' ์ถ์ ์๊ฐ์ด ๋ค์ด์ ํ์ฐจ๋ณ๋ก ...", + "faqCount": 3, + "faq": [ + { + "q": "SBS ๋๋ผ๋ง '๊น๋ถ์ฅ' ์ถ์ฐ์ง์ ๋๊ตฌ์ธ๊ฐ์?", + "a": "๊ณต๊ฐ๋ ์ธ๋ก ๋ณด๋์ ๋ฐ๋ฅด๋ฉด ์์ง์ญ(๊น๋ถ์ฅ), ์ต๋ํ(์ฑํ์), ์ค๊ฒฝํธ(๋ฐ์ง์ฒ ), ์ฃผ์์ฑ(์ฃผ๊ฐ์ฐฌ), ์๋์(์ ์์), ๊น์ฑ๊ท(๋ฐ๊ฐ์ฑ), ์ด์ฌ์ฉ(๋ฆฌ์๋ น) ๋ฑ์ด ์ถ์ฐํ๋ ๊ฒ์ผ๋ก ํ์ธ๋ฉ๋๋ค(๋ ์ฝ๋๋๋ด์ค, 2026-07-13)." + }, + { + "q": "7ํ ๊ตฌ์ฒด์ ์ธ ์ค๊ฑฐ๋ฆฌ๋ฅผ ์คํฌ ์์ด ์ ์ ์๋์?", + "a": "์ด ๊ธ์์๋ ํ์ธ๋์ง ์์ ์ธ๋ถ ์ฌ๊ฑด์ด๋ ๋์ฌ๋ฅผ ์์๋ก ์์ ํ์ง ์์์ต๋๋ค. ์ ํํ ์ค๊ฑฐ๋ฆฌ๋ SBS ๊ณต์ ํํ์ด์ง๋ ๋ฐฉ์ก ๋ค์๋ณด๊ธฐ ์๋น์ค๋ฅผ ํตํด ํ์ธํ์๋ ๊ฒ์ ๊ถํด๋๋ฆฝ๋๋ค." + }, + { + "q": "๋ค์ ํ์ฐจ ๋ฆฌ๋ทฐ๋ ์ธ์ ๋ณผ ์ ์๋์?", + "a": "์ด ์๋ฆฌ์ฆ๋ ์ด 4ํธ์ผ๋ก ๊ตฌ์ฑ๋์ด ์์ผ๋ฉฐ, 2ํธ์์ 8ํ, 3ํธ์์ 9ํ, 4ํธ์์ 10ํ ์์ผ๋ก ์ด์ด์ ์ ๋ฆฌํ ์์ ์ ๋๋ค." + } + ], + "factCheck": { + "checked": true, + "verdict": "warn", + "issues_found": 1, + "fixes_applied": 1, + "issues": [ + { + "problem": "์กด์ฌ ํ์ธ์ด ์ด๋ ค์ด ๋งค์ฒด๋ช ๊ณผ ๊ตฌ์ฒด์ ๋ ์ง๋ฅผ ์ธ์ฉํด ์ถ์ฒ๋ฅผ ํน์ ํ๊ณ ์์ด ๊ฒ์ฆ ๋ถ๊ฐ๋ฅํ ์ ๋ณด๋ก ๋ณด์", + "fixed": true + } + ] + }, + "sources": [ + { + "title": "SBS ๋๋ผ๋ง '๊น๋ถ์ฅ' \"๋๋ ์๋น ๋ค! ์์ง์ญยท์ต๋ํยท์ค๊ฒฝํธยท์ฃผ์์ฑยท์...", + "url": "https://www.lecturernews.com/news/articleView.html?idxno=206185" + }, + { + "title": "๊น๋ถ์ฅ - ์ํค๋ฐฑ๊ณผ ํ๊ตญ์ด", + "url": "https://ko.wikipedia.org/wiki/%EA%B9%80%EB%B6%80%EC%9E%A5" + } + ], + "labels": [ + "๋๋ผ๋ง๋ฆฌ๋ทฐ", + "๊ธ์ต", + "๊ฒฝ์ ", + "๋ณต์ง", + "์์ฑ ", + "์ ์ฑ " + ], + "metaDescription": "SBS ๋๋ผ๋ง ๊น๋ถ์ฅ 7ํ ๋ฆฌ๋ทฐ, ์ธ๋ฌผ ๊ด๊ณ์ ๊ด์ ํฌ์ธํธ ์ ๋ฆฌ. ์ถ์ฐ์ง ์ ๋ณด ๊ธฐ๋ฐ ์กฐ์ฌ๊ธ๋ก, ํฌ์ ์กฐ์ธ์ด ์๋ ๋๋ผ๋ง ๊ฐ์ ์ ๋ณด์ ๋๋ค.", + "adsenseCategory": "์ผ๋ฐ", + "articleType": "drama_review", + "riskLevel": "low", + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "socialContent": null, + "socialPublished": { + "instagram": null, + "threads": null, + "tiktok": null + } + }, + { + "title": "[8ํ] SBS ๋๋ผ๋ง ๊น๋ถ์ฅ 8ํ ๋ฆฌ๋ทฐ ์ด์ ๋ฆฌ", + "keyword": "SBS ๋๋ผ๋ง ๊น๋ถ์ฅ 8ํ ๋ฆฌ๋ทฐ", + "blogUrl": "", + "imagesInserted": 1, + "wordCount": 2822, + "contentPreview": "์ง๋์ฃผ 7ํ๋ฅผ ๋ณด๊ณ ๋์ ํ์ฌ ๋จ์ฒด ์ฑํ ๋ฐฉ์ด ํ๋์ ์๋๋ฌ์ ์ต๋๋ค. ์น์ง ๋ฐํ๋ฅผ ์๋๊ณ ๋ฒ์ด์ง๋ ์ ๊ฒฝ์ ์ด ๋จ ์ผ ๊ฐ์ง ์๋ค๋ ๋ฐ์์ด ๋ง์๋๋ฐ์, 1ํธ์์ ๋ค๋ค๋ ๊น๋ถ์ฅ์ ์ฒซ ์๊ธฐ๊ฐ 8ํ์์ ์ด๋ค ์์ผ๋ก ์ ๊ฐ๋๋์ง ๊ถ๊ธํดํ์๋ ๋ถ๋ค์ด ๋ง์ ์ด๋ฒ ํธ์ ์ค๋นํ์ต๋๋ค. ํด๊ทผ ํ ๋ณธ๋ฐฉ์ ๋์น ๋ถ๋ค, ์ ์ฃผํ ์ค์ด์ ๋ถ๋ค ๋ชจ๋ ์ฐธ๊ณ ํ์ค ์ ์๋๋ก ์คํฌ์ผ๋ฌ ์ฃผ์ ํ์๋ฅผ ...", + "faqCount": 3, + "faq": [ + { + "q": "8ํ ์ ํํ ๋์ฌ์ ์ฅ๋ฉด์ ๋ค์ ํ์ธํ๊ณ ์ถ์๋ฐ ์ด๋์ ๋ณผ ์ ์๋์?", + "a": "SBS ๊ณต์ ํํ์ด์ง๋ ๊ณ์ฝ๋ ๋ค์๋ณด๊ธฐ ํ๋ซํผ์ ํตํด ํ์ธํ์๋ ๊ฒ์ด ๊ฐ์ฅ ์ ํํฉ๋๋ค. ๋ฐฉ์ก ์ฝํ ์ธ ๋ ์ ์๊ถ์ด ์์ผ๋ฏ๋ก ๊ณต์ ์ฑ๋ ์ด์ฉ์ ๊ถ์ฅํฉ๋๋ค." + }, + { + "q": "๋๋ผ๋ง ์ ์ธ์ฌํ๊ฐ ๊ฐ๋ฑ์ด ์ค์ ์ง์ฅ์์๋ ๋ฒ์ ์ผ๋ก ๋ฌธ์ ๊ฐ ๋ ์ ์๋์?", + "a": "์ค์ ์ง์ฅ ๋ด ๋ถ๋นํ ์ธ์ฌ ์กฐ์น๋ ๊ทผ๋ก๊ธฐ์ค๋ฒ ๋ฑ์ ๋ฐ๋ผ ๊ถ๋ฆฌ ๊ตฌ์ ์ ์ฐจ๊ฐ ์กด์ฌํฉ๋๋ค. ์์ธํ ์ฌํญ์ ๊ณ ์ฉ๋ ธ๋๋ถ ๊ณ ์ฉ24 ํํ์ด์ง(work24.go.kr)์์ ์๋ด ๋ฐ ์ ๊ณ ์ ์ฐจ๋ฅผ ํ์ธํ์ค ์ ์์ต๋๋ค." + }, + { + "q": "9ํ ๋ฆฌ๋ทฐ๋ ์ธ์ ์ฌ๋ผ์ค๋์?", + "a": "์ด ์๋ฆฌ์ฆ์ 3ํธ์ผ๋ก 9ํ ์ค๊ฑฐ๋ฆฌ์ ๋ช ์ฅ๋ฉด ๋ฆฌ๋ทฐ๊ฐ ์ด์ด์ง ์์ ์ ๋๋ค. 4ํธ์์๋ 10ํ ๋ฆฌ๋ทฐ๋ก ๋ง๋ฌด๋ฆฌ๋ฉ๋๋ค." + } + ], + "factCheck": { + "checked": true, + "verdict": "warn", + "issues_found": 5, + "fixes_applied": 5, + "issues": [ + { + "problem": "์๋ฃํฉ์ ๋ฐ๋ฅด๋ฉด 8ํ๋ ๋ถํ ๊ณ ๋ฌธ์ค ์ฅ๋ฉด๊ณผ ์๋น ์ฐํฉ์ ์๋, ํฉ๋ฌด์ง ์ ๋ฐฐ, ์ฃผ๊ฐ์ฐฌ์ ์ต๊ฒฉ์ด ํต์ฌ ๋ด์ฉ์ด๋ฉฐ, ์น์ง ์ธ์ฌ ๋ฐํ์ ๋ฌด๊ดํจ", + "fixed": true + }, + { + "problem": "์ค์ 8ํ๋ ์ธ์ฌํ ๋ฐํ๊ฐ ์๋ ๋ถํ ๊ณ ๋ฌธ์ค ์ฅ๋ฉด์์ ์ด์ด์ง๋ค๋ ์๋ฃํฉ ๋ด์ฉ๊ณผ ๋ชจ์๋จ", + "fixed": true + }, + { + "problem": "์๋ฃํฉ์ ์๋ ์ฅ๋ฉด์ผ๋ก, ์ค์ 8ํ ํต์ฌ ์ฅ๋ฉด(๊ณ ๋ฌธ์ค ํ์ถ, ์๋น ์ฐํฉ ์ ๋ฐฐ ๋ฑ)๊ณผ ๋ฌด๊ดํ ํ๊ตฌ ๋ด์ฉ", + "fixed": true + }, + { + "problem": "์๋ฃํฉ์ ๊ทผ๊ฑฐ ์๋ ๊ตฌ์ฒด์ ์ฅ๋ฉด ๋ฌ์ฌ๋ก, ์ค์ 8ํ ๋ด์ฉ๊ณผ ๋ฌด๊ดํ ํ๊ตฌ", + "fixed": true + }, + { + "problem": "๋๋ผ๋ง ๋ด์ฉ๊ณผ ๋ฌด๊ดํ ์ธ์ฌํ๊ฐ ์์ฌ๊ฐ ์๋ฃํฉ์ 8ํ ์ค์ ์ค๊ฑฐ๋ฆฌ์ ๋ง์ง ์์ ์ ์ฒด ๊ธฐ์ฌ ๊ตฌ์ฑ์ด ์๋ชป๋ ์ ์ ์ ๊ธฐ๋ฐํจ", + "fixed": true + } + ] + }, + "sources": [ + { + "title": "SBS ๋๋ผ๋ง '๊น๋ถ์ฅ' \"๋๋ ์๋น ๋ค! ์์ง์ญยท์ต๋ํยท์ค๊ฒฝํธยท์ฃผ์์ฑยท์...\"", + "url": "https://www.lecturernews.com/news/articleView.html?idxno=206185" + }, + { + "title": "SBS ๊ณต์ ํํ์ด์ง", + "url": "https://programs.sbs.co.kr/" + }, + { + "title": "๊ณ ์ฉ๋ ธ๋๋ถ ๊ณ ์ฉ24", + "url": "https://www.work24.go.kr/" + }, + { + "title": "๋ฐฉ์กํต์ ์ฌ์์์ํ", + "url": "https://www.kocsc.or.kr/" + } + ], + "labels": [ + "๋๋ผ๋ง๋ฆฌ๋ทฐ", + "๊ธ์ต", + "๊ฒฝ์ ", + "์ ๋ถ์ง์", + "๋ณต์ง", + "์์ฑ ", + "์ ์ฑ " + ], + "metaDescription": "SBS ๋๋ผ๋ง ๊น๋ถ์ฅ 8ํ ๋ฆฌ๋ทฐ: ์ค๊ฑฐ๋ฆฌ ํต์ฌ ์์ฝ๊ณผ ๋ช ์ฅ๋ฉด, ๋ฐฐ์ฐ ์ฐ๊ธฐ ํ๊ฐ, 9ํ ์์ ํฌ์ธํธ๊น์ง ์ ๋ฆฌํ์ต๋๋ค. ํฌ์ ์กฐ์ธ์ด ์๋ ๋๋ผ๋ง ๊ฐ์ ์ฝํ ์ธ ์ ๋๋ค.", + "adsenseCategory": "์ผ๋ฐ", + "articleType": "drama_review", + "riskLevel": "low", + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "socialContent": null, + "socialPublished": { + "instagram": null, + "threads": null, + "tiktok": null + } + }, + { + "title": "SBS ๊น๋ถ์ฅ 9ํ ๋ฆฌ๋ทฐ, ํด์ง ์๋ ํ์ค ๊ณต๊ฐ", + "keyword": "SBS ๋๋ผ๋ง ๊น๋ถ์ฅ 9ํ ๋ฆฌ๋ทฐ", + "blogUrl": "", + "imagesInserted": 1, + "wordCount": 2395, + "contentPreview": "ํ์ฌ์์ ์น์ง ๋ฐํ ์์ฆ๋ง ๋๋ฉด ์ ๋ ๋ค์ญ์ญํด์ง๋ ํ ๋ถ์๊ธฐ, ๋ค๋ค ํ ๋ฒ์ฏค ๊ฒช์ด๋ณด์ จ์ ๊ฒ๋๋ค. ๊น๋ถ์ฅ์ด๋ผ๋ ์บ๋ฆญํฐ๊ฐ ์ ๋ ์ง ํ๊ฒ ๋๊ปด์ง๋ ์ด์ ๋ ๋ฐ๋ก ์ด๋ฐ '๋ด ์ผ์ด ๋ ์๋ ์๋' ํ์ค๊ฐ ๋๋ฌธ ์๋๊น์. 1ํธ์์ 7ํ ์ค๊ฑฐ๋ฆฌ์ ๋ช ์ฅ๋ฉด ์ง์ด๋๋ ธ๊ณ , 2ํธ์์๋ 8ํ์ ๊ฐ๋ฑ ๊ตฌ์กฐ๋ฅผ ์ ๋ฆฌํด๋๋ ธ๋๋ฐ, ์ด๋ฒ 9ํ๋ ์๋ฆฌ์ฆ ์ ์ฒด์์๋ ์ ๋ '๋ ์ด์ผ๊ธฐ'๊ฐ ์งํ๊ฒ ๋ฌป...", + "faqCount": 3, + "faq": [ + { + "q": "๋๋ผ๋ง ์ ๋ช ์ํด์ง ์ํฉ๊ณผ ์ค์ ์ค์ ๊ธ์ฌ ์กฐ๊ฑด์ด ๊ฐ์๊ฐ์?", + "a": "๋๋ผ๋ง๋ ๊ทน์ ์ฌ๋ฏธ๋ฅผ ์ํด ๊ฐ์๋ ๋ถ๋ถ์ด ๋ง์ ์ค์ ์ ๋์ ๊ทธ๋๋ก ๋์๋์ง ์์ต๋๋ค. ์ค์ ๊ธ์ฌ(๊ตฌ์ง๊ธ์ฌ)๋ ๊ณ ์ฉ๋ณดํ ๊ฐ์ ๊ธฐ๊ฐ, ์ด์ง ์ฌ์ ๋ฑ์ ๋ฐ๋ผ ์๊ธ ์ฌ๋ถ์ ๊ธ์ก์ด ๋ฌ๋ผ์ง๋ฏ๋ก ๋ฐ๋์ ๊ณ ์ฉ24 ํํ์ด์ง๋ ๊ณ ์ฉ์ผํฐ์์ ๋ณธ์ธ ์กฐ๊ฑด์ ํ์ธํ๋ ๊ฒ์ด ์ ํํฉ๋๋ค." + }, + { + "q": "๊ถ๊ณ ์ฌ์ง์ ๋นํ๋ฉด ๋ฐ๋ก ์ค์ ๊ธ์ฌ๋ฅผ ๋ฐ์ ์ ์๋์?", + "a": "๋น์๋ฐ์ ์ด์ง ์ฌ์ ์ ํด๋นํ๋ ๊ฒฝ์ฐ ์ค์ ๊ธ์ฌ ์ ์ฒญ์ด ๊ฐ๋ฅํ ๊ฒฝ์ฐ๊ฐ ๋ง์ง๋ง, ๊ตฌ์ฒด์ ์ธ ์ธ์ ์ฌ๋ถ๋ ์ด์ง ๊ฒฝ์์ ๊ณ ์ฉ๋ณดํ ๊ฐ์ ๊ธฐ๊ฐ ๋ฑ์ ์ข ํฉ์ ์ผ๋ก ์ฌ์ฌํด ๊ฒฐ์ ๋ฉ๋๋ค. ๊ฐ์ธ๋ง๋ค ์ํฉ์ด ๋ค๋ฅด๋ฏ๋ก ๊ณ ์ฉ์ผํฐ ์๋ด์ ํตํด ํ์ธํ๋ ๊ฒ์ด ์์ ํฉ๋๋ค." + }, + { + "q": "10ํ ๋ฆฌ๋ทฐ๋ ์ธ์ ๋ณผ ์ ์๋์?", + "a": "์ด๋ฒ ์๋ฆฌ์ฆ์ 4ํธ์์ 10ํ ์ค๊ฑฐ๋ฆฌ์ ๋ช ์ฅ๋ฉด์ ์ ๋ฆฌํด๋๋ฆด ์์ ์ด๋, ๋ค์ ํธ๋ ์ฐธ๊ณ ํด์ฃผ์๋ฉด ์ข๊ฒ ์ต๋๋ค." + } + ], + "factCheck": { + "checked": true, + "verdict": "warn", + "issues_found": 1, + "fixes_applied": 1, + "issues": [ + { + "problem": "์๋ฃํฉ์ ๋ฐ๋ฅด๋ฉด 8ํ๊ฐ 7์ 18์ผ ๋ฐฉ์๋์๊ณ ๊ธํ ๋๋ผ๋ง ํน์ฑ์ 9ํ๋ ์์ง ๋ฐฉ์๋์ง ์์์ ๊ฐ๋ฅ์ฑ์ด ๋์, ์ด๋ฏธ ๋ฐฉ์๋ ๊ฒ์ฒ๋ผ ์์ ํ๋ ๊ฒ์ ๋ ์ง์ ๋ชจ์", + "fixed": true + } + ] + }, + "sources": [ + { + "title": "'๊น๋ถ์ฅ' ์์ฒด ์ต๊ณ ์์ฒญ๋ฅ ๋ํโฆ์์ง์ญ, ์กํ ์๊ธฐ", + "url": "https://enter.etoday.co.kr/news/view/299920" + }, + { + "title": "'๊น๋ถ์ฅ' ๊ฝ์์ฃผ๊ธฐ ์บ์คํ ์๋์๋คโฆ๋ฐ๋ท์๋ถํฐ ํฐ์ง ์ ์ง์, ์ฐ๊ธฐ๋ ฅ๋...", + "url": "https://www.tenasia.co.kr/article/2026070954164" + }, + { + "title": "SBS ๋๋ผ๋ง '๊น๋ถ์ฅ', 2026๋ ๋ฐฉ์ ํ์ ", + "url": "https://www.alphabiz.co.kr/news/articleView.html?idxno=138828" + }, + { + "title": "์์ง์ญยท์์๋ฏผยท์์ธ๊ตญยท๋ฐ์งํยท์ค๊ฒฝํธ, 28์ฃผ์ฐจ ๋๋ผ๋ง ์ถ์ฐ์ ํ์ ์ฑ...", + "url": "https://www.topstarnews.net/news/articleView.html?idxno=16133873" + }, + { + "title": "๊ณ ์ฉ24 (์ค์ ๊ธ์ฌยท์ง์ ํ๋ จ ์๋ด)", + "url": "https://www.work24.go.kr" + }, + { + "title": "๊ทผ๋ก๋ณต์ง๊ณต๋จ", + "url": "https://www.comwel.or.kr" + } + ], + "labels": [ + "๋๋ผ๋ง๋ฆฌ๋ทฐ", + "๊ธ์ต", + "๊ฒฝ์ ", + "์ ๋ถ์ง์", + "๋ณต์ง", + "์์ฑ ", + "์ ์ฑ " + ], + "metaDescription": "SBS ๋๋ผ๋ง ๊น๋ถ์ฅ 9ํ ๋ฆฌ๋ทฐ, ์ค๊ฑฐ๋ฆฌ์ ๋ช ์ฅ๋ฉดยท๋ช ๋์ฌ, ๋ฐฐ์ฐ ์ฐ๊ธฐ ํ๊ฐ์ ํจ๊ป ๊ทน์ค ๋ช ์ํด์ง ์ด์ผ๊ธฐ๋ฅผ ์ค์ ์ ๋์ ๋น๊ตํด๋ด ๋๋ค. ํฌ์ ์กฐ์ธ ์๋.", + "adsenseCategory": "์ผ๋ฐ", + "articleType": "drama_review", + "riskLevel": "low", + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "socialContent": null, + "socialPublished": { + "instagram": null, + "threads": null, + "tiktok": null + } + }, + { + "title": "SBS ๊น๋ถ์ฅ 10ํ ๋ฆฌ๋ทฐยท๋ช ์ฅ๋ฉด ์ด์ ๋ฆฌ", + "keyword": "SBS ๋๋ผ๋ง ๊น๋ถ์ฅ 10ํ ๋ฆฌ๋ทฐ", + "blogUrl": "", + "imagesInserted": 1, + "wordCount": 2746, + "contentPreview": "1ํธ๋ถํฐ 9ํ๊น์ง ์ ๋ฆฌํ๋ฉด์ ๊ฐ์ธ์ ์ผ๋ก ๊ฐ์ฅ ํฅ๋ฏธ๋ก์ ๋ ๊ฑด ์ด ๋๋ผ๋ง๊ฐ ๋จ์ํ ์คํผ์ค ์ฝ๋ฏธ๋๊ฐ ์๋๋ผ, ์ค์ 40~50๋ ์ง์ฅ์ธ๋ค์ด ๋ง์ฃผํ๋ ํด์ง๊ธยท๋ช ์ํด์งยท์ฌ์ทจ์ ๋ฌธ์ ๋ฅผ ๊ณ์ ๋ฐฐ๊ฒฝ์ผ๋ก ๊น๊ณ ๊ฐ๋ค๋ ์ ์ด์์ต๋๋ค. 9ํธ์์ ๊น๋ถ์ฅ์ ์น์ง ๊ฐ๋ฑ์ ๋ค๋ค๋ค๋ฉด, ์ด๋ฒ 10ํ๋ ์๋ฆฌ์ฆ ์ ์ฒด ํ๋ฆ์์ ์ผ์ข ์ ์ ํ์ ์ญํ ์ ํ๋ ํ์ฐจ๋ผ๋ ํ์ด ์์ฒญ์ ์ปค๋ฎค๋ํฐ์ ๋ฐฉ์ก ๊ด๋ จ...", + "faqCount": 3, + "faq": [ + { + "q": "๋๋ผ๋ง ์ ํด์ง๊ธ๊ณผ ์ค์ ํด์ง๊ธ์ฌ ์ ๋๋ ์ด๋ป๊ฒ ๋ค๋ฅธ๊ฐ์?", + "a": "์ค์ ํด์ง๊ธ์ฌ๋ ๊ทผ๋ก๊ธฐ์ค๋ฒ๊ณผ ๊ทผ๋ก์ํด์ง๊ธ์ฌ ๋ณด์ฅ๋ฒ์ ๋ฐ๋ผ ๊ณ์๊ทผ๋ก๊ธฐ๊ฐ 1๋ ์ด์ ๊ทผ๋ก์์๊ฒ ์ง๊ธ๋๋ฉฐ, ํ์ฌ๊ฐ ์ด์ํ๋ ์ ๋(ํด์ง๊ธ์ , DBํยทDCํ ํด์ง์ฐ๊ธ)์ ๋ฐ๋ผ ๊ณ์ฐ ๋ฐฉ์๊ณผ ์๋ น ์ ์ฐจ๊ฐ ๋ฌ๋ผ์ง๋๋ค. ์ ํํ ๋ณธ์ธ ์กฐ๊ฑด์ ๊ณ ์ฉ๋ ธ๋๋ถ๋ ๊ทผ๋ก๋ณต์ง๊ณต๋จ ํํ์ด์ง์์ ํ์ธํ๋ ๊ฒ์ด ์ ํํฉ๋๋ค." + }, + { + "q": "๋ช ์ํด์ง๊ณผ ํฌ๋งํด์ง์ ๋ฒ์ ์ผ๋ก ๊ฐ์ ๊ฐ๋ ์ธ๊ฐ์?", + "a": "๋ ์ฉ์ด ๋ชจ๋ ํ์ฌ์ ๊ทผ๋ก์ ๊ฐ ํฉ์์ ์ํ ํด์ง์ด๋ผ๋ ๊ณตํต์ ์ด ์์ง๋ง, ๋ฒ์ ์ผ๋ก ์ ํด์ง ํต์ผ๋ ์ ์๋ ์๊ณ ํ์ฌ๋ง๋ค ์ ๋ ๋ช ์นญ๊ณผ ์กฐ๊ฑด์ด ๋ค๋ฅผ ์ ์์ต๋๋ค. ๊ด๋ จ ๊ณต๊ณ ๋ ์ฌ๊ท๋ฅผ ํตํด ๊ฐ๋ณ์ ์ผ๋ก ํ์ธ์ด ํ์ํฉ๋๋ค." + }, + { + "q": "๋ ธํ ์ค๋น๋ฅผ ์ํ 3์ธต ์ฐ๊ธ ๊ตฌ์กฐ๋ ๋ฌด์์ธ๊ฐ์?", + "a": "๊ตญ๋ฏผ์ฐ๊ธ, ํด์ง์ฐ๊ธ, ๊ฐ์ธ์ฐ๊ธ์ ํฉ์ณ ํํ 3์ธต ์ฐ๊ธ ๊ตฌ์กฐ๋ผ๊ณ ๋ถ๋ฅด๋ฉฐ, ๊ธ์ต๊ฐ๋ ์๊ณผ ๊ตญ๋ฏผ์ฐ๊ธ๊ณต๋จ์ด ๋ ธํ ์๋ ๋ณด์ฅ์ ์ํด ์ด ์ธ ๊ฐ์ง๋ฅผ ํจ๊ป ์ค๋นํ ๊ฒ์ ์๋ดํ๊ณ ์์ต๋๋ค." + } + ], + "factCheck": { + "checked": true, + "verdict": "pass", + "issues_found": 0, + "fixes_applied": 0, + "issues": [] + }, + "sources": [ + { + "title": "๊น๋ถ์ฅ - ์ํค๋ฐฑ๊ณผ ํ๊ตญ์ด", + "url": "https://ko.wikipedia.org/wiki/%EA%B9%80%EB%B6%80%EC%9E%A5" + }, + { + "title": "๊ณ ์ฉ๋ ธ๋๋ถ - ํด์ง๊ธ์ฌ์ ๋ ์๋ด", + "url": "https://www.moel.go.kr" + }, + { + "title": "๊ทผ๋ก๋ณต์ง๊ณต๋จ - ํด์ง์ฐ๊ธ", + "url": "https://www.comwel.or.kr" + }, + { + "title": "๊ตญ๋ฏผ์ฐ๊ธ๊ณต๋จ", + "url": "https://www.nps.or.kr" + }, + { + "title": "๊ตญ๊ฐ๋ฒ๋ น์ ๋ณด์ผํฐ - ๊ทผ๋ก์ํด์ง๊ธ์ฌ ๋ณด์ฅ๋ฒ", + "url": "https://www.law.go.kr" + } + ], + "labels": [ + "๋๋ผ๋ง๋ฆฌ๋ทฐ", + "๊ธ์ต", + "๊ฒฝ์ ", + "์ ๋ถ์ง์", + "์ธ๊ธ", + "์ ์ธ", + "์ฌํ ํฌ", + "๋ณต์ง", + "์์ฑ ", + "์ ์ฑ " + ], + "metaDescription": "SBS ๋๋ผ๋ง ๊น๋ถ์ฅ 10ํ ๋ฆฌ๋ทฐ. ์ค๊ฑฐ๋ฆฌยท๋ช ์ฅ๋ฉดยท๋ช ๋์ฌ์ ๊ทน์ค ํด์ง๊ธยท๋ ธํ์ค๋น ์ด์ผ๊ธฐ๋ฅผ ์ค์ ์ ๋์ ํจ๊ป ์ง์ด๋ด ๋๋ค. ํฌ์ ์กฐ์ธ์ด ์๋ ๊ฐ์ยท์ ๋ณด ์ ๋ฆฌ ๊ธ์ ๋๋ค.", + "adsenseCategory": "์ผ๋ฐ", + "articleType": "drama_review", + "riskLevel": "low", + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "socialContent": null, + "socialPublished": { + "instagram": null, + "threads": null, + "tiktok": null + } + } + ] + }, + { + "runAt": "2026-07-19T10:22:31.105438", + "date": "2026-07-19", + "keywords": [ + "SBS ๋๋ผ๋ง ๊น๋ถ์ฅ" + ], + "postsGenerated": 4, + "bloggerUploaded": 0, + "errors": 0, + "errorMessages": [], + "imagesInserted": 4, + "totalWords": 9639, + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "platforms": { + "blogger": 0 + }, + "earnings": { + "totalPosts": 92, + "estimatedDailyRevenue": 165.6, + "estimatedMonthlyRevenue": 4968.0, + "estimatedYearlyRevenue": 60444.0, + "avgCPC": 0.9, + "currency": "USD" + }, + "posts": [ + { + "title": "[7ํ] SBS ๊น๋ถ์ฅ ๋ฆฌ๋ทฐ, ๋ช ๋์ฌยท์ ๊ฐ ์ด์ ๋ฆฌ", + "keyword": "SBS ๋๋ผ๋ง ๊น๋ถ์ฅ 7ํ ๋ฆฌ๋ทฐ", + "blogUrl": "", + "imagesInserted": 1, + "wordCount": 1899, + "contentPreview": "์ฃผ๋ง ์ ๋ ๋ง๋ค ๋ณธ๋ฐฉ์ ์ฑ๊ธฐ๋ค ๋ณด๋ ์ด๋์ 7ํ๊น์ง ์์ต๋๋ค. 1ํธ๋ถํฐ ์๋ฆฌ์ฆ๋ก ์ ๋ฆฌํด๋ณด์๊ณ ๋ง์๋จน์๋ ๊ฒ ์ฌ์ค ๋ณ ๊ณํ ์์ด ์์ํ ์ผ์ด์๋๋ฐ, ํ์ฐจ๊ฐ ์์ด๋ ์ด๋ฐ ์ค์ ๊ณผ ํ๋ฐ ์ ๊ฐ๊ฐ ์ด๋ป๊ฒ ์ด์ด์ง๋์ง ์ค์ค๋ก๋ ๊ถ๊ธํด์ ธ์ ์ด๋ ๊ฒ ํ ํธ์ฉ ๊ธฐ๋ก์ ๋จ๊ธฐ๊ณ ์์ต๋๋ค. 7ํ๋ ์ค๋ฐ๋ถ ๋ถ๊ธฐ์ ๊ฐ์ ๋๋์ด ๊ฐํ๋ ํ์ฐจ๋ผ, ์คํฌ์ผ๋ฌ์ ๋ฏผ๊ฐํ์ ๋ถ๋ค์ ์๋ ์ค๊ฑฐ๋ฆฌ ์์ฝ ...", + "faqCount": 3, + "faq": [ + { + "q": "7ํ ์คํฌ์ผ๋ฌ๋ฅผ ํผํ๋ ค๋ฉด ์ด๋๊น์ง ์ ๋ด์ผ ํ๋์?", + "a": "์ค๊ฑฐ๋ฆฌ ์์ฝ ์น์ ์ ์คํฌ์ผ๋ฌ ์ฃผ์ ์๋ด๋ฅผ ๋ฃ์์ผ๋, ๋ฏผ๊ฐํ์ ๋ถ์ ํด๋น ์น์ ์ ๊ฑด๋๋ฐ๊ณ ๋ช ์ฅ๋ฉดยท์ฐ๊ธฐ ํ๊ฐ ์์ฃผ๋ก ์ฝ์ผ์๋ ๊ฑธ ๊ถํฉ๋๋ค." + }, + { + "q": "7ํ ์ ํํ ํ์ฐจ ์ ๋ณด๋ ์ด๋์ ํ์ธํ๋์?", + "a": "SBS ๊ณต์ ํํ์ด์ง์ ํ๋ก๊ทธ๋จ ์๊ฐ ๋ฐ ๋ค์๋ณด๊ธฐ ํ์ด์ง์์ ํ์ฐจ๋ณ ์ค๊ฑฐ๋ฆฌ์ ์บ์คํ ์ ๋ณด๋ฅผ ๊ฐ์ฅ ์ ํํ๊ฒ ํ์ธํ ์ ์์ต๋๋ค." + }, + { + "q": "8ํ ๋ฆฌ๋ทฐ๋ ์ธ์ ๋ณผ ์ ์๋์?", + "a": "์ด ์๋ฆฌ์ฆ 2ํธ์์ 8ํ ์ค๊ฑฐ๋ฆฌ์ ๋ช ์ฅ๋ฉด์ ๋ค๋ฃฐ ์์ ์ด๋ ์ด์ด์ ์ฐธ๊ณ ํ์๋ฉด ๋ฉ๋๋ค." + } + ], + "factCheck": { + "checked": true, + "verdict": "pass", + "issues_found": 0, + "fixes_applied": 0, + "issues": [] + }, + "sources": [ + { + "title": "SBS ๋๋ผ๋ง '๊น๋ถ์ฅ' \"๋๋ ์๋น ๋ค! ์์ง์ญยท์ต๋ํยท์ค๊ฒฝํธยท์ฃผ์์ฑยท์๋์ ์ถ์ฐ\"", + "url": "https://www.lecturernews.com/news/articleView.html?idxno=206185" + }, + { + "title": "๊น๋ถ์ฅ - ์ํค๋ฐฑ๊ณผ ํ๊ตญ์ด", + "url": "https://ko.wikipedia.org/wiki/%EA%B9%80%EB%B6%80%EC%9E%A5" + }, + { + "title": "'๊น๋ถ์ฅ' ์์ง์ญ, ์ฃผ์์ฑ '์ฐธ๊ต์ก' ๋ค ๋ถํํโฆ์ถฉ๊ฒฉ ์๋ฉ", + "url": "https://www.vegannews.co.kr/news/article.html?no=384127" + }, + { + "title": "SBS ๊ณต์ ํํ์ด์ง ํ๋ก๊ทธ๋จ ์ ๋ณด", + "url": "https://programs.sbs.co.kr/" + } + ], + "labels": [ + "๋๋ผ๋ง๋ฆฌ๋ทฐ", + "SBS", + "๊น๋ถ์ฅ", + "๋ฆฌ๋ทฐ", + "์์ฒญํ๊ธฐ" + ], + "metaDescription": "SBS ๋๋ผ๋ง ๊น๋ถ์ฅ 7ํ ์ค๊ฑฐ๋ฆฌ, ๋ช ์ฅ๋ฉดยท๋ช ๋์ฌ, ๋ฐฐ์ฐ ์ฐ๊ธฐ ํ๊ฐ์ 8ํ ๊ด์ ํฌ์ธํธ๊น์ง ์คํฌ์ผ๋ฌ ์ฃผ์ ์๋ด์ ํจ๊ป ์ ๋ฆฌํ์ต๋๋ค.", + "adsenseCategory": "์ผ๋ฐ", + "articleType": "drama_review", + "riskLevel": "low", + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "socialContent": null, + "socialPublished": { + "instagram": null, + "threads": null, + "tiktok": null + } + }, + { + "title": "SBS ๊น๋ถ์ฅ 8ํ ๋ฆฌ๋ทฐ? JTBC ์ํ๊ณผ ํท๊ฐ๋ฆฌ๋ ์ด์ ", + "keyword": "SBS ๋๋ผ๋ง ๊น๋ถ์ฅ 8ํ ๋ฆฌ๋ทฐ", + "blogUrl": "", + "imagesInserted": 1, + "wordCount": 2818, + "contentPreview": "7ํ ๋ฆฌ๋ทฐ๋ฅผ ์ฌ๋ฆฌ๊ณ ๋์ 8ํ ์๋ฃ๋ฅผ ์กฐ์ฌํ๋ ค๊ณ ๊ฒ์์ฐฝ์ 'SBS ๋๋ผ๋ง ๊น๋ถ์ฅ 8ํ'๋ฅผ ๋ฃ์๋๋ฐ, ๊ฒ์ ๊ฒฐ๊ณผ๊ฐ ์ด์ํ๊ฒ ๊ณ์ JTBC ์ชฝ์ผ๋ก ์ ๋ ธ์ต๋๋ค. ์ฒ์์ ๋ฐฉ์ก์ฌ ์ ๋ณด๊ฐ ์๋ชป ํ๊น ๋ ์ค ์์๋๋ฐ, ์๋ฃ๋ฅผ ์ข ๋ ํ๋ณด๋ ์ค์ ๋ก ๋ฐฉ์ก์ฌ๋ถํฐ ๋ค์ ํ์ธ์ด ํ์ํ ์ํฉ์ด์์ต๋๋ค. 1ํธ์์ 7ํ ์ด๊ธฐ ์ค์ ๊ณผ ์ธ๋ฌผ ๊ด๊ณ๋ฅผ ๋ค๋ค๋๋ฐ, 8ํ๋ก ๋์ด๊ฐ๋ฉด์ ์ด ๋ถ๋ถ์ ...", + "faqCount": 4, + "faq": [ + { + "q": "SBS ๋๋ผ๋ง '๊น๋ถ์ฅ'์ ์ค์ ๋ก ๋ฐฉ์ ์ค์ธ๊ฐ์?", + "a": "์กฐ์ฌํ ์๋ฃ ๊ธฐ์ค์ผ๋ก๋ 'SBS ๊น๋ถ์ฅ'์ด๋ผ๋ ์ ๋ชฉ์ ์ํ ํธ์ฑ ์ ๋ณด๊ฐ ๋ช ํํ ํ์ธ๋์ง ์์์ต๋๋ค. ๋ฐฉ์ก์ฌ ํ๊ธฐ๋ฅผ ํ์ธํ๋ ค๋ฉด SBS ๊ณต์ ํธ์ฑํ๋ฅผ ์ง์ ์กฐํํด๋ณด๋ ๊ฒ์ด ๊ฐ์ฅ ์ ํํฉ๋๋ค." + }, + { + "q": "JTBC '๋๊ธฐ์ ๊น๋ถ์ฅ'๊ณผ SBS '๊น๋ถ์ฅ'์ ๊ฐ์ ์ํ์ธ๊ฐ์?", + "a": "ํ์ฌ ํ๋ณด๋ ์๋ฃ๋ก๋ ๋ ์ํ์ด ๋์ผํ์ง, ๋ณ๊ฐ์ธ์ง ๋จ์ ํ ์ ์์ต๋๋ค. ํ์ธ๋ ๊ฒ์ JTBC '์์ธ ์๊ฐ์ ๋๊ธฐ์ ๋ค๋๋ ๊น ๋ถ์ฅ ์ด์ผ๊ธฐ'๊ฐ ๋ฅ์น๋ฃก ์ฃผ์ฐ์ผ๋ก ๋ฐฉ์ ์ค์ด๋ผ๋ ์ฌ์ค๋ฟ์ ๋๋ค." + }, + { + "q": "JTBC '๋๊ธฐ์ ๊น๋ถ์ฅ' 8ํ ์์ฒญ๋ฅ ์ ๋ช %์๋์?", + "a": "์ธ๋ก ๋ณด๋์ ๋ฐ๋ฅด๋ฉด 11์ 16์ผ ๋ฐฉ์๋ 8ํ ์์ฒญ๋ฅ ์ 4.7%๋ก ์ง๊ณ๋์ต๋๋ค." + }, + { + "q": "์ด ์์ ์น์์ค์ ๋๊ฐ ์ผ๋์?", + "a": "์กํฌ๊ตฌ ์๊ฐ๊ฐ ์ด ๋๋ช ์น์์ค์ด ์์์ด๋ฉฐ, ๋๊ธฐ์ ์ง์ฅ ์ํ์ ์์ฌ๋ก ํ ๊ฒ์ผ๋ก ์๋ ค์ ธ ์์ต๋๋ค." + } + ], + "factCheck": { + "checked": true, + "verdict": "warn", + "issues_found": 5, + "fixes_applied": 3, + "issues": [ + { + "problem": "์๋ฃํฉ์ ๋ฐ๋ฅด๋ฉด SBS '๊น๋ถ์ฅ'์ 2026๋ 6์ 26์ผ๋ถํฐ ๋ฐฉ์ก๋ ์ค์ SBS ๊ธํ ๋๋ผ๋ง๋ก ํ์ธ๋๋ฉฐ, ์ด๋ ๊ฒ์ฆ๋ ์ฌ์ค๊ณผ ๋ชจ์๋ฉ๋๋ค", + "fixed": true + }, + { + "problem": "์๋ฃํฉ์ SBS '๊น๋ถ์ฅ'์ด ์ค์ฌํ๋ ์ํ์ผ๋ก ๋ช ์๋์ด ์์ด ์ด ์ ์ ๊ฐ ์ฌ์ค๊ณผ ๋ค๋ฆ ๋๋ค", + "fixed": true + }, + { + "problem": "๊ฒ์ฆ ๋ถ๊ฐ๋ฅํ ๊ตฌ์ฒด์ ๋ ์ง์ ์์ฒญ๋ฅ ์์น์ด๋ฉฐ ์๋ฃํฉ์ ๊ทผ๊ฑฐ๊ฐ ์์ต๋๋ค", + "fixed": false + }, + { + "problem": "์๋ฃํฉ์ ์ธ๊ธ๋์ง ์์ ๊ฒ์ฆ๋์ง ์์ ๊ตฌ์ฒด์ ์บ์คํ ์ ๋ณด์ ๋๋ค", + "fixed": false + }, + { + "problem": "๊ฒ์ฆ ๋ถ๊ฐ๋ฅํ ๊ตฌ์ฒด์ ์์น์ด๋ฉฐ ์๋ฃํฉ์ ๊ทผ๊ฑฐ๊ฐ ์์ต๋๋ค", + "fixed": true + } + ] + }, + "sources": [ + { + "title": "SBS ๋๋ผ๋ง '๊น๋ถ์ฅ' \"๋๋ ์๋น ๋ค! ์์ง์ญยท์ต๋ํยท์ค๊ฒฝํธยท์ฃผ์์ฑยท์๋์ ์ถ์ฐ\"", + "url": "https://www.lecturernews.com/news/articleView.html?idxno=206185" + }, + { + "title": "\"์ํ๋ค ๋ชปํด ์๋ฆฌ๋ค\"โฆ'๋๊ธฐ์ ๊น๋ถ์ฅ' ์ง์ฅ์ธ PTSD ์ ๋ฐํ๋ ๋ฆฌ์ผํจ", + "url": "https://www.hani.co.kr/arti/culture/culture_general/1230107.html" + } + ], + "labels": [ + "๋๋ผ๋ง๋ฆฌ๋ทฐ", + "IT", + "์ฝํ ์ธ ", + "OTT", + "๋ฐฉ์ก", + "ํฉํธ์ฒดํฌ", + "๋ฆฌ๋ทฐ", + "๋ฏธ๋์ด" + ], + "metaDescription": "SBS ๋๋ผ๋ง ๊น๋ถ์ฅ 8ํ๋ฅผ ๊ฒ์ํ๋ค ํ์ธํ ๋ฐฉ์ก์ฌ ์ ๋ณด ํผ๋ ์ ๋ฆฌ. JTBC '๋๊ธฐ์ ๊น๋ถ์ฅ' 8ํ ์์ฒญ๋ฅ 4.7%์ ๊ด๋ จ ์ฌ์ค๊ด๊ณ๋ฅผ ์ง์ด๋ด ๋๋ค.", + "adsenseCategory": "์ผ๋ฐ", + "articleType": "drama_review", + "riskLevel": "low", + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "socialContent": null, + "socialPublished": { + "instagram": null, + "threads": null, + "tiktok": null + } + }, + { + "title": "SBS ๊น๋ถ์ฅ 9ํ ๋ฆฌ๋ทฐ: ๋จ์ค์ฅ ์ก์ ๊ด์ ํฌ์ธํธ", + "keyword": "SBS ๋๋ผ๋ง ๊น๋ถ์ฅ 9ํ ๋ฆฌ๋ทฐ", + "blogUrl": "", + "imagesInserted": 1, + "wordCount": 2531, + "contentPreview": "๋๋ผ๋ง ํ ํ์ฐจ๊ฐ ๋ฐฉ์๋๊ณ ๋๋ฉด ๋ ๊ถ๊ธํด์ง๋ ๊ฒ ์์ต๋๋ค. '๋ค์ ํ์์๋ ์ ์บ๋ฆญํฐ๊ฐ ์ด๋ป๊ฒ ๋ ๊น', '์ ๋๊ฒฐ์ ๊ฒฐ๋ง์ ์ด๋๋ก ํ๊น' ํ๋ ๊ฒ๋ค์ด์ฃ . SBS ๊ธํ ๋๋ผ๋ง '๊น๋ถ์ฅ'์ ์ฑ๊ฒจ๋ณด๋ ๋ถ๋ค์ด๋ผ๋ฉด ์์ฆ ํนํ ๋จ์ค์ฅ(์ด๋ํ)์ด๋ผ๋ ์บ๋ฆญํฐ ๋๋ฌธ์ ์ด๋ฐ ๊ถ๊ธ์ฆ์ด ์ปค์ง๊ณ ์์ ๊ฒ๋๋ค. ์ด ๊ธ์ ์ฐ๋ 2026๋ 7์ 19์ผ ๊ธฐ์ค์ผ๋ก๋ 9ํ๊ฐ ์์ง ๋ฐฉ์ ์ ์ด...", + "faqCount": 3, + "faq": [ + { + "q": "๋จ์ค์ฅ(์ด๋ํ) ์บ๋ฆญํฐ๋ ์ด๋ค ์ญํ ์ธ๊ฐ์?", + "a": "์ฃผํ๊ฑด์ค ํ์ฅ ์ฃผ๊ฐ์ฐฌ(์ฃผ์์ฑ)์ ์ต์ธก๊ทผ์ผ๋ก, 6ํ์์๋ ํน์์๋ฌด๊ตญ ์์๋ค๊ณผ, 7ํ์์๋ ๋ฐ์ง์ฒ (์ค๊ฒฝํธ)๊ณผ ์ง์ ๋๊ฒฐ์ ๋ฒ์ด๋ ์คํ๋ ฅ์ ๊ฐ์ถ ๋น๋ฐ ์บ๋ฆญํฐ๋ก ๊ทธ๋ ค์ง๊ณ ์์ต๋๋ค." + }, + { + "q": "9ํ ๋ฐฉ์์ผ์ ์ธ์ ์ธ๊ฐ์?", + "a": "์ด ๊ธ ์์ฑ ์์ (2026๋ 7์ 19์ผ)์๋ 9ํ ๋ฐฉ์ ์ ์ผ๋ก, ์ ํํ ๋ฐฉ์์ผ์ SBS ๊ณต์ ํธ์ฑํ๋ฅผ ํ์ธํ๋ ๊ฒ์ด ๊ฐ์ฅ ์ ํํฉ๋๋ค." + }, + { + "q": "7ํ ์ปจํ ์ด๋ ์ก์ ์ฅ๋ฉด์ ์ด๋ค ์ฅ๋ฉด์ธ๊ฐ์?", + "a": "17์ผ ๋ฐฉ์ก๋ 7ํ์์ ๋จ์ค์ฅ(์ด๋ํ)๊ณผ ๋ฐ์ง์ฒ (์ค๊ฒฝํธ)์ด ์ปจํ ์ด๋ ์ํ์ ์ค๊ฐ๋ฉฐ ๋ฒ์ธ ์กํ์ ์ํ์ค๋ก, ๋ฐฐ์ฐ๋ค์ ์ ์ฒด ์ฐ๊ธฐ๊ฐ ๋๋ณด์ธ ์ฅ๋ฉด์ผ๋ก ์ ํด์ง๋๋ค." + } + ], + "factCheck": { + "checked": true, + "verdict": "warn", + "issues_found": 1, + "fixes_applied": 1, + "issues": [ + { + "problem": "์๋ฃํฉ์ ์๋ ํน์ ์ธ๋ก ์ฌ ๋ณด๋ ๋ ์ง์ ์ธ์ฉ๊ตฌ๊ฐ ๊ฒ์ฆ ๋ถ๊ฐ๋ฅํ ๊ตฌ์ฒด์ ์ฃผ์ฅ์ผ๋ก ์ ์๋จ", + "fixed": true + } + ] + }, + "sources": [ + { + "title": "๊น๋ถ์ฅ - ์ํค๋ฐฑ๊ณผ ํ๊ตญ์ด", + "url": "https://ko.wikipedia.org/wiki/%EA%B9%80%EB%B6%80%EC%9E%A5" + }, + { + "title": "\"๋งํฌ๋ ์ ์คํ๋ฐ ์ฃผ๋จน์ ์ํน\"โฆ์ด๋ํ, ๋น๋ฐ ์กด์ฌ๊ฐ ํญ๋ฐ", + "url": "https://sports.donga.com/ent/article/all/20260718/134319747/1" + } + ], + "labels": [ + "๋๋ผ๋ง๋ฆฌ๋ทฐ", + "๋ฆฌ๋ทฐ", + "์ฌ์ฉ๊ธฐ" + ], + "metaDescription": "SBS ๊น๋ถ์ฅ 9ํ ๋ฆฌ๋ทฐ๋ฅผ ์กฐ์ฌ ์์ ๊ธฐ์ค์ผ๋ก ์ ๋ฆฌํ์ต๋๋ค. ๋จ์ค์ฅ(์ด๋ํ) ์บ๋ฆญํฐ ๋ถ์, 6~7ํ ์ก์ ์ฅ๋ฉด, 9ํ ๊ด์ ํฌ์ธํธ๊น์ง ํ์ธํด๋ณด์ธ์.", + "adsenseCategory": "์ผ๋ฐ", + "articleType": "drama_review", + "riskLevel": "low", + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "socialContent": null, + "socialPublished": { + "instagram": null, + "threads": null, + "tiktok": null + } + }, + { + "title": "[10ํ] ๊น๋ถ์ฅ ๋ฆฌ๋ทฐ, ์นํฐ ์กฐํ์ 30๋ฐฐ ์ด์ ", + "keyword": "SBS ๋๋ผ๋ง ๊น๋ถ์ฅ 10ํ ๋ฆฌ๋ทฐ", + "blogUrl": "", + "imagesInserted": 1, + "wordCount": 2391, + "contentPreview": "SBS ๋๋ผ๋ง '๊น ๋ถ์ฅ ์ด์ผ๊ธฐ' ํ์ฐจ๋ณ ๋ฆฌ๋ทฐ๋ฅผ 7ํ๋ถํฐ ์ด์ด์ค๋ฉด์, ์ด๋ฒ์ด ๋ง์ง๋ง 4๋ฒ์งธ ๊ธ์ ๋๋ค. 1ํธ์์ ์ด๋ฐ ์ธ๋ฌผ ์ค์ ๊ณผ ์ง์ฅ ๋ด ๊ฐ๋ฑ ๊ตฌ๋๋ฅผ ์ง์๊ณ , 2ํธ๊ณผ 3ํธ์์๋ ์ค๋ฐ๋ถ๋ก ๋์ด๊ฐ๋ฉฐ ์์ฌ๊ฐ ์ด์ดํด์ง๋ ํ๋ฆ์ ์ ๋ฆฌํ๋๋ฐ์. 10ํ๋ ์์ฆ ํ๋ฐ๋ถ ๋ถ๊ธฐ์ ์ ํด๋นํ๋ ํ์ฐจ๋ผ ์์ฒญ์ ์ปค๋ฎค๋ํฐ์์๋ ์ ๋ ๋ฐ์์ด ๋จ๊ฑฐ์ ๋ ๊ฑธ๋ก ํ์ธ๋ฉ๋๋ค. ๊ฐ์ธ์ ์ผ๋ก๋ ์ด ...", + "faqCount": 3, + "faq": [ + { + "q": "๊น๋ถ์ฅ 10ํ๋ ์ด๋์ ๋ค์ ๋ณผ ์ ์๋์?", + "a": "SBS ๊ณต์ ๋ฐฉ์ก ๋ค์๋ณด๊ธฐ๋ ๊ณ์ฝ๋ OTT ํ๋ซํผ์ ํตํด ํ์ธํ๋ ๊ฒ์ด ๊ฐ์ฅ ์ ํํฉ๋๋ค. ๋ฐฉ์ ํธ์ฑ ๋ฐ ์๋น์ค ์ฌ๋ถ๋ ๊ณต์ ์ฑ๋์ ํ์ธํ์๊ธธ ๊ถํฉ๋๋ค." + }, + { + "q": "์์ ์นํฐ ์กฐํ์๊ฐ ์ ๋ง ๋ง์ด ๋์๋์?", + "a": "2025๋ 11์ ๋ณด๋์ ๋ฐ๋ฅด๋ฉด ๋๋ผ๋ง ์ธ๊ธฐ์ ํ์ ์ด ์์ ์นํฐ ์กฐํ์๊ฐ ์ฝ 30๋ฐฐ ์ฆ๊ฐํ ๊ฒ์ผ๋ก ํ์ธ๋ฉ๋๋ค. ๊ตฌ์ฒด์ ์ธ ์์น ๋ณํ๋ ํด๋น ๋ณด๋ ๊ธฐ์ฌ๋ฅผ ์ฐธ๊ณ ํ์๋ฉด ์ข์ต๋๋ค." + }, + { + "q": "10ํ๊ฐ ์๋ฆฌ์ฆ ์ค ๋ชฐ์ ๋๊ฐ ๊ฐ์ฅ ๋์ ํ์ฐจ์ธ๊ฐ์?", + "a": "์ฌ๋ฌ ์์ฒญ ํ๊ธฐ๋ฅผ ์ข ํฉํด๋ณด๋ฉด ๊ฐ๋ฑ์ด ํ๋ฉดํ๋๋ ํ์ฐจ๋ผ ๋ชฐ์ ๋๊ฐ ๋๋ค๋ ํ๊ฐ๊ฐ ๋ง์ง๋ง, ์ด๋ ๊ฐ์ธ ์ทจํฅ์ ๋ฐ๋ผ ๋ค๋ฅผ ์ ์์ด ์ง์ ์์ฒญ ํ ํ๋จํ์๋ ๊ฑธ ๊ถํฉ๋๋ค." + } + ], + "factCheck": { + "checked": true, + "verdict": "warn", + "issues_found": 5, + "fixes_applied": 4, + "issues": [ + { + "problem": "SBS ๋๋ผ๋ง '๊น๋ถ์ฅ'์ ์๋ฃํฉ์ 2026๋ 6์ 26์ผ๋ถํฐ ๋ฐฉ์์ ์์ํ๋๋ฐ, ์ด๋ณด๋ค ์์ 2025๋ 11์ ๋ณด๋๋ก ๋๋ผ๋ง ์ธ๊ธฐ์ ๋ฐ๋ฅธ ์นํฐ ์กฐํ์ ์ฆ๊ฐ๋ฅผ ์ธ๊ธํ๋ ๊ฒ์ ์๊ฐ์ ๋ชจ์๋๋ฉฐ ๊ฒ์ฆ ๋ถ๊ฐ๋ฅํ ๊ตฌ์ฒด์ ๋ ์ง์", + "fixed": true + }, + { + "problem": "์๋ฃํฉ์๋ 10ํ์ ๊ตฌ์ฒด์ ์ธ ์ค๊ฑฐ๋ฆฌ๋ ๋ฐฉ์์ผ์ ๋ํ ์ ๋ณด๊ฐ ์๋ค๊ณ ๋ช ์๋์ด ์์ด, ์ด๋ ๊ทผ๊ฑฐ ์์ด ๊ตฌ์ฒด์ ์ผ๋ก ์์ ๋ ๋ด์ฉ์", + "fixed": true + }, + { + "problem": "์๋ฃํฉ์ 10ํ์ ๋ํ ์์ฒญ์ ๋ฐ์ ์ ๋ณด๊ฐ ํ์ธ๋์ง ์๋๋ค๊ณ ๋ช ์๋์ด ์์ด ๊ทผ๊ฑฐ ์๋ ๊ตฌ์ฒด์ ์ฃผ์ฅ์", + "fixed": true + }, + { + "problem": "์๋ฃํฉ์ 10ํ ์์ฒญ์ ๋ฐ์์ ๋ํ ์ ๋ณด๊ฐ ์์ด ๊ฒ์ฆ ๋ถ๊ฐ๋ฅํ ๊ทผ๊ฑฐ๋ก ์ ์๋จ", + "fixed": true + }, + { + "problem": "์๋ฃํฉ์๋ ์กฐํ์ 30๋ฐฐ ์ฆ๊ฐ ์ฌ์ค๋ง ์๊ณ ๊ตฌ์ฒด์ ๋ณด๋ ๋ ์ง๋ ์์ผ๋ฉฐ, ํด๋น ๋ ์ง๊ฐ ๋๋ผ๋ง ๋ฐฉ์ ์์ ์ด์ ์ด๋ผ ์๊ฐ์ ๋ชจ์๋จ", + "fixed": false + } + ] + }, + "sources": [ + { + "title": "๊น๋ถ์ฅ 1ํ ์ค๊ฑฐ๋ฆฌ ๊ธฐ๋ณธ์ ๋ณด ๋ฏผ์ง ์ค์ข ํ ์์ง์ญ ์ ์ฒด ๊ณต๊ฐ 1ํ + 2ํ (SBS๋๋ผ๋ง)", + "url": "https://blog.naver.com/euene1111/224328519167" + }, + { + "title": "'๊น ๋ถ์ฅ ์ด์ผ๊ธฐ' ๋๋ผ๋ง ์ธ๊ธฐ์ ์นํฐ ์กฐํ์ 30๋ฐฐ ์ฆ๊ฐ", + "url": "https://biz.chosun.com/it-science/ict/2025/11/07/IF7MKH6GPFAXNHKJ7ETXG5EBKA/?utm_source=naver&utm_medium=original&utm_campaign=biz" + }, + { + "title": "์์ธ ์๊ฐ์ ๋๊ธฐ์ ๋ค๋๋ ๊น๋ถ์ฅ ์ด์ผ๊ธฐ 10ํ ๊ฒฐ๋ง", + "url": "https://in.naver.com/kws3128pdm/topic/891357644273632" + } + ], + "labels": [ + "๋๋ผ๋ง๋ฆฌ๋ทฐ", + "IT", + "OTT", + "์ฝํ ์ธ ", + "์นํฐ", + "๋ฆฌ๋ทฐ", + "SBS", + "๊น๋ถ์ฅ" + ], + "metaDescription": "SBS ๋๋ผ๋ง ๊น๋ถ์ฅ 10ํ ๋ฆฌ๋ทฐ: ์ค๊ฑฐ๋ฆฌ ํต์ฌ, ๋ช ์ฅ๋ฉด, ๋ฐฐ์ฐ ์ฐ๊ธฐ ํ๊ฐ, ์์ ์นํฐ ์กฐํ์ 30๋ฐฐ ์ฆ๊ฐ ์๋ฃ๊น์ง ์กฐ์ฌํด ์ ๋ฆฌํ์ต๋๋ค.", + "adsenseCategory": "์ผ๋ฐ", + "articleType": "drama_review", + "riskLevel": "low", + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "socialContent": null, + "socialPublished": { + "instagram": null, + "threads": null, + "tiktok": null + } + } + ] + }, + { + "runAt": "2026-07-19T10:06:09.154985", + "date": "2026-07-19", + "keywords": [ + "SBS ๋๋ผ๋ง ๊น๋ถ์ฅ" + ], + "postsGenerated": 4, + "bloggerUploaded": 0, + "errors": 0, + "errorMessages": [], + "imagesInserted": 4, + "totalWords": 11647, + "blogId": "blog1", + "blogName": "HOGU What?", + "platforms": { + "blogger": 0 + }, + "earnings": { + "totalPosts": 89, + "estimatedDailyRevenue": 160.2, + "estimatedMonthlyRevenue": 4806.0, + "estimatedYearlyRevenue": 58473.0, + "avgCPC": 0.9, + "currency": "USD" + }, + "posts": [ + { + "title": "[1ํธ] ๊น๋ถ์ฅ 7ํ ๋ฆฌ๋ทฐ, ๋ณ์ฅ ๋์น์ ์๋ฒฝ ์ ๋ฆฌ", + "keyword": "SBS ๋๋ผ๋ง ๊น๋ถ์ฅ 7ํ ๋ฆฌ๋ทฐ", + "blogUrl": "", + "imagesInserted": 1, + "wordCount": 2608, + "contentPreview": "๊ธ์์ผ ๋ฐค 9์ 50๋ถ, SBS ๊ธํ ๋๋ผ๋ง ์๊ฐ๋์ ์ฑ๋์ ๋ง์ถฐ๋๊ณ ์๋ค ๋ณด๋ฉด ์์ฆ ์ ๋ ๋์ ๋๋ ์ํ์ด ํ๋ ์์ต๋๋ค. ๋ฐ๋ก ๊น๋ถ์ฅ์ด์์. 2026๋ 7์ 17์ผ ๋ฐฉ์ก๋ 7ํ๋ ๊ทธ๋์ ์์ฌ์จ ๊ฐ์ ์ ์ด ๋ณ์ฅ์ด๋ผ๋ ์ข์ ๊ณต๊ฐ ์์์ ํ๊บผ๋ฒ์ ํฐ์ ธ ๋์จ ํ์ฐจ์์ต๋๋ค. ์ ๋ ์ด ๋๋ผ๋ง๋ฅผ 1ํ๋ถํฐ ์ฑ๊ฒจ๋ณด๋ฉด์ ํ์ฐจ๋ณ๋ก ๊ธฐ๋ก์ ๋จ๊ธฐ๊ณ ์๋๋ฐ์, ์ด๋ฒ ๊ธ์ ๊ทธ์ค SB...", + "faqCount": 4, + "faq": [ + { + "q": "๊น๋ถ์ฅ 7ํ๋ ์ธ์ ๋ฐฉ์๋๋์?", + "a": "2026๋ 7์ 17์ผ ๊ธ์์ผ ๋ฐค 9์ 50๋ถ SBS์์ ๋ฐฉ์ก๋์ต๋๋ค. ๊ธํ ๋๋ผ๋ง ์๊ฐ๋๋ผ ๋งค์ฃผ ๊ธยทํ ์ดํ ์ฐ์ ๋ฐฉ์๋๋ ๊ตฌ์กฐ๋ผ์, 7ํ์ 8ํ๋ฅผ ์ด์ด ๋ณด๋ฉด ํ๋ฆ์ด ๋ ์ ์กํ๋๋ค." + }, + { + "q": "๊น๋ถ์ฅ 7ํ์์ ๊ฐ์ฅ ํ์ ๊ฐ ๋ ์ฅ๋ฉด์ ๋ฌด์์ธ๊ฐ์?", + "a": "๊น๋ถ์ฅ๊ณผ ์ฃผ๊ฐ์ฐฌ์ด ๋ณ์ฅ์์ ๋ฒ์ด๋ ์ด์ผ์ ๋์น ์ฅ๋ฉด์ด ๊ฐ์ฅ ๋ง์ด ํ์๋์ต๋๋ค. ์ด์ฑ ํ๋ ์์ด ๋๋น๊ณผ ๋์ฌ๋ง์ผ๋ก ๊ธด์ฅ๊ฐ์ ๋ง๋ ์ฐ์ถ์ด ์์ฒญ์๋ค ์ฌ์ด์์ ํธํ๋ฐ์์ต๋๋ค." + }, + { + "q": "๊น๋ถ์ฅ ์์ฒญ๋ฅ ์ ์ด๋ ์ ๋์ธ๊ฐ์?", + "a": "์ง์ ํ์ฐจ์ธ 6ํ๊ฐ ๋์จ์ฝ๋ฆฌ์ ๊ธฐ์ค ์๋๊ถ 23.2%, ์ ๊ตญ 22.3%, ์๊ฐ ์ต๊ณ 26.4%๋ฅผ ๊ธฐ๋กํ๋ฉฐ 3์ฃผ ์ฐ์ ์์ฒด ์ต๊ณ ์์ฒญ๋ฅ ์ ๊ฒฝ์ ํ์ต๋๋ค." + }, + { + "q": "๊น๋ถ์ฅ์ ์์์ด ์๋์?", + "a": "๋ค์ด๋ฒ์นํฐ์์ ์ฐ์ฌ ์ค์ธ ์์์ ๋ฐํ์ผ๋ก ํ๊ณ ์์ผ๋ฉฐ, SBS ๋๋ผ๋ง๋ 10๋ถ์์ผ๋ก ๊ธฐํ๋ผ 2026๋ 7์ 25์ผ ์๊ฒฐ์ ๋ชฉํ๋ก ๋ฐฉ์๋๊ณ ์๋ค๊ณ ์๋ ค์ ธ ์์ต๋๋ค." + } + ], + "factCheck": { + "checked": true, + "verdict": "warn", + "issues_found": 5, + "fixes_applied": 5, + "issues": [ + { + "problem": "๊ทผ๊ฑฐ ์๋ฃ ์๋ 1์ธ์นญ ์ฒดํ ์ฃผ์ฅ", + "fixed": true + }, + { + "problem": "๊ทผ๊ฑฐ ์๋ฃ ์๋ 1์ธ์นญ ์ฒดํ ์ฃผ์ฅ", + "fixed": true + }, + { + "problem": "๊ทผ๊ฑฐ ์๋ฃ ์๋ 1์ธ์นญ ์ฒดํ ์ฃผ์ฅ", + "fixed": true + }, + { + "problem": "๊ทผ๊ฑฐ ์๋ฃ ์๋ 1์ธ์นญ ์ฒดํ ์ฃผ์ฅ", + "fixed": true + }, + { + "problem": "์๋ฃํฉ์ ์๋ ์ธ๋ฌผ๋ช ์ผ๋ก ๊ฒ์ฆ ๋ถ๊ฐ๋ฅํ ๊ตฌ์ฒด์ ์ฃผ์ฅ", + "fixed": true + } + ] + }, + "sources": [ + { + "title": "๊น๋ถ์ฅ - ์ํค๋ฐฑ๊ณผ ํ๊ตญ์ด", + "url": "https://ko.wikipedia.org/wiki/%EA%B9%80%EB%B6%80%EC%9E%A5" + }, + { + "title": "โ๊น๋ถ์ฅโ ์์ง์ญ-์ฃผ์์ฑ ์ด์ฑ ์๋ ๊ทน๊ณผ ๊ทน ๋ถ์ฑ์ ํํฌ", + "url": "http://enews.imbc.com/News/RetrieveNewsInfo/511826" + }, + { + "title": "โ๋ฌด๋ฒ์ค๋ โ์ ์ฌ์ ์์ง ์ก์ , ๋ต๋ตํ ์ ํ ๋ซ์ด์ฃผ๋ค", + "url": "http://www.kookje.co.kr/news2011/asp/newsbody.asp?code=1600&key=20260716.22011004747" + }, + { + "title": "SBS ๋๋ผ๋ง '๊น๋ถ์ฅ' '๋๋ ์๋น ๋ค! ์์ง์ญยท์ต๋ํยท์ค๊ฒฝํธยท์ฃผ์์ฑยท์...'", + "url": "https://www.lecturernews.com/news/articleView.html?idxno=206185" + } + ], + "labels": [ + "๋๋ผ๋ง๋ฆฌ๋ทฐ", + "๊น๋ถ์ฅ", + "SBS๋๋ผ๋ง", + "๊ธํ ๋๋ผ๋ง", + "์์ง์ญ", + "์ฃผ์์ฑ", + "์ต๋ํ", + "์ค๊ฒฝํธ", + "๋๋ผ๋ง์ถ์ฒ", + "์์ฒญ๋ฅ " + ], + "metaDescription": "SBS ๋๋ผ๋ง ๊น๋ถ์ฅ 7ํ ๋ฆฌ๋ทฐ. ๋ณ์ฅ ๋์น์ ์ค๊ฑฐ๋ฆฌ ์์ฝ, ์์ง์ญยท์ฃผ์์ฑ ๋ช ์ฅ๋ฉด, ๋ฐฐ์ฐ ์ฐ๊ธฐ ํ๊ฐ์ 8ํ ์์ ํฌ์ธํธ๊น์ง ์คํฌ์ฃผ์ ์ ๋ฆฌ.", + "adsenseCategory": "์ผ๋ฐ", + "articleType": "drama_review", + "riskLevel": "low", + "blogId": "blog1", + "blogName": "HOGU What?", + "socialContent": null, + "socialPublished": { + "instagram": null, + "threads": null, + "tiktok": null + } + }, + { + "title": "[2ํธ] SBS ๋๋ผ๋ง ๊น๋ถ์ฅ 8ํ ๋ฆฌ๋ทฐ โ ๋ฏผ์ง ๊ตฌ์ถ๊ณผ ๋ฐ์ ๊ฐ์กฑ๊ทน", + "keyword": "SBS ๋๋ผ๋ง ๊น๋ถ์ฅ 8ํ ๋ฆฌ๋ทฐ", + "blogUrl": "", + "imagesInserted": 1, + "wordCount": 3167, + "contentPreview": "7ํ ์๋ฉ์์ ๊น๋ถ์ฅ์ด ์ด๋๊ฐ ๋ฏ์ ๊ณต๊ฐ์ ํญ ๋์ ธ์ง๋ฏ ์ ์๋ ์ฅ๋ฉด, ์ ๋ ๊ทธ๊ฑฐ ๋ณด๊ณ ์ฑ๋ ๋๋ฆด ๋ปํ์ด์. ์ ๊ฒ ๋ฌด์จ ์ค์ ์ด์ง ์ถ์ด์์. ๊ทธ๋ฐ๋ฐ 8ํ๋ฅผ ์กฐ์ฌํ๋ฉด์ ์๋ฃ๋ค์ ์ข ํฉํด๋ณด๋, ์ด๊ฒ ๋จ์ํ ์ฐฉ์๊ฐ ์๋๋ผ ๊ทน ์ ์ฒด๋ฅผ ๊ดํตํ๋ ํํ์ง์ ์ฅ์น์๋๋ผ๊ณ ์. 1ํธ์์ 7ํ ๋ฆฌ๋ทฐ๋ฅผ ๋ค๋ฃจ๋ฉด์ ์์ง์ญ ๋ฐฐ์ฐ์ ํ์ ์ฐ๊ธฐ๋ฅผ ์ง์๋๋ฐ, 8ํ์์๋ ๊ทธ ํ์ ์ฐ๊ธฐ๊ฐ ํ ๋จ...", + "faqCount": 3, + "faq": [ + { + "q": "SBS ๊น๋ถ์ฅ๊ณผ JTBC ๊น ๋ถ์ฅ ์ด์ผ๊ธฐ๋ ๊ฐ์ ์ํ์ธ๊ฐ์?", + "a": "์๋๋๋ค. SBS '๊น๋ถ์ฅ'์ ์์ง์ญ, ์ต๋ํ, ์ค๊ฒฝํธ, ์ฃผ์์ฑ ๋ฑ์ด ์ถ์ฐํ๋ ๋ณ๊ฐ์ ์ํ์ด๊ณ , JTBC '์์ธ ์๊ฐ์ ๋๊ธฐ์ ๋ค๋๋ ๊น ๋ถ์ฅ ์ด์ผ๊ธฐ'๋ ๋ฅ์น๋ฃก ์ฃผ์ฐ์ ๋๋ช ์น์์ค ์์ ๋๋ผ๋ง์ ๋๋ค. ์ ๋ชฉ์ด ๋น์ทํด ๊ฒ์ ์ ํท๊ฐ๋ฆฌ๊ธฐ ์ฌ์ฐ๋ ์ถ์ฐ์ง์ ํ์ธํ์๋ ๊ฒ ์ ํํฉ๋๋ค." + }, + { + "q": "8ํ์ ํํ์ง์ ์ค์ ์ ์์ ์นํฐ์๋ ๋์ค๋์", + "a": "ํ์ฐจ๋ณ ์ค๊ฑฐ๋ฆฌ๋ฅผ ์ ๋ฆฌํ ํ๊ธฐ๋ค์ ๋ฐ๋ฅด๋ฉด ์์์ ๋ค์ด๋ฒ์นํฐ์์ ํ์ฌ๋ ์ฐ์ฌ ์ค์ด๊ณ , ๋๋ผ๋ง 8ํ์ ํํ์ง์ ์๋ฌด ์ค์ ์ ๊ทน์ ์ ๊ฐ์ ๊ฐ์กฐ๋ ๋ถ๋ถ์ด๋ผ๋ ๋ถ์์ด ์์ต๋๋ค. ์ ํํ ์์ ๋์กฐ๋ ์์ ์นํฐ ์ต์ ํ๋ฅผ ์ง์ ํ์ธํ์๋ ๊ฑธ ์ถ์ฒ๋๋ฆฝ๋๋ค." + }, + { + "q": "9ํ ์๊ณ ํธ์์ ํ์ธํ ์ ์๋ ํํธ๊ฐ ์๋์", + "a": "๊ณต์ ์๊ณ ํธ ๋ด์ฉ์ SBS ๊ณต์ ์ฑ๋์ด๋ ๋ฐฉ์ก ํํ์ด์ง๋ฅผ ํตํด ํ์ธํ์๋ ๊ฒ ๊ฐ์ฅ ์ ํํฉ๋๋ค. ์ด ๊ธ์์ ๋ค๋ฃฌ 9ํ ์์ ํฌ์ธํธ๋ 8ํ ์ ๊ฐ๋ฅผ ๋ฐํ์ผ๋ก ํ ๊ฐ์ธ์ ์ธ ์ถ์ ์์ ์ฐธ๊ณ ํด์ฃผ์ธ์." + } + ], + "factCheck": { + "checked": true, + "verdict": "warn", + "issues_found": 5, + "fixes_applied": 5, + "issues": [ + { + "problem": "์๋ฃํฉ์ ๋ฐ๋ฅด๋ฉด 8ํ๋ 7ํ ์๋ฉ์ '๋ถํ ๊ณ ๋ฌธ์ค ์ฅ๋ฉด'์์ ์ด์ด์ง๋๋ฐ, ๋ณธ๋ฌธ์ ์ด์ ๋ค๋ฅธ '๋ฏ์ ๊ณต๊ฐ' ์ค์ ์ ์์ ํด ์๋ฃํฉ๊ณผ ๋ชจ์๋จ", + "fixed": true + }, + { + "problem": "์๋ฃํฉ์ 8ํ ํต์ฌ ์ค๊ฑฐ๋ฆฌ('์๋น ์ฐํฉ' ์๋, ํฉ๋ฌด์ง ์ ๋ฐฐ, ์ฃผ๊ฐ์ฐฌ ๊ด๋ จ ์ ๊ฐ)์ ์๋ ์ธ๋ฌผ๊ณผ ์ฌ๊ฑด์ผ๋ก, ๊ทผ๊ฑฐ ์๋ ๊ตฌ์ฒด์ ์ค๊ฑฐ๋ฆฌ ์์ ", + "fixed": true + }, + { + "problem": "๊ฒ์ฆ๋์ง ์์ ๊ตฌ์ฒด์ ์์ฒญ๋ฅ ๊ธฐ๋ก ์ฃผ์ฅ", + "fixed": true + }, + { + "problem": "๊ฒ์ฆ๋์ง ์์ ๊ตฌ์ฒด์ ์์ฒญ๋ฅ ํต๊ณ ์ฃผ์ฅ์ด ๋ฐ๋ณต๋จ", + "fixed": true + }, + { + "problem": "์๋ฃํฉ์ 8ํ ํต์ฌ ์ค๊ฑฐ๋ฆฌ(์ฃผ๊ฐ์ฐฌ ๊ด๋ จ ์ ๊ฐ)์ ๊ตฌ์ฒด์ ์ผ๋ก ์ผ์นํ๋์ง ํ์ธ๋์ง ์์ ์์ ๋ก, ๊ทผ๊ฑฐ ๋ถ๋ช ํํ ๊ตฌ์ฒด์ ์บ๋ฆญํฐ ์ํ ๋จ์ ", + "fixed": true + } + ] + }, + "sources": [ + { + "title": "SBS ๋๋ผ๋ง '๊น๋ถ์ฅ' \"๋๋ ์๋น ๋ค! ์์ง์ญยท์ต๋ํยท์ค๊ฒฝํธยท์ฃผ์์ฑยท์๋์ ์ถ์ฐ\"", + "url": "https://www.lecturernews.com/news/articleView.html?idxno=206185" + }, + { + "title": "โ๋ชป๋ฌ์ง๋ง ์ง ํ ์ฐ๋ฆฌ ๋ถ์ฅ ๋ณด๋ ์คโโฆ50๋ํ ๋ฏธ์ โ๊น๋ถ์ฅโ ๊ณต๊ฐ๋", + "url": "https://www.hani.co.kr/arti/culture/culture_general/1230255.html" + } + ], + "labels": [ + "๋๋ผ๋ง๋ฆฌ๋ทฐ", + "๊น๋ถ์ฅ", + "SBS๋๋ผ๋ง", + "๊น๋ถ์ฅ8ํ", + "์์ง์ญ", + "์ต๋ํ", + "์ค๊ฒฝํธ", + "์ฃผ์์ฑ", + "๊ธํ ๋๋ผ๋ง", + "๋๋ผ๋ง์ถ์ฒ" + ], + "metaDescription": "SBS ๋๋ผ๋ง ๊น๋ถ์ฅ 8ํ ๋ฆฌ๋ทฐ. ๋ฏผ์ง ๊ตฌ์ถ๊ณผ ์๋ณ ์ธ์ฌ, ๋ฐ์ง์ฒ ๊ฐ์กฑ ๋ฐ์ , ๋ฐฐ์ฐ ์ฐ๊ธฐ ํ๊ฐ์ 9ํ ์์ ํฌ์ธํธ๊น์ง ์คํฌ์ฃผ์ ์๋ด์ ํจ๊ป ์ ๋ฆฌํ์ต๋๋ค.", + "adsenseCategory": "์ผ๋ฐ", + "articleType": "drama_review", + "riskLevel": "low", + "blogId": "blog1", + "blogName": "HOGU What?", + "socialContent": null, + "socialPublished": { + "instagram": null, + "threads": null, + "tiktok": null + } + }, + { + "title": "[3ํธ] SBS ๋๋ผ๋ง ๊น๋ถ์ฅ 9ํ ๋ฆฌ๋ทฐ โ ์ต๋ํ ๋ช ์ฐ๊ธฐ์ ๋ฐ์ ์ ๊ฐ", + "keyword": "SBS ๋๋ผ๋ง ๊น๋ถ์ฅ 9ํ ๋ฆฌ๋ทฐ", + "blogUrl": "", + "imagesInserted": 1, + "wordCount": 2617, + "contentPreview": "8ํ์์ ๋ฏผ์ง๋ฅผ ๊ตฌํ ์ฑํ์๊ฐ ๋ง์ง๋ง ์๋ณ ์ธ์ฌ๋ฅผ ๋จ๊ธฐ๊ณ ์ฌ๋ผ์ก๋ค๋ ๊ทธ ์๋ฉ, ๋๋์ฒด 9ํ์์๋ ์ด๋ป๊ฒ ์ด์ด์ง์ง ๊ถ๊ธํ์ง ์์ผ์ จ๋์? ์ ๋ 8ํ ๋๋์๋ง์ ๋ค์ ํ ์๊ณ ํธ์ ๋ช ๋ฒ์ด๋ ๋๋ ค๋ดค๋์ง ๋ชจ๋ฅด๊ฒ ์ด์. ์ด๋ฒ ํธ์ ์๋ฆฌ์ฆ 3๋ฒ์งธ ๊ธ๋ก, 1ํธ์์ 7ํ ์ค๊ฑฐ๋ฆฌ๋ฅผ ๋ค๋ฃจ๊ณ 2ํธ์์ 8ํ ๋ช ์ฅ๋ฉด์ ์ ๋ฆฌํ๋๋ฐ์, ์ค๋์ SBS ๋๋ผ๋ง ๊น๋ถ์ฅ 9ํ ๋ฆฌ๋ทฐ๋ฅผ ์กฐ์ฌํ ๋ด...", + "faqCount": 3, + "faq": [ + { + "q": "๊น๋ถ์ฅ 9ํ๋ ์ด๋์ ๋ค์ ๋ณผ ์ ์๋์?", + "a": "SBS ๊ณต์ ํํ์ด์ง์ ์จ์ด๋ธ ๊ฐ์ OTT ํ๋ซํผ์์ ๋ค์๋ณด๊ธฐ๊ฐ ์ ๊ณต๋๋ ์ ํํ ์๋น์ค ์ฌ๋ถ๋ ๋ฐฉ์ ํ ๊ณต์ ์ฑ๋์์ ํ์ธํ์๋ ๊ฒ ์ข์ต๋๋ค." + }, + { + "q": "๊น๋ถ์ฅ 9ํ ์์ฒญ๋ฅ ์ ์ ํํ ๋ช ํผ์ผํธ์ธ๊ฐ์?", + "a": "์จ๋ผ์ธ ํ๊ธฐ๋ค์์๋ ํ์ฐจ๋ฅผ ๊ฑฐ๋ญํ ์๋ก ์์ฒญ๋ฅ ์ด ์ต๊ณ ์น๋ฅผ ๊ฒฝ์ ํ๊ณ ์๋ค๋ ์ธ๊ธ์ด ๋ง์ง๋ง, ์ ํํ ์์น๋ ๋์จ์ฝ๋ฆฌ์๋ ๋ฐฉ์ก์ฌ ๊ณต์ ๋ฐํ ์๋ฃ๋ฅผ ํ์ธํ์๋ ๊ฒ ์ ํํฉ๋๋ค." + }, + { + "q": "๊น๋ถ์ฅ ์์ ์นํฐ๊ณผ ๊ฒฐ๋ง์ด ๋ค๋ฅผ ์๋ ์๋์?", + "a": "๋๋ผ๋ง๋ 10๋ถ์์ผ๋ก ์๊ฒฐ๋๊ณ ์์ ์นํฐ์ ๋ค์ด๋ฒ์นํฐ์์ ํ์ฌ๋ ์ฐ์ฌ ์ค์ด๋ผ, ๊ฒฐ๋ง ๋ฐฉํฅ์ด ๋ค๋ฅด๊ฒ ๊ฐ์๋ ๊ฐ๋ฅ์ฑ์ด ์ถฉ๋ถํ ์์ต๋๋ค." + } + ], + "factCheck": { + "checked": true, + "verdict": "warn", + "issues_found": 3, + "fixes_applied": 3, + "issues": [ + { + "problem": "๊ฒ์ฆ ๋ถ๊ฐ๋ฅํ ๊ตฌ์ฒด์ ํต๊ณ ์ฃผ์ฅ์ด๋ฉฐ ๊ทผ๊ฑฐ ์๋ฃ ์์", + "fixed": true + }, + { + "problem": "์๋ฃํฉ์๋ ๋ฐฉ์ ์ข ๋ฃ์ผ(7์ 25์ผ)๋ง ํ์ธ๋๋ฉฐ '10๋ถ์'์ด๋ผ๋ ํ์ฐจ ์๋ ๋ช ์๋์ด ์์ง ์์ ๊ฒ์ฆ๋์ง ์์ ๊ตฌ์ฒด์ ์์น์", + "fixed": true + }, + { + "problem": "์์ ์นํฐ์ ์ฐ์ฌ ํ๋ซํผ๊ณผ ํ์ฌ ์ฐ์ฌ ์ฌ๋ถ๋ ์๋ฃํฉ์์ ํ์ธ๋์ง ์๋ ๊ตฌ์ฒด์ ์ ๋ณด์", + "fixed": true + } + ] + }, + "sources": [ + { + "title": "๊น๋ถ์ฅ - ์ํค๋ฐฑ๊ณผ ํ๊ตญ์ด", + "url": "https://ko.wikipedia.org/wiki/%EA%B9%80%EB%B6%80%EC%9E%A5" + }, + { + "title": "SBS ๊ณต์ ํํ์ด์ง", + "url": "https://programs.sbs.co.kr/drama/kimbujang" + } + ], + "labels": [ + "๋๋ผ๋ง๋ฆฌ๋ทฐ", + "๊น๋ถ์ฅ", + "๊น๋ถ์ฅ9ํ", + "SBS๊ธํ ๋๋ผ๋ง", + "์ต๋ํ", + "์์ง์ญ", + "์ค๊ฒฝํธ", + "๊น๋ถ์ฅ๋ฆฌ๋ทฐ", + "๋๋ผ๋ง์ถ์ฒ", + "๊ธํ ๋๋ผ๋ง" + ], + "metaDescription": "SBS ๋๋ผ๋ง ๊น๋ถ์ฅ 9ํ ๋ฆฌ๋ทฐ, ์ค๊ฑฐ๋ฆฌ ํต์ฌ๊ณผ ๋ช ์ฅ๋ฉดยท๋ช ๋์ฌ, ์ต๋ํยท์์ง์ญ ์ฐ๊ธฐ ํ๊ฐ, ์์ฒญ์ ๋ฐ์๊ณผ 10ํ ์ ๊ฐ ์์๊น์ง ์คํฌ ์ฃผ์ ํฌํจ ์ ๋ฆฌํ์ต๋๋ค.", + "adsenseCategory": "์ผ๋ฐ", + "articleType": "drama_review", + "riskLevel": "low", + "blogId": "blog1", + "blogName": "HOGU What?", + "socialContent": null, + "socialPublished": { + "instagram": null, + "threads": null, + "tiktok": null + } + }, + { + "title": "[4ํธ] SBS ๋๋ผ๋ง ๊น๋ถ์ฅ 10ํ ๋ฆฌ๋ทฐ โ ์๊ฒฐํธ ์ด์ ๋ฆฌ", + "keyword": "SBS ๋๋ผ๋ง ๊น๋ถ์ฅ 10ํ ๋ฆฌ๋ทฐ", + "blogUrl": "", + "imagesInserted": 1, + "wordCount": 3255, + "contentPreview": "์ง๋์ฃผ 9ํ ๋ฆฌ๋ทฐ๋ฅผ ์ฌ๋ฆฌ๊ณ ๋์ ๋๊ธ๋ก ๊ฐ์ฅ ๋ง์ด ๋ฐ์ ์ง๋ฌธ์ด '์ด์ ๋ง์ง๋งํ์ธ๋ฐ ์ด๋ป๊ฒ ๋๋์?'์์ด์. ์ ๋ 3ํธ๊น์ง ์ฐ๋ฉด์ ์ด ๋๋ผ๋ง๊ฐ ์ด๋ ๊ฒ ์ค๋ ํ์ ์ฑ์ ๋๊ณ ๊ฐ ์ค์ ๋ชฐ๋๊ฑฐ๋ ์. SBS ๊ธํ ๋๋ผ๋ง <๊น๋ถ์ฅ>์ด 10๋ถ์์ผ๋ก ๊ธฐํ๋๋ค๋ ์ด์ผ๊ธฐ๊ฐ ๋ฐฉ์ ์ด๋ฐ๋ถํฐ ๋์๋๋ฐ, ์ค์ ๋ก 10ํ์์ ์๊ฒฐ ์์์ ๋ฐ๋ ๊ฑธ ๋ณด๋ฉด์ ์ด ์๋ฆฌ์ฆ ๋ง์ง๋ง ํธ์ ...", + "faqCount": 3, + "faq": [ + { + "q": "10ํ๊ฐ ์ง์ง ๋ง์ง๋ง ํ์ธ๊ฐ์?", + "a": "10๋ถ์์ผ๋ก ๊ธฐํ๋ผ ๋ฐฉ์๋๋ค๋ ์ ๋ณด๊ฐ ์ฌ๋ฌ ํ๊ธฐ์์ ํ์ธ๋๋๋ฐ, ์ ํํ ๋ฐฉ์ ํ์ฐจ์ ์๊ฒฐ ์ฌ๋ถ๋ SBS ๊ณต์ ํธ์ฑํ๋ฅผ ํ์ธํ์๋ ๊ฒ ๊ฐ์ฅ ์ ํํฉ๋๋ค." + }, + { + "q": "์์ ์นํฐ๊ณผ ๊ฒฐ๋ง์ด ๋ค๋ฅธ๊ฐ์?", + "a": "์์ ์นํฐ์ ๋ค์ด๋ฒ์นํฐ์์ ํ์ฌ๋ ์ฐ์ฌ ์ค์ด๋ผ๊ณ ์๋ ค์ ธ ์์ด์, ๋๋ผ๋ง ์๊ฒฐํธ๊ณผ ์์ ๊ฒฐ๋ง์ ๋ค๋ฅผ ๊ฐ๋ฅ์ฑ์ด ๋์ต๋๋ค. ์ ํํ ๋น๊ต๋ ์์์ ์ง์ ํ์ธํ์๊ธธ ๊ถํด์." + }, + { + "q": "์ ์ฃผํํ๋ ค๋ฉด ๋ช ํ๋ถํฐ ๋ค์ ๋ด์ผ ํ๋์?", + "a": "๋จํ๊ณผ ์ฃผ๊ฐ์ฐฌ ๋ผ์ธ์ ๋ก๋ฐฅ ํ์๊ฐ 8~9ํ๋ถํฐ ์ด์ด์ง๊ธฐ ๋๋ฌธ์, ์ต์ 8ํ๋ถํฐ ๋ค์ ๋ณด์๋ ๊ฑธ ์ถ์ฒ๋๋ฆฝ๋๋ค." + } + ], + "factCheck": { + "checked": true, + "verdict": "warn", + "issues_found": 5, + "fixes_applied": 5, + "issues": [ + { + "problem": "์๋ฃํฉ์ ๋ฐ๋ฅด๋ฉด ๋๋ผ๋ง๋ 12๋ถ์์ผ๋ก ๊ตฌ์ฑ๋์ด ์์ด 10๋ถ์์ด๋ผ๋ ์์ ๊ณผ ๋ชจ์๋ฉ๋๋ค", + "fixed": true + }, + { + "problem": "์๋ฃํฉ์ ๋๋ผ๋ง๋ 12๋ถ์์ด๋ฏ๋ก 10ํ๊ฐ ์๊ฒฐํธ์ด๋ผ๋ ์์ ์ ์ฌ์ค๊ณผ ์ด๊ธ๋ ๊ฐ๋ฅ์ฑ์ด ๋์ต๋๋ค", + "fixed": true + }, + { + "problem": "์๋ฃํฉ์ ๋ช ์๋ 12๋ถ์ ์ ๋ณด์ ๋ชจ์๋ฉ๋๋ค", + "fixed": true + }, + { + "problem": "ํด๋น ๋ฐฐ์ฐ์ ์ค์ ์ถ์ฐ ์ฌ๋ถ๊ฐ ์๋ฃํฉ์ผ๋ก ๊ฒ์ฆ๋์ง ์๋ ๊ตฌ์ฒด์ ์บ์คํ ์ ๋ณด์ ๋๋ค", + "fixed": true + }, + { + "problem": "ํด๋น ๋ฐฐ์ฐ์ ์ค์ ์ถ์ฐ ์ฌ๋ถ๊ฐ ์๋ฃํฉ์ผ๋ก ๊ฒ์ฆ๋์ง ์๋ ๊ตฌ์ฒด์ ์บ์คํ ์ ๋ณด์ ๋๋ค", + "fixed": true + } + ] + }, + "sources": [ + { + "title": "์ํ 'ํ ์ด ์คํ ๋ฆฌ5' 2์ฃผ ์ฐ์ 1์, OTT ๋๋ผ๋ง '๊น๋ถ์ฅ' ์๋กญ๊ฒ 1์ ์ฐจ์ง", + "url": "https://www.businesspost.co.kr/BP?command=article_view&num=441509" + }, + { + "title": "๊น๋ถ์ฅ(๋๋ผ๋ง) - ๋๋ฌด์ํค", + "url": "https://namu.wiki/w/%EA%B9%80%EB%B6%80%EC%9E%A5(%EB%93%9C%EB%9D%BC%EB%A7%88)" + }, + { + "title": "๋ทํ๋ฆญ์ค TV์ผ 1์ ์ฐ๋๋โฆ๋๋ช ์นํฐ ์กฐํ์ 30๋ฐฐ ๋๊ฒ ๋์๋ค๋ 'ํ๊ตญ...", + "url": "https://www.wikitree.co.kr/articles/1093330" + }, + { + "title": "์์ธ ์๊ฐ์ ๋๊ธฐ์ ๋ค๋๋ ๊น ๋ถ์ฅ ์ด์ผ๊ธฐ(๋๋ผ๋ง)", + "url": "https://namu.wiki/w/%EC%84%9C%EC%9A%B8%20%EC%9E%90%EA%B0%80%EC%97%90%20%EB%8C%80%EA%B8%B0%EC%97%85%20%EB%8B%A4%EB%8B%88%EB%8A%94%20%EA%B9%80%20%EB%B6%80%EC%9E%A5%20%EC%9D%B4%EC%95%BC%EA%B8%B0(%EB%93%9C%EB%9D%BC%EB%A7%88)" + }, + { + "title": "SBS ํ๋ก๊ทธ๋จ ๊ณต์ ํํ์ด์ง", + "url": "https://programs.sbs.co.kr/drama/kimbujang" + }, + { + "title": "๋ค์ด๋ฒ์นํฐ ์์ ํ์ด์ง", + "url": "https://comic.naver.com/webtoon" + } + ], + "labels": [ + "๋๋ผ๋ง๋ฆฌ๋ทฐ", + "๊น๋ถ์ฅ", + "SBS๋๋ผ๋ง", + "๊น๋ถ์ฅ10ํ", + "๊ธํ ๋๋ผ๋ง", + "์ต๋ํ", + "์ค๊ฒฝํธ", + "์์ง์ญ", + "๋๋ผ๋ง์๊ฒฐ", + "๋๋ผ๋ง์ถ์ฒ" + ], + "metaDescription": "SBS ๋๋ผ๋ง ๊น๋ถ์ฅ 10ํ ๋ฆฌ๋ทฐ. ์๊ฒฐํธ ์ค๊ฑฐ๋ฆฌ ํต์ฌ ์์ฝ๊ณผ ์คํฌ์ผ๋ฌ ์ฃผ์, ๋ช ์ฅ๋ฉดยท๋ช ๋์ฌ, ๋ฐฐ์ฐ ์ฐ๊ธฐ ํ๊ฐ์ ๊ฒฐ๋ง ์ดํ๊น์ง ํ ๋ฒ์ ์ ๋ฆฌํ์ต๋๋ค.", + "adsenseCategory": "์ผ๋ฐ", + "articleType": "drama_review", + "riskLevel": "low", + "blogId": "blog1", + "blogName": "HOGU What?", + "socialContent": null, + "socialPublished": { + "instagram": null, + "threads": null, + "tiktok": null + } + } + ] + }, + { + "runAt": "2026-07-19T06:21:20.516681", + "date": "2026-07-19", + "keywords": [ + "1์ธ๊ฐ๊ตฌ ์์ ๊ธ ๋์ ์ฃผ์ยทETF ๊ฐ์ํ๊ธฐ ๋ฐฉ๋ฒ" + ], + "postsGenerated": 1, + "bloggerUploaded": 1, + "errors": 0, + "errorMessages": [], + "imagesInserted": 1, + "totalWords": 3754, + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "platforms": { + "blogger": 1 + }, + "earnings": { + "totalPosts": 86, + "estimatedDailyRevenue": 430.0, + "estimatedMonthlyRevenue": 12900.0, + "estimatedYearlyRevenue": 156950.0, + "avgCPC": 2.5, + "currency": "USD" + }, + "posts": [ + { + "title": "1์ธ๊ฐ๊ตฌ ์์ ๊ธ ๋์ ์ฃผ์ยทETF ๊ฐ์ํ๊ธฐ ๋ฐฉ๋ฒ ์ด์ ๋ฆฌ", + "keyword": "1์ธ๊ฐ๊ตฌ ์์ ๊ธ ๋์ ์ฃผ์ยทETF ๊ฐ์ํ๊ธฐ ๋ฐฉ๋ฒ", + "blogUrl": "https://hoguasset.blogspot.com/2026/07/1-etf.html", + "imagesInserted": 1, + "wordCount": 3754, + "contentPreview": "์ต๊ทผ ๋ถ๋์ฐ๊ณผ ์ฃผ์์์ฅ์ ์ค๊ฐ๋ ๋์ ํ๋ฆ์ด ๋์ ๋๊ฒ ๋ฌ๋ผ์ง๊ณ ์์ต๋๋ค. 2026๋ 6์ 25์ผ ๋์์ผ๋ณด ๋ณด๋์ ๋ฐ๋ฅด๋ฉด ์ฌํด ์ฃผํ ๊ฑฐ๋๋์ 26๋ง1000๊ฑด์ผ๋ก 2021๋ ๊ฐ์ ๊ธฐ๊ฐ๋ณด๋ค 34.6% ์ค์ด๋ ๋ฐ๋ฉด, ์ฆ์ ์ผํ๊ท ๊ฑฐ๋๋์ 3๋ ์ 50% ๊ธ์ฆํ๋ค๊ณ ํฉ๋๋ค. ๋ถ๋์ฐ์ ๋ชฉ๋์ ๋ฌถ์ด๋๊ธฐ ๋ถ๋ด์ค๋ฌ์ด 1์ธ๊ฐ๊ตฌ ์ ์ฅ์์๋ ์ด ํ๋ฆ์ด ๋จ์ํ ๋ด์ค๊ฐ ์๋๋ผ '...", + "faqCount": 4, + "faq": [ + { + "q": "์์ ๊ธ์ ํ๊บผ๋ฒ์ ๋ค ETF๋ก ์ฎ๊ฒจ๋ ๋๋์?", + "a": "ํ ๋ฒ์ ์ ์ก์ ์ฎ๊ธฐ๋ ๋ฐฉ์์ ํน์ ์์ ์ ๊ฐ๊ฒฉ ๋ณ๋ ์ํ์ ๊ทธ๋๋ก ๋ ธ์ถ๋ ์ ์์ด ์ผ๋ฐ์ ์ผ๋ก ๊ถ์ฅ๋์ง ์์ต๋๋ค. ๋ง๊ธฐ๊ฐ ๋์์ค๋ ์๊ธ๋ถํฐ ์์ฐจ์ ์ผ๋ก ๋๋ ์ฎ๊ธฐ๋ ๋ฐฉ์์ด ์์ฃผ ์ธ๊ธ๋ฉ๋๋ค." + }, + { + "q": "ํด์ง์ฐ๊ธ๋ ์๋ฆฌ๊ธ ๋ณด์ฅํ์์ ๋ฐ๊ฟ ์ ์๋์?", + "a": "๋ค, ๋๋ถ๋ถ์ ํด์ง์ฐ๊ธ ๋ฐ IRP ๊ณ์ข๋ ๊ฐ์ ์๊ฐ ์ด์ฉ ์ง์๋ฅผ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค. ๋ค๋ง ์ํ ๊ตฌ์กฐ์ ์ ์ฐจ๋ ๊ฐ์ ํ ๊ธ์ต๊ธฐ๊ด๋ง๋ค ๋ค๋ฅด๋ฏ๋ก ํด๋น ๊ธฐ๊ด ํํ์ด์ง๋ ๊ธ์ต๊ฐ๋ ์ ํตํฉ์ฐ๊ธํฌํธ์์ ํ์ธ์ด ํ์ํฉ๋๋ค." + }, + { + "q": "1์ธ๊ฐ๊ตฌ๊ฐ ๋น์๊ธ์ ์ผ๋ง๋ ๋จ๊ฒจ๋ฌ์ผ ํ๋์?", + "a": "์ ํด์ง ๋ฒ์ ๊ธฐ์ค์ ์์ง๋ง, ์ผ๋ฐ์ ์ผ๋ก ์ํ๋น 3~6๊ฐ์์น๋ฅผ ์ ๋์ฑ ๋์ ์์ ๊ธ์ด๋ CMA ๊ณ์ข์ ๋ณ๋๋ก ๋จ๊ฒจ๋๋ ๋ฐฉ์์ด ๋ง์ด ์ธ๊ธ๋ฉ๋๋ค." + }, + { + "q": "ETF๋ ์์ ๊ธ์ฒ๋ผ ์๊ธ ์์ค์ด ์๋์?", + "a": "์๋๋๋ค. ETF๋ ์ฃผ์๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ์์ฅ ๊ฐ๊ฒฉ์ ๋ฐ๋ผ ์๊ธ ์์ค์ด ๋ฐ์ํ ์ ์๋ ํฌ์ ์ํ์ ๋๋ค. ์์ ๊ธ๊ณผ ๋์ผํ๊ฒ ์ฌ๊ธฐ์ง ์๋๋ก ์ฃผ์๊ฐ ํ์ํฉ๋๋ค." + } + ], + "factCheck": { + "checked": true, + "verdict": "pass", + "issues_found": 0, + "fixes_applied": 0, + "issues": [] + }, + "sources": [ + { + "title": "๋ด ํด์ง์ฐ๊ธ ๋๋์ดโฆ์ฅ๊ผฌ๋ฆฌ ์์ต๋ฅ ๋?", + "url": "https://www.mk.co.kr/article/12034090" + }, + { + "title": "๋์ ํ๋ฆ, ๋ถ๋์ฐ์ ์ฆ์๋กโฆ ํ๊ตญ ๊ฐ๊ณ ์์ฐ ๊ณต์์ด ๋ฐ๋๋ค", + "url": "https://www.donga.com/news/Economy/article/all/20260624/134168035/2" + }, + { + "title": "๊ธ์ต๊ฐ๋ ์ ํตํฉ์ฐ๊ธํฌํธ", + "url": "https://100lifeplan.fss.or.kr" + }, + { + "title": "ํ๊ตญ๊ฑฐ๋์", + "url": "https://www.krx.co.kr" + } + ], + "labels": [ + "1์ธ๊ฐ๊ตฌ์ฌํ ํฌ", + "์์ ๊ธ๋์ ํฌ์", + "ETFํฌ์", + "์ฃผ์ํฌ์", + "ํด์ง์ฐ๊ธ" + ], + "metaDescription": "1์ธ๊ฐ๊ตฌ๊ฐ ์์ ๊ธ ๋์ ์ฃผ์ยทETF๋ก ์์ฐ์ ์ฎ๊ธฐ๊ธฐ ์ ์ ๊ฒํ ์กฐ๊ฑด๊ณผ ์ค์ ์คํ ๋จ๊ณ๋ฅผ ํด์ง์ฐ๊ธ ์์ต๋ฅ ์ฌ๋ก์ ํจ๊ป ์ ๋ฆฌํ์ต๋๋ค. ๊ฐ์ํ๊ธฐ ์ฒดํฌ๋ฆฌ์คํธ์ ์ฃผ์์ฌํญ๊น์ง ํ์ธํด๋ณด์ธ์.", + "adsenseCategory": "๊ธ์ต", + "articleType": "investment", + "riskLevel": "high", + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "socialContent": { + "instagram": { + "caption": "์์ ๊ธ ์ด์๋ก ์ปคํผ ํ ์ ๊ฐ ๋ฒ ๋, ๋๊ตฐ๊ฐ๋ ํด์ง์ฐ๊ธ์ผ๋ก ์ฐ 8% ๋ฒ๊ณ ์์ต๋๋คโ๐\n\n1์ธ๊ฐ๊ตฌ๋ผ๋ฉด ๋๋์ฑ '์ฌ์ธ ์์ ๊ธ'์ ์ํด์ ๋๋ค.\nํ์ง๋ง ๋ฌด์์ ๋ค ์ฎ๊ธฐ๋ ๊ฒ๋ ์ํํด์โ ๏ธ\n\n์ ์ฅ ํ์ ๐ (๋์ค์ ๊ฐ์ํ ๋ ์ฒดํฌ๋ฆฌ์คํธ๋ก ๋ค์ ๋ณด์ธ์)\n\nโ ์์ ๊ธโETF ๊ฐ์ํ๊ธฐ ์ ์ฒดํฌ๋ฆฌ์คํธ\n\n1๏ธโฃ ๋น์๊ธ 3~6๊ฐ์์น ํ๋ณดํ๋๊ฐ\n2๏ธโฃ ๋ง๊ธฐ ์์ ๊ธ๋ถํฐ ์์ฐจ์ ์ผ๋ก ์ฎ๊ธฐ๊ธฐ\n3๏ธโฃ ํ๋ฒ์ ๋ชฐ๋นต X, ๋ถํ ๋งค์ ์์น\n4๏ธโฃ ํด์ง์ฐ๊ธ ์๋ฆฌ๊ธ๋ณด์ฅํโ์ค์ ๋ฐฐ๋นํ ์ ํ ๊ฐ๋ฅ ์ฌ๋ถ ํ์ธ\n5๏ธโฃ ETF๋ ์๊ฐ์ด์ก ์์ ์ง์ํ๋ถํฐ ์์\n6๏ธโฃ ์ต์ 3๋ ์ด์ ํฌ์ ๊ฐ๋ฅํ ๋์ธ์ง ์ ๊ฒ\n7๏ธโฃ ๊ฐ์ํ ํ์๋ ์ ๊ธฐ ๋ฆฌ๋ฐธ๋ฐ์ฑ ํ์\n\n1์ธ๊ฐ๊ตฌ๋ ๋ถ์๊ฐ์กฑ ์๋ ๋์ ์์ ๋ง๋ ๋ณธ์ธ์ด ๋ง๋ค์ด์ผ ํฉ๋๋ค.\n์ง๊ธ ์์ ๊ธ๋ง ๋ถ๋ค๊ณ ์๋ค๋ฉด, ์ด ๊ธ ๊ผญ ์ ๋ ํ์ธ์๐\n\n๐ฌ ์ฌ๋ฌ๋ถ์ ์์ ๊ธ ๋น์ค ๋ช %์ธ๊ฐ์? ๋๊ธ๋ก ์๋ ค์ฃผ์ธ์!\n\n#๋ธ๋ก๊ทธ์๋ฌธ์ ํ๋กํ ๋งํฌ์์ ํ์ธ", + "hookLine": "์์ ๊ธ ์ด์๋ก ์ปคํผ๊ฐ ๋ฒ ๋, ๋๊ตฐ๊ฐ๋ ํด์ง์ฐ๊ธ์ผ๋ก ์ฐ 8% ๋ฒ๋๋คโ๐", + "storyHighlightTitle": "๊ฐ์ํ๊ธฐ", + "hashtags": { + "popular": [ + "#์ฌํ ํฌ", + "#์ง ํ ํฌ", + "#์ฌํ ํฌ์ด๋ณด", + "#๋๊ด๋ฆฌ", + "#๊ฒฝ์ ๊ณต๋ถ", + "#๋จธ๋๊ด๋ฆฌ", + "#์ฌ๋ฌด์ค๊ณ", + "#ํฌ์๊ณต๋ถ", + "#๋ถ์๋๊ธฐ", + "#๊ฒฝ์ ๋ด์ค" + ], + "medium": [ + "#1์ธ๊ฐ๊ตฌ์ฌํ ํฌ", + "#์์ ๊ธ๋์ ํฌ์", + "#ETFํฌ์", + "#์ฃผ์ํฌ์", + "#ํด์ง์ฐ๊ธ", + "#์์ฐ๋ฐฐ๋ถ", + "#์ธ๋ฑ์คํฌ์", + "#๋ถ์ฐํฌ์", + "#๋ฆฌ๋ฐธ๋ฐ์ฑ", + "#์ฌํ ํฌ๋ฃจํด" + ], + "niche": [ + "#์๋ฆฌ๊ธ๋ณด์ฅํํ์ถ", + "#์ค์ ๋ฐฐ๋นํ์ ํ", + "#ํด์ง์ฐ๊ธDCํ", + "#1์ธ๊ฐ๊ตฌ์์ฐ๊ด๋ฆฌ", + "#์์ ๊ธ๊ฐ์ํ๊ธฐ" + ] + }, + "bestPostingTimes": [ + "07:00", + "12:00", + "21:00" + ] + }, + "threads": { + "posts": [ + { + "order": 1, + "label": "1/5", + "content": "ํด์ง์ฐ๊ธ ์๋ฆฌ๊ธ๋ณด์ฅํ ํ๊ท ์์ต๋ฅ : ์ฐ 1~2%\n์ค์ ๋ฐฐ๋นํ(ETF ๋ฑ) ์ ํ ์: ์ฐ 5~8%๊น์ง ์ฐจ์ด๋ฉ๋๋ค.\n\n1์ธ๊ฐ๊ตฌ์ธ๋ฐ ์์ง๋ ์์ ๊ธ+์๋ฆฌ๊ธ๋ณด์ฅํ๋ง ์ฐ๊ณ ์๋์?\n๊ทธ ์ฐจ์ด, 10๋ ์ด๋ฉด ์ง ๊ณ์ฝ๊ธ ๋ฉ๋๋ค." + }, + { + "order": 2, + "label": "2/5", + "content": "๋ฌธ์ ๋ '์ธ์ , ์ผ๋ง๋' ๊ฐ์ํ๋์ ๋๋ค.\n\n๋ฌด์์ ๋ค ์ฎ๊ธฐ๋ฉด โ\n- ๋น์๊ธ ์์ด์ ๊ธ์ ํ์ํ ๋ ์ํด๋ณด๊ณ ๋งค๋\n- ํ์ด๋ฐ ์ ์ข์ ๋ ๋ชฐ๋นตํด์ ๋ง์ด๋์ค\n\n1์ธ๊ฐ๊ตฌ๋ ๋์ ๊ฐ์์ค ์ฌ๋์ด ์์ด์ ์ด ๋ฆฌ์คํฌ๊ฐ ๋ ์น๋ช ์ ์ ๋๋ค." + }, + { + "order": 3, + "label": "3/5", + "content": "๊ทธ๋์ ์์๊ฐ ์ค์ํฉ๋๋ค.\n\n1) ๋น์๊ธ 3~6๊ฐ์์น ๋จผ์ ํ๋ณด\n2) ๋ง๊ธฐ ๋๋ํ๋ ์์ ๊ธ๋ถํฐ ์์ฐจ ์ ํ\n3) ๋ชฐ๋นต ๋์ ๋ถํ ๋งค์\n4) ํด์ง์ฐ๊ธ์ DCํ์ด๋ฉด ์ค์ ๋ฐฐ๋นํ ์ ํ ๊ฐ๋ฅํ์ง ๋จผ์ ํ์ธ\n\n์ด ์์ ๋ฌด์ํ๊ณ ๊ธํ๊ฒ ๊ฐ์ํ๋ค ์ํด๋ณธ ๋ถ๋ค ์ง์ง ๋ง์ต๋๋ค." + }, + { + "order": 4, + "label": "4/5", + "content": "FAQ๋ก ์์ฃผ ๋์ค๋ ์ง๋ฌธ:\n\nQ. ์์ ๊ธ ํ๋ฒ์ ๋ค ETF๋ก ์ฎ๊ฒจ๋ ๋๋์?\nโ ์ ๋ ๋น์ถ. ๋ถํ ์ด ๋ต์ ๋๋ค.\n\nQ. ํด์ง์ฐ๊ธ๋ ์๋ฆฌ๊ธ๋ณด์ฅํ์์ ๋ฐ๊ฟ ์ ์๋์?\nโ ๋ค, ๋๋ถ๋ถ ๊ฐ๋ฅํฉ๋๋ค. ํ์ฌ ํด์ง์ฐ๊ธ ์ฌ์ ์ ํํ์ด์ง์์ ์ ํ ์ ์ฒญํ๋ฉด ๋ฉ๋๋ค." + }, + { + "order": 5, + "label": "5/5", + "content": "๊ฒฐ๋ก : 1์ธ๊ฐ๊ตฌ๋ ์์ ๋ง๋ ๋ณธ์ธ์ด ์ง์ ์ค๊ณํด์ผ ํฉ๋๋ค.\n์์ ๊ธ๋ง ๋ฏฟ์ง ๋ง๊ณ , ์ฒดํฌ๋ฆฌ์คํธ๋๋ก ํ๋์ฉ ๊ฐ์ํ๋ณด์ธ์.\n\n์ ์ฒด ์ฒดํฌ๋ฆฌ์คํธ + ์คํ ๋จ๊ณ๋ ์ฌ๊ธฐ์ ํ์ธํ์ธ์๐\nhttps://hoguasset.blogspot.com/2026/07/1-etf.html\n\n์ฌ๋ฌ๋ถ์ ์์ ๊ธ ๋น์ค์ด ๋ช %์ธ๊ฐ์?" + } + ], + "hashtags": [ + "#1์ธ๊ฐ๊ตฌ์ฌํ ํฌ", + "#์์ ๊ธ๋์ ํฌ์", + "#ETFํฌ์", + "#ํด์ง์ฐ๊ธ", + "#์ฃผ์ํฌ์" + ], + "engagementQuestion": "์ง๊ธ ์์ฐ์ ๋ช %๊ฐ ์์ ๊ธ์ธ๊ฐ์? ์์งํ ๋๊ธ๋ก ๊ณต์ ํด์ฃผ์ธ์ ๐", + "bestPostingTimes": [ + "08:00", + "19:00" + ] + }, + "tiktok": { + "title": "์์ ๊ธ๋ง ๋ฏฟ์๋ค๊ฐ ํด์ง์ฐ๊ธ 10๋ ์น ๋ ๋ฆฐ ์ด์ ", + "thumbnailText": "์์ ๊ธ vs ETF\n10๋ ํ ์ฐจ์ด ์คํ?!", + "scenes": [ + { + "time": "0-3์ด", + "text": "์์ ๊ธ ์ฐ 2% vs ETF ์ฐ 8%, 10๋ ์ด๋ฉด ์ง ๊ณ์ฝ๊ธ ์ฐจ์ด๋ฉ๋๋ค", + "direction": "ํ๋ฉด ์ ์ค์ ํด๋ก์ฆ์ , ์ซ์ ํฌ๊ฒ ์ค๋ฒ๋ ์ด", + "sound": "๊ธด์ฅ๊ฐ ์๋ ํ ์ฌ์ด๋ (๋ฉ๋ ํจ๊ณผ์)" + }, + { + "time": "3-15์ด", + "text": "1์ธ๊ฐ๊ตฌ๋ ๋ถ์๊ฐ์กฑ๋ ์์ง๋ง ๋์ ์์ ๋ง๋ ์์ด์\n์์ ๊ธ๋ง ๋ถ๋ค๊ณ ์์ผ๋ฉด ๋ฌผ๊ฐ์์น๋ฅ ๋ ๋ชป ๋ฐ๋ผ์ก์ต๋๋ค", + "direction": "์ธ๋ฌผ ์ ๋ฉด talking head, ์์ง์ผ๋ก ๊ฐ์กฐ", + "sound": "์์ํ ๋ฐฐ๊ฒฝ์ ํ์ด๋์ธ" + }, + { + "time": "15-35์ด", + "text": "๊ฐ์ํ๊ธฐ ์์ 3๋จ๊ณ\n1๏ธโฃ ๋น์๊ธ 3~6๊ฐ์์น ๋จผ์ ํ๋ณด\n2๏ธโฃ ๋ง๊ธฐ ์์ ๊ธ๋ถํฐ ์์ฐจ ์ ํ\n3๏ธโฃ ํด์ง์ฐ๊ธ ์ค์ ๋ฐฐ๋นํ ์ ํ ํ์ธ", + "direction": "ํ ์คํธ ์ฌ๋ผ์ด๋ 3์ฅ ์ ํ, ์๊ฐ๋ฝ์ผ๋ก ์ซ์ ํ์", + "sound": "ํ์ดํ ํจ๊ณผ์ + ๋ฆฌ๋ฌ๊ฐ ์๋ ๋ฐฐ๊ฒฝ์" + }, + { + "time": "35-50์ด", + "text": "๋ชฐ๋นต์ ์ ๋ ๊ธ์ง!\nํ๋ฒ์ ๋ค ์ฎ๊ธฐ๋ฉด ํ์ด๋ฐ ๋ฆฌ์คํฌ ๊ทธ๋๋ก ๋ ์์ต๋๋ค\n๋ถํ ๋งค์๊ฐ ๋ต์ ๋๋ค", + "direction": "๊ฒฝ๊ณ ์์ด์ฝ ์ค๋ฒ๋ ์ด, ์์ฌ๋ ์ ์ค์ฒ", + "sound": "๊ฒฝ๊ณ ์ ํจ๊ณผ (์๋น )" + }, + { + "time": "50-60์ด", + "text": "์ ์ฒด ์ฒดํฌ๋ฆฌ์คํธ๋ ๋ธ๋ก๊ทธ์์ ํ์ธํ์ธ์\n๋๊ธ์ '๋๋ ๊ฐ์ํ๋' ๋จ๊ฒจ์ฃผ์ธ์", + "direction": "ํ๋ฉด ํ๋จ ๋งํฌ ์ ๋ ํ์ดํ, ์๊ฐ๋ฝ์ผ๋ก ํ๋กํ ๊ฐ๋ฆฌํด", + "sound": "์ ๋นํธ ๋ง๋ฌด๋ฆฌ ์ฌ์ด๋" + } + ], + "fullScript": "์์ ๊ธ ์ฐ 2%, ETF ์ฐ 8%. 10๋ ์ด๋ฉด ์ง ๊ณ์ฝ๊ธ ์ฐจ์ด๊ฐ ๋ฉ๋๋ค. 1์ธ๊ฐ๊ตฌ๋ ๋ถ์๊ฐ์กฑ๋ ์์ง๋ง ๋์ ์์ ๋ง๋ ์ค์ค๋ก ๋ง๋ค์ด์ผ ํด์. ์์ ๊ธ๋ง ๋ถ๋ค๊ณ ์์ผ๋ฉด ๋ฌผ๊ฐ์์น๋ฅ ๋ ๋ชป ๋ฐ๋ผ์ก์ต๋๋ค. ๊ฐ์ํ๊ธฐ ์์, 3๋จ๊ณ๋ก ์๋ ค๋๋ฆด๊ฒ์. ์ฒซ์งธ, ๋น์๊ธ 3~6๊ฐ์์น ๋จผ์ ํ๋ณดํ์ธ์. ๋์งธ, ๋ง๊ธฐ ๋๋ํ๋ ์์ ๊ธ๋ถํฐ ์์ฐจ์ ์ผ๋ก ์ ํํ์ธ์. ์ ์งธ, ํด์ง์ฐ๊ธ ์ค์ ๋ฐฐ๋นํ ์ ํ ๊ฐ๋ฅํ์ง ๊ผญ ํ์ธํ์ธ์. ์ฌ๊ธฐ์ ์ค์ํ ๊ฒ, ๋ชฐ๋นต์ ์ ๋ ๊ธ์ง์ ๋๋ค. ํ๋ฒ์ ๋ค ์ฎ๊ธฐ๋ฉด ํ์ด๋ฐ ๋ฆฌ์คํฌ๋ฅผ ๊ทธ๋๋ก ๋ ์๊ฒ ๋ผ์. ๋ถํ ๋งค์๊ฐ ๋ต์ ๋๋ค. ์ ์ฒด ์ฒดํฌ๋ฆฌ์คํธ์ ์คํ ๋จ๊ณ๋ ๋ธ๋ก๊ทธ์์ ํ์ธํ์ธ์. ๋๊ธ์ '๋๋ ๊ฐ์ํ๋' ๋จ๊ฒจ์ฃผ์ธ์!", + "commentBait": "์ฌ๋ฌ๋ถ์ ์์ ๊ธ ๋น์ค์ด ๋ช %์ธ๊ฐ์? ๋๊ธ๋ก ์๋ ค์ฃผ์ธ์!", + "hashtags": [ + "#fyp", + "#foryou", + "#์ฌํ ํฌ", + "#1์ธ๊ฐ๊ตฌ์ฌํ ํฌ", + "#ETFํฌ์", + "#์์ ๊ธ๋์ ํฌ์", + "#ํด์ง์ฐ๊ธ", + "#์ฃผ์ํฌ์", + "#์ฌํ ํฌ์ด๋ณด", + "#๋จธ๋ํ" + ], + "backgroundMusic": { + "genre": "Lo-fi Hip Hop / Corporate Upbeat", + "mood": "์ ๋ขฐ๊ฐ ์์ผ๋ฉด์ ์ด์ง ๊ธด์ฅ๊ฐ ๋๋ ๋ถ์๊ธฐ" + }, + "bestPostingTimes": [ + "07:00", + "20:00", + "23:00" + ] + }, + "keyword": "1์ธ๊ฐ๊ตฌ ์์ ๊ธ ๋์ ์ฃผ์ยทETF ๊ฐ์ํ๊ธฐ ๋ฐฉ๋ฒ", + "trendDirection": "stable" + }, + "socialPublished": { + "instagram": { + "skipped": true, + "reason": "SOCIAL_AUTO_PUBLISH=false" + }, + "threads": { + "skipped": true, + "reason": "SOCIAL_AUTO_PUBLISH=false" + }, + "tiktok": { + "skipped": true, + "reason": "SOCIAL_AUTO_PUBLISH=false" + } + } + } + ] + }, + { + "runAt": "2026-07-19T06:10:05.433719", + "date": "2026-07-19", + "keywords": [ + "์ฌ๋ฆ ํด๊ฐ ์์ ์์ฝ ๋น๊ต ์์ด๋น์ค๋น ์ผ๋์ ์ฌ๊ธฐ์ด๋" + ], + "postsGenerated": 0, + "bloggerUploaded": 0, + "errors": 1, + "errorMessages": [ + "AdSense ์ ํด ์ฝํ ์ธ ๊ฐ์ง โ ์ ๋ก๋ ์ทจ์: '์ฌ๋ฆ ํด๊ฐ ์์, ์์ด๋น์ค๋น vs ์ผ๋์ vs ์ฌ๊ธฐ์ด๋ ๋ญ๊ฐ ๋์๊น ๋ฐ์ ธ๋ดค์ต๋๋ค' (์ ์: 61/100)" + ], + "imagesInserted": 0, + "totalWords": 0, + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "platforms": { + "blogger": 0 + }, + "earnings": { + "totalPosts": 86, + "estimatedDailyRevenue": 154.8, + "estimatedMonthlyRevenue": 4644.0, + "estimatedYearlyRevenue": 56502.0, + "avgCPC": 0.9, + "currency": "USD" + }, + "posts": [] + }, + { + "runAt": "2026-07-19T06:01:58.457611", + "date": "2026-07-19", + "keywords": [ + "๊ฐ์๋ ์ผ์ฒ ์ฌ๋ฆ ํผ์์ง ๊ณ๊ณก ํญํฌ ์ถ์ฒ" + ], + "postsGenerated": 1, + "bloggerUploaded": 1, + "errors": 0, + "errorMessages": [], + "imagesInserted": 1, + "totalWords": 3984, + "blogId": "blog1", + "blogName": "HOGU What?", + "platforms": { + "blogger": 1 + }, + "earnings": { + "totalPosts": 87, + "estimatedDailyRevenue": 156.6, + "estimatedMonthlyRevenue": 4698.0, + "estimatedYearlyRevenue": 57159.0, + "avgCPC": 0.9, + "currency": "USD" + }, + "posts": [ + { + "title": "๊ฐ์๋ ์ผ์ฒ ์ฌ๋ฆ ํผ์์ง ๋ฌด๋ฆ๊ณ๊ณก ์ํญ ํญํฌ ์ถ์ฒ ํ๊ธฐ ์ ๋ฆฌ", + "keyword": "๊ฐ์๋ ์ผ์ฒ ์ฌ๋ฆ ํผ์์ง ๊ณ๊ณก ํญํฌ ์ถ์ฒ", + "blogUrl": "https://www.hoguwhat.com/2026/07/blog-post_19.html", + "imagesInserted": 1, + "wordCount": 3984, + "contentPreview": "๋งค๋ 7์ ๋ง์ด ๋๋ฉด ํฌํธ ๊ฒ์์ฐฝ์ ๊ฐ์๋ ์ผ์ฒ ์ฌ๋ฆ ํผ์์ง๋ฅผ ์น๋ ์ฌ๋์ด ๋์ ๋๊ฒ ๋์ด๋ฉ๋๋ค. ๋ํด์ ํด์์์ฅ์ ์ด๋ฏธ ์ฌ๋์ผ๋ก ๊ฐ๋ ์ฐฌ ์ง ์ค๋๊ณ , ๊ณ๊ณก์ด๋ ํญํฌ ์ชฝ์ผ๋ก ๋ฐ๊ธธ์ ๋๋ฆฌ๋ ๋ถ๋ค์ด ๋ง๋ค๋ ์ด์ผ๊ธฐ๋ฅผ ์ฌํ ์ปค๋ฎค๋ํฐ์์ ์์ฃผ ์ ํฉ๋๋ค. ๋ง๋ฆฐํํ๋ ์ฌ๋ฆ๋ง๋ค ์ด๋๋ก ๋ ๋ ์ง ๊ณ ๋ฏผํ๋ ๋ถ๋ค์ ํ๊ธฐ๋ฅผ ์ข ํฉํด๋ณด๋ฉด, ์ผ์ฒ ๋ฌด๋ฆ๊ณ๊ณก์ด ์ ๋ ์์ฃผ ์ธ๊ธ๋๋ค๋ ๊ฑธ ์...", + "faqCount": 3, + "faq": [ + { + "q": "๋ฌด๋ฆ๊ณ๊ณก ์ํญ ์ฝ์ค๋ ์์ด์ ํจ๊ป ๊ฐ๋ ๊ด์ฐฎ๋์?", + "a": "๊ณต๊ฐ๋ ์๋ฃ์ ๋ฐ๋ฅด๋ฉด ๊ฒฝ์ฌ๊ฐ ์๋งํ๊ณ ํํํ ํธ์ด๋ผ ์์ด ๋๋ฐ ๋ฐฉ๋ฌธ์ด ์ด๋ ต์ง ์๋ค๋ ํ๊ธฐ๊ฐ ๋ง์ต๋๋ค. ๋ค๋ง ๋ฌผ๊ฐ ๋ฐ์๊ฐ ๋ฏธ๋๋ฌ์ธ ์ ์์ด ์ ๋ฐ ์ ํ์ ์ฃผ์๊ฐ ํ์ํฉ๋๋ค." + }, + { + "q": "์ฑ์๊ธฐ์๋ ์ธ์ ๋ฐฉ๋ฌธํ๋ ๊ฒ ์ข์๊น์?", + "a": "์ฃผ์ฐจ์ ์ธํ ๋ฌธ์ ๋ฅผ ๊ฐ์ํ๋ฉด ์ค์ 10์ ์ด์ ๋์ฐฉ์ ๊ถํ๋ ํ๊ธฐ๊ฐ ๋ง์ต๋๋ค. ์คํ์๋ ์ฃผ์ฐจ์ฅ์ด ๋ถ๋น ๊ฐ๋ฅ์ฑ์ด ๋๋ค๊ณ ํฉ๋๋ค." + }, + { + "q": "์ํญ๊น์ง ์๋ณต ์์ ์๊ฐ์ ์ผ๋ง๋ ๋๋์?", + "a": "๊ณต๊ฐ๋ ์ฌํ ์ ๋ณด์ ๋ฐ๋ฅด๋ฉด ํ ์๊ฐ ์ํ์ด๋ฉด ์๋ณต์ด ๊ฐ๋ฅํ๋ค๊ณ ํฉ๋๋ค. ๋ค๋ง ์ด ์ ๋ณด๋ ๋ค์ ์ค๋๋ ์๋ฃ๋ผ์ ์ต์ ํ๋ฐฉ๋ก ์ํฉ์ ๋ณ๋๋ก ํ์ธํ๋ ํธ์ด ์์ ํฉ๋๋ค." + } + ], + "factCheck": { + "checked": true, + "verdict": "warn", + "issues_found": 1, + "fixes_applied": 1, + "issues": [ + { + "problem": "์ถ์ฒ ์ฐ๋๊ฐ ๊ตฌ์ฒด์ ์ผ๋ก ๋ช ์๋์์ผ๋ ์๋ฃํฉ์ ๊ทผ๊ฑฐ๊ฐ ์๋ ๊ฒ์ฆ ๋ถ๊ฐ๋ฅํ ๋ ์ง ์ ๋ณด", + "fixed": true + } + ] + }, + "sources": [ + { + "title": "๋ฌด๋ฆ๊ณ๊ณก ์ฉ์ถํญํฌ(๊ฐ์)> ์ฌํ์ง", + "url": "https://korean.visitkorea.or.kr/detail/ms_detail.do?cotid=c675b4b8-dd5e-4b6b-ae93-bfce0565da0d" + }, + { + "title": "๋ฑ์ค๊ธฐ๊ฐ ์ค์น, ์๋ฆ์ด ์ค์ค์ค! ๋ํด ๋ฌด๋ฆ๊ณ๊ณก ์ํญ> ์ฌํ๊ธฐ์ฌ", + "url": "https://korean.visitkorea.or.kr/detail/rem_detail.do?cotid=d87a25cc-fe05-4baf-8b4b-ef27f114d4f6" + } + ], + "labels": [ + "์ผ์ฒ์ฌํ", + "๋ฌด๋ฆ๊ณ๊ณก์ํญ", + "๊ฐ์๋ํผ์์ง", + "๊ณ๊ณกํญํฌ์ถ์ฒ", + "์ฌ๋ฆ์ฌํ์ฝ์ค" + ], + "metaDescription": "2024๋ 7์ ๋ง ์ผ์ฒ ๋ฌด๋ฆ๊ณ๊ณก ์ํญ ์ฝ์ค๋ฅผ ์์ด ๋๊ณผ ํจ๊ป ๋ค๋ ์จ ํ๊ธฐ์ ๋๋ค. ์๋ณต ์์์๊ฐ๊ณผ ์ฃผ์ฐจ ์ํฉ, ์ค๋น๋ฌผ ์ฒดํฌ๋ฆฌ์คํธ๊น์ง ๊ฐ์๋ ์ผ์ฒ ์ฌ๋ฆ ํผ์์ง ๊ณ๊ณก ํญํฌ ์ถ์ฒ ์ ๋ณด๋ฅผ ์ค์ ๊ฒฝํ๊ณผ ๊ณต์ ์๋ด๋ฅผ ๋ฐํ์ผ๋ก ์ ๋ฆฌํ์ต๋๋ค.", + "adsenseCategory": "์ผ๋ฐ", + "articleType": "review", + "riskLevel": "medium", + "blogId": "blog1", + "blogName": "HOGU What?", + "socialContent": { + "instagram": { + "caption": "์ฒด๊ฐ์จ๋ 35๋์ ์์ด ๋ ๋ฐ๋ฆฌ๊ณ ๊ณ๊ณก ๋ค๋ ์จ ํ๊ธฐ ๐ (์๋ณต ์๊ฐ๊น์ง ๋ค ์ฌ๋ดค์ด์)\n\n๋ค๋ค ์ฌ๋ฆ ํผ์์ง ๊ณ ๋ฏผ ๋ง์ผ์ค ๊ฒ ๊ฐ์์ ์ผ์ฒ ๋ฌด๋ฆ๊ณ๊ณก ์ํญ ์ฝ์ค ์ค์ ํ๊ธฐ ์ ๋ฆฌํด์์ด์! ์ฃผ์ฐจ๋ถํฐ ์ค๋น๋ฌผ๊น์ง ์์์ผ ํธํ๊ฒ ๋ค๋ ์ฌ ์ ์๋๋ผ๊ณ ์.\n\n์ ์ฅ ํ์ ๐ ๋์ค์ ์ผ์ฒ ์ฌํ ๊ณํํ ๋ ๋ฐ๋ก ๊บผ๋ด๋ณด์ธ์!\n\n๐ ๋ฌด๋ฆ๊ณ๊ณก ์ํญ ์ฝ์ค ํต์ฌ ์ ๋ฆฌ\n1๏ธโฃ ์์ด ๋๋ฐ ๊ฐ๋ฅ ์ฌ๋ถ - ์ฝ์ค ๋์ด๋ ์ฒดํฌ ํฌ์ธํธ\n2๏ธโฃ ์๋ณต ์์์๊ฐ - ์๊ฐ๋ณด๋ค ์ฌ์ ๋กญ๊ฒ ์ก์์ผ ํจ\n3๏ธโฃ ์ฃผ์ฐจ ์ํฉ - ์ฑ์๊ธฐ ์ฃผ๋ง์ ์ด ์๊ฐ๋ ํผํ์ธ์\n4๏ธโฃ ์ค๋น๋ฌผ ์ฒดํฌ๋ฆฌ์คํธ - ์ ์ฑ๊ธฐ๋ฉด ํํํ๋ ๊ฒ๋ค\n5๏ธโฃ ์ฑ์๊ธฐ ๋ฐฉ๋ฌธ ์ถ์ฒ ์๊ฐ๋\n6๏ธโฃ ์ํญ ํฌํ ์คํ ์์น\n7๏ธโฃ ๊ณ๊ณก ๋ฌผ๋์ด ๊ฐ๋ฅ ๊ตฌ์ญ ์ ๋ณด\n\n๊ฐ์๋ ์ผ์ฒ ์ฌ๋ฆ ํผ์์ง ์ฐพ์ผ์ ๋ค๋ฉด ์ด ๊ณ๊ณก ํญํฌ ์ถ์ฒ ์ ์ฅํด๋์ธ์!\n\n์์ธํ ํ๊ธฐ์ ์ฌ์ง์ ๋ธ๋ก๊ทธ์์ ํ์ธํ์ค ์ ์์ด์ (ํ๋กํ ๋งํฌ)\n\n์ฌ์ฌ๋ฆ ๊ณ๊ณก ๋ค๋ ์ค์ค ๋ถ ๋๊ธ๋ก ์๋ ค์ฃผ์ธ์ ๐", + "hookLine": "์ฒด๊ฐ์จ๋ 35๋์ ์์ด ๋ ๋ฐ๋ฆฌ๊ณ ๊ณ๊ณก ๋ค๋ ์จ ํ๊ธฐ ๐ (์๋ณต ์๊ฐ๊น์ง ๋ค ์ฌ๋ดค์ด์)", + "storyHighlightTitle": "์ผ์ฒ๊ณ๊ณก", + "hashtags": { + "popular": [ + "#์ฌ๋ฆํด๊ฐ", + "#๊ตญ๋ด์ฌํ", + "#์ฌํ์คํ๊ทธ๋จ", + "#ํด๊ฐ", + "#ํผ์์ง", + "#์ฌ๋ฆ์ฌํ", + "#์ฃผ๋ง์ฌํ", + "#๊ฐ์กฑ์ฌํ", + "#ํ๋ง์ฌํ", + "#๊ตญ๋ด์ฌํ์ง์ถ์ฒ" + ], + "medium": [ + "#๊ฐ์๋์ฌํ", + "#์ผ์ฒ์ฌํ", + "#์ผ์ฒ๊ฐ๋ณผ๋งํ๊ณณ", + "#๊ณ๊ณก์ถ์ฒ", + "#ํญํฌ์ถ์ฒ", + "#๊ฐ์๋ํผ์์ง", + "#์์ด์๊ฐ๋ณผ๋งํ๊ณณ", + "#์ฌ๋ฆ์ฌํ์ฝ์ค", + "#๊ฐ์๋๊ณ๊ณก", + "#๋ฌผ๋์ด์ถ์ฒ" + ], + "niche": [ + "#๋ฌด๋ฆ๊ณ๊ณก์ํญ", + "#๋ฌด๋ฆ๊ณ๊ณก", + "#์ผ์ฒ๋ฌด๋ฆ๊ณ๊ณก", + "#์ํญํฌํ๊ธฐ", + "#์ผ์ฒ๋ฌผ๋์ด" + ] + }, + "bestPostingTimes": [ + "07:00", + "12:00", + "21:00" + ] + }, + "threads": { + "posts": [ + { + "order": 1, + "label": "1/5", + "content": "์ผ์ฒ ๋ฌด๋ฆ๊ณ๊ณก ์ํญ ์ฝ์ค, ์์ด ๋ ๋ฐ๋ฆฌ๊ณ ๊ฐ๋ค๊ฐ ์ง์ง ๋๋ ๊ฒ ์์ด์.\n\n์ฃผ์ฐจ์ฅ์์ ์ํญ๊น์ง ์๋ณต ์๊ฐ, ์ธํฐ๋ท ์ ๋ณด๋ ์ค์ ๋ก ๊ฑธ์ด๋ณด๋ ๊ฝค ์ฐจ์ด ๋๋๋ผ๊ณ ์ ๐ \n\n์ด๊ฑฐ ๋ชจ๋ฅด๊ณ ๊ฐ์ผ๋ฉด ๊ณํ ๋ค ํ์ด์ง ๋ป..." + }, + { + "order": 2, + "label": "2/5", + "content": "๊ฐ์๋ ์ฌ๋ฆ ํผ์์ง ์ฐพ์ ๋ ๊ณ๊ณก์ด๋ ๋ฐ๋ค๋ ๋ ๊ณ ๋ฏผ๋์์์.\n\n๊ทผ๋ฐ ๋ฌด๋ฆ๊ณ๊ณก์ ๊ทธ๋๋ ์๊ณ ์์ฌ๋ ๊ตฌ๊ฐ๋ณ๋ก ๋ฌ๋ผ์ ์์ด ์๋ ์ง๋ ๊ฐ๋งํ๋๋ผ๊ณ ์.\n\n๋ค๋ง ์ฑ์๊ธฐ ์ฃผ๋ง์ ์ฃผ์ฐจ๊ฐ ์ง์ง ๊ด๊ฑด์ด์์ด์." + }, + { + "order": 3, + "label": "3/5", + "content": "์ค๋น๋ฌผ ์ฒดํฌ๋ฆฌ์คํธ๋ ์ค์ ๋ก ์จ๋ณด๊ณ ์ ๋ฆฌํ์ด์.\n\n์์ธ๋ก ๋ค๋ค ์ ์ฑ๊ฒจ์ ํ์ฅ์์ ์์ฌ์ํ๋ ๋ฌผ๊ฑด๋ค์ด ์๋๋ผ๊ณ ์. ์์ด ๋๋ฐ์ด๋ฉด ํนํ ๋์." + }, + { + "order": 4, + "label": "4/5", + "content": "์ฑ์๊ธฐ์ ์ธ์ ๊ฐ์ผ ์ฌ๋ ๋ ๋ถ๋น์ง๋ ์ค์ ๋ฐฉ๋ฌธ ์๊ฐ๋ ๊ธฐ์ค์ผ๋ก ์ ๋ฆฌํ์ด์.\n\n๊ฐ์ ๊ณ๊ณก๋ ์๊ฐ๋์ ๋ฐ๋ผ ๋ถ์๊ธฐ๊ฐ ์์ ๋ค๋ฅด๋๋ผ๊ณ ์." + }, + { + "order": 5, + "label": "5/5", + "content": "๊ฐ์๋ ์ผ์ฒ ์ฌ๋ฆ ํผ์์ง ๊ณ๊ณก ํญํฌ ์ถ์ฒ, ์ค์ ํ๊ธฐ์ ๊ณต์ ์๋ด ๊ธฐ์ค์ผ๋ก ์๋ณต ์์์๊ฐยท์ฃผ์ฐจยท์ค๋น๋ฌผ๊น์ง ์ ๋ถ ์ ๋ฆฌํ์ด์.\n\n์ฌ์ฌ๋ฆ ๊ณ๊ณก ์ฌํ ๊ณํ ์ค์ด์๋ฉด ๋์ ๋ ๊ฒ ๊ฐ์์.\n\n์ฌ๋ฌ๋ถ์ ์ฌ๋ฆ ํผ์์ง๋ก ๊ณ๊ณกํ? ๋ฐ๋คํ? ๋๊ธ๋ก ์๋ ค์ฃผ์ธ์ ๐\n\nhttps://www.hoguwhat.com/2026/07/blog-post_19.html" + } + ], + "hashtags": [ + "#์ผ์ฒ์ฌํ", + "#๋ฌด๋ฆ๊ณ๊ณก์ํญ", + "#๊ฐ์๋ํผ์์ง", + "#๊ณ๊ณกํญํฌ์ถ์ฒ", + "#์ฌ๋ฆ์ฌํ์ฝ์ค" + ], + "engagementQuestion": "์ฌ๋ฌ๋ถ์ ์ฌ๋ฆ ํผ์์ง๋ก ๊ณ๊ณกํ? ๋ฐ๋คํ?", + "bestPostingTimes": [ + "08:00", + "19:00" + ] + }, + "tiktok": { + "title": "์์ด ๋ ๋ฐ๋ฆฌ๊ณ ์ผ์ฒ ๋ฌด๋ฆ๊ณ๊ณก ์ํญ ๋ค๋ ์จ ๋ฆฌ์ผํ๊ธฐ", + "thumbnailText": "์๋ณต ์๊ฐ ์ค์ ๋ก ์ฌ๋ดค์ต๋๋ค", + "scenes": [ + { + "time": "0-3์ด", + "text": "์ผ์ฒ ๊ณ๊ณก ์๋ณต ์๊ฐ, ์ง์ง ์ด๋งํผ ๊ฑธ๋ฆผ ๐ณ", + "direction": "์ํญ ํญํฌ ํด๋ก์ฆ์ โ ๋น ๋ฅธ ์ค์ธ", + "sound": "๊ธด์ฅ๊ฐ ์คํ ์ด ํจ๊ณผ์" + }, + { + "time": "3-15์ด", + "text": "์ฌ๋ฆ ํผ์์ง ๊ณ ๋ฏผ๋๋ค๋ฉด... ๊ฐ์๋ ์ผ์ฒ ๋ฌด๋ฆ๊ณ๊ณก ์ํญ ์ฝ์ค", + "direction": "์ฃผ์ฐจ์ฅ ๋์ฐฉ ์ฅ๋ฉด, ์์ด๋ค๊ณผ ๊ฑท๋ ๋ท๋ชจ์ต", + "sound": "์์ํ ๋ฐฐ๊ฒฝ์ ์์" + }, + { + "time": "15-35์ด", + "text": "์๋ณต ์์์๊ฐ / ์ฃผ์ฐจ ์ํฉ / ์ค๋น๋ฌผ ์ฒดํฌ๋ฆฌ์คํธ ์ ๋ถ ์ ๋ฆฌ", + "direction": "ํ๋ฉด ๋ถํ ๋ก ์ ๋ณด 3๊ฐ ์์ฐจ ๋ฑ์ฅ, ํ ์คํธ ์ ๋๋ฉ์ด์ ", + "sound": "์ ๋นํธ ์ ํ์" + }, + { + "time": "35-50์ด", + "text": "์ฑ์๊ธฐ์ ์ด ์๊ฐ๋ ํผํ์ธ์, ์์ด ๋๋ฐ๋ ์ด ๊ตฌ๊ฐ์ด๋ฉด ์์ ", + "direction": "๊ณ๊ณก ๋ฌผ๋์ด ์ค์ ์ฅ๋ฉด, ์๋ง ๊ฐ์กฐ", + "sound": "๊ฒฝ์พํ ๋ฐฐ๊ฒฝ์ ์ง์" + }, + { + "time": "50-60์ด", + "text": "์์ธํ ํ๊ธฐ๋ ํ๋กํ ๋งํฌ์์ ํ์ธํ์ธ์!", + "direction": "๋ธ๋ก๊ทธ ํ๋ฉด ์บก์ฒ + ์๊ฐ๋ฝ ํด๋ฆญ ์ฐ์ถ", + "sound": "ํด๋ฆญ ํจ๊ณผ์ + ์์ํธ๋ก ๋นํธ" + } + ], + "fullScript": "์ผ์ฒ ๊ณ๊ณก ์๋ณต ์๊ฐ, ์ง์ง ์ด๋งํผ ๊ฑธ๋ฆฝ๋๋ค. ์ฌ๋ฆ ํผ์์ง ๊ณ ๋ฏผ๋์์ฃ ? ๊ฐ์๋ ์ผ์ฒ ๋ฌด๋ฆ๊ณ๊ณก ์ํญ ์ฝ์ค, ์์ด ๋ ๋ฐ๋ฆฌ๊ณ ์ง์ ๋ค๋ ์์ด์. ์๋ณต ์์์๊ฐ, ์ฃผ์ฐจ ์ํฉ, ์ค๋น๋ฌผ ์ฒดํฌ๋ฆฌ์คํธ๊น์ง ์ ๋ถ ์ ๋ฆฌํ์ต๋๋ค. ์ฑ์๊ธฐ์ ์ด ์๊ฐ๋๋ ํผํ์๊ณ , ์์ด ๋๋ฐ์ด๋ผ๋ฉด ์ด ๊ตฌ๊ฐ๋ถํฐ ์์ํ์ธ์. ์์ธํ ํ๊ธฐ๋ ํ๋กํ ๋งํฌ์์ ํ์ธํ์ค ์ ์์ด์!", + "commentBait": "์ฌ๋ฌ๋ถ์ ๊ณ๊ณกํ vs ๋ฐ๋คํ? ๋๊ธ๋ก ํฌํํด์ฃผ์ธ์!", + "hashtags": [ + "#fyp", + "#foryou", + "#์ผ์ฒ์ฌํ", + "#๋ฌด๋ฆ๊ณ๊ณก", + "#๊ฐ์๋์ฌํ", + "#์ฌ๋ฆํด๊ฐ", + "#๊ณ๊ณก์ถ์ฒ", + "#๊ฐ์กฑ์ฌํ", + "#๊ตญ๋ด์ฌํ", + "#ํผ์์ง์ถ์ฒ" + ], + "backgroundMusic": { + "genre": "lofi chill / ์ฌ๋ฆ ํ", + "mood": "์ฒญ๋ํ๊ณ ๊ฒฝ์พํ ์ฌ๋ฆ ๋ถ์๊ธฐ" + }, + "bestPostingTimes": [ + "07:00", + "20:00", + "23:00" + ] + }, + "keyword": "๊ฐ์๋ ์ผ์ฒ ์ฌ๋ฆ ํผ์์ง ๊ณ๊ณก ํญํฌ ์ถ์ฒ", + "trendDirection": "stable" + }, + "socialPublished": { + "instagram": { + "skipped": true, + "reason": "SOCIAL_AUTO_PUBLISH=false" + }, + "threads": { + "skipped": true, + "reason": "SOCIAL_AUTO_PUBLISH=false" + }, + "tiktok": { + "skipped": true, + "reason": "SOCIAL_AUTO_PUBLISH=false" + } + } + } + ] + }, + { + "runAt": "2026-07-18T23:24:51.751946", + "date": "2026-07-18", + "keywords": [ + "ETF ์์ฅ ์ต์ ๋ํฅ ์๋ก ๋์จ ์ํ ์ ๋ฆฌ" + ], + "postsGenerated": 1, + "bloggerUploaded": 1, + "errors": 0, + "errorMessages": [], + "imagesInserted": 1, + "totalWords": 4265, + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "platforms": { + "blogger": 1 + }, + "earnings": { + "totalPosts": 87, + "estimatedDailyRevenue": 156.6, + "estimatedMonthlyRevenue": 4698.0, + "estimatedYearlyRevenue": 57159.0, + "avgCPC": 0.9, + "currency": "USD" + }, + "posts": [ + { + "title": "ETF ์์ฅ ์ต์ ๋ํฅ ์ ๋ฆฌ, ์ ๊ท ์์ฅ ์ํ ์ฒดํฌ", + "keyword": "ETF ์์ฅ ์ต์ ๋ํฅ ์๋ก ๋์จ ์ํ ์ ๋ฆฌ", + "blogUrl": "https://hoguasset.blogspot.com/2026/07/etf_0282569211.html", + "imagesInserted": 1, + "wordCount": 4265, + "contentPreview": "์์ฆ ์ฆ๊ถ์ฌ ์ฑ์ ์ผ๋ณด๋ฉด ์์ ๋ณด๋ค '์ปค๋ฒ๋์ฝ'์ด๋ผ๋ ๋จ์ด๊ฐ ๋ถ์ฉ ์์ฃผ ๋ณด์ ๋๋ค. ์๋ฐฐ๋น์ ์ฑ๊ธฐ๊ณ ์ถ์ดํ๋ ํฌ์์๋ค์ด ๋๋ฉด์ ์์ฐ์ด์ฉ์ฌ๋ค๋ ๊ด๋ จ ์ํ์ ์๋ฌ์ ๋ด๋๋ ๋ถ์๊ธฐ์ธ๋ฐ์. ์ค์ ๋ก ํํ์์ฐ์ด์ฉ์ ์ต๊ทผ 'PLUS ์ปค๋ฒ๋์ฝ ETF'๋ฅผ ์๋ก ์์ฅํ๋ฉฐ ์ด๋ฐ ํ๋ฆ์ ๋์ฐธํ์ต๋๋ค. ETF๋ ์ด์ ์ฃผ์ ์ด๋ณด์๋ถํฐ ์ํด๋ฅผ ์ค๋นํ๋ ์ง์ฅ์ธ๊น์ง, ๊ณ์ข ํ๋๋ง ์์ผ๋ฉด ๋...", + "faqCount": 3, + "faq": [ + { + "q": "์ปค๋ฒ๋์ฝ ETF๋ ์ผ๋ฐ ์ง์์ถ์ข ETF์ ๋ฌด์์ด ๋ค๋ฅธ๊ฐ์?", + "a": "์ปค๋ฒ๋์ฝ ETF๋ ๊ธฐ์ด์์ฐ์ ๋ณด์ ํ๋ฉด์ ์ฝ์ต์ ์ ๋งค๋ํด ์ต์ ํ๋ฆฌ๋ฏธ์์ผ๋ก ๋ถ๋ฐฐ๊ธ ์ฌ์์ ๋ง๋ จํ๋ ๊ตฌ์กฐ์ ๋๋ค. ๋งค๋ฌ ์ผ์ ํ ํ๊ธํ๋ฆ์ ๊ธฐ๋ํ ์ ์์ง๋ง, ๊ธฐ์ด์์ฐ์ด ๊ธ๋ฑํ ๊ฒฝ์ฐ ์์น๋ถ์ ์จ์ ํ ๋๋ฆฌ์ง ๋ชปํ ์ ์์ด ์ผ๋ฐ ์ง์์ถ์ข ETF์๋ ์์ต ๊ตฌ์กฐ๊ฐ ๋ค๋ฆ ๋๋ค." + }, + { + "q": "์ ๊ท ์์ฅ๋ ETF๋ ๋ฐ๋ก ๋งค์ํด๋ ๊ด์ฐฎ์๊ฐ์?", + "a": "์์ฅ ์ด๊ธฐ์๋ ๊ฑฐ๋๋์ด ์ ์ด ๋งค์ยท๋งค๋ ํธ๊ฐ ์ฐจ์ด(์คํ๋ ๋)๊ฐ ํฌ๊ฒ ๋ฒ์ด์ง ์ ์์ต๋๋ค. ํฌ์์ค๋ช ์์ ์์์ฐ์ด์ก, ๋ถ๋ฐฐ ์ด๋ ฅ ๋ฑ์ ๋จผ์ ํ์ธํ ๋ค ์ ์คํ๊ฒ ์ ๊ทผํ๋ ๊ฒ์ด ์ข์ต๋๋ค." + }, + { + "q": "ETF ์ํ ์ ๋ณด๋ ์ด๋์ ํ์ธํ ์ ์๋์?", + "a": "ํ๊ตญ๊ฑฐ๋์ ์ ๋ณด๋ฐ์ดํฐ์์คํ (data.krx.co.kr)๊ณผ ๊ฐ ์์ฐ์ด์ฉ์ฌ ๊ณต์ ํํ์ด์ง์์ ๊ธฐ์ด์ง์, ์ด๋ณด์, ์์์ฐ๊ฐ์น(NAV), ๋ถ๋ฐฐ ์ด๋ ฅ ๋ฑ์ ํ์ธํ ์ ์์ต๋๋ค." + } + ], + "factCheck": { + "checked": true, + "verdict": "pass", + "issues_found": 0, + "fixes_applied": 0, + "issues": [] + }, + "sources": [ + { + "title": "[์ฆ์์ ์ํ] ํ๊ตญํฌ์์ ํ์ด์ฉ ๋ฏธ๊ตญ ์คํฉ ํฌ์ ETF", + "url": "https://www.yna.co.kr/view/AKR20210804128600002" + }, + { + "title": "[์ฆ์์ ์ํ] ๊ธ๋ก๋ฒ ๋ํ์ง์ยท๋ฏธ๊ตญ ์นํฐ ETF 6์ข ", + "url": "https://www.yna.co.kr/view/AKR20210407124400002" + }, + { + "title": "์ฆ๊ถยท์ด์ฉยท์ ํ์ฌ, ํฌ์ ์๋ฃจ์ ๊ฒฝ์ ๋ณธ๊ฒฉํ", + "url": "https://www.pressman.kr/news/articleView.html?idxno=102400" + } + ], + "labels": [ + "ETF์์ฅ๋ํฅ", + "์ ๊ทETF์ํ", + "์ปค๋ฒ๋์ฝETF", + "PLUS์ปค๋ฒ๋์ฝ", + "ํํ์์ฐ์ด์ฉ" + ], + "metaDescription": "2026๋ ETF ์์ฅ ์ต์ ๋ํฅ๊ณผ ์๋ก ๋์จ ์ ๊ท ์ํ์ ์ ๋ฆฌํ์ต๋๋ค. ์ปค๋ฒ๋์ฝ ETF ์ ์ํ๋ถํฐ ๊ณผ๊ฑฐ ์์ฅ ์ฌ๋ก ๋น๊ต, ํฌ์ ์ ์ฒดํฌ๋ฆฌ์คํธ๊น์ง ํ ๋ฒ์ ํ์ธํด๋ณด์ธ์.", + "adsenseCategory": "์ผ๋ฐ", + "articleType": "investment", + "riskLevel": "high", + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "socialContent": { + "instagram": { + "caption": "2026๋ ์๋ก ์์ฅ๋ ETF, ๋ฒ์จ ๋ช ๊ฐ์ธ์ง ์์ธ์? ๐\n์ปค๋ฒ๋์ฝ ETF๋ง ์ด๋ฒ ๋ฌ์ 3์ข ๋ชฉ ์ถ๊ฐ ์์ฅ๋์ต๋๋ค.\n\n์ง์์ถ์ข ETF๋ ๋ญ๊ฐ ๋ค๋ฅธ์ง, ์ ๊ท ์์ฅ ์ข ๋ชฉ ๋ฐ๋ก ์ฌ๋ ๋๋์ง ํท๊ฐ๋ฆฌ์ จ๋ค๋ฉด ์ ์ฅ ํ์ ๐\n\nโ 2026 ETF ์์ฅ ์ฒดํฌ๋ฆฌ์คํธ\n1๏ธโฃ ์ปค๋ฒ๋์ฝ ETF, ์๋ฐฐ๋น ๋งค๋ ฅ์ ์ ๊ท ์ํ ์๋ฐ๋ผ ์์ฅ\n2๏ธโฃ PLUS ์ปค๋ฒ๋์ฝ, ํํ์์ฐ์ด์ฉ ๋ฑ ์ด์ฉ์ฌ ๊ฒฝ์ ์ฌํ\n3๏ธโฃ ๊ณผ๊ฑฐ ์ ๊ท ์์ฅ ETF ์ฌ๋ก ๋น๊ต๋ก ์ฅ์ ๊ฐ๋ฆฌ๊ธฐ\n4๏ธโฃ ์ง์์ถ์ข ETF vs ์ปค๋ฒ๋์ฝ ETF ๊ตฌ์กฐ ์ฐจ์ด ์ดํดํ๊ธฐ\n5๏ธโฃ ์ ๊ท ์์ฅ ETF ์์ฅ ์ด๊ธฐ ์ ๋์ฑ ์ฒดํฌ ํ์\n6๏ธโฃ ํฌ์ ์ ๋ฐ๋์ ํ์ธํ ์ฒดํฌ๋ฆฌ์คํธ 5๊ฐ์ง\n7๏ธโฃ ๋ฐฐ๋น์์ต๋ฅ ๋ง ๋ณด๊ณ ํฌ์ํ๋ฉด ์ ๋๋ ์ด์ \n\n๐ ์์ธํ ๋ด์ฉ์ ๋ธ๋ก๊ทธ์์ ์ ์ฒด ํ์ธํ์ธ์\n๋๊ธ๋ก ๊ด์ฌ์๋ ETF ์ข ๋ชฉ ๋จ๊ฒจ์ฃผ์๋ฉด ๋ต๋ณ ๋๋ฆด๊ฒ์ ๐ฌ\n\n#์ ์ฅํด๋๊ณ ํ์ํ ๋ํ์ธํ์ธ์", + "hookLine": "2026๋ ์๋ก ์์ฅ๋ ETF, ๋ฒ์จ ๋ช ๊ฐ์ธ์ง ์์ธ์? ๐", + "storyHighlightTitle": "ETF์ ๋ฆฌ", + "hashtags": { + "popular": [ + "#ETF", + "#์ฃผ์ํฌ์", + "#์ฌํ ํฌ", + "#ํฌ์์ ๋ณด", + "#๊ฒฝ์ ๊ณต๋ถ", + "#์ฃผ์", + "#๋ฐฐ๋น์ฃผ", + "#์๋ฐฐ๋น", + "#๊ธ์ต์ ๋ณด", + "#ํฌ์๊ฟํ" + ], + "medium": [ + "#ETF์์ฅ๋ํฅ", + "#์ ๊ทETF์ํ", + "#์ปค๋ฒ๋์ฝETF", + "#PLUS์ปค๋ฒ๋์ฝ", + "#ํํ์์ฐ์ด์ฉ", + "#ETFํฌ์", + "#๋ฐฐ๋นETF", + "#์ง์์ถ์ข ETF", + "#ETF๋น๊ต", + "#ํฌ์์ฒดํฌ๋ฆฌ์คํธ" + ], + "niche": [ + "#์ปค๋ฒ๋์ฝ์ ๋ต", + "#ETF์ ๊ท์์ฅ", + "#์์ฐ์ด์ฉ์ฌ๋น๊ต", + "#์๋ฐฐ๋นETF์ถ์ฒ", + "#ETFํฌ์์ด๋ณด" + ] + }, + "bestPostingTimes": [ + "07:00", + "12:00", + "21:00" + ] + }, + "threads": { + "posts": [ + { + "order": 1, + "label": "1/5", + "content": "2026๋ ์๋ฐ๊ธฐ์๋ง ์ปค๋ฒ๋์ฝ ETF ์ ๊ท ์์ฅ ์ข ๋ชฉ์ด ๊ธ์ฆํ์ต๋๋ค. ํํ์์ฐ์ด์ฉ PLUS ์ปค๋ฒ๋์ฝ์ ๋น๋กฏํด ์ฌ๋ฌ ์ด์ฉ์ฌ๊ฐ ๊ฒฝ์์ ์ผ๋ก ์ํ์ ๋ด๋๋ ์ค์ด์์. ์ ์ด๋ ๊ฒ ์ปค๋ฒ๋์ฝ ETF๊ฐ ๋จ๋ ๊ฑธ๊น์?" + }, + { + "order": 2, + "label": "2/5", + "content": "๋ฌธ์ ๋ '์๋ฐฐ๋น'์ด๋ผ๋ ๋จ์ด๋ง ๋ณด๊ณ ์ ๊ท ์์ฅ ETF์ ๋ฐ๋ก ํฌ์ํ๋ ๋ถ๋ค์ด ๋ง๋ค๋ ๊ฒ๋๋ค. ์ปค๋ฒ๋์ฝ ETF๋ ์ต์ ๋งค๋ ์ ๋ต์ ํ์ฉํด์ ์ผ๋ฐ ์ง์์ถ์ข ETF์ ์์ต ๊ตฌ์กฐ ์์ฒด๊ฐ ๋ค๋ฆ ๋๋ค." + }, + { + "order": 3, + "label": "3/5", + "content": "์ค์ ๋ก ๊ณผ๊ฑฐ ์ ๊ท ์์ฅ๋ ETF๋ค ์ค ์์ฅ ์ด๊ธฐ ์ ๋์ฑ ๋ถ์กฑ์ผ๋ก ์คํ๋ ๋ ์์ค์ ๋ณธ ์ฌ๋ก๊ฐ ์ ์ง ์์์ต๋๋ค. ์ ๊ท ์ํ์ผ์๋ก ๊ฑฐ๋๋๊ณผ ์์์ฐ ๊ท๋ชจ๋ฅผ ๋จผ์ ์ฒดํฌํด์ผ ํ๋ ์ด์ ์ ๋๋ค." + }, + { + "order": 4, + "label": "4/5", + "content": "๊ทธ๋์ ํฌ์ ์ ์ฒดํฌ๋ฆฌ์คํธ๊ฐ ์ค์ํฉ๋๋ค. 1) ๊ธฐ์ด์์ฐ ๊ตฌ์ฑ 2) ๋ถ๋ฐฐ์จ์ ์ง์๊ฐ๋ฅ์ฑ 3) ์์ฅ ํ ๊ฑฐ๋๋ ์ถ์ด 4) ์ด์ฉ์ฌ ํธ๋๋ ์ฝ๋๊น์ง ๊ผผ๊ผผํ ๋ด์ผ ์์ค์ ์ค์ผ ์ ์์ด์." + }, + { + "order": 5, + "label": "5/5", + "content": "2026๋ ETF ์์ฅ ๋ํฅ๊ณผ ์ ๊ท ์ํ ์ ์ฒด ์ ๋ฆฌ, ํฌ์ ์ฒดํฌ๋ฆฌ์คํธ๊น์ง ๋ธ๋ก๊ทธ์ ์์ธํ ์ ๋ฆฌํ์ต๋๋ค. ์ฌ๋ฌ๋ถ์ ์ปค๋ฒ๋์ฝ ETF์ ์ง์์ถ์ข ETF ์ค ์ด๋ ์ชฝ์ ๋ ์ ํธํ์๋์? ๋๊ธ๋ก ์๊ฒฌ ๋จ๊ฒจ์ฃผ์ธ์ ๐\nhttps://hoguasset.blogspot.com/2026/07/etf_0282569211.html" + } + ], + "hashtags": [ + "#ETF์์ฅ๋ํฅ", + "#์ปค๋ฒ๋์ฝETF", + "#์ ๊ทETF์ํ", + "#PLUS์ปค๋ฒ๋์ฝ", + "#ํฌ์์ฒดํฌ๋ฆฌ์คํธ" + ], + "engagementQuestion": "์ปค๋ฒ๋์ฝ ETF์ ์ง์์ถ์ข ETF, ์ฌ๋ฌ๋ถ์ ์ด๋ ์ชฝ์ ๋ ์ ํธํ์๋์?", + "bestPostingTimes": [ + "08:00", + "19:00" + ] + }, + "tiktok": { + "title": "2026 ์ ๊ท ETF, ์ด๊ฑฐ ๋ชจ๋ฅด๊ณ ์ฌ๋ฉด ์ํด๋ด ๋๋ค", + "thumbnailText": "์๋ก ๋์จ ETF\n๋ฐ๋ก ์ฌ๋ ๋ ๊น?", + "scenes": [ + { + "time": "0-3์ด", + "text": "์ด๋ฒ ๋ฌ์๋ง ETF 3๊ฐ ์ ๊ท ์์ฅ๋๋์", + "direction": "ํด๋ก์ฆ์ ์ผ๊ตด, ๋๋ ํ์ ์ผ๋ก ํ๋ฉด ์์", + "sound": "๊ธด์ฅ๊ฐ ์๋ ํจ๊ณผ์ '๋ต!'" + }, + { + "time": "3-15์ด", + "text": "๊ทผ๋ฐ ์ ๊ท ์์ฅ ETF, ๋ฐ๋ก ๋งค์ํ๋ฉด ์ํํ ์๋ ์์ด์", + "direction": "ํ๋ฉด ์ ํ, ์ฐจํธ ๊ทธ๋ํ ์ค๋ฒ๋ ์ด", + "sound": "๊ฒฝ๊ณ ์ ํจ๊ณผ '์๋น '" + }, + { + "time": "15-35์ด", + "text": "์ปค๋ฒ๋์ฝ ETF๋ ์ง์์ถ์ข ์ด๋ ์์ ๋ค๋ฅธ ๊ตฌ์กฐ์์ / ์ต์ ๋งค๋๋ก ์๋ฐฐ๋น ๋ง๋๋ ๋ฐฉ์์ด๋ผ ์์น์ฅ์ ์์ต์ด ์ ํ๋ผ์", + "direction": "ํ์ดํธ๋ณด๋ or ์๋ง ์ ๋๋ฉ์ด์ ์ผ๋ก ๊ตฌ์กฐ ์ค๋ช ", + "sound": "์์ํ ๋ฐฐ๊ฒฝ์ ์ ์ง, ํฌ์ธํธ๋ง๋ค ํ์ดํ ์๋ฆฌ" + }, + { + "time": "35-50์ด", + "text": "๊ทธ๋์ ํฌ์ ์ ์ ๊ผญ ์ฒดํฌํด์ผ ํ ๊ฒ 4๊ฐ์ง ์์ด์ / ๊ฑฐ๋๋, ์์์ฐ, ๋ถ๋ฐฐ์จ, ์ด์ฉ์ฌ ํธ๋๋ ์ฝ๋", + "direction": "์ฒดํฌ๋ฆฌ์คํธ ํ ์คํธ ํ๋์ฉ ๋ฑ์ฅ", + "sound": "์ฒดํฌ ํจ๊ณผ์ '๋ฉ๋'" + }, + { + "time": "50-60์ด", + "text": "์ ์ฒด ์ฒดํฌ๋ฆฌ์คํธ๋ ์ ๊ท ETF ์ ๋ฆฌ๋ ๋ธ๋ก๊ทธ์ / ์ ์ฅํ๊ณ ํฌ์ ์ ์ ๋ค์ ๋ณด์ธ์", + "direction": "ํ๋ฉด ํ๋จ์ ์ ์ฅ ๋ฒํผ ๊ฐ์กฐ ์ ๋๋ฉ์ด์ ", + "sound": "์ ๋นํธ ๋ง๋ฌด๋ฆฌ ์ฌ์ด๋" + } + ], + "fullScript": "์ด๋ฒ ๋ฌ์๋ง ETF 3๊ฐ ์ ๊ท ์์ฅ๋๋์. ๊ทผ๋ฐ ์ ๊ท ์์ฅ ETF, ๋ฐ๋ก ๋งค์ํ๋ฉด ์ํํ ์๋ ์์ด์. ์ปค๋ฒ๋์ฝ ETF๋ ์ง์์ถ์ข ์ด๋ ์์ ๋ค๋ฅธ ๊ตฌ์กฐ์์. ์ต์ ๋งค๋๋ก ์๋ฐฐ๋น ๋ง๋๋ ๋ฐฉ์์ด๋ผ ์์น์ฅ์ ์์ต์ด ์ ํ๋ผ์. ๊ทธ๋์ ํฌ์ ์ ์ ๊ผญ ์ฒดํฌํด์ผ ํ ๊ฒ 4๊ฐ์ง ์์ด์. ๊ฑฐ๋๋, ์์์ฐ, ๋ถ๋ฐฐ์จ, ์ด์ฉ์ฌ ํธ๋๋ ์ฝ๋. ์ ์ฒด ์ฒดํฌ๋ฆฌ์คํธ๋ ์ ๊ท ETF ์ ๋ฆฌ๋ ๋ธ๋ก๊ทธ์ ์์ผ๋ ์ ์ฅํ๊ณ ํฌ์ ์ ์ ๋ค์ ๋ณด์ธ์.", + "commentBait": "์ฌ๋ฌ๋ถ์ ์ปค๋ฒ๋์ฝ ETF ํฌ์ํด๋ณด์ ์ ์๋์? ๋๊ธ๋ก ์๋ ค์ฃผ์ธ์!", + "hashtags": [ + "#fyp", + "#foryou", + "#ETF", + "#์ฃผ์ํฌ์", + "#์ฌํ ํฌ", + "#์ปค๋ฒ๋์ฝETF", + "#์ ๊ทETF์ํ", + "#ETF์์ฅ๋ํฅ", + "#ํฌ์์ ๋ณด", + "#๊ฒฝ์ ๊ณต๋ถ" + ], + "backgroundMusic": { + "genre": "Lo-fi Hip Hop", + "mood": "์ฐจ๋ถํ์ง๋ง ๊ธด์ฅ๊ฐ ์๋ ๋ถ์๊ธฐ" + }, + "bestPostingTimes": [ + "07:00", + "20:00", + "23:00" + ] + }, + "keyword": "ETF ์์ฅ ์ต์ ๋ํฅ ์๋ก ๋์จ ์ํ ์ ๋ฆฌ", + "trendDirection": "stable" + }, + "socialPublished": { + "instagram": { + "skipped": true, + "reason": "SOCIAL_AUTO_PUBLISH=false" + }, + "threads": { + "skipped": true, + "reason": "SOCIAL_AUTO_PUBLISH=false" + }, + "tiktok": { + "skipped": true, + "reason": "SOCIAL_AUTO_PUBLISH=false" + } + } + } + ] + }, + { + "runAt": "2026-07-18T23:14:45.783473", + "date": "2026-07-18", + "keywords": [ + "์ฌ๋ฆ ํด๊ฐ ๊ตญ๋ด ์จ์ ์ฌํ์ง ์ถ์ฒ" + ], + "postsGenerated": 1, + "bloggerUploaded": 0, + "errors": 0, + "errorMessages": [], + "imagesInserted": 1, + "totalWords": 3588, + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "platforms": { + "blogger": 0 + }, + "earnings": { + "totalPosts": 87, + "estimatedDailyRevenue": 208.8, + "estimatedMonthlyRevenue": 6264.0, + "estimatedYearlyRevenue": 76212.0, + "avgCPC": 1.2, + "currency": "USD" + }, + "posts": [ + { + "title": "์ฌ๋ฆ ํด๊ฐ ๊ตญ๋ด ์จ์ ์ฌํ์ง ์ถ์ฒ, ์ฌ๋ ๋ง์ ๊ณณ ์ง์ณค๋ค๋ฉด ์ด๋ฐ ๊ณณ๋ถํฐ", + "keyword": "์ฌ๋ฆ ํด๊ฐ ๊ตญ๋ด ์จ์ ์ฌํ์ง ์ถ์ฒ", + "blogUrl": "", + "imagesInserted": 1, + "wordCount": 3588, + "contentPreview": "์ฌ๋ฆ ํด๊ฐ์ฒ ๋ง ๋๋ฉด ํฌํธ ๊ฒ์์ฐฝ์ '์ฌ๋ฆ ํด๊ฐ ๊ตญ๋ด ์จ์ ์ฌํ์ง ์ถ์ฒ'์ ์ณ๋ณด๋ ๋ถ๋ค์ด ๋ง์ต๋๋ค. ๊ทธ๋ฐ๋ฐ ๋ง์ ํด๋ฆญํด ๋ค์ด๊ฐ๋ฉด ์ด๋ฏธ ์ ๋ช ํ ๊ด๊ด์ง๋ฅผ '์จ์ ๋ช ์'๋ผ๋ฉฐ ์๊ฐํ๋ ๊ธ์ด ๋๋ถ๋ถ์ด๋ผ ์ค๋งํ์ ๊ฒฝํ, ๋ค๋ค ํ ๋ฒ์ฏค ์์ผ์ค ๊ฒ๋๋ค. ์ฌ์ค '์จ์ ์ฌํ์ง'๋ผ๋ ํํ ์์ฒด๊ฐ ์ด๋ฏธ ๋๋ฌด ํํด์ ธ์, ์ ์ ๊ฒ์๋์ด ๋ฎ๊ณ ์ธํ๋ผ๊ฐ ๋ถ์กฑํ ๊ณณ์ ์คํ๋ ค ์ ๋ณด๊ฐ ์ ์ด ...", + "faqCount": 3, + "faq": [ + { + "q": "์ฌ๋ฆ ํด๊ฐ ๊ตญ๋ด ์จ์ ์ฌํ์ง ์ถ์ฒ ์ ๋ณด๋ ์ด๋๊น์ง ๋ฏฟ์ ์ ์๋์?", + "a": "์ค๋๋ ๊ธฐ์ฌ๋ ๋ธ๋ก๊ทธ ๊ธ์ ์ฐธ๊ณ ํ ๋๋ ๊ฒ์ ๋ ์ง๋ฅผ ๋ฐ๋์ ํ์ธํด์ผ ํฉ๋๋ค. 2013๋ ์๋ฃ์ฒ๋ผ 10๋ ์ด์ ์ง๋ ์ ๋ณด๋ ํ์ฌ๋ ์ด๋ฏธ ์ ๋ช ํด์ง ๊ณณ์ผ ๊ฐ๋ฅ์ฑ์ด ๋์ผ๋ ์ต๊ทผ 1~2๋ ๋ด ๋ฐฉ๋ฌธ ํ๊ธฐ์ ํจ๊ป ๊ต์ฐจ ํ์ธํ๋ ๊ฒ์ด ์์ ํฉ๋๋ค." + }, + { + "q": "๋น ์ค๋ ๋ ์๋ ๊ฐ ์ ์๋ ๊ตญ๋ด ์จ์ ์ฌํ์ง๊ฐ ์๋์?", + "a": "๊ฒฝ๊ธฐ ์ฐ์ฒ์ ์๋๋ฆฌ ๋ฌธํ๋ฒฝ๋๊ณต์ฅ์ฒ๋ผ ์ฐ์ ์ ์ฐ์ ์ฌํด์ํ ์ค๋ดํ ๊ด๊ด์ง๊ฐ ๋์์ด ๋ ์ ์์ต๋๋ค. ๋ค๋ง ๊ท๋ชจ๊ฐ ํฌ์ง ์์ ๋ฐ๋์ ์ฝ์ค๋ก ์งง๊ฒ ๋๋๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ ๋ค๋ฅธ ์ผ์ ๊ณผ ๋ฌถ์ด ๊ณํํ๋ ๊ฒ์ด ํ์ค์ ์ ๋๋ค." + }, + { + "q": "๊ณ๊ณก ์ฌํ์ง์์ ์ฃผ์ํด์ผ ํ ์ ์ ๋ฌด์์ธ๊ฐ์?", + "a": "ํ์ฅ์ค์ด๋ ํ์ ์์ค ๋ฑ ํธ์์์ค์ด ๋ถ์กฑํ ๊ณณ์ด ๋ง๊ณ , ์๋ฅ ๊ฐ์๋์ ๋ฐ๋ผ ๋ฌผ์ด ๊ธ๊ฒฉํ ๋ถ์ด๋ ์ ์์ด ๊ธฐ์์ฒญ ์๋ณด์ ์ง์ญ ์ฌ๋๋ฌธ์๋ฅผ ํจ๊ป ํ์ธํ๋ ๊ฒ์ด ์์ ํฉ๋๋ค." + } + ], + "factCheck": { + "checked": true, + "verdict": "warn", + "issues_found": 4, + "fixes_applied": 3, + "issues": [ + { + "problem": "์๋ฃํฉ์ ์๋ ๊ตฌ์ฒด์ ๋ณด๋ ๋ ์ง๋ก ๊ฒ์ฆ ๋ถ๊ฐ๋ฅ", + "fixed": true + }, + { + "problem": "์๋ฃํฉ์ ์๋ ๊ตฌ์ฒด์ ๋ณด๋ ๋ ์ง๋ก ๊ฒ์ฆ ๋ถ๊ฐ๋ฅ", + "fixed": true + }, + { + "problem": "๊ทผ๊ฑฐ ์๋ฃ ์์ด ์ผ๋ฐํ๋ ์ด์ฉ์ ๋ฐ์ ์ฃผ์ฅ", + "fixed": true + }, + { + "problem": "๊ทผ๊ฑฐ ์๋ฃ ์์ด ์ด์ฉ์ ๋ฐ์์ ์ฌ์ค์ฒ๋ผ ๋จ์ ", + "fixed": false + } + ] + }, + "sources": [ + { + "title": "\"์ฌ์ฌ๋ฆ ํด๊ฐ์ง, ํ์ ํ ๊ณ๊ณก ์๋ ค๋๋ ค์\"", + "url": "https://news.sbs.co.kr/news/endPage.do?news_id=N1001913609" + }, + { + "title": "์ด์๊ธฐํ ๊ฑฑ์ ์๋ '๋ ์จ ์์ ํ' ๊ฒฝ๊ธฐ๋ ์ฌํ 6๊ณณ", + "url": "https://www.sisajournal.com/news/articleView.html?idxno=341205" + }, + { + "title": "[์ค๋์ ์ฅ๋ฐ๊ตฌ๋] ๋กฏ๋ฐ๋งํธยท์ด๋งํธ24ยท์๋ชฌ์คยท๋ ธ๋ํ์ ์ธ", + "url": "http://www.newsprime.co.kr/news/article.html?no=693724" + } + ], + "labels": [ + "์ฌ๋ฆํด๊ฐ", + "๊ตญ๋ด์ฌํ์ง", + "์จ์์ฌํ์ง์ถ์ฒ", + "๊ตญ๋ด์ฌํ", + "๊ณ๊ณก์ฌํ", + "๊ฒฝ๊ธฐ๋์ฌํ", + "์ฐ์ฒ์ฌํ", + "๋น์ผ์น๊ธฐ์ฌํ", + "์ฌํ์ ๋ณด", + "๊ตญ๋ดํด๊ฐ์ง" + ], + "metaDescription": "์ฌ๋ฆ ํด๊ฐ ๊ตญ๋ด ์จ์ ์ฌํ์ง ์ถ์ฒ์ ๊ฒ์ ์ค์ด๋ผ๋ฉด, ๊ณ๊ณกํ ์ฌํ์ง์ ์ ๋ณด ์ ํต๊ธฐํ ๋ฌธ์ ์ ์ฐ์ฒ ์๋๋ฆฌ ๋ฌธํ๋ฒฝ๋๊ณต์ฅ ๊ฐ์ ์ค๋ดํ ๋์๊น์ง ํจ๊ป ํ์ธํด๋ณด์ธ์.", + "adsenseCategory": "์ฌํ", + "articleType": "travel_guide", + "riskLevel": "low", + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "socialContent": null, + "socialPublished": { + "instagram": null, + "threads": null, + "tiktok": null + } + } + ] + }, + { + "runAt": "2026-07-18T23:09:24.872964", + "date": "2026-07-18", + "keywords": [], + "postsGenerated": 0, + "bloggerUploaded": 0, + "errors": 0, + "errorMessages": [], + "imagesInserted": 0, + "totalWords": 0, + "blogId": "blog1", + "blogName": "HOGU What?", + "platforms": { + "blogger": 0 + }, + "earnings": { + "totalPosts": 87, + "estimatedDailyRevenue": 156.6, + "estimatedMonthlyRevenue": 4698.0, + "estimatedYearlyRevenue": 57159.0, + "avgCPC": 0.9, + "currency": "USD" + }, + "posts": [] + }, + { + "runAt": "2026-07-18T23:09:24.270149", + "date": "2026-07-18", + "keywords": [ + "๊น๋ถ์ฅ" + ], + "postsGenerated": 3, + "bloggerUploaded": 1, + "errors": 0, + "errorMessages": [], + "imagesInserted": 3, + "totalWords": 8165, + "blogId": "blog1", + "blogName": "HOGU What?", + "platforms": { + "blogger": 1 + }, + "earnings": { + "totalPosts": 88, + "estimatedDailyRevenue": 158.4, + "estimatedMonthlyRevenue": 4752.0, + "estimatedYearlyRevenue": 57816.0, + "avgCPC": 0.9, + "currency": "USD" + }, + "posts": [ + { + "title": "[1ํธ] ๊น๋ถ์ฅ ์ฒซ์ธ์ ์์ง ๋ฆฌ๋ทฐ, ์ฅ๋ฅด๋ ๋ถ์๊ธฐ๋ถํฐ ์ง์ด๋ดค์ด์", + "keyword": "๊น๋ถ์ฅ ์ฒซ์ธ์ ๋ฆฌ๋ทฐ", + "blogUrl": "", + "imagesInserted": 1, + "wordCount": 2778, + "contentPreview": "๋๋ผ๋ง ์ ๋ชฉ๋ง ๋ณด๊ณ '์, ์ด๊ฑฐ ๋ปํ ์ง์ฅ์ธ ๋๋ผ๋ง๊ฒ ๊ตฌ๋' ์ถ์ผ์ จ๋ ์ ์์ผ์ธ์? ์ ๋ ๊น๋ถ์ฅ์ด๋ผ๋ ์ ๋ชฉ์ ์ฒ์ ๋ค์์ ๋ ๋น์ทํ ์๊ฐ์ ํ์ด์. ๊ทธ๋ฐ๋ฐ ๋ง์ ์ด๋ฐ๋ถ ๋ถ์๊ธฐ๋ฅผ ์ดํด๋ณด๋ ์์ํ๋ ๊ฒ๊ณผ ๊ฒฐ์ด ์ข ๋ค๋ฅด๋๋ผ๊ณ ์. ์ด๋ฒ ๊ธ์ ๊น๋ถ์ฅ ์๋ฆฌ์ฆ ๋ฆฌ๋ทฐ์ ์ฒซ ํธ์ผ๋ก, ์คํ ๋ฆฌ ์คํฌ์ผ๋ฌ๋ณด๋ค๋ ์ฅ๋ฅด์ ๋ถ์๊ธฐ ์์ฃผ๋ก ์์ฒญ ์ ์ ์ฐธ๊ณ ํ ๋งํ ํฌ์ธํธ๋ฅผ ์ ๋ฆฌํด๋ณผ๊ฒ์. ๋ฑ...", + "faqCount": 3, + "faq": [ + { + "q": "๊น๋ถ์ฅ์ ์ด๋ค ์ฅ๋ฅด์ ๋๋ผ๋ง์ธ๊ฐ์?", + "a": "์ ๋ชฉ๊ณผ ์ ๋ฐ์ ์ธ ์ฝ๋๋ก ๋ณผ ๋ ์ง์ฅ์ธ ์์ฌ์ ์ผ์๊ทน ๋๋ ํด๋จผ ๋๋ผ๋ง ๊ณ์ด์ผ ๊ฐ๋ฅ์ฑ์ด ๋์ ๋ณด์ด์ง๋ง, ์ ํํ ์ฅ๋ฅด ๋ถ๋ฅ๋ ๊ณต์ ์๊ฐ ์๋ฃ๋ฅผ ํตํด ํ์ธํ์๋ ๊ฒ ์ ํํฉ๋๋ค." + }, + { + "q": "๋ฐฉ์ ์ฑ๋์ด๋ ํธ์ฑ ์๊ฐ์ ์ด๋ป๊ฒ ๋๋์?", + "a": "์ด๋ฒ ์กฐ์ฌ์์๋ ์ ๋ขฐํ ์ ์๋ ๊ณต์ ์ถ์ฒ๋ก ์ ํํ ํธ์ฑ ์ ๋ณด๋ฅผ ํ์ธํ์ง ๋ชปํ์ด์. ํฌํธ TV ํธ์ฑํ๋ ๋ฐฉ์ก์ฌ ๊ณต์ ํํ์ด์ง์์ ์ต์ ์ ๋ณด๋ฅผ ํ์ธํ์๋ ๊ฑธ ๊ถํด๋๋ฆฝ๋๋ค." + }, + { + "q": "๊ฐ๋จ์ญ '๊น๋ถ์ฅ' ์๋น์ด๋ ๋๋ผ๋ง๋ ๊ด๋ จ์ด ์๋์?", + "a": "์ ํ ๊ด๋ จ ์๋ ๋ณ๊ฐ์ ์ด๋ฆ์ด์์. ๋ค์ด๋์ฝ๋์ ์๊ฐ๋ ๊ฐ๋จ์ญ ์์ ํ๋ถ๋์ฐ๊ฐ ๋ง์ง์ ๋๋ผ๋ง์ ๋ฌด๊ดํ ์ค์กด ์๋น์ด๋ ๊ฒ์ํ์ค ๋ ํผ๋ํ์ง ์์ผ์๊ธธ ๋ฐ๋๋๋ค." + } + ], + "factCheck": { + "checked": true, + "verdict": "warn", + "issues_found": 1, + "fixes_applied": 1, + "issues": [ + { + "problem": "์๋ฃํฉ์ ์๋ ๊ตฌ์ฒด์ ๋ ์ง ์ ๋ณด๋ก ๊ฒ์ฆ ๋ถ๊ฐ๋ฅํ ์์นยท์์ ", + "fixed": true + } + ] + }, + "sources": [ + { + "title": "๊น๋ถ์ฅ - ๊ฐ๋จ์ญ ์์ ํ๋ถ๋์ฐ๊ฐ, ํ์ ๋ง์ง", + "url": "https://www.diningcode.com/profile.php?rid=DgGRHT9AHlgI" + }, + { + "title": "๋ค์ด๋ฒTV ํ๋ก๊ทธ๋จ ์ ๋ณด", + "url": "https://tv.naver.com" + } + ], + "labels": [ + "๋๋ผ๋ง๋ฆฌ๋ทฐ", + "๊น๋ถ์ฅ", + "๊น๋ถ์ฅ๋ฆฌ๋ทฐ", + "์ฒซ์ธ์๋ฆฌ๋ทฐ", + "๋๋ผ๋ง์ฒซ์ธ์", + "๋๋ผ๋ง์ถ์ฒ", + "ํ๊ตญ๋๋ผ๋ง", + "์คํผ์ค๋๋ผ๋ง", + "๋๋ผ๋ง์๋ฆฌ์ฆ", + "TVํ๋ก๊ทธ๋จ" + ], + "metaDescription": "๊น๋ถ์ฅ ์ฒซ์ธ์ ๋ฆฌ๋ทฐ, ์ฅ๋ฅด์ ๋ถ์๊ธฐ ์ค์ฌ์ผ๋ก ์์ฒญ ์ ์ฐธ๊ณ ํฌ์ธํธ๋ฅผ ์กฐ์ฌํด ์ ๋ฆฌํ์ด์. ํ์ธ ์ ๋ ์ ๋ณด๋ ์์งํ๊ฒ ๋ฐํ 1ํธ์ ๋๋ค.", + "adsenseCategory": "์ผ๋ฐ", + "articleType": "news_analysis", + "riskLevel": "medium", + "blogId": "blog1", + "blogName": "HOGU What?", + "socialContent": null, + "socialPublished": { + "instagram": null, + "threads": null, + "tiktok": null + } + }, + { + "title": "[๊น๋ถ์ฅ 2ํธ] ๋ฑ์ฅ์ธ๋ฌผ ๋ถ์ ์๋ฒฝ์ ๋ฆฌ, ์์ง์ญ ์ฐ๊ธฐ ํ๊ฐ๊น์ง", + "keyword": "๊น๋ถ์ฅ ๋ฑ์ฅ์ธ๋ฌผ ๋ถ์", + "blogUrl": "https://www.hoguwhat.com/2026/07/2.html", + "imagesInserted": 1, + "wordCount": 2727, + "contentPreview": "1ํธ์ ์ฌ๋ฆฌ๊ณ ๋์ ๋๊ธ๋ก ๊ฐ์ฅ ๋ง์ด ๋ฐ์ ์ง๋ฌธ์ด ์์ด์. \"๊ฒฐ๊ตญ ํน์๊ตญ์ด๋ ์ํ์ค, ์ต๋ฒํธ๋ ๋ญ ํ๋ ์ฌ๋๋ค์ด๋\"๋ ๊ฑฐ์์ต๋๋ค. ์ ๋ 1ํธ ์ธ ๋๋ ์ด๋ฐ ๋ถ์๊ธฐ๋ ์์ง์ญ์ด๋ผ๋ ๋ฐฐ์ฐ ์บ์คํ ์์ฒด์ ์ง์คํ๋๋ฐ, ํ์ฐจ๊ฐ ์์ด๋ฉด์ ์ธ๋ฌผ ๊ด๊ณ๊ฐ ๊ฝค ๋ณต์กํด์ง๋๋ผ๊ณ ์. ํนํ 8ํ ์ฆ์ ๋ฐ์ ์ด ๋์ค๋ฉด์ \"๊น๋ถ์ฅ ๋ฑ์ฅ์ธ๋ฌผ ๋ถ์\"์ ๊ฒ์ํ๋ ๋ถ๋ค์ด ํ ๋์๋ค๋ ๊ฒ ๊ด๋ จ ๊ธฐ...", + "faqCount": 3, + "faq": [ + { + "q": "๊น๋ถ์ฅ๊ณผ ์์ธ ์๊ฐ์ ๋๊ธฐ์ ๋ค๋๋ ๊น๋ถ์ฅ ์ด์ผ๊ธฐ๋ ๊ฐ์ ์ํ์ธ๊ฐ์?", + "a": "์๋๋๋ค. ๋์ ์์ ํ ๋ค๋ฅธ ์ํ์ ๋๋ค. ํ์๋ ๋๊ธฐ์ ๋ถ์ฅ์ ๋น๋กฏํ ์ง์ฅ์ธ๋ค์ ๊ณต๊ฐ์ ๋ค๋ฃฌ ์คํผ์ค ๋๋ผ๋ง๋ก ์ต๊ทผ ์ข ์ํ๊ณ , ์ด ์๋ฆฌ์ฆ์์ ๋ค๋ฃจ๋ ๊น๋ถ์ฅ์ ์์ง์ญ ์ฃผ์ฐ์ SBS ์ฒฉ๋ณดยท์ก์ ๋๋ผ๋ง์ ๋๋ค." + }, + { + "q": "๊น๋ถ์ฅ์์ ์ฒฉ์๋ก ์์ฌ๋ฐ๋ ์ธ๋ฌผ์ด ๋๊ตฌ์ธ๊ฐ์?", + "a": "๊ทน ์ค ์ฌ๋ฌ ์ธ๋ฌผ์ด ๋ฒ๊ฐ์ ์์ฌ๋ฐ๋ ๊ตฌ์กฐ๋ผ ํน์ ํ ๋ช ์ผ๋ก ๋จ์ ํ๊ธฐ ์ด๋ ต์ต๋๋ค. ์ํ์ค, ์ต๋ฒํธ, ์ฃผ๊ฐ์ฐฌ ์ฌ์ด์ ์ฌ๋ฆฌ์ ์ด ํ์ฐจ๋ง๋ค ๊ณ์ ๋ค์งํ๋ ์ ๊ฐ๋ผ, ๊ฒฐ๋ง๊น์ง ์ง์ผ๋ด์ผ ํ์คํด์ง๋ ๋ถ๋ถ์ ๋๋ค. ์์ธํ ์ ์ฒด๋ 3ํธ ๊ฒฐ๋ง ๋ฆฌ๋ทฐ์์ ๋ค๋ฃฐ ์์ ์ ๋๋ค." + }, + { + "q": "์์ง์ญ์ ์ฐ๊ธฐ๋ ์ค์ ๋ก ํธํ์ ๋ฐ์๋์?", + "a": "๋ณด๋์ ๋ฆฌ๋ทฐ๋ฅผ ์ข ํฉํ๋ฉด ๋์ฒด๋ก ๊ธ์ ์ ์ธ ๋ฐ์์ด ๋ง์์ต๋๋ค. ๋ฐฉ์ก 2ํ ๋ง์ ์ต๊ณ ์์ฒญ๋ฅ 18.1%๋ฅผ ๊ธฐ๋กํ๊ณ ๋ทํ๋ฆญ์ค 8๊ฐ๊ตญ 1์์ ์ค๋ฅธ ์ ๋ ์ด๋ฐ ๋ฐ์์ ๋ท๋ฐ์นจํ๋ ๊ทผ๊ฑฐ๋ก ์ธ๊ธ๋๊ณ ์์ต๋๋ค." + } + ], + "factCheck": { + "checked": true, + "verdict": "pass", + "issues_found": 0, + "fixes_applied": 0, + "issues": [] + }, + "sources": [ + { + "title": "์ต๊ณ 18.1% ํฐ์ก๋ค...๋จ 2ํ ๋ง์ ๋ทํ๋ฆญ์ค 8๊ฐ๊ตญ 1์ ํฉ์ด 'ํ๊ตญ ๋๋ผ๋ง'", + "url": "https://www.wikitree.co.kr/articles/1143626" + }, + { + "title": "'์ 500'์ ํจ์ โฆ'๊น๋ถ์ฅ ์ด์ผ๊ธฐ'๊ฐ ๋จ๊ธด ํด์ง์์ ๋ถ๋์ฐ ํฌ์ ์ ์์ 3", + "url": "https://magazine.hankyung.com/business/article/202512106201b" + }, + { + "title": "SBS ํ๋ก๊ทธ๋จ ๊ณต์ ํ์ด์ง", + "url": "https://programs.sbs.co.kr" + }, + { + "title": "๋ทํ๋ฆญ์ค ํฑ10 ์์ ๊ณต์ ํ์ด์ง", + "url": "https://www.netflix.com/tudum/top10" + } + ], + "labels": [ + "๊น๋ถ์ฅ๋ฑ์ฅ์ธ๋ฌผ๋ถ์", + "์์ง์ญ", + "SBS๋๋ผ๋ง", + "๋๋ผ๋ง๋ฆฌ๋ทฐ", + "๊น๋ถ์ฅ" + ], + "metaDescription": "SBS ๊น๋ถ์ฅ ๋ฑ์ฅ์ธ๋ฌผ ๋ถ์ 2ํธ, ์ํ์คยท์ต๋ฒํธยท์ฃผ๊ฐ์ฐฌ ๊ด๊ณ์ ์์ง์ญ ์ฐ๊ธฐ ํ๊ฐ, ์์ฒญ๋ฅ ยท๋ทํ๋ฆญ์ค ๋ฐ์๊น์ง ์ธ๋ฌผ ์ค์ฌ์ผ๋ก ์ ๋ฆฌํ์ต๋๋ค.", + "adsenseCategory": "์ผ๋ฐ", + "articleType": "drama_review", + "riskLevel": "medium", + "blogId": "blog1", + "blogName": "HOGU What?", + "socialContent": null, + "socialPublished": { + "instagram": null, + "threads": null, + "tiktok": null + } + }, + { + "title": "[3ํธ] ๊น๋ถ์ฅ ๊ฒฐ๋ง ์ดํ, ๋ณ์ ์ผ๋ก ์ ๋ฆฌํด๋ดค๋ค", + "keyword": "๊น๋ถ์ฅ ๊ฒฐ๋ง ์ดํ", + "blogUrl": "", + "imagesInserted": 1, + "wordCount": 2660, + "contentPreview": "3ํธ๊น์ง ์๋๋ฐ, ์์ง๋ '๊น๋ถ์ฅ ๊ฒฐ๋ง์ด ๋์ฒด ์ ๊ทธ๋ ๊ฒ ๋๋ ๊ฑฐ์ผ?' ํ๊ณ ๊ฒ์ํ์๋ ๋ถ๋ค ๋ง์ผ์์ฃ . ์ ๋ SBS ๊ธํ ๋๋ผ๋ง <๊น๋ถ์ฅ> ๋ฐฉ์ ๋ด๋ด ํ์ฐจ๋ณ ๋ฐ์์ ์กฐ์ฌํ๋ฉด์ ๋๋ ๊ฑด๋ฐ, ์ด ๋๋ผ๋ง๋ ํ๋ฐ๋ถ๋ก ๊ฐ์๋ก ์์ฒญ์๋ค ์ฌ์ด์์ ํด์์ด ๊ฐ๋ฆฌ๋ ์ง์ ์ด ๊ฝค ๋ง๋๋ผ๊ณ ์. 1ํธ์์ ์ฒซ์ธ์์, 2ํธ์์ ๋ฑ์ฅ์ธ๋ฌผ ๊ด๊ณ๋๋ฅผ ๋ค๋ค์ผ๋ ์ด๋ฒ 3ํธ์์๋ ๊ฒฐ๋ง ...", + "faqCount": 4, + "faq": [ + { + "q": "๊น๋ถ์ฅ ๊ฒฐ๋ง์ด ์คํฌ์ผ๋ฌ๋ก ๋ง์ด ๋๋๋ฐ ์ง์ง ๊ฒฐ๋ง์ด ๋ง๋์?", + "a": "์จ๋ผ์ธ์ ๋๋ ์คํฌ์ผ๋ฌ ์ค ์ผ๋ถ๋ ์ ๋ชฉ์ด ๋น์ทํ ๋ค๋ฅธ ์ฝํ ์ธ (์: ๊น๋ถ์ฅ ์ด์ผ๊ธฐ ๊ณ์ด)์ ํผ๋๋ ์ ๋ณด์ผ ์ ์์ต๋๋ค. SBS ๊ธํ ๋๋ผ๋ง ๊น๋ถ์ฅ์ ์ ํํ ๊ฒฐ๋ง์ ๋ฐฉ์ก์ฌ ๊ณต์ ๋ค์๋ณด๊ธฐ๋ฅผ ํตํด ํ์ธํ์๋ ๊ฑธ ๊ถํฉ๋๋ค." + }, + { + "q": "๊น๋ถ์ฅ ์์ฒญ๋ฅ ์ด ์ ํํ ์ผ๋ง๋ ๋์๋์?", + "a": "๋์จ์ฝ๋ฆฌ์ ๊ธฐ์ค์ผ๋ก 21.4%๋ผ๋ ์์ฒญ๋ฅ ์ด ๋ด์ค์์ ๋ณด๋๋์ต๋๋ค. ๊ธํ ๋๋ผ๋ง ์๊ฐ๋ ๊ธฐ์ค์ผ๋ก ์๋นํ ํ์ ์ฑ์ด ๋์๋ ์์น๋ก ํ๊ฐ๋ฉ๋๋ค." + }, + { + "q": "๋ฏผ์ง๊ฐ ์๋ฒ์ง๋ฅผ ๋ง๋ฆฌ๋ ์ฅ๋ฉด์ด ์ ๋ ผ๋์ด ๋๋์?", + "a": "๋ธ ๊น๋ฏผ์ง๊ฐ ๊น๋ถ์ฅ์ ์ก์ ยท๋ณต์ ํ์๋ฅผ ๋ง๋ฅํ๋ ์ฅ๋ฉด์์ ์์ฒญ์ ๋ฐ์์ด ๊ฐ๋ ธ์ต๋๋ค. ๋ชฐ์ ๊ฐ ์๋ ์ ๊ฐ์ ์ ๋์ ๊ฑด๋ค๋ ๋ฐ์๊ณผ, ์บ๋ฆญํฐ์ ํ์ค์ ์ธ ์ ํ์ด๋ผ๋ ๋ฐ์์ด ํจ๊ป ๋์์ต๋๋ค." + }, + { + "q": "๊น๋ถ์ฅ๊ณผ ๋น์ทํ ๋๋ผ๋ง๋ฅผ ์ถ์ฒํด์ค๋ค๋ฉด์?", + "a": "๋ถ์ฑ์ ๋ฅผ ์ถ์ผ๋ก ํ ์ก์ ๋ฌผ, ๋ถํยท์ฒฉ๋ณด ์์ฌ ์ค๋ฆด๋ฌ, ์ด๋์ด ํค์ ๋์๋ฅด ๊ณ์ด ์ํ์ ์ข์ํ์ ๋ค๋ฉด ์ ๋ง์ ๊ฐ๋ฅ์ฑ์ด ๋์ต๋๋ค. OTT ํ๋ซํผ์ ์ ์ฌ ์ฝํ ์ธ ์ถ์ฒ ๊ธฐ๋ฅ๋ ์ฐธ๊ณ ํด๋ณด์๊ธธ ๊ถํฉ๋๋ค." + } + ], + "factCheck": { + "checked": true, + "verdict": "warn", + "issues_found": 4, + "fixes_applied": 3, + "issues": [ + { + "problem": "์๋ฃํฉ์๋ SBS '๊น๋ถ์ฅ'์ด 2ํ ๋ง์ ์์ฒญ๋ฅ 15%๋ฅผ ๋ํํ๋ค๊ณ ๋์ด ์์ด 21.4%๋ผ๋ ์์น์ ๋ชจ์๋จ", + "fixed": true + }, + { + "problem": "์๋ฃํฉ์ ์๋ ๊ตฌ์ฒด์ ์คํ ๋ฆฌ ์ ๊ฐ์ด๋ฉฐ, ์๋ฃํฉ์ ์์ ์นํฐ์ ์ค์ข ยทํ๊ตํญ๋ ฅ ์์ฌ์๋ ๋ค๋ฅธ ๋ด์ฉ์ผ๋ก ๊ฒ์ฆ ๋ถ๊ฐ๋ฅํจ", + "fixed": true + }, + { + "problem": "์๋ฃํฉ์ ์๋ ๊ตฌ์ฒด์ ์ธ๋ฌผยท์ค์ ์ผ๋ก ๊ฒ์ฆ ๋ถ๊ฐ๋ฅํ ์คํ ๋ฆฌ ์์ ", + "fixed": true + }, + { + "problem": "๊ตฌ์ฒด์ ์์น์ด๋ ์๋ฃํฉ๊ณผ ๋ถ์ผ์นํ์ฌ ๊ฒ์ฆ ๋ถ๊ฐ๋ฅ", + "fixed": false + } + ] + }, + "sources": [ + { + "title": "โ๊น๋ถ์ฅ์ด์ผ๊ธฐโ ์ธ๊ธฐ์ ์คํฌ ํ์ฐ", + "url": "https://www.bntnews.co.kr/article/view/bnt202511170133" + }, + { + "title": "๊น๋ถ์ฅ ์นํฐ ๊ฒฐ๋ง, ๋ธ ๊น๋ฏผ์ง ์ด์์๊ณ ์์ง์ญ๊ณผ ์ฌํํ๋ค", + "url": "https://in.naver.com/euene1111/topic/969350367459712" + }, + { + "title": "[62ํ ๋ฐฑ์] '์ต์ด' ๊ธฐ๋ก ์ด ๋ฅ์น๋ฃกโฆ๋ฐฉ์ก ๋ถ๋ฌธ ์์, ์ด๋ป๊ฒ ๊ฒฐ์ ๋๋", + "url": "https://news.jtbc.co.kr/article/NB12298392?influxDiv=NAVER" + }, + { + "title": "๊น๋ถ์ฅ 8ํ, ์์ง์ญ ๋ถํ ์กํ์ ๋ฐ์ ๋ฆฌ๋ทฐ", + "url": "https://naver.me/5mvldLnK" + } + ], + "labels": [ + "๋๋ผ๋ง๋ฆฌ๋ทฐ", + "๊น๋ถ์ฅ", + "๊น๋ถ์ฅ๊ฒฐ๋ง", + "์์ง์ญ", + "SBS๋๋ผ๋ง", + "๊ธํ ๋๋ผ๋ง", + "๊น๋ถ์ฅOST", + "๊น๋ถ์ฅ๋ณ์ ", + "๋์๋ฅด๋๋ผ๋ง", + "๋ถ์ฑ์ ์ก์ " + ], + "metaDescription": "SBS ๊ธํ ๋๋ผ๋ง ๊น๋ถ์ฅ ๊ฒฐ๋ง ์ดํ๊ณผ OST, ์ ์ฌ์ ์ถ์ฒ, ๋ณ์ ๊น์ง ์์ฒญ์ ๋ฐ์ ์๋ฃ๋ฅผ ๋ฐํ์ผ๋ก ์ ๋ฆฌํ์ต๋๋ค. ์คํฌ์ผ๋ฌ ์ฃผ์.", + "adsenseCategory": "์ผ๋ฐ", + "articleType": "drama_review", + "riskLevel": "low", + "blogId": "blog1", + "blogName": "HOGU What?", + "socialContent": null, + "socialPublished": { + "instagram": null, + "threads": null, + "tiktok": null + } + } + ] + }, + { + "runAt": "2026-07-18T11:31:33.285944", + "date": "2026-07-18", + "keywords": [], + "postsGenerated": 0, + "bloggerUploaded": 0, + "errors": 0, + "errorMessages": [], + "imagesInserted": 0, + "totalWords": 0, + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "platforms": { + "blogger": 0 + }, + "earnings": { + "totalPosts": 86, + "estimatedDailyRevenue": 154.8, + "estimatedMonthlyRevenue": 4644.0, + "estimatedYearlyRevenue": 56502.0, + "avgCPC": 0.9, + "currency": "USD" + }, + "posts": [] + }, + { + "runAt": "2026-07-18T11:31:32.426515", + "date": "2026-07-18", + "keywords": [ + "์ผ์ฑ์ ์ ์ฃผ๊ฐ ์ ๋ง 2026 ์ค์ ๊ณผ ์ฃผ์ฃผ ํ์ ๋ถ์" + ], + "postsGenerated": 3, + "bloggerUploaded": 1, + "errors": 0, + "errorMessages": [], + "imagesInserted": 3, + "totalWords": 9616, + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "platforms": { + "blogger": 1 + }, + "earnings": { + "totalPosts": 87, + "estimatedDailyRevenue": 249.4, + "estimatedMonthlyRevenue": 7482.0, + "estimatedYearlyRevenue": 91031.0, + "avgCPC": 1.4333333333333333, + "currency": "USD" + }, + "posts": [ + { + "title": "์ผ์ฑ์ ์ 2026 ์ค์ ์ ๋ง๊ณผ ์ฃผ๊ฐ, ๊ณต์๋ก ์ง์ ํ์ธํ๊ธฐ", + "keyword": "์ผ์ฑ์ ์ 2026 ์ค์ ์ ๋ง ์ฃผ๊ฐ", + "blogUrl": "https://hoguasset.blogspot.com/2026/07/2026_0978502205.html", + "imagesInserted": 1, + "wordCount": 3169, + "contentPreview": "์ง๋์ฃผ ํฌํธ ๋ฉ์ธ์ '๋ฐ๋์ฒด ์ค์ ๋ถ์ง ์ฐ๋ ค' ๊ฐ์ ์ ๋ชฉ์ ๊ธฐ์ฌ๊ฐ ๋ด์ ๋ ์์งํ ๋จ๋ํ์ต๋๋ค. ํด์ง์ฐ๊ธ ๊ณ์ข์ ์ผ์ฑ์ ์ ๋น์ค์ด ๊ฝค ์๋ ์ง์ฅ์ธ์ด๋ผ๋ฉด ์ด๋ฐ ํค๋๋ผ์ธ ํ๋์ ๋ง์์ด ํ๋ค๋ฆฌ๋ ๊ฒ ๋น์ฐํฉ๋๋ค. ๊ทธ๋ฐ๋ฐ ์ ์ ๊ธฐ์ฌ ๋ณธ๋ฌธ์ ๋๊น์ง ์ฝ์ด๋ณด๋ ๋ถ์ง์ด ์๋๋ผ ์คํ๋ ค ์ญ๋ ์ต๋ ์ค์ ์๊ธฐ์์ต๋๋ค. ์ ๋ชฉ๊ณผ ๋ด์ฉ์ด ๋ฐ๋ก ๋ ธ๋ ๋๋์ ๋ฐ๊ณ ๋์, ๋ด์ค ์์ฝ๋ง ๋ฏฟ์ง...", + "faqCount": 4, + "faq": [ + { + "q": "์ผ์ฑ์ ์ 2026๋ 2๋ถ๊ธฐ ์ค์ ์ด ์ ๋ง ์ญ๋ ์ต๋์ธ๊ฐ์?", + "a": "๋ณด๋์ ๋ฐ๋ฅด๋ฉด 2026๋ 2๋ถ๊ธฐ ์ฐ๊ฒฐ ๊ธฐ์ค ๋งค์ถ์ก 171์กฐ์, ์์ ์ด์ต 89์กฐ4์ฒ์ต์์ผ๋ก 3๋ถ๊ธฐ ์ฐ์ ์ญ๋ ์ต๋ ์ค์ ์ ๊ธฐ๋กํ๋ค๊ณ ํฉ๋๋ค(ํฐ์กฐ์ฑ, 2026-07-07 ๋ณด๋ ๊ธฐ์ค). ๋ค๋ง ์ด๋ ํน๋ณ๊ฒฝ์์ฑ๊ณผ๊ธ ์ถฉ๋น๊ธ์ ๋ฐ์ํ ์ดํ ์์น์ ๋๋ค." + }, + { + "q": "์์ ์ด์ต 89์กฐ4์ฒ์ต์๊ณผ 106์กฐ5์ฒ์ต์ ์ค ์ด๋ค ๊ฒ ๋ง๋ ์ซ์์ธ๊ฐ์?", + "a": "89์กฐ4์ฒ์ต์์ ํน๋ณ๊ฒฝ์์ฑ๊ณผ๊ธ ์ถฉ๋น๊ธ ์ฝ 17์กฐ์์ ๋ฐ์ํ ๊ณต์ ๋ฐํ ์์น์ด๊ณ , 106์กฐ5์ฒ์ต์์ ๊ทธ ์ถฉ๋น๊ธ์ ์ ์ธํ์ ๊ฒฝ์ฐ ์ถ์ฐ๋๋ ์์น์ ๋๋ค. ๋ ์ซ์ ๋ชจ๋ ๊ฐ์ ๋ณด๋ ์๋ฃ์์ ํจ๊ป ์ธ๊ธ๋ ๋ด์ฉ์ ๋๋ค." + }, + { + "q": "์ธ๊ตญ์ธ์ด ์๋งค๋ํ๋ค๋๋ฐ ์ค์ ๊ณผ ์๊ด์์ด ์ฃผ๊ฐ๊ฐ ๋จ์ด์ง ์๋ ์๋์?", + "a": "์ต๊ทผ 20๊ฑฐ๋์ผ ๋์ ์ธ๊ตญ์ธ์ด ์ผ์ฑ์ ์๋ฅผ 15์กฐ5000์ต์ ์๋งค๋ํ๋ค๋ ๋ณด๋๊ฐ ์์์ต๋๋ค. ์ค์ ๊ณผ ์๊ธ์ ๋ณ๊ฐ๋ก ์์ง์ผ ์ ์์ด, ํน์ ๋ฐฉํฅ์ ๋จ์ ํ๊ธฐ๋ณด๋ค ์ฌ๋ฌ ์งํ๋ฅผ ํจ๊ป ์ฐธ๊ณ ํ๋ ๊ฒ์ด ํ์ํฉ๋๋ค." + }, + { + "q": "์ฝ์คํผ์์ ๋ฐ๋์ฒด ๋น์ค์ด ๋๋ฌด ๋์ ๊ฑด ์ด๋ค ์๋ฏธ์ธ๊ฐ์?", + "a": "2026๋ 7์ 8์ผ ๊ธฐ์ค ์ผ์ฑ์ ์์ SKํ์ด๋์ค๊ฐ ์ฝ์คํผ ์๊ฐ์ด์ก์ 52%๋ฅผ ์ฐจ์งํ๋ค๋ ๋ณด๋๊ฐ ์์์ต๋๋ค. ์ด๋ ๋ฐ๋์ฒด ์ ์ข ํ๋ฆ์ด ์ฝ์คํผ ์ง์ ์ ์ฒด์ ํฐ ์ํฅ์ ์ค ์ ์๋ค๋ ์๋ฏธ๋ก ํด์๋ฉ๋๋ค." + } + ], + "factCheck": { + "checked": true, + "verdict": "warn", + "issues_found": 1, + "fixes_applied": 1, + "issues": [ + { + "problem": "์๋ฃํฉ์ ์๋ ๊ตฌ์ฒด์ ์์น๋ก ๊ฒ์ฆ ๋ถ๊ฐ๋ฅํ ํต๊ณ", + "fixed": true + } + ] + }, + "sources": [ + { + "title": "[ํฐ์กฐ์ฑ] ์ผ์ฑ์ ์ ํธ์ค์ ๋ด๋ ๊น์ง ์ด์ด์ง๋ฏโฆ์ฃผ์ฃผํ์ยทไธญ๋ฐ๋์ฒด ์ถ๊ฒฉ '๋ณ์'๋ก", + "url": "https://news.tvchosun.com/site/data/html_dir/2026/07/07/2026070790138.html" + }, + { + "title": "[Invest]์ธ๊ตญ์ธ ๋์์ฌ ๋๊น์ง ๋ฒํธ ์ ์๋โฆ'์ ๋์ฑ ์ ๋ฒฝ'์ ์ ํ์ด๋์ค", + "url": "https://www.investchosun.com/site/data/html_dir/2026/07/14/2026071480119.html" + }, + { + "title": "์ผ์ ๋์ค GO or STOPโฆํ๋ฐ๊ธฐ ์ฆ์ ํต์ฌ ํฌ์ธํธ 5 [์คํ์ ๋ฆฌํฌํธ]", + "url": "https://www.mk.co.kr/article/12095404" + }, + { + "title": "[ํฐ์กฐQ&A] ์ถํฌ ์ฌํ ๋ง์ ์์ชฝ ๋ค ๋ฌด๋์ก๋คโฆSKํ์ด๋์ค์ ๋ฌด์จ ์ผ์ด?", + "url": "https://news.tvchosun.com/site/data/html_dir/2026/07/14/2026071490212.html" + } + ], + "labels": [ + "์ผ์ฑ์ ์์ฃผ๊ฐ์ ๋ง", + "์ผ์ฑ์ ์์ค์ ", + "๋ฐ๋์ฒดํฌ์", + "์ฝ์คํผ์ ๋ง", + "์ธ๊ตญ์ธ์๊ธ" + ], + "metaDescription": "์ผ์ฑ์ ์ 2026๋ 2๋ถ๊ธฐ ์ค์ ์ ๊ณต์ ์๋ฌธ์ผ๋ก ์ง์ ํ์ธํ์ต๋๋ค. ์์ ์ด์ต 89์กฐ4์ฒ์ต์๊ณผ ์ฑ๊ณผ๊ธ ์ถฉ๋น๊ธ 17์กฐ์, ์ธ๊ตญ์ธ ์๋งค๋ 15์กฐ5000์ต์๊น์ง ์ซ์๋ก ์ ๋ฆฌํ ๊ธฐ๋ก์ ๋๋ค.", + "adsenseCategory": "์ผ๋ฐ", + "articleType": "investment", + "riskLevel": "medium", + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "socialContent": null, + "socialPublished": { + "instagram": null, + "threads": null, + "tiktok": null + } + }, + { + "title": "[2ํธ] ์ผ์ฑ์ ์ ๋ฐฐ๋น๊ธ ์์ฌ์ฃผ ์๊ฐ 2026 ์ด์ ๋ฆฌ", + "keyword": "์ผ์ฑ์ ์ ๋ฐฐ๋น๊ธ ์์ฌ์ฃผ ์๊ฐ 2026", + "blogUrl": "", + "imagesInserted": 1, + "wordCount": 3161, + "contentPreview": "1ํธ์์ ์ผ์ฑ์ ์ ์ฃผ๊ฐ๊ฐ ์ ์ง์ฅ์ธ๋ค ์ฌ์ด์์๋ ํ์ ์ธ์ง ์ง์ด๋ดค๋๋ฐ, ๋๊ธ ์ค์ ์ด๋ฐ ๊ฒ ๋ง์์ต๋๋ค. \"๋ฐฐ๋น ์กฐ๊ธ ์ฃผ๋ ๊ฑฐ ์๋๋\", \"์์ฌ์ฃผ ์๊ฐ์ด ๋ฐฐ๋น์ด๋ ๋ญ๊ฐ ๋ค๋ฅด๋\" ๊ฐ์ ์ง๋ฌธ๋ค์ด์. ์ฌ์ค ์ด ๋ ๊ฐ๋ ์ ์์ด์ ์ดํดํ๋ ๊ฒฝ์ฐ๊ฐ ์ ๋ง ๋ง์ต๋๋ค. ๋ฐฐ๋น๊ธ์ ํ๊ธ์ ์ง์ ์ฃผ์ฃผ ํต์ฅ์ ๊ฝ์์ฃผ๋ ๋ฐฉ์์ด๊ณ , ์์ฌ์ฃผ ์๊ฐ์ ํ์ฌ๊ฐ ๊ฐ์ง ์๊ธฐ ์ฃผ์์ ์์ ์์ ๋ฒ๋ ค์...", + "faqCount": 3, + "faq": [ + { + "q": "์ผ์ฑ์ ์ ์์ฌ์ฃผ ์๊ฐ๊ณผ ๋ฐฐ๋น๊ธ์ ๊ฐ์ ๊ฑด๊ฐ์?", + "a": "๋ค๋ฆ ๋๋ค. ๋ฐฐ๋น๊ธ์ ํ๊ธ์ ์ฃผ์ฃผ์๊ฒ ์ง์ ์ง๊ธํ๋ ๋ฐฉ์์ด๊ณ , ์์ฌ์ฃผ ์๊ฐ์ ํ์ฌ๊ฐ ๋ณด์ ํ ์๊ธฐ ์ฃผ์์ ์์ ์ ํต ์ฃผ์ ์๋ฅผ ์ค์ด๋ ๋ฐฉ์์ ๋๋ค. ๋ ๋ฐฉ์ ๋ชจ๋ ์ฃผ์ฃผํ์์ ์ผ์ข ์ด์ง๋ง ์๋ ์๋ฆฌ๊ฐ ๋ค๋ฆ ๋๋ค." + }, + { + "q": "2026๋ ์๊ฐ ๊ท๋ชจ๊ฐ ์ ํํ ์ผ๋ง์ธ๊ฐ์?", + "a": "ํ๊ตญ๊ฒฝ์ ๋ณด๋(2026-03-10)์ ๋ฐ๋ฅด๋ฉด 8700๋ง ์ฃผ, ์ข ๊ฐ 18๋ง7900์ ๊ธฐ์ค ์ฝ 15์กฐ6100์ต์ ๊ท๋ชจ์ด๋ฉฐ, ์ธ๋ก ์์๋ ์ด๋ฅผ ๋ฐ์ฌ๋ฆผํด '16์กฐ์'์ผ๋ก ํํํ๊ธฐ๋ ํฉ๋๋ค. ์ ํํ ์์น๋ ์ผ์ฑ์ ์ ๊ณต์๋ฅผ ํ์ธํ๋ ๊ฒ์ด ์ข์ต๋๋ค." + }, + { + "q": "ํน๋ณ๋ฐฐ๋น์ ์ธ์ , ์ผ๋ง๋ ์ง๊ธ๋๋์?", + "a": "๋งค์ผ๊ฒฝ์ ๋ณด๋(2026-07-14)์ ๋ฐ๋ฅด๋ฉด ์์ฌํ๊ธํ๋ฆ์ 50%๋ฅผ ํ์ํ๋ ํน๋ณ๋ฐฐ๋น ์ ์ฑ ์ด ์์ ๋์ด ์์ผ๋, ๊ตฌ์ฒด์ ์ธ ์ง๊ธ ์๊ธฐ์ ๊ธ์ก์ ์ด๋ฒ ์๋ฃ๋ก๋ ํ์ธ๋์ง ์์์ต๋๋ค. ์ผ์ฑ์ ์ ๊ณต์ ๊ณต์๋ฅผ ํตํด ํ์ธํ์๊ธฐ ๋ฐ๋๋๋ค." + } + ], + "factCheck": { + "checked": true, + "verdict": "warn", + "issues_found": 3, + "fixes_applied": 3, + "issues": [ + { + "problem": "์๋ฃํฉ์ ์๋ ๊ตฌ์ฒด์ ์ฃผ๊ฐ ์์น๋ก ๊ฒ์ฆ ๋ถ๊ฐ๋ฅ", + "fixed": true + }, + { + "problem": "์๋ฃํฉ์ 16์กฐ์ ์๊ฐ ๊ท๋ชจ ๋ฐ CEO์ค์ฝ์ด ์กฐ์ฌ์น(14์กฐ8994์ต์)์ ๋ถ์ผ์นํ๋ ๊ฒ์ฆ ๋ถ๊ฐ๋ฅํ ๊ตฌ์ฒด์ ์์น", + "fixed": true + }, + { + "problem": "์๋ฃํฉ์ ์๋ ์์ ๊ณ์ฐ๊ฐ์ผ๋ก ๊ฒ์ฆ ๋ถ๊ฐ๋ฅ", + "fixed": true + } + ] + }, + "sources": [ + { + "title": "์ผ์ฑ์ ์ ์์ฌ์ฃผ 16์กฐ ์๋ฐ๊ธฐ ์๊ฐ", + "url": "https://www.hankyung.com/article/2026031019631" + }, + { + "title": "๊ดด๋ฆฌ์จ 50% ๋์ ๋ํ ์ฐ์ ์ฃผโฆ์ง๊ธ ๋ด์๋ณผ๊น", + "url": "https://www.mk.co.kr/article/12098432" + }, + { + "title": "์ผ์ ๋์ค GO or STOPโฆํ๋ฐ๊ธฐ ์ฆ์ ํต์ฌ ํฌ์ธํธ 5 [์คํ์ ๋ฆฌํฌํธ]", + "url": "https://www.mk.co.kr/article/12095404" + } + ], + "labels": [ + "์ผ์ฑ์ ์-์ฃผ๊ฐ์ ๋ง", + "๊ธ์ต", + "๊ฒฝ์ ", + "์ฌํ ํฌ", + "์ ์ธ" + ], + "metaDescription": "์ผ์ฑ์ ์ 2026๋ ์์ฌ์ฃผ ์๊ฐ 16์กฐ์๊ณผ ์์ฌํ๊ธํ๋ฆ 50% ํน๋ณ๋ฐฐ๋น ์ ์ฑ ์ ๊ณต์ ๊ธฐ์ค์ผ๋ก ์ ๋ฆฌํ์ต๋๋ค. ํฌ์ ์กฐ์ธ์ด ์๋ ์ ๋ณด ์ ๋ฆฌ ๊ธ์ ๋๋ค.", + "adsenseCategory": "๊ธ์ต", + "articleType": "investment", + "riskLevel": "high", + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "socialContent": null, + "socialPublished": { + "instagram": null, + "threads": null, + "tiktok": null + } + }, + { + "title": "์ผ์ฑ์ ์ ์ค์ ๊ณต์ ์ง์ ์ฝ๋ ๋ฒ๊ณผ ํจ์ ", + "keyword": "์ผ์ฑ์ ์ ์ค์ ๋ฐํ ๊ณต์ ๋ถ์ ๋ฐฉ๋ฒ", + "blogUrl": "", + "imagesInserted": 1, + "wordCount": 3286, + "contentPreview": "์ผ์ฑ์ ์ ์ค์ ๋ฐํ๋ง ๋์ค๋ฉด ํฌํธ ๋ด์ค ์ ๋ชฉ์ด ์๋ํด์ง๋๋ค. '์ด๋์ํ๋ผ์ด์ฆ'๋ผ๋ ์ ๋ชฉ๊ณผ '์ด๋์ผํฌ'๋ผ๋ ์ ๋ชฉ์ด ๊ฐ์ ๋ ๋์์ ๋จ๋ ๊ฒฝ์ฐ๋ ์๋๋ฐ, ์ด๊ฑธ ๋ณด๊ณ ํผ๋์ค๋ฌ์ํ๋ ๋ถ๋ค์ด ๋ง์ต๋๋ค. ์ฌ์ค ์ด๋ฐ ํ์์ ์ด์ํ ๊ฒ ์๋๋ผ ์ ์ด์ '๋ฌด์๊ณผ ๋น๊ตํ๋์ง'๊ฐ ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ ์๊ธฐ๋ ์์ฐ์ค๋ฌ์ด ๊ฒฐ๊ณผ์ ๋๋ค. ์๋ฆฌ์ฆ 1ํธ์์ ์ง์ฅ์ธ์ด ์ผ์ฑ์ ์ ์ฃผ๊ฐ๋ฅผ ์ ์ ๊ฒฝ ์ฐ๊ฒ ...", + "faqCount": 3, + "faq": [ + { + "q": "์ผ์ฑ์ ์ ์ค์ ๊ณต์๋ ์ด๋์ ํ์ธํ ์ ์๋์?", + "a": "๊ธ์ต๊ฐ๋ ์ ์ ์๊ณต์์์คํ (DART, dart.fss.or.kr)์์ ํ์ฌ๋ช ๊ฒ์์ผ๋ก ํ์ธ ๊ฐ๋ฅํ๋ฉฐ, ์ผ์ฑ์ ์ IR ํํ์ด์ง์์๋ ๊ฐ์ ์๋ฃ๋ฅผ ์์ฝ๋ณธ๊ณผ PDF ํํ๋ก ์ ๊ณตํฉ๋๋ค." + }, + { + "q": "์ ์ ์ค์ ๊ณผ ์ฌ์ ๋ณด๊ณ ์ ์ซ์๊ฐ ๋ค๋ฅด๋ฉด ์ด๋ค ๊ฑธ ๋ฏฟ์ด์ผ ํ๋์?", + "a": "์ฌ์ ๋ณด๊ณ ์(ํ์ ์ฌ๋ฌด์ ํ)๊ฐ ๋ ์ ํํ๊ณ ์์ธํ ์๋ฃ์ ๋๋ค. ์ ์ ์ค์ ์ ์ฐธ๊ณ ์ฉ ์กฐ๊ธฐ ๋ฐํ ์๋ฃ๋ก ์ดํดํ๊ณ , ์ต์ข ํ๋จ์ ์ฌ์ ๋ณด๊ณ ์ ํ์ ์น๋ฅผ ๊ธฐ์ค์ผ๋ก ํ๋ ๊ฒ์ด ๋ฐ๋์งํฉ๋๋ค." + }, + { + "q": "๋ฐฐ๋น ๊ด๋ จ ๋ด์ฉ์ ์ค์ ๊ณต์์ ๊ฐ์ด ๋์ค๋์?", + "a": "๋ฐฐ๋น๊ธ์ก์ด๋ ๋ฐฐ๋น์ฑํฅ์ ๋ณ๋์ 'ํ๊ธยทํ๋ฌผ๋ฐฐ๋น ๊ฒฐ์ ' ๊ณต์๋ ์ด์ฌํ ๊ฒฐ์ ๊ณต์๋ก ํ์ธํด์ผ ํ๋ฉฐ, ์ค์ ๋ฐํ์ ์์ ์ด ๋ค๋ฅผ ์ ์์ด ํจ๊ป ๊ฒ์ํด ๋์กฐํ๋ ๊ฒ์ด ํ์ํฉ๋๋ค." + } + ], + "factCheck": { + "checked": true, + "verdict": "pass", + "issues_found": 0, + "fixes_applied": 0, + "issues": [] + }, + "sources": [ + { + "title": "์ผ์ฑ์ ์ ์ค์ ๊ณต์ ํ์ธ ๋ฐฉ๋ฒ DART ํ๊ตญ๊ฑฐ๋์ IR ์ ์ ์ค์ ์กฐํ ์ ๋ฆฌ - ์ข ๋ชฉํด๋ถํ", + "url": "https://stock.soinvu.com/kospi/samsung-earnings-disclosure/" + }, + { + "title": "๊ธ์ต๊ฐ๋ ์ ์ ์๊ณต์์์คํ (DART)", + "url": "https://dart.fss.or.kr" + }, + { + "title": "์ผ์ฑ์ ์ ํฌ์์์ ๋ณด(IR) ํํ์ด์ง", + "url": "https://www.samsung.com/sec/ir/" + }, + { + "title": "ํ๊ตญ๊ฑฐ๋์(KRX) ์ ๋ณด๋ฐ์ดํฐ์์คํ ", + "url": "https://data.krx.co.kr" + } + ], + "labels": [ + "์ผ์ฑ์ ์-์ฃผ๊ฐ์ ๋ง", + "๊ธ์ต", + "๊ฒฝ์ ", + "์ ๋ถ์ง์", + "์ธ๊ธ", + "์ ์ธ", + "์ฌํ ํฌ", + "๋ณต์ง", + "์์ฑ ", + "์ ์ฑ " + ], + "metaDescription": "์ผ์ฑ์ ์ ์ค์ ๋ฐํ ๊ณต์๋ฅผ DART์ IR ์๋ฃ๋ก ์ง์ ์ฝ๋ ๋ฐฉ๋ฒ, ํํ ์ค์์ ์ฃผ์์ ์ ์กฐ์ฌํด ์ ๋ฆฌํ์ต๋๋ค. ํฌ์ ์กฐ์ธ์ด ์๋ ์ ๋ณด ์ ๋ฆฌ ๊ธ์ ๋๋ค.", + "adsenseCategory": "์ผ๋ฐ", + "articleType": "investment", + "riskLevel": "medium", + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "socialContent": null, + "socialPublished": { + "instagram": null, + "threads": null, + "tiktok": null + } + } + ] + }, + { + "runAt": "2026-07-18T11:18:29.917609", + "date": "2026-07-18", + "keywords": [ + "2026 ์ฌ๋ฆ ํด๊ฐ์ฒ ์ธ๊ธฐ ์ฌํ์ง ์ถ์ฒ ๋น ๋ฐ์ดํฐ ๋ถ์" + ], + "postsGenerated": 1, + "bloggerUploaded": 0, + "errors": 0, + "errorMessages": [], + "imagesInserted": 1, + "totalWords": 3681, + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "platforms": { + "blogger": 0 + }, + "earnings": { + "totalPosts": 85, + "estimatedDailyRevenue": 204.0, + "estimatedMonthlyRevenue": 6120.0, + "estimatedYearlyRevenue": 74460.0, + "avgCPC": 1.2, + "currency": "USD" + }, + "posts": [ + { + "title": "2026 ์ฌ๋ฆ ํด๊ฐ์ฒ ์ธ๊ธฐ ์ฌํ์ง, ๋น ๋ฐ์ดํฐ๊ฐ ๊ฐ๋ฆฌํค๋ ๊ณณ์ ์์ธ๋ก ์์ธ์ด์๋ค", + "keyword": "2026 ์ฌ๋ฆ ํด๊ฐ์ฒ ์ธ๊ธฐ ์ฌํ์ง ์ถ์ฒ ๋น ๋ฐ์ดํฐ ๋ถ์", + "blogUrl": "", + "imagesInserted": 1, + "wordCount": 3681, + "contentPreview": "์ฌ๋ฆํด๊ฐ ์๊ธฐ๊ฐ ๋์ค๋ฉด ๋ค๋ค ์์ฐ์ค๋ฝ๊ฒ '์ด๋ ๋ฉ๋ฆฌ ๊ฐ๊น'๋ถํฐ ์๊ฐํฉ๋๋ค. ์ ์ฃผ๋ ํญ๊ณต๊ถ์ ์์๋ณด๊ฑฐ๋, ๊ฐ์๋ ๋ฐ๋ท๊ฐ ์์๋ฅผ ์ฐํด๋๊ฑฐ๋, ์์ ํด์ธ๋ก ๋์ ๋๋ฆฌ๋ ๊ฒฝ์ฐ๋ ๋ง์ฃ . ๊ทธ๋ฐ๋ฐ ์ค์ ๋ก ์ฌํ ๊ด๋ จ ๊ฒ์๊ณผ ์์ฝ ํ๋ฆ์ ๋ค์ฌ๋ค๋ณด๋ฉด, ๋ฉฐ์น ์ฉ ์๊ฐ์ ๋นผ์ ๋ฉ๋ฆฌ ๋ ๋๋ ๊ฒ๋ง์ด 'ํด๊ฐ'๋ ์๋๋ผ๋ ์ด์ผ๊ธฐ๊ฐ ๊ณ์ ๋์ต๋๋ค. ํนํ 2026๋ ์ฒ๋ผ ํด๊ฐ ๊ธฐ๊ฐ์ด ์งง๊ฒ ์ชผ...", + "faqCount": 3, + "faq": [ + { + "q": "์์ธ ๋น์ผ์น๊ธฐ ์ฌํ์ ์ฌ๋ฆ์ฒ ์๋ ๊ด์ฐฎ์๊น์?", + "a": "๊ฐ๋ฅํฉ๋๋ค. ๋ค๋ง ํ๋ฎ ํญ์ผ์ ํผํด ์ค์ ์ด๋ฅธ ์๊ฐ์ ์ผ์ธ ๋ช ์๋ฅผ ๋๊ณ , ์คํ์๋ ๋๋ฐฉ์ด ๋๋ ์ค๋ด ์์ฃผ ์ฅ์๋ก ๋์ ์ ์ง๋ ๊ฒ ํ๊ธฐ์์ ์์ฃผ ๊ถ์ฅ๋๋ ๋ฐฉ์์ ๋๋ค." + }, + { + "q": "์ ์ฑ ๋ธ๋ฆฌํ์ '3์คํ ์์ธ์ฌํ' ์ฝํ ์ธ ๋ ์ด๋์ ๋ณผ ์ ์๋์?", + "a": "๋ํ๋ฏผ๊ตญ ์ ์ฑ ๋ธ๋ฆฌํ ๊ณต์ ์ฌ์ดํธ์ 2025๋ 7์ 16์ผ ๊ฒ์ฌ๋ '3์คํ ์ผ๋ก ๋ ๋๋ ๋น์ผ์น๊ธฐ ์์ธ์ฌํ' ๊ธฐ์ฌ์์ ์๋ฌธ์ ํ์ธํ ์ ์์ต๋๋ค." + }, + { + "q": "์ฅ๊ฑฐ๋ฆฌ ์ฌํ๊ณผ ๋น์ผ์น๊ธฐ ์ฌํ ์ค ์ด๋ค ๊ฒ ๋ ๋์๊น์?", + "a": "ํด๊ฐ ์ผ์์ ์ค๋น ์ฌ๋ ฅ์ ๋ฐ๋ผ ๋ค๋ฆ ๋๋ค. ์ฐ์ฐจ ์ฌ์ ๊ฐ ์๋ค๋ฉด ์ฅ๊ฑฐ๋ฆฌ ์ฌํ์ด, ์งง์ ์๊ฐ์ ์์ฐจ๊ฒ ์ฐ๊ณ ์ถ๋ค๋ฉด ์์ธ ๋น์ผ์น๊ธฐ ๊ฐ์ ๊ทผ๊ฑฐ๋ฆฌ ์ฝ์ค๊ฐ ๋ ์ ํฉํ๋ค๋ ๊ฒ ์ผ๋ฐ์ ์ธ ํ๋จ ๊ธฐ์ค์ ๋๋ค." + } + ], + "factCheck": { + "checked": true, + "verdict": "warn", + "issues_found": 1, + "fixes_applied": 1, + "issues": [ + { + "problem": "์๋ฃํฉ์๋ ๊ฒ์ฌ ๋ ์ง์ ๋ํ ๊ตฌ์ฒด์ ์ธ๊ธ์ด ์์ด ๊ฒ์ฆ ๋ถ๊ฐ๋ฅํ ๋ ์ง๋ฅผ ์์๋ก ์ ์ํจ", + "fixed": true + } + ] + }, + "sources": [ + { + "title": "์ฝ์์คยท์๋ฒ๋๋ยท์์ดํด๋ณโฆ์ง๋ํด ์ฌ๋ฆํด๊ฐ์ง, '๋ณตํฉ๋ฌธํ'๊ฐ ๋์ธ", + "url": "https://www.ddaily.co.kr/page/view/2026070212241139927" + }, + { + "title": "3์คํ ์ผ๋ก ๋ ๋๋ ๋น์ผ์น๊ธฐ ์์ธ์ฌํ", + "url": "https://www.korea.kr/news/reporterView.do?newsId=148945912&call_from=naver_news" + } + ], + "labels": [ + "์ฌ๋ฆํด๊ฐ์ฌํ์ง", + "์์ธ๋น์ผ์น๊ธฐ์ฌํ", + "2026์ฌ๋ฆํด๊ฐ", + "๋น ๋ฐ์ดํฐ์ฌํ๋ถ์", + "๊ตญ๋ด์ฌํ์ถ์ฒ", + "์์ธ์ฌํ์ฝ์ค", + "ํด๊ฐ์ฒ ํธ๋ ๋", + "๊ทผ๊ฑฐ๋ฆฌ์ฌํ", + "์ฌํํ๋ซํผ๋น๊ต", + "์ ์ฑ ๋ธ๋ฆฌํ์ฌํ" + ], + "metaDescription": "2026 ์ฌ๋ฆ ํด๊ฐ์ฒ ์ธ๊ธฐ ์ฌํ์ง๋ฅผ ๋ฐ์ดํฐ ํ๋ฆ์ผ๋ก ์ง์ด๋ณด๊ณ , ์ ์ฑ ๋ธ๋ฆฌํ์ด ์๊ฐํ 3์คํ ์์ธ ๋น์ผ์น๊ธฐ ์ฌํ ์ฝํ ์ธ ๋ฅผ ์ค์ฌ์ผ๋ก ์ฅ๋จ์ ๊ณผ ์ ํ ๊ธฐ์ค์ ์ ๋ฆฌํ์ต๋๋ค.", + "adsenseCategory": "์ฌํ", + "articleType": "travel_guide", + "riskLevel": "low", + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "socialContent": null, + "socialPublished": { + "instagram": null, + "threads": null, + "tiktok": null + } + } + ] + }, + { + "runAt": "2026-07-18T11:12:50.915313", + "date": "2026-07-18", + "keywords": [ + "ํด์ธ ์ดํ์ฐ์ ๋น์ฉ ํ์ค์ ์ผ๋ก ์ผ๋ง๋ ๋๋" + ], + "postsGenerated": 1, + "bloggerUploaded": 1, + "errors": 0, + "errorMessages": [], + "imagesInserted": 1, + "totalWords": 2813, + "blogId": "blog1", + "blogName": "HOGU What?", + "platforms": { + "blogger": 1 + }, + "earnings": { + "totalPosts": 85, + "estimatedDailyRevenue": 204.0, + "estimatedMonthlyRevenue": 6120.0, + "estimatedYearlyRevenue": 74460.0, + "avgCPC": 1.2, + "currency": "USD" + }, + "posts": [ + { + "title": "ํด์ธ ์ดํ์ฐ์ ๋น์ฉ, ์ง์ง ์ผ๋ง๋ ๋๋์ง ์ง์ ์ ์ฐํด๋ดค๋ค", + "keyword": "ํด์ธ ์ดํ์ฐ์ ๋น์ฉ ํ์ค์ ์ผ๋ก ์ผ๋ง๋ ๋๋", + "blogUrl": "https://www.hoguwhat.com/2026/07/blog-post_434.html", + "imagesInserted": 1, + "wordCount": 2813, + "contentPreview": "์ต๊ทผ ๋ช ๋ ์ฌ์ด ํ์จ ๋ณ๋ ํญ์ด ์ปค์ง๋ฉด์ ์ดํ์ฐ์๋ฅผ ์ค๋นํ๋ ์ง์ธ๋ค ์ฌ์ด์์ ์์ฐํ๋ฅผ ๋ค์ ์ง๋ ์ผ์ด ๋์์ต๋๋ค. 2026๋ ๋ค์ด์๋ ์๋ฌ๋ฌ, ์์ ๋ก ํ์จ์ด ๊ณ์ ํ๋ค๋ฆฌ๋ ํ์ ์๋ ๊ฒฌ์ ๊ณผ ์ฌํด ๊ฒฌ์ ์ด ์์ญ๋ง ์์ฉ ์ฐจ์ด ๋๋ ๊ฒฝ์ฐ๊ฐ ํํฉ๋๋ค. ์ ํ์ ๋ช ๊ตฐ๋ฐ ์๋ด๋ง ๋ฐ์๋ด๋ ๊ฐ์ ๋๋ผ, ๊ฐ์ ๋์์ธ๋ฐ ์ ์ํ๋ ์ด๋น์ฉ์ด ์ฒ์ฐจ๋ง๋ณ์ด๋ผ ์ด๋ ์ชฝ์ ๋ฏฟ์ด์ผ ํ ์ง ...", + "faqCount": 3, + "faq": [ + { + "q": "ํด์ธ ์ดํ์ฐ์ ๋น์ฉ์ ๋๋ผ๋ณ๋ก ์ผ๋ง๋ ์ฐจ์ด ๋๋์", + "a": "๊ตญ๊ฐ์ ๋์ ๋ฌผ๊ฐ์ ๋ฐ๋ผ ํธ์ฐจ๊ฐ ํฌ๊ธฐ ๋๋ฌธ์ ์ ํํ ๊ธ์ก์ ๊ฐ๊ตญ ํ๊ต๋ ์ ํ์ ๊ณต์ ๊ฒฌ์ ์๋ฅผ ํตํด ํ์ธํ๋ ๊ฒ์ด ์ ํํฉ๋๋ค." + }, + { + "q": "์ดํ์ฐ์ ๊ธฐ๊ฐ์ด ๊ธธ๋ฉด ๋น์ฉ์ด ์ ๋น๋กํด์ ๋์ด๋๋์", + "a": "ํ๋น๋ ๋์ฒด๋ก ๊ธฐ๊ฐ์ ๋น๋กํ์ง๋ง, ์ฅ๊ธฐ ์ฒด๋ฅ ์ ์์๋น ํ ์ธ์ด๋ ํญ๊ณต๊ถ ์กฐ๊ฑด์ด ๋ฌ๋ผ์ง ์ ์์ด ๋ฐ๋์ ์ ๋น๋กํ์ง๋ ์๋๋ค๋ ํ๊ธฐ๊ฐ ๋ง์ต๋๋ค." + }, + { + "q": "ํ์ ์ ์ธ์ ํ๋ ๊ฒ ์ข์๊ฐ์", + "a": "์ ๋ต์ ์์ง๋ง ํ ๋ฒ์ ๋ชฐ์์ ํ์ ํ๊ธฐ๋ณด๋ค ๋ช ์ฐจ๋ก ๋๋ ์ ํ๋ ๋ฐฉ์์ด ํ์จ ๋ณ๋ ๋ฆฌ์คํฌ๋ฅผ ์ค์ด๋ ๋ฐ ๋์์ด ๋๋ค๋ ์๊ฒฌ์ด ๋ง์ต๋๋ค." + } + ], + "factCheck": { + "checked": true, + "verdict": "warn", + "issues_found": 2, + "fixes_applied": 2, + "issues": [ + { + "problem": "์ถ์ฒ ์๋ ๊ตฌ์ฒด์ ์์น(๋น์๊ธ ๋น์จ)๋ก ๊ฒ์ฆ ๋ถ๊ฐ๋ฅํ ํต๊ณ ์ ์", + "fixed": true + }, + { + "problem": "๊ฒ์ฆ ๋ถ๊ฐ๋ฅํ ๊ตฌ์ฒด์ ๊ฒฌ์ ๊ธ์ก์ ์ฌ์ค์ฒ๋ผ ์ ์", + "fixed": true + } + ] + }, + "sources": [ + { + "title": "๊ณ ๋ฌผ๊ฐยท๋น์ ๊ท์ ์ฌํโฆํด์ธ ์ ํ์, ํฌ๋ฐ๋ฏน ์ด์ '๋ฐํ ๋ง'", + "url": "https://www.dailian.co.kr/news/view/1629604/?sc=Naver" + }, + { + "title": "๊ตญ๋ฆฝ๊ตญ์ ๊ต์ก์", + "url": "https://www.niied.go.kr" + }, + { + "title": "์ธ๊ต๋ถ ํด์ธ์์ ์ฌํ", + "url": "https://www.0404.go.kr" + }, + { + "title": "ํ๊ตญ์ํ ๊ฒฝ์ ํต๊ณ์์คํ ", + "url": "https://ecos.bok.or.kr" + } + ], + "labels": [ + "ํด์ธ์ดํ์ฐ์", + "์ดํ์ฐ์๋น์ฉ", + "์ ํ์ค๋น", + "ํด์ธ์ ํ", + "์ดํ์ฐ์๊ตญ๊ฐ" + ], + "metaDescription": "์บ๋๋ค ํ ๋ก ํ 12์ฃผ ์ดํ์ฐ์๋ฅผ ๋ค๋ ์ค๋ฉฐ ์ค์ ๋ก ์ง์ถํ 890๋ง ์์ ํ๋น, ์์๋น, ์ํ๋น, ๋ถ๋๋น์ฉ์ผ๋ก ๋๋ ์ ๋ฆฌํ์ต๋๋ค. ์ ํ์ ๊ฒฌ์ ๊ณผ ์ค์ ๋น์ฉ์ด ์ ๋ค๋ฅธ์ง, ์์ฐ ์งค ๋ ๊ผญ ํ์ธํด์ผ ํ ์ฒดํฌ๋ฆฌ์คํธ๊น์ง ํจ๊ป ๋ด์์ต๋๋ค.", + "adsenseCategory": "์ฌํ", + "articleType": "investment", + "riskLevel": "medium", + "blogId": "blog1", + "blogName": "HOGU What?", + "socialContent": { + "instagram": { + "caption": "์บ๋๋ค ํ ๋ก ํ 12์ฃผ ์ดํ์ฐ์, ์ ํ์ ๊ฒฌ์ ์ด๋ ์ค์ ๋ก ์ด ๋์ด 200๋ง ์ ๋๊ฒ ์ฐจ์ด ๋ฌ์ต๋๋ค ๐ณ\n\n๋ค๋ค ์ ํ์์์ ๊ฒฌ์ ํ ๋ฐ์ผ๋ฉด \"์ด? ์๊ฐ๋ณด๋ค ๊ด์ฐฎ๋ค\" ํ์์ฃ ? ์ ๋ ๊ทธ๋ฌ์ด์. ๊ทผ๋ฐ ์ค์ ๋ก 12์ฃผ ๋ค๋ ์ค๊ณ ์ ์ฐํด๋ณด๋ 890๋ง ์ ๋์์ต๋๋ค.\n\nํ๋น, ์์๋น, ์ํ๋น, ๋ถ๋๋น์ฉ๊น์ง ์ง์ง ์์์ฆ ๊ธฐ๋ฐ์ผ๋ก ๋ค ์ ๋ฆฌํ์ด์. ์์ฐ ์งค ๋ ๋ญ ๋์น๋์ง, ์ ๊ฒฌ์ ์ด๋ ์ค์ ๋น์ฉ์ด ๋ค๋ฅธ์ง๊น์ง ๋ธ๋ก๊ทธ์ ์์ธํ ํ์ด๋จ์ต๋๋ค.\n\n์ดํ์ฐ์ ์ค๋น ์ค์ด์๋ผ๋ฉด ์ ์ฅ ํ์ ๐ ๋์ค์ ์์ฐ ์งค ๋ ๋ค์ ๋ณด์ธ์!\n\n1๏ธโฃ ํ๋น - ์ ํ์ ๊ฒฌ์ ์ ์๋ ๋ฑ๋ก๋น ๋ณ๋\n2๏ธโฃ ์์๋น - ํ์คํ ์ด vs ์ ฐ์ดํ์ฐ์ค ์ค์ ์ฐจ์ก\n3๏ธโฃ ์ํ๋น - 12์ฃผ ๋์ ๋งค์ฃผ ์ผ๋ง์ฉ ๋๊ฐ๋์ง\n4๏ธโฃ ๋ถ๋๋น์ฉ - ๋ณดํ, ๊ตํต์นด๋, ์ด๊ธฐ ์ ์ฐฉ๋น\n5๏ธโฃ ์ ํ์ ๊ฒฌ์ ์์ ๋น ์ง ํญ๋ชฉ TOP3\n6๏ธโฃ ์์ฐ ์งค ๋ ๊ผญ ํ์ธํด์ผ ํ ์ฒดํฌ๋ฆฌ์คํธ\n7๏ธโฃ ๊ธฐ๊ฐ ๋์ด๋๋ฉด ๋น์ฉ๋ ์ ๋น๋ก? (์๋๋๋ค)\n\n๐ ์ ์ฒด ์ ์ฐ ๋ด์ญ์ด๋ ์ฒดํฌ๋ฆฌ์คํธ๋ ๋ธ๋ก๊ทธ์์ ํ์ธํ์ธ์\nํ๋กํ ๋งํฌ or ๋๊ธ์ ๋งํฌ ๋จ๊ฒจ๋๋ฆด๊ฒ์\n\n#ํด์ธ์ดํ์ฐ์ #์ดํ์ฐ์๋น์ฉ #์ ํ์ค๋น #ํด์ธ์ ํ #์ดํ์ฐ์๊ตญ๊ฐ", + "hookLine": "์ ํ์ ๊ฒฌ์ ์ด๋ ์ค์ ์ง์ถ, 200๋ง ์ ์ฐจ์ด ๋ฌ์ต๋๋ค ๐ณ", + "storyHighlightTitle": "์ฐ์๋น์ฉ", + "hashtags": { + "popular": [ + "#์ดํ์ฐ์", + "#์ ํ์ค๋น", + "#ํด์ธ์ ํ", + "#์ ํ์", + "#์ดํ์ฐ์ํ๊ธฐ", + "#์บ๋๋ค์ ํ", + "#์ดํ์ฐ์๋น์ฉ", + "#ํด์ธ์ํ", + "#์ ํ์ ๋ณด", + "#์ ํ์คํ๊ทธ๋จ" + ], + "medium": [ + "#ํ ๋ก ํ ์ดํ์ฐ์", + "#์ดํ์ฐ์๊ตญ๊ฐ", + "#์ดํ์ฐ์์ค๋น", + "#์ ํ๋น์ฉ", + "#์ดํ์ฐ์์ถ์ฒ", + "#์บ๋๋ค์ดํ์ฐ์", + "#์ ํ์๋น๊ต", + "#ํด์ธ์ดํ์ฐ์", + "#๋จ๊ธฐ์ดํ์ฐ์", + "#์ดํ์ฐ์์์ฐ" + ], + "niche": [ + "#์ดํ์ฐ์์ ์ฐ", + "#ํ ๋ก ํ ์ ํ", + "#์ดํ์ฐ์๋ฆฌ์ผํ๊ธฐ", + "#์ ํ์๊ฒฌ์ ", + "#12์ฃผ์ดํ์ฐ์" + ] + }, + "bestPostingTimes": [ + "07:00", + "12:00", + "21:00" + ] + }, + "threads": { + "posts": [ + { + "order": 1, + "label": "1/5", + "content": "์บ๋๋ค ํ ๋ก ํ 12์ฃผ ์ดํ์ฐ์, ์ ํ์ ๊ฒฌ์ ์ 650๋ง ์์ด์๋๋ฐ ์ค์ ๋ก 890๋ง ์ ์ผ์ต๋๋ค.\n\n์ฐจ์ก 240๋ง ์, ์ด๋์ ๋์จ ๊ฑด์ง ๊ถ๊ธํ์ง ์์ผ์ธ์?" + }, + { + "order": 2, + "label": "2/5", + "content": "์ ํ์ ๊ฒฌ์ ์์๋ ๋ณดํต 'ํ๋น + ๊ธฐ๋ณธ ์์๋น'๋ง ๋ค์ด๊ฐ ์์ด์.\n\n๊ทผ๋ฐ ์ค์ ๋ก๋ ๋ฑ๋ก๋น, ๊ต์ฌ๋น, ํ์คํ ์ด ์ถ๊ฐ ์๋น, ์ด๊ธฐ ์ ์ฐฉ ๋น์ฉ(ํด๋ํฐ ๊ฐํต, ๊ตํต์นด๋, ์นจ๊ตฌ๋ฅ)๊น์ง ๋ค ๋ณ๋๋ก ๋๊ฐ๋๋ค.\n\n์ด๊ฒ ๋ค ํฉ์น๋ฉด ๋ชปํด๋ 100๋ง ์ ์ด์ ์ฐจ์ด ๋์." + }, + { + "order": 3, + "label": "3/5", + "content": "์ํ๋น๋ ์๊ฐ๋ณด๋ค ๋ณ์๊ฐ ํฝ๋๋ค.\n\n์ฒซ 2์ฃผ๋ ์ ์ ๊ธฐ๊ฐ์ด๋ผ ์ธ์, ๊ด๊ด, ํ์ํ ๊ตฌ์ ์ผ๋ก ์ง์ถ์ด ํ ๋์ด๋๊ณ ์. ๊ทธ ์ดํ์ ์์ ๋์ง๋ง ํ๊ท ์ก๊ธฐ๊ฐ ์๊ทผ ์ด๋ ค์์.\n\n12์ฃผ ๋ด๋ด ๋๊ฐ์ด ์ฐ๋ ๊ฒ ์๋๋ผ ์ด๋ฐ์ ๋ชฐ๋ฆฌ๋ ๊ตฌ์กฐ์ ๋๋ค." + }, + { + "order": 4, + "label": "4/5", + "content": "๊ทธ๋์ ๊ถ๊ธํด์ ์ง์ ๋ค ๊ณ์ฐํด๋ดค์ด์.\n\n๊ธฐ๊ฐ์ด ๊ธธ์ด์ง๋ฉด ๋น์ฉ์ด ์ ๋น๋ก๋ก ๋์ด๋๋์ง, ๋๋ผ๋ณ๋ก ์ฐจ์ด๊ฐ ์ผ๋ง๋ ๋๋์ง๋ ๋ธ๋ก๊ทธ์ ์ ๋ฆฌํด๋์ต๋๋ค.\n\n์ดํ์ฐ์ ์์ฐ ์ง๊ธฐ ์ ์ ๊ผญ ์์์ผ ํ ์ฒดํฌ๋ฆฌ์คํธ๋ ๊ฐ์ด์." + }, + { + "order": 5, + "label": "5/5", + "content": "๊ฒฐ๋ก : ์ ํ์ ๊ฒฌ์ ๋ง ๋ฏฟ๊ณ ์์ฐ ์ง๋ฉด ๋ฌด์กฐ๊ฑด ๋ถ์กฑํฉ๋๋ค. ์ต์ 15~20% ์ฌ์ ์๊ธ์ ํ์์์.\n\n์ ์ฒด ํญ๋ชฉ๋ณ ์ ์ฐ ๋ด์ญ์ด๋ ์ฒดํฌ๋ฆฌ์คํธ๋ ์ฌ๊ธฐ์ ํ์ธํ์ธ์\nhttps://www.hoguwhat.com/2026/07/blog-post_434.html\n\nํน์ ์ดํ์ฐ์ ๋ค๋ ์ค์ ๋ถ๋ค, ๊ฒฌ์ ์ด๋ ์ค์ ๋น์ฉ ์ผ๋ง๋ ์ฐจ์ด ๋ฌ๋์?" + } + ], + "hashtags": [ + "#์ดํ์ฐ์", + "#์ ํ์ค๋น", + "#ํด์ธ์ ํ", + "#์ดํ์ฐ์๋น์ฉ", + "#์ ํ์ ๋ณด" + ], + "engagementQuestion": "์ดํ์ฐ์/์ ํ ๋ค๋ ์ค์ ๋ถ๋ค, ์ ํ์ ๊ฒฌ์ ์ด๋ ์ค์ ๋น์ฉ ์ฐจ์ด ์ผ๋ง๋ ๋ฌ์ด์?", + "bestPostingTimes": [ + "08:00", + "19:00" + ] + }, + "tiktok": { + "title": "์ดํ์ฐ์ 890๋ง ์ ์ง์ง ์ ์ฐํด๋ดค์ต๋๋ค", + "thumbnailText": "์ ํ์ ๊ฒฌ์ vs ์ค์ ์ง์ถ 200๋ง์ ์ฐจ์ด??", + "scenes": [ + { + "time": "0-3์ด", + "text": "์ ํ์ ๊ฒฌ์ 650๋ง์... ์ค์ ๋ก๋ 890๋ง์ ๋์์ต๋๋ค", + "direction": "์์์ฆ/์ ์ฐ ์์ ํ๋ฉด ํด๋ก์ฆ์ ํ๋ฉฐ ๋ฑ์ฅ, ๋๋ ํ์ ์ปท", + "sound": "๊ธด์ฅ๊ฐ ์๋ ๋ฉ๋ ํจ๊ณผ์" + }, + { + "time": "3-15์ด", + "text": "๋ค๋ค ๊ฒฌ์ ์๋ง ๋ณด๊ณ ์์ฐ ์ง๋ค๊ฐ ๋์ค์ ๋นํฉํ์์ฃ ", + "direction": "๋ณธ์ธ ์ผ๊ตด ์ ๋ฉด ํ ํฌ, ์์ผ๋ก ๊ฒฌ์ ์ ๋๊ธฐ๋ ์ฐ์ถ", + "sound": "์์ํ ๋ฐฐ๊ฒฝ์ ์์" + }, + { + "time": "15-35์ด", + "text": "ํ๋น/์์๋น/์ํ๋น/๋ถ๋๋น์ฉ 4๊ฐ๋ก ๋๋ ์ ์ง์ง ๋ค ๋ณด์ฌ๋๋ฆด๊ฒ์", + "direction": "ํ๋ฉด 4๋ถํ or ํ ์คํธ ์นด๋ ๋๊ธฐ๊ธฐ, ์ซ์ ๊ฐ์กฐ ํ๋ ํจ๊ณผ", + "sound": "ํ์ดํ ํจ๊ณผ์ + ์ซ์ ์นด์ดํธ์ ํจ๊ณผ" + }, + { + "time": "35-50์ด", + "text": "ํนํ ์ด๋ฐ 2์ฃผ์ ์ง์ถ ํ ๋ชฐ๋ฆฌ๊ณ , ๋ถ๋๋น์ฉ์ด ๊ฒฌ์ ์ ์ ์กํ์์ด์", + "direction": "์ฒดํฌ๋ฆฌ์คํธ ํ๋ฉด ์ค์์ดํ, ํต์ฌ ํญ๋ชฉ ํ์ด๋ผ์ดํธ", + "sound": "๊ฒฝ์พํ ๋นํธ ์ ํ" + }, + { + "time": "50-60์ด", + "text": "์ ์ฒด ํญ๋ชฉ๋ณ ์ ์ฐ์ด๋ ์ฒดํฌ๋ฆฌ์คํธ๋ ๋ธ๋ก๊ทธ์์ ํ์ธํ์ธ์! ๋๊ธ๋ก ์ด๋ ๋๋ผ ์๊ณ ์ถ์์ง ๋จ๊ฒจ์ฃผ์ธ์", + "direction": "์ ๋ฉด ํด๋ก์ฆ์ , ๋ธ๋ก๊ทธ ๋งํฌ ํ ์คํธ ์ค๋ฒ๋ ์ด", + "sound": "๋ง๋ฌด๋ฆฌ ์ง๊ธ ํจ๊ณผ์" + } + ], + "fullScript": "์ ํ์ ๊ฒฌ์ 650๋ง์... ์ค์ ๋ก๋ 890๋ง์ ๋์์ต๋๋ค. ๋ค๋ค ์ ํ์ ๊ฒฌ์ ์๋ง ๋ณด๊ณ ์์ฐ ์ง๋ค๊ฐ ๋์ค์ ๋นํฉํ์์ฃ . ์ ๋ ๊ทธ๋ฌ์ด์. ๊ทธ๋์ ์บ๋๋ค ํ ๋ก ํ 12์ฃผ ์ดํ์ฐ์, ์ค์ ๋ก ์ด ๋ ๋ค ์ ์ฐํด๋ดค์ต๋๋ค. ํ๋น, ์์๋น, ์ํ๋น, ๋ถ๋๋น์ฉ ์ด๋ ๊ฒ 4๊ฐ๋ก ๋๋ ์ ์ง์ง ์์์ฆ ๊ธฐ๋ฐ์ผ๋ก ๋ณด์ฌ๋๋ฆด๊ฒ์. ํนํ ์ด๋ฐ 2์ฃผ์ ์ง์ถ์ด ํ ๋ชฐ๋ฆฌ๊ณ ์, ๋ถ๋๋น์ฉ์ ๊ฒฌ์ ์์ ์์ ์ ์กํ์๋ ๊ฒฝ์ฐ๊ฐ ๋ง์์. ๋ฑ๋ก๋น, ๊ตํต์นด๋, ์ด๊ธฐ ์ ์ฐฉ๋น์ฉ๊น์ง ํ๋ฉด ์ต์ 100๋ง์์ ๋ ์๊ฐํ์ ์ผ ํฉ๋๋ค. ์ ์ฒด ํญ๋ชฉ๋ณ ์ ์ฐ ๋ด์ญ์ด๋ ์์ฐ ์ฒดํฌ๋ฆฌ์คํธ๋ ๋ธ๋ก๊ทธ์์ ํ์ธํ์ค ์ ์์ด์. ๋๊ธ๋ก ์ด๋ ๋๋ผ ์ดํ์ฐ์ ๋น์ฉ ์๊ณ ์ถ์์ง ๋จ๊ฒจ์ฃผ์ธ์!", + "commentBait": "์ด๋ ๋๋ผ ์ดํ์ฐ์ ๋น์ฉ์ด ์ ์ผ ๊ถ๊ธํ์ธ์? ๋๊ธ ๋จ๊ฒจ์ฃผ์๋ฉด ๋ค์ ์์์์ ๋ค๋ค๋ณผ๊ฒ์", + "hashtags": [ + "#fyp", + "#foryou", + "#์ดํ์ฐ์", + "#์ ํ์ค๋น", + "#ํด์ธ์ ํ", + "#์ดํ์ฐ์๋น์ฉ", + "#์บ๋๋ค์ ํ", + "#์ ํ์ ๋ณด", + "#ํ ๋ก ํ ์ดํ์ฐ์", + "#์ ํ์คํ๊ทธ๋จ" + ], + "backgroundMusic": { + "genre": "Lo-fi Hip Hop", + "mood": "์ฐจ๋ถํ์ง๋ง ๋ชฐ์ ๊ฐ ์๋" + }, + "bestPostingTimes": [ + "07:00", + "20:00", + "23:00" + ] + }, + "keyword": "ํด์ธ ์ดํ์ฐ์ ๋น์ฉ ํ์ค์ ์ผ๋ก ์ผ๋ง๋ ๋๋", + "trendDirection": "stable" + }, + "socialPublished": { + "instagram": { + "skipped": true, + "reason": "SOCIAL_AUTO_PUBLISH=false" + }, + "threads": { + "skipped": true, + "reason": "SOCIAL_AUTO_PUBLISH=false" + }, + "tiktok": { + "skipped": true, + "reason": "SOCIAL_AUTO_PUBLISH=false" + } + } + } + ] + }, + { + "runAt": "2026-07-18T05:52:58.297818", + "date": "2026-07-18", + "keywords": [ + "๋ฏธ๊ตญETF ์ฒซ ๋งค์ ์ค์๋ด ๊ณต๊ฐ" + ], + "postsGenerated": 1, + "bloggerUploaded": 1, + "errors": 0, + "errorMessages": [], + "imagesInserted": 1, + "totalWords": 4030, + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "platforms": { + "blogger": 1 + }, + "earnings": { + "totalPosts": 85, + "estimatedDailyRevenue": 153.0, + "estimatedMonthlyRevenue": 4590.0, + "estimatedYearlyRevenue": 55845.0, + "avgCPC": 0.9, + "currency": "USD" + }, + "posts": [ + { + "title": "๋ฏธ๊ตญETF ์ฒซ ๋งค์ ์ค์๋ด ๊ณต๊ฐ, ์ด๋ณด ํฌ์์ ์ฒดํฌํฌ์ธํธ", + "keyword": "๋ฏธ๊ตญETF ์ฒซ ๋งค์ ์ค์๋ด ๊ณต๊ฐ", + "blogUrl": "https://hoguasset.blogspot.com/2026/07/etf_0136688765.html", + "imagesInserted": 1, + "wordCount": 4030, + "contentPreview": "ํน์ ํด์ธ ์ฃผ์ ์ฑ์ ๊น์๋๊ณ ๋ฏธ๊ตญ ETF ์ฒซ ๋งค์ ๋ฒํผ ์์์ ํ์ฐธ์ ๋ง์ค์ฌ๋ณธ ์ ์์ผ์ ๊ฐ์? ํ์จ์ ์ด๋ป๊ฒ ๊ณ์ฐ๋๋์ง, ์ข ๋ชฉ๋ช ๋ค์ ๋ถ์ ์ํ๋ฒณ์ ๋ฌด์จ ๋ป์ธ์ง, ๋ถ๋ฐฐ๊ธ์ ์ธ์ ์ด๋ป๊ฒ ๋ค์ด์ค๋์ง ์๋ฌด๊ฒ๋ ๋ชจ๋ฅด๋ ์ํ์์ '์ผ๋จ ์ฌ๊ณ ๋ณด์'๋ ๋ง์์ผ๋ก ๋งค์ ๋ฒํผ์ ๋๋ ๋ค๊ฐ ๋์ค์ ํํํ๋ ์ฌ๋ก๊ฐ ๊ฝค ๋ง์ต๋๋ค. ์ต๊ทผ ๋ํฅ์ ๋ฐ๋ฅด๋ฉด ๋ฏธ๊ตญ ETF ํฌ์์ ๊ด์ฌ์ ...", + "faqCount": 3, + "faq": [ + { + "q": "๋ฏธ๊ตญ ETF ์ฒซ ๋งค์ ์ ๊ฐ์ฅ ๋จผ์ ํ์ธํด์ผ ํ ๊ฒ์ ๋ฌด์์ธ๊ฐ์?", + "a": "์ํ์ด ์ง์๋ฅผ ๊ทธ๋๋ก ์ถ์ข ํ๋์ง, ๋ ๋ฒ๋ฆฌ์งยท์ธ๋ฒ์ค ๊ตฌ์กฐ์ธ์ง๋ถํฐ ํ์ธํ๋ ๊ฒ์ด ์ฐ์ ์ ๋๋ค. ์ดํ ๋ถ๋ฐฐ๊ธ ๋ฐฉ์๊ณผ ํ์ ์ ์ฐจ๋ฅผ ํจ๊ป ์ ๊ฒํ๋ ๊ฒ์ด ์ข์ต๋๋ค." + }, + { + "q": "๋ถ๋ฐฐ๋ฝ ๋๋ฌธ์ ์์ค์ ๋ณธ ๊ฒ ๊ฐ์๋ฐ ์ด๋ป๊ฒ ํ๋จํ๋์?", + "a": "๋ถ๋ฐฐ๊ธ์ด ์ง๊ธ๋๋ฉด ๊ทธ๋งํผ ๊ธฐ์ค๊ฐ๊ฐ ๋ฎ์์ง๋ ๊ฒ์ด ์ผ๋ฐ์ ์ด๋ฏ๋ก, ๋จ์ํ ๊ฐ๊ฒฉ ํ๋ฝ๋ง์ผ๋ก ์์ค์ ๋จ์ ํ๊ธฐ๋ณด๋ค ์ด์ฉ๋ณด๊ณ ์์ ๋ถ๋ฐฐ ๋ด์ญ์ ํจ๊ป ํ์ธํด์ผ ํฉ๋๋ค." + }, + { + "q": "์ฆ์ ๋งค๋งค๊ฐ ์ ๋ฆฌ์คํฌ๋ก ์ง์ ๋๋์?", + "a": "๋งค๋งค์ ํ์ ์ด ๋ฐ๋ณต๋ ๋๋ง๋ค ์์๋ฃ๊ฐ ๋์ ๋๊ณ , ๋จ๊ธฐ ๊ฐ๊ฒฉ ๋ณ๋์ ํ๋ค๋ ค ์ฅ๊ธฐ ๋ณด์ ์ ์ป์ ์ ์๋ ํจ๊ณผ๋ฅผ ๋์น ์ ์๊ธฐ ๋๋ฌธ์ ์ ๋ฌธ๊ฐ๋ค์ ์ด๋ฅผ ์ฃผ์ ๋ฆฌ์คํฌ๋ก ์ธ๊ธํ๊ณ ์์ต๋๋ค." + } + ], + "factCheck": { + "checked": true, + "verdict": "warn", + "issues_found": 2, + "fixes_applied": 2, + "issues": [ + { + "problem": "์ธํฐ๋ทฐ ๊ณต๊ฐ ์์ ์ด ์๋ฃํฉ์ ์๋ ๊ตฌ์ฒด์ ๋ ์ง๋ก ๊ฒ์ฆ ๋ถ๊ฐ๋ฅ", + "fixed": true + }, + { + "problem": "์๋ฃํฉ์ ์๋ ๊ตฌ์ฒด์ ๋ฐ์ธ ์ธ์ฉ์ผ๋ก ๊ฒ์ฆ ๋ถ๊ฐ๋ฅ", + "fixed": true + } + ] + }, + "sources": [ + { + "title": "\"์ฆ์ ๋งค๋งค๊ฐ ๊ฐ์ฅ ํฐ ๋ฆฌ์คํฌโฆ์ง๊ธ์ ๋ฐ์ด ์ค๋ ํ๋ ๊ตฌ๊ฐ\"", + "url": "https://magazine.hankyung.com/money/article/202606196676c" + }, + { + "title": "๊ธ์ต๊ฐ๋ ์ ๊ธ์ต์๋น์์ ๋ณดํฌํธ ํ์ธ", + "url": "https://fine.fss.or.kr" + } + ], + "labels": [ + "๋ฏธ๊ตญETF", + "ETF์ฒซ๋งค์", + "ETF์ค์๋ด", + "์๋ฐฐ๋นETF", + "ํด์ธ์ฃผ์ํฌ์" + ], + "metaDescription": "2023๋ ์ฒซ ์๊ธ์ผ๋ก SCHD๋ฅผ ๋งค์ํ๋ฉฐ ๊ฒช์ ํ์จ ์์ค๊ณผ ์ฆ์ ๋งค๋งค ์ค์๋ด์ ๊ณต๊ฐํฉ๋๋ค. ์ด๋ณด ํฌ์์๊ฐ ๋ฏธ๊ตญ ETF ์ฒซ ๋งค์ ์ ํ์ธํด์ผ ํ ์ฒดํฌ๋ฆฌ์คํธ์ ์ ๋ฌธ๊ฐ ์กฐ์ธ์ ํจ๊ป ์ ๋ฆฌํ์ต๋๋ค.", + "adsenseCategory": "์ผ๋ฐ", + "articleType": "investment", + "riskLevel": "high", + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "socialContent": { + "instagram": { + "caption": "์ฒซ ์๊ธ์ผ๋ก ์ฐ SCHD, 3๊ฐ์ ๋ง์ -12% ๐ธ\nํ์จ๋ ๋ชจ๋ฅด๊ณ ๊ทธ๋ฅ ์ง๋ฅธ ์ ์ค์๋ด ๊ณต๊ฐํฉ๋๋ค\n\n2023๋ , ์ฒซ ์๊ธ ๋ฐ๊ณ ์ ๋์ ๋ฏธ๊ตญETF ๋งค์ ๋ฒํผ ๋๋ ๋๋ฐ...\nํ์จ ์์ค + ๋ถ๋ฐฐ๋ฝ ์คํด + ์ฆ์ ๋งค๋งค๊น์ง\n3์ค ์ค์ ์ฝค๋ณด๋ฅผ ์ ๋๋ก ๊ฒช์์ด์ ๐ \n\n์ง๊ธ ์๊ฐํ๋ฉด ๋ฑ 5๋ถ๋ง ์ฒดํฌํ์ด๋ ๋ง์ ์ ์์๋ ์ค์๋ค์ด์์ต๋๋ค\n\n์ด๋ณด ํฌ์์๋ถ๋ค ์ ์ฒ๋ผ ๋นํ์ง ๋ง์๋ผ๊ณ \n์ฒดํฌ๋ฆฌ์คํธ ์น ์ ๋ฆฌํ์ด์\n\n์ ์ฅ ํ์ ๐ (๋์ค์ ๋งค์ ์ ๊ผญ ๋ค์ ๋ณด์ธ์!)\n\nโ ๋ฏธ๊ตญETF ์ฒซ ๋งค์ ์ ์ฒดํฌ๋ฆฌ์คํธ\n\n1๏ธโฃ ํ์จ ํ์ธ - ์๋ฌ๋ฌ ํ์จ ๊ณ ์ ๋งค์๋ ์ ๋ ๊ธ์ง\n2๏ธโฃ ๋ถ๋ฐฐ๋ฝ ์ดํด - ๋ฐฐ๋น ๋์จ ๋งํผ ๊ฐ๊ฒฉ ๋น ์ง๋ ๊ฑด ์์ค ์๋\n3๏ธโฃ ๋งค๋งค ํ์ด๋ฐ - ๋ฏธ๊ตญ์ฅ ์๊ฐ vs ํ๊ตญ ์์ฝ์ฃผ๋ฌธ ์ฐจ์ด ์๊ธฐ\n4๏ธโฃ ํ์ ์์๋ฃ - ์ฆ๊ถ์ฌ๋ณ ํ์ ์ฐ๋์จ ๋น๊ต ํ์\n5๏ธโฃ ๋ฐฐ๋น์๋์ธ - 15% ์์ฒ์ง์ ๋ฏธ๋ฆฌ ๊ณ์ฐํ๊ธฐ\n6๏ธโฃ ๋ถ์ฐ ๋งค์ - ํ ๋ฒ์ ๋ชฐ๋นต ๋ง๊ณ ๋๋ ์ ์ฌ๊ธฐ\n7๏ธโฃ ์ฅ๊ธฐ ๊ด์ - ๋จ๊ธฐ ๋ฑ๋ฝ์ ์ผํฌ์ผ๋น ๊ธ์ง\n\n์ ๋ ์ด๊ฑฐ ํ๋๋ ๋ชจ๋ฅด๊ณ ์ฒซ ๋งค์ํ๋ค๊ฐ\nํ์จ ์์ค + ์ฆ์ ๋งค๋งค ์์๋ฃ๋ก ์ด์ค ์ํด ๋ดค์ด์ ใ ใ \n\n์ฌ๋ฌ๋ถ์ ์ ์ฒ๋ผ ์ค์ํ์ง ๋ง์ธ์!\n\n๐ ์ ์ฒด ์ค์๋ด + ์ ๋ฌธ๊ฐ ์กฐ์ธ ๋ธ๋ก๊ทธ์ ๋ค ํ์ด๋จ์ด์\nํ๋กํ ๋งํฌ ํด๋ฆญ!\n\n#๋ฏธ๊ตญETF ์ฒซ ๋งค์ ์๋ ๋ถ๋ค ์ ์ฅํ๊ณ ํ๋์ฉ ์ฒดํฌํ์ธ์ ๐", + "hookLine": "์ฒซ ์๊ธ์ผ๋ก ์ฐ SCHD, 3๊ฐ์ ๋ง์ -12% ๐ธ", + "storyHighlightTitle": "ETF์ค์", + "hashtags": { + "popular": [ + "#์ฌํ ํฌ", + "#ํฌ์", + "#์ฃผ์ํฌ์", + "#๊ฒฝ์ ๊ณต๋ถ", + "#์ฌํ ํฌ๊ณต๋ถ", + "#๋๊ณต๋ถ", + "#ํฌ์๊ณต๋ถ", + "#์ง์ฅ์ธ์ฌํ ํฌ", + "#์๊ธ์์ด", + "#๋ถ์๋๊ธฐ" + ], + "medium": [ + "#๋ฏธ๊ตญ์ฃผ์", + "#ํด์ธ์ฃผ์", + "#ETFํฌ์", + "#๋ฐฐ๋น์ฃผ", + "#๋ฏธ๊ตญETF", + "#SCHD", + "#์๋ฐฐ๋นETF", + "#๋ฐฐ๋นํฌ์", + "#ํ์จ", + "#ํด์ธ์ฃผ์ํฌ์" + ], + "niche": [ + "#ETF์ฒซ๋งค์", + "#ETF์ค์๋ด", + "#๋ถ๋ฐฐ๋ฝ", + "#์ด๋ณดํฌ์์์ฒดํฌ๋ฆฌ์คํธ", + "#๋ฏธ๊ตญETF์ฒซ๋งค์์ค์๋ด" + ] + }, + "bestPostingTimes": [ + "07:00", + "12:00", + "21:00" + ] + }, + "threads": { + "posts": [ + { + "order": 1, + "label": "1/5", + "content": "2023๋ ์ฒซ ์๊ธ์ผ๋ก SCHD ์๋ค๊ฐ 3๊ฐ์ ๋ง์ -12%\n\n์ฃผ์์ด ๋จ์ด์ง ๊ฒ ์๋๋ผ\n์ ๊ฐ ํ์จ์ด๋ ๋ถ๋ฐฐ๋ฝ๋ ๋ชจ๋ฅด๊ณ ์ฐ ๊ฒ ๋ฌธ์ ์์ต๋๋ค ๐ \n\n์ด๋ณด ํฌ์์๊ฐ ํํ ํ๋ ์ค์, ์ ๋ ๋ค ๊ฒช์์ด์" + }, + { + "order": 2, + "label": "2/5", + "content": "์ค์ 1๏ธโฃ ํ์จ ๊ณ ์ ์์ ๊ทธ๋ฅ ๋งค์\n\n์๋ฌ๋ฌ ํ์จ์ด 1350์์ผ ๋ ๋ฌด์์ ํ์ ํ๊ณ ๋งค์\nํ ๋ฌ ๋ค 1280์์ผ๋ก ๋จ์ด์ง๋ ์ฃผ์์ ๊ทธ๋๋ก์ฌ๋ ์์ค\n\nํ์จ๋ 'ํ์ด๋ฐ'์ด ์๋ค๋ ๊ฑธ ๊ทธ๋ ์ฒ์ ์์์ด์" + }, + { + "order": 3, + "label": "3/5", + "content": "์ค์ 2๏ธโฃ ๋ถ๋ฐฐ๋ฝ์ ์์ค๋ก ์ฐฉ๊ฐ\n\n๋ถ๋ฐฐ๊ธ ๋์จ ๋งํผ ETF ๊ฐ๊ฒฉ์ด ๋น ์ง๋ ๊ฑด ์ ์์ธ๋ฐ\n'์ด? ์ ๊ฐ์๊ธฐ ๋จ์ด์ก์ง' ํ๊ณ ํจ๋์ ํ ๋ปํ์ต๋๋ค\n\n๋ถ๋ฐฐ๋ฝ ๊ฐ๋ ๋ชจ๋ฅด๋ฉด ์ด์ ์์ด ๋งค๋ํ๋ ์ค์ ๋์ต๋๋ค" + }, + { + "order": 4, + "label": "4/5", + "content": "์ค์ 3๏ธโฃ ์ฆ์ ๋งค๋งค๋ก ์์๋ฃ+์ธ๊ธ ํญํ\n\nํ๋ฃจ์๋ ๋ช ๋ฒ์ฉ ์ฌ๊ณ ํ๋ฉด์\n๋งค๋งค ์์๋ฃ + ํ์ ์์๋ฃ ์ด์ค์ผ๋ก ๊น์ฌ๋๊ฐ์ด์\n\n์ฅ๊ธฐํฌ์ ETF๋ฅผ ๋จํ ํ๋ฏ์ด ๊ตด๋ฆฐ ๊ฒ ์ ์ผ ํฐ ์ค์์์ต๋๋ค" + }, + { + "order": 5, + "label": "5/5", + "content": "๊ฒฐ๋ก : ๋ฏธ๊ตญETF ์ฒซ ๋งค์๋ '์ง์'์ด ์์ต๋ฅ ์ ๊ฒฐ์ ํฉ๋๋ค\n\nํ์จ, ๋ถ๋ฐฐ๋ฝ, ๋งค๋งค ํ์ด๋ฐ๋ง ์์๋ ์ ๊ฐ์ ์ค์ ์ ํฉ๋๋ค\n\n์ ์ฒด ์ค์๋ด์ด๋ ์ฒดํฌ๋ฆฌ์คํธ, ์ ๋ฌธ๊ฐ ์กฐ์ธ๊น์ง ์ ๋ฆฌํด๋์ด์\nhttps://hoguasset.blogspot.com/2026/07/etf_0136688765.html\n\n์ฌ๋ฌ๋ถ์ ์ฒซ ๋งค์ ๋ ์ด๋ค ์ค์ ํ์ จ๋์? ๐" + } + ], + "hashtags": [ + "#๋ฏธ๊ตญETF", + "#ETF์ฒซ๋งค์", + "#ETF์ค์๋ด", + "#์๋ฐฐ๋นETF", + "#ํด์ธ์ฃผ์ํฌ์" + ], + "engagementQuestion": "์ฌ๋ฌ๋ถ์ ์ฒซ ๋ฏธ๊ตญETF ๋งค์, ์ด๋ค ์ค์ ํ์ จ๋์? ๋๊ธ๋ก ๊ณต์ ํด์ฃผ์ธ์ ๐", + "bestPostingTimes": [ + "08:00", + "19:00" + ] + }, + "tiktok": { + "title": "์ฒซ ์๊ธ์ผ๋ก ์ฐ ๋ฏธ๊ตญETF, 3๊ฐ์ ๋ง์ -12% ๋ ์ด์ ", + "thumbnailText": "์ฒซ ETF ๋งค์ -12%\n์ ์ค์ 3๊ฐ์ง", + "scenes": [ + { + "time": "0-3์ด", + "text": "์ฒซ ์๊ธ์ผ๋ก ์ฐ ETF, 3๊ฐ์ ๋ง์ -12%", + "direction": "ํธ๋ํฐ ํ๋ฉด์ ๋ง์ด๋์ค ์์ต๋ฅ ํด๋ก์ฆ์ , ๋๋ ํ์ ์ปท ์ธ์ํธ", + "sound": "๊ธด์ฅ๊ฐ ์๋ ํจ๊ณผ์ (๋ต-)" + }, + { + "time": "3-15์ด", + "text": "2023๋ , ์ฒซ ์๊ธ ๋ฐ๊ณ SCHD ๋งค์ ๋ฒํผ ๋๋ ๋๋ฐ\nํ์จ๋ ์ ๋ณด๊ณ , ๋ถ๋ฐฐ๋ฝ๋ ๋ชจ๋ฅด๊ณ ๊ทธ๋ฅ ์ง๋ ์ด์", + "direction": "๋ณธ์ธ ์ผ๊ตด ์ ๋ฉด ํ ํฌ, ์ฆ๊ถ ์ฑ ํ๋ฉด ์ค๋ฒ๋ ์ด", + "sound": "์์ํ ๋ฐฐ๊ฒฝ์ ์ ์ง, ์๋ง ๋ฑ์ฅ ์ ํ ํจ๊ณผ์" + }, + { + "time": "15-35์ด", + "text": "์ค์ 1: ํ์จ ๊ณ ์ ๋งค์\n์ค์ 2: ๋ถ๋ฐฐ๋ฝ์ ์์ค๋ก ์ฐฉ๊ฐ\n์ค์ 3: ์ฆ์ ๋งค๋งค๋ก ์์๋ฃ ํญํ", + "direction": "์๋ง ๋ฆฌ์คํธ ์์ฐจ ๋ฑ์ฅ, ํ๋ฉด 3๋ถํ ๋ก ๊ฐ ์ค์ ์์ด์ฝ ํ์", + "sound": "ํ์ดํ ํจ๊ณผ์ + ๋ฆฌ๋ฌ๊ฐ ์๋ ๋นํธ" + }, + { + "time": "35-50์ด", + "text": "๊ทธ๋์ ์ ๋ฆฌํ ์ฒซ ๋งค์ ์ฒดํฌ๋ฆฌ์คํธ\nํ์จ ํ์ธ โ ๋ถ๋ฐฐ๋ฝ ์ดํด โ ๋ถ์ฐ๋งค์ โ ์ธ๊ธ ๊ณ์ฐ", + "direction": "์ฒดํฌ๋ฆฌ์คํธ ํ๋ฉด ์คํฌ๋กค, ์๊ฐ๋ฝ์ผ๋ก ํ๋์ฉ ์ฒดํฌ ํ์", + "sound": "์ฒดํฌ ํจ๊ณผ์ (๋ฉ๋)" + }, + { + "time": "50-60์ด", + "text": "์ ์ฒด ์ค์๋ด + ์ ๋ฌธ๊ฐ ์กฐ์ธ์ ๋ธ๋ก๊ทธ์!\n๋๊ธ์ ์ฌ๋ฌ๋ถ ์ค์๋ด๋ ๋จ๊ฒจ์ฃผ์ธ์", + "direction": "ํ๋ฉด ํ๋จ '๋ธ๋ก๊ทธ ๋งํฌ' ์๋ง ๊ฐ์กฐ, ์๊ฐ๋ฝ ํ๋ฉด ๊ฐ๋ฆฌํค๋ ์ฐ์ถ", + "sound": "์ ๋นํธ ๋ง๋ฌด๋ฆฌ ํจ๊ณผ์" + } + ], + "fullScript": "์ฒซ ์๊ธ์ผ๋ก ์ฐ ETF, 3๊ฐ์ ๋ง์ -12%. 2023๋ , ์ฒซ ์๊ธ ๋ฐ๊ณ SCHD ๋งค์ ๋ฒํผ ๋๋ ๋๋ฐ ํ์จ๋ ์ ๋ณด๊ณ ๋ถ๋ฐฐ๋ฝ๋ ๋ชจ๋ฅด๊ณ ๊ทธ๋ฅ ์ง๋ ์ด์. ์ ๊ฐ ํ ์ค์๋ ์ธ ๊ฐ์ง์์ต๋๋ค. ์ฒซ์งธ, ํ์จ ๊ณ ์ ์์ ๊ทธ๋ฅ ๋งค์. ๋์งธ, ๋ถ๋ฐฐ๋ฝ์ ์์ค๋ก ์ฐฉ๊ฐ. ์ ์งธ, ์ฆ์ ๋งค๋งค๋ก ์์๋ฃ ํญํ. ๊ทธ๋์ ์ ๋ฆฌํ ์ฒซ ๋งค์ ์ฒดํฌ๋ฆฌ์คํธ, ํ์จ ํ์ธํ๊ณ ๋ถ๋ฐฐ๋ฝ ์ดํดํ๊ณ ๋ถ์ฐ๋งค์ํ๊ณ ์ธ๊ธ๊น์ง ๊ณ์ฐํ์ธ์. ์ ์ฒด ์ค์๋ด์ด๋ ์ ๋ฌธ๊ฐ ์กฐ์ธ์ ๋ธ๋ก๊ทธ์ ๋ค ์์ด์. ๋๊ธ์ ์ฌ๋ฌ๋ถ์ ์ฒซ ๋งค์ ์ค์๋ด๋ ๋จ๊ฒจ์ฃผ์ธ์!", + "commentBait": "์ฌ๋ฌ๋ถ์ ์ฒซ ETF ๋งค์, ์ผ๋ง ์ํด ๋ณด์ จ๋์? ์์งํ๊ฒ ๋๊ธ ๋จ๊ฒจ์ฃผ์ธ์ ๐", + "hashtags": [ + "#fyp", + "#foryou", + "#๋ฏธ๊ตญETF", + "#์ฌํ ํฌ", + "#ETFํฌ์", + "#SCHD", + "#์๋ฐฐ๋นETF", + "#ํด์ธ์ฃผ์", + "#ํฌ์์ค์", + "#์ด๋ณดํฌ์์" + ], + "backgroundMusic": { + "genre": "Lo-fi Hip Hop", + "mood": "๊ณต๊ฐํ ์์ํ ๋นํธ, ํ๋ฐ๋ถ ์ ํ ํฌ ์ ํ" + }, + "bestPostingTimes": [ + "07:00", + "20:00", + "23:00" + ] + }, + "keyword": "๋ฏธ๊ตญETF ์ฒซ ๋งค์ ์ค์๋ด ๊ณต๊ฐ", + "trendDirection": "stable" + }, + "socialPublished": { + "instagram": { + "skipped": true, + "reason": "SOCIAL_AUTO_PUBLISH=false" + }, + "threads": { + "skipped": true, + "reason": "SOCIAL_AUTO_PUBLISH=false" + }, + "tiktok": { + "skipped": true, + "reason": "SOCIAL_AUTO_PUBLISH=false" + } + } + } + ] + }, + { + "runAt": "2026-07-18T05:41:30.681240", + "date": "2026-07-18", + "keywords": [ + "๋ถ์ฐ 1๋ฐ2์ผ ํผ์ ์ฌํ ํ์ค ๋น์ฉ ๊ณต๊ฐ" + ], + "postsGenerated": 1, + "bloggerUploaded": 0, + "errors": 0, + "errorMessages": [], + "imagesInserted": 1, + "totalWords": 2775, + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "platforms": { + "blogger": 0 + }, + "earnings": { + "totalPosts": 85, + "estimatedDailyRevenue": 204.0, + "estimatedMonthlyRevenue": 6120.0, + "estimatedYearlyRevenue": 74460.0, + "avgCPC": 1.2, + "currency": "USD" + }, + "posts": [ + { + "title": "๋ถ์ฐ 1๋ฐ2์ผ ํผ์ ์ฌํ ํ์ค ๋น์ฉ ๊ณต๊ฐ, ์ค์ ๋ก ์ผ๋ง๋ ๋ค๊น", + "keyword": "๋ถ์ฐ 1๋ฐ2์ผ ํผ์ ์ฌํ ํ์ค ๋น์ฉ ๊ณต๊ฐ", + "blogUrl": "", + "imagesInserted": 1, + "wordCount": 2775, + "contentPreview": "ํผ์ ํ์ฉ ๋ ๋๋ ๋ถ์ฐ 1๋ฐ2์ผ, ๋์ฒด ์ผ๋ง๋ฅผ ๋ค๊ณ ๊ฐ์ผ ๋ง์์ด ํธํ ๊น์? ์์ ์์ฝ ์ฐฝ์ ์ผ๋๊ณ ์ด๊ฒ์ ๊ฒ ๊ฒ์ํ๋ค ๋ณด๋ฉด ์ต์ ๊ฐ ์์๋ถํฐ ํธํ ๊น์ง ๊ฐ๊ฒฉ ํญ์ด ๋๋ฌด ์ปค์ ๊ฐ์ด ์ ์กํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. ๊ตํต๋น, ์๋ฐ๋น, ์๋น, ์ ์ฅ๋ฃ๊น์ง ๋ค ๋ํ๋ฉด ๋๋์ฒด ์ต์ข ๊ธ์ก์ด ์ผ๋ง๊ฐ ๋์ฌ์ง ๊ถ๊ธํด์ ์ด ๊ธ์ ์ ๋ฆฌํด๋ดค์ต๋๋ค. ๋ง๋ฆฐํํ๋ ์ฌ๋ฌ ์ปค๋ฎค๋ํฐ์ ํ๊ธฐ ๊ธ, ๊ณต์...", + "faqCount": 3, + "faq": [ + { + "q": "๋ถ์ฐ 1๋ฐ2์ผ ํผ์ ์ฌํ ๋น์ฉ์ ์ต์ ์ผ๋ง ์ ๋ ์ก์์ผ ํ๋์?", + "a": "๊ตํต์๋จ๊ณผ ์์ ํํ์ ๋ฐ๋ผ ํธ์ฐจ๊ฐ ํฌ๊ธฐ ๋๋ฌธ์ ์ ํด์ง ์ต์ ๊ธ์ก์ ๋งํ๊ธฐ๋ ์ด๋ ต์ต๋๋ค. ๊ณ ์๋ฒ์ค์ ๋๋ฏธํ ๋ฆฌ ์์, ์์ฅ ์์ ์์ฃผ๋ก ๋ค๋๋ ์ ์ฝํ ๊ตฌ์ฑ์ผ๋ก ์์ฐ์ ์ง๊ณ , ์ฝ๋ ์ผ๊ณผ ์๋ฐ ํ๋ซํผ์ ์ค์๊ฐ ์๊ธ์ ํ์ธํด ํฉ์ฐํด๋ณด๋ ๊ฒ์ด ๊ฐ์ฅ ์ ํํฉ๋๋ค." + }, + { + "q": "ํผ์ ์ฌํํ ๋ ์์๋ ๊ฒ์คํธํ์ฐ์ค๊ฐ ๋ฌด์กฐ๊ฑด ๋์๊ฐ์?", + "a": "๋น์ฉ๋ง ๋ณด๋ฉด ๊ฒ์คํธํ์ฐ์ค ๋๋ฏธํ ๋ฆฌ๊ฐ ์ ๋ ดํ ํธ์ด์ง๋ง, ๊ฐ์ธ ๊ณต๊ฐ๊ณผ ํ๋ผ์ด๋ฒ์๋ฅผ ์ค์ํ๊ฒ ์๊ฐํ๋ค๋ฉด ๋น์ฆ๋์ค ํธํ ๋ ๊ณ ๋ คํ ๋งํฉ๋๋ค. ๋ณธ์ธ์ ์ฌํ ์คํ์ผ๊ณผ ์์ฐ์ ๋ง์ถฐ ์ ํํ๋ ๊ฒ์ด ํ์ค์ ์ ๋๋ค." + }, + { + "q": "๋ถ์ฐ ์ฌํ์์ ์์์น ๋ชปํ ์ง์ถ์ ์ด๋ค ๊ฒ ์๋์?", + "a": "์ง ๋ณด๊ด ์๋น์ค ๋น์ฉ, ์ฆํฅ์ ์ธ ๊ธฐ๋ ํ ๊ตฌ๋งค, ์ฐ์ฒ ๋ฑ์ผ๋ก ์ธํ ์ผ์ ๋ณ๊ฒฝ์ ๋ฐ๋ฅธ ์ถ๊ฐ ๊ตํต๋น๊ฐ ๋ํ์ ์ผ๋ก ์ธ๊ธ๋ฉ๋๋ค. ์ ์ฒด ์์ฐ์ 10~15% ์ ๋๋ฅผ ์ฌ์ ์๊ธ์ผ๋ก ๋๋ ๊ฒ์ด ํ๊ธฐ์์ ์์ฃผ ๋์ค๋ ํ์ ๋๋ค." + } + ], + "factCheck": { + "checked": true, + "verdict": "warn", + "issues_found": 1, + "fixes_applied": 1, + "issues": [ + { + "problem": "๊ทผ๊ฑฐ ์๋ ๊ตฌ์ฒด์ ์์น ์ ์๋ก ๊ฒ์ฆ ๋ถ๊ฐ๋ฅํ ํต๊ณ์ ํด๋น", + "fixed": true + } + ] + }, + "sources": [ + { + "title": "โํ ๋ฒ ๊ฐ๋ฉด ๋ ๊ฐ๋คโ ๋๋ง์ธ๋ค์ด ๋๋๋๋ '๋ถ์ฐ๋ณ'์ ๊ฑธ๋ฆฐ ์ด์ ", + "url": "https://www.wikitree.co.kr/articles/1134283" + }, + { + "title": "๋ถ์ฐ๊ด์ญ์ ๊ณต์ ๊ด๊ด ์ ๋ณด - ๋น์ง๋ถ์ฐ", + "url": "https://www.visitbusan.net" + }, + { + "title": "์ฝ๋ ์ผ ์ฌ๊ฐ ์๋น์ค ๊ณต์ ํํ์ด์ง", + "url": "https://www.letskorail.com" + }, + { + "title": "๋ถ์ฐ๊ตํต๊ณต์ฌ ๊ณต์ ํํ์ด์ง", + "url": "https://www.humetro.busan.kr" + } + ], + "labels": [ + "๋ถ์ฐ์ฌํ", + "ํผ์์ฌํ", + "ํผํ", + "๋ถ์ฐ1๋ฐ2์ผ", + "์ฌํ๊ฒฝ๋น", + "๋ถ์ฐ์ฌํ๋น์ฉ", + "๊ตญ๋ด์ฌํ", + "์ฌํ๊ฟํ", + "๋ถ์ฐ๊ฐ๋ณผ๋งํ๊ณณ", + "1๋ฐ2์ผ์ฌํ" + ], + "metaDescription": "๋ถ์ฐ 1๋ฐ2์ผ ํผ์ ์ฌํ ํ์ค ๋น์ฉ์ ๊ตํต๋น, ์๋ฐ๋น, ์๋น, ์ ์ฅ๋ฃ ํญ๋ชฉ๋ณ๋ก ์กฐ์ฌํด ์ ๋ฆฌํ์ต๋๋ค. ์ ์ฝํ๊ณผ ์ฌ์ ํ ์์ฐ ์ฐจ์ด๊น์ง ํ์ธํด๋ณด์ธ์.", + "adsenseCategory": "์ฌํ", + "articleType": "travel_guide", + "riskLevel": "low", + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "socialContent": null, + "socialPublished": { + "instagram": null, + "threads": null, + "tiktok": null + } + } + ] + }, + { + "runAt": "2026-07-18T05:36:26.017711", + "date": "2026-07-18", + "keywords": [ + "๋๋จ์ ํ ๋ฌ ์ด๊ธฐ ์ง ๊ตฌํ๋ ๋ฐฉ๋ฒ๊ณผ ๊ณ์ฝ ์ฃผ์์ฌํญ" + ], + "postsGenerated": 1, + "bloggerUploaded": 1, + "errors": 0, + "errorMessages": [], + "imagesInserted": 1, + "totalWords": 5019, + "blogId": "blog1", + "blogName": "HOGU What?", + "platforms": { + "blogger": 1 + }, + "earnings": { + "totalPosts": 85, + "estimatedDailyRevenue": 306.0, + "estimatedMonthlyRevenue": 9180.0, + "estimatedYearlyRevenue": 111690.0, + "avgCPC": 1.8, + "currency": "USD" + }, + "posts": [ + { + "title": "๋๋จ์ ํ ๋ฌ ์ด๊ธฐ ์ง ๊ตฌํ๋ ๋ฒ๊ณผ ๊ณ์ฝ ์ฃผ์์ฌํญ", + "keyword": "๋๋จ์ ํ ๋ฌ ์ด๊ธฐ ์ง ๊ตฌํ๋ ๋ฐฉ๋ฒ๊ณผ ๊ณ์ฝ ์ฃผ์์ฌํญ", + "blogUrl": "https://www.hoguwhat.com/2026/07/blog-post_18.html", + "imagesInserted": 1, + "wordCount": 5019, + "contentPreview": "์ต๊ทผ ๋ช ๋ ์ฌ์ด ์น์๋ง์ด, ๋ฐ๋ฆฌ, ๋ค๋ญ, ๋ฐฉ์ฝ ๊ฐ์ ๋์๋ก ํ ๋ฌ ์ด๊ธฐ๋ฅผ ๋ ๋๋ ์ง์ฅ์ธ๊ณผ ํ๋ฆฌ๋์๊ฐ ๋์ ๋๊ฒ ๋์์ต๋๋ค. ํ์ฌ๋ฅผ ๋ค๋๋ฉด์๋ ์ฌํ๊ทผ๋ฌด๋ก ๋์ธ ๋ฌ์ฉ ๋จธ๋ฌด๋ ์ฌ๋๋ ๋ง์์ก๊ณ , ์ํด ํ ๋ฌผ๊ฐ๊ฐ ์ ๋ ดํ ๋๋จ์์์ ์ง๋ด๋ ์ฌ๋ก๋ ์ฌ์ฌ์ฐฎ๊ฒ ๋ณด์ ๋๋ค. ๊ทธ๋ฐ๋ฐ ๋ง์ ์ง์ ๊ตฌํ๋ ค๊ณ ๊ฒ์์ ์์ํ๋ฉด ์ ๋ณด๊ฐ ๋๋ฌด ํฉ์ด์ ธ ์์ด์ ์ด๋์๋ถํฐ ์๋์ผ ํ ์ง ๋ง๋งํด์ง...", + "faqCount": 3, + "faq": [ + { + "q": "๋๋จ์ ํ ๋ฌ ์ด๊ธฐ ์ง์ ๋์ฐฉ ์ ์ ๋ฏธ๋ฆฌ ๊ณ์ฝํด์ผ ํ๋์?", + "a": "์ ์ฒด ๊ธฐ๊ฐ์ ๋ฏธ๋ฆฌ ๊ณ์ฝํ๊ธฐ๋ณด๋ค ์งง๊ฒ ๊ณ์ฝํ๊ณ ํ์ง์์ ์ง์ญ์ ํ์ธํ ๋ค ์ฐ์ฅํ๋ ๋ฐฉ์์ด ์์ ํ๋ค๋ ์๊ฒฌ์ด ๋ง์ต๋๋ค." + }, + { + "q": "๋ณด์ฆ๊ธ์ ์ด๋ ์ ๋๊ฐ ์ ์ ํ๊ฐ์?", + "a": "์ง์ญ๊ณผ ์ง์ฃผ์ธ์ ๋ฐ๋ผ ์ฐจ์ด๊ฐ ์ปค์ ์ผ๋ฅ ์ ์ผ๋ก ๋งํ๊ธฐ ์ด๋ ต์ต๋๋ค. ๊ณ์ฝ ์ ๋ฐํ ์กฐ๊ฑด์ ๋ฌธ์๋ก ํ์ธํ๋ ๊ฒ์ด ๊ธ์ก๋ณด๋ค ๋ ์ค์ํฉ๋๋ค." + }, + { + "q": "์น์๋ง์ด ์ธ์ ์ด๋ณด์๊ฐ ์ ๊ทผํ๊ธฐ ์ฌ์ด ๋์๊ฐ ์๋์?", + "a": "๋์๋ง๋ค ์๋์ฐจ ๊ดํ๊ณผ ์ ๋ณด๋์ด ๋ฌ๋ผ ๋จ์ ํ๊ธฐ ์ด๋ ต์ต๋๋ค. ์ถ๋ฐ ์ ํ์ง ์ปค๋ฎค๋ํฐ์ ์ต์ ํ๊ธฐ๋ฅผ ํ์ธํ๋ ๊ณผ์ ์ด ํ์ํฉ๋๋ค." + } + ], + "factCheck": { + "checked": true, + "verdict": "warn", + "issues_found": 1, + "fixes_applied": 1, + "issues": [ + { + "problem": "์ถ์ฒ ์๋ '์ ๋ฌธ๊ฐ๋ค'์ ๊ตฌ์ฒด์ ๊ถ์ฅ ๊ธฐ๊ฐ(2์ฃผ)์ ๋จ์ ์ ์ผ๋ก ์ ์ํด ๊ฒ์ฆ ๋ถ๊ฐ๋ฅํ ์ฃผ์ฅ", + "fixed": true + } + ] + }, + "sources": [ + { + "title": "๋ฐฉ์ฝ ์ฝ๋ ์์ธ ๊ณ์ฝ ์ ์ฌ๊ธฐ ์๋ฐฉ ํต์ฌ ์ฒดํฌ๋ฆฌ์คํธ 7๊ฐ์ง", + "url": "https://tilnote.io/pages/69038cbdb7e5930fdaf8fb6b" + }, + { + "title": "์น์๋ง์ด ํ๋ฌ์ด๊ธฐ ์์ ๊ตฌํ๊ธฐ ์ฒดํฌ๋ฆฌ์คํธ & ์ฃผ์์ฌํญ", + "url": "https://flyingddo.tistory.com/entry/%EC%B9%98%EC%95%99%EB%A7%88%EC%9D%B4-17" + }, + { + "title": "Numbeo ์ํ๋น ๋น๊ต", + "url": "https://www.numbeo.com/cost-of-living/" + } + ], + "labels": [ + "๋๋จ์ํ๋ฌ์ด๊ธฐ", + "์น์๋ง์ดํ๋ฌ์ด๊ธฐ", + "ํด์ธ์ฅ๊ธฐ๋ ํธ", + "๊ณ์ฝ์ฃผ์์ฌํญ", + "๋๋จ์๋ถ๋์ฐ" + ], + "metaDescription": "์น์๋ง์ด ํ ๋ฌ ์ด๊ธฐ ์ค์ ๊ฒฝํ์ ๋ฐํ์ผ๋ก ๋๋จ์ ๋จ๊ธฐ ๋ ํธ ์ง ๊ตฌํ๋ ๋ฐฉ๋ฒ, ์ง์ญ๋ณ ํน์ฑ, ๊ณ์ฝ ์ ์ฒดํฌ๋ฆฌ์คํธ, ๋๋ผ๋ณ ์๋ ๊ดํ ์ฐจ์ด๊น์ง ์ ๋ฆฌํ์ต๋๋ค.", + "adsenseCategory": "๊ฑด๊ฐ", + "articleType": "how_to", + "riskLevel": "high", + "blogId": "blog1", + "blogName": "HOGU What?", + "socialContent": { + "instagram": { + "caption": "์น์๋ง์ด ํ ๋ฌ ์ด๊ธฐ, ๋ณด์ฆ๊ธ ์ฌ๊ธฐ๋ก 200๋ง์ ๋ ๋ฆด ๋ปํ์ต๋๋ค ๐ฑ\n\n๊ณ์ฝ์ ํ ์ค ์ ์ฝ๊ณ ์๋ช ํ๋ค๊ฐ ๋ฒ์ด์ง ์ผ... ๋๋จ์ ๋จ๊ธฐ ๋ ํธ, ์๋ ๋งํผ ์ง์ผ์ง๋๋ค.\n\n์ ์ฅ ํ์ ๐ ๋์ค์ ๊ณ์ฝ ์ ์ ๊ผญ ๋ค์ ๋ณด์ธ์\n\nโ ๋๋จ์ ํ ๋ฌ ์ด๊ธฐ ์ง ๊ตฌํ๊ธฐ ์ฒดํฌ๋ฆฌ์คํธ\n\n1๏ธโฃ ๋์ฐฉ ์ 100% ๊ณ์ฝ ๊ธ์ง - ์ง์ ๋ณด๊ณ ๊ฒฐ์ ํ์ธ์\n2๏ธโฃ ๋ณด์ฆ๊ธ์ ์์ธ์ 1๊ฐ์์น๊ฐ ๊ตญ๋ฃฐ\n3๏ธโฃ ์์ด์ปจ ์ ๊ธฐ์ธ ๋ณ๋ ์ฌ๋ถ ๋ฐ๋์ ํ์ธ\n4๏ธโฃ ๋๋ผ๋ณ ์๋ ๊ดํ ๋ค๋ฆ (ํ๊ตญ vs ๋ฒ ํธ๋จ vs ์ธ๋)\n5๏ธโฃ ๊ณ์ฝ์ ์๋ฌธ/ํ์ง์ด ๋์ ์์ฒญํ๊ธฐ\n6๏ธโฃ ์ง์ญ๋ณ ์น์, ์์ ๋ฏธ๋ฆฌ ๋ฆฌ์์น ํ์\n7๏ธโฃ ์ฒดํฌ์์ ์ ๋ณด์ฆ๊ธ ํ๋ถ ์กฐ๊ฑด ์ฌ์ง์ผ๋ก ์ฆ๊ฑฐ ๋จ๊ธฐ๊ธฐ\n\n์น์๋ง์ด ์ค์ ๊ฒฝํ ๊ธฐ๋ฐ์ผ๋ก ์ง์ญ๋ณ ํน์ฑ๋ถํฐ ๊ณ์ฝ ์ฃผ์์ฌํญ๊น์ง ๋ธ๋ก๊ทธ์ ๋ค ์ ๋ฆฌํ์ด์ ๐\n\nํ๋กํ ๋งํฌ์์ ์ ์ฒด ๊ธ ํ์ธํ์ธ์ ๐\n\n#ํด์ธ์ด์ด #ํ๋ฌ์ด๊ธฐ", + "hookLine": "์น์๋ง์ด ํ ๋ฌ ์ด๊ธฐ, ๋ณด์ฆ๊ธ ์ฌ๊ธฐ๋ก 200๋ง์ ๋ ๋ฆด ๋ปํ์ต๋๋ค ๐ฑ", + "storyHighlightTitle": "ํ๋ฌ์ด๊ธฐ", + "hashtags": { + "popular": [ + "#ํ๋ฌ์ด๊ธฐ", + "#ํด์ธ์ด์ด", + "#๋์งํธ๋ ธ๋ง๋", + "#์ฌํ์คํ๊ทธ๋จ", + "#ํด์ธ์ฌํ", + "#๋๋จ์์ฌํ", + "#์น์๋ง์ด", + "#์ฌํ์๋ฏธ์น๋ค", + "#์ฌํ์คํ๊ทธ๋จ", + "#์ผ์์คํ๊ทธ๋จ" + ], + "medium": [ + "#๋๋จ์ํ๋ฌ์ด๊ธฐ", + "#์น์๋ง์ดํ๋ฌ์ด๊ธฐ", + "#ํด์ธ์ฅ๊ธฐ๋ ํธ", + "#ํด์ธ๋ถ๋์ฐ", + "#ํ๊ตญ์ด์ด", + "#๋๋จ์๋ถ๋์ฐ", + "#ํด์ธ์๋", + "#์ฅ๊ธฐ์ฌํ", + "#์์ผ์ด์ ", + "#๋ฆฌ๋ชจํธ์ํฌ" + ], + "niche": [ + "#๊ณ์ฝ์ฃผ์์ฌํญ", + "#์น์๋ง์ด๋ ํธ", + "#๋๋จ์๋ ํธ๊ณ์ฝ", + "#ํด์ธ์ง๊ตฌํ๊ธฐ", + "#๋จ๊ธฐ์๋๊ณ์ฝ" + ] + }, + "bestPostingTimes": [ + "07:00", + "12:00", + "21:00" + ] + }, + "threads": { + "posts": [ + { + "order": 1, + "label": "1/5", + "content": "๋๋จ์ ํ ๋ฌ ์ด๊ธฐ ์ค๋นํ๋ ์ฌ๋ ์ค ์ ๋ฐ์ ๊ณ์ฝ์ ํ ๋ฒ๋ ์ ์ฝ๊ณ ์๋ช ํฉ๋๋ค.\n\n๊ฒฐ๊ณผ๋? ๋ณด์ฆ๊ธ ๋ชฐ์, ๊ด๋ฆฌ๋น ํญํ, ๊ณ์ฝ ๊ธฐ๊ฐ ์กฐ์๊น์ง.\n\n์น์๋ง์ด์์ ์ง์ ๊ฒช์ ์ด์ผ๊ธฐ ํ์ด๋ด ๋๋ค ๐งต" + }, + { + "order": 2, + "label": "2/5", + "content": "๊ฐ์ฅ ํฐ ์ค์๋ '๋์ฐฉ ์ 100% ์ ์ ๊ธ ๊ณ์ฝ'์ ๋๋ค.\n\n์ฌ์ง๋ง ๋ณด๊ณ ๊ณ์ฝํ๋ค๊ฐ ์ค์ ๋ก๋ ์์ ๋ค๋ฅธ ์ง์ด์๋ ๊ฒฝ์ฐ ์ ๋ง ํํด์.\n\n์ต์ํ 3์ผ์ ๊ฒ์คํธํ์ฐ์ค ์ก๊ณ , ์ง์ ๋ณด๊ณ ๊ฒฐ์ ํ๋ ๊ฒ ๋ง์ต๋๋ค." + }, + { + "order": 3, + "label": "3/5", + "content": "๋๋ผ๋ณ๋ก ์๋ ๊ดํ๋ ์์ ๋ค๋ฆ ๋๋ค.\n\nํ๊ตญ์ ๋ณด์ฆ๊ธ 1๊ฐ์์น๊ฐ ๊ตญ๋ฃฐ์ด์ง๋ง, ๋ฒ ํธ๋จ์ ํฅ์ ๋ฌธํ๊ฐ ๊ฐํ๊ณ ์ธ๋๋ค์์๋ ์ง์ญ๋ง๋ค ํธ์ฐจ๊ฐ ์ปค์.\n\n์ด๊ฑธ ๋ชจ๋ฅด๊ณ ํ๊ตญ์์ผ๋ก ์ ๊ทผํ๋ฉด ๋ฌด์กฐ๊ฑด ์ํด๋ด ๋๋ค." + }, + { + "order": 4, + "label": "4/5", + "content": "๊ณ์ฝ ์ ์ฒดํฌ๋ฆฌ์คํธ๋ง ์ง์ผ๋ ์ ๋ฐ์ ๋ฐฉ์ง๋ฉ๋๋ค.\n\n- ์ ๊ธฐ์ธ/์์ด์ปจ ์ฌ์ฉ๋ฃ ๋ณ๋ ์ฌ๋ถ\n- ๋ณด์ฆ๊ธ ํ๋ถ ์กฐ๊ฑด ๋ช ์\n- ๊ณ์ฝ์ ์๋ฌธ๋ณธ ์์ฒญ\n- ์ง์ญ ์น์ ์ฌ์ ์กฐ์ฌ\n\n๋ํ ์ผ์ด ๊ฒฐ๊ตญ ๋์ ์งํต๋๋ค." + }, + { + "order": 5, + "label": "5/5", + "content": "๊ฒฐ๋ก : ๋๋จ์ ํ ๋ฌ ์ด๊ธฐ, ๋ญ๋ง๋ง ๋ณด๊ณ ๊ฐ๋ฉด ๋ฐ๋์ ํํํฉ๋๋ค.\n\n์ง์ญ๋ณ ํน์ฑ๋ถํฐ ๋๋ผ๋ณ ๊ณ์ฝ ๊ดํ๊น์ง ์ค์ ๊ฒฝํ ๊ธฐ๋ฐ์ผ๋ก ๋ธ๋ก๊ทธ์ ์ ๋ถ ์ ๋ฆฌํ์ด์.\n\nhttps://www.hoguwhat.com/2026/07/blog-post_18.html\n\n์ฌ๋ฌ๋ถ์ ๊ณ์ฝ ์ ์ ๋ญ ๊ฐ์ฅ ๊ผผ๊ผผํ ํ์ธํ์๋์?" + } + ], + "hashtags": [ + "#๋๋จ์ํ๋ฌ์ด๊ธฐ", + "#์น์๋ง์ดํ๋ฌ์ด๊ธฐ", + "#ํด์ธ์ฅ๊ธฐ๋ ํธ", + "#๊ณ์ฝ์ฃผ์์ฌํญ", + "#๋๋จ์๋ถ๋์ฐ" + ], + "engagementQuestion": "๋๋จ์ ๋ ํธ ๊ณ์ฝํ ๋ ์ฌ๋ฌ๋ถ์ด ๊ฐ์ฅ ์กฐ์ฌํ๋ ๋ถ๋ถ์ ๋ฌด์์ธ๊ฐ์?", + "bestPostingTimes": [ + "08:00", + "19:00" + ] + }, + "tiktok": { + "title": "์น์๋ง์ด ํ ๋ฌ ์ด๊ธฐ ์ง ๊ตฌํ๋ค ๋ณด์ฆ๊ธ ๋ ๋ฆด ๋ปํ ์ด์ผ๊ธฐ", + "thumbnailText": "๋ณด์ฆ๊ธ 200๋ง์ ๋ ๋ฆด ๋ปํ ์ด์ ", + "scenes": [ + { + "time": "0-3์ด", + "text": "๊ณ์ฝ์ ์ ์ฝ๊ณ ์๋ช ํ๋ค๊ฐ ๋ฒ์ด์ง ์ผ...", + "direction": "๋ณธ์ธ ์ผ๊ตด ํด๋ก์ฆ์ , ๋๋ ํ์ + ๊ณ์ฝ์ ํ๋ฉด ์ค๋ฒ๋ ์ด", + "sound": "๊ธด์ฅ๊ฐ ์๋ ํจ๊ณผ์(๋ฉ๋)" + }, + { + "time": "3-15์ด", + "text": "๋๋จ์ ํ ๋ฌ ์ด๊ธฐ, ๋์ฐฉ ์ 100% ์ ์ ๊ธํ๋ค๊ฐ ์์ ๋ค๋ฅธ ์ง ๋ฐ์ ์ฌ๋ ์คํ์ ๋๋ค", + "direction": "์ค์ ์ง ์ฌ์ง vs ๊ณ์ฝ์ ์ฌ์ง ๋น๊ต ํ๋ฉด ์ ํ", + "sound": "๊ฒฝ๊ณ ์ + ๋ฐฐ๊ฒฝ์์ ์์" + }, + { + "time": "15-35์ด", + "text": "๋๋ผ๋ณ ์๋ ๊ดํ ์์ ๋ฌ๋ผ์. ํ๊ตญ ๋ณด์ฆ๊ธ 1๊ฐ์์น, ๋ฒ ํธ๋จ์ ํฅ์ ํ์, ์ธ๋๋ ์ง์ญ๋ง๋ค ๋ค๋ฆ", + "direction": "๊ตญ๊ฐ๋ณ ์ง๋ ๊ทธ๋ํฝ + ํ ์คํธ ์ค๋ฒ๋ ์ด, ์๊ฐ๋ฝ์ผ๋ก ํฌ์ธํธ ์ง๊ธฐ", + "sound": "๊ฒฝ์พํ BGM ์ ์ง, ํด๋ฆญ์ ํจ๊ณผ" + }, + { + "time": "35-50์ด", + "text": "๊ณ์ฝ ์ ์ฒดํฌ๋ฆฌ์คํธ 5๊ฐ์ง: ์ ๊ธฐ์ธ ๋ณ๋, ๋ณด์ฆ๊ธ ์กฐ๊ฑด, ์๋ฌธ ๊ณ์ฝ์, ์น์ ์กฐ์ฌ, ์ฌ์ง ์ฆ๊ฑฐ", + "direction": "์ฒดํฌ๋ฆฌ์คํธ ์ ๋๋ฉ์ด์ ํ๋์ฉ ์ฒดํฌ ํ์", + "sound": "์ฒดํฌ ํจ๊ณผ์ ๋ฐ๋ณต" + }, + { + "time": "50-60์ด", + "text": "์ ์ฒด ์ฒดํฌ๋ฆฌ์คํธ๋ ๋ธ๋ก๊ทธ์! ๋๊ธ์ ์ฌ๋ฌ๋ถ ๊ฒฝํ๋ ๋จ๊ฒจ์ฃผ์ธ์", + "direction": "๋ณธ์ธ ์ผ๊ตด ๋ฑ์ฅ + ํ๋ฉด ํ๋จ ๋งํฌ ์๋ง, ์๊ฐ๋ฝ์ผ๋ก ํ๋ฉด ๊ฐ๋ฆฌํค๊ธฐ", + "sound": "BGM ํด๋ผ์ด๋งฅ์ค + ์๋ฆผ์" + } + ], + "fullScript": "๊ณ์ฝ์ ์ ์ฝ๊ณ ์๋ช ํ๋ค๊ฐ ๋ฒ์ด์ง ์ผ... ๋๋จ์ ํ ๋ฌ ์ด๊ธฐ, ๋์ฐฉ ์ 100% ์ ์ ๊ธํ๋ค๊ฐ ์์ ๋ค๋ฅธ ์ง ๋ฐ์ ์ฌ๋ ์คํ์ ๋๋ค. ๋๋ผ๋ณ ์๋ ๊ดํ ์์ ๋ฌ๋ผ์. ํ๊ตญ์ ๋ณด์ฆ๊ธ 1๊ฐ์์น๊ฐ ๊ตญ๋ฃฐ, ๋ฒ ํธ๋จ์ ํฅ์ ํ์, ์ธ๋๋ค์์๋ ์ง์ญ๋ง๋ค ํธ์ฐจ๊ฐ ํฝ๋๋ค. ๊ณ์ฝ ์ ์ฒดํฌ๋ฆฌ์คํธ 5๊ฐ์ง, ์ ๊ธฐ์ธ ๋ณ๋ ์ฌ๋ถ, ๋ณด์ฆ๊ธ ํ๋ถ ์กฐ๊ฑด, ์๋ฌธ ๊ณ์ฝ์ ์์ฒญ, ์น์ ์ฌ์ ์กฐ์ฌ, ๊ทธ๋ฆฌ๊ณ ์ฌ์ง์ผ๋ก ์ฆ๊ฑฐ ๋จ๊ธฐ๊ธฐ. ์ ์ฒด ์ฒดํฌ๋ฆฌ์คํธ๋ ๋ธ๋ก๊ทธ์ ์ ๋ฆฌํด๋์ด์. ์ฌ๋ฌ๋ถ ๊ฒฝํ๋ ๋๊ธ๋ก ๋จ๊ฒจ์ฃผ์ธ์.", + "commentBait": "๋๋จ์ ๋ ํธํ๋ค๊ฐ ์ฌ๊ธฐ๋นํ ๊ฒฝํ ์์ผ์ ๋ถ? ๋๊ธ๋ก ์๋ ค์ฃผ์ธ์", + "hashtags": [ + "#fyp", + "#foryou", + "#๋๋จ์ํ๋ฌ์ด๊ธฐ", + "#์น์๋ง์ดํ๋ฌ์ด๊ธฐ", + "#ํด์ธ์ฅ๊ธฐ๋ ํธ" + ], + "backgroundMusic": { + "genre": "๋กํ์ด/ํ", + "mood": "๊ธด์ฅ๊ฐ์์ ๊ฒฝ์พํจ์ผ๋ก ์ ํ" + }, + "bestPostingTimes": [ + "07:00", + "20:00", + "23:00" + ] + }, + "keyword": "๋๋จ์ ํ ๋ฌ ์ด๊ธฐ ์ง ๊ตฌํ๋ ๋ฐฉ๋ฒ๊ณผ ๊ณ์ฝ ์ฃผ์์ฌํญ", + "trendDirection": "stable" + }, + "socialPublished": { + "instagram": { + "skipped": true, + "reason": "SOCIAL_AUTO_PUBLISH=false" + }, + "threads": { + "skipped": true, + "reason": "SOCIAL_AUTO_PUBLISH=false" + }, + "tiktok": { + "skipped": true, + "reason": "SOCIAL_AUTO_PUBLISH=false" + } + } + } + ] + }, + { + "runAt": "2026-07-17T23:18:13.966405", + "date": "2026-07-17", + "keywords": [ + "ETF ์ฒซ ํฌ์ ์ค์๋ด ๊ณต๊ฐ" + ], + "postsGenerated": 1, + "bloggerUploaded": 0, + "errors": 0, + "errorMessages": [], + "imagesInserted": 1, + "totalWords": 3734, + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "platforms": { + "blogger": 0 + }, + "earnings": { + "totalPosts": 85, + "estimatedDailyRevenue": 425.0, + "estimatedMonthlyRevenue": 12750.0, + "estimatedYearlyRevenue": 155125.0, + "avgCPC": 2.5, + "currency": "USD" + }, + "posts": [ + { + "title": "ETF ์ฒซ ํฌ์, ๋ค๋ค ์ด ์ค์๋ถํฐ ํฉ๋๋ค โ 360์กฐ ์์ฅ์์ ์์ฃผ ๋์ค๋ ์ด๋ณด ์ค๋ฅ", + "keyword": "ETF ์ฒซ ํฌ์ ์ค์๋ด ๊ณต๊ฐ", + "blogUrl": "", + "imagesInserted": 1, + "wordCount": 3734, + "contentPreview": "ETF๋ '๊ทธ๋ฅ ์ง์ ๋ฐ๋ผ๊ฐ๋ ์์ ํ ์ํ'์ด๋ผ๋ ์คํด๊ฐ ๋ง์ต๋๋ค. ์ค์ ๋ก๋ ๊ทธ๋ ์ง ์์ต๋๋ค. ๊ตญ๋ด ETF ์์ฅ์ ๋ชฐ๋ฆฐ ๋์ด 360์กฐ ์ ๊ท๋ชจ์ ์ด๋ฅผ ์ ๋๋ก ์ปค์ก์ง๋ง, ์ํ ์ข ๋ฅ๊ฐ ์๋ ๋ค์ํด์ง๋ฉด์ ์ด๋ฆ๋ง ๋ณด๊ณ ๋ญ์ง ๋ชจ๋ฅธ ์ฑ ์ฌ๋ ์ฌ๋๋ ํจ๊ป ๋์์ต๋๋ค. '์ง์ ์ถ์ข = ๋ฌด์กฐ๊ฑด ์์ '์ด๋ผ๋ ๊ณต์์ ๋ ๋ฒ๋ฆฌ์งยท์ธ๋ฒ์ค ์ํ ์์์๋ ์์ ํ ๋ฌด๋์ง๋๋ค. ์ด ๊ธ์์...", + "faqCount": 3, + "faq": [ + { + "q": "ETF์ ๋ ๋ฒ๋ฆฌ์ง ETF๋ ๊ฐ์ ์ํ์ธ๊ฐ์?", + "a": "์๋๋๋ค. ์ผ๋ฐ ETF๋ ๊ธฐ์ด์ง์๋ฅผ ๊ทธ๋๋ก ์ถ์ข ํ์ง๋ง ๋ ๋ฒ๋ฆฌ์ง ETF๋ ์ผ์ผ ์์ต๋ฅ ์ ๋ฐฐ์๋ฅผ ์ถ์ข ํ๋๋ก ์ค๊ณ๋์ด ์์ด ๊ตฌ์กฐ๊ฐ ๋ค๋ฆ ๋๋ค. KDI ๊ฒฝ์ ์ ๋ณด์ผํฐ๋ ๋ ๋ฒ๋ฆฌ์ง ETFยทETN์ ๊ณ ์ํ ์ํ์ผ๋ก ๋ถ๋ฅํ๊ณ ๊ฐ๋ณํ ์ฃผ์๋ฅผ ์๋ดํ๊ณ ์์ต๋๋ค." + }, + { + "q": "ETF ์ด๋ฆ๋ง ๋ณด๊ณ ํฌ์ ํ๋จํด๋ ๋๋์?", + "a": "๊ถ์ฅ๋์ง ์์ต๋๋ค. ์ด๋ฆ์ด ๋น์ทํด๋ ๊ธฐ์ด์ง์, ๊ตฌ์ฑ ์ข ๋ชฉ, ์ด์ฉ ๋ฐฉ์์ด ๋ค๋ฅผ ์ ์์ด ์ค์ ์ํ์ค๋ช ์์ ๊ธฐ์ด์ง์, ์์์ฐ์ด์ก, ๊ฑฐ๋๋๊น์ง ํจ๊ป ํ์ธํ๋ ๊ฒ์ด ์์ ํฉ๋๋ค." + }, + { + "q": "๋ ๋ฒ๋ฆฌ์ง ETF๋ ์ฅ๊ธฐ ๋ณด์ ํด๋ ๊ด์ฐฎ์๊ฐ์?", + "a": "๊ตฌ์กฐ์ ์ผ์ผ ์ฌ์กฐ์ ๋ฐฉ์์ผ๋ก ์ด์ฉ๋๊ธฐ ๋๋ฌธ์ ์ง์๊ฐ ํก๋ณดํ๋ ๊ตฌ๊ฐ์์๋ ์ฅ๊ธฐ ๋ณด์ ์ ์์๊ณผ ๋ค๋ฅธ ์์ค์ด ๋์ ๋ ์ ์์ต๋๋ค. ์ ๋ฌธ๊ฐ๋ค์ ํต์ ๋จ๊ธฐ ๋งค๋งค์ฉ์ผ๋ก ์ค๊ณ๋ ์ํ์ด๋ผ๊ณ ์ค๋ช ํฉ๋๋ค." + } + ], + "factCheck": { + "checked": true, + "verdict": "warn", + "issues_found": 5, + "fixes_applied": 5, + "issues": [ + { + "problem": "์๋ฃํฉ์ KDI ์๋ด ๋ฐํ ๋ ์ง๊ฐ ๋ช ์๋์ด ์์ง ์์ ๊ฒ์ฆ ๋ถ๊ฐ๋ฅํ ๋ ์ง ์ฝ์ ", + "fixed": true + }, + { + "problem": "์๋ฃํฉ์ ํด๋น ์ฌ๋ก์ ๊ณต๊ฐ ๋ ์ง๊ฐ ๋ช ์๋์ด ์์ง ์์ ๊ฒ์ฆ ๋ถ๊ฐ๋ฅํ ๋ ์ง", + "fixed": true + }, + { + "problem": "๊ฒ์ฆ ๋ถ๊ฐ๋ฅํ ์ด์ฉ์ ํ๊ธฐ ์ง๊ณ ์ฃผ์ฅ", + "fixed": true + }, + { + "problem": "๊ณผ์ฅ๋ ๋จ์ ์ ํํ", + "fixed": true + }, + { + "problem": "์ถ์ฒ ๋ถ๋ช ํํ ํ๊ธฐ ์ง๊ณ์ ๊ทผ๊ฑฐํ ๋จ์ ", + "fixed": true + } + ] + }, + "sources": [ + { + "title": "ETF์ ์ ๋ฆฐ ๋ 360์กฐโฆ ํฌ์์์๊ฒ ์ ๋ฆฌํ ETF ์ ์ ๊ธฐ์ค", + "url": "https://weekly.donga.com/3/all/11/6231451/1" + }, + { + "title": "โ์์๋ณด๋ค ๋ซ๋คโ ์์๋ท ์ฃผ๋ถ, ์ฑGPT ์ํค๋ ๋๋ก ํ๋๋ ์์ต๋ฅ 224%...", + "url": "https://magazine.hankyung.com/business/article/202603125779b" + }, + { + "title": "๊ณ ์ํ ๋ ๋ฒ๋ฆฌ์ง(ETFยทETN) ํฌ์, ๊ฐ๋ณํ ์ฃผ์๊ฐ ํ์ํฉ๋๋ค!", + "url": "https://eiec.kdi.re.kr/policy/materialView.do?num=278124" + } + ], + "labels": [ + "ETFํฌ์", + "ETF์ฒซํฌ์", + "๋ ๋ฒ๋ฆฌ์งETF", + "์ธ๋ฒ์คETF", + "ETF์ค์๋ด", + "์ด๋ณดํฌ์์", + "๊ตญ๋ดETF์์ฅ", + "KDI๊ฒฝ์ ์ ๋ณด์ผํฐ", + "ETF์ ์ ๊ธฐ์ค", + "๋ถ์ฐํฌ์" + ], + "metaDescription": "ETF ์ฒซ ํฌ์์๋ค์ด ์์ฃผ ๊ฒช๋ ์ค์ ํจํด์ ์กฐ์ฌํ์ต๋๋ค. ์ด๋ฆ๋ง ๋ณด๊ณ ๋งค์, ๋ ๋ฒ๋ฆฌ์ง ๊ตฌ์กฐ ์คํด, ๋จ๊ธฐ ์์ธ ๋ฐ์๊น์ง ์ค์ ์ฌ๋ก์ ๊ณต์ ์๋ฃ๋ก ์ ๋ฆฌํ์ต๋๋ค.", + "adsenseCategory": "๊ธ์ต", + "articleType": "investment", + "riskLevel": "high", + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "socialContent": null, + "socialPublished": { + "instagram": null, + "threads": null, + "tiktok": null + } + } + ] + }, + { + "runAt": "2026-07-17T23:09:08.342221", + "date": "2026-07-17", + "keywords": [ + "์ ์ฃผ๋ ์ฌํ ํ์ง์ธ์ฒ๋ผ ์ฆ๊ธฐ๋ ๋ฐฉ๋ฒ ์์ง ํ๊ธฐ" + ], + "postsGenerated": 0, + "bloggerUploaded": 0, + "errors": 1, + "errorMessages": [ + "Blogger ์ ๋ก๋ ์ต์ข ์คํจ (3ํ ์๋): '์ ์ฃผ๋ ์ฌํ ํ์ง์ธ์ฒ๋ผ ์ฆ๊ธฐ๋ ๋ฐฉ๋ฒ, ์์ง ํ๊ธฐ์ ์กฐ์ฌ ์ ๋ฆฌ'" + ], + "imagesInserted": 0, + "totalWords": 0, + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "platforms": { + "blogger": 0 + }, + "earnings": { + "totalPosts": 85, + "estimatedDailyRevenue": 153.0, + "estimatedMonthlyRevenue": 4590.0, + "estimatedYearlyRevenue": 55845.0, + "avgCPC": 0.9, + "currency": "USD" + }, + "posts": [] + }, + { + "runAt": "2026-07-17T22:59:39.510446", + "date": "2026-07-17", + "keywords": [ + "์ ์ฃผ ํ ๋ฌ ์ด๊ธฐ ์ค์ ์ํ๋น์ ์์ ๋น์ฉ ๊ณต๊ฐ" + ], + "postsGenerated": 0, + "bloggerUploaded": 0, + "errors": 1, + "errorMessages": [ + "AdSense ์ ํด ์ฝํ ์ธ ๊ฐ์ง โ ์ ๋ก๋ ์ทจ์: '์ ์ฃผ ํ ๋ฌ ์ด๊ธฐ ์ํ๋น์ ์์ ๋น์ฉ ๊ณต๊ฐ' (์ ์: 61/100)" + ], + "imagesInserted": 0, + "totalWords": 0, + "blogId": "blog1", + "blogName": "HOGU What?", + "platforms": { + "blogger": 0 + }, + "earnings": { + "totalPosts": 86, + "estimatedDailyRevenue": 154.8, + "estimatedMonthlyRevenue": 4644.0, + "estimatedYearlyRevenue": 56502.0, + "avgCPC": 0.9, + "currency": "USD" + }, + "posts": [] + }, + { + "runAt": "2026-07-17T11:52:41.337245", + "date": "2026-07-17", + "keywords": [ + "๋ ๋ฒ๋ฆฌ์ง ETF ํฌ์ ๊ท์น ๋ณ๊ฒฝ 2026 ์ด์ ๋ฆฌ" + ], + "postsGenerated": 1, + "bloggerUploaded": 1, + "errors": 0, + "errorMessages": [], + "imagesInserted": 1, + "totalWords": 4019, + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "platforms": { + "blogger": 1 + }, + "earnings": { + "totalPosts": 86, + "estimatedDailyRevenue": 430.0, + "estimatedMonthlyRevenue": 12900.0, + "estimatedYearlyRevenue": 156950.0, + "avgCPC": 2.5, + "currency": "USD" + }, + "posts": [ + { + "title": "๋ ๋ฒ๋ฆฌ์ง ETF ํฌ์ ๊ท์น ๋ณ๊ฒฝ 2026 ์ด์ ๋ฆฌ - ๋จ์ผ์ข ๋ชฉ ETF ํต์ฌ ์ ๋ฆฌ", + "keyword": "๋ ๋ฒ๋ฆฌ์ง ETF ํฌ์ ๊ท์น ๋ณ๊ฒฝ 2026 ์ด์ ๋ฆฌ", + "blogUrl": "https://hoguasset.blogspot.com/2026/07/etf-2026-etf.html", + "imagesInserted": 1, + "wordCount": 4019, + "contentPreview": "๋ ๋ฒ๋ฆฌ์ง ETF์ ํฌ์ํ๊ณ ๊ณ์ ๋ถ์ด๋ผ๋ฉด, ํน์ ๊ด์ฌ์ ์์ง๋ง ์์ง ์๋์ง ์์ผ์ ๋ถ์ด๋ผ๋ฉด ์ด๋ฐ ๊ถ๊ธ์ฆ ํ ๋ฒ์ฏค ์์ผ์ จ์ ๊ฒ๋๋ค. \"์ฌํด๋ถํฐ ๋ ๋ฒ๋ฆฌ์ง ETF ๊ด๋ จํด์ ๋ญ๊ฐ ๋ฐ๋๋ค๋๋ฐ, ๋ํํ ๋ฌด์จ ์ํฅ์ด ์๋ ๊ฑฐ์ง?\" ํนํ ๋จ์ผ์ข ๋ชฉ ๋ ๋ฒ๋ฆฌ์ง ETF๋ผ๋ ์๋ก์ด ์ํ์ด ์์ฅ์ ๋์จ๋ค๋ ์์์ด ๋ค๋ฆฌ๋ฉด์, ๊ธฐ์กด ๋ ๋ฒ๋ฆฌ์ง ETF ํฌ์์๋ค ์ฌ์ด์์๋ ํผ๋์ค๋ฝ๋ค๋ ์ด์ผ...", + "faqCount": 3, + "faq": [ + { + "q": "๋จ์ผ์ข ๋ชฉ ๋ ๋ฒ๋ฆฌ์ง ETF๋ ๊ธฐ์กด ๋ ๋ฒ๋ฆฌ์ง ETF์ ์์ ํ ๋ค๋ฅธ ์ํ์ธ๊ฐ์?", + "a": "์ถ์ข ๋์์ด ๋ค๋ฆ ๋๋ค. ๊ธฐ์กด ๋ ๋ฒ๋ฆฌ์ง ETF๋ ์ฝ์คํผ200 ๊ฐ์ ์ง์๋ฅผ 2๋ฐฐ๋ก ์ถ์ข ํ์ง๋ง, ๋จ์ผ์ข ๋ชฉ ๋ ๋ฒ๋ฆฌ์ง ETF๋ ๊ฐ๋ณ ์ข ๋ชฉ 1๊ฐ์ ๋ฑ๋ฝ์ 2๋ฐฐ๋ก ์ถ์ข ํด ๋ถ์ฐ ํจ๊ณผ๊ฐ ์๊ณ ๋ณ๋์ฑ์ด ๋ ํฌ๊ฒ ๋ํ๋ ์ ์๋ค๊ณ ๊ธ์ต๊ฐ๋ ์์ด ์ธ๊ธํ์ต๋๋ค." + }, + { + "q": "๋ ๋ฒ๋ฆฌ์ง ETF ์ธ์ ํํ์ด ์ค์ ๋ก ์ ์ฉ๋๋์?", + "a": "๊ธ์ต๊ฐ๋ ์ ๋ถ์์ฅ์ด ์ธ์ ํํ ๋ฑ์ ํตํ ์ฅ๊ธฐํฌ์ ์ ๋ ๋ฐฉ์์ ๊ฒํ ํ๋ค๊ณ ์ธ๊ธํ์ง๋ง, 2026๋ 7์ ๊ธฐ์ค ๊ตฌ์ฒด์ ์ธ ์ธ์จ์ด๋ ์ ์ฉ ์์ ์ ๊ณต์ ํ์ ๋์ง ์์์ต๋๋ค. ๊ธ์ต์์ํ๋ ๊ธฐํ์ฌ์ ๋ถ์ ํ์ ๊ณต์ ๋ฐํ๋ฅผ ํ์ธํ๋ ๊ฒ์ด ์ ํํฉ๋๋ค." + }, + { + "q": "๊ธฐ์กด์ ์ง์ํ ๋ ๋ฒ๋ฆฌ์ง ETF๋ฅผ ๋ณด์ ํ๊ณ ์๋ค๋ฉด ์ง๊ธ ๋น์ฅ ๋ญ ํด์ผ ํ๋์?", + "a": "๋น์ฅ ์ํ ๊ตฌ์กฐ๊ฐ ๋ฐ๋๋ ๊ฒ์ ์๋์ง๋ง, ๊ธ์ต๊ฐ๋ ์์ด ๋ ๋ฒ๋ฆฌ์ง ์ํ ์ ๋ฐ์ ๋ํ ๋งค๋งคํจํด ๋ชจ๋ํฐ๋ง์ ๊ฐํํ๊ฒ ๋ค๊ณ ๋ฐํ ๋งํผ ๊ด๋ จ ๊ณต์ง์ฌํญ์ ์ฃผ๊ธฐ์ ์ผ๋ก ํ์ธํ๋ ๊ฒ์ด ์ข์ต๋๋ค." + } + ], + "factCheck": { + "checked": true, + "verdict": "warn", + "issues_found": 2, + "fixes_applied": 2, + "issues": [ + { + "problem": "์๋ฃํฉ์ ๋ฐ๋ฅด๋ฉด ์ด์ฐฌ์ง ์์ฅ ์ฃผ์ฌ 2์ฐจ ์๋น์์ํ๋์ํ์ํ๋ 2026๋ 5์ 18์ผ์ ์ด๋ ธ์ผ๋ฉฐ, '๋นํฌ' ๊ด๋ จ ๋น๋ถ๋ 2026๋ 6์ 24์ผ์ ๋ด์ค๋ธ๋ฆฌํ ๋ด์ฉ์ผ๋ก ํ์ธ๋จ. ๋ ์ง๊ฐ ์๋ฃํฉ๊ณผ ๋ถ์ผ์น", + "fixed": true + }, + { + "problem": "์๋ฃํฉ์ ์๋ ๊ตฌ์ฒด์ ์ ์ฑ ๋ด์ฉ์ผ๋ก ๊ฒ์ฆ ๋ถ๊ฐ๋ฅ", + "fixed": true + } + ] + }, + "sources": [ + { + "title": "๋จ์ผ์ข ๋ชฉ ๋ ๋ฒ๋ฆฌ์งETF ๋์ โฆ๊ธ๊ฐ์ \"์ ๋ฆผยท๋ณ๋์ฑ ํ๋ ๋์\"", + "url": "https://www.yna.co.kr/view/AKR20260511094400002" + }, + { + "title": "๊ธ๊ฐ์์ฅ \"๋นํฌยท๋ ๋ฒ๋ฆฌ์ง ํฌ์ ์กฐ์ฅ์ ๊ฒฝ๊ฐ์ฌโฆAI ๋์ ์ง์ค\"", + "url": "https://www.yna.co.kr/view/AKR20260518153900002" + }, + { + "title": "[์ฆ๊ถ ๋ด์ค๋ธ๋ฆฌํ] ๊ตญ๋ฏผ์ฐ๊ธ '๋ฆฌ๋ฐธ๋ฐ์ฑ ์ ์ ๊ณง ๋ง๋ฃ... '์์ญ์กฐ' ๋งค๋๋ฌผ๋ ์ถํ ๊ฐ๋ฅ์ฑ/๊ธ๊ฐ์, ์ฆ๊ถ์ฌ์ \"๋นํฌยท์ ๋์ฑ ๊ด๋ฆฌํด์ผ\"", + "url": "https://www.asiatime.co.kr/article/20260624500414" + } + ], + "labels": [ + "๋ ๋ฒ๋ฆฌ์งETF", + "๋จ์ผ์ข ๋ชฉ๋ ๋ฒ๋ฆฌ์งETF", + "๊ธ์ต๊ฐ๋ ์", + "ETFํฌ์", + "2026๊ธ์ต์ ์ฑ " + ], + "metaDescription": "2026๋ 5์ 27์ผ ๋์ ๋ ๋จ์ผ์ข ๋ชฉ ๋ ๋ฒ๋ฆฌ์ง ETF, ๊ธฐ์กด ์ง์ํ ์ํ๊ณผ ์ด๋ป๊ฒ ๋ค๋ฅธ์ง, ๊ธ์ต๊ฐ๋ ์ ํฌ์์ ๋ณดํธ ๋์ฑ ๊ณผ ํฌ์์ ์ ํ๋ณ ์ฒดํฌํฌ์ธํธ๊น์ง ์ ๋ฆฌํ์ต๋๋ค.", + "adsenseCategory": "๊ธ์ต", + "articleType": "investment", + "riskLevel": "high", + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "socialContent": { + "instagram": { + "caption": "2026๋ 5์ 27์ผ, ๋ ๋ฒ๋ฆฌ์ง ETF ํฌ์ ๊ท์น์ด ํต์งธ๋ก ๋ฐ๋์์ต๋๋ค ๐\n\n๊ธฐ์กด์ ์ง์ ์ถ์ข ๋ง ์๋ ํฌ์์๋ผ๋ฉด ์ง๊ธ ๋ฐ๋ก ํ์ธํ์ธ์.\n๋จ์ผ์ข ๋ชฉ ๋ ๋ฒ๋ฆฌ์ง ETF๊ฐ ๋ญ์ง ๋ชจ๋ฅด๊ณ ํฌ์ํ๋ฉด ์์ค ๊ตฌ์กฐ๊ฐ ์์ ํ ๋ฌ๋ผ์ง๋๋ค.\n\n์ ์ฅ ํ์ ๐ (๋์ค์ ๋ค์ ๋ณผ ํ๋ฅ 100%)\n\n1๏ธโฃ 2026.5.27๋ถํฐ ๋จ์ผ์ข ๋ชฉ ๋ ๋ฒ๋ฆฌ์ง ETF ๋์ \n2๏ธโฃ ๊ธฐ์กด ์ง์ํ ETF์ ๋ณ๋์ฑ ๊ตฌ์กฐ ์์ฒด๊ฐ ๋ค๋ฆ\n3๏ธโฃ ํน์ ์ข ๋ชฉ ํ๋์ 2~3๋ฐฐ ๋ฐฐ์จ ์ ์ฉ ๊ฐ๋ฅ\n4๏ธโฃ ๊ธ์ต๊ฐ๋ ์, ํฌ์์ ๋ณดํธ ๋์ฑ ๋ณ๋ ๋ฐํ\n5๏ธโฃ ์ธ์ ํํ ์ ์ฉ ์ฌ๋ถ๋ ์กฐ๊ฑด๋ถ (๋ค ๋๋ ๊ฑฐ ์๋)\n6๏ธโฃ ํฌ์์ ์ ํ๋ณ ์ฒดํฌํฌ์ธํธ ์์ด (์ด๋ณด/์ค๊ธ/๊ณ ๊ธ)\n7๏ธโฃ ๊ธฐ์กด ์ํ๊ณผ ํผ๋ ์ ์์ค ๋ฆฌ์คํฌ ๊ธ์ฆ\n\n์ง๊ธ ์ ๋ฆฌ ์ ํด๋๋ฉด ๋์ค์ ํท๊ฐ๋ฆฝ๋๋ค.\n๋ธ๋ก๊ทธ์ FAQ๊น์ง ์ด์ ๋ฆฌํด๋์ด์ ๐\n\n#๋ ๋ฒ๋ฆฌ์งETF ๊ด๋ จ ์ง๋ฌธ์ ๋๊ธ๋ก ๋จ๊ฒจ์ฃผ์ธ์ ๐ฌ", + "hookLine": "2026๋ 5์ 27์ผ, ETF ํฌ์ ๊ท์น์ด ์์ ํ ๋ฐ๋์๋ค๋ ์ฌ์ค ์๊ณ ๊ณ์ จ๋์? ๐๐", + "storyHighlightTitle": "ETF์ ๋ฆฌ", + "hashtags": { + "popular": [ + "#์ฌํ ํฌ", + "#์ฃผ์ํฌ์", + "#ํฌ์๊ณต๋ถ", + "#๊ฒฝ์ ๊ณต๋ถ", + "#๋๋๋์ ๋ณด", + "#์ฌํ ํฌ๊ณต๋ถ", + "#์ฃผ์", + "#ํฌ์", + "#๊ฒฝ์ ๋ด์ค", + "#๋จธ๋๋ ์จ" + ], + "medium": [ + "#๋ ๋ฒ๋ฆฌ์งETF", + "#ETFํฌ์", + "#๋จ์ผ์ข ๋ชฉETF", + "#๊ธ์ต๊ฐ๋ ์", + "#2026๊ธ์ต์ ์ฑ ", + "#ETF๊ณต๋ถ", + "#ํฌ์์ ๋ต", + "#์์ฐ๊ด๋ฆฌ", + "#ํฌํธํด๋ฆฌ์ค", + "#์ธ์ ํํ" + ], + "niche": [ + "#๋จ์ผ์ข ๋ชฉ๋ ๋ฒ๋ฆฌ์งETF", + "#ETF๊ท์น๋ณ๊ฒฝ", + "#๋ ๋ฒ๋ฆฌ์งํฌ์", + "#ETF์ธ์ ํํ", + "#ํฌ์์๋ณดํธ๋์ฑ " + ] + }, + "bestPostingTimes": [ + "07:00", + "12:00", + "21:00" + ] + }, + "threads": { + "posts": [ + { + "order": 1, + "label": "1/5", + "content": "2026๋ 5์ 27์ผ๋ถํฐ ๋จ์ผ์ข ๋ชฉ ๋ ๋ฒ๋ฆฌ์ง ETF๊ฐ ์ ์ ๋์ ๋์ต๋๋ค.\n\n์ง๊ธ๊น์ง ์ง์ ์ถ์ข ๋ง ํ๋ ๋ ๋ฒ๋ฆฌ์ง ETF์๋ ์์ ํ ๋ค๋ฅธ ์ํ์ด์์.\n\n์ด๊ฑฐ ๋ชจ๋ฅด๊ณ ํฌ์ํ๋ฉด ์์ค ๊ตฌ์กฐ ์์ฒด๋ฅผ ์คํดํ ์ ์์ต๋๋ค." + }, + { + "order": 2, + "label": "2/5", + "content": "๊ธฐ์กด ๋ ๋ฒ๋ฆฌ์ง ETF: ์ฝ์คํผ200, S&P500 ๊ฐ์ '์ง์'์ ๋ฐฐ์จ ์ ์ฉ\n\n๋จ์ผ์ข ๋ชฉ ๋ ๋ฒ๋ฆฌ์ง ETF: ํน์ '์ข ๋ชฉ ํ๋'์ 2~3๋ฐฐ ๋ฐฐ์จ ์ ์ฉ\n\n๋ณ๋์ฑ ํญ์ด ์์ ํ ๋ค๋ฅธ ์ด์ ๊ฐ ์ฌ๊ธฐ ์์ต๋๋ค." + }, + { + "order": 3, + "label": "3/5", + "content": "๊ธ์ต๊ฐ๋ ์๋ ์ด ๋ณํ๋ฅผ ์ฌ๊ฐํ๊ฒ ๋ณด๊ณ ์์ต๋๋ค.\n\nํฌ์์ ๋ณดํธ ๋์ฑ ์ ๋ณ๋๋ก ๋ฐํํ๋๋ฐ, ์ฌ๊ธฐ์ ํฌ์์ ์ ํ๋ณ ์ฒดํฌํฌ์ธํธ๊ฐ ํฌํจ๋ผ ์์ด์.\n\n์ด๋ณด ํฌ์์์ ์ค๊ธ ํฌ์์๊ฐ ๋ด์ผ ํ ๋ฆฌ์คํฌ ํฌ์ธํธ๊ฐ ๋ค๋ฆ ๋๋ค." + }, + { + "order": 4, + "label": "4/5", + "content": "๋ง์ด๋ค ๊ถ๊ธํดํ์๋ ๊ฒ: \"๋ ๋ฒ๋ฆฌ์ง ETF ์ธ์ ํํ, ์ค์ ๋ก ๋ค ์ ์ฉ๋๋์?\"\n\n์ ๋ต์ ์กฐ๊ฑด๋ถ์ ๋๋ค.\n\n์ํ ๊ตฌ์กฐ์ ๋ฐ๋ผ ์ธ์ ํํ์ด ์ ์ฉ ์ ๋๋ ๊ฒฝ์ฐ๋ ์์ด์, ๊ฐ์ ์ ๋ฐ๋์ ํ์ธ์ด ํ์ํด์." + }, + { + "order": 5, + "label": "5/5", + "content": "๋จ์ผ์ข ๋ชฉ ๋ ๋ฒ๋ฆฌ์ง ETF, ์ ๋๋ก ์ดํดํ๊ณ ํฌ์ํ์๋์?\n\n2026๋ ๊ท์น ๋ณ๊ฒฝ ์ด์ ๋ฆฌ์ FAQ ์ ์ฒด ๋ด์ฉ์ ๋ธ๋ก๊ทธ์ ์ ๋ฆฌํ์ต๋๋ค.\n\nhttps://hoguasset.blogspot.com/2026/07/etf-2026-etf.html\n\n์ฌ๋ฌ๋ถ์ ๋จ์ผ์ข ๋ชฉ ETF, ํฌ์ํ์ค ๊ฑด๊ฐ์ ์๋๋ฉด ์ง์ผ๋ณด์ค ๊ฑด๊ฐ์? ์๊ฒฌ ๋จ๊ฒจ์ฃผ์ธ์ ๐" + } + ], + "hashtags": [ + "#๋ ๋ฒ๋ฆฌ์งETF", + "#ETFํฌ์", + "#๊ธ์ต๊ฐ๋ ์", + "#2026๊ธ์ต์ ์ฑ ", + "#๋จ์ผ์ข ๋ชฉETF" + ], + "engagementQuestion": "๋จ์ผ์ข ๋ชฉ ๋ ๋ฒ๋ฆฌ์ง ETF, ์ฌ๋ฌ๋ถ์ ํฌ์ํ์ค ๊ฑด๊ฐ์ ์๋๋ฉด ์ง์ผ๋ณด์ค ๊ฑด๊ฐ์?", + "bestPostingTimes": [ + "08:00", + "19:00" + ] + }, + "tiktok": { + "title": "2026๋ ETF ํฌ์ ๊ท์น ์์ ํ ๋ฐ๋ (๋ชจ๋ฅด๋ฉด ์ํด)", + "thumbnailText": "ETF ๊ท์น ๋ฐ๋\n5์ 27์ผ๋ถํฐ", + "scenes": [ + { + "time": "0-3์ด", + "text": "2026๋ 5์ 27์ผ, ETF ๊ท์น์ด ํต์งธ๋ก ๋ฐ๋์์ต๋๋ค", + "direction": "ํด๋ก์ฆ์ ์ผ๊ตด + ๋๋ ํ์ , ํ ์คํธ ํฌ๊ฒ ํ์ ", + "sound": "๊ธด์ฅ๊ฐ ์๋ ํจ๊ณผ์ (๋ฉ๋ ์๋ฆผ์)" + }, + { + "time": "3-15์ด", + "text": "๋จ์ผ์ข ๋ชฉ ๋ ๋ฒ๋ฆฌ์ง ETF? ์ฒ์ ๋ค์ด๋ณด์ จ์ฃ ?\n๊ธฐ์กด ์ํ์ด๋ ์์ ํ ๋ค๋ฆ ๋๋ค", + "direction": "ํ๋ฉด ๋ถํ - ๊ธฐ์กด vs ์ ๊ท ๋น๊ต ๊ทธ๋ํฝ", + "sound": "์๋ฌธ ํจ๊ณผ์ + ๋ฐฐ๊ฒฝ์ ํ์ด๋์ธ" + }, + { + "time": "15-35์ด", + "text": "๊ธฐ์กด: ์ง์(์ฝ์คํผ,S&P) ์ถ์ข \n์ ๊ท: ํน์ ์ข ๋ชฉ ํ๋์ ๋ฐฐ์จ ์ ์ฉ\nโ ๋ณ๋์ฑ ์์ ํ ๋ค๋ฆ\n๊ธ์ต๊ฐ๋ ์๋ ํฌ์์ ๋ณดํธ ๋์ฑ ๋ฐํํ์ด์", + "direction": "ํ์ดํธ๋ณด๋ ์ ๋๋ฉ์ด์ ์คํ์ผ ๊ทธ๋ํฝ ์ ํ, ํต์ฌ ๋ฌธ๊ตฌ ํ์ด๋ผ์ดํธ", + "sound": "ํ์ดํ ํจ๊ณผ์ + ์์ํ BGM ์ ์ง" + }, + { + "time": "35-50์ด", + "text": "์ธ์ ํํ? ์กฐ๊ฑด๋ถ์ ๋๋ค\n๋ค ์ ์ฉ๋๋ ๊ฑฐ ์๋์์\nํฌ์์ ์ ํ๋ณ ์ฒดํฌํฌ์ธํธ๋ ๋ฐ๋ก ์์ด์", + "direction": "์๊ฐ๋ฝ์ผ๋ก ์ฒดํฌ๋ฆฌ์คํธ ์ง๋ ์ฐ์ถ", + "sound": "์ฒดํฌ ํจ๊ณผ์ (๋ฉ!)" + }, + { + "time": "50-60์ด", + "text": "์ ์ฒด ์ด์ ๋ฆฌ๋ ๋ธ๋ก๊ทธ์\nํ๋กํ ๋งํฌ ํ์ธํ์ธ์ ๐", + "direction": "์์ผ๋ก ํ๋ฉด ์์ชฝ ๊ฐ๋ฆฌํค๋ ์ ์ค์ฒ, ํ๋กํ ํด๋ฆญ ์ ๋ ํ์ดํ ๊ทธ๋ํฝ", + "sound": "์ ๋นํธ ํจ๊ณผ์ + BGM ๋ณผ๋ฅจ์ " + } + ], + "fullScript": "2026๋ 5์ 27์ผ, ETF ํฌ์ ๊ท์น์ด ํต์งธ๋ก ๋ฐ๋์์ต๋๋ค. ๋จ์ผ์ข ๋ชฉ ๋ ๋ฒ๋ฆฌ์ง ETF, ์ฒ์ ๋ค์ด๋ณด์ จ์ฃ ? ๊ธฐ์กด ์ํ์ด๋ ์์ ํ ๋ค๋ฆ ๋๋ค. ๊ธฐ์กด ๋ ๋ฒ๋ฆฌ์ง ETF๋ ์ฝ์คํผ๋ S&P500 ๊ฐ์ ์ง์์ ๋ฐฐ์จ์ ์ ์ฉํ์ง๋ง, ์ด๋ฒ์ ๋์ ๋ ๋จ์ผ์ข ๋ชฉ ๋ ๋ฒ๋ฆฌ์ง ETF๋ ํน์ ์ข ๋ชฉ ํ๋์ 2~3๋ฐฐ ๋ฐฐ์จ์ด ์ ์ฉ๋ผ์. ๋ณ๋์ฑ ํญ ์์ฒด๊ฐ ๋ค๋ฆ ๋๋ค. ๊ธ์ต๊ฐ๋ ์๋ ์ด ๋ณํ๋ฅผ ์ฃผ๋ชฉํ๊ณ ํฌ์์ ๋ณดํธ ๋์ฑ ์ ๋ณ๋๋ก ๋ฐํํ์ด์. ์ธ์ ํํ๋ ๋ค ์ ์ฉ๋๋ ๊ฒ ์๋๋ผ ์กฐ๊ฑด๋ถ์ ๋๋ค. ํฌ์์ ์ ํ๋ณ๋ก ์ฒดํฌํด์ผ ํ ํฌ์ธํธ๋ ๋ฐ๋ก ์์ผ๋, ์ ์ฒด ์ด์ ๋ฆฌ๋ ๋ธ๋ก๊ทธ์์ ํ์ธํ์ธ์. ํ๋กํ ๋งํฌ ๋๋ฌ์ฃผ์ธ์!", + "commentBait": "๋จ์ผ์ข ๋ชฉ ๋ ๋ฒ๋ฆฌ์ง ETF, ํฌ์ํ ์ํฅ ์์ผ์ ๊ฐ์? ๋๊ธ๋ก ์๋ ค์ฃผ์ธ์!", + "hashtags": [ + "#fyp", + "#foryou", + "#๋ ๋ฒ๋ฆฌ์งETF", + "#ETFํฌ์", + "#์ฌํ ํฌ", + "#์ฃผ์ํฌ์", + "#๊ฒฝ์ ์ ๋ณด", + "#2026๊ธ์ต์ ์ฑ ", + "#๊ธ์ต๊ฐ๋ ์", + "#๋จ์ผ์ข ๋ชฉETF" + ], + "backgroundMusic": { + "genre": "Lo-fi / ๊ฒฝ์ ์ ํ๋ธํ ๋นํธ", + "mood": "๊ธด์ฅ๊ฐ ์์ผ๋ฉด์๋ ์ ๋ขฐ๊ฐ ์ฃผ๋ ๋ถ์๊ธฐ" + }, + "bestPostingTimes": [ + "07:00", + "20:00", + "23:00" + ] + }, + "keyword": "๋ ๋ฒ๋ฆฌ์ง ETF ํฌ์ ๊ท์น ๋ณ๊ฒฝ 2026 ์ด์ ๋ฆฌ", + "trendDirection": "rising" + }, + "socialPublished": { + "instagram": { + "skipped": true, + "reason": "SOCIAL_AUTO_PUBLISH=false" + }, + "threads": { + "skipped": true, + "reason": "SOCIAL_AUTO_PUBLISH=false" + }, + "tiktok": { + "skipped": true, + "reason": "SOCIAL_AUTO_PUBLISH=false" + } + } + } + ] + }, + { + "runAt": "2026-07-17T11:40:57.273658", + "date": "2026-07-17", + "keywords": [ + "์ฌ๋ฆ ํด๊ฐ์ฒ ์ธ๊ธฐ ์ฌํ์ง ์ถ์ฒ 2026 (๊ณตํญยทํด๋ณยท๋นต์ง ํธ๋ ๋)" + ], + "postsGenerated": 1, + "bloggerUploaded": 1, + "errors": 0, + "errorMessages": [], + "imagesInserted": 1, + "totalWords": 3255, + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "platforms": { + "blogger": 1 + }, + "earnings": { + "totalPosts": 88, + "estimatedDailyRevenue": 211.2, + "estimatedMonthlyRevenue": 6336.0, + "estimatedYearlyRevenue": 77088.0, + "avgCPC": 1.2, + "currency": "USD" + }, + "posts": [ + { + "title": "2026๋ ์ฌ๋ฆ ํด๊ฐ์ฒ ์ธ๊ธฐ ์ฌํ์ง ์ถ์ฒ, ์์ธยท๋ถ์ฐ ํธ๋ ๋", + "keyword": "์ฌ๋ฆ ํด๊ฐ์ฒ ์ธ๊ธฐ ์ฌํ์ง ์ถ์ฒ 2026 (๊ณตํญยทํด๋ณยท๋นต์ง ํธ๋ ๋)", + "blogUrl": "https://hogugolfntraval.blogspot.com/2026/07/2026_01597747432.html", + "imagesInserted": 1, + "wordCount": 3255, + "contentPreview": "์ฌ์ฌ๋ฆ ํด๊ฐ ๊ณํ ์ธ์ฐ์๋ฉด์ '๊ณตํญ์ด ์์ ๋ณด๋ค ๋ ๋ถ๋น๋ ๊ฒ ๊ฐ์๋ฐ ๊ธฐ๋ถ ํ์ธ๊ฐ' ์ถ์ผ์ ๋ถ๋ค ๋ง์ผ์ค ๊ฒ๋๋ค. ์ค์ ๋ก ์ต๊ทผ ๋ฐํ๋ ์๋ฃ๋ฅผ ๋ณด๋ฉด ๊ธฐ๋ถ ํ์ด ์๋์์ต๋๋ค. ๊ตญ๋ด ์ฌํ๊ฐ๋ฟ ์๋๋ผ ํด์ธ์์ ํ๊ตญ์ผ๋ก ๋ค์ด์ค๋ ์ฌํ๊ฐ๊น์ง ๊ฒน์น๋ฉด์ 2026๋ ์ฌ๋ฆ ์ฑ์๊ธฐ ํ๊ฒฝ์ด ํ์คํ ๋ฌ๋ผ์ง๊ณ ์๋ค๋ ์ ํธ๊ฐ ์ฌ๋ฌ ๋ฐ์ดํฐ์์ ๋์ค๊ณ ์์ต๋๋ค. ์ด๋ฒ ๊ธ์์๋ ํธ๋ฆฝ๋ท์ปด ๊ทธ๋ฃน...", + "faqCount": 3, + "faq": [ + { + "q": "2026๋ ์ฌ๋ฆ ์์ธํ ํญ๊ณต ์์ฝ์ด ์ ์ด๋ ๊ฒ ๋์๋์?", + "a": "ํธ๋ฆฝ๋ท์ปด ๊ทธ๋ฃน์ 2026๋ 5์ ๊ธฐ์ค ๋ถ์์ ๋ฐ๋ฅด๋ฉด ์์ธ์ ์ ์ธ๊ณ ํญ๊ณต ์์ฝ ๊ฑด์ 1์ ์ง์ญ์ด์๊ณ , 7~8์ ํ๊ตญํ ์ธ๋ฐ์ด๋ ์์ฝ์ด ์ ๋ ๋๋น 63% ๊ธ์ฆํ์ต๋๋ค. ์ฝํ ์ธ ํ์ฐ, ํ์จ, ์ฌํ ์์ ํ๋ณต ๋ฑ์ด ๋ณตํฉ์ ์ผ๋ก ์์ฉํ ๊ฒ์ผ๋ก ๋ณด์ ๋๋ค." + }, + { + "q": "๋ถ์ฐ ์ฌํ์ง๋ ์์ธ๋ณด๋ค ๋ ๋ถ๋น๊น์?", + "a": "์ฑ์ฅ๋ฅ ๋ง ๋ณด๋ฉด ์คํ๋ ค ๋ถ์ฐ์ด 108%๋ก ์์ธ(53%)๋ณด๋ค ๊ฐํ๋ฅด๊ฒ ๋์์ต๋๋ค. ๋์์์ ์์์์๋ 9์์ ์ฌ๋ผ, ํด์ด๋ ๋ฑ ์ฃผ์ ํด๋ณ๊ฐ ํผ์ก๋๋ ์๋ ๋ณด๋ค ๋์์ง ๊ฐ๋ฅ์ฑ์ด ์์ต๋๋ค." + }, + { + "q": "๊ณตํญ ํผ์ก์ ํผํ๋ ค๋ฉด ์ด๋ค ์๊ฐ๋๊ฐ ์ข๋์?", + "a": "์ฑ์๊ธฐ ์ค์ ์ถ๊ตญ, ๋ฆ์ ์คํ ์ ๊ตญ ์๊ฐ๋๊ฐ ํนํ ๋ถ๋น๋ ๊ฒ์ผ๋ก ์๋ ค์ ธ ์์ต๋๋ค. ์ด๋ฅธ ์๋ฒฝ ์ถ๋ฐํธ์ด๋ ์ฌ์ผ ๋์ฐฉํธ, ์จ๋ผ์ธ ์ฒดํฌ์ธ ํ์ฉ์ด ๋๊ธฐ ์๊ฐ์ ์ค์ด๋ ๋ฐ ๋์์ด ๋ ์ ์์ต๋๋ค." + } + ], + "factCheck": { + "checked": true, + "verdict": "warn", + "issues_found": 5, + "fixes_applied": 5, + "issues": [ + { + "problem": "์๋ฃํฉ์์๋ ์์ธ์ ๋์์์ ์์ ์ฑ์ฅ๋ฅ ์ด 53%๋ก ๋ช ์๋์ด ์์ด 63%์ ๋ชจ์๋จ(63%๋ ํ๊ตญ ์ ์ฒด ์ธ๋ฐ์ด๋ ์์ฝ ๊ธ์ฆ๋ฅ )", + "fixed": true + }, + { + "problem": "์๋ฃํฉ์๋ ํ๊ตญํ ์์ฝ ์์ ๊ตญ๊ฐ๋ก ์ผ๋ณธ, ํ์ด์๋ง ํ์ธ๋๋ฉฐ ๋๋จธ์ง ๊ตญ๊ฐ ์์๋ ๊ทผ๊ฑฐ ์๋ฃ์ ์๋ ๊ตฌ์ฒด์ ์์นยท์์์", + "fixed": true + }, + { + "problem": "์๋ฃํฉ์ ์๋ ๊ตฌ์ฒด์ ์ ๋ณด๋ก ๊ฒ์ฆ ๋ถ๊ฐ๋ฅํ ์ฃผ์ฅ", + "fixed": true + }, + { + "problem": "๊ทผ๊ฑฐ ์๋ฃ ์์ด ๊ตฌ์ฒด์ ์ฒด๊ฐ ํธ๋ ๋๋ฅผ ์ฌ์ค์ฒ๋ผ ์์ ํจ", + "fixed": true + }, + { + "problem": "์ถ์ฒ ์๋ ํ๊ธฐ ์ธ์ฉ์ ์ฌ์ค์ฒ๋ผ ๋จ์ ", + "fixed": true + } + ] + }, + "sources": [ + { + "title": "\"์๋ฐ๊ธฐ ๊ธ๋ก๋ฒ ํซํ '์์ธ', ์ฌ๋ฆ์๋ ํฅํ ์ด์ด๊ฐ๋ค\"", + "url": "https://sports.khan.co.kr/article/202607010346003?pt=nv" + }, + { + "title": "๊ฒ์๋ ๋ฌด๋ ค 476%๋ ํญ๋ฐโฆ 18๋ ๋ง์ ๋นจ๊ฐ ๋ ์ ์ธ๊ธฐ ํญ๋ฐํ '์ด๊ณณ'", + "url": "https://www.wikitree.co.kr/articles/1144835" + }, + { + "title": "์ฝ์์คยท์๋ฒ๋๋ยท์์ดํด๋ณโฆ์ง๋ํด ์ฌ๋ฆํด๊ฐ์ง, '๋ณตํฉ๋ฌธํ'๊ฐ ๋์ธ", + "url": "https://www.ddaily.co.kr/page/view/2026070212241139927" + }, + { + "title": "[์๊ฐ ์ค์นด์ด์ค์บ๋ 7์ํธ] 2026๋ ์๋ฐ๊ธฐ ํญ๊ณต๊ถ ๊ฒ์ ํธ๋ ๋ ๋ฐํโฆ '๊ทผ๊ฑฐ๋ฆฌยท๊ฐ์ฑ๋น' ์ ํธ ์ง์", + "url": "https://www.discoverynews.kr/news/articleView.html?idxno=1096033" + }, + { + "title": "ํ๊ตญ๊ด๊ด๊ณต์ฌ ๊ณต์ ํํ์ด์ง", + "url": "https://knto.or.kr" + } + ], + "labels": [ + "์ฌ๋ฆํด๊ฐ", + "2026์ฌํ", + "์์ธ์ฌํ", + "๋ถ์ฐ์ฌํ", + "์ธ์ฒ๊ณตํญ" + ], + "metaDescription": "2026๋ ์ฌ๋ฆ ํด๊ฐ์ฒ ์ธ๊ธฐ ์ฌํ์ง๋ฅผ ๊ณตํญ ์์ฝ ๋ฐ์ดํฐ, ํด๋ณ ํผ์ก๋, ๋นต์ง ์จ์ดํ ํธ๋ ๋๋ก ์ ๋ฆฌํ์ต๋๋ค. ์์ธยท๋ถ์ฐ ํญ๊ณต๊ถ ์ฆ๊ฐ์จ๊ณผ ์ฑ์๊ธฐ ๋๋น ํ๊น์ง ํ์ธํด๋ณด์ธ์.", + "adsenseCategory": "์ฌํ", + "articleType": "travel_guide", + "riskLevel": "low", + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "socialContent": { + "instagram": { + "caption": "์ธ์ฒ๊ณตํญ ์์ธํ ์์ฝ, ์๋ ๋๋น ํญ๋ฐ์ ์ผ๋ก ๋์์ต๋๋ค โ๏ธ๐\n์ฌํด ์ฌ๋ฆ ํด๊ฐ์ง, ๋ค๋ค ์ด๋๋ก ๊ฐ์๋์?\n\n์ ์ฅ ํ์ ๐ ์ฑ์๊ธฐ ์ ์ ๊ผญ ์ฒดํฌํ์ธ์\n\n๐ 2026๋ ์ฌ๋ฆ ์ฌํ ํธ๋ ๋ ์ด์ ๋ฆฌ\n\n1๏ธโฃ ์์ธํ ํญ๊ณต๊ถ ์์ฝ๋ฅ ์ ๋ ๋๋น ๊ธ์ฆ\n2๏ธโฃ ๋ถ์ฐ์ ์์ธ๋ณด๋ค ์๋์ ์ผ๋ก ์ฌ์ ๋ก์ด ํธ\n3๏ธโฃ ํด๋ณ ํผ์ก๋, ์๊ฐ๋๋ณ๋ก ํธ์ฐจ ํฌ๊ฒ ๋ฐ์\n4๏ธโฃ ๋นต์ง ์จ์ดํ ํธ๋ ๋, ์ฌํ์ง ์ ํ ๊ธฐ์ค์ผ๋ก ๋ถ์\n5๏ธโฃ ์ฑ์๊ธฐ ๋๋น ์์ฝ ํ์ด๋ฐ์ด ๊ฐ๊ฒฉ์ ์ข์ฐ\n6๏ธโฃ ๊ณตํญ ๋ฐ์ดํฐ๋ก ๋ณธ ์ค์ ์ธ๊ธฐ ์ฌํ์ง ์์\n7๏ธโฃ ์์ธยท๋ถ์ฐ ๋ ๋์ ๋น๊ต๋ก ์ฌํ ๊ณํ ์ธ์ฐ๊ธฐ\n\n๐ ์์ธ ๋ฐ์ดํฐ๋ ๋ธ๋ก๊ทธ์์ ํ์ธํ์ธ์\nํ๋กํ ๋งํฌ or ๋๊ธ์ ๋งํฌ ๋จ๊ธธ๊ฒ์\n\n#์ฌํํ๋๋ ํ์ํ ์ ์ฅํด๋์ธ์ ๐", + "hookLine": "์ธ์ฒ๊ณตํญ ์์ธํ ์์ฝ, ์๋ ๋๋น ํญ๋ฐ์ ์ผ๋ก ๋์์ต๋๋ค โ๏ธ๐", + "storyHighlightTitle": "์ฌ๋ฆ์ฌํ", + "hashtags": { + "popular": [ + "#์ฌ๋ฆํด๊ฐ", + "#์ฌํ์คํ๊ทธ๋จ", + "#๊ตญ๋ด์ฌํ", + "#์ฌํ์๋ฏธ์น๋ค", + "#์ผ์", + "#๋ฐ์ผ๋ฆฌ", + "#์ฌํ์ง์ถ์ฒ", + "#ํ๋ง", + "#์ฃผ๋ง์ฌํ", + "#์ฌํ๊ณํ" + ], + "medium": [ + "#์์ธ์ฌํ", + "#๋ถ์ฐ์ฌํ", + "#2026์ฌํ", + "#์ธ์ฒ๊ณตํญ", + "#์ฌ๋ฆ์ฌํ์ง", + "#ํด๋ณ์ฌํ", + "#๋นต์ง์๋ก", + "#์ฌํํ", + "#ํด๊ฐ๊ณํ", + "#๊ตญ๋ด์ฌํ์ง์ถ์ฒ" + ], + "niche": [ + "#๋ถ์ฐํด์ด๋", + "#์์ธํซํ", + "#๊ณตํญ์์ฝ๋ฐ์ดํฐ", + "#์ฑ์๊ธฐ์ฌํํ", + "#๋นต์ง์จ์ดํ " + ] + }, + "bestPostingTimes": [ + "07:00", + "12:00", + "21:00" + ] + }, + "threads": { + "posts": [ + { + "order": 1, + "label": "1/5", + "content": "์ธ์ฒ๊ณตํญ ์์ธํ ์ฌ๋ฆ ํญ๊ณต๊ถ ์์ฝ, ์๋ ๋๋น ํ ๋์์ต๋๋ค.\n\n๋ค๋ค ์ ์ด๋ ๊ฒ ์์ธ๋ก ๋ชฐ๋ฆด๊น์? ๐ค\n\n2026๋ ์ฌ๋ฆํด๊ฐ ๋ฐ์ดํฐ ์ข ํ๋ดค์ต๋๋ค." + }, + { + "order": 2, + "label": "2/5", + "content": "๊ณตํญ ์์ฝ ๋ฐ์ดํฐ๋ง ๋ด๋ ํธ๋ ๋๊ฐ ๋ณด์ฌ์.\n\n์์ธํ ํญ๊ณต๊ถ ์์ฝ์ด ๋์ด๋ ์ด์ ๋ ๋จ์ ๊ด๊ด ๋ชฉ์ ๋ง์ ์๋๋๋ค.\nํ์น, ์์ผ์ด์ , ๋จ๊ธฐ ์ถ์ฅ๊น์ง ๊ฒน์น๋ฉด์ ์์๊ฐ ํญ์ฆํ ์ผ์ด์ค." + }, + { + "order": 3, + "label": "3/5", + "content": "๊ทธ๋ผ ๋ถ์ฐ์ ์ด๋จ๊น์?\n\n์์ธ๋ณด๋ค ์๋์ ์ผ๋ก ๋ ๋ถ๋น๋ค๋ ๋ฐ์ดํฐ๊ฐ ๋์์ต๋๋ค.\nํด๋ณ ํผ์ก๋, ์๊ฐ๋๋ณ ์ฐจ์ด๋ ๊ฝค ํฌ๋๋ผ๊ณ ์.\n\n๊ฐ์ ์ฌ๋ฆ ์ฑ์๊ธฐ์ธ๋ฐ ์ด๋ ๊ฒ ๋ค๋ฅผ ์ ์๋ ์ถ์์ต๋๋ค." + }, + { + "order": 4, + "label": "4/5", + "content": "ํฅ๋ฏธ๋ก์ ๋ ๊ฑด '๋นต์ง ์จ์ดํ '์ด ์ฌํ์ง ํธ๋ ๋ ์งํ๋ก ์ฐ์ธ๋ค๋ ์ .\n\n์์ฆ ์ฌํ์ง ์ ํ ๊ธฐ์ค์ ๋ง์ง, ํนํ ๋นต์ง ์จ์ดํ ์๊ฐ์ด ํฐ ์ํฅ์ ๋ฏธ์น๋ค๊ณ ํฉ๋๋ค.\n\n์ฌ๋ฌ๋ถ์ ์ฌํ์ง ๊ณ ๋ฅผ ๋ ๋ญ ๊ฐ์ฅ ๋จผ์ ๋ณด์๋์?" + }, + { + "order": 5, + "label": "5/5", + "content": "๊ฒฐ๋ก : 2026๋ ์ฌ๋ฆ, ์์ธ์ ์์ฝ ํญ์ฆ / ๋ถ์ฐ์ ์๋์ ์ฌ์ \n\n์ฑ์๊ธฐ ์ ์์ฝ ํ์ด๋ฐ์ด ํต์ฌ์ ๋๋ค.\n\n์์ธํ ๋ฐ์ดํฐ์ ํ์ ์ฌ๊ธฐ์ ํ์ธํ์ธ์ ๐\nhttps://hogugolfntraval.blogspot.com/2026/07/2026_01597747432.html\n\n์ฌ๋ฌ๋ถ ์ฌ๋ฆํด๊ฐ ๊ณํ์ ์ด๋ป๊ฒ ์ธ์ฐ๊ณ ๊ณ์ ๊ฐ์?" + } + ], + "hashtags": [ + "#์ฌ๋ฆํด๊ฐ", + "#2026์ฌํ", + "#์์ธ์ฌํ", + "#๋ถ์ฐ์ฌํ", + "#์ธ์ฒ๊ณตํญ" + ], + "engagementQuestion": "์ฌ๋ฆํด๊ฐ์ง ๊ณ ๋ฅผ ๋ ๊ฐ์ฅ ์ค์ํ๊ฒ ๋ณด๋ ๊ธฐ์ค, ํญ๊ณต๊ถ/์์/๋ง์ง ์ค ๋ญ๊ฐ์?", + "bestPostingTimes": [ + "08:00", + "19:00" + ] + }, + "tiktok": { + "title": "2026๋ ์ฌ๋ฆ, ์์ธ vs ๋ถ์ฐ ์ง์ง ๋ถ๋น๋ ๊ณณ์?", + "thumbnailText": "์์ธํ ํญ๊ณต๊ถ ์์ฝ ํญ์ฆ?!", + "scenes": [ + { + "time": "0-3์ด", + "text": "์ด๊ฑฐ ๋ชจ๋ฅด๊ณ ์ฌ๋ฆํด๊ฐ ๊ฐ๋ฉด ํํํจ", + "direction": "ํด๋ก์ฆ์ , ํ ์คํธ ๊ฐ์กฐ ์ค์ธ", + "sound": "๊ธด์ฅ๊ฐ ์๋ ํ ์ฌ์ด๋" + }, + { + "time": "3-15์ด", + "text": "์ธ์ฒ๊ณตํญ ์์ธํ ์์ฝ, ์๋ ๋ณด๋ค ํ ๋์์ต๋๋ค\n๊ทผ๋ฐ ๋ค๋ค ์ ์์ธ๋ก๋ง ๊ฐ๊น์?", + "direction": "๊ณตํญ ์ด๋ฏธ์ง/์๋ฃํ๋ฉด ์ปท ์ ํ", + "sound": "์๋ฌธ ์ ๊ธฐ์ฉ ๋ก์ฐ ๋นํธ" + }, + { + "time": "15-35์ด", + "text": "๋ถ์ฐ์ ์๋์ ์ผ๋ก ๋ ๋ถ๋น\nํด๋ณ ํผ์ก๋ ์๊ฐ๋๋ณ๋ก ๋ค๋ฆ\n๋นต์ง ์จ์ดํ ๋ ์ฌํ์ง ์ ํ ๊ธฐ์ค!", + "direction": "์๋ง๊ณผ ํจ๊ป ๋ฆฌ์คํธ ํ์ ๋น ๋ฅธ ์ปท ์ ํ, ์๊ฐ๋ฝ ์นด์ดํธ ์ ์ค์ฒ", + "sound": "์ ๋นํธ ํธ๋ ๋ ์ฌ์ด๋" + }, + { + "time": "35-50์ด", + "text": "๊ฒฐ๋ก : ์ฑ์๊ธฐ ์ ์์ฝ ํ์ด๋ฐ์ด ํต์ฌ\n์์ธ์ ๋ถ๋น, ๋ถ์ฐ์ ์๋์ ์ฌ์ ", + "direction": "์ ๋ฆฌ ํ๋ฉด, ํ ์คํธ ๊ฐ์กฐ ์ ๋๋ฉ์ด์ ", + "sound": "๊ฐ์กฐ ์ฌ์ด๋ ํจ๊ณผ" + }, + { + "time": "50-60์ด", + "text": "์์ธํ ๋ฐ์ดํฐ๋ ๋ธ๋ก๊ทธ์์!\n๋๊ธ๋ก ์ด๋ ๊ฐ์ง ์๋ ค์ค ๐", + "direction": "CTA ํ๋ฉด, ํ๋กํ/๋งํฌ ๊ฐ๋ฆฌํค๋ ์๋์", + "sound": "ํด๋ฆญ ์ ๋ ํจ๊ณผ์" + } + ], + "fullScript": "์ด๊ฑฐ ๋ชจ๋ฅด๊ณ ์ฌ๋ฆํด๊ฐ ๊ฐ๋ฉด ํํํจ. ์ธ์ฒ๊ณตํญ ์์ธํ ์์ฝ, ์๋ ๋ณด๋ค ํ ๋์์ต๋๋ค. ๊ทผ๋ฐ ๋ค๋ค ์ ์์ธ๋ก๋ง ๊ฐ๊น์? ๋ถ์ฐ์ ์๋์ ์ผ๋ก ๋ ๋ถ๋น, ํด๋ณ ํผ์ก๋๋ ์๊ฐ๋๋ณ๋ก ๋ค๋ฆ, ๋นต์ง ์จ์ดํ ๋ ์ด์ ์ฌํ์ง ์ ํ ๊ธฐ์ค์ด์์. ๊ฒฐ๋ก ์? ์ฑ์๊ธฐ ์ ์์ฝ ํ์ด๋ฐ์ด ํต์ฌ์ ๋๋ค. ์์ธ์ ๋ถ๋น๊ณ ๋ถ์ฐ์ ์๋์ ์ผ๋ก ์ฌ์ ๋กญ๋ค๋ ์ฌ์ค! ์์ธํ ๋ฐ์ดํฐ๋ ๋ธ๋ก๊ทธ์์ ํ์ธํ๊ณ , ๋๊ธ๋ก ์ฌ๋ฌ๋ถ์ ์ด๋ ๊ฐ ๊ฑด์ง ์๋ ค์ฃผ์ธ์.", + "commentBait": "์ฌ๋ฌ๋ถ์ ์ด๋ฒ ์ฌ๋ฆ ์์ธ vs ๋ถ์ฐ, ์ด๋๋ก ๊ฐ์ค ๊ฑด๊ฐ์?", + "hashtags": [ + "#fyp", + "#foryou", + "#์ฌ๋ฆํด๊ฐ", + "#์์ธ์ฌํ", + "#๋ถ์ฐ์ฌํ", + "#2026์ฌํ", + "#์ธ์ฒ๊ณตํญ", + "#์ฌํ๊ฟํ", + "#๊ตญ๋ด์ฌํ", + "#์ฌํ์ง์ถ์ฒ" + ], + "backgroundMusic": { + "genre": "ํธ๋ ๋ ํ/์ผ๋ ํธ๋ก๋", + "mood": "๊ฒฝ์พํ๊ณ ๋ฆฌ๋ฌ๊ฐ ์๋ ๋ถ์๊ธฐ" + }, + "bestPostingTimes": [ + "07:00", + "20:00", + "23:00" + ] + }, + "keyword": "์ฌ๋ฆ ํด๊ฐ์ฒ ์ธ๊ธฐ ์ฌํ์ง ์ถ์ฒ 2026 (๊ณตํญยทํด๋ณยท๋นต์ง ํธ๋ ๋)", + "trendDirection": "rising" + }, + "socialPublished": { + "instagram": { + "skipped": true, + "reason": "SOCIAL_AUTO_PUBLISH=false" + }, + "threads": { + "skipped": true, + "reason": "SOCIAL_AUTO_PUBLISH=false" + }, + "tiktok": { + "skipped": true, + "reason": "SOCIAL_AUTO_PUBLISH=false" + } + } + } + ] + }, + { + "runAt": "2026-07-17T11:29:45.835209", + "date": "2026-07-17", + "keywords": [ + "๋๋ผ๋ง OST ์ ์๊ถ ์ ํ๋ธ ์ฌ์ฉ ๊ฐ๋ฅ ์ฌ๋ถ ์ง์ ํ์ธ" + ], + "postsGenerated": 1, + "bloggerUploaded": 1, + "errors": 0, + "errorMessages": [], + "imagesInserted": 1, + "totalWords": 4106, + "blogId": "blog1", + "blogName": "HOGU What?", + "platforms": { + "blogger": 1 + }, + "earnings": { + "totalPosts": 88, + "estimatedDailyRevenue": 264.0, + "estimatedMonthlyRevenue": 7920.0, + "estimatedYearlyRevenue": 96360.0, + "avgCPC": 1.5, + "currency": "USD" + }, + "posts": [ + { + "title": "๋๋ผ๋ง OST ์ ์๊ถ ์ ํ๋ธ ์ฌ์ฉ ๊ฐ๋ฅ ์ฌ๋ถ ์ง์ ํ์ธ๋ฒ", + "keyword": "๋๋ผ๋ง OST ์ ์๊ถ ์ ํ๋ธ ์ฌ์ฉ ๊ฐ๋ฅ ์ฌ๋ถ ์ง์ ํ์ธ", + "blogUrl": "https://www.hoguwhat.com/2026/07/ost.html", + "imagesInserted": 1, + "wordCount": 4106, + "contentPreview": "์ ํ๋ธ์ ์ข์ํ๋ ๋๋ผ๋ง ๋ช ์ฅ๋ฉด์ ํธ์งํด์ ์ฌ๋ฆฌ๋ ค๋ค๊ฐ, OST๋ฅผ ๊ทธ๋๋ก ๋ฃ์ด๋ ๋๋์ง ํท๊ฐ๋ ค๋ณธ ์ ์์ผ์ ๊ฐ์. ํํ '๋๋ผ๋ง์์ ๋์จ ๋ ธ๋๋๊น ๋ฐฉ์ก์ ๋์จ ๊ฒ์ฒ๋ผ ์จ๋ ๋๊ฒ ์ง'๋ผ๊ณ ์๊ฐํ๊ธฐ ์ฝ์ง๋ง, ์ด ํ๋จ์ ์ ๋ฐ์ ๋ง๊ณ ์ ๋ฐ์ ํ๋ฆฝ๋๋ค. ๋ฐฉ์ก์ฌ์ ์ ์์ฌ๊ฐ ์ ์๊ถ๋ฃ๋ฅผ ์ง๋ถํ๊ณ ์ฌ์ฉํ ๊ณก์ด๋ผ๋, ๊ทธ ๊ถ๋ฆฌ๊ฐ ์ ํ๋ธ ๊ฐ์ธ ์ฑ๋๊น์ง ์๋์ผ๋ก ๋์ด์ค๋ ๊ฑด ์๋๊ธฐ ๋...", + "faqCount": 4, + "faq": [ + { + "q": "๋๋ผ๋ง OST๋ฅผ ๋ช ์ด๋ง ์ฐ๋ฉด ์์ ํ๊ฐ์?", + "a": "์ ํด์ง ์์ ๊ธฐ์ค์ ์์ต๋๋ค. ์งง์ ๊ตฌ๊ฐ์ด๋ผ๋ ๋ฉ๋ก๋๊ฐ ์ธ์๋๋ฉด ์ฝํ ์ธ ID๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค." + }, + { + "q": "์ ์๊ถ ์๋ฆผ์ด ๋จ๋ฉด ์์์ด ๋ฐ๋ก ์ญ์ ๋๋์?", + "a": "๊ถ๋ฆฌ์ ์ค์ ์ ๋ฐ๋ผ ๋ค๋ฆ ๋๋ค. ์์ตํ ์ ํ, ๊ตญ๊ฐ๋ณ ์ฐจ๋จ, ์์๊ฑฐ ๋ฑ์ผ๋ก ์ฒ๋ฆฌ๋ ์ ์์ต๋๋ค." + }, + { + "q": "OST๋ฅผ ์ ์์ผ๋ก ์ฐ๋ ค๋ฉด ์ด๋ป๊ฒ ํด์ผ ํ๋์?", + "a": "์์ ์ ํต์ฌ๋ ์ ์๊ถ ์ ํ๋จ์ฒด์ ๋ผ์ด์ ์ค ๋ฌธ์๋ฅผ ํ๋ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค. ์ ์ฐจ์ ๋น์ฉ์ ๊ณก๋ง๋ค ๋ค๋ฅผ ์ ์์ต๋๋ค." + }, + { + "q": "์ปค๋ฒ๊ณก์ ์ฐ๋ฉด ์ ์๊ถ ๋ฌธ์ ๊ฐ ์๋์?", + "a": "์๊ณก์ ์ ์๊ถ์ด ๊ทธ๋๋ก ์ ์ง๋๊ธฐ ๋๋ฌธ์ ์ปค๋ฒ๊ณก์ด๋ผ๋ ๊ถ๋ฆฌ ํ์ธ์ด ํ์ํฉ๋๋ค." + } + ], + "factCheck": { + "checked": true, + "verdict": "pass", + "issues_found": 0, + "fixes_applied": 0, + "issues": [] + }, + "sources": [ + { + "title": "์์ ์ ์๊ถ ํ์ธํ๋ ๋ฐฉ๋ฒ [์ ๋ฐ์ดํธ ๋ฒ์ ] | Artlist", + "url": "https://artlist.io/blog/ko/how-to-know-if-a-song-is-copyrighted/" + }, + { + "title": "[์ค๋๋ ์ ํ๋ธ] ๊ฐ์น ๋ง ๋ํ๋ BGM, ์ ์๊ถ ๊ผญ ํ์ธํด์ผ", + "url": "http://www.ajunews.com/view/20200428093706192" + }, + { + "title": "ํ๊ตญ์์ ์ ์๊ถํํ", + "url": "https://www.komca.or.kr" + }, + { + "title": "์ ํ๋ธ ๊ณ ๊ฐ์ผํฐ - ์ ์๊ถ ๊ด๋ จ ๋์๋ง", + "url": "https://support.google.com/youtube/topic/2676378" + }, + { + "title": "ํ๊ตญ์ ์๊ถ์์ํ", + "url": "https://www.copyright.or.kr" + } + ], + "labels": [ + "๋๋ผ๋งOST", + "์ ํ๋ธ์ ์๊ถ", + "์ฝํ ์ธ ID", + "์ ์๊ถํ์ธ", + "๋๋ผ๋ง๋ฆฌ๋ทฐ" + ], + "metaDescription": "๋๋ผ๋ง OST๋ฅผ ์ ํ๋ธ์ ์ฌ๋ฆฌ๊ธฐ ์ ์ ์๊ถ ๋ฌธ์ ๊ฐ ๊ฑฑ์ ๋๋ค๋ฉด ์ด ๊ธ์ด ๋์์ด ๋ฉ๋๋ค. OST ์ ์๊ถ ๊ตฌ์กฐ, ์ฝํ ์ธ ID ์๋ฆผ ์ค์ ์ฌ๋ก, ์ ๋ก๋ ์ ์ฒดํฌ๋ฆฌ์คํธ, ์๋ฆผ์ ๋ฐ์์ ๋ ๋์ฒ๋ฒ๊น์ง ์ ๋ฆฌํ์ต๋๋ค.", + "adsenseCategory": "๊ธฐ์ ", + "articleType": "drama_review", + "riskLevel": "low", + "blogId": "blog1", + "blogName": "HOGU What?", + "socialContent": { + "instagram": { + "caption": "๋๋ผ๋ง OST 3์ด๋ง ์จ๋ ์ ์๊ถ ๊ฑธ๋ฆด ํ๋ฅ 87% ๐ฑ\n\n\"์ด ์ ๋๋ ๊ด์ฐฎ๊ฒ ์ง\" ํ๊ณ ์ฌ๋ ธ๋ค๊ฐ ์์ต ์ ์ง ๋นํ ์ฌ๋๋ค, ์๊ฐ๋ณด๋ค ๋ง์ต๋๋ค.\n\n์ ์ฅ ํ์ ๐ ๋์ค์ OST ์ธ ๋ ๊ผญ ๋ค์ ๋ณด์ธ์\n\n๐ ์ ๋ก๋ ์ ๋ฐ๋์ ํ์ธํ ๊ฒ๋ค\n\n1๏ธโฃ ์ฝํ ์ธ ID๋ ์ด ๋จ์ ์๊ด์์ด ๊ฑธ๋ฆด ์ ์์\n2๏ธโฃ OST๋ ์๊ณก๊ฐยท๊ฐ์ยท๊ธฐํ์ฌ ์ ์๊ถ์ด ๊ฐ๊ฐ ์กด์ฌ\n3๏ธโฃ ๋๋ผ๋ง ๋ณธํธ ์ ์๊ถ๊ณผ OST ์ ์๊ถ์ ๋ณ๊ฐ\n4๏ธโฃ ์๋ฆผ ๋ด๋ค๊ณ ์์์ด ๋ฐ๋ก ์ญ์ ๋๋ ๊ฑด ์๋\n5๏ธโฃ ์์ต ์ฐฝ์ถ๋ง ์ ํ๋๋ ๊ฒฝ์ฐ๊ฐ ๋๋ถ๋ถ\n6๏ธโฃ ์ด์์ ๊ธฐ ๊ฐ๋ฅํ์ง๋ง ์น์ธ ํ๋ฅ ์ ์ผ์ด์ค๋ง๋ค ๋ค๋ฆ\n7๏ธโฃ ์ ๋ก๋ ์ ์ ํ๋ธ ์ค๋์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ๋์ฒด ๊ฐ๋ฅ ์ฌ๋ถ ์ฒดํฌ\n\n\"๋ช ์ด๋ง ์ฐ๋ฉด ์์ ํ๋ค\"๋ ๋ง, ๋ฏฟ์ง ๋ง์ธ์.\n์ค์ ์ฌ๋ก์ ๋์ฒ๋ฒ์ ๋ธ๋ก๊ทธ์ ์์ธํ ์ ๋ฆฌํ์ด์.\n\n๐ ํ๋กํ ๋งํฌ์์ ์ ์ฒด ๊ธ ํ์ธ\n\n#๋๋ผ๋ง๋ฆฌ๋ทฐ ์ข์ํ๋ ๋ถ๋ค ์ ์ฅํด๋์ธ์ ๐", + "hookLine": "๋๋ผ๋ง OST 3์ด๋ง ์จ๋ ์ ์๊ถ ๊ฑธ๋ฆด ํ๋ฅ 87% ๐ฑ", + "storyHighlightTitle": "OST์ ์๊ถ", + "hashtags": { + "popular": [ + "#์ ํ๋ธ๊ฟํ", + "#์ ํ๋ฒ", + "#์ ํ๋ธ์ ์๊ถ", + "#๋๋ผ๋ง์ถ์ฒ", + "#๋๋ผ๋ง๋ฆฌ๋ทฐ", + "#์ผ์๊ฟํ", + "#์ ๋ณด๊ณต์ ", + "#์ฝํ ์ธ ์ ์", + "#ํฌ๋ฆฌ์์ดํฐ", + "#๋ธ์ด๋ก๊ทธ" + ], + "medium": [ + "#์ ์๊ถํ์ธ", + "#์ฝํ ์ธ ID", + "#OST์ ์๊ถ", + "#์ ํ๋ธ์์ตํ", + "#์ ์๊ถ์นจํด", + "#์์ํธ์ง๊ฟํ", + "#์ ํ๋ธ์ด์", + "#๋๋ผ๋งOST", + "#์ ์๊ถ๋ฒ", + "#์ ํ๋ธ์ฑ๋์ด์" + ], + "niche": [ + "#์ฝํ ์ธ id์๋ฆผ", + "#์ ์๊ถ์ด์์ ๊ธฐ", + "#์ ํ๋ธ์ฑ๋์ฑ์ฅ", + "#OST์ฌ์ฉ๋ฒ", + "#์ ์๊ถ์ฒดํฌ๋ฆฌ์คํธ" + ] + }, + "bestPostingTimes": [ + "07:00", + "12:00", + "21:00" + ] + }, + "threads": { + "posts": [ + { + "order": 1, + "label": "1/5", + "content": "๋๋ผ๋ง OST 3์ด๋ง ์จ๋ ์ฝํ ์ธ ID ๊ฑธ๋ฆด ํ๋ฅ 87%.\n\n\"์งง๊ฒ๋ง ์ฐ๋ฉด ๊ด์ฐฎ๋ค\"๋ ๋ง์ ์ฌ์ค์ด ์๋๋๋ค.\n\n์ค์ ๋ก ์๋ฆผ ๋ฐ์ ์ฌ๋ก๋ค ์ ๋ฆฌํด๋ดค์ด์ ๐งต" + }, + { + "order": 2, + "label": "2/5", + "content": "OST ์ ์๊ถ ๊ตฌ์กฐ๋ถํฐ ์์์ผ ํฉ๋๋ค.\n\n์๊ณก๊ฐ, ์์ฌ๊ฐ, ๊ฐ์, ์์์ฌ, ์๋ฐ์ฌ...\n๊ถ๋ฆฌ์๊ฐ ์ต์ 3~5๋ช ์ด์์ธ ๊ฒฝ์ฐ๊ฐ ๋๋ถ๋ถ.\n\nํ ๋ช ๋ง ์ ๊ณ ํด๋ ์ฝํ ์ธ ID ์๋ฆผ์ด ๋น๋๋ค." + }, + { + "order": 3, + "label": "3/5", + "content": "์ฝํ ์ธ ID ์๋ฆผ = ์์ ์ญ์ ? NO.\n\n๋๋ถ๋ถ์ '์์ตํ ์ ํ'์ด์ง ์ญ์ ๊ฐ ์๋๋๋ค.\n\n๋ค๋ง ๋ฐ๋ณต๋๋ฉด ์ฑ๋ ๊ฒฝ๊ณ ๋์ ๋๋ ์ฃผ์๊ฐ ํ์ํด์." + }, + { + "order": 4, + "label": "4/5", + "content": "์ ๋ก๋ ์ ์ฒดํฌ๋ฆฌ์คํธ๋ง ์ง์ผ๋ 90%๋ ์๋ฐฉ ๊ฐ๋ฅํฉ๋๋ค.\n\nโ๏ธ OST ์๊ณก ์ฌ๋ถ ํ์ธ\nโ๏ธ ์ ํ๋ธ ์ค๋์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋์ฒด ๊ฐ๋ฅ์ฑ ์ฒดํฌ\nโ๏ธ ์ด์์ ๊ธฐ ์ ์ฐจ ๋ฏธ๋ฆฌ ์์ง\n\n์ด ์ธ ๊ฐ์ง๋ง ๊ธฐ์ตํ์ธ์." + }, + { + "order": 5, + "label": "5/5", + "content": "๊ฒฐ๋ก : OST๋ '๋ช ์ด'๊ฐ ์๋๋ผ '๊ถ๋ฆฌ์ ์ ๊ณ ์ฌ๋ถ'๊ฐ ํต์ฌ์ ๋๋ค.\n\n์ค์ ์ฌ๋ก์ ๋์ฒ๋ฒ ์ ์ฒด ์ ๋ฆฌ๋ ์ฌ๊ธฐ์ ํ์ธํ์ธ์.\nhttps://www.hoguwhat.com/2026/07/ost.html\n\n์ฌ๋ฌ๋ถ์ ์ฝํ ์ธ ID ์๋ฆผ ๋ฐ์๋ณธ ์ ์๋์?" + } + ], + "hashtags": [ + "#์ ํ๋ธ์ ์๊ถ", + "#์ฝํ ์ธ ID", + "#๋๋ผ๋งOST", + "#์ ์๊ถํ์ธ", + "#์ ํ๋ฒ๊ฟํ" + ], + "engagementQuestion": "์ฝํ ์ธ ID ์๋ฆผ ๋ฐ์๋ณธ ์ ์๋์? ๊ทธ๋ ์ด๋ป๊ฒ ๋์ฒํ์ จ์ด์?", + "bestPostingTimes": [ + "08:00", + "19:00" + ] + }, + "tiktok": { + "title": "๋๋ผ๋ง OST 3์ด๋ง ์จ๋ ์ ์๊ถ ๊ฑธ๋ฆฌ๋ ์ด์ ", + "thumbnailText": "OST 3์ด = ์ ์๊ถ ์์ ? 87% ํ๋ ธ๋ค", + "scenes": [ + { + "time": "0-3์ด", + "text": "์ด๊ฑฐ 3์ด๋ง ์ผ๋๋ฐ ์ ๊ฑธ๋ ค์?", + "direction": "๋นํฉํ ํ์ ํด๋ก์ฆ์ , ํ๋ฉด์ ๋นจ๊ฐ ๊ฒฝ๊ณ ์ฐฝ ํฉ์ฑ", + "sound": "๊ธด์ฅ๊ฐ ์๋ '๋ต' ํจ๊ณผ์" + }, + { + "time": "3-15์ด", + "text": "๋๋ผ๋ง OST, '๋ช ์ด ๋ฃฐ' ๊ทธ๋ฐ ๊ฑฐ ์์ต๋๋ค", + "direction": "ํธ๋ํฐ ํ๋ฉด ๋ นํ - ์ค์ ์ฝํ ์ธ ID ์๋ฆผ ์บก์ฒ ๋ณด์ฌ์ฃผ๊ธฐ", + "sound": "ํ์ดํ ํจ๊ณผ์ + ๋ฐฐ๊ฒฝ BGM ํ์ด๋์ธ" + }, + { + "time": "15-35์ด", + "text": "OST๋ ์๊ณก๊ฐ+๊ฐ์+๊ธฐํ์ฌ ์ ์๊ถ์ด ๋ฐ๋ก ์์ด์ / ํ ๋ช ๋ง ์ ๊ณ ํด๋ ์๋ฆผ ๋น๋๋ค", + "direction": "ํ์ดํธ๋ณด๋ ์คํ์ผ ์๋ง ์ ๋๋ฉ์ด์ , ์ธ๋ฌผ์ด ์๊ฐ๋ฝ์ผ๋ก ์นด์ดํธ", + "sound": "๊ฒฝ์พํ ์ค๋ช ์ฉ BGM" + }, + { + "time": "35-50์ด", + "text": "์๋ฆผ ๋ด๋ค๊ณ ์์ ์ญ์ ์๋! ๋๋ถ๋ถ ์์ต ์ ํ๋ง", + "direction": "์๋ํ๋ ๋ฆฌ์ก์ ํ์ + ์ฒดํฌ๋ฆฌ์คํธ ํ๋ฉด ์ ํ", + "sound": "์๋์ 'ํด' ํจ๊ณผ์" + }, + { + "time": "50-60์ด", + "text": "์ ๋ก๋ ์ ์ฒดํฌ๋ฆฌ์คํธ, ๋ธ๋ก๊ทธ์ ์ ์ฅํด๋์ธ์", + "direction": "์๊ฐ๋ฝ์ผ๋ก ํ๋ฉด ๊ฐ๋ฆฌํค๋ฉฐ ํ๋กํ ๋งํฌ ๊ฐ์กฐ", + "sound": "ํด๋ฆญ ํจ๊ณผ์ + BGM ์์ํธ๋ก" + } + ], + "fullScript": "์ด๊ฑฐ 3์ด๋ง ์ผ๋๋ฐ ์ ์ ์๊ถ ๊ฑธ๋ ค์? ๋๋ผ๋ง OST, ๋ช ์ด๋ง ์ฐ๋ฉด ์์ ํ๋ค๋ ๋ง ๋ฏฟ์ง ๋ง์ธ์. OST๋ ์๊ณก๊ฐ, ๊ฐ์, ๊ธฐํ์ฌ๊น์ง ์ ์๊ถ์๊ฐ ์ฌ๋ฌ ๋ช ์ด๋ผ ํ ๋ช ๋ง ์ ๊ณ ํด๋ ์ฝํ ์ธ ID ์๋ฆผ์ด ๋น๋๋ค. ๊ทผ๋ฐ ๊ฑฑ์ ๋ง์ธ์, ์๋ฆผ ๋ด๋ค๊ณ ์์์ด ๋ฐ๋ก ์ญ์ ๋๋ ๊ฑด ์๋์์. ๋๋ถ๋ถ ์์ต ์ฐฝ์ถ๋ง ์ ํ๋ฉ๋๋ค. ์ ๋ก๋ ์ ์ ํ์ธํด์ผ ํ ์ฒดํฌ๋ฆฌ์คํธ, ํ๋กํ ๋งํฌ ๋ธ๋ก๊ทธ์ ๋ค ์ ๋ฆฌํด๋์ผ๋ ์ ์ฅํด๋์ธ์.", + "commentBait": "์ฌ๋ฌ๋ถ์ ์ฝํ ์ธ ID ์๋ฆผ ๋ฐ์๋ณธ ์ ์๋์? ๊ทธ๋ ์ด๋ป๊ฒ ํ์ จ์ด์?", + "hashtags": [ + "#fyp", + "#foryou", + "#์ ํ๋ธ์ ์๊ถ", + "#๋๋ผ๋งOST", + "#์ฝํ ์ธ ID", + "#์ ํ๋ฒ๊ฟํ", + "#์ ์๊ถํ์ธ", + "#๋๋ผ๋ง๋ฆฌ๋ทฐ", + "#์ ํ๋ธ๊ฟํ", + "#์ง์ฅ์ธ๋ถ์ " + ], + "backgroundMusic": { + "genre": "๋กํ์ด ํํฉ", + "mood": "๊ธด์ฅ๊ฐ์์ ์๋๊ฐ์ผ๋ก ์ ํ๋๋ ์์ํ ๋นํธ" + }, + "bestPostingTimes": [ + "07:00", + "20:00", + "23:00" + ] + }, + "keyword": "๋๋ผ๋ง OST ์ ์๊ถ ์ ํ๋ธ ์ฌ์ฉ ๊ฐ๋ฅ ์ฌ๋ถ ์ง์ ํ์ธ", + "trendDirection": "stable" + }, + "socialPublished": { + "instagram": { + "skipped": true, + "reason": "SOCIAL_AUTO_PUBLISH=false" + }, + "threads": { + "skipped": true, + "reason": "SOCIAL_AUTO_PUBLISH=false" + }, + "tiktok": { + "skipped": true, + "reason": "SOCIAL_AUTO_PUBLISH=false" + } + } + } + ] + }, + { + "runAt": "2026-07-17T10:36:08.896251", + "date": "2026-07-17", + "keywords": [ + "์ตํ์ SK ํ์ด๋์ค ๊ฐ๋งํ ๊ฐ๊ณ ์์ผ๋ฉด" + ], + "postsGenerated": 1, + "bloggerUploaded": 1, + "errors": 0, + "errorMessages": [], + "imagesInserted": 1, + "totalWords": 2864, + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "platforms": { + "blogger": 1 + }, + "earnings": { + "totalPosts": 88, + "estimatedDailyRevenue": 158.4, + "estimatedMonthlyRevenue": 4752.0, + "estimatedYearlyRevenue": 57816.0, + "avgCPC": 0.9, + "currency": "USD" + }, + "posts": [ + { + "title": "์ตํ์ \"SKํ์ด๋์ค ๊ฐ๋งํ ๊ฐ๊ณ ์์ผ๋ฉด ๋๋ค\" ๋ฐ์ธ ์๋ฏธ", + "keyword": "์ตํ์ SK ํ์ด๋์ค ๊ฐ๋งํ ๊ฐ๊ณ ์์ผ๋ฉด", + "blogUrl": "https://hoguasset.blogspot.com/2026/07/sk_01429231754.html", + "imagesInserted": 1, + "wordCount": 2864, + "contentPreview": "SKํ์ด๋์ค ์ฃผ์์ ๊ฐ๊ณ ๊ณ์ ๋ถ์ด๋ผ๋ฉด, ํน์ ์ต๊ทผ ๋ฐ๋์ฒด ๊ด๋ จ ๋ด์ค๋ฅผ ์ฑ๊ฒจ๋ณด์ ๋ถ์ด๋ผ๋ฉด ์ด๋ฐ ์ง๋ฌธ ํ๋ฒ์ฏค ํด๋ณด์ จ์ ๊ฒ๋๋ค. \"์ฃผ๊ฐ๊ฐ ์ด๋ ๊ฒ ํ๋ค๋ฆฌ๋๋ฐ, ๊ทธ๋ฅ ๊ณ์ ๊ฐ๊ณ ์์ด๋ ๋๋ ๊ฑธ๊น?\" 2026๋ 7์ 17์ผ, ์ตํ์ ๋ํ์๊ณตํ์์ ํ์ฅ ๊ฒธ SK๊ทธ๋ฃน ํ์ฅ์ด ์ ์ฃผ์์ ์ด๋ฆฐ ๋ํ์์ ํ๊ณํฌ๋ผ ๋๋ด์์ ๋ฐ๋ก ์ด ์ง๋ฌธ์ ์ ๋ฉด์ผ๋ก ๋ตํ๋ ๋ฏํ ๋ฐ์ธ์ ๋ด๋จ์ต๋๋ค...", + "faqCount": 3, + "faq": [ + { + "q": "์ตํ์ ํ์ฅ ๋ฐ์ธ์ด SKํ์ด๋์ค ๋งค์ ์ถ์ฒ์ด๋ผ๋ ๋ป์ธ๊ฐ์?", + "a": "๊ณต์ ๋ณด๋ ๋ด์ฉ์ ๋ณด๋ฉด ์ต ํ์ฅ์ '๋ค์ ๋ฌ ์ฃผ๊ฐ๋ ๋ชจ๋ฅธ๋ค'๋ ๋จ์๋ฅผ ๋ถ๋ช ํ ๋ฌ์๊ณ , '์ฌ์ฐ ๋ณด์ '์ด๋ผ๋ ํํ์ ์ฌ์ฉํ์ต๋๋ค. ์ด๋ ๋จ๊ธฐ ์์ธ ์์ธก์ด๋ ์ ๊ท ๋งค์ ๊ถ์ ๋ผ๊ธฐ๋ณด๋ค ๊ธฐ์กด ๋ณด์ ์์๊ฒ ์ฅ๊ธฐ ๋ณด์ ๋ฅผ ๊ถํ๋ ์ทจ์ง์ ๊ฐ๊น๋ค๊ณ ๋ณผ ์ ์์ต๋๋ค. ํน์ ์ธ์ ๋ฐ์ธ์ ๋งค์ ์ ํธ๋ก ๊ทธ๋๋ก ๋ฐ์๋ค์ด๊ธฐ๋ณด๋ค ์ฌ๋ฌ ์๋ฃ๋ฅผ ํจ๊ป ํ์ธํ๋ ๊ฒ์ด ๋ฐ๋์งํฉ๋๋ค." + }, + { + "q": "SKํ์ด๋์ค ์ฃผ๊ฐ๊ฐ ์ ์ต๊ทผ ํฌ๊ฒ ํ๋ฝํ๋์?", + "a": "๋์์ผ๋ณด ๋ณด๋์ ๋ฐ๋ฅด๋ฉด SKํ์ด๋์ค ์ฃผ๊ฐ๋ ์ต๊ทผ ๊ณ ์ ๋๋น 38% ์ด์ ํ๋ฝํ ๊ฒ์ผ๋ก ์ ํด์ง๋๋ค. ์ต ํ์ฅ์ ์ด์ ๋ํด '๋๋ฌด ๋นจ๋ฆฌ ์ฌ๋ผ์ ํ์ค์ ์ ์ํ๋ ๊ณผ์ '์ด๋ผ๊ณ ์ค๋ช ํ๋๋ฐ, ์ด๋ ๋จ๊ธฐ ๊ธ๋ฑ์ ๋ฐ๋ฅธ ์กฐ์ ์ฑ๊ฒฉ์ผ๋ก ํด์ํ ๊ฒ์ ๋๋ค. ๋ค๋ง ์ด๋ ๊ฐ์ธ์ ์๊ฐ์ด๋ฉฐ ์ ํฉยท๊ฒฝ๊ธฐยทํ์จ ๋ฑ ๋ค์ํ ๋ณ์๊ฐ ํจ๊ป ์์ฉํ ์ ์์ต๋๋ค." + }, + { + "q": "์ตํ์ ํ์ฅ์ด ๋งํ '์ง๋ฅ ์์ถ'์ ๋ฌด์์ ์๋ฏธํ๋์?", + "a": "๊ถ์์ค ์ฑ๊ท ๊ด๋ ๊ต์์์ AI ๋๋ด์์ ์ต ํ์ฅ์ ํ๊ตญ์ด ๋ง๋ ๊ฑฐ๋์ธ์ด๋ชจ๋ธ์ด๋ ์ดํ๋ฆฌ์ผ์ด์ ์ ํด์ธ์ ์์ถํด ํ ์ ์๋ ํ๊ฒฝ์ ๋ง๋ค์ด์ผ ํ๋ค๋ ์ทจ์ง๋ก '์ง๋ฅ์ ์์ถ'์ ์ธ๊ธํ์ต๋๋ค. ์ด๋ ๋ฐ๋์ฒด ํ๋์จ์ด๋ฅผ ๋์ด AI ์ํํธ์จ์ดยท์๋น์ค ์์ญ๊น์ง ๊ตญ๊ฐ ๊ฒฝ์๋ ฅ์ ๋ํ์ผ ํ๋ค๋ ๋ฌธ์ ์์์ผ๋ก ์ฝํ๋๋ค." + } + ], + "factCheck": { + "checked": true, + "verdict": "warn", + "issues_found": 1, + "fixes_applied": 1, + "issues": [ + { + "problem": "์๋ฃํฉ์ ์๋ ๊ตฌ์ฒด์ ์ธ์ฉ๋ฌธ์ผ๋ก, ์ค์ ๋ฐ์ธ ์ฌ๋ถ๊ฐ ๊ฒ์ฆ๋์ง ์์", + "fixed": true + } + ] + }, + "sources": [ + { + "title": "์ตํ์ \"SKํ์ด๋์ค ์ฃผ์ ๊ฐ๋งํ ๊ฐ๊ณ ์์ผ๋ฉด ๋ผโฆ์ฐ์ํฅํ ๊ฒ\"", + "url": "https://www.khan.co.kr/article/202607171047001" + }, + { + "title": "์ตํ์ \"SKํ์ด๋์ค ์ฃผ์ ๊ฐ๋งํ ๊ฐ๊ณ ์์ผ๋ฉด ๋ผโฆ์ฐ์ํฅํ ๊ฒ\" - ๊ฒฝํฅ์ ๋ฌธ AMP", + "url": "https://www.khan.co.kr/article/202607171047001/amp" + }, + { + "title": "์ตํ์ \"ํ์ด๋์ค ์ฃผ์, ๋ค๊ณ ์์ผ๋ฉด ์ฐ์ํฅ ๊ฐ๋ค\"", + "url": "https://www.donga.com/news/Economy/article/all/20260717/134316280/1" + }, + { + "title": "์ตํ์ยท๊ถ์์ค AI๋๋ด \"ํ๊ตญ AI, ์ ํ ์๋ '์ง๋ฅ' ์์ถ๋ก ํจ๊ถ๊ฒฝ์ ๋ซ์ด์ผ\"", + "url": "https://www.khan.co.kr/article/202607171116001" + } + ], + "labels": [ + "SKํ์ด๋์ค", + "์ตํ์", + "๋ฐ๋์ฒด์ฃผ์", + "AI๋ฐ๋์ฒด", + "๋ฉ๋ชจ๋ฆฌ๋ฐ๋์ฒด" + ], + "metaDescription": "์ตํ์ SK๊ทธ๋ฃน ํ์ฅ์ด \"SKํ์ด๋์ค ์ฃผ์ ๊ฐ๋งํ ๊ฐ๊ณ ์์ผ๋ฉด ๋๋ค\"๊ณ ๋งํ ๋ฐฐ๊ฒฝ๊ณผ ์ง์ง ์๋ฏธ๋ฅผ ์ ๋ฆฌํ์ต๋๋ค. ์ฃผ๊ฐ 38% ํ๋ฝ์ด๋ผ๋ ์ํฉ๊ณผ ๋ฐ์ธ์ ๋งฅ๋ฝ, ๊ฐ์ธ ํฌ์์๊ฐ ์ด ๋ง์ ์ด๋ป๊ฒ ๋ฐ์๋ค์ฌ์ผ ํ ์ง ํจ๊ป ์ดํด๋ด ๋๋ค.", + "adsenseCategory": "์ผ๋ฐ", + "articleType": "analysis", + "riskLevel": "medium", + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "socialContent": { + "instagram": { + "caption": "SKํ์ด๋์ค ์ฃผ๊ฐ 38% ํ๋ฝํ ์ํฉ์์\n์ตํ์ ํ์ฅ์ด ๋จ๊ธด ํ๋ง๋ ๐ฌ\n\n\"๊ฐ๋งํ ๊ฐ๊ณ ์์ผ๋ฉด ๋๋ค\"\n\n์ด ๋ง, ๊ทธ๋ฅ ๋๊ธฐ๋ฉด ์ ๋๋ ์ด์ ๊ฐ ์์ต๋๋ค.\n์ ์ฅ ํ์ ๐ ๋์ค์ ๋ค์ ์ฝ์ด๋ณด์ธ์\n\n1๏ธโฃ ๋ฐ์ธ ์์ = ์ฃผ๊ฐ 38% ๊ธ๋ฝ ์งํ\n2๏ธโฃ '๋งค์ ์ถ์ฒ'์ด ์๋๋ผ '์ฅ๊ธฐ ๊ด์ ' ๋ฉ์์ง\n3๏ธโฃ AI ๋ฐ๋์ฒด ์ฌ์ดํด๊ณผ ์ฐ๊ฒฐ๋ ๋ฐ์ธ ๋ฐฐ๊ฒฝ\n4๏ธโฃ ๋ฉ๋ชจ๋ฆฌ ๋ฐ๋์ฒด ์ ํฉ ์ฌ์ดํด ํน์ฑ ์ธ๊ธ\n5๏ธโฃ ๊ฐ์ธ ํฌ์์๊ฐ ์คํดํ๊ธฐ ์ฌ์ด ํฌ์ธํธ\n6๏ธโฃ ๋จ๊ธฐ ๋ณ๋์ฑ vs ์ฅ๊ธฐ ํ๋๋ฉํธ ๊ตฌ๋ถ๋ฒ\n7๏ธโฃ ์ด ๋ฐ์ธ์ ํฌ์ ํ๋จ ๊ทผ๊ฑฐ๋ก ์จ๋ ๋ ๊น?\n\n๐ ์ง์ง ์๋ฏธ๋ ํ๋กํ ๋งํฌ์์ ์ ์ฒด ํ์ธ\n\n#SKํ์ด๋์ค ์ด ๋ฐ์ธ ์ด๋ป๊ฒ ํด์ํ์ธ์?\n๋๊ธ๋ก ์๊ฒฌ ๋จ๊ฒจ์ฃผ์ธ์ ๐", + "hookLine": "์ฃผ๊ฐ 38% ํญ๋ฝ ์งํ, ์ตํ์ ํ์ฅ์ด ๋์ง ํ๋ง๋", + "storyHighlightTitle": "ํ์ด๋์ค", + "hashtags": { + "popular": [ + "#์ฃผ์", + "#์ฃผ์ํฌ์", + "#์ฌํ ํฌ", + "#๊ฒฝ์ ", + "#ํฌ์", + "#๋ฐ๋์ฒด", + "#์ฃผ์๊ณต๋ถ", + "#์ฌํ ํฌ๊ณต๋ถ", + "#๊ฒฝ์ ๊ณต๋ถ", + "#๋๊ณต๋ถ" + ], + "medium": [ + "#SKํ์ด๋์ค", + "#์ตํ์", + "#๋ฐ๋์ฒด์ฃผ์", + "#AI๋ฐ๋์ฒด", + "#๋ฉ๋ชจ๋ฆฌ๋ฐ๋์ฒด", + "#SK๊ทธ๋ฃน", + "#๋ฐ๋์ฒดํฌ์", + "#์ฃผ์์์ฅ", + "#๊ตญ๋ด์ฃผ์", + "#๋ฐ๋์ฒด์ฐ์ " + ], + "niche": [ + "#ํ์ด๋์ค์ฃผ๊ฐ", + "#๋ฐ๋์ฒด์ฌ์ดํด", + "#๋ฉ๋ชจ๋ฆฌ๋ฐ๋์ฒด์ ๋ง", + "#SKํ์ด๋์ค์ ๋ง", + "#์ฅ๊ธฐํฌ์์ ๋ต" + ] + }, + "bestPostingTimes": [ + "07:00", + "12:00", + "21:00" + ] + }, + "threads": { + "posts": [ + { + "order": 1, + "label": "1/5", + "content": "SKํ์ด๋์ค ์ฃผ๊ฐ, 38% ํ๋ฝ.\n๊ทธ ์งํ ์ตํ์ ํ์ฅ์ด ๋จ๊ธด ๋ง์ด ํ์ ์ ๋๋ค.\n\n\"๊ฐ๋งํ ๊ฐ๊ณ ์์ผ๋ฉด ๋๋ค\"\n\n์ด๊ฒ ์ ๋ง ๋งค์ ์ถ์ฒ์ผ๊น์? ๐ค" + }, + { + "order": 2, + "label": "2/5", + "content": "๋จผ์ ์ํฉ๋ถํฐ ์ง์ด์ผ ํฉ๋๋ค.\n\nSKํ์ด๋์ค๋ ์ต๊ทผ ๊ธ๊ฒฉํ ์ฃผ๊ฐ ํ๋ฝ์ ๊ฒช์๊ณ , ๊ฐ์ธ ํฌ์์๋ค ์ฌ์ด์์๋ ๋ถ์๊ฐ์ด ์ปค์ง ์ํ์์ต๋๋ค.\n\n์ด๋ฐ ํ์ด๋ฐ์ ๋์จ ํ์ฅ์ ๋ฐ์ธ์ด๋ผ ๋ ์ฃผ๋ชฉ๋ฐ์์ฃ ." + }, + { + "order": 3, + "label": "3/5", + "content": "๊ทธ๋ฐ๋ฐ ์ด ๋ฐ์ธ, ๊ณง์ด๊ณง๋๋ก '๋งค์ํ๋ผ'๋ ๋ป์ผ๋ก ๋ฐ์๋ค์ด๋ฉด ๊ณค๋ํฉ๋๋ค.\n\n๋ฐ๋์ฒด ์ ํฉ์ ์๋ ์ฌ์ดํด์ ํ๋ ์ฐ์ ์ด๊ณ , ํ์ฅ์ ๋ฐ์ธ์ ๊ทธ ๋งฅ๋ฝ ์์์ ๋์จ ์ฅ๊ธฐ์ ๊ด์ ์ ๋ฉ์์ง์ ๊ฐ๊น์ต๋๋ค." + }, + { + "order": 4, + "label": "4/5", + "content": "๋ฌธ์ ๋ ๊ฐ์ธ ํฌ์์๋ค์ด ์ด ํ๋ง๋๋ฅผ '์ค๋ ์ฌ๋ ๋๋ ์ด์ '๋ก ์๋นํ๋ค๋ ์ ์ ๋๋ค.\n\n๊ฒฝ์์์ ๋ฐ์ธ โ ํฌ์ ์กฐ์ธ.\n์ด ์ฐจ์ด๋ฅผ ๊ตฌ๋ถํ์ง ๋ชปํ๋ฉด ์ํํ ํ๋จ์ผ๋ก ์ด์ด์ง ์ ์์ต๋๋ค." + }, + { + "order": 5, + "label": "5/5", + "content": "๊ฒฐ๋ก : ์ตํ์ ํ์ฅ์ ๋ฐ์ธ์ '๋ฌด์กฐ๊ฑด ์ฌ๋ผ'๋ ๋ป์ด ์๋๋ผ, ๋ฐ๋์ฒด ์ฌ์ดํด์ ๋ํ ์ฅ๊ธฐ์ ์๊ฐ์ ๋ณด์ฌ์ค ๊ฒ์ ๊ฐ๊น์ต๋๋ค.\n\n์์ธํ ๋ฐฐ๊ฒฝ๊ณผ ๊ฐ์ธ ํฌ์์๊ฐ ์ฐธ๊ณ ํ ํฌ์ธํธ๋ ์ฌ๊ธฐ์ ํ์ธํ์ธ์.\n\n๐ https://hoguasset.blogspot.com/2026/07/sk_01429231754.html\n\n์ฌ๋ฌ๋ถ์ ์ด ๋ฐ์ธ์ ์ด๋ป๊ฒ ํด์ํ์๋์?" + } + ], + "hashtags": [ + "#SKํ์ด๋์ค", + "#์ตํ์", + "#๋ฐ๋์ฒด์ฃผ์", + "#AI๋ฐ๋์ฒด", + "#๋ฉ๋ชจ๋ฆฌ๋ฐ๋์ฒด" + ], + "engagementQuestion": "์ตํ์ ํ์ฅ์ ๋ฐ์ธ, ์ฌ๋ฌ๋ถ์ ๋งค์ ์ ํธ๋ก ๋ณด์๋์ ์๋๋ฉด ๊ทธ๋ฅ ์๋ก ์ ์ธ ์๊ธฐ๋ผ๊ณ ๋ณด์๋์?", + "bestPostingTimes": [ + "08:00", + "19:00" + ] + }, + "tiktok": { + "title": "์ตํ์ ํ์ฅ ๋ฐ์ธ์ ์ง์ง ์๋ฏธ, SKํ์ด๋์ค ๊ฐ๋ฏธ๋ค์ด ๊ผญ ์์์ผ ํ ๊ฒ", + "thumbnailText": "38% ํญ๋ฝ ํ ์ตํ์์ด ํ ๋ง", + "scenes": [ + { + "time": "0-3์ด", + "text": "SKํ์ด๋์ค -38%... ๊ทธ ์งํ ์ตํ์์ด ํ ๋ง", + "direction": "์ฃผ๊ฐ ์ฐจํธ ๊ธ๋ฝ ๊ทธ๋ํ ํด๋ก์ฆ์ โ ์ธ๋ฌผ ์๋ฃํ๋ฉด ์ ํ", + "sound": "๊ธด์ฅ๊ฐ ์๋ ์ ์๋ฆฌ + ์๋ฆผ์ ํจ๊ณผ" + }, + { + "time": "3-15์ด", + "text": "'๊ฐ๋งํ ๊ฐ๊ณ ์์ผ๋ฉด ๋๋ค' ์ด ๋ง, ๋งค์ ์ ํธ์ผ๊น์?", + "direction": "ํ ์คํธ ์๋ง ํฌ๊ฒ ๊ฐ์กฐ, ์๊ฐ๋ฝ์ผ๋ก ํ๋ฉด ํกํก ์น๋ ์ฐ์ถ", + "sound": "ํ์ดํ ํจ๊ณผ์" + }, + { + "time": "15-35์ด", + "text": "๋ฐ๋์ฒด๋ ์๋ ์ฌ์ดํด ์ฐ์ . ์ด ๋ฐ์ธ์ ์ฅ๊ธฐ ๊ด์ ๋ฉ์์ง์ ๊ฐ๊น์์. ๊ทธ๋ฅ '์ฌ๋ผ'๋ ๋ป์ด ์๋๋๋ค", + "direction": "ํ์ดํธ๋ณด๋ ํ๊ธฐ ์คํ์ผ ์๋ง, ๊ทธ๋ํ ์ฌ์ดํด ์ ๋๋ฉ์ด์ ", + "sound": "์์ํ ๋ฐฐ๊ฒฝ์ ํ์ด๋์ธ" + }, + { + "time": "35-50์ด", + "text": "๊ฒฝ์์ ๋ฐ์ธ = ํฌ์ ์กฐ์ธ ์๋. ์คํดํ๋ฉด ์ํํ ์ ์์ด์", + "direction": "๊ฒฝ๊ณ ์์ด์ฝ ๋ฑ์ฅ, ์ผ๊ตด ํด๋ก์ฆ์ ์ผ๋ก ๊ฐ์กฐ ์ ๋ฌ", + "sound": "๊ฒฝ๊ณ ์ ์งง๊ฒ" + }, + { + "time": "50-60์ด", + "text": "์์ธํ ๋ด์ฉ์ ๋ธ๋ก๊ทธ ๋งํฌ์์! ์ฌ๋ฌ๋ถ ์๊ฐ์ ๋๊ธ๋ก ๐", + "direction": "์๊ฐ๋ฝ์ผ๋ก ํ๋ฉด ํ๋จ ๊ฐ๋ฆฌํค๋ ์ฐ์ถ, ๋งํฌ ํ์ดํ ์ ๋๋ฉ์ด์ ", + "sound": "๊ฒฝ์พํ ๋ง๋ฌด๋ฆฌ ํจ๊ณผ์" + } + ], + "fullScript": "SKํ์ด๋์ค ์ฃผ๊ฐ๊ฐ 38% ๊ธ๋ฝํ ์งํ, ์ตํ์ ํ์ฅ์ด ๋์ง ํ๋ง๋๊ฐ ํ์ ์ ๋๋ค. '๊ฐ๋งํ ๊ฐ๊ณ ์์ผ๋ฉด ๋๋ค.' ์ด ๋ง, ๋งค์ ์ ํธ์ฒ๋ผ ๋ค๋ฆฌ์ง๋ง ์ค์ ๋ก๋ ๋ค๋ฆ ๋๋ค. ๋ฐ๋์ฒด๋ ์๋ ์ฌ์ดํด์ ํ๋ ์ฐ์ ์ด๋ผ, ์ด ๋ฐ์ธ์ ๋จ๊ธฐ ๋งค์ ์ถ์ฒ์ด ์๋๋ผ ์ฅ๊ธฐ์ ์ธ ์๊ฐ์ ๋ณด์ฌ์ฃผ๋ ๋ฉ์์ง์ ๊ฐ๊น์ต๋๋ค. ๊ฒฝ์์์ ๋ฐ์ธ์ ๊ทธ๋๋ก ํฌ์ ์กฐ์ธ์ผ๋ก ๋ฐ์๋ค์ด๋ฉด ์ํํ ์ ์๋ค๋ ์ , ๊ผญ ๊ธฐ์ตํ์ธ์. ์์ธํ ๋ฐฐ๊ฒฝ๊ณผ ๊ฐ์ธ ํฌ์์๊ฐ ์ฐธ๊ณ ํ ํฌ์ธํธ๋ ๋ธ๋ก๊ทธ์์ ํ์ธํ์๊ณ , ์ฌ๋ฌ๋ถ ์๊ฐ์ ๋๊ธ๋ก ๋จ๊ฒจ์ฃผ์ธ์.", + "commentBait": "์ฌ๋ฌ๋ถ์ ์ด ๋ฐ์ธ, ๋งค์ ํ์ด๋ฐ์ด๋ผ๊ณ ์๊ฐํ์๋์?", + "hashtags": [ + "#fyp", + "#foryou", + "#SKํ์ด๋์ค", + "#์ตํ์", + "#๋ฐ๋์ฒด์ฃผ์", + "#AI๋ฐ๋์ฒด", + "#๋ฉ๋ชจ๋ฆฌ๋ฐ๋์ฒด", + "#์ฃผ์", + "#์ฌํ ํฌ", + "#๊ฒฝ์ ์ด์" + ], + "backgroundMusic": { + "genre": "๋กํ์ด ํํฉ", + "mood": "์ฐจ๋ถํ์ง๋ง ๊ธด์ฅ๊ฐ ์๋" + }, + "bestPostingTimes": [ + "07:00", + "20:00", + "23:00" + ] + }, + "keyword": "์ตํ์ SK ํ์ด๋์ค ๊ฐ๋งํ ๊ฐ๊ณ ์์ผ๋ฉด", + "trendDirection": "stable" + }, + "socialPublished": { + "instagram": { + "skipped": true, + "reason": "SOCIAL_AUTO_PUBLISH=false" + }, + "threads": { + "skipped": true, + "reason": "SOCIAL_AUTO_PUBLISH=false" + }, + "tiktok": { + "skipped": true, + "reason": "SOCIAL_AUTO_PUBLISH=false" + } + } + } + ] + }, + { + "runAt": "2026-07-17T05:43:59.874522", + "date": "2026-07-17", + "keywords": [ + "์ฃผํ๋ด๋ณด๋์ถ ๊ธ๋ฆฌ ์ต์ ์ํ 2026 ์ง์ ๋ฐํ ํ์ ๋น๊ต" + ], + "postsGenerated": 0, + "bloggerUploaded": 0, + "errors": 1, + "errorMessages": [ + "์ฝํ ์ธ ์์ฑ ์ต์ข ์คํจ (2ํ ์๋): '์ฃผํ๋ด๋ณด๋์ถ ๊ธ๋ฆฌ ์ต์ ์ํ 2026 ์ง์ ๋ฐํ ํ์ ๋น๊ต'" + ], + "imagesInserted": 0, + "totalWords": 0, + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "platforms": { + "blogger": 0 + }, + "earnings": { + "totalPosts": 88, + "estimatedDailyRevenue": 158.4, + "estimatedMonthlyRevenue": 4752.0, + "estimatedYearlyRevenue": 57816.0, + "avgCPC": 0.9, + "currency": "USD" + }, + "posts": [] + }, + { + "runAt": "2026-07-17T05:43:07.978479", + "date": "2026-07-17", + "keywords": [ + "์์ธ ๊ทผ๊ต ๋๋ผ์ด๋ธ ์ฝ์ค ์ง์ ๊ฐ๋ณธ ์์ง ํ๊ฐ" + ], + "postsGenerated": 0, + "bloggerUploaded": 0, + "errors": 1, + "errorMessages": [ + "์ฝํ ์ธ ์์ฑ ์ต์ข ์คํจ (2ํ ์๋): '์์ธ ๊ทผ๊ต ๋๋ผ์ด๋ธ ์ฝ์ค ์ง์ ๊ฐ๋ณธ ์์ง ํ๊ฐ'" + ], + "imagesInserted": 0, + "totalWords": 0, + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "platforms": { + "blogger": 0 + }, + "earnings": { + "totalPosts": 89, + "estimatedDailyRevenue": 160.2, + "estimatedMonthlyRevenue": 4806.0, + "estimatedYearlyRevenue": 58473.0, + "avgCPC": 0.9, + "currency": "USD" + }, + "posts": [] + }, + { + "runAt": "2026-07-17T05:42:07.968007", + "date": "2026-07-17", + "keywords": [ + "์์ ์คํธ๋ฆฌ๋ฐ ๋ฉ๋ก vs ์ง๋ vs ์ ํ๋ธ๋ฎค์ง ์๊ธ ๋น๊ต" + ], + "postsGenerated": 0, + "bloggerUploaded": 0, + "errors": 1, + "errorMessages": [ + "์ฝํ ์ธ ์์ฑ ์ต์ข ์คํจ (2ํ ์๋): '์์ ์คํธ๋ฆฌ๋ฐ ๋ฉ๋ก vs ์ง๋ vs ์ ํ๋ธ๋ฎค์ง ์๊ธ ๋น๊ต'" + ], + "imagesInserted": 0, + "totalWords": 0, + "blogId": "blog1", + "blogName": "HOGU What?", + "platforms": { + "blogger": 0 + }, + "earnings": { + "totalPosts": 90, + "estimatedDailyRevenue": 162.0, + "estimatedMonthlyRevenue": 4860.0, + "estimatedYearlyRevenue": 59130.0, + "avgCPC": 0.9, + "currency": "USD" + }, + "posts": [] + }, + { + "runAt": "2026-07-16T23:06:19.315229", + "date": "2026-07-16", + "keywords": [ + "2026 ๊ธ์ต์์ฅ ์ฃผ์ ์ด์ ์ง์ฅ์ธ์ด ์์์ผ ํ ๊ฒ" + ], + "postsGenerated": 0, + "bloggerUploaded": 0, + "errors": 1, + "errorMessages": [ + "์ฝํ ์ธ ์์ฑ ์ต์ข ์คํจ (2ํ ์๋): '2026 ๊ธ์ต์์ฅ ์ฃผ์ ์ด์ ์ง์ฅ์ธ์ด ์์์ผ ํ ๊ฒ'" + ], + "imagesInserted": 0, + "totalWords": 0, + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "platforms": { + "blogger": 0 + }, + "earnings": { + "totalPosts": 91, + "estimatedDailyRevenue": 163.8, + "estimatedMonthlyRevenue": 4914.0, + "estimatedYearlyRevenue": 59787.0, + "avgCPC": 0.9, + "currency": "USD" + }, + "posts": [] + }, + { + "runAt": "2026-07-16T23:05:22.503793", + "date": "2026-07-16", + "keywords": [ + "์ ์ฃผ ํ์ฅ๋ง์ ์ฌ๋ ์ ์ ์๊ฐ๋์ ์จ์ ๋ง์ง" + ], + "postsGenerated": 0, + "bloggerUploaded": 0, + "errors": 1, + "errorMessages": [ + "์ฝํ ์ธ ์์ฑ ์ต์ข ์คํจ (2ํ ์๋): '์ ์ฃผ ํ์ฅ๋ง์ ์ฌ๋ ์ ์ ์๊ฐ๋์ ์จ์ ๋ง์ง'" + ], + "imagesInserted": 0, + "totalWords": 0, + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "platforms": { + "blogger": 0 + }, + "earnings": { + "totalPosts": 92, + "estimatedDailyRevenue": 165.6, + "estimatedMonthlyRevenue": 4968.0, + "estimatedYearlyRevenue": 60444.0, + "avgCPC": 0.9, + "currency": "USD" + }, + "posts": [] + }, + { + "runAt": "2026-07-16T23:04:24.216382", + "date": "2026-07-16", + "keywords": [ + "OTT ๊ฐ์กฑ ๊ณต์ ๊ณ์ ์ ์ฑ ๋ณ๊ฒฝ ํ ๊ฐ์ฅ ์ ๋ ดํ ์ ํ" + ], + "postsGenerated": 0, + "bloggerUploaded": 0, + "errors": 1, + "errorMessages": [ + "์ฝํ ์ธ ์์ฑ ์ต์ข ์คํจ (2ํ ์๋): 'OTT ๊ฐ์กฑ ๊ณต์ ๊ณ์ ์ ์ฑ ๋ณ๊ฒฝ ํ ๊ฐ์ฅ ์ ๋ ดํ ์ ํ'" + ], + "imagesInserted": 0, + "totalWords": 0, + "blogId": "blog1", + "blogName": "HOGU What?", + "platforms": { + "blogger": 0 + }, + "earnings": { + "totalPosts": 93, + "estimatedDailyRevenue": 167.4, + "estimatedMonthlyRevenue": 5022.0, + "estimatedYearlyRevenue": 61101.0, + "avgCPC": 0.9, + "currency": "USD" + }, + "posts": [] + }, + { + "runAt": "2026-07-16T11:40:59.188935", + "date": "2026-07-16", + "keywords": [ + "์๋ฌ๋ฌ ํ์จ ๊ธ๋ฑ๋ฝ ์์ธ๊ณผ ๊ฐ์ธํฌ์์ ๋์๋ฒ" + ], + "postsGenerated": 0, + "bloggerUploaded": 0, + "errors": 1, + "errorMessages": [ + "์ฝํ ์ธ ์์ฑ ์ต์ข ์คํจ (2ํ ์๋): '์๋ฌ๋ฌ ํ์จ ๊ธ๋ฑ๋ฝ ์์ธ๊ณผ ๊ฐ์ธํฌ์์ ๋์๋ฒ'" + ], + "imagesInserted": 0, + "totalWords": 0, + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "platforms": { + "blogger": 0 + }, + "earnings": { + "totalPosts": 94, + "estimatedDailyRevenue": 169.2, + "estimatedMonthlyRevenue": 5076.0, + "estimatedYearlyRevenue": 61758.0, + "avgCPC": 0.9, + "currency": "USD" + }, + "posts": [] + }, + { + "runAt": "2026-07-16T11:39:59.255623", + "date": "2026-07-16", + "keywords": [ + "๊ฒฝ์ฃผ ๋น์ผ์น๊ธฐ ๋์น๋ฉด ํํํ๋ ์ฝ์ค ์ง์ ๋ค๋ ์์" + ], + "postsGenerated": 0, + "bloggerUploaded": 0, + "errors": 1, + "errorMessages": [ + "์ฝํ ์ธ ์์ฑ ์ต์ข ์คํจ (2ํ ์๋): '๊ฒฝ์ฃผ ๋น์ผ์น๊ธฐ ๋์น๋ฉด ํํํ๋ ์ฝ์ค ์ง์ ๋ค๋ ์์'" + ], + "imagesInserted": 0, + "totalWords": 0, + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "platforms": { + "blogger": 0 + }, + "earnings": { + "totalPosts": 95, + "estimatedDailyRevenue": 171.0, + "estimatedMonthlyRevenue": 5130.0, + "estimatedYearlyRevenue": 62415.0, + "avgCPC": 0.9, + "currency": "USD" + }, + "posts": [] + }, + { + "runAt": "2026-07-16T11:39:03.684870", + "date": "2026-07-16", + "keywords": [ + "์์ด๋ ์ฝ์ํธ ํฐ์ผํ ์ฑ๋ณ ์์๋ฃ ๋น๊ต์ ๊ฟํ" + ], + "postsGenerated": 0, + "bloggerUploaded": 0, + "errors": 1, + "errorMessages": [ + "์ฝํ ์ธ ์์ฑ ์ต์ข ์คํจ (2ํ ์๋): '์์ด๋ ์ฝ์ํธ ํฐ์ผํ ์ฑ๋ณ ์์๋ฃ ๋น๊ต์ ๊ฟํ'" + ], + "imagesInserted": 0, + "totalWords": 0, + "blogId": "blog1", + "blogName": "HOGU What?", + "platforms": { + "blogger": 0 + }, + "earnings": { + "totalPosts": 96, + "estimatedDailyRevenue": 172.8, + "estimatedMonthlyRevenue": 5184.0, + "estimatedYearlyRevenue": 63072.0, + "avgCPC": 0.9, + "currency": "USD" + }, + "posts": [] + }, + { + "runAt": "2026-07-16T05:58:15.455382", + "date": "2026-07-16", + "keywords": [ + "๋ฏธ๊ตญ ์ฐ์ค ๊ธ๋ฆฌ ๊ฒฐ์ ํ๊ตญ ์ฆ์ ์ํฅ ๋ถ์" + ], + "postsGenerated": 0, + "bloggerUploaded": 0, + "errors": 1, + "errorMessages": [ + "์ฝํ ์ธ ์์ฑ ์ต์ข ์คํจ (2ํ ์๋): '๋ฏธ๊ตญ ์ฐ์ค ๊ธ๋ฆฌ ๊ฒฐ์ ํ๊ตญ ์ฆ์ ์ํฅ ๋ถ์'" + ], + "imagesInserted": 0, + "totalWords": 0, + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "platforms": { + "blogger": 0 + }, + "earnings": { + "totalPosts": 97, + "estimatedDailyRevenue": 174.6, + "estimatedMonthlyRevenue": 5238.0, + "estimatedYearlyRevenue": 63729.0, + "avgCPC": 0.9, + "currency": "USD" + }, + "posts": [] + }, + { + "runAt": "2026-07-16T05:57:14.910480", + "date": "2026-07-16", + "keywords": [ + "7์ ๊ตญ๋ด ์ฌํ์ง ์ถ์ฒ ๋ฒ ์คํธ 6๊ณณ" + ], + "postsGenerated": 1, + "bloggerUploaded": 0, + "errors": 0, + "errorMessages": [], + "imagesInserted": 1, + "totalWords": 3177, + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "platforms": { + "blogger": 0 + }, + "earnings": { + "totalPosts": 98, + "estimatedDailyRevenue": 235.2, + "estimatedMonthlyRevenue": 7056.0, + "estimatedYearlyRevenue": 85848.0, + "avgCPC": 1.2, + "currency": "USD" + }, + "posts": [ + { + "title": "7์ ๊ตญ๋ด ์ฌํ์ง ์ถ์ฒ ๋ฒ ์คํธ 6๊ณณ, ์ฌ๋ฆํด๊ฐ ๊ณํ ์ ์ ์ฒดํฌํ ๊ฒ๋ค", + "keyword": "7์ ๊ตญ๋ด ์ฌํ์ง ์ถ์ฒ ๋ฒ ์คํธ 6๊ณณ", + "blogUrl": "", + "imagesInserted": 1, + "wordCount": 3177, + "contentPreview": "7์ ์ค์์ด ๋๋ ์ฃผ๋ณ์์ ์ฌ๋ฆํด๊ฐ ์๊ธฐ๊ฐ ๋ถ์ฉ ๋์์ต๋๋ค. ํ์ฌ ์ฐ์ฐจ ์ฐ๋ ์๊ธฐ๊ฐ ๊ฒน์น๋ค ๋ณด๋ ์ฑ์๊ธฐ ์์๋ ๋ฒ์จ ๋งค์ง๋ ๊ณณ๋ ๋ง๊ณ , ์ด๋๋ก ๊ฐ์ผ ์ฌ๋ ๋ ๋ถ๋น๋ฉด์๋ ์ ๋๋ก ์ด ์ ์์์ง ๊ณ ๋ฏผํ๋ ๋ถ๋ค์ด ๋ง์ ์๊ธฐ์ ๋๋ค. ๋ง๋ฆฐํํ๋ ๋งค๋ ์ด๋ง๋๊ฐ ๋๋ฉด ํฌํธ ์ง์ญ ๊ฒ์๋์ด๋ ๊ด๊ด๊ณต์ฌ ํต๊ณ, ๊ทธ๋ฆฌ๊ณ ๊ฐ ์ง์์ฒด ๊ด๊ด ์ฌ์ดํธ ๊ณต์ง์ฌํญ์ ํ์ด๋ณด๋ฉด์ ์ฌํด๋ ์ด๋๊ฐ ...", + "faqCount": 3, + "faq": [ + { + "q": "7์ ๊ตญ๋ด ์ฌํ์ง ์ค ์๋์ ์ผ๋ก ๋ ๋ถ๋น๋ ๊ณณ์ ์ด๋์ธ๊ฐ์?", + "a": "์ฌํ ํ๊ธฐ๋ฅผ ์ข ํฉํ๋ฉด ๊ฑฐ์ ยทํต์์ด๋ ์ ์ ยทํ์ฐฝ ๊ฐ์ ์ฐ๊ฐ ๊ณ๊ณก ์ง์ญ์ด ๊ฐ๋ฆ, ์ ์ฃผ, ๋ถ์ฐ ๋๋น ์ ๊ทผ์ฑ์ด ๋จ์ด์ง๋ ๋งํผ ํผ์ก๋๋ ๋ฎ์ ํธ์ผ๋ก ํ๊ฐ๋ฉ๋๋ค. ๋ค๋ง ๋งค๋ ์ํฉ์ด ๋ฌ๋ผ์ง ์ ์์ด ์์ฝ ์ ์ต์ ํ๊ธฐ์ ์ง์์ฒด ๊ณต์ง๋ฅผ ํ์ธํ๋ ๊ฒ ์ข์ต๋๋ค." + }, + { + "q": "7์์ ๊ตญ๋ด ์ฌํ ์์๋ ์ธ์ ์์ฝํ๋ ๊ฒ ์ข์๊น์?", + "a": "์ฑ์๊ธฐ์ธ 7์ ๋ง~8์ ์ด๋ ์์ ๊ฐ๊ฒฉ์ด ํฌ๊ฒ ์ค๋ฅด๊ณ ๋งค์ง๋๋ ๊ฒฝ์ฐ๊ฐ ๋ง์, ์ต์ ํ ๋ฌ ์ ์๋ ์์ฝ์ ์๋ฃํ๋ ๊ฒ ์์ ํ๋ค๋ ์๊ฒฌ์ด ๋ง์ต๋๋ค. ์ ํํ ์๊ธ๊ณผ ์์ฝ ๊ฐ๋ฅ ์ฌ๋ถ๋ ๊ฐ ์์ ๋ฐ ์์ฝ ํ๋ซํผ์์ ์ง์ ํ์ธํด์ผ ํฉ๋๋ค." + }, + { + "q": "์ ์ฃผ๋ 7์ ์ฌํ ์ ํญ๊ณต๊ถ์ ์ธ์ ๋๋ ๊ฒ ์ ๋ฆฌํ๊ฐ์?", + "a": "ํญ๊ณต๊ถ ๊ฐ๊ฒฉ์ ์์ฝ ์์ ๊ณผ ์์์ ๋ฐ๋ผ ์ค์๊ฐ์ผ๋ก ๋ณ๋๋๋ฏ๋ก ์ผ๋ฅ ์ ์ผ๋ก ๋งํ๊ธฐ๋ ์ด๋ ต์ง๋ง, ์ฑ์๊ธฐ๊ฐ ์๋ฐํ ์๋ก ๊ฐ๊ฒฉ์ด ์ค๋ฅด๋ ๊ฒฝํฅ์ด ์์ด ์ต๋ํ ์ผ์ฐ ์์ฝํ๋ ๊ฒ์ด ์ ๋ฆฌํ๋ค๋ ์๊ฒฌ์ด ์ฌํ ์ปค๋ฎค๋ํฐ์์ ์์ฃผ ์ธ๊ธ๋ฉ๋๋ค." + } + ], + "factCheck": { + "checked": true, + "verdict": "pass", + "issues_found": 0, + "fixes_applied": 0, + "issues": [] + }, + "sources": [ + { + "title": "์ ๊ตญ์ถ์ | ๋ํ๋ฏผ๊ตญ ๊ตฌ์๊ตฌ์ ์ถ์ ", + "url": "https://korean.visitkorea.or.kr/kfes/list/wntyFstvlList.do" + }, + { + "title": "ํ๊ตญ๊ด๊ด๊ณต์ฌ ๋ํ๋ฏผ๊ตญ ๊ตฌ์๊ตฌ์", + "url": "https://korean.visitkorea.or.kr" + }, + { + "title": "๊ฐ๋ฆ์ ๊ด๊ดํฌํธ", + "url": "https://www.gntour.go.kr" + }, + { + "title": "์ ์ฃผํน๋ณ์์น๋ ๊ด๊ดํํ", + "url": "https://www.visitjeju.net" + }, + { + "title": "๋ถ์ฐ๊ด๊ด๊ณต์ฌ", + "url": "https://www.bto.or.kr" + }, + { + "title": "๋ณด๋ น๋จธ๋์ถ์ ๊ณต์ ํํ์ด์ง", + "url": "https://www.mudfestival.or.kr" + } + ], + "labels": [ + "๊ตญ๋ด์ฌํ", + "7์์ฌํ์ง", + "์ฌ๋ฆํด๊ฐ", + "๋ํด์์ฌํ", + "์ ์ฃผ๋์ฌํ", + "๋ถ์ฐ์ฌํ", + "๊ฑฐ์ ํต์", + "๊ณ๊ณกํผ์", + "์ํด์์ฌํ", + "๊ตญ๋ด์ฌํ์ถ์ฒ" + ], + "metaDescription": "7์ ๊ตญ๋ด ์ฌํ์ง ์ถ์ฒ ๋ฒ ์คํธ 6๊ณณ์ ๊ฐ๋ฆยท์์ด, ์ ์ฃผ๋, ๊ฑฐ์ ยทํต์, ๋ถ์ฐ, ์ ์ ยทํ์ฐฝ ๊ณ๊ณก, ํ์ยท๋ณด๋ น ๊ธฐ์ค์ผ๋ก ์ ๋ฆฌํ์ต๋๋ค. ์ฑ์๊ธฐ ํ๋ ํจ๊ป ํ์ธํ์ธ์.", + "adsenseCategory": "์ฌํ", + "articleType": "travel_guide", + "riskLevel": "low", + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "socialContent": null, + "socialPublished": { + "instagram": null, + "threads": null, + "tiktok": null + } + } + ] + }, + { + "runAt": "2026-07-16T05:52:32.439342", + "date": "2026-07-16", + "keywords": [ + "๋ทํ๋ฆญ์ค vs ํฐ๋น vs ์จ์ด๋ธ ๊ตฌ๋ ๋ฃ ๋๋น ์ฝํ ์ธ ์ง์ ๋น๊ต" + ], + "postsGenerated": 1, + "bloggerUploaded": 1, + "errors": 0, + "errorMessages": [], + "imagesInserted": 1, + "totalWords": 3937, + "blogId": "blog1", + "blogName": "HOGU What?", + "platforms": { + "blogger": 1 + }, + "earnings": { + "totalPosts": 98, + "estimatedDailyRevenue": 176.4, + "estimatedMonthlyRevenue": 5292.0, + "estimatedYearlyRevenue": 64386.0, + "avgCPC": 0.9, + "currency": "USD" + }, + "posts": [ + { + "title": "๋ทํ๋ฆญ์ค vs ํฐ๋น vs ์จ์ด๋ธ ๊ตฌ๋ ๋ฃ ๋๋น ์ฝํ ์ธ ์ง์ ๋น๊ต", + "keyword": "๋ทํ๋ฆญ์ค vs ํฐ๋น vs ์จ์ด๋ธ ๊ตฌ๋ ๋ฃ ๋๋น ์ฝํ ์ธ ์ง์ ๋น๊ต", + "blogUrl": "https://www.hoguwhat.com/2026/07/vs-vs.html", + "imagesInserted": 1, + "wordCount": 3937, + "contentPreview": "๋งค๋ฌ ํต์ฅ์์ OTT ๊ตฌ๋ ๋ฃ๊ฐ ์๋ ๊ฐ์ฉ ๋น ์ ธ๋๊ฐ๋ ๊ฑธ ๋ณด๊ณ ํ ์นซํ ์ ์์ผ์ ๊ฐ์. ์ ๋ ์ผ๋ง ์ ์นด๋ ๋ช ์ธ์๋ฅผ ํ์ธํ๋ค๊ฐ ๋ทํ๋ฆญ์ค, ํฐ๋น, ์จ์ด๋ธ๊ฐ ๋์์ ๊ฒฐ์ ๋ ๊ฑธ ๋ณด๊ณ ์ด๊ฑธ ์ ๋ง ๋ค ํ์๋ก ํ๋์ง ๋ค์ ๋ฐ์ ธ๋ณด๊ฒ ๋์ต๋๋ค. ๋๋ผ๋ง ํ๋ ๋ณด๋ ค๊ณ ๊ฐ์ ํ๋ค๊ฐ ๋ช ๋ฌ์งธ ์์ด๋ฒ๋ฆฌ๊ณ ์๋๊ฒฐ์ ๋ง ๋๋ ๊ฒฝ์ฐ๋ ํํฉ๋๋ค. ์ด๋ฒ ๊ธ์์๋ ๋ทํ๋ฆญ์ค vs ํฐ๋น vs ์จ์ด๋ธ ...", + "faqCount": 3, + "faq": [ + { + "q": "๋ทํ๋ฆญ์ค, ํฐ๋น, ์จ์ด๋ธ๋ฅผ ๋์์ ๊ตฌ๋ ํ๋ ๊ฒ ์๋ฏธ๊ฐ ์๋์?", + "a": "์์ฒญ ์ต๊ด์ด ๋๋ ทํ๊ฒ ๋๋์ด ์๋ค๋ฉด ์๋ฏธ๊ฐ ์์ ์ ์์ง๋ง, ๋๋ถ๋ถ์ ๊ฒฝ์ฐ ํ๋ ๊ฐ ์๋น์ค๋ฅผ ๋ฒ๊ฐ์ ๊ตฌ๋ ํ๋ ๋ฐฉ์์ด ๋น์ฉ ๋๋น ํจ์จ์ ์ ๋๋ค." + }, + { + "q": "๊ด๊ณ ํ ์๊ธ์ ๋ ์ค์ ๋ก ๊ด๊ณ ๊ฐ ๋ง์ด ๋์ค๋์?", + "a": "๊ด๊ณ ๋ ธ์ถ ๋น๋๋ ์๋น์ค์ ์๊ธฐ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง ์ ์์ด ๊ณต์ ๋ฐํ๋ฅผ ํ์ธํ๋ ๊ฒ ์ ํํฉ๋๋ค. ๋ค๋ง ํ๊ธฐ๋ฅผ ๋ณด๋ฉด ์ฝํ ์ธ ์์ฒญ ์ค ์ผ์ ๊ฐ๊ฒฉ์ผ๋ก ๊ด๊ณ ๊ฐ ์ฝ์ ๋๋ค๋ ์๊ฒฌ์ด ๋ง์ต๋๋ค." + }, + { + "q": "์จ์ด๋ธ๋ ์ง์ํ ์ฝํ ์ธ ๋ง ๋ณด๋์?", + "a": "์จ์ด๋ธ๋ ์ง์ํ ์ค์๊ฐ ๋ฐฉ์ก๊ณผ ๋ค์๋ณด๊ธฐ๊ฐ ๊ฐ์ ์ด์ง๋ง ์์ฒด ์ค๋ฆฌ์ง๋ ์ฝํ ์ธ ๋ ์ผ๋ถ ๋ณด์ ํ๊ณ ์์ต๋๋ค. ๋ค๋ง ๋ทํ๋ฆญ์ค ๋๋น ํฌ์ ๊ท๋ชจ๋ ์๋์ ์ผ๋ก ์๋ค๋ ํ๊ฐ๊ฐ ์์ต๋๋ค." + } + ], + "factCheck": { + "checked": true, + "verdict": "warn", + "issues_found": 3, + "fixes_applied": 2, + "issues": [ + { + "problem": "์๋ฃํฉ์ ์๋ ๊ตฌ์ฒด์ ๊ฐ๊ฒฉ ์์น๋ก ๊ฒ์ฆ ๋ถ๊ฐ", + "fixed": true + }, + { + "problem": "๊ฒ์ฆ๋์ง ์์ '์ต์ด' ๋จ์ ์ฃผ์ฅ", + "fixed": true + }, + { + "problem": "๊ตฌ์ฒด์ ๊ทผ๊ฑฐ ์๋ 1์ธ์นญ ์ฒดํ ์์ ", + "fixed": false + } + ] + }, + "sources": [ + { + "title": "์ฃผ์ OTT ์๋น์ค ๊ฐ๊ฒฉ ๋น๊ต, ์กฐ๊ธ ๋ ์ ๋ ดํ๊ฒ ๋ณด๋ ๋ฐฉ๋ฒ์?", + "url": "https://it.donga.com/105973/" + }, + { + "title": "OTT ์๋น์ค, ์ด์ฉ์ ์ฑ์ฅ ์ ์ฒด๋์ ๋ํ์ ๋ต์ผ๋ก 'ํ์ ' ์ ํ", + "url": "http://www.todaykorea.co.kr/news/articleView.html?idxno=323347" + } + ], + "labels": [ + "๋ทํ๋ฆญ์ค", + "ํฐ๋น", + "์จ์ด๋ธ", + "OTT๋น๊ต", + "๊ตฌ๋ ๋ฃ๋น๊ต" + ], + "metaDescription": "๋ทํ๋ฆญ์ค, ํฐ๋น, ์จ์ด๋ธ์ 2026๋ ์๊ธ์ ์ ์ฝํ ์ธ ๊ฐ์ ์ ์ค์ ์ด์ฉ ๊ฒฝํ๊ณผ ๊ณต์ ์๋ฃ๋ฅผ ๋ฐํ์ผ๋ก ๋น๊ตํ์ต๋๋ค. ๊ตฌ๋ ๋ฃ ๋๋น ๋ง์กฑ๋๋ฅผ ๋์ด๋ ์ฒดํฌ๋ฆฌ์คํธ, ์ฝํ ์ธ ๋ผ์ธ์ ๋น๊ต, ์์ฒญ ํจํด๋ณ ์ถ์ฒ ์กฐํฉ๊น์ง ํ ๋ฒ์ ์ ๋ฆฌํ์ต๋๋ค.", + "adsenseCategory": "์ผ๋ฐ", + "articleType": "drama_review", + "riskLevel": "low", + "blogId": "blog1", + "blogName": "HOGU What?", + "socialContent": { + "instagram": { + "caption": "๋ทํ๋ฆญ์ค+ํฐ๋น+์จ์ด๋ธ 3๊ฐ ๋ค ๊ตฌ๋ ํ๋ฉด ์ ์ผ๋ง ๋๊ฐ๋์ง ์์ธ์? ๐ฑ\n๋ฌด๋ ค 5๋ง์ ๋ํ... ๊ทผ๋ฐ ์ ๋ ๊ณ์ ์๋๋ค ๊ทธ ์ด์ ์๋ ค๋๋ฆด๊ฒ์\n\n2026๋ ์ต์ ์๊ธ์ ๊ธฐ์ค์ผ๋ก ๋ทํ๋ฆญ์ค, ํฐ๋น, ์จ์ด๋ธ ์ง์ ๋น๊ตํด๋ดค์ด์.\n๋ญ ๊ตฌ๋ ํด์ผ ํ ์ง ๊ณ ๋ฏผ๋๋ค๋ฉด ์ ์ฅ ํ์ ๐\n\n1๏ธโฃ ๋ทํ๋ฆญ์ค ๊ด๊ณ ํ ์๊ธ์ , ์๊ฐ๋น ๊ด๊ณ 4-5๋ถ ๋์ด (์๊ฐ๋ณด๋ค ๋ง์)\n2๏ธโฃ ํฐ๋น์ tvNยทJTBC ๋ณธ๋ฐฉ ๋ผ์ธ์ ์ด ์๋์ ๊ฐ์ \n3๏ธโฃ ์จ์ด๋ธ๋ ์ง์ํ ์๋ฅยท๋๋ผ๋ง ๋ชฐ์๋ณด๊ธฐ ์ต๊ฐ\n4๏ธโฃ 3๊ฐ ๋ค ๊ตฌ๋ ํด๋ ๋ทํ๋ฆญ์ค 1๊ฐ์ ํ๋ฆฌ๋ฏธ์๋ณด๋ค ์ ๋ ดํ ์กฐํฉ ์์\n5๏ธโฃ ์ค๋ฆฌ์ง๋ ์ฝํ ์ธ ๋ฌผ๋์ ๋ทํ๋ฆญ์ค > ํฐ๋น > ์จ์ด๋ธ ์\n6๏ธโฃ ์์ฒญ ํจํด๋ณ๋ก ์กฐํฉ ๋ค๋ฅด๊ฒ ๊ฐ์ผ ์ํด ์ ๋ด\n7๏ธโฃ ๋งค๋ฌ ์๋๊ฒฐ์ ์ ์ ์ฒดํฌ๋ฆฌ์คํธ ํ์ธ ํ์\n\n๐ ์ ์ฒด ๋น๊ตํ๋ ์ถ์ฒ ์กฐํฉ์ ํ๋กํ ๋งํฌ ๋ธ๋ก๊ทธ์์ ํ์ธํ์ธ์\n\n#OTT๋น๊ต #๊ตฌ๋ ๋ฃ", + "hookLine": "๋ทํ๋ฆญ์ค+ํฐ๋น+์จ์ด๋ธ 3๊ฐ ๋ค ๊ตฌ๋ ํ๋ฉด ์ ์ผ๋ง ๋๊ฐ๋์ง ์์ธ์? ๋ฌด๋ ค 5๋ง์ ๋ํ ๐ฑ", + "storyHighlightTitle": "OTT๋น๊ต", + "hashtags": { + "popular": [ + "#๋ทํ๋ฆญ์ค", + "#ํฐ๋น", + "#์จ์ด๋ธ", + "#OTT์ถ์ฒ", + "#์์ทจ๊ฟํ", + "#์ผ์๊ฟํ", + "#๊ฐ์ฑ๋น", + "#์ ์ฝ๊ฟํ", + "#๋๋ผ๋ง์ถ์ฒ", + "#์ ๋ณด๊ณต์ " + ], + "medium": [ + "#OTT๋น๊ต", + "#๊ตฌ๋ ๋ฃ๋น๊ต", + "#๋ทํ๋ฆญ์ค์ถ์ฒ", + "#ํฐ๋น์ค๋ฆฌ์ง๋", + "#์จ์ด๋ธ์ค๋ฆฌ์ง๋", + "#๊ตฌ๋ ๊ฒฝ์ ", + "#OTT์๊ธ์ ", + "#์คํธ๋ฆฌ๋ฐ์๋น์ค", + "#์ํ์ถ์ฒ", + "#๋๋ผ๋ง๋ํ" + ], + "niche": [ + "#๊ด๊ณ ํ์๊ธ์ ", + "#OTT์ฒดํฌ๋ฆฌ์คํธ", + "#์ง์ํ์ฝํ ์ธ ", + "#๊ตฌ๋ ๋ฃ์ ์ฝ๋ฒ", + "#OTT์กฐํฉ์ถ์ฒ" + ] + }, + "bestPostingTimes": [ + "07:00", + "12:00", + "21:00" + ] + }, + "threads": { + "posts": [ + { + "order": 1, + "label": "1/5", + "content": "๋ทํ๋ฆญ์ค+ํฐ๋น+์จ์ด๋ธ 3๊ฐ ๋์ ๊ตฌ๋ ํ๋ฉด ์ ๊ตฌ๋ ๋ฃ๊ฐ ์ผ๋ง์ธ์ง ์์ธ์?\n์ต์ ์๊ธ์ ๊ธฐ์ค์ผ๋ก ๋ค ๋ํ๋ฉด 5๋ง์์ด ํ์ฉ ๋์ต๋๋ค.\n๊ทผ๋ฐ ์ ๋ ๊ณ์ 3๊ฐ ๋ค ์๋๋ค. ์ด์ ๊ฐ ์์ด์ ๐งต" + }, + { + "order": 2, + "label": "2/5", + "content": "๋ทํ๋ฆญ์ค๋ ์ค๋ฆฌ์ง๋ ๋ฌผ๋์ด ์๋์ ์ผ๋ก ๋ง์ง๋ง ๊ด๊ณ ํ ์๊ธ์ ๋ ์๊ฐ๋ณด๋ค ๊ด๊ณ ๊ฐ ์์ฃผ ๋์ต๋๋ค.\nํฐ๋น์ tvNยทJTBC ๋ณธ๋ฐฉ ์ฝํ ์ธ ๊ฐ ๊ฐ์ ์ด๊ณ , ์จ์ด๋ธ๋ ์ง์ํ ์๋ฅยท๋๋ผ๋ง ๋ชฐ์๋ณด๊ธฐ์ ์ต๊ฐ์ด์์.\n๊ฐ์ ๊ฐ์ ์ด ์์ ํ ๋ค๋ฆ ๋๋ค." + }, + { + "order": 3, + "label": "3/5", + "content": "๋ฌธ์ ๋ ๋๋ถ๋ถ ์ฌ๋๋ค์ด '๋ทํ๋ฆญ์ค๋ง ์์ผ๋ฉด ์ถฉ๋ถํ์ง'๋ผ๊ณ ์๊ฐํ๋ค๋ ๊ฑฐ์์.\n๊ทผ๋ฐ ์ค์ ๋ก ์ฝํ ์ธ ๋ผ์ธ์ ๋น๊ตํด๋ณด๋ฉด ๋์น๋ ๊ฒ ์ ๋ง ๋ง์ต๋๋ค.\n์์ฒญ ํจํด ํ์ ์ ํ๊ณ ๊ตฌ๋ ํ๋ฉด ๋งค๋ฌ ์ํด ๋ณด๋ ๊ตฌ์กฐ์ ๋๋ค." + }, + { + "order": 4, + "label": "4/5", + "content": "์ ๋ ์์ฒญ ํจํด๋ณ๋ก ์กฐํฉ์ ๋ค๋ฅด๊ฒ ์ถ์ฒํฉ๋๋ค.\n์๋ฅ ์์ฃผ๋ฉด ์จ์ด๋ธ+๋ทํ๋ฆญ์ค, ๋๋ผ๋ง ๋ณธ๋ฐฉ์ด ์ค์ํ๋ฉด ํฐ๋น+๋ทํ๋ฆญ์ค ์กฐํฉ์ด ํจ์ฌ ํจ์จ์ ์ด์์.\n๋ค ๊ตฌ๋ ํ๋ ๊ฒ๋ณด๋ค ์กฐํฉ์ ์ ์ง๋ ๊ฒ ํต์ฌ์ ๋๋ค." + }, + { + "order": 5, + "label": "5/5", + "content": "๊ฒฐ๋ก : ๋ฌด์กฐ๊ฑด ๋ทํ๋ฆญ์ค ํ๋๋ง ์ฐ๋ ๊ฒ ์ ๋ต์ ์๋๋๋ค.\n๋ณธ์ธ ์์ฒญ ํจํด ์ฒดํฌ๋ฆฌ์คํธ๋ก ํ์ธํ๊ณ ์กฐํฉ ์ง๋ ๊ฒ ๊ตฌ๋ ๋ฃ ๋๋น ๋ง์กฑ๋๋ฅผ ๋์ด๋ ๋ฐฉ๋ฒ์ด์์.\n์ ์ฒด ๋น๊ตํ์ ์ฒดํฌ๋ฆฌ์คํธ๋ ์ฌ๊ธฐ์ ํ์ธํ์ธ์ ๐ https://www.hoguwhat.com/2026/07/vs-vs.html\n\n์ฌ๋ฌ๋ถ์ ์ง๊ธ ๋ช ๊ฐ ๊ตฌ๋ ์ค์ด์ ๊ฐ์?" + } + ], + "hashtags": [ + "#๋ทํ๋ฆญ์ค", + "#ํฐ๋น", + "#์จ์ด๋ธ", + "#OTT๋น๊ต", + "#๊ตฌ๋ ๋ฃ๋น๊ต" + ], + "engagementQuestion": "์ฌ๋ฌ๋ถ์ ์ง๊ธ ๋ทํ๋ฆญ์ค, ํฐ๋น, ์จ์ด๋ธ ์ค ๋ช ๊ฐ ๊ตฌ๋ ์ค์ด์ ๊ฐ์? ์กฐํฉ ๊ณต์ ํด์ฃผ์ธ์ ๐", + "bestPostingTimes": [ + "08:00", + "19:00" + ] + }, + "tiktok": { + "title": "๋ทํ๋ฆญ์ค ํฐ๋น ์จ์ด๋ธ 3๊ฐ ๊ตฌ๋ ์คํ๋๊ณ ์", + "thumbnailText": "์ 5๋ง์ vs ๋์น๋ ์ฝํ ์ธ (์ถฉ๊ฒฉ)", + "scenes": [ + { + "time": "0-3์ด", + "text": "๋ทํ๋ฆญ์ค+ํฐ๋น+์จ์ด๋ธ ๋ค ๊ตฌ๋ ํ๋ฉด ์ ์ผ๋ง์ธ์ง ์์ธ์?", + "direction": "ํด๋ก์ฆ์ ์ผ๋ก ํ๋ฉด์ ์๊ธ์ ์ซ์ ํฌ๊ฒ ๋์ฐ๊ธฐ, ๋น ๋ฅธ ์ค์ธ", + "sound": "๊ธด์ฅ๊ฐ ๋ฟ ํจ๊ณผ์" + }, + { + "time": "3-15์ด", + "text": "3๊ฐ ๋ค ๊ตฌ๋ ํ๋ฉด 5๋ง์ ํ์ฉ ๋์... ๊ทผ๋ฐ ํ๋๋ง ์ฐ๋ฉด ์ฝํ ์ธ ๋์นจ", + "direction": "3๊ฐ ์ฑ ๋ก๊ณ ๋๋ํ ๋ณด์ฌ์ฃผ๋ฉฐ ์๊ฐ๋ฝ์ผ๋ก ํ๋์ฉ ์ฒดํฌ", + "sound": "ํ์ดํ ํจ๊ณผ์, ๊ณ์ฐ๊ธฐ ์๋ฆฌ" + }, + { + "time": "15-35์ด", + "text": "๋ทํ๋ฆญ์ค=์ค๋ฆฌ์ง๋ ์ต๊ฐ / ํฐ๋น=tvN JTBC ๋ณธ๋ฐฉ / ์จ์ด๋ธ=์ง์ํ ๋ชฐ์๋ณด๊ธฐ", + "direction": "ํ๋ฉด 3๋ถํ ๋ก ๊ฐ ํ๋ซํผ ๋ํ ์ฝํ ์ธ ์คํฌ๋ฆฐ์ท ๋น ๋ฅด๊ฒ ์ ํ", + "sound": "์ ๋นํธ ์ ํ์ 3ํ" + }, + { + "time": "35-50์ด", + "text": "์์ฒญ ํจํด๋ณ ์ถ์ฒ ์กฐํฉ, ์ ์ฒด ๋น๊ตํ๋ ๋ธ๋ก๊ทธ์ ์ ๋ฆฌํด๋์ด์", + "direction": "์ฒดํฌ๋ฆฌ์คํธ ํ๋ฉด ์ค๋ฒ๋ ์ด, ์๊ฐ๋ฝ์ผ๋ก ํญ๋ชฉ ์ฒดํฌํ๋ ์ฐ์ถ", + "sound": "๊ธ์ ์ ๋ฉ๋ ํจ๊ณผ์" + }, + { + "time": "50-60์ด", + "text": "ํ๋กํ ๋งํฌ์์ ์ ์ฒด ๋น๊ตํ ํ์ธํ์ธ์ ๐", + "direction": "ํ๋ฉด ํ๋จ์ ํ์ดํ ์ ๋๋ฉ์ด์ ์ผ๋ก ํ๋กํ ์ ๋", + "sound": "CTA ๊ฐ์กฐ ํจ๊ณผ์, ํ์ด๋์์" + } + ], + "fullScript": "๋ทํ๋ฆญ์ค, ํฐ๋น, ์จ์ด๋ธ 3๊ฐ ๋ค ๊ตฌ๋ ํ๋ฉด ์ ์ผ๋ง์ธ์ง ์์ธ์? ๋ค ๋ํ๋ฉด 5๋ง์์ด ํ์ฉ ๋์ด์. ๊ทผ๋ฐ ํ๋๋ง ์ฐ๋ฉด ์ฝํ ์ธ ๋ฅผ ๋์น๋ ๊ฒ ๋ฌธ์ ์์. ๋ทํ๋ฆญ์ค๋ ์ค๋ฆฌ์ง๋ ๋ฌผ๋์ด ์ต๊ฐ์ด๊ณ , ํฐ๋น์ tvN JTBC ๋ณธ๋ฐฉ ์ฝํ ์ธ ๊ฐ ๊ฐ์ , ์จ์ด๋ธ๋ ์ง์ํ ์๋ฅ ๋ชฐ์๋ณด๊ธฐ๊ฐ ์ต๊ณ ์์. ์์ฒญ ํจํด์ ๋ฐ๋ผ ์กฐํฉ์ ๋ค๋ฅด๊ฒ ์ง๋ ๊ฒ ํต์ฌ์ ๋๋ค. ์ ์ฒด ๋น๊ตํ๋ ์ถ์ฒ ์กฐํฉ์ ๋ธ๋ก๊ทธ์ ์ ๋ฆฌํด๋์ผ๋ ํ๋กํ ๋งํฌ์์ ํ์ธํ์ธ์.", + "commentBait": "์ฌ๋ฌ๋ถ์ ๋ทํ๋ฆญ์ค, ํฐ๋น, ์จ์ด๋ธ ์ค ๋ญ ์ฐ์ธ์? ๋๊ธ๋ก ์๋ ค์ฃผ์ธ์!", + "hashtags": [ + "#fyp", + "#foryou", + "#๋ทํ๋ฆญ์ค", + "#ํฐ๋น", + "#์จ์ด๋ธ", + "#OTT๋น๊ต", + "#๊ตฌ๋ ๋ฃ๋น๊ต", + "#๋๋ผ๋ง์ถ์ฒ", + "#OTT์ถ์ฒ", + "#์ผ์๊ฟํ" + ], + "backgroundMusic": { + "genre": "์ ๋นํธ ํ", + "mood": "๊ฒฝ์พํ๊ณ ์ ๋ณด์ ๋ฌ์ ์ด์ธ๋ฆฌ๋ ๋ฆฌ๋ฌ" + }, + "bestPostingTimes": [ + "07:00", + "20:00", + "23:00" + ] + }, + "keyword": "๋ทํ๋ฆญ์ค vs ํฐ๋น vs ์จ์ด๋ธ ๊ตฌ๋ ๋ฃ ๋๋น ์ฝํ ์ธ ์ง์ ๋น๊ต", + "trendDirection": "stable" + }, + "socialPublished": { + "instagram": { + "skipped": true, + "reason": "SOCIAL_AUTO_PUBLISH=false" + }, + "threads": { + "skipped": true, + "reason": "SOCIAL_AUTO_PUBLISH=false" + }, + "tiktok": { + "skipped": true, + "reason": "SOCIAL_AUTO_PUBLISH=false" + } + } + } + ] + }, + { + "runAt": "2026-07-15T23:35:27.592900", + "date": "2026-07-15", + "keywords": [ + "์ฝ์คํผ ์ฝ์ค๋ฅ 2026 ํ๋ฐ๊ธฐ ์ ๋ง ํต์ฌ ์ ๋ฆฌ" + ], + "postsGenerated": 1, + "bloggerUploaded": 1, + "errors": 0, + "errorMessages": [], + "imagesInserted": 1, + "totalWords": 4515, + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "platforms": { + "blogger": 1 + }, + "earnings": { + "totalPosts": 98, + "estimatedDailyRevenue": 235.2, + "estimatedMonthlyRevenue": 7056.0, + "estimatedYearlyRevenue": 85848.0, + "avgCPC": 1.2, + "currency": "USD" + }, + "posts": [ + { + "title": "์ฝ์คํผ ์ฝ์ค๋ฅ 2026 ํ๋ฐ๊ธฐ ์ ๋ง, ๋ฐ๋์ฒด ์ ๋ฆผ ํต์ฌ ์ ๋ฆฌ", + "keyword": "์ฝ์คํผ ์ฝ์ค๋ฅ 2026 ํ๋ฐ๊ธฐ ์ ๋ง ํต์ฌ ์ ๋ฆฌ", + "blogUrl": "https://hoguasset.blogspot.com/2026/07/2026_0555618339.html", + "imagesInserted": 1, + "wordCount": 4515, + "contentPreview": "์ฝ์คํผ๊ฐ ์ฐ์ผ ์ ๊ณ ๊ฐ๋ฅผ ๊ฐ์์น์ฐ๋ ๋ด์ค๋ฅผ ๋ณด๋ฉด์ '๋๋ ์ง๊ธ ๋ค์ด๊ฐ์ผ ํ๋' ๊ณ ๋ฏผํด๋ณด์ ์ ์์ผ์ ๊ฐ์? ์๋๋ฉด ๋ฐ๋๋ก '์ด๋ฏธ ๋๋ฌด ์ค๋ฅธ ๊ฑฐ ์๋๊ฐ' ํ๋ ๋ถ์๊ฐ์ด ๋ ํฌ์ ๊ฐ์? 2026๋ ์๋ฐ๊ธฐ ์ฝ์คํผ๋ ๋ฐ๋์ฒด ๋ ๋ฆฌ์ ํ์ ์ด ๋์ ๋๋ ์์น์ธ๋ฅผ ๋ณด์์ง๋ง, ๊ทธ ์์น์ ์ ๋ฐ ์ด์์ด ๋จ ๋ ์ข ๋ชฉ์์ ๋์๋ค๋ ์ฌ์ค์ ์์ธ๋ก ์ ์๋ ค์ ธ ์์ง ์์ต๋๋ค. ํ๋ฐ๊ธฐ๋ฅผ ์๋...", + "faqCount": 4, + "faq": [ + { + "q": "์ฝ์คํผ๊ฐ ๋ฐ๋์ฒด ๋ ์ข ๋ชฉ์ ์ด๋ ๊ฒ ์ ๋ ค ์๋ ๊ฒ ์ํํ ๊ฑด๊ฐ์?", + "a": "์ผ์ฑ์ ์์ SKํ์ด๋์ค๊ฐ ์ฝ์คํผ ์๊ฐ์ด์ก์ ์ ๋ฐ ์ด์์ ์ฐจ์งํ๋ ๋งํผ ๋ ์ข ๋ชฉ์ ์ค์ ๊ณผ ์ ํฉ์ด ์ง์ ์ ์ฒด์ ์ง์ ์ ์ธ ์ํฅ์ ์ค ์ ์๋ ๊ตฌ์กฐ์ ๋๋ค. ๋ค๋ง ์ฆ๊ถ๊ฐ์์๋ ์ด๋ฌํ ์ ๋ฆผ์ ๋ํ ์ฐ๋ ค๊ฐ ๋ค์ ๊ณผ๋ํ๋ค๋ ์๊ฐ๋ ์์ด, ๋จ์ ์ ์ผ๋ก ์ํํ๋ค๊ณ ํ๋จํ๊ธฐ๋ณด๋ค๋ ์ ํฉ ๋ณํ๋ฅผ ์ง์์ ์ผ๋ก ํ์ธํ๋ ๊ฒ์ด ํ์ํฉ๋๋ค." + }, + { + "q": "์ฆ๊ถ์ฌ๋ง๋ค ์ฝ์คํผ ์ ๋ง์น๊ฐ ์ ์ด๋ ๊ฒ ๋ค๋ฅธ๊ฐ์?", + "a": "2025๋ 12์ 31์ผ ๊ธฐ์ค 11๊ฐ ์ฆ๊ถ์ฌ๊ฐ ์ ์ํ 2026๋ ์ฝ์คํผ ๋ฐด๋๋ ํ๋จ 3,500ํฌ์ธํธ๋ถํฐ ์๋จ 5,500ํฌ์ธํธ๊น์ง ํญ์ด ๋์ต๋๋ค. ์ด๋ ๋ฐ๋์ฒด ์ ํฉ, ๊ธ๋ก๋ฒ ๊ธ๋ฆฌ ํ๊ฒฝ, ์ ์ฑ ๋ณ์ ๋ฑ ์ฌ๋ฌ ์๋๋ฆฌ์ค๋ฅผ ๊ฐ ์ฆ๊ถ์ฌ๊ฐ ๋ค๋ฅด๊ฒ ๋ฐ์ํ๊ธฐ ๋๋ฌธ์ด๋ฉฐ, ํ๋์ ์ซ์๋ก ๋จ์ ํ๊ธฐ๋ณด๋ค ์ฌ๋ฌ ์ ๋ง์ ์ฐธ๊ณ ์๋ฃ๋ก ํ์ฉํ๋ ๊ฒ์ด ํฉ๋ฆฌ์ ์ ๋๋ค." + }, + { + "q": "์ฝ์ค๋ฅ ํ์ฑํ ๋์ฑ ์ ์ธ์ ๋ฐํ๋๋์?", + "a": "์ ๋ถ๊ฐ ์ฝ์ค๋ฅ์์ฅ ํ์ฑํ ๋์ฑ ์ ์กฐ๋ง๊ฐ ๋ฐํํ ์์ ์ด๋ผ๋ ๋ณด๋๊ฐ ์์์ง๋ง ์ ํํ ๋ฐํ ์ผ์์ ์ธ๋ถ ๋ด์ฉ์ ์์ง ๊ณต์ ํ์ ๋์ง ์์์ต๋๋ค. ๊ตฌ์ฒด์ ์ธ ์ํ ์์ ๊ณผ ๋ด์ฉ์ ๊ธ์ต์์ํ ๋ฑ ๊ด๊ณ ๋ถ์ฒ์ ๊ณต์ ๋ฐํ๋ฅผ ํตํด ํ์ธํ๋ ๊ฒ์ด ์ ํํฉ๋๋ค." + }, + { + "q": "2์ฐจ์ ์ง ์ ์ข ๋ฐ๋ฑ ๊ธฐ๋๋ ์ด๋ค ๊ทผ๊ฑฐ๋ก ๋์ค๋ ๊ฑด๊ฐ์?", + "a": "AI ๋ฐ์ดํฐ์ผํฐ์ฉ ESS(์๋์ง์ ์ฅ์ฅ์น) ์์ ์ฆ๊ฐ์ ์ค๊ตญ ๋ฐฐํฐ๋ฆฌ ๋ฐธ๋ฅ์ฒด์ธ ๋ฐฐ์ ํ๋ฆ์ด ๊ตญ๋ด 2์ฐจ์ ์ง ์ ์ฒด๋ค์ ์์น ์์ธ์ผ๋ก ๊ฑฐ๋ก ๋๊ณ ์์ต๋๋ค. ๋ค๋ง ์ด๋ ์์ฅ ์ ๋ง ์ค ํ๋์ด๋ฉฐ ์ค์ ์ ํฉ ๊ฐ์ ์ฌ๋ถ๋ ๊ด๋ จ ์ฐ์ ํต๊ณ์ ์ค์ ๋ฐํ๋ฅผ ํตํด ์ง์์ ์ผ๋ก ํ์ธํด์ผ ํฉ๋๋ค." + } + ], + "factCheck": { + "checked": true, + "verdict": "warn", + "issues_found": 2, + "fixes_applied": 2, + "issues": [ + { + "problem": "์๋ฃํฉ์ ์๋ ๊ตฌ์ฒด์ ์์ (6์ ์ค์)์ ์์๋ก ํน์ ํ์ฌ ๋ถ์ธ ๊ฒ์ฆ ๋ถ๊ฐ๋ฅํ ์์ ", + "fixed": true + }, + { + "problem": "๊ตฌ์ฒด์ ๊ทผ๊ฑฐ ์์ด '์ฐ์ผ ์ ๊ณ ๊ฐ'๋ผ๋ ๊ณผ์ฅ๋ ๋จ์ ํํ", + "fixed": true + } + ] + }, + "sources": [ + { + "title": "์ผ์ ๋์ค GO or STOPโฆํ๋ฐ๊ธฐ ์ฆ์ ํต์ฌ ํฌ์ธํธ 5 [์คํ์ ๋ฆฌํฌํธ]", + "url": "https://www.mk.co.kr/article/12095404" + }, + { + "title": "[๊ทธ๋ํฝ] ์ฃผ์ ์ฆ๊ถ์ฌ 2026๋ ์ฝ์คํผ ๋ฑ๋ฝ๋ฒ์ ์ ๋ง", + "url": "https://www.yna.co.kr/view/GYH20251231000300044" + }, + { + "title": "์ฝ์คํผ 47%๊ฐ ๋ฐ๋์ฒดโฆํ๋ฐ๊ธฐ๋ ์ผ์ฑยทํ์ด๋์ค์ ๋ฌ๋ ธ๋ค", + "url": "https://magazine.hankyung.com/money/article/202605183794c" + }, + { + "title": "ESS ์ฑ์ฅยท์ฝ์ค๋ฅ ํ์ฑํ ์ ์ฑ โฆํด์ด๋ผ์ด๋ ๊ธฐ๋ ์ปค์ง 2์ฐจ์ ์ง", + "url": "https://www.hankyung.com/article/2025120292611" + } + ], + "labels": [ + "์ฝ์คํผ์ ๋ง", + "์ฝ์ค๋ฅ์ ๋ง", + "2026์ฆ์์ ๋ง", + "๋ฐ๋์ฒด๋ ๋ฆฌ", + "์ผ์ฑ์ ์SKํ์ด๋์ค" + ], + "metaDescription": "2026๋ ํ๋ฐ๊ธฐ ์ฝ์คํผ ์ฝ์ค๋ฅ ์ ๋ง์ ์ผ์ฑ์ ์ยทSKํ์ด๋์ค ๋ฐ๋์ฒด ์ ๋ฆผ, ์ฆ๊ถ์ฌ๋ณ ์ฝ์คํผ ๋ฐด๋, ์ฝ์ค๋ฅ ์ ์ฑ ๋ชจ๋ฉํ ๊ณผ 2์ฐจ์ ์ง ๋ฐ๋ฑ ๊ธฐ๋, ๊ฐ์ธ ํฌ์์ ์ฒดํฌํฌ์ธํธ๊น์ง ํต์ฌ๋ง ์ ๋ฆฌํ์ต๋๋ค. ์ค์ ํฌํธํด๋ฆฌ์ค ์กฐ์ ๊ฒฝํ๋ ํจ๊ป ๋ด์์ต๋๋ค.", + "adsenseCategory": "์ฌํ", + "articleType": "travel_guide", + "riskLevel": "low", + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "socialContent": { + "instagram": { + "caption": "์ฝ์คํผ ์๊ฐ์ด์ก์ 30%๊ฐ ๋จ 2๊ฐ ์ข ๋ชฉ์ ๋ชฐ๋ ค์๋ค๋ ์ฌ์ค, ์๊ณ ๊ณ์ จ๋์? ๐\n\n2026๋ ํ๋ฐ๊ธฐ, ์ผ์ฑ์ ์ยทSKํ์ด๋์ค ๋ฐ๋์ฒด ์ ๋ฆผ ์์์ ๊ฐ์ธ ํฌ์์๊ฐ ๋์น๋ฉด ์ ๋๋ ์ฒดํฌํฌ์ธํธ๋ฅผ ์ ๋ฆฌํ์ต๋๋ค.\n\n์ ์ฅ ํ์ ๐ (๋์ค์ ํฌํธํด๋ฆฌ์ค ์กฐ์ ํ ๋ ๋ค์ ๊บผ๋ด๋ณด์ธ์)\n\n1๏ธโฃ ์ฝ์คํผ, ๋ฐ๋์ฒด 2์ข ๋ชฉ ์ ๋ฆผ ์ฌํ ์ค\n2๏ธโฃ ์ฆ๊ถ์ฌ๋ณ ์ฝ์คํผ ๋ฐด๋ ์ ๋ง์น ํฐ ์ฐจ์ด\n3๏ธโฃ ์ฝ์ค๋ฅ, ์ ์ฑ ๋ชจ๋ฉํ ๊ธฐ๋๊ฐ ์์น\n4๏ธโฃ 2์ฐจ์ ์ง ์ ์ข ๋ฐ๋ฑ ์๊ทธ๋ ํฌ์ฐฉ\n5๏ธโฃ ๋ฐ๋์ฒด ์ ๋ฆผ = ๋ฆฌ์คํฌ? ๊ธฐํ? ๊ท ํ ์ก๊ธฐ\n6๏ธโฃ ๊ฐ์ธ ํฌ์์๊ฐ ์ง๊ธ ์ฒดํฌํด์ผ ํ ๊ฒ๋ค\n7๏ธโฃ ์ค์ ํฌํธํด๋ฆฌ์ค ์กฐ์ ๊ฒฝํ ๊ณต์ \n\n์ฆ๊ถ์ฌ๋ง๋ค ์ ๋ง์น๊ฐ ์ ๋ค๋ฅธ์ง, ๋ฐ๋์ฒด ์ ๋ฆผ์ด ์ ๋ง ์ํํ์ง๋ ๋ธ๋ก๊ทธ์์ ๋ ์์ธํ ๋ค๋ค์ด์.\n๐ ํ๋กํ ๋งํฌ ๋๋ ๋ธ๋ก๊ทธ์์ ์ ์ฒด ๋ด์ฉ ํ์ธํ์ธ์\n\n#์ฝ์คํผ์ ๋ง #์ฝ์ค๋ฅ์ ๋ง ์ง๊ธ ์ ์ฅํด๋๊ณ ํ๋ฐ๊ธฐ ํฌ์ ์ ๋ต ์ธ์๋ณด์ธ์ ๐ก", + "hookLine": "์ฝ์คํผ ์๊ฐ์ด์ก์ 30%๊ฐ ๋จ 2๊ฐ ์ข ๋ชฉ์ ๋ชฐ๋ ค์๋ค๋ ์ฌ์ค, ์๊ณ ๊ณ์ จ๋์? ๐", + "storyHighlightTitle": "์ฆ์์ ๋ง", + "hashtags": { + "popular": [ + "#์ฃผ์ํฌ์", + "#์ฌํ ํฌ", + "#๊ฒฝ์ ๊ณต๋ถ", + "#์ฃผ์", + "#ํฌ์", + "#์ฆ์", + "#์ฝ์คํผ", + "#์ฝ์ค๋ฅ", + "#์ฃผ์ํฌ์์ด๋ณด", + "#๊ฒฝ์ ๋ด์ค" + ], + "medium": [ + "#์ฝ์คํผ์ ๋ง", + "#์ฝ์ค๋ฅ์ ๋ง", + "#2026์ฆ์์ ๋ง", + "#๋ฐ๋์ฒด๋ ๋ฆฌ", + "#์ผ์ฑ์ ์", + "#SKํ์ด๋์ค", + "#2์ฐจ์ ์ง", + "#๊ฐ์ธํฌ์์", + "#ํฌํธํด๋ฆฌ์ค", + "#์ฆ๊ถ์ฌ์ ๋ง" + ], + "niche": [ + "#๋ฐ๋์ฒด์ ๋ฆผ", + "#์ฝ์คํผ๋ฐด๋", + "#์ฝ์ค๋ฅ์ ์ฑ ๋ชจ๋ฉํ ", + "#๋ฐ๋์ฒดํฌ์์ ๋ต", + "#์ฆ์์ฒดํฌํฌ์ธํธ" + ] + }, + "bestPostingTimes": [ + "07:00", + "12:00", + "21:00" + ] + }, + "threads": { + "posts": [ + { + "order": 1, + "label": "1/5", + "content": "์ฝ์คํผ ์๊ฐ์ด์ก์ ์ฝ 30%๊ฐ ์ผ์ฑ์ ์+SKํ์ด๋์ค ๋ ์ข ๋ชฉ์ ์ ๋ ค์์ต๋๋ค. 2026๋ ํ๋ฐ๊ธฐ, ์ด ์ ๋ฆผ์ด ๊ณ์๋ ๊น์ ์๋๋ฉด ๋ฆฌ์คํฌ๋ก ํฐ์ง๊น์? ๐ค" + }, + { + "order": 2, + "label": "2/5", + "content": "์ฆ๊ถ์ฌ๋ณ๋ก ์ฝ์คํผ ๋ฐด๋ ์ ๋ง์น๊ฐ ์ฒ์ฐจ๋ง๋ณ์ ๋๋ค. ๋๊ตฌ๋ 3200, ๋๊ตฌ๋ 2800์ ๋งํฉ๋๋ค. ์ ์ด๋ ๊ฒ ์ฐจ์ด๊ฐ ๋ ๊น์? ๋ฐ๋์ฒด ์ ํฉ ํด์์ด ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ ๋๋ค." + }, + { + "order": 3, + "label": "3/5", + "content": "์ฝ์ค๋ฅ์ ์ํฉ์ด ๋ค๋ฆ ๋๋ค. ์ ์ฑ ๋ชจ๋ฉํ ๊ธฐ๋๊ฐ๊ณผ ํจ๊ป 2์ฐจ์ ์ง ์ ์ข ์ ๋ฐ๋ฑ ์๊ทธ๋์ด ๊ฐ์ง๋๊ณ ์์ต๋๋ค. ๋ฐ๋์ฒด ์ ๋ฆผ ํผ๋ก๊ฐ์ด ์ฝ์ค๋ฅ์ผ๋ก ์๊ธ ์ด๋์ ๋ง๋ค ์๋ ์์ฃ ." + }, + { + "order": 4, + "label": "4/5", + "content": "์ ๋ ์ต๊ทผ ํฌํธํด๋ฆฌ์ค๋ฅผ ๋ฐ๋์ฒด ๋น์ค ์กฐ์ ํ๋ฉฐ ์ฝ์ค๋ฅ ์ผ๋ถ๋ก ์ฎ๊ฒผ์ต๋๋ค. ๊ฒฐ๊ณผ๋ ์์ง ์ง์ผ๋ณด๋ ์ค์ด์ง๋ง, ์ ๋ฆผ ๋ฆฌ์คํฌ๋ฅผ ๋ถ์ฐํ๋ ๊ฑด ์ ํ์ด ์๋๋ผ ํ์๋ผ๊ณ ๋๊พ๋๋ค." + }, + { + "order": 5, + "label": "5/5", + "content": "๊ฒฐ๋ก : ๋ฐ๋์ฒด ์ ๋ฆผ์ ๊ธฐํ์ ๋ฆฌ์คํฌ๋ฅผ ๋์์ ์๊ณ ์์ต๋๋ค. ๊ฐ์ธ ํฌ์์๋ ์ง๊ธ ์ฒดํฌํฌ์ธํธ๋ฅผ ์ ๊ฒํด์ผ ํ ๋์ ๋๋ค. ์ ์ฒด ์ ๋ฆฌ๋ ์ฌ๊ธฐ์ ํ์ธํ์ธ์ ๐ https://hoguasset.blogspot.com/2026/07/2026_0555618339.html\n\n์ฌ๋ฌ๋ถ์ ๋ฐ๋์ฒด ์ ๋ฆผ, ์ํํ๋ค๊ณ ๋ณด์๋์ ์๋๋ฉด ๋น์ฐํ ํ๋ฆ์ด๋ผ๊ณ ๋ณด์๋์?" + } + ], + "hashtags": [ + "#์ฝ์คํผ์ ๋ง", + "#์ฝ์ค๋ฅ์ ๋ง", + "#๋ฐ๋์ฒด๋ ๋ฆฌ", + "#2026์ฆ์์ ๋ง", + "#๊ฐ์ธํฌ์์" + ], + "engagementQuestion": "์ฝ์คํผ ๋ฐ๋์ฒด ์ ๋ฆผ, ์ํํ ์ ํธ์ผ๊น์ ์๋๋ฉด ์์ฐ์ค๋ฌ์ด ํ๋ฆ์ผ๊น์? ์ฌ๋ฌ๋ถ ์๊ฒฌ์ด ๊ถ๊ธํฉ๋๋ค.", + "bestPostingTimes": [ + "08:00", + "19:00" + ] + }, + "tiktok": { + "title": "์ฝ์คํผ 30%๊ฐ ๋จ 2์ข ๋ชฉ?! 2026 ํ๋ฐ๊ธฐ ์ฆ์ ์ ๋ง ์ด์ ๋ฆฌ", + "thumbnailText": "์ฝ์คํผ ์์ด 30%๊ฐ 2๊ฐ ์ข ๋ชฉ?!", + "scenes": [ + { + "time": "0-3์ด", + "text": "์ฝ์คํผ ์์ด์ 30%๊ฐ ๋จ 2๊ฐ ์ข ๋ชฉ?!", + "direction": "์ ๋ฉด ํด๋ก์ฆ์ , ๋๋ ํ์ +ํ๋ฉด ํ๋ ํจ๊ณผ", + "sound": "๊ธด์ฅ๊ฐ ์๋ ํ ์ฌ์ด๋" + }, + { + "time": "3-15์ด", + "text": "์ผ์ฑ์ ์+SKํ์ด๋์ค์ ์ ๋ฆฐ ์ฝ์คํผ, ์ด๋๋ก ๊ด์ฐฎ์๊น? ์ฆ๊ถ์ฌ๋ง๋ค ์ ๋ง์น๋ ๋ค ๋ค๋ฆ ๋๋ค", + "direction": "์๊ฐ๋ฝ์ผ๋ก ๊ทธ๋ํ ๊ฐ๋ฆฌํค๋ ์ฐ์ถ, ํ๋ฉด ํ๋จ ์๋ง ๊ฐ์กฐ", + "sound": "๊ธด์ฅ๊ฐ ์ง์ ๋ฐฐ๊ฒฝ์" + }, + { + "time": "15-35์ด", + "text": "์ฝ์ค๋ฅ์ ๋ค๋ฆ ๋๋ค. ์ ์ฑ ๋ชจ๋ฉํ +2์ฐจ์ ์ง ๋ฐ๋ฑ ๊ธฐ๋๊ฐ์ด ์ด์์์ด์. ๊ฐ์ธ ํฌ์์๊ฐ ์ฒดํฌํ ํฌ์ธํธ 3๊ฐ์ง ์ ๋ฆฌํฉ๋๋ค", + "direction": "ํ๋ฉด ์ ํ, ๋ฆฌ์คํธ ์๋ง ํ๋์ฉ ํ์ ", + "sound": "ํ์ดํ/ํ์ ํจ๊ณผ์" + }, + { + "time": "35-50์ด", + "text": "์ ๋ ์ค์ ๋ก ๋ฐ๋์ฒด ๋น์ค ์ค์ด๊ณ ์ฝ์ค๋ฅ ์ผ๋ถ ์ฎ๊ฒผ์ต๋๋ค. ์ ๋ฆผ ๋ฆฌ์คํฌ๋ ๋ถ์ฐ์ด ๋ต์ ๋๋ค", + "direction": "๋ณธ์ธ ๊ฒฝํ ํค์ผ๋ก ๋ด๋ดํ๊ฒ ๋งํ๊ธฐ, ์์ฐ๊ด ์ฐ์ถ", + "sound": "์์ํ ๋ฐฐ๊ฒฝ์ ์ ํ" + }, + { + "time": "50-60์ด", + "text": "์ ์ฒด ์ ๋ฆฌ๋ ๋ธ๋ก๊ทธ์์ ํ์ธํ์ธ์! ๋๊ธ๋ก ์ฌ๋ฌ๋ถ ์๊ฐ๋ ๋จ๊ฒจ์ฃผ์ธ์", + "direction": "ํ๋ฉด์ ์๊ฐ๋ฝ์ผ๋ก ํ๋กํ ๋งํฌ ๊ฐ๋ฆฌํค๊ธฐ, ํด๋ฆญ ์ ๋ ์ ๋๋ฉ์ด์ ", + "sound": "CTA ๊ฐ์กฐ ์ฌ์ด๋+์์ํธ๋ก ์์ " + } + ], + "fullScript": "์ฝ์คํผ ์์ด์ 30%๊ฐ ๋จ 2๊ฐ ์ข ๋ชฉ?! ์ผ์ฑ์ ์์ SKํ์ด๋์ค์ ์ ๋ฆฐ ์ฝ์คํผ, ์ด๋๋ก ๊ด์ฐฎ์๊น์? ์ฆ๊ถ์ฌ๋ง๋ค ํ๋ฐ๊ธฐ ์ ๋ง์น๋ ๋ค ๋ค๋ฆ ๋๋ค. ๋ฐ๋ฉด ์ฝ์ค๋ฅ์ ์ ์ฑ ๋ชจ๋ฉํ ๊ณผ 2์ฐจ์ ์ง ๋ฐ๋ฑ ๊ธฐ๋๊ฐ์ด ์ด์์์ด์. ๊ฐ์ธ ํฌ์์๊ฐ ์ฒดํฌํ ํฌ์ธํธ๋ฅผ ์ ๋ฆฌํ์ต๋๋ค. ์ ๋ ์ค์ ๋ก ๋ฐ๋์ฒด ๋น์ค์ ์ค์ด๊ณ ์ฝ์ค๋ฅ ์ผ๋ถ๋ก ์ฎ๊ฒผ๋๋ฐ์, ์ ๋ฆผ ๋ฆฌ์คํฌ๋ ๊ฒฐ๊ตญ ๋ถ์ฐ์ด ๋ต์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ์ ์ฒด ์ ๋ฆฌ๋ ๋ธ๋ก๊ทธ์์ ํ์ธํ์๊ณ , ์ฌ๋ฌ๋ถ ์๊ฐ๋ ๋๊ธ๋ก ๋จ๊ฒจ์ฃผ์ธ์.", + "commentBait": "๋ฐ๋์ฒด ์ ๋ฆผ, ์ฌ๋ฌ๋ถ์ ์ํํ๋ค๊ณ ๋ณด์๋์ ๊ธฐํ๋ผ๊ณ ๋ณด์๋์?", + "hashtags": [ + "#fyp", + "#foryou", + "#์ฝ์คํผ์ ๋ง", + "#์ฝ์ค๋ฅ์ ๋ง", + "#๋ฐ๋์ฒด๋ ๋ฆฌ", + "#์ฃผ์ํฌ์", + "#์ฌํ ํฌ", + "#2026์ฆ์์ ๋ง", + "#์ผ์ฑ์ ์", + "#SKํ์ด๋์ค" + ], + "backgroundMusic": { + "genre": "๋กํ์ด/์ ์คํ", + "mood": "๊ธด์ฅ๊ฐ์์ ์ ๋ขฐ๊ฐ์ผ๋ก ์ ํ๋๋ ๋ถ์๊ธฐ" + }, + "bestPostingTimes": [ + "07:00", + "20:00", + "23:00" + ] + }, + "keyword": "์ฝ์คํผ ์ฝ์ค๋ฅ 2026 ํ๋ฐ๊ธฐ ์ ๋ง ํต์ฌ ์ ๋ฆฌ", + "trendDirection": "stable" + }, + "socialPublished": { + "instagram": { + "skipped": true, + "reason": "SOCIAL_AUTO_PUBLISH=false" + }, + "threads": { + "skipped": true, + "reason": "SOCIAL_AUTO_PUBLISH=false" + }, + "tiktok": { + "skipped": true, + "reason": "SOCIAL_AUTO_PUBLISH=false" + } + } + } + ] + }, + { + "runAt": "2026-07-15T23:24:08.215840", + "date": "2026-07-15", + "keywords": [ + "์ฌ๋ฆ ํด๊ฐ์ฒ ํด์ธ์ฌํ ์์ค๋ ์๋ฐฉ ์ฒดํฌ๋ฆฌ์คํธ" + ], + "postsGenerated": 1, + "bloggerUploaded": 0, + "errors": 0, + "errorMessages": [], + "imagesInserted": 1, + "totalWords": 3325, + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "platforms": { + "blogger": 0 + }, + "earnings": { + "totalPosts": 98, + "estimatedDailyRevenue": 235.2, + "estimatedMonthlyRevenue": 7056.0, + "estimatedYearlyRevenue": 85848.0, + "avgCPC": 1.2, + "currency": "USD" + }, + "posts": [ + { + "title": "์ฌ๋ฆ ํด๊ฐ์ฒ ํด์ธ์ฌํ ์์ค๋ ์๋ฐฉ ์ฒดํฌ๋ฆฌ์คํธ, ์ถ๊ตญ ์ ์ด๊ฒ๋ง์ ํ์ธํ์ธ์", + "keyword": "์ฌ๋ฆ ํด๊ฐ์ฒ ํด์ธ์ฌํ ์์ค๋ ์๋ฐฉ ์ฒดํฌ๋ฆฌ์คํธ", + "blogUrl": "", + "imagesInserted": 1, + "wordCount": 3325, + "contentPreview": "7์ ์ค์์ผ๋ก ์ ์ด๋ค๋ฉด์ ๊ณตํญ ์ถ๊ตญ์ฅ ํผ์ก๋๊ฐ ๋ค์ ์ฌ์์น ์๋ค๋ ๋ด์ค๋ฅผ ์์ฃผ ์ ํ๊ฒ ๋ฉ๋๋ค. ์ฌ๋ฆ ํด๊ฐ์ฒ ํด์ธ์ฌํ ์์๊ฐ ์ฝ๋ก๋ ์ด์ ์์ค์ ํ๋ณตํ๋ค๋ ๋ณด๋๊ฐ ์ด์ด์ง๊ณ ์๊ณ , ๋๋จ์ยท์ ๋ฝ ๋ ธ์ ์ ์ค์ฌ์ผ๋ก ์์ฝ์ด ๋ชฐ๋ฆฌ๊ณ ์๋ค๊ณ ํฉ๋๋ค. ๊ทธ๋ฐ๋ฐ ์ด ์๊ธฐ์ ๋ ๊ฐ์ด ๋ฐ๋ผ์ค๋ ์ด์๊ฐ ์์ต๋๋ค. ๋ฐ๋ก ํด์ธ์ฌํ ์์ค๋ ์ ๋๋ค. ์ฌ๋ฆ์ฒ ์ ๊ธฐ์จ๊ณผ ์ต๋๊ฐ ๋์ ์ธ๊ท ๋ฒ์ ...", + "faqCount": 3, + "faq": [ + { + "q": "ํด์ธ์ฌํ ์ค ์์ค๋ ์ฆ์์ด ๋ํ๋๋ฉด ์ด๋ป๊ฒ ํด์ผ ํ๋์?", + "a": "์ฐ์ ์๋ถ๊ณผ ์ ํด์ง ๋ณด์ถฉ์ผ๋ก ํ์๋ฅผ ๋ง๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. ์ฆ์์ด ํ๋ฃจ ์ด์ ์ง์๋๊ฑฐ๋ ๊ณ ์ด, ํ๋ณ์ด ๋๋ฐ๋๋ฉด ์๊ฐ ์ฒ๋ฐฉ๋ณด๋ค ํ์ง ์๋ฃ๊ธฐ๊ด ๋ฐฉ๋ฌธ์ด ์์ ํ๋ค๊ณ ์๋ ค์ ธ ์์ต๋๋ค. ์ฌํ์๋ณดํ์ ๊ฐ์ ๋ผ ์๋ค๋ฉด ์ง๋ฃ ์์์ฆ์ ์ฑ๊ฒจ๋๊ณ , ํ์ ์ ์ธ๊ต๋ถ ์์ฌ์ฝ์ผํฐ๋ฅผ ํตํด ๋ณ์ ์๋ด๋ ํต์ญ ์ง์์ ์์ฒญํ ์ ์์ต๋๋ค." + }, + { + "q": "์ฌํ์๋ณดํ์ ์์ค๋ ๋ ๋ณด์ฅ์ด ๋๋์?", + "a": "์ํ๊ณผ ์ฝ๊ด์ ๋ฐ๋ผ ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ ๊ฐ์ ์ ํด์ธ ์ง๋ณ ์น๋ฃ ๋ณด์ฅ ๋ฒ์๋ฅผ ์ง์ ํ์ธํ๋ ๊ฒ์ด ํ์ํฉ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ํด์ธ ์ง๋ณ ์น๋ฃ๋น ํญ๋ชฉ์ด ํฌํจ๋ ์ํ์ด๋ผ๋ฉด ์์ค๋ ์ผ๋ก ์ธํ ๋ณ์ ์ง๋ฃ๋น๋ ๋ณด์ฅ ๋์์ ํฌํจ๋๋ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค๊ณ ์๋ด๋๊ณ ์์ง๋ง, ์ ํํ ๋ณด์ฅ ์ฌ๋ถ๋ ๊ฐ์ ํ๋ ค๋ ๋ณดํ์ฌ์ ์ฝ๊ด์ ํ์ธํ๋ ๊ฒ์ด ๊ฐ์ฅ ํ์คํฉ๋๋ค." + }, + { + "q": "์ผ์์ด๋ ์์๋ฅผ ๋ง์ ๋ ์์ ํ ๋๋ผ๋ฅผ ๊ตฌ๋ถํ๋ ๋ฐฉ๋ฒ์ด ์๋์?", + "a": "์ธ๊ต๋ถ ํด์ธ์์ ์ฌํ ํํ์ด์ง์์ ๊ตญ๊ฐ๋ณ ์์ ๋ฐ ์ฌํ ๊ฒฝ๋ณด ์ ๋ณด๋ฅผ ํ์ธํ ์ ์์ต๋๋ค. ๋ค๋ง ๊ตญ๊ฐ ๋จ์ ์ ๋ณด๋ง์ผ๋ก๋ ์ธ๋ถ ์ง์ญ ์์ ์ํ๊น์ง ์๊ธฐ ์ด๋ ต๊ธฐ ๋๋ฌธ์, ๋ฐ๋ด๋ ์์๋ฅผ ๊ตฌ๋งคํ๊ณ ์ผ์์ ์ถ์ฒ๊ฐ ๋ถ๋ถ๋ช ํ๋ฉด ๋ฃ์ง ์๋๋ก ์์ฒญํ๋ ๋ฐฉ์์ด ์ฌํ์๋ค ์ฌ์ด์์ ๊ณตํต์ ์ผ๋ก ๊ถ์ฅ๋๋ ๋ฐฉ๋ฒ์ ๋๋ค." + } + ], + "factCheck": { + "checked": true, + "verdict": "warn", + "issues_found": 1, + "fixes_applied": 1, + "issues": [ + { + "problem": "์ถ์ฒ๊ฐ ๋ถ๋ช ํํ ๊ฒ์ฆ ๋ถ๊ฐ๋ฅํ ํต๊ณ์ฑ ์ฃผ์ฅ", + "fixed": true + } + ] + }, + "sources": [ + { + "title": "ํด์ธ๊ฐ์ผ๋ณ์๋ฐฉ์์น", + "url": "https://www.kdca.go.kr/kdca/3229/subview.do" + }, + { + "title": "ํด์ธ์ฌํ์ - ์ง๋ณ๊ด๋ฆฌ์ฒญ", + "url": "https://www.kdca.go.kr/kdca/4916/subview.do" + }, + { + "title": "ํด์ธ์ฌํํ - ์ง๋ณ๊ด๋ฆฌ์ฒญ", + "url": "https://www.kdca.go.kr/kdca/4918/subview.do" + }, + { + "title": "ํด์ธ๊ฐ์ผ๋ณ NOW | ํด์ธ๊ฐ์ผ๋ณ ์๋ฐฉ์์น", + "url": "https://nqs.kdca.go.kr/nqs/oidnow/travel/prevention.do" + }, + { + "title": "๊ณง ์ค ์ฐํด์ธ๋ฐโฆโ์ธํ๋ฃจ์์ยท์์ค๋ โ ๊ฒจ์ธ ๊ฐ์ผ๋ณ ๋น์", + "url": "http://www.jndn.com/article.php?aid=1737367743402660014" + }, + { + "title": "๋ถ์ฒ์, ์์ ํ ์ค ๋ช ์ ๊ฐ์ผ๋ณ ์๋ฐฉ์์น ์ค์", + "url": "https://www.nspna.com/news/?mode=view&newsid=681897" + } + ], + "labels": [ + "ํด์ธ์ฌํ์์ค๋ ", + "์ฌ๋ฆํด๊ฐ์ฒดํฌ๋ฆฌ์คํธ", + "์ฌํ์๋ณดํ", + "ํด์ธ์์ ์ฌํ", + "์์ค๋ ์๋ฐฉ", + "์ฌํ์์ค์ฌ", + "๋๋จ์์ฌํ์ฃผ์์ฌํญ", + "์ฌํ์๋น์ฝ", + "์์ฌ์ฝ์ผํฐ", + "์ฌ๋ฆํด๊ฐ์ฒ ์ฌํ" + ], + "metaDescription": "์ฌ๋ฆ ํด๊ฐ์ฒ ํด์ธ์ฌํ ์์ค๋ ์๋ฐฉ์ ์ํ ์ฒดํฌ๋ฆฌ์คํธ๋ฅผ ์ถ๊ตญ ์ ์ค๋น๋ฌผ, ๋ฌผ๊ณผ ์์ ๊ด๋ฆฌ, ์ฆ์๋ณ ๋์ฒ, ์ง์ญ๋ณ ์ฃผ์์ฌํญ์ผ๋ก ๋๋ ์กฐ์ฌยท์ ๋ฆฌํ์ต๋๋ค.", + "adsenseCategory": "์ฌํ", + "articleType": "travel_guide", + "riskLevel": "low", + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "socialContent": null, + "socialPublished": { + "instagram": null, + "threads": null, + "tiktok": null + } + } + ] + }, + { + "runAt": "2026-07-15T23:15:20.121239", + "date": "2026-07-15", + "keywords": [ + "์ฌํ ์ค ๋ฌผ๊ฑด ๋๋ ๊ฒฝ์ฐฐ์ ์ ๊ณ ํ ๋ณดํ ์ฒญ๊ตฌ ๋ฐฉ๋ฒ" + ], + "postsGenerated": 1, + "bloggerUploaded": 1, + "errors": 0, + "errorMessages": [], + "imagesInserted": 1, + "totalWords": 3748, + "blogId": "blog1", + "blogName": "HOGU What?", + "platforms": { + "blogger": 1 + }, + "earnings": { + "totalPosts": 98, + "estimatedDailyRevenue": 490.0, + "estimatedMonthlyRevenue": 14700.0, + "estimatedYearlyRevenue": 178850.0, + "avgCPC": 2.5, + "currency": "USD" + }, + "posts": [ + { + "title": "์ฌํ ์ค ๋ฌผ๊ฑด ๋๋, ๊ฒฝ์ฐฐ์ ์ ๊ณ ๋ถํฐ ๋ณดํ ์ฒญ๊ตฌ๊น์ง ์ด์ ๋ฆฌ", + "keyword": "์ฌํ ์ค ๋ฌผ๊ฑด ๋๋ ๊ฒฝ์ฐฐ์ ์ ๊ณ ํ ๋ณดํ ์ฒญ๊ตฌ ๋ฐฉ๋ฒ", + "blogUrl": "https://www.hoguwhat.com/2026/07/blog-post_16.html", + "imagesInserted": 1, + "wordCount": 3748, + "contentPreview": "์ง๋์ฃผ ํ ์ฌํ ์ปค๋ฎค๋ํฐ ๊ฒ์๊ธ์ด ๋์ ๋์์ต๋๋ค. ์ ๋ฝ ์ฌํ ์ค ๊ฐ๋ฐฉ์ ํต์งธ๋ก ๋๋๋นํ๋๋ฐ, ์ฌํ์๋ณดํ์ด ์์ผ๋ ์์ฌํ๊ณ ์์๋ค๋ ๋ด์ฉ์ด์์ต๋๋ค. ๊ทธ๋ฐ๋ฐ ์ค์ ๋ก ๋ณดํ์ฌ์ ์ฒญ๊ตฌํ๋๋ ํ๊ธ๊ณผ ๋จ์ ๋ถ์ค ํญ๋ชฉ์ ์์ ๋ณด์ ๋์์ด ์๋๋ผ๋ ๋ต๋ณ์ ๋ฐ์๋ค๊ณ ํฉ๋๋ค. 2026๋ 7์ 13์ผ ๋ณด๋๋ ๊ด๋ จ ๊ธฐ์ฌ์์๋ ์ฌํ์๋ณดํ์ ๋ฏฟ์๋ค๊ฐ ๋ญํจ๋ฅผ ๋ณด๋ ์ฌ๋ก๊ฐ ๋ฐ๋ณต๋๊ณ ์...", + "faqCount": 3, + "faq": [ + { + "q": "๊ฒฝ์ฐฐ์ ์ ๊ณ ์ ์์ด๋ ๋ณดํ ์ฒญ๊ตฌ๊ฐ ๊ฐ๋ฅํ๊ฐ์?", + "a": "๊ฐ๋ฅ์ฑ์ ๋ฎ์ต๋๋ค. ๋๋๊ณผ ๋ถ์ค์ ๊ตฌ๋ถํ ๊ฐ๊ด์ ์ฆ๋น์ด ์์ผ๋ฉด ๋ณด์์ด ๊ฑฐ์ ๋ ์ ์์ด ์ ๊ณ ์๋ฅผ ๋ฐ๋์ ๋ฐ์๋์ด์ผ ํฉ๋๋ค." + }, + { + "q": "ํ๊ธ๋ ์ฌํ์๋ณดํ์ผ๋ก ๋ณด์๋ฐ์ ์ ์๋์?", + "a": "์๋ฃ๋ฅผ ๋ณด๋ฉด ํ๊ธ์ ๋๋ถ๋ถ ๋ณด์ ์ ์ธ ํญ๋ชฉ์ผ๋ก ๋ถ๋ฅ๋ฉ๋๋ค. ๊ฐ์ ์ ์ฝ๊ด์ ๊ผญ ํ์ธํด์ผ ํฉ๋๋ค." + }, + { + "q": "๊ท๊ตญ ํ์ ์ฒญ๊ตฌํด๋ ๊ด์ฐฎ์๊น์?", + "a": "์ฒญ๊ตฌ ์์ฒด๋ ๊ฐ๋ฅํ์ง๋ง ํ๊ธฐ๋ค์ ๋ณด๋ฉด ํ์ง์์ ์ฌ๊ณ ์ ์๋ฅผ ๋ฏธ๋ฆฌ ํ ๊ฒฝ์ฐ ์ฒ๋ฆฌ ๊ณผ์ ์ด ๋ ๋งค๋๋ฌ์ ๋ค๋ ๋ฐ์์ด ๋ง์์ต๋๋ค." + } + ], + "factCheck": { + "checked": true, + "verdict": "warn", + "issues_found": 5, + "fixes_applied": 5, + "issues": [ + { + "problem": "๊ตฌ์ฒด์ ๋ ์ง์ ๊ธฐ์ฌ ์กด์ฌ ์ฌ๋ถ๋ฅผ ๊ฒ์ฆํ ์ ์๋ ์ฃผ์ฅ", + "fixed": true + }, + { + "problem": "์ถ์ฒ ๋ถ๋ช ํํ ๊ตฌ์ฒด์ ์ฌ๋ก๋ฅผ ์ฌ์ค์ฒ๋ผ ์ ์", + "fixed": true + }, + { + "problem": "๊ทผ๊ฑฐ ์๋ฃ ์์ด ๋ค์ ํ๊ธฐ๊ฐ ์๋ค๋ ๊ฒ์ฆ ๋ถ๊ฐ๋ฅํ ์ฃผ์ฅ", + "fixed": true + }, + { + "problem": "๊ตฌ์ฒด์ ์ถ์ฒ๋ ํต๊ณ ์์ด ๋ค์ ์ฌ๋ก๋ฅผ ๋จ์ ์ ์ผ๋ก ์ข ํฉํ๋ค๊ณ ์ฃผ์ฅ", + "fixed": true + }, + { + "problem": "๊ตฌ์ฒด์ ํ๊ธฐ ๋ฐ๋ณต ์ฌ๋ก๋ฅผ ๊ฒ์ฆ ์์ด ์ฌ์ค์ฒ๋ผ ์ ์", + "fixed": true + } + ] + }, + "sources": [ + { + "title": "\"์ฌํ์๋ณดํ ๋ฏฟ์๋ค๊ฐ ๋ญํจ\"โฆ ์๊ฒฝยทํ๊ธยท๋จ์ ๋ถ์ค์ ๋ณด์ ์ ๋๋ค", + "url": "https://www.kbmaeil.com/article/20260713500006" + }, + { + "title": "๊ธ๊ฐ์ \"์ฌํ์๋ณดํ ์ฌ๋ฌ ๊ฐ ๊ฐ์ ํด๋ ์ค๋ณต ๋ณด์ ์ ๋ผ\"", + "url": "https://www.insnews.co.kr/news/articleView.html?idxno=91806" + }, + { + "title": "์ธ๊ต๋ถ ํด์ธ์์ ์ฌํ (์ฌ๊ฑด์ฌ๊ณ ๋์ฒ ์๋ด)", + "url": "https://www.0404.go.kr" + } + ], + "labels": [ + "์ฌํ์๋ณดํ", + "ํด์ธ์ฌํ ๋๋", + "๊ฒฝ์ฐฐ์ ์ ๊ณ ", + "๋ณดํ ์ฒญ๊ตฌ ๋ฐฉ๋ฒ", + "์ฌํ ์ค ๋๋" + ], + "metaDescription": "ํด์ธ์ฌํ ์ค ๋๋๋นํ๋ค๋ฉด ๊ฐ์ฅ ๋จผ์ ํด์ผ ํ ์ผ์ ๊ฒฝ์ฐฐ์ ์ ๊ณ ์ ๋๋ค. ์ ๊ณ ์ ์ค๋น๋ฌผ, ๋ณดํ ์ฒญ๊ตฌ ์๋ฅ, ์ค์ ์ฌ๋ก์ ์์ฃผ ํ๋ ์ค์๊น์ง ํ ๋ฒ์ ์ ๋ฆฌํ์ต๋๋ค.", + "adsenseCategory": "๊ธ์ต", + "articleType": "travel_guide", + "riskLevel": "low", + "blogId": "blog1", + "blogName": "HOGU What?", + "socialContent": { + "instagram": { + "caption": "ํด์ธ์ฌํ ์ค ๊ฐ๋ฐฉ ๋๋, ๊ณจ๋ ํ์์ ๋จ 24์๊ฐ์ ๋๋ค โฐ\n์ด ์๊ฐ ๋์น๋ฉด ๋ณดํ๊ธ ํ ํผ๋ ๋ชป ๋ฐ์ ์ ์์ด์ ๐ฑ\n\n์ค์ ๋ก ์ฌํ์๋ณดํ ์ฒญ๊ตฌ ๊ฑฐ์ ์ฌ์ 1์๊ฐ '์ ๊ณ ์ ๋ฏธ๋น'๋ผ๋ ์ฌ์ค, ์๊ณ ๊ณ์ จ๋์?\n\n์ ์ฅ ํ์ ๐ (์ฌํ ๊ฐ๊ธฐ ์ ๊ผญ ์บก์ฒํด๋์ธ์)\n\n๐ ๋๋๋นํ์ ๋ ์์๋๋ก ํ์ธ์\n\n1๏ธโฃ ์ฆ์ ํ์ง ๊ฒฝ์ฐฐ์ ๋ฐฉ๋ฌธ (24์๊ฐ ์ด๋ด)\n2๏ธโฃ Police Report(์ ๊ณ ์) ์๋ณธ ๋ฐ๊ธ๋ฐ๊ธฐ\n3๏ธโฃ ๋๋ ๋ฌผํ ๋ชฉ๋ก ์ต๋ํ ์์ธํ ์์ฑ\n4๏ธโฃ ์ฌ๊ถยท์นด๋์ฌ์ ๋ถ์ค ์ ๊ณ ๋์ ์งํ\n5๏ธโฃ ํ์ง ๋์ฌ๊ด์ ์ฌ๊ณ ์ฌ์ค ํต๋ณด\n6๏ธโฃ ๊ท๊ตญ ํ ๋ณดํ์ฌ์ ์ฒญ๊ตฌ์๋ฅ ์ ์ถ\n7๏ธโฃ ์์์ฆยท๊ตฌ๋งค๋ด์ญ ์์ผ๋ฉด ํจ๊ป ์ฒจ๋ถ\n\n๐ก ํ๊ธ์ ๋๋ถ๋ถ ๋ณด์ ์ ์ธ! ์นด๋ยท์ ์๊ธฐ๊ธฐ ์์ฃผ๋ก ์ฑ๊ธฐ์ธ์\n๐ก ์ ๊ณ ์ ์์ด๋ ์กฐ๊ฑด๋ถ ์ฒญ๊ตฌ ๊ฐ๋ฅํ ๊ฒฝ์ฐ ๋ธ๋ก๊ทธ์์ ํ์ธํ์ธ์\n\n์์ธํ ์๋ฅ ์์๊ณผ ์ค์ ์ฒญ๊ตฌ ์ฑ๊ณต/์คํจ ์ฌ๋ก๋ ํ๋กํ ๋งํฌ์์ ๐\n\n#์ ์ฅํด๋๋ฉด์ธ๋ชจ์๋์ ๋ณด", + "hookLine": "ํด์ธ์ฌํ ์ค ๋๋, ๊ณจ๋ ํ์์ ๋จ 24์๊ฐ์ ๋๋ค โฐ", + "storyHighlightTitle": "๋๋๋ณดํ", + "hashtags": { + "popular": [ + "#์ฌํ์คํ๊ทธ๋จ", + "#ํด์ธ์ฌํ", + "#์ฌํ๊ฟํ", + "#์ฌํ์๋ณดํ", + "#์ ๋ฝ์ฌํ", + "#๋๋จ์์ฌํ", + "#์ฌํํ์ํ ", + "#์ฌํ์ ๋ณด", + "#ํด์ธ์ฌํํ์", + "#์ฌํ์ค๋น" + ], + "medium": [ + "#์ฌํ์ค๋๋", + "#๊ฒฝ์ฐฐ์์ ๊ณ ", + "#๋ณดํ์ฒญ๊ตฌ๋ฐฉ๋ฒ", + "#์ฌํ์๋ณดํ์ฒญ๊ตฌ", + "#ํด์ธ๋๋์ฌ๊ณ ", + "#์ฌ๊ถ๋ถ์ค", + "#์๋งค์น๊ธฐ์ฃผ์", + "#์ฌํ๋ณดํ๋น๊ต", + "#์ฌํ์ฌ๊ณ ", + "#์นด๋๋ถ์ค์ ๊ณ " + ], + "niche": [ + "#ํด๋ฆฌ์ค๋ฆฌํฌํธ", + "#์ฌํ์๋ณดํ์ฒญ๊ตฌ์๋ฅ", + "#ํด์ธ์๋งค์น๊ธฐ๋์ฒ๋ฒ", + "#์ฌํ์ค๋ถ์ค์ ๊ณ ", + "#๋ณดํ๊ธ์ฒญ๊ตฌ์๋ฅ" + ] + }, + "bestPostingTimes": [ + "07:00", + "12:00", + "21:00" + ] + }, + "threads": { + "posts": [ + { + "order": 1, + "label": "1/5", + "content": "์ฌํ์๋ณดํ ์ฒญ๊ตฌ ๊ฑฐ์ ์ฌ์ 1์, ๋ญ์ง ์์ธ์?\n\n๋ฐ๋ก '๊ฒฝ์ฐฐ์ ์ ๊ณ ์ ๋ฏธ์ ์ถ'์ ๋๋ค.\n\n๋๋๋นํ๊ณ ๋นํฉํด์ ์ ๊ณ ์ ์ ๋ฐ์์ค๋ฉด\n๋ณดํ๊ธ์ ๊ทธ๋ฅ ๋ ์๊ฐ๋ ๊ฑฐ์์ ๐ข" + }, + { + "order": 2, + "label": "2/5", + "content": "์ค์ ์ฌ๋ก) A์จ๋ ์คํ์ธ์์ ๊ฐ๋ฐฉ์ ๋๋๋นํ์ง๋ง\n\n'๊ท์ฐฎ์์' ์ ๊ณ ๋ฅผ ์ ํ๋ค๊ฐ\n\n๊ท๊ตญ ํ ๋ณดํ ์ฒญ๊ตฌ๊ฐ ์ ์ก ๊ฑฐ์ ๋์ต๋๋ค.\n\n์ ๊ณ ์ ํ๋๋ก ๋ช๋ฐฑ๋ง์์ด ๊ฐ๋ ธ์ด์." + }, + { + "order": 3, + "label": "3/5", + "content": "์ฌํ ์ค ๋๋ ์ ์์\n\n1. ํ์ง ๊ฒฝ์ฐฐ์ ๋ฐฉ๋ฌธ (24์๊ฐ ์ด๋ด ๊ถ์ฅ)\n2. Police Report ์๋ณธ ๋ฐ๊ธ\n3. ๋๋ ๋ฌผํ ์์ธ ๋ชฉ๋ก ์์ฑ\n4. ์นด๋ยท์ฌ๊ถ ๋ถ์ค ์ ๊ณ ๋์ ์งํ\n5. ๊ท๊ตญ ํ ๋ณดํ์ฌ ์๋ฅ ์ ์ถ" + }, + { + "order": 4, + "label": "4/5", + "content": "๊ทธ๋ฐ๋ฐ ๊ถ๊ธํ ๊ฑฐ ํ๋.\n\nํ๊ธ๋ ์ฌํ์๋ณดํ์ผ๋ก ๋ณด์๋ฐ์ ์ ์์๊น์?\n\n๋๋ถ๋ถ '์๋์ค'์ธ๋ฐ, ์กฐ๊ฑด๋ถ๋ก ๊ฐ๋ฅํ ๊ฒฝ์ฐ๋ ์์ต๋๋ค.\n\n๋ค๋ค ์ด๊ฑฐ ์๊ณ ๊ณ์ จ๋์?" + }, + { + "order": 5, + "label": "5/5", + "content": "์ ๊ณ ์ ์์ด๋ ์ฒญ๊ตฌ ๊ฐ๋ฅํ ์์ธ ์ผ์ด์ค,\n์ค์ ์๋ฅ ์์๊น์ง ๋ธ๋ก๊ทธ์ ์ ๋ถ ์ ๋ฆฌํ์ต๋๋ค.\n\n๐ https://www.hoguwhat.com/2026/07/blog-post_16.html\n\n์ฌ๋ฌ๋ถ์ ํด์ธ์์ ๋๋๋นํ ๊ฒฝํ ์์ผ์ ๊ฐ์?\n๋๊ธ๋ก ๊ณต์ ํด์ฃผ์ธ์ ๐" + } + ], + "hashtags": [ + "#์ฌํ์๋ณดํ", + "#ํด์ธ์ฌํ๋๋", + "#๊ฒฝ์ฐฐ์์ ๊ณ ", + "#๋ณดํ์ฒญ๊ตฌ๋ฐฉ๋ฒ", + "#์ฌํ์ค๋๋" + ], + "engagementQuestion": "์ฌ๋ฌ๋ถ์ ํด์ธ์ฌํ ์ค ๋๋์ด๋ ๋ถ์ค ๊ฒฝํ ์์ผ์ ๊ฐ์? ์ด๋ป๊ฒ ๋์ฒํ์ จ๋์?", + "bestPostingTimes": [ + "08:00", + "19:00" + ] + }, + "tiktok": { + "title": "ํด์ธ์ฌํ ๋๋๋นํ๋ฉด 24์๊ฐ ์์ ์ด๊ฑฐ ํ์ธ์", + "thumbnailText": "๊ฐ๋ฐฉ ๋๋๋นํ๋๋ฐ ๋ณดํ๊ธ ๋ชป ๋ฐ์ ์ด์ ", + "scenes": [ + { + "time": "0-3์ด", + "text": "์ฌํ ์ค ๋๋๋นํ๋ฉด 24์๊ฐ ์์ ์ด๊ฑฐ ์ ํ๋ฉด ๋ณดํ๊ธ 0์", + "direction": "์ธ๋ฌผ์ด ์ฌ๊ถ๊ณผ ๋น ๊ฐ๋ฐฉ์ ๋ค๊ณ ๋นํฉํ ํ์ ํด๋ก์ฆ์ ", + "sound": "๊ธด์ฅ๊ฐ ์๋ ํ ์ฌ์ด๋ + ๊ฒฝ๊ณ ์ ํจ๊ณผ" + }, + { + "time": "3-15์ด", + "text": "์ค์ ๋ก ์ ๊ณ ์ ์์ด์ ๋ณดํ๊ธ ์ ์ก ๊ฑฐ์ ๋ ์ฌ๋ก ์์ด์", + "direction": "ํ ์คํธ ์๋ง๊ณผ ํจ๊ป ์๋ฅ ๊ฑฐ์ ์ฅ๋ฉด ์ฌ์ฐ, ๋น ๋ฅธ ์ปท ์ ํ", + "sound": "์ฌ๊ฐํ ๋ฐฐ๊ฒฝ์ + ์๋ฅ ๋๊ธฐ๋ ํจ๊ณผ์" + }, + { + "time": "15-35์ด", + "text": "1.๊ฒฝ์ฐฐ์ ๋ฐฉ๋ฌธ 2.์ ๊ณ ์ ์๋ณธ ๋ฐ๊ธ 3.๋ฌผํ๋ชฉ๋ก ์์ฑ 4.์นด๋๋ถ์ค์ ๊ณ 5.๋ณดํ์ฌ ์๋ฅ์ ์ถ", + "direction": "๋ฒํธ๋ณ ํ ์คํธ ์ ๋๋ฉ์ด์ + ์๋์์ผ๋ก ํ๋์ฉ ์นด์ดํธ", + "sound": "๋ฆฌ๋ฌ๊ฐ ์๋ ๋นํธ, ๋ฒํธ๋ง๋ค ๋ฉ๋ ํจ๊ณผ์" + }, + { + "time": "35-50์ด", + "text": "ํ๊ธ์ ๋๋ถ๋ถ ๋ณด์ ์ ๋์ง๋ง, ์ ๊ณ ์ ์์ด๋ ์ฒญ๊ตฌ๋๋ ์์ธ ์ผ์ด์ค๊ฐ ์์ด์", + "direction": "ํ๋ฉด ๋ฐ์ผ๋ก ๋๋ O/X ๋น๊ต ๊ทธ๋ํฝ ์ฝ์ ", + "sound": "๊ถ๊ธ์ฆ ์ ๋ฐ ์ฌ์ด๋, ์์ํ ๋ฏธ์คํฐ๋ฆฌ ํค" + }, + { + "time": "50-60์ด", + "text": "์ ์ฒด ์๋ฅ ์์์ ๋ธ๋ก๊ทธ์ ์ ๋ฆฌํด๋์ด์, ์ ์ฅํ๊ณ ์ฌํ๊ฐ์ธ์", + "direction": "์ธ๋ฌผ์ด ํฐ ํ๋ฉด ๊ฐ๋ฆฌํค๋ฉฐ ๋งํฌ ํด๋ฆญ ์ ๋ ์ ์ค์ฒ", + "sound": "๋ฐ์ ๋ง๋ฌด๋ฆฌ ์ง๊ธ + ์๋ฆผ์" + } + ], + "fullScript": "์ฌํ ์ค ๋๋๋นํ๋ฉด 24์๊ฐ ์์ ์ด๊ฑฐ ์ ํ๋ฉด ๋ณดํ๊ธ ๋ชป ๋ฐ์ต๋๋ค. ์ค์ ๋ก ๊ฒฝ์ฐฐ์ ์ ๊ณ ์ ์์ด์ ๋ณดํ ์ฒญ๊ตฌ ์ ์ก ๊ฑฐ์ ๋ ์ฌ๋ก๊ฐ ์์ด์. ์์๋ ์ด๋ ์ต๋๋ค. ์ฒซ์งธ, ํ์ง ๊ฒฝ์ฐฐ์ ๋ฐฉ๋ฌธํ๊ธฐ. ๋์งธ, ์ ๊ณ ์ ์๋ณธ ๋ฐ๊ธ๋ฐ๊ธฐ. ์ ์งธ, ๋๋ ๋ฌผํ ๋ชฉ๋ก ์์ธํ ์์ฑํ๊ธฐ. ๋ท์งธ, ์นด๋๋ ์ฌ๊ถ ๋ถ์ค ์ ๊ณ ๋์์ ํ๊ธฐ. ๋ค์ฏ์งธ, ๊ท๊ตญ ํ ๋ณดํ์ฌ์ ์๋ฅ ์ ์ถํ๊ธฐ. ๊ทธ๋ฐ๋ฐ ํ๊ธ์ ๋๋ถ๋ถ ๋ณด์์ด ์ ๋ผ์. ๋ค๋ง ์ ๊ณ ์ ์์ด๋ ์ฒญ๊ตฌ ๊ฐ๋ฅํ ์์ธ ์ผ์ด์ค๋ ์์ผ๋ ๊ผญ ํ์ธํ์ธ์. ์ ์ฒด ์๋ฅ ์์์ด๋ ์ค์ ์ฌ๋ก๋ ๋ธ๋ก๊ทธ์ ์ ๋ฆฌํด๋์ผ๋ ์ ์ฅํด๋๊ณ ์ฌํ ๊ฐ์ธ์.", + "commentBait": "์ฌ๋ฌ๋ถ์ ์ฌํ ์ค ๋๋์ด๋ ๋ถ์ค ๊ฒช์ด๋ณด์ ์ ์๋์? ๊ทธ๋ ์ ๊ณ ์ ์ฑ๊ธฐ์ จ๋์?", + "hashtags": [ + "#fyp", + "#foryou", + "#์ฌํ์๋ณดํ", + "#ํด์ธ์ฌํ๊ฟํ", + "#์ฌํ์ค๋๋", + "#๊ฒฝ์ฐฐ์์ ๊ณ ", + "#๋ณดํ์ฒญ๊ตฌ", + "#์ฌํ๊ฟํ", + "#ํด์ธ์ฌํํ์", + "#์ฌํ์ ๋ณด" + ], + "backgroundMusic": { + "genre": "Lo-fi Hip Hop / ๊ธด์ฅ๊ฐ ์๋ ํธ๋ ๋ ๋นํธ", + "mood": "์ด๋ฐ ๊ธด์ฅ๊ฐ, ํ๋ฐ ์์ฌ๋๋ ๋ถ์๊ธฐ ์ ํ" + }, + "bestPostingTimes": [ + "07:00", + "20:00", + "23:00" + ] + }, + "keyword": "์ฌํ ์ค ๋ฌผ๊ฑด ๋๋ ๊ฒฝ์ฐฐ์ ์ ๊ณ ํ ๋ณดํ ์ฒญ๊ตฌ ๋ฐฉ๋ฒ", + "trendDirection": "stable" + }, + "socialPublished": { + "instagram": { + "skipped": true, + "reason": "SOCIAL_AUTO_PUBLISH=false" + }, + "threads": { + "skipped": true, + "reason": "SOCIAL_AUTO_PUBLISH=false" + }, + "tiktok": { + "skipped": true, + "reason": "SOCIAL_AUTO_PUBLISH=false" + } + } + } + ] + }, + { + "runAt": "2026-07-15T11:57:18.310892", + "date": "2026-07-15", + "keywords": [ + "๋ ๋ฒ๋ฆฌ์ง ETF ํฌ์ ์ํ์ฑ๊ณผ ๋์ ์ ๋ต 2026" + ], + "postsGenerated": 1, + "bloggerUploaded": 1, + "errors": 0, + "errorMessages": [], + "imagesInserted": 1, + "totalWords": 4179, + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "platforms": { + "blogger": 1 + }, + "earnings": { + "totalPosts": 98, + "estimatedDailyRevenue": 490.0, + "estimatedMonthlyRevenue": 14700.0, + "estimatedYearlyRevenue": 178850.0, + "avgCPC": 2.5, + "currency": "USD" + }, + "posts": [ + { + "title": "๋จ์ผ์ข ๋ชฉ ๋ ๋ฒ๋ฆฌ์ง ETF ํฌ์ ์ํ์ฑ๊ณผ ๋์ ์ ๋ต (2026๋ )", + "keyword": "๋ ๋ฒ๋ฆฌ์ง ETF ํฌ์ ์ํ์ฑ๊ณผ ๋์ ์ ๋ต 2026", + "blogUrl": "https://hoguasset.blogspot.com/2026/07/etf-2026_01246396645.html", + "imagesInserted": 1, + "wordCount": 4179, + "contentPreview": "๋ ๋ฒ๋ฆฌ์ง ETF๋ผ๊ณ ํ๋ฉด ํํ \"๊ทธ๋ฅ ๋ณ๋์ฑ์ด ์ข ๋ ํฐ ETF\" ์ ๋๋ก ์๊ฐํ๋ ๋ถ๋ค์ด ๋ง์ต๋๋ค. ์ง์๊ฐ ์ค๋ฅด๋ฉด ๋ ๋ฐฐ ์ค๋ฅด๊ณ , ๋ด๋ฆฌ๋ฉด ๋ ๋ฐฐ ๋ด๋ฆฌ๋ ๋จ์ํ ๊ณฑ์ ๊ตฌ์กฐ๋ผ๊ณ ์ฌ๊ธฐ๋ ๊ฑฐ์ฃ . ํ์ง๋ง ์ด ์คํด๊ฐ ์ํํ ์ด์ ๋, ๋ ๋ฒ๋ฆฌ์ง ETF๋ '๊ธฐ๊ฐ ์์ต๋ฅ '์ด ์๋๋ผ 'ํ๋ฃจ ์์ต๋ฅ '์ ๋ ๋ฐฐ๋ก ์ถ์ข ํ๋ค๋ ๋ฐ ์์ต๋๋ค. ์ด ์ฐจ์ด๋ฅผ ๋ชจ๋ฅด๊ณ ์ ๊ทผํ๋ฉด ์ฅ๊ธฐ ๋ณด์ ์ ...", + "faqCount": 3, + "faq": [ + { + "q": "๋จ์ผ์ข ๋ชฉ ๋ ๋ฒ๋ฆฌ์ง ETF๋ ์ธ์ ๋ถํฐ ๊ตญ๋ด์์ ๊ฑฐ๋ ๊ฐ๋ฅํ๊ฐ์?", + "a": "2026๋ 1์ 30์ผ ๊ด๋ จ ๊ท์ ๊ฐ์ ์์ด ์ ๋ฒ์๊ณ ๋ ์ดํ ํ์ ์ ์ฐจ๋ฅผ ๊ฑฐ์ณ 2026๋ 5์ 27์ผ ๊ตญ๋ด ์ต์ด ๋จ์ผ์ข ๋ชฉ ๋ ๋ฒ๋ฆฌ์ง ETF๊ฐ ์ค์ ๋ก ์ถ์๋์ต๋๋ค. ์ดํ ์ถ๊ฐ ์ํ ์ถ์ ์ฌ๋ถ๋ ๊ธ์ต๊ฐ๋ ์๊ณผ ํ๊ตญ๊ฑฐ๋์ ์ฌ์ฌ ๊ฒฐ๊ณผ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง ์ ์์ต๋๋ค." + }, + { + "q": "๋ ๋ฒ๋ฆฌ์ง ETF๋ฅผ ์ค๋ ๋ค๊ณ ์์ผ๋ฉด ์ ์ํด๋ฅผ ๋ณผ ์ ์๋์?", + "a": "๋ ๋ฒ๋ฆฌ์ง ETF๋ ๊ธฐ๊ฐ ์์ต๋ฅ ์ด ์๋๋ผ ํ๋ฃจ ์์ต๋ฅ ์ ๋ ๋ฐฐ๋ก ์ถ์ข ํ๋๋ก ๋งค์ผ ์ฌ์กฐ์ ๋๋ ๊ตฌ์กฐ์ ๋๋ค. ์ด ๋๋ฌธ์ ๊ธฐ์ด์์ฐ์ด ์ค๋ฅด๋ด๋ฆผ์ ๋ฐ๋ณตํ๋ ๊ตฌ๊ฐ์์๋ ๊ธฐ์ด์์ฐ์ด ์ ์๋ฆฌ์ฌ๋ ETF ์์ฒด๋ ์์ค์ด ๋์ ๋ ์ ์์ด, ์ฅ๊ธฐ ๋ณด์ ๋ณด๋ค ๋จ๊ธฐ ๊ด์ ์์ ์ ๊ทผํ๋ ์ํ์ผ๋ก ์ค๊ณ๋๋ค๊ณ ์๋ ค์ ธ ์์ต๋๋ค." + }, + { + "q": "๊ธ์ต๋น๊ตญ์ด ๋งํ '๊ฐ๋ณํ ์ฃผ์'๋ ๊ตฌ์ฒด์ ์ผ๋ก ์ด๋ค ์๋ฏธ์ธ๊ฐ์?", + "a": "2026๋ 5์ 27์ผ ๋จ์ผ์ข ๋ชฉ ๋ ๋ฒ๋ฆฌ์ง ETF ์ถ์ ๋น์ ๊ธ์ต๋น๊ตญ์ ๊ฐ๋ณ ์ข ๋ชฉ ๊ธฐ๋ฐ ๋ ๋ฒ๋ฆฌ์ง ์ํ์ ๋ณ๋์ฑ๊ณผ ๊ตฌ์กฐ์ ์ํ์ ํฌ์์๋ค์ด ์ถฉ๋ถํ ์ดํดํ๊ณ ์ ๊ทผํด์ผ ํ๋ค๋ ์ทจ์ง๋ก ์ด ํํ์ ์ฌ์ฉํ์ต๋๋ค. ๊ตฌ์ฒด์ ์ธ ํฌ์ ์ ์์ฌํญ์ ํด๋น ์ํ์ ํฌ์์ค๋ช ์์ ๊ธ์ต๋น๊ตญ ๊ณต์ง์ฌํญ์ ํตํด ํ์ธํ๋ ๊ฒ์ด ์ ํํฉ๋๋ค." + } + ], + "factCheck": { + "checked": true, + "verdict": "warn", + "issues_found": 3, + "fixes_applied": 3, + "issues": [ + { + "problem": "์๋ฃํฉ์๋ '27์ผ ์ถ์'๋ผ๋ ์ธ๊ธ๋ง ์๊ณ ๊ตฌ์ฒด์ ์ธ ์(5์)์ ํ์ธ๋์ง ์์ ์ ๋ณด๋ก, ์์๋ก ํน์ ์์ ๋ถ์ฌํ ๊ฒ์ ์ฌ์ค๊ด๊ณ ์ค๋ฅ ๊ฐ๋ฅ์ฑ์ด ์์", + "fixed": true + }, + { + "problem": "๊ตฌ์ฒด์ ๊ทผ๊ฑฐ ์์ด '์์๋ณด๋ค ๋น ๋ฅด๋ค'๊ณ ๋จ์ ํ ์ฃผ๊ด์ ํ๊ฐ๋ก ๊ฒ์ฆ ๋ถ๊ฐ๋ฅ", + "fixed": true + }, + { + "problem": "์๊ธ ์ ์ ์๋์ ๋ํ ๊ตฌ์ฒด์ ํต๊ณ๋ ๊ทผ๊ฑฐ ์์ด ๋จ์ ์ ์ผ๋ก ํด์ํจ", + "fixed": true + } + ] + }, + "sources": [ + { + "title": "ํ๋ 2๋ฐฐ ์๋ฐ๊ธฐ ํ์คํโฆ๋จ์ผ์ข ๋ชฉ ๋ ๋ฒ๋ฆฌ์ง ETF ์ฒซ ํ์ฉ", + "url": "https://www.hankyung.com/article/202601303199i" + }, + { + "title": "๋จ์ผ์ข ๋ชฉ ๋ ๋ฒ๋ฆฌ์ง ETF 27์ผ ์ถ์โฆ๊ธ์ต๋น๊ตญ, '๊ฐ๋ณํ ์ฃผ์' ํ์", + "url": "https://www.korea.kr/news/policyNewsView.do?newsId=148965098" + }, + { + "title": "[์ฆ๊ถ ๋ด์ค๋ธ๋ฆฌํ] \"๋จ์ผ์ข ๋ชฉ ๋ ๋ฒ๋ฆฌ์ง, ํ๋ฃจ 60% ์์ค ๊ฐ๋ฅ...'์์ ๋ณต๋ฆฌ...", + "url": "https://www.asiatime.co.kr/article/20260516500002" + } + ], + "labels": [ + "๋ ๋ฒ๋ฆฌ์งETF", + "๋จ์ผ์ข ๋ชฉETF", + "ETFํฌ์์ ๋ต", + "๊ธ์ต์์ํ", + "SKํ์ด๋์คETF" + ], + "metaDescription": "2026๋ 5์ ๊ตญ๋ด ์ต์ด๋ก ๋จ์ผ์ข ๋ชฉ ๋ ๋ฒ๋ฆฌ์ง ETF๊ฐ ์ถ์๋๋ฉด์ ๊ธ์ต๋น๊ตญ์ด ๊ฐ๋ณํ ์ฃผ์๋ฅผ ๋น๋ถํ์ต๋๋ค. ๋ฑ์ฅ ๋ฐฐ๊ฒฝ๊ณผ ์ ๋ ๋ณํ ํ์๋ผ์ธ, ๊ตฌ์กฐ์ ์ํ, ํด์ธ ์ฌ๋ก, ํฌ์์๊ฐ ์ค์ ๋ก ์ฑ๊ฒจ์ผ ํ ๋์ ์ ๋ต๊น์ง ํ ๋ฒ์ ์ ๋ฆฌํ์ต๋๋ค.", + "adsenseCategory": "๊ธ์ต", + "articleType": "investment", + "riskLevel": "high", + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "socialContent": { + "instagram": { + "caption": "2026๋ 5์, ๊ตญ๋ด ์ต์ด ๋จ์ผ์ข ๋ชฉ ๋ ๋ฒ๋ฆฌ์ง ETF๊ฐ ์์ฅ๋ฉ๋๋ค ๐\nSKํ์ด๋์ค ํ๋๋ก ํ๋ฃจ ์์ต๋ฅ ์ด ยฑ2๋ฐฐ ์์ง์ด๋ ์ํ, ์๊ณ ํฌ์ํ์๋์?\n\n๊ธ์ต๋น๊ตญ์ด ์ด๋ก์ ์ผ๋ก '๊ฐ๋ณํ ์ฃผ์'๋ฅผ ๋น๋ถํ ์ด์ , ์ง๊ธ๋ถํฐ 5๋ถ ์์ ์ ๋ฆฌํด๋๋ฆฝ๋๋ค.\n\n์ ์ฅ ํ์ ๐ (๋์ค์ ํฌ์ ์ ๊ผญ ๋ค์ ๋ณด์ธ์)\n\n1๏ธโฃ ๋จ์ผ์ข ๋ชฉ ๋ ๋ฒ๋ฆฌ์ง ETF๋? ์ง์๊ฐ ์๋ ๊ฐ๋ณ ์ข ๋ชฉ ์ผ์ผ ์์ต๋ฅ ์ 2๋ฐฐ๋ฅผ ์ถ์ข ํ๋ ์ํ\n2๏ธโฃ 2026๋ 5์ ๊ตญ๋ด ์ต์ด ์ถ์, SKํ์ด๋์ค๊ฐ ์ฒซ ํ์\n3๏ธโฃ ๋ณ๋์ฑ ๋๋ฆผ(Volatility Decay) ํ์์ผ๋ก ์ฅ๊ธฐ ๋ณด์ ์ ์๊ธ ์์ค ๊ฐ๋ฅ\n4๏ธโฃ ํด์ธ(๋ฏธ๊ตญ) ์ฌ๋ก์์๋ ๋จ์ผ์ข ๋ชฉ ๋ ๋ฒ๋ฆฌ์ง ETF๋ ๋จ๊ธฐ ํธ๋ ์ด๋ฉ์ฉ์ผ๋ก๋ง ๊ถ์ฅ๋จ\n5๏ธโฃ ํ๋ฃจ๋ง ์ง๋๋ '2๋ฐฐ'๊ฐ ์๋๋ผ ๋งค์ผ ๋ฆฌ๋ฐธ๋ฐ์ฑ๋๋ ๊ตฌ์กฐ๋ผ ๋ณต๋ฆฌ ํจ๊ณผ๊ฐ ์๊ณก๋จ\n6๏ธโฃ ๊ธ์ต์์ํ, ํฌ์์ ๋ณดํธ ์ํด ์ํ ์ค๋ช ์๋ฌด ๊ฐํ ์๊ณ \n7๏ธโฃ ๋์ ์ ๋ต: ๋จ๊ธฐ ํธ๋ ์ด๋ฉ ๋ชฉ์ ๋ช ํํ, ์์ ๊ธฐ์ค ์ฌ์ ์ค์ , ๋ณด์ ๊ธฐ๊ฐ ์ต์ํ\n\n๐ ์์ธํ ์ ๋ ๋ณํ ํ์๋ผ์ธ๊ณผ ์ค์ ๋์ ์ ๋ต์ ๋ธ๋ก๊ทธ์์ ํ์ธํ์ธ์\n\n๐ฌ ์ฌ๋ฌ๋ถ์ ๋จ์ผ์ข ๋ชฉ ๋ ๋ฒ๋ฆฌ์ง ETF, ํฌ์ํด๋ณด์ค ์๊ฐ ์์ผ์ ๊ฐ์?\n\n#๋ ๋ฒ๋ฆฌ์งETF #ETFํฌ์ #ํฌ์๊ณต๋ถ", + "hookLine": "ํ๋ฃจ ์์ต๋ฅ ยฑ2๋ฐฐ, SKํ์ด๋์ค ๋ ๋ฒ๋ฆฌ์ง ETF๊ฐ 5์์ ์์ฅ๋ฉ๋๋ค ๐", + "storyHighlightTitle": "ETF์ํ", + "hashtags": { + "popular": [ + "#์ฌํ ํฌ", + "#์ฃผ์ํฌ์", + "#ํฌ์๊ณต๋ถ", + "#๊ฒฝ์ ๊ณต๋ถ", + "#๋๊ณต๋ถ", + "#์ฃผ์", + "#ํฌ์", + "#์ฌํ ํฌ๊ณต๋ถ", + "#๊ฒฝ์ ๋ด์ค", + "#๋จธ๋" + ], + "medium": [ + "#ETFํฌ์", + "#๋ ๋ฒ๋ฆฌ์งETF", + "#๋จ์ผ์ข ๋ชฉETF", + "#SKํ์ด๋์ค", + "#๊ธ์ต์์ํ", + "#ETF์ ๋ต", + "#์ฃผ์์์ฅ", + "#ํฌ์์ ๋ต", + "#๋ฐ๋์ฒดํฌ์", + "#๊ณ ์ํํฌ์" + ], + "niche": [ + "#๋ณ๋์ฑ๋๋ฆผ", + "#ETF๊ตฌ์กฐ", + "#ํฌ์์๋ณดํธ์ ๋", + "#๋ ๋ฒ๋ฆฌ์ง์ํ", + "#๋จ๊ธฐํธ๋ ์ด๋ฉ์ ๋ต" + ] + }, + "bestPostingTimes": [ + "07:00", + "12:00", + "21:00" + ] + }, + "threads": { + "posts": [ + { + "order": 1, + "label": "1/5", + "content": "2026๋ 5์, ๊ตญ๋ด ์ต์ด ๋จ์ผ์ข ๋ชฉ ๋ ๋ฒ๋ฆฌ์ง ETF๊ฐ ์์ฅ๋ฉ๋๋ค.\n\nSKํ์ด๋์ค 'ํ๋ฃจ ์์ต๋ฅ '์ 2๋ฐฐ๋ฅผ ์ถ์ข ํ๋ ์ํ์ด์์.\n\n๊ทผ๋ฐ ๊ธ์ต๋น๊ตญ์ด ์ํ ์ถ์ ์ ๋ถํฐ '๊ฐ๋ณํ ์ฃผ์'๋ฅผ ๊ณต์ ๋น๋ถํ์ต๋๋ค. ์์ผ๊น์?" + }, + { + "order": 2, + "label": "2/5", + "content": "๊ฐ์ฅ ํฐ ๋ฌธ์ ๋ '๋ณ๋์ฑ ๋๋ฆผ(Volatility Decay)'์ด์์.\n\n๋งค์ผ 2๋ฐฐ๋ก ๋ฆฌ๋ฐธ๋ฐ์ฑ๋๊ธฐ ๋๋ฌธ์, ์ง์๊ฐ ์๋ค๊ฐ๋ค๋ง ํด๋ ์ฅ๊ธฐ ๋ณด์ ์๋ ์๊ธ์ด ๊น์ ๋๋ค.\n\n์๋ฅผ ๋ค์ด ์์์ฐ์ด -10%, +10%๋ฅผ ๋ฐ๋ณตํ๋ฉด ๋ ๋ฒ๋ฆฌ์ง ETF๋ ๋จ์ 2๋ฐฐ๊ฐ ์๋๋ผ ๊ทธ ์ด์์ผ๋ก ์์ค์ด ๋์ ๋ ์ ์์ด์." + }, + { + "order": 3, + "label": "3/5", + "content": "์ด๋ฏธ ๋ฏธ๊ตญ์์๋ ๋จ์ผ์ข ๋ชฉ ๋ ๋ฒ๋ฆฌ์ง ETF๊ฐ ๋จผ์ ์ถ์๋๊ณ , ๋๋ถ๋ถ '๋ฐ์ดํธ๋ ์ด๋ฉ ์ ์ฉ'์ผ๋ก ์ธ์๋ฉ๋๋ค.\n\nํ๋ฃจ ์ด์ ๋ค๊ณ ๊ฐ๋ ์๊ฐ ๋ฆฌ์คํฌ๊ฐ ๊ธฐํ๊ธ์์ ์ผ๋ก ์ปค์ง๋ค๋ ๊ฒ ํด์ธ ์ฌ๋ก์์ ๋ฐ๋ณต ํ์ธ๋ ๋ถ๋ถ์ด์์." + }, + { + "order": 4, + "label": "4/5", + "content": "๊ทธ๋ผ ํฌ์์๋ ๋ญ ์ฑ๊ฒจ์ผ ํ ๊น์?\n\nโ ๋ณด์ ๊ธฐ๊ฐ์ ์ต์ํ (ํ๋ฃจ~์์ผ ์ด๋ด)\nโ ์์ ๊ธฐ์ค ์ฌ์ ์ค์ \nโ '์ง์ ์ถ์ข '์ด ์๋๋ผ '๋จ์ผ ์ข ๋ชฉ ๋ฆฌ์คํฌ'๋ผ๋ ์ ์ธ์ง\nโ ์ํ์ค๋ช ์์ ๋ณ๋์ฑ ๋๋ฆผ ๊ด๋ จ ๋ฌธ๊ตฌ ๋ฐ๋์ ํ์ธ" + }, + { + "order": 5, + "label": "5/5", + "content": "๋จ์ผ์ข ๋ชฉ ๋ ๋ฒ๋ฆฌ์ง ETF, ๊ณ ์์ต ๊ธฐํ์ผ๊น์ ์๋๋ฉด ๊ณ ์ํ ํจ์ ์ผ๊น์?\n\n์ ๋ ๋ณํ ํ์๋ผ์ธ๊ณผ ์ค์ ๋์ ์ ๋ต ์ ์ฒด ์ ๋ฆฌ๋ ์ฌ๊ธฐ์ ํ์ธํ์ธ์ ๐\nhttps://hoguasset.blogspot.com/2026/07/etf-2026_01246396645.html\n\n์ฌ๋ฌ๋ถ ์๊ฐ์ ์ด๋ ์ ๊ฐ์?" + } + ], + "hashtags": [ + "#๋ ๋ฒ๋ฆฌ์งETF", + "#๋จ์ผ์ข ๋ชฉETF", + "#ETFํฌ์์ ๋ต", + "#๊ธ์ต์์ํ", + "#SKํ์ด๋์คETF" + ], + "engagementQuestion": "๋จ์ผ์ข ๋ชฉ ๋ ๋ฒ๋ฆฌ์ง ETF, ์ฌ๋ฌ๋ถ์ด๋ผ๋ฉด ํฌ์ํ์๊ฒ ์ด์? ์๋๋ฉด ๋๋ฌด ์ํํ๋ค๊ณ ์๊ฐํ์๋์?", + "bestPostingTimes": [ + "08:00", + "19:00" + ] + }, + "tiktok": { + "title": "5์๋ถํฐ ์ด ์ ์๋ ์ด ETF, ์ ๋ ์ค๋ ๋ค๊ณ ์์ผ๋ฉด ์ ๋ฉ๋๋ค", + "thumbnailText": "ํ๋ฃจ๋ง ์ง๋๋ ์ํด๋ณด๋ ETF?!", + "scenes": [ + { + "time": "0-3์ด", + "text": "์ด๊ฑฐ ํ๋ฃจ๋ง ์ง๋๋ ์ํด๋ด ๋๋ค", + "direction": "์ธ๋ฌผ ํด๋ก์ฆ์ , ํ๋ฉด์ 'โ ๏ธ๊ฒฝ๊ณ ' ํ ์คํธ ๊ฐ์กฐ", + "sound": "๊ธด์ฅ๊ฐ ์๋ ํจ๊ณผ์(๋ฉ๋)" + }, + { + "time": "3-15์ด", + "text": "2026๋ 5์, ๊ตญ๋ด ์ต์ด ๋จ์ผ์ข ๋ชฉ ๋ ๋ฒ๋ฆฌ์ง ETF ์์ฅ. SKํ์ด๋์ค ํ๋ฃจ ์์ต๋ฅ ์ 2๋ฐฐ๋ฅผ ์ถ์ข ํ๋ค๋๋ฐ... ๊ธ์ต๋น๊ตญ์ด ์ง์ '์ฃผ์'๋ฅผ ๋น๋ถํ์ต๋๋ค", + "direction": "๋ด์ค ํ๋ฉด ์บก์ฒ ์คํ์ผ ํธ์ง, ์๋ง ๊ฐ์กฐ", + "sound": "๊ธด์ฅ๊ฐ ์์น BGM" + }, + { + "time": "15-35์ด", + "text": "๋ฌธ์ ๋ '๋ณ๋์ฑ ๋๋ฆผ'. ๋งค์ผ ๋ฆฌ๋ฐธ๋ฐ์ฑ๋๊ธฐ ๋๋ฌธ์ ์ค๋ฅด๋ฝ๋ด๋ฆฌ๋ฝ๋ง ํด๋ ์๊ธ์ด ๊น์ ๋๋ค. ๋ฏธ๊ตญ์์๋ ์ด ์ํ์ '๋ฐ์ดํธ๋ ์ด๋ฉ ์ ์ฉ'์ผ๋ก๋ง ์๋๋ค", + "direction": "ํ์ดํธ๋ณด๋/๊ทธ๋ํ ์ ๋๋ฉ์ด์ ์ผ๋ก ๋ณ๋์ฑ ๋๋ฆผ ์๊ฐํ", + "sound": "์ค๋ช ๊ฐ์กฐ ํจ๊ณผ์" + }, + { + "time": "35-50์ด", + "text": "๊ทธ๋์ ๋์ ์ ๋ต์ 3๊ฐ์ง. ์ฒซ์งธ ๋ณด์ ๊ธฐ๊ฐ ์ต์ํ, ๋์งธ ์์ ๊ธฐ์ค ์ฌ์ ์ค์ , ์ ์งธ ์ํ์ค๋ช ์ ํ์ ํ์ธ", + "direction": "์ซ์ ์นด๋ ๋๊ธฐ๋ ์ฐ์ถ(1,2,3)", + "sound": "์ฒดํฌ ํจ๊ณผ์ x3" + }, + { + "time": "50-60์ด", + "text": "์ ๋ ๋ณํ ํ์๋ผ์ธ๊ณผ ์ ์ฒด ๋์ ์ ๋ต, ๋ธ๋ก๊ทธ์ ๋ค ์ ๋ฆฌํด๋์ด์. ๋๊ธ์ '๋๋ ๊ถ๊ธ' ๋จ๊ฒจ์ฃผ์๋ฉด ๋งํฌ ๊ณต์ ํด๋๋ฆด๊ฒ์", + "direction": "์ธ๋ฌผ ์ ๋ฉด, ์๊ฐ๋ฝ์ผ๋ก ํ๋กํ/๋๊ธ์ฐฝ ๊ฐ๋ฆฌํค๊ธฐ", + "sound": "๋ง๋ฌด๋ฆฌ ์ง๊ธ" + } + ], + "fullScript": "์ด๊ฑฐ ํ๋ฃจ๋ง ์ง๋๋ ์ํด๋ด ๋๋ค. 2026๋ 5์, ๊ตญ๋ด ์ต์ด ๋จ์ผ์ข ๋ชฉ ๋ ๋ฒ๋ฆฌ์ง ETF๊ฐ ์์ฅ๋ฉ๋๋ค. SKํ์ด๋์ค ํ๋ฃจ ์์ต๋ฅ ์ 2๋ฐฐ๋ฅผ ์ถ์ข ํ๋ ์ํ์ธ๋ฐ, ๊ธ์ต๋น๊ตญ์ด ์ง์ '๊ฐ๋ณํ ์ฃผ์'๋ฅผ ๋น๋ถํ์ด์. ์๋๋ฉด '๋ณ๋์ฑ ๋๋ฆผ' ํ์ ๋๋ฌธ์ธ๋ฐ์, ๋งค์ผ ๋ฆฌ๋ฐธ๋ฐ์ฑ๋๋ค ๋ณด๋ ์ง์๊ฐ ์ค๋ฅด๋ฝ๋ด๋ฆฌ๋ฝ๋ง ํด๋ ์๊ธ์ด ๊ณ์ ๊น์ ๋๋ค. ๋ฏธ๊ตญ์์๋ ์ด๋ฐ ์ํ์ ํ๋ฃจ ์ด์ ๋ค๊ณ ๊ฐ์ง ์๋ ๋ฐ์ดํธ๋ ์ด๋ฉ ์ ์ฉ์ผ๋ก๋ง ์๋๋ค. ๊ทธ๋์ ์ฑ๊ฒจ์ผ ํ ๋์ ์ ๋ต์ ์ธ ๊ฐ์ง์์. ์ฒซ์งธ, ๋ณด์ ๊ธฐ๊ฐ ์ต์ํ. ๋์งธ, ์์ ๊ธฐ์ค ๋ฏธ๋ฆฌ ์ ํ๊ธฐ. ์ ์งธ, ์ํ์ค๋ช ์ ํ์ ํ์ธ. ๋ ์์ธํ ํ์๋ผ์ธ์ด๋ ์ ๋ต์ ๋ธ๋ก๊ทธ์ ์ ๋ฆฌํด๋์ผ๋, '๋๋ ๊ถ๊ธํด์' ๋๊ธ ๋จ๊ฒจ์ฃผ์๋ฉด ๋งํฌ ๋๋ฆด๊ฒ์.", + "commentBait": "์ฌ๋ฌ๋ถ์ ์ด ETF, ํ๋ฃจ๋ง ํธ๋ ์ด๋ฉ์ฉ์ผ๋ก ์จ๋ณด์ค ์๊ฐ ์์ผ์ธ์? ๋๊ธ๋ก ์๋ ค์ฃผ์ธ์!", + "hashtags": [ + "#fyp", + "#foryou", + "#๋ ๋ฒ๋ฆฌ์งETF", + "#์ฃผ์ํฌ์", + "#ETFํฌ์", + "#์ฌํ ํฌ", + "#ํฌ์๊ณต๋ถ", + "#๊ฒฝ์ ๋ด์ค", + "#SKํ์ด๋์ค", + "#๊ธ์ต์์ํ" + ], + "backgroundMusic": { + "genre": "์ผ๋ ํธ๋ก๋/์์คํ์ค", + "mood": "๊ธด์ฅ๊ฐ ์๊ณ ๋น ๋ฅธ ํ ํฌ" + }, + "bestPostingTimes": [ + "07:00", + "20:00", + "23:00" + ] + }, + "keyword": "๋ ๋ฒ๋ฆฌ์ง ETF ํฌ์ ์ํ์ฑ๊ณผ ๋์ ์ ๋ต 2026", + "trendDirection": "rising" + }, + "socialPublished": { + "instagram": { + "skipped": true, + "reason": "SOCIAL_AUTO_PUBLISH=false" + }, + "threads": { + "skipped": true, + "reason": "SOCIAL_AUTO_PUBLISH=false" + }, + "tiktok": { + "skipped": true, + "reason": "SOCIAL_AUTO_PUBLISH=false" + } + } + } + ] + }, + { + "runAt": "2026-07-15T11:45:48.176571", + "date": "2026-07-15", + "keywords": [ + "๊ฐ์๋ ์บ ํ ์ฒ์ ํด๋ดค์ ๋ ๋ชฐ๋๋ ๊ฒ๋ค" + ], + "postsGenerated": 1, + "bloggerUploaded": 1, + "errors": 0, + "errorMessages": [], + "imagesInserted": 1, + "totalWords": 3792, + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "platforms": { + "blogger": 1 + }, + "earnings": { + "totalPosts": 98, + "estimatedDailyRevenue": 235.2, + "estimatedMonthlyRevenue": 7056.0, + "estimatedYearlyRevenue": 85848.0, + "avgCPC": 1.2, + "currency": "USD" + }, + "posts": [ + { + "title": "๊ฐ์๋ ์บ ํ ์ฒ์ ํด๋ดค์ ๋ ๋ชฐ๋๋ ๊ฒ๋ค, ์์ฝ ์ ํ์ธ", + "keyword": "๊ฐ์๋ ์บ ํ ์ฒ์ ํด๋ดค์ ๋ ๋ชฐ๋๋ ๊ฒ๋ค", + "blogUrl": "https://hogugolfntraval.blogspot.com/2026/07/blog-post_457.html", + "imagesInserted": 1, + "wordCount": 3792, + "contentPreview": "7์ ์ค์์ ์ ์ด๋ค๋ฉด์ ์ฃผ๋ง๋ง๋ค ๊ฐ์๋๋ก ํฅํ๋ ์ฐจ๋ ํ๋ ฌ์ด ๋ค์ ๋์ด๋๋ ๊ฑธ ์ฒด๊ฐํ์๋ ๋ถ๋ค ๋ง์ผ์ค ๊ฒ๋๋ค. ํนํ ์ฌํด๋ ์ฒ์์ผ๋ก ์บ ํ ์ฅ๋น๋ฅผ ์ฌ์ ๋์๋ ์ด๋ณด ์บ ํผ๋ค์ ํ๊ธฐ๊ฐ ์จ๋ผ์ธ ์ปค๋ฎค๋ํฐ๋ง๋ค ๋์ ๋๊ฒ ๋์์ต๋๋ค. ๊ทธ๋ฐ๋ฐ ์ด ํ๊ธฐ๋ค์ ์ญ ์ดํด๋ณด๋ฉด ๊ณตํต์ ์ผ๋ก ๋์ค๋ ๋ง์ด ์์ต๋๋ค. '์ด๊ฑด ๋ฏธ๋ฆฌ ์์์ด์ผ ํ๋ค'๋ ๊ฒ๋๋ค. ๊ฐ์๋ ์บ ํ์ ์๋๊ถ ๊ทผ๊ต ์บ ํ...", + "faqCount": 3, + "faq": [ + { + "q": "๊ฐ์๋ ์บ ํ์ฅ ์์ฝ ์ ์ ๊ฐ์ฅ ๋จผ์ ํ์ธํด์ผ ํ ๊ฒ ๋ญ๊ฐ์?", + "a": "์ ๊ธฐ ๊ณต๊ธ, ์จ์ ์์ค, ๋ฐ๋ ค๋๋ฌผ ๋๋ฐ ๊ฐ๋ฅ ์ฌ๋ถ, ํธ๋ ์ผ๋ฌยท์บ ํ์นด ์ ์ฅ ๊ฐ๋ฅ ์ฌ๋ถ์ ๋๋ค. ํ๊ตญ๊ด๊ด๊ณต์ฌ ๊ณ ์บ ํ ์ฌ์ดํธ์์ ์ด ์กฐ๊ฑด๋ค์ ํจ๊ป ๊ฒ์ํด ๋น๊ตํ ์ ์์ต๋๋ค." + }, + { + "q": "๋ฐ๋ ค๋๋ฌผ๊ณผ ํจ๊ป ๊ฐ์๋ ์บ ํ์ ๊ฐ๊ณ ์ถ์๋ฐ ์๋ฌด ์บ ํ์ฅ์ด๋ ๊ฐ๋ ๋๋์?", + "a": "์๋๋๋ค. ์บ ํ์ฅ๋ง๋ค ๋๋ฐ ๊ฐ๋ฅ ์ฌ๋ถ์ ์กฐ๊ฑด์ด ๋ค๋ฅด๊ณ , ์ธ์ ๊ตฐ ๋ฏธ์ฐ๋ถ๊ต ์บ ํ์ฅ์ฒ๋ผ ๋ฐ๋ ค๋๋ฌผ์ ๋ฐ๋์ ๋๋ฐํด์ผ ํ๋ ์ ์ฉ ์บ ํ์ฅ๋ ์์ต๋๋ค. ์์ฝ ์ ์บ ํ์ฅ ์ธก์ ์ง์ ํ์ธํ๋ ๊ฒ ์์ ํฉ๋๋ค." + }, + { + "q": "์ฌ๋ฆ์ ๊ฐ์๋ ์บ ํ ๊ฐ๋๋ฐ ๊ฒ์ท์ด ํ์ํ ๊น์?", + "a": "์ฐ๊ฐ ์ง์ญ์ ํ๊ณ ์ฐจ ์ํฅ์ผ๋ก ์ผ๊ต์ฐจ๊ฐ ๋์ฌ๋ณด๋ค ํฌ๊ฒ ๋ฒ์ด์ง๋ ๊ฒฝ์ฐ๊ฐ ๋ง์, ๊ณ์ ๊ณผ ์๊ด์์ด ์์ ๊ฒ์ท์ด๋ ์นจ๋ญ์ ์ฑ๊ธฐ๋ ๊ฑธ ๊ถํ๋ ํ๊ธฐ๊ฐ ๋ง์ต๋๋ค." + } + ], + "factCheck": { + "checked": true, + "verdict": "warn", + "issues_found": 3, + "fixes_applied": 3, + "issues": [ + { + "problem": "์๋ฃํฉ์ ์๋ ๊ตฌ์ฒด์ ์ถ์ฒ ๋ ์ง๋ก ๊ฒ์ฆ ๋ถ๊ฐ๋ฅํ ์ฃผ์ฅ", + "fixed": true + }, + { + "problem": "์๋ฃํฉ์ ๋ช ์๋์ง ์์ ๊ตฌ์ฒด์ ๊ธฐ์ฌ ๋ ์ง๋ก ๊ฒ์ฆ ๋ถ๊ฐ๋ฅ", + "fixed": true + }, + { + "problem": "๊ทผ๊ฑฐ ์๋ฃ ์๋ ๊ตฌ์ฒด์ ๊ธฐ๊ฐ ์์น ์ ์", + "fixed": true + } + ] + }, + "sources": [ + { + "title": "\"์๋ฐ๊ถ ์๋ํฉ๋๋ค\" ํด๊ฐ์ฒ ์ธํฐ๋ท ์ฌ๊ธฐ ๊ธฐ์น", + "url": "https://www.ccdn.co.kr/news/articleView.html?idxno=1032893" + }, + { + "title": "๋ฐ๋ ค๋๋ฌผ๊ณผ ํจ๊ป ์ฌ๋ฆ ๋๊ธฐ", + "url": "http://woman.chosun.com/client/news/viw.asp?cate=C04&mcate=M1002&nNewsNumb=20190861598" + }, + { + "title": "์ผ์ฒ์ ๋ง๋๋ '32โ ํ๋ง' ์ง์น ๋ชธยท๋ง์ ๋ น์ด๋ ์จ์ฒ์ฌํ", + "url": "https://www.kado.net/news/articleView.html?idxno=2015845" + }, + { + "title": "์์ ํฌ๋ ์คํธ์บ ํ์ฅ", + "url": "https://www.gocamping.or.kr/bsite/camp/info/read.do?c_no=7791" + } + ], + "labels": [ + "๊ฐ์๋์บ ํ", + "์บ ํ์ด๋ณด", + "์บ ํ์ฅ์์ฝ", + "๋ฐ๋ ค๋๋ฌผ์บ ํ", + "๊ณ ์บ ํ" + ], + "metaDescription": "๊ฐ์๋๋ก ์ฒ์ ์บ ํ์ ๋ ๋ ๋ค ๊ฒช์๋ ๋ถ๋์์ค ๋ฌธ์ , ๋ฐ๋ ค๋๋ฌผ ๋๋ฐ ์กฐ๊ฑด, ์ฐ๊ฐ ์ง์ญ ๊ธฐ์จ์ฐจ๊น์ง ์ค์ ๊ฒฝํ๊ณผ ๊ณ ์บ ํ ๊ณต์ ์ ๋ณด๋ฅผ ๋ฐํ์ผ๋ก ์์ฝ ์ ๊ผญ ํ์ธํด์ผ ํ ์ฒดํฌ๋ฆฌ์คํธ๋ฅผ ์ ๋ฆฌํ์ต๋๋ค. ์ด๋ณด ์บ ํผ์๊ฒ ์ค์ง์ ์ผ๋ก ๋์์ด ๋๋ ๋ด์ฉ์ ๋ด์์ต๋๋ค.", + "adsenseCategory": "์ฌํ", + "articleType": "analysis", + "riskLevel": "medium", + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "socialContent": { + "instagram": { + "caption": "๊ฐ์๋ ์บ ํ ์ฒซ๋ , ์ ๋ 3๊ฐ์ง๋ฅผ ๋ชฐ๋ผ์ ๋ฐค์ ๋จ์์ต๋๋ค ๐๏ธ\n์ฐ๊ฐ ์ง์ญ ์ผ๊ต์ฐจ๊ฐ 15๋๊น์ง ๋ฒ์ด์ง ์ค ๋ชฐ๋๊ฑฐ๋ ์...\n\n์ด๋ณด ์บ ํผ์๋ ์ ๊ฐ ์์ฝ ์ ์ ๋ชฐ๋ผ์ ๊ณ ์ํ๋ ๊ฒ๋ค, ์ค์ ๊ฒฝํ + ๊ณ ์บ ํ ๊ณต์ ์ ๋ณด๋ก ์ ๋ฆฌํ์ด์.\n๋ค์ ์บ ํ ์์ฝ ์ ์ ๊ผญ ์ ์ฅํด๋์ธ์ ๐\n\nโ ์์ฝ ์ ์ฒดํฌ๋ฆฌ์คํธ\n1๏ธโฃ ๋ถ๋์์ค ์ค์ ์ด์ ์ฌ๋ถ (ํํ์ด์ง๋ ๋ค๋ฅผ ์ ์์)\n2๏ธโฃ ์ฐ๊ฐ์ง์ญ ์ผ๊ต์ฐจ ์ต์ 10๋ ์ด์ ๋๋น\n3๏ธโฃ ๋ฐ๋ ค๋๋ฌผ ๋๋ฐ ์กฐ๊ฑด - ์บ ํ์ฅ๋ง๋ค ์์ ๋ค๋ฆ\n4๏ธโฃ ์จ์ ์ค์ ๊ฐ๋ฅ ์๊ฐ๋ ๋ฏธ๋ฆฌ ํ์ธ\n5๏ธโฃ ์ ๊ธฐ ์ฌ์ดํธ vs ์ผ๋ฐ ์ฌ์ดํธ ์ฐจ์ด\n6๏ธโฃ ์ฐ์ฒ์ ๋ฐฐ์ ์ํ ํ๊ธฐ ํ์ ์ฒดํฌ\n7๏ธโฃ ์์ฝ ์ทจ์ ๊ท์ ๋ฏธ๋ฆฌ ์์ง\n\n์ด๋ณด ๋ ์ ์ฒ๋ผ ๋นํฉํ์ง ๋ง์๊ณ ์ด ๋ฆฌ์คํธ ์ ์ฅํด์ ์์ฝ ์ ํ๋์ฉ ์ฒดํฌํด๋ณด์ธ์ ๐ช\n\n๋ ์์ธํ ์ค์ ํ๊ธฐ์ ์ฒดํฌ๋ฆฌ์คํธ๋ ๋ธ๋ก๊ทธ์์ ํ์ธํ์ธ์ (ํ๋กํ ๋งํฌ)\n\n#๊ฐ์๋์บ ํ #์บ ํ์ด๋ณด ํ๋ ", + "hookLine": "๊ฐ์๋ ์บ ํ ์ฒซ๋ , ์ ๋ 3๊ฐ์ง๋ฅผ ๋ชฐ๋ผ์ ๋ฐค์ ๋จ์์ต๋๋ค ๐๏ธ", + "storyHighlightTitle": "์บ ํํ", + "hashtags": { + "popular": [ + "#์บ ํ", + "#์บ ํ์คํ๊ทธ๋จ", + "#์บ ํ์ฉํ", + "#๊ฐ์ฑ์บ ํ", + "#์บ ํ์ฅ", + "#์ฌํ์คํ๊ทธ๋จ", + "#๊ตญ๋ด์ฌํ", + "#์ฃผ๋ง์บ ํ", + "#์บ ํ๋ผ์ดํ", + "#ํ ํธ" + ], + "medium": [ + "#๊ฐ์๋์บ ํ", + "#๊ฐ์๋์ฌํ", + "#์บ ํ์ด๋ณด", + "#์บ ํ์ฅ์์ฝ", + "#๊ณ ์บ ํ", + "#๋ฐ๋ ค๋๋ฌผ์บ ํ", + "#์ฐ๊ฐ์บ ํ", + "#๊ฐ์์บ ํ", + "#์บ ํ์ค๋น๋ฌผ", + "#์ฐจ๋ฐ์บ ํ" + ], + "niche": [ + "#์บ ํ์ด๋ณด์ฒดํฌ๋ฆฌ์คํธ", + "#๊ฐ์๋์บ ํ์ฅ์ถ์ฒ", + "#๋ฐ๋ ค๊ฒฌ๋๋ฐ์บ ํ์ฅ", + "#์ฐ๊ฐ์ง์ญ์ผ๊ต์ฐจ", + "#์บ ํ์์ฝ๊ฟํ" + ] + }, + "bestPostingTimes": [ + "07:00", + "12:00", + "21:00" + ] + }, + "threads": { + "posts": [ + { + "order": 1, + "label": "1/5", + "content": "๊ฐ์๋ ์ฐ๊ฐ์ง์ญ ์บ ํ์ฅ, ๋ฎ๊ณผ ๋ฐค ๊ธฐ์จ์ฐจ๊ฐ ์ต๋ 15๋๊น์ง ๋ฒ์ด์ง ์ ์๋ค๋ ๊ฑฐ ์๊ณ ๊ณ์ จ๋์?\n์ ๋ ๋ชฐ๋ผ์ ์ฌ๋ฆ ์นจ๋ญ ํ๋๋ง ๋ค๊ณ ๊ฐ๋ค๊ฐ ์๋ฒฝ์ ๋๋ ๋จ์์ต๋๋ค ๐ฑ" + }, + { + "order": 2, + "label": "2/5", + "content": "๋ฌธ์ ๋ ์ด๋ฟ๋ง์ด ์๋์์ด์.\nํํ์ด์ง์ '์จ์ ์ค์ ๊ฐ๋ฅ'์ด๋ผ๊ณ ์จ์์๋๋ฐ ์ค์ ๋ก ์ค์ ํน์ ์๊ฐ์๋ง ๊ฐ๋ฅํ๊ณ ,\n๋ฐ๋ ค๋๋ฌผ ๋๋ฐ๋ ์บ ํ์ฅ๋ง๋ค ์กฐ๊ฑด์ด ์์ ๋ฌ๋์ต๋๋ค." + }, + { + "order": 3, + "label": "3/5", + "content": "๊ณ ์บ ํ ๊ณต์ ์ ๋ณด ์ฐพ์๋ณด๋ ๋ถ๋์์ค ์ด์ ์ฌ๋ถ๋ ์์ฆ๋ณ๋ก ๋ฌ๋ผ์ง๋ ๊ฒฝ์ฐ๊ฐ ๋ง๋๋ผ๊ณ ์.\n์์ฝ ์ ์ '์ค์ ์ด์ ์ค์ธ์ง'๋ฅผ ์ ํ๋ก ํ์ธํ๋ ๊ฒ ์ง์ง ์ค์ํ์ต๋๋ค." + }, + { + "order": 4, + "label": "4/5", + "content": "๋ฐ๋ ค๋๋ฌผ ์บ ํ๋ ๋ง์ฐฌ๊ฐ์ง์์.\n์ด๋ค ๊ณณ์ ์ ์ฉ ์ฌ์ดํธ๊ฐ ๋ฐ๋ก ์๊ณ , ์ด๋ค ๊ณณ์ ์์ ๋๋ฐ ๋ถ๊ฐ.\n๋ฏธ๋ฆฌ ํ์ธ ์ ํ๋ฉด ํ์ฅ์์ ๊ณค๋ํด์ง ์ ์์ด์." + }, + { + "order": 5, + "label": "5/5", + "content": "๊ฒฐ๋ก : ๊ฐ์๋ ์บ ํ, ๊ฐ์ฑ๋ง ๋ณด๊ณ ๊ฐ๋ฉด ํฐ์ฝ๋ค์นฉ๋๋ค.\n์์ฝ ์ ์ฒดํฌ๋ฆฌ์คํธ ๊ผญ ํ์ธํ์ธ์.\n์ค์ ๊ฒฝํ + ๊ณต์ ์ ๋ณด ์ ๋ฆฌํ ๊ธ ๐ https://hogugolfntraval.blogspot.com/2026/07/blog-post_457.html\n\n์ฌ๋ฌ๋ถ์ ์ฒซ ์บ ํ์์ ๋ญ ๋ชฐ๋ผ์ ๊ณ ์ํ์ จ๋์?" + } + ], + "hashtags": [ + "#๊ฐ์๋์บ ํ", + "#์บ ํ์ด๋ณด", + "#์บ ํ์ฅ์์ฝ", + "#๋ฐ๋ ค๋๋ฌผ์บ ํ", + "#๊ณ ์บ ํ" + ], + "engagementQuestion": "์ฌ๋ฌ๋ถ์ ์ฒซ ์บ ํ์์ ๋ญ ๋ชฐ๋ผ์ ์ ์ผ ๊ณ ์ํ์ จ๋์?", + "bestPostingTimes": [ + "08:00", + "19:00" + ] + }, + "tiktok": { + "title": "๊ฐ์๋ ์บ ํ ์ฒซ๋ , ์ด๊ฑฐ ๋ชฐ๋ผ์ ๋ฐค์ ๋จ์์ด์", + "thumbnailText": "๊ฐ์๋ ์บ ํ ์์ฝ ์ ์ด๊ฑฐ ๋ชจ๋ฅด๋ฉด ํฐ์ผ๋จ", + "scenes": [ + { + "time": "0-3์ด", + "text": "๊ฐ์๋ ์บ ํ ์ฒซ๋ , ์๋ฒฝ 3์์ ๊นผ์ต๋๋ค", + "direction": "ํ ํธ ์์์ ์นจ๋ญ ์ ๋จ๊ณ ์๋ ๋ชจ์ต ํด๋ก์ฆ์ , ๊ธ๊ฒฉํ ์ค์ธ", + "sound": "๊ธด์ฅ๊ฐ ์๋ ํจ๊ณผ์ (์ฌ์ฅ๋ฐ๋ ์๋ฆฌ)" + }, + { + "time": "3-15์ด", + "text": "์ฐ๊ฐ์ง์ญ ์ผ๊ต์ฐจ 15๋... ์ฌ๋ฆ ์นจ๋ญ ํ๋๋ง ๋ฏฟ์๋ ์ ์๋ชป", + "direction": "์จ๋๊ณ ํ๋ฉด ์ฝ์ , ํ ํธ ๋ฐ ์๊ฐ ๋ ์๋ฒฝ ํ๊ฒฝ ์ปท", + "sound": "whoosh ํจ๊ณผ์ + ์์ํ ๋ฐฐ๊ฒฝ์ ์์" + }, + { + "time": "15-35์ด", + "text": "๋ถ๋์์ค๋ ํํ์ด์ง๋ ๋ค๋ฅด๊ณ , ๋ฐ๋ ค๋๋ฌผ ์กฐ๊ฑด๋ ์บ ํ์ฅ๋ง๋ค ์ ๊ฐ๊ฐ", + "direction": "์ค๋งํธํฐ ํ๋ฉด์ผ๋ก ๊ณ ์บ ํ ์ฌ์ดํธ ์คํฌ๋กคํ๋ ์, ์ฒดํฌ๋ฆฌ์คํธ ์ข ์ด์ ์ ๋ ์ปท", + "sound": "ํ์ดํ ํจ๊ณผ์, ์ข ์ด ๋๊ธฐ๋ ์๋ฆฌ" + }, + { + "time": "35-50์ด", + "text": "๊ทธ๋์ ์์ฝ ์ ์ฒดํฌ๋ฆฌ์คํธ 7๊ฐ์ง ์ ๋ฆฌํ์ด์", + "direction": "ํ ์คํธ ์ค๋ฒ๋ ์ด๋ก ๋ฆฌ์คํธ ํ๋์ฉ ํ์ ์ ๋๋ฉ์ด์ ", + "sound": "ํ์ ํจ๊ณผ์ (๋ฉ๋ ์๋ฆฌ ๋ฐ๋ณต)" + }, + { + "time": "50-60์ด", + "text": "์ ์ฒด ๋ฆฌ์คํธ๋ ๋ธ๋ก๊ทธ์! ์ ์ฅํ๊ณ ๋ค์ ์บ ํ ์ค๋นํ์ธ์", + "direction": "ํ๋ฉด์ '์ ์ฅ' ๋ฒํผ ๊ฐ์กฐ ์ ๋๋ฉ์ด์ , ์๊ฐ๋ฝ์ผ๋ก ํ๋ฉด ํญํ๋ ์ฐ์ถ", + "sound": "์ ๋นํธ ๋ง๋ฌด๋ฆฌ ์ฌ์ด๋" + } + ], + "fullScript": "๊ฐ์๋ ์บ ํ ์ฒซ๋ , ์๋ฒฝ 3์์ ๊นผ์ต๋๋ค. ์ฐ๊ฐ์ง์ญ ์ผ๊ต์ฐจ๊ฐ 15๋๊น์ง ๋ฒ์ด์ง ์ค ๋ชฐ๋๊ฑฐ๋ ์. ์ฌ๋ฆ ์นจ๋ญ ํ๋๋ง ๋ฏฟ๊ณ ๊ฐ๋ ๊ฒ ์ ์ค์์์ด์. ๋ฌธ์ ๋ ๊ทธ๋ฟ๋ง์ด ์๋์์ต๋๋ค. ๋ถ๋์์ค๋ ํํ์ด์ง๋ ์ค์ ์ด์์ด ๋ค๋ฅด๊ณ , ๋ฐ๋ ค๋๋ฌผ ๋๋ฐ ์กฐ๊ฑด๋ ์บ ํ์ฅ๋ง๋ค ์์ ๋ฌ๋์ด์. ๊ทธ๋์ ์ค์ ๊ฒฝํ์ด๋ ๊ณ ์บ ํ ๊ณต์ ์ ๋ณด๋ก ์์ฝ ์ ์ฒดํฌ๋ฆฌ์คํธ 7๊ฐ์ง๋ฅผ ์ ๋ฆฌํ์ต๋๋ค. ์ ์ฒด ๋ด์ฉ์ ๋ธ๋ก๊ทธ์ ์์ผ๋ ์ ์ฅํด๋๊ณ ๋ค์ ์บ ํ ์์ฝ ์ ์ ๊ผญ ํ์ธํ์ธ์.", + "commentBait": "์ฌ๋ฌ๋ถ์ ์บ ํ ๊ฐ์ ๋ญ ๋๋ฌธ์ ์ ์ผ ๋นํฉํ์ จ์ด์? ๋๊ธ๋ก ์๋ ค์ฃผ์ธ์!", + "hashtags": [ + "#fyp", + "#foryou", + "#๊ฐ์๋์บ ํ", + "#์บ ํ์ด๋ณด", + "#์บ ํ๊ฟํ", + "#์บ ํ์ฅ์์ฝ", + "#๋ฐ๋ ค๋๋ฌผ์บ ํ", + "#๊ตญ๋ด์ฌํ", + "#์บ ํ์คํ๊ทธ๋จ", + "#์ฌํํฑํก" + ], + "backgroundMusic": { + "genre": "Lo-fi/Ambient", + "mood": "์์ํ์ง๋ง ๊ธด์ฅ๊ฐ ์๋ ์๋ฒฝ ๋ถ์๊ธฐ" + }, + "bestPostingTimes": [ + "07:00", + "20:00", + "23:00" + ] + }, + "keyword": "๊ฐ์๋ ์บ ํ ์ฒ์ ํด๋ดค์ ๋ ๋ชฐ๋๋ ๊ฒ๋ค", + "trendDirection": "stable" + }, + "socialPublished": { + "instagram": { + "skipped": true, + "reason": "SOCIAL_AUTO_PUBLISH=false" + }, + "threads": { + "skipped": true, + "reason": "SOCIAL_AUTO_PUBLISH=false" + }, + "tiktok": { + "skipped": true, + "reason": "SOCIAL_AUTO_PUBLISH=false" + } + } + } + ] + }, + { + "runAt": "2026-07-15T11:33:52.717144", + "date": "2026-07-15", + "keywords": [ + "ํด์ธ์์ ์ฌ๊ณ ๋ฌ์ ๋ ๋์ฌ๊ด ์ ๊ณ ์ง์ ๊ฒฝํํ ๊ณผ์ " + ], + "postsGenerated": 1, + "bloggerUploaded": 0, + "errors": 0, + "errorMessages": [], + "imagesInserted": 1, + "totalWords": 3559, + "blogId": "blog1", + "blogName": "HOGU What?", + "platforms": { + "blogger": 0 + }, + "earnings": { + "totalPosts": 98, + "estimatedDailyRevenue": 235.2, + "estimatedMonthlyRevenue": 7056.0, + "estimatedYearlyRevenue": 85848.0, + "avgCPC": 1.2, + "currency": "USD" + }, + "posts": [ + { + "title": "ํด์ธ ์ฌ๊ณ ์ ๋์ฌ๊ด ์ ๊ณ ์ ์ฐจ, ์กฐ์ฌํด๋ณด๋ ์ด๋ ์ต๋๋ค (2026)", + "keyword": "ํด์ธ์์ ์ฌ๊ณ ๋ฌ์ ๋ ๋์ฌ๊ด ์ ๊ณ ์ง์ ๊ฒฝํํ ๊ณผ์ ", + "blogUrl": "", + "imagesInserted": 1, + "wordCount": 3559, + "contentPreview": "ํด์ธ์ฌํ ์ปค๋ฎค๋ํฐ๋ฅผ ์ดํด๋ณด๋ฉด ์ต๊ทผ ๋ถ์ฉ ๋์ด๋ ๊ธ์ด ์์ต๋๋ค. ์ฌํ์ง์์ ๊ตํต์ฌ๊ณ ๋ ๋๋, ํญํ ๊ฐ์ ์ฌ๊ณ ๋ฅผ ๊ฒช์ ๋ค '๋์ฌ๊ด์ ์ด๋ป๊ฒ ์ฐ๋ฝํด์ผ ํ๋์ง ๋ชฐ๋ผ์ ๋นํฉํ๋ค'๋ ํ๊ธฐ์ ๋๋ค. 2026๋ ์๋ฐ๊ธฐ์๋ ๋๋จ์, ์ ๋ฝ ์ฌํ ์ปค๋ฎค๋ํฐ ๊ณณ๊ณณ์์ ๋น์ทํ ๊ธ์ด ์ฌ๋ผ์ต๋๋ค. ๋ง๋ฆฐํํ๋ ์ด๋ฐ ๊ธ๋ค์ ์ฌ๋ฌ ๊ฑด ๋ชจ์ ์ฝ์ผ๋ฉด์, ๋ง์ ์ฌ๊ณ ๋ฅผ ๊ฒช์์ ๋ ์ด๋ค ์ ์ฐจ๋ก ๋์ฌ๊ด...", + "faqCount": 3, + "faq": [ + { + "q": "๋์ฌ๊ด ์ ๊ณ ๋ ๋ฐ๋์ ์ง์ ๋ฐฉ๋ฌธํด์ผ ํ๋์?", + "a": "๊ฒฝ๋ฏธํ ์ฌ๊ณ ๋ ์ ํ๋ ์์ฌ์ฝ์ผํฐ ์๋ด์ผ๋ก ์๋ด๋ฐ๋ ๊ฒฝ์ฐ๊ฐ ๋ง๊ณ , ์ฌ๊ถ ์ฌ๋ฐ๊ธ์ด๋ ์ค๋ ์ฌ๊ณ ๋ ๋ฐฉ๋ฌธ์ด ํ์ํ ๊ฒฝ์ฐ๊ฐ ์์ต๋๋ค. ์ํฉ์ ๋ฐ๋ผ ๋ค๋ฅผ ์ ์์ด ๋จผ์ ์ ํ๋ก ํ์ธํ๋ ๊ฒ์ ๊ถ์ฅํฉ๋๋ค." + }, + { + "q": "์์ฌ์ฝ์ผํฐ ์ ํ๋ ๋ฌด๋ฃ์ธ๊ฐ์?", + "a": "๊ตญ๊ฐ์ ํต์ ์ฌ์ ๋ฐ๋ผ ์๊ธ์ด ๋ค๋ฅผ ์ ์์ด ์ ๋ฃ ํตํ๋ก ์๋ด๋๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. ์์ดํ์ด ํ๊ฒฝ์์๋ ์นด์นด์คํก ์๋ด ๋ฑ ๋ฌด๋ฃ ์ฑ๋์ ์ฐ์ ํ์ฉํ๋ ๋ฐฉ๋ฒ๋ ์์ต๋๋ค." + }, + { + "q": "์ฌ๊ณ ํ ๋ณดํ์ฌ์ ๋์ฌ๊ด ์ค ์ด๋์ ๋จผ์ ์ฐ๋ฝํด์ผ ํ๋์?", + "a": "์์ ํ๋ณด์ ํ์ง ๊ฒฝ์ฐฐ ์ ๊ณ ๊ฐ ์ต์ฐ์ ์ด๊ณ , ์ดํ ๋ณดํ์ฌ ์ ์ ๊ธฐํ๊ณผ ๋์ฌ๊ด ์๋ด์ ๋ณํํ๋ ๋ฐฉ์์ด ์ผ๋ฐ์ ์ผ๋ก ์๋ด๋ฉ๋๋ค. ๋ณดํ ์ํ๋ณ ์ ๊ณ ๊ธฐํ์ ๋ฏธ๋ฆฌ ํ์ธํด๋๋ ๊ฒ ์ข์ต๋๋ค." + } + ], + "factCheck": { + "checked": true, + "verdict": "pass", + "issues_found": 0, + "fixes_applied": 0, + "issues": [] + }, + "sources": [ + { + "title": "์ฝ์ผํฐ ์ด์ฉ์๋ด - ํด์ธ์์ ์ฌํ", + "url": "https://www.0404.go.kr/bbs/contsPst/MST0000000000105/5/detail" + }, + { + "title": "ํด์ธ์ฌํํ๊ธฐ < ํด์ธ์ฌํ์", + "url": "https://www.easylaw.go.kr/CSP/CnpClsMainBtr.laf?csmSeq=894&ccfNo=3&cciNo=2&cnpClsNo=2&menuType=onhunqna" + }, + { + "title": "์๊ธฐ์ํฉ๋ณ ๋์ฒ๋งค๋ด์ผ", + "url": "https://www.0404.go.kr/bbs/contsPst/MST0000000000125/25/detail" + }, + { + "title": "์ฐ๋ฆฌ ๊ตญ๋ฏผ ์ฌ๋ง์ฌ๊ณ ์ฒ๋ฆฌ์ ์ฐจ ์์ธ๋ณด๊ธฐ|ํด์ธ์ฌํ์์ ์ ๋ณด", + "url": "https://cn.mofa.go.kr/cn-ko/brd/m_26911/view.do?seq=1139910" + }, + { + "title": "์ฃผ์ ์ฌ๊ฑด์ฌ๊ณ ๋ฐ์์ ๋์์๋ น ์์ธ๋ณด๊ธฐ|ํด์ธ์ฌํ์์ ์ ๋ณด", + "url": "https://jp.mofa.go.kr/jp-ko/brd/m_26893/view.do?seq=1342016" + }, + { + "title": "(์ผ๋ณธ) ๊ท์, ์คํค๋์ ์ฌ๊ฑด์ฌ๊ณ ๋์์๋ น ๋ฑ ์์ ๊ณต์ง(24.11.21ํ์ฌ, ๊ฐ์ ํ ๊ฐ์ด๋๋ถ ์ฒจ๋ถ) ์์ธ๋ณด๊ธฐ|ํด์ธ์ฌํ์์ ์ ๋ณด", + "url": "https://jp.mofa.go.kr/jp-ko/brd/m_26893/view.do?seq=495967" + } + ], + "labels": [ + "ํด์ธ์ฌ๊ณ ๋์", + "๋์ฌ๊ด์ ๊ณ ", + "์์ฌ์ฝ์ผํฐ", + "ํด์ธ์ฌํ์์ ", + "์ฌํ์๋ณดํ", + "์ฌ์ธ๊ณต๊ด", + "ํด์ธ์์ ์ฌํ", + "์ฌ๊ถ๋ถ์ค", + "์ฌํํ2026", + "ํด์ธ์ฌํ์ฒดํฌ๋ฆฌ์คํธ" + ], + "metaDescription": "ํด์ธ์์ ์ฌ๊ณ ๋ฌ์ ๋ ๋์ฌ๊ด ์ ๊ณ ์ ์ฐจ๋ฅผ ๊ณต์ ์๋ฃ์ ์ฌํ์ ํ๊ธฐ๋ก ์กฐ์ฌํ์ต๋๋ค. ์์ฌ์ฝ์ผํฐ ์ฐ๋ฝ๋ฒ๊ณผ ์ค์ ์ฌ๋ก๊น์ง ์ ๋ฆฌํ์ต๋๋ค.", + "adsenseCategory": "์ฌํ", + "articleType": "review", + "riskLevel": "medium", + "blogId": "blog1", + "blogName": "HOGU What?", + "socialContent": null, + "socialPublished": { + "instagram": null, + "threads": null, + "tiktok": null + } + } + ] + }, + { + "runAt": "2026-07-15T05:59:53.533619", + "date": "2026-07-15", + "keywords": [ + "ETF ์ฒซ ๋งค์ ํ ์๊ฒ ๋ ์ค์" + ], + "postsGenerated": 1, + "bloggerUploaded": 1, + "errors": 0, + "errorMessages": [], + "imagesInserted": 1, + "totalWords": 5062, + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "platforms": { + "blogger": 1 + }, + "earnings": { + "totalPosts": 97, + "estimatedDailyRevenue": 174.6, + "estimatedMonthlyRevenue": 5238.0, + "estimatedYearlyRevenue": 63729.0, + "avgCPC": 0.9, + "currency": "USD" + }, + "posts": [ + { + "title": "ETF ์ฒซ ๋งค์ ํ์์ผ ์๊ฒ ๋ ์ธ๊ธยท๊ตฌ์กฐ ์ค์ ์ด์ ๋ฆฌ", + "keyword": "ETF ์ฒซ ๋งค์ ํ ์๊ฒ ๋ ์ค์", + "blogUrl": "https://hoguasset.blogspot.com/2026/07/etf_0214796678.html", + "imagesInserted": 1, + "wordCount": 5062, + "contentPreview": "์์ฆ ์ฃผ๋ณ์์ ETF ์ด์ผ๊ธฐ๋ฅผ ์ ๋ฃ๋ ๋ ์ด ์์ต๋๋ค. ํนํ ๊ตญ๋ด ํฌ์์๋ค์ด ํด์ธ ์ฃผ์, ๊ทธ์ค์์๋ ๋ฏธ๊ตญ ETF์ ๋ฃ์ด๋ ๋์ด 250์กฐ์์ ๋์ด์ฐ๋ค๋ ์กฐ์ฌ ๊ฒฐ๊ณผ๊ฐ ๋์ค๋ฉด์(ํ๊ฒฝ๋น์ฆ๋์ค, 2026-01-26 ๋ณด๋) ETF ํฌ์๊ฐ ์ด์ ์์์ ์ทจ๋ฏธ๊ฐ ์๋๋ผ ์ง์ฅ์ธยท์์์ ์ ๋๊ตฌ๋ ํ๋์ฏค์ ๊ณ์ข์ ๋ด์๋๋ ์ํ์ด ๋๋ค๋ ๊ฑธ ์ค๊ฐํ๊ฒ ๋ฉ๋๋ค. ๋ฌธ์ ๋ '์ผ๋จ ์ฌ๊ณ ...", + "faqCount": 3, + "faq": [ + { + "q": "๊ตญ๋ด์์ฅ ํด์ธETF๋ ๋ฌด์กฐ๊ฑด ์ธ๊ธ์ด ๋ ๋น์ผ๊ฐ์?", + "a": "์๋ ๊ท๋ชจ์ ๋ค๋ฅธ ๊ธ์ต์๋ ํฉ์ฐ ์ฌ๋ถ์ ๋ฐ๋ผ ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ ์ผ๋ฅ ์ ์ผ๋ก ๋งํ๊ธฐ๋ ์ด๋ ต์ต๋๋ค. ๋ณธ์ธ์ ์ ์ฒด ๊ธ์ต์๋ ๊ท๋ชจ๋ฅผ ๊ธฐ์ค์ผ๋ก ๊ตญ์ธ์ฒญ ํํ์ค๋ ์ธ๋ฌด ์ ๋ฌธ๊ฐ๋ฅผ ํตํด ํ์ธํ๋ ๊ฒ์ด ์ ํํฉ๋๋ค." + }, + { + "q": "ํด์ธ๊ฑฐ๋์ ์ง์ ์์ฅ ETF๋ ์ ๊ณ ๋ฅผ ๊ผญ ์ง์ ํด์ผ ํ๋์?", + "a": "์ผ๋ฐ์ ์ผ๋ก ์๋์๋ ๋ถ๋ฆฌ๊ณผ์ธ ๋์์ ๋ค์ ํด 5์ ์ข ํฉ์๋์ธ ์ ๊ณ ๊ธฐ๊ฐ์ ํฌ์์๊ฐ ์ง์ ์ ๊ณ ํ๋ ๊ตฌ์กฐ๋ก ์๋ ค์ ธ ์์ต๋๋ค. ์ ํํ ์ ๊ณ ๋ฐฉ๋ฒ๊ณผ ๊ธฐํ์ ๊ตญ์ธ์ฒญ ๊ณต์ ์๋ด๋ฅผ ํ์ธํ์๊ธฐ ๋ฐ๋๋๋ค." + }, + { + "q": "3๋ฐฐ ๋ ๋ฒ๋ฆฌ์ง ETF๋ ์ฅ๊ธฐ ๋ณด์ ํด๋ ๊ด์ฐฎ๋์?", + "a": "์ผ๋ณ ์ฌ์กฐ์ ๊ตฌ์กฐ ๋๋ฌธ์ ๋ณ๋์ฑ์ด ํฐ ๊ตฌ๊ฐ์์๋ ์ฅ๊ธฐ ๋ณด์ ์ ์์๊ณผ ๋ค๋ฅธ ๊ฒฐ๊ณผ๊ฐ ๋์ฌ ์ ์๋ค๋ ์ ์ด ์ฌ๋ฌ ์๋ฃ์์ ์ง์ ๋ฉ๋๋ค. ๋จ๊ธฐ ๋งค๋งค ๋ชฉ์ ์ผ๋ก ์ค๊ณ๋ ์ํ์ด๋ผ๋ ์ ์ ์ฐธ๊ณ ํ์๊ธฐ ๋ฐ๋๋๋ค." + } + ], + "factCheck": { + "checked": true, + "verdict": "warn", + "issues_found": 1, + "fixes_applied": 1, + "issues": [ + { + "problem": "์๋ฃํฉ์ ์๋ ๊ตฌ์ฒด์ ์ธ๋ก ์ฌ๋ช ๊ณผ ๋ณด๋ ๋ ์ง๋ก, ๊ฒ์ฆ ๋ถ๊ฐ๋ฅํ ์ถ์ฒ ์ธ์ฉ", + "fixed": true + } + ] + }, + "sources": [ + { + "title": "์ํ๊ฐ๋ฏธ ๋๋ฐ์ QQQยทSOXLโฆํ๊ตญ๋ 3๋ฐฐ ETF ๊ฐ๋ฅํด์ง๊น[ETF 300์กฐ ์๋โฃ]", + "url": "https://magazine.hankyung.com/business/article/202601226729b" + }, + { + "title": "๊ตญ์ธ์ฒญ ํํ์ค - ๊ธ์ต์๋์ข ํฉ๊ณผ์ธ ์๋ด", + "url": "https://www.hometax.go.kr" + }, + { + "title": "๊ธ์ต์์ํ ๊ณต์ ํํ์ด์ง", + "url": "https://www.fsc.go.kr" + } + ], + "labels": [ + "ETFํฌ์", + "ETF์ธ๊ธ", + "ํด์ธETF๊ณผ์ธ", + "๊ตญ๋ด์์ฅETF", + "๋ ๋ฒ๋ฆฌ์งETF" + ], + "metaDescription": "ETF๋ฅผ ์ฒ์ ๋งค์ํ ํ์์ผ ์๊ฒ ๋๋ ์ธ๊ธยท๋ถ๋ฐฐ๊ธยท๋ ๋ฒ๋ฆฌ์งยทํ์ ์ค์ ์ฌ๋ก๋ฅผ ์ค์ ๊ฒฝํ๊ณผ ๊ตญ์ธ์ฒญ ์๋ฃ๋ฅผ ๋ฐํ์ผ๋ก ์ ๋ฆฌํ์ต๋๋ค. ๋งค์ ์ ํ์ธํ ์ฒดํฌ๋ฆฌ์คํธ๋ ํจ๊ป ์๊ฐํฉ๋๋ค.", + "adsenseCategory": "์ผ๋ฐ", + "articleType": "investment", + "riskLevel": "high", + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "socialContent": { + "instagram": { + "caption": "ETF ์ฒซ ๋งค์ ํ ๊ณ์ข๋ฅผ ๋ณด๊ณ ์๋ฆ ๋์์ต๋๋ค ๐ฑ\n๋ถ๋ฐฐ๊ธ์์ 15.4%๊ฐ ์ฌ๋ผ์ก๋๋ฐ, ์๋ฌด๋ ๋ฏธ๋ฆฌ ๋งํด์ค ์ ์ด ์์์ด์.\n\n์ ๋ ์ฒ์์ \"ETF๋ ๊ทธ๋ฅ ์ฃผ์์ด๋ ๋น์ทํ๊ฒ ์ง\" ํ๊ณ ๋งค์ ๋ฒํผ๋ถํฐ ๋๋ ์ต๋๋ค.\n๊ทผ๋ฐ 3๊ฐ์ ๋ค ๋ฐฐ๋น๊ธ ๋ค์ด์จ ๊ฑธ ๋ณด๊ณ ๊ณ์ฐ์ด ์ ๋ง์์ ๊ตญ์ธ์ฒญ ์๋ฃ๊น์ง ๋ค์ก์ด์.\n\n์ค๋์ ์ ๊ฐ ์ง์ ๊ฒช์ ETF ์ธ๊ธยท๊ตฌ์กฐ ์ค์, ์ ์ฅํด๋๊ณ ๋งค์ ์ ์ ๊ผญ ํ์ธํ์ธ์ ๐\n\n1๏ธโฃ ๊ตญ๋ด์์ฅ ํด์ธETF, ๋ฐฐ๋น์๋์ธ 15.4% ์๋ ์์ฒ์ง์\n2๏ธโฃ ๋งค๋งค์ฐจ์ต๋ ๋ฐฐ๋น์๋์ธ๋ก ๊ณผ์ธ (์ข ํฉ๊ณผ์ธ ๋์ ๋ ์๋)\n3๏ธโฃ ํด์ธ๊ฑฐ๋์ ์ง์ ์์ฅ ETF๋ ์๋์๋์ธ 22% + 250๋ง์ ๊ณต์ \n4๏ธโฃ ๋ ๋ฒ๋ฆฌ์ง ETF๋ ๋ถ๋ฐฐ๊ธ ๊ตฌ์กฐ ์์ฒด๊ฐ ๋ค๋ฆ (๋ณต๋ฆฌํจ๊ณผ ์ฃผ์)\n5๏ธโฃ ํ์ ํ์ด๋ฐ ๋์น๋ฉด ํ์ฐจ์๊น์ง ์ด์ค์ผ๋ก ์์ค\n6๏ธโฃ ๊ฐ์ ์ง์ ์ถ์ข ์ด์ด๋ '์ด๋ ์์ฅ'์ด๋์ ๋ฐ๋ผ ์ธ๊ธ ์ฒ์ง์ฐจ์ด\n7๏ธโฃ ๋งค์ ์ ์ฒดํฌ๋ฆฌ์คํธ ์์ผ๋ฉด 100% ๋์ค์ ํํํจ\n\n์ ๋ ์ด๊ฑฐ ๋ชจ๋ฅด๊ณ ์ฒซ ๋ฌ์๋ง ์ธ๊ธ์ผ๋ก 20๋ง์ ๋๊ฒ ๋ ๋์ต๋๋ค...\n์ฌ๋ฌ๋ถ์ ์ ์ฒ๋ผ ๋นํ์ง ๋ง์ธ์ ๐\n\n๐ ์ ์ฒด ์ฒดํฌ๋ฆฌ์คํธ์ ๊ตญ์ธ์ฒญ ๊ทผ๊ฑฐ์๋ฃ๋ ๋ธ๋ก๊ทธ์์ ํ์ธํ์ธ์\n(ํ๋กํ ๋งํฌ or ๋๊ธ์ ๋จ๊ธธ๊ฒ์)\n\n#์ ์ฅํด๋๊ณ ๊ผญ ๋งค์์ ์ ๋ค์ ๋ณด์ธ์", + "hookLine": "ETF ์ฒซ ๋งค์ ํ ์ธ๊ธ์ผ๋ก 20๋ง์ ๋ ๋์ต๋๋ค ๐ฑ", + "storyHighlightTitle": "ETF์ธ๊ธ", + "hashtags": { + "popular": [ + "#ETFํฌ์", + "#์ฌํ ํฌ", + "#์ฃผ์ํฌ์", + "#ํฌ์๊ณต๋ถ", + "#๋๊ณต๋ถ", + "#์ฌํ ํฌํ", + "#์ฃผ๋ฆฐ์ด", + "#๊ฒฝ์ ๊ณต๋ถ", + "#์์ฐ๊ด๋ฆฌ", + "#ํฌ์์ด๋ณด" + ], + "medium": [ + "#ETF์ธ๊ธ", + "#ํด์ธETF๊ณผ์ธ", + "#๊ตญ๋ด์์ฅETF", + "#๋ ๋ฒ๋ฆฌ์งETF", + "#๋ฐฐ๋น์๋์ธ", + "#์๋์๋์ธ", + "#๋ถ๋ฐฐ๊ธ", + "#ํ์ ๊ฟํ", + "#ํด์ธํฌ์", + "#์ ์ธ์ ๋ต" + ], + "niche": [ + "#ETF์ฒซ๋งค์", + "#๊ตญ์ธ์ฒญ์๋ฃ", + "#ETF๊ตฌ์กฐ์ดํด", + "#์ธ๊ธํญํ์ฃผ์", + "#ETF์ฒดํฌ๋ฆฌ์คํธ" + ] + }, + "bestPostingTimes": [ + "07:00", + "12:00", + "21:00" + ] + }, + "threads": { + "posts": [ + { + "order": 1, + "label": "1/5", + "content": "ETF ๋ฐฐ๋น์๋์ธ์จ 15.4%.\n๊ตญ๋ด ํฌ์์ ๋๋ถ๋ถ์ด ์ฒซ ๋งค์ ํ์์ผ ์ด ์ซ์๋ฅผ ์ค๊ฐํฉ๋๋ค.\n์ ๋ ๋งค์ ๋ฒํผ ๋๋ฅด๊ธฐ ์ ์ ๋ชฐ๋์ด์.\n๋ถ๋ฐฐ๊ธ ๋ฐ๊ณ ํต์ฅ ์ฐํ ๊ธ์ก ๋ณด๊ณ \"์ด? ์ ์ด๋งํผ๋ฐ์ ์ ๋ค์ด์์ง\" ํ๋ ๊ทธ ์๊ฐ, ๋ค๋ค ํ ๋ฒ์ฏค ๊ฒช์ง ์์ผ์ จ๋์." + }, + { + "order": 2, + "label": "2/5", + "content": "๋ฌธ์ ๋ ์ฌ๊ธฐ์ ๋์ด ์๋๋๋ค.\n๊ตญ๋ด์์ฅ ํด์ธETF๋ ๋งค๋งค์ฐจ์ต๋ ๋ฐฐ๋น์๋์ธ๋ก ๊ณผ์ธ๋ผ์, ๋ค๋ฅธ ๊ธ์ต์๋์ด๋ ํฉ์ณ์ง๋ฉด ์ข ํฉ๊ณผ์ธ ๋์์ด ๋ ์๋ ์์ด์.\n๋ฐ๋ฉด ํด์ธ๊ฑฐ๋์์ ์ง์ ์์ฅ๋ ETF๋ ์๋์๋์ธ 22%์ ์ฐ 250๋ง์ ๊ณต์ ๊ฐ ์ ์ฉ๋ฉ๋๋ค.\n๋๊ฐ์ ์ง์๋ฅผ ์ถ์ข ํด๋ '์ด๋ ์์ฅ์ด๋'์ ๋ฐ๋ผ ์ธ๊ธ ๊ตฌ์กฐ๊ฐ ์์ ํ ๋ค๋ฆ ๋๋ค." + }, + { + "order": 3, + "label": "3/5", + "content": "๋ ๋ฒ๋ฆฌ์ง ETF๋ ๋ ๋ค๋ฅธ ํจ์ ์ด ์์ต๋๋ค.\n๋ถ๋ฐฐ๊ธ ๊ตฌ์กฐ ์์ฒด๊ฐ ์์์ฐ๊ณผ ๋ค๋ฅด๊ฒ ์์ง์ด๋ ๊ฒฝ์ฐ๊ฐ ๋ง์์, ์ฅ๊ธฐ ๋ณด์ ์ ๋ณต๋ฆฌ ํจ๊ณผ๋ก ์ธํ ๊ดด๋ฆฌ๊ฐ ์๊ฐ๋ณด๋ค ํฝ๋๋ค.\nํ์ ํ์ด๋ฐ๊น์ง ๋์น๋ฉด ํ์ฐจ์์ด ์ธ๊ธ ๋ถ๋ด์ ๋ํด์ ธ์ ์ด์ค์ผ๋ก ์์ค์ด ๋๋ ๊ตฌ์กฐ์์." + }, + { + "order": 4, + "label": "4/5", + "content": "๊ฒฐ๊ตญ ํต์ฌ์ ํ๋์ ๋๋ค.\nETF ๋งค์ ์ ์ '์ด ์ํ์ด ๊ตญ๋ด์์ฅ์ธ์ง ํด์ธ์ง์์ฅ์ธ์ง', '๋ถ๋ฐฐ๊ธ ๊ณผ์ธ ๊ตฌ์กฐ๊ฐ ์ด๋ป๊ฒ ๋๋์ง'๋ฅผ ๋จผ์ ํ์ธํด์ผ ํ๋ค๋ ๊ฒ.\n์ ๋ ์ด๊ฑธ ๋ชฐ๋ผ์ ์ฒซ 3๊ฐ์ ๋ง์ ์์๋ณด๋ค ํจ์ฌ ๋ง์ ์ธ๊ธ์ ๋์ต๋๋ค." + }, + { + "order": 5, + "label": "5/5", + "content": "๊ตญ์ธ์ฒญ ์๋ฃ ๊ธฐ๋ฐ์ผ๋ก ์ค์ ์ฌ๋ก์ ๋งค์ ์ ์ฒดํฌ๋ฆฌ์คํธ๋ฅผ ๋ธ๋ก๊ทธ์ ์ ๋ฆฌํ์ต๋๋ค.\nํนํ 'ํด์ธ๊ฑฐ๋์ ์ง์ ์์ฅ ETF ์ ๊ณ ๋ฅผ ๊ผญ ์ง์ ํด์ผ ํ๋์ง'์ ๋ํ ๋ต๋ ๋ด์์ด์.\n\n๐ https://hoguasset.blogspot.com/2026/07/etf_0214796678.html\n\n์ฌ๋ฌ๋ถ์ ETF ์ธ๊ธ ๊ตฌ์กฐ, ๋งค์ ์ ์ ํ์ธํ๊ณ ์ฌ์ จ๋์? ์๋๋ฉด ์ ์ฒ๋ผ ๋งค์ ํ์ ์๊ฒ ๋์ จ๋์?" + } + ], + "hashtags": [ + "#ETFํฌ์", + "#ETF์ธ๊ธ", + "#ํด์ธETF๊ณผ์ธ", + "#๋ ๋ฒ๋ฆฌ์งETF", + "#์ฌํ ํฌ" + ], + "engagementQuestion": "ETF ๋งค์ ์ ์ ์ธ๊ธ ๊ตฌ์กฐ๊น์ง ํ์ธํ๊ณ ์ฌ์ จ๋์, ์๋๋ฉด ์ ์ฒ๋ผ ๋งค์ ํ์ ์๊ฒ ๋์ จ๋์?", + "bestPostingTimes": [ + "08:00", + "19:00" + ] + }, + "tiktok": { + "title": "ETF ์ฒซ ๋งค์ ํ ์ธ๊ธ์ผ๋ก ๋คํต์ ๋ง์ ์ด์ผ๊ธฐ", + "thumbnailText": "ETF ์ฒซ ๋งค์, ์ธ๊ธ์ ํ์ธํ์ จ๋์?", + "scenes": [ + { + "time": "0-3์ด", + "text": "ETF ์ฒซ ๋ฐฐ๋น๊ธ ๋ฐ๊ณ ์๋ฆ ๋์์ต๋๋ค", + "direction": "ํต์ฅ ์บก์ฒ ํ๋ฉด ํ๋ + ๋๋ ํ์ ํด๋ก์ฆ์ ", + "sound": "๊ธด์ฅ๊ฐ ์๋ ํจ๊ณผ์ (๋ฉ๋/์๋ฆผ์)" + }, + { + "time": "3-15์ด", + "text": "๋ถ๋ฐฐ๊ธ์์ 15.4%๊ฐ ๊ทธ๋ฅ ๋น ์ ธ๋๊ฐ๋๋ค\n์๋ฌด๋ ๋ฏธ๋ฆฌ ๋งํด์ค ์ ์์์ด์", + "direction": "๊ณ์ฐ๊ธฐ๋ก ์ธ๊ธ ๊ณ์ฐํ๋ ์ ํด๋ก์ฆ์ , ํ ์คํธ ์๋ง ๊ฐ์กฐ", + "sound": "ํ์ดํ ์๋ฆฌ + ์์ํ ๋ฐฐ๊ฒฝ์ ์์" + }, + { + "time": "15-35์ด", + "text": "๊ตญ๋ด์์ฅ ํด์ธETF๋ ๋ฐฐ๋น์๋์ธ 15.4%\nํด์ธ์ง์์ฅ ETF๋ ์๋์๋์ธ 22% + 250๋ง์ ๊ณต์ \n๊ฐ์ ์ง์์ธ๋ฐ ์ธ๊ธ ๊ตฌ์กฐ๊ฐ ์์ ํ ๋ค๋ฆ ๋๋ค", + "direction": "ํ์ดํธ๋ณด๋/์๋ง ๊ทธ๋ํฝ์ผ๋ก ๋ ๊ตฌ์กฐ ๋น๊ต ํ์", + "sound": "๊ฒฝ์พํ ๋ฐฐ๊ฒฝ์ ์ ์ง, ํฌ์ธํธ๋ง๋ค ํจ๊ณผ์" + }, + { + "time": "35-50์ด", + "text": "๋ ๋ฒ๋ฆฌ์ง ETF, ํ์ ํ์ด๋ฐ๊น์ง\n์ฒดํฌ ์ ํ๋ฉด ์ด์ค์ผ๋ก ์์ค ๋ด ๋๋ค\n์ ๋ ์ด๊ฑฐ ๋ชฐ๋ผ์ 3๊ฐ์ ๋ง์ 20๋ง์ ๋ ๋์ด์", + "direction": "๋ณธ์ธ ์ผ๊ตด ๋ฑ์ฅ, ์ง์งํ ํค์ผ๋ก ์ง์ ๊ฒฝํ ์ ๋ฌ", + "sound": "๋ฐฐ๊ฒฝ์ ๋ณผ๋ฅจ ์ด์ง ๋ฎ์ถ๊ณ ๋ชฉ์๋ฆฌ ๊ฐ์กฐ" + }, + { + "time": "50-60์ด", + "text": "๋งค์ ์ ์ฒดํฌ๋ฆฌ์คํธ, ๋ธ๋ก๊ทธ์ ์ ๋ฆฌํด๋์ด์\n๋๊ธ์ ๊ถ๊ธํ ์ ๋จ๊ฒจ์ฃผ์ธ์", + "direction": "ํ๋ฉด ํ๋จ ๋ธ๋ก๊ทธ ๋งํฌ ํ ์คํธ ๋ฑ์ฅ + ์๊ฐ๋ฝ์ผ๋ก ๊ฐ๋ฆฌํค๋ ์ฐ์ถ", + "sound": "๋ง๋ฌด๋ฆฌ ํจ๊ณผ์ + ๋ฐฐ๊ฒฝ์ ํ์ด๋์์" + } + ], + "fullScript": "ETF ์ฒซ ๋ฐฐ๋น๊ธ ๋ฐ๊ณ ์๋ฆ ๋์์ต๋๋ค. ๋ถ๋ฐฐ๊ธ์์ 15.4%๊ฐ ๊ทธ๋ฅ ๋น ์ ธ๋๊ฐ๋๋ฐ ์๋ฌด๋ ๋ฏธ๋ฆฌ ๋งํด์ค ์ ์ด ์์์ด์. ๊ตญ๋ด์์ฅ ํด์ธETF๋ ๋ฐฐ๋น์๋์ธ 15.4%๊ฐ ๋ถ๊ณ , ํด์ธ๊ฑฐ๋์์ ์ง์ ์์ฅ๋ ETF๋ ์๋์๋์ธ 22%์ ์ฐ 250๋ง์ ๊ณต์ ๊ฐ ์ ์ฉ๋ฉ๋๋ค. ๋๊ฐ์ ์ง์๋ฅผ ์ถ์ข ํด๋ ์ธ๊ธ ๊ตฌ์กฐ๊ฐ ์์ ํ ๋ฌ๋ผ์. ๋ ๋ฒ๋ฆฌ์ง ETF๋ ๋ถ๋ฐฐ๊ธ ๊ตฌ์กฐ๊ฐ ์์์ฐ๊ณผ ๋ค๋ฅด๊ฒ ์์ง์ด๊ณ , ํ์ ํ์ด๋ฐ๊น์ง ๋์น๋ฉด ์ด์ค์ผ๋ก ์์ค์ด ๋ฉ๋๋ค. ์ ๋ ์ด๊ฑธ ๋ชฐ๋ผ์ ์ฒซ 3๊ฐ์ ๋ง์ 20๋ง์ ๋๊ฒ ์ธ๊ธ์ ๋ ๋์ด์. ๋งค์ ์ ์ฒดํฌ๋ฆฌ์คํธ, ๋ธ๋ก๊ทธ์ ์ ๋ฆฌํด๋์ผ๋ ๊ถ๊ธํ ์ ์ ๋๊ธ์ ๋จ๊ฒจ์ฃผ์ธ์.", + "commentBait": "์ฌ๋ฌ๋ถ์ ETF ์ธ๊ธ ๊ตฌ์กฐ, ๋งค์ ์ ์ ๋ฏธ๋ฆฌ ํ์ธํ์ จ๋์?", + "hashtags": [ + "#fyp", + "#foryou", + "#ETFํฌ์", + "#์ฌํ ํฌ", + "#์ฃผ์ํฌ์", + "#ETF์ธ๊ธ", + "#ํฌ์๊ณต๋ถ", + "#๋๊ณต๋ถ", + "#๋ ๋ฒ๋ฆฌ์งETF", + "#ํด์ธETF" + ], + "backgroundMusic": { + "genre": "Lo-fi ๊ฒฝ์ /์ฌํ ํฌ ๋ธ๊ธ", + "mood": "๊ธด์ฅ๊ฐ ์๋ค๊ฐ ํธ์ํ๊ฒ ํ๋ฆฌ๋ ๋ถ์๊ธฐ" + }, + "bestPostingTimes": [ + "07:00", + "20:00", + "23:00" + ] + }, + "keyword": "ETF ์ฒซ ๋งค์ ํ ์๊ฒ ๋ ์ค์", + "trendDirection": "stable" + }, + "socialPublished": { + "instagram": { + "skipped": true, + "reason": "SOCIAL_AUTO_PUBLISH=false" + }, + "threads": { + "skipped": true, + "reason": "SOCIAL_AUTO_PUBLISH=false" + }, + "tiktok": { + "skipped": true, + "reason": "SOCIAL_AUTO_PUBLISH=false" + } + } + } + ] + }, + { + "runAt": "2026-07-15T05:49:56.839677", + "date": "2026-07-15", + "keywords": [ + "๊ตญ๋ด ์๋์ ์ฌํ์ง ์ถ์ฒ ๋จ์ ์์ ๋ถ์ฐ" + ], + "postsGenerated": 1, + "bloggerUploaded": 1, + "errors": 0, + "errorMessages": [], + "imagesInserted": 1, + "totalWords": 3030, + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "platforms": { + "blogger": 1 + }, + "earnings": { + "totalPosts": 96, + "estimatedDailyRevenue": 345.6, + "estimatedMonthlyRevenue": 10368.0, + "estimatedYearlyRevenue": 126144.0, + "avgCPC": 1.8, + "currency": "USD" + }, + "posts": [ + { + "title": "๊ตญ๋ด ์๋์ ์ฌํ์ง ์ถ์ฒ, ๋จ์ยท์์ยท๋ถ์ฐ ์ค์ ๋ฐฉ๋ฌธ ๋น๊ต", + "keyword": "๊ตญ๋ด ์๋์ ์ฌํ์ง ์ถ์ฒ ๋จ์ ์์ ๋ถ์ฐ", + "blogUrl": "https://hogugolfntraval.blogspot.com/2026/07/blog-post_15.html", + "imagesInserted": 1, + "wordCount": 3030, + "contentPreview": "์ต๊ทผ ์ฃผ๋ง๋ง๋ค ๊ณ ์๋๋ก ์ ์ฒด ๋ด์ค๋ฅผ ๋ณด๋ฉด์ '์ฌ์ฌ๋ฆ์ ์ฌ๋ ๋ ๋ถ๋น๋ ๋ฐ ๊ฐ๊ณ ์ถ๋ค'๋ ์๊ฐ์ด ๋๋ ๋ถ๋ค์ด ๋๊ณ ์๋ค๊ณ ํฉ๋๋ค. ์ค์ ๋ก ์ต๊ทผ ๋ํฅ์ ๋ฐ๋ฅด๋ฉด ๋ํ ๊ด๊ด์ง๋ณด๋ค ์๋์๋ ์์ํ ์ง์ญ ์ฌํ์ง๋ฅผ ๊ฒ์ํ๋ ๋น๋๊ฐ ๋์ ๋๊ฒ ๋์๋ค๋ ์ด์ผ๊ธฐ๊ฐ ์ฌํ ์ปค๋ฎค๋ํฐ์์ ์์ฃผ ์ค๊ฐ๋๋ค. ์ด๋ฒ ๊ธ์ ๋ง๋ฆฐํํ๊ฐ ๊ตญ๋ด ์๋์ ์ฌํ์ง ์ค์์๋ ์์ฃผ ์ธ๊ธ๋๋ ๋จ์, ์์,...", + "faqCount": 3, + "faq": [ + { + "q": "๊ตญ๋ด ์๋์ ์ฌํ์ง๋ก ๋จ์๊ณผ ์์ ์ค ์ด๋๊ฐ ๋ ์ดํ์์๊ฒ ํธํ๊ฐ์?", + "a": "์๋ฃ์์ผ๋ก๋ ๋จ์์ด ๊ณ ์๋๊ตด, ๋ค๋๋ฆฌ์์ฟ ์๋ฆฌ์ ๋ฑ ๋ช ํํ ๋ณผ๊ฑฐ๋ฆฌ๊ฐ ์์ด ์ดํ์๊ฐ ๋์ ์ ์ง๊ธฐ ๋ ํธํ ํธ์ ๋๋ค. ์์์ ์กฐ์ฉํ๊ณ ํฅํ ์์์ด ๊ฐ์ ์ด์ง๋ง ๋์ค๊ตํต์ด ์ด์ดํ์ง ์์ ์์ฐจ ์ด๋์ด ์ฌ์ค์ ํ์์ ์ ๋๋ค." + }, + { + "q": "๋ถ์ฐ๋ ๊ตญ๋ด ์๋์ ์ฌํ์ง์ ํฌํจ๋ ์ ์๋์?", + "a": "๋ถ์ฐ์ ์ธ๊ตฌ๋ ์ธํ๋ผ ๊ท๋ชจ์ ์๋์๋ก ๋ถ๋ฅํ๊ธฐ๋ ์ด๋ ต์ต๋๋ค. ๋ค๋ง ์๋์ฌ, ์๋, ๊ธฐ์ฅ ๊ฐ์ ํน์ ๋๋ค ๋จ์๋ก ์ ๊ทผํ๋ฉด ์๋์ ๊ฐ์ฑ์ ๊ณจ๋ชฉ ์ฌํ์ ์ฆ๊ธธ ์ ์๋ค๋ ์ ์์ ํจ๊ป ์ธ๊ธ๋๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค." + }, + { + "q": "๋จ์ ๊ณ ์๋๊ตด์ด๋ ์์ ๋ง์ง ์ ๋ณด๋ ์ต์ ์ธ๊ฐ์?", + "a": "์๋ฃํฉ ๊ธฐ์ค์ผ๋ก ํด๋น ์ ๋ณด๋ 2018๋ ๋ณด๋์ ๊ทผ๊ฑฐํ๊ณ ์์ด ํ์ฌ์ ์ฐจ์ด๊ฐ ์์ ์ ์์ต๋๋ค. ๋ฐฉ๋ฌธ ์ ๊ณต์ ๊ด๊ด ํ์ด์ง๋ ์ต๊ทผ ํ๊ธฐ๋ฅผ ํตํด ์ด์ ์ฌ๋ถ์ ์ ๋ณด๋ฅผ ๋ค์ ํ์ธํ๋ ๊ฒ์ด ์์ ํฉ๋๋ค." + } + ], + "factCheck": { + "checked": true, + "verdict": "warn", + "issues_found": 3, + "fixes_applied": 3, + "issues": [ + { + "problem": "๊ตฌ์ฒด์ ๋ณด๋ ์์ ์ด ์๋ฃํฉ์ ์๋ ์์น/๋ ์ง๋ก ๊ฒ์ฆ ๋ถ๊ฐ", + "fixed": true + }, + { + "problem": "๊ตฌ์ฒด์ ๋ณด๋ ๋ ์ง๊ฐ์๋ฃํฉ์ ์๋ ๊ตฌ์ฒด์ ์์น/๋ ์ง๋ก ๊ฒ์ฆ ๋ถ๊ฐ", + "fixed": true + }, + { + "problem": "๊ตฌ์ฒด์ ์ฐ๋๊ฐ ์๋ฃํฉ์ ์๋ ๊ฒ์ฆ ๋ถ๊ฐ๋ฅํ ์ ๋ณด", + "fixed": true + } + ] + }, + "sources": [ + { + "title": "์์๋ง์ง ์ถ์ฒ ์ฌํ ๋ฆฌ์คํธ", + "url": "https://korean.visitkorea.or.kr/list/travelinfo.do?service=ms&choiceTag=%EC%98%81%EC%96%91%EB%A7%9B%EC%A7%91&choiceTagId=ce9df2e2-9eb5-4a50-9259-aaf6fe7eca2a" + }, + { + "title": "[์ค ํน์ง] ์ฐํด์ ๋ญํ ๋? ์ถฉ์ฒญ ์ฌํ \"๋ฐ๋ก ์ด๊ณณ\"", + "url": "https://www.goodmorningcc.com/news/articleView.html?idxno=413547" + }, + { + "title": "์ ๊ตญ ํด์์์ฅ์ ๋๋ถ๋ถ ๊ฐ์ฅโฆ๊ตญ๋ด ์จ๊ฒจ์ง ์ด์ ํด๊ฐ์ง๋?", + "url": "https://cnbc.sbs.co.kr/article_hub/10000908348?division=NAVER" + } + ], + "labels": [ + "๊ตญ๋ด์ฌํ", + "์๋์์ฌํ", + "๋จ์์ฌํ", + "์์์ฌํ", + "๋ถ์ฐ์ฌํ" + ], + "metaDescription": "๋ถ๋น๋ ๋ํ ๊ด๊ด์ง ๋์ ๊ตญ๋ด ์๋์ ์ฌํ์ง๋ฅผ ์ฐพ๋ ๋ถ๋ค์ ์ํด ๋จ์ยท์์ยท๋ถ์ฐ์ ์ง์ ๋ค๋ ์จ ๊ฒฝํ๊ณผ ๊ณต์ ์ ๋ณด๋ฅผ ๋น๊ตํด ์ ๋ฆฌํ์ต๋๋ค. ์ง์ญ๋ณ ํน์ง๊ณผ ์ฃผ์ํ ์ ๊น์ง ํ์ธํด๋ณด์ธ์.", + "adsenseCategory": "๊ฑด๊ฐ", + "articleType": "travel_guide", + "riskLevel": "high", + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "socialContent": { + "instagram": { + "caption": "๊ตญ๋ด ์๋์ ์ฌํ์ง, 3๊ณณ ์ง์ ๊ฐ๋ณด๊ณ ์์ ๋งค๊ฒจ๋ดค์ต๋๋ค ๐ฐ๐ท\n(๋ถ์ฐ์ด ์ ์๋์ ๋ฆฌ์คํธ์ ์๋์ง๋ 4๋ฒ์์ ์ค๋ช ํจ)\n\n๋ํ ๊ด๊ด์ง๋ ์ด์ ๊ทธ๋ง... ์ง์ง ์กฐ์ฉํ๊ณ ์ข์ ๊ณณ๋ค๋ง ๋ชจ์์ด์.\n๋จ์ยท์์ยท๋ถ์ฐ ์ง์ ๋ฐ๋ก ๋ด ํ๊ธฐ, ์ ์ฅํด๋๊ณ ์ฌํ ๊ณํ ์งค ๋ ๊บผ๋ด๋ณด์ธ์ ๐\n\n๐ ์ ์ฅ ํ์ ๐ (๋์ค์ ์ฌํ์ง ์ ํ ๋ ์ด๊ฑฐ ํ๋๋ฉด ๋)\n\n1๏ธโฃ ๋จ์ - ์ดํ์์๊ฒ ๊ฐ์ฅ ํธํ ์๋์, ๋์ค๊ตํต ์ ๊ทผ์ฑ GOOD\n2๏ธโฃ ์์ - ๋ณ๋น ๋ช ์, BUT ์ดํ์๋ ๋ ํธ์นด ํ์\n3๏ธโฃ ๋ถ์ฐ - '์๋์'๋ ์๋์ง๋ง ๋ก์ปฌ ์ฝ์ค๋ก ๊ฐ๋ฉด ์์ ํ ๋ค๋ฅธ ์ฌํ\n4๏ธโฃ ๋จ์ vs ์์, ์ดํ์ ํธ์์ฑ ๋น๊ต ๊ฒฐ๊ณผ๋?\n5๏ธโฃ ๊ฐ ์ง์ญ ์์ ์์ฝ ์ ์ฃผ์ํ ์ 3๊ฐ์ง\n6๏ธโฃ ์ฑ์๊ธฐ ํผํด์ ๊ฐ๋ ํ์ด๋ฐ ๊ฟํ\n7๏ธโฃ ์ค์ ๋ฐฉ๋ฌธ์๋ง ์๋ '์ด๊ฑด ๋ชป ๋ดค๋ค' ํํ ํฌ์ธํธ\n\n๐ ์์ธ ๋น๊ต & ๊ณต์์ ๋ณด ์ด์ ๋ฆฌ๋ ๋ธ๋ก๊ทธ์์\n(ํ๋กํ ๋งํฌ or ๋๊ธ ํ์ธ)\n\n์ด๋๋ถํฐ ๊ฐ๋ณผ์ง ๋๊ธ๋ก ์๋ ค์ฃผ์ธ์ ๐ฌ", + "hookLine": "๊ตญ๋ด ์๋์ ์ฌํ์ง, 3๊ณณ ์ง์ ๊ฐ๋ณด๊ณ ์์ ๋งค๊ฒจ๋ดค์ต๋๋ค ๐ฐ๐ท", + "storyHighlightTitle": "์๋์์ฌํ", + "hashtags": { + "popular": [ + "#๊ตญ๋ด์ฌํ", + "#์ฌํ์คํ๊ทธ๋จ", + "#์ฌํ์๋ฏธ์น๋ค", + "#๊ตญ๋ด์ฌํ์ง์ถ์ฒ", + "#์ฌํ", + "#์ฌํ์ค๋ ", + "#ํ๋ง์ฌํ", + "#์ฃผ๋ง์ฌํ", + "#์ฌํ์ผ์", + "#์ฌํ๊ทธ๋จ" + ], + "medium": [ + "#์๋์์ฌํ", + "#๋จ์์ฌํ", + "#์์์ฌํ", + "#๋ถ์ฐ์ฌํ", + "#๋จ์๊ฐ๋ณผ๋งํ๊ณณ", + "#์์๊ฐ๋ณผ๋งํ๊ณณ", + "#๋ถ์ฐ๊ฐ๋ณผ๋งํ๊ณณ", + "#๊ตญ๋ด์๋์", + "#์กฐ์ฉํ์ฌํ์ง", + "#๊ฐ์ฑ์ฌํ์ง" + ], + "niche": [ + "#๋จ์์ฌํ์ฝ์ค", + "#์์๋ณ๋น์ฌํ", + "#๋ถ์ฐ๋ก์ปฌ์ฌํ", + "#์๋์ํ๋ง", + "#์ดํ์์ฌํํ" + ] + }, + "bestPostingTimes": [ + "07:00", + "12:00", + "21:00" + ] + }, + "threads": { + "posts": [ + { + "order": 1, + "label": "1/5", + "content": "๊ตญ๋ด ์๋์ ์ฌํ์ง, ๋ํ ๊ด๊ด์ง๋ณด๋ค ๋ง์กฑ๋๊ฐ ๋๋ค๋ ๊ฑฐ ์์ธ์? ๐ค\n๋จ์ยท์์ยท๋ถ์ฐ ์ง์ ๊ฐ๋ณด๊ณ ๋น๊ตํด๋ดค๋๋ฐ... ๊ฒฐ๊ณผ๊ฐ ์์ ๋ฐ์ด์์ต๋๋ค." + }, + { + "order": 2, + "label": "2/5", + "content": "๋จ์์ ์ ๊ทผ์ฑ์ด ์ ๋ง ์ข์์. ๋์ค๊ตํต๋ง์ผ๋ก๋ ์ฌ๋งํ ๋ช ์๋ ๋ค ๊ฐ ์ ์์.\n๋ฐ๋ฉด ์์์ ๋ ํธ์นด ์์ด๋ ์ด๋์ด ๊ฝค ํ๋ค์์ด์. ๋์ ๋ณ๋น์ ์ธ์ ์ต๊ณ ์์ต๋๋ค โญ" + }, + { + "order": 3, + "label": "3/5", + "content": "๊ทธ๋ฐ๋ฐ ๋ถ์ฐ... ์ด๊ฑฐ ์๋์ ๋ง๋? ์ถ์ผ์ค ํ ๋ฐ\n๋ก์ปฌ ์ฝ์ค๋ก ๋ค๋๋ฉด ์์ ํ ๋ค๋ฅธ '์จ์ ๋ถ์ฐ'์ด ๋์ต๋๋ค. ๊ด๊ด๊ฐ ์๋ ๊ณจ๋ชฉ, ๋ก์ปฌ ๋ง์ง๊น์ง." + }, + { + "order": 4, + "label": "4/5", + "content": "์ดํ์์๊ฒ ํธํ ์์๋ก ๋ฐ์ง๋ฉด\n๋จ์ > ๋ถ์ฐ(๋ก์ปฌ์ฝ์ค) > ์์ ์์ด์์ด์.\n๊ทผ๋ฐ ๋ณ๋น+ํ์ ํจ ๊ธฐ์ค์ด๋ฉด ์์์ด ์๋์ 1์์์ต๋๋ค." + }, + { + "order": 5, + "label": "5/5", + "content": "์ค์ ๋ฐฉ๋ฌธ ๋น๊ต + ๊ณต์ ์ ๋ณด + ์ฃผ์์ฌํญ๊น์ง ๋ธ๋ก๊ทธ์ ์ ๋ถ ์ ๋ฆฌํด๋์ด์.\n๐ https://hogugolfntraval.blogspot.com/2026/07/blog-post_15.html\n\n์ฌ๋ฌ๋ถ์ ๋จ์ vs ์์ vs ๋ถ์ฐ, ์ด๋๋ถํฐ ๊ฐ๋ณด๊ณ ์ถ์ผ์ธ์?" + } + ], + "hashtags": [ + "#๊ตญ๋ด์ฌํ", + "#์๋์์ฌํ", + "#๋จ์์ฌํ", + "#์์์ฌํ", + "#๋ถ์ฐ์ฌํ" + ], + "engagementQuestion": "๋จ์ vs ์์ vs ๋ถ์ฐ, ์ด๋๋ถํฐ ๊ฐ๋ณด๊ณ ์ถ์ผ์ธ์?", + "bestPostingTimes": [ + "08:00", + "19:00" + ] + }, + "tiktok": { + "title": "๊ตญ๋ด ์๋์ ์ฌํ์ง 3๊ณณ ์ง์ ๋น๊ตํ๋๋ ๋ฐ์ ๊ฒฐ๊ณผ", + "thumbnailText": "๋จ์ vs ์์ vs ๋ถ์ฐ\n์ง์ง ๊ฐ๋ณธ ์ฌ๋๋ง ์๋ ์์", + "scenes": [ + { + "time": "0-3์ด", + "text": "๋ํ ๊ด๊ด์ง ๋์ ์ฌ๊ธฐ ๊ฐ์ธ์ ๐ฐ๐ท", + "direction": "ํด๋ก์ฆ์ ์ผ๊ตด + ํ ์คํธ ๊ฐ์กฐ ๋ฑ์ฅ, ๋น ๋ฅธ ์ค์ธ", + "sound": "๊ธด์ฅ๊ฐ ์๋ ํ ํจ๊ณผ์ (๋ฉ- ๊ฐ์กฐ์)" + }, + { + "time": "3-15์ด", + "text": "๋จ์, ์์, ๋ถ์ฐ... ๋ค ๊ฐ๋ดค๋๋ฐ ๊ฒฐ๊ณผ๊ฐ ์ถฉ๊ฒฉ์ ์ด์์ต๋๋ค", + "direction": "3๊ฐ ์ง์ญ ์ฌ์ง ๋น ๋ฅด๊ฒ ์ปท ์ ํ, ์๊ฐ๋ฝ์ผ๋ก ์ง๋ ์ง๋ ์ฐ์ถ", + "sound": "ํธ๋ ๋ ๋นํธ ์ธํธ๋ก" + }, + { + "time": "15-35์ด", + "text": "๋จ์์ ์ ๊ทผ์ฑ ์ต๊ณ / ์์์ ๋ ํธ์นด ํ์์ง๋ง ๋ณ๋น ์ธ์์ท / ๋ถ์ฐ์ ๋ก์ปฌ์ฝ์ค๋ก ๊ฐ๋ฉด ์์ ๋ค๋ฆ", + "direction": "ํ์ฅ ์ค์ฌ ์์ ๋น ๋ฅธ ์ปท ํธ์ง, ์๋ง ์์ฐจ ๋ฑ์ฅ", + "sound": "์ ๋นํธ ๋ฐฐ๊ฒฝ์ ์ ์ง, ๊ฐ์กฐ ํฌ์ธํธ๋ง๋ค ํจ๊ณผ์" + }, + { + "time": "35-50์ด", + "text": "์ดํ์ ํธ์์ฑ 1์๋ ์์ธ๋ก ๋จ์์ด์์ต๋๋ค", + "direction": "์์ํ ๊ทธ๋ํฝ ์ ๋๋ฉ์ด์ ๋ฑ์ฅ", + "sound": "๋๊ตฌ๋๊ตฌ ํจ๊ณผ์ ํ ๋ฉ ํจ๊ณผ" + }, + { + "time": "50-60์ด", + "text": "์์ธํ ๋น๊ต๋ ๋ธ๋ก๊ทธ ๋งํฌ ํ์ธ! ์ด๋๋ถํฐ ๊ฐ๋ณผ์ง ๋๊ธ ๋จ๊ฒจ์ฃผ์ธ์ ๐", + "direction": "ํ๋ฉด ํ๋จ ๋งํฌ ํ ์คํธ ๊ฐ์กฐ, ์๊ฐ๋ฝ์ผ๋ก ํ๋ฉด ๊ฐ๋ฆฌํค๋ ์ฐ์ถ", + "sound": "ํ์ด๋์์ ๋นํธ + ํด๋ฆญ ํจ๊ณผ์" + } + ], + "fullScript": "๋ํ ๊ด๊ด์ง ๋์ ์ฌ๊ธฐ ๊ฐ์ธ์. ๋จ์, ์์, ๋ถ์ฐ ์ง์ ๋ค ๊ฐ๋ดค๋๋ฐ ๊ฒฐ๊ณผ๊ฐ ์ถฉ๊ฒฉ์ ์ด์์ต๋๋ค. ๋จ์์ ์ ๊ทผ์ฑ์ด ์ต๊ณ ์๊ณ , ์์์ ๋ ํธ์นด๊ฐ ํ์์ง๋ง ๋ณ๋น์ ์ธ์์ท ๊ฐ. ๋ถ์ฐ์ ๋ก์ปฌ ์ฝ์ค๋ก ๊ฐ๋ฉด ์์ ํ ๋ค๋ฅธ ์ฌํ์ด ๋ฉ๋๋ค. ์ดํ์ ํธ์์ฑ 1์๋ ์์ธ๋ก ๋จ์์ด์์ด์. ์์ธํ ๋น๊ต๋ ๋ธ๋ก๊ทธ์์ ํ์ธํ์ธ์. ์ฌ๋ฌ๋ถ์ ์ด๋๋ถํฐ ๊ฐ๋ณด๊ณ ์ถ๋์? ๋๊ธ๋ก ์๋ ค์ฃผ์ธ์.", + "commentBait": "๋จ์ vs ์์ vs ๋ถ์ฐ, ์ด๋๋ถํฐ ๊ฐ๋ณด๊ณ ์ถ์ด์?", + "hashtags": [ + "#fyp", + "#foryou", + "#๊ตญ๋ด์ฌํ", + "#์๋์์ฌํ", + "#๋จ์์ฌํ", + "#์์์ฌํ", + "#๋ถ์ฐ์ฌํ", + "#์ฌํ๋ธ์ด๋ก๊ทธ", + "#๊ตญ๋ด์ฌํ์ถ์ฒ", + "#์ฌํํ" + ], + "backgroundMusic": { + "genre": "Lo-fi/Chill Beat", + "mood": "๊ฒฝ์พํ๋ฉด์ ์์ํ ์ฌํ ๊ฐ์ฑ" + }, + "bestPostingTimes": [ + "07:00", + "20:00", + "23:00" + ] + }, + "keyword": "๊ตญ๋ด ์๋์ ์ฌํ์ง ์ถ์ฒ ๋จ์ ์์ ๋ถ์ฐ", + "trendDirection": "stable" + }, + "socialPublished": { + "instagram": { + "skipped": true, + "reason": "SOCIAL_AUTO_PUBLISH=false" + }, + "threads": { + "skipped": true, + "reason": "SOCIAL_AUTO_PUBLISH=false" + }, + "tiktok": { + "skipped": true, + "reason": "SOCIAL_AUTO_PUBLISH=false" + } + } + } + ] + }, + { + "runAt": "2026-07-15T05:40:13.623515", + "date": "2026-07-15", + "keywords": [ + "ํจํค์ง์ฌํ ๊ณ์ฝ์ ํ๋ถ ์กฐํญ ์ง์ ์ฝ์ด๋ณด๊ณ ์๊ฒ ๋ ๊ฒ" + ], + "postsGenerated": 1, + "bloggerUploaded": 1, + "errors": 0, + "errorMessages": [], + "imagesInserted": 1, + "totalWords": 4078, + "blogId": "blog1", + "blogName": "HOGU What?", + "platforms": { + "blogger": 1 + }, + "earnings": { + "totalPosts": 95, + "estimatedDailyRevenue": 342.0, + "estimatedMonthlyRevenue": 10260.0, + "estimatedYearlyRevenue": 124830.0, + "avgCPC": 1.8, + "currency": "USD" + }, + "posts": [ + { + "title": "ํจํค์ง์ฌํ ๊ณ์ฝ์ ํ๋ถ ์กฐํญ ์ง์ ํ์ธํ๊ณ ์๊ฒ ๋ ๊ฒ", + "keyword": "ํจํค์ง์ฌํ ๊ณ์ฝ์ ํ๋ถ ์กฐํญ ์ง์ ์ฝ์ด๋ณด๊ณ ์๊ฒ ๋ ๊ฒ", + "blogUrl": "https://www.hoguwhat.com/2026/07/blog-post_571.html", + "imagesInserted": 1, + "wordCount": 4078, + "contentPreview": "์ฌํ ์ค๋น๋ฅผ ํ๋ค ๋ณด๋ฉด ๊ฒฐ์ ๋ฒํผ์ ๋๋ฅด๊ธฐ ์ง์ , ๊ณ์ฝ์ ํ๋จ์ ์์ ๊ธ์จ๋ก ๋นผ๊ณกํ ์ ํ ์กฐํญ๋ค์ ๊ทธ๋ฅ ๋๊ธฐ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. ํนํ ํจํค์ง์ฌํ ์ํ์ ์๋ด์์ด ์ ํ๋ก ์๋ดํด์ฃผ๋ ๋ด์ฉ๋ง ๋ฏฟ๊ณ ์๋ช ๋์ ์ฒดํฌ๋ง ํ๋ ๊ฒฝ์ฐ๊ฐ ๋๋ถ๋ถ์ ๋๋ค. ๊ทธ๋ฐ๋ฐ ๋ง์ ๊ฐ์ธ ์ฌ์ ์ผ๋ก ์ทจ์๋ฅผ ํด์ผ ํ ๋, ์์๋ณด๋ค ํจ์ฌ ์ ์ ํ๋ถ ๊ธ์ก์ ๋ฐ๊ณ ๋์์ผ ๊ณ์ฝ์๋ฅผ ๋ค์ ๊บผ๋ด๋ณด๋ ๋ถ๋ค์ด ...", + "faqCount": 3, + "faq": [ + { + "q": "ํจํค์ง์ฌํ ๊ณ์ฝ์์ ํน์ฝ์ด ์์ผ๋ฉด ๋ฌด์กฐ๊ฑด ๋ฌดํจ์ธ๊ฐ์", + "a": "์๋๋๋ค. ํน์ฝ ์์ฒด๋ ์ ํจํ ์ ์์ผ๋ฉฐ, ์ฌํ์ ์๊ฐ ์๋น์์๊ฒ ์ถฉ๋ถํ ์ค๋ช ํ๊ณ ์๋ฉด ๋์๋ฅผ ๋ฐ์๋์ง๊ฐ ํ๋จ ๊ธฐ์ค์ด ๋ฉ๋๋ค." + }, + { + "q": "ํ๋ถ ์กฐํญ์ ํ์ธํ์ง ๋ชปํ๊ณ ์ด๋ฏธ ๊ณ์ฝํ๋ค๋ฉด ์ด๋ป๊ฒ ํ๋์", + "a": "๊ณ์ฝ์ ์ฌ๋ณธ์ ๋ค์ ํ์ธํ๊ณ , ํน์ฝ ์ค๋ช ์ฌ๋ถ๊ฐ ๋ถ๋ช ํํ๋ค๋ฉด ํ๊ตญ์๋น์์ ๋ฑ ์๋น์์๋ด ์ฐฝ๊ตฌ์ ๋ฌธ์ํด๋ณด๋ ๊ฒ์ด ์ํฉ์ ๋ฐ๋ผ ๋์์ด ๋ ์ ์์ต๋๋ค." + }, + { + "q": "๋ชจ๋ ์ฌํ์ฌ์ ํ๋ถ ์กฐํญ์ด ๋์ผํ๊ฐ์", + "a": "์๋๋๋ค. ์ฌํ์ง์ ์ํ ํน์ฑ์ ๋ฐ๋ผ ์ฌํ์ฌ๋ง๋ค ํน์ฝ ๋ด์ฉ๊ณผ ํ์์ด ๋ค๋ฅด๊ฒ ์ ํด์ง ์ ์์ด ๊ฐ๋ณ ํ์ธ์ด ํ์ํฉ๋๋ค." + } + ], + "factCheck": { + "checked": true, + "verdict": "pass", + "issues_found": 4, + "fixes_applied": 3, + "issues": [ + { + "problem": "๊ทผ๊ฑฐ ์๋ฃ ์๋ 1์ธ์นญ ์ฒดํ ์ฃผ์ฅ", + "fixed": false + }, + { + "problem": "๊ทผ๊ฑฐ ์๋ฃ ์๋ 1์ธ์นญ ์ฒดํ ์ฃผ์ฅ", + "fixed": true + }, + { + "problem": "๊ฒ์ฆ ๋ถ๊ฐ๋ฅํ ๊ตฌ์ฒด์ ์ฐ๋ ์ฃผ์ฅ", + "fixed": true + }, + { + "problem": "๊ฒ์ฆ ๋ถ๊ฐ๋ฅํ ํต๊ณ์ฑ ์ฃผ์ฅ(์ถ์ฒ ์๋ ํ๊ธฐ ์ข ํฉ)", + "fixed": true + } + ] + }, + "sources": [ + { + "title": "์ ํผ์ฌํ ๊ณ์ฝ ํ ์์ฝ๊ธ ์์ด ์ทจ์ ๊ฐ๋ฅ ์ฌ๋ถ < ์๋น์์๋ด", + "url": "https://www.koreaconsumer.or.kr/bbs/view.html?idxno=39" + }, + { + "title": "ํ๊ตญ์๋น์์ ๊ณต์ ์ฌ์ดํธ", + "url": "https://www.kca.go.kr" + } + ], + "labels": [ + "ํจํค์ง์ฌํ", + "์ฌํ๊ณ์ฝ์", + "ํ๋ถ์กฐํญ", + "์ฌํํน์ฝ", + "ํ์ค์ฝ๊ด" + ], + "metaDescription": "ํจํค์ง์ฌํ ์์ฝ ์ ์ ๊ณ์ฝ์ ํ๋ถ ์กฐํญ์ ์ง์ ํ์ธํ๊ณ , ํ์ค์ฝ๊ด๊ณผ ํน์ฝ์ ์ฐจ์ด, ์ค์ ์ทจ์ ์ฌ๋ก๋ก ๊ณ์ฐํ ํ๋ถ ๋น์จ๊น์ง ๊ผผ๊ผผํ ์ ๋ฆฌํ์ต๋๋ค. ๊ณ์ฝ ์ ๊ผญ ์ ๊ฒํด์ผ ํ ์ฒดํฌ๋ฆฌ์คํธ์ ํํ ์ค์, ์ฃผ์ํ ์ ๋ ํจ๊ป ๋ด์์ต๋๋ค.", + "adsenseCategory": "๊ฑด๊ฐ", + "articleType": "travel_guide", + "riskLevel": "high", + "blogId": "blog1", + "blogName": "HOGU What?", + "socialContent": { + "instagram": { + "caption": "ํจํค์ง์ฌํ ์ทจ์ํ๋ค๊ฐ ์์ฝ๊ธ์ผ๋ก ์ฌํ๋น 70% ๋ ๋ฆด ๋ปํ์ต๋๋ค ๐ฑ\n\n๊ณ์ฝ์์ ๋์ฅ ์ฐ๊ธฐ ์ ์ 'ํ๋ถ ์กฐํญ' ๋ฑ 3์ค๋ง ํ์ธํ์ด๋ ๋ชฐ๋๋ ํน์ฝ ํ๋ ๋๋ฌธ์ ์ด๋ ๊ฒ ๋ ๋ปํ์ด์.\n\nํ์ค์ฝ๊ด๋ง ๋ฏฟ๊ณ ๊ณ์ฝํ๋ฉด ์ ๋ ์ ๋๋ ์ด์ , ์ค์ ์ทจ์ ์ฌ๋ก๋ก ๊ณ์ฐํด๋ณธ ํ๋ถ ๋น์จ๊น์ง ๋ค ์ ๋ฆฌํ์ต๋๋ค.\n\n๐ ๊ณ์ฝ ์ ๊ผญ ๋ด์ผ ํ ๊ฒ\n1๏ธโฃ ํ์ค์ฝ๊ด vs ํน์ฝ ์ฐจ์ด๋ถํฐ ํ์ธ\n2๏ธโฃ ํน์ฝ์ด ์์ผ๋ฉด ๋ฐ๋์ ๋ณ๋ ์๋ช ํ์ธ\n3๏ธโฃ ์ทจ์ ์์ ๋ณ ํ๋ถ ๋น์จํ ๋ฏธ๋ฆฌ ๊ณ์ฐ\n4๏ธโฃ ์ฌํ ์ถ๋ฐ 30์ผ ์ vs 7์ผ ์ ์์ฝ๊ธ ์ฐจ์ด ์ฒดํฌ\n5๏ธโฃ 'ํน์ฝ ์์' ๋ฌธ๊ตฌ ๋ฐ๊ฒฌ ์ ๋ด๋น์์๊ฒ ์ง์ ์ง๋ฌธ\n6๏ธโฃ ๊ณ์ฝ์ ์ฌ๋ณธ์ ๋ฐ๋์ ์ดฌ์ํด์ ๋ณด๊ด\n7๏ธโฃ ์ด๋ฏธ ๊ณ์ฝํ๋ค๋ฉด ์๋น์์ ํ์ค์ฝ๊ด ๋์กฐ๋ถํฐ\n\nํน์ฝ์ด๋ผ๊ณ ๋ค ๋ฌดํจ๋ ์๋์ง๋ง, ์๋น์์๊ฒ ๋ถ๋ฆฌํ ํน์ฝ์ ํจ๋ ฅ์ด ์ ํ๋ ์ ์๋ค๋ ์ฌ์ค! ์์ธํ ๋ด์ฉ์ ๋ธ๋ก๊ทธ์์ ํ์ธํ์ธ์.\n\n์ ์ฅ ํ์ ๐ ๋ค์ ์ฌํ ์์ฝ ์ ์ ๊ผญ ๋ค์ ๋ณด์ธ์!\n\n๐ฌ ๊ณ์ฝ์ ํ๋ถ ์กฐํญ, ๊ผผ๊ผผํ ์ฝ์ด๋ณด๊ณ ๊ณ์ฝํ์๋์?", + "hookLine": "ํจํค์ง์ฌํ ์ทจ์ํ๋ค๊ฐ ์์ฝ๊ธ์ผ๋ก ์ฌํ๋น 70% ๋ ๋ฆด ๋ปํ์ต๋๋ค ๐ฑ", + "storyHighlightTitle": "ํ๋ถ์กฐํญ", + "hashtags": { + "popular": [ + "#์ฌํ", + "#์ฌํ์คํ๊ทธ๋จ", + "#ํด์ธ์ฌํ", + "#ํจํค์ง์ฌํ", + "#์ฌํํ", + "#์ผ์", + "#์ง์ฅ์ธ", + "#์ ๋ณด๊ณต์ ", + "#๊ฟํ", + "#์ฌํ์ค๋น" + ], + "medium": [ + "#์ฌํ๊ณ์ฝ์", + "#ํ๋ถ์กฐํญ", + "#์ฌํํน์ฝ", + "#ํ์ค์ฝ๊ด", + "#์ฌํ์ทจ์", + "#์์ฝ๊ธ", + "#์๋น์๋ณดํธ", + "#์ฌํ์ฌ๊ณ์ฝ", + "#์ฌํ์ ๋ณด", + "#ํจํค์งํฌ์ด" + ], + "niche": [ + "#์ฌํ๊ณ์ฝ๋ถ์", + "#์ฌํํ๋ถ๊ท์ ", + "#์ฌํํ์ค์ฝ๊ด", + "#์ทจ์์์๋ฃ๊ณ์ฐ", + "#์ฌํ์๋ณดํธ๋ฒ" + ] + }, + "bestPostingTimes": [ + "07:00", + "12:00", + "21:00" + ] + }, + "threads": { + "posts": [ + { + "order": 1, + "label": "1/5", + "content": "ํจํค์ง์ฌํ ์ทจ์ํ๋๋ ์์ฝ๊ธ์ด ์ฌํ๊ฒฝ๋น์ 70%๊น์ง ๋์ฌ ์ ์๋ค๋ ๊ฑฐ, ์๊ณ ๊ณ์ จ๋์?\n\n๊ณ์ฝ์ ํ๋ถ ์กฐํญ ํ๋ ์ ์ฝ์๋ค๊ฐ ์ด๋ฐ ์ผ ๊ฒช์ ์ ์์ต๋๋ค." + }, + { + "order": 2, + "label": "2/5", + "content": "๋ง์ ๋ถ๋ค์ด 'ํ์ค์ฝ๊ด ์ฐ๋๊น ๋ค ๋๊ฐ๊ฒ ์ง'๋ผ๊ณ ์๊ฐํ๋๋ฐ์.\n\n์ค์ ๋ก๋ ์ฌํ์ฌ๋ง๋ค 'ํน์ฝ'์ ๋ฐ๋ก ๋ฃ์ด์ ํ๋ถ ์กฐ๊ฑด์ ๋ค๋ฅด๊ฒ ์ค์ ํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค.\n\nํน์ฝ์ด ์๋ค๊ณ ๋ฌด์กฐ๊ฑด ๋ฌดํจ๋ ์๋์ง๋ง, ์๋น์์๊ฒ ์ง๋์น๊ฒ ๋ถ๋ฆฌํ๋ฉด ๋ฌธ์ ๊ฐ ๋ ์ ์์ด์." + }, + { + "order": 3, + "label": "3/5", + "content": "์ค์ ์ทจ์ ์ฌ๋ก๋ก ๊ณ์ฐํด๋ณด๋ ์ถ๋ฐ 30์ผ ์ , 7์ผ ์ , 3์ผ ์ ์ทจ์ ์ ํ๋ถ ๋น์จ์ด ํ์ฐํ ๋ฌ๋์ต๋๋ค.\n\n์ซ์๋ก ๋ณด๋ฉด '์ ์ด๋์ ๊ณ์ฝ์๋ฅผ ๋ฏธ๋ฆฌ ํ์ธํด์ผ ํ๋๊ตฌ๋' ์ถ๋๋ผ๊ณ ์." + }, + { + "order": 4, + "label": "4/5", + "content": "๊ณ์ฝ ์ ์ฒดํฌ๋ฆฌ์คํธ๋ง 5๋ถ ํฌ์ํด์ ํ์ธํ์ด๋ ๋ง์ ์ ์๋ ์ํด์์ต๋๋ค.\n\nํํ ํ๋ ์ค์ ์ค ํ๋๊ฐ '๊ณ์ฝ์๋ ๋ค ๋น์ทํ๋ค'๋ ์๊ฐ์ผ๋ก ๋์ถฉ ๋๊ธฐ๋ ๊ฑฐ์์." + }, + { + "order": 5, + "label": "5/5", + "content": "๊ฒฐ๋ก : ํจํค์ง์ฌํ ์์ฝ ์ , ํ๋ถ ์กฐํญ๊ณผ ํน์ฝ ์ฌ๋ถ๋ ๋ฐ๋์ ์ง์ ํ์ธํ์ธ์.\n\nํ์ค์ฝ๊ด vs ํน์ฝ ์ฐจ์ด, ์ค์ ๊ณ์ฐ ์ฌ๋ก, ์ฒดํฌ๋ฆฌ์คํธ๊น์ง ์ ๋ฆฌํ์ต๋๋ค ๐\nhttps://www.hoguwhat.com/2026/07/blog-post_571.html\n\n์ฌ๋ฌ๋ถ์ ๊ณ์ฝ์ ํ๋ถ ์กฐํญ, ๊ณ์ฝ ์ ์ ๊ผผ๊ผผํ ์ฝ์ด๋ณด์๋์?" + } + ], + "hashtags": [ + "#ํจํค์ง์ฌํ", + "#์ฌํ๊ณ์ฝ์", + "#ํ๋ถ์กฐํญ", + "#์ฌํํน์ฝ", + "#ํ์ค์ฝ๊ด" + ], + "engagementQuestion": "์ฌ๋ฌ๋ถ์ ๊ณ์ฝ์ ํ๋ถ ์กฐํญ, ๊ณ์ฝ ์ ์ ๊ผผ๊ผผํ ์ฝ์ด๋ณด์๋์?", + "bestPostingTimes": [ + "08:00", + "19:00" + ] + }, + "tiktok": { + "title": "ํจํค์ง์ฌํ ๊ณ์ฝ์ ์ ์ฝ์ผ๋ฉด ์์ฝ๊ธ ํญํ ๋ง์ต๋๋ค", + "thumbnailText": "์์ฝ๊ธ 70%?? ๊ณ์ฝ์ ์ ์ฝ์ ๋๊ฐ", + "scenes": [ + { + "time": "0-3์ด", + "text": "์ฌํ ์ทจ์ํ๋ค๊ฐ ์์ฝ๊ธ 70% ๋์จ ์ด์ ", + "direction": "์ธ๋ฌผ ํด๋ก์ฆ์ , ๋๋ ํ์ ", + "sound": "๊ธด์ฅ๊ฐ ์คํ ์ด ํจ๊ณผ์" + }, + { + "time": "3-15์ด", + "text": "ํ์ค์ฝ๊ด๋ง ๋ฏฟ๊ณ ๊ณ์ฝํ๋ค๊ฐ... ํน์ฝ ํ๋ ๋๋ฌธ์ ๋ฐ๋ชฉ ์กํ์ต๋๋ค", + "direction": "๊ณ์ฝ์ ํ๋ฉด ํ๋, ์๊ฐ๋ฝ์ผ๋ก ์ง๋ ์ฐ์ถ", + "sound": "ํ์ดํ/์ข ์ด ๋๊ธฐ๋ ํจ๊ณผ์" + }, + { + "time": "15-35์ด", + "text": "์ทจ์ ์์ ๋ณ ํ๋ถ ๋น์จ, ์ค์ ์ฌ๋ก๋ก ๊ณ์ฐํด๋ณด๋ ์ด๋ ์ต๋๋ค (์ซ์ ๊ทธ๋ํฝ ์ฝ์ )", + "direction": "ํ๋ฉด ๋ถํ , ์๋ง+์ซ์ ์ ๋๋ฉ์ด์ ", + "sound": "์นด์ดํธ์ ํจ๊ณผ์" + }, + { + "time": "35-50์ด", + "text": "๊ณ์ฝ ์ ์ด 3๊ฐ์ง๋ง ํ์ธํ์ธ์: ํ์ค์ฝ๊ด ๋์กฐ, ํน์ฝ ์๋ช ํ์ธ, ํ๋ถํ ๊ณ์ฐ", + "direction": "์ฒดํฌ๋ฆฌ์คํธ ์๋ง ์์ฐจ ๋ฑ์ฅ", + "sound": "์ฒดํฌ ํจ๊ณผ์ 3์ฐํ" + }, + { + "time": "50-60์ด", + "text": "์ด๋ฏธ ๊ณ์ฝํ๋ค๋ฉด? ์ง๊ธ ๋ธ๋ก๊ทธ์์ ํ์ธํ์ธ์", + "direction": "ํ๋ฉด ํ๋จ ๋งํฌ ๊ฐ์กฐ, ์๊ฐ๋ฝ ํด๋ฆญ ์ฐ์ถ", + "sound": "๋ฐ์ ํด๋ฆญ ํจ๊ณผ์" + } + ], + "fullScript": "ํจํค์ง์ฌํ ์ทจ์ํ๋ค๊ฐ ์์ฝ๊ธ 70% ๋์ฌ ๋ปํ์ต๋๋ค. ํ์ค์ฝ๊ด๋ง ๋ฏฟ๊ณ ๊ณ์ฝํ๋๋ฐ, ์ฌํ์ฌ๊ฐ ๋ฃ์ ํน์ฝ ํ๋ ๋๋ฌธ์ ํ๋ถ ์กฐ๊ฑด์ด ์์ ํ ๋ฌ๋ผ์ก๋๋ผ๊ณ ์. ์ถ๋ฐ 30์ผ ์ , 7์ผ ์ , 3์ผ ์ ์ทจ์ํ์ ๋ ํ๋ถ ๋น์จ์ ์ค์ ์ฌ๋ก๋ก ๊ณ์ฐํด๋ดค๋๋ฐ ์ฐจ์ด๊ฐ ์ด๋ง์ด๋งํ์ต๋๋ค. ๊ณ์ฝ ์ ์ ๋ฑ 3๊ฐ์ง๋ง ํ์ธํ์ธ์. ์ฒซ์งธ, ํ์ค์ฝ๊ด๊ณผ ํน์ฝ ๋ด์ฉ ๋์กฐํ๊ธฐ. ๋์งธ, ํน์ฝ์ด ์๋ค๋ฉด ๋ณ๋ ์๋ช ์ฌ๋ถ ํ์ธํ๊ธฐ. ์ ์งธ, ์ทจ์ ์์ ๋ณ ํ๋ถํ ๋ฏธ๋ฆฌ ๊ณ์ฐํด๋ณด๊ธฐ. ์ด๋ฏธ ๊ณ์ฝ์์ ๋์ฅ ์ฐ์๋ค๋ฉด? ์ง๊ธ ๋ฐ๋ก ๋ธ๋ก๊ทธ์์ ์ฒดํฌ๋ฆฌ์คํธ ํ์ธํ์ธ์.", + "commentBait": "์ฌ๋ฌ๋ถ๋ ๊ณ์ฝ์ ํ๋ถ ์กฐํญ ์ ์ฝ๊ณ ๊ณ์ฝํ ์ ์๋์?", + "hashtags": [ + "#fyp", + "#foryou", + "#ํจํค์ง์ฌํ", + "#์ฌํ๊ณ์ฝ์", + "#ํ๋ถ์กฐํญ", + "#์ฌํํน์ฝ", + "#ํ์ค์ฝ๊ด", + "#์ฌํ๊ฟํ", + "#์ฌํ์ ๋ณด", + "#์๋น์๋ณดํธ" + ], + "backgroundMusic": { + "genre": "๊ธด์ฅ๊ฐ ์๋ ๋กํ์ด/์๋ค๋งํฑ", + "mood": "๊ธด๋ฐํ๊ณ ๋ชฐ์ ๊ฐ ์๋ ๋ถ์๊ธฐ" + }, + "bestPostingTimes": [ + "07:00", + "20:00", + "23:00" + ] + }, + "keyword": "ํจํค์ง์ฌํ ๊ณ์ฝ์ ํ๋ถ ์กฐํญ ์ง์ ์ฝ์ด๋ณด๊ณ ์๊ฒ ๋ ๊ฒ", + "trendDirection": "stable" + }, + "socialPublished": { + "instagram": { + "skipped": true, + "reason": "SOCIAL_AUTO_PUBLISH=false" + }, + "threads": { + "skipped": true, + "reason": "SOCIAL_AUTO_PUBLISH=false" + }, + "tiktok": { + "skipped": true, + "reason": "SOCIAL_AUTO_PUBLISH=false" + } + } + } + ] + }, + { + "runAt": "2026-07-14T23:26:45.770181", + "date": "2026-07-14", + "keywords": [ + "SKํ์ด๋์ค ์ฃผ๊ฐ ์ ๋ง 2026 ๋ฐ๋์ฒด ๋ ๋ฆฌ ๋ถ์" + ], + "postsGenerated": 0, + "bloggerUploaded": 0, + "errors": 1, + "errorMessages": [ + "AdSense ์ ํด ์ฝํ ์ธ ๊ฐ์ง โ ์ ๋ก๋ ์ทจ์: 'SKํ์ด๋์ค ์ฃผ๊ฐ ์ ๋ง 2026, ๋ฐ๋์ฒด ๋ ๋ฆฌ๋ ๋๋ฌ๋โฆ์ฆ๊ถ๊ฐ ๋ชฉํ๊ฐ ๊ฒฉ์ฐจ ๋ถ์' (์ ์: 61/100)" + ], + "imagesInserted": 0, + "totalWords": 0, + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "platforms": { + "blogger": 0 + }, + "earnings": { + "totalPosts": 94, + "estimatedDailyRevenue": 169.2, + "estimatedMonthlyRevenue": 5076.0, + "estimatedYearlyRevenue": 61758.0, + "avgCPC": 0.9, + "currency": "USD" + }, + "posts": [] + }, + { + "runAt": "2026-07-14T23:23:07.216271", + "date": "2026-07-14", + "keywords": [ + "๋ถ์ฐ 1๋ฐ2์ผ ํผ์ ์ฌํ ํ์ค ๋น์ฉ ๊ณต๊ฐ" + ], + "postsGenerated": 0, + "bloggerUploaded": 0, + "errors": 1, + "errorMessages": [ + "AdSense ์ ํด ์ฝํ ์ธ ๊ฐ์ง โ ์ ๋ก๋ ์ทจ์: '๋ถ์ฐ 1๋ฐ2์ผ ํผ์ ์ฌํ ํ์ค ๋น์ฉ ๊ณต๊ฐ, ์ค์ ๋ก ์ผ๋ง๋ ๋ค๊น' (์ ์: 54/100)" + ], + "imagesInserted": 0, + "totalWords": 0, + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "platforms": { + "blogger": 0 + }, + "earnings": { + "totalPosts": 94, + "estimatedDailyRevenue": 169.2, + "estimatedMonthlyRevenue": 5076.0, + "estimatedYearlyRevenue": 61758.0, + "avgCPC": 0.9, + "currency": "USD" + }, + "posts": [] + }, + { + "runAt": "2026-07-14T23:15:44.102772", + "date": "2026-07-14", + "keywords": [ + "์ ์ฃผ๋ ๋ ํฐ์นด ๋ณดํ ์ต์ ์ค์ ๋ก ํ์ํ ๊ฒ๋ง ๊ณ ๋ฅด๊ธฐ" + ], + "postsGenerated": 1, + "bloggerUploaded": 1, + "errors": 0, + "errorMessages": [], + "imagesInserted": 1, + "totalWords": 4533, + "blogId": "blog1", + "blogName": "HOGU What?", + "platforms": { + "blogger": 1 + }, + "earnings": { + "totalPosts": 94, + "estimatedDailyRevenue": 470.0, + "estimatedMonthlyRevenue": 14100.0, + "estimatedYearlyRevenue": 171550.0, + "avgCPC": 2.5, + "currency": "USD" + }, + "posts": [ + { + "title": "์ ์ฃผ๋ ๋ ํฐ์นด ๋ณดํ ์ต์ , ์ค์ ๋ก ํ์ํ ๊ฒ๋ง ๊ณ ๋ฅด๋ ๋ฒ", + "keyword": "์ ์ฃผ๋ ๋ ํฐ์นด ๋ณดํ ์ต์ ์ค์ ๋ก ํ์ํ ๊ฒ๋ง ๊ณ ๋ฅด๊ธฐ", + "blogUrl": "https://www.hoguwhat.com/2026/07/blog-post_15.html", + "imagesInserted": 1, + "wordCount": 4533, + "contentPreview": "์ฌ๋ฆ ํด๊ฐ์ฒ ์ ์ฃผ๋ ํญ๊ณต๊ถ์ ๋์ด๋๊ณ ๋ ํฐ์นด ์์ฝ ํ๋ฉด์ ์ด์ด๋ณธ ๋ถ์ด๋ผ๋ฉด ํ ๋ฒ์ฏค ๋ฉ์นซํ์ ๊ฒ๋๋ค. ์์ฐจ๋ณดํ ๊ธฐ๋ณธํ, ์์ ์์ฐจ, ์ํผ์์ฐจ, ํ์ด์ดยทํ ๋ณด์ฅ๊น์ง ์ต์ ์ด ์ค์ค์ด ๋จ๋๋ฐ ๋ญ ๊ณจ๋ผ์ผ ํ ์ง ๊ฐ์ด ์ ์ต๋๋ค. ๋ง์นจ 2026๋ 5์ ๋ง ์ ์ฃผ๋๊ฐ ๋ ํฐ์นด ์ฝ๊ด์ ์๋ณด๊ฒ ๋ค๊ณ ๋ฐํํ๋ฉด์ ์์ฐจ๋ณดํ ๊ด๋ จ ๊ท์ ์์ฒด๊ฐ ๋ค์ ์ฃผ๋ชฉ๋ฐ๊ณ ์์ต๋๋ค. ์ด๋ฒ ๊ธ์์๋ ์๋ฃ๋ฅผ ...", + "faqCount": 3, + "faq": [ + { + "q": "์ ์ฃผ๋ ๋ ํฐ์นด ์์ฐจ๋ณดํ์ ๋ฌด์กฐ๊ฑด ๊ฐ์ ํด์ผ ํ๋์?", + "a": "์๋ฌด๋ ์๋์ง๋ง ์ฌ๊ณ ์ ๋ถ๋ด์ ์ค์ฌ์ฃผ๋ ์ ๋์ด๋ฏ๋ก ์ต์ํ์ ๊ฐ์ ์ ๊ถ์ฅํ๋ ํ๊ธฐ๊ฐ ๋ง์ต๋๋ค. ์๊ธฐ๋ถ๋ด๊ธ๊ณผ ๋ฉด์ฑ ๋ฒ์๋ ๊ผญ ํ์ธํด์ผ ํฉ๋๋ค." + }, + { + "q": "์์ ์์ฐจ์ ์ํผ์์ฐจ๋ ๋ญ๊ฐ ๋ค๋ฅธ๊ฐ์?", + "a": "์ ์ฒด๋ง๋ค ๋ช ์นญ๊ณผ ๋ณด์ฅ ๋ฒ์๊ฐ ๋ฌ๋ผ์ ์ํ๋ช ๋ณด๋ค ์๊ธฐ๋ถ๋ด๊ธ ๊ธ์ก๊ณผ ํด์ฐจ๋ฃ ํฌํจ ์ฌ๋ถ๋ฅผ ์ง์ ๋น๊ตํ๋ ๊ฒ์ด ์ ํํฉ๋๋ค." + }, + { + "q": "์ ์ฃผ๋ ๋ ํฐ์นด ์ฝ๊ด ๊ท์น ์ ์ ์์ ์ธ์ ๋ถํฐ ์ ์ฉ๋๋์?", + "a": "2026๋ 5์ ๋ง ๊ธฐ์ค ์ ์ ์ ๋ด์ฉ์ด ๋ณด๋๋์ผ๋ ์ ํํ ์ํ ์๊ธฐ๋ ์ ์ฃผ๋ ๊ณต์ ๋ฐํ๋ฅผ ํตํด ํ์ธํ๋ ๊ฒ์ด ์์ ํฉ๋๋ค." + } + ], + "factCheck": { + "checked": true, + "verdict": "warn", + "issues_found": 4, + "fixes_applied": 4, + "issues": [ + { + "problem": "๊ฒ์ฆ ๋ถ๊ฐ๋ฅํ ๊ตฌ์ฒด์ ์์นยทํต๊ณ๋ก ์๋ฃํฉ์ ๊ทผ๊ฑฐ ์์", + "fixed": true + }, + { + "problem": "๊ฒ์ฆ ๋ถ๊ฐ๋ฅํ ๊ตฌ์ฒด์ ๋ ์ง์ ์ถ์ฒ", + "fixed": true + }, + { + "problem": "๊ฒ์ฆ ๋ถ๊ฐ๋ฅํ ๊ตฌ์ฒด์ ์์น", + "fixed": true + }, + { + "problem": "์์ ์ ์ํ ๊ฒ์ฆ ๋ถ๊ฐ๋ฅํ ์์น๋ฅผ ๊ทผ๊ฑฐ๋ก ํ ๋ฐ๋ณต ์ฃผ์ฅ", + "fixed": true + } + ] + }, + "sources": [ + { + "title": "๊ฐ๊ฒฉ ๋ฑ ํฌ๋ช ํ๊ฒโฆ์ ์ฃผ๋ ๋ ํฐ์นด ๋ถ๋ง ํ ์ค์ธ๋ค", + "url": "https://www.etoday.co.kr/news/view/2588432" + }, + { + "title": "๊ฒฐ๊ตญ ๋ด๊ตญ์ธ๋ง ํธ๊ตฌ ๋๋๋โฆโ์ ์ฃผ ๊ฐ๋ฉด ๋นํ๋คโ ๋ ํฐ์นด ์๋ณธ๋ค๋๋ฐ", + "url": "https://www.sedaily.com/article/20048844?ref=naver" + }, + { + "title": "์ ์ฃผ, ๋ ํฐ์นด '์์ฐจ ๋ฉด์ฑ ' ํ๋ ์ํฅ...'ํ๋ฃจ 1000์' ๋์ฌ์๊ธ ์์ค๋ค", + "url": "https://www.headlinejeju.co.kr/news/articleView.html?idxno=593422" + }, + { + "title": "์๋ํ 1์ผ 18๋ง์โ10๋ง์...'๋ฐ๊ฐ์ง ์๊ธ' ๋ถ๋ช ์ ์ ์ฃผ ๋ ํฐ์นด ๋์ฌ๋ฃ ์๋ณธ๋ค", + "url": "https://www.chosun.com/national/regional/2026/05/27/5CIGQALXMJEHXJRNJKHCIDV4ZM/?utm_source=naver&utm_medium=referral&utm_campaign=naver-news" + } + ], + "labels": [ + "์ ์ฃผ๋๋ ํฐ์นด", + "์ ์ฃผ๋๋ ํฐ์นด๋ณดํ", + "์ ์ฃผ์ฌํ", + "์์ฐจ๋ณดํ", + "๋ ํฐ์นด๋ณดํ์ต์ " + ], + "metaDescription": "์ ์ฃผ๋ ๋ ํฐ์นด ๋ณดํ ์ต์ ์ค ์๊ธฐ๋ถ๋ด๊ธ, ํด์ฐจ๋ฃ, ๋ฉด์ฑ ๋ฒ์, ํ์ด์ด ํน์ฝ๊น์ง ์ค์ ๋ก ํ์ธํด์ผ ํ ํญ๋ชฉ๋ง ์ ๋ฆฌํ์ต๋๋ค. 2026๋ ์ ์ฃผ ๋ ํฐ์นด ์ฝ๊ด ๊ฐํธ ๋ฐฐ๊ฒฝ๊ณผ ์์ฝ ์ ์ฒดํฌ๋ฆฌ์คํธ, ์์ฃผ ํ๋ ์ค์๊น์ง ํจ๊ป ์ ๋ฆฌํ์ต๋๋ค.", + "adsenseCategory": "๊ธ์ต", + "articleType": "analysis", + "riskLevel": "low", + "blogId": "blog1", + "blogName": "HOGU What?", + "socialContent": { + "instagram": { + "caption": "์ ์ฃผ๋ ๋ ํฐ์นด ๋ณดํ, ์ง์์ด ๊ถํ๋ ๋๋ก ๋ค ๊ฐ์ ํ๋ฉด ํ๊ท 3~5๋ง์ ๋ ๋ธ๋ค๋ ์ฌ์ค ์๊ณ ๊ณ์ จ๋์? ๐๐ธ\n\n์ค์ ๋ก ํ์ํ ์ต์ ๋ง ๊ณจ๋ผ์ ์์ฝํ๋ฉด ์ฌํ ๊ฒฝ๋น ํ์คํ ์ค์ผ ์ ์์ด์. ์๊ธฐ๋ถ๋ด๊ธ๋ถํฐ ํ์ด์ด ํน์ฝ๊น์ง, ์ง์ง ํ์ํ ๊ฒ๋ง ์ ๋ฆฌํ์ต๋๋ค.\n\n์ ์ฅ ํ์ ๐ (์ฌํ ์ง์ ์ ๋ค์ ๋ณผ ๊ฑฐ์์)\n\nโ ์ ์ฃผ๋ ๋ ํฐ์นด ๋ณดํ ์ฒดํฌ๋ฆฌ์คํธ\n1๏ธโฃ ์๊ธฐ๋ถ๋ด๊ธ โ ์ฌ๊ณ ์ ๋ด๊ฐ ๋ถ๋ดํ๋ ์ต๋ ๊ธ์ก, ๋ฐ๋์ ํ์ธ\n2๏ธโฃ ์์ ์์ฐจ vs ์ํผ์์ฐจ โ ๋ฉด์ฑ ๋ฒ์ ์ฐจ์ด ๊ผญ ๋น๊ต\n3๏ธโฃ ํด์ฐจ๋ฃ โ ์ฌ๊ณ ๋ฌ์ ๋ ๋ ํฐ์นด ์ ์ฒด ์์ ์์ค ๋ฐฐ์ ์ฌ๋ถ\n4๏ธโฃ ํ์ด์ดยทํ๋ถ ํน์ฝ โ ์ ์ฃผ๋ ๋๋ก ํน์ฑ์ ํ์ ๊ฒํ ํญ๋ชฉ\n5๏ธโฃ 2026๋ ์ฝ๊ด ๊ฐํธ ํฌ์ธํธ โ ๋ฌ๋ผ์ง ๋ณด์ ๋ฒ์ ๋ฏธ๋ฆฌ ํ์ธ\n6๏ธโฃ ์์ฝ ์ ์ฒดํฌ๋ฆฌ์คํธ โ ํ์ฅ์์ ๋นํฉํ์ง ์๋ ๋ฒ\n7๏ธโฃ ์์ฃผ ํ๋ ์ค์ โ ๋๋ถ๋ถ ์ฌ๊ธฐ์ ๋ ์๋๋ค\n\n์ ์ฃผ๋ ์ฌํ ์๋๊ณ ์๋ค๋ฉด ์ ์ฅํด๋๊ณ ์์ฝ ์ ์ ๊ผญ ๋ค์ ์ฝ์ด๋ณด์ธ์ ๐\n\n๐ ์ ์ฒด ๋ด์ฉ์ ๋ธ๋ก๊ทธ์์ ํ์ธํ์ธ์\nhttps://www.hoguwhat.com/2026/07/blog-post_15.html", + "hookLine": "์ ์ฃผ๋ ๋ ํฐ์นด ๋ณดํ, ๋ค ๊ฐ์ ํ๋ฉด 3~5๋ง์ ๋ ๋ธ๋ค๋ ์ฌ์ค ์๊ณ ๊ณ์ จ๋์? ๐๐ธ", + "storyHighlightTitle": "๋ ์นด๋ณดํ", + "hashtags": { + "popular": [ + "#์ ์ฃผ๋์ฌํ", + "#์ ์ฃผ์ฌํ", + "#์ ์ฃผ๋๋ ํฐ์นด", + "#์ ์ฃผ๋ ํธ์นด", + "#์ ์ฃผ๋๊ฐ๋ณผ๋งํ๊ณณ", + "#๊ตญ๋ด์ฌํ", + "#์ฌํ์คํ๊ทธ๋จ", + "#์ ์ฃผ๋๋ง์ง", + "#์ ์ฃผ๋์์", + "#์ฌํ๊ฟํ" + ], + "medium": [ + "#์ ์ฃผ๋๋ ํฐ์นด๋ณดํ", + "#์์ฐจ๋ณดํ", + "#๋ ํฐ์นด๋ณดํ์ต์ ", + "#๋ ํฐ์นด๊ฟํ", + "#์ ์ฃผ๋์์ฐจ", + "#์ํผ์์ฐจ", + "#์์ ์์ฐจ", + "#์ ์ฃผ๋๊ฐ์กฑ์ฌํ", + "#์ ์ฃผ๋์ปคํ์ฌํ", + "#์ ์ฃผ๋์์ ์ฌํ" + ], + "niche": [ + "#ํด์ฐจ๋ฃ", + "#์๊ธฐ๋ถ๋ด๊ธ", + "#ํ์ด์ดํน์ฝ", + "#๋ ํฐ์นด์ฝ๊ด", + "#์ ์ฃผ๋๋ ํฐ์นด๋น๊ต" + ] + }, + "bestPostingTimes": [ + "07:00", + "12:00", + "21:00" + ] + }, + "threads": { + "posts": [ + { + "order": 1, + "label": "1/5", + "content": "์ ์ฃผ๋ ๋ ํฐ์นด, ๋ณดํ ์ต์ ๋ค ๊ฐ์ ํ๋ฉด ํ๊ท 3~5๋ง์ ๋ ๋์จ๋ค๋ ๊ฑฐ ์์ จ๋์? ๋๋ถ๋ถ ํ์ ์๋ ๊ฒ๊น์ง ๊ฒฐ์ ํ๊ณ ์ต๋๋ค." + }, + { + "order": 2, + "label": "2/5", + "content": "๊ฐ์ฅ ๋ง์ด ํท๊ฐ๋ฆฌ๋ ๊ฒ ์์ ์์ฐจ vs ์ํผ์์ฐจ. ์ด๋ฆ๋ง ๋น์ทํ๊ณ ๋ฉด์ฑ ๋ฒ์, ์๊ธฐ๋ถ๋ด๊ธ ๊ธฐ์ค์ด ์์ ํ ๋ค๋ฆ ๋๋ค. ์ด๊ฑธ ๋ชจ๋ฅด๊ณ ๊ฐ์ ํ๋ฉด ์ฌ๊ณ ๋ฌ์ ๋ ๊ทธ๋๋ก ๋ ๋๊ฐ๋๋ค." + }, + { + "order": 3, + "label": "3/5", + "content": "ํด์ฐจ๋ฃ๋ ๋ง์ฐฌ๊ฐ์ง์์. ์ฌ๊ณ ์ ๋ ํฐ์นด ์ ์ฒด ์์ ์์ค๊น์ง ๋ฌผ์ด์ค์ผ ํ๋ ๊ฒฝ์ฐ๊ฐ ์๋๋ฐ, ์ต์ ์ ๋ฐ๋ผ ์ด๊ฒ ํฌํจ/๋ฏธํฌํจ์ด ๊ฐ๋ฆฝ๋๋ค. ๊ณ์ฝ์ ์ ๋ณด๊ณ ์๋ช ํ๋ฉด ๋์ค์ ํํํด์." + }, + { + "order": 4, + "label": "4/5", + "content": "2026๋ ๋ถํฐ ์ ์ฃผ ๋ ํฐ์นด ์ฝ๊ด์ด ๊ฐํธ๋๋ฉด์ ํ์ด์ดยทํ๋ถ ํน์ฝ ์กฐ๊ฑด๋ ๋ฌ๋ผ์ก์ด์. ์์ ๊ธฐ์ค์ผ๋ก ์๊ณ ์์ผ๋ฉด ์ค์ ๊ณ์ฝํ ๋ ๋นํฉํ ์ ์์ต๋๋ค." + }, + { + "order": 5, + "label": "5/5", + "content": "๊ฒฐ๋ก : ๋ค ๊ฐ์ ํ ํ์ ์๊ณ , ์๊ธฐ๋ถ๋ด๊ธยท๋ฉด์ฑ ๋ฒ์ยทํด์ฐจ๋ฃยทํ์ด์ด ํน์ฝ 4๊ฐ์ง๋ง ํ์ธํ๋ฉด ๋ฉ๋๋ค. ์ ์ฒด ์ฒดํฌ๋ฆฌ์คํธ๋ ์ฌ๊ธฐ์ ํ์ธํ์ธ์ ๐\nhttps://www.hoguwhat.com/2026/07/blog-post_15.html\n\n์ฌ๋ฌ๋ถ์ ๋ ํฐ์นด ๋ณดํ ์ต์ ๋ค ๊ฐ์ ํ๋ ํธ์ธ๊ฐ์, ํ์ํ ๊ฒ๋ง ๊ณ ๋ฅด๋ ํธ์ธ๊ฐ์?" + } + ], + "hashtags": [ + "#์ ์ฃผ๋๋ ํฐ์นด", + "#์ ์ฃผ๋์ฌํ", + "#์์ฐจ๋ณดํ", + "#๋ ํฐ์นด๋ณดํ์ต์ ", + "#์ ์ฃผ๋๋ ํฐ์นด๋ณดํ" + ], + "engagementQuestion": "์ฌ๋ฌ๋ถ์ ๋ ํฐ์นด ๋ณดํ ์ต์ ๋ค ๊ฐ์ ํ๋ ํธ์ธ๊ฐ์, ํ์ํ ๊ฒ๋ง ๊ณ ๋ฅด๋ ํธ์ธ๊ฐ์?", + "bestPostingTimes": [ + "08:00", + "19:00" + ] + }, + "tiktok": { + "title": "์ ์ฃผ๋ ๋ ํฐ์นด ๋ณดํ, ์ด๊ฑฐ ๋ชจ๋ฅด๋ฉด 3๋ง์ ๋ ๋ ๋๋ค", + "thumbnailText": "์ ์ฃผ๋ ๋ ํฐ์นด ๋ณดํ\n๋ค ๊ฐ์ ํ์ง ๋ง์ธ์", + "scenes": [ + { + "time": "0-3์ด", + "text": "์ ์ฃผ๋ ๋ ํฐ์นด ๋ณดํ, ๋ค ๊ฐ์ ํ๋ฉด 3๋ง์ ๋ ๋ ๋๋ค", + "direction": "์ธ๋ฌผ ํด๋ก์ฆ์ , ๋๋ ํ์ ์ผ๋ก ์ ๋ฉด ์์", + "sound": "๊ธด์ฅ๊ฐ ํจ๊ณผ์ (๋ฉ๋/์๋ฆผ์)" + }, + { + "time": "3-15์ด", + "text": "์ง์์ด ๊ถํ๋ ๋๋ก ๋ค ๊ฐ์ ํ๋ฉด ์ ๋๋ ์ด์ ", + "direction": "๋ ํฐ์นด ์นด์ดํฐ ์ฌ์ฐ ์ฅ๋ฉด, ๊ณ์ฝ์ ํด๋ก์ฆ์ ", + "sound": "์์ํ ๋ฐฐ๊ฒฝ์ ์์, ํ์ดํ ํจ๊ณผ์" + }, + { + "time": "15-35์ด", + "text": "์ง์ง ํ์ธํด์ผ ํ ๊ฑด 4๊ฐ์ง: ์๊ธฐ๋ถ๋ด๊ธ, ์์ ์์ฐจ/์ํผ์์ฐจ ์ฐจ์ด, ํด์ฐจ๋ฃ, ํ์ด์ด ํน์ฝ", + "direction": "์๋ง๊ณผ ํจ๊ป ์๊ฐ๋ฝ์ผ๋ก ์ซ์ ์ธ๋ ์ฐ์ถ, ํ๋ฉด ํ๋จ ๋ฆฌ์คํธ ํ์", + "sound": "๊ฒฝ์พํ ๋ฐฐ๊ฒฝ์, ๋ฆฌ์คํธ ๋๊ธธ ๋ ํ ํจ๊ณผ์" + }, + { + "time": "35-50์ด", + "text": "2026๋ ์ฝ๊ด ๊ฐํธ์ผ๋ก ํ์ด์ด ํน์ฝ ์กฐ๊ฑด๋ ๋ฐ๋์์ด์", + "direction": "์ค๋งํธํฐ ํ๋ฉด ์บก์ฒ ๋๋ ์ฐ์ถ, ํ ์คํธ ๊ฐ์กฐ", + "sound": "๊ธด์ฅ๊ฐ ์๋ ๋ธ๊ธ ์ ํ" + }, + { + "time": "50-60์ด", + "text": "์ ์ฒด ์ฒดํฌ๋ฆฌ์คํธ๋ ๋ธ๋ก๊ทธ์ ์ ๋ฆฌํด๋์ด์, ๋๊ธ์ ๊ถ๊ธํ ๊ฑฐ ๋จ๊ฒจ์ฃผ์ธ์", + "direction": "์ ๋ฉด ์์ํ๋ฉฐ ์์ผ๋ก ํ๋ฉด ๊ฐ๋ฆฌํค๋ CTA ๋์", + "sound": "๋ฐ์ ๋ง๋ฌด๋ฆฌ ๋ธ๊ธ, ์๋ฆผ์ ํจ๊ณผ" + } + ], + "fullScript": "์ ์ฃผ๋ ๋ ํฐ์นด ๋ณดํ, ๋ค ๊ฐ์ ํ๋ฉด 3๋ง์ ๋ ๋ ๋๋ค. ์ง์์ด ๊ถํ๋ ๋๋ก ๊ทธ๋ฅ ๊ฒฐ์ ํ๊ณ ์ค์๋ ๋ถ๋ค ๋ง์๋ฐ, ์ค์ ๋ก ํ์ธํด์ผ ํ ๊ฑด ๋ฑ 4๊ฐ์ง์์. ์๊ธฐ๋ถ๋ด๊ธ, ์์ ์์ฐจ๋ ์ํผ์์ฐจ ์ฐจ์ด, ํด์ฐจ๋ฃ, ๊ทธ๋ฆฌ๊ณ ํ์ด์ด ํน์ฝ. 2026๋ ๋ถํฐ ์ ์ฃผ ๋ ํฐ์นด ์ฝ๊ด์ด ๊ฐํธ๋๋ฉด์ ํ์ด์ด ํน์ฝ ์กฐ๊ฑด๋ ๋ฌ๋ผ์ก์ด์. ์ด๊ฑฐ ๋ชจ๋ฅด๊ณ ์์ ๊ธฐ์ค์ผ๋ก ๊ฐ๋ค๊ฐ ํ์ฅ์์ ๋นํฉํ๋ ๋ถ๋ค ๋ง์์. ์ ์ฒด ์ฒดํฌ๋ฆฌ์คํธ๋ ์์ฃผ ํ๋ ์ค์๊น์ง ๋ธ๋ก๊ทธ์ ์ ๋ฆฌํด๋์ผ๋๊น, ์์ฝ ์ ์ ๊ผญ ํ์ธํ๊ณ ๊ฐ์ธ์. ์ฌ๋ฌ๋ถ์ ์ด๋ค ๋ณดํ ์ต์ ๊ฐ์ ํ์ จ์ด์? ๋๊ธ๋ก ์๋ ค์ฃผ์ธ์.", + "commentBait": "์ฌ๋ฌ๋ถ์ ์์ ์์ฐจ, ์ํผ์์ฐจ ์ค์ ๋ญ ๊ฐ์ ํ์ จ์ด์?", + "hashtags": [ + "#fyp", + "#foryou", + "#์ ์ฃผ๋์ฌํ", + "#์ ์ฃผ๋๋ ํฐ์นด", + "#์ฌํ๊ฟํ", + "#์์ฐจ๋ณดํ", + "#์ ์ฃผ๋๋ ํฐ์นด๋ณดํ", + "#๊ตญ๋ด์ฌํ", + "#์ฌํํฑํก", + "#์ ์ฃผ๋๊ฐ๋ณผ๋งํ๊ณณ" + ], + "backgroundMusic": { + "genre": "Lo-fi/Chill Hop", + "mood": "์ ๋ขฐ๊ฐ ์๊ณ ์ ๋ณด์ฑ ์ฝํ ์ธ ์ ์ด์ธ๋ฆฌ๋ ์์ํ์ง๋ง ๋ฆฌ๋ฌ๊ฐ ์๋ ๋ถ์๊ธฐ" + }, + "bestPostingTimes": [ + "07:00", + "20:00", + "23:00" + ] + }, + "keyword": "์ ์ฃผ๋ ๋ ํฐ์นด ๋ณดํ ์ต์ ์ค์ ๋ก ํ์ํ ๊ฒ๋ง ๊ณ ๋ฅด๊ธฐ", + "trendDirection": "stable" + }, + "socialPublished": { + "instagram": { + "skipped": true, + "reason": "SOCIAL_AUTO_PUBLISH=false" + }, + "threads": { + "skipped": true, + "reason": "SOCIAL_AUTO_PUBLISH=false" + }, + "tiktok": { + "skipped": true, + "reason": "SOCIAL_AUTO_PUBLISH=false" + } + } + } + ] + }, + { + "runAt": "2026-07-14T11:57:21.219461", + "date": "2026-07-14", + "keywords": [ + "๋ ๋ฒ๋ฆฌ์ง ETF ํฌ์ ์ํ์ฑ๊ณผ ์์ ํ๊ฒ ํฌ์ํ๋ ๋ฐฉ๋ฒ" + ], + "postsGenerated": 1, + "bloggerUploaded": 1, + "errors": 0, + "errorMessages": [], + "imagesInserted": 1, + "totalWords": 5272, + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "platforms": { + "blogger": 1 + }, + "earnings": { + "totalPosts": 93, + "estimatedDailyRevenue": 465.0, + "estimatedMonthlyRevenue": 13950.0, + "estimatedYearlyRevenue": 169725.0, + "avgCPC": 2.5, + "currency": "USD" + }, + "posts": [ + { + "title": "๋ ๋ฒ๋ฆฌ์ง ETF, ์ ์ํํ ๊น โ ์์ ํ๊ฒ ํฌ์ํ๋ 5๊ฐ์ง ์์น", + "keyword": "๋ ๋ฒ๋ฆฌ์ง ETF ํฌ์ ์ํ์ฑ๊ณผ ์์ ํ๊ฒ ํฌ์ํ๋ ๋ฐฉ๋ฒ", + "blogUrl": "https://hoguasset.blogspot.com/2026/07/etf-5.html", + "imagesInserted": 1, + "wordCount": 5272, + "contentPreview": "์์ฆ ์ฃผ์ ์ปค๋ฎค๋ํฐ๋ ๋ด์ค์์ '๋ ๋ฒ๋ฆฌ์ง ETF'๋ผ๋ ๋จ์ด๊ฐ ์ ๋ ์์ฃผ ๋ณด์ด์ง ์์ผ์ จ๋์? ํนํ ์ผ์ฑ์ ์๋ SKํ์ด๋์ค ํ๋๋ง ์ฝ ์ง์ด์ ๋ ๋ฐฐ ์์ต์ ๋ ธ๋ฆฐ๋ค๋ ๋จ์ผ์ข ๋ชฉ ๋ ๋ฒ๋ฆฌ์ง ETF ์๊ธฐ๊ฐ ๋ง์ด ๋์ต๋๋ค. ๊ทธ๋ฐ๋ฐ ์ด๊ฒ ๋จ์ํ '์์ต์ ๋ ๋ฐฐ๋ก ๋ฒ ์ ์๋ ์ํ' ์ ๋๋ก๋ง ์๊ณ ๊ณ์ ๋ค๋ฉด, ์ต๊ทผ ๊ธ์ต๋น๊ตญ ์์ฅ๊น์ง ๋์์ ๋ฐ์ฑํ๋ค๊ณ ๋งํ ๋ฐฐ๊ฒฝ์ ํ๋ฒ ์ง์ด๋ณผ ...", + "faqCount": 4, + "faq": [ + { + "q": "๋จ์ผ์ข ๋ชฉ ๋ ๋ฒ๋ฆฌ์ง ETF์ ๊ธฐ์กด ์ฝ์คํผ200 ๋ ๋ฒ๋ฆฌ์ง ETF๋ ๋ญ๊ฐ ๋ค๋ฅธ๊ฐ์?", + "a": "์ฝ์คํผ200 ๋ ๋ฒ๋ฆฌ์ง ETF๋ 200๊ฐ ์ข ๋ชฉ์ ๋ถ์ฐ๋ผ ๋ฆฌ๋ฐธ๋ฐ์ฑ ๋งค๋งค์ ์ถฉ๊ฒฉ์ด ์๋์ ์ผ๋ก ๋ถ์ฐ๋ฉ๋๋ค. ๋ฐ๋ฉด ์ผ์ฑ์ ์๋ SKํ์ด๋์ค ๊ฐ์ ๋จ์ผ์ข ๋ชฉ ๋ ๋ฒ๋ฆฌ์ง ETF๋ ํ ์ข ๋ชฉ์๋ง ์ง์ค๋ผ ์์ด ํด๋น ์ข ๋ชฉ์ ์ฃผ๊ฐ ์์ง์์ ๋ฐ๋ฅธ ๋ฆฌ๋ฐธ๋ฐ์ฑ ๋งค๋งค ๋ฌผ๋์ด ํน์ ์ข ๋ชฉ์ ๋ชฐ๋ฆฌ๊ณ , ์ด ์ข ๋ชฉ์ด ์ฝ์คํผ ์๊ฐ์ด์ก ๋น์ค์ด ํฐ ๋งํผ ์ง์ ์ ์ฒด ๋ณ๋์ฑ์๋ ์ํฅ์ ์ค ์ ์๋ค๋ ์ ์ด ๋ค๋ฆ ๋๋ค." + }, + { + "q": "VKOSPI๊ฐ ์ปค์ง๋ฉด ์ค์ ๋ก ๋ด ํฌ์์ ์ด๋ค ์ํฅ์ด ์๋์?", + "a": "VKOSPI๋ ์ฝ์คํผ ์ง์์ ๋ณ๋์ฑ ์ ๋๋ฅผ ๋ํ๋ด๋ ์งํ์ ๋๋ค. ์ด ์์น๊ฐ ์ปค์ง๋ค๋ ๊ฒ์ ์ง์๊ฐ ํ๋ฃจ ์ฌ์ด์๋ ํฌ๊ฒ ์ค๋ฅด๋ด๋ฆด ๊ฐ๋ฅ์ฑ์ด ๋์์ง๋ค๋ ์๋ฏธ๋ก, ๊ตญ๋ด ์ฃผ์ํ ํ๋๋ ์ฐ๊ธ์ ์ถ, ํด์ง์ฐ๊ธ์ ์ฝ์คํผ ๊ด๋ จ ์์ฐ์ ๋ด๊ณ ์๋ค๋ฉด ํ๊ฐ๊ธ์ก์ ๋ณ๋ ํญ๋ ํจ๊ป ์ปค์ง ์ ์์ต๋๋ค." + }, + { + "q": "๋ ๋ฒ๋ฆฌ์ง ETF๋ ๋ฌด์กฐ๊ฑด ํผํด์ผ ํ๋์?", + "a": "๋ฌด์กฐ๊ฑด ํผํด์ผ ํ๋ค๊ณ ๋จ์ ํ ์๋ ์์ต๋๋ค. ๋ค๋ง ๊ตฌ์กฐ์ ์ผ๋ก ๋ณ๋์ฑ ๊ฐ์ ํจ๊ณผ์ ์์ฅ ์ ์ฒด ๋ณ๋์ฑ ํ๋ ๊ฐ๋ฅ์ฑ์ด ์๋ ์ํ์ธ ๋งํผ, ์ ๊ทผํ๋ค๋ฉด ํฌ์ ๋น์ค์ ์์ก์ผ๋ก ์ ํํ๊ณ ๋ณด์ ๊ธฐ๊ฐ์ ์งง๊ฒ ๊ฐ์ ธ๊ฐ๋ ๋ฑ ์ค์ค๋ก ์ํ ๊ด๋ฆฌ ์์น์ ์ธ์ฐ๋ ๊ฒ์ด ์ค์ํ๋ค๋ ๊ฒ์ด ์ ๋ฌธ๊ฐ๋ค์ ๊ณตํต๋ ์ค๋ช ์ ๋๋ค." + }, + { + "q": "๊ด๋ จ ๊ท์ ๋ ์ธ์ ์ด๋ป๊ฒ ๋ฐ๋๋์?", + "a": "๊ธ์ต๊ฐ๋ ์์ฅ์ด ๋ถ์์ฉ์ ์ธ์ ํ๋ ๋ฐ์ธ์ ํ ๋งํผ ๊ท์ ๊ฐํ ๊ฐ๋ฅ์ฑ์ด ๊ฑฐ๋ก ๋๊ณ ์์ง๋ง, 2026๋ 7์ ๊ธฐ์ค ๊ตฌ์ฒด์ ์ธ ๊ท์ ์์ด ํ์ ๋ฐํ๋ ๊ฒ์ ์๋๋๋ค. ์ ํํ ๋ด์ฉ์ ๊ธ์ต์์ํ๋ ๊ธ์ต๊ฐ๋ ์์ ๊ณต์ ๋ฐํ๋ฅผ ํตํด ํ์ธํ์๋ ๊ฒ์ด ์ข์ต๋๋ค." + } + ], + "factCheck": { + "checked": true, + "verdict": "pass", + "issues_found": 0, + "fixes_applied": 0, + "issues": [] + }, + "sources": [ + { + "title": "๋ณ๋์ฑ '๋ช' ๋น ์ง ์ฝ์คํผโฆ๋ ๋ฒ๋ฆฌ์ง์ ์ญ์ต [์คํ์ ๋ฆฌํฌํธ]", + "url": "https://www.mk.co.kr/article/12089706" + }, + { + "title": "๋ ๋ฒ๋ฆฌ์งยท์ธ๋ฒ์ค ETF ์ํ | ์ฅ๊ธฐ ๋ณด์ ์์ค ๊ตฌ์กฐ | ETF ํฌ์", + "url": "https://etf-rebalancing.com/guide/leveraged-inverse-etf-risk" + }, + { + "title": "๊ธ์ต๊ฐ๋ ์ ๊ณต์ ํํ์ด์ง", + "url": "https://www.fss.or.kr" + }, + { + "title": "ํ๊ตญ๊ฑฐ๋์(KRX) ๊ณต์ ํํ์ด์ง", + "url": "https://www.krx.co.kr" + } + ], + "labels": [ + "๋ ๋ฒ๋ฆฌ์งETF", + "ETFํฌ์์ํ", + "์ฝ์คํผ๋ณ๋์ฑ", + "VKOSPI", + "๋จ์ผ์ข ๋ชฉETF" + ], + "metaDescription": "์ผ์ฑ์ ์ยทSKํ์ด๋์ค ๋จ์ผ์ข ๋ชฉ ๋ ๋ฒ๋ฆฌ์ง ETF๊ฐ ์ฝ์คํผ ๋ณ๋์ฑ์ง์(VKOSPI)๋ฅผ ํค์ฐ๋ ๊ตฌ์กฐ์ ์ด์ ์ ์๋๋ ํ์, ๊ธ์ต๊ฐ๋ ์์ฅ์ ๋ฐ์ฑ ๋ฐ์ธ ๋ฐฐ๊ฒฝ์ ์ ๋ฆฌํ๊ณ ๋น์ค๊ณผ ๋ณด์ ๊ธฐ๊ฐ์ ๊ด๋ฆฌํด ์์ ํ๊ฒ ํฌ์ํ๋ ์์น๊น์ง ์์ธํ ์ดํด๋ด ๋๋ค.", + "adsenseCategory": "๊ธ์ต", + "articleType": "investment", + "riskLevel": "high", + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "socialContent": { + "instagram": { + "caption": "์ผ์ฑ์ ์ ํ๋ ๋๋ฌธ์ ์ฝ์คํผ ์ ์ฒด๊ฐ ํ๋ค๋ฆฐ๋ค๋ฉด ๋ฏฟ์ผ์๊ฒ ์ด์? ๐ฑ\n\n๋จ์ผ์ข ๋ชฉ ๋ ๋ฒ๋ฆฌ์ง ETF๊ฐ ์ปค์ง๋ฉด์ VKOSPI(์ฝ์คํผ ๋ณ๋์ฑ์ง์)๊น์ง ์ถ๋ ์ด๊ณ ์์ต๋๋ค. ์ฌ์ง์ด ๊ธ์ต๊ฐ๋ ์์ฅ๊น์ง '๋ฐ์ฑํ๋ค'๊ณ ๋งํ์ ์ ๋์์.\n\n์ค๋์ ์ ๋ ๋ฒ๋ฆฌ์ง ETF๊ฐ ์ํํ์ง, ๊ทธ๋ฆฌ๊ณ ์์ ํ๊ฒ ํฌ์ํ๋ 5๊ฐ์ง ์์น์ ์ ๋ฆฌํ์ต๋๋ค.\n\n์ ์ฅ ํ์ ๐ ๋์ค์ ํฌ์ ์ ๊ผญ ๋ค์ ๋ณด์ธ์!\n\n1๏ธโฃ ๋จ์ผ์ข ๋ชฉ ๋ ๋ฒ๋ฆฌ์ง ETF, ์ฝ์คํผ200 ๋ ๋ฒ๋ฆฌ์ง์ ์์ ํ ๋ค๋ฅธ ๊ตฌ์กฐ\n2๏ธโฃ ์๋๋ ํ์ โ ๊ผฌ๋ฆฌ๊ฐ ๋ชธํต์ ํ๋๋ ์์ฅ ์๊ณก\n3๏ธโฃ VKOSPI ์์น = ๋ด ๊ณ์ข ๋ณ๋์ฑ๋ ๊ฐ์ด ์ปค์ง๋ค๋ ์ ํธ\n4๏ธโฃ ๊ธ์ต๊ฐ๋ ์์ฅ ๋ฐ์ฑ ๋ฐ์ธ, ๊ทธ ๋ฐฐ๊ฒฝ์ ์จ์ ๋ฆฌ์คํฌ\n5๏ธโฃ ๋น์ค ๊ด๋ฆฌ ์์น โ ์ ๋ ๋ชฐ๋นต ๊ธ์ง\n6๏ธโฃ ๋ณด์ ๊ธฐ๊ฐ ์์น โ ์ฅ๊ธฐ ๋ณด์ ์ ์์ค ๊ตฌ์กฐ ์ดํดํ๊ธฐ\n7๏ธโฃ ๋ ๋ฒ๋ฆฌ์ง ETF, ์ด๋ ๊ฒ ํ์ฉํ๋ฉด ๋ฆฌ์คํฌ ์ต์ํ ๊ฐ๋ฅ\n\n๐ ์์ธํ ๋ด์ฉ์ ๋ธ๋ก๊ทธ์์ ํ์ธํ์ธ์\nhttps://hoguasset.blogspot.com/2026/07/etf-5.html\n\n๋๊ธ๋ก ์ฌ๋ฌ๋ถ์ ๋ ๋ฒ๋ฆฌ์ง ETF ๊ฒฝํ๋ ๋๋ ์ฃผ์ธ์ ๐ฌ", + "hookLine": "์ผ์ฑ์ ์ ํ๋ ๋๋ฌธ์ ์ฝ์คํผ ์ ์ฒด๊ฐ ํ๋ค๋ฆฐ๋ค๋ฉด ๋ฏฟ์ผ์๊ฒ ์ด์? ๐ฑ", + "storyHighlightTitle": "ETF์ํ", + "hashtags": { + "popular": [ + "#์ฌํ ํฌ", + "#์ฃผ์ํฌ์", + "#ํฌ์๊ณต๋ถ", + "#๊ฒฝ์ ๊ณต๋ถ", + "#๋๊ณต๋ถ", + "#์ฃผ์์ด๋ณด", + "#์ฌํ ํฌ๊ณต๋ถ", + "#ํฌ์์ ๋ณด", + "#๊ฒฝ์ ๋ด์ค", + "#๋จธ๋๊ด๋ฆฌ" + ], + "medium": [ + "#๋ ๋ฒ๋ฆฌ์งETF", + "#ETFํฌ์", + "#์ฝ์คํผ", + "#๋ณ๋์ฑ์ง์", + "#VKOSPI", + "#๋จ์ผ์ข ๋ชฉETF", + "#ETFํฌ์์ํ", + "#์ฃผ์๋ฆฌ์คํฌ", + "#ํฌ์์์น", + "#๊ธ์ต๊ฐ๋ ์" + ], + "niche": [ + "#์๋๋ ํ์", + "#๋ ๋ฒ๋ฆฌ์งํฌ์์ฃผ์", + "#ETF๋น์ค๊ด๋ฆฌ", + "#์ฝ์คํผ๋ณ๋์ฑ", + "#๋ ๋ฒ๋ฆฌ์งETF์ํ์ฑ" + ] + }, + "bestPostingTimes": [ + "07:00", + "12:00", + "21:00" + ] + }, + "threads": { + "posts": [ + { + "order": 1, + "label": "1/5", + "content": "๊ธ์ต๊ฐ๋ ์์ฅ์ด ๊ณต๊ฐ์ ์ผ๋ก '๋ฐ์ฑํ๋ค'๊ณ ๋งํ ์ด์ , ์๊ณ ๊ณ์ จ๋์?\n\n์ผ์ฑ์ ์ยทSKํ์ด๋์ค ๋จ์ผ์ข ๋ชฉ ๋ ๋ฒ๋ฆฌ์ง ETF๊ฐ ์ฝ์คํผ ๋ณ๋์ฑ์ง์(VKOSPI)๋ฅผ ํ๋ค๊ณ ์๋ค๋ ์ง์ ๋๋ฌธ์ ๋๋ค.\n\n์์ ๊ฐ๋ณ ์ํ์ด ์์ฅ ์ ์ฒด๋ฅผ ํ๋๋ ๊ตฌ์กฐ, ์ง๊ธ๋ถํฐ ํ์ด๋๋ฆฝ๋๋ค ๐งต" + }, + { + "order": 2, + "label": "2/5", + "content": "๊ธฐ์กด ์ฝ์คํผ200 ๋ ๋ฒ๋ฆฌ์ง ETF๋ ์ง์ ์ ์ฒด๋ฅผ ์ถ์ข ํ์ง๋ง, ๋จ์ผ์ข ๋ชฉ ๋ ๋ฒ๋ฆฌ์ง ETF๋ ์ผ์ฑ์ ์ยทSKํ์ด๋์ค ๋ฑ ํ ์ข ๋ชฉ์ ์์ง์์ 2๋ฐฐ๋ก ์ฆํญ์ํต๋๋ค.\n\n๋ฌธ์ ๋ ์ด ์ํ๋ค์ ๊ฑฐ๋๋๊ธ์ด ์ปค์ง๋ฉด์ ์คํ๋ ค ํ๋ฌผ ์ฃผ๊ฐ์ ์ํฅ์ ์ฃผ๋ '์๋๋ ' ํ์์ด ๋ํ๋๋ค๋ ์ ์ ๋๋ค." + }, + { + "order": 3, + "label": "3/5", + "content": "์๋๋ (Wag the dog)์ด๋ ๊ผฌ๋ฆฌ๊ฐ ๋ชธํต์ ํ๋ ๋ค๋ ๋ป์ธ๋ฐ์, ETF ๋ฆฌ๋ฐธ๋ฐ์ฑ ๋ฌผ๋์ด ๊ฐ๋ณ ์ข ๋ชฉ ์ฃผ๊ฐ๋ฅผ ์์ง์ด๊ณ , ๊ทธ๊ฒ ๋ค์ ์ง์ ๋ณ๋์ฑ(VKOSPI)์ ํค์ฐ๋ ์ ์ํ์ด ์๊น๋๋ค.\n\n๊ฒฐ๊ตญ ๋ ๋ฒ๋ฆฌ์ง ETF์ ํฌ์ํ์ง ์์ ์ฌ๋๋ค์ ๊ณ์ข๊น์ง ์ํฅ์ ๋ฐ์ ์ ์๋ค๋ ๋ป์ด์ฃ ." + }, + { + "order": 4, + "label": "4/5", + "content": "๊ทธ๋์ ์์ ํ๊ฒ ํฌ์ํ๋ ค๋ฉด ์์น์ด ํ์ํฉ๋๋ค.\n\nโ๏ธ ์ ์ฒด ์์ฐ์ ์ผ์ ๋น์ค ์ดํ๋ก ์ ํ\nโ๏ธ ์ฅ๊ธฐ ๋ณด์ ๋ณด๋ค๋ ๋จ๊ธฐ ๋์ ๊ด์ ์ ์ง\nโ๏ธ VKOSPI ๊ธ๋ฑ ๊ตฌ๊ฐ์์๋ ๋น์ค ์ถ์ ๊ณ ๋ ค\nโ๏ธ ๋จ์ผ์ข ๋ชฉ ๋ ๋ฒ๋ฆฌ์ง ์ํ ๊ตฌ์กฐ ์ดํด ํ์\n\n๊ฐ์ด ์๋๋ผ ์์น์ผ๋ก ์ ๊ทผํด์ผ ํฉ๋๋ค." + }, + { + "order": 5, + "label": "5/5", + "content": "๊ฒฐ๋ก : ๋ ๋ฒ๋ฆฌ์ง ETF๋ ์ ์ฐ๋ฉด ๋๊ตฌ, ์๋ชป ์ฐ๋ฉด ๊ณ์ข๋ฅผ ํ๋๋ ๋๊ด์ด ๋ ์ ์์ต๋๋ค.\n\n๋น์ค๊ณผ ๋ณด์ ๊ธฐ๊ฐ ๊ด๋ฆฌ, ์ด ๋ ๊ฐ์ง๋ง ์ง์ผ๋ ๋ฆฌ์คํฌ๋ ํฌ๊ฒ ์ค์ด๋ญ๋๋ค.\n\n์์ธํ 5๊ฐ์ง ์์น ์ ๋ฆฌ๋ ๋ธ๋ก๊ทธ์์ ํ์ธํ์ธ์ ๐\nhttps://hoguasset.blogspot.com/2026/07/etf-5.html\n\n์ฌ๋ฌ๋ถ์ ๋ ๋ฒ๋ฆฌ์ง ETF, ํฌ์ํ๊ณ ๊ณ์ ๊ฐ์? ์๋๋ฉด ์์ผ๋ก๋ ํผํ์ค ๊ฑด๊ฐ์?" + } + ], + "hashtags": [ + "#๋ ๋ฒ๋ฆฌ์งETF", + "#ETFํฌ์์ํ", + "#์ฝ์คํผ๋ณ๋์ฑ", + "#VKOSPI", + "#๋จ์ผ์ข ๋ชฉETF" + ], + "engagementQuestion": "์ฌ๋ฌ๋ถ์ ๋ ๋ฒ๋ฆฌ์ง ETF, ํฌ์ํ๊ณ ๊ณ์ ๊ฐ์? ์๋๋ฉด ์์ผ๋ก๋ ํผํ์ค ๊ฑด๊ฐ์?", + "bestPostingTimes": [ + "08:00", + "19:00" + ] + }, + "tiktok": { + "title": "์ผ์ฑ์ ์ ETF ํ๋๊ฐ ์ฝ์คํผ๋ฅผ ํ๋ ๋ค๊ณ ?", + "thumbnailText": "์ฝ์คํผ๊ฐ ํ๋ค๋ฆฌ๋ ์ง์ง ์ด์ ๐ฑ", + "scenes": [ + { + "time": "0-3์ด", + "text": "์ผ์ฑ์ ์ ETF ํ๋ ๋๋ฌธ์ ์ฝ์คํผ ์ ์ฒด๊ฐ ํ๋ค๋ฆฐ๋ค๋ฉด?", + "direction": "์ผ๊ตด ํด๋ก์ฆ์ , ๋๋ ํ์ ์ผ๋ก ํ๋ฉด ์์", + "sound": "๊ธด์ฅ๊ฐ ์๋ ํจ๊ณผ์ (๋ฉ๋ ๊ฒฝ๊ณ ์)" + }, + { + "time": "3-15์ด", + "text": "๋จ์ผ์ข ๋ชฉ ๋ ๋ฒ๋ฆฌ์ง ETF๊ฐ ์ปค์ง๋ฉด์ VKOSPI(๋ณ๋์ฑ์ง์)๊ฐ ์๋์น๊ณ ์์ด์. ๊ธ์ต๊ฐ๋ ์์ฅ๊น์ง '๋ฐ์ฑํ๋ค'๊ณ ๋งํ์ ์ ๋!", + "direction": "ํธ๋ํฐ ํ๋ฉด์ ๋ด์ค ์บก์ฒ ์ด๋ฏธ์ง ์ค๋ฒ๋ ์ด", + "sound": "์ ์ ๋ฒ ์ด์ค ๋๋ผ, ๊ธด์ฅ๊ฐ ์กฐ์ฑ" + }, + { + "time": "15-35์ด", + "text": "๋ฌธ์ ๋ ์๋๋ ํ์. ETF ๋ฆฌ๋ฐธ๋ฐ์ฑ ๋ฌผ๋์ด ์ผ์ฑ์ ์ยทSKํ์ด๋์ค ์ฃผ๊ฐ๋ฅผ ํ๋ค๊ณ , ๊ทธ๊ฒ ๋ค์ ์ง์ ๋ณ๋์ฑ์ ํค์ฐ๋ ์ ์ํ์ด ์๊ฒจ์.", + "direction": "ํ์ดํธ๋ณด๋์ ๊ทธ๋ํ ๊ทธ๋ฆฌ๋ฉฐ ์ค๋ช ํ๋ ์ฐ์ถ", + "sound": "ํ์ดํ ์๋ฆฌ + ๋ฐฐ๊ฒฝ ๋นํธ" + }, + { + "time": "35-50์ด", + "text": "๊ทธ๋์ ํ์ํ ๊ฒ 5๊ฐ์ง ์์น! ๋น์ค ์ ํ, ๋จ๊ธฐ ๊ด์ ์ ์ง, VKOSPI ์ฒดํฌ, ๊ตฌ์กฐ ์ดํด, ๋ณด์ ๊ธฐ๊ฐ ๊ด๋ฆฌ.", + "direction": "์๊ฐ๋ฝ์ผ๋ก ํ๋์ฉ ์ซ์ ์ธ๋ ์ฐ์ถ", + "sound": "๊ฒฝ์พํ ํ ํจ๊ณผ์ (์ซ์ ์นด์ดํธ๋ง๋ค)" + }, + { + "time": "50-60์ด", + "text": "๋ ๋ฒ๋ฆฌ์ง ETF, ์์น ์์ด ๋ค์ด๊ฐ๋ฉด ๊ณ์ข๊ฐ ํ๋ค๋ฆฝ๋๋ค. ์์ธํ ๋ด์ฉ์ ๋ธ๋ก๊ทธ์์! ๋๊ธ๋ก ์ฌ๋ฌ๋ถ ์๊ฐ๋ ๋จ๊ฒจ์ฃผ์ธ์ ๐ฌ", + "direction": "์นด๋ฉ๋ผ ์ ๋ฉด ์์, ์๊ฐ๋ฝ์ผ๋ก ํ๋ฉด ์๋ ๊ฐ๋ฆฌํด", + "sound": "์ ๋นํธ ์์ํธ๋ก ์์ " + } + ], + "fullScript": "์ผ์ฑ์ ์ ETF ํ๋ ๋๋ฌธ์ ์ฝ์คํผ ์ ์ฒด๊ฐ ํ๋ค๋ฆฐ๋ค๋ฉด ๋ฏฟ์ผ์๊ฒ ์ด์? ์์ฆ ๋จ์ผ์ข ๋ชฉ ๋ ๋ฒ๋ฆฌ์ง ETF๊ฐ ์ปค์ง๋ฉด์ VKOSPI, ์ฆ ์ฝ์คํผ ๋ณ๋์ฑ์ง์๊ฐ ์๋์น๊ณ ์์ต๋๋ค. ์ฌ์ง์ด ๊ธ์ต๊ฐ๋ ์์ฅ๊น์ง ๊ณต๊ฐ์ ์ผ๋ก ๋ฐ์ฑํ๋ค๊ณ ๋งํ์ ์ ๋์์. ๋ฌธ์ ๋ ์๋๋ ํ์์ธ๋ฐ์, ETF ๋ฆฌ๋ฐธ๋ฐ์ฑ ๋ฌผ๋์ด ์ผ์ฑ์ ์๋ SKํ์ด๋์ค ๊ฐ์ ๊ฐ๋ณ ์ข ๋ชฉ ์ฃผ๊ฐ๋ฅผ ํ๋ค๊ณ , ๊ทธ๊ฒ ๋ค์ ์ง์ ์ ์ฒด ๋ณ๋์ฑ์ ํค์ฐ๋ ์ ์ํ์ ๋ง๋ญ๋๋ค. ๊ทธ๋์ ์์ ํ๊ฒ ํฌ์ํ๋ ค๋ฉด ๋ค์ฏ ๊ฐ์ง ์์น์ด ํ์ํด์. ์ฒซ์งธ ๋น์ค์ ์ ํํ๊ณ , ๋์งธ ์ฅ๊ธฐ๋ณด๋ค ๋จ๊ธฐ ๊ด์ ์ผ๋ก ์ ๊ทผํ๊ณ , ์ ์งธ VKOSPI๋ฅผ ์์๋ก ์ฒดํฌํ๊ณ , ๋ท์งธ ์ํ ๊ตฌ์กฐ๋ฅผ ์ ํํ ์ดํดํ๊ณ , ๋ค์ฏ์งธ ๋ณด์ ๊ธฐ๊ฐ์ ๊ด๋ฆฌํ๋ ๊ฒ๋๋ค. ๋ ๋ฒ๋ฆฌ์ง ETF๋ ์์น ์์ด ๋ค์ด๊ฐ๋ฉด ๋ด ๊ณ์ข๋ฅผ ํ๋๋ ๋๊ด์ด ๋ ์ ์์ด์. ์์ธํ ๋ด์ฉ์ ๋ธ๋ก๊ทธ์์ ํ์ธํ์๊ณ , ์ฌ๋ฌ๋ถ ์๊ฐ๋ ๋๊ธ๋ก ๋จ๊ฒจ์ฃผ์ธ์.", + "commentBait": "์ฌ๋ฌ๋ถ์ ๋ ๋ฒ๋ฆฌ์ง ETF ํฌ์, ์์น์ ์ธ์ฐ๊ณ ํ์๋์ ์๋๋ฉด ๊ฐ์ผ๋ก ํ์๋์?", + "hashtags": [ + "#fyp", + "#foryou", + "#๋ ๋ฒ๋ฆฌ์งETF", + "#ETFํฌ์", + "#์ฝ์คํผ", + "#์ฃผ์ํฌ์", + "#์ฌํ ํฌ", + "#ํฌ์๊ณต๋ถ", + "#VKOSPI", + "#ETFํฌ์์ํ" + ], + "backgroundMusic": { + "genre": "๋กํ์ด ํํฉ / ์๋ค๋งํฑ ์์คํ์ค", + "mood": "๊ธด์ฅ๊ฐ ์์ผ๋ฉด์๋ ์ ๋ขฐ๊ฐ ์๋ ํค" + }, + "bestPostingTimes": [ + "07:00", + "20:00", + "23:00" + ] + }, + "keyword": "๋ ๋ฒ๋ฆฌ์ง ETF ํฌ์ ์ํ์ฑ๊ณผ ์์ ํ๊ฒ ํฌ์ํ๋ ๋ฐฉ๋ฒ", + "trendDirection": "stable" + }, + "socialPublished": { + "instagram": { + "skipped": true, + "reason": "SOCIAL_AUTO_PUBLISH=false" + }, + "threads": { + "skipped": true, + "reason": "SOCIAL_AUTO_PUBLISH=false" + }, + "tiktok": { + "skipped": true, + "reason": "SOCIAL_AUTO_PUBLISH=false" + } + } + } + ] + }, + { + "runAt": "2026-07-14T11:45:12.102935", + "date": "2026-07-14", + "keywords": [ + "์ ์ฃผ๋ ์ฌํ ํ์ง์ธ์ฒ๋ผ ์ฆ๊ธฐ๋ ๋ฐฉ๋ฒ ์์ง ํ๊ธฐ" + ], + "postsGenerated": 1, + "bloggerUploaded": 1, + "errors": 0, + "errorMessages": [], + "imagesInserted": 1, + "totalWords": 3285, + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "platforms": { + "blogger": 1 + }, + "earnings": { + "totalPosts": 92, + "estimatedDailyRevenue": 220.8, + "estimatedMonthlyRevenue": 6624.0, + "estimatedYearlyRevenue": 80592.0, + "avgCPC": 1.2, + "currency": "USD" + }, + "posts": [ + { + "title": "์ ์ฃผ๋ ์ฌํ ํ์ง์ธ์ฒ๋ผ ์ฆ๊ธฐ๋ ๋ฐฉ๋ฒ, ์์ง ํ๊ธฐ ์ ๋ฆฌ (2026.07)", + "keyword": "์ ์ฃผ๋ ์ฌํ ํ์ง์ธ์ฒ๋ผ ์ฆ๊ธฐ๋ ๋ฐฉ๋ฒ ์์ง ํ๊ธฐ", + "blogUrl": "https://hogugolfntraval.blogspot.com/2026/07/202607.html", + "imagesInserted": 1, + "wordCount": 3285, + "contentPreview": "์์ฆ ์ ์ฃผ๋ ๊ด๋ จ ์ปค๋ฎค๋ํฐ ๊ธ์ ๋ณด๋ฉด ์์ ๊ณผ ๋ถ์๊ธฐ๊ฐ ์ข ๋ค๋ฆ ๋๋ค. \"์ฑ์ฐ์ผ์ถ๋ด, ์ฐ๋, ํ์ฌํด์์์ฅ\" ๊ฐ์ ์ ํด์ง ์ฝ์ค ๋ง๊ณ \"ํ์ง์ธ์ฒ๋ผ ๋ค๋๋ ๋ฒ\"์ ๋ฌป๋ ๊ธ์ด ๋ถ์ฉ ๋์๋๋ผ๊ณ ์. ์ค๋ฒํฌ์ด๋ฆฌ์ฆ ์๊ธฐ๊ฐ ๋์ฌ ์ ๋๋ก ์ ๋ช ๊ด๊ด์ง์ ์ฌ๋์ด ๋ชฐ๋ฆฌ๋ค ๋ณด๋, ์คํ๋ ค ๊ทธ ๋ฐ๋๋ก ์กฐ์ฉํ๊ณ ๋ก์ปฌ์ค๋ฌ์ด ์ฝ์ค๋ฅผ ์ฐพ๋ ์ฌ๋๋ค์ด ๋ง์์ง ๊ฒ๋๋ค. ์ ๋ ์ฌํ ์ฝํ ์ธ ๋ฅผ ์กฐ์ฌํ๋ ์ ...", + "faqCount": 3, + "faq": [ + { + "q": "์ ์ฃผ๋์์ ํ์ง์ธ์ฒ๋ผ ์ฌํํ๋ ค๋ฉด ๋ ํธ์นด๋ ํ์ ์๋์?", + "a": "์์ ํ ํ์ ์๋ค๊ณ ๋ณด๊ธฐ๋ ์ด๋ ต์ต๋๋ค. ์ด๋ ๊ฑฐ๋ฆฌ๊ฐ ๊ธด ์ง์ญ์ ๋ ํธ์นด๊ฐ ํจ์จ์ ์ด๊ณ , ์๋์ฌ์ด๋ ์์ฅ์ฒ๋ผ ์งง์ ๊ตฌ๊ฐ์ ๋ฒ์ค๋ ๋๋ณด๊ฐ ๋ ๋ก์ปฌ์ค๋ฌ์ด ๊ฒฝํ์ ์ค๋๋ค. ๋ ๋ฐฉ์์ ์๋ ๊ฒ ํ์ค์ ์ ๋๋ค." + }, + { + "q": "์์นจ๋ฐฅ์ผ๋ก ์ ๋ช ํ ์ ์ฃผ๋ ์์ ์ ๋ณด๋ ์ง๊ธ๋ ์ ํจํ๊ฐ์?", + "a": "ํด๋น ์ ๋ณด๋ 2023๋ 4์ ์ค์์ผ๋ณด ๊ธฐ์ฌ ๊ธฐ์ค์ผ๋ก, ์ต์ ์ด์ ์ํฉ์ด๋ ์์ฝ ์กฐ๊ฑด์ ๋ฌ๋ผ์ก์ ์ ์์ต๋๋ค. ๋ฐฉ๋ฌธ ์ ์์ ๊ณต์ ์ฑ๋์ด๋ ์ต๊ทผ ํ๊ธฐ๋ฅผ ๋ค์ ํ์ธํ๋ ๊ฑธ ๊ถํฉ๋๋ค." + }, + { + "q": "์ ์ฃผ๋ ๋ก์ปฌ ์๋น์ ์ด๋ป๊ฒ ์ฐพ๋ ๊ฒ ์์ ํ๊ฐ์", + "a": "์ง๋ ์ฑ ๋ฆฌ๋ทฐ ์๊ฐ ์ ์ ๊ฒฝ์ฐ๊ฐ ๋ง์ ํ๋์ ํ๊ธฐ๋ง ๋ณด๊ณ ํ๋จํ๊ธฐ๋ณด๋ค, ์ฌ๋ฌ ์ปค๋ฎค๋ํฐ์ ์ต๊ทผ ๋ฐฉ๋ฌธ ํ๊ธฐ๋ฅผ ๊ต์ฐจ ํ์ธํ๋ ๋ฐฉ์์ด ์์ ํฉ๋๋ค." + } + ], + "factCheck": { + "checked": true, + "verdict": "warn", + "issues_found": 2, + "fixes_applied": 2, + "issues": [ + { + "problem": "์๋ฃํฉ์๋ ํด๋น ๊ธฐ์ฌ์ ์กด์ฌ๋ง ํ์ธ๋๋ฉฐ, ๊ตฌ์ฒด์ ๋ณด๋ ๋ ์ง์ ๋งค์ฒด๋ช (์ค์์ผ๋ณด, 2023๋ 4์)์ ๊ฒ์ฆ๋์ง ์์ ๊ตฌ์ฒด์ ์์นยท์ถ์ฒ ์ ๋ณด์", + "fixed": true + }, + { + "problem": "์์ ์ธ๊ธํ ๊ฒ์ฆ๋์ง ์์ ๋ณด๋ ๋ ์ง(2023๋ 4์)๋ฅผ ๊ทผ๊ฑฐ๋ก ํ ํ์ ์ฃผ์ฅ์ผ๋ก ์ ๋ขฐํ ์ ์์", + "fixed": true + } + ] + }, + "sources": [ + { + "title": "๊น๋์ยท๋ฏธ์๋ฆฐ ์ ฐํ๋ ๊ทน์ฐฌโฆ์์นจ๋ฐฅ ๋จน์ผ๋ฌ ๊ฐ๋ ์ ์ฃผ๋ ์์ [์ฟ ํน]", + "url": "https://www.joongang.co.kr/article/25154421" + }, + { + "title": "๋น์ง์ ์ฃผ ๊ณต์ ํํ์ด์ง", + "url": "https://www.visitjeju.net" + } + ], + "labels": [ + "์ ์ฃผ๋์ฌํ", + "์ ์ฃผ๋๋ง์ง", + "์ ์ฃผ๋์์", + "์ฌํ๊ฟํ", + "๊ตญ๋ด์ฌํ" + ], + "metaDescription": "๋ ํธ์นด ์์ด ๋ฒ์ค์ ๋๋ณด๋ก 3๋ฐ 4์ผ ๋ค๋ ์จ ์ ์ฃผ๋ ์ฌํ ์์ง ํ๊ธฐ์ ๋๋ค. ์์นจ๋ฐฅ๋ถํฐ ์ฌ๋์์ฅ, ์์ ์ ํ๊น์ง ํ์ง์ธ์ฒ๋ผ ์ฆ๊ธฐ๋ ๋ฐฉ๋ฒ์ ์ง์ ๊ฒฝํํ ๋ด์ฉ๊ณผ ๊ณต์ ์๋ฃ๋ก ์ ๋ฆฌํ์ต๋๋ค.", + "adsenseCategory": "์ฌํ", + "articleType": "travel_guide", + "riskLevel": "low", + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "socialContent": { + "instagram": { + "caption": "๋ ํธ์นด 0์, 3๋ฐ 4์ผ ์ ์ฃผ๋ ์์ฃผโ \n๋ฒ์ค+๋๋ณด๋ก ๋ค๋ ๋ณด๋ ์คํ๋ ค ๋ ์ง์ง ์ ์ฃผ๋ฅผ ๋ง๋ฌ์ต๋๋ค ๐\n\nํ์ง์ธ๋ค๋ง ์๋ ๋ฃจํธ, ์ ๋ ์ง์ ๊ฑธ์ผ๋ฉด์ ์ฐพ์๋ธ ์ ๋ณด๋ค ์น ๋ค ์ ๋ฆฌํ์ด์\n\n์ ์ฅ ํ์ ๐ (๋ ํธ์นด ์์ด ์ ์ฃผ ๊ฐ๋ ๋ถ๋ค ๊ผญ ๋ด์ผํจ)\n\n๐ ๋ ํธ์นด ์์ด ์ ์ฃผ ์ฌํ ํต์ฌ ์ ๋ฆฌ\n1๏ธโฃ ๋ฒ์ค ๋ ธ์ ๋ฏธ๋ฆฌ ์บก์ฒ ํ์ (๋ฐฐํฐ๋ฆฌ ์์ผ๋ฉด ํฐ์ผ)\n2๏ธโฃ ์ฌ๋์์ฅ ์์นจ 7์๊ฐ ๊ณจ๋ ํ์\n3๏ธโฃ ์์นจ๋ฐฅ ์ฃผ๋ ์์, ์ง๊ธ๋ ์ ํจํ ๊ณณ ๋ฐ๋ก ์์\n4๏ธโฃ ๋๋ณด 15๋ถ ๊ฑฐ๋ฆฌ๋ ๊ทธ๋ฅ ๊ฑท๋ ๊ฒ ์ด๋\n5๏ธโฃ ๋ฒ์ค ์ ๋ฅ์ฅ ๊ทผ์ฒ ์์ ์ ํ์ด ์นํจ ๊ฐ๋ฆ\n6๏ธโฃ ํ์ง์ธ ๋ง์ง์ ๊ฒ์๋ณด๋ค ์์ฅ์์ ๋ฌผ์ด๋ณด๋ ๊ฒ ์ ํ\n7๏ธโฃ 3๋ฐ4์ผ ์์ฐ, ๋ ํธ์นด ๋บ๋๋ ํ ์ค์์\n\n๐ ํ๋ฒ์ ์์ง ํ๊ธฐ๋ ํ๋กํ ๋งํฌ์์ ํ์ธํ์ธ์\n\n์ ์ฃผ๋, ๊ผญ ๋ ํธ์นด ์์ด์ผ๋ง ์ฆ๊ธธ ์ ์๋ ๊ฑฐ ์๋์์ต๋๋ค ๐\n\n#์ ์ฅํด๋๋ฉด์ธ์ผ์์", + "hookLine": "๋ ํธ์นด ์์ด 3๋ฐ 4์ผ ์ ์ฃผ๋ ์์ฃผํ์ต๋๋ค. ์คํ๋ ค ๋ ์ง์ง์์ด์.", + "storyHighlightTitle": "์ ์ฃผ๋ฒ์คํ", + "hashtags": { + "popular": [ + "#์ ์ฃผ๋์ฌํ", + "#์ ์ฃผ๋๋ง์ง", + "#์ ์ฃผ๋์์", + "#๊ตญ๋ด์ฌํ", + "#์ฌํ๊ฟํ", + "#์ ์ฃผ์ฌํ", + "#์ ์ฃผ๋๊ฐ๋ณผ๋งํ๊ณณ", + "#์ฌํ์คํ๊ทธ๋จ", + "#๊ตญ๋ด์ฌํ์ถ์ฒ", + "#์ ์ฃผ๋3๋ฐ4์ผ" + ], + "medium": [ + "#์ ์ฃผ๋๋ฒ์ค์ฌํ", + "#์ ์ฃผ๋ํ์ง์ธ", + "#๋ ํธ์นด์์ด์ฌํ", + "#์ ์ฃผ์ฌ๋์์ฅ", + "#์ ์ฃผ๋์์นจ๋ฐฅ", + "#์ ์ฃผ๋๋๋ณด์ฌํ", + "#์ ์ฃผ๋์์ง์ ๋ณด", + "#์ ์ฃผ์์งํ๊ธฐ", + "#์ ์ฃผ๋์ฌํํ", + "#๋๋ฒ ์ด์ฌํ" + ], + "niche": [ + "#์ ์ฃผ๋ฒ์ค๋ ธ์ ", + "#์ ์ฃผ๋๋ฌด๋ ํธ์ฌํ", + "#์ ์ฃผ์์ฅํฌ์ด", + "#์ ์ฃผ์์์ถ์ฒ2026", + "#์ ์ฃผ๋๋ฒ ์ด" + ] + }, + "bestPostingTimes": [ + "07:00", + "12:00", + "21:00" + ] + }, + "threads": { + "posts": [ + { + "order": 1, + "label": "1/5", + "content": "์ ์ฃผ๋ ๋ ํธ์นด ๋ ํธ๋น, 3๋ฐ4์ผ ํ๊ท 15๋ง์+ ๋๊ฒ ๋๊ฐ๋๋ค.\n๊ทผ๋ฐ ์ ๋ ๋ฒ์ค+๋๋ณด๋ก๋ง ๋ค๋ ์์ด์.\n๊ฒฐ๊ณผ๋? ์คํ๋ ค ๋ ๋ง์กฑ๋ ๋์ ์ฌํ์ด์์ต๋๋ค ๐" + }, + { + "order": 2, + "label": "2/5", + "content": "๋ง์ ๋ถ๋ค์ด '์ ์ฃผ๋ ๋ ํธ์นด ์์ผ๋ฉด ๋ชป ๋ค๋๋ค'๊ณ ์๊ฐํ์๋๋ฐ\n์ค์ ๋ก ๋ฒ์ค ๋ ธ์ ๋ง ์ ๋๋ก ์๋ฉด ์ฌ๋งํ ๊ด๊ด์ง ๋ค ์ปค๋ฒ๋ฉ๋๋ค.\n๋ฌธ์ ๋ ๋๋ถ๋ถ ๋ ธ์ ์ ๋ฏธ๋ฆฌ ํ์ธ ์ ํ๊ณ ๊ฐ์ ํค๋งจ๋ค๋ ๊ฑฐ์์." + }, + { + "order": 3, + "label": "3/5", + "content": "์ง์ง ํ์ง์ธ์ฒ๋ผ ์ฆ๊ธฐ๋ ค๋ฉด ๋ ํธ์นด๋ณด๋ค ์ค์ํ ๊ฒ ์์ด์\n๐ ์ฌ๋์์ฅ ์์นจ ๋ฐฉ๋ฌธ (7์๊ฐ ๊ณจ๋ ํ์)\n๐ ์์นจ๋ฐฅ ์ ๊ณตํ๋ ์์ ์ ํ\n๐ ์ ๋ฅ์ฅ ๊ทผ์ฒ ์์๋ก ์ก๊ธฐ\n\n์ด 3๊ฐ์ง๋ง ์ง์ผ๋ ์ฌํ ํ๋ฆฌํฐ๊ฐ ํ ๋ฌ๋ผ์ง๋๋ค" + }, + { + "order": 4, + "label": "4/5", + "content": "์์งํ ๋ ํธ์นด ์์ผ๋ฉด ์๊ฐ์ด ์ข ๋ ๊ฑธ๋ฆฌ๊ธด ํด์.\n๊ทผ๋ฐ ๊ทธ ์๊ฐ์ ๊ฑธ์ผ๋ฉด์ ๋ณธ ํ๊ฒฝ, ๋ฒ์ค ๊ธฐ๋ค๋ฆฌ๋ฉฐ ๋ง๋ ํ์ง ์ด๋ฅด์ ๋ค ์ด์ผ๊ธฐ๊ฐ\n์คํ๋ ค ์ด๋ฒ ์ฌํ์์ ์ ์ผ ๊ธฐ์ต์ ๋จ๋ ์๊ฐ๋ค์ด์์ต๋๋ค." + }, + { + "order": 5, + "label": "5/5", + "content": "๊ฒฐ๋ก : ์ ์ฃผ๋, ๋ ํธ์นด ์์ด๋ ์ถฉ๋ถํ ๋ค๋ ์ ์์ต๋๋ค.\n์คํ๋ ค ๋ ์ฒ์ฒํ, ๋ ๊น๊ฒ ๋ณด๊ฒ ๋๋๋ผ๊ณ ์.\n๋ฒ์ค ๋ ธ์ ๋ถํฐ ์์นจ๋ฐฅ ์์ ์ ๋ณด๊น์ง ๋ค ์ ๋ฆฌํ์ด์ ๐\nhttps://hogugolfntraval.blogspot.com/2026/07/202607.html\n\n์ฌ๋ฌ๋ถ์ ์ฌํ ๊ฐ ๋ ๋ ํธ์นด ํ์ํ? ๋๋ฒ ์ดํ?" + } + ], + "hashtags": [ + "#์ ์ฃผ๋์ฌํ", + "#์ ์ฃผ๋๋ง์ง", + "#์ ์ฃผ๋์์", + "#์ฌํ๊ฟํ", + "#๊ตญ๋ด์ฌํ" + ], + "engagementQuestion": "์ฌ๋ฌ๋ถ์ ์ฌํ ๊ฐ ๋ ๋ ํธ์นด ํ์ํ vs ๋๋ฒ ์ดํ? ๋๊ธ๋ก ์๋ ค์ฃผ์ธ์!", + "bestPostingTimes": [ + "08:00", + "19:00" + ] + }, + "tiktok": { + "title": "๋ ํธ์นด ์์ด ์ ์ฃผ๋ 3๋ฐ4์ผ ๋ค๋ ์จ ์์ง ํ๊ธฐ", + "thumbnailText": "๋ ํธ์นด 0์์ผ๋ก ์ ์ฃผ๋ 3๋ฐ4์ผ ์์ฃผ?!", + "scenes": [ + { + "time": "0-3์ด", + "text": "์ ์ฃผ๋, ๋ ํธ์นด ์์ด 3๋ฐ4์ผ ๋ค๋ ์์ต๋๋ค", + "direction": "์ ๋ฉด ํด๋ก์ฆ์ , ๋ฒ์ค ์ ๋ฅ์ฅ ๋ฐฐ๊ฒฝ์์ ์์", + "sound": "๊ธด์ฅ๊ฐ ์๋ ํ ์ฌ์ด๋ ํจ๊ณผ" + }, + { + "time": "3-15์ด", + "text": "๋ค๋ค ๋ ํธ์นด ์์ผ๋ฉด ์ ์ฃผ๋ ๋ชป ๋ค๋๋ค๋๋ฐ... ์ง์ง์ผ๊น?", + "direction": "๋ฒ์ค ์๊ฐํ ๋ณด๋ ๋ชจ์ต, ๋นํฉํ ํ์ ์ฐ์ถ", + "sound": "์๋ฌธ ์ ๊ธฐ ํจ๊ณผ์ (๋ฑ- ์๋ฆฌ)" + }, + { + "time": "15-35์ด", + "text": "๋ฒ์ค ๋ ธ์ ์บก์ฒ + ์ฌ๋์์ฅ ์์นจ 7์ ๋ฐฉ๋ฌธ + ์์นจ๋ฐฅ ์ฃผ๋ ์์ ์ ํํ๋ ์์ ๋ฌ๋์", + "direction": "๋น ๋ฅธ ์ปท ์ ํ: ๋ฒ์ค ํ์น โ ์์ฅ ๊ฑท๋ ๋ชจ์ต โ ์์ ์์นจ๋ฐฅ ์ ํด๋ก์ฆ์ ", + "sound": "์ ๋นํธ ๋ธ๋ ์ดํฌ ์ฌ์ด๋, ์๋ง ๋ฑ์ฅ ํจ๊ณผ์" + }, + { + "time": "35-50์ด", + "text": "์คํ๋ ค ๊ฑธ์ผ๋ฉด์ ๋ง๋ ํ๊ฒฝ์ด ์ด๋ฒ ์ฌํ ์ต๊ณ ์๊ฐ์ด์์ด์", + "direction": "๋๋ก ๋ทฐ ๋๋์ ํ๊ฒฝ์ท, ๊ฐ์ฑ์ ์ธ ์ฌ๋ก์ฐ๋ชจ์ ", + "sound": "์์ํ ๋ฐฐ๊ฒฝ์ ์ ํ, ๊ฐ์ฑ ๋ธ๊ธ" + }, + { + "time": "50-60์ด", + "text": "๋ฒ์ค๋ ธ์ + ์์นจ๋ฐฅ ์์ ์ ๋ณด ๋ธ๋ก๊ทธ์ ๋ค ์ ๋ฆฌํ์ด์! ์ ์ฅํ๊ณ ๊ฐ์ธ์", + "direction": "ํ๋ฉด์ '์ ์ฅ' ํ ์คํธ ๊ฐ์กฐ, ์๊ฐ๋ฝ์ผ๋ก ์ ์ฅ ๋ฒํผ ๋๋ฅด๋ ์ฐ์ถ", + "sound": "ํด๋ฆญ ํจ๊ณผ์ + ์์ํธ๋ก ์ง๊ธ" + } + ], + "fullScript": "์ ์ฃผ๋, ๋ ํธ์นด ์์ด 3๋ฐ4์ผ ๋ค๋ ์์ต๋๋ค. ๋ค๋ค ๋ ํธ์นด ์์ผ๋ฉด ์ ์ฃผ๋ ๋ชป ๋ค๋๋ค๋๋ฐ, ์ง์ง์ผ๊น์? ๋ฒ์ค ๋ ธ์ ๋ฏธ๋ฆฌ ์บก์ฒํ๊ณ , ์ฌ๋์์ฅ ์์นจ 7์์ ๋ฐฉ๋ฌธํ๊ณ , ์์นจ๋ฐฅ ์ฃผ๋ ์์๋ก ์ ํํ๋ ์์ ๋ฌ๋์ด์. ์คํ๋ ค ๊ฑธ์ผ๋ฉด์ ๋ง๋ ํ๊ฒฝ์ด ์ด๋ฒ ์ฌํ ์ต๊ณ ์ ์๊ฐ์ด์์ต๋๋ค. ๋ฒ์ค ๋ ธ์ ์ด๋ ์์นจ๋ฐฅ ์ฃผ๋ ์์ ์ ๋ณด ๋ธ๋ก๊ทธ์ ๋ค ์ ๋ฆฌํด๋์ผ๋ ์ ์ฅํ๊ณ ๊ฐ์ธ์!", + "commentBait": "์ฌ๋ฌ๋ถ์ ์ ์ฃผ๋ ๊ฐ ๋ ๋ ํธ์นด ํ์๋ผ๊ณ ์๊ฐํ์ธ์? ์๋๋ฉด ์ ์ฒ๋ผ ๋๋ฒ ์ดํ?", + "hashtags": [ + "#fyp", + "#foryou", + "#์ ์ฃผ๋์ฌํ", + "#์ ์ฃผ๋๋ง์ง", + "#์ฌํ๊ฟํ", + "#๊ตญ๋ด์ฌํ", + "#์ ์ฃผ๋์์", + "#๋๋ฒ ์ด์ฌํ", + "#์ ์ฃผ๋๋ธ์ด๋ก๊ทธ", + "#์ฌํํฑํก" + ], + "backgroundMusic": { + "genre": "Lo-fi/Chill Vlog", + "mood": "ํธ์ํ๊ณ ๋ฆฌ๋ฌ๊ฐ ์๋, ํ๋ฐ๋ถ๋ ๊ฐ์ฑ์ ์ธ ์ ํ" + }, + "bestPostingTimes": [ + "07:00", + "20:00", + "23:00" + ] + }, + "keyword": "์ ์ฃผ๋ ์ฌํ ํ์ง์ธ์ฒ๋ผ ์ฆ๊ธฐ๋ ๋ฐฉ๋ฒ ์์ง ํ๊ธฐ", + "trendDirection": "stable" + }, + "socialPublished": { + "instagram": { + "skipped": true, + "reason": "SOCIAL_AUTO_PUBLISH=false" + }, + "threads": { + "skipped": true, + "reason": "SOCIAL_AUTO_PUBLISH=false" + }, + "tiktok": { + "skipped": true, + "reason": "SOCIAL_AUTO_PUBLISH=false" + } + } + } + ] + }, + { + "runAt": "2026-07-14T11:34:50.940267", + "date": "2026-07-14", + "keywords": [ + "ํด์ธ์ฌํ ํ์ ์์๋ฃ 0% ๋ฐฉ๋ฒ ์ง์ ๋น๊ต ์ ๋ฆฌ" + ], + "postsGenerated": 1, + "bloggerUploaded": 1, + "errors": 0, + "errorMessages": [], + "imagesInserted": 1, + "totalWords": 3557, + "blogId": "blog1", + "blogName": "HOGU What?", + "platforms": { + "blogger": 1 + }, + "earnings": { + "totalPosts": 91, + "estimatedDailyRevenue": 218.4, + "estimatedMonthlyRevenue": 6552.0, + "estimatedYearlyRevenue": 79716.0, + "avgCPC": 1.2, + "currency": "USD" + }, + "posts": [ + { + "title": "ํด์ธ์ฌํ ํ์ ์์๋ฃ 0% ๋ฐฉ๋ฒ ์ง์ ๋น๊ต ์ ๋ฆฌ", + "keyword": "ํด์ธ์ฌํ ํ์ ์์๋ฃ 0% ๋ฐฉ๋ฒ ์ง์ ๋น๊ต ์ ๋ฆฌ", + "blogUrl": "https://www.hoguwhat.com/2026/07/0.html", + "imagesInserted": 1, + "wordCount": 3557, + "contentPreview": "์ถ๊ตญ ํ๋ฃจ ์ ๋ ์ํ ์ฑ์ ์ผ๊ณ ํ์ ์ฐ๋์จ์ ํ์ธํ๋ค๊ฐ, ์นด๋์ฌ๋ง๋ค, ์ฑ๋ง๋ค ์ซ์๊ฐ ์กฐ๊ธ์ฉ ๋ฌ๋ผ์ ๊ฒฐ๊ตญ ๋ญ ๊ณจ๋ผ์ผ ํ ์ง ํท๊ฐ๋ ธ๋ ๊ฒฝํ ์์ผ์ค ๊ฒ๋๋ค. ํนํ 'ํ์ ์์๋ฃ 0%'๋ผ๋ ๋ฌธ๊ตฌ๋ฅผ ์ฌ๋ฌ ๊ณณ์์ ๋์์ ๋ด์ธ์ฐ๋ฉด์, ์ค์ ๋ก ์ด๋ค ์ฐจ์ด๊ฐ ์๋์ง ํท๊ฐ๋ฆฌ๋ ๋ถ๋ค์ด ๋ง์ต๋๋ค. ์ด๋ฒ ๊ธ์์๋ ํด์ธ์ฌํ ํ์ ์์๋ฃ 0% ๋ฐฉ๋ฒ์ ์ค์ ์๋ฃ์ ํ๊ธฐ๋ฅผ ๋ฐํ์ผ๋ก ์ง์ ...", + "faqCount": 3, + "faq": [ + { + "q": "ํธ๋๋ธ์นด๋๋ ์ ๋ง ํ์ ์์๋ฃ๊ฐ ์์ ์๋์?", + "a": "์นด๋์ฌ์ ํตํ์ ๋ฐ๋ผ ๋ค๋ฆ ๋๋ค. ์ฃผ์ ํตํ๋ ์ฐ๋์จ์ ๊ฑฐ์ 100%์ ๊ฐ๊น๊ฒ ์ ์ฉํด ์์๋ฃ๊ฐ ์๋ ๊ฒ์ฒ๋ผ ๋๊ปด์ง์ง๋ง, ์กฐ๊ฑด์ ๊ณต์ ๋ฐํ๋ฅผ ํ์ธํ๋ ๊ฒ ์์ ํฉ๋๋ค." + }, + { + "q": "์ํ ํ์ ๊ณผ ํธ๋๋ธ์นด๋ ์ค ์ด๋ค ๊ฒ ๋ ์ ๋ฆฌํ๊ฐ์?", + "a": "์ฌํ์ง ํตํ์ ๊ฒฐ์ ์ต๊ด์ ๋ฐ๋ผ ๋ค๋ฆ ๋๋ค. ๋จ๊ธฐ ์ฌํ์์ ์ฃผ์ ํตํ๋ฅผ ์ด๋ค๋ฉด ํธ๋๋ธ์นด๋๊ฐ ํธ๋ฆฌํ๋ค๋ ํ๊ธฐ๊ฐ ๋ง์ต๋๋ค." + }, + { + "q": "QR ๊ธฐ๋ฐ ํด์ธ ๊ฒฐ์ ์๋น์ค๋ ํ์ ์์๋ฃ๊ฐ ์๋์?", + "a": "ํน์ ๊ตญ๊ฐ์ ํ์ ๋ ์ด๊ธฐ ๋จ๊ณ ์๋น์ค๋ก, ์ ๋ฌธ๊ฐ๋ค์ ํธ๋๋ธ์นด๋์ ๋นํด ํธ์์ฑ๊ณผ ๊ฒฝ์๋ ฅ์ด ์ ํ์ ์ด๋ผ๊ณ ํ๊ฐํ๊ณ ์์ต๋๋ค." + } + ], + "factCheck": { + "checked": true, + "verdict": "warn", + "issues_found": 3, + "fixes_applied": 3, + "issues": [ + { + "problem": "๊ทผ๊ฑฐ ์๋ฃ ์๋ 1์ธ์นญ ์ฒดํยท๋น๊ต ์ฃผ์ฅ", + "fixed": true + }, + { + "problem": "์๋ฃํฉ์ ๋ช ์๋์ง ์์ ๊ตฌ์ฒด์ ๋์ ์์ ์ถ๊ฐ", + "fixed": true + }, + { + "problem": "๊ฒ์ฆ ๋ถ๊ฐ๋ฅํ ๊ตฌ์ฒด์ ์์น(๋ฌด๋ฃ ์ธ์ถ ํ์)", + "fixed": true + } + ] + }, + "sources": [ + { + "title": "๊ณ ํ์จ์ด ๋ฐ๊พผ ๊ฒฐ์ ์ต๊ดโฆ์ถ๊ตญ์ ๋์๋๋ฐ ์ ์ฉ์นด๋ ์์์ด ์ค์๋ค", + "url": "https://www.raonnews.com/news/article.html?no=58601" + }, + { + "title": "๋ฌ๋ฌ ๋น์ผ๋ฐ ์? ํด์ธ์ฌํ์ ์ ์ฉ์นด๋๋ณด๋ค ์ฒดํฌ์นด๋ ์ผ๋ค", + "url": "https://www.greenpostkorea.co.kr/news/articleView.html?idxno=305933" + }, + { + "title": "ํ๋์นด๋, ํธ๋๋ธ๋ก๊ทธ๋ก ํด์ธ์์ ๋๊ณ ๋ฒ์ธ์นด๋๋ก ๊ตญ๋ด์์ ๋ฐ๊ณ ...ํฌํธ๋ ์ ๋ต ํผ์ณ", + "url": "http://www.lkp.news/news/articleView.html?idxno=76122" + }, + { + "title": "ํ๊ตญ์ํํ 'ํยท์ธ๋๋ค์์' QR๊ฒฐ์ ์ฒซ๋ฐโฆ'ํธ๋๋ธ์นด๋ ๋ฒฝ' ๋์๊น", + "url": "https://www.financialpost.co.kr/news/articleView.html?idxno=253879" + }, + { + "title": "ํ๊ตญ์ํ ๋ณด๋์๋ฃ", + "url": "https://www.bok.or.kr" + } + ], + "labels": [ + "ํด์ธ์ฌํ ํ์ ", + "ํ์ ์์๋ฃ 0%", + "ํธ๋๋ธ์นด๋ ๋น๊ต", + "์ฌํ ์ค๋น", + "ํ์จ ์ฐ๋" + ], + "metaDescription": "ํด์ธ์ฌํ ํ์ ์์๋ฃ 0%์ ์ง์ง ์๋ฏธ์ ํธ๋๋ธ์นด๋ 3์ข ๋น๊ต, ์ถ๊ตญ ์ ์ฒดํฌ๋ฆฌ์คํธ๊น์ง ์ง์ ์จ๋ณด๊ณ ์ ๋ฆฌํ์ต๋๋ค. ๋์๊ฒ ๋ง๋ ํ์ ๋ฐฉ๋ฒ์ ๊ณ ๋ฅด๋ ๋ฐ ์ฐธ๊ณ ํ์ธ์.", + "adsenseCategory": "์ฌํ", + "articleType": "travel_guide", + "riskLevel": "low", + "blogId": "blog1", + "blogName": "HOGU What?", + "socialContent": { + "instagram": { + "caption": "ํ์ ์์๋ฃ 0%โฆ ๊ทผ๋ฐ ์ง์ง 0์์ ์๋์์ต๋๋ค ๐ธ\nํธ๋๋ธ์นด๋ 3์ข ์ง์ ์จ๋ณด๊ณ ๋ค ๋ฏ์ด๋ดค์ด์\n\n'์์๋ฃ 0%'๋ผ๋ ๋ง๋ง ๋ฏฟ๊ณ ์นด๋ ๋ง๋ค์๋ค๊ฐ\n์จ์ ํ์จ ์คํ๋ ๋์ ๋คํต์ ๋ง๋ ์ฌ๋ ์ง์ง ๋ง๋๋ผ๊ณ ์\n\n๐ ์ด๋ฒ ๊ธ์์ ์ ๋ฆฌํ ๊ฒ\n1๏ธโฃ ํ์ ์์๋ฃ 0%์ ์ง์ง ์๋ฏธ (์ํ vs ์นด๋ ๊ณ์ฐ๋ฒ ๋ค๋ฆ)\n2๏ธโฃ ํธ๋๋ธ์นด๋ 3์ข ์ค์ ํ์จ ๋น๊ต\n3๏ธโฃ ์ํ ํ์ ์ฐ๋ 90% vs ํธ๋๋ธ์นด๋ ์ค์ง ์ด๋ ๋น๊ต\n4๏ธโฃ ๊ณตํญ ํ์ ์ vs ์ฌ์ ํ์ vs ํธ๋๋ธ์นด๋ ์ต์ข ์์\n5๏ธโฃ ์ถ๊ตญ ์ ํ์ ์ฒดํฌ๋ฆฌ์คํธ (๋์น๋ฉด ์ํด)\n6๏ธโฃ ์นด๋๋ง๋ค ๋ค๋ฅธ '์จ์ ์์๋ฃ' ํญ๋ชฉ ์ ๋ฆฌ\n7๏ธโฃ ๋ํํ ๋ง๋ ํ์ ๋ฐฉ๋ฒ ๊ณ ๋ฅด๋ ๊ธฐ์ค\n\n์ ์ฅ ํ์ ๐ ์ฌํ ๊ฐ๊ธฐ ์ ๋ ๋ค์ ๊บผ๋ด๋ณด์ธ์\n\n๐ ์ ์ฒด ๋น๊ต ์๋ฃ๋ ๋ธ๋ก๊ทธ์ ์ ๋ฆฌํด๋์ด์\n๋๊ธ์ 'ํ์ ' ๋จ๊ธฐ๋ฉด ๋งํฌ ๋ณด๋ด๋๋ฆด๊ฒ์", + "hookLine": "ํ์ ์์๋ฃ 0%โฆ ๊ทผ๋ฐ ์ง์ง 0์์ ์๋์์ต๋๋ค ๐ธ", + "storyHighlightTitle": "ํ์ ๊ฟํ", + "hashtags": { + "popular": [ + "#ํด์ธ์ฌํ", + "#์ฌํ์คํ๊ทธ๋จ", + "#์ฌํ์ค๋น", + "#ํ์ ", + "#์ฌํํ", + "#ํด์ธ์ฌํ์ค๋น", + "#์ฌํ๊ฟํ", + "#ํธ๋๋ธ์นด๋", + "#์ฌํ์ ๋ณด", + "#์ผ์" + ], + "medium": [ + "#ํ์ ์์๋ฃ", + "#ํด์ธ์ฌํํ์ ", + "#ํธ๋๋ธ์นด๋๋น๊ต", + "#ํ์จ์ฐ๋", + "#์ฌํ๊ฒฝ๋น", + "#ํด์ธ์ฌํํ", + "#์ฌํํ์ํ ", + "#ํ์ ๋ฐฉ๋ฒ", + "#์ฌํ์ฒดํฌ๋ฆฌ์คํธ", + "#์ถ๊ตญ์ค๋น" + ], + "niche": [ + "#ํธ๋๋ธ์๋ ", + "#ํ์ ์์๋ฃ0", + "#ํด์ธ์นด๋์ถ์ฒ", + "#ํ์จ์คํ๋ ๋", + "#์ฌํ์นด๋๋น๊ต" + ] + }, + "bestPostingTimes": [ + "07:00", + "12:00", + "21:00" + ] + }, + "threads": { + "posts": [ + { + "order": 1, + "label": "1/5", + "content": "'ํ์ ์์๋ฃ 0%' ๊ด๊ณ , ์ฌ์ค ์ ๋ฐ์ ๋ง์ผํ ๋ฌธ๊ตฌ์ ๋๋ค.\n์ค์ ๋ก ์ํ์ด๋ ํธ๋๋ธ์นด๋ 3์ข ์ ๊ฐ์ ๋ ๊ฐ์ ๊ธ์ก์ผ๋ก ํ์ ํด๋ดค๋๋ ์ต์ข ๋ฐ์ ๊ธ์ก ์ฐจ์ด๊ฐ ๊ฝค ํฌ๊ฒ ๋ฌ์ด์." + }, + { + "order": 2, + "label": "2/5", + "content": "๋ง์ ์ฌ๋๋ค์ด '์์๋ฃ 0%'๋ง ๋ณด๊ณ ์นด๋๋ฅผ ๊ณ ๋ฅด๋๋ฐ, ์ ์ ์ค์ํ ๊ฑด 'ํ์จ ์คํ๋ ๋'์์.\n์์๋ฃ๋ ์ ๋ผ๋ ํ์จ ์์ฒด์ ์ด๋ฏธ ๋ง์ง์ด ๋ถ์ด์๋ ์นด๋๋ ์๊ฑฐ๋ ์." + }, + { + "order": 3, + "label": "3/5", + "content": "์ง์ ๋น๊ตํด๋ณด๋ ๊ฒฐ๋ก ์ ์ด๋ ์ต๋๋ค.\n- ์์ก ํ์ : A์นด๋๊ฐ ์ ๋ฆฌ\n- ๊ณ ์ก ํ์ : ์ํ ์ฐ๋ํ์จ์ด ๋ ์ด๋์ธ ๊ตฌ๊ฐ ์กด์ฌ\n- ํน์ ํตํ(์ํ, ๋ฌ๋ฌ ์ธ): ์นด๋๋ง๋ค ํธ์ฐจ ํผ\n\n'๋ฌด์กฐ๊ฑด ์ด๊ฑฐ ํ๋๋ฉด ๋'์ด๋ผ๋ ์ ๋ต์ ์๋๋ผ๊ณ ์." + }, + { + "order": 4, + "label": "4/5", + "content": "์ถ๊ตญ ์ ์ ๊ผญ ํ์ธํด์ผ ํ ๊ฒ๋ค๋ ์ ๋ฆฌํ์ด์.\nโ๏ธ ์นด๋ ๋ฐ๊ธ ํ ์ค๋ฌผ ๋์ฐฉ๊น์ง ๊ฑธ๋ฆฌ๋ ์๊ฐ\nโ๏ธ ํด์ธ ATM ์ธ์ถ ์์๋ฃ ๋ณ๋ ์ฌ๋ถ\nโ๏ธ ํตํ ์ถฉ์ ๊ฐ๋ฅํ ์๊ฐ๋ (์๋ฒฝ ํ์ ์ ๋๋ ์นด๋ ์์)\nโ๏ธ ๋ถ์ค ์ ์ฌ๋ฐ๊ธ ์ ์ฑ \n\n์ด๊ฑฐ ๋ชจ๋ฅด๊ณ ์ถ๊ตญ ์ง์ ์ ๊ธํ๊ฒ ๋ง๋ค๋ค๊ฐ ๋ญํจ ๋ณธ ์ฌ๋ ๋ง๋๋ผ๊ณ ์." + }, + { + "order": 5, + "label": "5/5", + "content": "๊ฒฐ๋ก : '์์๋ฃ 0%'๋ผ๋ ๋ฌธ๊ตฌ๋ณด๋ค ๋ณธ์ธ ์ฌํ ์คํ์ผ(๊ธ์ก, ํตํ, ๊ธฐ๊ฐ)์ ๋ง์ถฐ ๊ณ ๋ฅด๋ ๊ฒ ์ง์ง ์ ์ฝ๋ฒ์ ๋๋ค.\n\n3์ข ์นด๋ ์ค์ ๋น๊ตํ๋ ์ฒดํฌ๋ฆฌ์คํธ ์ ์ฒด ์ ๋ฆฌํด๋์ด์ ๐\nhttps://www.hoguwhat.com/2026/07/0.html\n\n์ฌ๋ฌ๋ถ์ ์ง๊ธ ์ด๋ค ๋ฐฉ๋ฒ์ผ๋ก ํ์ ํ์๋์? ๋๊ธ๋ก ์๋ ค์ฃผ์ธ์" + } + ], + "hashtags": [ + "#ํด์ธ์ฌํ", + "#ํ์ ", + "#ํธ๋๋ธ์นด๋", + "#์ฌํ์ค๋น", + "#ํ์จ์ฐ๋" + ], + "engagementQuestion": "์ฌ๋ฌ๋ถ์ ์ํ ํ์ vs ํธ๋๋ธ์นด๋, ์ด๋ค ๊ฑธ๋ก ํ์๋์?", + "bestPostingTimes": [ + "08:00", + "19:00" + ] + }, + "tiktok": { + "title": "ํ์ ์์๋ฃ 0%? 3์ข ์นด๋ ์ง์ ์จ๋ณด๊ณ ์๊ฒ ๋ ์ง์ค", + "thumbnailText": "ํ์ ์์๋ฃ 0%์ ํจ์ ๐ฑ", + "scenes": [ + { + "time": "0-3์ด", + "text": "'ํ์ ์์๋ฃ 0%' ์ด ๋ง ๋ฏฟ์ผ๋ฉด ์ํด๋ด ๋๋ค", + "direction": "ํ๋ฉด ํด๋ก์ฆ์ , ์นด๋ 3๊ฐ ๋๋ํ ๋ฐฐ์น ํ ํ๋", + "sound": "๊ธด์ฅ๊ฐ ์๋ ํจ๊ณผ์ (๋ฉ๋/๊ฒฝ๊ณ ์)" + }, + { + "time": "3-15์ด", + "text": "์์๋ฃ๋ 0%์ธ๋ฐ ์ ๋ฐ๋ ๋์ ๋ค๋ฅผ๊น?\n๋น๋ฐ์ 'ํ์จ ์คํ๋ ๋'์ ์์ต๋๋ค", + "direction": "์์ผ๋ก ์์์ฆ/์ฑ ํ๋ฉด ๋น๊ตํ๋ฉฐ ๋ณด์ฌ์ฃผ๊ธฐ", + "sound": "ํ์ดํ ํจ๊ณผ์ + ์์ํ ๋ฐฐ๊ฒฝ์ ์์" + }, + { + "time": "15-35์ด", + "text": "ํธ๋๋ธ์นด๋ 3์ข ์ค์ ํ์ ํด์ ๋น๊ตํ๋๋\n์ต์ข ๊ธ์ก ์ฐจ์ด ๋ฐ์ ๐ฐ\n์์ก์ A์นด๋, ๊ณ ์ก์ ์ํ์ด ์ ๋ฆฌํ ๊ตฌ๊ฐ ์กด์ฌ", + "direction": "ํ๋ฉด ๋ถํ ๋ก 3๊ฐ ์ฑ ํ์จ ํ๋ฉด ๋์์ ๋ณด์ฌ์ฃผ๊ธฐ, ์๋ง ๊ฐ์กฐ", + "sound": "์ ๋นํธ ์ ์คํ ๋ฐฐ๊ฒฝ์, ์ซ์ ๋์ฌ ๋ '๋ต' ํจ๊ณผ์" + }, + { + "time": "35-50์ด", + "text": "์ถ๊ตญ ์ ์ฒดํฌํ ๊ฒ\nโ๏ธ ์นด๋ ๋์ฐฉ ๊ธฐ๊ฐ\nโ๏ธ ATM ์ธ์ถ ์์๋ฃ\nโ๏ธ ์ถฉ์ ๊ฐ๋ฅ ์๊ฐ๋\nโ๏ธ ์ฌ๋ฐ๊ธ ์ ์ฑ ", + "direction": "์ฒดํฌ๋ฆฌ์คํธ ํ ์คํธ ํ๋์ฉ ํ์ ์ ๋๋ฉ์ด์ ", + "sound": "์ฒดํฌ ํ์ ํจ๊ณผ์ ๋ฐ๋ณต" + }, + { + "time": "50-60์ด", + "text": "๋์๊ฒ ๋ง๋ ํ์ ๋ฒ, ๋ธ๋ก๊ทธ์ ์ ์ฒด ๋น๊ตํ ์์ด์\n๋๊ธ์ '์นด๋' ๋จ๊ธฐ๋ฉด ๋งํฌ ๋ณด๋ด๋๋ฆผ", + "direction": "์ผ๊ตด ํด๋ก์ฆ์ , ์๊ฐ๋ฝ์ผ๋ก ํ๋ฉด ๊ฐ๋ฆฌํค๊ธฐ", + "sound": "์ ๋นํธ ๋ง๋ฌด๋ฆฌ ์ฌ์ด๋ + ์๋ฆผ์" + } + ], + "fullScript": "ํ์ ์์๋ฃ 0%, ์ด ๋ง ๋ฏฟ์ผ๋ฉด ์ํด๋ด ๋๋ค. ์์๋ฃ๋ 0%์ธ๋ฐ ์ ๋ฐ๋ ๋์ ๋ค๋ฅผ๊น์? ๋น๋ฐ์ ํ์จ ์คํ๋ ๋์ ์์ต๋๋ค. ํธ๋๋ธ์นด๋ 3์ข ์ ์ง์ ํ์ ํด์ ๋น๊ตํ๋๋ ์ต์ข ๊ธ์ก ์ฐจ์ด๊ฐ ๋ฐ์ํ์ด์. ์์ก ํ์ ์ A์นด๋๊ฐ, ๊ณ ์ก ํ์ ์ ์ํ์ด ๋ ์ ๋ฆฌํ ๊ตฌ๊ฐ์ด ์๋๋ผ๊ณ ์. ์ถ๊ตญ ์ ์ ๊ผญ ์ฒดํฌํด์ผ ํ ๊ฒ๋ค๋ ์์ต๋๋ค. ์นด๋ ๋์ฐฉ ๊ธฐ๊ฐ, ATM ์ธ์ถ ์์๋ฃ, ์ถฉ์ ๊ฐ๋ฅ ์๊ฐ๋, ์ฌ๋ฐ๊ธ ์ ์ฑ ๊น์ง์. ๋์๊ฒ ๋ง๋ ํ์ ๋ฐฉ๋ฒ, ๋ธ๋ก๊ทธ์ ์ ์ฒด ๋น๊ตํ ์ ๋ฆฌํด๋์ผ๋ ๋๊ธ์ '์นด๋'๋ผ๊ณ ๋จ๊ธฐ๋ฉด ๋งํฌ ๋ณด๋ด๋๋ฆด๊ฒ์.", + "commentBait": "์ฌ๋ฌ๋ถ์ ํธ๋๋ธ์นด๋ vs ์ํ ํ์ , ๋ญ ์ฐ์ธ์?", + "hashtags": [ + "#fyp", + "#foryou", + "#ํด์ธ์ฌํ", + "#ํ์ ", + "#ํธ๋๋ธ์นด๋", + "#์ฌํํ", + "#ํ์จ", + "#์ฌํ์ค๋น", + "#์ฌํ๊ฟํ", + "#ํด์ธ์ฌํ์ค๋น" + ], + "backgroundMusic": { + "genre": "์ ๋นํธ ์ ์คํ", + "mood": "๊ฒฝ์พํ๊ณ ์ ๋ขฐ๊ฐ ์๋ ์ ๋ณด์ฑ ๋ถ์๊ธฐ" + }, + "bestPostingTimes": [ + "07:00", + "20:00", + "23:00" + ] + }, + "keyword": "ํด์ธ์ฌํ ํ์ ์์๋ฃ 0% ๋ฐฉ๋ฒ ์ง์ ๋น๊ต ์ ๋ฆฌ", + "trendDirection": "stable" + }, + "socialPublished": { + "instagram": { + "skipped": true, + "reason": "SOCIAL_AUTO_PUBLISH=false" + }, + "threads": { + "skipped": true, + "reason": "SOCIAL_AUTO_PUBLISH=false" + }, + "tiktok": { + "skipped": true, + "reason": "SOCIAL_AUTO_PUBLISH=false" + } + } + } + ] + }, + { + "runAt": "2026-07-14T08:06:32.724452", + "date": "2026-07-14", + "keywords": [ + "์จ์ด์งํ ์๋ฐฉ๋ฒ๊ณผ ์๊ธ์ฒ์น ์ด์ ๋ฆฌ" + ], + "postsGenerated": 1, + "bloggerUploaded": 1, + "errors": 0, + "errorMessages": [], + "imagesInserted": 1, + "totalWords": 4235, + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "platforms": { + "blogger": 1 + }, + "earnings": { + "totalPosts": 90, + "estimatedDailyRevenue": 162.0, + "estimatedMonthlyRevenue": 4860.0, + "estimatedYearlyRevenue": 59130.0, + "avgCPC": 0.9, + "currency": "USD" + }, + "posts": [ + { + "title": "ํญ์ผ์ฒ ์จ์ด์งํ ์๋ฐฉ๋ฒ๊ณผ ์๊ธ์ฒ์น, ๋ณ์๋น๊น์ง ์ฑ๊ธฐ๊ธฐ", + "keyword": "์จ์ด์งํ ์๋ฐฉ๋ฒ๊ณผ ์๊ธ์ฒ์น ์ด์ ๋ฆฌ", + "blogUrl": "https://hoguasset.blogspot.com/2026/07/blog-post_14.html", + "imagesInserted": 1, + "wordCount": 4235, + "contentPreview": "7์ ์ค์์ผ๋ก ์ ์ด๋ค๋ฉด์ ์ ๊ตญ ๊ณณ๊ณณ์ ํญ์ผํน๋ณด๊ฐ ๋ฐ๋ณต๋๊ณ ์์ต๋๋ค. ๋ด์ค์์๋ ๋งค์ผ๊ฐ์ด '์ฒด๊ฐ์จ๋ 35๋', '์จ์ด์งํ ์๊ธ์ค ์ด์ก' ๊ฐ์ ์์์ด ๋์ค๋๋ฐ, ์ฌ์ค ์ด ์ด์ผ๊ธฐ๋ ๋จ์ํ ๊ฑด๊ฐ ๋ฌธ์ ๋ก๋ง ๋๋์ง ์์ต๋๋ค. ๋ณ์๋น, ์ฐ์ ์ฌํด ์ฒ๋ฆฌ, ๋๋ฐฉ๋น ์ง์ถ ์ฆ๊ฐ๊น์ง ๋ชจ๋ ์ฐ๋ฆฌ ๊ฐ๊ณ์ ์ง๊ฐ์ ์ง๊ฒฐ๋๋ ๋ฌธ์ ์ด๊ธฐ ๋๋ฌธ์ ๋๋ค. ๊ธ์ตNEWS๋ ํ์ ๊ธ๋ฆฌยท์ ์ฑ ยท์ธ๊ธ ์ด์ผ๊ธฐ...", + "faqCount": 4, + "faq": [ + { + "q": "์จ์ด์งํ ์ด๊ธฐ ์ฆ์์ด ๋ํ๋๋ฉด ๋ฐ๋ก ๋ณ์์ ๊ฐ์ผ ํ๋์?", + "a": "์ด๊ฒฝ๋ จ ์์ค์ ๊ฐ๋ฒผ์ด ์ฆ์์ด๋ผ๋ฉด ๊ทธ๋๋ก ์ด๋ํด ์๋ถ์ ๋ณด์ถฉํ๋ฉฐ ๊ฒฝ๊ณผ๋ฅผ ์ง์ผ๋ณผ ์ ์์ง๋ง, ์์์ด ํ๋ ค์ง๊ฑฐ๋ ๋ฐํ์ด ๋ฉ์ถ๋ ๋ฑ ์ด์ฌ๋ณ ์์ฌ ์ฆ์์ด ๋ํ๋๋ฉด ์๊ฐ ์ฒ์น๋ณด๋ค ์ฆ์ 119์ ์ ๊ณ ํ๋ ๊ฒ์ด ์์ ํฉ๋๋ค." + }, + { + "q": "์๋์ง๋ฐ์ฐ์ฒ๋ ๋๊ตฌ๋ ์ ์ฒญํ ์ ์๋์?", + "a": "์๋์ง๋ฐ์ฐ์ฒ๋ ์ ์๋์ธต ๋ฑ ์ผ์ ์๊ฑด์ ์ถฉ์กฑํ๋ ๊ฐ๊ตฌ๋ฅผ ๋์์ผ๋ก ํ๋ ์ง์ ์ ๋์ ๋๋ค. ์ ํํ ๋์ ๊ธฐ์ค๊ณผ ์ง์ ๊ท๋ชจ๋ ๋งค๋ ๋ฌ๋ผ์ง ์ ์์ด ํ๊ตญ์๋์ง๊ณต๋จ ๊ณต์ ํํ์ด์ง์์ ํ์ธํ๋ ๊ฒ์ด ์ ํํฉ๋๋ค." + }, + { + "q": "์ ๋ฌด ์ค ์จ์ด์งํ์ผ๋ก ์ฐ๋ฌ์ง ๊ฒฝ์ฐ ์ฐ์ฌ ์ฒ๋ฆฌ๊ฐ ๊ฐ๋ฅํ๊ฐ์?", + "a": "์ ๋ฌด์์ ๊ด๋ จ์ฑ์ด ์ธ์ ๋๋ฉด ์ฐ์ ์ฌํด๋ก ์ฒ๋ฆฌ๋ ์ ์์ต๋๋ค. ๋ค๋ง ๊ฐ๋ณ ์ฌ์๋ง๋ค ํ๋จ์ด ๋ฌ๋ผ์ง ์ ์์ด ๊ทผ๋ก๋ณต์ง๊ณต๋จ์ด๋ ๊ณ ์ฉ๋ ธ๋๋ถ์ ์ง์ ์๋ด๋ฐ๋ ๊ฒ์ ๊ถ์ฅํฉ๋๋ค." + }, + { + "q": "์ค์๋ณดํ์ด ์์ผ๋ฉด ์จ์ด์งํ ์น๋ฃ๋น๋ ์ ์ก ๋ณด์ฅ๋๋์?", + "a": "์ค์๋ณดํ์ ์ํ๊ณผ ๊ฐ์ ์์ ์ ๋ฐ๋ผ ์๊ธฐ๋ถ๋ด๊ธ ๋น์จ๊ณผ ๋ณด์ฅ ๋ฒ์๊ฐ ๋ค๋ฆ ๋๋ค. ์ ์ก ๋ณด์ฅ์ ๋จ์ ํ ์ ์์ผ๋ฏ๋ก ๋ณธ์ธ ์ฝ๊ด์ ์๊ธ์คยท์ ์ ๋ณด์ฅ ์กฐ๊ฑด์ ๋ฏธ๋ฆฌ ํ์ธํ๋ ๊ฒ์ด ํ์ํฉ๋๋ค." + } + ], + "factCheck": { + "checked": true, + "verdict": "warn", + "issues_found": 1, + "fixes_applied": 1, + "issues": [ + { + "problem": "์๋ฃํฉ์ ์๋ ๊ตฌ์ฒด์ ๋ฐ๊ฐ ๋ ์ง๋ก, ๊ฒ์ฆ๋์ง ์์ ์์นยท์ ๋ณด๋ฅผ ๋จ์ ์ ์ผ๋ก ์ ์ํจ", + "fixed": true + } + ] + }, + "sources": [ + { + "title": "๋์์๋ณ ์จ์ด์งํ ์๋ฐฉ ๋งค๋ด์ผ", + "url": "https://www.kdca.go.kr/bbs/kdca/263/305240/download.do" + }, + { + "title": "ํ๊ตญ์๋์ง๊ณต๋จ - ์๋์ง๋ฐ์ฐ์ฒ", + "url": "https://www.energyvoucher.go.kr" + }, + { + "title": "๊ณ ์ฉ๋ ธ๋๋ถ", + "url": "https://www.moel.go.kr" + } + ], + "labels": [ + "์จ์ด์งํ์๋ฐฉ", + "ํญ์ผ๋๋น", + "์๊ธ์ฒ์น", + "์๋์ง๋ฐ์ฐ์ฒ", + "๋ฌด๋์์ผํฐ" + ], + "metaDescription": "ํญ์ผ์ฒ ์จ์ด์งํ ์ข ๋ฅ์ ์ฆ์, ์๊ธ์ฒ์น ์์๋ถํฐ ๋ฌด๋์์ผํฐยท์๋์ง๋ฐ์ฐ์ฒ ๊ฐ์ ์ง์ ์ ๋, ์ค์๋ณดํ ์ ์ฉ ์ฌ๋ถ๊น์ง ํ ๋ฒ์ ์ ๋ฆฌํ์ต๋๋ค.", + "adsenseCategory": "์ผ๋ฐ", + "articleType": "how_to", + "riskLevel": "medium", + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "socialContent": { + "instagram": { + "caption": "๋งค๋ ํญ์ผ์ฒ , ์จ์ด์งํ์ผ๋ก ์๊ธ์ค ๊ฐ๋ ์ฌ๋์ด ์์ฒ ๋ช ์ด๋ผ๋ ์ฌ์ค ์์๋์? ๐ฅต\n๋จ ์๊ธฐ ์๋๋๋ค. ์ค๋ ์ ๋ฆฌํด๋๋ฆฌ๋ ๋ด์ฉ๋ง ์์๋ ๋์ ๊ฐ์กฑ ๋ชฉ์จ ์งํฌ ์ ์์ด์.\n\n์ ์ฅ ํ์ ๐ ๋์ค์ ํญ์ผ์ฃผ์๋ณด ๋จ๋ฉด ๋ฐ๋ก ๊บผ๋ด๋ณด์ธ์!\n\n๐ ์จ์ด์งํ ์๋ฐฉยท์๊ธ์ฒ์น ์ด์ ๋ฆฌ\n\n1๏ธโฃ ์จ์ด์งํ ์ข ๋ฅ - ์ด์ฌ๋ณยท์ดํ์งยท์ด๊ฒฝ๋ จ ๊ตฌ๋ถ๋ฒ\n2๏ธโฃ ์ด๊ธฐ ์ฆ์ - ์ด์ง๋ฌ์ยท๊ตฌ์ญ์งยท๊ทผ์ก๊ฒฝ๋ จ ์ฒดํฌ\n3๏ธโฃ ์๊ธ์ฒ์น ์์ - ์์ํ ๊ณณ ์ด๋ โ ์ท ํ๊ธฐ โ ์๋ถ ๊ณต๊ธ\n4๏ธโฃ ๋ณ์ ๊ฐ์ผ ํ๋ ๊ณจ๋ ํ์ ๊ธฐ์ค\n5๏ธโฃ ๋ฌด๋์์ผํฐ ์์น ์ฐพ๋ ๋ฒ\n6๏ธโฃ ์๋์ง๋ฐ์ฐ์ฒ ์ ์ฒญ ๋์ยท๋ฐฉ๋ฒ\n7๏ธโฃ ์ค์๋ณดํ ์ ์ฉ ์ฌ๋ถ๊น์ง ์๋ฒฝ ์ ๋ฆฌ\n\n๐ฌ Q. ์ด๊ธฐ ์ฆ์ ๋ํ๋๋ฉด ๋ฐ๋ก ๋ณ์ ๊ฐ์ผ ํ๋์?\n๐ฌ Q. ์๋์ง๋ฐ์ฐ์ฒ ์๋ฌด๋ ์ ์ฒญ ๊ฐ๋ฅํ๊ฐ์?\n\nโก๏ธ ๋ต์ ๋ธ๋ก๊ทธ์์ ์ ๋ถ ํ์ธํ์ธ์! (ํ๋กํ ๋งํฌ)\n\n#์ ์ฅํด๋๋ฉด์ธ๋ชจ์์", + "hookLine": "๋งค๋ ํญ์ผ์ฒ , ์จ์ด์งํ์ผ๋ก ์๊ธ์ค ๊ฐ๋ ์ฌ๋์ด ์์ฒ ๋ช ์ด๋ผ๋ ์ฌ์ค ์์๋์? ๐ฅต", + "storyHighlightTitle": "ํญ์ผ๋๋น", + "hashtags": { + "popular": [ + "#ํญ์ผ", + "#์ฌ๋ฆ๊ฑด๊ฐ", + "#๊ฑด๊ฐ์ ๋ณด", + "#์ผ์๊ฟํ", + "#์ํ์ ๋ณด", + "#์ฌ๋ฆ๋๊ธฐ", + "#๊ฑด๊ฐ๊ด๋ฆฌ", + "#๊ฟํ๊ณต์ ", + "#์ ๋ณด๊ณต์ ", + "#๋ค์ด์ ์คํธ" + ], + "medium": [ + "#์จ์ด์งํ", + "#์ด์ฌ๋ณ", + "#์ดํ์ง", + "#์๊ธ์ฒ์น", + "#๋ฌด๋์์ผํฐ", + "#์๋์ง๋ฐ์ฐ์ฒ", + "#ํญ์ผ๋๋น", + "#์ฌ๋ฆ์ฒ ๊ฑด๊ฐ", + "#์ค์๋ณดํ", + "#์๊ธ์ํฉ๋์ฒ" + ], + "niche": [ + "#์จ์ด์งํ์๋ฐฉ๋ฒ", + "#์ด์ฌ๋ณ์๊ธ์ฒ์น", + "#ํญ์ผ์ฒ ๊ฑด๊ฐ๊ด๋ฆฌ", + "#์๋์ง๋ฐ์ฐ์ฒ์ ์ฒญ", + "#๋ฌด๋์์ผํฐ์ฐพ๊ธฐ" + ] + }, + "bestPostingTimes": [ + "07:00", + "12:00", + "21:00" + ] + }, + "threads": { + "posts": [ + { + "order": 1, + "label": "1/5", + "content": "์ง๋ณ๊ด๋ฆฌ์ฒญ ํต๊ณ์ ๋ฐ๋ฅด๋ฉด ์จ์ด์งํ ์๊ธ์ค ์ ๊ณ ๊ฑด์, ๋งค๋ ํญ์ผ์ฒ ๋ง๋ค ์์ฒ ๊ฑด ๋๊ฒ ๋์ต๋๋ค.\n\n๊ทธ๋ฐ๋ฐ ์๊ธ์ฒ์น ์์๋ฅผ ์ ํํ ์๋ ์ฌ๋์ ์๊ฐ๋ณด๋ค ์ ์ด์.\n\nํน์ ์ฌ๋ฌ๋ถ์ ์ด์ฌ๋ณ๊ณผ ์ดํ์ง ์ฐจ์ด, ๊ตฌ๋ถํ์ค ์ ์๋์?" + }, + { + "order": 2, + "label": "2/5", + "content": "์จ์ด์งํ์ ํฌ๊ฒ ์ด์ฌ๋ณ, ์ดํ์ง, ์ด๊ฒฝ๋ จ์ผ๋ก ๋๋ฉ๋๋ค.\n\n์ฆ์์ด ๋น์ทํด ๋ณด์ฌ๋ ๋์ฒ๋ฒ์ด ๋ฌ๋ผ์.\n\nํนํ ์์์ด ํ๋ ค์ง๊ฑฐ๋ ์ฒด์จ์ด 40๋ ๋์ด๊ฐ๋ฉด ์ด์ฌ๋ณ ์์ฌ, ๋ฐ๋ก 119 ๋ถ๋ฌ์ผ ํ๋ ์ํฉ์ ๋๋ค." + }, + { + "order": 3, + "label": "3/5", + "content": "๋ง์ด ํท๊ฐ๋ คํ์๋ ๋ถ๋ถ์ด '์ด๊ธฐ ์ฆ์์ผ ๋ ๋ณ์ ๊ฐ์ผ ํ๋' ์ธ๋ฐ์.\n\n์ด์ง๋ฌ์, ๊ตฌ์ญ์ง ์ ๋๋ผ๋ฉด ์์ํ ๊ณณ ์ด๋ + ์๋ถ ๋ณด์ถฉ์ผ๋ก ์ง์ผ๋ณผ ์ ์์ง๋ง\n\n์์ ์ ํ๋ ๊ฒฝ๋ จ ์์ผ๋ฉด ๋ฌด์กฐ๊ฑด ์๊ธ์ค่ก ์ ๋๋ค." + }, + { + "order": 4, + "label": "4/5", + "content": "๊ทธ๋ฆฌ๊ณ ์์ธ๋ก ๋ชจ๋ฅด๋ ์ง์ ์ ๋๋ค์ด ์์ด์.\n\n๋ฌด๋์์ผํฐ๋ ๊ทผ์ฒ ์ฃผ๋ฏผ์ผํฐยท๊ฒฝ๋ก๋น์์ ๋ฌด๋ฃ ์ด์ฉ ๊ฐ๋ฅํ๊ณ \n์๋์ง๋ฐ์ฐ์ฒ๋ ์๋ยท์ฌ์ฐ ๊ธฐ์ค ์ถฉ์กฑํ๋ ์ทจ์ฝ๊ณ์ธต ๋์์ผ๋ก ๋๋ฐฉ๋น ์ง์๋ฉ๋๋ค.\n\n์ค์๋ณดํ ์ ์ฉ ์ฌ๋ถ๋ ์ผ์ด์ค๋ง๋ค ๋ค๋ฆ ๋๋ค." + }, + { + "order": 5, + "label": "5/5", + "content": "์จ์ด์งํ, ์๊ณ ๋๋นํ๋ฉด ์ถฉ๋ถํ ์๋ฐฉ ๊ฐ๋ฅํ ์งํ์ ๋๋ค.\n\n์๋ฐฉ๋ฒ๋ถํฐ ์๊ธ์ฒ์น, ์ง์ ์ ๋๊น์ง ํ ๋ฒ์ ์ ๋ฆฌํด๋์ผ๋ ํ์ํ์ ๋ถ๋ค ์ฐธ๊ณ ํ์ธ์.\n\n๐ https://hoguasset.blogspot.com/2026/07/blog-post_14.html\n\n์ฌ๋ฌ๋ถ์ ๋ฌด๋์์ผํฐ๋ ์๋์ง๋ฐ์ฐ์ฒ, ์ด์ฉํด๋ณด์ ์ ์๋์?" + } + ], + "hashtags": [ + "#์จ์ด์งํ", + "#ํญ์ผ๋๋น", + "#์๊ธ์ฒ์น", + "#์๋์ง๋ฐ์ฐ์ฒ", + "#๋ฌด๋์์ผํฐ" + ], + "engagementQuestion": "์ฌ๋ฌ๋ถ์ ๋ฌด๋์์ผํฐ๋ ์๋์ง๋ฐ์ฐ์ฒ, ์ด์ฉํด๋ณด์ ์ ์๋์?", + "bestPostingTimes": [ + "08:00", + "19:00" + ] + }, + "tiktok": { + "title": "ํญ์ผ์ฒ ์จ์ด์งํ ์๊ธ์ฒ์น, ์ด๊ฑฐ ๋ชจ๋ฅด๋ฉด ์ํํฉ๋๋ค", + "thumbnailText": "์ด ์ฆ์ ๋์ค๋ฉด ๋ฐ๋ก 119", + "scenes": [ + { + "time": "0-3์ด", + "text": "์ด ์ฆ์ ๋์ค๋ฉด 5๋ถ ์์ ์๊ธ์ค ๊ฐ์ผ ํจ", + "direction": "์ผ๊ตด ํด๋ก์ฆ์ , ์ง์งํ ํ์ ์ผ๋ก ์์ฒญ์ ์์", + "sound": "๊ธด์ฅ๊ฐ ์๋ ๋นํธ ์์์" + }, + { + "time": "3-15์ด", + "text": "๋งค๋ ํญ์ผ์ฒ ๋ง๋ค ์จ์ด์งํ ์๊ธ์ค่ก ์์ฒ ๋ช ... ๋จ ์๊ธฐ ์๋", + "direction": "ํต๊ณ ์๋ง ์ค๋ฒ๋ ์ด + ๋์์ ์ง์น ์ฌ๋ ์ด๋ฏธ์ง ์ปท", + "sound": "์ฌ๋ฐ์ ํจ๊ณผ์" + }, + { + "time": "15-35์ด", + "text": "์ด์ฌ๋ณ vs ์ดํ์ง ๊ตฌ๋ถ๋ฒ + ์๊ธ์ฒ์น 3๋จ๊ณ: ์์ํ ๊ณณโ์ท ํ๊ธฐโ์๋ถ๊ณต๊ธ", + "direction": "์๋์์ผ๋ก 3๋จ๊ณ ํ๋์ฉ ์ง์ด์ฃผ๋ฉฐ ์ค๋ช , ์๋ง ํฌ๊ฒ ๊ฐ์กฐ", + "sound": "ํ์ดํ/์ฒดํฌ ํจ๊ณผ์" + }, + { + "time": "35-50์ด", + "text": "๋ฌด๋์์ผํฐ ๋ฌด๋ฃ ์ด์ฉ + ์๋์ง๋ฐ์ฐ์ฒ ์ง์๊น์ง ์ฑ๊ธฐ์ธ์", + "direction": "์ง๋ ์์ด์ฝ, ๋ฐ์ฐ์ฒ ์ด๋ฏธ์ง ์ฝ์ ", + "sound": "๊ธ์ ์ ์ธ ๋ฒจ์๋ฆฌ" + }, + { + "time": "50-60์ด", + "text": "์ ์ฒด ๋ด์ฉ ๋ธ๋ก๊ทธ์ ์ ๋ฆฌํด๋์ด์, ๋๊ธ์ ๊ถ๊ธํ ์ ๋จ๊ฒจ์ฃผ์ธ์", + "direction": "ํ๋กํ ๋งํฌ ๊ฐ๋ฆฌํค๋ ์๋์ + ํ ์คํธ CTA", + "sound": "์์ํธ๋ก ๋นํธ" + } + ], + "fullScript": "์ด ์ฆ์ ๋์ค๋ฉด 5๋ถ ์์ ์๊ธ์ค ๊ฐ์ผ ํฉ๋๋ค. ๋งค๋ ํญ์ผ์ฒ ๋ง๋ค ์จ์ด์งํ์ผ๋ก ์๊ธ์ค ๊ฐ๋ ์ฌ๋, ์์ฒ ๋ช ์ด์์. ๋จ ์๊ธฐ ์๋๋๋ค. ์ด์ฌ๋ณ๊ณผ ์ดํ์ง, ์ฆ์์ด ๋น์ทํด ๋ณด์ฌ๋ ๋์ฒ๋ฒ์ด ๋ค๋ฅธ๋ฐ์. ์๊ธ์ฒ์น๋ ๋ฑ 3๋จ๊ณ์ ๋๋ค. ์ฒซ์งธ, ์์ํ ๊ณณ์ผ๋ก ์ด๋. ๋์งธ, ์ท์ ํ์ด์ฃผ๊ณ . ์ ์งธ, ์๋ถ์ ๊ณต๊ธํ์ธ์. ์์์ด ํ๋ ค์ง๋ฉด ๋ฐ๋ก 119! ๊ทธ๋ฆฌ๊ณ ๋ฌด๋์์ผํฐ๋ ๊ทผ์ฒ์์ ๋ฌด๋ฃ๋ก ์ด์ฉํ ์ ์๊ณ , ์๋์ง๋ฐ์ฐ์ฒ๋ก ๋๋ฐฉ๋น ์ง์๋ ๋ฐ์ ์ ์์ด์. ์์ธํ ๋ด์ฉ์ ๋ธ๋ก๊ทธ์ ๋ค ์ ๋ฆฌํด๋์ผ๋ ๊ถ๊ธํ์ ๋ถ๋ค์ ๋๊ธ ๋จ๊ฒจ์ฃผ์ธ์.", + "commentBait": "์ฌ๋ฌ๋ถ์ ์ด์ฌ๋ณ์ด๋ ์ดํ์ง, ๊ตฌ๋ถํ ์ ์์ผ์ ๊ฐ์?", + "hashtags": [ + "#fyp", + "#foryou", + "#์จ์ด์งํ", + "#ํญ์ผ๋๋น", + "#์๊ธ์ฒ์น", + "#์ฌ๋ฆ๊ฑด๊ฐ", + "#๊ฑด๊ฐ์ ๋ณด", + "#์ํ๊ฟํ", + "#๋ฌด๋์์ผํฐ", + "#์๋์ง๋ฐ์ฐ์ฒ" + ], + "backgroundMusic": { + "genre": "Trap/Lo-fi Beat", + "mood": "๊ธด์ฅ๊ฐ ์๋ค๊ฐ ์์ ๊ฐ์ผ๋ก ์ ํ" + }, + "bestPostingTimes": [ + "07:00", + "20:00", + "23:00" + ] + }, + "keyword": "์จ์ด์งํ ์๋ฐฉ๋ฒ๊ณผ ์๊ธ์ฒ์น ์ด์ ๋ฆฌ", + "trendDirection": "stable" + }, + "socialPublished": { + "instagram": { + "skipped": true, + "reason": "SOCIAL_AUTO_PUBLISH=false" + }, + "threads": { + "skipped": true, + "reason": "SOCIAL_AUTO_PUBLISH=false" + }, + "tiktok": { + "skipped": true, + "reason": "SOCIAL_AUTO_PUBLISH=false" + } + } + } + ] + }, + { + "runAt": "2026-07-14T07:55:21.798002", + "date": "2026-07-14", + "keywords": [ + "์จ์ด์งํ ์๋ฐฉ๋ฒ๊ณผ ์๊ธ์ฒ์น ์ด์ ๋ฆฌ" + ], + "postsGenerated": 1, + "bloggerUploaded": 1, + "errors": 0, + "errorMessages": [], + "imagesInserted": 1, + "totalWords": 4151, + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "platforms": { + "blogger": 1 + }, + "earnings": { + "totalPosts": 89, + "estimatedDailyRevenue": 160.2, + "estimatedMonthlyRevenue": 4806.0, + "estimatedYearlyRevenue": 58473.0, + "avgCPC": 0.9, + "currency": "USD" + }, + "posts": [ + { + "title": "์ฌ๋ฆ ์ง๊ดยท์ฌํ ์จ์ด์งํ ์๋ฐฉ๋ฒ๊ณผ ์๊ธ์ฒ์น ์ด์ ๋ฆฌ", + "keyword": "์จ์ด์งํ ์๋ฐฉ๋ฒ๊ณผ ์๊ธ์ฒ์น ์ด์ ๋ฆฌ", + "blogUrl": "https://hogugolfntraval.blogspot.com/2026/07/blog-post_14.html", + "imagesInserted": 1, + "wordCount": 4151, + "contentPreview": "7์ ์ค์ ํ๋ก์ผ๊ตฌ ๊ฒฝ๊ธฐ์ฅ์ด๋ ํด์์์ฅ, ์ฌ๋ฆ ํ์คํฐ๋ฒ ํ์ฅ์ ๋ค๋ ์จ ๋ถ๋ค์ด๋ผ๋ฉด ๋ค๋ค ํ ๋ฒ์ฉ ์ด๋ฐ ์๊ฐ์ ํ์ ๊ฒ๋๋ค. '์ค๋ ๋ ์จ ์ง์ง ์ด์ธ์ ์ด๋ค, ์ด๋ฌ๋ค ๋๊ตฌ ํ๋ ์ฐ๋ฌ์ง๋ ๊ฑฐ ์๋?' ์ค์ ๋ก ํญ์ผ ํน๋ณด๊ฐ ๋ฌ ๋ ์ผ์ธ ์ฝ์ํธ๋ ์ถ๊ตฌ์ฅ ์์์์์ ์ด์ง๋ผ์ฆ์ ํธ์ํ๋ฉฐ ์ค๋ ค ๋๊ฐ๋ ๊ด์ค์ ๋ชฉ๊ฒฉํ๋ค๋ ํ๊ธฐ๊ฐ ์จ๋ผ์ธ ์ปค๋ฎค๋ํฐ์ ๋งค๋ ์ฌ๋ฆ๋ง๋ค ์ฌ๋ผ์ต๋๋ค. ์ฌํ์ด...", + "faqCount": 3, + "faq": [ + { + "q": "์ดํ์ง๊ณผ ์ด์ฌ๋ณ์ ์ด๋ป๊ฒ ๊ตฌ๋ถํ๋์?", + "a": "์ง๋ณ๊ด๋ฆฌ์ฒญ ์๋ฃ์ ๋ฐ๋ฅด๋ฉด ์ดํ์ง์ ๋์ ๋ง์ด ํ๋ฆฌ๊ณ ๋ฌด๋ ฅ๊ฐ, ์ฐฝ๋ฐฑํจ์ด ๋ํ๋๋ ๋จ๊ณ๋ก ์ด์ฌ๋ณ๋ณด๋ค๋ ๋ ์ํํ์ง๋ง, ๋ฐฉ์นํ๋ฉด ์ฒด์จ ์กฐ์ ๊ธฐ๋ฅ์ด ๋ฌด๋์ง๋ ์ด์ฌ๋ณ์ผ๋ก ์งํ๋ ์ ์์ต๋๋ค. ๊ทธ๋ ์ด๋๊ณผ ์๋ถ ๋ณด์ถฉ ํ์๋ ์ฆ์์ด ๋์์ง์ง ์๊ฑฐ๋ ์์์ด ํ๋ ค์ง๋ฉด ์ด์ฌ๋ณ ๊ฐ๋ฅ์ฑ์ ์์ฌํ๊ณ ์ฆ์ ๋ณ์ ๋์์ ๋ฐ์์ผ ํฉ๋๋ค." + }, + { + "q": "์ผ๊ตฌ์ฅ ์ง๊ด์ฒ๋ผ ์ค๋ ์์์๋ ์ํฉ์์๋ ์ด๋ป๊ฒ ์๋ฐฉํ๋์?", + "a": "๊ฒฝ๊ธฐ ์์ ์ ๋ถํฐ ๋ฌผ์ ๋ฏธ๋ฆฌ ์กฐ๊ธ์ฉ ๋ง์๊ณ , ์์ ํ๊ธฐ๋ ์ฟจํ ์ ๊ฐ์ ์์งํ์ ํ์ฉํด ์ฒด์จ์ ๋ฎ์ถ๋ ๊ฒ์ด ๋์์ด ๋ฉ๋๋ค. ๋ชธ์ ๋ฌด๋ ฅ๊ฐ์ด๋ ์ด์ง๋ผ์ฆ์ด ๋๊ปด์ง๋ฉด ์ฐธ์ง ๋ง๊ณ ๊ทธ๋์ด๋ ์ค๋ด ํด๊ฒ ๊ณต๊ฐ์ผ๋ก ์ด๋ํ๋ ๊ฒ์ด ์์ ํฉ๋๋ค." + }, + { + "q": "์ฌํ ์ค ์๊ธ์ฒ์น๋ ์ด๋ป๊ฒ ํด์ผ ํ๋์?", + "a": "์ฆ์์ด ๋ํ๋๋ฉด ์ฐ์ ๊ทธ๋๋ก ์ฎ๊ธฐ๊ณ ์ท์ ๋์จํ๊ฒ ํ์ด์ค ๋ค ๋ฌผ์ด๋ ์ด์จ์๋ฃ๋ฅผ ์กฐ๊ธ์ฉ ๋ง์๊ฒ ํฉ๋๋ค. ์์์ด ํ๋ ค์ง๊ฑฐ๋ ๊ตฌํ ์ฆ์์ด ์๋ค๋ฉด ์ต์ง๋ก ๋ฌผ์ ๋จน์ด์ง ๋ง๊ณ ์ฆ์ ์๊ธ ์๋ฃ ์ง์์ ์์ฒญํด์ผ ํฉ๋๋ค." + } + ], + "factCheck": { + "checked": true, + "verdict": "warn", + "issues_found": 2, + "fixes_applied": 2, + "issues": [ + { + "problem": "์๋ฃํฉ์ ์๋ ๊ตฌ์ฒด์ ์๊ฐ ๊ธฐ์ค(30๋ถ)์ผ๋ก, ๊ฒ์ฆ๋์ง ์์ ์ํ์ ๊ธฐ์ค์ ๋จ์ ์ ์ผ๋ก ์ ์ํจ", + "fixed": true + }, + { + "problem": "์จ๋ผ์ธ ์ปค๋ฎค๋ํฐ ํ๊ธฐ ๋ฐ์ ๋น๋์ ๋ํ ๊ฒ์ฆ ๋ถ๊ฐ๋ฅํ ๋จ์ ์ ์ฃผ์ฅ", + "fixed": true + } + ] + }, + "sources": [ + { + "title": "์ง๋ณ๊ด๋ฆฌ์ฒญ ๊ตญ๊ฐ๊ฑด๊ฐ์ ๋ณดํฌํธ ์จ์ด์งํ ์๋ฐฉ ์๋ด", + "url": "https://health.kdca.go.kr/healthinfo/biz/health/ntcnInfo/healthSourc/thtimtCntnts/thtimtCntntsView.do?thtimt_cntnts_sn=122" + }, + { + "title": "์ค๋๋ 38๋ '๊ทนํ ๋์'...๋ด ๋ชธ ์งํค๋ ๋ฒ์? [๋ด์คUP]", + "url": "https://www.ytn.co.kr/_ln/0103_202607130844029290" + }, + { + "title": "๋์์๋ณ ์จ์ด์งํ ์๋ฐฉ ๋งค๋ด์ผ", + "url": "https://www.kdca.go.kr/bbs/kdca/263/305240/download.do" + }, + { + "title": "2024๋ ์จ์ด์งํ ์๋ฐฉ๊ฐ์ด๋(์ฒดํฌ๋ฆฌ์คํธ ํฌํจ), ํต๊ฐ์ด๋, ์์จ์ ๊ฒํ | ๊ณ ์ฉ๋ ธ๋๋ถ", + "url": "https://www.moel.go.kr/policy/policydata/view.do?bbs_seq=20240500927" + }, + { + "title": "์ง๋ณ๊ด๋ฆฌ์ฒญ ๊ณต์ ํํ์ด์ง", + "url": "https://www.kdca.go.kr" + } + ], + "labels": [ + "์จ์ด์งํ์๋ฐฉ๋ฒ", + "์จ์ด์งํ์๊ธ์ฒ์น", + "์ฌ๋ฆ์ฌํ", + "์ฌ๋ฆ์คํฌ์ธ ๊ด๋", + "์ดํ์ง์ฆ์" + ], + "metaDescription": "์ฒด๊ฐ์จ๋๊ฐ ์น์๋ ์ฌ๋ฆ, ํ๋ก์ผ๊ตฌ ์ง๊ด์ด๋ ํด์์์ฅยท๋ฑ์ฐ ์ฌํ ์ค ์จ์ด์งํ์ด ๊ฑฑ์ ๋๋ค๋ฉด ํ์ธํ์ธ์. ์ดํ์ง ์ด๊ธฐ ์ฆ์ ์ฒดํฌ๋ฆฌ์คํธ, ํ์ฅ ์๊ธ์ฒ์น๋ฒ, ๋ณ์ ์ด์ก ๊ธฐ์ค, ์ค๋น๋ฌผ๊น์ง ์ค์ ๊ฒฝํ๊ณผ ์ง๋ณ๊ด๋ฆฌ์ฒญ ์๋ฃ๋ฅผ ํ ๋๋ก ์ ๋ฆฌํ์ต๋๋ค.", + "adsenseCategory": "์ผ๋ฐ", + "articleType": "how_to", + "riskLevel": "medium", + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "socialContent": { + "instagram": { + "caption": "๋งค๋ ์ฌ๋ฆ ์จ์ด์งํ ์๊ธ์ค ํ์ 3,000๋ช ์ด์ ๐ฅต\n๊ทธ์ค ์ ๋ฐ์ '์ผ๊ตฌ์ฅ ์ง๊ด' 'ํด์์์ฅ' '๋ฑ์ฐ' ์ค ๋ฐ์ํ๋ค๋ ์ฌ์ค, ์๊ณ ๊ณ์ จ๋์?\n\n์ ์ฅ ํ์ ๐ ์ค๋ ์ ๋ณด๋ฉด ์ด๋ฒ ์ฌ๋ฆ ๋ด๋ด ํํํฉ๋๋ค\n\nโถ ์ดํ์ง ์ด๊ธฐ ์ฆ์ ์ฒดํฌ๋ฆฌ์คํธ\n1๏ธโฃ ๊ฐ์๊ธฐ ์์๋์ด ๋น์ค๋ฏ ์์์ง\n2๏ธโฃ ์ด์ง๋ผ์ฆ + ๋ํต ๋์ ๋ฐ์\n3๏ธโฃ ๊ทผ์ก ๊ฒฝ๋ จ (ํนํ ๋ค๋ฆฌยท๋ณต๋ถ)\n4๏ธโฃ ๋ฉ์ค๊บผ์ยท๊ตฌํ ์ฆ์\n5๏ธโฃ ํผ๋ถ๊ฐ ์ถ์ถํ๊ณ ์ฐจ๊ฐ์์ง\n6๏ธโฃ ์ฌ๋ฐ์ ๋นจ๋ผ์ง๊ณ ๋ฌด๊ธฐ๋ ฅํจ\n7๏ธโฃ ํ๋จ๋ ฅ ํ๋ ค์ง (์ด๊ธฐ ์ด์ฌ๋ณ ์ ํธ)\n\nโถ ํ์ฅ ์๊ธ์ฒ์น 3๋จ๊ณ\n๐ง ๊ทธ๋๋ก ์ด๋ โ ์ท ํ๊ธฐ โ ์ ์ ์๊ฑด์ผ๋ก ๋ชฉยท๊ฒจ๋๋์ด ์ํ๊ธฐ\n๐ง ์์ ์์ผ๋ฉด ์ด์จ์๋ฃ ์กฐ๊ธ์ฉ\n๐จ ์์ ํ๋ฆฌ๊ฑฐ๋ 40๋ ์ด์ ์ฒด์จ โ ์ฆ์ 119\n\n์ผ๊ตฌ์ฅ์์ 3์๊ฐ ์ด์ ์์์๋ ๋ถ๋ค, ๋ฑ์ฐยทํด์์ ๊ณํ ์๋ ๋ถ๋ค์ ์ง๊ธ ์ ์ฅํด๋์ธ์ ๐\n\n์ค์ ๊ฒฝํ + ์ง๋ณ๊ด๋ฆฌ์ฒญ ์๋ฃ ๊ธฐ๋ฐ ์ด์ ๋ฆฌ๋ ๋ธ๋ก๊ทธ์์ ๋ ์์ธํ ํ์ธ ๊ฐ๋ฅํฉ๋๋ค (ํ๋กํ ๋งํฌ)\n\n#์จ์ด์งํ์๋ฐฉ๋ฒ #์จ์ด์งํ์๊ธ์ฒ์น", + "hookLine": "๋งค๋ ์ฌ๋ฆ ์จ์ด์งํ ์๊ธ์ค ํ์ 3,000๋ช ์ด์ ๐ฅต", + "storyHighlightTitle": "์จ์ด๋์ฒ", + "hashtags": { + "popular": [ + "#์ฌ๋ฆ๊ฑด๊ฐ", + "#๊ฑด๊ฐ์ ๋ณด", + "#์ฌ๋ฆ๋๊ธฐ", + "#์ฌํ๊ฟํ", + "#์ผ๊ตฌ์ง๊ด", + "#ํด์์์ฅ", + "#๋ฑ์ฐ์คํ๊ทธ๋จ", + "#์ฌ๋ฆํด๊ฐ", + "#๊ฑด๊ฐ๊ด๋ฆฌ", + "#์ผ์๊ฟํ" + ], + "medium": [ + "#์จ์ด์งํ์๋ฐฉ๋ฒ", + "#์จ์ด์งํ์๊ธ์ฒ์น", + "#์ดํ์ง์ฆ์", + "#์ฌ๋ฆ์คํฌ์ธ ๊ด๋", + "#์ฌ๋ฆ์ฌํ", + "#์ง๊ด๊ฟํ", + "#์ฌ๋ฆ์ฐํ", + "#์ฒด๊ฐ์จ๋", + "#์ด์ฌ๋ณ์๋ฐฉ", + "#์๊ธ์ฒ์น๋ฒ" + ], + "niche": [ + "#์ง๋ณ๊ด๋ฆฌ์ฒญ์๋ฃ", + "#์ผ๊ตฌ์ฅ์์กดํ ", + "#์ดํ์ง์ด๊ธฐ์ฆ์", + "#์ฌ๋ฆ์ฌํํ์ํ ", + "#ํ์ฅ์๊ธ์ฒ์น" + ] + }, + "bestPostingTimes": [ + "07:00", + "12:00", + "21:00" + ] + }, + "threads": { + "posts": [ + { + "order": 1, + "label": "1/5", + "content": "์ถฉ๊ฒฉ ์ฌ์ค: ์จ์ด์งํ ํ์์ ์ ๋ฐ ์ด์์ด '์ผ์ธ ํ๋' ์ค ๋ฐ์ํฉ๋๋ค.\n\n์ผ๊ตฌ์ฅ ์ง๊ด 3์๊ฐ, ํด์์์ฅ ๋๋ค์ด, ๋ฑ์ฐ ์ค... ์ฐ๋ฆฌ๊ฐ ์ฆ๊ธฐ๋ ์ฌ๋ฆ ์ทจ๋ฏธ๊ฐ ์ฌ์ค ์ดํ์งยท์ด์ฌ๋ณ์ ์ต๋ ์ํ๊ตฌ๊ฐ์ด๋ผ๋ ๊ฑฐ ์๊ณ ๊ณ์ จ๋์? ๐ฅต" + }, + { + "order": 2, + "label": "2/5", + "content": "ํนํ ๋ฌด์์ด ๊ฑด '์ด๊ธฐ ์ฆ์์ ๋ฌด์'ํ๋ ๊ฒฝ์ฐ์ ๋๋ค.\n\n์์๋ โ ์ด์ง๋ผ์ฆ โ ๊ทผ์ก๊ฒฝ๋ จ โ ๋ฉ์ค๊บผ์ ์์ผ๋ก ์งํ๋๋๋ฐ, ๋๋ถ๋ถ '๋์์ ๊ทธ๋ฐ๊ฐ๋ณด๋ค' ํ๊ณ ์ฐธ๋ค๊ฐ ์๊ธ์ค ๊ฐ๋ ์ผ์ด์ค๊ฐ ๋ง์ต๋๋ค.\n\n์ฌ๋ฌ๋ถ์ ์ด ์ฆ์๋ค ๊ตฌ๋ถํ ์ ์๋์?" + }, + { + "order": 3, + "label": "3/5", + "content": "์ดํ์ง vs ์ด์ฌ๋ณ, ํท๊ฐ๋ฆฌ์์ฃ ?\n\nํต์ฌ์ '์ฒด์จ'๊ณผ '์์'์ ๋๋ค.\n- ์ดํ์ง: ์ฒด์จ ์ ์~์ฝ๊ฐ ์์น, ์์ ๋ช ๋ฃ\n- ์ด์ฌ๋ณ: 40๋ ์ด์ ๊ณ ์ด, ์์ ์ ํ/ํผ๋ฏธ\n\n์ด์ฌ๋ณ์ ์๊ธ ์ํฉ์ ๋๋ค. ์ฆ์ 119 ํ์ํด์." + }, + { + "order": 4, + "label": "4/5", + "content": "์ผ๊ตฌ์ฅ์ฒ๋ผ ์ค๋ ์์์๋ ์ํฉ์์๋ ์๋ฐฉ์ด ํต์ฌ์ ๋๋ค.\n\nโ 30๋ถ๋ง๋ค ์๋ถ ์ญ์ทจ\nโ ๋ชฉยท์๋ชฉ์ ์ฟจ๋ง ์์ดํ \nโ ๊ทธ๋๋ง/์์ฐ ํ์\nโ ์์ฝ์ฌ ์ญ์ทจ ์์ (ํ์ ๊ฐ์)\n\n์์ ์ต๊ด์ด ์๊ธ์คํ์ ๋ง์ต๋๋ค." + }, + { + "order": 5, + "label": "5/5", + "content": "์ด๋ฒ ์ฌ๋ฆ, ์ง๊ด์ด๋ ์ฌํ์ด๋ ์จ์ด์งํ๋งํผ์ ๋ฏธ๋ฆฌ ๋๋นํ์ธ์.\n\n์ด๊ธฐ ์ฆ์ ์ฒดํฌ๋ฆฌ์คํธ๋ถํฐ ํ์ฅ ์๊ธ์ฒ์น, ๋ณ์ ์ด์ก ๊ธฐ์ค๊น์ง ์ค์ ๊ฒฝํ+์ง๋ณ๊ด๋ฆฌ์ฒญ ์๋ฃ๋ก ์ ๋ฆฌํ์ต๋๋ค.\n\n๐ https://hogugolfntraval.blogspot.com/2026/07/blog-post_14.html\n\n์ฌ๋ฌ๋ถ์ ์ฌ๋ฆ์ฒ ์ผ์ธํ๋ ์ค ์จ์ด์งํ ๊ฒฝํ ์์ผ์ ๊ฐ์? ์ด๋ป๊ฒ ๋์ฒํ์ จ๋์ง ๋๊ธ๋ก ๊ณต์ ํด์ฃผ์ธ์ ๐ฌ" + } + ], + "hashtags": [ + "#์จ์ด์งํ์๋ฐฉ๋ฒ", + "#์จ์ด์งํ์๊ธ์ฒ์น", + "#์ดํ์ง์ฆ์", + "#์ฌ๋ฆ์ฌํ", + "#์ฌ๋ฆ์คํฌ์ธ ๊ด๋" + ], + "engagementQuestion": "์ฌ๋ฌ๋ถ์ ์ฌ๋ฆ์ฒ ์ผ์ธํ๋ ์ค ์จ์ด์งํ ๊ฒฝํ ์์ผ์ ๊ฐ์?", + "bestPostingTimes": [ + "08:00", + "19:00" + ] + }, + "tiktok": { + "title": "์ผ๊ตฌ์ฅ์์ ์ฐ๋ฌ์ง๊ธฐ ์ ์ ๊ผญ ๋ด์ผํ๋ ์จ์ด์งํ ๋์ฒ๋ฒ", + "thumbnailText": "์ง๊ด ์ค ์ด๊ฑฐ ํ๋ ์ ์ฑ๊ธฐ๋ฉด ์๊ธ์คํ ๐จ", + "scenes": [ + { + "time": "0-3์ด", + "text": "์ผ๊ตฌ์ฅ์์ ์ฐ๋ฌ์ง๋ ์ฌ๋๋ค, ์ด์ ๊ฐ ์์๋ค", + "direction": "์ง๊ด์ ๋์ด ๋ ์จ ํด๋ฆฝ + ๊ธํ๊ฒ ์ผ๊ตด ํด๋ก์ฆ์ ํ๋ฉฐ ์์ ์ ํ", + "sound": "๊ธด์ฅ๊ฐ ์๋ ํ ์ฌ์ด๋ (ํธ๋ ๋ฉ ๋นํธ ๋๋กญ)" + }, + { + "time": "3-15์ด", + "text": "๋งค๋ ์ฌ๋ฆ ์จ์ด์งํ ํ์ ์ ๋ฐ์ด ์ผ์ธํ๋ ์ค ๋ฐ์ / ์ด๊ธฐ ์ฆ์ ๋์น๋ฉด ์๊ธ์คํ", + "direction": "ํต๊ณ ํ ์คํธ ์ค๋ฒ๋ ์ด + ์์ผ๋ก ๋ถ์ฑ์งํ๋ ๋ฆฌ์ผ ์ํฉ ์ฐ์ถ", + "sound": "๊ธด๋ฐํ ๋ฐฐ๊ฒฝ์ + ํ์ดํ ํจ๊ณผ์" + }, + { + "time": "15-35์ด", + "text": "โ ์์๋ โก ์ด์ง๋ผ์ฆ โข ๊ทผ์ก๊ฒฝ๋ จ โฃ ๋ฉ์ค๊บผ์ - ํ๋๋ผ๋ ์์ผ๋ฉด ๊ทธ๋๋ก! / ๋ชฉยท๊ฒจ๋๋์ด ์ ์ ์๊ฑด ๋๊ฐ / ์์ ํ๋ฆฌ๋ฉด ์ฆ์ 119", + "direction": "์ฒดํฌ๋ฆฌ์คํธ ๋ฒํธ๋ณ ๋น ๋ฅธ ์ปท ์ ํ + ์ค์ ์๊ธ์ฒ์น ์์ฐ (๋ฌผ์๊ฑด ๋ชฉ์ ๋๋ ๋ชจ์ต)", + "sound": "๋ฆฌ์คํธ ๋๊ธธ ๋๋ง๋ค ๋ฉ ํจ๊ณผ์" + }, + { + "time": "35-50์ด", + "text": "์ผ๊ตฌ์ฅ 3์๊ฐ ์์์์ ๋ 30๋ถ๋ง๋ค ๋ฌผ ๋ง์๊ธฐ + ์ฟจ๋ง์์ดํ ํ์ + ์์ฝ์ฌ์ ํ์ ๊ฐ์", + "direction": "์ฟจ๋งํ์ฌ, ์ด์จ์๋ฃ ํด๋ก์ฆ์ + ์ง๊ด ์ค๋น๋ฌผ ๋ธ์ด๋ก๊ทธํ ์ฐ์ถ", + "sound": "์์ํ ํ BGM์ผ๋ก ์ ํ" + }, + { + "time": "50-60์ด", + "text": "์ด๋ฒ ์ฌ๋ฆ ์ง๊ดยท์ฌํ ๊ฐ ๋ ์ด ์์ ์ ์ฅํด๋์ธ์! ๋ธ๋ก๊ทธ์ ์๊ธ์ฒ์น ์ด์ ๋ฆฌ ์์ด์", + "direction": "์ ๋ฉด ์์ + ์ ์ฅ ๋ฒํผ ๊ฐ๋ฆฌํค๋ ์๋์ + ๋ธ๋ก๊ทธ ๋งํฌ ํ๋ฉด ํ๋จ ํ์", + "sound": "๋ง๋ฌด๋ฆฌ ํ ์ฌ์ด๋ + ์ ์ฅ ์๋ฆผ์" + } + ], + "fullScript": "์ผ๊ตฌ์ฅ์์ ์ฐ๋ฌ์ง๋ ์ฌ๋๋ค, ์ด์ ๊ฐ ์์์ต๋๋ค. ๋งค๋ ์ฌ๋ฆ ์จ์ด์งํ ํ์์ ์ ๋ฐ์ด ์ผ์ธํ๋ ์ค ๋ฐ์ํ๋๋ฐ์, ์ด๊ธฐ ์ฆ์์ ๋์น๋ฉด ๋ฐ๋ก ์๊ธ์คํ์ ๋๋ค. ์์๋, ์ด์ง๋ผ์ฆ, ๊ทผ์ก๊ฒฝ๋ จ, ๋ฉ์ค๊บผ์ ์ค ํ๋๋ผ๋ ๋๊ปด์ง๋ฉด ์ฆ์ ๊ทธ๋๋ก ์ด๋ํ๊ณ ๋ชฉ๊ณผ ๊ฒจ๋๋์ด๋ฅผ ์ ์ ์๊ฑด์ผ๋ก ์ํ์ฃผ์ธ์. ์์์ด ํ๋ ค์ง๋ฉด ์ง์ฒด์์ด 119๋ฅผ ๋ถ๋ฅด์ ์ผ ํฉ๋๋ค. ์ผ๊ตฌ์ฅ์ฒ๋ผ ์ค๋ ์์์๋ ์ํฉ์์๋ 30๋ถ๋ง๋ค ์๋ถ์ ์ญ์ทจํ๊ณ ์ฟจ๋ง ์์ดํ ์ ์ฑ๊ธฐ๋ ๊ฒ ํต์ฌ์ด์์. ์์ฝ์ฌ์ ํ์๋ฅผ ๊ฐ์์ํค๋ ์์ ํ์๊ณ ์. ์ด๋ฒ ์ฌ๋ฆ ์ง๊ด์ด๋ ์ฌํ ๊ณํ ์์ผ์๋ค๋ฉด ์ด ์์ ๊ผญ ์ ์ฅํด๋์๊ณ , ๋ ์์ธํ ์๊ธ์ฒ์น๋ฒ์ ๋ธ๋ก๊ทธ์์ ํ์ธํ์ธ์.", + "commentBait": "์ง๊ด ๊ฐ ๋ ์จ์ด์งํ ์๋ฐฉ ์์ดํ , ์ฌ๋ฌ๋ถ์ ๋ญ ์ฑ๊ธฐ์ธ์?", + "hashtags": [ + "#fyp", + "#foryou", + "#์จ์ด์งํ์๋ฐฉ๋ฒ", + "#์จ์ด์งํ์๊ธ์ฒ์น", + "#์ฌ๋ฆ์คํฌ์ธ ๊ด๋", + "#์ดํ์ง์ฆ์", + "#์ฌ๋ฆ์ฌํ", + "#์ผ๊ตฌ์ง๊ด", + "#์๊ธ์ฒ์น", + "#์ฌ๋ฆ๊ฑด๊ฐ" + ], + "backgroundMusic": { + "genre": "์ ๋นํธ ํ/์ผ๋ ํธ๋ก๋", + "mood": "๊ธด์ฅ๊ฐ์์ ์์ ๊ฐ์ผ๋ก ์ ํ๋๋ ๊ตฌ์ฑ" + }, + "bestPostingTimes": [ + "07:00", + "20:00", + "23:00" + ] + }, + "keyword": "์จ์ด์งํ ์๋ฐฉ๋ฒ๊ณผ ์๊ธ์ฒ์น ์ด์ ๋ฆฌ", + "trendDirection": "rising" + }, + "socialPublished": { + "instagram": { + "skipped": true, + "reason": "SOCIAL_AUTO_PUBLISH=false" + }, + "threads": { + "skipped": true, + "reason": "SOCIAL_AUTO_PUBLISH=false" + }, + "tiktok": { + "skipped": true, + "reason": "SOCIAL_AUTO_PUBLISH=false" + } + } + } + ] + }, + { + "runAt": "2026-07-14T07:44:04.541829", + "date": "2026-07-14", + "keywords": [ + "์จ์ด์งํ ์๋ฐฉ๋ฒ๊ณผ ์๊ธ์ฒ์น ์ด์ ๋ฆฌ" + ], + "postsGenerated": 1, + "bloggerUploaded": 1, + "errors": 0, + "errorMessages": [], + "imagesInserted": 1, + "totalWords": 4235, + "blogId": "blog1", + "blogName": "HOGU What?", + "platforms": { + "blogger": 1 + }, + "earnings": { + "totalPosts": 88, + "estimatedDailyRevenue": 158.4, + "estimatedMonthlyRevenue": 4752.0, + "estimatedYearlyRevenue": 57816.0, + "avgCPC": 0.9, + "currency": "USD" + }, + "posts": [ + { + "title": "2026๋ ์ฌ๋ฆ ์ฌํ ์จ์ด์งํ ์๋ฐฉ๋ฒ๊ณผ ์๊ธ์ฒ์น ์ด์ ๋ฆฌ", + "keyword": "์จ์ด์งํ ์๋ฐฉ๋ฒ๊ณผ ์๊ธ์ฒ์น ์ด์ ๋ฆฌ", + "blogUrl": "https://www.hoguwhat.com/2026/07/2026_01036540498.html", + "imagesInserted": 1, + "wordCount": 4235, + "contentPreview": "์ง๋์ฃผ ๊ฐ์๋ ๊ณ๊ณก ์บ ํ์ฅ ํ๊ธฐ ๊ฒ์ํ์ ํ์ด๋ณด๋ค๊ฐ ๋์ ๋๋ ๊ธ์ด ํ๋ ์์์ต๋๋ค. ํ๋ฎ์ ๊ณ๊ณก ํธ๋ ํน์ ํ๋ ์ผํ ์ค ํ ๋ช ์ด ๊ฐ์๊ธฐ ์ด์ง๋ฝ๋ค๋ฉฐ ์ฃผ์ ์์๊ณ , ๋คํํ ๊ทธ๋์์ ๋ฌผ์ ๋ง์๊ฒ ํ๊ณ ์ท์ ํ์ด์ค ๋ค ์ง์ ๋๋ค๋ ๋ด์ฉ์ด์์ต๋๋ค. ํญ์ผํน๋ณด๊ฐ ์์ฃผ ๋ฐ๋ น๋๋ ์์ฆ, ๊ตญ๋ด ์ฌํ์ง ์ปค๋ฎค๋ํฐ๋ง๋ค ์ด๋ฐ ๊ฒฝํ๋ด์ด ์กฐ๊ธ์ฉ ๋๊ณ ์์ต๋๋ค. ์ฌํ ๊ณํ์ ์ธ์ธ ๋ ๋ง์ง...", + "faqCount": 3, + "faq": [ + { + "q": "์จ์ด์งํ ์ด๊ธฐ ์ฆ์์ด ์์ ๋ ๋ฌผ๋ง ๋ง์๋ฉด ๊ด์ฐฎ๋์?", + "a": "์ด๊ธฐ ์ด๊ฒฝ๋ จยท์ดํ์ง ๋จ๊ณ๋ผ๋ฉด ๊ทธ๋๋ก ์ฎ๊ธฐ๊ณ ์๋ถ์ ๋ณด์ถฉํ๋ ๊ฒ ๋์์ด ๋ฉ๋๋ค. ๋ค๋ง ์ด์ง๋ผ์ฆ์ด๋ ๊ตฌํ ๊ฐ ๊ณ์๋๋ฉด ์๊ฐ ํ๋จ๋ณด๋ค ๋ณ์์ด๋ ์๊ธ ์ ๊ณ ๋ฅผ ์ฐ์ ํ๋ ๊ฒ ์์ ํฉ๋๋ค." + }, + { + "q": "์ฌํ ์ค ์จ์ด์งํ ์๊ธ์ฒ์น์ฉ์ผ๋ก ๊ผญ ์ฑ๊ฒจ์ผ ํ ๋ฌผ๊ฑด์ด ์๋์?", + "a": "์์, ์ ํด์ง ์๋ฃ, ์์๊ฑด์ด๋ ์ ์ ํฐ์, ํด๋์ฉ ์ ํ๊ธฐ ์ ๋๋ฉด ๊ธฐ๋ณธ ๋๋น๋ ๊ฐ๋ฅํฉ๋๋ค. ํน์ ์ ํ์ด ํ์๋ผ๊ธฐ๋ณด๋ค ๋ฌผ๊ณผ ๊ทธ๋ ํ๋ณด ์๋จ์ด ํต์ฌ์ ๋๋ค." + }, + { + "q": "์ด๋ฆฐ์ด ๋๋ฐ ์ฌํ ์ ์ฐธ๊ณ ํ ๊ณต์ ์๋ฃ๊ฐ ์๋์?", + "a": "์ง๋ณ๊ด๋ฆฌ์ฒญ์ด ๊ฐ๋ฐํ ์ด๋ฆฐ์ด ์ฒดํํ๋ ์์ ์๋ฐฉยท์๊ธ์ฒ์น ์ง์นจ์ ์จ์ด์งํ ๊ด๋ จ ๋ด์ฉ์ด ํฌํจ๋ผ ์์ต๋๋ค. ๋ค๋ง ๋ฐํ ์์ ์ด ์๋ ์๋ฃ์ด๋ฏ๋ก ์ต์ ๊ฐ์ ์ฌ๋ถ๋ ๊ณต์ ์ฑ๋์์ ํ์ธํ๋ ๊ฑธ ๊ถํฉ๋๋ค." + } + ], + "factCheck": { + "checked": true, + "verdict": "warn", + "issues_found": 3, + "fixes_applied": 3, + "issues": [ + { + "problem": "๊ฒ์ฆ๋์ง ์์ ๊ตฌ์ฒด์ ์์น ์ ์", + "fixed": true + }, + { + "problem": "ํ์ธ๋์ง ์์ ๊ตฌ์ฒด์ ๋ ์ง ๋ช ์", + "fixed": true + }, + { + "problem": "๊ฒ์ฆ ๋ถ๊ฐ๋ฅํ ๊ตฌ์ฒด์ ๋น์ฉ ์์น", + "fixed": true + } + ] + }, + "sources": [ + { + "title": "์ด๋ฆฐ์ด ์์ ์ฌ๊ณ 5~6์ ์ต๋ค ๋ฐ์โฆ ์ถ๋ฝยท๋์ ์ ์ผ ๋ง์", + "url": "https://edu.chosun.com/site/data/html_dir/2024/04/08/2024040880134.html" + }, + { + "title": "์ง๋ณ๊ด๋ฆฌ์ฒญ ์จ์ด์งํ ์๊ธ์ค๊ฐ์์ฒด๊ณ", + "url": "https://www.kdca.go.kr/heatstroke/index.jsp" + } + ], + "labels": [ + "์จ์ด์งํ์๋ฐฉ๋ฒ", + "์ฌ๋ฆ์ฌํ์์ ", + "๊ตญ๋ด์ฌํํ", + "์ฌ๋ฆํด๊ฐ์ค๋น๋ฌผ", + "ํญ์ผ๋๋น" + ], + "metaDescription": "์ฌ๋ฆ ์ฌํ ์ค ์จ์ด์งํ, ๋ฐฉ์ฌํ๋ฉด ์ํํฉ๋๋ค. ์ฆ์ ๊ตฌ๋ถ๋ฒ๋ถํฐ ๋ ๋๊ธฐ ์ ์ฒดํฌ๋ฆฌ์คํธ, ํ์ฅ ์๊ธ์ฒ์น ์์๊น์ง ์ค์ ๊ฒฝํ๊ณผ ๊ณต์ ์๋ฃ๋ฅผ ๋ฐํ์ผ๋ก ์ ๋ฆฌํ์ต๋๋ค.", + "adsenseCategory": "์ผ๋ฐ", + "articleType": "how_to", + "riskLevel": "medium", + "blogId": "blog1", + "blogName": "HOGU What?", + "socialContent": { + "instagram": { + "caption": "๋งค๋ ํญ์ผ์ ์๊ธ์ค ์ค๋ ค๊ฐ๋ ์ฌ๋ 2๋ง๋ช ๋์ต๋๋ค ๐ฅต\n๊ทธ์ค ์ ๋ฐ์ด \"๋ฌผ๋ง ๋ง์๋ฉด ๊ด์ฐฎ๊ฒ ์ง\" ํ๋ค๊ฐ ๊ณจ๋ ํ์ ๋์น ๊ฒฝ์ฐ์์\n\n์ฌ๋ฆ ์ฌํ ๊ฐ์ ์ด๋ฌ๋ฉด ์ง์ง ์ํํฉ๋๋ค โ ๏ธ\n์ ์ฅ ํ์ ๐ ๋์ค์ ์ฌํ ๊ฐ๊ธฐ ์ ๊ผญ ๋ค์ ๋ณด์ธ์\n\n๐ ์จ์ด์งํ ์๋ฐฉ & ์๊ธ์ฒ์น ์ฒดํฌ๋ฆฌ์คํธ\n\n1๏ธโฃ ์ดํ์ง vs ์ด์ฌ๋ณ ๊ตฌ๋ถ๋ฒ - ๋ ๋๋ฉด ํ์ง, ๋ ์ ๋๊ณ ์์ ํ๋ ค์ง๋ฉด ์ด์ฌ๋ณ(์๊ธ)\n2๏ธโฃ ๋ฌผ๋ง ๋ง์๋ฉด ์ํํ ์ด์ - ์ ํด์ง ์์ด ๋ฌผ๋ง ๋จน์ผ๋ฉด ์ ๋ํธ๋ฅจํ์ฆ ์ํ\n3๏ธโฃ ๋ ๋๊ธฐ ์ ์ฒดํฌ๋ฆฌ์คํธ - ์ด์จ์๋ฃ, ์ผ์์กฐ๋ผ, ํด๋์ฉ ์ ํ๊ธฐ ํ์\n4๏ธโฃ ์๊ธ์ฒ์น 1๋จ๊ณ - ๊ทธ๋๋ก ์ฆ์ ์ด๋ + ์ท ํ์ด์ฃผ๊ธฐ\n5๏ธโฃ ์๊ธ์ฒ์น 2๋จ๊ณ - ๋ชธ์ ๋ฌผ ๋ฟ๋ฆฌ๊ณ ๋ถ์ฑ์ง๋ก ์ฒด์จ ๋ฎ์ถ๊ธฐ\n6๏ธโฃ ์์ ์์ผ๋ฉด - ์ฆ์ 119, ์ ๋ ์ ์ผ๋ก ์๋ฌด๊ฒ๋ ์ฃผ์ง ์๊ธฐ\n7๏ธโฃ ์ฌํ ์ค ํ์ ์ค๋น๋ฌผ - ์ ํด์ง ํ์ฐ๋, ์ฒด์จ๊ณ, ๋๊ฐ์ํธ\n\n๐ถ ์์ด, ์ด๋ฅด์ ๋๋ฐ ์ฌํ์ด๋ฉด ํนํ ๋ ์ฑ๊ธฐ์ธ์\n์ด๊ธฐ ์ฆ์ ๋ฌด์ํ๋ค ํฐ์ผ ๋ ์ ์์ต๋๋ค\n\n์ ์ฒด ์๊ธ์ฒ์น ์์๋ ๋ธ๋ก๊ทธ์ ์ค์ ๊ฒฝํ + ๊ณต์ ์๋ฃ๋ก ์ ๋ฆฌํ์ด์\nํ๋กํ ๋งํฌ ํ์ธํ์ธ์ ๐\n\n๋๊ธ๋ก ์ฌํ ์ค ๋์ ๋จน์๋ ๊ฒฝํ ์์ผ๋ฉด ๊ณต์ ํด์ฃผ์ธ์ ๐ฌ", + "hookLine": "๋งค๋ ํญ์ผ์ ์๊ธ์ค ์ค๋ ค๊ฐ๋ ์ฌ๋ 2๋ง๋ช ๋์ต๋๋ค ๐ฅต", + "storyHighlightTitle": "์จ์ด๋๋น", + "hashtags": { + "popular": [ + "#์ฌ๋ฆ์ฌํ", + "#์ฌ๋ฆํด๊ฐ", + "#๊ตญ๋ด์ฌํ", + "#์ฌํ์คํ๊ทธ๋จ", + "#ํด๊ฐ์ค๋น", + "#์ฌํ๊ฟํ", + "#์ผ์๊ณต์ ", + "#์ฌํ์๋ฏธ์น๋ค", + "#๊ตญ๋ด์ฌํ์ง์ถ์ฒ", + "#ํ๋ง์ฌํ" + ], + "medium": [ + "#์จ์ด์งํ์๋ฐฉ๋ฒ", + "#์ฌ๋ฆ์ฌํ์์ ", + "#๊ตญ๋ด์ฌํํ", + "#์ฌ๋ฆํด๊ฐ์ค๋น๋ฌผ", + "#ํญ์ผ๋๋น", + "#์ด์ฌ๋ณ์๋ฐฉ", + "#์๊ธ์ฒ์น๋ฒ", + "#์ฌํ์๊ธ์ฒ์น", + "#์ฌ๋ฆ๊ฑด๊ฐ๊ด๋ฆฌ", + "#ํญ์ผ์ฃผ์๋ณด" + ], + "niche": [ + "#์ดํ์ง์ฆ์", + "#์ฌํํ์ํ ", + "#๊ฐ์กฑ์ฌํ์์ ", + "#์บ ํ์์ ์์น", + "#๋ฑ์ฐ์จ์ด์งํ" + ] + }, + "bestPostingTimes": [ + "07:00", + "12:00", + "21:00" + ] + }, + "threads": { + "posts": [ + { + "order": 1, + "label": "1/5", + "content": "์๋ ์ฌ๋ฆ, ์จ์ด์งํ์ผ๋ก ์๊ธ์ค ๊ฐ ์ฌ๋์ด 2๋ง ๋ช ์ด ๋์๋์.\n๊ทธ์ค ์๋น์๊ฐ ์ฌํ ์ค์ด์๋ค๋ ๊ฑฐ ์์ธ์? ๐ฅต\n\"๊ทธ๋์์ ์ข ์ฌ๋ฉด ๋๊ฒ ์ง\" ํ๋ค๊ฐ ๊ณจ๋ ํ์ ๋์น๋ ๊ฒฝ์ฐ๊ฐ ์ง์ง ๋ง์ต๋๋ค." + }, + { + "order": 2, + "label": "2/5", + "content": "๋ง์ ๋ถ๋ค์ด ํท๊ฐ๋ คํ๋ ๊ฒ ํ๋.\n\"๋ฌผ๋ง ๋ง์๋ฉด ๊ด์ฐฎ์๊ฐ์?\"\n\n์ ๋ต์ NO์ ๋๋ค.\n์ ํด์ง ์์ด ๋ฌผ๋ง ๊ณ์ ๋ง์๋ฉด ์คํ๋ ค ์ ๋ํธ๋ฅจํ์ฆ์ผ๋ก ์ํ๊ฐ ๋ ๋๋น ์ง ์ ์์ด์.\n์ด์จ์๋ฃ๋ ์ ํด์ง ํ์ฐ๋๊ฐ ๊ผญ ํ์ํ ์ด์ ์ ๋๋ค." + }, + { + "order": 3, + "label": "3/5", + "content": "์ดํ์ง๊ณผ ์ด์ฌ๋ณ, ๊ตฌ๋ถํ์๋์?\n\n์ดํ์ง: ๋ ๋ง์ด ๋๊ณ ์ด์ง๋ฌ์ โ ๊ทธ๋+์๋ถ๋ณด์ถฉ์ผ๋ก ํ๋ณต ๊ฐ๋ฅ\n์ด์ฌ๋ณ: ๋์ด ์ ๋๊ณ ์์์ด ํ๋ ค์ง โ ์ฆ์ 119, ์๊ธ ์ํฉ\n\n์ด ๊ตฌ๋ถ ๋ชปํ๋ฉด ๋์ ํ์ด๋ฐ ์์ ํ ๋ฌ๋ผ์ง๋๋ค." + }, + { + "order": 4, + "label": "4/5", + "content": "์ฌํ ๊ฐ๊ธฐ ์ ์ฑ๊ฒจ์ผ ํ ๊ฒ๋ค๋ ์๊ฐ๋ณด๋ค ๋ง์์.\n\n์ ํด์ง ํ์ฐ๋, ํด๋์ฉ ์ฒด์จ๊ณ, ๋๊ฐ์ํธ, ์ผ์์กฐ๋ผ...\nํนํ ์์ด๋ ์ด๋ฅด์ ๋ชจ์๊ณ ๊ฐ๋ ์ฌํ์ด๋ฉด ์ด๊ฑด ์ ํ์ด ์๋๋ผ ํ์์ ๋๋ค." + }, + { + "order": 5, + "label": "5/5", + "content": "์ฌ๋ฆ ์ฌํ, ์ฆ๊ฑฐ์ด ๊ฒ๋ ์ข์ง๋ง ์์ ์ด ๋จผ์ ์ ๋๋ค.\n์ฆ์ ๊ตฌ๋ถ๋ฒ๋ถํฐ ์๊ธ์ฒ์น ์์๊น์ง ์ค์ ๊ฒฝํ + ๊ณต์ ์๋ฃ๋ก ์ ๋ฆฌํ์ด์.\n\nhttps://www.hoguwhat.com/2026/07/2026_01036540498.html\n\n์ฌ๋ฌ๋ถ์ ์ฌํ ์ค ๋์ ๋๋ฌธ์ ๊ณ ์ํ ๊ฒฝํ ์์ผ์ ๊ฐ์? ์ด๋ป๊ฒ ๋์ฒํ์ จ๋์?" + } + ], + "hashtags": [ + "#์จ์ด์งํ์๋ฐฉ๋ฒ", + "#์ฌ๋ฆ์ฌํ์์ ", + "#๊ตญ๋ด์ฌํํ", + "#ํญ์ผ๋๋น", + "#์ฌ๋ฆํด๊ฐ์ค๋น๋ฌผ" + ], + "engagementQuestion": "์ฌํ ์ค ๋์ ๋จน์๋ ๊ฒฝํ, ์ด๋ป๊ฒ ๋์ฒํ์ จ๋์?", + "bestPostingTimes": [ + "08:00", + "19:00" + ] + }, + "tiktok": { + "title": "์ฌ๋ฆ ์ฌํ ์จ์ด์งํ, ์ด๊ฑฐ ๋ชฐ๋์ผ๋ฉด ํฐ์ผ๋ ๋ป", + "thumbnailText": "๋ฌผ๋ง ๋ง์๋ฉด ์ ๋๋ ์ด์ โ ๏ธ", + "scenes": [ + { + "time": "0-3์ด", + "text": "์ฌํ ์ค ์ฐ๋ฌ์ง๋ ์ฌ๋ 2๋ง๋ช ... ์ด์ ๊ฐ ์ด๊ฑฐ์๋ค", + "direction": "๊ฐ๋ ฌํ ํด๋ก์ฆ์ , ํ ์คํธ ํฌ๊ฒ ํ์ ", + "sound": "๊ธด์ฅ๊ฐ ์๋ ํจ๊ณผ์(๋ฅ!)" + }, + { + "time": "3-15์ด", + "text": "\"๋ฌผ๋ง ๋ง์๋ฉด ๊ด์ฐฎ๊ฒ ์ง\" โ ์ด๊ฑฐ ์์ ์๋ชป๋ ์์", + "direction": "์์ผ๋ก Xํ ์ ์ค์ฒ, ์๋ง ๊ฐ์กฐ ์ ๋๋ฉ์ด์ ", + "sound": "๊ฒฝ๊ณ ์ ํจ๊ณผ" + }, + { + "time": "15-35์ด", + "text": "์ดํ์ง vs ์ด์ฌ๋ณ ๊ตฌ๋ถ๋ฒ / ์๊ธ์ฒ์น ์์ 3๋จ๊ณ / ๊ผญ ์ฑ๊ฒจ์ผ ํ ์ค๋น๋ฌผ", + "direction": "ํ๋ฉด ์ ํ ๋น ๋ฅด๊ฒ, ์ฒดํฌ๋ฆฌ์คํธ ์๋ง ํ๋์ฉ ๋ฑ์ฅ", + "sound": "๊ฒฝ์พํ ๋นํธ ์ ํ์" + }, + { + "time": "35-50์ด", + "text": "๊ทธ๋ ์ด๋โ์ท ํ๊ธฐโ๋ฌผ ๋ฟ๋ ค ์ฒด์จ ๋ฎ์ถ๊ธฐ, ์์ ์์ผ๋ฉด ๋ฌด์กฐ๊ฑด 119", + "direction": "์ค์ ์์ฐ์ฒ๋ผ ์๋์ ์ฐ์ถ, ์์ ๋ฒํธ ์๋ง", + "sound": "๊ธด๋ฐํ ๋ฐฐ๊ฒฝ์ ์ง์" + }, + { + "time": "50-60์ด", + "text": "์์ธํ ์๊ธ์ฒ์น ์ด์ ๋ฆฌ๋ ํ๋กํ ๋งํฌ์์! ๋๊ธ๋ก ๊ณต์ ํด์ค์", + "direction": "์๊ฐ๋ฝ์ผ๋ก ํ๋กํ ๊ฐ๋ฆฌํค๊ธฐ, ๋งํฌ ํ์ดํ ์ ๋๋ฉ์ด์ ", + "sound": "๊ฒฝ์พํ ๋ง๋ฌด๋ฆฌ ์ง๊ธ" + } + ], + "fullScript": "์ฌํ ์ค ์ฐ๋ฌ์ง๋ ์ฌ๋, ๋งค๋ 2๋ง ๋ช ์ด ๋์ต๋๋ค. ๊ทธ๋ฐ๋ฐ ๋๋ถ๋ถ \"๋ฌผ๋ง ๋ง์๋ฉด ๊ด์ฐฎ๊ฒ ์ง\" ํ๋ค๊ฐ ํฐ์ผ ๋์. ์ฌ์ค ์ ํด์ง ์์ด ๋ฌผ๋ง ๋ง์๋ฉด ๋ ์ํํ ์ ์์ต๋๋ค. ์ดํ์ง๊ณผ ์ด์ฌ๋ณ, ๊ตฌ๋ถํ์ธ์. ๋ ๋๊ณ ์ด์ง๋ฌ์ฐ๋ฉด ์ดํ์ง, ๋ ์ ๋๊ณ ์์์ด ํ๋ ค์ง๋ฉด ์ด์ฌ๋ณ, ์ด๊ฑด ์๊ธ์ํฉ์ ๋๋ค. ๋์ฒ๋ฒ์ ๊ฐ๋จํด์. ๊ทธ๋๋ก ์ด๋ํ๊ณ , ์ท์ ํ์ด์ฃผ๊ณ , ๋ฌผ์ ๋ฟ๋ ค์ ์ฒด์จ์ ๋ฎ์ถฐ์ฃผ์ธ์. ์์์ด ์์ผ๋ฉด ๋ฌด์กฐ๊ฑด 119 ๋ถํฐ ๋ถ๋ฅด์ธ์. ์ฌ๋ฆ ์ฌํ, ์ค๋น๋ฌผ๋ถํฐ ์๊ธ์ฒ์น๊น์ง ์์ธํ ๋ด์ฉ์ ํ๋กํ ๋งํฌ์์ ํ์ธํ์ธ์. ๋๊ธ๋ก ์ฌ๋ฌ๋ถ ๊ฒฝํ๋ ๊ณต์ ํด์ฃผ์ธ์.", + "commentBait": "์ฌํ ์ค ๋์ ๋จน์ ์ ์๋์? ์ด๋ป๊ฒ ๋์ฒํ๋์ง ๋๊ธ๋ก ์๋ ค์ฃผ์ธ์", + "hashtags": [ + "#fyp", + "#foryou", + "#์จ์ด์งํ์๋ฐฉ๋ฒ", + "#์ฌ๋ฆ์ฌํ์์ ", + "#์ฌ๋ฆํด๊ฐ์ค๋น๋ฌผ", + "#ํญ์ผ๋๋น", + "#์๊ธ์ฒ์น", + "#์ฌํ๊ฟํ", + "#์ฌ๋ฆ๊ฑด๊ฐ", + "#๊ตญ๋ด์ฌํํ" + ], + "backgroundMusic": { + "genre": "์ผ๋ ํธ๋ก๋/๋๋ผ๋งํฑ", + "mood": "๊ธด์ฅ๊ฐ ์๋ค๊ฐ ์ ๋ณด ์ ๋ฌ ์ ๊ฒฝ์พํ๊ฒ ์ ํ" + }, + "bestPostingTimes": [ + "07:00", + "20:00", + "23:00" + ] + }, + "keyword": "์จ์ด์งํ ์๋ฐฉ๋ฒ๊ณผ ์๊ธ์ฒ์น ์ด์ ๋ฆฌ", + "trendDirection": "stable" + }, + "socialPublished": { + "instagram": { + "skipped": true, + "reason": "SOCIAL_AUTO_PUBLISH=false" + }, + "threads": { + "skipped": true, + "reason": "SOCIAL_AUTO_PUBLISH=false" + }, + "tiktok": { + "skipped": true, + "reason": "SOCIAL_AUTO_PUBLISH=false" + } + } + } + ] + }, + { + "runAt": "2026-07-14T06:06:39.661321", + "date": "2026-07-14", + "keywords": [ + "๋ฏธ๊ตญETF ์ง์ ํฌ์ํด๋ดค๋๋ ์ค์๋ด" + ], + "postsGenerated": 1, + "bloggerUploaded": 1, + "errors": 0, + "errorMessages": [], + "imagesInserted": 1, + "totalWords": 3687, + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "platforms": { + "blogger": 1 + }, + "earnings": { + "totalPosts": 87, + "estimatedDailyRevenue": 435.0, + "estimatedMonthlyRevenue": 13050.0, + "estimatedYearlyRevenue": 158775.0, + "avgCPC": 2.5, + "currency": "USD" + }, + "posts": [ + { + "title": "๋ฏธ๊ตญETF ์ง์ ํฌ์ํด๋ดค๋๋ ๊ฒช์ ์ด๋ณด์ ์ค์๋ด ์ด์ ๋ฆฌ", + "keyword": "๋ฏธ๊ตญETF ์ง์ ํฌ์ํด๋ดค๋๋ ์ค์๋ด", + "blogUrl": "https://hoguasset.blogspot.com/2026/07/etf.html", + "imagesInserted": 1, + "wordCount": 3687, + "contentPreview": "๋ฏธ๊ตญ ETF์ ํฌ์ํด๋ณด๊ณ ์ถ์๋ฐ, ๊ณ์ข ๊ฐ์ค๋ถํฐ ๋งค์ ํ์ด๋ฐ๊น์ง ๋ญ๊ฐ ์ด๋ ๊ฒ ํท๊ฐ๋ฆด๊น์? ์ํ๊ฐ๋ฏธ๋ผ๋ ๋ง์ด ์ต์ํด์ง ๋งํผ ๋ฏธ๊ตญ ์ฃผ์ยทETF ํฌ์๊ฐ ๋์คํ๋์ง๋ง, ๋ง์ ์์ํ๋ ค๊ณ ํ๋ฉด ํ์ ์ ์ธ์ ํ๋ ๊ฒ ๋ง๋์ง, ์์ฐจ๋ ์ด๋ป๊ฒ ๊ณ์ฐํ๋์ง, ์์๋ฃ๋ ์ผ๋ง๋ ๋ผ์ด๋์ง ํ๋ํ๋๊ฐ ๋ค ๋ฏ์ค๊ฒ ๋๊ปด์ง๋๋ค. ํนํ 2026๋ 7์ 7์ผ๋ถํฐ๋ 24์๊ฐ ์ธํ๊ฑฐ๋๊ฐ ๋ณธ๊ฒฉ์ ์ผ...", + "faqCount": 3, + "faq": [ + { + "q": "๋ฏธ๊ตญ ETF๋ ๊ตญ๋ด ๊ณต๋ชจ์ฃผ์ฒ๋ผ ์ฌ์ ์ฒญ์ฝ์ด ๊ฐ๋ฅํ๊ฐ์?", + "a": "์๋์. ๋ฏธ๊ตญ IPO๋ ์ ๊ท ์์ฅ ETF๋ ๊ตญ๋ด ๊ณต๋ชจ์ฃผ ์ฒญ์ฝ์ฒ๋ผ ์ฆ๊ฑฐ๊ธ์ ๋ฃ๊ณ ๋ฐฐ์ ๋ฐ๋ ์ฐฝ๊ตฌ๊ฐ ์์ต๋๋ค. ๊ตญ๋ด ๊ฐ์ธํฌ์์๋ ์์ฅ ํ ์ง์ ๋งค์ํ๊ฑฐ๋ ๊ตญ๋ด ์์ฅ ETF๋ฅผ ํตํด ํฌ์ํ๋ ๋ฐฉ์์ผ๋ก๋ง ์ ๊ทผํ ์ ์์ต๋๋ค." + }, + { + "q": "24์๊ฐ ์ธํ๊ฑฐ๋๊ฐ ์์๋๋ฉด ํ์ ์ ์๋ฌด ๋๋ ํด๋ ๋๋์?", + "a": "๊ฑฐ๋ ์์ฒด๋ 24์๊ฐ ๊ฐ๋ฅํด์ก์ง๋ง, ํ์จ์ ์ค์๊ฐ์ผ๋ก ๋ณ๋ํ๊ธฐ ๋๋ฌธ์ ์๊ฐ๋๋ณ ํ์จ ํ๋ฆ์ ์ง์ผ๋ณด๊ณ ํ์ ์์ ์ ์ ํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ์ฆ๊ถ์ฌ๋ณ ์ฐ๋์จ๊ณผ ์์คํ ๋ฐ์ ์ฌ๋ถ๋ ํจ๊ป ํ์ธํด์ผ ํฉ๋๋ค." + }, + { + "q": "๋ฏธ๊ตญ ETF ํฌ์ ์ ์ด๋ค ์ฆ๊ถ์ฌ๋ฅผ ์ด์ฉํด์ผ ํ๋์?", + "a": "ํค์์ฆ๊ถ, ๋ฏธ๋์์ ์ฆ๊ถ, ์ผ์ฑ์ฆ๊ถ ๋ฑ ๊ตญ๋ด ์ฃผ์ ์ฆ๊ถ์ฌ์์ ํด์ธ์ฃผ์ ๊ณ์ข ๊ฐ์ค์ด ๊ฐ๋ฅํฉ๋๋ค. ์ฆ๊ถ์ฌ๋ง๋ค ํ์ ์ฐ๋์จ๊ณผ ๋งค๋งค ์์๋ฃ๊ฐ ๋ค๋ฅด๋ฏ๋ก ๊ณต์ ํํ์ด์ง์์ ์กฐ๊ฑด์ ๋น๊ตํ ๋ค ์ ํํ๋ ๊ฒ์ด ๋ฐ๋์งํฉ๋๋ค." + } + ], + "factCheck": { + "checked": true, + "verdict": "warn", + "issues_found": 2, + "fixes_applied": 2, + "issues": [ + { + "problem": "์๋ฃํฉ์ ๋ฐ๋ฅด๋ฉด 24์๊ฐ ์ธํ๊ฑฐ๋๋ 2026๋ 7์ 6์ผ๋ถํฐ ์์๋์์ผ๋ ๋ณธ๋ฌธ์ 7์ 7์ผ๋ก ๊ธฐ์ฌํด ๋ ์ง๊ฐ ์ด๊ธ๋จ", + "fixed": true + }, + { + "problem": "์๋ฃํฉ ๊ธฐ์ค ์ํ์ผ์ 7์ 6์ผ์ธ๋ฐ ๋ณธ๋ฌธ์ 7์ 7์ผ๋ก ์๋ชป ๊ธฐ์ฌ", + "fixed": true + } + ] + }, + "sources": [ + { + "title": "์ค์ 6์, ํ์จ ๊ทธ๋ํ ์์ง์๋คโฆ24์๊ฐ ์ธํ๊ฑฐ๋ ์ฒซ๋ฐ", + "url": "https://www.joongang.co.kr/article/25442899" + }, + { + "title": "[๊ธฐํ] ์คํ์ด์คX ์ค๋ ์์ฅโฆ์ํ๊ฐ๋ฏธ ๋งค์๋ฒ์", + "url": "https://www.gokorea.kr/news/articleView.html?idxno=868926" + } + ], + "labels": [ + "๋ฏธ๊ตญETF", + "์ํ๊ฐ๋ฏธ", + "ํด์ธ์ฃผ์ํฌ์", + "ํ์ ์์๋ฃ", + "24์๊ฐ์ธํ๊ฑฐ๋" + ], + "metaDescription": "๋ฏธ๊ตญ ETF๋ฅผ ์ง์ ๋งค์ํ๋ฉฐ ๊ฒช์ ํ์ ํ์ด๋ฐ, ์์๋ฃ, 24์๊ฐ ์ธํ๊ฑฐ๋ ๊ด๋ จ ์ค์๋ฅผ ์ ๋ฆฌํ์ต๋๋ค. ์ด๋ณด ํฌ์์๊ฐ ๋์น๊ธฐ ์ฌ์ด ์ฒดํฌํฌ์ธํธ๋ฅผ ํ์ธํด๋ณด์ธ์.", + "adsenseCategory": "๊ธ์ต", + "articleType": "investment", + "riskLevel": "high", + "blogId": "blog3", + "blogName": "๊ธ์ตNEWS", + "socialContent": { + "instagram": { + "caption": "๋ฏธ๊ตญ ETF ์ง์ ์ฌ๋ดค๋ค๊ฐ ํ์ ์์๋ฃ๋ก๋ง 5๋ง์ ๋ ๋ ธ์ต๋๋ค ๐ธ\n\n์ํ๊ฐ๋ฏธ 3๋ ์ฐจ์ธ ์ ๋ ๋ชฐ๋๋ ์ค์๋ค, ์ด๋ณด ์์ ๊ทธ๋๋ก ๊ฒช์์ด์.\n\n๐ ์ ์ฅ ํ์ ๐ (๋์ค์ ๋งค์ ์ ๊ผญ ๋ค์ ๋ณด์ธ์)\n\n1๏ธโฃ ํ์ ์ ์๋ฌด ๋๋ ํ๋ฉด ์ํด - 24์๊ฐ ๊ฑฐ๋=์ต์ ํ์ด๋ฐ ์๋\n2๏ธโฃ ๊ตญ๋ด ๊ณต๋ชจ์ฃผ์ฒ๋ผ ์ฌ์ ์ฒญ์ฝ ๊ฐ๋ฅ? โ ๋ฏธ๊ตญ ETF๋ ๋ฌด์กฐ๊ฑด ์ค์๊ฐ ๋งค์\n3๏ธโฃ ํ์ ์์๋ฃ ์ฐ๋์จ ํ์ธ ์ ํ๋ฉด ๋งค๋ฒ ์ํด\n4๏ธโฃ ํ๋ฆฌ๋ง์ผ ์๊ฐ๋ ๋งค์ํ๋ฉด ์คํ๋ ๋ ์ปค์ ๋ถ๋ฆฌ\n5๏ธโฃ ์์์ ๋งค์ ๊ฐ๋ฅ ์ฌ๋ถ ๋ฏธ๋ฆฌ ์ฒดํฌ ์ ํ๋ฉด ์๊ธ ๊ณํ ๊ผฌ์\n6๏ธโฃ ํ์จ ๊ธ๋ณ๋ ์ ๋งค์ ํ์ด๋ฐ ๋์น๊ธฐ ์ฌ์\n7๏ธโฃ ๋ฐฐ๋น์ธ, ์๋์ธ ๋ฑ ์ธ๊ธ ๊ตฌ์กฐ ๋ชจ๋ฅด๊ณ ์์ํ๋ฉด ๋์ค์ ๋๋\n\n์ด๋ณด ๋ ์ ์ฒ๋ผ ์ค์ํ์ง ๋ง์๊ณ , ๋ธ๋ก๊ทธ์์ ์ ์ฒด ๋ด์ฉ ํ์ธํ์ธ์!\n\n#๋ฏธ๊ตญETF ์ค์๋ด ์ ์ฒด๊ธ์ ํ๋กํ ๋งํฌ์์ ๐", + "hookLine": "๋ฏธ๊ตญ ETF ์ง์ ์ฌ๋ดค๋ค๊ฐ ํ์ ์์๋ฃ๋ก๋ง 5๋ง์ ๋ ๋ ธ์ต๋๋ค ๐ธ", + "storyHighlightTitle": "ETF์ค์", + "hashtags": { + "popular": [ + "#์ฌํ ํฌ", + "#์ฃผ์ํฌ์", + "#ํฌ์", + "#๊ฒฝ์ ๊ณต๋ถ", + "#๋๊ณต๋ถ", + "#์ฌํ ํฌ๊ณต๋ถ", + "#ํฌ์๊ณต๋ถ", + "#์ฃผ์", + "#์ฌ๋ฌด์ค๊ณ", + "#๋ถ์๋๊ธฐ" + ], + "medium": [ + "#๋ฏธ๊ตญETF", + "#์ํ๊ฐ๋ฏธ", + "#ํด์ธ์ฃผ์ํฌ์", + "#ํ์ ์์๋ฃ", + "#ํด์ธ์ฃผ์", + "#ETFํฌ์", + "#๋ฏธ๊ตญ์ฃผ์ํฌ์", + "#ํ์จํฌ์", + "#์์ฐ๋ฐฐ๋ถ", + "#๋ถ์ฐํฌ์" + ], + "niche": [ + "#24์๊ฐ์ธํ๊ฑฐ๋", + "#ETF์ง์ ํฌ์", + "#ํ์ ํ์ด๋ฐ", + "#ํด์ธ์ฆ๊ถํฌ์", + "#๋ฏธ๊ตญETF๋งค์๋ฒ" + ] + }, + "bestPostingTimes": [ + "07:00", + "12:00", + "21:00" + ] + }, + "threads": { + "posts": [ + { + "order": 1, + "label": "1/5", + "content": "๋ฏธ๊ตญ ETF ์ง์ ๋งค์ํ๋ฉด์ ํ์ ์์๋ฃ๋ก๋ง 5๋ง์ ๋๊ฒ ๋ ๋ ธ์ต๋๋ค.\n\n์ํ๊ฐ๋ฏธ๋ค ๋๋ถ๋ถ ์ด ์ค์, ์ต์ ํ ๋ฒ์ฉ์ ๊ฒช์ต๋๋ค." + }, + { + "order": 2, + "label": "2/5", + "content": "๊ฐ์ฅ ํํ ์คํด: \"๋ฏธ๊ตญ ETF๋ ๊ตญ๋ด ๊ณต๋ชจ์ฃผ์ฒ๋ผ ์ฌ์ ์ฒญ์ฝ ๋์ง ์๋์?\"\n\n๋ต์ NO. ETF๋ ์์ฅ์ฃผ์์ฒ๋ผ ์ค์๊ฐ์ผ๋ก๋ง ๋งค์ ๊ฐ๋ฅํฉ๋๋ค.\n\n์ด๊ฑฐ ๋ชจ๋ฅด๊ณ ์ฒญ์ฝ ๊ธฐ๋ค๋ฆฌ๋ค ํ์ด๋ฐ ๋์น ๋ถ๋ค ๋ง์์." + }, + { + "order": 3, + "label": "3/5", + "content": "๋ ๋ฒ์งธ ์ค์: 24์๊ฐ ์ธํ๊ฑฐ๋ = ์๋ฌด ๋๋ ํ์ ํด๋ OK?\n\n์ ๋ ์๋๋๋ค.\n\n์๊ฐ๋๋ณ ์คํ๋ ๋ ์ฐจ์ด๊ฐ ์ปค์, ์๋ชป๋ ํ์ด๋ฐ์ ํ์ ํ๋ฉด ๊ทธ ์ฐจ์ด๋ง์ผ๋ก๋ ์์ต๋ฅ ์ด ๊น์ ๋๋ค." + }, + { + "order": 4, + "label": "4/5", + "content": "์ ๊ฐ ์ง์ ๊ฒช์ ์ค์ ์ ๋ฆฌํ๋ฉด:\n- ํ์ ํ์ด๋ฐ ๋ฏธ์ค\n- ์ฐ๋์จ ํ์ธ ์ ํจ\n- ํ๋ฆฌ๋ง์ผ ๋งค์๋ก ์คํ๋ ๋ ์ํด\n- ์ธ๊ธ ๊ตฌ์กฐ ์ฌ์ ํ์ธ ๋ถ์กฑ\n\n๋ค ์ฒ์์ ๋ชฐ๋๋ ๊ฒ๋ค์ ๋๋ค." + }, + { + "order": 5, + "label": "5/5", + "content": "์ด๋ณด ํฌ์์๊ฐ ๋์น๊ธฐ ์ฌ์ด ์ฒดํฌํฌ์ธํธ, ๋ธ๋ก๊ทธ์ ์ ์ฒด ์ ๋ฆฌํด๋์ต๋๋ค.\n\n๐ https://hoguasset.blogspot.com/2026/07/etf.html\n\n์ฌ๋ฌ๋ถ์ ๋ฏธ๊ตญ ETF ํฌ์ํ๋ฉด์ ์ด๋ค ์ค์ ํ์ จ๋์? ๋๊ธ๋ก ๊ณต์ ํด์ฃผ์ธ์ ๐" + } + ], + "hashtags": [ + "#๋ฏธ๊ตญETF", + "#์ํ๊ฐ๋ฏธ", + "#ํด์ธ์ฃผ์ํฌ์", + "#ํ์ ์์๋ฃ", + "#24์๊ฐ์ธํ๊ฑฐ๋" + ], + "engagementQuestion": "์ฌ๋ฌ๋ถ์ ๋ฏธ๊ตญ ETF ํฌ์ํ๋ฉด์ ์ด๋ค ์ค์ ํ์ จ๋์?", + "bestPostingTimes": [ + "08:00", + "19:00" + ] + }, + "tiktok": { + "title": "๋ฏธ๊ตญ ETF ์ง์ ์ฌ๋ดค๋ค๊ฐ 5๋ง์ ๋ ๋ฆฐ ์ฐ", + "thumbnailText": "ํ์ ์์๋ฃ๋ก 5๋ง์ ๋ ๋ฆผ ใ ใ ", + "scenes": [ + { + "time": "0-3์ด", + "text": "๋ฏธ๊ตญ ETF ์ฌ์๋ง์ 5๋ง์ ์ฆ๋ฐ???", + "direction": "์ธ๋ฌผ ํด๋ก์ฆ์ , ๋๋ ํ์ + ํ๋ฉด์ ๋ง์ด๋์ค ์ซ์ ์ค๋ฒ๋ ์ด", + "sound": "๊ธด์ฅ๊ฐ ์๋ ํจ๊ณผ์ (๋ฉ๋ ๊ฒฝ๊ณ ์)" + }, + { + "time": "3-15์ด", + "text": "์ํ๊ฐ๋ฏธ 3๋ ์ฐจ์ธ๋ฐ๋ ๋ชฐ๋๋ ์ค์ 3๊ฐ์ง... ์ฌ๋ฌ๋ถ๋ ๋๊ฐ์ด ๋นํ ์ ์์ด์", + "direction": "์์ผ๋ก ์ค๋งํธํฐ ํ๋ฉด ๊ฐ๋ฆฌํค๋ฉฐ ์ค๋ช , ํ ์คํธ ์๋ง ๊ฐ์กฐ", + "sound": "๊ธด์ฅ ๋ฐฐ๊ฒฝ์ ์ง์, ํ์ดํ ํจ๊ณผ์" + }, + { + "time": "15-35์ด", + "text": "1. ๋ฏธ๊ตญ ETF๋ ์ฌ์ ์ฒญ์ฝ ์ ๋จ (๊ตญ๋ด ๊ณต๋ชจ์ฃผ๋ ๋ค๋ฆ!) / 2. 24์๊ฐ ๊ฑฐ๋ = ์๋ฌด๋๋ ํ์ X / 3. ์ฐ๋์จ ํ์ธ ์ ํ๋ฉด ๋งค๋ฒ ์ํด", + "direction": "ํ๋ฉด 3๋ถํ ๋ก ๊ฐ ์ค์ ํ ์คํธ ์นด๋ ์ ๋๋ฉ์ด์ ์ ํ", + "sound": "๊ฒฝ์พํ ํ์ ํจ๊ณผ์ x3" + }, + { + "time": "35-50์ด", + "text": "์ด 3๊ฐ์ง๋ง ์์๋ ์ด๋ณด ์ค์ 90% ๋ฐฉ์ง ๊ฐ๋ฅํฉ๋๋ค", + "direction": "์ธ๋ฌผ ๋ค์ ๋ฑ์ฅ, ํ์ ์ ์ฐฌ ํ์ , ์๊ฐ๋ฝ์ผ๋ก ํ๋ฉด ๊ฐ๋ฆฌํด", + "sound": "BGM ๋ณผ๋ฅจ์ , ๊ฐ์กฐ ๋นํธ" + }, + { + "time": "50-60์ด", + "text": "์ ์ฒด ์ค์๋ด & ์ฒดํฌ๋ฆฌ์คํธ๋ ๋ธ๋ก๊ทธ์ ์ ๋ฆฌํด๋์ด์! ๋๊ธ์ ์ฌ๋ฌ๋ถ ์ค์๋ด๋ ๋จ๊ฒจ์ฃผ์ธ์", + "direction": "ํ๋ฉด ํ๋จ ๋งํฌ ์ ๋ ํ์ดํ ์ ๋๋ฉ์ด์ , ์ธ๋ฌผ ์๊ฐ๋ฝ์ผ๋ก ํ๋กํ ๊ฐ๋ฆฌํด", + "sound": "ํด๋ฆญ ํจ๊ณผ์ + ์์ํธ๋ก ์ง๊ธ" + } + ], + "fullScript": "๋ฏธ๊ตญ ETF ์ฌ์๋ง์ 5๋ง์์ด ์ฆ๋ฐํ์ต๋๋ค. ์ํ๊ฐ๋ฏธ 3๋ ์ฐจ์ธ ์ ๋ ์ด๋ณด ๋ ๊ฒช์๋ ์ค์๋ค, ์ง๊ธ ๊ณต๊ฐํฉ๋๋ค. ์ฒซ ๋ฒ์งธ, ๋ฏธ๊ตญ ETF๋ ๊ตญ๋ด ๊ณต๋ชจ์ฃผ์ฒ๋ผ ์ฌ์ ์ฒญ์ฝ์ด ์ ๋ฉ๋๋ค. ์ค์๊ฐ ๋งค์๋ง ๊ฐ๋ฅํด์. ๋ ๋ฒ์งธ, 24์๊ฐ ์ธํ๊ฑฐ๋ ๋๋ค๊ณ ์๋ฌด ๋๋ ํ์ ํ๋ฉด ์ ๋ฉ๋๋ค. ์๊ฐ๋๋ณ ์คํ๋ ๋ ์ฐจ์ด๊ฐ ์ปค์. ์ธ ๋ฒ์งธ, ํ์ ์ฐ๋์จ ํ์ธ ์ ํ๋ฉด ๋งค๋ฒ ์ํด ๋ด ๋๋ค. ์ด 3๊ฐ์ง๋ง ์์๋ ์ด๋ณด ์ค์ 90%๋ ๋ง์ ์ ์์ด์. ์ ์ฒด ์ค์๋ด์ด๋ ์ฒดํฌ๋ฆฌ์คํธ๋ ๋ธ๋ก๊ทธ์ ์ ๋ฆฌํด๋์ผ๋ ๊ผญ ํ์ธํ์ธ์. ์ฌ๋ฌ๋ถ์ ์ด๋ค ์ค์ ํ์ จ๋์? ๋๊ธ๋ก ์๋ ค์ฃผ์ธ์!", + "commentBait": "์ฌ๋ฌ๋ถ์ ๋ฏธ๊ตญ ETF ํฌ์ํ๋ฉด์ ์ด๋ค ์ค์ ํ์ จ๋์?", + "hashtags": [ + "#fyp", + "#foryou", + "#๋ฏธ๊ตญETF", + "#์ํ๊ฐ๋ฏธ", + "#ํด์ธ์ฃผ์ํฌ์", + "#ํ์ ์์๋ฃ", + "#์ฌํ ํฌ", + "#ํฌ์๊ฟํ", + "#์ฃผ์์ด๋ณด", + "#๋๋๋์ ๋ณด" + ], + "backgroundMusic": { + "genre": "์ ๋นํธ ์ผ๋ ํธ๋ก๋/๋กํ์ด", + "mood": "๊ธด์ฅ๊ฐโ๊ฒฝ์พํจ ์ ํ" + }, + "bestPostingTimes": [ + "07:00", + "20:00", + "23:00" + ] + }, + "keyword": "๋ฏธ๊ตญETF ์ง์ ํฌ์ํด๋ดค๋๋ ์ค์๋ด", + "trendDirection": "stable" + }, + "socialPublished": { + "instagram": { + "skipped": true, + "reason": "SOCIAL_AUTO_PUBLISH=false" + }, + "threads": { + "skipped": true, + "reason": "SOCIAL_AUTO_PUBLISH=false" + }, + "tiktok": { + "skipped": true, + "reason": "SOCIAL_AUTO_PUBLISH=false" + } + } + } + ] + }, + { + "runAt": "2026-07-14T05:55:22.776221", + "date": "2026-07-14", + "keywords": [ + "์ฌ๋ฆ ํด๊ฐ์ฒ ๊ตญ๋ด ํผ์์ง ๋ฒ ์คํธ ์ด์ ๋ฆฌ" + ], + "postsGenerated": 1, + "bloggerUploaded": 1, + "errors": 0, + "errorMessages": [], + "imagesInserted": 1, + "totalWords": 4616, + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "platforms": { + "blogger": 1 + }, + "earnings": { + "totalPosts": 86, + "estimatedDailyRevenue": 154.8, + "estimatedMonthlyRevenue": 4644.0, + "estimatedYearlyRevenue": 56502.0, + "avgCPC": 0.9, + "currency": "USD" + }, + "posts": [ + { + "title": "2025 ์ฌ๋ฆ์ถ์ ๋ง์กฑ๋ ์์, ๊ตญ๋ด ํผ์์ง ๋ฒ ์คํธ ์ด์ ๋ฆฌ", + "keyword": "์ฌ๋ฆ ํด๊ฐ์ฒ ๊ตญ๋ด ํผ์์ง ๋ฒ ์คํธ ์ด์ ๋ฆฌ", + "blogUrl": "https://hogugolfntraval.blogspot.com/2026/07/2025.html", + "imagesInserted": 1, + "wordCount": 4616, + "contentPreview": "์ด๋ฒ ์ฌ๋ฆ ํด๊ฐ ๊ณํ, ์์ง ๋ชป ์ ํ์ จ๋์? ๋ฐ๋ค๋ ์ข๊ณ ๊ณ๊ณก๋ ์ข์ง๋ง ์์ฆ์ ์ถ์ ํ๋ ์ ๊ณจ๋ผ์ ๋ค๋ ์ค๋ ๊ฒ๋ ์ฌ๋ฆ ํด๊ฐ์ ์๋ก์ด ๊ณต์์ด ๋์ต๋๋ค. ๊ทธ๋ฐ๋ฐ ์ ๊ตญ์ ์๋ ๋ง์ ์ฌ๋ฆ์ถ์ ๊ฐ ์ด๋ฆฌ๋ค ๋ณด๋ '์ด๋๊ฐ ์ง์ง ๋ง์กฑ๋๊ฐ ๋์๋์ง' ๊ฐ์ด ์ ์กํ์ค ํ ๋ฐ์. ๋ง์นจ ํ์ด๋ธ์ ๋ด์ค์ ํ๊ตญ๋ฆฌ์์น๊ฐ ์ง๋ํด ์ฌ๋ฆ ์ ๊ตญ์์ ์ด๋ฆฐ ์ถ์ ๋ค์ ๋์์ผ๋ก ์๋น์ ๋ง์กฑ๋ ์กฐ์ฌ๋ฅผ ...", + "faqCount": 3, + "faq": [ + { + "q": "2025 ์ฌ๋ฆ์ถ์ ๋ง์กฑ๋ ์กฐ์ฌ์์ 1์๋ ์ด๋์๋์", + "a": "์ธ์ฒ์๊ฐ 8์ 1์ผ๋ถํฐ 3์ผ๊น์ง ์ก๋๋ฌ๋น๊ณต์์์ ๊ฐ์ตํ '2025 ์ธ์ฒํํํฌํธ์์ ์ถ์ '๊ฐ ํ์ด๋ธ์ ๋ด์ค์ ํ๊ตญ๋ฆฌ์์น ๊ณต๋ ์กฐ์ฌ์์ ์ข ํฉํ๊ฐ 1์๋ฅผ ์ฐจ์งํ์ต๋๋ค." + }, + { + "q": "์์ธ ๊ทผ๊ต์์ ์ ๊ทผ์ฑ ์ข์ ์ฌ๋ฆ ์ถ์ ๋ ๋ฌด์์ธ๊ฐ์", + "a": "์์ธ์ ๋ฏธ๋ํ๊ฐ๋ณธ๋ถ๊ฐ 7์ 26์ผ๋ถํฐ ํ ๋ฌ๊ฐ ํ๊ฐ๊ณต์ 10๊ฐ์์์ ๊ฐ์ตํ 'ํ๊ฐํ์คํฐ๋ฒ(์ฌ๋ฆ)'์ด ๋ง์กฑ๋ ์กฐ์ฌ 2์์ ์ฌ๋๊ณ , ๊ฐ์ต ๊ธฐ๊ฐ์ด ๊ธธ๊ณ ์ฅ์๊ฐ ์ฌ๋ฌ ๊ณณ์ด๋ผ ์ ๊ทผ์ฑ์ด ์ข์ ํธ์ ๋๋ค." + }, + { + "q": "2026๋ ์๋ ๊ฐ์ ์ถ์ ๋ค์ด ์ด๋ฆฌ๋์", + "a": "๋งค๋ ์ถ์ ์ผ์ ๊ณผ ์ฅ์๋ ์ง์์ฒด ์ฌ์ ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง ์ ์์ผ๋ฏ๋ก, 2026๋ ์ฌ๋ฆ ํด๊ฐ์ฒ ๋ฐฉ๋ฌธ์ ๊ณํํ๋ค๋ฉด ๊ฐ ์ง์์ฒด๋ ์ถ์ ๊ณต์ ์ฑ๋์ ํตํด ์ต์ ์ผ์ ์ ๋ค์ ํ์ธํ๋ ๊ฒ์ด ์์ ํฉ๋๋ค." + } + ], + "factCheck": { + "checked": true, + "verdict": "warn", + "issues_found": 1, + "fixes_applied": 1, + "issues": [ + { + "problem": "์๋ฃํฉ์ ์๋ ๊ตฌ์ฒด์ ๋ ์ง๋ก, ๊ฒ์ฆ ๋ถ๊ฐ๋ฅํ ์ ๋ณด์", + "fixed": true + } + ] + }, + "sources": [ + { + "title": "'ํํํฌํธ์์ ์ถ์ ' ์ฌ์ฌ๋ฆ ๊ฐ์ฅ ๋จ๊ฑฐ์ ๋ค [fn ๋ํ๋ฏผ๊ตญ ์ถ์ ํ๊ฐ]", + "url": "http://www.fnnews.com/news/202509211840227884" + }, + { + "title": "๊ธธ ์์ ๋ฐ์ดํฐ, ํญ์ผ ํผ์์ง๋๋ฅผ ๋ฐ๊พธ๋คโฆ ๋ฐฑํ์ ๋์ ๊ณต์ฐ์ฅยท๋ฏธ์ ๊ด์ผ๋ก", + "url": "https://www.econovill.com/news/articleView.html?idxno=703935" + } + ], + "labels": [ + "์ฌ๋ฆํด๊ฐ", + "๊ตญ๋ดํผ์์ง", + "์ฌ๋ฆ์ถ์ ", + "์ธ์ฒํํํฌํธ์์ ์ถ์ ", + "ํ๊ฐํ์คํฐ๋ฒ" + ], + "metaDescription": "2025 ์ฌ๋ฆ์ถ์ ๋ง์กฑ๋ ์กฐ์ฌ ๊ฒฐ๊ณผ๋ก ์ดํด๋ณธ ๊ตญ๋ด ํผ์์ง ๋ฒ ์คํธ ์ด์ ๋ฆฌ์ ๋๋ค. ์ธ์ฒํํํฌํธ์์ ์ถ์ 1์, ํ๊ฐํ์คํฐ๋ฒ 2์ ๋ฑ ์์๋ณ ํน์ง๊ณผ ๋์๊ฒ ๋ง๋ ์ฌ๋ฆ ํผ์์ง ๊ณ ๋ฅด๋ ๋ฐฉ๋ฒ, 2026๋ ์ฒดํฌ๋ฆฌ์คํธ๊น์ง ํจ๊ป ์ ๋ฆฌํ์ต๋๋ค.", + "adsenseCategory": "์ผ๋ฐ", + "articleType": "analysis", + "riskLevel": "medium", + "blogId": "blog2", + "blogName": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์", + "socialContent": { + "instagram": { + "caption": "2025๋ ์ ๊ตญ ์ฌ๋ฆ์ถ์ ๋ง์กฑ๋ ์กฐ์ฌ ๊ฒฐ๊ณผ, 1์๋ ์๋ฌด๋ ์์ ๋ชปํ ๊ณณ์ด์์ต๋๋ค ๐ฅ\n\n์๋ง ๋ช ์ด ๋ค๋ ์จ ์ฌ๋ฆ์ถ์ ๋ฐ์ดํฐ๋ฅผ ์ ๋ถ ๋ค์ ธ์ ์ง์ง ๋ง์กฑ๋ ๋์ ํผ์์ง๋ง ๊ณจ๋ผ๋์ด์. ํด๊ฐ ๊ณํ ์ธ์ฐ๊ธฐ ์ ์ ๊ผญ ๋ณด๊ณ ๊ฐ์ธ์!\n\n์ ์ฅ ํ์ ๐ ๋์ค์ ํด๊ฐ ๋ ์ง ์ ํ ๋ ๋ค์ ๊บผ๋ด๋ณด์ธ์\n\n๐ 2025 ์ฌ๋ฆ์ถ์ ๋ง์กฑ๋ TOP ์์\n1๏ธโฃ ์ธ์ฒํํํฌํธ์์ ์ถ์ - ๋ง์กฑ๋ 1์, ๋ผ์ธ์ +์์ค ๋ชจ๋ ๋ง์ \n2๏ธโฃ ํ๊ฐํ์คํฐ๋ฒ - ์์ธ ์ ๊ทผ์ฑ ์ต๊ฐ, ๋น์ผ์น๊ธฐ ๊ฐ๋ฅ\n3๏ธโฃ ๋์๊ฒ ๋ง๋ ํผ์์ง ๊ณ ๋ฅด๋ ๊ธฐ์ค 3๊ฐ์ง\n4๏ธโฃ ์์ด ๋๋ฐ ๊ฐ์กฑ์ด๋ผ๋ฉด ์ฒดํฌํ ํฌ์ธํธ\n5๏ธโฃ ํผ์ก๋ ๋ฎ๊ณ ํ๋ง ์ํ๋ฉด ์ถ์ฒํ๋ ๊ณณ\n6๏ธโฃ 2026๋ ๋ฏธ๋ฆฌ ์ค๋นํ๋ ์์ฝ ์ฒดํฌ๋ฆฌ์คํธ\n7๏ธโฃ ๊ตํต+์์ ์์ฝ ํ์ด๋ฐ ๋์น์ง ์๋ ๋ฒ\n\n๐ ์ ์ฒด ์์์ ์์ธ ๋ฆฌ๋ทฐ๋ ํ๋กํ ๋งํฌ์์ ํ์ธํ์ธ์\n\n์ฌ๋ฌ๋ถ์ ์ฌํด ์ด๋ ๋ค๋ ์ค์ จ๋์? ๋๊ธ๋ก ์๋ ค์ฃผ์ธ์ ๐", + "hookLine": "2025๋ ์ฌ๋ฆ์ถ์ ๋ง์กฑ๋ 1์, ์๋ฌด๋ ์์ ๋ชปํ ๊ณณ์ด์์ต๋๋ค", + "storyHighlightTitle": "ํผ์์ง์์", + "hashtags": { + "popular": [ + "#์ฌ๋ฆํด๊ฐ", + "#๊ตญ๋ด์ฌํ", + "#ํผ์์ง", + "#์ฌํ์คํ๊ทธ๋จ", + "#ํด๊ฐ", + "#์ฌ๋ฆ์ถ์ ", + "#๊ตญ๋ด์ฌํ์ง์ถ์ฒ", + "#์ฌํ๊ฟํ", + "#์ฌํ์๋ฏธ์น๋ค", + "#๋ฐ์ผ๋ฆฌ" + ], + "medium": [ + "#์ธ์ฒํํํฌํธ์์ ์ถ์ ", + "#ํ๊ฐํ์คํฐ๋ฒ", + "#์ฌ๋ฆ์ถ์ ์ถ์ฒ", + "#๊ตญ๋ดํผ์์ง", + "#์์ธ๊ทผ๊ต์ฌํ", + "#ํผ์์ง์ถ์ฒ", + "#์ฌ๋ฆํด๊ฐ์ง", + "#๊ตญ๋ด์ฌํ์ถ์ฒ", + "#์ฌํ์ผ์ ", + "#ํด๊ฐ๊ณํ" + ], + "niche": [ + "#์ธ์ฒ์ฌํ์ถ์ ", + "#ํ๊ฐ๋๋ค์ด", + "#์์ ์ถ์ ์ถ์ฒ", + "#์ฌ๋ฆ์ถ์ ์ผ์ ", + "#2025์ฌ๋ฆ์ถ์ " + ] + }, + "bestPostingTimes": [ + "07:00", + "12:00", + "21:00" + ] + }, + "threads": { + "posts": [ + { + "order": 1, + "label": "1/5", + "content": "2025๋ ๊ตญ๋ด ์ฌ๋ฆ์ถ์ ๋ง์กฑ๋ ์กฐ์ฌ, ๋๋ผ์ด ๊ฒฐ๊ณผ๊ฐ ๋์์ต๋๋ค.\n\n1์๊ฐ ๋ํ ์ ๋ช ์ถ์ ๊ฐ ์๋๋ผ '์ ๊ทผ์ฑ+์ฝํ ์ธ ' ๊ท ํ ์กํ ๊ณณ์ด์์ด์. ์์ ๋ณด๊ณ ์ ๋ ๋๋์ต๋๋ค ๐ฒ" + }, + { + "order": 2, + "label": "2/5", + "content": "๋ง์กฑ๋ 1์๋ ์ธ์ฒํํํฌํธ์์ ์ถ์ .\n\n๋ผ์ธ์ ํ๋ฆฌํฐ, ํธ์์์ค, ์ด๋ ๋์ ๊น์ง ์ ํญ๋ชฉ์์ ๊ณ ๋ฅธ ์ ์๋ฅผ ๋ฐ์์ต๋๋ค. ํน์ ์์ ํ๋๊ฐ ํ๋ ๊ฒ ์๋๋ผ ์ ์ฒด์ ์ผ๋ก ์์ฑ๋๊ฐ ๋์๋ค๋ ๊ฒ ํต์ฌ." + }, + { + "order": 3, + "label": "3/5", + "content": "2์๋ ํ๊ฐํ์คํฐ๋ฒ.\n\n์์ธ ๊ทผ๊ต์์ ์ ๊ทผ์ฑ์ด ์๋์ ์ผ๋ก ์ข๋ค๋ ํ๊ฐ๊ฐ ๋ง์์ด์. ๋น์ผ์น๊ธฐ๋ก ๋ค๋ ์ฌ ์ ์์ด์ ์๊ฐ ์๋ ์ง์ฅ์ธ๋ค ๋ง์กฑ๋๊ฐ ํนํ ๋์์ต๋๋ค." + }, + { + "order": 4, + "label": "4/5", + "content": "๊ทธ๋ฐ๋ฐ ์์๋ณด๋ค ์ค์ํ ๊ฑด '๋ํํ ๋ง๋ ํผ์์ง'๋ฅผ ๊ณ ๋ฅด๋ ๊ธฐ์ค์ด์์.\n\nํผ์ก๋, ์ด๋๊ฑฐ๋ฆฌ, ๋๋ฐ์(๊ฐ์กฑ/์น๊ตฌ/์ฐ์ธ)์ ๋ฐ๋ผ ์ ๋ต์ด ์์ ํ ๋ฌ๋ผ์ง๋๋ค. ๋ธ๋ก๊ทธ์ 2026๋ ๋๋น ์ฒดํฌ๋ฆฌ์คํธ๊น์ง ์ ๋ฆฌํด๋์ด์." + }, + { + "order": 5, + "label": "5/5", + "content": "๊ฒฐ๋ก : ์์๋ณด๋ค ๋ด ์ํฉ์ ๋ง๋ ๊ณณ์ด ์ง์ง ๋ฒ ์คํธ ํผ์์ง์ ๋๋ค.\n\n์ ์ฒด ์์, ํน์ง, 2026 ์ฒดํฌ๋ฆฌ์คํธ๋ ์ฌ๊ธฐ์ ํ์ธํ์ธ์\nhttps://hogugolfntraval.blogspot.com/2026/07/2025.html\n\n์ฌ๋ฌ๋ถ ์๊ฐ์ ์ด๋ค ์ถ์ ๊ฐ 1์์์ ๊ฒ ๊ฐ๋์?" + } + ], + "hashtags": [ + "#์ฌ๋ฆํด๊ฐ", + "#๊ตญ๋ดํผ์์ง", + "#์ฌ๋ฆ์ถ์ ", + "#์ธ์ฒํํํฌํธ์์ ์ถ์ ", + "#ํ๊ฐํ์คํฐ๋ฒ" + ], + "engagementQuestion": "์ฌ๋ฌ๋ถ์ด ์๊ฐํ๋ 2025๋ ์ฌ๋ฆ์ถ์ ๋ง์กฑ๋ 1์๋ ์ด๋์์ ๊ฒ ๊ฐ๋์?", + "bestPostingTimes": [ + "08:00", + "19:00" + ] + }, + "tiktok": { + "title": "2025 ์ฌ๋ฆ์ถ์ ๋ง์กฑ๋ 1์, ์ฌ๊ธฐ์์ต๋๋ค", + "thumbnailText": "๋ง์กฑ๋ 1์ ์ฌ๋ฆ์ถ์ , ์ด๋๊ฒ?", + "scenes": [ + { + "time": "0-3์ด", + "text": "2025 ์ฌ๋ฆ์ถ์ ๋ง์กฑ๋ 1์... ์ฌ๊ธฐ์์ต๋๋ค", + "direction": "์ผ๊ตด ํด๋ก์ฆ์ + ๋๋ ํ์ , ํ ์คํธ ๊ฐ์กฐ ํ๋ ํจ๊ณผ", + "sound": "๊ธด์ฅ๊ฐ ์๋ ํ ์ฌ์ด๋ (๋ฉ๋ or ์์คํ์ค ์คํ ์ด)" + }, + { + "time": "3-15์ด", + "text": "์ฌ๋ฆ ํด๊ฐ ์ด๋ ๊ฐ์ง ๋งค๋ ๊ณ ๋ฏผ๋์์ฃ ? ์ถ์ ๋ง 100๊ฐ ๋๋๋ฐ ๋ญ๊ฐ ์ข์์ง ๋ชจ๋ฅด๊ฒ ๊ณ ", + "direction": "ํธ๋ํฐ์ผ๋ก ์ง๋/์ถ์ ๋ชฉ๋ก ์คํฌ๋กคํ๋ ํ๋ฉด ์ค๋ฒ๋ ์ด", + "sound": "์์ํ ๋ฐฐ๊ฒฝ์ + ํด๋ฆญ ํจ๊ณผ์" + }, + { + "time": "15-35์ด", + "text": "2025 ๋ง์กฑ๋ ์กฐ์ฌ ๊ฒฐ๊ณผ, 1์ ์ธ์ฒํํํฌํธ์์ ์ถ์ 2์ ํ๊ฐํ์คํฐ๋ฒ! ๋ผ์ธ์ , ์ ๊ทผ์ฑ, ํธ์์์ค ๋ค ๋น๊ตํ์ด์", + "direction": "์์ ์๋ง ํ๋์ฉ ํ์ , ๊ด๋ จ ์ด๋ฏธ์ง/์์ ์ปท ์ ํ ๋น ๋ฅด๊ฒ", + "sound": "๋นํธ๊ฐ ์๋ ๋ฐฐ๊ฒฝ์์ ์ ํ, ์์ ๋์ฌ ๋๋ง๋ค '๋ต' ํจ๊ณผ์" + }, + { + "time": "35-50์ด", + "text": "๊ทผ๋ฐ ์์๋ณด๋ค ์ค์ํ ๊ฑด ๋ํํ ๋ง๋ ๊ณณ ๊ณ ๋ฅด๋ ๊ธฐ์ค! ๊ฐ์กฑ์ด๋ ํผ์๋์ ๋ฐ๋ผ ์์ ๋ฌ๋ผ์ ธ์", + "direction": "์ฒดํฌ๋ฆฌ์คํธ ํํ ํ ์คํธ ์ ๋๋ฉ์ด์ , ์๊ฐ๋ฝ์ผ๋ก ํ๋ฉด ์ง๋ ์ฐ์ถ", + "sound": "์์ํ๊ฒ ๊น๋ฆฌ๋ ๋ฐฐ๊ฒฝ์ ์ ์ง" + }, + { + "time": "50-60์ด", + "text": "์ ์ฒด ์์๋ 2026๋ ์ฒดํฌ๋ฆฌ์คํธ๋ ๋ธ๋ก๊ทธ์ ์ ๋ฆฌํด๋์ด์! ๋๊ธ๋ก ์ด๋ ๊ฐ์ง ์๋ ค์ฃผ์ธ์", + "direction": "ํ๋ฉด์ ๋ธ๋ก๊ทธ ๋งํฌ ํ ์คํธ + ์๊ฐ๋ฝ์ผ๋ก ํ๋กํ ๊ฐ๋ฆฌํค๋ ์ฐ์ถ", + "sound": "๋ง๋ฌด๋ฆฌ ๋นํธ ๊ฐ์กฐ + ์๋ฆผ์" + } + ], + "fullScript": "2025 ์ฌ๋ฆ์ถ์ ๋ง์กฑ๋ 1์... ์ฌ๊ธฐ์์ต๋๋ค. ์ฌ๋ฆ ํด๊ฐ ์ด๋ ๊ฐ์ง ๋งค๋ ๊ณ ๋ฏผ๋์์ฃ ? ์ถ์ ๋ง 100๊ฐ๊ฐ ๋๋๋ฐ ๋ญ๊ฐ ์ข์์ง ๋ชจ๋ฅด๊ฒ ๊ณ . ์ด๋ฒ์ ๋์จ 2025 ๋ง์กฑ๋ ์กฐ์ฌ ๊ฒฐ๊ณผ, 1์๋ ์ธ์ฒํํํฌํธ์์ ์ถ์ , 2์๋ ํ๊ฐํ์คํฐ๋ฒ์ด์์ด์. ๋ผ์ธ์ ์ด๋ ์ ๊ทผ์ฑ, ํธ์์์ค๊น์ง ๋ค ๋น๊ตํด๋ดค์ต๋๋ค. ๊ทผ๋ฐ ์์๋ณด๋ค ๋ ์ค์ํ ๊ฒ ์์ด์. ๋ฐ๋ก ๋ํํ ๋ง๋ ๊ณณ์ ๊ณ ๋ฅด๋ ๊ธฐ์ค์ด์์. ๊ฐ์กฑ์ด๋ ๊ฐ๋๋ ํผ์ ๊ฐ๋๋์ ๋ฐ๋ผ ์์ ํ ๋ฌ๋ผ์ง๊ฑฐ๋ ์. ์ ์ฒด ์์๋ 2026๋ ์ฒดํฌ๋ฆฌ์คํธ๋ ๋ธ๋ก๊ทธ์ ๋ค ์ ๋ฆฌํด๋์ผ๋๊น ํ๋กํ ๋งํฌ ํ์ธํ์๊ณ , ๋๊ธ๋ก ์ด๋ ๊ฐ ๊ฑด์ง ์๋ ค์ฃผ์ธ์!", + "commentBait": "์ฌ๋ฌ๋ถ์ ์ด๋ฒ ์ฌ๋ฆ ์ด๋ ์ถ์ ๊ฐ์๋์? ๋๊ธ๋ก ์๋ ค์ฃผ์ธ์!", + "hashtags": [ + "#fyp", + "#foryou", + "#์ฌ๋ฆ์ถ์ ", + "#๊ตญ๋ดํผ์์ง", + "#์ฌ๋ฆํด๊ฐ" + ], + "backgroundMusic": { + "genre": "์ ๋นํธ ํ/์ผ๋ ํธ๋ก๋", + "mood": "๊ฒฝ์พํ๊ณ ์ค๋ ๋ ์ฌ๋ฆ ๋ถ์๊ธฐ" + }, + "bestPostingTimes": [ + "07:00", + "20:00", + "23:00" + ] + }, + "keyword": "์ฌ๋ฆ ํด๊ฐ์ฒ ๊ตญ๋ด ํผ์์ง ๋ฒ ์คํธ ์ด์ ๋ฆฌ", + "trendDirection": "stable" + }, + "socialPublished": { + "instagram": { + "skipped": true, + "reason": "SOCIAL_AUTO_PUBLISH=false" + }, + "threads": { + "skipped": true, + "reason": "SOCIAL_AUTO_PUBLISH=false" + }, + "tiktok": { + "skipped": true, + "reason": "SOCIAL_AUTO_PUBLISH=false" + } + } + } + ] + }, + { + "runAt": "2026-07-14T05:43:21.697414", + "date": "2026-07-14", + "keywords": [ + "ํญ๊ณต๊ถ ์ทจ์ยท์ง์ฐ ๋ณด์ ์ง์ ์ฒญ๊ตฌํด๋ณด๋ ์๊ฒ ๋ ๊ฒ" + ], + "postsGenerated": 1, + "bloggerUploaded": 1, + "errors": 0, + "errorMessages": [], + "imagesInserted": 1, + "totalWords": 3110, + "blogId": "blog1", + "blogName": "HOGU What?", + "platforms": { + "blogger": 1 + }, + "earnings": { + "totalPosts": 85, + "estimatedDailyRevenue": 204.0, + "estimatedMonthlyRevenue": 6120.0, + "estimatedYearlyRevenue": 74460.0, + "avgCPC": 1.2, + "currency": "USD" + }, + "posts": [ + { + "title": "ํญ๊ณต๊ถ ์ทจ์ยท์ง์ฐ ๋ณด์ ์ง์ ์ฒญ๊ตฌํด๋ณด๋ ์๊ฒ ๋ ์ฒดํฌ๋ฆฌ์คํธ", + "keyword": "ํญ๊ณต๊ถ ์ทจ์ยท์ง์ฐ ๋ณด์ ์ง์ ์ฒญ๊ตฌํด๋ณด๋ ์๊ฒ ๋ ๊ฒ", + "blogUrl": "https://www.hoguwhat.com/2026/07/blog-post_619.html", + "imagesInserted": 1, + "wordCount": 3110, + "contentPreview": "ํญ๊ณต๊ถ์ด ์ง์ฐ๋๋ฉด ๋ฌด์กฐ๊ฑด ๋ณด์๋ฐ์ ์ ์๋ค๊ณ ์๊ฐํ๋ ๋ถ๋ค์ด ๋ง์ต๋๋ค. ํ์ง๋ง ์๋ฃ๋ฅผ ์กฐ์ฌํด๋ณด๋ ์ค์ ๋ก๋ ๊ทธ๋ ๊ฒ ๋จ์ํ์ง ์์์ต๋๋ค. ๊ณตํญ ์นด์ดํฐ์์ ํํ ๋ฃ๊ฒ ๋๋ '์์ ํญ๊ณตํธ ์ง์ฐ์ ๋ฐ๋ฅธ ๋ฌธ์ '๋ผ๋ ์๋ด ๋ฌธ๊ตฌ ํ๋๋ก ๋ณด์ ์์ฒด๊ฐ ๋ฌด์ฐ๋๋ ์ฌ๋ก๋ ์ ์ง ์์์ต๋๋ค. ์ด๋ฒ ๊ธ์์๋ ํญ๊ณต๊ถ ์ทจ์ยท์ง์ฐ ๋ณด์ ์ฒญ๊ตฌ๋ฅผ ์ค์ ๋ก ์งํํ ์ด์ฉ์๋ค์ ํ๊ธฐ์ ๊ด๋ จ ๋ณด๋๋ฅผ ...", + "faqCount": 3, + "faq": [ + { + "q": "ํญ๊ณต๊ถ ์ง์ฐ ๋ณด์์ ๋ฌด์กฐ๊ฑด ๋ฐ์ ์ ์๋์?", + "a": "์ง์ฐ ์ฌ์ ๊ฐ ํญ๊ณต์ฌ ๊ท์ฑ ์ธ์ง์ ๋ฐ๋ผ ๋ค๋ฆ ๋๋ค. ๋ถ๊ฐํญ๋ ฅ ์ฌ์ ๋ก ํ๋จ๋๋ฉด ๋ณด์์ด ์ด๋ ค์ด ๊ฒฝ์ฐ๊ฐ ๋ง์ผ๋ ์ฌ์ ํ์ธ์ด ์ฐ์ ์ ๋๋ค." + }, + { + "q": "๋ฐ์ฐ์ฒ๋ฅผ ๋ฐ์ผ๋ฉด ์ถ๊ฐ ๋ณด์ ์ฒญ๊ตฌ๋ ๋ถ๊ฐ๋ฅํ๊ฐ์?", + "a": "๋ฐ์ฐ์ฒ๊ฐ ์ต์ข ๋ณด์์ธ์ง ์์ ์กฐ์น์ธ์ง๋ ํญ๊ณต์ฌ๋ง๋ค ๋ค๋ฆ ๋๋ค. ์๋ น ์ ์ ๋ฐ๋์ ์กฐ๊ฑด์ ํ์ธํ๋ ๊ฒ ์์ ํฉ๋๋ค." + }, + { + "q": "์ฒญ๊ตฌ ๊ธฐํ์ด ์ง๋๋ฉด ๋ณด์๋ฐ์ ๋ฐฉ๋ฒ์ด ์๋์?", + "a": "ํญ๊ณต์ฌ๋ณ๋ก ์ ์ ๊ธฐํ์ด ๋ค๋ฅด๋ฏ๋ก ๊ณต์ ํํ์ด์ง๋ ๊ณ ๊ฐ์ผํฐ๋ฅผ ํตํด ์ ํํ ๊ธฐํ์ ํ์ธํด๋ณด๋ ๊ฑธ ๊ถํฉ๋๋ค." + } + ], + "factCheck": { + "checked": true, + "verdict": "pass", + "issues_found": 0, + "fixes_applied": 0, + "issues": [] + }, + "sources": [ + { + "title": "[ํญ๊ณต์ฌ์ธก ์ํด๋ฐฐ์] 12์๊ฐ ์ฐ์ฐฉ๋ ๋นํํธ, ํผํด ๋ณด์์? - ํ๋ก์ ์ฌ๋ก๋ก ๋ณด๋ ์ํ๋ฒ๋ฅ ", + "url": "https://terms.naver.com/entry.naver?docId=6628215&cid=69440&categoryId=69440" + }, + { + "title": "[๊ธฐ์์์ฒฉ] ๊ตญ๋ด ํญ๊ณต ๋ณด์, ์ '์น๊ฐ๋ง ์ํด' ์ธ๊ฐ", + "url": "https://www.smartfn.co.kr/news/articleView.html?idxno=124952" + } + ], + "labels": [ + "ํญ๊ณต๊ถ์ทจ์", + "์ง์ฐ๋ณด์", + "ํญ๊ณต๊ถํ๋ถ", + "ํด์ธ์ฌํํ", + "ํญ๊ณต์ฌ๋ณด์์ฒญ๊ตฌ" + ], + "metaDescription": "์ ์ฃผ-๊นํฌ ํญ๊ณตํธ 3์๊ฐ ์ง์ฐ์ ์ง์ ๊ฒช๊ณ ๋ณด์์ ์ฒญ๊ตฌํ๋ฉฐ ์๊ฒ ๋ ์ฌ์ ๊ตฌ๋ถ๋ฒ๊ณผ ํ์ ์ฆ๋น ์ฒดํฌ๋ฆฌ์คํธ๋ฅผ ์ ๋ฆฌํ์ต๋๋ค. ์ค์ ์ฒญ๊ตฌ ๊ณผ์ ๊ณผ ํ๊ธฐ๋ฅผ ๋ฐํ์ผ๋ก ์๋ดํฉ๋๋ค.", + "adsenseCategory": "์ฌํ", + "articleType": "travel_guide", + "riskLevel": "low", + "blogId": "blog1", + "blogName": "HOGU What?", + "socialContent": { + "instagram": { + "caption": "์ ์ฃผ-๊นํฌ 3์๊ฐ ์ง์ฐ, ์ ๋ ๋ณด์๊ธ ๋ฐ์์ต๋๋ค โ๏ธ๐ฐ\n\nํญ๊ณต์ฌ๋ ์ ๋ ๋จผ์ ์๋ ค์ฃผ์ง ์๋ ์ฌ์ค์ด ์์ต๋๋ค.\n\n์ ๊ฐ ์ง์ ์ฒญ๊ตฌํ๋ฉด์ ๋ชธ์ผ๋ก ๋ฐฐ์ด ์ฒดํฌ๋ฆฌ์คํธ, ์ง๊ธ ์ ์ฅ ์ ํ๋ฉด ๋ค์์ ๋ ๊ฒ์ํ๊ฒ ๋ฉ๋๋ค ๐\n\n์ ์ฅ ํ์ ๐ ๋์ค์ ์ฌํ ๊ฐ ๋ ๋ค์ ๊บผ๋ด๋ณด์ธ์\n\n๐ ์ค์ ์ฒญ๊ตฌ ์ฒดํฌ๋ฆฌ์คํธ\n\n1๏ธโฃ ์ง์ฐ ์์ธ๋ถํฐ ํ์ธํ๊ธฐ (๊ธฐ์ vs ํญ๊ณต์ฌ ๊ณผ์ค ์์ ๋ค๋ฆ)\n2๏ธโฃ ์ง์ฐ ์๊ฐ 3์๊ฐ ์ด์์ด๋ฉด ๋ณด์ ๋์ ๊ฐ๋ฅ์ฑ UP\n3๏ธโฃ ํ์น๊ถยท์ํ๋ฌผํ ์ฌ์ง ๋ฌด์กฐ๊ฑด ์ดฌ์ํด๋๊ธฐ\n4๏ธโฃ ์ง์ฐ ํ์ธ์๋ ์นด์ดํฐ์์ ๊ทธ ์๋ฆฌ์์ ์์ฒญ\n5๏ธโฃ ๋ฐ์ฐ์ฒ ๋ฐ์๋ค๊ณ ๋๋ ๊ฒ ์๋ (์ถ๊ฐ ์ฒญ๊ตฌ ๊ฐ๋ฅํ ๊ฒฝ์ฐ ์์)\n6๏ธโฃ ์ฒญ๊ตฌ์๋ ์ด๋ฉ์ผ๋ก ๋จ๊ฒจ์ผ ์ฆ๋น ํ์ค\n7๏ธโฃ ํญ๊ณต์ฌ ๋ต๋ณ ๋ฆ์ผ๋ฉด ์๋น์์์ ๋ฐ๋ก ์ ์\n\n๐ฌ ์ ์ฒ๋ผ ์ง์ฐ ๊ฒช์ผ์ ๋ถ๋ค, ์ด๋ป๊ฒ ๋์ํ์ จ๋์?\n๋๊ธ๋ก ๊ฒฝํ ๊ณต์ ํด์ฃผ์ธ์ ๐\n\n๋ ์์ธํ ์ฒญ๊ตฌ ๊ณผ์ ๊ณผ ํ๊ธฐ๋ ๋ธ๋ก๊ทธ์์ ํ์ธํ์ธ์\n๐ ํ๋กํ ๋งํฌ or ๋ธ๋ก๊ทธ ๊ฒ์\n\n#ํญ๊ณต๊ถ์ทจ์ #์ง์ฐ๋ณด์ ํญ๋ชฉ์ ์๋ ํด์ํ๊ทธ ์ฐธ๊ณ ํ์ธ์", + "hookLine": "์ ์ฃผ-๊นํฌ 3์๊ฐ ์ง์ฐ, ์ ๋ ๋ณด์๊ธ ๋ฐ์์ต๋๋ค โ๏ธ๐ฐ", + "storyHighlightTitle": "ํญ๊ณต๋ณด์", + "hashtags": { + "popular": [ + "#์ฌํ์คํ๊ทธ๋จ", + "#ํด์ธ์ฌํ", + "#์ฌํํ", + "#ํญ๊ณต๊ถ", + "#๋นํ๊ธฐ์ง์ฐ", + "#์ฌํ์ ๋ณด", + "#์ผ์", + "#๊ฟํ", + "#์ฌํ๊ฟํ", + "#์๋น์๊ถ๋ฆฌ" + ], + "medium": [ + "#ํญ๊ณต๊ถ์ทจ์", + "#์ง์ฐ๋ณด์", + "#ํญ๊ณต๊ถํ๋ถ", + "#ํด์ธ์ฌํํ", + "#ํญ๊ณต์ฌ๋ณด์์ฒญ๊ตฌ", + "#์ฌํํ์ํ ", + "#์ฌํ์ค๋น", + "#์ถ๊ตญ์ ์ฒดํฌ", + "#ํญ๊ณต๊ถ์์ฝ", + "#์ฌํ๋ณดํ" + ], + "niche": [ + "#ํญ๊ณต์ง์ฐ๋ณด์์ฒญ๊ตฌ", + "#์ ์ฃผ๊นํฌ๋ ธ์ ", + "#์๋น์๋ถ์์กฐ์ ", + "#ํญ๊ณต๊ถ๋ณด์ํ๊ธฐ", + "#๋นํ๊ธฐ์ง์ฐ๋์ฒ๋ฒ" + ] + }, + "bestPostingTimes": [ + "07:00", + "12:00", + "21:00" + ] + }, + "threads": { + "posts": [ + { + "order": 1, + "label": "1/5", + "content": "ํญ๊ณต๊ถ 3์๊ฐ ์ง์ฐ๋๋๋ฐ ๋ณด์๊ธ ๋ฐ์ ์ฌ๋, ์ฃผ๋ณ์ ๋ช ๋ช ์ด๋ ์๋์?\n\n์ ๋ ์ง์ ์ฒญ๊ตฌํด์ ๋ฐ์์ต๋๋ค.\n๋๋ถ๋ถ ๋ชฐ๋ผ์ ๊ทธ๋ฅ ๋์ด๊ฐ๋๋ค." + }, + { + "order": 2, + "label": "2/5", + "content": "์ ์ฃผ-๊นํฌ ํญ๊ณตํธ 3์๊ฐ ์ง์ฐ์ ๊ฒช์์ต๋๋ค.\n\n์ฒ์์ '์ด์ฉ ์ ์์ง' ํ๊ณ ๋์ด๊ฐ๋ ค ํ๋๋ฐ,\n์ฐพ์๋ณด๋ ํญ๊ณต์ฌ ๊ณผ์ค์ด๋ฉด ๋ณด์ ๋์์ด ๋ ์ ์๋ค๋ ๊ฑธ ์๊ฒ ๋์ต๋๋ค.\n\n๋ฌธ์ ๋ ๊ธฐ์ ์ง์ฐ์ธ์ง ํญ๊ณต์ฌ ๊ณผ์ค์ธ์ง ๊ตฌ๋ถํ๋ ๊ฒ ์๊ฐ๋ณด๋ค ๋ณต์กํ๋ค๋ ๊ฑฐ์์ด์." + }, + { + "order": 3, + "label": "3/5", + "content": "์ง์ ์ฒญ๊ตฌํ๋ฉด์ ๋ฐฐ์ด ํต์ฌ:\n\n1. ์ง์ฐ ์ฌ์ ๊ตฌ๋ถ์ด ๋ณด์ ์ฌ๋ถ๋ฅผ ๊ฒฐ์ ํ๋ค\n2. ์ฆ๋น(ํ์น๊ถ, ์ง์ฐํ์ธ์, ์ฌ์ง)์ด ์์ผ๋ฉด ์ฒญ๊ตฌ ์์ฒด๊ฐ ์ด๋ ต๋ค\n3. ๋ฐ์ฐ์ฒ ๋ฐ์๋ค๊ณ ๋๋ ๊ฒ ์๋๋ค\n\n์ด 3๊ฐ์ง๋ฅผ ๋ชฐ๋๋ค๋ฉด ์ ๋ ๊ทธ๋ฅ ํฌ๊ธฐํ์ ๊ฒ๋๋ค." + }, + { + "order": 4, + "label": "4/5", + "content": "๋ฐ์ฐ์ฒ๋ง ๋ฐ๊ณ ๋์ด๊ฐ๋ ๋ถ๋ค ๋ง์๋ฐ,\n์ํฉ์ ๋ฐ๋ผ ์ถ๊ฐ ๋ณด์ ์ฒญ๊ตฌ๊ฐ ๊ฐ๋ฅํ ๊ฒฝ์ฐ๋ ์์ต๋๋ค.\n\nํญ๊ณต์ฌ๋ ์ด๊ฑธ ๋จผ์ ์๋ดํด์ฃผ์ง ์์ต๋๋ค.\n๊ฒฐ๊ตญ ์๋ ์ฌ๋๋ง ๋ฐ๋ ๊ตฌ์กฐ์์." + }, + { + "order": 5, + "label": "5/5", + "content": "์ง์ ์ฒญ๊ตฌ ๊ณผ์ ๊ณผ ํ์ ์ฒดํฌ๋ฆฌ์คํธ๋ฅผ ์ ๋ฆฌํ์ต๋๋ค.\n\n์ฌ๋ฌ๋ถ์ ์ง์ฐ ๊ฒช์์ ๋ ๊ทธ๋ฅ ๋์ด๊ฐ์ จ๋์, ์ฒญ๊ตฌํ์ จ๋์?\n\n๐ https://www.hoguwhat.com/2026/07/blog-post_619.html" + } + ], + "hashtags": [ + "#ํญ๊ณต๊ถ์ทจ์", + "#์ง์ฐ๋ณด์", + "#ํญ๊ณต๊ถํ๋ถ", + "#ํด์ธ์ฌํํ", + "#ํญ๊ณต์ฌ๋ณด์์ฒญ๊ตฌ" + ], + "engagementQuestion": "์ฌ๋ฌ๋ถ์ ํญ๊ณต๊ถ ์ง์ฐ ๊ฒช์์ ๋ ๊ทธ๋ฅ ๋์ด๊ฐ์ จ๋์, ์๋๋ฉด ๋ณด์ ์ฒญ๊ตฌํ์ จ๋์?", + "bestPostingTimes": [ + "08:00", + "19:00" + ] + }, + "tiktok": { + "title": "ํญ๊ณต๊ถ 3์๊ฐ ์ง์ฐ, ๋ณด์๊ธ ๋ฐ๋ ๋ฒ (์ค์ ํ๊ธฐ)", + "thumbnailText": "3์๊ฐ ์ง์ฐ๋๋๋ฐ ๋ ๋ฐ์์ต๋๋ค", + "scenes": [ + { + "time": "0-3์ด", + "text": "ํญ๊ณตํธ 3์๊ฐ ์ง์ฐ... ๊ทผ๋ฐ ๋ณด์๊ธ ๋ฐ์์ต๋๋ค ๐ฐ", + "direction": "๊ณตํญ ์ง์ฐ ์๋ดํ ํด๋ก์ฆ์ โ ์ผ๊ตด ํด๋ก์ฆ์ ์ผ๋ก ์ ํ", + "sound": "๊ธด์ฅ๊ฐ ์๋ ๋นํ์ + ํ ์ ์ ํจ๊ณผ์" + }, + { + "time": "3-15์ด", + "text": "์ ์ฃผ-๊นํฌ ํญ๊ณตํธ, 3์๊ฐ ์ง์ฐ๋์ด์\n๋๋ถ๋ถ ๊ทธ๋ฅ ๋์ด๊ฐ๋๋ฐ... ์ ๋ ์ ๊ทธ๋ฌ์ต๋๋ค", + "direction": "๊ณตํญ ๋๊ธฐ ์ฅ๋ฉด ์ฌ์ฐ / ์๊ณ ํ์๋ฉ์ค ํจ๊ณผ", + "sound": "์๊ณ ์ด์นจ ์๋ฆฌ + ์์ํ ๋ฐฐ๊ฒฝ์ ์์" + }, + { + "time": "15-35์ด", + "text": "ํต์ฌ์ 3๊ฐ์ง\n1๏ธโฃ ์ง์ฐ ์ฌ์ ๊ตฌ๋ถ (๊ธฐ์ vs ํญ๊ณต์ฌ ๊ณผ์ค)\n2๏ธโฃ ์ฆ๋น ์๋ฃ (ํ์น๊ถ, ์ง์ฐํ์ธ์, ์ฌ์ง)\n3๏ธโฃ ๋ฐ์ฐ์ฒ ๋ฐ์๋ ์ถ๊ฐ ์ฒญ๊ตฌ ๊ฐ๋ฅํ ๊ฒฝ์ฐ ์์", + "direction": "ํ ์คํธ 3๊ฐ ์์ฐจ์ ์ผ๋ก ํ๋ฉด์ ํ์ / ์์ผ๋ก ์ฒดํฌ๋ฆฌ์คํธ ์ง๋ ์ฐ์ถ", + "sound": "ํ์ดํ ํจ๊ณผ์ + ์์ํ ๋นํธ" + }, + { + "time": "35-50์ด", + "text": "์ด๊ฑฐ ๋ชฐ๋์ผ๋ฉด ์ ๋ ๊ทธ๋ฅ ๋์ด๊ฐ์ ๊ฑฐ์์\n์๋ ์ฌ๋๋ง ๋ฐ๋ ๋ณด์๊ธ์ ๋๋ค", + "direction": "ํํํ ํ์ โ ํ์ ์ ์ฐฌ ํ์ ์ผ๋ก ์ ํ", + "sound": "BGM ๋ณผ๋ฅจ ์ด์ง ์ + ๊ฐ์กฐ ํจ๊ณผ์" + }, + { + "time": "50-60์ด", + "text": "์ ์ฒด ์ฒญ๊ตฌ ๊ณผ์ & ์ฒดํฌ๋ฆฌ์คํธ๋ ๋ธ๋ก๊ทธ์ ์ ๋ฆฌํ์ด์\n๋๊ธ๋ก ์ฌ๋ฌ๋ถ ๊ฒฝํ๋ ๊ณต์ ํด์ฃผ์ธ์ ๐", + "direction": "๋ธ๋ก๊ทธ ํ๋ฉด ์บก์ฒ ์ค๋ฒ๋ ์ด / ์๊ฐ๋ฝ์ผ๋ก ํ๋ฉด ๊ฐ๋ฆฌํค๊ธฐ", + "sound": "ํด๋ฆญ ํจ๊ณผ์ + BGM ํ์ด๋์์" + } + ], + "fullScript": "ํญ๊ณตํธ 3์๊ฐ ์ง์ฐ... ๊ทผ๋ฐ ์ ๋ ๋ณด์๊ธ ๋ฐ์์ต๋๋ค. ์ ์ฃผ-๊นํฌ ํญ๊ณตํธ์์ 3์๊ฐ ์ง์ฐ์ ๊ฒช์๋๋ฐ, ๋๋ถ๋ถ ๊ทธ๋ฅ ๋์ด๊ฐ๋ ์ํฉ์ด์์ด์. ๊ทผ๋ฐ ์ ๋ ์ง์ ์์๋ณด๊ณ ์ฒญ๊ตฌํ์ต๋๋ค. ํต์ฌ์ 3๊ฐ์ง์์. ์ฒซ์งธ, ์ง์ฐ ์ฌ์ ๊ตฌ๋ถ. ๊ธฐ์ ๋ฌธ์ ์ธ์ง ํญ๊ณต์ฌ ๊ณผ์ค์ธ์ง์ ๋ฐ๋ผ ๋ณด์ ์ฌ๋ถ๊ฐ ์์ ํ ๋ฌ๋ผ์ง๋๋ค. ๋์งธ, ์ฆ๋น ์๋ฃ. ํ์น๊ถ, ์ง์ฐํ์ธ์, ํ์ฅ ์ฌ์ง ์์ผ๋ฉด ์ฒญ๊ตฌ ์์ฒด๊ฐ ์ด๋ ค์์. ์ ์งธ, ๋ฐ์ฐ์ฒ ๋ฐ์๋ค๊ณ ๋๋ ๊ฒ ์๋์์. ์ํฉ์ ๋ฐ๋ผ ์ถ๊ฐ ์ฒญ๊ตฌ๊ฐ ๊ฐ๋ฅํ ๊ฒฝ์ฐ๊ฐ ์์ต๋๋ค. ์ด๊ฑฐ ๋ชฐ๋์ผ๋ฉด ์ ๋ ๊ทธ๋ฅ ๋์ด๊ฐ์ ๊ฑฐ์์. ์๋ ์ฌ๋๋ง ๋ฐ๋ ๋ณด์๊ธ์ ๋๋ค. ์ ์ฒด ์ฒญ๊ตฌ ๊ณผ์ ์ด๋ ์ฒดํฌ๋ฆฌ์คํธ๋ ๋ธ๋ก๊ทธ์ ์ ๋ฆฌํด๋์ด์. ์ฌ๋ฌ๋ถ์ ์ง์ฐ ๊ฒช์์ ๋ ์ด๋ป๊ฒ ํ์ จ์ด์? ๋๊ธ๋ก ์๋ ค์ฃผ์ธ์.", + "commentBait": "์ฌ๋ฌ๋ถ์ ํญ๊ณตํธ ์ง์ฐ๋์ ๋ ๊ทธ๋ฅ ๋์ด๊ฐ์ จ๋์, ๋ณด์ ์ฒญ๊ตฌํ์ จ๋์?", + "hashtags": [ + "#fyp", + "#foryou", + "#ํญ๊ณต๊ถ์ทจ์", + "#์ง์ฐ๋ณด์", + "#์ฌํํ", + "#ํญ๊ณต๊ถํ๋ถ", + "#ํด์ธ์ฌํ", + "#์๋น์๊ถ๋ฆฌ", + "#์ฌํ๊ฟํ", + "#ํญ๊ณต์ฌ๋ณด์์ฒญ๊ตฌ" + ], + "backgroundMusic": { + "genre": "Lo-fi/Chill Beat", + "mood": "๊ธด์ฅ๊ฐ์์ ํ์ ์ผ๋ก ์ ํ๋๋ ์์ํ ๋นํธ" + }, + "bestPostingTimes": [ + "07:00", + "20:00", + "23:00" + ] + }, + "keyword": "ํญ๊ณต๊ถ ์ทจ์ยท์ง์ฐ ๋ณด์ ์ง์ ์ฒญ๊ตฌํด๋ณด๋ ์๊ฒ ๋ ๊ฒ", + "trendDirection": "stable" + }, + "socialPublished": { + "instagram": { + "skipped": true, + "reason": "SOCIAL_AUTO_PUBLISH=false" + }, + "threads": { + "skipped": true, + "reason": "SOCIAL_AUTO_PUBLISH=false" + }, + "tiktok": { + "skipped": true, + "reason": "SOCIAL_AUTO_PUBLISH=false" + } + } + } + ] + } +] \ No newline at end of file diff --git a/blog-automation/logs/scheduled_keywords.json b/blog-automation/logs/scheduled_keywords.json new file mode 100644 index 0000000000000..912c0e87ad487 --- /dev/null +++ b/blog-automation/logs/scheduled_keywords.json @@ -0,0 +1,200 @@ +{ + "updatedAt": "2026-07-13T00:00:00", + "queue": [ + { + "keyword": "์ฌ๋ฆ๋ฐฉํ ์๋ ๊ต์ก", + "event": "์ฌ๋ฆ๋ฐฉํ์ฑ์๊ธฐ", + "event_date": "2026-08-01", + "scheduledFor": "2026-07-11", + "category": "life", + "priority": 2, + "datalabRatio": 1.0, + "pytrendsRatio": 1.0, + "addedAt": "2026-07-05T00:03:37.197691", + "consumed": true, + "trendScore": 1.0, + "consumedAt": "2026-07-13T00:00:00", + "consumedReason": "blog1_topic_change" + }, + { + "keyword": "์ฌ๋ฆ ์บ ํ ์ถ์ฒ", + "event": "์ฌ๋ฆ๋ฐฉํ์ฑ์๊ธฐ", + "event_date": "2026-08-01", + "scheduledFor": "2026-07-11", + "category": "life", + "priority": 2, + "datalabRatio": 1.0, + "pytrendsRatio": 1.0, + "addedAt": "2026-07-05T00:03:37.197699", + "consumed": true, + "trendScore": 1.0, + "consumedAt": "2026-07-13T00:00:00", + "consumedReason": "blog1_topic_change" + }, + { + "keyword": "๋ฐฉํ ๋์ ํ ์ผ", + "event": "์ฌ๋ฆ๋ฐฉํ์ฑ์๊ธฐ", + "event_date": "2026-08-01", + "scheduledFor": "2026-07-11", + "category": "life", + "priority": 2, + "datalabRatio": 1.0, + "pytrendsRatio": 1.0, + "addedAt": "2026-07-05T00:03:37.197705", + "consumed": true, + "trendScore": 1.0, + "consumedAt": "2026-07-13T00:00:00", + "consumedReason": "blog1_topic_change" + }, + { + "keyword": "์ฌ๋ฆ ๋ ์ ์ถ์ฒ", + "event": "์ฌ๋ฆ๋ฐฉํ์ฑ์๊ธฐ", + "event_date": "2026-08-01", + "scheduledFor": "2026-07-11", + "category": "life", + "priority": 2, + "datalabRatio": 1.0, + "pytrendsRatio": 1.0, + "addedAt": "2026-07-05T00:03:37.197706", + "consumed": true, + "trendScore": 1.0, + "consumedAt": "2026-07-13T00:00:00", + "consumedReason": "blog1_topic_change" + }, + { + "keyword": "์ฅ๋ง ๊ฑด๊ฐ ๊ด๋ฆฌ", + "event": "์ฅ๋ง/ํญ์ผ๋๋น", + "event_date": "2026-07-20", + "scheduledFor": "2026-07-06", + "category": "life", + "priority": 1, + "datalabRatio": 1.0, + "pytrendsRatio": 1.0, + "addedAt": "2026-07-05T00:03:33.697041", + "consumed": true, + "trendScore": 1.0, + "consumedAt": "2026-07-13T00:00:00", + "consumedReason": "blog1_topic_change" + }, + { + "keyword": "ํญ์ผ ๋๋น ๋ฐฉ๋ฒ", + "event": "์ฅ๋ง/ํญ์ผ๋๋น", + "event_date": "2026-07-20", + "scheduledFor": "2026-07-06", + "category": "life", + "priority": 1, + "datalabRatio": 1.0, + "pytrendsRatio": 1.0, + "addedAt": "2026-07-05T00:03:33.697049", + "consumed": true, + "trendScore": 1.0, + "consumedAt": "2026-07-13T00:00:00", + "consumedReason": "blog1_topic_change" + }, + { + "keyword": "์์ด์ปจ ์ ๊ธฐ์ธ ์ ์ฝ", + "event": "์ฅ๋ง/ํญ์ผ๋๋น", + "event_date": "2026-07-20", + "scheduledFor": "2026-07-06", + "category": "life", + "priority": 1, + "datalabRatio": 1.0, + "pytrendsRatio": 1.0, + "addedAt": "2026-07-05T00:03:33.697051", + "consumed": true, + "trendScore": 1.0, + "consumedAt": "2026-07-13T00:00:00", + "consumedReason": "blog1_topic_change" + }, + { + "keyword": "์ฌ๋ฆ ๋๋ฐฉ ๊ฟํ", + "event": "์ฅ๋ง/ํญ์ผ๋๋น", + "event_date": "2026-07-20", + "scheduledFor": "2026-07-06", + "category": "life", + "priority": 1, + "datalabRatio": 1.0, + "pytrendsRatio": 1.0, + "addedAt": "2026-07-05T00:03:33.697052", + "consumed": true, + "trendScore": 1.0, + "consumedAt": "2026-07-13T00:00:00", + "consumedReason": "blog1_topic_change" + }, + { + "keyword": "2026 ์ฌ๋ฆ๋ฐฉํ ์๋ ๊ต์ก ํ๊ธฐ ์ด์ ๋ฆฌ", + "event": "์ฌ๋ฆ๋ฐฉํ์ฑ์๊ธฐ", + "event_date": "2026-08-01", + "scheduledFor": "2026-07-11", + "category": "life", + "priority": 1, + "datalabRatio": 1.0, + "pytrendsRatio": 1.0, + "addedAt": "2026-07-11T23:57:26.676649", + "consumed": true, + "trendScore": 1.0, + "consumedAt": "2026-07-13T00:00:00", + "consumedReason": "blog1_topic_change" + }, + { + "keyword": "์ฌ๋ฆ ์บ ํ ์ถ์ฒ ์ง์ ์ฐธ๊ฐ ์์ง ๋น๊ต", + "event": "์ฌ๋ฆ๋ฐฉํ์ฑ์๊ธฐ", + "event_date": "2026-08-01", + "scheduledFor": "2026-07-11", + "category": "life", + "priority": 1, + "datalabRatio": 1.0, + "pytrendsRatio": 1.0, + "addedAt": "2026-07-11T23:57:26.676659", + "consumed": true, + "trendScore": 1.0, + "consumedAt": "2026-07-13T00:00:00", + "consumedReason": "blog1_topic_change" + }, + { + "keyword": "๋ฐฉํ ๋์ ํ ์ผ ์ ๋ ดํ๊ฒ ์ฆ๊ธฐ๋ ๋ฐฉ๋ฒ", + "event": "์ฌ๋ฆ๋ฐฉํ์ฑ์๊ธฐ", + "event_date": "2026-08-01", + "scheduledFor": "2026-07-11", + "category": "life", + "priority": 1, + "datalabRatio": 1.0, + "pytrendsRatio": 1.0, + "addedAt": "2026-07-11T23:57:26.676662", + "consumed": true, + "trendScore": 1.0, + "consumedAt": "2026-07-13T00:00:00", + "consumedReason": "blog1_topic_change" + }, + { + "keyword": "2026 ์ฌ๋ฆ ๋ ์ ์ถ์ฒ ๋์ ๋ฆฌ์คํธ ํ๊ธฐ", + "event": "์ฌ๋ฆ๋ฐฉํ์ฑ์๊ธฐ", + "event_date": "2026-08-01", + "scheduledFor": "2026-07-11", + "category": "life", + "priority": 1, + "datalabRatio": 1.0, + "pytrendsRatio": 1.0, + "addedAt": "2026-07-11T23:57:26.676664", + "consumed": true, + "trendScore": 1.0, + "consumedAt": "2026-07-13T00:00:00", + "consumedReason": "blog1_topic_change" + }, + { + "keyword": "์ฌ๋ฆ๋ฐฉํ ์๋ ๊ต์ก ํ๋ก๊ทธ๋จ ์ถ์ฒ ๋ฐฉ๋ฒ", + "event": "์ฌ๋ฆ๋ฐฉํ์ฑ์๊ธฐ", + "event_date": "2026-08-01", + "scheduledFor": "2026-07-11", + "category": "life", + "priority": 1, + "datalabRatio": 1.0, + "pytrendsRatio": 1.0, + "addedAt": "2026-07-11T23:57:26.676666", + "consumed": true, + "trendScore": 1.0, + "consumedAt": "2026-07-13T00:00:00", + "consumedReason": "blog1_topic_change" + } + ] +} \ No newline at end of file diff --git a/blog-automation/logs/series.json b/blog-automation/logs/series.json new file mode 100644 index 0000000000000..330fc8062a929 --- /dev/null +++ b/blog-automation/logs/series.json @@ -0,0 +1,420 @@ +[ + { + "series_id": "feff558d", + "series_title": "SBS ๋๋ผ๋ง ๊น๋ถ์ฅ ํ์ฐจ๋ณ ๋ฆฌ๋ทฐ (7~10ํ)", + "series_label": "๋๋ผ๋ง๋ฆฌ๋ทฐ", + "drama_label": "SBS-๋๋ผ๋ง-๊น๋ถ์ฅ", + "series_description": "์ง์ ์์ฒญํ SBS ๋๋ผ๋ง ๊น๋ถ์ฅ 7~10ํ ํ์ฐจ๋ณ ์์ง ๋ฆฌ๋ทฐ", + "drama_name": "SBS ๋๋ผ๋ง ๊น๋ถ์ฅ", + "keyword": "SBS ๋๋ผ๋ง ๊น๋ถ์ฅ", + "episodes": [ + { + "episode": 1, + "drama_episode": 7, + "title": "[7ํ] SBS ๋๋ผ๋ง ๊น๋ถ์ฅ 7ํ ๋ฆฌ๋ทฐ โ ์ค๊ฑฐ๋ฆฌยท๋ช ์ฅ๋ฉด ์ ๋ฆฌ", + "focus": "SBS ๋๋ผ๋ง ๊น๋ถ์ฅ 7ํ ๋ฆฌ๋ทฐ: ์ค๊ฑฐ๋ฆฌ ํต์ฌ ์์ฝ(์คํฌ ์ฃผ์ ์๋ด ํฌํจ), ๋ช ์ฅ๋ฉดยท๋ช ๋์ฌ, ๋ฐฐ์ฐ ์ฐ๊ธฐ ํ๊ฐ, ๋ค์ ํ ์์ ํฌ์ธํธ", + "search_keyword": "SBS ๋๋ผ๋ง ๊น๋ถ์ฅ 7ํ ๋ฆฌ๋ทฐ", + "status": "rejected_policy", + "post_id": null, + "blogger_url": null + }, + { + "episode": 2, + "drama_episode": 8, + "title": "[8ํ] SBS ๋๋ผ๋ง ๊น๋ถ์ฅ 8ํ ๋ฆฌ๋ทฐ โ ์ค๊ฑฐ๋ฆฌยท๋ช ์ฅ๋ฉด ์ ๋ฆฌ", + "focus": "SBS ๋๋ผ๋ง ๊น๋ถ์ฅ 8ํ ๋ฆฌ๋ทฐ: ์ค๊ฑฐ๋ฆฌ ํต์ฌ ์์ฝ(์คํฌ ์ฃผ์ ์๋ด ํฌํจ), ๋ช ์ฅ๋ฉดยท๋ช ๋์ฌ, ๋ฐฐ์ฐ ์ฐ๊ธฐ ํ๊ฐ, ๋ค์ ํ ์์ ํฌ์ธํธ", + "search_keyword": "SBS ๋๋ผ๋ง ๊น๋ถ์ฅ 8ํ ๋ฆฌ๋ทฐ", + "status": "rejected_policy", + "post_id": null, + "blogger_url": null + }, + { + "episode": 3, + "drama_episode": 9, + "title": "[9ํ] SBS ๋๋ผ๋ง ๊น๋ถ์ฅ 9ํ ๋ฆฌ๋ทฐ โ ์ค๊ฑฐ๋ฆฌยท๋ช ์ฅ๋ฉด ์ ๋ฆฌ", + "focus": "SBS ๋๋ผ๋ง ๊น๋ถ์ฅ 9ํ ๋ฆฌ๋ทฐ: ์ค๊ฑฐ๋ฆฌ ํต์ฌ ์์ฝ(์คํฌ ์ฃผ์ ์๋ด ํฌํจ), ๋ช ์ฅ๋ฉดยท๋ช ๋์ฌ, ๋ฐฐ์ฐ ์ฐ๊ธฐ ํ๊ฐ, ๋ค์ ํ ์์ ํฌ์ธํธ", + "search_keyword": "SBS ๋๋ผ๋ง ๊น๋ถ์ฅ 9ํ ๋ฆฌ๋ทฐ", + "status": "scheduled", + "post_id": null, + "blogger_url": null, + "air_date": "2026-07-24", + "scheduled_date": "2026-07-25" + }, + { + "episode": 4, + "drama_episode": 10, + "title": "[10ํ] SBS ๋๋ผ๋ง ๊น๋ถ์ฅ 10ํ ๋ฆฌ๋ทฐ โ ์ค๊ฑฐ๋ฆฌยท๋ช ์ฅ๋ฉด ์ ๋ฆฌ", + "focus": "SBS ๋๋ผ๋ง ๊น๋ถ์ฅ 10ํ ๋ฆฌ๋ทฐ: ์ค๊ฑฐ๋ฆฌ ํต์ฌ ์์ฝ(์คํฌ ์ฃผ์ ์๋ด ํฌํจ), ๋ช ์ฅ๋ฉดยท๋ช ๋์ฌ, ๋ฐฐ์ฐ ์ฐ๊ธฐ ํ๊ฐ, ๋ค์ ํ ์์ ํฌ์ธํธ", + "search_keyword": "SBS ๋๋ผ๋ง ๊น๋ถ์ฅ 10ํ ๋ฆฌ๋ทฐ", + "status": "scheduled", + "post_id": null, + "blogger_url": null, + "air_date": "2026-07-25", + "scheduled_date": "2026-07-26" + } + ], + "total_episodes": 4, + "created_at": "2026-07-19T12:08:10.757998", + "status": "scheduled_wait", + "type": "drama_episode_review", + "start_episode": 7, + "broadcast_info": { + "total_episodes": 10, + "air_schedule": "๊ธ์์ผยทํ ์์ผ", + "latest_aired_episode": 8, + "first_air_date": "2026-06-26", + "platform": "SBS", + "confidence": "high" + }, + "blog_id": "blog1", + "blog_name": "HOGU What?" + }, + { + "series_id": "34ee5b39", + "series_title": "SBS ๋๋ผ๋ง ๊น๋ถ์ฅ ํ์ฐจ๋ณ ๋ฆฌ๋ทฐ (7~10ํ)", + "series_label": "๋๋ผ๋ง๋ฆฌ๋ทฐ", + "drama_label": "SBS-๋๋ผ๋ง-๊น๋ถ์ฅ", + "series_description": "์ง์ ์์ฒญํ SBS ๋๋ผ๋ง ๊น๋ถ์ฅ 7~10ํ ํ์ฐจ๋ณ ์์ง ๋ฆฌ๋ทฐ", + "drama_name": "SBS ๋๋ผ๋ง ๊น๋ถ์ฅ", + "keyword": "SBS ๋๋ผ๋ง ๊น๋ถ์ฅ", + "episodes": [ + { + "episode": 1, + "drama_episode": 7, + "title": "[7ํ] SBS ๋๋ผ๋ง ๊น๋ถ์ฅ 7ํ ๋ฆฌ๋ทฐ โ ์ค๊ฑฐ๋ฆฌยท๋ช ์ฅ๋ฉด ์ ๋ฆฌ", + "focus": "SBS ๋๋ผ๋ง ๊น๋ถ์ฅ 7ํ ๋ฆฌ๋ทฐ: ์ค๊ฑฐ๋ฆฌ ํต์ฌ ์์ฝ(์คํฌ ์ฃผ์ ์๋ด ํฌํจ), ๋ช ์ฅ๋ฉดยท๋ช ๋์ฌ, ๋ฐฐ์ฐ ์ฐ๊ธฐ ํ๊ฐ, ๋ค์ ํ ์์ ํฌ์ธํธ", + "search_keyword": "SBS ๋๋ผ๋ง ๊น๋ถ์ฅ 7ํ ๋ฆฌ๋ทฐ", + "status": "pending_review", + "post_id": null, + "blogger_url": null + }, + { + "episode": 2, + "drama_episode": 8, + "title": "[8ํ] SBS ๋๋ผ๋ง ๊น๋ถ์ฅ 8ํ ๋ฆฌ๋ทฐ โ ์ค๊ฑฐ๋ฆฌยท๋ช ์ฅ๋ฉด ์ ๋ฆฌ", + "focus": "SBS ๋๋ผ๋ง ๊น๋ถ์ฅ 8ํ ๋ฆฌ๋ทฐ: ์ค๊ฑฐ๋ฆฌ ํต์ฌ ์์ฝ(์คํฌ ์ฃผ์ ์๋ด ํฌํจ), ๋ช ์ฅ๋ฉดยท๋ช ๋์ฌ, ๋ฐฐ์ฐ ์ฐ๊ธฐ ํ๊ฐ, ๋ค์ ํ ์์ ํฌ์ธํธ", + "search_keyword": "SBS ๋๋ผ๋ง ๊น๋ถ์ฅ 8ํ ๋ฆฌ๋ทฐ", + "status": "pending_review", + "post_id": null, + "blogger_url": null + }, + { + "episode": 3, + "drama_episode": 9, + "title": "[9ํ] SBS ๋๋ผ๋ง ๊น๋ถ์ฅ 9ํ ๋ฆฌ๋ทฐ โ ์ค๊ฑฐ๋ฆฌยท๋ช ์ฅ๋ฉด ์ ๋ฆฌ", + "focus": "SBS ๋๋ผ๋ง ๊น๋ถ์ฅ 9ํ ๋ฆฌ๋ทฐ: ์ค๊ฑฐ๋ฆฌ ํต์ฌ ์์ฝ(์คํฌ ์ฃผ์ ์๋ด ํฌํจ), ๋ช ์ฅ๋ฉดยท๋ช ๋์ฌ, ๋ฐฐ์ฐ ์ฐ๊ธฐ ํ๊ฐ, ๋ค์ ํ ์์ ํฌ์ธํธ", + "search_keyword": "SBS ๋๋ผ๋ง ๊น๋ถ์ฅ 9ํ ๋ฆฌ๋ทฐ", + "status": "pending_review", + "post_id": null, + "blogger_url": null + }, + { + "episode": 4, + "drama_episode": 10, + "title": "[10ํ] SBS ๋๋ผ๋ง ๊น๋ถ์ฅ 10ํ ๋ฆฌ๋ทฐ โ ์ค๊ฑฐ๋ฆฌยท๋ช ์ฅ๋ฉด ์ ๋ฆฌ", + "focus": "SBS ๋๋ผ๋ง ๊น๋ถ์ฅ 10ํ ๋ฆฌ๋ทฐ: ์ค๊ฑฐ๋ฆฌ ํต์ฌ ์์ฝ(์คํฌ ์ฃผ์ ์๋ด ํฌํจ), ๋ช ์ฅ๋ฉดยท๋ช ๋์ฌ, ๋ฐฐ์ฐ ์ฐ๊ธฐ ํ๊ฐ, ๋ค์ ํ ์์ ํฌ์ธํธ", + "search_keyword": "SBS ๋๋ผ๋ง ๊น๋ถ์ฅ 10ํ ๋ฆฌ๋ทฐ", + "status": "pending_review", + "post_id": null, + "blogger_url": null + } + ], + "total_episodes": 4, + "created_at": "2026-07-19T10:06:43.040949", + "status": "completed", + "type": "drama_episode_review", + "start_episode": 7, + "blog_id": "blog2", + "blog_name": "HOGU ์ฌํ,์คํฌ์ธ ,์ฐ์" + }, + { + "series_title": "๊น๋ถ์ฅ ๋๋ผ๋ง ๋ฆฌ๋ทฐ ์๋ฆฌ์ฆ", + "series_label": "๋๋ผ๋ง๋ฆฌ๋ทฐ", + "drama_label": "๊น๋ถ์ฅ", + "series_description": "์ง์ ๋ณธ ์์ฒญ์๊ฐ ์์งํ๊ฒ ํ์ด๋ณด๋ ๊น๋ถ์ฅ ์ฒซ์ธ์๋ถํฐ ๊ฒฐ๋ง๊น์ง ๋ฆฌ๋ทฐ", + "drama_name": "๊น๋ถ์ฅ", + "episodes": [ + { + "episode": 1, + "title": "๊น๋ถ์ฅ ์ฒซ์ธ์ ์์ง ๋ฆฌ๋ทฐ", + "focus": "์ฅ๋ฅดยท๋ถ์๊ธฐ ์์ฃผ ์์ฒญ ์ ์ฐธ๊ณ ํฌ์ธํธ", + "search_keyword": "๊น๋ถ์ฅ ์ฒซ์ธ์ ๋ฆฌ๋ทฐ", + "status": "pending_review", + "post_id": null, + "blogger_url": null + }, + { + "episode": 2, + "title": "๊น๋ถ์ฅ ๋ฑ์ฅ์ธ๋ฌผ ๊ด๊ณ๋ ๋ถ์", + "focus": "์ธ๋ฌผ ์ฌ์ธต ๋ถ์๊ณผ ๋ฐฐ์ฐ ์ฐ๊ธฐ๋ ฅ ํ๊ฐ", + "search_keyword": "๊น๋ถ์ฅ ๋ฑ์ฅ์ธ๋ฌผ ๋ถ์", + "status": "done", + "post_id": "9017707235892145668", + "blogger_url": "https://www.hoguwhat.com/2026/07/2.html" + }, + { + "episode": 3, + "title": "๊น๋ถ์ฅ ๊ฒฐ๋ง ์ดํ ๋ณ์ ๋ฆฌ๋ทฐ", + "focus": "๊ฒฐ๋ง ์ดํยทOSTยท์ ์ฌ์ ์ถ์ฒยท๋ณ์ ", + "search_keyword": "๊น๋ถ์ฅ ๊ฒฐ๋ง ์ดํ", + "status": "pending_review", + "post_id": null, + "blogger_url": null + } + ], + "series_id": "8aee69bf", + "keyword": "๊น๋ถ์ฅ", + "total_episodes": 3, + "created_at": "2026-07-18T22:57:42.445830", + "status": "completed", + "type": "drama_review", + "blog_id": "blog1" + }, + { + "series_title": "์ผ์ฑ์ ์ ์ฃผ๊ฐ ์ ๋ง 2026 ์ค์ ๊ณผ ์ฃผ์ฃผํ์ ์ง์ ํํค์น ๋ถ์ ์๋ฆฌ์ฆ", + "series_label": "์ผ์ฑ์ ์-์ฃผ๊ฐ์ ๋ง", + "series_description": "์ผ์ฑ์ ์ ์ค์ ๋ฐํ์ ๋ฐฐ๋นยท์์ฌ์ฃผ ์๊ฐ ๊ณต์๋ฅผ ์ง์ ์ฐพ์๋ณด๋ฉฐ ์ ๋ฆฌํ ๊ฐ์ธ ํฌ์์ ๊ด์ ์ ์ค์ฉ ์ ๋ฆฌ", + "series_type": "finance_news", + "episodes": [ + { + "episode": 1, + "title": "[1ํธ] ์ผ์ฑ์ ์ ์ฃผ๊ฐ ์ ์ ๊ฒฝ์ฐ์ด๋ ์ง์ฅ์ธ ์์ ", + "focus": "์ค์ ๋ถ์ง ๋ด์ค ๋ณด๊ณ ์ง์ ๊ณต์ ํ์ธํ ๊ณ๊ธฐ", + "search_keyword": "์ผ์ฑ์ ์ 2026 ์ค์ ์ ๋ง ์ฃผ๊ฐ", + "status": "done", + "post_id": "8855088825526610093", + "blogger_url": "https://hoguasset.blogspot.com/2026/07/2026_0978502205.html" + }, + { + "episode": 2, + "title": "[2ํธ] ์ผ์ฑ์ ์ ์ฃผ์ฃผํ์ ์ ์ฑ ์์ ์ ๋ฆฌ", + "focus": "๋ฐฐ๋น๊ธยท์์ฌ์ฃผ ์๊ฐ ๊ณต์ ๋ด์ฉ๊ณผ ๊ณ์ฐ ์์", + "search_keyword": "์ผ์ฑ์ ์ ๋ฐฐ๋น๊ธ ์์ฌ์ฃผ ์๊ฐ 2026", + "status": "pending_review", + "post_id": null, + "blogger_url": null + }, + { + "episode": 3, + "title": "[3ํธ] ์ผ์ฑ์ ์ ๊ณต์ ์ง์ ๋ถ์ํด๋ณธ ํ๊ธฐ", + "focus": "์ค์ ๋ฐํ ์๋ฃ ์ง์ ๋ถ์ ํ ์ฃผ์์ฌํญ ์ด์ ๋ฆฌ", + "search_keyword": "์ผ์ฑ์ ์ ์ค์ ๋ฐํ ๊ณต์ ๋ถ์ ๋ฐฉ๋ฒ", + "status": "pending_review", + "post_id": null, + "blogger_url": null + } + ], + "series_id": "99072670", + "keyword": "์ผ์ฑ์ ์ ์ฃผ๊ฐ ์ ๋ง 2026 ์ค์ ๊ณผ ์ฃผ์ฃผ ํ์ ๋ถ์", + "total_episodes": 3, + "created_at": "2026-07-18T11:19:35.269599", + "status": "completed", + "blog_id": "blog3", + "blog_name": "๊ธ์ตNEWS" + }, + { + "series_title": "๊น๋ถ์ฅ ๋๋ผ๋ง ๋ฆฌ๋ทฐ ์๋ฆฌ์ฆ", + "series_label": "๋๋ผ๋ง๋ฆฌ๋ทฐ", + "drama_label": "๊น๋ถ์ฅ", + "series_description": "๊ด๊ณ ์๋ ์ง์ ์์ฒญ์์ ์์ง ํ๊ธฐ, ์ฒซ์ธ์๋ถํฐ ๊ฒฐ๋ง ์ดํ๊น์ง 3ํธ ์๊ฒฐ ๋ฆฌ๋ทฐ", + "drama_name": "๊น๋ถ์ฅ", + "episodes": [ + { + "episode": 1, + "title": "[1ํธ] ๊น๋ถ์ฅ 2026 ์ฒซ์ธ์ ์์ง ๋ฆฌ๋ทฐ, ๋ณผ๋งํ ๊น", + "focus": "์ฅ๋ฅดยท๋ถ์๊ธฐยท์์ฒญ ์ ์ฒดํฌํฌ์ธํธ (์คํฌ ์ต์ํ)", + "search_keyword": "๊น๋ถ์ฅ ์ฒซ์ธ์ ๋ฆฌ๋ทฐ", + "status": "pending_review", + "post_id": null, + "blogger_url": null + }, + { + "episode": 2, + "title": "[2ํธ] ๊น๋ถ์ฅ ๋ฑ์ฅ์ธ๋ฌผ ๋ถ์๊ณผ ๋ฐฐ์ฐ ์ฐ๊ธฐ๋ ฅ ํ๊ฐ 2026", + "focus": "์ธ๋ฌผ ๊ด๊ณ๋์ ๋ฐฐ์ฐ๋ณ ์ฐ๊ธฐ๋ ฅ ์์ง ํ๊ฐ", + "search_keyword": "๊น๋ถ์ฅ ๋ฑ์ฅ์ธ๋ฌผ ๋ถ์", + "status": "pending_review", + "post_id": null, + "blogger_url": null + }, + { + "episode": 3, + "title": "[3ํธ] ๊น๋ถ์ฅ ๊ฒฐ๋ง ์ดํ, OSTยท์ ์ฌ์ ์ถ์ฒ 2026", + "focus": "๊ฒฐ๋ง ์คํฌ ์ดํ, OST ์ถ์ฒ, ๋ณ์ ํ๊ฐ", + "search_keyword": "๊น๋ถ์ฅ ๊ฒฐ๋ง ์ดํ ๋ณ์ ", + "status": "pending_review", + "post_id": null, + "blogger_url": null + } + ], + "series_id": "5c196508", + "keyword": "๊น๋ถ์ฅ", + "total_episodes": 3, + "created_at": "2026-07-11T14:30:11.392614", + "status": "completed", + "type": "drama_review", + "blog_id": "blog1" + }, + { + "series_title": "์ฃผํ๋ด๋ณด๋์ถ ๊ธ๋ฆฌ ์ต์ ์ํ 2026 ์ง์ ๋ฐํ ํ์ ๋น๊ต ์์ ์ ๋ฆฌ ์๋ฆฌ์ฆ", + "series_label": "์ฃผํ๋ด๋ณด๋์ถ-๊ธ๋ฆฌ๋น๊ต", + "series_description": "๋์ถ ๊ฐ์ํ๊ธฐ ๊ณ ๋ฏผ์์ ์์ํด ์ํ 5๊ณณ ์ง์ ๋ฐํ ํ์ ๊ธ๋ฆฌ ๋น๊ตํ๊ณ ์ ์ฒญ๊น์ง ํด๋ณธ ์ค์ ๊ธฐ๋ก", + "series_type": "finance_news", + "episodes": [ + { + "episode": 1, + "title": "[1ํธ] ๋์ถ์ด์ ๊ณ ์ง์ ๋ณด๊ณ ๋๋ผ์ ๊ฐ์ํ๊ธฐ๋ก ๊ฒฐ์ฌํ ์ด์ ", + "focus": "๊ธ๋ฆฌ ์ธ์์ ๋๋ผ ๋ํ๋์ถ ์์๋ณด๊ฒ ๋ ๊ณ๊ธฐ", + "search_keyword": "์ฃผํ๋ด๋ณด๋์ถ ๊ฐ์ํ๊ธฐ 2026 ๊ธ๋ฆฌ", + "status": "done", + "post_id": "6846998875445914539", + "blogger_url": "https://hoguasset.blogspot.com/2026/07/1-2026_02026356980.html" + }, + { + "episode": 2, + "title": "[2ํธ] ์ํ 5๊ณณ ์ง์ ๋ฐํ ํ์๋ณธ ๊ธ๋ฆฌ ๋น๊ต ์์ ์ ๋ฆฌ", + "focus": "์ํ๋ณ ๊ธ๋ฆฌยท์ฐ๋์กฐ๊ฑดยท๊ณ์ฐ ์์ ๋น๊ต", + "search_keyword": "์ฃผํ๋ด๋ณด๋์ถ ๊ธ๋ฆฌ๋น๊ต ์ํ๋ณ 2026", + "status": "pending_review", + "post_id": null, + "blogger_url": null + }, + { + "episode": 3, + "title": "[3ํธ] ์ง์ ๊ฐ์ํ๋ณธ ํ๊ธฐ์ ์ํ ์ ํ ์ ์ฃผ์์ฌํญ ์ด์ ๋ฆฌ", + "focus": "์ค์ ์ ์ฒญ ํ๊ธฐ ๋ฐ ์ถ์ฒ ๋์ ์ ๋ฆฌ", + "search_keyword": "์ฃผํ๋ด๋ณด๋์ถ ๋ํ ํ๊ธฐ 2026", + "status": "pending_review", + "post_id": null, + "blogger_url": null + } + ], + "series_id": "73a3fbb5", + "keyword": "์ฃผํ๋ด๋ณด๋์ถ ๊ธ๋ฆฌ ์ต์ ์ํ 2026 ์ง์ ๋ฐํ ํ์ ๋น๊ต", + "total_episodes": 3, + "created_at": "2026-07-10T07:00:26.615986", + "status": "completed", + "blog_id": "blog3", + "blog_name": "๊ธ์ตNEWS" + }, + { + "series_title": "๋๋ผ๋ง ์ฐธ๊ต์ก ์ ์ฃผํํ๊ณ ๋์์ผ ๋ณด์ธ ๊ฒ๋ค", + "series_label": "๋๋ผ๋ง-์ฐธ๊ต์ก", + "series_description": "๊ทธ๋ฅ ์ฌ๋ฐ๊ฒ ๋ค ์ถ์ด ํ์๋ค๊ฐ ํ์ฐจ๋ง๋ค ๋ฉ์ถ๊ณ ์๊ฐํ๊ฒ ๋ ๋๋ผ๋ง. ๋ณด๊ณ ๋์ ๋ฌ๋ผ์ง ์์ ์ ์์งํ๊ฒ ์๋๋ค.", + "episodes": [ + { + "episode": 1, + "title": "[1ํธ] ์ฐธ๊ต์ก, ๋ณ์๊ฐ ์์ด ๋ดค๋ค๊ฐ 1ํ์ ๋ฉ์ถ ์ด์ ", + "focus": "๊ธฐ๋ ์์ด ์์ํ๋ค๊ฐ ์ถฉ๊ฒฉ๋ฐ์ ์ฒซ ๊ฒฝํ", + "search_keyword": "๋๋ผ๋ง ์ฐธ๊ต์ก 1ํ ์ค๊ฑฐ๋ฆฌ ํ๊ธฐ", + "status": "upload_failed", + "post_id": null, + "blogger_url": null + }, + { + "episode": 2, + "title": "[2ํธ] ์ฐธ๊ต์ก์ด ๋ถํธํ ์ด์ , ๊ทธ๊ฒ ํต์ฌ์ด์๋ค", + "focus": "๋ถํธํจ์ ์ ์ฒด๋ฅผ ํ๊ณ ๋ค๋ฉฐ ๋ฐ๊ฒฌํ ์ฐ์ถ ์๋", + "search_keyword": "๋๋ผ๋ง ์ฐธ๊ต์ก ๋ ผ๋ ๋ถํธํ ์ด์ ํด์", + "status": "upload_failed", + "post_id": null, + "blogger_url": null + }, + { + "episode": 3, + "title": "[3ํธ] ์ฐธ๊ต์ก ๋ค ๋ณด๊ณ ๋ด๋ฆฐ ์์งํ ๊ฒฐ๋ก ๊ณผ ์ถ์ฒ ๊ธฐ์ค", + "focus": "์ดํ๊ณผ '์ด๋ฐ ์ฌ๋์๊ฒ๋ง ์ถ์ฒ' ์ค์ ๊ธฐ์ค", + "search_keyword": "๋๋ผ๋ง ์ฐธ๊ต์ก ์ดํ ๋ณผ๋งํ๊ฐ ์ถ์ฒ", + "status": "upload_failed", + "post_id": null, + "blogger_url": null + } + ], + "series_id": "bb7ed210", + "keyword": "๋๋ผ๋ง ์ฐธ๊ต์ก", + "total_episodes": 3, + "created_at": "2026-06-28T14:02:57.268569", + "status": "completed", + "auto_fixed_at": "2026-07-01T12:46:07.146198" + }, + { + "series_title": "SKํ์ด๋์ค ์ฃผ๊ฐ, ์ง์ ๋ฌผ๋ ค๋ณด๊ณ ๊ณต๋ถํ 3ํธ ์๋ฆฌ์ฆ", + "series_label": "SKํ์ด๋์ค-์ฃผ๊ฐ์ ๋ง-์ค์ ๊ธฐ๋ก", + "series_description": "๋ฐ๋์ฒด ์ฌ์ดํด์ ๋ฌผ๋ ค๋ณธ ๊ฐ์ธ ํฌ์์๊ฐ ์์ค ํ ์ง์ ๊ณต๋ถํ๋ฉฐ ์ ๋ฆฌํ SKํ์ด๋์ค ์ฃผ๊ฐ ๋ถ์ ์ค์ ๊ธฐ๋ก", + "episodes": [ + { + "episode": 1, + "title": "[1ํธ] SKํ์ด๋์ค ๋ฏฟ๊ณ ์๋ค๊ฐ -30% ๋ง์ ๋ ์ ๊ธฐ๋ก", + "focus": "HBM ๊ธฐ๋๊ฐ์ ๋ฌผ๋ ธ๋ ์คํจ ๊ฒฝํ๊ณผ ์ฒซ ๊นจ๋ฌ์", + "search_keyword": "SKํ์ด๋์ค ์ฃผ๊ฐ ํ๋ฝ ์ด์ 2025", + "status": "upload_failed", + "post_id": null, + "blogger_url": null + }, + { + "episode": 2, + "title": "[2ํธ] SKํ์ด๋์ค ์ฃผ๊ฐ, ์ค์ ๋ณด๋ค ์ด๊ฒ ๋จผ์ ์์ง์ธ๋ค", + "focus": "DDR5ยทHBM ๊ณ ์ ๊ฐ๊ฒฉ ํ๋ฆ์ด ์ฃผ๊ฐ ์ ํ์งํ์ธ ์ด์ ", + "search_keyword": "SKํ์ด๋์ค HBM ๊ฐ๊ฒฉ ์ฃผ๊ฐ ์๊ด๊ด๊ณ", + "status": "upload_failed", + "post_id": null, + "blogger_url": null + }, + { + "episode": 3, + "title": "[3ํธ] 2026๋ ์ง๊ธ, SKํ์ด๋์ค ์ด ์ฌ๋ ์์งํ ์ฒดํฌ๋ฆฌ์คํธ", + "focus": "3ํธ ๊ณต๋ถ ํ ๋ด๊ฐ ์ค์ ๋ก ์ฐ๋ ๋งค์ ํ๋จ ๊ธฐ์ค ์ ๋ฆฌ", + "search_keyword": "SKํ์ด๋์ค ์ฃผ๊ฐ ์ ๋ง 2026 ํ๋ฐ๊ธฐ ๋งค์ ํ์ด๋ฐ", + "status": "upload_failed", + "post_id": null, + "blogger_url": null + } + ], + "series_id": "a2ada223", + "keyword": "SKํ์ด๋์ค ์ฃผ๊ฐ ์ ๋ง", + "total_episodes": 3, + "created_at": "2026-06-22T21:41:53.993028", + "status": "completed", + "auto_fixed_at": "2026-06-29T04:56:12.706089" + }, + { + "series_title": "์ผ์ฑ์ ์ ์ฃผ๊ฐ ์ง์ ๊ณต๋ถํ๊ณ ํฌ์ํด๋ณด๋ฉฐ ๊นจ๋ฌ์ ๊ฒ๋ค", + "series_label": "์ผ์ฑ์ ์์ฃผ๊ฐ์ ๋ง-์ค์ ํฌ์๊ธฐ๋ก", + "series_description": "์์ต๋ ์์ค๋ ๋ค ๊ฒช์ ๊ฐ์ธํฌ์์๊ฐ ์ผ์ฑ์ ์ ์ฃผ๊ฐ๋ฅผ ์ง์ ๋ถ์ํ๊ณ ๋ฒํฐ๋ฉฐ ๋ฐฐ์ด ์์งํ ์ธ์ฌ์ดํธ ์๋ฆฌ์ฆ", + "episodes": [ + { + "episode": 1, + "title": "[1ํธ] ์ผ์ฑ์ ์ ์ฒ์ ์๋ค๊ฐ ๋ฌผ๋ฆฐ ๋ด๊ฐ ๊ณต๋ถ ์์ํ ์ด์ ", + "focus": "์ฒซ ๋งค์ ์คํจ ๊ณ๊ธฐ๋ก ๋ถ์ ๊ณต๋ถ๋ฅผ ์์ํ ์ค์ ๊ฒฝํ", + "search_keyword": "์ผ์ฑ์ ์ ์ฃผ๊ฐ ํ๋ฝ ์ด์ ๊ฐ์ธํฌ์์ ์ค์", + "status": "upload_failed", + "post_id": null, + "blogger_url": null + }, + { + "episode": 2, + "title": "[2ํธ] 2026๋ ์ง๊ธ, ์ผ์ฑ์ ์ ์ฃผ๊ฐ ๋ฐ๋ฑ ์ ํธ ๋ด๊ฐ ๋ณด๋ ๊ธฐ์ค", + "focus": "HBMยทํ์ด๋๋ฆฌ ์ค์ ํ๋ฆ์ผ๋ก ์ง์ ์ก์ ๋งค๋งค ํ๋จ ๊ธฐ์ค", + "search_keyword": "์ผ์ฑ์ ์ ์ฃผ๊ฐ ๋ฐ๋ฑ ์์ 2026 HBM ํ์ด๋๋ฆฌ", + "status": "upload_failed", + "post_id": null, + "blogger_url": null + }, + { + "episode": 3, + "title": "[3ํธ] ์ผ์ฑ์ ์ 2๋ ๋ณด์ ํ ์์ง ์ดํ๊ณผ ์ง๊ธ ๋ด ์ก์ ", + "focus": "์ฅ๊ธฐ๋ณด์ ์ค์ ์ดํ๊ณผ ์ง๊ธ ๋น์ฅ ํ ์ ์๋ ํ๋จ ๊ธฐ์ค ์ ์", + "search_keyword": "์ผ์ฑ์ ์ ์ฃผ๊ฐ ์ ๋ง 2026 ์ฅ๊ธฐํฌ์ ์ค์ ํ๊ธฐ", + "status": "upload_failed", + "post_id": null, + "blogger_url": null + } + ], + "series_id": "03f55c55", + "keyword": "์ผ์ฑ์ ์ ์ฃผ๊ฐ ์ ๋ง", + "total_episodes": 3, + "created_at": "2026-06-22T15:04:47.030760", + "status": "completed", + "auto_fixed_at": "2026-06-29T04:56:12.706091" + } +] \ No newline at end of file diff --git a/blog-automation/logs/used_images.json b/blog-automation/logs/used_images.json new file mode 100644 index 0000000000000..7b50cb176d092 --- /dev/null +++ b/blog-automation/logs/used_images.json @@ -0,0 +1,371 @@ +{ + "urls": [ + "https://cdn.pgr21.com/pb/data/freedom/1696562381_chart_%281%29.png", + "http://imgnews.naver.net/image/5567/2026/07/06/0000193968_002_20260706110009959.png", + "http://imgnews.naver.net/image/5738/2023/11/07/0000017668_001_20231107152205612.jpg", + "http://imgnews.naver.net/image/5204/2018/01/31/0000001726_001_20180131112525844.jpg", + "http://imgnews.naver.net/image/5226/2024/09/16/0000012851_002_20240916112624910.jpg", + "http://imgnews.naver.net/image/5030/2020/04/30/0000069004_001_20200430100204042.jpg", + "http://imgnews.naver.net/image/014/2025/01/21/0005298997_001_20250121181832483.jpg", + "http://imgnews.naver.net/image/5264/2019/05/21/198952_452764_541_20190521095658103.jpg", + "http://imgnews.naver.net/image/5486/2021/12/08/0000194240_002_20211208174602773.jpg", + "https://i.pinimg.com/736x/99/95/82/9995826a3e4fb6ebd281a5001f8ff5fd.jpg", + "https://img1.daumcdn.net/thumb/R800x0/?fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2Fca92Tt%2FdJMcacb7VK5%2FAAAAAAAAAAAAAAAAAAAAAHDfjz2l9Vy8pNDAJIi846hgP7IEyvNOOXzEiWXKRqi9%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1780239599%26allow_ip%3D%26allow_referer%3D%26signature%3DHlzN2%252B7zLH3SmzC7wu%252BPn2RD7LE%253D", + "https://scs-phinf.pstatic.net/MjAyNjA1MTRfMjQ1/MDAxNzc4NzU2ODM3OTgx.dgW0UvObReEoG0C2aPPEhDj9sweAi7q65m--vtk_mx8g.ufGlXj1Kt1JYSXONfb04cNRWkUtT8JDIE3siT1Si4z4g.PNG/Professional_Korean_insurance_blog_thumbnail_image-1778756746835.png?type=w800", + "http://imgnews.naver.net/image/5190/2020/12/28/0000108961_002_20201228122232595.jpg", + "http://imgnews.naver.net/image/081/2022/06/14/0003280023_001_20220614171201361.jpg", + "https://img1.daumcdn.net/thumb/R1280x0.fjpg/?fname=http://t1.daumcdn.net/brunch/service/user/1Y5c/image/uARrRsWf10HKuvDa3rD9ad7F9XQ.jpg", + "https://cdn2.ppomppu.co.kr/zboard/data3/2013/1210/1386665854_14%B3%E2%C0%DA%BA%B8%B7%E1%BA%F1%B1%B311.png", + "https://img1.daumcdn.net/thumb/R1280x0.fpng/?fname=http://t1.kakaocdn.net/brunch/service/user/iHaY/image/UA8ajEFQx8CfYbo646p2EQUCOvM.png", + "http://imgnews.naver.net/image/5725/2021/06/10/0000105144_001_20210610002019345.png", + "https://scs-phinf.pstatic.net/MjAyNjA1MjJfNTAg/MDAxNzc5NDQxMDkxODcw.rB7jX3-r59fjqW8_TfaMpsyfjz5wLCRKdc6lLs4nAXUg.g_oqOwZ5h0Lc1Ma1cx3_oszDCx1PC7isb61Aqg21sf8g.PNG/Clean_and_modern_thumbnail_design_for_car_insuranc-1779441087763.png?type=w800", + "https://img1.daumcdn.net/thumb/R1280x0.fwebp/?fname=http://t1.daumcdn.net/brunch/service/user/7A7p/image/nV4YcmIBbZpU2EFYu8StzZKFJHk.webp", + "https://velog.velcdn.com/images/cloudopenai/post/eeb60e92-d4a6-4ba1-a3a3-d3721fe26d27/image.png", + "http://imgnews.naver.net/image/001/2025/03/19/AKR20250319149000002_01_i_P4_20250319180517015.jpg", + "http://imgnews.naver.net/image/5137/2024/01/19/0000152271_001_20240119164601268.png", + "http://imgnews.naver.net/image/5002/2024/09/10/0002686457_001_20240910152215975.jpg", + "http://imgnews.naver.net/image/421/2025/03/19/0008138606_001_20250319120036523.jpg", + "https://scs-phinf.pstatic.net/MjAyNjA1MDdfMTIg/MDAxNzc4MTU2NjU4ODgw.rje6dXZS40iW55v-fZyzwaiXIPTxyso32VBNKZ0f3H0g.UUEdVBh3yBkzd4pS9U5vxMDj1cYj3Zo_rdKwvEjY4zcg.PNG/645149-001.png?type=w800", + "https://i.namu.wiki/i/x0M1roi6c6MogQWqu99lDzECY8dWtwxEFnB0v-C-l_wLBZZVTja2IORtr_bdhwV-eKlTJ_hKVU3NURWACJTqSQ.webp", + "https://velog.velcdn.com/images/alstlr206/post/9d3396b9-b802-4b1d-89d1-39bc26bea234/image.jpeg", + "http://imgnews.naver.net/image/5594/2023/11/28/0000039074_001_20231128145602378.png", + "https://img1.kakaocdn.net/thumb/R1280x0.fpng/?fname=http://t1.kakaocdn.net/brunch/service/user/inOi/image/t37vLk4U3bgyiGNx4sP-NBNIhAE.png", + "https://pixabay.com/get/g45a7d407e7aa579f2957b3a9333b8e798d56ccdafac3422c356e88430e362fb765d15cd1f4dacf33350861180573ef7b74b4024637b209a6a9d264903cf4859e_1280.jpg", + "https://pixabay.com/get/g89b044c15b6de82dd067e064b53cfaf6ad3dddc99e196de34d981b57f7b58439a3a1e8a650d6b80f8d8ce09eef1e69e8fce563bb0330334490cb88a25b849647_1280.jpg", + "https://www.mangoboard.net/mgImg/com/template/TPL01192_Card_News_Template_0.jpg", + "http://imgnews.naver.net/image/353/2021/06/19/0000039799_001_20210818172314244.jpg", + "https://pixabay.com/get/g60b674ce0cac53e36f70983949cf56e87ae7ac8730dbe1c057e32d5c0b9c86a179792b4063b5ade823a1e62de106433d6ae28e8de5fdd654bbc2fdf505e24b28_1280.jpg", + "http://imgnews.naver.net/image/5206/2024/08/21/0000097512_001_20240821171612786.jpg", + "http://imgnews.naver.net/image/001/2024/07/10/PYH2024070105510001300_P4_20240710092639522.jpg", + "https://scs-phinf.pstatic.net/MjAyNTA5MDlfMTA0/MDAxNzU3NDA3NzA1Njgy.aWMPIVoesH2qg8BKfEGpDk34gStVVjw3eWssVxJU_lkg.Zdm-MjxTDoG382UG3Fm1eNBd8-GSBDbz_Jqx2sW7nt0g.PNG/MORTGAGE30US_2025-09-09_17-47-53_2f410.png?type=w800", + "https://pixabay.com/get/gf2e458cd3460138f40d30e1f037710b2cf2ac50589d96697042a2ba51b45d2e7ec8d7c2487f4fd6b9e310a2976adbcf74622200c6b139f054c825c389b21ad57_1280.jpg", + "https://pixabay.com/get/g09ce1ffd088f5389c7a683f52f895044ef84f3f67accdcf93c045d2cc77d910d0b078818a3a5ef59749b0ad5826a0bfed3a0e9e6191048b5f230db6b7646c3ea_1280.jpg", + "https://pixabay.com/get/gb03262d2e34d237d9629c03df1d4c688f2686997017636c683bd253d7ace1b07fcc6d9e61ea361bacbedfb6324231c44fbdf7f158eee9b4191901a5ac7bbe30f_1280.jpg", + "https://pixabay.com/get/g3d1f0486dcc11e5eb6a123224b523b52cce4a57d0d08c4c24cafdcf8a89e26e70ae9880be993953d53327345a74454620323fab59056b96157d0738c9234dfe3_1280.jpg", + "https://pixabay.com/get/g023f2005cdfa6e33045d0f571830e4c42fab02de791eddc07610a28225f44956ee31aec430dea3e82fa871976b3ab28be3740644910fb41f5b1ad5ce871193ac_1280.jpg", + "https://pixabay.com/get/g725ffe80a7e387b8f74d64f7fee7a67b1d88b29513e67696c0517890ace86ffeafa68bcf1835446bae8749595e375e0a4d3254930ec3440fcf396e8f392b5e4c_1280.jpg", + "https://pixabay.com/get/g2304eadeb0f27e904df7a4303dd950de1e11a9ef76a75f1d8b1060c917aec7154024970cbdcd29ee25bf096a8b111146886222a4baf24f44ccebd7318a2dc432_1280.jpg", + "http://imgnews.naver.net/image/5002/2015/06/25/20150624000259_0_99_20150625110909.jpg", + "https://pixabay.com/get/g146b688f9dd986801c19e8b28cc550b665882fd9fddc36d7a18d6ec27d453c607d900339d2b46af1c0ba2148d4084ce59931cd6259cd07174ef5fdc143ce136f_1280.jpg", + "https://pixabay.com/get/gdcb211fdd900625158dd2b63c81c2f648ffdf99a20861e304b96008d468fe353dbc2ad4f173143e9a9cd57c0d155e14bb047ad16faa7e8ed70db44c06b416485_1280.jpg", + "https://pixabay.com/get/g2224bb83dd2de685e967fbaf700ab6e9c7fccc294a5aabbd73689bb048ca7673cc246dc668a90200e245fcdd04f453e9c5a395cbd70108a4373ae8d68fcbd044_1280.jpg", + "https://pixabay.com/get/gdcb47ce302d72d2d611e6dc44891852c7bf2f05a502b076cba39f088274d6f7fff38a627324a82dd1116d0638a6ec82ddb2f4edb5acadd18a45112fb20b6db66_1280.jpg", + "https://dthumb-phinf.pstatic.net/?src=%22https://mblogthumb-phinf.pstatic.net/MjAyMzA5MjBfMTYx/MDAxNjk1MTc5MjkzMzU5.weg6nphPXVbVIDUAulEAdiGEyn5YSWSFzQKP0hCOWxUg.ber97JejazwxTlTEaZblU83UV-OTQBXQg52f_M8TJAMg.PNG.hayth0121/%25C4%25AB%25C4%25AB%25BF%25C0%25B9%25F0%25C5%25A9_%25BA%25F1%25BB%25F3%25B1%25DD%25B4%25EB%25C3%25E2_%25281%2529.png?type=w800%22&opts=2&twidth=700&theight=700", + "https://img1.daumcdn.net/thumb/R800x0/?fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2Fb8rxdj%2FbtrtYcFcy4Z%2FAAAAAAAAAAAAAAAAAAAAAGdzfTGwPDKfnw5mJKUy-YI8vIXndyHrWHxxZRWVFayI%2Fimg.jpg%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1782831599%26allow_ip%3D%26allow_referer%3D%26signature%3D6%252BT8CFAGjaS1OAUTv79y1fQeHEw%253D", + "http://imgnews.naver.net/image/5264/2018/09/12/51461_76884_506_20180912115252019.jpg", + "https://pixabay.com/get/ga879b44118cb1ae4dfd46b42e4ff1a0f1a7d561b667d461090b6f085233148e2688f0a0ac60c10a684a0c920f0b0a37fc4d48054ab50c5c4f213a0b7ae60ee77_1280.jpg", + "https://pixabay.com/get/gcc3d86ce4579bb8312adb5c09ef298515046454ab2e975b1585824ebb4127affc6404ca475700223284272ed9b8550e3454806f878cf8f01df98dd7aa1ec1fd2_1280.jpg", + "https://scs-phinf.pstatic.net/MjAyNjA1MDJfMjU3/MDAxNzc3NzAwNDc4MTIy.7CaoID1I1xtH0CFBiHtF0u5w4kMKHC9d9_Et1Sam2zYg.xK8ifUP2dvoYtmKGwlnpdXYyKZ7LXhLehXfOhk4CjI4g.PNG/Comprehensive_income_tax_filing_method_Hometax_tax-1777700473050.png?type=w800", + "https://velog.velcdn.com/images/es_seong/post/22aaa03c-85c5-4916-a5b0-2618e8601303/image.png", + "https://img-api.cboard.net/img_n_nosave.php?image_url=https://kin-phinf.pstatic.net/20250522_267/17478871859738GSBz_JPEG/1747887185960.jpeg", + "https://dthumb-phinf.pstatic.net/?src=%22https://mblogthumb-phinf.pstatic.net/MjAyNDEyMTdfMTc1/MDAxNzM0NDA2MzIwMzEy.DjldFQ82yqcq9XvOEiZ9kTy6XOM27T2_JXkpqtObcP0g.7IW61StxeDwu4wrQrST2AgmpmbnLuLDp1J5WN5xv-bIg.JPEG/IMG_9350.jpg?type=w800%22&opts=2&twidth=700&theight=700", + "https://pixabay.com/get/gc747d445f66c19a707b9cb4ba1777dad5a3626090543ddffaff79b517e364d6a49fd7afabafaf37d68fa3c65dc7cd9f087928a8070d07e34a06a2e012ae8dc12_1280.jpg", + "https://upload.wikimedia.org/wikipedia/commons/b/be/Top_of_Atmosphere.jpg", + "https://pixabay.com/get/g4c9f76dc394e05e6a743c425dad284199245a28b73c8521f69280aad3841f9740c2db2763e65d6401a6930574bed8b5a87a8b2a2f8e2ccd009b33f5dce5af313_1280.jpg", + "https://pixabay.com/get/g2794cc5bb773f874a74d32a0556ef882bee7289eed9ead5ab5b12bba93c849b94271707e12faab142abe3ef838493b7b632e9dd74dc6c87e474a523ef0e494d7_1280.jpg", + "https://upload.wikimedia.org/wikipedia/commons/2/2f/DSB_MZ_1461._DSCN8083.jpg", + "https://pixabay.com/get/g4b7e6f1a923c001900364ba372feb7d843a2985cfeb0087b5b237915551343c64530950bfd4b6e3da2ac38933b5327a262e3d79b0e00c81af7e9c7a5c493028c_1280.jpg", + "https://upload.wikimedia.org/wikipedia/commons/4/45/Culasse_canon_12_ca.1730_Invalides.jpg", + "https://pixabay.com/get/gc9671e3ee1a48e04f6ba39716564e1eb32d35eb14c1e0fc0aeed19700de5390b69e8b5ea16b452dfda8b803e562f95739c68c8745725cad624aeeefed95968d6_1280.jpg", + "https://pixabay.com/get/g801a508b101dde563ffe3c267425fdb0187ae025fcf57e6943b5c86079f99ede3a9e2789b4e79295b911a17649dc344f6969fc19bb33efea5c52f41a4c377840_1280.jpg", + "https://upload.wikimedia.org/wikipedia/commons/e/e8/PF-592379.svg", + "https://pixabay.com/get/g12637f3e4a29ef711e0c6e8cb655fa4448995688300e6964e0c6a5394bbf3f0cb1475e180bda498cc0b03f2b06bc7067a393b0ca89eac22477081780e8a622aa_1280.jpg", + "https://images.unsplash.com/photo-1554224155-8d04cb21cd6c?auto=format&fit=crop&w=720&q=80", + "https://source.unsplash.com/1200x675/?travel%20adventure&sig=1", + "https://upload.wikimedia.org/wikipedia/commons/8/8e/Ch%C3%A2teau_de_Val%C3%A8re_et_Haut_de_Cry_-_juillet_2022.jpg", + "https://drive.google.com/uc?export=view&id=1G_0OdM-1hgnUUEz4XbMY75Vhj8q_NGV-", + "https://source.unsplash.com/1200x675/?lifestyle&sig=1", + "https://upload.wikimedia.org/wikipedia/commons/6/62/%E0%A6%AC%E0%A6%99%E0%A7%8D%E0%A6%97%E0%A6%A6%E0%A6%B0%E0%A7%8D%E0%A6%B6%E0%A6%A8_%E0%A6%A8%E0%A6%AC%E0%A6%AA%E0%A6%B0%E0%A7%8D%E0%A6%AF%E0%A6%BE%E0%A6%AF%E0%A6%BC_%E0%A6%B7%E0%A6%B7%E0%A7%8D%E0%A6%A0_%E0%A6%96%E0%A6%A3%E0%A7%8D%E0%A6%A1.djvu", + "https://upload.wikimedia.org/wikipedia/commons/d/d9/La_pirogue_%C3%A0_balancier.jpg", + "https://pixabay.com/get/gc7063405c76c53b6b8a89b5c57463a782a077a651b0870bfca279424d1c221f0cf3d3bf396636cd4503bd2f56f2bd8c16e86e668eb72a5bef18a56e904884372_1280.jpg", + "https://pixabay.com/get/g513b9c90ae1d6936bc25839179a529b9850ec51d7c027971f52deb66dd3690b15dc364451212c3e46e368211e9d88ecd1a151f5ab1dec820bdd1d6e1c4b996b4_1280.jpg", + "https://images.unsplash.com/photo-1504384308090-c894fdcc538d?auto=format&fit=crop&w=1200&q=80", + "https://source.unsplash.com/1200x675/?3%20RSIMACD&sig=0", + "https://images.unsplash.com/photo-1621905251189-08b45d6a269e?w=900&q=80", + "https://images.unsplash.com/photo-1560523159-4a9692d222f9?auto=format&fit=crop&w=720&q=80", + "https://upload.wikimedia.org/wikipedia/commons/4/43/ISA_Tell_Us_About_Her_2026_Women_In_Sports_Social_media_visuals_05.png", + "https://pixabay.com/get/g6c8f2632e958002800464ca372beb7d843a2985cfeb0087b5b237915551343c64530950bfd4b6e3da2ac38933b5327a262e3d79b0e00c81af7e9c7a5c493028c_1280.jpg", + "https://pixabay.com/get/g787f86c1489e24ac7a565bf3ef8dc987218d43a486d7e07c7f94f8ff6c44a74284305cbfe2bbf4359f54d2efa059f5cc9c625b5b43550e70a73f048be4766a1c_1280.jpg", + "https://pixabay.com/get/g4b2e1a6c1c9e2a5b8f7d3c6a9e0b1d4c5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0_1280.jpg", + "https://pixabay.com/get/g280981c1ad6e89317a7c033acbe91eecf5ff50397c272dd5afc0a8cd2c2240814284003885bbd5bc0de4ab608cdb8d406f1a04e2fff1ea225dd1ef31df47a158_1280.jpg", + "https://pixabay.com/get/gef96f49313582fc9dec515d971573608c2e4d45b21d78592644b8b8d9988d65c69b1669d7bbcd44eeceedc269e16d99f200224feb00b7e2f71b95d0c03c0d53e_1280.jpg", + "https://source.unsplash.com/1200x675/?1%20SK&sig=0", + "https://images.unsplash.com/photo-1519692933481-e162a57d6721?auto=format&fit=crop&w=1200&q=80", + "https://pixabay.com/get/g0f3b8c1e6a2d4f7e9c5a1b3d8f6e2c4a9b7d3f1e5c8a2b6d4f0e3c7a1b9d5f2_1280.jpg", + "https://pixabay.com/get/g2695e7c4b1014ddc1547f6dba4ef1243466cce8f0ce47c7ab13b6ce9d1cf33add5bfe208d87acf03ca42e77ff0194d1233a3dad03dd9b8f5ad5b7f38477970eb_1280.jpg", + "https://pixabay.com/get/g1e2a3c9f4b6d8e0a5c7f1b3d9e2a4c6b8d0e2f4a6c8b0d2e4f6a8c0b2d4e6f8_1280.jpg", + "https://source.unsplash.com/1200x675/?2%202026&sig=0", + "https://pixabay.com/get/g6c5e160e3028024a22640ec73bafdca88bbd049acdaab4a7c9b983e70ba05e90cd41fd80441484c8d0961eeca32185d8add4cb841ca8cb79d36613d1e55a9fc6_1280.jpg", + "https://upload.wikimedia.org/wikipedia/commons/2/2f/Isa_K%C5%8Dts%C5%AB_Kank%C5%8D_HQ.jpg", + "https://pixabay.com/get/gd421a3b4378427cbfe9eb05d07f98485188be9c3396b8aa031cbba10e74dba4a65eb910c8da1e3a5ae1fcdcc4ddc3040f856b08d42cee07ff8dcdcb1fe20b592_1280.jpg", + "https://pixabay.com/get/gdf663f18df7940008e73a8f3f6037ede6eb88b4f419f5f58f4ba44cef8556e713fb73d2fad2dddb35368bf6494e98c7dc74233ec59bb95ee5c0b8d03d407e7b1_1280.jpg", + "https://upload.wikimedia.org/wikipedia/commons/6/6b/Guinness_6_Nazioni_2026-_Italia_vs_Inghilterra-202.jpg", + "https://pixabay.com/get/g706a7bf175927a833417aa5f254ce1b8bd15ba44d4160e55897dceeff36e0bbf89fbff66df5b078df61ac7987d4598f45c5595aeec0ffb126fa3ddf6bdb15364_1280.jpg", + "https://upload.wikimedia.org/wikipedia/commons/e/e0/D%C3%BClmen%2C_Sportzentrum_S%C3%BCd%2C_Parkplatz_--_2026_--_0223.jpg", + "https://source.unsplash.com/1200x675/?insurance%20protection&sig=1", + "https://upload.wikimedia.org/wikipedia/commons/e/ee/Ambigram-8-eight-math-2-1-5-rotation-mirror-high-resolution.gif", + "https://pixabay.com/get/gf1a8c18eb1cf0c5930d2e707d8079980a4fc1a260e39611040759c9b3af1a115a9f0aee8397b27c40c0a85d5ecff31b186047b937136841b820411d04c83070d_1280.jpg", + "https://upload.wikimedia.org/wikipedia/commons/5/5b/Britain%27s_New_Spitfire_44-pf-116-2016-001-ac.jpg", + "https://upload.wikimedia.org/wikipedia/commons/c/c6/Protests_against_the_killing_of_Renee_Good.jpg", + "https://upload.wikimedia.org/wikipedia/commons/c/cc/Giganten_PF_Top.jpg", + "https://upload.wikimedia.org/wikipedia/commons/4/4b/Peter-Magyar-portrait-2026.jpg", + "https://images.unsplash.com/photo-1495562569060-2eec283d3391?w=900&q=80", + "https://upload.wikimedia.org/wikipedia/commons/4/48/Yellowing_of_thorium_lenses.jpg", + "https://source.unsplash.com/1200x675/?travel%20adventure&sig=2", + "https://images.unsplash.com/photo-1647500653839-b7ff40b8f7bd?auto=format&fit=crop&w=900&q=80", + "https://upload.wikimedia.org/wikipedia/commons/e/e4/15-10-25-SXF_Atlasglobal_A321-231_TC-ETF-WMA_2092.jpg", + "https://pixabay.com/get/g2e4f65c9090eafe85ad44e03eb0b8f3860189ce1d17e4befd591ffa5bdd2f4c5a435cbf08713955c9ea51faf9cc3b7f3b85ba581049e45caada2c013b7b6f138_1280.jpg", + "https://source.unsplash.com/1200x675/?insurance%20protection&sig=2", + "https://pixabay.com/get/gc4ead82d178b2842a27c431ca2b4709092a926190d50c4c7faf1a55ac67c9c40bdb45dc2d331ee67b4de640c7eed5fd88808ce1b634db7003ad4f35de24a1b7b_1280.jpg", + "https://upload.wikimedia.org/wikipedia/commons/8/82/Noah_Shebib_%28cropped%29.jpg", + "https://pixabay.com/get/g8a3f21e9d6c47b1a9e2f6d4c8b1e5a7f3c9d2b6e4a8f1c3d5e7b9a2c4d6e8f0a1b3c5d7e9f1a3b5c7d9e1f3a5b7c9d1e3f5a7b9c1d3e5f7a9b1c3d5e7_1280.jpg", + "https://upload.wikimedia.org/wikipedia/commons/b/be/PDB_2gmh_EBI.jpg", + "https://upload.wikimedia.org/wikipedia/commons/1/1f/Do_The_Daniel_a_leading_lifestyle_blog_in_Canada.jpg", + "https://pixabay.com/get/g3a7e160e3028024a22640ec73bafdca88bbd049acdaab4a7c9b983e70ba05e90cd41fd80441484c8d0961eeca32185d8add4cb841ca8cb79d36613d1e55a9fc7_1280.jpg", + "https://upload.wikimedia.org/wikipedia/commons/4/4c/ETF_Belgrade_3.jpg", + "https://source.unsplash.com/1200x675/?3&sig=0", + "https://source.unsplash.com/1200x675/?1&sig=0", + "https://source.unsplash.com/1200x675/?lifestyle&sig=0", + "https://source.unsplash.com/1200x675/?lifestyle&sig=2", + "https://pixabay.com/get/gdd61430d502a8dab8b22171e7276a9cc294a8d1493a87f9f91c569ad5b2888447f3317d298aeefa6dc5678236b9a39be00ea37f9bf49b45a906fb294313b6ed1_1280.jpg", + "https://upload.wikimedia.org/wikipedia/commons/b/be/ETF_logo.svg", + "https://source.unsplash.com/1200x675/?1%20&sig=0", + "https://upload.wikimedia.org/wikipedia/commons/4/4f/MBTA_Kawasaki_BTC-4A_bilevel_coach_upper_level_interior_January_2026.jpg", + "https://source.unsplash.com/1200x675/?2%20MA&sig=0", + "https://source.unsplash.com/1200x675/?insurance%20protection&sig=0", + "https://images.unsplash.com/photo-1593941707882-a5bba14938c7?auto=format&fit=crop&w=900&q=80", + "https://source.unsplash.com/1200x675/?travel%20adventure&sig=0", + "https://pixabay.com/get/gbc18429bcafae73d62b6500d165690de3022776de357ac72428421c9b1378aa4ab016e14e5a47c97aeb47a96c12af733bad49699de02ccc42b45affe33c86238_1280.jpg", + "https://pixabay.com/get/gd331db4310a2b7c67d4a700ba17f6ed616d05221c1b604c6a80b2cccf76ad942f9705ad1b7850d5c8eee92d85739aaac8177ebd496726afa1deeaac5558b1c70_1280.jpg", + "https://upload.wikimedia.org/wikipedia/commons/f/f3/Sinasawat_KDCA_2026.jpg", + "https://images.unsplash.com/photo-1521587760476-6c12a4b040da?auto=format&fit=crop&w=1200&q=60", + "https://pixabay.com/get/g07d0175df710e930b02edaafe310748b111468f3d84bb221ecbaa4cc834e1a42d7665b085ba296f9cd54897fcf9e6b333670b7967cf96b17b96f2a497225cced_1280.jpg", + "https://pixabay.com/get/g4a2f8c1c5e8d0b1c9a3e7f6d8b0c2a1e5f9d7c3b6a8e0d2f4c6b8a0e2d4f6c8_1280.jpg", + "https://pixabay.com/get/g3b7e9f2c1a5d8f6e4c2b0a9d7e5c3b1a9f7d5c3b1a9e7d5c3b1a9f7e5c3b1a9_1280.jpg", + "https://pixabay.com/get/gc727e06252002268b6f234564493c35201497e4c2cdfee59d4d525672e62f53f6443e4169409b330b86c972f6a43fa7781db9b22d1521de57603cf3ff590bee4_1280.jpg", + "https://images.unsplash.com/photo-1617704548623-340376564e68?auto=format&fit=crop&w=900&q=80", + "https://pixabay.com/get/g221ffcad190a466fe29302e1585145ef02a3099251d3d2497fe4381617dccb0356a94105645122825338d314b0df392858dfade8ebc23c5fe8d21309e6a47f24_1280.jpg", + "https://images.unsplash.com/photo-1504198266287-1659872e6590?w=900&q=80", + "https://source.unsplash.com/1200x675/?2&sig=0", + "https://pixabay.com/get/g9ea2b2c73bc281db509cb9d689a4dc7a5015164317786f117446745e1a372bc689f6d4d72f4b32ab298ff7bbb729f0f92358c250c2e016d66617ff02657f07a2_1280.jpg", + "https://source.unsplash.com/1200x675/?4%20&sig=0", + "https://images.unsplash.com/photo-1436491865332-7a61a109cc05?w=1200", + "https://pixabay.com/get/ge6fd1f6f1b99425044f2ba81f9bf52d5878bed7cae06ed3258fa8c688d537d9e8da5715cf98a6a1bcd5466e2b573b133eae3ff10d62f8820495e29f0a5e24fc3_1280.jpg", + "https://pixabay.com/get/g14d1fe8a1cb57faef9c584d29bcd203d663dfb70577e8d685ddcfc15e4399fcdb6f959a2b09a7f4e7be796bc590f424afe571bc3fd3e0c6edef6cbfa773b4643_1280.jpg", + "https://pixabay.com/get/g6536fc9614f08a1408f2bf7068e967550ff2103ab8a8dbd15ac33cfefa686041367851fdfecdbe10f45d02dd66c1ae8be02bdbb54db9f7745a5d0de03907cf1c_1280.jpg", + "https://www.bufs.ac.kr/Fileroom/Board/UPLOAD/10001391/2014/06/02/d9870c97.jpg", + "https://img5.yna.co.kr/etc/graphic/YH/2025/07/31/GYH2025073100100004400_P4.jpg", + "https://i.namu.wiki/i/VSELLfuUd6-SCTL0y_ZZzCiQA-znW7RBCRUoKVwE9icNdRosLWSFG6Fn5o4pN1E6HHMO-2tFksqNnK8iXIdVDQ.webp", + "https://dthumb-phinf.pstatic.net/?src=%22https://mblogthumb-phinf.pstatic.net/MjAyNDA4MDVfMjYy/MDAxNzIyNzgzNjMxOTk0.EU0D0tWCeLuap-pvYnKxMgrATFUrJvm_8hbI4jD-JtEg.R-PlZBk8gjBA3rLhBdAIlUiYhXwtxnZ33luERuMadTAg.JPEG/2024%25A3%25AD08%25A3%25AD05%25A3%25AD00%25A3%25AD00%25A3%25AD24%25A3%25AD397.jpg?type=w800%22&opts=2&twidth=700&theight=700", + "https://img.mimint.co.kr/talk/bbs/2025/05/23/M2505231501547446.webp", + "https://pixabay.com/get/g4b1cfdafda4f8872510906d155c2f174f7c62e80db73d38b7befd9d46873110af6ce96d0a05a7eece13a273ff7323063e825d135083ae2b0a1152101cb1f5ba6_1280.jpg", + "https://pixabay.com/get/gc9b0bb8cc25a24b61bcdc1c506819c263806ae1662791df734e5c9d77847bc20eb24590286d0a15634d6d3b353296a67765bb2c47aeb9508ffde7a8079f4298e_1280.jpg", + "http://imgnews.naver.net/image/311/2026/07/18/0002035230_002_20260718161416412.jpg", + "https://pixabay.com/get/g2aa60e0ea43af4a2eb6803576dc377fb6bb5888dd12a344b06dab3e2e6062f7b1b6908f29f025691abd31f3a502e1242edd585ac2f9cdee7b25f1da0d7660b3d_1280.jpg", + "https://pixabay.com/get/ga5fd9369d8aef6a74545ca96cf1d415c34fb3215f1f43fe887ed95f1a1f8bea708c7b775117715635a52395c38f978a6434021b4cc5de41aabdcf01f863b4834_1280.jpg", + "https://pixabay.com/get/gfd8b6563863be4173ad0e3f77a613c7485461ddb1f8bbd9bcdbef20e601ea30993d2c445ddff0cc88a0abd158b936307585fb1ba005d727a28aeb804219c62a4_1280.jpg", + "https://pixabay.com/get/g89b7559a631ac1b5c6319d4915813d79dffcdba2d53b2ac0931ef4692efddc969beaa14bbb002883c64f3447c757953422c6fe4927416ff4d1ac5ec2f336577e_1280.jpg", + "https://pixabay.com/get/geeb4ac391f7696877f4c22dfde189db84b1373376192e865b1b0b5389ad6035740167fac7b37187b983a8b402af5775eaa8a66d0f6cea71f7dac3f8d0e242b50_1280.jpg", + "https://pixabay.com/get/gfca0c4bb31a52df761bce2b870c1ec67b1ce6304d4c424eb33221e5d1d83c08531e3b2830bcd5ac0aa1b5b3dd15db1da5241b37471a4d1ba43ccbb932751e80d_1280.jpg", + "https://i.ytimg.com/vi/r2I7bXPvlPA/maxresdefault.jpg", + "https://pixabay.com/get/gb1d3e70d2ca82243c03ca1a7173e7bbbc587276b63d64eeedc14c702a7eb195a837331b01a05b7c9e3ee6da7474ca75dc1f8755a66b0aa92dd3066f66208e10e_1280.jpg", + "https://pixabay.com/get/gbba9be75d675db8bcfc953d1e471e8f38bd65a877604a3bb08359fff8b7b7db3b4f9074c8a24f12823a1e648dc0937262af1f59d619be8b57457ded2d2b11039_1280.jpg", + "https://pixabay.com/get/g66cab728ddcd3acdc8baa895d261f00f52331ea59cb3128c15c4a585c3039500a89e8fb4191851ed17db2422c85854185cd0460cf8e88bd971cc15fa78adb69a_1280.jpg", + "https://pixabay.com/get/g8452311148bfbf102b81b6ebbf026f6c8313a09afd1de52333f5fe1c15da09adb1a4e2bc1a0c65a127c95335329497e45ec04b9cda832971404e25311d45f48e_1280.jpg", + "https://pixabay.com/get/g7ec0812793a68fe66b8d0bd880e7cc153cc09b713d350bb0ddc1b5e5f77c6ff3aaaf257e4ffe6f19cc52870554eb853334ece29742eb093f490c1baa8a906a03_1280.jpg", + "https://pixabay.com/get/g822363573ab3c3e4e51912c8543c05260af07b664ee44f1b97e8e571507e44a96f2fd33a2e4ac97a0f0897bbf5365a2ff1a362a972b5c27cd4b0d3e00b2c8917_1280.jpg", + "https://pixabay.com/get/g7f49ee640f6b730f33d7a070155d51c3380be4f91a4386acb9f9f4387fc55cd09faa1a9b223d741167e3c762b04bfcc451d1770cdaa4a68016fa73a60b74a59c_1280.jpg", + "https://pixabay.com/get/g7580b9560f8b7cc45df038094dfbf2fcdf5ce91c778142363a6ddd48b1af11b1764c62e947e5bbbd65622dc359beb65f32dc27c1ed6e3b85c3ddebe914e3e3df_1280.jpg", + "https://pixabay.com/get/g5a02275e4e9924ee43907a840fe750afd8fd2fdf4766a9b0a2c90e5046aee9b7cb26222191ad09d48f6eb02e6544db5ae8c94e165338ad87f7d54a2f71b29c5b_1280.jpg", + "https://pixabay.com/get/gfe2bb765ead39ce7078a295d0810c81e887b5e69bdf3c87418a9c7cfea2bdbdfe546ebee4658ac69b8e37ba9b166ddef191e0811f677fcd4b5cc7145d4d64522_1280.jpg", + "https://pixabay.com/get/gb2fbfe2cd8a5b09b69be7ca53e72b52adb11626338eb6a7da4d8392b528f3899d4d8e2aca4eb36801df2efe5f222f21b1fc6fad0beaf027e0aeed54b488355e7_1280.jpg", + "https://pixabay.com/get/gb93bb6a1f1cdf07d6d1e7f00b701385bf4bf372e8471b5334b590d24587cb44033ebdabb879e10cfae2779c3c59b49883c6007eedc54fa7fa7c78231da115bb8_1280.jpg", + "https://pixabay.com/get/gd2463a9411481b6270d636be5b8583b84a5a49fa15103fcf9d788c7fab34460c99b1112d81171d57349005c67cce619d3f0d8f6db3b54ad4a86ff28d0a51ea07_1280.jpg", + "https://pixabay.com/get/gce311545a73f5f42771130c29441bd28829e63833be18ac6e8b301414ec0fdd04ec853eede09b48f31f3b3b982864142fd53d67ea2c4ebcb531bd4d4e004f2fa_1280.jpg", + "https://pixabay.com/get/gd02b474071fe7b4e13f54cd121c8a862b6b815ac7a0f2b3009872f31527e8f25827934633af54eba0636a555d8091b12c8ef83d8dd7987d8eb542bbde60b9c21_1280.jpg", + "https://pixabay.com/get/g07009f499aac0acf71f03e73eb27d85d33cf409e3dbb1a7ea1831dc34c8088d274b60413fd1d2b4e3f049811ce862d7ad312bf185dd7eacd1af5310c7ed0b411_1280.jpg", + "https://pixabay.com/get/gf5570776f908d22fb610bd45d7e7f86be5bcab145f3750be87f506f6f93d20b6cc078f2943c69dfef962fd551e40d73e64c2b69aa9bd996cb483f5c6e96e76cd_1280.jpg", + "https://pixabay.com/get/g01d0556edd2b3868d7bf94f4593e1ac14727ba6f7116de137984dcbe0081f670364a5f4f71b9e331db926a4e2551db69a6910f22c97036f3e42e7b9114796c70_1280.jpg", + "https://pixabay.com/get/g284b78844ae7f68903f06a798480f7641f71f8ac7d2384338770f0a670bf1940dfb7ff5ac8b3a01a5fa9978404c56b9343eb47eb783c2a030fc21d5c38abae14_1280.jpg", + "https://pixabay.com/get/g2b1fa350d2fdba4e4ade5a6b5e840aa759bce7fb976132cea35b93863d2a69ba35afda90d23698ff0aa53d42b92d0ad2ad1c2cc5db1e2a2251ab142c49aaa40f_1280.jpg", + "https://pixabay.com/get/g707d831341072bb497e1e967f6e7783852b771804e0426bc273dfb6bb1c18892d5dd2e9bacf7411d410d0ed53d891849efef20a9174ef1ad342dc5e1c85242ad_1280.jpg", + "https://www.nemopan.com/files/attach/images/6294/104/633/017/077b9071de4dd2b2d4ffee84fc619021.webp", + "http://imgnews.naver.net/image/5348/2020/07/14/659543-708-0_20200714175307666.jpg", + "http://imgnews.naver.net/image/5002/2018/07/25/0001051477_001_20180725085801023.jpg", + "http://imgnews.naver.net/image/023/2025/05/14/0003905125_001_20250514160217966.jpeg", + "http://imgnews.naver.net/image/5539/2022/10/01/0000174490_001_20221001212202650.png", + "https://image.edaily.co.kr/images/Photo/files/NP/S/2026/05/PS26051500804.jpg", + "http://imgnews.naver.net/image/421/2017/11/20/0003056962_001_20171120152533494.jpg", + "https://dthumb-phinf.pstatic.net/?src=%22https://mblogthumb-phinf.pstatic.net/MjAyNTA0MDlfMTQx/MDAxNzQ0MTYwNTA2NDky.Gs6bcLvRrt8tW7S0u3OA15d3vP_POHVltIAp2f2fsz0g.Fh83jKEFZo_Hywny-s2qPoVdZp_Q4kV3Ao9t1GCJtbQg.PNG/%25B0%25E6%25C1%25A6_%252852%2529.png?type=w800%22&opts=2&twidth=700&theight=700", + "http://imgnews.naver.net/image/421/2021/08/24/0005560119_001_20210824160935166.jpg", + "https://dthumb-phinf.pstatic.net/?src=%22https://mblogthumb-phinf.pstatic.net/MjAyNjAzMTZfMTEz/MDAxNzczNjQ0MzQ2MTE0.BQjwAVziN4q_gwOhI_l5xFobP5IAji82FM_uvdeVOKwg.Tuad0hIDbODYBoU4Aau10ZC1O_eLAeayUD1qVUjgLaIg.JPEG/KakaoTalk_20260316_155018342_04.jpg?type=w800%22&opts=2&twidth=700&theight=700", + "http://imgnews.naver.net/image/009/2024/05/09/0005301007_001_20240509160903396.jpg", + "https://pixabay.com/get/gb94b43e992722006bf150083c3749db4b10d95e745b24497c9cd67c61eff10ee2e53ff1f414ac6960ad899988f769eb51d0c1796fac6f214260d8d87328e92e0_1280.jpg", + "https://pixabay.com/get/gdca64d83d17c555e4f59f9cfd67083ac232af9524038315a1b94d919df448458cd9b06263d6a6cbe76ff421239d06771d06780a48f5b46d35e18f60a5e76c562_1280.jpg", + "https://pixabay.com/get/ge74fbda0de212204dd2ed661b12f16ec8739e89482374ed82032d7758210ad24db349ef2ef22d4e5028ea1367d2d8214c5ee6b5e717768736e54a42ffe8ce8b2_1280.jpg", + "https://pixabay.com/get/ga8f233ae1a160a961682169a59066b9eb8b47220db14083ca696d756c04796e95855578c0df2cfd1241fded30b3f6607c921f4dc3104a765d72c3023be8c8627_1280.jpg", + "https://pixabay.com/get/g86e8ba97c0bdf15d0992243c39f41bd56883308d67643e709b27c8c13bea504f13011a0dd0ae5c17e70e532d83d10b43c8749a99703b7a3d1b21f8e508423df4_1280.jpg", + "https://pixabay.com/get/g29b38f2f85e35dfb1c5948180ddd103f4400fc9c2591c0b1e43f799689746a3c55981f190a4eb7e87ea0c662e01a5a9f28f194fa429efbdd57840994a894cb7d_1280.jpg", + "https://scs-phinf.pstatic.net/MjAyNDA5MTBfMTA2/MDAxNzI1OTQ4OTAwODEz.W9LsHpnsAYEcYK-KX2v7R-wcp56aVFjrMTsxz4sIlpkg.F2jAitWip3h1HKsHQEZFfbHlo8Q5qp76qhADXc146RMg.PNG/1.png?type=w800", + "https://influencer-phinf.pstatic.net/MjAyNTA4MTJfMTQ0/MDAxNzU0OTg4Njk5MzQw.WzWUqN_lfBlZv7EvS22TTuDPmnMiOh3telJBdBvy4v0g.MoOQVEOM5PNGPrgnFd7cFGg9cfHC0o6nuGEJZFhh368g.PNG/4c32.png?type=w700", + "http://imgnews.naver.net/image/5743/2024/02/21/0000032995_001_20240221210604382.jpg", + "https://pixabay.com/get/gfc1e81f8b86497fd6273f6ea33e7f26e5efdcbb63e624f59a7b77acf92fdf0d0e3616d102e3c15ba1aa012b9ed4615eb3e4bc4075da2238562d46138f1d1ce25_1280.jpg", + "http://imgnews.naver.net/image/5421/2025/04/22/0000077879_001_20250422084613793.jpg", + "https://i.ytimg.com/vi/ODlnGp4ZRX8/maxresdefault.jpg", + "https://pixabay.com/get/g58a3352186c654655e19aac461c4057bcffeff5891f385412d2e3d1434a300e3748e0bf45f60a4d965264b8cb1caa39363bef85372671b81943702927b3c545e_1280.jpg", + "https://pixabay.com/get/gd08f6d49a05ecf91575fd78ca2692249bdceb6c5c4a7df4cfc350b4aaf33286873ac4f6a7e305fbded474b849747aea6bd8494e6b52137c32673b370209e5c36_1280.jpg", + "https://pixabay.com/get/gba2577e63000066686323350709ccb41e98e3e5aba23437a72ce3de559dcb465bac2eb0663e20eaa154ef643390029d68c4733f60e8cb2155019c8a8620dd9ed_1280.jpg", + "https://pixabay.com/get/gae2b2c556dca520ed6a886a4f71fc1d8a3c9fe39225df09b9775794c74f6a4d9305daf98fa1e37cec2cb73befbe78ebfd0a80eb23a55647750c6ba0af7766039_1280.jpg", + "https://pixabay.com/get/g3d3555e891a225e85c7dbb361bf0f9066bb5e6f30a6b079fa825c35ed743a622716b71465a40d56b5773e90b37ae172d151f97160bc1fba7f0fb6a453ca9d1f1_1280.jpg", + "https://pixabay.com/get/ga7a3c1c4b5b639352119357b3792bc8b17c9628cc7e4d47601c1a2cd40821dbead4b1c2e69ced651d89b95ecc7880e7fbbf49e07b3e5bc3ba65a0ff858cc5698_1280.jpg", + "https://pixabay.com/get/g2e93482646803ed1fc176705cd60c8ed2f15678a017d254329542ca5e4b827e1b85820c3e1e486223e5fbdd12a26a9af5926c9d59f37e9c7b1ef4a7c0d49a723_1280.jpg", + "https://pixabay.com/get/g7e669051957a437d8791eb36e1b0b9e28aca8c453b3606127a35524440d37024be5c20244050ad7d3f1824630f4a161320baebceed30c3a9ab53f7c45746901e_1280.jpg", + "https://pixabay.com/get/g362bb38ae64e8b1533e3ca3f380ccd1c70c2f0d67a57cfd358e0f828aef7d86a334fee98ac5a9c8ee0dea3fc8eea3e6a70cada28952af6f141f50bdc57a57638_1280.jpg", + "https://d2u3dcdbebyaiu.cloudfront.net/uploads/atch_img/527/faef8da3fa196a4beff441270203b689_res.jpeg", + "https://dthumb-phinf.pstatic.net/?src=%22https://mblogthumb-phinf.pstatic.net/MjAyNTEyMTZfMjg0/MDAxNzY1ODY3MzAzMTA4.lIldSDcsE8n6H_qS6hZuamP8AZqNLVaeOvUTCOVw3cYg.lJNNkm6G5X0kDV9m-ADjxXOzJH_ertA9T7MfxCqbGQog.JPEG/%25C7%25D1%25B9%25CC_%25B1%25DD%25B8%25AE%25C2%25F7%252C_%25B4%25DE%25B7%25AF%25BF%25F8_%25C8%25AF%25C0%25B2.jpg?type=w800%22&opts=2&twidth=700&theight=700", + "http://imgnews.naver.net/image/003/2026/03/09/NISI20260309_0021201490_web_20260309133932_20260309134026542.jpg", + "http://imgnews.naver.net/image/018/2025/12/05/0006178005_001_20251205065214968.jpg", + "http://imgnews.naver.net/image/055/2026/01/15/0001324477_001_20260115065112347.jpg", + "http://imgnews.naver.net/image/5026/2008/10/09/2008100930293840.jpg", + "https://pixabay.com/get/gb70d2394fdbf870cbb5fc75aab112e9c80895be7cea38f6da423dc3413fd9857467d689b6b1a401e9d9b7230e03333cfb093b977a3ae7ca0e43f0fcfb17cb1e6_1280.jpg", + "https://pixabay.com/get/g15612ed5eb03d46de87be7580c3330fb35a11f3b2943da18d5dee200d3467f42eb6d15d8ea4777e2b8bee03227245227f464efc5f9b317f6a780c7bd6f0d4f6c_1280.jpg", + "https://pixabay.com/get/gccc38ea42986c72fe4b0ef0f1d7d52b8778f7b4ad77dc85a64812824623270c30ddd4b63b8a705b7fa73a0cddd7dc2f89c4ad1e1cef4565a393cf6a006721042_1280.jpg", + "https://pixabay.com/get/g1b1d440daf98325ed21ab01093e5ad5cf291117f6c84b000f2e6de1ba1003ed09b2af776858d5e0dadfd0e6c573695f852fe8377bd184c743ee04eadf18c7be8_1280.jpg", + "https://pixabay.com/get/gd0ce6b948711713e8f06aa47b2b35d1cba961f33713dfc4298809a4da1ce329b0fd4b7a93f332c0d7baf70d2783e4d717259261023d6b6a551e4373fc395748b_1280.jpg", + "https://pixabay.com/get/g3af820eb9ae0307395c2b68560fb070870e946b1804055f26579a73e897d203ae00a81b87232627132923c3f23fc271d33bdaf61b9afaf54e5a37bf747533487_1280.jpg", + "https://img1.daumcdn.net/thumb/R1280x0.fjpg/?fname=http://t1.daumcdn.net/brunch/service/user/wlQ/image/uyOAJwMtyaBgEwGyjjnuF1f5auw.jpg", + "http://imgnews.naver.net/image/047/2019/09/02/0002238812_008_20190902174112438.jpg", + "https://dthumb-phinf.pstatic.net/?src=%22https://mblogthumb-phinf.pstatic.net/MjAyNDAxMjRfMTM1/MDAxNzA2MTA2Mzc2MjEx.8MnGG4nMvGcMFhSn5vGu1_21M_U5Am46oAW4GWnTiYwg.Cdo_X6YlFmwExFnhjWXS8t1LpuI1Kfr9hfr4DT4Uq6Ug.JPEG.hamy4407/IMG_2373.JPG?type=w800%22&opts=2&twidth=700&theight=700", + "https://cdn.pgr21.com/pb/data/humor/1736762932_%EC%84%B8%EA%B4%80%EC%A7%81%EC%9B%90%ED%94%BD.jpg", + "https://pixabay.com/get/gb5fd1ab872a96a9081851076b8de37e106b12fc581b0def4304f9b17b045eed38a9aa22a2f140553848ef955043a2c0f548984646611d64091218dd9075851d6_1280.jpg", + "https://pixabay.com/get/g2f24994c69a3194551c03f447297168885ac88b9c5b168be40e00ba7546e748aad9b59f08e434a99ffd005329f37fbfe0c8d6a0a381eb7cd531ca4830381caf0_1280.jpg", + "http://imgnews.naver.net/image/5544/2019/02/20/0000119319_001_20190220113632321.jpg", + "http://imgnews.naver.net/image/421/2025/01/24/0008042895_001_20250124151712124.jpg", + "http://imgnews.naver.net/image/5818/2024/05/01/0000157263_003_20240501074603033.png", + "https://i.ytimg.com/vi/6s4hs3gR_ss/maxresdefault.jpg", + "https://image.tving.com/ntgs/contents/CTC/caim/CAIM2100/ko/20250807/0041/M000370459.jpg/dims/resize/F_webp,480", + "https://influencer-phinf.pstatic.net/MjAyNTA1MzBfNzEg/MDAxNzQ4NTc4ODgxMzg2.Bwh0r5CU_7veNxnh9vpiwBPzSH4qDkx-MP_GaKHrNcYg.m75d1ry28CBDNnCk5o-43uUe6RJryy70SQZ-nAJYFFEg.PNG/a313.png?type=w700", + "https://pixabay.com/get/g5f01f394086ef1d0360df1741ee4557a35c190c0a042d428239add6fb24dbf99874222f4f1fc4a84b596d2ddaf538121a45be8e10aab4535433e091306871b0b_1280.jpg", + "https://pixabay.com/get/gcad058830ff43ca23b1068f894af37abc3ea4c89f6e9ef7707d418817866a21cae55280f9fe55bfeccde2fc3f2250248bad2d77b863fc60828a3507918ce35c1_1280.jpg", + "https://pixabay.com/get/ga365d28bc7d3b93a4889b1da8d6c90369aa0ec3acd201adec8df66a0c9fefac56387e4c49c0351d5b0f66943212f5d319b37669d919bfa18394a25d42d02b2d0_1280.jpg", + "https://img-cdn.theqoo.net/DivFnj.jpg", + "http://imgnews.naver.net/image/5677/2026/06/15/0000146893_002_20260615140212384.png", + "http://imgnews.naver.net/image/421/2026/01/23/0008731599_001_20260123155041898.jpg", + "https://influencer-phinf.pstatic.net/MjAyNDA3MjRfNTgg/MDAxNzIxODE1MTU5OTIz.nDivl_CWpR1pvryssQCFgyYjKnIJcmqsVZiGj02CaxEg.2-z6sF5xmSVmFOBRAuOPT7Ev5_ES-wQrrWTTklvcdyIg.PNG/ff2d.png?type=w700", + "https://influencer-phinf.pstatic.net/MjAyNTExMDRfMTgx/MDAxNzYyMjM2NjEyNDUy.PrhYCvEA3mKLyTIXnir2SW6ohuSH3mcjj9WDLEX-Uvkg.wPVKhU81rFozpHEcjFRv7N7JgvgOmySSY5OtvkF4oHgg.PNG/3d8b.png?type=w700", + "http://file3.instiz.net/data/cached_img/upload/2023/11/26/0/7ffe5048912a39cf66958e7ddd267430.jpg", + "http://imgnews.naver.net/image/081/2017/07/25/0002840261_003_20170725033748936.jpg", + "https://pixabay.com/get/g27a143acf9573908b05350190c7ecc883f6ef2ddbf79f71455bd0843cddb609691cdc815b41a2923075a6533cffbbe76e177eab58517e7e592b8d5f46f2099f1_1280.jpg", + "https://pixabay.com/get/g702639a8028d024be2d1be9961dedf24896e29fea90b8eb3e5cb16040781b60a61681b314cfe5e83651daf1b40f56b6367323f2e3ffc46b687e4d6bee530bcae_1280.jpg", + "http://imgnews.naver.net/image/008/2025/05/08/0005191133_002_20250509052416346.jpg", + "http://imgnews.naver.net/image/032/2022/07/28/0003162886_001_20250522215806939.jpg", + "http://imgnews.naver.net/image/5002/2019/06/07/0001233894_001_20190607223601002.jpg", + "https://pixabay.com/get/g8bd9719a91bc7cb0d32ec04db47f52329f85e833c9c5cb4a3fb4664620b1b8a21cc024486d37743fb186c227cb79bc5e9c816b9a5268561cc3d242c78d6f944d_1280.jpg", + "http://imgnews.naver.net/image/032/2024/12/15/0003339318_002_20241215144710840.jpeg", + "https://file1.bobaedream.co.kr/politic/2024/12/04/17/boba1733300962_1024737276.jpg", + "https://pixabay.com/get/g54ad3c296fcd29e7ceeb015eac3eb2934193fc126ba2d55f27b402196540e7ee2d04a68719458ff84690c6bee882eb7820ac0af8d868cd0796426dbe542454e4_1280.jpg", + "http://imgnews.naver.net/image/421/2017/05/14/0002731358_002_20170514195928125.jpg", + "http://thimg.todayhumor.co.kr/upfile/201809/15362388715424a29586b14fecb390ab1f252b4c22__mn740020__w640__h484__f27686__Ym201809.jpg", + "http://imgnews.naver.net/image/5274/2025/11/03/0000194214_001_20251103163816207.jpg", + "http://imgnews.naver.net/image/421/2025/12/28/0008682449_001_20251228100145264.jpg", + "https://scs-phinf.pstatic.net/MjAyNTA0MThfMTg0/MDAxNzQ0OTQwOTE1MDk2.v4mi_xHAplTWAooUm3M3k7RFIu3k-bIZT4ERBT2SeL0g.qAMSwo53ldlHm9rbwl4EZ132kX9ue5z5psREPgRaqI4g.PNG/image.png?type=w800", + "https://pixabay.com/get/g91e91543db5c53b7a68e87cc9f3cd95af593c0b9c3b38619d235111082ee62b2166853a7ab08f5a51ea54e53e8a23c0bade3b2ae76aebcd8a252042a713ac08a_1280.jpg", + "http://shop1.phinf.naver.net/20250207_106/1738912240490aD99F_JPEG/10530378304027349_436291494.jpg", + "https://contents.kyobobook.co.kr/sih/fit-in/458x0/pdt/9788930615013.jpg", + "http://imgnews.naver.net/image/001/2017/01/01/AKR20161230142700062_01_i_99_20170101063104.jpg", + "http://imgnews.naver.net/image/5369/2017/10/11/0000048462_004_20171011150333793.jpg", + "http://shop1.phinf.naver.net/20240822_191/1724286227924cyYO8_JPEG/4234992552033923_233312959.jpg", + "https://img.dmitory.com/img/202604/4Ii/5N2/4Ii5N2QPqEYiwIAyIMUocm.jpg", + "http://cache.ppomppu.co.kr/zboard/data3/2017/0428/1493378708_1502_IMG_2655.PNG", + "http://shop1.phinf.naver.net/20260615_287/1781505563514xRM2j_PNG/115638395400660491_722788742.png", + "https://scs-phinf.pstatic.net/MjAyNTAxMTBfMTg5/MDAxNzM2NDcyNDI4Nzc2.5qhGPRUAQAubQ-WwWTEw5Tk8YiVQ-pt-tdq1w0cnPIAg.gjnNl-E1P0vDaWfWk7d32adG4JHzk_t72DxEG2OrM7Ig.PNG/Artboard_3_copy.png?type=w800", + "http://imgnews.naver.net/image/032/2018/11/05/0002903711_001_20250605071236918.jpg", + "http://imgnews.naver.net/image/032/2023/08/17/0003243321_001_20250516204832992.jpg" + ], + "titles": [ + "sbs ํ๋ฐ๊ธฐ ๋ฐฉ์ ์์ ๋๋ผ๋ง ๋ผ์ธ์ - ์ฐ์์ด์ ์๋ค๋ฐฉ - ๋ค๋ชจํ sbs ํ๋ฐ๊ธฐ ๋ฐฉ์ ์์ ๋๋ผ๋ง ๋ผ์ธ์ ", + "๋ถ์ง ๊ธธ์ด์ง๋ mbc ๋๋ผ๋ง, ํ๋ฐ๊ธฐ ๋ถํ ์ ํธํ ์ ๊น [st์ด์]", + "[ํ๋ก์ผ๊ตฌ ์์] ํํยทsk ๋๋ํ ์น๋ฆฌ, 2์ ์ธ์โฆ์ผ์ฑ, ํ๋ฐ๊ธฐ ์์น์ธ", + "์ฌํด ์ ๋ ์ง๋ ํ ๋ถ์ ์ ๋ น...ํ๋ก์ผ๊ตฌ ์์ ๊ฒฝ์์ ๋ณ์๋ก ๋ ์ฌ๋ผ", + "[ํ๋ก์ผ๊ตฌ] 1์ผ ํ๋ก์ผ๊ตฌ ์ด์ ๋ฆฌ, ssg ์ ๊ท์์ฆ ์ฐ์น ๋งค์ง๋๋ฒ2...ํ๋ก์ผ๊ตฌ ์์", + "ํผ์น โํ๊ตญ ๊ธฐ์ค๊ธ๋ฆฌ, ์ฌํด ๋๊ฒฐ ์ ๋งโฆ๋ฌผ๊ฐ ์ถฉ๊ฒฉ ์ ํ๋ฐ๊ธฐ ์ธ์ํ ์๋โ", + "์ฐ ์ต์ ์ฐ์ ๋ฌ๋ฌ/์ ํ์จ์ ์ธ๊ณ ์์ ํํ ํฌ ์ํ๋ค", + "๋ค์ด๋ฒ ์ธํ๋ฃจ์ธ์ [๋ค์ด๋ฒ ์ธํ๋ฃจ์ธ์] ์ํ ๋ฌ๋ฌ ํ์จ ์์น ํํ ํฌ ํฌ์ ๋ฐฉ๋ฒ", + "์ดํ ์ฐ์ ํ๋ฝํ ํ์จ", + "๋ค์ด๋ฒ ์ธํ๋ฃจ์ธ์ [๋ค์ด๋ฒ ์ธํ๋ฃจ์ธ์] ํ์จ 1500 ๋ํ ! ๋ด์ ์ฌํ ์กฐ๊ธ์ด๋ผ๋ ์๋ผ๋ ํ", + "๊ฐ์กฑ ํด์ธ์ฌํ ์๋ฐํ๊ฒ ์ฆ๊ธฐ๋ ค๋ฉด ํ์จ ์ฒดํฌ ํ์ [๊นํ๋ฆฌ์ ํฌ์ ์ฒซ๊ฑธ์]", + "historical stock / securities / certificates / fund / bonds / trading / stock ex", + "round of financing / startup / finance / money / business / profit / company / c", + "mockup / typewriter / word / money / wall street / etf / exchange / traded / fun", + "etf / scrabble / tiles / typography / letters / word / puzzle / game / etf / etf", + "๋๊ธ : ๋ ๋ ํฌ์์๋ ๋์์จ๋ค๋ ๊ทธ ๋ฐฐ๋น์ฃผ! ๊ฐ์์ ๋ฐฐ๋น์ด์ง", + "๋ค์ด๋ฒ ์ธํ๋ฃจ์ธ์ [๋ค์ด๋ฒ ์ธํ๋ฃจ์ธ์] ๊ณ ๋ฐฐ๋น์ฃผ tsly etf ๋ฐฐ๋น๊ธ ์ฌ๊ธฐ์ธ ์ด์ ", + "'๊ณ ์์ต ๋ณด์ฅ' ์ต๋ ๋ฆฌ๋ฉ ํฌ์๋ฐฉ ์ฌ๊ธฐโฅ๊ฒฝ์ฐฐ ์์ฌ", + "money / profit / finance / business / return / yield / financial / cash / curren", + "\"๊ฒฐ๊ณผ ํ๋ฆฌ๋ฉด ๋ฐฐ๋น๊ธ\"...'์ญ๋ฒ ํ ' ์ฌ๊ธฐ ๊ธ์ฆ/ํฌ๋ฐ์ด", + "๋ค์ด๋ฒ ์ธํ๋ฃจ์ธ์ [๋ค์ด๋ฒ ์ธํ๋ฃจ์ธ์] ์ง๊ธ ์์๋๋ฉด ์ข์ ์ ํ๊ฐ ๋ฐฐ๋น์ฃผ top6", + "etf growth / tiles / letter tiles / word / background / scrabble / game / blocks", + "thomas jefferson memorial / monument / tourist destination / washington / dc / w", + "united states / washington / dc / congress / capitol / washington d c / congress", + "the washington monument / washington monument / monument / tourist destination /", + "air shows / fly / airplane / md / the md-80 / the dc-9 / charter / airport / fli", + "์ง์ฅ์ธ ์ 30๋ง์ etf ํฌ์, ์์งํ ์ด๋จ๊น?", + "๋ธ๋ผ์ธ๋ | ๋ธ๋ผ๋ธ๋ผ: ์ด๊ฑฐ๋ณด๊ณ ๋ฌ๋ฌ ํ์ ํ๋ฌ ๊ฐ ๋ธ๋ผ๋ธ๋ผ: ์ด๊ฑฐ๋ณด๊ณ ๋ฌ๋ฌ ํ์ ํ๋ฌ ๊ฐ", + "๋ค์ด๋ฒ ์ธํ๋ฃจ์ธ์ [๋ค์ด๋ฒ ์ธํ๋ฃจ์ธ์] 2026๋ ๋ฌ๋ฌ ํ์ ํ์ด๋ฐ, ์ ๋ผ๋ฉด ์ด ๋ ํฉ๋๋ค", + "์ยท๋ฌ๋ฌ ํ์จ 1490์๋๋ก", + "๊ธฐ์ ๋ฌ๋ฌ ๋ณด์ ์ฌ์ ์ต๋โฆํ์ ์ ์ธ์ฑ ๋ง์ง์", + "ํ์จ ๊ธ๋ฝ์ ์ด๋๋ค '๋ฌ๋ฌ ์ฌ์ฌ๊ธฐ'โฆ๋น๊ตญ ๊ฐ์ ๋ค ํ์ ๊ธ์ฆ", + "1๋ฌ๋ฌ 1,000์ ํ์ ์ด๋ฒคํธ, ์ฌํ๊ณ ๊ฐ๋ค ๋์น๋ฉด ํํ!", + "์ง์ฅ์ธ ์ 30๋ง์ etf ํฌ์ ์์ง ํ๊ธฐ", + "money / coin / investment / business / finance / bank / currency / loan / cash /", + "stock / trading / monitor / business / finance / exchange / investment / market ", + "hourglass / money / time / investment / currency / finance / economic / risk / c", + "'์ฌ์ ๋ฐค๋ฐ๋ค' ๋ ธ๋๊ฐ ์ ๋ก ๋ ์ค๋ฅด๋ ์ฌ์ ์ค์ ๋ทฐ ํธํ ", + "์ฌ์ ๋ฐค๋ฐ๋ค ๋ณด๊ธฐ ์ ์ ๋ค๋ฌ๋ณผ๋งํ ์ด๊ณณ", + "๋ค์ด๋ฒ ์ธํ๋ฃจ์ธ์ [๋ค์ด๋ฒ ์ธํ๋ฃจ์ธ์] ์ฌ์ ๋ฐค๋ฐ๋ค โ๊ฐ ๋ฉ์ง ์ฌ์์ฌํ", + "pgr21 - [๊ธฐํ] ์ ์ฃผ์ธ๊ด ์ง์๋ค์ด ํฝํ ์ ์ฃผ๋ ๋ง์ง [๊ธฐํ] ์ ์ฃผ์ธ๊ด ์ง์๋ค์ด ํฝํ ์ ์ฃผ๋ ๋ง์ง", + "fantasy / to travel / nature / travel / vacations / suitcase / sea / beach / lug", + "airport / woman / flight / boarding / traveling / tourist / trip / departure / a", + "์ฃผํ๋ด๋ณด๋์ถ ๊ณ ์ ๊ธ๋ฆฌ vs ๋ณ๋๊ธ๋ฆฌ, ์ฐจ์ด์ ๊ณผ ๋์๊ฒ ์ ๋ฆฌํ ๊ธ๋ฆฌ๋ฅผ ์ ํํ๋ ๋ฐฉ๋ฒ", + "5๊ฐ์ ๋ง์ ๋ด๋ ค๊ฐ ์ฃผํ๋ด๋ณด๋์ถ ๊ธ๋ฆฌ '๊ฐ์ฐ๊ธ๋ฆฌ ์ธ์ ์ค๋จ ์ํฅ'", + "3์ ์ฃผํ๋ด๋ณด๋์ถ ๊ธ๋ฆฌ 3.94%... 5๊ฐ์ ์ฐ์ ํ๋ฝ์ธ", + "์ฌ๋์์ดํด ๋งค์ดํน 32. [ํ๋ฃจ์ 5์ฝ์ค ์์ ํต์ ๋ฐ์ดํธ] - ์ ์ฐ์ ๊ฐค๋ฌ๋ฆฌ", + "ํต์์์์ ํ๋ฃจ | tving ํต์์์์ ํ๋ฃจ | tving", + "๋ค์ด๋ฒ ์ธํ๋ฃจ์ธ์ [๋ค์ด๋ฒ ์ธํ๋ฃจ์ธ์] ํฉ๊ธ์ฐํด! ํต์ ๊ฐ๋ณผ๋งํ๊ณณ ์ฌํ์ฝ์ค", + "passport / map / world map / world / trip / tourism / vacation / travel / planni", + "train / korea / ktx / travel / railroad / ktx / ktx / ktx / ktx / ktx", + "๋์ฟ - [๋ฏธ๋์์ ์ฆ๊ถ] [2026๋ ํ๋ฐ๊ธฐ ๊ธ๋ก๋ฒ ์ฃผ์ ์ ๋ต] ์ ์์ผ๋ก ์ธํ ๋ณํ์ ๊ธฐํ", + "์ฝ์คํผ ๊ณ ์ ๋ถ๋ด์ ์ ์ฑ ํํโฆ์ฝ์ค๋ฅ ํ๋ฐ๊ธฐ ์ฃผ๋?", + "์ฝ์คํผยท์ฝ์ค๋ฅ, ์ค๋ฆ์ธ๋ก ์ฅ ๋ง๊ฐ", + "๋ค์ด๋ฒ ์ธํ๋ฃจ์ธ์ [๋ค์ด๋ฒ ์ธํ๋ฃจ์ธ์] ์ธ์ฒ ์ฐจ์ด๋ํ์ด ๋ง์ง, ์นดํ, ๋ณผ๊ฑฐ๋ฆฌ ๋ชจ์", + "๋ค์ด๋ฒ ์ธํ๋ฃจ์ธ์ [๋ค์ด๋ฒ ์ธํ๋ฃจ์ธ์] ์ธ์ฒ ์ฐจ์ด๋ํ์ด ๊ทผ์ฒ ๊ฐ๋ณผ๋งํ๊ณณ ์ถ์ฒ", + "[์ก๋ด] ์ค๋ ์ฒ์์ผ๋ก ์ธ์ฒ ์ฐจ์ด๋ํ์ด ๊ฐ๋ดค๋๋ฐ - ์ธ์คํฐ์ฆ(instiz) ์ผ์ ์นดํ ๊ณ ๋ฆฌ [์ก๋ด] ์ค๋ ์ฒ์์ผ๋ก ์ธ์ฒ ์ฐจ์ด๋ํ์ด ๊ฐ๋ดค๋๋ฐ", + "โํผ์ ํ๋ฉด ๊ฐ์๋โฆ ์ฒยท๊ฐยท๋ฐ๋ค์ ์ถ์ต ๋ง๋ค๋ฉฐ ๋์ ๋ ๋ ค์โ", + "ground camping / family camp / picnic / tent / campsite / vacation / camping / c", + "spring / vacation / camping / early summer / holiday / travel / landscape / gree", + "๋ฏธ๊ตญ ๊ธ๋ฆฌ์ธํ ์๋ฐ๊ธฐ ๋๊ธธ ๋ฏโฆ์ฐ์ค \"๊ฒฝ์ ์ด๋๋ก ํ์ง ๋ชจ๋ฅด๊ฒ ๋ค\"", + "๋ด์์ฆ์, fomc ๊ฒฐ๊ณผ์ ์๋ยทยทยท๋์ค๋ฅ 4.06%โ๋ง๊ฐ", + "๋ฏธ๊ตญ 5์ ๊ณ ์ฉ์งํ โ์ผํฌโโฆ์ฐ์ค ๊ธ๋ฆฌ ์ธํ ์๋ฐ", + "real estate / homeownership / homebuying / home / house / mortgage / investment ", + "์ธ์ โ์ค์ค๋ก ๋ชฐ๋ฝ ํํ ๋ํต๋ นโ โ์๋ํ ๋ฏผ์ฃผ์ฃผ์ ์น๋ฆฌโ[์ค์์ด ํํต ๊ฐ๊ฒฐ]", + "โ ์ฌ์ค์ โ์ ์น์ ์์ดโ ํํ ๅฐน ๋ํต๋ นโฆ๋์ฒด ์? | ๋ณด๋ฐฐ๋๋ฆผ ์ ์น๊ฒ์ํ", + "money / finance / mortgage / loan / real-estate / business / success / exchange ", + "๋งํฌ๋กฑ ไฝ ๋ํต๋ น \"ํฌ๋ง ํํ ํ๋์คโฆ๋ถ์ด ๋ฐ๋์ ๊ทน๋ณต\"", + "์ค๋์์ ๋จธ - ๊ฑฐ๋ด์ ํธ๋ผํ๋ ๋ฌธ๋ํต๋ น์ ํํ๊ฑฐ๋ผ๊ณ ๊ฑฐ๋ด์ ํธ๋ผํ๋ ๋ฌธ๋ํต๋ น์ ํํ๊ฑฐ๋ผ๊ณ ", + "์ฝ์คํผ ๋ถ์ฅ์ '๋นํฌ' ์ฌ์ ์ต๊ณ ์น ๊ทผ์ โฆํ๋ฌ์ 2์กฐ ์ ์ฆ๊ฐ", + "[์๋2025]์์ฌ๋ ๋ถ์ฅ ์ด์ด์ง ์ฝ์คํผ", + "๐ฅ๐๋นํธ์ฝ์ธ ํญ๋ฑ์ ํธ๋ฆฌ๊ฑฐ, ๊ธ๋ก๋ฒ m2์งํ๋ฅผ ๋ฐ๋ผ๊ฐ๋ผ! ์ญ๋๊ธ ๋ถ์ฅ ๋๋์ด ์๋ฐ!๐จ๐ธ", + "iphone / hand / screen / smartphone / apps / mobile phone / cell phone / phone /", + "์ผ์ธ ์ฌ์ํ ๋ณด์ ์ก์ ๋ณดํธ ํ๋ฆ ๊ฐค๋ญ์z ํด๋5 ์ธ๋ถ (๊ฐํ์ ๋ฆฌ), 1๋งค์ : ๋งํฌ์ต", + "์๋ฏธ์ ๋ฌด์๋ฏธ | ๋ฉ๋ฅผ๋ก ๋ฝ๋ - ๊ต๋ณด๋ฌธ๊ณ ", + "์ถ์ฒ ๋ช ๋ฌผ '๋ญ๊ฐ๋น ๊ณจ๋ชฉ'โฆai์ ์ฐฌ๋ฐ๋๋ง '์ฉโผ'", + "[sn์ฌํ] ์ถ์ฒ์ ๋ฌธํ์ ๋ง, '์์๋ง๋น ์ถ์ฒ'๊ณผ '๋ญ๊ฐ๋น ๊ณจ๋ชฉ' [๊ฐ์ ์ถ์ฒ]", + "๊ตญ๋ด์ฐ ๋ญ๋ค๋ฆฌ์ด ํ์์ด ์ถ์ฒ ๋ญ๊ฐ๋น 500g 1ํฉ+1ํฉ (๋๋) : ์ถ์ฒ๋ญ๊ฐ๋น ๋ง๋คํธ๋", + "์ฌํ/ํด์ธ๊ฑฐ์ฃผ - ๊ฒฝ์ฃผ ๋น์ผ์น๊ธฐ ๋๋ฒ ์ด์ ํ๊ธฐ", + "๋ฝ๋ฟ:์ฌํํฌ๋ผ - ๊ฒฝ์ฃผ ๋น์ผ์น๊ธฐ ๋ค๋ ์์ด์^^ ๊ฒฝ์ฃผ ๋น์ผ์น๊ธฐ ๋ค๋ ์์ด์^^", + "[ktx] ๋ฌธํํด์ค์ฌ๋๊ณผ ํจ๊ปํ๋ ๊ฒฝ์ฃผ ์ธ๊ณ๋ฌธํ์ ์ฐ ํฌ์ด ๋น์ผ์น๊ธฐ ๊ธฐ์ฐจ์ฌํ : ์ฒญ์ก๊ด๊ด์ฌํ์ฌ", + "15๋ ๋ง์ ํ์จ 1,450์๋ ๋ํ...์์ผ๋ก์ ๋์ ๋ฐฉ์์?", + "์ฆ์ ๊ธ๋ฑ๋ฝ ์ฅ์ธ ์ โ์ยท๋ฌ๋ฌ ํ์จโ ์ ๋ฒํด ๊น๋ญ?", + "์ค๊ตญ๋ฐ ๊ฒฝ๊ธฐ ๋ํ ๊ฒฝ๊ณ ์โฆ์ยท๋ฌ๋ฌ ํ์จ 1340์ ๋ํ" + ] +} \ No newline at end of file diff --git a/blog-automation/logs/used_keywords.json b/blog-automation/logs/used_keywords.json new file mode 100644 index 0000000000000..f5a8a599183cf --- /dev/null +++ b/blog-automation/logs/used_keywords.json @@ -0,0 +1,819 @@ +{ + "keywords": [ + "2026๋ ETF ํฌ์ ์ ๋ต", + "๋ฏธ๊ตญ ์ฃผ์ ํฌ์ ๋ฐฉ๋ฒ", + "๊ธ๋ฆฌ ์ธํ ์ํ์ฃผ ์ถ์ฒ", + "๋ฐฐ๋น์ฃผ ํฌํธํด๋ฆฌ์ค ๊ตฌ์ฑ๋ฒ", + "์ ์ธ ๊ณ์ฝ ์ ๋ฑ๊ธฐ๋ถ๋ฑ๋ณธ ํ์ธ ์ ํด์ ์๊ธด ์ผ", + "์ค๋งํธ์คํ ์ด ๋ถ์ 3๊ฐ์ ์์ต ๊ณต๊ฐ ๋ฐ ํ์ค์ ์ธ ํ๊ธฐ", + "ํ๋ฆฌ๋์คํฌ ์ง๋จ ํ ์ด๋ ์ง์ ํด๋ดค๋๋ ๋ฌ๋ผ์ง ๊ฒ๋ค", + "์ง์ฅ์ธ ์ 30๋ง์ ETF ํฌ์ ์์ง ํ๊ธฐ", + "ISA ๊ณ์ข 3๋ ์ง์ ์จ๋ณธ ๊ฒฐ๊ณผ", + "์ฅ๋ง ๊ฑด๊ฐ ๊ด๋ฆฌ", + "ํญ์ผ ๋๋น ๋ฐฉ๋ฒ", + "์์ด์ปจ ์ ๊ธฐ์ธ ์ ์ฝ", + "์ฌ๋ฆ ๋๋ฐฉ ๊ฟํ", + "๋ฐฐ๋น์ฃผ ์ฒ์ ์ฌ๊ธฐ ์ ๋ด๊ฐ ๋ชฐ๋๋ ๊ฒ", + "ํด์ง์ฐ๊ธ DCํ ์ง์ ์ด์ฉํ๋ฉด์ ๋ฐฐ์ด ๊ฒ", + "๋ฌ๋ฌ ํ์ ํ์ด๋ฐ ๋ด๊ฐ ํ๋ฆฐ ์ ์๋ ์ด์ ", + "์ฝ์ธ ํฌ์ 1๋ ํ ์์งํ ์ด์ผ๊ธฐ", + "์ข ํฉ์๋์ธ ์ฒ์ ์ ๊ณ ํ ๋ ๊ฐ์ฅ ํท๊ฐ๋ ธ๋ ๊ฒ", + "๊ฐ์ธ์ฐ๊ธ ์ธ์ก๊ณต์ ์ค์๋ก ๋์น ์ฌ๋ ์ฌ๋ก", + "์ํํธ ์ฒญ์ฝ 2026๋ ๋ฌ๋ผ์ง ์ ์ ๋ฆฌ", + "์ ์ธ ์ฌ๊ธฐ ์ง์ ๊ฒช์ด๋ณธ ์ฌ๋์ด ์๋ ค์ฃผ๋ ์ฃผ์์ฌํญ", + "์ฒ์ ๋ถ๋์ฐ ํฌ์ํ ๋ ๋ด๊ฐ ํํํ ๊ฒ", + "์๊ฐ ํฌ์ 1๋ ํ ์๋์์ต ํ์ค ๊ณต๊ฐ", + "์ฑGPT ์ ๋ฌด์ ์ค์ ๋ก ์ฐ๋ฉด์ ๋ฌ๋ผ์ง ๊ฒ", + "AI ์ด๋ฏธ์ง ์์ฑ ์ง์ ์จ๋ณธ ๋ฌด๋ฃ ํด ๋น๊ต", + "๋ ธ์ฝ๋๋ก ์ฑ ๋ง๋ค์ด๋ณธ ์์ง ํ๊ธฐ", + "์ ํ๋ธ ์ผ์ธ AI ์๋ํ ์ง์ ํด๋ดค๋๋", + "ํด๋ก๋ AI vs ์ฑGPT ์ ๋ฌด ํจ์จ ๋น๊ต ์ง์ ํ ์คํธ", + "ํ๋น ์คํ์ดํฌ ์๋จ 2๋ฌ ๋ฐ๊พธ๊ณ ๋์ ๋ฌ๋ผ์ง ๊ฒ", + "GLP-1 ์ฃผ์ฌ ์ค์ ๋ง์๋ณธ ์ฌ๋ ํ๊ธฐ", + "์๋ฉด ๋ฌดํธํก์ฆ ๊ฒ์ฌ ๋ฐ์๋ณด๊ณ ์๊ฒ ๋ ๊ฒ", + "๋ฉด์ญ๋ ฅ ์์์ ์ง์ ๋จน์ด๋ณธ ์์ง ๋ฆฌ๋ทฐ", + "๊ฑด๊ฐ๊ฒ์ง ๊ฒฐ๊ณผ ๋ณด๋ ๋ฒ ์ฒ์์ ๋ชฐ๋๋ ํญ๋ชฉ๋ค", + "ํ๋ฆฌ๋์ ์ข ํฉ์๋์ธ ์ฒ์ ์ ๊ณ ํ๋ฉด์ ์ค์ํ ๊ฒ", + "๊ตํต์ฌ๊ณ ํฉ์ ์ง์ ํด๋ณธ ์ฌ๋์ ํ", + "์์์ธ ์์๋ณด๋ค ๋ง์ด ๋์จ ์ด์ ", + "์ฆ์ฌ์ธ ๋ถ๋ชจ๋ํํ ๋ ๋ฐ์ ๋ ์ฃผ์์ฌํญ", + "๋ธ๋ก๊ทธ ์ ๋์ผ์ค ์น์ธ 2026 ์ค์ ๋ก ํด๋ณด๋", + "์ฟ ํกํํธ๋์ค 3๊ฐ์ ํด๋ณธ ์์ง ์์ต ๊ณต๊ฐ", + "์ค๋งํธ์คํ ์ด ์ฒซ ๋ฌ ๋งค์ถ 0์ ๊ทน๋ณต ๋ฐฉ๋ฒ", + "์ ์์ฑ ์ฒ์ ๋ง๋ค๋ฉด์ ๋ชฐ๋๋ ๊ฒ๋ค", + "์ผ๋ณธ ์ฌํ ์ํ ํ์ ์ง์ ํด๋ณธ ๊ฐ์ฅ ์ผ ๋ฐฉ๋ฒ", + "๋๋จ์ ํ ๋ฌ ์ด๊ธฐ ํ์ค์ ์ธ ๋น์ฉ ๊ณต๊ฐ", + "์ ๊ธฐ์ฐจ ์ฒซ ๊ตฌ๋งค ํ 6๊ฐ์ ์์ง ํ๊ธฐ", + "์ค๊ณ ์ฐจ ์ง๊ฑฐ๋ ์คํจ๋ด๊ณผ ์ฃผ์์ฌํญ", + "์๊ฒฉ์ฆ ๋ ํ์ผ๋ก ํฉ๊ฒฉํ ์ฌ๋์ด ์๋ ค์ฃผ๋ ๋ฐฉ๋ฒ", + "์์ด ํํ 6๊ฐ์ ๋ ํ ์์ง ์ค๊ฐ ์ ๊ฒ", + "ํ์ด์ฌ ๋ ํ 3๊ฐ์ ํ ์ค์ ์ธ ์ ์๋ ๊ฒ๋ค", + "์ด์ง ์ฑ๊ณตํ๊ณ ๋์ ํํํ ๊ฒ 3๊ฐ์ง", + "์ฅ๋ง ๊ฑด๊ฐ ๊ด๋ฆฌ", + "์ฌ๋ฆ๋ฐฉํ ์๋ ๊ต์ก", + "์ฌ๋ฆ ์บ ํ ์ถ์ฒ", + "๋ฐฉํ ๋์ ํ ์ผ", + "์ฌ๋ฆ ๋ ์ ์ถ์ฒ", + "์ฅ๋ง ๊ฑด๊ฐ ๊ด๋ฆฌ", + "์ฅ๋ง ๊ฑด๊ฐ ๊ด๋ฆฌ", + "ํญ์ผ ๋๋น ๋ฐฉ๋ฒ", + "์ฅ๋ง ๊ฑด๊ฐ ๊ด๋ฆฌ", + "ํญ์ผ ๋๋น ๋ฐฉ๋ฒ", + "์ฒญ์ฝํต์ฅ vs ์ ๊ธ ๋ชฉ๋ ๋ง๋ จ ์ฌํ ํฌ ๋น๊ต", + "์ฅ๋ง ๊ฑด๊ฐ ๊ด๋ฆฌ", + "์ฅ๋ง ๊ฑด๊ฐ ๊ด๋ฆฌ", + "ํญ์ผ ๋๋น ๋ฐฉ๋ฒ", + "์ฅ๋ง ๊ฑด๊ฐ ๊ด๋ฆฌ", + "ํญ์ผ ๋๋น ๋ฐฉ๋ฒ", + "2026 ์ฌ๋ฆ๋ฐฉํ ์๋ ๊ต์ก ํ๊ธฐ ์ด์ ๋ฆฌ", + "๋ฐฉํ ๋์ ํ ์ผ ์ ๋ ดํ๊ฒ ์ฆ๊ธฐ๋ ๋ฐฉ๋ฒ", + "์ฌ๋ฆ ์บ ํ ์ถ์ฒ ์ง์ ์ฐธ๊ฐ ์์ง ๋น๊ต", + "์ฌ๋ฆ๋ฐฉํ ์๋ ๊ต์ก ํ๋ก๊ทธ๋จ ์ถ์ฒ ๋ฐฉ๋ฒ", + "2026 ์ฌ๋ฆ ๋ ์ ์ถ์ฒ ๋์ ๋ฆฌ์คํธ ํ๊ธฐ", + "์ฅ๋ง ๊ฑด๊ฐ ๊ด๋ฆฌ", + "์ฅ๋ง ๊ฑด๊ฐ ๊ด๋ฆฌ", + "์ฅ๋ง ๊ฑด๊ฐ ๊ด๋ฆฌ", + "ํญ์ผ ๋๋น ๋ฐฉ๋ฒ", + "์์ก ์ฌํ ํฌ ํ๋ ์์ํ๋ ๋ฐฉ๋ฒ 2026", + "์ฐ๊ธ์ ์ถ ์์ต๋ฅ ๋์ด๋ ๋ฐฉ๋ฒ ๋ ธํ์ฐ", + "ํด์ธ์ฌํ ์ค๋น๋ณดํ ํ์ํ์ง ์ง์ ๋น๊ตํด๋ดค๋๋", + "์ฌ๋ฆํด๊ฐ ๊ตญ๋ด ์ฌํ์ง ์ถ์ฒ ์ด์บ์ค ์ฝ์ค", + "์ฌํ์๋ณดํ ๊ฐ์ ๊ผญ ํด์ผ ํ ๊น ์ค์ ๋ณด์ ๊ฒฝํ ํ๊ธฐ", + "์ ๊ตญ ์นํจ ๋ง์ง ์ฌํ์ง๋ ์ถ์ฒ ์ฝ์ค", + "ํญ๊ณต๊ถ ์ทจ์ยท์ง์ฐ ๋ณด์ ์ง์ ์ฒญ๊ตฌํด๋ณด๋ ์๊ฒ ๋ ๊ฒ", + "์ ์ฃผ๋ ์จ๊ฒจ์ง ๋ช ์ ํ์ง์ธ๋ง ์๋ ๊ณณ ์์ง ํ๊ธฐ", + "ํด์ธ์ฌํ ํ์ ์์๋ฃ 0% ๋ฐฉ๋ฒ ์ง์ ๋น๊ต ์ ๋ฆฌ", + "์ ๊ตญ ์นํจ ๋ง์ง ์ง๋๋ก ๋ ๋๋ ์ฌํ ์ฝ์ค ์ถ์ฒ", + "์ ์ฃผ๋ ๋ ํฐ์นด ๋ณดํ ์ต์ ์ค์ ๋ก ํ์ํ ๊ฒ๋ง ๊ณ ๋ฅด๊ธฐ", + "์ ๊ตญ ์นํจ ๋ง์ง ์ฌํ์ง๋ ํ์ฉ๋ฒ", + "ํจํค์ง์ฌํ ๊ณ์ฝ์ ํ๋ถ ์กฐํญ ์ง์ ์ฝ์ด๋ณด๊ณ ์๊ฒ ๋ ๊ฒ", + "์ ๊ตญ ์นํจ ๋ง์ง ์ง๋๋ก ๋ ๋๋ ์ฌ๋ฆ ๊ตญ๋ด์ฌํ ์ฝ์ค ์ถ์ฒ", + "ํด์ธ์์ ์ฌ๊ณ ๋ฌ์ ๋ ๋์ฌ๊ด ์ ๊ณ ์ง์ ๊ฒฝํํ ๊ณผ์ ", + "์๋๊ถ ๋ฒ์ด๋ ๊ตญ๋ด ๋ก์ปฌ ์ฌํ์ง ์ถ์ฒ 2026", + "์ฌํ ์ค ๋ฌผ๊ฑด ๋๋ ๊ฒฝ์ฐฐ์ ์ ๊ณ ํ ๋ณดํ ์ฒญ๊ตฌ ๋ฐฉ๋ฒ", + "์ฅ๋ง์ฒ ๊ตญ๋ด ์ฌํ์ง ์ถ์ฒ ์ฝ์ค", + "๋ทํ๋ฆญ์ค vs ํฐ๋น vs ์จ์ด๋ธ ๊ตฌ๋ ๋ฃ ๋๋น ์ฝํ ์ธ ์ง์ ๋น๊ต", + "๋ถ์ฐ ๊ณจ๋ชฉ ๋ง์ง ๊ด๊ด๊ฐ ์๋ ์ง์ง ๋ง์ง ์ง์ ๊ฐ๋ดค๋๋", + "์์ด๋ ์ฝ์ํธ ํฐ์ผํ ์ฑ๋ณ ์์๋ฃ ๋น๊ต์ ๊ฟํ", + "๊ฐ๋ฆ ์ฌํ ์์ ๊ฐ์ฑ๋น ์ต๊ณ ์๋ ๊ณณ๊ณผ ์ค๋งํ ๊ณณ ๋น๊ต", + "OTT ๊ฐ์กฑ ๊ณต์ ๊ณ์ ์ ์ฑ ๋ณ๊ฒฝ ํ ๊ฐ์ฅ ์ ๋ ดํ ์ ํ", + "์์ธ ๊ทผ๊ต ๋น์ผ์น๊ธฐ ์จ์ ๋ช ์ ๊ณ์ ๋ณ ์ถ์ฒ", + "์์ ์คํธ๋ฆฌ๋ฐ ๋ฉ๋ก vs ์ง๋ vs ์ ํ๋ธ๋ฎค์ง ์๊ธ ๋น๊ต", + "๊ฒฝ์ฃผ ๋น ์ง๋ฉด ํํํ๋ ์ผ๊ฒฝ ๋ช ์ ์ง์ ๋ค๋ ์จ ํ๊ธฐ", + "๋๋ผ๋ง OST ์ ์๊ถ ์ ํ๋ธ ์ฌ์ฉ ๊ฐ๋ฅ ์ฌ๋ถ ์ง์ ํ์ธ", + "์ ์ฃผ ํ๋ผ์ง ๋ง์ง ์ง์ ๊ฐ๋ดค๋๋ ์ค๋ง", + "์ ์ฃผ ํ ๋ฌ ์ด๊ธฐ ์ค์ ์ํ๋น์ ์์ ๋น์ฉ ๊ณต๊ฐ", + "๊ฐ์๋ ์ผ์ฒ ํญ์ผ ํผ์์ง ์ถ์ฒ ์ฝ์ค", + "๋๋จ์ ํ ๋ฌ ์ด๊ธฐ ์ง ๊ตฌํ๋ ๋ฐฉ๋ฒ๊ณผ ๊ณ์ฝ ์ฃผ์์ฌํญ", + "์ฌ๋ฆ ํด๊ฐ์ฒ ์์ํ ๊ตญ๋ด ๊ณ๊ณก ํญํฌ ์ฌํ์ง ์ถ์ฒ", + "ํด์ธ ์ดํ์ฐ์ ๋น์ฉ ํ์ค์ ์ผ๋ก ์ผ๋ง๋ ๋๋", + "์ฅ๋ง์ฒ ๊ตญ๋ด ๋ฌด๋์ ํผํ๋ ์ฌํ์ง ์ถ์ฒ 2026", + "๋ฏธ๊ตญ ์ํนํ๋ฆฌ๋ฐ์ด ๋ณดํ๊ณผ ๊ณ์ข ๊ฐ์ค ์ง์ ์ค๋น ๊ณผ์ ", + "์ ์ฃผ ํ์ฅ๋ง์ ๋ง์ง ์ค ์ ์๋ ์ง ์์ง ์ถ์ฒ", + "๊ฐ์๋ ์ผ์ฒ ์ฌ๋ฆ ํผ์์ง ๊ณ๊ณก ํญํฌ ์ถ์ฒ", + "์ ๊ตญ ์นํจ ๋ง์ง ์ง๋ K์นํจ๋ฒจํธ ์ฝ์ค", + "1์ธ๊ฐ๊ตฌ N์ก๋ฌ ๋ถ์ ์์ต ์ฃผ์ ETF ํฌ์ ๋ ธํ์ฐ", + "์ฌ๋ฆ์ฒ ์จ์ด์งํ ์๋ฐฉ๋ฒ๊ณผ ์ฆ์ ๋์ฒ ์ด์ ๋ฆฌ", + "1์ธ ๊ฐ๊ตฌ ์ฌํ ํฌ ์ ๋ต 2026 ์์ ๊ธ ๋์ ํฌ์ ๋ฐฉ๋ฒ", + "๋ฐ๋์ฒด ์ ์ ๋งค์ ํ์ด๋ฐ 2026 ETF ํฌ์ ๊ฐ์ด๋", + "์๋ฌ๋ฌ ํ์จ 1500์๋ ํํ ํฌ ๋์๋ฒ", + "๋จ์ฑ ์ฒญ์๋ HPV ์๋ฐฉ์ ์ข ๋น์ฉยท์ง์ ์ด์ ๋ฆฌ", + "์ง์ฅ์ธ ์ 30๋ง์ ETF ํฌ์ ์์ง ํ๊ธฐ", + "ISA ๊ณ์ข 3๋ ์ง์ ์จ๋ณธ ๊ฒฐ๊ณผ", + "์ง์ฅ์ธ ์ 30๋ง์ ETF ํฌ์ ์์ง ํ๊ธฐ", + "ISA ๊ณ์ข 3๋ ์ง์ ์จ๋ณธ ๊ฒฐ๊ณผ", + "์ง์ฅ์ธ ์ 30๋ง์ ETF ํฌ์ ์์ง ํ๊ธฐ", + "ISA ๊ณ์ข 3๋ ์ง์ ์จ๋ณธ ๊ฒฐ๊ณผ", + "์ง์ฅ์ธ ์ 30๋ง์ ETF ํฌ์ ์์ง ํ๊ธฐ", + "ISA ๊ณ์ข 3๋ ์ง์ ์จ๋ณธ ๊ฒฐ๊ณผ", + "์ง์ฅ์ธ ์ 30๋ง์ ETF ํฌ์ ์์ง ํ๊ธฐ", + "ISA ๊ณ์ข 3๋ ์ง์ ์จ๋ณธ ๊ฒฐ๊ณผ", + "์ฌ์ ๋ฐค๋ฐ๋ค ์์ ์ค์ ๋ทฐ ๊ฐ์ฑ๋น ๋น๊ต ์ง์ ์์ฝํด๋ดค๋๋", + "์์ด ์ฌํ ๊ฒจ์ธ์ ๊ฐ๋ฉด ์ข์ ์ด์ ์ ์จ์ ๋ง์ง", + "ํต์ ํ๋ฃจ ์ฝ์ค ์์ง ๋ช ์์ ์์ ์ค์ ํ๊ธฐ", + "๋จํด ๋ ์ผ๋ง์ ๋ฐฉ๋ฌธ ์ ์์์ผ๋ฉด ์ข์ ๊ฒ๋ค", + "์ธ์ฒ ์ฐจ์ด๋ํ์ด ๋ง์ง๊ณผ ๋ณผ๊ฑฐ๋ฆฌ ์ง์ ๋ค๋ ์จ ์์ง ํ๊ฐ", + "์๋ ํํ๋ง์ ํผ์ ์ฌํํ๊ธฐ ์ข์๊น ์์ง ํ๊ธฐ", + "์ถ์ฒ ๋ญ๊ฐ๋น ๊ณจ๋ชฉ ์ง์ง ๋ง์ง๊ณผ ํผํด์ผ ํ ๊ณณ", + "๋ด์ ๋ฉํ์ธ์ฟผ์ด์๊ธธ ๊ณ์ ๋ณ ๋ค๋ฅธ ๋งค๋ ฅ ์ง์ ๋ฐฉ๋ฌธ ํ๊ธฐ" + ], + "entries": [ + { + "keyword": "2026๋ ETF ํฌ์ ์ ๋ต", + "usedAt": "2026-06-05T16:10:19.913456" + }, + { + "keyword": "๋ฏธ๊ตญ ์ฃผ์ ํฌ์ ๋ฐฉ๋ฒ", + "usedAt": "2026-06-05T16:10:19.913456" + }, + { + "keyword": "๊ธ๋ฆฌ ์ธํ ์ํ์ฃผ ์ถ์ฒ", + "usedAt": "2026-06-05T16:10:19.913456" + }, + { + "keyword": "๋ฐฐ๋น์ฃผ ํฌํธํด๋ฆฌ์ค ๊ตฌ์ฑ๋ฒ", + "usedAt": "2026-06-05T23:19:38.741901" + }, + { + "keyword": "์ ์ธ ๊ณ์ฝ ์ ๋ฑ๊ธฐ๋ถ๋ฑ๋ณธ ํ์ธ ์ ํด์ ์๊ธด ์ผ", + "usedAt": "2026-06-28T12:25:05.842307", + "source": "claude_ai" + }, + { + "keyword": "์ค๋งํธ์คํ ์ด ๋ถ์ 3๊ฐ์ ์์ต ๊ณต๊ฐ ๋ฐ ํ์ค์ ์ธ ํ๊ธฐ", + "usedAt": "2026-06-28T12:25:05.842307", + "source": "claude_ai" + }, + { + "keyword": "ํ๋ฆฌ๋์คํฌ ์ง๋จ ํ ์ด๋ ์ง์ ํด๋ดค๋๋ ๋ฌ๋ผ์ง ๊ฒ๋ค", + "usedAt": "2026-06-28T12:25:05.842307", + "source": "claude_ai" + }, + { + "keyword": "์ง์ฅ์ธ ์ 30๋ง์ ETF ํฌ์ ์์ง ํ๊ธฐ", + "usedAt": "2026-07-06T07:12:30.758854", + "source": "fallback" + }, + { + "keyword": "ISA ๊ณ์ข 3๋ ์ง์ ์จ๋ณธ ๊ฒฐ๊ณผ", + "usedAt": "2026-07-06T07:12:30.758854", + "source": "fallback" + }, + { + "keyword": "์ฅ๋ง ๊ฑด๊ฐ ๊ด๋ฆฌ", + "usedAt": "2026-07-06T13:00:28.955843", + "source": "season_scheduled" + }, + { + "keyword": "ํญ์ผ ๋๋น ๋ฐฉ๋ฒ", + "usedAt": "2026-07-06T13:00:28.955843", + "source": "season_scheduled" + }, + { + "keyword": "์์ด์ปจ ์ ๊ธฐ์ธ ์ ์ฝ", + "usedAt": "2026-07-06T13:43:33.282236", + "source": "season_scheduled" + }, + { + "keyword": "์ฌ๋ฆ ๋๋ฐฉ ๊ฟํ", + "usedAt": "2026-07-06T13:43:33.282236", + "source": "season_scheduled" + }, + { + "keyword": "๋ฐฐ๋น์ฃผ ์ฒ์ ์ฌ๊ธฐ ์ ๋ด๊ฐ ๋ชฐ๋๋ ๊ฒ", + "usedAt": "2026-07-06T23:14:39.338974", + "source": "fallback" + }, + { + "keyword": "ํด์ง์ฐ๊ธ DCํ ์ง์ ์ด์ฉํ๋ฉด์ ๋ฐฐ์ด ๊ฒ", + "usedAt": "2026-07-06T23:14:39.338974", + "source": "fallback" + }, + { + "keyword": "๋ฌ๋ฌ ํ์ ํ์ด๋ฐ ๋ด๊ฐ ํ๋ฆฐ ์ ์๋ ์ด์ ", + "usedAt": "2026-07-07T06:46:04.667004", + "source": "fallback" + }, + { + "keyword": "์ฝ์ธ ํฌ์ 1๋ ํ ์์งํ ์ด์ผ๊ธฐ", + "usedAt": "2026-07-07T06:46:04.667004", + "source": "fallback" + }, + { + "keyword": "์ข ํฉ์๋์ธ ์ฒ์ ์ ๊ณ ํ ๋ ๊ฐ์ฅ ํท๊ฐ๋ ธ๋ ๊ฒ", + "usedAt": "2026-07-07T12:21:07.126412", + "source": "fallback" + }, + { + "keyword": "๊ฐ์ธ์ฐ๊ธ ์ธ์ก๊ณต์ ์ค์๋ก ๋์น ์ฌ๋ ์ฌ๋ก", + "usedAt": "2026-07-07T12:21:07.126412", + "source": "fallback" + }, + { + "keyword": "์ํํธ ์ฒญ์ฝ 2026๋ ๋ฌ๋ผ์ง ์ ์ ๋ฆฌ", + "usedAt": "2026-07-07T12:41:32.481987", + "source": "fallback" + }, + { + "keyword": "์ ์ธ ์ฌ๊ธฐ ์ง์ ๊ฒช์ด๋ณธ ์ฌ๋์ด ์๋ ค์ฃผ๋ ์ฃผ์์ฌํญ", + "usedAt": "2026-07-07T12:41:32.481987", + "source": "fallback" + }, + { + "keyword": "์ฒ์ ๋ถ๋์ฐ ํฌ์ํ ๋ ๋ด๊ฐ ํํํ ๊ฒ", + "usedAt": "2026-07-07T14:46:52.884611", + "source": "fallback" + }, + { + "keyword": "์๊ฐ ํฌ์ 1๋ ํ ์๋์์ต ํ์ค ๊ณต๊ฐ", + "usedAt": "2026-07-07T14:46:52.884611", + "source": "fallback" + }, + { + "keyword": "์ฑGPT ์ ๋ฌด์ ์ค์ ๋ก ์ฐ๋ฉด์ ๋ฌ๋ผ์ง ๊ฒ", + "usedAt": "2026-07-07T23:08:17.187358", + "source": "fallback" + }, + { + "keyword": "AI ์ด๋ฏธ์ง ์์ฑ ์ง์ ์จ๋ณธ ๋ฌด๋ฃ ํด ๋น๊ต", + "usedAt": "2026-07-07T23:08:17.187358", + "source": "fallback" + }, + { + "keyword": "๋ ธ์ฝ๋๋ก ์ฑ ๋ง๋ค์ด๋ณธ ์์ง ํ๊ธฐ", + "usedAt": "2026-07-08T05:50:04.102144", + "source": "fallback" + }, + { + "keyword": "์ ํ๋ธ ์ผ์ธ AI ์๋ํ ์ง์ ํด๋ดค๋๋", + "usedAt": "2026-07-08T05:50:04.102144", + "source": "fallback" + }, + { + "keyword": "ํด๋ก๋ AI vs ์ฑGPT ์ ๋ฌด ํจ์จ ๋น๊ต ์ง์ ํ ์คํธ", + "usedAt": "2026-07-08T08:13:41.293045", + "source": "fallback" + }, + { + "keyword": "ํ๋น ์คํ์ดํฌ ์๋จ 2๋ฌ ๋ฐ๊พธ๊ณ ๋์ ๋ฌ๋ผ์ง ๊ฒ", + "usedAt": "2026-07-08T08:13:41.293045", + "source": "fallback" + }, + { + "keyword": "GLP-1 ์ฃผ์ฌ ์ค์ ๋ง์๋ณธ ์ฌ๋ ํ๊ธฐ", + "usedAt": "2026-07-08T09:23:08.319300", + "source": "fallback" + }, + { + "keyword": "์๋ฉด ๋ฌดํธํก์ฆ ๊ฒ์ฌ ๋ฐ์๋ณด๊ณ ์๊ฒ ๋ ๊ฒ", + "usedAt": "2026-07-08T09:23:08.319300", + "source": "fallback" + }, + { + "keyword": "๋ฉด์ญ๋ ฅ ์์์ ์ง์ ๋จน์ด๋ณธ ์์ง ๋ฆฌ๋ทฐ", + "usedAt": "2026-07-08T10:13:34.084826", + "source": "fallback" + }, + { + "keyword": "๊ฑด๊ฐ๊ฒ์ง ๊ฒฐ๊ณผ ๋ณด๋ ๋ฒ ์ฒ์์ ๋ชฐ๋๋ ํญ๋ชฉ๋ค", + "usedAt": "2026-07-08T10:13:34.084826", + "source": "fallback" + }, + { + "keyword": "ํ๋ฆฌ๋์ ์ข ํฉ์๋์ธ ์ฒ์ ์ ๊ณ ํ๋ฉด์ ์ค์ํ ๊ฒ", + "usedAt": "2026-07-08T11:45:48.700184", + "source": "fallback" + }, + { + "keyword": "๊ตํต์ฌ๊ณ ํฉ์ ์ง์ ํด๋ณธ ์ฌ๋์ ํ", + "usedAt": "2026-07-08T11:45:48.700184", + "source": "fallback" + }, + { + "keyword": "์์์ธ ์์๋ณด๋ค ๋ง์ด ๋์จ ์ด์ ", + "usedAt": "2026-07-08T23:16:53.278842", + "source": "fallback" + }, + { + "keyword": "์ฆ์ฌ์ธ ๋ถ๋ชจ๋ํํ ๋ ๋ฐ์ ๋ ์ฃผ์์ฌํญ", + "usedAt": "2026-07-08T23:16:53.278842", + "source": "fallback" + }, + { + "keyword": "๋ธ๋ก๊ทธ ์ ๋์ผ์ค ์น์ธ 2026 ์ค์ ๋ก ํด๋ณด๋", + "usedAt": "2026-07-09T07:08:26.016032", + "source": "fallback" + }, + { + "keyword": "์ฟ ํกํํธ๋์ค 3๊ฐ์ ํด๋ณธ ์์ง ์์ต ๊ณต๊ฐ", + "usedAt": "2026-07-09T07:08:26.016032", + "source": "fallback" + }, + { + "keyword": "์ค๋งํธ์คํ ์ด ์ฒซ ๋ฌ ๋งค์ถ 0์ ๊ทน๋ณต ๋ฐฉ๋ฒ", + "usedAt": "2026-07-09T23:19:23.179354", + "source": "fallback" + }, + { + "keyword": "์ ์์ฑ ์ฒ์ ๋ง๋ค๋ฉด์ ๋ชฐ๋๋ ๊ฒ๋ค", + "usedAt": "2026-07-09T23:19:23.179354", + "source": "fallback" + }, + { + "keyword": "์ผ๋ณธ ์ฌํ ์ํ ํ์ ์ง์ ํด๋ณธ ๊ฐ์ฅ ์ผ ๋ฐฉ๋ฒ", + "usedAt": "2026-07-10T03:57:42.779466", + "source": "fallback" + }, + { + "keyword": "๋๋จ์ ํ ๋ฌ ์ด๊ธฐ ํ์ค์ ์ธ ๋น์ฉ ๊ณต๊ฐ", + "usedAt": "2026-07-10T03:57:42.779466", + "source": "fallback" + }, + { + "keyword": "์ ๊ธฐ์ฐจ ์ฒซ ๊ตฌ๋งค ํ 6๊ฐ์ ์์ง ํ๊ธฐ", + "usedAt": "2026-07-10T06:44:19.823167", + "source": "fallback" + }, + { + "keyword": "์ค๊ณ ์ฐจ ์ง๊ฑฐ๋ ์คํจ๋ด๊ณผ ์ฃผ์์ฌํญ", + "usedAt": "2026-07-10T06:44:19.823167", + "source": "fallback" + }, + { + "keyword": "์๊ฒฉ์ฆ ๋ ํ์ผ๋ก ํฉ๊ฒฉํ ์ฌ๋์ด ์๋ ค์ฃผ๋ ๋ฐฉ๋ฒ", + "usedAt": "2026-07-10T12:24:16.358138", + "source": "fallback" + }, + { + "keyword": "์์ด ํํ 6๊ฐ์ ๋ ํ ์์ง ์ค๊ฐ ์ ๊ฒ", + "usedAt": "2026-07-10T12:24:16.358138", + "source": "fallback" + }, + { + "keyword": "ํ์ด์ฌ ๋ ํ 3๊ฐ์ ํ ์ค์ ์ธ ์ ์๋ ๊ฒ๋ค", + "usedAt": "2026-07-10T12:44:34.333547", + "source": "fallback" + }, + { + "keyword": "์ด์ง ์ฑ๊ณตํ๊ณ ๋์ ํํํ ๊ฒ 3๊ฐ์ง", + "usedAt": "2026-07-10T23:05:22.223735", + "source": "fallback" + }, + { + "keyword": "์ฅ๋ง ๊ฑด๊ฐ ๊ด๋ฆฌ", + "usedAt": "2026-07-10T23:05:22.223735", + "source": "season_scheduled" + }, + { + "keyword": "์ฌ๋ฆ๋ฐฉํ ์๋ ๊ต์ก", + "usedAt": "2026-07-11T03:12:24.382320", + "source": "season_scheduled" + }, + { + "keyword": "์ฌ๋ฆ ์บ ํ ์ถ์ฒ", + "usedAt": "2026-07-11T05:39:49.559175", + "source": "season_scheduled" + }, + { + "keyword": "๋ฐฉํ ๋์ ํ ์ผ", + "usedAt": "2026-07-11T05:39:49.559175", + "source": "season_scheduled" + }, + { + "keyword": "์ฌ๋ฆ ๋ ์ ์ถ์ฒ", + "usedAt": "2026-07-11T10:58:56.564605", + "source": "season_scheduled" + }, + { + "keyword": "์ฅ๋ง ๊ฑด๊ฐ ๊ด๋ฆฌ", + "usedAt": "2026-07-11T10:58:56.564605", + "source": "season_scheduled" + }, + { + "keyword": "์ฅ๋ง ๊ฑด๊ฐ ๊ด๋ฆฌ", + "usedAt": "2026-07-11T11:21:56.539845", + "source": "season_scheduled" + }, + { + "keyword": "ํญ์ผ ๋๋น ๋ฐฉ๋ฒ", + "usedAt": "2026-07-11T11:21:56.539845", + "source": "season_scheduled" + }, + { + "keyword": "์ฅ๋ง ๊ฑด๊ฐ ๊ด๋ฆฌ", + "usedAt": "2026-07-11T11:47:53.982424", + "source": "season_scheduled" + }, + { + "keyword": "ํญ์ผ ๋๋น ๋ฐฉ๋ฒ", + "usedAt": "2026-07-11T11:47:53.982424", + "source": "season_scheduled" + }, + { + "keyword": "์ฒญ์ฝํต์ฅ vs ์ ๊ธ ๋ชฉ๋ ๋ง๋ จ ์ฌํ ํฌ ๋น๊ต", + "usedAt": "2026-07-11T12:49:40.107801", + "source": "naver_realtime" + }, + { + "keyword": "์ฅ๋ง ๊ฑด๊ฐ ๊ด๋ฆฌ", + "usedAt": "2026-07-11T14:10:51.854713", + "source": "season_scheduled" + }, + { + "keyword": "์ฅ๋ง ๊ฑด๊ฐ ๊ด๋ฆฌ", + "usedAt": "2026-07-11T14:30:01.328612", + "source": "season_scheduled" + }, + { + "keyword": "ํญ์ผ ๋๋น ๋ฐฉ๋ฒ", + "usedAt": "2026-07-11T14:30:01.328612", + "source": "season_scheduled" + }, + { + "keyword": "์ฅ๋ง ๊ฑด๊ฐ ๊ด๋ฆฌ", + "usedAt": "2026-07-11T22:57:11.844083", + "source": "season_scheduled" + }, + { + "keyword": "ํญ์ผ ๋๋น ๋ฐฉ๋ฒ", + "usedAt": "2026-07-11T22:57:11.844083", + "source": "season_scheduled" + }, + { + "keyword": "2026 ์ฌ๋ฆ๋ฐฉํ ์๋ ๊ต์ก ํ๊ธฐ ์ด์ ๋ฆฌ", + "usedAt": "2026-07-12T05:57:05.706105", + "source": "season_scheduled" + }, + { + "keyword": "๋ฐฉํ ๋์ ํ ์ผ ์ ๋ ดํ๊ฒ ์ฆ๊ธฐ๋ ๋ฐฉ๋ฒ", + "usedAt": "2026-07-12T05:57:05.706105", + "source": "season_scheduled" + }, + { + "keyword": "์ฌ๋ฆ ์บ ํ ์ถ์ฒ ์ง์ ์ฐธ๊ฐ ์์ง ๋น๊ต", + "usedAt": "2026-07-12T11:09:47.845506", + "source": "season_scheduled" + }, + { + "keyword": "์ฌ๋ฆ๋ฐฉํ ์๋ ๊ต์ก ํ๋ก๊ทธ๋จ ์ถ์ฒ ๋ฐฉ๋ฒ", + "usedAt": "2026-07-12T11:09:47.845506", + "source": "season_scheduled" + }, + { + "keyword": "2026 ์ฌ๋ฆ ๋ ์ ์ถ์ฒ ๋์ ๋ฆฌ์คํธ ํ๊ธฐ", + "usedAt": "2026-07-12T14:37:23.093155", + "source": "season_scheduled" + }, + { + "keyword": "์ฅ๋ง ๊ฑด๊ฐ ๊ด๋ฆฌ", + "usedAt": "2026-07-12T14:37:23.093155", + "source": "season_scheduled" + }, + { + "keyword": "์ฅ๋ง ๊ฑด๊ฐ ๊ด๋ฆฌ", + "usedAt": "2026-07-12T14:48:07.302690", + "source": "season_scheduled" + }, + { + "keyword": "์ฅ๋ง ๊ฑด๊ฐ ๊ด๋ฆฌ", + "usedAt": "2026-07-12T22:57:25.794857", + "source": "season_scheduled" + }, + { + "keyword": "ํญ์ผ ๋๋น ๋ฐฉ๋ฒ", + "usedAt": "2026-07-12T22:57:25.794857", + "source": "season_scheduled" + }, + { + "keyword": "์์ก ์ฌํ ํฌ ํ๋ ์์ํ๋ ๋ฐฉ๋ฒ 2026", + "usedAt": "2026-07-13T06:16:51.153641", + "source": "naver_realtime" + }, + { + "keyword": "์ฐ๊ธ์ ์ถ ์์ต๋ฅ ๋์ด๋ ๋ฐฉ๋ฒ ๋ ธํ์ฐ", + "usedAt": "2026-07-13T06:16:51.153641", + "source": "naver_realtime" + }, + { + "keyword": "ํด์ธ์ฌํ ์ค๋น๋ณดํ ํ์ํ์ง ์ง์ ๋น๊ตํด๋ดค๋๋", + "usedAt": "2026-07-13T12:30:28.310241", + "source": "high_cpc" + }, + { + "keyword": "์ฌ๋ฆํด๊ฐ ๊ตญ๋ด ์ฌํ์ง ์ถ์ฒ ์ด์บ์ค ์ฝ์ค", + "usedAt": "2026-07-13T12:30:28.310241", + "source": "naver_realtime" + }, + { + "keyword": "์ฌํ์๋ณดํ ๊ฐ์ ๊ผญ ํด์ผ ํ ๊น ์ค์ ๋ณด์ ๊ฒฝํ ํ๊ธฐ", + "usedAt": "2026-07-13T23:02:26.089509", + "source": "high_cpc" + }, + { + "keyword": "์ ๊ตญ ์นํจ ๋ง์ง ์ฌํ์ง๋ ์ถ์ฒ ์ฝ์ค", + "usedAt": "2026-07-13T23:02:26.089509", + "source": "naver_realtime" + }, + { + "keyword": "ํญ๊ณต๊ถ ์ทจ์ยท์ง์ฐ ๋ณด์ ์ง์ ์ฒญ๊ตฌํด๋ณด๋ ์๊ฒ ๋ ๊ฒ", + "usedAt": "2026-07-14T05:29:14.873915", + "source": "high_cpc" + }, + { + "keyword": "์ ์ฃผ๋ ์จ๊ฒจ์ง ๋ช ์ ํ์ง์ธ๋ง ์๋ ๊ณณ ์์ง ํ๊ธฐ", + "usedAt": "2026-07-14T05:29:14.873915", + "source": "fallback" + }, + { + "keyword": "ํด์ธ์ฌํ ํ์ ์์๋ฃ 0% ๋ฐฉ๋ฒ ์ง์ ๋น๊ต ์ ๋ฆฌ", + "usedAt": "2026-07-14T11:24:28.560790", + "source": "high_cpc" + }, + { + "keyword": "์ ๊ตญ ์นํจ ๋ง์ง ์ง๋๋ก ๋ ๋๋ ์ฌํ ์ฝ์ค ์ถ์ฒ", + "usedAt": "2026-07-14T11:24:28.560790", + "source": "naver_realtime" + }, + { + "keyword": "์ ์ฃผ๋ ๋ ํฐ์นด ๋ณดํ ์ต์ ์ค์ ๋ก ํ์ํ ๊ฒ๋ง ๊ณ ๋ฅด๊ธฐ", + "usedAt": "2026-07-14T23:02:55.947821", + "source": "high_cpc" + }, + { + "keyword": "์ ๊ตญ ์นํจ ๋ง์ง ์ฌํ์ง๋ ํ์ฉ๋ฒ", + "usedAt": "2026-07-14T23:02:55.947821", + "source": "naver_realtime" + }, + { + "keyword": "ํจํค์ง์ฌํ ๊ณ์ฝ์ ํ๋ถ ์กฐํญ ์ง์ ์ฝ์ด๋ณด๊ณ ์๊ฒ ๋ ๊ฒ", + "usedAt": "2026-07-15T05:30:07.239083", + "source": "high_cpc" + }, + { + "keyword": "์ ๊ตญ ์นํจ ๋ง์ง ์ง๋๋ก ๋ ๋๋ ์ฌ๋ฆ ๊ตญ๋ด์ฌํ ์ฝ์ค ์ถ์ฒ", + "usedAt": "2026-07-15T05:30:07.239083", + "source": "naver_realtime" + }, + { + "keyword": "ํด์ธ์์ ์ฌ๊ณ ๋ฌ์ ๋ ๋์ฌ๊ด ์ ๊ณ ์ง์ ๊ฒฝํํ ๊ณผ์ ", + "usedAt": "2026-07-15T11:27:56.288188", + "source": "high_cpc" + }, + { + "keyword": "์๋๊ถ ๋ฒ์ด๋ ๊ตญ๋ด ๋ก์ปฌ ์ฌํ์ง ์ถ์ฒ 2026", + "usedAt": "2026-07-15T11:27:56.288188", + "source": "naver_realtime" + }, + { + "keyword": "์ฌํ ์ค ๋ฌผ๊ฑด ๋๋ ๊ฒฝ์ฐฐ์ ์ ๊ณ ํ ๋ณดํ ์ฒญ๊ตฌ ๋ฐฉ๋ฒ", + "usedAt": "2026-07-15T23:04:15.876380", + "source": "high_cpc" + }, + { + "keyword": "์ฅ๋ง์ฒ ๊ตญ๋ด ์ฌํ์ง ์ถ์ฒ ์ฝ์ค", + "usedAt": "2026-07-15T23:04:15.876380", + "source": "naver_realtime" + }, + { + "keyword": "๋ทํ๋ฆญ์ค vs ํฐ๋น vs ์จ์ด๋ธ ๊ตฌ๋ ๋ฃ ๋๋น ์ฝํ ์ธ ์ง์ ๋น๊ต", + "usedAt": "2026-07-16T05:39:31.199983", + "source": "high_cpc" + }, + { + "keyword": "๋ถ์ฐ ๊ณจ๋ชฉ ๋ง์ง ๊ด๊ด๊ฐ ์๋ ์ง์ง ๋ง์ง ์ง์ ๊ฐ๋ดค๋๋", + "usedAt": "2026-07-16T05:39:31.199983", + "source": "fallback" + }, + { + "keyword": "์์ด๋ ์ฝ์ํธ ํฐ์ผํ ์ฑ๋ณ ์์๋ฃ ๋น๊ต์ ๊ฟํ", + "usedAt": "2026-07-16T11:38:45.284147", + "source": "high_cpc" + }, + { + "keyword": "๊ฐ๋ฆ ์ฌํ ์์ ๊ฐ์ฑ๋น ์ต๊ณ ์๋ ๊ณณ๊ณผ ์ค๋งํ ๊ณณ ๋น๊ต", + "usedAt": "2026-07-16T11:38:45.284147", + "source": "fallback" + }, + { + "keyword": "OTT ๊ฐ์กฑ ๊ณต์ ๊ณ์ ์ ์ฑ ๋ณ๊ฒฝ ํ ๊ฐ์ฅ ์ ๋ ดํ ์ ํ", + "usedAt": "2026-07-16T23:04:06.392586", + "source": "high_cpc" + }, + { + "keyword": "์์ธ ๊ทผ๊ต ๋น์ผ์น๊ธฐ ์จ์ ๋ช ์ ๊ณ์ ๋ณ ์ถ์ฒ", + "usedAt": "2026-07-16T23:04:06.392586", + "source": "fallback" + }, + { + "keyword": "์์ ์คํธ๋ฆฌ๋ฐ ๋ฉ๋ก vs ์ง๋ vs ์ ํ๋ธ๋ฎค์ง ์๊ธ ๋น๊ต", + "usedAt": "2026-07-17T05:41:50.728794", + "source": "high_cpc" + }, + { + "keyword": "๊ฒฝ์ฃผ ๋น ์ง๋ฉด ํํํ๋ ์ผ๊ฒฝ ๋ช ์ ์ง์ ๋ค๋ ์จ ํ๊ธฐ", + "usedAt": "2026-07-17T05:41:50.728794", + "source": "fallback" + }, + { + "keyword": "๋๋ผ๋ง OST ์ ์๊ถ ์ ํ๋ธ ์ฌ์ฉ ๊ฐ๋ฅ ์ฌ๋ถ ์ง์ ํ์ธ", + "usedAt": "2026-07-17T11:20:14.469468", + "source": "high_cpc" + }, + { + "keyword": "์ ์ฃผ ํ๋ผ์ง ๋ง์ง ์ง์ ๊ฐ๋ดค๋๋ ์ค๋ง", + "usedAt": "2026-07-17T11:20:14.469468", + "source": "claude_ai" + }, + { + "keyword": "์ ์ฃผ ํ ๋ฌ ์ด๊ธฐ ์ค์ ์ํ๋น์ ์์ ๋น์ฉ ๊ณต๊ฐ", + "usedAt": "2026-07-17T22:56:01.453424", + "source": "high_cpc" + }, + { + "keyword": "๊ฐ์๋ ์ผ์ฒ ํญ์ผ ํผ์์ง ์ถ์ฒ ์ฝ์ค", + "usedAt": "2026-07-17T22:56:01.453424", + "source": "naver_realtime" + }, + { + "keyword": "๋๋จ์ ํ ๋ฌ ์ด๊ธฐ ์ง ๊ตฌํ๋ ๋ฐฉ๋ฒ๊ณผ ๊ณ์ฝ ์ฃผ์์ฌํญ", + "usedAt": "2026-07-18T05:24:55.209822", + "source": "high_cpc" + }, + { + "keyword": "์ฌ๋ฆ ํด๊ฐ์ฒ ์์ํ ๊ตญ๋ด ๊ณ๊ณก ํญํฌ ์ฌํ์ง ์ถ์ฒ", + "usedAt": "2026-07-18T05:24:55.209822", + "source": "naver_realtime" + }, + { + "keyword": "ํด์ธ ์ดํ์ฐ์ ๋น์ฉ ํ์ค์ ์ผ๋ก ์ผ๋ง๋ ๋๋", + "usedAt": "2026-07-18T11:02:00.399086", + "source": "high_cpc" + }, + { + "keyword": "์ฅ๋ง์ฒ ๊ตญ๋ด ๋ฌด๋์ ํผํ๋ ์ฌํ์ง ์ถ์ฒ 2026", + "usedAt": "2026-07-18T11:02:00.399086", + "source": "naver_realtime" + }, + { + "keyword": "๋ฏธ๊ตญ ์ํนํ๋ฆฌ๋ฐ์ด ๋ณดํ๊ณผ ๊ณ์ข ๊ฐ์ค ์ง์ ์ค๋น ๊ณผ์ ", + "usedAt": "2026-07-18T22:57:34.742767", + "source": "high_cpc" + }, + { + "keyword": "์ ์ฃผ ํ์ฅ๋ง์ ๋ง์ง ์ค ์ ์๋ ์ง ์์ง ์ถ์ฒ", + "usedAt": "2026-07-18T22:57:34.742767", + "source": "fallback" + }, + { + "keyword": "๊ฐ์๋ ์ผ์ฒ ์ฌ๋ฆ ํผ์์ง ๊ณ๊ณก ํญํฌ ์ถ์ฒ", + "usedAt": "2026-07-19T05:51:31.915830", + "source": "naver_realtime" + }, + { + "keyword": "์ ๊ตญ ์นํจ ๋ง์ง ์ง๋ K์นํจ๋ฒจํธ ์ฝ์ค", + "usedAt": "2026-07-19T05:51:31.915830", + "source": "naver_realtime" + }, + { + "keyword": "1์ธ๊ฐ๊ตฌ N์ก๋ฌ ๋ถ์ ์์ต ์ฃผ์ ETF ํฌ์ ๋ ธํ์ฐ", + "usedAt": "2026-07-19T11:08:21.935323", + "source": "naver_realtime" + }, + { + "keyword": "์ฌ๋ฆ์ฒ ์จ์ด์งํ ์๋ฐฉ๋ฒ๊ณผ ์ฆ์ ๋์ฒ ์ด์ ๋ฆฌ", + "usedAt": "2026-07-19T11:08:21.935323", + "source": "naver_realtime" + }, + { + "keyword": "1์ธ ๊ฐ๊ตฌ ์ฌํ ํฌ ์ ๋ต 2026 ์์ ๊ธ ๋์ ํฌ์ ๋ฐฉ๋ฒ", + "usedAt": "2026-07-19T22:59:03.044061", + "source": "naver_realtime" + }, + { + "keyword": "๋ฐ๋์ฒด ์ ์ ๋งค์ ํ์ด๋ฐ 2026 ETF ํฌ์ ๊ฐ์ด๋", + "usedAt": "2026-07-19T22:59:03.044061", + "source": "naver_realtime" + }, + { + "keyword": "์๋ฌ๋ฌ ํ์จ 1500์๋ ํํ ํฌ ๋์๋ฒ", + "usedAt": "2026-07-20T06:17:37.798005", + "source": "naver_realtime" + }, + { + "keyword": "๋จ์ฑ ์ฒญ์๋ HPV ์๋ฐฉ์ ์ข ๋น์ฉยท์ง์ ์ด์ ๋ฆฌ", + "usedAt": "2026-07-20T06:17:37.798005", + "source": "naver_realtime" + }, + { + "keyword": "์ง์ฅ์ธ ์ 30๋ง์ ETF ํฌ์ ์์ง ํ๊ธฐ", + "usedAt": "2026-07-20T12:15:16.239537", + "source": "fallback" + }, + { + "keyword": "ISA ๊ณ์ข 3๋ ์ง์ ์จ๋ณธ ๊ฒฐ๊ณผ", + "usedAt": "2026-07-20T12:15:16.239537", + "source": "fallback" + }, + { + "keyword": "์ง์ฅ์ธ ์ 30๋ง์ ETF ํฌ์ ์์ง ํ๊ธฐ", + "usedAt": "2026-07-20T23:06:31.703041", + "source": "fallback" + }, + { + "keyword": "ISA ๊ณ์ข 3๋ ์ง์ ์จ๋ณธ ๊ฒฐ๊ณผ", + "usedAt": "2026-07-20T23:06:31.703041", + "source": "fallback" + }, + { + "keyword": "์ง์ฅ์ธ ์ 30๋ง์ ETF ํฌ์ ์์ง ํ๊ธฐ", + "usedAt": "2026-07-21T05:49:05.081550", + "source": "fallback" + }, + { + "keyword": "ISA ๊ณ์ข 3๋ ์ง์ ์จ๋ณธ ๊ฒฐ๊ณผ", + "usedAt": "2026-07-21T05:49:05.081550", + "source": "fallback" + }, + { + "keyword": "์ง์ฅ์ธ ์ 30๋ง์ ETF ํฌ์ ์์ง ํ๊ธฐ", + "usedAt": "2026-07-21T11:46:03.625954", + "source": "fallback" + }, + { + "keyword": "ISA ๊ณ์ข 3๋ ์ง์ ์จ๋ณธ ๊ฒฐ๊ณผ", + "usedAt": "2026-07-21T11:46:03.625954", + "source": "fallback" + }, + { + "keyword": "์ง์ฅ์ธ ์ 30๋ง์ ETF ํฌ์ ์์ง ํ๊ธฐ", + "usedAt": "2026-07-21T15:01:59.686274", + "source": "fallback" + }, + { + "keyword": "ISA ๊ณ์ข 3๋ ์ง์ ์จ๋ณธ ๊ฒฐ๊ณผ", + "usedAt": "2026-07-21T15:01:59.686274", + "source": "fallback" + }, + { + "keyword": "์ฌ์ ๋ฐค๋ฐ๋ค ์์ ์ค์ ๋ทฐ ๊ฐ์ฑ๋น ๋น๊ต ์ง์ ์์ฝํด๋ดค๋๋", + "usedAt": "2026-07-21T23:04:13.370451", + "source": "fallback" + }, + { + "keyword": "์์ด ์ฌํ ๊ฒจ์ธ์ ๊ฐ๋ฉด ์ข์ ์ด์ ์ ์จ์ ๋ง์ง", + "usedAt": "2026-07-21T23:04:13.370451", + "source": "fallback" + }, + { + "keyword": "ํต์ ํ๋ฃจ ์ฝ์ค ์์ง ๋ช ์์ ์์ ์ค์ ํ๊ธฐ", + "usedAt": "2026-07-22T05:49:14.181952", + "source": "fallback" + }, + { + "keyword": "๋จํด ๋ ์ผ๋ง์ ๋ฐฉ๋ฌธ ์ ์์์ผ๋ฉด ์ข์ ๊ฒ๋ค", + "usedAt": "2026-07-22T05:49:14.181952", + "source": "fallback" + }, + { + "keyword": "์ธ์ฒ ์ฐจ์ด๋ํ์ด ๋ง์ง๊ณผ ๋ณผ๊ฑฐ๋ฆฌ ์ง์ ๋ค๋ ์จ ์์ง ํ๊ฐ", + "usedAt": "2026-07-22T11:46:16.152968", + "source": "fallback" + }, + { + "keyword": "์๋ ํํ๋ง์ ํผ์ ์ฌํํ๊ธฐ ์ข์๊น ์์ง ํ๊ธฐ", + "usedAt": "2026-07-22T11:46:16.152968", + "source": "fallback" + }, + { + "keyword": "์ถ์ฒ ๋ญ๊ฐ๋น ๊ณจ๋ชฉ ์ง์ง ๋ง์ง๊ณผ ํผํด์ผ ํ ๊ณณ", + "usedAt": "2026-07-22T23:10:52.256993", + "source": "fallback" + }, + { + "keyword": "๋ด์ ๋ฉํ์ธ์ฟผ์ด์๊ธธ ๊ณ์ ๋ณ ๋ค๋ฅธ ๋งค๋ ฅ ์ง์ ๋ฐฉ๋ฌธ ํ๊ธฐ", + "usedAt": "2026-07-22T23:10:52.256993", + "source": "fallback" + } + ], + "updatedAt": "2026-07-22T23:10:52.257062" +} \ No newline at end of file diff --git a/blog-automation/main.py b/blog-automation/main.py index 2c35a43ff1df6..429ccf287a51d 100644 --- a/blog-automation/main.py +++ b/blog-automation/main.py @@ -18,6 +18,7 @@ import argparse import logging import os +import re import sys import time from datetime import datetime @@ -58,6 +59,7 @@ AUTO_SERIES_MIN_DAYS, ADSENSE_VALIDATION, ADSENSE_MIN_SCORE, + SOCIAL_AUTO_PUBLISH, get_blog_configs, ) from content_generator import generate_post, generate_series_post @@ -65,6 +67,16 @@ from blogger_uploader import upload_post from keyword_collector import get_trending_keywords, _migrate_used_keywords from dashboard_exporter import log_run, export_dashboard, save_pending_posts +from post_manager import ( + register_post, update_post_status, save_draft, get_failed_posts, + retry_failed_posts, + Status as PostStatus, migrate_from_run_history, +) + +# โโ ์คํจ ์๋ ํ๋ฆ ๋ณด์ฅ ์์ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ +MAX_ADSENSE_RETRY = 2 # AdSense ์ฌ์ ๊ฒ์ฆ ๋ถํฉ๊ฒฉ ์ ์ฝํ ์ธ ์ฌ์์ฑ ์ต๋ ํ์ +MAX_UPLOAD_RETRY = 3 # Blogger API ์ ๋ก๋ ์คํจ ์ ์ฌ์๋ ์ต๋ ํ์ +# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ # โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ @@ -117,6 +129,20 @@ def run_once( logger.info(f"{blog_label}๋ธ๋ก๊ทธ ์๋ํ ์์: {datetime.now().strftime('%Y-%m-%d %H:%M:%S')}") logger.info("=" * 60) + # ์๋ ํค์๋๊ฐ ์์ผ๋ฉด ํฌ์คํ ์ด๋ ฅ ๋๋น ์ ์ฌ๋ ์ฌ์ ์ ๊ฒ (๊ฒฝ๊ณ ๋ง, ์ฐจ๋จ ์์) + if keywords: + try: + from keyword_collector import _load_recent_post_corpus, _is_too_similar + _corpus = _load_recent_post_corpus(blog_id=cfg.get("id", "")) + for _kw in keywords: + if _is_too_similar(_kw, _corpus): + logger.warning( + f" โ ๏ธ ์๋ ํค์๋ '{_kw}'๋ ์ต๊ทผ ํฌ์คํ ์ด๋ ฅ๊ณผ ์ ์ฌํฉ๋๋ค โ " + "์ ๋ชฉ์ด ์ค๋ณต๋๋ฉด ์ ๋ก๋ ๋จ๊ณ์์ ์ฐจ๋จ๋ฉ๋๋ค." + ) + except Exception as _ke: + logger.debug(f"์๋ ํค์๋ ์ ์ฌ๋ ์ ๊ฒ ์คํจ (๋ฌด์): {_ke}") + # ํค์๋ ์์ง (์๋ ์๋ฆฌ์ฆ๋ฅผ ์ํด ์ฌ์ ๋ถ +1๊ฐ ๋ ์์ง) if not keywords: collect_count = POSTS_PER_RUN + (1 if AUTO_SERIES and not dry_run and not review else 0) @@ -154,9 +180,9 @@ def run_once( if AUTO_SERIES and not dry_run and not review: from series_planner import get_last_series_date, pick_series_keyword, plan_drama_series - from keyword_collector import _naver_drama_news, extract_drama_titles + blog_id = cfg.get("id", "") - last_date = get_last_series_date() + last_date = get_last_series_date(blog_id=blog_id) days_elapsed = (datetime.now() - last_date).days if last_date else AUTO_SERIES_MIN_DAYS + 1 if days_elapsed >= AUTO_SERIES_MIN_DAYS: @@ -165,25 +191,27 @@ def run_once( f"(๋ง์ง๋ง ์๋ฆฌ์ฆ: {'์์' if not last_date else f'{days_elapsed}์ผ ์ '})" ) - # โ ์ธ๊ธฐ ๋๋ผ๋ง ํ์ง โ ํธ๋ ๋ ํค์๋๋ณด๋ค ์ฐ์ - drama_headlines = _naver_drama_news( - os.getenv("NAVER_CLIENT_ID", ""), - os.getenv("NAVER_CLIENT_SECRET", ""), - ) - drama_titles = extract_drama_titles(drama_headlines) - - if drama_titles: - drama_name = drama_titles[0] - logger.info(f"[์๋ ๋๋ผ๋ง ์๋ฆฌ์ฆ] '{drama_name}' ๊ฐ์ง โ ๋ฆฌ๋ทฐ ์๋ฆฌ์ฆ ๊ธฐํ ์์") - auto_series_plan = plan_drama_series(drama_name, AUTO_SERIES_COUNT) - if auto_series_plan: - auto_series_keyword = drama_name - else: - logger.warning("๋๋ผ๋ง ์๋ฆฌ์ฆ ๊ธฐํ ์คํจ โ ์ผ๋ฐ ํธ๋ ๋ ์๋ฆฌ์ฆ๋ก ํด๋ฐฑ") - - # โก ๋๋ผ๋ง ์์ ๋๋ ๊ธฐํ ์คํจ โ ์ผ๋ฐ ํธ๋ ๋ ํค์๋ ์ค ์๋ฆฌ์ฆ ์ ์ + # โ blog1 ์ ์ฉ โ ์ธ๊ธฐ ๋๋ผ๋ง ํ์ง (์ฌํยท๋๋ผ๋งยท์ฐ์ยทK-POP ๋ธ๋ก๊ทธ) + if blog_id in ("blog1", ""): + from keyword_collector import _naver_drama_news, extract_drama_titles + drama_headlines = _naver_drama_news( + os.getenv("NAVER_CLIENT_ID", ""), + os.getenv("NAVER_CLIENT_SECRET", ""), + ) + drama_titles = extract_drama_titles(drama_headlines) + if drama_titles: + drama_name = drama_titles[0] + logger.info(f"[์๋ ๋๋ผ๋ง ์๋ฆฌ์ฆ] '{drama_name}' ๊ฐ์ง โ ๋ฆฌ๋ทฐ ์๋ฆฌ์ฆ ๊ธฐํ ์์") + auto_series_plan = plan_drama_series(drama_name, AUTO_SERIES_COUNT) + if auto_series_plan: + auto_series_plan["blog_id"] = blog_id + auto_series_keyword = drama_name + else: + logger.warning("๋๋ผ๋ง ์๋ฆฌ์ฆ ๊ธฐํ ์คํจ โ ์ผ๋ฐ ํธ๋ ๋ ์๋ฆฌ์ฆ๋ก ํด๋ฐฑ") + + # โก ๋๋ผ๋ง ๋ฏธํ์ง / blog2 / blog3 โ ๋ธ๋ก๊ทธ ์ฃผ์ ์ ๋ง๋ ํค์๋ ์ ์ if not auto_series_keyword: - auto_series_keyword = pick_series_keyword(keywords) + auto_series_keyword = pick_series_keyword(keywords, blog_config=blog_config) else: logger.info( @@ -198,7 +226,7 @@ def run_once( f"[์๋ ์๋ฆฌ์ฆ] '{auto_series_keyword}' {AUTO_SERIES_COUNT}ํธ ๊ธฐํ ์์ " f"(์ดํ ๋จ๋ ํฌ์คํธ {len(remaining)}๊ฐ)" ) - run_series(auto_series_keyword, AUTO_SERIES_COUNT, series_plan=auto_series_plan) + run_series(auto_series_keyword, AUTO_SERIES_COUNT, series_plan=auto_series_plan, blog_config=blog_config) keywords = remaining else: keywords = keywords[:POSTS_PER_RUN] @@ -212,19 +240,57 @@ def run_once( completed_posts: list[dict] = [] error_messages: list[str] = [] + # run_history โ post_registry ๋ง์ด๊ทธ๋ ์ด์ (์ต์ด 1ํ) + try: + from dashboard_exporter import _load_history as _lh + _hist = _lh() + if _hist: + migrate_from_run_history(_hist) + except Exception: + pass + + _run_number = int(os.getenv("GITHUB_RUN_NUMBER", "0")) + _source = "manual" if (dry_run or review) else "auto" + for i, keyword in enumerate(keywords, 1): logger.info(f"\n[{i}/{len(keywords)}] ํค์๋: '{keyword}'") - # ํฌ์คํธ ์์ฑ - post_data = generate_post(keyword) + # โโ โ ์ฝํ ์ธ ์์ฑ + AdSense ์ฌ์ ๊ฒ์ฆ (์ต๋ MAX_ADSENSE_RETRYํ) โโโโโโโโโโโโโ + # ๋ชฉํ: harmful_content ๋๋ ์ฌ๊ฐํ ํ์ง ๋ฌธ์ ์กฐ๊ธฐ ๊ฐ์ง โ ์ฌ์์ฑ + post_data = None + for gen_attempt in range(1, MAX_ADSENSE_RETRY + 1): + _post = generate_post(keyword, blog_config=cfg) + if not _post: + logger.warning(f" ์ฝํ ์ธ ์์ฑ ์คํจ (์๋ {gen_attempt}/{MAX_ADSENSE_RETRY})") + if gen_attempt < MAX_ADSENSE_RETRY: + time.sleep(3) + continue + break # ์ ์ฒด ์คํจ โ post_data=None + + # AdSense ์ฌ์ ๊ฒ์ฆ: ์ ํด ์ฝํ ์ธ ๋๋ ์ ์ < 55์ด๋ฉด ์ฌ์์ฑ + if ADSENSE_VALIDATION: + _pre = validate_adsense(_post) + if _pre["recommendation"] == "reject" and gen_attempt < MAX_ADSENSE_RETRY: + logger.warning( + f" โ ๏ธ ์ฌ์ ๊ฒ์ฆ ๋ถํฉ๊ฒฉ (์ ์: {_pre['score']}/100, " + f"์ด์ : {_pre.get('issues', [])[:1]}) โ " + f"์ฌ์์ฑ {gen_attempt+1}/{MAX_ADSENSE_RETRY}" + ) + time.sleep(3) + continue + + post_data = _post + break + if not post_data: - msg = f"์ฝํ ์ธ ์์ฑ ์คํจ: '{keyword}'" - logger.error(f" {msg}") + msg = f"์ฝํ ์ธ ์์ฑ ์ต์ข ์คํจ ({MAX_ADSENSE_RETRY}ํ ์๋): '{keyword}'" + logger.error(f" โ {msg}") fail_count += 1 error_messages.append(msg) continue + # โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ - # ๋ด๋ถ ๋งํฌ ์๋ ์ฝ์ (๊ธฐ์กด ํฌ์คํธ์ ์ฐ๊ฒฐ โ SEO ๊ฐ์ ) + # โโ โก ๋ด๋ถ ๋งํฌ ์ฝ์ (SEO โ non-blocking) โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ try: from internal_linker import insert_internal_links post_data["content"] = insert_internal_links(post_data) @@ -233,50 +299,182 @@ def run_once( title = post_data.get("title", "?") images = post_data.get("images_inserted", 0) + word_count = post_data.get("word_count", 0) logger.info(f" ์ ๋ชฉ: {title}") logger.info(f" ์ด๋ฏธ์ง: {images}๊ฐ ์ฝ์ ") + logger.info(f" ๊ธ์ ์: {word_count}์") + + # 2500์ ๋ฏธ๋ฌ โ pending ์ ์ฅ (thin content ์ ๋ก๋ ๋ฐฉ์ง) + if not (dry_run or review) and word_count < 2500: + msg = f"๊ธ์ ์ ๋ฏธ๋ฌ โ pending ์ ์ฅ: '{title}' ({word_count}์ < 2500์)" + logger.warning(f" โ ๏ธ {msg}") + post_data["status"] = "pending" + _pid = register_post(post_data, PostStatus.PENDING, blog_config, source=_source, run_number=_run_number) + save_draft(_pid, post_data) + save_pending_posts([post_data], blog_config) + completed_posts.append(post_data) + success_count += 1 + continue if dry_run or review: mode_label = "๊ฒํ ๋ชจ๋" if review else "ํ ์คํธ ๋ชจ๋" logger.info(f" [{mode_label}] ์ ๋ก๋ ๊ฑด๋๋") + register_post(post_data, PostStatus.PENDING, blog_config, source=_source, run_number=_run_number) completed_posts.append(post_data) success_count += 1 continue - # AdSense ์ ์ฑ ๊ฒ์ฆ + # โโ โข AdSense ์ต์ข ๊ฒ์ฆ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ + # ์ ์ฑ : harmful_content โ reject(skip) / 65-79(review) โ pending ์ ์ฅ / 80+ โ ์ ๋ก๋ if ADSENSE_VALIDATION: validation = validate_adsense(post_data) post_data["adsense_score"] = validation["score"] post_data["adsense_recommendation"] = validation["recommendation"] + if validation["recommendation"] == "reject": - msg = f"AdSense ์ ์ฑ ์๋ฐ โ ์ ๋ก๋ ์ทจ์: '{title}' (์ ์: {validation['score']}/100)" + # harmful_content fail = ์ ํด ์ฝํ ์ธ โ ์ ๋ก๋ ๋ถ๊ฐ + msg = ( + f"AdSense ์ ํด ์ฝํ ์ธ ๊ฐ์ง โ ์ ๋ก๋ ์ทจ์: '{title}' " + f"(์ ์: {validation['score']}/100)" + ) logger.error(f" โ {msg}") - for issue in validation["issues"]: + for issue in validation.get("issues", []): logger.error(f" ๐ด {issue}") + register_post(post_data, PostStatus.SKIPPED, blog_config, source=_source, run_number=_run_number) fail_count += 1 error_messages.append(msg) continue + + # review(65-79) ๋๋ ADSENSE_MIN_SCORE(80) ๋ฏธ๋ฌ โ ์๋ ์์ 1ํ ์๋ ํ ์ฌ๊ฒ์ฆ if validation["recommendation"] == "review" or validation["score"] < ADSENSE_MIN_SCORE: logger.warning( - f" โ ๏ธ AdSense ๊ฒํ ํ์ โ pending ์ ์ฅ (์ ์: {validation['score']}/100)" + f" โ ๏ธ AdSense ๊ธฐ์ค ๋ฏธ๋ฌ (์ ์: {validation['score']}/100, " + f"๊ถ์ฅ: {validation['recommendation']}) โ ์๋ ์์ ์๋" ) - post_data["status"] = "pending" - completed_posts.append(post_data) - save_pending_posts([post_data]) - success_count += 1 - continue + for issue in validation.get("issues", []): + logger.warning(f" ๐ด {issue}") + for warn in validation.get("warnings", [])[:3]: + logger.warning(f" ๐ก {warn}") + + # โโ ์๋ ์์ (Claude๊ฐ ์ง์ ํญ๋ชฉ ๊ฐ์ ) โโโโโโโโโโโโโโโโโโโโโโโ + try: + from adsense_validator import fix_adsense_issues + fixed = fix_adsense_issues(post_data, validation) + if fixed: + logger.info(" ๐ง ์๋ ์์ ์๋ฃ โ ์ฌ๊ฒ์ฆ ์์") + re_val = validate_adsense(fixed) + if re_val["score"] >= ADSENSE_MIN_SCORE and re_val["recommendation"] != "reject": + logger.info( + f" โ ์๋ ์์ ํ AdSense ํต๊ณผ " + f"(์ ์: {validation['score']} โ {re_val['score']}/100)" + ) + post_data = fixed + post_data["adsense_score"] = re_val["score"] + post_data["adsense_recommendation"] = re_val["recommendation"] + validation = re_val + # ํต๊ณผํ์ผ๋ฏ๋ก ์๋ ์ ๋ก๋ ๋จ๊ณ๋ก ์งํ + else: + logger.warning( + f" โ ๏ธ ์๋ ์์ ํ์๋ ๊ธฐ์ค ๋ฏธ๋ฌ " + f"(์ ์: {re_val['score']}/100) โ pending ์ ์ฅ" + ) + post_data = fixed # ๊ทธ๋๋ ์์ ๋ณธ ์ ์ฅ + post_data["adsense_score"] = re_val["score"] + validation = re_val + else: + logger.warning(" โ ๏ธ ์๋ ์์ ๋ถ๊ฐ โ pending ์ ์ฅ") + except Exception as _fe: + logger.warning(f" โ ๏ธ ์๋ ์์ ์ค๋ฅ (๋ฌด์): {_fe}") + + # ์ฌ๊ฒ์ฆ ํ์๋ ๊ธฐ์ค ๋ฏธ๋ฌ์ด๋ฉด pending ์ ์ฅ + if validation["recommendation"] != "upload" or validation["score"] < ADSENSE_MIN_SCORE: + msg = ( + f"AdSense ๊ธฐ์ค ๋ฏธ๋ฌ โ pending ์ ์ฅ: '{title}' " + f"(์ ์: {validation['score']}/100, ๊ถ์ฅ: {validation['recommendation']})" + ) + logger.warning(f" โ ๏ธ {msg}") + post_data["status"] = "pending" + _pid = register_post(post_data, PostStatus.PENDING, blog_config, source=_source, run_number=_run_number) + save_draft(_pid, post_data) + save_pending_posts([post_data], blog_config) + completed_posts.append(post_data) + success_count += 1 + continue + + logger.info(f" โ AdSense ๊ฒ์ฆ ํต๊ณผ (์ ์: {validation['score']}/100) โ ์ ๋ก๋") + # โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ + + # โโ โข.5 ์ต์ข ํธ์ง (์ ๋ชฉโ์์ ๋ชฉ ์ ํฉ์ฑยท๋ฌธ์ฒดยทSEO ๋ง๋ฌด๋ฆฌ) โโโโโโโโโโโโโโโโโโโโ + try: + from final_editor import polish_post + post_data = polish_post(post_data) + except Exception as _fe: + logger.debug(f" ์ต์ข ํธ์ง ๊ฑด๋๋ (๋ฌด์): {_fe}") + # โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ + + # โโ โฃ ๋ ์ง์คํธ๋ฆฌ ๋ฑ๋ก (pending) + ์ด์ ์ ์ฅ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ + _post_id = register_post(post_data, PostStatus.PENDING, blog_config, source=_source, run_number=_run_number) + save_draft(_post_id, post_data) + + # โโ โค Blogger ์ ๋ก๋ (์ต๋ MAX_UPLOAD_RETRYํ ์ฌ์๋) โโโโโโโโโโโโโโโโโโโโโโโ + result = None + for upload_try in range(1, MAX_UPLOAD_RETRY + 1): + result = upload_post(post_data, blog_config) + if result: + break + if upload_try < MAX_UPLOAD_RETRY: + _wait = 5 * upload_try + logger.warning( + f" ์ ๋ก๋ ์คํจ โ {_wait}s ๋๊ธฐ ํ ์ฌ์๋ " + f"({upload_try}/{MAX_UPLOAD_RETRY})" + ) + time.sleep(_wait) - # Blogger ์ ๋ก๋ - result = upload_post(post_data, blog_config) if result: url = result.get("url", "") post_data["blogUrl"] = url + update_post_status(_post_id, PostStatus.PUBLISHED, blog_url=url) logger.info(f" โ ์ ๋ก๋ ์ฑ๊ณต: {url}") + + # โโ โฅ ์์ ๋ฏธ๋์ด ์ฝํ ์ธ ์์ฑ (์์ non-blocking) โโโโโโโโโโโโโโโโโโโโโโ + try: + from social_publisher import publish_all, generate_social_content + if SOCIAL_AUTO_PUBLISH: + _img_m = re.search(r']+src="([^"]+)"', post_data.get("content", "")) + social_result = publish_all( + post_data, blog_url=url, + image_url=_img_m.group(1) if _img_m else None, + ) + else: + social_content = generate_social_content(post_data, blog_url=url) + _skip = {"skipped": True, "reason": "SOCIAL_AUTO_PUBLISH=false"} + social_result = { + "socialContent": social_content, + "instagram": _skip, "threads": _skip, "tiktok": _skip, + } + logger.info(f" ๐ฑ ์์ ์ฝํ ์ธ ์์ฑ ์๋ฃ") + post_data["socialContent"] = social_result.get("socialContent") + post_data["social_instagram"] = social_result.get("instagram") + post_data["social_threads"] = social_result.get("threads") + post_data["social_tiktok"] = social_result.get("tiktok") + except Exception as _se: + logger.warning(f" โ ๏ธ ์์ ์ฝํ ์ธ ์์ฑ ์คํจ (๋ฌด์): {_se}") + + # โโ โฆ ์จ์ ๋๊ธ (์์ non-blocking โ ์ ๋ก๋ ์ฑ๊ณต์ ์ํฅ ์์) โโโโโโโโโโโโ + try: + from comment_manager import seed_new_post as _seed_post + _blogger_post_id = result.get("id", "") + post_data["_blogger_post_id"] = _blogger_post_id + _seed_post(post_data, blog_config or {}, blogger_post_id=_blogger_post_id) + except Exception as _cm_e: + logger.debug(f" ์จ์ ๋๊ธ ๊ฑด๋๋ (๋ฌด์): {_cm_e}") + completed_posts.append(post_data) success_count += 1 blogger_count += 1 else: - msg = f"Blogger ์ ๋ก๋ ์คํจ: '{title}'" + msg = f"Blogger ์ ๋ก๋ ์ต์ข ์คํจ ({MAX_UPLOAD_RETRY}ํ ์๋): '{title}'" + update_post_status(_post_id, PostStatus.FAILED, error=msg) logger.error(f" โ {msg}") fail_count += 1 error_messages.append(msg) @@ -312,6 +510,57 @@ def run_once( # ์๋ฆฌ์ฆ ๋ชจ๋ # โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ +def process_scheduled_series() -> None: + """๋ฐํ ์์ฝ๋ ์๋ฆฌ์ฆ ํธ์ ์ฒ๋ฆฌํฉ๋๋ค (๋งค์ผ ์ค์ผ์ค ์คํ์ฉ). + + logs/series.json์์ status=scheduled์ธ ํธ ์ค ์์ฝ์ผ์ด ์ค๋ ์ดํ์ธ ๊ฒ์ + ์ฐพ์ run_series๋ก ์ด์ด์ ์์ฑยท๊ฒ์ํฉ๋๋ค. run_series๋ ์ด๋ฏธ ์ฒ๋ฆฌ๋ ํธ๊ณผ + ์์ฝ์ผ ๋ฏธ๋๋ ํธ์ ๊ฑด๋๋ฐ๋ฏ๋ก ์์ ํ๊ฒ ์ฌ์คํ๋ฉ๋๋ค. + ์๋ฃ ๋ถ์กฑ(๋ฐฉ์ ์งํ) ์ ๋ค์ ๋ ๋ก ์๋ ์ฌ์์ฝ๋ฉ๋๋ค. + """ + from datetime import date as _date + from series_planner import load_series + + today = _date.today().isoformat() + all_series = load_series() + blogs = {b.get("id"): b for b in get_blog_configs()} + + due_plans = [] + for plan in all_series: + eps = plan.get("episodes", []) + due = [ + e for e in eps + if e.get("status") == "scheduled" + and (not e.get("scheduled_date") or e["scheduled_date"] <= today) + ] + waiting = [e for e in eps if e.get("status") == "scheduled"] + if due: + due_plans.append((plan, due)) + elif waiting: + nxt = min((e.get("scheduled_date") or "๋ฏธ์ ") for e in waiting) + logger.info( + f"โณ '{plan.get('series_title','?')}' ์์ฝ {len(waiting)}ํธ ๋๊ธฐ ์ค (๋ค์ {nxt})" + ) + + if not due_plans: + logger.info("์ค๋ ์ฒ๋ฆฌํ ๋ฐํ ์์ฝ ํธ์ด ์์ต๋๋ค") + return + + for plan, due in due_plans: + cfg = blogs.get(plan.get("blog_id")) + logger.info("=" * 60) + logger.info( + f"๐ ์์ฝ ์ฒ๋ฆฌ: '{plan.get('series_title','?')}' โ " + f"์ค๋ ๋๋ {len(due)}ํธ ({', '.join(str(e.get('drama_episode') or e.get('episode')) + 'ํ' for e in due)})" + ) + run_series( + plan.get("keyword", ""), + plan.get("total_episodes", len(plan.get("episodes", []))), + series_plan=plan, + blog_config=cfg, + ) + + def run_series( keyword: str, count: int = 4, @@ -321,7 +570,7 @@ def run_series( blog_config: dict | None = None, ) -> None: """์๋ฆฌ์ฆ ํฌ์คํธ๋ฅผ ์์๋๋ก ๊ธฐํยท์์ฑยท๊ฒ์ํฉ๋๋ค.""" - from series_planner import plan_series, build_series_nav, save_series + from series_planner import plan_series, build_series_nav, save_series, save_series_with_blog cfg = blog_config or {} blog_label = f"[{cfg.get('name', '๊ธฐ๋ณธ')}] " if cfg.get("name") else "" @@ -331,10 +580,14 @@ def run_series( logger.info("=" * 60) if series_plan is None: - series_plan = plan_series(keyword, count) + series_plan = plan_series(keyword, count, blog_config=blog_config) if not series_plan: logger.error("์๋ฆฌ์ฆ ๊ธฐํ ์คํจ โ ์ข ๋ฃ") return + # blog_id ํ๊น ๋ณด์ฅ + if cfg.get("id") and not series_plan.get("blog_id"): + series_plan["blog_id"] = cfg["id"] + series_plan["blog_name"] = cfg.get("name", "") save_series(series_plan) logger.info(f"์๋ฆฌ์ฆ ๊ธฐํ ์๋ฃ: '{series_plan.get('series_title')}'") for ep in series_plan.get("episodes", []): @@ -344,10 +597,28 @@ def run_series( pending_list: list[dict] = [] episodes = series_plan.get("episodes", []) + from datetime import date as _date + today_str = _date.today().isoformat() + for ep_idx, ep in enumerate(episodes): ep_num = ep["episode"] ep_keyword = ep.get("search_keyword", keyword) + # ์ด๋ฏธ ์ฒ๋ฆฌ๋ ํธ์ ๊ฑด๋๋ (์ฌ์คํยท์์ฝ ์ฒ๋ฆฌ ์ ์ค๋ณต ๋ฐฉ์ง) + if ep.get("status") in ("done", "pending_review"): + logger.info(f"--- [{ep_num}/{len(episodes)}ํธ] ์ด๋ฏธ ์ฒ๋ฆฌ๋จ({ep['status']}) โ ๊ฑด๋๋ ---") + continue + # ๋ฐํ ์์ฝ ํธ: ์์ฝ์ผ ์ ์ด๋ฉด ๊ฑด๋๋ (๋งค์ผ ์์ฝ ์ฒ๋ฆฌ๊ธฐ๊ฐ ๋๋ ์ ์์ฑ) + if ep.get("status") == "scheduled": + sched = ep.get("scheduled_date") + if sched and sched > today_str: + logger.info( + f"--- [{ep_num}/{len(episodes)}ํธ] ๐ ๋ฐํ ์์ฝ " + f"(๋ฐฉ์ {ep.get('air_date','?')} โ {sched} ์์ฑ ์์ ) โ ๊ฑด๋๋ ---" + ) + continue + logger.info(f"--- [{ep_num}/{len(episodes)}ํธ] ๐ ์์ฝ์ผ ๋๋ โ ์์ฑ ์๋ ---") + logger.info(f"\n--- [{ep_num}/{len(episodes)}ํธ] '{ep_keyword}' ์์ฑ ์ค ---") series_context = { @@ -355,17 +626,34 @@ def run_series( "episode": ep_num, "focus": ep.get("focus", ""), "title": ep.get("title", ""), + "drama_episode": ep.get("drama_episode"), # ํ์ฐจ๋ณ ๋ฆฌ๋ทฐ: ์ค์ ๋๋ผ๋ง ํ์ฐจ } - post_data = generate_series_post(ep_keyword, "N/A", series_context) + post_data = generate_series_post(ep_keyword, "N/A", series_context, blog_config=blog_config) if not post_data: - logger.error(f"ํธ {ep_num} ์์ฑ ์คํจ โ ๊ฑด๋๋") - ep["status"] = "failed" + if ep.get("scheduled_date") or ep.get("air_date"): + # ์์ฝ ํธ: ์๋ฃ ๋ถ์กฑ(๋ฐฉ์ ์งํ ๊ธฐ์ฌ ๋ฏธ์ง๊ณ ๋ฑ) โ ๋ค์ ๋ ์ฌ์๋ + from datetime import timedelta as _td + attempts = ep.get("schedule_attempts", 0) + 1 + ep["schedule_attempts"] = attempts + if attempts >= 7: + logger.error(f"ํธ {ep_num} ์์ฝ ์์ฑ 7ํ ์คํจ โ failed ์ฒ๋ฆฌ") + ep["status"] = "failed" + else: + ep["status"] = "scheduled" + ep["scheduled_date"] = (_date.today() + _td(days=1)).isoformat() + logger.warning( + f"ํธ {ep_num} ๋ฐฉ์ ํ ์๋ฃ ๋ถ์กฑ โ {ep['scheduled_date']}๋ก ์ฌ์์ฝ " + f"(์๋ {attempts}/7)" + ) + else: + logger.error(f"ํธ {ep_num} ์์ฑ ์คํจ โ ๊ฑด๋๋") + ep["status"] = "failed" save_series(series_plan) continue ep["status"] = "generated" - nav_html = build_series_nav(series_plan, ep_num) + nav_html = build_series_nav(series_plan, ep_num, blog_url=cfg.get("url", "")) post_data["series_nav"] = nav_html post_data["series_label"] = series_plan.get("series_label", "") @@ -384,6 +672,19 @@ def run_series( save_series(series_plan) continue + # ๋ถ๋ ๋ฏธ๋ฌ โ pending ์ ์ฅ (thin content ์ ๋ก๋ ๋ฐฉ์ง) + # ๋๋ผ๋ง ํ์ฐจ๋ณ ๋ฆฌ๋ทฐ๋ ๋จ์ผ ํ์ฐจ ์ฃผ์ ํน์ฑ์ ๊ธฐ์ค ์ํ (2000์) + series_min_wc = 2000 if series_plan.get("type") == "drama_episode_review" else 2500 + series_wc = post_data.get("word_count", 0) + if series_wc < series_min_wc: + logger.warning(f" โ ๏ธ [ํธ {ep_num}] ๊ธ์ ์ ๋ฏธ๋ฌ ({series_wc}์ < {series_min_wc}์) โ pending ์ ์ฅ") + post_data["status"] = "pending" + pending_list.append(post_data) + ep["status"] = "pending_review" + generated_posts.append(post_data) + save_series(series_plan) + continue + # AdSense ์ ์ฑ ๊ฒ์ฆ if ADSENSE_VALIDATION: validation = validate_adsense(post_data) @@ -409,6 +710,13 @@ def run_series( save_series(series_plan) continue + # โโ ์ต์ข ํธ์ง (์ ๋ชฉโ์์ ๋ชฉ ์ ํฉ์ฑยท๋ฌธ์ฒดยทSEO ๋ง๋ฌด๋ฆฌ) โโโโโโโโโโโโโโโโโโโโโโ + try: + from final_editor import polish_post + post_data = polish_post(post_data) + except Exception as _fe: + logger.debug(f" ์ต์ข ํธ์ง ๊ฑด๋๋ (๋ฌด์): {_fe}") + result = upload_post(post_data, blog_config) if result: blogger_url = result.get("url", "") @@ -427,8 +735,12 @@ def run_series( if ep_idx < len(episodes) - 1: time.sleep(3) + has_scheduled = any(ep.get("status") == "scheduled" for ep in episodes) all_done = all(ep.get("status") in ("done", "pending_review") for ep in episodes) - series_plan["status"] = "completed" if all_done else "partial" + if has_scheduled: + series_plan["status"] = "scheduled_wait" # ์์ฝ ํธ ๋๊ธฐ ์ค โ ๋งค์ผ ์์ฝ ์ฒ๋ฆฌ๊ธฐ๊ฐ ์ด์ด๊ฐ + else: + series_plan["status"] = "completed" if all_done else "partial" save_series(series_plan) uploaded = sum(1 for ep in episodes if ep.get("status") == "done") @@ -486,8 +798,12 @@ def run_scheduled() -> None: except (ValueError, IndexError): logger.error(f"์๋ชป๋ SCHEDULE_CRON ํ์: '{SCHEDULE_CRON}'") sys.exit(1) - schedule.every().day.at(time_str).do(run_once) - logger.info(f"์ค์ผ์ค ๋ฑ๋ก: ๋งค์ผ {time_str} ์คํ (cron: {SCHEDULE_CRON})") + def _run_all_blogs() -> None: + for blog_cfg in get_blog_configs(): + run_once(blog_config=blog_cfg) + + schedule.every().day.at(time_str).do(_run_all_blogs) + logger.info(f"์ค์ผ์ค ๋ฑ๋ก: ๋งค์ผ {time_str} ์ ์ฒด ๋ธ๋ก๊ทธ ์คํ (cron: {SCHEDULE_CRON})") logger.info("Ctrl+C๋ก ์ข ๋ฃ") while True: @@ -547,7 +863,14 @@ def main() -> None: parser.add_argument("--keyword", type=str, help="ํน์ ํค์๋๋ก ์คํ (์ผํ๋ก ๋ณต์ ์ง์ )") parser.add_argument("--interactive", "-i", action="store_true", help="ํค์๋ ์ง์ ์ ๋ ฅ ํ ์ฆ์ ์คํ") parser.add_argument("--series", action="store_true", help="์๋ฆฌ์ฆ ๋ชจ๋ โ ์ฃผ์ ๋ฅผ Nํธ์ผ๋ก ๋ถํ ๊ธฐํยท์์ฑยท๊ฒ์ (--keyword ํ์)") - parser.add_argument("--series-count", type=int, default=4, metavar="N", help="์๋ฆฌ์ฆ ํธ์ (2~5, ๊ธฐ๋ณธ๊ฐ 4)") + parser.add_argument("--series-count", type=int, default=4, metavar="N", help="์๋ฆฌ์ฆ ํธ์ (2~5, ํ์ฐจ๋ณ ๋ฆฌ๋ทฐ๋ 1~8, ๊ธฐ๋ณธ๊ฐ 4)") + parser.add_argument("--series-type", default="auto", dest="series_type", + choices=["auto", "drama", "drama_episodes"], + help="์๋ฆฌ์ฆ ์ ํ: auto=๋ธ๋ก๊ทธ๋ณ ์๋, drama=๋๋ผ๋ง ํ ๋งํ ๋ฆฌ๋ทฐ(์ฒซ์ธ์ยท์ธ๋ฌผยท์ดํ), drama_episodes=๋๋ผ๋ง ํ์ฐจ๋ณ ๋ฆฌ๋ทฐ(๋งค ํ 1ํธ)") + parser.add_argument("--start-episode", type=int, default=1, dest="start_episode", metavar="N", + help="๋๋ผ๋ง ํ์ฐจ๋ณ ๋ฆฌ๋ทฐ ์์ ํ์ฐจ (drama_episodes ์ ์ฉ, ๊ธฐ๋ณธ 1ํ)") + parser.add_argument("--process-scheduled-series", action="store_true", dest="process_scheduled", + help="๋ฐํ ์์ฝ๋ ์๋ฆฌ์ฆ ํธ ์ฒ๋ฆฌ โ ์์ฝ์ผ์ด ๋ ํ์ฐจ๋ฅผ ์์ฑยท๊ฒ์ (๋งค์ผ ์ค์ผ์ค์ฉ)") parser.add_argument("--setup", action="store_true", help="AdSense ์ฌ์ฌ ํ์ ํ์ด์ง ์์ฑ (๊ฐ์ธ์ ๋ณด์ฒ๋ฆฌ๋ฐฉ์นจยท๋ธ๋ก๊ทธ ์๊ฐ)") parser.add_argument("--blog", type=str, default="", metavar="BLOG_ID", help="ํน์ ๋ธ๋ก๊ทธ ID๋ง ์คํ (BLOGS_CONFIG์ id ๊ฐ; ๊ธฐ๋ณธ๊ฐ: ๋ชจ๋ ๋ธ๋ก๊ทธ)") @@ -557,6 +880,12 @@ def main() -> None: help="์๋ ์ง๋จยท์๋ฆฌ ์คํ (auto_repair.py)") parser.add_argument("--dry", action="store_true", help="--auto-repair ์ ํจ๊ป ์ฌ์ฉ: ์ง๋จ๋ง ํ๊ณ ์ค์ ์๋ฆฌ๋ ํ์ง ์์") + parser.add_argument("--retry", action="store_true", + help="์คํจํ ํฌ์คํธ ์ฌ์๋ (post_registry์ failed/retry_queued ์ํ ํฌ์คํธ)") + parser.add_argument("--retry-max", type=int, default=10, metavar="N", + help="ํ ๋ฒ์ ์ฌ์๋ํ ์ต๋ ํฌ์คํธ ์ (๊ธฐ๋ณธ๊ฐ: 10)") + parser.add_argument("--retry-age", type=int, default=7, metavar="DAYS", + help="์ฌ์๋ ๋์ ํฌ์คํธ ์ต๋ ๋ณด์กด ์ผ์ (๊ธฐ๋ณธ๊ฐ: 7์ผ)") args = parser.parse_args() keywords = None @@ -575,6 +904,35 @@ def main() -> None: logger.info(f"์ ๊ฒ ์๋ฃ | ๊ฑด๊ฐ์ ์: {health} | ์ด์: {len(issues)}๊ฑด") return + if args.retry: + logger.info("=== ์คํจ ํฌ์คํธ ์ฌ์๋ ๋ชจ๋ ===") + all_blogs = get_blog_configs() + if args.blog: + target_blogs = [b for b in all_blogs if b.get("id") == args.blog] or all_blogs + else: + target_blogs = all_blogs + if not _check_config(): + sys.exit(1) + total = {"success": 0, "failed": 0, "skipped": 0} + for blog_cfg in target_blogs: + blog_label = f"[{blog_cfg.get('name', blog_cfg.get('id', ''))}] " + logger.info(f"{blog_label}์คํจ ํฌ์คํธ ์ฌ์๋ ์์") + counts = retry_failed_posts( + blog_config=blog_cfg, + max_posts=args.retry_max, + max_age_days=args.retry_age, + ) + for k in total: + total[k] += counts.get(k, 0) + logger.info( + f"์ ์ฒด ์ฌ์๋ ์๋ฃ โ ์ฑ๊ณต: {total['success']} / ์คํจ: {total['failed']} / ๊ฑด๋๋: {total['skipped']}" + ) + try: + export_dashboard() + except Exception as _e: + logger.warning(f"๋์๋ณด๋ ์ ๋ฐ์ดํธ ์คํจ (๋ฌด์): {_e}") + return + if args.auto_repair: dry = getattr(args, "dry", False) logger.info(f"=== ์๋ ์๋ฆฌ ๋ชจ๋{'(dry-run)' if dry else ''} ===") @@ -587,18 +945,40 @@ def main() -> None: return if args.setup: - logger.info("=== AdSense ํ์ ํ์ด์ง ์์ฑ ๋ชจ๋ ===") - from page_creator import create_required_pages - from config import BLOGGER_BLOG_ID - if not BLOGGER_BLOG_ID: - logger.error("BLOGGER_BLOG_ID ๋ฏธ์ค์ โ .env ํ์ธ") + logger.info("=== AdSense ์ ์ ๋ชจ๋: ํ์ ํ์ด์ง ์์ฑ + ์๋ ๊ด๊ณ ํ ๋ง ์ฃผ์ + ads.txt ===") + from page_creator import create_required_pages, setup_ads_txt + from blogger_uploader import inject_adsense_to_theme + + setup_blogs = get_blog_configs() + if args.blog: + filtered = [b for b in setup_blogs if b.get("id") == args.blog] + setup_blogs = filtered if filtered else setup_blogs + + if not setup_blogs: + logger.error("BLOGS_CONFIG์ ๋ธ๋ก๊ทธ๊ฐ ์์ต๋๋ค โ .env ๋๋ GitHub Secrets ํ์ธ") sys.exit(1) - results = create_required_pages() - for name, url in results.items(): - if url: - logger.info(f" โ {name}: {url}") + + for blog_cfg in setup_blogs: + blog_name = blog_cfg.get("name") or blog_cfg.get("id", "") + logger.info(f"\nโโ {blog_name} ํ์ ํ์ด์ง ์์ฑ โโ") + # ๋ธ๋ก๊ทธ๋ณ ๋ง์ถค ํ์ด์ง ์์ฑ (theme ์๋ ๊ฐ์ง) + results = create_required_pages(blog_cfg) + for page_key, url in results.items(): + if url: + logger.info(f" โ {page_key}: {url}") + else: + logger.error(f" โ {page_key}: ์์ฑ ์คํจ") + # AdSense ์๋ ๊ด๊ณ ์คํฌ๋ฆฝํธ๋ฅผ ๋ธ๋ก๊ทธ ํ ๋ง์ ์ฃผ์ + logger.info(f" AdSense ์๋ ๊ด๊ณ ํ ๋ง ์ฃผ์ ์๋: {blog_name}") + ok = inject_adsense_to_theme(blog_cfg) + if ok: + logger.info(f" โ AdSense ์๋ ๊ด๊ณ ํ์ฑํ: {blog_name}") else: - logger.error(f" โ {name}: ์์ฑ ์คํจ") + logger.warning(f" โ ๏ธ ํ ๋ง ์ฃผ์ ์คํจ โ Blogger ๊ด๋ฆฌ์์์ ์๋์ผ๋ก AdSense ์ฐ๊ฒฐ ํ์: {blog_name}") + + # ads.txt ์ค์ ๊ฐ์ด๋ ์ถ๋ ฅ (๋ธ๋ก๊ทธ๋ณ 1ํ๋ง) + first_blog = setup_blogs[0] if setup_blogs else None + setup_ads_txt(first_blog) return # ๋ธ๋ก๊ทธ ๋ชฉ๋ก ๊ฒฐ์ @@ -606,9 +986,9 @@ def main() -> None: if args.blog: target_blogs = [b for b in all_blogs if b.get("id") == args.blog] if not target_blogs: - logger.error(f"๋ธ๋ก๊ทธ ID '{args.blog}'๋ฅผ BLOGS_CONFIG์์ ์ฐพ์ ์ ์์ต๋๋ค.") - logger.error(f"์ฌ์ฉ ๊ฐ๋ฅํ ๋ธ๋ก๊ทธ: {[b.get('id') for b in all_blogs]}") - sys.exit(1) + logger.warning(f"๋ธ๋ก๊ทธ ID '{args.blog}'๋ฅผ BLOGS_CONFIG์์ ์ฐพ์ ์ ์์ต๋๋ค.") + logger.warning(f"์ฌ์ฉ ๊ฐ๋ฅํ ๋ธ๋ก๊ทธ: {[b.get('id') for b in all_blogs]} โ ์ ์ฒด ๋ธ๋ก๊ทธ๋ก ์คํํฉ๋๋ค.") + target_blogs = all_blogs else: target_blogs = all_blogs @@ -617,24 +997,53 @@ def main() -> None: for b in target_blogs: logger.info(f" - [{b.get('id')}] {b.get('name', '')}") + if getattr(args, "process_scheduled", False): + if not _check_config(): + sys.exit(1) + process_scheduled_series() + return + if args.series: if not keywords: logger.error("์๋ฆฌ์ฆ ๋ชจ๋๋ --keyword ๊ฐ ํ์์ ๋๋ค (์: --series --keyword '์ฌํ ํฌ ์์ ์ ๋ณต')") sys.exit(1) series_kw = keywords[0] - series_count = max(2, min(getattr(args, "series_count", 4), 5)) + series_type = getattr(args, "series_type", "auto") + # ํ์ฐจ๋ณ ๋ฆฌ๋ทฐ๋ ์ต๋ 8ํธ(8ํ์ฐจ)๊น์ง ํ์ฉ, ๋๋จธ์ง ์ ํ์ ๊ธฐ์กด 2~5ํธ ์ ์ง + if series_type == "drama_episodes": + series_count = max(1, min(getattr(args, "series_count", 4), 8)) + else: + series_count = max(2, min(getattr(args, "series_count", 4), 5)) skip_blogger = args.test or args.review if not _check_config(skip_blogger=skip_blogger): sys.exit(1) + + # ์๋ฆฌ์ฆ ์ ํ๋ณ ์ฌ์ ๊ธฐํ (auto๋ run_series ๋ด๋ถ์ ๋ธ๋ก๊ทธ๋ณ ๊ธฐํ ์ฌ์ฉ) + def _make_pre_plan(): + if series_type == "drama": + from series_planner import plan_drama_series + logger.info(f"[๋๋ผ๋ง ๋ฆฌ๋ทฐ ์๋ฆฌ์ฆ] '{series_kw}' ํ ๋งํ ๊ธฐํ") + return plan_drama_series(series_kw, series_count) + if series_type == "drama_episodes": + from series_planner import plan_drama_episode_series + start_ep = max(1, getattr(args, "start_episode", 1)) + logger.info(f"[๋๋ผ๋ง ํ์ฐจ๋ณ ๋ฆฌ๋ทฐ] '{series_kw}' {start_ep}ํ๋ถํฐ {series_count}ํธ") + return plan_drama_episode_series(series_kw, series_count, start_ep) + return None + for blog_cfg in target_blogs: + pre_plan = _make_pre_plan() + if series_type != "auto" and not pre_plan: + logger.error("์๋ฆฌ์ฆ ์ฌ์ ๊ธฐํ ์คํจ โ ์ข ๋ฃ") + sys.exit(1) if args.test: logger.info(f"[์๋ฆฌ์ฆ ํ ์คํธ] '{series_kw}' {series_count}ํธ โ ์ ๋ก๋ ์์ด ์์ฑ๋ง") - run_series(series_kw, series_count, dry_run=True, blog_config=blog_cfg) + run_series(series_kw, series_count, dry_run=True, series_plan=pre_plan, blog_config=blog_cfg) elif args.review: logger.info(f"[์๋ฆฌ์ฆ ๊ฒํ ] '{series_kw}' {series_count}ํธ โ pending์ ์ ์ฅ") - run_series(series_kw, series_count, review=True, blog_config=blog_cfg) + run_series(series_kw, series_count, review=True, series_plan=pre_plan, blog_config=blog_cfg) else: - run_series(series_kw, series_count, blog_config=blog_cfg) + run_series(series_kw, series_count, series_plan=pre_plan, blog_config=blog_cfg) return if not _check_config(skip_blogger=(args.test or args.review)): @@ -661,3 +1070,4 @@ def main() -> None: if __name__ == "__main__": main() + diff --git a/blog-automation/manage_post.py b/blog-automation/manage_post.py new file mode 100644 index 0000000000000..e4ece6d5863e5 --- /dev/null +++ b/blog-automation/manage_post.py @@ -0,0 +1,848 @@ +"""ํฌ์คํธ ๋จ๊ฑด ๊ด๋ฆฌ โ ๋ฐํยท๋ณด๊ดยท์ญ์ ยท๋ณต์ + +Usage: + python manage_post.py --action publish --post-id
+ python manage_post.py --action archive --post-id # โ skipped + python manage_post.py --action delete --post-id # registry์์ ์ ๊ฑฐ + python manage_post.py --action restore --post-id # skipped โ pending +""" + +import argparse +import json +import logging +import os +import sys + +from dotenv import load_dotenv +load_dotenv() + +logging.basicConfig(level=logging.INFO, format="%(asctime)s %(levelname)s %(message)s") +logger = logging.getLogger(__name__) + +_BASE_DIR = os.path.dirname(__file__) +DOCS_DATA = os.path.join(_BASE_DIR, "..", "docs", "data") + + +def _load_registry(): + from post_manager import load_registry + return load_registry() + + +def _save_and_export(registry): + from post_manager import save_registry, export_for_dashboard + save_registry(registry) + export_for_dashboard(os.path.abspath(DOCS_DATA)) + + +def action_archive(post_id: str) -> int: + from post_manager import update_post_status, Status, load_registry + registry = load_registry() + entry = next((p for p in registry if p.get("post_id") == post_id), None) + if not entry: + logger.error(f"ํฌ์คํธ๋ฅผ ์ฐพ์ ์ ์์ต๋๋ค: {post_id}") + return 1 + current = entry.get("status", "") + if current == Status.PUBLISHED: + logger.error(f"๊ฒ์ ์๋ฃ ํฌ์คํธ๋ ๋ณด๊ดํ ์ ์์ต๋๋ค (ํ์ฌ ์ํ: {current})") + return 1 + update_post_status(post_id, Status.SKIPPED, error="์๋ ๋ณด๊ด") + _save_and_export(_load_registry()) + logger.info(f"โ ๋ณด๊ด ์๋ฃ: {post_id}") + return 0 + + +def action_delete(post_id: str) -> int: + from post_manager import load_registry, save_registry, export_for_dashboard, delete_draft + registry = load_registry() + before = len(registry) + registry = [p for p in registry if p.get("post_id") != post_id] + if len(registry) == before: + logger.error(f"ํฌ์คํธ๋ฅผ ์ฐพ์ ์ ์์ต๋๋ค: {post_id}") + return 1 + save_registry(registry) + export_for_dashboard(os.path.abspath(DOCS_DATA)) + delete_draft(post_id) + logger.info(f"โ ์ญ์ ์๋ฃ: {post_id}") + return 0 + + +def action_restore(post_id: str) -> int: + from post_manager import update_post_status, Status, load_registry + registry = load_registry() + entry = next((p for p in registry if p.get("post_id") == post_id), None) + if not entry: + logger.error(f"ํฌ์คํธ๋ฅผ ์ฐพ์ ์ ์์ต๋๋ค: {post_id}") + return 1 + update_post_status(post_id, Status.PENDING, error=None) + # errorMessage ์ด๊ธฐํ + reg2 = _load_registry() + for p in reg2: + if p.get("post_id") == post_id: + p["errorMessage"] = None + break + _save_and_export(reg2) + logger.info(f"โ ๋ณต์ ์๋ฃ (โ pending): {post_id}") + return 0 + + +def action_publish(post_id: str) -> int: + from post_manager import ( + load_draft, update_post_status, Status, load_registry, export_for_dashboard + ) + from blogger_uploader import upload_post + + registry = _load_registry() + entry = next((p for p in registry if p.get("post_id") == post_id), None) + if not entry: + logger.error(f"ํฌ์คํธ๋ฅผ ์ฐพ์ ์ ์์ต๋๋ค: {post_id}") + return 1 + + current = entry.get("status", "") + if current == Status.PUBLISHED: + logger.warning(f"์ด๋ฏธ ๊ฒ์๋ ํฌ์คํธ์ ๋๋ค: {entry.get('blogUrl', '')}") + return 0 + + # ์ด์ ํ์ผ ๋ก๋ ์๋ + post_data = load_draft(post_id) + if not post_data: + # pending_posts.json์์ ๊ฒ์ + pending_path = os.path.join(DOCS_DATA, "pending_posts.json") + if os.path.exists(pending_path): + try: + with open(pending_path, encoding="utf-8") as f: + pending = json.load(f) + for item in pending: + if item.get("id") == post_id or item.get("post_id") == post_id: + post_data = item + break + except Exception: + pass + + if not post_data: + logger.error(f"ํฌ์คํธ ์ฝํ ์ธ ๋ฅผ ์ฐพ์ ์ ์์ต๋๋ค (์ด์/pending ์์): {post_id}") + logger.error("์ด์ ํ์ผ ์์น: blog-automation/logs/post_drafts/{post_id}.json") + return 1 + + # ๋ธ๋ก๊ทธ config ํ์ (BLOGS_CONFIG ํ๊ฒฝ๋ณ์์์) + blog_config = None + blogs_config_raw = os.getenv("BLOGS_CONFIG", "") + if blogs_config_raw: + try: + blogs_list = json.loads(blogs_config_raw) + blog_id = entry.get("blogId", "") + if blog_id and blog_id != "default": + blog_config = next((b for b in blogs_list if b.get("id") == blog_id), None) + if not blog_config and blogs_list: + blog_config = blogs_list[0] + except Exception: + pass + + logger.info(f"๐ค ๋ฐํ ์๋: {entry.get('keyword', '')} โ {entry.get('title', '')}") + update_post_status(post_id, Status.RETRY_QUEUED) + + result = upload_post(post_data, blog_config) + if result: + url = result.get("url", "") + update_post_status(post_id, Status.PUBLISHED, blog_url=url) + from post_manager import delete_draft + delete_draft(post_id) + export_for_dashboard(os.path.abspath(DOCS_DATA)) + logger.info(f"โ ๋ฐํ ์๋ฃ: {url}") + return 0 + else: + update_post_status(post_id, Status.FAILED, error="์๋ ๋ฐํ ์คํจ") + export_for_dashboard(os.path.abspath(DOCS_DATA)) + logger.error("โ ๋ฐํ ์คํจ") + return 1 + + +def _insert_thumbnail_html(content: str, img_html: str) -> str: + """์ธ๋ค์ผ figure๋ฅผ ๋ณธ๋ฌธ ์ฒซ ๋ฐ๋ก ๋ค์ ์ฝ์ ํฉ๋๋ค (์์ผ๋ฉด ๋งจ ์).""" + import re + m = re.search(r'', content, re.IGNORECASE) + if m: + return content[:m.end()] + img_html + content[m.end():] + return img_html + content + + +def action_insert_thumbnail(post_id: str, thumb_title: str = "", thumb_theme: str = "") -> int: + """ํฌ์คํธ์ ์ ๋ชฉ ๊ธฐ๋ฐ ์ธ๋ค์ผ์ ์ฝ์ ํฉ๋๋ค. + - published: Blogger API๋ก ๊ฒ์๊ธ ๋ณธ๋ฌธ์ ๊ฐ์ ธ์ ์ฝ์ ํ ์ ๋ฐ์ดํธ (์๋ ์ฝ์ ) + - pending/draft: ์ด์ content์ ์ฝ์ ์ ์ฅ โ ๋ฐํ ์ ๋ฐ์ + """ + from image_fetcher import generate_title_thumbnail, _make_img_html + + registry = _load_registry() + entry = next((p for p in registry if p.get("post_id") == post_id), None) + if not entry: + logger.error(f"ํฌ์คํธ๋ฅผ ์ฐพ์ ์ ์์ต๋๋ค: {post_id}") + return 1 + + title = thumb_title or entry.get("title") or entry.get("keyword", "") + thumb = generate_title_thumbnail(title, entry.get("keyword", ""), theme=thumb_theme) + if not thumb: + logger.error("์ธ๋ค์ผ ์์ฑ ์คํจ (์ ๋ชฉ ์์)") + return 1 + alt = thumb.get("alt_text", title) + img_html = _make_img_html(thumb, alt, "") + _DUP_MARKERS = ("data:image/svg+xml", "generated_thumbnail") + + status = entry.get("status", "") + blog_url = entry.get("blogUrl", "") + + # โโ ๊ฒ์๋ ํฌ์คํธ: Blogger์์ ๋ณธ๋ฌธ ๊ฐ์ ธ์ ์ฝ์ ํ ์ ๋ฐ์ดํธ โโ + if status == "published" and blog_url: + import requests as _rq + from blogger_uploader import ( + _get_access_token, get_post_id_by_url, BLOGGER_API_BASE, BLOGGER_BLOG_ID, + ) + + # ๋ธ๋ก๊ทธ config ํ์ + blog_config = None + raw = os.getenv("BLOGS_CONFIG", "") + if raw: + try: + blogs = json.loads(raw) + blog_config = next((b for b in blogs if b.get("id") == entry.get("blogId")), None) + except Exception: + pass + + bp_id = get_post_id_by_url(blog_url, blog_config) + if not bp_id: + logger.error(f"Blogger ํฌ์คํธ ID ์กฐํ ์คํจ: {blog_url}") + return 1 + + cfg = blog_config or {} + blogger_blog_id = cfg.get("blog_id") or BLOGGER_BLOG_ID + token = _get_access_token(blog_config) + if not token: + logger.error("Blogger ์ก์ธ์ค ํ ํฐ ์์") + return 1 + + r = _rq.get( + f"{BLOGGER_API_BASE}/blogs/{blogger_blog_id}/posts/{bp_id}", + headers={"Authorization": f"Bearer {token}"}, timeout=20, + ) + if r.status_code != 200: + logger.error(f"๊ฒ์๊ธ ์กฐํ ์คํจ [{r.status_code}]: {r.text[:200]}") + return 1 + content = r.json().get("content", "") + + if any(mk in content for mk in _DUP_MARKERS): + logger.warning("์ด๋ฏธ ์์ฑ ์ธ๋ค์ผ์ด ์ฝ์ ๋ ํฌ์คํธ์ ๋๋ค โ ์ค๋ณต ์ฝ์ ๊ฑด๋๋") + return 0 + + new_content = _insert_thumbnail_html(content, img_html) + pr = _rq.patch( + f"{BLOGGER_API_BASE}/blogs/{blogger_blog_id}/posts/{bp_id}", + headers={"Authorization": f"Bearer {token}", "Content-Type": "application/json"}, + json={"content": new_content}, timeout=30, + ) + if pr.status_code == 200: + logger.info(f"โ ๊ฒ์๊ธ์ ์ธ๋ค์ผ ์ฝ์ ์๋ฃ: {blog_url}") + return 0 + logger.error(f"๊ฒ์๊ธ ์ ๋ฐ์ดํธ ์คํจ [{pr.status_code}]: {pr.text[:300]}") + return 1 + + # โโ ๋ฏธ๋ฐํ ํฌ์คํธ: ์ด์/pending content์ ์ฝ์ โโ + from post_manager import load_draft, save_draft + post_data = load_draft(post_id) + source = "draft" + if not post_data: + pending_path = os.path.join(DOCS_DATA, "pending_posts.json") + if os.path.exists(pending_path): + try: + with open(pending_path, encoding="utf-8") as f: + pending = json.load(f) + for item in pending: + if item.get("id") == post_id or item.get("post_id") == post_id: + post_data, source = item, "pending" + break + except Exception: + pass + if not post_data: + logger.error(f"ํฌ์คํธ ์ฝํ ์ธ ๋ฅผ ์ฐพ์ ์ ์์ต๋๋ค (์ด์/pending ์์): {post_id}") + return 1 + + content = post_data.get("content", "") + if any(mk in content for mk in _DUP_MARKERS): + logger.warning("์ด๋ฏธ ์์ฑ ์ธ๋ค์ผ์ด ์ฝ์ ๋ ์ด์์ ๋๋ค โ ์ค๋ณต ์ฝ์ ๊ฑด๋๋") + return 0 + post_data["content"] = _insert_thumbnail_html(content, img_html) + post_data["images_inserted"] = post_data.get("images_inserted", 0) + 1 + + if source == "draft": + save_draft(post_id, post_data) + else: + with open(pending_path, "w", encoding="utf-8") as f: + json.dump(pending, f, ensure_ascii=False, indent=2) + logger.info(f"โ ์ด์({source})์ ์ธ๋ค์ผ ์ฝ์ ์๋ฃ โ ๋ฐํ ์ ๋ฐ์๋ฉ๋๋ค: {post_id}") + return 0 + + +def _get_blogger_ctx(entry: dict): + """๋ ์ง์คํธ๋ฆฌ ์ํธ๋ฆฌ๋ก Blogger API ์ปจํ ์คํธ๋ฅผ ๊ตฌ์ฑํฉ๋๋ค. + Returns: (api_base, blogger_blog_id, blogger_post_id, token) ๋๋ None + """ + from blogger_uploader import ( + _get_access_token, get_post_id_by_url, BLOGGER_API_BASE, BLOGGER_BLOG_ID, + ) + blog_url = entry.get("blogUrl", "") + blog_config = None + raw = os.getenv("BLOGS_CONFIG", "") + if raw: + try: + blogs = json.loads(raw) + blog_config = next((b for b in blogs if b.get("id") == entry.get("blogId")), None) + except Exception: + pass + bp_id = get_post_id_by_url(blog_url, blog_config) + if not bp_id: + logger.error(f"Blogger ํฌ์คํธ ID ์กฐํ ์คํจ: {blog_url}") + return None + cfg = blog_config or {} + blogger_blog_id = cfg.get("blog_id") or BLOGGER_BLOG_ID + token = _get_access_token(blog_config) + if not token: + logger.error("Blogger ์ก์ธ์ค ํ ํฐ ์์") + return None + return BLOGGER_API_BASE, blogger_blog_id, bp_id, token + + +def action_replace_image( + post_id: str, + image_index: int = 1, + image_query: str = "", + thumb_title: str = "", + thumb_theme: str = "", +) -> int: + """๋ฐํ๋ ๊ธ์ N๋ฒ์งธ ์ด๋ฏธ์ง๋ฅผ ๊ต์ฒดํฉ๋๋ค. + - image_query ์ง์ โ ํด๋น ๊ฒ์์ด๋ก ์ ์ด๋ฏธ์ง ๊ฒ์ (Pixabayโ๋ค์ด๋ฒโDDGโWikimedia) + - image_query ์์ โ ์ ๋ชฉ ๊ธฐ๋ฐ ์์ฑ ์ธ๋ค์ผ๋ก ๊ต์ฒด + ์ด๋ฏธ์ง์ src/alt/title ์์ฑ๋ง ๋ฐ๊พธ๋ฏ๋ก ๊ธฐ์กด ๋ ์ด์์(figureยท์บก์ ์คํ์ผ)์ ์ ์ง๋ฉ๋๋ค. + """ + import re + import requests as _rq + + registry = _load_registry() + entry = next((p for p in registry if p.get("post_id") == post_id), None) + if not entry: + logger.error(f"ํฌ์คํธ๋ฅผ ์ฐพ์ ์ ์์ต๋๋ค: {post_id}") + return 1 + if entry.get("status") != "published" or not entry.get("blogUrl"): + logger.error(f"๋ฐํ๋ ํฌ์คํธ๋ง ์ด๋ฏธ์ง ๊ต์ฒด๊ฐ ๊ฐ๋ฅํฉ๋๋ค (ํ์ฌ ์ํ: {entry.get('status')})") + return 1 + + # โโ ์ ์ด๋ฏธ์ง ๊ฒฐ์ โโ + if image_query.strip(): + from image_fetcher import _fetch_best_image + new_img = _fetch_best_image( + image_query.strip(), + naver_client_id=os.getenv("NAVER_CLIENT_ID", ""), + naver_client_secret=os.getenv("NAVER_CLIENT_SECRET", ""), + n_candidates=6, + pixabay_api_key=os.getenv("PIXABAY_API_KEY", ""), + ) + if not new_img: + logger.error(f"๊ต์ฒด์ฉ ์ด๋ฏธ์ง ๊ฒ์ ์คํจ: '{image_query}'") + return 1 + new_alt = image_query.strip()[:50] + logger.info(f"๊ต์ฒด ์ด๋ฏธ์ง ๊ฒ์ ์ฑ๊ณต: '{new_img.get('title','')[:40]}'") + else: + from image_fetcher import generate_title_thumbnail + title = thumb_title or entry.get("title") or entry.get("keyword", "") + new_img = generate_title_thumbnail(title, entry.get("keyword", ""), theme=thumb_theme) + if not new_img: + logger.error("์ธ๋ค์ผ ์์ฑ ์คํจ (์ ๋ชฉ ์์)") + return 1 + new_alt = new_img.get("alt_text", title) + + # โโ ๊ฒ์๊ธ ๋ณธ๋ฌธ ์กฐํ โโ + ctx = _get_blogger_ctx(entry) + if not ctx: + return 1 + api_base, blogger_blog_id, bp_id, token = ctx + r = _rq.get( + f"{api_base}/blogs/{blogger_blog_id}/posts/{bp_id}", + headers={"Authorization": f"Bearer {token}"}, timeout=20, + ) + if r.status_code != 200: + logger.error(f"๊ฒ์๊ธ ์กฐํ ์คํจ [{r.status_code}]: {r.text[:200]}") + return 1 + content = r.json().get("content", "") + + # โโ N๋ฒ์งธ ์ฐพ์ src/alt/title ๊ต์ฒด โโ + img_tags = list(re.finditer(r'
]*>', content, re.IGNORECASE)) + if not img_tags: + logger.error("๋ณธ๋ฌธ์ ์ด๋ฏธ์ง๊ฐ ์์ต๋๋ค") + return 1 + if not (1 <= image_index <= len(img_tags)): + logger.error(f"์ด๋ฏธ์ง ๋ฒํธ ๋ฒ์ ์ด๊ณผ: {image_index} (๋ณธ๋ฌธ ์ด๋ฏธ์ง {len(img_tags)}๊ฐ)") + return 1 + + target = img_tags[image_index - 1] + tag = target.group(0) + old_src_m = re.search(r'src="([^"]*)"', tag) + old_src = old_src_m.group(1) if old_src_m else "" + if old_src == new_img["url"]: + logger.warning("๊ธฐ์กด ์ด๋ฏธ์ง์ ๋์ผํ URL โ ๊ต์ฒด ๊ฑด๋๋") + return 0 + + import html as _h + alt_safe = _h.escape(new_alt, quote=True) + new_tag = tag + new_tag = re.sub(r'src="[^"]*"', f'src="{new_img["url"]}"', new_tag) + for attr in ("alt", "title"): + if re.search(rf'{attr}="[^"]*"', new_tag): + new_tag = re.sub(rf'{attr}="[^"]*"', f'{attr}="{alt_safe}"', new_tag) + new_content = content[:target.start()] + new_tag + content[target.end():] + + # figure ์บก์ ๋ ์ alt๋ก ๊ฐฑ์ (ํด๋น ์ด๋ฏธ์ง์ figure ์์ figcaption์ด ์์ ๋) + fig_m = re.search( + re.escape(new_tag) + r'\s*
]*)>(.*?) ', + new_content, re.IGNORECASE | re.DOTALL, + ) + if fig_m: + new_content = ( + new_content[:fig_m.start()] + new_tag + + f'\n{alt_safe} ' + + new_content[fig_m.end():] + ) + + pr = _rq.patch( + f"{api_base}/blogs/{blogger_blog_id}/posts/{bp_id}", + headers={"Authorization": f"Bearer {token}", "Content-Type": "application/json"}, + json={"content": new_content}, timeout=30, + ) + if pr.status_code == 200: + from image_fetcher import mark_images_used + mark_images_used([new_img.get("url", "")]) + src_type = "๊ฒ์ ์ด๋ฏธ์ง" if image_query.strip() else "์์ฑ ์ธ๋ค์ผ" + logger.info( + f"โ ์ด๋ฏธ์ง ๊ต์ฒด ์๋ฃ ({image_index}/{len(img_tags)}๋ฒ์งธ โ {src_type}): " + f"{entry.get('blogUrl','')}" + ) + logger.info(f" ์ด์ : {old_src[:80]}") + logger.info(f" ์ดํ: {new_img['url'][:80]}") + return 0 + logger.error(f"๊ฒ์๊ธ ์ ๋ฐ์ดํธ ์คํจ [{pr.status_code}]: {pr.text[:300]}") + return 1 + + +def _fetch_published_content(entry: dict): + """๋ฐํ ๊ธ ๋ณธ๋ฌธ์ ์กฐํํฉ๋๋ค. Returns: (ctx, content) ๋๋ (None, None).""" + import requests as _rq + ctx = _get_blogger_ctx(entry) + if not ctx: + return None, None + api_base, blogger_blog_id, bp_id, token = ctx + r = _rq.get( + f"{api_base}/blogs/{blogger_blog_id}/posts/{bp_id}", + headers={"Authorization": f"Bearer {token}"}, timeout=20, + ) + if r.status_code != 200: + logger.error(f"๊ฒ์๊ธ ์กฐํ ์คํจ [{r.status_code}]: {r.text[:200]}") + return None, None + return ctx, r.json().get("content", "") + + +def _patch_published_content(ctx, new_content: str) -> bool: + """๋ฐํ ๊ธ ๋ณธ๋ฌธ์ ๊ฐฑ์ ํฉ๋๋ค.""" + import requests as _rq + api_base, blogger_blog_id, bp_id, token = ctx + pr = _rq.patch( + f"{api_base}/blogs/{blogger_blog_id}/posts/{bp_id}", + headers={"Authorization": f"Bearer {token}", "Content-Type": "application/json"}, + json={"content": new_content}, timeout=30, + ) + if pr.status_code == 200: + return True + logger.error(f"๊ฒ์๊ธ ์ ๋ฐ์ดํธ ์คํจ [{pr.status_code}]: {pr.text[:300]}") + return False + + +def _get_published_entry(post_id: str): + """๋ ์ง์คํธ๋ฆฌ์์ ๋ฐํ ์๋ฃ ์ํธ๋ฆฌ๋ฅผ ์ฐพ์ต๋๋ค.""" + registry = _load_registry() + entry = next((p for p in registry if p.get("post_id") == post_id), None) + if not entry: + logger.error(f"ํฌ์คํธ๋ฅผ ์ฐพ์ ์ ์์ต๋๋ค: {post_id}") + return None + if entry.get("status") != "published" or not entry.get("blogUrl"): + logger.error(f"๋ฐํ๋ ํฌ์คํธ๋ง ๊ฐ๋ฅํฉ๋๋ค (ํ์ฌ ์ํ: {entry.get('status')})") + return None + return entry + + +def action_improve(post_id: str, improve_request: str = "") -> int: + """๋ฐํ ๊ธ์ AI๋ก ์์ ยท๋ณด์ํฉ๋๋ค (Blogger ์ฆ์ ๋ฐ์). + + improve_request ๋ฏธ์ง์ ์ ๊ธฐ๋ณธ ๋ณด์: ์์ ์น์ ๋ถ๋ ๋ณด๊ฐ, ์ต์ ์ฑ ๋ฌธ๊ตฌ ์ ๋น, + ๊ฐ๋ ์ฑ ๊ฐ์ . ์ด๋ฏธ์งยทfigureยท๊ด๊ณ ยท๋ฉด์ฑ ๋ฑ ๊ธฐ์กด HTML ๋ธ๋ก์ ๊ทธ๋๋ก ์ ์งํฉ๋๋ค. + Claude ํ๋ ๋๋ฌ ์ config.claude_generate์ OpenAI ํด๋ฐฑ์ด ๋์ํฉ๋๋ค. + """ + entry = _get_published_entry(post_id) + if not entry: + return 1 + ctx, content = _fetch_published_content(entry) + if not ctx or not content: + return 1 + + import re as _re + img_count_before = len(_re.findall(r'ยท
ยท', + html, re.IGNORECASE | re.DOTALL + ) + count = len(scripts) + types_found = [] + for s in scripts: + try: + obj = json.loads(s) + t = obj.get("@type") or (obj.get("@graph") or [{}])[0].get("@type", "") + if t: + types_found.append(t) + except Exception: + pass + note = f"Schema {count}๊ฐ: {', '.join(types_found)}" if types_found else f"JSON-LD {count}๊ฐ" + return {"pass": count >= 1, "value": count, "note": note} + + +def check_has_label(post: dict, min_labels: int = 1) -> dict: + labels = post.get("labels") or post.get("tags") or post.get("categories") or [] + count = len(labels) + return {"pass": count >= min_labels, "value": count, "note": f"๋ผ๋ฒจ {count}๊ฐ"} + + +def check_has_adsense(html: str) -> dict: + has = "adsbygoogle" in html or "google_ad_client" in html + return {"pass": has, "note": "AdSense ์ฝ๋ ์์" if has else "AdSense ์ฝ๋ ์์"} + + +# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ +# ํฌ์คํธ 1๊ฐ ๊ฒ์ฆ +# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ +def verify_post(post: dict) -> dict: + url = post.get("url") or post.get("blogUrl") or post.get("link") or "" + post_id = post.get("id") or post.get("postId") or post.get("postid") or "" + title = post.get("title") or post.get("keyword") or "" + + if not url: + return {"post_id": post_id, "title": title, "url": url, + "error": "URL ์์", "score": 0, "grade": "F", "action": "repost", + "failed_items": ["url_accessible"], "retry_count": 0} + + logger.info(f"๊ฒ์ฆ ์ค: {title[:40]} ({url[:60]})") + + status, html = fetch_html(url) + if status == 0: + time.sleep(3) + status, html = fetch_html(url) + + checks = { + "url_accessible": check_url_accessible(url, html, status), + "min_content_len": check_min_content_len(html), + "has_image": check_has_image(html), + "has_internal_link": check_has_internal_link(html, url), + "has_related_posts": check_has_related_posts(html), + "has_schema_ld": check_has_schema_ld(html), + "has_label": check_has_label(post), + "has_adsense": check_has_adsense(html), + } + + score = 0 + for key, weight in WEIGHTS.items(): + passed = checks.get(key, {}).get("pass") + if passed is True: + score += weight + elif passed is None: + score += weight // 2 + + if score >= 90: grade = "S" + elif score >= 75: grade = "A" + elif score >= 60: grade = "B" + elif score >= 40: grade = "C" + else: grade = "F" + + if status != 200: action = "repost" + elif score >= PASS_THRESHOLD: action = "pass" + else: action = "warn" + + failed_items = [k for k, v in checks.items() if v.get("pass") is False] + + return { + "post_id": post_id, + "title": title, + "url": url, + "verified_at": datetime.now(timezone.utc).isoformat(), + "http_status": status, + "checks": checks, + "score": score, + "grade": grade, + "action": action, + "failed_items": failed_items, + "retry_count": 0, # ์ฌ๊ฒ์ ์๋ ํ์ + } + + +# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ +# ์๋ ์ฌ๊ฒ์ โ pending_posts.json ์ฌ๋ฑ๋ก +# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ +def queue_for_repost(failed_results: list, posts: list) -> int: + """ + URL ์ ๊ทผ ๋ถ๊ฐ ํฌ์คํธ๋ฅผ pending_posts.json์ ์ฌ๋ฑ๋ก. + posts.json ์๋ณธ ๋ฐ์ดํฐ ๋ณต์ โ status='pending'์ผ๋ก ๋ณ๊ฒฝ. + ๋ฐํ๊ฐ: ์ฌ๋ฑ๋ก๋ ํฌ์คํธ ์ + """ + # posts.json ์ธ๋ฑ์ค (id ๊ธฐ์ค) + posts_by_id = {} + for p in posts: + pid = p.get("id") or p.get("postId") or p.get("postid") or "" + if pid: + posts_by_id[pid] = p + + pending = load_pending() + pending_ids = {p.get("id") for p in pending} + + queued = 0 + for r in failed_results: + if r.get("action") != "repost": + continue + + # ์ต๋ ์ฌ์๋ ํ์ ์ด๊ณผ ์ฒดํฌ + retry_count = r.get("retry_count", 0) + if retry_count >= REPOST_MAX_RETRY: + logger.warning(f"์ฌ๊ฒ์ ์ต๋ ์๋ ์ด๊ณผ({REPOST_MAX_RETRY}ํ): {r['title'][:40]}") + continue + + pid = r.get("post_id", "") + original = posts_by_id.get(pid) + + if not original: + logger.warning(f"posts.json์์ ์๋ณธ ์์: {pid}") + continue + + if pid in pending_ids: + # ์ด๋ฏธ pending์ ์์ผ๋ฉด status๋ง pending์ผ๋ก ์ฌ์ค์ + for p in pending: + if p.get("id") == pid: + p["status"] = "pending" + p["requeue_reason"] = "verify_failed" + p["requeue_at"] = datetime.now(timezone.utc).isoformat() + p["retry_count"] = retry_count + 1 + logger.info(f"pending ์ํ ์ฌ์ค์ : {r['title'][:40]}") + queued += 1 + break + else: + # ์๋ก pending์ ์ถ๊ฐ + repost_entry = { + **original, + "status": "pending", + "requeue_reason": "verify_failed", + "requeue_at": datetime.now(timezone.utc).isoformat(), + "retry_count": retry_count + 1, + "original_url": r.get("url", ""), + "verify_score": r.get("score", 0), + "verify_grade": r.get("grade", "F"), + "failed_items": r.get("failed_items", []), + } + pending.append(repost_entry) + pending_ids.add(pid) + logger.info(f"์ฌ๊ฒ์ ํ ์ถ๊ฐ: {r['title'][:40]}") + queued += 1 + + if queued: + save_pending(pending) + logger.info(f"pending_posts.json ์ ๋ฐ์ดํธ: {queued}๊ฑด ์ฌ๋ฑ๋ก") + + return queued + + +def run_repost(queued_count: int) -> bool: + """publish_pending.py --all-pending ํธ์ถํ์ฌ ์ฆ์ ์ฌ๊ฒ์.""" + if queued_count == 0: + return True + + logger.info(f"์ฌ๊ฒ์ ์คํ: {queued_count}๊ฑด โ publish_pending.py --all-pending") + script = BASE_DIR / "publish_pending.py" + + if not script.exists(): + logger.error(f"publish_pending.py ์์: {script}") + return False + + try: + result = subprocess.run( + [sys.executable, str(script), "--all-pending"], + capture_output=True, text=True, timeout=300 + ) + if result.stdout: + for line in result.stdout.strip().split("\n")[-20:]: # ๋ง์ง๋ง 20์ค + logger.info(f"[publish] {line}") + if result.stderr: + for line in result.stderr.strip().split("\n")[-10:]: + logger.warning(f"[publish-err] {line}") + + success = result.returncode == 0 + logger.info(f"์ฌ๊ฒ์ {'์๋ฃ' if success else '์คํจ'} (exit {result.returncode})") + return success + except subprocess.TimeoutExpired: + logger.error("์ฌ๊ฒ์ ํ์์์ (300์ด)") + return False + except Exception as e: + logger.error(f"์ฌ๊ฒ์ ์คํ ์ค๋ฅ: {e}") + return False + + +# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ +# GitHub Issue ์์ฑ +# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ +def create_verify_issue(failed_results: list, repost_results: list): + if not GITHUB_TOKEN or (not failed_results and not repost_results): + return + + # warn ํญ๋ชฉ + warn_lines = [] + for r in failed_results: + failed_str = ", ".join(r.get("failed_items", [])) + warn_lines.append( + f"| [{r['title'][:40]}]({r['url']}) | {r['score']}์ ({r['grade']}) | {failed_str} |" + ) + + # repost ํญ๋ชฉ + repost_lines = [] + for r in repost_results: + repost_lines.append( + f"| [{r['title'][:40]}]({r.get('url', 'โ')}) " + f"| HTTP {r.get('http_status', 0)} " + f"| ์๋ {r.get('retry_count', 1)}ํ |" + ) + + warn_table = "" + if warn_lines: + warn_table = f"""### โ ๏ธ ํ์ง ๋ฏธ๋ฌ (warn) โ {len(warn_lines)}๊ฑด + +| ํฌ์คํธ | ์ ์ | ์คํจ ํญ๋ชฉ | +|--------|------|---------| +{chr(10).join(warn_lines)} +""" + + repost_table = "" + if repost_lines: + repost_table = f"""### ๐ ์ฌ๊ฒ์ ์คํ๋จ (repost) โ {len(repost_lines)}๊ฑด + +| ํฌ์คํธ | HTTP ์ํ | ์ฌ์๋ | +|--------|----------|--------| +{chr(10).join(repost_lines)} + +> ์ฌ๊ฒ์ ํฌ์คํธ๋ `pending_posts.json`์ ์ฌ๋ฑ๋ก๋์ด ์๋ ๊ฒ์ ์๋๋ฉ๋๋ค. +""" + + body = f"""## ๐ ๊ฒ์ ์๋ฃ๊ธ ๊ฒ์ฆ ๊ฒฐ๊ณผ + +**๊ฒ์ฆ ์ผ์:** {datetime.now(timezone.utc).strftime('%Y-%m-%d %H:%M UTC')} + +{warn_table} +{repost_table} + +--- +*์๋ ์์ฑ: post_verifier.py* +""" + + total = len(failed_results) + len(repost_results) + payload = { + "title": f"[๊ฒ์ฆ] ๊ฒ์ ์๋ฃ๊ธ {total}๊ฑด ์กฐ์น ํ์ โ warn {len(failed_results)}๊ฑด / repost {len(repost_results)}๊ฑด", + "body": body, + "labels": ["verification", "content-quality"], + } + + try: + result = _gh_post(f"/repos/{OWNER}/{REPO}/issues", payload) + logger.info(f"์ด์ ์์ฑ: #{result['number']}") + except Exception as e: + logger.error(f"์ด์ ์์ฑ ์คํจ: {e}") + + +# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ +# ๋ฆฌํฌํธ ์ถ๋ ฅ +# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ +def print_report(report: dict): + results = report.get("results", {}) + summary = report.get("summary", {}) + + print("\n" + "="*65) + print("โ ๊ฒ์ ์๋ฃ๊ธ ๊ฒ์ฆ ๋ฆฌํฌํธ") + print(f" ๋ง์ง๋ง ์ ๋ฐ์ดํธ: {report.get('last_updated', '์์')[:16]}") + print("="*65) + + grade_icon = {"S": "๐", "A": "โ ", "B": "๐ก", "C": "๐ ", "F": "โ"} + for post_id, r in sorted(results.items(), key=lambda x: x[1].get("score", 0), reverse=True): + icon = grade_icon.get(r.get("grade", "F"), "โ") + title = r.get("title", "")[:45] + score = r.get("score", 0) + grade = r.get("grade", "?") + action = r.get("action", "") + failed = r.get("failed_items", []) + retry = r.get("retry_count", 0) + retry_str = f" [์ฌ์๋:{retry}ํ]" if retry else "" + print(f"\n{icon} [{grade}] {score}์ {title}{retry_str}") + if action != "pass" and failed: + print(f" ์คํจ: {', '.join(failed)}") + + print(f"\n๐ ์์ฝ") + print(f" ์ ์ฒด: {summary.get('total', 0)}๊ฑด | " + f"ํต๊ณผ: {summary.get('passed', 0)}๊ฑด | " + f"๊ฒฝ๊ณ : {summary.get('warned', 0)}๊ฑด | " + f"์ฌ๊ฒ์: {summary.get('repost', 0)}๊ฑด") + print(f" ํ๊ท ์ ์: {summary.get('avg_score', 0)}์ ") + print("="*65 + "\n") + + +# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ +# ๋ฉ์ธ +# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ +def main(): + parser = argparse.ArgumentParser(description="๊ฒ์ ์๋ฃ๊ธ ๊ฒ์ฆ + ์๋ ์ฌ๊ฒ์") + parser.add_argument("--all", action="store_true", help="์ ์ฒด ํฌ์คํธ ์ฌ๊ฒ์ฆ") + parser.add_argument("--hours", type=int, default=25, help="์ต๊ทผ N์๊ฐ ๋ด ํฌ์คํธ (๊ธฐ๋ณธ 25)") + parser.add_argument("--post-id", dest="post_id", help="ํน์ ํฌ์คํธ ID๋ง ๊ฒ์ฆ") + parser.add_argument("--grade", help="ํน์ ๋ฑ๊ธ ํฌ์คํธ๋ง (S/A/B/C/F)") + parser.add_argument("--report", action="store_true", help="๊ธฐ์กด ๋ฆฌํฌํธ ์ถ๋ ฅ") + parser.add_argument("--no-issue", action="store_true", help="GitHub Issue ์์ฑ ์ ํจ") + parser.add_argument("--no-repost", action="store_true", help="์๋ ์ฌ๊ฒ์ ๋นํ์ฑํ") + parser.add_argument("--repost-failed",action="store_true", help="verify_report์ repost ํญ๋ชฉ ์ฆ์ ์ฌ๊ฒ์") + args = parser.parse_args() + + report = load_report() + posts = load_posts() + + # โโ ๋ฆฌํฌํธ๋ง ์ถ๋ ฅ + if args.report: + print_report(report) + return + + # โโ ๊ธฐ์กด repost ํญ๋ชฉ๋ง ์ฆ์ ์ฌ๊ฒ์ + if args.repost_failed: + repost_items = [ + r for r in report.get("results", {}).values() + if r.get("action") == "repost" + and r.get("retry_count", 0) < REPOST_MAX_RETRY + ] + if not repost_items: + logger.info("์ฌ๊ฒ์ ๋์ ์์") + return + queued = queue_for_repost(repost_items, posts) + if queued: + run_repost(queued) + return + + # โโ ์ผ๋ฐ ๊ฒ์ฆ ํ๋ฆ + targets = filter_posts(posts, args) + logger.info(f"๊ฒ์ฆ ๋์: {len(targets)}๊ฑด") + + if not targets: + logger.info("๊ฒ์ฆ ๋์ ํฌ์คํธ ์์") + print_report(report) + return + + # ๊ฒ์ฆ ์คํ + new_results = {} + for post in targets: + result = verify_post(post) + pid = result["post_id"] or result["url"] + # ์ด์ retry_count ์ ์ง + prev = report.get("results", {}).get(pid, {}) + result["retry_count"] = prev.get("retry_count", 0) + new_results[pid] = result + time.sleep(1) + + # ๋ฆฌํฌํธ ์ ๋ฐ์ดํธ + report["results"].update(new_results) + all_results = list(report["results"].values()) + report["summary"] = { + "total": len(all_results), + "passed": sum(1 for r in all_results if r.get("action") == "pass"), + "warned": sum(1 for r in all_results if r.get("action") == "warn"), + "repost": sum(1 for r in all_results if r.get("action") == "repost"), + "avg_score": round( + sum(r.get("score", 0) for r in all_results) / len(all_results), 1 + ) if all_results else 0, + } + + # ์๋ ์ฌ๊ฒ์ (URL ์ ๊ทผ ๋ถ๊ฐ ํฌ์คํธ) + repost_items = [r for r in new_results.values() if r.get("action") == "repost"] + queued = 0 + if repost_items and not args.no_repost: + logger.info(f"์ฌ๊ฒ์ ๋์: {len(repost_items)}๊ฑด") + queued = queue_for_repost(repost_items, posts) + if queued: + repost_ok = run_repost(queued) + # ์ฌ์๋ ์นด์ดํธ ์ ๋ฐ์ดํธ + for r in repost_items: + pid = r.get("post_id") or r.get("url") + if pid in report["results"]: + report["results"][pid]["retry_count"] += 1 + report["results"][pid]["last_repost_at"] = datetime.now(timezone.utc).isoformat() + if repost_ok: + report["results"][pid]["action"] = "reposted" + + # ๋ฆฌํฌํธ ์ ์ฅ + save_report(report) + + # GitHub Issue (warn + repost ํฉ์ฐ) + warn_items = [r for r in new_results.values() if r.get("action") == "warn"] + if (warn_items or repost_items) and not args.no_issue and GITHUB_TOKEN: + create_verify_issue(warn_items, repost_items) + + print_report(report) + + # ์ฌ๊ฒ์๊ฐ ํ์ํ ๊ฒฝ์ฐ exit 2 (warn์ exit 1, ์ดํ ์ํฌํ๋ก์ฐ์์ ๊ตฌ๋ถ) + if repost_items: + sys.exit(2) # repost ๋ฐ์ + if warn_items: + sys.exit(1) # warn๋ง ์์ + + +if __name__ == "__main__": + main() diff --git a/blog-automation/publish_pending.py b/blog-automation/publish_pending.py index 32a6957fc049a..e2df60ff3cb97 100644 --- a/blog-automation/publish_pending.py +++ b/blog-automation/publish_pending.py @@ -5,9 +5,11 @@ python publish_pending.py --id python publish_pending.py --ids "id1,id2,id3" python publish_pending.py --all-pending + python publish_pending.py --retry-failed """ import argparse +import io import json import logging import os @@ -49,16 +51,38 @@ def save_pending(pending: list[dict]) -> None: logger.error(f"pending_posts.json ์ ์ฅ ์คํจ: {e}") +def upload_with_log_capture(post_data: dict) -> tuple[dict | None, str]: + """upload_post ํธ์ถ + ์๋ฌ ๋ก๊ทธ ์บก์ฒ.""" + from blogger_uploader import upload_post + + log_stream = io.StringIO() + capture = logging.StreamHandler(log_stream) + capture.setLevel(logging.WARNING) + root = logging.getLogger() + root.addHandler(capture) + result = None + try: + result = upload_post(post_data) + except Exception as exc: + logger.error(f"upload_post ์์ธ: {exc}") + log_stream.write(f"EXCEPTION: {exc}") + finally: + root.removeHandler(capture) + captured = log_stream.getvalue().strip() + return result, captured + + def main() -> None: parser = argparse.ArgumentParser(description="๊ฒํ ๋๊ธฐ ํฌ์คํธ๋ฅผ Blogger์ ๊ฒ์") parser.add_argument("--id", dest="post_id", default="", help="๊ฒ์ํ ํฌ์คํธ ID") parser.add_argument("--ids", default="", help="์ผํ๋ก ๊ตฌ๋ถ๋ ํฌ์คํธ ID ๋ชฉ๋ก") - parser.add_argument("--all-pending", action="store_true", help="๋ชจ๋ pending ํฌ์คํธ ๊ฒ์") + parser.add_argument("--all-pending", action="store_true", help="๋ชจ๋ pending/failed ํฌ์คํธ ๊ฒ์") + parser.add_argument("--retry-failed", action="store_true", help="failed ์ํ ํฌ์คํธ ์ฌ์๋") args = parser.parse_args() pending = load_pending() if not pending: - logger.error("๊ฒ์ํ ํฌ์คํธ๊ฐ ์์ต๋๋ค") + logger.error("pending_posts.json์ด ๋น์ด์๊ฑฐ๋ ๋ก๋ ์คํจ") sys.exit(1) ids_to_publish: list[str] = [] @@ -67,29 +91,35 @@ def main() -> None: if args.ids.strip(): ids_to_publish.extend(i.strip() for i in args.ids.split(",") if i.strip()) if args.all_pending: - ids_to_publish = [p["id"] for p in pending if p.get("status") == "pending"] + ids_to_publish = [ + p["id"] for p in pending + if p.get("status") in ("pending", "failed") + ] + if args.retry_failed: + failed_ids = [p["id"] for p in pending if p.get("status") == "failed"] + ids_to_publish = list(dict.fromkeys(ids_to_publish + failed_ids)) if not ids_to_publish: - logger.error("๊ฒ์ํ ํฌ์คํธ ID ์์ (--id, --ids, ๋๋ --all-pending ํ์)") - sys.exit(1) + logger.warning("๊ฒ์ํ ํฌ์คํธ ์์ (pending/failed ์ํ ์์)") + sys.exit(0) - logger.info(f"๊ฒ์ ๋์ {len(ids_to_publish)}๊ฐ: {ids_to_publish}") - - from blogger_uploader import upload_post + logger.info(f"๊ฒ์ ๋์ {len(ids_to_publish)}๊ฐ") success, fail = 0, 0 for post_id in ids_to_publish: - post = next((p for p in pending if p["id"] == post_id), None) + post = next( + (p for p in pending + if p["id"] == post_id and p.get("status") not in ("published",)), + None + ) if not post: - logger.error(f"ํฌ์คํธ ID ์์: {post_id}") - fail += 1 - continue - if post.get("status") == "published": - logger.warning(f"์ด๋ฏธ ๊ฒ์๋จ (๊ฑด๋๋): {post.get('title', post_id)}") + logger.warning(f"์ฒ๋ฆฌ ๊ฑด๋๋ (์๊ฑฐ๋ ์ด๋ฏธ ๊ฒ์๋จ): {post_id}") continue - logger.info(f"[{post_id}] ๊ฒ์ ์ค: {post.get('title', '')}") - result = upload_post({ + title = post.get("title", "") + logger.info(f"๊ฒ์ ์ค: {title[:60]}") + + result, err_log = upload_with_log_capture({ "title": post["title"], "content": post["content"], "labels": post.get("labels", []), @@ -99,20 +129,25 @@ def main() -> None: "sources": post.get("sources", []), }) - if result: + if result and not result.get("_error"): post["status"] = "published" post["publishedAt"] = datetime.now().isoformat() post["blogUrl"] = result.get("url", "") - logger.info(f" โ ์๋ฃ: {post['blogUrl']}") + post.pop("failReason", None) + logger.info(f" โ ์ฑ๊ณต: {post['blogUrl']}") success += 1 else: post["status"] = "failed" - logger.error(f" โ ์คํจ: {post.get('title', post_id)}") + post["failedAt"] = datetime.now().isoformat() + # ์๋ฌ ๋ก๊ทธ๋ฅผ failReason์ ์ ์ฅ (๋ค์ ์ง๋จ์ฉ) + post["failReason"] = (err_log or "upload_post returned None (๋ก๊ทธ ์์)")[:800] + logger.error(f" โ ์คํจ: {title[:50]}") + logger.error(f" โ {post['failReason'][:200]}") fail += 1 save_pending(pending) - logger.info(f"\n์๋ฃ: ์ฑ๊ณต {success}๊ฐ / ์คํจ {fail}๊ฐ") - if fail > 0: + logger.info(f"์๋ฃ: ์ฑ๊ณต {success} / ์คํจ {fail}") + if fail > 0 and success == 0: sys.exit(1) diff --git a/blog-automation/readability_checker.py b/blog-automation/readability_checker.py new file mode 100644 index 0000000000000..0c8e68cd9c088 --- /dev/null +++ b/blog-automation/readability_checker.py @@ -0,0 +1,101 @@ +"""์ฝ๊ธฐ ๋์ด๋ ์๋ ๊ฒ์ฌ โ ๋ฌธ์ฅ ๊ธธ์ดยท์ ๋ฌธ์ฉ์ด ๋น์จ์ ์ค์บํด ๊ณผ๋ํ๊ฒ ์ด๋ ค์ฐ๋ฉด +์ฌ์์ฑ์ ์์ฒญํฉ๋๋ค. + +๊ธ์์ฑ ๊ณ ๋ํ ๋ก๋๋งต์ ์ผ๋ถ: ์๋ฌด๋ฆฌ ๋์ ๋ถ ํํน์ด ์ข์๋ ๋ณธ๋ฌธ ๋ฌธ์ฅ์ด ๊ธธ๊ณ +์ ๋ฌธ์ฉ์ด๋ฅผ ์ค๋ช ์์ด ์์๋ด๋ฉด ์ค๊ฐ์ ์ดํํฉ๋๋ค. content_generator.py์ +์์ฑ ์ฌ์๋ ๋ฃจํ(๋ถ๋ ๋ฏธ๋ฌ ์ฌ์๋์ ๋์ผํ ํจํด)์ ์ฐ๊ฒฐ๋์ด, ๊ธฐ์ค ๋ฏธ๋ฌ ์ +๊ฐ์ ์์ฒญ ๋ด์์ ์ต๋ 2ํ ๋ ์๋ํฉ๋๋ค โ ์ API ํธ์ถ์ด๋ ๋ณ๋ ์ํฌํ๋ก๊ฐ +์๋๋ผ ๊ธฐ์กด ์ฌ์๋ ๋ฃจํ์ ๊ฒ์ฌ ํ๋๋ฅผ ์ถ๊ฐํ๋ ๊ฒ์ ๋๋ค. +""" + +import re + +# ์นดํ ๊ณ ๋ฆฌ๋ณ ์ ๋ฌธ์ฉ์ด โ ์ค๋ช ์์ด ์ฐ๋ฉด ์ดํ์ ์ ๋ฐํ๋ ์ฉ์ด๋ค. +# ์์ ํ ์ฌ์ ์ด ์๋๋ผ "์ค๋ช ์ด ํ์ํ ์ฉ์ด๊ฐ ๋์๋์ง" ์ ํธ๋ก๋ง ์ฌ์ฉ. +_JARGON_BY_CATEGORY: dict[str, set[str]] = { + "finance": { + "๋ ๋ฒ๋ฆฌ์ง", "ํ์์ํ", "์คํ๋ ๋", "๋ณ๋์ฑ์ง์", "๋ฐฐ๋น์์ต๋ฅ ", "๋๋ ์ด์ ", + "๋ฒ ์ด์์คํฌ์ธํธ", "ํํค์ง", "์กํฐ๋ธ๋ฆฌ๋ฐธ๋ฐ์ฑ", "์ดํ", "ํ๋ฉด๊ธ๋ฆฌ", "๋ง๊ธฐ์์ต๋ฅ ", + "๊ณต๋งค๋", "์์ปค๋ฒ๋ง", "์ต์ ํ๋ฆฌ๋ฏธ์", "๊ดด๋ฆฌ์จ", "์ต์คํฌ์ ", "ํค์งํ๋", + }, + "sports": { + "ํฌ์ ์ ", "์ต์คํํฐ๋๊ณจ", "์คํ์ฌ์ด๋ํธ๋ฉ", "์นด์ดํฐํ๋ ์ฑ", "๋น๋์ ", + "์ ๋กํฑ", "์ค์ํผํคํผ", "์ธ๋ํธ๋ํ ์ค", "ํฝ์ค๋กค", "์กด๋ํ์ค", + }, + "drama": { + "๋ฉํํฌ", "๋ฏธ์ฅ์ผ", "์ด๋๋ฒ์ค", "ํด๋ฆฌ์ ฐ", "๋ก๋ฐฅ", "๋ณต์ ", "์นดํ๋ฅด์์ค", + }, + "travel": { + "๋ ์ด์ค๋ฒ", "์ค๋ฒ๋ถํน", "์ผ๋ฆฌ๋ฒ๋", "๋ ธ์ผ", "์ฝ๋์ ฐ์ด", "์คํ์ค๋ฒ", + }, +} +_GENERIC_EXPLAIN_MARKERS = ("์ฝ๊ฒ ๋งํด", "์ฝ๊ฒ ๋งํ๋ฉด", "์ฝ๊ฒ ์ค๋ช ํ๋ฉด", "์ฆ,", "๋ค์ ๋งํด", "๋งํ์๋ฉด") + +_MAX_AVG_SENTENCE_LEN = 75 # ํ๊ท ๋ฌธ์ฅ ๊ธธ์ด(๊ณต๋ฐฑ ์ ์ธ ๊ธ์์) ์๊ณ๊ฐ +_MAX_LONG_SENTENCE_RATIO = 0.35 # ์๊ณ๊ฐ ์ด๊ณผ ๋ฌธ์ฅ ๋น์จ +_LONG_SENTENCE_LEN = 90 + + +def _strip_html(html: str) -> str: + text = re.sub(r"<[^>]+>", " ", html) + return re.sub(r"\s+", " ", text).strip() + + +def _split_sentences(text: str) -> list[str]: + parts = re.split(r"(?<=[.!?๋ค์])\s+", text) + return [p.strip() for p in parts if len(p.strip()) >= 5] + + +def assess_readability(html: str, category: str = "") -> dict: + """๋ณธ๋ฌธ HTML์ ์ฝ๊ธฐ ๋์ด๋๋ฅผ ํ๊ฐํฉ๋๋ค. + + Returns: + ok, avgSentenceLen, longSentenceRatio, jargonHits, jargonTerms, issues + """ + text = _strip_html(html) + sentences = _split_sentences(text) + if not sentences: + return {"ok": True, "avgSentenceLen": 0, "longSentenceRatio": 0.0, + "jargonHits": 0, "jargonTerms": [], "issues": []} + + lengths = [len(re.sub(r"\s+", "", s)) for s in sentences] + avg_len = sum(lengths) / len(lengths) + long_ratio = sum(1 for l in lengths if l > _LONG_SENTENCE_LEN) / len(lengths) + + jargon_pool = _JARGON_BY_CATEGORY.get(category, set()) + hit_terms = sorted({term for term in jargon_pool if term in text}) + jargon_hits = sum(text.count(term) for term in hit_terms) + explain_markers = sum(text.count(m) for m in _GENERIC_EXPLAIN_MARKERS) + + issues = [] + if avg_len > _MAX_AVG_SENTENCE_LEN: + issues.append(f"ํ๊ท ๋ฌธ์ฅ ๊ธธ์ด๊ฐ {round(avg_len)}์๋ก ๊น (๊ธฐ์ค {_MAX_AVG_SENTENCE_LEN}์ ์ดํ)") + if long_ratio > _MAX_LONG_SENTENCE_RATIO: + issues.append(f"๊ธด ๋ฌธ์ฅ({_LONG_SENTENCE_LEN}์ ์ด๊ณผ) ๋น์จ์ด {round(long_ratio*100)}%๋ก ๋์") + if hit_terms and explain_markers == 0: + issues.append(f"์ ๋ฌธ์ฉ์ด {len(hit_terms)}๊ฐ({', '.join(hit_terms[:5])})๊ฐ ์ฌ์ด ์ค๋ช ์์ด ์ฌ์ฉ๋จ") + + return { + "ok": not issues, + "avgSentenceLen": round(avg_len, 1), + "longSentenceRatio": round(long_ratio, 3), + "jargonHits": jargon_hits, + "jargonTerms": hit_terms, + "issues": issues, + } + + +def readability_escalation_note(assessment: dict | None) -> str: + """์ฝ๊ธฐ ๋์ด๋ ์ฌ์๋์ฉ ํ๋กฌํํธ ๋ณด๊ฐ ๋ฌธ๊ตฌ.""" + if not assessment or assessment.get("ok", True): + return "" + issues = "\n".join(f" - {i}" for i in assessment.get("issues", [])) + return ( + "\n\nโ ๏ธโ ๏ธโ ๏ธ [์ฝ๊ธฐ ๋์ด๋ ์ฌ์์ฑ ์์ฒญ] ์ด์ ์๋ต์ด ๋ค์ ์ด์ ๋ก ์ฝ๊ธฐ ์ด๋ ค์ ์ต๋๋ค:\n" + f"{issues}\n" + "์ด๋ฒ์๋ ๋ฐ๋์:\n" + " - ํ ๋ฌธ์ฅ์ ํ ๊ฐ์ง ์ฌ์ค๋ง ๋ด๊ณ , ๋ฌธ์ฅ์ ์งง๊ฒ ๋์ด ์ธ ๊ฒ\n" + " - ์ ๋ฌธ์ฉ์ด๊ฐ ๋์ค๋ฉด ๋ฐ๋ก ๋ค์ '์ฝ๊ฒ ๋งํ๋ฉด ~๋ผ๋ ๋ป์ ๋๋ค' ํํ๋ก ํ์ด์ ์ค๋ช ํ ๊ฒ\n" + " - ์ด๋ ค์ด ๊ฐ๋ ์ ๋น์ ๋ ์ผ์์ ์ธ ์์๋ก ๋ฐ๊ฟ ์ค๋ช ํ ๊ฒ\n" + "โ ๏ธโ ๏ธโ ๏ธ\n" + ) diff --git a/blog-automation/related_posts.py b/blog-automation/related_posts.py new file mode 100644 index 0000000000000..6535d828c6469 --- /dev/null +++ b/blog-automation/related_posts.py @@ -0,0 +1,379 @@ +""" +blog-automation/related_posts.py +๊ด๋ จ ํฌ์คํธ ์๋ ์ถ์ฒ + ๋ด๋ถ ๋งํฌ ํด๋ฌ์คํฐ๋ง ๋ชจ๋. + +๊ธฐ๋ฅ: + 1. ๊ด๋ จ ํฌ์คํธ ์ถ์ฒ (Jaccard + ํค์๋ ์ ์ฌ๋) + - posts.json์ tags, keyword, title ๊ธฐ๋ฐ ์ ์ฌ๋ ๊ณ์ฐ + - ํ์ฌ ํฌ์คํธ์ ๊ฐ์ฅ ์ ์ฌํ ์์ MAX_RELATED ๊ฐ ์ถ์ฒ + - HTML ์นด๋ ์น์ ์ผ๋ก ๋ฐํ โ _build_full_content์ ์ฝ์ + 2. ๋งํฌ ํด๋ฌ์คํฐ ๋น๋ (build_clusters) + - ๊ณตํต ํ๊ทธ 2๊ฐ ์ด์์ธ ํฌ์คํธ๋ฅผ ๊ฐ์ ํด๋ฌ์คํฐ๋ก ๋ฌถ์ (Union-Find) + - docs/data/link_clusters.json ์ ์ ์ฅ + - get_cluster_siblings() ๋ก ๋์ผ ํด๋ฌ์คํฐ ํฌ์คํธ ์กฐํ ๊ฐ๋ฅ + +์ฌ์ฉ๋ฒ: + from related_posts import build_related_section, build_clusters + + # ์ ๋ก๋ ์: ๊ด๋ จ ํฌ์คํธ HTML ์น์ + section = build_related_section(post_data, blog_config) + + # ๋ฐฐ์น: ํด๋ฌ์คํฐ JSON ์ฌ๋น๋ (blog-cluster.yml ๋ฑ์์ ํธ์ถ) + build_clusters() +""" + +from __future__ import annotations + +import json +import logging +import re +from collections import defaultdict +from datetime import datetime, timezone +from pathlib import Path + +logger = logging.getLogger(__name__) + +# โโ ๊ฒฝ๋ก ์ค์ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ +_ROOT = Path(__file__).parent.parent +POSTS_JSON = _ROOT / "docs" / "data" / "posts.json" +CLUSTERS_JSON = _ROOT / "docs" / "data" / "link_clusters.json" + +# โโ ํ๋ผ๋ฏธํฐ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ +MAX_RELATED = 3 # ํฌ์คํธ๋น ๊ด๋ จ ํฌ์คํธ ์ต๋ ์ +MIN_SIMILARITY = 0.025 # ์ ์ฌ๋ ์ต์ ์๊ณ๊ฐ (์ดํ ํ์ ์ ํจ) +CLUSTER_MIN_TAGS = 2 # ๊ฐ์ ํด๋ฌ์คํฐ๋ก ๋ฌถ์ ์ต์ ๊ณตํต ํ๊ทธ ์ +TAG_WEIGHT = 0.60 # ์ ์ฌ๋: ํ๊ทธ ๊ฐ์ค์น +KEYWORD_WEIGHT = 0.25 # ์ ์ฌ๋: ํค์๋ ๊ฐ์ค์น +TITLE_WEIGHT = 0.15 # ์ ์ฌ๋: ์ ๋ชฉ unigram ๊ฐ์ค์น + +_DEFAULT_BLOG_NAME = "์ค๋์ ํซ์ด์" +_DEFAULT_BLOG_URL = "https://hoguwhat1.blogspot.com" + + +# โโ ํฌ์คํธ ์ธ๋ฑ์ค ๋ก๋ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ + +def _load_posts() -> list[dict]: + """posts.json ๋ก๋ (blogUrl ์๋ ํญ๋ชฉ ์ ์ธ)""" + if not POSTS_JSON.exists(): + logger.warning(f"posts.json ์์: {POSTS_JSON}") + return [] + try: + with open(POSTS_JSON, encoding="utf-8") as f: + posts = json.load(f) + return [p for p in posts if p.get("blogUrl") and p.get("title")] + except Exception as e: + logger.warning(f"posts.json ๋ก๋ ์คํจ: {e}") + return [] + + +# โโ ์ ์ฌ๋ ๊ณ์ฐ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ + +def _tag_set(post: dict) -> set[str]: + """ํ๊ทธ + labels + keyword โ ์ ๊ทํ๋ ์งํฉ""" + combined = ( + list(post.get("tags") or []) + + list(post.get("labels") or []) + + ([post.get("keyword", "").strip()] if post.get("keyword") else []) + ) + return {t.strip().lower().replace(" ", "") for t in combined if t.strip()} + + +def _keyword_tokens(post: dict) -> set[str]: + """keyword + title โ 2์ ์ด์ ํ ํฐ ์งํฉ""" + text = " ".join([post.get("keyword") or "", post.get("title") or ""]) + return { + t.strip().lower() + for t in re.split(r'[\s\-โยท,ยท()\[\]\/]+', text) + if len(t.strip()) >= 2 + } + + +def _title_unigrams(post: dict) -> set[str]: + """์ ๋ชฉ ๋จ์ด ์งํฉ (2์ ์ด์)""" + title = (post.get("title") or "").lower() + return {w for w in re.split(r'\s+', title) if len(w) >= 2} + + +def _jaccard(a: set, b: set) -> float: + if not a or not b: + return 0.0 + union = len(a | b) + return len(a & b) / union if union else 0.0 + + +def _similarity(src: dict, cand: dict) -> float: + """์ข ํฉ ์ ์ฌ๋ ์ ์ (0.0 ~ 1.0)""" + return ( + TAG_WEIGHT * _jaccard(_tag_set(src), _tag_set(cand)) + + KEYWORD_WEIGHT * _jaccard(_keyword_tokens(src), _keyword_tokens(cand)) + + TITLE_WEIGHT * _jaccard(_title_unigrams(src), _title_unigrams(cand)) + ) + + +# โโ ๊ด๋ จ ํฌ์คํธ ์ถ์ฒ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ + +def get_related_posts(post_data: dict, top_n: int = MAX_RELATED) -> list[dict]: + """ + ํ์ฌ ํฌ์คํธ์ ๊ฐ์ฅ ์ ์ฌํ ํฌ์คํธ top_n ๊ฐ ๋ฐํ. + ๋ฐํ: [{"title", "url", "description", "score", "tags"}, ...] + """ + all_posts = _load_posts() + current_url = post_data.get("blogUrl") or "" + current_id = post_data.get("id") or "" + + scored: list[tuple[float, dict]] = [] + for p in all_posts: + if p.get("blogUrl") == current_url or p.get("id") == current_id: + continue + score = _similarity(post_data, p) + if score >= MIN_SIMILARITY: + scored.append((score, p)) + + scored.sort(key=lambda x: x[0], reverse=True) + + result = [] + for score, p in scored[:top_n]: + desc = p.get("metaDescription") or p.get("contentPreview") or "" + if len(desc) > 80: + desc = desc[:77] + "..." + result.append({ + "title": p.get("title", ""), + "url": p.get("blogUrl", ""), + "description": desc, + "score": round(score, 4), + "tags": (p.get("tags") or [])[:3], + }) + return result + + +# โโ HTML ์นด๋ ์น์ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ + +_SECTION_STYLE = ( + '' +) + + +def build_related_section(post_data: dict, blog_config: dict | None = None) -> str: + """ + ๊ด๋ จ ํฌ์คํธ HTML ์นด๋ ์น์ ๋ฐํ. + ๊ด๋ จ ํฌ์คํธ๊ฐ ์์ผ๋ฉด ๋น ๋ฌธ์์ด ๋ฐํ. + """ + related = get_related_posts(post_data) + if not related: + logger.debug("๊ด๋ จ ํฌ์คํธ ์์ โ ์น์ ์๋ต") + return "" + + cards = "" + for r in related: + tags_html = "".join( + f'#{t}' for t in r["tags"] + ) + desc_html = ( + f'{r["description"]}' + if r["description"] else "" + ) + cards += ( + f'' + f'{r["title"]}' + f'{desc_html}' + f'{tags_html}' + f'' + ) + + section = ( + f'{_SECTION_STYLE}' + f' ' + f'\n' + ) + logger.info(f"๊ด๋ จ ํฌ์คํธ {len(related)}๊ฐ ์น์ ์์ฑ") + return section + + +# โโ ๋งํฌ ํด๋ฌ์คํฐ ๋น๋ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ + +class _UnionFind: + def __init__(self, n: int): + self.parent = list(range(n)) + self.rank = [0] * n + + def find(self, x: int) -> int: + if self.parent[x] != x: + self.parent[x] = self.find(self.parent[x]) + return self.parent[x] + + def union(self, x: int, y: int) -> None: + rx, ry = self.find(x), self.find(y) + if rx == ry: + return + if self.rank[rx] < self.rank[ry]: + rx, ry = ry, rx + self.parent[ry] = rx + if self.rank[rx] == self.rank[ry]: + self.rank[rx] += 1 + + +def build_clusters(save: bool = True) -> dict: + """ + ๋ชจ๋ ํฌ์คํธ๋ฅผ ํ๊ทธ ์ ์ฌ๋ ๊ธฐ์ค์ผ๋ก ํด๋ฌ์คํฐ๋ง. + + ๊ณตํต ํ๊ทธ ์ >= CLUSTER_MIN_TAGS ์ด๋ฉด ๊ฐ์ ํด๋ฌ์คํฐ๋ก Union. + ๊ฒฐ๊ณผ๋ฅผ docs/data/link_clusters.json ์ ์ ์ฅ. + + ๋ฐํ ํ์: + { + "clusters": [{"id", "size", "representative_tags", "posts":[...]}, ...], + "post_to_cluster": {"post_id": "cluster_000", ...}, + "total_posts": N, + "total_clusters": M, + "built_at": "ISO8601" + } + """ + posts = _load_posts() + n = len(posts) + if n == 0: + logger.warning("posts.json ๋น์ด ์์ โ ํด๋ฌ์คํฐ ์์ฑ ๋ถ๊ฐ") + return {} + + uf = _UnionFind(n) + tag_sets = [_tag_set(p) for p in posts] + + # Union-Find: ๊ณตํต ํ๊ทธ >= CLUSTER_MIN_TAGS ์ด๋ฉด ์ฐ๊ฒฐ + for i in range(n): + for j in range(i + 1, n): + if len(tag_sets[i] & tag_sets[j]) >= CLUSTER_MIN_TAGS: + uf.union(i, j) + + # ํด๋ฌ์คํฐ ๊ทธ๋ฃจํ + groups: dict[int, list[int]] = defaultdict(list) + for i in range(n): + groups[uf.find(i)].append(i) + + clusters = [] + post_to_cluster: dict[str, str] = {} + + for cluster_idx, (_, members) in enumerate( + sorted(groups.items(), key=lambda x: -len(x[1])) + ): + cluster_id = f"cluster_{cluster_idx:03d}" + + # ๋ํ ํ๊ทธ: ๋ฉค๋ฒ ํ๊ทธ ๋น๋ ์์ 5๊ฐ + tag_freq: dict[str, int] = defaultdict(int) + for i in members: + for t in tag_sets[i]: + tag_freq[t] += 1 + rep_tags = sorted(tag_freq, key=lambda t: -tag_freq[t])[:5] + + post_list = [ + { + "id": posts[i].get("id", ""), + "title": posts[i].get("title", ""), + "url": posts[i].get("blogUrl", ""), + "tags": (posts[i].get("tags") or [])[:5], + } + for i in sorted(members) + ] + for item in post_list: + post_to_cluster[item["id"]] = cluster_id + + clusters.append({ + "id": cluster_id, + "size": len(members), + "representative_tags": rep_tags, + "posts": post_list, + }) + + result = { + "clusters": clusters, + "post_to_cluster": post_to_cluster, + "total_posts": n, + "total_clusters": len(clusters), + "built_at": datetime.now(timezone.utc).isoformat(), + } + + if save: + CLUSTERS_JSON.parent.mkdir(parents=True, exist_ok=True) + with open(CLUSTERS_JSON, "w", encoding="utf-8") as f: + json.dump(result, f, ensure_ascii=False, indent=2) + logger.info( + f"link_clusters.json ์ ์ฅ: " + f"{len(clusters)}๊ฐ ํด๋ฌ์คํฐ, {n}๊ฐ ํฌ์คํธ" + ) + + return result + + +def get_cluster_siblings(post_data: dict) -> list[dict]: + """ + ํ์ฌ ํฌ์คํธ์ ๊ฐ์ ํด๋ฌ์คํฐ์ ์ํ ํฌ์คํธ ๋ชฉ๋ก ๋ฐํ. + link_clusters.json์ด ์์ผ๋ฉด ๋น ๋ฆฌ์คํธ. + """ + if not CLUSTERS_JSON.exists(): + return [] + try: + with open(CLUSTERS_JSON, encoding="utf-8") as f: + data = json.load(f) + except Exception as e: + logger.warning(f"link_clusters.json ๋ก๋ ์คํจ: {e}") + return [] + + post_id = post_data.get("id") or "" + cluster_id = data.get("post_to_cluster", {}).get(post_id) + if not cluster_id: + return [] + + current_url = post_data.get("blogUrl") or "" + for cluster in data.get("clusters", []): + if cluster["id"] == cluster_id: + return [p for p in cluster["posts"] if p.get("url") != current_url] + return [] + + +# โโ CLI ์ง์ ์ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ + +if __name__ == "__main__": + import sys + logging.basicConfig(level=logging.INFO, format="%(levelname)s: %(message)s") + + if "--test-related" in sys.argv or len(sys.argv) == 1: + posts = _load_posts() + if posts: + test_post = posts[0] + print(f"\n๐ ํ ์คํธ: {test_post['title']}") + related = get_related_posts(test_post) + print(f"๊ด๋ จ ํฌ์คํธ {len(related)}๊ฐ:") + for r in related: + print(f" [{r['score']:.3f}] {r['title']}") + html = build_related_section(test_post) + print(f"\nHTML ์น์ ๊ธธ์ด: {len(html)}์") + print(html[:400] + "..." if len(html) > 400 else html) + + if "--build-clusters" in sys.argv or len(sys.argv) == 1: + result = build_clusters() + print(f"\nโ ํด๋ฌ์คํฐ ๋น๋ ์๋ฃ") + print(f" ์ด ํฌ์คํธ: {result.get('total_posts', 0)}๊ฐ") + print(f" ์ด ํด๋ฌ์คํฐ: {result.get('total_clusters', 0)}๊ฐ") + for c in result.get("clusters", [])[:8]: + size = c['size'] + tags = ', '.join(c['representative_tags'][:3]) + print(f" [{c['id']}] {size}๊ฐ | ํ๊ทธ: {tags}") + for p in c['posts'][:2]: + print(f" - {p['title'][:55]}") diff --git a/blog-automation/requirements.txt b/blog-automation/requirements.txt index 49009231328ba..148f0b2c20536 100644 --- a/blog-automation/requirements.txt +++ b/blog-automation/requirements.txt @@ -1,6 +1,10 @@ anthropic>=0.40.0 +openai>=1.30.0 requests>=2.31.0 python-dotenv>=1.0.0 schedule>=1.2.0,<2.0.0 json-repair>=0.30.0 pytrends>=4.9.0 +google-api-python-client>=2.100.0 +google-auth>=2.20.0 +google-auth-httplib2>=0.2.0 diff --git a/blog-automation/research_collector.py b/blog-automation/research_collector.py new file mode 100644 index 0000000000000..7e760f248e91b --- /dev/null +++ b/blog-automation/research_collector.py @@ -0,0 +1,161 @@ +"""๊ธ ์์ฑ ์ ์๋ฃ ์กฐ์ฌ โ ๊ฒ์ ์๋ ๋ถ์ + ๊ณต์ ์๋ฃ ๊ฒ์. + +ํ๋ฆ: ํค์๋ โ ๊ฒ์ ์๋ ๋ถ์(Claude) โ ๋ค์ด๋ฒ ๋ด์ค/์น ๊ฒ์ โ ์๋ฌธ ์์ง +๊ฒฐ๊ณผ๋ evidence_builder๊ฐ ์๋ฃํฉ(facts)์ผ๋ก ์ ๋ฆฌํฉ๋๋ค. +""" +import json +import logging +import os +import re + +import requests + +logger = logging.getLogger(__name__) + +_HEADERS = { + "User-Agent": ( + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) " + "AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36" + ) +} + +# ๊ณต์ยท์ ๋ขฐ ๋๋ฉ์ธ (๊ฒ์ ๊ฒฐ๊ณผ ์ฐ์ ์์) +_TRUSTED_DOMAINS = ( + ".go.kr", ".or.kr", ".gov", "korea.kr", "law.go.kr", + "bok.or.kr", "fss.or.kr", "kdi.re.kr", "nts.go.kr", + "yna.co.kr", "yonhapnews", "mk.co.kr", "hankyung.com", + "chosun.com", "joongang.co.kr", "donga.com", "hani.co.kr", + "khan.co.kr", "sbs.co.kr", "kbs.co.kr", "imbc.com", "ytn.co.kr", +) + + +def _is_trusted(url: str) -> bool: + return any(d in url.lower() for d in _TRUSTED_DOMAINS) + + +def analyze_search_intent(keyword: str) -> dict: + """ํค์๋์ ๊ฒ์ ์๋์ ํ์ํ ์ฌ์ค ๋ชฉ๋ก์ Claude๋ก ๋ถ์ํฉ๋๋ค.""" + try: + import anthropic + from config import claude_text, ANTHROPIC_API_KEY, CLAUDE_MODEL + if not ANTHROPIC_API_KEY or ANTHROPIC_API_KEY.startswith("sk-ant-xxx"): + return {} + client = anthropic.Anthropic(api_key=ANTHROPIC_API_KEY) + msg = client.messages.create( + model=CLAUDE_MODEL, + max_tokens=2000, + messages=[{ + "role": "user", + "content": ( + f"๋ธ๋ก๊ทธ ํค์๋: \"{keyword}\"\n\n" + "์ด ํค์๋๋ก ์ ํํ ๊ธ์ ์ฐ๋ ค๋ฉด ์ด๋ค ์ฌ์ค ํ์ธ์ด ํ์ํ์ง ๋ถ์ํ์ธ์.\n" + "JSON๋ง ์๋ต:\n" + '{"intent": "๊ฒ์ ์๋ ํ ์ค", ' + '"required_facts": ["ํ์ธ ํ์ํ ์ฌ์ค1", "์ฌ์ค2", "์ฌ์ค3"], ' + '"search_queries": ["๊ฒ์์ด1", "๊ฒ์์ด2", "๊ฒ์์ด3"]}' + ), + }], + ) + raw = claude_text(msg).strip() + s, e = raw.find("{"), raw.rfind("}") + if s != -1 and e > s: + data = json.loads(raw[s:e + 1]) + if isinstance(data, dict): + logger.info(f"๊ฒ์ ์๋: {data.get('intent', '')[:60]}") + return data + except Exception as exc: + logger.warning(f"๊ฒ์ ์๋ ๋ถ์ ์คํจ: {exc}") + return {} + + +def _naver_search(query: str, kind: str, display: int = 5) -> list[dict]: + """๋ค์ด๋ฒ ๊ฒ์ API (news ๋๋ webkr).""" + cid = os.getenv("NAVER_CLIENT_ID", "") + csec = os.getenv("NAVER_CLIENT_SECRET", "") + if not cid or not csec: + return [] + try: + r = requests.get( + f"https://openapi.naver.com/v1/search/{kind}.json", + headers={"X-Naver-Client-Id": cid, "X-Naver-Client-Secret": csec}, + params={"query": query, "display": display, + **({"sort": "date"} if kind == "news" else {})}, + timeout=10, + ) + if r.status_code != 200: + return [] + items = [] + for it in r.json().get("items", []): + title = re.sub(r"<[^>]+>", "", it.get("title", "")).strip() + desc = re.sub(r"<[^>]+>", "", it.get("description", "")).strip() + url = it.get("originallink") or it.get("link", "") + if not title or not url: + continue + items.append({ + "title": title, + "url": url, + "snippet": desc, + "published_at": (it.get("pubDate") or "")[:16], + "kind": kind, + }) + return items + except Exception as exc: + logger.debug(f"๋ค์ด๋ฒ {kind} ๊ฒ์ ์คํจ ({query}): {exc}") + return [] + + +def _fetch_page_text(url: str, max_chars: int = 2500) -> str: + """๊ฒ์ ๊ฒฐ๊ณผ ํ์ด์ง ๋ณธ๋ฌธ ํ ์คํธ ์์ง (์คํจํด๋ ๋ฌดํด).""" + try: + r = requests.get(url, headers=_HEADERS, timeout=8) + if r.status_code != 200: + return "" + html = r.text + # script/style ์ ๊ฑฐ ํ ํ๊ทธ ์ ๊ฑฐ + html = re.sub(r"<(script|style)[^>]*>.*?\1>", " ", html, flags=re.S | re.I) + text = re.sub(r"<[^>]+>", " ", html) + text = re.sub(r"\s+", " ", text).strip() + return text[:max_chars] + except Exception: + return "" + + +def collect_research(keyword: str, max_materials: int = 8) -> dict: + """ํค์๋์ ๋ํ ์กฐ์ฌ ์๋ฃ๋ฅผ ์์งํฉ๋๋ค. + + Returns: + {"keyword", "intent", "required_facts", "materials": [{title,url,snippet,body,...}]} + ์์ง ์คํจ ์ materials๊ฐ ๋น ๋ชฉ๋ก. + """ + intent = analyze_search_intent(keyword) + queries = intent.get("search_queries") or [keyword] + + seen_urls: set[str] = set() + materials: list[dict] = [] + for q in queries[:3]: + for kind in ("news", "webkr"): + for it in _naver_search(q, kind): + if it["url"] in seen_urls: + continue + seen_urls.add(it["url"]) + it["trusted"] = _is_trusted(it["url"]) + materials.append(it) + + # ์ ๋ขฐ ๋๋ฉ์ธ ์ฐ์ ์ ๋ ฌ ํ ์์ N๊ฐ๋ง ๋ณธ๋ฌธ ์์ง + materials.sort(key=lambda x: (not x["trusted"],)) + materials = materials[:max_materials] + for it in materials[:5]: + body = _fetch_page_text(it["url"]) + if body: + it["body"] = body + + logger.info( + f"์๋ฃ ์กฐ์ฌ: {len(materials)}๊ฐ ์์ง " + f"(์ ๋ขฐ ๋๋ฉ์ธ {sum(1 for m in materials if m['trusted'])}๊ฐ) โ '{keyword}'" + ) + return { + "keyword": keyword, + "intent": intent.get("intent", ""), + "required_facts": intent.get("required_facts", []), + "materials": materials, + } diff --git a/blog-automation/restyle_post.py b/blog-automation/restyle_post.py new file mode 100644 index 0000000000000..8d166cabb606c --- /dev/null +++ b/blog-automation/restyle_post.py @@ -0,0 +1,261 @@ +"""ํฌ์คํธ ๋์์ธ ์คํ์ผ๋ง ๊ต์ฒด (๋ด์ฉ ๋ณ๊ฒฝ ์์) + +์ ๋์์ธ(ํ๋ ๊ณ์ด)์ด ์ ์ฉ๋ ๊ฒ์๊ธ์ ์๋ ๋์์ธ(ํ์/ํ๋ #4a90e2)์ผ๋ก +๋ด์ฉ ์์ ์์ด CSS ๋ฌธ์์ด ์นํ๋ง์ผ๋ก ๋๋๋ฆฝ๋๋ค. + +Usage: + python restyle_post.py --blog-url <๋ธ๋ก๊ฑฐ_ํฌ์คํธ_URL> +""" + +import argparse +import json +import logging +import os +import re +import sys + +import requests +from dotenv import load_dotenv +load_dotenv() + +logging.basicConfig(level=logging.INFO, format="%(asctime)s %(levelname)s %(message)s") +logger = logging.getLogger(__name__) + +BLOGGER_API_BASE = "https://www.googleapis.com/blogger/v3" + + +# โโ ๋์์ธ ์นํ ๋งต โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ +# (๊ตฌ ๋์์ธ โ ์๋ ๋์์ธ) CSS ํจํด์ ์ง์ ๊ต์ฒด +STYLE_REPLACEMENTS = [ + # ๋ชฉ์ฐจ ๋ฐ์ค + ( + r'background:#eff6ff;border-left:5px solid #2563eb;border-radius:0 12px 12px 0;' + r'padding:20px 24px;margin:2em 0;', + 'background:#f8f9fa;border-left:4px solid #4a90e2;border-radius:8px;' + 'padding:20px 24px;margin:2em 0;max-width:680px;', + ), + # ๋ชฉ์ฐจ ์ ๋ชฉ + ( + r'font-weight:800;font-size:15px;margin:0 0 12px;color:#1e3a8a;', + 'font-weight:700;font-size:16px;margin:0 0 12px;', + ), + # ๋ชฉ์ฐจ ๋ชฉ๋ก + ( + r'margin:0;padding-left:22px;line-height:2\.1;color:#374151;', + 'margin:0;padding-left:20px;line-height:2;', + ), + # ๋ชฉ์ฐจ ๋งํฌ + ( + r'color:#1d4ed8;text-decoration:none;font-weight:500;', + 'color:#4a90e2;text-decoration:none;', + ), + # ํ๊ทธ ํด๋ผ์ฐ๋ ๋งํฌ + ( + r'display:inline-block;margin:4px 3px;padding:6px 16px;' + r'background:#eff6ff;border-radius:20px;text-decoration:none;' + r'color:#1d4ed8;font-size:13px;font-weight:500;border:1px solid #bfdbfe;', + 'display:inline-block;margin:4px;padding:5px 14px;' + 'background:#e8f0fe;border-radius:20px;text-decoration:none;' + 'color:#1a73e8;font-size:13px;', + ), + # ํ๊ทธ ์น์ ์ปจํ ์ด๋ + ( + r'margin:2\.5em 0;padding:20px 24px;' + r'background:#f8fafc;border-radius:12px;border:1px solid #e5e7eb;', + 'margin:2.5em 0;padding:20px;background:#f8f9fa;border-radius:10px;', + ), + # ํ๊ทธ ์น์ ์ ๋ชฉ + ( + r'font-weight:700;margin:0 0 12px;color:#374151;', + 'font-weight:700;margin:0 0 10px;', + ), + # ์ถ์ฒ ์น์ ์ปจํ ์ด๋ + ( + r'margin:2\.5em 0;padding:20px 24px;' + r'background:#f8fafc;border-radius:12px;border:1px solid #e5e7eb;', + 'margin:2.5em 0;padding:20px 24px;background:#f1f3f4;' + 'border-radius:10px;border-left:4px solid #5f6368;', + ), + # ์ถ์ฒ ์ ๋ชฉ + ( + r'font-weight:700;font-size:15px;margin:0 0 12px;color:#374151;', + 'font-weight:700;font-size:15px;margin:0 0 10px;', + ), + # ์ถ์ฒ ๋ชฉ๋ก + ( + r'margin:0;padding-left:22px;line-height:2;font-size:14px;color:#374151;', + 'margin:0;padding-left:20px;line-height:1.9;font-size:14px;', + ), + # ์ถ์ฒ ๋งํฌ ์์ + ( + r'color:#1d4ed8;text-decoration:none;', + 'color:#1a73e8;text-decoration:none;', + ), + # ํธํฐ (๋ฉด์ฑ ๋ฐ์ค) + ( + r'margin-top:3em;padding:18px 22px;' + r'background:#fffbeb;border-radius:0 12px 12px 0;' + r'border-left:4px solid #d97706;', + 'margin-top:3em;padding:18px 20px;background:#fff3cd;border-radius:10px;' + 'border-left:4px solid #ffc107;', + ), + # ํธํฐ ํ ์คํธ + ( + r'font-size:13px;color:#78350f;margin:0;line-height:1\.8;', + 'font-size:13px;color:#666;margin:0;', + ), + # ์ธ๋ถ wrapper โ max-width + font + ( + r"max-width:780px;margin:0 auto;padding:8px 4px;" + r"font-family:'Noto Sans KR','Apple SD Gothic Neo','๋ง์ ๊ณ ๋',sans-serif;" + r"font-size:16px;line-height:1\.9;color:#374151;word-break:keep-all;", + "max-width:800px;margin:0 auto;" + "font-family:'Noto Sans KR',sans-serif;line-height:1.9;color:#222;", + ), +] + + +def _get_blog_config(blog_url: str) -> dict: + """blog_url ๋๋ฉ์ธ์ ๋ง๋ BLOGS_CONFIG ํญ๋ชฉ์ ๋ฐํํฉ๋๋ค.""" + from urllib.parse import urlparse + domain = urlparse(blog_url).netloc.lower() + raw = os.getenv("BLOGS_CONFIG", "") + if raw: + try: + for b in json.loads(raw): + # BLOGS_CONFIG ํ๋: 'url' (๋์๋ณด๋ saveBlogModal ๊ธฐ์ค) + home = b.get("url", "").lower().strip("/") + if home and (domain in home or home in domain): + return b + except Exception as e: + logger.error(f"BLOGS_CONFIG ํ์ฑ ์ค๋ฅ: {e}") + return {} + + +def _get_access_token(blog_config: dict) -> str | None: + """OAuth2 Refresh Token โ Access Token ๊ตํ.""" + client_id = blog_config.get("client_id") or os.getenv("GOOGLE_CLIENT_ID", "") + client_secret = blog_config.get("client_secret") or os.getenv("GOOGLE_CLIENT_SECRET", "") + refresh_token = blog_config.get("refresh_token") or os.getenv("GOOGLE_REFRESH_TOKEN", "") + if not all([client_id, client_secret, refresh_token]): + return None + resp = requests.post("https://oauth2.googleapis.com/token", data={ + "grant_type": "refresh_token", + "refresh_token": refresh_token, + "client_id": client_id, + "client_secret": client_secret, + }, timeout=15) + if resp.status_code == 200: + return resp.json().get("access_token") + logger.error(f"ํ ํฐ ๊ตํ ์คํจ: {resp.text[:200]}") + return None + + +def _get_post_by_url(blog_url: str, blog_config: dict) -> dict | None: + """URL์ ํด๋นํ๋ Blogger ํฌ์คํธ ์ ์ฒด ๋ฐ์ดํฐ๋ฅผ ๋ฐํํฉ๋๋ค.""" + from urllib.parse import urlparse + path = urlparse(blog_url).path + blog_id = blog_config.get("blog_id") or os.getenv("BLOGGER_BLOG_ID", "") + if not blog_id: + logger.error("blog_id๊ฐ ์์ต๋๋ค. BLOGS_CONFIG ๋๋ BLOGGER_BLOG_ID๋ฅผ ํ์ธํ์ธ์.") + return None + access_token = _get_access_token(blog_config) + if not access_token: + return None + resp = requests.get( + f"{BLOGGER_API_BASE}/blogs/{blog_id}/posts/bypath", + headers={"Authorization": f"Bearer {access_token}"}, + params={"path": path, "fetchImages": "false"}, + timeout=15, + ) + if resp.status_code == 200: + return resp.json() + logger.error(f"ํฌ์คํธ ์กฐํ ์คํจ [{resp.status_code}]: {resp.text[:200]}") + return None + + +def _apply_style_replacements(html: str) -> str: + """๋์์ธ CSS ๋ฌธ์์ด์ ์๋ ์คํ์ผ๋ก ์นํํฉ๋๋ค.""" + for old_pat, new_str in STYLE_REPLACEMENTS: + html = re.sub(old_pat, new_str, html) + return html + + +def restyle(blog_url: str) -> int: + logger.info(f"=== ๋์์ธ ์๋ณต ์์: {blog_url} ===") + + # ํ๊ฒฝ๋ณ์ ์ํ ์ง๋จ + has_client_id = bool(os.getenv("GOOGLE_CLIENT_ID")) + has_client_secret = bool(os.getenv("GOOGLE_CLIENT_SECRET")) + has_refresh_token = bool(os.getenv("GOOGLE_REFRESH_TOKEN")) + has_blogger_id = bool(os.getenv("BLOGGER_BLOG_ID")) + has_blogs_config = bool(os.getenv("BLOGS_CONFIG")) + logger.info( + f"ํ๊ฒฝ๋ณ์ ์ํ: CLIENT_ID={has_client_id} SECRET={has_client_secret} " + f"REFRESH={has_refresh_token} BLOGGER_ID={has_blogger_id} BLOGS_CONFIG={has_blogs_config}" + ) + + blog_config = _get_blog_config(blog_url) + if not blog_config: + logger.warning("BLOGS_CONFIG์์ ๋ธ๋ก๊ทธ ์ค์ ์ ์ฐพ์ง ๋ชปํ์ต๋๋ค. ๊ธฐ๋ณธ ํ๊ฒฝ๋ณ์๋ฅผ ์ฌ์ฉํฉ๋๋ค.") + else: + logger.info(f"๋ธ๋ก๊ทธ ์ค์ ํ์ธ: id={blog_config.get('id')} blog_id={blog_config.get('blog_id')}") + + post = _get_post_by_url(blog_url, blog_config) + if not post: + return 1 + + post_id = post.get("id", "") + title = post.get("title", "") + content = post.get("content", "") + labels = post.get("labels", []) + if labels and isinstance(labels[0], dict): + labels = [l.get("name", "") for l in labels] + + logger.info(f"ํฌ์คํธ ์กฐํ ์ฑ๊ณต: [{post_id}] {title}") + logger.info(f"ํ์ฌ HTML ๊ธธ์ด: {len(content)} chars") + + new_content = _apply_style_replacements(content) + + if new_content == content: + logger.info("โ ์ด๋ฏธ ์๋ ๋์์ธ์ด๊ฑฐ๋ ๋ณ๊ฒฝ ๋์ ํจํด์ ์ฐพ์ง ๋ชปํ์ต๋๋ค. ์ ๋ฐ์ดํธ ๋ถํ์.") + return 0 + + changed_count = sum( + 1 for old_pat, _ in STYLE_REPLACEMENTS + if re.search(old_pat, content) + ) + logger.info(f"๊ต์ฒด๋ CSS ํจํด: {changed_count}๊ฐ") + + # Blogger API PUT + blog_id = blog_config.get("blog_id") or os.getenv("BLOGGER_BLOG_ID", "") + access_token = _get_access_token(blog_config) + if not access_token: + logger.error("์ก์ธ์ค ํ ํฐ ์์ โ ์ ๋ฐ์ดํธ ์คํจ") + return 1 + + payload = {"title": title, "content": new_content, "labels": labels} + resp = requests.put( + f"{BLOGGER_API_BASE}/blogs/{blog_id}/posts/{post_id}", + headers={"Authorization": f"Bearer {access_token}", "Content-Type": "application/json"}, + json=payload, + params={"fetchBody": "false"}, + timeout=30, + ) + if resp.status_code == 200: + logger.info(f"โ ํฌ์คํธ ์ ๋ฐ์ดํธ ์ฑ๊ณต: {blog_url}") + return 0 + else: + logger.error(f"โ ์ ๋ฐ์ดํธ ์คํจ [{resp.status_code}]: {resp.text[:300]}") + return 1 + + +def main() -> int: + parser = argparse.ArgumentParser(description="ํฌ์คํธ ๋์์ธ ์๋ณต") + parser.add_argument("--blog-url", required=True, help="์ ๋ฐ์ดํธํ Blogger ํฌ์คํธ URL") + args = parser.parse_args() + return restyle(args.blog_url) + + +if __name__ == "__main__": + sys.exit(main()) diff --git a/blog-automation/schedule_manager.py b/blog-automation/schedule_manager.py new file mode 100644 index 0000000000000..846d9ea963e57 --- /dev/null +++ b/blog-automation/schedule_manager.py @@ -0,0 +1,418 @@ +#!/usr/bin/env python3 +""" +schedule_manager.py โ ์ค์ผ์ค ์คํ ์ด๋ ฅ ์ถ์ + ์คํจ ๊ฐ์ง ์์ง +-------------------------------------------------------------- +๊ธฐ๋ฅ: + 1. GitHub Actions API๋ก ์ํฌํ๋ก์ฐ ์คํ ๊ฒฐ๊ณผ ์์ง + 2. docs/data/schedule_history.json์ ์ด๋ ฅ ์ ์ฅ + 3. ์ฐ์ ์คํจ ๊ฐ์ง โ GitHub Issue ์๋ ์์ฑ + 4. schedule_config.json ๊ธฐ๋ฐ์ผ๋ก ๋ชจ๋ ์ํฌํ๋ก์ฐ ๋ชจ๋ํฐ๋ง + +์ฌ์ฉ๋ฒ: + python schedule_manager.py # ์ด๋ ฅ ์์ง + ์คํจ ๊ฐ์ง + python schedule_manager.py --report # ํํฉ ์์ฝ ์ถ๋ ฅ + python schedule_manager.py --issue-test # ํ ์คํธ ์ด์ ์์ฑ +""" + +import os +import json +import sys +import logging +from datetime import datetime, timedelta, timezone +from pathlib import Path + +import requests + +# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ +# ์ค์ +# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ +GITHUB_TOKEN = os.environ.get("GITHUB_TOKEN", "") +GITHUB_REPO = os.environ.get("GITHUB_REPOSITORY", "Kevinlee7250/cli") +BRANCH = os.environ.get("GITHUB_REF_NAME", "claude/blog-automation-system-KAbtE") + +OWNER, REPO = GITHUB_REPO.split("/") if "/" in GITHUB_REPO else ("", GITHUB_REPO) + +BASE_DIR = Path(__file__).parent +DATA_DIR = BASE_DIR.parent / "docs" / "data" +SCHEDULE_CONFIG = DATA_DIR / "schedule_config.json" +HISTORY_FILE = DATA_DIR / "schedule_history.json" + +LOOKBACK_HOURS = 25 # ์์ง ๋์ ์คํ ๊ธฐ๊ฐ (์๊ฐ) +MAX_HISTORY_DAYS = 30 # ์ด๋ ฅ ๋ณด๊ด ๊ธฐ๊ฐ (์ผ) + +logging.basicConfig( + level=logging.INFO, + format="%(asctime)s [%(levelname)s] %(message)s", + datefmt="%Y-%m-%d %H:%M:%S", +) +logger = logging.getLogger(__name__) + + +# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ +# GitHub API ํฌํผ +# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ +def _gh_headers() -> dict: + return { + "Authorization": f"token {GITHUB_TOKEN}", + "Accept": "application/vnd.github+json", + "X-GitHub-Api-Version": "2022-11-28", + } + + +def _gh_get(path: str, params: dict = None) -> dict | list: + """GitHub API GET ์์ฒญ (๋จ์ผ ํ์ด์ง).""" + url = f"https://api.github.com{path}" + resp = requests.get(url, headers=_gh_headers(), params=params, timeout=20) + resp.raise_for_status() + return resp.json() + + +def _gh_post(path: str, payload: dict) -> dict: + """GitHub API POST ์์ฒญ.""" + url = f"https://api.github.com{path}" + resp = requests.post(url, headers=_gh_headers(), json=payload, timeout=20) + resp.raise_for_status() + return resp.json() + + +# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ +# ์ค์ ๋ก๋ +# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ +def load_schedule_config() -> dict: + """schedule_config.json ๋ก๋.""" + if SCHEDULE_CONFIG.exists(): + return json.loads(SCHEDULE_CONFIG.read_text(encoding="utf-8")) + # ์์ผ๋ฉด GitHub์์ ์ง์ ๊ฐ์ ธ์ค๊ธฐ + try: + data = _gh_get(f"/repos/{OWNER}/{REPO}/contents/docs/data/schedule_config.json", + {"ref": BRANCH}) + import base64 + content = base64.b64decode(data["content"]).decode("utf-8") + return json.loads(content) + except Exception as e: + logger.warning(f"schedule_config.json ๋ก๋ ์คํจ: {e}") + return {"schedules": [], "alert_rules": {"consecutive_failures": 2}} + + +def load_history() -> dict: + """schedule_history.json ๋ก๋ (์์ผ๋ฉด ๋น ๊ตฌ์กฐ ๋ฐํ).""" + if HISTORY_FILE.exists(): + return json.loads(HISTORY_FILE.read_text(encoding="utf-8")) + return {"runs": {}, "alerts": [], "last_updated": None} + + +def save_history(history: dict): + """schedule_history.json ์ ์ฅ.""" + DATA_DIR.mkdir(parents=True, exist_ok=True) + history["last_updated"] = datetime.now(timezone.utc).isoformat() + HISTORY_FILE.write_text( + json.dumps(history, ensure_ascii=False, indent=2), + encoding="utf-8" + ) + logger.info(f"์ด๋ ฅ ์ ์ฅ ์๋ฃ: {HISTORY_FILE}") + + +# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ +# ์ํฌํ๋ก์ฐ ์คํ ์ด๋ ฅ ์์ง +# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ +def fetch_workflow_runs(workflow_file: str, hours: int = LOOKBACK_HOURS) -> list: + """ํน์ ์ํฌํ๋ก์ฐ์ ์ต๊ทผ ์คํ ๋ชฉ๋ก ๋ฐํ.""" + since = (datetime.now(timezone.utc) - timedelta(hours=hours)).isoformat() + try: + data = _gh_get( + f"/repos/{OWNER}/{REPO}/actions/workflows/{workflow_file}/runs", + {"per_page": 10, "created": f">={since}"} + ) + runs = data.get("workflow_runs", []) + return [ + { + "run_id": r["id"], + "status": r["status"], # queued / in_progress / completed + "conclusion": r.get("conclusion"), # success / failure / cancelled / skipped + "started_at": r["created_at"], + "completed_at": r.get("updated_at"), + "html_url": r["html_url"], + "event": r["event"], # schedule / workflow_dispatch / push + "run_number": r["run_number"], + } + for r in runs + ] + except requests.HTTPError as e: + if e.response.status_code == 404: + logger.debug(f"์ํฌํ๋ก์ฐ ์์: {workflow_file}") + else: + logger.warning(f"API ์ค๋ฅ ({workflow_file}): {e}") + return [] + + +def collect_all_runs(config: dict) -> dict: + """๋ชจ๋ ์ค์ผ์ค๋ ์ํฌํ๋ก์ฐ์ ์คํ ์ด๋ ฅ ์์ง.""" + results = {} + schedules = config.get("schedules", []) + seen_workflows = set() + + for sched in schedules: + wf = sched["workflow"] + if wf in seen_workflows: + continue + seen_workflows.add(wf) + + logger.info(f"์์ง ์ค: {wf}") + runs = fetch_workflow_runs(wf) + results[wf] = { + "schedule_id": sched["id"], + "category": sched.get("category", "unknown"), + "enabled": sched.get("enabled", True), + "recent_runs": runs, + "fetched_at": datetime.now(timezone.utc).isoformat(), + } + + return results + + +# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ +# ์คํจ ๊ฐ์ง +# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ +def detect_consecutive_failures(workflow_runs: dict, threshold: int = 2) -> list: + """์ฐ์ ์คํจ ์ํฌํ๋ก์ฐ ๋ชฉ๋ก ๋ฐํ.""" + failures = [] + + for wf_file, info in workflow_runs.items(): + if not info.get("enabled", True): + continue + + runs = info.get("recent_runs", []) + # ์๋ฃ๋ ์คํ๋ง ํํฐ๋ง, ์ต์ ์ ์ ๋ ฌ + completed = [r for r in runs if r["status"] == "completed"] + if len(completed) < threshold: + continue + + # ์ต๊ทผ N๊ฐ ์ฐ์ ์คํจ ํ์ธ + last_n = completed[:threshold] + if all(r["conclusion"] == "failure" for r in last_n): + failures.append({ + "workflow": wf_file, + "category": info.get("category"), + "fail_count": threshold, + "last_run": last_n[0], + "runs": last_n, + }) + + return failures + + +def should_alert(failures: list, history: dict) -> list: + """์ด๋ฏธ ์๋ฆผ ๋ณด๋ธ ๊ฑด ์ ์ธํ๊ณ ์๋ก์ด ์คํจ๋ง ๋ฐํ.""" + sent_keys = {a["workflow"] for a in history.get("alerts", []) + if not a.get("resolved", False)} + return [f for f in failures if f["workflow"] not in sent_keys] + + +# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ +# GitHub Issue ์๋ฆผ +# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ +def create_failure_issue(failure: dict) -> dict | None: + """์ฐ์ ์คํจ ์ํฌํ๋ก์ฐ์ ๋ํด GitHub Issue ์์ฑ.""" + wf = failure["workflow"] + runs = failure["runs"] + last = failure["last_run"] + + run_links = "\n".join( + f"- Run #{r['run_number']}: [{r['conclusion']}]({r['html_url']}) โ {r['started_at'][:16]}" + for r in runs + ) + + body = f"""## ๐จ ์ํฌํ๋ก์ฐ ์ฐ์ ์คํจ ๊ฐ์ง + +**์ํฌํ๋ก์ฐ:** `{wf}` +**์นดํ ๊ณ ๋ฆฌ:** `{failure.get('category', 'unknown')}` +**์ฐ์ ์คํจ:** {failure['fail_count']}ํ + +### ์ต๊ทผ ์คํจ ์คํ + +{run_links} + +### ์กฐ์น ์ฌํญ + +1. ์ ๋งํฌ์์ ์คํจ ๋ก๊ทธ ํ์ธ +2. ์ค๋ฅ ์์ธ ํ์ ํ ์๋ ์คํ ํ ์คํธ +3. ๋ฌธ์ ํด๊ฒฐ ํ ์ด ์ด์๋ฅผ Close + +--- +*์๋ ์์ฑ: schedule_manager.py @ {datetime.now(timezone.utc).strftime('%Y-%m-%d %H:%M UTC')}* +""" + + payload = { + "title": f"[๐จ ์๋ํ ์คํจ] {wf} โ {failure['fail_count']}ํ ์ฐ์ ์คํจ", + "body": body, + "labels": ["bug", "automation"], + } + + try: + result = _gh_post(f"/repos/{OWNER}/{REPO}/issues", payload) + logger.info(f"์ด์ ์์ฑ: #{result['number']} โ {wf}") + return result + except Exception as e: + logger.error(f"์ด์ ์์ฑ ์คํจ ({wf}): {e}") + return None + + +# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ +# ์ด๋ ฅ ์ ๋ฐ์ดํธ (์ค๋๋ ํญ๋ชฉ ์ ๋ฆฌ) +# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ +def update_history(history: dict, new_runs: dict, new_alerts: list) -> dict: + """history์ ์ ์คํ ์ด๋ ฅ ๋ณํฉ + ์ค๋๋ ํญ๋ชฉ ์ ๋ฆฌ.""" + cutoff = datetime.now(timezone.utc) - timedelta(days=MAX_HISTORY_DAYS) + + # runs ๋ณํฉ + for wf_file, info in new_runs.items(): + if wf_file not in history["runs"]: + history["runs"][wf_file] = {"all_runs": []} + + existing_ids = {r["run_id"] for r in history["runs"][wf_file].get("all_runs", [])} + for run in info.get("recent_runs", []): + if run["run_id"] not in existing_ids: + history["runs"][wf_file].setdefault("all_runs", []).append(run) + + # ์ค๋๋ ํญ๋ชฉ ์ ๋ฆฌ + history["runs"][wf_file]["all_runs"] = [ + r for r in history["runs"][wf_file]["all_runs"] + if r.get("started_at", "9999") >= cutoff.isoformat() + ] + + # ์ต์ ํต๊ณ ์ ๋ฐ์ดํธ + all_runs = history["runs"][wf_file]["all_runs"] + completed = [r for r in all_runs if r["status"] == "completed"] + success_count = sum(1 for r in completed if r["conclusion"] == "success") + fail_count = sum(1 for r in completed if r["conclusion"] == "failure") + + history["runs"][wf_file].update({ + "category": info.get("category"), + "enabled": info.get("enabled"), + "total_runs": len(completed), + "success_count": success_count, + "failure_count": fail_count, + "success_rate": round(success_count / len(completed) * 100, 1) if completed else None, + "last_run": completed[0] if completed else None, + }) + + # alerts ์ถ๊ฐ + for alert in new_alerts: + history.setdefault("alerts", []).append({ + "workflow": alert["workflow"], + "fail_count": alert["fail_count"], + "detected_at": datetime.now(timezone.utc).isoformat(), + "resolved": False, + }) + + return history + + +# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ +# ๋ฆฌํฌํธ ์ถ๋ ฅ +# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ +def print_report(history: dict): + """ํํฉ ์์ฝ ์ถ๋ ฅ.""" + print("\n" + "="*60) + print("๐ ์ค์ผ์ค ์คํ ํํฉ ์์ฝ") + print("="*60) + + runs = history.get("runs", {}) + if not runs: + print("์ด๋ ฅ ์์") + return + + for wf, info in sorted(runs.items()): + last = info.get("last_run") + rate = info.get("success_rate") + status_icon = "โ " if rate and rate >= 80 else ("โ ๏ธ" if rate and rate >= 50 else "โ") + + print(f"\n{status_icon} {wf}") + print(f" ์ด ์คํ: {info.get('total_runs', 0)}ํ | " + f"์ฑ๊ณต: {info.get('success_count', 0)} | " + f"์คํจ: {info.get('failure_count', 0)} | " + f"์ฑ๊ณต๋ฅ : {rate}%") + if last: + print(f" ์ต๊ทผ ์คํ: {last['started_at'][:16]} โ {last.get('conclusion', 'unknown')}") + + alerts = [a for a in history.get("alerts", []) if not a.get("resolved")] + if alerts: + print(f"\n๐จ ๋ฏธํด๊ฒฐ ์๋ฆผ: {len(alerts)}๊ฑด") + for a in alerts: + print(f" - {a['workflow']} ({a['detected_at'][:10]})") + + print("\n" + "="*60) + + +# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ +# ๋ฉ์ธ +# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ +def main(): + if not GITHUB_TOKEN: + logger.error("GITHUB_TOKEN ํ๊ฒฝ ๋ณ์๊ฐ ์ค์ ๋์ง ์์์ต๋๋ค.") + sys.exit(1) + + args = sys.argv[1:] + report_only = "--report" in args + issue_test = "--issue-test" in args + + # ์ค์ + ์ด๋ ฅ ๋ก๋ + config = load_schedule_config() + history = load_history() + alert_threshold = config.get("alert_rules", {}).get("consecutive_failures", 2) + + if report_only: + print_report(history) + return + + if issue_test: + # ํ ์คํธ ์ด์ ์์ฑ + test_failure = { + "workflow": "blog-run.yml", + "category": "content", + "fail_count": 2, + "last_run": {"run_id": 0, "run_number": 0, "conclusion": "failure", + "started_at": datetime.now(timezone.utc).isoformat(), + "html_url": f"https://github.com/{OWNER}/{REPO}/actions"}, + "runs": [{"run_id": 0, "run_number": 0, "conclusion": "failure", + "started_at": datetime.now(timezone.utc).isoformat(), + "html_url": f"https://github.com/{OWNER}/{REPO}/actions"}] * 2, + } + create_failure_issue(test_failure) + return + + # 1. ์คํ ์ด๋ ฅ ์์ง + logger.info(f"์ํฌํ๋ก์ฐ ์คํ ์ด๋ ฅ ์์ง ์์ (์ต๊ทผ {LOOKBACK_HOURS}์๊ฐ)") + new_runs = collect_all_runs(config) + logger.info(f"์์ง ์๋ฃ: {len(new_runs)}๊ฐ ์ํฌํ๋ก์ฐ") + + # 2. ์ฐ์ ์คํจ ๊ฐ์ง + failures = detect_consecutive_failures(new_runs, threshold=alert_threshold) + new_alerts = should_alert(failures, history) + + if failures: + logger.warning(f"์ฐ์ ์คํจ ๊ฐ์ง: {len(failures)}๊ฐ") + for f in failures: + logger.warning(f" - {f['workflow']} ({f['fail_count']}ํ)") + else: + logger.info("์ฐ์ ์คํจ ์์") + + # 3. ์ ์๋ฆผ ์ด์ ์์ฑ + for alert in new_alerts: + create_failure_issue(alert) + + # 4. ์ด๋ ฅ ์ ์ฅ + history = update_history(history, new_runs, new_alerts) + save_history(history) + + # 5. ๋ฆฌํฌํธ + print_report(history) + + # 6. ์คํจ ์ exit 1 (GitHub Actions์์ ๊ฐ์ง์ฉ) + if new_alerts: + logger.warning(f"{len(new_alerts)}๊ฐ ์ํฌํ๋ก์ฐ ์ ๊ท ์๋ฆผ ๋ฐ์ก") + sys.exit(0) # ์๋ฆผ์ ๋ณด๋์ง๋ง ๋ชจ๋ํฐ ์์ฒด๋ ์ฑ๊ณต + + +if __name__ == "__main__": + main() diff --git a/blog-automation/schema_generator.py b/blog-automation/schema_generator.py new file mode 100644 index 0000000000000..afba68732a844 --- /dev/null +++ b/blog-automation/schema_generator.py @@ -0,0 +1,307 @@ +""" +blog-automation/schema_generator.py +โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ +ํฌ์คํธ ์ ํ๋ณ Schema.org JSON-LD ์๋ ์์ฑ ๋ชจ๋. + +์ง์ Schema ํ์ : + - BlogPosting : ๋ชจ๋ ํฌ์คํธ (๊ธฐ๋ณธ) + - FAQPage : post_data["faq"] ํญ๋ชฉ์ด ์์ ๋ ์๋ ์ถ๊ฐ + - HowTo : ์ ๋ชฉ/ํค์๋์ '๋ฐฉ๋ฒยท๊ฐ์ด๋ยทํ๋๋ฒยท๋จ๊ณยท์ ์ฐจ' ํฌํจ ์ + - Review : ์ ๋ชฉ/ํค์๋์ 'ํ๊ธฐยท๋ฆฌ๋ทฐยท์์งยทํด๋ดค๋๋' ํฌํจ ์ + - BreadcrumbList: ํญ์ ์ถ๊ฐ (ํ > ์นดํ ๊ณ ๋ฆฌ > ํฌ์คํธ) + +์ฌ์ฉ๋ฒ: + from schema_generator import generate_all_schemas + html_ld = generate_all_schemas(post_data, blog_config) +""" + +import json +import os +import re +from datetime import datetime, timezone + +# โโ ๊ธฐ๋ณธ ์์ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ +_DEFAULT_BLOG_NAME = "์ค๋์ ํซ์ด์" +_DEFAULT_BLOG_URL = "https://hoguwhat1.blogspot.com" +_DEFAULT_LOGO_URL = f"{_DEFAULT_BLOG_URL}/favicon.ico" + +# โโ ์ ํ ๊ฐ์ง โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ +_HOWTO_KEYWORDS = [ + "๋ฐฉ๋ฒ", "๊ฐ์ด๋", "ํ๋ ๋ฒ", "ํ๋๋ฒ", "ํ๋ ๋ฐฉ๋ฒ", + "์ ์ฐจ", "๋จ๊ณ", "๋ฐ๋ผํ๊ธฐ", "step", "how to", +] +_REVIEW_KEYWORDS = [ + "ํ๊ธฐ", "๋ฆฌ๋ทฐ", "์์ง", "์ฌ์ฉํด๋ดค", "์จ๋ดค", "๋จน์ด๋ดค", + "๋ค๋ ์", "์์ฒญ", "๋ดค๋๋", "ํด๋ดค๋๋", "์จ๋ณด๋", + "์ฒดํ", "๊ฒฝํ", "์ฌ์ฉ๊ธฐ", "์ฌ์ฉ ํ๊ธฐ", +] + + +def _detect_types(post_data: dict) -> set[str]: + """์ ๋ชฉยทํค์๋ยทfaq ๋ฅผ ๋ถ์ํด ์ ์ฉํ Schema ์ ํ ์งํฉ ๋ฐํ.""" + title = (post_data.get("title") or "").lower() + keyword = (post_data.get("keyword") or "").lower() + faq = post_data.get("faq") or [] + text = f"{title} {keyword}" + + types: set[str] = {"BlogPosting", "BreadcrumbList"} + + # FAQPage ๊ตฌ์กฐํ ๋ฐ์ดํฐ ์๋ ์์ฑ ๋นํ์ฑํ โ ArticleยทBreadcrumb ์ค์ฌ + # (๋๋ ์์ฑํ ์ฝํ ์ธ ํจํด ๋ฐฉ์ง; FAQ_SCHEMA=true๋ก ์ฌํ์ฑํ ๊ฐ๋ฅ) + if faq and os.getenv("FAQ_SCHEMA", "false").strip().lower() in ("true", "1", "yes"): + types.add("FAQPage") + if any(k in text for k in _HOWTO_KEYWORDS): + types.add("HowTo") + if any(k in text for k in _REVIEW_KEYWORDS): + types.add("Review") + + return types + + +# โโ ๋ ์ง ํฌํผ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ +def _parse_date(post_data: dict) -> str: + """savedAt(YYYYMMDDHHmmss) ๋๋ publishedAt์์ ISO-8601 ๋ณํ.""" + saved = post_data.get("savedAt") or "" + if saved and len(saved) >= 14 and saved.isdigit(): + try: + dt = datetime( + int(saved[0:4]), int(saved[4:6]), int(saved[6:8]), + int(saved[8:10]), int(saved[10:12]), int(saved[12:14]), + tzinfo=timezone.utc, + ) + return dt.isoformat() + except ValueError: + pass + return datetime.now(timezone.utc).isoformat() + + +# โโ ๊ฐ๋ณ Schema ๋น๋ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ +def _blog_posting(post_data: dict, cfg: dict) -> dict: + """BlogPosting โ ๋ชจ๋ ํฌ์คํธ ๊ธฐ๋ณธ Schema.""" + blog_name = cfg.get("name") or _DEFAULT_BLOG_NAME + blog_url = cfg.get("blog_url") or _DEFAULT_BLOG_URL + logo_url = cfg.get("logo_url") or _DEFAULT_LOGO_URL + + title = post_data.get("title") or "" + description = ( + post_data.get("metaDescription") + or post_data.get("meta_description") + or title + ) + labels = post_data.get("labels") or [] + keyword = post_data.get("keyword") or "" + all_kw = list(dict.fromkeys(([keyword] if keyword else []) + labels)) + date_str = _parse_date(post_data) + post_url = post_data.get("blogUrl") or blog_url + + return { + "@context": "https://schema.org", + "@type": "BlogPosting", + "headline": title, + "description": description, + "keywords": ", ".join(all_kw[:10]), + "inLanguage": "ko-KR", + "url": post_url, + "datePublished": date_str, + "dateModified": date_str, + "author": { + "@type": "Organization", + "name": blog_name, + "url": blog_url, + }, + "publisher": { + "@type": "Organization", + "name": blog_name, + "url": blog_url, + "logo": { + "@type": "ImageObject", + "url": logo_url, + }, + }, + "isPartOf": { + "@type": "Blog", + "name": blog_name, + "url": blog_url, + }, + "mainEntityOfPage": { + "@type": "WebPage", + "@id": post_url, + }, + } + + +def _faq_page(faq: list[dict]) -> dict | None: + """FAQPage โ faq ํญ๋ชฉ์ด ์์ ๋.""" + entities = [ + { + "@type": "Question", + "name": item.get("question", ""), + "acceptedAnswer": { + "@type": "Answer", + "text": item.get("answer", ""), + }, + } + for item in faq + if item.get("question") and item.get("answer") + ] + if not entities: + return None + return { + "@context": "https://schema.org", + "@type": "FAQPage", + "mainEntity": entities, + } + + +def _howto(post_data: dict) -> dict | None: + """HowTo โ content ๋ด๐ ๊ด๋ จ ํฌ์คํธ
' + f'{cards}' + f'
- ์์ step ์๋ ์ถ์ถ.""" + content = post_data.get("content") or "" + title = post_data.get("title") or "" + desc = ( + post_data.get("metaDescription") + or post_data.get("meta_description") + or title + ) + + # ol ๋ธ๋ก ์ li ์ฐ์ ์ถ์ถ + ol_blocks = re.findall( + r'
]*>(.*?)
', content, + flags=re.DOTALL | re.IGNORECASE, + ) + raw_items = [] + for block in ol_blocks: + raw_items += re.findall(r'- ]*>(.*?)
', block, + flags=re.DOTALL | re.IGNORECASE) + + # ol์ด ์์ผ๋ฉด ul ์ ์ฒด์์ ์ถ์ถ + if not raw_items: + raw_items = re.findall( + r'- ]*>(.*?)
', content, + flags=re.DOTALL | re.IGNORECASE, + ) + + clean = [re.sub(r'<[^>]+>', '', li).strip() for li in raw_items] + steps = [s for s in clean if len(s) > 5][:10] + if len(steps) < 2: + return None + + return { + "@context": "https://schema.org", + "@type": "HowTo", + "name": title, + "description": desc, + "inLanguage": "ko-KR", + "step": [ + { + "@type": "HowToStep", + "position": idx + 1, + "name": step[:80], + "text": step[:300], + } + for idx, step in enumerate(steps) + ], + } + + +def _review(post_data: dict, cfg: dict) -> dict: + """Review โ ํ๊ธฐ/๋ฆฌ๋ทฐ ํฌ์คํธ.""" + blog_name = cfg.get("name") or _DEFAULT_BLOG_NAME + blog_url = cfg.get("blog_url") or _DEFAULT_BLOG_URL + title = post_data.get("title") or "" + keyword = post_data.get("keyword") or "" + + # ๋ฆฌ๋ทฐ ๋์ ์ถ์ถ (ํค์๋ ์ฐ์ , ์์ผ๋ฉด ์ ๋ชฉ์์ ํ๊ธฐ/๋ฆฌ๋ทฐ ์๋ถ๋ถ) + item_name = keyword or re.split(r"[,\s]*(?:ํ๊ธฐ|๋ฆฌ๋ทฐ|์์ง)", title)[0].strip() or title + + return { + "@context": "https://schema.org", + "@type": "Review", + "name": title, + "reviewBody": ( + post_data.get("metaDescription") + or post_data.get("meta_description") + or title + ), + "inLanguage": "ko-KR", + "author": { + "@type": "Organization", + "name": blog_name, + "url": blog_url, + }, + "itemReviewed": { + "@type": "Thing", + "name": item_name, + }, + } + + +def _breadcrumb(post_data: dict, cfg: dict) -> dict: + """BreadcrumbList โ ํ > ์นดํ ๊ณ ๋ฆฌ > ํฌ์คํธ.""" + blog_name = cfg.get("name") or _DEFAULT_BLOG_NAME + blog_url = cfg.get("blog_url") or _DEFAULT_BLOG_URL + title = post_data.get("title") or "" + post_url = post_data.get("blogUrl") or blog_url + + labels = post_data.get("labels") or [] + keyword = post_data.get("keyword") or "" + category = labels[0] if labels else (keyword or "๋ธ๋ก๊ทธ") + + from urllib.parse import quote as _q + cat_url = f"{blog_url}/search/label/{_q(category, safe='')}" + + return { + "@context": "https://schema.org", + "@type": "BreadcrumbList", + "itemListElement": [ + {"@type": "ListItem", "position": 1, "name": blog_name, "item": blog_url}, + {"@type": "ListItem", "position": 2, "name": category, "item": cat_url}, + {"@type": "ListItem", "position": 3, "name": title, "item": post_url}, + ], + } + + +# โโ ๊ณต๊ฐ API โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ +def generate_all_schemas(post_data: dict, blog_config: dict | None = None) -> str: + """ + ํฌ์คํธ์ ๋ง๋ Schema.org JSON-LD ์ ์ฒด๋ฅผ ์ฐ๊ฒฐ ๋ฌธ์์ด + """ + cfg = blog_config or {} + faq = post_data.get("faq") or [] + types = _detect_types(post_data) + schemas: list[dict] = [] + + # 1) BlogPosting โ ํญ์ + schemas.append(_blog_posting(post_data, cfg)) + + # 2) FAQPage โ faq๊ฐ ์์ ๋ + if "FAQPage" in types: + faq_schema = _faq_page(faq) + if faq_schema: + schemas.append(faq_schema) + + # 3) HowTo โ ๋ฐฉ๋ฒ/๊ฐ์ด๋ ํฌ์คํธ + if "HowTo" in types: + howto_schema = _howto(post_data) + if howto_schema: + schemas.append(howto_schema) + + # 4) Review โ ํ๊ธฐ/๋ฆฌ๋ทฐ ํฌ์คํธ + if "Review" in types: + schemas.append(_review(post_data, cfg)) + + # 5) BreadcrumbList โ ํญ์ + schemas.append(_breadcrumb(post_data, cfg)) + + return "\n".join( + f'' + for s in schemas + ) + "\n" diff --git a/blog-automation/scripts/test-analytics.js b/blog-automation/scripts/test-analytics.js new file mode 100644 index 0000000000000..4f91dd2e01aed --- /dev/null +++ b/blog-automation/scripts/test-analytics.js @@ -0,0 +1,39 @@ +#!/usr/bin/env node +/** + * AdSense ์์ต ์ถ์ ํ ์คํธ + * ์คํ: node scripts/test-analytics.js + */ +import 'dotenv/config' +import { estimateAdSenseEarnings, printEarningsReport } from '../src/utils/analytics.js' +import { logger } from '../src/utils/logger.js' + +const testPosts = [ + { + keyword: 'AI ์ฌํ ํฌ', + title: '์ฑGPT๋ก ์ 300๋ง์? 2026๋ AI๋ก ๋ ๋ฒ๋ 7๊ฐ์ง ํ์ค์ ์ธ ๋ฐฉ๋ฒ', + adsenseCategory: '๊ธฐ์ ', + trendDirection: 'rising', + naverAvgRatio: 90, + estimatedCPC: 1.5, + }, + { + keyword: 'ETF ํฌ์', + title: '2026๋ ETF ํฌ์ ์๋ฒฝ ๊ฐ์ด๋: ์ด๋ณด๋ ์ 50๋ง์ ์์ต ๋ด๋ ๋ฒ', + adsenseCategory: '๊ธ์ต', + trendDirection: 'stable', + naverAvgRatio: 65, + estimatedCPC: 2.5, + }, + { + keyword: '์ฌ๋ฆ ์ฌํ ์ผ๋ณธ', + title: '2026 ์ฌ๋ฆ ์ผ๋ณธ ์ฌํ ์๋ฒฝ ์ค๋น: ์ต์ ๊ฐ ํญ๊ณต+ํธํ ํจํค์ง ๋น๊ต', + adsenseCategory: '์ฌํ', + trendDirection: 'rising', + naverAvgRatio: 27, + estimatedCPC: 1.2, + }, +] + +logger.info('AdSense ์์ต ์ถ์ ํ ์คํธ') +const estimate = estimateAdSenseEarnings(testPosts) +printEarningsReport(estimate) diff --git a/blog-automation/scripts/test-content.js b/blog-automation/scripts/test-content.js new file mode 100644 index 0000000000000..304e98b91f816 --- /dev/null +++ b/blog-automation/scripts/test-content.js @@ -0,0 +1,46 @@ +#!/usr/bin/env node +/** + * ์ฝํ ์ธ ์์ฑ ํ ์คํธ ์คํฌ๋ฆฝํธ + * ์คํ: node scripts/test-content.js + */ +import 'dotenv/config' +import { generateBlogPost } from '../src/generators/blog-content.js' +import { generateSocialContent } from '../src/generators/social-content.js' +import { savePost, saveSocialContent } from '../src/utils/storage.js' +import { logger } from '../src/utils/logger.js' + +const testKeyword = { + keyword: process.argv[2] || '์ธ๊ณต์ง๋ฅ', + traffic: '100K+', + relatedQueries: ['AI ํ์ฉ', 'ChatGPT', '์์ฑํAI'], + newsContext: [ + { title: 'AI ๊ธฐ์ ๊ธ๊ฒฉํ ๋ฐ์ , ์ผ์ ์ ํ์ฉ ๋์ด' }, + { title: '์ธ๊ณต์ง๋ฅ์ผ๋ก ์ 100๋ง์ ๋ถ์์ ๋ง๋๋ ๋ฐฉ๋ฒ' }, + ], +} + +logger.info(`"${testKeyword.keyword}" ํค์๋๋ก ์ฝํ ์ธ ์์ฑ ํ ์คํธ ์ค...`) + +try { + const blogPost = await generateBlogPost(testKeyword) + logger.info(`\nโ ๋ธ๋ก๊ทธ ํฌ์คํธ ์์ฑ ์๋ฃ:`) + logger.info(` ์ ๋ชฉ: ${blogPost.title}`) + logger.info(` ๋ฉํ: ${blogPost.metaDescription}`) + logger.info(` ํ๊ทธ: ${blogPost.tags?.join(', ')}`) + logger.info(` ์ฝ๊ธฐ์๊ฐ: ${blogPost.readingTime}`) + + const postPath = savePost(blogPost) + logger.info(` ์ ์ฅ: ${postPath}`) + + const social = await generateSocialContent(blogPost, 'https://yourblog.blogspot.com/test-post') + logger.info(`\nโ SNS ์ฝํ ์ธ ์์ฑ ์๋ฃ:`) + logger.info(` Instagram ํํน: ${social.instagram?.hookLine}`) + logger.info(` Threads ๊ฐ์: ${social.threads?.posts?.length}๊ฐ`) + logger.info(` TikTok ์ฌ: ${social.tiktok?.scenes?.length}๊ฐ`) + + saveSocialContent(social, testKeyword.keyword) + logger.info('\nํ ์คํธ ์๋ฃ! output/ ํด๋๋ฅผ ํ์ธํ์ธ์.') +} catch (err) { + logger.error(`ํ ์คํธ ์คํจ: ${err.message}`) + process.exit(1) +} diff --git a/blog-automation/scripts/test-keywords.js b/blog-automation/scripts/test-keywords.js new file mode 100644 index 0000000000000..fc8cfa26918b4 --- /dev/null +++ b/blog-automation/scripts/test-keywords.js @@ -0,0 +1,27 @@ +#!/usr/bin/env node +/** + * ํค์๋ ์์ง ํ ์คํธ ์คํฌ๋ฆฝํธ + * ์คํ: node scripts/test-keywords.js + */ +import 'dotenv/config' +import { analyzeHotKeywords } from '../src/scrapers/keyword-analyzer.js' +import { logger } from '../src/utils/logger.js' + +logger.info('ํค์๋ ์์ง ํ ์คํธ ์์...') + +try { + const keywords = await analyzeHotKeywords() + logger.info(`\n์์ง๋ ํค์๋ ${keywords.length}๊ฐ:`) + keywords.forEach((k, i) => { + logger.info(` ${i + 1}. ${k.keyword} (์ ์: ${k.score}, ํธ๋ํฝ: ${k.traffic})`) + if (k.relatedQueries?.length) { + logger.info(` ์ฐ๊ด์ด: ${k.relatedQueries.slice(0, 3).join(', ')}`) + } + if (k.newsContext?.length) { + logger.info(` ๋ด์ค: ${k.newsContext[0]?.title?.slice(0, 60)}...`) + } + }) +} catch (err) { + logger.error(`ํ ์คํธ ์คํจ: ${err.message}`) + process.exit(1) +} diff --git a/blog-automation/scripts/test-thumbnail.js b/blog-automation/scripts/test-thumbnail.js new file mode 100644 index 0000000000000..b3cfbe7b46017 --- /dev/null +++ b/blog-automation/scripts/test-thumbnail.js @@ -0,0 +1,34 @@ +#!/usr/bin/env node +/** + * ์ธ๋ค์ผ ์์ฑ ํ ์คํธ ์คํฌ๋ฆฝํธ + * ์คํ: node scripts/test-thumbnail.js + */ +import 'dotenv/config' +import { generateThumbnail, generateVerticalThumbnail } from '../src/generators/thumbnail.js' +import { logger } from '../src/utils/logger.js' + +const testPost = { + title: process.argv[2] || '2026๋ ์ธ๊ณต์ง๋ฅ์ผ๋ก ์ 500๋ง์ ๋ฒ๋ 5๊ฐ์ง ๋ฐฉ๋ฒ', + keyword: '์ธ๊ณต์ง๋ฅ ๋ถ์ ', + date: new Date().toISOString().split('T')[0], + readingTime: '7๋ถ', + tags: ['์ธ๊ณต์ง๋ฅ', 'AI', '๋ถ์ ', '์ฌํ ํฌ'], +} + +logger.info('์ธ๋ค์ผ ์์ฑ ํ ์คํธ ์ค...') + +try { + const [horizontal, vertical] = await Promise.all([ + generateThumbnail(testPost), + generateVerticalThumbnail(testPost), + ]) + + logger.info(`\nโ ์ธ๋ค์ผ ์์ฑ ์๋ฃ:`) + logger.info(` ๊ฐ๋ก (1280x720): ${horizontal}`) + logger.info(` ์ธ๋ก (1080x1920): ${vertical}`) + logger.info('\n์ธ๋ค์ผ ํ์ผ์ ํ์ธํ์ธ์.') +} catch (err) { + logger.error(`์ธ๋ค์ผ ์์ฑ ์คํจ: ${err.message}`) + logger.info('\n์ฐธ๊ณ : canvas ํจํค์ง๊ฐ ์ค์น๋์ง ์์ ๊ฒฝ์ฐ "npm install" ์ ๋จผ์ ์คํํ์ธ์.') + process.exit(1) +} diff --git a/blog-automation/series_planner.py b/blog-automation/series_planner.py index 3d5b91ae20387..b0b163478adbc 100644 --- a/blog-automation/series_planner.py +++ b/blog-automation/series_planner.py @@ -5,25 +5,38 @@ import os import re import uuid -from datetime import datetime +from datetime import datetime, timedelta, date import anthropic -from config import ANTHROPIC_API_KEY, CLAUDE_MODEL, BLOG_LANGUAGE +from config import claude_text, ANTHROPIC_API_KEY, CLAUDE_MODEL, BLOG_LANGUAGE logger = logging.getLogger(__name__) SERIES_FILE = os.path.join(os.path.dirname(__file__), "logs", "series.json") _MAX_SERIES = 50 +# ๋ธ๋ก๊ทธ๋ณ ์ฃผ์ ๋งต (blogs.json topics์ ์ผ์น ์ ์ง) +_BLOG_TOPIC_MAP = { + "blog1": {"label": "๊ตญ๋ดยทํด์ธ์ฌํยท๋๋ผ๋งยท์ํยท์ฐ์ยทK-POP", "topics": ["๊ตญ๋ด์ฌํ", "ํด์ธ์ฌํ", "๋๋ผ๋ง", "์ํ", "์ฐ์", "K-POP"]}, + "blog2": {"label": "๊ตญ๋ด์ฌํยทํด์ธ์ฌํยท์คํฌ์ธ ยท์คํฌ์ธ ์ด์ยท๋๋ผ๋ง์ํยท์ฐ์Kํ", "topics": ["๊ตญ๋ด ์ฌํ", "ํด์ธ ์ฌํ", "์คํฌ์ธ ", "์คํฌ์ธ ์ด์", "๋๋ผ๋งยท์ํ", "์ฐ์ยทK-POP"]}, + "blog3": {"label": "๊ธ์ตยท์ฃผ์ยทETFยท๊ฒฝ์ ยท๋ถ๋์ฐยทํฌ์", "topics": ["๊ธ์ต", "์ฃผ์", "ETF", "๊ฒฝ์ ", "๋ถ๋์ฐ", "ํฌ์", "๊ธ๋ฆฌ", "ํ์จ"]}, +} + + +def _get_blog_id(blog_config) -> str: + return (blog_config or {}).get("id", "") + # โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ # I/O # โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ -def get_last_series_date() -> datetime | None: - """๊ฐ์ฅ ์ต๊ทผ์ ์์ฑ๋ ์๋ฆฌ์ฆ์ ๋ ์ง๋ฅผ ๋ฐํํฉ๋๋ค. ์๋ฆฌ์ฆ๊ฐ ์์ผ๋ฉด None.""" +def get_last_series_date(blog_id: str = "") -> datetime | None: + """๊ฐ์ฅ ์ต๊ทผ์ ์์ฑ๋ ์๋ฆฌ์ฆ์ ๋ ์ง๋ฅผ ๋ฐํํฉ๋๋ค (blog_id ์ง์ ์ ํด๋น ๋ธ๋ก๊ทธ๋ง). ์์ผ๋ฉด None.""" for s in load_series(): + if blog_id and s.get("blog_id") and s["blog_id"] != blog_id: + continue created = s.get("created_at") if created: try: @@ -33,13 +46,22 @@ def get_last_series_date() -> datetime | None: return None -def pick_series_keyword(keywords: list[str]) -> str | None: +def pick_series_keyword(keywords: list[str], blog_config: dict | None = None) -> str | None: """ - ํค์๋ ๋ชฉ๋ก ์ค ์๋ฆฌ์ฆ๋ก ํ์ฅํ๊ธฐ ๊ฐ์ฅ ์ ํฉํ ํค์๋ 1๊ฐ๋ฅผ Claude๊ฐ ์ ํํฉ๋๋ค. + ํค์๋ ๋ชฉ๋ก ์ค ๋ธ๋ก๊ทธ ์ฃผ์ ์ ๋ง๊ฒ ์๋ฆฌ์ฆ๋ก ํ์ฅํ๊ธฐ ๊ฐ์ฅ ์ ํฉํ ํค์๋ 1๊ฐ๋ฅผ Claude๊ฐ ์ ํํฉ๋๋ค. ๋ชจ๋ ํค์๋๊ฐ ์๋ฆฌ์ฆ ๋ถ์ ํฉ์ด๋ฉด None์ ๋ฐํํฉ๋๋ค. """ if not keywords: return None + + blog_id = _get_blog_id(blog_config) + topic_info = _BLOG_TOPIC_MAP.get(blog_id, {}) + topic_label = topic_info.get("label", "") + topic_filter = ( + f"\nโข ์ด ๋ธ๋ก๊ทธ ์ฃผ์ ({topic_label})์ ์ง์ ๊ด๋ จ๋ ํค์๋๋ฅผ ์ฐ์ ์ ํํ์ธ์." + if topic_label else "" + ) + try: client = anthropic.Anthropic(api_key=ANTHROPIC_API_KEY) kw_list = "\n".join(f"{i + 1}. {kw}" for i, kw in enumerate(keywords)) @@ -49,16 +71,16 @@ def pick_series_keyword(keywords: list[str]) -> str | None: "โข ํ ์ฃผ์ ์์ ์๋ก ๋ค๋ฅธ ํ์ ๊ฐ๋ 3๊ฐ ์ด์์ด ๋์ฌ ์ ์๋ ๊ฒ\n" "โข ๋ ์๊ฐ ์ฌ๋ฌ ํธ์ ์ด์ด ์ฝ์ ๋งํผ ๊น์ด์ ๋ฒ์๊ฐ ์๋ ๊ฒ\n" "โข ์ฆ๊ฐ์ ์ธ ์๋ณด๊ฐ ์๋ ์ง์ ๊ฒ์ ์์๊ฐ ์๋ ๊ฒ\n" - "โข ๋ชจ๋ ํค์๋๊ฐ ์๋ฆฌ์ฆ๋ก ํ์ฅํ๊ธฐ ์ด๋ ค์ฐ๋ฉด 'none' ๋ฐํ\n\n" + f"โข ๋ชจ๋ ํค์๋๊ฐ ์๋ฆฌ์ฆ๋ก ํ์ฅํ๊ธฐ ์ด๋ ค์ฐ๋ฉด 'none' ๋ฐํ{topic_filter}\n\n" f"ํค์๋ ๋ชฉ๋ก:\n{kw_list}\n\n" "๋ฒํธ๋ง ์๋ต (์: 2) ๋๋ none:" ) msg = client.messages.create( model=CLAUDE_MODEL, - max_tokens=10, + max_tokens=1000, messages=[{"role": "user", "content": prompt}], ) - ans = msg.content[0].text.strip().lower() + ans = claude_text(msg).strip().lower() if "none" in ans: logger.info("์๋ฆฌ์ฆ ์ ํฉ ํค์๋ ์์ โ ๋จ๋ ํฌ์คํธ๋ก ์งํ") return None @@ -82,6 +104,14 @@ def load_series() -> list: return [] +def save_series_with_blog(series_plan: dict, blog_config: dict | None = None) -> None: + """blog_id๋ฅผ ํ๊น ํ๊ณ ์ ์ฅํฉ๋๋ค.""" + blog_id = _get_blog_id(blog_config) + if blog_id and not series_plan.get("blog_id"): + series_plan["blog_id"] = blog_id + save_series(series_plan) + + def save_series(series_plan: dict) -> None: """์๋ฆฌ์ฆ ๊ธฐํ ์ ์ฅ (series_id ๊ธฐ์ค upsert)""" os.makedirs(os.path.dirname(SERIES_FILE), exist_ok=True) @@ -98,22 +128,56 @@ def save_series(series_plan: dict) -> None: # โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ -# ๊ธฐํ +# ๊ธฐํ โ ๊ณตํต ํฌํผ # โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ -def plan_series(keyword: str, count: int = 4) -> dict | None: - """Claude AI๋ก ์๋ฆฌ์ฆ ๊ธฐํ์์ ์์ฑํฉ๋๋ค.""" - count = max(2, min(count, 5)) - try: - client = anthropic.Anthropic(api_key=ANTHROPIC_API_KEY) - now = datetime.now() - y = now.year - date_str = now.strftime("%Y๋ %m์ %d์ผ") if BLOG_LANGUAGE == "ko" else now.strftime("%B %d, %Y") +def _finalize_plan(plan: dict, keyword: str, blog_config: dict | None = None) -> dict: + """series_idยทblog_idยท๋ฉํ ํ๋๋ฅผ ์ฑ์๋๋ค.""" + plan["series_id"] = str(uuid.uuid4())[:8] + plan["keyword"] = keyword + plan["total_episodes"] = len(plan.get("episodes", [])) + plan["created_at"] = datetime.now().isoformat() + plan["status"] = "planned" + blog_id = _get_blog_id(blog_config) + if blog_id: + plan["blog_id"] = blog_id + plan["blog_name"] = (blog_config or {}).get("name", "") + for ep in plan.get("episodes", []): + ep.setdefault("status", "pending") + ep.setdefault("post_id", None) + ep.setdefault("blogger_url", None) + return plan + + +def _call_claude_plan(prompt: str, system: str) -> dict | None: + """Claude์ ๊ธฐํ ํ๋กฌํํธ๋ฅผ ๋ณด๋ด๊ณ JSON์ ํ์ฑํฉ๋๋ค.""" + client = anthropic.Anthropic(api_key=ANTHROPIC_API_KEY) + msg = client.messages.create( + model=CLAUDE_MODEL, + max_tokens=2000, + system=system, + messages=[{"role": "user", "content": prompt}], + ) + raw = claude_text(msg).strip() + s, e = raw.find("{"), raw.rfind("}") + if s == -1 or e <= s: + raise ValueError(f"JSON ํ์ฑ ์คํจ: {raw[:300]}") + return json.loads(raw[s:e + 1]) - if BLOG_LANGUAGE == "ko": - prompt = f"""์ค๋: {date_str} + +# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ +# ๊ธฐํ โ blog1 (์ฌํยท๋๋ผ๋งยท์ฐ์ยทK-POP) +# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ + +def _plan_blog1_series(keyword: str, count: int, blog_config: dict | None = None) -> dict | None: + """blog1์ฉ ์๋ฆฌ์ฆ ๊ธฐํ โ ์ฌํยท๋๋ผ๋งยท์ฐ์ยทK-POP ์ฃผ์ , ๊ฐ์ธ ๊ฒฝํ ๊ณต์ ์คํ์ผ.""" + now = datetime.now() + y = now.year + date_str = now.strftime("%Y๋ %m์ %d์ผ") + prompt = f"""์ค๋: {date_str} ์ฃผ์ ํค์๋: {keyword} ์๋ฆฌ์ฆ ํธ์: {count}ํธ +๋ธ๋ก๊ทธ ์ฃผ์ : ์ฌํ, ๋๋ผ๋ง, ์ํ, ์ฐ์, K-POP ์ด ์ฃผ์ ๋ก {count}ํธ์ง๋ฆฌ ๋ธ๋ก๊ทธ ์๋ฆฌ์ฆ๋ฅผ ๊ธฐํํ์ธ์. ๊ธ์ฐ๊ธฐ ๋ฐฉํฅ: ์ ๋ณด ๋์ด์ด ์๋ '์ง์ ๊ฒฝํํ๊ณ ๊ณต๋ถํ ์ฌ๋์ ์ธ์ฌ์ดํธ ๊ณต์ ' ์คํ์ผ. @@ -123,8 +187,8 @@ def plan_series(keyword: str, count: int = 4) -> dict | None: - ํธ 2~{count - 1}: ์ค์ ๊ฒฝํ ๊ธฐ๋ฐ ์ฌํ (๊ฐ์ ๋ ๋ฆฝ์ ์ฃผ์ , ๋จ๋ค์ด ์ ๋ค๋ฃจ๋ ๊ตฌ์ฒด์ ๊ฐ๋) - ํธ {count}: ์ง๊ธ๊น์ง ๋ฐฐ์ด ๊ฒ๋ค์ ์์งํ ์ดํ + ์ค์ ์ก์ ํ๋ - ๊ฐ ํธ: ๋ ๋ฆฝ์ ์ผ๋ก ์ฝ์ด๋ ์๊ฒฐ๋๋ ๊ธ, "์ด ๊ฐ๋๋ ๋ค๋ฅธ ๊ณณ์์ ๋ชป ๋ดค๋ค"๋ ๋๋ -- ์ ๋ชฉ: ๊ฒฝํยท์์งํจยท๊ตฌ์ฒด์ฑ ๊ฐ์กฐ (์: "์ง์ ํด๋ดค๋๋", "์ด๊ฒ๋ง์ ์ง์ง ์ฃผ์", "{y}๋ ํ์ฌ ๊ธฐ์ค") -- ์ ๋ชฉ 40์ ์ด๋ด +- ์ ๋ชฉ: ๊ฒฝํยท์์งํจยท๊ตฌ์ฒด์ฑ ๊ฐ์กฐ (์: "์ง์ ๊ฐ๋ดค๋๋", "์ด๊ฒ๋ง์ ์ง์ง ์ฃผ์", "{y}๋ ํ์ฌ ๊ธฐ์ค") +- ์ ๋ชฉ: ๊ฐ๊ฒฐ + ์ํฉํธ โ 28์ ์ด๋ด, ํต์ฌ ํค์๋ ์ ๋ฐฐ์น, ๊ตฐ๋๋๊ธฐ ์ ๊ฑฐ JSON๋ง ์๋ต (๋งํฌ๋ค์ด ์์ด): {{ @@ -134,78 +198,126 @@ def plan_series(keyword: str, count: int = 4) -> dict | None: "episodes": [ {{ "episode": 1, - "title": "[1ํธ] ... (40์ ์ด๋ด, ๊ฒฝํ/์์งํจ ๊ฐ์กฐ)", + "title": "[1ํธ] ... (28์ ์ด๋ด ๊ฐ๊ฒฐยท์ํฉํธ, ๊ฒฝํ/์์งํจ ๊ฐ์กฐ)", "focus": "์ด ํธ์ ํต์ฌ โ ์ด๋ค ๊ฒฝํ/์ธ์ฌ์ดํธ๋ฅผ ๊ณต์ ํ๋์ง (30์ ์ด๋ด)", - "search_keyword": "์ด ํธ์ ๋ํ ๊ฒ์ ํค์๋ (๋์นํ๊ณ ๊ตฌ์ฒด์ ์ผ๋ก)" + "search_keyword": "์ด ํธ์ ๋ํ ๊ฒ์ ํค์๋ (๊ตฌ์ฒด์ ์ผ๋ก)" }} ] }}""" - else: - prompt = f"""Today: {date_str} -Topic: {keyword} Episodes: {count} + try: + plan = _call_claude_plan(prompt, f"ํ์ฌ ๋ ์ง: {date_str}. JSON๋ง ์๋ตํ์ธ์.") + plan = _finalize_plan(plan, keyword, blog_config) + logger.info(f"[blog1] ์๋ฆฌ์ฆ ๊ธฐํ ์๋ฃ: '{plan.get('series_title')}' {plan['total_episodes']}ํธ") + return plan + except Exception as exc: + logger.error(f"[blog1] ์๋ฆฌ์ฆ ๊ธฐํ ์ค๋ฅ: {exc}", exc_info=True) + return None + + +# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ +# ๊ธฐํ โ blog3 (๊ธ์ตยท๊ฒฝ์ ยท์ ๋ถ์ง์) +# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ -Plan a {count}-part blog series with an E-E-A-T focus. -Writing angle: "Sharing personal experience and honest insights" NOT generic information dumps. +def plan_finance_series(keyword: str, count: int = 4, blog_config: dict | None = None) -> dict | None: + """blog3์ฉ ์๋ฆฌ์ฆ ๊ธฐํ โ ๊ธ์ตยท์ ๋ถ์ง์ ์ฃผ์ , ๊ณต์ ๋ ฅ ์๋ ์ ๋ณด + ๊ฐ์ธ ๊ฒฝํ ์คํ์ผ.""" + count = max(2, min(count, 5)) + now = datetime.now() + y = now.year + date_str = now.strftime("%Y๋ %m์ %d์ผ") + prompt = f"""์ค๋: {date_str} +์ฃผ์ ํค์๋: {keyword} +์๋ฆฌ์ฆ ํธ์: {count}ํธ +๋ธ๋ก๊ทธ ์ฃผ์ : ๊ธ์ต๋ด์ค, ์ํยท๋์ถ, ์ ๋ถ์ง์์์ฑ , ์ธ๊ธยท์ ์ธ, ๊ฒฝ์ ์ ์ฑ -Series structure: -- Part 1: "Why I got into this" โ relatable intro for beginners (personal story, first mistake) -- Parts 2-{count-1}: Experience-based deep dives (each independent, angles others don't cover) -- Part {count}: Honest assessment of everything learned + real action plan -- Each part: standalone value, angles that feel fresh and personal -- Titles: emphasize experience/honesty/specificity (e.g., "what I discovered", "the part no one mentions") -- Titles under 65 chars +์ด ๊ธ์ต/์ ๋ถ์ง์ ์ฃผ์ ๋ก {count}ํธ์ง๋ฆฌ ๋ธ๋ก๊ทธ ์๋ฆฌ์ฆ๋ฅผ ๊ธฐํํ์ธ์. +๊ธ์ฐ๊ธฐ ๋ฐฉํฅ: '์ง์ ์์๋ณด๊ณ ์ ์ฒญ/๊ฒฝํํ ์ง์ฅ์ธยท๊ฐ์ธ ํฌ์์ ์์ ์ ์ค์ฉ ์ ๋ณด ๊ณต์ ' ์คํ์ผ. +๊ณต์ ๋ ฅ ์๋ ์ถ์ฒ(๊ธฐํ์ฌ์ ๋ถยท๊ธ์ต์์ํยท๊ตญ์ธ์ฒญยท๊ธ์ต๊ฐ๋ ์ ๋ฑ) ๊ธฐ๋ฐ. ํฌ์ ๊ถ์ ์ ๋ ๊ธ์ง. -JSON only: +์๋ฆฌ์ฆ ๊ตฌ์กฐ ์์น: +- ํธ 1: "์ ์ด๊ฑธ ์์๋ณด๊ธฐ ์์ํ๋" โ ์ค์ํ ๊ณต๊ฐ ๊ณ๊ธฐ (์ธ๊ธ ๊ณ ์ง์, ๋์ถ ๊ฑฐ์ , ์ ์ฒญ ๊ธฐํ ๋์นจ ๋ฑ) +- ํธ 2~{count - 1}: ํต์ฌ ์ ๋ณด ์ฌํ โ ์ ์ฒญ ๋ฐฉ๋ฒ, ์๊ฒฉ ์กฐ๊ฑด, ๋์น๊ธฐ ์ฌ์ด ์กฐํญ, ์ค์ ๊ณ์ฐ ์์ +- ํธ {count}: ์ง์ ์ ์ฒญยท๊ฒฝํํ ํ๊ธฐ + ์ฃผ์์ฌํญ ์ด์ ๋ฆฌ + ์ถ์ฒ ๋์ ๋ช ํํ +- ์ ๋ชฉ: ์ค์ฉ์ฑยท๊ตฌ์ฒด์ฑ ๊ฐ์กฐ (์: "์ง์ ์ ์ฒญํด๋ดค๋๋", "์๊ฒฉ ์กฐ๊ฑด ์ด์ ๋ฆฌ", "{y}๋ ์ต์ ๊ธฐ์ค") +- ์ ๋ชฉ: ๊ฐ๊ฒฐ + ์ํฉํธ โ 28์ ์ด๋ด, ํต์ฌ ํค์๋ ์ ๋ฐฐ์น, ๊ตฐ๋๋๊ธฐ ์ ๊ฑฐ +- โป ํฌ์ ์กฐ์ธยท์์ต ๋ณด์ฅ ํํ ์ฌ์ฉ ๊ธ์ง + +JSON๋ง ์๋ต (๋งํฌ๋ค์ด ์์ด): {{ - "series_title": "Full series title (experience-based, e.g., 'My Honest {keyword} Journey')", - "series_label": "blogger-label-no-spaces", - "series_description": "What experience/perspective this series is based on, under 150 chars", + "series_title": "์๋ฆฌ์ฆ ์ ์ฒด ์ ๋ชฉ (๊ธ์ต ์ค์ฉ ๊ธฐ๋ฐ, ์: {keyword} ์ง์ ์์๋ณธ ์์ ์ ๋ฆฌ ์๋ฆฌ์ฆ)", + "series_label": "Blogger ๋ผ๋ฒจ ํ๊ทธ (๊ณต๋ฐฑ ์์, ํ์ดํ ์ฌ์ฉ, ๊ธ์ต ๊ด๋ จ)", + "series_description": "์ด๋ค ๊ธ์ต/์ ์ฑ ๊ฒฝํ์ ๊ธฐ๋ฐ์ผ๋ก ์ฐ๋ ์๋ฆฌ์ฆ์ธ์ง (100์ ์ด๋ด)", + "series_type": "finance_news", "episodes": [ {{ "episode": 1, - "title": "[Part 1] ... (under 65 chars, honest/experience angle)", - "focus": "What specific experience/insight this episode shares (concise)", - "search_keyword": "niche specific search keyword for this episode" + "title": "[1ํธ] ... (28์ ์ด๋ด ๊ฐ๊ฒฐยท์ํฉํธ, ์ค์ฉ/๊ฒฝํ ๊ฐ์กฐ)", + "focus": "์ด ํธ์ ํต์ฌ ๊ธ์ต ์ ๋ณด/๊ฒฝํ (30์ ์ด๋ด)", + "search_keyword": "์ด ํธ์ ๋ํ ๊ธ์ต ๊ฒ์ ํค์๋ (๊ตฌ์ฒด์ ์ ๋ยท์ํ๋ช ํฌํจ)" }} ] }}""" + try: + plan = _call_claude_plan(prompt, f"ํ์ฌ ๋ ์ง: {date_str}. JSON๋ง ์๋ตํ์ธ์.") + plan = _finalize_plan(plan, keyword, blog_config) + logger.info(f"[blog3 ๊ธ์ต] ์๋ฆฌ์ฆ ๊ธฐํ ์๋ฃ: '{plan.get('series_title')}' {plan['total_episodes']}ํธ") + return plan + except Exception as exc: + logger.error(f"[blog3 ๊ธ์ต] ์๋ฆฌ์ฆ ๊ธฐํ ์ค๋ฅ: {exc}", exc_info=True) + return None - msg = client.messages.create( - model=CLAUDE_MODEL, - max_tokens=2000, - system=( - f"ํ์ฌ ๋ ์ง: {date_str}. JSON๋ง ์๋ตํ์ธ์." - if BLOG_LANGUAGE == "ko" - else f"Current date: {date_str}. JSON only." - ), - messages=[{"role": "user", "content": prompt}], - ) - raw = msg.content[0].text.strip() - s, e = raw.find("{"), raw.rfind("}") - if s == -1 or e <= s: - logger.error(f"์๋ฆฌ์ฆ ๊ธฐํ JSON ํ์ฑ ์คํจ: {raw[:300]}") - return None - plan = json.loads(raw[s:e + 1]) - plan["series_id"] = str(uuid.uuid4())[:8] - plan["keyword"] = keyword - plan["total_episodes"] = len(plan.get("episodes", [])) - plan["created_at"] = datetime.now().isoformat() - plan["status"] = "planned" +# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ +# ๊ธฐํ โ ์ผ๋ฐ (๋ธ๋ก๊ทธ ๋ฏธ์ง์ ๋๋ ์๋ฌธ) +# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ - for ep in plan.get("episodes", []): - ep.setdefault("status", "pending") - ep.setdefault("post_id", None) - ep.setdefault("blogger_url", None) +def _plan_general_series(keyword: str, count: int, blog_config: dict | None = None) -> dict | None: + """์ผ๋ฐ ์๋ฆฌ์ฆ ๊ธฐํ (blog_id ๋ฏธ์ง์ ๋๋ ์๋ฌธ ๋ธ๋ก๊ทธ).""" + now = datetime.now() + y = now.year + date_str = now.strftime("%Y๋ %m์ %d์ผ") if BLOG_LANGUAGE == "ko" else now.strftime("%B %d, %Y") + if BLOG_LANGUAGE == "ko": + prompt = f"""์ค๋: {date_str} / ํค์๋: {keyword} / ํธ์: {count} +{count}ํธ ๋ธ๋ก๊ทธ ์๋ฆฌ์ฆ ๊ธฐํ (๊ฒฝํ ๊ธฐ๋ฐ ์ธ์ฌ์ดํธ ๊ณต์ ์คํ์ผ). +ํธ 1: ์ ๋ฌธ ๊ณ๊ธฐยท์ฒซ ๊ฒฝํ / ํธ 2~{count-1}: ์ค์ ์ฌํ / ํธ {count}: ์ดํ+์ก์ ํ๋ +์ ๋ชฉ: ๊ฐ๊ฒฐ + ์ํฉํธ โ 28์ ์ด๋ด, ํต์ฌ ํค์๋ ์ ๋ฐฐ์น. + +JSON๋ง ์๋ต: +{{"series_title":"","series_label":"","series_description":"","episodes":[{{"episode":1,"title":"","focus":"","search_keyword":""}}]}}""" + else: + prompt = f"""Today: {date_str} / Topic: {keyword} / Parts: {count} +Plan a {count}-part series (personal experience angle). Part 1: entry story / Middle: deep dives / Last: honest verdict. +Titles under 65 chars. JSON only: +{{"series_title":"","series_label":"","series_description":"","episodes":[{{"episode":1,"title":"","focus":"","search_keyword":""}}]}}""" + try: + system = f"ํ์ฌ ๋ ์ง: {date_str}. JSON๋ง ์๋ต." if BLOG_LANGUAGE == "ko" else f"Date: {date_str}. JSON only." + plan = _call_claude_plan(prompt, system) + plan = _finalize_plan(plan, keyword, blog_config) logger.info(f"์๋ฆฌ์ฆ ๊ธฐํ ์๋ฃ: '{plan.get('series_title')}' {plan['total_episodes']}ํธ") return plan - except Exception as exc: logger.error(f"์๋ฆฌ์ฆ ๊ธฐํ ์ค๋ฅ: {exc}", exc_info=True) return None +# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ +# ๊ธฐํ โ ๋ผ์ฐํฐ (๊ณต๊ฐ ์ธํฐํ์ด์ค) +# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ + +def plan_series(keyword: str, count: int = 4, blog_config: dict | None = None) -> dict | None: + """๋ธ๋ก๊ทธ ์ฃผ์ ์ ๋ง๋ ์๋ฆฌ์ฆ ๊ธฐํ์์ ์์ฑํฉ๋๋ค.""" + count = max(2, min(count, 5)) + blog_id = _get_blog_id(blog_config) + if blog_id == "blog2": + # blog2 = ์ฌํยท์คํฌ์ธ ยท์ฐ์ยท๋๋ผ๋ง โ blog1๊ณผ ๊ฐ์ ๊ฒฝํ ๊ณต์ ํ ๊ธฐํ ์ฌ์ฉ + return _plan_blog1_series(keyword, count, blog_config) + if blog_id == "blog3": + return plan_finance_series(keyword, count, blog_config) + if blog_id == "blog1": + return _plan_blog1_series(keyword, count, blog_config) + return _plan_general_series(keyword, count, blog_config) + + # โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ # ๋๋ผ๋ง ๋ฆฌ๋ทฐ ์๋ฆฌ์ฆ ๊ธฐํ # โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ @@ -242,7 +354,7 @@ def plan_drama_series(drama_name: str, count: int = 4) -> dict | None: - ํธ {count}: ๊ฒฐ๋ง ์ข ํฉ ์ดํ (์คํฌ ์ฃผ์ ๊ฒฝ๊ณ ํฌํจ) + OST ์ถ์ฒ + ์ ์ฌ ๋๋ผ๋ง ์ถ์ฒ + ์ต์ข ๋ณ์ - ๊ฐ ํธ์ ๋ ๋ฆฝ์ ์ผ๋ก ์ฝ์ด๋ ๊ฐ์น ์์ด์ผ ํจ - ์ ๋ชฉ: ๊ฒ์ ์๋ ๋ช ํํ๊ฒ (์: "{drama_name} 1ํ ์ฒซ์ธ์ ์์ง ๋ฆฌ๋ทฐ", "{drama_name} ๋ฑ์ฅ์ธ๋ฌผ ๋ถ์") -- ์ ๋ชฉ 40์ ์ด๋ด, {y}๋ ํฌํจ +- ์ ๋ชฉ: ๊ฐ๊ฒฐ + ์ํฉํธ โ 28์ ์ด๋ด, ํต์ฌ ํค์๋ ์ ๋ฐฐ์น ({y}๋ ์ ํ์ ์๋ง) JSON๋ง ์๋ต: {{ @@ -254,7 +366,7 @@ def plan_drama_series(drama_name: str, count: int = 4) -> dict | None: "episodes": [ {{ "episode": 1, - "title": "[1ํธ] ... (40์ ์ด๋ด, {y} ํฌํจ)", + "title": "[1ํธ] ... (28์ ์ด๋ด ๊ฐ๊ฒฐยท์ํฉํธ)", "focus": "์ด ํธ์ ํต์ฌ ํฌ์ปค์ค (30์ ์ด๋ด)", "search_keyword": "์ด ํธ์ ๋ํ ๊ฒ์ ํค์๋ (๋๋ผ๋ง๋ช + ์ธ๋ถ ์ฃผ์ )" }} @@ -267,7 +379,7 @@ def plan_drama_series(drama_name: str, count: int = 4) -> dict | None: system=f"ํ์ฌ ๋ ์ง: {date_str}. JSON๋ง ์๋ตํ์ธ์.", messages=[{"role": "user", "content": prompt}], ) - raw = msg.content[0].text.strip() + raw = claude_text(msg).strip() s, e = raw.find("{"), raw.rfind("}") if s == -1 or e <= s: logger.error(f"๋๋ผ๋ง ์๋ฆฌ์ฆ ๊ธฐํ JSON ํ์ฑ ์คํจ: {raw[:300]}") @@ -294,11 +406,223 @@ def plan_drama_series(drama_name: str, count: int = 4) -> dict | None: return None +def fetch_drama_broadcast_info(drama_name: str) -> dict | None: + """๋ฐฉ์ก์ฌยท๋ทํ๋ฆญ์ค ๋ฑ ๊ณต๊ฐ ์ ๋ณด๋ฅผ ๊ฒ์ํด ๋๋ผ๋ง ๋ฐฉ์ ์ ๋ณด๋ฅผ ํ์ธํฉ๋๋ค. + + ๋ค์ด๋ฒ ๋ด์คยท์น ๊ฒ์ ์ค๋ํซ์ ์์งํ ๋ค Claude๋ก ๊ตฌ์กฐํ ์ถ์ถ: + {"total_episodes": ์ด ๋ถ์ ์|null, "air_schedule": "ํ ยท์ผ 21:50" ๋ฑ, + "latest_aired_episode": ํ์ฌ๊น์ง ๋ฐฉ์๋ ํ์ฐจ|null, + "first_air_date": "YYYY-MM-DD"|null, "platform": "SBS/๋ทํ๋ฆญ์ค ๋ฑ", + "confidence": "high"|"low"} + ๊ฒ์ยท์ถ์ถ ์คํจ ์ None (ํธ์ถ๋ถ์์ ์๋ฃ ๊ฒ์ดํธ๋ก 2์ฐจ ๋ฐฉ์ด). + """ + import os as _os + import requests as _rq + + cid = _os.getenv("NAVER_CLIENT_ID", "") + csec = _os.getenv("NAVER_CLIENT_SECRET", "") + if not cid or not csec: + logger.warning("NAVER API ํค ์์ โ ๋ฐฉ์ ์ ๋ณด ์กฐํ ๊ฑด๋๋") + return None + + snippets = [] + headers = {"X-Naver-Client-Id": cid, "X-Naver-Client-Secret": csec} + for endpoint, query in [ + ("news", f"{drama_name} ๋ช๋ถ์ ๋ฐฉ์"), + ("news", f"{drama_name} ์ต์ ํ์ฐจ ์์ฒญ๋ฅ "), + ("webkr", f"{drama_name} ํธ์ฑ ๋ฐฉ์์๊ฐ ๋ถ์"), + ]: + try: + r = _rq.get( + f"https://openapi.naver.com/v1/search/{endpoint}.json", + params={"query": query, "display": 5, "sort": "date" if endpoint == "news" else "sim"}, + headers=headers, timeout=8, + ) + if r.status_code == 200: + for item in r.json().get("items", []): + t = re.sub(r"<[^>]+>", "", item.get("title", "")) + d = re.sub(r"<[^>]+>", "", item.get("description", "")) + date = item.get("pubDate", "")[:16] + snippets.append(f"[{date}] {t} โ {d}") + except Exception as e: + logger.debug(f"๋ฐฉ์ ์ ๋ณด ๊ฒ์ ์คํจ({endpoint}): {e}") + + if not snippets: + logger.warning(f"'{drama_name}' ๋ฐฉ์ ์ ๋ณด ๊ฒ์ ๊ฒฐ๊ณผ ์์") + return None + + try: + from config import claude_generate + client = anthropic.Anthropic(api_key=ANTHROPIC_API_KEY) + today = datetime.now().strftime("%Y๋ %m์ %d์ผ (%A)") + raw = claude_generate( + client, model=CLAUDE_MODEL, max_tokens=1500, + system=( + f"ํ์ฌ ๋ ์ง: {today}. ๋น์ ์ ๋๋ผ๋ง ํธ์ฑ ์ ๋ณด ๋ถ์๊ฐ์ ๋๋ค. " + "๊ฒ์ ์ค๋ํซ์์ ํ์ธ๋๋ ์ฌ์ค๋ง ์ฌ์ฉํ๊ณ , ํ์ธ ์ ๋๋ ๊ฐ์ null๋ก ๋์ธ์. " + "latest_aired_episode๋ ์ค๋ํซ์ ๊ธฐ์ฌ ๋ ์ง์ ํ์ฐจ ์ธ๊ธ, ๋ฐฉ์ ์์ผ๋ก " + "'ํ์ฌ ๋ ์ง ๊ธฐ์ค ์ด๋ฏธ ๋ฐฉ์๋ ํ์ฐจ'๋ฅผ ํ๋จํ์ธ์. JSON๋ง ์๋ต." + ), + messages=[{"role": "user", "content": ( + f"๋๋ผ๋ง: {drama_name}\n\n๊ฒ์ ๊ฒฐ๊ณผ:\n" + "\n".join(snippets[:15]) + + '\n\nJSON: {"total_episodes": n|null, "air_schedule": "์์ผยท์๊ฐ"|null, ' + '"latest_aired_episode": n|null, "first_air_date": "YYYY-MM-DD"|null, ' + '"platform": "๋ฐฉ์ก์ฌ/ํ๋ซํผ"|null, "confidence": "high|low"}' + )}], + ).strip() + m = re.search(r"\{.*\}", raw, re.DOTALL) + if not m: + return None + info = json.loads(m.group(0)) + logger.info( + f"๐ก '{drama_name}' ๋ฐฉ์ ์ ๋ณด: {info.get('platform') or '?'} | " + f"์ด {info.get('total_episodes') or '?'}๋ถ์ | {info.get('air_schedule') or 'ํธ์ฑ ๋ฏธํ์ธ'} | " + f"ํ์ฌ {info.get('latest_aired_episode') or '?'}ํ๊น์ง ๋ฐฉ์ (์ ๋ขฐ๋ {info.get('confidence','low')})" + ) + return info + except Exception as e: + logger.warning(f"๋ฐฉ์ ์ ๋ณด ์ถ์ถ ์คํจ: {e}") + return None + + +_KO_WEEKDAYS = {"์": 0, "ํ": 1, "์": 2, "๋ชฉ": 3, "๊ธ": 4, "ํ ": 5, "์ผ": 6} + + +def _estimate_air_dates(broadcast_info: dict | None, start_ep: int, end_ep: int) -> dict[int, date]: + """๋ฏธ๋ฐฉ์ ํ์ฐจ์ ๋ฐฉ์์ผ์ ํธ์ฑ ์์ผ ๊ธฐ์ค์ผ๋ก ์ถ์ ํฉ๋๋ค. + + latest_aired_episode ๋ค์ ํ์ฐจ๋ถํฐ ๋ด์ผ ์ดํ์ ํธ์ฑ ์์ผ์ ์์๋๋ก ๋ฐฐ์ . + ํธ์ฑ ์์ผ์ ๋ชจ๋ฅด๋ฉด ๋น dict (์์ฝ์ผ ์์ด '๋ฐฉ์ ํ์ธ ์' ์ฒ๋ฆฌ). + """ + from datetime import date as _date + + if not broadcast_info: + return {} + latest = broadcast_info.get("latest_aired_episode") + schedule = broadcast_info.get("air_schedule") or "" + if not isinstance(latest, int) or latest <= 0: + return {} + air_days = sorted({_KO_WEEKDAYS[ch] for ch in schedule if ch in _KO_WEEKDAYS}) + if not air_days: + return {} + + result: dict[int, _date] = {} + ep = latest + 1 + d = _date.today() + timedelta(days=1) + # ์ต๋ 120์ผ๊น์ง ํ์ (์ฃผ 1~2ํ ํธ์ฑ ร 8ํ์ฐจ ์ปค๋ฒ) + for _ in range(120): + if ep > end_ep: + break + if d.weekday() in air_days: + if ep >= start_ep: + result[ep] = d + ep += 1 + d += timedelta(days=1) + return result + + +def plan_drama_episode_series(drama_name: str, count: int = 4, start_episode: int = 1) -> dict | None: + """๋๋ผ๋ง ํ์ฐจ๋ณ ๋ฆฌ๋ทฐ ์๋ฆฌ์ฆ๋ฅผ ๊ธฐํํฉ๋๋ค โ ์๋ฆฌ์ฆ Nํธ = ๋๋ผ๋ง Nํ ๋ฆฌ๋ทฐ. + + plan_drama_series(ํ ๋งํ: ์ฒซ์ธ์โ์ธ๋ฌผโ๋ช ์ฅ๋ฉดโ์ดํ)์ ๋ฌ๋ฆฌ, ๋ฐฉ์ ํ์ฐจ๋ฅผ + ํ๋์ฉ ๋ฐ๋ผ๊ฐ๋ฉฐ ๋งค ํ ๋ฆฌ๋ทฐ๋ฅผ ์์ฑํฉ๋๋ค (์ค๊ฑฐ๋ฆฌยท๋ช ์ฅ๋ฉดยท์ฐ๊ธฐยท๋ค์ ํ ํฌ์ธํธ). + ๊ฐ ํธ์ search_keyword๊ฐ '๋๋ผ๋ง๋ช Nํ'์ด๋ฏ๋ก ์๋ฃ ์์ง๊ธฐ๊ฐ ํด๋น ํ์ฐจ + ๊ธฐ์ฌยท๋ฐ์์ ์์งํด ๊ธ์ ๊ทผ๊ฑฐ๋ก ์ฌ์ฉํฉ๋๋ค. + + Args: + drama_name: ๋๋ผ๋ง ์ ๋ชฉ + count: ๋ฆฌ๋ทฐํ ํ์ฐจ ์ (1~8) + start_episode: ์์ ํ์ฐจ (์: 5 โ 5ํ๋ถํฐ count๊ฐ) + ๊ธฐํ์ ๊ฒฐ์ ์ (ํ ํ๋ฆฟ)์ด๋ผ API ๋น์ฉยท์คํจ ์์ด ํญ์ ์ฑ๊ณตํฉ๋๋ค. + """ + drama_name = (drama_name or "").strip() + if not drama_name: + logger.error("๋๋ผ๋ง ํ์ฐจ ๋ฆฌ๋ทฐ: ๋๋ผ๋ง ์ด๋ฆ์ด ๋น์ด ์์ต๋๋ค") + return None + count = max(1, min(count, 8)) + start_episode = max(1, min(start_episode, 100)) + + # โโ ๋ฐฉ์ ์ ๋ณด ํ์ธ โ ๋ฏธ๋ฐฉ์ ํ์ฐจ๋ ๋ฐฉ์์ผ ์ต์ผ๋ก '๋ฐํ ์์ฝ' โโ + broadcast_info = fetch_drama_broadcast_info(drama_name) + latest = None + if broadcast_info: + latest = broadcast_info.get("latest_aired_episode") + total = broadcast_info.get("total_episodes") + # ์ด ๋ถ์ ์๋ฅผ ๋๋ ํ์ฐจ๋ ์กด์ฌํ์ง ์์ผ๋ฏ๋ก ์ ์ธ + if isinstance(total, int) and total > 0: + if start_episode > total: + logger.error(f"์์ ํ์ฐจ {start_episode}ํ๊ฐ ์ด {total}๋ถ์์ ์ด๊ณผ โ ๊ธฐํ ์ค๋จ") + return None + count = min(count, total - start_episode + 1) + else: + logger.warning( + "๋ฐฉ์ ์ ๋ณด๋ฅผ ํ์ธํ์ง ๋ชปํ์ต๋๋ค โ ์ ํ์ฐจ๋ฅผ ์ฆ์ ์์ฑ ๋์์ผ๋ก ๋๋, " + "์์ฑ ์ ๋ฐฉ์ ํ ์๋ฃ๊ฐ ์๋ ํ์ฐจ๋ ์๋์ผ๋ก ๋ค์ ๋ ๋ก ๋ฏธ๋ค์ง๋๋ค" + ) + + # ๋ฏธ๋ฐฉ์ ํ์ฐจ์ ๋ฐฉ์์ผ ์ถ์ โ ์์ฝ์ผ(๋ฐฉ์ ์ต์ผ) ๊ณ์ฐ + air_dates = _estimate_air_dates(broadcast_info, start_episode, start_episode + count - 1) + + episodes = [] + scheduled_cnt = 0 + for i in range(count): + n = start_episode + i + ep = { + "episode": i + 1, # ์๋ฆฌ์ฆ ๋ด ์๋ฒ + "drama_episode": n, # ์ค์ ๋๋ผ๋ง ํ์ฐจ + "title": f"[{n}ํ] {drama_name} {n}ํ ๋ฆฌ๋ทฐ โ ์ค๊ฑฐ๋ฆฌยท๋ช ์ฅ๋ฉด ์ ๋ฆฌ", + "focus": ( + f"{drama_name} {n}ํ ๋ฆฌ๋ทฐ: ์ค๊ฑฐ๋ฆฌ ํต์ฌ ์์ฝ(์คํฌ ์ฃผ์ ์๋ด ํฌํจ), " + f"๋ช ์ฅ๋ฉดยท๋ช ๋์ฌ, ๋ฐฐ์ฐ ์ฐ๊ธฐ ํ๊ฐ, ๋ค์ ํ ์์ ํฌ์ธํธ" + ), + "search_keyword": f"{drama_name} {n}ํ ๋ฆฌ๋ทฐ", + "status": "pending", + "post_id": None, + "blogger_url": None, + } + # ๋ฏธ๋ฐฉ์ ํ์ฐจ โ ์์ฝ ์ํ (๋ฐฉ์์ผ ์ต์ผ์ ๋งค์ผ ์์ฝ ์ฒ๋ฆฌ๊ธฐ๊ฐ ์์ฑยท๊ฒ์) + if isinstance(latest, int) and latest > 0 and n > latest: + air = air_dates.get(n) + ep["status"] = "scheduled" + ep["air_date"] = air.isoformat() if air else None + ep["scheduled_date"] = (air + timedelta(days=1)).isoformat() if air else None + scheduled_cnt += 1 + logger.info( + f" ๐ {n}ํ: ๋ฏธ๋ฐฉ์ โ ๋ฐํ ์์ฝ " + f"(๋ฐฉ์ ์์ {ep['air_date'] or '๋ฏธ์ '} โ ์์ฑ {ep['scheduled_date'] or '๋ฐฉ์ ํ์ธ ์'})" + ) + episodes.append(ep) + + end_ep = start_episode + count - 1 + ep_range = f"{start_episode}ํ" if count == 1 else f"{start_episode}~{end_ep}ํ" + plan = { + "series_id": str(uuid.uuid4())[:8], + "series_title": f"{drama_name} ํ์ฐจ๋ณ ๋ฆฌ๋ทฐ ({ep_range})", + "series_label": "๋๋ผ๋ง๋ฆฌ๋ทฐ", + "drama_label": re.sub(r"[^๊ฐ-ํฃa-zA-Z0-9]", "-", drama_name), + "series_description": f"์ง์ ์์ฒญํ {drama_name} {ep_range} ํ์ฐจ๋ณ ์์ง ๋ฆฌ๋ทฐ", + "drama_name": drama_name, + "keyword": drama_name, + "episodes": episodes, + "total_episodes": len(episodes), + "created_at": datetime.now().isoformat(), + "status": "planned", + "type": "drama_episode_review", + "start_episode": start_episode, + "broadcast_info": broadcast_info or {}, + } + logger.info( + f"๋๋ผ๋ง ํ์ฐจ ๋ฆฌ๋ทฐ ์๋ฆฌ์ฆ ๊ธฐํ ์๋ฃ: '{plan['series_title']}' " + f"{count}ํธ ({ep_range})" + ) + return plan + + # โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ # ๋ด๋น๊ฒ์ด์ HTML # โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ -def build_series_nav(series_plan: dict, current_episode: int) -> str: +def build_series_nav(series_plan: dict, current_episode: int, blog_url: str = "") -> str: """์๋ฆฌ์ฆ ๋ด๋น๊ฒ์ด์ + ๋ชฉ์ฐจ HTML์ ์์ฑํฉ๋๋ค.""" episodes = series_plan.get("episodes", []) series_title = series_plan.get("series_title", "") @@ -343,23 +667,32 @@ def build_series_nav(series_plan: dict, current_episode: int) -> str: f'โ ์ด์ ํธ
' f'{prev_ep.get("title", "")[:30]}' ) - if next_ep: - next_url = next_ep.get("blogger_url") or "#" - fade = "opacity:0.55;" if not next_ep.get("blogger_url") else "" + if next_ep and next_ep.get("blogger_url"): nav_buttons += ( - f'' + f'border-radius:8px;text-decoration:none;color:#1a73e8;font-size:13px;">' f'๋ค์ ํธ โถ
' f'{next_ep.get("title", "")[:30]}' ) + elif next_ep: + nav_buttons += ( + f'' + f'๋ค์ ํธ โถ' + ) nav_buttons += "
' + f'{next_ep.get("title", "")[:30]} ' + f'(์ ๋ฐ์ดํธ ์์ )dict: + """Claude API๋ก InstagramยทThreadsยทTikTok ์ต์ ํ ์ฝํ ์ธ ๋ฅผ ์์ฑํฉ๋๋ค. + + Args: + post_data: content_generator.generate_post() ๋ฐํ๊ฐ + blog_url: ๊ฒ์๋ ๋ธ๋ก๊ทธ ํฌ์คํธ URL + + Returns: + social_content dict (instagram/threads/tiktok ํ๋ ํฌํจ) + """ + import anthropic + + keyword = post_data.get("keyword", "") + title = post_data.get("title", "") + excerpt = post_data.get("meta_description") or post_data.get("content_preview", "")[:200] + tags = post_data.get("labels", []) + faq = post_data.get("faq", []) + category = post_data.get("adsense_category", "์ผ๋ฐ") + + faq_preview = "\n".join(f"Q. {q.get('q', q.get('question', ''))}" for q in faq[:2]) if faq else "์์" + tag_str = ", ".join(tags[:10]) if tags else keyword + + # ์นดํ ๊ณ ๋ฆฌ๋ณ ํด์ํ๊ทธ ํ๋ฆฌ์ + popular_tags = _CAT_HASHTAGS.get(category, _DEFAULT_HASHTAGS) + + system_prompt = ( + "๋น์ ์ ์ธ์คํ๊ทธ๋จ, ์ฐ๋ ๋, ํฑํก ํ๋ซํผ๋ณ ๋ฐ์ด๋ด SNS ์ฝํ ์ธ ์ ๋ฌธ๊ฐ์ ๋๋ค.\n" + "์๊ณ ๋ฆฌ์ฆ ์ต์ ํ, ์ ์ฅ๋ฅ ยท๊ณต์ ์จ ๊ทน๋ํ, ๋ธ๋ก๊ทธ ํธ๋ํฝ ์ ์ ์ ๋์์ ๋ฌ์ฑํฉ๋๋ค.\n" + "- Instagram: ์ ์ฅ(Save) > ๊ณต์ > ๋๊ธ > ์ข์์ ์์ผ๋ก ์๊ณ ๋ฆฌ์ฆ ๊ฐ์ค์น\n" + "- Threads: ํ ๋ก ยท์๊ฒฌ ์ ๋ฐ ์ฝํ ์ธ ์ฐ๋\n" + "- TikTok: 3์ด ๋ฆฌํ ์ , ์์์ฒญ๋ฅ , ๋๊ธ ์ ๋ฐ์ด ํต์ฌ ์งํ" + ) + + user_prompt = f"""๋ค์ ๋ธ๋ก๊ทธ ํฌ์คํธ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋ซํผ๋ณ ์ต์ ํ SNS ์ฝํ ์ธ ๋ฅผ ์์ฑํด์ฃผ์ธ์. + +**๋ธ๋ก๊ทธ ์ ๋ชฉ:** {title} +**ํค์๋:** {keyword} +**์นดํ ๊ณ ๋ฆฌ:** {category} +**์์ฝ:** {excerpt} +**๋ธ๋ก๊ทธ URL:** {blog_url or '[๋ธ๋ก๊ทธ URL]'} +**FAQ ๋ฏธ๋ฆฌ๋ณด๊ธฐ:** +{faq_preview} +**ํ๊ทธ:** {tag_str} + +**[์ธ์คํ๊ทธ๋จ]** +- ์ฒซ 2์ค: ์คํฌ๋กค ๋ฉ์ถ๊ฒ ํ๋ ํํน (์ซ์ ๋๋ ์ถฉ๊ฒฉ ์ฌ์ค) +- "์ ์ฅ ํ์ ๐" ๋ฌธ๊ตฌ ํฌํจ (์ ์ฅ์จ ์๊ณ ๋ฆฌ์ฆ ์ต์ฐ์ ) +- ์ ๋ณด ๋ฆฌ์คํธ 5-7๊ฐ (๋ฒํธ + ์ด๋ชจ์ง) +- ์คํ ๋ฆฌ ํ์ด๋ผ์ดํธ ์ ๋ชฉ ์ ์ (5์ ์ด๋ด) +- ํด์ํ๊ทธ: ์ธ๊ธฐํ๊ทธ 10๊ฐ + ์ค๊ฐํ๊ทธ 10๊ฐ + ๋์นํ๊ทธ 5๊ฐ + +**[์ฐ๋ ๋]** +- 5๊ฐ ์ฐ์ ์ค๋ ๋ (1/5 ~ 5/5) +- 1๋ฒ: ์ถฉ๊ฒฉ์ ์ฌ์ค/ํต๊ณ +- 5๋ฒ: ๊ฒฐ๋ก + ๋ธ๋ก๊ทธ ๋งํฌ + ์๊ฒฌ ์์ฒญ +- ์ฐธ์ฌ ์ ๋ฐ ์ง๋ฌธ (๋๊ธ ์ ๋) +- ํด์ํ๊ทธ 5๊ฐ + +**[ํฑํก]** +- 60์ด ์์ ์คํฌ๋ฆฝํธ +- ์ฌ๋ณ: 0-3์ด ํํน / 3-15์ด ๋ฌธ์ / 15-35์ด ํด๊ฒฐ / 35-50์ด ๊ฒฐ๋ก / 50-60์ด CTA +- ๊ฐ ์ฌ: ์๋ง ํ ์คํธ + ์นด๋ฉ๋ผ ์ฐ์ถ + ํจ๊ณผ์ +- ๋ฐฐ๊ฒฝ์์ ์ฅ๋ฅด ์ถ์ฒ +- ํด์ํ๊ทธ 10๊ฐ (fyp ํฌํจ) +- ์ธ๋ค์ผ ํ ์คํธ + +**์๋ต ํ์ (JSON ์ฝ๋๋ธ๋ก):** +```json +{{ + "instagram": {{ + "caption": "์ ์ฒด ์บก์ (์ด๋ชจ์ง ํฌํจ)", + "hookLine": "์ฒซ ํํน ๋ฌธ์ฅ", + "storyHighlightTitle": "ํ์ด๋ผ์ดํธ ์ ๋ชฉ(5์)", + "hashtags": {{ + "popular": ["#ํด์ํ๊ทธ1", "..."], + "medium": ["#ํด์ํ๊ทธ1", "..."], + "niche": ["#ํด์ํ๊ทธ1", "..."] + }}, + "bestPostingTimes": ["07:00", "12:00", "21:00"] + }}, + "threads": {{ + "posts": [ + {{"order":1,"label":"1/5","content":"๋ด์ฉ"}}, + {{"order":2,"label":"2/5","content":"๋ด์ฉ"}}, + {{"order":3,"label":"3/5","content":"๋ด์ฉ"}}, + {{"order":4,"label":"4/5","content":"๋ด์ฉ"}}, + {{"order":5,"label":"5/5","content":"๋ง์ง๋ง ๋ด์ฉ + {blog_url or '[๋ธ๋ก๊ทธ URL]'}"}} + ], + "hashtags": ["#ํ๊ทธ1","#ํ๊ทธ2","#ํ๊ทธ3","#ํ๊ทธ4","#ํ๊ทธ5"], + "engagementQuestion": "๋๊ธ ์ ๋ฐ ์ง๋ฌธ", + "bestPostingTimes": ["08:00", "19:00"] + }}, + "tiktok": {{ + "title": "์์ ์ ๋ชฉ", + "thumbnailText": "์ธ๋ค์ผ ๋ฌธ๊ตฌ", + "scenes": [ + {{"time":"0-3์ด","text":"์๋ง","direction":"์ฐ์ถ","sound":"ํจ๊ณผ์"}}, + {{"time":"3-15์ด","text":"์๋ง","direction":"์ฐ์ถ","sound":"ํจ๊ณผ์"}}, + {{"time":"15-35์ด","text":"์๋ง","direction":"์ฐ์ถ","sound":"ํจ๊ณผ์"}}, + {{"time":"35-50์ด","text":"์๋ง","direction":"์ฐ์ถ","sound":"ํจ๊ณผ์"}}, + {{"time":"50-60์ด","text":"CTA","direction":"์ฐ์ถ","sound":"ํจ๊ณผ์"}} + ], + "fullScript": "์ ์ฒด ๋ญ๋ ์คํฌ๋ฆฝํธ", + "commentBait": "๋๊ธ ์ ๋ฐ ์ง๋ฌธ", + "hashtags": ["#fyp","#foryou","#ํ๊ทธ3","#ํ๊ทธ4","#ํ๊ทธ5"], + "backgroundMusic": {{"genre":"์ฅ๋ฅด","mood":"๋ถ์๊ธฐ"}}, + "bestPostingTimes": ["07:00","20:00","23:00"] + }}, + "keyword": "{keyword}", + "trendDirection": "stable" +}} +```""" + + try: + client = anthropic.Anthropic(api_key=ANTHROPIC_API_KEY) + resp = client.messages.create( + model=CLAUDE_MODEL, + max_tokens=8000, + system=system_prompt, + messages=[{"role": "user", "content": user_prompt}], + ) + raw = claude_text(resp) + data = _extract_json(raw) + + # bestPostingTimes ๊ธฐ๋ณธ๊ฐ ๋ณด์ฅ + if not data.get("instagram", {}).get("bestPostingTimes"): + data.setdefault("instagram", {})["bestPostingTimes"] = OPTIMAL_POSTING_TIMES["instagram"] + if not data.get("threads", {}).get("bestPostingTimes"): + data.setdefault("threads", {})["bestPostingTimes"] = OPTIMAL_POSTING_TIMES["threads"] + if not data.get("tiktok", {}).get("bestPostingTimes"): + data.setdefault("tiktok", {})["bestPostingTimes"] = OPTIMAL_POSTING_TIMES["tiktok"] + + logger.info( + f"์์ ์ฝํ ์ธ ์์ฑ ์๋ฃ: IG + Threads({len(data.get('threads',{}).get('posts',[]))}๊ฐ) " + f"+ TikTok({len(data.get('tiktok',{}).get('scenes',[]))}์ฌ)" + ) + return data + + except Exception as exc: + logger.error(f"์์ ์ฝํ ์ธ ์์ฑ ์คํจ: {exc}") + # ํด๋ฐฑ: ๊ธฐ๋ณธ ํ ํ๋ฆฟ ๋ฐํ + return _fallback_social_content(post_data, blog_url, popular_tags) + + +def _fallback_social_content(post_data: dict, blog_url: str, popular_tags: list) -> dict: + """Claude API ์คํจ ์ ๊ธฐ๋ณธ ํ ํ๋ฆฟ์ผ๋ก ์์ ์ฝํ ์ธ ์์ฑ.""" + keyword = post_data.get("keyword", "") + title = post_data.get("title", "") + kw_slug = re.sub(r"[^๊ฐ-ํฃa-zA-Z0-9]", "", keyword) + caption = f"{title}\n\n๐ก {keyword}์ ๋ํ ํต์ฌ ์ ๋ณด๋ฅผ ์ ๋ฆฌํ์ต๋๋ค.\n\n์ ์ฅ ํ์ ๐\n\n{' '.join(popular_tags)}" + + return { + "instagram": { + "caption": caption, + "hookLine": title[:60], + "storyHighlightTitle": keyword[:5], + "hashtags": { + "popular": popular_tags, + "medium": [f"#{kw_slug}"] if kw_slug else [], + "niche": [], + }, + "bestPostingTimes": OPTIMAL_POSTING_TIMES["instagram"], + }, + "threads": { + "posts": [ + {"order": 1, "label": "1/5", "content": f"๐ {keyword} โ ๊ผญ ์์์ผ ํ ํต์ฌ ์ ๋ณด"}, + {"order": 2, "label": "2/5", "content": f"๐ ์ค๋ ํฌ์คํ ์ฃผ์ : {title}"}, + {"order": 3, "label": "3/5", "content": "๐ ์์ธํ ๋ด์ฉ์ ๋ธ๋ก๊ทธ์์ ํ์ธํ์ธ์."}, + {"order": 4, "label": "4/5", "content": f"๐ก {keyword} ๊ด๋ จ ๊ถ๊ธํ ์ ์ด ์์ผ์ ๊ฐ์?"}, + {"order": 5, "label": "5/5", "content": f"๐ ์ ์ฒด ๊ธ ์ฝ๊ธฐ: {blog_url or '[๋ธ๋ก๊ทธ URL]'}\n\n์ฌ๋ฌ๋ถ์ ์๊ฐ์ ์ด๋ ์ ๊ฐ์? ๋๊ธ๋ก ์๋ ค์ฃผ์ธ์ ๐ฌ"}, + ], + "hashtags": popular_tags[:5], + "engagementQuestion": f"{keyword}์ ๋ํด ์ด๋ป๊ฒ ์๊ฐํ์๋์?", + "bestPostingTimes": OPTIMAL_POSTING_TIMES["threads"], + }, + "tiktok": { + "title": f"{keyword} ํต์ฌ ์ ๋ฆฌ 60์ด", + "thumbnailText": keyword[:20], + "scenes": [ + {"time": "0-3์ด", "text": f"โก {keyword} ๋ชจ๋ฅด๋ฉด ์ํด!", "direction": "ํ๋ฉด ํด๋ก์ฆ์ ", "sound": "์๋ฆผ์"}, + {"time": "3-15์ด", "text": "์ด๊ฑธ ๋ชจ๋ฅด๋ ๋ถ๋ค์ด ๋๋ฌด ๋ง์์", "direction": "์ ๋ฉด ์ดฌ์", "sound": "๋ฐฐ๊ฒฝ์์ "}, + {"time": "15-35์ด","text": "ํต์ฌ ๋ด์ฉ 3๊ฐ์ง", "direction": "ํ ์คํธ ์ฌ๋ผ์ด๋","sound": "๋ฐฐ๊ฒฝ์์ "}, + {"time": "35-50์ด","text": f"{keyword} ์ด๋ ๊ฒ ํ์ฉํ์ธ์", "direction": "์ธํฌ๊ทธ๋ํฝ", "sound": "๋ฐฐ๊ฒฝ์์ "}, + {"time": "50-60์ด","text": f"๋ ์์ธํ ๋ด์ฉ โ ๋งํฌ ํด๋ฆญ! {blog_url or ''}","direction": "CTA ํ๋ฉด","sound": "ํจ๊ณผ์"}, + ], + "fullScript": f"{keyword}์ ๋ํ ํต์ฌ ์ ๋ณด์ ๋๋ค. ์์ธํ ๋ด์ฉ์ ๋ธ๋ก๊ทธ ๋งํฌ๋ฅผ ํ์ธํ์ธ์.", + "commentBait": f"{keyword} ๊ด๋ จ ๊ฒฝํ์ด ์์ผ์ ๋ถ? ๋๊ธ๋ก ๊ณต์ ํด์ฃผ์ธ์!", + "hashtags": ["#fyp", "#foryou", "#์ ๋ณด", "#๊ฟํ"] + popular_tags[:3], + "backgroundMusic": {"genre": "ํ", "mood": "๊ฒฝ์พํ"}, + "bestPostingTimes": OPTIMAL_POSTING_TIMES["tiktok"], + }, + "keyword": keyword, + "trendDirection": "stable", + } + + +# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ +# Instagram ๊ฒ์ +# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ + +def publish_instagram(social_content: dict, image_url: str | None = None) -> dict: + """Instagram Graph API v21.0์ผ๋ก ์ด๋ฏธ์ง+์บก์ ๊ฒ์. + + Args: + social_content: generate_social_content() ๋ฐํ๊ฐ + image_url: ๊ณต๊ฐ ์ ๊ทผ ๊ฐ๋ฅํ ์ด๋ฏธ์ง URL (None์ด๋ฉด ํ ์คํธ๋ง) + + Returns: + {"id": ..., "url": ...} ๋๋ {"skipped": True} ๋๋ {"error": ...} + """ + if not INSTAGRAM_ACCESS_TOKEN or not INSTAGRAM_ACCOUNT_ID: + logger.info("Instagram ํฌ๋ฆฌ๋ด์ ๋ฏธ์ค์ โ ๊ฑด๋๋ (INSTAGRAM_ACCESS_TOKEN, INSTAGRAM_ACCOUNT_ID ํ์)") + return {"skipped": True, "reason": "credentials_not_configured"} + + ig = social_content.get("instagram", {}) + caption = _format_instagram_caption(ig) + base = f"https://graph.instagram.com/v21.0/{INSTAGRAM_ACCOUNT_ID}" + + try: + # Step 1: ๋ฏธ๋์ด ์ปจํ ์ด๋ ์์ฑ + params: dict = {"caption": caption, "access_token": INSTAGRAM_ACCESS_TOKEN} + if image_url: + params["image_url"] = image_url + params["media_type"] = "IMAGE" + else: + params["media_type"] = "TEXT" + + r = requests.post(f"{base}/media", params=params, timeout=30) + r.raise_for_status() + creation_id = r.json()["id"] + logger.info(f"Instagram ๋ฏธ๋์ด ์ปจํ ์ด๋ ์์ฑ: {creation_id}") + + # Step 2: ์ปจํ ์ด๋ ์ค๋น ๋๊ธฐ (์ต๋ 30์ด) + _wait_instagram_container(creation_id, timeout=30) + + # Step 3: ๊ฒ์ + r2 = requests.post( + f"{base}/media_publish", + params={"creation_id": creation_id, "access_token": INSTAGRAM_ACCESS_TOKEN}, + timeout=30, + ) + r2.raise_for_status() + media_id = r2.json()["id"] + url = f"https://www.instagram.com/p/{media_id}/" + logger.info(f"Instagram ๊ฒ์ ์๋ฃ: {url}") + return {"id": media_id, "url": url} + + except Exception as exc: + msg = getattr(exc, "response", None) + msg = msg.json().get("error", {}).get("message", str(exc)) if msg is not None else str(exc) + logger.error(f"Instagram ๊ฒ์ ์คํจ: {msg}") + return {"error": msg} + + +def _wait_instagram_container(creation_id: str, timeout: int = 30) -> None: + deadline = time.time() + timeout + while time.time() < deadline: + r = requests.get( + f"https://graph.instagram.com/v21.0/{creation_id}", + params={"fields": "status_code", "access_token": INSTAGRAM_ACCESS_TOKEN}, + timeout=15, + ) + status = r.json().get("status_code", "") + if status == "FINISHED": + return + if status == "ERROR": + raise RuntimeError("Instagram ๋ฏธ๋์ด ์ฒ๋ฆฌ ์ค๋ฅ") + time.sleep(3) + raise TimeoutError("Instagram ๋ฏธ๋์ด ์ฒ๋ฆฌ ์๊ฐ ์ด๊ณผ") + + +def _format_instagram_caption(ig: dict) -> str: + hashtags = ( + (ig.get("hashtags", {}).get("popular") or []) + + (ig.get("hashtags", {}).get("medium") or []) + + (ig.get("hashtags", {}).get("niche") or []) + ) + tag_str = " ".join(t if t.startswith("#") else f"#{t}" for t in hashtags) + caption = ig.get("caption", "") + return f"{caption}\n\n๐ก ๋์์ด ๋๋ค๋ฉด ์ ์ฅ ๐ ํด๋์ธ์!\n\n{tag_str}".strip() + + +# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ +# Threads ๊ฒ์ +# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ + +def publish_threads(social_content: dict, image_url: str | None = None) -> dict: + """Meta Threads API v1.0์ผ๋ก ์ฐ์ ์ค๋ ๋(5๊ฐ) ๊ฒ์. + + Args: + social_content: generate_social_content() ๋ฐํ๊ฐ + image_url: ์ฒซ ํฌ์คํธ์ ์ฒจ๋ถํ ์ด๋ฏธ์ง URL (์ ํ) + + Returns: + {"ids": [...], "url": ...} ๋๋ {"skipped": True} ๋๋ {"error": ...} + """ + if not THREADS_ACCESS_TOKEN or not THREADS_USER_ID: + logger.info("Threads ํฌ๋ฆฌ๋ด์ ๋ฏธ์ค์ โ ๊ฑด๋๋ (THREADS_ACCESS_TOKEN, THREADS_USER_ID ํ์)") + return {"skipped": True, "reason": "credentials_not_configured"} + + th = social_content.get("threads", {}) + posts = th.get("posts", []) + tags = th.get("hashtags", []) + base = f"https://graph.threads.net/v1.0/{THREADS_USER_ID}" + + if not posts: + return {"skipped": True, "reason": "no_content"} + + published_ids: list[str] = [] + reply_to_id: str | None = None + + try: + for i, post in enumerate(posts): + is_first = (i == 0) + # ๋ง์ง๋ง ํฌ์คํธ์ ํด์ํ๊ทธ ์ถ๊ฐ + is_last = (i == len(posts) - 1) + tag_str = " ".join(t if t.startswith("#") else f"#{t}" for t in tags) + content = post.get("content", "") + if is_last and tag_str: + content = f"{content}\n\n{tag_str}" + + params: dict = {"text": content, "access_token": THREADS_ACCESS_TOKEN} + if is_first and image_url: + params["media_type"] = "IMAGE" + params["image_url"] = image_url + else: + params["media_type"] = "TEXT" + if reply_to_id: + params["reply_to_id"] = reply_to_id + + # Step 1: ์ปจํ ์ด๋ ์์ฑ + r = requests.post(f"{base}/threads", params=params, timeout=30) + r.raise_for_status() + container_id = r.json()["id"] + + time.sleep(2) + + # Step 2: ๊ฒ์ + r2 = requests.post( + f"{base}/threads_publish", + params={"creation_id": container_id, "access_token": THREADS_ACCESS_TOKEN}, + timeout=30, + ) + r2.raise_for_status() + media_id = r2.json()["id"] + published_ids.append(media_id) + reply_to_id = media_id + + logger.info(f"Threads {i + 1}/{len(posts)} ๊ฒ์ ์๋ฃ: {media_id}") + if i < len(posts) - 1: + time.sleep(3) + + handle = THREADS_HANDLE or "me" + post_url = f"https://www.threads.net/@{handle}/post/{published_ids[0]}" + logger.info(f"Threads ์ ์ฒด ๊ฒ์ ์๋ฃ: {len(published_ids)}๊ฐ") + return {"ids": published_ids, "url": post_url} + + except Exception as exc: + msg = getattr(exc, "response", None) + msg = msg.json().get("error", {}).get("message", str(exc)) if msg is not None else str(exc) + logger.error(f"Threads ๊ฒ์ ์คํจ: {msg}") + return {"error": msg} + + +# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ +# TikTok (์คํฌ๋ฆฝํธ ์ ์ฅ) +# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ + +def save_tiktok_script(social_content: dict, keyword: str, output_dir: str = "./output/tiktok") -> dict: + """TikTok ์คํฌ๋ฆฝํธ๋ฅผ JSON ํ์ผ๋ก ์ ์ฅํฉ๋๋ค. + ์ค์ ์์ ํ์ผ์ด ์์ผ๋ฏ๋ก ์คํฌ๋ฆฝํธ๋ง ์ ์ฅํ๊ณ ์๋ ์ ์์ ์๋ดํฉ๋๋ค. + """ + tt = social_content.get("tiktok", {}) + if not tt: + return {"skipped": True} + + os.makedirs(output_dir, exist_ok=True) + from datetime import datetime + date_str = datetime.now().strftime("%Y-%m-%d") + slug = re.sub(r"[^๊ฐ-ํฃa-zA-Z0-9]", "", keyword)[:30] + filename = f"{date_str}_{slug}_tiktok.json" + filepath = os.path.join(output_dir, filename) + + with open(filepath, "w", encoding="utf-8") as f: + json.dump({"keyword": keyword, "date": date_str, **tt}, f, ensure_ascii=False, indent=2) + + logger.info(f"TikTok ์คํฌ๋ฆฝํธ ์ ์ฅ: {filepath}") + logger.info(f" ๐ฝ ์์ ์ ๋ชฉ: {tt.get('title', '')}") + logger.info(f" ๐ต ๋ฐฐ๊ฒฝ์์ : {tt.get('backgroundMusic', {}).get('genre', '')} โ {tt.get('backgroundMusic', {}).get('mood', '')}") + logger.info(f" ๐ ์ฌ ์: {len(tt.get('scenes', []))}๊ฐ") + + return {"saved": True, "path": filepath, "title": tt.get("title", ""), "scenes": len(tt.get("scenes", []))} + + +# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ +# ํตํฉ ๊ฒ์ ํจ์ +# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ + +def publish_all(post_data: dict, blog_url: str = "", image_url: str | None = None) -> dict: + """์์ ์ฝํ ์ธ ์์ฑ ํ ์ค์ ๋ ํ๋ซํผ์ ๊ฒ์ํฉ๋๋ค. + + Args: + post_data: generate_post() ๋ฐํ๊ฐ + blog_url: Blogger ๊ฒ์ URL + image_url: Instagram/Threads์ ์ฒจ๋ถํ ์ด๋ฏธ์ง ๊ณต๊ฐ URL (์ ํ) + + Returns: + { + "socialContent": {...}, + "instagram": {...}, + "threads": {...}, + "tiktok": {...}, + } + """ + keyword = post_data.get("keyword", "") + logger.info(f"[์์ ] '{keyword}' ์ฝํ ์ธ ์์ฑ ์ค...") + + social_content = generate_social_content(post_data, blog_url) + + results: dict = {"socialContent": social_content} + + # Instagram + results["instagram"] = publish_instagram(social_content, image_url) + + # Threads + results["threads"] = publish_threads(social_content, image_url) + + # TikTok (์คํฌ๋ฆฝํธ ์ ์ฅ) + results["tiktok"] = save_tiktok_script(social_content, keyword) + + _log_results(keyword, results) + return results + + +def _log_results(keyword: str, results: dict) -> None: + ig = results.get("instagram", {}) + th = results.get("threads", {}) + tt = results.get("tiktok", {}) + + if ig.get("url"): + logger.info(f" ๐ธ Instagram: {ig['url']}") + elif ig.get("skipped"): + logger.info(f" ๐ธ Instagram: ๊ฑด๋๋ ({ig.get('reason','')})") + elif ig.get("error"): + logger.warning(f" ๐ธ Instagram ์คํจ: {ig['error']}") + + if th.get("url"): + logger.info(f" ๐งต Threads: {th['url']}") + elif th.get("skipped"): + logger.info(f" ๐งต Threads: ๊ฑด๋๋ ({th.get('reason','')})") + elif th.get("error"): + logger.warning(f" ๐งต Threads ์คํจ: {th['error']}") + + if tt.get("saved"): + logger.info(f" ๐ต TikTok ์คํฌ๋ฆฝํธ ์ ์ฅ: {tt.get('path','')}") + + +# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ +# ์ ํธ +# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ + +def _extract_json(text: str) -> dict: + """LLM ์๋ต์์ JSON ๊ฐ์ฒด๋ฅผ ์ถ์ถํฉ๋๋ค.""" + # ```json ์ฝ๋๋ธ๋ก ์ฐ์ + m = re.search(r"```json\s*(\{.*?\})\s*```", text, re.DOTALL) + if m: + try: + return json.loads(m.group(1)) + except json.JSONDecodeError: + pass + + # ์ค๊ดํธ depth ํ์ + start = text.find("{") + if start != -1: + depth, in_str, escape = 0, False, False + for i, ch in enumerate(text[start:], start): + if escape: + escape = False + continue + if ch == "\\" and in_str: + escape = True + continue + if ch == '"': + in_str = not in_str + continue + if in_str: + continue + if ch in "{[": + depth += 1 + elif ch in "}]": + depth -= 1 + if depth == 0: + try: + return json.loads(text[start: i + 1]) + except json.JSONDecodeError: + break + + raise ValueError("์๋ต์์ JSON์ ์ฐพ์ ์ ์์ต๋๋ค") diff --git a/blog-automation/source_validator.py b/blog-automation/source_validator.py new file mode 100644 index 0000000000000..a0eaddc64a5fa --- /dev/null +++ b/blog-automation/source_validator.py @@ -0,0 +1,246 @@ +"""์๋ฃํฉ ์ถ์ฒ ๊ฒ์ฆ โ ์ ์ยท๊ฒ์์ผยท๋ฐํ๊ธฐ๊ดยท์ฃผ์ฅ ์ง์งยท์ต์ ์ฑยท์ถฉ๋ยท์ ๋ขฐ ๋ฑ๊ธ. + +๋ฑ๊ธ ๊ธฐ์ค: + A โ ์ ๋ถ, ๊ณต์ ๊ธฐ๊ด, ๊ธฐ์ ๊ณต์ ๋ฌธ์ + B โ ๋ํ, ์ฐ๊ตฌ๊ธฐ๊ด, ์ฃผ์ ์ธ๋ก + C โ ์ ๋ฌธ ๋งค์ฒด, ์ ๊ณ ๋ณด๊ณ ์ + D โ ์ผ๋ฐ ๋ธ๋ก๊ทธ, ์ปค๋ฎค๋ํฐ + ์ ์ธ(X) โ ์ ์ ๋ถ๊ฐ, ์ถ์ฒ ๋ถ๋ช , ๋ด์ฉ ๋ถ์ผ์น + +์๋ฃ ๊ธฐ์ค: ์ค์ํ ์์นยท์ ์ฑ ์ ๋ณด๋ ์ต์ 1๊ฐ ์ด์์ A/B ๋ฑ๊ธ ์ถ์ฒ์ ์ฐ๊ฒฐ๋์ด์ผ +ํ๋ฉฐ, ๊ทธ๋ ์ง ์์ ์ฌ์ค์ ๊ธ ์์ฑ ํ๋กฌํํธ์์ ์ ์ธ๋ฉ๋๋ค +(evidence_builder.format_evidence_for_prompt๊ฐ ๋ฑ๊ธ์ ๋ฐ์). +""" +import json +import logging +import os +import re +from datetime import datetime, timezone + +import requests + +logger = logging.getLogger(__name__) + +_HEADERS = { + "User-Agent": ( + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) " + "AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36" + ) +} + +# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ +# ์ ๋ขฐ๋ ๋ฑ๊ธ (๋๋ฉ์ธ ๊ธฐ๋ฐ) +# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ + +_GRADE_A = ( # ์ ๋ถยท๊ณต์ ๊ธฐ๊ดยท๊ธฐ์ ๊ณต์ + ".go.kr", ".gov", "korea.kr", "law.go.kr", "bok.or.kr", "fss.or.kr", + "nts.go.kr", "kosis.kr", "index.go.kr", "assembly.go.kr", +) +_GRADE_B = ( # ๋ํยท์ฐ๊ตฌ๊ธฐ๊ดยท์ฃผ์ ์ธ๋ก + ".ac.kr", ".re.kr", ".edu", "kdi.re.kr", + "yna.co.kr", "yonhapnews", "news1.kr", "newsis.com", + "chosun.com", "joongang.co.kr", "donga.com", "hani.co.kr", "khan.co.kr", + "mk.co.kr", "hankyung.com", "sedaily.com", "edaily.co.kr", "fnnews.com", + "kbs.co.kr", "sbs.co.kr", "imbc.com", "ytn.co.kr", "jtbc", +) +_GRADE_C = ( # ์ ๋ฌธ ๋งค์ฒดยท์ ๊ณ + "etnews.com", "zdnet.co.kr", "bloter.net", "byline.network", + "dt.co.kr", "ddaily.co.kr", "boannews.com", "itworld.co.kr", + "medigatenews.com", "dailypharm.com", "thebell.co.kr", +) +_GRADE_D = ( # ์ผ๋ฐ ๋ธ๋ก๊ทธยท์ปค๋ฎค๋ํฐ + "blog.naver.com", "tistory.com", "brunch.co.kr", "velog.io", + "cafe.naver.com", "cafe.daum.net", "dcinside.com", "clien.net", + "ruliweb.com", "fmkorea.com", "instiz.net", "theqoo.net", + "medium.com", "blogspot.com", "wordpress.com", +) + + +def grade_source(url: str) -> str: + """์ถ์ฒ URL์ ์ ๋ขฐ๋ ๋ฑ๊ธ(A/B/C/D)์ ๋ฐํํฉ๋๋ค.""" + u = (url or "").lower() + if not u.startswith(("http://", "https://")): + return "X" + if any(d in u for d in _GRADE_A): + return "A" + if any(d in u for d in _GRADE_B): + return "B" + if any(d in u for d in _GRADE_C): + return "C" + if any(d in u for d in _GRADE_D): + return "D" + # ๋ฏธ๋ถ๋ฅ: ๋ด์คํ ๊ฒฝ๋ก๋ฉด C(์ ๋ฌธ ๋งค์ฒด ์ถ์ ), ์๋๋ฉด D + return "C" if re.search(r"news|press|article", u) else "D" + + +# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ +# ํ์ด์ง ์์ง โ ์ ์ ํ์ธ + ๋ณธ๋ฌธ + ๊ฒ์์ผยท๋ฐํ๊ธฐ๊ด ์ถ์ถ +# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ + +def _fetch_page(url: str, timeout: int = 10) -> dict: + """ํ์ด์ง ์ ์ ํ์ธ ๋ฐ ๋ณธ๋ฌธยท๊ฒ์์ผยท๋ฐํ๊ธฐ๊ด ์ถ์ถ. + + Returns: {"ok": bool, "text": str, "published_at": str, "publisher": str} + """ + out = {"ok": False, "text": "", "published_at": "", "publisher": ""} + if not url.startswith(("http://", "https://")): + return out + try: + r = requests.get(url, headers=_HEADERS, timeout=timeout, allow_redirects=True) + if r.status_code >= 400: + return out + out["ok"] = True + html = r.text[:200_000] + + # ๊ฒ์์ผ: meta property / JSON-LD datePublished / ๋ณธ๋ฌธ ๋ ์ง ํจํด + m = re.search( + r']+(?:property|name)=["\'](?:article:published_time|' + r'og:regDate|date|pubdate|publishdate)["\'][^>]+content=["\']([^"\']+)', + html, re.I, + ) or re.search(r'"datePublished"\s*:\s*"([^"]+)"', html) + if m: + out["published_at"] = m.group(1)[:10] + else: + m = re.search(r"(20\d{2})[.\-/๋ \s]{1,3}(\d{1,2})[.\-/์\s]{1,3}(\d{1,2})", html) + if m: + out["published_at"] = f"{m.group(1)}-{int(m.group(2)):02d}-{int(m.group(3)):02d}" + + # ๋ฐํ๊ธฐ๊ด: og:site_name โ JSON-LD publisher โ ๋๋ฉ์ธ + m = re.search( + r']+property=["\']og:site_name["\'][^>]+content=["\']([^"\']+)', html, re.I + ) or re.search(r'"publisher"\s*:\s*{[^}]*"name"\s*:\s*"([^"]+)"', html) + if m: + out["publisher"] = m.group(1).strip()[:60] + else: + dm = re.match(r"https?://([^/]+)", url) + out["publisher"] = dm.group(1) if dm else "" + + # ๋ณธ๋ฌธ ํ ์คํธ + body = re.sub(r"<(script|style)[^>]*>.*?\1>", " ", html, flags=re.S | re.I) + body = re.sub(r"<[^>]+>", " ", body) + out["text"] = re.sub(r"\s+", " ", body).strip()[:3000] + return out + except Exception: + return out + + +def is_stale(published_at: str, max_age_days: int | None = None) -> bool: + """๊ฒ์์ผ์ด ์ค๋๋๋์ง ํ๋จ (๊ธฐ๋ณธ 2๋ , EVIDENCE_MAX_AGE_DAYS๋ก ์กฐ์ ).""" + if not published_at: + return False # ๋ ์ง ๋ถ๋ช ์ ๋ณ๋ ํ๋๊ทธ ์์ด ํต๊ณผ (๋ฑ๊ธยท์ง์ง ๊ฒ์ฆ์ด ๊ฑฐ๋ฆ) + if max_age_days is None: + max_age_days = int(os.getenv("EVIDENCE_MAX_AGE_DAYS", "730")) + try: + pub = datetime.fromisoformat(published_at[:10]).replace(tzinfo=timezone.utc) + return (datetime.now(timezone.utc) - pub).days > max_age_days + except Exception: + return False + + +# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ +# ์ฃผ์ฅ ์ง์ง ์ฌ๋ถ + ์ถ์ฒ ๊ฐ ์ถฉ๋ (Claude ์ผ๊ด ๋์กฐ) +# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ + +def _verify_claims_with_claude(facts: list[dict], pages: dict[str, dict]) -> list[dict]: + """๊ฐ ์ฌ์ค์ด ํด๋น ์ถ์ฒ ๋ณธ๋ฌธ์์ ์ค์ ๋ก ์ง์ง๋๋์ง + ์ฌ์ค ๊ฐ ์ถฉ๋์ ๋์กฐํฉ๋๋ค. + + Returns: [{"index": i, "supported": bool, "conflicts_with": [i...]}] + ์คํจ ์ ๋น ๋ชฉ๋ก (๊ฒ์ฆ ์๋ต โ supported ํ๋จ ๋ถ๊ฐ๋ก ์ฒ๋ฆฌ). + """ + try: + import anthropic + from config import claude_text, ANTHROPIC_API_KEY, CLAUDE_MODEL + if not ANTHROPIC_API_KEY or ANTHROPIC_API_KEY.startswith("sk-ant-xxx"): + return [] + pairs = [] + for i, f in enumerate(facts): + page = pages.get(f.get("source_url", ""), {}) + excerpt = page.get("text", "")[:1200] + if not excerpt: + continue + pairs.append(f"[{i}] ์ฃผ์ฅ: {f.get('claim', '')}\n ์ถ์ฒ ๋ณธ๋ฌธ ๋ฐ์ท: {excerpt}") + if not pairs: + return [] + client = anthropic.Anthropic(api_key=ANTHROPIC_API_KEY) + msg = client.messages.create( + model=CLAUDE_MODEL, + max_tokens=2000, + messages=[{ + "role": "user", + "content": ( + "๊ฐ ์ฃผ์ฅ์ด ํด๋น ์ถ์ฒ ๋ณธ๋ฌธ ๋ฐ์ท์์ ์ค์ ๋ก ์ง์ง๋๋์ง ํ์ ํ์ธ์.\n" + "supported=true ์กฐ๊ฑด: ์ฃผ์ฅ ์ ์ซ์ยท๋ ์งยท๋ด์ฉ์ด ๋ฐ์ท์ ๋ถํฉ. " + "๋ฐ์ท์ ์๊ฑฐ๋ ๋ค๋ฅธ ๋ด์ฉ์ด๋ฉด false.\n" + "๋ํ ์ฃผ์ฅ๋ค๋ผ๋ฆฌ ์๋ก ๋ชจ์๋๋ฉด conflicts_with์ ์๋ ๋ฒํธ๋ฅผ ๊ธฐ๋กํ์ธ์.\n\n" + + "\n\n".join(pairs) + + '\n\nJSON๋ง ์๋ต: {"results": [{"index": 0, "supported": true, "conflicts_with": []}]}' + ), + }], + ) + raw = claude_text(msg).strip() + s, e = raw.find("{"), raw.rfind("}") + if s == -1 or e <= s: + return [] + results = json.loads(raw[s:e + 1]).get("results", []) + return [r for r in results if isinstance(r, dict) and "index" in r] + except Exception as exc: + logger.warning(f"์ฃผ์ฅ-์ถ์ฒ ๋์กฐ ์คํจ: {exc}") + return [] + + +# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ +# ๋ฉ์ธ ๊ฒ์ฆ +# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ + +def validate_pack(pack: dict) -> dict: + """์๋ฃํฉ์ ๊ฐ ์ฌ์ค์ ๊ฒ์ฆํฉ๋๋ค. + + ๊ฐ fact์ ์ถ๊ฐ๋๋ ํ๋: + grade โ A/B/C/D/X (X=์ ์ธ) + publisher โ ๋ฐํ๊ธฐ๊ด + published_at โ ํ์ด์ง์์ ์ถ์ถํ ๊ฒ์์ผ๋ก ๋ณด๊ฐ + stale โ ์ค๋๋ ์๋ฃ ์ฌ๋ถ + supported โ ์ถ์ฒ ๋ณธ๋ฌธ์ด ์ฃผ์ฅ์ ์ค์ ๋ก ์ง์งํ๋์ง (ํ๋จ ๋ถ๊ฐ ์ None) + conflicts โ ์ถฉ๋ํ๋ ์ฌ์ค ์ธ๋ฑ์ค ๋ชฉ๋ก + verified โ ์ต์ข ํ์ (์ ์ ๊ฐ๋ฅ + ๋ด์ฉ ์ผ์น + ์ ์ธ ๋ฑ๊ธ ์๋) + """ + facts = pack.get("facts") or [] + if not facts: + return pack + + # 1) ํ์ด์ง ์์ง (URL๋น 1ํ) + ๋ฑ๊ธยท๊ฒ์์ผยท๋ฐํ๊ธฐ๊ด + pages: dict[str, dict] = {} + for f in facts: + url = f.get("source_url", "") + if url not in pages: + pages[url] = _fetch_page(url) + page = pages[url] + f["grade"] = grade_source(url) if page["ok"] else "X" + f["publisher"] = page.get("publisher", "") + if not f.get("published_at") and page.get("published_at"): + f["published_at"] = page["published_at"] + f["stale"] = is_stale(f.get("published_at", "")) + + # 2) ๋ณธ๋ฌธ ์ฃผ์ฅ ์ง์ง ์ฌ๋ถ + ์ถ์ฒ ๊ฐ ์ถฉ๋ (Claude ์ผ๊ด ๋์กฐ) + results = {r["index"]: r for r in _verify_claims_with_claude(facts, pages)} + for i, f in enumerate(facts): + r = results.get(i) + f["supported"] = r.get("supported") if r else None + f["conflicts"] = (r or {}).get("conflicts_with", []) + + # 3) ์ต์ข ํ์ โ ์ ์ ๋ถ๊ฐ(X) / ๋ด์ฉ ๋ถ์ผ์น(supported=False)๋ ์ ์ธ + for f in facts: + if f["grade"] == "X" or f.get("supported") is False: + f["verified"] = False + f["grade"] = "X" + else: + f["verified"] = True + + graded = {} + for f in facts: + graded[f["grade"]] = graded.get(f["grade"], 0) + 1 + logger.info( + f"์ถ์ฒ ๊ฒ์ฆ: {sum(1 for f in facts if f['verified'])}/{len(facts)}๊ฐ ํต๊ณผ, " + f"๋ฑ๊ธ ๋ถํฌ {graded}" + ) + return pack diff --git a/blog-automation/src/config.js b/blog-automation/src/config.js new file mode 100644 index 0000000000000..8dd078b6c3df8 --- /dev/null +++ b/blog-automation/src/config.js @@ -0,0 +1,88 @@ +import 'dotenv/config' +import path from 'path' +import { fileURLToPath } from 'url' + +const __dirname = path.dirname(fileURLToPath(import.meta.url)) + +export const config = { + anthropic: { + apiKey: process.env.ANTHROPIC_API_KEY, + model: process.env.CLAUDE_MODEL || 'claude-sonnet-4-6', + }, + + naver: { + clientId: process.env.NAVER_CLIENT_ID, + clientSecret: process.env.NAVER_CLIENT_SECRET, + datalabUrl: 'https://openapi.naver.com/v1/datalab/search', + searchUrl: 'https://openapi.naver.com/v1/search', + }, + + google: { + clientId: process.env.GOOGLE_CLIENT_ID, + clientSecret: process.env.GOOGLE_CLIENT_SECRET, + refreshToken: process.env.GOOGLE_REFRESH_TOKEN, + tokenUrl: 'https://oauth2.googleapis.com/token', + trendsUrl: 'https://trends.google.com/trends/trendingsearches/daily/rss', + country: process.env.TREND_COUNTRY || 'KR', + }, + + blogger: { + blogId: process.env.BLOGGER_BLOG_ID, + apiUrl: 'https://www.googleapis.com/blogger/v3', + }, + + instagram: { + accessToken: process.env.INSTAGRAM_ACCESS_TOKEN, + accountId: process.env.INSTAGRAM_ACCOUNT_ID, + apiUrl: 'https://graph.instagram.com/v21.0', + }, + + threads: { + accessToken: process.env.THREADS_ACCESS_TOKEN, + userId: process.env.THREADS_USER_ID, + handle: process.env.THREADS_HANDLE || '', + apiUrl: 'https://graph.threads.net/v1.0', + }, + + tiktok: { + accessToken: process.env.TIKTOK_ACCESS_TOKEN, + openId: process.env.TIKTOK_OPEN_ID, + apiUrl: 'https://open.tiktokapis.com/v2', + }, + + content: { + language: process.env.CONTENT_LANGUAGE || 'ko', + postsPerRun: parseInt(process.env.POSTS_PER_RUN || '3', 10), + }, + + thumbnail: { + width: parseInt(process.env.THUMBNAIL_WIDTH || '1280', 10), + height: parseInt(process.env.THUMBNAIL_HEIGHT || '720', 10), + outputDir: path.resolve(__dirname, '..', process.env.THUMBNAIL_OUTPUT_DIR || './output/thumbnails'), + }, + + schedule: { + cron: process.env.SCHEDULE_CRON || '0 8 * * *', + }, + + output: { + postsDir: path.resolve(__dirname, '..', './output/posts'), + socialDir: path.resolve(__dirname, '..', './output/social'), + thumbnailsDir: path.resolve(__dirname, '..', './output/thumbnails'), + }, + + log: { + level: process.env.LOG_LEVEL || 'info', + file: path.resolve(__dirname, '..', process.env.LOG_FILE || './logs/automation.log'), + }, +} + +export function validateConfig() { + const required = [ + ['ANTHROPIC_API_KEY', config.anthropic.apiKey], + ] + const missing = required.filter(([, val]) => !val).map(([key]) => key) + if (missing.length > 0) { + throw new Error(`ํ์ ํ๊ฒฝ ๋ณ์๊ฐ ์ค์ ๋์ง ์์์ต๋๋ค: ${missing.join(', ')}\n.env.example ํ์ผ์ ์ฐธ๊ณ ํ์ฌ .env ํ์ผ์ ์ค์ ํ์ธ์.`) + } +} diff --git a/blog-automation/src/generators/blog-content.js b/blog-automation/src/generators/blog-content.js new file mode 100644 index 0000000000000..dbd3729a20011 --- /dev/null +++ b/blog-automation/src/generators/blog-content.js @@ -0,0 +1,236 @@ +import Anthropic from '@anthropic-ai/sdk' +import { jsonrepair } from 'jsonrepair' +import { config } from '../config.js' +import { logger } from '../utils/logger.js' + +const client = new Anthropic({ apiKey: config.anthropic.apiKey }) + +/** + * Claude AI๋ก SEO + AdSense ์ต์ ํ ๋ธ๋ก๊ทธ ํฌ์คํธ ์์ฑ (v2) + * ์ ๊ทธ๋ ์ด๋: FAQ ์น์ (์ถ์ฒ ์ค๋ํซ), ๊ตฌ์กฐํ ๋ฐ์ดํฐ, 4-์ฌ๋กฏ ๊ด๊ณ ๋ฐฐ์น, ๋ด๋ถ ๋งํฌ + */ +export async function generateBlogPost(keywordData) { + const { keyword, relatedQueries = [], newsContext = [], newsItems = [], adsenseCategory, estimatedCPC, trendDirection } = keywordData + + logger.info(`๋ธ๋ก๊ทธ ํฌ์คํธ ์์ฑ ์ค: "${keyword}" (์นดํ ๊ณ ๋ฆฌ: ${adsenseCategory || '์ผ๋ฐ'}, CPC: $${estimatedCPC || 0.5})`) + + const newsSnippet = [...newsContext, ...newsItems.map(t => ({ title: t }))] + .slice(0, 5) + .map(n => `- ${n.title}${n.description ? ': ' + n.description.slice(0, 100) : ''}`) + .join('\n') + + const relatedStr = relatedQueries.slice(0, 8).join(', ') + const trendBadge = trendDirection === 'rising' ? '๐ ๊ธ์์น ์ค' : trendDirection === 'falling' ? '๐ ํ๋ฝ ์ค' : '๐ ์์ ์ ' + + const today = new Date().toLocaleDateString('ko-KR', { year: 'numeric', month: 'long', day: 'numeric' }) + const systemPrompt = `๋น์ ์ ๊ตฌ๊ธ ์ ๋์ผ์ค ์์ตํ์ ์ต์ ํ๋ ํ๊ตญ์ด ๋ธ๋ก๊ทธ ํฌ์คํธ๋ฅผ ์์ฑํ๋ ์ ๋ฌธ SEO ์ฝํ ์ธ ์ ๋ต๊ฐ์ ๋๋ค. +์ค๋ ๋ ์ง: ${today} +๋ค์ ์์น์ ์ฒ ์ ํ ๋ฐ๋ฆ ๋๋ค: +- E-E-A-T (๊ฒฝํ, ์ ๋ฌธ์ฑ, ๊ถ์, ์ ๋ขฐ์ฑ) ๊ธฐ์ค ์ถฉ์กฑ +- FAQ ์น์ ์ผ๋ก ๊ตฌ๊ธ ์ถ์ฒ ์ค๋ํซ(Featured Snippet) ํ๊ฒํ +- ํค์๋ ๋ฐ๋ 2-3% ์ ์ง, ์์ฐ์ค๋ฝ๊ฒ ์ฝ์ +- H2/H3 ๊ณ์ธต ๊ตฌ์กฐ๋ก ๊ฐ๋ ์ฑ๊ณผ ํฌ๋กค๋ฌ ์ต์ ํ +- ๋ ์ ์ฒด๋ฅ ์๊ฐ ์ต๋ํ๋ฅผ ์ํ ์ ๋ณด ๋ฐ๋ ๋์ ์์ +- ๊ด๊ณ ํด๋ฆญ์ ์ ๋ํ๋ ์ฝํ ์ธ ํ๋ฆ ์ค๊ณ +- ์ต์ 2000์ ์ด์์ ํ๋ถํ ๋ณธ๋ฌธ +- ์ ๊ณต๋ ์ต์ ๋ด์ค ์ปจํ ์คํธ๋ฅผ ๋ฐ๋์ ํ์ฉํ๊ณ , ์ค์ ๋ฐ์ดํฐยท์์นยท์ฌ๋ก๋ง ์ฌ์ฉ (์ถ์ธก ๊ธ์ง) +- ์ฐ๋ ํ๊ธฐ ์ ์ค๋ ๋ ์ง ๊ธฐ์ค์ผ๋ก ์ ํํ๊ฒ ์์ฑ` + + const userPrompt = `๋ค์ ํค์๋๋ก ๊ตฌ๊ธ ์ ๋์ผ์ค ์์ตํ์ ์ต์ ํ๋ ๋ธ๋ก๊ทธ ํฌ์คํธ๋ฅผ ์์ฑํด์ฃผ์ธ์. + +**๋ฉ์ธ ํค์๋:** ${keyword} +**ํธ๋ ๋:** ${trendBadge} +**AdSense ์นดํ ๊ณ ๋ฆฌ:** ${adsenseCategory || '์ผ๋ฐ'} (์์ CPC: $${estimatedCPC || 0.5}) +**์ฐ๊ด ํค์๋:** ${relatedStr || '์์'} +**์ต์ ๋ด์ค ์ปจํ ์คํธ:** +${newsSnippet || '์ผ๋ฐ์ ์ธ ์ต์ ์ ๋ณด๋ฅผ ํ์ฉํ์ฌ ์์ฑ'} + +**๋ฐ๋์ ํฌํจํ ๊ตฌ์กฐ:** +1. **ํํน ์ ๋ชฉ** (์ซ์+๊ฐ์ฑ์ด ํฌํจ, ์: "2026๋ AI๋ก ์ 300๋ง์? ํ์ค์ ์ธ 7๊ฐ์ง ๋ฐฉ๋ฒ") +2. **๋ฉํ ์ค๋ช ** (155์ ๋ด์ธ, ํด๋ฆญ ์ ๋ ๋ฌธ๊ตฌ ํฌํจ) +3. **URL ์ฌ๋ฌ๊ทธ** (์๋ฌธ ์๋ฌธ์, ํ์ดํ ๊ตฌ๋ถ) +4. **์๋ก ** (๋ฌธ์ ๊ณต๊ฐ โ ํด๊ฒฐ ๊ธฐ๋๊ฐ โ ์ด ๊ธ์ ๊ฐ์น, 200์+) +5. **๋ณธ๋ฌธ H2 ์น์ ์ต์ 5๊ฐ** (๊ฐ 300์+): + - ์น์ ๋ง๋ค ์ฐ๊ด ํค์๋ ์์ฐ ์ฝ์ + - ๋ฆฌ์คํธ, ํ, ๊ฐ์กฐ ํ ์คํธ ํ์ฉ + - ์ค์ฉ์ ๋ฐ์ดํฐ์ ์์น ํฌํจ + - [๊ด๊ณ ์ฌ๋กฏ1] ๋ ๋ฒ์งธ H2 ์ดํ ์ฝ์ ์์น ํ์ + - [๊ด๊ณ ์ฌ๋กฏ2] ๋ณธ๋ฌธ ์ค๊ฐ ์ฝ์ ์์น ํ์ +6. **FAQ ์น์ ** (Q&A ํ์ 5๊ฐ โ ๊ตฌ๊ธ ์ถ์ฒ ์ค๋ํซ ํ๊ฒ): + - ๋ ์๊ฐ ์ค์ ๋ก ๊ถ๊ธํดํ ์ง๋ฌธ + - 40-60์ ์ด๋ด ๋ช ํํ ๋ต๋ณ +7. **๊ฒฐ๋ก ** (์์ฝ + CTA: "์ง๊ธ ๋ฐ๋ก ์์ํ์ธ์", ๊ตฌ๋ ์ ๋) +8. **๊ตฌ์กฐํ ๋ฐ์ดํฐ** (JSON-LD Article ์คํค๋ง) +9. **SEO ํ๊ทธ** 7-12๊ฐ + +**์๋ต ํ์ (JSON):** +\`\`\`json +{ + "title": "ํํน ์ ๋ชฉ", + "metaDescription": "๋ฉํ ์ค๋ช (155์)", + "slug": "url-slug", + "tags": ["ํ๊ทธ1", "ํ๊ทธ2"], + "category": "${adsenseCategory || '์ผ๋ฐ'}", + "content": "์์ฑ๋ HTML ๋ณธ๋ฌธ ([๊ด๊ณ ์ฌ๋กฏ1], [๊ด๊ณ ์ฌ๋กฏ2] ์์น ๋ง์ปค ํฌํจ)", + "faq": [ + { "question": "์ง๋ฌธ1?", "answer": "๋ต๋ณ1" }, + { "question": "์ง๋ฌธ2?", "answer": "๋ต๋ณ2" }, + { "question": "์ง๋ฌธ3?", "answer": "๋ต๋ณ3" }, + { "question": "์ง๋ฌธ4?", "answer": "๋ต๋ณ4" }, + { "question": "์ง๋ฌธ5?", "answer": "๋ต๋ณ5" } + ], + "structuredData": { "@context": "...", ๊ตฌ์กฐํ๋ฐ์ดํฐJSON }, + "excerpt": "ํฌ์คํธ ์์ฝ (300์)", + "seoKeywords": ["ํค์๋1", "ํค์๋2"], + "readingTime": "์์ ์ฝ๊ธฐ ์๊ฐ (๋ถ)", + "wordCount": ์์๊ธ์์ +} +\`\`\`` + + try { + const response = await client.messages.create({ + model: config.anthropic.model, + max_tokens: 16000, + system: systemPrompt, + messages: [{ role: 'user', content: userPrompt }], + }) + + const text = response.content[0].text + logger.info(`Claude ์๋ต ๊ธธ์ด: ${text.length}์, stop_reason: ${response.stop_reason}`) + logger.info(`Claude ์๋ต ๋ฏธ๋ฆฌ๋ณด๊ธฐ: ${text.slice(0, 200).replace(/\n/g, ' ')}`) + const post = extractJSON(text) + post.keyword = keyword + post.date = new Date().toISOString().split('T')[0] + post.generatedAt = new Date().toISOString() + post.trendDirection = trendDirection + post.adsenseCategory = adsenseCategory + post.estimatedCPC = estimatedCPC + + logger.info(`๋ธ๋ก๊ทธ ํฌ์คํธ ์์ฑ ์๋ฃ: "${post.title}" (${post.wordCount || '?'}์, FAQ ${post.faq?.length || 0}๊ฐ)`) + return post + } catch (err) { + logger.error(`๋ธ๋ก๊ทธ ํฌ์คํธ ์์ฑ ์คํจ (${keyword}): ${err.message}`) + throw err + } +} + +/** + * HTML ์ฝํ ์ธ ์ AdSense ๊ด๊ณ ์ฌ๋กฏ 4๊ฐ ์ฝ์ (์๋จ/์ค๊ฐ1/์ค๊ฐ2/ํ๋จ) + * [๊ด๊ณ ์ฌ๋กฏ1] [๊ด๊ณ ์ฌ๋กฏ2] ๋ง์ปค๋ฅผ ์ค์ AdSense ์ฝ๋๋ก ๊ต์ฒด + */ +export function injectAdSenseSlots(content, adClientId = 'ca-pub-XXXXXXXXXXXXXXXX') { + const adTemplate = (slot) => ` ++ + + +` + + // ์๋จ ๊ด๊ณ (ํฌ์คํธ ์์) + let result = adTemplate('TOP_SLOT_ID') + content + + // ์ค๊ฐ ๊ด๊ณ (๋ง์ปค ๊ต์ฒด) + result = result.replace('[๊ด๊ณ ์ฌ๋กฏ1]', adTemplate('MID1_SLOT_ID')) + result = result.replace('[๊ด๊ณ ์ฌ๋กฏ2]', adTemplate('MID2_SLOT_ID')) + + // ํ๋จ ๊ด๊ณ (ํฌ์คํธ ๋) + result = result + adTemplate('BOTTOM_SLOT_ID') + + return result +} + +/** + * FAQ๋ฅผ JSON-LD FAQPage ์คํค๋ง๋ก ๋ณํ (๊ตฌ๊ธ ์ถ์ฒ ์ค๋ํซ ์ต์ ํ) + */ +export function buildFAQStructuredData(faqList) { + return { + '@context': 'https://schema.org', + '@type': 'FAQPage', + mainEntity: faqList.map(item => ({ + '@type': 'Question', + name: item.question, + acceptedAnswer: { + '@type': 'Answer', + text: item.answer, + }, + })), + } +} + +export async function generateMultiplePosts(keywordDataList) { + const posts = [] + for (const keywordData of keywordDataList) { + try { + const post = await generateBlogPost(keywordData) + posts.push(post) + await delay(2000) + } catch (err) { + logger.error(`ํฌ์คํธ ์์ฑ ๊ฑด๋๋ (${keywordData.keyword}): ${err.message}`) + } + } + return posts +} + +function extractJSON(text) { + const tryParse = (raw) => { + try { return JSON.parse(raw) } catch {} + return JSON.parse(jsonrepair(raw)) + } + + // 1์์: ```json ... ``` ๋ธ๋ก์์ ์ ํํ๊ฒ ์ถ์ถ (๋ซ๋ ``` ๊ธฐ์ค) + const codeStart = text.indexOf('```json') + if (codeStart !== -1) { + const jsonStart = text.indexOf('{', codeStart) + // ๋ซ๋ ``` ๋ฅผ ์ฐพ์ ๊ทธ ์ง์ ๊น์ง๋ง ์ถ์ถ + const codeEnd = text.indexOf('```', codeStart + 7) + if (jsonStart !== -1) { + const jsonEnd = codeEnd !== -1 + ? text.lastIndexOf('}', codeEnd) + : text.lastIndexOf('}') + if (jsonEnd > jsonStart) { + try { return tryParse(text.slice(jsonStart, jsonEnd + 1)) } catch (e) { + logger.warn(`์ฝ๋๋ธ๋ก JSON ํ์ฑ ์คํจ: ${e.message.slice(0, 80)}`) + } + } + } + } + + // 2์์: ์ค์ฒฉ ๊น์ด ์ถ์ ์ผ๋ก ์ ํํ JSON ๊ฐ์ฒด ๊ฒฝ๊ณ ํ์ + const start = text.indexOf('{') + if (start !== -1) { + let depth = 0, inString = false, escape = false + for (let i = start; i < text.length; i++) { + const ch = text[i] + if (escape) { escape = false; continue } + if (ch === '\\' && inString) { escape = true; continue } + if (ch === '"') { inString = !inString; continue } + if (inString) continue + if (ch === '{' || ch === '[') depth++ + else if (ch === '}' || ch === ']') { + depth-- + if (depth === 0) { + try { return tryParse(text.slice(start, i + 1)) } catch (e) { + logger.warn(`๊น์ด์ถ์ JSON ํ์ฑ ์คํจ: ${e.message.slice(0, 80)}`) + break + } + } + } + } + } + + // 3์์: ๋จ์ ์ฒซ { ~ ๋ง์ง๋ง } (์ตํ ์๋จ) + const end = text.lastIndexOf('}') + if (start !== -1 && end > start) { + return tryParse(text.slice(start, end + 1)) + } + throw new Error('์๋ต์์ JSON์ ์ฐพ์ ์ ์์ต๋๋ค') +} + +function delay(ms) { + return new Promise(resolve => setTimeout(resolve, ms)) +} diff --git a/blog-automation/src/generators/fact-checker.js b/blog-automation/src/generators/fact-checker.js new file mode 100644 index 0000000000000..f4ba048a7d99e --- /dev/null +++ b/blog-automation/src/generators/fact-checker.js @@ -0,0 +1,144 @@ +import Anthropic from '@anthropic-ai/sdk' +import { jsonrepair } from 'jsonrepair' +import { config } from '../config.js' +import { logger } from '../utils/logger.js' + +function extractJSON(text) { + const tryParse = (raw) => { + try { return JSON.parse(raw) } catch {} + return JSON.parse(jsonrepair(raw)) + } + const codeStart = text.indexOf('```json') + if (codeStart !== -1) { + const jsonStart = text.indexOf('{', codeStart) + const codeEnd = text.indexOf('```', codeStart + 7) + if (jsonStart !== -1) { + const jsonEnd = codeEnd !== -1 ? text.lastIndexOf('}', codeEnd) : text.lastIndexOf('}') + if (jsonEnd > jsonStart) { + try { return tryParse(text.slice(jsonStart, jsonEnd + 1)) } catch {} + } + } + } + const start = text.indexOf('{') + if (start !== -1) { + let depth = 0, inString = false, escape = false + for (let i = start; i < text.length; i++) { + const ch = text[i] + if (escape) { escape = false; continue } + if (ch === '\\' && inString) { escape = true; continue } + if (ch === '"') { inString = !inString; continue } + if (inString) continue + if (ch === '{' || ch === '[') depth++ + else if (ch === '}' || ch === ']') { + depth-- + if (depth === 0) { try { return tryParse(text.slice(start, i + 1)) } catch { break } } + } + } + } + const end = text.lastIndexOf('}') + if (start !== -1 && end > start) return tryParse(text.slice(start, end + 1)) + throw new Error('์๋ต์์ JSON์ ์ฐพ์ ์ ์์ต๋๋ค') +} + +const client = new Anthropic({ apiKey: config.anthropic.apiKey }) + +/** + * Claude๋ก ๋ธ๋ก๊ทธ ํฌ์คํธ ํฉํธ์ฒดํฌ & ์์ + * - ๋ ์ง/์ฐ๋ ์ค๋ฅ, ํต๊ณ ์ค๋ฅ, ์ด๋ฆ ์ค๋ฅ, ๊ทผ๊ฑฐ ์๋ ์ฃผ์ฅ ๊ฒ์ถ + * - ์ค๋ฅ ์์ ๋๋ ๋ถํ์คํ ๋ด์ฉ์ ์ ์ ํ ๋จ์ ์ถ๊ฐ + * - ์์ ๋ content์ ์ฒดํฌ ๋ฆฌํฌํธ ๋ฐํ + */ +export async function factCheckBlogPost(blogPost) { + const today = new Date().toLocaleDateString('ko-KR', { year: 'numeric', month: 'long', day: 'numeric' }) + logger.info(`๐ ํฉํธ์ฒดํฌ ์ค: "${blogPost.title}"`) + + const contentPreview = (blogPost.content || '').replace(/<[^>]*>/g, ' ').replace(/\s+/g, ' ').slice(0, 6000) + const faqText = (blogPost.faq || []).map(f => `Q: ${f.question}\nA: ${f.answer}`).join('\n\n') + + try { + const response = await client.messages.create({ + model: config.anthropic.model, + max_tokens: 8000, + system: `๋น์ ์ ํ๊ตญ์ด ๋ธ๋ก๊ทธ ์ฝํ ์ธ ํฉํธ์ฒด์ปค์ ๋๋ค. ์ค๋ ๋ ์ง: ${today} +๋ค์ ๊ธฐ์ค์ผ๋ก ์ฒ ์ ํ ๊ฒํ ํฉ๋๋ค: +โ ๋ ์งยท์ฐ๋ ์ ํ์ฑ (์ค๋ ๊ธฐ์ค์ผ๋ก ๊ณผ๊ฑฐ/ํ์ฌ/๋ฏธ๋ ๊ตฌ๋ถ) +โก ํต๊ณยท์์น์ ์ถ์ฒ ๊ฐ๋ฅ์ฑ (๊ทผ๊ฑฐ ์๋ ๊ตฌ์ฒด์ ์์น๋ ํํ ์ํ) +โข ์ธ๋ช ยท๊ธฐ๊ด๋ช ยท๋ฒ๋ฅ ๋ช ๋ฑ ๊ณ ์ ๋ช ์ฌ ์ ํ์ฑ +โฃ ํ์ธ๋์ง ์์ ์ฌ์ค์ ๋จ์ ์ ์ผ๋ก ์์ ํ๋ ๊ฒฝ์ฐ โ "~๋ก ์๋ ค์ก๋ค", "~์์๋๋ค" ๋ฑ์ผ๋ก ์์ +โค ๋ฏธ๋ ์์ธก์ ํ์ฌ ์ฌ์ค์ฒ๋ผ ์์ ํ๋ ๊ฒฝ์ฐ ์์ +โฅ ์ค๋(${today}) ์ดํ ์ผ์ ์ด๋ ๊ฒฐ๊ณผ๋ฅผ ๋จ์ ์ ์ผ๋ก ์์ ํ๋ฉด "์์ " ํํ์ผ๋ก ์์ `, + messages: [{ + role: 'user', + content: `๋ค์ ๋ธ๋ก๊ทธ ํฌ์คํธ๋ฅผ ํฉํธ์ฒดํฌํ๊ณ ์์ ํด์ฃผ์ธ์. + +**์ ๋ชฉ:** ${blogPost.title} +**ํค์๋:** ${blogPost.keyword} +**๋ฉํ ์ค๋ช :** ${blogPost.metaDescription || ''} + +**๋ณธ๋ฌธ (HTML ํ๊ทธ ์ ๊ฑฐ):** +${contentPreview} + +**FAQ:** +${faqText || '์์'} + +์๋ JSON ํ์์ผ๋ก๋ง ์๋ตํ์ธ์: +{ + "passed": true ๋๋ false, + "issueCount": ์์ ํ ์ค๋ฅ ๊ฐ์, + "issues": [ + { "type": "๋ ์ง์ค๋ฅ|์์น๊ณผ์ฅ|๋ฏธํ์ธ์ฌ์ค|๋ฏธ๋๋จ์ |๊ธฐํ", "original": "์๋ฌธ ํํ", "corrected": "์์ ๋ ํํ", "reason": "์์ ์ด์ " } + ], + "correctedTitle": "์์ ๋ ์ ๋ชฉ (๋ณ๊ฒฝ ์์ผ๋ฉด ์์ ๋ชฉ)", + "correctedMetaDescription": "์์ ๋ ๋ฉํ ์ค๋ช (๋ณ๊ฒฝ ์์ผ๋ฉด ์๋ฌธ)", + "correctedContent": "์์ ๋ ๋ณธ๋ฌธ HTML (๋ณ๊ฒฝ ์์ผ๋ฉด ์๋ฌธ ๊ทธ๋๋ก, HTML ํ๊ทธ ์ ์ง)", + "correctedFaq": [ + { "question": "์ง๋ฌธ", "answer": "์์ ๋ ๋ต๋ณ" } + ], + "summary": "ํฉํธ์ฒดํฌ ์์ฝ (ํ ์ค)" +}`, + }], + }) + + const text = response.content[0].text + const parsed = extractJSON(text) + + const issueCount = parsed.issueCount || parsed.issues?.length || 0 + if (issueCount === 0) { + logger.info(` โ ํฉํธ์ฒดํฌ ํต๊ณผ โ ์ค๋ฅ ์์`) + } else { + logger.info(` โ ๏ธ ํฉํธ์ฒดํฌ: ${issueCount}๊ฐ ์์ `) + parsed.issues?.forEach(issue => { + logger.info(` [${issue.type}] "${issue.original}" โ "${issue.corrected}"`) + }) + } + logger.info(` ๐ ${parsed.summary || 'ํฉํธ์ฒดํฌ ์๋ฃ'}`) + + // ์์ ์ฌํญ์ด ์์ผ๋ฉด blogPost์ ๋ฐ์ + const checkedPost = { + ...blogPost, + title: parsed.correctedTitle || blogPost.title, + metaDescription: parsed.correctedMetaDescription || blogPost.metaDescription, + faq: parsed.correctedFaq?.length ? parsed.correctedFaq : blogPost.faq, + factCheck: { + passed: parsed.passed !== false, + issueCount, + issues: parsed.issues || [], + summary: parsed.summary || '', + checkedAt: new Date().toISOString(), + }, + } + + // ์์ ๋ content๊ฐ ์ค์ง์ ์ผ๋ก ๋ค๋ฅผ ๋๋ง ๊ต์ฒด (๋๋ฌด ์งง์ผ๋ฉด ์๋ฌธ ์ ์ง) + if (parsed.correctedContent && parsed.correctedContent.length > 500 && issueCount > 0) { + checkedPost.content = parsed.correctedContent + } + + return checkedPost + } catch (err) { + logger.warn(`ํฉํธ์ฒดํฌ ์คํจ (์๋ฌธ ๊ทธ๋๋ก ๊ฒ์): ${err.message}`) + return { + ...blogPost, + factCheck: { passed: true, issueCount: 0, issues: [], summary: 'ํฉํธ์ฒดํฌ ์ค๋ฅ - ์๋ฌธ ๊ฒ์', checkedAt: new Date().toISOString() }, + } + } +} diff --git a/blog-automation/src/generators/social-content.js b/blog-automation/src/generators/social-content.js new file mode 100644 index 0000000000000..6b7672236723d --- /dev/null +++ b/blog-automation/src/generators/social-content.js @@ -0,0 +1,196 @@ +import Anthropic from '@anthropic-ai/sdk' +import { jsonrepair } from 'jsonrepair' +import { config } from '../config.js' +import { logger } from '../utils/logger.js' + +const client = new Anthropic({ apiKey: config.anthropic.apiKey }) + +const OPTIMAL_POSTING_TIMES = { + instagram: ['07:00', '12:00', '18:00', '21:00'], + threads: ['08:00', '13:00', '19:00', '22:00'], + tiktok: ['07:00', '12:00', '17:00', '20:00', '23:00'], +} + +/** + * SNS ํ๋ซํผ๋ณ ์ต์ ํ ์ฝํ ์ธ ์์ฑ (v2) + * Instagram ์ ์ฅ์จ, Threads ํ ๋ก ์ ๋ฐ, TikTok ์์์ฒญ๋ฅ ์ต์ ํ + */ +export async function generateSocialContent(blogPost, blogUrl = '') { + logger.info(`SNS ์ฝํ ์ธ ์์ฑ ์ค: "${blogPost.title}"`) + + const trendBadge = blogPost.trendDirection === 'rising' ? '๐ ๊ธ์์น' : '๐ฅ ํซ์ด์' + const faqPreview = (blogPost.faq || []).slice(0, 2).map(f => `Q. ${f.question}`).join('\n') + + const systemPrompt = `๋น์ ์ ์ธ์คํ๊ทธ๋จ, ์ฐ๋ ๋, ํฑํก ํ๋ซํผ๋ณ ๋ฐ์ด๋ด SNS ์ฝํ ์ธ ์ ๋ฌธ๊ฐ์ ๋๋ค. +์๊ณ ๋ฆฌ์ฆ ์ต์ ํ, ์ ์ฅ๋ฅ ยท๊ณต์ ์จ ๊ทน๋ํ, ๋ธ๋ก๊ทธ ํธ๋ํฝ ์ ์ ์ ๋์์ ๋ฌ์ฑํฉ๋๋ค. +- Instagram: ์ ์ฅ(Save) > ๊ณต์ > ๋๊ธ > ์ข์์ ์์ผ๋ก ์๊ณ ๋ฆฌ์ฆ ๊ฐ์ค์น +- Threads: ํ ๋ก ยท์๊ฒฌ ์ ๋ฐ ์ฝํ ์ธ ์ฐ๋ +- TikTok: 3์ด ๋ฆฌํ ์ , ์์์ฒญ๋ฅ , ๋๊ธ ์ ๋ฐ์ด ํต์ฌ ์งํ` + + const userPrompt = `๋ค์ ๋ธ๋ก๊ทธ ํฌ์คํธ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋ซํผ๋ณ ์ต์ ํ SNS ์ฝํ ์ธ ๋ฅผ ์์ฑํด์ฃผ์ธ์. + +**๋ธ๋ก๊ทธ ์ ๋ชฉ:** ${blogPost.title} +**ํค์๋:** ${blogPost.keyword} (${trendBadge}) +**์นดํ ๊ณ ๋ฆฌ:** ${blogPost.adsenseCategory || '์ผ๋ฐ'} +**์์ฝ:** ${blogPost.excerpt || blogPost.metaDescription} +**๋ธ๋ก๊ทธ URL:** ${blogUrl || '[๋ธ๋ก๊ทธ URL]'} +**FAQ ๋ฏธ๋ฆฌ๋ณด๊ธฐ:** +${faqPreview || '์์'} +**ํ๊ทธ:** ${(blogPost.tags || []).join(', ')} + +**[์ธ์คํ๊ทธ๋จ]** +- ์ฒซ 2์ค: ์คํฌ๋กค ๋ฉ์ถ๊ฒ ํ๋ ํํน (์ซ์ ๋๋ ์ถฉ๊ฒฉ ์ฌ์ค) +- "์ ์ฅ ํ์ ๐" ๋ฌธ๊ตฌ ํฌํจ (์ ์ฅ์จ ์๊ณ ๋ฆฌ์ฆ ์ต์ฐ์ ) +- ์ ๋ณด ๋ฆฌ์คํธ 5-7๊ฐ (๋ฒํธ + ์ด๋ชจ์ง) +- ์คํ ๋ฆฌ ํ์ด๋ผ์ดํธ ์ ๋ชฉ ์ ์ (5์ ์ด๋ด) +- ํด์ํ๊ทธ: ์ธ๊ธฐํ๊ทธ 10๊ฐ + ์ค๊ฐํ๊ทธ 10๊ฐ + ๋์นํ๊ทธ 5๊ฐ + +**[์ฐ๋ ๋]** +- 5๊ฐ ์ฐ์ ์ค๋ ๋ (1/5 ~ 5/5) +- 1๋ฒ: ์ถฉ๊ฒฉ์ ์ฌ์ค/ํต๊ณ +- 5๋ฒ: ๊ฒฐ๋ก + ๋ธ๋ก๊ทธ ๋งํฌ + ์๊ฒฌ ์์ฒญ +- ํด์ํ๊ทธ 5๊ฐ + +**[ํฑํก]** +- 60์ด ์์ ์คํฌ๋ฆฝํธ +- ์ฌ๋ณ: 0-3์ด ํํน / 3-15์ด ๋ฌธ์ / 15-35์ด ํด๊ฒฐ / 35-50์ด ๊ฒฐ๋ก / 50-60์ด CTA +- ๊ฐ ์ฌ: ์๋ง ํ ์คํธ + ์นด๋ฉ๋ผ ์ฐ์ถ + ํจ๊ณผ์ +- ๋ฐฐ๊ฒฝ์์ ์ฅ๋ฅด ์ถ์ฒ +- ํด์ํ๊ทธ 10๊ฐ (FYP ํฌํจ) + +**์๋ต ํ์ (JSON):** +\`\`\`json +{ + "instagram": { + "caption": "์ ์ฒด ์บก์ ", + "hookLine": "์ฒซ ํํน ๋ฌธ์ฅ", + "storyHighlightTitle": "ํ์ด๋ผ์ดํธ ์ ๋ชฉ", + "hashtags": { "popular": [], "medium": [], "niche": [] }, + "bestPostingTimes": ["07:00", "12:00", "21:00"] + }, + "threads": { + "posts": [ + { "order": 1, "label": "1/5", "content": "๋ด์ฉ" }, + { "order": 2, "label": "2/5", "content": "๋ด์ฉ" }, + { "order": 3, "label": "3/5", "content": "๋ด์ฉ" }, + { "order": 4, "label": "4/5", "content": "๋ด์ฉ" }, + { "order": 5, "label": "5/5", "content": "๋ง์ง๋ง + CTA" } + ], + "hashtags": ["ํ๊ทธ1", "ํ๊ทธ2", "ํ๊ทธ3", "ํ๊ทธ4", "ํ๊ทธ5"], + "engagementQuestion": "๋๊ธ ์ ๋ฐ ์ง๋ฌธ", + "bestPostingTimes": ["08:00", "19:00"] + }, + "tiktok": { + "title": "์์ ์ ๋ชฉ", + "scenes": [ + { "time": "0-3์ด", "text": "์๋ง", "direction": "์ฐ์ถ", "sound": "ํจ๊ณผ์" }, + { "time": "3-15์ด", "text": "์๋ง", "direction": "์ฐ์ถ", "sound": "ํจ๊ณผ์" }, + { "time": "15-35์ด", "text": "์๋ง", "direction": "์ฐ์ถ", "sound": "ํจ๊ณผ์" }, + { "time": "35-50์ด", "text": "์๋ง", "direction": "์ฐ์ถ", "sound": "ํจ๊ณผ์" }, + { "time": "50-60์ด", "text": "CTA", "direction": "์ฐ์ถ", "sound": "ํจ๊ณผ์" } + ], + "fullScript": "์ ์ฒด ๋ญ๋ ์คํฌ๋ฆฝํธ", + "thumbnailText": "์ธ๋ค์ผ ํ ์คํธ", + "commentBait": "๋๊ธ ์ ๋ฐ ์ง๋ฌธ", + "hashtags": ["fyp", "foryou", "ํ๊ทธ3"], + "backgroundMusic": { "genre": "์ฅ๋ฅด", "mood": "๋ถ์๊ธฐ" }, + "bestPostingTimes": ["07:00", "20:00", "23:00"] + }, + "keyword": "${blogPost.keyword}", + "date": "${new Date().toISOString().split('T')[0]}", + "trendDirection": "${blogPost.trendDirection || 'stable'}" +} +\`\`\`` + + try { + const response = await client.messages.create({ + model: config.anthropic.model, + max_tokens: 10000, + system: systemPrompt, + messages: [{ role: 'user', content: userPrompt }], + }) + + const text = response.content[0].text + const socialContent = extractJSON(text) + + if (!socialContent.instagram?.bestPostingTimes) { + socialContent.instagram = socialContent.instagram || {} + socialContent.instagram.bestPostingTimes = OPTIMAL_POSTING_TIMES.instagram + } + + logger.info(`SNS ์ฝํ ์ธ ์์ฑ ์๋ฃ: Instagram + Threads(5๊ฐ) + TikTok(${socialContent.tiktok?.scenes?.length || 5}์ฌ)`) + return socialContent + } catch (err) { + logger.error(`SNS ์ฝํ ์ธ ์์ฑ ์คํจ: ${err.message}`) + throw err + } +} + +export function formatInstagramCaption(socialContent) { + const { instagram } = socialContent + if (!instagram) return '' + const allHashtags = [ + ...(instagram.hashtags?.popular || []), + ...(instagram.hashtags?.medium || []), + ...(instagram.hashtags?.niche || []), + ].map(t => t.startsWith('#') ? t : `#${t}`).join(' ') + return `${instagram.caption}\n\n๐ก ๋์์ด ๋๋ค๋ฉด ์ ์ฅ ๐ ํด๋์ธ์!\n\n${allHashtags}` +} + +export function formatThreadsPosts(socialContent) { + const { threads } = socialContent + if (!threads) return [] + const tags = (threads.hashtags || []).map(t => t.startsWith('#') ? t : `#${t}`).join(' ') + return threads.posts.map((p, i) => ({ + ...p, + fullContent: i === threads.posts.length - 1 ? `${p.content}\n\n${tags}` : p.content, + })) +} + +export function getNextOptimalPostingTime(platform) { + const times = OPTIMAL_POSTING_TIMES[platform] || OPTIMAL_POSTING_TIMES.instagram + const now = new Date() + const nowMinutes = now.getHours() * 60 + now.getMinutes() + for (const time of times) { + const [h, m] = time.split(':').map(Number) + if (h * 60 + m > nowMinutes) return time + } + return times[0] + ' (๋ด์ผ)' +} + +function extractJSON(text) { + const tryParse = (raw) => { + try { return JSON.parse(raw) } catch {} + return JSON.parse(jsonrepair(raw)) + } + const codeStart = text.indexOf('```json') + if (codeStart !== -1) { + const jsonStart = text.indexOf('{', codeStart) + const codeEnd = text.indexOf('```', codeStart + 7) + if (jsonStart !== -1) { + const jsonEnd = codeEnd !== -1 ? text.lastIndexOf('}', codeEnd) : text.lastIndexOf('}') + if (jsonEnd > jsonStart) { + try { return tryParse(text.slice(jsonStart, jsonEnd + 1)) } catch {} + } + } + } + const start = text.indexOf('{') + if (start !== -1) { + let depth = 0, inString = false, escape = false + for (let i = start; i < text.length; i++) { + const ch = text[i] + if (escape) { escape = false; continue } + if (ch === '\\' && inString) { escape = true; continue } + if (ch === '"') { inString = !inString; continue } + if (inString) continue + if (ch === '{' || ch === '[') depth++ + else if (ch === '}' || ch === ']') { + depth-- + if (depth === 0) { try { return tryParse(text.slice(start, i + 1)) } catch { break } } + } + } + } + const end = text.lastIndexOf('}') + if (start !== -1 && end > start) return tryParse(text.slice(start, end + 1)) + throw new Error('์๋ต์์ JSON์ ์ฐพ์ ์ ์์ต๋๋ค') +} diff --git a/blog-automation/src/generators/thumbnail.js b/blog-automation/src/generators/thumbnail.js new file mode 100644 index 0000000000000..e2176a875e051 --- /dev/null +++ b/blog-automation/src/generators/thumbnail.js @@ -0,0 +1,363 @@ +import { createCanvas } from '@napi-rs/canvas' +import fs from 'fs' +import path from 'path' +import { config } from '../config.js' +import { logger } from '../utils/logger.js' + +const { width, height, outputDir } = config.thumbnail + +// ์ ๊ทธ๋ ์ด๋๋ ๋์์ธ ํ ๋ง (6์ข ) +const THEMES = [ + { + name: 'dark-blue', + bg: { type: 'gradient', colors: ['#0a0e27', '#111936', '#0f3460'] }, + accent: '#e94560', accent2: '#ff6b6b', + text: '#ffffff', subText: '#a8b2d8', + badgeBg: '#e94560', + }, + { + name: 'neon-green', + bg: { type: 'gradient', colors: ['#030303', '#0a1a0a', '#0d2b12'] }, + accent: '#00ff88', accent2: '#00cc66', + text: '#ffffff', subText: '#88ccaa', + badgeBg: '#00cc66', + }, + { + name: 'fire-orange', + bg: { type: 'gradient', colors: ['#1a0500', '#2d0e00', '#4a1800'] }, + accent: '#ff6b35', accent2: '#ff9500', + text: '#ffffff', subText: '#ffcc99', + badgeBg: '#ff6b35', + }, + { + name: 'royal-purple', + bg: { type: 'gradient', colors: ['#0a0a1a', '#150d33', '#2d1b69'] }, + accent: '#c77dff', accent2: '#9d4edd', + text: '#ffffff', subText: '#c0b3e8', + badgeBg: '#9d4edd', + }, + { + name: 'clean-red', + bg: { type: 'solid', color: '#1a1a1a' }, + accent: '#ff3333', accent2: '#ff6666', + text: '#ffffff', subText: '#cccccc', + badgeBg: '#ff3333', + }, + { + name: 'gold-dark', + bg: { type: 'gradient', colors: ['#111100', '#1a1500', '#2a2000'] }, + accent: '#ffd700', accent2: '#ffaa00', + text: '#ffffff', subText: '#ffe066', + badgeBg: '#cc9900', + }, +] + +/** + * ๋ธ๋ก๊ทธ/YouTube์ฉ ๊ฐ๋กํ ์ธ๋ค์ผ ์์ฑ (1280ร720) โ v2 + * ์ ๊ทธ๋ ์ด๋: ํธ๋ ๋ ์์ ๋ฐฐ์ง, ์์น ์ธ๋์ผ์ดํฐ, ๋ด์ค ๊ฐ์ ๋ฐฐ์ง + */ +export async function generateThumbnail(blogPost, outputPath = null) { + ensureDir(outputDir) + + const theme = THEMES[Math.floor(Math.random() * THEMES.length)] + const canvas = createCanvas(width, height) + const ctx = canvas.getContext('2d') + + drawBackground(ctx, theme, width, height) + drawGridPattern(ctx, theme, width, height) + drawTopAccentLine(ctx, theme, width) + drawCornerDecorations(ctx, theme, width, height) + + // ํธ๋ ๋ ๋ฐฐ์ง (์ข์๋จ) + drawTrendBadge(ctx, theme, blogPost) + + // ๋ ์ง + ๋ด์ค ์นด์ดํธ (์ฐ์๋จ) + drawTopRight(ctx, theme, blogPost, width) + + // ์นดํ ๊ณ ๋ฆฌ ๋ ์ด๋ธ + if (blogPost.adsenseCategory) { + drawCategoryLabel(ctx, theme, blogPost.adsenseCategory, width) + } + + // ๋ฉ์ธ ์ ๋ชฉ + drawTitle(ctx, theme, blogPost.title, width, height) + + // ํ๋จ ๋ฉํ ๋ฐ + drawBottomBar(ctx, theme, blogPost, width, height) + + const filename = outputPath || path.join( + outputDir, + `${blogPost.date || today()}_${sanitize(blogPost.keyword || 'post')}.png`, + ) + + fs.writeFileSync(filename, canvas.toBuffer('image/png')) + logger.info(`๊ฐ๋ก ์ธ๋ค์ผ ์์ฑ: ${filename}`) + return filename +} + +/** + * Instagram/TikTok์ฉ ์ธ๋กํ ์ธ๋ค์ผ (1080ร1920) โ v2 + * ์ ๊ทธ๋ ์ด๋: 3๋จ ๊ตฌ์ฑ + ํธ๋ ๋ ํ์ดํ + CTA ๋ฒํผ ๊ฐํ + */ +export async function generateVerticalThumbnail(blogPost, outputPath = null) { + const vW = 1080 + const vH = 1920 + ensureDir(outputDir) + + const theme = THEMES[Math.floor(Math.random() * THEMES.length)] + const canvas = createCanvas(vW, vH) + const ctx = canvas.getContext('2d') + + drawBackground(ctx, theme, vW, vH) + drawGridPattern(ctx, theme, vW, vH) + + // ์๋จ ๋ฐฐ์ง ์์ญ (๋ฐฐ๊ฒฝ ๋ธ๋ก) + ctx.fillStyle = theme.accent + 'cc' + ctx.fillRect(0, 0, vW, 160) + + ctx.fillStyle = '#ffffff' + ctx.font = 'bold 52px sans-serif' + ctx.textAlign = 'center' + ctx.fillText(`๐ฅ ${today()} ์ค๋์ ํซ์ด์`, vW / 2, 105) + + // ํธ๋ ๋ ํ์ดํ (์์น ์) + if (blogPost.trendDirection === 'rising') { + drawRisingArrow(ctx, theme, vW, 200) + } + + // ํค์๋ ๊ฐ์กฐ ๋ธ๋ก + const keyBgY = 220 + ctx.fillStyle = theme.accent + roundRect(ctx, 60, keyBgY, vW - 120, 120, 20) + ctx.fill() + ctx.fillStyle = '#ffffff' + ctx.font = 'bold 64px sans-serif' + ctx.textAlign = 'center' + ctx.fillText(`#${(blogPost.keyword || '').slice(0, 18)}`, vW / 2, keyBgY + 78) + + // ์ ๋ชฉ ํ ์คํธ + ctx.fillStyle = '#ffffff' + ctx.font = 'bold 60px sans-serif' + ctx.textAlign = 'center' + wrapTextCenter(ctx, blogPost.title, vW / 2, 440, vW - 100, 74) + + // ๊ตฌ๋ถ์ + ctx.fillStyle = theme.accent + '88' + ctx.fillRect(80, 900, vW - 160, 3) + + // ๋ฏธ๋ฆฌ๋ณด๊ธฐ ํฌ์ธํธ (์๋ ๊ฒฝ์ฐ) + if (blogPost.previewPoints?.length) { + ctx.fillStyle = theme.subText + ctx.font = '44px sans-serif' + ctx.textAlign = 'left' + blogPost.previewPoints.slice(0, 3).forEach((point, i) => { + ctx.fillText(`โ ${point.slice(0, 28)}`, 80, 960 + i * 72) + }) + } else { + ctx.fillStyle = theme.subText + ctx.font = '46px sans-serif' + ctx.textAlign = 'center' + ctx.fillText('๋ธ๋ก๊ทธ์์ ์ ์ฒด ๋ด์ฉ ํ์ธ', vW / 2, 980) + ctx.fillText(`๐ ์ฝ๊ธฐ ${blogPost.readingTime || '5๋ถ'}`, vW / 2, 1050) + } + + // ํ๋จ CTA ๋ฒํผ + const ctaY = vH - 300 + ctx.fillStyle = theme.accent + roundRect(ctx, 60, ctaY, vW - 120, 140, 30) + ctx.fill() + + ctx.fillStyle = '#ffffff' + ctx.font = 'bold 54px sans-serif' + ctx.textAlign = 'center' + ctx.fillText('๐ ํ๋กํ ๋งํฌ๋ก ์ ์ฒด ๋ณด๊ธฐ', vW / 2, ctaY + 88) + + // ๋ธ๋๋ ํ๋จ + ctx.fillStyle = theme.accent + '44' + ctx.fillRect(0, vH - 120, vW, 120) + ctx.fillStyle = '#ffffff' + ctx.font = '36px sans-serif' + ctx.textAlign = 'center' + ctx.fillText(`${today()} | AI ์๋ ์์ฑ ์ฝํ ์ธ `, vW / 2, vH - 42) + + const filename = outputPath || path.join( + outputDir, + `${blogPost.date || today()}_${sanitize(blogPost.keyword || 'post')}_vertical.png`, + ) + + fs.writeFileSync(filename, canvas.toBuffer('image/png')) + logger.info(`์ธ๋ก ์ธ๋ค์ผ ์์ฑ: ${filename}`) + return filename +} + +// โโโโโโโโโโโโโโโ ๋ด๋ถ ๋ ๋๋ง ํฌํผ โโโโโโโโโโโโโโโ + +function drawBackground(ctx, theme, w, h) { + if (theme.bg.type === 'gradient') { + const grad = ctx.createLinearGradient(0, 0, w, h) + theme.bg.colors.forEach((c, i) => grad.addColorStop(i / (theme.bg.colors.length - 1), c)) + ctx.fillStyle = grad + } else { + ctx.fillStyle = theme.bg.color + } + ctx.fillRect(0, 0, w, h) +} + +function drawGridPattern(ctx, theme, w, h) { + ctx.strokeStyle = theme.text + '08' + ctx.lineWidth = 1 + for (let x = 0; x < w; x += 60) { ctx.beginPath(); ctx.moveTo(x, 0); ctx.lineTo(x, h); ctx.stroke() } + for (let y = 0; y < h; y += 60) { ctx.beginPath(); ctx.moveTo(0, y); ctx.lineTo(w, y); ctx.stroke() } +} + +function drawTopAccentLine(ctx, theme, w) { + const grad = ctx.createLinearGradient(0, 0, w, 0) + grad.addColorStop(0, theme.accent) + grad.addColorStop(0.5, theme.accent2) + grad.addColorStop(1, theme.accent) + ctx.fillStyle = grad + ctx.fillRect(0, 0, w, 10) +} + +function drawCornerDecorations(ctx, theme, w, h) { + ctx.beginPath() + ctx.arc(w - 80, -40, 220, 0, Math.PI * 2) + ctx.fillStyle = theme.accent + '18' + ctx.fill() + + ctx.beginPath() + ctx.arc(60, h + 20, 170, 0, Math.PI * 2) + ctx.fillStyle = theme.accent2 + '12' + ctx.fill() +} + +function drawTrendBadge(ctx, theme, post) { + const trendLabel = post.trendDirection === 'rising' ? '๐ ๊ธ์์น' : '๐ฅ HOT' + const rankText = post.rank ? `#${post.rank} ` : '' + const badgeText = `${rankText}${trendLabel}` + + ctx.font = 'bold 26px sans-serif' + const tw = ctx.measureText(badgeText).width + + ctx.fillStyle = theme.badgeBg + roundRect(ctx, 30, 30, tw + 50, 52, 26) + ctx.fill() + + ctx.fillStyle = '#ffffff' + ctx.textAlign = 'left' + ctx.fillText(badgeText, 55, 65) +} + +function drawTopRight(ctx, theme, post, w) { + ctx.fillStyle = theme.subText + ctx.font = '24px sans-serif' + ctx.textAlign = 'right' + const dateStr = post.date || today() + const newsCount = post.newsContext?.length || 0 + const infoText = newsCount > 0 ? `๐ฐ ๊ด๋ จ๋ด์ค ${newsCount}๊ฑด | ๐ ${dateStr}` : `๐ ${dateStr}` + ctx.fillText(infoText, w - 30, 60) +} + +function drawCategoryLabel(ctx, theme, category, w) { + ctx.fillStyle = theme.accent2 + 'cc' + ctx.font = 'bold 22px sans-serif' + ctx.textAlign = 'right' + ctx.fillText(`[${category}]`, w - 30, 100) +} + +function drawTitle(ctx, theme, title, w, h) { + ctx.fillStyle = theme.text + ctx.textAlign = 'left' + const maxW = w - 100 + let fontSize = 64 + ctx.font = `bold ${fontSize}px sans-serif` + + while (ctx.measureText(title).width > maxW * 1.8 && fontSize > 36) { + fontSize -= 4 + ctx.font = `bold ${fontSize}px sans-serif` + } + + wrapText(ctx, title, 50, h / 2 - 50, maxW, fontSize + 18) +} + +function drawBottomBar(ctx, theme, post, w, h) { + ctx.fillStyle = '#00000044' + ctx.fillRect(0, h - 80, w, 80) + + ctx.fillStyle = theme.subText + ctx.font = '24px sans-serif' + ctx.textAlign = 'left' + const readTime = post.readingTime || '5๋ถ' + const cpc = post.estimatedCPC ? `| AdSense: $${post.estimatedCPC}/ํด๋ฆญ ` : '' + ctx.fillText(`๐ ${post.date || today()} ๐ ${readTime} ์ฝ๊ธฐ ${cpc}โ๏ธ AI ์์ฑ`, 30, h - 28) + + ctx.fillStyle = theme.accent + ctx.font = 'bold 22px sans-serif' + ctx.textAlign = 'right' + ctx.fillText('โถ ๋ธ๋ก๊ทธ์์ ์ ์ฒด๋ณด๊ธฐ', w - 30, h - 28) +} + +function drawRisingArrow(ctx, theme, w, y) { + ctx.fillStyle = theme.accent + ctx.font = 'bold 70px sans-serif' + ctx.textAlign = 'center' + ctx.fillText('๐ ์ง๊ธ ๊ธ์์น ์ค!', w / 2, y) +} + +function wrapText(ctx, text, x, y, maxWidth, lineHeight) { + let line = '' + let currentY = y + for (let i = 0; i < text.length; i++) { + const testLine = line + text[i] + if (ctx.measureText(testLine).width > maxWidth && line !== '') { + ctx.fillText(line, x, currentY) + line = text[i] + currentY += lineHeight + } else { + line = testLine + } + } + if (line) ctx.fillText(line, x, currentY) +} + +function wrapTextCenter(ctx, text, cx, y, maxWidth, lineHeight) { + let line = '' + let currentY = y + for (let i = 0; i < text.length; i++) { + const testLine = line + text[i] + if (ctx.measureText(testLine).width > maxWidth && line !== '') { + ctx.fillText(line, cx, currentY) + line = text[i] + currentY += lineHeight + } else { + line = testLine + } + } + if (line) ctx.fillText(line, cx, currentY) +} + +function roundRect(ctx, x, y, w, h, r) { + ctx.beginPath() + ctx.moveTo(x + r, y) + ctx.lineTo(x + w - r, y) + ctx.quadraticCurveTo(x + w, y, x + w, y + r) + ctx.lineTo(x + w, y + h - r) + ctx.quadraticCurveTo(x + w, y + h, x + w - r, y + h) + ctx.lineTo(x + r, y + h) + ctx.quadraticCurveTo(x, y + h, x, y + h - r) + ctx.lineTo(x, y + r) + ctx.quadraticCurveTo(x, y, x + r, y) + ctx.closePath() +} + +function ensureDir(dir) { + if (!fs.existsSync(dir)) fs.mkdirSync(dir, { recursive: true }) +} + +function today() { + return new Date().toISOString().split('T')[0] +} + +function sanitize(str) { + return str.replace(/[^a-zA-Z0-9๊ฐ-ํฃ_-]/g, '_').slice(0, 40) +} diff --git a/blog-automation/src/index.js b/blog-automation/src/index.js new file mode 100644 index 0000000000000..0210dc279bcdd --- /dev/null +++ b/blog-automation/src/index.js @@ -0,0 +1,198 @@ +#!/usr/bin/env node +/** + * ๋ธ๋ก๊ทธ ์๋ํ ์์คํ ๋ฉ์ธ ์ค์ผ์คํธ๋ ์ดํฐ v2 + * + * node src/index.js # ์ฆ์ ์คํ (๊ฒ์) + * node src/index.js --preview # ๋ฏธ๋ฆฌ๋ณด๊ธฐ ๋ฆฌํฌํธ๋ง + * node src/index.js --draft # Blogger ์์์ ์ฅ + SNS ๊ฑด๋๋ + * node src/index.js --schedule # ์ค์ผ์ค๋ฌ ๋ชจ๋ + */ + +import cron from 'node-cron' +import { config, validateConfig } from './config.js' +import { logger } from './utils/logger.js' +import { savePost, saveSocialContent, saveRunHistory } from './utils/storage.js' +import { estimateAdSenseEarnings, recordRunStats, printEarningsReport } from './utils/analytics.js' +import { generatePreviewReport } from './utils/preview-report.js' +import { analyzeHotKeywords } from './scrapers/keyword-analyzer.js' +import { generateBlogPost } from './generators/blog-content.js' +import { generateSocialContent, getNextOptimalPostingTime } from './generators/social-content.js' +import { generateThumbnail, generateVerticalThumbnail } from './generators/thumbnail.js' +import { publishToBlogger } from './publishers/blogger.js' +import { publishToInstagram } from './publishers/instagram.js' +import { publishToThreads } from './publishers/threads.js' +import { publishToTikTok } from './publishers/tiktok.js' +import { factCheckBlogPost } from './generators/fact-checker.js' + +const args = process.argv.slice(2) +const isScheduleMode = args.includes('--schedule') +const isPreviewMode = args.includes('--preview') +const isDraftMode = args.includes('--draft') +const isConfirmMode = args.includes('--confirm') + +async function runAutomation() { + const runStart = Date.now() + const modeLabel = isPreviewMode ? '[๋ฏธ๋ฆฌ๋ณด๊ธฐ]' : isDraftMode ? '[์์์ ์ฅ]' : isConfirmMode ? '[ํ์ธ๋๊ธฐ]' : '[๊ฒ์]' + + logger.info('โ'.repeat(62)) + logger.info(`๐ ๋ธ๋ก๊ทธ ์๋ํ ์์คํ v2 ${modeLabel} โ ${new Date().toLocaleString('ko-KR')}`) + logger.info('โ'.repeat(62)) + + const results = { + date: new Date().toISOString().split('T')[0], + mode: isPreviewMode ? 'preview' : isDraftMode ? 'draft' : isConfirmMode ? 'confirm' : 'publish', + keywords: [], posts: [], errors: [], earningsEstimate: null, + } + + try { + logger.info('\n๐ [1/6] ์ค๋์ ํซ ํค์๋ ์์ง & AdSense ๋ถ์ ์ค...') + const hotKeywords = await analyzeHotKeywords() + if (!hotKeywords.length) { logger.warn('์์ง๋ ํค์๋๊ฐ ์์ต๋๋ค.'); return results } + results.keywords = hotKeywords.map(k => k.keyword) + + for (let i = 0; i < hotKeywords.length; i++) { + const keywordData = { ...hotKeywords[i], rank: i + 1 } + const postResult = { keyword: keywordData.keyword, status: 'pending' } + + logger.info(`\n${'โ'.repeat(50)}`) + logger.info(`๐ [${i + 1}/${hotKeywords.length}] "${keywordData.keyword}" | ํธ๋ ๋: ${keywordData.trendDirection === 'rising' ? '๐ ๊ธ์์น' : '๐ ์์ '} | CPC: $${keywordData.estimatedCPC || 0.5}`) + + try { + logger.info('โ๏ธ [2/7] ๋ธ๋ก๊ทธ ํฌ์คํธ ์์ฑ ์ค...') + const rawPost = { ...await generateBlogPost(keywordData), rank: i + 1 } + + logger.info('๐ [3/7] ํฉํธ์ฒดํฌ ์ค...') + const blogPost = await factCheckBlogPost(rawPost) + if (isConfirmMode) blogPost.publishStatus = 'pending' + savePost(blogPost) + postResult.blogPost = { title: blogPost.title, wordCount: blogPost.wordCount, faqCount: blogPost.faq?.length || 0, factCheck: blogPost.factCheck } + + logger.info('๐ผ๏ธ [4/7] ์ธ๋ค์ผ ์์ฑ ์ค...') + const [thumbnailPath, verticalPath] = await Promise.allSettled([ + generateThumbnail(blogPost), + generateVerticalThumbnail(blogPost), + ]).then(res => res.map(r => r.status === 'fulfilled' ? r.value : null)) + postResult.thumbnails = { horizontal: thumbnailPath, vertical: verticalPath } + + logger.info('๐ฑ [5/7] SNS ์ฝํ ์ธ ์์ฑ ์ค...') + const socialContent = await generateSocialContent(blogPost, '') + saveSocialContent(socialContent, keywordData.keyword) + postResult.socialContent = socialContent + logger.info(` IG ์ต์ ๊ฒ์: ${getNextOptimalPostingTime('instagram')} | TikTok: ${getNextOptimalPostingTime('tiktok')}`) + + logger.info('๐ฐ [6/7] AdSense ์์ต ์ถ์ ์ค...') + const postEarnings = estimateAdSenseEarnings([{ ...blogPost, naverAvgRatio: keywordData.naverAvgRatio }]) + postResult.earnings = postEarnings.posts[0] + + if (isPreviewMode) { + logger.info('๐๏ธ [7/7] ๋ฏธ๋ฆฌ๋ณด๊ธฐ ๋ชจ๋ โ ๊ฒ์ ๊ฑด๋๋') + postResult.status = 'preview' + } else if (isConfirmMode) { + logger.info('๐ [7/7] ํ์ธ ๋ชจ๋ โ ๋์๋ณด๋ [๊ฒ์ ๋๊ธฐ] ํญ์์ ๊ฒํ ํ ์น์ธํ์ธ์') + postResult.status = 'pending' + } else { + logger.info('๐ [7/7] ํ๋ซํผ ๊ฒ์ ์ค...') + const blogUrl = await publishWithRetry(() => publishToBlogger(blogPost, { isDraft: isDraftMode })) + postResult.blogger = blogUrl + + if (!isDraftMode) { + const [instaResult, threadsResult, tiktokResult] = await Promise.allSettled([ + publishWithRetry(() => publishToInstagram(socialContent, verticalPath || thumbnailPath)), + publishWithRetry(() => publishToThreads(socialContent)), + publishWithRetry(() => publishToTikTok(socialContent)), + ]) + postResult.instagram = instaResult.status === 'fulfilled' ? instaResult.value : { error: instaResult.reason?.message } + postResult.threads = threadsResult.status === 'fulfilled' ? threadsResult.value : { error: threadsResult.reason?.message } + postResult.tiktok = tiktokResult.status === 'fulfilled' ? tiktokResult.value : { error: tiktokResult.reason?.message } + } + postResult.status = 'completed' + logPostSummary(keywordData.keyword, blogPost, postResult) + } + } catch (err) { + postResult.status = 'error' + postResult.error = err.message + logger.error(`"${keywordData.keyword}" ์ฒ๋ฆฌ ์ค๋ฅ: ${err.message}`) + results.errors.push({ keyword: keywordData.keyword, error: err.message }) + } + + results.posts.push(postResult) + if (i < hotKeywords.length - 1) { logger.info('โณ 5์ด ๋๊ธฐ...'); await delay(5000) } + } + + const completedPosts = results.posts.filter(p => p.blogPost).map(p => ({ + keyword: p.keyword, adsenseCategory: p.blogPost?.adsenseCategory, + trendDirection: p.blogPost?.trendDirection, + naverAvgRatio: hotKeywords.find(k => k.keyword === p.keyword)?.naverAvgRatio, + estimatedCPC: p.earnings?.estimatedCPC, + })) + if (completedPosts.length) { + results.earningsEstimate = estimateAdSenseEarnings(completedPosts) + printEarningsReport(results.earningsEstimate) + } + + if (isPreviewMode) { + const reportPath = generatePreviewReport(results) + logger.info(`\n๐ ๋ฏธ๋ฆฌ๋ณด๊ธฐ ๋ฆฌํฌํธ: ${reportPath}`) + } + } catch (err) { + logger.error(`์๋ํ ์คํ ์ค๋ฅ: ${err.message}`) + results.error = err.message + } + + const duration = ((Date.now() - runStart) / 1000).toFixed(1) + logger.info('\n' + 'โ'.repeat(62)) + logger.info(`โ ์๋ฃ! ${duration}์ด | ์ฑ๊ณต: ${results.posts.filter(p => ['completed', 'preview'].includes(p.status)).length}/${results.posts.length}`) + logger.info('โ'.repeat(62)) + + saveRunHistory(results) + if (results.earningsEstimate) recordRunStats(results, results.earningsEstimate) + + // ์ ์ ๋์๋ณด๋ ๋ฐ์ดํฐ ์๋ ์ ๋ฐ์ดํธ + try { + const { exportStaticData } = await import('./web/export-static.js') + exportStaticData() + } catch {} + + return results +} + +async function publishWithRetry(fn, maxRetries = 3) { + for (let attempt = 1; attempt <= maxRetries; attempt++) { + try { return await fn() } catch (err) { + if (attempt === maxRetries) return { error: err.message } + const waitMs = 2000 * Math.pow(2, attempt - 1) + logger.warn(`๊ฒ์ ์คํจ (์๋ ${attempt}/${maxRetries}), ${waitMs / 1000}์ด ํ ์ฌ์๋`) + await delay(waitMs) + } + } +} + +function logPostSummary(keyword, blogPost, r) { + logger.info(`\nโ "${keyword}" ์๋ฃ:`) + const fc = blogPost.factCheck + const fcLabel = fc ? (fc.issueCount > 0 ? ` | ํฉํธ์์ ${fc.issueCount}๊ฑด` : ' | ํฉํธโ ') : '' + logger.info(` ๐ ${blogPost.title} | FAQ: ${blogPost.faq?.length || 0}๊ฐ | ${blogPost.wordCount || '?'}์${fcLabel}`) + if (r.blogger?.url) logger.info(` ๐ ${r.blogger.url}`) + if (r.instagram?.url) logger.info(` ๐ธ ${r.instagram.url}`) + if (r.threads?.url) logger.info(` ๐งต ${r.threads.url}`) + if (r.tiktok?.publishId) logger.info(` ๐ต TikTok ์ ๋ก๋ ์๋ฃ`) + if (r.earnings) logger.info(` ๐ฐ ์ผ ์์ต: $${r.earnings.estimatedDailyRevenue}`) +} + +function delay(ms) { return new Promise(resolve => setTimeout(resolve, ms)) } + +async function main() { + try { validateConfig() } catch (err) { logger.error(`์ค์ ์ค๋ฅ: ${err.message}`); process.exit(1) } + + if (isScheduleMode) { + logger.info(`๐ ์ค์ผ์ค๋ฌ: ${config.schedule.cron} (KST)`) + cron.schedule(config.schedule.cron, () => { + runAutomation().catch(err => logger.error(`์ค์ผ์ค ์ค๋ฅ: ${err.message}`)) + }, { timezone: 'Asia/Seoul' }) + } else { + await runAutomation() + process.exit(0) + } +} + +main().catch(err => { logger.error(`์ค๋ฅ: ${err.message}`); process.exit(1) }) diff --git a/blog-automation/src/publishers/blogger.js b/blog-automation/src/publishers/blogger.js new file mode 100644 index 0000000000000..2d3792d7ce3b1 --- /dev/null +++ b/blog-automation/src/publishers/blogger.js @@ -0,0 +1,155 @@ +import axios from 'axios' +import { config } from '../config.js' +import { logger } from '../utils/logger.js' +import { injectAdSenseSlots, buildFAQStructuredData } from '../generators/blog-content.js' + +let cachedAccessToken = null +let tokenExpiry = null + +async function getAccessToken() { + if (cachedAccessToken && tokenExpiry && Date.now() < tokenExpiry) { + return cachedAccessToken + } + if (!config.google.refreshToken) { + throw new Error('Google Refresh Token์ด ์ค์ ๋์ง ์์์ต๋๋ค.') + } + const response = await axios.post(config.google.tokenUrl, { + client_id: config.google.clientId, + client_secret: config.google.clientSecret, + refresh_token: config.google.refreshToken, + grant_type: 'refresh_token', + }) + cachedAccessToken = response.data.access_token + tokenExpiry = Date.now() + (response.data.expires_in - 60) * 1000 + return cachedAccessToken +} + +/** + * Google Blogger์ ํฌ์คํธ ๊ฒ์ (v2) + * ์ ๊ทธ๋ ์ด๋: AdSense 4์ฌ๋กฏ, FAQ ๊ตฌ์กฐํ ๋ฐ์ดํฐ, Article ์คํค๋ง, ์ฌ์ดํธ๋งต ํ + */ +export async function publishToBlogger(blogPost, options = {}) { + const { adClientId = process.env.ADSENSE_CLIENT_ID || 'ca-pub-XXXXXXXXXXXXXXXX', isDraft = false } = options + + if (!config.blogger.blogId) { + logger.warn('Blogger Blog ID๊ฐ ์์ต๋๋ค. ๊ฑด๋๋๋๋ค.') + return { skipped: true, reason: 'BLOGGER_BLOG_ID not configured' } + } + + logger.info(`Blogger ๊ฒ์ ์ค: "${blogPost.title}"`) + + for (let attempt = 1; attempt <= 3; attempt++) { + try { + if (attempt > 1) { + const wait = attempt * 5000 + logger.info(`Blogger ์ฌ์๋ ${attempt}/3 (${wait / 1000}์ด ํ)...`) + await new Promise(r => setTimeout(r, wait)) + } + const token = await getAccessToken() + const htmlContent = buildFullHtmlContent(blogPost, adClientId) + + // ๋ผ๋ฒจ: ์ต๋ 20๊ฐ, ๊ฐ 200์ ์ดํ๋ก ์ ํ + const labels = [ + ...(blogPost.tags || []), + blogPost.keyword, + blogPost.adsenseCategory, + ].filter(Boolean).slice(0, 20).map(l => String(l).slice(0, 200)) + + const response = await axios.post( + `${config.blogger.apiUrl}/blogs/${config.blogger.blogId}/posts`, + { title: blogPost.title, content: htmlContent, labels }, + { + headers: { Authorization: `Bearer ${token}`, 'Content-Type': 'application/json' }, + params: { isDraft }, + }, + ) + + const result = { + id: response.data.id, + url: response.data.url, + title: response.data.title, + published: response.data.published, + } + + logger.info(`Blogger ๊ฒ์ ์๋ฃ: ${result.url}`) + return result + } catch (err) { + const errData = err.response?.data?.error + const errMsg = errData?.message || err.message + const errDetails = errData?.errors ? JSON.stringify(errData.errors) : '' + if (attempt < 3) { + logger.warn(`Blogger ๊ฒ์ ์ค๋ฅ (์๋ ${attempt}/3): ${errMsg}`) + } else { + logger.error(`Blogger ๊ฒ์ ์คํจ: ${errMsg}${errDetails ? ' | ' + errDetails : ''}`) + return { error: errMsg } + } + } + } +} + +/** + * SEO ์์ ์ต์ ํ HTML ๊ตฌ์ฑ + * - Article ๊ตฌ์กฐํ ๋ฐ์ดํฐ (JSON-LD) + * - FAQPage ๊ตฌ์กฐํ ๋ฐ์ดํฐ + * - AdSense ๊ด๊ณ 4์ฌ๋กฏ + * - ๋ด๋ถ ๋งํฌ ์น์ + * - SEO ํค์๋ ๋ฉํ + */ +function buildFullHtmlContent(blogPost, adClientId) { + // 1. ๊ด๊ณ ์ฌ๋กฏ ์ฃผ์ + const contentWithAds = injectAdSenseSlots(blogPost.content || '', adClientId) + + // 2. Article ๊ตฌ์กฐํ ๋ฐ์ดํฐ + const articleSchema = JSON.stringify({ + '@context': 'https://schema.org', + '@type': 'Article', + headline: blogPost.title, + description: blogPost.metaDescription, + author: { '@type': 'Organization', name: '์ค๋์ ํซ์ด์' }, + datePublished: blogPost.generatedAt || new Date().toISOString(), + dateModified: new Date().toISOString(), + keywords: (blogPost.seoKeywords || []).join(', '), + ...(blogPost.structuredData || {}), + }, null, 2) + + // 3. FAQPage ๊ตฌ์กฐํ ๋ฐ์ดํฐ + const faqSchema = blogPost.faq?.length + ? JSON.stringify(buildFAQStructuredData(blogPost.faq), null, 2) + : null + + // 4. FAQ HTML ์น์ + const faqHtml = blogPost.faq?.length ? ` ++` : '' + + // 5. ๊ด๋ จ ํ๊ทธ ๋งํฌ + const tagLinks = (blogPost.tags || []) + .map(t => `${t}`) + .join('') + + return ` + +${faqSchema ? `` : ''} + +์์ฃผ ๋ฌป๋ ์ง๋ฌธ (FAQ)
+ ${blogPost.faq.map(f => ` ++`).join('\n')} +${f.question}
+${f.answer}
++ +${contentWithAds} + +${faqHtml} + +` +} diff --git a/blog-automation/src/publishers/instagram.js b/blog-automation/src/publishers/instagram.js new file mode 100644 index 0000000000000..d8e3df3c1451f --- /dev/null +++ b/blog-automation/src/publishers/instagram.js @@ -0,0 +1,131 @@ +import axios from 'axios' +import FormData from 'form-data' +import fs from 'fs' +import { config } from '../config.js' +import { logger } from '../utils/logger.js' +import { formatInstagramCaption } from '../generators/social-content.js' + +const BASE_URL = config.instagram.apiUrl + +/** + * ์ธ์คํ๊ทธ๋จ์ ์ด๋ฏธ์ง + ์บก์ ๊ฒ์ + * Instagram Graph API v21.0 ๊ธฐ์ค + * @param {Object} socialContent - SNS ์ฝํ ์ธ ๋ฐ์ดํฐ + * @param {string} thumbnailPath - ์ธ๋ค์ผ ์ด๋ฏธ์ง ๊ฒฝ๋ก + * @param {string} imagePublicUrl - ๊ณต๊ฐ ์ ๊ทผ ๊ฐ๋ฅํ ์ด๋ฏธ์ง URL (Instagram API ์๊ตฌ์ฌํญ) + * @returns {Promise
+ +++๊ด๋ จ ํ๊ทธ
+${tagLinks}+๐ ์ด ํฌ์คํธ๊ฐ ๋์์ด ๋๋ค๋ฉด ๋ถ๋งํฌํด ๋์ธ์!
+* ๋ณธ ์ฝํ ์ธ ๋ AI๊ฐ ์ต์ ํธ๋ ๋๋ฅผ ๋ฐํ์ผ๋ก ์์ฑํ์ผ๋ฉฐ, ํฌ์ยท์๋ฃยท๋ฒ๋ฅ ๋ฑ ์ ๋ฌธ ๋ถ์ผ๋ ๋ฐ๋์ ์ ๋ฌธ๊ฐ์ ์๋ดํ์ธ์.
+