Android & Kotlin (12) ์ธ๋ค์ผํ ๋ฆฌ์คํธํ [๋ด๋ณด๋ด๋ฒ] Interfaces | Kotlin Kotlin์ ๊ณต๋ถํ๋ฉด์ ์์์ ๋ํ ๋ถ๋ถ์ ๊ณต๋ถํ๊ณ ์ ๊ณต์ ๋ฌธ์๋ฅผ ์ง์ ๋ฒ์ญํ๋ค. ํด๋น ๋ฌธ์๋ 2022๋ 3์ 3์ผ์ ๊ณต์ ๋ฌธ์์ด๋ค. ์ค๊ฐ์ค๊ฐ ๐ ํ์๊ฐ ์๋ ๋ฌธ์ฅ์ด๋ ์์ ๋ชฉ์ ๋ฒ์ญ์ด ๋ถ์ ํํ ์ ์์ผ๋ฉฐ ๊ตฌ๊ธ์ด๋ ํํ๊ณ ๋ฒ์ญ๊ธฐ์ ๋์์ ๋ฐ์๋ค. Kotlin ๊ณต์๋ฌธ์ ํ์ธํ๊ธฐ โก๏ธ Interfaces | Kotlin kotlinlang.org โป ์์ด ์ ๊ณต์๋ ํด์ธ ์ ํํ๋ ์๋๊ธฐ์ ๋ฒ์ญ์๋ ์์ญ, ์ค์ญ, ๊ตฌ๊ธ ๋ฒ์ญ์ด ๋ฌด์ํ ๋ง์ ์ ์์ผ๋ฉฐ, ํผ์ ๊ณต์๋ฌธ์๋ฅผ ์ฐธ์กฐํด๊ฐ๋ฉฐ ๋ฒ์ญํ๋ค ๋ณด๋ ์คํ๋ ๋ง์ ์ ์๋ค. ์ ํํ ๋ด์ฉ์ ๊ณต์๋ฌธ์๋ฅผ ์ง์ ์ดํด๋ณด๊ฑฐ๋ ๋ค๋ฅธ ์ ๋ณด๋ค์ ๋ ์ฐพ์๋ณด๋ ๊ฒ์ ์ถ์ฒํ๋ค. (ํ์ง๋ง ๋๊ธ ํผ๋๋ฐฑ๋ ํ์ํฉ๋๋ค๐ ) Interfaces in Kotlin can contain declaratio.. [๋ด๋ณด๋ด๋ฒ] Properties | Kotin Kotlin์ ๊ณต๋ถํ๋ฉด์ ์์์ ๋ํ ๋ถ๋ถ์ ๊ณต๋ถํ๊ณ ์ ๊ณต์ ๋ฌธ์๋ฅผ ์ง์ ๋ฒ์ญํ๋ค. ํด๋น ๋ฌธ์๋ 2022๋ 3์ 3์ผ์ ๊ณต์ ๋ฌธ์์ด๋ค. ์ค๊ฐ์ค๊ฐ ๐ ํ์๊ฐ ์๋ ๋ฌธ์ฅ์ด๋ ์์ ๋ชฉ์ ๋ฒ์ญ์ด ๋ถ์ ํํ ์ ์์ผ๋ฉฐ ๊ตฌ๊ธ์ด๋ ํํ๊ณ ๋ฒ์ญ๊ธฐ์ ๋์์ ๋ฐ์๋ค. Kotlin ๊ณต์๋ฌธ์ ํ์ธํ๊ธฐ โก๏ธ Properties | Kotlin kotlinlang.org โป ์์ด ์ ๊ณต์๋ ํด์ธ ์ ํํ๋ ์๋๊ธฐ์ ๋ฒ์ญ์๋ ์์ญ, ์ค์ญ, ๊ตฌ๊ธ ๋ฒ์ญ์ด ๋ฌด์ํ ๋ง์ ์ ์์ผ๋ฉฐ, ํผ์ ๊ณต์๋ฌธ์๋ฅผ ์ฐธ์กฐํด๊ฐ๋ฉฐ ๋ฒ์ญํ๋ค ๋ณด๋ ์คํ๋ ๋ง์ ์ ์๋ค. ์ ํํ ๋ด์ฉ์ ๊ณต์๋ฌธ์๋ฅผ ์ง์ ์ดํด๋ณด๊ฑฐ๋ ๋ค๋ฅธ ์ ๋ณด๋ค์ ๋ ์ฐพ์๋ณด๋ ๊ฒ์ ์ถ์ฒํ๋ค. (ํ์ง๋ง ๋๊ธ ํผ๋๋ฐฑ๋ ํ์ํฉ๋๋ค๐ ) Declaring properties Properties in Kotlin c.. [๋ด๋ณด๋ด๋ฒ] Classes | Kotlin Kotlin์ ๊ณต๋ถํ๋ฉด์ ์์์ ๋ํ ๋ถ๋ถ์ ๊ณต๋ถํ๊ณ ์ ๊ณต์ ๋ฌธ์๋ฅผ ์ง์ ๋ฒ์ญํ๋ค. ํด๋น ๋ฌธ์๋ 2022๋ 3์ 3์ผ์ ๊ณต์ ๋ฌธ์์ด๋ค. Kotlin ๊ณต์๋ฌธ์ ํ์ธํ๊ธฐ โก๏ธ Classes | Kotlin kotlinlang.org โป ์์ด ์ ๊ณต์๋ ํด์ธ ์ ํํ๋ ์๋๊ธฐ์ ๋ฒ์ญ์๋ ์์ญ, ์ค์ญ, ๊ตฌ๊ธ ๋ฒ์ญ์ด ๋ฌด์ํ ๋ง์ ์ ์์ผ๋ฉฐ, ํผ์ ๊ณต์๋ฌธ์๋ฅผ ์ฐธ์กฐํด๊ฐ๋ฉฐ ๋ฒ์ญํ๋ค ๋ณด๋ ์คํ๋ ๋ง์ ์ ์๋ค. ์ ํํ ๋ด์ฉ์ ๊ณต์๋ฌธ์๋ฅผ ์ง์ ์ดํด๋ณด๊ฑฐ๋ ๋ค๋ฅธ ์ ๋ณด๋ค์ ๋ ์ฐพ์๋ณด๋ ๊ฒ์ ์ถ์ฒํ๋ค. (ํ์ง๋ง ๋๊ธ ํผ๋๋ฐฑ๋ ํ์ํฉ๋๋ค๐ ) Classes in Kotlin are declared using the keyword class: ์ฝํ๋ฆฐ์ ํด๋์ค๋ class ํค์๋๋ฅผ ์ฌ์ฉํ์ฌ ์ ์ธ๋๋ค: class Person { /*..... [๋ด๋ณด๋ด๋ฒ] Inheritance | Kotlin Kotlin์ ๊ณต๋ถํ๋ฉด์ ์์์ ๋ํ ๋ถ๋ถ์ ๊ณต๋ถํ๊ณ ์ ๊ณต์ ๋ฌธ์๋ฅผ ์ง์ ๋ฒ์ญํ๋ค. ํด๋น ๋ฌธ์๋ 2022๋ 3์ 2์ผ์ ๊ณต์ ๋ฌธ์์ด๋ค. Kotlin ๊ณต์๋ฌธ์ ํ์ธํ๊ธฐ โก๏ธ Inheritance | Kotlin kotlinlang.org โป ์์ด ์ ๊ณต์๋ ํด์ธ ์ ํํ๋ ์๋๊ธฐ์ ๋ฒ์ญ์๋ ์์ญ, ์ค์ญ, ๊ตฌ๊ธ ๋ฒ์ญ์ด ๋ฌด์ํ ๋ง์ ์ ์์ผ๋ฉฐ, ํผ์ ๊ณต์๋ฌธ์๋ฅผ ์ฐธ์กฐํด๊ฐ๋ฉฐ ๋ฒ์ญํ๋ค ๋ณด๋ ์คํ๋ ๋ง์ ์ ์๋ค. ์ ํํ ๋ด์ฉ์ ๊ณต์๋ฌธ์๋ฅผ ์ง์ ์ดํด๋ณด๊ฑฐ๋ ๋ค๋ฅธ ์ ๋ณด๋ค์ ๋ ์ฐพ์๋ณด๋ ๊ฒ์ ์ถ์ฒํ๋ค. (ํ์ง๋ง ๋๊ธ ํผ๋๋ฐฑ๋ ํ์ํฉ๋๋ค๐ ) All classes in Kotlin have a common superclass, Any, which is the default superclass for a class with no.. Overloading / Overriding Overloading ์๋ฏธ ๊ณผ์ ํ๋ค, ๊ณผ๋ถํ๋ผ๋ overload์ ๋ป์์ ์ ์ถํด๋ณด๋ฉด ๋ฌด์ธ๊ฐ๋ฅผ ๋ ์ฃ๋, ์น๋ ๊ทธ๋ฆผ์ด ๊ทธ๋ ค์ง๋ค. ๋น์ทํ๊ฒ ์ค๋ฒ๋ก๋ฉ๋ ํ ํด๋์ค ๋ด์ ๊ฐ์ ์ด๋ฆ์ ๋ฉ์๋๋ฅผ ์ฌ๋ฌ ๊ฐ ์ ์ํ๋ ๊ฒ์ ์๋ฏธํ๋ค. ๋ฉ์๋๋ค์ด ๋ชจ๋ ๊ฐ์ ์ผ์ ํ์ง๋ง ๋งค๊ฐ๋ณ์๋ฅผ ๋ฌ๋ฆฌํด์ผํ๋ ๊ฒฝ์ฐ ๋ฉ์๋ ์ด๋ฆ์ ๊ฐ๊ณ ๋งค๊ฐ๋ณ์๋ฅผ ๋ค๋ฅด๊ฒ ํ์ฌ ์ค๋ฒ๋ก๋ฉ์ ๊ตฌํํ๋ค. ์กฐ๊ฑด ์ค๋ฒ๋ก๋ฉ์ด ์ฑ๋ฆฝํ๊ธฐ ์ํ ์กฐ๊ฑด์ ์๋์ ๊ฐ๋ค. ๋ฉ์๋ ์ด๋ฆ์ด ๊ฐ์์ผ ํ๋ค. ๋งค๊ฐ๋ณ์์ ๊ฐ์ ๋๋ ํ์ ์ด ๋ฌ๋ผ์ผ ํ๋ค. ๋งค๊ฐ๋ณ์๋ ๊ฐ๊ณ ๋ฆฌํดํ์ ์ด ๋ค๋ฅธ ๊ฒฝ์ฐ๋ ์ค๋ฒ๋ก๋ฉ์ด ์ฑ๋ฆฝ๋์ง ์๋๋ค. (๋ฆฌํดํ์ ์ ์ค๋ฒ๋ก๋ฉ์ ๊ตฌํํ๋๋ฐ ์๋ฌด๋ฐ ์ํฅ์ ์ฃผ์ง ๋ชปํ๋ค.) ์์ ์กฐ๊ฑด๋ค์ ๋ง์กฑ์ํค์ง ๋ชปํ๋ฉด ์ค๋ฒ๋ก๋ฉ์ด ์๋ ์ค๋ณต์ ์๋ ๊ฒ์ผ๋ก ๊ฐ์ฃผ๋์ด ์๋ฌ๊ฐ ๋ฐ์ํ๋ค. ์์ int add.. Lesson 6: App Architecture (Persistence) 4. Designing Entities Entity: Object or concept to store in the database. Entity class defines a table, each instance is stored as a table row. Query: Request for data or information from a database table or tables, or a request to perform some action on the table. dataclass๋ฅผ ์ฌ์ฉํ์ฌ ํ ์ด๋ธ์ ์ ์. annotation์ ์ฌ์ฉํ์ฌ์ ์ด๋ property๊ฐ primary key์ธ์ง ๋ฑ์ ๋ํ๋ธ๋ค. interface๋ฅผ ์์ฑํ์ฌ Database์ ์ด๋ป๊ฒ interactํ ๊ฒ์ธ์ง๋ฅผ ์ ์ํ๋ค. Ro.. Lesson 5: App Architecture(UI Layer) 5. What is Architecture Application Architecture๋ ์ฑ์ ํด๋์ค๋ค์ ๋ํ ๋์์ธ๊ณผ ๊ทธ๋ค ์ฌ์ด์ ๊ด๊ณ. ์ฑ์ ๊ตฌ์ฑํ๋๋ฐ ํ ๊ฐ์ง ๋ฐฉ๋ฒ๋ง ์๋ ๊ฒ์ ์๋๋ค. ์ง์ ์ค๊ณํ๋ ๊ฒ์ ์ํฉ, ํ์, ์ทจํฅ ๋ฑ์ ๊ฐํ ์์กด์ฑ์ ๋๋ค. ์ด์ ๋ง์ฐฌ๊ฐ์ง๋ก ์๋๋ก์ด๋ ์ฑ๋ ๋ค์ํ ์ค๊ณ ์คํ์ผ์ด ์๋ค. ๋ ๊ฐ ๋ฐฉ์์ ์ฅ๋จ์ ์ด ์๋ค. ์๋ก๊ฐ ๊ณตํต์ ์ ๊ฐ๊ธฐ๋ ํ๋ค. ๊ฐ๊ธฐ ๋ค๋ฅธ ์ฑ์ ํ์๋ ํ์ ํฌ๊ธฐ, ํ์ ์ฑํฅ ๋ฑ์ ๋ฐ๋ผ ์ ํฉํ ์คํ์ผ์ด ๋ค๋ฅผ ์ ์๋ค. ์ด๋ฒ lesson์์๋ a single multipurpose architectural pattern์ ์ฌ์ฉํ๋๋ฐ MVVM๊ณผ ๋น์ทํ๋ค. 6. Our App Architecture Software design principle - Separati.. ๊ณต๋ถ ์ฃผ์ ๋ณดํธ๋์ด ์๋ ๊ธ์ ๋๋ค. ์ด์ 1 2 ๋ค์