user-img
Spring 5
thumbnail
String Constant Pool: String ๊ฐ์ฒด๊ฐ€ ์ €์žฅ๋˜๋Š” ๊ณณ
0. ํ•™์Šต ๋ชฉ์ String Constant Pool ์ด๋ผ๋Š” ๊ฐœ๋…์— ๋Œ€ํ•ด์„œ ์ดํ•ดํ•œ๋‹ค.String์„ ์™œ ๋ถˆ๋ณ€ ๊ฐ์ฒด๋กœ ๋งŒ๋“ค์—ˆ๋Š”์ง€ ์œ ์ถ”ํ•œ๋‹ค.1. String Constant Pool ์ด๋ž€?JVM Heap์— ์กด์žฌํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์œผ๋กœ ๋ถˆ๋ณ€ ๊ฐ์ฒด์ธ String ๋ฆฌํ„ฐ๋Ÿด ์ „์šฉ ์ €์žฅ ๊ณต๊ฐ„ ์ด๋‹ค.ํ”„๋กœ๊ทธ๋žจ ๋‚ด๋ถ€์—์„œ ์„ ์–ธ๋œ ๋ชจ๋“  String ๋ฆฌํ„ฐ๋Ÿด์€ String Constant Pool์— ์ €์žฅ๋œ๋‹ค.2. ํŠน์ง•String Literal ๋งŒ ์ €์žฅPool์— ์กด์žฌํ•˜๋Š” ๋ฌธ์ž์—ด์ด ์žฌ ์„ ์–ธ๋˜๋ฉด, ์ƒˆ๋กœ ํ• ๋‹นํ•˜์ง€ ์•Š๊ณ  ์žˆ๋Š” ๊ฑฐ ์žฌํ™œ์šฉ (1) String Literal ๋งŒ ์ €์žฅํ•œ๋‹ค.String ๊ฐ์ฒด ์„ ์–ธ ๋ฐฉ์‹์€ 2๊ฐœ๋กœ ๋‚˜๋‰œ๋‹ค.// ๋ฆฌํ„ฐ๋Ÿด ๋ฐฉ์‹ ์„ ์–ธString str1 = "Hello World";// ๊ฐ์ฒด ๋ฐฉ์‹ ์„ ์–ธString str2 = new..
2025.07.18
Develop/BACK-END
thumbnail
[๋ชจ์˜ ๋ฉด์ ‘] static ํ‚ค์›Œ๋“œ๋Š” ์™œ ์‚ฌ์šฉํ•˜๋ฉฐ ๋‹จ์ ์€ ๋ฌด์—‡์ธ๊ฐ€์š”
1. ์š”์•ฝ ๋‹ต๋ณ€โœ…KEY WORD: ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ, ํด๋ž˜์Šค ์ˆ˜์ค€์˜ ๊ณต์œ  ์ž์›, ๊ฐ์ฒด ์ง€ํ–ฅ ์œ„๋ฐ˜, ์ˆจ๊ฒจ์ง„ ์˜์กด์„ฑ ๋ฌธ์ œ, ๋‹จ์œ„ ํ…Œ์ŠคํŠธ๊ฐ€ ์–ด๋ ค์›€static ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•œ ๋ณ€์ˆ˜ ํ˜น์€ ๋งค์„œ๋“œ๋Š” ์ปดํŒŒ์ผ์‹œ์ ์— ๋”ฑ ํ•œ๋ฒˆ๋งŒ Method ์˜์—ญ์— ํ• ๋‹น๋œ ๋’ค์—, ํ”„๋กœ๊ทธ๋žจ ์ข…๋ฃŒ ์‹œ๊นŒ์ง€ ์œ ์ง€๋ฉ๋‹ˆ๋‹ค.์ด๋Ÿฌํ•œ ํŠน์„ฑ ๋•์—, ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ์— ํšจ์œจ์ ์ด๊ณ , ํด๋ž˜์Šค ์ˆ˜์ค€์˜ ๊ณต์œ  ์ž์›์œผ๋กœ ์‚ฌ์šฉ๋˜์–ด์•ผ ํ•˜๋Š” ๋ถˆ๋ณ€ ์ƒ์ˆ˜๋‚˜ Utill ํ•จ์ˆ˜๋ฅผ ๊ตฌํ˜„ํ•  ๋•Œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ static์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์‹ฌ๊ฐํ•œ ๋ถ€์ž‘์šฉ์ด ๋™๋ฐ˜๋  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์‚ฌ์šฉ ์‹œ ์œ ์˜ ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.์ฒซ ๋ฒˆ์งธ๋กœ, ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์œ„๋ฐ˜ํ•˜๋Š” ํ‚ค์›Œ๋“œ ์ž…๋‹ˆ๋‹ค.static ๋ฉค๋ฒ„ ๋ณ€์ˆ˜๋ฅผ ํ™œ์šฉํ•˜๋Š” ํด๋ž˜์Šค์˜ ๊ฐ์ฒด๋Š” ์ž์‹ ์˜ ์ƒํ…Œ๋ฅผ ์Šค์Šค๋กœ ์™„๋ฒฝํ•˜๊ฒŒ ์ œ์–ดํ•˜์ง€ ๋ชปํ•˜๋ฉฐ, ํƒ€ ๊ฐ์ฒด๋‚˜ ์„œ๋น„์Šค์— ์˜ํ•ด ์ž์‹ ์˜ ์ƒํƒœ๊ฐ€ ..
2025.07.07
Computer Science/๋ชจ์˜๋ฉด์ ‘
thumbnail
SELF INVOCATION์˜ ์ •์˜, ์›๋ฆฌ, ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•
0. ํ•™์Šต ๋ชฉ์ SELF INVOCATION์ด ๋ฌด์—‡์ธ์ง€, ์–ธ์ œ ์ผ์–ด๋‚˜๋Š”์ง€ ์ดํ•ดํ•œ๋‹ค.ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด ๋ฌด์—‡์ธ์ง€ ์ดํ•ดํ•œ๋‹ค.1. SELF INVOCATION ์ด๋ž€?AOP ๋งค์ปค๋‹ˆ์ฆ˜ ์‚ฌ์šฉ ์‹œ ๊ฒช์„ ์ˆ˜ ์žˆ๋Š” ๋ถ€์ž‘์šฉ ์ค‘ ํ•˜๋‚˜์ด๋‹ค.ํŠน์ • ๊ฐ์ฒด์˜ ๋ฉค๋ฒ„ ๋งค์†Œ๋“œ A๊ฐ€ ๊ฐ™์€ ๊ฐ์ฒด ๋‚ด๋ถ€์˜ ๋งค์†Œ๋“œ B๋ฅผ ์ง์ ‘ ํ˜ธ์ถœํ•  ๋•Œ, B์— ๊ฑธ๋ ค์žˆ๋Š” AOP๋Š” ๋ฌด์‹œ๋˜๋Š” ํ˜„์ƒ์ด๋‹ค.(1) ์˜ˆ์‹œ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํด๋ž˜์Šค TEST ๊ฐ€ ์กด์žฌํ•œ๋‹ค๊ณ  ํ•ด๋ณด์ž.public class Test { public void methodAB(A a, B b) { methodA(A a); methodB(B b); } @Transactional public void methodA(A a) { repository.save(A a); ..
2025.06.30
Develop/BACK-END
thumbnail
@Transactional์— ๊ด€ํ•˜์—ฌ
0. ํ•™์Šต ๋ชฉ์ @Transactional์ด ๋ฌด์—‡์ธ์ง€ ์ดํ•ดํ•œ๋‹ค@Transactional์˜ ๊ตฌ์„ฑ์š”์†Œ์™€ ์ž‘๋™์›๋ฆฌ๋ฅผ ์ดํ•ดํ•œ๋‹ค.์™œ ์ƒˆ๋กœ์šด ์Šค๋ ˆ๋“œ์—๋Š” ํŠธ๋žœ์žญ์…˜์ด ์ „ํŒŒ๋˜์ง€ ์•Š๋Š”์ง€ ์ดํ•ดํ•œ๋‹ค.1. @Transactional ์ด๋ž€?Spring Framework์—์„œ ํŠธ๋žœ์žญ์…˜์„ ์„ ์–ธ์ ์œผ๋กœ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋งŒ๋“  ์–ด๋…ธํ…Œ์ด์…˜(1) '์„ ์–ธ์ ์œผ๋กœ ๊ด€๋ฆฌํ•œ๋‹ค. ' ์˜ ์˜๋ฏธํŠธ๋žœ์žญ์…˜ ๊ด€๋ฆฌ๊ฐ€ ํ•„์š”ํ•œ ํด๋ž˜์Šค๋‚˜ ๋งค์„œ๋“œ์— @Transactional ์–ด๋…ธํ…Œ์ด์…˜์„ '์„ ์–ธ'๋งŒ ํ•˜๋ฉด, ์„ ์–ธ๋œ ๋ฒ”์œ„๋ฅผ ํ•˜๋‚˜์˜ ํŠธ๋žœ์žญ์…˜ ์ปจํ…์ŠคํŠธ๋กœ ๋ฌถ์–ด์„œ ๊ด€๋ฆฌํ•ด์ค€๋‹ค.์žฅ์ ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.ํŠธ๋žœ์žญ์…˜ ๊ฐ„์˜ ๊ฒฝ๊ณ„ ํŒŒ์•…์ด ์‰ฝ๋‹ค.๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง๊ณผ ํŠธ๋žœ์žญ์…˜ ๊ด€๋ฆฌ ๋กœ์ง์ด ๋ถ„๋ฆฌ๋˜์–ด ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง ์ง‘์ค‘๊ณผ ์œ ์ง€๋ณด์ˆ˜๊ฐ€ ์ˆ˜์›”ํ•ด์ง„๋‹ค.(2) ํŠธ๋žœ์žญ์…˜ ์„ ์–ธ ๋ฒ”์œ„์— ๋”ฐ๋ฅธ ์˜๋ฏธํด๋ž˜์Šค์— ์„ค์ • ์‹œ, ํ•ด๋‹น ํด๋ž˜์Šค์˜ ๋ชจ..
2025.06.30
Develop/BACK-END
thumbnail
Log ์ƒ‰๊น” ์ž…ํžˆ๊ธฐ
0. ๋กœ๊ทธ๊ฐ€ ํฐ์ƒ‰์ด๋ฉด...๋ณด๊ธฐ๊ฐ€ ํž˜๋“ค๋‹ค.์ด๊ฒŒ ์ธํ…”๋ฆฌ์ œ์ด์—์„œ ๋ณด๋ฉด ๊ทธ๋‚˜๋งˆ ๋‚˜์€๋ฐ, ๋ฐฐํฌ๋œ ์„œ๋ฒ„๋กœ ๋“ค์–ด๊ฐ€ ๋กœ๊ทธ๋ฅผ ๋ณผ๋ ค๊ณ  ์น˜๋ฉด ์ •๋ง ๊ตฌ๋ถ„ํžˆ ํž˜๋“ค์–ด์ง„๋‹ค. ์ด๋ฅผ ์œ„ํ•ด๋กœ๊ทธ ๋ ˆ๋ฒจ ๋ณ„๋กœ ์ƒ‰๊น”์„ ์ ์šฉํ•˜์—ฌ ๊ฐ€๋…์„ฑ์„ ๋†’์ด๋ ค ํ•œ๋‹ค.1. ์ ์šฉ ๋ฐฉ๋ฒ•(1) ํŒŒ์ผ ๊ตฌ์กฐ ๋ฐ ์˜์กด์„ฑ ์‚ฝ์ž…resources ๋ถ€๋ถ„์— logBack์„ ๋‘”๋‹ค. ์ดํ›„ ๋กœ๊น…๊ณผ ์‹ค์ œ ๊ตฌํ˜„ ์ฝ”๋“œ ๊ฐ„์˜ ๊ด€์‹ฌ์‚ฌ ๋ถ„๋ฆฌ๋ฅผ ์œ„ํ•ด @SLF4J ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฝ์ž…ํ•œ๋‹ค. ์ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์“ฐ์ง€ ์•Š์œผ๋ฉด ๋กœ๊ทธ๋ฅผ ์“ฐ๊ณ  ์‹ถ์€ ๋ชจ๋“  ํด๋ž˜์Šค๋งˆ๋‹ค Logger ๊ฐ์ฒด๋ฅผ ์ฃผ์ž… ๋ฐ›์•„์•ผ ํ•œ๋‹ค. ์ด๋Š” ๊ฐ์ฒด๊ฐ„์˜ ๊ฒฐํ•ฉ๋„๋ฅผ ๋†’์ด๊ณ , Logger ๊ธฐ๋Šฅ ์ž์ฒด์˜ ์œ ์—ฐ์„ฑ๋„ ์ค„์ธ๋‹ค. (์ฒ˜์Œ์—” Log-Back ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์“ฐ๋‹ค๊ฐ€ Log4j๋กœ ๋ฐ”๊พธ๊ณ  ์‹ถ์„ ๋•Œ @SL4FJ๋ฅผ ์•ˆ ์“ด๋‹ค๋ฉด ๋ชจ๋“  Logger ๋ฉค๋ฒ„๋ฅผ ๋ฐ”๊ฟ”์ค˜์•ผ ํ•œ๋‹ค;;)..
2025.02.13
Develop/BACK-END