๊ฐ๋จ? ํ Springboot ๊ธฐ๋ฐ ํ ์ด ํ๋ก์ ํธ๋ฅผ ์์ํ๋ค.
์ด๋ฒ์ฃผ ์์ ๋๋ด๋ ๊ฑธ ๋ชฉํ๋ก ๋ฌ๋ ค๋ณด์..!
์ผ๋จ ๊ตฌ์ํ ์๊ตฌ์ฌํญ์ ์ด๋ ๋ค.
์ผ๋ฐ ์ฌ์ฉ์ ์๊ตฌ์ฌํญ
๋ฆฌ๋ทฐ์ด ์๊ตฌ์ฌํญ
CRUD์ ํ๋ฆ์ ๋ ์ต์ํด์ง๊ณ ์ ๋น์ทํ ํ๋ฆ์ ๊ฐ์ง ํ๋ก์ ํธ๋ฅผ ๊ตฌ์ํด๋ดค๋ค.
๊ทธ๋ฅ CRUD๋ง ์์ผ๋ฉด ์กฐ๊ธ ์ฌ์ฌํ๋ ์ค์๊ฐ ์๋ฆผ์ด๋ ์ง์ ๋ ์ธ์ด์ ์์ฒญ๋ง ๋ฐ๋ ๋ฑ ์ ํ์ฌํญ์ ์ถ๊ฐํด๋ดค๋ค.
๋๋ฉ์ธ ์ค๊ณ
๋๋ฉ์ธ ์ค๊ณ ๋๋ฌด ์ด๋ ต๋ค.. ์์ง ์์ ์์๋ก ๊ตฌ์ฑํ ERD์ด๋ค.
ํ์๊ฐ์ / ๋ก๊ทธ์ธ
์ ๋ถ ajax ๊ธฐ๋ฐ์ผ๋ก ๊ตฌํํ ์์ ์ด๋ผ ํ์๊ฐ์
์ ๊ฒฝ์ฐ Json ๋ฐ์ดํฐ๋ก ๋ฐ์์ ์ ์ฅ์์ผฐ๋ค.
๋ก๊ทธ์ธ์ JWT ํ ํฐ ๊ธฐ๋ฐ์ผ๋ก ๊ตฌํํ๋ค. ํ ํฐ๊ธฐ๋ฐ ์ธ์ฆ์ ๊ฝค ์ต์ํด์ง ๊ฒ ๊ฐ๋ค.
Spring security๋ฅผ ์ด์ฉํด์ ์ผ๋จ ๋ชจ๋ ๊ฒฝ๋ก์ ์์ฒญ์ ์ด์ด๋๊ณ ์ธ์ฆ ๋ฐ ์ธ๊ฐ๊ฐ ํ์ํ ๋ถ๋ถ๋ง @Secured
๋ก ์ ํํ๋ ๋ฐฉ์์ ํํ๋ค.
API ์ค๊ณ
์ฝ๋๋ฆฌ๋ทฐ ๋ฑ๋ก, ์์ , ์ญ์ , ๋ชฉ๋ก API ๊ตฌํ
์ ๋๋ CRUD ๊ตฌํ
Postman์ ์ด์ฉํด์ ํ
์คํธ ์๋ฃํ๋ค.
ํ์๊ฐ์
->๋ก๊ทธ์ธ->๋ฆฌ๋ทฐ์์ฒญ๋ฑ๋ก->๋ฆฌ๋ทฐ์์ฒญ๋ชฉ๋กํ์ธ->๋ฆฌ๋ทฐ์์ฒญ๋จ๊ฑด์กฐํ->๋ฆฌ๋ทฐ์์ฒญ๋จ๊ฑด์ญ์
์ค๋์ ํธ๋ฌ๋ธ..
๋ค๋์ผ ๊ด๊ณ์ ์๋ ๋ ์ํฐํฐ๋ฅผ ์
๋ ฅ๋ฐ์ save ์ํค๋ ๋ถ๋ถ์์ ๋ฐ์ํ ์ด์์ด๋ค.
์ผ ์ชฝ์ ์ํฐํฐ๋ฅผ ๋จผ์ persistํ๊ณ ์ดํ ๋ค ์ชฝ์ ์ํฐํฐ๋ฅผ ๊ตฌ์ฑํด์ ๊ด๊ณ๋ฅผ ๋งบ๊ณ persistํ๋ ๋ฐฉ์์ด์๋๋ฐ ์ผ ์ชฝ์ ์ํฐํฐ๋ฅผ ๊ตฌ์ฑํ๋ ์ชฝ์์ ๊ณ์ NullPointException (NPE)
์ด ๋ฐ์ํ๋ค..
์ผ๋จ ์ด์ ๋ ๋น๋ํจํด
์ ์ฌ์ฉํ ๋ ์ปฌ๋ ์
์ด ์ด๊ธฐํ๋์ง ์๋ ๋ฌธ์ ๋๋ฌธ์ด์๋ค.
๋ณดํต ์ปฌ๋ ์
ํ๋๋ฅผ ์ด๊ธฐํ ํ ๋ NPE๋ฅผ ํผํ๊ธฐ ์ํด์ List<String> list = new ArrayList<>();
์ฒ๋ผ ์ด๊ธฐํ๋ฅผ ํด์ค๋ค. ๊ทผ๋ฐ ์ด ๋ถ๋ถ์ด ๋น๋ํจํด์์๋ ๋์ง ์๋ ๊ฒ ๊ฐ๋ค. ๋ด ์๊ฐ๋๋ก ๋ผ๋ฉด ๋น๋ํจํด์์ list
๋ฅผ ๋นผ๋จน์ด๋ NPE๊ฐ ๋ฐ์ํ๋ฉด ์ ๋๋๋ฐ ๋ฐ์ํ ๊ฒ์ด๋ค..
ํน์๋ ์ถ์ด์ ๊ทธ๋ฅ ์์ฑ์๋ฅผ ํตํด ๊ฐ์ ์ด๊ธฐํ ์์
์ ํ๋ ๋ฌธ์ ์์ด ์คํ๋๋ค. ์ด ๋ถ๋ถ ์ ๊ฒฝ์จ์ผ์ง ๋์ค์ ์๊ฐ์ ํ๋นํ์ง ์๊ฒ ๋ค..
๋ง์ฝ ๋น๋ํจํด์ ๊ณ ์งํ๊ณ ์ถ๋ค๋ฉด ์์๋ก ์ปฌ๋ ์
ํ๋๋ถ๋ถ์ new ArrayList<>()๋ฅผ ํด์ค์ผ ํ๋ค.
๋น๋ํจํด ์ฌ์ฉ์ ์ปฌ๋ ์ ์ ์ฃผ์ํ์!