์šฐ๋ฆฌ๋„ค ์žฅ

[ Sevlet ] Servlet Container ์™€ JVM ๊ด€๊ณ„ ์ •๋ฆฌ ๋ณธ๋ฌธ

JAVA/JVM

[ Sevlet ] Servlet Container ์™€ JVM ๊ด€๊ณ„ ์ •๋ฆฌ

qpmi1zm29 2022. 5. 19. 14:26

 

๐Ÿ˜ Servlet ์ด๋ž€ ? ๐Ÿ˜

  • java EE ํ‘œ์ค€ ํ”Œ๋žซํผ์— ๋”ฐ๋ฅธ java program
  • servlet ๋‹จ๋…์œผ๋กœ ๊ธฐ๋™๋  ์ˆ˜ ์—†๋‹ค.

๐ŸŽ… Servlet Container์ด๋ž€ ? ๐ŸŽ…

  • ์„œ๋ธ”๋ฆฟ ์ปจํ…Œ์ด๋„ˆ๋„ ๊ฒฐ๊ตญ์—๋Š” java program
  • ์‚ฌ์šฉ์ž ์š”์ฒญ ์‹œ ๋งˆ๋‹ค java thread๋ฅผ ์ƒ์„ฑ ( ์ฒ˜๋ฆฌ ํ›„์—๋Š” ์†Œ๋ฉธ )

[  JSP์™€ servlet ์‹คํ–‰ ํ™˜๊ฒฝ ๊ตฌ์„ฑ ]

- ์›น ์„œ๋ฒ„์™€ ์„œ๋ธ”๋ฆฟ ๊ฐ„์˜ ํ†ต์‹  ์ง€์› ( AJP protocol ๊ธฐ๋ฐ˜ ) 

- ํ†ต์‹ ์„ ์œ„ํ•œ socket์„ ๊ด€๋ฆฌํ•˜๊ณ  stream์„ ์กฐ์ž‘, ๋ฆฌ์Šค๋‹ ํฌํŠธ ์„ค์ •

- ์›น ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ๋“ค์–ด์˜จ Http Request๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ HttpRequest์™€ HttpResponse ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑ

- web.xml ์„ค์ •์— ๋”ฐ๋ผ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•  ์ ์ ˆํ•œ servlet์„ ๋งคํ•‘ ์‹œ์ผœ ์คŒ 

( web.xml : ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๋Œ€ํ•œ ์„ค์ • - ์›น ์„œ๋ฒ„์™€ ์—ฐ๊ด€ - ๋™์  ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•ด์„œ servlet container์™€ ๋ฐ€์ ‘ํ•œ ์—ฐ๊ด€ )

web.xml์˜ ์ผ๋ถ€

 

 

[ ์„œ๋ธ”๋ฆฟ ์ƒ๋ช… ์ฃผ๊ธฐ ๊ด€๋ฆฌ ]

- ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•  servlet์ด memory์— ์˜ฌ๋ผ์™€ ์žˆ๋Š”์ง€ ํ™•์ธ

- ์˜ฌ๋ผ์™€ ์žˆ์ง€ ์•Š๋‹ค๋ฉด memory์— load

- init()์„ ํ†ตํ•ด ์ดˆ๊ธฐํ™” ( ์ตœ์ดˆ ํ•œ ๋ฒˆ )

- service()์„ ํ˜ธ์ถœํ•˜์—ฌ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ - doGet() ๊ณผ doPost()๋กœ ๋ถ„๊ธฐ

- ์„œ๋ธ”๋ฆฟ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์ข…๋ฃŒํ•  ๋•Œ destroy()๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ garbage collector์„ ์ด์šฉํ•ด memory์—์„œ ํ•ด์ œ 

 

์ถœ์ฒ˜ : https://velog.io/@jihoson94/Servlet-Container-%EC%A0%95%EB%A6%AC

 

๐Ÿ‘ผ ์„œ๋ธ”๋ฆฟ ์ปจํ…Œ์ด๋„ˆ์™€ JDK ๊ด€๊ณ„  : ์ƒ๊ฐ ์ •๋ฆฌ  *์ค‘์š”!!* ๐Ÿ‘ผ

JDK

  • ์‹ค์ œ๋กœ .class ์˜ byte code๋ฅผ ์‹คํ–‰ํ•˜๋Š” ์ฃผ์ฒด 
  • O/S์—์„œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ• ๋‹น ๋ฐ›๋Š”๋‹ค.
  • servlet container๋Š” JDK๋กœ ๋ถ€ํ„ฐ ์‹คํ–‰ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ›์•„ web server์™€ ํ†ต์‹ ํ•˜๋Š” ์—ญํ• 
  • servlet๊ณผ servlet container๋Š” ๊ฒฐ๊ตญ java program์ด๋ฏ€๋กœ JDK์œ„์—์„œ ๋™์ž‘
  • servlet container ์‚ฌ์šฉ์˜ ์ด์  : JDK๊ฐ€ ๋ถ„๋ฆฌ๋œ java thread ๋‹จ์œ„๋กœ ๋กœ์ง์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ฃผ๋Š” ๊ฒƒ 
  • ์˜ˆ์ „์—๋Š” thread ๋‹จ์œ„๊ฐ€ ์•„๋‹Œ process ๋‹จ์œ„์—ฌ์„œ ๋ฉ”๋ชจ๋ฆฌ์— ํ• ๋‹นํ•˜๊ณ  ํ•ด์ œํ•˜๋Š”๋ฐ ์ž์›์ด ๋งŽ์ด ๋“ค์—ˆ๋‹ค.
  • servlet๊ณผ servlet container ์‹คํ–‰์„ ํ•˜๋‚˜์˜ app์œผ๋กœ ๋ณธ๋‹ค๋ฉด, servlet container๊ฐ€ main thread ์ธ ๊ฒƒ ๊ฐ™๋‹ค.

์›น ์„œ๋ฒ„๋Š” c๋กœ ๋˜์–ด์žˆ์–ด jdk์œ„์—์„œ ๋„ค์ดํ‹ฐ๋ธŒ๋กœ ๋™์ž‘ํ•˜๋Š”์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์Œ

 

  • servlet container๋„ ํ•„์š”ํ•œ servlet์„ ๋ฉ”๋ชจ๋ฆฌ์— load ํ•˜์ง€๋งŒ, app ๋ฒ”์œ„ ๋‚ด 
  • JDK๊ฐ€ loadํ•˜๋Š” .class ๋“ค์ด ํ›จ์”ฌ ๊ด‘๋ฒ”์œ„ ํ•˜๋‹ค๊ณ  ์ƒ๊ฐ