๋ด๊ฐ ๋ง๋ ์ฑ์ ์ํ๋ฆฌํฐ๋
๋ด๊ฐ ์ฑ
์์ ธ์ผ์ฃ ๐ช
์ฑ์์ '์ธ์ฆ'๊ณผ '์ธ๊ฐ'๋ ํ์! ๐ฅ
๊ฒ์ํ์ ๋ง๋ ๋ค๊ณ ๊ฐ์ ํด ๋ด
์๋ค. ์ต๋ช
๊ฒ์ํ์ด ์๋ ์ด์ ํ์ฌ ์ด๋ค ์ฌ์ฉ์๊ฐ ๊ธ์ ์์ฑํ๊ณ ์๋์ง ์์์ผ ํฉ๋๋ค. ํํ '๋ก๊ทธ์ธ'์ด๋ผ๊ณ ๋ถ๋ฅด๊ณ ์คํ๋ง ์ํ๋ฆฌํฐ์์๋ Authentication ๋๋ "์ธ์ฆ"์ด๋ผ๊ณ ๋งํ๋ ๊ธฐ๋ฅ์ด ํ์ํฉ๋๋ค.
๋ํ ๊ธ์ ์์ ํ ์ ์๋ ์ฌ์ฉ์๋ ์ต์ํ ๊ทธ ๊ธ์ ์์ฑ์ ๋๋ ๊ด๋ฆฌ์ ๊ถํ์ด ์์ด์ผ ํฉ๋๋ค. ์ด๋ ๊ฐ๋ฐ์๋ก์ ์ ํ๋ฆฌ์ผ์ด์
์ "์ธ๊ฐ", Authorization ๋๋ Access Control ๊ธฐ๋ฅ์ ์ ์ฉํ์ฌ ์ ์ ํ ๊ถํ์ ๊ฐ์ง ์ฌ์ฉ์๋ง ํด๋น ๊ธ์ ์์ ํ ์ ์๋๋ก ๊ธฐ๋ฅ์ ๊ตฌํํด์ผ ํฉ๋๋ค.
์น ์ ํ๋ฆฌ์ผ์ด์
์ธ ๊ฒฝ์ฐ, CSRF, XXS, ์ธ์
๋ณ์กฐ, Clickjacking ๋ฑ ๋ค์ํ ์น ๋ณด์ ๊ด๋ จ ์ด์์ ๋์ํ๋ ๊ฒ๋ ๋ฐ๋์ ํ์ํฉ๋๋ค.
๊ฐ์ ์๊ฐ ๐
#1.
์คํ๋ง ์ํ๋ฆฌํฐ์
๋ค์ํ ๊ธฐ๋ฅ ์ ์ฉ
์ด ๊ฐ์๋ ํผ ๊ธฐ๋ฐ์ ์น ์ ํ๋ฆฌ์ผ์ด์
์ ์คํ๋ง ์ํ๋ฆฌํฐ๊ฐ ์ ๊ณตํ๋ ๋ค์ํ ๊ธฐ๋ฅ์ ์ ์ฉํ๋ฉฐ ์คํ๋ง ์ํ๋ฆฌํฐ ๊ตฌ์กฐ๋ฅผ ํ์
ํฉ๋๋ค.
#2.
์คํ๋ง ์ํ๋ฆฌํฐ์
๋ด๋ถ ๊ตฌ์กฐ
๋จ์ํ ๊ธฐ๋ฅ์ ์ ์ฉํด ๋ณด๋ ๊ฒ์ ๊ทธ์น์ง ์๊ณ ์คํ๋ง ์ํ๋ฆฌํฐ๊ฐ ์๋ธ๋ฆฟ ๊ธฐ๋ฐ ์น ์ ํ๋ฆฌ์ผ์ด์
์ ์ด๋ป๊ฒ ๋ง๋ฌผ๋ ค ๋์ํ๋์ง ๊ทธ ๋ด๋ถ ๊ตฌ์กฐ๋ฅผ ํ์ตํฉ๋๋ค. AuthenticationManager, AccessDecisionManager, FilterChainProxy ๋ฑ ์คํ๋ง ์ํ๋ฆฌํฐ ๋ด๋ถ ๊ตฌ์กฐ๋ฅผ ํ์ตํ๋๋ฐ ๋ง์ ๋์์ด ๋ ๊ฒ์
๋๋ค.
#3.
๋์ค์ ์ธ ์ฑ ํํ์
์ ํ๊ณผ ์ง์ค
์ด ๊ฐ์๋ ํ์๋ฆฌํ(Thymeleaf)๋ฅผ ๋ทฐ ํ
ํ๋ฆฟ์ผ๋ก ์ฌ์ฉํ๋ ์๋ธ๋ฆฟ ๊ธฐ๋ฐ ์ ํ๋ฆฌ์ผ์ด์
์ ์ฃผ๋ก ๋ค๋ฃน๋๋ค. ACL, OAuth2, Reactive(WebFlux) ๊ทธ๋ฆฌ๊ณ ์น์์ผ์ ์ง์ํ๋ ๊ธฐ๋ฅ์ ๋ค๋ฃจ์ง ์์์ผ๋ฉฐ ๋ฉ์๋ ์ํ๋ฆฌํฐ์ ๋ํด์๋ ๊ฐ๋ตํ๊ฒ ์ดํด๋ดค์ต๋๋ค. ํ์ง๋ง ์ด ๊ฐ์๋ฅผ ์ถฉ๋ถํ ํ์ตํ์ ๋ค๋ฉด ์ฌ๊ธฐ์ ๋ค๋ฃจ์ง ์์ ๊ธฐ๋ฅ๋ ์์ฝ๊ฒ ์ตํ ์ ์์ ๊ฒ๋๋ค.
์ง์๊ณต์ ์์ ํ ๋ง๋ ๐งโ๐ซ
์ง๊ธ๊น์ง ๋ง๋ ๋ ์์ผ๋ก๋ ๋ง๋ค ์ ๋ชจ๋ ๊ฐ์ข๋ฅผ ๋ณด๋ฉด์ ์ฌ๋ฌ๋ถ์ ์ ๊ฐ ๋ฌด์ธ๊ฐ๋ฅผ ํ์ตํ๋ ๋ฐฉ๋ฒ์ ์ตํ ์ ์์ต๋๋ค. ์ ๋ ํญ์ ํ
์คํธ๋ฅผ ์ค์ํ๊ฒ ์๊ฐํ์ง๋ง ๊ทธ๋ ๋ค๊ณ TDD์ ์ง์ฐฉํ์ง๋ ์์ต๋๋ค. (๊ฐ๋ ๊ทธ๋ ๊ฒ ๋ณด์ธ๋ค๋ ํผ๋๋ฐฑ์ ๋ฐ๊ธฐ๋ ํ์ง๋ง..) ๋ชจ๋ ๊ธฐ๋ฅ์ ์ง์ ์ฝ๋ฉํ์ฌ ๊ฒ์ฆํ๋ฉฐ, ์ดํด๊ฐ ๋์ง ์๋ ๋ถ๋ถ ๋๋ ๋ ์์ธํ ๋ณด๊ณ ์ถ์ ๋ถ๋ถ์ ๋๋ฒ๊ฑฐ๋ฅผ ํ์ฉํฉ๋๋ค.
์ฌ๋ฌ๋ถ์ ์ด ๊ฐ์ข์์๋ ์ด๊น์์ด ์คํ๋ง ์ํ๋ฆฌํฐ๋ฅผ ์ ์ฉํ์ ๋ ํ
์คํธ ์ฝ๋๋ฅผ ์์ฑํ๋ ๋ฐฉ๋ฒ๊ณผ ๋๋ฒ๊ฑฐ๋ฅผ ์ฌ์ฉํ์ฌ ๋ถ์ํ๋ ๋ฐฉ๋ฒ์ ์ตํ ์ ์์ต๋๋ค.
- ์ด๋ค IDE๋ฅผ ์ฌ์ฉํ๋์ง๋ ์ค์ํ์ง ์์ต๋๋ค. ์ฌ๋ฌ๋ถ์๊ฒ ์ต์ํ IDE๋ฅผ ์ฌ์ฉํ์๊ธฐ ๋ฐ๋๋๋ค.
- ์ด ๊ฐ์ข์์๋ IntelliJ IDEA(์ธํ
๋ฆฌJ) ์ ๋ฃ ๋ฒ์ ์ ์ฌ์ฉํฉ๋๋ค. ๋ฌด๋ฃ ๋ฒ์ ์ ์ฌ์ฉํด๋ ๊ฐ์ข๋ฅผ ๋ฐ๋ผํ๋ ๋ฐ๋ ํฌ๊ฒ ์ง์ฅ์ ์์ง๋ง ์ผ๋ถ ๊ณผ์ ์ด ์ฌ๋ฌ๋ถ๋ณด๋ค ํธ๋ฆฌํด ๋ณด์ผ ์๋ ์์ต๋๋ค.
- ์คํ๋ง์์ ๋ฌด๋ฃ๋ก ์ ๊ณตํ๋ ์ดํด๋ฆฝ์ค ๊ธฐ๋ฐ์ STS(์คํ๋ง ํด ์ค์)์ ์ฌ์ฉํ๋ค๋ฉด ๋น์ทํ ์์ค์ ํธ๋ฆฌํจ์ ๋๋ฆด ์ ์์ ๊ฒ๋๋ค.
ํ์ํ ์ ์์ง์ ๐ค
์ด ๊ฐ์ข๋ ์๊ฐํ์๋ ๋ถ๋ค์ด ๋ค์๊ณผ ๊ฐ์ ์ ์ ์ง์์ ๊ฐ์ท๋ค๋ ๊ฐ์ ํ์ ๋ง๋ค์์ต๋๋ค. ์์ง ์๊ฐํ์ง ์์ ๊ฐ์ข ๋๋ ํ์ตํ์ง ์์ ์ฃผ์ ๊ฐ ์๋ค๋ฉด ๊ผญ ๋ฏธ๋ฆฌ ํ์ตํ์ ๋ค์ ์ด๋ฒ ๊ฐ์ข๋ฅผ ์๊ฐํ์๊ธฐ ๋ฐ๋๋๋ค.
์ฐธ๊ณ ์๋ฃ ๐