๋ฐ์ํ ๊ฐ๋ฐ93 [JD-GUI] java 9 ์ด์์์ ์คํ ์ค๋ฅ : module java.base does not "opens jdk.internal.loader" to unnamed module ์์ค๋ฅผ ๋์ปดํ์ผํ ๋ JD-GUI๋ฅผ ์ฌ์ฉํ๋๋ฐ ๊ฐ์๊ธฐ ์๋์ ๊ฐ์ ์๋ฌ๊ฐ ๋ฐ์ํ๋ฉด์ ์คํ์ด ๋์ง ์์๋ค. WARNING: All illegal access operations will be denied in a future release Exception in thread "main" java.lang.reflect.InaccessibleObjectException: Unable to make jdk.internal.loader.ClassLoaders$AppClassLoader(jdk.internal.loader.ClassLoaders$PlatformClassLoader,jdk.internal.loader.URLClassPath) accessible: module java.base does not "op.. 2021. 12. 3. [JPA] ๋ฐ์ดํฐ๋ฅผ insert ํ๊ธฐ ์ ์ selectํ๋ ์ด์ JPA๋ฅผ ์ด์ฉํ์ฌ DB์ ๋ฐ์ดํฐ๋ฅผ insertํ๊ฒ ๋๋ฉด id๋ฅผ ์กฐ๊ฑด์ผ๋ก select๋ฅผ ๋จผ์ ํ๊ณ , insert๋ฅผ ํ๋ ๊ฒ์ ํ์ธํ ์ ์๋ค. (JPA๋ ์กฐํ ํ ๋ฐ์ดํฐ๊ฐ ์กด์ฌํ๋ค๋ฉด update๋ฅผ ์คํํ๊ณ ์กด์ฌํ์ง ์์ผ๋ฉด insert๋ฅผ ์คํํ๋ค.) ๋๋ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๋ ค๋ค ๋ณด๋ savaAll์ ์ฌ์ฉํ๊ฒ ๋์๋๋ฐ, xxxRepository.saveAll(entity); 1000๊ฑด์ ๋ฐ์ดํฐ๋ฅผ ํ๋ฒ์ ๋ฑ๋กํ๋ ค๋ฉด select๋ฅผ 1000๋ฒ ์คํํ๋..... JPA๊ฐ ํธ๋ฆฌํ๊ธด ํ๋ฐ.. ์ด๋ฐ ๋ถ๋ถ์.. ์ฐธ ๊ทธ๋ ๋ค ๊ทธ๋์ save() ๋ฉ์๋๊ฐ ์ด๋ป๊ฒ ์ฒ๋ฆฌ๋๊ณ ์๋์ง ์ดํด๋ดค๋ค. @Transactional public S save(S entity) { if (entityInformation.isNew(entity)) { e.. 2021. 12. 2. [JSP/HTML] ERR_CACHE_MISS ์๋ฌ ๋ฐ์ ์นํ์ด์ง(jsp, html)์์ ๋ค๋ก๊ฐ๊ธฐ๋ฅผ ํ์ ๋ 'ERR_CACHE_MISS' ์๋ฌ๊ฐ ๋ฐ์ํ ์ ์ด ์๋ค ์ด๋ด ๊ฒฝ์ฐ ์๋์ ๊ฐ์ด ํด๊ฒฐํ๋ฉด ๋๋ค! jsp๋ html๊ณผ ๊ฐ์ ์นํ์ด์ง ์๋จ์ header ์ถ๊ฐ response.setHeader("Cache-Control","no-cache); response.setHeader("Pragma","no-cache"); spring ์ค์ ์์ ๊ณตํต์ผ๋ก ์ฒ๋ฆฌ ๋ณธ์ธ์ csrf ์ฒ๋ฆฌ ๋๋ฌธ์ WebSecurityConfigurerAdapter๋ฅผ ์์๋ฐ์ classs๊ฐ ์์๊ณ , configure ๋ฉ์๋๋ฅผ ์ค๋ฒ๋ผ์ด๋ํ์ฌ csrf ๋ฐฉ์ด์ฝ๋๋ฅผ ์ธํ ํ์๋ค. ๊ทธ๋์ ์ด ๋ถ๋ถ์ ์บ์ ๋ฐฉ์ง ์ฝ๋๋ฅผ ์ถ๊ฐํ์ฌ ์์ฑํจ! @Override protected void configure(HttpS.. 2021. 12. 1. [MyBatis] ๋ณ์ ์ฌ์ฉ์ #{value}, ${value}์ ์ฐจ์ด ์ง๋๋ฒ์ ํ์ฌ์์ ์๊ธฐ๋ฅผ ๋๋๋ค๋ณด๋ ๋ชจ๋ฅด๋ ์ฌ๋๋ ์๊ธธ๋ ์ ๋ฆฌํด๋ณธ๋ค! 1. #{} ์ฌ์ฉ SELECT * FROM USER WHERE USER_ID = #{user_id} user_id์ ๊ฐ์ด test๋ผ๋ฉด ์๋์ ๊ฐ์ ์ฟผ๋ฆฌ๊ฐ ์คํ๋๋ค. SELECT * FROM USER WHERE USER_ID = 'test'; 2. ${} ์ฌ์ฉ SELECT * FROM USER WHERE USER_ID = ${user_id} user_id์ ๊ฐ์ด test๋ผ๋ฉด ์๋์ ๊ฐ์ ์ฟผ๋ฆฌ๊ฐ ์คํ๋๋ค. SELECT * FROM USER WHERE USER_ID = test ${}๋ฅผ ์ฌ์ฉํ ๊ฒฝ์ฐ ์์๋ฐ์ดํ๊ฐ ์๋ถ๊ธฐ๋๋ฌธ์ ์์ฝ์ด๋ ์นผ๋ผ๋ช ๋ฑ์ ์ฌ์ฉํ ๋ ์ ์ฉํ๋ฉด ๋๋ค ์๋ฅผ ๋ค์ด ์๋์ ๊ฐ์ด ์ฟผ๋ฆฌ๋ฅผ ์์ฑํ์ ๊ฒฝ์ฐ SUM( CASE WHEN .. 2021. 11. 30. [Ajax] ํ์ผ file ๋ค์ด๋ก๋ ๋ฐ๊ธฐ ๊ฒฐ๋ก ๋ถํฐ ๋งํ์๋ฉด xhr.responseType = "blob" ๋ก ์ค์ ํด์ผ ํ๋ค! ๊ธฐ์กด์ ์ฌ์ฉํ๋ ์ ์ด์ฟผ๋ฆฌ ๋ฒ์ ์ด 1.11.1์ด์๋๋ฐ ์ด ๋ฒ์ ์ blob์ด ์ ์ฉ์๋๋๋ผ.. ๋ฒ์ ๋ฌธ์ ์ธ์ค ๋ชจ๋ฅด๊ณ ํ์ฐธ์ ์จ๋ฆ ํ๋๋ฐ 3.6.0์ผ๋ก ์ฌ๋ฆฌ๋๊น ํด๊ฒฐ๋๋ค. (์ด๋ค ๋ฒ์ ๋ถํฐ ๋๋ ๊ฑด์ง๋ ๋ชจ๋ฅด๊ฒ ์) ์๋ ์์ ์ฐธ์กฐ!! let options = { url: "[[@{/}]]download" , beforeSubmit : loadingAjaxImage , contentType: "application/x-www-form-urlencoded;charset=UTF-8" , xhr: function () { let xhr = new XMLHttpRequest(); xhr.onreadystatechange = function .. 2021. 11. 30. [Apache] web-was ์ฐ๋, socket_timeout ์ค์ ์ด์ ํ์ web-was๊ฐ ์ฐ๋๋ ํ๋ก์ ํธ์์ ํ ์คํธ๋ฅผ ํ๋๋ฐ ๋ฐ์ดํฐ ์ค๋ณต ์๋ฌ๊ฐ ๋ฐ์ํ์๋ค. ๋ค๋ฅธ ์๋ฒ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๋๋ฐ ๊ทธ ์๋ฒ์์ ์๋ต์ด 10์ด์์ ์ค์ง ์์ ์ฐ๋ฆฌ ์๋ฒ์์๋ ์ฌ์์ฒญ์ ํ๊ณ , ๊ทธ ์๋ฒ์์๋ ์ด๋ฏธ ๋ฐ์ดํฐ ์ฒ๋ฆฌ๋ฅผ ํ๊ธฐ ๋๋ฌธ์ ์ค๋ณต ์์ฒญ์ด ๋ ๊ฒ์ด๋ค. (์ฐ๋ฆฌ ์๋ฒ์์๋ ํด๋น ์์ฒญ๊ฑด์ด ๋ฏธ์๋ฃ ์ํ์ด๊ณ ..) apache์ชฝ ์ค์ ํ์ผ ์ค workers.properties๊ฐ ์๊ณ , socket_timeout์ด๋ผ๋ ํญ๋ชฉ์ด ์๋๋ฐ ์ด๊ฒ 10์ผ๋ก ์ค์ ๋์ด ์์ ๊ฒฝ์ฐ ์๋ต์ด ํด๋น ์๊ฐ ์์ ์ค์ง ์์ผ๋ฉด ์ฌ์์ฒญํ๊ฒ ๋๋ค... ์๋ฒ์ ์ํฉ์ ๋ง๊ฒ ์กฐ์ ํด์ ์ฐ์.. worker.worker1.socket_timeout=10 2021. 11. 30. [Tomcat] JNDI ์ ๋ณด ์ํธํ(DB์ ๋ณด : url, username, passowrd) / KDF ์๊ณ ๋ฆฌ์ฆ ์ด์ฉ 1. url, username, password๋ฅผ encrypt ํ๋ค. KDFEncrypted.java import java.security.MessageDigest; import javax.crypto.Cipher; import javax.crypto.spec.IvParameterSpec; import javax.crypto.spec.SecretKeySpec; import org.apache.commons.codec.binary.Hex; public class KDFEncrypted { public static void main(String[] args) { String key = "test"; String url = "jdbc:tibero:thin:@10.10.10.XX:XXXX:tibero"; St.. 2021. 11. 30. [Spring] Scheduler(์คํ๋ง ์ค์ผ์ค๋ฌ) ์ค์ ํ๊ธฐ ์คํ๋ง์์ ํน์ ์๊ฐ ํน์ ๋ช ๋ถ, ๋ช ์๊ฐ ๋ง๋ค ๊ธฐ๋ฅ์ ๋์ ์ํค๋ ค๋ฉด Spring์์ ์ ๊ณตํ๋ scheduler๋ฅผ ์ด์ฉํ๋ฉด ๋๋ค. (Spring 3.1๋ถํฐ๋ Quartz์์ด ๊ฐ๋จํ๊ฒ ์ค์ผ์ค๋ฌ ๊ตฌํ์ด ๊ฐ๋ฅํ๋ค.) โ ๋จผ์ applicationContext์ ์ค์ผ์ค๋ฌ๋ฅผ ๋ฑ๋กํ๋ค. (Component Scan์ด ์ ์ธ๋์ด ์๋ ํ์ผ) applicationContext.xml (์์ฝ) => testJob์ doJob ๋ฉ์๋๋ฅผ 30๋ถ๋ง๋ค ์คํํ๋ ์ค์ผ์ค๋ฌ๋ฅผ ๋ฑ๋กํ๋ค. testJob์ ์๋์ ๊ฐ๋ค. TestJob.java @Service("testJob") public class TestJob { public synchronized void doJob() { System.out.println("###########.. 2021. 11. 30. ์ด์ 1 ยทยทยท 8 9 10 11 12 ๋ค์ 728x90 ๋ฐ์ํ