๋ฐ์ํ ๋ถ๋ฅ ์ ์ฒด๋ณด๊ธฐ96 [Linux] OOM Killer๋? Kill ๋์์์ ์ ์ธ์ํค๊ธฐ ํ์ฌ์์ ๋ค๋ฅธ ํ๋ค๊ณผ ๊ณต์ฉ์ผ๋ก ์ฌ์ฉํ๋ ์๋ฒ๊ฐ ์๋๋ฐ ์๊พธ ์ด์ ์์ด ๋ฌด์์๋ก ํ๋ก์ธ์ค๊ฐ ์ฃฝ๋ ํ์์ด ๋ฐ์ํ๋ค. ๊ฐ ํ๋ก์ ํธ์ ๋ก๊ทธ๋ฅผ ๋ด๋ ํน๋ณํ๊ฒ ๋จ์์๋๊ฒ ์์๊ณ .. ์์ธ์ ๋ฉ๋ชจ๋ฆฌ๊ฐ ๋ถ์กฑํ์ฌ ๋ฆฌ๋ ์ค ์ปค๋์ด OOM Killer ์์ ์ ์คํํ ๊ฒ! OOM Killer๋ ? OOM : Out of Memory ๋ฉ๋ชจ๋ฆฌ ๋ถ์กฑ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ๋ณดํ๊ธฐ ์ํ ๊ฒ์ผ๋ก ํ๋ก์ธ์ค์ ๋ฉ๋ชจ๋ฆฌ ํ ๋น์ ๋ฉ๋ชจ๋ฆฌ๊ฐ ๋ถ์กฑํ ์ํฉ์ ํด๊ฒฐํ๊ธฐ ์ํด linux kernel์ด OOM Killer๋ฅผ ์คํํ๋ค. (์ ์๋ฅผ ๋งค๊ฒจ ๋์ ์ ์๋ฅผ ๋ฐ์ ํ๋ก์ธ์ค๋ฅผ ์ฃฝ์ฌ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ๋ณดํจ) ํ๋ก์ธ์ค๋ฅผ ์ข ๋ฃ์ํค๋ ์์ oom_badnesss() ๋ฉ์๋์์ ํ๋ก์ธ์ค๋ณ ์ ์๋ฅผ ๊ณ์ฐํ์ฌ ์ ํ OOM Killer๋ ์ ์๋ฅผ ๋งค๊ฒจ ๊ฐ์ฅ ๋์ ์ ์๋ฅผ ๋ฐ์ ํ๋ก์ธ์ค๋ถํฐ kill.. 2022. 1. 18. [DB] UUID๋ฅผ PK(Primary Key)๋ก ์ฌ์ฉํ๋ ์ด์ ? UUID๋? Universally unique identifier ๋คํธ์ํฌ ์์์ ๊ณ ์ ์ฑ์ด ๊ณ ์ฅ๋๋ ID๋ฅผ ๋ง๋ค๊ธฐ ์ํ ํ์ค ๊ท์ฝ์ผ๋ก ๋๋คํ๊ฒ ์์ฑ๋๋ ๊ฐ์ด๋ฉฐ, ์ค๋ณต๋ ํ๋ฅ ์ด 0%๋ ์๋์ง๋ง ๋งค์ฐ ํฌ๋ฐํ๋ค. DB ๊ด๋ จ ์์ ์ ๋ณด๊ฑฐ๋ ์์น๋ฅผ ํ๋ฉด PK๋ฅผ auto_increment๋ก ์ฌ์ฉํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง๊ณ , ์ด๋ ๊ฒ ์ฌ์ฉํ๋๊ฒ ์ข๋ค๊ณ ๋ค ์๊ธฐํ๋ค. PK๋ฅผ auto_increment๋ก ์ฌ์ฉํ๋ ๊ฒ์ ์ข์ง๋ง ์ด PK๊ฐ์ด URL ํน์ ๊ณต๊ฐ๋ ๊ณณ์ ๋ ธ์ถ๋๋ค๋ฉด? ์ด ๊ฐ์ ๋จ์ํ๊ฒ ์ฆ๊ฐํ๋ ๊ฐ์ด๋ผ ์ ์ถํ๊ธฐ ์ฝ๊ณ , ์ด๋ก ์ธํด ๋ค๋ฅธ ๋ฐ์ดํฐ์ ์ฝ๊ฒ ์ ๊ทผํ ์ ์๋ค. ์ฆ, ์์ธก ๊ฐ๋ฅํ ๋ชจ๋ธ์ด ๋๋ฏ๋ก ํฌ๋กค๋ง์ด๋ ์ธ์ ์ ๊ณต๊ฒฉ์ ๋ ์ทจ์ฝํ๋ค. ๋ฐ๋ผ์ ์ฝ๊ฒ ์ ์ถํ ์ ์๋๋ก UUID๋ฅผ PK๋ก ์ฌ์ฉํ๊ฒ ๋๋ ๊ฒ! 2022. 1. 17. [Spring] @Transactional์ด ์ ์ฉ๋์ง ์์ ๊ฒฝ์ฐ(๋กค๋ฐฑ์ด ์๋๋ ์ด์ ) 1. Checked Exception์ผ ๊ฒฝ์ฐ ์ฌ์ค ์ด ํญ๋ชฉ์ ๋ํ ์ค๋ช ์ ์ํด ์ด์ java์ error์ exception์ ๋ํด ํฌ์คํ ์ ํ๋ค. Checked Exception์ด ๋ญ์ง ๋ชจ๋ฅธ๋ค๋ฉด ๋จผ์ ์๋ ํฌ์คํ ์ ๋ณด๊ณ ์ค๋ ๊ฒ์ ์ถ์ฒ! [Java] Error, Checked Exception, Unchecked Exception ๋น๊ต ์๋ฐ์์๋ ์์ธ๋ฅผ ํฌ๊ฒ Error์ Exception์ผ๋ก ๊ตฌ๋ถํ๊ณ , Exception์ RuntimeException ์์ ์ฌ๋ถ์ ๋ฐ๋ผ Checked Exception, Unchecked Exception์ผ๋ก ๊ตฌ๋ถ๋๋ค. Error ์์คํ ์ ๋น์ ์์ ์ธ ์ํฉ์ด ๋ฐ์ํ ๊ฒฝ.. ynzu-dev.tistory.com Checked Exception๋ ์์ธ์ํฉ ๋ฐ์์ ๋กค๋ฐฑ์ฒ๋ฆฌ๋ฅผ ํ.. 2022. 1. 13. [JAVA] Error, Checked Exception, Unchecked Exception ๋น๊ต ์๋ฐ์์๋ ์์ธ๋ฅผ ํฌ๊ฒ Error์ Exception์ผ๋ก ๊ตฌ๋ถํ๊ณ , Exception์ RuntimeException ์์ ์ฌ๋ถ์ ๋ฐ๋ผ Checked Exception, Unchecked Exception์ผ๋ก ๊ตฌ๋ถ๋๋ค. Error ์์คํ ์ ๋น์ ์์ ์ธ ์ํฉ์ด ๋ฐ์ํ ๊ฒฝ์ฐ๋ก ์์คํ ๋ ๋ฒจ์์ ๋ฐ์ํ๋ ์ฌ๊ฐํ ์์ค์ ์ค๋ฅ๋ฅผ ์๋ฏธํ๋ฉฐ, ๊ฐ๋ฐ์๊ฐ ์์ธกํ ์ ์๊ธฐ์ ๋ฏธ๋ฆฌ Handlingํ ์ ์๋ค. Exception ๊ฐ๋ฐ์๊ฐ ๊ตฌํํ ๋ก์ง์์ ๋ฐ์ํ๋ ๊ฒ์ผ๋ก ๊ฐ๋ฐ์๊ฐ ๋ฏธ๋ฆฌ ์์ธกํ์ฌ ๋ฐฉ์งํ ์ ์์ด์ ์ํฉ์ ๋ง๊ฒ Handling ํด์ผํ๋ค. ์๋๋ Checked Exception๊ณผ Unchecked Exception์ ๋น๊ตํ ํ์ด๋ค. Checked Exception Unchecked Exception ๋ก์ง์์ ์์ธ์ฒ๋ฆฌ ์ฌ.. 2022. 1. 12. [JAVA] ์์ฑ์ ๋์ ์ ์ ํฉํ ๋ฆฌ ๋ฉ์๋๋ฅผ ๊ณ ๋ คํด์ผ ํ๋ ์ด์ ! ๋จผ์ ์ ์ ํฉํ ๋ฆฌ ๋ฉ์๋๊ฐ ๋ญ์ง ์ ๋ชจ๋ฅด๊ฒ ์ผ๋ฉด ์๋ ํฌ์คํ ์ ๋ณด๊ณ ์ค์! [Java] ์ ์ ํฉํ ๋ฆฌ ๋ฉ์๋๋? (static factory method) ์ ์ ํฉํ ๋ฆฌ ๋ฉ์๋ ์ ์ (static), ํฉํ ๋ฆฌ(factory), ๋ฉ์๋(method) GoF๋ผ๋ ๋์์ธ ํจํด ์ค ํฉํ ๋ฆฌ ํจํด์์ ์ ๋ํ ๋จ์ด๋ก ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ ์ญํ ์ ๋ถ๋ฆฌํ๊ฒ ๋ค๋ ๊ฒ์ ๋งํ๋ค. (ํ์ง๋ง ์ ์ ํฉํ ๋ฆฌ ๋ฉ ynzu-dev.tistory.com 1. ์ด๋ฆ์ ๊ฐ์ง ์ ์๋ค. BigInteger ํด๋์ค๋ฅผ ์๋ฅผ ๋ค์ด ๋ณด๋ฉด ์์ฑ์์ธ BigInteger(int, int, Random)๊ณผ ์ ์ ํฉํ ๋ฆฌ ๋ฉ์๋์ธ probablePrime(int, Random) ์ค ํ์๊ฐ ๋ฉ์๋ ๋ช ๋๋ถ์ '๊ฐ์ด ์์์ธ BigInteger๋ฅผ ๋ฐํํ๋ค'๋ผ๋ ์๋ฏธ๋ฅผ ํ์ ํ๊ธฐ ์ฝ๋ค.. 2022. 1. 12. [JAVA] ์ ์ ํฉํ ๋ฆฌ ๋ฉ์๋๋? (static factory method) ์ ์ ํฉํ ๋ฆฌ ๋ฉ์๋ ์ ์ (static), ํฉํ ๋ฆฌ(factory), ๋ฉ์๋(method) GoF๋ผ๋ ๋์์ธ ํจํด ์ค ํฉํ ๋ฆฌ ํจํด์์ ์ ๋ํ ๋จ์ด๋ก ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ ์ญํ ์ ๋ถ๋ฆฌํ๊ฒ ๋ค๋ ๊ฒ์ ๋งํ๋ค. (ํ์ง๋ง ์ ์ ํฉํ ๋ฆฌ ๋ฉ์๋์ ํฉํ ๋ฆฌ ํจํด์ ๋ช ํํ๊ฒ ๋ค๋ฅด๊ณ , ๋์์ธ ํจํด ์ค์ ์ด์ ์ผ์นํ๋ ํจํด์ด ์๋ค๊ณ ํ๋ค. ์ด ๋ถ๋ถ์ ๋ํด์ ๊ณต๋ถ๋ฅผ ํด๋ด์ผ๊ฒ ๋ค..) ์ข ๋ ์ฝ๊ฒ ์ค๋ช ํ์๋ฉด ์์ฑ์๋ฅผ ํตํด ๊ฐ์ฒด๋ฅผ ์์ฑํ๋๊ฒ ์๋๋ผ ๋ณ๋ ๋ฉ์๋๋ฅผ ์ ์ํด์ ๊ฐ์ฒด๋ฅผ ์์ฑํ ์ ์๋๋ก ๊ฐ์ฒด ๋ด์ ์ ์ ๋ฉ์๋๋ฅผ ์ ์ํด๋์ ๊ฒ! ์ ํํ ์ด๋ค ๋ฉ์๋๋ฅผ ์๊ธฐํ๋ ๊ฑด์ง ์์๋ฅผ ๋ค์ด๋ณด๊ฒ ๋ค. java.time ํจํค์ง์ ํฌํจ๋ LocalDateTime ํด๋์ค์ ์ ์ ํฉํ ๋ฆฌ ๋ฉ์๋๋ฅผ ์ดํด ๋ณด๋ฉด ์์ฑ์๋ฅผ ํตํด ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ ๊ฒ์ด ์๋๋ผ of ๋ฉ์.. 2022. 1. 10. [Web] redirect์ ๋ฐ์ดํฐ ์ ๋ฌํ๋ ๋ฐฉ๋ฒ - RedirectAttributes ๊ฒฐ๋ก : RedirectAttributes ํด๋์ค๋ฅผ ์ฌ์ฉํ๋ฉด ๋๋ค! @Controller class TestController { @PostMapping("/buy") public String buy(@ModelAttribute("testForm") TestVo vo , HttpServletRequest request , RedirectAttributes redirectAttributes){ // ๊ฒฐ์ ์ฒ๋ฆฌ ๋ก์ง //์ฒซ๋ฒ์งธ ๋ฐฉ๋ฒ redirectAttributes.addAttribute("param", param); //๋๋ฒ์งธ ๋ฐฉ๋ฒ redirectAttributes.addFlashAttribute("param", param); return "redirect:/buy-result"; } } addAttrib.. 2022. 1. 7. [Web] PRG ํจํด (Post - Redirect - Get) PRG ํจํด์ด๋? Post -> Redirect -> Get ํจํด์ผ๋ก ๋ง๋ค์ด์ง๋ ๊ฒ์ ๋งํ๋ฉฐ, ๊ถ์ฅ๋๋ ๋์์ธ ํจํด ์ค ํ๋๋ค. PRG ํจํด์ ํ์์ฑ ์๋ฅผ ๋ค์ด ์ํ ํ๋งค ์๋น์ค๋ฅผ ์ด์ํ๊ณ ์๋ค๊ณ ํ์. ์ฃผ๋ฌธ ํ์ด์ง๋ฅผ ํธ์ถํ๊ณ , Post ๋ฐฉ์์ผ๋ก ๊ฒฐ์ ๋ฅผ ์ฒ๋ฆฌํ ๊ฒฝ์ฐ ๊ฒฐ์ ์๋ฃ ํ์ด์ง์์ ์ค์ ํน์ ์๋์ ์ผ๋ก ์๋ก๊ณ ์นจ์ ํ๊ฒ ๋๋ฉด ์๋ฒ์ ์ ์กํ๋ ๋ฐ์ดํฐ๋ฅผ ๋ค์ ์ ์กํ๊ฒ ๋์ด ์ค๋ณต ๊ฒฐ์ ์ฒ๋ฆฌ๊ฐ ๋ ์ ์๋ค. ์์ธํ ํ๋ก์ธ์ค๋ ์๋ ํฌ์คํ ์ ์ฐธ๊ณ ํ์ [WEB] PRGํจํด PRG(Post-Redicet-Get)ํจํด์ ์น ๊ฐ๋ฐ์ ์ฌ์ฉ ๊ถ์ฅ๋๋ ๋์์ธ ํจํด์ ๋๋ค. ์ฌ์ฉ์์ ๋ค๋ก๊ฐ๊ธฐ, ์๋ก๊ณ ์นจ์ผ๋ก ์ธํ ์ค๋ณต์ ๋ ฅ์ ๋ฐฉ์งํ ์ ์์ต๋๋ค. EX) ์ํ์ฃผ๋ฌธ PRGํจํด ์ ์ฉ ์ ์ฌ์ฉ์๊ฐ ์ํ ์ฃผ๋ฌธ juinor.tistory... 2022. 1. 7. ์ด์ 1 ยทยทยท 4 5 6 7 8 9 10 ยทยทยท 12 ๋ค์ 728x90 ๋ฐ์ํ