๋ถ๋์ฐ ๋ฐ ์ฒญ์ฝ ๊ด๋ จ ๋ด์ค๋ฅผ ์๋์ผ๋ก ์์งํ์ฌ ์ปค๋ฎค๋ํฐ์ ํฌ์คํธ๋ก ์์ฑํ๋ ๊ธฐ๋ฅ์ ๋๋ค.
๋ค์ ํ๊ฒฝ ๋ณ์๋ฅผ ์ค์ ํด์ผ ํฉ๋๋ค:
# ๋ค์ด๋ฒ ๋ด์ค API
NAVER_CLIENT_ID=your_naver_client_id
NAVER_CLIENT_SECRET=your_naver_client_secret
0 0 9 * * ?application.properties > news.scheduling.cron๋ค์ ํค์๋๋ก ๋ด์ค๋ฅผ ๊ฒ์ํฉ๋๋ค:
SUBSCRIPTION_INFO ์นดํ
๊ณ ๋ฆฌINFO_SHARE ์นดํ
๊ณ ๋ฆฌINFO_SHARE ์นดํ
๊ณ ๋ฆฌ (๊ธฐ๋ณธ๊ฐ)๊ด๋ฆฌ์๋ ๋ค์ API๋ฅผ ํตํด ์๋์ผ๋ก ๋ด์ค ํฌ๋กค๋ง์ ์คํํ ์ ์์ต๋๋ค:
POST /api/news/crawl
Authorization: Bearer {access_token}
๋ด์ค ํฌ์คํธ๋ jjsus0307@gmail.com ๊ณ์ ์ผ๋ก ์์ฑ๋ฉ๋๋ค.
ํด๋น ๊ณ์ ์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์กด์ฌํด์ผ ํฉ๋๋ค.
application.properties์์ ๋ค์ ์ค์ ์ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค:
# ๋ด์ค ํฌ๋กค๋ง ์ค์
news.api.max-results=10 # ํค์๋๋น ์ต๋ ๋ด์ค ์
news.api.delay-between-requests=1000 # API ์์ฒญ ๊ฐ ์ง์ฐ์๊ฐ(ms)
news.scheduling.enabled=true # ์๋ ์ค์ผ์ค๋ง ํ์ฑํ
news.scheduling.cron=0 0 9 * * ? # ํฌ๋ก ํํ์
news.scheduling.max-daily-posts=20 # ์ผ์ผ ์ต๋ ํฌ์คํธ ์
๋ค์ ๋ก๊ทธ๋ฅผ ํตํด ์คํ ์ํฉ์ ํ์ธํ ์ ์์ต๋๋ค:
INFO - ๋ถ๋์ฐ ๋ด์ค ํฌ๋กค๋ง ์์
INFO - ๋ด์ค ํฌ์คํธ ์์ฑ: [๋ด์ค ์ ๋ชฉ]
INFO - ๋ถ๋์ฐ ๋ด์ค ํฌ๋กค๋ง ์๋ฃ
ERROR - ๋ด์ค ํฌ๋กค๋ง ์ค ์ค๋ฅ ๋ฐ์ - ํค์๋: {keyword}