ํด๋น ๊ธ์ ์์ฑํ๊ฒ ๋ ๊ณ๊ธฐ๋ ๋ฐ๊ธํ ์ ์๋ ์ฟ ํฐ์ ๊ฐ์๊ฐ ํ์ ๋์ด ์๊ณ , ํ์ฌ๊น์ง ๋ฐ๊ธ๋ ์ฟ ํฐ์ ์์ ๋ฐ๋ผ ์ ์ฐฉ์์ผ๋ก ์ฟ ํฐ์ ๋ฐ๊ธํด์ผ ํ๋ ๊ฒฝ์ฐ ์ด๋ป๊ฒ ๋์์ฑ์ ์ฒ๋ฆฌํ ์ ์์๊น์ ๋ํ ํธ๊ธฐ์ฌ์ด์๋ค.์ฐ์ ์ํฉ์ ์ด๋ฌํ๋ค.์๋ฒ๊ฐ ์ฌ๋ฌ ๊ฐ๋ก ์ฑ๊ธ ์ค๋ ๋๋ก ํด๊ฒฐ ๋ถ๊ฐ๋ฅํ๋ค.์๋ฒ๊ฐ 1๋์ธ ์ํฉ์ด๋๋ผ๋, ์ ์ฐฉ์ ์ฟ ํฐ ์์ฑ ์ ์ฒด ๋ก์ง์ ์ฑ๊ธ ์ค๋ ๋๋ก ์ฒ๋ฆฌํ๋ ๊ฒ์ ๋งค์ฐ ๋นํจ์จ์ ์ด๋ค.Redisson์ RLock๊ณผ ๊ฐ์ ๋ฐฉ๋ฒ์ ํ์ฌ ์ํฉ์ ๋นํจ์จ์ ์ด๋ค. ๋จผ์ 2๋ฒ, 3๋ฒ์ด ๋นํจ์จ์ ์ธ ์ด์ ๋ ์๋์ ๊ฐ๋ค. (RLock์ ๋ํด์๋ ๋ค์ ํฌ์คํ
์ ์ฐธ๊ณ ํด ์ฃผ์ธ์!) ์ฟ ํฐ์ ์ฌ๊ณ ๋ฅผ ํ์
ํ๊ณ ์ฌ๊ณ ๊ฐ ๋จ์์์ผ๋ฉด ์ ๊ท ์ฟ ํฐ์ ์์ฑํ๋ค๋ผ๋ ๊ด์ ์์ ๊ตณ์ด ์ฌ๊ณ ์กฐํ๋ถํฐ ์ ์ฅ๊น์ง์ ๋ก์ง์ Lock ๊ณผ์ ์ ํตํด ์ฒ๋ฆฌํ๋ค๋ฉด Lock์ด ..
๐ Backend
๋จ๊ณ๋ณ๋ก ์ฑ์ฅํ์!ํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉด์ Local ํ๊ฒฝ์ด ์๋ ๋ค๋ฅธ ํ๊ฒฝ์์๋ JNDI๋ฅผ ์ด์ฉํ์ฌ Datasource๋ฅผ ์ ์ฉํ๊ฒ ๋์๋ค. WAS์ DB Resource๊ฐ ๋ฑ๋ก๋์ด ์๋ ์ด์ ์ํฉ) ์ฐ์ ์ฌ๋ฌ๊ฐ์ Datasource์ ์ฐ๊ฒฐํด์ผ ํ๊ณ , Jeus๋ผ๋ WAS์ DB Resource ์ ๋ณด๋ฅผ ๋ชจ๋ ์ ์ฅํด ๋์ ์ํ์๋ค. ์ฌ๊ธฐ์ ์ WAS์ Data Resource๋ฅผ ์ค์ ํด ๋์๋์ง ์๋ฌธ์ด ๋ค ์ ์๋ค. (๋๋ ๊ทธ๋ฌ๋ค..) ๋ณดํต ์ง๊ธ๊น์ง ๊ฐ๋ฐํ ๋๋ ์์ JDBC๋ Spring์์ ์ ๊ณตํด์ฃผ๋ ๊ธฐ๋ณธ์ ์ธ DBCP๋ฅผ ์ฌ์ฉํด์๋ค. ํ์ง๋ง, ์ค์ ์ด์ํ ๋๋ JDBC ์ค์ ์ WAS์์ ํ๋๊ฒ ์ ๋ฆฌํ ๊ฒฝ์ฐ๊ฐ ์๋ค. ๊ทธ ์ด์ ๋ ๋ฏธ๋ค์จ์ด๋ฅผ ๊ด๋ฆฌํ๋ ์ธ๋ ฅ์ ๋ฐ๋ก ์๋ค. ํ๋์ WAS์ ์ฌ๋ฌ๊ฐ์ ์น ์ดํ๋ฆฌ์ผ์ด์
์ ๊ตฌ๋ํ๋ ๊ฒฝ์ฐ๊ฐ ์๊ณ ,..
์ต๊ทผ ํ๋ก์ ํธ์์ SessionFilter๋ฅผ GenericFilterBean๋ Filter๊ฐ ์๋ OncePerRequestFilter๋ฅผ extendsํ์ฌ ๊ตฌํํ๊ฒ ๋์๋ค. ์ OncePerRequestFilter๋ฅผ ์ฌ์ฉํ๋์ง ์ด ๊ธ์์ ๋ค๋ค๋ณด๊ณ ์ ํ๋ค. ์ฐ์ ์ ๊ทธ๋ฆผ์ ํตํด Filter์ ๋์ ์์์ ๋ํด ์์๋ณผ ์ ์๋ค. Filter๋ DispatcherServlet ์คํ ์ ํ์ ํธ์ถ๋๋๋ฐ, Filter๋ฅผ ์ฌ์ฉํ๋ค๋ณด๋ฉด Filter๊ฐ ์ค๋ณต์ผ๋ก ํธ์ถ๋๋ ๊ฒฝ์ฐ๊ฐ ๋ฐ์ํ๋ค. Filter๊ฐ ์ค๋ณต ํธ์ถ๋๋ Case Filter๋ Servlet๋ง๋ค ํธ์ถ๋๋ฉฐ, Servlet์ ์์ฒญ๋ง๋ค Servlet์ ์์ฑํด์ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅํ ๋ค ๊ฐ์ ํด๋ผ์ด์ธํธ์ ์์ฒญ์ด ๋ค์ด์ค๋ฉด ์์ฑํด ๋ ์๋ธ๋ฆฟ ๊ฐ์ฒด๋ฅผ ์ฌํ์ฉํ๋ค. ํ์ง๋ง, ์ ..
๋ฒ์ ์
๊ทธ๋ ์ด๋ ๋ฐฐ๊ฒฝ ํ๋ก์ ํธ์์ U2L(Unix To Linux) ์์
์ ์งํํ๋ฉฐ ์ต์ Linux์์ ๊ถ์ฅํ๊ณ ๋ํ ๋ณด์ ์ทจ์ฝ์ ๊ฒ์ฌ ํต๊ณผ๋ฅผ ์ํด JDK ๋ฒ์ ์ผ๋ก ์ฌ๋ ค์ผ ํ๋ ์ผ์ด ๋ฐ์ํ๋ค. ํด๋น ๊ณผ์ ์์, ํ๋๊น์ ๊ด๋ จ๋ ์๋ธ ์์คํ
์ Spring Boot ๋ฒ์ ๋ ๊ฐ์ด ์ฌ๋ฆฌ๊ฒ ๋์๊ณ , Migration ๊ณํ์ ์ธ์ฐ๋ฉด์ ๊ณต๋ถํ๋ ๊ฒ๋ค์ ๊ณต์ ํ๊ณ ์ ํ๋ค. ๋ด๊ฐ ์ํ๋ ๋ฒ์ ์ 2.7.18๋ฒ์ ์ด์๊ณ , ๋จ๊ณ๋ณ๋ก ๋ฒ์ ์ ์
๊ทธ๋ ์ด๋ ํ๋ฉด์ ์งํํ๋ ค๊ณ ํ์ผ๋ ์๋ธ ์์คํ
์ด๊ธฐ์ ์ฝ๋์๋ ๋ง์ง ์๊ณ ์์ ํ ๋ถ๋ถ์ด ๋ง์ง ์์ ๊ฒ์ผ๋ก ํ๋จํ์ฌ ํ ๋ฒ์ ์ฌ๋ฆฌ๊ฒ ๋์๋ค. (์ด๋ ๊ฒ ํด์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ง๋ ์์์ง๋ง, ์ฌ๋ฌ๋ถ๋ค์ ํฐ ์
๋ฐ์ดํธ๊ฐ ์์๋ ๋ฒ์ ๋ค์ ์ฐจ๋ก๋๋ก ์
๊ทธ๋ ์ด๋ ํ๋ ๊ฒ์ ์ถ์ฒํ๋ค.) ๋ง์ด๊ทธ๋ ์ด์
์์ 1. ๋ง์ด๊ทธ..
Thread Process์ ์์
์ Thread ๋จ์๋ก ๋๋ ์ ์๋ค. ๊ทธ๋ฆฌ๊ณ CPU Core๊ฐ Thread ๋จ์๋ก ์์
์ ์ฒ๋ฆฌํ๊ฒ ๋๋ค. ๊ฒฐ๋ก ์ ์ผ๋ก Thread๋ CPU Core์ ์คํ ๋จ์์ด๋ค. Thread๋ฅผ ์ฌ์ฉํจ์ผ๋ก์ ํ๋์ Process์์ ๋ ๊ฐ์ง ์ด์์ ์์
์ ๋์์ ์คํ ๊ฐ๋ฅํ๊ฒ ๋๋ค. Thread๋ฅผ ๋จ์ํ๊ฒ ์ฌ์ฉํ ๋ ๋ฌธ์ ์ ์๋ก์ด ์์ฒญ์ด ๋ค์ด์ฌ ๋๋ง๋ค ์๋ก์ด Thread๋ฅผ ์์ฑํ๋ค๊ณ ๊ฐ์ ํ๊ณ ๋ฌธ์ ์ ์ ์๊ฐํด๋ณด์. ์์ฑ ๋น์ฉ์ด ํฐ Thread Thread๋ ์์ฑ ๋น์ฉ์ด ํฌ๋ค. ๋ฐ๋ผ์ ํด๋น ๋ฐฉ์์ผ๋ก๋ ์์ฒญ์ ๋ํ ์๋ต์๊ฐ์ด ๋์ด๋ ์ ๋ฐ์ ์๋ค. ์๋ ๊ทธ๋ฆผ์ ๋ณด๋ฉด์ ๋ ์์ธํ๊ฒ ์์๋ณด์. Java๋ One-to-One Threading-Model๋ก Thread๋ฅผ ์์ฑํ๋ค. User Thre..
XSS(Cross-Site Scripting) ๊ณต๊ฒฉ์๊ฐ ์น ์์์ SQL Injection๊ณผ ๊ฐ์ ๋ฐฉ๋ฒ์ผ๋ก ๊ณต๊ฒฉํ๋ ค๋ ์ฌ์ดํธ์ ์
์์ ์ธ ์คํฌ๋ฆฝํธ๋ฅผ ์ฃผ์
ํ๋ ๊ณต๊ฒฉ์ด๋ค. ์ฃผ๋ก, ๋ค๋ฅธ ์น ์ฌ์ดํธ์ ์ ๋ณด๋ฅผ ๊ตํํ๋ ๋ฐฉ์์ผ๋ก ๋์ํ๊ธฐ ๋๋ฌธ์ Cross Site Scripting์ด๋ผ๊ณ ๋ช
์นญํ๋ค. ํด๋น ์ทจ์ฝ์ ์ ์น ์ ํ๋ฆฌ์ผ์ด์
์ด ์ฌ์ฉ์์ ์
๋ ฅ๊ฐ์ ์ ๋๋ก ๊ฒ์ฌํ์ง ์๊ณ ์ฌ์ฉํ ๊ฒฝ์ฐ ๋ํ๋ ์ ์์ผ๋ฉฐ, ๊ณต๊ฒฉ์ ์ฑ๊ณตํ๋ฉด ์ฌ์ดํธ์ ์ ์ํ ์ฌ์ฉ์๋ ์ฝ์
๋ ์ฝ๋๋ฅผ ๊ฐ์ ๋ก ์คํํ๊ฒ ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ์ฟ ํค, ์ธ์
, ํ ํฐ์ ํ์ทจํ๊ฑฐ๋ ๋ค๋ฅธ ๋ฏผ๊ฐํ ์ ๋ณด๋ฅผ ํ์ทจํ๊ฑฐ๋ ํด๋ผ์ด์ธํธ ์ฝ๋๋ฅผ ์ฌ์์ฑํ์ฌ ํดํนํ๊ธฐ๋ ํ๋ค. ์
์์ ์ธ ์ปจํ
์ธ ๋ก๋ ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ์ฌ์ฉํ์ฌ ๊ณต๊ฒฉํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค. 1) ์ฟ ํค๋ ์ธ์
์ ๋ณด ํ์ทจ 2) ์ ์์๋ฅผ ์์ ์ด ์๋ํ ..