์ ์ฒด ๊ธ49 [Book] ์ํํธ์จ์ด ์ฅ์ธ 3๋ ์ ์ ๋น๋ฆฐ ์ฑ ์ด์๋๋ฐ ์ด์ ์์ผ ์ฝ์๋ค. ์ข์ ๊ฐ๋ฐ์? ๊ทธ ์ด์์ด ๋๊ธฐ ์ํด์ ์ด๋ป๊ฒ ํด์ผํ๋๊ฐ ์ค๋ช ์ ํด์ฃผ๋ ์ฑ ์ด์๋๋ฐ 2011๋ ์ฑ ์์๋ ๋ถ๊ตฌํ๊ณ ์์ฆ์ ๋, ๋ด ํ์ฌ, ๋ด ์นญ๊ตฌ๋ค, ํ์ฅ๋์ ๋์ ๋๋ฉฐ ์๋ ์ฑ ์ด๋ผ๋ ์ด์ง๊ฐ ์์ด ์ ์ฝํ๋ค. ์ข์๊ฑด์ง ์ ๋ชจ๋ฅด๊ฒ ๋ค. ๋ฐ์ ์ ํ์ฐธ ๋ชป ๋ฏธ์น๋ค๋ ์๋ฏธ์ธ์ง ์๋ ๊ทธ๋๋ ์ง๊ธ์ด๋ ๊ณ ๋ฏผํ๋ ํฌ์ธํธ๋ ๋ค ๋๊ฐ๋ค๋ ๊ฑด์ง ์๊ฐ.. ๊ทธ์น๋ง ํ์คํ๊ฑด ์์งํ 3๋ ์ ์ ์ฝ์๋ค๋ฉด ์ด์ ๋๊น์ง๋ ๊ณต๊ฐ ๋ชปํ์ ๊ฑฐ ๊ฐ๋ค. ์๋ฏธ๋ค๋ค ใ ใ ์ข๊ณ ๊ณต๊ฐ๋๋ ๋ด์ฉ์ด ๋ง์ ๋ฐ๋ก ์ ์ด ๋จ์ผ๋ ๊ณต๊ฐ์ ์ผ๋ก ์ฐ๊ธด ์ข ๊ทธ๋์ ์๋ ๋ฐ๋ก ๋๊ณ ๋๊ณ ์ฝ์ด์ผ๊ฒ ๋ค. ๊ฐ์ธ์ ์ผ๋ก ์ ์์ผ์ ์ฅ์ , ๊ทธ์น๋ง ์ ์์ผ๋ง์ผ๋ก ํด๊ฒฐ๋์ง ์๋๋ค, ์ข์ ๊ฐ๋ฐ์๊ฐ ๋๋ ค๋ฉด, ์ผํ๋๋ฐ ์์ด์ ์ค์ํ๊ฒ ๋์ด์ผํ ๊ฒ๋ค, ๊ธฐ์ ๋ถ์ฑ ํด๊ฒฐ์ ์.. 2022. 4. 17. OOM์ ์์ธ๊ณผ ์์ฃผ ๊ฐ๋จํ๊ฒ OOM ๋ฐ์ ์ํค๊ธฐ outofmemory๊ฐ ๋๋ ์ด์ ์ค์ ๋ ๋ฉ๋ชจ๋ฆฌ ๋๋น ์์ฒญ๋๋ ๋ฉ๋ชจ๋ฆฌ๊ฐ ๋ง๊ธฐ ๋๋ฌธ์ ๋ํ๋๋ JVM์์ ๋ฐ์ํ๋ ์๋ฌ ์ค์ ์ ์ค๋ฅ๋ ์ฌ์ฉ๋ ์ด๊ณผ๋ก ์ธํด jdk 5 ๊ฐ์ ๊ฒฝ์ฐ๋ jdk hotspot ๋ฒ๊ทธ๋ก ์ธํด oom์ด ๋ฌ๋ ๊ฒฝ์ฐ๋ ์์์ oom ์์ Application์ oom(์๊ฐ์ ) ๊ณผ๋ํ ๋ฐ์ดํฐ ์กฐํ(100๋ง๊ฑด 200๋ง๊ฑด์ฉ ์กฐํํด์ ๋ฉ๋ชจ๋ฆฌ ๋ค๊ณ ์๋ ๊ฒฝ์ฐ, ์ ๋ก๋ ํ์ผ์ ํ์ฒ๋ฆฌ ํ๊ธฐ๋ก ํด์ ๋ฉ๋ชจ๋ฆฌ์ ๋ค๊ณ ์๋ ๊ฒฝ์ฐ) ์๋ชป๋ ๋ฐ์ดํฐ ์กฐ์(string) ์ฅ์๊ฐ์ ๊ฑธ์ณ์ ์์ํ ๋ฉ๋ชจ๋ฆฌ๊ฐ ์ฅ์๋๋ ๊ฒฝ์ฐ(memory leak) Cache(์ด๋ค ๋ฐ์ดํฐ๋ฅผ ์ฌ๋ฌ ์ฐ๋ ๋๊ฐ ๊ณต์ ํด์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ) leak Pool(๋ฐฐํ์ ์ผ๋ก ์ฌ์ฉํ ๋) leak (oom ๊ฐ๊ธฐ ์ด์ ์ ํ ๋ถ์กฑ์ผ๋ก 2์ฐจ ์ฅ์ ๊ฐ ๋ฐ์ํ๋ ๊ฒฝ์ฐ๋ ๋ง์.. 2022. 4. 16. [Spring] boot์์ Spring ๋ฒ์ ํ์ธ Spring Boot ์ฌ์ฉ์ค์ธ๋ฐ Spring ๋ฒ์ ์๊ณ ์ถ์ ๊ฒฝ์ฐ, boot ๋ฒ์ ์ด์ผ pomํ์ผ์ด๋ ๋ค๋ฅธ ์ค์ ํ์ผ์ ์๋๋ฐ ์คํ๋ง ๋ฒ์ ์ ์ฐพ์ง ๋ชปํ๋ค. SpringBootVersion, SpringVersion ์ฌ์ฉ import org.springframework.boot.SpringBootVersion; import org.springframework.core.SpringVersion; ... String springVersion = SpringVersion.getVersion(); String bootVersion = SpringBootVersion.getVersion(); ... 2022. 3. 30. [GIT] Reset ๋ช ๋ น์ด git reset –hard b1f78bc ๋ค ๋ ๋ ค๋ฒ๋ฆผ git reset –soft b1f78bc ์์ ์ด๋ ฅ ๋ค ๋ณด์กด ๋ฐ stage์ ๊ณ ๋๋ก ์์ git reset –mixed b1f78bc (default) ์์ ์ด๋ ฅ ๋ณด์กด์ด๋ ์ปค๋ฐ์ ์ํด ๋ค์ ์ง์ ํด์ผํจ git reset HEAD~1 : ํ์ฌ๋ถํฐ 1๊ฐ ์ 2022. 3. 29. [JAVA] String ์ค๋ณต์ ๊ฑฐ Stream String str = "asdgaassdf"; - ๋ฌธ์์ด์ Character[]์ผ๋ก ๋ณํํด์ค์ผํจ char[] -> Chcaracter[]๋ณด๋ค string -> Character[]์ด ๋ ๊ฐ๋จํ๊ฑฐ ๊ฐ์ ์ด์ ๋ ๋ญ๊น Character[] charObjectArray = str.chars().mapToObj(c -> (char)c).toArray(Character[]::new); - ์ค๋ณต ์ ๊ฑฐ Stream characterStream = Arrays.stream(charObjectArray).distinct(); - String์ผ๋ก ๋ฆฌํด String result2 = characterStream.map(String::valueOf).collect(Collectors.joining()); - ํ๋ฐฉ์ ํฉ์น๋ฉด? .. 2022. 3. 22. [JAVA] Case Format ๋ณ๊ฒฝ (UPPER_CAMEL, LOWER_HYPEN...) google guava ์ฌ์ฉ google CaseFormat import import com.google.common.base.CaseFormat; ์ํ๋ ํฌ๋งท์ผ๋ก ๋ณ๊ฒฝ String upperCamelVndr = CaseFormat.LOWER_HYPHEN.to(CaseFormat.UPPER_CAMEL, "text_test"); //TextTest ํฌ๋งท ์ข ๋ฅ //CaseFormat enum ๊ฐ๋ณด๋ฉด ์์ธํ๊ฒ ํ์ธ ๊ฐ๋ฅ LOWER_HYPHEN(CharMatcher.is('-'), "-") { String normalizeWord(String word) { return Ascii.toLowerCase(word); } String convert(CaseFormat format, String s) { if (for.. 2022. 3. 22. [JAVA] ๋๋ฌธ์ ์์ ๊ณต๋ฐฑ ์ถ๊ฐ String originText = "CocoHiByeHaha331"; String CapitalSpaceText = text.replaceAll("\\d+", "").replaceAll("(.)([A-Z])", "$1 $2"); -> Coco Hi Bye Haha ์ซ์ ์ ๊ฑฐ ํ ๋๋ฌธ์ ์์ ๋์ด์ฐ๊ธฐ ์ถ๊ฐ 2022. 3. 22. [GIT] Clone์ผ๋ก ์ ๊ท ์์ฑ ํ๋ก์ ํธ ์ด๊ธฐํ 1. Clone ๋ฌ ํ์ ์๊ฒฉ ๋๊ธฐ git remote -v git remote remove origin 2. ์๊ฒฉ ๋์ด์ฃผ๊ณ ๋ ๋ค rm -rf .git git init git add . git commit -m "initial commit" 3. BitBucket๊ฐ์ ์๋ก์ด Repository ์์ฑ 4. Git ์ ์ฅ์ ์ฐ๊ฒฐ ํ ๊ฐ์ push git remote add origin {git remote url} git push -u --force origin master 2022. 3. 20. [AWS] Aurora RDS MySQL 5.7 to 8.0 - RDS ์ค๋ ์ท ์์ฑ ๋ฐ ๋ณต์ ๋ฐฉ๋ฒ์ผ๋ก ์งํ - ์ฌ์ ์ค๋น MySQL Connector Version Up 8.0.x ์ดํ๋ก ์ฌ๋ ค์ค๋ ๋๋, ์์ง ์ฌ์ด๋ ์ดํ์ ํ์ธ ๋ชปํด ์ฐ์ ์ 5.1.49๊น์ง๋ง ์ฌ๋ ค ๋์๋ค. dependency mysql mysql-connector-java 5.1.49 useSSL=false ์ต์ ์ถ๊ฐ 31์๋ ์ด์๊ฐ ์์์ผ๋, 5.1.49๋ก ์ปค๋ฅํฐ ๋ฒ์ ์ ์ฌ๋ฆฌ๊ณ ๋ ์ฝ๋ ๋ด DB Property ์ค์ ์ useSSL=false ์ต์ ์ ์์ฃผ๋ฉด ์๋น์ค๊ฐ ์ ์์ ์ผ๋ก ๋์ํ์ง ์์ ํ์์ ์ผ๋ก ํด๋น ์ต์ ์ ์ถ๊ฐ ํ๋ค. ํน์ mariadb connector๊ฐ ํจ๊ป ์ฌ์ฉ๋๋ค๋ฉด mysql connector๋ก ๋ณ๊ฒฝ ํ ์ ๊ฑฐ pom ๋ฑ ์ค์ ํ์ผ์ database connector๊ฐ ์ฌ๋ฌ๊ฐ ์์ ๊ฒฝ.. 2022. 3. 15. ์ด์ 1 2 3 4 5 6 ๋ค์