๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๋ ˆ๊ฑฐ์‹œ

2022.02.18์˜ ๊ธฐ๋ก

by GroovyArea 2022. 2. 18.

โ–ถ ์˜ค๋Š˜ ์‹คํ˜„ ๊ฐ€๋Šฅํ•œ ์„ธ๋ถ€ ๋ชฉํ‘œ

 

=>  ๊ณต๋ถ€ ๊ด€๋ จ

1) ๊ธˆ์ผ ๋ฐฐ์šด ๋‚ด์šฉ ๋ณต์Šต 

2) CS ์ง€์‹ ๊ฐœ๋ฐœ ์ƒ์‹ (๊ฐ์ฒด์ง€ํ–ฅ vs ์ ˆ์ฐจ์ง€ํ–ฅ & Restful API์™€ ์„ค๊ณ„ ๊ทœ์น™)

3) ์ž๋ฐ”์˜ ์ •์„ 13์žฅ ์Šค๋ ˆ๋“œ

4) 14์žฅ ๋žŒ๋‹ค์™€ ์ŠคํŠธ๋ฆผ

4) MVC ์ž๋ฐ” ํ”„๋กœ๊ทธ๋žจ

 

 

=>  ํŒŒ์ด๋„ ํ”„๋กœ์ ํŠธ ๊ด€๋ จ

1) ํŒ€๋ช… : ํ•„๋ผํ”ผํŠธ(ํ•„๋ผํ…Œ์Šค&ํ”ผํŠธ๋‹ˆ์Šค)?

2) ํฌ์ง€์…˜ (๋‚˜๋Š” Back)


โ–ถ ์ˆ˜์—… ๊ณต๋ถ€ ๊ด€๋ จ

MVC ๋””์ž์ธ ํŒจํ„ด

JSP

  • ๋‹จ์ˆœ ์ฒ˜๋ฆฌ : redirect ์ด๋™
  • ์‘๋‹ต : request ์†์„ฑ๊ฐ’์œผ๋กœ ๊ฒฐ๊ณผ๋ฅผ ์ „๋‹ฌ html ⇒ forward ์ด๋™

EL

pageContext.setAttribute(String attributeName, Object attributeValue)

  • ์Šค์ฝ”ํ”„ ๊ฐ์ฒด์— ์†์„ฑ๋ช…(๋ฌธ์ž์—ด)๊ณผ ์†์„ฑ๊ฐ’(์ธ์Šคํ„ด์Šค)์„ ์ €์žฅํ•˜๋Š” ๋ฉ”์†Œ๋“œ
  • pageContext ๋‚ด์žฅ๊ฐ์ฒด์— ์†์„ฑ๊ฐ’์„ ์ €์žฅ - Page Scope
  • Page Scope : ์†์„ฑ๊ฐ’์„ ์ €์žฅํ•œ ์›นํ”„๋กœ๊ทธ๋žจ์—์„œ๋งŒ ์†์„ฑ๊ฐ’์„ ๋ฐ˜ํ™˜๋ฐ›์•„ ์‚ฌ์šฉ ๊ฐ€๋Šฅ

pageContext.getAttribute(String attribute)

  • ์†์„ฑ๋ช…์„ ์ „๋‹ฌ๋ฐ›์•„ ์Šค์ฝ”ํ”„ ๊ฐ์ฒด์— ์ €์žฅ๋œ ์†์„ฑ๊ฐ’(์ธ์Šคํ„ด์Šค)์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ฉ”์„œ๋“œ
  • Object ํƒ€์ž…์˜ ์ธ์Šคํ„ด์Šค๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋ฏ€๋กœ ๋ช…์‹œ์  ๊ฐ์ฒด ํ˜•๋ณ€ํ™˜ํ•˜์—ฌ ์‚ฌ์šฉ
  • ์†์„ฑ๊ฐ’์ด ์—†๋Š” ๊ฒฝ์šฐ null ๋ฐ˜ํ™˜

${์†์„ฑ๋ช…}

  • EL ํ‘œํ˜„์‹์˜ ์†์„ฑ๋ช…์œผ๋กœ ์Šค์ฝ”ํ”„ ๊ฐ์ฒด์— ์ €์žฅ๋œ ์†์„ฑ๊ฐ’์„ ์ œ๊ณต๋ฐ›์•„ ์ถœ๋ ฅ
  • ⇒ getAttribute() ๋ฉ”์„œ๋“œ์™€ JSP ํ‘œํ˜„์‹์„ ๋™์‹œ์— ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฐ™์€ ํšจ๊ณผ ์ œ๊ณต
  • ์†์„ฑ๊ฐ’์ด ์—†๋Š” ๊ฒฝ์šฐ EL ๋ฏธ์‹คํ–‰ - ๊ฐ’ ๋ฏธ์ถœ๋ ฅ
  • ์Šค์ฝ”ํ”„ ๊ฐ์ฒด์— ์˜ํ•ด ์ œ๊ณต๋˜๋Š” ์†์„ฑ๊ฐ’์ด ์ธ์Šคํ„ด์Šค์ธ ๊ฒฝ์šฐ ${์†์„ฑ๋ช…, ํ•„๋“œ๋ช…} ํ˜•์‹์˜ ํ‘œํ˜„์‹์„ ์‚ฌ์šฉํ•˜์—ฌ ์ธ์Šคํ„ด์Šค์˜ ํ•„๋“œ๊ฐ’์„ ์ œ๊ณต๋ฐ›์•„ ์ถœ๋ ฅ
  • ⇒ ํ•„๋“œ๋ช…์€ Getter ๋ฉ”์†Œ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜๊ธฐ ์œ„ํ•œ ์ด๋ฆ„
  • ⇒ EL ํ‘œํ˜„์‹์—์„œ ์ง€์ •๋œ ํ•„๋“œ์˜ Getter ๋ฉ”์†Œ๋“œ๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ PropertyNotFountException ๋ฐœ์ƒ

 

@SuppressWarnings

  • ๊ฒฝ๊ณ ๋ฅผ ์ œ๊ฑฐํ•˜๋Š” ์–ด๋…ธํ…Œ์ด์…˜

Request Scope

  • ์†์„ฑ๊ฐ’์„ ์ €์žฅํ•œ ์›นํ”„๋กœ๊ทธ๋žจ๊ณผ ์Šค๋ ˆ๋“œ๊ฐ€ ์ด๋™๋œ ์›นํ”„๋กœ๊ทธ๋žจ์—์„œ๋งŒ ์†์„ฑ๊ฐ’์„ ๋ฐ˜ํ™˜๋ฐ›์•„ ์‚ฌ์šฉ ๊ฐ€๋Šฅ

ํฌ์›Œ๋“œ ์ด๋™

  • ํ˜„์žฌ ์›นํ”„๋กœ๊ทธ๋žจ์˜ ๋ช…๋ น์„ ์‹คํ–‰ํ•˜๋Š” ์Šค๋ ˆ๋“œ๋ฅผ ๋‹ค๋ฅธ ์›น ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ ์ด๋™ํ•˜์—ฌ ๋ช…๋ น์„ ์‹คํ–‰ํ•˜๋„๋ก ์ œ๊ณตํ•˜๋Š” ๊ธฐ๋Šฅ
  • ⇒ ์Šค๋ ˆ๋“œ๊ฐ€ ์ด๋™๋˜๋Š” ์›นํ”„๋กœ๊ทธ๋žจ์—๊ฒŒ ํ˜„์žฌ ์›นํ”„๋กœ๊ทธ๋žจ์ด ์‚ฌ์šฉํ•˜๋Š” request, response ์ธ์Šคํ„ด์Šค๋ฅผ ์‚ฌ์šฉ ๊ฐ€๋Šฅ

 

๋Œ€๊ด„ํ˜ธ ์—ฐ์‚ฐ์ž

EL ํ‘œํ˜„์‹์—์„œ . ์—ฐ์‚ฐ์ž ๋Œ€์‹ [] ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ•„๋“œ๋ช…(๋งตํ‚ค)๋กœ ํ•„๋“œ๊ฐ’(๋งต๊ฐ’)์„ ์ œ๊ณต๋ฐ›์•„ ์ถœ๋ ฅ
⇒ ์ฃผ๋กœ List๋‚˜ ๋ฐฐ์—ด ๊ฐ์ฒด์˜ ๊ฒฝ์šฐ ์ธ๋ฑ์Šค ๊ฐ’์„ ์œ„ํ•ด ๋Œ€๊ด„ํ˜ธ ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉ

 

EL - Array

  • ์Šค์ฝ”ํ”„ ๊ฐ์ฒด์˜ ์†์„ฑ๊ฐ’์ด ๋ฐฐ์—ด์ธ ๊ฒฝ์šฐ EL ํ‘œํ˜„์‹์—์„œ . ์—ฐ์‚ฐ์ž๋กœ ์ฒจ์ž๋ฅผ ํ‘œํ˜„ํ•˜์—ฌ ๋ฐฐ์—ด ์š”์†Œ๋ฅผ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ ELException ๋ฐœ์ƒ
  • ELException : EL ํ‘œํ˜„์‹์ด ์ž˜๋ชป๋œ ๊ฒฝ์šฐ ๋ฐœ์ƒ๋˜๋Š” ์˜ˆ์™ธ
  • ์Šค์ฝ”ํ”„ ๊ฐ์ฒด์˜ ์†์„ฑ๊ฐ’์ด ๋ฐฐ์—ด์ธ ๊ฒฝ์šฐ ํ‘œํ˜„์‹์—์„œ [ ] ์•ˆ์— ์ฒจ์ž๋ฅผ ํ‘œํ˜„ํ•˜์—ฌ ๋ฐฐ์—ด ์š”์†Œ ๊ฐ’์„ ์ถœ๋ ฅ ๊ฐ€๋Šฅ
  • EL ํ‘œํ˜„์‹์—์„œ ๋‹ค๋ฅธ ์Šค์ฝ”ํ”„ ๊ฐ์ฒด์˜ ์†์„ฑ๊ฐ’์„ ์ œ๊ณต๋ฐ›์•„ ๋งตํ‚ค๋กœ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ [ ] ์—ฐ์‚ฐ์ž ์•ˆ์— ํ‘œํ˜„ํ•˜์—ฌ ๋งต๊ฐ’ ์ถœ๋ ฅ ๊ฐ€๋Šฅ

EL Implicit Object

  • 11๊ฐ€์ง€ ๋‚ด์žฅ ๊ฐ์ฒด
  • 1๊ฐ€์ง€์˜ pageContext ๊ฐ์ฒด ์™ธ์— ๋ชจ๋“  ๊ฐ์ฒด๊ฐ€ Map์ด๋‹ค.
  • ์†์„ฑ๊ฐ’์„ ์ €์žฅํ•œ ๊ฐ์ฒด์— ๋”ฐ๋ผ ์†์„ฑ๊ฐ’์˜ ์‚ฌ์šฉ ๋ฒ”์œ„ ๊ตฌ๋ถ„

scope attribute์˜ ๋งต ๊ฐ์ฒด

  • ⇒ ์†์„ฑ๊ฐ’ ์‚ฌ์šฉ ๋ฒ”์œ„(Scope) : Page Scope, Request Scope, Session Scope, Application Scope
  • ์†์„ฑ๊ฐ’์„ ์ €์žฅํ•˜๋Š” ๊ฐ์ฒด๊ฐ€ ๋‹ค๋ฅธ ๊ฒฝ์šฐ ๊ฐ™์€ ์†์„ฑ๋ช…์„ ์‚ฌ์šฉํ•˜์—ฌ ์†์„ฑ๊ฐ’ ์ €์žฅ ๊ฐ€๋Šฅ
  • ⇒ ๋™์ผํ•œ ๊ฐ์ฒด์— ๊ฐ™์€ ์ด๋ฆ„์˜ ์†์„ฑ๋ช…์„ ์‚ฌ์šฉํ•˜์—ฌ ์†์„ฑ๊ฐ’์„ ์ €์žฅํ•  ๊ฒฝ์šฐ ๊ธฐ์กด ์†์„ฑ๊ฐ’ ๋Œ€์‹  ์ƒˆ๋กœ์šด ์†์„ฑ๊ฐ’ ์ €์žฅ

EL ํ‘œํ˜„์‹์˜ ์†์„ฑ๋ช…์œผ๋กœ ์†์„ฑ๊ฐ’์„ ๊ฒ€์ƒ‰ํ•˜๋Š” ์ˆœ์„œ

  • ⇒ page Scope → request Scope → session Scope → application Scope
  • ⇒ ์Šค์ฝ”ํ”„ ๊ฐ์ฒด์˜ ์†์„ฑ๋ช…์„ ๋‹ค๋ฅด๊ฒŒ ์„ ์–ธํ•˜๋Š” ๊ฒƒ์„ ๊ถŒ์žฅ
  • session : ๊ถŒํ•œ ๊ด€๋ จ ์ •๋ณด
  • request : ์š”์ฒญ์— ๋Œ€ํ•œ ๊ฐ’

Request Parameter

  • EL ํ‘œํ˜„์‹์—์„œ param ๋‚ด์žฅ๊ฐ์ฒด ๋˜๋Š” paramValue ๋‚ด์žฅ๊ฐ์ฒด๋ฅผ ์ด์šฉํ•˜์—ฌ ์ „๋‹ฌ๊ฐ’์„ ์ œ๊ณต๋ฐ›์•„ ์ถœ๋ ฅ ๊ฐ€๋Šฅ - ์ „๋‹ฌ๊ฐ’์˜ ์ด๋ฆ„์„ ์ด์šฉํ•˜์—ฌ ์ „๋‹ฌ๊ฐ’ ๊ตฌ๋ถ„

Request Header

Cookie

  • ์ฟ ํ‚ค๊ฐ’์€ ๋ฌธ์ž์—ด๋งŒ ์ €์žฅ ๊ฐ€๋Šฅํ•˜๋ฉฐ ํ•œ๊ธ€ ์ €์žฅ ๋ถˆ๊ฐ€๋Šฅ

Context Init Parameter

  • context-param : ๋ชจ๋“  ์›นํ”„๋กœ๊ทธ๋žจ์—๊ฒŒ ๊ฐ’์„ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•œ ์—˜๋ฆฌ๋จผํŠธ

PageContext

  • WAS๊ฐ€ ๋งŒ๋“ค์–ด์คŒ
  • ์›นํ”„๋กœ๊ทธ๋žจ์— ํ•„์š”ํ•œ ๊ฐ์ฒด๋“ค์ด ์ €์žฅ๋˜์–ด ์žˆ์Œ.
  • ServletRequset๋Š” HttpServletRequest์˜ ๋ถ€๋ชจ
  • requset ๋ง๊ณ  EL์„ ์ด์šฉํ•˜์—ฌ pageContext,request.contextPath๋ฅผ ์“ฐ์ž

โ–ถ ๊ฐœ์ธ ๊ณต๋ถ€ ๊ด€๋ จ 1

 


โ–ถ ๊ฐœ์ธ ๊ณต๋ถ€ ๊ด€๋ จ 2

์–ด๋…ธํ…Œ์ด์…˜(Annotation)

  • @Overrode : ์–ด๋…ธํ…Œ์ด์…˜์ด๋ฉฐ ํƒ€์ž…์€ Override.
  • ๋ฏธ๋ฆฌ ์ •์˜ ๋œ ํƒœ๊ทธ๋“ค์„ ์ด์šฉํ•ด์„œ ์ฃผ์„ ์•ˆ์— ์ •๋ณด๋ฅผ ์ €์žฅํ•˜๊ณ  javadoc.exe๋ผ๋Š” ํ”„๋กœ๊ทธ๋žจ์ด ์ด ์ •๋ณด๋ฅผ ์ฝ์–ด์„œ ๋ฌธ์ž๋ฅผ ์ž‘์„ฑํ•˜๋Š”๋ฐ ์‚ฌ์šฉํ•จ.
  • ⇒ ์ด ๊ธฐ๋Šฅ์„ ์ด์šฉํ•˜์—ฌ ์†Œ์Šค์ฝ”๋“œ ์•ˆ์— ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋žจ์„ ์œ„ํ•œ ์ •๋ณด๋ฅผ ๋ฏธ๋ฆฌ ์•ฝ์†๋œ ํ˜•์‹์œผ๋กœ ํฌํ•จ์‹œํ‚จ ๊ฒƒ.

์Šค๋ ˆ๋“œ(Thread)

  • ํ”„๋กœ์„ธ์Šค (Process) : ์‹คํ–‰ ์ค‘์ธ ํ”„๋กœ๊ทธ๋žจ
  • ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•˜๋ฉด OS๋กœ๋ถ€ํ„ฐ ์‹คํ–‰์— ํ•„์š”ํ•œ ์ž์›(๋ฉ”๋ชจ๋ฆฌ)๋ฅผ ํ• ๋‹น๋ฐ›์•„ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋œ๋‹ค.
  • ํ”„๋กœ์„ธ์Šค = ๋ฐ์ดํ„ฐ + ๋ฉ”๋ชจ๋ฆฌ๋“ฑ์˜ ์ž์› + ํ•˜๋‚˜ ์ด์ƒ์˜ ์“ฐ๋ ˆ๋“œ

์Šค๋ ˆ๋“œ๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•

  1. Thread ํด๋ž˜์Šค๋ฅผ ์ƒ์†๋ฐ›๋Š” ๋ฐฉ๋ฒ•
  2. Runnable ์ธํ„ฐํŽ˜์ด์Šค๋ฅด ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ• : ์žฌ์‚ฌ์šฉ์„ฑ์ด ๋†’๊ณ  ์ฝ”๋“œ์˜ ์ผ๊ด€์„ฑ์„ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ณด๋‹ค ๊ฐ์ฒด์ง€ํ–ฅ์ ์ธ ๋ฐฉ๋ฒ•

โ–ถ ํŒŒ์ด๋„ ํ”„๋กœ์ ํŠธ ๊ด€๋ จ

> ํ† ์š”์ผ 2์‹œ ๊ฐ•๋‚จ ํšŒ์˜ ์ด์ง€์Šคํ„ฐ๋””

1. ๊ธฐํš์„œ

2. ํ™”๋ฉด ์„ค๊ณ„์„œ

3. ์žฅ์†Œ ์ •ํ•˜๊ธฐ

๋ฐ˜์‘ํ˜•

'๋ ˆ๊ฑฐ์‹œ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

2022.02.20์˜ ๊ธฐ๋ก  (0) 2022.02.20
2022.02.19์˜ ๊ธฐ๋ก  (0) 2022.02.19
2022.02.17์˜ ๊ธฐ๋ก  (0) 2022.02.17
2022.02.16์˜ ๊ธฐ๋ก  (0) 2022.02.16
2022.02.15์˜ ๊ธฐ๋ก  (0) 2022.02.15