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

 

 

 

 

~ Today I Learned ~

 

โœ”๏ธ ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ ํ’€์ด (๋‘ ์ •์ˆ˜ ์‚ฌ์ด์˜ ํ•ฉ)
โœ”๏ธ ๋„ค์ด๋ฒ„ ๋ถ€์ŠคํŠธ์ฝ”์Šค - Hello, ์ฝ”ํ‹€๋ฆฐ ์™„๊ฐ•
โœ”๏ธ ๋ฌธ๋ฒ• ํŠน๊ฐ• ๋‚ด์šฉ ํ‹ฐ์Šคํ† ๋ฆฌ์— ๋‹จ๊ถŒํ™”
โœ”๏ธ ๊ณ„์‚ฐ๊ธฐ ๊ณผ์ œ ๋ณต์Šต ํŠน๊ฐ• ์ˆ˜๊ฐ•



 

 

 

 


 

 

 

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

 

[Kotlin] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์•Œ๊ณ ๋ฆฌ์ฆ˜ - ๋‘ ์ •์ˆ˜ ์‚ฌ์ด์˜ ํ•ฉ

๋ฌธ์ œ https://school.programmers.co.kr/learn/courses/30/lessons/12912 ์ ‘๊ทผ ๋ฌด์˜์‹์ค‘์— ๋‹น์—ฐํžˆ ์ž…๋ ฅ๋˜๋Š” ๊ฐ’ a, b์— ๋Œ€ํ•ด์„œ a < b๋ผ ์ƒ๊ฐํ–ˆ๊ณ  ๊ทธ๋ƒฅ a๋ถ€ํ„ฐ b๊นŒ์ง€ for ๋ฌธ์„ ๋Œ๋ฆฌ๊ณ  sum์ด๋ผ๋Š” ๋ณ€์ˆ˜์— ๊ณ„์† ๋”ํ•ด์„œ returnํ•˜

limheejin.tistory.com

  • ๊ฐ„๋‹จํ•œ ๋ฌธ์ œ์˜€์œผ๋‚˜ ์‹ค์ˆ˜ํ•˜๊ธฐ ์‰ฌ์šด ๋ฌธ๋ฒ• ๋ถ€๋ถ„์„ ๋ณต๊ธฐํ•œ ๋Š๋‚Œ์ด์—ˆ๋‹ค.

 

 

 

 

2. ๋„ค์ด๋ฒ„ ๋ถ€์ŠคํŠธ์ฝ”์Šค - Hello, ์ฝ”ํ‹€๋ฆฐ ์™„๊ฐ•

 

 

์ฝ”ํ‹€๋ฆฐ์˜ ํŠน์ง•

  • Statically Typed (์ •์  ํƒ€์ž…, ์ž๋ฃŒํ˜• ์ถ”๋ก  ๊ฐ€๋Šฅ, ์ •์  C, C++, Java, Kotlin / ๋™์  JS, Python, Objective-C, PHP)
  • Interoperable (์ž๋ฐ”์™€ 100% ํ˜ธํ™˜, ์ฝ”ํ‹€๋ฆฐ ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ์ž๋ฐ” ์ค‘๊ฐ„์ฝ”๋“œ์ธ ByteCode ์ƒ์„ฑ)
  • Null Safety (NPE๋ฅผ ๋ฐฉ์ง€ํ•˜๋Š” ์•ˆ์ •์„ฑ, Nullable/not null)
  • Immutable (์ƒํƒœ๋ฅผ ๋ฐ”๊พธ์ง€ ์•Š๋Š” ๋ถˆ๋ณ€์„ฑ ์ œ๊ณต, Immutable /Mutable)
  • Concise (์ฝ”๋“œ์˜ ๊ฐ„๊ฒฐ์„ฑ, ๋ณด์ผ๋Ÿฌํ”Œ๋ ˆ์ดํŠธ์˜ ์ตœ์†Œํ™”)
  • Extension Functions (ํ™•์žฅ ํ•จ์ˆ˜, ํด๋ž˜์Šค ์ƒ์†์ด๋‚˜ ๋””์ž์ธ ํŒจํ„ด์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ ๋„ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ ํ™•์žฅ ๊ฐ€๋Šฅ)
  • Functional Programming (ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ, ํ•จ์ˆ˜๊ฐ€ ์ผ๊ธ‰ ๊ฐ์ฒด ์‚ฌ์šฉ ๊ฐ€๋Šฅ, ๋žŒ๋‹ค์‹์„ ํ†ตํ•ด ์„ ์–ธ๋˜์ง€ ์•Š๊ณ ๋„ ์ต๋ช…์˜ ํ•จ์ˆ˜๊ธฐ๋Šฅ์„ ์‹์— ์ „๋‹ฌ ๊ฐ€๋Šฅ)
  • Kotlin Multiplatform (Kotlin/JVM, Kotlin/Native, Kontlin/JS)

์บ ํ”„์—์„œ ๋ฐฐ์šด ๋‚ด์šฉ๋“ค์„ ๊ฐ€๋ณ๊ฒŒ ํœด์‹ ์ฐจ์›์—์„œ ๋Œ์•„๋ณด๋Š” ๋Š๋‚Œ์ด๋ผ ์ข‹์•˜๋‹ค.

 

 

 

 

3. Gitbook ์ฝ”ํ‹€๋ฆฐ ๊ธฐ๋ณธ ๋ฌธ๋ฒ• ๋ณต์Šต

 

 

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

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

limheejin.tistory.com

  • ์Šค์ฝ”ํ”„ ํ•จ์ˆ˜ ๋ถ€๋ถ„์˜ ๋ถ„๋ฅ˜๊ฐ€ ๋งŽ์ด ํ—ท๊ฐˆ๋ ธ๋‹ค.

 

 

 

 

4. ๋ฌธ๋ฒ• ํŠน๊ฐ• ๋‚ด์šฉ ๋ณต์Šต ๋ฐ ๋‹จ๊ถŒํ™” 

 

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

7 ํด๋ž˜์Šค์™€ ์„ค๊ณ„ ํด๋ž˜์Šค: ๋ณ€์ˆ˜์™€ ํ•จ์ˆ˜์˜ ๋ชจ์Œ ๊ทธ๋ฃนํ™”ํ•  ์ˆ˜ ์žˆ๋Š” ํ•จ์ˆ˜์™€ ๋ณ€์ˆ˜๋ฅผ ํ•œ๊ตฐ๋ฐ์— ๋ชจ์•„ ๋†“๊ณ  ์‚ฌ์šฉํ•˜๊ธฐ ์‰ฝ๊ฒŒ ์ด๋ฆ„์„ ๋ถ™์—ฌ๋†“์€ ๊ฒƒ ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ(Object-Oriented Programming)์—์„œ ์ค‘์š”ํ•œ ๊ฐœ

limheejin.tistory.com

  • ๋ถ•์–ด๋นต ์ด์•ผ๊ธฐ ๋ฐ ํด๋ž˜์Šค/์ƒ์† ์˜์—ญ์—์„œ ์ •๋ฆฌ๊ฐ€ ๋ฏธํกํ–ˆ๋˜ ๋ถ€๋ถ„์„ ๋ณด์™„ํ•˜์˜€๋‹ค.

 

 

 

 

5. ๊ณ„์‚ฐ๊ธฐ ๊ณผ์ œ ๋ณต์Šต ํŠน๊ฐ• ์ˆ˜๊ฐ•

 

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

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

limheejin.tistory.com

  • ์ดํ•ด๊ฐ€ ์•ˆ ๋˜๋˜ ๋ถ€๋ถ„์„ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ์‹œ๊ฐ„์ด์—ˆ๋‹ค.
  • ํ•จ์ˆ˜์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ๋‹ค์‹œ ํ•จ์ˆ˜๋กœ ๋„˜๊ฒจ์ฃผ๋Š” ํ˜•์‹์„ ์ดํ•ดํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค.
  • ์ด๋ฒˆ ์ฃผ ์•ˆ์— ๋‹ค์‹œ ๊ณ„์‚ฐ๊ธฐ ๊ณผ์ œ๋ฅผ Lv5๊นŒ์ง€ ๋‚ด ํž˜์œผ๋กœ ๊ตฌํ˜„ํ•ด๋ณผ ๊ฒƒ์ด๋‹ค.

 

 


 

~ Trouble Shooting ~

 

 

class Solution {
    fun solution(a: Int, b: Int): Long {
        var sumInt = 0
        for(i in a .. b){
            var sumInt += i
        }
        return sumInt.toLong()
    }
}

1. /Solution.kt:5:24: error: unexpected tokens (use ';' to separate expressions on the same line) var sumInt += i

  • ๋‘ ๋ฒˆ์งธ sumInt ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•  ๋•Œ ์ด๋ฏธ ์ƒ์œ„ ์Šค์ฝ”ํ”„์— ์žˆ๋Š” sumInt ๋ณ€์ˆ˜๋ฅผ ์žฌ์„ ์–ธํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค.
  • ์ฝ”ํ‹€๋ฆฐ์—์„œ๋Š” ๋ณ€์ˆ˜์˜ ์žฌ์„ ์–ธ์ด ํ—ˆ์šฉ๋˜์ง€ ์•Š๋Š”๋‹ค. (์ •์  ํ•จ์ˆ˜)
  • ํ•ด๋‹น ๋ถ€๋ถ„์„ ์ˆ˜์ •ํ•˜์—ฌ var์„ ๋นผ๊ณ  ๊ธฐ์กด์˜ sumInt ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ์ˆ˜์ •ํ•˜๋ฉด ํ•ด๋‹น ์˜ค๋ฅ˜๋Š” ์‚ฌ๋ผ์ง„๋‹ค.


 

 


~ Retrospect ~

 

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

 

 

 

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