๐ ๊นํ๋ธ : Sriracha Pedia (GitHub)
๐ ํ๋ก์ ํธ ์์ฐ์์ : Sriracha Pedia ์์ฐ (YouTube)
ํ๋ก์ ํธ ์ฃผ์ : ์ํ ์๊ฐ ์ฌ์ดํธ (์์ฐจํผ๋์ ํด๋ก ์ฝ๋ฉ)
์ฐธ์ฌ ์ธ์ : 7์ธ
๊ฐ๋ฐ ๊ธฐ๊ฐ : 10/26 ~ 11/17
์ฌ์ฉ ๊ธฐ์ : โ
๋ด๊ฐ ๋งก์ ์ญํ : โ
์ฐ๋ฆฌ ํ๋ก์ ํธ์ ๊ฐ์ฅ ์ค์ํ ๋ถ๋ถ์ด๋ผ๊ณ ๋ณผ ์ ์๋ค.
Time Table์ ๋ณด๋ฉด ์ ์ ์๊ฒ ์ง๋ง ํ๋ก ํธ ์์
์ ์ด๋์ ๋ ๋ง๋ฌด๋ฆฌ ํ ๋์ฏค ๋ฐ๋ก Rest API์ ๋ํด ๊ณต๋ถ๋ฅผ ์์ํ๋ค.
์ฒ์ ์ ํด๋ณด๋ ๊ฑฐ๋ผ ํ ์ ์์๊น? ๋ผ๋ ์๊ฐ์ด ๋ค์์ง๋ง ๋ง์ ์ฌ์ฉํด๋ณด๋๊น ๊ทธ๋ฆฌ ์ด๋ ต์ง ์์๋ค.
์ฐ๋ฆฐ TMDB๊ฐ ์ ๊ณตํ๋ ์ํ API๋ฅผ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ TMDB์์ ๋ฐ์ดํฐ๋ฅผ ์ด๋ป๊ฒ ์ ๊ณตํ๋ฉฐ, ์ ๊ณตํ๋ ๋ฐ์ดํฐ๋ฅผ ์ฐ๋ฆฌ๊ฐ ์ด๋ป๊ฒ ๊ฐ์ ธ์๊ณ , ๋ ์ด๋ป๊ฒ ์ฌ์ฉํ๋์ง ์ดํด๋ณด๋๋ก ํ์!
tmdb api ๋งํฌ : The Movie Database API
๊ฐ์ฅ ๋จผ์ tmdb ์ฌ์ดํธ์์ ๋ก๊ทธ์ธ ํ api key๋ฅผ ๋ฐ๊ธ ๋ฐ์์ผ ํ๋ค.
api key๋ฅผ ๋ฐ๊ธ ๋ฐ์๋ค๋ฉด ์ ๋งํฌ์์ ์ํ๋ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์์ฌ ์ ์๋๋ฐ, tmdb์์ ์ด๋ป๊ฒ ๊ฐ์ ธ์์ผ ํ๋์ง ๊ฐ๋ตํ๊ฒ ์์๋ณด์.
api ๋งํฌ์ ๋ค์ด๊ฐ๋ฉด ์ข์ธก ํญ์ MOVIES๊ฐ ์๋ค.
๊ทธ ์ธ์ CREDITS, GENRES ๋ฑ ๊ฐ๋ฐ์ ํ์ํ ์๋ฃ๋ค์ด ์๋ค.
๊ทธ๋ผ ์ธ๊ธฐ์ํ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์๋ณด์.
์ ์ฌ์ง๊ณผ ๊ฐ์ด MOVIES์ Get Popularํญ์ ๋ค์ด๊ฐ๋ฉด
Definition , Try it out ํญ์ด ์๋ค.
Try it out ํญ์์ Query String์ ๋ณด๋ฉด required , optional์ด ์๋ ๊ฑธ ๋ณผ ์ ์๋๋ฐ, required๋ ์ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ ๋ ๋ฐ๋์ ์๊ตฌ๋๋ ๊ฐ์ด๊ณ , optional์ language , page๋ฑ ์ฌ์ฉ์๊ฐ ์ํ๋๋๋ก ์
๋ ฅํ๋ฉด ๋๋ค.
๋ชจ๋ ์
๋ ฅํ๋ฉด ์๋ SEND REQUEST์ ์์ฒญ url์ ์ค๋ค.
์ ๊ณต๋ url๋ก ์์ฒญ์ ํด๋ณด๋๋ก ํ์.
์์ ๊ฐ์ด JSON๋ฐ์ดํฐ๋ฅผ ํ๊ฐ๋ ๋ฐ์ ์ ์๋ค. ์ด์ ์ด๊ฑธ parsingํด์ ์ฌ์ฉํ๊ธฐ๋ง ํ๋ฉด ๋๋ค!
java์์ url ์์ฒญ ๋ฐ ๋ฐ์ json ๋ฐ์ดํฐ ์ฌ์ฉํ๊ธฐ
์ ๋ ์ฝ๋๋ ์ด์ด์ง๋ ์ฝ๋์ด๋ค. (๊ธธ์ด ๊ด๊ณ์ ๋๊ฐ๋ก ๋๋ ์ฌ๋ ธ๋ค.)
์ฝ๋๋ฅผ ๊ฐ๋จํ๊ฒ ์ค๋ช ํ์๋ฉด ์๋ฐ์์ UrlConnection์ ๋งบ์ ํ url์์ฒญ์ ๋ณด๋ด ๋ฐ์ json๋ฐ์ดํฐ๋ฅผ ์คํธ๋ฆผ์ผ๋ก ๊ฐ์ ธ์์ ํ์ฑ ํ ๋ชจ๋ HashMap์ ๋ด๊ณ , ๊ทธ HashMap๋ค์ ๋ค์ List์ ๋ด์ ๊ทธ List๋ฅผ ๋ฐํํ๋ ๋ฉ์๋์ด๋ค.
์ด์ ๊ทธ List(์ธ๊ธฐ์ํ๊ฐ ๋ชจ๋ ๋ค์ด์๋)๋ฅผ ์ฌ์ฉํ๋ ๋ฉ์๋๋ฅผ ์ดํด๋ณด์.
์ด๋ ๊ฒ tmdb api์์ ๊ฐ์ ธ์จ ์ํ ๋ฐ์ดํฐ๋ฅผ ์ฐ๋ฆฌ DB์ Movie ํ ์ด๋ธ์ ๋ชจ๋ ๋ฃ๋๊ฑธ ์ฑ๊ณตํ๋ค.
ํ ์ด๋ธ์ ์ด๋ ๊ฒ ๋ฐ์ดํฐ๊ฐ ์ ๋ ฅ๋๋ค.
์ด ๋ฐ์ดํฐ๋ค์ ์ด์ view๋ก ๊ฐ์ ธ์ค๊ธฐ๋ง ํ๋ฉด ๋๋ค!
๊ฐ์ ธ์จ ๋ฐ์ดํฐ๋ฅผ view์ ์ ์ฉํ ๋ชจ์ต โ
์ํ contents (detail) ํ์ด์ง๊ฐ ์์ฒญ๋ง๋ค DB์ฐ๊ฒฐ์ ๋๋ฌด ๋ง์ด ํ๋ค๋ณด๋ ๋๋ฌด ๋ฌด๊ฑฐ์์์ธ์ง ๊ฐ๋ ์์ฒญ์์ ํ์ด์ง๊ฐ ์ผ์ด๋ฒ๋ ธ๋ค. (์ฝ 20์ด์ ๋์ ๋ก๋ฉ ํ ํ์ด์ง ์ด๋ฆผ ํ์)
์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด contents ํ์ด์ง์ ๊ฑฐ์ ๋๋ถ๋ถ์ ๊ธฐ๋ฅ์ ajax๋ก ๊ตฌํํ์ฌ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ค.
๋ฐํ ์ดํ์ ์๋๊ณ ์์ ๊ฐ์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ฌ ์ดํ๋์ contents ํ์ด์ง์ ๋๋ถ๋ถ์ ๊ธฐ๋ฅ์ ajax๋ก ๋ฐ๊ฟ์ผ ํ์๋๋ฐ, ๋๋ถ์ ajax๋ฅผ ์์ฃผ ์ ๋๋ก ๋ง์ ธ๋ดค๊ธฐ ๋๋ฌธ์ ๋๋ฆ ์ข์ ์๊ฐ์ด์๋ค.
ํ๋ก์ ํธ๋ฅผ ํ๋ฉฐ ์ ๋ง ๋ง์ด ์ฑ์ฅํ ๊ฑธ ๋๊ผ๋ค. ๋ถ๊ณผ 3์ฃผ์ ์งง์ ์๊ฐ์ธ๋ฐ ์์ฒญ ๋ง์ด ๊ณ ๋ฏผํ๊ณ ๋ถ๋ชํ๊ณ .. ์ ๋ฐฐ ๊ฐ๋ฐ์๋ค์ด ์ฑ์ฅํ๋ ค๋ฉด ์ผ๋จ ํ๋ก์ ํธ๋ถํฐ ํ๋ผ๊ณ ํ๋ ์ด์ ๋ฅผ ์๊ฒ ๋ ๊ฒ ๊ฐ๋ค.
rest api๋ฅผ ์ฒ์ ์ฌ์ฉ ํ ๋ ์ ๋ง ๋ง๋งํ๋๋ฐ, ํ๋ฒ ์ฑ๊ณตํ๋ ์์ ๊ฐ์ด ์๊ฒผ๋ค.
๋ค์ ํ๋ก์ ํธ๋ rest api๋ฅผ ์ฌ์ฉํด์ ์ด๋ ํ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๋ ๊ธฐ๋ฅ์ ๋ฃ์ ๊ธฐํ๊ฐ ์ค๋ฉด ์ข๊ฒ ๋ค๊ณ ์๊ฐํ๋ค.
์กฐ๊ธ ํ๋ค๊ธฐ๋ ํ์ง๋ง ์ ๋ฐ์ ์ผ๋ก ๋๋ฌด๋๋ฌด ํ๋ณตํ ์๊ฐ์ด์๋ค. ํ์๋ค๊ณผ ๋งค์ผ๋งค์ผ ๋ง๋์ ๋จธ๋ฆฌ๋ฅผ ์ธ๋งค๊ณ ๊ณ ๋ฏผํ๊ณ ์๊ฐํ๊ณ ๋์๊ฐ๋๊ฒ ๋๋ฌด ์ฌ๋ฐ์๋ค.