2024. 11. 14. 18:17ใ๐๋์
์ฝ๊ณ ๋ ๊ณ๊ธฐ:
๋ก๊ทธ์ธ ๊ธฐ๋ฅ์ ๊ตฌํํ๋ฉด์ ๋ก๊ทธ์ธ์ด ์ด๋ป๊ฒ ์ด๋ฃจ์ด์ง๋์ง๋ฅผ ์ดํดํ๊ณ ์ถ์ด์ ํ๊ต ๋์๊ด์์ ์ด ์ฑ ์ ๋น๋ ธ๋ค!
1์ฅ ๋ด์ฉ ์์ฝ
* ์คํ๋ง ์ํ๋ฆฌํฐ์ ๊ฐ๋ ๊ณผ ์ด๋ฅผ ์ด์ฉํด ํด๊ฒฐํ ์ ์๋ ๋ฌธ์
* ์ํํธ์จ์ด ์ ํ๋ฆฌ์ผ์ด์ ์์ ๋ณด์์ ์๋ฏธ
* ์ํํธ์จ์ด ๋ณด์์ด ์ค์ํ ์ด์ ์ ๊ด์ฌ์ ๊ฐ์ ธ์ผ ํ๋ ์ด์
* ์ ํ๋ฆฌ์ผ์ด์ ์์ค์ ์ผ๋ฐ์ ์ธ ์ทจ์ฝ์ฑ
[์ํํธ์จ์ด์ ๋น๊ธฐ๋ฅ์ ์๊ตฌ์ฌํญ์ ์ค์์ฑ]
์ผ๋ฐ์ ์ผ๋ก ๊ฐ๋ฐ์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ชฉ์ ์ด ๋น์ฆ๋์ค ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๊ฒ์์ ๋ฐฐ์ฐ๋ ๊ฒ์ผ๋ก ์์ํ๋ค.
-> ์ด๋ฌํ ์ํํธ์จ์ด ๊ฐ๋ฐ์ ๊ด์ ์๋ ํ๋ก์ธ์ค์ ๊ดํ์ด ์ ๋๋ฌ๋์ง ์๋๋ค๋ ๋ฌธ์ ๊ฐ ์๋ค
์ฑ๋ฅ, ํ์ฅ์ฑ, ๊ฐ์ฉ์ฑ, ๋ณด์๊ณผ ๊ฐ์ ์ํํธ์จ์ด์ ๋น๊ธฐ๋ฅ์ ํน์ง์ ์๊ฐ์ด ์ง๋จ์ ๋ฐ๋ผ ๋จ๊ธฐ์ ์ํฅ๊ณผ ์ฅ๊ธฐ์ ์ํฅ์ ๋ฏธ์น ์ ์๋ค
์ํ๋ฅด์จ์ด์ ๋น๊ธฐ๋ฅ์ ํน์ง๋ค์ ๋ฌด์ํ๋ฉด DDos(๋ถ์ฐ ์๋น์ค ๊ฑฐ๋ถ) ๊ณต๊ฒฉ์ ์์น ์๊ฒ ์ฐธ์ฌํ๋ ๋ฑ, ๋ค๋ฅธ ์์คํ ์ค๋ฅ๋ ๋ฐ์ํ ์ ์๋ค. ๋น๊ธฐ๋ฅ์ ์๊ตฌ์ฌํญ์ ์จ๊ฒจ์ง ์ธก๋ฉด (๋๋ฝ๋๊ฑฐ๋ ์จ๊ฒจ์ง ๊ฒ์ ์ฐพ๊ธฐ ์ด๋ ค์) ๋๋ฌธ์ ์ด๋ฌํ ๋ฌธ์ ๋ ๋ ์ํํ๋ค
์ํํธ์จ์ด ์์คํ ์ ๋ค๋ฃฐ ๋๋ ์ฌ๋ฌ ๋น๊ธฐ๋ฅ์ ์ธก๋ฉด์ ๊ณ ๋ คํด์ผ ํ๋ค. ์ด๋ฌํ ๋น๊ธฐ๋ฅ์ ์ธก๋ฉด๋ ๋ชจ๋ ์ค์ํ๋ฉฐ ์ํํธ์จ์ด ๊ฐ๋ฐ ํ๋ก์ธ์ค์์ ์ฑ ์๊ฐ ์๊ฒ ๋ค๋ค์ผ ํ๋ค
[1.1 ์คํ๋ง ์ํ๋ฆฌํฐ : ๊ฐ๋ ๊ณผ ์ฅ์ ]
- ์คํ๋ง ์ํ๋ฆฌํฐ์ ์คํ๋ง ๊ฐ์ ๊ด๊ณ ์์๋ณด๊ธฐ
https://spring.io/projects/spring-security
Spring Security
Spring Security is a powerful and highly customizable authentication and access-control framework. It is the de-facto standard for securing Spring-based applications. Spring Security is a framework that focuses on providing both authentication and authoriz
spring.io
-> ์คํ๋ง ์ํ๋ฆฌํฐ๋ฅผ ์ธ์ฆ๊ณผ ์ ๊ทผ ์ ์ด๋ฅผ ์ํด ์ธ๋ถ์ ์ธ ๋ง์ถค ๊ตฌ์ฑ์ด ๊ฐ๋ฅํ ๊ฐ๋ ฅํ ํ๋ ์์ํฌ, ์คํ๋ง ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ณด์์ ์ ์ฉํ๋ ๊ณผ์ ์ ํฌ๊ฒ ๊ฐ์ํํ๋ ํ๋ ์์ํฌ์ด๋ค,
์คํ๋ง ์ ํ๋ฆฌ์ผ์ด์ ์์ ์ ํ๋ฆฌ์ผ์ด์ ์์ค์ ๋ณด์์ ๊ตฌํํ ๋, ๊ฐ์ฅ ์ฐ์ ์ ์ธ ์ ํ์ด๋ฉฐ ์ธ์ฆ, ๊ถํ ๋ถ์ฌ ๋ฐ ์ผ๋ฐ์ ์ธ ๊ณต๊ฒฉ์ ๋ํ ๋ฐฉ์ด๋ฅผ ๊ตฌํํ๋ ์ธ๋ถ์ ์ธ ๋ง์ถค ๊ตฌ์ฑ ๋ฐฉ๋ฒ์ ์ ๊ณตํ๋ค.
https://github.com/spring-projects/spring-security/
[์คํ๋ง ์ํ๋ฆฌํฐ ์์ค ์ฝ๋]
์คํ๋ง ์ํ๋ฆฌํฐ๋ ์คํ๋ง ์ ํ๋ฆฌ์ผ์ด์ ์์ ์ ํ๋ฆฌ์ผ์ด์ ์์ค ๋ณด์์ ๊ตฌํํ๊ธฐ ์ํธ ์ฌ์ค์์ ํ์ค์ด๋ค. ํ์ง๋ง ์คํ๋ง ์ํ๋ฆฌ
๋ฅผ ์ด์ฉํด๋ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์๋์ผ๋ก ๋ณดํธ๋๋ ๊ฒ์ ์๋๋ค. -> ์ ํ๋ฆฌ์ผ์ด์ ์ ํ์์ ๋ง๊ฒ ์คํ๋ง ์ํ๋ฆฌํฐ๋ฅผ ๊ตฌ์ฑํ๊ณ ๋ง์ถค ๊ตฌ์ฑํ๋ ๋ฐฉ๋ฒ์ ์์์ผํจ
์คํ๋ง ์ ํ๋ฆฌ์ผ์ด์ ์ ์คํ๋ง ์ํ๋ฆฌํฐ๋ฅผ ์ด๋ป๊ฒ ์ด์ฉํ๋ฉด ์ข์๊น?
-> ์ผ๋ฐ์ ์ผ๋ก ์ ํ๋ฆฌ์ผ์ด์ ์์ค์์ ๊ฐ์ฅ ํํ ๋ณด์์ ํ์ฉ ์ฌ๋ก๋ ๋๊ฐ ์์ ์ ์ํํ ์ ์๋์ง, ํน์ ๋ฐ์ดํฐ๋ฅผ ์ด์ฉํ ์ ์๋์ง๋ฅผ ๊ฒฐ์ ํ๋ ๊ฒ์ด๋ค. ๊ตฌ์ฑ์ ๊ธฐ๋ฐ์ผ๋ก ์์ฒญ์ ๊ฐ๋ก์ฑ๊ณ ๊ถํ์ ๊ฐ์ง ์ฌ์ฉ์๋ง ๋ณดํธ๋ ๋ฆฌ์์ค์ ์ ๊ทผํ ์ ์๋๋ก ์คํ๋ง ์ํ๋ฆฌํฐ ๊ตฌ์ฑ ์์๋ฅผ ์์ฑํ๋ค. ๊ฐ๋ฐ์๋ ์ํ๋ ๊ฒ์ ์ ํํ๊ฒ ์ํํ๋๋ก ๊ตฌ์ฑ ์์๋ฅผ ๊ตฌ์ฑํ๋ค. (์ง(์ ํ๋ฆฌ์ผ์ด์ )์ ๊ฒฝ๋ณด์์คํ ์ ์ค์นํ๋ค๋ฉด ๋ฌธ์๋ง ์ค์นํ๊ณ ๋๋ผ ๊ฒ์ด ์๋๋ผ ์ฐฝ๋ฌธ์๋ ์ค์นํ๋ ๊ฒ์ด ๊ฐ๋ฐ์์ ์ญํ !)
[1.2 ์ํํธ์จ์ด ๋ณด์์ด๋?]
- ๊ด๋ฒ์ํ๊ฒ ํํํ ๋ณด์์ ์๋ฏธ -
ํ์ฌ์ ์ํํธ์จ์ด ์์คํ ์ ํนํ GDPR(General Data Protection Regulations; ์ผ๋ฐ ๋ฐ์ดํฐ ๋ณดํธ ๊ท์ ) ์๊ตฌ์ฌํญ์ ๊ณ ๋ คํ ๋ ์๋น ๋ถ๋ถ์ด ๋ฏผ๊ฐํ ์ ๋ณด์ผ ์ ์๋ ๋๋์ ๋ฐ์ดํฐ๋ฅผ ๊ด๋ฆฌํ๋ค. ์ฌ์ฉ์๊ฐ ๊ฐ์ธ์ ์ด๋ผ๊ณ ์๊ฐํ๋ ๋ชจ๋ ์ ๋ณด๋ ์ํํธ์จ์ด ์ ํ๋ฆฌ์ผ์ด์ ์์ ๋ฏผ๊ฐํ ์ ๋ณด๊ฐ ๋๋ค.
๋ฏผ๊ฐํ ์ ๋ณด์๋ ์ ํ๋ฒํธ, ์ด๋ฉ์ผ ์ฃผ์ ๋๋ ์๋ณ ๋ฒํธ์ ๊ฐ์ ๋ฌดํดํ ์ ๋ณด๋ ์์ง๋ง, ์ ์ถ๋์ ๋ ์ํ์ฑ์ด ๋์ ์ ์ฉ ์นด๋ ์ ๋ณด ๋ฑ์ ์ ๋ณด๋ ๋ ์ค์ํ๊ฒ ๊ณ ๋ คํด์ผ ํ๋ค.
์ ํ๋ฆฌ์ผ์ด์ ์ ์ด๋ฌํ ์ ๋ณด์ ์ ๊ทผ, ๋ณ๊ฒฝ ๋๋ ๊ฐ๋ก์ฑ ๊ธฐํ๊ฐ ์๊ฒ ํด์ผ ํ๋ฉฐ ์๋๋ ์ฌ์ฉ์ ์ด์ธ์ ๋์์ ์ด๋ค ์์ผ๋ก๋ ๋ฐ์ดํฐ์ ์ํธ ์์ฉํ ์ ์๊ฒ ํด์ผ ํ๋ค.
๋ณด์์ ๊ณ์ธต๋ณ๋ก ์ ์ฉํด์ผ ํ๋ฉฐ, ๊ฐ ๊ณ์ธต์ ๋ค๋ฅธ ์ ๊ทผ ๋ฐฉ์์ด ํ์ํ๋ค.
ํด์ปค๋ ์ฑ์ด ๋ณดํธํ๋ ๋ฆฌ์์ค๋ฅผ ํ๋ํ๊ธฐ ์ํด ์ฌ๋ฌ ์ฅ์ ๋ฌผ์ ํต๊ณผํด์ผ ํ๋ค. ๊ฐ ๊ณ์ธต์ ๋ ์ ๋ณดํธํ ์๋ก ์ ์์ ์ธ ๋์์ด ๋ฐ์ดํฐ์ ์ ๊ทผํ๊ฑฐ๋ ๋ฌด๋จ ์์ ์ ์ํํ ๊ฐ๋ฅ์ฑ์ด ๋ฎ์์ง๋ค
์ํํธ์จ์ด ์์คํ ์์ ๋ณด์์ ์ ํ๋ฆฌ์ผ์ด์ ์์ค์๋ง ์ ์ฉ๋๋ ๊ฒ์ด ์๋๋ค
-> ์) ๋คํธ์ํน์ ๊ฒฝ์ฐ ์ฌ๋ฌ ๋ฌธ์ ๋ฅผ ๊ณ ๋ คํ๊ณ ํน์ ํ ๊ดํ์ ์ ์ฉํด์ผ ํ๋ฉฐ ์คํ ๋ฆฌ์ง์๋ ์์ ํ ๋ค๋ฅธ ์ฌํญ์ด ์ ์ฉ๋๋ค
- ๋ณด์ ์์ค์ด ๋ฌด์์ด๊ณ ์ด๋ค ์๋ฏธ๊ฐ ์๋๊ฐ?
์ ํ๋ฆฌ์ผ์ด์ ์์ค ๋ณด์
: ์ ํ๋ฆฌ์ผ์ด์ ์ด ์คํ๋๋ ํ๊ฒฝ๊ณผ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ฒ๋ฆฌํ๊ณ ์ ์ฅํ๋ ๋ฐ์ดํฐ๋ฅผ ๋ณดํธํ๊ธฐ ์ํด ํด์ผ ํ๋ ๋ชจ๋ ๊ฒ์ ๋ํ๋ธ๋ค.
์ ํ๋ฆฌ์ผ์ด์ ์ ์ฌ์ฉ๋๊ณ ์ํฅ์ ๋ฐ๋ ๋ฐ์ดํฐ์๋ง ๊ตญํ๋๋ ๋ฌธ์ ๊ฐ ์๋๋ค. ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ์์ ์ธ ๊ฐ์ธ์ด ์ ์ฒด ์์คํ ์ ์ํฅ์ ์ค ์ ์๋ ์ทจ์ฝ์ฑ์ด ์์ ์ ์๋ค

๋ณด์์ ๊ฐ ๊ณ์ธต์ ์ ์ฉ๋๊ณ ๊ฐ ๊ณ์ธต์ ๊ทธ ์๋์ ๊ณ์ธต์ ์์กดํ๋ค. ์คํ๋ง ์ํ๋ฆฌํฐ -> ์ต์์ธต์์ ์ ํ๋ฆฌ์ผ์ด์ ์์ค์ ๋ณด์์ ๊ตฌํ
ํ ๊ณ์ธต์ ๋ณด์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ๋์๋ ๋๋๋ก ์ ๊ณ์ธต์ด ์กด์ฌํ์ง ์๋๋ค๊ณ ๊ฐ์ ํ๋ ๊ฒ์ด ๋ฐ๋์งํ๋ค
[์คํ๋ง ์ํ๋ฆฌํฐ ์ธ์ฆ ํ๋ก์ธ์ค]
๋๋ถ๋ถ์ ์์คํ ์์๋ ํ์์ ๊ด๋ฆฌํ๊ณ ์๊ณ , ๊ทธ์ ๋ฐ๋ฅธ ์ธ์ฆ(Authentication) ๊ณผ ์ธ๊ฐ(Authorization) ์ ๋ํ ์ฒ๋ฆฌ๋ฅผ ํด์ผํ๋ค!
** ์ธ์ฆ(Authentication) : ํด๋น ์ฌ์ฉ์๊ฐ ๋ณธ์ธ์ด ๋ง๋์ง ํ์ธํ๋ ๊ณผ์
** ์ธ๊ฐ(Authorization) : ํด๋น ์ฌ์ฉ์๊ฐ ์์ฒญํ๋ ์์์ ์คํํ ์ ์๋ ๊ถํ์ด ์๋๊ฐ๋ฅผ ํ์ธํ๋ ๊ณผ์


[์์ธํ ๋ด์ฉ์ ์กฐ๊ธ ๋ ๊ณต๋ถํ ํ์ ์ค๋ช ํ๋๋ก ํ๊ฒ ์ต๋๋ค!!]
'๐๋์' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [Do it! ์๊ณ ๋ฆฌ์ฆ ์ฝ๋ฉํ ์คํธ ํ์ด์ฌ ํธ] 1์ฃผ์ฐจ (1) | 2026.03.01 |
|---|