โ Retrofit2? Retrofit์ Square์ฌ์์ ๋ง๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ์๋ฒ์ ํต์ ์ ํ๊ธฐ ์ํด HTTP API๋ฅผ ์๋ฐ๋ ์ฝํ๋ฆฐ์ ์ธํฐํ์ด์ค ํํ๋ก ๋ณํํด ์ฌ์ฉํ ์ ์๋๋ก ํด์ค๋ค. ์์ฆ์ ์๋๋ก์ด๋ ๊ฐ๋ฐ ์, ํต์ ๋ถ๋ถ์ ๋๋ถ๋ถ Retrofit ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ
์ด์ ์๋ ์๋๋ก์ด๋ ์ฝ๋๋จ์์ view์ ์ปดํฌ๋ํธ๋ค์ ๊ฐ์ฒด๋ก ๋ง๋ค์ด ์ฌ์ฉํ๊ณ ์ปจํธ๋กคํ๊ธฐ ์ํด์ findViewById() ๋ฉ์๋๋ฅผ ๋ง์ด ์ฌ์ฉํ์์ต๋๋ค.์ ์ฝ๋์ ๊ฐ์ด ๋ทฐ๋ฅผ ์ฐธ์กฐํ๊ธฐ ์ํด findViewById() ๋ฉ์๋๋ฅผ ์ด์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ช ๊ฐ์ง ๋ฌธ์ ๊ฐ ์์ต๋๋ค.์ปดํฌ๋
์๋๋ก์ด๋ ํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉด์ ๋ก์ปฌ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ธฐ ์ํด ์ด๋ค DB๋ฅผ ์ฌ์ฉํด์ผ ํ ์ง ๊ณ ๋ฏผ์ด ๋ง์์ต๋๋ค. ์๋๋ก์ด๋์์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ๋ฐฉ์์๋ ์ฌ๋ฌ๊ฐ์ง๊ฐ ์์ต๋๋ค. 1. SharedPreferences ์ ์ ์์ ์์ ๋ฐ์ดํฐ๋ฅผ (key, value) ํ
์์ฑ์๋ ๋ฉ์๋ ๋ฑ์ ํตํด ์ธ๋ถ๋ก๋ถํฐ ์์ฑ๋ ๊ฐ์ฒด๋ฅผ ์ ๋ฌ๋ฐ๋ ๊ฒ์ ๋งํฉ๋๋ค.ํด๋์ค๊ฐ ๊ฒฐํฉ๋๋ฅผ ๋์จํ๊ฒ ํฉ๋๋ค.์ธํฐํ์ด์ค ๊ธฐ๋ฐ์ผ๋ก ์ค๊ณ๋๋ฉฐ, ์ฝ๋๋ฅผ ์ ์ฐํ๊ฒ ํฉ๋๋ค.Stub ๋๋ Mock ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํด ๋จ์ํ ์คํธ์ ์ฉ์ดํฉ๋๋ค.mock์ด๋? ์ค์ ๊ฐ์ฒด๋ฅผ ๋ง๋ค์ด ์ฌ์ฉํ๊ธฐ์
์๋ฒ ์ฃผ์๋ API key๊ฐ๊ณผ ์ ๋ณด๋ค์ ํ์ ํ๋ ํ์์ด ์๋๋ฉด ๋ ธ์ถ๋์ด์ ์ ๋๋ ๋ฏผ๊ฐํ ์ ๋ณด์ ๋๋ค.๊ทธ๋ฌ๋ฏ๋ก ๊ทธ ๊ฐ์ ์์ค ์ฝ๋์ ๊ทธ๋๋ก ๋ ธ์ถ์ํค์ง ์๊ณ ์์ ํ๊ฒ ์จ๊ฒจ์ผ ํ ํ์๊ฐ ์์ต๋๋ค.์ฒ์ local.properties ํ์ผ์ ์ด๋ฉด SDK ๊ฒฝ๋ก๊ฐ ์ ํ์์ํ ๋ฐ ๊ทธ
์ด ๊ธ์ ์ฑ ์ํคํ ์ฒ ๊ฐ์ด๋์ ์ฐฐ์ค์ ์๋๋ก์ด๋ ๋ธ๋ก๊ทธ๋ฅผ ์ฐธ๊ณ ํด ๊ณต๋ถํ๊ณ ์ ๋ฆฌํ ๊ธ์ ๋๋ค.ํด๋ฆฐ ์ํคํ ์ฒ๋ ๋ก๋ฒํธ C.๋งํด์ด ์ ์ํ ์ํํธ์จ์ด ์ค๊ณ ๋ฐฉ์์ ๋๋ค. ๊ณ์ธต์ ๋๋์ด ๊ด์ฌ์ฌ๋ฅผ ๋ถ๋ฆฌํ๋ ๊ฒ์ด ๋ชฉํ์ด๊ณ , ์ด๋ฐ ์ํคํ ์ฒ๊ฐ ๋์ํ๊ธฐ ์ํด์๋ ์์กด์ฑ ๊ท์น์ ์ง์ผ์ผ ํ๋ค๊ณ
๊ฐ๋์ฉ(๊ฝค ์์ฃผ) ์๋๋ก์ด๋ ๋ค์ดํฐ๋ธ์์ ์น ์ปจํ ์ธ ๋ฅผ ๋์์ค์ผํ๋ ์ํฉ์ด ์์ต๋๋ค. ํฌ๋กฌ์ ์ด์ด ์นํ์ด์ง๋ก ์ด๋์ํฌ ์๋ ์๊ฒ ์ง๋ง, ์ํฉ์ ๋ฐ๋ผ ์ฑ์ ์ ํ ์์ด ์์ฐ์ค๋ฝ๊ฒ ์ฑ ๋ด์์ ์น ํ์ด์ง๋ฅผ ๋ณด์ฌ์ฃผ์ด์ผ ํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์๊ธฐ ๋๋ฌธ์ ๊ทธ๊ฐ ์น๋ทฐ๋ฅผ ์ฌ์ฉํ ์ผ์ด ๋ง์์ต๋
์น๋ทฐ๋ฅผ ๊ตฌํํ๋ค ๋ณด๋ฉด ๋จ์ํ ์น ํ์ด์ง๋ฅผ ๋์ฐ๋ ๊ฒ ์ธ์ ํต์ ํ๋ฉฐ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๋ ๋์๋ ํ์ํฉ๋๋ค. ๊ทธ๋ ๋ค๋ฉด ์น๋ทฐ์ ์ฑ์ ์ด๋ป๊ฒ ํต์ ํ๊ฒ ๋ ๊น์?์๋๋ก์ด๋์ ๋ค์ดํฐ๋ธ ์ฝ๋์ ์น ํ์ด์ง๋ ์๋ก ๋ถ๋ฆฌ๋ ํ๊ฒฝ์ด๊ธฐ ๋๋ฌธ์ ์ํธ๊ฐ์ ํต์ ์ ์ํ ์ฐ๊ฒฐ ๋ค๋ฆฌ๊ฐ ํ์ํ๋ฐ, ๋ธ๋ฆฟ