ํฌ์ŠคํŒ… ์ธ๋„ค์ผ ์ด๋ฏธ์ง€

์ฝ”๋”ฉํ…Œ์ŠคํŠธ

Kotlin Boxing Type ์“ฐ์ง€ ๋งˆ์„ธ์š” ์ฒด์งˆ์ด๋ผ๋Š”๊ฒŒ๋ฐ”๋€๋‹ˆ๋‹ค

240409 ๋‚ด์šฉ ์ถ”๊ฐ€ ์ด ๊ธ€์—์„œ ์„ค๋ช…ํ•œ ์‹œ๊ฐ„ ์ธก์ • ์ฐจ์ด๋Š” ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฑ„์  ์˜ค๋ฅ˜๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์•„๋ž˜ ๊ธ€์„ ์ฐธ๊ณ ํ•ด์ฃผ์„ธ์š”. https://dodobest.tistory.com/96 ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์‹œ๊ฐ„ ์ธก์ • ์˜ค๋ฅ˜์™€ H-Index ๋ฌธ์ œ ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค Kotlin ์‹œ๊ฐ„ ์ธก์ • ์˜ค๋ฅ˜ https://dodobest.tistory.com/86 Kotlin Boxing Type ์“ฐ์ง€ ๋งˆ์„ธ์š” ์ฒด์งˆ์ด๋ผ๋Š”๊ฒŒ๋ฐ”๋€๋‹ˆ๋‹ค ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๋ฌธ์ž์—ด ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ๋ฐฐ์น˜ํ•˜๊ธฐ ๋ฌธ์ œ๋ฅผ ํ’€์–ด๋ณด๋ฉฐ, String์„ ๋‹ค๋ฃฐ ๋•Œ ์–ด dodobest.tistory.com ใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…ก ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๋ฌธ์ž์—ด ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ๋ฐฐ์น˜ํ•˜๊ธฐ ๋ฌธ์ œ๋ฅผ ํ’€์–ด๋ณด๋ฉฐ, String์„ ๋‹ค๋ฃฐ ๋•Œ ์–ด๋–ป๊ฒŒ ํ•˜๋ฉด ์‹œ๊ฐ„์„ ๋‹จ์ถ•ํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. https://s..

2024.03.26 ๊ฒŒ์‹œ๋จ

ํฌ์ŠคํŒ… ์ธ๋„ค์ผ ์ด๋ฏธ์ง€

TIL

240325 TIL

์˜ค๋Š˜ ํ•™์Šตํ•œ ๋‚ด์šฉ Kotlin In Action - 6.3 ์ปฌ๋ ‰์…˜๊ณผ ๋ฐฐ์—ด - 7.1 ์‚ฐ์ˆ  ์—ฐ์‚ฐ์ž ์˜ค๋ฒ„๋กœ๋”ฉ ์ผ๋ถ€ ์ธํ”„๋Ÿฐ CS ๊ฐ•์˜ - ๋””์ž์ธํŒจํ„ด ์†Œ๊ฐœ - ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ ํ”„๋ ˆ์ž„์›Œํฌ์˜ ์ฐจ์ด - ์‹ฑ๊ธ€ํ†ค ํŒจํ„ด DEEP DIVE : ์‹ฑ๊ธ€ํ†ค ํŒจํ„ด์„ ๊ตฌํ˜„ํ•˜๋Š” 7๊ฐ€์ง€ ๋ฐฉ๋ฒ• #1 Hilt ์ฃผ์ž… ๊ฐ•์˜ - 5-4. Hilt๋ฅผ ์ด์šฉํ•œ ์˜์กด์„ฑ ์ฃผ์ž… ์˜ˆ์ œ ์‚ฌ์ด๋“œํ”„๋กœ์ ํŠธ - SwipeDeck Repository Kotlin์œผ๋กœ ๋ณ€ํ™˜ํ•˜๋ฉด์„œ ๋กœ์ง ํ๋ฆ„ ์‚ดํŽด๋ณด๊ธฐ 240325 23:05 ๊ธฐ์ค€์œผ๋กœ Notion์ด ๊ณ ์žฅ๋‚˜์„œ, ์˜ค๋Š˜ ํ•™์Šตํ•œ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•œ ๋…ธ์…˜ ํŽ˜์ด์ง€์— ์ ‘๊ทผํ•  ์ˆ˜ ์—†๋‹ค. ๋‚ด์ผ ์•„์นจ์— ๋…ธ์…˜์ด ๊ณ ์ณ์ง€๋ฉด ํ•™์Šตํ•œ ๋‚ด์šฉ ๋ชฉ๋ก์„ ์—…๋ฐ์ดํŠธํ•  ๊ฒƒ์ด๋‹ค. PDT๋Š” ํ•œ๊ตญ ํ‘œ์ค€์‹œ๋ณด๋‹ค 16์‹œ๊ฐ„ ๋Š๋ฆฌ๋‹ค๊ณ  ํ•œ๋‹ค.

2024.03.25 ๊ฒŒ์‹œ๋จ

ํฌ์ŠคํŒ… ์ธ๋„ค์ผ ์ด๋ฏธ์ง€

TIL

240322 TIL

Kotlin Companion Object์™€ Java static์— ๋Œ€ํ•ด ํ•™์Šตํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ฐ€๋…์„ฑ์ด ์ข‹์ง€ ์•Š์€ ๊ฒƒ ๊ฐ™์•„, ์ฃผ๋ง์— ๋ถ€์กฑํ•œ ๋‚ด์šฉ(object์™€ companion object์˜ ์ฐจ์ด, Kotlin์˜ const ํ‚ค์›Œ๋“œ์— ๋”ฐ๋ฅธ ์ฐจ์ด ๋“ฑ)์„ ๋ณด์ถฉํ•˜๋ฉด์„œ ๊ธ€์„ ์ •๋ˆํ•  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค. https://dodobest.tistory.com/82 Kotlin์˜ companion object vs Java์˜ static Kotlin์—์„œ์˜ object ํ‚ค์›Œ๋“œ object ํ‚ค์›Œ๋“œ๋ฅผ ์ด์šฉํ•ด์„œ ํด๋ž˜์Šค๋ฅผ ์ •์˜ํ•˜๋ฉด, ์ •์˜์™€ ๋™์‹œ์— ์ธ์Šคํ„ด์Šค(๊ฐ์ฒด)๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. object ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ƒํ™ฉ์€ ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ด ์ค‘์—์„œ ๊ฐ์ฒด ์‹์„ ์ œ์™ธ dodobest.tistory.com ์ฒ˜์Œ์—๋Š” Stack์„ ์ด์šฉํ–ˆ์œผ๋ฉฐ, ๊ทธ ๋‹ค์Œ์—๋Š” Mu..

2024.03.22 ๊ฒŒ์‹œ๋จ

ํฌ์ŠคํŒ… ์ธ๋„ค์ผ ์ด๋ฏธ์ง€

์ฝ”๋”ฉํ…Œ์ŠคํŠธ

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ํ–„๋ฒ„๊ฑฐ ๋งŒ๋“ค๊ธฐ Kotlin ๋น ๋ฅธ ๋‹ต์•ˆ

https://school.programmers.co.kr/learn/courses/30/lessons/133502 ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”. programmers.co.kr ๋ฌธ์ œ์˜ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๊ฐ€ ๋ชจ๋“  ๊ฒฝ์šฐ๋ฅผ ๋‹ค๋ฃจ๊ณ  ์žˆ์ง€ ์•Š์•„, ๊ผผ์ˆ˜๋กœ ์†Œ์š” ์‹œ๊ฐ„์„ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค. class Solution { fun solution(ingredient: IntArray): Int { var answer: Int = 0 var idx = 0 val stack = IntArray(100) var cursor = 0 for (num in ingredient) { if (num == or..

2024.03.22 ๊ฒŒ์‹œ๋จ

ํฌ์ŠคํŒ… ์ธ๋„ค์ผ ์ด๋ฏธ์ง€

ํ•™์Šต

Kotlin companion object vs Kotlin object in class vs Java static

๋ชฉ์ฐจ object ํ‚ค์›Œ๋“œ๋Š” ๋ฌด์—‡์ธ๊ฐ€ object class๋Š” ๋ฌด์—‡์ธ๊ฐ€ companion object๋Š” ๋ฌด์—‡์ธ๊ฐ€ Java์—์„œ์˜ Kotlin Companion object Companion object์—์„œ const val๋Š” ์–ด๋–ป๊ฒŒ ๋ณ€ํ™˜๋ ๊นŒ class ๋‚ด์˜ object class์™€ companion object๋Š” ์–ด๋–ค ์ฐจ์ด๊ฐ€ ์žˆ๋Š”๊ฐ€ Java static block @JvmStatic @JvmField ์ž๋ฐ”์—์„œ Kotlin Companion Object์™€ ๊ฐ™์€ ํด๋ž˜์Šค ๋งŒ๋“ค์–ด๋ณด๊ธฐ 1. Kotlin์—์„œ์˜ object ํ‚ค์›Œ๋“œ object ํ‚ค์›Œ๋“œ๋ฅผ ์ด์šฉํ•ด์„œ ํด๋ž˜์Šค๋ฅผ ์ •์˜ํ•˜๋ฉด, ์ •์˜์™€ ๋™์‹œ์— ์ธ์Šคํ„ด์Šค(๊ฐ์ฒด)๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. object ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ƒํ™ฉ์€ ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ด ์ค‘์—์„œ ๊ฐ์ฒด ์‹์„ ์ œ์™ธํ•œ ๋‚˜๋จธ์ง€ 2๊ฐ€์ง€..

2024.03.22 ๊ฒŒ์‹œ๋จ

ํฌ์ŠคํŒ… ์ธ๋„ค์ผ ์ด๋ฏธ์ง€

TIL

240321 TIL - Kotlin Weekly

Kotlin Weekly Lint๋ฅผ ์ด์šฉํ•ด ์ฝ”๋“œ ๋ฆฌ๋ทฐ์˜ redundant ์ œ๊ฑฐํ•˜๊ธฐ https://proandroiddev.com/stop-debating-in-code-reviews-start-enforcing-with-lint-rules-6632c907ea94 Stop Debating in Code Reviews. Start Enforcing with Lint Rules. How to enforce architecture and best practices as unit tests with Konsist proandroiddev.com ์ฝ”๋“œ๋ฆฌ๋ทฐ๋ฅผ ํ•˜๋‹ค๋ณด๋ฉด, ์ฝ”๋”ฉ convention๊ณผ ๊ด€๋ จ๋œ ๋‚ด์šฉ์„ ์–ธ๊ธ‰ํ• ๊นŒ ๋ง๊นŒ ๊ณ ๋ฏผ๋˜๋Š” ๋ถ€๋ถ„์ด ์žˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, Kotlin Coding Convetion์—์„œ๋Š” forEa..

2024.03.21 ๊ฒŒ์‹œ๋จ

TIL

240320 TIL - ํ•™์Šตํ•œ ๋‚ด์šฉ ๋ชฉ์ฐจ๋งŒ ์ž‘์„ฑํ•˜๋Š” ์ด์œ 

์˜ค๋Š˜ ํ•™์Šตํ•œ ๋‚ด์šฉ Kotlin In Action 6.3 ์ปฌ๋ ‰์…˜๊ณผ ๋ฐฐ์—ด ์ผ๋ถ€ Leetcode daily ์™ธ ์ถ”๊ฐ€ ๋ฌธ์ œ ํ’€๊ธฐ ์ธํ”„๋Ÿฐ CS ๊ฐ•์˜ ํด๋ผ์šฐ๋“œ #1. ๊ฐ€์ƒ๋จธ์‹ (virtual machine) ํด๋ผ์šฐ๋“œ #2. ์˜คํ”„ํ”„๋ ˆ๋ฏธ์Šค(off-premise)์™€ ์˜จํ”„๋ ˆ๋ฏธ์Šค(on-premise) ํด๋ผ์šฐ๋“œ #3. IaaS์™€ PaaS์™€ SaaS ํด๋ผ์šฐ๋“œ #4. ์ปจํ…Œ์ด๋„ˆ(container)์™€ ๋„์ปค(docker) EditText์˜ state ๋ณต์› ์›๋ฆฌ ์•Œ์•„๋ณด๊ธฐ https://dodobest.tistory.com/79 ์•ˆ๋“œ๋กœ์ด๋“œ ๊ถŒ์žฅ ์•„ํ‚คํ…์ฒ˜ ๋ฌธ์„œ ์ฝ๊ธฐ https://developer.android.com/topic/architecture Hilt ๊ฐ•์˜ ๋ณด๊ธฐ 4-5. ๋ฉ€ํ‹ฐ ๋ฐ”์ธ๋”ฉ๊ธฐ๋ฒ• 5-1. Hilt ViewModel ๋‚ด์ผ๋ฐฐ์›€์บ ..

2024.03.21 ๊ฒŒ์‹œ๋จ

ํฌ์ŠคํŒ… ์ธ๋„ค์ผ ์ด๋ฏธ์ง€

ํ•™์Šต

EditText๊ฐ€ ์ž…๋ ฅ๋œ text๋ฅผ ๋ณต์›ํ•˜๋Š” ๊ณผ์ •

EditText๋Š” ์ž…๋ ฅํ•œ state๋ฅผ ๋ณต์›ํ•ด์ค€๋‹ค. EditText์— ์ž…๋ ฅํ•œ ๊ฐ’์€ ๋ณ„๋„์˜ State๋กœ์จ ์ง์ ‘ ๊ด€๋ฆฌํ•˜์ง€ ์•Š์•„๋„, ์ž…๋ ฅํ•œ ๊ฐ’์ด ๋ณต์›๋˜์–ด ์‚ฌ์šฉ์ž์—๊ฒŒ ๊ทธ๋Œ€๋กœ ๋ณด์ž…๋‹ˆ๋‹ค. ๋‹จ, xml์—์„œ id๋ฅผ ์„ค์ •ํ•ด์ค€ ๊ฒฝ์šฐ์—๋งŒ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค. ๋กœ๊ทธ๋กœ ์ฐ์–ด๋ณด๋ฉด ์–ด๋–จ๊นŒ์š”? onCreate ํ•จ์ˆ˜์—์„œ EditText์— ์žˆ๋Š” text ๊ฐ’์„ ์ฐ์–ด๋ณธ ๊ฒฐ๊ณผ, ์ž…๋ ฅํ•œ ๊ฐ’์ด ์•„๋‹Œ ๋นˆ ๊ฐ’์ด ์ถœ๋ ฅ๋์Šต๋‹ˆ๋‹ค. ์™œ ๊ทธ๋Ÿด๊นŒ์š”? EditText์˜ ๋™์ž‘ ์›๋ฆฌ ์ด์œ ๋Š” EditText์— ์ž…๋ ฅ๋œ ๊ฐ’์ด ๋ณต์›๋˜๋Š” ๊ฒƒ์€ savedInstanceState๋ฅผ ์ด์šฉํ•œ ๋ฐฉ์‹์ด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. onCreate์—์„œ๋„ savedInstanceState๋ฅผ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ์ž…๋ ฅ๋ฐ›๊ณ  ์žˆ๊ธฐ์— onCreate์—์„œ ๋ณต์›๋  ์ˆ˜๋„ ์žˆ์ง€๋งŒ, onCreate์—์„œ ๋ณต์›๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ์—๋Š” onRest..

2024.03.20 ๊ฒŒ์‹œ๋จ

TIL

240319 TIL

์˜ค๋Š˜ ํ•™์Šตํ•œ ๋‚ด์šฉ ์ฝ”ํ‹€๋ฆฐ ์ฝ”๋ฃจํ‹ด ์ฑ… - 19์žฅ ํ”Œ๋กœ์šฐ๋ž€ ๋ฌด์—‡์ธ๊ฐ€? - 20์žฅ ํ”Œ๋กœ์šฐ์˜ ์‹ค์ œ ๊ตฌํ˜„ Hilt ์ฃผ์ž… ๊ฐ•์˜ 4-4 ๋ฐ”์ธ๋”ฉ ๊ธฐ๋ฒ• ์‚ฌ์ด๋“œ ํ”„๋กœ์ ํŠธ ๊ณ„ํšํ•˜๊ธฐ - ํ‹ด๋”์™€ ๊ฐ™์€ Swipe Layout์„ ๊ฐ€์ง„ ์ด์ƒํ˜• ์›”๋“œ์ปต ์ธํ”„๋Ÿฐ CS ๊ฐ•์˜ ๋ณด๊ธฐ - ๋ฐ์ดํ„ฐ๊ตํ™˜ํ˜•์‹ #2.XML -> eXtensible Markup Language์˜ ์•ฝ์ž๋กœ ๋งˆํฌ์—… ํ˜•ํƒœ๋ฅผ ์“ฐ๋Š” ๋ฐ์ดํ„ฐ ๊ตํ™˜ ํ˜•์‹ ๋งˆํฌ์—…์€ ํƒœ๊ทธ๋“ฑ์„ ์ด์šฉํ•˜์—ฌ ๋ฌธ์„œ๋‚˜ ๋ฐ์ดํ„ฐ์˜ ๊ตฌ์กฐ๋ฅผ ๋‚˜ํƒ€๋‚ธ ๊ฒƒ HTML๊ณผ XML, JSON๊ณผ XML์˜ ์ฐจ์ด - API #1. ๊ฐœ๋… -> ์ปดํ“จํ„ฐ ์‚ฌ์ด์˜ ๋ฐ์ดํ„ฐ ๊ตํ™˜์„ ์œ„ํ•œ ์•ฝ์†์ด ์ •์˜๋œ ์ธํ„ฐํŽ˜์ด์Šค

2024.03.19 ๊ฒŒ์‹œ๋จ

ํฌ์ŠคํŒ… ์ธ๋„ค์ผ ์ด๋ฏธ์ง€

์„ค์ •

Android Stduio AVD๊ฐ€ stating up ์ƒํƒœ์—์„œ ์ผœ์ง€์ง€ ์•Š์„ ๋•Œ

์ƒํ™ฉ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด ๋ฐ”๋กœ ๊ถ๊ธˆํ•˜๋‹ค๋ฉด ์™ผ์ชฝ์— ํ•ด๊ฒฐ ๋ฐฉ๋ฒ• ์นดํ…Œ๊ณ ๋ฆฌ๋ฅผ ๋ˆŒ๋Ÿฌ์ฃผ์„ธ์š”. ์œ„์™€ ๊ฐ™์€ ์ƒํƒœ์—์„œ AVD๊ฐ€ ์‹คํ–‰๋˜์ง€ ์•Š์•˜๋‹ค. ์ด์ „์—๋Š” ์žฌ๋ถ€ํŒ…์„ ํ•˜๋ฉด ํ•ด๊ฒฐ๋์œผ๋‚˜, ์ด๋ฒˆ์—๋Š” ํ•ด๊ฒฐ ๋˜์ง€ ์•Š์•˜๋‹ค. ์—๋ฎฌ๋ ˆ์ดํ„ฐ๋ฅผ ์ง€์šฐ๊ณ , cold booting ํ•˜๊ณ , AVD ๊ด€๋ จ sdk tools๋ฅผ ์—…๋ฐ์ดํŠธ ํ•ด๋„ ํ•ด๊ฒฐ๋˜์ง€ ์•Š์•˜๋‹ค. GPT์—๊ฒŒ ๋ฌผ์–ด๋ณด๋‹ˆ ์ปค๋ฉ˜๋“œ ์ฐฝ์—์„œ ์‹คํ–‰ํ•ด๋ณด๋ผ๋Š” ์กฐ์–ธ์„ ๋ฐ›์•˜๋‹ค. 6. Run Emulator from Command Line Sometimes, running the emulator from the command line can provide additional error messages. Open the command prompt or terminal. Navigate to the emulator direc..

2024.03.19 ๊ฒŒ์‹œ๋จ