๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

์ „์ฒด ๊ธ€

(382)
[Android]์ด๋ฉ”์ผ validation ์œ ํšจํ•œ ์ด๋ฉ”์ผ ์ฃผ์†Œ ๊ธธ์ด๋Š” ์–ด๋– ํ•œ๊ฐ€ ๊ณ ๋ฏผํ•˜๋‹ค๊ฐ€ ์ฐพ๊ฒŒ๋˜์—ˆ๋‹ค. https://www.geeksforgeeks.org/implement-email-validator-in-android/ Implement Email Validator in Android - GeeksforGeeks A Computer Science portal for geeks. It contains well written, well thought and well explained computer science and programming articles, quizzes and practice/competitive programming/company interview Questions. www.geeksforgeeks.org https://de..
[Android][Java] SharedPreference object ์•ˆ Context๋กœ memory leak ๊ฒฝ๊ณ  SharedPreferences๋ฅผ ํŽธํ•˜๊ฒŒ ์จ๋ณด๊ฒ ๋‹ค๊ณ  Object๋กœ ๋žฉํ•‘ํ–ˆ์—ˆ๋‹ค. Application ํด๋ž˜์Šค์˜ onCreate()์—์„œ ์ดˆ๊ธฐํ™” ์‹œ application context๋ฅผ ๋ฐ›์•„ SharedPreferences ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ๋•Œ๋งˆ๋‹ค context๋ฅผ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ๋ฐ›์•„์˜ค์ง€ ์•Š๋„๋ก ํ•ด์„œ ์ •๋ง ํŽธํ•˜๊ฒŒ ์“ฐ๊ณ  ์žˆ์—ˆ๋Š”๋ฐ, ์•ˆ๋“œ๋กœ์ด๋“œ ์ŠคํŠœ๋””์˜ค์—์„œ memory leak ๊ฒฝ๊ณ ๋ฅผ ๋„์›Œ์คฌ๋‹ค. Do not place Android context classes in static fields (static reference to 'Pref' which has field 'context' pointing to 'Context'); this is a memory leak ์ดˆ๊ธฐํ™” ์‹œ์— ๋ฐ›์•„์˜ค๋Š” context๋ฅผ WeakReferen..
[Android][ADB] ๋น„ํ–‰๊ธฐ ๋ชจ๋“œ on/off, ๋น„ํ–‰๊ธฐ ๋ชจ๋“œ ํ™•์ธ ๋น„ํ–‰๊ธฐ ๋ชจ๋“œ on adb shell settings put global airplane_mode_on 1 ๋น„ํ–‰๊ธฐ ๋ชจ๋“œ off adb shell settings put global airplane_mode_on 0 ๋น„ํ–‰๊ธฐ ๋ชจ๋“œ ์—ฌ๋ถ€ ํ™•์ธ adb shell settings get global airplane_mode_on ๊ฒฐ๊ณผ 0 > off 1 > on
[Google Play Console] ์ด์˜์ œ๊ธฐ ํ•˜๊ธฐ ๊ตฌ๊ธ€ ํ”Œ๋ ˆ์ด์—์„œ ํšŒ์‚ฌ ์•ฑ๋“ค์— ๋Œ€ํ•ด์„œ ์—…๋ฐ์ดํŠธ ๊ฑฐ๋ถ€, ์•ฑ ๊ฑฐ๋ถ€ ๋ฉ”์ผ์„ ์ข…์ข… ๋ณด๋‚ด์˜จ๋‹ค. ๋‚ด๊ฐ€ ๋‹ด๋‹นํ•œ ์•ฑ์— ์•ฑ ๊ฑฐ๋ถ€ ๋ฉ”์ผ์ด ๋‚ ์•„์˜ค๋ฉด ์ŠคํŠธ๋ ˆ์Šค ๋ฐ›๋Š”๋‹ค. ์ด๋ฒˆ์— ์ƒˆ ๋ฒ„์ „์˜ ์•ฑ ๋ฒˆ๋“ค์„ ์—…๋ฐ์ดํŠธํ•˜๊ณ  ๋‚˜์„œ ๋ฐ›์€ ๋ฉ”์ผ์ด๋‹ค. ์ € ์ฒจ๋ถ€๋œ ์Šคํฌ๋ฆฐ์ƒท์ด ๋‚˜์˜ ์–ต์šธํ•จ์„ ํ’€์–ด์คฌ๋‹ค. ๊ตฌ๊ธ€ ํ”Œ๋ ˆ์ด ์ชฝ์—์„œ ๋‚ด๊ฐ€ ๊ธฐ์ž…ํ•œ ํ…Œ์ŠคํŠธ์šฉ ๋กœ๊ทธ์ธ ๊ณ„์ •์„ ์˜คํƒ€๋กœ ์ž˜๋ชป ์ž…๋ ฅํ•˜๊ณ  ํ•ด๋‹น ๊ณ„์ •์€ ์กด์žฌํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ํ† ์ŠคํŠธ๊ฐ€ ๋‚˜์˜จ ์Šคํฌ๋ฆฐ์ƒท์„ ๋ณด๋‚ด์คฌ๋‹ค. ์ƒํ™ฉ ํŒŒ์•…ํ•˜๊ณ  ๊ฐœ๋นก์นจ ๋•๋ถ„์— ์ด์˜์ œ๊ธฐ๋„ ํ•ด๋ดค๋‹ค. 1. ์ •์ฑ… > ์ •์ฑ… ์ƒํƒœ ํŽ˜์ด์ง€๋กœ ์ง„์ž…ํ•œ๋‹ค. 2. ํ•ด๋‹น ํ™”๋ฉด ์•„๋ž˜์˜ "์ด์˜์ œ๊ธฐ"๋ผ๋Š” ์—ฐํ•œ ํšŒ์ƒ‰ ํ…์ŠคํŠธ ๋ฒ„ํŠผ(์ง€๊ธˆ์€ ๊ฒ€์ˆ˜ ํ†ต๊ณผ๋œ ์ƒํƒœ๋ผ์„œ ์ฐพ์„ ์ˆ˜ ์—†๋‹ค. ๊ทธ๋ž˜์„œ ์บก์ณ ๋ถˆ๊ฐ€.)์„ ํด๋ฆญํ•˜๋ฉด ์ด์˜์ œ๊ธฐ๋ฅผ ํ•  ์ˆ˜ ์žˆ๋Š” ํผ์ด ๋‚˜์˜จ๋‹ค. 3. ํผ์—๋Š” ๋‘ ๊ฐœ์˜ ์ž…๋ ฅ์นธ์ด ์žˆ๋Š”๋ฐ, ํ•˜๋‚˜๋Š”..
[Android][Coroutine][SharedPreferences] ํƒ€์ด๋จธ ๊ตฌํ˜„ ์ธ์ฆ๋ฒˆํ˜ธ๊ฐ€ ๋‹ด๊ธด ๋ฌธ์ž๋ฅผ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ „์†ก ์š”์ฒญํ•˜๋Š” ์„œ๋ฒ„ api๋ฅผ ํ˜ธ์ถœํ•˜๊ณ  2๋ถ„ ๋™์•ˆ ์ธ์ฆ๋ฒˆํ˜ธ ์žฌ๋ฐœ๊ธ‰์„ ๋ง‰๋Š” ํƒ€์ด๋จธ์˜ ๊ตฌํ˜„์„ ํ•ด์•ผ ํ–ˆ๋‹ค. ํƒ€์ด๋จธ ๊ตฌํ˜„์€ ์ฒ˜์Œ์ด๋ผ์„œ ๊ณ ๋ฏผ์„ ๋งŽ์ด ํ–ˆ๋‹ค. CountDownTimer๋ฅผ ์“ธ๊นŒ, ์„œ๋น„์Šค๋ฅผ ์‚ฌ์šฉํ• ๊นŒ... ์„ ๋ฐฐ๋‹˜๊ป˜ ์—ฌ์ญค๋ดค๋”๋‹ˆ CountDownTimer์™€ ์„œ๋น„์Šค๋ฅผ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ ์•ฑ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋‚ ๋ผ๊ฐ€๋Š” ๊ฒฝ์šฐ์—๋Š” ์žฌ๊ณ  ์žˆ๋˜ ์‹œ๊ฐ„๋„ ๋‚ ๋ผ๊ฐ„๋‹ค๊ณ  ์•Œ๋ ค์ฃผ์…จ๋‹ค. SharedPreferences๋ฅผ ์จ์„œ ํ™”๋ฉด์— ์ง„์ž…ํ•˜๊ณ  ๋‚˜๊ฐˆ ๋•Œ๋งˆ๋‹ค ์‹œ๊ฐ„์„ ๊ธฐ๋กํ•˜๋Š” ๊ฒƒ์„ ์“ฐ๊ณ , ์ฝ”๋ฃจํ‹ด์„ ์“ฐ๋ฉด ์‰ฝ๋‹ค๊ณ  ์•Œ๋ ค์ฃผ์…จ๋‹ค. ๋„ˆ๋ฌด ๋‹น์—ฐํ•œ ๊ฑธ ๋ชฐ๋ž๋ƒ๋Š” ์„ ๋ฐฐ๋‹˜์˜ ํ‘œ์ •์„ ๋ณด๊ณ ๐Ÿ˜ณ ๋ฐ˜์„ฑํ•ฉ๋‹ˆ๋‹ค๐Ÿ˜ž ์™œ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋‚ ๋ผ๊ฐ€๋Š” ๊ฒฝ์šฐ๋Š” ์ƒ๊ฐ์„ ๋ชปํ•œ๊ฑฐ์•ผ ๊ทธ ๋’ค๋กœ ์ž‘์—…์€ ์‰ฌ์› ๋‹ค. ์—ฌ๋Ÿฌ ๊ฐœ๋ฐœ์ž๋“ค์˜ ์†์„ ๊ฝค๋‚˜ ํƒ„ ์ด ์•ฑ์˜ ์ฝ”๋“œ๋Š” SharedPrefer..
[TED] The Paradox of Choice / Barry Schwarts https://youtu.be/VO6XEQIsCoM ์„ ํƒ๊ถŒ์ด ๋„ˆ๋ฌด ๋งŽ์œผ๋ฉด ๋งŒ์กฑ๊ฐ์ด ๊ฐ์†Œ๋œ๋‹ค. ์„œ๊ตฌ ์‚ฐ์—…ํ™”๋œ ์‚ฌํšŒ๋Š” ์„ ํƒ๊ถŒ์ด ๋„ˆ๋ฌด ๋งŽ๋‹ค. ์ด ๋งŽ์€ ์„ ํƒ๊ถŒ์„ ์„ ํƒ๊ถŒ์ด ์—†๋Š” ์‚ฌํšŒ๋กœ ์ด์ „ํ•œ๋‹ค๋ฉด ๋ชจ๋‘๊ฐ€ ํ–‰๋ณตํ•ด์งˆ ๊ฒƒ์ด๋‹ค. > '์†Œ๋“์žฌ๋ถ„๋ฐฐ' ๋ผ๋Š” ํ‘œํ˜„์ด ๋‚˜์™”์Œ. ์ˆ˜์กฐ๋ฅผ ๊นจ๋œจ๋ ค ๋ชจ๋“  ๊ฒƒ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜๋ ค๊ณ  ํ•œ๋‹ค๋ฉด ๋งˆ๋น„๊ฐ€ ์˜จ๋‹ค. ์ˆ˜์กฐ๊ฐ€ ์—†์œผ๋ฉด ์žฌ์•™์ด ์˜จ๋‹ค. Why Programmers Need Limits์—์„œ ๋‚˜์˜จ The Paradox of Choice. ์™œ ์ œํ•œ, ํ•œ๊ณ„๊ฐ€ ํ•„์š”ํ•œ์ง€ ์ด์œ ๋ฅผ ์„ค๋ช…ํ•จ. โ€‹
[Android][Kakao SDK]์•ˆ๋“œ๋กœ์ด๋“œ ์นด์นด์˜ค ๋กœ๊ทธ์ธ SDK Legacy v1 -> v2 ์—…๋ฐ์ดํŠธ ์‹ ๊ทœ๋กœ ์นด์นด์˜ค ๋กœ๊ทธ์ธ ์—ฐ๋™ํ•˜๋Š” ๋ธ”๋กœ๊ทธ๋“ค์€ ๊ฝค๋‚˜ ๋ดค๋Š”๋ฐ, v1.x.x ์—์„œ v2.x.x๋กœ ์—…๋ฐ์ดํŠธํ•˜๋Š” ๊ธ€๋“ค์€ ์ œ๊ฐ€ ๋ชป ์ฐพ์•„์„œ ์ •๋ฆฌํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์‹ ๊ทœ๋กœ ์นด์นด์˜ค ๊ณ„์ • ๋กœ๊ทธ์ธ ์„œ๋น„์Šค๋ฅผ ๋„ฃ๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์ƒ๋žต๋œ ๊ณผ์ •๋“ค(ํ‚ค ํ•ด์‹œ ๋“ฑ๋ก ๋“ฑ)์ด ์žˆ์Šต๋‹ˆ๋‹ค.๐Ÿ˜Ž 6๋…„ ์ „์— ๋งŒ๋“ค์–ด์ ธ ์ง€๊ธˆ๊นŒ์ง€ ์œ ์ง€๋ณด์ˆ˜๋˜๊ณ  ์žˆ๋Š” ์•ฑ์ด๋ผ ์ž‘์—…์„ ์ง„ํ–‰ํ•˜๋Š” ๋ฐ ์ž๋ฐ”๋ฅผ ์“ฐ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.๐Ÿ‘ฉ‍๐Ÿ”ง๐Ÿ‘จ‍๐Ÿ”ง Gradle ์„ค์ •ํ•˜๊ธฐ ํ”„๋กœ์ ํŠธ์˜ build.gradle ๊ธฐ์กด ๋ ˆ๊ฑฐ์‹œ ์ฝ”๋“œ allprojects { repositories { .... maven { url 'http://devrepo.kakao.com:8088/nexus/content/groups/public/' } .... } } ์ˆ˜์ • ์ฝ”๋“œ allprojects { repositories { .... ..
[Android] ํ”„๋กœ์ ํŠธ์— ๊ฐœ๋ฐœ์ž๊ฐ€ ์ž‘์„ฑํ•˜์ง€ ์•Š์€ ๋ฆฌ์†Œ์Šค๊ฐ€ ๋…ธ์ถœ๋œ๋‹ค?!(ํ”„๋กœ์ ํŠธ์™€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ resource conflict. ๋ฆฌ์†Œ์Šค ์ด๋ฆ„์ด ๊ฐ™์„ ๊ฒฝ์šฐ) ๊ฒฐ๋ก  - ๋‘๊ด„์‹ ์ง„ํ–‰๐Ÿ˜‰ ๋ฉ”์ธ ํ”„๋กœ์ ํŠธ์˜ ๋ฆฌ์†Œ์Šค ์ด๋ฆ„๊ณผ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ๋ฆฌ์†Œ์Šค ์ด๋ฆ„์ด ์ถฉ๋Œ๋‚  ๊ฒฝ์šฐ(๊ฐ™์„ ๊ฒฝ์šฐ), ์ตœ์ข… ๋นŒ๋“œ๋Š” ์–ด๋–ค ๊ฑธ ์„ ํƒํ•  ์ง€ ๋ชจ๋ฅธ๋‹ค. ๊ทธ๋ž˜์„œ ๋‚ด๊ฐ€ ์ง€์ •ํ•œ ๋ฆฌ์†Œ์Šค ๋Œ€์‹  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—์„œ ์ง€์ •ํ•œ ๋ฆฌ์†Œ์Šค๊ฐ€ ๋…ธ์ถœ๋  ์ˆ˜ ์žˆ๋‹ค. ์Šคํƒ ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ ์„ ๋ฐฐ๋‹˜ ๋„์›€ : https://stackoverflow.com/a/16351022/9287140 Why Android cannot deal with Resources name conflict between Project and Library? I have a project A that referenced by Library B, A and B have the same name and type, but their value are different. I think ..