์ฝ๊ฒ ์ฒ์ํ๋ ํ์ด์ฌ ๊ณ ๊ธ ํฌ๋กค๋ง [Scrapy, Selenium, Headless Chrome]
๋ฐ์ดํฐ ๊ณผํ, ๋น ๋ฐ์ดํฐ, ํฌ๋กค๋ง์ ์ตํ๊ณ ์ ํ์๋ ๋ถ๋ค์ ์ํด - ํ์กดํ๋ ์ต์ , ์ต๊ณ ์ ํฌ๋กค๋ง ๊ธฐ์ ์ ๋ค์ํ ์์ ๋ก ๋น ๋ฅด๊ฒ ์ตํ ์ ์๋๋ก ๊พธ๋ช์ต๋๋ค.
์๊ฐ์ 866๋ช
๋์ด๋ ์ด๊ธ
์๊ฐ๊ธฐํ ๋ฌด์ ํ
์๋ ํ์ธ์. ์์ฌ๋ฏธ์ฝ๋ฉ Dave Lee ์ ๋๋ค.
FLUTTER ๊ฐ์ ์คํ๊ณผ ํจ๊ป, ๊ธฐ์กด ๊ฐ์๋ ์ ๋ฐ์ดํธ๋ฅผ ํ์ฌ, ๊ณต์ ๋ฅผ ๋๋ฆฝ๋๋ค. ํ๋ฒ ์๊ฐํ์๋ฉด ์ ๋ฐ์ดํธ๋ ๋ด์ฉ๊น์ง ๊ณ์ ์ธ์ ๋ ๋ค์ผ์ค ์ ์์ต๋๋ค.
ํ์ด์ฌ ์ ๋ฌธ๊ณผ ํฌ๋กค๋ง ๋ถํธ์บ ํ
๊ทธ๋์ ์ค์ ์ฌ์ดํธ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํฌ๋กค๋ง์ ํ๋ค๋ณด๋, ์ค์ ์ฌ์ดํธ๊ฐ ์์๋ก ๋ฌ๋ผ์ ธ์, ์ ๊ณตํด๋๋ฆฐ ์ฝ๋๊ฐ ์ ์๋์ํ์ง ์๋ ์ผ์ด์ค๊ฐ ์์๋๋ฐ์. ์ ๊ฐ ์ง์ ์ปจํธ๋กค ๊ฐ๋ฅํ ์ฌ์ดํธ๋ฅผ ๋ง๋ค์ด์, ์ด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํฌ๋กค๋ง ์ฐ์ต์ ํ์ค ์ ์๋๋ก ๊ฐ์๋ฅผ ์ ๋ฐ์ดํธํ์์ต๋๋ค.
๋ ์์ ์ ํ์ด์ฌ์ผ๋ก ๋ค๋ฃจ๋ ๊ธฐ๋ฅ๋ ๋ณด๋ค ์ ๋ฐ์ดํธํ์์ต๋๋ค.
๊ธฐ์กด ๋ณด๋ค๋ ์ ์ฒด์ ์ผ๋ก ์ด์ง ๋์ด๋๋ฅผ ๋ํ์, ์กฐ๊ธ๋ ๋ง์ ๊ธฐ๋ฅ์ ์ตํ์ค ์ ์๋๋ก ๊ตฌ์ฑํ์์ต๋๋ค.
SQL/DB(MySQL) ๊ธฐ๋ณธ๋ถํฐ ํ์ด์ฌ/๋ฐ์ดํฐ๋ถ์ ํ์ฉ๊น์ง!
์ต๊ทผ ์ทจ์ ๋ฑ์์ SQL ์ฝ๋ฉํ ์คํธ๊ฐ ์๋ ๊ฒฝ์ฐ๋ ์์ ์ ๋๋ก, SQL ์์ฑ ์ญ๋์ด ์ค์ํด์ง๊ณ ์์ต๋๋ค.
๊ทธ๋์, SQL ์ฐ์ต์ ํด๋ณผ ์ ์๋๋ก, ์ค์ ๋น์ฆ๋์ค์์ ์ฌ์ฉ๋์๋ sakila ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ง์ ์ ๊ฐ ๋ฐ์ดํฐ ๋ถ์์ฉ์ผ๋ก ์์งํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์, ์ด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ง๋ SQL ๋ฌธ์ ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก
๋ค์ํ SQL ์ฐ์ต์ ํ์ค ์ ์๋๋ก ๊ตฌ์ฑํ์์ต๋๋ค.
ํ์ด์ฌ ํฌ๋กค๋ง + pymysql ์ ๋ณด๋ค ๊ฐ๊ฒฐํ ํจํดํ๋ ์ฝ๋๋ก ๋น ๋ฅด๊ฒ ํ์ฉ ๊ฐ๋ฅํ ๋ก ์์ ์ ํจ๊ป ์ค๋ช ํ์์ต๋๋ค.
์๋ฌด์ชผ๋ก ๋ ๊ฐ์๊ฐ ๋ณด๋ค ์ข์ ๊ฐ์๋ก, ์ ๋ง ๋์์ด ๋๋ ์ธ์๊น์ ๊ฐ์๊ฐ ๋์์ผ๋ฉด ์ข๊ฒ ์ต๋๋ค.
์ถ๊ฐ๋ก, Mongodb ๊ฐ์๋ ๊ณง ์ ๋ฐ์ดํธํ ์์ ์ ๋๋ค. ์ ๋ฐ์ดํธ๊ฐ ์๋ฃ๋๋ฉด ๋ ๊ณต์ ๋๋ฆฌ๊ฒ ์ต๋๋ค.๊ฐ์ฌํฉ๋๋ค.
์๋ ํ์ธ์. ์์ฌ๋ฏธ์ฝ๋ฉ Dave Lee ์ ๋๋ค.
๋ค๋ฆ์ด ์๋๋ผ, ์ฒ์ํ๋ ํ์คํ์ ์ํ Flutter ๋ถํธ์บ ํ [ํ์คํ Part4] ๊ฐ์๊ฐ ์คํ๋์ด ๊ณต์ ๋ฅผ ๋๋ฆฝ๋๋ค.
๋ ๊ฐ๋ฅํ ์ต๋๋ก ๊ธฐ๊ฐ ํ ์ธ์ ์ ์ฉํด์, ๋ด์ฉ์ ๋๊ณ ๋๊ณ ๋ด๋ ๋ ์ ๋๋ก ํ๋ถํ์ง๋ง, ์ ๋ ดํ ๊ธ์ก์ผ๋ก ๋ณด์ค ์ ์๋๋ก ๋ง๋ค์์ต๋๋ค.Flutter ๋ ํ๋์ ์ฝ๋๋ก ์น, ์๋๋ก์ด๋, ์์ดํฐ, MACOS, WINDOWS, ์ฌ์ง์ด LINIX ์ฉ ์ฑ/ํ๋ก๊ทธ๋จ์ ๋ง๋ค ์ ์๋ ๊ธฐ์ ์ธ๋ฐ์. ๋ฌด์๋ณด๋ค ์์ฐ์ฑ์ด ๋๊ณ ์. ๊ตฌ๊ธ์ด ๋ง๋ค์ด์, ๋น ๋ฅด๊ฒ ์ ๋ฐ์ดํธ๋๊ณ ์๋ ๋งค์ฐ ๋งค๋ ฅ์ ์ธ ๊ธฐ์ ์ ๋๋ค. ์ด๋ฏธ ๊ตญ์ธ์์๋ React Native ๋ฅผ ๋์ด์ ์ง ์ค๋์ด๊ณ , ๊ตญ๋ด์๋ ํซํด์ง๊ณ ์๋ ๊ธฐ์ ์ธ๋ฐ์.
ํ๋ก ํธ์๋ ์ ๋ฌธ์ฑ์ ๊ฐ๋ฐํ๊ณ ์ ํ๋ ๊ฐ๋ฐ์๋ , ํ์คํ์ด ๋๊ณ ์ ํ๋ ๋ถ๋ค์ด๋ , ๋ฐฑ์๋ ๊ฐ๋ฐ์๋ก, ํ๋ก ํธ์๋ ๊ธฐ์ ์ ์ตํ์, ์๋์ด๊ธ ์์ผ๋ฅผ ๊ฐ์ง๊ณ ์ ํ์๋ ๋ถ๋ค๊ป๋ ๋์์ด ๋ ๊ฒ ๊ฐ๊ณ ์. ์ด์๊ท๋ชจ๋ก๋ ๊ทธ๋ด๋ฏํ ์๋น์ค๋ฅผ ๋ง๋ค๊ณ ์ ํ์๋ ๋ถ๋ค๊ป๋ ๋์์ด ๋ ๊ฒ ๊ฐ์ต๋๋ค.
์ฌ์ค ๋ ์จ์ ๋ป์ ์ด๋ป๊ฒ ํ๋ฉด, ๊ทธ๋ด๋ฏํ ์น, ์ฑ์ ํผ์์๋ ์คํ์ ํ ์ ์์๊น์์ด์. ๊ผญ ํผ์์ผ ํ์๋ ์์ง๋ง, ์ต์ ๊ธฐ์ ์ ์ ์ฉํ๋ค๋ฉด, ๋ ์ ์ ๋ฆฌ์์ค๋ก ์ ๋ฌธ์๋ผ ํด๋ ์ด๋ค ์ง๋ฆ๊ธธ์ด ๋ ์ ์๋ ๋ก๋๋งต์ด ์์๊น์๊ณ ์. ์ ๊ฐ ํ์ฉํด๋ณธ ๊ฒฐ๊ณผ๋ ์ ๋ง FANTASTIC ํฉ๋๋ค. ๊ฐ์ฅ ์ฌ์ด ํ์ด์ฌ์ผ๋ก ์์ํด์, FLASK ๋ฅผ ๊ฑฐ์ณ (๋ ์ฑ๋ฅ์ ๋์ด๋ ค๋ฉด, FLASK ์ดํด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ ์ฌํ FASTAPI ๋ฅผ ์ธ ์ ์๋ต๋๋ค), ์น ๊ธฐ๋ณธ(HTML/CSS/JS) ๋ก ๊ฐ์ ์ก๊ณ , ๋์ปค๋ฅผ ๊ฐ์ ธ์์ ์๋ฒ ์ด์ ํจ์จ์ ๊ทน๋ํํ ํ, ํ๋์ ์ฝ๋๋ก ํ๋ก ํธ์ค๋๋ฅผ FLUTTER ๋ก ๋ง๋ ๋ค๋ฉด!
์ฌ๊ธฐ์ chatGPT ๊น์ง ์ด๋ค๋ฉด, ๊ทธ๋ด๋ฏํ ์๋น์ค๋ฅผ ์ต์์ ๋ฆฌ์์ค๋ก ๋ง๋ค ์ ์๋๋ผ๊ณ ์. ๋ ๊ฒฝ์๋ ฅ ์์ผ๋ ค๋ฉด, AI ๊ฐ ๋ค์ด๊ฐ๋ฉด ์ข์ํ ๋ฐ, AI ๋ ๋ณ๋ ๋ฐ์ดํฐ ๋ก๋๋งต์ผ๋ก ๊ฐ์ ์ก์ผ์ค ์ ์๊ณ ์. chatGPT ์ ๋ฐ์ดํฐ๋ฅผ ์ถ๊ฐ(๋๋ ํ๋กฌํํธ ์์ง๋์ด๋ง์ ์ถ๊ฐํด์) ํด์ ํน์ ์์ญ์ ๊ฐํ ์๋น์ค๋ ๊ฐ๋ฅํฉ๋๋ค.
๋น ๋ฅด๊ฒ ๋ณํํ๋ FLUTTER ์ ๊ฐ์ฅ ์ต์ ๋ฒ์ ์ ๊ธฐ๋ฐ์ผ๋ก ๋ง๋ค์๊ณ , ๋ณธ ๊ฐ์ ์์ฒด๋ก๋ ๋ฐฑ์๋๊น์ง ๊ฐ๋ฅํ๋๋ก ๊ฐ์๋ฅผ ๊ตฌ์ฑํ๊ณ ์. ์์๋ค์ด ์ฐ์ต๋ฌธ์ ์ ๊ทธ๋ด๋ฏํ ์ค์ต๊ณผ ํ๋ก์ ํธ๋ก ๋น ๋ฅธ ํ์ต์ด ๊ฐ๋ฅํ๋๋ก ๊ตฌ์ฑํ์์ต๋๋ค.
๊ฐ์ธ์ ์ผ๋ก Flutter ๋ฅผ ๋ด ๊ธฐ์ ๋ก ๋ง๋๋๋ฐ ์๊ฐ๋ณด๋ค ๊ธธ์ ๋์๊ฐ์์ด์. ๋๋ฌด ๋ง์ ๊ธฐ๋ฅ์ด ์๋ค๋ณด๋, ๊ธธ์ ์๋ชป๋ค๋ฉด, ์๊ฐ์ ์๊ฐ๋๋ก ๊ฑธ๋ฆฌ๋ฉด์, ๊ฐ์ด ์ค์ง ์๋๋ผ๊ณ ์. ๋ณธ ๊ฐ์๋ ์ด๋ฌํ ๊ฒฝํ์ ๊ธฐ๋ฐ์ผ๋ก, ์งง์ ์๊ฐ์ Flutter ๋ฅผ ๋ด ๊ธฐ์ ๋ก ๋ง๋ค ์ ์๋๋ก, ์ ๊ฐ ๊ฐ์ด ์๋ ๊ฐ์ฅ ๋นจ๋๋ ํ์ต ๋ฐฉ์์ ๊ทธ๋๋ก ๋ น์ฌ๋ด์์ต๋๋ค. ๊ทธ๋์ ์งง์ ์๊ฐ์ Flutter ๋ฅผ ํ์ฉํ์ค ์ ์์ผ์ค ๊ฒ์ ๋๋ค.
์ฌ์ง์ด, chatGPT ๋ฅผ Flutter ์ ํ์ฉํ๋ ํ? ๋ ์ค๋ช ์ ๋๋ฆฌ๋๋ฐ์.chatGPT ๋ฅผ Flutter ๊ฐ๋ฐ์ ํ์ฉํ์๋ฉด, ๋ณธ ๊ฐ์์ ์ง์์ ๊ธฐ๋ฐ์ผ๋ก ๋น ๋ฅด๊ฒ Flutter ๋ฅผ ํ์ฉํ์ค ์ ์์ผ์ค ๊บผ์์.
๊ธ์ผ ์คํํ๊ณ , ์๋ฌด๋๋ ๋ด์ฉ์ด ๋ง๋ค๋ณด๋, ์ค์๊ฐ ์์ ์ ์๋๋ฐ์. ์ค์๊ฐ ์์ผ๋ฉด ์ด์ผ๊ธฐํด์ฃผ์๋ฉด, ๋ฐ๋ก ์์ ํ๊ฒ ์ต๋๋ค.
์๋ฌด์ชผ๋ก ๋์์ด ๋๋ ๊ฐ์๊ฐ ๋์์ผ๋ฉด ์ข๊ฒ ์ต๋๋ค.
๊ฐ์ฌํฉ๋๋ค.
์๋ ํ์ธ์. ์์ฌ๋ฏธ์ฝ๋ฉ Dave Lee ์ ๋๋ค.
๋ค๋ฆ์ด ์๋๋ผ, ์ฒ์ํ๋ ํ์คํ์ ์ํ Flutter ๋ถํธ์บ ํ [ํ์คํ Part4] ๊ฐ์๋ฅผ ์ธํ๋ฐ์ ์ ์ถํ์ฌ,
๊ณต์ ๋ฅผ ๋๋ฆฝ๋๋ค. ๊ฐ์ ์คํ์๋ ์ธํ๋ฐ์ธก์ ์ผ์ ์ ๋ฐ๋ผ, ์ผ์ ๊ธฐ๊ฐ์ด ๊ฑธ๋ฆด ๊ฒ ๊ฐ๊ณ ์.Flutter ๋ ํ๋์ ์ฝ๋๋ก ์น, ์๋๋ก์ด๋, ์์ดํฐ, MACOS, WINDOWS, ์ฌ์ง์ด LINIX ์ฉ ์ฑ/ํ๋ก๊ทธ๋จ์ ๋ง๋ค ์ ์๋ ๊ธฐ์ ์ธ๋ฐ์. ๋ฌด์๋ณด๋ค ์์ฐ์ฑ์ด ๋๊ณ ์. ๊ตฌ๊ธ์ด ๋ง๋ค์ด์, ๋น ๋ฅด๊ฒ ์ ๋ฐ์ดํธ๋๊ณ ์๋ ๋งค์ฐ ๋งค๋ ฅ์ ์ธ ๊ธฐ์ ์ ๋๋ค. ์ด๋ฏธ ๊ตญ์ธ์์๋ React Native ๋ฅผ ๋์ด์ ์ง ์ค๋์ด๊ณ , ๊ตญ๋ด์๋ ํซํด์ง๊ณ ์๋ ๊ธฐ์ ์ธ๋ฐ์.
ํ๋ก ํธ์๋ ์ ๋ฌธ์ฑ์ ๊ฐ๋ฐํ๊ณ ์ ํ๋ ๊ฐ๋ฐ์๋ , ํ์คํ์ด ๋๊ณ ์ ํ๋ ๋ถ๋ค์ด๋ , ๋ฐฑ์๋ ๊ฐ๋ฐ์๋ก, ํ๋ก ํธ์๋ ๊ธฐ์ ์ ์ตํ์, ์๋์ด๊ธ ์์ผ๋ฅผ ๊ฐ์ง๊ณ ์ ํ์๋ ๋ถ๋ค๊ป๋ ๋์์ด ๋ ๊ฒ ๊ฐ๊ณ ์. ์ด์๊ท๋ชจ๋ก๋ ๊ทธ๋ด๋ฏํ ์๋น์ค๋ฅผ ๋ง๋ค๊ณ ์ ํ์๋ ๋ถ๋ค๊ป๋ ๋์์ด ๋ ๊ฒ ๊ฐ์ต๋๋ค.
๊ฐ์ธ์ ์ผ๋ก Flutter ๋ฅผ ๋ด ๊ธฐ์ ๋ก ๋ง๋๋๋ฐ ์๊ฐ๋ณด๋ค ๊ธธ์ ๋์๊ฐ์์ด์. ๋๋ฌด ๋ง์ ๊ธฐ๋ฅ์ด ์๋ค๋ณด๋, ๊ธธ์ ์๋ชป๋ค๋ฉด, ์๊ฐ์ ์๊ฐ๋๋ก ๊ฑธ๋ฆฌ๋ฉด์, ๊ฐ์ด ์ค์ง ์๋๋ผ๊ณ ์. ๋ณธ ๊ฐ์๋ ์ด๋ฌํ ๊ฒฝํ์ ๊ธฐ๋ฐ์ผ๋ก, ์งง์ ์๊ฐ์ Flutter ๋ฅผ ๋ด ๊ธฐ์ ๋ก ๋ง๋ค ์ ์๋๋ก, ์ ๊ฐ ๊ฐ์ด ์๋ ๊ฐ์ฅ ๋นจ๋๋ ํ์ต ๋ฐฉ์์ ๊ทธ๋๋ก ๋ น์ฌ๋ด์์ต๋๋ค. ๊ทธ๋์ ์งง์ ์๊ฐ์ Flutter ๋ฅผ ํ์ฉํ์ค ์ ์์ผ์ค ๊ฒ์ ๋๋ค.
์ฌ์ง์ด, chatGPT ๋ฅผ Flutter ์ ํ์ฉํ๋ ํ? ๋ ์ค๋ช ์ ๋๋ฆฌ๋๋ฐ์. chatGPT ๋ฅผ Flutter ๊ฐ๋ฐ์ ํ์ฉํ์๋ฉด, ๋ณธ ๊ฐ์์ ์ง์์ ๊ธฐ๋ฐ์ผ๋ก ๋น ๋ฅด๊ฒ Flutter ๋ฅผ ํ์ฉํ์ค ์ ์์ผ์ค ๊บผ์์.
์๋ฌด์ชผ๋ก ๋นจ๋ฆฌ ์คํ๋๊ธธ ๋ฐ๋ผ๋ฉฐ, ์คํ๋๋ฉด ๋ฐ๋ก ์์์์ผ๋ก ๊ณต์ ๋๋ฆฌ๊ฒ ์ต๋๋ค.
๊ฐ์ฌํฉ๋๋ค.์๋ ํ์ธ์. ์์ฌ๋ฏธ์ฝ๋ฉ Dave Lee ์ ๋๋ค.
๊ทธ๋์ ์์ง๋ด์ จ๋์ง์. ๋ค๋ฆ์ด ์๋๋ผ, ๊ฐ๋ ์ ์๊ฒ ๊ฐ์ฌํ๊ฒ๋, ์ทจ์ ํ๋ค๋ ๋ฉ์ผ์ ์ฃผ์๋ ๋ถ๋ค์ด ๊ณ์ จ๋๋ฐ์. ๊ฐ๋ง ์๊ฐํ๋, ์ด๋ฐ ์ฌ๋ก๋ค์ ๊ณต์ ํด๋๋ฆฌ๋ฉด, ๊ฐ์๋ฅผ ๋ค์ผ์๋ ๋ถ๋ค๋ ์กฐ๊ธ๋ ๋๊ธฐ๋ถ์ฌ๋ ๋๊ณ , ์ ๋ณด๋ ๋์ง ์์๊น ํ๋ ์๊ฐ์ด ๋ค๋๋ผ๊ณ ์. ๋ฌผ๋ก , ๊ฐ ๋ฉ์ผ ๋ด์ฉ ์์ฒด๋ฅผ ๊ณต์ ํ ์๋ ์์ง๋ง, ๊ฐ๋ณ๊ฒ ํต์ฌ ๋ด์ฉ๋ง ๊ณต์ ๋๋ฆฝ๋๋ค.
IT๋ฅผ ์ตํ๋ฉด, ์ ๊ทผํ ์ ์๋ ๋ค์ํ ํฌ์ง์ ์ด ์๋๋ฐ์. ํ๋ฒ์ฏค ๊ณ ๋ คํด๋ณด๋ฉด ์ข์๋งํ ํฌ์ง์ ์ด ๋ฐ์ดํฐ ๋ถ์๊ฐ์์. ์ต๊ทผ์ ์กฐ๊ธ์ฉ ์ด ํฌ์ง์ ์ผ๋ก ์ทจ์ ํ์ จ๋ค๋ ๋ถ๋ค์ด ๋ง์์ง์ จ๋๋ผ๊ณ ์. ์์ ๋ถํฐ ์คํํธ์ ๋ค์ ๋ฐ์ดํฐ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์์ฌ๊ฒฐ์ ์ ํ๋ ค๊ณ ๋ ธ๋ ฅ์ ํ๋๋ฐ์. ์ด์ ๋ ๋ณดํธํ๋๊ณ ์๋ ๊ฒ ๊ฐ๊ณ ์. ๊ทธ๋ฌ๋ค๋ณด๋, ๋ค์ํ ๋ฐ์ดํฐ ๋ถ์์ด ํ์ํ๊ณ , ์ด๋ฅผ ์ํํ๋ ํฌ์ง์ ์ด ๋ฐ๋ก ๋ฐ์ดํฐ ๋ถ์๊ฐ์ ๋๋ค.
๋ฐ์ดํฐ ๋ถ์๊ฐ๋ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃจ๋ IT ๊ธฐ์ ์ ์ ์๊ณ ์์ด์ผ ํ๋๋ฐ์. ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋ค๋ฃจ๋ SQL์ด ํต์ฌ์ด๊ณ ์. ์ฌ๊ธฐ์ ํ์ด์ฌ ๊ธฐ๋ฐ ๋ฐ์ดํฐ ๋ถ์ ๊ธฐ์ , ๊ทธ๋ฆฌ๊ณ ์ถ๊ฐ๋ก ๋จธ์ ๋ฌ๋/๋ฅ๋ฌ๋์ ๋ํ ํต์ฌ ์ดํด ์ ๋๋ฉด ๊ธฐ์ ์ ์ธ ์ธก๋ฉด์์๋ ์ถฉ๋ถํฉ๋๋ค.
๊ทธ๋์ 5๋ง๋ถ์ ์๊ฐ์๋ถ๋ค์ ๋ต๋ค๋ณด๋, ํ๋ก๊ทธ๋๋ฐ๋ณด๋ค๋, ๋ฐ์ดํฐ์ชฝ ๊ธฐ์ ์ ์ ํธํ์๊ณ , ์ ์ตํ๊ฐ์๋ ๋ถ๋ค์ด ๊ณ์๋๋ผ๊ณ ์. ์ด๊ฒ ์ ์ฑ์ธ ๊ฒ ๊ฐ์์. ๋ชจ๋ IT ๊ธฐ์ ๋ก ๋ณด์ด๊ธด ํ์ง๋ง, ํ๋ก๊ทธ๋๋ฐ๊ณผ ๋ฐ์ดํฐ๋ ์กฐ๊ธ ๋ค๋ฅธ ์ฌ๊ณ ๋ฐฉ์์ด ํ์ํ๊ฑฐ๋ ์. ๋, ๋ฐ์ดํฐ ๋ถ์๊ฐ๋ IT ๊ธฐ์ ์ ๋งค๋ชฐ๋๊ธฐ ๋ณด๋ค๋, IT ๊ธฐ์ ๊ณผ ์ทจ์ ํ์๋ ๋น์ง๋์ค๋ฅผ ์ ์ดํดํด์ผ ํด์, ๋น์ง๋์ค์ IT ๊ธฐ์ ๋ชจ๋๋ฅผ ์๊ณ ํ ๋ถ๋ค๊ป๋ ๋งค์ฐ ์ข์ ํฌ์ง์ ์ ๋๋ค.
์ฌ์ค ๊ด๋ จ ๊ธฐ์ ์ IT ๊ธฐ์ ์ ๋งค๋ชฐ๋์ด์ผ ํ๋ ๊ฒ์ ์๋๋ผ์, ๊ผญ 6๊ฐ์ ํํ์ ๊ณผ์ ๊น์ง ๋ค์ด๊ฐ์ง ์๋๋ผ๋, ์ตํ ์ ์๊ณ ์. ๊ทธ๋ฐ ๊ณผ์ ์ ๋น์ ๊ณต์๋ก ์์ IT๋ฅผ ๋ชจ๋ฅธ๋ค๊ณ ๊ฐ์ ํ๊ณ , IT ๊ธฐ์ด๋ถํฐ ๋ฅ๋ฌ๋๊น์ง ์ตํ ์ ์๋๋ก ๋ง๋ ๊ฐ์์๋ฆฌ์ฆ๊ฐ ๋ค์ ๋ฐ์ดํฐ ๊ณผํ ๋ก๋๋งต์ด์์ด์.
https://www.inflearn.com/roadmaps/66
๋ฌผ๋ก ์ฌ๊ธฐ์ ํ๋ฅ ํต๊ณ ๊ด๋ จ ์ด๋ก ์ ์ถ๊ฐํด์ ์ตํ๋ฉด ์ข์ง๋ง, ์ค์ ํ์ ์ ์๊ฐํด๋ณด๋ฉด, ๊ผญ ํ์๊น์ง๋ ์๋ ๊ฒ ๊ฐ์์. (์ค์ ๋ก๋ SQL ์ ๊ฐ์ฅ ๋ง์ด ์จ์์. ์ถํ์ SQL ๋ฅผ ๋ค์ํ๊ฒ ์ฐ์ตํ ์ ์๋ SQL ์ฝ๋ฉ ํ ์คํธ(๊ฐ์ )๋ฅผ ์ถ๊ฐํ๋ ค ํ๊ณ ์์ด์)
์ด์จ๋ ์ด๋ฐ ๊ณผ์ ์ ํตํด, ์์ ๋น์ ๊ณต์๋ถ๋ค๋ IT๋ฅผ ์์ํ๋ฉด์, ๋ฐ์ดํฐ ๋ถ์๊ฐ๋ฅผ ์๊ฒ ๋๊ณ , ๊ฟ์ ํค์์, ์ทจ์ ํ์ จ๋ค, ๋๋ ์ด์งํ์ จ๋ค๋ ๋ฉ์ผ์ ๊ฐ๋ ๋ฐ๊ณ ์๊ณ ์. ๋ ๊ผญ ๋ฐ์ดํฐ ๋ถ์๊ฐ๊น์ง๋ ์๋๋๋ผ๋, ๋ฐ์ดํฐ๋ฅผ IT ๋ก ๋ค๋ฃฐ ์ ์์ผ๋ฉด, ์ด๋ค ์ผ์ ํ๋ , ์ฌ์ง์ด ์ฌ์ ์ ํ๋๋ผ๋, ๋ง๋ํ ๊ฒฝ์๋ ฅ์ ๊ฐ์ง ์ ์์ต๋๋ค. ์๋ง๋ ํฅํ 2~3๋ ํ์๋ ์ง๊ธ๋ณด๋ค ํจ์ฌ ๋ฐ์ดํฐ ๋ถ์๊ฐ์ ๊ฐ์น๊ฐ ์ปค์ง ๊ฒ ๊ฐ์์.
๋ง์ง๋ง์ผ๋ก ์ ๋ ์ต๊ทผ์๋ Flutter ๊ณผ์ ์ ์ค๋นํ๊ณ ์์ด์. ์ฝ๋๊ฐ ๊ฐ๊ฒฐํ๊ณ , ์๋๋ก์ด๋/iOS ๋ฟ๋ง ์๋๋ผ,์น/MAC/WINDOW์ฉ ํ๋ก๊ทธ๋จ์ ํ๋์ ์ฝ๋๋ก ๋ง๋ค ์ ์๋ ๊ธฐ์ ์ด๊ณ , ์ต๊ทผ์ ๋๋์ด ํซํด์ก๋๋ฐ์. ์๋ง 2๋ ์ ์ ์ ๊ฐ์๋ฅผ ๋ค์ผ์ จ๋ ๋ถ๋ค์ด๋ผ๋ฉด, ๊ทธ ๋๋ถํฐ, ์ ๊ฐ ์์ธํ์ด์ง์ Flutter ๋ฅผ ์ธ๊ธํ์๋ ๊ฒ์ ์์ค ๊ฒ ๊ฐ์์. (์ญ์ ๋๋์ด ํซํด์ก์ด์ ใ ใ ) 4์๋ง์ฆ์์ ์คํ ๊ณต์ ํ๋ฒ ๋๋ฆฌ๊ฒ ์ต๋๋ค.
์๋ฌด์ชผ๋ก ๋ณธ ๋ฉ์ผ์ด ๋์์ด ๋์์ผ๋ฉด ์ข๊ฒ ์ต๋๋ค.
๊ฐ์ฌํฉ๋๋ค.
์๋ ํ์ธ์. ์์ฌ๋ฏธ์ฝ๋ฉ Dave Lee ์ ๋๋ค.
์ฝ๊ฒ ์ฒ์ํ๋ ํ์ด์ฌ ๊ณ ๊ธ ํฌ๋กค๋ง ๊ฐ์๊ฐ ์ ๋ฐ์ดํธ๋์ด ๊ณต์ ๋๋ฆฝ๋๋ค.
์ต๊ทผ selenium ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์ ๋ฐ์ดํธ๋๋ฉด์, ๋ฉ์๋๋ช ์ ๋ณ๊ฒฝํ์์ต๋๋ค. ๋ฌผ๋ก ๋ฉ์๋๋ช ์ ๋ณ๊ฒฝํ๋๋ผ๋, ๊ธฐ์กด ๋ฉ์๋๋ ๋์ผํ๊ฒ ์ฌ์ฉํ ์ ์๋๋ก ํ๋ ๊ฒ์ด ์ผ๋ฐ์ ์ ๋๋ค. 'ํธํ์ฑ' ๋๋ฌธ์ธ๋ฐ์. ๊ทธ๋ฐ๋ฐ, selenium ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๊ฐ๋ฐํ? ์ ๊ธฐ์กด ๋ฉ์๋๋ฅผ ์์ ์ง์์ ํ์ง ์๋๋ก ํ์์ต๋๋ค. ์ด๋ ๊ฒ ๋๋ฉด, ๊ธฐ์กด์ selenium ์ ํ์ฉํ ์ฝ๋๋ค์ selenium ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฒ์ ์ ๋ฐ๋ผ, ๋์ ์ํ๋ ์ผ์ด์ค๊ฐ ๋ฐ์ํ ํ ๋ฐ, ํฐ ๊ฒฐ์ ์ธ ๋ฏํฉ๋๋ค.
์ด์ ํจ๊ป ์ฝ๋์ ์ํฅ์ ๋ฏธ์น์ง๋ ์์ง๋ง, ๋ณ๊ฒฝํ๋ ค๋ ์ฝ๋๊ฐ ๋ณด์ฌ์, ๋ค์๊ณผ ๊ฐ์ด ๋ ๊ฐ์ง ์ฌํญ์ ๋ณ๊ฒฝํ์์ต๋๋ค.
1. find_element_by_***() ๋ฉ์๋๋ฅผ ๋ชจ๋ find_element(By.***, ***) ์ ๊ฐ์ ํํ๋ก ๋ณ๊ฒฝ๋์์ต๋๋ค.
- ์: find_element_by_id('myid') --> find_element(By.ID, 'myid')
- By.ID ๋ฑ์ ์ ์ธํ๊ธฐ ์ํด์๋ ๋ค์ ์ถ๊ฐ ์ ์ธ๋ ํ์ํฉ๋๋ค.
from selenium.webdriver.common.by import By
2. selenium ์ด 4.x.x ์ด์์์, ์ฝ๋์ ์ํฅ์ ๋ฏธ์น์ง๋ ์์ง๋ง, ์ด๊ธฐ ์ค์ ์ฝ๋๋ ๋ณ๊ฒฝํ๋ ค๋ ๋ฏํฉ๋๋ค.
- ๊ธฐ์กด์๋ ๊ฒฝ๋ก๋ฅผ ์ง์ ์ธ์๋ก ๋ฃ์ด์ฃผ๋ฉด ๋์์ง๋ง (์: webdriver.Chrome(chromedriver))
- ์ดํ์๋ Service ๊ฐ์ฒด์ ๋ฃ์ด์ฃผ๋ ๋ฐฉํฅ์ผ๋ก ๋ณ๊ฒฝ๋ ๋ฏ ํฉ๋๋ค. (์: webdriver.Chrome(service=Service(chromedriver))
- ์ด๋ฅผ ์ํด, webdriver_manager ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ๋ณ๋ ์ค์น๊ฐ ํ์ํฉ๋๋ค.
์ด์์ ๋ณ๊ฒฝ์ด ์ฌ์ค์, ๋ฉ์๋๋ช ์ด ๋ณ๊ฒฝ๋ ๊ฒ์ผ ๋ฟ์ด์ง๋ง, ํต์ฌ ๋ฉ์๋๋ช ์ด ๋ณ๊ฒฝ๋์ด, ๊ด๋ จ ์ฝ๋ ๋ฐ ์๋ฃ๋ฅผ ๋ชจ๋ ์ ๋ฐ์ดํธํ์์ต๋๋ค. ๋ค์ ์ฑํฐ์ ์ฝ๋๋ฅผ ํฌํจํ ์๋ฃ๋ฅผ ๋ชจ๋ ์ ๋ฐ์ดํธํ์์ผ๋ฏ๋ก, ํ์ํ์ค ๋, ์๋ก ๋ค์ด๋ฐ์ผ์๋ฉด ์ข์ ๊ฒ ๊ฐ์ต๋๋ค.
- Selenium ๊ณผ Scrapy ํ๋ ์์ํฌ ํฐ ๊ทธ๋ฆผ๊ณผ ๋ชฉํ ์ดํดํ๊ธฐ
- ์ฐ์ต๋ฌธ์ ๋ก ํ์ด๋ณด๊ธฐ1 : Headless Chrome ๊ณผ Selenium ํฌ๋กค๋ง
- XPATH ํฐ ๊ทธ๋ฆผ์ผ๋ก ์ดํดํ๊ธฐ
- ์ฐ์ต๋ฌธ์ ๋ก ํ์ด๋ณด๋ฉฐ ์ดํดํ๋ XPATH ํ์ฉ
- Selenium ์ ํ์ฉํ ๋ฉํฐ ํ์ด์ง ํฌ๋กค๋ง
- Scrapy ๋ค์ํ ์ฌ์ฉ๋ฒ: Selenium ๊ณผ Scrapy ์กฐํฉํด์, ๋์ ์นํ์ด์ง ํฌ๋กค๋งํ๊ธฐ
์ ๋ ์ค๋ ๊ธํ ์๊ฒ ๋์ด, ๊ธํ ์์ ํ์๋๋ฐ์. ์๋ฌด์ชผ๋ก ์งํ์ ์ด์๋ ์์ผ์ จ์ผ๋ฉด ์ข๊ฒ ์ต๋๋ค.
๊ฐ์ฌํฉ๋๋ค.
์๋ ํ์ธ์. ์์ฌ๋ฏธ์ฝ๋ฉ Dave Lee ์ ๋๋ค.
๋ค๋ฆ ์๋๋ผ, ๋ฅ๋ฌ๋๊ณผ flutter ๊ฐ์ ์คํ ์ผ์ ์ด ์ฐ๊ธฐ๋์ด, ๊ณต์ ๋ฅผ ๋๋ฆฝ๋๋ค.๋ณธ๋ ๋ฅ๋ฌ๋๊ณผ flutter ๊ฐ์๋ ์๋ฐ๊ธฐ๊น์ง ์คํํ ๊ณํ์ด์๋๋ฐ์.
์ฐ์ ๋ฅ๋ฌ๋ ๊ฐ์๋ฅผ ์ค๋น ์ค์ด์ง๋ง, ๊ธฐ๊ฐ์ด ์กฐ๊ธ ์ฐ๊ธฐ๋ ๊ฒ ๊ฐ์ต๋๋ค.
๋ฌธ์์ฃผ์ ๋ถ๋ค์ด ๋ง์๋๋ฐ, ์ฃ์กํฉ๋๋ค.์ฃผ๋ง๊น์ง ์๊ฐ์ ๋ชจ๋ ๋ด์ด, ์ค๋น๋ฅผ ํ๊ณ ์์ง๋ง,
๊ฐ์ ์๊ฐ ๋ง์์ ธ์, ์ด์์ธก๋ฉด์์๋ ์๊ฐ์ด ๋ง์ด ๋ค๊ณ ,
๋ค๋ฅธ ์ ๋ฌด์๋ ๋ณํํ๋ค๋ณด๋, ๋ฌด๋ฆฌ๊ฐ ์กฐ๊ธ ์๊ธฐ๋ ๊ฒ ๊ฐ์ต๋๋ค.์ต๋ํ ๋น ๋ฅด๊ฒ, ๋ฅ๋ฌ๋, flutter ๊ฐ์ ์์ผ๋ก ํ๋ฐ๊ธฐ์ ์์ฐจ์ ์ผ๋ก ์คํํ๊ฒ ์ต๋๋ค.
์งง์ ์๊ฐ์ ๋ฅ๋ฌ๋ ๊ธฐ๋ณธ ๊ธฐ์ ์ ์ฝ๊ฒ ์ฝ๋๋ ๋ฒจ๊น์ง ์ ๋ฆฌ ๋ฐ ํ์ฉํ ์ ์๋ ๊ฐ์๊ฐ ๋ง์ด ์์ด์, ๊ด๋ จ ๋ถ๋ถ์ ์ค๋นํ๊ณ ์๊ณ ์.
flutter ๋ 3.0 ์ด ๋๋ฉด์ ์ด์ ๋๋์ด ์์ํ stable ์ํ๊ฐ ๋๊ฐ๊ณ ์์ต๋๋ค.์ต์ข ์ ์ผ๋ก flutter ๊น์ง ๋๋ฉด, ๋ฐ์ดํฐ์ชฝ ๊ธฐ์ ๊น์ง ์ฎ์ด์,
์๋นํ ์ฌ๋ฏธ์๋ ๋ฐ์ดํฐ ํ์คํ ์๋น์ค ๊ฐ๋ฐ๋ ๊ฐ๋ฅํ ๊ฒ์ ๋๋ค.์๋ฌด์ชผ๋ก ์ข๋ ์ข์ ๊ฐ์๋ก ๋ง๋ค์ด์, ๋์์ด ๋ ์ ์๋๋ก ํ๊ฒ ์ต๋๋ค.
๊ฐ์ฌํฉ๋๋ค.Dave Lee ๋๋ฆผ







