๊ด€๋ฆฌ ๋ฉ”๋‰ด

๋ชฉ๋กLanguage/Java (20)

โœ๐Ÿป๊ธฐ๋กํ•˜๋Š” ๋ธ”๋กœ๊ทธ

์ •๊ทœ ํ‘œํ˜„ ์‹ Pattern ๊ฐ์ฒด์˜ ์ƒ์„ฑ ๋น„์šฉ์„ ์ค„์ด์ž

๊ฐ์ฒด ์ƒ์„ฑ ๋น„์šฉ์ด ๋น„์‹ผ ๊ฐ์ฒด EffectiveJava item6 - ๋ถˆํ•„์š”ํ•œ ๊ฐ์ฒด ์ƒ์„ฑ์„ ํ”ผํ•˜๋ผ ๋ผ๋Š” ๋‚ด์šฉ์„ ํšŒ์‚ฌ ์ฝ”๋“œ์— ์ ์šฉํ•œ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•˜์—ฌ ๊ณต์œ ํ•ฉ๋‹ˆ๋‹ค. ์Šคํ„ฐ๋”” ์ •๋ฆฌ ๋‚ด์šฉ https://github.com/WanOnPreStudy/EffectiveJavaStudy/blob/main/Chapter2/item_6_%EA%B9%80%EC%A0%95%ED%9D%AC.md ์ฑ…์—์„œ๋Š” ์•„๋ž˜์™€ ๊ฐ™์ด ์„ค๋ช…ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ์ฒด ์ƒ์„ฑ ๋น„์šฉ์ด ๋น„์‹ผ ๊ฐ์ฒด๋Š” ๋ฐ˜๋ณตํ•ด์„œ ์ƒ์„ฑํ•˜๊ธฐ๋ณด๋‹ค, ์บ์‹ฑํ•˜์—ฌ๊ฐ์ฒด๋ฅผ ์žฌ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค. ๊ฐ์ฒด ์ƒ์„ฑ ๋น„์šฉ์ด ๋น„์‹ผ ๊ฐ์ฒด = cpu ๋ฆฌ์†Œ์Šค ์‚ฌ์šฉ ๅคš ์ •๊ทœํ‘œํ˜„์‹์˜ ๊ฒฝ์šฐ ๊ฐ์ฒด ์ƒ์„ฑ ์‹œ ์ƒ์„ฑ ๋น„์šฉ์ด ๋น„์‹ธ๋‹ค. ์ •๊ทœ ํ‘œํ˜„์‹์„ ํ†ตํ•ด ๋ฌธ์ž์—ด์„ ๊ฒ€์‚ฌํ•  ๋•Œ ๋‚ด๋ถ€ ๋ฉ”์„œ๋“œ๋ฅผ ๋“ค์—ฌ๋‹ค๋ณด๋ฉด ์ •๊ทœํ‘œํ˜„์‹์„ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ๋ฐ›์•„ ๋‚ด๋ถ€์ ์œผ..

Language/Java 2023. 2. 19. 01:15
Annotation ์• ๋…ธํ…Œ์ด์…˜

์ž๋ฐ” ๋ผ์ด๋ธŒ ์Šคํ„ฐ๋”” 12์ฃผ ์ฐจ - ์• ๋…ธํ…Œ์ด์…˜ 1. ์• ๋…ธํ…Œ์ด์…˜์ด๋ž€ 2. ์• ๋…ธํ…Œ์ด์…˜ ์ •์˜ํ•˜๋Š” ๋ฐฉ๋ฒ• 3. ํ‘œ์ค€ ์• ๋…ธํ…Œ์ด์…˜ 4. ๋ฉ”ํƒ€ ์• ๋…ธํ…Œ์ด์…˜ 5. ์• ๋…ธํ…Œ์ด์…˜ ํ”„๋กœ์„ธ์„œ 1. ์• ๋…ธํ…Œ์ด์…˜์ด๋ž€ ํ”„๋กœ๊ทธ๋žจ์—๊ฒŒ ์ถ”๊ฐ€์ ์ธ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•ด ์ฃผ๋Š” ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ annotation ์šฉ๋„ ์ปดํŒŒ์ผ๋Ÿฌ์—๊ฒŒ ์ฝ”๋“œ ์ž‘์„ฑ ๋ฌธ๋ฒ• ์—๋Ÿฌ๋ฅผ ์ฒดํฌํ•˜๋„๋ก ์ •๋ณด๋ฅผ ์ œ๊ณต ex) ๋ฉ”์„œ๋“œ๊ฐ€ ์žฌ์ •๋˜๊ฐ€ ์ œ๋Œ€๋กœ ๋˜์—ˆ๋Š”์ง€ ํ™•์ธ @Override ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ์‹œ ๋ณ„๋„์˜ ์ฒ˜๋ฆฌ๊ฐ€ ํ•„์š”ํ•  ๋•Œ 2. ์• ๋…ธํ…Œ์ด์…˜ ์ •์˜ํ•˜๋Š” ๋ฐฉ๋ฒ• ํด๋ž˜์Šค๋‚˜ ๋ฉ”์„œ๋“œ ์œ„์— ์‚ฌ์šฉํ•  ์• ๋…ธํ…Œ์ด์…˜์„ ๋ถ™์ด๊ฑฐ๋‚˜ ์ง์ ‘ ์ปค์Šคํ…€์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ์ปค์Šคํ…€ ์• ๋…ธํ…Œ์ด์…˜ ์ž‘์„ฑ ๋ฐฉ๋ฒ• 1. ์• ๋…ธํ…Œ์ด์…˜์œผ๋กœ ์ง€์ •ํ•  ์ด๋ฆ„๊ณผ ๋™์ผํ•˜๊ฒŒ ํด๋ž˜์Šค๋ฅผ ์ƒ์„ฑํ•œ๋‹ค. AnnotationName.java ์• ๋…ธํ…Œ์ด์…˜ ์ •์˜ ์‹œ ํ•˜๋‚˜ ์ด์ƒ์˜ ์—˜๋ฆฌ๋จผํŠธ ๋ฉค๋ฒ„ ์„ ์–ธ ๊ฐ€..

Language/Java 2021. 2. 4. 15:29
Thread - ๋ฉ€ํ‹ฐ์“ฐ๋ ˆ๋“œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ

์ž๋ฐ” ๋ผ์ด๋ธŒ ์Šคํ„ฐ๋”” 10์ฃผ ์ฐจ - ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋“œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ โ“์ž๋ฐ”์—์„œ ์Šค๋ ˆ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ์™€ ์Šค๋ ˆ๋“œ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ• ํ”„๋กœ๊ทธ๋žจ์—์„œ ์–ด๋– ํ•œ ์ž‘์—…์„ ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‹œ์ž‘๋˜๋ฉฐ, ๋™์‹œ์— ์—ฌ๋Ÿฌ ์ผ์„ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‹œ์ž‘๋œ๋‹ค. ํ•˜์ง€๋งŒ ํ”„๋กœ์„ธ์Šค ํ•˜๋‚˜๊ฐ€ ์‹œ์ž‘๋˜๋ ค๋ฉด ๋งŽ์€ ์ž์›(์•ฝ 32MB ~ 64MB)์ด ํ• ๋‹น๋œ๋‹ค. ๊ทธ์— ๋ฐ˜ํ•ด ์Šค๋ ˆ๋“œ๋Š” ํ•˜๋‚˜๋‹น 1MB ์ •๋„ ํ• ๋‹น๋˜๋ฏ€๋กœ ์ž๋ฐ”์—์„œ๋Š” ์—ฌ๋Ÿฌ ์ž‘์—…์„ ์ ์€ ์ž์›์œผ๋กœ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ์Šค๋ ˆ๋“œ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. 1. Process & Thread ํ”„๋กœ์„ธ์Šค ๋‹จ์ˆœํžˆ ์‹คํ–‰ ์ค‘์ธ ํ”„๋กœ๊ทธ๋žจ, ์‚ฌ์šฉ์ž๊ฐ€ ์ž‘์„ฑํ•œ ํ”„๋กœ๊ทธ๋žจ์ด ์šด์˜์ฒด์ œ์— ์˜ํ•ด ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ํ• ๋‹น๋ฐ›์•„ ์‹คํ–‰ ์ค‘์ธ ๊ฒƒ ํ”„๋กœ์„ธ์Šค๋Š” ํ”„๋กœ๊ทธ๋žจ์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๋ฐ์ดํ„ฐ, ๋ฉ”๋ชจ๋ฆฌ, ์Šค๋ ˆ๋“œ๋กœ ๊ตฌ์„ฑ๋จ ์ตœ์†Œ ํ•˜๋‚˜์˜ ์Šค๋ ˆ๋“œ๋กœ ๊ตฌ์„ฑ๋˜์–ด์žˆ์œผ๋ฉฐ ๋‘..

Language/Java 2021. 1. 22. 18:16
[ JAVA ] ์ธํ„ฐํŽ˜์ด์Šค

์ž๋ฐ” ๋ผ์ด๋ธŒ ์Šคํ„ฐ๋”” 8์ฃผ ์ฐจ - ์ธํ„ฐํŽ˜์ด์Šค github.com/whiteship/live-study/issues/8#issuecomment-756731938 ์ธํ„ฐํŽ˜์ด์Šค ํ”„๋กœ๊ทธ๋žจ์— ์–ด๋–ค ๋ฉ”์„œ๋“œ๋ฅผ ์ œ๊ณตํ•˜๋Š”์ง€ ์•Œ๋ ค์ฃผ๋Š” ๋ช…์„ธ ์ธํ„ฐํŽ˜์ด์Šค์—์„œ ์„ ์–ธํ•œ ๋ณ€์ˆ˜๋Š” ์ปดํŒŒ์ผ ๊ณผ์ •์—์„œ ์ƒ์ˆ˜๋กœ, ์„ ์–ธํ•œ ๋ฉ”์„œ๋“œ๋Š” ์ปดํŒŒ์ผ ๊ณผ์ •์—์„œ ์ถ”์ƒ ๋ฉ”์„œ๋“œ๋กœ ๋ณ€ํ™˜๋จ ์˜ˆ์‹œ) jdbc ์ธํ„ฐํŽ˜์ด์Šค์— ์„œ๋“œํŒŒํŠธ์‚ฌ์—์„œ ์ธํ„ฐํŽ˜์ด์Šค์—์„œ ์ •์˜๋œ ๊ทœ๊ฒฉ๋งŒ ๋ณด๊ณ  ์ž๋ฐ” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ๋””๋น„์™€์˜ ์—ฐ๊ฒฐ connection ๊ฐ์ฒด ์ƒ์„ฑ ์ž๋ฐ”์—์„œ๋Š” ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ํ†ตํ•ด ๋‹ค์ค‘ ์ƒ์†์„ ์ง€์›ํ•จ 1. ์ธํ„ฐํŽ˜์ด์Šค ์ •์˜ํ•˜๋Š” ๋ฐฉ๋ฒ• ์ธํ„ฐํŽ˜์ด์Šค ์„ ์–ธ ์‹œ ์ ‘๊ทผ ์ œ์–ด์ž์™€ ํ•จ๊ป˜ interfaceํ‚ค์›Œ๋“œ ์‚ฌ์šฉ ์ธํ„ฐํŽ˜์ด์Šค์˜ ๋ชจ๋“  ํ•„๋“œ๋Š” public static final, ๋ฉ”์„œ๋“œ๋Š” public abstract..

Language/Java 2021. 1. 8. 21:30