์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- Hikari Connection Pool
- InnoDB์ํคํ ์ฒ
- ์๋ฐ
- effectiveJava
- ์ธ๋ฑ์คํ์ค์บ
- index skip scan
- ์ธ๋ฑ์ค์คํต์ค์บ
- enum ์์ฑ์ ์ ๊ทผ ์ ํ์
- ์ดํํฐ๋ธ์๋ฐ
- ์์
- ์๋ฐ์์์ฐ๋ ๋๋ฅผ ์ฌ์ฉํ๋ ์ด์
- ์์ดํ 15
- ์ํฐ๋ ๋ณ์ข ๊ฐ๋ฐ์
- ์๋ฐ๋ผ์ด๋ธ์คํฐ๋
- item15
- builder null
- SVN
- Item6
- ๋ฐ์ฉ๋ ์ค๊ตญ์ด
- assert.notnull
- ์๋ผ์คํฑ์์น๋ฉ์ธ์ง์ฉ๋
- ์ํฐ๋ ๊ฐ๋ฐ์ํ์ฌ
- ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฒฉ๋ฆฌ์์ค
- hikari cp ์ค์
- ์๋ฐ์์
- mysql์ํคํ ์ฒ
- ์๋ฐ์ฐ๋ ๋
- mysql
- index full scan
- ๋น์ผ๊ฐ์ฒด์์ฑ
- Today
- Total
๋ชฉ๋กLanguage/Java (20)
โ๐ป๊ธฐ๋กํ๋ ๋ธ๋ก๊ทธ
๊ฐ์ฒด ์์ฑ ๋น์ฉ์ด ๋น์ผ ๊ฐ์ฒด EffectiveJava item6 - ๋ถํ์ํ ๊ฐ์ฒด ์์ฑ์ ํผํ๋ผ ๋ผ๋ ๋ด์ฉ์ ํ์ฌ ์ฝ๋์ ์ ์ฉํ ๋ด์ฉ์ ์ ๋ฆฌํ์ฌ ๊ณต์ ํฉ๋๋ค. ์คํฐ๋ ์ ๋ฆฌ ๋ด์ฉ https://github.com/WanOnPreStudy/EffectiveJavaStudy/blob/main/Chapter2/item_6_%EA%B9%80%EC%A0%95%ED%9D%AC.md ์ฑ ์์๋ ์๋์ ๊ฐ์ด ์ค๋ช ํ๊ณ ์์ต๋๋ค. ๊ฐ์ฒด ์์ฑ ๋น์ฉ์ด ๋น์ผ ๊ฐ์ฒด๋ ๋ฐ๋ณตํด์ ์์ฑํ๊ธฐ๋ณด๋ค, ์บ์ฑํ์ฌ๊ฐ์ฒด๋ฅผ ์ฌ์ฌ์ฉํ๋ ๊ฒ์ด ์ข๋ค. ๊ฐ์ฒด ์์ฑ ๋น์ฉ์ด ๋น์ผ ๊ฐ์ฒด = cpu ๋ฆฌ์์ค ์ฌ์ฉ ๅค ์ ๊ทํํ์์ ๊ฒฝ์ฐ ๊ฐ์ฒด ์์ฑ ์ ์์ฑ ๋น์ฉ์ด ๋น์ธ๋ค. ์ ๊ท ํํ์์ ํตํด ๋ฌธ์์ด์ ๊ฒ์ฌํ ๋ ๋ด๋ถ ๋ฉ์๋๋ฅผ ๋ค์ฌ๋ค๋ณด๋ฉด ์ ๊ทํํ์์ ํ๋ผ๋ฏธํฐ๋ก ๋ฐ์ ๋ด๋ถ์ ์ผ..
JVM(Java Virtual Machine) ์ด์์ฒด์ ์ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ ์ ๊ทผํ์ฌ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ด๋ฆฌํ๋ ํ๋ก๊ทธ๋จ ์ด์ ๊ฐ์ ๋จธ์ Garbage Collector ์ํ ๋์ ์ผ๋ก ํ ๋นํ ๋ฉ๋ชจ๋ฆฌ ์์ญ(Heap) ์ค ์ฌ์ฉํ์ง ์๋ ์์ญ์ ์ฒดํฌํ์ฌ ๋ ์ด์ ์ฌ์ฉํ์ง ์๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋น์ด๋ค. GCํ์ ๋ฐฐ๊ฒฝ์ ๋ ๊ฐ์ง ์ ์ ์กฐ๊ฑด ๋๋ถ๋ถ์ ๊ฐ์ฒด๋ ๊ธ๋ฐฉ ์ ๊ทผ unreachable ์ํ๊ฐ ๋๋ค. ์ค๋๋ ๊ฐ์ฒด์์ ์ ์ ๊ฐ์ฒด๋ก์ ์ฐธ์กฐ๋ ์์ฃผ ์ ๊ฒ ์กด์ฌํ๋ค. ๋ฉ๋ชจ๋ฆฌ ์์ญ class Person { int id; String name; public Person(int id, String name) { this.id = id; this.name = name; } } public class PersonBuilder { private sta..
์๋ฐ ๋ผ์ด๋ธ ์คํฐ๋ 12์ฃผ ์ฐจ - ์ ๋ ธํ ์ด์ 1. ์ ๋ ธํ ์ด์ ์ด๋ 2. ์ ๋ ธํ ์ด์ ์ ์ํ๋ ๋ฐฉ๋ฒ 3. ํ์ค ์ ๋ ธํ ์ด์ 4. ๋ฉํ ์ ๋ ธํ ์ด์ 5. ์ ๋ ธํ ์ด์ ํ๋ก์ธ์ 1. ์ ๋ ธํ ์ด์ ์ด๋ ํ๋ก๊ทธ๋จ์๊ฒ ์ถ๊ฐ์ ์ธ ์ ๋ณด๋ฅผ ์ ๊ณตํด ์ฃผ๋ ๋ฉํ๋ฐ์ดํฐ annotation ์ฉ๋ ์ปดํ์ผ๋ฌ์๊ฒ ์ฝ๋ ์์ฑ ๋ฌธ๋ฒ ์๋ฌ๋ฅผ ์ฒดํฌํ๋๋ก ์ ๋ณด๋ฅผ ์ ๊ณต ex) ๋ฉ์๋๊ฐ ์ฌ์ ๋๊ฐ ์ ๋๋ก ๋์๋์ง ํ์ธ @Override ํ๋ก๊ทธ๋จ ์คํ ์ ๋ณ๋์ ์ฒ๋ฆฌ๊ฐ ํ์ํ ๋ 2. ์ ๋ ธํ ์ด์ ์ ์ํ๋ ๋ฐฉ๋ฒ ํด๋์ค๋ ๋ฉ์๋ ์์ ์ฌ์ฉํ ์ ๋ ธํ ์ด์ ์ ๋ถ์ด๊ฑฐ๋ ์ง์ ์ปค์คํ ์ด ๊ฐ๋ฅํ๋ค. ์ปค์คํ ์ ๋ ธํ ์ด์ ์์ฑ ๋ฐฉ๋ฒ 1. ์ ๋ ธํ ์ด์ ์ผ๋ก ์ง์ ํ ์ด๋ฆ๊ณผ ๋์ผํ๊ฒ ํด๋์ค๋ฅผ ์์ฑํ๋ค. AnnotationName.java ์ ๋ ธํ ์ด์ ์ ์ ์ ํ๋ ์ด์์ ์๋ฆฌ๋จผํธ ๋ฉค๋ฒ ์ ์ธ ๊ฐ..
๐ ์๋ฐ ๋ผ์ด๋ธ ์คํฐ๋ 10์ฃผ ์ฐจ - Enum 1. Enum ์ถ์ฐ ์ด์ 2. Enum ์ ์ํ๋ ๋ฐฉ๋ฒ 3. Enum์ด ์ ๊ณตํ๋ ๋ฉ์๋ 4. java.lang.Enum 5. EnumSet ์ด ๊ธ์ 23.05.07์ ์์ ๋์์ต๋๋ค. 1. Enum ์ถ์ฐ ์ด์ ๊ณผ์ผ ๋ช ์ ์ซ์๋ฅผ ๋งค์นญํ์ฌ ๊ณผ์ผ์ ํด๋นํ๋ ์ฝ๋์ฒ๋ผ ์ฌ์ฉํ์๋ค. ์ฃผ์์ด ์์ด์ 1๋ฒ์ด ์ฌ๊ณผ์ธ๊ฑด ์์์ง๋ง ๋ง์ฝ ์ฃผ์์ด ์ง์์ง๊ฑฐ๋, ๋๊ตฐ๊ฐ ๋ชจ๋ฅด๊ณ ์์ ํ๋ค๊ฑฐ๋, ์ฃผ์๊ณผ ๊ณผ์ผ์ ํด๋น ์ฝ๋๋ฅผ ์ฌ์ฉํ๋ ์ฝ๋๊ฐ ๋ฉ๋ฆฌ ๋จ์ด์ ธ ์์ด์ 1์ด ์ฌ๊ณผ์ธ ๊ฒ์ ์๊ธฐ ํ๋ค๋ค๋ฉด? package enumTest; public class ConstantDemo { public static void main(String[] args) { /** * 1. ์ฌ๊ณผ * 2. ๋ณต์ญ์ * 3. ๋ฐ๋..
์๋ฐ ๋ผ์ด๋ธ ์คํฐ๋ 10์ฃผ ์ฐจ - ๋ฉํฐ์ค๋ ๋ ํ๋ก๊ทธ๋๋ฐ โ์๋ฐ์์ ์ค๋ ๋๋ฅผ ์ฌ์ฉํ๋ ์ด์ ์ ์ค๋ ๋๋ฅผ ์์ฑํ๋ ๋ฐฉ๋ฒ ํ๋ก๊ทธ๋จ์์ ์ด๋ ํ ์์ ์ ํ๊ธฐ ์ํด์๋ ํ๋ก์ธ์ค๊ฐ ์์๋๋ฉฐ, ๋์์ ์ฌ๋ฌ ์ผ์ ์ฒ๋ฆฌํ๊ธฐ ์ํด ์ฌ๋ฌ ๊ฐ์ ํ๋ก์ธ์ค๊ฐ ์์๋๋ค. ํ์ง๋ง ํ๋ก์ธ์ค ํ๋๊ฐ ์์๋๋ ค๋ฉด ๋ง์ ์์(์ฝ 32MB ~ 64MB)์ด ํ ๋น๋๋ค. ๊ทธ์ ๋ฐํด ์ค๋ ๋๋ ํ๋๋น 1MB ์ ๋ ํ ๋น๋๋ฏ๋ก ์๋ฐ์์๋ ์ฌ๋ฌ ์์ ์ ์ ์ ์์์ผ๋ก ์์ ์ ์ํํ๊ธฐ ์ํด ์ค๋ ๋๋ฅผ ์ฌ์ฉํ๋ค. 1. Process & Thread ํ๋ก์ธ์ค ๋จ์ํ ์คํ ์ค์ธ ํ๋ก๊ทธ๋จ, ์ฌ์ฉ์๊ฐ ์์ฑํ ํ๋ก๊ทธ๋จ์ด ์ด์์ฒด์ ์ ์ํด ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ํ ๋น๋ฐ์ ์คํ ์ค์ธ ๊ฒ ํ๋ก์ธ์ค๋ ํ๋ก๊ทธ๋จ์์ ์ฌ์ฉ๋๋ ๋ฐ์ดํฐ, ๋ฉ๋ชจ๋ฆฌ, ์ค๋ ๋๋ก ๊ตฌ์ฑ๋จ ์ต์ ํ๋์ ์ค๋ ๋๋ก ๊ตฌ์ฑ๋์ด์์ผ๋ฉฐ ๋..
๐ฉ๐ซ ์๋ฐ ๋ผ์ด๋ธ ์คํฐ๋ 8์ฃผ ์ฐจ - ์์ธ์ฒ๋ฆฌ 1. ์ค๋ฅ์ ์ข ๋ฅ 2. ์๋ฐ์์ ์์ธ ์ฒ๋ฆฌ ๋ฐฉ๋ฒ (try, catch, throw, throws, finally) 2.1 try-catch๋ฌธ์ผ๋ก ์์ธ ์ฒ๋ฆฌํ๊ธฐ 2.2 try - with -resources 2.3 ์์ธ ๋ฐ์์ํค๊ธฐ - throw 2.4 throwsํค์๋๋ฅผ ์ฌ์ฉํ์ฌ ๋ฉ์๋์์ ์์ธ ์ ์ธํ๊ธฐ 2.5 printStackTrace()์ getMessage() 3. ์๋ฐ๊ฐ ์ ๊ณตํ๋ ์์ธ ๊ณ์ธต ๊ตฌ์กฐ 4. Exception๊ณผ Error์ ์ฐจ์ด๋? 5. RuntimeException๊ณผ RE๊ฐ ์๋ ๊ฒ์ ์ฐจ์ด๋? 6. ์ปค์คํ ํ ์์ธ ๋ง๋๋ ๋ฐฉ๋ฒ 1. ์ค๋ฅ์ ์ข ๋ฅ ์ปดํ์ผ ์ค๋ฅ ์ฝ๋ ์์ฑ ์ค ๋ฌธ๋ฒ์ ์ธ ์ค๋ฅ ์คํ ์ค๋ฅ (runtime error) ์ปดํ์ผ์ ์ ์์ ์ด..
์๋ฐ ๋ผ์ด๋ธ ์คํฐ๋ 8์ฃผ ์ฐจ - ์ธํฐํ์ด์ค github.com/whiteship/live-study/issues/8#issuecomment-756731938 ์ธํฐํ์ด์ค ํ๋ก๊ทธ๋จ์ ์ด๋ค ๋ฉ์๋๋ฅผ ์ ๊ณตํ๋์ง ์๋ ค์ฃผ๋ ๋ช ์ธ ์ธํฐํ์ด์ค์์ ์ ์ธํ ๋ณ์๋ ์ปดํ์ผ ๊ณผ์ ์์ ์์๋ก, ์ ์ธํ ๋ฉ์๋๋ ์ปดํ์ผ ๊ณผ์ ์์ ์ถ์ ๋ฉ์๋๋ก ๋ณํ๋จ ์์) jdbc ์ธํฐํ์ด์ค์ ์๋ํํธ์ฌ์์ ์ธํฐํ์ด์ค์์ ์ ์๋ ๊ท๊ฒฉ๋ง ๋ณด๊ณ ์๋ฐ ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ๋๋น์์ ์ฐ๊ฒฐ connection ๊ฐ์ฒด ์์ฑ ์๋ฐ์์๋ ์ธํฐํ์ด์ค๋ฅผ ํตํด ๋ค์ค ์์์ ์ง์ํจ 1. ์ธํฐํ์ด์ค ์ ์ํ๋ ๋ฐฉ๋ฒ ์ธํฐํ์ด์ค ์ ์ธ ์ ์ ๊ทผ ์ ์ด์์ ํจ๊ป interfaceํค์๋ ์ฌ์ฉ ์ธํฐํ์ด์ค์ ๋ชจ๋ ํ๋๋ public static final, ๋ฉ์๋๋ public abstract..
์๋ฐ ๋ผ์ด๋ธ ์คํฐ๋ 7์ฃผ ์ฐจ - package github.com/whiteship/live-study/issues/7#issuecomment-753317704 1. package ํค์๋ package ํค์๋๋ฅผ ์ฌ์ฉํ์ฌ ๋น์ทํ ์ฑ๊ฒฉ์ ์๋ฐ ํด๋์ค๋ฅผ ๋ถ๋ฅํ ์ ์๋ค. ํด๋์ค ์์ ์๋์ ๊ฐ์ด ์ ์ธํ๋ค. package [ํจํค์ง๋ช ] package pakageHouse; public class pakageTest1 { public static void main(String[] args) { System.out.println("pakagetest1"); } } ํด๋์ค ์์ฑ ์์๋ ๋ค๋ฅธ ์์น์ ๋์๋ ๊ฐ์ ํจํค์ง ์ ์ธ์ด ๊ฐ๋ฅํ๋ค. packageTest1์ด๋ผ๋ ์๋ฐ ํด๋์ค๋ฅผ ๋ค๋ฅธ ์์น์ ๋๊ณ pacakgeํค์๋๋ก ์ ..