Java (12) ์ธ๋ค์ผํ ๋ฆฌ์คํธํ [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] 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 ๋ฌธ์์ด๊ณผ ๋์ผํ ๊ฒฝ์ฐ ๋ผ๋ฒจ ๊ฒฝ๊ณ ๋ฌธ์ด ๋ณด์ผ ์ ์๊ฒ ํด .. ์ด์ 1 2 ๋ค์