TIL
240123 TIL
์ค๋ ํ์ตํ ๋ด์ฉ Kotlin In Action 2์ฅ 3, 4 - Smart Cast Jetpack Compose Tutorial - Compose Essential 2, 3 ์์ธํ ํ์ต ๋ด์ฉ ์ ๋ฆฌ https://dodobest.notion.site/1-23-a61fdd734c564884b505e83896b46117?pvs=4
TIL
240123 TIL
์ค๋ ํ์ตํ ๋ด์ฉ Kotlin In Action 2์ฅ 3, 4 - Smart Cast Jetpack Compose Tutorial - Compose Essential 2, 3 ์์ธํ ํ์ต ๋ด์ฉ ์ ๋ฆฌ https://dodobest.notion.site/1-23-a61fdd734c564884b505e83896b46117?pvs=4
TIL
240122 TIL
์ค๋ ํ์ตํ ๋ด์ฉ ์ฝํ๋ฆฐ ์ฝ๋ฃจํด 2์ฅ ์ํธ์ค ๋น๋ Collection๊ณผ ๋น๊ตํ์ฌ Sequence๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ์ฅ์ ์ ๋ฌด์์ผ๊น์? Effective Kotlin Second Edition 54. Prefer Sequences for big collections with more than one processing step ๋ด์ผ๋ฐฐ์์บ ํ 1์ฃผ์ฐจ ๊ฐ์ Leetcode https://leetcode.com/problems/set-mismatch/description lateinit var - primitive type์ ์ฌ์ฉํ ์ ์๋ค. - ํ์ ์ ๋ฐ๋์ non-nullable ์ด์ด์ผ ํ๋ค. ์ฌ์ฉํ๋ ์์ ์ ๊ฐ์ ๊ฐ์ง๊ณ ์๋ค๋ lateinit๊ณผ ๊ฐ์ด ์๋ค๋ ์๋ฏธ์ nullable์ ์๋ก ์ด์ธ๋ฆฌ์ง ์์์๋ผ๊ณ ์ด..
TIL
240119 TIL
์ค๋ ํ์ตํ ๋ด์ฉ ๋ฆฌํธ ์ฝ๋ ๋ฌธ์ ์ด์ ํ์๋ ๋ฌธ์ ๋๋ถ์ ๋ง์ถ ์ ์์๋ค. https://leetcode.com/problems/minimum-falling-path-sum Android ํ๋ก์ ํธ ํ์ต - Fragment์์ Observe ํ ๋, viewLifecycleOwner๋ฅผ ์ฌ์ฉํ๋ ์ด์ ๋ ๋ฌด์์ผ๊น์? - LiveData์ Object๋ฅผ ์ ๋ฐ์ดํธํ๊ธฐ ์ํ setValue, postValue ํจ์์ ์ฐจ์ด๋ฅผ ๋งํด์ฃผ์ธ์. - Fragment์ onCreateView์ onViewCreated๋ ์ด๋ค ์ฐจ์ด๊ฐ ์์๊น์? ์์ธํ ํ์ต ๋ด์ฉ ์ ๋ฆฌ https://dodobest.notion.site/01-19-9bc729f4961d40d3810eebaa84d743cd?pvs=4 ์ค๋ ํ์ตํ์ง ๋ชปํ ๋ด์ฉ ์ ..
TIL
240118 TIL
์ค๋ ํ์ตํ ๋ด์ฉ ๋ด์ผ๋ฐฐ์์บ ํ - Android ํ์ต ์๋ฃ ~ 10. ์ค์ฝํ ํจ์(์) - ํ๋กํผํฐ๊ฐ ์๋ Kotlin ํด๋์ค๋ฅผ Java์์ ์ฌ์ฉํ ๋, ํ๋กํผํฐ ์ด๋ฆ์ด is๋ก ์์ํ๋ฉด ๊ฒํฐ์๋ get์ ๋ถ์ด์ง ์๊ณ ์๋ ์ด๋ฆ์ ๊ทธ๋๋ก ์ฌ์ฉํ๋ฉฐ, ์ธํฐ์๋ is๋ฅผ set์ผ๋ก ๋ฐ๊พผ ์ด๋ฆ์ ์ฌ์ฉํ๋ค. class Person(val isMarried: Boolean) // ์๋ฐ์์ ์ฌ์ฉ์ Person person = new Person(false); System.out.println(person.isMarried); // false person.setMarried(true); System.out.println(person.isMarried); // true ๊ฐ๋ฐ์ ๋ฉด์ ์ค๋น ๋ฐฉ๋ฒ ๋ฉด์ ์ ์๊ธฐ์์ ์์ํ๊ณ , ์๊ธฐ..
TIL
240117 TIL
์ค๋ ํ์ตํ ๋ด์ฉ ๋ฆฌํธ์ฝ๋ ๋ฌธ์ ๋ฆฌ์คํธ์์ ์ค๋ณต์ด ์๋์ง ํ์ธํ ์ ์๋ ๊ฐ์ฅ ๋น ๋ฅธ ๋ฐฉ๋ฒ์ hashSet์ ํ์ฉํ๋ ๊ฒ์ด ๋ง์๊น? GPT4์ ๋ฐ๋ฅด๋ฉด ๊ทธ๋ ๋ค๊ณ ํ๋ค.. https://leetcode.com/problems/unique-number-of-occurrences/description/ ๋ด์ผ๋ฐฐ์์บ ํ - Android ํ์ต ์๋ฃ ~ 7.ํด๋์ค์ ์ค๊ณ - kotlin์ MutableList๋ interface์ด๊ณ , mutableListOf๋ฅผ ์ฌ์ฉํ๋ฉด ArrayList ๊ตฌํ์ฒด๊ฐ ์ฌ์ฉ๋๋ค. - Kotlin list collection์ add, remove ํจ์๋ฅผ ์ด์ฉํด์ ์ค๊ฐ ๊ฐ์ ์ญ์ ํ๊ฑฐ๋ ๋ํ๋ฉด ๊ทธ ์ดํ์ ์๋ ๊ฐ๋ค์ด ํ ์นธ์ฉ ๋ค๋ก ์ด๋ํ๊ฑฐ๋ ์์ผ๋ก ์ด๋ํ๋ค. ๊ทธ๋์ O(n) ์๊ฐ์ด ์์๋๊ธฐ ๋๋ฌธ์..
TIL
240116 TIL
์ค๋ ํ์ตํ ๋ด์ฉ ๋ฆฌํธ์ฝ๋ ๋ฌธ์ Set์ ๊ตฌํ ์๋ฆฌ์ ๋ํด ํ์ตํ ์ ์์๋ค https://leetcode.com/problems/insert-delete-getrandom-o1/description/ ๋ด์ผ๋ฐฐ์์บ ํ - Android ํ์ต ์๋ฃ - ์๋๋ก์ด๋๋ JVM์ด ์๋ ์๋๋ก์ด๋ ๋ฐํ์(ART)๋ฅผ ์ฌ์ฉํ๋ค. - Kotlin์์ String์ Primitive type(๊ธฐ๋ณธ ํ์ )์ด ์๋ Class๋ค. - ===๋ ๊ฐ์ฒด์ ์ฐธ์กฐ ๊ฐ์ ๋น๊ตํ๋ค. - Kotlin์ === ๋ Java์ ==์ ๋์ผํ๋ค. - Kotlin์ == ๋ Java์ equals์ ๋์ผํ๋ค. - String Interning์ ์ํด ์ปดํ์ผ ๋จ๊ณ์์ ๋์ผํ String์ ๊ฐ๋ฆฌํค๋ ๋ค๋ฅธ ๋ณ์๊ฐ ๋์ผํ ๊ฐ์ฒด ์ฃผ์๊ฐ์ ๊ฐ์ง ์ ์๋ค. - S..
TIL
์คํํฐ ๋ ธํธ
๋ด๊ฐ ์ฑ ํธ๋(iOS, Android)์ ์ฐธ์ฌํ ๊ณ๊ธฐ๋ ๋ฌด์์ธ๊ฐ์? ์ฌํด 2์์ ํ๊ต๋ฅผ ์กธ์ ํ๊ณ , ํ๋ฐ๊ธฐ ์ฑ์ฉ๊น์ง ๋ ํ๋ณด๋ค๋ ๊ต์ก ํ๋ก๊ทธ๋จ์ ์ฐธ์ฌํ๋ ๊ฒ์ด ์ข๋ค๊ณ ์๊ฐํด์ ์ฐธ์ฌํ์ต๋๋ค. ๋ ํํ ๋, ์ ๋ต์ด ์๋ ๊ตฌํ์ ๋ํ ๋์ ์ ํ๊ณผ ๊ทผ๊ฑฐ๊ฐ ์ณ์์ง ํ๋จํ๊ธฐ ํ๋ค์๋๋ฐ, ํ์ต ์๊ฐ ๋์ ํ์ ๊ฐ๋ฐ์์ธ ํํฐ ๋๋ค์ด ์์ฃผํ์ฌ ์ง๋ฌธ์ ๋ฐ์์ค๋ค๋ ์ ์ด ์ข์์ต๋๋ค. ๋ด๊ฐ ์ดํดํ ์ฑ๊ฐ๋ฐ์๋ ์ด๋ค ์ญํ ์ ํ๋ ์ฌ๋์ธ๊ฐ์? ๋ชจ๋ฐ์ผ ํ๊ฒฝ์์ ์ฌ์ฉ์์๊ฒ ์ ๊ณต๋๋ ์๋น์ค๋ฅผ ๊ฐ๋ฐํ๋ ์ฌ๋์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ๊ฐ๋ฐ์ ๊ฒฝํํด๋ณด์ จ๋์? ํด๋ณด์ จ๋ค๋ฉด ์ด๋ค ๊ฒฝํ์ ํ์ จ๋์ง๋ฅผ ์์ฑํด์ฃผ์๊ณ , ์๋๋ผ๋ฉด ์ฑ๊ฐ๋ฐ์ ๋ํด ์ฐพ์๋ณธ ๊ฒ์ ์์ฑํด์ฃผ์ธ์. ํ ๊ต์กํ๋ก๊ทธ๋จ์์ ํํ๋ก์ ํธ๋ก ๋์ค๊ตํต ๋ง์ฐจ ์ ๋ณด ์ฑ์ ๊ฐ๋ฐํ ๊ฒฝํ์ด ์์ต๋๋ค. https://gi..
์ค์
Android Studio Junit5 ์ค์ ๋ฐฉ๋ฒ(Test events were not received)
Android Stduio์์ ์ ๋ ํ ์คํธ๋ฅผ ์คํํ ํ, Test events were not received ์ค๋ฅ๊ฐ ๋์๋ค. org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:testDebugUnitTest'. Caused by: org.gradle.api.tasks.testing.TestExecutionException: No tests found for given includes: [com.github.dodobest.fruitcardgame.model.game.CardDeckImplTest](--tests filter) Junit5๋ฅผ ์คํํ๊ธฐ ์ํ gradle ์ค์ ์ด ๋๋ฝ๋์ด ๊ทธ๋ ๋ค. Android ๊ณต์ ๋ฌธ์์..
๊ธฐํ
Leetcode ํ๋ฆฌ๋ฏธ์ ๊ตฌ๋งค
LeetCode๋ก ์ฝ๋ฉํ ์คํธ๋ฅผ ์ค๋นํ๊ณ ์๋๋ฐ, Daily Problem์ ๋งค์ผ ํธ๋ ๊ฒ์ ์งํค๊ธฐ ์ด๋ ค์ ๋ค. ๋ํ ๋จ์ํ ๋ฌธ์ ๋ฅผ ํผ๋ค๊ณ ํด์, ์ฝ๋ฉํ ์คํธ ์ฌ๊ณ ๋ ฅ์ด๋ ์์ด๋์ด๊ฐ ์ฆ์ง๋๋ค๋ ๋๋์ ๋ฐ์ง ๋ชปํ๋ค. ๊ฐ๊ฒฉ์ ๋น์ธ์ง๋ง, FAANG์์ ์ถ์ ํ๋ ์ฝ๋ฉํ ์คํธ ๋ฌธ์ ์ ์ถ์ ๋น๋๋ฅผ ํ์ธํ ์ ์๊ณ , ์ง๋ถํ ๊ธ์ก์ด ๋ฐ์ผ๋ฆฌ ๋ฌธ์ ๋ฅผ ํธ๋๋ฐ ๊ฐ์ ์ฑ์ ์ค ๊ฒ ๊ฐ์์ ๊ตฌ๋งคํ๋ค. ๋ํ ์ ๋ฃ ๊ฒฐ์ ์ดํ, ์ผ๋ง๋ ํ์ตํ๋์ง๋ ํ์ธํ๊ธฐ ์ํด ์์ด๋๋ ์๋ก ์์ฑํ๋ค.
ํ์ต
Android popUpTo๊ฐ ๋์ํ์ง ์๋ ๊ฒฝ์ฐ
Android Navigation Component์์ ์ ๊ณตํ๋ popUpTo๋ฅผ ์ค์ ํ์์๋ ๋ถ๊ตฌํ๊ณ , ๋ค๋ก๊ฐ๊ธฐ๋ฅผ ๋๋ ์ ๋, ํด๋น Fragment๋ก ์ด๋ํ์ง ์๋ ๊ฒฝ์ฐ๊ฐ ๋ฐ์ํ์ต๋๋ค. ์์ธ popUpTo๋ก ์ค์ ํ Fragment๊ฐ backstack์ ์กด์ฌํ์ง ์์, popUpTo๊ฐ ๋์ํ์ง ์์์ต๋๋ค. ์ด๊ฒ์ RuntimeException์ผ๋ก ๋ฐ์ํ์ง ์๊ณ , Logcat์์ I(info)๋ก ํ์๋ฉ๋๋ค. ์๋ ์ฌ์ง Logcat ๋ง์ง๋ง์ destionation์ธ Fragment๊ฐ backstack์ ์กด์ฌํ์ง ์๊ธฐ ๋๋ฌธ์, ์ค์ ํ popUpTo๊ฐ ๋ฌด์๋๋ ๊ฒ์ ์ ์ ์์ต๋๋ค. ์๋ ์คํ์ค๋ฒํ๋ก์ฐ ๋ต๋ณ์ ๋ณด๊ณ MessageFragment๊ฐ backstack์์ ์ง์์ง๋์ง ํ์ธํด๋ด์ผ๊ฒ ๋ค๊ณ ์๊ฐํํ์ต๋๋ค. ๊ทธ๋..