์ธ๋ถ ๋ฐ์ดํฐ ํฌ๋กค๋ง๊ณผ ๋ค๊ตญ์ด ์ฒ๋ฆฌ ์๋ํ 1. ๋ฐฐ๊ฒฝ — ์ธ๋ถ ์ฐ๋ ๋์ ํฌ๋กค๋ง ์ ํ์ ์ด์ REINDEERS ํ๋ซํผ์ ๊ฐ๊ตญ์ ํ์ค, ์ธ์ฆ, ๊ด์ธ ๋ฐ์ดํฐ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ํ ์ ๋ณด๋ฅผ ๊ตฌ์กฐํํด์ผ ํ๋ค. ๊ทธ๋ฌ๋ ๊ฐ ๊ธฐ๊ด์ ๊ณต๊ฐ API๋ ์กด์ฌํ์ง ์๊ฑฐ๋ ์ ๊ทผ์ด ์ ํ์ ์ด์๋ค. ํ๊ตญ TISI, ํ๊ตญ UNIPASS, ์ค๊ตญ GBํ์ค, ๋ง๋ ์ด์์ SIRIM ๋ฑ์ ๋ชจ๋ ์น ๊ธฐ๋ฐ HTML ๊ตฌ์กฐ๋ง ์ ๊ณตํ๋ค. ์ด์ ๋ฐ๋ผ API ์ฐ๋ ๋์ ํฌ๋กค๋ง ๊ตฌ์กฐ๋ฅผ ๋์
ํ๋ค. ํฌ๋กค๋ง์ ์ธ์ฆ/ํ์ค ๋ฐ์ดํฐ๋ฟ ์๋๋ผ ํ์จ๊ณผ ํด์ด ์ค์ผ์ค์๋ ์ ์ฉ๋์๋ค. ํ์จ์ 4๊ฐ ์ํ(๋ฐฉ์ฝ์ํ, ํ๋์ํ, ์ค๊ตญ์ํ, ๋ฉ์ด๋ฑ
ํฌ)์์ ๋งค์ผ ์์ง๋๋ฉฐ, ํด์ด ์ค์ผ์ค์ HMM, KMTC, SM Line ์ธ ๊ฐ ์ ์ฌ์์ ํฌ๋กค๋ง๋๋ค. ์ด ๋ชจ๋ ์ธ๋ถ ๋ฐ์ดํฐ๊ฐ ํ๋ซํผ์ ๊ฐ๊ฒฉ ๊ณ์ฐ, ๋ฌผ๋ฅ ์ผ์ , ์ธ์ฆ ๊ฒ์ฆ์ ๊ธฐ์ด๊ฐ ๋๋ค. 2. ๊ตญ๊ฐ๋ณ ์คํฌ๋ํผ ์ํคํ
์ฒ ํฌ๋กค๋ฌ๋ ๊ตญ๊ฐ๋ณ๋ก ๋
๋ฆฝ์ ์ธ ์ค์ ์ ๊ฐ์ง๋ค. ๊ฐ ํฌ๋กค๋ฌ๋ Cloud Function์์ ์ฃผ๊ธฐ์ ์ผ๋ก ํธ์ถ๋๋ฉฐ, ์์ง ์ฃผ๊ธฐ๋ ๋ฐ์ดํฐ์ ์ฑ๊ฒฉ์ ๋ฐ๋ผ ๋ค๋ฅด๋ค. ํ์จ ๋ฐ์ดํฐ๋ ๋งค์ผ 1ํ, ํด์ด ์ค์ผ์ค์ ์ 1ํ, ์ธ์ฆ ๋ฐ์ดํฐ๋ ์ฃผ 1ํ ์์ง๋๋ค. ์คํฌ๋ํผ๋ ๊ณ์ธต ๊ตฌ์กฐ๋ก ์ค๊ณ๋์ด ์๋ค. ์ต์์์ ๊ณตํต ์ธํฐํ์ด์ค(Scraper Layer)๊ฐ ์๊ณ , ๊ทธ ์๋์ ๊ตญ๊ฐ๋ณ ๊ตฌํ์ด ์กด์ฌํ๋ค. ๊ณตํต ์ธํฐํ์ด์ค๋ HTTP ์์ฒญ, ์๋ต ํ์ฑ, ๋ฐ์ดํฐ ์ ๊ทํ, ์๋ฌ ํธ๋ค๋ง์ ํ์ค์ ์ ์ํ๋ค. ๊ตญ๊ฐ๋ณ ๊ตฌํ์ ํด๋น ์ฌ์ดํธ์ HTML ๊ตฌ์กฐ์ ์ธ์ฆ ๋ฐฉ์์ ๋ง์ถฐ ๊ตฌ์ฒด์ ์ธ ํ์ฑ ๋ก์ง์ ๋ด๋นํ๋ค. # Scraper architecture example class BaseScraper: def fetch(self, url): ... def parse(self, html):...