JavaRush /Java Blog /Random-KO /์ดˆ๋ณด์ž๋ฅผ ์œ„ํ•œ ๋กœ๋“œ๋งต
Paul Soia
๋ ˆ๋ฒจ 26
Kiyv

์ดˆ๋ณด์ž๋ฅผ ์œ„ํ•œ ๋กœ๋“œ๋งต

Random-KO ๊ทธ๋ฃน์— ๊ฒŒ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค
์ดˆ๋ณด์ž๋“ค์€ โ€œ๊ฐœ๋ฐœ์ž๊ฐ€ ๋˜๋ ค๋ฉด ๋ฌด์—‡์„ ์•Œ์•„์•ผ ํ•ฉ๋‹ˆ๊นŒ?โ€๋ผ๋Š” ์งˆ๋ฌธ์„ ์ž์ฃผ ํ•ฉ๋‹ˆ๋‹ค. ๊ณต์„์—๋Š” ์ดํ•ดํ•  ์ˆ˜ ์—†๋Š” ๋‹จ์–ด๊ฐ€ ๋งŽ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ฑ…์—๋Š” ์ •๋ณด๊ฐ€ ๋„ˆ๋ฌด ๋งŽ์•„์„œ ์–ด๋ฆด ๋•Œ๋ถ€ํ„ฐ ๊ณต๋ถ€๋ฅผ ์‹œ์ž‘ํ–ˆ์–ด์•ผ ํ–ˆ์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ด ๋ชจ๋“  ๊ฒƒ ์™ธ์—๋„ ํ˜„์žฌ Android ๊ฐœ๋ฐœ ๊ธฐ๊ฐ„์—๋Š” Java์™€ Kotlin์ด๋ผ๋Š” ๋‘ ๊ฐ€์ง€ ์–ธ์–ด๋ฅผ ์•Œ์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ดˆ๋ณด์ž๋ฅผ ์œ„ํ•œ ๋กœ๋“œ๋งต์„ ๋งŒ๋“ค๋ ค๊ณ  ๋…ธ๋ ฅํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค: ์ฒซ ์ง์—…์„ ์–ป์œผ๋ ค๋ฉด ์ •ํ™•ํžˆ ๋ฌด์—‡์„ ์•Œ์•„์•ผ ํ•ฉ๋‹ˆ๊นŒ? ์ดˆ๋ณด์ž๋ฅผ ์œ„ํ•œ ๋กœ๋“œ๋งต - 1๋”ฐ๋ผ์„œ ๊ฐ€์žฅ ๋จผ์ €์ด์ž ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๊ฒƒ์€ Java Core์ž…๋‹ˆ๋‹ค. ์˜ˆ, ์ง€๊ธˆ Java๋กœ ์‹œ์ž‘ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ์ œ ์ƒ๊ฐ์—๋Š” JavaRush๊ฐ€ ์ด๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฐ€์žฅ ์ข‹์€ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ์‚ฌํ•ญ์„ ์™„์ „ํžˆ ์™„๋ฃŒํ•  ๋•Œ๊นŒ์ง€ ์–ด๋–ค ๊ฒƒ์—๋„ ์ฃผ์˜๊ฐ€ ์‚ฐ๋งŒํ•ด์งˆ ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ๋™์‹œ์— ์กฐ์–ธ๊ณผ ์ •๋ณด๋ฅผ ์ค„ ์ˆ˜ ์žˆ๋Š” ๋ฉ˜ํ† ๋ฅผ ์ฐพ๋Š”๋‹ค๋ฉด ํฐ ๋„์›€์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ Android SDK๋ฅผ ์‚ฌ์šฉํ•ด ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋จผ์ € TextView, EditText, Layouts(Frame, Linear, Relative), ImageView, Button์„ ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉํ•˜๋Š”์ง€ ์•Œ์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ ๋‹ค์Œ์—๋Š” RecyclerView๋กœ ์ด๋™ํ•˜์„ธ์š”. ์ด ๋‹จ๊ณ„์—์„œ๋Š” ์—ฐ์Šต์ด ์ „๋ถ€์ž…๋‹ˆ๋‹ค. ๋ชจ๋“  ๊ฒƒ์„ ์‹œ๋„ํ•ด๋ณด๊ณ , ๊ทธ๊ฒƒ์ด ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•˜๋Š”์ง€, ์ด๋Ÿฌํ•œ ๊ตฌ์„ฑ ์š”์†Œ์˜ ํŠน์ง•์ด ๋ฌด์—‡์ธ์ง€, ์–ด๋–ป๊ฒŒ ๋‹ค๋ฅธ์ง€ ํ™•์ธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ๋” ๊นŠ์ด ๋“ค์–ด๊ฐ€ ํ™œ๋™๊ณผ ํ”„๋ž˜๊ทธ๋จผํŠธ๋ฅผ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ผ์ดํ”„์‚ฌ์ดํด, ์ถœ์‹œ. ๋˜ํ•œ ๋‘ ํ™œ๋™(์ธํ…ํŠธ)๊ณผ ๋‘ ์กฐ๊ฐ(๋ฒˆ๋“ค) ๊ฐ„์— ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•ฉ๋‹ˆ๋‹ค. ์ด์ œ ๊ณ„์‚ฐ๊ธฐ๋ณด๋‹ค ์ข€ ๋” ๋ณต์žกํ•œ ๊ฒƒ์„ ๋งŒ๋“ค ์ค€๋น„๊ฐ€ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ ํ™”๋ฉด์œผ๋กœ ๊ตฌ์„ฑ๋œ ์ž‘์€ ํ”„๋กœ์ ํŠธ๋ฅผ ์ž‘์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๊ฒƒ์€ ๋” ๋งŽ์€ ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„œ๋กœ ์ƒํ˜ธ ์ž‘์šฉํ•˜๋Š” ๋ฐฉ์‹์„ ์ดํ•ดํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ๊ท€ํ•˜์˜ ์ฝ”๋“œ๋ฅผ ๋ณด๊ณ  ์กฐ์–ธ์„ ํ•ด์ค„ ์ˆ˜ ์žˆ๋‹ค๋ฉด ํฐ ๋„์›€์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ์ด๋ฏธ Kotlin์„ ์‚ฌ์šฉํ•ด ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ REST API์™€์˜ ์ƒํ˜ธ์ž‘์šฉ์ด ํ”„๋กœ์ ํŠธ์— ์ถ”๊ฐ€๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด Retrofit ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๊ฑฐ๊ธฐ์— ๋งŽ์€ ๋งค๋‰ด์–ผ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์˜คํ”ˆ API๋„ ๋งŽ๊ณ , ํ•™์Šตํ•  ๋‚ด์šฉ๋„ ๋งŽ์Šต๋‹ˆ๋‹ค(์˜ˆ: Instagram, Facebook ๋“ฑ). ๊ฒฐ๊ณผ๋Š” ์„œ๋ฒ„์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค์šด๋กœ๋“œํ•˜์—ฌ ํ™”๋ฉด์— ํ‘œ์‹œํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. Glide ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ(๋˜๋Š” ๋Œ€์•ˆ์œผ๋กœ Picasso)๋„ ์—ฌ๊ธฐ์—์„œ ์œ ์šฉํ•˜๊ฒŒ ์‚ฌ์šฉ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๊ฒŒ ์ „๋ถ€์ž…๋‹ˆ๋‹ค. ๋‹ค์Œ์œผ๋กœ๋Š” ๊ฐœ๋ฐœ ํŒจํ„ด์„ ์ดํ•ดํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ์•ˆ๋“œ๋กœ์ด๋“œ์—์„œ๋Š” ๊ตฌ๊ธ€์ด MVVM์„ ํ™๋ณดํ•˜๊ณ  ์žˆ์œผ๋‹ˆ ํ•œ๋ฒˆ ์‚ฌ์šฉํ•ด ๋ณด์„ธ์š”. ํด๋ฆฐ ์•„ํ‚คํ…์ฒ˜(Clean Architecture)๊ฐ€ ๋ฌด์—‡์ธ์ง€๋„ ์•Œ์•„๋ณด์„ธ์š”. ๊ทธ๋ฆฌ๊ณ  ๋ฌด์—‡๋ณด๋‹ค๋„-์˜์กด์„ฑ ์ฃผ์ž…. ๋™์‹œ์— ์ธํ„ฐ๋ทฐ๋ฅผ ์‹œ๋„ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ๋ฉด์—์„œ ์ธํ„ฐ๋„ท์€ ๊ธฐ์‚ฌ์™€ ์˜ˆ์ œ๋กœ ๊ฐ€๋“ ์ฐจ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ณต๋ถ€ํ•  ๋•Œ ์ด๋ฆ„์„ ์™ธ์šฐ๋Š” ๊ฒƒ๋ณด๋‹ค ๊ทธ๊ฒƒ์ด ์–ด๋–ป๊ฒŒ, ์™œ ์ž‘๋™ํ•˜๋Š”์ง€ ์ดํ•ดํ•˜๋Š” ๊ฒƒ์ด ์—ฌ์ „ํžˆ ๋” ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ๋””๋ฒ„๊น…์„ ์‚ฌ์šฉํ•˜์—ฌ ์˜ค๋ฅ˜๋ฅผ ๊ฐ์ง€ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ๋„ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด๊ฒƒ์€ ๋งŽ์€ ์—ฐ์Šต์„ ํ†ตํ•ด์„œ๋งŒ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ์ œ ์ƒ๊ฐ์—๋Š” ์ด ๊ณผ์ •์ด 6๊ฐœ์›” ์•ˆ์— ์™„๋ฃŒ๋  ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด๊ฒƒ์€ ํ•™์Šต์— ์ถฉ๋ถ„ํ•œ ์‹œ๊ฐ„์„ ํˆฌ์žํ•˜๋Š” ๊ฒฝ์šฐ์—๋งŒ ํ•ด๋‹น๋ฉ๋‹ˆ๋‹ค. ๋‚จ์€ ๊ฒƒ์€ ์ธ๋‚ด์‹ฌ์„ ๊ตฌํ•˜๋Š” ๊ฒƒ๋ฟ์ž…๋‹ˆ๋‹ค.
์ฝ”๋ฉ˜ํŠธ
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION