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

Programming/Java, Kotlin

(12)
[Kotlin] ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์œ„ํ•œ ์ฝ”ํ‹€๋ฆฐ ์ž๋ฃŒ๊ตฌ์กฐ ๋ฐฐ์—ด // ๋ฐฐ์—ด ์ดˆ๊ธฐํ™” val array1 = arrayOf(1, 2, 3) val array2 = Array(3) {0} println(array1.joinToString()) // 1, 2, 3 println(array2.joinToString()) // 0, 0, 0 array2[0] = 1 // 0 ์ธ๋ฑ์Šค์˜ ๊ฐ’์„ 1๋กœ ๋ณ€๊ฒฝ println(array2.joinToString()) // 1, 0, 0 // ArrayList ์ƒ์„ฑ val list = ArrayList() list.add(1) list.add(2) println(list) // 1, 2  ์Šคํƒ ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ๋”ฐ๋กœ ๊ฐ€์ง€๊ณ  ์žˆ์ง€ ์•Š์œผ๋ฉฐ, Mu..
[Spring] redis ๋ถ„์‚ฐ ๋ฝ ์ „๋žต์„ ํ†ตํ•œ ๋™์‹œ์„ฑ ์ฒ˜๋ฆฌ(์„ ์ฐฉ์ˆœ, ๋”ํ‹ฐ ๋ฆฌ๋“œ, ํŒฌํ…€ ๋ฆฌ๋“œ) Spring๊ณผ Redis๋ฅผ ํ™œ์šฉํ•œ ๋™์‹œ์„ฑ ์ฒ˜๋ฆฌ ๋ฐ ๋ฐ์ดํ„ฐ ์ผ๊ด€์„ฑํ˜„๋Œ€์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ๋Š” ๋™์‹œ์„ฑ ์ฒ˜๋ฆฌ๊ฐ€ ์ค‘์š”ํ•œ ์š”์†Œ์ž…๋‹ˆ๋‹ค. ํŠนํžˆ ์—ฌ๋Ÿฌ ์‚ฌ์šฉ์ž๊ฐ€ ๋™์‹œ์— ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ •ํ•˜๊ฑฐ๋‚˜ ์กฐํšŒํ•˜๋Š” ํ™˜๊ฒฝ์—์„œ ๋ฐ์ดํ„ฐ์˜ ์ผ๊ด€์„ฑ์„ ์œ ์ง€ํ•˜๋Š” ๊ฒƒ์€ ํฐ ๋„์ „ ๊ณผ์ œ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.  ์‹ค์ œ๋กœ ๋ฌด์ž‘์œ„ ํฌ์ธํŠธ(๋žœ๋ค ํฌ์ธํŠธ) ์ง€๊ธ‰ ์ด๋ฒคํŠธ๋ฅผ ๊ฐœ๋ฐœํ–ˆ๋˜ ๊ฒฝํ—˜์„ ์ •๋ฆฌํ•ด๋ณด๋ ค๊ณ  ๊ธ€์„ ์ž‘์„ฑํ•ด ๋ด…๋‹ˆ๋‹ค.1. ๋™์‹œ์„ฑ ์ฒ˜๋ฆฌ์˜ ํ•„์š”์„ฑ๋™์‹œ์„ฑ์ด๋ž€ ์—ฌ๋Ÿฌ ํŠธ๋žœ์žญ์…˜์ด ๋™์‹œ์— ์‹คํ–‰๋  ๋•Œ ๋ฐœ์ƒํ•˜๋Š” ํ˜„์ƒ์œผ๋กœ, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ์˜ ์ฝ๊ธฐ ๋ฐ ์“ฐ๊ธฐ ์ž‘์—…์˜ ์ถฉ๋Œ์„ ๊ด€๋ฆฌํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•˜๋ฉด ๋ฐ์ดํ„ฐ์˜ ์ผ๊ด€์„ฑ์ด ์ €ํ•ด๋  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ด๋Š” ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์— ๋ถ€์ •์ ์ธ ์˜ํ–ฅ์„ ๋ฏธ์น  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 2. Spring์—์„œ์˜ ํŠธ๋žœ์žญ์…˜ ๊ฒฉ๋ฆฌ ์ˆ˜์ค€Spring์—์„œ๋Š” ํŠธ๋žœ์žญ์…˜์˜ ๊ฒฉ๋ฆฌ ์ˆ˜์ค€์„ ์„ค์ •ํ•˜์—ฌ..
[Kotlin] IDE์—†์ด ์˜จ๋ผ์ธ์œผ๋กœ Kotlin ์—ฐ์Šตํ•˜๊ธฐ ์˜จ๋ผ์ธ Kotlin ์—ฐ์Šต์žฅhttps://play.kotlinlang.org/ Kotlin Playground: Edit, Run, Share Kotlin Code Online play.kotlinlang.org์œ„ ์‚ฌ์ดํŠธ์— ์ ‘์†ํ•˜๋ฉด ๋ณ„๋„์˜ IntelliJ์™€ ๊ฐ™์€ ๋ณ„๋„์˜ IDE ์—†์ด Kotlin ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ์—ฐ์Šตํ•  ์ˆ˜ ์žˆ๋‹ค. ๋ฐฑ์ค€๊ณผ ๊ฐ™์€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์—ฐ์Šตํ•  ๋•Œ, IDE๋ฅผ ํ†ตํ•ด์„œ ํ”„๋กœ์ ํŠธ๋ฅผ ๋งŒ๋“ค์ง€ ์•Š์•„๋„๋œ๋‹ค๋Š” ์ ์—์„œ ์œ ์šฉํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™๋‹ค.
[Java] modelmapper jdk 17 issue "modelmapper Unable to make field private final java.time.LocalDate java.time.LocalDateTime.date accessible: module java.base does not "opens java.time" to unnamed module" ํ•ด๊ฒฐ java spring ํ™˜๊ฒฝ์—์„œ modelmapper ๋ฅผ ์‚ฌ์šฉํ•˜๋˜ ์ค‘ ์•„๋ž˜์™€ ๊ฐ™์€ ์ด์Šˆ๊ฐ€ ๋ฐœ์ƒ "modelmapper Unable to make field private final java.time.LocalDate java.time.LocalDateTime.date accessible: module java.base does not "opens java.time" to unnamed module" Java 9๋ถ€ํ„ฐ๋Š” ๋ชจ๋“ˆ ์‹œ์Šคํ…œ์ด ๋„์ž…๋˜์—ˆ์œผ๋ฉฐ, ๋ชจ๋“ˆ ๊ฐ„์˜ ์ ‘๊ทผ์„ ๋ช…์‹œ์ ์œผ๋กœ ์ œ์–ดํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋Š” Java 9 ์ด์ƒ์—์„œ ModelMapper์™€ java.time ํŒจํ‚ค์ง€์˜ ์‚ฌ์šฉ ์‚ฌ์ด์˜ ์ ‘๊ทผ ์ œํ•œ์œผ๋กœ ๋ฐœ์ƒํ•œ ์ด์Šˆ ํ˜„์žฌ ๋‚ด ํ™˜๊ฒฝ์€ jdk 17์ด์—ˆ๊ณ  entity์˜ private์œผ๋กœ ์„ค์ •๋œ LocalDateTi..
[Java] ์ž๋ฐ”์—์„œ ์ธ์ž์˜ ์‹ค์ œ ๊ฐ’์ด ๋ณ€๊ฒฝ๋˜๋Š” ์ด์œ  Java๋Š” ์ธ์ž๋กœ ๋„˜๊ฒจ์ค€ ๊ฐ์ฒด์˜ ๊ฐ’์„ ๋ณ€๊ฒฝํ•˜๋ฉด ํ•ด๋‹น ๊ฐ์ฒด์˜ ์‹ค์ œ ๊ฐ’์ด ๋ณ€๊ฒฝ๋œ๋‹ค. add ํ•จ์ˆ˜๋Š” ์ธ์ž๋กœ ๋ฐ›๋Š” model ๊ฐ์ฒด ์•ˆ์˜ number ํ•„๋“œ์˜ ๊ฐ’์„ 1 ๋”ํ•˜๋Š” ํ•จ์ˆ˜์ด๋‹ค. ์ฒ˜์Œ์— ์žˆ๋Š” model ๊ฐ์ฒด๋ฅผ add ํ•จ์ˆ˜์˜ ์ธ์ž๋กœ ๋„˜๊ฒจ์„œ ์‹คํ–‰ํ•˜๋ฉด ์ฒ˜์Œ model์˜ ํ•„๋“œ ๊ฐ’์ด ๋ณ€๊ฒฝ๋œ๋‹ค. C์–ธ์–ด๋‚˜ python์—์„œ ํ•จ์ˆ˜์— ์ธ์ž๋ฅผ ๋„˜๊ธฐ๋ฉด ์‹ค์ œ ๊ฐ’(ํ˜น์€ ๊ฐ์ฒด์˜ ์ฃผ์†Œ ๊ฐ’)์ด ์•„๋‹Œ ์ธ์ž์˜ ๊ฐ’์„ ๋ณต์‚ฌ ๊ฐ’์ด ๋„˜์–ด๊ฐ„๋‹ค. ์ด๋ ‡๊ฒŒ ์›๋ณธ์˜ ๋ณต์‚ฌ ๊ฐ’์„ ์ธ์ž์— ๋„˜๊ฒจ์ฃผ๋Š” ๋ฐฉ๋ฒ•์„ "Call By Value"๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค. ์‹ค์ œ๋กœ ์›๋ณธ A๋ฅผ ๋ณ€๊ฒฝํ•˜๊ธฐ ์œ„ํ•ด์„œ addํ•จ์ˆ˜์˜ return ๊ฐ’์ธ B ๋‹ค์‹œ ๋Œ€์ž…ํ•ด์ค„ ์ˆ˜ ์žˆ๋‹ค. Model model = new Model() model = add(model)// add ํ•จ์ˆ˜์˜ return์€ Model cl..
[Java] XMLํŒŒ์ผ๊ณผ ์ž๋ฐ”(Java)๋กœ ํŒŒ์‹ฑ(parsing)ํ•˜๊ธฐ xml์˜ˆ์‹œ ํŒŒ์ผ ํ•œ๊ตญ์ด 25 ์„œ์šธ java๋กœ xmlํŒŒ์ผ parsing ํ•˜๊ธฐ XML ํŒŒ์ผ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ์ ˆ์ฐจ๋Š” HTML ํŒŒ์ผ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ์ ˆ์ฐจ์™€ ์œ ์‚ฌํ•ฉ๋‹ˆ๋‹ค. HTML์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค๊ฑฐ๋‚˜ ์ˆ˜์ •ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ํ•„์š”ํ•œ ํƒœ๊ทธ๋ฅผ ์ธ์‹ํ•ด์ค„ ํ•„์š”๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, document.getElementById("๊ฐ€์ ธ์˜ฌ ํƒœ๊ทธ์˜ Id") ๋ช…๋ น์–ด๋ฅผ ์ด์šฉํ•ด์„œ ํŠน์ • ์•„์ด๋””๋ฅผ ๊ฐ€์ง„ ํƒœ๊ทธ๋ฅผ ์ธ์‹ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด์ฒ˜๋Ÿผ xmlํŒŒ์ผ ์—ญ์‹œ ํƒœ๊ทธ๋ฅผ ์ธ์‹ํ•˜๊ธฐ ์œ„ํ•ด์„œ ํ•„์š”ํ•œ ์ ˆ์ฐจ๋Š” ๋ฌธ์„œ์˜ ์ž์ฒด ๊ฐ์ฒด์ธ document๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax..
<ํ† ์ด ํ”„๋กœ์ ํŠธ ํšŒ๊ณ ๋ก> ์ž๋ฐ” ์Šค์œ™(Java Swing)์„ ์ด์šฉํ•œ GUI ํ”„๋กœ๊ทธ๋žจ(ft. DBeaver) Java๋‚ด์— ๋‚ด์žฅ๋˜์–ด์žˆ๋Š” GUI์ธ ์Šค์œ™(swing)์„ ์ด์šฉํ•˜์—ฌ ๊ฐ„๋‹จํ•œ ํ† ์ด ํ”„๋กœ๊ทธ๋žจ(๊ฐ€๊ณ„๋ถ€ ํ”„๋กœ์ ํŠธ)์„ ์ž‘์„ฑํ•˜์˜€์Šต๋‹ˆ๋‹ค. ์–ด๋–ค ๊ธฐ๋Šฅ์„ ์–ด๋–ป๊ฒŒ ๋งŒ๋“ค์—ˆ๋Š”์ง€ ์ƒ๊ฐํ•ด์•ผํ•  ๋ถ€๋ถ„์ด ์–ด๋–ค ๊ฒŒ ์žˆ์„์ง€ ํšŒ๊ณ ํ•˜๊ธฐ ์œ„ํ•ด ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค. ใ€‹ใ€‹ใ€‹๋ฐ”๋กœ๊ฐ€๊ธฐ ๋กœ๊ทธ์ธ ํšŒ์›๊ฐ€์ž… ํ…์ŠคํŠธ ํ•„๋“œ ํžŒํŠธ ์‚ฝ์ž… ํ…Œ์ด๋ธ” ๋ฐ์ดํ„ฐ ์‚ฝ์ž… ํ…Œ์ด๋ธ” ์ƒˆ๋กœ๊ณ ์นจ ํ…Œ์ด๋ธ” ํ–‰ ์‚ญ์ œ โ–ถ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ ์•„์ด๋”” ํ˜น์€ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ๊ธฐ์ž…ํ•˜๋Š” ํ…์ŠคํŠธํ•„๋“œ(textfield)๊ฐ€ ๊ธฐ์ž…๋˜์ง€ ์•Š์œผ๋ฉด ํ•˜๋‹จ ๋ผ๋ฒจ์— ๊ฒฝ๊ณ ๋ฌธ์„ ์ƒ์„ฑ. ์˜ณ์ง€ ์•Š์€ ์•„์ด๋””๋‚˜ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ–ˆ์„ ๋•Œ, ๊ฒฝ๊ณ ๋ฌธ GUI ์ƒ์„ฑ. ๋กœ๊ทธ์ธ ๋ฒ„ํŠผ์— ์ด๋ฒคํŠธ๋ฅผ ์ฒ˜๋ฆฌํ•ด์ฃผ๋Š” ๋ฉ”์„œ๋“œ actionListener ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•ด ๋” ํ•ด์ฃผ๊ณ  ํ…์ŠคํŠธ๊ฐ€ ๋น„์–ด์žˆ์„ ๋•Œ, ์ •ํ™•ํžˆ๋Š” idHint, pwHint ๋ฌธ์ž์—ด๊ณผ ๋™์ผํ•œ ๊ฒฝ์šฐ ๋ผ๋ฒจ ๊ฒฝ๊ณ ๋ฌธ์ด ๋ณด์ผ ์ˆ˜ ์žˆ๊ฒŒ ํ•ด ..
์ž๋ฐ”[Java] ์ž…์ถœ๋ ฅ Stream ์ดํ•ดํ•˜๊ธฐ โ–ถInputStream / Sytem.in.read() ImputStream์€ ์‚ฌ์šฉ์ž์˜ ์ž…๋ ฅ์„ ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” ์—ญํ• ์„ ํ•œ๋‹ค. ์‚ฌ์šฉ์ž ์ž…๋ ฅ์— ์ž์ฃผ ์“ฐ์ด๋Š” ํด๋ž˜์Šค์ธ Scanner์™€ ๋‹ค๋ฅธ ๋™์ž‘์„ ๋ณด์ด๋Š”๋ฐ, ๊ฐ€์žฅ ํฐ ํŠน์ง•์€ 1byte ๋‹จ์œ„๋กœ ์ž…๋ ฅ์„ ๋ฐ›์•„์˜จ๋‹ค๋Š” ์ ์ด๋‹ค. Sytem.in.read()์€ ์‚ฌ์šฉ์ž ์ž…๋ ฅ์„ ์ž„์‹œ ์ €์žฅํ•˜๋Š” ๋ฒ„ํผ(Buffer)์—์„œ ์ €์žฅ๋œ ๊ฐ’์„ ํ•˜๋‚˜์”ฉ ๊ฐ€์ ธ์˜จ๋‹ค. ์ด read()์˜ return ๊ฐ’์€ byte๋‹จ์œ„์˜ ๋ฐ์ดํ„ฐ ํ˜น์€ -1(๋ฒ„ํผ์— ๊ฐ’์ด ์—†์„ ๋•Œ)์ด๋‹ค. โ–ถ์•„์Šคํ‚ค์ฝ”๋“œ ๊ฐ’์œผ๋กœ ์ €์žฅ read() ๋ฉ”์„œ๋“œ๋กœ ๋ฆฌํ„ดํ•œ ๊ฐ’์„ ๋ณ€์ˆ˜์— ์ €์žฅํ•˜๊ฒŒ ๋  ํ…๋ฐ, ์ด๋•Œ ์‚ฌ์šฉ์ž ์ž…๋ ฅ ๊ฐ’์„ ๋ฆฌํ„ด ๊ฐ’์ธ byte๋‹จ์œ„(0~255)์— ๋งž์ถ”์–ด ์•„์Šคํ‚ค์ฝ”๋“œ ๊ฐ’์„ ์ €์žฅํ•˜๊ฒŒ ๋œ๋‹ค. ๋ณ€์ˆ˜ a์— ์‚ฌ์šฉ์ž ์ž…๋ ฅ์œผ๋กœ ๋ฌธ์ž 'a'๋ฅผ ๋ฐ›์œผ๋ฉด ๋ฌธ์ž 'a..

728x90