[Android TIL] 240313
๋ฐ˜์‘ํ˜•

 

 

 

 

~ Today I Learned ~

 

โœ”๏ธ ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ ํ’€์ด (์„œ์šธ์—์„œ ๊น€์„œ๋ฐฉ ์ฐพ๊ธฐ, ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง€๋Š” ์ˆซ์ž ๋ฐฐ์—ด)
โœ”๏ธ Kotlin ๋ฌธ๋ฒ• ์ข…ํ•ฉ๋ฐ˜ ์ˆ˜๊ฐ• 5์ฃผ์ฐจ ๋ฐ ์ •๋ฆฌ
โœ”๏ธ ํ‚ค์˜ค์Šคํฌ ๊ณผ์ œ ์‹œ์ž‘

X๊ณ„ํš์‹คํŒจX  ๊ณ„์‚ฐ๊ธฐ ๊ณผ์ œ ๋‹ค์‹œ ์ž‘์„ฑ ๋ฐ git ์—…๋กœ๋“œ

 

 

 

 


 

 

 

 

 

1. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ ํ’€์ด (2๋ฌธ์ œ)

 

 

 

[Kotlin] ์„œ์šธ์—์„œ ๊น€์„œ๋ฐฉ ์ฐพ๊ธฐ(ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์•Œ๊ณ ๋ฆฌ์ฆ˜)

๋ฌธ์ œ https://school.programmers.co.kr/learn/courses/30/lessons/12919 ์ ‘๊ทผ seoul์˜ ์—˜๋ฆฌ๋จผํŠธ ์ค‘ "Kim"์˜ ์œ„์น˜(์ธ๋ฑ์Šค)๋ฅผ ์ฐพ์Œ "Kim"์˜ ์ธ๋ฑ์Šค ๊ฐ’์„ x๋กœ ์„ ์–ธ "๊น€์„œ๋ฐฉ์€ $x์— ์žˆ๋‹ค" String ํ˜•์‹์œผ๋กœ ๋ฆฌํ„ด ์‰ฝ๊ฒŒ ํ’€์ด ์™„๋ฃŒ

limheejin.tistory.com

 

[Kotlin] ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง€๋Š” ์ˆซ์ž ๋ฐฐ์—ด (ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์•Œ๊ณ ๋ฆฌ์ฆ˜)

๋ฌธ์ œ https://school.programmers.co.kr/learn/courses/30/lessons/12910 ์ ‘๊ทผ 1. arr์˜ ์›์†Œ ๊ฐœ์ˆ˜๋งŒํผ์˜ ๋ฐ˜๋ณต๋ฌธ ์ž‘์„ฑ 2. arr์˜ ์›์†Œ ์ค‘ divisor๋กœ ๋‚˜๋ˆ„์–ด ๋‚˜๋จธ์ง€๊ฐ€ 0์ธ ๊ฐ’์„ ๋ฐฐ์—ด returnArray์— ์ €์žฅ 3. ๋งŒ์•ฝ 1์˜ ๊ณผ์ •์—์„œ retu

limheejin.tistory.com

 

  • ์˜ค๋Š˜ ๋ฌธ์ œ๊ฐ€ ์œ ๋… ์‰ฌ์šด๊ฑด์ง€, ์•„๋‹ˆ๋ฉด ์•Œ๊ณ ๋ฆฌ์ฆ˜ ํ’€์ด์— ์ต์ˆ™ํ•ด์ง„๊ฑด์ง€ ๋ชฐ๋ผ๋„ ์ƒ๊ฐ๋ณด๋‹ค ํ’€์ด๊ฐ€ ์ˆ˜์›”ํ•ด์„œ 2๊ฐœ๋ฅผ ํ’€์—ˆ๋‹ค.
  • int ์›์†Œ๋ฅผ ๊ฐ€์ง€๋Š” ๋ฌด์ž‘์œ„์˜ Array๋ฅผ ์ดˆ๊ธฐํ™”ํ•  ๋•Œ ์–ด๋ ต๊ฒŒ ์ƒ๊ฐํ•  ๊ฑฐ ์—†์ด ๊ทธ๋ƒฅ var ๋ฐฐ์—ด๋ช… = intArrayOf() ํ•˜๋ฉด ๋œ๋‹ค. 
  • plus ํ•จ์ˆ˜์™€, ๋ฐฐ์—ด์„ ๊บผ๋‚ด์˜ค๋Š” for๋ฌธ์„ ์ž˜๋ชป ์ž‘์„ฑํ•œ ๋ถ€๋ถ„์— ๋Œ€ํ•ด์„œ๋„ ์•Œ๊ฒŒ ๋˜์—ˆ๋‹ค.
  • ๋ฐฐ์—ด ์ค‘ ํŠน์ • ์›์†Œ์˜ ์ธ๋ฑ์Šค๋ฅผ ์ฐพ๋Š” ๋ฒ•์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค.
    - indexOf() : ๋ฐฐ์—ด๋ช….indexOf(์›์†Œ๋ช…)
    - withIndex() : ๋ฐฐ์—ด๋ช….withIndex() .first { ์›์†Œ๋ช… == it.value } .index
    - find() : ๋ฐฐ์—ด๋ช….indices.find { ๋ฐฐ์—ด๋ช…[it] == ์›์†Œ๋ช… }
    - ๋ฃจํ”„๋ฅผ ์‚ฌ์šฉํ•ด ์ฐพ๊ณ  ์žˆ๋Š” ์ฒซ ๋ฒˆ์งธ ํ•ญ๋ชฉ์˜ ์ธ๋ฑ์Šค๋ฅผ ๋ฐ˜ํ™˜

 

 

 

 

 

2. Kotlin ๋ฌธ๋ฒ• ์ข…ํ•ฉ๋ฐ˜ ์ˆ˜๊ฐ• 5์ฃผ์ฐจ ๋ฐ ์ •๋ฆฌ

 

Kotlin ๋ฌธ๋ฒ• ์ข…ํ•ฉ๋ฐ˜ ์™„๊ฐ• ์™„๋ฃŒ

 

 

[Android ๊ธฐ์ดˆ] ๋น„๋™๊ธฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ๊ธฐ์ดˆ (์“ฐ๋ ˆ๋“œ์™€ ์ฝ”๋ฃจํ‹ด)

๋น„๋™๊ธฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋™๊ธฐ์  ํ”„๋กœ๊ทธ๋ž˜๋ฐ : ์ˆœ์„œ๋Œ€๋กœ ํ•˜๋‚˜์˜ ์ž‘์—…์”ฉ ์ˆ˜ํ–‰ํ•˜๋Š” ํ–‰์œ„ - ์ˆœ์ฐจ์ ์œผ๋กœ ์ˆ˜ํ–‰ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์•ž์„  ์ž‘์—…์— ์˜ํ–ฅ์„ ๋ฐ›์Œ - ์•ž์„  ์ž‘์—…์ด ๋๋‚˜์ง€ ์•Š๋Š”๋‹ค๋ฉด, ๋’ค์˜ ์ž‘์—…์€ ์˜์›ํžˆ ์ˆ˜

limheejin.tistory.com

 

[Android ๊ธฐ์ดˆ] ์‹ฑ๊ธ€ํ†ค(Singleton) ํŒจํ„ด ์ดํ•ดํ•˜๊ธฐ

์‹ฑ๊ธ€ํ†ค ๊ฐœ๋… ํ”„๋กœ๊ทธ๋žจ ์‹œ์ž‘๊ณผ ์ข…๋ฃŒ๊นŒ์ง€ ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค๋ฅผ ๋‹จ ํ•œ ๋ฒˆ๋งŒ ์ƒ์„ฑํ•˜์—ฌ ์‚ฌ์šฉํ•˜๋Š” ํŒจํ„ด ํ”„๋กœ๊ทธ๋žจ ์ „์—ญ์—์„œ, ์ด ์ธ์Šคํ„ด์Šค๋ฅผ ๊ณต์œ ํ•˜๋ฉฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ๋” ํ•˜๋Š” ๊ฒƒ ์ฝ”ํ‹€๋ฆฐ์€ companion, object

limheejin.tistory.com

 

[Android ๊ธฐ์ดˆ] 03. ์ฝ”ํ‹€๋ฆฐ ๊ธฐ๋ณธ ๋ฌธ๋ฒ• - ์Šค์ฝ”ํ”„ ํ•จ์ˆ˜

10 ์Šค์ฝ”ํ”„ ํ•จ์ˆ˜ (Scope Functions) ์ฝ”๋“œ๋ฅผ ์ถ•์•ฝํ•ด์„œ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ฃผ๋Š” ํ•จ์ˆ˜, ์˜์—ญ ํ•จ์ˆ˜ ์‚ฌ์šฉ๋ฒ•์€ ํ•จ์ˆ˜์ฒ˜๋Ÿผ ์“ฐ์ง€ ์•Š๊ณ  run, let์ฒ˜๋Ÿผ ๊ด„ํ˜ธ ์—†์ด ์ผ์ข…์˜ ํ‚ค์›Œ๋“œ ๊ฐ™์ด ์‚ฌ์šฉ lateinit๊ณผ ํ•จ๊ป˜ Safe Call ๋‚จ

limheejin.tistory.com

 

  • ์œ ์šฉํ•œ ๊ธฐ๋Šฅ(ํ˜• ๋ณ€ํ™˜, ์ž๋ฃŒํ˜• ํƒ€์ž… ํ™•์ธ is, ๋ณต์ˆ˜ ๋ฐ์ดํ„ฐ ๋ฆฌํ„ด Pair/Triple, Scope Functions let/with/also/apply/run)
  • ํ™•์žฅ ํ•จ์ˆ˜ (์™ธ๋ถ€์—์„œ ๊ธฐ์กด ํด๋ž˜์Šค์— ๋ฉ”์†Œ๋“œ ์ถ”๊ฐ€, ์˜ค๋ฒ„๋ผ์ด๋“œ ๋ถˆ๊ฐ€)
  • ๋น„๋™๊ธฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ (๊ฒฐ๊ณผ ๋ฐ˜ํ™˜์— ์ƒ๊ด€ ์—†์ด ๋™์‹œ ์ˆ˜ํ–‰)
  • ์“ฐ๋ ˆ๋“œ (๋น„๋™๊ธฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ์ผ์ข…, ํ”„๋กœ์„ธ์Šค๋ณด๋‹ค ์ž‘์€ ๋‹จ์œ„)
  • ์ฝ”๋ฃจํ‹ด (๋น„๋™๊ธฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ์ผ์ข…, ์“ฐ๋ ˆ๋“œ๋ณด๋‹ค ์ž‘๊ฒŒ ๊ฒฝ๋Ÿ‰ํ™” ํ•œ ๊ฒƒ, ๊ตฌ๊ธ€ ๊ถŒ์žฅ)

5์ฃผ์ฐจ๊นŒ์ง€ ๋ชจ๋‘ ์ˆ˜๊ฐ• ๋’ค, ๊ด€๋ จ ๋‚ด์šฉ์„ ๊ธฐ์กด ์ฝ”ํ‹€๋ฆฐ ๋ฌธ๋ฒ• ๊ฒŒ์‹œ๊ธ€์— ์ถ”๊ฐ€ ๋ฐ ๋‹จ๊ถŒํ™”ํ•˜์˜€๋‹ค.
ํŠนํžˆ ๋‚ด์šฉ์„ ๋งŽ์ด ์ˆ˜์ •ํ•œ ๋ถ€๋ถ„์€ '์Šค์ฝ”ํ”„ ํ•จ์ˆ˜' ์ด๋‹ค.

๋™์‹œ์„ฑ์„ ์œ„ํ•œ ๋น„๋™๊ธฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ (์“ฐ๋ ˆ๋“œ, ์ฝ”๋ฃจํ‹ด) ๋ถ€๋ถ„์ด ๋งค์šฐ ํฅ๋ฏธ๋กœ์› ๋‹ค. ๊ธฐ์‚ฌ ๊ณต๋ถ€ํ•˜๋˜ ์‹œ์ ˆ์— ํ”„๋กœ์„ธ์Šค ์Šค์ผ€์ค„๋ง ๊ธฐ๋ฒ•๋“ค์„ ๋งŽ์ด ๋ฐฐ์› ์—ˆ๋Š”๋ฐ, ์‹ค์ œ๋กœ ํ”„๋กœ๊ทธ๋žจ ๊ด€์ ์—์„œ ์ด๋Ÿฐ ์˜๋ฏธ๊ตฌ๋‚˜ ์‹ถ์—ˆ๋‹ค.

 

  • ์‚ฌ์‹ค ์˜ค๋Š˜ ํ•˜๋ฃจ๋™์•ˆ ์ด๋ก  ์ •๋ฆฌํ•œ ๋‚ด์šฉ์ด ๋” ๋งŽ์•˜๋Š”๋ฐ, ํ‹ฐ์Šคํ† ๋ฆฌ ํ•˜๋ฃจ ๊ธ€ ๊ฐœ์ˆ˜๋ฅผ ์ดˆ๊ณผํ•˜๋Š” ๋ฐ”๋žŒ์— ์˜ฌ๋ฆฌ์ง€ ๋ชปํ–ˆ๋‹ค.

 

 

 

 

3. ํ‚ค์˜ค์Šคํฌ ๊ณผ์ œ ์‹œ์ž‘

 

 

  • ํ‚ค์˜ค์Šคํฌ ๊ณผ์ œ๋ฅผ ์ •๋ง '์‹œ์ž‘'๋งŒ ํ–ˆ๋‹ค. (Lv 0 ๊ตฌํ˜„)
  • ๋‚ด์ผ์€ ์ตœ์†Œ Lv3 ๊นŒ์ง€ ๊ตฌํ˜„ํ•ด๋ณผ ์ƒ๊ฐ์ด๋‹ค.

 

 

 

 

 

 


~ Retrospect ~

 

๋ฐ”๋ผ๋ณด๊ณ  ์žˆ๋˜ ๋ชฉํ‘œ์—์„œ ์‚๋—ํ•˜๋Š” ๊ฒฝํ—˜์ด ์˜ค๋žœ๋งŒ์ด๋‹ค. ์Šค์Šค๋กœ ๊ฐ•ํ•˜๊ณ  ๊ดœ์ฐฎ๋‹ค ์ƒ๊ฐํ–ˆ๋Š”๋ฐ, ์ƒ๊ฐ๋ณด๋‹ค ์˜ํ–ฅ์ด ๊ฐ”๋Š”์ง€ ๋ฉ˜ํƒˆ์— ์‚ด์ง ๊ธˆ์ด ๊ฐ€์„œ ์ž๊ธฐ๊ณ„๋ฐœ๊ณผ ์ •์‹ ๋ ฅ์„ ๋‹ค์žก๋Š” ์˜์ƒ์„ ๋งŽ์ด ๋ดค๋‹ค. ๋ถ€๋ชจ๋‹˜์ด ์‚ฌ๋ž‘์œผ๋กœ ๊ธธ๋Ÿฌ์ฃผ์‹  ๋”ธ์ด์ž, ์˜ค๋น ์˜ ์ž๋ž‘์Šค๋Ÿฐ ๋™์ƒ์ด์ž, ์ฃผ๋ณ€ ์‚ฌ๋žŒ๋“ค์ด ์‘์›ํ•ด์ฃผ๋Š” ์นœ๊ตฌ์ž„์„ ์žŠ์ง€๋ง์ž. ์ฃผ๋ณ€์ธ๋“ค์—๊ฒŒ ๊ฐ์‚ฌํ•ด์ง€๋Š” ํ•˜๋ฃจ์˜€๋‹ค. 

 

 

 

 

 

 

 

๋ฐ˜์‘ํ˜•
 ๐Ÿ’ฌ C O M M E N T