์ค๋ ํ ์ผ
| 10:00 ~ 11:00 | ์๊ณ ๋ฆฌ์ฆ ์ฝ๋์นดํ 3๋ฌธ์ ํ๊ธฐ |
| 11:00 ~ 13:00 | Spring ์๋ จ์ฃผ์ฐจ(Bean, ์ธ์ฆ๊ณผ ์ธ๊ฐ) ๊ฐ์ ๋ฃ๊ธฐ |
| 14:00 ~ 15:40 | Spring ์๋ จ์ฃผ์ฐจ(์ฟ ํค-์ธ์ , JWT) ๊ฐ์ ๋ฃ๊ธฐ |
๋ฐฐ์ด์
1. Bean ์๋ ๋ฑ๋ก
- ๊ธฐ์ ์ง์ ํน์ ๊ณตํต ๊ด์ฌ์ฌ ์ฒ๋ฆฌํ ๋ ์ฌ์ฉํ๋ ๊ฐ์ฒด๋ค์ ์๋์ผ๋ก ๋ฑ๋กํ๋ ๊ฒ์ด ์ข์
- Bean ์๋ ๋ฑ๋ก ๋ฐฉ๋ฒ
- Bean์ผ๋ก ๋ฑ๋กํ๊ณ ์ ํ๋ ๊ฐ์ฒด๋ฅผ ๋ฐํํ๋ ๋ฉ์๋ ์์ @Bean ์ด๋ ธํ ์ด์ ์ถ๊ฐ
- Bean์ ๋ฑ๋กํ๋ ๋ฉ์๋๊ฐ ์ํด ์๋ Class ์์ @Configuration ์ด๋ ธํ ์ด์ ์ถ๊ฐ
- ๊ฐ์ ํ์
์ Bean์ด 2๊ฐ ์ด์์ธ ๊ฒฝ์ฐ, ์๋ ์ฃผ์
๋ฐฉ๋ฒ
- ๋ฑ๋ก๋ Bean ์ด๋ฆ ๋ช ์
- @Primary ์ด๋ ธํ ์ด์ ์ถ๊ฐ
- @Qualifier ์ด๋ ธํ ์ด์ ์ถ๊ฐ
2026.06.26 - [๋ฐฑ์๋/spring&springboot] - [๋ด์ผ๋ฐฐ์์บ ํ_Spring Boot ์๋ จ์ฃผ์ฐจ] Bean
[๋ด์ผ๋ฐฐ์์บ ํ_Spring Boot ์๋ จ์ฃผ์ฐจ] Bean
Bean์ ์๋์ผ๋ก ๋ฑ๋กํ๋ ๋ฐฉ๋ฒ@ComponentScan์ด @Component๋ฅผ ์ค์บํด ์๋์ผ๋ก Bean์ ๋ฑ๋กํด์ค. ์ผ๋ฐ์ ์ผ๋ก 3 Layer Annotation์ธ @Controller, @Service, @Repository๋ฅผ ์ฌ์ฉํด์ ์๋์ผ๋ก Bean์ ๋ฑ๋กํด์ฃผ๋๊ฒ ์ข์→
basicconcept.tistory.com
2. ์ธ์ฆ๊ณผ ์ธ๊ฐ
- ์ธ์ฆ(Autehntication): ํด๋น ์ ์ ๊ฐ ์ค์ ์ ์ ์ธ์ง ์ธ์ฆํ๋ ๊ฐ๋
- ์ธ๊ฐ(Authorization): ํด๋น ์ ์ ๊ฐ ํน์ ๋ฆฌ์์ค์ ์ ๊ทผ์ด ๊ฐ๋ฅํ์ง ํ๊ฐ๋ฅผ ํ์ธํ๋ ๊ฐ๋
- ์น ์ ํ๋ฆฌ์ผ์ด์ ํน์ง: HTTP๋ ๋น์ฐ๊ฒฐ์ฑ+๋ฌด์ํ
- ์น ์ ํ๋ฆฌ์ผ์ด์ ์์์ ์ธ์ฆ ์ฒ๋ฆฌ ๋ฐฉ์ 2๊ฐ์ง → ์ฟ ํค-์ธ์ ๋ฐฉ์, JWT ๊ธฐ๋ฐ ์ธ์ฆ
3. ์ฟ ํค์ ์ธ์
- ์ฟ ํค: ํด๋ผ์ด์ธํธ์ ์ ์ฅ๋ ๋ชฉ์ ์ผ๋ก ์์ฑํ ์์ ์ ๋ณด๋ฅผ ๋ด์ ํ์ผ
- ์ธ์ : ์๋ฒ์์ ์ผ์ ์๊ฐ ๋์ ํด๋ผ์ด์ธํธ ์ํ๋ฅผ ์ ์งํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ ๊ฒ
- ์๋ฒ์์ ํด๋ผ์ด์ธํธ ๋ณ๋ก ์ ์ผ๋ฌด์ดํ '์ธ์ ID'๋ฅผ ๋ถ์ฌํ ํ ํด๋ผ์ด์ธํธ ๋ณ ํ์ํ ์ ๋ณด๋ฅผ ์๋ฒ์ ์ ์ฅํจ
4. JWT
- JWT๋ JSON ํฌ๋งท์ ์ด์ฉํด ์ฌ์ฉ์์ ๋ํ ์์ฑ์ ์ ์ฅํ๋ Claim ๊ธฐ๋ฐ์ Web Token๋ก, ์ผ๋ฐ์ ์ผ๋ก ์ฟ ํค ์ ์ฅ์๋ฅผ ์ฌ์ฉํด JWT๋ฅผ ์ ์ฅํจ
- ์ฟ ํค-์ธ์ ๋ฐฉ์ ์ฌ์ฉ ์ ๋ฌธ์ ์ ) ์๋ฒ๊ฐ 2๋ ์ด์์ธ ๊ฒฝ์ฐ ํน์ ํด๋ผ์ด์ธํธ์ ์ธ์ ์ ๋ณด๋ฅผ ๊ฐ์ง๊ณ ์์ง ์์ ์๋ฒ๋ก ์์ฒญ์ด ๋ค์ด์ค๋ ๊ฒฝ์ฐ
- ์ ๋ฌธ์ ํด๊ฒฐ ๋ฐฉ๋ฒ
- Sticky Session: Client๋ง๋ค ์์ฒญ Server ๊ณ ์ ์ํด
- ์ธ์ ์ ์ฅ์ ์์ฑํด ๋ชจ๋ Client์ ๋ก๊ทธ์ธ ์ ๋ณด ์์
- JWT ์ฌ์ฉ: Client ๋ก๊ทธ์ธ ์ ๋ณด๋ฅผ JWT๋ก ์ํธํํด ์ ์ฅ ํ JWT ํตํด ์ธ์ฆ/์ธ๊ฐ
- JWT ์ฅ๋จ์
- ์ฅ์ : ์๋ฒ ์ธก ๋ถํ ๋ฎ์ถฐ์ค, Client์ Server๊ฐ ๋ค๋ฅธ ๋๋ฉ์ธ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ
- ๋จ์ : ๊ตฌํ ๋ณต์ก๋ ์ฆ๊ฐ, JWT์ ๋ด๋ ๋ด์ฉ ์ปค์ง์๋ก ๋คํธ์ํฌ ๋น์ฉ ์ฆ๊ฐ, ๊ธฐ ์์ฑ๋ JWT๋ฅผ ์ผ๋ถ๋ง ๋ง๋ฃ์ํฌ ๋ฐฉ๋ฒ ์์, Secret Key ์ ์ถ ์ JWT ์กฐ์ ๊ฐ๋ฅ
- JWT ์ฌ์ฉ ํ๋ฆ
- Client๊ฐ ๋ก๊ทธ์ธ ์ฑ๊ณต์ → ์๋ฒ์์ ๋ก๊ทธ์ธ ์ ๋ณด๋ฅผ Secret Key ์ฌ์ฉํด JWT๋ก ์ํธํ → ์๋ฒ์์ ์ง์ ์ฟ ํค ์์ฑํด JWT๋ฅผ ๋ด์ Client์ ์๋ต ์ ๋ฌ → ๋ธ๋ผ์ฐ์ ์ฟ ํค ์ ์ฅ์์ ์๋์ผ๋ก JWT ์ ์ฅ
- Client์์ JWT๋ฅผ ํตํด ์ธ์ฆ → ์๋ฒ์์ API ์์ฒญ๋ง๋ค ์ฟ ํค์ ํฌํจ๋ JWT ์ฐพ์ ์ฌ์ฉ → Server์์ ๊ฒ์ฆ ํ์ธ ์ ์ฐจ ์ํ
- JWT ๊ตฌ์กฐ = ํค๋(์๊ณ ๋ฆฌ์ฆ ์ข ๋ฅ, ํ์ ) + Payload(๋ฐ์ดํฐ ์ ๋ณด) + JWT Signature Verification(Secret Key ํฌํจ)
[๋ด์ผ๋ฐฐ์์บ ํ_Spring Boot ์๋ จ์ฃผ์ฐจ] ์ธ์ฆ๊ณผ ์ธ๊ฐ(+์ฟ ํค-์ธ์ , JWT)
์ธ์ฆ๊ณผ ์ธ๊ฐ๋ ๋ฌด์์ผ๊น?์ธ์ฆ๊ณผ ์ธ๊ฐ์ธ์ฆ(Authentication): ํด๋น ์ ์ ๊ฐ ์ค์ ์ ์ ์ธ์ง ์ธ์ฆํ๋ ๊ฐ๋ ์ธ๊ฐ(Authorization): ํด๋น ์ ์ ๊ฐ ํน์ ๋ฆฌ์์ค์ ์ ๊ทผ์ด ๊ฐ๋ฅํ์ง ํ๊ฐ๋ฅผ ํ์ธํ๋ ๊ฐ๋ ์ผ๋ก, ๊ด๋ฆฌ
basicconcept.tistory.com
๋ด์ผ ํ ์ผ
- ์๋ จ์ฃผ์ฐจ 2์ฃผ์ฐจ ์๊ฐ