๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๋ฐฑ์—”๋“œ/๋‚ด์ผ๋ฐฐ์›€์บ ํ”„_Java๋‹จ๊ธฐ์‹ฌํ™”8๊ธฐ

[TIL] Spring ์ˆ™๋ จ์ฃผ์ฐจ 1์ฃผ์ฐจ(Bean, ์ธ์ฆ๊ณผ ์ธ๊ฐ€, ์ฟ ํ‚ค-์„ธ์…˜, JWT)

by alswlfl 2026. 6. 26.

์˜ค๋Š˜ ํ•œ ์ผ

10:00 ~ 11:00 ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ฝ”๋“œ์นดํƒ€ 3๋ฌธ์ œ ํ’€๊ธฐ
11:00 ~ 13:00 Spring ์ˆ™๋ จ์ฃผ์ฐจ(Bean, ์ธ์ฆ๊ณผ ์ธ๊ฐ€) ๊ฐ•์˜ ๋“ฃ๊ธฐ
14:00 ~ 15:40 Spring ์ˆ™๋ จ์ฃผ์ฐจ(์ฟ ํ‚ค-์„ธ์…˜, JWT) ๊ฐ•์˜ ๋“ฃ๊ธฐ

 


๋ฐฐ์šด์ 

1. Bean ์ˆ˜๋™ ๋“ฑ๋ก

  • ๊ธฐ์ˆ  ์ง€์› ํ˜น์€ ๊ณตํ†ต ๊ด€์‹ฌ์‚ฌ ์ฒ˜๋ฆฌํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๊ฐ์ฒด๋“ค์€ ์ˆ˜๋™์œผ๋กœ ๋“ฑ๋กํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Œ
  • Bean ์ˆ˜๋™ ๋“ฑ๋ก ๋ฐฉ๋ฒ•
    1. Bean์œผ๋กœ ๋“ฑ๋กํ•˜๊ณ ์ž ํ•˜๋Š” ๊ฐ์ฒด๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ฉ”์„œ๋“œ ์œ„์— @Bean ์–ด๋…ธํ…Œ์ด์…˜ ์ถ”๊ฐ€
    2. 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๋Œ€ ์ด์ƒ์ธ ๊ฒฝ์šฐ ํŠน์ • ํด๋ผ์ด์–ธํŠธ์˜ ์„ธ์…˜ ์ •๋ณด๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์ง€ ์•Š์€ ์„œ๋ฒ„๋กœ ์š”์ฒญ์ด ๋“ค์–ด์˜ค๋Š” ๊ฒฝ์šฐ
  • ์œ„ ๋ฌธ์ œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•
    1. Sticky Session: Client๋งˆ๋‹ค ์š”์ฒญ Server ๊ณ ์ •์‹œํ‚ด
    2. ์„ธ์…˜ ์ €์žฅ์†Œ ์ƒ์„ฑํ•ด ๋ชจ๋“  Client์˜ ๋กœ๊ทธ์ธ ์ •๋ณด ์†Œ์œ 
    3. 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 ํฌํ•จ)

2026.06.26 - [๋ฐฑ์—”๋“œ/spring&springboot] - [๋‚ด์ผ๋ฐฐ์›€์บ ํ”„_Spring Boot ์ˆ™๋ จ์ฃผ์ฐจ] ์ธ์ฆ๊ณผ ์ธ๊ฐ€(+์ฟ ํ‚ค-์„ธ์…˜, JWT)

 

[๋‚ด์ผ๋ฐฐ์›€์บ ํ”„_Spring Boot ์ˆ™๋ จ์ฃผ์ฐจ] ์ธ์ฆ๊ณผ ์ธ๊ฐ€(+์ฟ ํ‚ค-์„ธ์…˜, JWT)

์ธ์ฆ๊ณผ ์ธ๊ฐ€๋ž€ ๋ฌด์—‡์ผ๊นŒ?์ธ์ฆ๊ณผ ์ธ๊ฐ€์ธ์ฆ(Authentication): ํ•ด๋‹น ์œ ์ €๊ฐ€ ์‹ค์ œ ์œ ์ €์ธ์ง€ ์ธ์ฆํ•˜๋Š” ๊ฐœ๋…์ธ๊ฐ€(Authorization): ํ•ด๋‹น ์œ ์ €๊ฐ€ ํŠน์ • ๋ฆฌ์†Œ์Šค์— ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•œ์ง€ ํ—ˆ๊ฐ€๋ฅผ ํ™•์ธํ•˜๋Š” ๊ฐœ๋…์œผ๋กœ, ๊ด€๋ฆฌ

basicconcept.tistory.com


๋‚ด์ผ ํ•  ์ผ

  • ์ˆ™๋ จ์ฃผ์ฐจ 2์ฃผ์ฐจ ์™„๊ฐ•