Spring
5

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

[๋ชจ์ ๋ฉด์ ] static ํค์๋๋ ์ ์ฌ์ฉํ๋ฉฐ ๋จ์ ์ ๋ฌด์์ธ๊ฐ์
1. ์์ฝ ๋ต๋ณโ
KEY WORD: ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ, ํด๋์ค ์์ค์ ๊ณต์ ์์, ๊ฐ์ฒด ์งํฅ ์๋ฐ, ์จ๊ฒจ์ง ์์กด์ฑ ๋ฌธ์ , ๋จ์ ํ
์คํธ๊ฐ ์ด๋ ค์static ํค์๋๋ฅผ ์ฌ์ฉํ ๋ณ์ ํน์ ๋งค์๋๋ ์ปดํ์ผ์์ ์ ๋ฑ ํ๋ฒ๋ง Method ์์ญ์ ํ ๋น๋ ๋ค์, ํ๋ก๊ทธ๋จ ์ข
๋ฃ ์๊น์ง ์ ์ง๋ฉ๋๋ค.์ด๋ฌํ ํน์ฑ ๋์, ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ์ ํจ์จ์ ์ด๊ณ , ํด๋์ค ์์ค์ ๊ณต์ ์์์ผ๋ก ์ฌ์ฉ๋์ด์ผ ํ๋ ๋ถ๋ณ ์์๋ Utill ํจ์๋ฅผ ๊ตฌํํ ๋ ์ฌ์ฉ๋ฉ๋๋ค. ํ์ง๋ง static์ ๋ค์๊ณผ ๊ฐ์ ์ฌ๊ฐํ ๋ถ์์ฉ์ด ๋๋ฐ๋ ์ ์์ผ๋ฏ๋ก ์ฌ์ฉ ์ ์ ์ ํด์ผ ํฉ๋๋ค.์ฒซ ๋ฒ์งธ๋ก, ๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ์ ์๋ฐํ๋ ํค์๋ ์
๋๋ค.static ๋ฉค๋ฒ ๋ณ์๋ฅผ ํ์ฉํ๋ ํด๋์ค์ ๊ฐ์ฒด๋ ์์ ์ ์ํ
๋ฅผ ์ค์ค๋ก ์๋ฒฝํ๊ฒ ์ ์ดํ์ง ๋ชปํ๋ฉฐ, ํ ๊ฐ์ฒด๋ ์๋น์ค์ ์ํด ์์ ์ ์ํ๊ฐ ..
2025.07.07
Computer Science/๋ชจ์๋ฉด์

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

@Transactional์ ๊ดํ์ฌ
0. ํ์ต ๋ชฉ์ @Transactional์ด ๋ฌด์์ธ์ง ์ดํดํ๋ค@Transactional์ ๊ตฌ์ฑ์์์ ์๋์๋ฆฌ๋ฅผ ์ดํดํ๋ค.์ ์๋ก์ด ์ค๋ ๋์๋ ํธ๋์ญ์
์ด ์ ํ๋์ง ์๋์ง ์ดํดํ๋ค.1. @Transactional ์ด๋?Spring Framework์์ ํธ๋์ญ์
์ ์ ์ธ์ ์ผ๋ก ๊ด๋ฆฌํ ์ ์๊ฒ ๋ง๋ ์ด๋
ธํ
์ด์
(1) '์ ์ธ์ ์ผ๋ก ๊ด๋ฆฌํ๋ค. ' ์ ์๋ฏธํธ๋์ญ์
๊ด๋ฆฌ๊ฐ ํ์ํ ํด๋์ค๋ ๋งค์๋์ @Transactional ์ด๋
ธํ
์ด์
์ '์ ์ธ'๋ง ํ๋ฉด, ์ ์ธ๋ ๋ฒ์๋ฅผ ํ๋์ ํธ๋์ญ์
์ปจํ
์คํธ๋ก ๋ฌถ์ด์ ๊ด๋ฆฌํด์ค๋ค.์ฅ์ ์ ๋ค์๊ณผ ๊ฐ๋ค.ํธ๋์ญ์
๊ฐ์ ๊ฒฝ๊ณ ํ์
์ด ์ฝ๋ค.๋น์ฆ๋์ค ๋ก์ง๊ณผ ํธ๋์ญ์
๊ด๋ฆฌ ๋ก์ง์ด ๋ถ๋ฆฌ๋์ด ๋น์ฆ๋์ค ๋ก์ง ์ง์ค๊ณผ ์ ์ง๋ณด์๊ฐ ์์ํด์ง๋ค.(2) ํธ๋์ญ์
์ ์ธ ๋ฒ์์ ๋ฐ๋ฅธ ์๋ฏธํด๋์ค์ ์ค์ ์, ํด๋น ํด๋์ค์ ๋ชจ..
2025.06.30
Develop/BACK-END

Log ์๊น ์
ํ๊ธฐ
0. ๋ก๊ทธ๊ฐ ํฐ์์ด๋ฉด...๋ณด๊ธฐ๊ฐ ํ๋ค๋ค.์ด๊ฒ ์ธํ
๋ฆฌ์ ์ด์์ ๋ณด๋ฉด ๊ทธ๋๋ง ๋์๋ฐ, ๋ฐฐํฌ๋ ์๋ฒ๋ก ๋ค์ด๊ฐ ๋ก๊ทธ๋ฅผ ๋ณผ๋ ค๊ณ ์น๋ฉด ์ ๋ง ๊ตฌ๋ถํ ํ๋ค์ด์ง๋ค. ์ด๋ฅผ ์ํด๋ก๊ทธ ๋ ๋ฒจ ๋ณ๋ก ์๊น์ ์ ์ฉํ์ฌ ๊ฐ๋
์ฑ์ ๋์ด๋ ค ํ๋ค.1. ์ ์ฉ ๋ฐฉ๋ฒ(1) ํ์ผ ๊ตฌ์กฐ ๋ฐ ์์กด์ฑ ์ฝ์
resources ๋ถ๋ถ์ logBack์ ๋๋ค. ์ดํ ๋ก๊น
๊ณผ ์ค์ ๊ตฌํ ์ฝ๋ ๊ฐ์ ๊ด์ฌ์ฌ ๋ถ๋ฆฌ๋ฅผ ์ํด @SLF4J ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฝ์
ํ๋ค. ์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฐ์ง ์์ผ๋ฉด ๋ก๊ทธ๋ฅผ ์ฐ๊ณ ์ถ์ ๋ชจ๋ ํด๋์ค๋ง๋ค Logger ๊ฐ์ฒด๋ฅผ ์ฃผ์
๋ฐ์์ผ ํ๋ค. ์ด๋ ๊ฐ์ฒด๊ฐ์ ๊ฒฐํฉ๋๋ฅผ ๋์ด๊ณ , Logger ๊ธฐ๋ฅ ์์ฒด์ ์ ์ฐ์ฑ๋ ์ค์ธ๋ค. (์ฒ์์ Log-Back ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฐ๋ค๊ฐ Log4j๋ก ๋ฐ๊พธ๊ณ ์ถ์ ๋ @SL4FJ๋ฅผ ์ ์ด๋ค๋ฉด ๋ชจ๋ Logger ๋ฉค๋ฒ๋ฅผ ๋ฐ๊ฟ์ค์ผ ํ๋ค;;)..
2025.02.13
Develop/BACK-END