๋ฐ˜์‘ํ˜•

์ฝ”ํ‹€๋ฆฐ 7

[Kotlin] ์ฝ”ํ‹€๋ฆฐ Mono, Flux ๋ž€?

Intro์•ˆ๋…•ํ•˜์„ธ์š”:) ์ด๋ฒˆ ์‹œ๊ฐ„์—๋Š” ์ฝ”ํ‹€๋ฆฐ Mono, Flux ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์š”์ฆ˜ ๋‹ค์‹œ ์ฝ”ํ‹€๋ฆฐ์„ ํ•˜๊ณ  ์žˆ๋Š”๋ฐ ๊ทธ์ƒˆ ๊ฐœ๋…์„ ์žŠ์–ด๋จน์–ด ๋‹ค์‹œ ๊ณต๋ถ€๊ฐ€ ํ•„์š”ํ•  ๊ฒƒ ๊ฐ™์•„์š”! ๐Ÿ˜ญ ์ฝ”ํ‹€๋ฆฐ Mono, Fluxkotlin์—์„œ Mono, Flux๋Š” Reactor ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—์„œ ์ œ๊ณตํ•˜๋Š” ๋น„๋™๊ธฐ ์ŠคํŠธ๋ฆผ์„ ํ‘œํ˜„ํ•˜๋Š” ํƒ€์ž…์ž…๋‹ˆ๋‹ค. ์ด๋“ค์€ ๋น„๋™๊ธฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์ง€์›ํ•˜๊ธฐ ์œ„ํ•ด ๋งŒ๋“ค์–ด์กŒ์œผ๋ฉฐ, Reactive Streams ํ‘œ์ค€์„ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค. Reactor ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ์ž๋ฐ” ๊ธฐ๋ฐ˜์˜ ๋ฆฌ์•กํ‹ฐ๋ธŒ ํ”„๋กœ๊ทธ๋ž˜๋ฐ(๋น„๋™๊ธฐ ์ŠคํŠธ๋ฆผ ์ฒ˜๋ฆฌ)๋ฅผ ์œ„ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ž…๋‹ˆ๋‹ค. Spring WebFlux์™€ ๊ฐ™์€ ๋น„๋™๊ธฐ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์ฃผ๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. Spring WebFlux๋Š” Spring Framework์—์„œ ์ œ๊ณตํ•˜๋Š” ๋น„๋™๊ธฐ ๋ฐ ๋…ผ๋ธ”๋กœํ‚น ์›น ์• ํ”Œ..

Programming/Kotlin 2024.11.18

[Kotlin] ์ฝ”ํ‹€๋ฆฐ ํ˜„์žฌ ๋‚ ์งœ DateTime ์—์„œ ์‹œ๊ฐ„ ์ถ”๊ฐ€ํ•˜๋Š” ๋ฒ•

Intro ์•ˆ๋…•ํ•˜์„ธ์š”. ์ด๋ฒˆ ์‹œ๊ฐ„์—๋Š” ์ฝ”ํ‹€๋ฆฐ์—์„œ ํ˜„์žฌ ๋‚ ์งœ DateTime ์—์„œ ์‹œ๊ฐ„ ์ถ”๊ฐ€ํ•˜๋Š” ๋ฒ•์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. How to implement ์šฐ์„  LocalDateTime ์„ ํ†ตํ•ด ํ˜„์žฌ ๋‚ ์งœ ๋ฐ ์‹œ๊ฐ„์„ ๊ตฌํ•ฉ๋‹ˆ๋‹ค. ๊ทธ ์ดํ›„ plusHours ๋ฉ”์†Œ๋“œ๋ฅผ ํ†ตํ•ด ์›ํ•˜๋Š” ๊ฐ’๋งŒํผ ์‹œ๊ฐ„์„ ๋”ํ•ด์ฃผ๋ฉด ๋ฉ๋‹ˆ๋‹ค. import java.time.LocalDate import java.time.LocalDateTime fun main(args: Array) { val todayDateTime: LocalDateTime = LocalDateTime.now() println("Current date and time: $todayDateTime") println("Add 9 Hour date and time: ${today..

Programming/Kotlin 2023.02.13

[Kotlin] ์ฝ”ํ‹€๋ฆฐ ๋ฆฌ์ŠคํŠธ list ํŠน์ • ํ•„๋“œ๋กœ ๋‚ด๋ฆผ์ฐจ์ˆœ(DESC) ์ •๋ ฌํ•˜๋Š” ๋ฐฉ๋ฒ•

Intro ์•ˆ๋…•ํ•˜์„ธ์š”. ์ด๋ฒˆ ์‹œ๊ฐ„์—๋Š” ์ฝ”ํ‹€๋ฆฐ์—์„œ ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. How to do ์ฝ”ํ‹€๋ฆฐ ๋‚ด์žฅ ํ•จ์ˆ˜์ธ sortedByDescending ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋˜๋Š”๋ฐ์š”, ๋‚ด๋ฆผ์ฐจ์ˆœ์— ์‚ฌ์šฉํ•˜๊ณ ์ž ํ•˜๋Š” ํŠน์ • ํ•„๋“œ ๊ฐ’์„ ๋„ฃ์–ด์ฃผ๋ฉด ๋ฉ๋‹ˆ๋‹ค. result.sortedByDescending { it.date } https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/sorted-by-descending.html

Programming/Kotlin 2023.01.20

[Kotlin] ์ฝ”ํ‹€๋ฆฐ mutableList ์ˆ˜์ • ๋ฐ ์‚ญ์ œํ•˜๋Š” ๋ฐฉ๋ฒ•

Intro ์•ˆ๋…•ํ•˜์„ธ์š”. ์ด๋ฒˆ ์‹œ๊ฐ„์—๋Š” ์ฝ”ํ‹€๋ฆฐ์—์„œ mutableList ๋ฅผ ์ˆ˜์ • ๋ฐ ์‚ญ์ œํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. MutableList ์ฝ”ํ‹€๋ฆฐ์—์„œ ์ˆ˜์ • ๋ฐ ์‚ญ์ œ ๋“ฑ๊ณผ ๊ฐ™์€ ์ž‘์—…์„ ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” List๊ฐ€ ์•„๋‹Œ, mutableList๋กœ ์„ ์–ธํ•ด์ค˜์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ val, var ๋ณ€์ˆ˜๋ฅผ ์ œ๊ณตํ•˜๊ณ  ์žˆ๋Š”๋ฐ์š”, val๋Š” ์ฝ๊ธฐ๋งŒ ๊ฐ€๋Šฅํ•˜๊ณ , var์€ ์ฝ๊ธฐ ๋ฐ ์ˆ˜์ •์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. How to do ์•„๋ž˜ ์ฝ”๋“œ์™€ ๊ฐ™์ด ์ˆ˜์ • ํ˜น์€ ์‚ญ์ œ๊ฐ€ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ์ˆ˜์ •ํ•˜๊ณ  ์‹ถ์„ ๊ฒฝ์šฐ, ํ•ด๋‹น ์ธ๋ฑ์Šค์— ์ƒˆ๋กœ์šด ๊ฐ’์„ ๋„ฃ์–ด์ฃผ๋ฉด ๋˜๊ณ , ์‚ญ์ œ๋ฅผ ํ•˜๊ณ  ์‹ถ์„ ๊ฒฝ์šฐ removeAt() ๋ฉ”์†Œ๋“œ๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์‚ญ์ œํ•˜๊ณ ์ž ํ•˜๋Š” ์ธ๋ฑ์Šค ๋ฒˆํ˜ธ๋ฅผ ๋„ฃ์–ด์ค๋‹ˆ๋‹ค. fun main() { val list: MutableList = mutableListOf() lis..

Programming/Kotlin 2023.01.16

[Kotlin] ๋‚ ์งœ Date ์‹œ์ž‘์ผ๋ถ€ํ„ฐ ์ข…๋ฃŒ์ผ๊นŒ์ง€ ํ•˜๋ฃจ์”ฉ ์ฆ๊ฐ€์‹œํ‚ค๋Š” ๋ฐฉ๋ฒ•, ์ฝ”ํ‹€๋ฆฐ ๋ฐ˜๋ณต๋ฌธ ๋Œ๋ฆฌ๊ธฐ

Intro ์•ˆ๋…•ํ•˜์„ธ์š”. ์ด๋ฒˆ ์‹œ๊ฐ„์—๋Š” ์ฝ”ํ‹€๋ฆฐ์—์„œ ์‹œ์ž‘์ผ๋ถ€ํ„ฐ ์ข…๋ฃŒ์ผ๊นŒ์ง€ ํ•˜๋ฃจ์”ฉ ์ฆ๊ฐ€์‹œํ‚ค๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. How to do datesUntil() ๋ฉ”์„œ๋“œ์™€, plusDays() ๋ฉ”์„œ๋“œ๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์‹œ์ž‘์ผ๋ถ€ํ„ฐ ์ข…๋ฃŒ์ผ๊นŒ์ง€ 1์”ฉ ์ฆ๊ฐ€์‹œ์ผœ์ค๋‹ˆ๋‹ค. /** * You can edit, run, and share this code. * play.kotlinlang.org */ import java.time.LocalDate; fun main() { LocalDate.of(2023, 1, 14) .datesUntil(LocalDate.of(2023, 1, 19).plusDays(1)) .forEach { it -> println(it) } } ์ฝ”๋“œ ์‹คํ–‰ ๊ฒฐ๊ณผ๋Š” ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค. 2023-01-14 2023-0..

Programming/Kotlin 2023.01.14

[Kotlin] object list ์—์„œ ํŠน์ • ํ•„๋“œ ๊ฐ’ (field value) ๊ฐ€์ ธ์˜ค๋Š” ๋ฐฉ๋ฒ•

Intro ์•ˆ๋…•ํ•˜์„ธ์š”. ์ด๋ฒˆ ์‹œ๊ฐ„์—๋Š” object list์—์„œ ๋‹จ์ผ field ๊ฐ’์„ ๊ฐ€์ ธ์˜ค๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์•„๋ž˜์™€ ๊ฐ™์€ ์ฝ”ํ‹€๋ฆฐ ์ฝ”๋“œ๊ฐ€ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด๋ด…์‹œ๋‹ค. ์—ฌ๊ธฐ์„œ { "hong", "kil" } ์™€ ๊ฐ™์€ ํ˜•์‹์œผ๋กœ ๋‹จ์ผ ํ•„๋“œ ๊ฐ’๋งŒ ๊ฐ€์ ธ์˜ค๊ณ  ์‹ถ์œผ๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ• ๊นŒ์š”? fun main(args:Array){ println("Hello World") val list = listOf(member("hong",10), member("kil", 10)) } data class member(var name:String, var age:Int) How to solve the problem ์•„๋ž˜์™€ ๊ฐ™์ด ๊ฐ„๋‹จํ•˜๊ฒŒ map() ๋ฉ”์†Œ๋“œ๋ฅผ ํ†ตํ•˜์—ฌ name์ด๋ผ๋Š” ํ•„๋“œ๋งŒ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. val ..

Programming/Kotlin 2023.01.07

[Intellij] ์•ˆ์“ฐ๋Š” import ์ œ๊ฑฐ ํ•˜๋Š” ๋ฐฉ๋ฒ• (๋‹จ์ถ•ํ‚ค/์ž๋™ ์„ค์ •)

Intro ์ธํ…”๋ฆฌ์ œ์ด์—์„œ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” import ๊ตฌ๋ฌธ์„ ์ œ๊ฑฐํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. How to do 1. Intelij > Code > Optimize Imports ์‚ฌ์šฉ (control + option + O) → ์œ„ ๋ฐฉ๋ฒ•์€ ์ˆ˜๋™ ํ˜น์€ ๋‹จ์ถ•ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. 2. Preference > Editor > General > Auto Import > Optimize Imports on the fly ํด๋ฆญ → ์œ„ ๋ฐฉ๋ฒ•์€ ์ž๋™์œผ๋กœ ์„ค์ •ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ์ œ ๊ฒฝ์šฐ์—๋Š” Kotlin Editor๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์–ด์„œ, Kotlin์˜ Optimize imports on the fly์— ์ฒดํฌ๋ฅผ ํ•ด์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค.

๋ฐ˜์‘ํ˜•