๋Œ€์™ธ ํ™œ๋™/๋ถ€์ŠคํŠธ์ฝ”์Šค ์„œํฌํ„ฐ์ฆˆ 3๊ธฐ 4

[๋ถ€์ŠคํŠธ์ฝ”์Šค] 03. ์ฝ”ํ‹€๋ฆฐ null ์ฒ˜๋ฆฌ, ์ž๋ฃŒํ˜• ๋ณ€ํ™˜

์ฝ”ํ‹€๋ฆฐ์˜ null ์ฒ˜๋ฆฌ ์ฝ”ํ‹€๋ฆฐ์˜ ๋ณ€์ˆ˜ ์„ ์–ธ์€ ๊ธฐ๋ณธ์ ์œผ๋กœ null์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค. null ๊ฐ€๋Šฅํ•œ ์„ ์–ธ (Nullable) val a: Int? = null val b: String? = null ๋‹จ์ˆœ ์ถœ๋ ฅ์€ ์ƒ๊ด€์—†์œผ๋‚˜ null์ธ ์ƒํƒœ์—์„œ ์—ฐ์‚ฐ๋˜๋Š” ๋ฉค๋ฒ„์— ์ ‘๊ทผํ•  ๋•Œ → NPE ๋ฐœ์ƒ NPE (Null Pointer Exception) ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋Š” null์ธ ๋ณ€์ˆ˜์— ์ ‘๊ทผํ•˜๋ฉด์„œ ๋ฐœ์ƒํ•˜๋Š” ์˜ˆ์™ธ ์„ธ์ดํ”„ ์ฝœ ? fun main() { var str1: String? str1 = null println("str1: $str1, length: ${str1?.length}") // str1์ด null์ด๋ฉด length๋ฅผ ์‹คํ–‰ํ•˜์ง€ ์•Š๋Š”๋‹ค. } ? ์„ ๋ถ™์ด์ง€ ์•Š์œผ๋ฉด NPE๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. non-null ๋‹จ์ • ๊ธฐํ˜ธ !! f..

[๋ถ€์ŠคํŠธ์ฝ”์Šค] 02. ์ฝ”ํ‹€๋ฆฐ ๋ณ€์ˆ˜์™€ ์ž๋ฃŒํ˜•

์ฝ”ํ‹€๋ฆฐ ๋ณ€์ˆ˜ ์„ ์–ธ ์„ ์–ธ ๋ฐฉ๋ฒ• val (value) - ๋ถˆ๋ณ€ํ˜•. ์„ ์–ธํ•˜๊ณ  ์ดˆ๊ธฐํ™” ํ›„ ๊ฐ’์„ ๋ฐ”๊ฟ€ ์ˆ˜ X var (variable) - ๊ฐ€๋ณ€ํ˜• fun main() { var username: String = "Kildong" username = "Dooly" println("username: $username") } ๋ฌธ์ž์—ด ๋‚ด์— ๋ณ€์ˆ˜๋‚˜ ์‹์„ ${๋ณ€์ˆ˜ ํ˜น์€ ์‹}์™€ ๊ฐ™์ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ๋ณ€์ˆ˜๊ฐ€ ํ•˜๋‚˜์ด๋ฉด $username์ฒ˜๋Ÿผ ์ค‘๊ด„ํ˜ธ ์ƒ๋žต ๊ฐ€๋Šฅ. ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ๋ฐ์ดํ„ฐํ˜•์„ ์ถ”๋ก ํ•ด ์„ ์–ธํ•  ์ˆ˜ ๋„ ์žˆ๋‹ค. fun main() { var username = "Kildong" var count = 3 println("username: $username, count: $count") } ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์ถ”๋ก ํ•œ ๋ณ€์ˆ˜๋Š” ctrl + shi..

[๋ถ€์ŠคํŠธ์ฝ”์Šค] 01. ์ฝ”ํ‹€๋ฆฐ ์†Œ๊ฐœ, ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ์„ค์น˜

์ฝ”ํ‹€๋ฆฐ์ด๋ž€? ์ฝ”ํ‹€๋ฆฐ์˜ ํŠน์ง• IDE(Android Studio์˜ ๋ชจ์ฒด)๋กœ ์œ ๋ช…ํ•œ JetBrains์—์„œ ๊ฐœ๋ฐœํ•˜๊ณ  ๋ณด๊ธ‰. ์ฝ”๋“œ๊ฐ€ ๊ฐ„๊ฒฐํ•˜๊ณ  ๋‹ค์žฌ๋‹ค๋Šฅํ•˜๋ฉฐ ํ˜ธํ™˜์„ฑ์ด ๋†’๋‹ค. ๋ฌธ์žฅ ๋์— ์„ธ๋ฏธ์ฝœ๋ก ์€ ์˜ต์…˜์ด๋‹ค. (์•ˆ ๋ถ™์—ฌ๋„ ๋œ๋‹ค.) Android Studio์—์„œ ์•ˆ๋“œ๋กœ์ด๋“œ ๊ณต์‹ ์–ธ์–ด๋กœ ์ถ”๊ฐ€. ๋ณ€์ˆ˜๋Š” Nullable(๋„ ๊ฐ’ ์‚ฌ์šฉ ๊ฐ€๋Šฅ)๊ณผ NotNull๋กœ ๋‚˜๋‰˜๋Š”๋ฐ, ๋ณ€์ˆ˜ ์„ ์–ธ ์‹œ '?'๋ฅผ ๋ถ™์—ฌ Nullable๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค. Null ๊ฐ’์ด ๊ฐ€๋Šฅ ํ•œ์ง€, ์•ˆ ํ•œ ์ง€ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ. ์˜ˆ์™ธ ์ฒ˜๋ฆฌํ•  ํ•„์š” ์—†๋‹ค. ์ฝ”ํ‹€๋ฆฐ์˜ ์šฉ๋„(์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ํ”Œ๋žซํผ) Kotlin/JVM ์ž๋ฐ” ๊ฐ€์ƒ ๋จธ์‹  ์ƒ์—์„œ ๋™์ž‘ํ•˜๋Š” ์•ฑ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค. → ์•ˆ๋“œ๋กœ์ด๋“œ๋„ ๊ฐ€๋Šฅ! Kotlin/JS ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์— ์˜ํ•ด ๋ธŒ๋ผ์šฐ์ €์—์„œ ๋™์ž‘ํ•˜๋Š” ์•ฑ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค. Kot..

[๋ถ€์ŠคํŠธ์ฝ”์Šค] 00. ๋ถ€์ŠคํŠธ์ฝ”์Šค ์†Œ๊ฐœ, ์ฝ”ํ‹€๋ฆฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ

๋ถ€์ŠคํŠธ์ฝ”์Šค ๋ถ€์ŠคํŠธ์ฝ”์Šค๋Š” ๋„ค์ด๋ฒ„ ์ปค๋„ฅํŠธ์žฌ๋‹จ์—์„œ ๊ธฐํšํ•˜๊ณ  ์šด์˜ํ•˜๋Š” ์‹ค๋ฌดํ˜• ์˜จ๋ผ์ธ ๊ต์œก ํ”„๋กœ๊ทธ๋žจ์ž…๋‹ˆ๋‹ค. IT ๋ถ„์•ผ์— ๋Œ€ํ•œ ํ€„๋ฆฌํ‹ฐ ๋†’์€ ๊ฐ•์˜๋ฅผ ์ œ๊ณตํ•˜๊ณ  ์žˆ์œผ๋ฉฐ, ๋ˆ„๊ตฌ๋‚˜ ์ œํ•œ ์—†์ด ๋ฌด๋ฃŒ๋กœ ์ˆ˜๊ฐ• ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค!! ๋˜ํ•œ ๋ชจ๋“  ๊ณผ์ •์€ ํ”„๋กœ์ ํŠธ ํ˜•์‹์˜ ๊ณผ์ œ๋ฅผ ์ œ๊ณตํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ์‹ค๋ฌด ์—ญ๋Ÿ‰์„ ๊ธฐ๋ฅด๋Š”๋ฐ ์ตœ๊ณ ์˜ ํ”„๋กœ๊ทธ๋žจ์ž…๋‹ˆ๋‹ค!๐Ÿ‘๐Ÿ‘ ์ €๋Š” ์•ž์œผ๋กœ '์ฝ”ํ‹€๋ฆฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ' ๊ฐ•์˜๋ฅผ ํ•™์Šตํ•  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค. ์ €์™€ ํ•จ๊ป˜ ๊ณต๋ถ€ํ•˜์‹ค ๋ถ„๋“ค์€ ์•„๋ž˜ ๋งํฌ๋ฅผ ์ฐธ๊ณ ํ•ด์ฃผ์„ธ์š”. ๐Ÿ˜Š www.boostcourse.org/mo132 ์ฝ”ํ‹€๋ฆฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ธฐ๋ณธ1/2(ํ•จ์ˆ˜ํŽธ) ๋ถ€์ŠคํŠธ์ฝ”์Šค ๋ฌด๋ฃŒ ๊ฐ•์˜ www.boostcourse.org ์ฝ”ํ‹€๋ฆฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ถ€์ŠคํŠธ์ฝ”์Šค์˜ ์ฝ”ํ‹€๋ฆฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ฐ•์˜๋Š” ๊ตฌ๊ธ€์—์„œ ์•ˆ๋“œ๋กœ์ด๋“œ ๊ณต์‹ ์–ธ์–ด๋กœ ์ง€์ •๋œ '์ฝ”ํ‹€๋ฆฐ'์„ ํ•™์Šตํ•˜๋Š” ๊ณผ์ •์ž…๋‹ˆ๋‹ค. ์ด 3ํŽธ์œผ๋กœ ๊ตฌ์„ฑ๋˜..