ํ๋ ์์ํฌ์ ์ฌ์ ์ ์๋ฏธ๋ ๋ผ๋, ๊ทผ๊ฐ์ด๋ค. a,b,c, ...z๊ฐ ํจ๊ป ์ผํ๋๋ฐ ๋ชจ๋๊ฐ ๋ค๋ฅธ ๋ฐฉ์์ผ๋ก ์ผํ๋ค๋ฉด ์ด๋จ๊น? ๋ญ ๊ทธ๋ญ์ ๋ญ ํ๋ฌ๋ ๊ฐ๊ฒ ์ง๋ง... ์ง๊ธ์ ์์ํ ์ ์๋ ์ด๋ค ๋ฌด์๋ฌด์ํ ์ผ๋ค์ด ๋ฒ์ด์ง์ง๋ ๋ชจ๋ฅด๊ฒ ๋ค. a์ w๊ฐ ๋ฐค์ ๊ฐ๋ฐํ ๋ค์, ์ด์ ์ฐ๋ฆฌ ์ฝ๋
๋ ์ค ํ๋๋ฅผ ๊ณจ๋ผ์ ์ค์ ํด์ผ ํ๋ค.
์คํ๋ง DI์๋ ์ธ ๊ฐ์ง ๋ฐฉ์์ด ์๋ค.set๋ฉ์๋ ์ฃผ์ ํ๋ ์ฃผ์ ์์ฑ์ ์ฃผ์ ์ด ์ค์์ ํ๋ ์ฃผ์ ์ด ์ฌ์ฉํ๊ธฐ ๊ฐ์ฅ ๊ฐ๋จํ์ง๋ง, ์์ฑ์ ์ฃผ์ ์ ์ฌ์ฉํ๋ผ๊ณ ๊ถ์ฅ๋๊ณ ์๋ค. ์ฐธ๊ณ ์ธ ๊ฐ์ง ๋ชจ๋ ํ ์คํธ ํด ๋ณผ ๊ฒ์ด๋ค.Market์ด๋ผ๋ ํด๋์ค๋ฅผ ๋ง๋ค๊ณ , ๋ง์ผ์์ ํ๋งคํ ์ํ์ธ ๊ณ ๊ธฐ์
๐ฃ ๋ง์ด๋ฐํฐ์ค๋ ๋ฌด์์ธ๊ฐ? > ๋ง์ด๋ฐํฐ์ค๋ ๊ฐ๋ฐ์๊ฐ ์ง์ ํ SQL, ์ ์ฅํ๋ก์์ ๊ทธ๋ฆฌ๊ณ ๋ช๊ฐ์ง ๊ณ ๊ธ ๋งคํ์ ์ง์ํ๋ ํผ์์คํด์ค ํ๋ ์์ํฌ์ด๋ค. ๋ง์ด๋ฐํฐ์ค๋ JDBC๋ก ์ฒ๋ฆฌํ๋ ์๋น๋ถ๋ถ์ ์ฝ๋์ ํ๋ผ๋ฏธํฐ ์ค์ ๋ฐ ๊ฒฐ๊ณผ ๋งคํ์ ๋์ ํด์ค๋ค. ๋ง์ด๋ฐํฐ์ค๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ ์ฝ๋
ํด๋น ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ด์ฉํ๋ฉด ์ฝ์์์ SQL๋ฌธ๊ณผ ๊ฒฐ๊ณผ๋ฅผ ๊ฐ์ง๋ฐํ๊ฒ ํ์ธํ ์ ์๋ค.์ฐ์ ๋ฉ์ด๋ธ ์ค์ ์ ์ถ๊ฐํ๋ค. ๋งํฌRootConfig.java๊ทธ ๋ค์ ํด๋น ๊ฒฝ๋ก์ log4jdbc.log4j2.propertiesํ์ผ์ ๋ง๋ ๋ค.log4jdbc.spylogdelegator.
ํด๋ผ์ด์ธํธ๊ฐ ์ ์กํ๋ ํ๋ผ๋ฏธํฐ ์ธ์์ ์ด๋ฆ๊ณผ, ์ปจํธ๋กค๋ฌ์ ์ง์ ํ ํ๋ผ๋ฏธํฐ์ ์ด๋ฆ์ด ๋ค๋ฅด๋ค๋ฉด ํ๋ผ๋ฏธํฐ๋ฅผ ์์งํ ์ ์๋ค. ๊ทธ๋ด ๊ฒฝ์ฐ, @RequestParam์ ์ด์ฉํด์ ์ ๋ฌ ๋ฐ์ ํ๋ผ๋ฏธํฐ์ ์ด๋ฆ์ ์ง์ ํ ์ ์๋ค.์ ๋ ๋ฉ์๋์ฒ๋ผ ๊ฐ์ ์ด๋ฆ์ผ๋ก ํ๋ผ๋ฏธํฐ๋ฅผ ์ฌ๋ฌ ๊ฐ ๋ฐ์
์คํ๋ง์ ๋ชฉ์ ์ ์น์ด ์๋๋ค.์์ ๋ณด์ด๋ ๊ฒ์ฒ๋ผ ์คํ๋ง ์น์ ์คํ๋ง์ ๊ธฐ๋ฅ ์ค ํ๋์ผ ๋ฟ์ด๋ค.์คํ๋ง MVC ํ๋ก์ ํธ๋ฅผ ์์ฑํ๋ฉด, ์๋ฐ ์์ญ(POJO)๊ณผ ์น ์์ญ์ ์ฐ๋ํด์ ํ๋ก์ ํธ๋ฅผ ๊ตฌ๋ํ๊ฒ ๋๋ค.์น ์์ญ์ด MVC์ค์ ์ ํฌํจํ๊ณ ์๋ค.์คํ๋ง MVC ์ด์ ๊น์ง๋ Servl
Servlet์ request.setAttribute()๋ก ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํ๋ค๋ฉด,์คํ๋ง์ Model๊ฐ์ฒด๋ก ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํ๋ค.Controllerview@ModelAttribute๋ ์ ๋ฌ ๋ฐ์ ํ๋ผ๋ฏธํฐ๋ฅผ ๊ฐ์ ๋ก Model์ ๋ด์์ ํ๋ฉด์ผ๋ก ์ ๋ฌํ๋ค.๊ตณ์ด ๋ชจ๋ธ๊ฐ์ฒด๋ฅผ ์์ฑํ์ง
์๊ตฌ์ฌํญ ์ฌ์ฉ์๋ ๊ฒ์๋ฌผ์ ๋ฑ๋กํ ์ ์๋ค. ์ฌ์ฉ์๋ ๊ฒ์๋ฌผ์ ์กฐํํ ์ ์๋ค. ์ฌ์ฉ์๋ ๊ฒ์๋ฌผ์ ์์ ํ ์ ์๋ค. ์ฌ์ฉ์๋ ๊ฒ์๋ฌผ์ ์ญ์ ํ ์ ์๋ค. ๋ ์ด์์ ๋ฌด๋ฃ๋ก ์ ๊ณตํ๋ ๋ถํธ์คํธ๋ฉ์ ์ด์ฉํ ๊ฒ์ด๋ค. ๋งํฌ URL ์ค๊ณ |URL|์ ์ก ๋ฐฉ์|๋น๊ณ | |----
์์ ๊ณ์ธต ๊ตฌํ ์์ VO ์์ฑ MyBatis Mapper์ธํฐํ์ด์ค & Mapper.xml Mapper Test
๋น์ง๋์ค ๊ณ์ธต์ 'Service'๋ผ๋ ์ด๋ฆ์ ์ฃผ๋ก ์ฌ์ฉํ๋ค.BoardService๋ผ๋ ์ธํฐํ์ด์ค๋ฅผ ๋ง๋ค๊ณ BoardServiceImplํด๋์ค๊ฐ ๊ตฌํํ๋ ํํ๋ก ๋ง๋ค ๊ฒ์ด๋ค.๊ตณ์ด ์ธํฐํ์ด์ค๋ฅผ ์ค๊ฐ์ ๋๋ ์ด์ ๋ ๋ค์์ ๊ตฌํํ ํ๋ ์ ํ ์ด์ ๊ณ์ธต๊ณผ ๊ฐ๊ฒฐํฉ์ ํผํ๊ธฐ ์ํด์๋ค.
์ปจํธ๋กค๋ฌ์ ํ๋ฉด์ฒ๋ฆฌ๋ฅผ ๋ด๋นํ jsp๊ฐ ํ๋ ์ ํ ์ด์ ๊ณ์ธต์ด๋ค. ์ปจํธ๋กค๋ฌ๋ฅผ ์์ฑํ๊ณ ํ๋ฉด์ฒ๋ฆฌ๋ฅผ ํ ๊ฒ์ด๋ค.URL๋ถ๊ธฐ๋ ์ฐธ๊ณ ๋ฌ๋ผ์ง ์ ์ ์์ ํ์ด์ง๋ฅผ ๋ฐ๋ก ๋ง๋ค์ง ์๊ณ ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ์ด์ฉํด์ ์ฒ๋ฆฌํ ๊ฒ์ด๋ฏ๋ก ๋ฐ๋ก ๋ถ๊ธฐํ์ง ์์๋ค.์ปจํธ๋กค๋ฌ๋ ํ๋ฉด๊ณผ ์ฐ๊ฒฐํ๊ธฐ ๋๋ฌธ์ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ๋ก
๋ ์ด์์์ BootStrap4์ Sb Admin์ ์ด์ฉํ๋ค. ๋งํฌํด๋ ๊ตฌ์กฐ๋ ์ด๋ ๋ค.๋ฐ๋ก ์์ ํ์ด์ง๋ฅผ ๋ง๋ค์ง ์๊ณ ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ์ด์ฉํ์ฌ ์กฐํ ํ์ด์ง์์ ๋ฐ๋ก ์์ ํ ์ ์๋๋ก ํ๋ค.๋ชจ๋ฌ ์ฐฝ์ ์ธ๊น, ๋ง๊น ๊ณ ๋ฏผํ์ง๋ง ์ฐ์ง ์๊ธฐ๋ก ํ๋ค. ๋ค์ด๋ฒ๋, ํ์ด์ค๋ถ ๊ฐ์ ์น์์
๊ฒ์๋ฌผ์ POST๋ฐฉ์์ผ๋ก ์ฒ๋ฆฌํ๊ณ ๋์๋ ํ์ด์ง๋ ๊ฒ์ ์กฐ๊ฑด์ ์ ์งํ๊ธฐ ์ํด์๋ ํ์ด์ง ์ ๋ณด์ ๊ฒ์ ์กฐ๊ฑด, ๊ฒ์ ํค์๋ ์ ๋ณด๋ฅผ RedirectAttribute๊ฐ์ฒด๋ก ์ง์ ์ง์ ํด์ผ ํ๋ค.์ด๊ฒ์ ์์ /์ญ์ ํ์๋ ๊ฒ์ ์กฐ๊ฑด๊ณผ ํ์ด์ง ์ ๋ณด๋ฅผ ์ ์งํ๊ธฐ ์ํด์ ์ง์ redir
๊ธฐ์กด์ ํ ์ด๋ธ์ ์ด์ฉํ ์ํ๋ฆฌํฐ ์ธ์ฆ ๋ฐฉ๋ฒํ์ ํ ์ด๋ธ๊ณผ ๊ถํ ํ ์ด๋ธBCrypetPasswordEncdoer๋ ํด์ ํจ์๋ก ๋ฌธ์์ด์ ์ํธํํ๋ค. ์ฒดํฌํ๋ ์ชฝ์์๋ ์ํธํ๋ ํจ์ค์๋๊ฐ ๊ฐ๋ฅํ ํจ์ค์๋์ธ์ง๋ง ํ์ธํ๊ณ ๋ค์ ์๋ฌธ์ผ๋ก ๋๋ฆด ์ ์๋ค.img\[์ง์ ๋ ๋ฐฉ์(JDBC