๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

Android6

[Chap 6] ๋ทฐ๋ฅผ ์ด์šฉํ•œ ํ™”๋ฉด ๊ตฌ์„ฑ ํ™”๋ฉด์„ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ• ํ™”๋ฉด์„ ์ถœ๋ ฅํ•˜๋Š” ์ปดํฌ๋„ŒํŠธ : ์•กํ‹ฐ๋น„ํ‹ฐ ํ™”๋ฉด์— ๋‚ด์šฉ์„ ํ‘œ์‹œํ•˜๋Š” ํด๋ž˜์Šค : ๋ทฐ ํด๋ž˜์Šค(TextView, ImageView ๋“ฑ) -> ์•กํ‹ฐ๋น„ํ‹ฐ๊ฐ€ ์‹คํ–‰๋˜๋ฉด์„œ ๋ทฐ ํด๋ž˜์Šค๋ฅผ ์ด์šฉํ•ด ํ™”๋ฉด์„ ๊ตฌ์„ฑํ•˜๊ณ  ์ด๋ฅผ ๊ธฐ๊ธฐ์˜ ํ™”๋ฉด์— ์ถœ๋ ฅํ•˜๋Š” ๊ตฌ์กฐ 1) ์•กํ‹ฐ๋น„ํ‹ฐ ์ฝ”๋“œ๋กœ ์ž‘์„ฑ ํ™”๋ฉด์„ ๊ตฌ์„ฑํ•˜๋Š” ๋ทฐ ํด๋ž˜์Šค๋ฅผ ์•กํ‹ฐ๋น„ํ‹ฐ ์ฝ”๋“œ์—์„œ ์ง์ ‘ ์ƒ์„ฑ -> XML ํŒŒ์ผ์€ ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ์ž‘์„ฑ X 2) ๋ ˆ์ด์•„์›ƒ XML ํŒŒ์ผ๋กœ ์ž‘์„ฑ ํ™”๋ฉด์„ ๊ตฌ์„ฑํ•˜๋Š”๋ฐ ํ•„์š”ํ•œ ๋ทฐ๋ฅผ XML์˜ ํƒœ๊ทธ๋กœ ๋ช…์‹œํ•ด ํ™”๋ฉด์„ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ• XML์—์„œ ํ™”๋ฉด์„ ๊ตฌํ˜„ํ•˜๋ฏ€๋กœ ์•กํ‹ฐ๋น„ํ‹ฐ ์ฝ”๋“œ์—์„œ๋Š” ํ™”๋ฉด์„ ์ถœ๋ ฅํ•˜๋Š” setContentView() ํ•จ์ˆ˜๋งŒ ํ˜ธ์ถœํ•˜๋ฉด์„œ XML ํŒŒ์ผ์„ ์ „๋‹ฌํ•˜๋ฉด ๋œ๋‹ค. class MainActivity: AppCompatActivity() { overrid.. 2021. 11. 30.
[Chap 5] ์ฝ”ํ‹€๋ฆฐ์˜ ์œ ์šฉํ•œ ๊ธฐ๋ฒ• ๋žŒ๋‹ค ํ•จ์ˆ˜์™€ ๊ณ ์ฐจ ํ•จ์ˆ˜ ๋žŒ๋‹ค ํ•จ์ˆ˜(๋žŒ๋‹ค์‹) - ์ต๋ช… ํ•จ์ˆ˜(anonymous funciton) ์ •์˜ ๊ธฐ๋ฒ• - ์ฃผ๋กœ ํ•จ์ˆ˜๋ฅผ ๊ฐ„๋‹จํ•˜๊ฒŒ ์ •์˜ํ•  ๋•Œ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ณ ์ฐจ ํ•จ์ˆ˜์— ๋งŽ์ด ์‚ฌ์šฉ * ๊ณ ์ฐจํ•จ์ˆ˜ : ํ•จ์ˆ˜๋ฅผ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ „๋‹ฌ๋ฐ›๊ฑฐ๋‚˜ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜ ๋žŒ๋‹ค ํ•จ์ˆ˜ ์„ ์–ธ๊ณผ ํ˜ธ์ถœ fun ํ‚ค์›Œ๋“œ๋ฅผ ์ด์šฉํ•˜์ง€ ์•Š์œผ๋ฉฐ ํ•จ์ˆ˜ ์ด๋ฆ„์ด ์—†์Œ. -> ์ฃผ๋กœ ๋žŒ๋‹ค ํ•จ์ˆ˜๋ฅผ ๋ณ€์ˆ˜์— ๋Œ€์ž…ํ•ด ์‚ฌ์šฉ { ๋งค๊ฐœ๋ณ€์ˆ˜ -> ํ•จ์ˆ˜ ๋ณธ๋ฌธ } * ๋žŒ๋‹ค ํ•จ์ˆ˜ ์‚ฌ์šฉ ๊ทœ์น™ - ์ค‘๊ด„ํ˜ธ { } ๋กœ ํ‘œํ˜„ - { } ์•ˆ์— ํ™”์‚ดํ‘œ(->)๊ฐ€ ์žˆ์œผ๋ฉฐ ํ™”์‚ดํ‘œ ์™ผ์ชฝ์€ ๋งค๊ฐœ๋ณ€์ˆ˜, ์˜ค๋ฅธ์ชฝ์€ ํ•จ์ˆ˜ ๋ณธ๋ฌธ - ํ•จ์ˆ˜์˜ ๋ฐ˜ํ™˜๊ฐ’์€ ํ•จ์ˆ˜ ๋ณธ๋ฌธ์˜ ๋งˆ์ง€๋ง‰ ํ‘œํ˜„์‹ // ๋žŒ๋‹ค ํ•จ์ˆ˜๋ฅผ ๋ณ€์ˆ˜์— ๋Œ€์ž… val sum = {no1: Int, no2: Int -> no1 + no2} sum(10, 20) // ๋žŒ๋‹ค .. 2021. 11. 23.
[Chap 4] ์ฝ”ํ‹€๋ฆฐ ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํด๋ž˜์Šค์™€ ์ƒ์„ฑ์ž ํด๋ž˜์Šค ์„ ์–ธ - class ํ‚ค์›Œ๋“œ ์‚ฌ์šฉ - ํด๋ž˜์Šค์˜ ๋ฉค๋ฒ„๋Š” ์ƒ์„ฑ์ž, ๋ณ€์ˆ˜, ํ•จ์ˆ˜, ํด๋ž˜์Šค๋กœ ๊ตฌ์„ฑ - ์ฝ”ํ‹€๋ฆฐ์˜ ์ƒ์„ฑ์ž : constructor ํ‚ค์›Œ๋“œ๋กœ ์„ ์–ธ - ํด๋ž˜์Šค ์•ˆ์— ๋‹ค๋ฅธ ํด๋ž˜์Šค ์„ ์–ธ ๊ฐ€๋Šฅ - ํด๋ž˜์Šค๋Š” ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•ด ์‚ฌ์šฉ(new ํ‚ค์›Œ๋“œ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Œ) class User { val name = "kkang"; constructor(name: String){ this.name = name } fun someFun() { println("name : $name") } class SomeClass {} } val user = User("kim"); ์ƒ์„ฑ์ž(constructor ํ‚ค์›Œ๋“œ) ํ•œ ํด๋ž˜์Šค ์•ˆ์— ์ฃผ ์ƒ์„ฑ์ž / ๋ณด์กฐ ์ƒ์„ฑ์ž / ๋‘˜ ๋‹ค ์„ ์–ธ ๊ฐ€๋Šฅ 1. ์ฃผ ์ƒ์„ฑ์ž : ํด๋ž˜์Šค ์„ ์–ธ๋ถ€ - ํ•„.. 2021. 11. 20.
[Chap 3] ์ฝ”ํ‹€๋ฆฐ ์‹œ์ž‘ํ•˜๊ธฐ ์ฝ”ํ‹€๋ฆฐ ์–ธ์–ด ์†Œ๊ฐœ ์ฝ”ํ‹€๋ฆฐ์˜ ๋“ฑ์žฅ ๋ฐฐ๊ฒฝ - ์ฝ”ํ‹€๋ฆฐ์ด๋ž€? JetBrains์—์„œ ์˜คํ”ˆ ์†Œ์Šค ๊ทธ๋ฃน์„ ๋งŒ๋“ค์–ด ๊ฐœ๋ฐœํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด. - ์ž๋ฐ”์˜ ๊ฐ€์ƒ๋จธ์‹ ์ธ JVM์— ๊ธฐ๋ฐ˜์„ ๋‘” ์–ธ์–ด. ์ฝ”ํ‹€๋ฆฐ์˜ ์žฅ์  1) ํ‘œํ˜„๋ ฅ๊ณผ ๊ฐ„๊ฒฐํ•จ(expressive and concise) : ์ž๋ฐ”๋ณด๋‹ค ๊ฐ„๊ฒฐํ•œ ๊ตฌ๋ฌธ 2) ์•ˆ์ „ํ•œ ์ฝ”๋“œ(safer code) : ์ฝ”ํ‹€๋ฆฐ์€ Null safety๋ฅผ ์ง€์› -> ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋žจ์—์„œ ๊ฐ์ฒด๋Š” ๋„ ์ƒํƒœ์ผ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ด ๋•Œ NullPointerException์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ ์ฝ”ํ‹€๋ฆฐ์—์„œ๋Š” ๋ณ€์ˆ˜๋ฅผ nullable๊ณผ not null๋กœ ๊ตฌ๋ถ„ํ•ด์„œ ์„ ์–ธํ•˜๊ธฐ ๋•Œ๋ฌธ์— null๊ณผ ๊ด€๋ จ๋œ ์—ฌ๋Ÿฌ ๋ถ€๋ถ„์„ ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ํ•ด๊ฒฐ 3) ์ƒํ˜ธ ์šด์šฉ์„ฑ(interoperable) : ์ฝ”ํ‹€๋ฆฐ์€ ์ž๋ฐ”์™€ 100% ํ˜ธํ™˜. ์ž๋ฐ”์™€ ์ฝ”ํ‹€๋ฆฐ ํ˜ผ์šฉ ๊ฐ€๋Šฅ .. 2021. 11. 19.