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

๐Ÿค์•ˆ๋“œ๋กœ์ด๋“œ ๊ฐœ๋ฐœ ๊ธฐ๋ก/โ˜€๏ธ ํ•˜๊ณ„ ์ธํ„ด ๊ฐœ๋ฐœ ํ”„๋กœ์ ํŠธ ๊ธฐ๋ก25

var๊ณผ val์˜ ์ฐจ์ด๋ฅผ ์•„์‹œ๋‚˜์š”? ๋“ค์–ด๊ฐ€๊ธฐ ์ „์—์ฝ”๋“œ๋ฅผ ์งˆ๋ฌธํ•˜๋‹ค๊ฐ€ ์™œ var๋กœ ์„ ์–ธํ–ˆ๋ƒ๋Š” ์งˆ๋ฌธ์„ ๋ฐ›์•˜๋‹ค.๋‚˜๋Š” ๊ฐ’์„ ๊ณ„์† ๋ณ€๊ฒฝํ•ด์ฃผ๊ธฐ ๋•Œ๋ฌธ์— var๋กœ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ์„ ์–ธํ–ˆ๋Š”๋ฐ ๊ทธ๊ฒŒ ์•„๋‹ˆ์—ˆ๋‹ค!!!!๊ทธ๋™์•ˆ ํ—ท๊ฐˆ๋ฆฌ๋˜ val๊ณผ var์— ๋Œ€ํ•ด ๋‹จ์ˆœํžˆ val์€ ๋ณ€๊ฒฝ ๋ถˆ๊ฐ€, var์€ ๋ณ€๊ฒฝ ๊ฐ€๋Šฅ์ด๋ผ๊ณ ๋งŒ ์•„๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์ œ๋Œ€๋กœ ์•Œ๊ธฐ์œ„ํ•ด์„œ ๊ณต๋ถ€ํ•ด๋ณด์•˜๋‹ค.  val์ดˆ๊ธฐํ™” ํ›„ ๊ฐ’ ๋ณ€๊ฒฝ์€ ๋ถˆ๊ฐ€๋Šฅ๋ณ€์ˆ˜์˜ ์ฐธ์กฐ๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๋Š” ๊ฐ์ฒด์˜ ๋‚ด๋ถ€๊ฐ’ ๋ณ€๊ฒฝ์€ ๊ฐ€๋Šฅ์ด๊ฒŒ ๋ฌด์Šจ ๋ง์ด์•ผ??!// โŒ ์ด๋ฏธ ๊ฐ’์„ ํ• ๋‹นํ•œ ๊ฒฝ์šฐ ๋‹ค์‹œ ๊ฐ’ ํ• ๋‹น ๋ถˆ๊ฐ€, ์ฆ‰ ๋šฑ์€ ๋šฑํ”ผ๋‹คval ddoung = "ddongpi"ddoung = "no ddongpi"// ๐Ÿ™†‍โ™€๏ธ ๋ณ€์ˆ˜์˜ ์ฐธ์กฐ๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๋Š” ๊ฐ์ฒด์˜ ๋‚ด๋ถ€ ๊ฐ’์€ ๋ณ€๊ฒฝ ๊ฐ€๋Šฅ val ddoung = arrayListOf("Bara")ddoung.add("ddung") /*.. 2024. 9. 10.
๋ฐ์ดํ„ฐ ์ „์†ก ์‹œ๋„ ๊ธฐ๋ก ์„œ๋ฒ„ ๋ฐ์ดํ„ฐ ์ „์†ก ํ™•์ธํ˜„์žฌ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฒฐํ•ฉํ•ด์„œ ์„œ๋ฒ„๋กœ ์ „์†กํ•˜๋Š” ๋กœ์ง์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ณณ์€ object์ธ data managerโŒobject์—์„œ context๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์„ ์ˆ˜ ์—†์Œ→ intent์—์„œ ๋ฐ›์€ ์ฃผ๊ธฐ ๋ฐ์ดํ„ฐ ์‚ฌ์šฉ ๋ถˆ๊ฐ€→ ์„œ๋น„์Šค์—์„œ ๋„˜๊ฒจ์ค€ ์ฃผ๊ธฐ๋Š” ์ ์šฉ๋˜์ง€ ์•Š์ŒโŒ→ ๋ฐ์ดํ„ฐ ์ „์†ก ๋ถ€๋ถ„์„ ๋ณ„๋„์˜ ํด๋ž˜์Šค๋กœ ๋ถ„๋ฆฌ→ ์ธํ…ํŠธ๋ฅผ ํ†ตํ•ด ์ „์†ก ์ฃผ๊ธฐ ๋ณ€๊ฒฝ ์ ์šฉํ•ด๋ณด๊ธฐ !→ ์˜คํžˆ๋ ค ๋ฐ์ดํ„ฐ ๊ฐ ์š”์†Œ๋ฅผ ํด๋ž˜์Šค์— ๋˜ ๋„˜๊ฒจ์ค˜์•ผํ•˜๋Š” ๋ฒˆ๊ฑฐ๋กœ์›€์ด ์žˆ์Œ ์ตœ์ข… ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•๐Ÿ™Œ ์ฃผ๊ธฐ ์„ค์ • ์•กํ‹ฐ๋น„ํ‹ฐ์—์„œ dataManager ์‹ฑ๊ธ€ํ†ค ๊ฐ์ฒด๋ฅผ ๊ฐ€์ง€๊ฒŒ ํ•จ→ ์ฃผ๊ธฐ ์„ค์ • ํ›„ ๋ฐ”๋กœ ๋„˜๊ฒจ๊ตฌ๊ธฐdataManager.setTransmissionInterval(interval = value) 2024. 8. 29.
Android : suspend function์ด๋ž€? suspend function๊ฐ€ ํ•„์š”ํ•œ ์ด์œ , ์ด๊ฒƒ์ด ์—†๋‹ค๋ฉด ?ํ•˜๋‚˜์˜ ์Šค๋ ˆ๋“œ๊ฐ€ block ๋˜๋ฉด ํ•ด๋‹น thread๋Š” ๋‹ค๋ฅธ ์ž‘์—…์„ ํ•  ์ˆ˜ ์—†๋Š” block ์ƒํƒœ์— ๋†“์ด๊ฒŒ ๋œ๋‹ค.์ฆ‰ blocked ์ƒํƒœ๊ฐ€ ๋๋‚  ๋•Œ๊นŒ์ง€ ํ•ด๋‹น ์Šค๋ ˆ๋“œ๋Š” ์ค‘์ง€ ์ƒํƒœ์ธ ๊ฒƒ์ด๋‹ค!๊ทธ๋Ÿฌ๋‚˜ suspend ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด blocked ๋œ ์ƒํƒœ์— ๋†“์ผ ๋•Œ, ๊ทธ ์ž‘์—…์„ suspend ํ•˜๊ณ  ๊ทธ ๊ธฐ๊ฐ„๋™์•ˆ thread์—์„œ ๋‹ค๋ฅธ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋šฑ์ด์˜ ํ•˜๋ฃจ : ํ•˜๋‚˜์˜ ์Šค๋ ˆ๋“œ์•ˆ๋“œ ๊ฐœ๋ฐœ์„ ํ•˜๋‹ค๊ฐ€ ๋นŒ๋“œ ์‹œ๊ฐ„์ด 3๋ถ„ !!! ๊ฑธ๋ฆฌ๋Š” ํ”Œ์ ์„ ๋นŒ๋“œ์‹œํ‚ด : 3๋ถ„๋™์•ˆ blocked ๋‹นํ•œ ์ƒํƒœ suspend function์˜ ๊ฒฝ์šฐ : ๋นŒ๋“œ๊ฐ€ ๋Œ์•„๊ฐ€๋Š” 3๋ถ„๋™์•ˆ ๋ผ๋ฉด์„ ๋“์ผ ์ˆ˜ ์žˆ์Œsuspend function์ด ์•„๋‹Œ ๊ฒฝ์šฐ : ์•ˆ๋“œ ๋นŒ๋“œ๊ฐ€ ๋๋‚  ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ ค์•ผํ•จ ๐Ÿ’ก .. 2024. 8. 29.
Android : Handler ์ดํ•ดํ•˜๊ธฐ handler thread์™€ thread์˜ ์ฐจ์ด //๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ ๋ฐ ์ฃผ๊ธฐ ์„ค์ • ์œ„ํ•œ ํ•ธ๋“ค๋Ÿฌ private val handlerThread = HandlerThread("SensorDataCollectionThread").apply { start() } private val handler = Handler(handlerThread.looper) private val collectDataRunnable = object : Runnable { override fun run() { if (!isCollectingData) { //1์ดˆ๋™์•ˆ ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ ์‹œ์ž‘ isCollectingData = true startS.. 2024. 8. 29.
728x90