๐ฃ Language/JAVA์ ํด๋นํ๋ ๊ธ๋ค 22 Articles matched ๋ชฉ๋ก์ด ์์ต๋๋ค. Java ํ๋คํ ๋ถ์ (Out of memoryํ์์ด ์๋ ์๋๋ถ์) ์ด..? ๋ฉ๋ชจ๋ฆฌ ๋ถ์กฑ..? ์๋ฒ ์ด์ ์ค์ ๊ฐํ์ ์ผ๋ก ์ ์ ์ฅ์ ๊ฐ ๋ฐ์ํ๋ค. ์ฐ๋ฆฌ ์๋ฒ์๋ scouter๋ก ๋ชจ๋ํฐ๋ง ์์คํ ์ ๊ตฌ์ถํด๋์์๊ณ ์ด์ ์ฆ์์ด ์์ผ๋ฉด ์ฌ๋ด slack์ ํน์ ์ฑ๋๋ก ์๋ฆผ์ด ์ค๊ฒ ํด๋์๋ค. ๋ฉฐ์น ์ ๋ถํฐ ์๋ฒ์ ๋ฉ๋ชจ๋ฆฌ๊ฐ ๋ถ์กฑํ๋ค๋ ์๋ฆผ์ด ์ค๊ธฐ ์์ํ๋ค. ํ์ง๋ง ๋ค๋ฅธ ์ ๋ฌด๋ค์ด ๋ฐ๋ ค ์์ด์ ์ ๊ฒฝ์ฐ์ง ๋ชปํ๋ค. ์ํฉ ๋ฐ์!! ๋น์!! ๊ทธ๋ฐ๋ฐ ์ด์ ๋ถํฐ ํน์ ์ฌ์ดํธ์ ์ ์์ด ๊ฐํ์ ์ผ๋ก ์๋๋ค๋ ๋ฌธ์๊ฐ ๋ค์ด์๋ค. ํ์ธ์ ์ํ ์ ์๋ ์ํฉ์ด ๋์๋ค. ์ฐ๋ฆฌ๋ ์ํ์น ์น์๋ฒ๋ฅผ ์์ ๋๊ณ ๋ก๋๋ฐธ๋ฐ์์ฒ๋ผ ์ฌ์ฉํ๊ณ ์์๋ค. ๊ทธ ๋ค์๋ Tomcat WAS๋ฅผ ์ด์คํํด๋์๊ณ ์ด ์ค์ ํ ์๋ฒ์์๋ง ๋ฉ๋ชจ๋ฆฌ๊ฐ ๋ถ์กฑํด์ ธ ์์๋ค. ๋ฌผ๋ก ๋๋จธ์ง ํ ์๋ฒ๋ ๋ฉ๋ชจ๋ฆฌ๊ฐ ๋ง์ด ์ฌ๋ผ์์๊ธฐ๋ ๋ง์ฐฌ๊ฐ์ง์๋ค. ์ฐ์ tomcat์ .. [Java] jmap ์ฌ์ฉํ์ฌ JVM ์ํ ํ์ธ Java ์ดํ๋ฆฌ์ผ์ด์ ์ ๋ฐฐํฌํ๊ณ ์๋ฒ ์ ์ง๋ฅผ ํ๋ ๊ฒฝ์ฐ์ JVM์ ์ํ๋ฅผ ํ์ธํด์ผํ๋ ์ํฉ์ด ์ข ์ข ๋ฐ์ํ๋ค. ์ด ๋ ๋ค๋ฅธ ํ๋ก๊ทธ๋จ์ด๋ ํจํค์ง ์ค์น ์์ด ๋ฐ๋ก ์ฌ์ฉํ ์ ์๋ ๊ฐ๋จํ ๋ฐฉ๋ฒ์ด ๋ฐ๋ก jmap์ ํ์ฉํ์ฌ ํ์ธํ๋ ๋ฐฉ๋ฒ์ด๋ค. ๋ฐฉ๋ฒ์ ์๋์ ๊ฐ์ด ๊ฐ๋จํ๋ค. (Java ๋ฒ์ ๋ณ๋ก ์กฐ๊ธ ๋ค๋ฅผ ์ ์๋ค) java 11 ์ด์ ๋ฒ์ $ jmap --heap java 11 ํฌํจ ์ดํ ๋ฒ์ $ jhsdb jmap --heap --pid * jhsdb ๊ด๋ จ ๋ฌธ์๋ ์ค๋ผํด ๋ฌธ์ ์ฐธ์กฐ: https://docs.oracle.com/javase/9/tools/jhsdb.htm#JSWOR-GUID-0345CAEB-71CE-4D71-97FE-AA53A4AB028E ์คํ ๊ฒฐ๊ณผ (jdk 11 ๋ฒ์ ๊ธฐ์ค) $ jhsdb jmap .. [JAVA] split ๋น๊ฐ ์ฒ๋ฆฌ ๋ฌธ์ ์ํฉ Java ์๋ธ๋ฆฟ ๋ก์ง์์ splitํ๋ ๋ก์ง์ด ์์๋๋ฐ ์๋์ ๊ฐ์ ์ํฉ์์ ์๋์น ์์ ๋์์ด ๋ฐ๊ฒฌ๋์์ต๋๋ค. String data = "1,2,3,,,"; String[] split_data = data.split(","); System.out.println("split length : " + split_data.length); for (String str : split_data) { System.out.println(str); } ์์ ๋ก์ง์ ๋๋ ค๋ณด์์ ๋ ์์๋๋ ์ถ๋ ฅ๊ฐ์ ์๋์ ๊ฐ์์ต๋๋ค. split length : 6 1 2 3 ์๋ ์์ํ๋ ์ถ๋ ฅ ๋ด์ฉ ํ์ง๋ง ์์๊ณผ๋ ๋ฌ๋ฆฌ ์๋์ ๊ฐ์ด ์ถ๋ ฅ๋์์ต๋๋ค. split length : 3 1 2 3 Java์์ split๋ฉ์๋์ ๊ธฐ๋ณธ๋์์ .. [JAVA] Arrays.asList java.lang.UnsupportedOperationException ํ๋ก์ ํธ๋ฅผ ์งํํ๋ค๊ฐ ์๋ณธ ๋ฐฐ์ด๋ฅผ ๋ณต์ฌํ ํ์ ๋ณต์ฌ๋ ๋ฐฐ์ด์์ ์ถ๊ฐํด์ผํ๋ ์ํฉ์ด ์๊ฒผ์ต๋๋ค. ๋จ์ํ ์์ ์ด์ง๋ง ์ฒ์์ ์ด๋ป๊ฒ ์๋ผ์ ์ด๋ป๊ฒ ์ฌ์ฉํด์ผํ ์ง ๋ญ๊ฐ ์ฌ์ด ๋ฐฉ๋ฒ์ ์์์ง ์๊ฐํ๋ฉฐ ์ฐพ์๋ณด๋ค๊ฐ Arrays.asList๋ผ๋ ๋ฉ์๋๋ฅผ ๋ฐ๊ฒฌํ๊ณ ์ด๋ฅผ ํตํด ๋ฐฐ์ด์ ๋ฆฌ์คํธ๋ก ๋ณ๊ฒฝ(casting)ํ์ฌ add ๋ฉ์๋๋ฅผ ํตํด์ ๋ฆฌ์คํธ์ ์ถ๊ฐํด๋ณด๋ ค๊ณ ํ์ต๋๋ค. ํ์ง๋ง ์ ๋ชฉ๊ณผ ๊ฐ์ ์๋ฌ๊ฐ ๋ฐ์ํ๊ณ ๋ ๋ค์ ๊ตฌ๊ธ๋ง์ ํ๋ค๋ณด๋ ๋ฐ๊ฒฌํ ๋ด์ฉ์ ๋๋ค. Arrays.asList๋ก ์์ฑ๋ List๊ฐ์ฒด๋ immutableํ ๊ฐ์ฒด์ด๋ฏ๋ก add ๋๋ remove๋ฅผ ์ง์ํ์ง ์๋๋ค. immutableํ๋ค๋๊ฒ ์ฒ์์๋ ๋ฌด์จ ์๋ฏธ์ธ์ง ์๋ฟ์ง ์์์ ์์ด ๋จ์ด๋ฅผ ์ฐพ์๋ณด์์ต๋๋ค. immutableํ๋ค๋๊ฒ์ ๋ณํ ์ ์๋ค๋ ์๋ฏธ์ด๊ณ Arrays.. [JAVA] java.security.cert.CertificateException: No name matching some_name found Problem public class UrlConnectionTest { public static void main(String[] args) throws Exception { URL url = new URL("http://example.com"); URLConnection conn = url.openConnection(); InputStream in = conn.getInputStream(); // occur error } } Caused by: javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateException: No name matching some_name found at com.sun.net.ssl.internal.ssl.Al.. [JAVA] ์คํธ๋ฆผ(Stream) 1. ์คํธ๋ฆผ(Stream)? ๋ง์ ์์ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃฐ ๋ for๋ฌธ์ด๋ Iterator๋ฅผ ์ฌ์ฉํ์ฌ ์ฝ๋๋ฅผ ์์ฑํด์๋ค. ๋ํ ๋ฐ์ดํฐ์ ํํ๋ง๋ค ๋ค๋ฅธ ๋ฐฉ์์ผ๋ก ๋ค๋ค์ผ ํ๋ค. ์๋ฅผ๋ค์ด, ๋ฐ์ดํฐ์ ์ ๋ ฌ์ ์๋ก ๋ค์๋ฉด ์ปฌ๋ ์ ํด๋์ค ์ค List๋ฅผ ์ ๋ ฌํ ๋์๋ Collections.sort()๋ฅผ, ๋ฐฐ์ด์ ์ ๋ ฌํ ๋๋ Arrays.sort()๋ฅผ ์ฌ์ฉํด์ผํ๋ค. ๊ฐ์ ๊ธฐ๋ฅ์ด๊ณ ๊ฐ์ ๋ฉ์๋์์๋ ๋ค๋ฅด๊ฒ ํธ์ถ์ ํด์ผ๋ง ํ๋ค. ์ด๋ฌํ ๋ฌธ์ ์ ๋ค์ ํด๊ฒฐํ๊ธฐ ์ํด ๋ง๋ ๊ฒ์ด ๋ฐ๋ก ์๋ฐ 8๋ถํฐ ๋ฑ์ฅํ ์คํธ๋ฆผ(Stream)์ด๋ค. ์ด๋ค ๋ฐ์ดํฐ์ด๋ ๊ฐ์ ๋ฐฉ์์ผ๋ก ๋ค๋ฃฐ ์ ์๊ฒ ๋ง๋ ๊ฒ์ด๋ค. ์คํธ๋ฆผ์ ์ด์ฉํ๋ฉด, ๋ฐฐ์ด์ด๋ ์ปฌ๋ ์ ๋ฟ๋ง ์๋๋ผ ํ์ผ์ ์ ์ฅ๋ ๋ฐ์ดํฐ๋ ๋ชจ๋ ๊ฐ์ ๋ฐฉ์์ผ๋ก ๋ค๋ฃฐ ์ ์๊ธฐ ๋๋ฌธ์ ์ฝ๋์ ์ฌ์ฌ์ฉ์ฑ์ด ๋์์ง๋ค. ์์ ๋ฅผ ๋ณด๋ฉด.. [JAVA] ์ปฌ๋ ์ ํด๋์ค (Map) ์ปฌ๋ ์ ํด๋์ค HashMap HashMap๊ณผ Hashtable์ ๊ด๊ณ๋ ArrayList์ Vector์ ๊ด๊ณ์ ๊ฐ์์ Hashtable๋ณด๋ค๋ ์๋ก์ด ๋ฒ์ ์ธ HashMap์ ์ฌ์ฉํ๋ ๊ฒ์ ๊ถ์ฅํ๋ค. ๋๋ค Map์ธํฐํ์ด์ค๋ฅผ ์์๋ฐ์ ๊ตฌํ๋์ด ๋ฐ์ดํฐ๋ฅผ ํค์ ๊ฐ์ผ๋ก ๊ด๋ฆฌํ๋ ์๋ฃ๊ตฌ์กฐ์ด๋ค. ํฐ ํน์ง์ผ๋ก๋ ํค(Key)๊ฐ ๋ฐ์ดํฐ๋ฅผ ์ถ์ถํ ๋ ๊ตฌ๋ถ์๋ก ํ์ฉํ๋ ๋ฐฉ์์ ์ทจํ๋๋ฐ ์ด๋ ๋ฆฌ์คํธ ์ธํฐํ์ด์ค์ ๊ฐ์ ์๋ฃ๊ตฌ์กฐ๋ณด๋ค ํ์์ ์์ด์ ๋ ๋์ ํจ์จ์ ๊ธฐ๋ํ ์ ์๋ค. ์ฑ ์๋ HashMap์ ๋ํด์๋ง ์ค๋ช ์ด ๋์ด ์๋๋ฐ ๋์ ์ฐจ์ด์ ์ ๊ฐ๋จํ ์ดํด๋ณด๊ณ ๋์ด๊ฐ์, HashMap๊ณผ Hashtable์ ์ฐจ์ด ๋์ ์ฐจ์ด์ ์ผ๋ก ๋๊ธฐํ๋ฅผ ๋ค ์ ์๋ค. HashMap์ ๊ฒฝ์ฐ ๋๊ธฐํ๋ฅผ ์ง์ํ์ง ์๋๋ค. ๋ฐ๋ฉด ๋ค์ค ์ฐ๋ ๋ ํ๊ฒฝ์์ Has.. [JAVA] ๋๋ค์ (Lambda Expression) ์๋ฐ๊ฐ 1996๋ ์ ์ฒ์ ๋ฑ์ฅํ ์ดํ๋ก ๋ ๋ฒ์ ํฐ ๋ณํ๊ฐ ์์๋๋ฐ, ํ๋ฒ์ JDK 1.5๋ถํฐ ์ถ๊ฐ๋ ์ง๋ค๋ฆญ์ค(generics)์ ๋ฑ์ฅ์ด๊ณ , ๋ ํ ๋ฒ์ JDK 1.8๋ถํฐ ์ถ๊ฐ๋ ๋๋ค์(lambda expression)์ ๋ฑ์ฅ์ด๋ค. ์ด ๋ ๊ฐ์ง ์๋ก์ด ๋ณํ์ ์ํด ์๋ฐ๋ ๋ ์ด์ ์์ ์ ์๋ฐ๊ฐ ์๋๊ฒ ๋์๋ค. ํนํ JDK 1.8๋ถํฐ ๋ฑ์ฅํ ๋๋ค์์ผ๋ก ์ธํด ์๋ฐ๋ ๊ฐ์ฒด์งํฅ์ธ์ด์ธ ๋์์ ํจ์ํ ์ธ์ด๊ฐ ๋์๋ค. ๋๋ค์์ด๋? ๊ฐ๋จํ ๋งํด์ ๋ฉ์๋๋ฅผ ํ๋์ ์(expression)์ผ๋ก ํํํ ๊ฒ์ด๋ค. ํจ์๋ฅผ ๊ฐ๋ตํ๋ฉด์๋ ๋ช ํํ ์์ผ๋ก ํํํ ์ ์๊ฒ ํด์ค๋ค. ์ด์ ์ ๋ด๋ถ ํด๋์ค๋ฅผ ์ ๋ฆฌํ๋ฉด์ ์ต๋ช ํจ์(anonymous function) ์ธ๊ธํ ๋ ๊ฐ์ด ๊ฐ๋ณ๊ฒ ์ดํด๋ดค๋ฏ์ด ๋๋ค์๋ ์ต๋ช ํจ์์ด๋ค. ๋ฉ์๋๋ฅผ ๋๋ค์์ผ๋ก .. 1 2 3