Programming/Java, Kotlin (10) ์ธ๋ค์ผํ ๋ฆฌ์คํธํ [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.. ์๋ฐ[Java] ์ธํฐํ์ด์ค[Interface] ์ฌ์ฉ๊ณผ ์ด์ โถ ์ธํฐํ์ด์ค(Interface) ๋? ์๋ฐ์์ ์ ๊ณตํ๋ ์ธํฐํ์ด์ค๋, ์ถ์ ํด๋์ค์ ๋ง์ฐฌ๊ฐ์ง๋ก ์ถ์๋ ํ์ ๋ง๋ค์ด ๊ฐ๋ฐ์ ํผ์ ์ด ์๊ฒ๋ ๋์์ฃผ๋ ์ญํ ์ ํ๋ ๊ฐ์ฒด์ด๋ค. ํ์ ์ ํ๋ ๊ฐ๋ฐ์๋ค๋ผ๋ฆฌ์ ์ํํ ์์ฌ์ํต์ ์ํด์ ์์ฑ๋ ๊ฐ๋ ์ผ๋ก ์ธํฐํ์ด์ค๋ผ๋ ์ด๋ฆ์ ๊ฐ์ง๋ ๊ฒ ๊ฐ๋ค. โถ ์ถ์ ํด๋์ค์ ๋ฌด์์ด ๋ค๋ฅผ๊น? ์ถ์ ํด๋์ค๋ ํธ๋ฆฌ ํ์์ผ๋ก ์์ ํด๋์ค์ ํ์ ํด๋์ค๋ก ๋๋์ด์ง๋ ํธ๋ฆฌ ๊ตฌ์กฐ์ด๋ค. ํ์ ํด๋์ค๋ ์์ ํด๋์ค์์ ์ถ์ํ์ํจ ์์ฑ์ ํน์ ๋ฉ์๋๋ฅผ ์ ์ํ๋ฉด์ ๋ ๊ตฌ์ฒดํ๋์ด๊ฐ๋ค. ๋ฐ๋ฉด์, ์ธํฐํ์ด์ค๋ ํธ๋ฆฌ ๊ตฌ์กฐ์ ๊ฐ์ ์์ง์ ๊ตฌ์กฐ๊ฐ ์๋ ์ํ์ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง๊ฒ ๋๋ค. ์์ง์ ๊ตฌ์กฐ๋ฅผ ๊ฐ๋ ์ถ์ ํด๋์ค๋ ํ๋์ ์์ ํด๋์ค์๊ฒ๋ง ์์๋ฐ์ ์ ์์ง๋ง, ์ํ์ ๊ตฌ์กฐ์ ์ธํฐํ์ด์ค๋ ํ๋์ ํด๋์ค๊ฐ ์ฌ๋ฌ ์ธํฐํ์ด.. ์๋ฐ[Java] ์ ๊ทผ ์ ์ด์[Access modifier] ์๋ฐ์ ์ ๊ทผ ์ ์ด์ default / public(package) / private / protected / static / final โถ default(package) ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ์ ๊ทผ ์ ์ด์๋ก ์๋ต์ด ๊ฐ๋ฅํ๋ค. => ์ ๊ทผ ์ ์ด์๋ฅผ ์๋ตํ๋ฉด default๋ก ์ค์ ๋๋ค. default๋ ๊ฐ์ ํจํค์ง ๋ด์ ์๋ class๋ผ๋ฉด ์ ๊ทผ์ด ๊ฐ๋ฅํ๋ค. 1๋ฒ ํจํค์ง์ 1๋ฒ ํด๋์ค๋ฅผ ์ ์ํ์๋ค. 2๋ฒ ํจํค์ง๋ฅผ ๋ง๋ค๊ณ 2๋ฒ ํด๋์ค๋ฅผ ๋ง๋ค๊ณ 2๋ฒ ํด๋์ค์ 1๋ฒ ํด๋์ค๋ฅผ ๋ถ๋ฌ์ค๊ธฐ(import)๋ฅผ ํ์ ๋, ์ค๋ฅ ๋ฐ์ => ๊ฐ์ ํจํค์ง ์์์๋ง ๋ถ๋ฌ์ค๊ธฐ ๊ฐ๋ฅ โถ public ์ด๋ฆ์ฒ๋ผ ์ด๋์๋ ๋ถ๋ฌ์ฌ ์ ์๋ค. ๋ค๋ฅธ ํจํค์ง ์์ ๋ค๋ฅธ ํด๋์ค์์๋ ๋ถ๋ฌ์ ์ฌ์ฉ ๊ฐ๋ฅํ๋ค. testPackage1 ํจํค์ง์ ์๋ TestClass2 .. ์ด์ 1 2 ๋ค์