๊พธ์ค€ํ•จ์ด ์ง„๋ฆฌ๋‹ค!!

์–ด์ œ๋ณด๋‹ค ๋ฐœ์ „ํ•œ ์˜ค๋Š˜์ด ๋˜๊ณ ํ”ˆ ๐Ÿง‘๐Ÿปโ€๐Ÿ’ป ์˜ ๋ธ”๋กœ๊ทธ

Kotlin 22

[Kotlin] Random ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•˜์—ฌ ๋กœ๋˜ ๋ฒˆํ˜ธ ์ถœ๋ ฅํ•˜๊ธฐ

์•ˆ๋…•ํ•˜์„ธ์š” ์˜ค๋Š˜์€ ๋ถ€ํŠธ์บ ํ”„ ์ฒซ๋‚  ๊ณผ์ œ๋กœ ๋ฐ›์€ ๋‚ด์šฉ์„ ๋ฆฌ๋ทฐํ•ด๋ณผ๊นŒ ํ•ฉ๋‹ˆ๋‹ค. ์ฒซ๋‚ ์€ Kotlin์˜ ๊ธฐ๋ณธ ๋ฌธ๋ฒ•๋“ค์„ ๊ฐ„๋‹จํžˆ ๋ฐฐ์šฐ๋Š”๊ฒƒ์œผ๋กœ ์‹œ์ž‘ํ•˜์˜€๋Š”๋ฐ ๊ทธ ์ค‘ ๋ฐ˜๋ณต๋ฌธ์— ๋Œ€ํ•ด์„œ ๋ฐฐ์› ์œผ๋ฉฐ ํ•ด๋‹น ๋ถ€๋ถ„์— ๋Œ€ํ•ด์„œ ๊ณผ์ œ๋ฅผ ์ œ์ถœ ํ•ด์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค. ๋‚ด์šฉ์€ ๋ฐ”๋กœ . . ์ฝ”ํ‹€๋ฆฐ ์ฝ”๋“œ๋ฅผ ์ด์šฉํ•˜์—ฌ ์ฝ˜์†”๋กœ 1~5 ์‚ฌ์ด์˜ ๊ฐ’์„ ์ž…๋ ฅ๋ฐ›์•„ ๋กœ๋˜๊ฒŒ์ž„์„ ์ฝ˜์†”๋กœ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ๊ฐ„๋‹จํžˆ ๊ตฌํ˜„ํ•˜์„ธ์š” ๋น„์ง€๋‹ˆ์Šค์กฐ๊ฑด: ๋กœ๋˜ ํ•œ๊ฒŒ์ž„์˜ ์กฐ๊ฑด -> 1๋ถ€ํ„ฐ 45์‚ฌ์ด์˜ ๊ฐ’์„ ๋žœ๋คํ•˜๊ฒŒ 6๊ฐœ๋ฅผ ์ถœ๋ ฅํ•˜๋ฉด 1๊ฒŒ์ž„์œผ๋กœ ์ธ์ •(์ˆซ์ž๋Š” ํ•œ๊ฒŒ์ž„์—์„œ ์ค‘๋ณต๋˜๋ฉด ์•ˆ๋จ) ex)) 1์„ ์ž…๋ ฅ์‹œ ๋กœ๋˜ํ•œ ๊ฒŒ์ž„์ถœ๋ ฅ(๊ฒน์น˜์ง€ ์•Š๋Š” ์ˆซ์ž 6๊ฐœ์„ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ถœ๋ ฅ) ๊ตฌํ˜„ ์ฝ”๋“œ๋Š” ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค. import java.util.Random import java.util.Scanner fun main() {..

Tutorial/tutorial 2022.09.16

[Java][Android] ์•ˆ๋“œ๋กœ์ด๋“œ InputMethodManager ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜(leak) ํ•ด๊ฒฐ๋ฐฉ๋ฒ•

์˜ค๋Š˜์€ ํšŒ์‚ฌ์—์„œ ๊ทผ๋ฌด์ค‘์— ๋ฐœ๊ฒฌํ•œ InputMethodManager์— ๊ด€๋ จํ•œ Memory Leak์— ๋Œ€ํ•ด ํฌ์ŠคํŒ… ํ•˜๋ คํ•ฉ๋‹ˆ๋‹ค. ์ž์ฒด์ ์œผ๋กœ ์•ฑ์— ๋Œ€ํ•ด ๋ฉ”๋ชจ๋ฆฌ Leak๋ถ€๋ถ„์ด ์žˆ๋Š”์ง€ ํ™•์ธ์ค‘ dumpsys ํ™•์ธ๊ฒฐ๊ณผ GC๊ฐ€ ๋Œ์•„๋„ Activites์™€ View๊ฐ€ ๋ฆด๋ฆฌ์ฆˆ ๋˜์ง€ ์•Š๋Š” ๋ฌธ์ œ์ ์ด ๋ฐœ๊ฒฌ๋˜์–ด ์•ฝ 1๋‹ฌ ๋™์•ˆ ํ•ด๋งธ์Šต๋‹ˆ๋‹ค.. ํ˜„์žฌ ์ œ๊ฐ€ ๊ทผ๋ฌดํ•˜๋Š” ํšŒ์‚ฌ์˜ ์•ˆ๋“œ๋กœ์ด๋“œ ๋ฒ„์ „์€ Android4.4(KitKat)๋กœ ๋งค์šฐ ์˜›๋‚  ๋ฒ„์ „์ด๋‹ค๋ณด๋‹ˆ Profiler๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ๋ชปํ•ด ๋” ์‹œ๊ฐ„์ด ๊ฑธ๋ ธ๋˜๊ฒƒ์ด๊ณ  ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•  ๊ฒฝ์šฐ ์—ฌ๋Ÿฌ๋ถ„๋“ค์€ ์‰ฝ๊ฒŒ ์ฐพ์„ ์ˆ˜ ์žˆ์„๊ฒ๋‹ˆ๋‹ค. (๋ณ€๋ช… ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค.) Profiler๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š๋Š” ๋ฒ„์ „์—์„œ ์‚ฌ์šฉ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์ดํ›„ ์ถ”๊ฐ€์ ์œผ๋กœ ํฌ์ŠคํŒ… ํ•˜๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. Profiler ํ™•์ธ ๊ฒฐ๊ณผ ๋ฉ”๋ชจ๋ฆฌ Leak์ด 2๊ฑด ๋ฐœ์ƒ ํ•˜์˜€๊ณ ..

Android/Java 2022.07.13