1) ๋ฐฐ์ด๊ณผ ๋งํฌ๋๋ฆฌ์คํธ๋ฅผ ๋น๊ตํด์ ์ค๋ช ํ ์ ์๋์?
-> ๊ฐ์ฅ ํฐ ์ฐจ์ด์ ์ ๊ตฌ์กฐ์ ์ ์ฐ์ฑ์ ๋๋ค. ๋ฐฐ์ด์ ํ ๋ฒ ํฌ๊ธฐ๋ฅผ ์ ์ธํ๊ณ ๋ ํ์๋ ํฌ๊ธฐ์ ๋ณ๊ฒฝ์ด ๋ถ๊ฐ๋ฅํ์ง๋ง, ๋งํฌ๋ ๋ฆฌ์คํธ๋ ์์์ ์ถ๊ฐ์ ์ ๊ฑฐ ๋ฑ์ ๋ฐ๋ผ ํฌ๊ธฐ์ ์ ํ ์์ด ๋ณ๊ฒฝํ ์ ์์ต๋๋ค. ๋ํ ๋ฐฐ์ด์ ์ฐ์๋ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๋ฅผ ๋ถ์ฌ ๋ฐ๊ธฐ ๋๋ฌธ์ ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ ์กฐํ์ ์์๋ฅผ ๋น ๋ฅด๊ฒ ์ฐพ์ ์ ์์ง๋ง ๋งํฌ๋ ๋ฆฌ์คํธ๋ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๊ฐ ์ฐ์๋์ด ์์ง ์๊ธฐ ๋๋ฌธ์ ์์๋ฅผ ๊ฒ์ํ ๊ฒฝ์ฐ ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์๋ ์์ฐจ์ ์ผ๋ก ์์๋ฅผ ๊ฒ์ํด์ผ ํ๋ ์ฐจ์ด์ ์ด ์์ต๋๋ค.
2) CORS๋ ๋ฌด์์ด๊ณ ์ด๋ป๊ฒ ํ์ฉํ ์ ์๋์?
-> CORS๋ ์นํ์ด์ง๊ฐ ํด๋น ํ์ด์ง๋ฅผ ์ ๊ณตํ๋ ๋๋ฉ์ธ์ด ์๋ ๋ค๋ฅธ ๋๋ฉ์ธ์ผ๋ก ์์ฒญ์ ์ ์กํ๋ ๊ฒ์ ๋ฐฉ์งํ๊ธฐ ์ํด ์น ๋ธ๋ผ์ฐ์ ์์ ๊ตฌํ๋๋ ๋ณด์ ๊ธฐ๋ฅ์ด๋ฉฐ, ์์ฒญ ์ ์ก ์ ๋ณ๋์ ์คํ ์ ์์ฒญ์ ๋ณด๋ด๋ preflighted request ๋ฐฉ์๊ณผ ๋ณ๋์ ์์ฒญ์ ๋ณด๋ด์ง ์๋ simple request ๋ฐฉ์์ด ์์ต๋๋ค. ์๋ฒ์์ ์ด๋ฅผ ํ์ฉํ๊ธฐ ์ํด์๋ ๋ธ๋ผ์ฐ์ ์์ ์ ์กํ๋ ์์ฒญ CORSํค๋์ ํ์์ ์๋ง๊ฒ ๊ฐ ์๋ฒ์ ์ธ์ด์ ํ๋ ์์ํฌ์ ๋ง๊ฒ ํ์ฉํ ์ ์์ต๋๋ค.
3) ์๊ฐ๋ณต์ก๋์ ๊ณต๊ฐ๋ณต์ก๋๊ฐ ๋ฌด์์ธ์ง ์ค๋ช ํ ์ ์๋์?
-> ์๊ฐ๋ณต์ก๋๋ ์๊ณ ๋ฆฌ์ฆ์ด ์คํ๋๋ ๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ์ ๋ํ๋ด๊ณ , ๊ณต๊ฐ๋ณต์ก๋๋ ์๊ณ ๋ฆฌ์ฆ์ด ์คํ๋๋ ๋ฐ ํ์ํ ๋ฉ๋ชจ๋ฆฌ์ ์์ ๋ํ๋ ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ๊ฐ ์๊ณ ๋ฆฌ์ฆ์ด ์ฌ์ฉํ๋ ์๊ฐ๊ณผ ๊ณต๊ฐ์ด ๊ฐ์ฅ ํฌ๊ฑฐ๋ ์ค๋๊ฑธ๋ฆฌ๋ ๊ฒฝ์ฐ๋ฅผ ๊ณ์ฐํ๋ ๋น ์ค ํ๊ธฐ๋ฒ์ ์ฌ์ฉํฉ๋๋ค. ์ด ๋๊ฐ์ง์ ์ฒ๋๋ ํด๋น ์๊ณ ๋ฆฌ์ฆ์ ์ฑ๋ฅ์ ํ๊ฐํ ๋ ์ฌ์ฉํฉ๋๋ค.
4) ์ฌ์ฉ์ ๋น๋ฐ๋ฒํธ๋ฅผ ์ ์กํ๊ณ ๋ณด๊ดํ๋ ๋ฐฉ๋ฒ์ ์ค๋ช ํ ์ ์๋์?
-> ๋ธ๋ผ์ฐ์ ์์ ์ ๋ ฅ๋ฐ์ ์ฌ์ฉ์์ ๋น๋ฐ๋ฒํธ๋ฅผ ์์ ํ๊ฒ ์๋ฒ์ ์ ์กํ๊ณ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ณด๊ดํ๊ธฐ ์ํด ์ํธํํด์ผ ํฉ๋๋ค. ์ธ ๊ฐ์ง ๋จ๊ณ๋ก ๋๋ ๋ณผ ์ ์์ต๋๋ค. ์ฒซ๋ฒ์งธ๋ ํด์ฑ์ผ๋ก ์ผ๋ฐ ํ ์คํธ ์ํธ๋ฅผ ํด์๋ก ๋ณํํ๋ ํจ์์ ๋๋ค. sha-256 ๋๋ bcrypt๊ฐ์ ํด์ฑ ์๊ณ ๋ฆฌ์ฆ์ ์ผ๋ฐ์ ์ผ๋ก ์ฌ์ฉํฉ๋๋ค. ์ด์ ๋ณด์์ ๋ ๊ฐํํ๊ธฐ ์ํด์๋ ์ํ ์ด ์ถ๊ฐ๋ ์ ์์ต๋๋ค. ํด์ฑ ์ ์ ์ํธ๋ผ๋ ์์์ ๋ฌธ์์ด์ ํ ์คํธ ์ํธ์ ์ถ๊ฐํด ๊ณต๊ฒฉ์๊ฐ ์ํธ๋ฅผ ํด๋ ํ๊ธฐ ์ด๋ ต๊ฒ ๋ง๋ค์ด์ค๋๋ค. ์ด๋ ๊ฒ ๋ง๋ค์ด์ง ์ํธ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํด์๋ก ์ ์ฅ๋๊ณ ์ดํ ๋ก๊ทธ์ธ ํ ๋ ๋ค์ ์ ๋ ฅํ ํ ์คํธ ์ํธ๋ฅผ ํด์ฑํ์ฌ ์ ์ฅ๋ ํด์ ์ํธ์ ๋น๊ต ํ ๋ก๊ทธ์ธ ํต๊ณผ ์ฌ๋ถ๋ฅผ ๊ฒฐ์ ํ ์ ์์ต๋๋ค.
5) ์คํ, ํ์ ๋ํด ์ค๋ช ํด์ฃผ์ค ์ ์๋์?
-> ์คํ์ ํ์ ์ ์ถ ์์น์ ๊ฐ์ง ์๋ฃ๊ตฌ์กฐ๋ก, ๋ฐ์ดํฐ๋ฅผ ์๋ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง๊ณ ์์ด ๋ฐ์ดํฐ ์ ์ฅ ์, ๋ฐ๋์ ๊ฐ์ฅ ์ฒซ๋ฒ์งธ ์์๋ก ์ ์ฅ๋๊ณ ๋ฐ์ดํฐ ์ ๊ฑฐ ์์๋ ์ฒซ๋ฒ์งธ ๋ฐ์ดํฐ, ๊ฐ์ฅ ์ต๊ทผ์ ์ถ๊ฐํ ๋ฐ์ดํฐ๋ถํฐ ์ ๊ฑฐ๊ฐ ๋ฉ๋๋ค. ์ด์๋ ๋ค๋ฅด๊ฒ ์๋ฃ๊ตฌ์กฐ ํ๋ ์ ์ ์ ์ถ ์์น์ ๊ฐ์ ธ ๋ฐ์ดํฐ๋ ์์ฐจ์ ์ผ๋ก ์ ์ฅ๋๊ณ , ๋ฐ์ดํฐ์ ์ ๊ฑฐ ๋ํ ๋จผ์ ์ ๋ ฅํด์ ์ ์ฅํ ๋ฐ์ดํฐ๋ถํฐ ์ ๊ฑฐ๋๋ ์๋ฃ๊ตฌ์กฐ์ ๋๋ค.
6) DI์ IoC์ ๋ํด ์ค๋ช ํด์ฃผ์ค ์ ์์๊น์?
-> ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ ํจ๋ฌ๋ค์์์ ์ฌ์ฉ๋๋ฉฐ, ๊ฐ ๊ฐ์ฒด์์ ํด๋น ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด ๊ทธ ๋ฉ์๋๋ฅผ ๊ตฌํํ๊ณ ์๋ ๊ฐ์ฒด๋ฅผ ๋งค ๋ฒ ์์ฑํ์ฌ ํธ์ถํ๋ ๊ฒ์ ๋งค์ฐ ๋นํจ์จ์ ์ด๊ณ ๊ฐ ๊ณ์ธต ๊ฐ ๊ฒฐํฉ๋๋ฅผ ๋์ด๋ ๊ฐํ ๊ฒฐํฉ์ด ๋ฉ๋๋ค. ์ด๋ฅผ ๋ง๋ ๋ฐฉ๋ฒ์ ํ๋๋ก IoC๋ฅผ ์ ์ฉํ ์ ์์ต๋๋ค. ์ ํ๋ฆฌ์ผ์ด์ ์คํ ์ ์ด๋ฅผ ์ญ์ ์์ผ ์ฝ๋๋ฅผ ๋ณด๋ค ์ ์ฐํ๊ฒ ์ค๊ณํ ์ ์๊ณ , ๋ค์ํ ์ข ์์ฑ ๋๋ ์๋น์ค์ ํจ๊ป ๋์ํ ์ ์๋๋ก ์์ ํ๊ณ ํ์ฅํ ์ ์์ต๋๋ค. ์๋ฐ๋ฅผ ์ฌ์ฉํ๋ค๋ฉด ์คํ๋ง์์ DI๋ฅผ ์ง์ํ๊ณ ์์ผ๋ฉฐ, ๊ฐ ๊ฐ์ฒด๋ฅผ ๋งค๋ฒ ์์ฑํ๋ ๊ฒ์ด ์๋๋ผ ์ฌ์ฉํ๋ ค๋ ๊ฐ์ฒด์์ ํด๋น ๊ฐ์ฒด์ ๋ํ ์์กด์ฑ์ ๋ถ์ฌํ์ฌ ๊ฐ์ฒด๋ฅผ ๋งค ๋ฒ ์์ฑํ์ง ์์๋ ๋ฉ์๋๋ฅผ ํธ์ถํด์ ์ฌ์ฉํ ์ ์๋๋ก ํ ์ ์์ต๋๋ค. ๊ตฌํ ๋ฐฉ๋ฒ์ผ๋ก๋ ์์ฑ์ ์ฃผ์ , ์ธํฐ ์ฃผ์ , ์ธํฐํ์ด์ค ์ฃผ์ ๋ฑ์ด ์์ต๋๋ค.
7) Call by reference๋ ๋ฌด์์ด๊ณ ๋ณดํต ์ด๋ป๊ฒ ์ฐ์ด๋์? ~ ์คํ๋ง ๋ฉด์ ์์ ๋์ค์ง ์์ ๊ฐ๋ฅ์ฑ์ด ๋๋ค
-> ์ฐธ์กฐ ํธ์ถ๋ฐฉ์์ ๋ฉ์๋๊ฐ ์ธ์๋ก ๋ณ์๋ฅผ ์ ๋ฌํ ๋ ๊ฐ์ ์ ๋ฌํ๋ ๊ฒ์ด ์๋๋ผ ๊ทธ ๋ณ์์ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๋ฅผ ์ ๋ฌํ๋ ๋ฐฉ์์ผ๋ก, ๋ฉ์๋๋ฅผ ํธ์ถ ์ค์ ์ธ์์ธ ๋ณ์์ ์ผ์ด๋๋ ๋ชจ๋ ๋ณ๊ฒฝ ์ฌํญ์ด ๋ฐ์๋๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. ๊ทธ ์ด์ ๋ก๋ ๋ฐฐ์ด์ด๋ ๋ฐ์ดํฐ ๊ตฌ์กฐ์ ์๋ณธ์ ์์ ํ๊ฑฐ๋ ํ๋์ ๋ฉ์๋์์ ํด๋น ๋ณ์๋ฅผ ํตํด ์ฌ๋ฌ ๊ฐ์ ๋ฐํํ๊ธฐ ์ํด, ๊ทธ๋ฆฌ๊ณ ๋๊ท๋ชจ ๋ฐ์ดํฐ๋ก ์์ ํ๋ ๊ฒฝ์ฐ ๊ฐ ํธ์ถ ๋ฐฉ์์ ์ฌ์ฉํ๋ฉด ๋ฉ์๋ ํธ์ถ์ ๋ฐ๋ฅธ ๋ณ์์ ๋ณ๊ฒฝ์ฌํญ์ด ๋ณ๋์ ๋ณต์ฌ๋ณธ์ ์์ฑํด ์ ์ฉํ๋ฏ๋ก ๋ฉ๋ชจ๋ฆฌ ๋น์ฉ์ด ๋ ๋ฐ์ํ๊ธฐ ๋๋ฌธ์ ์ด๋ฅผ ๊ฐ์ ํ๋ ๋ฐฉ๋ฒ์ผ๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค.
8) Override ์ Overload ๋ฅผ ์ค๋ช ํด์ฃผ์ค ์ ์์๊น์?
-> ์ค๋ฒ๋ผ์ด๋๋ ๋ถ๋ชจ ํด๋์ค์ ์ ์๋์ด ์๋ ๋์ผํ ์ด๋ฆ, ๋ฆฌํด ํ์ , ๊ทธ๋ฆฌ๊ณ ์ธ์๋ฅผ ๊ฐ์ง๋ ๋ฉ์๋๋ฅผ ์ฌ์ ์ํ๋ ๊ฒ์ ๋๋ค. ์์ ํด๋์ค๋ฅผ ์ ์ํ๋ ๊ฒฝ์ฐ ๋ถ๋ชจ ํด๋์ค์ ์๋ ๋ฉ์๋๋ฅผ ์ฌ์ ์ํด์ผ ํฉ๋๋ค. ์ด๋ฅผ ํตํด ๊ฐ ์์ ํด๋์ค๋ ๋ถ๋ชจ ํด๋์ค์ ์์ฑ๊ณผ ๋ฉ์๋๋ฅผ ๊ฐ์ง๋ฉด์๋ ์์ ํด๋์ค๋ง์ ๊ณ ์ ํ ๋ฉ์๋๋ฅผ ๊ตฌํํ ์ ์์ต๋๋ค. ์ค๋ฒ๋ก๋ฉ์ ํ๋์ ํด๋์ค ์์์ ์ด๋ฆ์ด ๊ฐ์ง๋ง ์ธ์๊ฐ ๋ค๋ฅธ ์ฌ๋ฌ ๋ฉ์๋๋ฅผ ์ ์ํ๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. ๋ฉ์๋๋ฅผ ์ ์ํ ๋ ๋งค๋ฒ ๋ค๋ฅธ ์ด๋ฆ์ผ๋ก ์ ์ํ ํ์์์ด ํธ๋ฆฌํฉ๋๋ค.
9) MVC ๋ชจ๋ธ์ด๋ ๋ฌด์์ธ์ง ์ค๋ช ํด์ฃผ์ค ์ ์์๊น์?
-> MVC ํจํด์ ์ ํ๋ฆฌ์ผ์ด์ ๋ก์ง์ ๋ชจ๋ธ, ๋ทฐ, ์ปจํธ๋กค๋ฌ์ ์ํธ ์ฐ๊ฒฐ๋ ๊ตฌ์ฑ ์์๋ก ๋ถ๋ฆฌํ๋ SW ์ํคํ ์ฒ ๋์์ธ ํจํด์ ํ ์ข ๋ฅ์ ๋๋ค ๋ชจ๋ธ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐ์ดํฐ ๋ฐ ๋น์ฆ๋์ค ๋ก์ง์ ๋ํ๋ ๋๋ค. ๋ฐ์ดํฐ๋ฅผ ์ ์ฅ ๋ฐ ๊ด๋ฆฌ, ๊ทธ๋ฆฌ๊ณ ์ก์ธ์คํ๊ณ ์กฐ์ํ๋ ๋ฐฉ๋ฒ์ ์ ์ํฉ๋๋ค. ๋ทฐ๋ ์ฌ์ฉ์์๊ฒ ๋ฐ์ดํฐ๋ฅผ ํ์ํ๋ ๋ฐฉ๋ฒ์ ์ ์ํฉ๋๋ค. ์ฌ์ฉ์๊ฐ ์ดํ๋ฆฌ์ผ์ด์ ๊ณผ ์ํธ ์์ฉํ ์ ์์ผ๋ฉฐ ๋ฐ์ดํฐ๋ฅผ ์ดํดํ๊ธฐ ์ฌ์ด ํ์์ผ๋ก ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํฉ๋๋ค. ์ปจํธ๋กค๋ฌ๋ ๋ชจ๋ธ๊ณผ ๋ทฐ ์ฌ์ด์ ์ค๊ฐ์ ์ญํ ๋ก ๋ทฐ์์ ์ ์ก๋ ์ฌ์ฉ์ ์ ๋ ฅ์ ๋ฐ์ ๋ชจ๋ธ๋ก ์ ์กํ๊ณ ์๋ต์ ๋ฐ์ ๋ค์ ๋ทฐ๋ก ์ ์กํฉ๋๋ค. ๊ฐ ์์๋ ์์ ์ ์ญํ ์ ๋ํ ์ฑ ์๋ง ์ ๋ดํ๋ฉฐ ์๋ก ๋ ๋ฆฝ์ ์ด๊ธฐ ๋๋ฌธ์ ์ฝ๋ ์ ์ง๊ด๋ฆฌ์ ์์ ์ ํจ์จ์ ์ผ๋ก ์ํํ ์ ์์ต๋๋ค.
10) ๊ฐ๋ฐ์๋ก์ ๋ณธ์ธ์ ์ฅ๋จ์ ๊ณผ ๊ทธ ๊ทผ๊ฑฐ๊ฐ ๋๋ ๊ฒฝํ(ํ์ ๋ฅ๋ ฅ ์ ์ธ)๋ฅผ ์ค๋ช ํด์ฃผ์ค ์ ์์๊น์?
->
11) JPA๊ฐ ํ์ํ ๋์ ๊ทธ๋ ์ง ์์ ๋๋ ์ธ์ ์ธ์ง ์ค๋ช ํ์ค ์ ์์๊น์?
-> ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ํธ ์์ฉ์ ํตํด ๋ฐ์ดํฐ๋ฅผ ์ ์งํ๊ณ ๊ฒ์ํ ๋ JPA๋ JAVA์ ORM ํ์ค์ผ๋ก ์ด ์ํธ ์์ฉ์ ๋ณด๋ค ํจ์จ์ ์ผ๋ก ํ ์ ์๋๋ก ๋ฐ๋ณต๋๊ณ ์์๊ฐ๋ฅํ SQL ์ฟผ๋ฆฌ๋ฅผ ์๋ํํ๊ณ ๋จ์ํ๊ฒ ๋ง๋ค์ด์ค๋๋ค. ๊ทธ๋ฆฌ๊ณ JPA๊ฐ ์๋ฐ์ ํ์ค ORM API์ด๊ธฐ ๋๋ฌธ์ ์ฝ๋๋ฅผ ์์ ํ์ง ์๊ณ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋ณ๊ฒฝํ๊ฑฐ๋ ์คํค๋ง๋ฅผ ์์ ํ ์ ์์ต๋๋ค.
๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ์ํธ ์์ฉ์ ๊ฐ๋จํ SQL ์ฟผ๋ฆฌ๋ง์ผ๋ก ๋ชจ๋ ๋ง์กฑํ ์ ์๋ ๊ฒฝ์ฐ,
๋ณต์กํ ์ฟผ๋ฆฌ๋ฅผ ์ง์ ์์ฑํ๋ ๊ฒ์ด ํ์ํ ๊ฒฝ์ฐ์๋ JPA ๋ณด๋ค๋ JDBC๋ฅผ ์ฌ์ฉํ๊ฑฐ๋ SQL ์ฟผ๋ฆฌ๋ฅผ ์ง์ ์์ฑํ๋ ๊ฒ์ด ๋์ ์ ์์ต๋๋ค. JPA๋ฅผ ์ฌ์ฉํด SQL ์ฟผ๋ฆฌ๋ฅผ ์ง์ ์์ฑํ๋ Native SQL Query ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์์ง๋ง, ํน์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์๋ง ์ํธ ์์ฉํ ์ ์๋ค๋ ๋จ์ ์ด ์์ต๋๋ค. ์ด๋ฅผ ๋ณด์ํ๊ธฐ ์ํด JPA์์๋ SQL๊ณผ ์ ์ฌํ ๊ธฐ์ ์ธ JPQL์ ์ง์ํฉ๋๋ค. ๋ค๋ง ์ค๊ณ ์ ์ฆ์ ๋ก๋ฉ์ ์ฌ๋ฐ๋ฅด๊ฒ ์ฌ์ฉํ์ง ๋ชปํ๋ ๊ฒฝ์ฐ N+1 ๋ฌธ์ ๋ก ์ฑ๋ฅ ์ ํ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค.
12) JPA์ ๋ํฐ ์ฒดํน์ด๋ ๋ฌด์์ธ๊ฐ์?
-> ๋ํฐ ์ฒดํน์ด๋ ์ํฐํฐ์ ๋ํ ๋ณ๊ฒฝ์ฌํญ์ ์๋์ผ๋ก ์ถ์ ํ๊ณ ์ ์ฅํ๋ JPA์ ๊ธฐ๋ฅ์ ๋๋ค. ์ํฐํฐ์ ์์์ฑ์ ๋ถ์ฌํ๊ฒ ๋ ๋ ์ํฐํฐ๋ฅผ ๋ณต์ฌํ ๋ณต์ฌ๋ณธ์ ์์ฑํด 1์ฐจ ์บ์์ ์ ์ฅํฉ๋๋ค. ๊ทธ ํ ํธ๋์ญ์ ๋์ ์ํฐํฐ์ ๋ณ๊ฒฝ์ฌํญ์ด ๋ฐ์ํ๊ฒ ๋ ๊ฒฝ์ฐ 1์ฐจ ์บ์์ ์ ์ฅ๋์ด ์๋ ๋ณต์ฌ๋ณธ(์ค๋ ์ท)์ ๋ณ๊ฒฝ์ฌํญ์ด ๋ฐ์๋๋ฉฐ, ์ดํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ด์ฉ์ ๋ฐ์ํ๊ธฐ ์ , ์ปค๋ฐ ๋ฉ์๋๋ฅผ ํธ์ถํ ๋ ํ๋ฌ์ ๋ฉ์๋๊ฐ ํธ์ถ๋๋ฉฐ ๋ณ๊ฒฝ์ ๊ฐ์งํ๊ณ ๋ณ๊ฒฝ์ฌํญ์ด ์๋ ๊ฒฝ์ฐ ์ ๋ฐ์ดํธ ์ฟผ๋ฆฌ๋ฅผ ์ฐ๊ธฐ์ง์ฐ SQL ์ ์ฅ์์ ์์ฑํฉ๋๋ค. ๊ทธ๋ฐ ํ ์ ์ฅ์์ ์๋ ๋ค๋ฅธ ์ฟผ๋ฆฌ๋ค๊ณผ ํจ๊ป ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก ์ปค๋ฐ๋๋ฉด์ ๊ทธ ๋ณ๊ฒฝ ๋ด์ฉ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅ๋์ด ์๋ ์๋ณธ์ ๋ฐ์ํ๊ฒ ๋ฉ๋๋ค.
13) @Annotation์ด๋ ๋ฌด์์ด๊ณ ๊ตฌ์ฒด์ ์ผ๋ก ์ด๋ค ๊ฒ์ด ์๋์ง ์์๋ฅผ ๋ค์ด ์ค๋ช ํด์ฃผ์ค ์ ์์๊น์?
-> ์คํ๋ง ํ๋ ์์ํฌ์์ ์ฃผ์์ ํด๋์ค, ๋ฉ์๋, ํ๋ ๋๋ ๋งค๊ฐ๋ณ์์ ๋ํ ๋ฉํ๋ฐ์ดํฐ(์ ๋ณด๋ฅผ ํจ์จ์ ์ผ๋ก ๊ฒ์ํ๊ธฐ ์ํด ๊ตฌ์กฐํ, ํ์คํํ ๋ฐ์ดํฐ)๋ฅผ ์ ๊ณตํ๊ธฐ ์ํด ์ฌ์ฉ๋ฉ๋๋ค. ์ฃผ์์ ํตํด ๋ฐํ์ ์ ์ฝ๋์ ์ถ๊ฐ ์ ๋ณด๋ฅผ ์ ๋ ฅํ ์ ์์ต๋๋ค.
๊ทธ ์์๋ก @Autowired ์ฃผ์์ ๋ค๊ฒ ์ต๋๋ค. ์ด ์ฃผ์์ ์ ํ๋ฆฌ์ผ์ด์ ์ปจํ ์คํธ๊ฐ ์์ฑ๋ ๋ ์ฃผ์์ด ๋ฌ๋ ค์๋ ๋ฉค๋ฒ๋ณ์ ๋ฑ์ Spring container์ ๋ฑ๋ก๋์ด ์๋ Bean๊ณผ ๋งคํ ์์ผ์ฃผ๋ ์ด๋ ธํ ์ด์ ์ ๋๋ค. ์ด์ธ์๋ ์ ๋ง์ ์ฃผ์์ด ์์ด ์ด๋ฅผ ์ ์ฌ์ ์์ ํ์ฉํด ์ฝ๋์ ํ์ง์ ํฅ์ํ ์ ์์ต๋๋ค.
14) ๊ฐ๋ฐ์๊ฐ ๋๊ธฐ๋ก ํ ์ด์ ์ ๋ํด ๋ง์ํด์ฃผ์ค ์ ์์๊น์?
->
15) ์ธ๋ฑ์ค๋ ๋ฌด์์ด๊ณ ์ผ๋ฐ์ ์ธ ์๋ฆฌ๋ ์ด๋ ํ์ง ์ค๋ช ํด์ฃผ์ค ์ ์์๊น์?
-> ๋ฐฐ์ด์ด๋ ๋ฆฌ์คํธ์์ ์์์ ์์น๋ฅผ ์๋ณํ๊ธฐ ์ํด ์ฌ์ฉํ๋ ์ซ์ ๊ฐ์ ์๋ฏธํฉ๋๋ค. ๋๋ถ๋ถ์ ๊ฒฝ์ฐ ์ธ๋ฑ์ค๋ 0์ผ๋ก ์์ํ๋ฉฐ ์์๊ฐ ์ถ๊ฐ๋๋ฉฐ ์ธ๋ฑ์ค๋ ํจ๊ป ์ฆ๊ฐํฉ๋๋ค. ๋ํ ์์ ์ธ๋ฑ์ค๋ ์ฌ์ฉ์ด ๊ฐ๋ฅํ๋ฐ, ๋ณดํต -1์ ๊ฒฝ์ฐ์๋ ํด๋น ๋ฐ์ดํฐ ๋ชจ์์ ๋งจ ๋ง์ง๋ง์ ์๋ฏธํฉ๋๋ค. ์ ํจํ์ง ์์ ์ธ๋ฑ์ค๋ฅผ ์ฐพ๊ณ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ๋ฐํ์ ์ index out of bounds error๊ฐ ๋ฐ์ํฉ๋๋ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค์์๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฌ์ฉํด ํ ์ด๋ธ์์ ๋ฐ์ดํฐ ๊ฒ์ ์๋๋ฅผ ํฅ์์ํค๊ธฐ ์ํ ๋ชฉ์ ์ผ๋ก ์ฌ์ฉ๋๋ ์๋ฃ๊ตฌ์กฐ์ ๋๋ค. ์ฟผ๋ฆฌ๊ฐ ์คํ๋ ๋ ์ธ๋ฑ์ค๋ฅผ ์ด์ฉํด ์ ์ฒด ํ ์ด๋ธ์ ๊ฒ์ํ ํ์์์ด ํด๋น ์ธ๋ฑ์ค๋ก ์ ๊ทผํ๋ฉด ๋๊ธฐ๋๋ฌธ์ ์ฑ๋ฅ์ ๊ฐ์ ํ ์ ์์ต๋๋ค. ํ์ง๋ง ํ ์ด๋ธ์ ์ปฌ๋ผ์ ๋ณ๊ฒฝ์ด ์์ ๋๋ง๋ค ์ธ๋ฑ์ค๋ ๊ฐ์ด ๋ณ๊ฒฝ๋์ด์ผ ํ๋ฏ๋ก ์ฐ๊ธฐ ์์ ์๋๊ฐ ๋๋ ค์ง ์ ์์ด ์ฟผ๋ฆฌ ์ฑ๋ฅ๊ณผ ์ ์ฅ๊ณต๊ฐ ํจ์จ์ ๊ท ํ์ ์ ๊ณ ๋ คํด์ผ ํฉ๋๋ค.
16) ์ด๋ถํ์์ด ๋ฌด์์ด๊ณ ์๊ฐ๋ณต์ก๋๋ ์ด๋ป๊ฒ ๋๋ฉฐ ๊ทธ ์ด์ ๋ ๋ฌด์์ธ๊ฐ์?
-> ์ด๋ถํ์์ ์์ฐจ์ ์ผ๋ก ์ ๋ ฌ๋ ๋ฆฌ์คํธ๋ ๋ฐฐ์ด ๋ด์์ ๊ฐ์ ๊ฒ์ํ๊ธฐ ์ํด ์ฌ์ฉํ๋ ์๊ณ ๋ฆฌ์ฆ์ ๋๋ค. ์ํ๋ ๊ฐ์ ์ฐพ์ ๋๊น์ง ๋ฐ๋ณต์ ์ผ๋ก ๊ฒ์ ๋ฒ์๋ฅผ ๋ฐ์ผ๋ก ๋๋๊ณ ๊ฒ์์ ์ํํฉ๋๋ค. ์ด๋ถํ์์ ์๊ฐ๋ณต์ก๋๋ O(log n)์ด๋ฉฐ n์ ๋ฐฐ์ด์ ํฌ๊ธฐ๋ฅผ ์๋ฏธํฉ๋๋ค. ์ ์ฒด๋ฅผ ๊ฒ์ํ๋ ๊ฒฝ์ฐ์ O(n)๋ณด๋ค ์์ ์ด์ ๋ ์ด๋ถํ์์ ๊ฒ์์ ์ํํ๊ณ ๋ ํ ๊ฒ์ ๋ฒ์๋ฅผ ๋ฐ์ผ๋ก ์ค์ด๊ธฐ ๋๋ฌธ์ ๋๋ค. ์ด๋ถํ์์ ์์๋ฅผ ์ฐพ๊ธฐ์ํด ๋งค์ฐ ํจ์จ์ ์ธ ์๊ณ ๋ฆฌ์ฆ์ด์ง๋ง, ์์๊ฐ ์์ฐจ์ ์ผ๋ก ์ ๋ ฌ๋์ด์์ด์ผ๋ง ์ฌ๋ฐ๋ฅด๊ฒ ์ฌ์ฉํ ์ ์์ต๋๋ค.
17) ํธ๋ฆฌ, ๊ทธ๋ํ๋ฅผ ๋น๊ตํ์ฌ ์ค๋ช ํด์ฃผ์ค ์ ์์๊น์?
-> ํธ๋ฆฌ์ ๊ทธ๋ํ๋ ์์ ๊ฐ ๊ด๊ณ๋ฅผ ๋ํ๋ด๋ ์๋ฃ๊ตฌ์กฐ์ ๋๋ค. ํธ๋ฆฌ๋ ์์๋ฅผ ๋ ธ๋๋ผ๊ณ ํํํ๋ฉฐ, ๋ถ๋ชจ ๋ ธ๋์ ์์ ๋ ธ๋๋ก ์ด๋ฃจ์ด์ง๊ณ , ๋ถ๋ชจ๊ฐ ์๋ ๋ ธ๋๋ ๋ฃจํธ, ์์์ด ์๋ ๋ ธ๋๋ ๋ฆฌํ์ ๋๋ค. ๊ทธ๋ํ๋ 2๊ฐ ์ด์์ ํญ๋ชฉ์ ๋ํด ๊ฐ ํญ๋ชฉ์ ๋ ธ๋๋ก ํํํ๊ณ ๊ฐ ํญ๋ชฉ ๊ฐ ๊ด๊ณ๋ฅผ ์ฃ์ง๋ผ๊ณ ํฉ๋๋ค. ๋์ ๋น๊ตํด๋ณด๋ฉด, ํธ๋ฆฌ๋ ๋ถ๋ชจ-์์ ๊ด๊ณ๊ฐ ์์ง๋ง ๊ทธ๋ํ๋ ๋ถ๋ชจ-์์์ผ๋ก ํํํ์ง ์์ต๋๋ค. ๋ํ ํธ๋ฆฌ์๋ ๋ฃจํธ๊ฐ ํ๋๋ง ์์ ์ ์๋ ๋ฐ๋ฉด, ๊ทธ๋ํ๋ ์ ํ์ด ์์ต๋๋ค. ํธ๋ฆฌ์์๋ ๊ด๊ณ์ ๋ฐฉํฅ์ด ๋ถ๋ชจ์์ ์์์ผ๋ก ๊ณ ์ ๋์ด ์์ง๋ง, ๊ทธ๋ํ๋ ๋ฐฉํฅ์ด ์๊ฑฐ๋ ์ง์ ํ ์ ์์ต๋๋ค. ํธ๋ฆฌ๋ ๋ ธ๋๊ฐ ์๋ก ํญ์ ์ฐ๊ฒฐ๋์ด ์์ด์ผ ํ์ง๋ง, ๊ทธ๋ํ๋ ๊ผญ ๊ทธ๋ด ํ์๋ ์์ต๋๋ค. ํธ๋ฆฌ๊ฐ ๊ทธ๋ํ์ ๋น๊ตํด ๋ ์ ํ๋ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง๊ณ ์์ด ๊ณ์ธต ๊ตฌ์กฐ๊ฐ ํ์ํ ์๊ณ ๋ฆฌ์ฆ์ ์ฃผ๋ก ์ฌ์ฉ๋๋ ๋ฐ๋ฉด, ๊ทธ๋ํ๋ ๋ค์ํ ์ค์ ์์คํ ์ ๋ํ๋ผ ๋ ์ฃผ๋ก ์ฌ์ฉํฉ๋๋ค.
18) ๊ฐ์ฅ ์ธ์ ๊น๊ฒ ์ฝ์๋ ์ฑ ๊ณผ ๊ทธ ์ด์ ์ ๋ํด ์๋ ค์ฃผ์ค ์ ์์๊น์?
->
19) ์ฆ๊ฒจ ๋ณด๋ ํ ํฌ ์ ํ๋ฒ๋ ๋ด์ค๋ ํฐ๊ฐ ์๋ค๋ฉด ์๋ ค์ฃผ์ค ์ ์์๊น์?
->
20) ๋ชจ๋ ์์์ ์ธ๋ฑ์ค๋ฅผ ๊ฑธ์ง ์๋ ์ด์ ๋ ๋ฌด์์ ๋๊น?-> ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ชจ๋ ์์๋ฅผ ์ธ๋ฑ์ฑํ๋ค๋ฉด ์ ์ฅ๊ณต๊ฐ์ ๋ง์ด ์ฌ์ฉํ๊ณ ๋ณต์ก์ฑ์ด ํฌ๊ฒ ์ฆ๊ฐํ ์ ์๊ธฐ ๋๋ฌธ์ ์์ฃผ ์ฟผ๋ฆฌํ๊ฑฐ๋ ๊ฒ์ํ๋ ํน์ ๋ฐ์ดํฐ์ ์ธ๋ฑ์ฑ์ ํ๋ ๊ฒ์ด ์ฑ๋ฅ ๊ฐ์ ๊ด์ ์์ ๊ฐ์ฅ ํจ์จ์ ์ด๋ฉฐ, ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ณ๊ฒฝ์ฌํญ์ ์ธ๋ฑ์ฑ๋ ๋ฐ์ดํฐ๊ฐ ํฌํจ๋ ๊ฒฝ์ฐ์ ์ธ๋ฑ์ค๋ ๊ฐ์ด ๋ณ๊ฒฝ์ฌํญ์ ๋ฐ์ํด์ผ ํ๋ฏ๋ก ํ์ํ ์์์๋ง ์ธ๋ฑ์ฑํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
21) ๋ณตํฉ ์ธ๋ฑ์ค๋ ๋ฌด์์ธ์ง ์๋ฆฌ๋ฅผ ์ค๋ช ํด์ฃผ์ค ์ ์์๊น์?-> ๋ณตํฉ ์ธ๋ฑ์ค๋ ๋ ๊ฐ ์ด์์ ์ปฌ๋ผ์ ํฉ์ณ์ ์ธ๋ฑ์ค๋ฅผ ๋ง๋๋ ๊ฒ์ ๋งํฉ๋๋ค. ์ฃผ๋ก where์ ์์ and์กฐ๊ฑด์ ๋ง์ด ์ฌ์ฉ๋๋ ์ปฌ๋ผ๋ค์ ์ฌ์ฉํฉ๋๋ค. ๊ฒฐํฉ ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํ ๋ ์ฃผ์ํ ์ ์ ๊ฒฐํฉ ์ธ๋ฑ์ค์ ์ฒซ ๋ฒ์งธ ์ปฌ๋ผ์ ์กฐ๊ฑด์์ด ์๋ค๋ฉด B tree ๊ตฌ์กฐ์ธ ๊ฒฐํฉ ์ธ๋ฑ์ค๋ฅผ ๊ฒ์ํ ์ ์๋ ์ ์ ์ฃผ์ํด์ผ ํฉ๋๋ค.
22) ์ถ์์ ์ค์ํ๊ฒ ์๊ฐํ๋ ๊ฐ์น๊ฐ ์๋ค๋ฉด ๋ฌด์์ธ๊ฐ์?
->
23) ํธ๋์ญ์ ์ด๋ ๋ฌด์์ด๊ณ ์์์ฑ, ์ผ๊ด์ฑ, ๊ณ ๋ฆฝ์ฑ, ์ง์์ฑ์ด๋ ๋ฌด์์ธ์ง ์ค๋ช ํด์ฃผ์ค ์ ์์๊น์?
-> ํธ๋์ ์ ์ด๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋๋ ๊ธฐํ ์์คํ ์์ ๋จ์ผ ์์ ๋จ์๋ก ์ทจ๊ธ๋๋ ์์ ์ ์๋ฏธํฉ๋๋ค. ํธ๋์ ์ ์ ์ค๋ฅ ๋ฑ์ ์ํฉ์ ๋๋นํด ๋ฐ์ดํฐ์ ์ผ๊ด์ฑ๊ณผ ์ ํ์ฑ์ ๋ณด์ฅํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. ํธ๋์ ์ ์ ์์ฑ์ ACID๋ก ๋ํ๋ผ ์ ์์ต๋๋ค. ์์์ฑ์ด๋ ํ๋์ ํธ๋์ ์ ์ด ํ๋์ ์์๋ผ๋ ๋ป์ผ๋ก, ํ๋์ ํธ๋์ ์ ์์์ ์ผ์ด๋๋ ๋ช ๋ น์ด์ ๋ํ ๊ฒฐ๊ณผ๋ ๋ชจ๋ ์์ฑ๋๊ฑฐ๋ ๋ชจ๋ ์คํจํ๋ค๋ ์๋ฏธ์ ๋๋ค. ์ผ๊ด์ฑ์ ํธ๋์ ์ ์ ์ํ ๋ชจ๋ ๋ณ๊ฒฝ์ฌํจ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์คํค๋ง์ ๊ท์น๊ณผ ์ ์ฝ์กฐ๊ฑด์ ๋ฐ๋ผ์ผ ํ๋ฉฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ํธ๋์ ์ ์ ์ฒด์์ ์ ํจํ ์ํ๋ก ์ ์ง๋์ด์ผ ํฉ๋๋ค. ๊ณ ๋ฆฝ์ฑ์ ํธ๋์ ์ ์ด ๋์์ ์คํ๋๋๋ผ๋ ์๋ก ๋ ๋ฆฝ์ ์ผ๋ก ์คํ๋๋ค๋ ๋ป์ด๋ฉฐ ํธ๋์ ์ ๊ฐ ๊ฐ์ญ์ ๋ฐฉ์งํ ์ ์์ต๋๋ค. ์ง์์ฑ์ ํธ๋์ ์ ์ด ์ปค๋ฐ๋๋ฉด ๋ณ๊ฒฝ์ฌํญ์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์๊ตฌ ์ ์ฅ๋๊ณ ์์คํ ์ค๋ฅ ๋ฑ์๋ ์์ค๋์ง ์๋๋ค๋ ํน์ฑ์ ๋๋ค. ์์์ฑ์ด๋ผ๊ณ ๋ ํํํฉ๋๋ค. ์ด๋ฐ ํน์ฑ์ด ์์ผ๋ฏ๋ฅด ํธ๋์ ์ ์ด ์์ ์ ์ด๊ณ ์์ธก ๊ฐ๋ฅํ๋ฉฐ ์ค๋ฅ ๋ฑ์๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ์ผ๊ด๋๊ณ ์ ํํ๊ฒ ์ ์ง๋ฉ๋๋ค.
24) ์ ๊ทํ๋ ๋ฌด์์ด๊ณ , ๋ํ์ ์ธ ์ฅ์ ๊ณผ ๋จ์ ์๋ ๋ฌด์์ด ์์๊น์?
-> ์ ๊ทํ๋ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ค๊ณ ์ ์ค๋ณต ๋๋ ๋ถ์ผ์น๋ฅผ ์ต์ํํ๊ธฐ ์ํด ๋ฐ์ดํฐ๋ฅผ ํ์คํ, ๊ตฌ์กฐํ๋ ํ์์ผ๋ก ๋ณํํ๋ ํ๋ก์ธ์ค์ ๋๋ค. ๊ฐ๊ฐ์ ์ ๊ทํ ์กฐ๊ฑด์ ๋ง์กฑํ ํ ์ด๋ธ์ ~ ์ ๊ทํ์ด๋ผ๊ณ ํต์นญํ๋ฉฐ, ์ 1 ์ ๊ทํ๋ ๊ฐ๊ฐ์ ์ปฌ๋ผ์ ํ๋์ ๊ฐ๋ง ์์ ์ ์๋๋ก ๋ถํดํ๋ ๊ฒ์ ๋๋ค. ์กฐํ ์ ๊ฒ์ ์ฑ๋ฅ์ด ์ ํ๋์ง ์์ต๋๋ค. ์ 2 ์ ๊ทํ(Partial dependency๋ฅผ ์ ๊ฑฐํ ํ ์ด๋ธ)๋ ํ ์ด๋ธ์ ์ฃผ์ ์ ์ด์ธ๋ฆฌ์ง ์๋ ์ปฌ๋ผ์ ๋ค๋ฅธ ํ ์ด๋ธ๋ก ๋ถ๋ฆฌํ๋ ๊ฒ์ ๋งํฉ๋๋ค. ๋ค๋ง ํ๋์ ํ ์ด๋ธ์์ ๋ชจ๋ ๊ฐ์ ๋ณผ ์ ์๋ค๋ ๋จ์ ์ด ์๊ธฐ๊ฒ ๋ฉ๋๋ค. + composite primary key ~ partial dependency๋ ๋ณตํฉํค์ ์ข ์๋๋(๋ณตํฉ ํค์ ๋ฐ๋ผ ๊ฐ์ด ๊ฒฐ์ ๋๋) ์ปฌ๋ผ์ด ์๋ ๊ฒฝ์ฐ๋ฅผ ๋งํฉ๋๋ค. ์ 3 ์ ๊ทํ๋ ๋ณตํฉ ํค๊ฐ ์๋ ์ผ๋ฐ ์ปฌ๋ผ์ ์ข ์๋ ์ปฌ๋ผ์ ๋ค๋ฅธ ํ ์ด๋ธ๋ก ๋ถ๋ฆฌํ๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. ์ ๊ทํ๋ ๋ฐ์ดํฐ์ ์ค๋ณต์ ์ ๊ฑฐํ์ฌ ์ผ๊ด์ฑ๊ณผ ์ ํ์ฑ์ ํฅ์ํ ์ ์๊ณ ์ ์ฅ๊ณต๊ฐ์ ์ต์ํํ ์ ์๋ค๋ ์ฅ์ ์ด ์์ต๋๋ค. ๋จ์ ์ผ๋ก๋ ํ ์ด๋ธ์ ๊ฐ์๊ฐ ์ฆ๊ฐํ๋ฏ๋ก ๋ณต์ก๋๊ฐ ์ฆ๊ฐํ๊ณ ๊ฒ์์ ์ํด ์ฌ๋ฌ ํ ์ด๋ธ์ ์กฐ์ธํ๊ณ ๋ณด๋ค ๋ณต์กํ ์ฟผ๋ฆฌ๋ฅผ ์ฌ์ฉํด์ผ ํ๊ธฐ ๋๋ฌธ์ ๊ฒ์ ์ฑ๋ฅ์ด ์ ํ๋ ์ ์์ต๋๋ค.
25) HTTP์ ๋นํด HTTPS๊ฐ ๋ ์์ ํ ์๋ฆฌ๋ฅผ ์ค๋ช ํด์ฃผ์ค ์ ์์๊น์?
-> 1. ์ํธํ : HTTPS๋ TLS ๋๋ SSL๊ณผ ๊ฐ์ ๋ณด์ ์ํธํ ํ๋กํ ์ฝ์ ์ฌ์ฉํด ํด๋ผ์ด์ธํธ ์๋ฒ ๊ฐ ํต์ ๋๋ ๋ฐ์ดํฐ๋ฅผ ๋ชจ๋ ์ํธํํฉ๋๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ์ 3์๊ฐ ๋ฐ์ดํฐ๋ฅผ ๊ฐ๋ก์ฑ๋๋ผ๋ ์ฝ๋ ๊ฒ์ด ์ด๋ ต์ต๋๋ค.
2. ์ธ์ฆ : HTTPS๋ ์ฐ๊ฒฐํ๋ ค๋ ์น ์ฌ์ดํธ๊ฐ ์ธ์ฆ๋๊ณ ์ ๋ขฐํ ์ ์๋ ์ธ์ฆ๊ธฐ๊ด์ด ๋ฐ๊ธํ ์ ํจํ ์ธ์ฆ์๊ฐ ์๋์ง ํ์ธํฉ๋๋ค. ์ด๋ฅผ ํตํด ํด๋น ์น์ฌ์ดํธ๊ฐ ๊ฐ์ง์ธ์ง ํ๋จํ ์ ์๊ณ ์๋ํ ์น์ฌ์ดํธ์ ํต์ ํ ์ ์์ต๋๋ค.
3. ๋ฌด๊ฒฐ์ฑ : HTTPS๋ ๋ฉ์ธ์ง ์ธ์ฆ ์ฝ๋(MAC)๋ฅผ ์ฌ์ฉํด ์ ์ก๋๋ ๋ฐ์ดํฐ์ ๋ณ์กฐ ๋๋ ์์ ์ ๊ฐ์งํด ์ ์ก๋๋ ๋ฐ์ดํฐ์ ๋ฌด๊ฒฐ์ฑ์ ๋ณด์ฅํฉ๋๋ค. ์ด๋ฅผ ํตํด ์ค๊ฐ์์ ๋ฉ์ธ์ง๋ฅผ ์์ ํ๋ ์๋ฏธ๊ฐ ์์ด์ ธ ๋ฌด๊ฒฐ์ฑ์ ๋ณด์ฅํ ์ ์์ต๋๋ค.
26) TCP 3 way handshake๋ ๋ฌด์์ธ์ง ์ค๋ช ํด์ฃผ์ค ์ ์์๊น์?
-> TCP 3 way handshake๋ TCP(์ ์ก ์ ์ด ํ๋กํ ์ฝ)์์ ๋คํธ์ํฌ์ ๋ ์ฅ์น ๊ฐ ์ฐ๊ฒฐ์ ์ค์ ํ๋ ๋ฐ ์ฌ์ฉํ๋ ํ๋ก์ธ์ค์ด๋ฉฐ, ์ด 3๋จ๊ณ๋ก ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค.
1. SYN(๋๊ธฐํ) : ํด๋ผ์ด์ธํธ๋ ์๋ฒ์ SYN ํจํท์ ๋ณด๋ ๋๋ค. ์ด๋ ํด๋ผ์ด์ธํธ๋ SYN/ACK ์๋ต์ ๊ธฐ๋ค๋ฆฌ๋ SYN_SENT ์ํ๊ฐ ๋ฉ๋๋ค.
2. ์๋ฒ๋ SYN์์ฒญ์ ๋ฐ๊ณ ํด๋ผ์ด์ธํธ์๊ฒ ์์ฒญ์ ์๋ฝํ๋ค๋ ACK(์๋ต ๋ฌธ์, ๊ธ์ ์๋ต ๋ฌธ์)์ SYN flag๊ฐ ์ค์ ๋ ํจํท์ ๋ฐ์กํ๊ณ ํด๋ผ์ด์ธํธ๊ฐ ACK๋ก ์๋ตํ๊ธฐ๋ฅผ ๊ธฐ๋ค๋ฆฐ๋ค. ์๋ฒ๋ SYN_RECEIVED ์ํ๊ฐ ๋๋ค.
3. ํด๋ผ์ด์ธํธ๋ ์๋ฒ์๊ฒ ACK๋ฅผ ๋ณด๋ด๊ณ ์ดํ ์ฐ๊ฒฐ์ด ์ด๋ฃจ์ด์ง๊ณ ๋ฐ์ดํฐ๋ฅผ ํต์ ํ ์ ์๋ค. ์๋ฒ๋ ESTABLISHED ์ํ๊ฐ ๋๋ค.
TCP 3 way handshake๋ ์ฐ๊ฒฐ๋ง ์ค์ ํ๊ณ ๋ฐ์ดํฐ ์ ์ก์ ์์ ์ฑ์ ๋ณด์ฅํ์ง ์์ผ๋ฏ๋ก ์์ ์ฑ์ ๋ณด์ฅํด์ฃผ๋ ๋ค๋ฅธ ๊ธฐ์ ์ ํจ๊ป ์ฌ์ฉํด์ผ ํฉ๋๋ค.
27) ํฌํธํด๋ฆฌ์ค์์ ์๊ฐ๋ณต์ก๋๋ฅผ ๋ฎ์ถ ์ฌ๋ก๊ฐ ์๋ค๋ฉด ์ค๋ช ํด์ฃผ์ค ์ ์์๊น์?
->
28) ์ต๊ทผ์ ๋ณธ ๊ธฐ์ ์ํฐํด์ ๋ํด ์ค๋ช ํด์ฃผ์ค ์ ์์๊น์?
->
29) TCP ์ UDP ๋ฅผ ๋น๊ตํ์ฌ ์ค๋ช ํด์ฃผ์ค ์ ์์๊น์?
์ฐธ๊ณ : https://coding-factory.tistory.com/614
-> TCP์ UDP๋ OSI ํ์ค๊ณผ TCP/IP ๋ชจ๋ธ์ ์ ์ก๊ณ์ธต์์ ์ฌ์ฉ๋๋ ํ๋กํ ์ฝ์ ๋๋ค. ์ ์ก๊ณ์ธต์ ์ก์์ ์ ๊ฐ ํต์ ์๋น์ค๋ฅผ ์ ๊ณตํ๊ณ ํจํท ์ค๋ฅ๋ฅผ ๊ฒ์ฌํ๋ฉฐ ์ฌ์ ์ก์๊ตฌ ์ ์ด ๋ฑ์ ๋ด๋นํ๋ ๊ณ์ธต์ ๋๋ค. ๋ ํ๋กํ ์ฝ์ ํฌํธ ๋ฒํธ๋ฅผ ์ด์ฉํด ์ฃผ์๋ฅผ ์ง์ ํ๋ ๊ฒ๊ณผ ๋ฐ์ดํฐ ์ค๋ฅ ๊ฒ์ฌ๋ฅผ ์ํํ๋ค๋ ๊ณตํต์ ์ด ์์ผ๋, ๋ฐ์ดํฐ์ ์ ํ์ฑ์ ์ฐ์ ํ ์ง, ์ ์์ฑ์ ์ฐ์ ํ ์ง์ ๋ฐ๋ผ ๊ทธ ์ญํ ์ ๊ตฌ๋ถํ ์ ์์ต๋๋ค.
TCP๋ ์ฐ๊ฒฐ ์งํฅ ํ๋กํ ์ฝ๋ก์จ, ๋ฐ์ดํฐ ํต์ ์ ๋ ์ฅ์น ๊ฐ ์ฐ๊ฒฐ์ ์ค์ ํฉ๋๋ค. ์ด ์ฐ๊ฒฐ์ ๋ฐ์ดํฐ๊ฐ ํต์ ๋๋ ๋์ ์ ์ง๋๊ณ , ๋ง์ฝ ํจ๋ฐ์ด ์ค๊ฐ์ ์ ์ค๋๋ ๊ฒฝ์ฐ ACK๋ฅผ ๋ณด๋ด์ง ์์์ผ๋ก ์ ํํ ๋ฐ์ดํฐ๊ฐ ๋๋๋ก ์ฌ์ ์ก ํฉ๋๋ค. ์ฃผ๋ก ์น, ๋ฉ์ผ, ํ์ผ ๊ณต์ ๋ฑ์์ ์ฌ์ฉํฉ๋๋ค.
UDP๋ ์ ์ก๊ณ์ธต์ ๋น์ฐ๊ฒฐ ์งํฅ ํ๋กํ ์ฝ์ ๋๋ค. ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์ ๋ ์ฅ์น ์ฐ๊ฒฐ์์ด ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๋ฏ๋ก TCP๋ณด๋ค ๋น ๋ฅธ ์ ์ก์ ํ ์ ์์ง๋ง, ๋ฐ์ดํฐ์ ์ ํ์ฑ์ด ๋จ์ด์ง ์ ์์ต๋๋ค. ๋ํ UDP๋ ์ค๊ฐ์ ํจํท์ด ์ ์ค๋๊ฑฐ๋ ์์ ๋์ด๋ ์ฌ์ ์ก์ ํ์ง ์์ต๋๋ค. VoIP ๋ฑ์ ์๊ฐ ๋๊ธฐ๊ฐ ์ค์ํ ์๋น์ค์์ UDP๋ฅผ ์ฌ์ฉํฉ๋๋ค.
30) Base64 ์ธ์ฝ๋ฉ์ด๋ ๋ฌด์์ธ๊ฐ์?
-> Base64 ์ธ์ฝ๋ฉ์ ์ด์ง ๋ฐ์ดํฐ๋ฅผ ์์คํค ๋ฌธ์์ด ํ์์ผ๋ก ๋ณํํ๋ ๊ฒ์ ๋งํฉ๋๋ค. ์์คํค ๋ฌธ์ ํ๋๊ฐ 64์ง๋ฒ ์ซ์ ํ๋๋ฅผ ์๋ฏธํฉ๋๋ค. 8๋นํธ ๋ฐ์ดํธ 3๊ฐ๋ฅผ 6๋นํธ์ฉ 4๊ฐ๋ก ์ชผ๊ฐ Base64 ์ฝ๋ 4๊ฐ๋ก ๋ฐ๊ฟ ํํํ ์ ์์ต๋๋ค. base 64๋ฅผ ์ฌ์ฉํ๋ ์ด์ ๋ก๋ ์์คํค ๋ฌธ์๋ก ํํํ๋ฏ๋ก ํ ์คํธ ๋ฐ์ดํฐ๋ง ํ์ฉํ๋ ์์คํ ๊ณผ๋ ํธํ์ด ๊ฐ๋ฅํ ์ ๊ณผ URL์์ ์ฌ์ฉ์ด ์ด๋ ค์ด ํน์๋ฌธ์ ๋ฑ์ URL ์์ ํ ์คํธ๋ก ํํํด ์ฌ์ฉํ ์ ์๋ค๋ ๊ฒ์์ base64๋ฅผ ์ฌ์ฉํฉ๋๋ค.
31) ์ฆ๊ฒ๊ณ ํ๋ณตํ๋ ๊ฒฝํ์ ํ๋ ์ด์ผ๊ธฐํด์ฃผ์ค ์ ์์๊น์?
->
32) ํ๋ก์ธ์ค์ ์ค๋ ๋๋ฅผ ๋น๊ตํ์ฌ ์ค๋ช ํด์ฃผ์ค ์ ์์๊น์?
-> ํ๋ก์ธ์ค๋ ์ปดํจํฐ์์ ์ฐ์์ ์ผ๋ก ์คํ๋๊ณ ์๋ ํ๋ก๊ทธ๋จ์ ์๋ฏธํฉ๋๋ค. ๊ฐ ํ๋ก์ธ์ค๋ ๋ค๋ฅธ ํ๋ก์ธ์ค์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ณต์ ํ์ง ์์ต๋๋ค. ์ค๋ ๋๋ ํ๋ก์ธ์ค ๋ด ์์ ์คํ ๋จ์๋ก์จ, ํ๋ก์ธ์ค๋ ์ค๋ ๋๋ฅผ ํ๋ ์ด์ ๊ฐ์ง ์ ์๊ณ ์์ ํ๋ก์ธ์ค์ ๋์ผํ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์์ ์คํ๋ฉ๋๋ค. ํ๋ก์ธ์ค๋ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ๊ฐ ๋ ๊ฐ๊ฐ์ ์ฝ๋/๋ฐ์ดํฐ/์คํ/ํ์ ํ ๋น๋ฐ๊ฒ ๋๊ณ , ์ค๋ ๋๋ ์คํ๋ง ๋ณ๋๋ก ํ ๋น๋ฐ๊ณ , ๊ทธ์ธ ๋๋จธ์ง ์์ญ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ณต์ ํฉ๋๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ์ค๋ ๋ ํ๋์์ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ ๊ฒฝ์ฐ ๋ค๋ฅธ ์ค๋ ๋๋ ๋ชจ๋ ์ข ๋ฃ๋ฉ๋๋ค. ๋ํ ๋ฉํฐ์ค๋ ๋์ ๊ฒฝ์ฐ ์คํ ์์๋ฅผ ๊ฒฐ์ ํ ์ ์์ด ๋๊ธฐํ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๊ธฐ ๋๋ฌธ์ ๋ฝ ๋ฐ ๋ฎคํ ์ค, ์ธ๋งํฌ์ด ๋ฑ์ ๋๊ธฐํ ๋ฉ์ปค๋์ฆ์ ํ์ฉํด ํ ๋ฒ์ ํ๋์ ์ค๋ ๋๋ง ๊ณต์ ๋ฆฌ์์ค์ ์ ๊ทผํ๋๋ก ๋ง๋ค์ด ์ค ์ ์์ต๋๋ค.
33) ๋๊ธฐ์ ๋น๋๊ธฐ๋ฅผ ๋น๊ตํ์ฌ ์ค๋ช ํด์ฃผ์ค ์ ์์๊น์?
-> ๋๊ธฐ์ ๋น๋๊ธฐ๋ ํ๋ก์ธ์ค์ ์ค๋ ๋ ๊ฐ ํต์ ์ ๊ด๋ จ๋ ๊ฐ๋ ์ ๋๋ค. ๋๊ธฐํ๋ ์ํธ ํฉ์๋ ์์๋๋ก ํ๋ก์ธ์ค ๋๋ ์ค๋ ๋์ ์คํ์ ์กฐ์ ํ๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. ๋๊ธฐํ๋ ๋ค๋ฅธ ํ๋ก์ธ์ค๋ ์ค๋ ๋๊ฐ ์์ํ๊ธฐ ์ ์ ๋จผ์ ์์ ์ค์ด๋ ํ๋ก์ธ์ค, ์ค๋ ๋์ ์์ ์ด ์๋ฃ๋์ด์ผ ํฉ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ๋ฝ, ์ธ๋งํฌ์ด ๋ฐ ๋ชจ๋ํฐ ๋ฉ์ปค๋์ฆ์ ์ฌ์ฉํด ๋ฌ์ฑํฉ๋๋ค.
๋น๋๊ธฐ๋ ๋ฏธ๋ฆฌ ์ ์๋ ์์๋ ํ์ด๋ฐ ์์ด ์งํ๋๋ ํ๋ก์ธ์ค, ์ค๋ ๋ ๊ฐ ํต์ ์ ์๋ฏธํฉ๋๋ค. ๊ฐ ํ๋ก์ธ์ค์ ์ค๋ ๋๋ ๋ ๋ฆฝ์ ์ผ๋ก ์๋ํ๋ฉฐ ์ธ์ ๋ ์ง ๋ฐ์ดํฐ๋ฅผ ํต์ ํ ์ ์์ต๋๋ค. ํ๋ก์ธ์ค๋ ์ค๋ ๋๊ฐ ์๋ก ๋ค๋ฅธ ์ฑ๋ฅ ํน์ฑ์ ๊ฐ์ง๊ณ ์๊ฑฐ๋ ์์๋ฅผ ์๊ฒฉํ๊ฒ ์กฐ์ ํ ํ์๊ฐ ์๋ ๊ฒฝ์ฐ ์ ์ฉํฉ๋๋ค.
34) ํ๋ค๊ณ ์ฝ์ง ์์์ง๋ง ๊ทน๋ณตํ ๊ฒฝํ์ ํ๋ ์ด์ผ๊ธฐํด์ฃผ์ค ์ ์์๊น์?
->
35) ๋์์ฑ๊ณผ ๋ณ๋ ฌ์ฑ์ ๋น๊ตํ์ฌ ์ค๋ช ํด์ฃผ์ค ์ ์์๊น์?
-> ๋์์ฑ์ ์ฌ๋ฌ ์์ ๋๋ ํ๋ก์ธ์ค๊ฐ ๋์์ ์คํ๋ ์ ์๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. CPU๊ฐ ์์ ๋ง๋ค ์๊ฐ์ ๋ถํ ํด ์ ์ ํ๊ฒ context swiching์ ํตํด ๋์์ ์คํ๋๋ "๊ฒ์ฒ๋ผ" ๋ณด์ ๋๋ค. ํต์ฌ ๋ชฉํ๋ ์ ํด ์๊ฐ์ ์ต์ํํ๋ ๊ฒ์ ๋๋ค. ํ๋ก์ธ์ค, ์ค๋ ๋๊ฐ I/O ์์ ๋๋ DB ํธ๋์ ์ ๋ฑ์ ์คํ์ ๊ธฐ๋ค๋ฆฌ๋ ๋์ ๋ค๋ฅธ ํ๋ก์ธ์ค, ์ค๋ ๋๋ CPU ํ ๋น์ ๋ฐ์ต๋๋ค. ์ด๋ฌํ ์ผ๋ จ์ ์์ ์ ํ๋ ์ด์์ ์ฝ์ด์์ ์คํ๋ฉ๋๋ค.
๋ณ๋ ฌ์ฑ์ด๋ ๋์์ฑ๊ณผ๋ ๋ฌ๋ฆฌ ์ฌ๋ฌ ์์ ์ ์ฌ๋ฌ ์ฝ์ด, ํ๋ก์ธ์ค, ๋ณ๋์ ์ปดํจํฐ ๋ฑ์์ ๋์์ ์คํํ๋ ๊ฒ์ ๋งํ๋ฉฐ ๋ณ๋ ฌ ์์คํ , ๋๋ ๋ถ์ฐ ์ปดํจํ ์์คํ ์์๋ ์ฌ๋ฌ ํ๋ก์ธ์ ๋๋ ์ฝ์ด๊ฐ ํจ๊ป ์๋ํด ๋ณ๋ ฌ ์ฒ๋ฆฌ๋ฅผ ํ๊ณ , ์์ ์ ๋ ์์ ๋จ์๋ก ๋๋๋๋ค. ๋๋ ์ง ๊ฐ ๋ถ๋ถ์ ๋ค๋ฅธ ํ๋ก์ธ์ ๋๋ ์ฝ์ด์ ํ ๋นํด ์์ ์ ์ํํฉ๋๋ค.
๊ทธ๋ฌ๋ฏ๋ก ๋์์ฑ์ ๋จ์ผ ํ๋ก์ธ์์์๋ ๋ฌ์ฑํ ์ ์์ง๋ง, ๋ณ๋ ฌ์ฑ์ ๋ฌ์ฑํ๊ธฐ ์ํด์๋ ์ฌ๋ฌ ํ๋ก์ธ์ ๋๋ ์ฝ์ด๊ฐ ํ์ํฉ๋๋ค.
36) ์ฐ๋ฆฌ ํ์ฌ์ ์ง์ํ ๋๊ธฐ๋ฅผ ๋ง์ํด์ฃผ์ค ์ ์์๊น์?
->
37) JVM ์ด๋ ๋ฌด์์ด๊ณ ์ ํ์ํ์ง ์ค๋ช ํด์ฃผ์ค ์ ์์๊น์?
-> JVM์ด๋ Java Virtual Machine์ ์ฝ์์
๋๋ค. ์ด์์ฒด์ ์ Java ํ๋ก๊ทธ๋จ ์ฌ์ด์ ์๋ ์ํํธ์จ์ด ๊ณ์ธต์ด๋ฉฐ Java ์ฝ๋๋ฅผ ์คํํฉ๋๋ค. Java ์ดํ๋ฆฌ์ผ์ด์
์ด ์ปดํ์ผ๋๋ฉด JVM์ด ์ค์น๋ ๋ชจ๋ ์์คํ
์์ ์คํํ ์ ์๋ ๋ฐ์ดํธ์ฝ๋๋ก ๋ณํ๋ฉ๋๋ค. JVM์ ๋ฐ์ดํธ์ฝ๋๋ฅผ ํด์ํ๊ณ ๊ธฐ๊ณ์ด๋ก ๋ณํํฉ๋๋ค.
1.ํ๋ซํผ ๋
๋ฆฝ์ฑ : JVM์ ๋ฐ์ดํธ์ฝ๋๋ฅผ ๊ธฐ๊ณ์ด๋ก ๋ณํํ๋ ์ญํ ์ ํ๊ธฐ ๋๋ฌธ์ Java ์ดํ๋ฆฌ์ผ์ด์
์ ํ๋์จ์ด๋ ์ด์ ์ฒด์ ์ ๊ด๊ณ์์ด JVM๋ง ์ค์น๋์ด ์๋ค๋ฉด ์คํํ ์ ์์ต๋๋ค.
2.๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ : JVM์ ๋ฉ๋ชจ๋ฆฌ ํ ๋น ๋ฐ ๊ฐ๋น์ง ์์ง์ ๊ด๋ฆฌํ๋ฏ๋ก ๊ฐ๋ฐ์๊ฐ ๋ฉ๋ชจ๋ฆฌ๋ก๋ถํฐ ์์ ๋กญ๊ฒ ์ฝ๋๋ฅผ ์์ฑํ ์ ์์ต๋๋ค.
3.๋ณด์ : JVM์๋ ์
์ฑ ์ฝ๋๊ฐ ๋ฏผ๊ฐํ ๋ฆฌ์์ค์ ์์ธ์ค๋ฅผ ๋ฐฉ์งํ ์ ์๋ ๋ณด์ ๊ด๋ฆฌ์๋ฅผ ํฌํจ๋์ด ์์ต๋๋ค.
4.์ฑ๋ฅ ์ต์ ํ : JVM์๋ ๋ฐ์ดํธ์ฝ๋ ์คํ์ ๋์ ์ต์ ํํด ์ฑ๋ฅ์ ํฅ์์ํฌ ์ ์๋ JIT ์ปดํ์ผ๋ฌ๊ฐ ํฌํจ๋์ด ์์ต๋๋ค.
38) Java๊ฐ ์ปดํ์ผ๋๋ ๊ณผ์ ์ ์ด๋ป๊ฒ ๋๋์ง ์ค๋ช ํด์ฃผ์ค ์ ์์๊น์?
-> 1. ์์ค์ฝ๋ ์์ฑ : java ๋ฌธ๋ฒ์ ๋ฐ๋ผ ํ์ฅ์๊ฐ .java์ธ ํ์ผ์ ์์ฑ๋ฉ๋๋ค. ๊ฐ ํ์ผ์ ํ๋ ์ด์์ ํด๋์ค๋ฅผ ์ ์ํ ์ ์์ต๋๋ค. 2. ์ปดํ์ผ : java ์ปดํ์ผ๋ฌ๋ ์์ค์ฝ๋๋ฅผ ๋ฐ์ดํธ์ฝ๋๋ก ๋ณํํฉ๋๋ค. 3. ํด๋์ค ํ์ผ ์์ฑ : ๊ฐ ์์ค ํ์ผ์ ์ปดํ์ผ๋ฌ์ ์ํด ํ๋์ ํด๋์ค ํ์ผ๋ก ๋ณํ๋ฉ๋๋ค. ํด๋์ค ํ์ผ์ .class ํ์ฅ์๋ฅผ ๊ฐ์ง ์ด์ง ํ์ ํ์ผ๋ก, JVM์์ ์คํ๋ ์ ์๋ ํ์์ผ๋ก ๋ณํ๋ ๋ฐ์ดํธ์ฝ๋๋ฅผ ํฌํจํฉ๋๋ค. 4. ํด๋์ค ๋ก๋ฉ : ํด๋์ค ํ์ผ์ JVM์์ ๋ก๋๋ฉ๋๋ค. ์ด ๋ ํด๋์ค ๋ก๋๊ฐ ํด๋์ค ํ์ผ์ ์ฝ์ด JVM ๋ฉ๋ชจ๋ฆฌ์ ํด๋์ค ์ ์๋ฅผ ๋ก๋ํฉ๋๋ค. 5. ๋ฐ์ดํธ์ฝ๋ ๊ฒ์ฆ : ๋ก๋๋ ํด๋์ค ๊ฒ์ฆ ๊ณผ์ ์์ ์ฝ๋ ์์ ์ฑ๊ณผ ๋ณด์์ฑ์ ํ์ธํฉ๋๋ค. 6. JIT ์ปดํ์ผ : JVM์ ๋ฐ์ดํธ์ฝ๋๋ฅผ ์ต์ ํํ๊ธฐ ์ํด JIT ์ปดํ์ผ๋ฌ๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์คํ๋๋ ์ฝ๋์ ์ผ๋ถ๋ฅผ ๊ธฐ๊ณ์ด๋ก ๋ณํํด ์ฑ๋ฅ์ ๊ฐ์ ํฉ๋๋ค. 7. ์คํ : JVM์ ์ต์ ํ๋ ๋ฐ์ดํธ์ฝ๋๋ฅผ ์คํํฉ๋๋ค.
39) ์์ผ๋ก 3๊ฐ์, 6๊ฐ์, 1๋ ๋์ ์ด๋ค ๊ฒ์ ๊ณต๋ถํ ๊ณํ์ธ์ง, ๊ทธ๋ฆฌ๊ณ ๊ทธ๋ฌํ ๊ณํ์ ์ธ์ด ์ด์ ๋ ๋ฌด์์ธ์ง ์๋ ค์ฃผ์ค ์ ์์๊น์?
->
40) JVM์ ์คํ๊ณผ ํ๋ฉ๋ชจ๋ฆฌ ์์ญ์ ๋ํด ์๋ ๋งํผ ์ค๋ช ํด์ฃผ์ค ์ ์์๊น์?
-> 1. ์คํ : ๋ฉ์๋ ํธ์ถ๊ณผ ๊ด๋ จ๋ ์ ๋ณด๋ฅผ ์ ์ฅํ๋ ์์ญ์ ๋๋ค. ๋ฉ์๋๊ฐ ํธ์ถ๋ ๋๋ง๋ค ์๋ก์ด ํ๋ ์์ด ์คํ์ ์์ฑ๋๋ฉฐ, ์ด ํ๋ ์์ ๋ฉ์๋์์ ์ฌ์ฉ๋๋ ๋ก์ปฌ ๋ณ์, ๋งค๊ฐ๋ณ์, ๋ฉ์๋์ ๋ฐํ ๊ฐ ๋ฑ์ ์ ์ฅํฉ๋๋ค. ๋ฉ์๋๊ฐ ์คํ์ ๋ง์น๋ฉด ํด๋น ํ๋ ์์ด ์คํ์์ ์ ๊ฑฐ๋ฉ๋๋ค.
2. ํ : ๊ฐ์ฒด์ ๋ฐฐ์ด์ด ์ ์ฅ๋๋ ์์ญ์ ๋๋ค. ๊ฐ์ฒด๋ new ์ฐ์ฐ์๋ก ์์ฑ๋๋ฉฐ, ํ์ ์์ฑ๋ ๊ฐ์ฒด๋ ๊ฐ๋น์ง ์ปฌ๋ ํฐ๊ฐ ์์งํ ๋๊น์ง ์ ์ฅ๋์ด ์์ต๋๋ค. ํ์ JVM์์ ๋ฉ๋ชจ๋ฆฌ ํฌ๊ธฐ๋ฅผ ์ค์ ํ ์ ์์ต๋๋ค. ๊ฐ์ฒด๊ฐ ์์ฑ๋๋ฉด ํ์์ ๊ณ ์ ํ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๊ฐ ํ ๋น๋๋ฉฐ, ์ด ์ฃผ์๋ฅผ ์ฐธ์กฐํ๋ ๋ณ์๋ ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. ํ ๋ฉ๋ชจ๋ฆฌ๋ ๊ฐ ๊ฐ์ฒด๋ง๋ค ํ์ํ ํฌ๊ธฐ๋งํผ ๋์ ์ผ๋ก ํ ๋น๋๋ฉฐ, JVM์ ๊ฐ๋น์ง ์ปฌ๋ ํฐ๋ฅผ ์ฌ์ฉํด ํ์ํ์ง ์์ ๊ฐ์ฒด๋ฅผ ์ ๊ฑฐํฉ๋๋ค.
์คํ์ ๋๋ฌด ๋ง์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋นํ๋ฉด StackOverflowError, ํ์ ๋๋ฌด ๋ง์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋นํ๋ฉด OutOfMemoryError๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค.
41) ํด๋์ค์ ์ธ์คํด์ค์ ์ฐจ์ด์ ๋ํด ์ค๋ช ํด์ฃผ์ค ์ ์์๊น์?
-> ํด๋์ค๋ ๊ฐ์ฒด๋ฅผ ๋ง๋ค๊ธฐ ์ํ ์ฒญ์ฌ์ง, ํ์ ๋๋ค. ํด๋์ค๋ ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ ๋ฐ ์ฌ์ฉํ๋ ์์ฑ๊ณผ ๋ฉ์๋๋ฅผ ์ ์ํฉ๋๋ค. ์ธ์คํด์ค๋ ํด๋์ค์์ ์์ฑ๋ ๊ฐ์ฒด๋ฅผ ๋งํฉ๋๋ค. ํด๋์ค๋ฅผ ์ด์ฉํด ์ค์ ๋ก ๋ฉ๋ชจ๋ฆฌ์ ํ ๋น๋ ๊ฒ์ด ์ธ์คํด์ค์ ๋๋ค. ์ธ์คํด์ค๋ ํด๋์ค์์ ์ ์๋ ์์ฑ๊ณผ ๋ฉ์๋๋ฅผ ๊ฐ์ง๊ณ ๊ธฐ๋ฅ์ ์ํํ ์ ์์ต๋๋ค.
42) Spring Security์ ๊ตฌ์กฐ์ JWT ๋ฐ๊ธ ๊ณผ์ ์ ๋ํด ์ค๋ช ํด์ฃผ์ค ์ ์์๊น์?
-> ์คํ๋ง ์ํ๋ฆฌํฐ๋ ์ธ์ฆ๊ณผ ๊ถํ๋ถ ๊ตฌ์กฐ๋ก ๋๋ ๋ณผ ์ ์์ต๋๋ค. ์ธ์ฆ์ AuthenticationManager๊ฐ ์ฒ๋ฆฌํด์ฃผ๋ฉฐ, ๋งค๋์ ๋ ์ฌ๋ฌ AuthenticationProvider๋ฅผ ๊ฐ์ง ์ ์์ต๋๋ค. ๊ฐ๊ฐ์ ๊ณต๊ธ์๋ ๋ค์ํ ์ธ์ฆ๋ฐฉ์(ex: JWT, Form login, OAuth2 ๋ฑ)์ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค.
Authorization์ ๊ถํ์ ๋ถ์ฌํ๋ ๊ณผ์ ์
๋๋ค. AccessDecisionManager๊ฐ ์ฒ๋ฆฌํด์ฃผ๋ฉฐ, ๋งค๋์ ๋ ์ฌ๋ฌ AccessDecisionVoter๋ฅผ ๊ฐ์ง ์ ์๊ณ , ๊ฐ Voter๋ ๊ถํ์ ๋ํ ๊ฒฐ์ ์ ๋ด๋ฆฝ๋๋ค.
JWT๋ ์ธ์ฆ ๋ฐฉ๋ฒ ์ค ํ๋๋ก Base64๋ก ์ธ์ฝ๋ฉ๋ JSON ๊ฐ์ฒด์ด๋ฉฐ, Header, Payload, Signature ์ธ ๋ถ๋ถ์ผ๋ก ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค. ์ฌ์ฉ์๊ฐ ์ธ์ฆ์ ๋ณด๋ฅผ ์
๋ ฅํ๋ฉด, ์ธ์ฆ ๊ณต๊ธ์๊ฐ ์ธ์ฆ์ ์ํํ๊ณ ์ฑ๊ณต ์ ํ ํฐ์ ๋ฐ๊ธํฉ๋๋ค. ํด๋ผ์ด์ธํธ๊ฐ ๋ณ์กฐํ ์ ์๊ณ , ํ ํฐ์ HTTP ํค๋์ ๋ด์ ์์ฒญ์ ๋ณด๋
๋๋ค. ์๋ฒ๋ ์์ฒญ์ ๋ฐ์ผ๋ฉฐ ํ ํฐ์ ๊ฒ์ฆํฉ๋๋ค.
43) N+1 ๋ฌธ์ ์ ๋ฐ์ ์ด์ ์ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ๋ํด ์ค๋ช ํด์ฃผ์ค ์ ์์๊น์? ํด๊ฒฐ ๋ฐฉ๋ฒ์ 3๊ฐ์ง ์ด์ ๋ง์ํด์ฃผ์๋ฉด ์ข์ต๋๋ค.
-> ์์ฒญ์ด 1๊ฐ์ ์ฟผ๋ฆฌ๋ก ์ฒ๋ฆฌ๋๊ธธ ๊ธฐ๋ํ๋๋ฐ N๊ฐ์ ์ถ๊ฐ ์ฟผ๋ฆฌ๊ฐ ๋ฐ์ํ๋ ์ํฉ์ ๋๋ค.
๊ฐ์ฅ ๋จผ์ ์ฆ์๋ก๋ฉ ๋ฐฉ์์ ์ง์ฐ๋ก๋ฉ ๋ฐฉ์์ผ๋ก ๋ฐ๊ฟ ์ฐ๊ด๋ ์ํฐํฐ๊ฐ ํ์ํ ๊ฒฝ์ฐ์๋ง ์กฐํํด์ฌ ์ ์์ต๋๋ค.
ํ์ง๋ง ์ด ๊ฒฝ์ฐ์๋ ์ํฐํฐ์์ ์ฐ๊ด ์ํฐํฐ๋ฅผ ์ค์ ๋ก ํธ์ถํ ๋ ๋ค์ ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค. Join Fetch ์ฟผ๋ฆฌ๋ฅผ ํตํด ์ง์ง ๊ฐ์ฒด๋ฅผ ๊ฐ์ ธ์ต๋๋ค. ์ด ๊ฒฝ์ฐ ์ฆ์๋ก๋ฉ๊ณผ ํ์น์กฐ์ธ์ ์ฐจ์ด์ ์ ์ฆ์๋ก๋ฉ์ ๊ฒฝ์ฐ ์กฐํ ๋์ ์ํฐํฐ์ ๋ํ ์ฟผ๋ฆฌ๋ฅผ ๋ง๋ค๊ณ ๋ ํ ํ์น ์ ๋ต์ ํ์ธํด ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค.
๋ง์ง๋ง์ผ๋ก ์ฆ์๋ก๋ฉํ๋๋ผ๋ @BatchSize๋ฅผ ์ฌ์ฉํด ์ํฐํฐ์ ๋ํด ์ง์ ๋ ํฌ๊ธฐ๋งํผ ํด๋นํ๋ ๋ฐ์ดํฐ๋ฅผ ์กฐํํ๋ ์ฟผ๋ฆฌ๋ฅผ ๋ง๋ญ๋๋ค. ์ง์ฐ๋ก๋ฉ์ ํ์น์กฐ์ธ์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ด ๊ฐ์ฅ ์ผ๋ฐ์ ์ ๋๋ค.
44) ์ฆ์๋ก๋ฉ๊ณผ ์ง์ฐ๋ก๋ฉ์ ๊ฐ๊ฐ ์ธ์ ์ฌ์ฉํ๋ฉด ์ข์์ง ์ค๋ช ํด์ฃผ์ค ์ ์์๊น์?
-> ์ฆ์๋ก๋ฉ์ ์ํฐํฐ๋ฅผ ๋ถ๋ฌ์ฌ ๋ ์ฐ๊ด๋ ์ํฐํฐ๋ ํจ๊ป ๋ถ๋ฌ์ค๋ ๋ฐฉ์์ ๋๋ค. ํ๋ฒ์ ์ฟผ๋ฆฌ๋ก ์ฐ๊ด๋ ํ์ํ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ๋ถ๋ฌ์ฌ ์ ์์ด, ์กฐํํ ๋ฐ์ดํฐ๊ฐ ์ ์ ๊ฒฝ์ฐ์ ์ด์ ์ด ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ฐ๊ด ๋ฐ์ดํฐ๊ฐ ๋ง์์ง๋ฉด ํ์ํ์ง ์์ ๋ฐ์ดํฐ๋ ๋ชจ๋ ๋ถ๋ฌ์ค๋ ๊ฒฝ์ฐ์๋ ์กฐํ ์๋๊ฐ ๋๋ ค์ง๊ณ ์ฑ๋ฅ ๋ฌธ์ ๋ฅผ ์ผ์ผํฌ ์ ์์ต๋๋ค.
์ง์ฐ๋ก๋ฉ์ ์ํฐํฐ๋ฅผ ๋ก๋ฉํ ๋ ์ฐ๊ด ์ํฐํฐ๋ฅผ ํ์ํ ์์ ์ ๋ก๋ฉํ๋ ๋ฐฉ์์ ๋๋ค. ์ง์ฐ๋ก๋ฉ์ ์ฌ์ฉํ๋ฉด ์ฐ๊ด ๋ฐ์ดํฐ๊ฐ ๋ง์ ๋ ์ฆ์๋ก๋ฉ๋ณด๋ค ์ฑ๋ฅ์ด ๊ฐ์ ๋๋ฉฐ ํ์ํ ๋ฐ์ดํฐ๋ง ๋ถ๋ฌ์ค๋ฏ๋ก ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋๋ ์ ๊ฐํฉ๋๋ค. ํ์ง๋ง ์ง์ฐ๋ก๋ฉ์ ์ฌ์ฉํด๋ ์ฐ๊ด ์ํฐํฐ๋ฅผ ์กฐํํ ๊ฒฝ์ฐ ์ฑ๋ฅ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค.
45) JWT์ ๋ํด ์ค๋ช ํด์ฃผ์ค ์ ์์๊น์? ๊ตฌ์ฒด์ ์ผ๋ก JWT๋ฅผ ์ด๋์ ์ฒ๋ฆฌํ๋์ง, ์ด๋ ํ ๋ฐฉ์์ผ๋ก ๊ฒ์ฆํ๋์ง, ์ฌ๋ฐ๊ธ ๋ฐฉ์๊ณผ ์ฃผ๊ธฐ๋ ์ด๋ป๊ฒ ์ฒ๋ฆฌํ๋์ง, ๋ค๋ฅธ API ์๋น์ค ํธ์ถ ์ ์ด๋ป๊ฒ ์ก์์ ์ธ์ฆ ์ฒ๋ฆฌํ๋์ง ๋ง์ํด์ฃผ์๋ฉด ์ข์ต๋๋ค.
-> JWT๋ ์ธ์ฆ ๋ฐฉ๋ฒ ์ค ํ๋๋ก Base64๋ก ์ธ์ฝ๋ฉ๋ JSON ๊ฐ์ฒด์ด๋ฉฐ, Header, Payload, Signature ์ธ ๋ถ๋ถ์ผ๋ก ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค. ํค๋์๋ ํ ํฐ์ ์๋ช ํ๋ ๋ฐ ํ์ํ ์๊ณ ๋ฆฌ์ฆ ์ ๋ณด๊ฐ ์์ต๋๋ค. ํ์ด๋ก๋์๋ ์ ์ก์ค์ธ ์ธ์ฆ์ ๋ณด๊ฐ ํฌํจ๋์ด ์์ผ๋ฉฐ, ์๋ช ์ ํ ํฐ ๋ฌด๊ฒฐ์ฑ์ ํ์ธํ๋ ๋ฐ ํ์ํฉ๋๋ค.
1. ์ฌ์ฉ์๊ฐ ๋ก๊ทธ์ธ์ ์ฑ๊ณตํ๋ฉด ์๋ฒ๋ก๋ถํฐ JWT๊ฐ ๋ฐ๊ธ๋๊ณ ์๋ต์ ํฌํจ๋์ด ์ ์ก๋ฉ๋๋ค. ์ดํ JWT ์ธ์ฆ์ด ํ์ํ ๊ฒฝ์ฐ ํด๋ผ์ด์ธํธ๋ JWT๋ฅผ ์์ฒญํค๋์ ๋ด์ ๋ณด๋ด๊ณ ๊ถํ์ด ์๋ ๊ฒฝ์ฐ ํต์ ์ด ์ด๋ฃจ์ด์ง๋๋ค.
2. ์์ฒญ ์๋ง๋ค Access ํ ํฐ๊ณผ Refresh ํ ํฐ์ ๋ฐ๊ธํด ์๋ตํ๋ ๊ฒฝ์ฐ์ ์ฌ๋ฐ๊ธ API๋ฅผ ๋ง๋ค์ด ์๋ฒ์์ Access ํ ํฐ์ด ๋ง๋ฃ๋ ๊ฒฝ์ฐ Refresh ํ ํฐ์ผ๋ก ์์ฒญํด ์ฌ๋ฐ๊ธ์ ๋ฐ๋ ๋ฐฉ์์ด ์์ต๋๋ค.
3. ๋ค๋ฅธ API๋ฅผ ํธ์ถํ ๋ ์์ฒญ ํค๋์์ JWT๋ฅผ ์บก์ณํด ํด๋น ์์ฒญ์ ํฌํจ์ํฌ ์ ์์ต๋๋ค. ์ด ๋ ํ ํฐ์ ๋ฌด๊ฒฐ์ฑ์ ํ์ธํ๊ธฐ ์ํด ์๋ช ์ ๋ด๊ธด ์ ๋ณด๊ฐ ํ์ํฉ๋๋ค.
46) ์ฌ๋ฏธ์๊ฒ ๊ณต๋ถํ ์๊ณ ๋ฆฌ์ฆ์ด ์๋ค๋ฉด ์ค๋ช ํด์ฃผ์ค ์ ์์๊น์?
->
47) Garbage Collector์ ์ญํ , ์๋ฆฌ, ์๊ณ ๋ฆฌ์ฆ์ ๋ํด ์๋ ๋งํผ ์ค๋ช ํด์ฃผ์ค ์ ์์๊น์?
-> ๊ฐ๋น์ง ์ปฌ๋ ํฐ๋ ํ๋ก๊ทธ๋จ์์ ์ฌ์ฉํ์ง ์๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์๋ณํ๊ณ ํ์ํฉ๋๋ค. ๊ฐ๋ฐ์๋ ๋ฉ๋ชจ๋ฆฌ ๋์ ๋ฑ ๋ฌธ์ ๋ฅผ ๊ฑฑ์ ํ์ง ์๊ณ ํ๋ก๊ทธ๋จ์ ๋ง๋ค ์ ์์ต๋๋ค. GC๋ ์ฌ์ฉํ์ง ์๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์๋ณํด ํ์ํ์ฌ ๋์ค์ ์ฌ์ฉํ ์ ์๋๋ก ํฉ๋๋ค. ์ผ๋ฐ์ ์ธ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก๋ ํ์ ๋ฐ ์ค์, ๋ณต์ฌ, ์ฐธ์กฐ ์นด์ดํ ์ด ์์ต๋๋ค. ํ์ ๋ฐ ์ค์์ ์ฌ์ฉ์ค์ธ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ์ํ๊ณ ์ค์ํด ์ฌ์ฉํ์ง ์๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์๋ณํฉ๋๋ค. ๋ณต์ฌ๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋์ผํ ๋ ๊ฐ๋ก ๋๋ ๋ค ์ ๋ฐ์๋ง ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋นํฉ๋๋ค. ํ ๋น๋ ์ ๋ฐ์ด ๊ฐ๋ ์ฐจ๋ฉด GC๋ ์ฌ์ฉํ๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์๋ณํด ๋๋จธ์ง ์ ๋ฐ์ ๋ณต์ฌํ๊ณ ๊ธฐ์กด์ ์ ๋ฐ์๋ ์ ๊ฐ์ฒด๊ฐ ์ฌ์ฉํ ์ ์๊ฒ ํฉ๋๋ค. ์ฐธ์กฐ ์นด์ดํ ์ ๊ฐ ๊ฐ์ฒด์ ์ฐธ์กฐ ์๋ฅผ ์นด์ดํ ํฉ๋๋ค. ์ฐธ์กฐ ์๊ฐ 0์ด๋ผ๋ฉด ์ฌ์ฉํ์ง ์๋ ๊ฐ์ฒด์ด๋ฏ๋ก ํ์ํฉ๋๋ค. ๋ค๋ง, ์ํ ์ฐธ์กฐ๋ฅผ ํด๊ฒฐํ ์ ์์ด ๋ฉ๋ชจ๋ฆฌ ๋์๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค.
48) Java Map์ ๋ด๋ถ ๊ตฌํ์ ์ด๋ป๊ฒ ์ด๋ฃจ์ด์ ธ ์์์ง ์ถ์ธกํด๋ณด์ค ์ ์์๊น์?
-> ์๋ฐ ๋งต์ ์ผ๋ฐ์ ์ผ๋ก ํด์ ํ ์ด๋ธ์ด๋ ์ด์ง ๊ฒ์ ํธ๋ฆฌ์ ํค-๊ฐ ์์๋ฅผ ์ ์ฅํฉ๋๋ค. ํด์ ํ ์ด๋ธ์ ๊ธฐ๋ณธ ๋ฐฐ์ด์์ ํด๋น ์ธ๋ฑ์ค๋ฅผ ์ ์ฅํ๊ธฐ ์ํด ํค๋ฅผ ํด์ํ์ฌ ๋น ๋ฅด๊ฒ ๊ฐ์ ์ ๊ทผํ ์ ์์ต๋๋ค. ์ด์ง ๊ฒ์ ํธ๋ฆฌ๋ ์์๊ฐ ์ ๋ ฌ๋์ด ์์ต๋๋ค. ๊ฐ ๋ ธ๋์ ํค๋ ์ผ์ชฝ์ด ์ค๋ฅธ์ชฝ๋ณด๋ค ํญ์ ํฝ๋๋ค.
49) Spring bean container ์์ฑ๋ถํฐ ์คํ๋ง ์ข ๋ฃ๊น์ง์ ์ฌ์ดํด์ ๋ํด ์๋ ค์ฃผ์ค ์ ์์๊น์? @PostConstruct, @PreDestroy ์ด๋ ธํ ์ด์ ์ ์ญํ ๋ ํจ๊ป ์๋ ค์ฃผ์๋ฉด ์ข์ต๋๋ค.
-> ์คํ๋ง์ ๊ตฌ์ฑํ์ผ์ ์ ์ธ๋ ๋น์ ์ ์๋ฅผ ์์ฑํ๊ธฐ ์ํด ํ์ผ์ ์ฝ๊ณ ๋ถ์ํฉ๋๋ค. ์ดํ ๋น ์ ์๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๊ฐ ๋น์ ์ธ์คํด์ค๋ฅผ ์์ฑํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋น์ ํ์ํ ์์ฑ ๋๋ ์์ฑ์ ์ธ์์ ๊ฐ์ ์ค์ ํฉ๋๋ค. ๊ทธ ๋ค์ ์คํ๋ง์ ๋ชจ๋ BeanPostProcessor๋ฅผ ๋น ์ธ์คํด์ค์ ์ ์ฉํฉ๋๋ค. ๊ทธ ํ ์คํ๋ง์ ๋น์ ์ง์ ๋ ์ฌ์ฉ์ ์ ์ ์ด๊ธฐํ ๋ฉ์๋๋ฅผ ํธ์ถํฉ๋๋ค. ์ด๊ธฐํ๋ฅผ ๋ง์น ๋น์ ์ดํ๋ฆฌ์ผ์ด์ ์์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ด๊ธฐํ๋ ํ @PostConstruct๊ฐ ๋ถ์ ๋ฉ์๋๊ฐ ์ํ๋ฉ๋๋ค. ๋ง์ง๋ง์ผ๋ก ๋น์ด ํ์ํ์ง ์๊ฒ ๋๋ฉด ์คํ๋ง์ ๋น์ ์ง์ ๋ ์ฌ์ฉ์ ์ ์ ์ญ์ ๋ฉ์๋๋ฅผ ํธ์ถํฉ๋๋ค. ์๋ฉธ๋๊ธฐ ์ ์ @PreDestory๊ฐ ๋ถ์ ๋ฉ์๋๊ฐ ํธ์ถ๋ฉ๋๋ค. ์๋ฅผ ๋ค์ด DB์ ์ฐ๊ฒฐ๋ ๋น์ ๊ฒฝ์ฐ ํด๋น ์ด๋ ธํ ์ด์ ์ ํตํด ์ฐ๊ฒฐ์ ์ค์ ํ ์ ์์ต๋๋ค.
50) AOP, Interceptor, Filter ์ ์ฐจ์ด์ , Request๊ฐ ๋ค์ด์ฌ๋ ๊ฑฐ์น๋ ์์, ๊ฐ ์ญํ ๋ค์ ์ฅ์ ์ ์ค๋ช ํด์ฃผ์ค ์ ์์๊น์?
-> ๊ณตํต ๊ด์ฌ์ฌ๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ์ผ๋ก ์ฝ๋์ ์ ์ง๊ด๋ฆฌ๋ฅผ ๊ฐ์ ํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. AOP๋ ๊ต์ฐจ๋๋ ๋ฉ์๋ ๋ฑ์ ๋ณ๋์ ๋ชจ๋๋ก ์บก์ํํ ์ ์๋ ํจ๋ฌ๋ค์์ ๋๋ค. ์ฌ์ฌ์ฉ์ด ๊ฐ๋ฅํด์ง๋ฏ๋ก ์ฝ๋ ๊ฐ๋ ์ฑ์ ๋์ผ ์ ์์ต๋๋ค. ์ธํฐ์ ํฐ๋ ํ๋ก๊ทธ๋จ์ ๋ํ ๋ฉ์๋ ํธ์ถ ๋ฑ์ ๊ฐ๋ก์ฑ ๊ธฐ์กด ์ฝ๋๋ฅผ ์์ ํ์ง ์๊ณ ๋ ๋ฉ์๋๋ ์์ฒญ์ ์์ ํ๊ณ ๋ฐํํฉ๋๋ค. ์ธํฐ์ ํฐ๋ฅผ ์ด์ฉํด ๋ก๊น , ์ค๋ฅ์ฒ๋ฆฌ ๋ฐ ์บ์ฑ๊ณผ ๊ฐ์ ๊ธฐ์กด ๋ฉ์๋์ ๊ธฐ๋ฅ์ ์ถ๊ฐํ ์ ์์ต๋๋ค. ํํฐ๋ ํด๋ผ์ด์ธํธ์ ์๋ฒ ๊ฐ ํต์ ์ ๊ฐ๋ก์ฑ ์ธ์ฆ, ์์ฒญ ๋ฐ ์๋ต ์์ถ, ์์ฒญ ์ ํ ๋ฑ์ ๊ธฐ๋ฅ์ ๊ตฌํํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. ์ธํฐ์ ํฐ์ ํํฐ๋ Servlet ๋จ์์์ ์คํ๋๊ณ , AOP๋ ๋ฉ์๋ ์์ Proxy๋ก ์คํ๋ฉ๋๋ค. ์คํ ์์๋ก๋ Request๊ฐ ๋ค์ด์ค๋ฉด Filter -> InterCceptor -> AOP -> Intercepotr -> Filter๊ฐ ๋ฉ๋๋ค. AOP๋ ์ฃผ๋ก ๋น์ฆ๋์ค๋จ์ ๋ฉ์๋์์ ์กฐ๊ธ ๋ ์ธ๋ฐํ๊ฒ ์กฐ์ ํ๊ณ ์ถ์ ๋ ์์ ๋กญ๊ฒ ์์น ์ค์ ์ด ๊ฐ๋ฅํฉ๋๋ค.
'TIL, WIL > WIL๐' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
4์ ๋ง์ง๋ง ์ฃผ : ์ฌ์ด๋ ํ๋ก์ ํธ ๊ฐ๋ฐ ์คํ (0) | 2024.04.28 |
---|---|
4์ ๋์งธ ์ฃผ : Docker ๊ฐ์ํ + Refresh Token with Redis (0) | 2023.04.17 |