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

 

 

 

 

~ Today I Learned ~

 

โœ”๏ธ ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ ํ’€์ด (ํ•˜์ƒค๋“œ ์ˆ˜)
โœ”๏ธ ์ฝ”ํ‹€๋ฆฐ์œผ๋กœ ๊ณ„์‚ฐ๊ธฐ ๋‹จ๊ณ„๋ณ„ ๊ตฌํ˜„ํ•˜๊ธฐ ๊ณผ์ œ ์ž‘์„ฑ ๋ฐ ํ•ด์„ค
โœ”๏ธ Gitbook ์ฝ”ํ‹€๋ฆฐ ๋ฌธ๋ฒ• ๊ณต๋ถ€ (ํด๋ž˜์Šค์™€ ์„ค๊ณ„, Null ์ฒ˜๋ฆฌ, ์ง€์—ฐ ์ดˆ๊ธฐํ™”, ์Šค์ฝ”ํ”„ ํ•จ์ˆ˜)

 

 

 


 

 

 

 

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

 

 

[Kotlin] ํ•˜์ƒค๋“œ ์ˆ˜ (ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์•Œ๊ณ ๋ฆฌ์ฆ˜)

๋ฌธ์ œ https://school.programmers.co.kr/learn/courses/30/lessons/12947 ์ ‘๊ทผ ๋˜ ๋ฌธ์ œ๋ฅผ ์ž˜๋ชป ์ดํ•ดํ•˜๊ณ  ํ’€๊ธฐ ์‹œ์ž‘ํ–ˆ๋‹ค. ๋ฌธ์ œ ์ œ๋Œ€๋กœ ์ฝ๋Š” ๋Šฅ๋ ฅ์ด ํ•„์š” ํ•ด๋‹น ์ˆซ์ž๊ฐ€ ๊ฐ€์ง€๋Š” ์ž๋ฆฌ ๊ฐœ์ˆ˜๋กœ ๋‚˜๋ˆ„์–ด์ง€๋ƒ๋Š” ๋ฌธ์ œ์ธ์ง€ ์•Œ์•„

limheejin.tistory.com

 

์ดํ•ด๋˜์ง€ ์•Š๋Š” ๋ถ€๋ถ„

  • ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ String์œผ๋กœ ๋ณ€ํ™˜ํ•˜๊ณ  mapํ•จ์ˆ˜์˜ it์œผ๋กœ ๊ฐ๊ฐ ๊ณ„์‚ฐํ•˜๋Š” ๋ฐฉ๋ฒ•์—์„œ ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ๋‹ค.
  • map{it.toInt()}๋Š” ์™œ ์•ˆ๋˜๊ณ  map{it - '0'}์€ ์™œ ๋˜๋Š” ๊ฑด์ง€ ์˜๋ฌธ์ด ๋“ค์—ˆ๋‹ค.
    '0'์„ ๋นผ์ฃผ๋Š” ์ด์œ ๋Š” ์ŠคํŠธ๋ง๋ฌธ์ž์—์„œ ์•„์Šคํ‚ค์ฝ”๋“œ ๊ฐ’ 48์„ ๋นผ์ฃผ๋Š” ๊ฑฐ๋ผ ์ˆซ์ž ๋ณ€ํ™˜๊ณผ ๊ฐ™์€๋ฐ,
    ๊ฒฐ๊ณผ์ ์œผ๋กœ toInt()๋Š” ์™œ ์ •์ƒ์ ์ธ ์ฝ”๋“œ๊ฐ€ ์•„๋‹Œ์ง€ ๊ถ๊ธˆํ–ˆ๋‹ค.
  • string์„ mapํ•˜๋ฉด it์ด string์ด ์•„๋‹ˆ๋ผ Char๊ฐ€ ๋˜๋Š”๋ฐ, ์ด Char ํ˜•์‹์„ ์ˆซ์ž๋ณ€ํ™˜ํ•  ์ˆ˜ ์—†๋Š” ๊ฑฐ์˜€๋‹ค.
  • map{it.toString().toInt()}๋กœ ์ž‘์„ฑํ•˜๋ฉด ์ฝ”๋“œ๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ์ž‘๋™ํ•œ๋‹ค.
  • ๊ทธ๋Ÿฐ๋ฐ ์ด์ „ ์•Œ๊ณ ๋ฆฌ์ฆ˜์—์„  ํฌ๊ฒŒ ๋ฌธ์ œ๊ฐ€ ์—†์—ˆ๋˜ ๊ฑฐ ๊ฐ™์•„ ๋„ˆ๋ฌด ์˜๋ฌธ์ด๋‹ค.

 

 

 

 

 

2. ์ฝ”ํ‹€๋ฆฐ์œผ๋กœ ๊ณ„์‚ฐ๊ธฐ ๋‹จ๊ณ„๋ณ„ ๊ตฌํ˜„ํ•˜๊ธฐ ๊ณผ์ œ ์ž‘์„ฑ ๋ฐ ํ•ด์„ค

 

[Android] Kotlin์œผ๋กœ ๊ณ„์‚ฐ๊ธฐ ๋‹จ๊ณ„๋ณ„ ๊ตฌํ˜„ํ•˜๊ธฐ

1. ๊ฐ„๋‹จํ•œ ์‚ฌ์น™์—ฐ์‚ฐ ๊ตฌํ˜„ package com.limheejin.calculator class Calculator { fun main() { println("=============๊ณ„์‚ฐ๊ธฐ=============") println("์•ˆ๋…•ํ•˜์„ธ์š”! ์‚ฌ์น™์—ฐ์‚ฐ ๊ณ„์‚ฐ๊ธฐ์ž…๋‹ˆ๋‹ค.") println("๊ณ„์‚ฐ์„ ์›ํ•˜์‹œ๋Š” ์ •์ˆ˜ ๋‘ ๊ฐœ๋ฅผ

limheejin.tistory.com

  • ๊ฐ์ฒด์ง€ํ–ฅ SOLID 5์›์น™์— ๋Œ€ํ•ด์„œ ์ฐพ์•„๋ณด๊ฒŒ ๋˜๋Š” ๊ณ„๊ธฐ๊ฐ€ ๋˜์—ˆ๋‹ค. ํŠนํžˆ SRP์™€ DIP์— ๋Œ€ํ•ด์„œ ์ดํ•ด๋„๊ฐ€ ๋†’์•„์กŒ๋‹ค.
  • ๋‹ค๋งŒ ๊ณผ์ œ ๋ ˆ๋ฒจ4๋ถ€ํ„ฐ๋Š” ์ถ”์ƒํด๋ž˜์Šค๋ฅผ ๊ตฌํ˜„ํ•˜๊ณ  ์—ฐ๊ฒฐํ•˜๋Š” ๊ณผ์ •์—์„œ ์ฝ”๋“œ๊ฐ€ ์‰ฝ์‚ฌ๋ฆฌ ์ดํ•ด๊ฐ€ ์•ˆ๊ฐ”๋‹ค.
  • ์•„์ง ๋ฌธ๋ฒ• ๊ณต๋ถ€๋ฅผ ๋œ ํ•ด์„œ ๋‹ค์Œ์ฃผ ์‹ฌํ™” ๋ฌธ๋ฒ•๊นŒ์ง€ ๊ณต๋ถ€ํ•˜๊ณ  ๋‹ค์‹œ๋ด์•ผ ํ•  ๊ฒƒ ๊ฐ™๋‹ค.
  • Stack ๋ถ€๋ถ„๋„... ์ž๋ฃŒ๊ตฌ์กฐ ๋ณต์Šต์ด ๋œ ๋’ค์— ๋‹ค์‹œ ๋ด์•ผ ํ•  ๊ฒƒ ๊ฐ™๋‹ค. 

 

 

 

 

 

3. Gitbook ์ฝ”ํ‹€๋ฆฐ ๋ฌธ๋ฒ• ๊ณต๋ถ€ (ํด๋ž˜์Šค์™€ ์„ค๊ณ„, Null ์ฒ˜๋ฆฌ, ์ง€์—ฐ ์ดˆ๊ธฐํ™”, ์Šค์ฝ”ํ”„ ํ•จ์ˆ˜)

 

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

7 ํด๋ž˜์Šค์™€ ์„ค๊ณ„ ํด๋ž˜์Šค: ๋ณ€์ˆ˜์™€ ํ•จ์ˆ˜์˜ ๋ชจ์Œ ๊ทธ๋ฃนํ™”ํ•  ์ˆ˜ ์žˆ๋Š” ํ•จ์ˆ˜์™€ ๋ณ€์ˆ˜๋ฅผ ํ•œ๊ตฐ๋ฐ์— ๋ชจ์•„ ๋†“๊ณ  ์‚ฌ์šฉํ•˜๊ธฐ ์‰ฝ๊ฒŒ ์ด๋ฆ„์„ ๋ถ™์—ฌ๋†“์€ ๊ฒƒ ํด๋ž˜์Šค์˜ ๊ธฐ๋ณธ ๊ตฌ์กฐ class ํด๋ž˜์Šค๋ช… { var ๋ณ€์ˆ˜ fun ํ•จ์ˆ˜() { //

limheejin.tistory.com

 

[Android ๊ธฐ์ดˆ] 03. ์ฝ”ํ‹€๋ฆฐ ๊ธฐ๋ณธ ๋ฌธ๋ฒ• - Null Safety

8 null ๊ฐ’์— ๋Œ€ํ•œ ์•ˆ์ •์ ์ธ ์ฒ˜๋ฆฌ: Null Safety Kotlin์€ null ๊ฐ’์˜ ์ฒ˜๋ฆฌ์— ๋งŽ์€ ๊ณต์„ ๋“ค์ธ ์–ธ์–ด null๋กœ ์ธํ•ด ํ”„๋กœ๊ทธ๋žจ ์ „์ฒด, ํ˜น์€ ์•ฑ ์ „์ฒด๊ฐ€ ๋ฉˆ์ถœ ์ˆ˜ ์žˆ์Œ // ํ”„๋กœ๊ทธ๋žจ์ด ๋ฉˆ์ถœ ์ˆ˜ ์žˆ๋Š” ์ƒํ™ฉ class One { fun print()

limheejin.tistory.com

 

[Android ๊ธฐ์ดˆ] 03. ์ฝ”ํ‹€๋ฆฐ ๊ธฐ๋ณธ ๋ฌธ๋ฒ• - ์ง€์—ฐ ์ดˆ๊ธฐํ™”

9 ์ง€์—ฐ ์ดˆ๊ธฐํ™” (lateinit, lazy) lateinit ๊ฐœ๋ฐœ์„ ํ•˜๋‹ค๋ณด๋ฉด ํด๋ž˜์Šค ์•ˆ์—์„œ ๋ณ€์ˆ˜๋งŒ Nullable๋กœ ๋ฏธ๋ฆฌ ์„ ์–ธํ•˜๊ณ  ์ดˆ๊ธฐํ™”๋ฅผ ๋‚˜์ค‘์— ํ•ด์•ผ ํ•  ๊ฒฝ์šฐ๊ฐ€ ์žˆ์Œ ์ด๋Ÿด ๊ฒฝ์šฐ lateinit ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉ Nullable๋กœ ์„ ์–ธํ•˜๋Š” ์ผ๋ฐ˜

limheejin.tistory.com

 

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

 

 

 

 


~ ETC ~

 

์ ์  ํ•œ ๋ฒˆ์— ์ดํ•ด ๋˜์ง€ ์•Š๋Š” ์˜์—ญ์ด ๋Š˜์–ด๋‚˜๊ณ  ์žˆ๊ณ , ๋•๋ถ„์— ๋‚˜์ค‘์— ๋‹ค์‹œ ์ฐพ์•„๋ด์•ผ ํ•  ๊ฒƒ์ด ์ฆ์‹ํ•˜๊ณ  ์žˆ๋‹ค... ์ถ”๊ฐ€์ ์ธ ๊ณต๋ถ€๋„ ์ข‹์ง€๋งŒ ์ž…๋ฌธ ๋‹จ๊ณ„์—์„  ์ฃผ์–ด์ง„ ๊ฑธ ์˜จ์ „ํžˆ ์†Œํ™”ํ•ด๋‚ด๋Š” ๊ฒŒ ๊ทน๊ทน๊ทน1์ˆœ์œ„๋ผ๋Š” ๊ฑฐ ์žŠ์ง€ ๋ง์ž.

 

 

 

 

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