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

Java

(11)
[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] Kruskal's Algorithm ํฌ๋ฃจ์Šค์นผ ์•Œ๊ณ ๋ฆฌ์ฆ˜ - ์ตœ์†Œ ์‹ ์žฅ ํŠธ๋ฆฌ(MST) ์ตœ์†Œ ์‹ ์žฅ ํŠธ๋ฆฌ MST(Minimun Spanning Tree) - ํฌ๋ฃจ์Šค์นผ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ž๋ฐ” ๊ตฌํ˜„ ๐Ÿง ์ตœ์†Œ ์‹ ์žฅ ํŠธ๋ฆฌ MST(Minimun Spanning Tree)๋ž€? ์ตœ์†Œํ•œ์˜ ๊ฐ€์ค‘์น˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ชจ๋“  ์ •์ ์ด ์—ฐ๊ฒฐ๋˜์–ด ์žˆ์„ ์ˆ˜ ์žˆ๊ฒŒํ•˜๋Š” ๊ธฐ๋ฒ•์ด๋‹ค. ์˜ˆ์‹œ) ๋„์‹œ๋“ค์€ ๋ชจ๋‘ ๋‹ค๋ฆฌ๋กœ ์—ฐ๊ฒฐ๋˜์–ด์žˆ์„ ๋•Œ, ๋ชจ๋“  ๋„์‹œ๋ฅผ ๊ฐˆ ์ˆ˜ ์žˆ๊ฒŒ ๋‹ค๋ฆฌ๋ฅผ ์—ฐ๊ฒฐํ•˜๋˜ ์ตœ์†Œํ•œ์˜ ๋‹ค๋ฆฌ ๊ธธ์ด๋งŒ์„ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ• (๋„์‹œ๊ฐ€ ๊ฐ€๋กœ๋“ฑ์œผ๋กœ ๋‹ค๋ฆฌ๊ฐ€ ์ „์„ ์œผ๋กœ ๋ฐ”๋€”์ˆ˜๋„ ์žˆ๋‹ค.) ๋„ค๋น„๊ฒŒ์ด์…˜์˜ ์ตœ๋‹จ ๊ฒฝ๋กœ ๋ชจ๋“  ์ •์ (node ํ˜น์€ vortex)๊ฐ€ ์—ฐ๊ฒฐ๋  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ๋กœ ์ค‘ ๊ฐ€์žฅ ์ ์€ ๊ฐ€์ค‘์น˜(์—ฌ๊ธฐ์„  ๊ฑฐ๋ฆฌ)๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ๋กœ ์ฃผ์˜์‚ฌํ•ญ ์—ฌ๊ธฐ์„œ ์—ฐ๊ฒฐ์ด๋ž€ ๋‹ค๋ฅธ ๋…ธ๋“œ๋ฅผ ๊ฑฐ์ณ์„œ ๊ฐ€๋Š” ๊ฒƒ์„ ํฌํ•จํ•œ๋‹ค. ๊ฐ„์„  ํ˜น์€ ๋ธŒ๋žœ์น˜(๋…ธ๋“œ๋ฅผ ์ด์–ด์ฃผ๋Š” ์„ , ๊ฑฐ๋ฆฌ)๋Š” ๋ฐฉํ–ฅ์„ฑ์„ ๊ฐ–์ง€ ์•Š๋Š”๋‹ค.(์—ฐ๊ฒฐ๋งŒ ๋˜์–ด์žˆ..
[Java] Dijkstra Path ๋‹ค์ต์ŠคํŠธ๋ผ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ตฌํ˜„(ft. ์šฐ์„ ์ˆœ์œ„ ํ) ์‰ฝ์ง€๋งŒ ๋ณต์žกํ•œ ๋‹ค์ต์ŠคํŠธ๋ผ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๐Ÿค” ๋‹ค์ต์ŠคํŠธ๋ผ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ์™œ ์“ธ๊นŒ? โ—๏ธ์ตœ๋‹จ ๊ฒฝ๋กœ๋ฅผ ๊ตฌํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ค‘ ํ•˜๋‚˜์ด๋‹ค. ํŠน์ • ์ง€์ ์—์„œ ๋ชฉํ‘œ ์ง€์ ์œผ๋กœ ๊ฐ€์žฅ ์ ์€ ๋น„์šฉ์„ ๋“ค์ด๋ฉฐ ๊ฐ€์•ผํ•  ๋•Œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ์˜ˆ) A์—์„œ D๋กœ ๊ฐ€๋Š”๋ฐ ๊ฑธ๋ฆฌ๋Š” ๋น„์šฉ์€ ์ตœ์†Œ ๊ฐ’์€? A -> D = 5 A -> B -> D = 5 A -> C -> D = 3 ๋”ฐ๋ผ์„œ ์‹ค์ œ ์ตœ์†Œ ๋น„์šฉ ์ง€๋ถˆํ•˜๋Š” ๊ฒฝ๋กœ๋Š” A -> C -> D ์ด๋‹ค. ๐Ÿฅธ ๋‹ค์ต์ŠคํŠธ๋ผ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋กœ์ง 1. ์‹œ์ž‘์ง€์ ๊ณผ ์—ฐ๊ฒฐ๋œ ๋…ธ๋“œ๋“ค๊ณผ์˜ ๋น„์šฉ์„ ๊ตฌํ•œ๋‹ค. Result List ์—ฐ๊ฒฐ๋œ ๋…ธ๋“œ A B C D E ๋น„์šฉ 0 3 1 5 ๋ฌดํ•œ ์ถœ๋ฐœ ์ง€์ ์ด A์ผ ๋•Œ, ์ž๊ธฐ ์ž์‹ ์—๊ฒŒ ๊ฐ€๋Š” ๋น„์šฉ์€ ์—†์œผ๋‹ˆ 0 A์—์„œ E์™€ ๊ฐ™์ด ๋ฐ”๋กœ ์—ฐ๊ฒฐ๋œ ๊ฒฝ๋กœ๋Š” ์—†์„ ๋•Œ, ๋น„์šฉ์„ ๋ฌดํ•œ(์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š๋Š” ์•„์ฃผ ํฐ ๊ฐ’)์œผ๋กœ ํ•œ๋‹ค..
[์ž๋ฃŒ๊ตฌ์กฐ] Linked List๋ž€? - Java ๊ตฌํ˜„ ์ˆœ์„œ Linked list(๋งํฌ๋“œ ๋ฆฌ์ŠคํŠธ) ๋ž€? ใ„ด Linked list์™€ List์˜ ์ฐจ์ด์  ใ„ด Single Linked List์™€ Doubly Linked List ์ฐจ์ด์ (Doubly Linked List๊ฐ€ ํ•„์š”ํ•œ ์ด์œ ) Single Linked list ๊ตฌํ˜„(JAVA) Doubly Linked list ๊ตฌํ˜„(JAVA) ๐Ÿค” Linked list ๋ž€ ๋ฌด์—‡์ธ๊ฐ€? List์™€์˜ ์ฐจ์ด์  ์—ฐ๊ฒฐ๋œ ๋ฆฌ์ŠคํŠธ๋ž€ ์˜๋ฏธ๋ฅผ ๊ฐ€์ง€๋Š” ๋งํฌ๋“œ ๋ฆฌ์ŠคํŠธ๋Š” ์ผ๋ฐ˜ ๋ฆฌ์ŠคํŠธ(List)์™€ ์ฐจ์ด์ ์„ ๋ณด๋ฉด์„œ ์ด์•ผ๊ธฐํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ธฐ๋ณธ์ ์ธ List๋Š” ์ˆœ์ฐจ์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ๋œ ๋ฐฐ์—ด ๊ตฌ์กฐ์ด๋‹ค. List ๊ตฌ์กฐ index(์ˆœ์„œ) 0 1 2 3 4 5 value(๊ฐ’) "์ฒซ๋ฒˆ์งธ ๊ฐ’" "๋‘๋ฒˆ์งธ ๊ฐ’" "์„ธ๋ฒˆ์งธ ๊ฐ’" "๋„ค๋ฒˆ์งธ ๊ฐ’" "๋‹ค์„ฏ๋ฒˆ์งธ ๊ฐ’" "์—ฌ์„ฏ๋ฒˆ์งธ ๊ฐ’" ..
[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