์ „์ฒด ๊ธ€

๋ฐœ์ฐจ๊ธฐ๋งŒ ํ•˜๋˜ ์‚ฌ๋žŒ์ด ๊ฐœ๋ฐœ์ž? ๊ฐœ๋ฐœ์ฐจ๊ธฐ์˜ ์‹œ์ž‘.
Development/Android

์•ˆ๋“œ๋กœ์ด๋“œ์—์„œ ์ฝ”๋ฃจํ‹ด / Coroutine ์จ๋ด…์‹œ๋‹ค - 1

์ด์ „ Coroutine ๊ธ€์— ์ด์–ด ์ถ”๊ฐ€์ ์œผ๋กœ ๊ธ€์„ ์“ฐ๋ คํ•œ๋‹ค. ์•ˆ๋“œ๋กœ์ด๋“œ์—์„œ ์ฝ”๋ฃจํ‹ด / Coroutine ์จ๋ด…์‹œ๋‹ค - 0 ์ฝ”๋ฃจํ‹ด์ด๋ž€! ๋œป : ์ฝ”๋ฃจํ‹ด(Coroutine)์€ Co- Routine์˜ ํ•ฉ์„ฑ์–ด์ธ๋ฐ Co(์ž˜ ๋ชฐ๋ผ์„œ ์˜๋ฌธ์‚ฌ์ „ ๋งํฌ๋ฅผ ๋“ค๊ณ ์™”๋‹ค) - ํ˜‘๋™, ํ˜‘๋ ฅ, ํ•จ๊ป˜ co- 1. together; with: 2. abbreviation for company (= business): 3. written… dictionary.cambridg taekwon-seungwon.tistory.com ์ด๋ฒˆ์— ๋ฐฐ์šธ ์  - build.gradle ์ถ”๊ฐ€ - CoroutineScope - Coroutine Dispatcher - Coroutine ์ƒํƒœ๊ด€๋ฆฌ - WithContext ๋””์ŠคํŒจ์ณ ๋ถ„๋ฆฌ - Coroutine ๋นŒ๋” ..

Development

Clean Architecture์„ ์œ„ํ•œ ๊ฐ์ฒด์ง€ํ–ฅ SOLID 5์›์น™ with Kotlin

์ด๋ฒˆ์— ๋ฐฐ์šธ ๊ฒƒ - SOLID๋ž€ - ์›์น™๋ณ„ ์˜ˆ์ œ - ๊ฒฐ๋ก  SOLID๋ž€ ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ์ดํ•ด๊ฐ€ ์‰ฌ์šด, ์œ ์—ฐํ•œ, ์œ ์ง€๋ณด์ˆ˜ ๊ฐ€๋Šฅํ•œ SW(Soft-Ware: ์†Œํ”„ํŠธ์›จ์–ด)๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ์˜๋„ ๋˜์–ด์ง„ ๋””์ž์ธ ์›์น™์ด๋‹ค. SOLID ์›์น™์€ ์š”๊ตฌํ•œ ๊ธฐ๋Šฅ์ด ๋ณ€๊ฒฝ๋˜๊ฑฐ๋‚˜ ์šฐ๋ฆฌ๊ฐ€ ํ˜„์žฌ ์กด์žฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์— ์ถ”๊ฐ€์ ์ธ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๊ณ  ์‹ถ์„ ๋–„, ์‹œ์Šคํ…œ์˜ ํฐ ๋ณ€๊ฒฝ ์—†์ด, ์ง€์† ๊ฐ€๋Šฅํ•œ ์ฝ”๋“œ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ค€๋‹ค. SOLID๋Š” 5๊ฐ€์ง€ ์›์น™์˜ ์ œ์ผ ์ฒซ ๊ธ€์ž๋ฅผ ๋”ฐ์„œ ๋งŒ๋“ค์—ˆ๋‹ค. - S : Single Resposibility Priciple / ๋‹จ์ผ ์ฑ…์ž„ ์›์น™ - O : Open Closed Principle / ๊ฐœ๋ฐฉ ํ์‡„ ์›์น™ - L : Liskov Substitution Principle / ๋ฆฌ์Šค์ฝ”ํ”„ ์น˜ํ™˜ ์›์น™ - I : I..

Development/Android

DI - Hilt์˜ ๊ด€ํ•˜์—ฌ

์ด ๊ธ€์—์„œ ๋ฐฐ์šธ์  - ๋‹ค๋ฅธ DI์™€์˜ ์ฐจ์ด์  - Hilt์˜ ๊ด€ํ•œ ์ „๋ฐ˜์ ์ธ ์ง€์‹ - Hilt๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ• - Hilt์—์„œ ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” Annotation DI -> Dependency Inject ์˜์กด์„ฑ ์ฃผ์ž… ์ด๋ผ๊ณ  ํ•œ๋‹ค. ์ด์ „์˜ Koin์— ๊ด€ํ•œ ๋ธ”๋กœ๊ทธ๋ฅผ ์ž‘์„ฑ ํ–ˆ์„ ๋•Œ๋„ ๊ณต๋ถ€๋ฅผ ํ–ˆ์—ˆ์ง€๋งŒ Hilt๋ฅผ ์ข€ ๋” ๋งŽ์ด ์•Œ์•„๋ณด๋ ค ๋‹ค์‹œ๊ธˆ ๊ธ€์„ ์“ด๋‹ค. ์ด์ „์— ์ผ๋˜ Koin์— ๊ด€ํ•œ ๋ธ”๋กœ๊ทธ ์˜์กด์„ฑ ์ฃผ์ž…์˜ Koin๐Ÿช™ ํ•œ ๋‹ข์„ - 1 ์˜์กด์„ฑ ์ฃผ์ž…์ด๋ผ.. ๋„ˆ๋ฌด๋‚˜๋„ ์ต์ˆ™ํ•˜์ง€ ์•Š์€ ๋ฌธ์žฅ์ด๋‹ค. ๋‚จ์—๊ฒŒ ์˜์กดํ•˜์ง€๋ง๊ณ  ์ฃผ์ฒด์ ์œผ๋กœ ์‚ด์ž ๋ผ๋Š” ๋ง์„ ์‚ฌ์šฉํ•  ๋•Œ๋งŒ ์ผ๋˜ ๋‹จ์–ด๋ฅผ ๊ฐœ๋ฐœํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋‹ˆ ์–ด์ƒ‰ํ•˜๊ณ  ๋‹จ๋ฒˆ์— ์ดํ•ด๊ฐ€ ๋˜์ง€ ์•Š๋Š”๋‹ค. ์˜์กด taekwon-seungwon.tistory.com ์˜์กด์„ฑ ์ฃผ์ž…์˜ Koin๐Ÿช™ ๋‘ ๋‹ข์„ - 2 ์ด๋ฒˆ์—” ์‹ค์ œ๋กœ..

Development/Compose

Compose - Typegraphy๋กœ TextStyle ์ผ๊ด„ ์ง€์ •(Feat. textSize๋ฅผ dp๋กœ)

๋””์ž์ธ QA๋ฅผ ํ•˜๋˜์ค‘ ์‹œ์Šคํ…œ ์„ค์ •์—์„œ ๊ธ€์ž ํฌ๊ธฐ๋ฅผ ๋ณ€๊ฒฝํ–ˆ์„ ๋•Œ ์‹œ์Šคํ…œ ์„ค์ • ๊ฐ’์„ ๋”ฐ๋ผ๊ฐ€์ง€ ์•Š๊ณ  ๋ชจ๋“  ๊ธฐ๊ธฐ ๋˜‘๊ฐ™์ด ๋…ธ์ถœํ•ด๋‹ฌ๋ผ. Compose์—์„œ Text์˜ fontSize๋ฅผ sp๋กœ ์ง€์ •ํ•˜๊ฒŒ ๋˜๋ฉด ์‹œ์Šคํ…œ ์„ค์ •์„ ๋”ฐ๋ผ๊ฐ€๊ฒŒ ๋˜๊ณ  dp๋กœ ์„ค์ •ํ•ด์•ผ๋งŒ ์ ˆ๋Œ€๊ฐ’์œผ๋กœ ์œ ์ง€๋˜๋Š” ๊ฒƒ์„ ์•Œ์•˜๋‹ค. ๊ทผ๋ฐ TextStyle๋กœ ๋ชจ๋‘ ๊ณ ์ •์‹œ์ผœ์„œ style์— ์ง€์ •ํ•ด์ฃผ๊ณ  ์žˆ๋˜ ๋‚œ dp๋กœ ์„ค์ •ํ•˜๋ ค๊ณ  ๋‚œ๋ฆฌ๋ฅผ ์น˜๋‹ค ๊ฒฐ๊ตญ ์•„๋ž˜์™€ ๊ฐ™์ด ์„ค์ •ํ•˜๊ฒŒ ๋๋‹ค. ์ด๋ฒˆ์— ๋ฐฐ์šด ๊ฒƒ! 1. Compose์—์„œ๋Š” fontSize๋ฅผ ์ •ํ•  ๋•Œ sp๋ฅผ ์„ ์–ธํ•ด์ค˜์•ผํ•œ๋‹ค. 2. ๊ผญ dp๋กœ fontSize๋ฅผ ์„ ์–ธํ•ด์ค˜์•ผ ํ•œ๋‹ค๋ฉด, ์•„๋ž˜์™€ ๊ฐ™์ด ์„ ์–ธ ํ•ด์ฃผ๋ฉด ๋œ๋‹ค. (๋ฌด์กฐ๊ฑด Composable ์–ด๋…ธํ…Œ์ด์…˜์„ ์ถ”๊ฐ€ํ•ด์ค˜์•ผ๋งŒ ๊ฐ€๋Šฅํ•œ ํ•จ์ˆ˜์ด๋‹ค) 3. ํ•˜์ง€๋งŒ ๋””์ž์ด๋„ˆ์™€ ์ผํ•˜๋ฉด์„œ textStyle ..

Development

๊ฐœ๋ฐœ ๋ธ”๋กœ๊ทธ๋ฅผ ์‹œ์ž‘ํ•˜๋ ค๋Š” ๋‹น์‹  ํ˜น์€ ๋‚˜์—๊ฒŒ

๋ณธ๊ฒฉ์ ์œผ๋กœ ๊ฐœ๋ฐœ ๋ธ”๋กœ๊ทธ๋ฅผ ์‹œ์ž‘ํ•˜๋ ค๋Š”๋ฐ ํ•ญ์ƒ ๋ณด๊ธฐ๋งŒ ํ•ด์˜ค๋˜ ๊ฒƒ์„ ๋งŒ๋“ค์–ด์•ผํ•˜๋Š” ์‹ฌ์ •์ด๋ž€. ์œ ํŠœ๋ธŒ๋ฅผ ๋งค์ผ ๋ณด์ง€๋งŒ ๊ทธ๊ฑธ ์ง์ ‘ ๋‚ด๊ฐ€ ๋งŒ๋“ ๋‹ค๋ฉด? ์ด๋ผ๋Š” ๋งˆ์Œ๊ณผ ๋น„์Šทํ•˜๊ฒŒ ์ง„์ž… ์žฅ๋ฒฝ์ด ์ƒ๊ฐ๋ณด๋‹ค ๋†’๋‹ค. ์—ฌ๋Ÿฌ๊ฐ€์ง€ ์ง„์ž… ์žฅ๋ฒฝ ํ˜น์€ ๊ฑฑ์ •์„ ๋‚˜์—ดํ•ด๋ณด์ž๋ฉด - ์š”์ฆ˜ ๋งŽ์ด ์“ฐ๋Š” ๋ฐˆ๊ณผ ํ•จ๊ป˜ ์žฌ๋ฐŒ๊ฒŒ ๋งŒ๋“ค๊ณ  ์‹ถ๋‹ค. - ์ดˆ๋ณด์ฒ˜๋Ÿผ ๋ณด์ด๊ณ  ์‹ถ์ง€ ์•Š๋‹ค. - ์ œ๋Œ€๋กœ ๋œ ๊ธ€์„ ์“ฐ์ง€ ์•Š์œผ๋ฉด ์‚ฌ๋žŒ๋“ค์ด ์š•ํ•˜์ง€ ์•Š์„๊นŒ? - ์•„ ์–ด๋–ค ์ฃผ์ œ๋กœ ๊ธ€์„ ์“ฐ์ง€? ๋“ฑ๋“ฑ... ์ง€์ด์ด์ธ์งœ ๊ณ ๋ฏผ์„ ์ˆ˜๋ฐฑ๋ฒˆ ํ•˜๊ณ  ๊ธ€์„ ์ผ๋‹ค ์ง€์› ๋‹ค๋ฅผ ๋ฐ˜๋ณตํ•˜๋ฉฐ ์ž‘๊ฐ€๊ฐ€ ๋˜๋ฉด ์ด๋Ÿฐ ๋Š๋‚Œ์ธ๊ฐ€? ๋ผ๊ณ  ์ƒ๊ฐ์ด ๋“ค ์ •๋„์˜€๋‹ค. ์œ„์— ๊ฑฑ์ •๋“ค์„ ํ•˜๋‚˜์”ฉ ํ’€์–ด๋ณด์ž๋ฉด, - ์š”์ฆ˜ ๋งŽ์ด ์“ฐ๋Š” ๋ฐˆ๊ณผ ํ•จ๊ป˜ ์žฌ๋ฐŒ๊ฒŒ ๋งŒ๋“ค๊ณ  ์‹ถ๋‹ค. ์ด๊ฑด ๋ญ ํ•ด๋ณด๋ฉด ๋œ๋‹ค. ๊ทผ๋ฐ ์‚ฌ์ง„์„ ์ฐพ๊ธฐ๋„ ํ•ด์•ผํ•˜๊ณ  ๊ณ„์†ํ•ด์„œ ๋ฐˆ์„ ์•Œ๊ณ  ์žˆ๋Š” ์‚ฌ๋žŒ์ด๋ผ๋ฉด ์‚ฌ์šฉํ•ด๋ณด๋ฉด..

Stream of thought

10๋…„ ๋’ค์— ๋‚˜์˜ ๋ชจ์Šต

23๋…„ 4์›” 27์ผ ๋ชฉ์š”์ผ ๋”ฐ๋“ฏํ•œ ํ–‡์‚ด๊ณผ ์ฐจ๊ฐ€์šด ๋ฐ”๋žŒ์ด ๊ณต์กดํ•˜๋Š” ์˜ค๋žœ๋งŒ์— ๋Š๊ปด๋ณด๋Š” ๋ด„์˜ ๊ณ„์ ˆ์„ ๋ณด๋‚ด๊ณ  ์žˆ๋Š” ๋งŒ 28์„ธ์˜ ๋‚˜. 3์›”๋ง์— ์ฒซ ํšŒ์‚ฌ์—์„œ ๋‚˜์™€ ์ฃผ์— ํ•œ ๋ฒˆ ๊ผด๋กœ ์ง€๊ธˆ๊นŒ์ง€ ์ด 3๋ฒˆ ๋ฉด์ ‘์„ ๋ดค๋Š”๋ฐ ๋‘๊ตฐ๋ฐ์—์„œ ๋ฉด์ ‘ ๋งˆ๋ฌด๋ฆฌ ์ฏค์— ์ด๋Ÿฐ ์งˆ๋ฌธ์„ ๋˜์ ธ์ฃผ์…จ๋‹ค. ๋ฉด์ ‘๊ด€ : "10๋…„ ๋’ค์— ๋ฉด์ ‘์ž๋‹˜์˜ ๋ชจ์Šต์€ ์–ด๋–ค ๋ชจ์Šต์ผ ๊ฒƒ ๊ฐ™์œผ์„ธ์š”?" ๋‚˜ : (๊ทธ๋Ÿฌ๊ฒŒ...) ์ด๋ ‡๊ฒŒ ์งˆ๋ฌธ ํ•ด์ฃผ์…จ์ง€๋งŒ ๋‚˜๋Š” "10๋…„ ๋’ค์— ์–ด๋–ค ์‚ฌ๋žŒ์ด ๋˜๊ณ  ์‹ถ์œผ์„ธ์š”?" ๋ผ๊ณ  ๋“ค๋ ธ๋‹ค. ๋ญ ๋‚ด๊ฐ€ ๋‹ค๋ฅด๊ฒŒ ํ•ด์„ํ–ˆ์„์ง€ ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ ํ™•์‹คํ•˜์ง€ ์•Š์€ ๋ฏธ๋ž˜, ๋งค์ผ ๋ณ€ํ™”๋Š” ์„ธ์ƒ๊ณผ ์–ด๋–ป๊ฒŒ ๋ ์ง€ ๋ชจ๋ฅด๋Š” ์ธ์ƒ์ธ๋ฐ 10๋…„ ๋’ค? 3650์ผ ๋’ค๋ฅผ ์–ด๋–ป๊ฒŒ ์˜ˆ์ƒํ• ๊นŒ. ํ•™์ƒ ๋•Œ 1๋…„, 5๋…„, 10๋…„, 20๋…„ ๋’ค ์ž๊ธฐ์˜ ๋ชจ์Šต์„ ์ƒ์ƒํ•ด๋ณด์‹œ์š”. ๋ผ๊ณ  ํ•™๊ธฐ ์ดˆ ๋•Œ ์ผ๋˜ ๊ธฐ์–ต์ด ์žˆ๋‹ค. ๊ทธ ๋•Œ๋งˆ๋‹ค ..

์นดํ…Œ๊ณ ๋ฆฌ ์—†์Œ

์•ˆ๋“œ๋กœ์ด๋“œ์—์„œ ์ฝ”๋ฃจํ‹ด / Coroutine ์จ๋ด…์‹œ๋‹ค - 0

์ฝ”๋ฃจํ‹ด์ด๋ž€! ๋œป : ์ฝ”๋ฃจํ‹ด(Coroutine)์€ Co- Routine์˜ ํ•ฉ์„ฑ์–ด์ธ๋ฐ Co(์ž˜ ๋ชฐ๋ผ์„œ ์˜๋ฌธ์‚ฌ์ „ ๋งํฌ๋ฅผ ๋“ค๊ณ ์™”๋‹ค) - ํ˜‘๋™, ํ˜‘๋ ฅ, ํ•จ๊ป˜ co- 1. together; with: 2. abbreviation for company (= business): 3. written… dictionary.cambridge.org Routine - ์ผ๊ณผ ํ˜น์€ ๋ฐ˜๋ณต์ ์ธ ์ž‘์—…(์šฐ๋ฆฌ๊ฐ€ ํ”ํžˆ ์“ฐ๋Š” ํ•จ์ˆ˜๋กœ ์ƒ๊ฐํ•ด๋„ ๊ดœ์ฐฎ๋‹ค)์ด๋ž€ ๋œป์œผ๋กœ ๋งŒ๋“ค์–ด์ง„ ๋‹จ์–ด๋กœ, ์˜์—ญํ•ด "ํ˜‘๋™ ๋ฃจํ‹ด", "ํ˜‘๋™ ํ•จ์ˆ˜"๋กœ ํ‘œํ˜„ํ•˜๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ Coroutine์˜ ๋œป์„ ๊ธฐ์–ตํ•˜๋Š”๊ฒŒ ์˜ค๋ž˜ ๊ธฐ์–ต์ด ๋‚จ์„ ๊ฒƒ ๊ฐ™๋‹ค. ํ˜‘๋™ ๋ฃจํ‹ด, ์ฆ‰ Coroutine์„ ํ™œ์šฉํ•ด์„œ ๋ญ˜ ํ•˜๋Š” ๊ฒƒ์ด๋ƒ ๋ผ๊ณ  ํ•˜๋ฉด RxJava๋ผ๋˜๊ฐ€ ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ๋ผ๋˜๊ฐ€ ์•„๋‹˜ ๋‚˜์ค‘์— ์„œ๋ฒ„ํ˜ธ์ถœ์„ ๊ธฐ๋‹ค..

Taekwondo

๋ฐœ์ฐจ๊ธฐ - ์—ญํšŒ์ „ ๋Œ๊ฐœ์ฐจ๊ธฐ(์—ญํ„ด) / Reverse trun kick

์—ญํšŒ์ „ ๋Œ๊ฐœ์ฐจ๊ธฐ. ์‰ฝ๊ฒŒ ๋ถˆ๋Ÿฌ ์—ญํ„ด 10๋…„๋™์•ˆ ์ฐฌ ๋ฐœ์ฐจ๊ธฐ ๊ธฐ์ˆ ์ด๋‹ค. ์ผ๋‹จ ์—ญํ„ด์„ ์„ค๋ช…ํ•˜๋ ค๋ฉด ๋Œ๊ฐœ์ฐจ๊ธฐ(ํ„ด์ฐจ๊ธฐ)๋ฅผ ์•Œ์•„์•ผํ•œ๋‹ค. ๋Œ๊ฐœ์ฐจ๊ธฐ๋Š” ์˜ค๋ฅธ๋ฐœ์„ ์งš๊ณ  ์™ผ์ชฝ์œผ๋กœ ํšŒ์ „ํ•˜์—ฌ ์ ํ”„ ํ˜น์€ ๋ฐœ์„ ๋ฐ”๊พธ๋ฉฐ ๋Œ๋ ค์ฐจ๊ธฐ๋ฅผ ์ฐจ๋Š” ๊ฒƒ์„ ๋Œ๊ฐœ์ฐจ๊ธฐ๋กœ ํ‘œํ˜„ํ•œ๋‹ค. ํ•˜์ง€๋งŒ ์—ญํšŒ์ „ ๋Œ๊ฐœ์ฐจ๊ธฐ๋Š” ํšŒ์ „์„ ๋ฐ˜๋Œ€๋กœ ๋ˆ๋‹ค๊ณ  ์ดํ•ดํ•˜๊ธฐ ์‰ฝ์ง€๋งŒ ์™ผ๋ฐœ์„ ์งš๊ณ  ์˜ค๋ฅธ๋ฐœ๋กœ ๋Œ๊ฐœ์ฐจ๊ธฐ๋ฅผ ์ฐจ๋Š” ๊ฒƒ์„ ๋งํ•œ๋‹ค. ์ดํ•ด๊ฐ€ ์•ˆ ๋  ์ˆ˜ ์žˆ์œผ๋‹ˆ ์•„๋ž˜์— GIF๋กœ ์„ค๋ช…์„ ํ•˜๊ฒ ๋‹ค. ๋ณด๋Š” ๊ฒƒ๊ณผ ๊ฐ™์ด ๊ต‰์žฅํžˆ ์—ญ๋™์ ์ด๊ณ  ๊ฐ•ํ•œ ํŒŒ๊ดด๋ ฅ์„ ๊ฐ€์ง„ ๋ฐœ์ฐจ๊ธฐ์ด๋‹ค. ํ„ด์ฐจ๊ธฐ์™€๋Š” ๋‹ค๋ฅด๊ฒŒ ๋‹ฌ๋ ค์˜ค๋ฉด์„œ ๋ฐœ์ฐจ๊ธฐ๋ฅผ ์ฐจ๊ฒŒ ๋˜๋Š”๋ฐ ์กฐ๊ธˆ ์ˆ™๋ จ์ด ํ•„์š”ํ•œ ๋ฐœ์ฐจ๊ธฐ์ด๋‹ค. ๊ทธ๋ž˜์„œ ๋งจ ์ฒ˜์Œ์—” ์ œ์ž๋ฆฌ์—์„œ ์—ฐ์Šต์„ ๊ถŒ์žฅํ•œ๋‹ค. ์ด ๊ธ€์€ ํŠœํ† ๋ฆฌ์–ผ ๊ด€๋ จ ๊ธ€์ด ์•„๋‹Œ ๋ฆฌ๋ทฐ ๋น„์Šค๋ฌด๋ฆฌํ•œ ๊ธ€์ด๋ผ ์ƒ์„ธํ•œ ๊ธฐ์ˆ  ์„ค๋ช…์ด ์—†์ง€๋งŒ ๋‚˜์ค‘์— ๊ผญ ๊ธ€์„ ์จ๋ณผ๊นŒ ํ•œ๋‹ค. ..

Development/Android

Thread์˜ ๊ด€ํ•˜์—ฌ ๋ง‰ ์ ์–ด๋ณด๊ธฐ

์•ˆ๋“œ๋กœ์ด๋“œ ๊ฐœ๋ฐœ์„ ํ•˜๋ฉด์„œ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ์ ์€ ๊ทธ๋ƒฅ ๊ธฐ๋Šฅ์„ ์ž˜ ๋ถ™์ด๋Š”๊ฒŒ ์•„๋‹ˆ๋ž€๊ฑธ ๋งŽ์€ ๋ถ„๋“ค์ด ๊ณต๊ฐํ•˜์‹ค๊ฑฐ๋‹ค. ํ•ธ๋“œํฐ๋„ ์ž‘์€ ์ปดํ“จํ„ฐ์ด๊ธฐ์— ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ๋„ ์ž˜ ํ•ด์•ผํ•˜๊ณ  ๊ณผ๋ถ€ํ™”๊ฐ€ ์˜ค์ง€ ์•Š๊ฒŒ, ์‚ฌ์šฉ์ž๊ฐ€ ๋งค๋„๋Ÿฝ๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ๊ฐœ๋ฐœ์„ ํ•˜๋Š”๊ฒŒ ๊ฐœ๋ฐœ์„ ์ž˜ํ–ˆ๋‹ค๊ณ  ์ƒ๊ฐํ•œ๋‹ค.(ํ˜„์žฌ๊นŒ์ง„...) ์—ฐ์ฐจ๊ฐ€ ์Œ“์ด๊ณ  ๊ฒฌํ•ด์™€ ์ง€์‹์ด ์กฐ๊ธˆ์”ฉ ๋Š˜์–ด๊ฐˆ์ˆ˜๋ก ๋” ์ค‘์š”ํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋Š” ๋ถ€๋ถ„๋“ค์ด ๋ณ€ํ•ด๊ฐ€๋ฉด์„œ ๊ณต๋ถ€ํ•ด์•ผํ•˜๋Š” ๊ฒƒ๋“ค์ด ๋งŽ์•„์ง„๋‹ค. ๋ฐฐ์›€์—๋Š” ๋์ด ์—†๋Š” ๊ฒƒ ๊ฐ™๋‹ค. ์ผ๋‹จ Thread๋ž€ ๋ฌด์—‡์ธ๊ฐ€? ๐Ÿ›  ์‚ฌ์ „์  ์˜๋ฏธ - "ํ”„๋กœ์„ธ์Šค ๋‚ด์—์„œ ์‹คํ–‰๋˜๋Š” ์—ฌ๋Ÿฌ ํ๋ฆ„์˜ ๋‹จ์œ„" - ํ”„๋กœ์„ธ์Šค์˜ ํŠน์ •ํ•œ ์ˆ˜ํ–‰ ๊ฒฝ๋กœ - ํ”„๋กœ์„ธ์Šค๊ฐ€ ํ• ๋‹น๋ฐ›์€ ์ž์›์„ ์ด์šฉํ•˜๋Š” ์‹คํ–‰์˜ ๋‹จ์œ„ ๐Ÿง‘๐Ÿป‍๐Ÿ’ป ์ดํ•ดํ•˜๊ธฐ ์‰ฌ์šด ๋‚˜๋งŒ์˜ ์˜๋ฏธ - ๋ฐฅ์„ ๋งŒ๋“ค ๋•Œ ๋ฐฅ์†ฅ์˜ ์ทจ์‚ฌ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๊ณ  ๋ฐฅ์ด ๋‹ค ๋  ๋•Œ๊นŒ์ง€ ๊ตญ์„ ๋“์ธ๋‹ค..

Development/Kotlin

๐Ÿ”ง Kotlin์˜ Collection ํ•จ์ˆ˜! - List ๊ฐ€๊ณต์„ ์‰ฝ๊ฒŒ ํ•ด๋ด…์‹œ๋‹ค

์š”์ฆ˜ ์•ฑ๋“ค์€ Listํ˜•์‹์œผ๋กœ ๋ฐ์ดํ„ฐ๋“ค์„ ๋ณด์—ฌ์ฃผ๊ณ ์žˆ๋‹ค. ์ธ์Šคํƒ€, ์œ ํŠœ๋ธŒ, ํŽ˜์ด์Šค๋ถ, ๋ฐฐ๋‹ฌ์˜ ๋ฏผ์กฑ ๋“ฑ๋“ฑ ์•ˆ ๊ทธ๋Ÿฐ ์•ฑ์„ ์ฐพ๊ธฐ๊ฐ€ ํž˜๋“ค๋‹ค. ๊ทธ๋Ÿฌ๋ฉด Listํ˜•์‹์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„์˜ค๊ณ  ๊ทธ๋ƒฅ ๋ฟŒ๋ ค์ฃผ๋ฉด ์ƒ๊ด€ ์—†์ง€๋งŒ ์นœ์ ˆํ•˜์ง€ ์•Š์€ data๋“ค์ด ๊ฐ„ํ˜น ์žˆ๋Š”๋ฐ ์ด ๋ฐ์ดํ„ฐ๋“ค์„ sortingํ•˜๊ฑฐ๋‚˜ ์ œ๊ฑฐ ํ˜น์€ ๋ณ‘ํ•ฉํ•ด์•ผํ•˜๋Š” ์ƒํ™ฉ์ด ์ƒ๊ธด๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์—ฌ๋Ÿฌ ํšŒ์›๋“ค์ด ์˜ฌ๋ ธ๋˜ ๊ฒŒ์‹œ๋ฌผ๋“ค์„ ํšŒ์›๋ณ„๋กœ ๋ฌถ์–ด์„œ ๋ณด์—ฌ์ค˜์•ผํ•˜๋Š” ์ƒํ™ฉ์ด ์žˆ๋Š”๋ฐ ์„œ๋ฒ„์—์„œ ๊ทธ๋ƒฅ ๊ฒŒ์‹œ๊ธ€๋งŒ ์ซ™~ ๋‚ด๋ ค์ฃผ๊ณ  ์•ฑ์—์„œ ํ•ด์ฃผ์„ธ์š”~ ํ•˜๋ฉด ๋ณดํ†ต for ๋ฌธ์„ ๋Œ๋ ค์„œ ํšŒ์› ์•„์ด๋””๋ž‘ ์ผ์น˜ํ•˜๋ฉด ๋ฆฌ์ŠคํŠธ์— ๋‹ค์‹œ ๋‹ด๊ณ  ์†ฐ๋ผ์†ฐ๋ผ~ ์•„๋ฌดํŠผ! ๋ฆฌ์ŠคํŠธ๋ฅผ ์ •๋ ฌ, ๊ด€๋ฆฌํ•˜๋Š”๋ฐ ๊ต‰์žฅํžˆ ๊ท€์ฐฎ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ๋Œ€์•ˆ์ด ๋ญ๊ฐ€ ์žˆ๋ƒ? → Kotlin์˜ Collections ํ•จ์ˆ˜๋ฅผ ์“ธ ๊ฒƒ์ด๋‹ค. ๊ทธ๊ฒŒ ๋ญ”๋ฐ? → Collections์€..

Android_DevKick
๐Ÿ’ป ๊ฐœ๋ฐœ์ฐจ๊ธฐ ๐Ÿฅ‹ feat.Android