@PPEPER
๊พธ์ค€ํ•จ์ด ํŠน๋ณ„ํ•จ์œผ๋กœ

Ktor์™€ Multipart๋กœ ํŒŒ์ผ ์—…๋กœ๋“œ ๊ทผ๋ฐ ์ด์ œ Ktrofit์„ ๊ณ๋“ค์ธ

March 20, 2025

๋ชจ๋ฐ”์ผ ๊ฐœ๋ฐœ์„ ์ง„ํ–‰ํ•˜๋‹ค ๋ณด๋ฉด ์ด๋ฏธ์ง€, ๋™์˜์ƒ๊ณผ ๊ฐ™์ด ํŒŒ์ผ์„ ์—…๋กœ๋“œ ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์ƒ๊ธฐ๊ธฐ ๋งˆ๋ จ์ด๋‹ค. ์ด๋•Œ ๋ผ๋Š” ๊ฐœ๋…์„ ์ฒ˜์Œ ์ ‘ํ•˜๊ฒŒ ๋œ๋‹ค. ์ด์ „์— ์•ˆ๋“œ๋กœ์ด๋“œ ๋„คํŠธ์›Œํฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ Retrofit์„ ์‚ฌ์šฉํ–ˆ๋˜ ๊ฒฝํ—˜์„ ํ† ๋Œ€๋กœ Multiplatform ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” Ktrofit ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ณด๋ ค๊ณ  ํ•œ๋‹ค. Multipart ๋ชจ๋ฐ”์ผ ๊ฐœ๋ฐœ์—์„œ ์ด๋ฏธ์ง€ โ€ฆ


Compose์—์„œ Bezier ๊ณก์„ ์œผ๋กœ ์Šค์ฟผํด ๋งŒ๋“ค๊ธฐ

January 07, 2025

์‚ฌ์ด๋“œ ํ”„๋กœ์ ํŠธ ์ค‘ ์Šค์ฟผํด ๋ชจ์–‘์„ ๋””์ž์ธ์— ๊ตฌํ˜„ํ•ด์•ผ ํ•˜๋Š” ์ƒํ™ฉ์ด ์ƒ๊ฒจ, Compose์˜ Custom View๋ฅผ ํ™œ์šฉํ•˜์—ฌ ํ•ด๋‹น ํ™”๋ฉด์„ ๊ตฌํ˜„ํ•˜๋ฉฐ ํ•™์Šตํ•œ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•˜๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค. ์Šค์ฟผํด? ์Šค์ฟผํด์€ ์ •์‚ฌ๊ฐํ˜•๊ณผ ์›์˜ ์ค‘๊ฐ„ ํ˜•ํƒœ๋กœ, ๊ณผ ์˜ ํ•ฉ์„ฑ์–ด์ด๋‹ค. ์œ„์˜ ์ด๋ฏธ์ง€์—์„œ ๋ณผ ์ˆ˜ ์žˆ๋“ฏ์ด, ์ผ๋ฐ˜์ ์ธ ๋ผ์šด๋“œ ์ฒ˜๋ฆฌ๋œ ์‚ฌ๊ฐํ˜•๊ณผ ๋น„๊ตํ•˜๋ฉด ๋” ๋ถ€๋“œ๋Ÿฌ์šด ๊ณก๋ฅ ๋กœ ์—ฐ๊ฒฐ๋œ ๊ฒƒ์„ ์•Œ ์ˆ˜โ€ฆ


2024๋…„ ํ•œํ•ด๋ฅผ ๋Œ์•„๋ณด๋ฉฐ

December 24, 2024

2024๋…„์„ ๋˜๋Œ์•„๋ณด๋ฉฐ ํ•œํ•ด๋™์•ˆ ์žˆ์—ˆ๋˜ ์ผ๋“ค์„ ๋Œ์•„๋ณด๊ณ ์ž ํšŒ๊ณ ๋ฅผ ์ž‘์„ฑํ•ด๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. File(2024).use { ๐Ÿ“Œ ๋‹ค์‚ฌ๋‹ค๋‚œ ํ–ˆ๋˜ 1๋…„ 2024๋…„์€ ์ทจ์—… ์ค€๋น„์— ๋งŽ์€ ์‹œ๊ฐ„์„ ์Ÿ์•˜๋˜ ํ•ด๋กœ ๊ธฐ์–ต๋ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋˜๋Œ์•„๋ณด๋ฉด, ์—ฌ์˜๋„ ๋ถˆ๊ฝƒ๋†€์ด๋ฅผ ๋‹ค๋…€์˜ค๊ณ , ํž˜๋“  ์‹œ๊ธฐ๋ฅผ ์Šค์Šค๋กœ ์ด๊ฒจ๋‚ด๋ฉฐ ์„ฑ์žฅํ–ˆ๋˜ ์ˆœ๊ฐ„๋“ค์ด ํ•จ๊ป˜ ๋– ์˜ค๋ฆ…๋‹ˆ๋‹ค. ์ƒ๋ฐ˜๊ธฐ์—๋Š” ์กธ๋ฆฐ ๋ˆˆ์„ ๋น„๋น„๋ฉฐ ๋ฉด์ ‘ ์ค€๋น„ ์Šคโ€ฆ


Kotlin Multiplatform - Decompose

December 18, 2024

๊ฐœ์š” ์ตœ๊ทผ์— Kotlin Multiplatform์„ ํ™œ์šฉํ•˜์—ฌ ์•ˆ๋“œ๋กœ์ด๋“œ ํƒœ๋ธ”๋ฆฟ๊ณผ Desktop์—์„œ ์‚ฌ์šฉํ•  ์„œ๋น„์Šค๋“ค์„ ๊ฐœ๋ฐœํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์•ˆ๋“œ๋กœ์ด๋“œ์—์„œ๋Š” ํ™”๋ฉด๊ฐ„์— Jetpack Compose Navigation์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์ง€๋งŒ ํ˜„์žฌ Android์—์„œ๋งŒ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜์—ฌ ๋Œ€์ฒดํ•  ์—ฌ๋Ÿฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ฐพ์•„๋ณด๋˜ ๋„์ค‘ Decompose๋ฅผ ์•Œ๊ฒŒ๋˜์–ด ํ•œ๋ฒˆ ๊ณต์œ ํ•ด๋ณด๊ณ ์ž ํ•ฉโ€ฆ


KMP๋ฅผ ์ง€์›ํ•˜๋Š” Ktor Client๋ฅผ ์‚ฌ์šฉํ•ด๋ณด์ž

December 04, 2024

์•ˆ๋“œ๋กœ์ด๋“œ์—์„œ๋Š” Rest Api ํ†ต์‹ ์„ ํŽธ๋ฆฌํ•˜๊ฒŒ ํ•ด์ฃผ๋Š” , ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉ์„ ํ˜„์žฌ๊นŒ์ง€๋„ ๋งŽ์ด ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค. ์ตœ๊ทผ Kotlin Multiplatform์„ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜๋ฉด์„œ Retrofit์„ ์‚ฌ์šฉํ•˜์ง€ ๋ชปํ•˜๊ฒŒ ๋˜์–ด ๋ง๋กœ๋งŒ ๋“ฃ๋˜ Ktor๋ฅผ ์‚ดํŽด๋ณด๊ณ ์ž ํ•œ๋‹ค. Ktor? Ktor๋Š” Kotlin์œผ๋กœ๋งŒ ์ž‘์„ฑ๋œ ๊ฒฝ๋Ÿ‰ ์›น ํ”„๋ ˆ์ž„์›Œํฌ์ด๋‹ค. ๋”ฐ๋ผ์„œ ํ”Œ๋žซํผ์— ์ข…์†์ ์ด์ง€ โ€ฆ


Compose ๋‚˜๋งŒ์˜ Custom Theme ์„ค์ •ํ•˜๊ธฐ

April 26, 2024

์•ˆ๋“œ๋กœ์ด๋“œ์—์„œ๋Š” Material Design์„ ์‚ฌ์šฉํ•˜์—ฌ ์ปฌ๋Ÿฌ๋ฅผ ์ ์šฉํ•˜์—ฌ ๋ผ์ดํŠธ, ๋‹คํฌ๋ชจ๋“œ๋ฅผ ์ง€์›ํ•˜๋Š” ์•ฑ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ Material์˜ ์ง€์ •๋œ ํ…Œ๋งˆ๊ฐ€ ํ•œ์ •์ ์ด๊ณ , ๋””์ž์ด๋„ˆ๊ฐ€ ๋งŒ๋“  ์ƒ‰์ƒ์˜ ๋„ค์ž„์„ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š” ์‚ฌ์šฉ์ž ์ง€์ • ํ…Œ๋งˆ๋ฅผ ๋งŒ๋“ค์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฒˆ์— Compose์—์„œ ์‚ฌ์šฉ์ž ์ง€์ • ํ…Œ๋งˆ๋ฅผ ์ ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ํ•˜๋‚˜์”ฉ ์‚ดํŽด๋ณด๋„โ€ฆ


์ฝ”ํ‹‘๋ฆฐ์„ ์œ„ํ•œ Kotlinx Serizalization

March 07, 2024

์„œ๋ฒ„์—์„œ REST API๋ฅผ ๊ตฌํ˜„ํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃฐ๋•Œ๋Š” Json ๋ฐ์ดํ„ฐ ํ˜•ํƒœ๋กœ ๋งŽ์ด ๋‹ค๋ฃจ๊ฒŒ ๋œ๋‹ค. ์•ˆ๋“œ๋กœ์ด๋“œ์—์„œ ์„œ๋ฒ„์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„์˜ฌ๋•Œ ํŽธ๋ฆฌํ•˜๊ฒŒ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๊ฐ์ฒด-Json ๊ฐ„์˜ Converter ์ž‘์—…์„ ํ•˜์˜€์—ˆ๋‹ค. ์ด๋ฒˆ์— ๊ตฌ๊ธ€ ํ”„๋กœ์ ํŠธ๋ฅผ ๋ณด๋ฉด์„œ ์ƒˆ๋กœ์šด ์ง๋ ฌํ™”/์—ญ์ง๋ ฌํ™”๋ฅผ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๋ณด๋ ค๊ณ  ํ•œ๋‹ค. Kotlin์˜ Default Valuโ€ฆ


2023๋…„ ํ•œํ•ด ํšŒ๊ณ ๋ก

December 31, 2023

๋“ค์–ด๊ฐ€๋ฉฐ ๐Ÿ‘‹๐Ÿผ 2023๋…„์€ ๋Œ€๋ถ€๋ถ„ ํƒ€์ง€์—์„œ ์ƒํ™œ์„ ํ–ˆ๋˜ ํ•œํ•ด์—ฌ์„œ ๊ทธ๋Ÿฐ์ง€ ์œ ๋‚œํžˆ ๋นจ๋ฆฌ ์ง€๋‚˜๊ฐ„๊ฒƒ ๊ฐ™๋‹ค. ์ƒˆ๋กœ์šด ์ง€์—ญ์—์„œ์˜ ์ƒํ™œ๋ถ€ํ„ฐ ๋Œ€ํ•™๊ต๋ฅผ ์กธ์—…ํ•˜๊ณ  ์ธํ„ด๊ฒฝํ—˜๊นŒ์ง€ ์ง€๋‚œ 2023๋…„์„ ๋˜๋Œ์•„๋ณด๋ฉฐ ํšŒ๊ณ ๋ก์„ ์ž‘์„ฑํ•ด๋ณด๋ ค๊ณ  ํ•œ๋‹ค. lateinit var 2024: ์ฒญ๋ฃก์˜ ํ•ด 2023.open() ๐Ÿ“Œ SSAFY 9th ์ด๋ฒˆ 2023๋…„์€ ์‹œ์ž‘๋ถ€ํ„ฐ 1์›” ์ดˆ 9๊ธฐ ๋ชจ๋ฐ”์ผ ํŠธ๋ž™ โ€ฆ


Gradle Convention Plugin ์ƒ์„ฑ ๋ฐ ์ ์šฉํ•˜๊ธฐ

December 26, 2023

Gradle์—์„œ ์ตœ๊ทผ์— ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ๋ฒ„์ „๊ด€๋ฆฌ๋Š” ๋ฅผ ํ†ตํ•˜์—ฌ ํ•˜๊ณ  ์žˆ๋‹ค. ๊ฒฐ๊ตญ version-catalog, BuildSrc ๋“ฑ์€ ์˜์กด์„ฑ ๋ฒ„์ „, ๊ด€๋ฆฌ์— ๋Œ€ํ•œ ์žฌ์‚ฌ์šฉ์„ฑ์„ ๋†’์—ฌ์ฃผ๊ณ  ๋ฉ€ํ‹ฐ ๋ชจ๋“ˆ์„ ๊ตฌ์„ฑํ•˜๊ฒŒ ๋˜๋ฉด ๊ณตํ†ต์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ์ฝ”๋“œ ์ž‘์„ฑ์„ ์ค„์—ฌ์ฃผ๊ฒŒ ๋œ๋‹ค. ์ด๋ฒˆ์— Now in Android ์˜ˆ์‹œ ํ”„๋กœ์ ํŠธ๋ฅผ ๋ณด๋ฉด์„œ build-logic์ด ์ ์šฉ๋˜์–ด ์žˆ๋Š” ๋ชจ๋“ˆ์„ ํ•œโ€ฆ


์•ˆ๋“œ๋กœ์ด๋“œ WebView๋กœ ์›น๊ณผ ๋†€๊ธฐ

November 20, 2023

WebView ๋ชจ๋ฐ”์ผ ์•ฑ์„ ์‚ฌ์šฉํ•˜๋‹ค ๋ณด๋ฉด ์›น์œผ๋กœ ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ ํ•˜๊ฑฐ๋‚˜ ์›น ํŽ˜์ด์ง€๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ํ™”๋ฉด๋“ค์„ ๋งŽ์ด ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ์•ฑ์—์„œ ์›นํŽ˜์ด์ง€๋ฅผ ๋ณด์—ฌ์ค„ ์ˆ˜ ์žˆ๋Š” ์›น๋ทฐ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์•ˆ๋“œ๋กœ์ด๋“œ์—์„œ WebView ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ์˜ต์…˜์„ ์„ค์ •ํ•˜๊ณ  ์›น ํŽ˜์ด์ง€์™€ ์ƒํ˜ธ์ž‘์šฉ ํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ WebView๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์•ˆ๋“œ๋กœ์ด๋“œ์—์„œ Internet ํผ๋ฏธโ€ฆ