~ 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์์๋ผ๋ ๊ฑฐ ์์ง ๋ง์.