์ด๋ณด ํ๋ก๊ทธ๋๋จธ๊ฐ ์ผ์๋ฆฌ๋ฅผ ์ฐพ๊ธฐ ์์ํ ๋ ๊ทธ๋ ์ข
์ข
๋น ๋ฒฝ์ ๋ง์ฃผํ๊ฒ ๋๋๋ฐ, ๊ทธ ๋ฒฝ์ ๋๊ตฐ๊ฐ๊ฐ ์์ ๊ฐ ์๊ฒ "์ฐ๋ฆฌ๋ ๊ฒฝํ์ด ์๋ ์ ๋ฌธ๊ฐ๊ฐ ํ์ํฉ๋๋ค."๋ผ๊ณ ์ผ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ... ์ด์ ์ด๋กํ์ง? ์ฐ๋ฆฌ๋ "๊ฒฝํ์ ์ป์ผ๋ ค๋ฉด ๊ฒฝํ์ด ํ์ํ๋ค"๋ ์ํฉ์ ์ฒํด ์์ต๋๊น? ๊ทธ๋งํด ์ฌ๊ธฐ ๋ค์ด์ค๋ ์ฌ๋ฌ๋ถ?...
์ค์ ๋ก ์ด ์ฌ๊ท์์ ๋ฒ์ด๋๋ ๋ฐฉ๋ฒ์๋ ์ฌ๋ฌ ๊ฐ์ง๊ฐ ์์ต๋๋ค. ํ์ฌ์์ ์ธํด์ญ์ ๊ตฌํ๊ฑฐ๋(๋ํ๋ณด๋ค ๊ฐ๊ธฐ๊ฐ ๋ ์ด๋ ต์ต๋๋ค), ์๋น๋ก ์ธํด์ญ์ ํ๊ฑฐ๋(์: JavaRush
์จ๋ผ์ธ ์ธํด์ญ ) ์ด๋ณด์์๊ฒ ์ ํฉํ ์คํ ์์ค ํ๋ก์ ํธ๋ฅผ ์ฐพ์ ์ ์์ต๋๋ค. ๊ทธ๊ฑด ๊ทธ๋ ๊ณ , ๊ฒฝํ์ด ๋ง์ ๊ฐ๋ฐ์๋ ๋์ผํ ์์
์ ์ํํ๋ฉฐ, ๊ฐค๋ฆฌ์ ์ ๋ํ ์ผ์์ ์ธ ์์
์ผ๋ก ์ธํด ์ด๋ฏธ ์ฐ์์ ์์ต๋๋ค. ๊ทธ๋ค์ Java๋ก ๋ ์ง์งํ GitHub ํ๋ก์ ํธ๋ฅผ ์ฐพ๊ณ ๊ธด์ฅ์ ํ๊ธฐ ์ํด ์์
ํฉ๋๋ค. ๋๋ก๋ ๋๊ท๋ชจ Java ์คํ ์์ค ํ๋ก์ ํธ๊ฐ ์ผ๋ง๋ ์๋ํ๋์ง ํ์ธํ๊ณ ์ฝ๋๋ฅผ ์์ธํ ์ดํด๋ณด๋ ๊ฒ์ด ๋งค์ฐ ์ ์ฉํฉ๋๋ค. ์ด
๊ธฐ์ฌ ์์ Jane Elizabeth(JAXenter.com ๋ณด์กฐ ํธ์ง์)๋ GitHub์์ ๊ฐ์ฅ ์ธ๊ธฐ ์๋ 5๊ฐ์ง Java ํ๋ก์ ํธ๋ฅผ ์ดํด๋ด
๋๋ค. ์ค์ ๋ก ์ด ๋ฆฌ์์ค์๋ ์์ฒญ๋ ์์ Java ํ๋ก์ ํธ(์ ํํ 744,000๊ฐ)๊ฐ ํฌํจ๋์ด ์์ต๋๋ค. ํ์ง๋ง ์ ๋ฌธ ๊ฐ๋ฐ์์๊ฒ๋ ์ด๋ค ๊ฒ์ด ๊ฐ์ฅ ํฅ๋ฏธ๋ก์ด๊ฐ์?
์ด ์ด๋ฆ์ ๊ธฐ์ตํ๊ธฐ ์ฝ์ต๋๋ค. Mockito๋ ์ ๋ช
ํ ๋ฏผํธ ๋ผ์ ์นตํ
์ผ์ฒ๋ผ ๋ค๋ฆฝ๋๋ค. ๊ทธ๋ฌ๋ ์ด Java ์คํ ์์ค ํ๋ก์ ํธ๋ Java๋ก ์์ฑ๋ ๋จ์ ํ
์คํธ๋ฅผ ์ํ ๊ฐ์ฅ ๋๋ฆฌ ์ฌ์ฉ๋๋ ์๋ฎฌ๋ ์ด์
ํ๋ ์์ํฌ์
๋๋ค.
Mockito๋ Shipkit ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ง์์ ์ผ๋ก ๊ฐ๋ฐ๋๊ณ ์์ต๋๋ค . Mockito 2.0์ ๋จ์ ํ
์คํธ๋ฅผ ์์ฑํ๋ ์ฌ์ฉ์๊ฐ ์๋๋ผ ์ฌ์ฉ์ ์ ์ ๋
ผ๋ฆฌ์์ Mockito๋ฅผ ํ์ฅํ๊ฑฐ๋ ๋ํํด์ผ ํ๋ ๋ค๋ฅธ ํ
์คํธ ์ ํธ๋ฆฌํฐ ๋ฐ ์๋ฎฌ๋ ์ด์
ํ๋ ์์ํฌ๋ฅผ ๋์์ผ๋ก ํฅ์๋ ํ๋ ์์ํฌ ํตํฉ์ ์ํ ํฅ์๋ API๋ฅผ ์ ๊ณตํฉ๋๋ค.
์ด Java ์คํ ์์ค ํ๋ก์ ํธ๋ ์ด๋ฆ์ ๊ฑธ๋ง๊ฒ java-design-patterns๋ฅผ ํตํด ๊ฐ๋ฐ์์๊ฒ Java ์ธ์ด๋ก ๋์์ธ ํจํด์ ๊ตฌํํ ์ ์๋ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค. ํนํ, ๋์์ธ ํจํด์ ๊ฐ๋ฐ์๊ฐ ์ ํ๋ฆฌ์ผ์ด์
์ด๋ ์์คํ
์ ๋์์ธํ ๋ ์ผ๋ฐ์ ์ธ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๋๋ก ๊ณต์ํ๋ ๊ถ์ฅ ์ฌ๋ก์
๋๋ค. ํ
์คํธ๋๊ณ ์
์ฆ๋ ํ๋ก๊ทธ๋๋ฐ ํจ๋ฌ๋ค์์ ํตํด ๊ฐ๋ฐ ํ๋ก์ธ์ค ์๋๋ฅผ ๋์
๋๋ค. ๋ํ ํจํด์ ์ฌ์ฌ์ฉํ๋ฉด ์ฌ์ํ ๋ถ์ ํ์ฑ์ด ๋์ค์ ๋ ํฐ ๋ฌธ์ ๋ก ์ปค์ง๋ ๊ฒ์ ๋ฐฉ์งํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค.
3.RxJava _
RxJava๋ GitHub์์ ๊ฐ์ฅ ์ธ๊ธฐ ์๋ Java ๋ฆฌํฌ์งํ ๋ฆฌ ์ค ํ๋์ด์
๋๋ฆฌ ์ฌ์ฉ๋๋ ํ๋ ์์ํฌ ์
๋๋ค . ReactiveX API๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋ RxJava ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ฉด JVM(Java Virtual Machine)์ ๋ํด ๊ด์ฐฐ ๊ฐ๋ฅํ ์ํ์ค๋ฅผ ์ฌ์ฉํ์ฌ ๋น๋๊ธฐ์ ๋ฐ ์ด๋ฒคํธ ์ค์ฌ ํ๋ก๊ทธ๋จ์ ๋ง๋ค ์ ์์ต๋๋ค. RxJava๋ Observer ํจํด์ ํ์ฅํ์ฌ ๋ฐ์ดํฐ ๋ฐ ์ด๋ฒคํธ ์ํ์ค๋ฅผ ์ง์ํฉ๋๋ค. ๋ํ ๊ฐ๋ฐ์๊ฐ ํ์ ์์ค ๋ณ๋ ฌํ, ์ค๋ ๋ฉ, ๋๊ธฐํ, ์ค๋ ๋ ์์ ์ฑ ๋ฐ ๋ณ๋ ฌ ๋ฐ์ดํฐ ๊ตฌ์กฐ์ ๊ฐ์ ์ฌํญ์ ๋ํด ๊ฑฑ์ ํ ํ์ ์์ด ์ค๋ช
๋จ๊ณ์์ ์ํ์ค๋ฅผ ๊ฒฐํฉํ ์ ์๋๋ก ํ๋ ์ฐ์ฐ์๋ฅผ ์ถ๊ฐํฉ๋๋ค.
4.MpAndroidChart _
MPAndroidChart๋ API ๋ ๋ฒจ 8 ๋ฐ ์ต์ ๋ฒ์ ์์ ์คํ๋๋ Android ์ด์ ์ฒด์ ๊ฐ๋ฐ์ ์ํ ๊ฐ๋ ฅํ๊ณ ์ฌ์ฉํ๊ธฐ ์ฌ์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ์
๋๋ค. MPAndroidChart๋ฅผ ์ฌ์ฉํ๋ฉด Android ์ ํ๋ฆฌ์ผ์ด์
์์ ๋ค์ํ ์ฐจํธ๋ฅผ ๊ทธ๋ฆด ์ ์์ต๋๋ค. ๋ชจ๋ฐ์ผ ์ ํ๋ฆฌ์ผ์ด์
๊ฐ๋ฐ์๋ฅผ ์ํ ๋ฐ์ดํฐ ์๊ฐํ ์ ํธ๋ฆฌํฐ๋ก ๊ฐ์ฃผ๋ ์ ์์ต๋๋ค. MPAndroidChart์๋ ๊บพ์์ ํ ์ฐจํธ, ํ์คํ ๊ทธ๋จ(์ธ๋ก, ๊ฐ๋ก, ๋์ , ๊ทธ๋ฃนํ), ์ํ ์ฐจํธ, ๋ถ์ฐํ ์ฐจํธ, ์ด๋ํ ์ฐจํธ(๊ธ์ต ๋ฐ์ดํฐ์ฉ), ๋ฐฉ์ฌํ ์ฐจํธ(์คํ์ด๋ ์ฐจํธ), ์ํ ์ฐจํธ ๋ฐ ์ด๋ค์ ๋ค์ํ ์กฐํฉ ๋ฑ ๋ค์ํ ์ฐจํธ๊ฐ ์์ต๋๋ค. . (โ๋ค์ด์ด๊ทธ๋จโ์ด๋ผ๋ ๋จ์ด ์์ฒด๋ ๋ถ๋ฆฌ๋๋ฉด ๋ชจ๋ ์๋ฏธ๋ฅผ ์์ต๋๋ค.)
Java ์ธ์ด๋ฅผ ์ํ ์ด ๋ฐ์ด๋ Google ํต์ฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์์ฃผ ์ค๋ซ๋์ ์ฌ์ฉ๋์ด ์์ง๋ง ๋ชจ๋ ์ข
๋ฅ์ ๊ฐ๋ฐ์์๊ฒ ๋งค์ฐ ํธ๋ฆฌํ ์คํ ์์ค ์ ํธ๋ฆฌํฐ๋ก ๋จ์ ์์ต๋๋ค. ์ฌ๊ธฐ์๋
๋ง์ ์๊ฐ์ด ์ ์ฝ๋๊ณ Java ์ธ์ด๋ฅผ ๋ ์ฝ๊ฒ ์ฌ์ฉํ ์ ์๊ฒ ํด์ฃผ๋ ๊ฐ๋จํ ์ ํธ๋ฆฌํฐ, JDK ์ปฌ๋ ์
์ํ๊ณ ํ์ฅ, ์บ์, ํจ์ํ ํ๋ก๊ทธ๋๋ฐ ๊ด์ฉ๊ตฌ ๋ฑ๊ณผ ๊ฐ์ ๊ธฐํ ์ ํธ๋ฆฌํฐ๊ฐ ํฌํจ๋์ด ์์ต๋๋ค. ํนํ Google Guava๋ ์ ๋ ฌ๋ ์ปฌ๋ ์
์์
์ ์ ํฉํฉ๋๋ค. ๊ฐ๋ฐ์๊ฐ ๋งค์ฐ ์ง๋ณด๋ ์ ๋ ฌ ๋ฐ ๋น๊ต ๊ธฐ๋ฅ์ ์ฌ์ฉํ์ฌ ์ปฌ๋ ์
์ ๋ด์ฉ์ ๋น๊ตํ ์ ์๋๋ก ํ๋ ์ด ๊ธฐ๋ฅ์ Guava์์ ๊ฐ์ฅ ์ ๊ฐ๋ฐ๋๊ณ ๊ฐ๋ฐ๋ ๊ธฐ๋ฅ ์ค ํ๋์
๋๋ค.
GO TO FULL VERSION