Programing_Java

[Listener, Filter] Spring์—์„œ ํ•„์ˆ˜์ ์œผ๋กœ ์•Œ์•„์•ผ ํ•  ์„œ๋ธ”๋ฆฟ, ๋ฆฌ์Šค๋„ˆ, ํ•„ํ„ฐ์˜ ์—ญํ• ๊ณผ ์ฐจ์ด์  ๋ณธ๋ฌธ

๐Ÿ’ป JAVA_

[Listener, Filter] Spring์—์„œ ํ•„์ˆ˜์ ์œผ๋กœ ์•Œ์•„์•ผ ํ•  ์„œ๋ธ”๋ฆฟ, ๋ฆฌ์Šค๋„ˆ, ํ•„ํ„ฐ์˜ ์—ญํ• ๊ณผ ์ฐจ์ด์ 

Joyfullyever 2025. 3. 19. 22:26

โœ… ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜

: ๊ฐœ๋ฐœ๊ณผ์ •์—์„œ ๋‹ค์–‘ํ•œ ๋ฐฉ์‹์œผ๋กœ ์š”์ฒญ์„ ์ฒ˜๋ฆฌ, ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌ, Application์˜ ํ๋ฆ„์„ ์ œ์–ดํ•˜๋Š” ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉ

: Servlet, Listener, Filter๋Š” ์ค‘์š”ํ•œ ์—ญํ• ์„ ํ•จ

: ํŠนํžˆ Spring๊ณผ ๊ฐ™์€ ํ”„๋ ˆ์ž„์›Œํฌ์—์„œ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ๋„๊ตฌ๋“ค์ด ํƒ‘์žฌ๋˜์–ด ์žˆ์–ด, ์‚ฌ์šฉ์ž๊ฐ€ ๋ชจ๋ฅด๊ณ  ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ๋„ ๋งŽ์Œ

 

1๏ธโƒฃ Servlet

: ์ž๋ฐ” ๊ธฐ๋ฐ˜์˜ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ HTTP ์š”์ฒญ๊ณผ ์‘๋‹ต์„ ์ฒ˜๋ฆฌํ•˜๋Š” ํด๋ž˜์Šค

: ์„œ๋ฒ„์—์„œ ์‹คํ–‰

: ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์„ ๋ฐ›๊ณ  ์ ์ ˆํ•œ ์‘๋‹ต์„ ๋งŒ๋“ค์–ด ๋ณด๋‚ด๋Š” ์—ญํ• 

โœ”๏ธ Spring Framework๋Š” Servlet์„ ์‚ฌ์šฉํ•˜์—ฌ HTTP ์š”์ฒญ์„ ์ฒ˜๋ฆฌ

Spring Boot → ๊ฐœ๋ฐœ์ž๊ฐ€ ์ง์ ‘ ์„œ๋ธ”๋ฆฟ์„ ์ž‘์„ฑํ•˜์ง€ ์•Š์•„๋„ Spring์ด ๋‚ด์žฅ ์„œ๋ธ”๋ฆฟ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ž๋™์œผ๋กœ ์„ค์ •ํ•˜๊ณ  ๊ด€๋ฆฌ

• ๋Œ€๋ถ€๋ถ„์˜ ๊ฐœ๋ฐœ์ž๋Š” ์„œ๋ธ”๋ฆฟ์„ ์ž˜ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ฑฐ๋‚˜ ๊ทธ ์กด์žฌ ์ž์ฒด๋ฅผ ๋ชจ๋ฅผ ์ˆ˜ ์žˆ์Œ

• Spring ๋‚ด๋ถ€์—์„œ ์„œ๋ธ”๋ฆฟ์€ ์ค‘์š”ํ•œ ์—ญํ• ์„ ํ•จ

 

2๏ธโƒฃ Listener

: Application, Session, Request์˜ ํŠน์ • ์ด๋ฒคํŠธ๋ฅผ ๊ฐ์ง€ํ•˜๊ณ , ๊ทธ ์ด๋ฒคํŠธ์— ๋”ฐ๋ผ ์ž๋™์œผ๋กœ ๋™์ž‘ํ•˜๋Š” ํด๋ž˜์Šค

: Server Lifecycle์— ๋งž์ถฐ ์‹œ์ž‘ ์‹œ์ , ์ข…๋ฃŒ ์‹œ์ , ์†์„ฑ ๋ณ€๊ฒฝ ๋“ฑ์„ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๊ณ  ์ฒ˜๋ฆฌ

โœ”๏ธ ์—ญํ• 

• Application ์‹œ์ž‘/์ข…๋ฃŒ : ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์‹œ์ž‘ ๋˜๋Š” ์ข…๋ฃŒ๋  ๋•Œ ์ˆ˜ํ–‰ํ•  ์ž‘์—…์„ ์ •์˜

• Session ์‹œ์ž‘/์ข…๋ฃŒ : ์‚ฌ์šฉ์ž ์„ธ์…˜์ด ์‹œ์ž‘ ๋˜๋Š” ์ข…๋ฃŒ๋  ๋•Œ ํŠน์ • ์ž‘์—…์„ ์ˆ˜ํ–‰

• Attribute ๋ณ€๊ฒฝ ๊ฐ์ง€ : ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์ด๋‚˜ ์„ธ์…˜ ์†์„ฑ์ด ๋ณ€๊ฒฝ๋  ๋•Œ ๋งˆ๋‹ค ๋™์ž‘ํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค์ • ๊ฐ€๋Šฅ

โœ”๏ธ ํฌ๋กค๋ง๊ณผ ๋ฆฌ์Šค๋„ˆ

• ํฌ๋กค๋ง์„ ์ตœ์ ํ™”ํ•˜๋Š”๋ฐ ๋ฆฌ์Šค๋„ˆ ์‚ฌ์šฉ ๊ฐ€๋Šฅ

• ์žฅ๋ฐ”๊ตฌ๋‹ˆ์™€ ๊ฐ™์€ ์„ธ์…˜ ๊ธฐ๋ฐ˜ ๋ฐ์ดํ„ฐ๊ฐ€ ํ•„์ˆ˜์ ์œผ๋กœ ์กด์žฌํ•œ๋‹ค๊ณ  ๊ฐ€์ • → ๋ฆฌ์Šค๋„ˆ์—์„œ ์žฅ๋ฐ”๊ตฌ๋‹ˆ ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•˜๊ณ , ์„ธ์…˜์ด ์ƒ์„ฑ๋  ๋•Œ ์ž๋™์œผ๋กœ ์ดˆ๊ธฐํ™” ํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ํฌ๋กค๋ง์„ ์ตœ์ ํ™”

 

3๏ธโƒฃ Filter

: ์š”์ฒญ๊ณผ ์‘๋‹ต์„ ๊ฐ€๋กœ์ฑ„์„œ ์ฒ˜๋ฆฌํ•˜๋Š” ํด๋ž˜์Šค

: Servlet๊ณผ ์œ ์‚ฌํ•˜๊ฒŒ HTTP ์š”์ฒญ๊ณผ ์‘๋‹ต์„ ๋‹ค๋ฃจ์ง€๋งŒ, Servlet๋ณด๋‹ค ๋‚ฎ์€ ๋ ˆ๋ฒจ์—์„œ ์ž‘๋™

: ์—ฌ๋Ÿฌ Filter๋ฅผ ์ฒด์ธ์œผ๋กœ ์—ฐ๊ฒฐํ•˜์—ฌ ์ž‘์—…์„ ์ˆœ์ฐจ์ ์œผ๋กœ ์ฒ˜๋ฆฌ ๊ฐ€๋Šฅ

โœ”๏ธ ์—ญํ• 

• ์ธ์ฆ ๋ฐ ์ธ๊ฐ€ : ์š”์ฒญ์ด ํŠน์ • ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š”์ง€ ํ™•์ธํ•œ ํ›„, ์ธ์ฆ๋˜์ง€ ์•Š์œผ๋ฉด ์ ‘๊ทผ์„ ์ฐจ๋‹จํ•˜๊ฑฐ๋‚˜ ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€๋กœ ๋ฆฌ๋‹ค์ด๋ ‰์…˜ํ•˜๋Š” ๋“ฑ์˜ ์ž‘์—… ์ˆ˜ํ–‰

• ์ธ์ฝ”๋”ฉ/๋””์ฝ”๋”ฉ : ์š”์ฒญ์ด๋‚˜ ์‘๋‹ต์˜ ๋ฌธ์ž ์ธ์ฝ”๋”ฉ์„ ์ฒ˜๋ฆฌ

• ๋กœ๊น…/๋ชจ๋‹ˆํ„ฐ๋ง : ์š”์ฒญ์— ๋Œ€ํ•œ ๋กœ๊ทธ๋ฅผ ๋‚จ๊ธฐ๊ฑฐ๋‚˜, ์„ฑ๋Šฅ ๋ชจ๋‹ˆํ„ฐ๋ง์„ ์ˆ˜ํ–‰

โœ”๏ธ ์ธ์ฆ๊ณผ ํ•„ํ„ฐ

• ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์ธ์ฆ ๋ฐ ์ธ๊ฐ€๋Š” ๋งค์šฐ ์ค‘์š”ํ•œ ๋ถ€๋ถ„

์€ํ–‰๊ถŒ๊ณผ ๊ฐ™์€ ๋ณด์•ˆ์ด ์ค‘์š”ํ•œ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ๋Š” ํ•„ํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ชจ๋“  ์š”์ฒญ์„ ๊ฐ€๋กœ์ฑ„์„œ, ์‚ฌ์šฉ์ž ๋กœ๊ทธ์ธ ์—ฌ๋ถ€, ๊ถŒํ•œ ๋ณด์œ  ์—ฌ๋ถ€ ๋“ฑ์„ ํ™•์ธ

• ์ธ์ฝ”๋”ฉ ๋ฐ ๋””์ฝ”๋”ฉ ์ž‘์—…๋„ ํ•„ํ„ฐ์—์„œ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Œ

→ ์š”์ฒญ์˜ ๋ฌธ์ž ์ธ์ฝ”๋”ฉ์„ UTF-8๋กœ ์„ค์ •, ์‘๋‹ต์˜ ์ธ์ฝ”๋”ฉ์„ ๋‹ค์‹œ ์ฒ˜๋ฆฌํ•˜๋Š” ๋“ฑ์˜ ์ž‘์—…

 

4๏ธโƒฃ Filter & Servlet

• ํ•„ํ„ฐ๋Š” ์„œ๋ธ”๋ฆฟ์ฒ˜๋Ÿผ ๋งคํ•‘์„ ์„ค์ •ํ•˜์—ฌ ์š”์ฒญ์— ๋”ฐ๋ผ ํŠน์ • ํ•„ํ„ฐ๊ฐ€ ๋™์ž‘ํ•˜๋„๋ก ํ•จ

→ ํŠน์ • URL ํŒจํ„ด์— ๋Œ€ํ•ด ์ธ์ฆ ํ•„ํ„ฐ๋ฅผ ์ ์šฉ ๋˜๋Š” ๋กœ๊น… ํ•„ํ„ฐ ์„ค์ • ๊ฐ€๋Šฅ