Kotlin

Development

Clean Architecture์„ ์œ„ํ•œ ๊ฐ์ฒด์ง€ํ–ฅ SOLID 5์›์น™ with Kotlin

์ด๋ฒˆ์— ๋ฐฐ์šธ ๊ฒƒ - SOLID๋ž€ - ์›์น™๋ณ„ ์˜ˆ์ œ - ๊ฒฐ๋ก  SOLID๋ž€ ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ์ดํ•ด๊ฐ€ ์‰ฌ์šด, ์œ ์—ฐํ•œ, ์œ ์ง€๋ณด์ˆ˜ ๊ฐ€๋Šฅํ•œ SW(Soft-Ware: ์†Œํ”„ํŠธ์›จ์–ด)๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ์˜๋„ ๋˜์–ด์ง„ ๋””์ž์ธ ์›์น™์ด๋‹ค. SOLID ์›์น™์€ ์š”๊ตฌํ•œ ๊ธฐ๋Šฅ์ด ๋ณ€๊ฒฝ๋˜๊ฑฐ๋‚˜ ์šฐ๋ฆฌ๊ฐ€ ํ˜„์žฌ ์กด์žฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์— ์ถ”๊ฐ€์ ์ธ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๊ณ  ์‹ถ์„ ๋–„, ์‹œ์Šคํ…œ์˜ ํฐ ๋ณ€๊ฒฝ ์—†์ด, ์ง€์† ๊ฐ€๋Šฅํ•œ ์ฝ”๋“œ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ค€๋‹ค. SOLID๋Š” 5๊ฐ€์ง€ ์›์น™์˜ ์ œ์ผ ์ฒซ ๊ธ€์ž๋ฅผ ๋”ฐ์„œ ๋งŒ๋“ค์—ˆ๋‹ค. - S : Single Resposibility Priciple / ๋‹จ์ผ ์ฑ…์ž„ ์›์น™ - O : Open Closed Principle / ๊ฐœ๋ฐฉ ํ์‡„ ์›์น™ - L : Liskov Substitution Principle / ๋ฆฌ์Šค์ฝ”ํ”„ ์น˜ํ™˜ ์›์น™ - I : I..

Development/Android

Databinding ์—์„œ ์–ด๋–ป๊ฒŒ ๋ฐ์ดํ„ฐ๋“ค์„ ๊ฐ€๊ณตํ• ๊นŒ? ๐Ÿฝ

Databinding์„ ์‚ฌ์šฉ ํ•˜๊ณ ์žˆ์–ด! ๋˜ ์–ด๋–ค ๋ฐฉ์‹์œผ๋กœ ์“ฐ๋Š”์ง„ ์•Œ๊ฒ ์–ด. ๊ทผ๋ฐ ์„œ๋ฒ„์—์„œ ๋ฐ›์•„์˜จ ๋ฐ์ดํ„ฐ๋“ค์„ ์–ด๋–ป๊ฒŒ ๊ฐ€๊ณตํ•ด์„œ ๋ฐ”๋กœ ์จ? ์‹œ๊ฐ„์ด๋‚˜ ํšŸ์ˆ˜ ๋ญ ํ•˜๋ฌผ๋ฉฐ ์‚ฌ์šฉ์ž ์„ฑ๋ณ„์ด๋ผ๋„ ๊ฐ€๊ณตํ•ด์„œ ๋ณด์—ฌ์ค˜์•ผํ•˜๋Š”๊ฑฐ ์•„๋‹Œ๊ฐ€? ๊ทธ๋Ÿผ ๋˜ ๋‹ค๋ฅธ ๊ณณ์—์„œ ์ฃผ์ž…ํ•ด์ค˜์•ผํ•˜๋Š”๊ฑฐ ์•„๋‹ˆ์•ผ? ๋ผ๊ณ  ์ƒ๊ฐํ–ˆ์ง€๋งŒ… ์•„~์ฃผ ์ข‹์€ ๊ธฐ๋Šฅ์ด ์žˆ๋‹ค.(์ด๋Ÿฌ๋ฉด ๋’ท๋ง์ด ๊ถ๊ธˆํ•ด์„œ ๋ฒ—์–ด๋‚˜๊ธฐ ํž˜๋“ค๋‹ค ๐Ÿคฆ‍โ™‚๏ธ) 1. ์ผ๋‹จ ์‚ฌ์šฉํ•  Data class๋ฅผ ๋งŒ๋“ ๋‹ค. data class Memo( // @SerializedName("id") object ์ค‘ ํ•ด๋‹น ๊ฐ’์ด null ๊ฒฝ์šฐ // -> json ์œผ๋กœ ๋งŒ๋“ค ํ•„๋“œ๋ฅผ ์ž๋™ ์ƒ๋žต @SerializedName("id") @Expose val id: Int, โ€‹ @SerializedName("title") @Expose val me..

Development/Kotlin

Kotlin ์ฝ”๋“œ๋ฅผ ๋ณด๋‹ค ๊น”๋”ํ•˜๊ฒŒ ๋งŒ๋“ค๊ธฐ

์ฝ”ํ‹€๋ฆฐ์˜ ํ‘œ์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ ๊ณผ ํŽธ๋ฆฌํ•œ ๊ธฐ๋Šฅ์œผ๋กœ ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์‰ฝ๊ฒŒ ์ ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ค๋‹ˆ๋‹ค. ๊ทธ์ค‘์—์„œ๋„ apply, with, let, also, run์™€ ๊ฐ™์€ ๋ฒ”์œ„ ์ง€์ • ํ•จ์ˆ˜๋“ค์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ ๊ธฐ๋Šฅ๋“ค์ด ์–ผํ• ๋ณด๋ฉด ๋น„์Šทํ•ด์„œ ํ—ท๊ฐˆ๋ฆด ์ˆ˜ ์žˆ๊ณ  ์‚ฌ์šฉํ•˜๋ฉด ๋ณด๋‹ค ๊น”๋”ํ•˜๊ฒŒ ์ฝ”๋“œ๋ฅผ ๊ด€๋ฆฌ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฒ”์œ„ ์ง€์ • ํ•จ์ˆ˜ ๋ž€ ํŠน์ • ๊ฐ์ฒด์— ๋Œ€ํ•œ ์ž‘์—…์„ ๋ธ”๋ก ์•ˆ์— ๋„ฃ์–ด ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค. ๋ธ”๋ก์€ ํŠน์ • ๊ฐ์ฒด์— ๋Œ€ํ•ด ํ•  ์ž‘์—…์˜ ๋ฒ”์œ„๊ฐ€ ๋˜๋ฉฐ, ๋”ฐ๋ผ์„œ ๋ฒ”์œ„ ์ง€์ • ํ•จ์ˆ˜๋ผ ๋ถ€๋ฅธ๋‹ค. ๋‹ค๋ฅธ ๋ง๋กœ ์ˆ˜์‹ ๊ฐ์ฒด ์ง€์ • ๋žŒ๋‹ค(ํ•จ์ˆ˜) ๋ผ๊ณ ๋„ ๋ถ€๋ฅธ๋‹ค. → ์ˆ˜์‹ ๊ฐ์ฒด๋ฅผ ๋ช…์‹œํ•˜์ง€ ์•Š๊ฑฐ๋‚˜ it์„ ํ˜ธ์ถœํ•˜๋Š” ๊ฒƒ๋งŒ์œผ๋กœ ๋žŒ๋‹ค ์•ˆ์—์„œ ์ˆ˜์‹ ๊ฐ์ฒด์˜ ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ฃผ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ์ด๊ฒƒ์ด ๊ฐ€๋Šฅํ•œ ์ด์œ ๋Š” ๋ธ”๋ก(block) ..

Android_DevKick
'Kotlin' ํƒœ๊ทธ์˜ ๊ธ€ ๋ชฉ๋ก